PHP-Handbuch

von:
Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Hannes Magnusson
Georg Richter
Damien Seguy
Jakub Vrana
Und etliche andere
2021-03-15
Herausgegeben von: Peter Cowburn
Bei der Übersetzung wirkten mit:
Oliver Albers
Florian Anderiasch
Christoph Michael Becker
Arne Blankerts
Cornelia Boenigk
Patrick Eigensatz
Hartmut Holzgraefe
Daniel Jänecke
Carola Köhntopp
Hakan Kücükyilmaz
Raphael Michel
Sebastian Nohn
Karl Pflästerer
Nikita Popov
Dirk Randhahn
Thorsten Rinne
Martin Samesch
Mark Wiesemann
Tim Hollmann
© 1997-2021 PHP-Dokumentationsgruppe
  • Copyright
  • PHP-Handbuch
    • Vorwort
  • Einführung
    • Einführung
    • Ein kleines Tutorial
  • Installation und Konfiguration
    • Generelle Überlegungen
    • Installation auf Unix-Systemen
    • Installation unter macOS
    • Installation on Windows systems
    • Installation auf Cloud Computing Platformen
    • FastCGI Process Manager (FPM)
    • Installation of PECL extensions
    • Probleme bei der Installation?
    • Laufzeiteinstellungen
  • Sprachreferenz
    • Grundlagen der Syntax
    • Typen
    • Variablen
    • Konstanten
    • Ausdrücke
    • Operatoren
    • Kontrollstrukturen
    • Funktionen
    • Klassen und Objekte
    • Namespaces
    • Fehler
    • Ausnahmebehandlung (Exception-Handling)
    • Generatoren
    • Attributes
    • Referenzen in PHP
    • Vordefinierte Variablen
    • Vordefinierte Exceptions
    • Vordefinierte Interfaces und Klassen
    • Kontextoptionen und -parameter
    • Unterstützte Protokolle und Wrapper
  • Sicherheit
    • Einführung
    • Allgemeine Überlegungen
    • Installiert als CGI-Version
    • Verwendung als Apache-Modul
    • Session Sicherheit
    • Dateisystem - Sicherheit
    • Datenbank-Sicherheit
    • Fehlerbehandlung
    • Vom Nutzer übermittelte Daten
    • PHP verstecken
    • Aktuell bleiben
  • Features
    • HTTP-Authentifizierung mit PHP
    • Cookies
    • Sessions
    • Mit XForms umgehen
    • Steuerung von Dateiuploads
    • Zugriff auf entfernte Dateien
    • Verbindungssteuerung
    • Persistente Datenbankverbindungen
    • Nutzung auf der Kommandzeile — Nutzung von PHP auf der Kommandozeile
    • Garbage Collection
    • DTrace Dynamic Tracing
  • Funktionsreferenz
    • Das Verhalten von PHP beeinflussen
    • Manipulation von Audioformaten
    • Authentifizierungsdienste
    • Eingabezeilenspezifische Erweiterungen
    • Erweiterungen zur Datenkompression und Archivierung
    • Kryptografische Erweiterungen
    • Datenbankerweiterungen
    • Datums- und zeitrelevante Erweiterungen
    • Dateisystemrelevante Erweiterungen
    • Unterstützung menschlicher Sprache und Zeichenkodierung
    • Bildverarbeitung und -generierung
    • E-Mail-relevante Erweiterungen
    • Mathematische Erweiterungen
    • Non-Text MIME-Ausgaben
    • Erweiterungen zur Prozesskontrolle
    • Sonstige Grunderweiterungen
    • Sonstige Dienste
    • Suchmaschinenerweiterungen
    • Serverspezifische Erweiterungen
    • Session-Erweiterungen
    • Textverarbeitung
    • Variablen- und typbezogene Erweiterungen
    • Web Services
    • Windowsbasierte Erweiterungen
    • XML-Manipulation
    • GUI Erweiterungen
  • FAQ — FAQ: Frequently Asked Questions
    • Allgemeine Informationen
    • Mailing-Listen
    • PHP beziehen
    • PHP und Datenbanken
    • Installation
    • Probleme bei der Kompilierung
    • PHP verwenden
    • Password Hashing — Sicheres Password Hashing
    • PHP und HTML
    • PHP und COM
    • Verschiedene Fragen
  • Appendices
    • Die Geschichte von PHP und verwandten Projekten
    • Migrating from PHP 7.4.x to PHP 8.0.x
    • Migration von PHP 7.3.x auf PHP 7.4.x
    • Migration von PHP 7.2.x auf PHP 7.3.x
    • Migration von PHP 7.1.x auf PHP 7.2.x
    • Migration von PHP 7.0.x nach PHP 7.1.x
    • Migration von PHP 5.6.x nach PHP 7.0.x
    • Migration von PHP 5.5.x auf PHP 5.6.x
    • PHP Debugging
    • Konfigurationsoptionen
    • php.ini Direktiven
    • Extension-Liste/-Kategorisierung
    • Liste der Funktions-Aliase
    • Liste der reservierten Wörter
    • Liste der Ressource-Typen
    • List of Available Filters
    • Liste der unterstützten Socket-Transporter
    • Tabelle zu Typenvergleichen in PHP
    • Liste der Parsertoken
    • Userland-Namensregeln
    • Über das Handbuch
    • Creative Commons Attribution 3.0
    • Verzeichnis der Inhaltsverzeichnisse
    • Changelog
  • Windows HTML-Hilfe
    • Über diese Ausgabe
    • Using PHP Manual CHM Edition
    • The Full Text Search
    • Integrating the PHP Manual


Copyright

Copyright © 1997 - 2021 by the PHP Documentation Group. Dieses Material darf nur gemäß den Regeln und Bedingungen der Creative Commons Attribution License Version v3.0 oder neuer weiter verbreitet werden. Eine Kopie der Creative Commons Attribution 3.0 license ist in diesem Handbuch enthalten, die aktuellste Version ist unter » http://creativecommons.org/licenses/by/3.0/ verfügbar.

Für den Fall, dass Sie daran interessiert sind, dieses Dokument weiter zu verbreiten oder in sonstiger Form zu veröffentlichen, in Teilen oder als Ganzes, entweder verändert oder unverändert, und Sie Fragen haben, können Sie Kontakt zu den Copyright-Inhabern über » doc-license@lists.php.net. aufnehmen. Bitte beachten Sie, dass das Archiv dieser Mailingliste öffentlich zugänglich ist.


  • « Copyright
  • Vorwort »
  • PHP Manual
  • PHP-Handbuch

PHP-Handbuch

  • Vorwort


Vorwort

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

Dieses Handbuch besteht vorranging aus einer Funktionsreferenz, enthält aber zusätzlich auch eine Sprachreferenz, Erläuterungen zu den wichtigsten Features und weitere ergänzende Informationen.

Sie können dieses Handbuch in verschiedenen Formaten unter » https://www.php.net/download-docs.php herunterladen. Informationen dazu, wie dieses Handbuch erstellt wird, finden Sie im Anhang unter dem Kapitel 'Über dieses Handbuch'. Wenn Sie sich für die Geschichte von PHP interessieren, lesen Sie bitte den entsprechenden Anhang.

Autoren und Mitwirkende

Wir heben die zur Zeit aktivsten Personen auf der Titelseite des Handbuchs hervor, aber es gibt viel mehr Mitwirkende, die zur Zeit mithelfen oder in der Vergangenheit einen großen Beitrag zu diesem Projekt geleistet haben. Ebenfalls gibt es eine Vielzahl von Personen, die hier nicht namentlich aufgeführt sind, die durch ihre User Notes auf den Handbuchseiten mithelfen. Die User Notes werden kontinuierlich in unser Handbuch integriert und wir schätzen diese Unterstützung außerordentlich. Alle folgenden Listen sind alphabetisch sortiert.

Autoren und Editoren

Folgende Personen verdienenen Anerkennung dafür, dass Sie wesentlichen Inhalt zum Handbuch beigetragen haben und/oder weiterhin beitragen werden: Bill Abt, Jouni Ahto, Alexander Aulbach, Stig Bakken, George Peter Banyard, Christoph M. Becker, Daniel Beckham, Nilgün Belma Bugüner, Jesus M. Castagnetto, Ron Chmara, Sean Coates, John Coggeshall, Simone Cortesi, Peter Cowburn, Daniel Egeberg, Markus Fischer, Wez Furlong, Sara Golemon, Rui Hirokawa, Brad House, Pierre-Alain Joye, Etienne Kneuss, Moriyoshi Koizumi, Rasmus Lerdorf, Andrew Lindeman, Stanislav Malyshev, Justin Martin, Rafael Martinez, Rick McGuire, Moacir de Oliveira Miranda Júnior, Kalle Sommer Nielsen, Yasuo Ohgaki, Philip Olson, Richard Quadling, Derick Rethans, Rob Richards, Sander Roobol, Egon Schmid, Thomas Schoefbeck, Sascha Schumann, Dan Scott, Masahiro Takagi, Yoshinari Takaoka, Yannick Torres, Michael Wallner, Lars Torben Wilson, Jim Winstead, Jeroen van Wolffelaar und Andrei Zmievski.

Folgende Personen haben durch Ihre Editionsarbeit wesentlich zum Handbuch beigetragen: Stig Bakken, Gabor Hojtsy, Hartmut Holzgraefe, Philip Olson und Egon Schmid.

User Note-Betreuer

Die zurzeit aktivsten Betreuer: Daniel Brown, Nuno Lopes, Felipe Pena, Thiago Pojda und Maciek Sokolewicz.

Auch folgende Personen haben einiges an Mühe und Zeit zur Betreuung der User Notes investiert: Mehdi Achour, Daniel Beckham, Friedhelm Betz, Victor Boivie, Jesus M. Castagnetto, Nicolas Chaillan, Ron Chmara, Sean Coates, James Cox, Vincent Gevers, Sara Golemon, Zak Greant, Szabolcs Heilig, Oliver Hinckel, Hartmut Holzgraefe, Etienne Kneuss, Rasmus Lerdorf, Matthew Li, Andrew Lindeman, Aidan Lister, Hannes Magnusson, Maxim Maletsky, Bobby Matthis, James Moore, Philip Olson, Sebastian Picklum, Derick Rethans, Sander Roobol, Damien Seguy, Jason Sheets, Tom Sommer, Jani Taskinen, Yasuo Ohgaki, Jakub Vrana, Lars Torben Wilson, Jim Winstead, Jared Wyles und Jeroen van Wolffelaar.


Einführung

  • Einführung
    • Was ist PHP?
    • Was kann PHP?
  • Ein kleines Tutorial
    • Was brauche ich?
    • Ihre erste PHP-erweiterte Seite
    • Etwas Nützliches
    • Formulare verarbeiten
    • Alten Code mit neuen PHP-Versionen verwenden
    • Und weiter?


  • « Einführung
  • Was ist PHP? »
  • PHP Manual
  • Einführung
  • Einführung

Einführung

Inhaltsverzeichnis

  • Was ist PHP?
  • Was kann PHP?


Was ist PHP?

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

Nett, aber was heißt das genau? Ein Beispiel:

Beispiel #1 Ein einführendes Beispiel

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

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

    </body>
</html>

Anstatt ein Programm mit vielen Anweisungen zur Ausgabe von HTML zu schreiben, schreibt man etwas HTML und bettet einige Anweisungen ein, die irgendetwas tun (wie hier "Hallo, ich bin ein PHP-Skript!" auszugeben). Der PHP-Code steht zwischen speziellen Anfangs- und Abschluss-Verarbeitungsinstruktionen <?php und ?>, mit denen man in den "PHP-Modus" und zurück wechseln kann.

PHP unterscheidet sich von clientseitigen Sprachen wie Javascript dadurch, dass der Code auf dem Server ausgeführt wird und dort HTML-Ausgaben generiert, die an den Client gesendet werden. Der Client erhält also nur das Ergebnis der Skriptausführung, ohne dass es möglich ist herauszufinden, wie der eigentliche Code aussieht. Sie können Ihren Webserver auch anweisen, alle Ihre HTML-Dateien mit PHP zu parsen, denn dann gibt es wirklich nichts, das dem Benutzer sagt, was Sie in petto haben.

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

Auch wenn die Entwicklung von PHP auf serverseitige Programmierung fokussiert ist, können Sie mit PHP weitaus mehr anstellen. Lesen Sie mehr im Abschnitt Was kann PHP? oder benutzen Sie direkt das Einführungstutorial, wenn Sie nur an Webprogrammierung interessiert sind.


Was kann PHP?

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

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

  • Serverseitige Programmierung. Dies ist das traditionelle und auch Hauptfeld von PHP. Sie benötigen drei Dinge, um damit arbeiten zu können: Den PHP-Parser (CGI oder Server-Modul), einen Webserver und einen Webbrowser. Sie müssen einen Webserver laufen lassen, der mit einer PHP-Installation verbunden ist. Sie können auf die Ausgabe Ihres PHP-Programms mittels eines Webbrowsers zugreifen, der die Seite mithilfe des Servers darstellt. Dieses gesamte Szenario können Sie auf Ihrem heimischen Rechner laufen lassen, wenn Sie erst einmal mit PHP-Programmierung experimentieren wollen. Weitere Informationen finden Sie im Abschnitt Installation.
  • Kommandozeilenprogrammierung. Es ist auch möglich PHP-Skripte zu schreiben, die ohne einen Server oder Browser arbeiten können. Sie benötigen dafür nur den PHP-Parser. Die Art der Nutzung ist ideal für Programme, die regelmäßig mitels cron (auf *nix oder Linux) oder dem Task Scheduler (unter Windows) ausgeführt werden. Die Skripte können außerdem verwendet werden, um einfache Textprozessierung auszuführen. Weitere Informationen dazu finden Sie im Abschnitt Verwendung von PHP auf der Eingabezeile.
  • Schreiben von Desktop-Applikationen. PHP ist wahrscheinlich nicht die allerbeste Sprache, um Desktop-Anwendungen mit grafischer Oberfläche zu schreiben, aber wenn Sie PHP sehr gut kennen und einige weiterführende PHP-Features in Ihren clientseitigen Applikationen nutzen möchten, können Sie PHP-GTK nutzen, um derartige Programme zu schreiben. Auf diese Art haben Sie auch die Möglichkeit, plattformübergreifende Applikationen zu schreiben. PHP-GTK ist eine Erweiterung von PHP, die in der Hauptdistribution nicht enthalten ist. Sollten Sie daran interessiert sein, besuchen Sie die » PHP-GTK Website.

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

So haben Sie die Freiheit, PHP auf dem Betriebssystem und dem Webserver Ihrer Wahl laufen zu lassen. Weiterhin können Sie je nach Vorliebe prozedural oder objektorientiert programmieren oder eine Mischung aus beidem verwenden. Auch wenn in PHP 4 noch nicht jedes Standard-OOP-Feature implementiert ist, sind viele Codebibliotheken und große Applikationen (unter anderem die PEAR-Bibliothek) bereits ausschließlich objektorientiert programmiert. Mit PHP 5 werden die objektorientierten Schwächen von PHP 4 behoben und ein vollständiges Objektmodell eingeführt.

Mit PHP sind Sie nicht auf die Ausgabe von HTML beschränkt. Seine Fähigkeiten umfassen auch das dynamische Generieren von Bildern, PDF-Dateien und Flashanimationen (mittels libswf und Ming). Sie können auch leicht jede Art von Text, wie XHTML oder irgendeine andere XML Datei, ausgeben. PHP kann diese Dateien automatisch generieren und im Dateisystem speichern anstatt diese nur auszugeben. Auf diese Weise lässt sich ein serverseitiger Cache Ihrer dynamischen Inhalte erstellen.

Vielleicht die größte und bemerkenswerteste Stärke von PHP ist seine Unterstützung für eine breite Masse von Datenbanken. Eine datenbankgestützte Website zu erstellen ist mithilfe der Datenbankerweiterungen (z.B. für mysql) unglaublich einfach. Wir haben auch eine Extension zur Datenbankabstraktion (names PDO), welche Ihnen die transparente Verwendung irgendeiner von dieser Erweiterung unterstützten Datenbank erlaubt. Desweiteren unterstützt PHP ODBC, den Open Database Connection Standard, mit welchem Sie sich mit jeder anderen Datenbank verbinden können, die diesen weltweiten Standard unterstützt. Andere Datenbanken können cURL oder sockets verwenden (wie z.B. CouchDB).

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

PHP verfügt über äußerst hilfreiche Textverarbeitungsfunktionen, von den regulären Ausdrücken (PCRE) bis zum Parsen von XML-Dokumenten. PHP vereinheitlicht all diese XML-Erweiterungen auf der soliden Basis der libxml2-Bibliothek und erweitert diese Funktionalität durch die hinzugefügte Unterstützung von SimpleXML, XMLReader und XMLWriter.

Es gibt noch viele andere interessante Erweiterungen die alphabetisch sowie kategorisch dokumentiert sind. Ebenfalls existieren PECL Erweiterungen die ggf. in der PHP Dokumentation selbst dokumentiert sind, wie z.B. » XDebug

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


Ein kleines Tutorial

Inhaltsverzeichnis

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

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

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


Was brauche ich?

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

Angenommen, Sie möchten Bandbreite sparen und lokal entwickeln. In diesem Fall müssen Sie einen Webserver wie z.B. » Apache und natürlich » PHP installieren. Sehr empfehlenswert ist auch die Installation einer Datenbank wie z.B. » MySQL.

Sie können diese Programme entweder eins nach dem anderen selbst installieren oder den folgenden einfacheren Weg gehen. Unser Handbuch bietet ausführliche Installationsanweisungen für PHP (dabei gehen wir davon aus, dass Sie schon einen Webserver installiert haben). Falls Sie Probleme bei der Installation von PHP haben, dann empfehlen wir Ihnen, dass Sie Ihre Fragen auf unserer » Installations-Mailingliste stellen. Noch einfacher ist es, » vorkonfigurierte Pakete für Ihr Betriebssystem zu benutzen, die alle oben genannten Programme mit einigen wenigen Mausklicks installieren. Es ist ziemlich einfach, einen Webserver mit PHP-Unterstützung auf jedem Betriebssystem, wie macOS, Linux oder Windows, aufzusetzen. Unter Linux sind » rpmfind und » PBone hilfreich, wenn Sie RPM-Pakete suchen. Wenn Sie Pakete für Debian suchen, dann besuchen Sie bitte » apt-get.


Ihre erste PHP-erweiterte Seite

Erstellen Sie eine Datei mit dem Namen hallo.php und speichern Sie diese im Wurzelverzeichnis Ihres Webservers (DOCUMENT_ROOT) mit dem folgenden Inhalt:

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

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

Benutzen Sie Ihren Browser, um die Datei über die Webserver-URL aufzurufen. Die URL muss mit /hallo.php enden. Wenn Sie lokal entwickeln, sieht die URL z.B. so aus: http://localhost/hallo.php oder http://127.0.0.1/hallo.php - andere Adressen sind aber, abhängig vom Webserver, auch möglich. Wenn Sie alles korrekt installiert haben, wird die Datei von PHP geparst und Sie werden die folgende Ausgabe in Ihrem Browser sehen:

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

Das Beispiel ist extrem einfach und natürlich brauchen Sie PHP nicht, um eine Seite wie diese zu erstellen. Denn es macht nicht mehr, als mit der echo-Anweisung von PHP Hallo Welt auszugeben. Bitte beachten Sie, dass die Datei nicht ausführbar sein muss. Der Server erkennt anhand der Dateiendung ".php", dass sie durch PHP interpretiert werden muss. Stellen Sie sich eine normale HTML-Datei vor, die eine Menge von speziellen Tags enthält, mit denen Sie einige interessante Dinge tun können.

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

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

Hinweis: Anmerkungen zu Zeilenwechseln

Zeilenwechsel sind in HTML nur von geringer Bedeutung, trotzdem ist es sinnvoll HTML Code durch Zeilenwechsel zu formatieren um die Lesbarkeit zu erhöhen. Ein Zeilenwechsel, der direkt auf ein schließendes ?>> folgt, wird von PHP bei der Ausgabe entfernt. Dies ist äußerst nützlich, wenn Sie viele PHP-Blöcke einfügen oder Dateien inkludieren, die keine Ausgabe erzeugen sollen. Auf der anderen Seite kann es aber auch verwirrend sein. Sie können einen Zeilenwechsel erzwingen, indem Sie entweder ein zusätzliches Leerzeichen hinter ?> einfügen oder explizit mit echo oder print ein Zeilenwechselzeichen am Ende Ihres Codes ausgeben.

Hinweis: Anmerkung zu Text-Editoren

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

Hinweis: Anmerkung zu Textverarbeitungsprogrammen

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

Hinweis: Anmerkung zu Notepad, dem Windows-Standard-Editor

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

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

Beispiel #2 Anzeigen von Systeminformationen mit PHP

<?php phpinfo(); ?>


Etwas Nützliches

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

Hinweis:

$_SERVER ist eine speziell reservierte PHP-Variable, die alle Informationen über den Webserver enthält. Diese Variable wird auch als superglobal bezeichnet. Mehr Informationen darüber finden Sie im Handbuch auf der Seite über Superglobals. Diese speziellen Variablen wurden in PHP » 4.1.0 eingeführt. Vorher wurden stattdessen die älteren $HTTP_*_VARS-Arrays verwendet, also z.B. $HTTP_SERVER_VARS. Beginnend mit PHP 5.4.0 wurden diese älteren Variablen entfernt. (Beachten Sie auch die Seite Alten Code mit neuen PHP-Versionen verwenden.)

Um die Variable auszugeben, schreiben Sie einfach:

Beispiel #1 Variable ausgeben (Array-Element)

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

Die Ausgabe dieses Beispiels könnte so aussehen:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

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

$_SERVER ist nur eine von vielen Variablen, die Ihnen automatisch von PHP zur Verfügung gestellt werden. Eine Liste finden Sie auf der Seite Reservierte Variablen im Handbuch. Eine vollständige Liste können Sie auch bekommen, wenn Sie sich die Ausgabe der Funktion phpinfo() ansehen, die im Beispiel des vorigen Abschnitts verwendet wurde.

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

Beispiel #2 Beispiel, das Kontrollstrukturen und Funktionen verwendet

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
    echo "Sie verwenden den Microsofts Internet Explorer.<br />";
}
?>

Die Ausgabe dieses Skripts könnte so aussehen:

Sie verwenden den Microsofts Internet Explorer.<br />

Hier stellen wir Ihnen eine ganze Reihe von neuen Konzepten vor. Wir haben hier zuerst eine if-Anweisung. Wenn Sie mit der grundlegenden Syntax der Programmiersprache C vertraut sind, sollte Ihnen dies logisch erscheinen. Andernfalls sollten Sie sich ein Buch mit einer PHP-Einführung besorgen und die ersten Kapitel lesen. Sie können natürlich auch in die Sprachreferenz des Handbuchs schauen.

Das zweite hier vorgestellte Konzept ist der Aufruf der Funktion strpos(). strpos() ist eine in PHP eingebaute Funktion, die nach einer Zeichenkette in einer anderen Zeichenkette sucht. In diesem Fall suchen wir nach 'MSIE' (die so genannte Nadel, engl. needle) in $_SERVER['HTTP_USER_AGENT'] (der so genannte Heuhaufen, engl. haystack). Wenn die Nadel im Heuhaufen gefunden wird, gibt die Funktion die Position der Nadel relativ zum Start des Heuhaufens zurück. Andernfalls wird false zurückgegeben. Wenn nicht false zurückgeben wird, wird die if-Anweisung zu true ausgewertet und der Code innerhalb der geschweiften Klammern wird ausgeführt. Andernfalls wird der Code innerhalb der Klammern nicht ausgeführt. Probieren Sie weitere ähnliche Beispiele mit if, else und anderen Funktionen wie strtoupper() oder strlen(). Jede dieser Handbuch-Seiten enthält weitere Beispiele. Wenn Sie unsicher sind, wie die Funktionen verwendet werden, lesen Sie die Handbuch-Seite Wie sind Funktionsdefinitionen (Prototypen) zu lesen? und den Abschnitt zu den PHP-Funktionen.

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

Beispiel #3 HTML- und PHP-Modus vermischt

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() hat nicht FALSE zurückgegeben</h3>
<p>Sie verwenden den Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() hat FALSE zurückgegeben</h3>
<p>Sie verwenden nicht den Internet Explorer</p>
<?php
}
?>

Die Ausgabe dieses Skripts könnte so aussehen:

<h3>strpos() hat nicht FALSE zurückgegeben</h3>
<p>Sie verwenden den Internet Explorer</p>

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


Formulare verarbeiten

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

Beispiel #1 Ein einfaches HTML-Formular

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

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

Beispiel #2 Daten des Formulars ausgeben

Hallo <?php echo htmlspecialchars($_POST['name']); ?>.
Sie sind <?php echo (int)$_POST['alter']; ?> Jahre alt.

Die Ausgabe des Skripts könnte dann so aussehen:

Hallo Joe. Sie sind 22 Jahre alt.

Abgesehen von den beiden Teilen htmlspecialchars() und (int) sollte einfach zu verstehen sein, was hier geschieht. htmlspecialchars() stellt sicher, dass die Zeichen, die in HTML eine spezielle Bedeutung haben, ordentlich kodiert werden, sodass niemand HTML-Tags oder Javascript-Code in Ihre Seite einschmuggeln kann. Da wir wissen, dass das Feld "alter" eine Zahl enthalten soll, konvertieren wir es in einen int-Wert, wodurch automatisch überflüssige Zeichen entfernt werden. Sie können diese Aufgabe auch PHP überlassen, indem Sie die Filter-Erweiterung verwenden. Die Variablen $_POST['name'] und $_POST['alter'] werden für Sie automatisch von PHP gesetzt. Weiter oben haben wir das superglobale Array $_SERVER eingeführt, jetzt verwenden wir hier das - ebenfalls superglobale - Array $_POST, welches alle POST-Daten enthält. Beachten Sie, dass die im Formular verwendete Methode POST ist. Hätten wir GET verwendet, wären die Daten unseres Formulars stattdessen im superglobalen Array $_GET verfügbar. Sie können auch das superglobale Array $_REQUEST verwenden, wenn die Quelle der Daten keine Rolle spielt. Dieses Array enthält die GET-, POST- und COOKIE-Daten.

Sie können ebenfalls die Eingaben von XForms in PHP verarbeiten, auch wenn Ihnen die von PHP unterstützten HTML-Formulare bisher gut gereicht haben. Auch wenn die Arbeit mit XForms nichts für Anfänger ist, sind Sie vielleicht trotzdem daran interessiert. In unserem Features-Kapitel finden Sie eine kurze Einführung in die Verarbeitung von XForms-Daten.


Alten Code mit neuen PHP-Versionen verwenden

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

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

  • Die alten $HTTP_*_VARS-Arrays sind ab PHP 5.4.0 nicht mehr verfügbar. Die folgenden Superglobalen Arrays wurden in PHP » 4.1.0 eingeführt: $_GET, $_POST, $_COOKIE, $_SERVER, $_FILES, $_ENV, $_REQUEST und $_SESSION.
  • Externe Variablen werden standardmäßig nicht mehr im globalen Namensraum registriert. Mit anderen Worten, seit PHP » 4.2.0 ist off die Standard-Einstellung für die PHP-Anweisung register_globals. Die empfohlene Methode, auf diese Werte zuzugreifen, ist, die oben genannten superglobalen Arrays zu verwenden. Ältere Skripte, Bücher und Tutorials gehen eventuell davon aus, dass diese Einstellung auf on steht. Wäre die Einstellung z.B. on, dann wäre die Variable $id aus der URL http://www.example.com/foo.php?id=42 verfügbar. Ob on oder off, $_GET['id'] ist immer verfügbar.
Für weitere Details über diese Änderungen siehe die Seite über vordefinierte Variablen und die Links dort.


Und weiter?

Mit dem neuen Wissen sollte es Ihnen möglich sein, das meiste aus diesem Handbuch und die vielen Beispiel-Skripte in den Beispiel-Archiven zu verstehen.

Wenn Sie an verschiedenen Präsentationen, die Ihnen zeigen, was PHP alles tun kann, interessiert sind, dann besuchen Sie doch folgende Seite: » http://talks.php.net/.


Installation und Konfiguration

  • Generelle Überlegungen
  • Installation auf Unix-Systemen
    • Apache 1.3.x auf Unix-Systemen
    • Apache 2.x auf Unixsystemen
    • Nginx 1.4.x auf Unix Systemen
    • Lighttpd 1.4 auf Unix Systemen
    • LiteSpeed Web Server/OpenLiteSpeed Web Server on Unix systems
    • CGI und Kommandozeilen Setups
    • HP-UX spezifische Installationshinweise
    • OpenBSD installation notes
    • Solaris specific installation tips
    • Debian GNU/Linux-Installationshinweise
  • Installation unter macOS
    • Verwendung von Paketen
    • Das enthaltene PHP verwenden
    • Kompilieren von PHP unter macOS
  • Installation on Windows systems
    • Install Requirements
    • PECL
    • PHP Installer Tools on Windows
    • Recommended Configuration on Windows systems
    • Manuelle PHP-Installation auf Windows
    • Troubleshooting PHP on Windows
    • Installation auf alten Windowssystemen
  • Installation auf Cloud Computing Platformen
    • Azure App Services
    • Amazon EC2
  • FastCGI Process Manager (FPM)
    • Installation
    • Konfiguration
  • Installation of PECL extensions
    • Introduction to PECL Installations
    • Downloading PECL extensions
    • Installing a PHP extension on Windows
    • Compiling shared PECL extensions with the pecl command
    • Compiling shared PECL extensions with phpize
    • php-config
    • Compiling PECL extensions statically into PHP
  • Probleme bei der Installation?
    • Lies das FAQ
    • Weitere Probleme
    • Bugs melden
  • Laufzeiteinstellungen
    • Die Konfigurationsdatei
    • .user.ini-Dateien
    • Wo Konfigurationseinstellungen gesetzt werden können
    • Wie man Konfigurationseinstellungen ändert


Generelle Überlegungen

Bevor Sie mit der Installation beginnen, sollten Sie wissen, für was Sie PHP verwenden wollen. Es gibt drei Hauptbereiche, in denen Sie PHP verwenden können, die im Abschnitt Was kann PHP? beschrieben werden:

  • Webseiten und Webapplikationen (serverseitiges Skripting)
  • Kommandozeilenskripte
  • Desktop(GUI-)Anwendungen

Für die erste und gebräuchlichste Variante brauchen Sie drei Dinge: PHP selbst, einen Webserver und einen Webbrowser. Sie haben wahrscheinlich bereits einen Webbrowser und, abhängig von Ihrem Betriebssystem, möglicherweise ebenso bereits einen Webserver (z.B. Apache auf Linux oder macOS; IIS auf Windows). Sie können ebenfalls Webspace bei einem Unternehmen mieten. Auf diese Weise müssen Sie selbst nichts einrichten und müssen nur PHP-Skripte schreiben, diese auf den gemieteten Server hochladen und die Ergebnisse im Browser betrachten.

Für den Fall, dass Sie den Server und PHP selbst aufsetzen, haben Sie zwei Auswahlmöglichkeiten, um PHP mit dem Server zu verbinden. Für viele Server bietet PHP eine direkte Schnittstelle (auch SAPI genannt). Unter diesen Servern befinden sich Apache, Microsoft Internet Information Server, Netscape und iPlanet Server. Falls PHP kein Modul für Ihren Webserver anbietet, können Sie es noch immer als CGI- oder FastCGI-Prozessor verwenden. Das bedeutet, Sie setzen Ihren Server so auf, dass er die ausführbare Datei für CGI von PHP verwendet, um alle Anfragen nach PHP Dateien auf dem Server zu verarbeiten.

Falls Sie außerdem darin interessiert sind, PHP für Kommandozeilenskripte zu verwenden (z.B. Skripte schreiben, die automatisch offline Bilder erzeugen oder Textdateien abhängig von einigen übergebenen Parametern zu verarbeiten), benötigen Sie die ausführbare Datei für die Kommandozeile. Für mehr Informationen lesen Sie bitte den Abschnitt über PHP auf der Kommandozeile. In diesem Fall benötigen Sie weder einen Server noch einen Browser.

Mit PHP können Sie ebenfalls grafische Desktopanwendungen mittels der PHP-GTK-Erweiterung schreiben. Dies erfordert einen völlig anderen Ansatz als das Verfassen von Webseiten, da man kein HTML ausgibt, sondern Fenster und darin enthaltene Objekte verwaltet. Für mehr Informationen zu PHP-GTK werfen Sie bitte einen Blick auf » diese Seite über die Erweiterung. PHP-GTK ist nicht in den offiziellen PHP-Paketen enthalten.

Von jetzt an behandelt dieser Abschnitt nur noch die Installation von PHP für Webserver auf Unix und Windows mittels Serverschnittstellen und CGI. Sie werden außerdem in den folgenden Abschnitten Informationen über die ausführbare Datei für die Kommandozeile finden.

Den PHP-Quellcode und die -Binärpakete für Windows finden Sie unter » https://www.php.net/downloads.php.


Installation auf Unix-Systemen

Inhaltsverzeichnis

  • Apache 1.3.x auf Unix-Systemen
  • Apache 2.x auf Unixsystemen
  • Nginx 1.4.x auf Unix Systemen
  • Lighttpd 1.4 auf Unix Systemen
  • LiteSpeed Web Server/OpenLiteSpeed Web Server on Unix systems
  • CGI und Kommandozeilen Setups
  • HP-UX spezifische Installationshinweise
  • OpenBSD installation notes
  • Solaris specific installation tips
  • Debian GNU/Linux-Installationshinweise

Dieser Abschnitt leitet Sie durch die generelle Konfiguration und Installation von PHP auf Unix-Systemen. Bitte lesen Sie zuerst alle Abschnitte, die speziell für Ihre Plattform oder Ihren Webserver zugeschnitten sind, bevor Sie mit dem Installationsprozess beginnen.

Wie dieses Handbuch im Abschnitt Generelle Installationsüberlegungen darlegt, behandeln wir hauptsächlich die web-zentrierten Einrichtungen von PHP, obwohl wir die Installation von PHP für die Kommandozeilennutzung ebenso beschreiben.

Es gibt veschiedene Wege, PHP auf Unix-Plattformen zu installieren: Entweder mit einem Kompilierungs- und Konfigurierungsprozess oder durch verschiedene Methoden von vorgefertigten Paketen. Diese Dokumentation richtet ihr Augenmerk hauptsächlich auf den Prozess des Selbstkompilierens und -konfigurierens von PHP. Viele unix-artige Systeme haben eine Art von Paketinstallationssystem. Dies kann beim Aufsetzen einer Standardkonfiguration helfen, aber wenn Sie eine davon abweichende Menge an Features benötigen (etwa sichere Server oder andere Datenbanktreiber), könnte es sein, dass Sie PHP und/oder Ihren Webserver selbst bauen müssen. Falls Ihnen das Bauen und Kompilieren von Software nicht geläufig ist, ist es lohnenswert zu prüfen, ob bereits jemand ein PHP-Paket mit den von Ihnen benötigten Features gebaut hat.

Folgende Fähigkeiten und Software benötigen Sie für die Kompilierung:

  • Grundlegende Unix-Fertigkeiten (die Fähigkeit, "make" und einen C- Kompiler zu bedienen)
  • Ein ANSI-C-Compiler
  • Einen Webserver
  • Modulspezifische Komponenten (wie GD, PDF-Bibliotheken usw.)

Wenn direkt von den Git Dateien kompiliert wird oder eigene Änderungen vorgenommen wurden, könnten folgende Komponenten benötigt werden:

  • autoconf: 2.59+ (für PHP >= 7.0.0), 2.64+ (für PHP >= 7.2.0)
  • automake: 1.4+
  • libtool: 1.4.x+ (ausgenommen 1.4.2)
  • re2c: Version 0.13.4 oder aktueller
  • bison:
    • PHP 7.0 - 7.3: 2.4 oder höher (einschließlich Bison 3.x)
    • PHP 7.4: > 3.0

Der anfängliche PHP Setup- und Konfigurationsprozess wird durch die Verwendung von Kommandozeilenoptionen des configure-Skriptes gesteuert. Sie sollten eine Liste von allen verfügbaren Optionen zusammen mit einer kurzen Erläuterung durch den Aufruf von ./configure --help erhalten. Unser Handbuch dokumentiert die verschiedenen Optionen einzeln. Sie finden die grundlegenden Optionen im Anhang, während die verschiedenen extensionspezifischen Optionen auf den Referenzseiten der Erweiterungen beschrieben sind.

Sobald PHP konfiguriert ist, sind Sie bereit, die Module und/oder die ausführbaren Dateien zu bauen. Der Befehl make sollte sich darum kümmern. Falls dies fehlschlägt und Sie nicht herausfinden können wieso, werfen Sie einen Blick in den Abschnitt Probleme.

Hinweis:

Einige Unixsystem (wie etwa OpenBSD und SELinux) verbieten aus Sicherheitsgründen möglicherweise das Abbilden von Seiten, die sowohl schreibbar als auch ausführbar sind, was PaX MPROTECT oder W^X violation protection genannt wird. Diese Art des Speicherabbildens ist allerdings für die JIT-Unterstützung von PCRE erforderlich, so dass PHP dann entweder ohne PCRE JIT-Unterstützung kompiliert werden muss, oder die ausführbare PHP-Datei auf eine Weise, die das System bietet, freigegeben (whitelist) werden muss.

Hinweis: Cross-Kompilierung für ARM mit der Android-Toolchain wird zurzeit nicht unterstützt.


Apache 1.3.x auf Unix-Systemen

Dieser Abschnitt beinhaltet Hinweise und Tipps, die sich auf die Installation von PHP speziell für Apache auf Unix-Plattformen beziehen. Wir haben Anweisungen und Hinweise für Apache 2 auf einer eigenen Seite.

Die Anweisungen, die Sie zum unten in Zeile 10 abgebildeten configure-Aufruf hinzufügen können, können Sie aus der Liste von grundlegenden Configure-Optionen und aus den für Erweiterungen spezifischen Optionen, die auf den jeweiligen Handbuchseiten beschrieben sind, auswählen. Um sicherzustellen, dass die Anweisungen nicht inkorrekt sind, wurden Versionsnummern hier ausgelassen. Sie müssen die Zeichenkette 'xxx' hier mit den zu Ihren Dateien passenden Werten ersetzen.

Beispiel #1 Installationsanweisungen (Apache Shared Module Version) für PHP

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

10. Konfigurieren Sie jetzt Ihr PHP. Dies ist die Stelle, an der Sie
    Ihr PHP mit verschiedenen Optionen, z.B. welche Erweiterungen aktiviert
    sein werden, anpassen können. Rufen Sie ./configure --help für eine Liste
    von verfügbaren Optionen auf. In unseren beispiel werden wir eine einfache
    Konfiguration mit Unterstützung für Apache 1 und MySQL vornehmen. Ihr
    Pfad zu apxs könnte von unserem Beispiel abweichen.

      ./configure --with-mysql --with-apxs=/www/bin/apxs

11. make
12. make install

    Falls Sie sich entscheiden, die Werte Ihrer Konfiguration nach der
    Installation zu ändern, müssen Sie nur die letzten drei Schritte
    wiederholen. Sie müssen nur Apache neu starten, damit das neue Modul
    aktiv wird. Eine erneute Kompilation von Apache ist nicht erforderlich.

    Beachten Sie, dass 'make install', falls nicht anders angewiesen,
    ebenfalls PEAR, verschiedene PHP-Tools wie phpize, das PHP CLI und mehr
    installieren wird.

13. Ihre php.ini Datei einrichten:

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

    Sie können Ihre .ini-Datei bearbeiten, um verschiedene PHP-Einstellungen
    vorzunehmen. Wenn Sie es bevorzugen, Ihre php.ini-Datei an anderer
    Stelle zu haben, verwenden Sie --with-config-file-path=/irgendein/pfad
    in Schritt 10.

    Wenn Sie stattdessen php.ini-production auswählen stellen Sie sicher, dass
    Sie die enthaltenen Änderungen lesen, da diese sich auf das Verhalten von
    PHP auswirken.

14. Ändern Sie Ihre httpd.conf-Datei, damit das PHP-Modul geladen wird. Der
    Pfad auf der rechten Seite des LoadModule Befehls muss zum Pfad des
    PHP-Moduls auf Ihrem System zeigen. Das 'make install' von oben könnte
    dies bereits für Sie hinzugefügt haben, aber prüfen Sie dies nach.

      LoadModule php5_module libexec/libphp5.so

15. Fügen Sie dies im AddModule-Abschnitt Ihrer httpd.conf, irgendwo unterhalb
    von ClearModuleList, hinzu:

      AddModule mod_php5.c

16. Sagen Sie Ihrem Apache, bestimmte Dateiendungen als PHP zu parsen. Zum
    Beispiel lassen wir die .php-Dateiendung als PHP behandeln. Sie können
    jede Erweiterung als PHP parsen lassen, indem Sie einfach weitere
    Endungen, jeweils durch ein Leerzeichen getrennt, hinzufügen. Wir fügen
    .phtml hinzu, um dies vorzuführen.

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

    Es ist weiterhin üblich, die .phps-Dateiendung zu konfigurieren, damit
    diese farblich hervorgehobenen Quellcode anzeigt. Dies kann wie folgt
    eingerichtet werden:

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

17. Verwenden Sie Ihre normale Prozedur, um den Apache zu starten. (Sie müssen
    den Server anhalten und neu starten, nicht nur ein erneutes laden des
    Servers mittels eines HUP- oder USR1-Signals veranlassen.)

Alternativ, um PHP als statisches Objekt zu installieren:

Beispiel #2 Installationsanweisungen (Statische Modulinstallation für Apache) für PHP

1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
2.  cd apache_1.3.x
3.  ./configure
4.  cd ..

5.  gunzip -c php-5.x.y.tar.gz | tar xf -
6.  cd php-5.x.y
7.  ./configure --with-mysql --with-apache=../apache_1.3.x
8.  make
9.  make install

10. cd ../apache_1.3.x

11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
    (Die obige Zeile ist korrekt! Ja, wir wissen, dass libphp5.a zu diesem
    Zeitpunkt nicht existiert. Das soll sie auch noch nicht. Sie wird
    angelegt werden.)

12. make
    (Sie sollten jetzt eine ausführbare Datei httpd haben, welche Sie in Ihr
    Apache-Binärverezichnis kopieren können. Wenn dies Ihre Erstinstallation
    ist, müssen Sie außerdem noch "make install" aufrufen)

13. cd ../php-5.x.y
14. cp php.ini-development /usr/local/lib/php.ini

15. Sie können /usr/local/lib/php.ini bearbeiten, um PHP-Einstellungen zu
    ändern. Bearbeiten Sie Ihre httpd.conf oder srm.conf-Datei und fügen Sie
    folgendes hinzu:

    AddType application/x-httpd-php .php

Abhängig von Ihrer Apacheinstallation und Unixvariante gibt es viele verschiedene Methoden, um den Server anzuhalten und erneut zu starten. Unten sind für verschiedene Apache/Unix-Installationen einige typische Zeilen zum Neustart des Servers. Sie sollten /path/to mit dem Pfad dieser Anwendungen auf Ihrem System ersetzen.

Beispiel #3 Beispielbefehle, um Apache neu zu starten

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

2. Verwendung der apachectl Skripte:
/path/to/apachectl stop
/path/to/apachectl start

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

4. Mit mod_ssl oder einem anderen SSL Server, könnten Sie manuell stoppen
   und starten wollen:
/path/to/apachectl stop
/path/to/apachectl startssl

Die Orte der apachectl- und http(s)dctl-Binärdateien sind häufig verschieden. Wenn Ihr System einen locate-, whereis- oder which-Befehl besitzt, können diese Ihnen beim Auffinden des Serverkontrollprogrammes helfen.

Verschiedene Beispiele zur Kompilierung von PHP für Apache wie folgt:

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

Dies wird eine Bibliothek libphp5.so erzeugen, die mittels einer LoadModule-Zeile in der httpd.conf des Apache geladen wird. PostgreSQL-Unterstützung ist in diese Bibliothek eingebaut.

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

Dies wird eine Bibliothek libphp5.so für Apache erzeugen, aber ebenso eine pgsql.so, die von PHP mit der Extension-Direktive in der php.ini-Datei oder durch explizites Laden in einem Skript mittels der Funktion dl() geladen wird.

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

Dies wird eine Bibliothek libmodphp5.a, eine mod_php5.c und einige zugehörige Dateien erzeugen und diese in das Verzeichnis src/modules/php5 des Apache Quellcodes kopieren. Kompilieren Sie danach Apache mit --activate-module=src/modules/php5/libphp5.a und das Apache Build System wird eine libphp5.a erzeugen und statisch in die Binärdatei httpd einbinden. Unterstützung für PostgreSQL wird in diese httpd Binärdatei mit eingebaut, weshalb das Endergebnis eine einzige Datei namens httpd ist, welche den gesamten Apache und PHP beinhaltet.

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

Genau wie oben, aber anstatt die Unterstützung für PostgreSQL direkt in httpd mit einzubinden wird eine gemeinsam verwendete Bibliothek namens pgsql.so erzeugt, die man mittels der php.ini Datei oder direkt über dl() in PHP einbinden kann.

Wenn Sie aus den verschiedenen Möglichkeiten auswählen, PHP zu kompilieren, sollten Sie die Vor- und Nachteile der jeweiligen Methoden bedenken. Das Erzeugen einer gemeinsam verwendeten Bibliothek resultiert darin, dass man Apache getrennt kompilieren kann und nicht alles erneut kompilieren muss, wenn man etwas zu PHP hinzufügt oder ändert. Das direkte Einbauen in Apache (statisch) bedeutet, dass PHP schneller lädt und schneller läuft. Für weitere Informationen konsultieren Sie die Apache » Webseite zur DSO-Unterstützung.

Hinweis:

Apaches mitgelieferte httpd.conf enthält derzeit einen Abschnitt, der wie folgt aussieht:

User nobody
Group "#-1"
Wenn man dies nicht auf "Group nogroup" oder etwas ähnliches ("Group daemon" ist auch üblich) ändert, wird PHP nicht imstande sein, Dateien zu öffnen.

Hinweis:

Stellen Sie sicher, dass Sie die installierte Version von apxs angeben, wenn Sie --with-apxs=/path/to/apxs verwenden. Sie dürfen NICHT die apxs-Version angeben, die dem Apache Quellcode beiliegt, sondern jene, die tatsächlich auf Ihrem System installiert ist.


Apache 2.x auf Unixsystemen

Dieser Abschnitt enthält Hinweise und Tipps, die sich auf die Installation von PHP speziell für Apache 2.x auf Unixsystemen beziehen.

Warnung

Wir empfehlen, in einer Produktionsumgebung kein Threaded MPM mit Apache2 zu verwenden. Verwenden Sie stattdessen das Prefork MPM, welches der Standard-MPM für Apace 2.0 und 2.2 ist. Für weitere Informationen und die Gründe lesen Sie bitte den entsprechenden FAQ-Eintrag über die Verwendung von Apache2 mit Threaded MPM.

Die » Apache Dokumentation ist die maßgebliche Informationsquelle für den Apache 2.x Server. Dort können weitere Informationen über Installationsoptionen für Apache gefunden werden.

Die aktuellste Version des Apache HTTP Servers kann von der » Apache Download Site bezogen werden, und eine passende PHP-Version von den oben angegebenen Quellen. Dieser Schnelleinstieg behandelt nur die Grundlagen, um mit Apache 2.x und PHP einzusteigen. Für mehr Informationen lesen Sie bitte die » Apache Dokumentation. Versionsnummern wurden hier ausgelassen, um sicherzustellen, dass die Anweisungen nicht inkorrekt sind. In den folgenden Beispielen sollte 'NN' durch die spezifische Version des verwendeten Apache ersetzt werden.

Es gibt aktuell zwei Versionen von Apache 2.x: 2.4 und 2.2. Obwohl es verschiedene Gründe gibt, sich für eine zu entscheiden, ist 2.4 die aktuellste Version, und diejenige, die empfohlen wird, wenn sie diese Möglichkeit haben. Allerdings funktionieren die folgenden Anweisungen sowohl für 2.4 als auch 2.2. Es ist zu beachten, dass Apache httpd 2.2 offiziell das Lebensende erreicht hat, so dass keine Weiterentwicklungen oder Fehlerkorrekturen mehr erfolgen werden.

  1. Beziehen Sie den Apache HTTP Server vom oben genannten Ort, und entpacken Sie ihn:

    tar -xzf httpd-2.x.NN.tar.gz

  2. Beziehen und entpacken Sie die PHP-Quellen gleichermaßen:

    tar -xzf php-NN.tar.gz

  3. Kompilieren und installieren Sie Apache. Entnehmen Sie der Apache Installationsdokumentation weitere Details zur Kompilierung.

    cd httpd-2_x_NN
./configure --enable-so
make
make install

  4. Nun steht Ihnen Apache 2.x.NN unter /usr/local/apache2 zur Verfügung, konfiguriert mit Unterstützung für nachladbare Module und dem Standard MPM Prefork. Um diese Installation zu testen, verwenden Sie die übliche Prozedur, den Apacheserver zu starten, also z.B.:

           /usr/local/apache2/bin/apachectl start
    Stoppen Sie nun den Server, um mit der Konfiguration von PHP fortzufahren:
           /usr/local/apache2/bin/apachectl stop.

  5. Konfigurieren und kompilieren Sie nun Ihr PHP. Dies ist die Stelle, an der Sie Ihr PHP mit verschiedenen Optionen, wie etwa installierten Erweiterungen, anpassen können. Rufen Sie ./configure --help auf, um eine Liste der verfügbaren Optionen zu erhalten. In unserem Beispiel werden wir eine einfache Konfiguration mit Unterstützung für Apache 2 und MySQL erzeugen.

    Wenn Sie Apache aus den Quelltexten kompiliert haben, wie oben beschrieben wurde, dann stimmt im folgenden Beispiel der Pfad von apxs, aber wenn Sie Apache auf andere Weise installiert haben, müssen Sie den Pfad von apxs entsprechend anpassen. Es ist zu beachten, dass einige Distros möglicherweise apxs zu apxs2 umbenennen.

    cd ../php-NN
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
make
make install

    Wenn Sie sich entscheiden, Ihre Konfigurationsoptionen nach der Installation zu ändern, müssen Sie nur die configure, make und make install Schritte wiederholen. Sie müssen nur Apache neustarten, damit das neue Modul verwendet wird. Eine erneute Kompilierung von Apache ist nicht notwendig.

    Beachten Sie, dass, wenn nicht anders erwähnt, 'make install' ebenso PEAR und verschiedene PHP Werkzeuge wie phpize, PHP CLI und anderes installieren wird.

  6. Ihre php.ini einrichten

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

    Sie können Ihre .ini-Datei ändern, um verschiedene PHP-Optionen zu setzen. Wenn Sie die php.ini-Datei an einer anderen Stelle bevorzugen, verwenden Sie --with-config-file-path=/some/path in Schritt 5.

    Wenn Sie sich stattdessen für php.ini-production entscheiden, stellen Sie sicher, dass Sie die darin enthaltene Liste von Änderungen lesen, da diese das Verhalten von PHP beeinflussen.

  7. Bearbeiten Sie Ihre httpd.conf, um das PHP Modul zu laden. Der Pfad auf der rechten Seite der LoadModule-Anweisung muss auf den Ort des PHP-Moduls auf Ihrem System zeigen. Das obige make install könnte dies bereits für Sie hinzugefügt haben, aber prüfen Sie dies.

    For PHP 7:

    LoadModule php7_module modules/libphp7.so

    For PHP 5:

    LoadModule php5_module modules/libphp5.so

  8. Weisen Sie Apache an, bestimmte Dateiendungen als PHP Skripte zu behandeln. Zum Beispiel werden wir den Apache Dateien mit der Endung .php als PHP ausführen lassen. Anstatt nur die Apachedirektive AddType zu verwenden, wollen wir zusätzlich verhindern, dass potentiell gefährliche hochgeladene und erzeugte Dateien wie exploit.php.jpg als PHP-Dateien ausgeführt werden. Wenn Sie dieses Beispiel verwenden, können Sie jede Dateiendung als PHP interpretieren lassen, wenn Sie sie einfach hinzufügen. Wir demonstrieren dies, indem wir .php einfügen.

    <FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

    Oder wenn wir erlauben wollen, dass .php, .php2, .php3, .php4, .php5, .php6 und .phtml und sonst nichts als PHP interpretiert werden, könnten wird ein Statement wie dieses verwenden:

    <FilesMatch "\.ph(p[2-6]?|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

    Und um zu erlauben, dass .phps Dateien vom PHP Source-Filter verarbeitet und als Quellcode mit Syntax-Highlighting angezeigt werden, verwenden Sie:

    <FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

    mod_rewrite kann verwendet werden, um zu erlauben, dass jede beliebige .php Datei als Quellcode mit Syntax-Highlighting angezeigt wird, ohne dass sie die Datei zu .phps umbenennen oder kopieren müssen:

    RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]

    Der PHP-Source-Filter sollte auf Produktionssystemen nicht aktiviert werden, da er vertrauliche oder anderweise sensible Informationen, die im Quellcode enthalten sind, preisgeben könnte.

  9. Verwenden Sie die übliche Prozedur, um den Apache Server zu starten, z.B.:

    /usr/local/apache2/bin/apachectl start

    ODER

    service httpd restart

Wenn Sie den obigen Anweisungen folgen, werden Sie einen laufenden Apache2 mit Unterstützung für PHP als SAPI-Modul erhalten. Natürlich existieren für Apache und PHP viele weitere Konfigurationseinstellungen. Verwenden Sie ./configure --help im jeweiligen Quellcodeverzeichnis, um weitere Informationen zu erhalten.

Apache2 kann multithreaded kompiliert werden, indem das worker MPM anstatt des normalen prefork MPM für den Build gewählt wird. Dies erfolgt, indem die folgende Option zu dem Argument, das weiter oben in Schritt 3 an ./configure übergeben wird, hinzugefügt wird:

--with-mpm=worker

Dies sollte nicht durchgeführt werden, ohne sich der Konsequenzen dieser Entscheidung bewusst zu sein, und zumindest eine angemesse Kenntnis der Implikationen zu haben. Die Apache Dokumentation bezüglich der » MPM-Module erörtert MPMs sehr ausführlich.

Hinweis:

Das Apache MultiViews FAQ erörtert die Verwendung von Multiviews mit PHP.

Hinweis:

Um eine Multithreaded Version von Apache zu erzeugen, muss das Zielsystem Threads unterstützen. In diesem Fall sollte auch PHP mit der experimentellen Zend Thread Safety (ZTS) kompiliert werden. Unter dieser Konfiguration sind nicht alle Erweiterungen verfügbar. Die empfohlene Einstellung ist es, Apache mit dem normalen prefork -MPM-Modul zu bauen.


Nginx 1.4.x auf Unix Systemen

Diese Dokumentation deckt die Installation und Konfiguration von PHP mit PHP-FPM für ein Nginx 1.4.x HTTP Server ab.

Diese Anleitung setzt voraus, dass Sie Nginx aus dem Quelltext erstellt haben und dadurch alle Binaries haben und die Konfigurations Dateien in /usr/local/nginx abgelegt sind. Wenn dies nicht der Fall ist und Sie Nginx über eine andere Quelle bezogen haben, dann sehen Sie bitte unter » Nginx Wiki nach, um dieses Manual für Ihre Installation zu übersetzen.

Diese Anleitung wird die Basics der Konfiguration eines Nginx Servers abdecken, um PHP Applikationen auszuführen und unter Port 80 bereitzustellen. Eine Studie der Nginx und PHP-FPM Dokumentation ist Voraussetzung für eine optimale Installation, die auch über den Umfang dieser Dokumentation hinaus geht.

Hinweis: In dieser Dokumentation wurden Versionsnummern durchgehend mit einem 'x' ersetzt. Dies stellt sicher, dass die Dokumentation auch für künftige Versionen richtig bleibt. Bitte ersetzen Sie diese soweit notwendig mit Ihrer entstprechenden Version.

  1. Voraussetzung ist, dass Sie im Nginx Wiki die » Installations Seite besuchen, um Nginx für Ihr System zu erhalten und zu installieren.

  2. Erhalten und entpacken der PHP-Quelle:

    tar zxf php-x.x.x

  3. Konfigurieren und Erstellen von PHP. Dies ist die Stelle, an der Sie Ihre PHP Installation individuell mit verschiedenen Optionen anpassen. Sowas wie: welche Erweiterung (extension) aktiviert (enabled) wird. Führen Sie ./configure --help für eine Liste der verfügbaren Optionen aus. In unserem Beispiel werden wir eine einfache Konfiguration mit PHP-FPM and MySQLi Unterstützung durchführen.

    cd ../php-x.x.x
./configure --enable-fpm --with-mysqli
make
sudo make install

  4. Erhalten und verschieben von Konfigurationsdateien an die richtige Stelle

    cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin

  5. Es ist wichtig, dass wir Nginx daran hindern Anfragen an das PHP-FPM Backend zu leiten, wenn die Datei nicht existiert. Dies erlaubt uns willkürliche Skript Eingaben (script injection) zu verhindern.

    Wir können dies durch eine Einstellung beheben, indem wir innerhalb unserer php.ini Datei die cgi.fix_pathinfo Direktive auf 0 setzen.

    Einlesen der php.ini:

    vim /usr/local/php/php.ini

    Positionieren auf cgi.fix_pathinfo= und wie folgt modifizieren:

    cgi.fix_pathinfo=0

  6. php-fpm.conf muss angepasst werden, damit php-fpm als User www-data und Gruppe www-data ausgeführt wird, bevor wir es Service starten können:

    vim /usr/local/etc/php-fpm.d/www.conf

    Finden und modifizieren Sie folgendes:

    ; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = www-data
group = www-data

    Der php-fpm Service kann wie folgt gestartet werden:

    /usr/local/bin/php-fpm

    Diese Anleitung wird nicht weiter auf die php-fpm Konfiguration eingehen. Wenn Sie weiteres Interesse an der php-fpm Konfiguration haben, dann ziehen Sie bitte die entsprechende Dokumentation heran.

  7. Nginx muss jetzt konfiguriert werden, um PHP Applikationen ablaufen zu lassen:

    vim /usr/local/nginx/conf/nginx.conf

    Modifizieren Sie den Bereich voreingestellte Positionen, um zu gewährleisten, dass .php Dateien verarbeitet werden:

    location / {
    root   html;
    index  index.php index.html index.htm;
}

    Der nächste Schritt soll sicherstellen, dass .php Dateien an des PHP-FPM Backend geleitet werden. Geben Sie unter dem auskommentierten standard PHP location Block folgendes ein:

    location ~* \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

    Neustart von Nginx.

    sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx

  8. Erstellen einer Test Datei

    rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php

    Nun navigieren Sie zu http://localhost. Die Funktion phpinfo() sollte nun angezeigt werden.

Folgen Sie den obigen Schritten und Sie werden ein laufenden Nginx Web-Server mit Unterstützung für PHP als ein FPM SAPI Modul erhalten. Natürlich sind noch viel mehr Konfigurations-Einstellungen für Nginx und PHP verfügbar. Für weitere Informationen geben Sie ./configure --help im entsprechenden Quellpfad ein.


Lighttpd 1.4 auf Unix Systemen

Dieser Abschnitt enthält Notizen und Hinweise zur Installtion von PHP für Lighttpd 1.4 für Unixsysteme.

Bitte benutzen Sie das » Lighttpd trac um die ordnungsgemäße Installation von Lighttpd zu lernen bevor Sie fortfahren.

Fastcgi ist die bevorzugte SAPI um PHP mit Lighttpd zu verbinden. Fastcgi ist automatisch bei php-cgi ab PHP Version 5.3 aktiviert. für ältere Version konfigurieren Sie PHP bitte mit der --enable-fastcgi Option. Um zu verifizieren, dass fastcgi aktiviert ist benutzen Sie bitte php -v. In diesen sollte Ihre Ausgabe PHP 5.2.5 (cgi-fcgi) enthalten. Vor PHP 5.2.3 war fastcgi in der php Binärtdatei aktiviert (es gab noch kein php-cgi).

Lighttpd einen php Prozess starten lassen

Um Lighttpd so zu konfigurieren, dass es sich mit php verbindet und einen fastcgi Prozess startet editieren sie bitte die lighttpd.conf. Sockets sind der bevorzugte Weg um sich auf einem lokalen System mit dem fastcgi Prozess zu verbinden.

Beispiel #1 Partial lighttpd.conf

server.modules += ( "mod_fastcgi" )

fastcgi.server = ( ".php" =>
  ((
    "socket" => "/tmp/php.socket",
    "bin-path" => "/usr/local/bin/php-cgi",
    "bin-environment" => (
      "PHP_FCGI_CHILDREN" => "16",
      "PHP_FCGI_MAX_REQUESTS" => "10000"
    ),
    "min-procs" => 1,
    "max-procs" => 1,
    "idle-timeout" => 20
  ))
)

Der bin-path erlaubt es Lighttpd einen neue fastcgi Prozess automatisch zu starten. PHP wird entsprechende der PHP_FCGI_CHILDREN Umgebungsvariable Kindprozesse starte. Das "bin-environment" Direktiv konfiguriert die Umgebung für gestartete Prozesse. PHP Wir Kindprozesse beenden nachdem die Anzahl von Anfragen laut PHP_FCGI_MAX_REQUESTS erreicht ist. Die Direktiven "min-procs" und "max-procs" sollten generell vermieden wirden bei PHP. PHP verwaltet seine eigenen Kindprozesse. Opcode caches wie APC werden nur unter Kindprozessen geteilt, welche von PHP verwaltet werden. Wenn "min-procs" auf einen Wert größer 1 gesetzt ist, wird die totale Anzahle an "php Respondern" mit PHP_FCGI_CHILDREN multipliziert. (2 min-procs * 16 Kindprozesser ergibt 32 Responder)

Spawning mit spawn-fcgi

Lighttpd bietet ein Programm "spawn-fcgi" an um den Prozess des Erstellens von fastcgi Prozessen zu vereinfachen.

Spawning php-cgi

Es ist möglich Prozesse ohne spawn-fcgi zu starten. Jedoch ist dafür etwas Arbeit nötig. Die Umgebungsvariable PHP_FCGI_CHILDREN Umgebungsvariable definiert wie viele Kindprozesse PHP spawnen wird um eingehende Anfragen zu bearbeiten. PHP_FCGI_MAX_REQUESTS definiert wie lange (in Anfragen) jeder Kindprozess existieren wird. Hier ist ein einfaches bash script um das Spawnen von PHP Respondern zu vereinfachen.

Beispiel #2 Spawning FastCGI Responders

#!/bin/sh

# Location of the php-cgi binary
PHP=/usr/local/bin/php-cgi

# PID File location
PHP_PID=/tmp/php.pid

# Binding to an address
#FCGI_BIND_ADDRESS=10.0.1.1:10000
# Binding to a domain socket
FCGI_BIND_ADDRESS=/tmp/php.sock

PHP_FCGI_CHILDREN=16
PHP_FCGI_MAX_REQUESTS=10000

env -i PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN \
       PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS \
       $PHP -b $FCGI_BIND_ADDRESS &

echo $! > "$PHP_PID"

Verbindung zu entfernten FCGI Instanzen

Um Anwendungen besser zu skalieren können fastcgi Instanzen auf mehreren entfernten Maschinen gestart werden.

Beispiel #3 Verbindung zu entferten php-fastcgi Instanzen

fastcgi.server = ( ".php" =>
   (( "host" => "10.0.0.2", "port" => 1030 ),
    ( "host" => "10.0.0.3", "port" => 1030 ))
)


LiteSpeed Web Server/OpenLiteSpeed Web Server on Unix systems

LiteSpeed PHP is an optimized compilation of PHP built to work with LiteSpeed products through the LiteSpeed SAPI. LSPHP runs as its own process and has its own standalone binary, which can be used as a simple command line binary to execute PHP scripts from the command line.

The LSAPI is a highly optimized API that allows communication between LiteSpeed and third party web engines. Its protocol is similar to FCGI, but is more efficient.

This documentation will cover installing and configuring PHP with LSAPI for a LiteSpeed Web Server and OpenLiteSpeed Web Server.

This guide will assume that either LSWS or OLS is installed with their default paths and flags. The default installation directory for both web servers is /usr/local/lsws and both can be run from the bin subdirectory.

Please note that throughout this documentation, version numbers have been replaced with an x to ensure this documentation stays correct in the future, please replace these, as necessary, with the corresponding version numbers.

  1. To obtain and install either LiteSpeed Web Server or OpenLiteSpeed Web Server, visit the LiteSpeed Web Server wiki » install page or OpenLiteSpeed wiki » install page.

  2. Obtain and unpack the php source:

    mkdir /home/php
cd /home/php
wget http://us1.php.net/get/php-x.x.x.tar.gz/from/this/mirror
tar -zxvf php-x.x.x.tar.gz
cd php-x.x.x

  3. Configure and build PHP. This is where PHP can be customized with various options, such as which extensions will be enabled. Run ./configure --help for a list of available options. In the example, we'll use the default recommended configuration options for LiteSpeed Web Server:

    ./configure ... '--with-litespeed'
make
sudo make install

  4. Checking The LSPHP Installation

    One of the simplest ways to check whether the installation of PHP was successful is to run the following code:

    cd /usr/local/lsws/fcgi-bin/
./lsphp5 -v

    This should return information about the new PHP build:

    PHP 5.6.17 (litespeed) (built: Mar 22 2016 11:34:19)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

    Notice the litespeed in parenthesis. This means that the PHP binary has been built with LSAPI support.

Following the steps above, LiteSpeed / OpenLiteSpeed Web Server should now be running with support for PHP as an SAPI extension. There are many more configuration options available for LSWS / OLS and PHP. For more information, check out the LiteSpeed wiki about » PHP.

Using LSPHP from the command line:

LSPHP(LSAPI + PHP) command line mode is used to process PHP scripts running on a remote server that does not necessarily have a web server running. It is used to process PHP scripts residing on a local web server (separate). This setup is suitable for service scalability as PHP processing is offloaded to a remote server.

Start lsphp from the command line on a remote server: LSPHP is an executable and can be started manually and bound to IPv4, IPv6, or Unix domain socket addresses with the command line option -b socket_address

Examples:

Have LSPHP bind to port 3000 on all IPv4 and IPv6 addresses:

/path/to/lsphp -b [::]:3000

Have LSPHP bind to port 3000 on all IPv4 addresses:

/path/to/lsphp -b *:3000

Have LSPHP bind to address 192.168.0.2:3000:

/path/to/lsphp -b 192.168.0.2:3000

Have LSPHP accept requests on Unix domain socket /tmp/lsphp_manual.sock:

/path/to/lsphp -b /tmp/lsphp_manual.sock

Environment variables can be added before the LSPHP executable:

PHP_LSAPI_MAX_REQUESTS=500 PHP_LSAPI_CHILDREN=35 /path/to/lsphp -b IP_address:port

Currently LiteSpeed PHP can be used with LiteSpeed Web Server, OpenLiteSpeed Web Server, and Apache mod_lsapi. For steps on server-side configuration, visit the wiki pages for » LiteSpeed Web Server and » OpenLiteSpeed.

LSPHP can be installed in several other ways as well.

CentOS: On CentOS, LSPHP can be installed from the LiteSpeed Repository or the Remi Repository using » RPM.

Debian: On Debian, LSPHP can be installed from the LiteSpeed Repository using » apt.

cPanel: Visit the respective » wiki page about how to install LSPHP with cPanel and LSWS/OLS using EasyApache 4.

Plesk: Plesk can be used with LSPHP on CentOS, CloudLinux, Debian, and Ubuntu, for more details on this, visit the respective » wiki page


CGI und Kommandozeilen Setups

Sandardmäßig wird PHP als CLI und CGI Programm kompiliert, wobei letzteres für die CGI-Verarbeitung verwendet werden kann. Sollte Ihr Webserver die Möglichkeit der Einbindung als Modul besitzen, dann sollten Sie grundsätzlich diese Option aus Leistungsgründen bevorzugen. CGI Versionen bieten jedoch den Vorteil verschiedene PHP-Seiten unter unterschiedlichen Benutzerkennungen auszuführen.

Warnung

Wenn Sie das CGI-Setup verwenden, ist Ihr Server für einige mögliche Angriffe anfällig. Wie Sie sich vor diesen Angriffen schützen können, entnehmen Sie bitte dem Kapitel über CGI-Sicherheit.

Testen

Wenn Sie PHP als CGI Programm kompiliert haben, dann können Sie Ihren Build mit make test überprüfen. Es ist generell eine gute Idee Ihren Build zu testen. Auf diesem Weg können sie Probleme frühzeitig erkennen statt durch diese später Schwierigkeiten zu bekommen.

Benutzung von Variablen

Einige vom Server bereitgestellte Variablen sind nicht in der aktuellen » CGI/1.1 Spezifikation spezifiziert. Nur die folgenden Variablen sind dort definiert: AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL und SERVER_SOFTWARE. Alles andere ist als Hersteller spezifische Erweiterung zu verstehen.


HP-UX spezifische Installationshinweise

Dieser Abschnitt entält Bemerkungen und Hinweise bezüglich der Installation von PHP auf HP-UX Systemen.

Es gibt hauptsächlich zwei Möglichkeiten PHP auf einem HP-UX System zu installieren. Entweder ist PHP selbst zu kompilieren, oder es ist ein bereits vorkompiliertes Binärpakete zu verwenden.

Offizielle vorkompilierte Pakete können hier bezogen werden: » http://software.hp.com/

Bis dieser Abschnitt nicht neu geschrieben wird, wurde die Anleitung für das Kompilieren von PHP (und seinen Erweiterungen) auf HP-UX Systemen entfernt. Bis auf Weiteres ist das Lesen der folgenden externen Ressource in Erwägung zu ziehen: » Building Apache and PHP on HP-UX 11.11


OpenBSD installation notes

This section contains notes and hints specific to installing PHP on » OpenBSD 5.8.

Using Binary Packages

Using binary packages to install PHP on OpenBSD is the recommended and simplest method. The core package has been separated from the various modules, and each can be installed and removed independently from the others. The files you need can be found on your OpenBSD CD or on the FTP site.

The main package you need to install is php, which contains the basic engine (plus gettext and iconv). Next, take a look at the module packages, such as php-mysql or php-imap. You need to use the phpxs command to activate and deactivate these modules in your php.ini.

Beispiel #1 OpenBSD Package Install Example

# pkg_add php
# pkg_add php-fpm
# pkg_add php-mysql
  (install the PEAR libraries)
# pkg_add pear

Follow the instructions shown with each package!

  (to remove packages)
# pkg_delete php
# pkg_delete php-fpm
# pkg_delete php-mysql
# pkg_delete pear

Read the » packages(7) manual page for more information about binary packages on OpenBSD.

Using Ports

You can also compile up PHP from source using the » ports tree. However, this is only recommended for users familiar with OpenBSD. The PHP 4 port is split into two sub-directories: core and extensions. The extensions directory generates sub-packages for all of the supported PHP modules. If you find you do not want to create some of these modules, use the no_* FLAVOR. For example, to skip building the imap module, set the FLAVOR to no_imap.

Common Problems

  • Apache and Nginx are no longer the default server on OpenBSD, but they can both be easily found in ports and packages. The new default server is also called 'httpd'.
  • The default install of httpd runs inside a » chroot(2) jail, which will restrict PHP scripts to accessing files under /var/www. You will therefore need to create a /var/www/tmp directory for PHP session files to be stored, or use an alternative session backend. In addition, database sockets need to be placed inside the jail or listen on the localhost interface. If you use network functions, some files from /etc such as /etc/resolv.conf and /etc/services will need to be moved into /var/www/etc. The OpenBSD PEAR package automatically installs into the correct chroot directories.
  • The OpenBSD 5.7+ package for the » gd extension requires XFree86 to be installed. This can be added post-installation (See OpenBSD FAQ#4) by adding the xbase.tgz file set.

Older Releases

Older releases of OpenBSD used the FLAVORS system to compile up a statically linked PHP. Since it is hard to generate binary packages using this method, it is now deprecated. You can still use the old stable ports trees if you wish, but they are unsupported by the OpenBSD team. If you have any comments about this, the current maintainer for the port is Anil Madhavapeddy (avsm at openbsd dot org).


Solaris specific installation tips

This section contains notes and hints specific to installing PHP on Solaris systems.

Required software

Solaris installs often lack C compilers and their related tools. Read this FAQ for information on why using GNU versions for some of these tools is necessary.

For unpacking the PHP distribution you need

  • tar
  • gzip or
  • bzip2

For compiling PHP you need

  • gcc (recommended, other C compilers may work)
  • make
  • GNU sed

For building extra extensions or hacking the code of PHP you might also need

  • flex (up to PHP 5.2)
  • re2c
  • bison
  • m4
  • autoconf
  • automake
In addition, you will need to install (and possibly compile) any additional software specific to your configuration, such as Oracle or MySQL.

Using Packages

You can simplify the Solaris install process by using pkgadd to install most of your needed components. The Image Packaging System (IPS) for Solaris 11 Express also contains most of the required components for installation using the pkg command.


Debian GNU/Linux-Installationshinweise

Dieser Abschnitt beinhaltet Hinweise und Tipps für die Installation von PHP unter » Debian GNU/Linux.

Warnung

Nicht offizielle Pakete von Drittanbietern werden hier nicht unterstützt. Alle Bugs sollten an das Debian-Team gemeldet werden, außer falls sie mit den letzten Paketen von unserer » Download-Seite reproduzierbar sind.

Auch wenn die Anweisungen zum Kompilieren von PHP unter Unix auch für Debian gelten, enthält diese Handbuchseite spezielle Informationen für weitere Optionen, wie z.B. über die Nutzung der apt-get- oder aptitude-Kommandos. Diese Handbuchseite nutzt beide Kommandos synonym.

APT verwenden

Beachten Sie zunächst, dass andere verwandte Pakete wie libapache2-mod-php5 (zur Integration mit Apache 2) oder php-pear (für PEAR) existieren.

Außerdem sollten Sie vor der Installation eines Pakets sicherstellen, dass die Paketliste auf dem aktuellen Stand ist. Üblicherweise kann dies durch das Kommando apt-get update erledigt werden.

Beispiel #1 Debian-Installations-Beispiel mit Apache 2

# apt-get install php5-common libapache2-mod-php5 php5-cli

APT wird automatisch das PHP-5-Modul für Apache 2 sowie alle seine Abhängigkeiten installieren und danach aktivieren. Damit die Änderungen in Kraft treten, muss Apache neu gestart werden. Zum Beispiel:

Beispiel #2 Stoppen und Starten von Apache nach der Installation von PHP

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

Bessere Kontrolle über die Konfiguration

Im letzten Abschnitt wurde PHP nur mit den Basismodulen installiert. In den meisten Fällen werden Sie weitere Module wie MySQL, cURL oder GD benötigen. Auch diese Module können mit dem apt-get-Kommando installiert werden.

Beispiel #3 Methoden zur Anzeige weiterer PHP-5-Pakete

# apt-cache search php5
# aptitude search php5
# aptitude search php5 |grep -i mysql

Diese Beispiel werden eine große Zahl von Paketen, inklusive spezieller PHP-Pakete wie php5-cgi, php5-cli und php5-dev, anzeigen. Entscheiden Sie, welche Sie benötigen und installieren Sie diese wie jedes andere Paket entweder mit apt-get oder aptitude. Weil Debian Abhängigkeiten prüft, wird es Sie ggf. fragen, um MySQL und cURL zu installieren:

Beispiel #4 PHP mit MySQL und cURL installieren

# apt-get install php5-mysql php5-curl

APT wird automatisch die passenden Zeilen zu Ihren verschiedenen mit der php.ini verwandten Dateien hinzufügen, wie z.B. /etc/php5/apache2/php.ini, /etc/php5/conf.d/pdo.ini etc. Abhängig von der Erweiterung wird es Einträge ähnlich wie extension=foo.so hinzufügen. Das Neustarten des Web-Server (z.B. Apache) ist erforderlich, damit die Änderungen sich auswirken.

Bekannte Probleme

  • Wenn die PHP-Skripte nicht vom Web-Server geparst werden, ist es wahrscheinlich, dass PHP nicht zur Konfigurationsdatei des Web-Servers hinzugefügt wurde. Unter Debian ist dies meist /etc/apache2/apache2.conf (oder ähnlich). Im Debian-Handbuch finden Sie weitere Details hierzu.
  • Falls eine Erweiterung anscheinend installiert wurde, aber die Funktionen nicht definiert sind, müssen Sie sicherstellen, dass die entsprechede INI-Datei geladen wurde und/oder dass der Web-Server nach der Installation neu gestartet wurde.
  • Es gibt zwei grundlegende Kommandos für die Installation von Paketen unter Debian (und anderen Linux-Varianten): apt-get und aptitude. Die Erläuterung der feinen Unterschiede zwischen diesen Kommandos liegt außerhalb dessen, was dieses Handbuch umfasst.


Installation unter macOS

Inhaltsverzeichnis

  • Verwendung von Paketen
  • Das enthaltene PHP verwenden
  • Kompilieren von PHP unter macOS

Dieses Kapitel beschreibt die Installation von PHP unter macOS. PHP wird auf Macs ausgeliefert; das Kompilieren ist ähnlich zur Installation unter Unix.


Verwendung von Paketen

Es gibt verschiedene vorkompilierte und gepackte Versionen von PHP für macOS. Sie können zum Aufsetzen von Standardkonfigurationen verwendet werden. Sobald Sie spezielle Funktionen benötigen (z.B. unterschiedliche Datenbanktreiber), müssen Sie sich Ihr eigenes PHP - eventuell auch einen eigenen Webserver - kompilieren. Wenn Sie nicht vertraut mit dem Kompilieren eigener Software sind, sollten Sie prüfen, ob nicht bereits jemand ein gepacktes und vorkompiliertes System bereitstellt, das Ihren Anforderungen entspricht.

Die folgenden Quellen bieten einfach zu installierende PHP-Pakete für Mac OS X an:

  • MacPorts: » http://www.macports.org/
  • Liip: » http://php-osx.liip.ch/
  • Fink: » http://www.finkproject.org/
  • Homebrew: » https://github.com/Homebrew/brew


Das enthaltene PHP verwenden

Seit der Version 10.0.0 ist PHP standardmäßig in macOS enthalten. Um PHP mit dem Standard-Webserver zu verwenden, müssen nur ein paar Zeilen in der Apache Konfigurationsdatei httpd.conf auskommentiert werden. CGI und/oder CLI sind standardmäßig aktiviert (zugänglich über das Terminal-Programm).

Die folgende Anleitung, um PHP zu aktivieren, ermöglicht ein einfaches und schnelles Aufsetzen einer lokalen Entwicklungsumgebung. Es wird dringend empfohlen, PHP immer auf dem neusten Stand zu halten. Wie für die meisten Anwendungen werden auch für PHP regelmäßig neue Versionen erstellt, um Fehler zu beseitigen und um den Funktionsumfang zu erweitern. Für weitere Informationen sollten Sie die entsprechende macOS-Installations-Dokumentation lesen. Die folgende Anleitung richtet sich an Anfänger, um eine Standardkonfiguration aufzusetzen. Alle Benutzer sollten angespornt sein, neuere Paket-Versionen zu installieren oder selbst zu kompilieren.

Die normale Installation beinhaltet die Aktivierung des mitgelieferten mod_php für den Apache-Webserver (Standard-Webserver, der über die Systemeinstellungen von macOS zugänglich ist) und umfasst folgende Schritte:

  1. Öffnen Sie die Apache Konfigurationsdatei. Normalerweise finden Sie diese unter: /etc/httpd/httpd.conf Über den Finder oder Spotlight wird die Datei nur schwer zu finden sein, da sie privat ist und den Rechten des root-Benutzers unterliegt.

    Hinweis: Ein Weg, um die Datei zu öffnen, ist, einen Unix-basierten Texteditor im Terminal, z.B. nano, zu verwenden. Da die Datei dem Benutzer root gehört, sollten Sie den sudo-Befehl zum Öffnen (mit Root-Rechten) verwenden. Z.B. können Sie Folgendes im Terminal-Programm eingeben (danach werden Sie nach dem Passwort gefragt): sudo nano /etc/httpd/httpd.conf Nennenswerte Befehle für nano: ^w (suchen), ^o (speichern), und ^x (schließen) wobei ^ für die ctrl-Taste steht.

    Hinweis: Versionen von Mac OS X vor 10.5 enthielten ältere Versionen von PHP und Apache. Daher kann sich die Apache-Konfigurationen auf solchen älteren Maschinen im folgenden Verzeichnis befinden: /etc/httpd/httpd.conf.

  2. Mit einem Texteditor müssen Sie nur die Zeilen, die ähnlich wie die folgenden aussehen, einkommentieren (durch entfernen von #; die beiden Zeilen sind oft ein Stück voneinander getrennt):

    # LoadModule php5_module libexec/httpd/libphp4.so

# AddModule mod_php5.c
    Beachten Sie die Dateipfade. Wenn Sie zukünftig PHP selbst kompilieren, sollten die beiden Dateien ersetzt oder wieder auskommentiert werden.

  3. Stellen Sie sicher, dass die gewünschten Dateiendungen durch PHP geparst werden (z.B.: .php .html und .inc)

    Durch die bereits in der Datei httpd.conf (ab MacOS Panther), enthaltenen Angaben, werden Dateien mit der Endung .php nach dem Aktivieren von PHP automatisch geparst.

    <IfModule mod_php4.c>
    # Wenn PHP aktiviert wurde, werden .php und .phps Dateien berücksichtigt.
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    # Da die meisten Benutzer index.php verwenden möchten, aktivieren
    # wir ebenso automatisch die index.php
    <IfModule mod_dir.c>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

    Hinweis:

    Vor Mac OS X 10.5 (Leopard) war PHP 4 statt PHP 5 enthalten, weswegen die oben genannten Anweisungen angepasst werden müssen (Ersetzen der "5" durch die "4").

  4. Stellen Sie sicher, dass durch DirectoryIndex die gewünschten richtigen Index-Dateien geladen werden. Dies kann ebenfalls in httpd.conf definiert werden. Normalerweise wird index.php und index.html verwendet. Standardmäßig ist index.php aktiviert, wie oben bereits gezeigt. Passen Sie es wie gewünscht an.
  5. Pfad zur php.ini setzen oder den Standard verwenden Der Standardpfad unter macOS ist /usr/local/php/php.ini, was durch einen Aufruf von phpinfo() geprüft werden kann. Wenn keine php.ini angegeben ist, verwendet PHP die Standardwerte. Lesen Sie dazu die entsprechenden FAQ: Wo sollte sich meine php.ini befinden?.
  6. Finden oder Setzen des DocumentRoot Dies ist das Wurzelverzeichnis für alle Web-Dateien. Dateien in diesem Verzeichnis werden durch den Webserver ausgeliefert. PHP-Dateien werden geparst, bevor sie an einen Browser ausgeliefert werden. Der standardmäßig gesetzte Pfad ist /Library/WebServer/Documents und kann in der httpd.conf auf einen beliebigen Pfad gesetzt werden. Alternativ ist der standardmäßige Pfad zum DocumentRoot für die einzelnen Benutzer: /Users/ihr_benutzername/Sites
  7. Erstellen einer phpinfo()-Datei

    Die phpinfo()-Funktion zeigt Informationen über PHP an. Erstellen Sie eine Datei im DocumentRoot mit dem folgenden Inhalt:

    <?php phpinfo(); ?>

  8. Starten Sie den Apache neu und laden Sie die eben erzeugte PHP-Datei

    Um neu zu starten, können Sie entweder sudo apachectl graceful im Terminal aufrufen oder die Stop-/Start-Option des "Personal Web Server" in den macOS-Systemeinstellungen verwenden. Standardmäßig sollte folgende URL zum Laden von lokalen Dateien im Webbrowser genügen: http://localhost/info.php Alternativ, um Dateien aus dem DocumentRoot eines lokalen Benutzers zu laden: http://localhost/~IHR_BENUTZER_NAME/info.php

Das CLI (oder CGI in älteren Versionen) heißt entsprechend php und existiert wahrscheinlich als /usr/bin/php. Öffnen Sie das Terminal, lesen Sie das Kapitel PHP auf der Kommandozeile des PHP-Handbuchs und führen Sie php -v aus, um die PHP-Version dieses PHP-Binärprogramms zu sehen. Ein Aufruf von phpinfo() enthält diese Informationen ebenfalls.


  • « Das enthaltene PHP verwenden
  • Installation on Windows systems »
  • PHP Manual
  • Installation unter macOS
  • Kompilieren von PHP unter macOS

Kompilieren von PHP unter macOS

Um PHP unter macOS zu kompilieren, nutzen Sie die Unix-Installationsanleitung.


Installation on Windows systems

Inhaltsverzeichnis

  • Install Requirements
  • PECL
  • PHP Installer Tools on Windows
  • Recommended Configuration on Windows systems
  • Manuelle PHP-Installation auf Windows
  • Troubleshooting PHP on Windows
  • Installation auf alten Windowssystemen

Installing PHP on modern Microsoft Windows systems and recommended configuration with common web servers.

Hinweis:

If you are looking for information about older systems, such as Windows XP, 2003, 98 or Apache 1.x, see the Legacy Info section.

The Official releases of PHP on Windows are recommended for production use. However, you are welcome to build PHP from Source. You will need a Visual Studio environment. See » Step by Step Build Instructions.

  • Using PHP on Windows Command line

  • Installing PHP on Azure App Services (aka Microsoft Azure, Windows Azure, or (Windows) Azure Web Apps).


Install Requirements

PHP 5.5+ require at least Windows 2008/Vista, or 2008r2, 2012, 2012r2, 2016 or 7, 8, 8.1, 10. Either 32-Bit or 64-bit (aka X86 or X64. PHP does not run on Windows RT/WOA/ARM). As of PHP 7.2.0 Windows 2008 and Vista are no longer supported.

PHP requires the Visual C runtime(CRT). Many applications require that so it may already be installed.

PHP 5.5 and 5.6 require VC CRT 11 (Visual Studio 2012). See: » https://www.microsoft.com/en-us/download/details.aspx?id=30679

PHP 7.0 and 7.1 require VC CRT 14 (Visual Studio 2015). PHP 7.2, 7.3 and 7.4 require VC CRT 15 (Visual Studio 2017). The Microsoft Visual C++ Redistributable for Visual Studio 2019 is suitable for all these PHP versions, see » https://visualstudio.microsoft.com/downloads/.

You MUST download the x86 CRT for PHP x86 builds and the x64 CRT for PHP x64 builds.

If CRT is already installed, the installer will tell you that and not change anything.

The CRT installer supports the /quiet and /norestart command-line switches, so you can script running it.

VC11 CRT DLLs can be copied from your local machine to a remote machine(a `Copy Deployment` installation) instead of running the installer on the remote machine (such as a web server you have restricted access to).

VC14 CRT does not support a `Copy Deployment` installation. VC14 CRT has many more DLLs(most in files with names starting with api-*). If you can find them all and copy them, it will also work (try a tool like Resource Hacker to get a list of all the DLLs to copy).


PECL

PECL extensions are pre-built for Windows and available from: » http://windows.php.net/downloads/pecl/releases/

Some extensions use features specific to some Unix systems and so are not available on Windows. Otherwise, all extensions are available for Windows.


PHP Installer Tools on Windows

PHP Install Tools

If you want to setup PHP and are using IIS, the easiest way is to use » Microsoft's Web Platform Installer (WebPI).

» XAMPP, WampServer and BitNami will setup PHP applications for use with Apache on Windows.

Setting up and configuring Nginx on Windows requires a bit more configuration. See the » Nginx documentation for additional setup help.


Recommended Configuration on Windows systems

OpCache

Highly Recommended that you enable OpCache. This extension is included with PHP for Windows. It compiles and optimizes PHP scripts and caches them in memory so that they aren't compiled every time the page is loaded.

In your php.ini, set

Beispiel #1 Recommended OpCache configuration

zend_extension=php_opcache.dll
opcache.enable=On
opcache.enable_cli=On
And restart your web server. For more info, see: OpCache Configuration

WinCache

Recommended that you use WinCache if using IIS, especially if in a shared web hosting environment or using networked file storage (NAS). All PHP Applications automatically benefit from WinCache's file cache feature. File system operations are cached in memory. WinCache also can cache user objects in memory and share them between php.exe or php-cgi.exe processes (share objects between requests). Many major web applications have a plugin or extension or configuration option to make use of the WinCache user object cache. If you need high performance, you should use the object cache in your applications. See: » http://pecl.php.net/package/WinCache to download a WinCache DLL (or tgz) to your PHP extensions directory (extensions_dir in your php.ini). In your php.ini, set

Beispiel #2 Recommended WinCache configuration

extension=php_wincache.dll
wincache.fcenabled=1
wincache.ocenabled=1 ; removed as of wincache 2.0.0.0
For more info, see: » http://php.net/manual/en/wincache.configuration.php

IIS Configuration

In IIS Manager, Install FastCGI module and add a handler mapping for `.php` to the path to PHP-CGI.exe (not PHP.exe)

You may use the APPCMD command line tool to script IIS configuration.

Database

You'll probably need a Database Server. Popular databases provide PHP extensions to use them. If your web site doesn't get a lot of traffic, you can run your database server on the same server as your web server. Many popular database servers run on Windows.

PHP includes mysqli and pdo_mysql extensions. PHP 5.5 and 5.6 include mysql extension (deprecated in 7.0).

See » https://dev.mysql.com/downloads/windows/


Manuelle PHP-Installation auf Windows

Web-Server wählen

  • IIS ist in Windows eingebaut. Auf Windows Server verwenden Sie den Server Manager, um die IIS-Funktion hinzuzufügen. Achten Sie darauf, das CGI-Rollen-Feature hinzuzufügen. Verwenden Sie auf dem Windows-Desktop die Systemsteuerung unter Software, um IIS hinzuzufügen. Siehe: » https://msdn.microsoft.com/en-us/library/ms181052%28v=vs.80%29.aspx?f=255&MSPPError=-2147217396 Für Desktop-Webanwendungen und Web-Entwicklung können Sie auch IIS/Express oder PHP Desktop verwenden.

    Beispiel #1 Kommandozeilen-Konfiguration von IIS und PHP

@echo off

REM Zip-Datei des PHP build von http://windows.php.net/downloads/ herunter laden
REM Pfad des Ordners in den die PHP-Zip-Datei entpackt wurde (ohne abschließendes \)
set phppath=c:\php

REM Löschen der aktuellen PHP-Handler
%windir%\system32\inetsrv\appcmd clear config /section:system.webServer/fastCGI
REM Das folgende Kommando erzeugt eine Fehlermeldung, wenn PHP nicht installiert ist. Dies kann ignoriert werden.
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /-[name='PHP_via_FastCGI']

REM Aufsetzen der PHP-Handler
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI /+[fullPath='%phppath%\php-cgi.exe']
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='%phppath%\php-cgi.exe',resourceType='Unspecified']
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /accessPolicy:Read,Script

REM Konfiguration der FastCGI-Variablen
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath='%phppath%\php-cgi.exe'].instanceMaxRequests:10000
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']"
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHPRC',value='%phppath%\php.ini']"
    Manuelle Konfiguration von IIS

  • Es gibt mehrere Versionen von Apache2 für Windows. Wir unterstützen ApacheLounge, aber zu den weiteren Optionen gehören XAMPP, WampServer und BitNami, die automatische Installationswerkzeuge bereitstellen. Sie können mod_php oder mod_fastcgi verwenden, um PHP auf Apache zu laden. Wenn Sie mod_php verwenden, MÜSSEN Sie einen TS-Build von Apache verwenden, der mit derselben Version von Visual C und derselben CPU (x86 oder x64) erstellt wurde. Wie man Apache2 manuell konfiguriert

Build wählen

PHP-Produktionsversionen herunterladen von » http://windows.php.net/download/. Bei den Snapshot- und Qa-Releases wurde bereits eine Menge getestet und optimiert, aber Sie können uns gerne dabei helfen, noch mehr zu tun. Es gibt 4 Arten von PHP-Builds:

  • Thread-Safe(TS) - Verwendung für Einzelprozess-Webserver, wie Apache mit mod_php

  • Non-Thread-Safe(NTS) - Verwendung für IIS und andere FastCGI-Webserver (Apache mit mod_fastcgi) und empfohlen für Befehlszeilen-Skripte

  • x86 - produktiver Einsatz von PHP 5.5 oder 5.6 oder 7.0.

  • x64 - produktiver Einsatz von PHP 7.0+, sofern es sich nicht um eine reine 32-Bit-Version von Windows handelt. 5.5 und 5.6 x64 sind experimentell.


Troubleshooting PHP on Windows

Check Temp Directory Permissions

  1. Right-click temp directory in File Explorer to get the permissions.

  2. For IIS, check that user IIS_User has MODIFY permission. You can get the temporary directory from the configuration or php info.


Installation auf alten Windowssystemen

Dieser Abschnitt gilt für Windows 98/Me und Windows NT/2000/XP/2003. PHP läuft nicht auf 16-Bit Plattformen wie z.B. Windows 3.1 und manchmal bezeichnen wir die unterstützten Windows Plattformen als Win32.

Hinweis:

Windows XP/2003 wird seit PHP 5.5.0 nicht mehr unterstützt.

Hinweis:

Windows 98/Me/NT4/2000 wird seit PHP 5.3.0 nicht mehr unterstützt.

Hinweis:

Windows 95 wird seit PHP 4.3.0 nicht mehr unterstützt.

Falls Sie eine Entwicklungsumgebung wie z.B. Microsoft Visual Studio haben, können Sie auch selbst PHP aus dem original Quellcode kompilieren.

Wenn sie ersteinmal PHP auf Ihrem System installiert haben, möchten Sie vielleicht für erweiterte Funktionalität verschiedene Erweiterungen herunterladen.

Manual Installation Steps

This section contains instructions for manually installing and configuring PHP on Microsoft Windows.

Selecting and downloading the PHP distribution package

Download the PHP zip binary distribution from » PHP for Windows: Binaries and Sources. There are several different versions of the zip package - to choose the right version for you, follow the detailed guide on the » download page.

The PHP package structure and content

Unpack the content of the zip archive into a directory of your choice, for example C:\PHP\. The directory and file structure extracted from the zip will look as below:

Beispiel #1 PHP 5 package structure

c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib                 -- php5.lib in non thread safe version
   |
   +--ext                          -- extension DLLs for PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-...
   |
   +--extras                       -- empty
   |
   +--pear                         -- initial copy of PEAR
   |
   |
   |-go-pear.bat                   -- PEAR setup script
   |
   |-...
   |
   |-php-cgi.exe                   -- CGI executable
   |
   |-php-win.exe                   -- executes scripts without an opened command prompt
   |
   |-php.exe                       -- Command line PHP executable (CLI)
   |
   |-...
   |
   |-php.ini-development           -- default php.ini settings
   |
   |-php.ini-production            -- recommended php.ini settings
   |
   |-php5apache2_2.dll             -- does not exist in non thread safe version
   |
   |-php5apache2_2_filter.dll      -- does not exist in non thread safe version
   |
   |-...
   |
   |-php5ts.dll                    -- core PHP DLL ( php5.dll in non thread safe version)
   |
   |-...

Below is the list of the modules and executables included in the PHP zip distribution:

  • go-pear.bat - the PEAR setup script. Refer to » Installation (PEAR) for more details.

  • php-cgi.exe - CGI executable that can be used when running PHP on IIS via CGI or FastCGI.

  • php-win.exe - the PHP executable for executing PHP scripts without using a command line window (for example PHP applications that use Windows GUI).

  • php.exe - the PHP executable for executing PHP scripts within a command line interface (CLI).

  • php5apache2_2.dll - Apache 2.2.X module.

  • php5apache2_2_filter.dll - Apache 2.2.X filter.

Changing the php.ini file

After the php package content has been extracted, copy the php.ini-production into php.ini in the same folder. If necessary, it is also possible to place the php.ini into any other location of your choice but that will require additional configuration steps as described in PHP Configuration.

The php.ini file tells PHP how to configure itself, and how to work with the environment that it runs in. Here are a number of settings for the php.ini file that help PHP work better with Windows. Some of these are optional. There are many other directives that may be relevant to your environment - refer to the list of php.ini directives for more information.

Required directives:

  • extension_dir = <path to extension directory> - The extension_dir needs to point to the directory where PHP extensions files are stored. The path can be absolute (i.e. "C:\PHP\ext") or relative (i.e. ".\ext"). Extensions that are listed lower in the php.ini file need to be located in the extension_dir.

  • extension = xxxxx.dll - For each extension you wish to enable, you need a corresponding "extension=" directive that tells PHP which extensions in the extension_dir to load at startup time.

  • log_errors = On - PHP has an error logging facility that can be used to send errors to a file, or to a service (i.e. syslog) and works in conjunction with the error_log directive below. When running under IIS, the log_errors should be enabled, with a valid error_log.

  • error_log = <path to the error log file> - The error_log needs to specify the absolute, or relative path to the file where PHP errors should be logged. This file needs to be writable for the web server. The most common places for this file are in various TEMP directories, for example "C:\inetpub\temp\php-errors.log".

  • cgi.force_redirect = 0 - This directive is required for running under IIS. It is a directory security facility required by many other web servers. However, enabling it under IIS will cause the PHP engine to fail on Windows.

  • cgi.fix_pathinfo = 1 - This lets PHP access real path info following the CGI Spec. The IIS FastCGI implementation needs this set.

  • fastcgi.impersonate = 1 - FastCGI under IIS supports the ability to impersonate security tokens of the calling client. This allows IIS to define the security context that the request runs under.

  • fastcgi.logging = 0 - FastCGI logging should be disabled on IIS. If it is left enabled, then any messages of any class are treated by FastCGI as error conditions which will cause IIS to generate an HTTP 500 exception.

Optional directives

  • max_execution_time = ## - This directive tells PHP the maximum amount of time that it can spend executing any given script. The default for this is 30 seconds. Increase the value of this directive if PHP application take long time to execute.

  • memory_limit = ###M - The amount of memory available for the PHP process, in Megabytes. The default is 128, which is fine for most PHP applications. Some of the more complex ones might need more.

  • display_errors = Off - This directive tells PHP whether to include any error messages in the stream that it returns to the Web server. If this is set to "On", then PHP will send whichever classes of errors that you define with the error_reporting directive back to web server as part of the error stream. For security reasons it is recommended to set it to "Off" on production servers in order not to reveal any security sensitive information that is often included in the error messages.

  • open_basedir = <paths to directories, separated by semicolon>, e.g. openbasedir="C:\inetpub\wwwroot;C:\inetpub\temp". This directive specified the directory paths where PHP is allowed to perform file system operations. Any file operation outside of the specified paths will result in an error. This directive is especially useful for locking down the PHP installation in shared hosting environments to prevent PHP scripts from accessing any files outside of the web site's root directory.

  • upload_max_filesize = ###M and post_max_size = ###M - The maximum allowed size of an uploaded file and post data respectively. The values of these directives should be increased if PHP applications need to perform large uploads, such as for example photos or video files.

PHP is now setup on your system. The next step is to choose a web server, and enable it to run PHP. Choose a web server from the table of contents.

In addition to running PHP via a web server, PHP can run from the command line just like a .BAT script. See

Microsoft IIS

This section contains PHP installation instructions specific to Microsoft Internet Information Services (IIS).

  • Manually installing PHP on Microsoft IIS 5.1 and IIS 6.0
  • Manually installing PHP on Microsoft IIS 7.0 and later

Microsoft IIS 5.1 and IIS 6.0

This section contains instructions for manually setting up Internet Information Services (IIS) 5.1 and IIS 6.0 to work with PHP on Microsoft Windows XP and Windows Server 2003. For instructions on setting up IIS 7.0 and later versions on Windows Vista, Windows Server 2008, Windows 7 and Windows Server 2008 R2 refer to Microsoft IIS 7.0 and later.

Configuring IIS to process PHP requests

Download and install PHP in accordance to the instructions described in manual installation steps

Hinweis:

Non-thread-safe build of PHP is recommended when using IIS. The non-thread-safe builds are available at » PHP for Windows: Binaries and Sources Releases.

Configure the CGI- and FastCGI-specific settings in php.ini file as shown below:

Beispiel #2 CGI and FastCGI settings in php.ini

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0

Download and install the » Microsoft FastCGI Extension for IIS 5.1 and 6.0. The extension is available for 32-bit and 64-bit platforms - select the right download package for your platform.

Configure the FastCGI extension to handle PHP-specific requests by running the command shown below. Replace the value of the "-path" parameter with the absolute file path to the php-cgi.exe file.

Beispiel #3 Configuring FastCGI extension to handle PHP requests

cscript %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^
-extension:php -path:"C:\PHP\php-cgi.exe"

This command will create an IIS script mapping for *.php file extension, which will result in all URLs that end with .php being handled by FastCGI extension. Also, it will configure FastCGI extension to use the executable php-cgi.exe to process the PHP requests.

Hinweis:

At this point the required installation and configuration steps are completed. The remaining instructions below are optional but highly recommended for achieving optimal functionality and performance of PHP on IIS.

Impersonation and file system access

It is recommended to enable FastCGI impersonation in PHP when using IIS. This is controlled by the fastcgi.impersonate directive in php.ini file. When impersonation is enabled, PHP will perform all the file system operations on behalf of the user account that has been determined by IIS authentication. This ensures that even if the same PHP process is shared across different IIS web sites, the PHP scripts in those web sites will not be able to access each others' files as long as different user accounts are used for IIS authentication on each web site.

For example IIS 5.1 and IIS 6.0, in its default configuration, has anonymous authentication enabled with built-in user account IUSR_<MACHINE_NAME> used as a default identity. This means that in order for IIS to execute PHP scripts, it is necessary to grant IUSR_<MACHINE_NAME> account read permission on those scripts. If PHP applications need to perform write operations on certain files or write files into some folders then IUSR_<MACHINE_NAME> account should have write permission to those.

To determine which user account is used by IIS anonymous authentication, follow these steps:

  1. In the Windows Start Menu choose "Run:", type "inetmgr" and click "Ok";

  2. Expand the list of web sites under the "Web Sites" node in the tree view, right-click on a web site that is being used and select "Properties";

  3. Click the "Directory Security" tab;

  4. Take note of a "User name:" field in the "Authentication Methods" dialog

Anonymous authenication for IIS 5.1 and IIS 6.0

To modify the permissions settings on files and folders, use the Windows Explorer user interface or icacls command.

Beispiel #4 Configuring file access permissions

icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)

Set index.php as a default document in IIS

The IIS default documents are used for HTTP requests that do not specify a document name. With PHP applications, index.php usually acts as a default document. To add index.php to the list of IIS default documents, follow these steps:

  1. In the Windows Start Menu choose "Run:", type "inetmgr" and click "Ok";

  2. Right-click on the "Web Sites" node in the tree view and select "Properties";

  3. Click the "Documents" tab;

  4. Click the "Add..." button and enter "index.php" for the "Default content page:".

Setting index.php as default document for IIS

FastCGI and PHP Recycling configuration

Configure IIS FastCGI extension settings for recycling of PHP processes by using the commands shown below. The FastCGI setting instanceMaxRequests controls how many requests will be processed by a single php-cgi.exe process before FastCGI extension shuts it down. The PHP environment variable PHP_FCGI_MAX_REQUESTS controls how many requests a single php-cgi.exe process will handle before it recycles itself. Make sure that the value specified for FastCGI InstanceMaxRequests setting is less than or equal to the value specified for PHP_FCGI_MAX_REQUESTS.

Beispiel #5 Configuring FastCGI and PHP recycling

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-InstanceMaxRequests:10000

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000

Configuring FastCGI timeout settings

Increase the timeout settings for FastCGI extension if there are applications that have long running PHP scripts. The two settings that control timeouts are ActivityTimeout and RequestTimeout. Refer to » Configuring FastCGI Extension for IIS 6.0 for more information about those settings.

Beispiel #6 Configuring FastCGI timeout settings

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-ActivityTimeout:90

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-RequestTimeout:90

Changing the Location of php.ini file

PHP searches for php.ini file in several locations and it is possible to change the default locations of php.ini file by using PHPRC environment variable. To instruct PHP to load the configuration file from a custom location run the command shown below. The absolute path to the directory with php.ini file should be specified as a value of PHPRC environment variable.

Beispiel #7 Changing the location of php.ini file

cscript %windir%\system32\inetsrv\fcgiconfig.js -set -section:"PHP" ^
-EnvironmentVars:PHPRC:"C:\Some\Directory\"

Microsoft IIS 7.0 and later

This section contains instructions for manually setting up Internet Information Services (IIS) 7.0 and later to work with PHP on Microsoft Windows Vista SP1, Windows 7, Windows Server 2008 and Windows Server 2008 R2. For instructions on setting up IIS 5.1 and IIS 6.0 on Windows XP and Windows Server 2003 refer to Microsoft IIS 5.1 and IIS 6.0.

Enabling FastCGI support in IIS

FastCGI module is disabled in default installation of IIS. The steps to enable it differ based on the version of Windows being used.

To enable FastCGI support on Windows Vista SP1 and Windows 7:

  1. In the Windows Start Menu choose "Run:", type "optionalfeatures.exe" and click "Ok";

  2. In the "Windows Features" dialog expand "Internet Information Services", "World Wide Web Services", "Application Development Features" and then enable the "CGI" checkbox;

  3. Click OK and wait until the installation is complete.

Enabling FastCGI support for IIS7 on Windows Vista SP1 and Windows 7

To enable FastCGI support on Windows Server 2008 and Windows Server 2008 R2:

  1. In the Windows Start Menu choose "Run:", type "CompMgmtLauncher" and click "Ok";

  2. If the "Web Server (IIS)" role is not present under the "Roles" node, then add it by clicking "Add Roles";

  3. If the "Web Server (IIS)" role is present, then click "Add Role Services" and then enable the "CGI" checkbox under "Application Development" group;

  4. Click "Next" and then "Install" and wait for the installation to complete.

Enabling FastCGI support on Windows Server 2008 and Windows Server 2008 R2

Configuring IIS to process PHP requests

Download and install PHP in accordance to the instructions described in manual installation steps

Hinweis:

Non-thread-safe build of PHP is recommended when using IIS. The non-thread-safe builds are available at » PHP for Windows: Binaries and Sources Releases.

Configure the CGI- and FastCGI-specific settings in php.ini file as shown below:

Beispiel #8 CGI and FastCGI settings in php.ini

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0

Configure IIS handler mapping for PHP by using either IIS Manager user interface or a command line tool.

Using IIS Manager user interface to create a handler mapping for PHP

Follow these steps to create an IIS handler mapping for PHP in IIS Manager user interface:

  1. In the Windows Start Menu choose "Run:", type "inetmgr" and click "Ok";

  2. In the IIS Manager user interface select the server node in the "Connections" tree view;

  3. In the "Features View" page open the "Handler Mappings" feature;

    Create IIS handler mapping for PHP : Locate Handler Mappings

  4. In the "Actions" pane click "Add Module Mapping...";

  5. In the "Add Module Mapping" dialog enter the following:

    • Request path: *.php
    • Module: FastCgiModule
    • Executable: C:\[Path to PHP installation]\php-cgi.exe
    • Name: PHP_via_FastCGI

  6. Click "Request Restrictions" button and then configure the mapping to invoke handler only if request is mapped to a file or a folder;

  7. Click OK on all the dialogs to save the configuration.

Create IIS handler mapping for PHP : Add Handler Mapping

Using command line tool to create a handler mapping for PHP

Use the command shown below to create an IIS FastCGI process pool which will use php-cgi.exe executable for processing PHP requests. Replace the value of the fullPath parameter with the absolute file path to the php-cgi.exe file.

Beispiel #9 Creating IIS FastCGI process pool

%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI ^
/+[fullPath='c:\PHP\php-cgi.exe']

Configure IIS to handle PHP specific requests by running the command shown below. Replace the value of the scriptProcessor parameter with the absolute file path to the php-cgi.exe file.

Beispiel #10 Creating handler mapping for PHP requests

%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers ^
/+[name='PHP_via_FastCGI', path='*.php',verb='*',modules='FastCgiModule',^
scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']

This command creates an IIS handler mapping for *.php file extension, which will result in all URLs that end with .php being handled by FastCGI module.

Hinweis:

At this point the required installation and configuration steps are completed. The remaining instructions below are optional but highly recommended for achieving optimal functionality and performance of PHP on IIS.

Impersonation and file system access

It is recommended to enable FastCGI impersonation in PHP when using IIS. This is controlled by the fastcgi.impersonate directive in php.ini file. When impersonation is enabled, PHP will perform all the file system operations on behalf of the user account that has been determined by IIS authentication. This ensures that even if the same PHP process is shared across different IIS web sites, the PHP scripts in those web sites will not be able to access each other's files as long as different user accounts are used for IIS authentication on each web site.

For example IIS 7, in its default configuration, has anonymous authentication enabled with built-in user account IUSR used as a default identity. This means that in order for IIS to execute PHP scripts, it is necessary to grant IUSR account read permission on those scripts. If PHP applications need to perform write operations on certain files or write files into some folders then IUSR account should have write permission to those.

To determine what user account is used as an anonymous identity in IIS 7 use the following command. Replace the "Default Web Site" with the name of IIS web site that you use. In the output XML configuration element look for the userName attribute.

Beispiel #11 Determining the account used as IIS anonymous identity

%windir%\system32\inetsrv\appcmd.exe list config "Default Web Site" ^
/section:anonymousAuthentication

<system.webServer>
  <security>
    <authentication>
      <anonymousAuthentication enabled="true" userName="IUSR" />
    </authentication>
   </security>
</system.webServer>

Hinweis:

If userName attribute is not present in the anonymousAuthentication element, or is set to an empty string, then it means that the application pool identity is used as an anonymous identity for that web site.

To modify the permissions settings on files and folders, use the Windows Explorer user interface or icacls command.

Beispiel #12 Configuring file access permissions

icacls C:\inetpub\wwwroot\upload /grant IUSR:(OI)(CI)(M)

Set index.php as a default document in IIS

The IIS default documents are used for HTTP requests that do not specify a document name. With PHP applications, index.php usually acts as a default document. To add index.php to the list of IIS default documents, use this command:

Beispiel #13 Set index.php as a default document in IIS

%windir%\system32\inetsrv\appcmd.exe set config ^
-section:system.webServer/defaultDocument /+"files.[value='index.php']" ^
/commit:apphost

FastCGI and PHP Recycling configuration

Configure IIS FastCGI settings for recycling of PHP processes by using the commands shown below. The FastCGI setting instanceMaxRequests controls how many requests will be processed by a single php-cgi.exe process before IIS shuts it down. The PHP environment variable PHP_FCGI_MAX_REQUESTS controls how many requests a single php-cgi.exe process will handle before it recycles itself. Make sure that the value specified for FastCGI InstanceMaxRequests setting is less than or equal to the value specified for PHP_FCGI_MAX_REQUESTS.

Beispiel #14 Configuring FastCGI and PHP recycling

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/[fullPath='c:\php\php-cgi.exe'].instanceMaxRequests:10000

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/+"[fullPath='C:\{php_folder}\php-cgi.exe'].environmentVariables.^
[name='PHP_FCGI_MAX_REQUESTS',value='10000']"

FastCGI timeout settings

Increase the timeout settings for FastCGI if it is expected to have long running PHP scripts. The two settings that control timeouts are activityTimeout and requestTimeout. Use the commands below to change the timeout settings. Make sure to replace the value in the fullPath parameter to contain the absolute path to the php-cgi.exe file.

Beispiel #15 Configuring FastCGI timeout settings

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/[fullPath='C:\php\php-cgi.exe',arguments=''].activityTimeout:"90"  /commit:apphost

%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi ^
/[fullPath='C:\php\php-cgi.exe',arguments=''].requestTimeout:"90"  /commit:apphost

Changing the Location of php.ini file

PHP searches for php.ini file in several locations and it is possible to change the default locations of php.ini file by using PHPRC environment variable. To instruct PHP to load the configuration file from a custom location run the command shown below. The absolute path to the directory with php.ini file should be specified as a value of PHPRC environment variable.

Beispiel #16 Changing the location of php.ini file

appcmd.exe set config  -section:system.webServer/fastCgi ^
/+"[fullPath='C:\php\php.exe',arguments=''].environmentVariables.^
[name='PHPRC',value='C:\Some\Directory\']" /commit:apphost

Apache 1.3.x on Microsoft Windows

This section contains notes and hints specific to Apache 1.3.x installs of PHP on Microsoft Windows systems. There are also

Hinweis:

Please read the manual installation steps first!

There are two ways to set up PHP to work with Apache 1.3.x on Windows. One is to use the CGI binary (php.exe for PHP 4 and php-cgi.exe for PHP 5), the other is to use the Apache Module DLL. In either case you need to edit your httpd.conf to configure Apache to work with PHP, and then restart the server.

It is worth noting here that now the SAPI module has been made more stable under Windows, we recommend it's use above the CGI binary, since it is more transparent and secure.

Although there can be a few variations of configuring PHP under Apache, these are simple enough to be used by the newcomer. Please consult the Apache Documentation for further configuration directives.

After changing the configuration file, remember to restart the server, for example, NET STOP APACHE followed by NET START APACHE, if you run Apache as a Windows Service, or use your regular shortcuts.

Hinweis: Beachten Sie bitte, dass Sie bei Pfadangaben in der Apachekonfigurationsdatei unter Windows alle Backslashes, wie z.B. c:\directory\file.ext, in Schrägstriche umwandeln sollten: c:/directory/file.ext. Bei Verzeichnisnamen kann weiterhin ein abschließender Schrägstrich nötig sein.

Installing as an Apache module

You should add the following lines to your Apache httpd.conf file:

Beispiel #17 PHP as an Apache 1.3.x module

This assumes PHP is installed to c:\php. Adjust the path if this is not the case.

For PHP 4:

# Add to the end of the LoadModule section
# Don't forget to copy this file from the sapi directory!
LoadModule php4_module "C:/php/php4apache.dll"

# Add to the end of the AddModule section
AddModule mod_php4.c

For PHP 5:

# Add to the end of the LoadModule section
LoadModule php5_module "C:/php/php5apache.dll"

# Add to the end of the AddModule section
AddModule mod_php5.c

For both:

# Add this line inside the <IfModule mod_mime.c> conditional brace
AddType application/x-httpd-php .php

# For syntax highlighted .phps files, also add
AddType application/x-httpd-php-source .phps

Installing as a CGI binary

If you unzipped the PHP package to C:\php\ as described in the Manual Installation Steps section, you need to insert these lines to your Apache configuration file to set up the CGI binary:

Beispiel #18 PHP and Apache 1.3.x as CGI

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

# For PHP 4
Action application/x-httpd-php "/php/php.exe"

# For PHP 5
Action application/x-httpd-php "/php/php-cgi.exe"

# specify the directory where php.ini is
SetEnv PHPRC C:/php
Note that the second line in the list above can be found in the actual versions of httpd.conf, but it is commented out. Remember also to substitute the c:/php/ for your actual path to PHP.

Warnung

Wenn Sie das CGI-Setup verwenden, ist Ihr Server für einige mögliche Angriffe anfällig. Wie Sie sich vor diesen Angriffen schützen können, entnehmen Sie bitte dem Kapitel über CGI-Sicherheit.

If you would like to present PHP source files syntax highlighted, there is no such convenient option as with the module version of PHP. If you chose to configure Apache to use PHP as a CGI binary, you will need to use the highlight_file() function. To do this simply create a PHP script file and add this code: <?php highlight_file('some_php_script.php'); ?>.

Apache 2.x on Microsoft Windows

This section contains notes and hints specific to Apache 2.x installs of PHP on Microsoft Windows systems. We also

Hinweis:

You should read the manual installation steps first!

Hinweis: Apache 2.2 Support

Users of Apache 2.2 should note that the DLL file for Apache 2.2 is named php5apache2_2.dll rather than php5apache2.dll and is available only for PHP 5.2.0 and later.

You are strongly encouraged to consult the » Apache Documentation to get a basic understanding of the Apache 2.x Server. Also consider reading the » Windows specific notes for Apache 2.x before reading on here.

Apache 2.x is designed to run on the Windows version designated as server platforms, such as Windows NT 4.0, Windows 2000, Windows XP, or Windows 7. While Apache 2.x works tolerably well on Windows 9x, support on these platforms is incomplete, and some things will not work correctly. There is no plan to remedy this situation.

Download the most recent version of » Apache 2.x and a fitting PHP version. Follow the Manual Installation Steps and come back to go on with the integration of PHP and Apache.

There are three ways to set up PHP to work with Apache 2.x on Windows. You can run PHP as a handler, as a CGI, or under FastCGI.

Hinweis: Beachten Sie bitte, dass Sie bei Pfadangaben in der Apachekonfigurationsdatei unter Windows alle Backslashes, wie z.B. c:\directory\file.ext, in Schrägstriche umwandeln sollten: c:/directory/file.ext. Bei Verzeichnisnamen kann weiterhin ein abschließender Schrägstrich nötig sein.

Installing as an Apache handler

You need to insert the following lines into your Apache httpd.conf configuration file to load the PHP module for Apache 2.x:

Beispiel #19 PHP and Apache 2.x as handler

#
LoadModule php5_module "c:/php/php5apache2.dll"
AddHandler application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "C:/php"

Hinweis: Remember to substitute your actual path to PHP for the C:/php/ in the above examples. Take care to use either php5apache2.dll or php5apache2_2.dll in your LoadModule directive and verify that the referenced file is in fact located at the file path that you point to in this directive.

The above configuration will enable PHP handling of any file that has a .php extension, even if there are other file extensions. For example, a file named example.php.txt will be executed by the PHP handler. To ensure that only files that end in .php are executed, use the following configuration instead:

<FilesMatch \.php$>
      SetHandler application/x-httpd-php
 </FilesMatch>

Running PHP as CGI

You should consult the » Apache CGI documentation for a more complete understanding of running CGI on Apache.

To run PHP as CGI, you'll need to place your php-cgi files in a directory designated as a CGI directory using the ScriptAlias directive.

You will then need to insert a #! line in the PHP files, pointing to the location of your PHP binary:

Beispiel #20 PHP and Apache 2.x as CGI

#!C:/php/php.exe
<?php
  phpinfo();
?>

Warnung

Wenn Sie das CGI-Setup verwenden, ist Ihr Server für einige mögliche Angriffe anfällig. Wie Sie sich vor diesen Angriffen schützen können, entnehmen Sie bitte dem Kapitel über CGI-Sicherheit.

Running PHP under FastCGI

Running PHP under FastCGI has a number of advantages over running it as a CGI. Setting it up this way is fairly straightforward:

Obtain mod_fcgid from » http://httpd.apache.org/mod_fcgid/. Win32 binaries are available for download from that site. Install the module according to the instructions that will come with it.

Configure your web server as shown below, taking care to adjust any paths to reflect your how you have installed things on your particular system:

Beispiel #21 Configure Apache to run PHP as FastCGI

LoadModule fcgid_module modules/mod_fcgid.so

# Where is your php.ini file?
FcgidInitialEnv PHPRC        "c:/php"

AddHandler fcgid-script .php
FcgidWrapper "c:/php/php-cgi.exe" .php
Files with a .php extension will now be executed by the PHP FastCGI wrapper.

Sambar Server on Microsoft Windows

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

Hinweis:

You should read the manual installation steps first!

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

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

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

    Beispiel #22 ISAPI configuration of Sambar

    #for PHP 4
*.php = c:\php\php4isapi.dll

#for PHP 5
*.php = c:\php\php5isapi.dll
    (This line assumes that PHP was installed in c:\php.)

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

Hinweis:

If you intend to use PHP to communicate with resources which are held on a different computer on your network, then you will need to alter the account used by the Sambar Server Service. The default account used for the Sambar Server Service is LocalSystem which will not have access to remote resources. The account can be amended by using the Services option from within the Windows Control Panel Administration Tools.

Xitami on Microsoft Windows

This section contains notes and hints specific to » Xitami on Windows.

Hinweis:

You should read the manual installation steps first!

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

Hinweis: Important for CGI users

Read the faq on cgi.force_redirect for important details. This directive needs to be set to 0. If you want to use $_SERVER['PHP_SELF'] you have to enable the cgi.fix_pathinfo directive.

Warnung

Wenn Sie das CGI-Setup verwenden, ist Ihr Server für einige mögliche Angriffe anfällig. Wie Sie sich vor diesen Angriffen schützen können, entnehmen Sie bitte dem Kapitel über CGI-Sicherheit.

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

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

  • In Filter command or script put the path and name of your PHP CGI executable i.e. C:\php\php.exe for PHP 4, or C:\php\php-cgi.exe for PHP 5.

  • Press the 'Save' icon.

  • Restart the server to reflect changes.

Building from source

This chapter teaches how to compile PHP from sources on windows, using Microsoft's tools. To compile PHP with cygwin, please refer to Installation auf Unix-Systemen.

See the Wiki documentation at: » https://wiki.php.net/internals/windows/stepbystepbuild

Installation of extensions on Windows

After installing PHP and a web server on Windows, you will probably want to install some extensions for added functionality. You can choose which extensions you would like to load when PHP starts by modifying your php.ini. You can also load a module dynamically in your script using dl().

The DLLs for PHP extensions are prefixed with php_.

Many extensions are built into the Windows version of PHP. This means additional DLL files, and the extension directive, are not used to load these extensions. The Windows PHP Extensions table lists extensions that require, or used to require, additional PHP DLL files. Here's a list of built in extensions (updated PHP 5.0.4): BCMath, Calendar, COM, Ctype, DOM, FTP, LibXML, Iconv, ODBC, PCRE, Session, SimpleXML, SPL, WDDX, XML und Zlib.

The default location PHP searches for extensions is C:\php5. To change this setting to reflect your setup of PHP edit your php.ini file:

  • You will need to change the extension_dir setting to point to the directory where your extensions lives, or where you have placed your php_*.dll files. For example:

    extension_dir = C:\php\extensions

  • Enable the extension(s) in php.ini you want to use by uncommenting the extension=php_*.dll lines in php.ini. This is done by deleting the leading ; from the extension you want to load.

    Beispiel #23 Enable Bzip2 extension for PHP-Windows

    // change the following line from ...
;extension=php_bz2.dll

// ... to
extension=php_bz2.dll

  • Some of the extensions need extra DLLs to work. Couple of them can be found in the distribution package, in the main folder, but some, for example Oracle (php_oci8.dll) require DLLs which are not bundled with the distribution package. Don't forget to include C:\php in the system PATH (this process is explained in a separate FAQ entry).

  • Some of these DLLs are not bundled with the PHP distribution. See each extensions documentation page for details. Also, read the manual section titled Installation of PECL extensions for details on PECL. An increasingly large number of PHP extensions are found in PECL, and these extensions require a separate download.

Hinweis: If you are running a server module version of PHP remember to restart your web server to reflect your changes to php.ini.

The following table describes some of the extensions available and required additional dlls.

PHP Extensions
Extension | Description | Notes
php_bz2.dll | bzip2 compression functions | None
php_calendar.dll | Calendar conversion functions | None
php_ctype.dll | ctype family functions | None
php_curl.dll | CURL, Client URL library functions | Requires: libeay32.dll, ssleay32.dll (bundled), or, as of OpenSSL 1.1 libcrypto-*.dll and libssl-*.dll (bundled)
php_dba.dll | DBA: DataBase (dbm-style) Abstraction layer functions | None
php_dbase.dll | dBase functions | None
php_exif.dll | EXIF functions | php_mbstring.dll. And, php_exif.dll must be loaded after php_mbstring.dll in php.ini.
php_fbsql.dll | FrontBase functions | None
php_fdf.dll | FDF: Forms Data Format functions. | Requires: fdftk.dll (bundled)
php_filepro.dll | filePro functions | Read-only access
php_ftp.dll | FTP functions | None
php_gd2.dll | GD library image functions | GD2
php_gettext.dll | Gettext functions | PHP <= 4.2.0 requires gnu_gettext.dll (bundled), PHP >= 4.2.3 requires libintl-1.dll, iconv.dll (bundled).
php_hyperwave.dll | HyperWave functions | None
php_iconv.dll | ICONV characterset conversion | Requires: iconv-1.3.dll (bundled), iconv.dll
php_iisfunc.dll | IIS management functions | None
php_imap.dll | IMAP POP3 and NNTP functions | None
php_ingres.dll | Ingres functions | Requires: Ingres libraries
php_interbase.dll | InterBase functions | Requires: gds32.dll (bundled)
php_ldap.dll | LDAP functions | Requires libeay32.dll, ssleay32.dll (bundled), or, as of OpenSSL 1.1 libcrypto-*.dll and libssl-*.dll (bundled)
php_mbstring.dll | Multi-Byte String functions | None
php_mcrypt.dll | Mcrypt Encryption functions | Requires: libmcrypt.dll
php_mhash.dll | Mhash functions | Requires: libmhash.dll (bundled)
php_mysql.dll | MySQL functions | Requires libmysql.dll (bundled)
php_mysqli.dll | MySQLi functions | Requires libmysql.dll (libmysqli.dll in PHP <= 5.0.2) (bundled)
php_oci8.dll | Oracle 8 functions | Requires: Oracle 8.1+ client libraries
php_openssl.dll | OpenSSL functions | Requires: libeay32.dll (bundled), or, as of OpenSSL 1.1, liblibcrypto-*.dll (bundled)
php_pgsql.dll | PostgreSQL functions | None
php_shmop.dll | Shared Memory functions | None
php_snmp.dll | SNMP get and walk functions | NT only!
php_soap.dll | SOAP functions | None
php_sockets.dll | Socket functions | None
php_tidy.dll | Tidy functions | None
php_tokenizer.dll | Tokenizer functions | None
php_w32api.dll | W32api functions | None
php_xmlrpc.dll | XML-RPC functions | Requires: iconv.dll (bundled)
php_xslt.dll | XSLT functions | Requires sablot.dll, expat.dll, iconv.dll (bundled).
php_yaz.dll | YAZ functions | Requires: yaz.dll (bundled)
php_zip.dll | Zip File functions | Read only access
php_zlib.dll | ZLib compression functions | None

Command Line PHP on Microsoft Windows

This section contains notes and hints specific to getting PHP running from the command line for Windows.

Hinweis:

You should read the manual installation steps first!

Getting PHP to run from the command line can be performed without making any changes to Windows.

C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3

But there are some easy steps that can be followed to make this simpler. Some of these steps should already have been taken, but are repeated here to be able to provide a complete step-by-step sequence.

    Hinweis:

    Both PATH and PATHEXT are important pre-existing system variables in Windows, and care should be taken to not overwrite either variable, only to add to them.

  • Append the location of the PHP executable (php.exe, php-win.exe or php-cli.exe depending upon your PHP version and display preferences) to the PATH environment variable. Read more about how to add your PHP directory to PATH in the corresponding FAQ entry.

  • Append the .PHP extension to the PATHEXT environment variable. This can be done at the same time as amending the PATH environment variable. Follow the same steps as described in the FAQ but amend the PATHEXT environment variable rather than the PATH environment variable.

    Hinweis:

    The position in which you place the .PHP will determine which script or program is executed when there are matching filenames. For example, placing .PHP before .BAT will cause your script to run, rather than the batch file, if there is a batch file with the same name.

  • Associate the .PHP extension with a file type. This is done by running the following command:

    assoc .php=phpfile

  • Associate the phpfile file type with the appropriate PHP executable. This is done by running the following command:

    ftype phpfile="C:\PHP5\php.exe" -f "%1" -- %~2

Following these steps will allow PHP scripts to be run from any directory without the need to type the PHP executable or the .PHP extension and all parameters will be supplied to the script for processing.

The example below details some of the registry changes that can be made manually.

Beispiel #24 Registry changes

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php]
@="phpfile"
"Content Type"="application/php"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile]
@="PHP Script"
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008
"AlwaysShowExt"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon]
@="C:\\PHP5\\php-win.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell]
@="Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open]
@="&Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command]
@="\"C:\\PHP5\\php.exe\" -f \"%1\" -- %~2"

With these changes the same command can be written as:

"C:\PHP Scripts\script" -arg1 -arg2 -arg3
or, if your "C:\PHP Scripts" path is in the PATH environment variable:
script -arg1 -arg2 -arg3

Hinweis:

There is a small problem if you intend to use this technique and use your PHP scripts as a command line filter, like the example below:

dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
or
dir | script -arg1 -arg2 -arg3
You may find that the script simply hangs and nothing is output. To get this operational, you need to make another registry change.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001
Further information regarding this issue can be found in this » Microsoft Knowledgebase Article : 321788. As of Windows 10, this setting seems to be reversed, making the default install of Windows 10 support inherited console handles automatically. This » Microsoft forum post provides the explanation.


  • « Installation auf alten Windowssystemen
  • Azure App Services »
  • PHP Manual
  • Installation und Konfiguration
  • Installation auf Cloud Computing Platformen

Installation auf Cloud Computing Platformen

Inhaltsverzeichnis

  • Azure App Services
  • Amazon EC2

PHP installiert in der Wolke. Auf zur PHP Wolke!


Azure App Services

PHP wird häufig auf Azure App Services (alias Microsoft Azure, Windows Azure, Azure Web Apps) verwendet.

Azure App Services verwaltet Pools von Windows-Web-Servern zum Hosten Ihrer Webanwendung, als Alternative zur Verwaltung Ihres eigenen Webservers auf Ihren eigenen Azure Compute VMs oder anderen Servern.

PHP ist bereits automatisch für Ihre Azure App Services Website aktiviert. Wählen Sie im Azure-Portal Ihre Website aus, und Sie können wählen, welche Version von PHP verwendet werden soll. Möglicherweise möchten Sie eine neuere Version als Standardversion wählen.

Daher werden PHP und Erweiterungen auf Azure App Services genauso wie auf anderen Windows-Servern laufen. Viele Fehlerbehebungshinweise gelten auch für Azure App Services, also lesen sie auch Windows-Fehlerbehebungsseite. Das Verwaltungsinterface für Azure App Services ist jedoch anders:

  • Azure-Portal: Erstellen, Bearbeiten von Einstellungen und Löschen von Websites. » Azure Portal

  • Kudu-Dashboard: [Ihr Website-Name].azurewebsites.net Dann ist das Kudu-Dashboard » https://[your web site name].scm.azurewebsites.net/. Das Dashboard bietet Ihnen Zugang zu einigen Debugging-Funktionen, zur Dateiverwaltung und zu Website-Erweiterungen. Die Website-Erweiterungen sind ein Azure-Mechanismus, mit dem Sie Ihrer Website zusätzliche Programme, wie PHP-Vorschau-Builds, hinzufügen können.

  • Sie können IIS Manager, Server Manager und RDP nicht verwenden.

Es gibt auch ein PHP-SDK für die programmatische Nutzung vieler Azure Services aus Ihrem PHP-Code; siehe » Azure SDK für PHP.

Weitere Informationen finden Sie unter » Azure PHP-Entwickler-Center

WinCache

WinCache ist bei den Azure App Services standardmäßig aktiviert und es wird empfohlen, diese Option aktiviert zu lassen. Wenn Sie Ihre eigene Version von PHP installieren, sollten Sie WinCache auch darauf aktivieren.

Selbsterstellte PHP-Builds

Sie können Ihre eigene PHP-Version auf Ihr D:\Home hochladen (C:\ ist NICHT beschreibbar). Setzen Sie dann im Azure-Portal SCRIPT_PROCESSOR für .php auf den absoluten Pfad zur php-cgi.exe-Datei in Ihrer Version.


  • « Azure App Services
  • FastCGI Process Manager (FPM) »
  • PHP Manual
  • Installation auf Cloud Computing Platformen
  • Amazon EC2

Amazon EC2

PHP kann auf der » EC2 Cloud Plattform installiert werden.

Siehe auch » AWS SDK für PHP.


FastCGI Process Manager (FPM)

Inhaltsverzeichnis

  • Installation
  • Konfiguration

FPM (FastCGI Process Manager) ist eine Alternative zu PHP FastCGI mit einigen zusätzlichen Features (besonders) für Websites mit hoher Last.

Zu diesen Features gehören:

  • fortschrittliches Prozessmanagement mit sanftem Stop/Start

  • die Möglichkeit einzelne Prozesse mit unterschiedlichen uid/gid/chroot/environment Einstellungen zu starten, auf unterschiedlichen Ports Anfragen entgegen zu nehmen, sowie jeweils eigene php.ini (ersetzt den safe_mode) verwenden zu können

  • Logging auf stdout und stderr

  • Notfall-Neustart, für den Fall einer zufälligen Zerstörung des Opcode-Caches

  • Unterstützung für beschleunigten Upload

  • "slowlog" - loggen von Scripts (nicht nur deren Namen, sondern deren PHP Backtraces, wobei ptrace und andere Dinge zum Einsatz kommen, um die "execute_data" des Prozesses zu debuggen) die ungewöhnlich langsam ausgeführt werden

  • fastcgi_finish_request() - Spezialfunktion, um Anfragen zu beenden und alle Daten zu senden, während gleichzeitig etwas zeitintensives, wie Videokonvertierung oder Statistik-Verarbeitung abläuft

  • dynamisches und statisches Starten von Kindprozessen

  • einfache SAPI Status Info (vergleichbar mit Apache mod_status)

  • php.ini-basierte Konfigurationsdatei


Installation

Kompilierung des Quellcodes

Um FPM im Ihrem PHP Build zu aktivieren, müssen Sie --enable-fpm der Konfigurationszeile hinzufügen.

Es gibt verschiedene andere FPM-spezifsche Einstellungen (alle sind optional):

  • --with-fpm-user - setzt den FPM Nutzer (Standard - nobody).

  • --with-fpm-group - setzt die FPM Gruppe (Standard - nobody).

  • --with-fpm-systemd - Aktiviert systemd-Integration (Standard - no).

  • --with-fpm-acl - Verwende POSIX Access Control Lists (Standard - no). Since PHP 5.6.5


Konfiguration

FPM verwendet die php.ini Syntax für die Konfigurationsdatei - php-fpm.conf, und Pool-Konfigurationsdateien.

Liste globaler php-fpm.conf Direktiven

pid string

Pfad zur PID Datei. Standardwert: none.

error_log string

Pfad zur error log Datei. Standardwert: #INSTALL_PREFIX#/log/php-fpm.log. Ist der Wert "syslog", wird das Log an syslogd gesendet anstatt in eine lokale Datei geschrieben zu werden.

log_level string

Error log level. Mögliche Werte: alert, error, warning, notice, debug. Standardwert: notice.

log_limit int

Obergrenze für die protokollierten Zeilen, die es ermöglicht Nachrichten, die länger als 1024 Zeichen sind, ohne Zeilenumbruch zu protokollieren. Standardwert: 1024. Verfügbar von PHP 7.3.0 an.

log_buffering bool

Experimentelles Protokollieren ohne zusätzliche Pufferung. Standardwert: yes. Verfügbar von PHP 7.3.0 an.

syslog.facility string

Wird verwendet, um anzugeben, welche Art von Programm die Nachricht protokolliert. Standardwert: daemon.

syslog.ident string

Wird jeder Nachricht vorangestellt. Werden mehrere FPM-Instanzen auf dem selben Server ausgeführt, können Sie den Standardwert so ändern, dass er den gemeinsamen Bedürfnissen entspricht. Standardwert: php-fpm.

emergency_restart_threshold int

Wenn diese Anzahl an Kindprozessen mit SIGSEGV oder SIGBUS terminiert, innerhalb des durch emergency_restart_interval gesetzten Zeitintervals, dann wird FPM neu starten. Der Wert 0 meint 'Off'. Standardwert: 0 (Off).

emergency_restart_interval mixed

Zeitinterval, dass von emergency_restart_interval verwendet wird, um zu bestimmen, wann ein zeitversetzter Neustart ausgelöst werden soll. Das kann als Workaround bei zufälligen Fehlern im Shared Memory eines Accelerators nützlich sein. Verfügbare Einheiten: s(econds), m(inutes), h(ours), oder d(ays). Standardeinheit: seconds. Standardwert: 0 (Off).

process_control_timeout mixed

Zeitlimit der Kindprozesse, um auf eine Reaktion vom Master zu warten. Verfügbare Einheiten: s(econds), m(inutes), h(ours), oder d(ays) Standardeinheit: seconds. Standardwert: 0.

process.max int

Die Höchstanzahl von Prozessen, die FPM forken wird. Dies wurde konzipiert, um die globale Prozessanzahl zu kontrollieren, wenn dynamisches PM in vielen Pools verwendet wird. Mit Vorsicht zu verwenden. Standardwert: 0.

process.priority int

Gibt die auf den Master-Prozess (wenn festgelegt) anzuwendende nice(2) Priorität an. Der Wert kann zwischen -19 (höchste Priorität) und 20 (niedrigere Priorität) liegen. Standardwert: nicht gesetzt.

daemonize bool

Schickt FPM in den Hintergrund. Setze 'no', um FPM im Vordergrund zu halten und zu debuggen. Standardwert: yes.

rlimit_files int

Setzt das Ressourcenlimit (rlimit) der offenen Datei-Deskiptoren für den Master-Prozess. Standardwert: Setzt die Ressourcengrenze (rlimit) der offenen Datei-Deskiptoren für den Master-Prozess.

rlimit_core int

Setzt das Ressourcenlimit (rlimit) der Maximalgröße einer Core-Datei für den Master-Prozess. Standardwert: 0.

events.mechanism string

Spezifiziert den Ereignismechanismus den FPM verwendet. Die folgenden sind möglich: select, poll, epoll, kqueue (*BSD), port (Solaris). Standardwert: leer (Auto-Erkennung).

systemd_interval int

Wenn FPM mit systemd Integration kompiliert wurde, gibt dies das Intervall in Sekunden an, in dem Statusberichtsmeldungen an systemd gesendet werden. 0 deaktiviert dies. Standardwert: 10.

Liste der Pool Direktiven

Mit FPM sind mehrere Pools an Prozessen mit unterschiedlichen Einstellungen lauffähig. Nachfolgend finden Sie die Einstellungen die pro Pool verändert werden können.

listen string

Die Adresse, unter welcher FastCGI-Anfragen angenommen werden. Gültig ist die Syntax: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Diese Einstellunge ist für jeden Pool zwingend notwendig.

listen.backlog int

Setzt listen(2) backlog. Der Wert '-1' meint unbegrenzt. Standardwert: -1.

listen.allowed_clients string

Liste mit IPv4 Adressen von FastCGI Clients, denen eine Verbindung gestattet ist. Gleichzusetzen mit der FCGI_WEB_SERVER_ADDRS Umgebungsvariable im originalen PHP FastCGI (5.2.2+). Macht nur Sinn mit einem empfangenden TCP Socket. Die Adressen sind durch Komma zu trennen. Wenn der Wert leer gelassen wird, dann werden Verbindungen von beliebigen IP Adressen akzeptiert. Standardwert: any. IPv6 Adressen sind seit PHP 5.5.20 und 5.6.4 erlaubt.

listen.owner string

Setzt die Rechte für den Unix Socket, falls dieser verwendet wird. Unter Linux müssen Lese- und Schreibrechte gesetzt werden, um Verbindungen eines Webservers zu erlauben. Viele BSD-Derivate erlauben Verbindungen unabhängig von den Rechteeinstellungen. Standardwert: user und group werden auf den aktuellen User gesetzt und Mode auf 0660.

listen.group string

Siehe listen.owner.

listen.mode string

Siehe listen.owner.

listen.acl_users string

Wenn POSIX Zugriffskontrolllisten unterstützt werden, können Sie diese mit dieser Option einstellen. Wenn eingestellt, dann werden listen.owner und listen.group ignoriert. Der Wert ist eine durch Kommas getrennte Liste von Benutzernamen. Seit PHP 5.6.5.

listen.acl_groups string

Siehe listen.acl_users. Der Wert ist eine durch Kommas getrennte Liste von Gruppennamen. Seit PHP 5.6.5.

user string

Der Unix-Benutzer der FPM Prozesse. Diese Einstellung ist zwingend notwendig.

group string

Die Unix-Benutzergruppe der FPM Prozesse. Wenn nicht eingestellt, wird als Wert die Gruppe des Standard-Nutzers verwendet.

pm string

Wähle, wie der Prozess-Manager die Anzahl der Kindprozesse verwaltet. Mögliche Werte: static, ondemand, dynamic. Diese Einstellung ist zwingend notwendig.

static - die Anzahl der Kindprozesse ist fest eingestellt (pm.max_children).

ondemand - die Kindprozesse werden gestartet, sobald sie benötigt werden, im Gegensatz zu dynamic, wo zu Beginn bereits pm.start_servers Prozesse gestartet werden.

dynamic - die Anzahl der Kindprozesse wird dynamisch eingestellt, wobei die folgenden Einstellungen zugrundegelegt werden: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.

pm.max_children int

Die Anzahl an Kindprozessen, die erstellt werden, wenn pm auf static gesetzt und die maximale Anzahl an Kindprozessen, die erstellt werden, wenn pm auf dynamic gesetzt ist. Diese Einstellung ist zwingend notwendig.

Die Einstellung setzt das Limit für die Anzahl gleichzeitiger Verbindungen. Gleichzusetzen mit der ApacheMaxClients-Direktive mit mpm_prefork und der PHP_FCGI_CHILDREN Umgebungsvariable im originalen PHP FastCGI.

pm.start_servers int

Die Anzahl an Kindprozessen, die beim Start erstellt werden. Wird nur verwendet, wenn pm auf dynamic gesetzt ist. Standardwert: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.

pm.min_spare_servers int

Die gewünschte Mindestanzahl an Prozessen. Wird nur genutzt, wenn pm auf dynamic gesetzt ist. Ebenfalls zwingend notwendig.

pm.max_spare_servers int

Die gewünschte Maximalanzahl an Prozessen. Wird nur genutzt, wenn pm auf dynamic gesetzt ist. Ebenfalls zwingend erforderlich.

pm.process_idle_timeout mixed

Die Anzahl von Sekunden nach der ein Prozess im Leerlauf terminiert wird. Wird nur verwendet, wenn pm auf ondemand gesetzt wurde. Verfügbare Einheiten: s (Sekunden)(Standardwert), m (Minuten), h (Stunden) oder d (Tage). Standardwert: 10s.

pm.max_requests int

Die Anzahl an Anfragen, die ein Kindprozesse ausführt, bevor er neu startet. Das kann hilfreich sein, um Memory Leaks in Bibliotheken von Drittanbietern zu debuggen. Für eine unbegrenzte Anfrageanzahl '0' verwenden. Vergleichbar mit PHP_FCGI_MAX_REQUESTS. Standardwert: 0.

pm.status_path string

Die URI, um die FPM Statusseite anzuzeigen. Wenn dieser Wert nicht gesetzt ist, wird kein URI als Statusseite erkannt. Standardwert: none.

ping.path string

Die Ping URI, um die Monitoring-Seite von FPM aufzurufen. Wenn dieser Wert nicht gesetzt ist, dann wird keine URI als Ping-Seite erkannt. Das kann dafür verwendet werden, zu testen, ob FPM noch läuft und antwortet. Es sei der Hinweis gestattet, dass der Wert mit einem Forwardslash (/) zu beginnen hat.

ping.response string

Diese Direktive kann dazu verwendet werden, die Antwort auf eine Ping-Anfrage zu gestalten. Die Antwort ist vom Typ text/plain mit Antwortcode 200. Standardwert: pong.

process.priority int

Legt die nice(2) Priorität fest, die auf den Arbeiterprozess angewendet wird (falls angegeben). Der Wert liegt im Bereich von -19 (höchste Priorität) bis 20 (niedrigste Priorität). Standardwert: nicht gesetzt

process.dumpable bool

Setzt das „process dumpable flag“ (PR_SET_DUMPABLE prctl), selbst wenn der Prozess-Nutzer oder die -Gruppe sich vom Master-Prozess-Nutzer unterscheidet. Dies erlaubt es dem Pool-Nutzer, Prozess-Coredumps zu erstellen, und den Prozess mit ptrace zu untersuchen. Standardwert: no. Seit PHP 7.0.29, 7.1.17 und 7.2.5.

prefix string

Legt das Prefix für die Pfad-Validierung fest.

request_terminate_timeout mixed

Das Zeitfenster, in dem die einzelne Anfrage beantwortet sein sollte und falls nicht, der bearbeitende Prozess terminiert wird. Diese Einstellung sollte verwendet werden, wenn die 'max_execution_time' php.ini Einstellung, aus irgendeinem Grund nicht zu einem Scriptabbruch führt.Der Wert '0' steht für 'Off'. Mögliche Einheiten: s(econds)(default), m(inutes), h(ours) oder d(ays). Standardwert: 0.

request_slowlog_timeout mixed

Das Zeitfenster, in dem die einzelne Anfrage beantwortet sein sollte und falls nicht, ein PHP Backtrace in die Log-Datei für langsame Anfragen geschrieben wird. Der Wert '0' meint 'Off'. Mögliche Einheiten: s(econds)(default), m(inutes), h(ours) oder d(ays). Standardwert: 0.

slowlog string

Die Log-Datei für langsame Anfragen. Standardwert: #INSTALL_PREFIX#/log/php-fpm.log.slow.

rlimit_files int

Setzt open file descriptor rlimit für Kind-Prozesse in diesem Pool. Standardwert: Systemeinstellung.

rlimit_core int

Setzt max core size rlimit für Kind-Prozesse in diesem Pool. Mögliche Werte: 'unlimited' oder ein Integer größer oder gleich 0. Standardwert: Systemeinstellung.

chroot string

Wechselt (chroot) beim Start in das angegebene Verzeichnis. Der Wert muss eine absolute Pfadangabe sein. Wenn dieser Wert nicht gesetzt ist, wird chroot nicht verwendet.

chdir string

Wechselt (chdir) beim Start in das angegebene Verzeichnis. Der Wert muss eine absolute Pfadangabe sein. Standardwert: aktuelles Verzeichnis oder / wenn chroot.

catch_workers_output bool

Umleitung von Stdout und Stderr in das allgemeine Errorlog. Wenn nicht gesetzt, werden Stdout und Stderr umgeleitet nach /dev/null, entsprechend der FastCGI Spezifikation. Standardwert: no.

decorate_workers_output bool

Aktiviert die Ausgabedekoration für die Ausgabe von Workern, wenn catch_workers_output aktiviert ist. Standardwert: yes. Verfügbar von PHP 7.3.0 an.

clear_env bool

Löscht die Umgebung in FPM-Arbeitern. Verhindert, dass beliebige Umgebungsvariablen FPM-Arbeiterprozesse erreichen, indem die Umgebung in den Arbeitern gelöscht wird, bevor die Umgebungsvariablen, die in dieser Pool-Konfiguration angegeben sind, hinzugefügt werden. Seit PHP 5.4.27, 5.5.11, and 5.6.0. Standardwert: Yes.

security.limit_extensions string

Beschränkt die Dateirweiterungen des Haupt-Skripts, das FPM zu parsen erlaubt. Dies kann Konfigurationsfehler auf der Webserverseite verhindern. Sie sollten FPM nur auf .php Erweiterungen beschränken, um zu verhindern, dass bösartige Nutzter andere Erweiterungen verwenden, um PHP Code auszuführen. Standardwert: .php .phar

access.log string

Die Zugriffsprotokolldatei. Standardwert: nicht gesetzt

access.format string

Das Zugriffsprotokollformat. Standardwert: "%R - %u %t \"%m %r\" %s"

Es ist möglich, zusätzliche Umgebungsvariablen zu setzen und PHP Einstellungen eines bestimmten Pools zu verändern. Dazu sind die nachfolgenden Einstellungen in der Pool-Konfigurationsdatei erforderlich.

Beispiel #1 Übergabe von Umgebungsvariablen und PHP Einstellungen an einen Pool

env[HOSTNAME] = $HOSTNAME
     env[PATH] = /usr/local/bin:/usr/bin:/bin
     env[TMP] = /tmp
     env[TMPDIR] = /tmp
     env[TEMP] = /tmp

     php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
     php_flag[display_errors] = off
     php_admin_value[error_log] = /var/log/fpm-php.www.log
     php_admin_flag[log_errors] = on
     php_admin_value[memory_limit] = 32M
PHP Einstellungen die mit php_value oder php_flag übergeben wurden überschreiben vorherige Werte. Es sei der Hinweis gestattet, dass disable_functions oder disable_classes nicht dazu führt, dass vorher definierte php.ini Einstellungen überschrieben werden, vielmehr werden die neuen Werte angehängt.

Einstellungen die mit php_admin_value und php_admin_flag gemacht wurden, können nicht durch Verwendung von ini_set() verändert werden.

Ab PHP 5.3.3 können PHP-Einstellungen ebenfalls im Webserver vorgenommen werden.

Beispiel #2 Festlegen von PHP-Einstellungen in nginx.conf

set $php_value "pcre.backtrack_limit=424242";
set $php_value "$php_value \n pcre.recursion_limit=99999";
fastcgi_param  PHP_VALUE $php_value;

fastcgi_param  PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
Achtung

Weil diese Einstellungen an php-fpm als FastCGI Header übergeben werden, sollte php-fpm nicht an eine öffentlich zugängliche Adresse gebunden sein. Andernfalls könnte jeder die PHP Konfigurationsoptionen ändern. Siehe auch listen.allowed_clients.


Installation of PECL extensions

Inhaltsverzeichnis

  • Introduction to PECL Installations
  • Downloading PECL extensions
  • Installing a PHP extension on Windows
  • Compiling shared PECL extensions with the pecl command
  • Compiling shared PECL extensions with phpize
  • php-config
  • Compiling PECL extensions statically into PHP


Introduction to PECL Installations

» PECL is a repository of PHP extensions that are made available to you via the » PEAR packaging system. This section of the manual is intended to demonstrate how to obtain and install PECL extensions.

These instructions assume /your/phpsrcdir/ is the path to the PHP source distribution, and that extname is the name of the PECL extension. Adjust accordingly. These instructions also assume a familiarity with the » pear command. The information in the PEAR manual for the pear command also applies to the pecl command.

To be useful, a shared extension must be built, installed, and loaded. The methods described below provide you with various instructions on how to build and install the extensions, but they do not automatically load them. Extensions can be loaded by adding an extension directive to the php.ini file, or through the use of the dl() function.

When building PHP modules, it's important to have known-good versions of the required tools (autoconf, automake, libtool, etc.) See the » Anonymous Git Instructions for details on the required tools, and required versions.


Downloading PECL extensions

There are several options for downloading PECL extensions, such as:

  • The pecl install extname command downloads the extensions code automatically, so in this case there is no need for a separate download.
  • » https://pecl.php.net/ The PECL web site contains information about the different extensions that are offered by the PHP Development Team. The information available here includes: ChangeLog, release notes, requirements and other similar details.
  • pecl download extname PECL extensions that have releases listed on the PECL web site are available for download and installation using the » pecl command. Specific revisions may also be specified.
  • SVN Most PECL extensions also reside in SVN. A web-based view may be seen at » https://svn.php.net/viewvc/pecl/. To download straight from SVN, the following sequence of commands may be used:

    $ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname

  • Windows downloads The PHP project compiles and offers Windows DLLs for most PECL extensions on the respective package page.


Installing a PHP extension on Windows

On Windows, you have two ways to load a PHP extension: either compile it into PHP, or load the DLL. Loading a pre-compiled extension is the easiest and preferred way.

To load an extension, you need to have it available as a ".dll" file on your system. All the extensions are automatically and periodically compiled by the PHP Group (see next section for the download).

To compile an extension into PHP, please refer to building from source documentation.

To compile a standalone extension (aka a DLL file), please refer to building from source documentation. If the DLL file is available neither with your PHP distribution nor in PECL, you may have to compile it before you can start using the extension.

Where to find an extension?

PHP extensions are usually called "php_*.dll" (where the star represents the name of the extension) and they are located under the "PHP\ext" folder.

PHP ships with the extensions most useful to the majority of developers. They are called "core" extensions.

However, if you need functionality not provided by any core extension, you may still be able to find one in » PECL. The PHP Extension Community Library (PECL) is a repository for PHP Extensions, providing a directory of all known extensions and hosting facilities for downloading and development of PHP extensions.

If you have developed an extension for your own uses, you might want to think about hosting it on PECL so that others with the same needs can benefit from your time. A nice side effect is that you give them a good chance to give you feedback, (hopefully) thanks, bug reports and even fixes/patches. Before you submit your extension for hosting on PECL, please read » PECL submit.

Which extension to download?

Many times, you will find several versions of each DLL:

  • Different version numbers (at least the first two numbers should match)
  • Different thread safety settings
  • Different processor architecture (x86, x64, ...)
  • Different debugging settings
  • etc.

You should keep in mind that your extension settings should match all the settings of the PHP executable you are using. The following PHP script will tell you all about your PHP settings:

Beispiel #1 phpinfo() call

<?php
phpinfo();
?>

Or from the command line, run:

drive:\\path\to\php\executable\php.exe -i

Loading an extension

The most common way to load a PHP extension is to include it in your php.ini configuration file. Please note that many extensions are already present in your php.ini and that you only need to remove the semicolon to activate them.

Note that, on PHP version 7.2.0 and up, the extension name may be used instead of the extension's file name. As this is OS-independent and easier, especially for newcomers, it becomes the recommended way of specifying extensions to load. File names remain supported for compatibility with prior versions.

;extension=php_extname.dll

extension=php_extname.dll

; On PHP version 7.2 and up, prefer :
extension=extname
zend_extension=another_extension

However, some web servers are confusing because they do not use the php.ini located alongside your PHP executable. To find out where your actual php.ini resides, look for its path in phpinfo():

Configuration File (php.ini) Path  C:\WINDOWS

Loaded Configuration File   C:\Program Files\PHP\5.2\php.ini

After activating an extension, save php.ini, restart the web server and check phpinfo() again. The new extension should now have its own section.

Resolving problems

If the extension does not appear in phpinfo(), you should check your logs to learn where the problem comes from.

If you are using PHP from the command line (CLI), the extension loading error can be read directly on screen.

If you are using PHP with a web server, the location and format of the logs vary depending on your software. Please read your web server documentation to locate the logs, as it does not have anything to do with PHP itself.

Common problems are the location of the DLL, the value of the " extension_dir" setting inside php.ini and compile-time setting mismatches.

If the problem lies in a compile-time setting mismatch, you probably didn't download the right DLL. Try downloading again the extension with the right settings. Again, phpinfo() can be of great help.


Compiling shared PECL extensions with the pecl command

PECL makes it easy to create shared PHP extensions. Using the » pecl command, do the following:

$ pecl install extname

This will download the source for extname, compile, and install extname.so into your extension_dir. extname.so may then be loaded via php.ini

By default, the pecl command will not install packages that are marked with the alpha or beta state. If no stable packages are available, you may install a beta package using the following command:

$ pecl install extname-beta

You may also install a specific version using this variant:

$ pecl install extname-0.1

Hinweis:

After enabling the extension in php.ini, restarting the web service is required for the changes to be picked up.


Compiling shared PECL extensions with phpize

Sometimes, using the pecl installer is not an option. This could be because you're behind a firewall, or it could be because the extension you want to install is not available as a PECL compatible package, such as unreleased extensions from SVN. If you need to build such an extension, you can use the lower-level build tools to perform the build manually.

The phpize command is used to prepare the build environment for a PHP extension. In the following sample, the sources for an extension are in a directory named extname:

$ cd extname
$ phpize
$ ./configure
$ make
# make install

A successful install will have created extname.so and put it into the PHP extensions directory. You'll need to and adjust php.ini and add an extension=extname.so line before you can use the extension.

If the system is missing the phpize command, and precompiled packages (like RPM's) are used, be sure to also install the appropriate devel version of the PHP package as they often include the phpize command along with the appropriate header files to build PHP and its extensions.

Execute phpize --help to display additional usage information.


php-config

php-config is a simple shell script for obtaining information about the installed PHP configuration.

When compiling extensions, if you have multiple PHP versions installed, you may specify for which installation you'd like to build by using the --with-php-config option during configuration, specifying the path of the respective php-config script.

The list of command line options provided by the php-config script can be queried anytime by running php-config with the -h switch:

Usage: /usr/local/bin/php-config [OPTION]
Options:
  --prefix            [...]
  --includes          [...]
  --ldflags           [...]
  --libs              [...]
  --extension-dir     [...]
  --include-dir       [...]
  --php-binary        [...]
  --php-sapis         [...]
  --configure-options [...]
  --version           [...]
  --vernum            [...]

Command line options
Option | Description
--prefix | Directory prefix where PHP is installed, e.g. /usr/local
--includes | List of -I options with all include files
--ldflags | LD Flags which PHP was compiled with
--libs | Extra libraries which PHP was compiled with
--extension-dir | Directory where extensions are searched by default
--include-dir | Directory prefix where header files are installed by default
--php-binary | Full path to php CLI or CGI binary
--php-sapis | Show all SAPI modules available
--configure-options | Configure options to recreate configuration of current PHP installation
--version | PHP version
--vernum | PHP version as integer


Compiling PECL extensions statically into PHP

You might find that you need to build a PECL extension statically into your PHP binary. To do this, you'll need to place the extension source under the /your/phpsrcdir/ext/ directory and tell the PHP build system to regenerate its configure script.

$ cd /your/phpsrcdir/ext
$ pecl download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname

This will result in the following directory:

/your/phpsrcdir/ext/extname

From here, force PHP to rebuild the configure script, and then build PHP as normal:

$ cd /your/phpsrcdir
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install

Hinweis: To run the 'buildconf' script you need autoconf 2.13 and automake 1.4+ (newer versions of autoconf may work, but are not supported).

Whether --enable-extname or --with-extname is used depends on the extension. Typically an extension that does not require external libraries uses --enable. To be sure, run the following after buildconf:

$ ./configure --help | grep extname


  • « Compiling PECL extensions statically into PHP
  • Lies das FAQ »
  • PHP Manual
  • Installation und Konfiguration
  • Probleme bei der Installation?

Probleme bei der Installation?

Inhaltsverzeichnis

  • Lies das FAQ
  • Weitere Probleme
  • Bugs melden


  • « Probleme bei der Installation?
  • Weitere Probleme »
  • PHP Manual
  • Probleme bei der Installation?
  • Lies das FAQ

Lies das FAQ

Im PHP FAQ findest du die häufigsten Probleme bei einer Installation und Lösungen


Weitere Probleme

Falls du trotzdem nicht mit der Installation weiterkommst, kann dir vielleicht jemand aus der PHP-Installations EMail Verteiler weiterhelfen. Schaue aber bitte erst im Archiv nach, ob dein Problem dort schonmal gelöst wurde. Das Archiv findest du hier: » https://www.php.net/support.php. Um dich für die PHP EMail Verteiler anzumelden, sende eine leere eMail an » php-install-subscribe@lists.php.net. Die Verteiler Adresse ist » php-install@lists.php.net.

Falls du von der Verteiler Liste Hilfe bekommen möchtest, sei so präzise wie möglich und alle nötigen Details über deine Systemumgebung (Betriebssystem, PHP Version, welcher WebServer, nutzt du PHP als CGI oder Server Module, usw.). Füge ausserdem genug Code an, um anderen das Reproduzieren des Fehlers zu erleichtern!


Bugs melden

Falls du glaubst einen Bug in PHP gefunden zu haben, dann melde ihn bitte. Das PHP Team kennt den Bug vermutlich noch nicht und solange du ihn nicht meldest wird er wahrscheinlich nicht behoben. Bugs kannst du hier melden: » https://bugs.php.net/. Bitte melde Bugs nicht über die eMail Verteiler Liste. Das Bug System eignet sich dazu, Features anzufragen!

Lies dir am besten » Wie melde ich einen Bug durch, bevor du einen Bug meldest!


Laufzeiteinstellungen

Inhaltsverzeichnis

  • Die Konfigurationsdatei
  • .user.ini-Dateien
  • Wo Konfigurationseinstellungen gesetzt werden können
  • Wie man Konfigurationseinstellungen ändert


Die Konfigurationsdatei

Die Konfigurationsdatei (php.ini) wird beim Start von PHP eingelesen. Für die Servermodul-Versionen von PHP geschieht dies nur einmal beim Start des Webservers. Für die CGI- und CLI-Versionen geschieht dies bei jedem Aufruf.

Nach der php.ini wird an folgenden Orten in der angegebenen Reihenfolge gesucht:

  • Spezielle Orte für SAPI-Module (PHPIniDir-Direktive im Apache2, -c Kommandozeilenparameter in CGI und CLI, php_ini-Parameter in NSAPI)
  • Die PHPRC-Umgebungsvariable. Vor PHP 5.2.0 wurde diese nach dem unten angegebenen Registrierungsschlüssel geprüft.
  • Seit PHP 5.2.0 kann die Position der php.ini-Datei für verschiedene Versionen von PHP gesetzt werden. Die Wurzel der Registrierungsschlüssel hängt davon ab, ob es sich um ein 32- oder 64-bit System handelt, und ebenfalls von der PHP-Version. Für 32-bit PHP auf einem 32-bit System, oder für 64-bit PHP auf einem 64-bit System ist [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP] zu verwenden; für 32-bit PHP auf einem 64-bit System ist statt dessen [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]] zu verwenden. Für Installation mit derselben Bitanzahl werden die folgende Registrierungsschlüssel in der angegebenen Reihenfolge durchsucht: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] und [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], wobei x, y und z die Major-, Minor- und Release-Versionen von PHP darstellen. Für 32-bit PHP-Versionen auf einem 64-bit System werden die folgenden Registrierungsschlüssel in der angegebenen Reihenfolge durchsucht: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] und [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x], wobei x, y und z die Major-, Minor- und Release-Versionen von PHP darstellen. Falls ein Wert für IniFilePath in einem dieser Schlüssel existiert, so wird der zuerst gefundene als Position der php.ini verwendet (nur unter Windows).
  • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] bzw. [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP], Wert von IniFilePath (nur unter Windows).
  • Aktuelles Arbeitsverzeichnis (außer CLI).
  • Das Webserververzeichnis (für SAPI-Module) oder das PHP-Verzeichnis (andernfalls in Windows).
  • Windows-Verzeichnis (C:\windows oder C:\winnt) (unter Windows) oder die --with-config-file-path-Kompilierungsoption.

Falls die Datei php-SAPI.ini existiert (wobei SAPI die verwendete SAPI ist, was als Dateinamen z.B. php-cli.ini oder php-apache.ini ergibt), wird diese anstelle der php.ini verwendet. Der Name der SAPI kann durch php_sapi_name() ermittelt werden.

Hinweis:

Der Apache-Webserver wechselt beim Start das Arbeitsverzeichnis in das Wurzelverzeichnis, weshalb PHP versucht, die php.ini aus dem Wurzelverzeichnis zu lesen, wenn diese existiert.

Wie untenstehend gezeigt, können Umgebungsvariablen in php.ini verwendet werden.

Beispiel #1 php.ini Umgebungsvariablen

; PHP_MEMORY_LIMIT ist der Name einer Umgebungsvariablen
memory_limit = ${PHP_MEMORY_LIMIT}

Die Optionen der php.ini für Extensions werden auf den Handbuchseiten der jeweiligen Extensions behandelt. Die Beschreibung der php.ini-Direktiven des Sprachkerns ist im Anhang verfügbar. Es werden jedoch möglicherweise nicht alle PHP-Direktiven im Handbuch erläutert. Für eine komplette Liste der in Ihrer PHP-Version verfügbaren Einstellungen lesen Sie bitte die gut kommentierte php.ini. Möglicherweise kann die » aktuellste php.ini aus dem Git-Repository ebenfalls hilfreich sein.

Beispiel #2 php.ini-Beispiel

; Jeder Text in einer Zeile nach einem Semikolon, welches nicht
; in Anführungszeichen steht, wird ignoriert
[php] ; Abschnittsmarkierungen (Text in eckigen Klammern) werden ebenfalls ignoriert
; Boolesche Werte können auf einen der folgenden Werte eingestellt werden:
;      true, on, yes
; oder false, off, no, none
register_globals = off
track_errors = yes

; Sie können Zeichenketten in Anführungszeichen einschließen
include_path = ".:/usr/local/lib/php"

; Backslashes werden wie alle anderen Zeichen behandelt
include_path = ".;c:\php\lib"

Seit PHP 5.1.0 ist es möglich, sich auf bereits definierte .ini-Variablen innerhalb der .ini-Dateien zu beziehen. Zum Beispiel: open_basedir = ${open_basedir}":/new/dir".

Scan-Verzeichnisse

Es ist möglich, PHP so zu konfigurieren, dass nach .ini Dateien in einem Verzeichnis gesucht wird, nachdem php.ini gelesen wurde. Dies kann zur Kompilierzeit durch Setzen der --with-config-file-scan-dir Option erfolgen. In PHP 5.2.0 und neuer kann das Scan-Verzeichnis zur Laufzeit übersteuert werden, indem die Umgebungsvariable PHP_INI_SCAN_DIR gesetzt wird.

Es ist möglich, mehrere Verzeichnisse anzugeben, indem sie mit dem Plattform spezifischen Pfadtrenner (; unter Windows, NetWare und RISC OS; : auf allen anderen Plattformen; der Wert, den PHP verwendet, is als PATH_SEPARATOR verfügbar). Wird ein leeres Verzeichnis in PHP_INI_SCAN_DIR angegeben, dann wird PHP ebenfalls das zur Kompilierzeit mit --with-config-file-scan-dir angegebene Verzeichnis durchsuchen.

In jedem Verzeichnis wird PHP alle Dateien mit der Erweiterung .ini in alphabetischer Reihenfolge lesen. Eine gemäß der Reihenfolge geordnete Liste der geladenen Dateien ist durch Aufruf von php_ini_scanned_files() verfügbar, oder indem PHP mit der --ini Option ausgeführt wird.

Wir nehmen an, dass PHP mit --with-config-file-scan-dir=/etc/php.d kompiliert
wurde, und dass der Pfadtrenner : ist...

$ php
  PHP wird alle Dateien in /etc/php.d/*.ini als Konfigurationsdateien laden.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php
  PHP wird alle Dateien in /usr/local/etc/php.d/*.ini als
  Konfigurationsdateien laden.

$ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php
  PHP wird alle Dateien in /etc/php.d/*.ini, und dann
  /usr/local/etc/php.d/*.ini als Konfigurationsdateien laden.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php
  PHP wird alle Dateien in /usr/local/etc/php.d/*.ini, und dann
  /etc/php.d/*.ini als Konfigurationsdateien laden.

Changelog

Version | Beschreibung
7.0.0 | Rautensymbole (#) werden nicht mehr als Kommentare erkannt.
5.3.0 | Rautensymbole (#) sollten nicht mehr als Kommentare verwendet werden, und lösen eine Missbilligungswarnung aus, falls doch verwendet.
5.2.0 | Die Umgebungsvariable PHP_INI_SCAN_DIR kann verwendet werden, um die Scan-Verzeichnisse zu übersteueren, die zur Kompilierzeit festgelegt wurden.
5.1.0 | Es ist möglich, sich innerhalb von .ini Dateien auf bestehende .ini Variablen zu beziehen.


.user.ini-Dateien

Seit PHP 5.3.0 bietet PHP Unterstützung für Konfigurations-INI-Dateien auf Verzeichnisebene an. Diese Dateien werden nur durch die CGI/FastCGI-SAPI verarbeitet. Durch diese Funktionalität wird die htscanner-PECL-Erweiterung obsolet. Falls Sie PHP als Apache-Modul ausführen, können Sie für den selben Effekt .htaccess-Dateien benutzen.

Zusätzlich zur Haupt-php.ini-Datei sucht PHP auch nach INI-Dateien in jedem Verzeichnis, beginnend mit dem Verzeichnis in der die angeforderte PHP-Datei liegt, aufwärts bis hin zum aktuellen "document root" (wie in $_SERVER['DOCUMENT_ROOT'] angezeigt). Falls sich die PHP-Datei außerhalb des "document root" befindet, wird nur das Verzeichnis, in dem sich die Datei befindet, durchsucht.

Nur INI-Einstellungen mit den Modi PHP_INI_PERDIR und PHP_INI_USER werden als .user.ini-INI-Dateien erkannt.

Zwei neue INI-Direktiven, user_ini.filename und user_ini.cache_ttl steuern die Nutzung der Benutzer-INI-Dateien.

user_ini.filename setzt den Namen der Datei, die von PHP in jedem Verzeichnis gesucht wird; falls dies auf eine leere Zeichenkette gesetzt wird, sucht PHP nach keiner Datei. Der Standardwert ist .user.ini.

user_ini.cache_ttl steuert, wie oft die Benutzer-INI-Dateien neu eingelesen werden. Der Standardwert beträgt 300 Sekunden (5 Minuten).


Wo Konfigurationseinstellungen gesetzt werden können

Diese Modi bestimmen wann und wo eine PHP-Direktive gesetzt oder nicht gesetzt werden kann. Jede Direktive im Handbuch verweist auf einen dieser Modi. Zum Beispiel können einige Einstellungen in einem PHP-Skript mittels ini_set() gesetzt werden, während andere nur über die php.ini oder httpd.conf gesetzt werden können.

Ein Beispiel ist die output_buffering-Einstellung. Wegen PHP_INI_PERDIR kann sie nicht mittels ini_set() gesetzt werden. Die display_errors-Einstellung hingegegen kann wegen PHP_INI_ALL überall gesetzt werden, also auch mittels ini_set().

Definition der PHP_INI_*-Modi
Modus | Bedeutung
PHP_INI_USER | Eintrag kann in Benutzerskripten (z.B. mittels ini_set()) oder in der Windows-Registry gesetzt werden. Seit PHP 5.3 kann die Option auch in der .user.ini gesetzt werden.
PHP_INI_PERDIR | Eintrag kann in der php.ini, .htaccess, httpd.conf oder .user.ini (seit PHP 5.3) gesetzt werden
PHP_INI_SYSTEM | Eintrag kann in der php.ini oder httpd.conf gesetzt werden
PHP_INI_ALL | Eintrag kann überall gesetzt werden


Wie man Konfigurationseinstellungen ändert

PHP läuft als Apachemodul

Wenn man PHP als Apachemodul verwendet, kann man die Konfigurationseinstellungen mittels Direktiven in den Apache-Konfigurationsdateien (z.B. httpd.conf) und .htaccess-Dateien ändern. Dafür benötigt man "AllowOverride Options"- oder "AllowOverride All"-Privilegien.

Es gibt verschiedene Apachedirektiven, die es erlauben, die PHP-Konfiguration aus den Apache-Konfigurationsdateien heraus zu ändern. Für eine Liste von Direktiven, die als PHP_INI_ALL, PHP_INI_PERDIR, oder PHP_INI_SYSTEM definiert sind, werfen Sie einen Blick auf den Anhang Liste von php.ini Einstellungen.

php_value Name Wert

Setzt den Wert der angegebenen Direktive. Kann nur für Direktiven mit den Typen PHP_INI_ALL und PHP_INI_PERDIR verwendet werden. Um einen vorher gesetzten Wert zu löschen, verwenden Sie none als Wert.

Hinweis: Verwenden Sie php_value nicht, um boolesche Werte zu setzen. php_flag (siehe unten) sollte stattdessen verwendet werden.

php_flag Name on|off

Setzt eine boolesche Konfigurationsdirektive. Kann nur für Direktiven mit den Typen PHP_INI_ALL und PHP_INI_PERDIR verwendet werden.

php_admin_value Name Wert

Setzt den Wert der angegebenen Direktive. Dies kann nicht in .htaccess-Dateien verwendet werden. Jeder Direktiventyp, der mit php_admin_value gesetzt wird, kann nicht durch .htaccess-Direktiven oder mit ini_set() überschrieben werden. Um einen vorher gesetzten Wert zu löschen, verwenden Sie none als Wert.

php_admin_flag Name on|off

Setzt eine boolesche Konfigurationsdirektive. Dies kann nicht in .htaccess-Dateien verwendet werden. Jeder Direktiventyp, der mit php_admin_value gesetzt wird, kann nicht durch .htaccess-Direktiven oder ini_set() überschrieben werden.

Beispiel #1 Apache-Konfigurationsbeispiel

<IfModule mod_php5.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>
<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>

Achtung

PHP-Konstanten existieren nicht außerhalb von PHP. So kann man z.B. in der httpd.conf nicht PHP-Konstanten wie E_ALL oder E_NOTICE verwenden, um den Wert der error_reporting-Direktive zu ändern, da diese keine Bedeutung haben und als 0 ausgewertet werden. Verwenden Sie stattdessen die zugehörigen Bitmasken-Werte direkt. Diese Konstanten können in der php.ini verwendet werden.

Die PHP-Konfiguration mit der Windows Registry ändern

Wenn Sie PHP unter Windows einsetzen, können Sie die Konfigurationseinstellungen für jedes einzelne Verzeichnis mit der Windows-Registry anpassen. Die Werte der Konfiguration werden unterhalb des Registrierungsschlüssels HKLM\SOFTWARE\PHP\Per Directory Values in den zum Verzeichnisnamen passenden Unterschlüssel gespeichert.Zum Beispiel würden Werte für das Verzeichnis c:\inetpub\wwwroot im Registrierungsschlüssel HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot gespeichert werden. Die Einstellungen für dieses Verzeichnis wären für alle Skripte aktiv, die in diesem Verzeichnis oder einem seiner Unterverzeichnisse laufen. Die Werte in diesem Schlüssel sollten den Namen eine PHP- Konfigurationsdirektive und einen Zeichenkettenwert haben. Konstenten in den Werten werden nicht ausgewertet. Es können jedoch nur Werte, die in PHP_INI_USER änderbar sind, auf diese Weise gesetzt werden, nicht als PHP_INI_PERDIR deklarierte Werte, da diese Konfigurationswerte für jeden Request erneut gelesen werden.

Andere Zugänge zu PHP

Egal wie Sie PHP betreiben, Sie können bestimmte Werte zur Laufzeit Ihrer Skripte mittels ini_set() setzen. Werfen Sie dazu einen Blick auf die Dokumentation von ini_set().

Wenn Sie an einer kompletten Liste von Konfigurationseinstellungen Ihres Systems inklusive deren aktuellen Werten interessiert sind, können Sie die Funktion phpinfo() ausführen und die daraus resultierende Seite betrachten. Sie können auf die Werte einzelner Konfigurationsdirektiven zur Laufzeit mittels ini_get() oder get_cfg_var() zugreifen.


Sprachreferenz

  • Grundlagen der Syntax
    • PHP-Tags
    • Den HTML-Bereich verlassen
    • Die Trennung von Anweisungen
    • Kommentare
  • Typen
    • Einführung
    • Booleans
    • Integers
    • Gleitkommazahlen
    • Strings
    • Numeric strings
    • Arrays
    • Iterables
    • Objekte
    • Ressourcen
    • NULL
    • Callbacks / Callables
    • Type declarations
    • Type Juggling
  • Variablen
    • Grundlegendes
    • Vordefinierte Variablen
    • Geltungsbereich von Variablen
    • Variable Variablen
    • Variablen aus externen Quellen
  • Konstanten
    • Syntax
    • Magische Konstanten
  • Ausdrücke
  • Operatoren
    • Operator-Rangfolge
    • Arithmetische Operatoren
    • Zuweisungsoperatoren
    • Bit-Operatoren
    • Vergleichs-Operatoren
    • Fehler-Kontroll-Operatoren
    • Operatoren zur Programmausführung
    • Inkrement- bzw. Dekrementoperatoren
    • Logische Operatoren
    • Zeichenketten-Operatoren
    • Array-Operatoren
    • Typ-Operatoren
  • Kontrollstrukturen
    • Einführung
    • if
    • else
    • elseif/else if
    • Alternative Syntax für Kontrollstrukturen
    • while
    • do-while
    • for
    • foreach
    • break
    • continue
    • switch
    • match
    • declare
    • return
    • require
    • include
    • require_once
    • include_once
    • goto
  • Funktionen
    • Benutzerdefinierte Funktionen
    • Funktionsparameter
    • Rückgabewerte
    • Variablenfunktionen
    • Interne (eingebaute) Funktionen
    • Anonyme Funktionen
    • Pfeilfunktionen
  • Klassen und Objekte
    • Einführung
    • Die Grundlagen
    • Eigenschaften
    • Klassenkonstanten
    • Autoloading
    • Konstruktoren und Destruktoren
    • Sichtbarkeit
    • Objekt-Vererbung
    • Gültigkeitsbereichsoperator (::)
    • Static-Schlüsselwort
    • Klassenabstraktion
    • Interfaces
    • Traits
    • Anonyme Klassen
    • Überladung
    • Objektiteration
    • Magische Methoden
    • Final-Schlüsselwort
    • Objekte klonen
    • Objekte vergleichen
    • Späte statische Bindung
    • Objekte und Referenzen
    • Serialisierung von Objekten
    • Covariance and Contravariance
    • OOP-Changelog
  • Namespaces
    • Übersicht über Namespaces
    • Namespaces definieren
    • Unter-Namespaces deklarieren
    • Mehrere Namespaces in derselben Datei definieren
    • Namespaces verwenden: Grundlagen
    • Namespaces und dynamische Sprachfeatures
    • Namespace-Schlüsselwort und __NAMESPACE__-Konstante
    • Namespaces verwenden: Aliase/Importieren
    • Globaler Namensraum
    • Namespaces verwenden: Rückgriff auf globale Funktion/Konstante
    • Regeln für Namensauflösung
    • FAQ: Dinge, die Sie über Namespaces wissen sollten
  • Fehler
    • Basics
    • Fehler in PHP 7
  • Ausnahmebehandlung (Exception-Handling)
    • Exceptions erweitern
  • Generatoren
    • Generatoren-Übersicht
    • Generator-Syntax
    • Vergleich von Generatoren mit Iterator-Objekten
  • Attributes
    • Attributes overview
    • Attribute syntax
    • Reading Attributes with the Reflection API
    • Declaring Attribute Classes
  • Referenzen in PHP
    • Was Referenzen sind
    • Was Referenzen leisten
    • Was Referenzen nicht sind
    • Parameterübergabe per Referenz
    • Referenzen zurückgeben
    • Referenzen aufheben
    • Referenzen entdecken
  • Vordefinierte Variablen
    • Superglobals — Superglobals sind interne Variablen, die immer in allen Gültigkeitsbereichen verfügbar sind
    • $GLOBALS — Referenziert alle Variablen, die im globalen Gültigkeitsbereich vorhanden sind
    • $_SERVER — Informationen über Server und Ausführungsumgebung
    • $_GET — HTTP GET-Variablen
    • $_POST — HTTP POST-Variablen
    • $_FILES — HTTP Dateiupload-Variablen
    • $_REQUEST — HTTP Request-Variablen
    • $_SESSION — Sessionvariablen
    • $_ENV — Umgebungsvariablen
    • $_COOKIE — HTTP Cookies
    • $php_errormsg — Die vorangegangene Fehlermeldung
    • $http_response_header — HTTP Response-Header
    • $argc — Die Anzahl der an das Skript übergebenen Argumente
    • $argv — Array der an das Skript übergebenen Argumente
  • Vordefinierte Exceptions
    • Exception
    • ErrorException
    • Error
    • ArgumentCountError
    • ArithmeticError
    • AssertionError
    • DivisionByZeroError
    • CompileError
    • ParseError
    • TypeError
  • Vordefinierte Interfaces und Klassen
    • Traversable — Das Traversable-Interface
    • Iterator — Das Iterator-Interface
    • IteratorAggregate — Das IteratorAggregate-Interface
    • Throwable
    • ArrayAccess — Das ArrayAccess-Interface
    • Serializable — Das Serializable-Interface
    • Closure — The Closure class
    • Generator — Die Generator Klasse
    • WeakReference — The WeakReference class
  • Kontextoptionen und -parameter
    • Socket context options — Socket context option listing
    • HTTP context options — HTTP context option listing
    • FTP-Kontextoptionen — Liste der FTP-Kontextoptionen
    • SSL-Kontext-Optionen — Liste der SSL-Kontext-Optionen
    • CURL Kontextoptionen — Liste der CURL Kontextoptionen
    • Phar Kontextoptionen — Liste der Phar Kontextoptionen
    • MongoDB context options — MongoDB context option listing
    • Kontextparameter — Liste der Kontextparameter
    • Zip context options — Zip context option listing
  • Unterstützte Protokolle und Wrapper
    • file:// — Accessing local filesystem
    • http:// — Accessing HTTP(s) URLs
    • ftp:// — Accessing FTP(s) URLs
    • php:// — Accessing various I/O streams
    • zlib:// — Compression Streams
    • data:// — Data (RFC 2397)
    • glob:// — Find pathnames matching pattern
    • phar:// — PHP Archive
    • ssh2:// — Secure Shell 2
    • rar:// — RAR
    • ogg:// — Audio streams
    • expect:// — Process Interaction Streams


Grundlagen der Syntax

Inhaltsverzeichnis

  • PHP-Tags
  • Den HTML-Bereich verlassen
  • Die Trennung von Anweisungen
  • Kommentare


PHP-Tags

Wenn PHP eine Datei parst, schaut es nach öffnenden und schließenden Tags, also <?php und ?>, die PHP anweisen, mit dem Interpretieren des zwischenliegenden Codes zu beginnen bzw. es zu beenden. Auf diese Weise zu parsen ermöglicht die Einbettung von PHP in allen möglichen unterschiedlichen Dokumenten, da alles außerhalb eines Paares von öffnenden und schließenden Tags vom PHP-Parser ignoriert wird.

PHP kennt den kurzen Ausgabe-Tag <?=, der eine Kurzform des ausführlicheren Ausgabe-Tags <?php echo ist.

Beispiel #1 Öffnende und schließende PHP-Tags

1.  <?php echo 'Verwenden Sie diese Tags, wenn Sie PHP-Code in XHTML- oder
                XML-Dokumenten ausgeben wollen'; ?>

2.  Sie können den kurzen echo-Tag für die
    <?= 'Ausgabe dieser Zeichenkette' ?> verwenden.
    Es ist äquivalent zur <?php echo 'Ausgabe dieser Zeichenkette' ?>.

3.  <? echo 'dieser Code ist innerhalb von kurzen Tags, wird aber nur '.
            'funktionieren, wenn short_open_tag aktiviert ist'; ?>

Kurze Tags (Beispiel drei) sind standardmäßig verfügbar, können aber entweder über die Anweisung short_open_tag der php.ini-Konfigurationsdatei deaktiviert werden oder sind standardmäßig deaktiviert, wenn PHP mit der Konfigurationsanweisung --disable-short-tags gebaut wird.

Hinweis:

Da kurze Tags deaktiviert werden können, wird für maximale Kompatibilität empfohlen, nur die normalen Tags (<?php ?> und <?= ?>) zu verwenden.

Wenn eine Datei nur PHP-Code enthält, ist es besser, den schließenden PHP-Tag am Ende der Datei wegzulassen. Dies verhindert, dass versehentlich Leerzeichen oder neue Zeilen nach dem schließenden Tag eingefügt werden, was unerwünschte Effekte verursachen kann, da PHP mit der Ausgabe beginnt, obwohl der Programmierer an dieser Stelle des Skripts nicht die Absicht hat, eine Ausgabe zu senden.

<?php
echo "Hallo Welt";

// ... mehr Code

echo "Letzte Anweisung";

// das Skript endet hier ohne schließenden PHP-Tag


Den HTML-Bereich verlassen

Alles außerhalb eines Paares von öffnenden und schließenden Tags wird vom PHP-Parser ignoriert, was es ermöglicht, dass PHP-Dateien gemischten Inhalt haben können. Das ermöglicht die Einbettung von PHP in HTML-Dokumenten, zum Beispiel um Templates zu erstellen.

<p>Das hier wird von PHP ignoriert, und vom Browser angezeigt.</p>
<?php echo 'Wohingegen das hier geparst wird.'; ?>
<p>Dies wird ebenfalls von PHP ignoriert, und vom Browser angezeigt.</p>
Dies funktioniert wie erwartet, da der PHP-Interpreter, wenn er auf einen schließenden ?>-Tag trifft, einfach beginnt, alles mit Ausnahme des direkt folgenden Zeilenumbruchs (siehe auch den Abschnitt Abgrenzung von Anweisungen) auszugeben, bis er wieder auf einen öffnenden Tag stößt. Das gilt nicht in der Mitte einer bedingten Anweisung. In diesem Fall ermittelt der Interpreter das Resultat der Bedingung, bevor er entscheidet, was übersprungen wird. Siehe das folgende Beispiel.

Verwendung von Strukturen mit Bedingungen

Beispiel #1 Fortgeschrittene Ausgabe unter Verwendung von Bedingungen

<?php if ($expression == true): ?>
  Dies wird angezeigt, wenn der Ausdruck wahr ist.
<?php else: ?>
  Andernfalls wird dies angezeigt.
<?php endif; ?>
In diesem Beispiel überspringt PHP die Blöcke, in denen die Bedingung nicht erfüllt ist, obwohl diese außerhalb der öffnenden/schließenden PHP-Tags liegen; PHP überspringt sie entsprechend der Bedingung, da der PHP-Interpreter Blöcke innerhalb einer nicht erfüllten Bedingung überspringt.

Für die Ausgabe von großen Textblöcken ist der Ausstieg aus dem Parse-Modus generell effizienter, als den gesamten Text durch echo oder print zu jagen.

Hinweis:

Wenn PHP in XML oder XHTML eingebettet wird, müssen die normalen <?php ?>-PHP-Tags verwenden werden, um die Standards einzuhalten.


Die Trennung von Anweisungen

Wie in C oder Perl müssen Anweisungen auch in PHP am Ende mit einem Semikolon abgeschlossen werden. Der abschließende Tag eines PHP-Codeblocks impliziert automatisch ein Semikolon; die letzte Zeile eines PHP-Blocks benötigt kein Semikolon am Ende. Der schließende Tag des Blocks schließt den unmittelbar folgenden Zeilenumbruch, falls vorhanden, ein.

Beispiel #1 Beispiel für den schließenden Tag, der den abschließenden Zeilenumbruch einschließt

<?php echo "Etwas Text"; ?>
Kein Zeilenumbruch
<?= "Aber jetzt ein Zeilenumbruch" ?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Etwas TextKein Zeilenumbruch
Aber jetzt ein Zeilenumbruch

Beispiele für das Starten und Beenden des PHP-Parsers:

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

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

<?php echo 'Wir ließen den letzten schließenden Tag weg';

Hinweis:

Der schließende Tag eines PHP-Blocks am Ende einer Datei ist optional, und in einigen Fällen ist das Weglassen hilfreich, wenn Sie include oder require verwenden, so dass ungewollte Whitespaces nicht am Ende einer Datei auftreten und Sie noch im Stande sind, später weitere Header an die Antwort hinzuzufügen. Es ist ebenfalls praktisch, wenn Sie die Ausgabepufferung verwenden und keine ungewollten Whitespaces am Ende eines durch die eingebundenen Dateien erzeugten Teils sehen wollen.


Kommentare

PHP unterstützt 'C'-, 'C++'- und Unix-Shell-artige (Perl-artige) Kommentare. Zum Beispiel:

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

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. Das bedeutet, das HTML-Code nach // ... ?> oder # ... ?> ausgegeben WIRD: ?> beendet den PHP-Modus und kehrt in den HTML-Modus zurück, so dass sich // oder # nicht darauf auswirkt.

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

'C'-artige Kommentare enden am ersten Vorkommen von */. Achten Sie daher darauf, 'C'-artige Kommentare nicht zu verschachteln. Dieser Fehler entsteht leicht, wenn Sie längere Code-Blöcke auskommentieren.

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


Typen

Inhaltsverzeichnis

  • Einführung
  • Booleans
  • Integers
  • Gleitkommazahlen
  • Strings
  • Numeric strings
  • Arrays
  • Iterables
  • Objekte
  • Ressourcen
  • NULL
  • Callbacks / Callables
  • Type declarations
  • Type Juggling


Einführung

PHP unterstützt zehn primitive Typen.

Vier skalare Typen:

  • bool
  • int
  • Fließkomma-Zahl (float) (auch double)
  • String / Zeichenkette

Vier zusammengesetzte Typen:

  • Array
  • Objekt
  • Callable
  • Iterable

Und zuletzt zwei spezielle Typen:

  • Ressource
  • NULL

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

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

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

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

<?php
$a_bool = TRUE;   // ein Boolean (Wahrheitswert)
$a_str  = "foo";  // eine Zeichenkette (String)
$a_str2 = 'foo';  // eine Zeichenkette (String)
$an_int = 12;     // ein Integer (Ganzzahl)

echo gettype($a_bool); // gibt aus:  boolean
echo gettype($a_str);  // gibt aus:  string

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

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

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

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


Booleans

Dies ist der einfachste Typ. Ein boolean Ausdruck ist ein Wahrheitswert der entweder true (wahr) oder false (falsch) sein kann.

Syntax

Ein boolean Wert wird über die Konstanten true und false spezifiziert, Groß- und Kleinschreibung ist dabei nicht von Bedeutung.

<?php
$foo = True; // weist $foo den Wert TRUE zu
?>

Normalerweise wird ein boolean von einem Operator zurückgegeben und an eine Kontrollstruktur weitergegeben.

<?php
// == ist ein Operator der auf Gleichheit prüft
// und ein boolean Ergebnis zurückgibt
if ($action == "show_version") {
    echo "Die Version ist 1.23";
}

// die Angabe von '== TRUE' ist nicht nötig...
if ($show_separators == TRUE) {
    echo "<hr>\n";
}

// ... weil folgendes *genau* die selbe Bedeutung hat:
if ($show_separators) {
    echo "<hr>\n";
}
?>

Converting to boolean

Um einen Wert explizit zu boolean zu konvertieren, wird (bool) oder (boolean) zum casten verwendet. Dies ist jedoch in den meisten Fällen nicht nötig, da ein Wert automatisch konvertiert wird wenn eine Funktion oder Kontrollstruktur ein boolean Argument verlangt.

Siehe auch Typumwandlungen.

Bei der Konvertierung zum Typ boolean gelten die folgenden Werte als false:

  • boolean false selbst
  • integer 0 und -0 (zero)
  • float 0.0 und -0.0 (zero)
  • Der leere string, und der string "0"
  • Ein array ohne Elemente
  • Der spezielle Typ NULL (inklusive nicht gesetzter Variablen)
  • SimpleXML Objekte die aus leeren Tags erzeugt wurden.

Jeder andere Wert wird als true angenommen (inklusive jeglicher resource Werte und NAN).

Warnung

-1 gilt als true wie jeder andere Integerwert ungleich 0 (egal ob positiv oder negativ)!

<?php
var_dump((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)
?>


Integers

An int is a number of the set Z = {..., -2, -1, 0, 1, 2, ...}.

See also:

  • Arbitrary length integer / GMP
  • Floating point numbers
  • Arbitrary precision / BCMath

Syntax

ints can be specified in decimal (base 10), hexadecimal (base 16), octal (base 8) or binary (base 2) notation. The negation operator can be used to denote a negative int.

To use octal notation, precede the number with a 0 (zero). To use hexadecimal notation precede the number with 0x. To use binary notation precede the number with 0b.

As of PHP 7.4.0, integer literals may contain underscores (_) between digits, for better readability of literals. These underscores are removed by PHP's scanner.

Beispiel #1 Integer literals

<?php
$a = 1234; // decimal number
$a = 0123; // octal number (equivalent to 83 decimal)
$a = 0x1A; // hexadecimal number (equivalent to 26 decimal)
$a = 0b11111111; // binary number (equivalent to 255 decimal)
$a = 1_234_567; // decimal number (as of PHP 7.4.0)
?>

Formally, the structure for int literals is as of PHP 7.4.0 (previously, underscores have not been allowed):

decimal     : [1-9][0-9]*(_[0-9]+)*
            | 0

hexadecimal : 0[xX][0-9a-fA-F]+(_[0-9a-fA-F]+)*

octal       : 0[0-7]+(_[0-7]+)*

binary      : 0[bB][01]+(_[01]+)*

integer     : decimal
            | hexadecimal
            | octal
            | binary

The size of an int is platform-dependent, although a maximum value of about two billion is the usual value (that's 32 bits signed). 64-bit platforms usually have a maximum value of about 9E18. PHP does not support unsigned ints. int size can be determined using the constant PHP_INT_SIZE, maximum value using the constant PHP_INT_MAX, and minimum value using the constant PHP_INT_MIN.

Integer overflow

If PHP encounters a number beyond the bounds of the int type, it will be interpreted as a float instead. Also, an operation which results in a number beyond the bounds of the int type will return a float instead.

Beispiel #2 Integer overflow on a 32-bit system

<?php
$large_number = 2147483647;
var_dump($large_number);                     // int(2147483647)

$large_number = 2147483648;
var_dump($large_number);                     // float(2147483648)

$million = 1000000;
$large_number =  50000 * $million;
var_dump($large_number);                     // float(50000000000)
?>

Beispiel #3 Integer overflow on a 64-bit system

<?php
$large_number = 9223372036854775807;
var_dump($large_number);                     // int(9223372036854775807)

$large_number = 9223372036854775808;
var_dump($large_number);                     // float(9.2233720368548E+18)

$million = 1000000;
$large_number =  50000000000000 * $million;
var_dump($large_number);                     // float(5.0E+19)
?>

There is no int division operator in PHP, to achieve this use the intdiv() function. 1/2 yields the float 0.5. The value can be cast to an int to round it towards zero, or the round() function provides finer control over rounding.

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

Converting to integer

To explicitly convert a value to int, use either the (int) or (integer) casts. However, in most cases the cast is not needed, since a value will be automatically converted if an operator, function or control structure requires an int argument. A value can also be converted to int with the intval() function.

If a resource is converted to an int, then the result will be the unique resource number assigned to the resource by PHP at runtime.

See also Type Juggling.

From booleans

false will yield 0 (zero), and true will yield 1 (one).

From floating point numbers

When converting from float to int, the number will be rounded towards zero.

If the float is beyond the boundaries of int (usually +/- 2.15e+9 = 2^31 on 32-bit platforms and +/- 9.22e+18 = 2^63 on 64-bit platforms), the result is undefined, since the float doesn't have enough precision to give an exact int result. No warning, not even a notice will be issued when this happens!

Hinweis:

NaN and Infinity will always be zero when cast to int.

Warnung

Never cast an unknown fraction to int, as this can sometimes lead to unexpected results.

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

See also the warning about float precision.

From strings

If the string is numeric or leading numeric then it will resolve to the corresponding integer value, otherwise it is converted to zero (0).

From NULL

null is always converted to zero (0).

From other types

Achtung

The behaviour of converting to int is undefined for other types. Do not rely on any observed behaviour, as it can change without notice.


Gleitkommazahlen

Gleitkommazahlen (auch als "floats", "doubles" oder "reelle Zahlen" bezeichnet) können anhand einer der folgenden Schreibweisen bezeichnet werden:

<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
$d = 1_234.567; // von PHP 7.4.0 an
?>

Formell von PHP 7.4.0 an (zuvor waren Unterstiche nicht erlaubt):

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

Die Größe einer Gleitkommazahl ist plattformabhängig, ein Maximalwert von circa 1.8e308 mit einer Präzision von ungefähr 14 Dezimal-Nachkommastellen ist jedoch ein üblicher Wert (64-Bit IEEE-Format).

Warnung

Genauigkeit von Gleitkommazahlen

Gleitkommazahlen haben eine begrenzte Präzision. Obgleich dies vom System abhängig ist, verwendet PHP üblicherweise das IEEE 754 Double Precision Format, welches einen maximalen relativen Rundungsfehler in einer Größenordnung en 1.11e-16 ergibt. Nicht-Elementare arithmetische Operationen können jedoch größere Fehler hervorgerufen und natürlich muss eine Fortpflanzung des Fehlers berücksichtigt werden, wenn mehrere Operationen zusammengesetzt werden.

Außerdem gibt es rationale Zahlen die zur Basis 10 als Gleitkommazahlen exakt dargestellt werden können, beispielsweise 0.1 or 0.7, für die es aber keine exakte Repräsentation als Gleitkommazahlen zur Basis 2 gibt, welche intern aber unabhängig von der Größe der Mantisse verwendet wird. Daher können Sie nicht ohne einen geringen Präzisionsverlust in ihre intern binäre Darstellung umgewandelt werden. Dies kann zu verwirrenden Ergebnissen führen: floor((0.1+0.7)*10) wird üblicherweise 7 ergeben statt des erwarteten Ergebnisses von 8, da die interne Repräsentation etwas ist wie 7.9999999999999991118....

Man sollte sich daher niemals bis zur letzten Nachkommastelle auf Fließkommazahlen verlassen und Fließkommazahlen niemals direkt auf Gleichheit prüfen. Wenn eine höhere Präzision notwendig ist, stehen die Mathematikfunktionen mit beliebiger Präzision und gmp-Funktionen zur Verfügung.

Für eine "einfache" Erklärung, steht der Ratgeber » Floating Point Guide zur Verfügung, welche auch den Titel hat "Why don’t my numbers add up?"

Konvertierung in float

Informationen zur Konvertierung von Strings zu Floats findet man unter Konvertierung von Zeichenketten zu Zahlen. Werte alle anderen Typen werden konvertiert, indem der Wert zuerst in den Typ Integer konvertiert wird und dieser anschließend zu Float. Weitere Informationen findet man unter Konvertierung in Integer. Seit PHP 5 wird eine Notice erzeugt, wenn ein Object in einen Float konvertiert wird.

Gleitkommazahlen vergleichen

Wie in der obigen Warnung bereits dargestellt, ist es problematisch Gleitkommazahlen auf Gleichheit zu überprüfen, aufgrund ihrer internen Darstellungsart. Es gibt allerdings Wege diese Vergleiche von Gleitkommazahlen anzustellen, die diese Beschränkungen umgehen.

Um Gleitkommazahlen auf Gleichheit zu prüfen, wird eine obere Schranke für den Rundungsfehler verwendet. Dieser Wert ist bekannt als Maschinengenauigkeit Epsilon bekannt und stellt die kleinste annehmbare Differenz in der Berechnung dar.

$a und $b sind bis auf 5 Nachkommastellen gleich.

<?php
$a = 1.23456789;
$b = 1.23456780;
$epsilon = 0.00001;

if(abs($a-$b) < $epsilon) {
    echo "true";
}
?>

NaN

Einige numerische Operationen können einen Wert ergeben der durch die Konstante NAN repräsentiert wird. Dieses Ergebnis repräsentiert einen undefinierten oder nicht darstellbaren Wert in den Fließkommaberechnungen. Jeder strikte oder nicht strikte Vergleich dieses Werts mit jedem beliebigen anderen Wert, inklusive sich selbst, nur nicht true, wird ein Ergebnis von false hervorbringen.

Da NAN eine beliebige Anzahl von anderen Werten darstellen kann, sollte NAN nicht mit anderen Werten verglichen werden, einschließlich sich selbst. Stattdessen sollte zur Prüfung is_nan() verwendet werden.


Strings

Ein String stellt eine Kette von Zeichen dar indem ein Zeichen gleichbedeutend mit einem Byte ist. Das bedeutet, es gibt exakt 256 mögliche Zeichen. Es impliziert zudem, dass PHP keine native Unterstützung von Unicode bietet. Siehe auch Details des String-Typs.

Hinweis: Von PHP 7.0.0 gibt es keine besonderen Beschränkungen bezüglicher der Länge eines String mehr unter 64-bit-Versionen. Unter 32-bit- und früheren Versionen kann Eine Zeichenkette (String) bis zu 2GB (maximal 2147483647 bytes) groß werden.

Syntax

Ein String-Literal kann auf vier unterschiedliche Arten spezifiziert werden:

  • einfache Anführungszeichen
  • doppelte Anführungszeichen
  • Heredoc Syntax
  • Nowdoc Syntax (seit PHP 5.3.0)

Einfache Anführungszeichen

Der einfachste Weg einen String zu spezifizieren, ist ihn mit einfachen Anführungszeichen (das Zeichen ') zu umschließen.

Um ein einfaches Anführungszeichen hierin anzugeben, fügen sie einen Backslash (\) vor dem Zeichen ein. To specify a literal backslash, double it (\\). All other instances of backslash will be treated as a literal backslash: this means that the other escape sequences you might be used to, such as \r or \n, will be output literally as specified rather than having any special meaning.

Hinweis: Im Gegensatz zu den doppelten Anführungszeichen- und Heredoc-Notationen werden Variablen und Escape-Sequenzen für Sonderzeichen nicht maskiert (ersetzt) wenn sie in einem mit einfachen Anführungszeichen umschlossenen String erscheinen.

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

echo 'Sie können auch Zeilenumbrüche
in dieser Art angeben,
dies ist okay so';

// Gibt aus: Arnold sagte einst: "I'll be back"
echo 'Arnold sagte einst: "I\'ll be back"';

// Ausgabe: Sie löschten C:\*.*?
echo 'Sie löschten C:\\*.*?';

// Ausgabe: Sie löschten C:\*.*?
echo 'Sie löschten C:\*.*?';

// Ausgabe: Dies erzeugt keinen: \n Zeilenumbruch
echo 'Dies erzeugt keinen: \n Zeilenumbruch';

// Ausgabe: Variablen werden $ebenfalls $nicht ersetzt
echo 'Variablen werden $ebenfalls $nicht ersetzt';
?>

Doppelte Anführungszeichen

Wenn der String in doppelte Anführungszeichen (") eingeschlossen wird, interpretiert PHP zusätzliche Escape-Sequenzen für Sonderzeichen:

Maskierte Zeichen
Sequenz | Bedeutung
\n | Zeilenumbruch (LF or 0x0A (10) in ASCII)
\r | Wagenrücklauf (CR or 0x0D (13) in ASCII)
\t | horizontaler Tabulator (HT or 0x09 (9) in ASCII)
\v | vertikaler Tabulator (VT or 0x0B (11) in ASCII) (seit PHP 5.2.5)
\e | Escape-Zeichen (ESC or 0x1B (27) in ASCII) (seit PHP 5.4.4)
\f | Seitenvorschub (FF or 0x0C (12) in ASCII) (seit PHP 5.2.5)
\\ | Backslash (Rückstrich)
\$ | Dollar-Zeichen
\" | doppeltes Anführungszeichen
\[0-7]{1,3} | the sequence of characters matching the regular expression is a character in octal notation, which silently overflows to fit in a byte (e.g. "\400" === "\000")
\x[0-9A-Fa-f]{1,2} | the sequence of characters matching the regular expression is a character in hexadecimal notation
\u{[0-9A-Fa-f]+} | the sequence of characters matching the regular expression is a Unicode codepoint, which will be output to the string as that codepoint's UTF-8 representation (added in PHP 7.0.0)

Wie bei Strings in einfachen Anführungszeichen wird beim maskieren aller anderen Zeichen der Backslash mit ausgegeben. Vor PHP 5.1.1 wurde der Rückstrich vor \{$var} nicht ausgegeben.

Das Expandieren von Variablen-Namen ist eine der wichtigsten Besonderheiten von in doppelten Anführungszeichen angegebenen Strings. Siehe hierzu String-Parsing für weitere Details.

Heredoc

Eine dritte Möglichkeit Strings zu begrenzen, stellt die Heredoc-Syntax dar: <<<. Nach diesem Operator wird ein beliebiger Bezeichner angegeben, dann eine neue Zeile. Hiernach folgt der eigentliche String und abschließend erneut der Bezeichner um die Auszeichnung abzuschließen.

Der schließende Bezeichner muss in der ersten Spalte der Zeile beginnen. Zudem muss dieser sich an die selben Namensregeln wie jede andere Kennung in PHP halten: es darf nur alphanumerische Zeichen und den Unterstrich enthalten und muss mit einem Buchstaben oder dem Unterstrich beginnen.

Warnung

Es ist sehr wichtig, dass die Zeile mit dem schließenden Bezeichner keine anderen Zeichen, außer möglicherweise einem Semikolon (;), enthält. Das heißt insbesondere auch, dass der Bezeichner nicht eingerückt wird und auch keine Leerzeichen oder Tabulatoren vor oder nach dem Semikolon bestehen. Zudem muss das erste Zeichen vor dem schließenden Bezeichner eine neue Zeile sein, so wie sie vom Betriebssystem definiert wird. In UNIX Systemen, auch macOS, ist dies \n. Auf den schließenden Bezeichner (möglicherweise gefolgt von einem Semikolon) muss zudem ebenfalls eine neue Zeile folgen.

Wenn diese Regel gebrochen wird und der schließende Bezeichner nicht valide ist, wird er nicht als Bezeichner angenommen und PHP wird weiter nach einem solchen schließenden Bezeichner suchen. Wird kein gültiger schließender Bezeichner vor dem Dateiende gefunden, gibt PHP einen, auf die letzte Zeile der Datei zeigenden, Parser-Fehler aus.

Beispiel #1 Ungültiges Beispiel

<?php
class foo {
    public $bar = <<<EOT
bar
    EOT;
}
// Identifier must not be indented
?>

Beispiel #2 Gültiges Beispiel

<?php
class foo {
    public $bar = <<<EOT
bar
EOT;
}
?>

Heredocs können nicht für die Initialisierung von Klasseneigenschaften verwendet werden. Seit PHP 5.3 gilt diese Beschränkung nur noch für Heredocs, die Variablen enthalten.

Heredoc text behaves just like a double-quoted string, without the double quotes. This means that quotes in a heredoc do not need to be escaped, but the escape codes listed above can still be used. Variables are expanded, but the same care must be taken when expressing complex variables inside a heredoc as with strings.

Beispiel #3 Heredoc string quoting example

<?php
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

/* More complex example, with variables. */
class foo
{
    var $foo;
    var $bar;

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

$foo = new foo();
$name = 'MyName';

echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

My name is "MyName". I am printing some Foo.
Now I am printing some Bar2.
This should print a capital 'A': \x41

It is also possible to use the Heredoc syntax to pass data to function arguments:

Beispiel #4 Heredoc in arguments example

<?php
var_dump(array(<<<EOD
foobar!
EOD
));
?>

As of PHP 5.3.0, it's possible to initialize static variables and class properties/constants using the Heredoc syntax:

Beispiel #5 Using Heredoc to initialize static values

<?php
// Static variables
function foo()
{
    static $bar = <<<LABEL
Nothing in here...
LABEL;
}

// Class properties/constants
class foo
{
    const BAR = <<<FOOBAR
Constant example
FOOBAR;

    public $baz = <<<FOOBAR
Property example
FOOBAR;
}
?>

Starting with PHP 5.3.0, the opening Heredoc identifier may optionally be enclosed in double quotes:

Beispiel #6 Using double quotes in Heredoc

<?php
echo <<<"FOOBAR"
Hello World!
FOOBAR;
?>

Nowdoc

Nowdocs are to single-quoted strings what heredocs are to double-quoted strings. A nowdoc is specified similarly to a heredoc, but no parsing is done inside a nowdoc. The construct is ideal for embedding PHP code or other large blocks of text without the need for escaping. It shares some features in common with the SGML &lt;![CDATA[ ]]&gt; construct, in that it declares a block of text which is not for parsing.

A nowdoc is identified with the same <<< seqeuence used for heredocs, but the identifier which follows is enclosed in single quotes, e.g. <<<'EOT'. All the rules for heredoc identifiers also apply to nowdoc identifiers, especially those regarding the appearance of the closing identifier.

Beispiel #7 Nowdoc string quoting example

<?php
echo <<<'EOD'
Example of string spanning multiple lines
using nowdoc syntax. Backslashes are always treated literally,
e.g. \\ and \'.
EOD;

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Example of string spanning multiple lines
using nowdoc syntax. Backslashes are always treated literally,
e.g. \\ and \'.

Beispiel #8 Nowdoc string quoting example with variables

<?php
class foo
{
    var $foo;
    var $bar;

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

$foo = new foo();
$name = 'MyName';

echo <<<'EOT'
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': \x41
EOT;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': \x41

Beispiel #9 Static data example

<?php
class foo {
    public $bar = <<<'EOT'
bar
EOT;
}
?>

Hinweis:

Nowdoc support was added in PHP 5.3.0.

Variable parsing

When a string is specified in double quotes or with heredoc, variables are parsed within it.

There are two types of syntax: a simple one and a complex one. The simple syntax is the most common and convenient. It provides a way to embed a variable, an array value, or an object property in a string with a minimum of effort.

The complex syntax can be recognised by the curly braces surrounding the expression.

Simple syntax

If a dollar sign ($) is encountered, the parser will greedily take as many tokens as possible to form a valid variable name. Enclose the variable name in curly braces to explicitly specify the end of the name.

<?php
$juice = "apple";

echo "He drank some $juice juice.".PHP_EOL;
// Invalid. "s" is a valid character for a variable name, but the variable is $juice.
echo "He drank some juice made of $juices.";
// Valid. Explicitly specify the end of the variable name by enclosing it in braces:
echo "He drank some juice made of ${juice}s.";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

He drank some apple juice.
He drank some juice made of .
He drank some juice made of apples.

Similarly, an array index or an object property can be parsed. With array indices, the closing square bracket (]) marks the end of the index. The same rules apply to object properties as to simple variables.

Beispiel #10 Simple syntax example

<?php
$juices = array("apple", "orange", "koolaid1" => "purple");

echo "He drank some $juices[0] juice.".PHP_EOL;
echo "He drank some $juices[1] juice.".PHP_EOL;
echo "He drank some $juices[koolaid1] juice.".PHP_EOL;

class people {
    public $john = "John Smith";
    public $jane = "Jane Smith";
    public $robert = "Robert Paulsen";

    public $smith = "Smith";
}

$people = new people();

echo "$people->john drank some $juices[0] juice.".PHP_EOL;
echo "$people->john then said hello to $people->jane.".PHP_EOL;
echo "$people->john's wife greeted $people->robert.".PHP_EOL;
echo "$people->robert greeted the two $people->smiths."; // Won't work
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

He drank some apple juice.
He drank some orange juice.
He drank some purple juice.
John Smith drank some apple juice.
John Smith then said hello to Jane Smith.
John Smith's wife greeted Robert Paulsen.
Robert Paulsen greeted the two .

As of PHP 7.1.0 also negative numeric indices are supported.

Beispiel #11 Negative numeric indices

<?php
$string = 'string';
echo "The character at index -2 is $string[-2].", PHP_EOL;
$string[-3] = 'o';
echo "Changing the character at index -3 to o gives $string.", PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The character at index -2 is n.
Changing the character at index -3 to o gives strong.

For anything more complex, you should use the complex syntax.

Complex (curly) syntax

This isn't called complex because the syntax is complex, but because it allows for the use of complex expressions.

Any scalar variable, array element or object property with a string representation can be included via this syntax. Simply write the expression the same way as it would appear outside the string, and then wrap it in { and }. Since { can not be escaped, this syntax will only be recognised when the $ immediately follows the {. Use {\$ to get a literal {$. Some examples to make it clear:

<?php
// Show all errors
error_reporting(E_ALL);

$great = 'fantastic';

// Won't work, outputs: This is { fantastic}
echo "This is { $great}";

// Works, outputs: This is fantastic
echo "This is {$great}";

// Works
echo "This square is {$square->width}00 centimeters broad.";

// Works, quoted keys only work using the curly brace syntax
echo "This works: {$arr['key']}";

// Works
echo "This works: {$arr[4][3]}";

// This is wrong for the same reason as $foo[bar] is wrong  outside a string.
// In other words, it will still work, but only because PHP first looks for a
// constant named foo; an error of level E_NOTICE (undefined constant) will be
// thrown.
echo "This is wrong: {$arr[foo][3]}";

// Works. When using multi-dimensional arrays, always use braces around arrays
// when inside of strings
echo "This works: {$arr['foo'][3]}";

// Works.
echo "This works: " . $arr['foo'][3];

echo "This works too: {$obj->values[3]->name}";

echo "This is the value of the var named $name: {${$name}}";

echo "This is the value of the var named by the return value of getName(): {${getName()}}";

echo "This is the value of the var named by the return value of \$object->getName(): {${$object->getName()}}";

// Won't work, outputs: This is the return value of getName(): {getName()}
echo "This is the return value of getName(): {getName()}";
?>

It is also possible to access class properties using variables within strings using this syntax.

<?php
class foo {
    var $bar = 'I am bar.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo "{$foo->$bar}\n";
echo "{$foo->{$baz[1]}}\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

I am bar.
I am bar.

Hinweis:

Functions, method calls, static class variables, and class constants inside {$} work since PHP 5. However, the value accessed will be interpreted as the name of a variable in the scope in which the string is defined. Using single curly braces ({}) will not work for accessing the return values of functions or methods or the values of class constants or static class variables.

<?php
// Show all errors.
error_reporting(E_ALL);

class beers {
    const softdrink = 'rootbeer';
    public static $ale = 'ipa';
}

$rootbeer = 'A & W';
$ipa = 'Alexander Keith\'s';

// This works; outputs: I'd like an A & W
echo "I'd like an {${beers::softdrink}}\n";

// This works too; outputs: I'd like an Alexander Keith's
echo "I'd like an {${beers::$ale}}\n";
?>

String access and modification by character

Characters within strings may be accessed and modified by specifying the zero-based offset of the desired character after the string using square array brackets, as in $str[42]. Think of a string as an array of characters for this purpose. The functions substr() and substr_replace() can be used when you want to extract or replace more than 1 character.

Hinweis: As of PHP 7.1.0, negative string offsets are also supported. These specify the offset from the end of the string. Formerly, negative offsets emitted E_NOTICE for reading (yielding an empty string) and E_WARNING for writing (leaving the string untouched).

Hinweis: Strings may also be accessed using braces, as in $str{42}, for the same purpose.

Warnung

Writing to an out of range offset pads the string with spaces. Non-integer types are converted to integer. Illegal offset type emits E_WARNING. Only the first character of an assigned string is used. As of PHP 7.1.0, assigning an empty string throws a fatal error. Formerly, it assigned a NULL byte.

Warnung

Internally, PHP strings are byte arrays. As a result, accessing or modifying a string using array brackets is not multi-byte safe, and should only be done with strings that are in a single-byte encoding such as ISO-8859-1.

Hinweis: As of PHP 7.1.0, applying the empty index operator on an empty string throws a fatal error. Formerly, the empty string was silently converted to an array.

Beispiel #12 Some string examples

<?php
// Get the first character of a string
$str = 'This is a test.';
$first = $str[0];

// Get the third character of a string
$third = $str[2];

// Get the last character of a string.
$str = 'This is still a test.';
$last = $str[strlen($str)-1];

// Modify the last character of a string
$str = 'Look at the sea';
$str[strlen($str)-1] = 'e';

?>

As of PHP 5.4 string offsets have to either be integers or integer-like strings, otherwise a warning will be thrown. Previously an offset like "foo" was silently cast to 0.

Beispiel #13 Differences between PHP 5.3 and PHP 5.4

<?php
$str = 'abc';

var_dump($str['1']);
var_dump(isset($str['1']));

var_dump($str['1.0']);
var_dump(isset($str['1.0']));

var_dump($str['x']);
var_dump(isset($str['x']));

var_dump($str['1x']);
var_dump(isset($str['1x']));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.3:

string(1) "b"
bool(true)
string(1) "b"
bool(true)
string(1) "a"
bool(true)
string(1) "b"
bool(true)

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.4:

string(1) "b"
bool(true)

Warning: Illegal string offset '1.0' in /tmp/t.php on line 7
string(1) "b"
bool(false)

Warning: Illegal string offset 'x' in /tmp/t.php on line 9
string(1) "a"
bool(false)
string(1) "b"
bool(false)

Hinweis:

Accessing variables of other types (not including arrays or objects implementing the appropriate interfaces) using [] or {} silently returns null.

Hinweis:

PHP 5.5 added support for accessing characters within string literals using [] or {}.

Useful functions and operators

Strings may be concatenated using the '.' (dot) operator. Note that the '+' (addition) operator will not work for this. See String operators for more information.

There are a number of useful functions for string manipulation.

See the string functions section for general functions, and the Perl-compatible regular expression functions for advanced find & replace functionality.

There are also functions for URL strings, and functions to encrypt/decrypt strings (Sodium and Hash).

Finally, see also the character type functions.

Converting to string

A value can be converted to a string using the (string) cast or the strval() function. String conversion is automatically done in the scope of an expression where a string is needed. This happens when using the echo or print functions, or when a variable is compared to a string. The sections on Types and Type Juggling will make the following clearer. See also the settype() function.

A boolean true value is converted to the string "1". Boolean false is converted to "" (the empty string). This allows conversion back and forth between boolean and string values.

An integer or float is converted to a string representing the number textually (including the exponent part for floats). Floating point numbers can be converted using exponential notation (4.1E+6).

Hinweis:

The decimal point character is defined in the script's locale (category LC_NUMERIC). See the setlocale() function.

Arrays are always converted to the string "Array"; because of this, echo and print can not by themselves show the contents of an array. To view a single element, use a construction such as echo $arr['foo']. See below for tips on viewing the entire contents.

In order to convert objects to string magic method __toString must be used.

Resources are always converted to strings with the structure "Resource id #1", where 1 is the resource number assigned to the resource by PHP at runtime. While the exact structure of this string should not be relied on and is subject to change, it will always be unique for a given resource within the lifetime of a script being executed (ie a Web request or CLI process) and won't be reused. To get a resource's type, use the get_resource_type() function.

null is always converted to an empty string.

As stated above, directly converting an array, object, or resource to a string does not provide any useful information about the value beyond its type. See the functions print_r() and var_dump() for more effective means of inspecting the contents of these types.

Most PHP values can also be converted to strings for permanent storage. This method is called serialization, and is performed by the serialize() function.

String conversion to numbers

When a string is evaluated in a numeric context, the resulting value and type are determined as follows.

If the string does not contain any of the characters '.', 'e', or 'E' and the numeric value fits into integer type limits (as defined by PHP_INT_MAX), the string will be evaluated as an integer. In all other cases it will be evaluated as a float.

The value is given by the initial portion of the string. If the string starts with valid numeric data, this will be the value used. Otherwise, the value will be 0 (zero). Valid numeric data is an optional sign, followed by one or more digits (optionally containing a decimal point), followed by an optional exponent. The exponent is an 'e' or 'E' followed by one or more digits.

<?php
$foo = 1 + "10.5";                // $foo is float (11.5)
$foo = 1 + "-1.3e3";              // $foo is float (-1299)
$foo = 1 + "bob-1.3e3";           // $foo is integer (1)
$foo = 1 + "bob3";                // $foo is integer (1)
$foo = 1 + "10 Small Pigs";       // $foo is integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
$foo = "10.0 pigs " + 1;          // $foo is float (11)
$foo = "10.0 pigs " + 1.0;        // $foo is float (11)
?>

For more information on this conversion, see the Unix manual page for strtod(3).

To test any of the examples in this section, cut and paste the examples and insert the following line to see what's going on:

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

Do not expect to get the code of one character by converting it to integer, as is done in C. Use the ord() and chr() functions to convert between ASCII codes and characters.

Details des String-Typs

The string in PHP is implemented as an array of bytes and an integer indicating the length of the buffer. It has no information about how those bytes translate to characters, leaving that task to the programmer. There are no limitations on the values the string can be composed of; in particular, bytes with value 0 (“NUL bytes”) are allowed anywhere in the string (however, a few functions, said in this manual not to be “binary safe”, may hand off the strings to libraries that ignore data after a NUL byte.)

This nature of the string type explains why there is no separate “byte” type in PHP – strings take this role. Functions that return no textual data – for instance, arbitrary data read from a network socket – will still return strings.

Given that PHP does not dictate a specific encoding for strings, one might wonder how string literals are encoded. For instance, is the string "á" equivalent to "\xE1" (ISO-8859-1), "\xC3\xA1" (UTF-8, C form), "\x61\xCC\x81" (UTF-8, D form) or any other possible representation? The answer is that string will be encoded in whatever fashion it is encoded in the script file. Thus, if the script is written in ISO-8859-1, the string will be encoded in ISO-8859-1 and so on. However, this does not apply if Zend Multibyte is enabled; in that case, the script may be written in an arbitrary encoding (which is explicity declared or is detected) and then converted to a certain internal encoding, which is then the encoding that will be used for the string literals. Note that there are some constraints on the encoding of the script (or on the internal encoding, should Zend Multibyte be enabled) – this almost always means that this encoding should be a compatible superset of ASCII, such as UTF-8 or ISO-8859-1. Note, however, that state-dependent encodings where the same byte values can be used in initial and non-initial shift states may be problematic.

Of course, in order to be useful, functions that operate on text may have to make some assumptions about how the string is encoded. Unfortunately, there is much variation on this matter throughout PHP’s functions:

  • Some functions assume that the string is encoded in some (any) single-byte encoding, but they do not need to interpret those bytes as specific characters. This is case of, for instance, substr(), strpos(), strlen() or strcmp(). Another way to think of these functions is that operate on memory buffers, i.e., they work with bytes and byte offsets.
  • Other functions are passed the encoding of the string, possibly they also assume a default if no such information is given. This is the case of htmlentities() and the majority of the functions in the mbstring extension.
  • Others use the current locale (see setlocale()), but operate byte-by-byte. This is the case of strcasecmp(), strtoupper() and ucfirst(). This means they can be used only with single-byte encodings, as long as the encoding is matched by the locale. For instance strtoupper("á") may return "Á" if the locale is correctly set and á is encoded with a single byte. If it is encoded in UTF-8, the correct result will not be returned and the resulting string may or may not be returned corrupted, depending on the current locale.
  • Finally, they may just assume the string is using a specific encoding, usually UTF-8. This is the case of most functions in the intl extension and in the PCRE extension (in the last case, only when the u modifier is used). Although this is due to their special purpose, the function utf8_decode() assumes a UTF-8 encoding and the function utf8_encode() assumes an ISO-8859-1 encoding.

Ultimately, this means writing correct programs using Unicode depends on carefully avoiding functions that will not work and that most likely will corrupt the data and using instead the functions that do behave correctly, generally from the intl and mbstring extensions. However, using functions that can handle Unicode encodings is just the beginning. No matter the functions the language provides, it is essential to know the Unicode specification. For instance, a program that assumes there is only uppercase and lowercase is making a wrong assumption.


Numeric strings

A PHP string is considered numeric if it can be interpreted as an int or a float.

Formally as of PHP 8.0.0:

WHITESPACES      \s*
LNUM             [0-9]+
DNUM             ([0-9]*)[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})

PHP also has a concept of leading numeric strings. This is simply a string which starts like a numeric string followed by any characters.

Strings used in numeric contexts

When a string needs to be evaluated as number (e.g. arithmetic operations, int type declaration, etc.) the following steps are taken to determine the outcome:

  1. If the string is numeric, resolve to an int if the string is an integer numeric string and fits into the limits of the int type limits (as defined by PHP_INT_MAX), otherwise resolve to a float.
  2. If the context allows leading numeric strings and the string is one, resolve to an int if the leading part of the string is an integer numeric string and fits into the limits of the int type limits (as defined by PHP_INT_MAX), otherwise resolve to a float. Additionally an error of level E_WARNING is raised.
  3. The string is not numeric, throw a TypeError.

Behavior prior to PHP 8.0.0

Prior to PHP 8.0.0, a string was considered numeric only if it had leading whitespaces, if it had trailing whitespaces then the string was considered to be leading numeric.

Prior to PHP 8.0.0, when a string was used in a numeric context it would perform the same steps as above with the following differences:

  • The usage of a leading numeric string would raise an E_NOTICE instead of an E_WARNING.
  • If the string is not numeric, an E_WARNING was raised and the value 0 would be returned.

<?php
$foo = 1 + "10.5";                // $foo is float (11.5)
$foo = 1 + "-1.3e3";              // $foo is float (-1299)
$foo = 1 + "bob-1.3e3";           // TypeError as of PHP 8.0.0, $foo is integer (1) previously
$foo = 1 + "bob3";                // TypeError as of PHP 8.0.0, $foo is integer (1) previously
$foo = 1 + "10 Small Pigs";       // $foo is integer (11) and an E_WARNING is raised in PHP 8.0.0, E_NOTICE previously
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2) and an E_WARNING is raised in PHP 8.0.0, E_NOTICE previously
$foo = "10.0 pigs " + 1;          // $foo is float (11) and an E_WARNING is raised in PHP 8.0.0, E_NOTICE previously
$foo = "10.0 pigs " + 1.0;        // $foo is float (11) and an E_WARNING is raised in PHP 8.0.0, E_NOTICE previously
?>


Arrays

Ein Array in PHP ist tatsächlich eine geordnete Map. Eine Map ist ein Typ, der Werte zu Schlüsseln zuordnet. Dieser Typ ist für einige verschiedene Nutzungsarten optimiert. Er kann als ein Array verwendet werden, als Liste (Vektor), Hash Table (eine Implementierung einer Map), Dictionary, Collection, Stack, Queue und wahrscheinlich noch als vieles anderes. Da ein Wert eines Arrays ein weiteres Array sein kann, sind auch Bäume und mehrdimensionale Arrays möglich.

Die Erläuterung dieser Datenstrukturen liegt nicht im Rahmen dieses Handbuches, aber wenigstens ein Beispiel für jede ist hier angegeben. Um weitere Informationen zu erhalten wird auf die immense Literatur zu diesem weiten Feld verwiesen.

Syntax

Spezifizierung mittels array()

Ein Array kann durch das Sprachkonstrukt array() erzeugt werden. Dies nimmt eine beliebige Anzahl kommaseparierter Schlüssel => Wert- Paare als Parameter entgegen.

array(
    Schlüssel  => Wert,
    Schlüssel2 => Wert2,
    Schlüssel3 => Wert3,
    ...
)

Das Komma nach dem letzten Array-Element ist optional und kann weggelassen werden. Dies wird üblicherweise in einzeiligen Arrays getan, d.h. array(1, 2) wird der Schreibweise array(1, 2, ) vorgezogen. Andererseits wird bei mehrzeiligen Arrays das Komma am Ende üblicherweise genutzt, da dies ein einfaches Hinzufügen weiterer Elemente am Ende erlaubt.

Seit PHP 5.4 kann auch eine kurze Array-Syntax verwendet werden, welche array() durch [] ersetzt.

Beispiel #1 Ein einfaches Array

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

// seit PHP 5.4
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

Der Schlüssel kann entweder ein Integer oder ein String sein. Der Wert kann beliebige Datentypen annehmen.

Zusätzlich werden die folgenden Typkonvertierungen auf den Schlüssel angewendet:

  • Strings, die einen gültigen dezimalen Integer enthalten, es sei denn der Zahl sei ein +-Zeichen vorangestellt, werden zum entsprechenden Integer umgewandelt. Beispielsweise wird der Schlüssel "8" tatsächlich unter 8 gespeichert. Andererseits wird "08" nicht umgewandelt, da dies kein gültiger Ganzzahlwert ist.
  • Floats werden ebenfalls zu Integer umgewandelt, was ein Abschneiden des Dezimalbruches zur Folge hat. Beispielsweise wird der Schlüssel 8.7 als 8 gespeichert.
  • Bools werden ebenfalls zu Integer umgewandelt, d.h. der Schlüssel true wird unter 1 gespeichert und der Schlüssel false unter 0.
  • Null wird zu einem leeren String umgewandelt, d.h. der Schlüssel null wird tatsächlich unter "" gespeichert.
  • Werte vom typ Array oder Object können nicht als Schlüssel verwendet werden. Ein Versuch dies zu tun wird die Warnung Illegal offset type zur Folge haben.

Wenn mehrere Elemente in einer Array-Deklaration den gleichen Schlüssel verwenden, dann wird nur der letzte verwendet und alle weiteren überschrieben.

Beispiel #2 Beispiel für Typenumwandlung und Überschreibung

<?php
$array = array(
    1    => "a",
    "1"  => "b",
    1.5  => "c",
    true => "d",
);
var_dump($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  [1]=>
  string(1) "d"
}

Da alle Schlüssel im obigen Beispiel zu 1 umgewandelt werden, wird der Wert dieses Elements durch jeden angegebenen Wert überschrieben und nur der letzte zugewiesene Wert "d" bleibt übrig.

Arrays können in PHP gleichzeitig Schlüssel der Typen Integer und String enthalten, da PHP nicht zwischen indizierten und assoziativen Arrays unterscheidet.

Beispiel #3 Gemischte Integer und String Schlüssel

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
    100   => -100,
    -100  => 100,
);
var_dump($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  ["foo"]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "foo"
  [100]=>
  int(-100)
  [-100]=>
  int(100)
}

Die Angabe des Schlüssel ist optional.Ist keiner angegeben, so wird PHP den bisher größten angegebenen Integer Schlüssel erhöhen und das Ergebnis als Schlüssel verwenden.

Beispiel #4 Indizierte Arrays ohne Schlüssel

<?php
$array = array("foo", "bar", "hello", "world");
var_dump($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(5) "hello"
  [3]=>
  string(5) "world"
}

Es ist auch möglich den Schlüssel nur bei einigen Elementen anzugeben und bei anderen auszulassen:

Beispiel #5 Schlüssel nicht bei allen Elementen

<?php
$array = array(
         "a",
         "b",
    6 => "c",
         "d",
);
var_dump($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [6]=>
  string(1) "c"
  [7]=>
  string(1) "d"
}

Wie Sie sehen können, wurde dem letzten Wert "d" der Schlüssel 7 zugewiesen. Dies erfolgte, da der größte vorherige ganzzahlige Schlüssel 6 war.

Zugriff auf Elemente mit eckigen Klammern

Auf Elemente eines Arrays kann durch Verwendung der Syntax array[Schlüssel] zugegriffen werden.

Beispiel #6 Zugriff auf Array-Elemente

<?php
$array = array(
    "foo" => "bar",
    42    => 24,
    "multi" => array(
         "dimensional" => array(
             "array" => "foo"
         )
    )
);

var_dump($array["foo"]);
var_dump($array[42]);
var_dump($array["multi"]["dimensional"]["array"]);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "bar"
int(24)
string(3) "foo"

Hinweis:

Sowohl eckige als auch geschweifte Klammern können verwendet werden, um auf die Elemente eines Arrays zuzugreifen (z.B. werden im obigen Beispiel $array[42] und array{42} auf das gleiche Element zugreifen).

Seit PHP 5.4 ist es möglich ein Array aus dem Rückgabewert eines Funktion- oder Methodenaufrufs direkt zu dereferenzieren. Vorher war dies nur über temporäre Variablen möglich.

Seit PHP 5.5 ist es möglich ein Array-Literal zu dereferenzieren.

Beispiel #7 Array-Dereferenzierung

<?php
function getArray() {
    return array(1, 2, 3);
}

// seit PHP 5.4
$secondElement = getArray()[1];

// vorher
$tmp = getArray();
$secondElement = $tmp[1];

// oder
list(, $secondElement) = getArray();
?>

Hinweis:

Der Versuch auf einen nicht definierten Arrayschlüssel zuzugreifen ist gleichwertig zum Zugriff auf jede andere undefinierte Variable: ein Fehler der Stufe E_NOTICE wird ausgegeben und das Ergebnis ist null.

Hinweis:

Array-Dereferenzierung eines skalaren Werts, der kein String ist, ergibt null ohne dass eine Fehlermeldung erzeugt wird.

Anlegen/Ändern mit eckigen Klammern

Ein bestehendes Array kann verändert werden, indem man explizit Werte darin setzt.

Dies wird getan, indem man Werte dem Array zuweist, und dabei den Schlüssel in eckigen Klammern angibt. Der Schlüssel kann dabei weggelassen werden, woraus ein leeres Klammernpaar resultiert ([]).

$arr[Schlüssel] = Wert;
$arr[] = Wert;
// Schlüssel kann ein Integer oder String sein
// Wert kann einen beliebigen Typen haben

Falls $arr noch nicht existiert, wird es erzeugt; dies ist also eine alternative Methode, um ein Array zu erzeugen. Dieses Vorgehen wird jedoch nicht empfohlen, da falls $arr bereits einen Wert enthält (z.B. ein String aus einer Requestvariablen), bleibt dieser Wert bestehen und [] kann tatsächlich für den String-Zugriffs-Operator stehen. Es ist immer besser eine Variable durch direkte Zuweisung zu initialisieren.

Hinweis: Seit PHP 7.1.0 wirft die Anwendung des leeren Index-Operators auf eine Zeichenkette einen fatalen Fehler. Zuvor wurde die Zeichenkette stillschweigend in ein Array umgewandelt.

Um einen bestimmten Wert zu ändern, kann man einen Wert zum Element anhand dessen Schlüssel zuweisen. Um ein Schlüssel-Wert-Paar zu entfernen, kann man die Funktion unset() darauf anwenden.

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;    // Dies ist das selbe wie $arr[13] = 56;
                // an dieser Stelle im Programmablauf

$arr["x"] = 42; // Dies fügt ein neues Element zum Array
                // mit dem Schlüssel "x" hinzu

unset($arr[5]); // Dies entfernt das Element aus dem
                // Array

unset($arr);    // Dies löscht das gesamte Array
?>

Hinweis:

Wie vorher bereits erwähnt wird das Maximum der bestehenden Schlüssel vom Typ Integer verwendet, wenn kein Schlüssel angegeben ist, und der neue Schlüssel wird das Maximum plus 1 sein (aber mindestens 0). Wenn noch kein Integer-Schlüssel existiert wird der schlüssel 0 (Null) verwendet.

Beachten Sie, dass der Maximalwert der Integer-Schlüssel dafür aktuell nicht im Array existieren muss. Er muss nur zu einem vorherigen Zeitpunkt im Array existiert haben seitdem das Array zuletzt neu indiziert wurde. Das folgende Beispiel erläutert dies:

<?php
// Create a simple array.
$array = array(1, 2, 3, 4, 5);
print_r($array);

// Nun wird jeder Wert gelöscht, aber das Array selbst bleibt bestehen
foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);

// Ein Element wird hinzugefügt
// (Beachten Sie, dass der neue Schlüssel 5 ist statt 0)
$array[] = 6;
print_r($array);

// Neue Indizierung
$array = array_values($array);
$array[] = 7;
print_r($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
)
Array
(
    [5] => 6
)
Array
(
    [0] => 6
    [1] => 7
)

Nützliche Funktionen

Es gibt einige nützliche Funktionen für die Arbeit mit Arrays, die im Abschnitt Array-Funktionen nachgeschlagen werden können.

Hinweis:

Die Funktion unset() erlaubt es, Schlüssel aus einem Array zu entfernen. Beachten Sie dabei, dass das Array nicht neu indiziert wird. Falls ein echtes Verhalten von "Entfernen und Verschieben" gewünscht ist, dann kann das Array mittels array_values() neu indiziert werden.

<?php
$a = array(1 => 'one', 2 => 'two', 3 => 'three');
unset($a[2]);
/* dies wird ein Array erzeugen, das wie folgt definiert worden wäre
   $a = array(1 => 'one', 3 => 'three');
   und nicht so
   $a = array(1 => 'one', 2 =>'three');
*/

$b = array_values($a);
// Nun ist $b array(0 => 'one', 1 =>'three')
?>

Die Kontrollstruktur foreach existiert speziell für Arrays. Sie bietet eine einfache Möglichkeit, ein Array zu durchlaufen.

Do's und Dont's für Arrays

Wieso ist $foo[bar] falsch?

Verwenden Sie immer Anführungszeichen um ein Arrayindex-Zeichenkettenliteral. Beispielsweise ist $foo['bar'] richtig, $foo[bar] hingegen nicht. Aber wieso? Es ist üblich die folgende Schreibweise in alten Skripten zu finden:

<?php
$foo[bar] = 'enemy';
echo $foo[bar];
// etc
?>

Dies ist falsch, funktioniert aber. Der Grund dafür ist, dass dieser Code eine undefinierte Konstante (bar) anstatt eines String verwendet ('bar' - beachten Sie die Anführungszeichen). Dies funktioniert, da PHP automatisch einen nackten String (ein String ohne Anführungszeichen welcher nicht einem bekannten Symbol entspricht) in einen String umwandelt, welcher den nackten String enthält. Beispielsweise wird, wenn keine Konstante namens bar definiert ist, PHP diese automatisch durch den String 'bar' ersetzen und verwenden.

Warnung

Das Rückfallverhalten eine nicht definierte Konstante als nackte Zeichenkette zu interpretieren ist von PHP 7.2.0 an missbilligt, und löst einen Fehler der Stufe E_WARNING aus. Zuvor wurde ein Fehler der Stufe E_NOTICE ausgelöst.

Hinweis: Dies bedeutet nicht, dass man den Schlüssel immer in Anführungszeichen schreiben muss. Schreiben Sie keine Schlüssel in Anführungszeichen, welche Konstanten oder Variablen sind, da dies PHP daran hindern wird, diese zu interpretieren.

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
// Simples Array:
$array = array(1, 2);
$count = count($array);
for ($i = 0; $i < $count; $i++) {
    echo "\nPrüfe $i: \n";
    echo "Schlecht: " . $array['$i'] . "\n";
    echo "Gut: " . $array[$i] . "\n";
    echo "Schlecht: {$array['$i']}\n";
    echo "Gut: {$array[$i]}\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Prüfe 0:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Schlecht:
Gut: 1
Notice: Undefined index:  $i in /path/to/script.html on line 11
Schlecht:
Gut: 1

Prüfe 1:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Schlecht:
Gut: 2
Notice: Undefined index:  $i in /path/to/script.html on line 11
Schlecht:
Gut: 2

Weitere Beispiele zur Erläuterung dieses Verhaltens:

<?php
// Alle Fehler anzeigen
error_reporting(E_ALL);

$arr = array('fruit' => 'apple', 'veggie' => 'carrot');

// Korrekt
print $arr['fruit'];  // apple
print $arr['veggie']; // carrot

// Inkorrekt. Dies Funktioniert, aber PHP wirft einen Fehler der Stufe
// E_NOTICE, da eine undefinierte Konstante namens fruit verwendet wird
//
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr[fruit];    // apple

// Dies definiert eine Konstante, um darzustellen was hier passiert. Der Wert
// 'veggie' wird einer Konstanten namens fruit zugewiesen
define('fruit', 'veggie');

// Beachten Sie nun den Unterschied
print $arr['fruit'];  // apple
print $arr[fruit];    // carrot

// Hier ist es in Ordnung, da dies innerhalb eines String ist. Innerhalb eines
// Strings wird nicht nach Konstanten gesucht, weshalb kein E_NOTICE auftritt
print "Hello $arr[fruit]";      // Hello apple

// Mit einer Ausnahme: Klammern um ein Array sorgen dafür, dass Konstanten
// interpretiert werden
print "Hello {$arr[fruit]}";    // Hello carrot
print "Hello {$arr['fruit']}";  // Hello apple

// Dies wird nicht funktionieren und zu einem Parse-Fehler führen:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// Dies gilt natürlich ebenso für superglobale Werte innerhalb von Strings
print "Hello $arr['fruit']";
print "Hello $_GET['foo']";

// Konkatenation ist eine weitere Möglichkeit
print "Hello " . $arr['fruit']; // Hello apple
?>

Wenn error_reporting so eingestellt wird, dass Fehler der Stufe E_NOTICE angezeigt werden (indem man es beispielsweise auf E_ALL stellt), so wird diese Verwendung sofort sichtbar. Standardmäßig zeigt error_reporting keine Hinweise.

Wie im Abschnitt zur Syntax gezeigt, muss der Inhalt der eckigen Klammern '[' und ']') ein Ausdruck sein. Das bedeutet dass folgendes funktioniert:

<?php
echo $arr[somefunc($bar)];
?>

Dieses Beispiel zeigt, wie der Rückgabewert einer Funktion als Arrayindex verwendet wird. PHP kann auch Konstanten auflösen:

<?php
$error_descriptions[E_ERROR]   = "Ein fataler Fehler ist aufgetreten";
$error_descriptions[E_WARNING] = "PHP hat eine Warnung ausgegeben";
$error_descriptions[E_NOTICE]  = "Dies ist nur ein informeller Hinweis";
?>

Beachten Sie, dass E_ERROR ein gültiger Bezeichner ist, genau wie bar im ersten Beispiel. Das vorherige Beispiel ist gleichbedeutend mit:

<?php
$error_descriptions[1] = "Ein fataler Fehler ist aufgetreten";
$error_descriptions[2] = "PHP hat eine Warnung ausgegeben";
$error_descriptions[8] = "Dies ist nur ein informeller Hinweis";
?>

da E_ERROR gleich 1 ist usw.

Wieso ist es also schlecht?

Irgendwann in der Zukunft könnte das PHP-Team eine weitere Konstante oder ein Schlüsselwort hinzufügen oder eine Konstante in anderem Code könnte Einfluss nehmen. Es ist beispielsweise bereits falsch die Wörter empty oder default so zu schreiben, da dies reservierte Schlüsselwörter sind.

Hinweis: Zur Wiederholung: innerhalb eines String in doppelten Anführungszeichen ist es korrekt einen Arrayschlüssel ohne Anführungszeichen zu schreiben wie "$foo[bar]". Die obigen Beispiele erklären dies ebenso wie der Abschnitt zum Parsen von Variablen in Strings.

Konvertierung zu Array

Für jeden der Typen Integer, Float, String, Boolean und Resource führt eine Konvertierung eines Wertes in ein Array zu einem Array mit einem einzigen Wert mit dem Index Null und dem Wert des Skalaren, der konvertiert wurde. Anders ausgedrückt ist (array)$scalarValue exakt identisch mit array($scalarValue).

Wenn ein Object in ein Array konvertiert wird, so ist das Ergebnis ein Array dessen Werte die Eigenschaften des Objects sind. Die Schlüssel sind die Namen der Eigenschaften des Objektes mit einigen Ausnahmen: Eigenschaften mit Ganzzahl-Namen sind nicht zugreifbar, privaten Variablen wird der Name der Klasse vorangestellt und protected Variablen wird dem Variablennamen ein '*' vorangestellt. Diese vorangestellten Werte haben Null-Bytes auf beiden Seiten. Dies kann zu unerwartetem Verhalten führen:

<?php

class A {
    private $A; // Dies wird zu '\0A\0A'
}

class B extends A {
    private $A; // Dies wird zu '\0B\0A'
    public $AA; // Dies wird zu 'AA'
}

var_dump((array) new B());
?>

Im obigen Beispiel scheint es zwei Schlüssel namens 'AA' zu geben, obwohl einer davon eigentlich '\0A\0A' ist.

Die Konvertierung von null in ein Array führt zu einem leeren Array.

Vergleiche

Es ist möglich Arrays mit der Funktion array_diff() und mit Array-Operatoren zu vergleichen.

Beispiele

Der Array-Typ in PHP ist sehr vielseitig. Hier sind einige Beispiele:

<?php
// Dies:
$a = array( 'color' => 'red',
            'taste' => 'sweet',
            'shape' => 'round',
            'name'  => 'apple',
            4        // Schlüssel wird 0 sein
          );

$b = array('a', 'b', 'c');

// . . .ist komplett gleichbedeutend mit:
$a = array();
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name']  = 'apple';
$a[]        = 4;        // Schlüssel wird 0 sein

$b = array();
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';

// Nachdem der obige Code ausgeführt wurde wird $a das Array
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round',
// 'name' => 'apple', 0 => 4) sein und $b wird das Array
// array(0 => 'a', 1 => 'b', 2 => 'c') oder einfach array('a', 'b', 'c')
// sein
?>

Beispiel #8 Verwendung von array()

<?php
// Array als Map von Eigenschaften
$map = array( 'version'    => 4,
              'OS'         => 'Linux',
              'lang'       => 'englisch',
              'short_tags' => true
            );

// Streng numerische Schlüssel
$array = array( 7,
                8,
                0,
                156,
                -10
              );
// das ist gleichbedeutend mit array(0 => 7, 1 => 8, ...)

$switching = array(         10, // Schlüssel = 0
                    5    =>  6,
                    3    =>  7,
                    'a'  =>  4,
                            11, // Schlüssel = 6 (Maximum der Integer-Schlüssel war 5)
                    '8'  =>  2, // Schlüssel = 8 (Integer!)
                    '02' => 77, // Schlüssel = '02'
                    0    => 12  // Der Wert 10 wird mit 12 überschrieben
                  );

// Leeres array
$empty = array();
?>

Beispiel #9 Collection

<?php
$colors = array('rot', 'blau', 'grün', 'gelb');

foreach ($colors as $color) {
    echo "Mögen sie $color?\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Mögen sie rot?
Mögen sie blau?
Mögen sie grün?
Mögen sie gelb?

Die Veränderung der Werte eines Array ist mit der Übergabe als Referenz direkt möglich.

Beispiel #10 Elemente in der Schleife verändern

<?php
foreach ($colors as &$color) {
    $color = strtoupper($color);
}
unset($color); /* Sicherstellen, dass nachfolgende
Zugriffe auf $color nicht das letzte Element ändern */

print_r($colors);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => ROT
    [1] => BLAU
    [2] => GRÜN
    [3] => GELB
)

Dieses Beispiel erzeugt ein Array mit erstem Schlüssel 1.

Beispiel #11 1-basierte Indizes

<?php
$firstquarter  = array(1 => 'Januar', 'Februar', 'März');
print_r($firstquarter);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [1] => 'Januar'
    [2] => 'Februar'
    [3] => 'März'
)

Beispiel #12 Ein Array befüllen

<?php
// Dies füllt ein Array mit allen Einträgen eines Verzeichnisses
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
    $files[] = $file;
}
closedir($handle);
?>

Arrays sind geordnet. Die Reihenfolge kann durch verschiedene Sortierfunktionen verändert werden. Siehe Array-Funktionen für mehr Informationen. Die Funktion count() kann verwendet werden, um die Anzahl der Elemente eines Arrays zu ermitteln.

Beispiel #13 Ein Array sortieren

<?php
sort($files);
print_r($files);
?>

Da die Werte eines Array beliebig sein können, können diese auch andere Arrays sein. Dies ermöglicht die Erzeugung von rekursiven und mehrdimensionalen Arrays.

Beispiel #14 Rekursive und mehrdimensionale Arrays

<?php
$fruits = array ( "fruits"  => array ( "a" => "orange",
                                       "b" => "banana",
                                       "c" => "apple"
                                     ),
                  "numbers" => array ( 1,
                                       2,
                                       3,
                                       4,
                                       5,
                                       6
                                     ),
                  "holes"   => array (      "first",
                                       5 => "second",
                                            "third"
                                     )
                );

// Einige Beispiele um auf Werte in den obigen Beispielen zuzugreifen
echo $fruits["holes"][5];    // gibt "second" aus
echo $fruits["fruits"]["a"]; // gibt "orange" aus
unset($fruits["holes"][0]);  // entfernt "first"

// Ein neues mehrdimensionales Array erzeugen
$juices["apple"]["green"] = "good";
?>

Zuweisung von Arrays involviert immer eine Kopie der Werte. Verwenden Sie den Referenz-Operator um eine Kopie einer Referenz auf ein Array zu erzeugen.

<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 wurde geändert,
             // $arr1 ist weiterhin array(2, 3)

$arr3 = &$arr1;
$arr3[] = 4; // nun sind $arr1 und $arr3 identisch
?>


Iterables

Iterable is a pseudo-type introduced in PHP 7.1. It accepts any Array or object implementing the Traversable interface. Both of these types are iterable using foreach and can be used with yield from within a generator.

Using Iterables

Iterable can be used as a parameter type to indicate that a function requires a set of values, but does not care about the form of the value set since it will be used with foreach. If a value is not an array or instance of Traversable, a TypeError will be thrown.

Beispiel #1 Iterable parameter type example

<?php

function foo(iterable $iterable) {
    foreach ($iterable as $value) {
        // ...
    }
}

?>

Parameters declared as iterable may use null or an array as a default value.

Beispiel #2 Iterable parameter default value example

<?php

function foo(iterable $iterable = []) {
    // ...
}

?>

Iterable can also be used as a return type to indicate a function will return an iterable value. If the returned value is not an array or instance of Traversable, a TypeError will be thrown.

Beispiel #3 Iterable return type example

<?php

function bar(): iterable {
    return [1, 2, 3];
}

?>

Functions declaring iterable as a return type may also be generators.

Beispiel #4 Iterable generator return type example

<?php

function gen(): iterable {
    yield 1;
    yield 2;
    yield 3;
}

?>

Iterable Type Variance

Classes extending/implementing may broaden methods using Array or Traversable as parameter types to iterable or narrow return types from iterable to Array or Traversable.

Beispiel #5 Iterable type variance example

<?php

interface Example {
    public function method(array $array): iterable;
}

class ExampleImplementation implements Example {
    public function method(iterable $iterable): array {
        // Parameter broadened and return type narrowed.
    }
}

?>


Objekte

Objekt Initialisierung

Um ein neues Objekt (object) zu erstellen, ist die new-Anweisung zu verwenden, um eine Klasse zu instanziieren:

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

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

Für die vollständige Erörterung ist dem Kapitel Klassen und Objekte zu entnehmen.

Konvertierung zu Objekt

Wenn ein object zu einem object konvertiert wird, wird es nicht verändert. Wenn ein Wert irgendeines anderen Typs zu einem object konvertiert wird, dann wird ein neues Exemplar der eingebauten stdClass Klasse erstellt. Wenn der Wert null war, wird das neue Exemplar leer sein. Arrays konvertieren zu object mit nach Schlüsseln benannten Eigenschaften und korrespondierenden Werten. Es ist zu beachten, dass in diesem Fall vor PHP 7.2.0 auf numerische Schlüssel außer beim Iterieren nicht zugegriffen werden konnte.

<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // Ausgabe 'bool(true)' von PHP 7.2.0 an; 'bool(false)' zuvor
var_dump(key($obj)); // Ausgabe 'string(1) "1"' von PHP 7.2.0 an;  'int(1)' zuvor
?>

Für alle anderen Werte enthält eine Member-Variable namens scalar den Wert.

<?php
$obj = (object) 'ciao';
echo $obj->scalar;  // Ausgabe 'ciao'
?>


Ressourcen

Eine resource ist eine spezielle Variable, die eine Referenz zu einer externen Ressource darstellt. Ressourcen werden mit Hilfe spezieller Funktionen erzeugt und genutzt. Im Anhang finden Sie eine Liste all dieser Funktionen und der zugehörigen resource-Typen.

Siehe auch get_resource_type().

Konvertierung von Ressourcen

Da resource-Variablen spezielle Referenzen auf geöffnete Dateien, Datenbankverbindungen, Grafikbereiche usw. enthalten, ist die Konvertierung von resource nicht sinnvoll.

Ressourcen freigeben

Dank der Referenzzähler, die Teil der Zend Engine sind, werden Ressourcen, die von keiner Variablen mehr referenziert werden, automatisch erkannt und vom Garbage Collector freigegeben. Aus diesem Grund ist es selten nötig, Speicher von Hand freizugeben.

Hinweis: Persistente Datenbankverbindungen sind eine Ausnahme von dieser Regel, sie werden nicht vom Garbage Collector entfernt. Mehr Informationen finden sie im Abschnitt Persistente Verbindungen.


NULL

Der spezielle Wert null repräsentiert eine Variable ohne Wert. null ist der einzig mögliche Wert des Typs null.

Eine Variable gilt als vom Typ null wenn:

  • ihr die Konstante null zugewiesen wurde.

  • ihr noch kein Wert zugewiesen wurde.

  • sie mit unset() gelöscht wurde.

Syntax

Es gibt nur einen Wert vom Typ null: die Konstante null (Groß- und Kleinschreibung ist dabei nicht wichtig).

<?php
$var = NULL;
?>

Siehe auch die Funktionen is_null() und unset().

Umwandlung in null

Warnung

Dieses Feature ist seit PHP 7.2.0 als DEPRECATED (veraltet) markiert. Sich auf dieses Feature zu verlassen ist in keiner Weise empfehlenswert.

Die Umwandlung einer Variable auf den Typ null durch (unset) $var entfernt die Variable nicht und löscht nicht ihren Inhalt. Es wird lediglich ein null Wert zurück gegeben.


Callbacks / Callables

Callbacks können seit PHP 5.4 mit dem Type-Hint callable gekennzeichnet werden. Diese Dokumentation verwendete auch die Typinformation callback für diesen Zweck.

Einige Funktionen wie call_user_func() oder usort() akzeptieren eine benutzerdefinierte Callback-Funktion als Argument. Callback-Funktionen können nicht nur einfache Funktionen sein, sondern auch Methoden eines Objects, inklusive statischer Klassenmethoden.

Übergabe

Eine PHP-Funktion wird anhand ihres Namens als String
übergeben. Jede eingebaute oder benutzerdefinierte Funktion kann
verwendet werden, außer Sprachkonstrukten wie:
array(), echo,
empty(), eval(),
exit(), isset(),
list(), print oder
unset().

Eine Methode eines instantiierten Objects wird übergeben als Array mit dem Object an Index-Position 0 und dem Methodennamen an Position 1. Der Zugriff auf als protected oder private markierte Methoden von innerhalb der Klasse ist erlaubt.

Statische Klassenmethoden können auch übergeben werden, ohne dann ein Object dieser Klasse instantiiert werden muss, indem man den Namen der Klasse statt eines Objects an Index 0 übergibt. Seit PHP 5.2.3 kann man auch 'ClassName::methodName' übergeben.

Neben den üblichen benutzerdefinierten Funktionen können auch anonyme Funktionen als Callback-Argumente übergeben werden.

Beispiel #1 Beispiele für Callback-Funktionen

<?php

// Eine Beispiel-Callback-Funktion
function my_callback_function() {
    echo 'hello world!';
}

// Eine Beispiel-Callback-Methode
class MyClass {
    static function myCallbackMethod() {
        echo 'Hello World!';
    }
}

// Typ 1: Einfaches Callback
call_user_func('my_callback_function');

// Typ 2: Statischer Methodenaufruf
call_user_func(array('MyClass', 'myCallbackMethod'));

// Typ 3: Aufruf einer Objektmethode
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));

// Typ 4: Statischer Methodenaufruf (Seit PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');

// Typ 5: Relativer statischer Methodenaufruf (Seit PHP 5.3.0)
class A {
    public static function who() {
        echo "A\n";
    }
}

class B extends A {
    public static function who() {
        echo "B\n";
    }
}

call_user_func(array('B', 'parent::who')); // A

// Typ 6: Objekte die __invoke implementieren können als Callable verwendet werden (seit PHP 5.3)
class C {
    public function __invoke($name) {
        echo 'Hello ', $name, "\n";
    }
}

$c = new C();
call_user_func($c, 'PHP!');
?>

Beispiel #2 Fallback-Beispiel mit einem Closure

<?php
// Unser Closure
$double = function($a) {
    return $a * 2;
};

// Dies ist unsere Menge an Zahlen
$numbers = range(1, 5);

// Hier verwenden wir das Callback, um
// den Wert jedes Elements in unserer
// Menge zu verdoppeln
$new_numbers = array_map($double, $numbers);

print implode(' ', $new_numbers);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2 4 6 8 10

Hinweis:

Callbacks, die für Funktionen wie call_user_func() und call_user_func_array() registriert sind, werden nicht mehr ausgeführt, wenn in einem vorherigen Callback eine Exception geworfen und nicht gefangen wurde.


Type declarations

Type declarations can be added to function arguments, return values, and, as of PHP 7.4.0, class properties. They ensure that the value is of the specified type at call time, otherwise a TypeError is thrown.

Hinweis:

When overriding a parent method, the child's method must match any return type declaration on the parent. If the parent doesn't define a return type, then the child method may do so.

Single types

Typ | Beschreibung | Version
Class/interface name | The value must be an instanceof the given class or interface. |
self | The value must be an instanceof the same class as the one in which the type declaration is used. Can only be used in classes. |
parent | The value must be an instanceof the parent of the class in which the type declaration is used. Can only be used in classes. |
array | The value must be an array. |
callable | The value must be a valid callable. Cannot be used as a class property type declaration. |
bool | The value must be a boolean value. |
float | The value must be a floating point number. |
int | The value must be an integer. |
string | The value must be a string. |
iterable | The value must be either an array or an instanceof Traversable. | PHP 7.1.0
object | The value must be an object. | PHP 7.2.0
mixed | The value can be any value. | PHP 8.0.0
Warnung

Aliases for the above scalar types are not supported. Instead, they are treated as class or interface names. For example, using boolean as a type declaration will require the value to be an instanceof the class or interface boolean, rather than of type bool:

<?php
    function test(boolean $param) {}
    test(true);
?>

Das oben gezeigte Beispiel erzeugt mit PHP 8 folgende Ausgabe:

Warning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2

Fatal error: Uncaught TypeError: test(): Argument #1 ($param) must be of type boolean, bool given, called in - on line 3 and defined in -:2
Stack trace:
#0 -(3): test(true)
#1 {main}
  thrown in - on line 2

mixed

mixed is equivalent to the union type array|bool|callable|int|float |object|resource|string|null . Available as of PHP 8.0.0.

Beispiele

Beispiel #1 Basic class type declaration

<?php
class C {}
class D extends C {}

// This doesn't extend C.
class E {}

function f(C $c) {
    echo get_class($c)."\n";
}

f(new C);
f(new D);
f(new E);
?>

Das oben gezeigte Beispiel erzeugt mit PHP 8 folgende Ausgabe:

C
D

Fatal error: Uncaught TypeError: f(): Argument #1 ($c) must be of type C, E given, called in /in/gLonb on line 14 and defined in /in/gLonb:8
Stack trace:
#0 -(14): f(Object(E))
#1 {main}
  thrown in - on line 8

Beispiel #2 Basic interface type declaration

<?php
interface I { public function f(); }
class C implements I { public function f() {} }

// This doesn't implement I.
class E {}

function f(I $i) {
    echo get_class($i)."\n";
}

f(new C);
f(new E);
?>

Das oben gezeigte Beispiel erzeugt mit PHP 8 folgende Ausgabe:

C

Fatal error: Uncaught TypeError: f(): Argument #1 ($i) must be of type I, E given, called in - on line 13 and defined in -:8
Stack trace:
#0 -(13): f(Object(E))
#1 {main}
  thrown in - on line 8

Beispiel #3 Basic return type declaration

<?php
function sum($a, $b): float {
    return $a + $b;
}

// Note that a float will be returned.
var_dump(sum(1, 2));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

float(3)

Beispiel #4 Returning an object

<?php
class C {}

function getC(): C {
    return new C;
}

var_dump(getC());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(C)#1 (0) {
}

Nullable type

As of PHP 7.1.0, type declarations can be marked nullable by prefixing the type name with a question mark (?). This signifies that the value can be of the specified type or null.

Beispiel #5 Nullable argument type declaration

<?php
class C {}

function f(?C $c) {
    var_dump($c);
}

f(new C);
f(null);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(C)#1 (0) {
}
NULL

Beispiel #6 Nullable return type declaration

<?php
function get_item(): ?string {
    if (isset($_GET['item'])) {
        return $_GET['item'];
    } else {
        return null;
    }
}
?>

Hinweis:

Prior to PHP 7.1.0, it was possible to achieve nullable arguments by making null the default value. This is not recommended as this breaks during inheritance.

Beispiel #7 Old way to make arguments nullable

<?php
class C {}

function f(C $c = null) {
    var_dump($c);
}

f(new C);
f(null);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(C)#1 (0) {
}
NULL

Union types

A union type declaration accepts values of multiple different types, rather than a single one. Union types are specified using the syntax T1|T2|.... Union types are available as of PHP 8.0.0.

Nullable union types

The null type is supported as part of unions, such that T1|T2|null can be used to create a nullable union. The existing ?T notation is considered a shorthand for the common case of T|null.

Achtung

null cannot be used as a standalone type.

false pseudo-type

The false literal type is supported as part of unions, and is included as for historical reasons many internal functions return false instead of null for failures. A classic example of such a function is strpos().

Achtung

false cannot be used as a standalone type (including nullable standalone type). As such, all of false, false|null and ?false are not permitted.

Achtung

The true literal type does not exist.

Duplicate and redundant types

To catch simple bugs in union type declarations, redundant types that can be detected without performing class loading will result in a compile-time error. This includes:

  • Each name-resolved type may only occur once. Types such as int|string|INT result in an error.
  • If bool is used, false cannot be used additionally.
  • If object is used, class types cannot be used additionally.
  • If iterable is used, array and Traversable cannot be used additionally.

Hinweis: This does not guarantee that the type is “minimal”, because doing so would require loading all used class types.

For example, if A and B are class aliases, then A|B remains a legal union type, even though it could be reduced to either A or B. Similarly, if class B extends A {}, then A|B is also a legal union type, even though it could be reduced to just A.

<?php
function foo(): int|INT {} // Disallowed
function foo(): bool|false {} // Disallowed

use A as B;
function foo(): A|B {} // Disallowed ("use" is part of name resolution)

class_alias('X', 'Y');
function foo(): X|Y {} // Allowed (redundancy is only known at runtime)
?>

Return only types

void

void is a return type indicating the function does not return a value. Therefore it cannot be part of a union type declaration. Available as of PHP 7.1.0.

static

The value must be an instanceof the same class as the one the method is called in. Available as of PHP 8.0.0.

Strict typing

By default, PHP will coerce values of the wrong type into the expected scalar type declaration if possible. For example, a function that is given an int for a parameter that expects a string will get a variable of type string.

It is possible to enable strict mode on a per-file basis. In strict mode, only a value corresponding exactly to the type declaration will be accepted, otherwise a TypeError will be thrown. The only exception to this rule is that an int value will pass a float type declaration.

Warnung

Function calls from within internal functions will not be affected by the strict_types declaration.

To enable strict mode, the declare statement is used with the strict_types declaration:

Hinweis:

Strict typing applies to function calls made from within the file with strict typing enabled, not to the functions declared within that file. If a file without strict typing enabled makes a call to a function that was defined in a file with strict typing, the caller's preference (coercive typing) will be respected, and the value will be coerced.

Hinweis:

Strict typing is only defined for scalar type declarations.

Beispiel #8 Strict typing for arguments values

<?php
declare(strict_types=1);

function sum(int $a, int $b) {
    return $a + $b;
}

var_dump(sum(1, 2));
var_dump(sum(1.5, 2.5));
?>

Das oben gezeigte Beispiel erzeugt mit PHP 8 folgende Ausgabe:

int(3)

Fatal error: Uncaught TypeError: sum(): Argument #1 ($a) must be of type int, float given, called in - on line 9 and defined in -:4
Stack trace:
#0 -(9): sum(1.5, 2.5)
#1 {main}
  thrown in - on line 4

Beispiel #9 Coercive typing for argument values

<?php
function sum(int $a, int $b) {
    return $a + $b;
}

var_dump(sum(1, 2));

// These will be coerced to integers: note the output below!
var_dump(sum(1.5, 2.5));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(3)
int(3)

Beispiel #10 Strict typing for return values

<?php
declare(strict_types=1);

function sum($a, $b): int {
    return $a + $b;
}

var_dump(sum(1, 2));
var_dump(sum(1, 2.5));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(3)

Fatal error: Uncaught TypeError: sum(): Return value must be of type int, float returned in -:5
Stack trace:
#0 -(9): sum(1, 2.5)
#1 {main}
  thrown in - on line 5

Coercive typing with union types

When strict_types is not enabled, scalar type declarations are subject to limited implicit type coercions. If the exact type of the value is not part of the union, then the target type is chosen in the following order of preference:

  1. int
  2. float
  3. string
  4. bool
If the type both exists in the union, and the value can be coerced to the type under PHPs existing type checking semantics, then the type is chosen. Otherwise the next type is tried.

Achtung

As an exception, if the value is a string and both int and float are part of the union, the preferred type is determined by the existing “numeric string” semantics. For example, for "42" int is chosen, while for "42.0" float is chosen.

Hinweis:

Types that are not part of the above preference list are not eligible targets for implicit coercion. In particular no implicit coercions to the null and false types occur.

Beispiel #11 Example of types being coerced into a type part of the union

<?php
// int|string
42    --> 42          // exact type
"42"  --> "42"        // exact type
new ObjectWithToString --> "Result of __toString()"
                      // object never compatible with int, fall back to string
42.0  --> 42          // float compatible with int
42.1  --> 42          // float compatible with int
1e100 --> "1.0E+100"  // float too large for int type, fall back to string
INF   --> "INF"       // float too large for int type, fall back to string
true  --> 1           // bool compatible with int
[]    --> TypeError   // array not compatible with int or string

// int|float|bool
"45"    --> 45        // int numeric string
"45.0"  --> 45.0      // float numeric string

"45X"   --> true      // not numeric string, fall back to bool
""      --> false     // not numeric string, fall back to bool
"X"     --> true      // not numeric string, fall back to bool
[]      --> TypeError // array not compatible with int, float or bool
?>

Misc

Beispiel #12 Typed pass-by-reference Parameters

Declared types of reference parameters are checked on function entry, but not when the function returns, so after the function had returned, the argument's type may have changed.

<?php
function array_baz(array &$param)
{
    $param = 1;
}
$var = [];
array_baz($var);
var_dump($var);
array_baz($var);
?>

Das oben gezeigte Beispiel erzeugt mit PHP 8 folgende Ausgabe:

int(1)

Fatal error: Uncaught TypeError: array_baz(): Argument #1 ($param) must be of type array, int given, called in - on line 9 and defined in -:2
Stack trace:
#0 -(9): array_baz(1)
#1 {main}
  thrown in - on line 2

Beispiel #13 Catching TypeError

<?php
declare(strict_types=1);

function sum(int $a, int $b) {
    return $a + $b;
}

try {
    var_dump(sum(1, 2));
    var_dump(sum(1.5, 2.5));
} catch (TypeError $e) {
    echo 'Error: ', $e->getMessage();
}
?>

Das oben gezeigte Beispiel erzeugt mit PHP 8 folgende Ausgabe:

int(3)
Error: sum(): Argument #1 ($a) must be of type int, float given, called in - on line 10


Type Juggling

PHP does not require (or support) explicit type definition in variable declaration; a variable's type is determined by the context in which the variable is used. That is to say, if a string value is assigned to variable $var, $var becomes a string. If an int value is then assigned to $var, it becomes an int.

An example of PHP's automatic type conversion is the multiplication operator '*'. If either operand is a float, then both operands are evaluated as floats, and the result will be a float. Otherwise, the operands will be interpreted as ints, and the result will also be an int. Note that this does not change the types of the operands themselves; the only change is in how the operands are evaluated and what the type of the expression itself is.

<?php
$foo = "1";  // $foo is string (ASCII 49)
$foo *= 2;   // $foo is now an integer (2)
$foo = $foo * 1.3;  // $foo is now a float (2.6)
$foo = 5 * "10 Little Piggies"; // $foo is integer (50)
$foo = 5 * "10 Small Pigs";     // $foo is integer (50)
?>

If the last two examples above seem odd, see how numeric strings convert to integers.

To force a variable to be evaluated as a certain type, see the section on Type casting. To change the type of a variable, see the settype() function.

To test any of the examples in this section, use the var_dump() function.

Hinweis:

The behaviour of an automatic conversion to array is currently undefined.

Also, because PHP supports indexing into strings via offsets using the same syntax as array indexing, the following example holds true for all PHP versions:

<?php
$a    = 'car'; // $a is a string
$a[0] = 'b';   // $a is still a string
echo $a;       // bar
?>

See the section titled String access by character for more information.

Type Casting

Type casting in PHP works much as it does in C: the name of the desired type is written in parentheses before the variable which is to be cast.

<?php
$foo = 10;   // $foo is an integer
$bar = (boolean) $foo;   // $bar is a boolean
?>

The casts allowed are:

  • (int), (integer) - cast to int
  • (bool), (boolean) - cast to bool
  • (float), (double), (real) - cast to float
  • (string) - cast to string
  • (array) - cast to array
  • (object) - cast to object
  • (unset) - cast to NULL

(binary) casting and b prefix exists for forward support. Note that the (binary) cast is essential the same as (string), but it should not be relied upon.

The (unset) cast has been deprecated as of PHP 7.2.0. Note that the (unset) cast is the same as assigning the value NULL to the variable or call. The (unset) cast is removed as of PHP 8.0.0.

Note that tabs and spaces are allowed inside the parentheses, so the following are functionally equivalent:

<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>

Casting literal strings and variables to binary strings:

<?php
$binary = (binary) $string;
$binary = b"binary string";
?>

Hinweis:

Instead of casting a variable to a string, it is also possible to enclose the variable in double quotes.

<?php
$foo = 10;            // $foo is an integer
$str = "$foo";        // $str is a string
$fst = (string) $foo; // $fst is also a string

// This prints out that "they are the same"
if ($fst === $str) {
    echo "they are the same";
}
?>

It may not be obvious exactly what will happen when casting between certain types. For more information, see these sections:

  • Converting to boolean
  • Converting to integer
  • Converting to float
  • Converting to string
  • Converting to array
  • Converting to object
  • Converting to resource
  • Converting to NULL
  • The type comparison tables


Variablen

Inhaltsverzeichnis

  • Grundlegendes
  • Vordefinierte Variablen
  • Geltungsbereich von Variablen
  • Variable Variablen
  • Variablen aus externen Quellen


Grundlegendes

Variablen werden in PHP durch ein Dollar-Zeichen ($) gefolgt vom Namen der Variable dargestellt. Bei Variablen-Namen wird zwischen Groß- und Kleinschreibung unterschieden (case-sensitive).

Variablen-Namen werden in PHP nach den gleichen Regeln wie andere Bezeichner erstellt. Ein gültiger Variablen-Name beginnt mit einem Buchstaben oder einem Unterstrich ("_"), gefolgt von einer beliebigen Anzahl von Buchstaben, Zahlen oder Unterstrichen. Als regulärer Ausdruck (regular expression) würde das wie folgt ausgedrückt: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$.

Hinweis: Unserem Zweck entspricht also ein Buchstabe von a bis z bzw. A bis Z oder einem Bytewert von 128 bis 255 (0x80-0xff).

Hinweis: $this ist eine spezielle Variable, die nicht geändert werden kann. Vor PHP 7.1.0 war die indirekte Zuweisung (z.B. durch die Verwendung von variable Variablen) möglich.

Tipp

Siehe auch Userland-Namensregeln.

Information zu Funktionen im Zusammenhang mit Variablen finden Sie im Abschnitt Funktionen zur Behandlung von Variablen.

<?php
$var = "du";
$Var = "ich";
echo "$var, $Var"; // gibt "du, ich" aus

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

Standardmäßig wird Variablen immer ein Wert zugewiesen. Das heißt, wenn Sie einer Variablen einen Ausdruck zuweisen, wird der gesamte Inhalt des Originalausdrucks in die Zielvariable kopiert. Die Folge ist, dass eine Variable, die ihren Inhalt von einer anderen Variablen erhalten hat, ihren Inhalt behält, auch wenn Sie danach den Inhalt der anderen (Quell- / Ursprungs-)Variablen ändern. Die Inhalte der Ziel- und Quellvariablen sind also insoweit unabhängig voneinander. Für weitere Informationen lesen Sie bitte das Kapitel unter Expressions / Ausdrücke.

PHP 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.

Für die Zuweisung per Referenz müssen Sie lediglich ein Kaufmannsund (&) der (Ausgangs-, Quell-) Variablen voranstellen, die sie einer anderen Variablen zuweisen wollen. Das folgende Code- Schnipsel wird zweimal 'Mein Name ist Bob' ausgeben:

<?php
$foo = 'Bob';             // 'Bob' der Variablen $foo zuweisen.
$bar = &$foo;             // $foo per $bar referenzieren.
$bar = "Ich heiße $bar";  // $bar verändern...
echo $bar;
echo $foo;                // $foo wurde ebenfalls verändert.
?>

Zu beachten ist, dass nur Variablenbezeichner referenziert werden können.

<?php
$foo = 25;
$bar = &$foo;     // Gültige Zuweisung.
$bar = &(24 * 7); // Ungültig, da ein unbenannte Ausdruck referenziert wird.

function test()
{
    return 25;
}

$bar = &test();   // Ungültig.
?>

Es ist in PHP nicht zwingend notwendig Variablen zu initialisieren, es wird aber trotzdem empfohlen. Nicht initialisierte Variablen haben einen Vorgabewert der vom Typ abhängt – Boolesche Werte sind standardmäßig false, Ganz- und Fließkommazahlen sind standardmäßig Null (0), Zeichenketten (die z.B. in echo verwendet werden) sind standardmäßig leer, und Arrays ebenfalls.

Beispiel #1 Vorgabewerte uninitialisierter Variablen

<?php
// Nicht gesetzte UND nicht referenzierte (kein Verwendungskontext) Variable; gibt NULL aus
var_dump($unset_var);

// Verwendung als Boolescher Wert; gibt 'false' aus (siehe den ternären Operator für Details zu dieser Syntax)
echo($unset_bool ? "true\n" : "false\n");

// Verwendung als Zeichenkette; gibt 'string(3) "abc"' aus
$unset_str .= 'abc';
var_dump($unset_str);

// Verwendung als Ganzzahl; gibt 'int(25)' aus
$unset_int += 25; // 0 + 25 => 25
var_dump($unset_int);

// Verwendung als Fließkommazahl; gibt 'float(1.25)' aus
$unset_float += 1.25;
var_dump($unset_float);

// Verwendung als Array; gibt array(1) {  [3]=>  string(3) "def" } aus
$unset_arr[3] = "def"; // array() + array(3 => "def") => array(3 => "def")
var_dump($unset_arr);

// Verwendung als Objekt; erzeugt ein neues stdClass Objekt
// (siehe http://www.php.net/manual/en/reserved.classes.php)
// Gibt aus: object(stdClass)#1 (1) {  ["foo"]=>  string(3) "bar" }
$unset_obj->foo = 'bar';
var_dump($unset_obj);
?>

Es ist problematisch sich auf den Vorgabewert einer nicht initialisierten Variable zu verlassen, wenn Sie eine Datei in eine andere inkludieren, die den gleichen Variablennamen benutzt. Bei Zugriffen auf nicht initialisierte Variablen wird ein Fehler der Stufe E_NOTICE ausgelöst, dies trifft allerdings nicht auf das Anfügen von Elementen an nicht initialisierte Arrays zu. Das isset() Sprachkonstrukt kann genutzt werden, um zu prüfen ob eine Variable bereits initialisiert wurde.


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. Details hierzu sind unter Vordefinierte Variablen zu finden.

In PHP stehen eine zusätzliche Reihe vordefinierter Arrays zur Verfügung, die Variablen vom Webserver (gegebenenfalls), von der Umgebung und von Benutzereingaben enthalten. Diese Arrays sind insofern etwas sehr Spezielles, als sie automatisch global sind – d.h., sie stehen automatisch in jedem Geltungsbereich zur Verfügung. Deshalb sind sie auch bekannt als "Superglobale". (Es gibt in PHP keinen Mechanismus für benutzerdefinierte Superglobale.) Details hierzu sind unter Liste der Superglobalen zu finden.

Hinweis: Variable Variablen

Superglobale können innerhalb von Funktionen und Methoden nicht als variable Variablen verwendet werden.

Falls bestimmte Variablen nicht unter variables_order angegeben sind, dann bleiben auch ihre entsprechenden vordefinierten Arrays leer.


Geltungsbereich von Variablen

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

<?php
$a = 1;
include 'b.inc';
?>

Die Variable $a ist auch in der eingebundenen Datei b.inc verfügbar. In benutzerdefinierten Funktionen wird jedoch ein auf die Funktion beschränkter Geltungsbereich eingeführt. Jede in einer Funktion benutzte Variable ist zunächst auf den lokalen Bereich der Funktion beschränkt, z.B.:

<?php
$a = 1; // globaler Geltungsbereich

function test () {
    echo $a; // Referenz auf ein Variable im lokalen Geltungsbereich
}

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 Geltungsbereich 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, so dass in PHP global geltende Variablen innerhalb von Funktionen als solche deklariert werden müssen.

Das global Schlüsselwort

Zunächst ein Beispiel für die Verwendung von global:

Beispiel #1 Verwendung von global

<?php
$a = 1;
$b = 2;

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

    $b = $a + $b;
}

Sum();
echo $b;
?>

Das obige Skript gibt 3 aus. Durch das Deklarieren der Variablen $a und $binnerhalb der Funktion als global, weisen alle Referenzen zu beiden Variablen auf die nun globalen Werte. Es gibt keine Beschränkungen bei der Anzahl an globalen Variablen, die durch eine Funktion verändert werden können.

Eine weitere Möglichkeit besteht in der Verwendung des speziellen $GLOBALS PHP-Array. Das obige Beispiel kann damit auch so geschrieben werden:

Beispiel #2 Verwendung von $GLOBALS statt global

<?php
$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. Beachten Sie, dass $GLOBALS in jedem Geltungsbereich existiert, weil $GLOBALS eine Superglobale ist. Hier ist ein Beispiel, das die Stärke von Superglobalen demonstriert:

Beispiel #3 Beispiel zur Demonstration von Superglobalen und Geltungsbereich

<?php
function test_superglobal()
{
    echo $_POST['name'];
}
?>

Hinweis:

Die Verwendung des global-Schlüsselworts außerhalb einer Funktion ist kein Fehler. Es kann verwendet werden, wenn die Datei von innerhalb einer Funktion eingebunden wird.

Die Verwendung von static Variablen

Ein weiterer wichtiger Anwendungszweck von Variablen-Bereichen ist die statische-Variable. Eine statische Variable existiert nur in einem lokalen Funktions-Geltungsbereich, der Wert geht beim Verlassen dieses Bereichs aber nicht verloren. Schauen Sie das folgende Beispiel an:

Beispiel #4 Beispiel, das die Notwendigkeit von statischen Variablen demonstriert

<?php
function test ()
{
    $a = 0;
    echo $a;
    $a++;
}
?>

Diese Funktion ist sinnlos, da sie bei jedem Aufruf $a auf 0 setzt und 0 ausgibt. Die Anweisung $a++, welche den Wert erhöht, ergibt hier keinen Sinn, da der Wert von $a beim Verlassen der Funktion verloren geht. Um eine sinnvolle Zählfunktion zu implementieren, die ihren aktuell gesetzten Wert nicht vergisst, müssen Sie die Variable $a als statisch deklarieren:

Beispiel #5 Beispiel zur Verwendung statischer Variablen

<?php
function test()
{
    static $a = 0;
    echo $a;
    $a++;
}
?>

Nun wird $a nur beim ersten Aufruf der Funktion initialisiert, und jedes mal wenn die test()-Funktion aufgerufen wird, wird sie den Wert von $a ausgeben, und den Variablenwert erhöhen.

Statische Variablen ermöglichen auch einen Weg zum Umgang mit rekursiven Funktionen. Das sind Funktionen, die sich selbst aufrufen. Hierbei besteht die Gefahr, so genannte Endlos- Schleifen zu programmieren. Sie müssen also einen Weg vorsehen, diese Rekursion zu beenden. Die folgende einfache Funktion zählt rekursiv bis 10. Die statische Variable $count wird benutzt, um die Rekursion zu beenden:

Beispiel #6 Statische Variablen in rekursiven Funktionen

<?php
function test()
{
    static $count = 0;

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

Statischen Variablen können Werte zugewiesen werden, die das, Ergebnis von konstanten Ausdrücken sind, aber dynamische Ausdrücke, wie z.B. Funktionsaufrufe, verursachen einen Parse-Fehler.

Beispiel #7 Statische Variablen deklarieren

<?php
function foo(){
    static $int = 0;          // korrekt
    static $int = 1+2;        // korrekt
    static $int = sqrt(121);  // falsch (da es eine Funktion ist)

    $int++;
    echo $int;
}
?>

Hinweis:

Statische Deklarationen werden zur Übersetzungszeit aufgelöst.

Referenzen bei global und static Variablen

PHP implementiert die static- und global-Modifikatoren für Variablen als Referenzen. Zum Beispiel erzeugt eine echte globale Variable, die mit der Anweisung global in den Funktions-Geltungsbereich importiert wurde, tatsächlich eine Referenz zur globalen Variable. Das kann zu einem unerwarteten Verhalten führen, auf das im folgenden Beispiel eingegangen wird:

function test_global_ref() {
    global $obj;
    $new = new stdclass;
    $obj = &$new;
}

function test_global_noref() {
    global $obj;
    $new = new stdclass;
    $obj = $new;
}

test_global_ref();
var_dump($obj);
test_global_noref();
var_dump($obj);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
object(stdClass)#1 (0) {
}

Ein ähnliches Verhalten gilt auch für die Anweisung static. Referenzen werden nicht statisch gespeichert:

<?php
function &get_instance_ref() {
    static $obj;

    echo "Statisches Objekt: ";
    var_dump($obj);
    if (!isset($obj)) {
        $new = new stdclass;
        // Der statischen Variablen eine Referenz zuweisen
        $obj = &$new;
    }
    if (!isset($obj->property)) {
        $obj->property = 1;
    } else {
        $obj->property++;
    }
    return $obj;
}

function &get_instance_noref() {
    static $obj;

    echo "Statisches Objekt: ";
    var_dump($obj);
    if (!isset($obj)) {
        $new = new stdclass;
        // Der statischen Variablen ein Objekt zuweisen
        $obj = $new;
    }
    if (!isset($obj->property)) {
        $obj->property = 1;
    } else {
        $obj->property++;
    }
    return $obj;
}

$obj1 = get_instance_ref();
$still_obj1 = get_instance_ref();
echo "\n";
$obj2 = get_instance_noref();
$still_obj2 = get_instance_noref();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Statisches Objekt: NULL
Statisches Objekt: NULL

Statisches Objekt: NULL
Statisches Objekt: object(stdClass)#3 (1) {
  ["property"]=>
  int(1)
}

Dieses Beispiel demonstriert, dass die Referenz, die einer statischen Variablen zugewiesen wird, beim zweiten Aufruf der Funktion &get_instance_ref() vergessen ist.


Variable Variablen

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

<?php
$a = "Hallo";
?>

Eine variable Variable nimmt den Wert einer Variablen und behandelt ihn als Bezeichner der Variablen. Im obigen Beispiel kann Hallo als Variablen-Name gebraucht werden, indem man zwei Dollar-Zeichen benutzt, also schreibt:

<?php
$$a = "Welt";
?>

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

<?php
echo "$a ${$a}";
?>

zur genau gleichen Ausgabe führen wie:

<?php
echo "$a $Hallo";
?>

also zu: Hallo Welt.

Wenn Sie variable Variablen mit Arrays verwenden, müssen Sie eine Doppeldeutigkeit beachten. Wenn Sie nämlich $$a[1] schreiben, dann muss der Parser wissen, ob Sie $a[1] als Variable oder $$a als Variable und dann [1] als Index dieser Variablen verwenden wollen bzw. gemeint haben. Die Syntax zur Lösung dieser Doppeldeutigkeit: Verwenden Sie im ersten Fall ${$a[1]} und im zweiten Fall ${$a}[1].

Auf Klasseneigenschaften kann ebenso unter Verwendung von variablen Eigenschaftsnamen zugegriffen werden. Der variable Eigenschaftsname wird innerhalb des Geltungsbereichs aufgelöst, aus dem der Aufruf erfolgt. Wenn sie beispielsweise einen Ausdruck wie etwa $foo->$bar haben, dann wird der lokale Geltungsbereich auf $bar untersucht, und dessen Wert wird als Eigenschaftsname von $foo verwendet. Dies gilt analog, wenn $bar ein Arrayzugriff ist.

Geschweifte Klammern können ebenfalls verwendet werden, um den Eigenschaftsnamen deutlich abzugrenzen. Sie sind besonders nützlich beim Zugriff auf Werte in einer Eigenschaft, die ein Array enthält, wenn der Eigenschaftsname aus mehreren Teilen besteht, oder wenn der Eigenschaftsname Zeichen enthält, die andernfalls nicht gültig sind (z.B. von json_decode() oder SimpleXML).

Beispiel #1 Beispiel zu variablen Eigenschaften

<?php
class foo {
    var $bar = 'Ich bin bar.';
    var $arr = array('Ich bin A.', 'Ich bin B.', 'Ich bin C.');
    var $r   = 'Ich bin r.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";
echo $foo->{$baz[1]} . "\n";

$start = 'b';
$end   = 'ar';
echo $foo->{$start . $end} . "\n";

$arr = 'arr';
echo $foo->{$arr[1]} . "\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ich bin bar.
Ich bin bar.
Ich bin bar.
Ich bin r.

Warnung

Bitte beachten Sie, dass variable Variablen nicht mit Superglobalen Arrays in Funktionen oder Klassenmethoden verwendet werden können. Die Variable $this ist ebenfalls eine spezielle Variable, die nicht dynamisch referenziert werden kann.


Variablen aus externen Quellen

HTML-Formulare (GET and POST)

Sobald ein Formular an ein PHP-Skript übergeben wird, werden die Informationen dieses Formulars dem Skript automatisch zur Verfügung gestellt. Es gibt ein paar Möglichkeiten, auf diese Informationen zuzugreifen, zum Beispiel:

Beispiel #1 Ein einfaches HTML-Formular

<form action="foo.php" method="post">
    Name:  <input type="text" name="username" /><br />
    E-Mail: <input type="text" name="email" /><br />
    <input type="submit" name="submit" value="Und ab!" />
</form>

Es gibt es nur zwei Möglichkeiten, um auf die Daten der HTML-Formulare zuzugreifen. Die zurzeit verfügbaren Methoden werden unten aufgeführt:

Beispiel #2 Zugriff auf die Daten eines einfachen POST-HTML-Formular

<?php
echo $_POST['username'];
echo $_REQUEST['username'];
?>

Die Verwendung eines GET Formulars ist, davon abgesehen, dass Sie stattdessen die entsprechende vordefinierte GET-Variable erhalten, ähnlich. Außerdem wird GET auch für den QUERY_STRING (die Information nach dem '?' in einer URL) verwendet. So enthält zum Beispiel http://www.example.com/test.php?id=3 GET-Daten, auf die mit $_GET['id'] zugegriffen werden kann. Siehe auch $_REQUEST.

Hinweis:

Punkte und Leerzeichen in Variablennamen werden in Unterstriche umgewandelt. Zum Beispiel wird <input name="a.b" /> zu $_REQUEST["a_b"].

Im Zusammenhang mit Formular-Variablen versteht PHP auch Arrays (siehe auch die verwandte Faq). Sie können z.B. die betreffenden Variablen gruppieren oder dieses Leistungsmerkmal nutzen, um Werte aus Mehrfach-Auswahl-Eingabeelementen zu erhalten. Schicken wir zum Beispiel ein Formular an sich selbst, und lassen nach dem Versand die Daten anzeigen:

Beispiel #3 Komplexere Formular-Variablen

<?php
if ($_POST) {
    echo '<pre>';
    echo htmlspecialchars(print_r($_POST, true));
    echo '</pre>';
}
?>
<form action="" method="post">
    Name:  <input type="text" name="personal[name]" /><br />
    E-Mail: <input type="text" name="personal[email]" /><br />
    Bier: <br />
    <select multiple name="bier[]">
        <option value="warthog">Öttinger</option>
        <option value="guinness">Bitburger</option>
        <option value="stuttgarter">Stuttgarter Schwabenbräu</option>
    </select><br />
    <input type="submit" name="submit" value="Und ab!" />
</form>

Hinweis: Beginnt der Name einer externen Variablen mit einer gültigen Array-Syntax, dann werden darauf folgende Zeichen stillschweigend ignoriert. Zum Beispiel wird <input name="foo[bar]baz"> zu $_REQUEST['foo']['bar'].

IMAGE SUBMIT Variablen-Bezeichner

Zur Übertragung eines Formulars kann auch ein Bild 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 bemerken, dass die Variablen, die vom Browser gesendet werden, einen Punkt enthalten statt eines Unterstrichs. Dieser Punkt wird von PHP automatisch in einen Unterstrich verwandelt.

HTTP-Cookies

PHP unterstützt HTTP-Cookies, wie in » RFC 6265 definiert. Cookies ermöglichen die Daten-Speicherung innerhalb der jeweiligen Browser-Umgebung zum Tracken oder zur Identifikation von Benutzern. Sie können Cookies erzeugen, indem Sie die Funktion setcookie() benutzen. Cookies sind Teil des HTTP-Headers, deshalb muss die setcookie-Funktion aufgerufen werden, bevor irgendeine Ausgabe an den Browser gesendet wird. Dabei handelt es sich um die gleiche Einschränkung, die auch für die header()-Funktion gilt. Cookie-Daten stehen dann in den entsprechenden Cookie-Daten-Arrays, wie zum Beispiel $_COOKIE, als auch in $_REQUEST zur Verfügung. Für weitere Details und Beispiele lesen Sie bitte die setcookie()-Seite des Handbuchs.

Hinweis: Aus Sicherheitsgründen werden ab PHP 7.2.34, 7.3.23 bzw. 7.4.11 die Namen der eingehenden Cookies nicht mehr URL-dekodiert.

Wenn Sie einer einzelnen Cookie-Variable mehrere Werte zuweisen wollen, müssen Sie diese als Array zuweisen. Zum Beispiel:

<?php
  setcookie("MeinCookie[foo]", "Ich teste 1", time()+3600);
  setcookie("MeinCookie[bar]", "Ich teste 2", time()+3600);
?>

Das erzeugt zwei einzelne Cookies obwohl MyCookie in Ihrem Skript nun ein einziges Array ist. Wenn Sie nur ein Cookie mit mehreren Werten setzen wollen, sollten Sie erwägen serialize() oder explode() auf das Array anzuwenden.

Bedenken Sie, dass ein Cookie ein vorhergehendes Cookie gleichen Namens überschreibt, es sei denn, der Pfad oder die Domain ist anders. Für eine Warenkorb-Anwendung können Sie deshalb z.B. einen Zähler bilden und diesen weiterleiten:

Beispiel #4 Ein setcookie()-Beispiel

<?php
if (isset($_COOKIE['zaehler'])) {
    $count = $_COOKIE['zaehler'] + 1;
} else {
    $count = 1;
}
setcookie('zaehler', $count, time()+3600);
setcookie("Cart[$count]", $item, time()+3600);
?>

Punkte in eingehenden Variablen-Bezeichnern

Normalerweise verändert PHP die Variablen-Bezeichner nicht, wenn sie einem Skript übergeben werden. Es sollte aber beachtet werden, dass der Punkt (".") kein gültiger Bestandteil eines Variablen-Bezeichners ist. Deshalb achten Sie auf folgendes:

<?php
$varname.ext;  /* ungültiger Variablen-Bezeichner */
?>
Der PHP-Parser sieht eine Variable namens $varname, gefolgt von einem Zeichenketten-Verbindungs-Operator, dieser wiederum gefolgt von der offenen Zeichenkette 'ext' (also nicht eingegrenzt durch '"' und auch keinem Schlüsselwort oder reserviertem Bezeichner entsprechend). Das kann natürlich nicht zum gewünschten Ergebnis führen.

Deshalb ist es wichtig zu wissen, dass PHP in den ihm übergebenen Variablen alle Punkte (.) automatisch durch einen Unterstrich (_) ersetzt.

Bestimmung des Variablen-Typs

Da PHP den Typ der Variablen bestimmt und (im Allgemeinen) selbst eine entsprechende Umformung vornimmt, ist es nicht immer klar, welchen Typ eine Variable gerade hat. PHP beinhaltet einige Funktionen, die dies herausfinden, wie zum Beispiel: gettype(), is_array(), is_float(), is_int(), is_object() und is_string(). Lesen Sie bitte auch das Kapitel über Typen.

Da HTTP ein Text-Protokoll ist, werden die meisten, wenn nicht alle, Inhalte von superglobalen Arrays, wie $_POST und $_GET, als Zeichenketten erhalten bleiben. PHP wird nicht versuchen die Werte in spezifische Typen umzuwandeln. Im Beispiel weiter unten wird $_GET["var1"] die Zeichenkette "null" und $_GET["var2"] die Zeichenkette "123" enthalten.

/index.php?var1=null&var2=123

Changelog

Version | Beschreibung
7.2.34, 7.3.23, 7.4.11 | Aus Sicherheitsgründen werden die Namen der eingehenden Cookies nicht mehr URL-dekodiert.


Konstanten

Inhaltsverzeichnis

  • Syntax
  • Magische Konstanten

Eine Konstante ist ein Bezeichner (Name) für einen einfachen Wert. Wie der Name bereits nahelegt, kann der Wert einer Konstanten zur Laufzeit des Skripts nicht verändert werden (ausgenommen die Magischen Konstanten, die aber keine wirklichen Konstanten sind.) Eine Konstante unterscheidet standardmäßig zwischen Groß- und Kleinschreibung (case-sensitive). Nach gängiger Konvention werden Konstanten immer in Großbuchstaben geschrieben.

Der Name einer Konstanten folgt den gleichen Regeln wie alle anderen Bezeichner in PHP. Ein gültiger Name beginnt mit einem Buchstaben oder einem Unterstrich, gefolgt von beliebig vielen Buchstaben, Ziffern oder Unterstrichen. Als regulärer Ausdruck könnte das so beschrieben werden: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

Es ist möglich Konstanten mit reservierten oder gar ungültigen Namen mittels define() zu definieren, deren Wert (nur) mittels constant() gelesen werden kann. Allerdings wird dies nicht empfohlen.

Tipp

Siehe auch Userland-Namensregeln.

Beispiel #1 Gültige und ungültige Namen für Konstanten

<?php

// Gueltige Namen fuer Konstanten
define("FOO",     "irgendwas");
define("FOO2",    "etwas anderes");
define("FOO_BAR", "irgendwas ganz anderes");

// Ungueltige Namen fuer Konstanten
define("2FOO",    "irgendwas");

// Folgendes ist korrekt, sollte aber vermieden werden:
// PHP koennte eines Tages eine Magische Konstante unterstuetzen
// die Ihr Skript nicht mehr wie gewuenscht funktionieren laesst
define("__FOO__", "irgendwas");

?>

Hinweis: Für unsere Zwecke ist ein Buchstabe a-z, A-Z und die ASCII-Zeichen von 128 bis 255 (0x80-0xff).

Wie bei superglobals ist der Gültigkeitsbereich einer Konstanten global. Unabhängig vom Gültigkeitsbereich können Sie in Ihrem Skript überall auf eine Konstante zugreifen. Für mehr Information zum Gültigkeitsbereich lesen Sie bitte den Abschnitt über den Geltungsbereich von Variablen.


Syntax

Sie können eine Konstante definieren, indem Sie entweder die define()-Funktion oder ab PHP 5.3.0 das Schlüsselwort const außerhalb einer Klassendefinition verwenden. Während define() es ermöglicht eine Konstante auf einen beliebigen Wert zu definieren, hat das const Schlüsselwort Einschränkungen, die im nächsten Absatz beschrieben werden. Einmal definiert, kann eine Konstante weder verändert noch gelöscht werden.

Wenn das const Schlüsselwort verwendet wird, können Konstanten vor PHP 5.6 nur skalare Daten (boolean, integer, float und string) enthalten. Von PHP 5.6 an ist es möglich eine Konstante als skalaren Ausdruck zu definieren, und es ist ebenfalls möglich eine Array Konstante zu definieren. Es ist möglich, Konstanten vom Typ resource zu definieren, dies sollte allerdings vermieden werden, da es zu unerwarteten Ergebnissen führen kann.

Den Wert einer Konstanten erhalten Sie durch die einfache Angabe ihres Namens. Im Gegensatz zu Variablen sollten Sie einer Konstanten kein $ voranstellen. Ebenso können Sie die Funktion constant() benutzen, um den Wert einer Konstanten auszulesen, wenn Sie den Namen der Konstanten dynamisch erhalten wollen. Benutzen Sie get_defined_constants(), um eine Liste aller definierten Konstanten zu erhalten.

Hinweis: Konstanten und (globale) Variablen befinden sich in unterschiedlichen Namensräumen. Das hat zum Beispiel zur Folge, dass true und $TRUE etwas völlig Verschiedenes sind.

Falls Sie eine undefinierte Konstante verwenden, nimmt PHP an, dass Sie den Namen der Konstanten selbst meinen, so als ob Sie sie als einen string (CONSTANT vs "CONSTANT") aufgerufen hätten. Dieses Rückfallverhalten ist von PHP 7.2.0 an missbilligt, und ein Fehler der Stufe E_WARNING wird ausgelöst, wenn es dazu kommt (zuvor wurde ein Fehler der Stufe E_NOTICE ausgelöst). Lesen Sie ebenfalls den entsprechenden Manualabschnitt, der erklärt, warum $foo[bar] falsch ist (zumindest solange Sie nicht zuvor bar mittels define() als Konstante definiert haben). Dies gilt nicht für (vollständig) qualifizierte Konstanten, die einen fatalen Fehler erzeugen, wenn sie undefiniert sind. Möchten Sie einfach nur nachprüfen, ob eine Konstante definiert ist, benutzen Sie die Funktion defined().

Das hier sind die Unterschiede zwischen Konstanten und Variablen:

  • Konstanten haben kein Dollarzeichen ($) vorangestellt;
  • Vor PHP 5.3 können Konstanten nur über die Funktion define() definiert werden, nicht durch einfache Zuweisung;
  • Konstanten können überall definiert werden, und auf Ihren Wert können Sie ohne Rücksicht auf Namensraumregeln von Variablen zugreifen;
  • Sobald Konstanten definiert sind, können sie nicht neu definiert oder gelöscht werden; und
  • Konstanten können nur skalare Werte haben. Ab PHP 5.6.0 ist es möglich, Array-Konstanten mit dem const Schlüsselwort zu definieren; ab PHP 7 können Array-Konstanten ebenfalls mit define() definiert werden. In konstanten skalaren Ausdrücken können Arrays verwendet werden (z.B. const FOO = array(1, 2, 3)[0];), aber das Endergebnis muss ein Wert eines erlaubten Typs sein.

Beispiel #1 Definition von Konstanten

<?php
define("KONSTANTE", "Hallo Welt.");
echo KONSTANTE;     // Ausgabe: "Hallo Welt."
echo Konstante;     // Ausgabe: "Konstante" und eine Notice.
?>

Beispiel #2 Definition von Konstanten unter Verwendung des const-Keywords

<?php
// Funktioniert seit PHP 5.3.0
const KONSTANTE = 'Hallo Welt';

echo KONSTANTE;

// Funktioniert seit PHP 5.6.0
const ANDERE_KONSTANTE = KONSTANTE . '; Ade Welt';

echo ANDERE_KONSTANTE;

const ANIMALS = array('Hund', 'Katze', 'Maus');
echo ANIMALS[1]; // gibt "Katze" aus

// Funktioniert seit PHP 7
define('ANIMALS', array(
    'Hund',
    'Katze',
    'Maus'
));
echo ANIMALS[1]; // gibt "Katze" aus
?>

Hinweis:

Im Gegensatz zu Konstanten, welche mit define() erstellt werden, müssen über const definierte Konstanten im Top-Level Scope erstellt werden, weil sie zur Compile Zeit definiert werden. Das heißt, dass sie nicht innerhalb von Funktionen, Schleifen, if Statements oder try/catch Blöcken definiert werden können.

Hinweis:

Konstanten, die mittels des const Schlüsselworts definiert wurden, sind immer case-sensitive (Groß-/Kleinschreibung wird unterschieden), während Konstanten, die mittels define() definiert wurden, case-insensitive (Groß-/Kleinschreibung spielt keine Rolle) sein können.

Lesen Sie ebenfalls den Abschnitt über Klassenkonstanten.


Magische Konstanten

PHP stellt jedem Skript zur Laufzeit eine Vielzahl von vordefinierten Konstanten zur Verfügung. Viele dieser Konstanten werden jedoch von verschiedenen Erweiterungen definiert, die nur zur Verfügung stehen, wenn diese Erweiterungen selbst zur Verfügung stehen, d.h. entweder über dynamisches Laden zur Laufzeit oder Einkompilieren.

Es gibt neun magische Konstanten, die, abhängig davon, wo sie eingesetzt werden, einen unterschiedlichen Wert haben. Zum Beispiel hängt der Wert der Konstanten __LINE__ davon ab, in welcher Zeile ihres Skripts Sie diese Konstante verwenden. Alle diese "magischen" Konstanten werden während der Kompilierzeit aufgelöst, im Gegensatz zu regulären Konstanten, die während der Laufzeit aufgelöst werden. Diese besonderen Konstanten sind unabhängig von Groß-/Kleinschreibung und sind folgende:

Einige "magische" PHP-Konstanten
Name | Beschreibung
__LINE__ | Die aktuelle Zeilennummer einer Datei.
__FILE__ | Der vollständige Pfad- und Dateiname einer Datei wobei Symlinks aufgelöst wurden. Wird diese Konstante innerhalb einer nachgeladenen Datei verwendet, wird der Name dieser eingebundenen Datei zurückgegeben.
__DIR__ | Der Name des Verzeichnisses, in dem sich die Datei befindet. Wird die Konstante innerhalb eines Includes verwendet, wird das Verzeichnis der eingebundenen Datei zurückgegeben. Dies entspricht dem Verhalten von dirname(__FILE__). Der Verzeichnisname hat keinen beendenden Schrägstrich, sofern es sich nicht um das Rootverzeichnis handelt.
__FUNCTION__ | Der Name der Funktion, oder {closure} für anonyme Funktionen.
__CLASS__ | Der Name einer Klasse. Der Klassenname enthält auch den Namen des Namespaces in dem er deklariert wurde (z.B. Foo\Bar). __CLASS__ kann seit PHP 5.4 auch in Traits verwendet werden, in welchem Fall Name der Klasse welche den Trait verwendet zurückgegeben wird.
__TRAIT__ | Der Trait Name. Dieser enthält auch den Namespace in welchem der Trait definiert wurde (z.B. Foo\Bar).
__METHOD__ | Der Name der Klassenmethode.
__NAMESPACE__ | Der Name des aktuellen Namespace.
ClassName::class | Der vollständig qualifizierte Klassenname. Siehe auch ::class.

Siehe auch
get_class(),
get_object_vars(),
file_exists() und
function_exists().

Changelog

Version | Beschreibung
5.5.0 | Magische ::class Konstante hinzugefügt
5.4.0 | __TRAIT__ Konstante hinzugefügt
5.3.0 | __DIR__ und __NAMESPACE__ Konstanten hinzugefügt
5.0.0 | __METHOD__ Konstante hinzugefügt


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 zutreffendste Definition für einen Ausdruck ist "alles, was einen Wert hat".

Die grundlegendsten 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 ist ebenfalls ein Ausdruck mit dem Wert 5. Wenn alles richtig funktioniert, wird genau das passieren.

Etwas kompliziertere Beispiele für Ausdrücke sind Funktionen. Betrachten wir zum Beispiel die folgende Funktion:

<?php
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 davon ausgehen, dass die Eingabe von $c = foo() grundsätzlich dasselbe bedeutet, als würde man $c = 5 schreiben, 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 etwas.

Natürlich müssen Werte in PHP keine Integer-Zahlen sein, und oft sind sie es auch nicht. PHP unterstützt vier skalare Datentypen: integer (Ganzzahlen), float (Fließkommazahlen), string (Zeichenketten) und boolean (Wahrheitswerte). (Skalare sind Datentypen, die man, im Gegensatz zu zum Beispiel Arrays, nicht in kleinere Stücke 'brechen' kann.) PHP unterstützt auch zwei zusammengesetzte (nicht-skalare) Datentypen: Arrays und Objekte. Jeder dieser Datentypen kann Variablen zugewiesen und von Funktionen zurückgegeben werden.

PHP fasst den Begriff Ausdruck aber noch viel weiter, wie es auch andere Programmiersprachen tun. PHP ist eine ausdrucksorientierte Sprache, in dem Sinne, dass fast alles einen Ausdruck darstellt. Zurück zu dem Beispiel, mit dem wir uns bereits 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 weiterer 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 und vielen anderen Sprachen sind vermutlich mit den Notationen 'variable++' und 'variable--' vertraut. Dies sind Inkrement- und Dekrement-Operatoren. 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 liegt im Wert des Inkrement-Ausdruckes. Das Prä-Inkrement, das '++$variable' geschrieben wird, enthält als Wert den Wert der erhöhten Variable (PHP erhöht den Wert der Variablen, bevor es ihren Wert ausliest, daher der Name 'PRÄ-Inkrement'). Das Post-Inkrement, das '$variable++' geschrieben wird, enthält dagegen den ursprünglichen Wert der Variablen vor der Erhöhung (PHP erhöht den Wert der Variablen, nachdem es ihren Wert ausgelesen hat, daher der Name 'POST-Inkrement').

Ein sehr gebräuchlicher Typ von Ausdrücken sind Vergleichsausdrücke. Diese Ausdrücke geben entweder false oder true zurück. PHP unterstützt > (größer), >= (größer oder gleich), == (gleich), != (ungleich), < (kleiner), und <= (kleiner oder gleich). Die Sprache unterstützt weiterhin ein Set von absoluten Vergleichsoperatoren: === (inhalts- und typgleich) und !== (nicht inhalts- oder typgleich). Diese Ausdrücke werden meist 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 wissen bereits, dass, wenn wir $a um 1 erhöhen wollen, wir einfach '$a++' oder '++$a' schreiben können. Aber was tut man, wenn man den Wert um mehr als eins erhöhen will, z. B. um 3? Man könnte mehrere Male '$a++' schreiben, aber das ist offensichtlich weder ein effizienter noch komfortabler Weg. 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 von $a 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, wird sie auch schneller ausgeführt. Der Wert von '$a += 3' ist, wie der Wert einer regulären Zuweisung, der zugewiesene Wert. Beachten Sie, 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 '$b *= 7' (multipliziert den Wert von $b mit 7), 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:

<?php
$eins ? $zwei : $drei
?>

Wenn der Wert des ersten Sub-Ausdruckes (hier: $eins) true ist (d. h. nicht 0), dann wird der Wert des zweiten Subausdrucks (hier: $zwei) ausgewertet und ist das Ergebnis des konditionalen Ausdrucks. Andernfalls wird der dritte Subausdruck ausgewertet und dessen Wert zurückgegeben.

Das folgende Beispiel sollte das Verständnis von Prä- und Post-Inkrement und von Ausdrücken im Allgemeinen erleichtern:

<?php
function verdoppeln($i)
{
    return $i*2;
}
$b = $a = 5;        /* Weise den Variablen $a und $b den Wert 5 zu */
$c = $a++;          /* Post-Inkrement, der urspruengliche Wert von $a (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 = verdoppeln(++$e);  /* Weise $g den doppelten Wert von $e nach
                           der Erhoehung um eins zu, 2*7 = 14 to $g */
$h = $g += 10;      /* Zuerst wird $g um 10 erhöht und hat damit den Wert
                       24. Der Wert dieser Zuweisung (24) wird dann $h
                       zugewiesen, womit $h ebenfalls den Wert von 24 hat. */
?>

Einige Ausdrücke können wie Anweisungen verwendet werden. In diesem Falle hat eine Anweisung die Form 'expr ;', dies meint einen 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 Wahrheitswert 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 true oder false bedeutet. Die Konstanten true und false (case-insensitiv) sind die beiden möglichen Wahrheitswerte. Wenn nötig wird ein Ausdruck automatisch in einen Boolschen Wert konvertiert. Wenn Sie mehr darüber erfahren wollen, lesen Sie den Abschnitt über Typecasting.

PHP stellt eine vollständige und mächtige Implementierung von Ausdrücken bereit, deren vollständige Dokumentation den Rahmen dieses Manuals sprengen würde. Die obigen Beispiele sollten Ihnen einen guten Eindruck davon verschaffen, was Ausdrücke sind und wie man nützliche Ausdrücke konstruieren kann. Im Rest dieses Manuals werden wir expr schreiben, um auszudrücken, dass an dieser Stelle jeder gültige PHP-Ausdruck stehen kann.


Operatoren

Inhaltsverzeichnis

  • Operator-Rangfolge
  • Arithmetische Operatoren
  • Zuweisungsoperatoren
  • Bit-Operatoren
  • Vergleichs-Operatoren
  • Fehler-Kontroll-Operatoren
  • Operatoren zur Programmausführung
  • Inkrement- bzw. Dekrementoperatoren
  • Logische Operatoren
  • Zeichenketten-Operatoren
  • Array-Operatoren
  • Typ-Operatoren

Ein Operator ist etwas das Sie mit einem oder mehreren Werten füttern (oder Ausdrücken, um im Programmierjargon zu sprechen) und Sie erhalten als Ergebnis einen anderen Wert (damit wird diese Konstruktion selbst zu einem Ausdruck).

Operatoren können gemäß der Anzahl der Operanden, die sie erwarten, gruppiert werden. Unäre Operatoren arbeiten mit nur einem Operanden, zum Beispiel ! (der logische Negationsoperator) oder ++ (der Inkrementoperator). Binäre Operatoren arbeiten mit zwei Operanden, wie etwa die bekannten arithmetischen Operatoren + (Plus) und - (Minus), und die meisten PHP-Operatoren fallen in diese Kategorie. Schließlich gibt es einen einzigen ternären Operator, ? :, der mit drei Operanden arbeitet; dieser wird meist einfach "der ternäre Operator" genannt (obwohl er wohl richtiger bedingter Operator genannt werden könnte).

Eine vollständige Liste von PHP-Operatoren folgt im Abschnitt Operator-Rangfolge. Dieser Abschnitt erklärt weiterhin die Operator-Rangfolge und - Assoziativität, die regeln wie Ausdrücke, die mehrere unterschiedliche Operatoren enthalten, ausgewertet werden.


Operator-Rangfolge

Die Operator-Rangfolge legt fest, wie "eng" ein Operator zwei Ausdrücke miteinander verbindet. Zum Beispiel ist das Ergebnis des Ausdruckes 1 + 5 * 3 16 und nicht 18, da der Multiplikations-Operator ("*") in der Rangfolge höher steht als der Additions-Operator ("+"). Wenn nötig, können Sie Klammern setzen, um die Rangfolge der Operatoren zu beeinflussen. Zum Beispiel ergibt: (1 + 5) * 3 18.

Haben Operatoren die gleiche Rangfolge, dann entscheidet ihre Assoziativität wie die Operatoren gruppiert werden. Zum Beispiel ist "-" links-assoziativ, so dass 1 - 2 - 3 als (1 - 2) - 3 gruppiert und zu -4 ausgewertet wird. Andererseits ist "=" rechts-assoziativ, so dass $a = $b = $c als $a = ($b = $c) gruppiert wird.

Operatoren gleicher Rangfolge, die nicht-assoziativ sind, können nicht nebeneinander verwendet werden; beispielsweise ist 1 < 2 > 1 in PHP nicht erlaubt. Der Ausdruck 1 <= 1 == 1 ist allerdings erlaubt, weil der == Operator eine kleinere Rangfolge als der < Operator hat.

Die Verwendung von Klammern, auch wenn sie nicht unbedingt erforderlich sind, kann oft die Lesbarkeit des Codes verbessern, indem explizit gruppiert wird, statt sich auf die implizite Operator-Rangfolge und -Assoziativität zu verlassen.

Die folgende Tabelle zeigt die Rangfolge der Operatoren, oben steht der Operator mit dem höchsten Rang. Operatoren in derselben Zeile haben die gleiche Rangfolge, so dass ihre Assoziativität die Gruppierung entscheidet.

Operator-Rangfolge
Assoziativität | Operator | Additional Information
(n. z.) | clone new | clone und new
rechts | ** | Arithmetik
(n. z.) | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | Typen und Inkrement/Dekrement
left | instanceof | Typen
(n. z.) | ! | Logik
links | * / % | Arithmetik
+ - . | Arithmetik und Zeichenketten
links | << >> | Bitoperatoren
nicht-assoziativ | < <= > >= | Vergleiche
nicht-assoziativ | == != === !== <> <=> | Vergleiche
links | & | Bitoperatoren und Referenzen
links | ^ | Bitoperatoren
links | | | Bitoperatoren
links | && | Logik
links | || | Logik
rechts | ?? | NULL-Zusammenfügungsoperator
links | ? : | ternärer Operator
rechts | = += -= *= **= /= .= %= &= |= ^= <<= >>= ??= | Zuweisung
(n. z.) | yield from | yield from
(n. z.) | yield | yield
(n. z.) | print | print
links | and | Logik
links | xor | Logik
links | or | Logik

Beispiel #1 Assoziativität

<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
// die Assoziativität des ternären Operators ist anders als bei C/C++
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2

$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
?>

Operator-Rangfolge und -Assoziativität bestimmen nur wie Ausdrücke gruppiert werden, aber nicht die Auswertungsreihenfolge. PHP legt (im Allgemeinen) nicht fest, in welcher Reihenfolge ein Ausdruck ausgewertet wird, und Code, der eine bestimmte Auswertungsreihenfolge erwartet, sollte vermieden werden, denn das Verhalten kann sich von Version zu Version ändern, und auch vom umgebenden Code abhängen.

Beispiel #2 Nicht definierte Auswertungsreihenfolge

<?php
$a = 1;
echo $a + $a++; // gibt entweder 2 oder 3 aus

$i = 1;
$array[$i] = $i++; // der Index ist entweder 1 oder 2
?>

Beispiel #3 +, - und . haben dieselbe Rangfolge

<?php
$x = 4;
// diese Zeile könnte eine unerwartete Ausgabe produzieren:
echo "x minus 1 ist gleich " . $x-1 . ", hoffe ich jedenfalls\n";
// da es wie diese Zeile ausgewertet wird:
echo (("x minus 1 ist gleich " . $x) - 1) . ", hoffe ich jedenfalls\n";
// die gewünschte Rangfolge kann durch die Verwendung von Klammern erzwungen werden:
echo "x minus 1 ist gleich " . ($x-1) . ", hoffe ich jedenfalls\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

-1, hoffe ich jedenfalls
-1, hoffe ich jedenfalls
x minus 1 ist gleich 3, hoffe ich jedenfalls

Hinweis:

Obwohl = einen niedrigeren Rang als die meisten anderen Operatoren hat, erlaubt PHP dennoch Ausdrücke wie den folgenden: if (!$a = foo()); in diesem Fall wird der Rückgabewert von foo() der Variablen $a zugewiesen.


Arithmetische Operatoren

Erinnern Sie sich noch an die Grundrechenarten aus der Schule? Die arithmetischen Operatoren funktionieren genauso:

Arithmetische Operatoren
Beispiel | Name | Ergebnis
+$a | Identität | Umwandlung von $a nach int oder float wie angebracht.
-$a | Negation | Gegenzahl von $a.
$a + $b | Addition | Summe von $aa 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.
$a ** $b | Potenz | $b-te Potenz von $a. (von PHP 5.6 an)

Der Divisionsoperator ("/") gibt einen Fließkommawert zurück, es sei denn beide Operanden sind Ganzzahlen (oder Zeichenketten, die in Ganzzahlen umgewandelt werden), und die Zahlen können glatt geteilt werden; in diesem Fall wird eine Ganzzahl zurückgegeben. Für Ganzzahldivision siehe intdiv().

Operanden des Modulusoperators werden vor der Verarbeitung in Ganzzahlen umgewandelt (indem die Nachkommastellen entfernt werden). Für den Fließkommazahlen-Modulus ist fmod() verfügbar.

Das Ergebnis des Modulusoperators % hat dasselbe Vorzeichen wie der Dividend, d.h. das Ergebnis von $a % $b hat dasselbe Vorzeichen wie $a. Zum Beispiel:

<?php

echo (5 % 3)."\n";           // gibt 2 aus
echo (5 % -3)."\n";          // gibt 2 aus
echo (-5 % 3)."\n";          // gibt -2 aus
echo (-5 % -3)."\n";         // gibt -2 aus

?>

Siehe auch im Handbuch das Kapitel über Mathematische Funktionen.


Zuweisungsoperatoren

Der einfachste Zuweisungsoperator ist "=". Wahrscheinlich kommt man als erstes auf die Idee, ihn mit "ist gleich" zu bezeichnen. Das ist falsch. In Wirklichkeit bedeutet er, dass dem linken Operanden der Wert des Ausdrucks auf der rechten Seite zugewiesen wird (man müsste ihn also mit "wird gesetzt auf den Wert von" übersetzen).

Der Wert eines Zuweisungs-Ausdruckes ist der zugewiesene Wert. D.h. der Wert des Ausdruckes "$a = 3" ist 3. Das erlaubt es, einige raffinierte Dinge anzustellen:

<?php

$a = ($b = 4) + 5; // $a ist nun gleich 9 und $b wurde auf den Wert 4 gesetzt.

?>

Zusätzlich zu dem oben vorgestellten Zuweisungsoperator "=" gibt es "kombinierte Operatoren" für alle binären, arithmetischen, Array-Vereinigung- und String-Operatoren, die es erlauben, den Wert einer Variablen in einem Ausdruck zu benutzen, und dieser anschließend das Ergebnis des Ausdrucks als neuen Wert zuzuweisen. Zum Beispiel:

<?php

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

Man beachte, dass die Zuweisung nur den Wert der Ursprungsvariable der neuen Variable zuweist (Zuweisung als Wert, sie "kopiert"), weshalb sich Änderungen an der einen Variable nicht auf die andere auswirken werden. Das kann wichtig sein, wenn man ein großes Array o. ä. in einer Schleife kopieren muss.

Eine Ausnahme vom üblichen Wertzuweisungsverhalten in PHP stellen Objekte (object) dar, die per Referenz zugewiesen werden. Objekte können mit dem clone Schlüsselwort explizit kopiert werden.

Referenzzuweisung

Referenzzuweisung wird ebenfalls unterstützt, unter Verwendung der "$var = &$othervar;" Syntax. Referenzzuweisung bedeutet, dass beide Variablen schließlich auf dieselben Daten zeigen, und nichts kopiert wurde.

Beispiel #1 Referenzzuweisung

<?php
$a = 3;
$b = &$a; // $b ist eine Referenz auf $a

print "$a\n"; // gibt 3 aus
print "$b\n"; // gibt 3 aus

$a = 4; // ändere $a

print "$a\n"; // gibt 4 aus
print "$b\n"; // gibt ebenfalls 4 aus, da $b eine Referenz auf $a ist, das
              // geändert wurde
?>

Der new-Operator gibt automatisch eine Referenz zurück, sodass das Zuweisen des Ergebnisses von new per Referenz von PHP 7.0.0 an nicht erlaubt ist, von PHP 5.3.0 an einen Fehler der Stufe E_DEPRECATED, und in früheren Version einen Fehler der Stufe E_STRICT, auslöst.

Beispielsweise wird folgender Code einen Fehler oder eine Warnung auslösen:

<?php
class C {}

$o = &new C;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

Parse error: syntax error, unexpected 'new' (T_NEW) in …

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.3:

Deprecated: Assigning the return value of new by reference is deprecated in …

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

Strict Standards: Assigning the return value of new by reference is deprecated in …

Weitere Informationen zu Referenzen und ihren Anwendungsmöglichkeiten sind dem Handbuch-Abschnitt Referenzen erklärt zu entnehmen.

Arithmetische Zuweisungsoperatoren

Beispiel | Entsprechung | Operation
$a += $b | $a = $a + b | Addition
$a -= $b | $a = $a - $b | Subtraktion
$a *= $b | $a = $a * $b | Multiplikation
$a /= $b | $a = $a / $b | Division
$a %= $b | $a = $a % $b | Modulus

Bit-Zuweisungsoperatoren

Beispiel | Entsprechung | Operation
$a &= $b | $a = $a & $b | Bit-Und
$a |= $b | $a = $a | $b | Bit-Oder
$a ^= $b | $a = $a ^ $b | Bit-Xor
$a <<= $b | $a = $a << $b | Linksverschiebung
$a >>= $b | $a = $a >> $b | Rechtsverschiebung

Andere Zuweisungspperatoren

Beispiel | Entsprechung | Operation
$a .= $b | $a = $a . $b | Stringverknüpfung
$a ??= $b | $a = $a ?? $b | Null-Zusammenführungsoperator

See also the manual sections on arithmetic operators, bitwise operators, string operators, and null coalescing operator.


Bit-Operatoren

Bit-Operatoren erlauben es die Prüfung und Manipulation von bestimmten Bits in einem Integer.

Bit-Operatoren
Beispiel | Name | Ergebnis
$a & $b | Und | Bits, die in $a und $b gesetzt sind, werden gesetzt.
$a | $b | Oder | Bits, die in $a oder $b gesetzt sind, werden gesetzt.
$a ^ $b | Entweder oder (Xor) | Bits, die entweder in $a oder $b, jedoch nicht in beiden gesetzt sind, werden gesetzt.
~ $a | Nicht | Bits, die in $a nicht gesetzt sind, werden gesetzt, und umgekehrt.
$a << $b | Nach links verschieben | Verschiebung der Bits von $a um $b Stellen nach links (jede Stelle entspricht einer Mulitplikation mit zwei).
$a >> $b | Nach rechts verschieben | Verschiebung der Bits von $a um $b Stellen nach rechts (jede Stelle entspricht einer Division durch zwei).

Bit-Verschiebungen in PHP sind arithmetisch. Bits, die an einem der Enden herausgeschoben werden, werden verworfen. Bei Links-Verschiebungen werden von rechts Nullen hereingeschoben, während das Vorzeichenbit links herausgeschoben wird, was bedeutet, dass das Vorzeichen des Operanden nicht erhalten bleibt. Bei Rechts-Verschiebungen werden Kopien des Vorzeichenbits von links hereingeschoben, so dass das Vorzeichen des Operand erhalten bleibt.

Klammern sind zu verwenden, um die gewünschte Rangfolge sicherzustellen. Beispielsweise wird bei $a & $b == true zunächst der Vergleich ausgewertet, und erst dann das Bit-Und, während bei ($a & $b) == true zunächst das Bit-Und, und erst dann der Vergleich ausgewertet wird.

Sind beide Operanden der &, | und ^ Operatoren Zeichenketten, dann wird die Operation auf den ASCII-Werten der Zeichen der Zeichenketten durchgeführt, und das Ergebnis ist wiederum eine Zeichenkette. In allen anderen Fällen werden beide Operanden nach Integer umgewandelt, und das Ergebnis ist eine Ganzzahl.

Ist der Operand des ~ Operators eine Zeichenkette, dann wird die Operation auf den ASCII-Werten der Zeichen der Zeichenkette durchgeführt, Und das Ergebnis ist wiederum eine Zeichenkette. Andernfalls werden Operand und Ergebnis als Ganzzahl behandelt.

Beide Operanden und das Ergebnis der << und >> Operatoren werden immer als Ganzzahl behandelt.

Die error_reporting ini-Einstellung von PHP verwendet Bitwerte, was die
realitätsnahe Demonstration des Ausschaltens einzelner Bits bietet. Um alle
Fehler außer Hinweisen anzuzeigen, weist die php.ini Datei an folgendes zu tun:
E_ALL & ~E_NOTICE

Dies funktioniert, indem mit E_ALL begonnen wird:
00000000000000000111011111111111
Dann wird der Wert von E_NOTICE genommen...
00000000000000000000000000001000
... und dieser per ~ invertiert:
11111111111111111111111111110111
Schließlich wird UND (&) verwendet, um die Bits zu ermitteln, die in
beiden Werten gesetzt sind:
00000000000000000111011111110111

Eine andere Möglichkeit dies zu bewerkstelligen, ist XOR (^)
zu verwenden, um diejenigen Bits zu finden, die nur in einem der beiden Werte
gesetzt sind:
E_ALL ^ E_NOTICE

error_reporting kann ebenfalls verwendet werden, um zu zeigen, wie Bits gesetzt
werden. Auf folgende Weise werden nur Fehler und behebbare Fehler angezeigt:
E_ERROR | E_RECOVERABLE_ERROR

Dieser Vorgang kombiniert E_ERROR
00000000000000000000000000000001
und
00000000000000000001000000000000
unter Verwendung des ODER (|) Operators
um die Bits zu ermitteln, die in einem oder beiden Werten gesetzt sind:
00000000000000000001000000000001

Beispiel #1 Bitweise UND, ODER und XODER Operationen mit Ganzzahlen

<?php
/*
 * Der erste Abschnitt kann ignoriert werden;
 * er dient nur zu Formatierungszwecken, um die Ausgabe deutlicher zu machen.
 */

$format = '(%1$2d = %1$04b) = (%2$2d = %2$04b)'
        . ' %3$s (%4$2d = %4$04b)' . "\n";

echo <<<EOH
 ---------     ---------  -- ---------
 Ergebnis      Wert 1     Op Wert 2
 ---------     ---------  -- ---------
EOH;

/*
 * Hier kommen die Beispiele.
 */

$values = array(0, 1, 2, 4, 8);
$test = 1 + 4;

echo "\n Bitweises UND \n";
foreach ($values as $value) {
    $result = $value & $test;
    printf($format, $result, $value, '&', $test);
}

echo "\n Bitweises einschließendes ODER \n";
foreach ($values as $value) {
    $result = $value | $test;
    printf($format, $result, $value, '|', $test);
}

echo "\n Bitweises ausschließendes ODER (XODER) \n";
foreach ($values as $value) {
    $result = $value ^ $test;
    printf($format, $result, $value, '^', $test);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

 ---------     ---------  -- ---------
 Ergebnis      Wert 1     Op Wert 2
 ---------     ---------  -- ---------
 Bitweises UND
( 0 = 0000) = ( 0 = 0000) & ( 5 = 0101)
( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101)
( 0 = 0000) = ( 2 = 0010) & ( 5 = 0101)
( 4 = 0100) = ( 4 = 0100) & ( 5 = 0101)
( 0 = 0000) = ( 8 = 1000) & ( 5 = 0101)

 Bitweises einschließendes ODER
( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101)
( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101)
( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) | ( 5 = 0101)

 Bitweises ausschließendes ODER (XODER)
( 5 = 0101) = ( 0 = 0000) ^ ( 5 = 0101)
( 4 = 0100) = ( 1 = 0001) ^ ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) ^ ( 5 = 0101)
( 1 = 0001) = ( 4 = 0100) ^ ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) ^ ( 5 = 0101)

Beispiel #2 Bitweise XODER Operationen mit Zeichenketten

<?php
echo 12 ^ 9; // Gibt '5' aus

echo "12" ^ "9"; // Gibt das Backspace-Zeichen (ASCII 8) aus
                 // ('1' (ASCII 49)) ^ ('9' (ASCII 57)) = #8

echo "hallo" ^ "hello"; // Gibt die ASCII-Werte #0 #4 #0 #0 #0 aus
                        // 'a' ^ 'e' = #4

echo 2 ^ "3"; // Gibt 1 aus
              // 2 ^ ((int)"3") == 1

echo "2" ^ 3; // Gibt 1 aus
              // ((int)"2") ^ 3 == 1
?>

Beispiel #3 Bit-Verschiebung mit Ganzzahlen

<?php
/*
 * Hier kommen die Beispiele.
 */

echo "\n--- RECHTSVERSCHIEBUNG MIT POSITIVEN GANZZAHLEN ---\n";

$val = 4;
$places = 1;
$res = $val >> $places;
p($res, $val, '>>', $places, 'Kopie des Vorzeichenbits wird links hereingeschoben');

$val = 4;
$places = 2;
$res = $val >> $places;
p($res, $val, '>>', $places);

$val = 4;
$places = 3;
$res = $val >> $places;
p($res, $val, '>>', $places, 'Bits werden rechts herausgeschoben');

$val = 4;
$places = 4;
$res = $val >> $places;
p($res, $val, '>>', $places, 'dasselbe Ergebnis wie oben; man kann nicht über 0 hinaus verschieben');

echo "\n--- RECHTSVERSCHIEBUNG MIT NEGATIVEN GANZZAHLEN ---\n";

$val = -4;
$places = 1;
$res = $val >> $places;
p($res, $val, '>>', $places, 'Kopie des Vorzeichenbits wird links hereingeschoben');

$val = -4;
$places = 2;
$res = $val >> $places;
p($res, $val, '>>', $places, 'Bits werden rechts herausgeschoben');

$val = -4;
$places = 3;
$res = $val >> $places;
p($res, $val, '>>', $places, 'dasselbe Ergebnis wie oben; man kann nicht über -1 hinaus verschieben');

echo "\n--- LINKSSVERSCHIEBUNG MIT POSITIVEN GANZZAHLEN ---\n";

$val = 4;
$places = 1;
$res = $val << $places;
p($res, $val, '<<', $places, 'Nullen werden rechts hereingeschoben');

$val = 4;
$places = (PHP_INT_SIZE * 8) - 4;
$res = $val << $places;
p($res, $val, '<<', $places);

$val = 4;
$places = (PHP_INT_SIZE * 8) - 3;
$res = $val << $places;
p($res, $val, '<<', $places, 'Vorzeichenbits werden herausgeschoben');

$val = 4;
$places = (PHP_INT_SIZE * 8) - 2;
$res = $val << $places;
p($res, $val, '<<', $places, 'Bits werden links herausgeschoben');

echo "\n--- LINKSVERSCHIEBUNG MIT NEGATIVEN GANZZAHLEN ---\n";

$val = -4;
$places = 1;
$res = $val << $places;
p($res, $val, '<<', $places, 'Nullen werden rechts hereingeschoben');

$val = -4;
$places = (PHP_INT_SIZE * 8) - 3;
$res = $val << $places;
p($res, $val, '<<', $places);

$val = -4;
$places = (PHP_INT_SIZE * 8) - 2;
$res = $val << $places;
p($res, $val, '<<', $places, 'Bits werden links herausgeschoben, einschließlich des Vorzeichenbits');

/*
 * Dieser Abschnitt kann ignoriert werden;
 * es handlet sich nur um Formatierung, um die Ausgabe deutlicher zu machen.
 */

function p($res, $val, $op, $places, $note = '') {
    $format = '%0' . (PHP_INT_SIZE * 8) . "b\n";

    printf("Ausdruck: %d = %d %s %d\n", $res, $val, $op, $places);

    echo " Dezimal:\n";
    printf("  Wert=%d\n", $val);
    printf("  Erg.=%d\n", $res);

    echo " Binär:\n";
    printf('  Wert=' . $format, $val);
    printf('  Erg.=' . $format, $res);

    if ($note) {
        echo " ANMERKUNG: $note\n";
    }

    echo "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe aus 32-Bit-Systemen:

--- RECHTSVERSCHIEBUNG MIT POSITIVEN GANZZAHLEN ---
Ausdruck: 2 = 4 >> 1
 Dezimal:
  Wert=4
  Erg.=2
 Binär:
  Wert=00000000000000000000000000000100
  Erg.=00000000000000000000000000000010
 ANMERKUNG: Kopie des Vorzeichenbits wird links hereingeschoben

Ausdruck: 1 = 4 >> 2
 Dezimal:
  Wert=4
  Erg.=1
 Binär:
  Wert=00000000000000000000000000000100
  Erg.=00000000000000000000000000000001

Ausdruck: 0 = 4 >> 3
 Dezimal:
  Wert=4
  Erg.=0
 Binär:
  Wert=00000000000000000000000000000100
  Erg.=00000000000000000000000000000000
 ANMERKUNG: Bits werden rechts herausgeschoben

Ausdruck: 0 = 4 >> 4
 Dezimal:
  Wert=4
  Erg.=0
 Binär:
  Wert=00000000000000000000000000000100
  Erg.=00000000000000000000000000000000
 ANMERKUNG: dasselbe Ergebnis wie oben; man kann nicht über 0 hinaus verschieben

--- RECHTSVERSCHIEBUNG MIT NEGATIVEN GANZZAHLEN ---
Ausdruck: -2 = -4 >> 1
 Dezimal:
  Wert=-4
  Erg.=-2
 Binär:
  Wert=11111111111111111111111111111100
  Erg.=11111111111111111111111111111110
 ANMERKUNG: Kopie des Vorzeichenbits wird links hereingeschoben

Ausdruck: -1 = -4 >> 2
 Dezimal:
  Wert=-4
  Erg.=-1
 Binär:
  Wert=11111111111111111111111111111100
  Erg.=11111111111111111111111111111111
 ANMERKUNG: Bits werden rechts herausgeschoben

Ausdruck: -1 = -4 >> 3
 Dezimal:
  Wert=-4
  Erg.=-1
 Binär:
  Wert=11111111111111111111111111111100
  Erg.=11111111111111111111111111111111
 ANMERKUNG: dasselbe Ergebnis wie oben; man kann nicht über -1 hinaus verschieben

--- LINKSSVERSCHIEBUNG MIT POSITIVEN GANZZAHLEN ---
Ausdruck: 8 = 4 << 1
 Dezimal:
  Wert=4
  Erg.=8
 Binär:
  Wert=00000000000000000000000000000100
  Erg.=00000000000000000000000000001000
 ANMERKUNG: Nullen werden rechts hereingeschoben

Ausdruck: 1073741824 = 4 << 28
 Dezimal:
  Wert=4
  Erg.=1073741824
 Binär:
  Wert=00000000000000000000000000000100
  Erg.=01000000000000000000000000000000

Ausdruck: -2147483648 = 4 << 29
 Dezimal:
  Wert=4
  Erg.=-2147483648
 Binär:
  Wert=00000000000000000000000000000100
  Erg.=10000000000000000000000000000000
 ANMERKUNG: Vorzeichenbits werden herausgeschoben

Ausdruck: 0 = 4 << 30
 Dezimal:
  Wert=4
  Erg.=0
 Binär:
  Wert=00000000000000000000000000000100
  Erg.=00000000000000000000000000000000
 ANMERKUNG: Bits werden links herausgeschoben

--- LINKSVERSCHIEBUNG MIT NEGATIVEN GANZZAHLEN ---
Ausdruck: -8 = -4 << 1
 Dezimal:
  Wert=-4
  Erg.=-8
 Binär:
  Wert=11111111111111111111111111111100
  Erg.=11111111111111111111111111111000
 ANMERKUNG: Nullen werden rechts hereingeschoben

Ausdruck: -2147483648 = -4 << 29
 Dezimal:
  Wert=-4
  Erg.=-2147483648
 Binär:
  Wert=11111111111111111111111111111100
  Erg.=10000000000000000000000000000000

Ausdruck: 0 = -4 << 30
 Dezimal:
  Wert=-4
  Erg.=0
 Binär:
  Wert=11111111111111111111111111111100
  Erg.=00000000000000000000000000000000
 ANMERKUNG: Bits werden links herausgeschoben, einschließlich des Vorzeichenbits

Das oben gezeigte Beispiel erzeugt folgende Ausgabe aus 64-Bit-Systemen:

--- RECHTSVERSCHIEBUNG MIT POSITIVEN GANZZAHLEN ---
Ausdruck: 2 = 4 >> 1
 Dezimal:
  Wert=4
  Erg.=2
 Binär:
  Wert=0000000000000000000000000000000000000000000000000000000000000100
  Erg.=0000000000000000000000000000000000000000000000000000000000000010
 ANMERKUNG: Kopie des Vorzeichenbits wird links hereingeschoben

Ausdruck: 1 = 4 >> 2
 Dezimal:
  Wert=4
  Erg.=1
 Binär:
  Wert=0000000000000000000000000000000000000000000000000000000000000100
  Erg.=0000000000000000000000000000000000000000000000000000000000000001

Ausdruck: 0 = 4 >> 3
 Dezimal:
  Wert=4
  Erg.=0
 Binär:
  Wert=0000000000000000000000000000000000000000000000000000000000000100
  Erg.=0000000000000000000000000000000000000000000000000000000000000000
 ANMERKUNG: Bits werden rechts herausgeschoben

Ausdruck: 0 = 4 >> 4
 Dezimal:
  Wert=4
  Erg.=0
 Binär:
  Wert=0000000000000000000000000000000000000000000000000000000000000100
  Erg.=0000000000000000000000000000000000000000000000000000000000000000
 ANMERKUNG: dasselbe Ergebnis wie oben; man kann nicht über 0 hinaus verschieben

--- RECHTSVERSCHIEBUNG MIT NEGATIVEN GANZZAHLEN ---
Ausdruck: -2 = -4 >> 1
 Dezimal:
  Wert=-4
  Erg.=-2
 Binär:
  Wert=1111111111111111111111111111111111111111111111111111111111111100
  Erg.=1111111111111111111111111111111111111111111111111111111111111110
 ANMERKUNG: Kopie des Vorzeichenbits wird links hereingeschoben

Ausdruck: -1 = -4 >> 2
 Dezimal:
  Wert=-4
  Erg.=-1
 Binär:
  Wert=1111111111111111111111111111111111111111111111111111111111111100
  Erg.=1111111111111111111111111111111111111111111111111111111111111111
 ANMERKUNG: Bits werden rechts herausgeschoben

Ausdruck: -1 = -4 >> 3
 Dezimal:
  Wert=-4
  Erg.=-1
 Binär:
  Wert=1111111111111111111111111111111111111111111111111111111111111100
  Erg.=1111111111111111111111111111111111111111111111111111111111111111
 ANMERKUNG: dasselbe Ergebnis wie oben; man kann nicht über -1 hinaus verschieben

--- LINKSSVERSCHIEBUNG MIT POSITIVEN GANZZAHLEN ---
Ausdruck: 8 = 4 << 1
 Dezimal:
  Wert=4
  Erg.=8
 Binär:
  Wert=0000000000000000000000000000000000000000000000000000000000000100
  Erg.=0000000000000000000000000000000000000000000000000000000000001000
 ANMERKUNG: Nullen werden rechts hereingeschoben

Ausdruck: 4611686018427387904 = 4 << 60
 Dezimal:
  Wert=4
  Erg.=4611686018427387904
 Binär:
  Wert=0000000000000000000000000000000000000000000000000000000000000100
  Erg.=0100000000000000000000000000000000000000000000000000000000000000

Ausdruck: -9223372036854775808 = 4 << 61
 Dezimal:
  Wert=4
  Erg.=-9223372036854775808
 Binär:
  Wert=0000000000000000000000000000000000000000000000000000000000000100
  Erg.=1000000000000000000000000000000000000000000000000000000000000000
 NANMERKUNGTE: Vorzeichenbits werden herausgeschoben

Ausdruck: 0 = 4 << 62
 Dezimal:
  Wert=4
  Erg.=0
 Binär:
  Wert=0000000000000000000000000000000000000000000000000000000000000100
  Erg.=0000000000000000000000000000000000000000000000000000000000000000
 ANMERKUNG: Bits werden links herausgeschoben

--- LINKSVERSCHIEBUNG MIT NEGATIVEN GANZZAHLEN ---
Ausdruck: -8 = -4 << 1
 Dezimal:
  Wert=-4
  Erg.=-8
 Binär:
  Wert=1111111111111111111111111111111111111111111111111111111111111100
  Erg.=1111111111111111111111111111111111111111111111111111111111111000
 ANMERKUNG: Nullen werden rechts hereingeschoben

Ausdruck: -9223372036854775808 = -4 << 61
 Dezimal:
  Wert=-4
  Erg.=-9223372036854775808
 Binär:
  Wert=1111111111111111111111111111111111111111111111111111111111111100
  Erg.=1000000000000000000000000000000000000000000000000000000000000000

Ausdruck: 0 = -4 << 62
 Dezimal:
  Wert=-4
  Erg.=0
 Binär:
  Wert=1111111111111111111111111111111111111111111111111111111111111100
  Erg.=0000000000000000000000000000000000000000000000000000000000000000
 ANMERKUNG: Bits werden links herausgeschoben, einschließlich des Vorzeichenbits

Warnung

Vor PHP 7.0.0 war das Verhalten von Bitverschiebungen um Werte größer oder gleich der Breite eines long integer oder um negative Zahlen nicht definiert. Anders ausgedrückt: wenn PHP 5.x verwendet wird, dürfen nicht mehr als um 31 Bits auf einem 32-bit System, und nicht mehr als um 63 Bits auf einem 64-bit System verschoben werden.

Für die bitweise Manipulation von Zahlen größer als PHP_INT_MAX, sind die Funktion der GMP Extension zu verwenden.

Siehe auch
pack(),
unpack(),
gmp_and(),
gmp_or(),
gmp_xor(),
gmp_testbit(),
gmp_clrbit()


Vergleichs-Operatoren

Vergleichs-Operatoren erlauben es – wie der Name schon sagt – zwei Werte zu vergleichen. Wenn Sie an Beispielen verschiedener auf Typen bezogener Vergleiche interessiert sind, können Sie sich die PHP Typvergleich-Tabellen anschauen.

Vergleichsoperatoren
Beispiel | Name | Ergebnis
$a == $b | Gleich | Gibt true zurück, wenn nach der Typ-Jonglage $a gleich $b ist.
$a === $b | Identisch | Gibt true zurück, wenn $a gleich $b ist, und beide denselben Typ haben.
$a != $b | Ungleich | Gibt true zurück, wenn nach der Typ-Jonglage $a nicht gleich $b ist.
$a <> $b | Ungleich | Gibt true zurück, wenn nach der Typ-Jonglage $a nicht gleich $b ist.
$a !== $b | Nicht identisch | Gibt true zurück, wenn $a nicht gleich $b ist, oder wenn beide nicht denselben Typ haben.
$a < $b | Kleiner als | Gibt true zurück, wenn $a kleiner als $b ist.
$a > $b | Größer als | Gibt true zurück, wenn $a größer als $b ist.
$a <= $b | Kleiner gleich | Gibt true zurück, wenn $a kleiner oder gleich $b ist.
$a >= $b | Größer Gleich | Gibt true zurück, wenn $a größer oder gleich $b ist.
$a <=> $b | Raumschiff | Eine Ganzzahl (integer) kleiner als, gleich oder größer als 0, wenn $a kleiner als, gleich bzw. größer als $b ist. Verfügbar von PHP 7 an.

Wenn eine Zahl mit einer Zeichenkette verglichen wird, oder der Vergleich numerische Zeichenketten einschließt, dann wird jede Zeichenkette in eine Zahl umgewandelt, und der Vergleich wird numerisch durchgeführt. Diese Regeln gelten ebenfalls für die switch Anweisung. Die Typumwandlung wird nicht durchgeführt, wenn der Vergleichsoperator === oder !== ist, da diese den Typ als auch den Wert vergleichen.

<?php
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> true

switch ("a") {
case 0:
    echo "0";
    break;
case "a": // wird niemals erreicht, weil "a" bereits mit 0 übereinstimmte
    echo "a";
    break;
}
?>
<?php
// Ganzzahlen
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Fließkommazahlen
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Zeichenketten
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1

// Arrays
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1

// Objekte
$a = (object) ["a" => "b"];
$b = (object) ["a" => "b"];
echo $a <=> $b; // 0

$a = (object) ["a" => "b"];
$b = (object) ["a" => "c"];
echo $a <=> $b; // -1

$a = (object) ["a" => "c"];
$b = (object) ["a" => "b"];
echo $a <=> $b; // 1

// nicht nur die Werte werden verglichen; die Schlüssel müssen übereinstimmen
$a = (object) ["a" => "b"];
$b = (object) ["b" => "b"];
echo $a <=> $b; // 1

?>

Für die verschiedenen Typen wird der Vergleich gemäß der folgenden Tabelle durchgeführt (in der angegebenen Reihenfolge).

Vergleich mit verschiedenen Typen
Typ des 1. Operanden | Typ des 2. Operanden | Ergebnis
null oder string | string | Umwandlung von null nach "", dann numerischer oder lexikalischer Vergleich
bool oder null | anything | Umwandlung beider Werte nach bool, dann false < true
object | object | Eingebaute Klassen können eigene Vergleichsregeln definieren; unterschiedliche Klassen können nicht verglichen werden; für dieselben Klassen siehe Objektvergleiche
string, resource oder number | string, resource oder number | Umwandlung von Zeichenketten und Ressourcen in Zahlen, dann numerischer Vergleich
array | array | Ein Array mit weniger Elementen ist kleiner; wird ein Schlüssel vom ersten Operanden nicht im zweiten gefunden, dann sind die Arrays nicht vergleichbar; andernfalls wird Element für Element verglichen (siehe folgendes Beispiel)
object | anything | object ist immer größer
array | anything | array ist immer größer

Beispiel #1 Boolesche und Null Vergleiche

<?php
// Boolesche Werte und NULL werden immer als Boolesche Werte verglichen
var_dump(1 == TRUE);  // TRUE - dasselbe wie (bool)1 == TRUE
var_dump(0 == FALSE); // TRUE - dasselbe wie (bool)0 == FALSE
var_dump(100 < TRUE); // FALSE - dasselbe wie (bool)100 < TRUE
var_dump(-10 < FALSE);// FALSE - dasselbe wie (bool)-10 < FALSE
var_dump(min(-100, -10, NULL, 10, 100)); // NULL - (bool)NULL < (bool)-100 ist FALSE < TRUE
?>

Beispiel #2 Umschreibung von Standard-Array-Vergleichen

<?php
// Arrays werden mit den normalen Vergleichsoperatoren wie folgt verglichen
function standard_array_compare($op1, $op2)
{
    if (count($op1) < count($op2)) {
        return -1; // $op1 < $op2
    } elseif (count($op1) > count($op2)) {
        return 1; // $op1 > $op2
    }
    foreach ($op1 as $key => $val) {
        if (!array_key_exists($key, $op2)) {
            return null; // nicht vergleichbar
        } elseif ($val < $op2[$key]) {
            return -1;
        } elseif ($val > $op2[$key]) {
            return 1;
        }
    }
    return 0; // $op1 == $op2
}
?>

Siehe auch strcasecmp(), strcmp(), Array-Operatoren, und den Handbuchabschnitt über Typen.

Warnung

Vergleich von Fließkommazahlen

Aufgrund der Art wie Fließkommazahlen (float) intern dargestellt werden, sollten zwei Fließkommazahlen nicht auf Gleichheit getestet werden.

Weitere Informationen sind der Dokumantation von float zu entnehmen.

Ternärer Operator

Ein weiterer Vergleichs-Operator ist der "?:" (oder ternäre) Operator.

Beispiel #3 Zuweisen eines Standardwerts

<?php
// Beispielanwendung für den ternären Operator
$action = (empty($_POST['action'])) ? 'standard' : $_POST['action'];

// Obiges ist mit dieser if/else-Anweisung identisch
if (empty($_POST['action'])) {
    $action = 'standard';
} else {
    $action = $_POST['action'];
}
?>
Der Ausdruck (ausdr1) ? (ausdr2) : (ausdr3) wird als ausdr2 ausgewertet, wenn ausdr1 als true ausgewertet wird, und als ausdr3, wenn ausdr1 als false ausgewertet wird.

Seit PHP 5.3 kann man beim ternären Operator den mittleren Teil weglassen. Der Ausdruck (ausdr1) ?: (ausdr3) gibt ausdr1 zurück, wenn ausdr1 als true ausgewertet wird, und andernfalls ausdr3.

Hinweis: Es ist zu beachten, das die ternäre Operation ein Ausdruck ist, und nicht als Variable, sondern als Wert eines Ausdrucks ausgewertet wird. Dies ist unbedingt zu berücksichtigen, wenn eine Variable per Referenz zurückgegeben werden soll. Die Anweisung return $var == 42 ? $a : $b; in einer Funktion, die per Referenz zurückgibt, wird daher nicht funktionieren, und eine Warnung erzeugen.

Hinweis:

Die Verschachtelung von ternären Ausdrücken wird nicht empfohlen. Das Verhalten von PHP, wenn mehrere ternäre Operatoren in einer einzelnen Anweisung verwendet werden, ist ungewöhnlich:

Beispiel #4 Ungewöhnliches Verhalten des ternären Operators

<?php
// auf den ersten Blick scheint das folgende 'true' auszugeben
echo (true?'true':false?'t':'f');

// allerdings wird tatsächlich 't' ausgegeben
// das kommt daher, dass ternäre Ausdrücke von links nach rechts ausgewertet werden

// das Folgende ist eine augenfälligere Variante desselben Codes wie oben
echo ((true ? 'true' : false) ? 't' : 'f');

// hier kann man sehen, dass der erste Ausdruck zu 'true' ausgewertet wird,
// was wiederum zu (bool)true ausgewertet wird, und daher wird der Wahr-Zweig
// des zweiten ternären Ausdrucks zurückgegeben.
?>

Null-Coalescing-Operator

Weiterhin gibt es den "??" (oder Null-Coalescing) Operator, verfügbar von PHP 7 an.

Beispiel #5 Zuweisung eines Standardwerts

<?php
// Example usage for: Null Coalesce Operator
$action = $_POST['action'] ?? 'standard';

// Obiges ist mit dieser if/else-Anweisung identisch
if (isset($_POST['action'])) {
    $action = $_POST['action'];
} else {
    $action = 'standard';
}

?>
Der Ausdruck (ausdr1) ?? (ausdr2) wird zu ausdr2 ausgewertet, wenn ausdr1 null ist, und zu ausdr1 andernfalls.

Insbesondere gibt dieser Operator keinen Hinweis aus, wenn der Wert auf der linken Seite nicht existiert, genau wie isset(). Dies ist besonders für Array-Schlüssel nützlich.

Hinweis: Es ist zu beachten, das die Null-Coalescing-Operation ein Ausdruck ist, und nicht als Variable, sondern als Wert eines Ausdrucks ausgewertet wird. Dies ist unbedingt zu berücksichtigen, wenn eine Variable per Referenz zurückgegeben werden soll. Die Anweisung return $foo ?? $bar; in einer Funktion, die per Referenz zurückgibt, wird daher nicht funktionieren, und eine Warnung erzeugen.

Hinweis:

Es ist zu beachten, dass der Null-Coalescing-Operator einfach verschachtelt werden kann:

Beispiel #6 Verschachtelung des Null-Coalescing-Operator

<?php

$foo = null;
$bar = null;
$baz = 1;
$qux = 2;

echo $foo ?? $bar ?? $baz ?? $qux; // gibt 1 aus

?>


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.

Wurde ein benutzerdefinierte Fehlerbehandlungsfunktion mit set_error_handler() registriert, dann wird diese immer noch aufgerufen, aber diese benutzerdefinierte Fehlerbehandlung kann (und sollte) error_reporting() aufrufen, das 0 zurückgeben wird, wenn dem Aufruf, der den Fehler auslöste, ein @ vorangestellt war.

Alle Fehlermeldungen, die von diesem Ausdruck erzeugt werden, sind im "message" Element des Arrays, das von get_error_last() zurückgegeben wird, enthalten. Da das Ergebnis dieser Funktion sich bei jedem Fehlers ändert, so dass es möglichst früh geprüft werden sollte.

<?php
/* Beabsichtigter Dateifehler */
$my_file = @file ('nicht_vorhandene_Datei') or
    die ("Datei konnte nicht geöffnet werden: Fehler war:'" . error_get_last()['message'] . "'");

// Das funktioniert bei jedem Ausdruck, nicht nur bei Funktionen:
$value = @$cache[$key];
// erzeugt keine Notice, falls der Index $key nicht vorhanden ist.

?>

Hinweis: Der @-Operator funktioniert nur bei Ausdrücken. Eine einfache Daumenregel: wenn Sie den Wert von etwas bestimmen können, dann können Sie den @-Operator davor schreiben. Zum Beispiel können Sie ihn vor Variablen, Funktionsaufrufe und vor include setzen, vor Konstanten und so weiter. Nicht verwenden können Sie diesen Operator vor Funktions- oder Klassendefinitionen oder vor Kontrollstrukturen wie zum Beispiel if und foreach und so weiter.

Siehe auch error_reporting() und den Abschnitt über Fehlerbehandlung- und Protokollierfunktionen.

Warnung

Zum gegenwärtigen Zeitpunkt deaktiviert der "@" Fehler-Kontrolloperator die Fehlermeldungen selbst bei kritischen Fehlern, die die Ausführung eines Skripts beenden. Unter anderem bedeutet das, wenn Sie "@" einer bestimmten Funktion voranstellen, diese aber nicht zur Verfügung steht oder falsch geschrieben wurde, Ihr PHP-Skript einfach beendet wird, ohne Hinweis auf die Ursache.


Operatoren zur Programmausführung

PHP unterstützt einen Operator zur Ausführung externer Programme: Die sog. Backticks (``). Achtung: Die Backticks sind keine einfachen Anführungszeichen! PHP versucht, den Text zwischen den Backticks als Kommandozeilen-Befehl auszuführen. Die Ausgabe des aufgerufenen Programms wird zurückgegeben (d.h. wird nicht einfach ausgegeben, sondern kann einer Variablen zugewiesen werden). Die Verwendung des Backtick-Operators ist mit shell_exec() identisch.

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

Hinweis:

Der Backtick-Operator steht nicht zur Verfügung, wenn die Funktion shell_exec() deaktiviert wurde.

Hinweis:

Anders als bei einigen anderen Sprachen haben Backticks keine besondere Bedeutung, wenn sie in Zeichenketten, die in doppelten Anführungszeichen eingeschlossen sind, verwendet werden.

Siehe auch den Abschnitt über Funktionen zur Programmausführung, popen(), proc_open() und PHP auf der Kommandozeile verwenden.


Inkrement- bzw. Dekrementoperatoren

PHP unterstützt Prä- und Post-Inkrement- und Dekrementoperatoren im Stil der Programmiersprache C.

Hinweis: Die Inkrement-/Dekrement-Operatoren wirken nur auf Zahlen und Zeichenketten. Bei Arrays, Objekten, Booleans und Ressourcen wirken sie nicht. Das Dekrementieren von null Werten hat ebenfalls keine Wirkung, aber sie zu Inkrementieren ergibt 1.

Inkrement- und Dekrementoperatoren
Beispiel | Name | Auswirkung
++$a | Prä-Inkrement | Erhöht $a um eins, und gibt dann $a zurück.
$a++ | Post-Inkrement | Gibt $a zurück, und erhöht dann $a um eins.
--$a | Prä-Dekrement | Vermindert $a um eins, und gibt dann $a zurück.
$a-- | Post-Dekrement | Gibt $a zurück, und erniedrigt dann $a um eins.

Ein einfaches Beispiel-Skript:

<?php
echo "<h3>Post-Inkrement</h3>";
$a = 5;
echo "Sollte 5 sein: " . $a++ . "<br />\n";
echo "Sollte 6 sein: " . $a . "<br />\n";

echo "<h3>Pre-Inkrement</h3>";
$a = 5;
echo "Sollte 6 sein: " . ++$a . "<br />\n";
echo "Sollte 6 sein: " . $a . "<br />\n";

echo "<h3>Post-Dekrement</h3>";
$a = 5;
echo "Sollte 5 sein: " . $a-- . "<br />\n";
echo "Sollte 4 sein: " . $a . "<br />\n";

echo "<h3>Pre-Dekrement</h3>";
$a = 5;
echo "Sollte 4 sein: " . --$a . "<br />\n";
echo "Sollte 4 sein: " . $a . "<br />\n";
?>

PHP folgt bei der Behandlung arithmetischer Operationen auf Zeichenvariablen der Perl-Konvention und nicht der von C. Zum Beispiel ändert in PHP und Perl $a = 'Z'; $a++; $a zu 'AA', während a = 'Z'; a++; in C a zu '[' ändert. (Der ASCII-Wert von 'Z' ist 90, der ASCII-Wert von '[' ist 91). Es ist zu beachten, dass Zeichenvariablen inkrementiert, aber nicht dekrementiert werden können, und dass nur einfache ASCII-Buchstaben und Ziffern (a-z, A-Z, 0-9) unterstützt werden. Das Inkrementieren oder Dekrementieren anderer Zeichenvariablen hat keine Auswirkung; die ursprüngliche Zeichenkette wird nicht verändert.

Beispiel #1 Arithmetrische Operationen an Zeichenvariablen

<?php
echo '== Buchstaben ==' . PHP_EOL;
$s = 'W';
for ($n=0; $n<6; $n++) {
    echo ++$s . PHP_EOL;
}
// Ziffernzeichen verhalten sich anders
echo '== Ziffern ==' . PHP_EOL;
$d = 'A8';
for ($n=0; $n<6; $n++) {
    echo ++$d . PHP_EOL;
}
$d = 'A08';
for ($n=0; $n<6; $n++) {
    echo ++$d . PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

== Buchstaben ==
X
Y
Z
AA
AB
AC
== Ziffern ==
A9
B0
B1
B2
B3
B4
A09
A10
A11
A12
A13
A14

Das Inkrementieren oder Dekrementieren Boolescher Variablen hat keine Auswirkung.


Logische Operatoren

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

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

Beispiel #1 Logische Operatoren erklärt

<?php

// --------------------
// foo() wird nie aufgerufen werden, da die Operatoren Kurzschlussauswertung verwenden

$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());

// --------------------
// "||" hat eine höhere Rangfolge als "or"

// Das Ergebnis des Ausdrucks (false || true) wird $e zugewiesen
// Funktioniert wie: ($e = (false || true))
$e = false || true;

// Die Konstante "false" wird $f zugewiesen bevor die "or" Operation durchgeführt wird
// Funktioniert wie: (($e = false) or true)
$f = false or true;

var_dump($e, $f);

// --------------------
// "&&" hat eine höhere Rangfolge als "and"

// Das Ergebnis des Ausdrucks (true && false) wird $g zugewiesen
// Funktioniert wie: ($g = (true && false))
$g = true && false;

// Die Konstante "true" wird $h zugewiesen bevor die "and" Operation durchgeführt wird
// Funktioniert wie: (($h = true) and false)
$h = true and false;

var_dump($g, $h);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)
bool(false)
bool(true)


Zeichenketten-Operatoren

Es gibt in PHP zwei Operatoren für Zeichenketten (string). Der erste ist der Verknüpfungsoperator ('.'), dessen Rückgabewert eine zusammengesetzte Zeichenkette aus dem rechten und dem linken Argument ist. Der zweite ist der verknüpfende Zuweisungsoperator ('.='), der das Argument auf der rechten Seite an das Argument der linken Seite anhängt. Siehe Zuweisungs-Operatoren für weitere Informationen.

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

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

Siehe auch die Abschnitte über Zeichenketten und String-Funktionen.


Array-Operatoren

Array-Operatoren
Beispiel | Name | Ergebnis
$a + $b | Vereinigung | Vereinigung von $a und $b.
$a == $b | Gleichwertigkeit | true wenn $a und $b dieselben Schlüssel-/Wert-Paare enthalten.
$a === $b | Identität | true wenn $a und $b dieselben Schlüssel-/Wert-Paare in der gleichen Reihenfolge und vom selben Typ enthalten.
$a != $b | Ungleichheit | true wenn $a nicht gleich$b ist.
$a <> $b | Ungleichheit | true wenn $a nicht gleich$b ist.
$a !== $b | nicht identisch | true wenn $a nicht identisch zu $b ist.

Der + Operator hängt das rechsstehende Array an das linksstehende Array an; kommen Schlüssel in beiden Arrays vor, dann werden die Elemente des linksstehenden Arrays verwendet, und die entsprechenden Elemente des rechtstehenden Arrays werden ignoriert.

<?php
$a = array("a" => "Apfel", "b" => "Banane");
$b = array("a" =>"Birne", "b" => "Erdbeere", "c" => "Kirsche");

$c = $a + $b; // Vereinigung von $a mit $b;
echo "Vereinigung von \$a mit \$b: \n";
var_dump($c);

$c = $b + $a; // Vereinigung von $b mit $a;
echo "Vereinigung von \$b mit \$a: \n";
var_dump($c);

$a += $b; // Vereinigung von $a += $b ist $a + $b
echo "Vereinigung von \$a += \$b: \n";
var_dump($a);
?>
Dieses Skript gibt folgendes aus:
Vereinigung von $a mit $b:
array(3) {
  ["a"]=>
  string(5) "Apfel"
  ["b"]=>
  string(6) "Banane"
  ["c"]=>
  string(7) "Kirsche"
}
Vereinigung von $b mit $a:
array(3) {
  ["a"]=>
  string(4) "Birne"
  ["b"]=>
  string(8) "Erdbeere"
  ["c"]=>
  string(7) "Kirsche"
}
Vereinigung von $a += $b:
array(3) {
  ["a"] =>
  string(5) "Apfel"
  ["b"] =>
  string(6) "Banane"
  ["c"] =>
  string(6) "Kirsche"
}

Beim Vergleich werden Arrayelemente als gleich angesehen, wenn diese dieselben Schlüssel und Werte beinhalten.

Beispiel #1 Array-Vergleiche

<?php
$a = array("Apfel", "Banane");
$b = array(1 => "Banane", "0" => "Apfel");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

Siehe auch die Abschnitte über Arrays und Array-Funktionen.


Typ-Operatoren

instanceof wird dazu verwendet um festzustellen, ob ein gegebenes Objekt ein Objekt ist, das zu einer bestimmten Klasse gehört.

Beispiel #1 Die Verwendung von instanceof mit Klassen

<?php
class MyClass
{
}

class NotMyClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)

instanceof kann auch verwendet werden, um zu bestimmen, ob ein Variable ein Exemplar einer Klasse ist, die von einer Elternklasse erbt:

Beispiel #2 Verwendung von instanceof mit ererbten Klassen

<?php
class ParentClass
{
}

class MyClass extends ParentClass
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)

Um zu prüfen, ob ein Objekt nicht ein Exemplar einer Klasse ist, kann der logische nicht Operator verwendet werden.

Beispiel #3 Verwendung von instanceof, um zu prüfen, ob ein Objekt kein Exemplar einer Klasse ist

<?php
class MyClass
{
}

$a = new MyClass;
var_dump(!($a instanceof stdClass));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)

Schließlich kann instanceof auch dazu verwendet werden, um zu bestimmen, ob eine Variable ein Exemplar einer Klasse ist, die ein Interface implementiert:

Beispiel #4 Verwendung von instanceof mit Interfaces

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)

Obwohl instanceof üblicherweise mit einem Klassennamensbezeichner verwendet wird, kann es ebenfalls mit einem anderen Objekt oder einer Zeichenkettenvariablen verwendet werden:

Beispiel #5 Verwendung von instanceof mit anderen Variablen

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;
$b = new MyClass;
$c = 'MyClass';
$d = 'NotMyClass';

var_dump($a instanceof $b); // $b ist ein Exemplar der Klasse MyClass
var_dump($a instanceof $c); // $c ist die Zeichenkette 'MyClass'
var_dump($a instanceof $d); // $d ist die Zeichenkette 'NotMyClass'
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(false)

instanceof löst keinen Fehler aus, wenn die getestete Variable kein Objekt ist; es gibt dann einfach false zurück. Konstanten waren allerdings vor PHP 7.3.0 nicht erlaubt.

Beispiel #6 Verwendung von instanceof um andere Variablen zu prüfen

<?php
$a = 1;
$b = NULL;
$c = imagecreate(5, 5);
var_dump($a instanceof stdClass); // $a ist eine Ganzzahl
var_dump($b instanceof stdClass); // $b ist NULL
var_dump($c instanceof stdClass); // $c ist ein Ressource
var_dump(FALSE instanceof stdClass);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(false)
bool(false)
PHP Fatal error:  instanceof expects an object instance, constant given

Von PHP 7.3.0 an sind Konstanten auf der linken Seite des instanceof Operators erlaubt.

Beispiel #7 Verwendung von instanceof um Konstanten zu prüfen

<?php
var_dump(FALSE instanceof stdClass);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7.3:

bool(false)

Es gibt ein paar Fallstricke zu beachten. Vor PHP-Version 5.1.0 rief instanceof __autoload() auf, wenn der Klassenname nicht existierte. Zusätzliche wurde, wenn die Klasse nicht geladen werden konnte, ein fataler Fehler ausgelöst. Es ist möglich dies zu umgehen, indem eine dynamische Klassenreferenz oder eine Zeichenkettenvariable, die den Klassennamen enthält, verwendet wird:

Beispiel #8 Vermeidung von Klassennamenssuchen und fataler Fehler mit instanceof in PHP 5.0

<?php
$d = 'NotMyClass';
var_dump($a instanceof $d); // kein fataler Fehler
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)

Der instanceof Operator wurde in PHP 5 eingeführt. Davor wurde is_a() verwendet, aber is_a() wurde seither zugunsten von instanceof missbilligt. Es ist zu beachten, dass is_a() von PHP 5.3.0 nicht länger missbilligt ist.

Siehe auch get_class() und is_a().


Kontrollstrukturen

Inhaltsverzeichnis

  • Einführung
  • if
  • else
  • elseif/else if
  • Alternative Syntax für Kontrollstrukturen
  • while
  • do-while
  • for
  • foreach
  • break
  • continue
  • switch
  • match
  • declare
  • return
  • require
  • include
  • require_once
  • include_once
  • goto


Einführung

Ein PHP-Skript besteht aus einer Abfolge von Anweisungen. Eine Anweisung kann eine Zuweisung, ein Funktionsaufruf oder ein bedingte Anweisung sein oder sogar eine Anweisung die nichts tut (eine leere Anweisung). Anweisungen enden in der Regel mit einem Semikolon. Anweisungen können des Weiteren in Anweisungsgruppen zusammengefasst werden indem sie in geschweifte Klammern eingeschlossen werden. Eine Anweisungsgruppe ist ebenfalls wieder eine Anweisung. Die verschiedenen Anweisungstypen werden in diesem Kapitel beschrieben.

Siehe auch

Die Folgenden werden ebenfalls als Sprachkonstrukte angesehen, auch wenn sie im Handbuch als Funktionen aufgeführt werden.

  • list()
  • array()
  • echo
  • eval()


if

(PHP 4, PHP 5, PHP 7, PHP 8)

Das if-Konstrukt ist eines der wichtigsten Features vieler Programmiersprachen, so auch in PHP, denn es ermöglicht die bedingte Ausführung von Kodefragmenten. PHP bietet eine if-Anweisung, die der in C ähnelt:

if (ausdruck)
  anweisung

ausdruck wird wie im Abschnitt über Ausdrücke beschrieben zu einem booleschen Wahrheitswert ausgewertet. Evaluiert ausdruck zu true so wird anweisung von PHP ausgeführt, anderenfalls wird es ignoriert. Weitere Informationen dazu welche Werte als true oder false ausgewertet werden, dem Abschnitt 'Umwandlung zu boolean' zu entnehmen.

Das folgende Beispiel würde a ist größer als b ausgeben, wenn $a größer als $b ist:

<?php
if ($a > $b)
  echo "a ist größer als b";
?>

Oft werden Sie mehr als eine Anweisung bedingt ausführen wollen. Dazu ist es natürlich nicht notwendig jede Anweisung mit einer eigenen if-Klausel zu versehen. Statt dessen können mehrere Anweisung zu einer Anweisungsgruppe zusammengefasst werden. So würde z.B. der folgende Programmcode a ist größer als b ausgeben, falls $a größer als $b ist, und den Wert von $a an $b zuweisen:

<?php
if ($a > $b) {
  echo "a ist größer als b";
  $b = $a;
}
?>

If-Anweisungen können beliebig oft ineinander verschachtelt werden, was vollständige Flexibilität für die bedingte Ausführung der verschiedenen Teile des Programs bietet.


else

(PHP 4, PHP 5, PHP 7, PHP 8)

Oft will man eine Anweisung ausführen, wenn eine bestimmte Bedingung erfüllt ist, und eine andere Anweisung, wenn dies nicht der Fall ist. Dies ist der Einsatzzweck von else. else erweitert eine if-Anweisung um eine weitere Anweisung, die dann ausgeführt werden soll, wenn der Ausdruck in der if-Anweisung zu false ausgewertet wird. Der folgende Programmcode würde z.B. a ist größer als b ausgeben, wenn $a größer als b ist, ansonsten a ist NICHT größer als b

<?php
if ($a > $b) {
  echo "a ist größer als b";
} else {
  echo "a ist NICHT größer als b";
}
?>
Die else Anweisung wird nur dann ausgeführt wenn der if Ausdruck und alle etwaigen elseif als false ausgewertet wurden (siehe auch elseif).


elseif/else if

(PHP 4, PHP 5, PHP 7, PHP 8)

elseif, wie der Name schon sagt, ist eine Kombination aus if und else. Wie else erweitert es eine if-Kontrollstruktur, um alternative Befehle auszuführen, wenn die ursprüngliche if-Bedingung nicht zutrifft. Im Gegensatz zu else werden die Alternativ-Befehle aber nur ausgeführt, wenn die elseif-Bedingung zutrifft. Der folgende Beispielcode gibt a ist größer als b, a ist gleich groß wie b oder a ist kleiner als b aus:

<?php
if ($a > $b) {
    echo "a ist größer als b";
} elseif ($a == $b) {
    echo "a ist gleich groß wie b";
} else {
    echo "a ist kleiner als b";
}
?>

Innerhalb einer if-Kontrollstruktur können mehrere elseif-Strukturen benutzt werden. Die erste, deren Bedingung zutrifft, wird ausgeführt. In PHP kann ebenfalls als Schlüsselwort 'else if' (in zwei Wörtern) benutzt werden, was sich komplett identisch wie 'elseif' (in einem Wort) verhält. Die syntaktische Bedeutung ist geringfügig anders (ähnlich wie in C), aber das Ergebnis ist, dass beide sich exakt genauso verhalten.

Der elseif-Teil wird nur ausgeführt, wenn die vorhergehende if-Bedingung und alle vorhergehenden elseif-Bedingungen nicht zutrafen (false) und die aktuelle elseif-Bedingung zutrifft (true).

Hinweis: Achtung: elseif und else if verhalten sich nur gleich, wenn geschwungene Klammern verwendet werden, wie im obigen Beispiel. Wenn ein Doppelpunkt zur Definition der if/elseif-Bedingungen benutzt wird, darf else if nicht in zwei Wörtern geschrieben werden, oder PHP wird das Skript mit einem Parse Error abbrechen.

<?php

/* Falsch: */
if ($a > $b):
    echo $a." ist größer als ".$b;
else if ($a == $b): // Funktioniert nicht.
    echo "Die vorige Zeile wird einen Parse Error verursachen.";
endif;

/* Richtig: */
if ($a > $b):
    echo $a." ist größer als ".$b;
elseif ($a == $b): // elseif in einem Wort!
    echo $a." ist gleich groß wie ".$b;
else:
    echo $a." ist weder größer als noch gleich wie ".$b;
endif;

?>


Alternative Syntax für Kontrollstrukturen

(PHP 4, PHP 5, PHP 7, PHP 8)

PHP bietet eine alternative Syntax für einige seiner Kontrollstrukturen an, namentlich für if, while, for, foreach und switch. In jedem Fall ist die Grundform der alternativen Syntax ein Wechsel der öffnenden Klammer gegen einen Doppelpunkt (:) und der schließenden Klammer in endif;, endwhile, endfor;, endforeach; respektive endswitch.

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

Im obigen Beispiel ist der HTML-Block "A ist gleich 5" in ein if-Statement verschachtelt, das in alternativer Syntax notiert ist. Der HTML-Block würde nur angezeigt werden, wenn $a gleich 5 ist.

Die alternative Syntax lässt sich ebenfalls auf else und elseif anwenden. Im Folgenden wird eine if-Struktur mit elseif- und else-Teilen im alternativen Format gezeigt:

<?php
if ($a == 5):
    echo "a gleich 5";
    echo "...";
elseif ($a == 6):
    echo "a gleich 6";
    echo "!!!";
else:
    echo "a ist weder 5 noch 6";
endif;
?>

Hinweis:

Das Vermischen unterschiedlicher Schreibweisen im selben Kontrollblock ist nicht unterstützt.

Warnung

Jegliche Ausgabe (einschließlich Whitespace) zwischen einer switch Anweisung und dem ersten case ist ein Syntax Fehler. Zum Beispiel ist folgendes ungültig:

<?php switch ($foo): ?>
    <?php case 1: ?>
    ...
<?php endswitch ?>

Hingegen ist das folgende gültig, da das abschließende Zeilenende nach der switch Anweisung als Teil des schließenden ?> angesehen wird, und daher zwischen switch und case nichts ausgegeben wird:

<?php switch ($foo): ?>
<?php case 1: ?>
    ...
<?php endswitch ?>

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


while

(PHP 4, PHP 5, PHP 7, PHP 8)

while-Schleifen sind der einfachste Typ von Schleifen in PHP. Sie verhalten sich wie ihre Pendants in C. Die Grundform einer while-Schleife ist:

while (bedingung)
    anweisung

Die Bedeutung einer while-Schleife ist simpel. Die Schleife weist PHP an, die untergeordnete(n) Anweisung(en) wiederholt auszuführen, solange die while-Bedingung zutrifft. Die Bedingung wird jedes Mal am Anfang der Schleife überprüft, Das bedeutet, dass die Ausführung der untergeordneten Anweisungen nicht stoppt, auch wenn sich der Wahrheitsgehalt der Bedingung zwischendurch ändert (jedes Mal, wenn PHP die Anweisungen ausführt, handelt es sich um eine Runde). Wenn die while-Bedingung von Anfang an nicht zutrifft, werden die untergeordneten Anweisung nicht ein einziges Mal ausgeführt.

Wie bei if-Abfragen können mehrere Statements innerhalb der selben Schleife mit geschleiften Klammern oder mithilfe der alternativen Syntax gruppiert werden:

while (bedingung):
    anweisung
    ...
endwhile;

Die folgenden Beispiele sind identisch und geben die Zahlen von 1 bis 10 aus:

<?php
/* Beispiel 1 */

$i = 1;
while ($i <= 10) {
    echo $i++;  /* der ausgegebene Wert ist $i bevor
                   er erhöht wird (post-increment) */
}

/* Beispiel 2 */

$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;
?>


do-while

(PHP 4, PHP 5, PHP 7, PHP 8)

do-while-Schleifen sind sehr ähnlich zu while-Schleifen, außer dass der Wahrheitsausdruck erst am Ende eines jeden Durchlaufs statt zu dessen Beginn geprüft wird. Der Hauptunterschied zu einer normalen while-Schleife ist, dass die do-while-Schleife garantiert mindestens einmal durchlaufen wird (Der Wahrheitsausdruck wird ja nur am Ende jeden Durchlaufs geprüft), wohingegen es nicht zwingend ist, dass eine reguläre while-Schleife immer ausgeführt wird (hier wird der Wahrheitsausdruck bereits zu Beginn eines jeden Durchlaufs überprüft. Evaluiert er dabei zu false, wird die Verarbeitung der Schleife sofort abgebrochen).

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

<?php
$i = 0;
do {
    echo $i;
} while ($i > 0);
?>

Die obige Schleife wird exakt einmal durchlaufen, da nach dem ersten Durchlauf, wenn der Wahrheitsausdruck geprüft wird, dieser false ergibt ($i ist nicht größer als 0), so dass die Schleifenausführung beendet wird.

Fortgeschrittenen C-Programmierern ist möglicherweise eine etwas andere Verwendung von do-while-Schleifen bekannt, die es erlaubt, die Ausführung in der Mitte des Codeblocks zu unterbrechen. Dies wird durch ein Kapseln in do-while(0) und die Verwendung des break-Statements erreicht. Das folgende Codefragment demonstriert dieses Verhalten:

<?php
do {
    if ($i < 5) {
        echo "i ist nicht groß genug";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
   echo "i ist ok";

    /* i verarbeiten */

} while (0);
?>

Seien Sie nicht traurig, wenn Sie dies nicht oder nicht ganz verstehen. Sie können trotzdem Skripte - und wirklich leistungsfähige Skripte! - programmieren, ohne dieses "Feature" zu verwenden. Seit PHP 5.3.0 ist es möglich, statt dieses Hacks den goto-Operator zu verwenden.


for

(PHP 4, PHP 5, PHP 7, PHP 8)

for-Schleifen sind die komplexesten Schleifen in PHP. Sie verhalten sich wie ihre Pendants in C. Die Syntax einer for-Schleife ist:

for (expr1; expr2; expr3)
    statement

Der erste Ausdruck (expr1) wird vor Ausführung der Schleife ausgeführt.

Am Anfang jedes Schleifendurchlaufs wird die Anweisung expr2 ausgeführt. Wenn diese wahr ist (true), wird die Schleife fortgesetzt und die untergeordneten Anweisungen werden ausgeführt. Andernfalls (false) endet die Ausführung der Schleife.

Am Ende jedes Schleifendurchlaufs wird die Anweisung expr3 ausgeführt.

Jede der Anweisungen kann leer sein oder mehrere durch Kommata getrennte Anweisungen enthalten. In letzterem Fall werden bei expr2 zwar alle Anweisungen ausgeführt aber das Ergebnis wird nur von der letzten Anweisung verwendet. Wenn expr2 leer ist, läuft die Schleife unendlich lange (PHP nimmt dies als true, ebenso wie C). Dies ist nicht so sinnlos, wie es scheint, denn oft will man die Schleife manuell mit break beenden.

Die folgenden Beispiele geben alle die Zahlen 1 bis 10 aus:

<?php
/* Beispiel 1 */

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

/* Beispiel 2 */

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

/* Beispiel 3 */

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

/* Beispiel 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

Sicher ist das erste das hübscheste (vielleicht auch das vierte), aber in manchen Fällen sind leere Anweisungen in for-Schleifen durchaus praktisch.

PHP unterstützt bei for-Schleifen ebenfalls die alternative "Doppelpunkt-Syntax":

for (expr1; expr2; expr3):
    statement
    ...
endfor;

Es ist üblich, dass Arrays wie in dem folgenden Beispiel durchlaufen werden.

<?php
/*
 * Dies ist ein Array mit Daten, die wir in der
 * Schleife verändern wollen.
 */
$personen = array(
    array('name' => 'Hans', 'salt' => 856412),
    array('name' => 'Martin', 'salt' => 215863)
);

for($i = 0; $i < count($personen); ++$i) {
    $personen[$i]['salt'] = mt_rand(000000, 999999);
}
?>

Der obige Code kann langsam sein, weil die Größe des Arrays bei jedem Schleifendurchlauf abgerufen wird. Da sich die Größe nie ändern, kann die Schleife optimiert werden, indem man die Größe in einer Variablen zwischenspeichert, anstatt sie immer wieder mit count() abzurufen:

<?php
$personen = array(
    array('name' => 'Hans', 'salt' => 856412),
    array('name' => 'Martin', 'salt' => 215863)
);

for($i = 0, $groesse = count($personen); $i < $groesse; ++$i) {
    $personen[$i]['salt'] = mt_rand(000000, 999999);
}
?>


foreach

(PHP 4, PHP 5, PHP 7, PHP 8)

Das foreach-Konstrukt bietet eine einfache Möglichkeit über Arrays zu iterieren. foreach arbeitet nur mit Arrays und Objekten zusammen und gibt beim Versuch es mit einer Variablen mit einem anderen Datentypen oder einer nicht initialisierten Variablen zu benutzen einen Fehler aus. Es gibt zwei Schreibweisen:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

Die erste Form durchläuft das in array_expression angegebene Array. Bei jedem Durchlauf wird der Wert des aktuellen Elementes der Variable $value zugewiesen und der interne Array-Zeiger um eins erhöht (womit im nächsten Durchlauf das nächste Element betrachtet wird).

Die zweite Form schreibt zusätzlich den Schlüssel des aktuellen Elementes in jedem Durchlauf in die Variable $key.

Es ist möglich, die Objektiteration anzupassen.

Hinweis:

Zu Beginn der Ausführung unter PHP 5 setzt foreach den internen Arrayzeiger automatisch auf das erste Element des Arrays zurück. Das bedeutet, dass es nicht notwendig ist vor einer foreach-Schleife reset() aufzurufen.

Da foreach sich unter PHP 5 auf den internen Arrayzeiger verlässt, kann es zu unerwartetem Verhalten führen, wenn dieser innerhalb der Schleife verändert wird.

Unter PHP 7 verwendet foreach den internen Arrayzeiger nicht.

Um Arrayelemente innerhalb der Schleife direkt verändern zu können, muss dem Variablennamen $value ein & vorangestellt werden. In diesem Fall wird dieser Variablen eine Referenz zugewiesen.

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr ist nun array(2, 4, 6, 8)
unset($value); // Entferne die Referenz auf das letzte Element
?>

Warnung

Die Referenz eines $value auf das letzte Arrayelement bleiben auch nach der foreach-Schleife bestehen. Es wird empfohlen, diese durch unset() zu zerstören. Andernfalls ist folgendes Verhalten zu beobachten:

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr ist jetzt array(2, 4, 6, 8)

// ohne ein unset($value), bleibt $value weiterhin eine Referenz auf das letzte Element: $arr[3]

foreach ($arr as $key => $value) {
    // $arr[3] wird mit jedem Wert von $arr aktualisiert...
    echo "{$key} => {$value} ";
    print_r($arr);
}
// bis schließlich der vorletzte Wert in den letzten Wert kopiert wird

// Ausgabe:
// 0 => 2 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 2 )
// 1 => 4 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 4 )
// 2 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
// 3 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
?>

Vor PHP 5.5.0 ist eine Referenz auf $value nur dann möglich, wenn das Array referenzierbar ist (d.h. es ist eine Variable). Der folgende Code funktioniert erst ab PHP 5.5.0:

<?php
foreach (array(1, 2, 3, 4) as &$value) {
    $value = $value * 2;
}
?>

Hinweis:

foreach unterstützt die Fehlerunterdrückung mittels '@' nicht.

Einige weitere Beispiele, die die Nutzung demonstrieren:

<?php
/* foreach Beispiel 1: Nur Werte */

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

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

/* foreach Beispiel 2: Werte (mit Schreibweise für Zugriff zur Veranschaulichung) */

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

$i = 0; /* nur zur Veranschaulichung */

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

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

$a = array(
    "eins" => 1,
    "zwei" => 2,
    "drei" => 3,
    "siebzehn" => 17
);

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

/* foreach Beispiel 4: Mehrdimensionale Arrays */
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {
    foreach ($v1 as $v2) {
        echo "$v2\n";
    }
}

/* foreach Beispiel 5: Dynamische Arrays */

foreach (array(1, 2, 3, 4, 5) as $v) {
    echo "$v\n";
}
?>

Entpacken verschachtelter Arrays mit list()

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

PHP 5.5 hat die Fähigkeit hinzugefügt über Arrays von Arrays zu iterieren und dabei die verschachtelten Arrays in Schleifenvariablen zu entpacken, indem man ein list() als Wert angibt.

For example:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b)) {
    // $a enthält das erste Element des verschachtelten Arrays
    // und $b enthält das zweite Element
    echo "A: $a; B: $b\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

A: 1; B: 2
A: 3; B: 4

Es können auch weniger Elemente in list() angegeben werden als das verschachtelte Array enthält. In diesem Fall werden übrige Werte im Array ignoriert:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a)) {
    // Beachten Sie, dass es hier kein $b gibt.
    echo "$a\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1
3

Gibt es nicht ausreichend Elemente im Array, um list() zu füllen, wird eine Notice erzeugt.

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b, $c)) {
    echo "A: $a; B: $b; C: $c\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Notice: Undefined offset: 2 in example.php on line 7
A: 1; B: 2; C:

Notice: Undefined offset: 2 in example.php on line 7
A: 3; B: 4; C:

Changelog

Version | Beschreibung
7.0.0 | foreach verwendet den internen Arrayzeiger nicht mehr.
5.5.0 | Die Referenzierung von $value wird für Ausdrücke unterstützt. Zuvor wurden nur Variablen unterstützt.
5.5.0 | Das Entpacken verschachtelter Arrays mit list() wird unterstützt.


break

(PHP 4, PHP 5, PHP 7, PHP 8)

break beendet die Ausführung der aktuellen for-, foreach-, while-, do-while- oder switch-Struktur.

break akzeptiert ein optionales numerisches Argument, das angibt, aus wie vielen der es umschließenden verschachtelten Strukturen ausgebrochen werden soll. Der Standardwert ist 1; nur aus der unmittelbar umschließenden Verschachtelung wird ausgebrochen.

<?php
$arr = array('eins', 'zwei', 'drei', 'vier', 'stop', 'fünf');
foreach ($arr as $val) {
    if ($val == 'stop') {
        break;    /* Sie könnten hier auch 'break 1;' schreiben. */
    }
    echo "$val<br />\n";
}

/* Nutzung des optionalen Arguments. */

$i = 0;
while (++$i) {
    switch ($i) {
        case 5:
            echo "Bei 5<br />\n";
            break 1;  /* Verlässt nur das switch. */
        case 10:
            echo "Bei 10; brich ab<br />\n";
            break 2;  /* Verlässt das switch und das while. */
        default:
            break;
    }
}
?>

Changelog für break
Version | Beschreibung
7.0.0 | break außerhalb einer Schleife oder einer switch Kontrollstruktur wird nun zur Übersetzungszeit anstatt wie zuvor zur Laufzeit erkannt, und löst einen Fehler der Stufe E_COMPILE_ERROR aus.
5.4.0 | break 0; ist nicht länger gültig. In früheren Versionen wurde es genauso interpretiert wie break 1;.
5.4.0 | Die Möglichkeit eine Variable als numerisches Argument zu übergeben (z.B., $num = 2; break $num;) wurde entfernt.


continue

(PHP 4, PHP 5, PHP 7, PHP 8)

continue wird innerhalb von Schleifen verwendet, um den Rest des aktuellen Schleifendurchlaufs abzubrechen und mit der Auswertung der nächsten Bedingung fortzufahren, um dann den nächsten Durchlauf zu beginnen.

Hinweis: In PHP wird das switch-Statement im Sinne von continue als Schleifenstruktur betrachtet. continue verhält sich wie break (wenn keine Argumente übergeben werden), erzeugt aber eine Warnung, da es sich vermutlich um einen Fehler handelt. Falls sich ein switch innerhalb einer Schleife befindet, wird continue 2 mit der nächsten Iteration der äußeren Schleife fortsetzen.

continue akzeptiert ein optionales numerisches Argument, das angibt, wie viele Ebenen umschließender Schleifen bis zu ihrem Ende übersprungen werden sollen. Die Voreinstellung ist 1, so dass zum Ende der aktuellen Schleife gesprungen wird.

<?php
foreach ($arr as $key => $value) {
    if (!($key % 2)) { // ignoriere gerade Werte
        continue;
    }
    mach_etwas_ungerade($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Äußere<br />\n";
    while (1) {
        echo "Mittlere<br />\n";
        while (1) {
            echo "Innere<br />\n";
            continue 3;
        }
        echo "Das hier wird nie ausgegeben.<br />\n";
    }
    echo "Das hier ebenfalls nicht.<br />\n";
}
?>

Das Weglassen des Semikolons nach continue kann zu unerwarteten Ergebnissen führen. Hier ist ein Beispiel, das zeigt, was Sie nicht tun sollten.

<?php
for ($i = 0; $i < 5; ++$i) {
    if ($i == 2)
        continue
    print "$i\n";
}
?>

Man könnte meinen, die Ausgabe wäre:

0
1
3
4

aber in PHP Versionen vor 5.4.0 gibt das Skript in Wirklichkeit ...

2

... aus, da continue print "$i\n"; als ein Ausdruck ausgewertet wird, und print somit nur aufgerufen wird, wenn $i == 2 ist. (Der Rückgabewert von print wird an continue als numerisches Argument übergeben.)

Hinweis:

Von PHP 5.4.0 an erzeugt das obige Beispiel einen E_COMPILE_ERROR Fehler.

Changelog für continue
Version | Beschreibung
7.3.0 | continue innerhalb eines switch, das versucht wie eine break-Anweisung für das switch zu wirken, erzeugt ein E_WARNING.
7.0.0 | continue außerhalb einer Schleife oder einer switch Kontrollstruktur wird nun zur Übersetzungszeit anstatt wie zuvor zur Laufzeit erkannt, und löst einen Fehler der Stufe E_COMPILE_ERROR aus.
5.4.0 | continue 0; ist nicht länger gültig. In vorherigen Versionen wurde es analog continue 1; interpretiert.
5.4.0 | Die Möglichkeit Variablen (z.B., $num = 2; continue $num;) als numerisches Argument übergeben zu können wurde entfernt


switch

(PHP 4, PHP 5, PHP 7, PHP 8)

Die switch Anweisung entspricht in etwa einer Folge von if Anweisungen die jeweils den gleichen Ausdruck prüfen. Es kommt oft vor, dass man dieselbe Variable (oder denselben Ausdruck) gegen viele verschiedene mögliche Werte prüfen und abhängig davon unterschiedlichen Code ausführen möchte. Genau hierfür wurde die switch Anweisung eingeführt.

Hinweis: Beachten Sie, dass im Unterschied zu einigen anderen Sprachen die continue Anweisung auch auf switch anwendbar ist und sich ähnlich wie break verhält. Wenn Sie ein switch innerhalb einer Schleife verwenden und mit dem nächsten Schleifendurchlauf beginnen wollen so müssen Sie in diesem Fall continue 2 angeben.

Hinweis:

Beachten Sie auch, dass switch/case typschwache Vergleiche durchführt.

Changelog
Version | Beschreibung
7.0.0 | Mehrere default case Anweisungen erzeugen einen E_COMPILE_ERROR Fehler.

Die folgenden beiden Beispiele zeigen zwei verschiedene Wege um das gleiche Verhalten zu erreichen. Eines benutzt eine Folge von if und elseif Anweisungen, das andere eine switch Anweisung:

Beispiel #1 switch Anweisung

<?php
if ($i == 0) {
    echo "i ist gleich 0";
} elseif ($i == 1) {
    echo "i ist gleich 1";
} elseif ($i == 2) {
    echo "i ist gleich 2";
}

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

Beispiel #2 switch gestattet die Verwendung von Strings

<?php
switch ($i) {
    case "Apfel":
        echo "i ist Apfel";
        break;
    case "Balken":
        echo "i ist Balken";
        break;
    case "Kuchen":
        echo "i ist Kuchen";
        break;
}
?>

Um Fehler zu vermeiden ist es wichtig zu verstehen wie eine switch Anweisung ausgeführt wird. Eine switch Anweisung wird zeilenweise (genauer: Anweisung für Anweisung) ausgewertet. Zunächst einmal wird überhaupt kein Code ausgeführt. Erst wenn eine case Anweisung gefunden wird, deren Ausdruck zu einem Wert evaluiert, der dem an switch übergebenen Ausdruck entspricht, beginnt PHP tatsächlich die folgenden Anweisungen auszuführen. Die Ausführung wird fortgesetzt bis das Ende der switch Anweisung erreicht ist oder bis PHP bei der Ausführung auf eine break Anweisung stößt. Wenn Sie am Ende der Anweisungsliste eines case kein break setzen, so wird die Ausführung mit dem nächsten case fortgesetzt, z.B.:

<?php
switch ($i) {
    case 0:
        echo "i ist gleich 0";
    case 1:
        echo "i ist gleich 1";
    case 2:
        echo "i ist gleich 2";
}
?>

Wenn in diesem Beispiel $i gleich 0 ist, führt PHP alle echo Anweisungen aus! Ist $i gleich 1, führt PHP die letzten beiden echo Anweisungen aus. Sie erreichen das erwartete Verhalten nur, wenn $i gleich 2 ist. Daher ist es wichtig break Anweisungen nicht zu vergessen (auch wenn Sie gelegentlich absichtlich darauf verzichten werden, diese unter bestimmten Bedingungen anzugeben).

In einer switch Anweisung wird die Bedingung nur einmal ausgewertet und das Ergebnis mit jeder case Anweisung verglichen. In einer elseif Anweisung wird die Bedingung erneut ausgewertet. Wenn Ihre Bedingung komplizierter ist als ein einfacher Vergleich, und/oder sich in einer dichten Schleife befindet, kann ein switch schneller sein.

Die Anweisungsliste eines case kann ebenso leer sein, was einfach die Kontrolle an die Anweisungsliste des nächsten case übergibt.

<?php
switch ($i) {
    case 0:
    case 1:
    case 2:
        echo "i ist kleiner als 3, aber nicht negativ";
        break;
    case 3:
        echo "i ist 3";
}
?>

Ein Sonderfall ist die default Klausel. Diese fängt alles ab, was nicht durch eine der anderen case Klauseln behandelt wurde. Zum Beispiel:

<?php
switch ($i) {
    case 0:
        echo "i ist gleich 0";
        break;
    case 1:
        echo "i ist gleich 1";
        break;
    case 2:
        echo "i ist gleich 2";
        break;
    default:
       echo "i ist nicht gleich 0, 1 oder 2";
}
?>

Die alternative Syntax für Kontrollstrukturen wird für switch Anweisungen unterstützt. Weitere Information entnehmen Sie Alternative Syntax für Kontrollstrukturen.

<?php
switch ($i):
    case 0:
        echo "i ist gleich 0";
        break;
    case 1:
        echo "i ist gleich 1";
        break;
    case 2:
        echo "i ist gleich 2";
        break;
    default:
        echo "i ist nicht gleich 0, 1 oder 2";
endswitch;
?>

Es ist möglich ein Semikolon anstelle eines Doppelpunkts nach einem case zu verwenden, wie:

<?php
switch($beer)
{
    case 'Bitburger';
    case 'Erdinger';
    case 'Jever';
        echo 'Gute Wahl';
    break;
    default;
        echo 'Bitte treffen Sie eine andere Wahl...';
    break;
}
?>


match

(PHP 8)

The match expression branches evaluation based on an identity check of a value. Similarly to a switch statement, a match expression has a subject expression that is compared against multiple alternatives. Unlike switch, it will evaluate to a value much like ternary expressions. Unlike switch, the comparison is an identity check (===) rather than a weak equality check (==). Match expressions are available as of PHP 8.0.0.

Beispiel #1 Structure of a match expression

<?php
$return_value = match (subject_expression) {
    single_conditional_expression => return_expression,
    conditional_expression1, conditional_expression2 => return_expression,
};
?>

Hinweis: The result of a match expression does not need to be used.

Hinweis: A match expression must be terminated by a semicolon ;.

The match expression is similar to a switch statement but has some key differences:

  • A match arm compares values strictly (===) instead of loosely as the switch statement does.
  • A match expression returns a value.
  • Match arms do not fall-through to later cases the way switch statements do.
  • A match expression must be exhaustive.

As switch statements, match expressions are executed match arm by match arm. In the beginning, no code is executed. The conditional expressions are only evaluated if all previous conditional expressions failed to match the subject expression. Only the return expression corresponding to the matching conditional expression will be evaluated. For example:

<?php
$result = match ($x) {
    foo() => ...,
    $this->bar() => ..., // bar() isn't called if foo() === $x
    $this->baz => beep(), // beep() isn't called unless $x === $this->baz
    // etc.
};
?>

match expression arms may contain multiple expressions separated by a comma. That is a logical OR, and is a short-hand for multiple match arms with the same right-hand side.

<?php
$result = match ($x) {
    // This match arm:
    $a, $b, $c => 5,
    // Is equivalent to these three match arms:
    $a => 5,
    $b => 5,
    $c => 5,
};
?>

A special case is the default pattern. This pattern matches anything that wasn't previously matched. For example:

<?php
$expressionResult = match ($condition) {
    1, 2 => foo(),
    3, 4 => bar(),
    default => baz(),
};
?>

Hinweis: Multiple default patterns will raise a E_FATAL_ERROR error.

A match expression must be exhaustive. If the subject expression is not handled by any match arm an UnhandledMatchError is thrown.

Beispiel #2 Example of an unhandled match expression

<?php
$condition = 5;

try {
    match ($condition) {
        1, 2 => foo(),
        3, 4 => bar(),
    };
} catch (\UnhandledMatchError $e) {
    var_dump($e);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(UnhandledMatchError)#1 (7) {
  ["message":protected]=>
  string(33) "Unhandled match value of type int"
  ["string":"Error":private]=>
  string(0) ""
  ["code":protected]=>
  int(0)
  ["file":protected]=>
  string(9) "/in/ICgGK"
  ["line":protected]=>
  int(6)
  ["trace":"Error":private]=>
  array(0) {
  }
  ["previous":"Error":private]=>
  NULL
}

Using match expressions to handle non identity checks

It is possible to use a match expression to handle non-identity conditional cases by using true as the subject expression.

Beispiel #3 Using a generalized match expressions to branch on integer ranges

<?php

$age = 23;

$result = match (true) {
    $age >= 65 => 'senior',
    $age >= 25 => 'adult',
    $age >= 18 => 'young adult',
    default => 'kid',
};

var_dump($result);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(11) "young adult"

Beispiel #4 Using a generalized match expressions to branch on string content

<?php

$text = 'Bienvenue chez nous';

$result = match (true) {
    str_contains($text, 'Welcome') || str_contains($text, 'Hello') => 'en',
    str_contains($text, 'Bienvenue') || str_contains($text, 'Bonjour') => 'fr',
    // ...
};

var_dump($result);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(2) "fr"


declare

(PHP 4, PHP 5, PHP 7, PHP 8)

Das declare-Konstrukt wird verwendet, um Ausführungsdirektiven für einen Codeblock festzulegen. Die Syntax von declare ist ähnlich wie die Syntax anderer Ablauf-Kontrollstrukturen:

declare (directive)
    statement

Die directive-Sektion erlaubt es, das Verhalten des declare-Blocks anzugeben. Aktuell werden nur drei Direktiven unterstützt: die ticks-Direktive (siehe unten für weitere Informationen über die ticks-Direktive), die encoding-Direktive (siehe unten für weitere Informationen über die encoding-Direktive), und die strict_types-Direktive (siehe den Abschnitt über strict auf der Seite über Funktionsargumente).

Da Direktiven behandelt werden, wenn die Datei kompiliert wird, dürfen nur Literale als Direktiven-Werte angegeben werden. Variable und Konstante können nicht verwendet werden. Zur Veranschaulichung:

<?php
// Dies ist erlaubt:
declare(ticks=1);

// Dies ist ungültig:
const TICK_VALUE = 1;
declare(ticks=TICK_VALUE);
?>

Der statement-Teil des declare-Blocks wird ausgeführt - wie genau die Ausführung aussieht und welche Seiteneffekte während der Ausführung auftreten können, ist abhängig von der im directive-Block gesetzten Direktive.

Das declare-Konstrukt kann außerdem im globalen Sichtbarkeitsbereich verwendet werden, es hat dann Auswirkungen auf den gesamten folgenden Code (wird die Datei mit der declare-Anweisung inkludiert, hat die Anweisung jedoch keine Auswirkung auf das einbindende File).

<?php
// dies sind gleichwertige Schreibweisen:

// Sie können diese Schreibweise verwenden:
declare(ticks=1) {
    // hier das vollständige Skript einfügen
}

// oder diese:
declare(ticks=1);
// hier das vollständige Skript einfügen
?>

Ticks

Ein Tick ist ein Event, das für alle N Low-Level-Statements auftritt, die vom Parser innerhalb des declare-Blocks ausgeführt werden. Der Wert für N wird durch die Verwendung von ticks=N innerhalb der directive-Sektion des declare-Blocks angegeben.

Nicht alle Statements führen zu einem Tick-Event. So etwa Konditionen und Argumente.

Das/die bei jedem Tick auftretenden Event(s) werden durch die Verwendung der Funktion register_tick_function() angegeben. Betrachten Sie das folgende Beispiel für mehr Details. Beachten Sie, dass mehr als ein Event bei jedem Tick auftreten kann.

Beispiel #1 Tick Nutzungsbeispiel

<?php

declare(ticks=1);

// Funktion, welche bei jeden Tick-Event aufgerufen wird
function tick_handler()
{
    echo "tick_handler() aufgerufen\n";
}

register_tick_function('tick_handler');

$a = 1;

if ($a > 0) {
    $a += 2;
    print($a);
}

?>

Beispiel #2 Tick Nutzungsbeispiel

<?php

function tick_handler()
{
    echo "tick_handler() aufgerufen\n";
}

$a = 1;
tick_handler();

if ($a > 0) {
    $a += 2;
    tick_handler();
    print($a);
    tick_handler();
}
tick_handler();

?>

Siehe auch register_tick_function() und unregister_tick_function().

Encoding

Das Encoding eines Skripts kann pro Skript mittels der encoding-Direktive festgelegt werden.

Beispiel #3 Das Encoding eines Skripts deklarieren.

<?php
declare(encoding='ISO-8859-1');
// hier folgt der Code
?>

Achtung

Die einzig zulässige Syntax für ein declare, das mit Namespaces kombiniert wird, ist declare(encoding='...');, wobei ... der Name des Encodings ist. declare(encoding='...') {} führt zu einem Parse-Error, wenn es mit Namespaces kombiniert wird.

Siehe auch zend.script_encoding.


return

(PHP 4, PHP 5, PHP 7, PHP 8)

return gibt die Programmsteuerung an das aufrufende Modul zurück. Die Ausführung wird mit dem Ausdruck fortgesetzt, der dem Aufruf des aufrufenden Moduls folgt.

Wenn innerhalb einer Funktion aufgerufen, beendet return augenblicklich die Ausführung der Funktion und übergibt den Parameter als Rückgabewert der Funktion. return beendet ebenfalls die Ausführung von Code innerhalb von eval() oder einer Datei.

Wenn im globalen Raum aufgerufen, endet die Ausführung des Skripts. Wenn das aktuelle Skript mit include oder require eingebunden ist, endet nur die Ausführung der eingebundenen Datei und der Wert, der an return übergeben wurde, wird zum Rückgabewert des Aufrufs von include/require. Wenn return im Hauptskript aufgerufen wird, endet das gesamte Skript. Wenn das aktuelle Skript durch die Konfigurationsdirektiven auto_prepend_file oder auto_append_file aufgerufen wurde, wird die Ausführung dieses Skripts beendet.

Für mehr Informationen, siehe die Dokumentation zu Rückgabewerten.

Hinweis: Weil return ein Sprachkonstrukt und keine Funktion ist, sind die Klammern um das Argument nicht erforderlich, und von deren Verwendung wird abgeraten.

Hinweis: Wenn kein Parameter übergeben wird, dürfen die Klammern nicht gesetzt werden und null wird zurückgegeben. Der Aufruf von return mit Klammern aber ohne Parameter verursacht einen Parse Error.


require

(PHP 4, PHP 5, PHP 7, PHP 8)

require entspricht im Wesentlichen include, wirft aber im Fehlerfall einen E_COMPILE_ERROR Fehler. Es beendet also die Programmausführung während include nur eine Warnung (E_WARNING) generiert und so die weitere Programmausführung gestattet.

Weitere Informationen hierzu finden Sie in der include-Dokumentation.


include

(PHP 4, PHP 5, PHP 7, PHP 8)

include bindet eine angegebene Datei ein und führt sie aus.

Die folgende Dokumentation trifft ebenfalls auf require zu.

Dateien werden unter dem angegebenen Pfad gesucht, oder, wenn keiner gegeben ist, im include_path. Wenn die Datei auch im include_path nicht gefunden werden kann, sucht include noch in dem Verzeichnis der aufrufenden Datei und dem aktuellen Arbeitsverzeichnis. Wenn keine Datei gefunden wurde, erzeugt include ein E_WARNING, im Gegensatz dazu erzeugt require in diesem Fall ein E_ERROR.

Wenn ein Pfad angegeben ist — ob absolut (beginnend mit einem Laufwerksbuchstaben oder \ auf Windows oder / auf Unix/Linux) oder relativ (beginnend mit . oder ..), wird der include_path ignoriert. Wenn der Dateiname beispielsweise mit ../ beginnt, sucht der Parser im übergeordneten Verzeichnis des aktuellen Arbeitsverzeichnisses nach der Datei.

Mehr Informationen über den Umgang PHPs mit dem Einbinden von Dateien im Zusammenhang mit dem include_path, siehe die Dokumentation zu include_path.

Wenn eine Datei eingebunden wird, wird für den enthaltenen Code der gleiche Geltungsbereich für Variablen übernommen, der für die Zeile gilt, die den include-Befehl aufruft. Jede für diese Zeile verfügbare Variable ist in dem eingebundenen Code verfügbar und jede Variable, die in der eingebundenen Datei gesetzt wird, steht dem weiteren aufrufenden Skript zur Verfügung, als wäre sie in der Zeile, in der include aufgerufen wird, definiert worden. Alle Funktionen und Klassen in der eingebundenen Datei gehören zum globalen Geltungsbereich.

Beispiel #1 Grundlegendes include-Beispiel

vars.php
<?php

$farbe = 'grün';
$frucht = 'Apfel';

?>

test.php
<?php

echo "Der $frucht ist $farbe."; // Der  ist  .

include 'vars.php';

echo "Der $frucht ist $farbe"; // Der Apfel ist grün

?>

Wenn include innerhalb einer Funktion aufgerufen wird, verhält sich der gesamte Code aus der aufgerufenen Datei wie wenn er in der Funktion stände. Folglich hat er den selben Variablen-Gültigkeitsbereich wie diese Funktion. Eine Ausnahme von dieser Regel sind Magische Konstanten, die geparst werden, bevor die Einbindung durchgeführt wird.

Beispiel #2 Include in Funktionen

<?php

function foo()
{
    global $farbe;

    include 'vars.php';

    echo "Der $frucht ist $farbe.";
}

/* vars.php ist im Gültigkeitsbereich von foo(),  *
 * sodass $frucht außerhalb von diesem Bereich    *
 * nicht verfügbar ist. $farbe ist auch außerhalb *
 * verfügbar, weil es als global deklariert ist.  */

foo();                            // Der Apfel ist grün.
echo "Der $frucht ist $farbe.";   // Der  ist grün.

?>

Wenn eine Datei eingebunden wird, wechselt der Parser am Anfang der eingebundenen Datei in den HTML-Modus und am Ende wieder in den PHP-Modus. Aus diesem Grund muss jeder PHP-Code in der eingebundenen Datei mit gültigen PHP-Start- und -Endtags umschlossen sein.

Wenn "include-URL-Wrapper" aktiviert sind (was sie in der Standard-Konfiguration sind), kann die einzubindende Datei mit einem URL (über HTTP oder ein anderes unterstütztes Protokoll - siehe Unterstützte Protokolle und Wrapper für eine Liste unterstützter Protokolle) anstall eines lokalen Pfades eingebunden werden. Wenn der Zielserver die Zieldatei als PHP-Code interpretiert, können Variablen an die einzubindende Datei mithilfe von HTTP-GET-Query-Strings übergeben werden, obwohl dies nicht das selbe ist, wie wenn man die Datei einbindet und sie den Variablenbereich übernimmt; das Skript läuft weiterhin auf dem entfernten Server und das Ergebnis wird in das lokale Skript eingebunden.

Beispiel #3 include über HTTP

<?php

/* Dieses Beispiel setzt voraus, dass www.example.com konfiguriert ist, *
 * .php-Dateien als PHP-Skripte zu interpretieren und .txt-Dateien      *
 * nicht. Des Weiteren meint 'Funktioniert' hier, dass die Variablen    *
 * $foo und $bar innerhalb der eingebundenen Datei verfügbar sind.      */

// Funktioniert nicht; file.txt wird von www.example.com nicht als PHP interpretiert
include 'http://www.example.com/file.txt?foo=1&bar=2';

// Funktioniert nicht; hier wird nach einer Datei mit dem Namen
// 'file.php?foo=1&bar=2' im lokalen Dateisystem gesucht.
include 'file.php?foo=1&bar=2';

// Funktioniert
include 'http://www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt';  // Funktioniert
include 'file.php';  // Funktioniert

?>

Warnung

Sicherheits-Warnung

Die entfernte Datei mag vom entfernten Server (je nach Konfiguration) geparst werden oder nicht, aber sie muss weiterhin ein gültiges PHP-Skript ausgeben, weil die Ausgabe auf dem lokalen Server als PHP ausgeführt wird. Wenn die Ausgabe des vom entfernten Server nur ausgegeben werden soll, ist readfile() die bessere Wahl. Andernfalls muss sehr gut acht gegeben werden, dass das entfernte Skript sicher gültigen und erwünschten Code ausgibt!

Siehe auch Entfernte Dateien, fopen() und file() für verwandte Informationen.

Umgang mit Rückgabewerten: include gibt im Fehlerfall FALSE zurück und und generiert eine Warnung. Erfolgreiches Einbinden, außer überschrieben durch die eingebundene Datei, gibt 1 zurück. Es ist möglich, in der eingebundenen Datei return aufzurufen um den Ablauf dieser Datei abzubrechen und zu dem einbindenden Skript zurückzukehren. Der zurückgegebene Wert kann als Rückgabewert des include-Aufrufs abgefragt werden, wie bei einer normalen Funktion. Dies ist beim Einbinden entfernter Dateien nur möglich, wenn die entfernte Datei mit gültigen PHP Start- und Endtags umschlossen ist (wie bei jeder lokalen Datei). Es ist möglich, die benötigten Variablen innerhalb diese Tags zu deklarieren und sie werden im einzubindenden Skript am dem Punkt, an dem die Datei eingebunden wird, verfügbar.

Weil include eine spezielles Sprachkonstrukt ist, sind die Klammern um das Argument optional. Beim Vergleichen des Rückgabewerts muss allerdings aufgepasst werden (siehe Beispiel).

Beispiel #4 Vergleichen des Rückgabewerts von include

<?php
// funktioniert nicht, wird als include(('vars.php') == TRUE) behandelt
// also als include('')
if (include('vars.php') == TRUE) {
    echo 'OK';
}

// Funktioniert
if ((include 'vars.php') == TRUE) {
    echo 'OK';
}
?>

Beispiel #5 include und return

return.php
<?php

$var = 'PHP';

return $var;

?>

noreturn.php
<?php

$var = 'PHP';

?>

testreturns.php
<?php

$foo = include 'return.php';

echo $foo; // gibt 'PHP' aus

$bar = include 'noreturn.php';

echo $bar; // gibt 1 aus

?>

$bar hat den Wert 1, weil das Einbinden erfolgreich war. Die erste Datei nutzt return, was die andere nicht tut. Wenn das Einbinden fehlschlägt, wird false zurückgegeben und ein Fehler der Kategorie E_WARNING erzeugt.

Wenn in der eingebundenen Datei Funktionen definiert werden, können sie in der einbindenden Datei genutzt werden, unabhängig davon, ob sie vor oder nach return definiert werden. Wenn eine Datei zweimal eingebunden wird, erzeugt PHP einen fatalen Fehler, weil Funktionen bereits definiert wurden. Es ist empfohlen, include_once zu nutzen, anstatt zu überprüfen, ob die Datei bereits eingebunden wurde, und abhängig davon innerhalb der eingebundenen Datei zu handeln.

Ein anderer Weg, die Ausgabe eines eingebundenen Skriptes in eine Variable zu schreiben, ist das Arbeiten mit den Funktionen zur Steuerung des Ausgabepuffers mit include. Beispiel:

Beispiel #6 Nutzung des Ausgabepuffers um eine Datei "in einen String" einzubinden

<?php
$string = get_include_contents('somefile.php');

function get_include_contents($filename) {
    if (is_file($filename)) {
        ob_start();
        include $filename;
        return ob_get_clean();
    }
    return false;
}

?>

Um automatisch Dateien in Skripte einzubinden, siehe auch die Konfigurationsdirektiven auto_prepend_file und auto_append_file in php.ini.

Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen verwenden.

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


require_once

(PHP 4, PHP 5, PHP 7, PHP 8)

Die require_once entspricht im Wesentlichen der Funktion require. PHP prüft hier allerdings ob die gewünschte Datei bereits eingebunden wurde und wird sie in diesem Fall nicht ein weiteres mal einbinden.

Nähere Informationen zum Verhalten von _once und wie es sich von seinem nicht-_once-Gegenstück unterscheidet finden Sie in der Dokumentation zu include_once.


include_once

(PHP 4, PHP 5, PHP 7, PHP 8)

include_once bindet eine angegebene Datei ein und führt sie als PHP-Skript aus. Dieses Verhalten ist identisch zu include, mit dem einzigen Unterschied, dass die Datei, wenn sie bereits eingebunden wurde, nicht erneut eingebunden wird, und include_once true zurückgibt. Wie der Name schon sagt, wird die Datei nur einmal eingebunden.

include_once kann beispielsweise benutzt werden, wenn die selbe Datei an mehreren Stellen eingebunden wird, um Problemen durch erneute Definitionen von Funktionen, erneute Zuweisung von Variablen oder ähnliches zu vermeiden.

Für die Funktionsweise der Funktion, siehe die Dokumentation zu include.


goto

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Was ist das schlimmste, was passieren könnte, wenn man goto benutzt?
Bild von » xkcd

Der goto-Operator kann benutzt werden, um innerhalb eines Programs zu einer anderen Anweisung zu springen. Die Zielanweisung wird durch einen Namen gefolgt von einem Doppelpunkt festgelegt und der goto-Anweisung wird der entsprechende Zielname angefügt. Hierbei handelt es sich jedoch nicht um ein vollständig uneingeschränktes goto: Die Zielanweisung muss in der selben Datei und im selben Kontext liegen, d.h. dass weder aus einer Funktion oder Methode herausgesprungen werden kann, noch in sie hineingesprungen. Weiterhin kann nicht in eine Schleifen- oder switch-Anweisung hineingesprungen werden. Es ist jedoch möglich aus diesen hinauszuspringen, weshalb goto häufig als Ersatz für ein mehrstufiges break verwendet wird.

Beispiel #1 goto-Beispiel

<?php
goto a;
echo 'Foo';

a:
echo 'Bar';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Bar

Beispiel #2 goto Schleifenbeispiel

<?php
for ($i=0, $j=50; $i<100; $i++) {
  while ($j--) {
    if ($j==17) goto end;
  }
}
echo "i = $i";
end:
echo 'j hit 17';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

j hit 17

Beispiel #3 Das wird nicht funktionieren

<?php
goto loop;
for ($i=0, $j=50; $i<100; $i++) {
  while ($j--) {
    loop:
  }
}
echo "$i = $i";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Fatal error: 'goto' into loop or switch statement is disallowed in
script on line 2

Hinweis:

Der goto-Operator ist ab PHP 5.3 verfügbar.


Funktionen

Inhaltsverzeichnis

  • Benutzerdefinierte Funktionen
  • Funktionsparameter
  • Rückgabewerte
  • Variablenfunktionen
  • Interne (eingebaute) Funktionen
  • Anonyme Funktionen
  • Pfeilfunktionen


Benutzerdefinierte Funktionen

Eine Funktion kann wie folgt definiert werden:

Beispiel #1 Pseudocode zur Demonstration der Nutzung von Funktionen

<?php
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.

Für Funktionsnamen gelten in PHP die gleichen Regeln wie für andere Bezeichner. Ein gültiger Funktionsname beginnt mit einem Buchstaben oder Unterstrich gefolgt von einer beliebigen Anzahl von Buchstaben, Ziffern und Unterstrichen. Als regulärer Ausdruck wird dies so ausgedrückt: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$.

Tipp

Siehe auch Userland-Namensregeln.

Es ist nicht erforderlich, dass Funktionen bereits definiert sein müssen, wenn auf sie verwiesen wird, außer wenn eine Funktion nur bedingt definiert wird, wie in den beiden untenstehenden Beispielen gezeigt.

Wenn eine Funktion nur unter bestimmten Bedingungen definiert wird, wie in den beiden folgenden Beispielen, muss die Definition dieser Funktion noch vor deren Aufruf abgearbeitet werden.

Beispiel #2 Bedingte Funktionen

<?php

$makefoo = true;

/* Wir können foo() von hier aus nicht
   aufrufen, da sie noch nicht existiert,
   aber wir können bar() aufrufen */

bar();

if ($makefoo) {
  function foo ()
  {
    echo "Ich existiere nicht, bis mich die Programmausführung erreicht hat.\n";
  }
}

/* Nun können wir foo() sicher aufrufen,
   da $makefoo als true ausgewertet wurde */

if ($makefoo) foo();

function bar()
{
  echo "Ich existiere sofort nach Programmstart.\n";
}

?>

Beispiel #3 Funktionen innerhalb von Funktionen

<?php
function foo()
{
  function bar()
  {
    echo "Ich existiere nicht, bis foo() aufgerufen wurde.\n";
  }
}

/* Wir können bar() noch nicht
   aufrufen, da es nicht existiert */

foo();

/* Nun können wir auch bar() aufrufen,
   da sie durch die Abarbeitung von
   foo() verfügbar gemacht wurde */

bar();

?>

Alle Funktionen und Klassen in PHP existieren im globalen Namensraum - sie können außerhalb von Funktionen aufgerufen werden, selbst wenn sie innerhalb einer Funktion definiert wurden und umgekehrt.

PHP unterstützt weder das Überladen von Funktionen, noch ist es möglich, zuvor deklarierte Funktionen neu zu definieren oder die Definition zu löschen.

Hinweis: Groß- und Kleinschreibung spielt zwar bei Funktionsnamen keine Rolle für die ASCII-Zeichen A bis Z, es empfiehlt sich aber trotzdem bei Funktionsaufrufen die gleiche Schreibweise wie in der Deklaration zu benutzen.

Sowohl eine variable Anzahl Parameter als auch Vorgabewerte für Parameter werden in Funktionen unterstützt. Siehe auch die Funktionsreferenzen für func_num_args(), func_get_arg() und func_get_args() für weitere Informationen.

Es ist in PHP möglich, Funktionen rekursiv aufzurufen.

Beispiel #4 Rekursive Funktionen

<?php
function recursion($a)
{
    if ($a < 20) {
        echo "$a\n";
        recursion($a + 1);
    }
}
?>

Hinweis: Rekursive Funktions-/Methodenaufrufe mit einer Tiefe von über 100-200 können zu einem Stacküberlauf und damit zum Programmabbruch führen. Besonders unbegrenzte Rekursion wird als Programmierfehler erachtet.


Funktionsparameter

Mit einer Parameterliste kann man Informationen an eine Funktion übergeben. Die Parameterliste ist eine durch Kommas getrennte Liste von Ausdrücken. Die Parameter werden von links nach rechts ausgewertet.

PHP unterstützt die Weitergabe von Parametern als Werte (das ist der Standard), als Verweise und als Vorgabewerte. Eine variable Anzahl von Parametern wird ebenfalls unterstützt.

Beispiel #1 Arrays an Funktionen übergeben

<?php
function nimm_array($eingabe)
{
    echo "$eingabe[0] + $eingabe[1] = ", $eingabe[0]+$eingabe[1];
}
?>

As of PHP 8.0.0, the list of function arguments may include a trailing comma, which will be ignored. That is particularly useful in cases where the list of arguments is long or contains long variable names, making it convenient to list arguments vertically.

Beispiel #2 Function Argument List with trailing Comma

<?php
function takes_many_args(
    $first_arg,
    $second_arg,
    $a_very_long_argument_name,
    $arg_with_default = 5,
    $again = 'a default string', // This trailing comma was not permitted before 8.0.0.
)
{
    // ...
}
?>

As of PHP 8.0.0, passing optional arguments after mandatory arguments is deprecated. This can generally be resolved by dropping the default value. One exception to this rule are arguments of the form Type $param = null, where the null default makes the type implicitly nullable. This usage remains allowed, though it is recommended to use an explicit nullable type instead.

Beispiel #3 Passing optional arguments after mandatory arguments

<?php
function foo($a = [], $b) {} // Before
function foo($a, $b) {}      // After

function bar(A $a = null, $b) {} // Still allowed
function bar(?A $a, $b) {}       // Recommended
?>

Parameter als Verweise übergeben

Normalerweise werden den Funktionen Werte als Parameter übermittelt. Wenn man den Wert dieses Parameters innerhalb der Funktion ändert, bleibt der Parameter außerhalb der Funktion unverändert. Wollen Sie aber erreichen, dass die Änderung auch außerhalb der Funktion sichtbar wird, müssen Sie die Parameter als Verweise (Referenzen) übergeben.

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

Beispiel #4 Übergeben von Funktionsparametern als Verweis

<?php
function fuege_etwas_an(&$string)
{
    $string .= 'und etwas mehr.';
}
$str = 'Dies ist ein String, ';
fuege_etwas_an($str);
echo $str; // Ausgabe: 'Dies ist ein String, und etwas mehr.'
?>

Vorgabewerte für Parameter

Eine Funktion kann C++-artige Vorgabewerte für skalare Parameter wie folgt definieren:

Beispiel #5 Einsatz von Vorgabeparametern in Funktionen

<?php
function machkaffee($typ = "Cappuccino")
{
    return "Ich mache eine Tasse $typ.\n";
}
echo machkaffee();
echo machkaffee(null);
echo machkaffee("Espresso");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ich mache eine Tasse Cappuccino.
Ich mache eine Tasse .
Ich mache eine Tasse Espresso.

PHP gestattet es, Arrays und den speziellen Typ null als Vorgabewert zu nutzen, zum Beispiel:

Beispiel #6 Nichtskalare Typen als Vorgabewert

<?php
function makecoffee($types = array("cappuccino"), $coffeeMaker = NULL)
{
    $device = is_null($coffeeMaker) ? "hands" : $coffeeMaker;
    return "Ich mache eine Tasse ".join(", ", $types)." mit $device.\n";
}
echo makecoffee();
echo makecoffee(array("cappuccino", "lavazza"), "teapot");
?>

Der Vorgabewert muss ein konstanter Ausdruck sein, darf also zum Beispiel keine Variable, Eigenschaft einer Klasse oder ein Funktionsaufruf sein.

Bitte beachten Sie, dass alle Parameter mit Vorgabewert rechts von den Parametern ohne Vorgabewert stehen müssen - sonst wird es nicht funktionieren. Betrachten Sie folgendes Beispiel:

Beispiel #7 Ungültige Anwendung von Vorgabewerten

<?php
function mach_joghurt($typ = "rechtsdrehendes", $geschmack)
{
    return "Mache einen Becher $typ $geschmack-joghurt.\n";
}

echo mach_joghurt("Brombeer");   // arbeitet nicht wie erwartet
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Warning: Missing argument 2 in call to mach_joghurt() in
/usr/local/etc/httpd/htdocs/phptest/functest.html on line 41
Mache einen Becher Brombeer -joghurt.

Nun vergleichen Sie bitte obiges Beispiel mit folgendem:

Beispiel #8 Richtiger Einsatz von Vorgabewerten

<?php
function mach_joghurt($geschmack, $typ = "rechtsdrehendes")
{
    return "Mache einen Becher $typ $geschmack-Joghurt.\n";
}

echo mach_joghurt("Brombeer");   // arbeitet wie erwartet.
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Mache einen Becher rechtsdrehendes Brombeer-Joghurt.

Hinweis: Das Setzen von Standardwerten für Argumente, die als Referenz übergeben werden ("passed by reference") wird unterstützt.

Variable Anzahl von Parametern

PHP unterstützt eine variable Anzahl an Parametern für benutzerdefinierte Funktionen durch Verwendung des Token ....

Hinweis: Es ist ebenfalls möglich eine variable Anzahl an Parametern durch Verwendung von func_num_args(), func_get_arg(), und func_get_args() zu realisieren. Diese Technik wird nicht empfohlen, da sie vor der Einführung des ... Tokens verwendet wurde.

Eine Liste von Parametern kann das Token ... enthalten, um anzugeben, dass die Funktion eine variable Anzahl von Parametern akzeptiert. Die zusätzlichen Werte werden als Array an die entsprechende Variable übergeben. Zum Beispiel:

Beispiel #9 Verwendung von ... für den Zugriff auf variable Parameter

<?php
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

10

Das Token ... kann ebenfalls dazu verwendet werden, um ein Array oder Traversable-Objekt als Liste von Parametern zu übergeben:

Beispiel #10 Verwendung von ... zur Übergabe einer Parameterliste

<?php
function add($a, $b) {
    return $a + $b;
}

echo add(...[1, 2])."\n";

$a = [1, 2];
echo add(...$a);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3
3

Die Definition von regulären, positionierten Parametern vor dem ... ist natürlich weiterhin möglich. In einem solchen Fall werden dann nur die zusätzlichen Werte, die zu keinem positionierten Parameter gehören, in das durch ... erzeugte Array übernommen.

Es ist zudem ebenfalls möglich dem ... Token eine Typdeklaration voran zu stellen. Ist dies der Fall, müssen alle Werte, die für ... relevant sind, vom entsprechenden Typ sein.

Beispiel #11 Variable Parameter mit Typdeklaration

<?php
function total_intervals($unit, DateInterval ...$intervals) {
    $time = 0;
    foreach ($intervals as $interval) {
        $time += $interval->$unit;
    }
    return $time;
}

$a = new DateInterval('P1D');
$b = new DateInterval('P2D');
echo total_intervals('d', $a, $b).' days';

// Dieser Aufruf wird scheitern, da null keine Instanz von DateInterval ist
echo total_intervals('d', null);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2

Durch ein voran gestelltes & ist auch die Übergabe von variablen Parametern als Referenz möglich.

Ältere Versionen von PHP

Eine spezielle Syntax ist zur Definition von variablen Parametern nicht notwendig. Um auf die übergebenen Werte zugreifen zu können, stehen die Funktionen func_num_args(), func_get_arg() und func_get_args() bereit.

Das erste Beispiel von weiter oben würde in alten PHP-Versionen so umgesetzt werden können:

Beispiel #12 Zugriff auf variable Parameter in alten PHP-Versionen

<?php
function sum() {
    $acc = 0;
    foreach (func_get_args() as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

10

Named Arguments

PHP 8.0.0 introduced named arguments as an extension of the existing positional parameters. Named arguments allow passing arguments to a function based on the parameter name, rather than the parameter position. This makes the meaning of the argument self-documenting, makes the arguments order-independent and allows skipping default values arbitrarily.

Named arguments are passed by prefixing the value with the parameter name followed by a colon. Using reserved keywords as parameter names is allowed. The parameter name must be an identifier, specifying dynamically is not allowed.

Beispiel #13 Named argument syntax

<?php
myFunction(paramName: $value);
array_foobar(array: $value);

// NOT supported.
function_name($variableStoringParamName: $value);
?>

Beispiel #14 Positional arguments versus named arguments

<?php
// Using positional arguments:
array_fill(0, 100, 50);

// Using named arguments:
array_fill(start_index: 0, num: 100, value: 50);
?>

The order in which the named arguments are passed does not matter.

Beispiel #15 Same example as above with a different order of parameters

<?php
array_fill(value: 50, num: 100, start_index: 0);
?>

Named arguments can be combined with positional arguments. In this case, the named arguments must come after the positional arguments. It is also possible to specify only some of the optional arguments of a function, regardless of their order.

Beispiel #16 Combining named arguments with positional arguments

<?php
htmlspecialchars($string, double_encode: false);
// Same as
htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, 'UTF-8', false);
?>

Passing the same parameter multiple times results in an Error exception.

Beispiel #17 Error exception when passing the same parameter multiple times

<?php
function foo($param) { ... }

foo(param: 1, param: 2);
// Error: Named parameter $param overwrites previous argument
foo(1, param: 2);
// Error: Named parameter $param overwrites previous argument
?>


Rückgabewerte

Sie können Werte mit der optionalen return-Anweisung zurückgeben. Es können Variablen jeden Typs zurückgegeben werden, auch Arrays oder Objekte. Dies beendet sofort die Funktion und die Kontrolle wird wieder an die aufrufende Zeile zurückgegeben. Weitere Informationen finden Sie unter return.

Hinweis:

Wird return ausgelassen, dann wird der Wert null zurückgegeben.

Einsatz von return

Beispiel #1 Einsatz von return

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

?>

Es ist nicht möglich, mehrere Werte von einer Funktion zurückzugeben. Ein ähnliches Resultat kann man aber durch die Rückgabe eines Arrays erreichen.

Beispiel #2 Rückgabe mehrerer Werte als Array

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

Um von einer Funktion eine Referenz zurückzugeben, müssen Sie den Referenz-Operator & sowohl in der Funktionsdeklaration, als auch bei der Zuweisung des zurückgegebenen Wertes verwenden:

Beispiel #3 Rückgabe von Referenzen aus Funktionen

<?php
function &returniere_referenz()
{
    return $einereferenz;
}

$neuereferenz =& returniere_referenz();
?>

Weitere Informationen über Referenzen finden Sie im Kapitel Referenzen in PHP.


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 Variablen ist. Dies kann unter anderem für Callbacks, Funktionstabellen, usw. genutzt werden.

Variablenfunktionen funktionieren nicht mit Sprachkonstrukten wie echo, print, unset(), isset(), empty(), include und require. Sie müssen Ihre eigenen Wrapperfunktionen verwenden, um diese Konstrukte als Variablenfunktionen benutzen zu können.

Beispiel #1 Beispiel für Variablenfunktionen

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

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

// Dies ist eine Wrapperfunktion für echo
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();        // Dies ruft foo() auf

$func = 'bar';
$func('test');  // Dies ruft bar() auf

$func = 'echoit';
$func('test');  // Dies ruft echoit() auf
?>

Sie können auch die Methode eines Objektes mittels der variablen Funktionen aufrufen.

Beispiel #2 Variable Methode

<?php
class Foo
{
    function Variable()
    {
        $name = 'Bar';
        $this->$name(); // Dies ruft die Bar() Methode auf
    }

    function Bar()
    {
        echo "Das ist Bar";
    }
}

$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();   // Dies ruft $foo->Variable() auf

?>

Werden statische Methoden aufgerufen, ist der Funktionsaufruf stärker als der statische Eigenschaftsoperator:

Beispiel #3 Beispiel für variable Methoden mit statischen Eigenschaften

<?php
class Foo
{
    static $variable = 'statische Eigenschaft';
    static function Variable()
    {
        echo 'Method Variable called';
    }
}

echo Foo::$variable; // Dies gibt 'statische Eigenschaft' aus. Es bräuchte eine $variable im aktuellen Geltungsbereich.
$variable = "Variable";
Foo::$variable();  // Dies ruft $foo->Variable() auf, da $variable im aktuellen Geltungsbereich vorliegt.

?>

Beispiel #4 Komplexe Callables

<?php
class Foo
{
    static function bar()
    {
        echo "bar\n";
    }
    function baz()
    {
        echo "baz\n";
    }
}

$func = array("Foo", "bar");
$func(); // gibt "bar" aus
$func = array(new Foo, "baz");
$func(); // gibt "baz" aus
$func = "Foo::bar";
$func(); // gibt "bar" aus
?>

Siehe auch

  • is_callable()
  • call_user_func()
  • function_exists()
  • Variable Variablen


Interne (eingebaute) Funktionen

PHP enthält standardmäßig viele Funktionen und Konstrukte, weiterhin gibt es viele Funktionen die voraussetzen, dass bestimmte PHP-Extensions einkompiliert wurden, anderenfalls erhalten Sie beim Aufruf "undefined function"-Fehlermeldungen. Um z. B. Grafik-Funktionen wie imagecreatetruecolor() zu nutzen, müssen Sie PHP mit GD-Unterstützung kompilieren, oder um mysqli_connect() zu nutzen, muss Ihr PHP mit MySQLi-Unterstützung kompiliert sein. Viele Kernfunktionen wie z.B. die String- und Variablen-Funktionen sind bereits in jeder PHP-Version enthalten. Ein Aufruf von phpinfo() oder get_loaded_extensions() zeigt Ihnen, welche Extensions in Ihrer PHP-Installation verfügbar sind. Beachten Sie weiterhin, dass viele Extensions bereits standardmäßig aktiviert sind und das PHP-Manual nach Extensions unterteilt ist. Weitere Informationen zur Einrichtung von PHP finden Sie in den Kapiteln Konfiguration, Installation und den Kapiteln zu den einzelnen Extensions.

Wie Funktionsprototypen zu lesen und zu verstehen sind, ist im Kapitel 'Wie man eine Funktionsdefinition (Prototyp) liest' erklärt. Es ist wichtig zu erkennen, was eine Funktion zurückgibt und ob die übergebenen Parameter verändert werden. So gibt z.B. str_replace() den bearbeiteten String zurück, während usort() direkt auf der übergebenen Variablen arbeitet. Jede Handbuchseite enthält spezifische Informationen für jede Funktion wie ihre Parameter, die Rückgabewerte sowohl bei Erfolg als auch im Fehlerfall, Änderungen des Verhaltens und die Verfügbarkeit. Die Kenntnis dieser wichtigen (aber oft subtilen) Unterschiede ist von entscheidender Bedeutung für das Schreiben korrekten PHP-Codes.

Hinweis: Wenn Funktionen andere Parameter erhalten als erwartet, d.h. wenn z.B. ein Array übergeben wird obwohl ein String erwartet wird, so ist der Rückgabewert undefiniert. In solchen Fällen ist es üblich, dass null zurückgegeben wird. Dies ist aber nur eine Konvention, auf die Sie sich nicht unbedingt verlassen können.

Siehe auch

  • function_exists()
  • die Funktionsreferenz
  • get_extension_funcs()
  • dl()


Anonyme Funktionen

Anonyme Funktionen, auch bekannt als Closures, ermöglichen es Funktionen ohne Funktionsnamen zu schreiben. Sie sind am wertvollsten als Werte von callable-Parametern, haben aber noch viele andere Verwendungsmöglichkeiten.

Anonyme Funktionen werden unter Verwendung der Closure-Klasse implementiert.

Beispiel #1 Beispiel für eine anonyme Funktion

<?php
echo preg_replace_callback('~-([a-z])~', function ($match) {
    return strtoupper($match[1]);
}, 'hallo-welt');
// gibt halloWelt aus
?>

Closures können auch als Werte von Variablen verwendet werden; PHP konvertiert solche Ausdrücke automatisch in Instanzen der internen Klasse Closure. Die Zuweisung einer Closure an eine Variable verwendet die selbe Syntax wie andere Zuweisungen, einschließlich des abschließenden Semikolon:

Beispiel #2 Beispiel für die Zuweisung einer anonymen Funktion

<?php
$greet = function($name)
{
    printf("Hallo %s\r\n", $name);
};

$greet('Welt');
$greet('PHP');
?>

Closures können ebenfalls Variablen aus dem Eltern-Gültigkeitsbereich erben. Jede solche Variable muss an das use-Sprachkonstrukt übergeben werden. Von PHP 7.1 an dürfen diese Variablen keine superglobals, $this oder Variablen mit dem gleichen Name wie ein Parameter sein.

Beispiel #3 Erben von Variablen aus dem Eltern-Scope

<?php
$message = 'hallo';

// Kein "use"
$example = function () {
    var_dump($message);
};
$example();

// $message vererben
$example = function () use ($message) {
    var_dump($message);
};
$example();

// der Wert einer geerbten Variable ist der zum Zeitpunkt
// der Funktionsdefinition, nicht des Funktionsaufrufs
$message = 'welt';
$example();

// $message wieder herstellen
$message = 'hallo';

// vererben per Referenz
$example = function () use (&$message) {
    var_dump($message);
};
$example();

// Der geänderte Wert im Eltern-Gültigkeitsbereich
// wird in der aufgerufenen Funktion reflektiert
$message = 'welt';
$example();

// Closures können ebenfalls reguläre Parameter akzeptieren
$example = function ($arg) use ($message) {
    var_dump($arg . ' ' . $message);
};
$example("hallo");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Notice: Undefined variable: message in /example.php on line 6
NULL
string(5) "hallo"
string(5) "hallo"
string(5) "hallo"
string(4) "welt"
string(10) "hallo welt"

As of PHP 8.0.0, the list of scope-inherited variables may include a trailing comma, which will be ignored.

Das Erben von Variablen aus dem Eltern-Gültigkeitsbereich ist nicht das gleiche wie die Verwendung von globalen Variablen. Globale Variablen existieren im globalen Gültigkeitsbereich, der immer der gleiche ist, unabhängig davon welche Funktion ausgeführt wird. Der Eltern-Gültigkeitsbereich einer Closure ist die Funktion, in der die Closure deklariert wurde (nicht notwendigerweise die Funktion, aus der sie aufgerufen wurde). Betrachten Sie das folgende Beispiel:

Beispiel #4 Closures und Gültigkeitsbereiche

<?php
// Ein einfacher Einkaufswagen, der eine Liste von hinzugefügten Produkten
// enthält, und die Menge jedes Produkts. Enthält eine Methode, die den
// Gesamtpreise der Waren im Einkaufswagen unter Verwendung einer Closure
// als Callback berechnet.
class Cart
{
    const PRICE_BUTTER  = 1.00;
    const PRICE_MILK    = 3.00;
    const PRICE_EGGS    = 6.95;

    protected $products = array();

    public function add($product, $quantity)
    {
        $this->products[$product] = $quantity;
    }

    public function getQuantity($product)
    {
        return isset($this->products[$product]) ? $this->products[$product] :
               FALSE;
    }

    public function getTotal($tax)
    {
        $total = 0.00;

        $callback =
            function ($quantity, $product) use ($tax, &$total)
            {
                $pricePerItem = constant(__CLASS__ . "::PRICE_" .
                    strtoupper($product));
                $total += ($pricePerItem * $quantity) * ($tax + 1.0);
            };

        array_walk($this->products, $callback);
        return round($total, 2);
    }
}

$my_cart = new Cart;

// Lege ein paar Waren in den Einkaufskorb
$my_cart->add('butter', 1);
$my_cart->add('milk', 3);
$my_cart->add('eggs', 6);

// Gib die Gesamtsumme mit einer Mehrwertsteuer von 5% aus
print $my_cart->getTotal(0.05) . "\n";
// Das Ergebnis ist 54.29
?>

Beispiel #5 Automatisches Binden von $this

<?php

class Test
{
    public function testing()
    {
        return function() {
            var_dump($this);
        };
    }
}

$object = new Test;
$function = $object->testing();
$function();

?>

Wird eine anonyme Funktion im Kontext einer Klasse deklariert, so wird diese Klasse automatisch an jene gebunden, was $this innerhalb des Geltungsbereichs verfügbar macht. Ist diese automatische Bindung der aktuellen Klasse nicht erwünscht, dann können stattdessen statische anonyme Funktionen verwendet werden.

Statische anonyme Funktionen

Anonyme Funktionen können statisch deklariert werden. Dies verhindert, dass automatisch die aktuelle Klasse an sie gebunden wird. Objekte können zur Laufzeit ebenfalls nicht an sie gebunden werden.

Beispiel #6 Versuch der Verwendung von $this innerhalb einer statischen anonymen Funktion

<?php

class Foo
{
    function __construct()
    {
        $func = static function() {
            var_dump($this);
        };
        $func();
    }
};
new Foo();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Notice: Undefined variable: this in %s on line %d
NULL

Beispiel #7 Versuch ein Objekt an eine statische anonyme Funktion zu binden

<?php

$func = static function() {
    // function body
};
$func = $func->bindTo(new StdClass);
$func();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Warning: Cannot bind an instance to a static closure in %s on line %d

Changelog

Version | Beschreibung
7.1.0 | Anonyme Funktionen dürfen superglobals, $this und alle Variablen mit dem gleichen Namen wie Parameter nicht als freie Variablen verwenden.

Anmerkungen

Hinweis: Es ist möglich func_num_args(), func_get_arg() und func_get_args() innerhalb einer Closure zu verwenden.


Pfeilfunktionen

Pfeilfunktionen wurden in PHP 7.4 als prägnantere Syntax für anonyme Funktionen eingeführt.

Sowohl anonyme Funktionen wie Pfeilfunktionen sind unter Verwendung der Closure-Klasse implementiert.

Pfeilfunktionen haben die grundsätzliche Form fn (argument_list) => expr.

Pfeilfunktionen unterstützen dieselben Features wie anonyme Funktionen, außer, dass die Verwendung von Variablen des Elterngültigkeitsbereichs immer automatisch erfolgt.

Wenn eine Variable, die im Ausdruck verwendet wird, im Elterngültigkeitsbereich definiert ist, wird sie implizit per Wertübergabe gebunden. Im folgenden Beispiel verhalten sich die Funktionen $fn1 und $fn2 auf die gleiche Weise.

Beispiel #1 Pfeilfunktionen binden Variablen automatisch per Wertübergabe

<?php

$y = 1;

$fn1 = fn($x) => $x + $y;
// gleichwertig zur Verwendung von $y per Wertübergabe:
$fn2 = function ($x) use ($y) {
    return $x + $y;
};

var_export($fn1(3));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

4

Die funktioniert ebenfalls, wenn Pfeilfunktionen verschachtelt werden:

Beispiel #2 Pfeilfunktionen binden Variablen automatisch per Wertübergabe, selbst wenn sie verschachtelt sind

<?php

$z = 1;
$fn = fn($x) => fn($y) => $x * $y + $z;
// gibt 51 aus
var_export($fn(5)(10));
?>

Ähnlich wie bei anonymen Funktion, erlaubt die Pfeilfunktionssyntax beliebige Funktionssignaturen, einschließlich Parameter- und Rückgabetypen, Defaultwerten, variadischen Parametern, sowie Referenzübergabe und -rückgabe. Alle folgenden sind gültige Beispiele von Pfeilfunktionen:

Beispiel #3 Beispiele von Pfeilfunktionen

<?php

fn(array $x) => $x;
static fn(): int => $x;
fn($x = 42) => $x;
fn(&$x) => $x;
fn&($x) => $x;
fn($x, ...$rest) => $rest;

?>

Pfeilfunktionen verwenden Wertübergabe-Bindung. Dies entspricht in etwa der Verwendung von use($x) für jede Variable $x, die in der Pfeilfunktion verwendet wird. Wertübergabe-Bindung bedeutet, dass es nicht möglich ist Werte aus dem äußeren Geltungsbereich zu ändern. Anonyme Funktionen können statt dessen für Referenzübergabe-Bindungen verwendet werden.

Beispiel #4 Werte aus dem äußeren Geltungsbereich können nicht durch Pfeilfunktionen geändert werden

<?php

$x = 1;
$fn = fn() => $x++; // hat keine Wirkung
$fn();
var_export($x);  // gibt 1 aus

?>

Changelog

Version | Beschreibung
7.4.0 | Pfeilfunktionen sind verfügbar.

Anmerkungen

Hinweis: Es ist möglich func_num_args(), func_get_arg() und func_get_args() innerhalb einer Pfeilfunktion zu verwenden.


Klassen und Objekte

Inhaltsverzeichnis

  • Einführung
  • Die Grundlagen
  • Eigenschaften
  • Klassenkonstanten
  • Autoloading
  • Konstruktoren und Destruktoren
  • Sichtbarkeit
  • Objekt-Vererbung
  • Gültigkeitsbereichsoperator (::)
  • Static-Schlüsselwort
  • Klassenabstraktion
  • Interfaces
  • Traits
  • Anonyme Klassen
  • Überladung
  • Objektiteration
  • Magische Methoden
  • Final-Schlüsselwort
  • Objekte klonen
  • Objekte vergleichen
  • Späte statische Bindung
  • Objekte und Referenzen
  • Serialisierung von Objekten
  • Covariance and Contravariance
  • OOP-Changelog


Einführung

PHP hat ein vollständiges Objektmodell.

Unter den Features finden sich unter anderem Sichtbarkeit, abstrakte und finale Klassen und Methoden sowie magische Methoden, Interfaces und Cloning.

PHP behandelt Objekte auf die gleiche Art wie Referenzen oder Handles, das bedeutet, dass jede Variable eine Objektreferenz statt einer Kopie des gesamten Objekts enthält. Lesen Sie dazu auch den Abschnitt Objekte und Referenzen.

Tipp

Siehe auch Userland-Namensregeln.


Die Grundlagen

class

Einfache Klassendefinitionen beginnen mit dem Schlüsselwort class, gefolgt von einem Klassennamen, gefolgt von einem Paar geschweifter Klammern, die die Definitionen der Eigenschaften und Methoden der Klasse enthalten.

Der Klassenname kann jeder gültige Bezeichner sein, vorausgesetzt es ist kein von PHP reserviertes Wort. Ein gültiger Klassenname beginnt mit einem Buchstaben oder einem Unterstrich, gefolgt von einer beliebigen Anzahl von Buchstaben, Ziffern oder Unterstrichen; als regulärer Ausdruck formuliert: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$.

Eine Klasse darf aus ihren eigenen Konstanten, Variablen ("Eigenschaften" genannt) und Funktionen ("Methoden" genannt) bestehen.

Beispiel #1 Definition einer einfachen Klasse

<?php
class SimpleClass
{
    // Deklaration einer Eigenschaft
    public $var = 'ein Standardwert';

    // Deklaration einer Methode
    public function displayVar() {
        echo $this->var;
    }
}
?>

Die Pseudovariable $this ist verfügbar, falls eine Methode aus einem Objektkontext heraus aufgerufen wird. $this ist eine Referenz auf das aufrufende Objekt (üblicherweise das Objekt, zu dem die Methode gehört, aber möglicherweise ein anderes Objekt, falls die Methode statisch aus dem Kontext eines zusätzlichen Objektes aufgerufen wird). Von PHP 7.0.0 an führt das statische Aufrufen nicht-statischer Methoden aus einem inkompatiblen Kontext dazu, dass $this innerhalb der Methode nicht definiert ist. Der statische Aufruf einer nicht-statischen Methode aus einem inkompatiblen Kontext wurde von PHP 5.6.0 an missbilligt. Von PHP 7.0.0 an ist der statische Aufruf einer nicht-statischen Methode allgemein missbilligt (auch wenn sie aus einem kompatiblen Kontext aufgerufen wird). Vor PHP 5.6.0 lösten solche Aufrufe bereits eine Strict-Notice aus.

Beispiel #2 Einige Beispiele für die $this-Pseudovariable

Wir nehmen an, dass error_reporting für dieses Beispiel deaktiviert ist; andernfalls würde der folgende Code Deprecated- bzw. Strict-Notices auslösen, je nach verwendeter PHP-Version.

<?php
class A
{
    function foo()
    {
        if (isset($this)) {
            echo '$this ist definiert (';
            echo get_class($this);
            echo ")\n";
        } else {
            echo "\$this ist nicht definiert.\n";
        }
    }
}

class B
{
    function bar()
    {
        A::foo();
    }
}

$a = new A();
$a->foo();

A::foo();

$b = new B();
$b->bar();

B::bar();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

$this ist definiert (A)
$this ist nicht definiert.
$this ist definiert (B)
$this ist nicht definiert.

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

$this ist defined (A)
$this ist nicht defined.
$this ist nicht defined.
$this ist nicht defined.

new

Um eine Instanz einer Klasse zu erzeugen, muss das new-Schlüsselwort verwendet werden. Ein Objekt wird immer erzeugt, außer wenn das Objekt einen definierten Konstruktor besitzt, der aufgrund eines Fehlers eine Exception wirft. Klassen sollten vor ihrer Instantiierung definiert werden (in manchen Fällen ist dies eine Notwendigkeit).

Wenn ein string mit dem Namen einer Klasse mit new genutzt wird, wird eine neue Instanz dieser Klasse erzeugt. Falls sich die Klasse in einem Namensraum befindet, muss der vollqualifizierte Name hierfür genutzt werden.

Hinweis:

Falls der Konstruktor keine Übergabeargumente erwartet, können die Klammern hinter dem Klassennamen weggelassen werden.

Beispiel #3 Eine Instanz erzeugen

<?php
$instanz = new SimpleClass();

// dies ist auch mit einer Variablen möglich:
$klassenname = 'SimpleClass';
$instanz = new $klassenname(); // new SimpleClass()
?>

Im Kontext einer Klasse ist es möglich, neue Objekte mit new self und new parent anzulegen.

Wenn man eine bereits erzeugte Instanz einer Klasse einer neuen Variablen zuweist, wird die neue Variable auf die selbe Instanz zugreifen wie das Objekt, das zugewiesen wurde. Dieses Verhalten ist das selbe, wenn man Instanzen an Funktionen übergibt. Eine Kopie eines bereits erzeugten Objektes erhält man, indem man es klont.

Beispiel #4 Objektzuweisung

<?php
$instanz = new SimpleClass();

$zugewiesen   =  $instanz;
$referenz     =& $instanz;

$instanz->var = '$zugewiesen wird diesen Wert haben';

$instanz = null; // $instanz und $referenz werden null

var_dump($instanz);
var_dump($referenz);
var_dump($zugewiesen);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
NULL
object(SimpleClass)#1 (1) {
   ["var"]=>
     string(30) "$zugewiesen wird diesen Wert haben"
}

Mit PHP 5.3.0 wurden neue Möglichkeiten zur Erzeugung von Instanzen eines Objekts eingeführt:

Beispiel #5 Erzeugen neuer Objekte

<?php
class Test
{
    static public function getNew()
    {
        return new static;
    }
}

class Child extends Test
{}

$obj1 = new Test();
$obj2 = new $obj1;
var_dump($obj1 !== $obj2);

$obj3 = Test::getNew();
var_dump($obj3 instanceof Test);

$obj4 = Child::getNew();
var_dump($obj4 instanceof Child);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(true)

PHP 5.4.0 führte die Möglichkeit ein, auf ein Mitglied eines neu erzeugten Objekts in einem einzigen Ausdruck zuzugreifen:

Beispiel #6 Zugriff auf ein Mitglied eines neu erzeugten Objekts

<?php
echo (new DateTime())->format('Y');
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2016

Hinweis: Vor PHP 7.1 werden die Argumente nicht ausgewertet, wenn keine Konstruktor-Funktion definiert ist.

Eigenschaften und Methoden

Klassen-Eigenschaften und -Methoden leben in separaten "Namensräumen", so dass es eine Eigenschaft und eine Methode des selben Namens geben kann. Der Zugriff auf eine Eigenschaft und eine Methode wird gleich notiert, und ob auf eine Eigenschaft zugegriffen oder eine Methode aufgerufen wird, hängt einzig und allein vom Kontext ab, d.h. ob die Verwendung ein Variablenzugriff oder ein Funktionsaufruf ist.

Beispiel #7 Variablenzugriff vs. Methodenaufruf

<?php
class Foo
{
    public $bar = 'Eigenschaft';

    public function bar() {
        return 'Methode';
    }
}

$obj = new Foo();
echo $obj->bar, PHP_EOL, $obj->bar(), PHP_EOL;

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Eigenschaft
Methode

Das bedeutet, dass der Aufruf einer anonymen Funktion, die einer Eigenschaft zugewiesen wurde, nicht direkt möglich ist. Statt dessen muss beispielsweise die Eigenschaft zunächst einer Variablen zugewiesen werden. Von PHP 7.0.0 an ist es möglich, eine solche Eigenschaft direkt aufzurufen, indem man sie in Klammern einschließt.

Beispiel #8 Aufruf einer anonymen Funktion, die in einer Eigenschaft gespeichert ist

<?php
class Foo
{
    public $bar;

    public function __construct() {
        $this->bar = function() {
            return 42;
        };
    }
}

$obj = new Foo();

// von PHP 5.3.0 an:
$func = $obj->bar;
echo $func(), PHP_EOL;

// alternativ, von PHP 7.0.0 an:
echo ($obj->bar)(), PHP_EOL;

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

42

extends

Eine Klasse kann Methoden und Eigenschaften einer anderen Klasse erben, indem man das extends-Schlüsselwort in der Deklaration benutzt. Es ist nicht möglich, mehrere Klassen zu erweitern; eine Klasse kann nur eine einzige Basisklasse beerben.

Die geerbten Methoden und Eigenschaften können durch eine Neudeklaration mit dem gleichen Namen wie in der Elternklasse überschrieben werden. Falls die Elternklasse eine Methode als final definiert hat, kann diese Methode nicht überschrieben werden. Es ist möglich, auf die überschriebenen Methoden oder statischen Eigenschaften zuzugreifen, wenn diese mittels parent:: referenziert werden.

Wenn Methoden überschrieben werden, sollte die Parametersignatur gleich bleiben; andernfalls wird PHP einen E_STRICT-Fehler generieren. Dies gilt nicht für den Konstruktor, der das Überschreiben mit unterschiedlichen Parameter erlaubt.

Beispiel #9 Einfache Vererbung

<?php
class ExtendClass extends SimpleClass
{
    // Die Vatermethode überschreiben
    function displayVar()
    {
        echo "Erweiternde Klasse\n";
        parent::displayVar();
    }
}

$extended = new ExtendClass();
$extended->displayVar();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Erweiternde Klasse
ein Standardwert

::class

Das Schlüsselwort class kann auch für die Namensauflösung einer Klasse verwendet werden. Man erhält den vollständig qualifizierten Namen der Klasse ClassName durch Verwendung von ClassName::class. Dies ist vor allem dann praktisch, wenn mit Namensräumen gearbeitet wird.

Beispiel #10 Auflösung von Klassennamen

<?php
namespace NS {
    class ClassName {
    }

    echo ClassName::class;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NS\ClassName

Hinweis:

Bei der Auflösung des Klassennamens unter Verwendung von ::class handelt es sich um eine Transformation zur Übersetzungszeit. Das bedeutet, dass zu der Zeit, zu der die Klassennamen-Zeichenkette erzeugt wird, noch kein Autoloading erfolgt ist. Daraus folgt, dass Klassennamen erweitert werden, selbst wenn die Klasse nicht existiert. In diesem Fall wird kein Fehler erzeugt.

Beispiel #11 Fehlende Auflösung des Klassennamens>

<?php
print Does\Not\Exist::class;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Does\Not\Exist

Von PHP 8.0.0 an kann die Konstante ::class auch auf Objekte angewendet werden. Diese Auflösung des Klassennamens erfolgt nicht zur Übersetzungszeit, sondern zur Laufzeit. Sie hat die gleichen Auswirkungen wie der Aufruf von get_class() auf das Objekt.

Beispiel #12 Namensauflösung eines Objekts

<?php
namespace NS {
    class ClassName {
    }
}
$c = new ClassName();
print $c::class;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NS\ClassName

Nullsafe-Methoden und -Eigenschaften

Von PHP 8.0.0 an kann auf Eigenschaften und Methoden stattdessen auch mit dem "Nullsafe"-Operator zugegriffen werden: ?->. Der Nullsafe-Operator funktioniert genauso als Eigenschafts- oder Methodenzugriff wie oben, mit dem Unterschied, dass null zurückgegeben wird, statt dass eine Exception erzeugt wird, wenn das Objekt, das dereferenziert wird, null ist. Wenn die Dereferenzierung Teil einer Zeichenkette ist, wird der Rest der Zeichenkette übersprungen.

Der Effekt ist ähnlich, wie wenn man jeden Zugriff zuerst mit ist_null() prüft, aber kompakter.

Beispiel #13 Nullsafe Operator

<?php

// Von PHP 8.0.0 an entspricht diese Zeile:
$result = $repository?->getUser(5)?->name;

// dem folgenden Codeblock:
if (is_null($repository)) {
    $result = null;
} else {
    $user = $repository->getUser(5);
    if (is_null($user)) {
        $result = null;
    } else {
        $result = $user->name;
    }
}
?>

Hinweis:

Der Nullsafe-Operator wird am besten verwendet, wenn Null ein gültiger und potenziell erwarteter möglicher Rückgabewert für eine Eigenschaft oder eine Methode ist. Um einen Fehler anzuzeigen, ist die Erzeugung einer Exception vorzuziehen.


Eigenschaften

Variablen in einer Klasse werden "Eigenschaften" genannt. Die Begriffe "Attribute" oder "Felder" werden ebenfalls verwendet, um sich auf das selbe Konzept zu beziehen, aber innerhalb dieser Referenz wird der Begriff "Eigenschaften" verwendet. Diese werden definiert, indem man eines der Schlüsselwörter public, protected oder private, optional gefolgt von einer Typdeklaration, gefolgt von einer regulären Variablendeklaration verwendet. Die Deklaration darf eine Initialisierung des Variablenwertes beinhalten, der zu setzende Wert muss dabei allerdings ein konstanter Wert sein - d.h. dieser muss zum Kompilierungszeitpunkt ausgewertet werden können und darf nicht von Informationen abhängen, die erst zur Laufzeit zur Verfügung stehen.

Siehe Sichtbarkeit für mehr Informationen zur Bedeutung von public, protected und private.

Hinweis:

Um Abwärtskompatibilität mit PHP 4 zu gewährleisten, akzeptiert PHP 5 weiterhin die Verwendung des Schlüsselwortes var zur Deklaration von Eigenschaften anstelle von (oder zusätzlich zu) public, protected oder private. var wird jedoch nicht mehr benötigt. In den Versionen von PHP 5.0 bis 5.1.3 wurde die Verwendung von var als veraltet betrachtet und erzeugte eine E_STRICT-Warnung, aber seit PHP 5.1.3 ist dies nicht länger veraltet und erzeugt keine Warnung.

Wenn eine Eigenschaft mittels var anstelle von public, protected oder private deklariert wird, so wird PHP 5 diese Eigenschaft so behandeln, als wäre sie mittels public deklariert worden.

Innerhalb der Methoden einer Klasse kann auf nicht-statische Eigenschaften zugegriffen werden, indem man (den Objektoperator) -> verwendet: $this->Eigenschaft(wobei Eigenschaft der Name der Eigenschaft ist). Zugriff auf statische Eigenschaften erhält man, indem man (den Doppel-Doppelpunkt) :: verwendet: self::$Eigenschaft. Siehe auch Static-Schlüsselwort für mehr Informationen zu diesem Thema.

Die Pseudo-Variable $this ist innerhalb jeder Klassenmethode verfügbar, wenn diese Methode im Kontext eines Objektes aufgerufen wird. $this ist eine Referenz auf das aufrufende Objekt (üblicherweise das Objekt, zu dem diese Methode gehört; möglicherweise ein anderes Objekt, wenn die Methode statisch aus einem sekundären Objekt aufgerufen wird).

Beispiel #1 Deklaration von Eigenschaften

<?php
class SimpleClass
{
   // gültig ab PHP 5.6.0:
   public $var1 = 'Hallo ' . 'Welt';
   // gültig ab PHP 5.3.0:
   public $var2 = <<<EOD
Hallo Welt
EOD;
   // gültig ab PHP 5.6.0:
   public $var3 = 1+2;
   // Ungültige Deklarationen von Eigenschaften:
   public $var4 = self::myStaticMethod();
   public $var5 = $myVar;

   // Gültige Deklarationen von Eigenschaften:
   public $var6 = myConstant;
   public $var7 = array(true, false);

   // gültig ab PHP 5.3.0:
   public $var8 = <<<'EOD'
Hallo Welt
EOD;
}
?>

Hinweis:

Es gibt einige nützliche Funktionen für den Umgang mit Klassen und Objekten. Siehe hierzu Klassen- und Objekt-Funktionen.

Von PHP 5.3.0 an kann die Heredoc-Syntax und die Nowdoc-Syntax in jedem Kontext für statische Daten verwendet werden, einschließlich der Deklaration von Eigenschaften.

Beispiel #2 Beispiel für ein nowdoc zur Initialisierung einer Eigenschaft

<?php
class foo {
   // Seit PHP 5.3.0
   public $bar = <<<'EOT'
bar
EOT;
   public $baz = <<<EOT
baz
EOT;
}
?>

Hinweis:

Unterstützung für Nowdoc und Heredoc wurde in PHP 5.3.0 hinzugefügt.

Von PHP 7.4.0 an können Eigenschaftsdefinitionen eine Typdeklaration enthalten, mit der Ausnahme des callable Typs.

Beispiel #3 Beispiel von typisierten Eigenschaften

<?php

class User
{
    public int $id;
    public string $name;

    public function __construct(int $id, string $name)
    {
        $this->id = $id;
        $this->name = $name;
    }
}

$user = new User(1234, "php");
echo "ID: " . $user->id;
echo "\n";
echo "Name: " . $user->name;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

ID: 1234
Name: php


Klassenkonstanten

Es ist möglich für jede Klasse konstante Werte zu definieren, die gleich und unabänderlich bleiben. Konstanten weichen darin von normalen Variablen ab, dass man nicht das $ Symbol benutzt, um sie zu deklarieren oder zu benutzen. Die standardmäßige Sichtbarkeit einer Klassenkonstante ist public.

Der Wert kann nur ein konstanter Ausdruck sein, keine (zum Beispiel) Variablen, Klassenattribute oder Funktionsaufrufe.

Ein Interface kann ebenfalls constants enthalten. Die Interface-Dokumentation enthält Beispiele dazu.

Beginnend mit PHP 5.3.0 ist es möglich eine Variable als Klassenreferenz zu nutzen. Der Variablenwert kann kein Schlüsselwort (wie self, parent oder static) sein.

Es ist zu beachten, dass Klassenkonstanten nur einmal pro Klasse angelegt werden, und nicht für jedes Klassenexemplar.

Beispiel #1 Eine Konstante definieren und benutzen

<?php
class MyClass
{
    const CONSTANT = 'Konstanter Wert';

    function showConstant() {
        echo  self::CONSTANT . "\n";
    }
}

echo MyClass::CONSTANT . "\n";

$classname = "MyClass";
echo $classname::CONSTANT . "\n"; // Ab PHP 5.3.0

$class = new MyClass();
$class->showConstant();

echo $class::CONSTANT;  // Ab PHP 5.3.0
?>

Beispiel #2 Beispiel für statische Daten

<?php
class foo {
    // Ab PHP 5.3.0
    const BAR = <<<'EOT'
bar
EOT;
    // Ab PHP 5.3.0
    const BAZ = <<<EOT
baz
EOT;
}
?>

Hinweis:

Die Unterstützung der Initialisierung von Konstanten mit Heredoc und Nowdoc Syntax wurde in PHP 5.3.0 eingeführt.

Die spezielle ::class Konstante ist von PHP 5.5.0 an verfügbar, und erlaubt vollständig qualifizierte Klassennamensauflösung zur Kompilationszeit, was nützlich für Klassen in Namensräumen ist:

Beispiel #3 Beispiel für ::class in einem Namensraum

<?php
namespace foo {
    class bar {
    }

    echo bar::class; // foo\bar
}
?>

Beispiel #4 Beispiel mit konstanten Ausdrücken

<?php
const ONE = 1;

class foo {
    // Ab PHP 5.6.0
    const TWO = ONE * 2;
    const THREE = ONE + self::TWO;
    const SENTENCE = 'Der Wert von THREE ist '.self::THREE;
}
?>

Es ist möglich einen skalaren Ausdruck, der numerische und Zeichenketten-Literale und/oder Konstanten enthält, im Kontext einer Klassenkonstante zu verwenden.

Hinweis:

Die Unterstützung von konstanten Ausdrücken wurde in PHP 5.6.0 hinzugefügt.

Beispiel #5 Sichtbarkeitsmodifizierer von Klassenkonstanten

<?php
class Foo {
    // Von PHP 7.1.0 an
    public const BAR = 'bar';
    private const BAZ = 'baz';
}
echo Foo::BAR, PHP_EOL;
echo Foo::BAZ, PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7.1:

bar

Fatal error: Uncaught Error: Cannot access private const Foo::BAZ in …

Hinweis:

Von PHP 7.1.0 an sind Sichtbarkeitsmodifizierer für Klassenkonstanten erlaubt.


Autoloading

Viele Entwickler, die objektorientierte Anwendungen entwickeln, erzeugen eine eigene PHP Quelldatei für jede Klassendefinition. Eines der größten Ärgernisse ist die Notwendigkeit, eine lange Liste von benötigten Include-Anweisungen am Anfang eines jeden Skripts (eine für jede Klasse).

In PHP 5 ist das nicht länger notwendig. Die spl_autoload_register() Funktion registriert eine beliebige Anzahl von Autoladern, die es ermöglichen, dass Klassen und Schnittstellen automatisch geladen werden, wenn sie derzeit nicht definiert sind. Durch das Registrieren von Autoladern erhält PHP einen letzten Versuch, die Klasse zu laden, bevor es unter Ausgabe einer Fehlermeldung scheitert.

Tipp

Obwohl die __autoload() Funktion ebenso für das automatische Laden von Klassen und Schnittstellen genutzt werden kann, ist es zu bevorzugen die spl_autoload_register() Funktion zu verwenden. Dies ist so, weil sie eine flexiblere Alternative darstellt (die es ermöglicht eine beliebige Anzahl von Autoladern in der Anwendung zu spezifizieren, wie etwa bei Fremdbibliotheken). Aus diesem Grund wird von der Verwendung von __autoload() abgeraten, und von PHP 7.2.0 an missbilligt.

Hinweis:

Vor der Version 5.3.0 waren Exceptions, die in einer __autoload()-Funktion geworfen wurden nicht in einem Catch- Block fangbar und führten zu einem fatalen Fehler. Von PHP 5.3.0 an können Exceptions, die in einer __autoload-Funktion geworfen wurden, unter der folgenden Bedingung in einem Catch-Block gefangen werden. Wenn eine selbst definierte Exception geworfen wird, so muss die Klasse dieser Exception bereits verfügbar sein. Die __autoload- Funktion kann diese Exceptionklasse unter Umständen laden.

Hinweis:

Autoloading ist nicht verfügbar, wenn man PHP im CLI interaktiven Modus betreibt.

Hinweis:

Wird der Klassenname verwendet, z.B. in der Funktion call_user_func(), so ist zu beachten, dass er gefährliche Zeichen wie z.B. ../ enthalten kann. Es wird daher empfohlen keine Benutzereingaben an solche Funktionen weiterzugeben oder zumindest die Eingaben in __autoload() zu prüfen.

Beispiel #1 Autoload Beispiel

Dieses Beispiel versucht die Klassen MyClass1 und MyClass2 aus den entsprechenden Dateien MyClass1.php und MyClass2.php zu laden.

<?php
spl_autoload_register(function ($class_name) {
    include $class_name . '.php';
});

$obj  = new MyClass1();
$obj2 = new MyClass2();
?>

Beispiel #2 Weiteres Autoload Beispiel

Dieses Beispiel versucht das Interface ITest zu laden.

<?php

spl_autoload_register(function ($name) {
    var_dump($name);
});

class Foo implements ITest {
}

/*
string(5) "ITest"

Fatal error: Interface 'ITest' not found in ...
*/
?>

Beispiel #3 Autoloading mit Ausnahmebehandlung für 5.3.0+

In diesem Beispiel wird eine Exception geworfen und ein try/catch-Block demonstriert.

<?php
spl_autoload_register(function ($name) {
    echo "Möchte $name laden.\n";
    throw new Exception("Kann $name nicht laden.");
});

try {
    $obj = new NonLoadableClass();
} catch (Exception $e) {
    echo $e->getMessage(), "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Möchte NonLoadableClass laden.
Kann NonLoadableClass nicht laden.

Beispiel #4 Autoloading mit Ausnahmebehandlung für 5.3.0+ mit fehlender eigener Exception

In diesem Beispiel wird eine Exception geworfen für eine nicht ladbare eigene Exception.

<?php
spl_autoload_register(function ($name) {
    echo "Möchte $name laden.\n";
    throw new MissingException("Kann $name nicht laden.");
});

try {
    $obj = new NonLoadableClass();
} catch (Exception $e) {
    echo $e->getMessage(), "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Möchte NonLoadableClass laden.
Möchte MissingException laden.

Fatal error: Class 'MissingException' not found in testMissingException.php on line 4

Siehe auch

  • unserialize()
  • unserialize_callback_func
  • spl_autoload_register()
  • spl_autoload()
  • __autoload()


Konstruktoren und Destruktoren

Konstruktor

__construct ( mixed ...$values = "" ) : void

PHP erlaubt es Entwicklern, Konstruktormethoden für Klassen zu deklarieren. Klassen mit Konstruktormethoden rufen diese für jedes neu erzeugte Objekt auf, so dass Konstruktoren für alle Initialisierungen passend sind, die das Objekt brauchen könnte bevor es benutzt wird.

Hinweis: Konstruktoren von Vaterklassen werden nicht implizit aufgerufen, wenn die Kindklasse einen Konstruktor definiert. Um einen Vaterkonstruktor zu benutzen ist ein Aufruf von parent::__construct() innerhalb des Kindkonstruktors notwendig. Falls das Kind keinen Konstruktor definiert, dann kann er von der Vaterklasse genau wie eine normale Klassenmethode geerbt werden (falls er nicht als privat deklariert wurde).

Beispiel #1 Konstruktoren bei der Vererbung

<?php
class BaseClass {
    function __construct() {
        print "Im BaseClass Konstruktor\n";
    }
}

class SubClass extends BaseClass {
    function __construct() {
        parent::__construct();
        print "Im SubClass Konstruktor\n";
    }
}

class OtherSubClass extends BaseClass {
    // erbt den Konstruktor von BaseClass
}

// In BaseClass constructor
$obj = new BaseClass();

// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass();

// In BaseClass constructor
$obj = new OtherSubClass();
?>

Im Gegensatz zu anderen Methoden, generiert PHP keinen E_STRICT Fehler, wenn __construct() in einer Kindklasse andere Parameter definiert, als die __construct() Methode der Elternklasse.

Konstruktoren sind gewöhnliche Methoden, die bei der Instanziierung des entsprechenden Objekts aufgerufen werden. Als solche können sie eine beliebige Anzahl von Argumenten definieren, die erforderlich sein können, einen Typ haben können und einen Standardwert haben können. Konstruktorargumente werden aufgerufen, indem die Argumente in Klammern hinter den Klassennamen gesetzt werden.

Beispiel #2 Die Verwendung von Argumenten eines Konstruktors

<?php
class Punkt {
    protected int $x;
    protected int $y;

    public function __construct(int $x, int $y = 0) {
        $this->x = $x;
        $this->y = $y;
    }
}

// Beide Parameter übergeben.
$p1 = new Punkt(4, 5);
// Nur den erforderlichen Parameter übergeben. $y nimmt den Standardwert von 0 an.
$p2 = new Punkt(4);
// Mit benannten Parametern (von PHP 8.0 an):
$p3 = new Punkt(y: 5, x: 4);
?>

Wenn eine Klasse keinen Konstruktor hat oder der Konstruktor keine erforderlichen Argumente hat, können die Klammern weggelassen werden.

Konstruktoren alten Stils

Vor PHP 8.0.0 interpretieren Klassen im globalen Namensraum eine Methode, die den gleichen Namen wie die Klasse trägt, als Konstruktor alten Stils. Diese Syntax ist veraltet, und führt zu einem E_DEPRECATED-Fehler, ruft die Funktion aber trotzdem als Konstruktor auf. Wenn sowohl __construct() als auch eine Methode gleichen Namens definiert sind, wird __construct() aufgerufen.

In Namensraum-Klassen, oder ab PHP 8.0.0 in jeder Klasse, hat eine Methode mit dem Namen der Klasse keine besondere Bedeutung.

Verwenden Sie in neuem Code immer __construct().

Konstruktor-Promotion

Ab PHP 8.0.0 können Konstruktorparameter auch so befördert werden, dass sie einer Objekteigenschaft entsprechen. Sehr häufig werden Konstruktorparameter einer Eigenschaft im Konstruktor zugewiesen, aber ansonsten nicht bearbeitet. Die Konstruktor-Promotion bietet eine Kurzform für diesen Anwendungsfall. Das obige Beispiel könnte wie folgt umgeschrieben werden:

Beispiel #3 Die Verwendung der Beförderung von Konstruktor-Eigenschaften

<?php
class Punkt {
    public function __construct(protected int $x, protected int $y = 0) {
    }
}

Wenn ein Konstruktorargument einen Sichtbarkeitsmodifizierer enthält, interpretiert PHP es sowohl als Objekteigenschaft als auch als Konstruktorargument und weist der Eigenschaft den Wert des Arguments zu. Der Konstruktorkörper kann dann leer sein oder andere Anweisungen enthalten. Alle zusätzlichen Anweisungen werden ausgeführt, nachdem die Argumentwerte den entsprechenden Eigenschaften zugewiesen wurden.

Nicht alle Argumente müssen befördert werden. Beförderte und nicht beförderte Argumente können in beliebiger Reihenfolge zu kombiniert werden. Geförderte Argumente haben keinen Einfluss auf den Code, der den Konstruktor aufruft.

Hinweis:

Objekteigenschaften dürfen aufgrund der Mehrdeutigkeit, die in die Engine einfließen würde, nicht mit callable typisiert werden. Somit dürfen die angeführten Argumente auch nicht mit callable typisiert werden. Jede andere Typ-Deklaration ist jedoch erlaubt.

Hinweis:

Attribute, die auf ein befördertes Konstruktorargument gelegt werden, werden sowohl auf die Eigenschaft als auch auf das Argument übertragen.

Erzeugung über statische Methoden

PHP unterstützt nur einen einzigen Konstruktor pro Klasse. In einigen Fällen, kann es jedoch wünschenswert sein, dass ein Objekt auf verschiedene Weisen mit unterschiedlichen Eingaben erzeugt werden kann. Der empfohlene Weg, dies zu tun, ist die, Konstruktoren in statische Methoden zu packen.

Beispiel #4 Die Erzeugung über statische Methoden verwenden

<?php
class Produkt {

    private ?int $id;
    private ?string $name;

    private function __construct(?int $id = null, ?string $name = null) {
        $this->id = $id;
        $this->name = $name;
    }

    public static function fromBasicData(int $id, string $name): static {
        $neu = new static($id, $name);
        return $neu;
    }

    public static function fromJson(string $json): static {
        $daten = json_decode($json);
        return new static($daten['id'], $daten['name']);
    }

    public static function fromXml(string $xml): static {
        // Hier der eigene Code.
        $daten = convert_xml_to_array($xml);
        $neu = new static();
        $neu->id = $daten['id'];
        $neu->name = $daten['name'];
        return $neu;
    }
}

$p1 = Produkt::fromBasicData(5, 'Widget');
$p2 = Produkt::fromJson($some_json_string);
$p3 = Produkt::fromXml($some_xml_string);

Der Konstruktor kann private oder protected gemacht werden, um zu verhindern, dass er von außen aufgerufen wird. Wenn dies der Fall ist, kann nur eine statische Methode die Klasse instanziieren. Da sie in der gleichen Klassendefinition enthalten ist, hat sie Zugriff auf private Methoden, auch wenn sie nicht zur gleichen Objektinstanz gehören. Der private Konstruktor ist optional und kann je nach Anwendungsfall sinnvoll sein oder nicht.

Die drei public static Methoden veranschaulichen dann verschiedene Möglichkeiten das Objekt zu instanziieren.

  • fromBasicData() nimmt genau die Parameter, die benötigt werden, erzeugt dann das Objekt durch Aufruf des Konstruktors und Rückgabe des Ergebnisses.
  • fromJson() akzeptiert eine JSON-Zeichenkette und führt selbst eine Vorverarbeitung durch, um sie in das vom Konstruktor gewünschte Format zu konvertieren. Sie gibt dann das neue Objekt zurück.
  • fromXml() akzeptiert eine XML-Zeichenkette, vorverarbeitet sie und erzeugt dann ein leeres Objekt. Der Konstruktor wird immer noch aufgerufen, aber da alle Parameter optional sind, überspringt sie die Methode. Sie weist dann den Objekteigenschaften direkt Werte zu, bevor sie das Ergebnis zurückgibt.

In allen drei Fällen wird das Schlüsselwort static in den Namen der Klasse übersetzt, in der sich der Code befindet. In diesem Fall: Produkt.

Destruktor

__destruct ( ) : void

PHP 5 führt ein Destruktorkonzept ähnlich dem anderer objektorientierter Programmiersprachen wie C++ ein. Die Destruktormethode wird aufgerufen, sobald es keine weiteren Referenzen auf ein bestimmtes Objekt mehr gibt, oder in beliebiger Reihenfolge am Ende des Skripts.

Beispiel #5 Destruktor Beispiel

<?php

class MyDestructableClass
{
    function __construct() {
        print "Im Konstruktor\n";
    }

    function __destruct() {
        print "Zerstoere " . __CLASS__ . "\n";
    }
}

$obj = new MyDestructableClass();
?>

Wie Konstruktoren auch, werden Vaterdestruktoren nicht implizit durch die Engine aufgerufen. Um einen Vaterdestruktor zu benutzen muss man explizit die Funktion parent::__destruct() in der Destruktorimplementierung aufrufen. Ebenso wie Konstruktoren kann eine Kindklasse den Destruktor des Vaters erben, falls sie keinen eigenen implementiert.

Der Destruktor wird aufgerufen, wenn das Script mittels exit() abgebrochen wird. Wenn exit() innerhalb eines Destruktors aufgerufen wird, verhindert das die Ausführung von jeglichen weiteren Shutdown Routinen.

Hinweis:

Der Destruktor wird während der Skript-Abschaltung aufgerufen, weshalb die Header immer bereits gesendet sind. Das aktuelle Verzeichnis während der Beendigungsphase des Skripts kann bei einigen SAPIs (z.B. Apache) ein anderes sein.

Hinweis:

Der Versuch eine Exception aus einem Destruktor (der in der Beendigungsphase des Skripts aufgerufen wurde) heraus zu werfen wird einen fatalen Fehler auslösen.


Sichtbarkeit

Die Sichtbarkeit einer Eigenschaft, Methode oder (von PHP 7.1.0 an) einer Konstante kann definiert werden, indem man der Deklaration eines der Schlüsselwörter public, protected oder private voranstellt. Auf public deklarierte Elemente kann von überall her zugegriffen werden. Protected beschränkt den Zugang auf Elternklassen und abgeleitete Klassen (sowie die Klasse, die das Element definiert). Private grenzt die Sichtbarkeit einzig auf die Klasse ein, die das Element definiert.

Sichtbarkeit von Membern

Klasseneigenschaften müssen als public, private oder protected definiert werden. Wenn sie mit var deklariert werden, werden sie als public definiert.

Beispiel #1 Eigenschaftendeklaration

<?php
/**
 * Definiere MyClass
 */
class MyClass
{
    public $public = 'Public';
    protected $protected = 'Protected';
    private $private = 'Private';

    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj = new MyClass();
echo $obj->public; // Funktioniert
echo $obj->protected; // Fataler Fehler
echo $obj->private; // Fataler Fehler
$obj->printHello(); // Zeigt Public, Protected und Private

/**
 * Definiere MyClass2
 */
class MyClass2 extends MyClass
{
    // Wir können die public- und protected-Eigenschaften neu deklarieren,
    // aber nicht die private
    public $public = 'Public2';
    protected $protected = 'Protected2';

    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj2 = new MyClass2();
echo $obj2->public; // Funktioniert
echo $obj2->protected; // Fataler Fehler
echo $obj2->private; // Undefiniert
$obj2->printHello(); // Zeigt Public2, Protected2, Undefined

?>

Hinweis: Die PHP-4-Methode, Variablen mit dem Schlüsselwort var zu deklarieren, wird aus Gründen der Abswärtskompatibilität weiterhin unterstützt (als Synonym für das public-Schlüsselwort). In PHP 5 vor 5.1.3 hat dessen Verwendung eine E_STRICT-Warnung erzeugt.

Sichtbarkeit von Methoden

Klassenmethoden müssen mit public, private oder protected definiert werden. Methoden ohne jede explizite Deklaration sind als public definiert.

Beispiel #2 Methodendeklaration

<?php
/**
 * Definiere MyClass
 */
class MyClass
{
    // Deklariert einen public Konstruktor
    public function __construct() { }

    // Deklariere eine public Funktion
    public function MyPublic() { }

    // Deklariere eine protected Funktion
    protected function MyProtected() { }

    // Deklariere eine private Funktion
    private function MyPrivate() { }

    // Dies ist public
    function Foo()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate();
    }
}

$myclass = new MyClass;
$myclass->MyPublic(); // Funktioniert
$myclass->MyProtected(); // Fataler Fehler
$myclass->MyPrivate(); // Fataler Fehler
$myclass->Foo(); // Public, Protected und Private funktionieren

/**
 * Definiere MyClass2
 */
class MyClass2 extends MyClass
{
    // Dies ist public
    function Foo2()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate(); // Fataler Fehler
    }
}

$myclass2 = new MyClass2;
$myclass2->MyPublic(); // Funktioniert
$myclass2->Foo2(); // Public und Protected funktionieren, Private nicht

class Bar
{
    public function test() {
        $this->testPrivate();
        $this->testPublic();
    }

    public function testPublic() {
        echo "Bar::testPublic\n";
    }

    private function testPrivate() {
        echo "Bar::testPrivate\n";
    }
}

class Foo extends Bar
{
    public function testPublic() {
        echo "Foo::testPublic\n";
    }

    private function testPrivate() {
        echo "Foo::testPrivate\n";
    }
}

$myFoo = new Foo();
$myFoo->test(); // Bar::testPrivate
                // Foo::testPublic
?>

Constant Visibility

Von PHP 7.1.0 an können Klassenkonstanten als public, private, oder protected definiert werden. Konstanten, die ohne eine explizite Sichtbarkeitsangabe deklariert wurden, sind public.

Beispiel #3 Konstantendeklaration von PHP 7.1.0 an

<?php
/**
 * Definiere MyClass
 */
class MyClass
{
    // Deklariere eine öffentliche Konstante
    public const MY_PUBLIC = 'öffentlich';

    // Deklariere eine geschützte Konstante
    protected const MY_PROTECTED = 'geschützt';

    // Deklariere eine private Konstante
    private const MY_PRIVATE = 'privat';

    public function foo()
    {
        echo self::MY_PUBLIC;
        echo self::MY_PROTECTED;
        echo self::MY_PRIVATE;
    }
}

$myclass = new MyClass();
MyClass::MY_PUBLIC; // funktioniert
MyClass::MY_PROTECTED; // fataler Fehler
MyClass::MY_PRIVATE; // fataler Fehler
$myclass->foo(); // öffentlich, geschützt und private funktioniert

/**
 * Definiere MyClass2
 */
class MyClass2 extends MyClass
{
    // Dies ist öffentlich
    function foo2()
    {
        echo self::MY_PUBLIC;
        echo self::MY_PROTECTED;
        echo self::MY_PRIVATE; // fataler Fehler
    }
}

$myclass2 = new MyClass2;
echo MyClass2::MY_PUBLIC; // funktioniert
$myclass2->foo2(); // öffentlich und geschützt funktioniert, aber nicht privat
?>

Sichtbarkeit von anderen Objekten

Objekte des gleichen Types haben untereinander Zugriff auf die als private und protected markierten Member, obwohl es sich nicht um die gleichen Instanzen handelt. Dies liegt daran, dass die Details über die Implementierung innerhalb solcher Objekte bekannt sind.

Beispiel #4 Zugriff auf als private markierte Member des gleichen Objekttyps

<?php
class Test
{
    private $foo;

    public function __construct($foo)
    {
        $this->foo = $foo;
    }

    private function bar()
    {
        echo 'Zugriff auf die private Methode';
    }

    public function baz(Test $other)
    {
        // Ändern der privaten Eigenschaft ist möglich:
        $other->foo = 'Hallo';
        var_dump($other->foo);

        // Aufruf der privaten Methode ist ebenfalls möglich:
        $other->bar();
    }
}

$test = new Test('test');

$test->baz(new Test('other'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(5) "Hallo"
Zugriff auf die private Methode
+


Objekt-Vererbung

Vererbung ist ein gängiges Prinzip der Programmierung und PHP verwendet dieses Prinzip in seinem Objektmodell. Dieses Prinzip beeinflusst die Art und Weise, in der mehrere Klassen und Objekte in Beziehung zueinander stehen.

Wenn man zum Beispiel von einer Klasse erbt, so erbt die Unterklasse alle Methoden der Sichtbarkeiten public und protected von der Vaterklasse. Wenn eine Klasse diese Methoden nicht überschreibt, wird die ursprüngliche Funktionalität beibehalten.

Dies ist nützlich, um Funktionalität zu definieren und zu abstrahieren und erlaubt es, zusätzliche Funktionalität in ähnlichen Objekten zu implementieren, ohne sämtliche gemeinsame Funktionalitäten neu implementieren zu müssen.

Hinweis:

Wenn Autoloading nicht verwendet wird, so müssen die Klassen definiert werden bevor sie verwendet werden. Wenn eine Klasse eine andere erweitert, so muss die Vaterklasse vor der Kindklasse deklariert werden. Diese Regel gilt für Klassen, die von anderen Klassen und Interfaces erben.

Beispiel #1 Beispiel für Vererbung

<?php

class Foo
{
    public function printItem($string)
    {
        echo 'Foo: ' . $string . PHP_EOL;
    }

    public function printPHP()
    {
        echo 'PHP ist großartig.' . PHP_EOL;
    }
}

class Bar extends Foo
{
    public function printItem($string)
    {
        echo 'Bar: ' . $string . PHP_EOL;
    }
}

$foo = new Foo();
$bar = new Bar();
$foo->printItem('baz'); // Ausgabe: 'Foo: baz'
$foo->printPHP();       // Ausgabe: 'PHP ist großartig.'
$bar->printItem('baz'); // Ausgabe: 'Bar: baz'
$bar->printPHP();       // Ausgabe: 'PHP ist großartig.'

?>


Gültigkeitsbereichsoperator (::)

Der Gültigkeitsbereichsoperator (auch Paamayim Nekudotayim genannt) oder in einfacheren Worten der Doppel-Doppelpunkt ist ein Kürzel, das Zugriff auf statische, konstante und überschriebene Member oder Methoden einer Klasse erlaubt.

Wenn Sie diese Elemente außerhalb der Klassendefinition ansprechen, benutzen Sie den Namen der Klasse.

Beginnend mit PHP 5.3.0 ist es möglich, eine Variable als Klassenreferenz zu nutzen. Der Variablenwert kann kein Schlüsselwort (wie self, parent oder static) sein.

Paamayim Nekudotayim scheint auf den ersten Blick eine eigenartige Wahl für die Benennung eines Doppel-Doppelpunktes zu sein. Jedoch entschied sich das Zend Team ihn so zu nennen, während sie die Zend Engine 0.5 schrieben (welche PHP 3 antreibt). Tatsächlich bedeutet das Doppel-Doppelpunkt - in Hebräisch.

Beispiel #1 :: außerhalb der Klassendefinition

<?php
class MyClass {
    const CONST_VALUE = 'Ein konstanter Wert';
}

$classname = 'MyClass';
echo $classname::CONST_VALUE; // Ab PHP 5.3.0

echo MyClass::CONST_VALUE;
?>

Die drei speziellen Schlüsselwörter self, parent und static werden benutzt, um auf Member und Methoden von innerhalb der Klassendefinition zuzugreifen.

Beispiel #2 :: innerhalb der Klassendefinition

<?php
class OtherClass extends MyClass
{
    public static $my_static = 'statische var';

    public static function doubleColon() {
        echo parent::CONST_VALUE . "\n";
        echo self::$my_static . "\n";
    }
}

$classname = 'OtherClass';
$classname::doubleColon(); // Ab PHP 5.3.0

OtherClass::doubleColon();
?>

Wenn eine abgeleitete Klasse die Definition der Methode eines Vaters überschreibt, wird PHP die Methode des Vaters nicht aufrufen. Es obliegt der abgeleiteten Klasse, ob die Methode der Vaterklasse aufgerufen wird oder nicht. Dies gilt ebenfalls für Konstruktoren und Destruktoren, Überladung und magische Methodendefinitionen.

Beispiel #3 Eine Vatermethode aufrufen

<?php
class MyClass
{
    protected function myFunc() {
        echo "MyClass::myFunc()\n";
    }
}

class OtherClass extends MyClass
{
    // Die Definition des Vaters überschreiben
    public function myFunc()
    {
        // Aber dennoch die Funktion des Vaters aufrufen
        parent::myFunc();
        echo "OtherClass::myFunc()\n";
    }
}

$class = new OtherClass();
$class->myFunc();
?>

Siehe auch ein Beispiel zur Bedeutung von $this, wenn nicht-statische Methoden statisch aufgerufen werden.


Static-Schlüsselwort

Tipp

Diese Seite beschreibt die Verwendung des static Schlüsselworts, um statische Methoden und Eigenschaften zu definieren. static kann ebenfalls benutzt werden, um statische Variablen zu definieren und für späte statische Bindung. Bitte entnehmen Sie diesen Seiten Informationen zu diesen Bedeutungen von static.

Klassenmember oder -methoden als statisch zu deklarieren macht diese zugänglich, ohne dass man die Klasse instantiieren muss. Auf eine als statisch deklarierte Eigenschaft kann nicht mit einem instantiierten Klassenobjekt zugegriffen werden (auf eine statische Methode jedoch schon).

Für die Abwärtskompatibilität zu PHP 4 werden Eigenschaften oder Methoden behandelt, als ob diese als public static deklariert wären, wenn keine Sichtbarkeit deklariert wird.

Statische Methoden

Weil statische Methoden ohne die Instanz eines erzeugten Objektes aufrufbar sind, ist die Pseudovariable $this nicht innerhalb von der als statisch deklarierten Methode verfügbar.

Achtung

In PHP 5 erzeugt ein statischer Aufruf von nicht-statischen Methoden eine Warnung der Stufe E_STRICT.

Warnung

In PHP 7 ist der statische Aufruf von nicht-statischen Methoden missbilligt, und erzeugt eine Warnung der Stufe E_DEPRECATED. Die Unterstützung von statischen Aufrufen nicht-statischer Methoden kann in der Zukunft entfernt werden.

Beispiel #1 Statisches Methoden-Beispiel

<?php
class Foo {
    public static function aStaticMethod() {
        // ...
    }
}

Foo::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod(); // Von PHP 5.3.0 an
?>

Statische Eigenschaften

Auf statische Eigenschaften kann nicht durch das Objekt mittels des Pfeiloperators -> zugegriffen werden.

Wie bei jeder anderen statischen PHP-Variablen können als Initialwerte für statische Eigenschaften nur Zeichenketten und Konstanten zugewiesen werden, die Zuweisung berechneter Ausdrücke ist nicht möglich. In PHP 5.6 und später gelten die Regeln für const Ausdrücke: einige beschränkte Ausdrücke sind möglich, vorausgesetzt dass sie zur Kompilierzeit ausgewertet werden können.

Beginnend mit PHP 5.3.0 kann die Klasse über eine Variable referenziert werden. Der Variablenwert kann dabei kein Schlüsselwort (wie self, parent oder static) sein.

Beispiel #2 Beispiel für statische Eigenschaften

<?php
class Foo
{
    public static $my_static = 'foo';

    public function staticValue() {
        return self::$my_static;
    }
}

class Bar extends Foo
{
    public function fooStatic() {
        return parent::$my_static;
    }
}

print Foo::$my_static . "\n";

$foo = new Foo();
print $foo->staticValue() . "\n";
print $foo->my_static . "\n";      // Undefinierte "Eigenschaft" my_static

print $foo::$my_static . "\n";
$classname = 'Foo';
print $classname::$my_static . "\n"; // Von PHP 5.3.0 an

print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>


Klassenabstraktion

PHP 5 führt abstrakte Klassen und Methoden ein. Abstrakt definierte Klassen können nicht instanziiert werden. Jede Klasse, die wenigstens eine abstrakte Methode enthält, muss ebenso abstrakt sein. Abstrakt definierte Methoden deklarieren nur die Signatur der Methode - sie können nicht die Implementierung definieren.

Wenn eine abstrakte Klasse abgeleitet wird, müssen alle in der Deklaration der Elternklasse abstrakt bezeichneten Methoden durch das Kind definiert werden. Zusätzlich müssen diese Methoden mit derselben (oder einer weniger einschränkenden) Sichtbarkeit definiert werden. Wenn die abstrakte Methode zum Beispiel als protected definiert ist, muss die Funktionsimplementierung entweder als protected oder public, aber nicht private, definiert sein. Ebenfalls müssen die Methodensignaturen zueinander passen, d.h. die Type Hints und die Anzahl der verpflichtenden Parameter muss gleich sein. Wenn zum Beispiel die Kindklasse einen optionalen Parameter definiert, den die Signatur der abstrakten Methode nicht vorsieht, dann gibt es keinen Konflikt in den Signaturen. Gleiches gilt seit PHP 5.4 für Konstruktoren. Vor 5.4. konnten die Signaturen von Konstruktoren von einander abweichen.

Beispiel #1 Beispiel für abstrakte Klasse

<?php
abstract class AbstractClass
{
    // Die abgeleitete Klasse zwingen, diese Methoden zu definieren
    abstract protected function getValue();
    abstract protected function prefixValue($prefix);

    // Gemeinsame Methode
    public function printOut() {
        print $this->getValue() . "\n";
    }
}

class ConcreteClass1 extends AbstractClass
{
    protected function getValue() {
        return "ConcreteClass1";
    }

    public function prefixValue($prefix) {
        return "{$prefix}ConcreteClass1";
    }
}

class ConcreteClass2 extends AbstractClass
{
    public function getValue() {
        return "ConcreteClass2";
    }

    public function prefixValue($prefix) {
        return "{$prefix}ConcreteClass2";
    }
}

$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') ."\n";

$class2 = new ConcreteClass2;
$class2->printOut();
echo $class2->prefixValue('FOO_') ."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

Beispiel #2 Abstract class example

<?php
abstract class AbstractClass
{
  // Unsere abstrakte Methode muss nur die verpflichtenden Parameter definieren
  abstract protected function prefixName($name);

}

class ConcreteClass extends AbstractClass
{
  // Unsere Kindklasse kann optionale Parameter definieren die sich nicht in der
  // Signatur der Elternklasse wiederfinden
  public function prefixName($name, $separator = ".") {
      if ($name == "Pacman") {
          $prefix = "Mr";
      } elseif ($name == "Pacwoman") {
          $prefix = "Mrs";
      } else {
          $prefix = "";
      }
      return "{$prefix}{$separator} {$name}";
  }
}

$class = new ConcreteClass;
echo $class->prefixName("Pacman"), "\n";
echo $class->prefixName("Pacwoman"), "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Mr. Pacman
Mrs. Pacwoman

Älterer Code, der keine nutzerdefinierten Klassen oder Funktionen mit dem Namen 'abstract' besitzt, sollte ohne Änderungen lauffähig sein.


Interfaces

Interfaces erlauben die Erzeugung von Code, der spezifiziert, welche Methoden eine Klasse implementieren muss, ohne definieren zu müssen, wie diese Methoden implementiert werden.

Interfaces werden auf die selbe Weise wie eine Klasse definiert, aber mit dem interface Schlüsselwort anstatt des class Schlüsselworts, und ohne dass eine der Methoden ihren Inhalt definiert.

Alle in einem Interface deklarierten Methoden müssen public sein; dies liegt in der Natur eines Interfaces.

Es ist zu beachten, dass es möglich ist einen Konstruktor in einem Interface zu deklarieren, was in einigen Fällen nützlich sein kann, z.B. für die Verwendung durch Factories.

implements

Um ein Interface zu implementieren, wird der implements-Operator benutzt. Alle Methoden des Interfaces müssen innerhalb der Klasse implementiert werden; Unterlassung wird zu einem fatalen Fehler führen. Klassen dürfen, falls dies gewünscht wird, mehr als ein Interface implementieren, indem man die Interfaces voneinander mit einem Komma abtrennt.

Hinweis:

Vor PHP 5.3.9 konnte eine Klasse nicht zwei Interfaces, die identische Funktionsnamen deklarieren, implementieren, da dies zu Doppeldeutigkeiten führen würde. Neuere Versionen von PHP erlauben dies, solange die doppelten Methoden die gleiche Signatur haben.

Hinweis:

Ein Interface kann ebenso wie eine Klasse mit Hilfe des Schlüsselwortes extends erweitert werden.

Hinweis:

Die Klasse, die das Interface implementiert, muss eine Methodensignatur verwenden, die gemäß LSP (Liskovsches Substitutionsprinzip) kompatibel ist. Andernfalls führt das zu einem fatalen Fehler.

Konstanten

Ein Interface kann Konstanten definieren. Interface-Konstanten funktionieren genauso wie Klassenkonstanten, außer dass sie von anderen Interfaces oder Klassen, die von diesem Interface erben, nicht verändert werden können.

Beispiele

Beispiel #1 Interface-Beispiel

<?php
// Deklariere das Interface 'iTemplate'
interface iTemplate
{
    public function setVariable($name, $var);
    public function getHtml($template);
}

// Implementiere das Interface
// Dies funktioniert
class Template implements iTemplate
{
    private $vars = array();

    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }

    public function getHtml($template)
    {
        foreach($this->vars as $name => $value) {
            $template = str_replace('{' . $name . '}', $value, $template);
        }

        return $template;
    }
}

// Dies wird nicht funktionieren
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
    private $vars = array();

    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
}

?>

Beispiel #2 Interface-Vererbung

<?php
interface a

public function foo();

interface b extends a
{
  public function baz(Baz $baz);
}

// Dies Funktioniert
class c implements b
{
  public function foo()
  {
  }

  public function baz(Baz $baz)
  {
  }
}

// Dies funktioniert nicht und führt zu einem fatalen Fehler
class d implements b
{
  public function foo()
  {
  }

  public function baz(Foo $foo)
  {
  }
}
?>

Beispiel #3 Interface-Mehrfachvererbung

<?php
interface a
{
  public function foo();
}

interface b
{
  public function bar();
}

interface c extends a, b
{
  public function baz();
}

class d implements c
{
  public function foo()
  {
  }

  public function bar()
  {
  }

  public function baz()
  {
  }
}
?>

Beispiel #4 Interfaces mit Konstanten

<?php
interface a
{
  const b = 'Interface constant';
}

// Ausgabe: Interface constant
echo a::b;

// Der folgende Abschnitt wird nicht funktionieren, da
// ein Überschreiben der Konstanten nicht gestattet ist.
class b implements a
{
  const b = 'Class constant';
}
?>

Ein Interface, in Verbindung mit Type Hinting, bietet eine gute Möglichkeit, um sicherzustellen, dass ein bestimmtes Objekt bestimmte Methoden enthält. Siehe instanceof-Operator und Typdeklarationen.


Traits

Seit PHP 5.4.0 gibt es in PHP eine Methode der Wiederverwendung von Code, die Traits genannt wird.

Traits sind ein Mechanismus zur Wiederverwendung von Code, der in Programmiersprachen mit einfacher Vererbung wie PHP verwendet wird. Ein Trait kann verwendet werden, um den Beschränkungen der einfachen Vererbung auszuweichen, indem er erlaubt, dass Mengen von Methoden frei in mehreren unabhängigen Klassen, die in verschiedenen Klassenhierarchien stecken, wiederzuverwenden. Die Semantik der Kombination von Traits und Klassen ist so definiert, dass die Komplexität reduziert wird und die üblichen Probleme vermeidet, die mit Mehrfachvererbung und Mixins in Verbindung gebracht werden.

Ein Trait hat Ähnlichkeit mit einer Klasse, ist aber nur dafür vorgesehen, Funktionalität in einer feingranularen und konsistenten Art und Weise zu bündeln. Es ist nicht möglich einen Trait alleinstehend zu instantiieren. Es handelt sich um einen Zusatz zur traditionellen Vererbung und erlaubt horizontale Komposition von Verhaltensweisen, d.h. die Verwendung von Klassenmethoden ohne Vererbung vorauszusetzen.

Beispiel #1 Trait Beispiel

<?php
trait ezcReflectionReturnInfo {
    function getReturnType() { /*1*/ }
    function getReturnDescription() { /*2*/ }
}

class ezcReflectionMethod extends ReflectionMethod {
    use ezcReflectionReturnInfo;
    /* ... */
}

class ezcReflectionFunction extends ReflectionFunction {
    use ezcReflectionReturnInfo;
    /* ... */
}
?>

Rangfolge

Methoden der aktuellen Klasse überschreiben Methoden, welche von Traits definiert wurden. Jene wiederum überschreiben von Elternklassen geerbte Methoden.

Beispiel #2 Rangfolge Beispiel

Die Methode sayHello der Basisklasse wird durch die gleichnamige Methode aus dem Trait überschrieben.

<?php
class Base {
    public function sayHello() {
        echo 'Hallo ';
    }
}

trait SayWorld {
    public function sayHello() {
        parent::sayHello();
        echo 'Welt!';
    }
}

class MyHelloWorld extends Base {
    use SayWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hallo Welt!

Beispiel #3 Weiteres Beispiel für Rangfolge

<?php
trait HelloWorld {
    public function sayHello() {
        echo 'Hallo Welt!';
    }
}

class TheWorldIsNotEnough {
    use HelloWorld;
    public function sayHello() {
        echo 'Hallo Universum!';
    }
}

$o = new TheWorldIsNotEnough();
$o->sayHello();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hallo Universum!

Mehrere Traits

Mehrere Traits können durch eine kommaseparierte Auflistung im Use- Statement zu einer Klasse hinzugefügt werden.

Beispiel #4 Verwendung mehrerer Traits

<?php
trait Hello {
    public function sayHello() {
        echo 'Hallo ';
    }
}

trait World {
    public function sayWorld() {
        echo ' Welt';
    }
}

class MyHelloWorld {
    use Hello, World;
    public function sayExclamationMark() {
        echo '!';
    }
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
$o->sayExclamationMark();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hallo Welt!

Konfliktauflösung

Falls zwei Traits eine Methode mit gleichem Namen einfügen, so wird ein Fatal Error erzeugt, wenn der Konflikt nicht explizit aufgelöst wird.

Um einen Namenskonflikt zwischen Traits in der gleichen Klasse aufzulösen muss der insteadof-Operator verwendet werden, um genau eine der Methoden des Konflikts auszuwählen.

Da dies es nur erlaubt Methoden auszuschließen kann der as-Operator verwendet werden, um einen Alias zu einer der Methoden hinzuzufügen. Es ist zu beachten, dass der as Operator die Methode nicht umbenennt, und auch keine andere Methode beeinflusst.

Beispiel #5 Konfliktauflösung

In diesem Beispiel verwendet die Klasse Talker die Traits A und B. Nachdem A und B sich widersprechende Methoden besitzen definiert die Klasse, dass sie die Variante von smallTalk aus dem Trait B und die Variante von bigTalk des Traits A verwenden möchte.

Die Klasse Aliased_Talker verwendet den as-Operator, damit sie außerdem die Implementierung der bigTalk-Methode von B unter dem Alias talk verwenden kann.

<?php
trait A {
    public function smallTalk() {
        echo 'a';
    }
    public function bigTalk() {
        echo 'A';
    }
}

trait B {
    public function smallTalk() {
        echo 'b';
    }
    public function bigTalk() {
        echo 'B';
    }
}

class Talker {
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
    }
}

class Aliased_Talker {
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
        B::bigTalk as talk;
    }
}
?>

Hinweis:

Vor PHP 7.0 erzeugte das Definieren einer Eigenschaft in einer Klasse mit dem selben Namen wie in einem Trait ein E_STRICT, wenn die Klassendefinition kompatibel war (selbe Sichtbarkeit und Initialwert).

Veränderung der Sichtbarkeit von Methoden

Mit der as-Syntax ist es ebenso möglich, die Sichtbarkeit einer Methode in der darstellenden Klasse zu verändern.

Beispiel #6 Veränderung der Sichtbarkeit von Methoden

<?php
trait HelloWorld {
    public function sayHello() {
        echo 'Hallo Welt!';
    }
}

// Ändern der Sichtbarkeit von sayHello
class MyClass1 {
    use HelloWorld { sayHello as protected; }
}

// Alias der Methode mit geänderter Sichtbarkeit
// Die Sichtbarkeit von sayHello bleibt unverändert
class MyClass2 {
    use HelloWorld { sayHello as private myPrivateHello; }
}
?>

Trait-Zusammensetzung aus Traits

Ebenso wie Klassen können auch Traits andere Traits verwenden. Indem man einen oder mehrere Traits in einer Traitdefinition verwendet kann man Traits entweder teilweise oder vollständig aus Methoden, welche in anderen Traits definiert sind, zusammensetzen.

Beispiel #7 Trait-Zusammensetzung aus Traits

<?php
trait Hello {
    public function sayHello() {
        echo 'Hallo ';
    }
}

trait World {
    public function sayWorld() {
        echo 'Welt!';
    }
}

trait HelloWorld {
    use Hello, World;
}

class MyHelloWorld {
    use HelloWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hallo Welt!

Abstrakte Traitmember

Traits unterstützen auch die Verwendung von abstrakten Methoden, um darstellenden Klassen Anforderungen aufzudrängen.

Achtung

Eine konkrete Klasse erfüllt die Anforderungen durch die Definition einer konkreten Methode mit dem selben Namen; deren Signatur kann sich unterscheiden.

Beispiel #8 Ausdrücken von Anforderungen durch abstrakte Methoden

<?php
trait Hello {
    public function sayHelloWorld() {
       echo 'Hallo'.$this->getWorld();
    }
    abstract public function getWorld();
}

class MyHelloWorld {
    private $world;
    use Hello;
    public function getWorld() {
        return $this->world;
    }
    public function setWorld($val) {
        $this->world = $val;
    }
}
?>

Statische Traitmember

Traits unterstützen sowohl statische Variablen als auch statische Methoden.

Beispiel #9 Statische Variablen

<?php
trait Counter {
    public function inc() {
        static $c = 0;
        $c = $c + 1;
        echo "$c\n";
    }
}

class C1 {
    use Counter;
}

class C2 {
    use Counter;
}

$o = new C1(); $o->inc(); // echo 1
$p = new C2(); $p->inc(); // echo 1
?>

Beispiel #10 Statische Methoden

<?php
trait StaticExample {
    public static function doSomething() {
        return 'Tue etwas';
    }
}

class Example {
    use StaticExample;
}

Example::doSomething();
?>

Attribute

Traits können ebenfalls Attribute definieren.

Beispiel #11 Attribute definieren

<?php
trait PropertiesTrait {
    public $x = 1;
}

class PropertiesExample {
    use PropertiesTrait;
}

$example = new PropertiesExample;
$example->x;
?>

Definiert ein Trait eine Eigenschaft, dann kann eine Klasse keine Eigenschaft mit dem selben Namen definieren, es sei denn, sie ist kompatibel (selbe Sichtbarkeit und Initialwert); andernfalls wird ein fataler Fehler auftreten. Vor PHP 7.0.0 erzeugte das Definieren einer Eigenschaft in der Klasse mit selber Sichtbarkeit und Initialwert wie im Trait einen E_STRICT Hinweis.

Beispiel #12 Konfliktauflösung

<?php
trait PropertiesTrait {
    public $same = true;
    public $different = false;
}

class PropertiesExample {
    use PropertiesTrait;
    public $same = true; // Erlaubt von PHP 7.0.0 an; E_STRICT Hinweis zuvor
    public $different = true; // Fatal error
}
?>


Anonyme Klassen

Unterstützung für anonyme Klassen wurde in PHP 7 hinzugefügt. Anonyme Klassen sind nützlich, wenn einfache Objekte zum einmaligen Gebrauch erzeugt werden müssen.

<?php

// Code vor PHP 7
class Logger
{
    public function log($msg)
    {
        echo $msg;
    }
}

$util->setLogger(new Logger());

// PHP 7+ Code
$util->setLogger(new class {
    public function log($msg)
    {
        echo $msg;
    }
});

Sie können Argumente über ihren Konstruktor empfangen, andere Klassen erweitern, Interfaces implementieren und Traits verwenden, so wie das eine normale Klasse auch kann:

<?php

class SomeClass {}
interface SomeInterface {}
trait SomeTrait {}

var_dump(new class(10) extends SomeClass implements SomeInterface {
    private $num;

    public function __construct($num)
    {
        $this->num = $num;
    }

    use SomeTrait;
});

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(class@anonymous)#1 (1) {
  ["Command line code0x104c5b612":"class@anonymous":private]=>
  int(10)
}

Das Verschachteln einer anonymen Klasse innerhalb einer anderen Klasse gibt jener keinen Zugriff auf private oder geschützte Methoden oder Eigenschaften der äußeren Klasse. Um die geschützten Methoden oder Eigenschaften der äußeren Klasse zu verwenden, kann die anonyme Klasse die äußere Klasse erweitern. Um private Eigenschaften der äußeren Klasse in der anonymen Klasse zu verwenden, müssen sie dem Konstruktor übergeben werden:

<?php

class Outer
{
    private $prop = 1;
    protected $prop2 = 2;

    protected function func1()
    {
        return 3;
    }

    public function func2()
    {
        return new class($this->prop) extends Outer {
            private $prop3;

            public function __construct($prop)
            {
                $this->prop3 = $prop;
            }

            public function func3()
            {
                return $this->prop2 + $this->prop3 + $this->func1();
            }
        };
    }
}

echo (new Outer)->func2()->func3();

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

6

All objects created by the same anonymous class declaration are instances of that very class.

<?php
function anonymous_class()
{
    return new class {};
}

if (get_class(anonymous_class()) === get_class(anonymous_class())) {
    echo 'same class';
} else {
    echo 'different class';
}

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

same class

Hinweis:

Es ist zu beachten, dass anonymen Klassen von der Engine ein Name zugewiesen wird, wie im folgenden Beispiel gezeigt. Dieser Name muss als Implementierungsdetail eingestuft werden, auf dass sich nicht verlassen werden sollte.

<?php
echo get_class(new class {});

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

class@anonymous/in/oNi1A0x7f8636ad2021


Überladung

Überladung bietet in PHP Möglichkeiten, um dynamisch Eigenschaften und Methoden zu erzeugen. Diese dynamisch erzeugten Entitäten werden unter Zuhilfenahme von magischen Methoden verarbeitet, die man in einer Klasse zu verschiedenen Aktivitäten definieren kann.

Die Überladungsmethoden werden aufgerufen, wenn mit Eigenschaften oder Methoden interagiert wird, die entweder nicht deklariert wurden oder im aktuellen Geltungsbereich nicht sichtbar sind. Im Rest dieses Abschnitts werden die Begriffe unzugreifbare Eigenschaft und unzugreifbare Methode verwendet, um auf die Kombination von Deklaration und Sichtbarkeit zu verweisen.

Alle Überladungsmethoden müssen als public definiert sein.

Hinweis:

Keiner der Parameter dieser magischen Methoden kann als Referenz übergeben werden.

Hinweis:

Die Interpretation von Überladung weicht von den meisten objektorientierten Programmiersprachen ab. Traditionell bezeichnet Überladung die Möglichkeit mehrere Methoden mit gleichem Namen aber unterschiedlichen Anzahlen und Typen von Parametern zu definieren.

Changelog

Version | Beschreibung
5.3.0 | __callStatic hinzugefügt. Eine Warnung wurde hinzugefügt, um die Sichtbarkeit public und nicht statische Deklaration zu erzwingen.
5.1.0 | __isset und __unset hinzugefügt. Unterstützung von __get() zum Überladen von privaten Eigenschaften hinzugefügt.
5.0.0 | __get() hinzugefügt.

Überladung von Eigenschaften

public __set ( string $name , mixed $value ) : void
public __get ( string $name ) : mixed
public __isset ( string $name ) : bool
public __unset ( string $name ) : void

__set wird aufgerufen, wenn Daten in unzugreifbare (protected oder private) Eigenschaften geschrieben werden sollen.

__get wird verwendet, um Daten aus unzugreifbaren (protected oder private) Eigenschaften zu lesen.

__isset wird aufgerufen, indem isset() oder empty() auf unzugreifbare (protected oder private) Eigenschaften angewendet wird.

__unset wird aufgerufen, wenn unset() für unzugreifbaren (protected oder private) Eigenschaften aufgerufen wird.

Der Parameter $name beinhaltet den Namen der Eigenschaft, mit der interagiert wird. Der Parameter $value der Funktion __set spezifiziert den Wert den die Eigenschaft $name annehmen soll.

Überladung von Eigenschaften funktioniert nur im Kontext von Objekten. Diese magischen Methoden werden nicht aus einem statischen Kontext aufgerufen. Diese Methoden sollten daher nicht als static deklariert werden. Seit PHP 5.3.0 wird eine Warnung ausgegeben, wenn eine dieser magischen Überladungsmethoden als static deklariert ist.

Hinweis:

Der Rückgabewert von __set wird, aufgrund der Behandlung des Zuweisungsoperators in PHP, ignoriert. Aus ähnlichen Gründen wird __get nicht aufgerufen, wenn man Zuweisungen in etwa wie folgt verkettet:

 $a = $obj->b = 8;

Beispiel #1 Überladung von Eigenschaften mit den Methoden __get, __set, __isset und __unset

<?php
class EigenschaftTest
{
    /**  Speicherplatz für überladene Daten.  */
    private $data = array();

    /**  Überladung wird nicht bei deklarierten Eigenschaften benutzt.  */
    public $declared = 1;

    /**  Überladung wird nur von außerhalb der Klasse angewendet.  */
    private $hidden = 2;

    public function __set($name, $value)
    {
        echo "Setze '$name' auf '$value'\n";
        $this->data[$name] = $value;
    }

    public function __get($name)
    {
        echo "Lese '$name'\n";
        if (array_key_exists($name, $this->data)) {
            return $this->data[$name];
        }

        $trace = debug_backtrace();
        trigger_error(
            'Undefinierte Eigenschaft für __get(): ' . $name .
            ' in ' . $trace[0]['file'] .
            ' Zeile ' . $trace[0]['line'],
            E_USER_NOTICE);
        return null;
    }

    /** Seit PHP 5.1.0  */
    public function __isset($name)
    {
        echo "Ist '$name' gesetzt?\n";
        return isset($this->data[$name]);
    }

    /** Seit PHP 5.1.0  */
    public function __unset($name)
    {
        echo "Lösche '$name'\n";
        unset($this->data[$name]);
    }

    /**  Keine magische Methode, nur beispielhaft hier.  */
    public function getHidden()
    {
        return $this->hidden;
    }
}

echo "<pre>\n";

$obj = new EigenschaftTest;

$obj->a = 1;
echo $obj->a . "\n\n";

var_dump(isset($obj->a));
unset($obj->a);
var_dump(isset($obj->a));
echo "\n";

echo $obj->declared . "\n\n";

echo "Wir experimentieren nun mit der private-Eigenschaft 'hidden':\n";
echo "Private ist innerhalb der Klasse sichtbar, also wird __get() nicht benutzt...\n";
echo $obj->getHidden() . "\n";
echo "Private nicht sichtbar von außerhalb der Klasse, also wird __get() benutzt...\n";
echo $obj->hidden . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Setze 'a' auf '1'
Lese 'a'
1

Ist 'a' gesetzt?
bool(true)
Lösche 'a'
Ist 'a' gesetzt?
bool(false)

1

Wir experimentieren nun mit der private-Eigenschaft 'hidden':
Private ist innerhalb der Klasse sichtbar, also wird __get() nicht benutzt...
2
Private nicht sichtbar von außerhalb der Klasse, also wird __get() benutzt...
Lese 'hidden'

Notice:  Undefinierte Eigenschaft für __get(): hidden in <file> Zeile 70 in <file> on line 29

Überladung von Methoden

public __call ( string $name , array $arguments ) : mixed
public static __callStatic ( string $name , array $arguments ) : mixed

__call wird aufgerufen, wenn eine unzugreifbare Methode in einem Objekt aufgerufen wird.

__callStatic wird aufgerufen, wenn eine unzugreifbare Methode in einem statischen Kontext aufgerufen wird.

Der Parameter $name ist der Name der aufgerufenen Methode. Der Parameter $arguments beinhaltet ein Array mit den Parametern, die der Methode $name übergeben wurden.

Beispiel #2 Überladung von Methoden mit den methoden __call und __callStatic

<?php
class MethodenTest {
    public function __call($name, $arguments)
    {
        // Achtung: Der Wert von $name beachtet die Groß-/Kleinschreibung
        echo "Rufe die Objektmethode '$name' "
             . implode(', ', $arguments). "\n";
    }

    /**  Seit PHP 5.3.0  */
    public static function __callStatic($name, $arguments)
    {
        // Achtung: Der Wert von $name beachtet die Groß-/Kleinschreibung
        echo "Rufe die statische Methode '$name' "
             . implode(', ', $arguments). "\n";
    }
}

$obj = new MethodenTest;
$obj->runTest('eines Objektes auf');

MethodTest::runTest('aus statischem Kontext auf');  // Seit PHP 5.3.0
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Rufe die Objektmethode 'runTest' eines Objektes auf
Rufe die statische Methode 'runTest' aus statischem Kontext auf


Objektiteration

PHP 5 bietet eine Möglichkeit Objekte so zu definieren, dass es möglich ist eine Liste von Elementen zu durchlaufen, z.B. mit einem foreach-Statement. Standardmäßig werden alle sichtbaren Eigenschaften für die Iteration benutzt.

Beispiel #1 Einfache Objektiteration

<?php
class MyClass
{
    public $var1 = 'Wert 1';
    public $var2 = 'Wert 2';
    public $var3 = 'Wert 3';

    protected $protected = 'protected var';
    private   $private   = 'private var';

    function iterateVisible() {
       echo "MyClass::iterateVisible:\n";
       foreach ($this as $key => $value) {
           print "$key => $value\n";
       }
    }
}

$class = new MyClass();

foreach($class as $key => $value) {
    print "$key => $value\n";
}
echo "\n";

$class->iterateVisible();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

var1 => Wert 1
var2 => Wert 2
var3 => Wert 3

MyClass::iterateVisible:
var1 => Wert 1
var2 => Wert 2
var3 => Wert 3
protected => protected var
private => private var

Wie die Ausgabe zeigt, lief das foreach über alle sichtbaren Eigenschaften, auf die zugegriffen werden kann.

Um es einen Schritt weiter zu treiben, kann man eines der PHP 5 internen Interfaces, nämlich Iterator, implementieren. Dies erlaubt es dem Objekt vorzugeben wie es iteriert wird und welche Werte in jeder Iteration verfügbar sind.

Beispiel #2 Objektiteration mit implementiertem Iterator

<?php
class MyIterator implements Iterator
{
    private $var = array();

    public function __construct($array)
    {
        if (is_array($array)) {
            $this->var = $array;
        }
    }

    public function rewind() {
        echo "zurückspulen\n";
        reset($this->var);
    }

    public function current() {
        $var = current($this->var);
        echo "aktuell: $var\n";
        return $var;
    }

    public function key() {
        $var = key($this->var);
        echo "key: $var\n";
        return $var;
    }

    public function next() {
        $var = next($this->var);
        echo "nächstes: $var\n";
        return $var;
    }

    public function valid() {
        $var = $this->current() !== false;
        echo "gültig: {$var}\n";
        return $var;
    }
}

$values = array(1,2,3);
$it = new MyIterator($values);

foreach ($it as $a => $b) {
    print "$a: $b\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

zurückspulen
aktuell: 1
gültig: 1
aktuell: 1
key: 0
0: 1
nächstes: 2
aktuell: 2
gültig: 1
aktuell: 2
key: 1
1: 2
nächstes: 3
aktuell: 3
gültig: 1
aktuell: 3
key: 2
2: 3
nächstes:
aktuell:
gültig:

Das IteratorAggregate-Interface kann als Alternative zur Implementierung aller Methoden von Iterator verwendet werden. IteratorAggregate erfordert nur die Implementierung einer einzigen Methode, IteratorAggregate::getIterator(), welche eine Instanz einer Klasse, die Iterator implementiert, zurückgeben sollte.

Beispiel #3 Objektiteration mit implementiertem IteratorAggregate

<?php
class MyCollection implements IteratorAggregate
{
    private $items = array();
    private $count = 0;

    // benötigte Funktion des IteratorAggregate Interface
    public function getIterator() {
        return new MyIterator($this->items);
    }

    public function add($value) {
        $this->items[$this->count++] = $value;
    }
}

$coll = new MyCollection();
$coll->add('Wert 1');
$coll->add('Wert 2');
$coll->add('Wert 3');

foreach ($coll as $key => $val) {
    echo "key/value: [$key -> $val]\n\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

zurückspulen
aktuell: Wert 1
gültig: 1
aktuell: Wert 1
key: 0
key/value: [0 -> Wert 1]

nächstes: Wert 2
aktuell: Wert 2
gültig: 1
aktuell: Wert 2
key: 1
key/value: [1 -> Wert 2]

nächstes: Wert 3
aktuell: Wert 3
gültig: 1
aktuell: Wert 3
key: 2
key/value: [2 -> Wert 3]

nächstes:
aktuell:
gültig:

Hinweis:

Für mehr Beispiele für die Benutzung von Iteratoren siehe auch SPL Erweiterung.

Hinweis:

Anwender von PHP 5.5 oder später sollten auch die Verwendung von Generatoren prüfen, welche eine Alternative zur Erzeugung von Iteratoren anbieten.


Magische Methoden

Die Funktionen
__construct(),
__destruct(),
__call(),
__callStatic(),
__get(),
__set(),
__isset(),
__unset(),
__sleep(),
__wakeup(),
__serialize(),
__unserialize(),
__toString(),
__invoke(),
__set_state(),
__clone() und
__debugInfo()
sind in PHP-Klassen magisch. Man kann keine Funktionen gleichen Namens in
einer seiner Klassen haben, wenn man nicht die magische Funktionalität,
die sie mit sich bringen, haben will.

Hinweis: Alle magischen Methoden müssen als public deklariert werden.

Achtung

PHP reserviert alle Funktionsnamen, die mit __ beginnen, als magisch. Es wird empfohlen, keine Funktionsnamen mit __ in PHP zu benutzen, es sei denn, man möchte dokumentierte magische Funktionalität verwenden.

__sleep() and __wakeup()

public __sleep ( ) : array
public __wakeup ( ) : void

serialize() prüft, ob die Klasse eine Funktion mit dem magischen Namen __sleep() besitzt. Wenn dem so ist, wird die Funktion vor jeder Serialisierung ausgeführt. Sie kann das Objekt aufräumen und es wird von ihr erwartet, dass sie ein Array mit den Namen aller Variablen zurückliefert, die serialisiert werden sollen. Wenn die Methode nichts zurückgibt, so wird null serialisiert und eine E_NOTICE geworfen.

Hinweis:

__sleep() kann nicht Namen von privaten Eigenschaften von Elternklassen zurückgeben. In diesem Fall wird eine E_NOTICE geworfen. Stattdessen sollte das Serializable Interface verwendet werden.

Die beabsichtigte Verwendung von __sleep() ist, nicht gespeicherte Daten zu sichern oder ähnliche Aufräumarbeiten zu erledigen. Die Funktion ist ebenfalls nützlich, wenn Sie sehr große Objekte haben, welche nicht komplett gespeichert werden müssen.

Umgekehrt überprüft unserialize() die Anwesenheit einer Funktion mit dem magischen Namen __wakeup(). Falls vorhanden, kann diese Funktion alle Ressourcen, die das Objekt haben könnte, wiederherstellen.

Der beabsichtigte Zweck von __wakeup() ist es, alle Datenbankverbindungen wiederherzustellen, die während der Serialisierung verloren gegangen sein könnten, oder auch andere Aufgaben zur erneuten Initialisierung.

Beispiel #1 Sleep- und Wakeup-Beispiel

<?php
class Connection
{
 protected $link;
 private $dsn, $username, $password;

 public function __construct($dsn, $username, $password)
 {
  $this->dsn = $dsn;
  $this->username = $username;
  $this->password = $password;
  $this->connect();
 }

 private function connect()
 {
  $this->link = new PDO($this->dsn, $this->username, $this->password);
 }

 public function __sleep()
 {
  return array('dsn', 'username', 'password');
 }

 public function __wakeup()
 {
  $this->connect();
 }
}?>

__serialize() and __unserialize()

public __serialize ( ) : array
public __unserialize ( array $data ) : void

serialize() prüft, ob die Klasse eine Funktion mit dem magischen Namen __serialize() besitzt. Wenn dem so ist, wird die Funktion vor jeder Serialisierung ausgeführt. Sie muss ein assoziatives Array von Schlüssel/Wert-Paaren erzeugen und zurückgeben, die die serialisierte Form des Objekts darstellen. Wird kein Array zurückgegeben, wird ein TypeError geworfen.

Hinweis:

Sind sowohl __serialize() als auch __sleep() im selben Objekt definiert, wird nur __serialize() aufgerufen. __sleep() wird ignoriert. Implementiert das Objekt das Serializable Interface, wird die serialize() Methode des Interface ignoriert und __serialize() statt dessen verwendet.

Die beabsichtigte Verwendung von __serialize() ist, eine serialisierungsfreundlich beliebige Darstellung eines Objekts zu definieren. Elemente des Arrays dürfen Eigenschaften entsprechen, aber das ist nicht erforderlich.

Umgekehrt überprüft unserialize() die Anwesenheit einer Funktion mit dem magischen Namen __unserialize(). Falls vorhanden, wird dieser Funktion das wiederhergestellte Array übergeben, das von __serialize() zurückgegeben wurde. Sie kann dann dementsprechend die Eigenschaften des Objekts aus diesem Array wiederherstellen.

Hinweis:

Sind sowohl __unserialize() als auch __wakeup() im selben Objekt definiert, wird nur __unserialize() aufgerufen. __wakeup() wird ignoriert.

Hinweis:

Dieses Feature ist seit PHP 7.4.0 verfügbar.

Beispiel #2 Serialize und unserialize

<?php
class Connection
{
    protected $link;
    private $dsn, $username, $password;

    public function __construct($dsn, $username, $password)
    {
        $this->dsn = $dsn;
        $this->username = $username;
        $this->password = $password;
        $this->connect();
    }

    private function connect()
    {
        $this->link = new PDO($this->dsn, $this->username, $this->password);
    }

    public function __serialize(): array
    {
        return [
          'dsn' => $this->dsn,
          'user' => $this->username,
          'pass' => $this->password,
        ];
    }

    public function __unserialize(array $data): void
    {
        $this->dsn = $data['dsn'];
        $this->username = $data['user'];
        $this->password = $data['pass'];

        $this->connect();
    }
}?>

__toString()

public __toString ( ) : string

Die __toString() Methode erlaubt einer Klasse zu entscheiden, wie sie reagieren soll, wenn sie in eine Zeichenkette umgewandelt wird. Die beeinflusst beispielsweise, was echo $obj; ausgeben wird. Diese Methode muss eine Zeichenkette zurückgeben, ansonsten wird ein E_RECOVERABLE_ERROR geworfen.

Warnung

Aus der Methode __toString() konnte vor PHP 7.4.0 keine Exception geworfen werden. Wenn dies getan wird, so tritt ein fataler Fehler auf.

Beispiel #3 Einfaches Beispiel

<?php
// Deklariere eine einfache Klasse
class TestClass
{
 public $foo;

 public function __construct($foo)
 {
  $this->foo = $foo;
 }

 public function __toString()
 {
  return $this->foo;
 }
}

$class = new TestClass('Hallo');
echo $class;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hallo

Es muss angemerkt werden, dass die __toString() Methode in Versionen vor PHP 5.2.0 nur in direkter Kombination mit echo oder print aufgerufen wurde. Beginnend mit PHP 5.2.0 erfolgt dieser Aufruf in jedem Stringkontext (z.B. in printf() mit %s-Platzhalter), aber in keinem der anderen Typenkontexte (z.B. mit dem %d-Platzhalter). Ebenfalls beginnend mit PHP 5.2.0 bewirkt die Umwandlung eines Objekts ohne __toString() Methode in einen String einen Fehler der Klasse E_RECOVERABLE_ERROR.

__invoke()

__invoke ( $... = ? ) : mixed

Die __invoke()-Methode wird aufgerufen, wenn ein Skript versucht, ein Objekt als Funktion aufzurufen.

Hinweis:

Dieses Feature ist ab PHP 5.3.0 verfügbar.

Beispiel #4 Nutzung von __invoke()

<?php
class CallableClass
{
 function __invoke($x)
 {
  var_dump($x);
 }
}
$obj = new CallableClass;
$obj(5);
var_dump(is_callable($obj));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(5)
bool(true)

__set_state()

static __set_state ( array $properties ) : object

Diese statische Methode wird seit PHP 5.1.0 für Klassen aufgerufen, die mittels var_export() exportiert werden.

Der einzige Parameter dieser Methode ist ein Array, welches aus exportierten Eigenschaften der Form array('Eigenschaft' => Wert, ...) besteht.

Beispiel #5 Verwendung von __set_state() (seit PHP 5.1.0)

<?php

class A
{
 public $var1;
 public $var2;

 public static function __set_state($an_array) // seit PHP 5.1.0
 {
  $obj = new A;
  $obj->var1 = $an_array['var1'];
  $obj->var2 = $an_array['var2'];
  return $obj;
 }
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
           //    'var1' => 5,
           //    'var2' => 'foo',
           // ));
var_dump($b);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Hinweis: Wenn ein Objekt exportiert wird, überprüft var_export() nicht ob __set_state() von der Objektklasse implementiert wird, so dass der erneute Import solcher Objekte fehlschlägt, falls __set_state() nicht implementiert ist. Die betrifft im Besonderen einige interne Klassen. It is the responsibility of the programmer to verify that only objects will be re-imported, whose class implements __set_state().

__debugInfo()

__debugInfo ( ) : array

Diese Methode wird von var_dump() aufgerufen, wenn ein Objekt ausgegeben wird, um die Eigenschaften auszulesen die gezeigt werden sollen. Wenn diese Methode in einem Objekt nicht definiert ist, so werden alle Eigenschaften die public, protected oder private sind angezeigt.

Diese Feature wurde mit PHP 5.6.0 hinzugefügt.

Beispiel #6 Verwendung von __debugInfo()

<?php
class C {
 private $prop;

 public function __construct($val) {
  $this->prop = $val;
 }

 public function __debugInfo() {
  return [
   'propSquared' => $this->prop ** 2,
  ];
 }
}

var_dump(new C(42));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}


Final-Schlüsselwort

PHP 5 führt das final-Schlüsselwort ein, welches Kindklassen davon abhält, Methoden zu überschreiben, indem man der Definition final voranstellt. Wenn die Klasse selbst als final definiert wird, kann sie nicht erweitert werden.

Beispiel #1 Beispiel für final-Methoden

<?php
class BaseClass {
   public function test() {
       echo "BaseClass::test() aufgerufen\n";
   }

   final public function moreTesting() {
       echo "BaseClass::moreTesting() aufgerufen\n";
   }
}

class ChildClass extends BaseClass {
   public function moreTesting() {
       echo "ChildClass::moreTesting() aufgerufen\n";
   }
}
// Erzeugt einen fatalen Fehler: Cannot override final method BaseClass::moreTesting()
?>

Beispiel #2 Beispiel für final-Klassen

<?php
final class BaseClass {
   public function test() {
       echo "BaseClass::test() aufgerufen\n";
   }

   // Es macht hier keinen Unterschied, ob die Methode final ist oder nicht
   final public function moreTesting() {
       echo "BaseClass::moreTesting() aufgerufen\n";
   }
}

class ChildClass extends BaseClass {
}
// Erzeugt einen fatalen Fehler: Class ChildClass may not inherit from final class (BaseClass)
?>

Hinweis: Eigenschaften und Konstanten können nicht als final deklariert werden; nur Klassen und Methoden können als final deklariert werden.


Objekte klonen

Eine Kopie eines Objektes mit vollständig replizierten Eigenschaften zu erzeugen, ist nicht immer das gewünschte Verhalten. Ein gutes Beispiel für die Notwendigkeit von Kopierkonstruktoren ist ein Objekt, welches ein GTK Fenster repräsentiert und dieses Objekt enthält die Ressource des GTK-Fensters. Wenn Sie ein Duplikat dieses Objektes erzeugen, könnten Sie ein neues Fenster mit gleichen Eigenschaften erzeugen wollen und das neue Objekt soll die Ressource des neuen Fensters speichern. Ein weiteres Beispiel ist ein Objekt, welches eine Referenz auf ein anderes Objekt, das es benutzt, hält und wenn das Vaterobjekt repliziert wird, will man eine neue Instanz dieses anderen Objektes erzeugen, damit das Replikat eine eigene Kopie besitzt.

Eine Objektkopie wird durch die Nutzung des clone Schlüsselwortes (welches wenn möglich die __clone()-Methode des Objektes aufruft) erzeugt. Die __clone()-Methode eines Objektes kann nicht direkt aufgerufen werden.

$kopie_des_objektes = clone $objekt;

Wenn ein Objekt geklont wird, wird PHP eine seichte Kopie der Eigenschaften des Objektes durchführen. Alle Eigenschaften, die Referenzen auf andere Variablen sind, werden Referenzen bleiben.

__clone ( ) : void

Sobald der Klonvorgang abgeschlossen und eine __clone()- Methode definiert ist, so wird die __clone()-Methode des neu erzeugten Objekts aufgerufen, damit alle notwendigen Eigenschaften verändert werden können.

Beispiel #1 Ein Objekt klonen

<?php
class SubObject
{
    static $instanzen = 0;
    public $instanz;

    public function __construct() {
        $this->instanz = ++self::$instanzen;
    }

    public function __clone() {
        $this->instanz = ++self::$instanzen;
    }
}

class MyCloneable
{
    public $objekt1;
    public $objekt2;

    function __clone()
    {
        // Erzwinge eine Kopie von this->object,
        // andernfalls wird es auf das selbe Objekt zeigen
        $this->objekt1 = clone $this->objekt1;
    }
}

$obj = new MyCloneable();

$obj->objekt1 = new SubObject();
$obj->objekt2 = new SubObject();

$obj2 = clone $obj;

print("Original Objekt:\n");
print_r($obj);

print("geklontes Objekt:\n");
print_r($obj2);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Original Objekt:
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instanz] => 1
        )

    [object2] => SubObject Object
        (
            [instanz] => 2
        )

)
geklontes Object:
MyCloneable Object
(
    [objekt1] => SubObject Object
        (
            [instanz] => 3
        )

    [objekt2] => SubObject Object
        (
            [instanz] => 2
        )

)

PHP 7.0.0 führte die Möglichkeit ein, auf ein Klassenelement eines soeben geklonten Objekts in einem einzigen Ausdruck zuzugreifen:

Beispiel #2 Zugriff auf ein Element eines soeben geklonten Objekts

<?php
$dateTime = new DateTime();
echo (clone $dateTime)->format('Y');
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2016


Objekte vergleichen

Wenn man den Vergleichsoperator (==) benutzt, werden Objektvariablen auf einfache Weise verglichen, d.h.: Zwei Objektinstanzen sind gleich, wenn sie die gleichen Attribute mit dem selben Wert (verglichen mit ==) haben und Instanzen der selben Klasse sind.

Wenn man den Identitätsoperator benutzt (===), sind zwei Objekte identisch, genau dann, wenn sie die selbe Instanz der selben Klasse referenzieren.

Ein Beispiel wird diese Regeln verdeutlichen.

Beispiel #1 Beispiel für Objektvergleiche in PHP 5

<?php
function bool2str($bool)
{
    if ($bool === false) {
        return 'FALSE';
    } else {
        return 'TRUE';
    }
}

function compareObjects(&$o1, &$o2)
{
    echo 'o1 == o2 : ' . bool2str($o1 == $o2) . "\n";
    echo 'o1 != o2 : ' . bool2str($o1 != $o2) . "\n";
    echo 'o1 === o2 : ' . bool2str($o1 === $o2) . "\n";
    echo 'o1 !== o2 : ' . bool2str($o1 !== $o2) . "\n";
}

class Flag
{
    public $flag;

    function __construct($flag = true) {
        $this->flag = $flag;
    }
}

class OtherFlag
{
    public $flag;

    function __construct($flag = true) {
        $this->flag = $flag;
    }
}

$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();

echo "Zwei Instanzen der selben Klasse\n";
compareObjects($o, $p);

echo "\nZwei Referenzen auf die selbe Instanz\n";
compareObjects($o, $q);

echo "\nInstanzen zweier verschiedener Klassen\n";
compareObjects($o, $r);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Zwei Instanzen der selben Klasse
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Zwei Referenzen auf die selbe Instanz
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Instanzen zweier verschiedener Klassen
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Hinweis:

Erweiterungen können eigene Regeln für ihre Objektvergleiche (==) definieren.


Späte statische Bindung

Beginnend mit PHP 5.3.0 unterstützt PHP späte statische Bindung ("Late static binding"). Hiermit kann die aufgerufene Klasse im Kontext statischer Vererbung referenziert werden.

Genauer gesagt funktioniert späte statische Bindung durch das Speichern der Klasse, die im letzten "nicht weiterleitenden Aufruf" angegeben wurde. Im Fall von statischen Methodenaufrufen, ist dies die explizit angegebene Klasse (üblicherweise diejenige auf der linken Seite des :: Operators); im Fall von nicht statischen Methodenaufrufen, ist es die Klasse des Objekts. Ein "weiterleitender Aufruf" ist ein statischer, der durch self::, parent::, static::, oder, in der Klassenhierarchie nach oben gehend, durch forward_static_call(), eingeleitet wurde. Die Funktion get_called_class() kann benutzt werden, um eine Zeichenkette mit dem Namen der aufgerufenen Klasse abzufragen, und static:: führt ihren Geltungsbereich ein.

Diese Funktionalität wurde in Hinblick auf die interne Perspektive als "späte statische Bindung" benannt. "Späte Bindung" bezieht sich auf die Tatsache, dass static:: nicht über die Klasse, in der die aufgerufene Methode definiert ist, aufgelöst wird, stattdessen wird diese mit Hilfe von Laufzeitinformationen bestimmt. Die Benennung als "statische Bindung" beruht darauf, dass dieser Mechanismus unter anderem für statische Methodenaufrufe genutzt werden kann.

Beschränkungen von self::

Statische Referenzen auf die aktuelle Klasse wie self:: oder __CLASS__ werden mit Hilfe der Klasse, zu der die Methode gehört, also in welcher sie definiert ist, aufgelöst.

Beispiel #1 Nutzung von self::

<?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        self::who();
    }
}

class B extends A {
    public static function who() {
         echo __CLASS__;
    }
}

B::test();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

A

Nutzung später statischer Bindung

Späte statische Bindung versucht diese Beschränkung zu umgehen, indem ein neues Schlüsselwort eingeführt wird, dass die Klasse referenziert, die tatsächlich zur Laufzeit genutzt wurde, also im Wesentlichen ein Schlüsselwort, das es Ihnen gestattet im vorangegangenen Beispiel aus der aufgerufenen Methode test() die Klasse B zu referenzieren. Es wurde entschieden, kein neues Schlüsselwort einzuführen sondern statt dessen static zu verwenden, das bereits als reserviertes Schlüsselwort existierte.

Beispiel #2 Einfache Nutzung von static::

<?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        static::who(); // statische Bindung
    }
}

class B extends A {
    public static function who() {
         echo __CLASS__;
    }
}

B::test();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

B

Hinweis:

In nicht statischen Kontexten ist die aufgerufene Klasse die Klasse des Objekt-Exemplars. Da $this-> versucht private Methoden im gleichen Geltungsbereich aufzurufen, kann die Verwendung von static:: andere Ergebnisse liefern. Ein weiterer Unterschied ist, dass static:: sich nur auf statische Eigenschaften beziehen kann.

Beispiel #3 Nutzung von static:: außerhalb eines statischen Kontexts

<?php
class A {
    private function foo() {
        echo "Erfolg!\n";
    }
    public function test() {
        $this->foo();
        static::foo();
    }
}

class B extends A {
   /* foo() wird nach B kopiert, weshalb ihr Geltungsbereich immer noch A ist,
    * und der Aufruf wird erfolgreich sein */
}

class C extends A {
    private function foo() {
        /* ursprüngliche Methode wird ersetzt; der Geltungsbereich der neuen ist C */
    }
}

$b = new B();
$b->test();
$c = new C();
$c->test();   //scheitert
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Erfolg!
Erfolg!
Erfolg!

Fatal error:  Call to private method C::foo() from context 'A' in /tmp/test.php on line 9

Hinweis:

Die Auflösung später statischer Bindungen endet mit einem vollständig aufgelösten statischen Aufruf ohne Alternative. Statische Aufrufe, die Schlüsselworte wie parent:: oder self:: nutzen, geben dagegen die Aufrufinformationen weiter.

Beispiel #4 Weitergegebene und nicht weitergegebene Aufrufe

<?php
class A {
    public static function foo() {
        static::who();
    }

    public static function who() {
        echo __CLASS__."\n";
    }
}

class B extends A {
    public static function test() {
        A::foo();
        parent::foo();
        self::foo();
    }

    public static function who() {
        echo __CLASS__."\n";
    }
}
class C extends B {
    public static function who() {
        echo __CLASS__."\n";
    }
}

C::test();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

A
C
C


Objekte und Referenzen

Eine der häufigsten Aussagen zu objektorientierter Programmierung in PHP5 ist, dass "Objekte standardmäßig als Referenz übergeben werden". Dies ist nicht komplett wahr. Dieser Abschnitt berichtigt diese verbreitete Annahme anhand von Beispielen.

Eine PHP-Referenz ist ein Alias, der es ermöglicht, dass zwei unterschiedliche Variablen sich auf denselben Wert beziehen. Beginnend mit PHP 5 enthält eine Objektvariable nicht mehr das Objekt als Wert, sondern nur einen Objektbezeichner, der bei Objektzugriffen die Identifizierung des eigentlichen Objektes ermöglicht. Wenn ein Objekt als Argument oder Rückgabewert übergeben oder einer anderen Variable zugewiesen wird, so sind die verschiedenen Variablen keine Aliase, sie enthalten vielmehr Kopien des Bezeichners, die auf dasselbe Objekt verweisen.

Beispiel #1 Referenzen und Objekte

<?php
class A {
    public $foo = 1;
}

$a = new A;
$b = $a;     // $a und $b sind Kopien des gleichen Bezeichners
             // ($a) = ($b) = <id>
$b->foo = 2;
echo $a->foo."\n";

$c = new A;
$d = &$c;    // $c und $d sind Referenzen
             // ($c,$d) = <id>

$d->foo = 2;
echo $c->foo."\n";

$e = new A;

function foo($obj) {
    // ($obj) = ($e) = <id>
    $obj->foo = 2;
}

foo($e);
echo $e->foo."\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2
2
2


Serialisierung von Objekten

Serialisierung von Objekten - Objekte in Sessions

serialize() erzeugt einen String, welcher die Byte-Stream-Repräsentation eines jeden Wertes besitzt, der in PHP gespeichert werden kann. unserialize() kann diesen String verwenden, um die ursprünglichen Variablenwerte wiederherzustellen. Verwendet man serialize(), um ein Objekt zu speichern, so werden alle Variablen dieses Objektes gespeichert. Die Methoden des Objektes werden nicht gespeichert, nur der Name der Klasse.

Damit man imstande ist, ein Objekt mit unserialize() wiederherzustellen, muss die Klasse des Objektes definiert sein. Das heißt, wenn man ein Objekt der Klasse A serialisiert, erhält man einen String, der sich auf die Klasse A bezieht und die Werte aller darin enthaltenen Variablen beinhaltet. Wenn man in einer anderen Datei diesen String wieder zu einem Objekt der Klasse A deserialisieren will, so muss die Klasse A in dieser Datei vorher bekannt sein. Dies kann man erreichen, indem man die Definition der Klasse A in eine mittels include ladbare Datei auslagert und diese Datei einbindet oder die Funktion spl_autoload_register() verwendet.

<?php
// classa.inc:

  class A {
      public $one = 1;

      public function show_one() {
          echo $this->one;
      }
  }

// page1.php:

  include("classa.inc");

  $a = new A;
  $s = serialize($a);
  // $s irgendwo ablegen, wo page2.php dies finden kann.
  file_put_contents('store', $s);

// page2.php:

  // Dies ist nötig, damit unserialize korrekt funktioniert.
  include("classa.inc");

  $s = file_get_contents('store');
  $a = unserialize($s);

  // Nun kann man die Funktion show_one() des Objektes $a
  // verwenden.
  $a->show_one();
?>

Wenn eine Anwendung Sessions verwendet und die Funktion session_register() benutzt, um Objekte zu registrieren, so werden diese Objekte automatisch am Schluss jeder PHP-Seite serialisiert und in jeder nachfolgenden PHP-Seite deserialisiert. Das heißt, dass diese Objekte in jeder Seite der Anwendung auftauchen können, sobald diese Teil der Session werden. session_register() wurde in PHP 5.4.0 jedoch entfernt.

Es ist dringend empfohlen, dass wenn eine Anwendung Objekte zur späteren Verwendung in der Anwendung serialisiert, die Klassendefinitionen in der gesamten Anwendung eingebunden werden. Wird dies nicht beachtet, so wird das Objekt ohne eine Klassendefinition deserialisiert, was dazu führen wird, dass PHP dem Objekt eine Klasse __PHP_Incomplete_Class_Name zuweisen wird, welche keine Methoden besitzt. Dies wird das Objekt nutzlos machen.

Wenn also im obigen Beispiel $a Teil einer Session würde, indem man session_register("a") benutzt, so sollte die Datei classa.inc in jeder Seite eingebunden werden, nicht nur in page1.php und page2.php.

Beachten Sie neben den obigen Hinweisen dass man sich in die Serialisierungs- und Deserialisierungs-Ereignisse einklinken kann, indem man die Methoden __sleep() und __wakeup() eines Objektes verwendet. Die Verwendung von __sleep() erlaubt es nur eine Teilmenge der Eigenschaften eines Objektes zu serialisieren.


Covariance and Contravariance

In PHP 7.2.0, partial contravariance was introduced by removing type restrictions on parameters in a child method. As of PHP 7.4.0, full covariance and contravariance support was added.

Covariance allows a child's method to return a more specific type than the return type of its parent's method. Whereas, contravariance allows a parameter type to be less specific in a child method, than that of its parent.

A type declaration is considered more specific in the following case:

  • A type is removed from a union type
  • A class type is changed to a child class type
  • float is changed to int
A type class is considered less specific if the opposite is true.

Covariance

To illustrate how covariance works, a simple abstract parent class, Animal is created. Animal will be extended by children classes, Cat, and Dog.

<?php

abstract class Animal
{
    protected string $name;

    public function __construct(string $name)
    {
        $this->name = $name;
    }

    abstract public function speak();
}

class Dog extends Animal
{
    public function speak()
    {
        echo $this->name . " barks";
    }
}

class Cat extends Animal
{
    public function speak()
    {
        echo $this->name . " meows";
    }
}

Note that there aren't any methods which return values in this example. A few factories will be added which return a new object of class type Animal, Cat, or Dog.

<?php

interface AnimalShelter
{
    public function adopt(string $name): Animal;
}

class CatShelter implements AnimalShelter
{
    public function adopt(string $name): Cat // instead of returning class type Animal, it can return class type Cat
    {
        return new Cat($name);
    }
}

class DogShelter implements AnimalShelter
{
    public function adopt(string $name): Dog // instead of returning class type Animal, it can return class type Dog
    {
        return new Dog($name);
    }
}

$kitty = (new CatShelter)->adopt("Ricky");
$kitty->speak();
echo "\n";

$doggy = (new DogShelter)->adopt("Mavrick");
$doggy->speak();

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ricky meows
Mavrick barks

Contravariance

Continuing with the previous example with the classes Animal, Cat, and Dog, a class called Food and AnimalFood will be included, and a method eat(AnimalFood $food) is added to the Animal abstract class.

<?php

class Food {}

class AnimalFood extends Food {}

abstract class Animal
{
    protected string $name;

    public function __construct(string $name)
    {
        $this->name = $name;
    }

    public function eat(AnimalFood $food)
    {
        echo $this->name . " eats " . get_class($food);
    }
}

In order to see the behavior of contravariance, the eat method is overridden in the Dog class to allow any Food type object. The Cat class remains unchanged.

<?php

class Dog extends Animal
{
    public function eat(Food $food) {
        echo $this->name . " eats " . get_class($food);
    }
}

The next example will show the behavior of contravariance.

<?php

$kitty = (new CatShelter)->adopt("Ricky");
$catFood = new AnimalFood();
$kitty->eat($catFood);
echo "\n";

$doggy = (new DogShelter)->adopt("Mavrick");
$banana = new Food();
$doggy->eat($banana);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ricky eats AnimalFood
Mavrick eats Food

But what happens if $kitty tries to eat the $banana?

$kitty->eat($banana);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Fatal error: Uncaught TypeError: Argument 1 passed to Animal::eat() must be an instance of AnimalFood, instance of Food given


OOP-Changelog

Hier werden Änderungen am OOP-Modell von PHP protokolliert. Beschreibungen und andere Hinweise zu diesen Features werden innerhalb der OOP-Modell-Dokumentation dargelegt.

Version | Beschreibung
7.4.0 | Geändert: es ist nun möglich eine Exception in __toString() zu werfen.
7.4.0 | Hinzugefügt: Unterstützung für eingeschränkte Rückgabetypkovarianz und Parametertypkontravarianz. Vollständige Varianzunterstützung ist nur bei Verwendung von Autoloading verfügbar. Innerhalb einer einzelnen Datei sind nur nicht-zyklische Typreferenzen möglich.
7.4.0 | Hinzugefügt: es ist nun möglich Klasseneigenschaften zu typisieren.
7.3.0 | Inkompatibel: das Argument-Entpacken von Traversablen mit nicht-Integer Schlüsseln wird nicht länger unterstützt. Dieses Verhalten war nicht beabsichtigt und wurde daher entfernt.
7.3.0 | Inkompatibel: in früheren Version war es möglich statische Eigenschaften durch Referenzzuweisung zu separieren. Dies wurde entfernt.
7.3.0 | Geändert: der instanceof-Operator erlaubt nun Literale als erster Operand, in welchem Fall das Ergebnis immer false ist.
7.2.0 | Missbilligt: die Funktion __autoload() wurde zugunsten von spl_autoload_register() missbilligt.
7.2.0 | Geändert: der folgende Name kann nicht verwendet werden, um Klassen, Interfaces oder Traits zu benennen: object.
7.2.0 | Geändert: der gruppierenden Use-Syntax für Namensräume kann nun ein abschließendes Komma angefügt werden.
7.2.0 | Geändert: Parametertyp-Erweiterung. Parametertypen in übersteuerten Methoden und Interfaceimplementierungen können nun weggelassen werden.
7.2.0 | Geändert: abstrakte Methoden können nun übersteuert werden, wenn eine abstrakte Klasse eine andere abstrakte Klasse erweitert.
7.1.0 | Geändert: folgende Namen können nicht verwendet werden, um Klassen, Interfaces oder Traits zu benennen: void und iterable.
7.1.0 | Hinzugefügt: es ist nun möglich die Sichtbarkeit von Klassenkonstanten anzugeben.
7.0.0 | Missbilligt: statische Aufrufe von Methoden, die nicht als statisch deklariert wurden.
7.0.0 | Missbilligt: Konstruktoren im Stil von PHP 4, d.h. Methoden, die denselben Namen wie die Klasse, in der sie definiert wurden, haben.
7.0.0 | Hinzugefügt: gruppierte use Deklaration: Klassen, Funktionen und Konstanten, die aus demselben Namensraum importiert werden, können nun in einer einzigen use-Anweisung gruppiert werden.
7.0.0 | Hinzugefügt: Unterstützung für anonyme Klassen per new class wurde hinzugefügt.
7.0.0 | Inkompatibel: die Iteration über ein nicht-Traversable Objekt hat nun dasselbe Verhalten wie die Iteration über Array-Referenzen.
7.0.0 | Definieren (kompatibler) Eigenschaften in zwei verwendeten Traits erzeugt keinen Fehler mehr.
5.6.0 | Hinzugefügt: die __debugInfo() Methode.
5.5.0 | Hinzugefügt: die magische ::class Konstante.
5.5.0 | finally zur Behandlung von Exceptions hinzugefügt.
5.4.0 | Traits hinzugefügt.
5.4.0 | Geändert: Wenn eine abstrakte Klasse eine Signatur für den Konstruktor definiert, so wird diese nun erzwungen.
5.3.3 | Geändert: Methoden, die den Namen des letzten Elementes eines Klassennamens in einem Namespace tragen, werden nicht länger als Konstruktor behandelt. Diese Änderung beeinflusst Klassen außerhalb von Namespaces nicht.
5.3.0 | Geändert: Klassen, die Interfaces implementieren, welche Methoden mit Vorgabewerten in ihrem Prototypen enthalten müssen nicht mehr dem Vorgabewert des Interfaces entsprechen.
5.3.0 | Geändert: Es ist nun möglich eine Klasse mittels einer Variablen zu referenzieren (z.B. echo $classname::constant;). Der Wert der Variable darf kein Schlüsselwort sein (z.B. self, parent oder static).
5.3.0 | Geändert: Ein Fehler der Stufe E_WARNING wird ausgelöst, wenn die magischen Methoden für Überladung als static deklariert werden. Dies erzwingt auch die Anforderung nach öffentlicher Sichtbarkeit.
5.3.0 | Geändert: Vor PHP 5.3.0 konnten Exceptions, die in einer __autoload()-Funktion geworfen wurden, nicht mit einem catch-Block gefangen werden und resultierten in einem "fatal error". Nun können Exceptions, die in einer __autoload-Funktion geworfen wurden, im catch-Block unter einer Bedingung gefangen werden. Wenn eine selbst definierte Exception geworfen wird, so muss diese Exception verfügbar sein. Die __autoload-Funktion kann jedoch rekursiv aufgerufen werden, um die Exceptionklasse automatisch zu laden.
5.3.0 | Hinzugefügt: Die Methode __callStatic.
5.3.0 | Hinzugefügt: Unterstützung für die heredoc- und nowdoc-Syntax für const und Definition von Eigenschaften in einer Klasse. Beachten Sie: die heredoc-Werte müssen den gleichen Regeln wie Strings in doppelten Anführungszeichen folgen (d.h. keine Variablen beinhalten).
5.3.0 | Hinzugefügt: Späte statische Bindung.
5.3.0 | Hinzugefügt: Die Methode __invoke.
5.2.0 | Geändert: Die Methode __toString wurde nur in direkter Verbindung mit echo oder print aufgerufen. Nun wird sie in jedem String-Kontext aufgerufen (z.B. in printf() mit dem %s-Modifizierer), aber nicht in anderen Kontexten (z.B. mit dem %d-Modifizierer). Von PHP 5.2.0 an löst die Konvertierung von Objekten ohne __toString-Methode zu String einen Fehler der Stufe E_RECOVERABLE_ERROR aus.
5.1.3 | Geändert: In vorhergehenden Versionen von PHP 5 wurde die Verwendung von var als veraltet betrachtet und löste einen Fehler der Stufe E_STRICT aus. Dies ist nicht länger veraltet und daher wird kein Fehler mehr ausgelöst.
5.1.0 | Geändert: Die statische Methode __set_state wird nun für Klassen aufgerufen, wenn sie durch var_export() exportiert werden.
5.1.0 | Hinzugefügt: Die Methoden __isset und __unset.


Namespaces

Inhaltsverzeichnis

  • Übersicht über Namespaces
  • Namespaces definieren
  • Unter-Namespaces deklarieren
  • Mehrere Namespaces in derselben Datei definieren
  • Namespaces verwenden: Grundlagen
  • Namespaces und dynamische Sprachfeatures
  • Namespace-Schlüsselwort und __NAMESPACE__-Konstante
  • Namespaces verwenden: Aliase/Importieren
  • Globaler Namensraum
  • Namespaces verwenden: Rückgriff auf globale Funktion/Konstante
  • Regeln für Namensauflösung
  • FAQ: Dinge, die Sie über Namespaces wissen sollten


Übersicht über Namespaces

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Was sind Namespaces? Im weitesten Sinne bieten Namespaces eine Möglichkeit, verschiedene Gegenstände zu kapseln. Dies kann man als abstraktes Konzept an vielen Dingen beobachten. In einem Betriebssystem dienen zum Beispiel Verzeichnisse dazu, um zusammengehörige Dateien zu gruppieren, und dienen als Namespace für die beinhalteten Dateien. In einem konkreten Beispiel kann die Datei foo.txt sowohl im Verzeichnis /home/greg als auch in /home/other existieren, aber es können keine zwei Varianten der Datei foo.txt im gleichen Verzeichnis existieren. Um auf die Datei foo.txt von außerhalb des Verzeichnisses /home/greg zuzugreifen, muss man zusätzlich dem Verzeichnisnamen den Dateinamen und ein Trennzeichen voranstellen, um /home/greg/foo.txt zu erhalten. Das gleiche Prinzip streckt sich auf Namespaces in der Programmierwelt aus.

Version | Beschreibung
7.0.0 | Gruppierte use-Deklarationen hinzugefügt.

In der Welt von PHP wurden Namespaces entworfen, um zwei Probleme zu lösen, auf die die Autoren von Bibliotheken und Anwendungen stoßen, wenn sie wiederverwendbare Codeelemente wie Klassen und Funktionen entwickeln:

  1. Namenskollisionen zwischen eigenem Code und internen PHP-Klassen/Funktionen/Konstanten oder Klassen/Funktionen/Konstanten von Drittanbietern.
  2. Die Möglichkeit, einen Alias (oder einen Kurznamen) für Sehr_Lange_Namen einzuführen, die geschaffen wurde, um das erste Problem zu umgehen. Damit kann man die Lesbarkeit des Quellcodes erhöhen.

PHP-Namespaces bieten eine Möglichkeit, zusammengehörige Klassen, Interfaces, Funktionen und Konstanten zusammenzufassen. Dies ist ein Beispiel für die Namespace-Syntax in PHP:

Beispiel #1 Beispiel für Namespace-Syntax

<?php
namespace my\name; // siehe Abschnitt "Namespaces definieren"

class MyClass {}
function myfunction() {}
const MYCONST = 1;

$a = new MyClass;
$c = new \my\name\MyClass; // siehe Abschnitt "Globaler Namensraum"

$a = strlen('hi'); // siehe Abschnitt "Namespaces verwenden: Rückgriff auf
                   // globale Funktion/Konstante"

$d = namespace\MYCONST; // siehe Abschnitt "Namespace-Schlüsselwort und __NAMESPACE__-
                        // Konstante"
$d = __NAMESPACE__ . '\MYCONST';
echo constant($d); // siehe Abschnitt "Namespaces und dynamische Sprachfeatures"
?>

Hinweis: Bei Namespace-Namen wird nicht zwischen Groß- und Kleinschreibung unterschieden.

Hinweis:

Der Namespace PHP, sowie zusammengesetzte Namen, die mit dieser Bezeichnung beginnen (wie z.B. PHP\Classes), sind zur internen Verwendung in der Sprache reserviert und sollten im eigenen Programmcode nicht verwendet werden.


Namespaces definieren

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Obwohl jeder gültige PHP-Quellcode in Namespaces eingeschlossen werden kann, werden nur die folgenden Arten von Code von Namespaces beeinflusst: Klassen (inklusive abstrakter Klassen und Traits), Interfaces, Funktionen und Konstanten.

Namespaces werden mit dem Schlüsselwort namespace definiert. Eine Datei, die einen Namespace beinhaltet, muss den Namespace am Anfang der Datei vor jeglichem anderen Code deklarieren - mit Ausnahme des declare-Schlüsselworts.

Beispiel #1 Einen einzelnen Namespace deklarieren

<?php
namespace MyProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

?>

Hinweis: Vollständig qualifizierte Namen (d.h. Namen, die mit einem Rückwärtsschrägstrich beginnen) sind in Namensraumdeklarationen nicht erlaubt, weil solche Konstrukte als relative Namensraumausdrücke interpretiert werden.

Der einzige Quellcode, der vor einer Namespacedeklaration stehen darf, ist der declare-Ausdruck, der die Kodierung der Quellcodedatei definiert. Gleichzeitig darf kein Nicht-PHP-Code vor einer Namespacedeklaration stehen - auch keine zusätzlichen Leerzeichen, Zeilenumbrüche oder Tabulatoren.

Beispiel #2 Einen einzelnen Namespace deklarieren

<html>
<?php
namespace MyProject; // fatal error - Namespace muss der erste Ausdruck im Skript sein
?>

Zusätzlich darf - im Gegensatz zu anderen PHP-Konstrukten - der selbe Namespace in mehreren Dateien definiert werden, womit man den Inhalt eines Namespaces im Dateisystem aufteilen kann.


Unter-Namespaces deklarieren

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Ähnlich wie Verzeichnisse und Dateien hat ein PHP-Namespace auch die Möglichkeit, eine Hierarchie von Namespacenamen zu beinhalten. Ein Namespace kann also mit Unterebenen definiert werden:

Beispiel #1 Einen einzelnen Namespace mit einer Hierarchie deklarieren

<?php
namespace MyProject\Sub\Level;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

?>
Das obige Beispiel erzeugt eine Konstante MyProject\Sub\Level\CONNECT_OK, die Klasse MyProject\Sub\Level\Connection und die Funktion MyProject\Sub\Level\connect.


Mehrere Namespaces in derselben Datei definieren

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Es können auch mehrere Namespaces in derselben Datei definiert werden. Es gibt hierfür zwei mögliche Schreibweisen:

Beispiel #1 Mehrere Namespaces definieren, einfache Kombinationssyntax

<?php
namespace MyProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

namespace AnotherProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
?>

Diese Syntax ist nicht die empfohlene Syntax, um mehrere Namespaces in einer einzigen Datei zusammenzuführen. Stattdessen wird die geklammerte Syntax empfohlen.

Beispiel #2 Mehrere Namespaces definieren, geklammerte Syntax

<?php
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace AnotherProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}
?>

Es wird stark von der Programmierpraxis, mehrere Namespaces in einer Datei zu definieren, abgeraten. Der wichtigste Einsatzzweck dieser Möglichkeit ist es, mehrere PHP-Skripte in derselben Datei zusammenzuführen.

Um Code ohne Namensräume mit solchem mit Namensräumen zusammenzuführen, wird nur die geklammerte Syntax unterstützt. Globaler Code sollte in einem Namespace-Statement ohne Namespace eingeschlossen werden:

Beispiel #3 Mehrere Namespaces und Code ohne Namespace deklarieren

<?php
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace { // global code
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>

Es darf kein PHP-Code außerhalb der Namespace-Klammern existieren, abgesehen von einem beginnenden declare-Ausdruck.

Beispiel #4 Mehrere Namespaces und Code ohne Namespace deklarieren

<?php
declare(encoding='UTF-8');
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace { // globaler Code
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>


Namespaces verwenden: Grundlagen

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Bevor die Verwendung von Namespaces besprochen wird, ist es wichtig zu verstehen, woher PHP weiß, welches Element mit Namespace vom Code angefordert wird. Eine einfache Analogie kann zwischen PHP-Namensräumen und einem Dateisystem gesehen werden. Es gibt drei Möglichkeiten, mit denen man auf eine Datei in einem Dateisystem zugreifen kann:

  1. Relative Dateinamen wie foo.txt. Dies wird zu aktuellesVerzeichnis/foo.txt aufgelöst, wenn aktuellesVerzeichnis das gerade geöffnete Verzeichnis ist. Wenn also das aktuelle Verzeichnis /home/foo ist, so wird dies als /home/foo/foo.txt aufgelöst.
  2. Relative Pfade wie unterVerzeichnis/foo.txt. Dies wird zu aktuellesVerzeichnis/unterVerzeichnis/foo.txt aufgelöst.
  3. Absolute Pfadangaben wie /main/foo.txt. Dies wird zu /main/foo.txt aufgelöst.
Das gleiche Prinzip kann auf Elemente mit Namespaces in PHP angewandt werden. Zum Beispiel kann eine Klasse auf drei Arten angesprochen werden:
  1. Unqualifizierte Namen oder ein Klassenname ohne Präfix, wie etwa $a = new foo(); oder foo::staticmethod();. Falls der aktuelle Namespace aktuellerNamespace ist, so wird dies zu aktuellerNamespace\foo aufgelöst. Ist der Code globaler Code ohne Namespaces, so wird dies zu foo aufgelöst. Es gibt eine Ausnahme hierzu: Unqualifizierte Namen für Funktionen und Konstanten werden zu globalen Funktionen und Konstanten aufgelöst, wenn die Funktion oder Konstante im Namespace nicht definiert ist. Siehe auch Namespaces verwenden: Rückgriff auf globale Funktion/Konstante für weitere Details.
  2. Qualifizierte Namen oder ein Klassenname mit Präfix, wie etwa $a = new unterNamespace\foo(); oder unterNamespace\foo::staticmethod();. Wenn der aktuelle Namespace aktuellerNamespace ist, so wird dies als aktuellerNamespace\unterNamespace\foo verstanden. Wenn der Code global und ohne Namespaces ist, so wird dies zu unterNamespace\foo aufgelöst.
  3. Vollständig qualifizierte Namen oder Namen mit globalem Präfixoperator wie $a = new \aktuellerNamespace\foo(); oder \aktuellerNamespace\foo::staticmethod();. Dies wird immer wörtlich wie der im Code angegebene Name verstanden, also aktuellerNamespace\foo.

Hier ein Beispiel für die drei Schreibweisen in tatsächlichem Code:

file1.php

<?php
namespace Foo\Bar\subnamespace;

const FOO = 1;
function foo() {}
class foo
{
    static function staticmethod() {}
}
?>

file2.php

<?php
namespace Foo\Bar;
include 'file1.php';

const FOO = 2;
function foo() {}
class foo
{
    static function staticmethod() {}
}

/* Unqualifizierter Name */
foo(); // wird als Funktion Foo\Bar\foo aufgelöst
foo::staticmethod(); // wird als Klasse Foo\Bar\foo und Methode staticmethod aufgelöst
echo FOO; // gibt die Konstante Foo\Bar\FOO aus

/* Qualifizierter Name */
subnamespace\foo(); // wird als Funktion Foo\Bar\subnamespace\foo aufgelöst
subnamespace\foo::staticmethod(); // wird als Klasse Foo\Bar\subnamespace\foo und
                                  // Methode staticmethod aufgelöst
echo subnamespace\FOO; // gibt die Konstante Foo\Bar\subnamespace\FOO aus

/* Vollständig qualifizierter Name */
\Foo\Bar\foo(); // wird als Funktion Foo\Bar\foo aufgelöst
\Foo\Bar\foo::staticmethod(); // wird als Klasse Foo\Bar\foo und Methode staticmethod aufgelöst
echo \Foo\Bar\FOO; // gibt die Konstante Foo\Bar\FOO aus
?>

Beachten Sie, dass für den Zugriff auf jede globale Klasse, Funktion oder Konstante auch ein vollständig qualifizierter Name verwendet werden kann, wie z.B. \strlen(), \Exception oder \INI_ALL.

Beispiel #1 Zugriff auf globale Klassen, Funktionen und Konstanten aus einem Namespace

<?php
namespace Foo;

function strlen() {}
const INI_ALL = 3;
class Exception {}

$a = \strlen('hi'); // ruft die globale Funktion strlen auf
$b = \INI_ALL; // greift auf die globale Konstante INI_ALL zu
$c = new \Exception('error'); // erzeugt eine Neue Instanz der globalen
                              // Klasse Exception
?>


Namespaces und dynamische Sprachfeatures

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Die Implementierung von Namespaces in PHP ist stark von seinen Eigenschaften als Programmiersprache mit dynamischen Features beeinflusst. Man kann also den folgenden Code in Code mit Namespaces umformen:

Beispiel #1 Dynamischer Zugriff auf Elemente

example1.php:

<?php
class classname
{
    function __construct()
    {
        echo __METHOD__,"\n";
    }
}
function funcname()
{
    echo __FUNCTION__,"\n";
}
const constname = "global";

$a = 'classname';
$obj = new $a; // gibt classname::__construct aus
$b = 'funcname';
$b(); // gibt funcname aus
echo constant('constname'), "\n"; // gibt global aus
?>
Um diesen Code umzuformen, muss man den vollständig qualifizierten Namen (Klassenname mit namespace-Präfix) verwenden. Beachten Sie, dass, weil es keinen Unterschied zwischen einem qualifizierten und vollständig qualifizierten Namen innerhalb eines dynamischen Klassen-, Funktions- oder Konstantennamen gibt, der führende Backslash nicht notwendigerweise angegeben werden muss.

Beispiel #2 Dynamischer Zugriff auf Elemente mit Namespace

<?php
namespace namespacename;
class classname
{
    function __construct()
    {
        echo __METHOD__,"\n";
    }
}
function funcname()
{
    echo __FUNCTION__,"\n";
}
const constname = "namespaced";

/* Wenn man doppelte Anführungszeichen verwendet,
muss "\\namespacename\\classname" verwendet werden */
$a = '\namespacename\classname';
$obj = new $a; // gibt namespacename\classname::__construct aus
$a = 'namespacename\classname';
$obj = new $a; // gibt ebenfalls namespacename\classname::__construct aus
$b = 'namespacename\funcname';
$b(); // gibt namespacename\funcname aus
$b = '\namespacename\funcname';
$b(); // gibt ebenfalls namespacename\funcname aus
echo constant('\namespacename\constname'), "\n"; // gibt namespaced aus
echo constant('namespacename\constname'), "\n"; // gibt ebenfalls namespaced aus
?>

Bitte lesen Sie auch den Hinweis zum Escaping von Namespacenamen in Strings.


Namespace-Schlüsselwort und __NAMESPACE__-Konstante

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

PHP unterstützt zwei Arten des abstrakten Zugriffs auf Elemente innerhalb eines Namenspaces, die magische Konstante __NAMESPACE__ und das Schlüsselwort namespace.

Der Wert von __NAMESPACE__ ist ein String, der den Namen des aktuellen Namespace beinhaltet. In globalem Code ohne Namespaces beinhaltet dies einen leeren String.

Beispiel #1 __NAMESPACE__-Beispiel, Code mit Namespace

<?php
namespace MyProject;

echo '"', __NAMESPACE__, '"'; // gibt "MyProject" aus
?>

Beispiel #2 __NAMESPACE__-Beispiel, globaler Code

<?php

echo '"', __NAMESPACE__, '"'; // gibt "" aus
?>
Die Konstante __NAMESPACE__ ist nützlich, um dynamische Namen zu konstruieren, zum Beispiel:

Beispiel #3 __NAMESPACE__ zur dynamischen Namenszusammensetzung verwenden

<?php
namespace MyProject;

function get($classname)
{
    $a = __NAMESPACE__ . '\\' . $classname;
    return new $a;
}
?>

Das Schlüsselwort namespace kann verwendet werden, um explizit ein Element des aktuellen Namespaces oder eines untergeordneten Namespaces anzufordern. Es ist das äquivalent der Namespaces zum self-Operator für Klassen.

Beispiel #4 Der namespace-Operator, innerhalb eines Namespace

<?php
namespace MyProject;

use blah\blah as mine; // siehe "Namespaces verwenden: Aliase/Importieren"

blah\mine(); // ruft die Funktion MyProject\blah\mine() auf
namespace\blah\mine(); // ruft die Funktion MyProject\blah\mine() auf

namespace\func(); // ruft die Function MyProject\func() auf
namespace\sub\func(); // ruft die Function MyProject\sub\func() auf
namespace\cname::method(); // ruft die statische Methode "method" der Klasse MyProject\cname auf
$a = new namespace\sub\cname(); // erzeugt ein Objekt der Klasse MyProject\sub\cname
$b = namespace\CONSTANT; // weist den Wert der Konstante MyProject\CONSTANT $b zu
?>

Beispiel #5 Der namespace-Operator, in globalem Code

<?php

namespace\func(); // ruft die Function func() auf
namespace\sub\func(); // ruft die Function sub\func() auf
namespace\cname::method(); // ruft die statische Methode "method" der Klasse cname auf
$a = new namespace\sub\cname(); // erzeugt ein Objekt der Klasse sub\cname
$b = namespace\CONSTANT; // weist den Wert der Konstante CONSTANT $b zu
?>


Namespaces verwenden: Aliase/Importieren

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Die Möglichkeit, auf vollständig qualifizierte Namen mit einem Alias (Importieren) zuzugreifen, ist ein wichtiges Feature von Namespaces. Dies ist ähnlich wie die Möglichkeit von Unix-basierten Dateisystemen einen symbolischen Link auf eine Datei oder ein Verzeichnis anzulegen.

Alle PHP-Versionen die Namespaces unterstützen drei Arten von Aliasen oder Importen: Einen Alias für einen Klassennamen, einen Alias für einen Interfacenamen und einen Alias für einen Namespace. PHP 5.6+ erlauben ebenfalls den Import bzw. die Vergabe eines Alias für Funktionen und Konstanten.

Ein Alias wird in PHP mittels des use-Operators angelegt. Hier ein Beispiel, welches alle fünf Arten von Importen zeigt:

Beispiel #1 Aliase/Importieren mit dem use-Operator

<?php
namespace foo;
use My\Full\Classname as Another;

// dies ist das gleiche wie use My\Full\NSname as NSname
use My\Full\NSname;

// importiert eine globale Klasse
use ArrayObject;

// Eine Funktion importieren (PHP 5.6+)
use function My\Full\functionName;

// Alias für eine Funktion (PHP 5.6+)
use function My\Full\functionName as func;

// Eine Konstante importieren (PHP 5.6+)
use const My\Full\CONSTANT;

$obj = new namespace\Another; // erzeugt ein Objekt der Klasse foo\Another
$obj = new Another; // erzeugt ein Objekt der Klasse My\Full\Classname
NSname\subns\func(); // ruft die Funktion My\Full\NSname\subns\func auf
$a = new ArrayObject(array(1)); // erzeugt ein Objekt der Klasse ArrayObject
// ohne das "use ArrayObject" wäre ein Objekt der Klasse foo\ArrayObject erzeugt worden
func(); // ruft die Funktion My\Full\functionName auf
echo CONSTANT; // Gibt den Wert von My\Full\CONSTANT aus
?>
Beachten Sie, dass für Namen von Namespaces (vollständig qualifizierte Namespacenamen mit einem Namensraumseparator, wie Foo\Bar, im Gegensatz zu globalen Namen ohne Separator, wie FooBar) der führende Backslash nicht notwendig und nicht empfohlen ist, weil importierte Namen vollständig qualifiziert sein müssen und nicht relativ zum aktuellen Namespace verarbeitet werden.

PHP unterstützt zusätzlich auch eine komfortable Kurzsyntax, mit der mehrere use-Ausdrücke in der gleichen Zeile erscheinen können.

Beispiel #2 Aliase/Importieren mit dem use-Operator, mehrere use-Ausdrücke kombiniert

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // erzeugt ein Objekt der Klasse My\Full\Classname
NSname\subns\func(); // ruft die Funktion My\Full\NSname\subns\func auf
?>

Importieren wird zur Kompilierungszeit ausgeführt und hat daher keinen Einfluss auf dynamische Klassen-, Funktions- oder Konstantennamen.

Beispiel #3 Importieren und dynamische Namen

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // erzeugt ein Objekt der Klasse My\Full\Classname
$a = 'Another';
$obj = new $a;      // erzeugt ein Objekt der Klasse Another
?>

Zusätzlich beeinflusst das Importieren nur unqualifizierte und qualifizierte Namen. Vollständig qualifizierte Namen sind absolut und werden von Importen nicht beeinflusst.

Beispiel #4 Importieren und vollständig qualifizierte Namen

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // erzeugt ein Objekt der Klasse My\Full\Classname
$obj = new \Another; // erzeugt ein Objekt der Klasse Another
$obj = new Another\thing; // erzeugt ein Objekt der Klasse My\Full\Classname\thing
$obj = new \Another\thing; // erzeugt ein Objekt der Klasse Another\thing
?>

Gültigkeitsbereiche für Importe

Das Schlüsselwort use muss im äußersten Gültigkeitsbereich (dem globalen Gültigkeitsbereich) oder innerhalb einer Namespace-Deklaration angegeben werden. Das ist darin begründet, dass Importe zur Kompilierungszeit und nicht zur Laufzeit durchgeführt werden und daher nicht in einem anderen Gültigkeitsbereich liegen dürfen. Das folgende Beispiel zeigt eine ungültige Verwendung des use-Schlüsselwortes:

Beispiel #5 Ungültige Importregel

<?php
namespace Languages;

function toGreenlandic()
{
    use Languages\Danish;

    // ...
}
?>

Hinweis:

Importregeln sind auf Dateibasis gültig, das heißt eine eingebundene Datei wird NICHT die Importregeln der einbindenden Datei erben.

Gruppierte use Deklarationen

Von PHP 7.0 an können Klassen, Funktionen und Konstanten, die aus dem gleichen Namespace importiert werden, in einer einzigen use Anweisung gruppiert werden.

<?php

// Pre PHP 7 Code
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

use function some\namespace\fn_a;
use function some\namespace\fn_b;
use function some\namespace\fn_c;

use const some\namespace\ConstA;
use const some\namespace\ConstB;
use const some\namespace\ConstC;

// PHP 7+ Code
use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};


Globaler Namensraum

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Ohne die Definition eines Namespace werden alle Klassen- und Funktionsdefinitionen im globalen Namensraum platziert, so wie dies auch in PHP geschah bevor Namespaces unterstützt wurden. Wenn man dem Namen ein \ voranstellt, so spezifiziert man, dass der Name dem globalen Namensraum angehört, auch wenn man sich im Kontext eines Namensraumes befindet.

Beispiel #1 Verwenden der Spezifikation des gloablen Namensraumes

<?php
namespace A\B\C;

/* Diese Funktion ist A\B\C\fopen */
function fopen() {
     /* ... */
     $f = \fopen(...); // globale Funktion fopen aufrufen
     return $f;
}
?>


Namespaces verwenden: Rückgriff auf globale Funktion/Konstante

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Wenn PHP innerhalb eines Namespace auf einen unqualifizierten Namen für einen Klassen-, Funktions- oder Konstantennamen trifft, so werden diese mit unterschiedlichen Prioritäten aufgelöst. Klassennamen werden immer auf den aktuellen Namespace aufgelöst. Um also auf interne Klassen oder Benutzerklassen ohne Namespace zuzugreifen, muss man diese mit ihrem vollständig qualifizierten Namen ansprechen:

Beispiel #1 Zugriff auf globale Klasse innerhalb eines Namespace

<?php
namespace A\B\C;
class Exception extends \Exception {}

$a = new Exception('hi'); // $a ist ein Objekt der Klasse A\B\C\Exception
$b = new \Exception('hi'); // $b ist ein Objekt der Klasse Exception

$c = new ArrayObject; // fatal error, die Klasse A\B\C\ArrayObject konnte
                      // nicht gefunden werden
?>

Für Funktionen und Konstanten wird PHP auf globale Funktionen oder Konstanten zurückgreifen, wenn eine Funktion oder Konstante im Namespace nicht existiert.

Beispiel #2 Rückgriff auf globale Funktionen/Konstanten innerhalb eines Namespace

<?php
namespace A\B\C;

const E_ERROR = 45;
function strlen($str)
{
    return \strlen($str) - 1;
}

echo E_ERROR, "\n"; // gibt "45" aus
echo INI_ALL, "\n"; // gibt "7" aus - Rückgriff auf globale INI_ALL

echo strlen('hi'), "\n"; // gibt "1" aus
if (is_array('hi')) { // gibt "ist kein Array" aus
    echo "ist Array\n";
} else {
    echo "ist kein Array\n";
}
?>


Regeln für Namensauflösung

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Hier einige wichtige Definitionen für die Zwecke der Namensauflösungsregeln:

Namespace-Namen-Definitionen
Unqualifizierter Name

Dies ist ein Bezeichner ohne einen Namespaceseparator, z.B. Foo

Qualifizierter Name

Dies ist ein Bezeichner mit einem Namespaceseparator, z.B. Foo\Bar

Vollständig qualifizierter Name

Dies ist ein Bezeichner mit einem Namespaceseparator, der mit einem Namespaceseparator beginnt, z.B. \Foo\Bar. Der Namespace namespace\Foo ist ebenfalls ein vollständig qualifizierter Name.

Relativer Name

Dies ist ein Bezeichner, der mit namespace beginnt, wie etwa namespace\Foo\Bar.

Namen werden gemäß den folgenden Regeln aufgelöst:

  1. Vollständig qualifizierte Namens werden immer zu dem Namen ohne führenden Namensraumtrenner aufgelöst. \A\B wird z.B. zu A\B aufgelöst.
  2. Relative Namen werden immer zu dem Namen aufgelöst, in dem namespace durch den aktuellen Namensraum ersetzt wurde. Taucht der Namen im globalen Geltungsbereich auf, wird das namespace\-Präfix entfernt. Beispielsweise wird namespace\A innerhalb des Namensraums X\Y zu X\Y\A aufgelöst. Derselbe Name im globalen Geltungsbereich wird zu A aufgelöst.
  3. Für qualifizierte Namen wird das erste Segment des Namens gemäß der aktuellen Klassen-/Namensraum-Importtabelle übersetzt. Wird beispielsweise der Namensraum A\B\C als C importiert, wird der Name C\D\E zu A\B\C\D\E übersetzt.
  4. Wenn für qualifizierte Namen keine Importregel zutrifft, wird der aktuelle Namensraum dem Namen vorangestellt. Beispielsweise wird der Name C\D\E innerhalb des Namensraums A\B zu A\B\C\D\E aufgelöst.
  5. Für unqualifizierte Namen wird der Name gemäß der aktuellen Importtabelle für die betreffende Symboltabelle übersetzt. Das bedeutet, dass klassenartige Namen gemäß der Klassen-/Namensraum-Importtabelle, Funktionsnamen gemäß der Funktions-Importtabelle und Konstantennamen gemäß der Konstanten-Importtabelle übersetzt werden. Beispielsweise wird nach use A\B\C; eine Verwendung wie etwa new C() zum Namen A\B\C() aufgelöst. Analog wird nach use function A\B\fn; eine Verwendung wie etwa fn() zum Namen A\B\fn aufgelöst.
  6. Wenn für unqualifizierte Namen keine Importregel zutrifft, und sich der Name auf ein klassenartiges Symbol bezieht, wird der aktuelle Namensraum vorangestellt. Beispielsweise wird new C() innerhalb des Namensraums A\B zum Namen A\B\C aufgelöst.
  7. Wenn für unqualifizierte Namen keine Importregel zutrifft, und sich der Name auf eine Funktion oder Konstante bezieht, und der Code sich außerhalb des globalen Geltungsbereichs befindet, wird der Name zur Laufzeit aufgelöst. Angenommen der Code befindet sich im Namensraum A\B, wird im folgenden erläutert, wie der Aufruf einer Funktion foo() aufgelöst wird:
    1. Zuerst wird nach der Funktion im aktuellen Namespace gesucht: A\B\foo().
    2. Es wird versucht, die Funktion foo() im globalen Namensraum zu finden und aufzurufen.

Beispiel #1 Illustration der Namensauflösung

<?php
namespace A;
use B\D, C\E as F;

// Funktionsaufrufe

foo();      // versucht zuerst die Funktion "foo" im Namespace "A" aufzurufen
            // danach wird die globale Funktion "foo" aufgerufen

\foo();     // ruft die Funktion "foo" im globalen Namensraum auf

my\foo();   // ruft die Funktion "foo" im Namespace "A\my" auf

F();        // versucht zuerst die Funktion "F" im Namespace "A" aufzurufen,
            // danach wird die globale Funktion "F" aufgerufen

// Klassenreferenzen

new B();    // erzeugt ein Objekt der Klasse "B" im Namespace "A"
            // wenn diese Klasse nicht bekannt ist, so wird versucht per
            //  Autoload die Klasse "A\B" zu laden

new D();    // gemäß den Importregeln wird ein Objekt der Klasse "D"
            //  aus dem Namenspace "B" erzeugt
            // wenn diese Klasse nicht bekannt ist, so wird versucht per
            //  Autoload die Klasse "B\D" zu laden

new F();    // gemäß den Importregeln wird ein Objekt der Klasse "E"
            //  aus dem Namespace "C" erzeugt
            // wenn diese Klasse nicht bekannt ist, so wird versucht per
            //  Autoload die Klasse "C\E" zu laden

new \B();   // erzeugt ein Objekt der Klasse "B" aus dem globalen Namensraum
            // wenn diese Klasse nicht bekannt ist, so wird versucht per
            //  Autoload die Klasse "B" zu laden

new \D();   // erzeugt ein Objekt der Klasse "D" aus dem globalen Namensraum
            // wenn diese Klasse nicht bekannt ist, so wird versucht per
            //  Autoload die Klasse "D" zu laden

new \F();   // erzeugt ein Objekt der Klasse "F" aus dem globalen Namensraum
            // wenn diese Klasse nicht bekannt ist, so wird versucht per
            //  Autoload die Klasse "F" zu laden

// statische Methoden und Funktionen mit Namespace aus anderen Namespaces

B\foo();    // ruft die Funktion "foo" aus dem Namensraum "A\B" auf

B::foo();   // ruft die Methode "foo" der Klasse "B" im Namensraum "A" auf
            // wenn die Klasse "A\B" nicht bekannt ist, so wird versucht
            //  die Klasse "A\B" mittels Autoload zu laden

D::foo();   // ruft gemäß den Importregeln die Methode "foo" der Klasse "D"
            //  im Namensraum "B" auf
            // wenn die Klasse "B\D" nicht bekannt ist, so wird versucht
            //  die Klasse "B\D" mittels Autoload zu laden

\B\foo();   // ruft die Funktion "foo" im Namespace "B" auf

\B::foo();  // ruft die Methode "foo" der Klasse "B" im
           //   globalen Namensraum auf
            // wenn die Klasse "B" nicht bekannt ist, so wird versucht
            //  die Klasse "B" mittels Autoload zu laden

// statische Methoden und Funktionen mit Namespace aus den gleichen Namespaces

A\B::foo();   // ruft die Methode "foo" der Klasse "B" aus dem Namespace "A\A" auf
              // wenn die Klasse "A\A\B" nicht bekannt ist, so wird
              //  versucht die Klasse "A\A\B" mittels Autoload zu laden

\A\B::foo();  // ruft die Methode "foo" der Klasse "B" aus dem Namespace "A" auf
              // wenn die Klasse "A\B" nicht bekannt ist, so wird
              //  versucht die Klasse "A\B" mittels Autoload zu laden
?>


FAQ: Dinge, die Sie über Namespaces wissen sollten

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Diese häufig gestellten Fragen (FAQ) wurden in zwei Abschnitte aufgeteilt: allgemeine Fragen und einige Implementierungsdetails, deren vollständiges Verständnis hilfreich sein kann.

Zuerst die allgemeinen Fragen.

  1. Wenn ich keine Namespaces verwende, sollte mich das alles hier überhaupt interessieren?
  2. Wie verwende ich interne oder globale Klassen in einem Namespace?
  3. Wie verwende ich Klassen, Funktionen oder Konstanten mit Namespaces in ihrem eignenen Namespace?
  4. Wie wird ein Name wie \mein\name oder \name aufgelöst?
  5. Wie wird ein Name wie mein\name aufgelöst?
  6. Wie wird ein unqualifizierter Name wie name aufgelöst?
  7. Wie wird ein unqualifizierter Funktions- oder Konstantenname wie name aufgelöst?

Es gibt einige Implementierungsdetails von Namespaces, deren Verständnis hilfreich ist.

  1. Importierte Namen dürfen keine Konflikte mit Klassennamen in der gleichen Datei erzeugen.
  2. Verschachtelte Namespaces sind nicht erlaubt.
  3. Vor PHP 5.6 konnten weder Funktionen noch Konstanten mittels use importiert werden.
  4. Dynamische Namespacenamen sollten den Backslash escapen.
  5. Zugriff auf undefinierte Konstanten mit Backslashes beendet das Skript mit einem fatal error.
  6. Die speziellen Konstanten NULL, TRUE, FALSE, ZEND_THREAD_SAFE und ZEND_DEBUG_BUILD können nicht überschrieben werden.

Wenn ich keine Namespaces verwende, sollte mich das alles hier überhaupt interessieren?

Nein. Namespaces haben keinerlei Einfluss auf bereits bestehenden Code oder irgendwelchen Code der noch geschrieben wird, der keine Namespaces verwendet. Sie können folgenden Code schreiben, wenn Sie dies wünschen:

Beispiel #1 Zugriff auf globale Klassen außerhalb eines Namespace

<?php
$a = new \stdClass;
?>

Dies ist äquivalent zu:

Beispiel #2 Zugriff auf globale Klassen außerhalb eines Namespace

<?php
$a = new stdClass;
?>

Wie verwende ich interne oder globale Klassen in einem Namespace?

Beispiel #3 Zugriff auf interne Klassen in Namespaces

<?php
namespace foo;
$a = new \stdClass;

function test(\ArrayObject $typehintexample = null) {}

$a = \DirectoryIterator::CURRENT_AS_FILEINFO;

// erben von einer internen oder globalen Klasse
class MyException extends \Exception {}
?>

Wie verwende ich Klassen, Funktionen oder Konstanten mit Namespaces in ihrem eignenen Namespace?

Beispiel #4 Zugriff auf interne Klassen, Funktionen oder Konstanten in Namespaces

<?php
namespace foo;

class MyClass {}

// verwendet eine Klasse des aktuellen Namensraumes als Type-Hint
function test(MyClass $typehintexample = null) {}
// eine andere Möglichkeit, eine Klasse des aktuellen Namensraums
//  als Type-Hint zu verwenden
function test(\foo\MyClass $typehintexample = null) {}

// ableiten von einer Klasse aus dem aktuellen Namespace
class Extended extends MyClass {}

// Zugriff auf eine globale Funktion
$a = \globalfunc();

// Zugriff auf eine globale Konstante
$b = \INI_ALL;
?>

Wie wird ein Name wie \mein\name oder \name aufgelöst?

Namen, die mit einem \ beginnen, werden immer zu exakt dem aufgelöst wie sie aussehen. \mein\name ist also tatsächlich \mein\name und \Exception ist Exception.

Beispiel #5 Vollständig qualifizierte Namen

<?php
namespace foo;
$a = new \my\name(); // erzeugt ein Objekt der Klasse "my\name"
echo \strlen('hi'); // ruft die Funktion "strlen" auf
$a = \INI_ALL; // $a wird auf den Wert der Konstante "INI_ALL" gesetzt
?>

Wie wird ein Name wie mein\name aufgelöst?

Namen, die einen Backslash beinhalten, aber nicht mit einem Backslash beginnen, wie z.B. mein\name, können auf zwei verschiedene Arten aufgelöst werden.

Falls es einen Import-Ausdruck gibt, der einen Alias für einen anderen Namen definiert, so dass dieser mein heißen soll, dann wird dieser Alias für das mein in mein\name angewandt.

Andernfalls wird der aktuelle Namespace vor mein\name vorangestellt.

Beispiel #6 Qualifizierte Namen

<?php
namespace foo;
use blah\blah as foo;

$a = new my\name(); // erzeugt ein Objekt der Klasse "foo\my\name"
foo\bar::name(); // ruft die statische Methode "name"
                 // der Klasse "blah\blah\bar" auf
my\bar(); // ruft die Funktion "foo\my\bar" auf
$a = my\BAR; // setzt $a auf den Wert der Konstante "foo\my\BAR"
?>

Wie wird ein unqualifizierter Name wie name aufgelöst?

Klassennamen, die keinen Backslash beinhalten, wie z.B. name, können auf zwei Arten aufgelöst werden.

Falls es einen Import-Ausdruck gibt, der einen Alias für einen anderen Namen definiert, so dass dieser name heißen soll, dann wird dieser Alias angewandt.

Andernfalls wird der aktuelle Namespace name vorangestellt.

Beispiel #7 Unqualifizierter Klassennamen

<?php
namespace foo;
use blah\blah as foo;

$a = new name(); // erzeugt ein Objekt der Klasse "foo\name"
foo::name(); // ruft die statische Methode "name" der Klasse "blah\blah" auf
?>

Wie wird ein unqualifizierter Funktions- oder Konstantenname wie name aufgelöst?

Funktions- oder Konstantennamen, die keinen Backslash beinhalten, wie z.B. name, können auf zwei verschiedene Arten aufgelöst werden.

Zuerst wird der aktuelle Namespace dem name vorangestellt.

Wenn die Konstante oder Funktion name im aktuellen Namensraum nicht existiert, so wird die globale Konstante oder Funktion name verwendet, wenn sie existiert.

Beispiel #8 Unqualifizierte Funktions- oder Konstantennamen

<?php
namespace foo;
use blah\blah as foo;

const FOO = 1;

function my() {}
function foo() {}
function sort(&$a)
{
    \sort($a);
    $a = array_flip($a);
    return $a;
}

my(); // ruft "foo\my" auf
$a = strlen('hi'); // ruft die globale Funktion "strlen" auf, weil
                   // foo\strlen nicht existiert
$arr = array(1,3,2);
$b = sort($arr); // ruft die Funktion "foo\sort" auf
$c = foo(); // ruft die Funktion "foo\foo" auf - der Alias wird ignoriert

$a = FOO; // setzt $a auf den Wert der Konstante "foo\FOO" -
          // der Alias wird ignoriert
$b = INI_ALL; // setzt $b auf den Wert der globalen Konstante "INI_ALL"
?>

Importierte Namen dürfen keine Konflikte mit Klassennamen in der gleichen Datei erzeugen.

Die folgende Kombination von Skripten ist gültig:

file1.php

<?php
namespace mein\zeug;
class MyClass {}
?>

anderes.php

<?php
namespace anderes;
class Ding {}
?>

file2.php

<?php
namespace mein\zeug;
include 'file1.php';
include 'anderes.php';

use anderes\Ding as MyClass;
$a = new MyClass; // erzeugt ein Objekt der Klasse "Ding"
                  // aus dem Namespace "anderes"
?>

Es gibt hier, trotzdem es eine Klasse MyClass im Namespace mein\zeug gibt, keinen Namenskonflikt, weil die Definition der Klasse MyClass sich in einer anderen Datei befindet. Das nächste Beispiel erzeugt hingegen einen fatal error wegen eines Namenskonflikts, weil MyClass in derselben Datei definiert wird, die auch den use-Ausdruck beinhaltet.

<?php
namespace mein\zeug;
use anderes\Ding as MyClass;
class MyClass {} // fatal error: Konflikt zwischen MyClass und import-Ausdruck
$a = new MyClass;
?>

Verschachtelte Namespaces sind nicht erlaubt.

PHP erlaubt das Verschachteln von Namespaces nicht.

<?php
namespace mein\zeug {
    namespace verschachtelt {
        class foo {}
    }
}
?>
Es ist jedoch leicht möglich, verschachtelte Namespaces zu simulieren:
<?php
namespace mein\zeug\verschachtelt {
    class foo {}
}
?>

Vor PHP 5.6 konnten weder Funktionen noch Konstanten mittels use importiert werden.

Vor PHP 5.6 sind die einzigen Elemente, die von einem use-Ausdruck beeinflusst werden, Namespaces und Klassenamen. Um einen langen Konstanten- oder Funktionsnamen abzukürzen, kann dessen beinhaltender Namespace importiert werden.

<?php
namespace mein;
use sehr\langer\namespace\name;

$a = name\CONSTANT;
name\func();
?>
Von PHP 5.6 an sind Aliase und Importieren von Funktions- und Konstantennamen erlaubt.

Dynamische Namespacenamen sollten den Backslash escapen.

Es ist wichtig zu bemerken, dass ein Backslash in Strings als Escape-Zeichen verwendet wird und daher immer verdoppelt werden sollte, wenn er in einem String verwendet wird. Andernfalls besteht das Risiko ungewollter Auswirkungen:

Beispiel #9 Gefahren von Namespacenamen in Strings mit doppelten Anführungszeichen

<?php
$a = "gefaehrlicher\name"; // \n ist in doppelten Anführungszeichen
                           // ein Zeilenumbruch!
$obj = new $a;

$a = 'ueberhaupt\nicht\gefaehrlich'; // hier gibt es keine Probleme
$obj = new $a;
?>
Innerhalb eines Strings, der von einfachen Anführungszeichen umschlossen ist, ist es deutlich ungefährlicher, die Backslash-Escape-Sequenz zu verwenden. Es wird dennoch empfohlen, Backslashes in allen Strings zu escapen.

Zugriff auf undefinierte Konstanten mit Backslashes beendet das Skript mit einem fatal error.

Jeder Zugriff auf eine Konstante mit unqualifiziertem Namen, wie FOO, wird eine Notice erzeugen, welche erklärt, dass PHP angenommen hat, dass FOO der Wert der Konstante sei. Jede Konstante, qualifiziert oder vollständig qualifiziert, deren Name einen Backslash enthält, wird einen fatal error hervorrufen, wenn sie nicht gefunden wurde.

Beispiel #10 Undefinierte Konstanten

<?php
namespace bar;
$a = FOO; // notice - undefined constant "FOO" assumed "FOO";
$a = \FOO; // fatal error, undefined namespace constant FOO
$a = Bar\FOO; // fatal error, undefined namespace constant bar\Bar\FOO
$a = \Bar\FOO; // fatal error, undefined namespace constant Bar\FOO
?>

Die speziellen Konstanten NULL, TRUE, FALSE, ZEND_THREAD_SAFE und ZEND_DEBUG_BUILD können nicht überschrieben werden.

Jeder Versuch, eine Konstante in einem Namespace zu definieren, die eine der speziellen, eingebauten Konstanten ist, wird einen fatal error hervorrufen.

Beispiel #11 Spezielle Konstanten

<?php
namespace bar;
const NULL = 0; // fatal error;
const true = 'stupid'; // ebenfalls fatal error;
// etc.
?>


Fehler

Inhaltsverzeichnis

  • Basics
  • Fehler in PHP 7

Einführung

Schade, aber wahr: egal wie vorsichtig wir unseren Code schreiben, Fehler sind ein Teil des Lebens. PHP zeigt Fehler, Warnungen und Hinweise für viele gängige Programmier- und Laufzeitprobleme an, und zu wissen, wie man diese erkennt und behandelt, macht das Debuggen viel einfacher.


Basics

PHP meldet Fehler als Reaktion auf eine Reihe von internen Fehlerzuständen. Diese können verwendet werden, um eine Reihe von verschiedenen Zuständen zu signalisieren, und können nach Bedarf angezeigt und/oder protokolliert werden.

Jeder Fehler, den PHP erzeugt, beinhaltet einen Typ. Eine Liste dieser Typen ist verfügbar, zusammen mit einer kurzen Beschreibung ihres Verhaltens und wie sie hervorgerufen werden können.

Fehlerbehandlung mit PHP

Wenn keine Funktion zur FehlerBehandlung bestimmt wurde, behandelt PHP alle auftretenden Fehler gemäß seiner Konfiguration. Welche Fehler berichtet und welche ignoriert werden wird dabei durch die Anweisung error_reporting in der php.ini oder zur Laufzeit durch den Aufruf von error_reporting() kontrolliert. Es wird dringend empfohlen, dass die Konfigurationsanweisung gesetzt werden, da einige Fehler auftreten können, bevor die Ausführung des Skripts beginnt.

In einer Entwicklungsumgebung sollte error_reporting immer auf den Wert E_ALL eingestellt werden, damit man auf alle von PHP festgestellten Probleme aufmerksam gemacht wird und diese korrigieren kann. In einer Produktivumgebung würde man dies auf einen weniger geschwätzigen Wert wie etwa E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED einstellen, wobei aber in vielen Fällen E_ALL ebenfalls angemessen ist, da es eine Frühwarnung für potentielle Probleme anbieten kann.

Wie PHP mit diesen Fehlern weiter fortfährt, hängt von zwei weiteren Anweisungen in php.ini ab. display_errors kontrolliert, ob ein Fehler als Teil der Ausgabe des Skriptes angezeigt wird. Dies sollte in einer Produktivumgebung immer abgestellt werden, da es sensible Informationen wie beispielsweise Datenbankzugangsdaten beinhalten kann, aber in Entwicklungsumgebungen ist es oft hilfreich dies einzuschalten, da es eine sofortige Berichterstattung über Probleme sicherstellt.

Zusätzlich zum Anzeigen von Fehlern kann PHP die Fehler protokollieren, wenn die Anweisung log_errors aktiviert ist. Damit werden alle Fehler in die Datei oder Syslog protokolliert, welche durch die Anweisung error_log eingestellt ist. Dies kann in Produktivumgebungen sehr hilfreich sein, da damit auftretende Fehler protokolliert und daraus hilfreiche Berichte erzeugt werden können.

Benutzerdefinierte Fehlerbehandlung

Wenn die standardmäßige Fehlerbehandlung von PHP nicht ausreichend ist, kann man außerdem viele Arten von Fehlern mit einer eigenen Funktion zur Fehlerbehandlung verarbeiten, in dem man diese mittels set_error_handler() einrichtet. Während manche Arten von Fehlern damit nicht verarbeitet werden können, kann ein Skript diejenigen die behandelt werden können damit so behandeln wie es am sinnvollsten erscheint: Beispielsweise kann dies benutzt werden, um dem Benutzer eine angepasste Fehlerseite anzuzeigen und anschließend über den Fehler direkter als nur durch ein Protokoll zu berichten, zum Beispiel durch das Senden einer E-Mail.


Fehler in PHP 7

PHP 7 verändert, wie die meisten Fehler durch PHP berichtet werden. Anstatt Fehler durch den traditionellen Berichterstattungsmechanismus, der durch Php 5 verwendet wurde, zu berichten, werden die meisten Fehler nun durch das Werfen einer Error-Ausnahme berichtet.

Wie auch normale Ausnahmen, werden diese Error-Ausnahmen so lange nach oben weiter gereicht bis sie einen ersten passenden catch-Block erreichen. Wenn es keinen passenden Block gibt, wird der standardmäßige Exception-Handler, der durch set_exception_handler() eingerichtet werden kann, aufgerufen und wenn es keinen standardmäßigen Exception-Handler gibt wird die Ausnahme in einen fatalen Fehler umgewandelt und diese wie ein traditioneller Fehler behandelt.

Da die Error-Hierarchie nicht von Exception abgeleitet ist, wird Code der catch (Exception $e) { ... }-Blöcke zur Behandlung von ungefangenen Ausnahmen in PHP 5 verwendet feststellen, dass Error nicht durch diese Blöcke gefangen werden. Dazu wird entweder ein catch (Error $e) { ... }-Block oder ein durch set_exception_handler() gesetzter Handler benötigt.

Error-Hierarchie

  • Throwable
    • Error
      • ArithmeticError
        • DivisionByZeroError
      • AssertionError
      • CompileError
        • ParseError
      • TypeError
        • ArgumentCountError
    • Exception
      • ...


Ausnahmebehandlung (Exception-Handling)

Inhaltsverzeichnis

  • Exceptions erweitern

PHP hat ein Exceptionmodell ähnlich dem anderer Programmiersprachen. Eine Exception kann in PHP geworfen (throw) und abgefangen (catch) werden. Um das Abfangen potentieller Exceptions zu ermöglichen, sollte der jeweilige Code von einem try-Block umschlossen werden. Jeder try-Block muss mindestens einen zugehörigen catch- oder finally-Block besitzen.

Das geworfene Objekt muss eine Instanz der Klasse Exception oder einer Unterklasse von Exception sein. Der Versuch ein Objekt zu werfen, das das nicht ist, wird einen fatalen PHP-Fehler zur Folge haben.

catch

Mehrere catch-Blöcke können verwendet werden, um verschiedene Klassen von Exceptions abzufangen. Die normale Programmausführung (wenn keine Exception innerhalb des try-Blockes geworfen wird) wird nach dem letzten in Folge definierten catch-Block fortgesetzt. Exceptions können innerhalb eines catch-Blockes geworfen (oder weitergeworfen) werden.

Wenn eine Exception geworfen wird, führt PHP den Programmcode hinter der auslösenden Anweisung nicht aus, sondern versucht, den ersten passenden catch-Block zu finden. Falls eine Exception nicht abgefangen wird, wird ein fataler Fehler mit einer "Uncaught Exception ..."-Nachricht ausgegeben, wenn keine Behandlung mittels set_exception_handler() definiert wurde.

In PHP 7.1 und später kann ein catch-Block mehrere Exceptions getrennt durch Pipe-Zeichen (|) angeben. Dies ist nützlich, wenn unterschiedliche Exceptions von unterschiedlichen Klassenhierarchien gleich behandelt werden sollen.

finally

Ab PHP 5.5 darf nach den catch-Blöcken oder stattdessen auch ein finally-Block definiert werden. Egal, ob eine Exception geworfen wurde, wird der Code innerhalb des finally-Blocks immer nach den try- und catch-Blöcken ausgeführt, bevor die normale Ausführung fortgesetzt wird.

Eine bemerkenswerte Wechselwirkung besteht zwischen dem finally Block und einer return Anweisung. Wird eine return Anweisung innerhalb der try oder catch Blöcke angetroffen, wird der finally Block dennoch ausgeführt. Außerdem wird die return Anweisung ausgewertet, wenn sie angetroffen wird, aber das Ergebnis wird erst nach dem finally Block zurückgegeben. Des Weiteren wird, wenn der finally Block ebenfalls eine return Anweisung enthält, der Wert aus dem finally Block zurückgegeben.

Anmerkungen

Hinweis:

Interne PHP-Funktionen verwenden in den meisten Fällen Error-Reporting, nur moderne objektorientierte Extensions nutzen Exceptions. Fehler können allerdings einfach mittels ErrorException in eine Exception umgewandelt werden.

Tipp

Die Standard PHP Library (SPL) bietet eine große Anzahl eingebauter Exceptions.

Beispiele

Beispiel #3 Eine Exception werfen

<?php
function inverse($x) {
    if (!$x) {
       throw new Exception('Division durch Null.');
    }
    return 1/$x;
}

try {
    echo inverse(5) . "\n";
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Exception abgefangen: ',  $e->getMessage(), "\n";
}

// Ausführung fortsetzen
echo "Hallo Welt\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0.2
Exception abgefangen: Division durch Null
Hallo Welt

Beispiel #4 Exceptionbehandlung mit einem finally-Block

<?php
function inverse($x) {
    if (!$x) {
        throw new Exception('Division durch Null.');
    }
    return 1/$x;
}

try {
    echo inverse(5) . "\n";
} catch (Exception $e) {
    echo 'Exception abgefangen: ',  $e->getMessage(), "\n";
} finally {
    echo "Erstes finally.\n";
}

try {
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Exception abgefangen: ',  $e->getMessage(), "\n";
} finally {
    echo "Zweites finally.\n";
}

// Ausführung fortsetzen
echo "Hallo Welt\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0.2
Erstes finally.
Exception abgefangen: Division durch Null.
Zweites finally.
Hallo Welt

Beispiel #5 Wechselwirkung zwischen dem finally-Block und return

<?php

function test() {
    try {
        throw new Exception('foo');
    } catch (Exception $e) {
        return 'catch';
    } finally {
        return 'finally';
    }
}

echo test();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

finally

Beispiel #6 Verschachtelte Exceptions

<?php

class MyException extends Exception { }

class Test {
    public function testing() {
        try {
            try {
                throw new MyException('foo!');
            } catch (MyException $e) {
                // weiterwerfen der Exception
                throw $e;
            }
        } catch (Exception $e) {
            var_dump($e->getMessage());
        }
    }
}

$foo = new Test;
$foo->testing();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(4) "foo!"

Beispiel #7 Multi catch exception handling

<?php

class MyException extends Exception { }

class MyOtherException extends Exception { }

class Test {
    public function testing() {
        try {
            throw new MyException();
        } catch (MyException | MyOtherException $e) {
            var_dump(get_class($e));
        }
    }
}

$foo = new Test;
$foo->testing();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(11) "MyException"


Exceptions erweitern

Eine benutzerdefinierte Exceptionklasse kann durch Ableitung von der eingebauten Exceptionklasse erstellt werden. Die unten angegebenen Methoden und Eigenschaften zeigen, was innerhalb der Kindklasse von der eingebauten Exceptionklasse verfügbar ist.

Beispiel #1 Die eingebaute Exceptionklasse

<?php
class Exception extends Throwable
{
    protected $message = 'Unknown exception';   // Exceptionmitteilung
    private   $string;                          // __toString-Cache
    protected $code = 0;                        // Benutzerdefinierte Fehlernummer
    protected $file;                            // Quelldateiname der Exception
    protected $line;                            // Quelldateizeile der Exception
    private   $trace;                           // Rückverfolgung
    private   $previous;                        // Vorherige Exception, falls verschachtelte Exception

    public function __construct($message = null, $code = 0, Exception $previous = null);

    final private function __clone();           // Verhindert klonen von Exceptions

    final public function getMessage();         // Mitteilung der Exception
    final public function getCode();            // Fehlercode der Exception
    final public function getFile();            // Quelldateiname
    final public function getLine();            // Quelldateizeile
    final public function getTrace();           // Array zum Rückverfolgen
    final public function getPrevious();        // Vorherige Exception
    final public function getTraceAsString();   // Formatierter String der Rückverfolgung

    // Überschreibbar
    public function __toString();               // Formatierter String für
                                                // Ausgabe
}
?>

Wenn eine Klasse die eingebaute Exceptionklasse erweitert und den Konstruktor neu definiert, ist es dringend empfohlen, dass der Konstruktor der Klasse parent::__construct() aufruft, um sicherzustellen, dass alle verfügbaren Daten korrekt zugewiesen wurden. Die __toString()-Methode kann überschrieben werden, um eine maßgeschneiderte Ausgabe anzubieten, wenn das Objekt durch eine Zeichenkette repräsentiert werden soll.

Hinweis:

Exceptions können nicht geklont werden. Der Versuch eine Exception zu klonen wird einen fatalen E_ERROR-Fehler zur Folge haben.

Beispiel #2 Die Exceptionklasse erweitern (PHP 5.3.0+)

<?php
/**
 * Eine maßgeschneiderte Exceptionklasse definieren
 */
class MyException extends Exception
{
    // Die Exception neu definieren, damit die Mitteilung nicht optional ist
    public function __construct($message, $code = 0, Exception $previous = null) {
        // etwas Code

        // sicherstellen, dass alles korrekt zugewiesen wird
        parent::__construct($message, $code, $previous);
    }

    // maßgeschneiderte Stringdarstellung des Objektes
    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }

    public function customFunction() {
        echo "Eine eigene Funktion dieses Exceptiontyps\n";
    }
}

/**
 * Erzeuge eine Klasse, um die Exception zu testen
 */
class TestException
{
    public $var;

    const THROW_NONE    = 0;
    const THROW_CUSTOM  = 1;
    const THROW_DEFAULT = 2;

    function __construct($avalue = self::THROW_NONE) {

        switch ($avalue) {
            case self::THROW_CUSTOM:
                // eigene Exception werfen
                throw new MyException('1 ist ein ungültiger Parameter', 5);
                break;

            case self::THROW_DEFAULT:
                // Vorgabe werfen
                throw new Exception('2 ist kein zugelassener Parameter', 6);
                break;

            default:
                // Keine Exception, das Objekt wird erzeugt
                $this->var = $avalue;
                break;
        }
    }
}

// Beispiel 1
try {
    $o = new TestException(TestException::THROW_CUSTOM);
} catch (MyException $e) {      // Wird gefangen
    echo "Meine Exception gefangen\n", $e;
    $e->customFunction();
} catch (Exception $e) {        // Übersprungen
    echo "Standardexception gefangen\n", $e;
}

// Ausführung fortsetzen
var_dump($o); // Null
echo "\n\n";

// Beispiel 2
try {
    $o = new TestException(TestException::THROW_DEFAULT);
} catch (MyException $e) {      // Dieser Typ passt nicht
    echo "Meine Exception gefangen\n", $e;
    $e->customFunction();
} catch (Exception $e) {        // Wird gefangen
    echo "Standardexception gefangen\n", $e;
}

// Ausführung fortsetzen
var_dump($o); // Null
echo "\n\n";

// Beispiel 3
try {
    $o = new TestException(TestException::THROW_CUSTOM);
} catch (Exception $e) {        // Wird gefangen
    echo "Standardexception gefangen\n", $e;
}

// Ausführung fortsetzen
var_dump($o); // Null
echo "\n\n";

// Beispiel 4
try {
    $o = new TestException();
} catch (Exception $e) {        // Übersprungen, keine Exception ausgelöst
    echo "Standardexception gefangen\n", $e;
}

// Ausführung fortsetzen
var_dump($o); // TestException
echo "\n\n";
?>

Hinweis:

PHP 5-Versionen vor PHP 5.3.0 unterstützen keine verschachtelten Exceptions. Für das Beispiel kann der folgende Code-Schnipsel als Ersatz für die Klasse MyException verwendet werden.

<?php
/**
 * Eine maßgeschneiderte Exceptionklasse definieren
 */
class MyException extends Exception
{
    // Die Exception neu definieren, damit die Mitteilung nicht optional ist
    public function __construct($message, $code = 0) {
        // etwas Code

        // sicherstellen, dass alles korrekt zugewiesen wird
        parent::__construct($message, $code);
    }

    // maßgeschneiderte Stringdarstellung des Objektes
    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }

    public function customFunction() {
        echo "Eine eigene Funktion dieses Exceptiontyps\n";
    }
}
?>


Generatoren

Inhaltsverzeichnis

  • Generatoren-Übersicht
  • Generator-Syntax
  • Vergleich von Generatoren mit Iterator-Objekten


Generatoren-Übersicht

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generatoren bieten eine einfache Möglichkeit, um einfache Iteratoren zu erstellen, ohne den Overhead oder die Komplexität der Erstellung einer Klasse zu haben, die das Iterator-Interface implementiert.

Ein Generator ermöglicht es Code zu schreiben, der foreach nutzt, um über eine Datenmenge zu iterieren, ohne ein Array im Speicher zu erzeugen, was zur Überschreitung des Speicherlimits führen kann oder beträchtliche Prozessorzeit benötigt. Alternativ können Sie eine Generatorfunktion schreiben, die einer normalen Funktion entspricht, bei der aber keine einmalige Rückgabe erfolgt, sondern der Generator so oft wie nötig einen Wert abgibt (Stichwort: yield), um die Werte zu liefern, über die iteriert werden soll.

Ein einfaches Beispiel dazu ist, die range()-Funktion durch einen Generator neu zu implementieren. Die Standard-range()-Funktion generiert und liefert Arrays, welche jeden Wert enthalten, was große Arrays zur Folge haben kann: zum Beispiel hat der Aufruf range(0, 1000000) zur Folge, dass weit über 100 MB an Speicher benötigt werden.

Als Alternative können wir einen xrange()-Generator implementieren, welcher immer nur genug Speicher benötigt, um ein Iterator-Objekt zu erzeugen und intern den aktuellen Zustand des Generators zu verfolgen, was sich als weniger als 1 Kilobyte herausstellt.

Beispiel #1 Implementierung von range() als Generator

<?php
function xrange($start, $limit, $step = 1) {
    if ($start <= $limit) {
        if ($step <= 0) {
            throw new LogicException('Schrittweite muss positiv sein');
        }

        for ($i = $start; $i <= $limit; $i += $step) {
            yield $i;
        }
    } else {
        if ($step >= 0) {
            throw new LogicException('Schrittweite muss negativ sein');
        }

        for ($i = $start; $i >= $limit; $i += $step) {
            yield $i;
        }
    }
}

/*
 * Hinweis: sowohl range() als auch xrange()
 * erzeugen die gleiche Ausgabe.
 */

echo 'Einstellige ungerade Zahlen von range():  ';
foreach (range(1, 9, 2) as $zahl) {
    echo "$zahl ";
}
echo "\n";

echo 'Einstellige ungerade Zahlen von xrange(): ';
foreach (xrange(1, 9, 2) as $zahl) {
    echo "$zahl ";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Einstellige ungerade Zahlen von range():  1 3 5 7 9
Einstellige ungerade Zahlen von xrange(): 1 3 5 7 9

Generator-Objekte

Beim Aufruf einer Generatorfunktion wird ein neues Objekt der internen Generator-Klasse zurückgegeben. Dieses Objekt implementiert das Iterator-Interface in gleicher Weise wie es ein forward-only Iterator-Objekt machen würde und stellt Methoden zur Verfügung, die aufgerufen werden können, um den Zustand des Generators zu manipulieren, einschließlich des Sendens von Werten an, und der Rückgabe von Werten von ihm.


Generator-Syntax

Eine Generatorfunktion sieht genau so aus wie eine normale Funktion mit der Ausnahme, dass ein Generator statt eines Wertes so viele Werte wie nötig zurückgibt (Stichwort: yield). Jede Funktion, die yield enthält, ist eine Generatorfunktion.

Wenn eine Generatorfunktion aufgerufen wird, wird ein Objekt zurückgegeben, über das iteriert werden kann. Wenn Sie über dieses Objekt iterieren (zum Beispiel, per foreach-Schleife), wird PHP die Iteratorfunktionen des Objekts jedes Mal aufrufen, wenn ein Wert benötigt wird. Dann wird der Status des Generators gesichert, so dass fortgefahren werden kann, wenn der nächste Wert benötigt wird.

Sobald keine weiteren Werte zurückgegeben werden können, kann der Generator einfach beendet werden, und der rufende Code wird fortgesetzt, als gäbe es keine weiteren Werte in einem Array.

Hinweis:

In PHP 5 konnte ein Generator keine Werte zurückgeben: machte man dies, wurde ein Kompilierungsfehler zurückgegeben. Eine leere return-Anweisung war eine gültige Syntax innerhalb eines Generators und beendete den Generator. Seit PHP 7.0 kann ein Generator Werte zurückliefern, die unter Verwendung von Generator::getReturn() ermittelt werden können.

yield-Schlüsselwort

Das Herz einer Generatorfunktion ist das yield-Schlüsselwort. In seiner einfachsten Form sieht das yield-Schlüsselwort wie eine return-Anweisung aus, ausser dass die Ausführung mit der Rückgabe nicht beendet wird, sondern yield stattdessen bei der Schleife über den Generator einen Wert für den Code bereitstellt und die Ausführung der Generatorfunktion anhält.

Beispiel #1 Ein einfaches Beispiel zum liefern (yielding) von Werten

<?php
function generiere_eins_bis_drei() {
    for ($i = 1; $i <= 3; $i++) {
        // Hinweis: $i bleibt zwischen den yields erhalten.
        yield $i;
    }
}

$generator = generiere_eins_bis_drei();
foreach ($generator as $wert) {
    echo "$wert\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1
2
3

Hinweis:

Intern werden sequentielle Integer-Schlüssel mit den abgelieferten Werten verknüpft, so wie mit einem nicht-assoziativen Array.

Achtung

Wenn Sie yield in einem Anweisungskontext nutzen (beispielsweise auf der rechten Seite einer Zuweisung), dann müssen Sie die yield-Anweisung in PHP 5 innerhalb von Klammern schreiben. Beispielsweise ist folgender Befehl gültig:

$daten = (yield $wert);

Aber dieser Befehl ist nicht gültig und wird in PHP 5 mit einem Syntaxfehler beendet:

$daten = yield $wert;

Für PHP 7 gilt die Klammerregel nicht.

Der Wert, der $daten zugewiesen wird, ist der Wert, der an Generator::send() übergeben wurde, oder null, wenn statt dessen Generator::next() aufgerufen wurde.

Produzieren von Werten mit Schlüsseln

PHP unterstützt ebenfalls assoziative Arrays, und Generatoren unterscheiden sich nicht davon. Als Ergänzung zum Produzieren einfacher Werte, wie oben gezeigt, können Sie zur gleichen Zeit auch einen Schlüssel liefern.

Die Syntax für das Produzieren eines Schlüssel/Wert-Paares ist sehr ähnlich wie die Definition von assoziativen Arrays, wie unten gezeigt.

Beispiel #2 Produzieren eines Schlüssel/Wert-Paares

<?php
/*
 * Die Eingabe sind Semikolon getrennte Felder, wobei das erste Feld
 * eine ID ist, die als Schlüssel genutzt wird.
 */

$eingabe = <<<'EOF'
1;PHP;mag Dollarzeichen
2;Python;mag Leerzeichen
3;Ruby;mag Blöcke
EOF;

function eingabe_parser($eingabe) {
    foreach (explode("\n", $eingabe) as $zeile) {
        $felder = explode(';', $zeile);
        $id = array_shift($felder);

        yield $id => $felder;
    }
}

foreach (eingabe_parser($eingabe) as $id => $felder) {
    echo "$id:\n";
    echo "    $felder[0]\n";
    echo "    $felder[1]\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1:
    PHP
    mag Dollarzeichen
2:
    Python
    mag Leerzeichen
3:
    Ruby
    mag Blöcke
Achtung

Wie oben mit dem Zurückgeben einfacher Werte gezeigt, muss man beim Produzieren eines Schlüssel/Wert-Paares im Zuweisungskontext den yield-Befehl einklammern:

$daten = (yield $schluessel => $wert);

Produzieren von null-Werten

Yield kann ohne Argument aufgerufen werden, um einen null-Wert mit einem automatischen Schlüssel zurückzugeben.

Beispiel #3 Produzieren von nulls

<?php
function generiere_drei_nulls() {
    foreach (range(1, 3) as $i) {
        yield;
    }
}

var_dump(iterator_to_array(generiere_drei_nulls()));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  NULL
  [1]=>
  NULL
  [2]=>
  NULL
}

Produzieren als Referenz

Generatorfunktionen sind genauso in der Lage Werte als Referenz zurückzugeben, wie als Wert. Dies kann in gleicher Weise erfolgen, wie beim Zurückgeben von Referenzen aus Funktionen: dies geschieht, indem dem Funktionsnamen ein Kaufmanns-Und vorangestellt wird.

Beispiel #4 Produzieren von Werten als Referenz

<?php
function &generiere_referenz() {
    $wert = 3;

    while ($wert > 0) {
        yield $wert;
    }
}

/*
 * Hinweis: wir können $nummer innerhalb der Schleife ändern,
 * und weil der Generator Referenzen zurückgibt, wird $wert
 * innerhalb von generiere_referenz() verändert.
 */
foreach (generiere_referenz() as &$nummer) {
    echo (--$nummer).'... ';
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2... 1... 0...

Generatordelegation per yield from

In PHP 7 ermöglicht die Generatordelegation mittels yield from-Ausdruck Werte von einem anderen Generator, Traversable-Objekt oder Array liefern zu lassen. Der äußere Generator liefert dann alle Werte vom inneren Generator, Objekt oder Array, bis dies nicht mehr gültig ist und die Ausführung im äußeren Generator fortfährt.

Falls ein Generator mit yield from verwendet wird, gibt der yield from-Ausdruck auch alle Werte zurück, die vom inneren Generator zurückgegeben werden.

Achtung

Speichern in ein Array (z.B. mit iterator_to_array())

yield from setzt nicht die Schlüssel zurück. Es erhält die Schlüssel, die vom Traversable-Objekt oder Array zurückgegeben wurden. Daher können einige Werte den selben Schlüssel mit einem anderen yield oder yield from gemein haben, der, bei der Einfügung in ein Array, vorherige Werte mit diesem Schlüssel überschreibt.

Ein üblicher Fall, für den dies relevant ist, ist iterator_to_array(), das standardmäßig ein indexiertes Array zurück gibt, was zu möglicherweise unerwarteten Ergebnissen führen kann. iterator_to_array() hat einen zweiten Parameter use_keys, der auf false gesetzt werden kann, um alle Werte zu sammeln, während die Schlüssel, die vom Generator geliefert werden, ignoriert werden.

Beispiel #5 yield from mit iterator_to_array()

<?php
function inner() {
    yield 1; // Schlüssel 0
    yield 2; // Schlüssel 1
    yield 3; // Schlüssel 2
}
function gen() {
    yield 0; // Schlüssel 0
    yield from inner(); // Schlüssel 0-2
    yield 4; // Schlüssel 1
}
// Übergib false als zweiten Parameter, um das Array [0, 1, 2, 3, 4] zu erhalten
var_dump(iterator_to_array(gen()));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(4)
  [2]=>
  int(3)
}

Beispiel #6 Grundlegende Verwendung von yield from

<?php
function zaehle_bis_zehn() {
    yield 1;
    yield 2;
    yield from [3, 4];
    yield from new ArrayIterator([5, 6]);
    yield from sieben_acht();
    yield 9;
    yield 10;
}

function sieben_acht() {
    yield 7;
    yield from acht();
}

function acht() {
    yield 8;
}

foreach (zaehle_bis_zehn() as $zahl) {
    echo "$zahl ";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1 2 3 4 5 6 7 8 9 10

Beispiel #7 yield from und Rückgabewerte

<?php
function zaehle_bis_zehn() {
    yield 1;
    yield 2;
    yield from [3, 4];
    yield from new ArrayIterator([5, 6]);
    yield from sieben_acht();
    return yield from neun_zehn();
}

function sieben_acht() {
    yield 7;
    yield from acht();
}

function acht() {
    yield 8;
}

function neun_zehn() {
    yield 9;
    return 10;
}

$gen = zaehle_bis_zehn();
foreach ($gen as $zahl) {
    echo "$zahl ";
}
echo $gen->getReturn();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1 2 3 4 5 6 7 8 9 10


Vergleich von Generatoren mit Iterator-Objekten

Der Hauptvorteil von Generatoren ist deren Einfachheit. Viel weniger Boilerplate-Code muss geschrieben werden als im Vergleich zur Implementierung einer Iterator-Klasse und der Code ist generell einfacher zu lesen. Zum Beispiel sind die folgende Funktion und Klasse äquivalent:

<?php
function leseZeilenVonDatei($dateiName) {
    if (!$dateiHandle = fopen($dateiName, 'r')) {
        return;
    }

    while (false !== $zeile = fgets($dateiHandle)) {
        yield $zeile;
    }

    fclose($dateiHandle);
}

// im Gegensatz zu...

class LineIterator implements Iterator {
class LineIterator implements Iterator {
    protected $fileHandle;

    protected $line;
    protected $i;

    public function __construct($fileName) {
        if (!$this->fileHandle = fopen($fileName, 'r')) {
            throw new RuntimeException('Couldn\'t open file "' . $fileName . '"');
        }
    }

    public function rewind() {
        fseek($this->fileHandle, 0);
        $this->line = fgets($this->fileHandle);
        $this->i = 0;
    }

    public function valid() {
        return false !== $this->line;
    }

    public function current() {
        return $this->line;
    }

    public function key() {
        return $this->i;
    }

    public function next() {
        if (false !== $this->line) {
            $this->line = fgets($this->fileHandle);
            $this->i++;
        }
    }

    public function __destruct() {
        fclose($this->fileHandle);
    }
}
?>

Diese Flexibilität kommt allerdings nicht ohne Preis: Generatoren sind forward-only-Iteratoren, und können nicht zurückgesetzt werden, wenn sie einmal gestartet wurden. Das heißt außerdem, dass der selbe Generator nicht mehrfach iteriert werden kann: der Generator muss durch einen erneuten Aufruf der Generator-Funktion neu erstellt werden.


Attributes

Inhaltsverzeichnis

  • Attributes overview
  • Attribute syntax
  • Reading Attributes with the Reflection API
  • Declaring Attribute Classes


Attributes overview

(PHP 8)

Attributes offer the ability to add structured, machine-readable metadata information on declarations in code: Classes, methods, functions, parameters, properties and class constants can be the target of an attribute. The metadata defined by attributes can then be inspected at runtime using the Reflection APIs. Attributes could therefore be thought of as a configuration language embedded directly into code.

With attributes the generic implementation of a feature and its concrete use in an application can be decoupled. In a way it is comparable to interfaces and their implementations. But where interfaces and implementations are about code, attributes are about annotating extra information and configuration. Interfaces can be implemented by classes, yet attributes can also be declared on methods, functions, parameters, properties and class constants. As such they are more flexible than interfaces.

A simple example of attribute usage is to convert an interface that has optional methods to use attributes. Lets assume an ActionHandler interface representing an operation in an application, where some implementations of an action handler require setup and others do not. Instead of requiring all classes that implement ActionHandler to implement a method setUp(), an attribute can be used. One benefit of this approach is that we can use the attribute several times.

Beispiel #1 Implementing optional methods of an interface with Attributes

<?php
interface ActionHandler
{
    public function execute();
}

#[Attribute]
class SetUp {}

class CopyFile implements ActionHandler
{
    public string $fileName;
    public string $targetDirectory;

    #[SetUp]
    public function fileExists()
    {
        if (!file_exists($this->fileName)) {
            throw new RuntimeException("File does not exist");
        }
    }

    #[SetUp]
    public function targetDirectoryExists()
    {
        mkdir($this->targetDirectory);
    }

    public function execute()
    {
        copy($this->fileName, $this->targetDirectory . '/' . basename($this->fileName));
    }
}

function executeAction(ActionHandler $actionHandler)
{
    $reflection = new ReflectionObject($actionHandler);

    foreach ($reflection->getMethods() as $method) {
        $attributes = $method->getAttributes(SetUp::class);

        if (count($attributes) > 0) {
            $methodName = $method->getName();

            $actionHandler->$methodName();
        }
    }

    $actionHandler->execute();
}

$copyAction = new CopyFile();
$copyAction->fileName = "/tmp/foo.jpg";
$copyAction->targetDirectory = "/home/user";

executeAction($copyAction);


Attribute syntax

There are several parts to the attributes syntax. First, an attribute declaration is always enclosed with a starting #[ and a corresponding ending ]. Inside, one or many attributes are listed, separated by comma. The attribute name is an unqualified, qualified or fully-qualified name as described in Using Namespaces Basics. Arguments to the attribute are optional, but are enclosed in the usual parenthesis (). Arguments to attributes can only be literal values or constant expressions. Both positional and named arguments syntax can be used.

Attribute names and their arguments are resolved to a class and the arguments are passed to its constructor, when an instance of the attribute is requested through the Reflection API. As such a class should be introduced for each attribute.

Beispiel #1 Attribute Syntax

<?php
// a.php
namespace MyExample;

use Attribute;

#[Attribute]
class MyAttribute
{
    const VALUE = 'value';

    private $value;

    public function __construct($value = null)
    {
        $this->value = $value;
    }
}

// b.php

namespace Another;

use MyExample\MyAttribute;

#[MyAttribute]
#[\MyExample\MyAttribute]
#[MyAttribute(1234)]
#[MyAttribute(value: 1234)]
#[MyAttribute(MyAttribute::VALUE)]
#[MyAttribute(array("key" => "value"))]
#[MyAttribute(100 + 200)]
class Thing
{
}

#[MyAttribute(1234), MyAttribute(5678)]
class AnotherThing
{
}


Reading Attributes with the Reflection API

To access attributes from classes, methods, functions, parameters, properties and class constants, the Reflection API provides the method getAttributes() on each of the corresponding Reflection objects. This method returns an array of ReflectionAttribute instances that can be queried for attribute name, arguments and to instantiate an instance of the represented attribute.

This separation of reflected attribute representation from actual instance increases control of the programmer to handle errors regarding missing attribute classes, mistyped or missing arguments. Only after calling newInstance(), objects of the attribute class are instantiated and the correct matching of arguments is validated, not earlier.

Beispiel #1 Reading Attributes using Reflection API

<?php

#[Attribute]
class MyAttribute
{
    public $value;

    public function __construct($value)
    {
        $this->value = $value;
    }
}

#[MyAttribute(value: 1234)]
class Thing
{
}

function dumpAttributeData($reflection) {
    $attributes = $reflection->getAttributes();

    foreach ($attributes as $attribute) {
       var_dump($attribute->getName());
       var_dump($attribute->getArguments());
       var_dump($attribute->newInstance());
    }
}

dumpAttributeData(new ReflectionClass(Thing::class));
/*
string(11) "MyAttribute"
array(1) {
  ["value"]=>
  int(1234)
}
object(MyAttribute)#3 (1) {
  ["value"]=>
  int(1234)
}
*/

Instead of iterating all attributes on the reflection instance, only those of a particular attribute class can be retrieved by passing the searched attribute class name as argument.

Beispiel #2 Reading Specific Attributes using Reflection API

<?php

function dumpMyAttributeData($reflection) {
    $attributes = $reflection->getAttributes(MyAttribute::class);

    foreach ($attributes as $attribute) {
       var_dump($attribute->getName());
       var_dump($attribute->getArguments());
       var_dump($attribute->newInstance());
    }
}

dumpAttributeData(new ReflectionClass(Thing::class));


Declaring Attribute Classes

While not strictly required it is recommended to create an actual class for every attribute. In the most simple case only an empty class is needed with the #[Attribute] attribute declared that can be imported from the global namespace with a use statement.

Beispiel #1 Using target specification to restrict where attributes can be used

<?php

namespace Example;

use Attribute;

#[Attribute]
class MyAttribute
{
}

To restrict the type of declaration an attribute can be assigned to, a bitmask can be passed as the first argument to the #[Attribute] declaration.

Beispiel #2 Simple Attribute Class

<?php

namespace Example;

use Attribute;

#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_FUNCTION)]
class MyAttribute
{
}

Declaring MyAttribute on another type will now throw an exception during the call to ReflectionAttribute::newInstance()

By default an attribute can only be used once per declaration. If the attribute should be repeatable on declarations it must be specified as part of the bitmask to the #[Attribute] declaration.

Beispiel #3 Using IS_REPEATABLE to allow attribute on a declaration multiple times

<?php

namespace Example;

use Attribute;

#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_FUNCTION | Attribute::IS_REPEATABLE)]
class MyAttribute
{
}


Referenzen in PHP

Inhaltsverzeichnis

  • Was Referenzen sind
  • Was Referenzen leisten
  • Was Referenzen nicht sind
  • Parameterübergabe per Referenz
  • 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; zum Beispiel ist damit keine Zeigerarithmetik möglich, sie sind keine tatsächlichen Speicheradressen usw. Siehe Was Referenzen nicht sind für weitere Informationen. Statt dessen sind sie 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.


Was Referenzen leisten

Es können grundsätzlich drei Operationen mit Referenzen durchgeführt werden: Referenzzuweisung, Referenzübergabe und Referenzrückgabe. Dieser Abschnitt enthält eine Einführung zu diesen Operationen mit Links zu weiteren Informationen.

Referenzzuweisung

PHP Referenzen erlauben es, zwei Variablennamen, sich auf den gleichen Variableninhalt beziehen zu lassen. Zum Beispiel:

<?php
$a =& $b
?>
Das bedeutet, dass $a und $b auf denselben Inhalt zeigen.

Hinweis:

$a und $b sind hier gleichwertig, und $a ist nicht nur ein Zeiger auf $b oder umgekehrt, sondern $a und $b zeigen auf denselben Platz.

Hinweis:

Wenn man eine undefinierte Variable per Referenz zuweist, übergibt oder zurückgibt, wird sie erstellt.

Beispiel #1 Referenzen mit undefinierten Variablen benutzen

<?php
function foo(&$var) { }

foo($a); // $a wird "erstellt" mit dem Wert null

$b = array();
foo($b['b']);
var_dump(array_key_exists('b', $b)); // bool(true)

$c = new StdClass;
foo($c->d);
var_dump(property_exists($c, 'd')); // bool(true)
?>

Diese Syntax kann auch mit Funktionen, die Referenzen zurückgeben, benutzt werden:

<?php
$foo =& find_var($bar);
?>
Seit PHP 5 gibt new automatisch eine Referenz zurück, so dass die Verwendung von =& in diesem Zusammenhang missbilligt ist, und von PHP 5.3 an einen E_DEPRECATED Fehler erzeugt, und einen E_STRICT Fehler in früheren Versionen. Von PHP 7.0 an ist dies syntaktisch ungültig. (Technisch gesehen ist der Unterschied, dass in PHP 5 Objektvariablen, ganz ähnlich wie Ressourcen, lediglich ein Zeiger auf die eigentlichen Objektdaten sind, so dass diese Objektreferenzen keine "Referenzen" in dem obigen Sinne (Aliase) sind. Weitere Informationen können Objekte und Referenzen entnommen werden.)

Warnung

Wird eine Referenz auf eine Variable, die in einer Funktion als global deklariert wurde, zugewiesen wird, dann ist die Referenz nur innerhalb der Funktion sichtbar. Das kann vermieden werden, indem das $GLOBALS-Array verwendet wird.

Beispiel #2 Referenzieren globaler Variablen innerhalb von Funktionen

<?php
$var1 = "Beispiel-Variable";
$var2 = "";

function global_references($use_globals)
{
    global $var1, $var2;
    if (!$use_globals) {
        $var2 =& $var1; // nur innerhalb der Funktion sichtbar
    } else {
        $GLOBALS["var2"] =& $var1; // ebenso im globalen Kontext sichtbar
    }
}

global_references(false);
echo "Der Wert von var2 ist '$var2'\n"; // Der Wert von var2 ist ''
global_references(true);
echo "Der Wert von var2 ist '$var2'\n"; // Der Wert von var2 ist 'Beispiel-Variable'
?>
global $var; kann als Abkürzung für $var =& $GLOBALS['var']; angesehen werden. Daher ändert die Zuweisung einer anderen Referenz zu $var nur die Referenz der lokalen Variable.

Hinweis:

Wenn man einer Variable einen Wert per Referenz in einer foreach-Anweisung zuweist, werden auch die Referenzen geändert.

Beispiel #3 Referenzen und die foreach-Anweisung

<?php
$ref = 0;
$row =& $ref;
foreach (array(1, 2, 3) as $row) {
    // mach was
}
echo $ref; // 3 - letztes Element des durchlaufenen Arrays
?>

Obgleich keine Referenzzuweisung im engeren Sinne, können Ausdrücke, die mit dem Sprachkonstrukt array() erstellt werden, sich ebenso verhalten, wenn dem hinzuzufügenden Array-Element & vorangestellt wird. Beispiel:

<?php
$a = 1;
$b = array(2, 3);
$arr = array(&$a, &$b[0], &$b[1]);
$arr[0]++; $arr[1]++; $arr[2]++;
/* $a == 2, $b == array(3, 4); */
?>

Es ist allerdings zu beachten, dass Referenzen in Array potentiell gefährlich sind. Eine normale (also nicht Referenz-) Zuweisung mit einer Referenz auf der rechten Seite wandelt die linke Seite nicht in eine Referenz, aber Referenzen innerhalb von Arrays bleiben bei solchen normalen Zuweisungen erhalten. Dies gilt ebenso für Funktionsaufrufe, bei denen das Array als Wertübergabe entgegengenommen wird. Beispiel:

<?php
/* Zuweisung skalarer Variablen */
$a = 1;
$b =& $a;
$c = $b;
$c = 7; //$c ist keine Referenz; keine Änderung an $a oder $b

/* Zuweisung von Array-Variablen */
$arr = array(1);
$a =& $arr[0]; //$a und $arr[0] sind in derselben Referenzmenge
$arr2 = $arr; //keine Referenzzuweisung!
$arr2[0]++;
/* $a == 2, $arr == array(2) */
/* Der Inhalt von $arr hat sich geändert, obwohl es keine Referenz ist! */
?>
Anders ausgedrückt, ist das Referenzverhalten von Array auf einer Element-für-Element-Basis definiert; das Referenzverhalten einzelner Elemente ist getrennt vom Referenzzustand des Array-Behälters.

Referenzübergabe

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:

<?php
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. Weitere Information hierzu sind dem Abschnitt Referenzübergabe zu entnehmen.

Referenzrückgabe

Daneben besteht die Möglichkeit aus Funktionen heraus Werte mit return by-reference zurückzugeben.


Was Referenzen nicht sind

Wie bereits gesagt: Referenzen sind keine Zeiger. Das bedeutet, der folgende Code tut nicht, was man erwarten könnte:

<?php
function foo(&$var)
{
    $var =& $GLOBALS["baz"];
}
foo($bar);
?>

Folgendes passiert: $var in foo wird zunächst an $bar aus der aufrufenden Instanz, dann aber an $GLOBALS["baz"] gebunden. Es gibt keine Möglichkeit unter Verwendung des Referenzmechanismus, um $bar im aufrufenden Geltungsbereich an etwas anderes zu binden, da $bar in der Funktion foo nicht verfügbar ist (es wird durch $var repräsentiert, aber $var nur Variableninhalt, aber keine Name-an-Wert-Bindung in der aufrufenden Symboltabelle hat). Man kann durch die Rückgabe von Referenzen die von der Funktion benutzten Variablen referenzieren.


Parameterübergabe per Referenz

Man kann Variablen an Funktionen per Referenz übergeben, so dass die Funktion ihre Argumente modifizieren kann. Dazu benutzt man folgende Syntax:

<?php
function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);
// $a ist 6
?>

Hinweis: Zu beachten ist, dass kein Referenz-Zeichen beim Funktionsaufruf steht, nur in der Funktionsdefinition. Diese allein ist ausreichend, um das Argument per Referenz zu übergeben. Von PHP 5.3.0 an gibt es eine Warnung, dass die Benutzung von "Call-time pass-by-reference" mit Hilfe von & in foo(&$a); missbilligt ist. Und von PHP 5.4.0 an ist call-time pass-by-reference entfernt, so dass die Verwendung einen fatalen Fehler auslöst.

Folgende Dinge können per Referenz übergeben werden:

  • Variablen, zum Beispiel foo($a)

  • Referenzen, zurückgegeben von einer Funktion, zum Beispiel:

    <?php
    function foo(&$var)
    {
            $var++;
    }
    function &    bar()
    {
            $a = 5;
        return     $a;
    }
    foo(bar());
    ?>
    Es gibt detailliertere Erläuterungen zur Rückgabe by-reference.

Alle anderen Ausdrücke sollten nicht per Referenz übergeben werden, da das Ergebnis undefiniert ist. Folgende Beispiele sind etwa ungültig:

<?php
function foo(&$var)
{
    $var++;
}
function bar() // Beachte das fehlende &
{
    $a = 5;
    return $a;
}
foo(bar()); // Erzeugt einen fatalen Fehler von PHP 5.0.5 an, einen Strikt-Standards-Hinweis
            // von PHP 5.1.1 an, und einen Hinweis von PHP 7.0.0 an

foo($a = 5); // Ausdruck, nicht Variable
foo(5); // Erzeugt einen fatalen Fehler

class Foobar
{
}

foo(new Foobar()) // Erzeugt einen Hinweis von PHP 7.0.7 an
                  // Notice: Only variables should be passed by reference
?>


Referenzen zurückgeben

Das Zurückgeben von Ergebnissen per Referenz aus Funktionen heraus kann manchmal recht nützlich sein, um herauszufinden, an welche Variable eine Referenz gebunden werden soll. Man sollte diese Funktionalität nicht aus Performancegründen benutzen, der Kern ist intelligent genug, um dies selbst zu optimieren. Man sollte Referenzen nur dann zurückgeben, wenn man sinnvolle technische Gründe hat. Hierbei ist folgende Syntax zu verwenden:

<?php
class foo {
    public $value = 42;

    public function &getValue() {
        return $this->value;
    }
}

$obj = new foo;
$myValue = &$obj->getValue(); // $myValue ist eine Referenz auf $obj->value, mit dem Wert 42.
$obj->value = 2;
echo $myValue;                // Zeigt den neuen Wert von $obj->value, also 2.
?>
In diesem Beispiel wird also die Eigenschaft des von getValue gelieferten Objektes gesetzt, nicht die der Kopie, wie es der Fall wäre, wenn die Funktion getValue ihr Ergebnis nicht per Referenz liefern würde.

Hinweis: Im Gegensatz zur Parameterübergabe per Referenz ist bei der Rückgabe mittels Referenz an beiden Stellen die Angabe des & notwendig. Dies zeigt an, dass Sie eine Referenz und nicht wie gewöhnlich eine Kopie zurückgeben. Ebenfalls wird angezeit, dass für $myValue im Gegensatz zur normalen Zuweisung eine Referenzbindung durchgeführt wird.

Hinweis: Wenn man versucht, eine Referenz aus einer Funktion mit der Syntax return ($this->value); zurückzugeben, wird das nicht funktionieren, weil man versucht, das Ergebnis eines Ausdrucks zurückzugeben und nicht eine Variable per Referenz. Man kann nur Variablen per Referenz aus einer Funktion zurückgeben - sonst nichts. Seit PHP 5.1.0 wird ein E_NOTICE-Fehler erzeugt, wenn versucht wird, einen dynamischen Ausdruck oder das Ergebnis eines new-Operators zurückzugeben.

Um die zurückgegebene Referenz zu verwenden, muss Referenzzuweisung benutzt werden:

<?php
function &collector() {
  static $collection = array();
  return $collection;
}
$collection = &collector();
$collection[] = 'foo';
?>
Um die zurückgegebene Referenz an eine andere Funktion zu übergeben, die eine Referenz erwartet, kann diese Syntax verwendet werden:
<?php
function &collector() {
  static $collection = array();
  return $collection;
}
array_push(collector(), 'foo');
?>

Hinweis: Es ist zu beachten, dass array_push(&collector(), 'foo'); nicht möglich ist; es erzeugt einen fatalen Fehler.


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:

<?php
$a = 1;
$b =& $a;
unset($a);
?>
Dies wird $b nicht aufheben, sondern nur $a.

Wiederum sieht man die Analogie zwischen Unix und den Referenzen: Das Aufheben einer Referenz entspricht einem Aufruf von unlink unter Unix.


Referenzen entdecken

Viele Sprachelemente von PHP sind intern mit der Benutzung von Referenzen implementiert, daher gilt alles bisher gesagte auch für diese Konstrukte. Manche Konstrukte, wie das Übergeben und Rückgeben per Referenz, wurden oben erwähnt. Andere Konstrukte, die Referenzen verwenden, sind:

global Referenzen

Wird eine Variable als global $var deklariert, wird eine Referenz auf die globale Variable $var erzeugt. Das ist also dasselbe wie:

<?php
$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 das aufgerufene Objekt.


Vordefinierte Variablen

PHP stellt allen Skripten eine große Anzahl von vordefinierten Variablen zur Verfügung. Die Variablen repräsentieren die gesamte Spannweite von externen Variablen über built-in-Umgebungsvariablen, letzte Fehlermeldungen bis zu empfangenen Headern.

Inhaltsverzeichnis

  • Superglobals — Superglobals sind interne Variablen, die immer in allen Gültigkeitsbereichen verfügbar sind
  • $GLOBALS — Referenziert alle Variablen, die im globalen Gültigkeitsbereich vorhanden sind
  • $_SERVER — Informationen über Server und Ausführungsumgebung
  • $_GET — HTTP GET-Variablen
  • $_POST — HTTP POST-Variablen
  • $_FILES — HTTP Dateiupload-Variablen
  • $_REQUEST — HTTP Request-Variablen
  • $_SESSION — Sessionvariablen
  • $_ENV — Umgebungsvariablen
  • $_COOKIE — HTTP Cookies
  • $php_errormsg — Die vorangegangene Fehlermeldung
  • $http_response_header — HTTP Response-Header
  • $argc — Die Anzahl der an das Skript übergebenen Argumente
  • $argv — Array der an das Skript übergebenen Argumente


Superglobals sind interne Variablen, die immer in allen Gültigkeitsbereichen verfügbar sind

  • « Vordefinierte Variablen
  • $GLOBALS »
  • PHP Manual
  • Vordefinierte Variablen
  • Superglobals sind interne Variablen, die immer in allen Gültigkeitsbereichen verfügbar sind

Superglobals

Superglobals — Superglobals sind interne Variablen, die immer in allen Gültigkeitsbereichen verfügbar sind

Beschreibung

Etliche vordefinierte Variablen in PHP sind sogenannte "Superglobals", das bedeutet, sie sind in allen Gültigkeitsbereichen (sogenannte Scopes) eines Skripts verfügbar. Daher ist es nicht nötig, global $variable; zu verwenden, um innerhalb einer Funktion oder Methode auf sie zuzugreifen.

Diese Superglobals sind:

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV

Anmerkungen

Hinweis: Verfügbarkeit der Variablen

Standardmäßig sind alle Superglobals verfügbar, allerdings haben einige Einstellung in PHP Einfluss auf ihre Verfügbarkeit. Für weitere Informationen lesen Sie bitte die Dokumentation zu variables_order.

Hinweis: Variable Variablen

Superglobals können nicht als variable Variablen innerhalb von Funktionen oder Klassenmethoden verwendet werden.

Siehe auch

  • Gültigkeit von Variablen
  • The variables_order-Direktive
  • Die Filter-Erweiterung


Referenziert alle Variablen, die im globalen Gültigkeitsbereich vorhanden sind

  • « Superglobals
  • $_SERVER »
  • PHP Manual
  • Vordefinierte Variablen
  • Referenziert alle Variablen, die im globalen Gültigkeitsbereich vorhanden sind

$GLOBALS

(PHP 4, PHP 5, PHP 7, PHP 8)

$GLOBALS — Referenziert alle Variablen, die im globalen Gültigkeitsbereich vorhanden sind

Beschreibung

Ein assoziatives Array, das Referenzen auf alle Variablen enthält, die derzeit im globalen Gültigkeitsbereich (Scope) des Skripts bekannt sind. Die Namen der jeweiligen Variablen sind die Schlüsselwerte, um auf den Inhalt der jeweils referenzierten Variablen zuzugreifen.

Beispiele

Beispiel #1 $GLOBALS-Beispiel

<?php
function test() {
    $foo = "local variable";

    echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n";
    echo '$foo in current scope: ' . $foo . "\n";
}

$foo = "Example content";
test();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

$foo in global scope: Example content
$foo in current scope: local variable

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Hinweis: Verfügbarkeit der Variablen

Im Gegensatz zu allen anderen Superglobals ist $GLOBALS notwendigerweise immer in PHP verfügbar.


Informationen über Server und Ausführungsumgebung

  • « $GLOBALS
  • $_GET »
  • PHP Manual
  • Vordefinierte Variablen
  • Informationen über Server und Ausführungsumgebung

$_SERVER

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_SERVER — Informationen über Server und Ausführungsumgebung

Beschreibung

$_SERVER ist ein Array, das Informationen wie Header, Pfade und die verschiedenen Wege, das Skript anzusprechen beinhaltet. Die Einträge in diesem Array werden vom Webserver erstellt. Es gibt keine Garantie dafür, dass jeder Webserver alle möglichen Einträge unterstützt - Server können einige weglassen oder andere Einträge unterstützen, die hier nicht aufgeführt sind. Das bedeutet, die meisten der Variablen werden in der » CGI 1.1-Spezifikation ausgewiesen, daher sollten Sie diese als von Ihrem Webserver unterstützt erwarten können.

Indizes

Es kann sein, dass Sie die folgenden Elemente in $_SERVER vorfinden. Beachten Sie, dass einige davon, sofern vorhanden, nur verfügbar sind oder einen sinnvollen Wert haben, wenn PHP auf der Kommandozeile läuft.

'PHP_SELF'
Der Dateiname des aktuell ausgeführten Skripts, relativ zum Document Root. Beispielsweise enthält $_SERVER['PHP_SELF'] in einem Skript, das über die Adresse http://example.com/foo/bar.php aufgerufen wird, den Wert /foo/bar.php. Die Konstante __FILE__ enthält den vollständigen Pfad und Dateinamen der aktuellen (z.B. via include eingebundenen) Datei. Falls PHP als Kommandozeilenprogramm läuft, enthält diese Variable den Namen des Skripts.
'argv'
Das Array der an das Skript übergebenen Argumente. Wenn das Skript auf der Kommandozeile ausgeführt wird, erhalten Sie auf diesem Weg einen an die Sprache C angelehnten Zugriff auf die Kommandozeilenparameter. Wird das Skript via GET aufgerufen, enthält die Variable den Querystring.
'argc'
Enthält die Anzahl der per Kommandozeile an das Skript übergebenen Parameter (sofern das Skript auf der Kommandozeile ausgeführt wird).
'GATEWAY_INTERFACE'
Enthält die Version der vom Server verwendete CGI-Spezifikation, z.B. 'CGI/1.1'.
'SERVER_ADDR'
Die IP-Adresse des Servers, auf dem das aktuelle Skript ausgeführt wird.
'SERVER_NAME'
Der Hostname des Servers, auf dem das aktuelle Skript ausgeführt wird. Wenn das Skript auf einem Virtuellen Host läuft, wird dieser Wert vom Virtuellen Host bestimmt.

Hinweis: Unter Apache 2 muss UseCanonicalName = On und ServerName gesetzt werden. Ansonsten reflektiert dieser Wert den Hostnamen, der vom Client gesendet wurde und vorgetäuscht werden kann. Es ist nicht sicher, sich in einem sicherheitsabhängigen Umfeld auf diesen Wert zu verlassen.

'SERVER_SOFTWARE'
Die Identifikation der verwendeten Server-Software, die bei einer Antwort auf den eingegangenen Request verwendet wird.
'SERVER_PROTOCOL'
Der Name und die Versionsnummer des verwendeten Übertragungsprotokolls, mittels dessen die aktuelle Seite aufgerufen wurde, z.B. 'HTTP/1.0'.
'REQUEST_METHOD'
Die Requestmethode, die verwendet wurde, um die Seite aufzurufen; z.B. 'GET', 'HEAD', 'POST', 'PUT'.

Hinweis:

Ist die Requestmethode HEAD, wird ein PHP-Skript beendet, nachdem die Header gesendet wurden (sofern Ausgaben ohne die Verwendung des Ausgabepuffers (output buffering) erzeugt werden).

'REQUEST_TIME'
Der Timestamp des Zeitpunkts, an dem der Request eintraf.
'REQUEST_TIME_FLOAT'
Der Timestamp des Zeitpunkts, an dem der Request eintraf, in Mikrosekunden-Genauigkeit.
'QUERY_STRING'
Sofern vorhanden, der Querystring, mittels dessen auf die Seite zugegriffen wurde.
'DOCUMENT_ROOT'
Das Document Root-Verzeichnis, unter dem das aktuelle Skript ausgeführt wird, so wie es in der Konfiguration des Servers festgelegt wurde.
'HTTP_ACCEPT'
Enthält den Inhalt des Accept:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde.
'HTTP_ACCEPT_CHARSET'
Enthält den Inhalt des Accept-Charset:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde. Beispiel: 'iso-8859-1,*,utf-8'.
'HTTP_ACCEPT_ENCODING'
Enthält den Inhalt des Accept-Encoding:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde. Beispiel: 'gzip'.
'HTTP_ACCEPT_LANGUAGE'
Enthält den Inhalt des Accept-Language:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde. Beispiel: 'en'.
'HTTP_CONNECTION'
Enthält den Inhalt des Connection:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde. Beispiel: 'Keep-Alive'.
'HTTP_HOST'
Enthält den Inhalt des Host:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde.
'HTTP_REFERER'
Sofern vorhanden, die Adresse der Seite, auf der der Benutzer einen Link auf die aktuell aufgerufene Seite angeklickt hat. Dieser Wert wird vom Browser des Benutzers gesetzt. Nicht alle Programme unterstützen diesen Wert, manche offerieren als Feature sogar die Möglichkeit, den Wert von HTTP_REFERER selbst zu bestimmen. Kurz, Sie können diesem Wert nicht wirklich vertrauen.
'HTTP_USER_AGENT'
Enthält den Inhalt des User-Agent:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde. Dies ist eine Zeichenkette, die das für den Zugriff auf die Seite verwendete Programm anzeigt. Ein typisches Beispiel ist Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Sie können diesen Wert unter anderem mittels der Funktion get_browser() dafür nutzen, den Inhalt Ihrer Seite auf die Möglichkeiten des jeweiligen Browsers zuzuschneiden.
'HTTPS'
Wird auf einen nicht-leeren Wert gesetzt, wenn das Skript via HTTPS aufgerufen wurde.
'REMOTE_ADDR'
Die IP-Adresse, von der aus der Benutzer die aktuelle Seite ansieht.
'REMOTE_HOST'
Der Name des Hosts, von dem aus der Benutzer die aktuelle Seite ansieht. Der Auflösung der IP-Adresse (Reverse DNS Lookup) basiert auf der REMOTE_ADDR des Benutzers.

Hinweis: Ihr Webserver muss darauf konfiguriert sein, diese Variable zu erzeugen. Im Apache benötigen Sie dazu zum Beispiel die Direktive HostnameLookups On innerhalb der httpd.conf. Lesen Sie dazu auch die Beschreibung der Funktion gethostbyaddr().

'REMOTE_PORT'
Der vom Rechner des Benutzers verwendete Port, um mit dem Webserver zu kommunizieren.
'REMOTE_USER'
Der beglaubigte Benutzer.
'REDIRECT_REMOTE_USER'
Der beglaubigte Benutzer, falls der Request intern weitergeleitet wurde.
'SCRIPT_FILENAME'

Der absolute Pfad des aktuell ausgeführten Skripts.

Hinweis:

Wenn ein Skript als CLI mit einem relativen Pfad wie file.php oder ../file.php ausgeführt wird, enthält $_SERVER['SCRIPT_FILENAME'] den vom Benutzer angegebenen relativen Pfad.

'SERVER_ADMIN'
Der Wert, der für die SERVER_ADMIN-Direktive (für Apache) im Konfigurationsfile des Webservers eingestellt wurde. Wenn das Skript auf einem Virtuellen Host läuft, wird der für diesen Virtuellen Host definierte Wert verwendet.
'SERVER_PORT'
Der Port, der auf dem Server vom Webserver für die Kommunikation genutzt wird. In einer Standardumgebung ist dies '80'; wenn Sie beispielsweise SSL verwenden, wird dieser Wert auf den Port geändert, über den Sie Ihre verschlüsselte HTTP-Kommunikation abwickeln.

Hinweis: Unter Apache 2 müssen Sie UseCanonicalName = On sowie UseCanonicalPhysicalPort = On setzen, um den physikalischen (wirklichen) Port zu erhalten; andernfalls kann dieser Wert gefälscht werden, und gibt dann den Wert des physikalischen Ports zurück, oder nicht. Es ist nicht sicher, sich in einem sicherheitsabhängigen Umfeld auf diesen Wert zu verlassen.

'SERVER_SIGNATURE'
Ein String, der die Version der verwendeten Serversoftware und den Namen des Virtuellen Hosts enthält, der, sofern die Option auf dem Server aktiviert ist, an die servergenerierten Seiten angefügt wird.
'PATH_TRANSLATED'
Auf dem Dateisystem (nicht dem Document Root!) basierender Pfad zum aktuellen Skript, nachdem der Server ein Virtual-to-Real-Mapping durchgeführt hat.

Hinweis: Apache 2-Benutzer können die Direktive AcceptPathInfo = On in der httpd.conf verwenden, um einen Wert für PATH_INFO zu definieren.

'SCRIPT_NAME'
Enthält den Pfad zum aktuellen Skript. Dies ist nützlich für Seiten, die auf sich selbst verweisen sollen. Die Konstante __FILE__ enthält den vollständigen Pfad und Dateinamen der aktuellen (z.B. via include eingebundenen) Datei.
'REQUEST_URI'
Der URI, der angegeben wurde, um auf die aktuelle Seite zuzugreifen, beispielsweise '/index.html'.
'PHP_AUTH_DIGEST'
Wenn die Digest HTTP Authentication verwendet wird, wird diese Variable mit dem Inhalt des vom Client gesendeten 'Authorization'-Headers gefüllt, welchen Sie für eine adäquate Validierung nutzen sollten.
'PHP_AUTH_USER'
Wenn die HTTP Authentication verwendet wird, wird diese Variable mit dem vom Benutzer angegebenen Usernamen gefüllt.
'PHP_AUTH_PW'
Wenn die HTTP Authentication verwendet wird, wird diese Variable mit dem vom Benutzer angegebenen Passwort gefüllt.
'AUTH_TYPE'
Wenn die HTTP Authentication verwendet wird, wird diese Variable mit dem verwendeten HTTP-Authentifizierungsmechanismus gefüllt.
'PATH_INFO'
Enthält, sofern vorhanden, den Teil des Pfadnamens hinter dem Namen des PHP-Skripts, aber vor dem Query-String. Wenn zum Beispiel das aktuelle Skript mittels dem URL http://www.example.com/php/path_info.php/some/stuff?foo=bar aufgerufen wird, würde $_SERVER['PATH_INFO'] /some/stuff enthalten.
'ORIG_PATH_INFO'
Originalversion von 'PATH_INFO' vor der Verarbeitung durch PHP.

Beispiele

Beispiel #1 $_SERVER-Beispiel

<?php
echo $_SERVER['SERVER_NAME'];
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

www.example.com

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Siehe auch

  • Die Filter-Erweiterung


HTTP GET-Variablen

  • « $_SERVER
  • $_POST »
  • PHP Manual
  • Vordefinierte Variablen
  • HTTP GET-Variablen

$_GET

$HTTP_GET_VARS [veraltet, nicht empfohlen]

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_GET -- $HTTP_GET_VARS [veraltet, nicht empfohlen] — HTTP GET-Variablen

Beschreibung

Ein assoziatives Array von Variablen, die dem aktuellen Skript mittels der URL-Parameter (dem Query-String) übergeben werden. Es ist zu beachten, dass das Array nicht nur für GET-Anfragen gefüllt wird, sondern für alle Anfragen mit einem Query-String.

$HTTP_GET_VARS enthält anfangs dieselben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_GET_VARS und $_GET unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)

Beispiele

Beispiel #1 $_GET-Beispiel

<?php
echo 'Hallo ' . htmlspecialchars($_GET["name"]) . '!';
?>

Angenommen, der Benutzer gab ein http://example.com/?name=Hannes

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hallo Hannes!

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Hinweis:

Die GET-Variablen werden automatisch mit urldecode() behandelt.

Siehe auch

  • Behandlung externer Variablen
  • Die Filter-Erweiterung


HTTP POST-Variablen

  • « $_GET
  • $_FILES »
  • PHP Manual
  • Vordefinierte Variablen
  • HTTP POST-Variablen

$_POST

$HTTP_POST_VARS [veraltet, nicht empfohlen]

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_POST -- $HTTP_POST_VARS [veraltet, nicht empfohlen] — HTTP POST-Variablen

Beschreibung

Ein assoziatives Array von Variablen, die dem aktuellen Skript mittels der HTTP POST-Methode übergeben werden, wenn application/x-www-form-urlencoded oder multipart/form-data als HTTP Content-Type für die Anfrage verwendet wurde.

$HTTP_POST_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_POST_VARS und $_POST unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)

Beispiele

Beispiel #1 $_POST-Beispiel

<?php
echo 'Hello ' . htmlspecialchars($_POST["name"]) . '!';
?>

Angenommen, der User POSTete name=Hannes

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hello Hannes!

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Siehe auch

  • Behandlung externer Variablen
  • Die Filter-Erweiterung


HTTP Dateiupload-Variablen

  • « $_POST
  • $_REQUEST »
  • PHP Manual
  • Vordefinierte Variablen
  • HTTP Dateiupload-Variablen

$_FILES

$HTTP_POST_FILES [veraltet, nicht empfohlen]

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_FILES -- $HTTP_POST_FILES [veraltet, nicht empfohlen] — HTTP Dateiupload-Variablen

Beschreibung

Ein assoziatives Array von Elementen, die vom aktuellen Skript via HTTP POST-Methode hochgeladen werden. Die Struktur dieses Arrays wird im Abschnitt Dateiuploads mit POST beschrieben.

$HTTP_FILES_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_FILES_VARS und $_FILES unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Siehe auch

  • move_uploaded_file() - Verschiebt eine hochgeladene Datei an einen neuen Ort
  • Behandlung von Dateiuploads


HTTP Request-Variablen

  • « $_FILES
  • $_SESSION »
  • PHP Manual
  • Vordefinierte Variablen
  • HTTP Request-Variablen

$_REQUEST

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_REQUEST — HTTP Request-Variablen

Beschreibung

Ein assoziatives Array, das standardmäßig den Inhalt von $_GET, $_POST und $_COOKIE enthält.

Changelog

Version | Beschreibung
5.3.0 | request_order eingeführt. Die Direktive wirkt sich auf den Inhalt von $_REQUEST aus.

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Hinweis:

Wenn das Skript auf der Kommandozeile ausgeführt wird, enthält die Variable nicht den Inhalt von argv und argc; diese finden sich im Array $_SERVER.

Hinweis:

Die Variablen in $_REQUEST werden dem Skript mittels der GET-, POST- und COOKIE-Inputmechanismen zur Verfügung gestellt. Daher kann der Inhalt durch einen entfernten Benutzer modifiziert worden sein und ist daher als nicht vertrauenswürdig zu betrachten. Das Vorhandensein und die Reihenfolge des Variableninhalts in diesem Array wird entsprechend der PHP-Konfigurationsdirektive variables_order bestimmt.

Siehe auch

  • import_request_variables()
  • Behandlung externer Variablen
  • Die Filter-Erweiterung


Sessionvariablen

  • « $_REQUEST
  • $_ENV »
  • PHP Manual
  • Vordefinierte Variablen
  • Sessionvariablen

$_SESSION

$HTTP_SESSION_VARS [veraltet, nicht empfohlen]

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_SESSION -- $HTTP_SESSION_VARS [veraltet, nicht empfohlen] — Sessionvariablen

Beschreibung

Ein assoziatives Array, das die Sessionvariablen enthält und dem aktuellen Skript zur Verfügung stellt. Lesen Sie den Abschnitt Sessionfunktionen der Dokumentation, um weitere Informationen zur Verwendung zu erhalten.

$HTTP_SESSION_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_SESSION_VARS und $_SESSION unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Siehe auch

  • session_start() - Erzeugt eine neue Session oder setzt eine vorhandene fort


Umgebungsvariablen

  • « $_SESSION
  • $_COOKIE »
  • PHP Manual
  • Vordefinierte Variablen
  • Umgebungsvariablen

$_ENV

$HTTP_ENV_VARS [veraltet, nicht empfohlen]

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_ENV -- $HTTP_ENV_VARS [veraltet, nicht empfohlen] — Umgebungsvariablen

Beschreibung

Ein assoziatives Array von Variablen, die dem aktuellen Skript mittels der Environment-Methode übergeben werden.

Die Variablen werden aus der Laufzeitumgebung, unter der der PHP-Parser läuft, in PHPs globalen Namespace importiert. Die meisten Werte werden von der Shell, unter der PHP läuft, unterstützt, da es aber die unterschiedlichsten Systeme mit unterschiedlichsten Shells gibt, ist es unmöglich, eine definitive Liste aller verfügbaren Werte zu erstellen. Bitte konsultieren Sie die Dokumentation Ihrer Shell, um eine Liste aller definierten Umgebungsvariablen zu erhalten.

Andere Umgebungsvariablen enthalten die CGI-Variablen, die unabhängig davon eingefügt werden, ob PHP als Servermodul oder CGI-Prozess läuft.

$HTTP_ENV_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_ENV_VARS und $_ENV unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)

Beispiele

Beispiel #1 $_ENV-Beispiel

<?php
echo 'My username is ' .$_ENV["USER"] . '!';
?>

Angenommen "bjori" führt das Skript aus

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

My username is bjori!

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Siehe auch

  • getenv() - Liefert den Wert einer Umgebungsvariable
  • Die Filter-Erweiterung


HTTP Cookies

  • « $_ENV
  • $php_errormsg »
  • PHP Manual
  • Vordefinierte Variablen
  • HTTP Cookies

$_COOKIE

$HTTP_COOKIE_VARS [veraltet, nicht empfohlen]

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_COOKIE -- $HTTP_COOKIE_VARS [veraltet, nicht empfohlen] — HTTP Cookies

Beschreibung

Ein assoziatives Array von Variablen, die dem aktuellen Skript mittels HTTP-Cookies übergeben werden.

$HTTP_COOKIE_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_COOKIE_VARS und $_COOKIE unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)

Beispiele

Beispiel #1 $_COOKIE-Beispiel

<?php
echo 'Hello ' . htmlspecialchars($_COOKIE["name"]) . '!';
?>

Angenommen der Cookie "name" wurde bereits früher gesetzt:

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hello Hannes!

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Siehe auch

  • setcookie() - Sendet ein Cookie
  • Behandlung externer Variablen
  • Die Filter-Erweiterung


Die vorangegangene Fehlermeldung

  • « $_COOKIE
  • $http_response_header »
  • PHP Manual
  • Vordefinierte Variablen
  • Die vorangegangene Fehlermeldung

$php_errormsg

(PHP 4, PHP 5, PHP 7)

$php_errormsg — Die vorangegangene Fehlermeldung

Warnung

Dieses Feature ist seit PHP 7.2.0 als DEPRECATED (veraltet) markiert. Sich auf dieses Feature zu verlassen ist in keiner Weise empfehlenswert.

Statt dessen sollte error_get_last() verwendet werden.

Beschreibung

$php_errormsg ist eine Variable, die den Text der letzten von PHP generierten Fehlermeldung enthält. Die Variable ist nur innerhalb des Gültigkeitsbereichs (Scopes) verfügbar, in dem der Fehler auftrat, und auch nur, wenn die Konfigurationsoption track_errors eingeschaltet wurde (standardmäßig aus).

Warnung

Wird ein benutzerdefinierter Errorhandler (set_error_handler()) verwendet, wird $php_errormsg nur dann gesetzt, wenn der Errorhandler false zurückgibt.

Beispiele

Beispiel #1 $php_errormsg-Beispiel

<?php
@strpos();
echo $php_errormsg;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Wrong parameter count for strpos()

Siehe auch

  • error_get_last() - Liefert den zuletzt aufgetretenen Fehler


HTTP Response-Header

  • « $php_errormsg
  • $argc »
  • PHP Manual
  • Vordefinierte Variablen
  • HTTP Response-Header

$http_response_header

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

$http_response_header — HTTP Response-Header

Beschreibung

Das $http_response_header-Array ist vergleichbar mit der Funktion get_headers(). Bei der Verwendung eines HTTP-Wrappers enthält $http_response_header die HTTP Response-Header. $http_response_header wird im lokalen Variablengeltungsbereich erstellt.

Beispiele

Beispiel #1 $http_response_header-Beispiel

<?php
function get_contents() {
  file_get_contents("http://example.com");
  var_dump($http_response_header);
}
get_contents();
var_dump($http_response_header);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(9) {
  [0]=>
  string(15) "HTTP/1.1 200 OK"
  [1]=>
  string(35) "Date: Sat, 12 Apr 2008 17:30:38 GMT"
  [2]=>
  string(29) "Server: Apache/2.2.3 (CentOS)"
  [3]=>
  string(44) "Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT"
  [4]=>
  string(27) "ETag: "280100-1b6-80bfd280""
  [5]=>
  string(20) "Accept-Ranges: bytes"
  [6]=>
  string(19) "Content-Length: 438"
  [7]=>
  string(17) "Connection: close"
  [8]=>
  string(38) "Content-Type: text/html; CHARSET=Windows-1252"
}
NULL


Die Anzahl der an das Skript übergebenen Argumente

  • « $http_response_header
  • $argv »
  • PHP Manual
  • Vordefinierte Variablen
  • Die Anzahl der an das Skript übergebenen Argumente

$argc

(PHP 4, PHP 5, PHP 7, PHP 8)

$argc — Die Anzahl der an das Skript übergebenen Argumente

Beschreibung

Enthält die Anzahl der an das aktuelle Skript übergebenen Argumente, wenn das Skript auf der Kommandozeile läuft.

Hinweis: Der Dateiname des Skripts ist immer das erste an das Skript übergebene Argument, damit ist der kleinstmögliche Wert von $argc 1.

Hinweis: Diese Variable ist nicht verfügbar, wenn register_argc_argv ausgeschaltet ist.

Beispiele

Beispiel #1 $argc-Beispiel

<?php
var_dump($argc);
?>

Wenn das Beispiel so aufgerufen wird: php script.php arg1 arg2 arg3

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(4)

Anmerkungen

Hinweis:

Dies ist ebenfalls als $_SERVER['argc'] verfügbar.

Siehe auch

  • getopt() - Gets options from the command line argument list


Array der an das Skript übergebenen Argumente

  • « $argc
  • Vordefinierte Exceptions »
  • PHP Manual
  • Vordefinierte Variablen
  • Array der an das Skript übergebenen Argumente

$argv

(PHP 4, PHP 5, PHP 7, PHP 8)

$argv — Array der an das Skript übergebenen Argumente

Beschreibung

Enthält ein Array aller an das Skript übergebenen Argumente, wenn dies auf der Kommandozeile ausgeführt wird.

Hinweis: Das erste Argument $argv[0] ist immer der Name der zum Aufrufen des Skripts genutzt wurde.

Hinweis: Diese Variable ist nicht verfügbar, wenn register_argc_argv ausgeschaltet ist.

Beispiele

Beispiel #1 $argv-Beispiel

<?php
var_dump($argv);
?>

Wenn das Beispiel so aufgerufen wird: php script.php arg1 arg2 arg3

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(4) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(4) "arg1"
  [2]=>
  string(4) "arg2"
  [3]=>
  string(4) "arg3"
}

Anmerkungen

Hinweis:

Dies ist ebenfalls als $_SERVER['argv'] verfügbar.

Siehe auch

  • getopt() - Gets options from the command line argument list


Vordefinierte Exceptions

Inhaltsverzeichnis

  • Exception
  • ErrorException
  • Error
  • ArgumentCountError
  • ArithmeticError
  • AssertionError
  • DivisionByZeroError
  • CompileError
  • ParseError
  • TypeError

Siehe auch das Kapitel SPL-Exceptions.


Exception

(PHP 5, PHP 7, PHP 8)

Einführung

Exception ist die Basisklasse für alle Exceptions in PHP 5, und die Basisklasse für alle Benutzer-Exceptions in PHP 7.

Vor PHP 7 implementierte Exception das Throwable-Interface nicht.

Klassenbeschreibung

Exception implements Throwable {
/* Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
public __construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public getMessage ( ) : string
final public getPrevious ( ) : Throwable
final public getCode ( ) : mixed
final public getFile ( ) : string
final public getLine ( ) : int
final public getTrace ( ) : array
final public getTraceAsString ( ) : string
public __toString ( ) : string
final private __clone ( ) : void
}

Eigenschaften

message

Die Exceptionmeldung.

code

Die Fehlernummer der Exception.

file

Der Name der Datei, in der die Exception erzeugt wurde.

line

Die Zeilennummer, in der die Exception erzeugt wurde.

Inhaltsverzeichnis

  • Exception::__construct — Erstellt die Exception
  • Exception::getMessage — Gibt die Exceptionbeschreibung zurück
  • Exception::getPrevious — Gibt die vorhergehende Exception zurück
  • Exception::getCode — Gibt die Fehlernummer der Exception zurück
  • Exception::getFile — Gibt den Namen der Datei zurück, in der die Exception erzeugt wurde
  • Exception::getLine — Gibt die Zeile zurück, in der die Exception erzeugt wurde
  • Exception::getTrace — Gibt den Stacktrace zurück
  • Exception::getTraceAsString — Gibt den Stacktrace als String zurück
  • Exception::__toString — Stringrepräsentation der Exception
  • Exception::__clone — Klont die Exception


Erstellt die Exception

  • « Exception
  • Exception::getMessage »
  • PHP Manual
  • Exception
  • Erstellt die Exception

Exception::__construct

(PHP 5, PHP 7, PHP 8)

Exception::__construct — Erstellt die Exception

Beschreibung

public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )

Erstellt die Exception.

Parameter-Liste

message

Die auszugebende Beschreibung der Exception.

code

Die Fehlernummer der Exception.

previous

Die vorangegangene Exception, die für Exception-Verkettung verwendet werden soll.

Hinweis: Der Aufruf des Konstruktors der Klasse Exception aus einer Unterklasse ignoriert die Standardargumente, wenn die Eigenschaften $code und $message bereits gesetzt wurden.

Anmerkungen

Hinweis:

Die message is NICHT binary-safe.


Gibt die Exceptionbeschreibung zurück

  • « Exception::__construct
  • Exception::getPrevious »
  • PHP Manual
  • Exception
  • Gibt die Exceptionbeschreibung zurück

Exception::getMessage

(PHP 5, PHP 7, PHP 8)

Exception::getMessage — Gibt die Exceptionbeschreibung zurück

Beschreibung

final public Exception::getMessage ( ) : string

Gibt die Exceptionbeschreibung zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt die Exceptionbeschreibung als String zurück.

Beispiele

Beispiel #1 Exception::getMessage()-Beispiel

<?php
try {
    throw new Exception("Some error message");
} catch(Exception $e) {
    echo $e->getMessage();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Some error message

Siehe auch

  • Throwable::getMessage() - Gibt die Nachricht zurück


Gibt die vorhergehende Exception zurück

  • « Exception::getMessage
  • Exception::getCode »
  • PHP Manual
  • Exception
  • Gibt die vorhergehende Exception zurück

Exception::getPrevious

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Exception::getPrevious — Gibt die vorhergehende Exception zurück

Beschreibung

final public Exception::getPrevious ( ) : Throwable

Gibt die vorhergehende Exception (dritter Parameter von Exception::__construct()) zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt die vorhergehende Throwable zurück falls vorhanden, anderenfalls null.

Beispiele

Beispiel #1 Exception::getPrevious() Beispiel

Ausgabeschleife über einen Exception-Verlauf

<?php
class MyCustomException extends Exception {}

function doStuff() {
    try {
        throw new InvalidArgumentException("Sie machen es nicht richtig!", 112);
    } catch(Exception $e) {
        throw new MyCustomException("Irgendetwas geschah", 911, $e);
    }
}

try {
    doStuff();
} catch(Exception $e) {
    do {
        printf("%s:%d %s (%d) [%s]\n", $e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e));
    } while($e = $e->getPrevious());
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/home/bjori/ex.php:8 Irgendetwas geschah (911) [MyCustomException]
/home/bjori/ex.php:6 Sie machen es nicht richtig! (112) [InvalidArgumentException]

Siehe auch

  • Throwable::getPrevious() - Gibt das vorherige Throwable zurück


Gibt die Fehlernummer der Exception zurück

  • « Exception::getPrevious
  • Exception::getFile »
  • PHP Manual
  • Exception
  • Gibt die Fehlernummer der Exception zurück

Exception::getCode

(PHP 5, PHP 7, PHP 8)

Exception::getCode — Gibt die Fehlernummer der Exception zurück

Beschreibung

final public Exception::getCode ( ) : mixed

Gibt die Fehlernummer der Exception zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Exception selbst gibt den Fehlercode als int zurück. Von Exception erbende Unterklassen können jedoch auch einen anderen Typ zurückgeben. So gibt PDOException beispielsweise ein string zurück.

Beispiele

Beispiel #1 Exception::getCode()-Beispiel

<?php
try {
    throw new Exception("Some error message", 30);
} catch(Exception $e) {
    echo "The exception code is: " . $e->getCode();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

The exception code is: 30

Siehe auch

  • Throwable::getCode() - Gibt den Exception-Code zurück


Gibt den Namen der Datei zurück, in der die Exception erzeugt wurde

  • « Exception::getCode
  • Exception::getLine »
  • PHP Manual
  • Exception
  • Gibt den Namen der Datei zurück, in der die Exception erzeugt wurde

Exception::getFile

(PHP 5, PHP 7, PHP 8)

Exception::getFile — Gibt den Namen der Datei zurück, in der die Exception erzeugt wurde

Beschreibung

final public Exception::getFile ( ) : string

Gibt den Namen der Datei zurück, in der die Exception ausgelöst wurde.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Namen der Datei zurück, in der die Exception ausgelöst wurde.

Beispiele

Beispiel #1 Exception::getFile()-Beispiel

<?php
try {
    throw new Exception;
} catch(Exception $e) {
    echo $e->getFile();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/home/bjori/tmp/ex.php

Siehe auch

  • Throwable::getFile() - Gibt die Datei zurück, in der das Objekt erzeugt wurde


Gibt die Zeile zurück, in der die Exception erzeugt wurde

  • « Exception::getFile
  • Exception::getTrace »
  • PHP Manual
  • Exception
  • Gibt die Zeile zurück, in der die Exception erzeugt wurde

Exception::getLine

(PHP 5, PHP 7, PHP 8)

Exception::getLine — Gibt die Zeile zurück, in der die Exception erzeugt wurde

Beschreibung

final public Exception::getLine ( ) : int

Gibt die Zeile zurück, in der die Exception ausgelöst wurde.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt die Zeile zurück, in der die Exception ausgelöst wurde.

Beispiele

Beispiel #1 Exception::getLine()-Beispiel

<?php
try {
    throw new Exception("Some error message");
} catch(Exception $e) {
    echo "The exception was created on line: " . $e->getLine();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

The exception was created on line: 3

Siehe auch

  • Throwable::getLine() - Gibt die Zeile zurück, in der das Objekt instantiiert wurde


Gibt den Stacktrace zurück

  • « Exception::getLine
  • Exception::getTraceAsString »
  • PHP Manual
  • Exception
  • Gibt den Stacktrace zurück

Exception::getTrace

(PHP 5, PHP 7, PHP 8)

Exception::getTrace — Gibt den Stacktrace zurück

Beschreibung

final public Exception::getTrace ( ) : array

Gibt den Stacktrace der Exception zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Stacktrace der Exception als Array zurück.

Beispiele

Beispiel #1 Exception::getTrace()-Beispiel

<?php
function test() {
 throw new Exception;
}

try {
 test();
} catch(Exception $e) {
 var_dump($e->getTrace());
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  array(4) {
    ["file"]=>
    string(22) "/home/bjori/tmp/ex.php"
    ["line"]=>
    int(7)
    ["function"]=>
    string(4) "test"
    ["args"]=>
    array(0) {
    }
  }
}

Siehe auch

  • Throwable::getTrace() - Gibt den Stacktrace zurück


Gibt den Stacktrace als String zurück

  • « Exception::getTrace
  • Exception::__toString »
  • PHP Manual
  • Exception
  • Gibt den Stacktrace als String zurück

Exception::getTraceAsString

(PHP 5, PHP 7, PHP 8)

Exception::getTraceAsString — Gibt den Stacktrace als String zurück

Beschreibung

final public Exception::getTraceAsString ( ) : string

Gibt den Stacktrace als String zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Stacktrace als String zurück.

Beispiele

Beispiel #1 Exception::getTraceAsString()-Beispiel

<?php
function test() {
    throw new Exception;
}

try {
    test();
} catch(Exception $e) {
    echo $e->getTraceAsString();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

#0 /home/bjori/tmp/ex.php(7): test()
#1 {main}

Siehe auch

  • Throwable::getTraceAsString() - Gibt den Stacktrace als String zurück


Stringrepräsentation der Exception

  • « Exception::getTraceAsString
  • Exception::__clone »
  • PHP Manual
  • Exception
  • Stringrepräsentation der Exception

Exception::__toString

(PHP 5, PHP 7, PHP 8)

Exception::__toString — Stringrepräsentation der Exception

Beschreibung

public Exception::__toString ( ) : string

Gibt die Stringrepräsentation der Exception zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt die Stringrepräsentation der Exception zurück.

Beispiele

Beispiel #1 Exception::__toString()-Beispiel

<?php
try {
    throw new Exception("Some error message");
} catch(Exception $e) {
    echo $e;
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

exception 'Exception' with message 'Some error message' in /home/bjori/tmp/ex.php:3
Stack trace:
#0 {main}

Siehe auch

  • Throwable::__toString() - Gibt eine Repräsentation des geworfenen Objekts als String zurück


Klont die Exception

  • « Exception::__toString
  • ErrorException »
  • PHP Manual
  • Exception
  • Klont die Exception

Exception::__clone

(PHP 5, PHP 7, PHP 8)

Exception::__clone — Klont die Exception

Beschreibung

final private Exception::__clone ( ) : void

Versucht, die Exception zu klonen. Dies erzeugt einen Fatal Error.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Exceptions sind nicht klonbar.


ErrorException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Einführung

Eine Error Exception.

Klassenbeschreibung

ErrorException extends Exception {
/* Eigenschaften */
protected int $severity ;
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
public __construct ( string $message = "" , int $code = 0 , int $severity = E_ERROR , string $filename = __FILE__ , int $lineno = __LINE__ , Exception $previous = null )
final public getSeverity ( ) : int
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

severity

Die Schwere einer Exception

Beispiele

Beispiel #1 Verwenden von set_error_handler() zum Verändern von Fehlermeldungen innerhalb ErrorException.

<?php
function exception_error_handler($severity, $message, $file, $line) {
    if (!(error_reporting() & $severity)) {
        // Dieser Fehlercode ist nicht in error_reporting enthalten
        return;
    }
    throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler("exception_error_handler");

/* Exception ausloesen */
strpos();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Fatal error: Uncaught exception 'ErrorException' with message 'strpos() expects at least 2 parameters, 0 given' in /home/bjori/tmp/ex.php:12
Stack trace:
#0 [internal function]: exception_error_handler(2, 'strpos() expect...', '/home/bjori/php...', 12, Array)
#1 /home/bjori/php/cleandocs/test.php(12): strpos()
#2 {main}
  thrown in /home/bjori/tmp/ex.php on line 12

Inhaltsverzeichnis

  • ErrorException::__construct — Erstellt die Exception
  • ErrorException::getSeverity — Liefert die Schwere der Exception


Erstellt die Exception

  • « ErrorException
  • ErrorException::getSeverity »
  • PHP Manual
  • ErrorException
  • Erstellt die Exception

ErrorException::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ErrorException::__construct — Erstellt die Exception

Beschreibung

public ErrorException::__construct ( string $message = "" , int $code = 0 , int $severity = E_ERROR , string $filename = __FILE__ , int $lineno = __LINE__ , Exception $previous = null )

Erstellt die Exception.

Parameter-Liste

message

Die auszugebende Exceptionbeschreibung.

code

Die Fehlernummer der Exception.

severity

Die Schwere des aufgetretenen Fehlers.

Hinweis:

Obgleich die Schwere ein beliebiger int-Wert sein kann, ist es vorgesehen, dass die Fehler- Konstanten verwendet werden.

filename

Der Name der Datei, in der die Exception aufgetreten ist.

lineno

Die Zeilennummer, in der die Exception aufgetreten ist.

previous

Die vorherige Exception (für Exception Chaining).


Liefert die Schwere der Exception

  • « ErrorException::__construct
  • Error »
  • PHP Manual
  • ErrorException
  • Liefert die Schwere der Exception

ErrorException::getSeverity

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ErrorException::getSeverity — Liefert die Schwere der Exception

Beschreibung

final public ErrorException::getSeverity ( ) : int

Gibt die Schwere der Exception zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt die Schwere der Exception zurück.

Beispiele

Beispiel #1 ErrorException::getSeverity()-Beispiel

<?php
try {
    throw new ErrorException("Exception message", 0, E_USER_ERROR);
} catch(ErrorException $e) {
    echo "This exception severity is: " . $e->getSeverity();
    var_dump($e->getSeverity() === E_USER_ERROR);
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

This exception severity is: 256
bool(true)


Error

(PHP 7, PHP 8)

Einführung

Error is the base class for all internal PHP errors.

Klassenbeschreibung

Error implements Throwable {
/* Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
public __construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public getMessage ( ) : string
final public getPrevious ( ) : Throwable
final public getCode ( ) : mixed
final public getFile ( ) : string
final public getLine ( ) : int
final public getTrace ( ) : array
final public getTraceAsString ( ) : string
public __toString ( ) : string
final private __clone ( ) : void
}

Eigenschaften

message

The error message

code

The error code

file

The filename where the error happened

line

The line where the error happened

Inhaltsverzeichnis

  • Error::__construct — Erzeugt ein Error-Objekt
  • Error::getMessage — Gibt die Fehlermeldung zurück
  • Error::getPrevious — Gibt das vorherige Throwable zurück
  • Error::getCode — Gibt den Fehlercode zurück
  • Error::getFile — Gibt die Datei zurück in der der Fehler
  • Error::getLine — Gibt die Zeile zurück in der der Fehler auftrat
  • Error::getTrace — Gibt den Stacktrace zurück
  • Error::getTraceAsString — Gibt den Stacktrace als String zurück
  • Error::__toString — Gibt eine Repräsentation des Fehlers als String zurück
  • Error::__clone — Klont einen Fehler


Erzeugt ein Error-Objekt

  • « Error
  • Error::getMessage »
  • PHP Manual
  • Error
  • Erzeugt ein Error-Objekt

Error::__construct

(PHP 7, PHP 8)

Error::__construct — Erzeugt ein Error-Objekt

Beschreibung

public Error::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )

Erzeugt ein Error.

Parameter-Liste

message

Die Fehlermeldung.

code

Der Fehlercode.

previous

Das vorherige Throwable, für die Verkettung von Ausnahmen.

Anmerkungen

Hinweis:

Der Wert von message ist NICHT sicher im Umgang mit binären Werten.


Gibt die Fehlermeldung zurück

  • « Error::__construct
  • Error::getPrevious »
  • PHP Manual
  • Error
  • Gibt die Fehlermeldung zurück

Error::getMessage

(PHP 7, PHP 8)

Error::getMessage — Gibt die Fehlermeldung zurück

Beschreibung

final public Error::getMessage ( ) : string

Gibt die Fehlermeldung zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt die Fehlermeldung als Zeichenkette zurück.

Beispiele

Beispiel #1 Error::getMessage()-Beispiel

<?php
try {
    throw new Error("Eine Fehlermeldung");
} catch(Error $e) {
    echo $e->getMessage();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Eine Fehlermeldung

Siehe auch

  • Throwable::getMessage() - Gibt die Nachricht zurück


Gibt das vorherige Throwable zurück

  • « Error::getMessage
  • Error::getCode »
  • PHP Manual
  • Error
  • Gibt das vorherige Throwable zurück

Error::getPrevious

(PHP 7, PHP 8)

Error::getPrevious — Gibt das vorherige Throwable zurück

Beschreibung

final public Error::getPrevious ( ) : Throwable

Gibt das vorherige Throwable zurück (das dritte Argument von Error::__construct()).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt das vorherige Throwable zurück, wenn eines vorhanden ist, andernfalls null.

Beispiele

Beispiel #1 Error::getPrevious()-Beispiel

Schleife über und Ausgabe von Fehlern

<?php
class MyCustomError extends Error {}

function doStuff() {
    try {
        throw new InvalidArgumentError("Du machst das falsch!", 112);
    } catch(Error $e) {
        throw new MyCustomError("Etwas ist passiert", 911, $e);
    }
}

try {
    doStuff();
} catch(Error $e) {
    do {
        printf("%s:%d %s (%d) [%s]\n", $e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e));
    } while($e = $e->getPrevious());
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/home/bjori/ex.php:8 Etwas ist passiert (911) [MyCustomError]
/home/bjori/ex.php:6 Du machst das falsch! (112) [InvalidArgumentError]

Siehe auch

  • Throwable::getPrevious() - Gibt das vorherige Throwable zurück


Gibt den Fehlercode zurück

  • « Error::getPrevious
  • Error::getFile »
  • PHP Manual
  • Error
  • Gibt den Fehlercode zurück

Error::getCode

(PHP 7, PHP 8)

Error::getCode — Gibt den Fehlercode zurück

Beschreibung

final public Error::getCode ( ) : mixed

Gibt den Fehlercode zurück

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Fehlercode als int zurück

Beispiele

Beispiel #1 Error::getCode()-Beispiel

<?php
try {
    throw new Error("Eine Fehlermeldung", 30);
} catch(Error $e) {
    echo "Der Fehlercode ist: " . $e->getCode();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Der Fehlercode ist: 30

Siehe auch

  • Throwable::getCode() - Gibt den Exception-Code zurück


Gibt die Datei zurück in der der Fehler

  • « Error::getCode
  • Error::getLine »
  • PHP Manual
  • Error
  • Gibt die Datei zurück in der der Fehler

Error::getFile

(PHP 7, PHP 8)

Error::getFile — Gibt die Datei zurück in der der Fehler

Beschreibung

final public Error::getFile ( ) : string

Gibt den Namen der Datei zurück, in der der Fehler auftrat.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Namen der Datei zurück, in der der Fehler auftrat.

Beispiele

Beispiel #1 Error::getFile()-Beispiel

<?php
try {
    throw new Error;
} catch(Error $e) {
    echo $e->getFile();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/home/bjori/tmp/ex.php

Siehe auch

  • Throwable::getFile() - Gibt die Datei zurück, in der das Objekt erzeugt wurde


Gibt die Zeile zurück in der der Fehler auftrat

  • « Error::getFile
  • Error::getTrace »
  • PHP Manual
  • Error
  • Gibt die Zeile zurück in der der Fehler auftrat

Error::getLine

(PHP 7, PHP 8)

Error::getLine — Gibt die Zeile zurück in der der Fehler auftrat

Beschreibung

final public Error::getLine ( ) : int

Gibt die Zeilennummer zurück, in der der Fehler auftrat.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt die Zeilennummer zurück, in der der Fehler auftrat.

Beispiele

Beispiel #1 Error::getLine()-Beispiel

<?php
try {
    throw new Error("Some error message");
} catch(Error $e) {
    echo "Der Fehler wurde erzeigt in Zeile: " . $e->getLine();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Der Fehler wurde erzeigt in Zeile: 3

Siehe auch

  • Throwable::getLine() - Gibt die Zeile zurück, in der das Objekt instantiiert wurde


Gibt den Stacktrace zurück

  • « Error::getLine
  • Error::getTraceAsString »
  • PHP Manual
  • Error
  • Gibt den Stacktrace zurück

Error::getTrace

(PHP 7, PHP 8)

Error::getTrace — Gibt den Stacktrace zurück

Beschreibung

final public Error::getTrace ( ) : array

Gibt den Stacktrace zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Stacktrace als Array zurück.

Beispiele

Beispiel #1 Error::getTrace()-Beispiel

<?php
function test() {
 throw new Error;
}

try {
 test();
} catch(Error $e) {
 var_dump($e->getTrace());
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  array(4) {
    ["file"]=>
    string(22) "/home/bjori/tmp/ex.php"
    ["line"]=>
    int(7)
    ["function"]=>
    string(4) "test"
    ["args"]=>
    array(0) {
    }
  }
}

Siehe auch

  • Throwable::getTrace() - Gibt den Stacktrace zurück


Gibt den Stacktrace als String zurück

  • « Error::getTrace
  • Error::__toString »
  • PHP Manual
  • Error
  • Gibt den Stacktrace als String zurück

Error::getTraceAsString

(PHP 7, PHP 8)

Error::getTraceAsString — Gibt den Stacktrace als String zurück

Beschreibung

final public Error::getTraceAsString ( ) : string

Gibt den Stacktrace als String zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Stacktrace als String zurück.

Beispiele

Beispiel #1 Error::getTraceAsString()-Beispiel

<?php
function test() {
    throw new Error;
}

try {
    test();
} catch(Error $e) {
    echo $e->getTraceAsString();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

#0 /home/bjori/tmp/ex.php(7): test()
#1 {main}

Siehe auch

  • Throwable::getTraceAsString() - Gibt den Stacktrace als String zurück


Gibt eine Repräsentation des Fehlers als String zurück

  • « Error::getTraceAsString
  • Error::__clone »
  • PHP Manual
  • Error
  • Gibt eine Repräsentation des Fehlers als String zurück

Error::__toString

(PHP 7, PHP 8)

Error::__toString — Gibt eine Repräsentation des Fehlers als String zurück

Beschreibung

public Error::__toString ( ) : string

Gibt eine Repräsentation des Fehlers als string zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt eine Repräsentation des Fehlers als string zurück.

Beispiele

Beispiel #1 Error::__toString()-Beispiel

<?php
try {
    throw new Error("Eine Fehlermeldung");
} catch(Error $e) {
    echo $e;
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Error: Eine Fehlermeldung in /home/bjori/tmp/ex.php:3
Stack trace:
#0 {main}

Siehe auch

  • Throwable::__toString() - Gibt eine Repräsentation des geworfenen Objekts als String zurück


Klont einen Fehler

  • « Error::__toString
  • ArgumentCountError »
  • PHP Manual
  • Error
  • Klont einen Fehler

Error::__clone

(PHP 7, PHP 8)

Error::__clone — Klont einen Fehler

Beschreibung

final private Error::__clone ( ) : void

Error kann nicht geklont werden, sodass diese Methode einen fatalen Fehler hervorruft.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Error können nicht geklont werden.


ArgumentCountError

(PHP 7 >= PHP 7.1.0, PHP 8)

Einführung

ArgumentCountError is thrown when too few arguments are passed to a user-defined function or method.

Klassenbeschreibung

ArgumentCountError extends TypeError {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Error::getMessage ( ) : string
final public Error::getPrevious ( ) : Throwable
final public Error::getCode ( ) : mixed
final public Error::getFile ( ) : string
final public Error::getLine ( ) : int
final public Error::getTrace ( ) : array
final public Error::getTraceAsString ( ) : string
public Error::__toString ( ) : string
final private Error::__clone ( ) : void
}


ArithmeticError

(PHP 7, PHP 8)

Einführung

ArithmeticError is thrown when an error occurs while performing mathematical operations. These errors include attempting to perform a bitshift by a negative amount, and any call to intdiv() that would result in a value outside the possible bounds of an int.

Klassenbeschreibung

ArithmeticError extends Error {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Error::getMessage ( ) : string
final public Error::getPrevious ( ) : Throwable
final public Error::getCode ( ) : mixed
final public Error::getFile ( ) : string
final public Error::getLine ( ) : int
final public Error::getTrace ( ) : array
final public Error::getTraceAsString ( ) : string
public Error::__toString ( ) : string
final private Error::__clone ( ) : void
}


AssertionError

(PHP 7, PHP 8)

Einführung

AssertionError is thrown when an assertion made via assert() fails.

Klassenbeschreibung

AssertionError extends Error {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Error::getMessage ( ) : string
final public Error::getPrevious ( ) : Throwable
final public Error::getCode ( ) : mixed
final public Error::getFile ( ) : string
final public Error::getLine ( ) : int
final public Error::getTrace ( ) : array
final public Error::getTraceAsString ( ) : string
public Error::__toString ( ) : string
final private Error::__clone ( ) : void
}


DivisionByZeroError

(PHP 7, PHP 8)

Einführung

DivisionByZeroError is thrown when an attempt is made to divide a number by zero.

Klassenbeschreibung

DivisionByZeroError extends ArithmeticError {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Error::getMessage ( ) : string
final public Error::getPrevious ( ) : Throwable
final public Error::getCode ( ) : mixed
final public Error::getFile ( ) : string
final public Error::getLine ( ) : int
final public Error::getTrace ( ) : array
final public Error::getTraceAsString ( ) : string
public Error::__toString ( ) : string
final private Error::__clone ( ) : void
}


CompileError

(PHP 7 > 7.3.0, PHP 8)

Einführung

CompileError is thrown for some compilation errors, which formerly issued a fatal error.

Klassenbeschreibung

CompileError extends Error {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Error::getMessage ( ) : string
final public Error::getPrevious ( ) : Throwable
final public Error::getCode ( ) : mixed
final public Error::getFile ( ) : string
final public Error::getLine ( ) : int
final public Error::getTrace ( ) : array
final public Error::getTraceAsString ( ) : string
public Error::__toString ( ) : string
final private Error::__clone ( ) : void
}


ParseError

(PHP 7, PHP 8)

Einführung

ParseError is thrown when an error occurs while parsing PHP code, such as when eval() is called.

Hinweis: ParseError extends CompileError as of PHP 7.3.0. Formerly, it extended Error.

Klassenbeschreibung

ParseError extends CompileError {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Error::getMessage ( ) : string
final public Error::getPrevious ( ) : Throwable
final public Error::getCode ( ) : mixed
final public Error::getFile ( ) : string
final public Error::getLine ( ) : int
final public Error::getTrace ( ) : array
final public Error::getTraceAsString ( ) : string
public Error::__toString ( ) : string
final private Error::__clone ( ) : void
}


TypeError

(PHP 7, PHP 8)

Einführung

There are three scenarios where a TypeError may be thrown. The first is where the argument type being passed to a function does not match its corresponding declared parameter type. The second is where a value being returned from a function does not match the declared function return type. The third is where an invalid number of arguments are passed to a built-in PHP function (strict mode only).

Klassenbeschreibung

TypeError extends Error {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Error::getMessage ( ) : string
final public Error::getPrevious ( ) : Throwable
final public Error::getCode ( ) : mixed
final public Error::getFile ( ) : string
final public Error::getLine ( ) : int
final public Error::getTrace ( ) : array
final public Error::getTraceAsString ( ) : string
public Error::__toString ( ) : string
final private Error::__clone ( ) : void
}


Vordefinierte Interfaces und Klassen

Inhaltsverzeichnis

  • Traversable
  • Iterator
  • IteratorAggregate
  • Throwable
  • ArrayAccess
  • Serializable
  • Closure
  • Generator
  • WeakReference

Siehe auch SPL-Interfaces und reservierte Klassen.


Das Traversable-Interface

(PHP 5, PHP 7, PHP 8)

Einführung

Interface, um herauszufinden, ob eine Klasse mittels foreach traversierbar ist.

Das abstrakte Interface kann nicht direkt implementiert werden. Stattdessen müssen Sie es entweder mittels IteratorAggregate oder Iterator implementieren.

Hinweis:

Interne (eingebaute) Klassen, die dieses Interface implementieren, können in foreach-Konstrukten verwendet werden und benötigen keine explizite Implementierung von IteratorAggregate oder Iterator.

Hinweis:

Es handelt sich um ein internes Interface der Engine, das nicht in PHP-Skripten implementiert werden kann. Statt dessen müssen IteratorAggregate oder Iterator verwendet werden. Wenn ein Interface implementiert wird, das Traversable erweitert, ist sicherzustellen, dass IteratorAggregate oder Iterator vor dessen Name in der implements Klausel angegeben wird.

Interface-Übersicht

Traversable {
}

Dieses Interface besitzt keine Methoden, sein einziger Sinn ist es, als Basisinterface für alle traversierbaren Klassen zu dienen.


Das Iterator-Interface

(PHP 5, PHP 7, PHP 8)

Einführung

Interface für externe Iteratoren oder Objekte, die selbstiterierend sind.

Interface-Übersicht

Iterator extends Traversable {
/* Methoden */
abstract public current ( ) : mixed
abstract public key ( ) : scalar
abstract public next ( ) : void
abstract public rewind ( ) : void
abstract public valid ( ) : bool
}

Vordefinierte Iteratoren

PHP bietet bereits eine Anzahl von Iteratoren für viele alltägliche Aufgaben an. SPL iterators enthält eine entsprechende Liste.

Beispiele

Beispiel #1 Basisnutzung

Dieses Beispiel demonstriert, in welcher Reihenfolge Methoden aufgerufen werden, wenn Sie foreach auf einem Iterator anwenden.

<?php
class meinIterator implements Iterator {
    private $position = 0;
    private $array = array(
        "erstesElement",
        "zweitesElement",
        "letztesElement",
    );

    public function __construct() {
        $this->position = 0;
    }

    public function rewind() {
        var_dump(__METHOD__);
        $this->position = 0;
    }

    public function current() {
        var_dump(__METHOD__);
        return $this->array[$this->position];
    }

    public function key() {
        var_dump(__METHOD__);
        return $this->position;
    }

    public function next() {
        var_dump(__METHOD__);
        ++$this->position;
    }

    public function valid() {
        var_dump(__METHOD__);
        return isset($this->array[$this->position]);
    }
}

$it = new meinIterator;

foreach($it as $key => $value) {
    var_dump($key, $value);
    echo "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(18) "meinIterator::rewind"
string(17) "meinIterator::valid"
string(19) "meinIterator::current"
string(15) "meinIterator::key"
int(0)
string(12) "erstesElement"

string(16) "meinIterator::next"
string(17) "meinIterator::valid"
string(19) "meinIterator::current"
string(15) "meinIterator::key"
int(1)
string(13) "zweitesElement"

string(16) "meinIterator::next"
string(17) "meinIterator::valid"
string(19) "meinIterator::current"
string(15) "meinIterator::key"
int(2)
string(11) "letztesElement"

string(16) "meinIterator::next"
string(17) "meinIterator::valid"

Inhaltsverzeichnis

  • Iterator::current — Gibt das aktuelle Element zurück
  • Iterator::key — Gibt den Schlüssel des aktuellen Elements zurück
  • Iterator::next — Rückt den Zeiger auf das nächste Element vor
  • Iterator::rewind — Setzt den Iterator auf das erste Element zurück
  • Iterator::valid — Prüft, ob die aktuelle Position zulässig ist


Gibt das aktuelle Element zurück

  • « Iterator
  • Iterator::key »
  • PHP Manual
  • Iterator
  • Gibt das aktuelle Element zurück

Iterator::current

(PHP 5, PHP 7, PHP 8)

Iterator::current — Gibt das aktuelle Element zurück

Beschreibung

abstract public Iterator::current ( ) : mixed

Gibt das aktuelle Element zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Kann Werte jeden Typs zurückgeben.


Gibt den Schlüssel des aktuellen Elements zurück

  • « Iterator::current
  • Iterator::next »
  • PHP Manual
  • Iterator
  • Gibt den Schlüssel des aktuellen Elements zurück

Iterator::key

(PHP 5, PHP 7, PHP 8)

Iterator::key — Gibt den Schlüssel des aktuellen Elements zurück

Beschreibung

abstract public Iterator::key ( ) : scalar

Gibt den Schlüssel des aktuellen Elements zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg einen Skalar zurück, im Fehlerfall wird null zurückgegeben.

Fehler/Exceptions

Wirft im Fehlerfall eine Meldung vom Typ E_NOTICE.


Rückt den Zeiger auf das nächste Element vor

  • « Iterator::key
  • Iterator::rewind »
  • PHP Manual
  • Iterator
  • Rückt den Zeiger auf das nächste Element vor

Iterator::next

(PHP 5, PHP 7, PHP 8)

Iterator::next — Rückt den Zeiger auf das nächste Element vor

Beschreibung

abstract public Iterator::next ( ) : void

Verschiebt die aktuelle Position auf das nächste Element.

Hinweis:

Diese Methode wird nach jedem Durchlauf der foreach-Schleife aufgerufen.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Jeder zurückgegebene Wert wird ignoriert.


Setzt den Iterator auf das erste Element zurück

  • « Iterator::next
  • Iterator::valid »
  • PHP Manual
  • Iterator
  • Setzt den Iterator auf das erste Element zurück

Iterator::rewind

(PHP 5, PHP 7, PHP 8)

Iterator::rewind — Setzt den Iterator auf das erste Element zurück

Beschreibung

abstract public Iterator::rewind ( ) : void

Setzt den Zeiger auf das erste Element des Iterators zurück.

Hinweis:

Dies ist die erste Methode, die aufgerufen wird, wenn eine foreach-Schleife gestartet wird. Sie wird nicht nach foreach-Durchläufen ausgeführt.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Zurückgegebene Werte werden ignoriert.


Prüft, ob die aktuelle Position zulässig ist

  • « Iterator::rewind
  • IteratorAggregate »
  • PHP Manual
  • Iterator
  • Prüft, ob die aktuelle Position zulässig ist

Iterator::valid

(PHP 5, PHP 7, PHP 8)

Iterator::valid — Prüft, ob die aktuelle Position zulässig ist

Beschreibung

abstract public Iterator::valid ( ) : bool

Diese Methode wird nach Iterator::rewind() und Iterator::next() aufgerufen, um zu prüfen, ob die aktuelle Position zulässig ist.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Der Rückgabewert wird in den Typ bool gecastet und dann evaluiert. Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Das IteratorAggregate-Interface

(PHP 5, PHP 7, PHP 8)

Einführung

Interface, um einen externen Iterator zu erzeugen.

Interface-Übersicht

IteratorAggregate extends Traversable {
/* Methoden */
abstract public getIterator ( ) : Traversable
}

Beispiel #1 Basisnutzung

<?php
class meineDaten implements IteratorAggregate {
    public $property1 = "Öffentliche Eigenschaft eins";
    public $property2 = "Öffentliche Eigenschaft zwei";
    public $property3 = "Öffentliche Eigenschaft drei";

    public function __construct() {
        $this->property4 = "letzte Eigenschaft";
    }

    public function getIterator() {
        return new ArrayIterator($this);
    }
}

$obj = new meineDaten;

foreach($obj as $key => $value) {
    var_dump($key, $value);
    echo "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(9) "property1"
string(19) "Öffentliche Eigenschaft eins"

string(9) "property2"
string(19) "Öffentliche Eigenschaft zwei"

string(9) "property3"
string(21) "Öffentliche Eigenschaft drei"

string(9) "property4"
string(13) "letzte Eigenschaft"

Inhaltsverzeichnis

  • IteratorAggregate::getIterator — Holt einen externen Iterator


Holt einen externen Iterator

  • « IteratorAggregate
  • Throwable »
  • PHP Manual
  • IteratorAggregate
  • Holt einen externen Iterator

IteratorAggregate::getIterator

(PHP 5, PHP 7, PHP 8)

IteratorAggregate::getIterator — Holt einen externen Iterator

Beschreibung

abstract public IteratorAggregate::getIterator ( ) : Traversable

Gibt einen externen Iterator zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Eine Instanz eines Objektes, das Iterator oder Traversable implementiert.

Fehler/Exceptions

Wirft im Fehlerfall eine Exception.


Throwable

(PHP 7, PHP 8)

Einführung

Throwable ist in PHP 7 das zugrundeliegende Interface aller Objekte, die mittels des throw-Statements geworfen werden können, inklusive Error und Exception.

Hinweis:

PHP-Klassen können das Interface Throwable nicht direkt implementieren und müssen stattdessen von Exception abgeleitet werden.

Interface-Übersicht

Throwable {
/* Methoden */
abstract public getMessage ( ) : string
abstract public getCode ( ) : int
abstract public getFile ( ) : string
abstract public getLine ( ) : int
abstract public getTrace ( ) : array
abstract public getTraceAsString ( ) : string
abstract public getPrevious ( ) : Throwable
abstract public __toString ( ) : string
}

Inhaltsverzeichnis

  • Throwable::getMessage — Gibt die Nachricht zurück
  • Throwable::getCode — Gibt den Exception-Code zurück
  • Throwable::getFile — Gibt die Datei zurück, in der das Objekt erzeugt wurde
  • Throwable::getLine — Gibt die Zeile zurück, in der das Objekt instantiiert wurde
  • Throwable::getTrace — Gibt den Stacktrace zurück
  • Throwable::getTraceAsString — Gibt den Stacktrace als String zurück
  • Throwable::getPrevious — Gibt das vorherige Throwable zurück
  • Throwable::__toString — Gibt eine Repräsentation des geworfenen Objekts als String zurück


Gibt die Nachricht zurück

  • « Throwable
  • Throwable::getCode »
  • PHP Manual
  • Throwable
  • Gibt die Nachricht zurück

Throwable::getMessage

(PHP 7, PHP 8)

Throwable::getMessage — Gibt die Nachricht zurück

Beschreibung

abstract public Throwable::getMessage ( ) : string

Gibt die Nachricht zurück, die dem geworfenen Objekt zugewiesen ist.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt die Nachricht zurück, die dem geworfenen Objekt zugewiesen ist.

Siehe auch

  • Exception::getMessage() - Gibt die Exceptionbeschreibung zurück


Gibt den Exception-Code zurück

  • « Throwable::getMessage
  • Throwable::getFile »
  • PHP Manual
  • Throwable
  • Gibt den Exception-Code zurück

Throwable::getCode

(PHP 7, PHP 8)

Throwable::getCode — Gibt den Exception-Code zurück

Beschreibung

abstract public Throwable::getCode ( ) : int

Gibt den Fehlercode zurück, der dem geworfenen Objekt zugewiesen ist.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Fehlercode von Exception-Objekten als int zurück, aber bei abgeleiteten Klassen von Exception möglicherweise als andere Typen (z.B. als string bei PDOException).

Siehe auch

  • Exception::getCode() - Gibt die Fehlernummer der Exception zurück


Gibt die Datei zurück, in der das Objekt erzeugt wurde

  • « Throwable::getCode
  • Throwable::getLine »
  • PHP Manual
  • Throwable
  • Gibt die Datei zurück, in der das Objekt erzeugt wurde

Throwable::getFile

(PHP 7, PHP 8)

Throwable::getFile — Gibt die Datei zurück, in der das Objekt erzeugt wurde

Beschreibung

abstract public Throwable::getFile ( ) : string

Gibt den Namen der Datei zurück, in der das geworfene Objekt erzeugt wurde.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Dateinamen der Datei zurück, in der das geworfene Objekt erzeugt wurde.

Siehe auch

  • Exception::getFile() - Gibt den Namen der Datei zurück, in der die Exception erzeugt wurde


Gibt die Zeile zurück, in der das Objekt instantiiert wurde

  • « Throwable::getFile
  • Throwable::getTrace »
  • PHP Manual
  • Throwable
  • Gibt die Zeile zurück, in der das Objekt instantiiert wurde

Throwable::getLine

(PHP 7, PHP 8)

Throwable::getLine — Gibt die Zeile zurück, in der das Objekt instantiiert wurde

Beschreibung

abstract public Throwable::getLine ( ) : int

Gibt die Zeilennummer zurück, in der das geworfene Objekt instantiiert wurde.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt die Zeilennummer zurück, in der das geworfene Objekt instantiiert wurde.

Siehe auch

  • Exception::getLine() - Gibt die Zeile zurück, in der die Exception erzeugt wurde


Gibt den Stacktrace zurück

  • « Throwable::getLine
  • Throwable::getTraceAsString »
  • PHP Manual
  • Throwable
  • Gibt den Stacktrace zurück

Throwable::getTrace

(PHP 7, PHP 8)

Throwable::getTrace — Gibt den Stacktrace zurück

Beschreibung

abstract public Throwable::getTrace ( ) : array

Gibt den Stacktrace als Array zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Stacktrace als Array im gleichen Format wie debug_backtrace() zurück.

Siehe auch

  • Exception::getTrace() - Gibt den Stacktrace zurück


Gibt den Stacktrace als String zurück

  • « Throwable::getTrace
  • Throwable::getPrevious »
  • PHP Manual
  • Throwable
  • Gibt den Stacktrace als String zurück

Throwable::getTraceAsString

(PHP 7, PHP 8)

Throwable::getTraceAsString — Gibt den Stacktrace als String zurück

Beschreibung

abstract public Throwable::getTraceAsString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Stacktrace als String zurück.

Siehe auch

  • Exception::getTraceAsString() - Gibt den Stacktrace als String zurück


Gibt das vorherige Throwable zurück

  • « Throwable::getTraceAsString
  • Throwable::__toString »
  • PHP Manual
  • Throwable
  • Gibt das vorherige Throwable zurück

Throwable::getPrevious

(PHP 7, PHP 8)

Throwable::getPrevious — Gibt das vorherige Throwable zurück

Beschreibung

abstract public Throwable::getPrevious ( ) : Throwable

Gibt ein mögliches vorheriges Throwable zurück (z.B. eines, welches als drittes Argument an Exception::__construct() übergeben wurde).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt das vorherige Throwable zurück, wenn eines vorhanden ist, andernfalls null.

Siehe auch

  • Exception::getPrevious() - Gibt die vorhergehende Exception zurück


Gibt eine Repräsentation des geworfenen Objekts als String zurück

  • « Throwable::getPrevious
  • ArrayAccess »
  • PHP Manual
  • Throwable
  • Gibt eine Repräsentation des geworfenen Objekts als String zurück

Throwable::__toString

(PHP 7, PHP 8)

Throwable::__toString — Gibt eine Repräsentation des geworfenen Objekts als String zurück

Beschreibung

abstract public Throwable::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt eine Repräsentation des geworfenen Objekts als string zurück.

Siehe auch

  • Exception::__toString() - Stringrepräsentation der Exception


Das ArrayAccess-Interface

(PHP 5, PHP 7, PHP 8)

Einführung

Interface, um Objekte als Arrays ansprechen zu können

Interface-Übersicht

ArrayAccess {
/* Methoden */
abstract public offsetExists ( mixed $offset ) : bool
abstract public offsetGet ( mixed $offset ) : mixed
abstract public offsetSet ( mixed $offset , mixed $value ) : void
abstract public offsetUnset ( mixed $offset ) : void
}

Beispiel #1 Basisnutzung

<?php
class Obj implements ArrayAccess {
    private $container = array();

    public function __construct() {
        $this->container = array(
            "eins"  => 1,
            "zwei"  => 2,
            "drei"  => 3,
        );
    }

    public function offsetSet($offset, $value) {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    public function offsetExists($offset) {
        return isset($this->container[$offset]);
    }

    public function offsetUnset($offset) {
        unset($this->container[$offset]);
    }

    public function offsetGet($offset) {
        return isset($this->container[$offset]) ? $this->container[$offset] : null;
    }
}

$obj = new Obj;

var_dump(isset($obj["zwei"]));
var_dump($obj["zwei"]);
unset($obj["zwei"]);
var_dump(isset($obj["zwei"]));
$obj["zwei"] = "Ein Wert";
var_dump($obj["zwei"]);
$obj[] = 'Anhängen 1';
$obj[] = 'Anhängen 2';
$obj[] = 'Anhängen 3';
print_r($obj);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
int(2)
bool(false)
string(7) "Ein Wert"
obj Object
(
    [container:obj:private] => Array
        (
            [eins] => 1
            [drei] => 3
            [zwei] => Ein Wert
            [0] => Anhängen 1
            [1] => Anhängen 2
            [2] => Anhängen 3
        )

)

Inhaltsverzeichnis

  • ArrayAccess::offsetExists — Prüft, ob ein Offset-Punkt existiert
  • ArrayAccess::offsetGet — Gibt den Wert eines Offset-Punkts zurück
  • ArrayAccess::offsetSet — Zuweisen eines Wertes an angegebenen Offset
  • ArrayAccess::offsetUnset — Löschen eines Offsets


Prüft, ob ein Offset-Punkt existiert

  • « ArrayAccess
  • ArrayAccess::offsetGet »
  • PHP Manual
  • ArrayAccess
  • Prüft, ob ein Offset-Punkt existiert

ArrayAccess::offsetExists

(PHP 5, PHP 7, PHP 8)

ArrayAccess::offsetExists — Prüft, ob ein Offset-Punkt existiert

Beschreibung

abstract public ArrayAccess::offsetExists ( mixed $offset ) : bool

Prüft, ob ein Offset-Punkt existiert oder nicht.

Diese Methode wird aufgerufen, wenn die Funktionen isset() oder empty() auf Objekte angewendet werden, die ArrayAccess implementieren.

Hinweis:

Wenn empty() verwendet wird, wird die Funktion ArrayAccess::offsetGet() aufgerufen und untersucht, ob bereits ein Wert zugewiesen wurde, sofern ArrayAccess::offsetExists() true zurückliefert.

Parameter-Liste

offset

Der zu untersuchende Offset-Punkt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Hinweis:

Der Rückgabewert wird zu boolean gecastet, sofern sonst ein nicht-boolscher Wert zurückgegeben würde.

Beispiele

Beispiel #1 ArrayAccess::offsetExists()-Beispiel

<?php
class obj implements ArrayAccess {
    public function offsetSet($offset, $wert) {
        var_dump(__METHOD__);
    }
    public function offsetExists($var) {
        var_dump(__METHOD__);
        if ($var == "foobar") {
            return true;
        }
        return false;
    }
    public function offsetUnset($var) {
        var_dump(__METHOD__);
    }
    public function offsetGet($var) {
        var_dump(__METHOD__);
        return "Wert";
    }
}

$obj = new obj;

echo "Ausführung obj::offsetExists()\n";
var_dump(isset($obj["foobar"]));

echo "\nAusführung obj::offsetExists() und obj::offsetGet()\n";
var_dump(empty($obj["foobar"]));

echo "\nAusführung obj::offsetExists(), "
    ."obj:offsetGet() wird *nicht* ausgeführt, "
    ."wenn nichts zurückgegeben werden kann\n";
var_dump(empty($obj["foobaz"]));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausführung obj::offsetExists()
string(17) "obj::offsetExists"
bool(true)

Ausführung obj::offsetExists() und obj::offsetGet()
string(17) "obj::offsetExists"
string(14) "obj::offsetGet"
bool(false)

Ausführung obj::offsetExists(), obj:offsetGet() wird *nicht* ausgeführt, wenn nichts zurückgegeben werden kann
string(17) "obj::offsetExists"
bool(true)


Gibt den Wert eines Offset-Punkts zurück

  • « ArrayAccess::offsetExists
  • ArrayAccess::offsetSet »
  • PHP Manual
  • ArrayAccess
  • Gibt den Wert eines Offset-Punkts zurück

ArrayAccess::offsetGet

(PHP 5, PHP 7, PHP 8)

ArrayAccess::offsetGet — Gibt den Wert eines Offset-Punkts zurück

Beschreibung

abstract public ArrayAccess::offsetGet ( mixed $offset ) : mixed

Gibt den Wert des angegebenen Offset-Punkts zurück.

Diese Methode wird ausgeführt, wenn geprüft wird, ob ein Offset-Punkt empty() ist.

Parameter-Liste

offset

Der zu untersuchende Offset-Punkt.

Anmerkungen

Hinweis:

Beginnend mit PHP 5.3.4 kann ArrayAccess::offsetGet() per Referenz zurückgeben. Somit ist es möglich Array Offsets von Objekten welche mit ArrayAccess überladen wurden indirekt zu modifizieren.

Bei einer direkten Änderung wird der Wert eines Array Offsets komplett ersetzt (beispielsweise $obj[6] = 7). Bei einer indirekten Änderung wird nur ein Teil des Array Offsets geändert ($obj[6][7] = 7) oder das Array Offset einer Variablen per Referenz zugewiesen ($var =& $obj[6]). Auch Inkrementierung mit ++ und Dekrementierung mit -- sind derartig implementiert, dass sie indirekte Änderung erfordern.

Direkte Änderungen führen zu einem Aufruf von ArrayAccess::offsetSet(), wohingegen indirekte Änderungen in einem Aufruf von ArrayAccess::offsetGet() resultieren. In diesem Fall muss die Implementierung von ArrayAccess::offsetGet() in der Lage sein per Referenz zurückzugeben, ansonsten wird ein E_NOTICE Fehler generiert.

Rückgabewerte

Kann Werte aller Typen zurückgeben.

Siehe auch

  • ArrayAccess::offsetExists() - Prüft, ob ein Offset-Punkt existiert


Zuweisen eines Wertes an angegebenen Offset

  • « ArrayAccess::offsetGet
  • ArrayAccess::offsetUnset »
  • PHP Manual
  • ArrayAccess
  • Zuweisen eines Wertes an angegebenen Offset

ArrayAccess::offsetSet

(PHP 5, PHP 7, PHP 8)

ArrayAccess::offsetSet — Zuweisen eines Wertes an angegebenen Offset

Beschreibung

abstract public ArrayAccess::offsetSet ( mixed $offset , mixed $value ) : void

Weist dem angegebenen Offset-Punkt einen Wert zu.

Parameter-Liste

offset

Der Offset-Punkt, dem ein Wert zugewiesen werden soll.

value

Der zuzuweisende Wert.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Anmerkungen

Hinweis:

Der offset-Parameter wird auf null gesetzt, wenn sonst kein anderer Wert verfügbar ist, siehe auch das folgende Beispiel:

<?php
$arrayaccess[] = "Erster Wert";
$arrayaccess[] = "Zweiter Wert";
print_r($arrayaccess);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Erster Wert
    [1] => Zweiter Wert
)

Hinweis:

Diese Funktion wird nicht aufgerufen, wenn einer Variable ein Array Offset per Referenz zugewiesen wird oder eine andere indirekte Änderungen eines Array Offsets stattfindet (wenn beispielsweise nur ein Sub-Offset oder eine Sub-Eigenschaft geändert wird). Stattdessen wird ArrayAccess::offsetGet() aufgerufen. Die Operation wird nur erfolgreich sein, wenn jene Methode per Referenz zurückgibt, was erst seit PHP 5.3.4 möglich ist.


Löschen eines Offsets

  • « ArrayAccess::offsetSet
  • Serializable »
  • PHP Manual
  • ArrayAccess
  • Löschen eines Offsets

ArrayAccess::offsetUnset

(PHP 5, PHP 7, PHP 8)

ArrayAccess::offsetUnset — Löschen eines Offsets

Beschreibung

abstract public ArrayAccess::offsetUnset ( mixed $offset ) : void

Löscht einen Offset-Punkt.

Hinweis:

Diese Methode wird nicht aufgerufen, wenn ein Typecast auf (unset) durchgeführt wird.

Parameter-Liste

offset

Der zu löschende Offset-Punkt.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Das Serializable-Interface

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Einführung

Interface für benutzerdefiniertes Serialisieren.

Klassen, die dieses Interface implementieren, unterstützen __sleep und __wakeup nicht mehr. Die Methode serialize wird immer aufgerufen, wenn eine Instanz serialisiert werden muss. Dabei wird weder __destruct() aufgerufen noch irgend ein anderer Seiteneffekt erzeugt, es sei denn, ein solcher wird in der Methode serialize explizit erzeugt. Wenn die Daten deserialisiert werden, ist die Klasse bekannt und die passende unserialize()-Methode wird anstelle des Konstruktors __construct() aufgerufen. Falls notwendig, kann der Standardkonstruktor innerhalb von unserialize() aufgerufen werden.

Interface-Übersicht

Serializable {
/* Methoden */
abstract public serialize ( ) : string
abstract public unserialize ( string $serialized ) : void
}

Beispiel #1 Basisnutzung

<?php
class obj implements Serializable {
    private $data;
    public function __construct() {
        $this->data = "Meine private-Daten";
    }
    public function serialize() {
        return serialize($this->data);
    }
    public function unserialize($data) {
        $this->data = unserialize($data);
    }
    public function getData() {
        return $this->data;
    }
}

$obj = new obj;
$ser = serialize($obj);

var_dump($ser);

$newobj = unserialize($ser);

var_dump($newobj->getData());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(42) "C:3:"obj":27:{s:19:"Meine private-Daten";}"
string(15) "Meine private-Daten"

Inhaltsverzeichnis

  • Serializable::serialize — Stringrepräsentation eines Objekts
  • Serializable::unserialize — Erstellt das Objekt


Stringrepräsentation eines Objekts

  • « Serializable
  • Serializable::unserialize »
  • PHP Manual
  • Serializable
  • Stringrepräsentation eines Objekts

Serializable::serialize

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Serializable::serialize — Stringrepräsentation eines Objekts

Beschreibung

abstract public Serializable::serialize ( ) : string

Die Funktion sollte die Stringrepräsentation des Objekts zurückgeben.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt die Stringrepräsentation des Objekts oder null zurück.

Fehler/Exceptions

Wirft Exception, wenn andere Typen als String oder null zurückgegeben werden.

Siehe auch

  • __sleep()
  • __serialize()


Erstellt das Objekt

  • « Serializable::serialize
  • Closure »
  • PHP Manual
  • Serializable
  • Erstellt das Objekt

Serializable::unserialize

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Serializable::unserialize — Erstellt das Objekt

Beschreibung

abstract public Serializable::unserialize ( string $serialized ) : void

Wird beim Deserialisieren des Objekts aufgerufen.

Hinweis:

Diese Methode agiert wie der Konstruktor des Objekts. Die __construct-Methode wird nach dieser Methode nicht aufgerufen.

Parameter-Liste

serialized

Die das Objekt repräsentierende Zeichenkette.

Rückgabewerte

Der Rückgabewert dieser Methode wird ignoriert.

Siehe auch

  • __wakeup()
  • __unserialize()


The Closure class

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Einführung

Class used to represent anonymous functions.

Anonymous functions yield objects of this type. This class has methods that allow further control of the anonymous function after it has been created.

Besides the methods listed here, this class also has an __invoke method. This is for consistency with other classes that implement calling magic, as this method is not used for calling the function.

Klassenbeschreibung

Closure {
/* Methoden */
private __construct ( )
public static bind ( Closure $closure , object $newthis , mixed $newscope = "static" ) : Closure|false
public bindTo ( object $newthis , mixed $newscope = "static" ) : Closure|false
public call ( object $newthis , mixed ...$values ) : mixed
public static fromCallable ( callable $callable ) : Closure
}

Inhaltsverzeichnis

  • Closure::__construct — Constructor that disallows instantiation
  • Closure::bind — Duplicates a closure with a specific bound object and class scope
  • Closure::bindTo — Duplicates the closure with a new bound object and class scope
  • Closure::call — Binds and calls the closure
  • Closure::fromCallable — Converts a callable into a closure


Constructor that disallows instantiation

  • « Closure
  • Closure::bind »
  • PHP Manual
  • Closure
  • Constructor that disallows instantiation

Closure::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Closure::__construct — Constructor that disallows instantiation

Beschreibung

private Closure::__construct ( )

This method exists only to disallow instantiation of the Closure class. Objects of this class are created in the fashion described on the anonymous functions page.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Siehe auch

  • Anonymous functions


Duplicates a closure with a specific bound object and class scope

  • « Closure::__construct
  • Closure::bindTo »
  • PHP Manual
  • Closure
  • Duplicates a closure with a specific bound object and class scope

Closure::bind

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Closure::bind — Duplicates a closure with a specific bound object and class scope

Beschreibung

public static Closure::bind ( Closure $closure , object $newthis , mixed $newscope = "static" ) : Closure|false

This method is a static version of Closure::bindTo(). See the documentation of that method for more information.

Parameter-Liste

closure

The anonymous functions to bind.

newthis

The object to which the given anonymous function should be bound, or null for the closure to be unbound.

newscope

The class scope to which the closure is to be associated, or 'static' to keep the current one. If an object is given, the type of the object will be used instead. This determines the visibility of protected and private methods of the bound object. It is not allowed to pass (an object of) an internal class as this parameter.

Rückgabewerte

Returns a new Closure object Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Closure::bind() example

<?php
class A {
    private static $sfoo = 1;
    private $ifoo = 2;
}
$cl1 = static function() {
    return A::$sfoo;
};
$cl2 = function() {
    return $this->ifoo;
};

$bcl1 = Closure::bind($cl1, null, 'A');
$bcl2 = Closure::bind($cl2, new A(), 'A');
echo $bcl1(), "\n";
echo $bcl2(), "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1
2

Siehe auch

  • Anonymous functions
  • Closure::bindTo() - Duplicates the closure with a new bound object and class scope


Duplicates the closure with a new bound object and class scope

  • « Closure::bind
  • Closure::call »
  • PHP Manual
  • Closure
  • Duplicates the closure with a new bound object and class scope

Closure::bindTo

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Closure::bindTo — Duplicates the closure with a new bound object and class scope

Beschreibung

public Closure::bindTo ( object $newthis , mixed $newscope = "static" ) : Closure|false

Create and return a new anonymous function with the same body and bound variables as this one, but possibly with a different bound object and a new class scope.

The “bound object” determines the value $this will have in the function body and the “class scope” represents a class which determines which private and protected members the anonymous function will be able to access. Namely, the members that will be visible are the same as if the anonymous function were a method of the class given as value of the newscope parameter.

Static closures cannot have any bound object (the value of the parameter newthis should be null), but this function can nevertheless be used to change their class scope.

This function will ensure that for a non-static closure, having a bound instance will imply being scoped and vice-versa. To this end, non-static closures that are given a scope but a null instance are made static and non-static non-scoped closures that are given a non-null instance are scoped to an unspecified class.

Hinweis:

If you only want to duplicate the anonymous functions, you can use cloning instead.

Parameter-Liste

newthis

The object to which the given anonymous function should be bound, or null for the closure to be unbound.

newscope

The class scope to which the closure is to be associated, or 'static' to keep the current one. If an object is given, the type of the object will be used instead. This determines the visibility of protected and private methods of the bound object. It is not allowed to pass (an object of) an internal class as this parameter.

Rückgabewerte

Returns the newly created Closure object Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Closure::bindTo() example

<?php

class A {
    function __construct($val) {
        $this->val = $val;
    }
    function getClosure() {
        //returns closure bound to this object and scope
        return function() { return $this->val; };
    }
}

$ob1 = new A(1);
$ob2 = new A(2);

$cl = $ob1->getClosure();
echo $cl(), "\n";
$cl = $cl->bindTo($ob2);
echo $cl(), "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1
2

Siehe auch

  • Anonymous functions
  • Closure::bind() - Duplicates a closure with a specific bound object and class scope


Binds and calls the closure

  • « Closure::bindTo
  • Closure::fromCallable »
  • PHP Manual
  • Closure
  • Binds and calls the closure

Closure::call

(PHP 7, PHP 8)

Closure::call — Binds and calls the closure

Beschreibung

public Closure::call ( object $newthis , mixed ...$values ) : mixed

Temporarily binds the closure to newthis, and calls it with any given parameters.

Parameter-Liste

newthis

The object to bind the closure to for the duration of the call.

values

Zero or more parameters, which will be given as parameters to the closure.

Rückgabewerte

Returns the return value of the closure.

Beispiele

Beispiel #1 Closure::call() example

<?php
class Value {
    protected $value;

    public function __construct($value) {
        $this->value = $value;
    }

    public function getValue() {
        return $this->value;
    }
}

$three = new Value(3);
$four = new Value(4);

$closure = function ($delta) { var_dump($this->getValue() + $delta); };
$closure->call($three, 4);
$closure->call($four, 4);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(7)
int(8)


Converts a callable into a closure

  • « Closure::call
  • Generator »
  • PHP Manual
  • Closure
  • Converts a callable into a closure

Closure::fromCallable

(PHP 7 >= 7.1.0)

Closure::fromCallable — Converts a callable into a closure

Beschreibung

public static Closure::fromCallable ( callable $callable ) : Closure

Create and return a new anonymous function from given callable using the current scope. This method checks if the callable is callable in the current scope and throws a TypeError if it is not.

Parameter-Liste

callable

The callable to convert.

Rückgabewerte

Returns the newly created Closure or throws a TypeError if the callable is not callable in the current scope.


Die Generator Klasse

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Einführung

Generator Objekte werden von Generatoren zurückgeliefert.

Achtung

Generator Objekte können nicht durch new instanziiert werden.

Klassenbeschreibung

Generator implements Iterator {
/* Methoden */
public current ( ) : mixed
public getReturn ( ) : mixed
public key ( ) : mixed
public next ( ) : void
public rewind ( ) : void
public send ( mixed $value ) : mixed
public throw ( Throwable $exception ) : mixed
public valid ( ) : bool
public __wakeup ( ) : void
}

Inhaltsverzeichnis

  • Generator::current — Get the yielded value
  • Generator::getReturn — Get the return value of a generator
  • Generator::key — Get the yielded key
  • Generator::next — Resume execution of the generator
  • Generator::rewind — Rewind the iterator
  • Generator::send — Send a value to the generator
  • Generator::throw — Throw an exception into the generator
  • Generator::valid — Check if the iterator has been closed
  • Generator::__wakeup — Serialize callback


Get the yielded value

  • « Generator
  • Generator::getReturn »
  • PHP Manual
  • Generator
  • Get the yielded value

Generator::current

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::current — Get the yielded value

Beschreibung

public Generator::current ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the yielded value.


Get the return value of a generator

  • « Generator::current
  • Generator::key »
  • PHP Manual
  • Generator
  • Get the return value of a generator

Generator::getReturn

(PHP 7, PHP 8)

Generator::getReturn — Get the return value of a generator

Beschreibung

public Generator::getReturn ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the generator's return value once it has finished executing.

Beispiele

Beispiel #1 Generator::getReturn() example

<?php

$gen = (function() {
    yield 1;
    yield 2;

    return 3;
})();

foreach ($gen as $val) {
    echo $val, PHP_EOL;
}

echo $gen->getReturn(), PHP_EOL;

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1
2
3


Get the yielded key

  • « Generator::getReturn
  • Generator::next »
  • PHP Manual
  • Generator
  • Get the yielded key

Generator::key

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::key — Get the yielded key

Beschreibung

public Generator::key ( ) : mixed

Gets the key of the yielded value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the yielded key.

Beispiele

Beispiel #1 Generator::key() example

<?php

function Gen()
{
    yield 'key' => 'value';
}

$gen = Gen();

echo "{$gen->key()} => {$gen->current()}";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

key => value


Resume execution of the generator

  • « Generator::key
  • Generator::rewind »
  • PHP Manual
  • Generator
  • Resume execution of the generator

Generator::next

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::next — Resume execution of the generator

Beschreibung

public Generator::next ( ) : void

Calling Generator::next() has the same effect as calling Generator::send() with null as argument.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Rewind the iterator

  • « Generator::next
  • Generator::send »
  • PHP Manual
  • Generator
  • Rewind the iterator

Generator::rewind

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::rewind — Rewind the iterator

Beschreibung

public Generator::rewind ( ) : void

If iteration has already begun, this will throw an exception.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Send a value to the generator

  • « Generator::rewind
  • Generator::throw »
  • PHP Manual
  • Generator
  • Send a value to the generator

Generator::send

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::send — Send a value to the generator

Beschreibung

public Generator::send ( mixed $value ) : mixed

Sends the given value to the generator as the result of the current yield expression and resumes execution of the generator.

If the generator is not at a yield expression when this method is called, it will first be let to advance to the first yield expression before sending the value. As such it is not necessary to "prime" PHP generators with a Generator::next() call (like it is done in Python).

Parameter-Liste

value

Value to send into the generator. This value will be the return value of the yield expression the generator is currently at.

Rückgabewerte

Returns the yielded value.

Beispiele

Beispiel #1 Using Generator::send() to inject values

<?php
function printer() {
    echo "I'm printer!".PHP_EOL;
    while (true) {
        $string = yield;
        echo $string.PHP_EOL;
    }
}

$printer = printer();
$printer->send('Hello world!');
$printer->send('Bye world!');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

I'm printer!
Hello world!
Bye world!


Throw an exception into the generator

  • « Generator::send
  • Generator::valid »
  • PHP Manual
  • Generator
  • Throw an exception into the generator

Generator::throw

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::throw — Throw an exception into the generator

Beschreibung

public Generator::throw ( Throwable $exception ) : mixed

Throws an exception into the generator and resumes execution of the generator. The behavior will be the same as if the current yield expression was replaced with a throw $exception statement.

If the generator is already closed when this method is invoked, the exception will be thrown in the caller's context instead.

Parameter-Liste

exception

Exception to throw into the generator.

Rückgabewerte

Returns the yielded value.

Beispiele

Beispiel #1 Throwing an exception into a generator

<?php
function gen() {
    echo "Foo\n";
    try {
        yield;
    } catch (Exception $e) {
        echo "Exception: {$e->getMessage()}\n";
    }
    echo "Bar\n";
}

$gen = gen();
$gen->rewind();
$gen->throw(new Exception('Test'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Foo
Exception: Test
Bar


Check if the iterator has been closed

  • « Generator::throw
  • Generator::__wakeup »
  • PHP Manual
  • Generator
  • Check if the iterator has been closed

Generator::valid

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::valid — Check if the iterator has been closed

Beschreibung

public Generator::valid ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns false if the iterator has been closed. Otherwise returns true.


Serialize callback

  • « Generator::valid
  • WeakReference »
  • PHP Manual
  • Generator
  • Serialize callback

Generator::__wakeup

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::__wakeup — Serialize callback

Beschreibung

public Generator::__wakeup ( ) : void

Throws an exception as generators can't be serialized.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The WeakReference class

(PHP 7 >= 7.4.0)

Einführung

Weak references allow the programmer to retain a reference to an object which does not prevent the object from being destroyed. They are useful for implementing cache like structures.

Hinweis:

The class WeakReference is not to be confused with the class WeakRef of the Weakref extension.

WeakReferences cannot be serialized.

Klassenbeschreibung

WeakReference {
/* Methoden */
public __construct ( )
public static create ( object $referent ) : WeakReference
public get ( ) : object|null
}

WeakReference Examples

Beispiel #1 Basic WeakReference Usage

<?php
$obj = new stdClass;
$weakref = WeakReference::create($obj);
var_dump($weakref->get());
unset($obj);
var_dump($weakref->get());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#1 (0) {
}
NULL

Inhaltsverzeichnis

  • WeakReference::__construct — Constructor that disallows instantiation
  • WeakReference::create — Create a new weak reference
  • WeakReference::get — Get a weakly referenced Object


Constructor that disallows instantiation

  • « WeakReference
  • WeakReference::create »
  • PHP Manual
  • WeakReference
  • Constructor that disallows instantiation

WeakReference::__construct

(PHP 7 >= 7.4.0)

WeakReference::__construct — Constructor that disallows instantiation

Beschreibung

public WeakReference::__construct ( )

This method exists only to disallow instantiation of the WeakReference class. Weak references are to be instantiated with the factory method WeakReference::create().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Siehe auch

  • WeakReference::create() - Create a new weak reference


Create a new weak reference

  • « WeakReference::__construct
  • WeakReference::get »
  • PHP Manual
  • WeakReference
  • Create a new weak reference

WeakReference::create

(PHP 7 >= 7.4.0)

WeakReference::create — Create a new weak reference

Beschreibung

public static WeakReference::create ( object $referent ) : WeakReference

Creates a new WeakReference.

Parameter-Liste

referent

The object to be weakly referenced.

Rückgabewerte

Returns the freshly instantiated object.


Get a weakly referenced Object

  • « WeakReference::create
  • Kontextoptionen und -parameter »
  • PHP Manual
  • WeakReference
  • Get a weakly referenced Object

WeakReference::get

(PHP 7 >= 7.4.0)

WeakReference::get — Get a weakly referenced Object

Beschreibung

public WeakReference::get ( ) : object|null

Gets a weakly referenced object. If the object has already been destroyed, null is returned.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the referenced Objekt, or null if the object has been destroyed.


Kontextoptionen und -parameter

PHP bietet eine Menge von Kontextoptionen und -parametern, die in Zusammenhang mit allen Dateisystem- und Streamwrappern genutzt werden können. Ein Kontext wird mit stream_context_create() erzeugt. Optionen werden mit stream_context_set_option() gesetzt und Parameter mit stream_context_set_params().

Inhaltsverzeichnis

  • Socket context options — Socket context option listing
  • HTTP context options — HTTP context option listing
  • FTP-Kontextoptionen — Liste der FTP-Kontextoptionen
  • SSL-Kontext-Optionen — Liste der SSL-Kontext-Optionen
  • CURL Kontextoptionen — Liste der CURL Kontextoptionen
  • Phar Kontextoptionen — Liste der Phar Kontextoptionen
  • MongoDB context options — MongoDB context option listing
  • Kontextparameter — Liste der Kontextparameter
  • Zip context options — Zip context option listing


Socket context option listing

  • « Kontextoptionen und -parameter
  • HTTP context options »
  • PHP Manual
  • Kontextoptionen und -parameter
  • Socket context option listing

Socket context options

Socket context options — Socket context option listing

Beschreibung

Socket context options are available for all wrappers that work over sockets, like tcp, http and ftp.

Optionen

bindto

Used to specify the IP address (either IPv4 or IPv6) and/or the port number that PHP will use to access the network. The syntax is ip:port for IPv4 addresses, and [ip]:port for IPv6 addresses. Setting the IP or the port to 0 will let the system choose the IP and/or port.

Hinweis:

As FTP creates two socket connections during normal operation, the port number cannot be specified using this option.

backlog

Used to limit the number of outstanding connections in the socket's listen queue.

Hinweis:

This is only applicable to stream_socket_server().

ipv6_v6only

Overrides the OS default regarding mapping IPv4 into IPv6.

Hinweis:

This is important in particular when trying to listen on IPv4 addresses separately while there exists a binding on [::].

This is only applicable to stream_socket_server().

so_reuseport

Allows multiple bindings to a same ip:port pair, even from separate processes.

Hinweis:

This is only applicable to stream_socket_server().

so_broadcast

Enables sending and receiving data to/from broadcast addresses.

Hinweis:

This is only applicable to stream_socket_server().

tcp_nodelay

Setting this option to true will set SOL_TCP,NO_DELAY=1 appropriately, thus disabling the TCP Nagle algorithm.

Changelog

Version | Beschreibung
7.1.0 | Added tcp_nodelay.
7.0.1 | Added ipv6_v6only.

Beispiele

Beispiel #1 Basic bindto usage example

<?php
// connect to the internet using the '192.168.0.100' IP
$opts = array(
    'socket' => array(
        'bindto' => '192.168.0.100:0',
    ),
);

// connect to the internet using the '192.168.0.100' IP and port '7000'
$opts = array(
    'socket' => array(
        'bindto' => '192.168.0.100:7000',
    ),
);

// connect to the internet using the '2001:db8::1' IPv6 address
// and port '7000'
$opts = array(
    'socket' => array(
        'bindto' => '[2001:db8::1]:7000',
    ),
);

// connect to the internet using port '7000'
$opts = array(
    'socket' => array(
        'bindto' => '0:7000',
    ),
);

// create the context...
$context = stream_context_create($opts);

// ...and use it to fetch the data
echo file_get_contents('http://www.example.com', false, $context);

?>


HTTP context option listing

  • « Socket context options
  • FTP-Kontextoptionen »
  • PHP Manual
  • Kontextoptionen und -parameter
  • HTTP context option listing

HTTP context options

HTTP context options — HTTP context option listing

Beschreibung

Context options for http:// and https:// transports.

Optionen

method string

GET, POST, or any other HTTP method supported by the remote server.

Defaults to GET.

header array or string

Additional headers to be sent during request. Values in this option will override other values (such as User-agent:, Host:, and Authentication:), even when following Location: redirects. Thus it is not recommended to set a Host: header, if follow_location is enabled.

user_agent string

Value to send with User-Agent: header. This value will only be used if user-agent is not specified in the header context option above.

By default the user_agent php.ini setting is used.

content string

Additional data to be sent after the headers. Typically used with POST or PUT requests.

proxy string

URI specifying address of proxy server. (e.g. tcp://proxy.example.com:5100).

request_fulluri bool

When set to true, the entire URI will be used when constructing the request. (i.e. GET http://www.example.com/path/to/file.html HTTP/1.0). While this is a non-standard request format, some proxy servers require it.

Defaults to false.

follow_location int

Follow Location header redirects. Set to 0 to disable.

Defaults to 1.

max_redirects int

The max number of redirects to follow. Value 1 or less means that no redirects are followed.

Defaults to 20.

protocol_version float

HTTP protocol version.

Defaults to 1.0.

timeout float

Read timeout in seconds, specified by a float (e.g. 10.5).

By default the default_socket_timeout php.ini setting is used.

ignore_errors bool

Fetch the content even on failure status codes.

Defaults to false.

Beispiele

Beispiel #1 Fetch a page and send POST data

<?php

$postdata = http_build_query(
    array(
        'var1' => 'some content',
        'var2' => 'doh'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

?>

Beispiel #2 Ignore redirects but fetch headers and content

<?php

$url = "http://www.example.org/header.php";

$opts = array('http' =>
    array(
        'method' => 'GET',
        'max_redirects' => '0',
        'ignore_errors' => '1'
    )
);

$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);

// header information as well as meta data
// about the stream
var_dump(stream_get_meta_data($stream));

// actual data at $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>

Anmerkungen

Hinweis: Underlying socket stream context options
Additional context options may be supported by the underlying transport For http:// streams, refer to context options for the tcp:// transport. For https:// streams, refer to context options for the ssl:// transport.

Hinweis: HTTP status line
When this stream wrapper follows a redirect, the wrapper_data returned by stream_get_meta_data() might not necessarily contain the HTTP status line that actually applies to the content data at index 0.

array (
  'wrapper_data' =>
  array (
    0 => 'HTTP/1.0 301 Moved Permanently',
    1 => 'Cache-Control: no-cache',
    2 => 'Connection: close',
    3 => 'Location: http://example.com/foo.jpg',
    4 => 'HTTP/1.1 200 OK',
    ...
The first request returned a 301 (permanent redirect), so the stream wrapper automatically followed the redirect to get a 200 response (index = 4).

Siehe auch

  • http://
  • Socket context options
  • SSL-Kontext-Optionen


Liste der FTP-Kontextoptionen

  • « HTTP context options
  • SSL-Kontext-Optionen »
  • PHP Manual
  • Kontextoptionen und -parameter
  • Liste der FTP-Kontextoptionen

FTP-Kontextoptionen

FTP-Kontextoptionen — Liste der FTP-Kontextoptionen

Beschreibung

Kontextoptionen für ftp:// und ftps://.

Optionen

overwrite boolean

Gestattet das Überschreiben bereits existierender Dateien auf einem Server. Hat nur Auswirkungen auf den Schreibmodus (Upload).

Die Standardeinstellung ist false.

resume_pos integer

Dateioffset von dem aus die Übertragung begonnen werden soll. Hat nur Auswirkungen auf den Lesemodus (Download).

Standardwert ist 0 (Dateianfang).

proxy string

Leitet FTP-Anfragen über einen Proxyserver um. Hat nur Auswirkungen auf Lesezugriffe. Beispiel: tcp://squid.example.com:8000.

Changelog

Version | Beschreibung
5.1.0 | proxy wurde hinzugefügt.

Anmerkungen

Hinweis: Kontextoptionen des zugrundeliegenden Socket Streams
Der zugrundeliegende Transportmechanismus kann weitere Optionen zur Verfügung stellen. Für ftp:// Streams siehe hierzu die Optionen des tcp://-Mechanismus, für ftps:// Streams stehen entsprechend die Optionen des ssl://-Mechanismus zur Verfügung.

Siehe auch

  • ftp://
  • Socket context options
  • SSL-Kontext-Optionen


Liste der SSL-Kontext-Optionen

  • « FTP-Kontextoptionen
  • CURL Kontextoptionen »
  • PHP Manual
  • Kontextoptionen und -parameter
  • Liste der SSL-Kontext-Optionen

SSL-Kontext-Optionen

SSL-Kontext-Optionen — Liste der SSL-Kontext-Optionen

Beschreibung

Kontextoptionen für die ssl:// und tls:// Übermittlung.

Optionen

peer_name string

Zu verwendender Peer-Name. Wird dieser Wert nicht gesetzt, so wird der Name anhand des Hostnamen erraten, sobald der Stream geöffnet wird.

verify_peer boolean

Die Überprüfung des verwendeten SSL-Zertifikats ist erforderlich.

Standardmäßig true.

verify_peer_name boolean

Erfordere die Verifikation des Peernamens.

Standardmäßig true.

allow_self_signed boolean

Selbst signifizierte Zerifikate erlauben. Setzt verify_peer voraus.

Standardmäßig false

cafile string

Speicherort der Zertifizierungsstellendatei auf dem lokalen Dateisystem, welche im Zusammenhang mit der verify_peer Option verwendet werden soll, um die Identität der Gegenstelle zu authentifizieren.

capath string

Falls cafile nicht angegeben wurde, oder dort das Zertifikat nicht gefunden wurde, so wird das durch capath angegebene Verzeichnis nach einem passenden Zertifikat durchsucht. capath muss ein korrekt gehashtes Zertifikatsverzeichnis sein.

local_cert string

Pfad zur lokalen Zertifikatsdatei im Dateisystem. Dies muss eine im PEM-Format gespeicherte Datei sein, welche das Zertifikat und den privaten Schlüssel enthält. Optional kann dies die Kette an Herausgeberzertifikaten enthalten. Der private Schlüssel kann ebenfalls in einer eigenen Datei enthalten sein, die durch local_pk angegeben wird.

local_pk string

Pfad zu einer lokalen Datei, die den privaten Schlüssel enthält, falls es unterschiedliche Dateien für Zertifikate (local_cert) und private Schlüssel gibt.

passphrase string

Passphrase mit der die local_cert-Datei gespeichert wurde.

CN_match string

Der erwartete Common Name. PHP wird eine eingeschränkte Prüfung auf Wildcards vornehmen. Wenn der Common Name nicht diesem Wert entspricht, so wird der Verbindungsaufbau fehlschlagen.

Hinweis: Diese Option ist seit PHP 5.6.0 zugunsten von peer_name missbilligt.

verify_depth integer

Abbruch, wenn die Zertifikatskette zu tief ist.

Standardmäßig keine Prüfung.

ciphers string

Setzt die Liste der verfügbaren Verschlüsselungsverfahrenn. Das Format dieser Zeichenkette wird in » ciphers(1) beschrieben.

Standardmäßig auf DEFAULT gesetzt.

capture_peer_cert boolean

Falls dies auf true gesetzt ist, so wird die Kontextoption peer_certificate angelegt, welche das Zertifikat der Gegenstelle enthält.

capture_peer_cert_chain boolean

Falls dies auf true gesetzt ist, so wird die Kontextoption peer_certificate_chain angelegt, welche die Zertifikatskette enthält.

SNI_enabled boolean

Falls dies auf true gesetzt wird, so wird Server Name Indication eingeschaltet. Die Verwendung von SNI erlaubt die Benutzung von mehreren Zertifikaten unter der gleichen IP-Adresse.

SNI_server_name string

Ist dies gesetzt, so wird der angegebene Wert als der Servername für die Server Name Indication verwendet. Ist dieser Wert nicht angegeben, so wird der Server Name anhand des Hostnamens beim Öffnen des Streams geraten.

Hinweis: Diese Option ist seit PHP 5.6.0 zugunsten von peer_name missbilligt.

disable_compression boolean

Wenn dies gesetzt wird, so wird TLS-Komprimierung ausgeschaltet. Dies kann den CRIME-Angriffsvektor entschärfen.

peer_fingerprint string | array

Beendet die Verbindung, wenn der Fingerabdruck des entfernten Zertifikats nicht dem angegebenen Hashwert entspricht.

Wird ein String verwendet, so wird der zu verwendende Hashalgorithmus anhand der Länge der Zeichenkette ermittelt, entweder "md5" (32) oder "sha1" (40).

Wird ein Array verwendet, so geben die Schlüsselnamen den Namen des Hashalgorithmus an, und jeder zugehörige Wert entspricht dem erwarteten Fingerabdruck.

security_level integer

Legt die Sicherheitsstufe fest. Falls nicht angegeben, wird die Standard-Sicherheitsstufe der Bibliothek verwendet. Die Sicherheitsstufen sind in » SSL_CTX_get_security_level(3) beschrieben.

Verfügbar von PHP 7.2.0 und OpenSSL 1.1.0 an.

Changelog

Version | Beschreibung
7.2.0 | security_levels hinzugefügt. Erfordert OpenSSL >= 1.1.0.
5.6.0 | Die Parameter peer_fingerprint und verify_peer_name wurden hinzugefügt. Der Standardwert für verify_peer wurde zu true geändert.
5.4.13 | disable_compression hinzugefügt. Benötigt OpenSSL >= 1.0.0.
5.3.2 | SNI_enabled und SNI_server_name hinzugefügt.

Anmerkungen

Hinweis: Weil ssl:// die den Wrappern https:// und ftps:// zugrunde liegende Übertragungsschicht ist, gelten alle Optionen, die für ssl:// angewendet werden, ebenfalls für https:// und ftps://.

Hinweis: Damit SNI (Server Name Indication) verfügbar ist muss PHP mit OpenSSL 0.9.8j oder neuer kompiliert sein. Die Konstante OPENSSL_TLSEXT_SERVER_NAME kann zur Prüfung, ob SNI verfügbar ist, herangezogen werden.

Siehe auch

  • Socket context options


Liste der CURL Kontextoptionen

  • « SSL-Kontext-Optionen
  • Phar Kontextoptionen »
  • PHP Manual
  • Kontextoptionen und -parameter
  • Liste der CURL Kontextoptionen

CURL Kontextoptionen

CURL Kontextoptionen — Liste der CURL Kontextoptionen

Beschreibung

Die CURL Kontextoptionen sind verfügbar, wenn die CURL-Erweiterung mit Hilfe der Konfigurationsoption --with-curlwrappers kompiliert wurde.

Optionen

method string

GET, POST, oder jede andere vom angesprochenen Server unterstützte HTTP-Methode.

Vorgabewert ist GET.

header string

Zusätzliche Kopfzeilen, die bei einer Anfrage mitgesendet werden sollen. Werte in dieser Option übersteuern andere Werte (wie etwa User-agent:, Host:, und Authentication:).

user_agent string

Der in der User-Agent: Kopfzeile zu übermittelnde Wert

Vorgabewert ist die php.ini-Einstellung user_agent.

content string

Zusätzliche Daten, die nach den Kopfzeilen übermittelt werden sollen. Diese Option wird nicht für GET und HEAD Anfragen verwendet.

proxy string

Eine URI, die die Adresse eines Proxy-Server angibt (z.B. tcp://proxy.example.com:5100).

max_redirects integer

Die Höchstanzahl von Weiterleitungen, denen gefolgt werden soll. 1 oder weniger bedeutet, dass keinen Weiterleitungen gefolgt wird.

Vorgabewert ist 20.

curl_verify_ssl_host boolean

Überprüfe den Host.

Vorgabewert ist false

Hinweis:

Diese Option ist sowohl für die HTTP als auch die FTP-Protokoll-Wrapper verfügbar.

curl_verify_ssl_peer boolean

Die Überprüfung des verwendeten SSL-Zertifikats ist erforderlich.

Vorgabewert ist false

Hinweis:

Diese Option ist sowohl für die HTTP als auch die FTP-Protokoll-Wrapper verfügbar.

Beispiele

Beispiel #1 Hole eine Seite und sende POST-Daten

<?php

$postdata = http_build_query(
    array(
        'var1' => 'etwas Inhalt',
        'var2' => 'autsch'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

?>

Siehe auch

  • Socket context options


Liste der Phar Kontextoptionen

  • « CURL Kontextoptionen
  • MongoDB context options »
  • PHP Manual
  • Kontextoptionen und -parameter
  • Liste der Phar Kontextoptionen

Phar Kontextoptionen

Phar Kontextoptionen — Liste der Phar Kontextoptionen

Beschreibung

Kontextoptionen des phar:// Wrappers.

Optionen

compress int

Eine der Phar Kompressionskonstanten.

metadata mixed

Phar Metadaten, siehe auch Phar::setMetadata().

Siehe auch

  • phar://
  • Phar Stream Wrapper


MongoDB context option listing

  • « Phar Kontextoptionen
  • Kontextparameter »
  • PHP Manual
  • Kontextoptionen und -parameter
  • MongoDB context option listing

MongoDB context options

MongoDB context options — MongoDB context option listing

Beschreibung

Context options for mongodb:// transports.

Optionen

log_cmd_insert callable

A callback function called when inserting a document, see log_cmd_insert().

log_cmd_delete callable

A callback function called when deleting a document, see log_cmd_delete().

log_cmd_update callable

A callback function called when updating a document, see log_cmd_update().

log_write_batch callable

A callback function called when executing a Write Batch, see log_write_batch().

log_reply callable

A callback function called when reading a reply from MongoDB, see log_reply().

log_getmore callable

A callback function called when retrieving more results from a MongoDB cursor, see log_getmore().

log_killcursor callable

A callback function called executing a killcursor opcode, see log_killcursor().

Changelog

Version | Beschreibung
pecl/mongo 1.5.0 | Added Write API Context options

Siehe auch

  • Socket context options
  • SSL-Kontext-Optionen


Liste der Kontextparameter

  • « MongoDB context options
  • Zip context options »
  • PHP Manual
  • Kontextoptionen und -parameter
  • Liste der Kontextparameter

Kontextparameter

Kontextparameter — Liste der Kontextparameter

Beschreibung

Diese Parameter eines Kontextes können mit Hilfe der Funktion stream_context_set_params() gesetzt werden.

Optionen

notification callable

Ein callable, der bei dem Auftreten eines Ereignisses auf einem Stream aufgerufen wird.

Für weitere Informationen siehe auch stream_notification_callback.


Zip context option listing

  • « Kontextparameter
  • Unterstützte Protokolle und Wrapper »
  • PHP Manual
  • Kontextoptionen und -parameter
  • Zip context option listing

Zip context options

Zip context options — Zip context option listing

Beschreibung

Zip context options are available for zip wrappers.

Optionen

password

Used to specify password used for encrypted archive.

Changelog

Version | Beschreibung
PHP 7.2.0, PECL zip 1.14.0 | Added password.

Beispiele

Beispiel #1 Basic password usage example

<?php
// Read encrypted archive
$opts = array(
    'zip' => array(
        'password' => 'secret',
    ),
);
// create the context...
$context = stream_context_create($opts);

// ...and use it to fetch the data
echo file_get_contents('zip://test.zip#test.txt', false, $context);

?>


Unterstützte Protokolle und Wrapper

PHP bietet viele integrierte Wrapper für verschiedene Protokolle im URL-Stil auf die so mit Dateisystem-Funktionen wie fopen(), copy(), file_exists() und filesize() zugegriffen werden. Zusätzlich zu diesen eingebauten Wrappern ist es auch möglich eigene mit Hilfe der stream_wrapper_register() Funktion hinzuzufügen.

Hinweis: Die zur Beschreibung eines Wrappers genutzte URL-Syntax unterstützt nur URLs der Form schema://... mit zwei Schrägstrichen. Die schema:/ und schema: Varianten werden nicht unterstützt.

Inhaltsverzeichnis

  • file:// — Accessing local filesystem
  • http:// — Accessing HTTP(s) URLs
  • ftp:// — Accessing FTP(s) URLs
  • php:// — Accessing various I/O streams
  • zlib:// — Compression Streams
  • data:// — Data (RFC 2397)
  • glob:// — Find pathnames matching pattern
  • phar:// — PHP Archive
  • ssh2:// — Secure Shell 2
  • rar:// — RAR
  • ogg:// — Audio streams
  • expect:// — Process Interaction Streams


Accessing local filesystem

  • « Unterstützte Protokolle und Wrapper
  • http:// »
  • PHP Manual
  • Unterstützte Protokolle und Wrapper
  • Accessing local filesystem

file://

file:// — Accessing local filesystem

Beschreibung

Filesystem is the default wrapper used with PHP and represents the local filesystem. When a relative path is specified (a path which does not begin with /, \, \\, or a Windows drive letter) the path provided will be applied against the current working directory. In many cases this is the directory in which the script resides unless it has been changed. Using the CLI sapi, this defaults to the directory from which the script was called.

With some functions, such as fopen() and file_get_contents(), include_path may be optionally searched for relative paths as well.

Verwendung

  • /path/to/file.ext
  • relative/path/to/file.ext
  • fileInCwd.ext
  • C:/path/to/winfile.ext
  • C:\path\to\winfile.ext
  • \\smbserver\share\path\to\winfile.ext
  • file:///path/to/file.ext

Optionen

Wrapper Summary
Attribute | Supported
Restricted by allow_url_fopen | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | Yes
Supports stat() | Yes
Supports unlink() | Yes
Supports rename() | Yes
Supports mkdir() | Yes
Supports rmdir() | Yes


Accessing HTTP(s) URLs

  • « file://
  • ftp:// »
  • PHP Manual
  • Unterstützte Protokolle und Wrapper
  • Accessing HTTP(s) URLs

http://

https://

http:// -- https:// — Accessing HTTP(s) URLs

Beschreibung

Allows read-only access to files/resources via HTTP 1.0, using the HTTP GET method. A Host: header is sent with the request to handle name-based virtual hosts. If you have configured a user_agent string using your php.ini file or the stream context, it will also be included in the request.

The stream allows access to the body of the resource; the headers are stored in the $http_response_header variable.

If it's important to know the URL of the resource where your document came from (after all redirects have been processed), you'll need to process the series of response headers returned by the stream.

The from directive will be used for the From: header if set and not overwritten by the Kontextoptionen und -parameter.

Verwendung

  • http://example.com
  • http://example.com/file.php?var1=val1&var2=val2
  • http://user:password@example.com
  • https://example.com
  • https://example.com/file.php?var1=val1&var2=val2
  • https://user:password@example.com

Optionen

Wrapper Summary
Attribute | Supported
Restricted by allow_url_fopen | Yes
Allows Reading | Yes
Allows Writing | No
Allows Appending | No
Allows Simultaneous Reading and Writing | N/A
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Beispiele

Beispiel #1 Detecting which URL we ended up on after redirects

<?php
$url = 'http://www.example.com/redirecting_page.php';

$fp = fopen($url, 'r');

$meta_data = stream_get_meta_data($fp);
foreach ($meta_data['wrapper_data'] as $response) {

    /* Were we redirected? */
    if (strtolower(substr($response, 0, 10)) == 'location: ') {

        /* update $url with where we were redirected to */
        $url = substr($response, 10);
    }

}

?>

Anmerkungen

Hinweis: HTTPS is only supported when the openssl extension is enabled.

HTTP connections are read-only; writing data or copying files to an HTTP resource is not supported.

Sending POST and PUT requests, for example, can be done with the help of HTTP Contexts.

Siehe auch

  • HTTP context options
  • $http_response_header
  • stream_get_meta_data() - Retrieves header/meta data from streams/file pointers


Accessing FTP(s) URLs

  • « http://
  • php:// »
  • PHP Manual
  • Unterstützte Protokolle und Wrapper
  • Accessing FTP(s) URLs

ftp://

ftps://

ftp:// -- ftps:// — Accessing FTP(s) URLs

Beschreibung

Allows read access to existing files and creation of new files via FTP. If the server does not support passive mode ftp, the connection will fail.

You can open files for either reading or writing, but not both simultaneously. If the remote file already exists on the ftp server and you attempt to open it for writing but have not specified the context option overwrite, the connection will fail. If you need to overwrite existing files over ftp, specify the overwrite option in the context and open the file for writing. Alternatively, you can use the FTP extension.

If you have set the from directive in php.ini, then this value will be sent as the anonymous FTP password.

Verwendung

  • ftp://example.com/pub/file.txt
  • ftp://user:password@example.com/pub/file.txt
  • ftps://example.com/pub/file.txt
  • ftps://user:password@example.com/pub/file.txt

Optionen

Wrapper Summary
Attribute | Supported
Restricted by allow_url_fopen | Yes
Allows Reading | Yes
Allows Writing | Yes (new files/existing files with overwrite)
Allows Appending | Yes
Allows Simultaneous Reading and Writing | No
Supports stat() | filesize(), filemtime(), filetype(), file_exists(), is_file(), and is_dir() elements only.
Supports unlink() | Yes
Supports rename() | Yes
Supports mkdir() | Yes
Supports rmdir() | Yes

Anmerkungen

Hinweis:

FTPS is only supported when the openssl extension is enabled.

If the server does not support SSL, then the connection falls back to regular unencrypted ftp.

Hinweis: Appending
Files may be appended via the ftp:// URL wrapper.

Siehe auch

  • FTP-Kontextoptionen


Accessing various I/O streams

  • « ftp://
  • zlib:// »
  • PHP Manual
  • Unterstützte Protokolle und Wrapper
  • Accessing various I/O streams

php://

php:// — Accessing various I/O streams

Beschreibung

PHP provides a number of miscellaneous I/O streams that allow access to PHP's own input and output streams, the standard input, output and error file descriptors, in-memory and disk-backed temporary file streams, and filters that can manipulate other file resources as they are read from and written to.

php://stdin, php://stdout and php://stderr

php://stdin, php://stdout and php://stderr allow direct access to the corresponding input or output stream of the PHP process. The stream references a duplicate file descriptor, so if you open php://stdin and later close it, you close only your copy of the descriptor-the actual stream referenced by STDIN is unaffected. Note that PHP exhibited buggy behavior in this regard until PHP 5.2.1. It is recommended that you simply use the constants STDIN, STDOUT and STDERR instead of manually opening streams using these wrappers.

php://stdin is read-only, whereas php://stdout and php://stderr are write-only.

php://input

php://input is a read-only stream that allows you to read raw data from the request body. In the case of POST requests, it is preferable to use php://input instead of $HTTP_RAW_POST_DATA as it does not depend on special php.ini directives. Moreover, for those cases where $HTTP_RAW_POST_DATA is not populated by default, it is a potentially less memory intensive alternative to activating always_populate_raw_post_data. php://input is not available with enctype="multipart/form-data".

php://output

php://output is a write-only stream that allows you to write to the output buffer mechanism in the same way as print and echo.

php://fd

php://fd allows direct access to the given file descriptor. For example, php://fd/3 refers to file descriptor 3.

php://memory and php://temp

php://memory and php://temp are read-write streams that allow temporary data to be stored in a file-like wrapper. The only difference between the two is that php://memory will always store its data in memory, whereas php://temp will use a temporary file once the amount of data stored hits a predefined limit (the default is 2 MB). The location of this temporary file is determined in the same way as the sys_get_temp_dir() function.

The memory limit of php://temp can be controlled by appending /maxmemory:NN, where NN is the maximum amount of data to keep in memory before using a temporary file, in bytes.

php://filter

php://filter is a kind of meta-wrapper designed to permit the application of filters to a stream at the time of opening. This is useful with all-in-one file functions such as readfile(), file(), and file_get_contents() where there is otherwise no opportunity to apply a filter to the stream prior the contents being read.

The php://filter target takes the following parameters as part of its path. Multiple filter chains can be specified on one path. Please refer to the examples for specifics on using these parameters.

php://filter parameters
Name | Description
resource=<stream to be filtered> | This parameter is required. It specifies the stream that you would like to filter.
read=<filter list to apply to read chain> | This parameter is optional. One or more filter names can be provided here, separated by the pipe character (|).
write=<filter list to apply to write chain> | This parameter is optional. One or more filter names can be provided here, separated by the pipe character (|).
<filter list to apply to both chains> | Any filter lists which are not prefixed by read= or write= will be applied to both the read and write chains as appropriate.

Optionen

Wrapper Summary (for php://filter, refer to the summary of the wrapper being filtered)
Attribute | Supported
Restricted by allow_url_fopen | No
Restricted by allow_url_include | php://input, php://stdin, php://memory and php://temp only.
Allows Reading | php://stdin, php://input, php://fd, php://memory and php://temp only.
Allows Writing | php://stdout, php://stderr, php://output, php://fd, php://memory and php://temp only.
Allows Appending | php://stdout, php://stderr, php://output, php://fd, php://memory and php://temp only. (Equivalent to writing)
Allows Simultaneous Reading and Writing | php://fd, php://memory and php://temp only.
Supports stat() | No. However, php://memory and php://temp support fstat().
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No
Supports stream_select() | php://stdin, php://stdout, php://stderr, php://fd and php://temp only.

Beispiele

Beispiel #1 php://temp/maxmemory

This optional parameter allows setting the memory limit before php://temp starts using a temporary file.

<?php
// Set the limit to 5 MB.
$fiveMBs = 5 * 1024 * 1024;
$fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');

fputs($fp, "hello\n");

// Read what we have written.
rewind($fp);
echo stream_get_contents($fp);
?>

Beispiel #2 php://filter/resource=<stream to be filtered>

This parameter must be located at the end of your php://filter specification and should point to the stream which you want filtered.

<?php
/* This is equivalent to simply:
  readfile("http://www.example.com");
  since no filters are actually specified */

readfile("php://filter/resource=http://www.example.com");
?>

Beispiel #3 php://filter/read=<filter list to apply to read chain>

This parameter takes one or more filternames separated by the pipe character |.

<?php
/* This will output the contents of
  www.example.com entirely in uppercase */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");

/* This will do the same as above
  but will also ROT13 encode it */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?>

Beispiel #4 php://filter/write=<filter list to apply to write chain>

This parameter takes one or more filternames separated by the pipe character |.

<?php
/* This will filter the string "Hello World"
  through the rot13 filter, then write to
  example.txt in the current directory */
file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
?>

Beispiel #5 php://memory and php://temp are not reusable

php://memory and php://temp are not reusable, i.e. after the streams have been closed there is no way to refer to them again.

file_put_contents('php://memory', 'PHP');
echo file_get_contents('php://memory'); // prints nothing


Compression Streams

  • « php://
  • data:// »
  • PHP Manual
  • Unterstützte Protokolle und Wrapper
  • Compression Streams

zlib://

bzip2://

zip://

zlib:// -- bzip2:// -- zip:// — Compression Streams

Beschreibung

compress.zlib:// and compress.bzip2://

zlib: works like gzopen(), except that the stream can be used with fread() and the other filesystem functions. This is deprecated due to ambiguities with filenames containing ':' characters; use compress.zlib:// instead.

compress.zlib:// and compress.bzip2:// are equivalent to gzopen() and bzopen() respectively, and operate even on systems that do not support fopencookie.

ZIP extension registers zip: wrapper. As of PHP 7.2.0 and libzip 1.2.0+, support for the passwords for encrypted archives were added, allowing passwords to be supplied by stream contexts. Passwords can be set using the 'password' stream context option.

Verwendung

  • compress.zlib://file.gz
  • compress.bzip2://file.bz2
  • zip://archive.zip#dir/file.txt

Optionen

Wrapper Summary
Attribute | Supported
Restricted by allow_url_fopen | No
Allows Reading | Yes
Allows Writing | Yes (except zip://)
Allows Appending | Yes (except zip://)
Allows Simultaneous Reading and Writing | No
Supports stat() | No, use the normal file:// wrapper to stat compressed files.
Supports unlink() | No, use the normal file:// wrapper to unlink compressed files.
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No


Data (RFC 2397)

  • « zlib://
  • glob:// »
  • PHP Manual
  • Unterstützte Protokolle und Wrapper
  • Data (RFC 2397)

data://

data:// — Data (RFC 2397)

Beschreibung

The data: (» RFC 2397) stream wrapper.

Verwendung

  • data://text/plain;base64,

Optionen

Wrapper Summary
Attribute | Supported
Restricted by allow_url_fopen | Yes
Restricted by allow_url_include | Yes
Allows Reading | Yes
Allows Writing | No
Allows Appending | No
Allows Simultaneous Reading and Writing | No
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Beispiele

Beispiel #1 Print data:// contents

<?php
// prints "I love PHP"
echo file_get_contents('data://text/plain;base64,SSBsb3ZlIFBIUAo=');
?>

Beispiel #2 Fetch the media type

<?php
$fp   = fopen('data://text/plain;base64,', 'r');
$meta = stream_get_meta_data($fp);

// prints "text/plain"
echo $meta['mediatype'];
?>


Find pathnames matching pattern

  • « data://
  • phar:// »
  • PHP Manual
  • Unterstützte Protokolle und Wrapper
  • Find pathnames matching pattern

glob://

glob:// — Find pathnames matching pattern

Beschreibung

The glob: stream wrapper.

Verwendung

  • glob://

Optionen

Wrapper Summary
Attribute | Supported
Restricted by allow_url_fopen | No
Restricted by allow_url_include | No
Allows Reading | No
Allows Writing | No
Allows Appending | No
Allows Simultaneous Reading and Writing | No
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Beispiele

Beispiel #1 Basic usage

<?php
// Loop over all *.php files in ext/spl/examples/ directory
// and print the filename and its size
$it = new DirectoryIterator("glob://ext/spl/examples/*.php");
foreach($it as $f) {
    printf("%s: %.1FK\n", $f->getFilename(), $f->getSize()/1024);
}
?>
tree.php: 1.0K
findregex.php: 0.6K
findfile.php: 0.7K
dba_dump.php: 0.9K
nocvsdir.php: 1.1K
phar_from_dir.php: 1.0K
ini_groups.php: 0.9K
directorytree.php: 0.9K
dba_array.php: 1.1K
class_tree.php: 1.8K


PHP Archive

  • « glob://
  • ssh2:// »
  • PHP Manual
  • Unterstützte Protokolle und Wrapper
  • PHP Archive

phar://

phar:// — PHP Archive

Beschreibung

The phar:// stream wrapper. See Phar stream wrapper for a detailed description.

Verwendung

  • phar://

Optionen

Wrapper Summary
Attribute | Supported
Restricted by allow_url_fopen | No
Restricted by allow_url_include | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | No
Allows Simultaneous Reading and Writing | Yes
Supports stat() | Yes
Supports unlink() | Yes
Supports rename() | Yes
Supports mkdir() | Yes
Supports rmdir() | Yes

Siehe auch

  • Phar Kontextoptionen


Secure Shell 2

  • « phar://
  • rar:// »
  • PHP Manual
  • Unterstützte Protokolle und Wrapper
  • Secure Shell 2

ssh2://

ssh2:// — Secure Shell 2

Beschreibung

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// (PECL)

Hinweis: This wrapper is not enabled by default
In order to use the ssh2.*:// wrappers you must install the » SSH2 extension available from » PECL.

In addition to accepting traditional URI login details, the ssh2 wrappers will also reuse open connections by passing the connection resource in the host portion of the URL.

Verwendung

  • ssh2.shell://user:pass@example.com:22/xterm
  • ssh2.exec://user:pass@example.com:22/usr/local/bin/somecmd
  • ssh2.tunnel://user:pass@example.com:22/192.168.0.1:14
  • ssh2.sftp://user:pass@example.com:22/path/to/filename

Optionen

Wrapper Summary
Attribute | ssh2.shell | ssh2.exec | ssh2.tunnel | ssh2.sftp | ssh2.scp
Restricted by allow_url_fopen | Yes | Yes | Yes | Yes | Yes
Allows Reading | Yes | Yes | Yes | Yes | Yes
Allows Writing | Yes | Yes | Yes | Yes | No
Allows Appending | No | No | No | Yes (When supported by server) | No
Allows Simultaneous Reading and Writing | Yes | Yes | Yes | Yes | No
Supports stat() | No | No | No | Yes | No
Supports unlink() | No | No | No | Yes | No
Supports rename() | No | No | No | Yes | No
Supports mkdir() | No | No | No | Yes | No
Supports rmdir() | No | No | No | Yes | No

Context options
Name | Usage | Default
session | Preconnected ssh2 resource to be reused |
sftp | Preallocated sftp resource to be reused |
methods | Key exchange, hostkey, cipher, compression, and MAC methods to use |
callbacks |  |
username | Username to connect as |
password | Password to use with password authentication |
pubkey_file | Name of public key file to use for authentication |
privkey_file | Name of private key file to use for authentication |
env | Associate array of environment variables to set |
term | Terminal emulation type to request when allocating a pty |
term_width | Width of terminal requested when allocating a pty |
term_height | Height of terminal requested when allocating a pty |
term_units | Units to use with term_width and term_height | SSH2_TERM_UNIT_CHARS

Beispiele

Beispiel #1 Opening a stream from an active connection

<?php
$session = ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file($session, 'username', '/home/username/.ssh/id_rsa.pub',
                                            '/home/username/.ssh/id_rsa', 'secret');
$stream = fopen("ssh2.tunnel://$session/remote.example.com:1234", 'r');
?>

Beispiel #2 This $session variable must be kept available!

In order to use the ssh2.*://$session wrappers you must keep the $session resource variable. The code below will not have the desired effect:

<?php
$session = ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file($session, 'username', '/home/username/.ssh/id_rsa.pub',
                                            '/home/username/.ssh/id_rsa', 'secret');
$connection_string = "ssh2.sftp://$session/";
unset($session);
$stream = fopen($connection_string . "path/to/file", 'r');
?>

unset() closes the session, because $connection_string does not hold a reference to the $session variable, just a string cast derived from it. This also happens when the unset() is implicit because of leaving scope (like in a function).


RAR

  • « ssh2://
  • ogg:// »
  • PHP Manual
  • Unterstützte Protokolle und Wrapper
  • RAR

rar://

rar:// — RAR

Beschreibung

The wrapper takes the url encoded path to the RAR archive (relative or absolute), an optional asterik (*), an optional number sign (#) and an optional url encoded entry name, as stored in the archive. Specifying an entry name requires the number sign; a leading forward slash in the entry name is optional.

This wrapper can open both files and directories. When opening directories, the asterisk sign forces the directory entries names to be returned unencoded. If it's not specified, they will be returned url encoded – the reason for this is to allow the wrapper to be correctly used with built-in functionality like the RecursiveDirectoryIterator in the presence of file names that seem like url encoded data.

If the pound sign and the entry name part are not included, the root of the archive will be displayed. This differs from regular directories in that the resulting stream will not contain information such as the modification time, as the root directory is not stored in an individual entry in the archive. The usage of the wrapper with RecursiveDirectoryIterator requires the number sign to be included in the URL when accessing the root, so that the URLs of the children may be constructed correctly.

Hinweis: This wrapper is not enabled by default
In order to use the rar:// wrapper, you must install the » rar extension available from » PECL.

rar:// Available since PECL rar 3.0.0

Verwendung

  • rar://<url encoded archive name>[*][#[<url encoded entry name>]]

Optionen

Wrapper Summary
Attribute | Supported
Restricted by allow_url_fopen | No
Restricted by allow_url_include | No
Allows Reading | Yes
Allows Writing | No
Allows Appending | No
Allows Simultaneous Reading and Writing | No
Supports stat() | Yes
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Context options
Name | Usage | Default
open_password | The password used to encrypt the headers of the archive, if any. WinRAR will encrypt all the files with the same password as the headers password when the later is present, so for archives with encrypted headers, file_password will be ignored. |
file_password | The password used to encrypt a file, if any. If the headers are also encrypted, this option will be ignored in favor of open_password. The reason there are two options is to cover the possibility of supporting archives with different headers and file passwords, should those archives arise. Note that if the archive does not have its headers encrypted, open_password will be ignored and this option must be used instead. |
volume_callback | A callback to determine the path of missing volumes. See RarArchive::open() for more information. |

Beispiele

Beispiel #1 Traversing a RAR archive

<?php

class MyRecDirIt extends RecursiveDirectoryIterator {
    function current() {
        return rawurldecode($this->getSubPathName()) .
            (is_dir(parent::current())?" [DIR]":"");
    }
}

$f = "rar://" . rawurlencode(dirname(__FILE__)) .
    DIRECTORY_SEPARATOR . 'dirs_and_extra_headers.rar#';

$it = new RecursiveTreeIterator(new MyRecDirIt($f));

foreach ($it as $s) {
    echo $s, "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

|-allow_everyone_ni [DIR]
|-file1.txt
|-file2_?.txt
|-with_streams.txt
\-? [DIR]
  |-?\%2Fempty%2E [DIR]
  | \-?\%2Fempty%2E\file7.txt
  |-?\empty [DIR]
  |-?\file3.txt
  |-?\file4_?.txt
  \-?\?_2 [DIR]
    |-?\?_2\file5.txt
    \-?\?_2\file6_?.txt

Beispiel #2 Opening an encrypted file (header encryption)

<?php
$stream = fopen("rar://" .
    rawurlencode(dirname(__FILE__)) . DIRECTORY_SEPARATOR .
    'encrypted_headers.rar' . '#encfile1.txt', "r", false,
    stream_context_create(
        array(
            'rar' =>
                array(
                    'open_password' => 'samplepassword'
                )
            )
        )
    );
var_dump(stream_get_contents($stream));
/* creation and last access date is opt-in in WinRAR, hence most
 * files don't have them */
var_dump(fstat($stream));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(26) "Encrypted file 1 contents."
Array
(
    [0] => 0
    [1] => 0
    [2] => 33206
    [3] => 1
    [4] => 0
    [5] => 0
    [6] => 0
    [7] => 26
    [8] => 0
    [9] => 1259550052
    [10] => 0
    [11] => -1
    [12] => -1
    [dev] => 0
    [ino] => 0
    [mode] => 33206
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 26
    [atime] => 0
    [mtime] => 1259550052
    [ctime] => 0
    [blksize] => -1
    [blocks] => -1
)


Audio streams

  • « rar://
  • expect:// »
  • PHP Manual
  • Unterstützte Protokolle und Wrapper
  • Audio streams

ogg://

ogg:// — Audio streams

Beschreibung

Files opened for reading via the ogg:// wrapper are treated as compressed audio encoded using the OGG/Vorbis codec. Similarly, files opened for writing or appending via the ogg:// wrapper are written as compressed audio data. stream_get_meta_data(), when used on an OGG/Vorbis file opened for reading will return various details about the stream including the vendor tag, any included comments, the number of channels, the sampling rate, and the encoding rate range described by: bitrate_lower, bitrate_upper, bitrate_nominal, and bitrate_window.

ogg:// (PECL)

Hinweis: This wrapper is not enabled by default
In order to use the ogg:// wrapper you must install the » OGG/Vorbis extension available from » PECL.

Verwendung

  • ogg://soundfile.ogg
  • ogg:///path/to/soundfile.ogg
  • ogg://http://www.example.com/path/to/soundstream.ogg

Optionen

Wrapper Summary
Attribute | Supported
Restricted by allow_url_fopen | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | No
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Context options
Name | Usage | Default | Mode
pcm_mode | PCM encoding to apply while reading, one of: OGGVORBIS_PCM_U8, OGGVORBIS_PCM_S8, OGGVORBIS_PCM_U16_BE, OGGVORBIS_PCM_S16_BE, OGGVORBIS_PCM_U16_LE, and OGGVORBIS_PCM_S16_LE. (8 vs 16 bit, signed or unsigned, big or little endian) | OGGVORBIS_PCM_S16_LE | Read
rate | Sampling rate of input data, expressed in Hz | 44100 | Write/Append
bitrate | When given as an integer, the fixed bitrate at which to encode. (16000 to 131072) When given as a float, the variable bitrate quality to use. (-1.0 to 1.0) | 128000 | Write/Append
channels | The number of audio channels to encode, typically 1 (Mono), or 2 (Stereo). May range as high as 16. | 2 | Write/Append
comments | An array of string values to encode into the track header. |  | Write/Append

Beispiele


Process Interaction Streams

  • « ogg://
  • Sicherheit »
  • PHP Manual
  • Unterstützte Protokolle und Wrapper
  • Process Interaction Streams

expect://

expect:// — Process Interaction Streams

Beschreibung

Streams opened via the expect:// wrapper provide access to process'es stdio, stdout and stderr via PTY.

Hinweis: This wrapper is not enabled by default
In order to use the expect:// wrapper you must install the » Expect extension available from » PECL.

expect:// (PECL)

Verwendung

  • expect://command

Optionen

Wrapper Summary
Attribute | Supported
Restricted by allow_url_fopen | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | No
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Beispiele


Sicherheit

  • Einführung
  • Allgemeine Überlegungen
  • Installiert als CGI-Version
    • Mögliche Angriffe
    • Fall 1: Nur öffentliche Dateien vorhanden
    • Fall 2: --enable-force-cgi-redirect benutzen
    • Fall 3: doc_root oder user_dir festlegen
    • Fall 4: PHP-Parser außerhalb des Webverzeichnisbaums
  • Verwendung als Apache-Modul
  • Session Sicherheit
  • Dateisystem - Sicherheit
    • Probleme im Zusammenhang mit Nullbytes
  • Datenbank-Sicherheit
    • Datenbanken entwerfen
    • Mit der Datenbank verbinden
    • Verschlüsseltes Speichermodell
    • SQL-Injection
  • Fehlerbehandlung
  • Vom Nutzer übermittelte Daten
  • PHP verstecken
  • Aktuell bleiben


Einführung

PHP ist eine mächtige Sprache, und der Interpreter, der in einen Webserver als Modul oder als separate CGI-Version eingebunden werden kann, kann auf Dateien zugreifen, Befehle ausführen und Netzwerkverbindungen zu einem Server herstellen. Diese Eigenschaften können einen Webserver unsicher machen, wenn man es bei den Voreinstellungen belässt. PHP wurde besonders dafür entwickelt, um eine sicherere Sprache als Perl oder C für die Erstellung von CGI-Programmen bereitzustellen. Mit der richtigen Wahl der Einstellungen beim Kompilieren und zur Laufzeit bietet PHP genau die Kombination aus Freiheit und Sicherheit, die gerade benötigt wird.

Da es sehr viele verschiedene Möglichkeiten gibt, PHP zu nutzen, gibt es viele Konfigurationseinstellungen, die das Verhalten von PHP beeinflussen. Eine große Auswahl an Einstellungen garantiert, dass man PHP für viele Zwecke einsetzen kann. Allerdings bedeutet das auch, dass es Kombinationen gibt, die eine Installation mit nur ungenügender Sicherheit zur Folge haben.

Die Flexibilität der Konfiguration konkurriert mit der Flexibilität in der Programmierung. Mit PHP können komplette Server-Applikationen mit allen Möglichkeiten eines Shell Benutzers erstellt werden, oder auch nur einfache Server-Side-Includes mit einem minimalen Risiko in einer streng kontrollierten Umgebung. Wie die Umgebung erstellt wird, und wie sicher diese ist, ist zu einem großen Teil die Sache des PHP-Entwicklers.

Dieses Kapitel beginnt mit einigen generellen Ratschlägen zur Sicherheit, erklärt die verschiedenen Kombinationen der Konfigurationseinstellungen und unter welchen Gegebenheiten sie sicher genutzt werden können, und beschreibt verschiedene Überlegungen zur Programmierung für verschiedene Sicherheitsstufen.


Allgemeine Überlegungen

Ein komplett sicheres System ist praktisch ein Ding der Unmöglichkeit, weshalb ein unter Sicherheitsprofis oft genutzter Ansatz ist, einen Mittelweg zwischen Risiko und Verwendbarkeit zu finden. Wenn jede von einem Benutzer übermittelte Variable zwei Formen von biometrischer Prüfung (wie z.B. ein Scan der Netzhaut und ein Fingerabdruck) verlangen würde, wäre eine extrem hohe Ebene der Verantwortlichkeit erreicht. Ein sehr komplexes Formular auszufüllen würde auch eine halbe Stunde in Anspruch nehmen, die Benutzer dazu ermuntern könnte, Wege zur Umgehung der Sicherheitsmaßnahmen zu suchen.

Die beste Sicherheit ist oft unaufdringlich genug, um den Anforderungen zu entsprechen, ohne den Benutzer an seiner Arbeit zu hindern oder den Code-Autor mit übertriebener Komplexität zu überlasten. Tatsächlich sind einige Sicherheitsangriffe nur die Folge von allzu strengen Sicherheitsmaßnahmen, was mit der Zeit nur zu deren Unterminierung führt.

Eine Phrase, die es wert ist, sich an sie zu erinnern: Ein System ist nur so gut wie das schwächste Glied in der Kette. Wenn alle Transaktionen mittels Zeit, Ort, Transaktionstyp, etc. streng mitprotokolliert werden, der Benutzer aber nur mittels eines einzigen Cookies verifiziert wird, lässt die Zuverlässigkeit für die Bindung des Benutzers an das Transaktions-Log bedrohlich nach.

Denken Sie während der Tests daran, dass Sie selbst für die einfachsten Seiten nicht alle Möglichkeiten testen können. Der von Ihnen vielleicht erwartete Input wird zu dem eines verstimmten Mitarbeiters oder eines Crackers, der Monate Zeit hat, oder einer Katze, die über die Tastatur läuft, in keinerlei Zusammenhang stehen. Deshalb betrachten Sie Ihren Code am Besten aus der logischen Perspektive, um zu erkennen, wo unerwartete Daten eingebracht werden können und fragen sich dann, wie diese modifiziert, reduziert, oder weiter ausgeführt werden.

Das Internet ist voll von Leuten, die versuchen, sich durch Entschlüsseln/Zerstören Ihres Codes, den Zusammenbruch Ihres Systems, Einsetzen von unangebrachten Inhalten, und anderen, Ihren Tag interessant gestaltenden Maßnahmen, einen Namen zu machen. Es ist egal, ob Sie eine kleine oder große Site haben, Sie sind einfach ein Ziel, wenn Sie online sind oder wenn Sie einen Server haben, zu dem man eine Verbindung aufbauen kann. Viele Cracker-Programme erkennen nicht die Größe, sondern durchsieben einfach gewaltige IP-Blöcke im Netz, um Opfer zu finden. Versuchen Sie, keines zu werden.


Installiert als CGI-Version

Inhaltsverzeichnis

  • Mögliche Angriffe
  • Fall 1: Nur öffentliche Dateien vorhanden
  • Fall 2: --enable-force-cgi-redirect benutzen
  • Fall 3: doc_root oder user_dir festlegen
  • Fall 4: PHP-Parser außerhalb des Webverzeichnisbaums


Mögliche Angriffe

PHP als CGI-Version zu nutzen, ist eine Möglichkeit für Installationen, bei denen aus irgendwelchen Gründen kein Modul in die Serversoftware eingebunden werden soll (wie beim Apache) oder für Systeme, bei denen verschiedene CGI-Wrapper genutzt werden sollen, um sichere chroot- und setuid-Umgebungen für Skripte zu schaffen. Bei dieser Konfiguration wird das ausführbare PHP-Binary üblicherweise im cgi-bin-Verzeichnis des Webservers installiert. CERT-Advisory » CA-96.11 spricht sich gegen die Platzierung von Interpretern im cgi-bin-Verzeichnis aus. Obwohl das PHP-Binary als eigenständiger Interpreter verwendet werden kann, wurde PHP so entwickelt, um den durch diese Konfiguration möglich werdenden Angriffe vorzubeugen:

  • Zugriff auf Systemdateien: http://my.host/cgi-bin/php?/etc/passwd Die auf ein Fragezeichen (?) folgende Abfrageinformation in einer URL wird durch das CGI-Interface als Kommandozeilenargument an den Interpreter weitergereicht. In der Kommandozeile wird üblicherweise die im ersten Argument angegebene Datei von Interpretern geöffnet und ausgeführt. Beim Aufruf als CGI-Binary verweigert PHP die Interpretation der Kommandozeilenargumente.
  • Zugriff auf beliebige Web-Dokumente auf dem Server: http://my.host/cgi-bin/php/secret/doc.html Der Teil der URL-Pfadinformation nach dem Namen der PHP Binärdatei, /secret/doc.html, wird im Allgemeinen benutzt, um den Namen der Datei zu übergeben, die durch das CGI-Programm geöffnet und interpretiert werden soll. Normalerweise werden einige Einträge in der Konfigurationsdatei des Webservers benutzt (Apache: Action), um Aufrufe von Dokumenten wie http://my.host/secret/script.php an den PHP-Interpreter umzuleiten. Bei dieser Konfiguration überprüft der Webserver zuerst die Zugriffsrechte im Verzeichnis /secret und erstellt anschließend den umgeleiteten Aufruf http://my.host/cgi-bin/php/secret/script.php. Unglücklicherweise wird, wenn der Aufruf bereits in dieser Form geschieht, vom Webserver keine Zugriffsüberprüfung der Datei /secret/script.php, sondern lediglich der Datei /cgi-bin/php vorgenommen. So ist jeder Benutzer, der auf /cgi-bin/php zugreifen darf, in der Lage, sich zu jedem geschützten Dokument auf dem Webserver Zugriff zu verschaffen. Bei PHP können beim Kompilieren die Konfigurationsdirektiven cgi.force_redirect, 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 sind weiter unten beschrieben.


Fall 1: Nur öffentliche Dateien vorhanden

Wenn der Server keine Inhalte hat, die durch ein Passwort oder IP-basierte Zugriffskontrolle geschützt sind, werden diese Konfigurationsoptionen nicht benötigt. Wenn der Webserver keine Redirects erlaubt oder keine Möglichkeit hat, dem PHP-Binary mitzuteilen, dass es sich um eine sicher umgeleitete Anfrage handelt, kann die Option --enable-force-cgi-redirect im configure-Skript angegeben werden. Nichtsdestotrotz müssen Sie sicherstellen, dass Ihre PHP-Skripte nicht auf die eine oder andere Art des Aufrufs angewiesen sind, weder direkt durch http://my.host/cgi-bin/php/dir/script.php noch durch einen Redirect http://my.host/dir/script.php.

Beim Apache kann der Redirect durch den Gebrauch von AddHandler und Action konfiguriert werden (siehe unten).


Fall 2: --enable-force-cgi-redirect benutzen

Die Konfigurationsdirektive cgi.force_redirect verhindert grundsätzlich den Aufruf von PHP mit einer URL wie http://my.host/cgi-bin/php/secretdir/script.php. Stattdessen parst PHP in diesem Modus nur dann, wenn der Aufruf durch einen korrekten Redirect des Webservers erfolgte.

Normalerweise wird der Redirect in der Apache-Konfiguration mit den folgenden Einträgen festgelegt:

Action php-script /cgi-bin/php
AddHandler php-script .php

Diese Option wurde nur mit dem Apache Webserver getestet und ist abhängig davon, wie Apache die nicht standardmäßige CGI-Umgebungsvariable REDIRECT_STATUS bei Redirect-Anfragen setzt. Sollte Ihr Webserver keine Möglichkeit unterstützen, zu übermitteln, ob es sich um einen direkten Aufruf oder einen Redirect handelt, können Sie diese Option nicht verwenden und müssen einen der anderen hier beschriebenen Wege gehen, die CGI-Version zu nutzen.


Fall 3: doc_root oder user_dir festlegen

Aktiven Inhalt, wie beispielsweise Skripts und ausführbare Dateien, in den Dokumentverzeichnissen des Webservers abzulegen, wird manchmal als unsichere Methode angesehen. Wenn, beispielsweise aufgrund von Konfigurationsfehlern, die Skripte nicht ausgeführt, sondern als reguläre HTML-Dokumente angezeigt werden, kann dies ein Durchsickern von geistigem Eigentum und sicherheitsrelevanter Informationen wie Passwörtern zur Folge haben. Deshalb ziehen es viele Systemadministratoren vor, eine zweite Verzeichnisstruktur für Skripte einzurichten, auf die nur durch das PHP-CGI zugegriffen werden kann. Diese werden dann stets interpretiert und nicht angezeigt.

Auch wenn die Methode zum sichergestellten Verhindern einer Umleitung von Anfragen (wie im vorangegangenen Abschnitt beschrieben) nicht verfügbar ist, ist es notwendig, ein doc_root für Skripte zusätzlich zum Web-Dokumentenverzeichnis einzurichten.

Sie können das PHP-Skriptverzeichnis durch die Direktive doc_root in der Konfigurationsdatei festlegen, oder Sie setzen die Umgebungsvariable PHP_DOCUMENT_ROOT. Wenn sie gesetzt ist, wird die CGI-Version von PHP den Namen der zu öffnenden Datei stets aus doc_root und der Pfadinformation der Anfrage zusammensetzen, sodass man sicher sein kann, dass außerhalb dieses Verzeichnisses keine Skripte ausgeführt werden (außer user_dir, siehe unten).

Eine weitere hier nützliche Option ist user_dir. Wenn das user_dir nicht gesetzt ist, hat nur doc_root Einfluss auf die zu öffnende Datei. Der Aufruf einer URL wie http://my.host/~user/doc.php hat nicht zum Ergebnis, dass eine Datei im Heimatverzeichnis des Benutzers geöffnet wird, sondern eine Datei namens ~user/doc.php unterhalb des doc_root. (Ja, ein Verzeichnisname, der mit einer Tilde anfängt [~].)

Ist das user_dir beispielsweise auf public_php gesetzt, wird eine Anfrage wie http://my.host/~user/doc.php eine Datei namens doc.php im Verzeichnis public_php im Heimatverzeichnis des Benutzers öffnen. Wenn das Heimatverzeichnis des Benutzers /home/user ist, so ist die ausgeführte Datei /home/user/public_php/doc.php.

Die user_dir-Expansion erfolgt ohne Berücksichtigung der doc_root-Einstellung. So können Zugriffe auf die Dokumenten- und Benutzerverzeichnisse separat gesteuert werden.


Fall 4: PHP-Parser außerhalb des Webverzeichnisbaums

Eine sehr sichere Sache ist es, das PHP-Parser-Binary irgendwo außerhalb des Webverzeichnisbaums zu platzieren, beispielsweise in /usr/local/bin. Der einzige Nachteil dieses Verfahrens ist, dass eine Zeile ähnlich der folgenden Zeile:

#!/usr/local/bin/php
als erste Zeile in jeder Datei, die PHP-Tags enthält, stehen muss. Außerdem muss die Datei ausführbar sein. Ansonsten ist sie genauso zu behandeln wie ein beliebiges CGI-Script in Perl oder sh oder anderen gebräuchlichen Skriptsprachen, 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.


Verwendung als Apache-Modul

Wenn PHP als Apache-Modul eingesetzt wird, übernimmt es die Benutzerrechte des Apache (üblicherweise die des Users "nobody"). Das hat verschiedene Auswirkungen auf Sicherheit und Authentifizierung. Wenn Sie beispielsweise via PHP auf eine Datenbank zugreifen, müssen Sie dem Benutzer "nobody" Zugriffsrechte auf die Datenbank erteilen, es sei denn, diese Datenbank hat eine integrierte Zugriffskontrolle. Das heißt, dass ein böswilliges Skript auch ohne Benutzerkennung und Passwort auf die Datenbank zugreifen und sie verändern könnte. Es ist durchaus möglich, dass ein Web-Spider über die Webseite eines Datenbankadministrators stolpert und alle Ihre Datenbanken löscht. Sie können sich dagegen mit Apache-Authentifizierung schützen, oder ein eigenes Zugangsmodell unter Verwendung von LDAP, .htaccess Dateien etc. entwerfen, und diesen Code als Teil Ihrer PHP-Skripte einbinden.

Ist erst einmal eine Sicherheitsstruktur bis zu dem Punkt eingerichtet, an dem der PHP-User (in diesem Falle der Apache-User) nur noch ein geringes Risiko darstellt, hat man meist die Situation, dass PHP gehindert wird, beliebige Dateien in das Benutzerverzeichnis zu schreiben. Oder vielleicht ist PHP dann nicht mehr in der Lage, auf Datenbanken lesend oder verändernd zuzugreifen. In gleicher Weise wird auch verhindert, "gute" oder "bösartige" Dateien zu schreiben, oder "gute" bzw. "bösartige" Datenbanktransaktionen durchzuführen.

Ein an diesem Punkt oft geöffnetes Sicherheitsloch ist die Zuweisung von Root-Rechten an den Apache-Prozess oder die Ausweitung der Rechte des Apache auf anderem Wege.

Die Ausweitung der Benutzerrechte für Apache auf root ist extrem gefährlich und kann das gesamte System kompromittieren, daher sollten Prozesse, die wie sudo oder chroot mit Rootrechten arbeiten, niemandem zugänglich sein, der kein Sicherheitsprofi ist.

Es gibt deutlich einfachere Lösungen. Mit open_basedir können Sie kontrollieren, welche Verzeichnisse PHP benutzen darf oder nicht. Sie können auch einen Bereich nur für Apache einrichten, um alle webbasierten Aktivitäten auf dem System oder nicht dem Benutzer gehörende Dateien zu verhindern.


Session Sicherheit

Es ist wichtig die HTTP Session Verwaltung sicher zu halten. Sessionbezogene Sicherheit ist beschrieben im Abschnitt Session Sicherheit in der Session Modul Referenz.


Dateisystem - Sicherheit

Inhaltsverzeichnis

  • Probleme im Zusammenhang mit Nullbytes

PHP ist von den in den meisten Serversystemen implementierten Sicherheitseinstellungen hinsichtlich der Berechtigungen auf Datei- und Verzeichnisebene abhängig. Dies verleiht Ihnen Kontrolle darüber, welche Dateien in dem Dateisystem gelesen werden dürfen. Vorsicht ist bei weltweit lesbaren Dateien geboten um sicherzustellen, dass diese sicher von allen Usern mit Zugriff auf dieses Dateisystem (nur) gelesen werden können.

Da PHP entwickelt wurde, um Zugriffe auf das Dateisystem auf Benutzebene zu erlauben, ist es natürlich auch möglich, ein PHP Skript zu schreiben, dass Ihnen erlaubt, Systemdateien wie /etc/passwd zu lesen, Ethernetverbindungen zu modifizieren, enorme Druckaufträge zu senden, etc. Dies hat offensichtliche Implikationen, indem Sie sicherstellen müssen, dass alle von Ihnen zu lesenden bzw. zu schreibenden Dateien auch die richtigen sind.

Stellen Sie sich folgendes Skript vor, in dem ein User zum Ausdruck bringt, dass gerne eine Datei in seinem Heimatverzeichnis löschen möchte. Dies geht von einer Situation aus, in der ein PHP Web-Interface regelmäßig zum Dateimanagement verwendet wird, und der Apache User ist auch berechtigt, in seinem Heimatverzeichnis Dateien zu löschen.

Beispiel #1 Schlechte Variablenprüfung führt zu....

<?php
// Löschen einer Datei aus dem Heimatverzeichnis des Users
$username = $_POST['user_submitted_name'];
$userfile = $_POST['user_submitted_filename'];
$homedir  = "/home/$username";
unlink("$homedir/$userfile");
echo "Die Datei wurde gelöscht!";
?>
Da der Benutzer- und Dateiname über ein Benutzerformular bereitgestellt werden kann jeder jemand anderes Benutzer- und Dateinamen übertragen und so Dateien ohne über die entsprechnde Erlaubnis zu verfügen. In diesem Fall empfiehlt es sich, eine andere Form der Authentifizierung zu verwenden. Stellen Sie sich vor was passieren würde, wenn die übertragenen Variablen "../etc/" und "passwd" beinhalten würden. Der Code würde dann effektiv lesen:

Beispiel #2 ... Ein Angriff auf das Dateisystem

<?php
// löscht eine Datei irgendwo auf der Festplatte, wo der
// Benutzer die nötigen Rechte besitzt. Wenn PHP root hat:
$username = $_POST['user_submitted_name']; // "../etc"
$userfile = $_POST['user_submitted_filename']; // "passwd"
$homedir  = "/home/$username"; // "/home/../etc"

unlink("$homedir/$userfile"); // "/home/../etc/passwd"

echo "Die Datei wurde gelöscht!";?>
Es gibt zwei wichtige Kriterien die Sie beachten sollten, um diese Dinge zu vermeiden:
  • Erteilen Sie dem PHP Web-user (Binärdatei) nur eingeschränkte Rechte.
  • Prüfen Sie alle übertragenen Variablen.
Hier ist ein verbessertes Skript:

Beispiel #3 Etwas sicherere Prüfung des Dateinamens

<?php
// löscht eine Datei von der Festplatte, auf die
// der PHP user Zugriff hat.
$username = $_SERVER['REMOTE_USER']; // using an authentication mechanism
$userfile = basename($_POST['user_submitted_filename']);
$homedir  = "/home/$username";

$filepath = "$homedir/$userfile";

if (file_exists($filepath) && unlink($filepath)) {
    $logstring = "$filepath gelöscht\n";
} else {
    $logstring = "$filepath konnte nicht gelöscht\n";
}
$fp = fopen("/home/logging/filedelete.log", "a");
fwrite($fp, $logstring);
fclose($fp);

echo htmlentities($logstring, ENT_QUOTES);
?>
Auch dies nicht völlig makellos. Wenn Ihr Authentifizierungssystem Benutzern erlauben sollte, deren eigene Logins zu kreieren, und ein Benutzer wählt den Login "../etc", ist das System wieder aufgedeckt. Aus diesem Grund ziehen Sie es vielleicht vor, einen besseren Check zu schreiben:

Beispiel #4 Sicherere Dateinamensprüfung

<?php
$username     = $_SERVER['REMOTE_USER']; // Nutzung des Authentifikationsmechanismus
$userfile     = $_POST['user_submitted_filename'];
$homedir      = "/home/$username";

$filepath     = "$homedir/$userfile";

if (!ctype_alnum($username) || !preg_match('/^(?:[a-z0-9_-]|\.(?!\.))+$/iD', $userfile)) {
    die("Ungültiger Benutzer- oder Dateiname");
}

//etc...
?>

Abhängig vom Betriebssystem gibt es eine große Anzahl Dateien mit der Sie sich befassen sollten, inklusive Einträge für Geräte (/dev/ oder com1), Konfigurationsdateien (/etc/ Dateien und die .ini Dateien), gut bekannte Verzeichnisse (/home/, My Documents), etc. Aus diesem Grund ist es gewöhnlich einfacher eine Vorgangsweise einzuführen, bei der außer den von Ihnen explizit erlaubten Dingen alles verboten ist.


Probleme im Zusammenhang mit Nullbytes

Da PHP die Funktionen der C-Standardbibliothek für Dateisystemoperationen nutzt kann es Nullbytes in unerwarteter Weise verarbeiten. Da Nullbytes in C das Stringende festlegen werden Strings die solche enthalten nicht vollständig verarbeitet sondern nur bis zum ersten Auftreten eines Nullbytes. Das folgende Beispiel zeigt verwundbaren Programmcode der das Problem demonstriert:

Beispiel #1 Skript mit Nullbyte-Verwundbarkeit

<?php
  $file = $_GET['file']; // "../../etc/passwd\0"
  if (file_exists('/home/wwwrun/'.$file.'.php')) {
    // file_exists gibt true zurück da /home/wwwrun/../../etc/passwd existiert
    include '/home/wwwrun/'.$file.'.php';
    // die Datei /etc/passwd wird eingebunden
  }
?>

Daher sollte jede nicht vertrauenswürdige Zeichenkette, die in Dateisystemoperationen verwendet wird, ordentlich geprüft werden. Hier sehen Sie eine eine bessere Versiond des vorhergehenden Beispiels:

Beispiel #2 Korrekte Validierung der Eingabe

<?php
  $file = $_GET['file'];

  // Gestatte gültige Werte
  switch ($file) {
    case 'main':
    case 'foo':
    case 'bar':
      include '/home/wwwrun/include/'.$file.'.php';
      break;
    default:
      include '/home/wwwrun/include/main.php';
  }
?>


Datenbank-Sicherheit

Inhaltsverzeichnis

  • Datenbanken entwerfen
  • Mit der Datenbank verbinden
  • Verschlüsseltes Speichermodell
  • SQL-Injection

Heutzutage sind Datenbanken die Hauptkomponenten jeder webbasierten Anwendung, aufgrund welcher Websites verschiedene dynamische Inhalte anbieten können. Nachdem sensible oder geheime Informationen in solch einer Datenbank gespeichert werden können, sollten Sie deren Schutz ernsthaft bedenken.

Um Informationen zu bekommen oder zu speichern, müssen Sie eine Verbindung zur Datenbank herstellen, eine legitime Abfrage senden, das Ergebnis holen, und die Verbindung schließen. Heutzutage ist die allgemein verwendete Abfragesprache für solche Interaktionen die Structured Query Language (SQL). Sehen Sie, wie sich ein Angreifer an einer SQL-Abfrage zu schaffen machen kann.

Sie werden merken, dass PHP Ihre Datenbank nicht selbst schützen kann. Die folgenden Abschnitte sind eine Einführung in die Grundlagen, wie man innerhalb von PHP-Skripten auf Datenbanken zugreift und diese manipuliert.

Behalten Sie diese einfache Regel im Hinterkopf: tief gestaffelte Verteidigung. Je mehr Platz Sie den Maßnahmen zum Schutz Ihrer Datenbank geben, desto geringer ist die Wahrscheinlichkeit, dass ein Angreifer Erfolg hat und gespeicherte Geheiminformationen aufdeckt oder missbraucht. Ein gutes Design des Datenbankschemas und die Anwendung wird mit Ihren größten Befürchtungen fertig.


Datenbanken entwerfen

Der erste Schritt ist immer das Erstellen der Datenbank, außer Sie wollen eine bereits existierende von Dritten verwenden. Ist eine Datenbank erstellt, ist sie einem Eigentümer zugewiesen, welcher das Kommando zum Erstellen ausgeführt hat. Gewöhnlich kann nur der Eigentümer (oder ein Superuser) alles mit den Objekten in dieser Datenbank machen, und um anderen Benutzern die Verwendung zu erlauben, müssen Rechte vergeben werden.

Anwendungen sollten sich mit der Datenbank nie als deren Eigentümer oder als ein Superuser verbinden, da diese Benutzer jede beliebige Abfrage ausführen können, um z.B. das Schema zu modifizieren (z.B. Tabellen löschen) oder den gesamten Inhalt löschen.

Sie können verschiedene Datenbanknutzer für jeden Aspekt Ihrer Anwendung mit sehr limitierten Rechten auf Datenbankobjekte anlegen. Nur die wirklich benötigten Rechte sollten gewährt werden, und vermeiden Sie, dass der gleiche Benutzer in verschiedenen Anwendungsfällen mit der Datenbank interagieren kann. Das heißt, dass Eindringlinge, welche unter Verwendung einer dieser Referenzen Zugriff auf Ihre Datenbank erlangt haben, nur so viele Änderungen durchführen können, wie es Ihre Anwendung kann.


Mit der Datenbank verbinden

Sie sollten die Verbindungen über SSL herstellen, um die Client/Server-Kommunikation für eine erhöhte Sicherheit zu verschlüsseln, oder aber auch SSH verwenden, um die Netzwerkverbindung zwischen den Clients und dem Datenbankserver zu verschlüsseln. Wird eines davon verwendet, dann wird es für einen Angreifer schwierig, Ihre Datenübertragung zu überwachen und Informationen über Ihre Datenbank zu erlangen.


Verschlüsseltes Speichermodell

SSL/SSH schützt zwar Daten, die vom Client zum Server übertragen werden, aber SSL/SSH schützt keine dauernd in einer Datenbank gespeicherten Daten. SSL ist ein "auf-der-Leitung"-Protokoll.

Hat ein Angreifer direkten Zugriff auf Ihre Datenbank (unter Umgehung des Webservers), können gespeicherte sensible Daten aufgedeckt oder zweckentfremdet werden, außer wenn die Informationen durch die Datenbank selbst geschützt sind. Die Daten zu verschlüsseln ist eine gute Methode, diese Gefahr zu mildern, doch bieten nur wenige Datenbanken diese Art der Datenverschlüsselung an.

Der einfachste Weg, dieses Problem zu umgehen ist, erst einmal Ihr eigenes Verschlüsselungspaket zu erstellen, und dieses dann in Ihren PHP-Skripten zu nutzen. PHP kann Ihnen in diesem Fall mit seinen verschiedenen Erweiterungen helfen, wie z.B. OpenSSL und Sodium, welche eine große Auswahl an Verschlüsselungsalgorithmen abdecken. Das Skript verschlüsselt die Daten vor dem Speichern und entschlüsselt diese wieder beim Erhalt. Siehe die Verweise für weitere Beispiele, wie Verschlüsselung funktioniert.

Hashing

Im Fall von wirklich versteckten Daten, wenn deren unverschlüsselte Darstellung nicht nötig ist (d.h. die nicht angezeigt werden sollen), ist Hashing ebenfalls überlegenswert. Das bekannte Beispiel für Hashing ist das Speichern des kryptographischen Hashes eines Passwortes in einer Datenbank, anstatt des Passworts selbst.

Die Passwort-Funktionen bieten eine bequeme Möglichkeit, sensible Daten zu hashen und mit diesen Hashes zu arbeiten.

password_hash() wird verwendet, um eine gegebene Zeichenkette unter Verwendung des stärksten zurzeit verfügbaren Algorithmus zu hashen, und password_verify() prüft, ob ein gegebenes Passwort mit dem Hash, der in der Datenbank gespeichert ist, übereinstimmt.

Beispiel #1 Hashen eines Passwortfeldes

<?php

// Speichern des Passwort-Hash
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            pg_escape_string($username),
            password_hash($password, PASSWORD_DEFAULT));
$result = pg_query($connection, $query);

// Abfragen, ob der User das richtige Passwort übermittelt hat
$query = sprintf("SELECT pwd FROM users WHERE name='%s';",
            pg_escape_string($username));
$row = pg_fetch_assoc(pg_query($connection, $query));

if ($row && password_verify($password, $row['pwd'])) {
    echo 'Willkommen, ' . htmlspecialchars($username) . '!';
} else {
    echo 'Authentifizierung für ' . htmlspecialchars($username) . 'fehlgeschlagen.';
}

?>


SQL-Injection

Viele Webentwickler sind sich nicht bewusst, wie SQL-Abfragen manipuliert werden können und gehen davon aus, dass eine SQL-Abfrage ein vertrauenswürdiges Kommando ist. Das heißt, dass SQL-Abfragen in der Lage sind, Zugriffskontrollen und dadurch Standard-Authentifizierungs- und Autorisierungsprüfungen zu umgehen, und manchmal können SQL-Abfragen sogar Zugriff zu Kommandos auf Betriebssystemebene erlauben.

Direct SQL Command Injection ist eine Technik, wo ein Angreifer SQL-Kommandos erstellt oder existierende verändert, um versteckte Daten sichtbar zu machen, wertvolle Daten zu überschreiben oder sogar gefährliche Kommandos auf Systemebene des Datenbank-Hosts auszuführen. Dies wird durch die Anwendung erreicht, welche den Input des Benutzers mit statischen Parametern kombiniert, um eine SQL-Abfrage zu erstellen. Die folgenden Beispiele basieren - leider - auf wahren Begebenheiten.

Aufgrund der fehlenden Eingabevalidierung und dem Verbinden zum Datenbankserver als ein Superuser oder jemand, der Benutzer anlegen kann, kann ein Angreifer einen Superuser in Ihrer Datenbank anlegen.

Beispiel #1 Die Ergebnisliste in mehrere Seiten aufsplitten ... und Superuser anlegen (PostgreSQL)

<?php

$offset = $argv[0]; // Vorsicht, keine Validierung der Eingabe!
$query  = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
$result = pg_query($conn, $query);

?>
Normale Benutzer klicken auf die 'nächste'- bzw. 'vorige'-Links, wo der $offset in der URL enthalten ist. Das Skript erwartet, dass der ankommende $offset einen Dezimalwert enthält. Was aber, wenn jemand versucht einzubrechen, indem er das folgende in einer urlencode()'d Form an die URL anhängt:
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--
In diesem Fall würde ihm das Skript einen Superuser-Zugang zur Verfügung stellen. Beachten Sie, dass 0; einen gültigen Offset zur ursprünglichen Abfrage liefert, und sie beendet.

Hinweis:

Es ist eine übliche Technik, den SQL-Parser mit dem SQL-Kommentarzeichen -- zu zwingen, den Rest der vom Entwickler geschriebenen Abfrage zu ignorieren.

Eine gangbare Methode, an Passwörter zu gelangen, ist, Ihre Seiten mit den Suchergebnissen zu umgehen. Der Angreifer braucht nur zu probieren, ob irgendeine übertragene Variable, die in dem SQL-Statement verwendet wird, nicht richtig gehandhabt wird. Diese Filter können gewöhnlich in einem vorausgehenden Formular gesetzt werden, indem WHERE-, ORDER BY-, LIMIT- und OFFSET-Klauseln in SELECT-Statements angepasst werden. Wenn Ihre Datenbank das UNION-Konstrukt unterstützt, kann der Angreifer versuchen, eine komplette Abfrage an das Original anzuhängen, um Passwörter aus einer beliebigen Tabelle aufzulisten. Die Verwendung von verschlüsselten Passwortfeldern wird ausdrücklich empfohlen.

Beispiel #2 Artikel auflisten ... und ein paar Passwörter (beliebiger Datenbankserver)

<?php

$query  = "SELECT id, name, inserted, size FROM products
           WHERE size = '$size'";
$result = odbc_exec($conn, $query);

?>
Der statische Teil der Abfrage kann mit einem anderen SELECT-Statement kombiniert werden, welches alle Passwörter preisgibt
'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--
Wenn diese Abfrage (mit dem ' und --) einer der in $query verwendeten Variablen zugewiesen würde, wird das Abfrage-Biest erwachen.

Auch SQL-UPDATEs sind anfällig für Angriffe. Diese Abfragen sind ebenfalls durch das Ändern und Anhängen einer komplett neuen Abfrage gefährdet. Aber der Angreifer könnte auch mit der SET-Klausel herumspielen. In diesem Fall muss eine Schemainformation vorhanden sein, um die Abfrage erfolgreich manipulieren zu können. Diese kann durch Untersuchen der Variablennamen im Formular, oder simpel mittels Brute-Forcing gesammelt werden. Es gibt nicht so viele Namenskonventionen für Felder, welche Passwörter oder Benutzernamen speichern.

Beispiel #3 Vom Zurücksetzen eines Passworts ... zum Erlangen von mehr Rechten (beliebiger Datenbankserver)

<?php
$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
?>
Aber wenn ein böswilliger Benutzer den Wert ' or uid like'%admin% an $uid übermittelt, um das Administrator-Passwort zu ändern, oder einfach $pwd auf hehehe', trusted=100, admin='yes setzt, um mehr Rechte zu erhalten, dann wird die Abfrage verdreht:
<?php

// $uid: ' or uid like '%admin%
$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%';";

// $pwd: hehehe', trusted=100, admin='yes
$query = "UPDATE usertable SET pwd='hehehe', trusted=100, admin='yes' WHERE
...;";

?>

Ein erschreckendes Beispiel, wie der Zugriff auf Befehle auf Betriebssystemebene bei manchen Datenbankservern erfolgen kann:

Beispiel #4 Angriff auf das Betriebssystem des Datenbank-Hosts (MSSQL-Server)

<?php

$query  = "SELECT * FROM products WHERE id LIKE '%$prod%'";
$result = mssql_query($query);

?>
Wenn ein Angreifer den Wert a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- auf $prod überträgt, wird $query zu:
<?php

$query  = "SELECT * FROM products
           WHERE id LIKE '%a%'
           exec master..xp_cmdshell 'net user test testpass /ADD' --%'";
$result = mssql_query($query);

?>
Der MSSQL-Server führt die SQL-Statements im Batch aus, inklusive eines Kommandos um einen neuen Benutzer zur Datenbank der lokalen Konten hinzuzufügen. Würde diese Anwendung als sa und der MSSQLSERVER-Service mit genügend Rechten laufen, hätte der Angreifer nun ein Konto, mit welchem er Zugriff auf diese Maschine hätte.

Hinweis:

Manche der obigen Beispiele sind an einen spezifischen Datenbankserver gebunden. Das heißt jedoch nicht, dass nicht ein ähnlicher Angriff auf andere Produkte möglich wäre. Ihr Datenbankserver könnte auf andere Weise genauso verwundbar sein.

Ein praktisches Beispiel für die Problematik der SQL-Injection
Bild mit freundlicher Genehmigung von » xkcd

Techniken zur Vermeidung

Obwohl es offensichtlich ist, dass ein Angreifer zumindest ein wenig Kenntnis der genutzten Datenbankarchitektur besitzen muss, um einen erfolgreichen Angriff durchzuführen, ist es oft sehr einfach, diese Informationen zu erhalten. Wenn die Datenbank zum Beispiel Teil eines Open-Source- oder eines anderen öffentlich verfügbaren Softwarepakets mit einer Standardinstallation ist, dann sind diese Informationen vollkommen offen und frei zugänglich. Diese Informationen können auch durch Closed-Source-Code preisgegeben werden - selbst wenn dieser kodiert, verschleiert oder kompiliert ist - und sogar durch Ihren ureigenen Code durch die Anzeige von Fehlermeldungen. Andere Methoden beinhalten die Nutzung typischer Tabellen- und Spaltennamen. Ein Login-Formular etwa, dass eine Tabelle 'users' mit den Spaltennamen 'id', 'username' und 'password' nutzt.

Diese Angriffe basieren hauptsächlich auf dem Ausnutzen des Codes, der nicht mit Blick auf die Sicherheit geschrieben wurde. Vertrauen Sie nie auf irgendeine Art von Eingabe, insbesondere wenn sie von der Clientseite kommt, selbst wenn er von einer Auswahlbox, einem versteckten Eingabefeld oder einem Cookie kommt. Das erste Beispiel zeigt, dass solch eine tadellose Abfrage ein Desaster anrichten kann.

  • Stellen Sie nie als Superuser oder Eigentümer einer Datenbank eine Verbindung zur Datenbank her. Verwenden Sie immer speziell angelegte Benutzer mit sehr limitierten Rechten.
  • Verwenden Sie Prepared-Statements mit gebundenden Variablen. Sie werden von PDO, MySQLi und anderen Bibliotheken angeboten.
  • Prüfen Sie, ob die gegebene Eingabe dem erwarteten Datentyp entspricht. PHP bietet eine große Auswahl an Funktionen zum Validieren der Eingaben, von den einfachsten unter Variablenfunktionen und Character-Type-Funktionen (z.B. is_numeric(), bzw. ctype_digit()), bis hin zu den Perl-kompatiblen regulären Ausdrücken.

  • Wenn die Anwendung eine numerische Eingabe erwartet, erwägen Sie die Prüfung der Daten mit ctype_digit() oder die Änderung des Typs mit settype() oder verwenden Sie die numerische Darstellung mittels sprintf().

    Beispiel #5 Ein sicherer Weg, eine Abfrage zu erstellen

    <?php

    settype    ($offset, 'integer');
    $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

    // Beachten Sie %d im Formatstring, %s zu verwenden wäre sinnlos
    $query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
                         $offset);

    ?>

  • Unterstützt die Datenbank-Ebene das Binden von Variablen nicht, so maskieren Sie jede nichtnumerische Benutzereingabe, welche zur Datenbank weitergereicht werden soll, mit der jeweiligen datenbankspezifischen Maskierungsfunktion für Zeichenketten (z.B. mysql_real_escape_string(), sqlite_escape_string() usw.). Generische Funktionen wie addslashes() sind nur in einer sehr spezifischen Umgebung nützlich (z.B. MySQL mit einem SingleByte-Zeichensatz bei deaktiviertem NO_BACKSLASH_ESCAPES), so dass es besser ist, diese zu vermeiden.
  • Geben Sie um keinen Preis irgendwelche datenbankspezifischen Informationen aus, speziell über das Schema. Siehe auch Fehlerbehandlung und Fehlerbehandlungsfunktionen.
  • Sie können Stored-Procedures und vorher definierte Cursor verwenden, um den Datenzugriff zu abstrahieren, sodass Benutzer nicht direkt auf Tabellen oder Views zugreifen, aber diese Lösung hat andere Auswirkungen.

Abgesehen davon profitieren Sie von einer Protokollierung der Abfragen entweder in Ihrem Skript oder durch die Datenbank selbst, falls sie Protokollierung unterstützt. Klar, die Protokollierung kann keinen schädlichen Versuch verhindern, aber sie kann helfen herauszufinden, welche Anwendung umgangen wurde. Das Protokoll ist nicht von sich aus nützlich, aber durch die in ihm enthaltenen Informationen, und je mehr Details es enthält, desto besser ist es im Allgemeinen.


Fehlerbehandlung

PHP Security hat zwei Seiten der Fehlerbehandlung. Eine ist für die Erhöhung der Sicherheit vorteilhaft, die andere ist schädlich.

Eine Standard-Angriffstaktik beinhaltet die Erstellung eines Profils des anzugreifenden Systems, indem die aufgrund der Einspeisung von unzulässigen Daten zurückgegebenen Fehlermeldungen anhand deren Art und des Kontextes ausgewertet werden. Dies erlaubt es einem Angreifer, nach Informationen über den Server zu suchen, um seine potentielle Verwundbarkeit herauszufinden. Wenn z.B. ein Angreifer Informationen über eine auf einem eingesendeten Formular basierte Seite zusammengetragen hat, kann er versuchen, Variablen zu überschreiben bzw. zu modifizieren:

Beispiel #1 Variablen mit einer eigenen HTML-Seite angreifen

<form method="post" action="attacktarget?username=badfoo&password=badfoo">
<input type="hidden" name="username" value="badfoo">
<input type="hidden" name="password" value="badfoo">
</form>

Die normalerweise zurückgegebenen PHP-Fehler können für den Entwickler hilfreich sein, wenn dieser ein Skript debuggen möchte, da sie z.B. Hinweise auf eine nicht vorhandene Funktion oder Datei, die PHP-Datei und die Zeilennummer des auftretenden Fehlers ausgeben. Dies alles sind Informationen, die ausgenutzt werden können. Es ist für einen PHP-Entwickler nicht unüblich, show_source(), highlight_string() oder highlight_file() zur Fehlersuche zu verwenden, jedoch kann dies in einem produktiven System auch versteckte Variablen, ungeprüfte Syntax und andere gefährliche Informationen aufdecken. Besonders gefährlich ist es, Code aus bekannten Quellen mit integrierten Debugging-Handlern auszuführen, oder weit verbreitete Debuggingtechniken zu verwenden. Wenn ein Angreifer die von Ihnen benutzte generelle Technik herausfindet, kann er versuchen, Ihre Seite mittels Bruteforce zu knacken, indem er verschiedene allgemein gebräuchliche Debugstrings sendet:

Beispiel #2 Ausnutzen von gebräuchlichen Debugging-Variablen

<form method="post" action="attacktarget?errors=Y&amp;showerrors=1&amp;debug=1">
<input type="hidden" name="errors" value="Y" />
<input type="hidden" name="showerrors" value="1" />
<input type="hidden" name="debug" value="1" />
</form>

Ungeachtet der Fehlerbehandlungsmethode führt die Möglichkeit, ein System nach Fehlermeldungen zu sondieren, dazu, dass einem Angreifer mehr Informationen geboten werden.

Zum Beispiel weist schon alleine der Stil einer Standardfehlermeldung darauf hin, dass auf einem System PHP läuft. Wenn der Angreifer auf eine .html Seite kommt und untersuchen möchte, welches System im Hintergrund läuft (um nach bekannten Systemschwächen Ausschau zu halten), könnte dieser mittels der Einspeisung von falschen Daten herausfinden, dass ein System mit PHP aufgebaut ist.

Ein Fehler einer Funktion gibt Aufschluss darüber, ob ein System eine bestimmte Datenbankapplikation benutzt, oder gibt Hinweise darauf, wie eine Webseite programmiert bzw. entworfen wurde. Dies erlaubt eine tiefere Überprüfung von offenen Datenbankports oder die Suche nach spezifischen Bugs bzw. Schwächen einer Webseite. Mit der Einspeisung von falschen Daten kann ein Angreifer z.B. die Reihenfolge der Authentifizierung in einem Skript bestimmen (anhand der Zeilennummern in den Fehlermeldungen). Ebenso lassen sich auch durch "Herumstochern" Missbrauchsmöglichkeiten an verschiedenen Stellen im Skript herausfinden.

Eine Fehlermeldung des Dateisystems oder eines generellen PHP-Errors kann darüber Auskunft geben, welche Rechte der Webserver hat, ebenso darüber, wie die Dateien auf dem Webserver strukturiert und organisiert sind. Vom Entwickler geschriebene Fehlermeldungen können das Problem verschlimmern, bis hin zum Preisgeben von zuvor "versteckten" Informationen.

Es gibt drei bedeutende Lösungen zu diesem Thema. Die erste ist, alle Funktionen zu überprüfen und zu versuchen, einen Großteil der Fehlermeldungen zu ersetzen. Die zweite ist, die Ausgabe von Fehlermeldungen bei produktivem Code generell zu deaktivieren. Die dritte ist, sich unter Verwendung der PHP-Funktionen zur Fehlerbehandlung einen eigenen Errorhandler zu schreiben. Abhängig von Ihrer Sicherheitspolitik könnte jede der drei Lösungen für Sie geeignet sein.

Ein Weg, diesen Punkt zügig abzuarbeiten, ist, das PHP-eigene error_reporting() zu benutzen, um Ihren Code sicherer zu gestalten und möglicherweise gefährliche Nutzungen von Variablen zu entdecken. Wenn Sie Ihren Code noch vor dem Einsatz mit E_ALL testen, können Sie schnell Bereiche entdecken, in denen Ihre Variablen eventuell für Verseuchung oder andere Modifikationen offen sind. Ist Ihr Code einsatzbereit, können Sie entweder das Errorreporting komplett ausschalten, indem Sie error_reporting() auf 0 setzen, oder Sie schalten die Fehleranzeige mittels der php.ini-Option display_errors aus, um Ihren Code vor dem Ausspähen zu schützen. Wenn Sie letztere Möglichkeit wählen, sollten Sie mittels der Ini-Direktive error_log einen Pfad definieren, in dem sich das Logfile befindet, und log_errors anschalten.

Beispiel #3 Gefährliche Variablen mit E_ALL finden

<?php
if ($username) {  // Vor Verwendung nicht initialisiert oder geprüft
    $good_login = 1;
}
if ($good_login == 1) { // Wenn der obige Test fehlschlägt, ist vor der
                        // Verwendung nicht initialisiert oder geprüft
    readfile ("/highly/sensitive/data/index.html");
}
?>


Vom Nutzer übermittelte Daten

In vielen PHP Programmen liegt die größte Schwäche nicht an der Sprache selbst, sondern bloß an Code, der nicht mit dem nötigen Augenmerk auf die Sicherheit geschrieben wurde. Deshalb sollten Sie sich immer Zeit nehmen, die Implikationen eines gegebenen Codestücks zu bedenken, um einen möglichen Schaden durch eine eventuell unerwartete übergebene Variable festzustellen.

Beispiel #1 Gefährliche Verwendung von Variablen

<?php
// lösche eine Datei aus dem Benutzer-Verzeichnis...
// oder vielleicht dem eines anderen Benutzers?
unlink ($evil_var);

// Schreibe die Log-Information von deren Zugriff...
// oder vielleicht einen /etc/passwd Eintrag?
fputs ($fp, $evil_var);

// Führe etwas triviales aus... oder rm -rf *?
system ($evil_var);
exec ($evil_var);

?>

Sie sollten Ihren Code immer sorgfältig kontrollieren, um eine sorgfältige Prüfung irgendwelcher von einem Web-Browser übertragenen Variablen sicherzustellen, und sich selbst folgende Fragen stellen:

  • Wird sich dieses Skript nur auf die vorgesehenen Dateien auswirken?
  • Kann auf ungewöhnliche oder unerwünschte Daten reagiert werden?
  • Kann dieses Skript auf nicht vorgesehene Art genutzt werden?
  • Kann dies in Verbindung mit anderen Skripten in einer negativen Art benutzt werden?
  • Werden alle Transaktionen ausreichend geloggt?

Wenn Sie sich diese Fragen anstatt danach schon während dem Schreiben des Skriptes stellen, ersparen Sie sich das unangenehme Umschreiben, wenn eine Erhöhung der Sicherheit erforderlich wird. Mit dieser Art zu denken werden Sie die Sicherheit des Systems zwar nicht garantieren, aber sie können helfen, sie zu erhöhen.

Sie könnten auch Überlegungen anstellen, ob Sie nicht register_globals, magic_quotes, oder andere bequeme Einstellungen abschalten, welche Sie in Punkto Gültigkeit, Herkunft, oder Inhalt einer gegebenen Variable durcheinanderbringen könnten. Mit PHP im error_reporting(E_ALL) Modus zu arbeiten kann auch helfen, Sie vor Variablen zu warnen, welche benutzt werden, bevor sie geprüft oder initialisiert wurden (so können Sie verhindern, dass mit ungewöhnlichen Daten gearbeitet wird).


PHP verstecken

Generell ist Sicherheit durch Unklarheit eine der schwächsten Formen von Sicherheit. Aber in manchen Fällen ist ein klein wenig mehr an zusätzlicher Sicherheit wünschenswert.

Ein paar einfache Techniken helfen, PHP zu verstecken, um nach Schwächen in Ihrem System suchende Angreifer unter Umständen langsamer zu machen. Wenn Sie in Ihrer php.ini expose_php auf off setzen, reduzieren Sie damit die zur Verfügung stehenden Informationen.

Eine andere Taktik ist, den Webserver wie z.B. Apache entweder mittels einer .htaccess-Direktive oder in der Apache-Konfigurationsdatei selbst so einzustellen, dass dieser verschiedene Dateitypen durch PHP parst. So können Sie irreführende Dateierweiterungen verwenden:

Beispiel #1 PHP als andere Sprache ausgeben

# Lasse PHP-Code wie andere Arten von Code aussehen
AddType application/x-httpd-php .asp .py .pl
Oder komplett unklar machen:

Beispiel #2 Verwenden von unbekannten Typen für PHP-Dateierweiterungen

# Lasse PHP Code wie unbekannte Typen aussehen
AddType application/x-httpd-php .bop .foo .133t
Oder verstecken Sie ihn als HTML-Code, was einen leichten Performanceverlust bedeutet, da so alle HTML-Dateien durch die PHP-Engine geparst werden:

Beispiel #3 Verwenden von HTML-Typen für PHP-Dateierweiterungen

# Lasse PHP-Code wie HTML aussehen
AddType application/x-httpd-php .htm .html
Um dies effektiv arbeiten zu lassen, müssen Sie Ihre PHP-Dateien nach den obigen Dateierweiterungen umbenennen. Obwohl dies eine Form der Sicherheit durch Verhüllung ist, ist es eine geringfügige präventive Maßnahme mit nur wenigen Nachteilen.


Aktuell bleiben

PHP wird, wie jedes andere große System auch, ständig geprüft und weiterentwickelt. Neue Versionen enthalten in der Regel sowohl kleinere als auch größere Änderungen, um die Sicherheit zu erhöhen und sowohl Fehler als auch Konfigurationspannen und andere Probleme auszugleichen, die die Gesamtsicherheit und -stabilität Ihres Systems beeinflussen können.

Wie auch bei anderen Scriptsprachen und Programmen auf Systemebene, ist der beste Ansatz ein regelmäßiges Updaten, und sich laufend über die letzten Versionen und deren Änderungen zu informieren.


Features

  • HTTP-Authentifizierung mit PHP
  • Cookies
  • Sessions
  • Mit XForms umgehen
  • Steuerung von Dateiuploads
    • Dateiuploads mit POST
    • Fehlermeldungen erklärt
    • Häufige Probleme
    • Upload mehrerer Dateien
    • PUT-Unterstützung
    • Siehe auch
  • Zugriff auf entfernte Dateien
  • Verbindungssteuerung
  • Persistente Datenbankverbindungen
  • Nutzung auf der Kommandzeile — Nutzung von PHP auf der Kommandozeile
    • Introduction
    • Unterschiede zu anderen SAPIs
    • Optionen — Kommandozeilenoptionen
    • Verwendung — Ausführen von PHP-Dateien
    • I/O Streams — Ein- und Ausgabestreams
    • Interaktiver Modus
    • Eingebauter Webserver
    • INI Einstellungen
  • Garbage Collection
    • Reference Counting Basics
    • Collecting Cycles
    • Performance Considerations
  • DTrace Dynamic Tracing
    • Introduction to PHP and DTrace
    • Using PHP and DTrace
    • Using SystemTap with PHP DTrace Static Probes


HTTP-Authentifizierung mit PHP

Man kann die Funktion header() benutzen, um die Nachricht "Authentifizierung erforderlich" 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 vordefinierten Variablen PHP_AUTH_USER, PHP_AUTH_PW und AUTH_TYPE, die den Benutzernamen, das Passwort und den Typ der Authentifizierung enthalten, erneut aufgerufen. Diese vordefinierten Variablen befinden sich im Array $_SERVER. Es werden sowohl die "Basic"- als auch (seit PHP 5.1.0) die "Digest"-Authentifizierungsmethode 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 #1 Beispiel: Basic-HTTP-Authentifizierung

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text, der gesendet wird, falls der Benutzer auf Abbrechen drückt';
    exit;
} else {
    echo "<p>Hallo {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>Sie gaben {$_SERVER['PHP_AUTH_PW']} als Passwort ein.</p>";
}
?>

Beispiel #2 Beispiel: Digest-HTTP-Authentifizierung

In diesem Beispiel wird gezeigt, wie ein einfaches Skript für die Digest-HTTP-Authentifizierung implementiert wird. Weitere Informationen dazu finden Sie im » RFC 2617.

<?php
$realm = 'Geschützter Bereich';

// Benutzer => Passwort
$benutzer = array('admin' => 'mypass', 'gast' => 'gast');

if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: Digest realm="' . $realm .
           '",qop="auth",nonce="' . uniqid() . '",opaque="' . md5($realm) .
           '"');

    die('Text, der gesendet wird, falls der Benutzer auf Abbrechen drückt');
}

// Analysieren der Variable PHP_AUTH_DIGEST
if (!($daten = http_digest_parse($_SERVER['PHP_AUTH_DIGEST'])) ||
    !isset($benutzer[$daten['username']]))
    die('Falsche Zugangsdaten!');

// Erzeugen einer gültigen Antwort
$A1 = md5($daten['username'] . ':' . $realm . ':' .
          $benutzer[$daten['username']]);
$A2 = md5($_SERVER['REQUEST_METHOD'] . ':' . $daten['uri']);
$gueltige_antwort = md5($A1 . ':' . $daten['nonce'] . ':' . $daten['nc'] .
                        ':' . $daten['cnonce'] . ':' . $daten['qop'] . ':' .
                        $A2);

if ($daten['response'] != $gueltige_antwort)
    die('Falsche Zugangsdaten!');

// OK, gültige Benutzername & Passwort
echo 'Sie sind angemeldet als: ' . $daten['username'];

// Funktion zum analysieren der HTTP-Auth-Header
function http_digest_parse($txt) {
    // gegen fehlende Daten schützen
    $noetige_teile = array('nonce'=>1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1,
                           'username'=>1, 'uri'=>1, 'response'=>1);
    $daten = array();
    $schluessel = implode('|', array_keys($noetige_teile));

    preg_match_all('@(' . $schluessel . ')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@',
                   $txt, $treffer, PREG_SET_ORDER);

    foreach ($treffer as $t) {
        $daten[$t[1]] = $t[3] ? $t[3] : $t[4];
        unset($noetige_teile[$t[1]]);
    }

    return $noetige_teile ? false : $daten;
}
?>

Hinweis: Hinweis zur Kompatibilität

Achten Sie für die maximale Kompatibilität mit allen Clients bei den Header-Zeilen auf die richtige Schreibweise! Das Schlüsselwort "Basic" sollte genau so geschrieben werden, der Realm-String muss in doppelte (nicht einfache) Anführungszeichen gesetzt werden und in der HTTP/1.0 401-Zeile darf nur genau ein Leerzeichen vor dem 401-Code stehen. Wie im Beispiel oben zu sehen, müssen die Authentifizierungsparameter durch Kommata getrennt werden.

Anstatt PHP_AUTH_USER und PHP_AUTH_PW wie im Beispiel oben einfach nur auszugeben, werden Sie den Benutzernamen und das Passwort auf Gültigkeit überprüfen wollen. Dies kann durch abfragen einer Datenbank oder die Suche des Benutzers in 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-Header.

Hinweis: Konfigurationshinweis

PHP prüft das Vorhandensein einer AuthType Apache-Direktive, um zu entscheiden, ob eine externe Authentifizierung aktiv ist.

Zu beachten ist, dass obenstehendes keinesfalls jemanden, der auf dem selben Server die Kontrolle über eine nicht authentifizierte URL hat, davon abhalten kann, Passwörter von authentifizierten URLs auszulesen.

Sowohl Netscape als auch der Internet Explorer löschen den lokalen Authentifizierungscache des Browserfensters, wenn der Server eine 401-Meldung zurückgibt. Dies kann benutzt werden, um einen Benutzer "auszuloggen" und eine erneute Eingabe des Benutzernamens/Passworts zu erzwingen. Manchmal wird dieses Verhalten für das automatische Ausloggen nach Ablauf einer bestimmten Zeitspanne oder für einen Logout-Button genutzt.

Beispiel #3 HTTP-Authentifizierung, mit erneuter Anforderung von Name/Passwort

<?php
function authentifizieren() {
    header('WWW-Authenticate: Basic realm="Test Authentication System"');
    header('HTTP/1.0 401 Unauthorized');
    echo "Bitte geben Sie eine gültige Login-ID und das Passwort für den
        Zugang ein\n";
    exit;
}

if (!isset($_SERVER['PHP_AUTH_USER']) ||
    ($_POST['Gesehen'] == 1 &&
    $_POST['AlteAuth'] == $_SERVER['PHP_AUTH_USER'])) {
    authentifizieren();
} else {
    echo "<p>Willkommen: " . htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "<br />";
    echo "Alt: " . htmlspecialchars($_REQUEST['AlteAuth']);
    echo "<form action='' METHOD='post'>\n";
    echo "<input type='hidden' name='Gesehen' value='1' />\n";
    echo "<input type='hidden' name='AlteAuth' value=\"" . htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "\" />\n";
    echo "<input type='submit' value='Erneut Anmelden' />\n";
    echo "</form></p>\n";
}
?>

Dieses Verhalten wird vom Authentifizierungsstandard HTTP Basic nicht gefordert, daher sollte man sich nie darauf verlassen. Tests mit Lynx haben gezeigt, dass Lynx die Authentifizierungsinformationen bei Erhalt einer 401-Meldung nicht löscht. Solange der benötigte Berechtigungsnachweis nicht geändert wird, kann der Benutzer auf die vorhergehende Seite zurück und danach vorwärts und die angeforderte Adresse wieder öffnen. Der Benutzer kann die Authentifizierungsinformationen aber durch Drücken von '_' löschen.

Damit die HTTP-Authentifizierung funktioniert, wenn der IIS mit der CGI-Version von PHP verwendet wird, müssen Sie die "Directory Security" Ihrer IIS-Konfiguration ändern. Klicken Sie auf "Edit" und aktivieren Sie nur "Anonymous Access". Alle anderen Felder sollten deaktiviert bleiben.

Hinweis: IIS-Anmerkung:
Damit die HTTP-Authentifizierung mit dem IIS funktioniert, muss die PHP-Konfigurationsanweisung cgi.rfc2616_headers auf 0 (die Voreinstellung) gesetzt sein.


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 Funktionen setcookie() und setrawcookie() gesetzt werden. Sie sind Bestandteil des HTTP-Headers, was bedeutet, dass die Funktion setcookie() aufgerufen werden muss, bevor irgendeine Ausgabe an den Browser erfolgt. Dies ist die gleiche Einschränkung, der auch die Funktion header() unterliegt. Sie können die Funktionen zur Ausgabesteuerung verwenden, um die Ausgaben des Skriptes zu verzögern, bis entschieden ist, ob Cookies gesetzt bzw. Header gesendet werden sollen oder nicht.

Vom Client gesendete Cookies werden automatisch im auto-globalen Array $_COOKIE abgelegt, wenn die variables_order-Konfigurationsvariable den Kennbuchstaben "C" enthält. Sollen einem Cookie mehrere Werte zugewiesen werden, so muss dem Cookienamen lediglich [] angefügt werden.

Weitere Informationen sowie Anmerkungen zu Browser-Bugs finden Sie in den Abschnitten setcookie() und setrawcookie().


Sessions

Sessionunterstützung in PHP besteht aus einer Möglichkeit, bestimmte Daten für nachfolgende Zugriffe aufzubewahren. Dies erlaubt es Ihnen, stärker angepasste Anwendungen zu entwickeln und den Reiz Ihrer Webseite zu erhöhen. Alle Informationen finden sich im Abschnitt mit der Session Referenz.


Mit XForms umgehen

» XForms definieren eine Variation traditioneller Webformulare, welche den Einsatz auf einer größeren Anzahl von Plattformen und Browsern oder sogar in untraditionellen Medien wie PDF Dokumenten erlauben.

Der erste große Unterschied von XForms besteht darin, wie das Formular zum Client gesendet wird. » XForms for HTML Authors enthält eine detaillierte Beschreibung davon, wie man XForms erzeugt. Für den Zweck dieser Einführung beschränken wir uns auf ein einfaches Beispiel.

Beispiel #1 Ein einfaches XForms-Suchformular

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Suche</h:title>
 <model>
  <submission action="http://example.com/search"
              method="post" xml:id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Finde</label></input>
  <submit submission="s"><label>Suche</label></submit>
 </h:p>
</h:body>
</h:html>

Das oben angegebene Formular zeigt ein Texteingabefeld (genannt q), sowie einen Absendeknopf. Wenn der Absendeknopf geklickt wird, wird das Formular an die unter action angegebene Seite gesendet.

Hier beginnt es aus der Sicht der Webapplikation anders auszusehen. In einem normalen HTML Formular würden die Daten application/x-www-form-urlencoded gesendet, in der Welt von XForms werden diese Informationen als XML formatierte Daten gesendet.

Wenn Sie sich für die Arbeit mit XForms entscheiden, dann wollen Sie die Daten wahrscheinlich als XML; in diesem Fall schauen Sie in $HTTP_RAW_POST_DATA, wo Sie das vom Browser erzeugte XML XML-Dokument finden werden, das Sie an Ihre bevorzugte XSLT-Engine oder Dokumentenparser weiterreichen können.

Wenn Sie nicht an der Formatierung interessiert sind und Ihre Daten in die traditionelle $_POST Variable geladen haben möchten, können Sie den Browser anweisen, die Daten als application/x-www-form-urlencoded zu senden, indem Sie das method Attribut auf urlencoded-post abändern.

Beispiel #2 XForm verwenden, um $_POST zu bestücken

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Suche</h:title>
 <model>
  <submission action="http://example.com/search"
              method="urlencoded-post" xml:id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Finde</label></input>
  <submit submission="s"><label>Suche</label></submit>
 </h:p>
</h:body>
</h:html>

Hinweis: Zum Zeitpunkt des Schreibens beherrschen viele Browser XForms nicht. Prüfen Sie Ihre Browserversion, wenn obiges Beispiel scheitert.


Steuerung von Dateiuploads

Inhaltsverzeichnis

  • Dateiuploads mit POST
  • Fehlermeldungen erklärt
  • Häufige Probleme
  • Upload mehrerer Dateien
  • PUT-Unterstützung
  • Siehe auch


Dateiuploads mit POST

Dieses Feature erlaubt es Benutzern sowohl Text- als auch Binärdaten hochzuladen. Mit PHP's Authentifizierungs- und Dateifunktionen besteht volle Kontrolle darüber, wer Dateien hochladen darf und was mit den Dateien geschehen soll, wenn das Hochladen beendet ist.

PHP kann Dateiuploads von jedem RFC-1867-konformen Browser empfangen.

Hinweis: Diesbezügliche Konfigurationshinweise

Siehe auch die Anweisungen file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size und max_input_time in der php.ini

PHP unterstützt auch das Hochladen von Dateien nach der PUT-Methode, die beispielsweise vom Netscape Composer und den W3C-Amaya-Clients verwendet wird. Siehe dazu PUT-Unterstützung für nähere Informationen.

Beispiel #1 Formular zum Hochladen von Dateien

Um Dateieuploads zu ermöglichen muss ein Formular erstellt werden, welches ungefähr wie folgt aussieht:

<!-- Der Kodierungstyp enctype MUSS wie dargestellt angegeben werden -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
    <!-- MAX_FILE_SIZE muss vor dem Datei-Eingabefeld stehen -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Der Name des Eingabefelds bestimmt den Namen im $_FILES-Array -->
    Diese Datei hochladen: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

__URL__ im obigen Beispiel sollte durch die URL eines PHP-Skripts ersetzt werden.

Das "hidden"-Feld MAX_FILE_SIZE muss dem "file"-Eingabefeld vorangestellt werden; der angegebene Wert bestimmt die maximale akzeptierte Dateigröße in Bytes. Dieses Formular-Element sollte immer benutzt werden, da es dem Benutzer erspart auf einen großen Dateiupload zu warten, nur um festzustellen, dass die Datei zu groß war und der Upload fehlgeschlagen ist. Es sollte jedoch beachtet werden, dass diese Browserseitige Einstellung sehr einfach zu umgehen ist und man sich daher niemals darauf verlassen sollte, dass sie übergroße Dateiuploads verhindert. Die Server-seitige Option für die Maximalgröße kann hingegen nicht umgangen werden.

Hinweis:

Das Uploadformular muss unbedingt das Attribut enctype="multipart/form-data" angeben, andernfalls wird der Upload nicht funktionieren.

Die globale Variable $_FILES enthält alle Informationen über hochgeladene Dateien. Im Folgenden sind ihre Inhalte für das obige Beispielformular aufgelistet. Beachten Sie, dass dies auf der Annahme basiert, dass der Name des Dateiuploads wie in dem obigen Beispielskript userfile ist. Es kann aber auch jeder andere Name verwendet werden.

$_FILES['userfile']['name']

Der ursprüngliche Dateiname auf dem Computer des Benutzers.

$_FILES['userfile']['type']

Der MIME-Type der Datei, falls der Browser diese Information zur Verfügung gestellt hat. Ein Beispiel wäre "image/gif". Dieser MIME-Type wird jedoch nicht von PHP geprüft und kann somit falsch sein.

$_FILES['userfile']['size']

Die Größe der hochgeladenen Datei in Bytes.

$_FILES['userfile']['tmp_name']

Der temporäre Dateiname, unter dem die hochgeladene Datei auf dem Server gespeichert wurde.

$_FILES['userfile']['error']

Der Fehlercode des Uploads.

Standardmäßig werden Dateien im standardmäßigen temporären Verzeichnis des Servers gespeichert, außer es wurde mittels upload_tmp_dir in der php.ini ein anderer Ort konfiguriert. Das Standardverzeichnis des Servers kann durch das Setzen der Umgebungsvariablen TMPDIR in der Umgebung, in der PHP ausgeführt wird, geändert werden. Das Setzen mittels der Funktion putenv() innerhalb eines Skriptes ist nicht möglich. Mittels dieser Umgebungsvariable kann auch sichergestellt werden, dass auch andere Operationen an hochgeladenen Dateien arbeiten können.

Beispiel #2 Dateiuploads prüfen

Weitere Informationen finden Sie auch in den Beschreibungen für is_uploaded_file() und move_uploaded_file(). Das folgende Beispiel verarbeitet einen von einem HTML-Formular kommenden Dateiupload.

<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "Datei ist valide und wurde erfolgreich hochgeladen.\n";
} else {
    echo "Möglicherweise eine Dateiupload-Attacke!\n";
}

echo 'Weitere Debugging Informationen:';
print_r($_FILES);

print "</pre>";

?>

Das die hochgeladene Datei empfangende Skript sollte die notwendige Logik zur Entscheidung enthalten, was mit der hochgeladenen Datei geschehen soll. Sie können zum Beispiel $_FILES['userfile']['size'] verwenden, um zu kleine bzw. zu große Dateien wegzuwerfen. Sie können $_FILES['userfile']['type'] nutzen, um Dateien eines unerwünschten Typs wegzuwerfen, sollten dabei jedoch beachten, dass dieser Wert vollständig vom Benutzer kontrolliert wird und somit falsch sein kann. Sie können Ihre Logik auch mittels $_FILES['userfile']['error'] anhand der Fehlercodes planen. Egal welche Logik Sie verwenden, Sie sollten die Datei im temporären Verzeichnis entweder löschen, oder an einen anderen Ort verschieben.

Wenn im Formular keine Datei ausgewählt wurde so wird $_FILES['userfile']['size'] von PHP auf 0 gesetzt und $_FILES['userfile']['tmp_name'] ist leer.

Wurde die Datei in dem temporären Verzeichnis nicht verschoben oder umbenannt, wird sie am Ende des Requests gelöscht.

Beispiel #3 Hochladen eines Arrays von Dateien

PHP unterstützt HTML Arrays auch für Dateien.

<form action="" method="post" enctype="multipart/form-data">
<p>Pictures:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        // basename() kann Directory Traversal Angriffe verhindern; weitere
        // Gültigkeitsprüfung/Bereinigung des Dateinamens kann angebracht sein
        $name = basename($_FILES["pictures"]["name"][$key]);
        move_uploaded_file($tmp_name, "data/$name");
    }
}
?>

Eine Fortschrittsanzeige für Dateiuploads kann mittels Session Upload Progress implementiert werden.


Fehlermeldungen erklärt

PHP gibt zusammen mit dem Datei-Array entsprechende Fehlermeldungen zurück. Die Fehlermeldung befindet sich im Segment error des Datei-Arrays, welches während des Hochladens der Datei erstellt wird. Mit anderen Worten: der Fehler kann in $_FILES['userfile']['error'] gefunden werden.

UPLOAD_ERR_OK

Wert: 0; Es liegt kein Fehler vor, die Datei wurde erfolgreich hochgeladen.

UPLOAD_ERR_INI_SIZE

Wert: 1; Die hochgeladene Datei überschreitet die in der php.ini-Anweisung upload_max_filesize festgelegte Größe.

UPLOAD_ERR_FORM_SIZE

Wert: 2; Die hochgeladene Datei überschreitet die im HTML-Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.

UPLOAD_ERR_PARTIAL

Wert: 3; Die Datei wurde nur teilweise hochgeladen.

UPLOAD_ERR_NO_FILE

Wert: 4; Es wurde keine Datei hochgeladen.

UPLOAD_ERR_NO_TMP_DIR

Wert: 6; Fehlender temporärer Ordner. Eingeführt in PHP 5.0.3.

UPLOAD_ERR_CANT_WRITE

Wert: 7; Das Speichern der Datei auf die Festplatte ist fehlgeschlagen. Eingeführt in PHP 5.1.0.

UPLOAD_ERR_EXTENSION

Wert: 8; Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt. PHP bietet keine Möglichkeit an, um festzustellen welche Erweiterung das Hochladen der Datei gestoppt hat. Die Überprüfung aller geladenen Erweiterungen mittels phpinfo() könnte helfen. Eingeführt in PHP 5.2.0.


Häufige Probleme

Der mit MAX_FILE_SIZE eingestellte Wert kann nicht größer sein als der des ini-Parameters upload_max_filesize. Der Standardwert ist 2 Megabyte.

Ist das Speicherlimit aktiviert, könnte eine Erhöhung von memory_limit nötig sein. Stellen Sie sicher, dass der Wert von memory_limit groß genug ist.

Wenn max_execution_time zu kurz konfiguriert ist, könnte das Skript den Wert überschritten haben. Stellen Sie sicher, dass der Wert von max_execution_time groß genug ist.

Hinweis: max_execution_time beschränkt nur die Ausführungszeit des Skripts selbst. Jegliche Zeit die auf Dinge entfällt die außerhalb des Skripts stattfinden, wie z.B. Systemaufrufe mit system(), die Funktion sleep(), Datenbankabfragen und die für das Hochladen von Dateien benötigte Zeit werden bei der Bestimmung der Ausführungszeit nicht mit einbezogen.

Warnung

max_input_time legt die maximale Zeit in Sekunden fest während der es einem Skript gestattet ist Eingaben zu empfangen. Diese beinhaltet auch die für das Hochladen von Dateien benötigte Zeit. Werden viele oder große Dateien übertragen oder ist die Verbindung zum Benutzer langsam, so kann die Standardeinstellung von 60 Sekunden überschritten werden.

Ist post_max_size zu klein eingestellt, können große Dateien nicht hochgeladen werden. Stellen Sie sicher, dass der Wert von post_max_size groß genug ist.

Von PHP 5.2.12 an kontrolliert die Option max_file_uploads die maximale Anzahl Dateien, die während einer Anfrage hochgeladen werden können. Wenn mehr Dateien hochgeladen werden als das Limit, werden diese nicht in das $_FILES-Array aufgenommen. Wenn max_file_uploads beispielsweise auf 10 gesetzt ist, so wird $_FILES nie mehr als 10 Einträge enthalten.

Nicht zu prüfen, an welcher Datei Sie arbeiten, kann bedeuten, dass Benutzer auf sensible Informationen in anderen Verzeichnissen Zugriff erhalten.

Beachten Sie, dass der CERN httpd in dem vom Client erhaltenen Content-Type MIME-Header alles nach dem ersten Whitespace wegzuschneiden scheint. Solange dies der Fall ist, unterstützt der CERN httpd keine Dateiuploads.

Aufgrund der vielen möglichen Arten der Darstellung von Verzeichnissen können wir nicht garantieren, dass Dateien mit exotischen Namen (wie z.B. mit enthaltenen Leerzeichen) auch wirklich richtig verarbeitet werden.

Es ist nicht möglich, für normale Formularfelder und Dateifelder die gleiche Formularvariable (wie z.B. foo[]) zu verwenden.


Upload mehrerer Dateien

Mehrere Dateien können hochgeladen werden, indem Sie verschiedene Namen name für input verwenden.

Es ist ebenfalls möglich, mehrere Dateien simultan hochzuladen, und die Informationen automatisch in Arrays zu erhalten. Um dies zu tun, verwenden Sie in dem HTML-Formular die gleiche Array-Sende-Syntax wie bei Auswahllisten mit Mehrfachauswahl und Checkboxen:

Beispiel #1 Hochladen mehrerer Dateien

<form action="file-upload.php" method="POST" enctype="multipart/form-data">
  Send these files:<br>
  <input name="userfile[]" type="file"><br>
  <input name="userfile[]" type="file"><br>
  <input type="submit" value="Send files">
</form>

Wenn das obige Formular übermittelt ist, werden die Arrays $_FILES['userfile'], $_FILES['userfile']['name'] und $_FILES['userfile']['size'] initialisiert.

Nehmen wir zum Beispiel an, dass die Dateinamen /home/test/review.html und /home/test/xwp.out übermittelt wurden. In diesem Fall würde $_FILES['userfile']['name'][0] review.html enthalten und $_FILES['userfile']['name'][1] hätte den Wert xwp.out. Genauso würde $_FILES['userfile']['size'][0] die Dateigröße von review.html enthalten, usw.

$_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0] und $_FILES['userfile']['type'][0] sind ebenfalls gesetzt.

Warnung

Von PHP 5.2.12 an setzt die Option max_file_uploads ein Limit auf die Anzahl der Dateien, welche in einem Request hochgeladen werden können. Sie müssen sicherstellen, dass ihr Formular nicht erlaubt, mehr Dateien hochzuladen als dieses Limit.


PUT-Unterstützung

PHP unterstützt die HTTP-PUT-Methode, welche von einigen Clients verwendet wird, um Dateien auf dem Server zu speichern. PUT-Anfragen sind weitaus unkomplizierter als ein POST-Dateiupload und sehen etwa so aus:

PUT /path/filename.html HTTP/1.1

Das würde normalerweise bedeuten, dass der Client den nachfolgenden Inhalt als /path/filename.html auf dem Server speichern will. Natürlich ist es keine gute Idee, dass PHP oder Apache jeden Benutzer beliebige Dateien überschreiben lässt. Um eine solche Anfrage bearbeiten zu können, muss der Webserver erst angewiesen werden, ein bestimmtes PHP-Skript für die Abarbeitung aufzurufen. In Apache wird dies durch die Direktive Script festgelegt. Sie kann fast überall in der Apache-Konfigurationsdatei platziert werden, gebräuchlich ist die Platzierung innerhalb eines <Directory>- oder Virtualhost-Abschnitts. Eine Zeile wie die folgende erledigt dies:

Script PUT /put.php

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

In der put.php könnte anschließend ein Code wie der folgende verwendet werden. Dieser würde den Inhalt der hochgeladenen Datei in die Datei myputfile.ext auf dem Server kopieren.

Beispiel #1 Speichern von HTTP-PUT-Dateien

<?php
/* PUT Daten kommen in den stdin Stream */
$putdata = fopen("php://input","r");

/* Eine Datei zum Schreiben öffnen */
$fp = fopen("myputfile.ext","w");

/* Jeweils 1kB Daten lesen und
   in die Datei schreiben */
while ($data = fread($putdata,1024))
  fwrite($fp,$data);

/* Die Streams schließen */
fclose($fp);
fclose($putdata);
?>


  • « PUT-Unterstützung
  • Zugriff auf entfernte Dateien »
  • PHP Manual
  • Steuerung von Dateiuploads
  • Siehe auch

Siehe auch

  • Dateisystem-Sicherheit


Zugriff auf entfernte Dateien

Wenn allow_url_fopen in der php.ini aktiviert ist, können HTTP- und FTP-URLs bei den meisten Funktionen verwendet werden, die einen Dateinamen als Parameter benötigen. Darüber hinaus können URLs in include-, include_once-, require- und require_once-Anweisungen verwendet werden (ab PHP 5.2.0 muss dafür allow_url_include aktiviert sein). Weitere Informationen zu den Protokollen, die von PHP unterstützt werden, finden Sie im Abschnitt Unterstützte Protokolle und Wrapper.

Beispielsweise kann damit eine Datei auf einem anderen Webserver geöffnet und nach benötigten Daten analysiert werden. Diese Daten können zur Abfrage einer Datenbank benutzt werden oder passend zum Rest der eigenen Website ausgegeben werden.

Beispiel #1 Den Titel einer entfernten Seite auslesen

<?php
$datei = fopen ("http://www.example.com/", "r");
if (!$datei) {
    echo "<p>Datei konnte nicht geöffnet werden.\n";
    exit;
}
while (!feof ($datei)) {
    $zeile = fgets ($datei, 1024);
    /* Funktioniert nur, wenn Titel und title-Tags in einer Zeile stehen */
    if (preg_match ("@\<title\>(.*)\</title\>@i", $zeile, $treffer)) {
        $title = $treffer[1];
        break;
    }
}
fclose($datei);
?>

Auch eine Datei auf einem FTP-Server kann geschrieben werden, vorausgesetzt man ist als Benutzer mit entsprechenden Zugriffsrechten angemeldet. Auf diesem Weg können nur neue Dateien angelegt werden. Falls Sie versuchen eine schon existierende Datei zu überschreiben, wird der fopen()-Aufruf fehlschlagen.

Um sich statt als 'anonymous' als anderer Benutzer anzumelden, muss ein Benutzername (und möglicherweise ein Passwort) innerhalb der URL angegeben werden, wie z.B. 'ftp://benutzer:passwort@ftp.example.com/pfad/zur/datei'. Die selbe Syntax kann verwendet werden, um auf Dateien via HTTP zuzugreifen, wenn diese eine Basic-Authentifizierung benötigen.

Beispiel #2 Daten auf einen entfernten Server speichern

<?php
$datei = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$datei) {
    echo "<p>Datei konnte nicht zum schreiben geöffnet werden.\n";
    exit;
}
/* Schreibe die Daten hier hin. */
fputs ($datei, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($datei);
?>

Hinweis:

Obiges Beispiel könnte dazu verleiten, dieses Verfahren zu benutzen, um in eine entfernte Log-Datei zu schreiben. Das würde aber leider nicht funktionieren, weil der fopen()-Aufruf fehlschlagen würde, wenn die entfernte Datei bereits existiert. Für eine dezentralisierte Protokollierung sollten Sie sich die Funktion syslog() anschauen.


Verbindungssteuerung

PHP erhält intern einen Verbindungsstatus. Dieser kann vier Zustände annehmen:

  • 0 - NORMAL
  • 1 - ABORTED
  • 2 - TIMEOUT
  • 3 - ABORTED und 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 veranlasst, wenn Benutzer den STOP-Button des Browsers drücken. 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 php.ini, durch die entsprechende Option php_value ignore_user_abort in der Apache-Konfigurationsdatei httpd.conf als auch durch ignore_user_abort() beeinflußt werden. Wenn PHP nicht angewiesen wird, einen Verbindungsabbruch durch den Benutzer zu ignorieren und die Verbindung dann durch den Benutzer beendet wird, wird die Abarbeitung des Scriptes abgebrochen. Die einzige Ausnahme ist, wenn durch die Funktion register_shutdown_function() eine Shutdown-Funktion angegeben wird, die bei clientseitigem Abbruch ausgeführt wird. Wenn dann der Benutzer den STOP-Button seines Browsers drückt, wird PHP bei der nächsten Ausgabe des Skriptes feststellen, dass die Verbindung abgebrochen wurde und die Shutdown-Funktion aufrufen. Diese Shutdown-Funktion wird auch aufgerufen, wenn das Skript auf normalem Wege beendet wird, daher sollte man, wenn man für den Fall eines Benutzerabbruchs etwas anderes vorgesehen hat, die Funktion connection_aborted() verwenden. Sie gibt true zurück, wenn die Verbindung abgebrochen wurde.

Ein Skript kann ebenfalls durch den eingebauten Script-Timer beendet werden. Der Standard-Timeout beträgt 30 Sekunden. Er kann durch die Option max_execution_time in der php.ini, durch den entsprechenden Eintrag php_value max_execution_time in der Apache-Konfigurationsdatei httpd.conf 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_status() benutzt werden. Sie gibt 2 zurück, wenn es sich um eine Zeitüberschreitung handelt.

Zu bemerken ist, dass der ABORTED- und der TIMEOUT-Status gleichzeitig auftreten können. Dies ist möglich, wenn PHP angewiesen wird, Benutzerabbrüche zu ignorieren. PHP wird feststellen, dass der Benutzer die Verbindung abgebrochen hat, das Skript allerdings läuft weiter. Sollte es dann das Zeitlimit erreichen, wird es abgebrochen und eine Shutdown-Funktion, wenn definiert, wird aufgerufen. Zu diesem Zeitpunkt kann man feststellen, dass connection_timeout() und connection_aborted() true zurückgeben. Diese beiden Statusmöglichkeiten können auch durch einen Aufruf der Funktion connection_status() abgefragt werden. Sie liefert ein Bitfeld des aktiven Status. Wenn beispielsweise TIMEOUT und ABORTED aktiv sind, wird 3 zurückgegeben.


Persistente Datenbankverbindungen

Persistente Verbindungen sind 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 vertraut ist, wie Webserver arbeiten und die Last verteilen, könnte missverstehen, wofür persistente Verbindungen gedacht sind. Im Besonderen bieten sie keine Möglichkeit, 'Benutzersitzungen' über die gleiche Verbindung zu öffnen und keine Möglichkeit, eine Transaktion effizient aufzubauen, und sie können auch viele andere Dinge nicht. Um absolute Klarheit zu schaffen: Persistente Verbindungen bieten keine Funktionalität, die nicht auch von nicht-persistenten Verbindungen bereitgestellt wird.

Warum?

Das hat mit der Arbeitsweise von Webservern zu tun. Es gibt drei Möglichkeiten, wie ein Webserver PHP zur Generierung von Webseiten einsetzen kann.

Die erste Methode ist, PHP als CGI-'Wrapper' zu benutzen. Wenn diese Methode eingesetzt wird, wird für jede Anfrage nach einer PHP-Seite vom Webserver eine Instanz des PHP- Interpreters gestartet und anschließend wieder beendet. Durch die Beendigung des Interpreters nach abgeschlossener Anfrage werden alle Ressourcen, auf die zugegriffen wurde (wie beispielsweise eine Verbindung zu einem SQL- Datenbankserver) wieder geschlossen. In diesem Fall erreicht man nichts, wenn man persistente Verbindungen benutzt - sie sind eben nicht beständig.

Die zweite und populärste Methode ist der Einsatz von PHP als Modul in einem Multiprozess-Webserver, was momentan nur auf den Apache zutrifft. Typischerweise hat ein Multiprozess-Webserver einen Prozess (den 'Eltern' Prozess), der einen Satz weiterer Prozesse (die 'Kinder') koordiniert, welche die eigentliche Arbeit des Bereitstellens der Seiten übernehmen. Jede Anfrage, die von einem Client erfolgt, wird an einen untergeordneten Prozess, der noch keine andere Anfrage bearbeitet, weitergereicht. Das bedeutet, dass eine zweite Anfrage des gleichen Clients an den Server unter Umständen von einem anderen untergeordneten Prozess als die erste Anfrage bearbeitet wird. Wurde eine persistente Verbindung einmal geöffnet kann jede danach folgende Seite innerhalb des gleichen Prozesses diese bereits zum Server bestehende Verbindung weiter verwenden.

Die letzte Methode ist, PHP als Plug-in für einen Multithread- Webserver zu benutzen. Derzeit bietet PHP Unterstützung für WSAPI und NSAPI (unter Windows), wodurch die Nutzung von PHP mit Multithread-Serven wie Netscape Fast Track (iPlanet), Microsoft Internet Information Server (IIS) und O'Reilly's WebSite Pro ermöglicht wird. Das Verhalten entspricht im wesentlichen dem oben beschriebenen Multiprozess-Modell.

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

Die Antwort ist außerordentlich einfach: Effizienz. Persistente Verbindungen sind nützlich, wenn der Aufwand für das Herstellen einer Verbindung zu einem SQL-Server hoch ist. Ob dies der Fall ist oder nicht, hängt von vielen Faktoren ab - zum Beispiel, um welche Datenbank es sich handelt, ob sie auf dem gleichen Rechner wie der Webserver läuft oder welche Last die SQL-Maschine zu bewältigen hat usw. Grundsätzlich gilt, dass, wenn viele Verbindungen hergestellt werden müssen, persistente Verbindungen außerordentlich hilfreich sind. Sie veranlassen den untergeordneten Prozess, sich während seiner gesamten Lebensdauer lediglich einmal mit dem SQL-Server zu verbinden, anstatt bei jedem Aufruf einer Seite, die eine Verbindung benötigt. Das heißt, dass jeder untergeordnete Prozess, der eine persistente Verbindung öffnet, seine eigene dauerhafte Verbindung zum Server hat. Bei 20 untergeordneten Prozessen, die ein Skript ausführen, das eine persistente Verbindung zum SQL-Server herstellt, hat man beispielsweise 20 verschiedene Verbindungen zum SQL-Server - eine für jeden untergeordneten Prozess.

Beachten Sie jedoch, dass dies auch ein paar Nachteile haben kann, wenn Sie eine Datenbank mit limitierten Verbindungen benutzen, welche durch persistente Verbindungen überschritten werden. Wenn Ihre Datenbank ein Limit von 16 gleichzeitigen Verbindungen hat, und aufgrund einer stark ausgelasteten Server-Session 17 Kind-Prozesse versuchen, eine Verbindung herzustellen, wird es einem nicht gelingen. Sollten in Ihren Skripten Fehler bestehen, welche das Schließen der Verbindungen nicht erlauben (wie z.B. Endlosschleifen), kann das eine Datenbank mit mit nur 16 Verbindungen sehr schnell überschwemmen. Konsultieren Sie die Dokumentation Ihrer Datenbank bezüglich der Behandlung von aufgegebenen Verbindungen oder Verbindungen im Leerlauf.

Warnung

Sie sollten sich zur Vorsicht noch ein paar Gedanken machen, wenn Sie persistente Verbindungen benutzen. Einer ist, wenn Sie über eine persistente Verbindung Tabellen sperren und das Skript diese Sperre aus welchem Grund auch immer nicht mehr aufheben kann, nachfolgende Skripte, welche die selbe Verbindung benutzen, blockieren und den Neustart von entweder dem Webserver oder dem Datenbankserver verlangen. Ein weiterer ist, dass wenn Sie Transaktionen benutzen, ein Transaktionsblock zu dem nächsten die Verbindung nutzenden Skript übertragen wird, wenn die Ausführung des Skriptes vor dem Transaktionsblock gestoppt wird. In jedem Fall können Sie register_shutdown_function() benutzen, um eine einfache Funktion zu registrieren, welche Ihre Tabellen wieder entsperrt, oder Ihre Transaktionen zurückstellt. Besser ist es, wenn Sie dieses Problem gänzlich vermeiden, indem keine persistenten Verbindungen in Skripten benutzen, welche Tabellen sperren oder Transaktionen verwenden (Sie können sie immer noch anderswo benutzen).

Eine wichtige Zusammenfassung. Persistente Verbindungen wurden entwickelt, um eins-zu-eins Abbildungen auf reguläre Verbindungen zu haben. Das heißt, dass man immer in der Lage sein sollte, die persistenten Verbindungen durch nicht-persistente zu ersetzten, ohne dass dies den Skriptablauf verändert. Es kann (und wird vermutlich auch) die Effizienz des Skriptes beeinflussen, aber nicht dessen Verhalten.

Siehe auch fbsql_pconnect(),
ibase_pconnect(), ifx_pconnect(),
msql_pconnect(), mssql_pconnect(),
mysql_pconnect(), ociplogon(),
odbc_pconnect(), ora_plogon(),
pfsockopen(), pg_pconnect() und
sybase_pconnect().


Nutzung von PHP auf der Kommandozeile

Inhaltsverzeichnis

  • Introduction
  • Unterschiede zu anderen SAPIs
  • Optionen
  • Verwendung
  • I/O Streams
  • Interaktiver Modus
  • Eingebauter Webserver
  • INI Einstellungen


Introduction

Das Hauptaugenmerk der CLI SAPI ist die Entwicklung von Kommandozeilenanwendungen. Es gibt einige Unterschiede zwischen der CLI SAPI und anderen SAPIs, welche in diesem Kapitel beschrieben werden. Es ist erwähnenswert, dass CLI und CGI verschiedene SAPIs sind, auch wenn sie viele Verhaltensweisen teilen.

Die CLI SAPI ist standardmäßig durch die Option --enable-cli aktiviert, kann jedoch durch Angabe der Option --disable-cli im ./configure-Skript deaktiviert werden.

Der Name, der Pfad und das Vorhandensein der CLI/CGI-Binaries hängt davon ab, wie PHP auf dem System installiert wurde. Standarmäßig werden nach dem Aufruf von make sowohl CGI als auch CLI kompiliert und als sapi/cgi/php-cgi beziehungsweise sapi/cli/php in Ihrem PHP-Quellcodeverzeichnis gespeichert. Sie werden bemerken, dass beide php heissen. Was während make install passiert, hängt davon ab, wie PHP konfiguriert wurde. Wenn bei der Konfiguration eine Modul-SAPI wie z.B. apxs gewählt wurde oder die Option --disable-cgi genutzt wurde, wird die CLI während make install nach {PREFIX}/bin/php kopiert. Andernfalls wird das CGI-Binary dorthin kopiert. Also wird, wenn beispielsweise --with--apxs in Ihrem configure-Kommando angegeben ist, die CLI während make install nach {PREFIX}/bin/php kopiert. Wenn Sie die Installation des CGI-Binaries überschreiben wollen, verwenden Sie make install-cli nach make install. Alternativ können Sie --disable-cgi in Ihrem configure-Kommando angeben.

Hinweis:

Weil sowohl --enable-cli als auch --enable-cgi standardmäßig eingeschaltet sind, muss --enable-cli in Ihrem configure-Kommando nicht zwingend bedeuten, dass die CLI während make install nach {PREFIX}/bin/php kopiert wird.

Seit PHP 5 wird auf Windows das CLI-Binary im Hauptordner als php.exe ausgeliefert. Die CGI-Version wird als php-cgi.exe bereitgestellt. Zusätzlich wird php-win.exe ausgeliefert, wenn PHP mit --enable-cli-win32 konfiguriert wurde. Dieses Binary verhält sich genauso wie die CLI-Version, bis auf die Tatsache, dass sie nichts ausgibt und somit keine Konsole zur Verfügung stellt.

Hinweis: Welche SAPI habe ich?

Auf der Kommandozeile wird Ihnen die Eingabe von php -v verraten, ob Sie php als CGI oder CLI einsetzen. Sehen Sie sich auch die Funktion php_sapi_name() und die Konstante PHP_SAPI an.

Hinweis:

Eine UNIX-Manpage ist durch eingabe von man php in der Kommandozeile verfügbar.


Unterschiede zu anderen SAPIs

Wesentliche Unterschiede der CLI-SAPI zu anderen SAPIs:

  • Anders als bei der CGI-SAPI werden keine Header ausgegeben.

    Obwohl die CGI-SAPI eine Option bietet, HTTP-Header zu unterdrücken, gibt es keine gleichwertige Option, sie in der CLI SAPI anzuzeigen.

    CLI wird standardmäßig im stillen Modus gestartet, dennoch gibt es die Optionen -q und --no-header aus Kompatibilitätsgründen noch, so dass Sie auch ältere CGI-Skripte noch verwenden können.

    Es wechselt das Arbeitsverzeichnis nicht in das des Skriptes. (Die Optionen -C und --no-chdir wurden aus Kompatibilitätsgründen beibehalten.)

    Fehlermeldungen im Klartext (keine HTML-Formatierung).

  • Es gibt bestimmte php.ini-Direktiven, die von der CLI SAPI außer Kraft gesetzt werden, weil sie in einer Kommandozeilenumgebung keinen Sinn ergeben.

    Überschriebene php.ini-Direktiven
    Direktive | CLI SAPI-Standardwert | Kommentar
    html_errors | false | Es kann sehr schwierig sein, eine Fehlermeldung auf der Kommandozeile zu lesen, wenn sie mit all diesen bedeutungslosen HTML-Tags vollgestopft ist, deswegen wird diese Direktive auf false gesetzt.
    implicit_flush | true | Es ist normalerweise erwünscht, dass alle Ausgaben, die von print, echo und Konsorten kommen, sofort auf die Ausgabe geschrieben werden und nicht in einem Puffer gecacht werden. Sie können jedoch immer noch output buffering verwenden, wenn Sie die Standardausgabe aufschieben oder manipulieren wollen.
    max_execution_time | 0 (unendlich) | Da die Anwendungsbereiche von Kommandozeilenanwendungen deutlich unterschiedlicher sind als die von Web-Applikationen und da diese oft lange Laufzeiten besitzen, wird die maximale Ausführungszeit auf unendlich gesetzt.
    register_argc_argv true

    Weil diese Einstellung auf true gesetzt ist, werden Skripte, die über die CLI-SAPI ausgeführt werden, immer Zugriff auf argc (Anzahl der Argumente, die der Anwendung übergeben wurden) und argv (Array der eigentlichen Argumente) haben.

    Die PHP-Variablen $argc und $argv werden automatisch mit den entsprechenden Werten gefüllt, wenn die CLI-SAPI verwendet wird. Diese Werte können auch im $_SERVER-Array gefunden werden, beispielsweise: $_SERVER['argv'].

    output_buffering false

    Auch wenn diese php.ini-Option fest auf false gesetzt ist, sind die Funktionen der Ausgabepufferung verfügbar.

    max_input_time false

    Die PHP-CLI unterstützt GET, POST und Dateiuploads nicht.

    Hinweis:

    Diese Direktiven können nicht mit einem anderen Wert aus der Konfigurationsdatei php.ini oder einer eigenen (falls angegeben) initialisiert werden. Diese Einschränkung ergibt sich dadurch, dass diese Standardwerte angewandt werden, nachdem alle Konfigurationsdateien gelesen wurden. Dennoch können die Werte zur Laufzeit verändert werden (was aber nicht für alle dieser Direktiven einen Sinn ergibt, beispielsweise register_argc_argv).

    Hinweis:

    Es wird empfohlen ignore_user_abort für Kommandozeilenanwendungen zu setzen. Siehe ignore_user_abort() für weitere Informationen.

  • Um die Arbeit in der Kommandozeilenumgebung zu erleichtern, wurden einige Konstanten für Ein- und Ausgabestreams definiert.

  • Die CLI SAPI wechselt das aktuelle Arbeitsverzeichnis nicht ins Verzeichnis des ausgeführten Skripts.

    Beispiel #1 Beispiel, welches den Unterschied zur CGI-SAPI verdeutlicht:

    <?php
    // Unsere einfache Anwendung namens test.php
    echo getcwd(), "\n";
    ?>

    Bei der CGI-Version ist die Ausgabe folgende:

    $ pwd
/tmp

$ php -q anderes_verzeichnis/test.php
/tmp/anderes_verzeichnis

    Dies zeigt deutlich, dass PHP vom aktuellen Verzeichnis in das des ausgeführten Skriptes wechselt.

    Nutzung der CLI SAPI führt zu folgender Ausgabe:

    $ pwd
/tmp

$ php -f anderes_verzeichnis/test.php
/tmp

    Dies ermöglicht eine größere Flexibilität beim Erstellen von Kommandozeilenanwendungen in PHP.

    Hinweis:

    Die CGI-SAPI unterstützt das Verhalten der CLI SAPI durch Angabe der Option -C beim Starten von der Kommandozeile.


Kommandozeilenoptionen

Die Liste der Kommandozeilenoptionen, die das PHP-Binary bereitstellt, kann jederzeit abgerufen werden, indem PHP mit der Option -h gestartet wird:

Usage: php [options] [-f] <file> [--] [args...]
   php [options] -r <code> [--] [args...]
   php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
   php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
   php [options] -- [args...]
   php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -S <addr>:<port> Run with built-in web server.
  -t <docroot>     Specify document root <docroot> for built-in web server.
  -s               Output HTML syntax highlighted source.
  -v               Version number
  -w               Output source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

  --ini            Show configuration file names

  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --rz <name>      Show information about Zend extension <name>.
  --ri <name>      Show configuration for extension <name>.

Kommandozeilenoptionen
Option | Langform | Beschreibung
-a --interactive

Startet PHP im interaktiven Modus. Weitere Informationen siehe die Dokumentation für den Interaktiven Modus.

-b --bindpath

Der Bind Path für den externen FASTCGI-Servermodus (nur CGI).

-C --no-chdir

Nicht in das Verzeichnis des Skripts wechseln (nur CGI).

-q --no-header

Der Quiet-Mode. Unterdrücke die Ausgabe von HTTP-Headern (nur CGI).

-T --timing

Messe die Ausführungszeit des Skriptes. Dies wird count Mal durchgeführt (nur CGI).

-c --php-ini

Mit dieser Option kann man entweder ein Verzichnis angeben, in welchem nach der php.ini gesucht werden soll, oder man kann eine eigene INI-Datei angeben (diese muss nicht php.ini heissen). Zum Beispiel:

$ php -c /custom/directory/ my_script.php

$ php -c /custom/directory/custom-file.ini my_script.php

Wenn Sie diese Option nicht angeben, wird die php.ini-Datei an den vorgegebenen Orten gesucht.

-n --no-php-ini

php.ini komplett ignorieren.

-d --define

Diese Option erlaubt es Ihnen, einen eigenen Wert für eine beliebige in php.ini erlaubte Direktive zu setzen. Die Syntax ist:

-d configuration_directive[=value]

# Auslassen des Wertes setzt die Direktive auf "1"
$ php -d max_execution_time
      -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# Übergeben eines leeren Wertes setzt die Direktive auf ""
php -d max_execution_time=
    -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# Die Direktive wird auf das gesetzt, was nach '=' kommt
$  php -d max_execution_time=20
       -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(2) "20"
$  php -d max_execution_time=doesntmakesense
       -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(15) "doesntmakesense"

-e --profile-info

Erweiterte Informationen für Debugger/Profiler erstellen.

-f --file

Parst und führt die angegebene Datei aus. Das -f ist optional und kann weggelassen werden. Es genügt, nur den Dateinamen anzugeben.

Hinweis:

Um Argumente an das Skript zu übergeben, muss das erste Argument -- sein, ansonsten interpretiert PHP diese als PHP-Optionen.

-h und -? | --help und --usage | Gibt eine Liste von Kommandozeilenoptionen, sowie kurzen Beschreibungen aus.
-i | --info | Diese Kommandozeilenoption ruft phpinfo() auf und gibt das Ergebnis aus. Wenn PHP nicht korrekt funktioniert, ist es empfehlenswert, php -i zu verwenden und nachzusehen, ob etwa Fehlermeldungen vor oder statt der Informationstabellen ausgegeben werden. Beachten Sie, dass die Ausgabe bei Verwendung des CGI-Modus in HTML erfolgt und deswegen ziemlich umfangreich ist.
-l --syntax-check

Diese Option stellt eine angenehme Methode bereit, nur eine Syntaxüberprüfung des angegebenen PHP-Codes durchzuführen. Bei Erfolg wird der Text No syntax errors detected in <filename> auf die Standardausgabe geschrieben und der Rückgabewert ist 0. Bei Misserfolg wird der Text Errors parsing <filename> zusätzlich zur internen Parser-Fehlermeldung auf der Standardausgabe ausgegeben und der Rückgabewert auf -1 gesetzt.

Diese Option wird keine fatalen Fehler (wie undefinierte Funktionen) finden. Verwenden Sie die Option -f, wenn sie auch diese überprüfen wollen.

Hinweis:

Diese Option funktioniert nicht zusammen mit -r.

-m --modules

Beispiel #1 Ausgabe der geladenen PHP- und Zend-Module

$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-r --run

Diese Option erlaubt die Ausführung von PHP Code direkt von der Kommandozeile. Die-PHP Tags <?php und ?> werden nicht benötigt und verursachen einen Parsefehler, wenn sie dennoch vorhanden sind.

Hinweis:

Bei der Verwendung dieser Option in PHP ist besondere Vorsicht geboten, dass es nicht zu Kollisionen mit Kommandozeilenvariablen kommt.

Beispiel #2 Syntaxfehler beim Verwenden von doppelten Anführungszeichen

$ php -r "$foo = get_defined_constants();"
PHP Parse error:  syntax error, unexpected '=' in Command line code on line 1

Parse error: syntax error, unexpected '=' in Command line code on line 1

Das Problem hier ist, dass auch sh/bash Variablen ersetzt, wenn doppelte Anführungszeichen verwendet werden ("). Weil die Variable $foo wahrscheinlich nicht definiert ist, wird die Variable zu nichts aufgelöst. Der entstehende Code, welcher PHP übergeben wird, sieht so aus:

$ php -r " = get_defined_constants();"

Der richtige Weg wäre, einfache Anführungszeichen zu verwenden ('). Variablen in einfachen Anführungszeichen werden von sh/bash nicht ersetzt.

Beispiel #3 Verwendung einfacher Anführungszeichen, um ein Ersetzen der Variablen zu verhindern

$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]

Wenn Sie eine andere Kommandozeilenumgebung als sh/bash verwenden, könnten Sie auf weitere Probleme stoßen. Sie können gerne einen Bugreport unter » https://bugs.php.net/ erstellen. Man kann dennoch leicht in Schwierigkeiten geraten, wenn man versucht PHP- oder Shell-Variablen zu verwenden oder Backslashes zum Maskieren verwendet. Sie wurden gewarnt!

Hinweis:

-r ist in der CLI SAPI verfügbar, nicht jedoch in der CGI-SAPI.

Hinweis:

Diese Option ist für sehr einfachen Code gedacht, weshalb einige Direktiven wie etwa auto_prepend_file und auto_append_file in diesem Modus ignoriert werden.

-B --process-begin

PHP-Code, der ausgeführt werden soll, bevor stdin ausgewertet wird. Verfügbar seit PHP 5.

-R --process-code

PHP-Code, der für jede Eingabezeile ausgeführt werden soll. Verfügbar seit PHP 5.

Es gibt zwei spezielle Variablen in diesem Modus: $argn und $argi. $argn enthält die Zeile, die PHP gerade verarbeitet und $argi enthält die Zeilennummer.

-F --process-file

PHP-Datei, die für jede Eingabezeile ausgeführt werden soll. Verfügbar seit PHP 5.

-E --process-end

PHP-Code, der nach der Verarbeitung der Eingabe ausgeführt werden soll. Verfügbar seit PHP 5.

Beispiel #4 Nutzung der -B, -R und -E Optionen, um die Anzahl der Zeilen in einem Projekt zu zählen.

$ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Total Lines: $l\n";'
Total Lines: 37328

-S --server

Startet den eingebauten Webserver. Verfügbar seit PHP 5.4.0.

-t | --docroot | Gibt den Document-Root (Dokument-Wurzelverzeichnis) für den eingebauten Webserver an. Verfügbar seit PHP 5.4.0.
-s --syntax-highlight und --syntax-highlighting

Den Quelltext mit farbiger Syntaxhervorhebung anzeigen.

Diese Option verwendet den internen Mechanismus zum Parsen von Dateien, um eine HTML-Version mit Syntax-Highlighting auf die Standardausgabe zu schreiben. Beachten Sie, dass sie nur einen Block von <code> [...] </code> HTML-Tags erzeugt, jedoch keine HTML-Header.

Hinweis:

Diese Option funktioniert nicht zusammen mit -r.

-v --version

Beispiel #5 Nutzung von -v, um den SAPI-Namen, sowie die PHP- und Zend-Version zu bestimmen

$ php -v
PHP 5.3.1 (cli) (built: Dec 11 2009 19:55:07)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

-w --strip

Den Quelltext mit entfernten Kommentaren und Leerzeichen anzeigen.

Hinweis:

Diese Option funktioniert nicht zusammen mit -r.

-z --zend-extension

Eine Zend-Erweiterung laden. Wenn nur ein Dateiname angegeben wird, versucht PHP, die Erweiterung aus dem momentanen Standard-Bibliotheken-Pfad auf Ihrem System zu laden (auf Linux-Systemen normalerweise in /etc/ld.so.conf angegeben). Wenn ein Dateiname mit absoluter Pfadinformation übergeben wird, wird der Bibliotheken-Pfad des Systems nicht verwendet. Ein relativer Dateiname mit Pfadinformationen wird PHP veranlassen, zu versuchen, die Erweiterung in einem Pfad relativ zum aktuellen Verzeichnis zu laden.

--ini

Zeigt die Namen der Konfigurationsdateien und die durchsuchten Verzeichnisse. Verfügbar seit PHP 5.2.3.

Beispiel #6 --ini example

$ php --ini
Configuration File (php.ini) Path: /usr/dev/php/5.2/lib
Loaded Configuration File:         /usr/dev/php/5.2/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
--rf --rfunction

Zeigt Informationen über die gegebene Funktion oder Klassenmethode (z.B. Anzahl und Namen der Parameter). Verfügbar seit PHP 5.1.2.

Diese Option ist nur verfügbar, wenn PHP mit Reflection-Unterstützung kompiliert wurde.

Beispiel #7 Einfache --rf-Nutzung

$ php --rf var_dump
Function [ <internal> public function var_dump ] {

  - Parameters [2] {
    Parameter #0 [ <required> $var ]
    Parameter #1 [ <optional> $... ]
  }
}
--rc --rclass

Zeigt Inforationen über die gegebene Klasse (Liste der Konstanten, Eigenschaften und Methoden). Verfügbar seit PHP 5.1.2.

Diese Option ist nur verfügbar, wenn PHP mit Reflection-Unterstützung kompiliert wurde.

Beispiel #8 --rc-Beispiel

$ php --rc Directory
Class [ <internal:standard> class Directory ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [3] {
    Method [ <internal> public method close ] {
    }

    Method [ <internal> public method rewind ] {
    }

    Method [ <internal> public method read ] {
    }
  }
}
--re --rextension

Zeigt Informationen über die gegebene Erweiterung (Liste der php.ini-Optionen, definierte Funktionen, Konstanten und Klassen. Verfügbar seit PHP 5.1.2.

Diese Option ist nur verfügbar, wenn PHP mit Reflection-Unterstützung kompiliert wurde.

Beispiel #9 --re-Beispiel

$ php --re json
Extension [ <persistent> extension #19 json version 1.2.1 ] {

  - Functions {
    Function [ <internal> function json_encode ] {
    }
    Function [ <internal> function json_decode ] {
    }
  }
}
--rz --rzendextension

Zeigt Konfiguration der gegebenen Zend-Erweiterung an (entspricht der von phpinfo() zurückgegebenen Information). Verfügbar seit PHP 5.4.0.

--ri --rextinfo

Zeigt die Konfiguration der gegebenen Erweiterung (entspricht der von phpinfo() zurückgegebenen Information). Verfügbar seit PHP 5.2.2. Die Konfiguration des Sprachkerns kann über den speziellen Erweiterungsnamen "main" ermittelt werden.

Beispiel #10 --ri-Beispiel

$ php --ri date

date

date/time support => enabled
"Olson" Timezone Database Version => 2009.20
Timezone Database => internal
Default timezone => Europe/Oslo

Directive => Local Value => Master Value
date.timezone => Europe/Oslo => Europe/Oslo
date.default_latitude => 59.930972 => 59.930972
date.default_longitude => 10.776699 => 10.776699
date.sunset_zenith => 90.583333 => 90.583333
date.sunrise_zenith => 90.583333 => 90.583333

Hinweis:

Die Optionen -rBRFEH, --ini und --r[fcezi] sind nur für CLI verfügbar.


Ausführen von PHP-Dateien

Es gibt drei verschiedene Wege, PHP-Code in der CLI SAPI auszuführen:

  1. PHP mitteilen, eine bestimmte Datei auszuführen.

    php my_script.php

php -f my_script.php

    Beide Wege (ob sie die Option -f verwenden oder nicht) führen die Datei my_script.php aus. Es gibt keine Einschränkungen darauf, welche Dateien ausgeführt werden können; beispielsweise muss ihr PHP-Skript nicht auf .php enden.

    Hinweis:

    Wenn Sie Argumente an das Skript übergeben wollen, müssen Sie als erstes Argument -- übergeben, wenn Sie die -f Option verwenden.

  2. Den auszuführenden PHP-Code direkt auf der Kommandozeile angeben.

    $ php -r 'print_r(get_defined_constants());'

    Es muss besonders Acht auf die Ersetzung von Kommandozeilenvariablen und Benutzung von Anführungszeichen gegeben werden.

    Hinweis:

    Achten Sie darauf, dass sie keine PHP-Tags übergeben. Die Option -r benötigt diese nicht und löst einen Parser-Fehler aus, falls sie dennoch verwendet werden.

  3. Eingabe des PHP-Codes über die Standardeingabe (stdin).

    Dies eröffnet die Möglichkeit, PHP dynamisch zu generieren und anschließend an die Binary zu übergeben, wie in diesem (ausgedachten) Beispiel dargestellt:

    $ some_application | some_filter | php | sort -u > final_output.txt
Die drei Möglichkeiten zur Codeausführung können nicht kombiniert werden.

Wie jede Kommandozeilenanwendung nimmt das PHP-Binary etliche Argumente entgegen, aber auch das PHP-Skript kann Argumente entgegennehmen. Die Anzahl der Argumente, die an ein Skript übergeben werden können, ist nicht von PHP beschränkt (aber die Kommandozeilenumgebung hat ein bestimmtes Größenlimit für die Anzahl der Argumente, die übergeben werden können; normalerweise werden Sie dieses Limit nicht erreichen). Die Argumente, die dem Skript übergeben werden, sind in dem globalen Array $argv gespeichert. Der erste Index (Null) enthält immer den Skriptnamen. Wenn der Code mittels der Option -r ausgeführt wurde, ist der Wert von $argv[0] ein Bindestrich (-). Selbiges gilt für Code, welcher über STDIN ausgeführt wird.

Die zweite registrierte globale Variable ist $argc, welche die Anzahl der Elemente im Array $argv enthält, (nicht die Anzahl Argumente, die dem Skript übergeben wurden).

Solange die Argumente, welche dem Skript übergeben werden, nicht mit dem Zeichen - beginnen, gibt es nichts besonderes zu beachten. Ein Argument, welches mit - beginnt zu übergeben, wird jedoch Probleme bereiten, da PHP denkt, dass es das Argument selbst verarbeiten muss. Nutzen Sie das Argument-Trennzeichen --, um dies zu vermeiden. Nachdem dieses Trennzeichen von PHP geparst wurde, wird jedes folgende Argument unangetastet an das Skript weitergereicht.

# Dies führt nicht den angegebenen Code aus, sondern zeigt die Optionen von PHP an
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# Dies übergibt das Argument '-h' an Ihr Skript und zeigt die Optionen von PHP nicht an
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

Es gibt auf Unix-Systemen jedoch einen weiteren Weg, um PHP für Kommandozeilenskripte zu verwenden. Sie können ein Skript erstellen, in dem die erste Zeile mit #!/usr/bin/php beginnt. Nachfolgend können Sie normalen PHP-Code innerhalb der PHP-Start- und -End-Tags verwenden. Sobald Sie die Datei ausführbar gemacht haben (beispielsweise mittels chmod +x test), kann Ihr Skript wie ein normales Kommandozeilen- oder Perl-Skript gestartet werden.

Beispiel #1 PHP als Shellskript ausführen

#!/usr/bin/php
<?php
var_dump($argv);
?>

Angenommen, die Datei heißt test und befindet sich im aktuellen Verzeichnis, dann können wir nun folgendes tun:

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}

Wie Sie sehen können, müssen Sie sich in diesem Fall um nichts weiter kümmern, wenn Sie Ihrem Skript Paramater übergeben, die mit - beginnen.

Die ausführbare PHP-Datei kann verwendet werden, um PHP-Skripte vollkommen unabhängig von einem Webserver auszuführen. Auf Unix-Systemen, sollte die spezielle #! ("shebang") erste Zeile zu PHP-Skripten hinzugefügt werden, damit das System automatisch herausfinden kann, welches Programm zur Ausführung der Datei genutzt werden soll. Auf einem Windows-System können Sie php.exe mit der Doppelklick-Option von .php-Dateien verknüpfen. Sie können auch eine Batchdatei erstellen, um das Skript von PHP ausführen zu lassen. Die erste Zeile, die dem Skript hinzugefügt wird, damit es unter UNIX läuft, stört unter Windows nicht, so dass Sie auf diese Weise problemlos plattformübergreifende Programme schreiben können. Sie finden anschließend ein einfaches Beispiel, wie man ein Kommandozeilenprogramm in PHP schreibt.

Beispiel #2 Ein Skript, das von der Kommandozeile aus ausgeführt werden soll (script.php)

#!/usr/bin/php
<?php

if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

Das ist ein Kommandozeilenprogramm in PHP mit einer Option.

  Verwendung:
  <?php echo $argv[0]; ?> <option>

  <option> kann ein Wort sein, das Sie gerne
  ausgeben möchten. Mit den Optionen --help,
  -help, -h oder -? bekommen Sie diese Hilfe.

<?php
} else {
    echo $argv[1];
}
?>

In dem oben beschriebenen Skript haben wir die erste Zeile dazu verwendet, anzugeben, dass die Datei von PHP ausgeführt werden soll. Wir arbeiten hier mit einer CLI-Version, deswegen werden keine HTTP-Header ausgegeben.

In dem obigen Programm wird zuerst überprüft, ob das notwendige Argument angeben ist (zusätzlich zum Skriptnamen, welcher auch gezählt wird). Wenn nicht, oder wenn das Argument --help, -help, -h oder -? war, wird eine Hilfe-Nachricht ausgegeben, welche $argv[0] nutzt, um den genutzten Skript-Namen auszugeben. Andernfalls wird das Argument ausgegeben, genauso wie es übergeben wurde.

Wenn Sie das obige Skript unter UNIX laufen lassen wollen, müssen Sie es zuerst ausführbar machen, und es danach einfach als script.php GebeDasHierAus oder script.php -h aufrufen. Unter Windows können Sie zu diesem Zweck eine Batchdatei erstellen:

Beispiel #3 Batchdatei zur Ausführung eines Kommandozeilen-Skripts in PHP (script.bat)

@echo OFF
"C:\php\php.exe" script.php %*

Angenommen, Sie haben das Programm script.php genannt und die CLI php.exe hat den Pfad C:\php\php.exe, so wird diese Batchdatei es mit allen übergebenen Argumenten aufrufen: script.bat GebeDasHierAus oder script.bat -h.

Siehe auch die Readline-Erweiterung für weitere Funktionen, um Kommandozeilenanwendungen zu verbessern.

Auf Windows kann PHP so konfiguiert werden, dass auch ausgeführt wird, wenn weder C:\php\php.exe angegeben wird, noch die .php Dateierweiterung genutzt wird. Siehe dazu die Dokumentation zur PHP-Kommandozeile auf Microsoft Windows.

Hinweis:

Unter Windows wird empfohlen, PHP unter einem echten User-Account auszuführen. Wird es unter einem Netzwerk-Account ausgeführt, werden bestimmte Operationen fehlschlagen, weil "keine Zuordnung zwischen Kontennamen und Sicherheits-IDs erfolgte".


Ein- und Ausgabestreams

Die CLI SAPI definiert einige Konstanten für Ein- und Ausgabestreams, um das Erstellen von Kommandozeilenanwendungen zu erleichtern.

CLI-spezifische Konstanten
Konstante Beschreibung
STDIN

Ein schon geöffneter Stream auf stdin. Dies erspart das Öffnen mit

<?php
$stdin = fopen('php://stdin', 'r');
?>
Wenn sie einzelne Zeilen von stdin lesen wollen, können Sie folgendes Code-Fragment verwenden:
<?php
$line = trim(fgets(STDIN)); // liest eine Zeile von STDIN
fscanf(STDIN, "%d\n", $number); // liest eine Zahl von STDIN
?>

STDOUT

Ein schon geöffneter Stream auf stdout. Das erspart das Öffnen mit

<?php
$stdout = fopen('php://stdout', 'w');
?>

STDERR

Ein schon geöffneter Stream auf stderr. Das erspart das Öffnen mit

<?php
$stderr = fopen('php://stderr', 'w');
?>

Angesichts des oben Genannten, brauchen Sie beispielsweise nicht selbst einen Stream für stderr öffnen, sondern können einfach die Konstante anstelle der Ressource verwenden:

php -r 'fwrite(STDERR, "stderr\n");'
Sie brauchen diese Streams nicht explizit zu schließen, weil sie automatisch von PHP geschlossen werden, wenn Ihr Skript endet.

Hinweis:

Diese Konstanten sind nicht verfügbar, wenn ein PHP Skript von stdin eingelesen wird.


Interaktiver Modus

Seit PHP 5.1.0 bietet die CLI SAPI mit der -a Option eine interaktive Shell an, wenn PHP mit der Option --with-readline kompiliert wurde. Von PHP 7.1.0 an steht die interaktive Shell auch unter Windows zu Verfügung, wenn die readline-Erweiterung aktiviert ist.

Mittels der interaktiven Shell können sie PHP-Code eingeben und direkt ausführen lassen.

Beispiel #1 Ausführung von Code auf der interaktiven Shell

$ php -a
Interactive shell

php > echo 5+8;
13
php > function addTwo($n)
php > {
php { return $n + 2;
php { }
php > var_dump(addtwo(2));
int(4)
php >

Die interaktive Shell bietet ebenfalls Tab-Autovervollständigung für Funktionen, Konstanten, Klassen, Variablen, statische Methoden und Klassenkonstanten.

Beispiel #2 Tab-Autovervollständigung

Zweimaliges Drücken der Tab-Taste im Falle mehrerer Möglichkeiten führt zu einer Auflistung dieser Möglichkeiten:

php > strp[TAB][TAB]
strpbrk   strpos    strptime
php > strp

Wenn es nur eine mögliche Vervollständigung gibt, führt ein einmaliges Drücken der Tab-Taste zur Vervollständigung der Zeile:

php > strpt[TAB]ime(

Autovervollständigung funktioniert auch für Namen, welche bereits während dieser interaktiven Session definiert wurden:

php > $fooThisIsAReallyLongVariableName = 42;
php > $foo[TAB]ThisIsAReallyLongVariableName

Die interaktive Shell speichert den Verlauf von zuletzt eingegeben Zeilen. Auf diesen kann mittels der Pfeiltasten zugegriffen werden. Er wird in der Datei ~/.php_history gespeichert.

Seit PHP 5.4.0 bietet die CLI SAPI die php.ini-Optionen cli.pager und cli.prompt. Die Option cli.pager erlaubt einem externen Programm (wie etwa less) als Pager für die Ausgabe zu agieren, anstatt dass diese direkt ausgegeben wird. Die Option cli.prompt erlaubt das Ändern der php >-Eingabeaufforderung.

Seit PHP 5.4.0 ist es auch möglich, php.ini Optionen einfacher zu ändern.

Beispiel #3 Setzen von php.ini Optionen in der interaktiven Shell

Die Option cli.prompt:

php > #cli.prompt=hello world :>
hello world :>

Mittels Backticks kann PHP-Code in dem Präfix ausgeführt werden:

php > #cli.prompt=`echo date('H:i:s');` php >
15:49:35 php > echo 'hi';
hi
15:49:43 php > sleep(2);
15:49:45 php >

Setzen des Pagers auf less:

php > #cli.pager=less
php > phpinfo();
(output displayed in less)
php >

Die Option cli.prompt unterstützt einige Escape-Sequenzen.

cli.prompt-Escape-Sequenzen
Sequenzen | Beschreibung
\e | Wird verwendet, um Farben zur Eingabeaufforderung hinzuzufügen. Ein Beispiel: \e[032m\v \e[031m\b \e[34m\> \e[0m
\v | Die PHP-Version.
\b | Gibt an, in welchem Block sich PHP befindet. Zum Beispiel gibt /* an, dass man sich gerade in einem mehrzeiligen Kommentar befindet. Der äußerste Block ist php.
\> | Gibt das Eingabeaufforderungszeichen an. Standardmäßig ist dies >, ändert sich jedoch, wenn sich die Shell innerhalb eines nicht beendeten Blocks oder Strings befindet. Mögliche Buchstaben sind: ' " { ( >

Hinweis:

Dateien, die mit auto_prepend_file und auto_append_file eingebunden wurden, werden in diesem Modus mit einigen Einschränkungen geparst - Funktionen müssen etwa vor dem Aufruf definiert werden.


Eingebauter Webserver

Warnung

Dieser Webserver wurde entwickelt, um bei der Anwendungsentwicklung zu helfen. Er kann ebenso für Testzwecke und für Anwendungsdemonstrationen nützlich sein, die in kontrollierten Umgebungen ausgeführt werden. Er ist nicht als voll funktioneller Webserver gedacht. Er sollte nicht in einem öffentlichen Netzwerk verwendet werden.

Seit PHP 5.4.0 bietet die CLI SAPI einen eingebauten Webserver.

Der Webserver läuft in einem einfach Prozess (single-threaded), so dass PHP-Anwendungen nicht weiter ausgeführt werden, wenn eine Anfrage blockiert wird.

URI-Anfragen werden vom aktuellen Arbeitsverzeichnis ausgehend ausgeliefert, sofern nicht die -t Option genutzt wurde um einen expliziten Document-Root anzugeben. Wenn eine URI-Anfrage keine Datei angibt, wird entweder index.php oder index.html aus dem aufgerufenen Verzeichnis zurückgegeben. Wenn beide Dateien nicht existieren, wird die Suche von index.php und index.html im übergeordneten Verzeichnis usw. fortgesetzt, bis eine gefunden wurde, oder der Document-Root erreicht wurde. Wurde eine index.php oder index.html gefunden, wird sie zurückgegeben, und $_SERVER['PATH_INFO'] wird auf den abschließenden Teil des URI gesetzt. Andernfalls wird ein 404 Response Code zurückgeben.

Wenn auf der Kommandozeile beim Starten des Webservers eine PHP-Datei angegeben wird, wird diese als "Router"-Skript verwendet. Dieses Skript wird dann zu Beginn jeder HTTP-Anfrage gestartet. Wenn dieses Skript false zurückgibt, dann wird die angefragte Ressource direkt zurückgegeben. Andernfalls wird die Ausgabe des Skripts zurückgegeben.

Standard MIME-Typen werden für Dateien mit den folgenden Erweiterungen zurückgegeben: .3gp, .apk, .avi, .bmp, .css, .csv, .doc, .docx, .flac, .gif, .gz, .gzip, .htm, .html, .ics, .jpe, .jpeg, .jpg, .js, .kml, .kmz, .m4a, .mov, .mp3, .mp4, .mpeg, .mpg, .odp, .ods, .odt, .oga, .ogg, .ogv, .pdf, .pdf, .png, .pps, .pptx, .qt, .svg, .swf, .tar, .text, .tif, .txt, .wav, .webm, .wmv, .xls, .xlsx, .xml, .xsl, .xsd und .zip.

Changelog: Unterstützte MIME-Typen (Dateierweiterungen)
Version | Beschreibung
5.5.12 | .xml, .xsl und .xsd
5.5.7 | .3gp, .apk, .avi, .bmp, .csv, .doc, .docx, .flac, .gz, .gzip, .ics, .kml, .kmz, .m4a, .mp3, .mp4, .mpg, .mpeg, .mov, .odp, .ods, .odt, .oga, .pdf, .pptx, .pps, .qt, .swf, .tar, .text, .tif, .wav, .wmv, .xls, .xlsx und .zip
5.5.5 | .pdf
5.4.11 | .ogg, .ogv und .webm
5.4.4 | .htm und .svg
Changelog
Version | Beschreibung
7.4.0 | Der eingebaute Webserver kann so konfiguriert werden, dass mehrere Worker geforkt werden können, um Code zu testen, der mehrere gleichzeitige Anfragen erfordert. Dazu muss die Umgebungsvariable PHP_CLI_SERVER_WORKERS auf die Zahl der gewünschten Worker gesetzt werden, bevor der Server gestartet wird. Dies wird unter Windows nicht unterstützt. Warnung Dieses experimentelle Feature ist nicht für den Produktionseinsatz vorgesehen. Grundsätzlich ist der eingebaute Webserver nicht für den Produktionseinsatz vorgesehen.

Beispiel #1 Starten des Webservers

$ cd ~/public_html
$ php -S localhost:8000

Die Kommandozeile wird ausgeben:

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit

Nach URI-Anfragen für http://localhost:8000/ und http://localhost:8000/myscript.html wird die Kommandozeile in etwa so aussehen:

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit.
[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read
[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read
[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read
[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read
[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read

Es ist zu beachten, dass bis zu PHP 7.4.0 symbolisch verknüpfte statische Ressourcen unter Windows nicht erreichbar waren, es sei denn, das Router-Skript würde diese verarbeiten.

Beispiel #2 Starten mit einem expliziten Document-Root

$ cd ~/public_html
$ php -S localhost:8000 -t foo/

Die Kommandozeile wird ausgeben:

PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011
Listening on localhost:8000
Document root is /home/me/public_html/foo
Press Ctrl-C to quit

Beispiel #3 Nutzung eines Router-Skripts

In diesem Beispiel werden Anfragen für Bilder diese direkt ausliefern; Anfragen für HTML-Dateien, werden stattdessen "Willkommen zu PHP!" ausgeben.

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
    return false; // Liefere die angefragte Ressource direkt aus
} else {
    echo "<p>Willkommen zu PHP!</p>";
}
?>
$ php -S localhost:8000 router.php

Beispiel #4 Prüfung auf die Verwendung des CLI-Webservers

Um ein Framework-Router-Skript sowohl während der Entwicklung mit dem CLI-Webserver als auch später mit einem Produktions-Webserver zu verwenden:

<?php
// router.php
if (php_sapi_name() == 'cli-server') {
    /* route statische Assets und gibt false zurück */
}
/* weiter mit den normalen index.php-Operationen */
?>
$ php -S localhost:8000 router.php

Beispiel #5 Behandlung nicht unterstützter Dateitypen

Wenn Sie statische Ressourcen, deren MIME-Typ vom CLI-Webserver nicht unterstützt wird, ausliefern müssen, verwenden Sie:

<?php
// router.php
$path = pathinfo($_SERVER["SCRIPT_FILENAME"]);
if ($path["extension"] == "el") {
    header("Content-Type: text/x-script.elisp");
    readfile($_SERVER["SCRIPT_FILENAME"]);
}
else {
    return FALSE;
}
?>
$ php -S localhost:8000 router.php

Beispiel #6 Zugriff auf den CLI-Webserver von anderen Computern aus

Sie können den Webserver wie folgt auf Port 8000 für jeden zugänglich machen:

$ php -S 0.0.0.0:8000
Warnung

Der eingebaute Webserver sollte nicht in einem öffentlichen Netzwerk verwendet werden.


INI Einstellungen

CLI SAPI Konfigurations-Direktiven
Name | Standard | Veränderbar | Changelog
cli_server.color | "0" | PHP_INI_ALL | Verfügbar seit PHP 5.4.0.

Hier eine kurze Erklärung der Konfigurationsoptionen:

cli_server.color bool

Gibt an, ob der eingebaute Webserver ANSI Color Codes für Ausgaben auf die Kommandozeile nutzen soll.


Garbage Collection

Inhaltsverzeichnis

  • Reference Counting Basics
  • Collecting Cycles
  • Performance Considerations

This section explains the merits of the new Garbage Collection (also known as GC) mechanism that is part of PHP 5.3.


Reference Counting Basics

A PHP variable is stored in a container called a "zval". A zval container contains, besides the variable's type and value, two additional bits of information. The first is called "is_ref" and is a boolean value indicating whether or not the variable is part of a "reference set". With this bit, PHP's engine knows how to differentiate between normal variables and references. Since PHP allows user-land references, as created by the & operator, a zval container also has an internal reference counting mechanism to optimize memory usage. This second piece of additional information, called "refcount", contains how many variable names (also called symbols) point to this one zval container. All symbols are stored in a symbol table, of which there is one per scope. There is a scope for the main script (i.e., the one requested through the browser), as well as one for every function or method.

A zval container is created when a new variable is created with a constant value, such as:

Beispiel #1 Creating a new zval container

<?php
$a = "new string";
?>

In this case, the new symbol name, a, is created in the current scope, and a new variable container is created with the type string and the value new string. The "is_ref" bit is by default set to false because no user-land reference has been created. The "refcount" is set to 1 as there is only one symbol that makes use of this variable container. Note that if "refcount" is 1, "is_ref" is always false. If you have » Xdebug installed, you can display this information by calling xdebug_debug_zval().

Beispiel #2 Displaying zval information

<?php
$a = "new string";
xdebug_debug_zval('a');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a: (refcount=1, is_ref=0)='new string'

Assigning this variable to another variable name will increase the refcount.

Beispiel #3 Increasing refcount of a zval

<?php
$a = "new string";
$b = $a;
xdebug_debug_zval( 'a' );
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a: (refcount=2, is_ref=0)='new string'

The refcount is 2 here, because the same variable container is linked with both a and b. PHP is smart enough not to copy the actual variable container when it is not necessary. Variable containers get destroyed when the "refcount" reaches zero. The "refcount" gets decreased by one when any symbol linked to the variable container leaves the scope (e.g. when the function ends) or when a symbol is unassigned (e.g. by calling unset()). The following example shows this:

Beispiel #4 Decreasing zval refcount

<?php
$a = "new string";
$c = $b = $a;
xdebug_debug_zval( 'a' );
$b = 42;
xdebug_debug_zval( 'a' );
unset( $c );
xdebug_debug_zval( 'a' );
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a: (refcount=3, is_ref=0)='new string'
a: (refcount=2, is_ref=0)='new string'
a: (refcount=1, is_ref=0)='new string'

If we now call unset($a);, the variable container, including the type and value, will be removed from memory.

Compound Types

Things get a tad more complex with compound types such as arrays and objects. As opposed to scalar values, arrays and objects store their properties in a symbol table of their own. This means that the following example creates three zval containers:

Beispiel #5 Creating a array zval

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
xdebug_debug_zval( 'a' );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

a: (refcount=1, is_ref=0)=array (
   'meaning' => (refcount=1, is_ref=0)='life',
   'number' => (refcount=1, is_ref=0)=42
)

Or graphically

Zvals for a simple array

The three zval containers are: a, meaning, and number. Similar rules apply for increasing and decreasing "refcounts". Below, we add another element to the array, and set its value to the contents of an already existing element:

Beispiel #6 Adding already existing element to an array

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
$a['life'] = $a['meaning'];
xdebug_debug_zval( 'a' );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

a: (refcount=1, is_ref=0)=array (
   'meaning' => (refcount=2, is_ref=0)='life',
   'number' => (refcount=1, is_ref=0)=42,
   'life' => (refcount=2, is_ref=0)='life'
)

Or graphically

Zvals for a simple array with a reference

From the above Xdebug output, we see that both the old and new array elements now point to a zval container whose "refcount" is 2. Although Xdebug's output shows two zval containers with value 'life', they are the same one. The xdebug_debug_zval() function does not show this, but you could see it by also displaying the memory pointer.

Removing an element from the array is like removing a symbol from a scope. By doing so, the "refcount" of a container that an array element points to is decreased. Again, when the "refcount" reaches zero, the variable container is removed from memory. Again, an example to show this:

Beispiel #7 Removing an element from an array

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
$a['life'] = $a['meaning'];
unset( $a['meaning'], $a['number'] );
xdebug_debug_zval( 'a' );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

a: (refcount=1, is_ref=0)=array (
   'life' => (refcount=1, is_ref=0)='life'
)

Now, things get interesting if we add the array itself as an element of the array, which we do in the next example, in which we also sneak in a reference operator, since otherwise PHP would create a copy:

Beispiel #8 Adding the array itself as an element of it self

<?php
$a = array( 'one' );
$a[] =& $a;
xdebug_debug_zval( 'a' );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

a: (refcount=2, is_ref=1)=array (
   0 => (refcount=1, is_ref=0)='one',
   1 => (refcount=2, is_ref=1)=...
)

Or graphically

Zvals for an array with a circular reference

You can see that the array variable (a) as well as the second element (1) now point to a variable container that has a "refcount" of 2. The "..." in the display above shows that there is recursion involved, which, of course, in this case means that the "..." points back to the original array.

Just like before, unsetting a variable removes the symbol, and the reference count of the variable container it points to is decreased by one. So, if we unset variable $a after running the above code, the reference count of the variable container that $a and element "1" point to gets decreased by one, from "2" to "1". This can be represented as:

Beispiel #9 Unsetting $a

(refcount=1, is_ref=1)=array (
   0 => (refcount=1, is_ref=0)='one',
   1 => (refcount=1, is_ref=1)=...
)

Or graphically

Zvals after removal of array with a circular reference demonstrating the memory leak

Cleanup Problems

Although there is no longer a symbol in any scope pointing to this structure, it cannot be cleaned up because the array element "1" still points to this same array. Because there is no external symbol pointing to it, there is no way for a user to clean up this structure; thus you get a memory leak. Fortunately, PHP will clean up this data structure at the end of the request, but before then, this is taking up valuable space in memory. This situation happens often if you're implementing parsing algorithms or other things where you have a child point back at a "parent" element. The same situation can also happen with objects of course, where it actually is more likely to occur, as objects are always implicitly used by reference.

This might not be a problem if this only happens once or twice, but if there are thousands, or even millions, of these memory losses, this obviously starts being a problem. This is especially problematic in long running scripts, such as daemons where the request basically never ends, or in large sets of unit tests. The latter caused problems while running the unit tests for the Template component of the eZ Components library. In some cases, it would require over 2 GB of memory, which the test server didn't quite have.


Collecting Cycles

Traditionally, reference counting memory mechanisms, such as that used previously by PHP, fail to address circular reference memory leaks; however, as of 5.3.0, PHP implements the synchronous algorithm from the » Concurrent Cycle Collection in Reference Counted Systems paper which addresses that issue.

A full explanation of how the algorithm works would be slightly beyond the scope of this section, but the basics are explained here. First of all, we have to establish a few ground rules. If a refcount is increased, it's still in use and therefore, not garbage. If the refcount is decreased and hits zero, the zval can be freed. This means that garbage cycles can only be created when a refcount argument is decreased to a non-zero value. Secondly, in a garbage cycle, it is possible to discover which parts are garbage by checking whether it is possible to decrease their refcount by one, and then checking which of the zvals have a refcount of zero.

Garbage collection algorithm

To avoid having to call the checking of garbage cycles with every possible decrease of a refcount, the algorithm instead puts all possible roots (zvals) in the "root buffer" (marking them "purple"). It also makes sure that each possible garbage root ends up in the buffer only once. Only when the root buffer is full does the collection mechanism start for all the different zvals inside. See step A in the figure above.

In step B, the algorithm runs a depth-first search on all possible roots to decrease by one the refcounts of each zval it finds, making sure not to decrease a refcount on the same zval twice (by marking them as "grey"). In step C, the algorithm again runs a depth-first search from each root node, to check the refcount of each zval again. If it finds that the refcount is zero, the zval is marked "white" (blue in the figure). If it's larger than zero, it reverts the decreasing of the refcount by one with a depth-first search from that point on, and they are marked "black" again. In the last step (D), the algorithm walks over the root buffer removing the zval roots from there, and meanwhile, checks which zvals have been marked "white" in the previous step. Every zval marked as "white" will be freed.

Now that you have a basic understanding of how the algorithm works, we will look back at how this integrates with PHP. By default, PHP's garbage collector is turned on. There is, however, a php.ini setting that allows you to change this: zend.enable_gc.

When the garbage collector is turned on, the cycle-finding algorithm as described above is executed whenever the root buffer runs full. The root buffer has a fixed size of 10,000 possible roots (although you can alter this by changing the GC_ROOT_BUFFER_MAX_ENTRIES constant in Zend/zend_gc.c in the PHP source code, and re-compiling PHP). When the garbage collector is turned off, the cycle-finding algorithm will never run. However, possible roots will always be recorded in the root buffer, no matter whether the garbage collection mechanism has been activated with this configuration setting.

If the root buffer becomes full with possible roots while the garbage collection mechanism is turned off, further possible roots will simply not be recorded. Those possible roots that are not recorded will never be analyzed by the algorithm. If they were part of a circular reference cycle, they would never be cleaned up and would create a memory leak.

The reason why possible roots are recorded even if the mechanism has been disabled is because it's faster to record possible roots than to have to check whether the mechanism is turned on every time a possible root could be found. The garbage collection and analysis mechanism itself, however, can take a considerable amount of time.

Besides changing the zend.enable_gc configuration setting, it is also possible to turn the garbage collecting mechanism on and off by calling gc_enable() or gc_disable() respectively. Calling those functions has the same effect as turning on or off the mechanism with the configuration setting. It is also possible to force the collection of cycles even if the possible root buffer is not full yet. For this, you can use the gc_collect_cycles() function. This function will return how many cycles were collected by the algorithm.

The rationale behind the ability to turn the mechanism on and off, and to initiate cycle collection yourself, is that some parts of your application could be highly time-sensitive. In those cases, you might not want the garbage collection mechanism to kick in. Of course, by turning off the garbage collection for certain parts of your application, you do risk creating memory leaks because some possible roots might not fit into the limited root buffer. Therefore, it is probably wise to call gc_collect_cycles() just before you call gc_disable() to free up the memory that could be lost through possible roots that are already recorded in the root buffer. This then leaves an empty buffer so that there is more space for storing possible roots while the cycle collecting mechanism is turned off.


Performance Considerations

We have already mentioned in the previous section that simply collecting the possible roots had a very tiny performance impact, but this is when you compare PHP 5.2 against PHP 5.3. Although the recording of possible roots compared to not recording them at all, like in PHP 5.2, is slower, other changes to the PHP runtime in PHP 5.3 prevented this particular performance loss from even showing.

There are two major areas in which performance is affected. The first area is reduced memory usage, and the second area is run-time delay when the garbage collection mechanism performs its memory cleanups. We will look at both of those issues.

Reduced Memory Usage

First of all, the whole reason for implementing the garbage collection mechanism is to reduce memory usage by cleaning up circular-referenced variables as soon as the prerequisites are fulfilled. In PHP's implementation, this happens as soon as the root-buffer is full, or when the function gc_collect_cycles() is called. In the graph below, we display the memory usage of the script below, in both PHP 5.2 and PHP 5.3, excluding the base memory that PHP itself uses when starting up.

Beispiel #1 Memory usage example

<?php
class Foo
{
    public $var = '3.14159265359';
}

$baseMemory = memory_get_usage();

for ( $i = 0; $i <= 100000; $i++ )
{
    $a = new Foo;
    $a->self = $a;
    if ( $i % 500 === 0 )
    {
        echo sprintf( '%8d: ', $i ), memory_get_usage() - $baseMemory, "\n";
    }
}
?>
Comparison of memory usage between PHP 5.2 and PHP 5.3

In this very academic example, we are creating an object in which a property is set to point back to the object itself. When the $a variable in the script is re-assigned in the next iteration of the loop, a memory leak would typically occur. In this case, two zval-containers are leaked (the object zval, and the property zval), but only one possible root is found: the variable that was unset. When the root-buffer is full after 10,000 iterations (with a total of 10,000 possible roots), the garbage collection mechanism kicks in and frees the memory associated with those possible roots. This can very clearly be seen in the jagged memory-usage graph for PHP 5.3. After each 10,000 iterations, the mechanism kicks in and frees the memory associated with the circular referenced variables. The mechanism itself does not have to do a whole lot of work in this example, because the structure that is leaked is extremely simple. From the diagram, you see that the maximum memory usage in PHP 5.3 is about 9 Mb, whereas in PHP 5.2 the memory usage keeps increasing.

Run-Time Slowdowns

The second area where the garbage collection mechanism influences performance is the time taken when the garbage collection mechanism kicks in to free the "leaked" memory. In order to see how much this is, we slightly modify the previous script to allow for a larger number of iterations and the removal of the intermediate memory usage figures. The second script is here:

Beispiel #2 GC performance influences

<?php
class Foo
{
    public $var = '3.14159265359';
}

for ( $i = 0; $i <= 1000000; $i++ )
{
    $a = new Foo;
    $a->self = $a;
}

echo memory_get_peak_usage(), "\n";
?>

We will run this script two times, once with the zend.enable_gc setting turned on, and once with it turned off:

Beispiel #3 Running the above script

time php -dzend.enable_gc=0 -dmemory_limit=-1 -n example2.php
# and
time php -dzend.enable_gc=1 -dmemory_limit=-1 -n example2.php

On my machine, the first command seems to take consistently about 10.7 seconds, whereas the second command takes about 11.4 seconds. This is a slowdown of about 7%. However, the maximum amount of memory used by the script is reduced by 98% from 931Mb to 10Mb. This benchmark is not very scientific, or even representative of real-life applications, but it does demonstrate the memory usage benefits that this garbage collection mechanism provides. The good thing is that the slowdown is always the same 7%, for this particular script, while the memory saving capabilities save more and more memory as more circular references are found during script execution.

PHP's Internal GC Statistics

It is possible to coax a little bit more information about how the garbage collection mechanism is run from within PHP. But in order to do so, you will have to re-compile PHP to enable the benchmark and data-collecting code. You will have to set the CFLAGS environment variable to -DGC_BENCH=1 prior to running ./configure with your desired options. The following sequence should do the trick:

Beispiel #4 Recompiling PHP to enable GC benchmarking

export CFLAGS=-DGC_BENCH=1
./config.nice
make clean
make

When you run the above example code again with the newly built PHP binary, you will see the following being shown after PHP has finished execution:

Beispiel #5 GC statistics

GC Statistics
-------------
Runs:               110
Collected:          2072204
Root buffer length: 0
Root buffer peak:   10000

      Possible            Remove from  Marked
        Root    Buffered     buffer     grey
      --------  --------  -----------  ------
ZVAL   7175487   1491291    1241690   3611871
ZOBJ  28506264   1527980     677581   1025731

The most informative statistics are displayed in the first block. You can see here that the garbage collection mechanism ran 110 times, and in total, more than 2 million memory allocations were freed during those 110 runs. As soon as the garbage collection mechanism has run at least one time, the "Root buffer peak" is always 10000.

Conclusion

In general the garbage collector in PHP will only cause a slowdown when the cycle collecting algorithm actually runs, whereas in normal (smaller) scripts there should be no performance hit at all.

However, in the cases where the cycle collection mechanism does run for normal scripts, the memory reduction it will provide allows more of those scripts to run concurrently on your server, since not so much memory is used in total.

The benefits are most apparent for longer-running scripts, such as lengthy test suites or daemon scripts. Also, for » PHP-GTK applications that generally tend to run longer than scripts for the Web, the new mechanism should make quite a bit of a difference regarding memory leaks creeping in over time.


DTrace Dynamic Tracing

Inhaltsverzeichnis

  • Introduction to PHP and DTrace
  • Using PHP and DTrace
  • Using SystemTap with PHP DTrace Static Probes


Introduction to PHP and DTrace

DTrace is an always-available, low overhead, tracing framework available on a number of platforms including Solaris, macOS, Oracle Linux and BSD. DTrace can trace operating system behavior and user program execution. It can display argument values and be used to infer performance statistics. Probes are monitored by user created scripts written in the DTrace D scripting language. This allows efficient analysis of data points.

PHP probes that are not being actively monitored by a user's DTrace D script do not contain instrumented code so there is no performance degradation during normal application execution. Probes that are being monitored incur an overhead low enough to generally allow DTrace monitoring on live production systems.

PHP incorporates "User-level Statically Defined Tracing" (USDT) probes that are triggered at runtime. For example, when a D script is monitoring PHP's function-entry probe, then, every time a PHP script function is called, this probe is fired and the associated D script action code is executed. This action code could, for example, print probe arguments such as the source file location of the PHP function. Or the action could aggregate data such as the number of times each function is called.

Only the PHP USDT probes are described here. Refer to external general and operating system-specific DTrace literature to see how DTrace can be used to trace arbitrary functions, and how it can be used to trace operating system behavior. Note not all DTrace features are available in all DTrace implementations.

DTrace static probes are included in PHP 5.4. Prior to this they were available via a » PECL extension, which is now obsolete.

The static DTrace probes in PHP can alternatively be used with the SystemTap facility on some Linux distributions.


Using PHP and DTrace

PHP can be configured with DTrace static probes on platforms that support DTrace Dynamic Tracing.

Configuring PHP for DTrace Static Probes

Refer to external platform specific documentation for enabling operating system DTrace support. For example, on Oracle Linux boot a UEK3 kernel and do:

# modprobe fasttrap
# chmod 666 /dev/dtrace/helper

Instead of using chmod, you could instead use an ACL package rule to limit device access to a specific user.

Build PHP with the --enable-dtrace configuration parameter:

# ./configure --enable-dtrace ...
# make
# make install

This enables the static probes in core PHP. Any PHP extensions that provide their own probes should be built separately as shared extensions.

DTrace Static Probes in Core PHP

The following static probes are available in PHP
Probe Name | Probe Description | Probe Arguments
request-startup | Fires when a request starts. | char *file, char *request_uri, char *request_method
request-shutdown | Fires when a request shutdown. | char *file, char *request_uri, char *request_method
compile-file-entry | Fires when the compilation of a script starts. | char *compile_file, char *compile_file_translated
compile-file-return | Fires when the compilation of a script finishes. | char *compile_file, char *compile_file_translated
execute-entry | Fires when an opcode array is to be executed. For example, it fires on function calls, includes, and generator resumes. | char *request_file, int lineno
execute-return | Fires after execution of an opcode array. | char *request_file, int lineno
function-entry | Fires when the PHP engine enters a PHP function or method call. | char *function_name, char *request_file, int lineno, char *classname, char *scope
function-return | Fires when the PHP engine returns from a PHP function or method call. | char *function_name, char *request_file, int lineno, char *classname, char *scope
exception-thrown | Fires when an exception is thrown. | char *classname
exception-caught | Fires when an exception is caught. | char *classname
error | Fires when an error occurs, regardless of the error_reporting level. | char *errormsg, char *request_file, int lineno

PHP extensions may also have additional static probes.

Listing DTrace Static Probes in PHP

To list available probes, start a PHP process and then run:

# dtrace -l

The output will be similar to:

   ID   PROVIDER            MODULE                          FUNCTION NAME
   [ . . . ]
    4   php15271               php               dtrace_compile_file compile-file-entry
    5   php15271               php               dtrace_compile_file compile-file-return
    6   php15271               php                        zend_error error
    7   php15271               php  ZEND_CATCH_SPEC_CONST_CV_HANDLER exception-caught
    8   php15271               php     zend_throw_exception_internal exception-thrown
    9   php15271               php                 dtrace_execute_ex execute-entry
   10   php15271               php           dtrace_execute_internal execute-entry
   11   php15271               php                 dtrace_execute_ex execute-return
   12   php15271               php           dtrace_execute_internal execute-return
   13   php15271               php                 dtrace_execute_ex function-entry
   14   php15271               php                 dtrace_execute_ex function-return
   15   php15271               php              php_request_shutdown request-shutdown
   16   php15271               php               php_request_startup request-startup

The Provider column values consist of php and the process id of the currently running PHP process.

If the Apache web server is running, the module name might be, for example, libphp5.so, and there would be multiple blocks of listings, one per running Apache process.

The Function column refers to PHP's internal C implementation function names where each provider is located.

If a PHP process is not running, then no PHP probes will be shown.

DTrace with PHP Example

This example shows the basics of the DTrace D scripting language.

Beispiel #1 all_probes.d for tracing all PHP Static Probes with DTrace

#!/usr/sbin/dtrace -Zs

#pragma D option quiet

php*:::compile-file-entry
{
    printf("PHP compile-file-entry\n");
    printf("  compile_file              %s\n", copyinstr(arg0));
    printf("  compile_file_translated   %s\n", copyinstr(arg1));
}

php*:::compile-file-return
{
    printf("PHP compile-file-return\n");
    printf("  compile_file              %s\n", copyinstr(arg0));
    printf("  compile_file_translated   %s\n", copyinstr(arg1));
}

php*:::error
{
    printf("PHP error\n");
    printf("  errormsg                  %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
}

php*:::exception-caught
{
    printf("PHP exception-caught\n");
    printf("  classname                 %s\n", copyinstr(arg0));
}

php*:::exception-thrown
{
    printf("PHP exception-thrown\n");
    printf("  classname                 %s\n", copyinstr(arg0));
}

php*:::execute-entry
{
    printf("PHP execute-entry\n");
    printf("  request_file              %s\n", copyinstr(arg0));
    printf("  lineno                    %d\n", (int)arg1);
}

php*:::execute-return
{
    printf("PHP execute-return\n");
    printf("  request_file              %s\n", copyinstr(arg0));
    printf("  lineno                    %d\n", (int)arg1);
}

php*:::function-entry
{
    printf("PHP function-entry\n");
    printf("  function_name             %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
    printf("  classname                 %s\n", copyinstr(arg3));
    printf("  scope                     %s\n", copyinstr(arg4));
}

php*:::function-return
{
    printf("PHP function-return\n");
    printf("  function_name             %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
    printf("  classname                 %s\n", copyinstr(arg3));
    printf("  scope                     %s\n", copyinstr(arg4));
}

php*:::request-shutdown
{
    printf("PHP request-shutdown\n");
    printf("  file                      %s\n", copyinstr(arg0));
    printf("  request_uri               %s\n", copyinstr(arg1));
    printf("  request_method            %s\n", copyinstr(arg2));
}

php*:::request-startup
{
    printf("PHP request-startup\n");
    printf("  file                      %s\n", copyinstr(arg0));
    printf("  request_uri               %s\n", copyinstr(arg1));
    printf("  request_method            %s\n", copyinstr(arg2));
}

This script uses the -Z option to dtrace, allowing it to be run when there is no PHP process executing. If this option were omitted the script would immediately terminate because it knows none of the probes to be monitored are in existence.

The script traces all core PHP static probe points throughout the duration of a running PHP script. Run the D script:

# ./all_probes.d

Run a PHP script or application. The monitoring D script will output each probe's arguments as it fires.

When monitoring is complete, the D script can be terminated with a ^C.

On multi-CPU machines the probe ordering might not appear to be sequential. This depends on which CPU was processing the probes, and how threads migrate across CPUs. Displaying probe time stamps will help reduce confusion, for example:

php*:::function-entry
{
      printf("%lld: PHP function-entry ", walltimestamp);
      [ . . .]
}

See Also

  • OCI8 and DTrace Dynamic Tracing


Using SystemTap with PHP DTrace Static Probes

On some Linux distributions, the SystemTap tracing utility can be used to trace PHP's static DTrace probes. This is available with PHP 5.4.20 and PHP 5.5.

Installing PHP with SystemTap

Install the SystemTap SDT development package:

# yum install systemtap-sdt-devel

Install PHP with the DTrace probes enabled:

# ./configure --enable-dtrace ...
# make

Listing Static Probes with SystemTap

The static probes in PHP can be listed using stap:

# stap -l 'process.provider("php").mark("*")' -c 'sapi/cli/php -i'

This outputs:

process("sapi/cli/php").provider("php").mark("compile__file__entry")
process("sapi/cli/php").provider("php").mark("compile__file__return")
process("sapi/cli/php").provider("php").mark("error")
process("sapi/cli/php").provider("php").mark("exception__caught")
process("sapi/cli/php").provider("php").mark("exception__thrown")
process("sapi/cli/php").provider("php").mark("execute__entry")
process("sapi/cli/php").provider("php").mark("execute__return")
process("sapi/cli/php").provider("php").mark("function__entry")
process("sapi/cli/php").provider("php").mark("function__return")
process("sapi/cli/php").provider("php").mark("request__shutdown")
process("sapi/cli/php").provider("php").mark("request__startup")

SystemTap with PHP Example

Beispiel #1 all_probes.stp for tracing all PHP Static Probes with SystemTap

probe process("sapi/cli/php").provider("php").mark("compile__file__entry") {
    printf("Probe compile__file__entry\n");
    printf("  compile_file %s\n", user_string($arg1));
    printf("  compile_file_translated %s\n", user_string($arg2));
}
probe process("sapi/cli/php").provider("php").mark("compile__file__return") {
    printf("Probe compile__file__return\n");
    printf("  compile_file %s\n", user_string($arg1));
    printf("  compile_file_translated %s\n", user_string($arg2));
}
probe process("sapi/cli/php").provider("php").mark("error") {
    printf("Probe error\n");
    printf("  errormsg %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
}
probe process("sapi/cli/php").provider("php").mark("exception__caught") {
    printf("Probe exception__caught\n");
    printf("  classname %s\n", user_string($arg1));
}
probe process("sapi/cli/php").provider("php").mark("exception__thrown") {
    printf("Probe exception__thrown\n");
    printf("  classname %s\n", user_string($arg1));
}
probe process("sapi/cli/php").provider("php").mark("execute__entry") {
    printf("Probe execute__entry\n");
    printf("  request_file %s\n", user_string($arg1));
    printf("  lineno %d\n", $arg2);
}
probe process("sapi/cli/php").provider("php").mark("execute__return") {
    printf("Probe execute__return\n");
    printf("  request_file %s\n", user_string($arg1));
    printf("  lineno %d\n", $arg2);
}
probe process("sapi/cli/php").provider("php").mark("function__entry") {
    printf("Probe function__entry\n");
    printf("  function_name %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
    printf("  classname %s\n", user_string($arg4));
    printf("  scope %s\n", user_string($arg5));
}
probe process("sapi/cli/php").provider("php").mark("function__return") {
    printf("Probe function__return: %s\n", user_string($arg1));
    printf(" function_name %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
    printf("  classname %s\n", user_string($arg4));
    printf("  scope %s\n", user_string($arg5));
}
probe process("sapi/cli/php").provider("php").mark("request__shutdown") {
    printf("Probe request__shutdown\n");
    printf("  file %s\n", user_string($arg1));
    printf("  request_uri %s\n", user_string($arg2));
    printf("  request_method %s\n", user_string($arg3));
}
probe process("sapi/cli/php").provider("php").mark("request__startup") {
    printf("Probe request__startup\n");
    printf("  file %s\n", user_string($arg1));
    printf("  request_uri %s\n", user_string($arg2));
    printf("  request_method %s\n", user_string($arg3));
}

The above script will trace all core PHP static probe points throughout the duration of a running PHP script:

# stap -c 'sapi/cli/php test.php' all_probes.stp


Funktionsreferenz

Tipp

Siehe auch Extension-Liste/-Kategorisierung.

  • Das Verhalten von PHP beeinflussen
    • APCu — APC User Cache
    • Componere
    • Fehlerbehandlung — Fehlerbehandlung und Protokollierung
    • FFI — Foreign Function Interface
    • Memtrack
    • OPcache
    • Ausgabekontrolle — Ausgabepufferung
    • PHP-Optionen/-Informationen — PHP-Optionen und -Informationen
    • phpdbg — Interactive PHP Debugger
    • runkit7
    • uopz — User Operations for Zend
    • Weakref — Weak References
    • WinCache — Windows Cache for PHP
    • Xhprof — Hierarchical Profiler
    • Yac
  • Manipulation von Audioformaten
    • OpenAL — OpenAL Audio Bindings
  • Authentifizierungsdienste
    • Radius
  • Eingabezeilenspezifische Erweiterungen
    • Ncurses — Ncurses Terminal Screen Control
    • Readline — GNU Readline
  • Erweiterungen zur Datenkompression und Archivierung
    • Bzip2
    • LZF
    • Phar
    • Rar — Rar Archiving
    • Zip
    • Zlib — Zlib-Komprimierung
  • Kryptografische Erweiterungen
    • CSPRNG
    • Hash — HASH-Erweiterung
    • Mcrypt
    • Mhash
    • OpenSSL
    • Password Hashing
    • Sodium
  • Datenbankerweiterungen
    • Abstraktionsebenen
    • Anbieterspezifische Datenbankerweiterungen
  • Datums- und zeitrelevante Erweiterungen
    • Kalender
    • Datum/Uhrzeit — Datum und Uhrzeit
    • HRTime — High resolution timing
  • Dateisystemrelevante Erweiterungen
    • Direct-IO
    • Verzeichnis-Funktionen
    • Fileinfo — Dateiinformation
    • Dateisystem
    • Inotify
    • Proctitle
    • xattr
    • xdiff
  • Unterstützung menschlicher Sprache und Zeichenkodierung
    • Enchant — Enchant spelling library
    • Gender — Geschlecht aus Vornamen ermitteln
    • Gettext
    • iconv
    • intl — Internationalization Functions
    • Multibyte String
    • Pspell
    • Recode — GNU Recode
  • Bildverarbeitung und -generierung
    • Exif — Exchangable Image Information (EXIF)
    • GD — Bildbearbeitung und GD
    • Gmagick
    • ImageMagick — Image Processing (ImageMagick)
  • E-Mail-relevante Erweiterungen
    • IMAP — IMAP, POP3 and NNTP
    • Mail
    • Mailparse
  • Mathematische Erweiterungen
    • BC Math — BCMath Rechnen mit beliebiger Genauigkeit
    • GMP — GNU Multiple Precision
    • Math — Mathematische Funktionen
    • Statistics
    • Trader — Technical Analysis for Traders
  • Non-Text MIME-Ausgaben
    • FDF — Forms Data Format Funktionen
    • GnuPG — GNU Privacy Guard
    • wkhtmltox
    • PS — PostScript document creation
    • RpmInfo
    • XLSWriter
  • Erweiterungen zur Prozesskontrolle
    • Eio
    • Ev
    • Expect
    • PCNTL — Prozesskontrolle
    • POSIX
    • Programmausführung — Ausführung von Systemprogrammen
    • parallel
    • pthreads
    • pht
    • Semaphore — Semaphore, Shared Memory and IPC
    • Shared Memory
    • Sync
  • Sonstige Grunderweiterungen
    • GeoIP — Geo IP Location
    • FANN — FANN (Fast Artificial Neural Network)
    • JSON — JavaScript-Objekt-Notation
    • Lua
    • LuaSandbox
    • Misc. — Miscellaneous Functions
    • Seaslog
    • SPL — Standard PHP Library (SPL)
    • Streams
    • Swoole
    • Tidy
    • Tokenizer
    • URLs
    • V8js — V8 Javascript-Engine Integration
    • Yaml — YAML Data Serialization
    • Yaf — Yet Another Framework
    • Yaconf
    • Taint
    • Data Structures
  • Sonstige Dienste
    • cURL — CURL
    • Event
    • FTP
    • Gearman
    • LDAP — Lightweight Directory Access Protocol
    • Memcache
    • Memcached
    • mqseries
    • Network
    • RRD — RRDtool
    • ScoutAPM
    • SNMP
    • Sockets
    • SSH2 — Secure Shell2
    • Stomp — Stomp Client
    • SVM — Support Vector Machine
    • SVN — Subversion
    • TCP — TCP Wrappers
    • Varnish
    • YAZ
    • 0MQ messaging — ZMQ
    • ZooKeeper
  • Suchmaschinenerweiterungen
    • Solr — Apache Solr
    • Sphinx — Sphinx Client
  • Serverspezifische Erweiterungen
    • Apache
    • FastCGI Process Manager
  • Session-Erweiterungen
    • Sessions — Sessionbehandlung
  • Textverarbeitung
    • CommonMark
    • Parle — Parsing and lexing
    • PCRE — Reguläre Ausdrücke (Perl-kompatibel)
    • POSIX Regex — Reguläre Ausdrücke (POSIX-erweitert)
    • ssdeep — ssdeep Fuzzy Hashing
    • Zeichenketten
  • Variablen- und typbezogene Erweiterungen
    • Arrays
    • Klassen/Objekte — Klassen- und Objektinformationen
    • Classkit
    • Ctype — Zeichentypprüfung
    • Filter — Datenfilterung
    • Function Handling
    • Quickhash
    • Reflection
    • Variablenbehandlung
  • Web Services
    • OAuth
    • SOAP
    • Yar — Yet Another RPC Framework
    • XML-RPC
  • Windowsbasierte Erweiterungen
    • COM — COM and .Net (Windows)
    • win32service
  • XML-Manipulation
    • DOM — Document Object Model
    • libxml
    • SimpleXML
    • WDDX
    • XMLDiff — XML diff and merge
    • XML Parser
    • XMLReader
    • XMLWriter
    • XSL
  • GUI Erweiterungen
    • UI


Das Verhalten von PHP beeinflussen

  • APCu — APC User Cache
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • APCu Funktionen
    • APCUIterator — The APCUIterator class
  • Componere
    • Einführung
    • Installation/Konfiguration
    • Componere\Abstract\Definition — The Componere\Abstract\Definition class
    • Componere\Definition — The Componere\Definition class
    • Componere\Patch — The Componere\Patch class
    • Componere\Method — The Componere\Method class
    • Componere\Value — The Componere\Value class
    • Componere Funktionen
  • Fehlerbehandlung — Fehlerbehandlung und Protokollierung
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Fehlerbehandlungsfunktionen
  • FFI — Foreign Function Interface
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • FFI — Main interface to C code and data
    • FFI\CData — C Data Handles
    • FFI\CType — C Type Handles
    • FFI\Exception — FFI Exceptions
    • FFI\ParserException — FFI Parser Exceptions
  • Memtrack
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
  • OPcache
    • Einführung
    • Installation/Konfiguration
    • Preloading
    • OPcache Funktionen
  • Ausgabekontrolle — Ausgabepufferung
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Output-Control-Funktionen
  • PHP-Optionen/-Informationen — PHP-Optionen und -Informationen
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • PHP-Optionen-/-Informationen-Funktionen
  • phpdbg — Interactive PHP Debugger
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • phpdbg Funktionen
  • runkit7
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • runkit7 Funktionen
  • uopz — User Operations for Zend
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Uopz Funktionen
  • Weakref — Weak References
    • Einführung
    • Installation/Konfiguration
    • WeakRef — The WeakRef class
    • WeakMap — The WeakMap class
  • WinCache — Windows Cache for PHP
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • WinCache Funktionen
    • Building for Windows
  • Xhprof — Hierarchical Profiler
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Xhprof Funktionen
  • Yac
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Yac — The Yac class


APC User Cache

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • APCu Funktionen
    • apcu_add — Cache a new variable in the data store
    • apcu_cache_info — Retrieves cached information from APCu's data store
    • apcu_cas — Updates an old value with a new value
    • apcu_clear_cache — Clears the APCu cache
    • apcu_dec — Decrease a stored number
    • apcu_delete — Removes a stored variable from the cache
    • apcu_enabled — Whether APCu is usable in the current environment
    • apcu_entry — Atomically fetch or generate a cache entry
    • apcu_exists — Checks if entry exists
    • apcu_fetch — Fetch a stored variable from the cache
    • apcu_inc — Increase a stored number
    • apcu_key_info — Get detailed information about the cache key
    • apcu_sma_info — Retrieves APCu Shared Memory Allocation information
    • apcu_store — Cache a variable in the data store
  • APCUIterator — The APCUIterator class
    • APCUIterator::__construct — Constructs an APCUIterator iterator object
    • APCUIterator::current — Get current item
    • APCUIterator::getTotalCount — Get total count
    • APCUIterator::getTotalHits — Get total cache hits
    • APCUIterator::getTotalSize — Get total cache size
    • APCUIterator::key — Get iterator key
    • APCUIterator::next — Move pointer to next item
    • APCUIterator::rewind — Rewinds iterator
    • APCUIterator::valid — Checks if current position is valid


Einführung

APCu is an in-memory key-value store for PHP. Keys are of type String and values can be any PHP variables. APCu only supports userland caching of variables.

APCu is APC stripped of opcode caching.

The first APCu codebase was versioned 4.0.0, it was forked from the head of the APC master branch at the time.

PHP 7 support is available as of APCu 5.0.0.

APCu can provide a compatibility mode, such that it can provide a drop in replacement for the applicable parts of APC.


Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation
  • Laufzeit-Konfiguration
  • Ressource-Typen


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

Diese Erweiterung benötigt für die Kompilierung keine externen Bibliotheken.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/apcu.

If backward compatibility with the applicable parts of APC is required, APCu must be configured with the option --enable-apcu-bc.

Warnung

PHP 7 has a separate module (» apc.so) for backwards compatibility with APC.

In backward compatibility mode, APCu registers the applicable APC functions with backward compatible prototypes.

Where an APC function accepted cache_type, it is simply ignored by the backward compatible version, and omitted from the prototype for the APCu version.

Hinweis: On Windows, APCu needs a temp path to exist, and be writable by the web server. It checks the TMP, TEMP and USERPROFILE environment variables in that order and finally tries the WINDOWS directory if none of those are set.

Hinweis: For more in-depth, highly technical implementation details, see the » developer-supplied TECHNOTES file .

APCu sources can be found » here.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Although the default APCu settings are fine for many installations, serious users should consider tuning the following parameters.

There is one decision to be made configuring APCu. How much memory is going to be allocated to APCu. The ini directive that controls this is apc.shm_size Read the sections on this carefully below.

Once the server is running, the apc.php script that is bundled with the extension should be copied somewhere into the docroot and viewed with a browser as it provides a detailed analysis of the internal workings of APCu. If GD is enabled in PHP, it will even display some interesting graphs. If APCu is working, the Cache full count number (on the left) will display the number of times the cache has reached maximum capacity and has had to forcefully clean any entries that haven't been accessed in the last apc.ttl seconds. This number is minimized in a well-configured cache. If the cache is constantly being filled, and thusly forcefully freed, the resulting churning will have disparaging effects on script performance. The easiest way to minimize this number is to allocate more memory for APCu.

When APCu is compiled with mmap support (Memory Mapping), it will use only one memory segment, unlike when APCu is built with SHM (SysV Shared Memory) support that uses multiple memory segments. MMAP does not have a maximum limit like SHM does in /proc/sys/kernel/shmmax. In general MMAP support is recommended because it will reclaim the memory faster when the webserver is restarted and all in all reduces memory allocation impact at startup.

APCu configuration options
Name | Standard | Veränderbar | Changelog
apc.enabled | "1" | PHP_INI_SYSTEM |
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "32M" | PHP_INI_SYSTEM |
apc.entries_hint | "4096" | PHP_INI_SYSTEM |
apc.ttl | "0" | PHP_INI_SYSTEM |
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.slam_defense | "1" | PHP_INI_SYSTEM |
apc.enable_cli | "0" | PHP_INI_SYSTEM |
apc.use_request_time | "0" | PHP_INI_ALL | Prior to APCu 5.1.19, the default was "1".
apc.serializer | "php" | PHP_INI_SYSTEM | Prior to APCu 5.1.15, the default was "default".
apc.coredump_unmap | "0" | PHP_INI_SYSTEM |
apc.preload_path | NULL | PHP_INI_SYSTEM |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

apc.enabled bool

apc.enabled can be set to 0 to disable APC. This is primarily useful when APC is statically compiled into PHP, since there is no other way to disable it (when compiled as a DSO, the extension line in php.ini can just be commented-out).

apc.shm_segments int

The number of shared memory segments to allocate for the compiler cache. If APC is running out of shared memory but apc.shm_size is set as high as the system allows, raising this value might prevent APC from exhausting its memory.

apc.shm_size string

The size of each shared memory segment given by a shorthand notation as described in this FAQ. By default, some systems (including most BSD variants) have very low limits on the size of a shared memory segment.

apc.entries_hint int

A "hint" about the number of distinct variables that might be stored. Set to zero or omit if not sure.

apc.ttl int

The number of seconds a cache entry is allowed to idle in a slot in case this cache entry slot is needed by another entry. Leaving this at zero means that APC's cache could potentially fill up with stale entries while newer entries won't be cached. In the event of a cache running out of available memory, the cache will be completely expunged if ttl is equal to 0. Otherwise, if the ttl is greater than 0, APC will attempt to remove expired entries.

apc.gc_ttl int

The number of seconds that a cache entry may remain on the garbage-collection list. This value provides a fail-safe in the event that a server process dies while executing a cached source file; if that source file is modified, the memory allocated for the old version will not be reclaimed until this TTL reached. Set to zero to disable this feature.

apc.mmap_file_mask string

If compiled with MMAP support by using --enable-mmap this is the mktemp-style file_mask to pass to the mmap module for determining whether your mmap'ed memory region is going to be file-backed or shared memory backed. For straight file-backed mmap, set it to something like /tmp/apc.XXXXXX (exactly 6 Xs). To use POSIX-style shm_open/mmap put a .shm somewhere in your mask. e.g. /apc.shm.XXXXXX You can also set it to /dev/zero to use your kernel's /dev/zero interface to anonymous mmap'ed memory. Leaving it undefined will force an anonymous mmap.

apc.slam_defense int

On very busy servers whenever you start the server or modify files you can create a race of many processes all trying to cache the same file at the same time. This option sets the percentage of processes that will skip trying to cache an uncached file. Or think of it as the probability of a single process to skip caching. For example, setting apc.slam_defense to 75 would mean that there is a 75% chance that the process will not cache an uncached file. So, the higher the setting the greater the defense against cache slams. Setting this to 0 disables this feature.

apc.enable_cli int

Mostly for testing and debugging. Setting this enables APC for the CLI version of PHP. Under normal circumstances, it is not ideal to create, populate and destroy the APC cache on every CLI request, but for various test scenarios it is useful to be able to enable APC for the CLI version of PHP easily.

apc.serializer string

Used to configure APC to use a third party serializer.

apc.coredump_unmap bool

Enables APC handling of signals, such as SIGSEGV, that write core files when signaled. When these signals are received, APC will attempt to unmap the shared memory segment in order to exclude it from the core file. This setting may improve system stability when fatal signals are received and a large APC shared memory segment is configured.

Warnung

This feature is potentially dangerous. Unmapping the shared memory segment in a fatal signal handler may cause undefined behaviour if a fatal error occurs.

Hinweis:

Although some kernels may provide a facility to ignore various types of shared memory when generating a core dump file, these implementations may also ignore important shared memory segments such as the Apache scoreboard.

apc.preload_path string

Optionally, set a path to the directory that APC will load cache data at startup.

apc.use_request_time bool

Use the SAPI request start time for TTL.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert keine Ressource-Typen.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

APC_ITER_ALL (int)
APC_ITER_ATIME (int)
APC_ITER_CTIME (int)
APC_ITER_DEVICE (int)
APC_ITER_DTIME (int)
APC_ITER_FILENAME (int)
APC_ITER_INODE (int)
APC_ITER_KEY (int)
APC_ITER_MD5 (int)
APC_ITER_MEM_SIZE (int)
APC_ITER_MTIME (int)
APC_ITER_NONE (int)
APC_ITER_NUM_HITS (int)
APC_ITER_REFCOUNT (int)
APC_ITER_TTL (int)
APC_ITER_TYPE (int)
APC_ITER_VALUE (int)
APC_LIST_ACTIVE (int)
APC_LIST_DELETED (int)


APCu Funktionen

Inhaltsverzeichnis

  • apcu_add — Cache a new variable in the data store
  • apcu_cache_info — Retrieves cached information from APCu's data store
  • apcu_cas — Updates an old value with a new value
  • apcu_clear_cache — Clears the APCu cache
  • apcu_dec — Decrease a stored number
  • apcu_delete — Removes a stored variable from the cache
  • apcu_enabled — Whether APCu is usable in the current environment
  • apcu_entry — Atomically fetch or generate a cache entry
  • apcu_exists — Checks if entry exists
  • apcu_fetch — Fetch a stored variable from the cache
  • apcu_inc — Increase a stored number
  • apcu_key_info — Get detailed information about the cache key
  • apcu_sma_info — Retrieves APCu Shared Memory Allocation information
  • apcu_store — Cache a variable in the data store


Cache a new variable in the data store

  • « APCu Funktionen
  • apcu_cache_info »
  • PHP Manual
  • APCu Funktionen
  • Cache a new variable in the data store

apcu_add

(PECL apcu >= 4.0.0)

apcu_add — Cache a new variable in the data store

Beschreibung

apcu_add ( string $key , mixed $var , int $ttl = 0 ) : bool
apcu_add ( array $values , mixed $unused = NULL , int $ttl = 0 ) : array

Caches a variable in the data store, only if it's not already stored.

Hinweis: Unlike many other mechanisms in PHP, variables stored using apcu_add() will persist between requests (until the value is removed from the cache).

Parameter-Liste

key

Store the variable using this name. keys are cache-unique, so attempting to use apcu_add() to store data with a key that already exists will not overwrite the existing data, and will instead return false. (This is the only difference between apcu_add() and apcu_store().)

var

The variable to store

ttl

Time To Live; store var in the cache for ttl seconds. After the ttl has passed, the stored variable will be expunged from the cache (on the next request). If no ttl is supplied (or if the ttl is 0), the value will persist until it is removed from the cache manually, or otherwise fails to exist in the cache (clear, restart, etc.).

values

Names in key, variables in value.

Rückgabewerte

Returns TRUE if something has effectively been added into the cache, FALSE otherwise. Second syntax returns array with error keys.

Beispiele

Beispiel #1 A apcu_add() example

<?php
$bar = 'BAR';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
$bar = 'NEVER GETS SET';
apcu_add('foo', $bar);
var_dump(apcu_fetch('foo'));
echo "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "BAR"
string(3) "BAR"

Siehe auch

  • apcu_store() - Cache a variable in the data store
  • apcu_fetch() - Fetch a stored variable from the cache
  • apcu_delete() - Removes a stored variable from the cache


Retrieves cached information from APCu's data store

  • « apcu_add
  • apcu_cas »
  • PHP Manual
  • APCu Funktionen
  • Retrieves cached information from APCu's data store

apcu_cache_info

(PECL apcu >= 4.0.0)

apcu_cache_info — Retrieves cached information from APCu's data store

Beschreibung

apcu_cache_info ( bool $limited = false ) : array|false

Retrieves cached information and meta-data from APC's data store.

Parameter-Liste

limited

If limited is true, the return value will exclude the individual list of cache entries. This is useful when trying to optimize calls for statistics gathering.

Rückgabewerte

Array of cached data (and meta-data)Im Fehlerfall wird false zurückgegeben.

Hinweis: apcu_cache_info() will raise a warning if it is unable to retrieve APC cache data. This typically occurs when APC is not enabled.

Changelog

Version | Beschreibung
PECL apcu 3.0.11 | The limited parameter was introduced.
PECL apcu 3.0.16 | The "filehits" option for the cache_type parameter was introduced.

Beispiele

Beispiel #1 A apcu_cache_info() example

<?php
print_r(apcu_cache_info());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [num_slots] => 2000
    [ttl] => 0
    [num_hits] => 9
    [num_misses] => 3
    [start_time] => 1123958803
    [cache_list] => Array
        (
            [0] => Array
                (
                    [filename] => /path/to/apcu_test.php
                    [device] => 29954
                    [inode] => 1130511
                    [type] => file
                    [num_hits] => 1
                    [mtime] => 1123960686
                    [creation_time] => 1123960696
                    [deletion_time] => 0
                    [access_time] => 1123962864
                    [ref_count] => 1
                    [mem_size] => 677
                )
            [1] => Array (...iterates for each cached file)
)

Siehe auch

  • APCu configuration directives
  • APCUIterator::getTotalSize() - Get total cache size
  • APCUIterator::getTotalHits() - Get total cache hits
  • APCUIterator::getTotalCount() - Get total count


Updates an old value with a new value

  • « apcu_cache_info
  • apcu_clear_cache »
  • PHP Manual
  • APCu Funktionen
  • Updates an old value with a new value

apcu_cas

(PECL apcu >= 4.0.0)

apcu_cas — Updates an old value with a new value

Beschreibung

apcu_cas ( string $key , int $old , int $new ) : bool

apcu_cas() updates an already existing integer value if the old parameter matches the currently stored value with the value of the new parameter.

Parameter-Liste

key

The key of the value being updated.

old

The old value (the value currently stored).

new

The new value to update to.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 apcu_cas() example

<?php
apcu_store('foobar', 2);
echo '$foobar = 2', PHP_EOL;
echo '$foobar == 1 ? 2 : 1 = ', (apcu_cas('foobar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;
echo '$foobar == 2 ? 1 : 2 = ', (apcu_cas('foobar', 2, 1) ? 'ok' : 'fail'), PHP_EOL;

echo '$foobar = ', apcu_fetch('foobar'), PHP_EOL;

echo '$f__bar == 1 ? 2 : 1 = ', (apcu_cas('f__bar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;

apcu_store('perfection', 'xyz');
echo '$perfection == 2 ? 1 : 2 = ', (apcu_cas('perfection', 2, 1) ? 'ok' : 'epic fail'), PHP_EOL;

echo '$foobar = ', apcu_fetch('foobar'), PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

$foobar = 2
$foobar == 1 ? 2 : 1 = fail
$foobar == 2 ? 1 : 2 = ok
$foobar = 1
$f__bar == 1 ? 2 : 1 = fail
$perfection == 2 ? 1 : 2 = epic fail
$foobar = 1

Siehe auch

  • apcu_dec() - Decrease a stored number
  • apcu_store() - Cache a variable in the data store


Clears the APCu cache

  • « apcu_cas
  • apcu_dec »
  • PHP Manual
  • APCu Funktionen
  • Clears the APCu cache

apcu_clear_cache

(PECL apcu >= 4.0.0)

apcu_clear_cache — Clears the APCu cache

Beschreibung

apcu_clear_cache ( ) : bool

Clears the cache.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true always

Siehe auch

  • apcu_cache_info() - Retrieves cached information from APCu's data store


Decrease a stored number

  • « apcu_clear_cache
  • apcu_delete »
  • PHP Manual
  • APCu Funktionen
  • Decrease a stored number

apcu_dec

(PECL apcu >= 4.0.0)

apcu_dec — Decrease a stored number

Beschreibung

apcu_dec ( string $key , int $step = 1 , bool &$success = ? , int $ttl = 0 ) : int|false

Decreases a stored integer value.

Parameter-Liste

key

The key of the value being decreased.

step

The step, or value to decrease.

success

Optionally pass the success or fail boolean value to this referenced variable.

ttl

TTL to use if the operation inserts a new value (rather than decrementing an existing one).

Rückgabewerte

Returns the current value of key's value on success, Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.1.12 | The ttl parameter has been added.

Beispiele

Beispiel #1 apcu_dec() example

<?php
echo "Let's do something with success", PHP_EOL;

apcu_store('anumber', 42);

echo apcu_fetch('anumber'), PHP_EOL;

echo apcu_dec('anumber'), PHP_EOL;
echo apcu_dec('anumber', 10), PHP_EOL;
echo apcu_dec('anumber', 10, $success), PHP_EOL;

var_dump($success);

echo "Now, let's fail", PHP_EOL, PHP_EOL;

apcu_store('astring', 'foo');

$ret = apcu_dec('astring', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Let's do something with success
42
41
31
21
bool(true)
Now, let's fail

bool(false)
bool(false)

Siehe auch

  • apcu_inc() - Increase a stored number


Removes a stored variable from the cache

  • « apcu_dec
  • apcu_enabled »
  • PHP Manual
  • APCu Funktionen
  • Removes a stored variable from the cache

apcu_delete

(PECL apcu >= 4.0.0)

apcu_delete — Removes a stored variable from the cache

Beschreibung

apcu_delete ( mixed $key ) : mixed

Removes a stored variable from the cache.

Parameter-Liste

key

A key used to store the value as a string for a single key, or as an array of strings for several keys, or as an APCUIterator object.

Rückgabewerte

If key is an Array, an indexed Array of the keys is returned. Otherwise true is returned on success, or false on failure.

Beispiele

Beispiel #1 A apcu_delete() example

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
apcu_delete('foo');
// this is obviously useless in this form

// Alternatively delete multiple keys.
apcu_delete(['foo', 'bar', 'baz']);

// Or use an Iterator with a regular expression.
apcu_delete(new APCUIterator('#^myprefix_#'));
?>

Siehe auch

  • apcu_store() - Cache a variable in the data store
  • apcu_fetch() - Fetch a stored variable from the cache
  • apcu_clear_cache() - Clears the APCu cache
  • APCUIterator


Whether APCu is usable in the current environment

  • « apcu_delete
  • apcu_entry »
  • PHP Manual
  • APCu Funktionen
  • Whether APCu is usable in the current environment

apcu_enabled

(PECL apcu >= 4.0.3)

apcu_enabled — Whether APCu is usable in the current environment

Beschreibung

apcu_enabled ( ) : bool

Returns whether APCu is usable in the current environment.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true when APCu is usable in the current environment, false otherwise.


Atomically fetch or generate a cache entry

  • « apcu_enabled
  • apcu_exists »
  • PHP Manual
  • APCu Funktionen
  • Atomically fetch or generate a cache entry

apcu_entry

(PECL apcu >= 5.1.0)

apcu_entry — Atomically fetch or generate a cache entry

Beschreibung

apcu_entry ( string $key , callable $generator , int $ttl = 0 ) : mixed

Atomically attempts to find key in the cache, if it cannot be found generator is called, passing key as the only argument. The return value of the call is then cached with the optionally specified ttl, and returned.

Hinweis: When control enters apcu_entry() the lock for the cache is acquired exclusively, it is released when control leaves apcu_entry(): In effect, this turns the body of generator into a critical section, disallowing two processes from executing the same code paths concurrently. In addition, it prohibits the concurrent execution of any other APCu functions, since they will acquire the same lock.

Warnung

The only APCu function that can be called safely by generator is apcu_entry().

Parameter-Liste

key

Identity of cache entry

generator

A callable that accepts key as the only argument and returns the value to cache.

ttl

Time To Live; store var in the cache for ttl seconds. After the ttl has passed, the stored variable will be expunged from the cache (on the next request). If no ttl is supplied (or if the ttl is 0), the value will persist until it is removed from the cache manually, or otherwise fails to exist in the cache (clear, restart, etc.).

Rückgabewerte

Returns the cached value

Beispiele

Beispiel #1 An apcu_entry() example

<?php
$config = apcu_entry("config", function($key) {
 return [
   "fruit" => apcu_entry("config.fruit", function($key){
     return [
       "apples",
       "pears"
     ];
   }),
   "people" => apcu_entry("config.people", function($key){
     return [
      "bob",
      "joe",
      "niki"
     ];
   })
 ];
});

var_dump($config);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["fruit"]=>
  array(2) {
    [0]=>
    string(6) "apples"
    [1]=>
    string(5) "pears"
  }
  ["people"]=>
  array(3) {
    [0]=>
    string(3) "bob"
    [1]=>
    string(3) "joe"
    [2]=>
    string(4) "niki"
  }
}

Siehe auch

  • apcu_store() - Cache a variable in the data store
  • apcu_fetch() - Fetch a stored variable from the cache
  • apcu_delete() - Removes a stored variable from the cache


Checks if entry exists

  • « apcu_entry
  • apcu_fetch »
  • PHP Manual
  • APCu Funktionen
  • Checks if entry exists

apcu_exists

(PECL apcu >= 4.0.0)

apcu_exists — Checks if entry exists

Beschreibung

apcu_exists ( mixed $keys ) : mixed

Checks if one or more APCu entries exist.

Parameter-Liste

keys

A string, or an array of strings, that contain keys.

Rückgabewerte

Returns true if the key exists, otherwise false Or if an array was passed to keys, then an array is returned that contains all existing keys, or an empty array if none exist.

Beispiele

Beispiel #1 apcu_exists() example

<?php
$fruit  = 'apple';
$veggie = 'carrot';

apcu_store('foo', $fruit);
apcu_store('bar', $veggie);

if (apcu_exists('foo')) {
    echo "Foo exists: ";
    echo apcu_fetch('foo');
} else {
    echo "Foo does not exist";
}

echo PHP_EOL;
if (apcu_exists('baz')) {
    echo "Baz exists.";
} else {
    echo "Baz does not exist";
}

echo PHP_EOL;

$ret = apcu_exists(array('foo', 'donotexist', 'bar'));
var_dump($ret);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Foo exists: apple
Baz does not exist
array(2) {
  ["foo"]=>
  bool(true)
  ["bar"]=>
  bool(true)
}

Siehe auch

  • apcu_cache_info() - Retrieves cached information from APCu's data store
  • apcu_fetch() - Fetch a stored variable from the cache


Fetch a stored variable from the cache

  • « apcu_exists
  • apcu_inc »
  • PHP Manual
  • APCu Funktionen
  • Fetch a stored variable from the cache

apcu_fetch

(PECL apcu >= 4.0.0)

apcu_fetch — Fetch a stored variable from the cache

Beschreibung

apcu_fetch ( mixed $key , bool &$success = ? ) : mixed

Fetches an entry from the cache.

Parameter-Liste

key

The key used to store the value (with apcu_store()). If an array is passed then each element is fetched and returned.

success

Set to true in success and false in failure.

Rückgabewerte

The stored variable or array of variables on success; false on failure

Beispiele

Beispiel #1 A apcu_fetch() example

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "BAR"

Changelog

Version | Beschreibung
PECL apcu 3.0.17 | The success parameter was added.

Siehe auch

  • apcu_store() - Cache a variable in the data store
  • apcu_delete() - Removes a stored variable from the cache
  • APCUIterator


Increase a stored number

  • « apcu_fetch
  • apcu_key_info »
  • PHP Manual
  • APCu Funktionen
  • Increase a stored number

apcu_inc

(PECL apcu >= 4.0.0)

apcu_inc — Increase a stored number

Beschreibung

apcu_inc ( string $key , int $step = 1 , bool &$success = ? , int $ttl = 0 ) : int|false

Increases a stored number.

Parameter-Liste

key

The key of the value being increased.

step

The step, or value to increase.

success

Optionally pass the success or fail boolean value to this referenced variable.

ttl

TTL to use if the operation inserts a new value (rather than incrementing an existing one).

Rückgabewerte

Returns the current value of key's value on success, Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.1.12 | The ttl parameter has been added.

Beispiele

Beispiel #1 apcu_inc() example

<?php
echo "Let's do something with success", PHP_EOL;

apcu_store('anumber', 42);

echo apcu_fetch('anumber'), PHP_EOL;

echo apcu_inc('anumber'), PHP_EOL;
echo apcu_inc('anumber', 10), PHP_EOL;
echo apcu_inc('anumber', 10, $success), PHP_EOL;

var_dump($success);

echo "Now, let's fail", PHP_EOL, PHP_EOL;

apcu_store('astring', 'foo');

$ret = apcu_inc('astring', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Let's do something with success
42
43
53
63
bool(true)
Now, let's fail

bool(false)
bool(false)

Siehe auch

  • apcu_dec() - Decrease a stored number


Get detailed information about the cache key

  • « apcu_inc
  • apcu_sma_info »
  • PHP Manual
  • APCu Funktionen
  • Get detailed information about the cache key

apcu_key_info

(No version information available, might only be in Git)

apcu_key_info — Get detailed information about the cache key

Beschreibung

apcu_key_info ( string $key ) : array

Get detailed information about the cache key

Parameter-Liste

key

Get detailed information about the cache key

Rückgabewerte

null or array info

Beispiele

Beispiel #1 A apcu_key_info() example

<?php
apcu_add('a','b');
var_dump(apcu_key_info('a'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(7) {
  ["hits"]=>
  int(0)
  ["access_time"]=>
  int(1606701783)
  ["mtime"]=>
  int(1606701783)
  ["creation_time"]=>
  int(1606701783)
  ["deletion_time"]=>
  int(0)
  ["ttl"]=>
  int(0)
  ["refs"]=>
  int(0)
}

Siehe auch

  • apcu_store() - Cache a variable in the data store
  • apcu_fetch() - Fetch a stored variable from the cache
  • apcu_delete() - Removes a stored variable from the cache


Retrieves APCu Shared Memory Allocation information

  • « apcu_key_info
  • apcu_store »
  • PHP Manual
  • APCu Funktionen
  • Retrieves APCu Shared Memory Allocation information

apcu_sma_info

(PECL apcu >= 4.0.0)

apcu_sma_info — Retrieves APCu Shared Memory Allocation information

Beschreibung

apcu_sma_info ( bool $limited = false ) : array

Retrieves APCu Shared Memory Allocation information.

Parameter-Liste

limited

When set to false (default) apcu_sma_info() will return a detailed information about each segment.

Rückgabewerte

Array of Shared Memory Allocation data; false on failure.

Beispiele

Beispiel #1 A apcu_sma_info() example

<?php
print_r(apcu_sma_info());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [num_seg] => 1
    [seg_size] => 31457280
    [avail_mem] => 31448408
    [block_lists] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [size] => 31448408
                            [offset] => 8864
                        )

                )

        )

)

Siehe auch

  • APCu configuration directives


Cache a variable in the data store

  • « apcu_sma_info
  • APCUIterator »
  • PHP Manual
  • APCu Funktionen
  • Cache a variable in the data store

apcu_store

(PECL apcu >= 4.0.0)

apcu_store — Cache a variable in the data store

Beschreibung

apcu_store ( string $key , mixed $var , int $ttl = 0 ) : bool
apcu_store ( array $values , mixed $unused = NULL , int $ttl = 0 ) : array

Cache a variable in the data store.

Hinweis: Unlike many other mechanisms in PHP, variables stored using apcu_store() will persist between requests (until the value is removed from the cache).

Parameter-Liste

key

Store the variable using this name. keys are cache-unique, so storing a second value with the same key will overwrite the original value.

var

The variable to store

ttl

Time To Live; store var in the cache for ttl seconds. After the ttl has passed, the stored variable will be expunged from the cache (on the next request). If no ttl is supplied (or if the ttl is 0), the value will persist until it is removed from the cache manually, or otherwise fails to exist in the cache (clear, restart, etc.).

values

Names in key, variables in value.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Second syntax returns array with error keys.

Beispiele

Beispiel #1 A apcu_store() example

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "BAR"

Siehe auch

  • apcu_add() - Cache a new variable in the data store
  • apcu_fetch() - Fetch a stored variable from the cache
  • apcu_delete() - Removes a stored variable from the cache


The APCUIterator class

(PECL apcu >= 5.0.0)

Einführung

The APCUIterator class makes it easier to iterate over large APCu caches. This is helpful as it allows iterating over large caches in steps, while grabbing a defined number of entries per lock instance, so it frees the cache locks for other activities rather than hold up the entire cache to grab 100 (the default) entries. Also, using regular expression matching is more efficient as it's been moved to the C level.

Klassenbeschreibung

APCUIterator implements Iterator {
/* Methods */
public __construct ( mixed $search = null , int $format = APC_ITER_ALL , int $chunk_size = 100 , int $list = APC_LIST_ACTIVE )
public current ( ) : mixed
public getTotalCount ( ) : int
public getTotalHits ( ) : int
public getTotalSize ( ) : int
public key ( ) : string
public next ( ) : bool
public rewind ( ) : void
public valid ( ) : bool
}

Inhaltsverzeichnis

  • APCUIterator::__construct — Constructs an APCUIterator iterator object
  • APCUIterator::current — Get current item
  • APCUIterator::getTotalCount — Get total count
  • APCUIterator::getTotalHits — Get total cache hits
  • APCUIterator::getTotalSize — Get total cache size
  • APCUIterator::key — Get iterator key
  • APCUIterator::next — Move pointer to next item
  • APCUIterator::rewind — Rewinds iterator
  • APCUIterator::valid — Checks if current position is valid


Constructs an APCUIterator iterator object

  • « APCUIterator
  • APCUIterator::current »
  • PHP Manual
  • APCUIterator
  • Constructs an APCUIterator iterator object

APCUIterator::__construct

(PECL apcu >= 5.0.0)

APCUIterator::__construct — Constructs an APCUIterator iterator object

Beschreibung

public APCUIterator::__construct ( mixed $search = null , int $format = APC_ITER_ALL , int $chunk_size = 100 , int $list = APC_LIST_ACTIVE )

Constructs an APCUIterator object.

Parameter-Liste

search

A PCRE regular expression that matches against APCu key names, either as a string for a single regular expression, or as an array of regular expressions. Or, optionally pass in null to skip the search.

format

The desired format, as configured with one or more of the APC_ITER_* constants.

chunk_size

The chunk size. Must be a value greater than 0. The default value is 100.

list

The type to list. Either pass in APC_LIST_ACTIVE or APC_LIST_DELETED.

Rückgabewerte

An APCUIterator object on success, or null on failure.

Beispiele

Beispiel #1 A APCUIterator::__construct() example

<?php
foreach (new APCUIterator('/^counter\./') as $counter) {
    echo "$counter[key]: $counter[value]\n";
    apc_dec($counter['key'], $counter['value']);
}
?>

Siehe auch

  • apcu_exists() - Checks if entry exists
  • apcu_cache_info() - Retrieves cached information from APCu's data store


Get current item

  • « APCUIterator::__construct
  • APCUIterator::getTotalCount »
  • PHP Manual
  • APCUIterator
  • Get current item

APCUIterator::current

(PECL apcu >= 5.0.0)

APCUIterator::current — Get current item

Beschreibung

public APCUIterator::current ( ) : mixed

Gets the current item from the APCUIterator stack.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current item on success, or false if no more items or exist, or on failure.

Siehe auch

  • APCUIterator::next() - Move pointer to next item
  • Iterator::current() - Gibt das aktuelle Element zurück


Get total count

  • « APCUIterator::current
  • APCUIterator::getTotalHits »
  • PHP Manual
  • APCUIterator
  • Get total count

APCUIterator::getTotalCount

(PECL apcu >= 5.0.0)

APCUIterator::getTotalCount — Get total count

Beschreibung

public APCUIterator::getTotalCount ( ) : int

Get the total count.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The total count.

Siehe auch

  • APCUIterator::getTotalHits() - Get total cache hits
  • APCUIterator::getTotalSize() - Get total cache size
  • apcu_cache_info() - Retrieves cached information from APCu's data store


Get total cache hits

  • « APCUIterator::getTotalCount
  • APCUIterator::getTotalSize »
  • PHP Manual
  • APCUIterator
  • Get total cache hits

APCUIterator::getTotalHits

(PECL apcu >= 5.0.0)

APCUIterator::getTotalHits — Get total cache hits

Beschreibung

public APCUIterator::getTotalHits ( ) : int

Gets the total number of cache hits.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of hits on success, or false on failure.

Siehe auch

  • APCUIterator::getTotalCount() - Get total count
  • APCUIterator::getTotalSize() - Get total cache size
  • apcu_cache_info() - Retrieves cached information from APCu's data store


Get total cache size

  • « APCUIterator::getTotalHits
  • APCUIterator::key »
  • PHP Manual
  • APCUIterator
  • Get total cache size

APCUIterator::getTotalSize

(PECL apcu >= 5.0.0)

APCUIterator::getTotalSize — Get total cache size

Beschreibung

public APCUIterator::getTotalSize ( ) : int

Gets the total cache size.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The total cache size.

Siehe auch

  • APCUIterator::getTotalCount() - Get total count
  • APCUIterator::getTotalHits() - Get total cache hits
  • apc_cache_info()


Get iterator key

  • « APCUIterator::getTotalSize
  • APCUIterator::next »
  • PHP Manual
  • APCUIterator
  • Get iterator key

APCUIterator::key

(PECL apcu >= 5.0.0)

APCUIterator::key — Get iterator key

Beschreibung

public APCUIterator::key ( ) : string

Gets the current iterator key.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the key on success, or false upon failure.

Siehe auch

  • APCUIterator::current() - Get current item
  • Iterator::key() - Gibt den Schlüssel des aktuellen Elements zurück


Move pointer to next item

  • « APCUIterator::key
  • APCUIterator::rewind »
  • PHP Manual
  • APCUIterator
  • Move pointer to next item

APCUIterator::next

(PECL apcu >= 5.0.0)

APCUIterator::next — Move pointer to next item

Beschreibung

public APCUIterator::next ( ) : bool

Moves the iterator pointer to the next element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • APCUIterator::current() - Get current item
  • APCUIterator::rewind() - Rewinds iterator
  • Iterator::next() - Rückt den Zeiger auf das nächste Element vor


Rewinds iterator

  • « APCUIterator::next
  • APCUIterator::valid »
  • PHP Manual
  • APCUIterator
  • Rewinds iterator

APCUIterator::rewind

(PECL apcu >= 5.0.0)

APCUIterator::rewind — Rewinds iterator

Beschreibung

public APCUIterator::rewind ( ) : void

Rewinds back the iterator to the first element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • APCUIterator::next() - Move pointer to next item
  • Iterator::next() - Rückt den Zeiger auf das nächste Element vor


Checks if current position is valid

  • « APCUIterator::rewind
  • Componere »
  • PHP Manual
  • APCUIterator
  • Checks if current position is valid

APCUIterator::valid

(PECL apcu >= 5.0.0)

APCUIterator::valid — Checks if current position is valid

Beschreibung

public APCUIterator::valid ( ) : bool

Checks if the current iterator position is valid.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the current iterator position is valid, otherwise false.

Siehe auch

  • APCUIterator::current() - Get current item
  • Iterator::valid() - Prüft, ob die aktuelle Position zulässig ist


Componere

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
  • Componere\Abstract\Definition — The Componere\Abstract\Definition class
    • Componere\Abstract\Definition::addInterface — Add Interface
    • Componere\Abstract\Definition::addMethod — Add Method
    • Componere\Abstract\Definition::addTrait — Add Trait
    • Componere\Abstract\Definition::getReflector — Reflection
  • Componere\Definition — The Componere\Definition class
    • Componere\Definition::__construct — Definition Construction
    • Componere\Definition::addConstant — Add Constant
    • Componere\Definition::addProperty — Add Property
    • Componere\Definition::register — Registration
    • Componere\Definition::isRegistered — State Detection
    • Componere\Definition::getClosure — Get Closure
    • Componere\Definition::getClosures — Get Closures
  • Componere\Patch — The Componere\Patch class
    • Componere\Patch::__construct — Patch Construction
    • Componere\Patch::apply — Application
    • Componere\Patch::revert — Reversal
    • Componere\Patch::isApplied — State Detection
    • Componere\Patch::derive — Patch Derivation
    • Componere\Patch::getClosure — Get Closure
    • Componere\Patch::getClosures — Get Closures
  • Componere\Method — The Componere\Method class
    • Componere\Method::__construct — Method Construction
    • Componere\Method::setPrivate — Accessibility Modification
    • Componere\Method::setProtected — Accessibility Modification
    • Componere\Method::setStatic — Accessibility Modification
    • Componere\Method::getReflector — Reflection
  • Componere\Value — The Componere\Value class
    • Componere\Value::__construct — Value Construction
    • Componere\Value::setPrivate — Accessibility Modification
    • Componere\Value::setProtected — Accessibility Modification
    • Componere\Value::setStatic — Accessibility Modification
    • Componere\Value::isPrivate — Accessibility Detection
    • Componere\Value::isProtected — Accessibility Detection
    • Componere\Value::isStatic — Accessibility Detection
    • Componere\Value::hasDefault — Value Interaction
  • Componere Funktionen
    • Componere\cast — Casting
    • Componere\cast_by_ref — Casting


Einführung

Componere (latin, English: compose) targets production environments and provides an API for composition of classes, monkey patching, and casting.

Composition:

Componere\Definition is used to define (or redefine) a class at runtime; The class can then be registered, and in the case of redefinition it replaces the original class for as long as the Componere\Definition exists.

public Componere\Definition::__construct ( string $name )
public Componere\Definition::__construct ( string $name , string $parent )
public Componere\Definition::__construct ( string $name , array $interfaces )
public Componere\Definition::__construct ( string $name , string $parent , array $interfaces )

Patching:

Componere\Patch is used to change the class of a specific instance of an object at runtime; Upon application the patch will remain applied for as long as the Componere\Patch exists, and can be reverted explicitly.

public Componere\Patch::__construct ( object $instance )
public Componere\Patch::__construct ( object $instance , array $interfaces )

Casting:

Componere\ casting functions can cast among user defined compatible types; Where compatible means Type is sub or super to the type of object.

Componere\cast ( Type $type , $object ) : Type
Componere\cast_by_ref ( Type $type , $object ) : Type


  • « Einführung
  • Anforderungen »
  • PHP Manual
  • Componere
  • Installation/Konfiguration

Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

Reflection is required


  • « Anforderungen
  • Componere\Abstract\Definition »
  • PHP Manual
  • Installation/Konfiguration
  • Installation

Installation

Componere source and releases are available on » github


The Componere\Abstract\Definition class

(Componere 2 >= 2.1.0)

Einführung

This final abstract represents a class entry, and should not be used by the programmer.

Klassenbeschreibung

final abstract Componere\Abstract\Definition {
/* Methoden */
public addInterface ( string $interface ) : Definition
public addMethod ( string $name , Componere\Method $method ) : Definition
public addTrait ( string $trait ) : Definition
public getReflector ( ) : ReflectionClass
}

Inhaltsverzeichnis

  • Componere\Abstract\Definition::addInterface — Add Interface
  • Componere\Abstract\Definition::addMethod — Add Method
  • Componere\Abstract\Definition::addTrait — Add Trait
  • Componere\Abstract\Definition::getReflector — Reflection


Add Interface

  • « Componere\Abstract\Definition
  • Componere\Abstract\Definition::addMethod »
  • PHP Manual
  • Componere\Abstract\Definition
  • Add Interface

Componere\Abstract\Definition::addInterface

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addInterface — Add Interface

Beschreibung

public Componere\Abstract\Definition::addInterface ( string $interface ) : Definition

Shall implement the given interface on the current definition

Parameter-Liste

interface

The case insensitive name of an interface

Rückgabewerte

The current Definition

Exceptions

Warnung

Shall throw RuntimeException if Definition was registered


Add Method

  • « Componere\Abstract\Definition::addInterface
  • Componere\Abstract\Definition::addTrait »
  • PHP Manual
  • Componere\Abstract\Definition
  • Add Method

Componere\Abstract\Definition::addMethod

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addMethod — Add Method

Beschreibung

public Componere\Abstract\Definition::addMethod ( string $name , Componere\Method $method ) : Definition

Shall create or override a method on the current definition.

Parameter-Liste

name

The case insensitive name for method

method

Componere\Method not previously added to another Definition

Rückgabewerte

The current Definition

Exceptions

Warnung

Shall throw RuntimeException if Definition was registered

Warnung

Shall throw RuntimeException if Method was added to another Definition


Add Trait

  • « Componere\Abstract\Definition::addMethod
  • Componere\Abstract\Definition::getReflector »
  • PHP Manual
  • Componere\Abstract\Definition
  • Add Trait

Componere\Abstract\Definition::addTrait

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addTrait — Add Trait

Beschreibung

public Componere\Abstract\Definition::addTrait ( string $trait ) : Definition

Shall use the given trait for the current definition

Parameter-Liste

trait

The case insensitive name of a trait

Rückgabewerte

The current Definition

Exceptions

Warnung

Shall throw RuntimeException if Definition was registered


Reflection

  • « Componere\Abstract\Definition::addTrait
  • Componere\Definition »
  • PHP Manual
  • Componere\Abstract\Definition
  • Reflection

Componere\Abstract\Definition::getReflector

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::getReflector — Reflection

Beschreibung

public Componere\Abstract\Definition::getReflector ( ) : ReflectionClass

Shall create or return a ReflectionClass

Rückgabewerte

A ReflectionClass for the current definition (cached)


The Componere\Definition class

(Componere 2 >= 2.1.0)

Einführung

The Definition class allows the programmer to build and register a type at runtime.

Should a Definition replace an existing class, the existing class will be restored when the Definition is destroyed.

Klassenbeschreibung

final Componere\Definition extends Componere\Abstract\Definition {
/* Constructors */
public __construct ( string $name )
public __construct ( string $name , string $parent )
public __construct ( string $name , array $interfaces )
public __construct ( string $name , string $parent , array $interfaces )
/* Methoden */
public addConstant ( string $name , Componere\Value $value ) : Definition
public addProperty ( string $name , Componere\Value $value ) : Definition
public register ( ) : void
public isRegistered ( ) : bool
public getClosure ( string $name ) : Closure
public getClosures ( ) : array
/* Geerbte Methoden */
public Componere\Abstract\Definition::addInterface ( string $interface ) : Definition
public Componere\Abstract\Definition::addMethod ( string $name , Componere\Method $method ) : Definition
public Componere\Abstract\Definition::addTrait ( string $trait ) : Definition
public Componere\Abstract\Definition::getReflector ( ) : ReflectionClass
}

Inhaltsverzeichnis

  • Componere\Definition::__construct — Definition Construction
  • Componere\Definition::addConstant — Add Constant
  • Componere\Definition::addProperty — Add Property
  • Componere\Definition::register — Registration
  • Componere\Definition::isRegistered — State Detection
  • Componere\Definition::getClosure — Get Closure
  • Componere\Definition::getClosures — Get Closures


Definition Construction

  • « Componere\Definition
  • Componere\Definition::addConstant »
  • PHP Manual
  • Componere\Definition
  • Definition Construction

Componere\Definition::__construct

(Componere 2 >= 2.1.0)

Componere\Definition::__construct — Definition Construction

Beschreibung

public Componere\Definition::__construct ( string $name )
public Componere\Definition::__construct ( string $name , string $parent )
public Componere\Definition::__construct ( string $name , array $interfaces )
public Componere\Definition::__construct ( string $name , string $parent , array $interfaces )

Parameter-Liste

name

A case insensitive class name

parent

A case insensitive class name

interfaces

An array of case insensitive class names

Exceptions

Warnung

Shall throw InvalidArgumentException if an attempt is made to replace an internal class

Warnung

Shall throw InvalidArgumentException if an attempt is made to replace an interface

Warnung

Shall throw InvalidArgumentException if an attempt is made to replace a trait

Warnung

Shall throw RuntimeException if a class in interfaces cannot be found

Warnung

Shall throw RuntimeException if an class in interfaces is not an interface


Add Constant

  • « Componere\Definition::__construct
  • Componere\Definition::addProperty »
  • PHP Manual
  • Componere\Definition
  • Add Constant

Componere\Definition::addConstant

(Componere 2 >= 2.1.0)

Componere\Definition::addConstant — Add Constant

Beschreibung

public Componere\Definition::addConstant ( string $name , Componere\Value $value ) : Definition

Shall declare a class constant on the current Definition

Parameter-Liste

name

The case sensitive name for the constant

value

The Value for the constant, must not be undefined or static

Rückgabewerte

The current Definition

Exceptions

Warnung

Shall throw RuntimeException if Definition was registered

Warnung

Shall throw RuntimeException if name is already declared as a constant

Warnung

Shall throw RuntimeException if value is static

Warnung

Shall throw RuntimeException if value is undefined


Add Property

  • « Componere\Definition::addConstant
  • Componere\Definition::register »
  • PHP Manual
  • Componere\Definition
  • Add Property

Componere\Definition::addProperty

(Componere 2 >= 2.1.0)

Componere\Definition::addProperty — Add Property

Beschreibung

public Componere\Definition::addProperty ( string $name , Componere\Value $value ) : Definition

Shall declare a class property on the current Definition

Parameter-Liste

name

The case sensitive name for the property

value

The default Value for the property

Rückgabewerte

The current Definition

Exceptions

Warnung

Shall throw RuntimeException if Definition was registered

Warnung

Shall throw RuntimeException if name is already declared as a property


Registration

  • « Componere\Definition::addProperty
  • Componere\Definition::isRegistered »
  • PHP Manual
  • Componere\Definition
  • Registration

Componere\Definition::register

(Componere 2 >= 2.1.0)

Componere\Definition::register — Registration

Beschreibung

public Componere\Definition::register ( ) : void

Shall register the current Definition

Exceptions

Warnung

Shall throw RuntimeException if Definition was registered


State Detection

  • « Componere\Definition::register
  • Componere\Definition::getClosure »
  • PHP Manual
  • Componere\Definition
  • State Detection

Componere\Definition::isRegistered

(Componere 2 >= 2.1.0)

Componere\Definition::isRegistered — State Detection

Beschreibung

public Componere\Definition::isRegistered ( ) : bool

Shall detect the registration state of this Definition

Rückgabewerte

Shall return true if this Definition is registered


Get Closure

  • « Componere\Definition::isRegistered
  • Componere\Definition::getClosures »
  • PHP Manual
  • Componere\Definition
  • Get Closure

Componere\Definition::getClosure

(Componere 2 >= 2.1.0)

Componere\Definition::getClosure — Get Closure

Beschreibung

public Componere\Definition::getClosure ( string $name ) : Closure

Shall return a Closure for the method specified by name

Parameter-Liste

name

The case insensitive name of the method

Rückgabewerte

A Closure bound to the correct scope

Exceptions

Warnung

Shall throw RuntimeException if Definition was registered

Warnung

Shall throw RuntimeException if name could not be found


Get Closures

  • « Componere\Definition::getClosure
  • Componere\Patch »
  • PHP Manual
  • Componere\Definition
  • Get Closures

Componere\Definition::getClosures

(Componere 2 >= 2.1.0)

Componere\Definition::getClosures — Get Closures

Beschreibung

public Componere\Definition::getClosures ( ) : array

Shall return an array of Closures

Rückgabewerte

Shall return all methods as an array of Closure objects bound to the correct scope

Exceptions

Warnung

Shall throw RuntimeException if Definition was registered


The Componere\Patch class

(Componere 2 >= 2.1.0)

Einführung

The Patch class allows the programmer to change the type of an instance at runtime without registering a new Definition

When a Patch is destroyed it is reverted, so that instances that were patched during the lifetime of the Patch are restored to their formal type.

Klassenbeschreibung

final Componere\Patch extends Componere\Abstract\Definition {
/* Constructors */
public __construct ( object $instance )
public __construct ( object $instance , array $interfaces )
/* Methoden */
public apply ( ) : void
public revert ( ) : void
public isApplied ( ) : bool
public derive ( object $instance ) : Patch
public getClosure ( string $name ) : Closure
public getClosures ( ) : array
/* Geerbte Methoden */
public Componere\Abstract\Definition::addInterface ( string $interface ) : Definition
public Componere\Abstract\Definition::addMethod ( string $name , Componere\Method $method ) : Definition
public Componere\Abstract\Definition::addTrait ( string $trait ) : Definition
public Componere\Abstract\Definition::getReflector ( ) : ReflectionClass
}

Inhaltsverzeichnis

  • Componere\Patch::__construct — Patch Construction
  • Componere\Patch::apply — Application
  • Componere\Patch::revert — Reversal
  • Componere\Patch::isApplied — State Detection
  • Componere\Patch::derive — Patch Derivation
  • Componere\Patch::getClosure — Get Closure
  • Componere\Patch::getClosures — Get Closures


Patch Construction

  • « Componere\Patch
  • Componere\Patch::apply »
  • PHP Manual
  • Componere\Patch
  • Patch Construction

Componere\Patch::__construct

(Componere 2 >= 2.1.0)

Componere\Patch::__construct — Patch Construction

Beschreibung

public Componere\Patch::__construct ( object $instance )
public Componere\Patch::__construct ( object $instance , array $interfaces )

Parameter-Liste

instance

The target for this Patch

interfaces

A case insensitive array of class names

Exceptions

Warnung

Shall throw RuntimeException if a class in interfaces cannot be found

Warnung

Shall throw RuntimeException if an class in interfaces is not an interface


Application

  • « Componere\Patch::__construct
  • Componere\Patch::revert »
  • PHP Manual
  • Componere\Patch
  • Application

Componere\Patch::apply

(Componere 2 >= 2.1.0)

Componere\Patch::apply — Application

Beschreibung

public Componere\Patch::apply ( ) : void

Shall apply the current patch


Reversal

  • « Componere\Patch::apply
  • Componere\Patch::isApplied »
  • PHP Manual
  • Componere\Patch
  • Reversal

Componere\Patch::revert

(Componere 2 >= 2.1.0)

Componere\Patch::revert — Reversal

Beschreibung

public Componere\Patch::revert ( ) : void

Shall revert the current patch


State Detection

  • « Componere\Patch::revert
  • Componere\Patch::derive »
  • PHP Manual
  • Componere\Patch
  • State Detection

Componere\Patch::isApplied

(Componere 2 >= 2.1.0)

Componere\Patch::isApplied — State Detection

Beschreibung

public Componere\Patch::isApplied ( ) : bool


Patch Derivation

  • « Componere\Patch::isApplied
  • Componere\Patch::getClosure »
  • PHP Manual
  • Componere\Patch
  • Patch Derivation

Componere\Patch::derive

(Componere 2 >= 2.1.1)

Componere\Patch::derive — Patch Derivation

Beschreibung

public Componere\Patch::derive ( object $instance ) : Patch

Shall derive a Patch for the given instance

Parameter-Liste

instance

The target for the derived Patch

Rückgabewerte

Patch for instance derived from the current Patch

Exceptions

Warnung

Shall throw InvalidArgumentException if instance is not compatible


Get Closure

  • « Componere\Patch::derive
  • Componere\Patch::getClosures »
  • PHP Manual
  • Componere\Patch
  • Get Closure

Componere\Patch::getClosure

(Componere 2 >= 2.1.0)

Componere\Patch::getClosure — Get Closure

Beschreibung

public Componere\Patch::getClosure ( string $name ) : Closure

Shall return a Closure for the method specified by name

Parameter-Liste

name

The case insensitive name of the method

Rückgabewerte

A Closure bound to the correct scope and object

Exceptions

Warnung

Shall throw RuntimeException if name could not be found


Get Closures

  • « Componere\Patch::getClosure
  • Componere\Method »
  • PHP Manual
  • Componere\Patch
  • Get Closures

Componere\Patch::getClosures

(Componere 2 >= 2.1.0)

Componere\Patch::getClosures — Get Closures

Beschreibung

public Componere\Patch::getClosures ( ) : array

Shall return an array of Closures

Rückgabewerte

Shall return all methods as an array of Closure objects bound to the correct scope and object


The Componere\Method class

(Componere 2 >= 2.1.0)

Einführung

A Method represents a function with modifiable accessibility flags

Klassenbeschreibung

final Componere\Method {
/* Constructor */
public __construct ( Closure $closure )
/* Methoden */
public setPrivate ( ) : Method
public setProtected ( ) : Method
public setStatic ( ) : Method
public getReflector ( ) : ReflectionMethod
}

Inhaltsverzeichnis

  • Componere\Method::__construct — Method Construction
  • Componere\Method::setPrivate — Accessibility Modification
  • Componere\Method::setProtected — Accessibility Modification
  • Componere\Method::setStatic — Accessibility Modification
  • Componere\Method::getReflector — Reflection


Method Construction

  • « Componere\Method
  • Componere\Method::setPrivate »
  • PHP Manual
  • Componere\Method
  • Method Construction

Componere\Method::__construct

(Componere 2 >= 2.1.0)

Componere\Method::__construct — Method Construction

Beschreibung

public Componere\Method::__construct ( Closure $closure )

Parameter-Liste

closure


Accessibility Modification

  • « Componere\Method::__construct
  • Componere\Method::setProtected »
  • PHP Manual
  • Componere\Method
  • Accessibility Modification

Componere\Method::setPrivate

(Componere 2 >= 2.1.0)

Componere\Method::setPrivate — Accessibility Modification

Beschreibung

public Componere\Method::setPrivate ( ) : Method

Rückgabewerte

The current Method

Exceptions

Warnung

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Method::setPrivate
  • Componere\Method::setStatic »
  • PHP Manual
  • Componere\Method
  • Accessibility Modification

Componere\Method::setProtected

(Componere 2 >= 2.1.0)

Componere\Method::setProtected — Accessibility Modification

Beschreibung

public Componere\Method::setProtected ( ) : Method

Rückgabewerte

The current Method

Exceptions

Warnung

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Method::setProtected
  • Componere\Method::getReflector »
  • PHP Manual
  • Componere\Method
  • Accessibility Modification

Componere\Method::setStatic

(Componere 2 >= 2.1.0)

Componere\Method::setStatic — Accessibility Modification

Beschreibung

public Componere\Method::setStatic ( ) : Method

Rückgabewerte

The current Method


Reflection

  • « Componere\Method::setStatic
  • Componere\Value »
  • PHP Manual
  • Componere\Method
  • Reflection

Componere\Method::getReflector

(Componere 2 >= 2.1.0)

Componere\Method::getReflector — Reflection

Beschreibung

public Componere\Method::getReflector ( ) : ReflectionMethod

Shall create or return a ReflectionMethod

Rückgabewerte

A ReflectionMethod for the current method (cached)


The Componere\Value class

(Componere 2 >= 2.1.0)

Einführung

A Value represents a PHP variable of all types, including undefined

Klassenbeschreibung

final Componere\Value {
/* Constructor */
public __construct ( $default = ? )
/* Methoden */
public setPrivate ( ) : Value
public setProtected ( ) : Value
public setStatic ( ) : Value
public isPrivate ( ) : bool
public isProtected ( ) : bool
public isStatic ( ) : bool
public hasDefault ( ) : bool
}

Inhaltsverzeichnis

  • Componere\Value::__construct — Value Construction
  • Componere\Value::setPrivate — Accessibility Modification
  • Componere\Value::setProtected — Accessibility Modification
  • Componere\Value::setStatic — Accessibility Modification
  • Componere\Value::isPrivate — Accessibility Detection
  • Componere\Value::isProtected — Accessibility Detection
  • Componere\Value::isStatic — Accessibility Detection
  • Componere\Value::hasDefault — Value Interaction


Value Construction

  • « Componere\Value
  • Componere\Value::setPrivate »
  • PHP Manual
  • Componere\Value
  • Value Construction

Componere\Value::__construct

(Componere 2 >= 2.1.0)

Componere\Value::__construct — Value Construction

Beschreibung

public Componere\Value::__construct ( $default = ? )

Parameter-Liste

default

Exceptions

Warnung

Shall throw InvalidArgumentException if default does not have a suitable value


Accessibility Modification

  • « Componere\Value::__construct
  • Componere\Value::setProtected »
  • PHP Manual
  • Componere\Value
  • Accessibility Modification

Componere\Value::setPrivate

(Componere 2 >= 2.1.0)

Componere\Value::setPrivate — Accessibility Modification

Beschreibung

public Componere\Value::setPrivate ( ) : Value

Rückgabewerte

The current Value

Exceptions

Warnung

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Value::setPrivate
  • Componere\Value::setStatic »
  • PHP Manual
  • Componere\Value
  • Accessibility Modification

Componere\Value::setProtected

(Componere 2 >= 2.1.0)

Componere\Value::setProtected — Accessibility Modification

Beschreibung

public Componere\Value::setProtected ( ) : Value

Rückgabewerte

The current Value

Exceptions

Warnung

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Value::setProtected
  • Componere\Value::isPrivate »
  • PHP Manual
  • Componere\Value
  • Accessibility Modification

Componere\Value::setStatic

(Componere 2 >= 2.1.0)

Componere\Value::setStatic — Accessibility Modification

Beschreibung

public Componere\Value::setStatic ( ) : Value

Rückgabewerte

The current Value


Accessibility Detection

  • « Componere\Value::setStatic
  • Componere\Value::isProtected »
  • PHP Manual
  • Componere\Value
  • Accessibility Detection

Componere\Value::isPrivate

(Componere 2 >= 2.1.0)

Componere\Value::isPrivate — Accessibility Detection

Beschreibung

public Componere\Value::isPrivate ( ) : bool


Accessibility Detection

  • « Componere\Value::isPrivate
  • Componere\Value::isStatic »
  • PHP Manual
  • Componere\Value
  • Accessibility Detection

Componere\Value::isProtected

(Componere 2 >= 2.1.0)

Componere\Value::isProtected — Accessibility Detection

Beschreibung

public Componere\Value::isProtected ( ) : bool


Accessibility Detection

  • « Componere\Value::isProtected
  • Componere\Value::hasDefault »
  • PHP Manual
  • Componere\Value
  • Accessibility Detection

Componere\Value::isStatic

(Componere 2 >= 2.1.0)

Componere\Value::isStatic — Accessibility Detection

Beschreibung

public Componere\Value::isStatic ( ) : bool


Value Interaction

  • « Componere\Value::isStatic
  • Componere Funktionen »
  • PHP Manual
  • Componere\Value
  • Value Interaction

Componere\Value::hasDefault

(Componere 2 >= 2.1.0)

Componere\Value::hasDefault — Value Interaction

Beschreibung

public Componere\Value::hasDefault ( ) : bool


  • « Componere\Value::hasDefault
  • Componere\cast »
  • PHP Manual
  • Componere
  • Componere Funktionen

Componere Funktionen

Inhaltsverzeichnis

  • Componere\cast — Casting
  • Componere\cast_by_ref — Casting


Casting

  • « Componere Funktionen
  • Componere\cast_by_ref »
  • PHP Manual
  • Componere Funktionen
  • Casting

Componere\cast

(Componere 2 >= 2.1.2)

Componere\cast — Casting

Beschreibung

Componere\cast ( Type $type , $object ) : Type

Parameter-Liste

type

A user defined type

object

An object with a user defined type compatible with Type

Rückgabewerte

An object of type Type, cast from object

Exceptions

Warnung

Shall throw InvalidArgumentException if the type of object is or is derived from an internal class

Warnung

Shall throw InvalidArgumentException if Type is an interface

Warnung

Shall throw InvalidArgumentException if Type is a trait

Warnung

Shall throw InvalidArgumentException if Type is an abstract

Warnung

Shall throw InvalidArgumentException if Type is not compatible with the type of object

Siehe auch

  • Componere\cast_by_ref


Casting

  • « Componere\cast
  • Fehlerbehandlung »
  • PHP Manual
  • Componere Funktionen
  • Casting

Componere\cast_by_ref

(Componere 2 >= 2.1.2)

Componere\cast_by_ref — Casting

Beschreibung

Componere\cast_by_ref ( Type $type , $object ) : Type

Parameter-Liste

type

A user defined type

object

An object with a user defined type compatible with Type

Rückgabewerte

An object of type Type, cast from object, where members are references to object members

Exceptions

Warnung

Shall throw InvalidArgumentException if the type of object is or is derived from an internal class

Warnung

Shall throw InvalidArgumentException if Type is an interface

Warnung

Shall throw InvalidArgumentException if Type is a trait

Warnung

Shall throw InvalidArgumentException if Type is an abstract

Warnung

Shall throw InvalidArgumentException if Type is not compatible with the type of object

Siehe auch

  • Componere\cast


Fehlerbehandlung und Protokollierung

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Fehlerbehandlungsfunktionen
    • debug_backtrace — Erzeugt Daten zur Ablaufverfolgung
    • debug_print_backtrace — Gibt die Daten für eine Ablaufverfolgung aus
    • error_clear_last — Clear the most recent error
    • error_get_last — Liefert den zuletzt aufgetretenen Fehler
    • error_log — Sendet eine Fehlermeldung an die definierten Fehlerbehandlungsroutinen
    • error_reporting — Gibt an, welche PHP-Fehlermeldungen gemeldet werden
    • restore_error_handler — Rekonstruiert die zuvor benutzte Fehlerbehandlungsfunktion
    • restore_exception_handler — Stellt den vorherigen Exceptionhandler wieder her
    • set_error_handler — Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung
    • set_exception_handler — Installiert einen benutzerdefinierten Exceptionhandler
    • trigger_error — Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung
    • user_error — Alias von trigger_error


Einführung

Diese Funktionen beschäftigen sich mit Fehlerbehandlung und -protokollierung. Sie ermöglichen es Ihnen, sowohl Ihre eigenen Fehlerbehandlungsregeln aufzustellen als auch die Art, wie Fehler protokolliert werden, zu ändern. Dies gestattet es Ihnen, die Fehlerbehandlung nach Ihren Bedürfnissen zu ändern und zu erweitern.

Die Protokollierungsfunktionen ermöglichen es Ihnen, Fehlermeldungen direkt an andere Maschinen, als Email, in Systemprotokolle usw. zu senden. Sie können so selektiv die wichtigsten Teile Ihrer Applikationen und Websites beobachten und protokollieren.

Die Fehlermeldungsfunktionen gestatten es Ihnen, die Art und das Ausmaß der erzeugten Fehlermeldungen von einfachen Hinweisen bis zu speziell angepassten Funktionsaufrufen beim Auftreten eines Fehlers nach Ihren Bedürfnissen anzupassen.


Installation

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Errors and Logging Configuration Options
Name | Standard | Veränderbar | Changelog
error_reporting | NULL | PHP_INI_ALL |
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL |
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL |
ignore_repeated_errors | "0" | PHP_INI_ALL |
ignore_repeated_source | "0" | PHP_INI_ALL |
report_memleaks | "1" | PHP_INI_ALL |
track_errors | "0" | PHP_INI_ALL | Deprecated as of PHP 7.2.0.
html_errors | "1" | PHP_INI_ALL |
xmlrpc_errors | "0" | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | PHP_INI_ALL |
docref_root | "" | PHP_INI_ALL |
docref_ext | "" | PHP_INI_ALL |
error_prepend_string | NULL | PHP_INI_ALL |
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
syslog.facility | "LOG_USER" | PHP_INI_SYSTEM | Available as of PHP 7.3.0.
syslog.filter | "no-ctrl" | PHP_INI_ALL | Available as of PHP 7.3.0.
syslog.ident | "php" | PHP_INI_SYSTEM | Available as of PHP 7.3.0.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

error_reporting int

Set the error reporting level. The parameter is either an integer representing a bit field, or named constants. The error_reporting levels and constants are described in Predefined Constants, and in php.ini. To set at runtime, use the error_reporting() function. See also the display_errors directive.

PHP 5.3 or later, the default value is E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED. This setting does not show E_NOTICE, E_STRICT and E_DEPRECATED level errors. You may want to show them during development. Prior to PHP 5.3.0, the default value is E_ALL & ~E_NOTICE & ~E_STRICT.

Hinweis:

Enabling E_NOTICE during development has some benefits. For debugging purposes: NOTICE messages will warn you about possible bugs in your code. For example, use of unassigned values is warned. It is extremely useful to find typos and to save time for debugging. NOTICE messages will warn you about bad style. For example, $arr[item] is better to be written as $arr['item'] since PHP tries to treat "item" as constant. If it is not a constant, PHP assumes it is a string index for the array.

Hinweis:

Prior to PHP 5.4.0 E_STRICT was not included within E_ALL, so you would have to explicitly enable this kind of error level in PHP < 5.4.0. Enabling E_STRICT during development has some benefits. STRICT messages provide suggestions that can help ensure the best interoperability and forward compatibility of your code. These messages may include things such as calling non-static methods statically, defining properties in a compatible class definition while defined in a used trait, and prior to PHP 5.3 some deprecated features would issue E_STRICT errors such as assigning objects by reference upon instantiation.

Hinweis: PHP Constants outside of PHP

Using PHP Constants outside of PHP, like in httpd.conf, will have no useful meaning so in such cases the int values are required. And since error levels will be added over time, the maximum value (for E_ALL) will likely change. So in place of E_ALL consider using a larger value to cover all bit fields from now and well into the future, a numeric value like 2147483647 (includes all errors, not just E_ALL).

display_errors string

This determines whether errors should be printed to the screen as part of the output or if they should be hidden from the user.

Value "stderr" sends the errors to stderr instead of stdout. The value is available as of PHP 5.2.4. In earlier versions, this directive was of type bool.

Hinweis:

This is a feature to support your development and should never be used on production systems (e.g. systems connected to the internet).

Hinweis:

Although display_errors may be set at runtime (with ini_set()), it won't have any effect if the script has fatal errors. This is because the desired runtime action does not get executed.

display_startup_errors bool

Even when display_errors is on, errors that occur during PHP's startup sequence are not displayed. It's strongly recommended to keep display_startup_errors off, except for debugging.

log_errors bool

Tells whether script error messages should be logged to the server's error log or error_log. This option is thus server-specific.

Hinweis:

You're strongly advised to use error logging in place of error displaying on production web sites.

log_errors_max_len int

Set the maximum length of log_errors in bytes. In error_log information about the source is added. The default is 1024 and 0 allows to not apply any maximum length at all. This length is applied to logged errors, displayed errors and also to $php_errormsg, but not to explicitly called functions such as error_log().

Wird ein int-Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben.
ignore_repeated_errors bool

Do not log repeated messages. Repeated errors must occur in the same file on the same line unless ignore_repeated_source is set true.

ignore_repeated_source bool

Ignore source of message when ignoring repeated messages. When this setting is On you will not log errors with repeated messages from different files or sourcelines.

report_memleaks bool

If this parameter is set to On (the default), this parameter will show a report of memory leaks detected by the Zend memory manager. This report will be sent to stderr on Posix platforms. On Windows, it will be sent to the debugger using OutputDebugString() and can be viewed with tools like » DbgView. This parameter only has effect in a debug build and if error_reporting includes E_WARNING in the allowed list.

track_errors bool

If enabled, the last error message will always be present in the variable $php_errormsg.

html_errors bool

If enabled, error messages will include HTML tags. The format for HTML errors produces clickable messages that direct the user to a page describing the error or function in causing the error. These references are affected by docref_root and docref_ext.

If disabled, error message will be solely plain text.

xmlrpc_errors bool

If enabled, turns off normal error reporting and formats errors as XML-RPC error message.

xmlrpc_error_number int

Used as the value of the XML-RPC faultCode element.

docref_root string

The new error format contains a reference to a page describing the error or function causing the error. In case of manual pages you can download the manual in your language and set this ini directive to the URL of your local copy. If your local copy of the manual can be reached by "/manual/" you can simply use docref_root=/manual/. Additional you have to set docref_ext to match the fileextensions of your copy docref_ext=.html. It is possible to use external references. For example you can use docref_root=http://manual/en/ or docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"

Most of the time you want the docref_root value to end with a slash "/". But see the second example above which does not have nor need it.

Hinweis:

This is a feature to support your development since it makes it easy to lookup a function description. However it should never be used on production systems (e.g. systems connected to the internet).

docref_ext string

See docref_root.

Hinweis:

The value of docref_ext must begin with a dot ".".

error_prepend_string string

String to output before an error message.

error_append_string string

String to output after an error message.

error_log string

Name of the file where script errors should be logged. The file should be writable by the web server's user. If the special value syslog is used, the errors are sent to the system logger instead. On Unix, this means syslog(3) and on Windows it means the event log. See also: syslog(). If this directive is not set, errors are sent to the SAPI error logger. For example, it is an error log in Apache or stderr in CLI. See also error_log().

syslog.facility string

Specifies what type of program is logging the message. Only effective if error_log is set to "syslog".

syslog.filter string

Specifies the filter type to filter the logged messages. Allowed characters are passed unmodified; all others are written in their hexadecimal representation prefixed with \x. There are three supported filter types:

  • all – all characters
  • no-ctrl – all characters except control characters
  • ascii – all printable ASCII characters and NL
Only effective if error_log is set to "syslog".

syslog.ident string

Specifies the ident string which is prepended to every message. Only effective if error_log is set to "syslog".


Vordefinierte Konstanten

Die aufgelisteten Konstanten stehen immer zur Verfügung, da sie zum Grundbestand von PHP gehören.

Hinweis: Sie können diese Konstanten innerhalb von php.ini benutzen, aber nicht ausserhalb von PHP, wie etwa in der httpd.conf, wo Sie stattdessen die Werte der Bitmasken benutzen sollten.

Fehler und Meldungen
Wert | Konstante | Beschreibung | Bemerkung
1 | E_ERROR (integer) | Fatale Laufzeit-Fehler. Dies zeigt Fehler an, die nicht behoben werden können. Beispielsweise Probleme bei der Speicherzuweisung. Die Ausführung des Skripts wird abgebrochen. |
2 | E_WARNING (integer) | Warnungen (keine fatalen Fehler) zur Laufzeit des Skripts. Das Skript wird nicht abgebrochen. |
4 | E_PARSE (integer) | Parser-Fehler während der Übersetzung. Parser-Fehler können nur vom Parser erzeugt werden. |
8 | E_NOTICE (integer) | Benachrichtigungen während der Laufzeit. Sie zeigen an, dass im Skript irgend etwas gefunden wurde, was einen Fehler verursachen könnte. Es ist aber genauso möglich, dass Benachrichtigungen im ordnungsgemäßen Ablauf eines Skripts ausgegeben werden. |
16 | E_CORE_ERROR (integer) | Fatale Fehler, die beim Starten von PHP auftreten. Diese sind ähnlich wie E_ERROR, nur dass diese Fehlermeldungen vom PHP-Kern erzeugt werden. |
32 | E_CORE_WARNING (integer) | Warnungen (keine fatalen Fehler), die beim Starten von PHP auftreten. Diese sind ähnlich wie E_WARNING, nur dass diese Warnungen vom PHP-Kern erzeugt werden. |
64 | E_COMPILE_ERROR (integer) | Fatale Fehler zur Übersetzungszeit. Diese sind ähnlich wie E_ERROR, nur dass diese Fehlermeldungen von der Zend Scripting Engine erzeugt werden. |
128 | E_COMPILE_WARNING (integer) | Warnungen zur Übersetzungszeit. Diese sind ähnlich wie E_WARNING, nur dass diese Warnungen von der Zend Scripting Engine erzeugt werden. |
256 | E_USER_ERROR (integer) | Benutzerdefinierte Fehlermeldungen. Diese sind ähnlich wie E_ERROR, nur dass diese Fehlermeldungen im PHP-Code mit trigger_error() erzeugt werden. |
512 | E_USER_WARNING (integer) | Benutzerdefinierte Warnungen. Diese sind ähnlich wie E_WARNING, nur dass diese Warnungen im PHP-Code mit trigger_error() erzeugt werden. |
1024 | E_USER_NOTICE (integer) | Benutzerdefinierte Benachrichtigung. Diese sind ähnlich wie E_NOTICE, nur dass diese Benachrichtigungen im PHP-Code mit trigger_error() erzeugt werden. |
2048 | E_STRICT (integer) | Benachrichtigungen des Laufzeitsystems. Damit erhalten Sie von PHP Vorschläge für Änderungen des Programmcodes, die eine bestmögliche Interoperabilität und zukünftige Kompatibilität Ihres Codes gewährleisten. | Vor PHP 5.4.0 nicht in E_ALL enthalten
4096 | E_RECOVERABLE_ERROR (integer) | Abfangbarer fataler Fehler. Dies bedeutet das ein potentiell gefährlicher Fehler aufgetreten ist, die Engine aber nicht in einem instabilen Zustand hinterlassen hat. Wird der Fehler nicht durch eine benutzerdefinierte Fehlerbehandlungsroutine abgefangen (siehe auch set_error_handler()) so wird die Anwendung wie bei einem E_ERROR Fehler abgebrochen. | Von PHP 5.2.0 an
8192 | E_DEPRECATED (integer) | Notices zur Laufzeit des Programms. Aktivieren Sie diese Einstellung, um Warnungen über Codebestandteile zu erhalten, die in zukünftigen PHP-Versionen nicht mehr funktionieren werden. | Von PHP 5.3.0 an
16384 | E_USER_DEPRECATED (integer) | Benutzererzeugte Warnmeldung. Diese entspricht E_DEPRECATED mit der Ausnahme, dass sie im PHP-Code durch die Verwendung der Funktion trigger_error() generiert wurde. | Von PHP 5.3.0 an
32767 | E_ALL (integer) | Alle Fehler und Warnungen die unterstützt werden, mit Ausnahme von E_STRICT vor PHP 5.4.0. | 32767 in PHP 5.4.x, 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously

Mit den obengennnten Werten (sowohl numerisch als auch mit den Konstanten) wird eine Bitmaske erzeugt, die festlegt, welche Fehler angezeigt werden sollen. Mit den Bit Operatoren können Sie diese Werte kombinieren oder bestimmte Fehlertypen ausmaskieren. Beachten Sie, dass innerhalb von php.ini jedoch nur '|', '~', '!', '^' und '&' verstanden wird.


Beispiele

Unten können wir ein Beispiel dafür sehen, wie die Fehlercode-Funktionen in PHP benutzt werden. Wir definieren eine Fehlerfunktion, die die Information unter Verwendung des XML-Formates in einer Datei speichert und diese per E-Mail dem Entwickler sendet, wenn ein schwerer Fehler in der Programmlogik auftritt.

Beispiel #1 Fehlerbehandlung in einem Script

<?php
// Wir werden unsere Fehler selbst behandeln
error_reporting(0);

// Benutzerdefinierte Fehlerfunktion
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
    // Zeitstempel für den Fehlereintrag
    $dt = date("Y-m-d H:i:s (T)");

    // Definiert ein assoziatives Array für den Fehler
    // Tatsächlich sollten wir nur
    // E_WARNING, E_NOTICE, E_USER_ERROR,
    // E_USER_WARNING und E_USER_NOTICE beachten.
    $errortype = array (
                E_ERROR              => 'Fehler',
                E_WARNING            => 'Warnung',
                E_PARSE              => 'Parser-Fehler',
                E_NOTICE             => 'Hinweis',
                E_CORE_ERROR         => 'Kern-Fehler',
                E_CORE_WARNING       => 'Kern-Warnung',
                E_COMPILE_ERROR      => 'Kompilierungsfehler',
                E_COMPILE_WARNING    => 'Kompilierungswarnung',
                E_USER_ERROR         => 'Benutzerfehler',
                E_USER_WARNING       => 'Benutzerwarnung',
                E_USER_NOTICE        => 'Benutzerhinweis',
                E_STRICT             => 'Laufzeitwarnung',
                E_RECOVERABLE_ERROR  => 'Abfangbarer fataler Fehler'
                );
    // Satz von Fehlern für welche ein Eintrag gespeichert wird.
    $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);

    $err = "<errorentry>\n";
    $err .= "\t<datetime>" . $dt . "</datetime>\n";
    $err .= "\t<errornum>" . $errno . "</errornum>\n";
    $err .= "\t<errortype>" . $errortype[$errno] . "</errortype>\n";
    $err .= "\t<errormsg>" . $errmsg . "</errormsg>\n";
    $err .= "\t<scriptname>" . $filename . "</scriptname>\n";
    $err .= "\t<scriptlinenum>" . $linenum . "</scriptlinenum>\n";

    if (in_array($errno, $user_errors)) {
        $err .= "\t<vartrace>" . wddx_serialize_value($vars, "Variablen") . "</vartrace>\n";
    }
    $err .= "</errorentry>\n\n";

    // Zum Test:
    // echo $err;

    // Speicher den Fehler im Log und schicke mir eine E-Mail falls es ein kritischer Benutzerfehler ist.
    error_log($err, 3, "/usr/local/php4/error.log");
    if ($errno == E_USER_ERROR) {
        mail("phpdev@example.com", "Critical User Error", $err);
    }
}

function distance($vect1, $vect2)
{
    if (!is_array($vect1) || !is_array($vect2)) {
        trigger_error("Falsche Parameter, Arrays erwartet", E_USER_ERROR);
        return NULL;
    }

    if (count($vect1) != count($vect2)) {
        trigger_error("Die Vektoren müssen die selbe Dimension besitzen.", E_USER_ERROR);
        return NULL;
    }

    for ($i=0; $i<count($vect1); $i++) {
        $c1 = $vect1[$i]; $c2 = $vect2[$i];
        $d = 0.0;
        if (!is_numeric($c1)) {
            trigger_error("Koordinate $i im Vektor 1 ist keine Nummer, verwende stattdessen Null.",
                            E_USER_WARNING);
            $c1 = 0.0;
        }
        if (!is_numeric($c2)) {
            trigger_error("Koordinate $i im Vektor 2 ist keine Nummer, verwende stattdessen Null",
                            E_USER_WARNING);
            $c2 = 0.0;
        }
        $d += $c2*$c2 - $c1*$c1;
    }
    return sqrt($d);
}

$old_error_handler = set_error_handler("userErrorHandler");

//Undefinierte Konstante, generiert eine Warnung
$t = I_AM_NOT_DEFINED;

// Definiere einige "Vektoren"
$a = array(2, 3, "foo");
$b = array(5.5, 4.3, -1.6);
$c = array(1, -3);

// Benutzerfehler erzeugen
$t1 = distance($c, $b) . "\n";

// Einen weiteren Benutzerfehler erzeugen
$t2 = distance($b, "i am not an array") . "\n";

// Eine Warnung erzeugen
$t3 = distance($a, $b) . "\n";

?>


Fehlerbehandlungsfunktionen

Siehe auch

Siehe auch syslog().

Inhaltsverzeichnis

  • debug_backtrace — Erzeugt Daten zur Ablaufverfolgung
  • debug_print_backtrace — Gibt die Daten für eine Ablaufverfolgung aus
  • error_clear_last — Clear the most recent error
  • error_get_last — Liefert den zuletzt aufgetretenen Fehler
  • error_log — Sendet eine Fehlermeldung an die definierten Fehlerbehandlungsroutinen
  • error_reporting — Gibt an, welche PHP-Fehlermeldungen gemeldet werden
  • restore_error_handler — Rekonstruiert die zuvor benutzte Fehlerbehandlungsfunktion
  • restore_exception_handler — Stellt den vorherigen Exceptionhandler wieder her
  • set_error_handler — Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung
  • set_exception_handler — Installiert einen benutzerdefinierten Exceptionhandler
  • trigger_error — Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung
  • user_error — Alias von trigger_error


Erzeugt Daten zur Ablaufverfolgung

  • « Fehlerbehandlungsfunktionen
  • debug_print_backtrace »
  • PHP Manual
  • Fehlerbehandlungsfunktionen
  • Erzeugt Daten zur Ablaufverfolgung

debug_backtrace

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

debug_backtrace — Erzeugt Daten zur Ablaufverfolgung

Beschreibung

debug_backtrace ( int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT , int $limit = 0 ) : array

debug_backtrace() erzeugt Daten zur Ablaufverfolgung.

Parameter-Liste

options

Ab 5.3.6 ist akzeptiert dieser Parameter eine Bitmaske mit den folgenden Optionen:

debug_backtrace() Optionen
DEBUG_BACKTRACE_PROVIDE_OBJECT | Ob der "object" Index befüllt werden soll.
DEBUG_BACKTRACE_IGNORE_ARGS | Ob der "args" Index, welcher alle Funktions- oder Methodenargumente enthält, ausgelassen werden soll um Arbeitsspeicher zu sparen.
Vor PHP 5.3.6 waren die einzigen möglichen Werte true und false, welche dem Setzen oder nicht Setzen von DEBUG_BACKTRACE_PROVIDE_OBJECT entsprachen.

limit

Ab PHP 5.4.0 kann dieser Parameter benutzt werden, um die Anzahl an zurückgegebenen Stack Frames zu limitieren. Standardmäßig (limit=0) werden alle Stack Frames zurückgegeben.

Rückgabewerte

Gibt ein assoziatives Array zurück. Als zurückgegebene Arrayelemente von debug_backtrace() sind möglich:

Mögliche Rückgabewerte von debug_backtrace()
Name | Typ | Beschreibung
function | string | Der Name der aktuell ausgeführten Funktion. Siehe auch __FUNCTION__.
line | integer | Die aktuelle Zeilennummer. Siehe auch __LINE__.
file | string | Der aktuelle Dateiname. Siehe auch __FILE__.
class | string | Der aktuelle class - Name. Siehe auch __CLASS__.
object | object | Das aktuelle Objekt.
type | string | Der aktuelle Typ des Aufrufs. Falls der Aufruf in einer Methode erfolgte, wird "->" zurückgegeben. Falls der Aufruf aus einer statischen Funktion erfolgte, wird "::" zurückgegeben und falls der Aufruf aus einer Funktion erfolgte, wird nichts zurückgegeben.
args | array | Falls der Aufruf aus einer Funktion erfolgte, werden hier die Funktionsargumente aufgelistet. Falls der Aufruf aus einer eingebundenen Datei erfolgte, werden die Namen der Include-Dateien angegeben.

Changelog

Version | Beschreibung
5.4.0 | Der Parameter limit wurde hinzugefügt.
5.3.6 | Der Parameter provide_object wurde durch options ersetzt und DEBUG_BACKTRACE_IGNORE_ARGS wurde als zusätzliche Option hinzugefügt.
5.2.5 | Der optionale Parameter provide_object wurde hinzugefügt.
5.1.1 | Aktuelles object als möglichen Rückgabewert hinzugefügt.

Beispiele

Beispiel #1 debug_backtrace()-Beispiel

<?php
// Dateiname: /tmp/a.php

function a_test($str)
{
    echo "\nHi: $str";
    var_dump(debug_backtrace());
}

a_test('friend');
?>

<?php
// Dateiname: /tmp/b.php
include_once '/tmp/a.php';
?>

Ergebnisse beim Aufruf von /tmp/b.php:

Hi: friend
array(2) {
  [0]=>
  array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
  }
  [1]=>
  array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}

Siehe auch

  • trigger_error() - Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung
  • debug_print_backtrace() - Gibt die Daten für eine Ablaufverfolgung aus


Gibt die Daten für eine Ablaufverfolgung aus

  • « debug_backtrace
  • error_clear_last »
  • PHP Manual
  • Fehlerbehandlungsfunktionen
  • Gibt die Daten für eine Ablaufverfolgung aus

debug_print_backtrace

(PHP 5, PHP 7, PHP 8)

debug_print_backtrace — Gibt die Daten für eine Ablaufverfolgung aus

Beschreibung

debug_print_backtrace ( int $options = 0 , int $limit = 0 ) : void

debug_print_backtrace() gibt eine PHP Ablaufverfolgung aus. Diese enthält Ausgaben zu allen Funktionsaufrufen, mit include oder require eingebundenen Dateien und mit eval() ausgeführtem Code.

Parameter-Liste

options

Beginnend mit PHP 5.3.6 kann über diesen Parameter eine Bitmaske mit folgenden möglichen Optionen übergeben werden:

debug_print_backtrace() Optionen
DEBUG_BACKTRACE_IGNORE_ARGS Gibt an ob der "args" Index aller Funktions- und Methoden- Argumente weggelassen werden soll (um z.B. Speicher zu sparen).

limit

Beginnend mit PHP 5.4.0 kann hiermit die Anzahl der auszugebenden Aufrufebenen begrenzt werden. Der Vorgabewert (limit=0) führt zur Ausgabe aller Aufrufe.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
5.4.0 | Der optionale Parameter limit wurde hinzugefügt.
5.3.6 | Der optionale Parameter options wurde hinzugefügt.

Beispiele

Beispiel #1 debug_print_backtrace() Beispiel

<?php
// include.php Datei

function a() {
    b();
}

function b() {
    c();
}

function c(){
    debug_print_backtrace();
}

a();

?>
<?php
// test.php Datei
// Dies ist die Datei die Sie ausführen sollten

include 'include.php';
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

#0  eval() called at [/tmp/include.php:5]
#1  a() called at [/tmp/include.php:17]
#2  include(/tmp/include.php) called at [/tmp/test.php:3]

#0  c() called at [/tmp/include.php:10]
#1  b() called at [/tmp/include.php:6]
#2  a() called at [/tmp/include.php:17]
#3  include(/tmp/include.php) called at [/tmp/test.php:3]

Siehe auch

  • debug_backtrace() - Erzeugt Daten zur Ablaufverfolgung


Clear the most recent error

  • « debug_print_backtrace
  • error_get_last »
  • PHP Manual
  • Fehlerbehandlungsfunktionen
  • Clear the most recent error

error_clear_last

(PHP 7, PHP 8)

error_clear_last — Clear the most recent error

Beschreibung

error_clear_last ( ) : void

Rückgabewerte

Clears the most recent errors, making it unable to be retrieved with error_get_last().

Beispiele

Beispiel #1 An error_clear_last() example

<?php
var_dump(error_get_last());
error_clear_last();
var_dump(error_get_last());

@$a = $b;

var_dump(error_get_last());
error_clear_last();
var_dump(error_get_last());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

NULL
NULL
array(4) {
  ["type"]=>
  int(8)
  ["message"]=>
  string(21) "Undefined variable: b"
  ["file"]=>
  string(9) "%s"
  ["line"]=>
  int(6)
}
NULL

Siehe auch

  • Error constants


Liefert den zuletzt aufgetretenen Fehler

  • « error_clear_last
  • error_log »
  • PHP Manual
  • Fehlerbehandlungsfunktionen
  • Liefert den zuletzt aufgetretenen Fehler

error_get_last

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

error_get_last — Liefert den zuletzt aufgetretenen Fehler

Beschreibung

error_get_last ( ) : array

Liefert Informationen über den zuletzt aufgetretenen Fehler

Rückgabewerte

Gibt ein assoziatives Array zurück das den zuletzt aufgetretenen Fehler mit den Elementen "type" (für die Art des Fehlers), "message" (für die Fehlermeldung) sowie "file" und "line" (für den Ort an dem der Fehler aufgetreten ist) beschreibt. Wenn bisher noch kein Fehler aufgetreten ist, wird null zurückgegeben.

Beispiele

Beispiel #1 error_get_last()-Beispiel

<?php
echo $a;
print_r(error_get_last());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [type] => 8
    [message] => Undefined variable: a
    [file] => C:\WWW\index.php
    [line] => 2
)

Siehe auch

  • Fehlerkonstanten
  • Variable $php_errormsg
  • error_clear_last() - Clear the most recent error
  • Diedisplay_errors Direktive
  • Directive html_errors
  • Directive xmlrpc_errors


Sendet eine Fehlermeldung an die definierten Fehlerbehandlungsroutinen

  • « error_get_last
  • error_reporting »
  • PHP Manual
  • Fehlerbehandlungsfunktionen
  • Sendet eine Fehlermeldung an die definierten Fehlerbehandlungsroutinen

error_log

(PHP 4, PHP 5, PHP 7, PHP 8)

error_log — Sendet eine Fehlermeldung an die definierten Fehlerbehandlungsroutinen

Beschreibung

error_log ( string $message , int $message_type = 0 , string $destination = ? , string $extra_headers = ? ) : bool

Sendet eine Fehlermeldung an das Fehlerprotokoll (Errorlog) des Webservers, oder an eine Datei.

Parameter-Liste

message

Die Fehlermeldung, die protokolliert werden soll.

message_type

Sagt, wohin der Fehler gehen soll. Folgende Meldungstypen sind möglich:

error_log()-Protokolltypen
0 | message wird an das Log-Subsystem von PHP gesendet, das abhängig von der Einstellung in der Konfigurationsdirektive error_log das Errorlogging des Betriebssystems verwendet oder in eine Datei schreibt. Dies ist die Standardeinstellung.
1 | message wird via E-Mail an die Adresse gesendet, die im Parameter destination angegeben wurde. Dies ist der einzige Meldungstyp, bei dem der vierte Parameter extra_headers verwendet wird.
2 | Diese Option ist nicht mehr verfügbar.
3 | message wird an die Datei destination angefügt. Ein Zeilenumbruch wird nicht automatisch an das Ende des message-Strings angehängt.
4 | message wird direkt zum SAPI-Logging-Handler gesendet.

destination

Das Ziel. Die jeweilige Bedeutung hängt wie oben beschrieben vom Parameter message_type ab.

extra_headers

Die zusätzlichen Kopfzeilen. Dieser Parameter wird verwendet, wenn der Parameter message_type auf 1 gesetzt ist. Dieser Meldungstyp verwendet dieselbe interne Funktion wie mail().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Warnung

error_log() ist nicht binär-sicher. message wird durch Null-Zeichen abgeschnitten.

Tipp

message sollte keine Null-Zeichen enthalten. Es ist zu beachten, dass message an eine Datei, das Syslog, per Mail usw. gesendet werden kann. Geeignete Konvertierungs/Maskierungs-Funktionen, base64_encode(), rawurlencode() oder addslashes(), sind anzuwenden bevor error_log() aufgerufen wird.

Beispiele

Beispiel #1 error_log()-Beispiele

<?php
// Sende eine Nachricht an das Serverlog, falls
// keine Verbindung zur Datenbank herstellbar ist.
if (!Ora_Logon($benutzername, $passwort)) {
    error_log("Die Oracle-Datenbank ist nicht erreichbar!", 0);
}

// Benachrichtige den Administrator per E-Mail, falls kein FOO mehr verfügbar ist.
if (!($foo = allocate_new_foo())) {
    error_log("Wir haben ein Problem: FOO ist alle!", 1,
               "operator@example.com");
}

// Eine weitere Möglichkeit, error_log() aufzurufen:
error_log("Du hast Mist gebaut!", 3, "/var/tmp/meine-fehler.log");
?>

Changelog

Version | Beschreibung
5.2.7 | Der mögliche Wert 4 wurde zu message_type hinzugefügt.


Gibt an, welche PHP-Fehlermeldungen gemeldet werden

  • « error_log
  • restore_error_handler »
  • PHP Manual
  • Fehlerbehandlungsfunktionen
  • Gibt an, welche PHP-Fehlermeldungen gemeldet werden

error_reporting

(PHP 4, PHP 5, PHP 7, PHP 8)

error_reporting — Gibt an, welche PHP-Fehlermeldungen gemeldet werden

Beschreibung

error_reporting ( int $level = ? ) : int

Mit error_reporting() wird die error_reporting Direktive zur Laufzeit des Programms gesetzt. In PHP gibt es viele Stufen für die Anzeige von Fehlermeldungen, die mit dieser Funktion für die Dauer der Programmausführung eingestellt werden kann. Wenn das optionale level Argument nicht übergeben wird, gibt error_reporting() das aktuelle Error Level zurück.

Parameter-Liste

level

Das neue error_reporting Level. Es können sowohl eine numerische Bitmaske als auch benannte Konstanten übergeben werden. Der Einsatz benannter Konstanten wird empfohlen um die Kompatibilität mit zukünftigen Versionen sicherzustellen. Wann immer Error Level Konstanten hinzugefügt werden erweitert sich der genutzte Integerbereich so das ältere Integerkonstanten nicht unbedingt weiter das erwartete Verhalten zeigen.

Die verfügbaren Konstanten und die Bedeutungen der jeweiligen Error Level sind im Abschnitt Vordefinierte Konstanten beschrieben.

Rückgabewerte

Gibt den bisherigen error_reporting Wert zurück oder das aktuelle Level, wenn level nicht übergeben wurde.

Changelog

Version | Beschreibung
5.4.0 | E_STRICT ist nun in E_ALL enthalten.
5.3.0 | E_DEPRECATED und E_USER_DEPRECATED wurden hinzugefügt.
5.2.0 | E_RECOVERABLE_ERROR wurde hinzugefügt.

Beispiele

Beispiel #1 error_reporting() Beispiel

<?php

// Error Reporting komplett abschalten
error_reporting(0);

// Nur einfache Fehler melden
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// E_NOTICE ist sinnvoll um uninitialisierte oder
// falsch geschriebene Variablen zu entdecken
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Melde alle Fehler außer E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Melde alle PHP Fehler (siehe Changelog)
error_reporting(E_ALL);

// Melde alle PHP Fehler
error_reporting(-1);

// Dies entspricht error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Anmerkungen

Warnung

Der Großteil der E_STRICT Fehler werden zur Compile-Zeit generiert und werden somit nicht angezeigt, wenn E_STRICT zur Laufzeit zu error_reporting hinzugefügt wird (und auch andersrum).

Tipp

Durch Übergeben des Wertes -1 werden alle möglichen Fehler angezeigt, auch wenn neue Level in zukünftigen PHP-Versionen hinzugefügt werden. Die E_ALL Konstante verhält sich seit PHP 5.4 ebenfalls so.

Siehe auch

  • Die display_errors Direktive
  • Die html_errors Direktive
  • Die xmlrpc_errors Direktive
  • ini_set() - Sets the value of a configuration option


Rekonstruiert die zuvor benutzte Fehlerbehandlungsfunktion

  • « error_reporting
  • restore_exception_handler »
  • PHP Manual
  • Fehlerbehandlungsfunktionen
  • Rekonstruiert die zuvor benutzte Fehlerbehandlungsfunktion

restore_error_handler

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

restore_error_handler — Rekonstruiert die zuvor benutzte Fehlerbehandlungsfunktion

Beschreibung

restore_error_handler ( ) : bool

Diese Funktion wird benutzt, um eine mit set_error_handler() gesetzte Fehlerbehandlungsfunktion wieder zurückzusetzen und zur zuvor benutzten Fehlerbehandlung zurückzukehren. (Dies kann entweder eine eingebaute oder eine benutzerdefinierte Funktion sein.)

Rückgabewerte

Diese Funktion gibt immer true zurück.

Beispiele

Beispiel #1 restore_error_handler() Beispiel

Prüft ob unserialize() einen Fehler verursacht, danach wird der ursprüngliche Error-Handler wiederhergestellt.

<?php
function unserialize_handler($errno, $errstr)
{
    echo "Ungültiger serialisierter Wert.\n";
}

$serialized = 'foo';
set_error_handler('unserialize_handler');
$original = unserialize($serialized);
restore_error_handler();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ungültiger serialisierter Wert.

Siehe auch

  • error_reporting() - Gibt an, welche PHP-Fehlermeldungen gemeldet werden
  • set_error_handler() - Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung
  • restore_exception_handler() - Stellt den vorherigen Exceptionhandler wieder her
  • trigger_error() - Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung


Stellt den vorherigen Exceptionhandler wieder her

  • « restore_error_handler
  • set_error_handler »
  • PHP Manual
  • Fehlerbehandlungsfunktionen
  • Stellt den vorherigen Exceptionhandler wieder her

restore_exception_handler

(PHP 5, PHP 7, PHP 8)

restore_exception_handler — Stellt den vorherigen Exceptionhandler wieder her

Beschreibung

restore_exception_handler ( ) : bool

Diese Funktion kann genutzt werdem um die Installation eines Exceptionhandlers mit set_exception_handler() rückgängig zu machen und den vorherigen Handler wieder in Kraft zu setzen (entweder den eingebauten oder eine andere benutzerdefinierte Funktion).

Rückgabewerte

Diese Funktion gibt immer true zurück.

Beispiele

Beispiel #1 restore_exception_handler() Beispiel

<?php
 function exception_handler_1(Exception $e)
 {
  echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
 }

 function exception_handler_2(Exception $e)
 {
  echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
 }

 set_exception_handler('exception_handler_1');
 set_exception_handler('exception_handler_2');

 restore_exception_handler();

 throw new Exception('Dies löst den ersten Exceptionhandler aus ...');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

[exception_handler_1] Dies löst den ersten Exceptionhandler aus ...

Siehe auch

  • set_exception_handler() - Installiert einen benutzerdefinierten Exceptionhandler
  • set_error_handler() - Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung
  • restore_error_handler() - Rekonstruiert die zuvor benutzte Fehlerbehandlungsfunktion
  • error_reporting() - Gibt an, welche PHP-Fehlermeldungen gemeldet werden


Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung

  • « restore_exception_handler
  • set_exception_handler »
  • PHP Manual
  • Fehlerbehandlungsfunktionen
  • Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung

set_error_handler

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

set_error_handler — Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung

Beschreibung

set_error_handler ( callable $error_handler , int $error_types = E_ALL | E_STRICT ) : mixed

Setzt eine benutzerdefinierte Funktion (error_handler), um Fehler in einem Skript zu behandeln.

Mit dieser Funktion können Sie Ihre eigene Behandlung von Laufzeitfehlern definieren, beispielsweise in Anwendungen, die bei einem kritischen Fehler die Löschung von Daten bzw. Dateien erfordert, oder wenn es nötig ist, unter bestimmten Bedingungen (mit der Funktion trigger_error()) eine Fehlermeldung zu generieren.

Vergessen Sie bei der Implementation auf keinen Fall, dass auf diese Weise die standardmäßige PHP-Fehlerbehandlung für die durch error_types angegebenen Fehlertypen vollkommen umgangen wird, außer wenn die Callback-Funktion false zurück gibt. Die Einstellungen der Funktion error_reporting() haben keine Auswirkung, und Ihre eigene Fehlerbehandlungsroutine wird ohne Rücksicht darauf aufgerufen. Sie können jedoch immer noch den aktuellen Wert von error_reporting lesen und entsprechend handeln. Es ist besonders zu beachten, dass dieser Wert 0 sein wird, falls die Anweisung, die den Fehler verursacht hat, mit dem @ Fehler-Kontroll-Operator versehen ist.

Beachten Sie auch, dass Sie dafür zuständig sind, bei Bedarf die() aufzurufen. Nach der Funktion für die Fehlerbehandlung wird die Ausführung des Skripts bei der Anweisung fortgesetzt, die auf die Fehler verursachende Anweisung folgt.

Die folgenden Fehlertypen können nicht von einer benutzerdefinierten Funktion behandelt werden: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING unabhängig davon, wo sie ausgelöst wurden, und die meisten E_STRICT, die in der Datei ausgelöst werden, in der set_error_handler() aufgerufen wird.

Falls Fehler auftreten, bevor das Skript ausgeführt wird (z.B. beim Hochladen von Dateien), kann eine benutzerdefinierte Fehlerbehandlung nicht aufgerufen werden, weil sie zu diesem Zeitpunkt noch nicht registriert ist.

Parameter-Liste

error_handler

Ein Callback mit der folgenden Signatur. null kann statt dessen übergeben werden, um diesen Handler auf seinen Standardwert zurück zu setzen. Statt eines Funktionsnamens, kann ein Array, das eine Objektreferenz und einen Methodennamen enthält, bereit gestellt werden.

handler ( int $errno , string $errstr , string $errfile = ? , int $errline = ? , array $errcontext = ? ) : bool
errno
Der erste Parameter errno enthält den Schweregrad des ausgelösten Fehlers als Integer.
errstr
Der zweite Parameter errstr enthält die Fehlermeldung als String.
errfile
Der dritte Parameter errfile ist optional. Er enthält den Namen der Datei, in der der Fehler verursacht wurde, als String.
errline
Der vierte Parameter errline ist optional. Er enthält die Zeilennummer, in der der Fehler verursacht wurde, als Integer.
errcontext
Der fünfte Parameter errcontext ist optional. Es handelt sich um ein Array, das auf die Stelle der aktiven Symboltabelle zeigt, die den Fehler verursacht hat. Mit anderen Worten: errcontext enthält ein Array mit allen Variablen, die im fehlerauslösenden Bereich existierten. Die benutzerdefinierte Fehlerbehandlung darf den Fehlerkontext nicht verändern.
Warnung

Dieser Parameter ist von PHP 7.2.0 an MISSBILLIGT. Es wird unbedingt davon abgeraten, sich auf diesen zu verlassen.

Falls diese Funktion false zurückgibt, wird mit der normalen Fehlerbehandlung fortgesetzt.

Fehlertypen

Kann wie die php.ini-Konfigurationseinstellung error_reporting, die bestimmt, welche Fehler angezeigt werden zum Maskieren des Aufrufs der error_handler-Funktion verwendet werden. Wird diese Maske nicht gesetzt, wird error_handler unabhängig von der Einstellung error_reporting bei jedem Fehler aufgerufen.

Rückgabewerte

Gibt eine Zeichenkette, die die zuvor definierte Fehlerbehandlungsroutine enthält (falls eine definiert wurde). Wenn der eingebaute Errorhandler verwendet wurde, wird null zurückgegeben. null wird ebenfalls zurückgegeben, falls ein Fehler wie z.B. ein ungültiger Callback aufgetreten ist. Wenn der vorgenannte Errorhandler eine Klassenmethode war, gibt die Funktion ein indiziertes Array mit dem Klassen- und dem Methodennamen zurück.

Changelog

Version | Beschreibung
7.2.0 | errcontext wurde missbilligt. Die Verwendung dieses Parameters erzeugt nun eine E_DEPRECATED-Notice.

Beispiele

Beispiel #1 Fehlerbehandlung mit set_error_handler() und trigger_error()

Das untenstehende Beispiel zeigt die Behandlung von internen Ausnahmen, indem Fehler ausgelöst und durch eine benutzerdefinierte Funktion behandelt werden:

<?php
// Fehlerbehandlungsfunktion
function myErrorHandler($fehlercode, $fehlertext, $fehlerdatei, $fehlerzeile)
{
    if (!(error_reporting() & $fehlercode)) {
        // Dieser Fehlercode ist nicht in error_reporting enthalten
        return false;
    }

    // $fehlertext muss möglicherweise maskiert werden:
    $fehlertext = htmlspecialchars($fehlertext);

    switch ($fehlercode) {
    case E_USER_ERROR:
        echo "<b>Mein FEHLER</b> [$fehlercode] $fehlertext<br />\n";
        echo "  Fataler Fehler in Zeile $fehlerzeile in der Datei $fehlerdatei";
        echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
        echo "Abbruch...<br />\n";
        break;

    case E_USER_WARNING:
        echo "<b>Meine WARNUNG</b> [$fehlercode] $fehlertext<br />\n";
        break;

    case E_USER_NOTICE:
        echo "<b>Mein HINWEIS</b> [$fehlercode] $fehlertext<br />\n";
        break;

    default:
        echo "Unbekannter Fehlertyp: [$fehlercode] $fehlertext<br />\n";
        break;
    }

    /* Damit die PHP-interne Fehlerbehandlung nicht ausgeführt wird */
    return true;
}

// Funktion zum Test der Fehlerbehandlung
function logarithmisch_skalieren($vektor, $skalierung)
{
    if (!is_numeric($skalierung) || $skalierung <= 0) {
        trigger_error("log(x) ist für x <= 0 nicht definiert, Sie verwendeten: skalierung = $skalierung", E_USER_ERROR);
    }

    if (!is_array($vektor)) {
        trigger_error("Fehlerhafter Eingabevektor, es wird ein Wertearray erwartet", E_USER_WARNING);
        return null;
    }

    $temp = array();
    foreach($vektor as $pos => $wert) {
        if (!is_numeric($wert)) {
            trigger_error("Der Wert an Position $pos ist keine Zahl, verwende 0 (Null)", E_USER_NOTICE);
            $wert = 0;
        }
        $temp[$pos] = log($skalierung) * $wert;
    }

    return $temp;
}

// auf die benutzerdefinierte Fehlerbehandlung umstellen
$alter_error_handler = set_error_handler("myErrorHandler");

// ein paar Fehler auslösen, zuerst wird ein gemischtes Array mit einem
// nichtnumerischen Eintrag definiert
echo "Vektor a\n";
$a = array(2, 3, "foo", 5.5, 43.3, 21.11);
print_r($a);

// ein zweites Array erzeugen
echo "----\nVektor b - ein Hinweis (b = log(PI) * a)\n";
/* Der Wert an Position $pos ist keine Zahl, verwende 0 (Null) */
$b = logarithmisch_skalieren($a, M_PI);
print_r($b);

// das gibt Ärger: statt eines Arrays wird eine Zeichenkette übergeben
echo "----\nVektor c - eine Warnung\n";
/* Fehlerhafter Eingabevektor, es wird ein Wertearray erwartet */
$c = logarithmisch_skalieren("kein Array", 2.3);
var_dump($c); // NULL

// dies ist ein kritischer Fehler: log ist für Null oder negative Werte
// nicht definiert
echo "----\nVektor d - fataler Fehler\n";
/* log(x) ist für x <= 0 nicht definiert, Sie verwendeten: skalierung = $skalierung */
$d = logarithmisch_skalieren($a, -2.5);
var_dump($d); // wird nie erreicht
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Vektor a
Array
(
    [0] => 2
    [1] => 3
    [2] => foo
    [3] => 5.5
    [4] => 43.3
    [5] => 21.11
)
----
Vektor b - ein Hinweis (b = log(PI) * a)
<b>Mein HINWEIS</b> [1024] Der Wert an Position 2 ist keine Zahl, verwende 0 (Null)<br />
Array
(
    [0] => 2.2894597716988
    [1] => 3.4341896575482
    [2] => 0
    [3] => 6.2960143721717
    [4] => 49.566804057279
    [5] => 24.165247890281
)
----
Vektor c - eine Warnung
<b>Meine WARNUNG</b> [512] Fehlerhafter Eingabevektor, es wird ein Wertearray erwartet<br />
NULL
----
Vektor d - fataler Fehler
<b>Mein FEHLER</b> [256] log(x) ist für x <= 0 nicht definiert, Sie verwendeten: skalierung = -2.5<br />
  Fataler Fehler in Zeile 35 in der Datei trigger_error.php, PHP 5.2.1 (FreeBSD)<br />
Abbruch...<br />

Siehe auch

  • ErrorException
  • error_reporting() - Gibt an, welche PHP-Fehlermeldungen gemeldet werden
  • restore_error_handler() - Rekonstruiert die zuvor benutzte Fehlerbehandlungsfunktion
  • trigger_error() - Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung
  • Errorlevel-Konstanten


Installiert einen benutzerdefinierten Exceptionhandler

  • « set_error_handler
  • trigger_error »
  • PHP Manual
  • Fehlerbehandlungsfunktionen
  • Installiert einen benutzerdefinierten Exceptionhandler

set_exception_handler

(PHP 5, PHP 7, PHP 8)

set_exception_handler — Installiert einen benutzerdefinierten Exceptionhandler

Beschreibung

set_exception_handler ( callable $exception_handler ) : callable

Setzt den Standardexceptionhandler für Exceptions die nicht von einem try/catch Block aufgefangen wurden. Nach dem Aufruf von exception_handler wird die Ausführung angehalten.

Parameter-Liste

exception_handler

Name der Funktion die aufgerufen werden soll wenn eine nicht aufgefangene Exception auftritt. Die Funktion muss einen Parameter akzeptieren, dieser enthält beim Aufruf das nicht aufgefangene Exception Objekt. Das ist die Signatur des Handlers vor PHP 7:

handler ( Exception $ex ) : void

Seit PHP 7 werden die meisten Fehler durch Werfen von Error-Exceptions gemeldet, die ebenfalls vom Handler gefangen werden. Sowohl Error als auch Exception implementieren das Throwable-Interface. Dies ist die Handler-Signatur seit PHP 7:

handler ( Throwable $ex ) : void

Statt dessen kann null übergeben werden, um den Handler auf seinen Standardwert zurück zu setzen.

Achtung

Es ist zu beachten, dass die Angabe des expliziten Exception Typ-Hints für den ex Parameter in Ihrem Callback Probleme mit der geänderten Exception-Hierarchie von PHP 7 verursachen kann.

Rückgabewerte

Gibt den Namen des zuvor definierten Exceptionhandlers zurück oder null bei Fehlern oder wenn kein vorheriger Exceptionhandler installiert war.

Changelog

Version | Beschreibung
7.0.0 | Der Typ des Parameters, der als exception_handler übergeben wird, wurde von Exception in Throwable geändert.
5.5.0 | Zuvor gab diese Funktion true zurück, wenn null übergeben wurde. Seit PHP 5.5.0 wird der vorherige Handler zurück gegeben.

Beispiele

Beispiel #1 set_exception_handler() Beispiel

<?php
function exception_handler($exception) {
  echo "Nicht aufgefangene Exception: " , $exception->getMessage(), "\n";
}

set_exception_handler('exception_handler');

throw new Exception('Nicht aufgefangene Exception');
echo "Nicht ausgeführt.\n";
?>

Siehe auch

  • restore_exception_handler() - Stellt den vorherigen Exceptionhandler wieder her
  • restore_error_handler() - Rekonstruiert die zuvor benutzte Fehlerbehandlungsfunktion
  • error_reporting() - Gibt an, welche PHP-Fehlermeldungen gemeldet werden
  • PHP 5 Exceptions


Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung

  • « set_exception_handler
  • user_error »
  • PHP Manual
  • Fehlerbehandlungsfunktionen
  • Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung

trigger_error

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

trigger_error — Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung

Beschreibung

trigger_error ( string $error_msg , int $error_type = E_USER_NOTICE ) : bool

Mit dieser Funktion wird die mit einem gewissen Fehlertyp verbundene Fehlerbehandlung ausgelöst, entweder die standardmäßige oder eine benutzerdefinierte Routine, die mittels set_error_handler() als neue Fehlerbehandlungsfunktion gesetzt wurde.

Diese Funktion ist nützlich, wenn Sie zur Laufzeit eine bestimmte Rückmeldung bei einer Ausnahme brauchen.

Parameter-Liste

error_msg

Die gewünschte Fehlermeldung für diesen Fehler. Die Länge ist auf 1024 Bytes begrenzt, darüber hinausgehende Zeichen werden abgeschnitten.

error_type

Der gewünschte Fehlertyp für diesen Fehler. Es können nur Konstanten der E_USER Familie gewählt werden, der Vorgabewert ist E_USER_NOTICE.

Rückgabewerte

Die Funktion gibt false zurück wenn ein falscher error_type übergeben wurde, sonst true

Beispiele

Beispiel #1 trigger_error() Beispiel

Siehe auch set_error_handler() für ein ausführlicheres Beispiel.

<?php
if ($divisor == 0) {
    trigger_error("Kann nicht durch 0 teilen", E_USER_ERROR);
}
?>

Anmerkungen

Warnung

HTML-Entities in der error_msg werden nicht automatisch escaped. Wenn die Fehlermeldung in einem Browser ausgegeben werden soll so sollten Sie diese in diesem Fall selbst mit htmlentities() vorverarbeiten.

Siehe auch

  • error_reporting() - Gibt an, welche PHP-Fehlermeldungen gemeldet werden
  • set_error_handler() - Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung
  • restore_error_handler() - Rekonstruiert die zuvor benutzte Fehlerbehandlungsfunktion
  • Die Error Level Konstanten


Alias von trigger_error

  • « trigger_error
  • FFI »
  • PHP Manual
  • Fehlerbehandlungsfunktionen
  • Alias von trigger_error

user_error

(PHP 4, PHP 5, PHP 7, PHP 8)

user_error — Alias von trigger_error()

Beschreibung

Diese Funktion ist ein Alias für: trigger_error().


Foreign Function Interface

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Basic FFI usage
    • PHP Callbacks
    • A Complete PHP/FFI/preloading Example
  • FFI — Main interface to C code and data
    • FFI::addr — Creates an unmanaged pointer to C data
    • FFI::alignof — Gets the alignment
    • FFI::arrayType — Dynamically constructs a new C array type
    • FFI::cast — Performs a C type cast
    • FFI::cdef — Creates a new FFI object
    • FFI::free — Releases an unmanaged data structure
    • FFI::isNull — Checks whether a FFI\CData is a null pointer
    • FFI::load — Loads C declarations from a C header file
    • FFI::memcmp — Compares memory areas
    • FFI::memcpy — Copies one memory area to another
    • FFI::memset — Fills a memory area
    • FFI::new — Creates a C data structure
    • FFI::scope — Instantiates an FFI object with C declarations parsed during preloading
    • FFI::sizeof — Gets the size of C data or types
    • FFI::string — Creates a PHP string from a memory area
    • FFI::type — Creates an FFI\CType object from a C declaration
    • FFI::typeof — Gets the FFI\CType of FFI\CData
  • FFI\CData — C Data Handles
  • FFI\CType — C Type Handles
  • FFI\Exception — FFI Exceptions
  • FFI\ParserException — FFI Parser Exceptions


Einführung

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

This extension allows the loading of shared libraries (.DLL or .so), calling of C functions and accessing of C data structures in pure PHP, without having to have deep knowledge of the Zend extension API, and without having to learn a third “intermediate” language. The public API is implemented as a single class FFI with several static methods (some of them may be called dynamically), and overloaded object methods, which perform the actual interaction with C data.

Achtung

FFI is dangerous, since it allows to interface with the system on a very low level. The FFI extension should only be used by developers having a working knowledge of C and the used C APIs. To minimize the risk, the FFI API usage may be restricted with the ffi.enable php.ini directive.

Hinweis:

The FFI extension does not render the classic PHP extension API obsolete; it is merely provided for ad-hoc interfacing with C functions and data structures.

Tipp

Currently, accessing FFI data structures is significantly (about 2 times) slower than accessing native PHP arrays and objects. Therefore, it makes no sense to use the FFI extension for speed; however, it may make sense to use it to reduce memory consumption.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

This extension requires the » libffi library to be installed.


Installation

To enable the FFI extension, PHP has to be configured with --with-ffi.

Windows users have to include php_ffi.dll into php.ini to enable the FFI extension.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

FFI Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
ffi.enable | "preload" | PHP_INI_SYSTEM |
ffi.preload | "" | PHP_INI_SYSTEM |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

ffi.enable string

Allows enabling ("true") or disabling ("false") FFI API usage, or restricting it only to the CLI SAPI and preloaded files ("preload").

The FFI API restrictions only affect the FFI class, but not overloaded functions of FFI\CData objects. This means that it is possible to create some FFI\CData objects in preloaded files, and then to use these directly in PHP scripts.

ffi.preload string

Allows preloading of FFI bindings during startup, which is not possible with FFI::load() if opcache.preload_user is set. This directive accepts a DIRECTORY_SEPARATOR delimited list of filenames. The preloaded bindings can be accessed by calling FFI::scope().


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • FFI
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Beispiele

Inhaltsverzeichnis

  • Basic FFI usage
  • PHP Callbacks
  • A Complete PHP/FFI/preloading Example


Basic FFI usage

Before diving into the details of the FFI API, lets take a look at a few examples demonstrating the simplicity of the FFI API usage for regular tasks.

Hinweis:

Some of these examples require libc.so.6 and as such will not work on systems where it is not available.

Beispiel #1 Calling a function from shared library

<?php
// create FFI object, loading libc and exporting function printf()
$ffi = FFI::cdef(
    "int printf(const char *format, ...);", // this is a regular C declaration
    "libc.so.6");
// call C's printf()
$ffi->printf("Hello %s!\n", "world");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hello world!

Hinweis:

Note that some C functions need specific calling conventions, e.g. __fastcall, __stdcall or ,__vectorcall.

Beispiel #2 Calling a function, returning a structure through an argument

<?php
// create gettimeofday() binding
$ffi = FFI::cdef("
    typedef unsigned int time_t;
    typedef unsigned int suseconds_t;

    struct timeval {
        time_t      tv_sec;
        suseconds_t tv_usec;
    };

    struct timezone {
        int tz_minuteswest;
        int tz_dsttime;
    };

    int gettimeofday(struct timeval *tv, struct timezone *tz);
", "libc.so.6");
// create C data structures
$tv = $ffi->new("struct timeval");
$tz = $ffi->new("struct timezone");
// call C's gettimeofday()
var_dump($ffi->gettimeofday(FFI::addr($tv), FFI::addr($tz)));
// access field of C data structure
var_dump($tv->tv_sec);
// print the whole C data structure
var_dump($tz);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(0)
int(1555946835)
object(FFI\CData:struct timezone)#3 (2) {
  ["tz_minuteswest"]=>
  int(0)
  ["tz_dsttime"]=>
  int(0)
}

Beispiel #3 Accessing existing C variables

<?php
// create FFI object, loading libc and exporting errno variable
$ffi = FFI::cdef(
    "int errno;", // this is a regular C declaration
    "libc.so.6");
// print C's errno
var_dump($ffi->errno);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)

Beispiel #4 Creating and Modifying C variables

<?php
// create a new C int variable
$x = FFI::new("int");
var_dump($x->cdata);

// simple assignment
$x->cdata = 5;
var_dump($x->cdata);

// compound assignment
$x->cdata += 2;
var_dump($x->cdata);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)
int(5)
int(7)

Beispiel #5 Working with C arrays

<?php
// create C data structure
$a = FFI::new("long[1024]");
// work with it like with a regular PHP array
for ($i = 0; $i < count($a); $i++) {
    $a[$i] = $i;
}
var_dump($a[25]);
$sum = 0;
foreach ($a as $n) {
    $sum += $n;
}
var_dump($sum);
var_dump(count($a));
var_dump(FFI::sizeof($a));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(25)
int(523776)
int(1024)
int(8192)

Beispiel #6 Working with C enums

<?php
$a = FFI::cdef('typedef enum _zend_ffi_symbol_kind {
    ZEND_FFI_SYM_TYPE,
    ZEND_FFI_SYM_CONST = 2,
    ZEND_FFI_SYM_VAR,
    ZEND_FFI_SYM_FUNC
} zend_ffi_symbol_kind;
');
var_dump($a->ZEND_FFI_SYM_TYPE);
var_dump($a->ZEND_FFI_SYM_CONST);
var_dump($a->ZEND_FFI_SYM_VAR);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)
int(2)
int(3)


PHP Callbacks

It is possible to assign a PHP closure to a native variable of function pointer type or to pass it as a function argument:

<?php
$zend = FFI::cdef("
    typedef int (*zend_write_func_t)(const char *str, size_t str_length);
    extern zend_write_func_t zend_write;
");

echo "Hello World 1!\n";

$orig_zend_write = clone $zend->zend_write;
$zend->zend_write = function($str, $len) {
    global $orig_zend_write;
    $orig_zend_write("{\n\t", 3);
    $ret = $orig_zend_write($str, $len);
    $orig_zend_write("}\n", 2);
    return $ret;
};
echo "Hello World 2!\n";
$zend->zend_write = $orig_zend_write;
echo "Hello World 3!\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hello World 1!
{
        Hello World 2!
}
Hello World 3!
Although this works, this functionality is not supported on all libffi platforms, is not efficient and leaks resources by the end of request.
Tipp

It is therefore recommended to minimize the usage of PHP callbacks.


A Complete PHP/FFI/preloading Example

php.ini

ffi.enable=preload
opcache.preload=preload.php

preload.php

<?php
FFI::load(__DIR__ . "/dummy.h");
opcache_compile_file(__DIR__ . "/dummy.php");
?>

dummy.h

#define FFI_SCOPE "DUMMY"
#define FFI_LIB "libc.so.6"

int printf(const char *format, ...);

dummy.php

<?php
final class Dummy {
    private static $ffi = null;
    function __construct() {
        if (is_null(self::$ffi)) {
            self::$ffi = FFI::scope("DUMMY");
        }
    }
    function printf($format, ...$args) {
       return (int)self::$ffi->printf($format, ...$args);
    }
}
?>

test.php

<?php
$d = new Dummy();
$d->printf("Hello %s!\n", "world");
?>


Main interface to C code and data

(PHP 7 >= 7.4.0)

Einführung

Objects of this class are created by the factory methods FFI::cdef(), FFI::load() or FFI::scope(). Defined C variables are made available as properties of the FFI instance, and defined C functions are made available as methods of the FFI instance. Declared C types can be used to create new C data structures using FFI::new() and FFI::type().

FFI definition parsing and shared library loading may take significant time. It is not useful to do it on each HTTP request in a Web environment. However, it is possible to preload FFI definitions and libraries at PHP startup, and to instantiate FFI objects when necessary. Header files may be extended with special FFI_SCOPE defines (e.g. #define FFI_SCOPE "foo"”"; the default scope is "C") and then loaded by FFI::load() during preloading. This leads to the creation of a persistent binding, that will be available to all the following requests through FFI::scope(). Refer to the complete PHP/FFI/preloading example for details.

It is possible to preload more than one C header file into the same scope.

Klassenbeschreibung

FFI {
/* Methoden */
public static addr ( FFI\CData &$ptr ) : FFI\CData
public static alignof ( FFI\CData|FFI\CType &$ptr ) : int
public static arrayType ( FFI\CType $type , array $dimensions ) : FFI\CType
public static cast ( FFI\CType|string $type , FFI\CData|int|float|bool|null &$ptr ) : FFI\CData|null
public cast ( FFI\CType|string $type , FFI\CData|int|float|bool|null &$ptr ) : FFI\CData|null
public static cdef ( string $code = "" , string|null $lib = null ) : FFI
public static free ( FFI\CData &$ptr ) : void
public static isNull ( FFI\CData &$ptr ) : bool
public static load ( string $filename ) : FFI|null
public static memcmp ( string|FFI\CData &$ptr1 , string|FFI\CData &$ptr2 , int $size ) : int
public static memcpy ( FFI\CData &$to , FFI\CData|string &$from , int $size ) : void
public static memset ( FFI\CData &$ptr , int $value , int $size ) : void
public static new ( FFI\CType|string $type , bool $owned = true , bool $persistent = false ) : FFI\CData|null
public new ( FFI\CType|string $type , bool $owned = true , bool $persistent = false ) : FFI\CData|null
public static scope ( string $name ) : FFI
public static sizeof ( FFI\CData|FFI\CType &$ptr ) : int
public static string ( FFI\CData &$ptr , int|null $size = null ) : string
public static type ( string $type ) : FFI\CType|null
public type ( string $type ) : FFI\CType|null
public static typeof ( FFI\CData &$ptr ) : FFI\CType
}

Inhaltsverzeichnis

  • FFI::addr — Creates an unmanaged pointer to C data
  • FFI::alignof — Gets the alignment
  • FFI::arrayType — Dynamically constructs a new C array type
  • FFI::cast — Performs a C type cast
  • FFI::cdef — Creates a new FFI object
  • FFI::free — Releases an unmanaged data structure
  • FFI::isNull — Checks whether a FFI\CData is a null pointer
  • FFI::load — Loads C declarations from a C header file
  • FFI::memcmp — Compares memory areas
  • FFI::memcpy — Copies one memory area to another
  • FFI::memset — Fills a memory area
  • FFI::new — Creates a C data structure
  • FFI::scope — Instantiates an FFI object with C declarations parsed during preloading
  • FFI::sizeof — Gets the size of C data or types
  • FFI::string — Creates a PHP string from a memory area
  • FFI::type — Creates an FFI\CType object from a C declaration
  • FFI::typeof — Gets the FFI\CType of FFI\CData


Creates an unmanaged pointer to C data

  • « FFI
  • FFI::alignof »
  • PHP Manual
  • FFI
  • Creates an unmanaged pointer to C data

FFI::addr

(PHP 7 >= 7.4.0)

FFI::addr — Creates an unmanaged pointer to C data

Beschreibung

public static FFI::addr ( FFI\CData &$ptr ) : FFI\CData

Creates an unmanaged pointer to the C data represented by the given FFI\CData. The source ptr must survive the resulting pointer. This function is mainly useful to pass arguments to C functions by pointer.

Parameter-Liste

ptr

The handle of the pointer to a C data structure.

Rückgabewerte

Returns the freshly created FFI\CData object.


Gets the alignment

  • « FFI::addr
  • FFI::arrayType »
  • PHP Manual
  • FFI
  • Gets the alignment

FFI::alignof

(PHP 7 >= 7.4.0)

FFI::alignof — Gets the alignment

Beschreibung

public static FFI::alignof ( FFI\CData|FFI\CType &$ptr ) : int

Gets the alignment of the given FFI\CData or FFI\CType object.

Parameter-Liste

ptr

The handle of the C data or type.

Rückgabewerte

Returns the alignment of the given FFI\CData or FFI\CType object.


Dynamically constructs a new C array type

  • « FFI::alignof
  • FFI::cast »
  • PHP Manual
  • FFI
  • Dynamically constructs a new C array type

FFI::arrayType

(PHP 7 >= 7.4.0)

FFI::arrayType — Dynamically constructs a new C array type

Beschreibung

public static FFI::arrayType ( FFI\CType $type , array $dimensions ) : FFI\CType

Dynamically constructs a new C array type with elements of type defined by type, and dimensions specified by dimensions. In the following example $t1 and $t2 are equivalent array types:

<?php
$t1 = FFI::type("int[2][3]");
$t2 = FFI::arrayType(FFI::type("int"), [2, 3]);
?>

Parameter-Liste

type

A valid C declaration as string, or an instance of FFI\CType which has already been created.

dimensions

The dimensions of the type as array.

Rückgabewerte

Returns the freshly created FFI\CType object.


Performs a C type cast

  • « FFI::arrayType
  • FFI::cdef »
  • PHP Manual
  • FFI
  • Performs a C type cast

FFI::cast

(PHP 7 >= 7.4.0)

FFI::cast — Performs a C type cast

Beschreibung

public static FFI::cast ( FFI\CType|string $type , FFI\CData|int|float|bool|null &$ptr ) : FFI\CData|null
public FFI::cast ( FFI\CType|string $type , FFI\CData|int|float|bool|null &$ptr ) : FFI\CData|null

FFI::cast() creates a new FFI\CData object, that references the same C data structure, but is associated with a different type. The resulting object does not own the C data, and the source ptr must survive the result. The C type may be specified as a string with any valid C type declaration or as FFI\CType object, created before. If this method is called statically, it must only use predefined C type names (e.g. int, char, etc.); if the method is called as instance method, any type declared for the instance is allowed.

Parameter-Liste

type

A valid C declaration as string, or an instance of FFI\CType which has already been created.

ptr

The handle of the pointer to a C data structure.

Rückgabewerte

Returns the freshly created FFI\CData object.


Creates a new FFI object

  • « FFI::cast
  • FFI::free »
  • PHP Manual
  • FFI
  • Creates a new FFI object

FFI::cdef

(PHP 7 >= 7.4.0)

FFI::cdef — Creates a new FFI object

Beschreibung

public static FFI::cdef ( string $code = "" , string|null $lib = null ) : FFI

Creates a new FFI object.

Parameter-Liste

code

A string containing a sequence of declarations in regular C language (types, structures, functions, variables, etc). Actually, this string may be copy-pasted from C header files.

Hinweis:

C preprocessor directives are not supported, i.e. #include, #define and CPP macros do not work.

lib

The name of a shared library file, to be loaded and linked with the definitions.

Hinweis:

If lib is omitted, platforms supporting RTLD_DEFAULT attempt to lookup symbols declared in code in the normal global scope. Other systems will fail to resolve these symbols.

Rückgabewerte

Returns the freshly created FFI object.

Changelog

Version | Beschreibung
8.0.0 | lib is nullable now.


Releases an unmanaged data structure

  • « FFI::cdef
  • FFI::isNull »
  • PHP Manual
  • FFI
  • Releases an unmanaged data structure

FFI::free

(PHP 7 >= 7.4.0)

FFI::free — Releases an unmanaged data structure

Beschreibung

public static FFI::free ( FFI\CData &$ptr ) : void

Manually releases a previously created unmanaged data structure.

Parameter-Liste

ptr

The handle of the unmanaged pointer to a C data structure.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Checks whether a FFI\CData is a null pointer

  • « FFI::free
  • FFI::load »
  • PHP Manual
  • FFI
  • Checks whether a FFI\CData is a null pointer

FFI::isNull

(PHP 7 >= 7.4.0)

FFI::isNull — Checks whether a FFI\CData is a null pointer

Beschreibung

public static FFI::isNull ( FFI\CData &$ptr ) : bool

Checks whether a FFI\CData is a null pointer.

Parameter-Liste

ptr

The handle of the pointer to a C data structure.

Rückgabewerte

Returns whether a FFI\CData is a null pointer.


Loads C declarations from a C header file

  • « FFI::isNull
  • FFI::memcmp »
  • PHP Manual
  • FFI
  • Loads C declarations from a C header file

FFI::load

(PHP 7 >= 7.4.0)

FFI::load — Loads C declarations from a C header file

Beschreibung

public static FFI::load ( string $filename ) : FFI|null

Loads C declarations from a C header file. It is possible to specify shared libraries that should be loaded, using special FFI_LIB defines in the loaded C header file.

Parameter-Liste

filename

The name of a C header file.

C preprocessor directives are not supported, i.e. #include, #define and CPP macros do not work, except for special cases listed below.

The header file should contain a #define statement for the FFI_SCOPE variable, e.g.: #define FFI_SCOPE "MYLIB". Refer to the class introduction for details.

The header file may contain a #define statement for the FFI_LIB variable to specify the library it exposes. If it is a system library only the file name is required, e.g.: #define FFI_LIB "libc.so.6". If it is a custom library, a relative path is required, e.g.: #define FFI_LIB "./mylib.so".

Rückgabewerte

Returns the freshly created FFI object, or null on failure.

Siehe auch

  • FFI::scope() - Instantiates an FFI object with C declarations parsed during preloading


Compares memory areas

  • « FFI::load
  • FFI::memcpy »
  • PHP Manual
  • FFI
  • Compares memory areas

FFI::memcmp

(PHP 7 >= 7.4.0)

FFI::memcmp — Compares memory areas

Beschreibung

public static FFI::memcmp ( string|FFI\CData &$ptr1 , string|FFI\CData &$ptr2 , int $size ) : int

Compares size bytes from the memory areas ptr1 and ptr2. Both ptr1 and ptr2 can be any native data structures (FFI\CData) or PHP strings.

Parameter-Liste

ptr1

The start of one memory area.

ptr2

The start of another memory area.

size

The number of bytes to compare.

Rückgabewerte

Returns < 0 if the contents of the memory area starting at ptr1 are considered less than the contents of the memory area starting at ptr2, > 0 if the contents of the first memory area are considered greater than the second, and 0 if they are equal.


Copies one memory area to another

  • « FFI::memcmp
  • FFI::memset »
  • PHP Manual
  • FFI
  • Copies one memory area to another

FFI::memcpy

(PHP 7 >= 7.4.0)

FFI::memcpy — Copies one memory area to another

Beschreibung

public static FFI::memcpy ( FFI\CData &$to , FFI\CData|string &$from , int $size ) : void

Copies size bytes from the memory area from to the memory area to.

Parameter-Liste

to

The start of the memory area to copy to.

from

The start of the memory area to copy from.

size

The number of bytes to copy.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Fills a memory area

  • « FFI::memcpy
  • FFI::new »
  • PHP Manual
  • FFI
  • Fills a memory area

FFI::memset

(PHP 7 >= 7.4.0)

FFI::memset — Fills a memory area

Beschreibung

public static FFI::memset ( FFI\CData &$ptr , int $value , int $size ) : void

Fills size bytes of the memory area pointed to by ptr with the given byte value.

Parameter-Liste

ptr

The start of the memory area to fill.

value

The byte to fill with.

size

The number of bytes to fill.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Creates a C data structure

  • « FFI::memset
  • FFI::scope »
  • PHP Manual
  • FFI
  • Creates a C data structure

FFI::new

(PHP 7 >= 7.4.0)

FFI::new — Creates a C data structure

Beschreibung

public static FFI::new ( FFI\CType|string $type , bool $owned = true , bool $persistent = false ) : FFI\CData|null
public FFI::new ( FFI\CType|string $type , bool $owned = true , bool $persistent = false ) : FFI\CData|null

Creates a native data structure of the given C type. If this method is called statically, it must only use predefined C type names (e.g. int, char, etc.); if the method is called as instance method, any type declared for the instance is allowed.

Parameter-Liste

type

type is a valid C declaration as string, or an instance of FFI\CType which has already been created.

owned

Whether to create owned (i.e. managed) or unmanaged data. Managed data lives together with the returned FFI\CData object, and is released when the last reference to that object is released by regular PHP reference counting or GC. Unmanaged data should be released by calling FFI::free(), when no longer needed.

persistent

Whether to allocate the C data structure permanently on the system heap (using malloc()), or on the PHP request heap (using emalloc()).

Rückgabewerte

Returns the freshly created FFI\CData object, or null on failure.


Instantiates an FFI object with C declarations parsed during preloading

  • « FFI::new
  • FFI::sizeof »
  • PHP Manual
  • FFI
  • Instantiates an FFI object with C declarations parsed during preloading

FFI::scope

(PHP 7 >= 7.4.0)

FFI::scope — Instantiates an FFI object with C declarations parsed during preloading

Beschreibung

public static FFI::scope ( string $name ) : FFI

Instantiates an FFI object with C declarations parsed during preloading.

The FFI::scope() method is safe to call multiple times for the same scope. Multiple references to the same scope may be loaded at the same time.

Parameter-Liste

name

The scope name defined by a special FFI_SCOPE define.

Rückgabewerte

Returns the freshly created FFI object.

Siehe auch

  • FFI::load() - Loads C declarations from a C header file


Gets the size of C data or types

  • « FFI::scope
  • FFI::string »
  • PHP Manual
  • FFI
  • Gets the size of C data or types

FFI::sizeof

(PHP 7 >= 7.4.0)

FFI::sizeof — Gets the size of C data or types

Beschreibung

public static FFI::sizeof ( FFI\CData|FFI\CType &$ptr ) : int

Returns the size of the given FFI\CData or FFI\CType object.

Parameter-Liste

ptr

The handle of the C data or type.

Rückgabewerte

The size of the memory area pointed at by ptr.


Creates a PHP string from a memory area

  • « FFI::sizeof
  • FFI::type »
  • PHP Manual
  • FFI
  • Creates a PHP string from a memory area

FFI::string

(PHP 7 >= 7.4.0)

FFI::string — Creates a PHP string from a memory area

Beschreibung

public static FFI::string ( FFI\CData &$ptr , int|null $size = null ) : string

Creates a PHP string from size bytes of the memory area pointed to by ptr.

Parameter-Liste

ptr

The start of the memory area from which to create a string.

size

The number of bytes to copy to the string. If size is omitted, ptr must be a zero terminated array of C chars.

Rückgabewerte

The freshly created PHP string.

Changelog

Version | Beschreibung
8.0.0 | size is nullable now; previously, its default was 0.


Creates an FFI\CType object from a C declaration

  • « FFI::string
  • FFI::typeof »
  • PHP Manual
  • FFI
  • Creates an FFI\CType object from a C declaration

FFI::type

(PHP 7 >= 7.4.0)

FFI::type — Creates an FFI\CType object from a C declaration

Beschreibung

public static FFI::type ( string $type ) : FFI\CType|null
public FFI::type ( string $type ) : FFI\CType|null

This function creates and returns a FFI\CType object for the given string containing a C type declaration. If this method is called statically, it must only use predefined C type names (e.g. int, char, etc.); if the method is called as instance method, any type declared for the instance is allowed.

Parameter-Liste

type

A valid C declaration as string, or an instance of FFI\CType which has already been created.

Rückgabewerte

Returns the freshly created FFI\CType object, or null on failure.


Gets the FFI\CType of FFI\CData

  • « FFI::type
  • FFI\CData »
  • PHP Manual
  • FFI
  • Gets the FFI\CType of FFI\CData

FFI::typeof

(PHP 7 >= 7.4.0)

FFI::typeof — Gets the FFI\CType of FFI\CData

Beschreibung

public static FFI::typeof ( FFI\CData &$ptr ) : FFI\CType

Gets the FFI\CType object representing the type of the given FFI\CData object.

Parameter-Liste

ptr

The handle of the pointer to a C data structure.

Rückgabewerte

Returns the FFI\CType object representing the type of the given FFI\CData object.


C Data Handles

(PHP 7 >= 7.4.0)

Einführung

FFI\CData objects can be used in a number of ways as a regular PHP data:

  • C data of scalar types can be read and assigned via the $cdata property, e.g. $x = FFI::new('int'); $x->cdata = 42;
  • C struct and union fields can be accessed as regular PHP object property, e.g. $cdata->field
  • C array elements can be accessed as regular PHP array elements, e.g. $cdata[$offset]
  • C arrays can be iterated using foreach statements.
  • C arrays can be used as arguments of count().
  • C pointers can be dereferenced as arrays, e.g. $cdata[0]
  • C pointers can be compared using regular comparison operators (<, <=, ==, !=, >=, >).
  • C pointers can be incremented and decremented using regular +/-/ ++/–- operations, e.g. $cdata += 5
  • C pointers can be subtracted from another using regular - operations.
  • C pointers to functions can be called as a regular PHP closure, e.g. $cdata()
  • Any C data can be duplicated using the clone operator, e.g. $cdata2 = clone $cdata;
  • Any C data can be visualized using var_dump(), print_r(), etc.

Hinweis: Notable limitations are that FFI\CData instances do not support isset(), empty() and unset(), and that wrapped C structs and unions do not implement Traversable.

Klassenbeschreibung

FFI\CData {
}


  • « FFI\CData
  • FFI\Exception »
  • PHP Manual
  • FFI
  • C Type Handles

C Type Handles

(PHP 7 >= 7.4.0)

Einführung

Klassenbeschreibung

FFI\CType {
}


FFI Exceptions

(PHP 7 >= 7.4.0)

Einführung

Klassenbeschreibung

FFI\Exception extends Error implements Throwable {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Error::getMessage ( ) : string
final public Error::getPrevious ( ) : Throwable
final public Error::getCode ( ) : mixed
final public Error::getFile ( ) : string
final public Error::getLine ( ) : int
final public Error::getTrace ( ) : array
final public Error::getTraceAsString ( ) : string
public Error::__toString ( ) : string
final private Error::__clone ( ) : void
}


FFI Parser Exceptions

(PHP 7 >= 7.4.0)

Einführung

Klassenbeschreibung

FFI\ParserException extends FFI\Exception implements Throwable {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}


Memtrack

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Basic usage


Einführung

The purpose of this extension is to detect the most memory hungry scripts and functions.

memtrack tracks memory consumption in PHP scripts and produces reports (warnings) when the consumption reaches certain levels set by the user. This is achieved by replacing default executor function by a special function which compares memory usage before and after running the original executor - this way we can tell how much the memory usage has changed during the execution of the current part of the code.

Zend Engine runs its executor for each opcode array (op_array), which usually means function, plain script and such, so memtrack doesn't have any noticeable effect on performance.

memtrack doesn't provide any functions, there are only INI directives which allow you to configure the way it should work.

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/memtrack


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Memtrack Configuration Options
Name | Standard | Veränderbar
memtrack.enabled | "0" | PHP_INI_SYSTEM
memtrack.soft_limit | "0" | PHP_INI_ALL
memtrack.hard_limit | "0" | PHP_INI_ALL
memtrack.vm_limit | "0" | PHP_INI_ALL
memtrack.ignore_functions | "" | PHP_INI_SYSTEM
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

memtrack.enabled bool

Disables or enables the extension. Default value is 0, i.e. disabled.

memtrack.soft_limit int

Soft memory limit.

The extension checks memory consumption before and after executing an op_array and produces a warning is the difference between the two values is equal to or greater than the soft limit, but only if the function is not ignored.

Setting this option to 0 also disables both soft and hard limit warnings. Default value is 0, i.e. no warnings is produced.

memtrack.hard_limit int

Hard memory limit.

The extension checks memory consumption before and after executing an op_array and produces a warning is the difference between the two values is equal to or greater than the hard limit, even if the function is ignored. Setting this option to 0 disables hard limit warnings completely. Default value is 0, i.e. no hard limit warnings is produced.

memtrack.vm_limit int

Virtual memory limit (set on a process).

This limit is checked only on shutdown and a warning is produced if the value is greater than or equal to the limit.

This option is currently supported only on OSes where mallinfo() function is available (i.e. Linux).

memtrack.ignore_functions string

A comma or whitespace-separated list of functions which are to be ignored by soft_limit. The values are case-insensitive, for class methods use class::method syntax.


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • Memtrack
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


  • « Vordefinierte Konstanten
  • Basic usage »
  • PHP Manual
  • Memtrack
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Basic usage


Basic usage

Basic example on using memtrack extension:

Beispiel #1 Creating large array in a function

<?php

/* /tmp/example1.php */

function foo() {
    $a = array();
    for ($i = 0; $i < 10000; $i++) $a[] = "test";
    return $a;
}
$arr = foo();

?>

Run the example with the following command:

php -d memtrack.enabled=1 -d memtrack.soft_limit=1M -d memtrack.vm_limit=3M /tmp/example1.php

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Warning: [memtrack] [pid 26177] user function foo() executed in /tmp/example1.php on line 10 allocated 4194304 bytes in /tmp/example1.php on line 0
Warning: [memtrack] [pid 26177] virtual memory usage on shutdown: 32911360 bytes in Unknown on line 0


OPcache

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Preloading
  • OPcache Funktionen
    • opcache_compile_file — Compiles and caches a PHP script without executing it
    • opcache_get_configuration — Get configuration information about the cache
    • opcache_get_status — Liefert den Status des OPcode-Caches
    • opcache_invalidate — Invalidates a cached script
    • opcache_is_script_cached — Tells whether a script is cached in OPCache
    • opcache_reset — Resettet den Inhalt des OPcode Caches


Einführung

OPcache erhöht die PHP-Performance durch das Speichern des vorkompilierten Bytecodes im Arbeitsspeicher. Dadurch wird das Laden und Parsen der Scripte bei jedem Request vermieden.

Diese Erweiterung ist ab PHP 5.5.0 enthalten und auch als » PECL Paket für PHP Version 5.2, 5.3 und 5.4 verfügbar.


Installation

OPcache can only be compiled as a shared extension. If you have disabled the building of default extensions with --disable-all, you must compile PHP with the --enable-opcache option for OPcache to be available.

Once compiled, you can use the zend_extension configuration directive to load the OPcache extension into PHP. This can be done with zend_extension=/full/path/to/opcache.so on non-Windows platforms, and zend_extension=C:\path\to\php_opcache.dll on Windows.

Hinweis:

If you want to use OPcache with » Xdebug, you must load OPcache before Xdebug.

Recommended php.ini settings

The following settings are generally recommended as providing good performance:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

You may also want to consider disabling opcache.save_comments and enabling opcache.enable_file_override, however note that you will have to test your code before using these in production as they are known to break some frameworks and applications, particularly in cases where documentation comment annotations are used.

On Windows, opcache.file_cache_fallback should be enabled, and opcache.file_cache should be set to an already existing and writable directory.

A full list of configuration directives supported by OPcache is also available.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

OPcache configuration options
Name | Standard | Veränderbar | Changelog
opcache.enable | "1" | PHP_INI_ALL |
opcache.enable_cli | "0" | PHP_INI_SYSTEM | Between PHP 7.1.2 and 7.1.6 inclusive, the default was "1"
opcache.memory_consumption | "128" | PHP_INI_SYSTEM |
opcache.interned_strings_buffer | "8" | PHP_INI_SYSTEM |
opcache.max_accelerated_files | "10000" | PHP_INI_SYSTEM |
opcache.max_wasted_percentage | "5" | PHP_INI_SYSTEM |
opcache.use_cwd | "1" | PHP_INI_SYSTEM |
opcache.validate_timestamps | "1" | PHP_INI_ALL |
opcache.revalidate_freq | "2" | PHP_INI_ALL |
opcache.revalidate_path | "0" | PHP_INI_ALL |
opcache.save_comments | "1" | PHP_INI_SYSTEM |
opcache.fast_shutdown | "0" | PHP_INI_SYSTEM | Removed in PHP 7.2.0
opcache.enable_file_override | "0" | PHP_INI_SYSTEM |
opcache.optimization_level | "0x7FFEBFFF" | PHP_INI_SYSTEM | Changed from 0x7FFFBFFF in PHP 7.3.0
opcache.inherited_hack | "1" | PHP_INI_SYSTEM | Removed in PHP 7.3.0
opcache.dups_fix | "0" | PHP_INI_ALL |
opcache.blacklist_filename | "" | PHP_INI_SYSTEM |
opcache.max_file_size | "0" | PHP_INI_SYSTEM |
opcache.consistency_checks | "0" | PHP_INI_ALL |
opcache.force_restart_timeout | "180" | PHP_INI_SYSTEM |
opcache.error_log | "" | PHP_INI_SYSTEM |
opcache.log_verbosity_level | "1" | PHP_INI_SYSTEM |
opcache.preferred_memory_model | "" | PHP_INI_SYSTEM |
opcache.protect_memory | "0" | PHP_INI_SYSTEM |
opcache.mmap_base | null | PHP_INI_SYSTEM |
opcache.restrict_api | "" | PHP_INI_SYSTEM |
opcache.file_update_protection | "2" | PHP_INI_ALL |
opcache.huge_code_pages | "0" | PHP_INI_SYSTEM |
opcache.lockfile_path | "/tmp" | PHP_INI_SYSTEM |
opcache.opt_debug_level | "0" | PHP_INI_SYSTEM | Available as of PHP 7.1.0
opcache.file_cache | NULL | PHP_INI_SYSTEM |
opcache.file_cache_only | "0" | PHP_INI_SYSTEM |
opcache.file_cache_consistency_checks | "1" | PHP_INI_SYSTEM |
opcache.file_cache_fallback | "1" | PHP_INI_SYSTEM | Windows only.
opcache.validate_permission | "0" | PHP_INI_SYSTEM | Available as of PHP 7.0.14
opcache.validate_root | "0" | PHP_INI_SYSTEM | Available as of PHP 7.0.14
opcache.preload | "" | PHP_INI_SYSTEM | Available as of PHP 7.4.0
opcache.preload_user | "" | PHP_INI_SYSTEM | Available as of PHP 7.4.0
opcache.cache_id | "" | PHP_INI_SYSTEM | Windows only. Available as of PHP 7.4.0
opcache.jit | "tracing" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_buffer_size | "0" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_debug | "0" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_bisect_limit | "0" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_prof_threshold | "0.005" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_root_traces | "1024" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_max_side_traces | "128" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_max_exit_counters | "8192" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_hot_loop | "64" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_hot_func | "127" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_hot_return | "8" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_hot_side_exit | "8" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_blacklist_root_trace | "16" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_blacklist_side_trace | "8" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_loop_unrolls | "8" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_recursive_calls | "2" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_recursive_returns | "2" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_polymorphic_calls | "2" | PHP_INI_ALL | Available as of PHP 8.0.0
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

opcache.enable bool

Enables the opcode cache. When disabled, code is not optimised or cached. The setting opcache.enable can not be enabled at runtime through ini_set(), it can only be disabled. Trying to enable it in a script will generate a warning.

opcache.enable_cli bool

Enables the opcode cache for the CLI version of PHP.

opcache.memory_consumption int

The size of the shared memory storage used by OPcache, in megabytes. The minimum permissible value is "8", which is enforced if a smaller value is set.

opcache.interned_strings_buffer int

The amount of memory used to store interned strings, in megabytes.

opcache.max_accelerated_files int

The maximum number of keys (and therefore scripts) in the OPcache hash table. The actual value used will be the first number in the set of prime numbers { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 } that is greater than or equal to the configured value. The minimum value is 200. The maximum value is 1000000. Values outside of this range are clamped to the permissible range.

opcache.max_wasted_percentage int

The maximum percentage of wasted memory that is allowed before a restart is scheduled, if there is insufficient free memory. The maximum permissible value is "50", which is enforced if a larger value is set.

opcache.use_cwd bool

If enabled, OPcache appends the current working directory to the script key, thereby eliminating possible collisions between files with the same base name. Disabling this directive improves performance, but may break existing applications.

opcache.validate_timestamps bool

If enabled, OPcache will check for updated scripts every opcache.revalidate_freq seconds. When this directive is disabled, you must reset OPcache manually via opcache_reset(), opcache_invalidate() or by restarting the Web server for changes to the filesystem to take effect.

opcache.revalidate_freq int

How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request.

This configuration directive is ignored if opcache.validate_timestamps is disabled.

opcache.revalidate_path bool

If disabled, existing cached files using the same include_path will be reused. Thus, if a file with the same name is elsewhere in the include_path, it won't be found.

opcache.save_comments bool

If disabled, all documentation comments will be discarded from the opcode cache to reduce the size of the optimised code. Disabling this configuration directive may break applications and frameworks that rely on comment parsing for annotations, including Doctrine, Zend Framework 2 and PHPUnit.

opcache.fast_shutdown bool

If enabled, a fast shutdown sequence is used that doesn't free each allocated block, but relies on the Zend Engine memory manager to deallocate the entire set of request variables en masse.

This directive has been removed in PHP 7.2.0. A variant of the fast shutdown sequence has been integrated into PHP and will be automatically used if possible.

opcache.enable_file_override bool

When enabled, the opcode cache will be checked for whether a file has already been cached when file_exists(), is_file() and is_readable() are called. This may increase performance in applications that check the existence and readability of PHP scripts, but risks returning stale data if opcache.validate_timestamps is disabled.

opcache.optimization_level int

A bitmask that controls which optimisation passes are executed.

opcache.inherited_hack bool

This configuration directive is ignored.

opcache.dups_fix bool

This hack should only be enabled to work around "Cannot redeclare class" errors.

opcache.blacklist_filename string

The location of the OPcache blacklist file. A blacklist file is a text file containing the names of files that should not be accelerated, one per line. Wildcards are allowed, and prefixes can also be provided. Lines starting with a semi-colon are ignored as comments.

A simple blacklist file might look as follows:

; Matches a specific file.
/var/www/broken.php
; A prefix that matches all files starting with x.
/var/www/x
; A wildcard match.
/var/www/*-broken.php
opcache.max_file_size int

The maximum file size that will be cached, in bytes. If this is 0, all files will be cached.

opcache.consistency_checks int

If non-zero, OPcache will verify the cache checksum every N requests, where N is the value of this configuration directive. This should only be enabled when debugging, as it will impair performance.

opcache.force_restart_timeout int

The length of time to wait for a scheduled restart to begin if the cache isn't active, in seconds. If the timeout is hit, then OPcache assumes that something is wrong and will kill the processes holding locks on the cache to permit a restart.

If opcache.log_verbosity_level is set to 2 or above, a warning will be recorded in the error log when this occurs.

This directive is not supported on Windows.

opcache.error_log string

The error log for OPcache errors. An empty string is treated the same as stderr, and will result in logs being sent to standard error (which will be the Web server error log in most cases).

opcache.log_verbosity_level int

The log verbosity level. By default, only fatal errors (level 0) and errors (level 1) are logged. Other levels available are warnings (level 2), information messages (level 3) and debug messages (level 4).

opcache.preferred_memory_model string

The preferred memory model for OPcache to use. If left empty, OPcache will choose the most appropriate model, which is the correct behaviour in virtually all cases.

Possible values include mmap, shm, posix and win32.

opcache.protect_memory bool

Protects shared memory from unexpected writes while executing scripts. This is useful for internal debugging only.

opcache.mmap_base string

The base used for shared memory segments on Windows. All PHP processes have to map shared memory into the same address space. Using this directive allows "Unable to reattach to base address" errors to be fixed.

opcache.restrict_api string

Allows calling OPcache API functions only from PHP scripts which path is started from specified string. The default "" means no restriction.

opcache.file_update_protection string

Prevents caching files that are less than this number of seconds old. It protects from caching of incompletely updated files. In case all file updates on your site are atomic, you may increase performance by setting it to "0".

opcache.huge_code_pages bool

Enables or disables copying of PHP code (text segment) into HUGE PAGES. This should improve performance, but requires appropriate OS configuration. Available on Linux as of PHP 7.0.0, and on FreeBSD as of PHP 7.4.0.

opcache.lockfile_path string

Absolute path used to store shared lockfiles (for *nix only)

opcache.opt_debug_level string

Produces opcode dumps for debugging different stages of optimizations. 0x10000 will output opcodes as the compiler produced them before any optimization occurs while 0x20000 will output optimized codes.

opcache.file_cache string

Enables and sets the second level cache directory. It should improve performance when SHM memory is full, at server restart or SHM reset. The default "" disables file based caching.

opcache.file_cache_only bool

Enables or disables opcode caching in shared memory.

opcache.file_cache_consistency_checks bool

Enables or disables checksum validation when script loaded from file cache.

opcache.file_cache_fallback bool

Implies opcache.file_cache_only=1 for a certain process that failed to reattach to the shared memory (for Windows only). Explicitly enabled file cache is required.

Achtung

Disabling this configuration option may prevent processes to start, and is therefore discouraged.

opcache.validate_permission bool

Validates the cached file permissions against the current user.

opcache.validate_root bool

Prevents name collisions in chroot'ed environments. This should be enabled in all chroot'ed environments to prevent access to files outside the chroot.

opcache.preload string

Specifies a PHP script that is going to be compiled and executed at server start-up, and which may preload other files, either by includeing them or by using the opcache_compile_file() function. All the entities (e.g. functions and classes) defined in these files will be available to requests out of the box, until the server is shut down.

Hinweis:

Preloading is not supported on Windows.

opcache.preload_user string

Preloading code as root is not allowed for security reasons. This directive facilitates to let the preloading to be run as another user.

opcache.cache_id string

On Windows, all processes running the same PHP SAPI under the same user account having the same cache ID share a single OPcache instance. The value of the cache ID can be freely chosen.

opcache.jit string|int

For typical usage, this option accepts one of four string values:

  • disable: Completely disabled, cannot be enabled at runtime.
  • off: Disabled, but can be enabled at runtime.
  • tracing/on: Use tracing JIT. Enabled by default and recommended for most users.
  • function: Use function JIT.

For advanced usage, this option accepts a 4-digit integer CRTO, where the digits mean:

C (CPU-specific optimization flags)
  • 0: Disable CPU-specific optimization.
  • 1: Enable use of AVX, if the CPU supports it.
R (register allocation)
  • 0: Don't perform register allocation.
  • 1: Perform block-local register allocation.
  • 2: Perform global register allocation.
T (trigger)
  • 0: Compile all functions on script load.
  • 1: Compile functions on first execution.
  • 2: Profile functions on first request and compile the hottest functions afterwards.
  • 3: Profile on the fly and compile hot functions.
  • 4: Currently unused.
  • 5: Use tracing JIT. Profile on the fly and compile traces for hot code segments.
O (optimization level)
  • 0: No JIT.
  • 1: Minimal JIT (call standard VM handlers).
  • 2: Inline VM handlers.
  • 3: Use type inference.
  • 4: Use call graph.
  • 5: Optimize whole script.
The "tracing" mode corresponds to CRTO = 1254, the "function" mode corresponds to CRTO = 1205.

opcache.jit_buffer_size int

The amount of shared memory to reserve for compiled JIT code. A zero value disables the JIT.

Wird ein int-Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben.
opcache.jit_debug int

A bit mask specifying which JIT debug output to enable. For possible values, please consult zend_jit.h.

opcache.jit_bisect_limit int

Debugging option that disables JIT compilation after compiling a certain number of functions. This may be helpful to bisect the source of a JIT miscompilation.

opcache.jit_prof_threshold float

When using the "profile on first request" trigger mode, this threshold determines whether a function is considered hot. The number of calls to the function divided by the number of calls to all functions must be above the threshold. For example, a threshold of 0.005 means that functions that made up more than 0.5% of all calls will be JIT compiled.

opcache.jit_max_root_traces int

Maximum number of root traces.

opcache.jit_max_side_traces int

Maximum number of side traces a root trace may have.

opcache.jit_max_exit_counters int

Maximum number of side trace exit counters. This limits the total number of side traces there may be, across all root traces.

opcache.jit_hot_loop int

After how many iterations a loop is considered hot.

opcache.jit_hot_func int

After how many calls a function is considered hot.

opcache.jit_hot_return int

After how many returns a return is considered hot.

opcache.jit_hot_side_exit int

After how many exits a side exit is considered hot.

opcache.jit_blacklist_root_trace int

Maximum number of times the compilation of a root trace is attempted before it is blacklisted.

opcache.jit_blacklist_side_trace int

Maximum number of times the compilation of a side trace is attempted before it is blacklisted.

opcache.jit_max_loop_unrolls int

Maximum number of attempts to unroll a loop in a side trace, trying to reach the root trace and close the outer loop.

opcache.jit_max_recursive_calls int

Maximum number of unrolled recursive call loops.

opcache.jit_max_recursive_returns int

Maximum number of unrolled recursive return loops.

opcache.jit_max_polymorphic_calls int

Maximum number of attempts to inline polymorphic (dynamic or method) calls. Calls above this limit are treated as megamorphic and are not inlined.


  • « Laufzeit-Konfiguration
  • Preloading »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert keine Ressource-Typen.


Preloading

As of PHP 7.4.0, PHP can be configured to preload scripts into the opcache when the engine starts. Any symbols (functions, classes, etc.) in those files will then become globally available for all requests without needing to be explicitly included. That trades convenience and performance (because the code is always available) for baseline memory usage. It also requires restarting the PHP process to clear pre-loaded scripts, meaning this feature is only practical to use in production, not in a development environment.

Note that the optimal tradeoff between performance and memory may vary with the application. "Preload everything" may be the easiest strategy, but not necessarily the best strategy. Additionally, preloading is only useful when there is a persistent process from one request to another. That means while it can work in a CLI script if the opcache is enabled, it's generally pointless. The exception is when using preloading on FFI libraries.

Hinweis:

Preloading is not supported on Windows.

Configuring preloading involves two steps, and requires that the opcache be enabled. First, set the opcache.preload value in php.ini:

opcache.preload=preload.php

preload.php is an arbitrary file that will run once at server startup (PHP-FPM, mod_php, etc.) and load code into persistent memory. If PHP will be run as root (not recommended), the opcache.preload_user value can specify an alternate system user to run the preloading. Running preloading as root is not allowed.

In the preload.php script, any file referenced by include, include_once, require, require_once, or opcache_compile_file() will be parsed into persistent memory. In the following example, all .php files in the src directory will be preloaded, unless they are a Test file.

<?php
$directory = new RecursiveDirectoryIterator(__DIR__ . '/src');
$fullTree = new RecursiveIteratorIterator($directory);
$phpFiles = new RegexIterator($fullTree, '/.+((?<!Test)+\.php$)/i', RecursiveRegexIterator::GET_MATCH);

foreach ($phpFiles as $key => $file) {
    require_once($file[0]);
}
?>

Both include and opcache_compile_file() will work, but have different implications for how code gets handled.

  • include will execute code in the file, while opcache_compile_file() will not. That means only the former supports conditional declaration (functions declared inside an if-block).
  • Because include will execute code, nested included files will also be parsed and their declarations preloaded.
  • opcache_compile_file() can load files in any order. That is, if a.php defines class A and b.php defines class B that extends A, then opcache_compile_file() can load those two files in any order. When using include, however, a.php must be included first.
  • In either case, if a later script includes a file that has already been preloaded then its contents will still execute, but any symbols it defines will not be re-defined. Using include_once will not prevent the file from being included a second time.
Which approach is better therefore depends on the desired behavior. With code that would otherwise use an autoloader, opcache_compile_file() allows for greater flexibility. With code that would otherwise be loaded manually, include will be more robust.


OPcache Funktionen

Inhaltsverzeichnis

  • opcache_compile_file — Compiles and caches a PHP script without executing it
  • opcache_get_configuration — Get configuration information about the cache
  • opcache_get_status — Liefert den Status des OPcode-Caches
  • opcache_invalidate — Invalidates a cached script
  • opcache_is_script_cached — Tells whether a script is cached in OPCache
  • opcache_reset — Resettet den Inhalt des OPcode Caches


Compiles and caches a PHP script without executing it

  • « OPcache Funktionen
  • opcache_get_configuration »
  • PHP Manual
  • OPcache Funktionen
  • Compiles and caches a PHP script without executing it

opcache_compile_file

(PHP 5 >= 5.5.5, PHP 7, PHP 8, PECL ZendOpcache > 7.0.2)

opcache_compile_file — Compiles and caches a PHP script without executing it

Beschreibung

opcache_compile_file ( string $filename ) : bool

This function compiles a PHP script and adds it to the opcode cache without executing it. This can be used to prime the cache after a Web server restart by pre-caching files that will be included in later requests.

Parameter-Liste

filename

The path to the PHP script to be compiled.

Rückgabewerte

Returns true if filename was compiled successfully Im Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

If filename cannot be loaded or compiled, an error of level E_WARNING is generated. You may use @ to suppress this warning.

Siehe auch

  • opcache_invalidate() - Invalidates a cached script


Get configuration information about the cache

  • « opcache_compile_file
  • opcache_get_status »
  • PHP Manual
  • OPcache Funktionen
  • Get configuration information about the cache

opcache_get_configuration

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL ZendOpcache > 7.0.2)

opcache_get_configuration — Get configuration information about the cache

Beschreibung

opcache_get_configuration ( ) : array|false

This function returns configuration information about the cache instance

Rückgabewerte

Returns an array of information, including ini, blacklist and version

Fehler/Exceptions

If opcache.restrict_api is in use and the current path is in violation of the rule, an E_WARNING will be raised; no status information will be returned.

Siehe auch

  • opcache_get_status() - Liefert den Status des OPcode-Caches


Liefert den Status des OPcode-Caches

  • « opcache_get_configuration
  • opcache_invalidate »
  • PHP Manual
  • OPcache Funktionen
  • Liefert den Status des OPcode-Caches

opcache_get_status

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL ZendOpcache > 7.0.2)

opcache_get_status — Liefert den Status des OPcode-Caches

Beschreibung

opcache_get_status ( bool $include_scripts = true ) : array|false

Diese Funktion liefert Statusinformationen zu der Cache-Instanz.

Parameter-Liste

include_scripts

Skriptspezifische Statusinformationen einbeziehen.

Rückgabewerte

Gibt ein Array mit Informationen zurück, das optional skriptspezifische Statusinformationen enthält. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Wenn opcache.restrict_api benutzt wird und der aktuelle Pfad eine Verletzung dieser Regel ist, wird eine E_WARNING-Meldung ausgelöst und keine Statusinformationen werden zurückgegeben.

Siehe auch

  • opcache_get_configuration() - Get configuration information about the cache


Invalidates a cached script

  • « opcache_get_status
  • opcache_is_script_cached »
  • PHP Manual
  • OPcache Funktionen
  • Invalidates a cached script

opcache_invalidate

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL ZendOpcache >= 7.0.0)

opcache_invalidate — Invalidates a cached script

Beschreibung

opcache_invalidate ( string $filename , bool $force = false ) : bool

This function invalidates a particular script from the opcode cache. If force is unset or false, the script will only be invalidated if the modification time of the script is newer than the cached opcodes.

Parameter-Liste

filename

The path to the script being invalidated.

force

If set to true, the script will be invalidated regardless of whether invalidation is necessary.

Rückgabewerte

Returns true if the opcode cache for filename was invalidated or if there was nothing to invalidate, or false if the opcode cache is disabled.

Siehe auch

  • opcache_compile_file() - Compiles and caches a PHP script without executing it
  • opcache_reset() - Resettet den Inhalt des OPcode Caches


Tells whether a script is cached in OPCache

  • « opcache_invalidate
  • opcache_reset »
  • PHP Manual
  • OPcache Funktionen
  • Tells whether a script is cached in OPCache

opcache_is_script_cached

(PHP 5 >= 5.5.11, PHP 7, PHP 8, PECL ZendOpcache >= 7.0.4)

opcache_is_script_cached — Tells whether a script is cached in OPCache

Beschreibung

opcache_is_script_cached ( string $filename ) : bool

This function checks if a PHP script has been cached in OPCache. This can be used to more easily detect the "warming" of the cache for a particular script.

Parameter-Liste

filename

The path to the PHP script to be checked.

Rückgabewerte

Returns true if filename is cached in OPCache, false otherwise.

Siehe auch

  • opcache_compile_file() - Compiles and caches a PHP script without executing it


Resettet den Inhalt des OPcode Caches

  • « opcache_is_script_cached
  • Ausgabekontrolle »
  • PHP Manual
  • OPcache Funktionen
  • Resettet den Inhalt des OPcode Caches

opcache_reset

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL ZendOpcache >= 7.0.0)

opcache_reset — Resettet den Inhalt des OPcode Caches

Beschreibung

opcache_reset ( ) : bool

Diese Funktion resettet den gesammten OPcode Cache. Nach dem aufrufen von opcache_reset(), werden alles Scripte beim nächsten aufruf neu geladen und geparst.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt true zurück wenn der OPcode cache resettet wurde, oder false wenn der Cache deaktiviert ist.

Siehe auch

  • opcache_invalidate() - Invalidates a cached script


Ausgabepufferung

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Einsatzgrundlagen
    • Verwendung des URL-Rewriters
  • Output-Control-Funktionen
    • flush — Leert (sendet) den System-Ausgabepuffer
    • ob_clean — Löscht den Ausgabepuffer
    • ob_end_clean — Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
    • ob_end_flush — Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
    • ob_flush — Leert (sendet) den Ausgabepuffer
    • ob_get_clean — Get current buffer contents and delete current output buffer
    • ob_get_contents — Liefert den Inhalt des Ausgabepuffers
    • ob_get_flush — Flush the output buffer, return it as a string and turn off output buffering
    • ob_get_length — Return the length of the output buffer
    • ob_get_level — Anzahl der aktiven Ausgabepuffer
    • ob_get_status — Get status of output buffers
    • ob_gzhandler — ob_start callback function to gzip output buffer
    • ob_implicit_flush — Schaltet die implizite Ausgabe ein bzw. aus
    • ob_list_handlers — List all output handlers in use
    • ob_start — Ausgabepufferung aktivieren
    • output_add_rewrite_var — Setzt URL-Rewrite-Variablen
    • output_reset_rewrite_vars — Reset URL rewriter values


Einführung

Mit den Funktionen zur Ausgabesteuerung können Sie die Ausgabe eines Skripts steuern. Dies kann in verschiedenen Situationen ganz nützlich sein, besonders wenn Sie Header an den Browser schicken müssen, nachdem Ihr Skript bereits etwas ausgegeben hat. Die Ausgabesteuerungsfunktionen gelten nicht für Header, die mit header() oder setcookie() geschickt wurden, sondern nur für Daten, die mit echo gesendet wurden oder für Daten zwischen PHP-Codeblöcken.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Konfigurationsoptionen für die Ausgabekontrolle
Name | Standard | Veränderbar | Changelog
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR |
implicit_flush | "0" | PHP_INI_ALL |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Vor PHP 7.1.0 wurde dies für das URL-Rewriting verwendet, wenn die transparente SID der Session aktiviert war. Von PHP 7.1.0 an wird es nur noch von output_add_rewrite_var() verwendet.
url_rewriter.hosts | $_SERVER['HTTP_HOST'] wird als Voreinstellung verwendet. | PHP_INI_ALL | Verfügbar von PHP 7.1.0 an
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

output_buffering bool/int

Sie können die Ausgabepufferung für alle Skripte aktivieren, indem Sie diesen Wert auf 'On' setzen. Wenn Sie die Größe des Puffers limitieren wollen, so können Sie die maximale Größe in Bytes an Stelle von 'On' angeben (z.B. output_buffering=4096). Dieser Wert ist für den PHP-CLI-Kommandozeileninterpreter grundsätzlich 'Off'.

output_handler string

Sie können die Ausgaben Ihres Skriptes an eine Funktion weiterleiten. Wenn sie z.B. mb_output_handler() als output_handler setzen, wird die Zeichenkodierung transparent in die angegebene Kodierung umgewandelt. Das Setzen einer beliebigen Ausgabesteuerung aktiviert die Ausgabepufferung automatisch.

Hinweis:

Sie können mb_output_handler() nicht gleichzeitig mit
ob_iconv_handler() und
ob_gzhandler() nicht gleichzeitig mit zlib.output_compression.
benutzen.

Hinweis:

Es können nur eingebaute PHP-Funktionen mit dieser Anweisung verwendet werden. Benutzerdefinierte Funktionen können mit Hilfe der ob_start()-Funktion genutzt werden.

implicit_flush bool

Diese Option ist standardmäßig false. Wenn Sie implicit_flush auf true setzen, wird PHP angewiesen, den Ausgabepuffer nach jedem Ausgabeblock automatisch zu leeren. Dies ist äquivalent zu flush()-Aufrufen nach jedem print- oder echo-Aufruf und nach jedem HTML-Block.

In Webanwendungen hat diese Option massive Performanceauswirkungen und wird im Allgemeinen nur für Debugging-Zwecke empfohlen. Im CLI SAPI-Modus (Kommandozeileninterpreter) dagegen ist diese Option standardmäßig true.

Siehe auch ob_implicit_flush().

url_rewriter.tags string
url_rewriter.tags gibt an, welche HTML-Tags durch output_add_rewrite_var() umgeschrieben werden. Die Voreinstellung ist a=href,area=href,frame=src,input=src,form= form ist ein besonderes Tag. <input hidden="session_id" name="session_name"> wird als Formular-Variable hinzugefügt.

Hinweis: Vor PHP 7.1.0 wurde url_rewriter.tags verwendet, um session.trans_sid_tags anzugeben. Von PHP 7.1.0 an wird fieldset nicht länger als besonderes Tag angesehen.

url_rewriter.hosts string
url_rewriter.hosts gibt an, welche Hosts umgeschrieben werden, um output_add_rewrite_var()-Werte aufzunehmen. Standardmäßig ist das $_SERVER['HTTP_HOST']. Mehrere Hosts können durch "," angegeben werden, z.B. php.net,wiki.php.net,bugs.php.net. Zwischen den Hosts ist kein Leerzeichen erlaubt.


Vordefinierte Konstanten

Die aufgelisteten Konstanten stehen immer zur Verfügung, da sie zum Grundbestand von PHP gehören.

PHP_OUTPUT_HANDLER_START (int)

Zeigt an, dass die Pufferung der Ausgabe begann.

PHP_OUTPUT_HANDLER_WRITE (int)

Zeigt an, dass der Ausgabepuffer geleert wird und Daten zur Ausgabe bereitstehen.

Verfügbar seit PHP 5.4.

PHP_OUTPUT_HANDLER_FLUSH (int)

Zeigt an, dass der Ausgabepuffer geleert und ausgegeben wurde.

Verfügbar seit PHP 5.4.

PHP_OUTPUT_HANDLER_CLEAN (int)

Zeigt an, dass der Ausgabepuffer gelöscht wurde.

Verfügbar seit PHP 5.4.

PHP_OUTPUT_HANDLER_FINAL (int)

Zeigt an, dass dies die letzte Operation des Ausgabepuffers ist.

Verfügbar seit PHP 5.4.

PHP_OUTPUT_HANDLER_CONT (int)

Zeigt an, dass der Ausgabepuffer geleert und ausgegeben wurde, aber die Pufferung fortgesetzt wird.

Zum Stand von PHP 5.4 ist dies ein Alias für PHP_OUTPUT_HANDLER_WRITE.

PHP_OUTPUT_HANDLER_END (int)

Zeigt an, dass die Ausgabepufferung endete.

Zum Stand von PHP 5.4 ist dies ein Alias für PHP_OUTPUT_HANDLER_FINAL.

PHP_OUTPUT_HANDLER_CLEANABLE (int)

Steuert, ob ein durch ob_start() erzeugter Ausgabepuffer gelöscht werden kann.

Verfügbar seit PHP 5.4.

PHP_OUTPUT_HANDLER_FLUSHABLE (int)

Steuert, ob ein durch ob_start() erzeugter Ausgabepuffer geleert und ausgegeben werden kann.

Verfügbar seit PHP 5.4.

PHP_OUTPUT_HANDLER_REMOVABLE (int)

Steuert, ob ein durch ob_start() erzeugter Ausgabepuffer vor Ende der Skriptlaufzeit entfernt werden kann.

Verfügbar seit PHP 5.4.

PHP_OUTPUT_HANDLER_STDFLAGS (int)

Die Standardeinstellungen der Pufferflags. Derzeit gleichbedeutend mit PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE.

Verfügbar seit PHP 5.4.


  • « Vordefinierte Konstanten
  • Einsatzgrundlagen »
  • PHP Manual
  • Ausgabekontrolle
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Einsatzgrundlagen
  • Verwendung des URL-Rewriters


Einsatzgrundlagen

Beispiel #1 Output-Control-Beispiel

<?php

ob_start();
echo "Hello\n";

setcookie("cookiename", "cookiedata");

ob_end_flush();

?>

Im obigen Beispiel wird die Ausgabe der echo solange im Ausgabepuffer zwischengespeichert, bis die Funktion ob_end_flush() aufgerufen wird. In der Zwischenzeit speichert der Aufruf von setcookie() erfolgreich einen Cookie, ohne einen Fehler zu erzeugen. (Normalerweise können keine Header an den Browser mehr gesendet werden, wenn schon Daten ausgegeben wurden.)


Verwendung des URL-Rewriters

Von PHP 7.1.0 an verwenden output_add_rewrite_var() und output_reset_rewrite_vars() einen eigenen Ausgabepuffer. D.h. der trans sid Ausgabepuffer wird von diesen Funktionen nicht mehr verwendet.

Beispiel #1 URL-Rewriter-Beispiel

<?php
// Dieser Code funktioniert mit PHP 7.1.0, 7.0.10, 5.6.25 und höher.

// HTTP_HOST ist der Standard-Zielhost. Wir setzen ihn händisch, damit das Beispiel funktioniert.
$_SERVER['HTTP_HOST'] = 'php.net';

// Der URL-Rewriter soll nur form und a=href umschreiben.
// Elemente können durch tag_name=url_attr angegeben werden, z.B. img=src,iframe=src
// Zwischen diesen Angaben sind keine Leerzeichen erlaubt.
// Das Form-Element ist besonders, da ihm ein verstecktes Eingabefeld hinzugefügt wird.
ini_set('url_rewriter.tags','a=href,form=');
var_dump(ini_get('url_rewriter.tags'));

// Dies wird zu URL und dem Form-Element hinzugefügt
output_add_rewrite_var('test', 'value');
?>
<a href="//php.net/index.php?bug=1234">bug1234</a>
<form action="https://php.net/?bug=1234&edit=1" action="post">
 <input type="text" name="title" />
</form>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<a href="//php.net/?bug=1234&test=value">bug1234</a>
<form action="https://php.net/?bug=1234&edit=1" method="post"><input type="hidden" name="test" value="value" />
 <input type="text" name="title" />
</form>

Von PHP 7.1.0 haben die URL-Rewriter-Funktionen eigene INI Einstellungen: url_rewriter.tags und url_rewriter.hosts.


Output-Control-Funktionen

Siehe auch

Siehe auch header() und setcookie().

Inhaltsverzeichnis

  • flush — Leert (sendet) den System-Ausgabepuffer
  • ob_clean — Löscht den Ausgabepuffer
  • ob_end_clean — Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
  • ob_end_flush — Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
  • ob_flush — Leert (sendet) den Ausgabepuffer
  • ob_get_clean — Get current buffer contents and delete current output buffer
  • ob_get_contents — Liefert den Inhalt des Ausgabepuffers
  • ob_get_flush — Flush the output buffer, return it as a string and turn off output buffering
  • ob_get_length — Return the length of the output buffer
  • ob_get_level — Anzahl der aktiven Ausgabepuffer
  • ob_get_status — Get status of output buffers
  • ob_gzhandler — ob_start callback function to gzip output buffer
  • ob_implicit_flush — Schaltet die implizite Ausgabe ein bzw. aus
  • ob_list_handlers — List all output handlers in use
  • ob_start — Ausgabepufferung aktivieren
  • output_add_rewrite_var — Setzt URL-Rewrite-Variablen
  • output_reset_rewrite_vars — Reset URL rewriter values


Leert (sendet) den System-Ausgabepuffer

  • « Output-Control-Funktionen
  • ob_clean »
  • PHP Manual
  • Output-Control-Funktionen
  • Leert (sendet) den System-Ausgabepuffer

flush

(PHP 4, PHP 5, PHP 7, PHP 8)

flush — Leert (sendet) den System-Ausgabepuffer

Beschreibung

flush ( ) : void

Leert den Ausgabepuffer des Systems und des darunterliegenden PHP-Backends (CGI, Webserver, ...). Diese Funktion versucht, mit ein paar Einschränkungen, die gesamte aktuelle Ausgabe an den Browser zu senden.

flush() ist möglicherweise nicht in der Lage, das Pufferverhalten des Webservers zu beeinflussen und hat keine Auswirkungen auf den clientseitigen Browserpuffer. Es hat auch keinen Einfluss auf den Anzeigemechanismus des Userspace-Puffers von PHP. Das bedeutet, dass ob_flush() vor flush() aufgerufen werden sollte, um die Ausgabebuffer zu leeren, wenn sie verwendet werden.

Einige Webserver, besonders auf Windows (Win32), puffern ihre Skriptausgaben weiterhin bis zum Skriptende bevor sie sie zum Browser übertragen.

Auch Apache-Module wie mod_gzip puffern zum Teil Ausgaben und verhindern so, dass Ausgaben nach flush() direkt an den Client weitergegeben werden.

Selbst Browser können empfangene Ausgaben puffern bevor sie sie darstellen. Netscape z.B. puffert Text, bis er entweder einen Zeilenwechsel oder den Anfang eines Tags enthält und zeigt Tabellen erst nach dem Empfang des </table>-Tags der äußersten Tabelle.

Einige Versionen des Microsoft Internet Explorers beginnen erst dann mit der Ausgabe wenn sie mindestens 256 Bytes empfangen haben. Sie müssen daher eventuell zusätzliche Leerzeichen in Ihre Ausgaben einfügen um eine Darstellung vor Skriptende auf solchen Browsern zu erzwingen.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ob_flush() - Leert (sendet) den Ausgabepuffer
  • ob_clean() - Löscht den Ausgabepuffer
  • ob_end_flush() - Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
  • ob_end_clean() - Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung


Löscht den Ausgabepuffer

  • « flush
  • ob_end_clean »
  • PHP Manual
  • Output-Control-Funktionen
  • Löscht den Ausgabepuffer

ob_clean

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ob_clean — Löscht den Ausgabepuffer

Beschreibung

ob_clean ( ) : bool

Diese Funktion verwirft den aktuellen Inhalt des Ausgabepuffers.

Anders als bei ob_end_clean() bleibt der Ausgabepuffer dabei aber erhalten.

Der Ausgabepuffer muss durch ob_start() mit dem PHP_OUTPUT_HANDLER_CLEANABLE Flag aktiviert werden. Andernfalls funktioniert ob_clean() nicht.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ob_flush() - Leert (sendet) den Ausgabepuffer
  • ob_end_flush() - Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
  • ob_end_clean() - Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung


Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung

  • « ob_clean
  • ob_end_flush »
  • PHP Manual
  • Output-Control-Funktionen
  • Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung

ob_end_clean

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_end_clean — Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung

Beschreibung

ob_end_clean ( ) : bool

Der Inhalt des Ausgabepuffers (sofern vorhanden) wird verworfen und der Ausgabepuffer (aber nur dieser) wird 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_clean() aufrufen, da dadurch der Puffer geleert wird.

Der Ausgabepuffer muss durch ob_start() mit den PHP_OUTPUT_HANDLER_CLEANABLE und PHP_OUTPUT_HANDLER_REMOVABLE Flags aktiviert werden. Andernfalls funktioniert ob_end_clean() nicht.

Rückgabewerte

Die Funktion gibt true zurück wenn ein Ausgabepuffer entfernt wurde, false wenn kein aktiver Puffer vorhanden war oder der aktuelle Puffer nicht deaktiviert werden konnte (dies ist bei speziellen Puffern möglich).

Fehler/Exceptions

Im Fehlerfall generiert die Funktion eine E_NOTICE Meldung.

Beispiele

Das folgende Beispiel zeigt einen einfachen Weg um alle aktiven Ausgabepuffer zu entfernen:

Beispiel #1 ob_end_clean() Beispiel

<?php
ob_start();
echo 'Text der nicht ausgegeben wird.';
ob_end_clean();
?>

Siehe auch

  • ob_start() - Ausgabepufferung aktivieren
  • ob_get_contents() - Liefert den Inhalt des Ausgabepuffers
  • ob_flush() - Leert (sendet) den Ausgabepuffer


Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung

  • « ob_end_clean
  • ob_flush »
  • PHP Manual
  • Output-Control-Funktionen
  • Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung

ob_end_flush

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_end_flush — Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung

Beschreibung

ob_end_flush ( ) : bool

Der Inhalt des Ausgabepuffers (sofern vorhanden) wird abgeschickt und der Ausgabepuffer (aber nur dieser) wird 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.

Der Ausgabepuffer muss durch ob_start() mit den PHP_OUTPUT_HANDLER_FLUSHABLE und PHP_OUTPUT_HANDLER_REMOVABLE Flags aktiviert werden. Andernfalls funktioniert ob_end_flush() nicht.

Hinweis: Diese Funktion ähnelt ob_get_flush(), aber ob_get_flush() liefert den Inhalt des Puffers als String zurück.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Gründe für Fehler sind erstens, dass sie die Funktion ohne einen aktiven Puffer augerufen haben, oder zweitens, dass aus irgendeinem Grund der Puffer nicht gelöscht werden konnte (möglich bei speziellen Puffern).

Fehler/Exceptions

Wenn die Funktion fehlschlägt, generiert sie eine E_NOTICE.

Beispiele

Beispiel #1 ob_end_clean()-Beispiel

Das folgende Beispiel zeigt einen einfachen Weg, um alle aktiven Ausgabepuffer zu leeren und zu entfernen:

<?php
  while (@ob_end_flush());
?>

Siehe auch

  • ob_start() - Ausgabepufferung aktivieren
  • ob_get_contents() - Liefert den Inhalt des Ausgabepuffers
  • ob_get_flush() - Flush the output buffer, return it as a string and turn off output buffering
  • ob_flush() - Leert (sendet) den Ausgabepuffer
  • ob_end_clean() - Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung


Leert (sendet) den Ausgabepuffer

  • « ob_end_flush
  • ob_get_clean »
  • PHP Manual
  • Output-Control-Funktionen
  • Leert (sendet) den Ausgabepuffer

ob_flush

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ob_flush — Leert (sendet) den Ausgabepuffer

Beschreibung

ob_flush ( ) : bool

Diese Funktion sendet den aktuellen Inhalt des Ausgabepuffers (falls vorhanden). Wenn sie die Pufferinhalte weiterverarbeiten wollen, müssen Sie ob_get_contents() vor ob_flush() aufrufen, da der Pufferinhalt nach dem Aufruf von ob_flush() gelöscht wird.

Anders als bei ob_end_flush() bleibt der Ausgabepuffer erhalten.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ob_get_contents() - Liefert den Inhalt des Ausgabepuffers
  • ob_clean() - Löscht den Ausgabepuffer
  • ob_end_flush() - Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
  • ob_end_clean() - Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung


Get current buffer contents and delete current output buffer

  • « ob_flush
  • ob_get_contents »
  • PHP Manual
  • Output-Control-Funktionen
  • Get current buffer contents and delete current output buffer

ob_get_clean

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ob_get_clean — Get current buffer contents and delete current output buffer

Beschreibung

ob_get_clean ( ) : string|false

Gets the current buffer contents and delete current output buffer.

ob_get_clean() essentially executes both
ob_get_contents() and
ob_end_clean().

The output buffer must be started by ob_start() with PHP_OUTPUT_HANDLER_CLEANABLE and PHP_OUTPUT_HANDLER_REMOVABLE flags. Otherwise ob_get_clean() will not work.

Rückgabewerte

Returns the contents of the output buffer and end output buffering. If output buffering isn't active then false is returned.

Beispiele

Beispiel #1 A simple ob_get_clean() example

<?php

ob_start();

echo "Hello World";

$out = ob_get_clean();
$out = strtolower($out);

var_dump($out);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(11) "hello world"

Siehe auch

  • ob_get_contents() - Liefert den Inhalt des Ausgabepuffers
  • ob_start() - Ausgabepufferung aktivieren


Liefert den Inhalt des Ausgabepuffers

  • « ob_get_clean
  • ob_get_flush »
  • PHP Manual
  • Output-Control-Funktionen
  • Liefert den Inhalt des Ausgabepuffers

ob_get_contents

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_get_contents — Liefert den Inhalt des Ausgabepuffers

Beschreibung

ob_get_contents ( ) : string|false

Gibt den Inhalt des Ausgabepuffers ohne Löschung zurück.

Rückgabewerte

ob_get_contents() gibt den Inhalt des Ausgabepuffers zurück oder false, wenn die Ausgabepufferung nicht aktiv ist.

Beispiele

Beispiel #1 Ein einfaches ob_get_contents()-Beispiel

<?php

ob_start();

echo "Hallo ";

$out1 = ob_get_contents();

echo "Welt";

$out2 = ob_get_contents();

ob_end_clean();

var_dump($out1, $out2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(6) "Hallo "
string(11) "Hallo Welt"

Siehe auch

  • ob_start() - Ausgabepufferung aktivieren
  • ob_get_length() - Return the length of the output buffer


Flush the output buffer, return it as a string and turn off output buffering

  • « ob_get_contents
  • ob_get_length »
  • PHP Manual
  • Output-Control-Funktionen
  • Flush the output buffer, return it as a string and turn off output buffering

ob_get_flush

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ob_get_flush — Flush the output buffer, return it as a string and turn off output buffering

Beschreibung

ob_get_flush ( ) : string|false

ob_get_flush() flushes the output buffer, return it as a string and turns off output buffering.

The output buffer must be started by ob_start() with PHP_OUTPUT_HANDLER_FLUSHABLE flag. Otherwise ob_get_flush() will not work.

Hinweis: This function is similar to ob_end_flush(), except that this function also returns the buffer as a string.

Rückgabewerte

Returns the output buffer or false if no buffering is active.

Beispiele

Beispiel #1 ob_get_flush() example

<?php
//using output_buffering=On
print_r(ob_list_handlers());

//save buffer in a file
$buffer = ob_get_flush();
file_put_contents('buffer.txt', $buffer);

print_r(ob_list_handlers());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => default output handler
)
Array
(
)

Siehe auch

  • ob_end_clean() - Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
  • ob_end_flush() - Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
  • ob_list_handlers() - List all output handlers in use


Return the length of the output buffer

  • « ob_get_flush
  • ob_get_level »
  • PHP Manual
  • Output-Control-Funktionen
  • Return the length of the output buffer

ob_get_length

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

ob_get_length — Return the length of the output buffer

Beschreibung

ob_get_length ( ) : int|false

This will return the length of the contents in the output buffer, in bytes.

Rückgabewerte

Returns the length of the output buffer contents, in bytes, or false if no buffering is active.

Beispiele

Beispiel #1 A simple ob_get_length() example

<?php

ob_start();

echo "Hello ";

$len1 = ob_get_length();

echo "World";

$len2 = ob_get_length();

ob_end_clean();

echo $len1 . ", " . $len2;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

6, 11

Siehe auch

  • ob_start() - Ausgabepufferung aktivieren
  • ob_get_contents() - Liefert den Inhalt des Ausgabepuffers


Anzahl der aktiven Ausgabepuffer

  • « ob_get_length
  • ob_get_status »
  • PHP Manual
  • Output-Control-Funktionen
  • Anzahl der aktiven Ausgabepuffer

ob_get_level

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ob_get_level — Anzahl der aktiven Ausgabepuffer

Beschreibung

ob_get_level ( ) : int

ob_get_level() liefert die Anzahl der zur Zeit gleichzeitig (übereinanderliegend) aktiven Ausgabepuffer oder 0, wenn keine Ausgabepufferung genutzt wird.

Rückgabewerte

Gibt die Anzahle der aktiven Ausgabepuffer zurück. Wenn keine Ausgabepufferung aktiv ist, wird 0 zurückgegeben.

Siehe auch

  • ob_start() - Ausgabepufferung aktivieren
  • ob_get_contents() - Liefert den Inhalt des Ausgabepuffers


Get status of output buffers

  • « ob_get_level
  • ob_gzhandler »
  • PHP Manual
  • Output-Control-Funktionen
  • Get status of output buffers

ob_get_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ob_get_status — Get status of output buffers

Beschreibung

ob_get_status ( bool $full_status = false ) : array

ob_get_status() returns status information on either the top level output buffer or all active output buffer levels if full_status is set to true.

Parameter-Liste

full_status

true to return all active output buffer levels. If false or not set, only the top level output buffer is returned.

Rückgabewerte

If called without the full_status parameter or with full_status = false a simple array with the following elements is returned:

Array
(
    [level] => 2
    [type] => 0
    [status] => 0
    [name] => URL-Rewriter
    [del] => 1
)
Simple ob_get_status() results
Key | Value
level | Output nesting level
type | PHP_OUTPUT_HANDLER_INTERNAL (0) or PHP_OUTPUT_HANDLER_USER (1)
status | One of PHP_OUTPUT_HANDLER_START (0), PHP_OUTPUT_HANDLER_CONT (1) or PHP_OUTPUT_HANDLER_END (2)
name | Name of active output handler or ' default output handler' if none is set
del | Erase-flag as set by ob_start()

If called with full_status = true an array with one element for each active output buffer level is returned. The output level is used as key of the top level array and each array element itself is another array holding status information on one active output level.

Array
(
    [0] => Array
        (
            [chunk_size] => 0
            [size] => 40960
            [block_size] => 10240
            [type] => 1
            [status] => 0
            [name] => default output handler
            [del] => 1
        )

    [1] => Array
        (
            [chunk_size] => 0
            [size] => 40960
            [block_size] => 10240
            [type] => 0
            [buffer_size] => 0
            [status] => 0
            [name] => URL-Rewriter
            [del] => 1
        )

)

The full output contains these additional elements:

Full ob_get_status() results
Key | Value
chunk_size | Chunk size as set by ob_start()
size | ...
blocksize | ...

Siehe auch

  • ob_get_level() - Anzahl der aktiven Ausgabepuffer
  • ob_list_handlers() - List all output handlers in use


ob_start callback function to gzip output buffer

  • « ob_get_status
  • ob_implicit_flush »
  • PHP Manual
  • Output-Control-Funktionen
  • ob_start callback function to gzip output buffer

ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ob_gzhandler — ob_start callback function to gzip output buffer

Beschreibung

ob_gzhandler ( string $buffer , int $mode ) : string

ob_gzhandler() is intended to be used as a callback function for ob_start() to help facilitate sending gz-encoded data to web browsers that support compressed web pages. Before ob_gzhandler() actually sends compressed data, it determines what type of content encoding the browser will accept ("gzip", "deflate" or none at all) and will return its output accordingly. All browsers are supported since it's up to the browser to send the correct header saying that it accepts compressed web pages. If a browser doesn't support compressed pages this function returns false.

Parameter-Liste

buffer

mode

Rückgabewerte

Beispiele

Beispiel #1 ob_gzhandler() example

<?php

ob_start("ob_gzhandler");

?>
<html>
<body>
<p>This should be a compressed page.</p>
</body>
</html>

Anmerkungen

Hinweis:

ob_gzhandler() requires the zlib extension.

Hinweis:

You cannot use both ob_gzhandler() and zlib.output_compression. Also note that using zlib.output_compression is preferred over ob_gzhandler().

Siehe auch

  • ob_start() - Ausgabepufferung aktivieren
  • ob_end_flush() - Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung


Schaltet die implizite Ausgabe ein bzw. aus

  • « ob_gzhandler
  • ob_list_handlers »
  • PHP Manual
  • Output-Control-Funktionen
  • Schaltet die implizite Ausgabe ein bzw. aus

ob_implicit_flush

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_implicit_flush — Schaltet die implizite Ausgabe ein bzw. aus

Beschreibung

ob_implicit_flush ( bool $flag = true ) : void

ob_implicit_flush() schaltet die implizite Ausgabe an oder aus. Die implizite Pufferausgabe erzeugt eine Ausgabe nach jedem Ausgabe-Befehl, sodass keine expliziten Aufrufe von flush() mehr erforderlich sind.

Parameter-Liste

flag

true schaltet die implizite Ausgabe ein, false schaltet sie aus.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | flag erwartet nun einen bool-Wert; vorher wurde ein int erwartet.

Siehe auch

  • flush() - Leert (sendet) den System-Ausgabepuffer
  • ob_start() - Ausgabepufferung aktivieren
  • ob_end_flush() - Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung


List all output handlers in use

  • « ob_implicit_flush
  • ob_start »
  • PHP Manual
  • Output-Control-Funktionen
  • List all output handlers in use

ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ob_list_handlers — List all output handlers in use

Beschreibung

ob_list_handlers ( ) : array

Lists all output handlers in use.

Rückgabewerte

This will return an array with the output handlers in use (if any). If output_buffering is enabled or an anonymous function was used with ob_start(), ob_list_handlers() will return "default output handler".

Beispiele

Beispiel #1 ob_list_handlers() example

<?php
//using output_buffering=On
print_r(ob_list_handlers());
ob_end_flush();

ob_start("ob_gzhandler");
print_r(ob_list_handlers());
ob_end_flush();

// anonymous functions
ob_start(function($string) { return $string; });
print_r(ob_list_handlers());
ob_end_flush();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => default output handler
)

Array
(
    [0] => ob_gzhandler
)

Array
(
    [0] => Closure::__invoke
)

Siehe auch

  • ob_end_clean() - Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
  • ob_end_flush() - Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
  • ob_get_flush() - Flush the output buffer, return it as a string and turn off output buffering
  • ob_start() - Ausgabepufferung aktivieren


Ausgabepufferung aktivieren

  • « ob_list_handlers
  • output_add_rewrite_var »
  • PHP Manual
  • Output-Control-Funktionen
  • Ausgabepufferung aktivieren

ob_start

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_start — Ausgabepufferung aktivieren

Beschreibung

ob_start ( callable $callback = null , int $chunk_size = 0 , int $flags = PHP_OUTPUT_HANDLER_STDFLAGS ) : bool

Diese Funktion aktiviert die Ausgabepufferung. Während die Ausgabepufferung aktiv ist, werden Skriptausgaben (mit Ausnahme von Headerinformationen) nicht direkt an den Client weitergegeben, sondern in einem internen Puffer gesammelt.

Der Inhalt dieses internen Puffers kann mit Hilfe der Funktion ob_get_contents() in eine Zeichenketten-Variable kopiert werden. Um auszugeben, was im internen Puffer gespeichert ist, ist ob_end_flush() zu verwenden. Alternativ wird mit ob_end_clean() der Puffer stillschweigend verworfen.

Warnung

Einige Webserver (z.B. Apache) ändern das Arbeitsverzeichnis des Skripts vor dem Aufruf der Callback-Funktion. Bei Bedarf kann in der Callback-Funktion mit Hilfe von beispielsweise chdir(dirname($_SERVER['SCRIPT_FILENAME'])) wieder in das Skriptverzeichnis zurückgewechselt werden.

Ausgabepuffer können verschachtelt werden, d.h. Sie können ob_start() erneut aufrufen, während bereits ein anderer ob_start() Aufruf aktiv ist. Sie müssen nur sicherstellen, dass Sie später auch ob_end_flush() entsprechend oft aufrufen. Sind mehrere Callback-Funktionen aktiv, so werden die Ausgaben der Reihe nach von Ausgabepuffer zu Ausgabepuffer weitergegeben, und die Callback-Funktionen in Verschachtelungsreihenfolge aufgerufen.

Parameter-Liste

callback

Optional kann eine callback Funktion angegeben werden. Diese Funktion nimmt eine Zeichenkette als Parameter entgegen und sollte eine Zeichenkette zurückgeben. Die Funktion wird aufgerufen, wenn der Ausgabepuffer geleert (gesendet) oder bereinigt wird (mit ob_flush(), ob_clean() oder einer ähnlichen Funktion), oder wenn der Ausgabepuffer am Ende der Anfrage zum Browser gesendet wird. Wenn callback aufgerufen wird, dann empfängt es den Inhalt des Ausgabepuffers als Parameter, und sollte einen neuen Ausgabepuffer als Ergebnis zurückgeben, der an den Browser gesendet wird. Ist callback keine aufrufbare Funktion, gibt diese Funktion false zurück. Dies ist die Signatur des Callbacks:

handler ( string $buffer , int $phase = ? ) : string
buffer
Der Inhalt des Ausgabepuffers.
phase
Die Bitmaske von PHP_OUTPUT_HANDLER_*-Konstanten.

Wenn callback false zurückgibt, wird die ursprüngliche Eingabe an den Browser gesendet.

Um den Parameter callback auszulassen, kann ein null-Wert übergeben werden.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() und ob_start() können nicht innerhalb einer Callback-Funktion aufgerufen werden; das Ergebnis eines solchen Aufrufs ist nicht definiert. Wenn Sie den Inhalt eines Puffers löschen wollen, so geben Sie einfach "" (eine leere Zeichenkette) aus der Callback-Funktion zurück. Auch Funktionen wie print_r($expression, true) oder highlight_file($filename, true), die den Ausgabepuffermechanismus intern nutzen, können nicht innerhalb eines Callbacks aufgerufen werden.

Hinweis:

Die Funktion ob_gzhandler() existiert, um es zu erleichtern, gz-kodierte Daten an Webbrowser zu senden, die komprimierte Webseiten unterstützen. ob_gzhandler() ermittelt, welche Art von Inhaltskodierung der Browser akzeptiert, und liefert seine Ausgabe entsprechend.

chunk_size

Wird der optionale Parameter chunk_size übergeben, dann wird der Puffer nach jedem Ausgabeaufruf geleert, was dazu führt, dass die Länge des Puffers größer oder gleich chunk_size ist. Der Vorgabewert 0 bedeutet, dass die Ausgabefunktion nur aufgerufen wird, wenn der Ausgabepuffer geschlossen wird.

Vor PHP 5.4.0 war der Wert 1 ein Sonderfall, der die Datenblockgröße auf 4096 Bytes festlegte.

flags

Beim Parameter flags handelt es sich um eine Bitmaske, die die Operationen steuert, die mit dem Ausgabepuffer durchgeführt werden können. Vorgabe ist es, zu erlauben, dass Ausgabepuffer bereinigt, geleert und entfernt werden dürfen, was ausdrücklich mit PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE, oder PHP_OUTPUT_HANDLER_STDFLAGS als Abkürzung, eingestellt werden kann.

Jedes Flag steuert den Zugriff auf einen Satz von Funktionen, wie im Folgenden beschrieben:

Konstante | Funktionen
PHP_OUTPUT_HANDLER_CLEANABLE | ob_clean(), ob_end_clean(), und ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE | ob_end_flush(), ob_flush(), und ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE | ob_end_clean(), ob_end_flush(), und ob_get_flush().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Beispiel einer benutzerdefinierten Callback-Funktion

<?php

function callback($buffer)
{
  // ersetzt alle Äpfel mit Birnen
  return (str_replace("Äpfel", "Birnen", $buffer));
}

ob_start("callback");

?>
<html>
<body>
<p>Das ist wie Äpfel mit Birnen zu vergleichen.</p>
</body>
</html>
<?php

ob_end_flush();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<html>
<body>
<p>Das ist wie Birnen mit Birnen zu vergleichen.</p>
</body>
</html>

Beispiel #2 Erzeugen eines nicht löschbaren Ausgabepuffers auf eine Weise, die mit PHP 5.3 und 5.4 kompatibel ist

<?php

if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
  ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^
    PHP_OUTPUT_HANDLER_REMOVABLE);
} else {
  ob_start(null, 0, false);
}

?>

Siehe auch

  • ob_get_contents() - Liefert den Inhalt des Ausgabepuffers
  • ob_end_clean() - Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
  • ob_end_flush() - Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
  • ob_implicit_flush() - Schaltet die implizite Ausgabe ein bzw. aus
  • ob_gzhandler() - ob_start callback function to gzip output buffer
  • ob_iconv_handler() - Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer handler)
  • mb_output_handler() - Callback function converts character encoding in output buffer
  • ob_tidyhandler() - ob_start callback function to repair the buffer


Setzt URL-Rewrite-Variablen

  • « ob_start
  • output_reset_rewrite_vars »
  • PHP Manual
  • Output-Control-Funktionen
  • Setzt URL-Rewrite-Variablen

output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

output_add_rewrite_var — Setzt URL-Rewrite-Variablen

Beschreibung

output_add_rewrite_var ( string $name , string $value ) : bool

Diese Funktion fügt ein Name/Wert-Paar zum URL Rewrite Mechanismus hinzu. Name und Wert werden in der gleichen Art wie die Session-ID als GET-Parameter zu URLs und als versteckte Felder zu Formularen hinzugefügt wenn das transparente URL-Rewriting mit session.use_trans_sid aktiviert ist.

Diese Funktion wird auch über die php.ini Parameter url_rewriter.tags und url_rewriter.hosts gesteuert.

Es ist zu beachten, dass diese Funktion höchstens einmal pro Request erfolgreich aufgerufen werden kann.

Hinweis: Ein Aufruf dieser Funktion aktiviert automatisch die Ausgabepufferung, falls sie nicht schon aktiv ist.

Parameter-Liste

name

Der Variablenname.

value

Der Variablenwert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | Vor PHP 7.1.0 verwendeten Rewrite-Variablen, die durch output_add_rewrite_var() gesetzt wurden, den trans sid Ausgabepuffer des Session-Moduls. Seit PHP 7.1.0 wird ein eigener Ausgabepuffer verwendet; url_rewriter.tags wird nur noch für die Ausgabefunktionen berücksichtigt. url_rewriter.hosts wurde hinzugefügt.

Beispiele

Beispiel #1 output_add_rewrite_var() Beispiel

<?php
output_add_rewrite_var('var', 'value');

// some links
echo '<a href="file.php">link</a>
<a href="http://example.com">link2</a>';

// a form
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';

print_r(ob_list_handlers());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<a href="file.php?var=value">link</a>
<a href="http://example.com">link2</a>

<form action="script.php" method="post">
<input type="hidden" name="var" value="value" />
<input type="text" name="var2" />
</form>

Array
(
    [0] => URL-Rewriter
)

Siehe auch

  • output_reset_rewrite_vars() - Reset URL rewriter values
  • ob_flush() - Leert (sendet) den Ausgabepuffer
  • ob_list_handlers() - List all output handlers in use
  • url_rewriter.tags
  • url_rewriter.hosts
  • session.trans_sid_tags
  • session.trans_sid_hosts


Reset URL rewriter values

  • « output_add_rewrite_var
  • PHP-Optionen/-Informationen »
  • PHP Manual
  • Output-Control-Funktionen
  • Reset URL rewriter values

output_reset_rewrite_vars

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

output_reset_rewrite_vars — Reset URL rewriter values

Beschreibung

output_reset_rewrite_vars ( ) : bool

This function resets the URL rewriter and removes all rewrite variables previously set by the output_add_rewrite_var() function.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | Before PHP 7.1.0, rewrite vars set by output_add_rewrite_var() use the same Session module trans sid output buffer. Since PHP 7.1.0, dedicated output buffer is used and output_reset_rewrite_vars() only removes rewrite vars defined by output_add_rewrite_var().

Beispiele

Beispiel #1 output_reset_rewrite_vars() example

<?php
session_start();
output_add_rewrite_var('var', 'value');

echo '<a href="file.php">link</a>';
ob_flush();

output_reset_rewrite_vars();
echo '<a href="file.php">link</a>';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<a href="file.php?PHPSESSID=xxx&var=value">link</a>
<a href="file.php">link</a>

Siehe auch

  • output_add_rewrite_var() - Setzt URL-Rewrite-Variablen
  • ob_flush() - Leert (sendet) den Ausgabepuffer
  • ob_list_handlers() - List all output handlers in use
  • url_rewriter.tags
  • url_rewriter.hosts
  • session.trans_sid_tags
  • session.trans_sid_hosts


PHP-Optionen und -Informationen

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • PHP-Optionen-/-Informationen-Funktionen
    • assert_options — Setzt oder liefert die Assert-Optionen
    • assert — Prüft ab, ob eine Zusicherung false ist
    • cli_get_process_title — Returns the current process title
    • cli_set_process_title — Sets the process title
    • dl — Lädt eine PHP-Erweiterung (Extension) zur Laufzeit
    • extension_loaded — Prüft ob eine Extension geladen ist
    • gc_collect_cycles — Forces collection of any existing garbage cycles
    • gc_disable — Deactivates the circular reference collector
    • gc_enable — Activates the circular reference collector
    • gc_enabled — Returns status of the circular reference collector
    • gc_mem_caches — Reclaims memory used by the Zend Engine memory manager
    • gc_status — Gets information about the garbage collector
    • get_cfg_var — Ermittelt den Wert einer Konfigurationsoption
    • get_current_user — Liefert den Benutzernamen des Besitzers des aktuellen PHP-Skripts
    • get_defined_constants — Returns an associative array with the names of all the constants and their values
    • get_extension_funcs — Liefert die Namen der Funktionen einer Extension
    • get_include_path — Gets the current include_path configuration option
    • get_included_files — Liefert ein Array mit den Namen der includierten Dateien
    • get_loaded_extensions — Liefert ein Array mit den Namen aller einkompilierten und geladenen Extensions
    • get_magic_quotes_gpc — Ermittelt die aktuelle Konfiguration von magic_quotes_gpc
    • get_magic_quotes_runtime — Ermittelt die aktuelle Konfiguration von magic_quotes_runtime
    • get_required_files — Alias von get_included_files
    • get_resources — Returns active resources
    • getenv — Liefert den Wert einer Umgebungsvariable
    • getlastmod — Uhrzeit der letzten Änderung eines Scripts
    • getmygid — Get PHP script owner's GID
    • getmyinode — Ermittelt den Inode des aktuellen Skripts
    • getmypid — Prozess-Id eines Scripts
    • getmyuid — Zeigt die User-ID des Besitzers eines PHP-Scripts
    • getopt — Gets options from the command line argument list
    • getrusage — Ermittelt den aktuellen Ressourcenverbrauch
    • ini_alter — Alias von ini_set
    • ini_get_all — Gets all configuration options
    • ini_get — Gets the value of a configuration option
    • ini_restore — Restores the value of a configuration option
    • ini_set — Sets the value of a configuration option
    • main — Dummy for main
    • memory_get_peak_usage — Returns the peak of memory allocated by PHP
    • memory_get_usage — Returns the amount of memory allocated to PHP
    • php_ini_loaded_file — Retrieve a path to the loaded php.ini file
    • php_ini_scanned_files — Liefert die Liste von analysierten .ini-Dateien aus einem zusätzlichen ini-Verzeichnis
    • php_sapi_name — Gibt das genutzte Interface zwischen PHP und dem Webserver zurück
    • php_uname — Returns information about the operating system PHP is running on
    • phpcredits — Prints out the credits for PHP
    • phpinfo — Gibt Informationen zur PHP-Konfiguration aus
    • phpversion — Liefert die aktuelle PHP-Version
    • putenv — Setzt den Wert einer Umgebungsvariablen.
    • restore_include_path — Restores the value of the include_path configuration option
    • set_include_path — Setzt die Konfigurationsoption include_path
    • set_time_limit — Beschränkt die maximale Ausführungszeit
    • sys_get_temp_dir — Returns directory path used for temporary files
    • version_compare — Vergleicht zwei Versionsnummern im PHP-Stil
    • zend_thread_id — Returns a unique identifier for the current thread
    • zend_version — Liefert die aktuelle Version der Zend Engine


Einführung

Diese Funktionen erlauben es Ihnen, eine Menge an nützlichen Informationen über PHP selber zu erhalten, z.B. Konfiguration zur Laufzeit, geladene Erweiterungen, Angaben zur Version und vieles mehr. Sie werden auch Funktionen finden, die es Ihnen erlauben, für Ihr laufendes PHP Optionen zu setzten. Die vermutlich bekannteste Funktion von PHP - phpinfo() - finden Sie hier.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Konfigurationsoptionen für PHP Optionen/Info
Name | Standard | Veränderbar | Changelog
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.quiet_eval | "0" | PHP_INI_ALL |
assert.exception | "0" | PHP_INI_ALL | Verfügbar von PHP 7.0.0 an.
enable_dl | "1" | PHP_INI_SYSTEM | Dieses veraltete Feature wird in der Zukunft sicherlich entfernt.
max_execution_time | "30" | PHP_INI_ALL |
max_input_time | "-1" | PHP_INI_PERDIR |
max_input_nesting_level | "64" | PHP_INI_SYSTEM|PHP_INI_PERDIR | Verfügbar von PHP 5.2.3 an.
max_input_vars | 1000 | PHP_INI_PERDIR | Verfügbar von PHP 5.3.9 an.
magic_quotes_gpc | "1" | PHP_INI_PERDIR | Entfernt in PHP 5.4.0.
magic_quotes_runtime | "0" | PHP_INI_ALL | Entfernt in PHP 5.4.0.
zend.enable_gc | "1" | PHP_INI_ALL | Verfügbar von PHP 5.3.0 an.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

assert.active boolean

Aktiviert assert() Auswertung.

assert.bail boolean

Beendet die Ausführung eines Skripts bei fehlgeschlagener Aussage.

assert.warning boolean

Erzeugt ein PHP warning für jede fehlgeschlagene Aussage.

assert.callback string

Benutzerdefinierte Funktion, die bei fehlgeschlagenen Aussagen ausgeführt wird.

assert.quiet_eval boolean

Benutzt die aktuelle Einstellung von error_reporting() während der Überprüfung eines Ausdrucks einer Aussage. Ist diese Einstellung aktiviert, werden wähhrend der Überprüfung keine Fehler angezeigt (implizit error_reporting(0)). Falls deaktiviert, werden Fehler entsprechend der Einstellung von error_reporting() angezeigt.

assert.exception boolean

Erzeugt eine AssertionError Exception für die fehlgeschlagene Assertion.

enable_dl boolean

Sie können das dynamische Laden von PHP Erweiterungen mittels dl() für virtuelle Server oder per Verzeichnis an- und abschalten.

Der Hauptgrund dynmisches Laden abzustellen sind Sicherheitsüberlegungen. Mit dynamischen Laden ist es möglich, alle open_basedir Einschränkungen zu umgehen. Standard ist es, dynamisches Laden zu erlauben.

max_execution_time integer

Legt die maximale Zeit in Sekunden fest, die ein Skript laufen darf, bevor der Parser die Ausführung stoppt. Diese Einstellung hilft zu verhindern, dass schlampig geschriebene Skripte Ihren Server lahmlegen. Der Standardwert für diese Einstellung ist 30 Sekunden. Wird PHP von der Kommandozeile ausgeführt so ist der Vorgabewert 0.

Die maximale Ausführungszeit beeinhaltet keine Systemaufrufe, Streamoperationen, usw. Weitere Details finden Sie bei der set_time_limit() Funktion.

Ihr Webbserver kann andere Timeout-Einstellungen haben die ebenfalls die PHP-Ausführung unterbrechen können. Apache verfügt über eine TimeOut-Direktive und IIS hat eine CGI timeout Funktion. Beide sind als Standardwert auf 300 Sekunden eingestellt. Genauere Informationen finden Sie in der Dokumentation Ihres Webservers.

max_input_time integer

Legt die maximale Zeit in Sekunden fest, die ein Skript verbrauchen darf, um Eingabedaten (wie POST, GET und Dateiuploads) zu verarbeiten. Die Zeitmessung beginnt sobald PHP auf dem Server aufgerufen wird, und endet wenn die Ausführung beginnt. Der Standardwert ist -1, was bedeutet, dass statt dessen max_execution_time verwendet wird. Der Wert 0 bedeutet kein Zeitlimit.

max_input_nesting_level integer

Legt die maximale Verschachtelungtiefe für Eingabevariablen (z.B. $_GET, $_POST) fest.

max_input_vars integer

Wie viele Eingabe-Variablen maximal angenommen werden (dieses Limit wird auf die superglobalen $_GET, $_POST und $_COOKIE separat angewandt). Diese Direktive verhindert die Nutzung von Hashtable Kollisionen für eine Denial of Service Attacke. Wenn mehr Eingabe-Variablen gesendet werden, als mit dieser Direktive erlaubt, wird ein Fehler der Stufe E_WARNING geworfen und weitere Eingabe-Variablen werden nicht angenommen.

magic_quotes_gpc boolean
Warnung

Dieses Feature wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und ist seit PHP 5.4.0 ENTFERNT (entfernt).

Legt die magic_quotes Einstellungen für GPC (Get/Post/Cookie) fest. Ist diese Einstellung auf on, werden alle ' (einzelne Anführungszeichen), " (doppelte Anführungszeichen), \ (Backslash) und NUL's automatisch mit einem Backslash geschützt.

Siehe auch get_magic_quotes_gpc()

magic_quotes_runtime boolean
Warnung

Dieses Feature wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und ist seit PHP 5.4.0 ENTFERNT (entfernt).

Falls magic_quotes_runtime aktiviert ist, werden die meisten Funktionen die Daten von einer beliebigen externen Quelle zurückgeben, inklusive Datenbanken und Textdateien, die in den Daten enthaltenen Anführungszeichen mit einem Backslash geschützt zurückgeben.

Funktionen die von magic_quotes_runtime betroffen sind (ohne die Funktionen aus PECL):

  • get_meta_tags()
  • file_get_contents()
  • file()
  • fgets()
  • fwrite()
  • fread()
  • fputcsv()
  • stream_socket_recvfrom()
  • exec()
  • system()
  • passthru()
  • stream_get_contents()
  • bzread()
  • gzfile()
  • gzgets()
  • gzwrite()
  • gzread()
  • phar_file_get_contents()
  • exif_read_data()
  • dba_insert()
  • dba_replace()
  • dba_fetch()
  • ibase_fetch_row()
  • ibase_fetch_assoc()
  • ibase_fetch_object()
  • mssql_fetch_row()
  • mssql_fetch_object()
  • mssql_fetch_array()
  • mssql_fetch_assoc()
  • mysqli_fetch_row()
  • mysqli_fetch_array()
  • mysqli_fetch_assoc()
  • mysqli_fetch_object()
  • pg_fetch_row()
  • pg_fetch_assoc()
  • pg_fetch_array()
  • pg_fetch_object()
  • pg_fetch_all()
  • pg_select()
  • sybase_fetch_object()
  • sybase_fetch_array()
  • sybase_fetch_assoc()
  • SplFileObject::fgets()
  • SplFileObject::fgetcsv()
  • SplFileObject::fwrite()

zend.enable_gc boolean

Aktiviert bzw. deaktiviert die Speicherbereinigung zirkulär abhängiger Referenzen.


Vordefinierte Konstanten

Die aufgelisteten Konstanten stehen immer zur Verfügung, da sie zum Grundbestand von PHP gehören.

Vordefinierte Konstanten für phpcredits()
Konstante | Wert | Beschreibung
CREDITS_GROUP | 1 | Eine Liste der Kernentwickler
CREDITS_GENERAL | 2 | Generelle Credits: Sprachentwurf und -konzept, PHP-Autoren und SAPI-Module.
CREDITS_SAPI | 4 | Eine Liste der Server-API-Module für PHP und deren Autoren.
CREDITS_MODULES | 8 | Eine Liste der Erweiterungsmodule für PHP und deren Autoren.
CREDITS_DOCS | 16 | Die Credits für das Documentationsteam.
CREDITS_FULLPAGE | 32 | Wird üblicherweise in Verbindung mit den anderen Konstanten verwendet. Gibt an, dass eine komplette, eigenständige HTML-Seite ausgegeben wird, die alle Informationen enthält, die mit anderen Konstanten angefordert wurden.
CREDITS_QA | 64 | Die Credits für das Qualitätssicherungsteam.
CREDITS_ALL | -1 | Alle Credits. Dies entspricht der Angabe von: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE. Eine komplette, eigenständige HTML-Seite mit den entsprechenden Tags wird erzeugt und ausgegeben. Das ist der Standardwert.
phpinfo()-Konstanten
Konstante | Wert | Beschreibung
INFO_GENERAL | 1 | Die Konfigurationsangaben, php.ini Speicherort, Builddatum, Webserver, Betriebssystem und mehr.
INFO_CREDITS | 2 | PHP-Credits. Siehe auch phpcredits().
INFO_CONFIGURATION | 4 | Gegenwärtige lokale und Master-Werte für PHP-Einstellungen. Siehe auch ini_get().
INFO_MODULES | 8 | Geladene Module und ihre entsprechenden Einstellungen.
INFO_ENVIRONMENT | 16 | Informationen über Umgebungsvariablen, die auch in $_ENV zur Verfügung stehen.
INFO_VARIABLES | 32 | Zeigt alle vordefinierten Variablen von EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | PHP-Lizenz-Informationen. Siehe auch die » Lizenz-FAQ.
INFO_ALL | -1 | Zeigt alle oben genannten Einträge. Das ist der Standardwert.
INI Konstanten
Konstante | Wert | Beschreibung
INI_USER | 1 | Nicht verwendet
INI_PERDIR | 2 | Nicht verwendet
INI_SYSTEM | 4 | Nicht verwendet
INI_ALL | 7 | Nicht verwendet

Assert-Konstantent; diese Werte werden verwendet, um die Assertion-Optionen in assert_options() anzugeben.

assert() Konstanten
Konstante | INI-Option | Beschreibung
ASSERT_ACTIVE | assert.active | Aktiviere assert() Auswertung.
ASSERT_CALLBACK | assert.callback | Callback, der bei fehlgeschlagenen Assertions aufgerufen wird.
ASSERT_BAIL | assert.bail | Brich Ausführung bei fehlgeschlagenen Assertions ab.
ASSERT_WARNING | assert.warning | Löst eine PHP-Warnung für jede fehlgeschlagene Assertion aus.
ASSERT_QUIET_EVAL | assert.quiet_eval | Deaktiviere error_reporting während der Auswertung von Assertion-Ausdrücken.

Die folgenden Konstanten sind nur verfügbar, wenn das Host-Betriebssystem Windows ist; sie liefern unterschiedliche Versionsinformationen, so dass es möglich ist, verschiedene Features zu erkennen, und sie zu verwenden. Sind sind alle von PHP 5.3.0 an verfügbar.

Windows spezifische Konstanten
Konstante | Beschreibung
PHP_WINDOWS_VERSION_MAJOR | Die Hauptversion von Windows, also entweder 4 (NT4/Me/98/95), 5 (XP/2003 R2/2003/2000) oder 6 (Vista/2008/7/8/8.1).
PHP_WINDOWS_VERSION_MINOR | Die Nebenversion von Windows, also entweder 0 (Vista/2008/2000/NT4/95), 1 (XP), 2 (2003 R2/2003/XP x64), 10 (98) oder 90 (ME).
PHP_WINDOWS_VERSION_BUILD | Die Windows-Buildnummer (beispielsweise ist Windows Vista mit SP1 Build 6001)
PHP_WINDOWS_VERSION_PLATFORM | Die Plattform auf der PHP ausgeführt wird, also 2 unter Windows Vista/XP/2000/NT4, Server 2008/2003 und unter Windows ME/98/95 ist dieser Wert 1.
PHP_WINDOWS_VERSION_SP_MAJOR | Die Hauptversion des installierten Service-Pack; dieser Wert ist 0, wenn kein Service-Pack installiert ist. Beispielsweise ist dieser Wert unter Windows XP mit Service-Pack 3 3
PHP_WINDOWS_VERSION_SP_MINOR | Die Nebenversion des installierten Service-Pack; dieser Wert ist 0, wenn kein Service-Pack installiert ist.
PHP_WINDOWS_VERSION_SUITEMASK | Die Suitemask ist eine Bitmaske, die angibt, ob verschiedene Windows-Features installiert sind. In der Tabelle weiter unten werden die möglichen Bitfeldwerte angeführt.
PHP_WINDOWS_VERSION_PRODUCTTYPE | Diese enthält den Wert, der verwendet wird, um die PHP_WINDOWS_NT_* Konstanten zu bestimmen. Dieser Wert kann eine der PHP_WINDOWS_NT_* Konstanten sein, die den Plattformtyp anzeigen.
PHP_WINDOWS_NT_DOMAIN_CONTROLLER | Es handelt sich um einen Domain-Controller
PHP_WINDOWS_NT_SERVER | Es handelt sich um ein Serversystem (z.B. Server 2008/2003/2000); es ist zu beachten, dass Domain-Controller als PHP_WINDOWS_NT_DOMAIN_CONTROLLER gemeldet werden.
PHP_WINDOWS_NT_WORKSTATION | Es handelt sich um ein Arbeitsplatzsystem (z.B. Vista/XP/2000/NT4)

Diese Tabelle listet eine Reihe von Features, die unter Verwendung der PHP_WINDOWS_VERSION_SUITEMASK Bitmaske geprüft werden können.

Windows Suitemask Bitfelder
Bits | Beschreibung
0x00000004 | Die Microsoft BackOffice Komponenten sind installiert.
0x00000400 | Windows Server 2003, Web Edition ist installiert.
0x00004000 | Windows Server 2003, Compute Cluster Edition ist installiert.
0x00000080 | Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition oder Windows 2000 Datacenter Server ist installiert.
0x00000002 | Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition, Windows 2000 Advanced Server, oder Windows NT Server 4.0 Enterprise Edition ist installiert.
0x00000040 | Windows XP Embedded ist installiert.
0x00000200 | Windows Vista Home Premium, Windows Vista Home Basic, oder Windows XP Home Edition ist installiert.
0x00000100 | Remote Desktop wird unterstützt, aber nur eine interaktive Sitzung ist erlaubt. Dieser Wert ist gesetzt, falls das System nicht im Anwendungserver-Modus läuft.
0x00000001 | Microsoft Small Business Server war einst auf dem System installiert, wurde aber möglicherweise auf eine andere Windows-Version aktualisiert.
0x00000020 | Microsoft Small Business Server ist mit der restriktiven Client-Lizenz installiert.
0x00002000 | Windows Storage Server 2003 R2 oder Windows Storage Server 2003 ist installiert.
0x00000010 | Terminal-Dienste sind installiert. Dieser Wert ist immer gesetzt. Ist dieser Wert gesetzt, aber 0x00000100 nicht, dann läuft das System im Anwendungsservermodus.
0x00008000 | Windows Home Server ist installiert.


PHP-Optionen-/-Informationen-Funktionen

Inhaltsverzeichnis

  • assert_options — Setzt oder liefert die Assert-Optionen
  • assert — Prüft ab, ob eine Zusicherung false ist
  • cli_get_process_title — Returns the current process title
  • cli_set_process_title — Sets the process title
  • dl — Lädt eine PHP-Erweiterung (Extension) zur Laufzeit
  • extension_loaded — Prüft ob eine Extension geladen ist
  • gc_collect_cycles — Forces collection of any existing garbage cycles
  • gc_disable — Deactivates the circular reference collector
  • gc_enable — Activates the circular reference collector
  • gc_enabled — Returns status of the circular reference collector
  • gc_mem_caches — Reclaims memory used by the Zend Engine memory manager
  • gc_status — Gets information about the garbage collector
  • get_cfg_var — Ermittelt den Wert einer Konfigurationsoption
  • get_current_user — Liefert den Benutzernamen des Besitzers des aktuellen PHP-Skripts
  • get_defined_constants — Returns an associative array with the names of all the constants and their values
  • get_extension_funcs — Liefert die Namen der Funktionen einer Extension
  • get_include_path — Gets the current include_path configuration option
  • get_included_files — Liefert ein Array mit den Namen der includierten Dateien
  • get_loaded_extensions — Liefert ein Array mit den Namen aller einkompilierten und geladenen Extensions
  • get_magic_quotes_gpc — Ermittelt die aktuelle Konfiguration von magic_quotes_gpc
  • get_magic_quotes_runtime — Ermittelt die aktuelle Konfiguration von magic_quotes_runtime
  • get_required_files — Alias von get_included_files
  • get_resources — Returns active resources
  • getenv — Liefert den Wert einer Umgebungsvariable
  • getlastmod — Uhrzeit der letzten Änderung eines Scripts
  • getmygid — Get PHP script owner's GID
  • getmyinode — Ermittelt den Inode des aktuellen Skripts
  • getmypid — Prozess-Id eines Scripts
  • getmyuid — Zeigt die User-ID des Besitzers eines PHP-Scripts
  • getopt — Gets options from the command line argument list
  • getrusage — Ermittelt den aktuellen Ressourcenverbrauch
  • ini_alter — Alias von ini_set
  • ini_get_all — Gets all configuration options
  • ini_get — Gets the value of a configuration option
  • ini_restore — Restores the value of a configuration option
  • ini_set — Sets the value of a configuration option
  • main — Dummy for main
  • memory_get_peak_usage — Returns the peak of memory allocated by PHP
  • memory_get_usage — Returns the amount of memory allocated to PHP
  • php_ini_loaded_file — Retrieve a path to the loaded php.ini file
  • php_ini_scanned_files — Liefert die Liste von analysierten .ini-Dateien aus einem zusätzlichen ini-Verzeichnis
  • php_sapi_name — Gibt das genutzte Interface zwischen PHP und dem Webserver zurück
  • php_uname — Returns information about the operating system PHP is running on
  • phpcredits — Prints out the credits for PHP
  • phpinfo — Gibt Informationen zur PHP-Konfiguration aus
  • phpversion — Liefert die aktuelle PHP-Version
  • putenv — Setzt den Wert einer Umgebungsvariablen.
  • restore_include_path — Restores the value of the include_path configuration option
  • set_include_path — Setzt die Konfigurationsoption include_path
  • set_time_limit — Beschränkt die maximale Ausführungszeit
  • sys_get_temp_dir — Returns directory path used for temporary files
  • version_compare — Vergleicht zwei Versionsnummern im PHP-Stil
  • zend_thread_id — Returns a unique identifier for the current thread
  • zend_version — Liefert die aktuelle Version der Zend Engine


Setzt oder liefert die Assert-Optionen

  • « PHP-Optionen-/-Informationen-Funktionen
  • assert »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Setzt oder liefert die Assert-Optionen

assert_options

(PHP 4, PHP 5, PHP 7, PHP 8)

assert_options — Setzt oder liefert die Assert-Optionen

Beschreibung

assert_options ( int $what , mixed $value = ? ) : mixed

assert_options() ermöglicht es, die verschiedenen assert() Optionen zu setzen, oder abzufragen, welche Optionen gesetzt sind.

Hinweis: Von PHP 7.0.0 an wird die Verwendung von assert_options() nicht mehr empfohlen; statt dessen sollten die php.ini Direktiven zend.assertions und assert.exception durch ini_set() und ini_get() gesetzt bzw. gelesen werden.

Parameter-Liste

what

assert Optionen
Option | Parameter in .ini-Datei | Standardwert | Beschreibung
ASSERT_ACTIVE | assert.active | 1 | assert() Überprüfung aktivieren
ASSERT_WARNING | assert.warning | 1 | gibt eine PHP-Warnung für jede fehlgeschlagene Überprüfung aus
ASSERT_BAIL | assert.bail | 0 | Beendet das Programm bei fehlgeschlagener Überprüfung
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | Unterdrückt die Fehlerausgabe während der Überprüfung
ASSERT_CALLBACK | assert_callback | (null) | Funktion, die bei fehlgeschlagener Überprüfung aufgerufen wird

value

Ein optionaler neuer Wert für die Option.

Die Rückruffunktion, die per ASSERT_CALLBACK oder assert.callback gesetzt wurde, sollte folgende Signatur haben:

assert_callback ( string $file , int $line , string $assertion , string $description = ? ) : void
file
Die Datei, in der assert() aufgerufen wurde.
line
Die Zeile, in der assert() aufgerufen wurde.
assertion
Die Zusicherung, die an assert() übergeben wurde, zu einer Zeichenkette konvertiert.
description
Die Beschreibung, die an assert() übergeben wurde.

Die Übergabe einer leeren Zeichenkette als value setzt den Assert-Rückruf zurück.

Rückgabewerte

assert_options() gibt die Einstellung der gesetzten Optionen zurück oder liefert den Wert false bei Auftreten eines Fehlers zurück.

Beispiele

Beispiel #1 assert_options() Beispiel

<?php
// Das ist unsere Funktion zur Behandlung von
// fehlgeschlagenen Überprüfungen
function assert_failure($file, $line, $assertion, $message)
{
    echo "Die Zusicherung $assertion in $file in Zeile $line schlug fehl: $message";
}

// Das ist unsere Testfunktion
function test_assert($parameter)
{
    assert(is_bool($parameter));
}

// Wir setzen unsere Überprüfungsoptionen
assert_options(ASSERT_ACTIVE,   true);
assert_options(ASSERT_BAIL,     true);
assert_options(ASSERT_WARNING,  false);
assert_options(ASSERT_CALLBACK, 'assert_failure');

// Wir führen eine Überprüfung durch, die fehlschlägt
test_assert(1);

// Dies wird nie erreicht, weil ASSERT_BAIL
// true ist
echo 'Unerreicht';
?>

Siehe auch

  • assert() - Prüft ab, ob eine Zusicherung false ist


Prüft ab, ob eine Zusicherung false ist

  • « assert_options
  • cli_get_process_title »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Prüft ab, ob eine Zusicherung false ist

assert

(PHP 4, PHP 5, PHP 7, PHP 8)

assert — Prüft ab, ob eine Zusicherung false ist

Beschreibung

PHP 5 und 7

assert ( mixed $assertion , string $description = ? ) : bool

PHP 7

assert ( mixed $assertion , Throwable $exception = ? ) : bool

assert() überprüft den übergebenen Parameter assertion und verfährt entsprechend, falls die in assertion spezifizierte Bedingung false ist.

Traditionelle Zusicherungen (PHP 5 und 7)

Wird der Parameter assertion als String übergeben, so wird der String als PHP-Code interpretiert. Vorteile der Übergabe des Parameters assertion als Zeichenkette sind geringerer Mehraufwand, wenn die Zusicherungsprüfung deaktiviert ist, und dass die ausgegebene Meldung die über assertion übergebene Zeichenkette enthält. Wird eine boolesche Bedingung an assertion übergeben, wird diese nicht als Parameter an die Zusicherungsfunktion, die möglicherweise per assert_options() Funktion definiert wurde, weitergegeben. Die Bedingung wird vor dem Aufruf der Handler-Funktion in eine Zeichenkette umgewandelt, und der boolesche Wert false wird dabei zur leeren Zeichenkette konvertiert.

assert() sollte nur zum Debuggen des Codes verwendet werden. Es kann für Plausibilitätsprüfungen verwendet werden, um auf Bedingungen zu prüfen, die immer true sein sollten, und die andernfalls Programmierfehler anzeigen, oder um auf die Verfügbarkeit bestimmter Merkmale, wie Erweiterungsfunktionen oder bestimmte Systembeschränkungen und Eigenschaften, zu prüfen.

Zusicherungen sollten nicht für normale Laufzeitoperationen wie die Überprüfung von Eingaben verwendet werden. Als Faustregel sollte der Code immer korrekt funktionieren können, auch wenn die Zusicherungsüberprüfung deaktiviert ist.

Die Optionen für die assert() können über die Funktion assert_options() oder durch ini Settings, die in der Handbuchseite dieser Funktion beschrieben werden, eingestellt werden.

Die Funktion assert_options() und/oder die ASSERT_CALLBACK Direktive ermöglicht eine Funktion anzugeben, die bei fehlschlagender Überprüfung aufgerufen wird.

Callback-Funktionen in Zusammenhang mit assert() sind nützlich, um beispielsweise automatisierte Tests durchzuführen, da die Callback-Funktion über die Information verfügt, von welcher Stelle sie aufgerufen wurde. Auch wenn diese Information mit anderen Methoden zugänglich ist, macht es die Verwendung von Zusicherungen viel schneller und leichter!

Die Callback-Funktion wird mit drei Parametern aufgerufen. Der erste Parameter enthält den Namen des Scripts, in dem die Überprüfung statt fand, der zweite Parameter die Zeilennummer, und der dritte Paramter enthält die über assertion angegebene Bedingung (wobei Literale wie 1 oder "zwei" nicht übergeben werden). Nutzer von PHP 5.4.8 und höher können ebenfalls ein viertes optionales Argument angeben, das die description, die an assert() übergeben wurde, enthält, wenn diese gesetzt wurde.

Erwartungen (nur PHP 7)

assert() ist in PHP 7 ein Sprachkonstrukt, das die Definition von Annahmen ermöglicht: Zusicherungen, die in Entwicklungs- und Testumgebungen wirken, aber so optimiert werden, dass sie in Produktionsumgebungen keinen Mehraufwand verursachen.

Während assert_options() noch immer verwendet werden kann, um das oben beschriebene Verhalten aus Gründen der Abwärtskompatibilität zu steuern, sollte Code, der nur für PHP 7 geschrieben wird, die beiden neuen Konfigurationsoptionen zur Steuerung von assert() verwenden, und nicht assert_options() aufrufen.

PHP 7 Konfigurationsdirektiven für assert()
Direktive Vorgabewert Mögliche Werte
zend.assertions 1
  • 1: erzeugt Code und führt ihn aus (Entwicklungsmodus)
  • 0: erzeugt Code, aber führt ihn zur Laufzeit nicht aus
  • -1: erzeugt keinen Code (Produktionsmodus)
assert.exception 0
  • 1: löst eine Exception aus, wenn die Zusicherung fehlschlägt; entweder das Objekt, das als exception übergeben wurde, oder ein neues AssertError Objekt, wenn exception nicht angegeben wurde.
  • 0: verwendet oder erzeugt eine Throwable Ausnahme wie oben beschrieben, aber erzeugt nur eine Warnung, die auf diesem Objekt basiert, anstatt eine Exception auszulösen (kompatibel zum Verhalten unter PHP 5).

Parameter-Liste

assertion

Die Zusicherung. In PHP 5 muss dies entweder ein auszuwertender string sein, oder ein zu testender boolean Ausdruck. In PHP 7 kann dies ebenso ein beliebiger Ausdruck, der einen Wert zurückgibt, sein, der ausgeführt und dessen Ergebnis verwendet wird, um anzuzeigen, ob die Zusicherung erfolgreich war oder fehlschlug.

Warnung

Die Verwendung eines string als assertion ist von PHP 7.2 an MISSBILLIGT.

description

Eine optionale Beschreibung, die in der Fehlermeldung enthalten sein wird, wenn die assertion fehlschlägt. Von PHP 7.0.0 an wird, falls keine Beschreibung angegeben wurde, eine Standardbeschreibung, die gleich dem Quellcode des Aufrufs von assert() ist, bereitgestellt.

exception

In PHP 7 kann der zweite Parameter ein Throwable Objekt anstatt eines beschreibenden strings sein, so dass dieses Objekt als Exception geworfen wird, wenn die Zusicherung fehlschlägt und die assert.exception Konfigurationsdirektive aktiviert ist.

Rückgabewerte

false wenn die Zusicherung nicht erfüllt ist, true anderfalls.

Changelog

Version | Beschreibung
7.2.0 | Die Verwendung eines string als assertion wurde missbilligt. Dies erzeugt nun einen E_DEPRECATED Hinweis, wenn sowohl assert.active als auch zend.assertions auf 1 gesetzt sind.
7.0.0 | assert() ist nun ein Sprachkonstrukt und keine Funktion mehr. assertion kann nun ein Ausdruck sein. Der zweite Parameter wird nun entweder als exception interpretiert (wenn ein Throwable Objekt übergeben wird), oder als description, was ab PHP 5.4.8 unterstützt wird.

Beispiele

Traditionelle Zusicherungen (PHP 5 und 7)

Beispiel #1 Überprüfung mit benutzerdefinierter Funktion

<?php
// Zusicherungen aktivieren und stumm schalten
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);

// Eine Handlerfunktion erzeugen
function my_assert_handler($file, $line, $code)
{
    echo "<hr>Zusicherung fehlgeschlagen:
        Datei '$file'<br />
        Zeile '$line'<br />
        Code '$code'<br /><hr />";
}

// Den Callback definieren
assert_options(ASSERT_CALLBACK, 'my_assert_handler');

// Eine fehlschlagende Zusicherung
assert('mysql_query("")');
?>

Beispiel #2 Verwendung eines benutzerdefinierten Handlers um eine Beschreibung anzuzeigen

<?php
// Zusicherungen aktivieren und stumm schalten
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);

// Eine Handlerfunktion erzeugen
function my_assert_handler($file, $line, $code, $desc = null)
{
    echo "Zusicherung fehlgeschlagen in $file:$line: $code";
    if ($desc) {
        echo ": $desc";
    }
    echo "\n";
}

// Den Callback definieren
assert_options(ASSERT_CALLBACK, 'my_assert_handler');

// Fehlschlagende Zusicherungen
assert('2 < 1');
assert('2 < 1', 'Zwei ist kleiner als Eins');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

 Zusicherung fehlgeschlagen in test.php:21: 2 < 1
 Zusicherung fehlgeschlagen in test.php:22: 2 < 1: Zwei ist kleiner als Eins

Annahmen (nur PHP 7)

Beispiel #3 Annahmen ohne benutzerdefinierte Exception

<?php
assert(true == false);
echo 'Hi!';
?>

Ist zend.assertions auf 0 gesetzt, gibt das obige Beispiel aus:

Hi!

Ist zend.assertions auf 1 und assert.exception auf 0 gesetzt, gibt das obige Beispiel aus:

Warning: assert(): assert(true == false) failed in - on line 2
Hi!

Ist zend.assertions auf 1 und assert.exception auf 1 gesetzt, gibt das obige Beispiel aus:

Fatal error: Uncaught AssertionError: assert(true == false) in -:2
Stack trace:
#0 -(2): assert(false, 'assert(true == ...')
#1 {main}
  thrown in - on line 2

Beispiel #4 Annahmen mit einer benutzerdefinierten Exception

<?php
class CustomError extends AssertionError {}

assert(true == false, new CustomError('True ist nicht false!'));
echo 'Hi!';
?>

Ist zend.assertions auf 0 gesetzt, gibt das obige Beispiel aus:

Hi!

Ist zend.assertions auf 1 und assert.exception auf 0 gesetzt, gibt das obige Beispiel aus:

Warning: assert(): CustomError: True ist nicht false! in -:4
Stack trace:
#0 {main} failed in - on line 4
Hi!

Ist zend.assertions auf 1 und assert.exception auf 1 gesetzt, gibt das obige Beispiel aus:

Fatal error: Uncaught CustomError: True ist nicht false! in -:4
Stack trace:
#0 {main}
  thrown in - on line 4

Siehe auch

  • assert_options() - Setzt oder liefert die Assert-Optionen


Returns the current process title

  • « assert
  • cli_set_process_title »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Returns the current process title

cli_get_process_title

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

cli_get_process_title — Returns the current process title

Beschreibung

cli_get_process_title ( ) : string|null

Returns the current process title, as set by cli_set_process_title(). Note that this may not exactly match what is shown in ps or top, depending on your operating system.

This function is available only in CLI mode.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return a string with the current process title or null on error.

Fehler/Exceptions

An E_WARNING will be generated if the operating system is unsupported.

Beispiele

Beispiel #1 cli_get_process_title() example

<?php
echo "Process title: " . cli_get_process_title() . "\n";
?>

Siehe auch

  • cli_set_process_title() - Sets the process title


Sets the process title

  • « cli_get_process_title
  • dl »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Sets the process title

cli_set_process_title

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

cli_set_process_title — Sets the process title

Beschreibung

cli_set_process_title ( string $title ) : bool

Sets the process title visible in tools such as top and ps. This function is available only in CLI mode.

Parameter-Liste

title

The new title.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

An E_WARNING will be generated if the operating system is unsupported.

Beispiele

Beispiel #1 cli_set_process_title() example

<?php
$title = "My Amazing PHP Script";
$pid = getmypid(); // you can use this to see your process title in ps

if (!cli_set_process_title($title)) {
    echo "Unable to set process title for PID $pid...\n";
    exit(1);
} else {
    echo "The process title '$title' for PID $pid has been set for your process!\n";
    sleep(5);
}
?>

Siehe auch

  • cli_get_process_title() - Returns the current process title
  • setproctitle() - Set the process title


Lädt eine PHP-Erweiterung (Extension) zur Laufzeit

  • « cli_set_process_title
  • extension_loaded »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Lädt eine PHP-Erweiterung (Extension) zur Laufzeit

dl

(PHP 4, PHP 5, PHP 7, PHP 8)

dl — Lädt eine PHP-Erweiterung (Extension) zur Laufzeit

Beschreibung

dl ( string $library ) : bool

Lädt die mittels dem Parameter library angegebene PHP-Erweiterung.

Verwenden Sie extension_loaded() um zu testen, ob die gewünschte Erweiterung bereits verfügbar ist oder nicht. Dies funktioniert sowohl bei eingebauten, als auch bei dynamisch geladenen Erweiterungen (entweder durch php.ini, oder mittels dl()).

Warnung

Diese Funktion wurde von den meisten SAPIs in PHP 5.3.0 entfernt, und von PHP-FPM in PHP 7.0.0.

Parameter-Liste

library

Dieser Parameter ist nur der Dateiname der zu ladenden Erweiterung (Extension), welcher von Ihrer Plattform abhängig ist. Z.B. würde die Extension sockets (wenn als shared module kompiliert, nicht standardmäßig!) auf Unix Plattformen sockets.so, und auf Windows Plattformen php_sockets.dll heißen.

Das Verzeichnis, von wo aus die Erweiterung geladen wird, hängt von Ihrer Plattform ab:

Windows - Wenn nicht explizit in der php.ini angegeben, wird die Erweiterung standardmäßig von c:\php5\ geladen.

Unix - Wenn nicht explizit in der php.ini angegeben, hängt das standardmäßige Verzeichnis ab von:

  • ob PHP mit --enable-debug erstellt wurde oder nicht
  • ob PHP mit (experimentellem) ZTS (Zend Thread Safety) Unterstützung erstellt wurde oder nicht
  • der aktuellen internen ZEND_MODULE_API_NO (Zend interne Modul API Nummer, welche im Grunde das Datum der letzten größeren Modul API Änderung darstellt, z.B. 20010901).
Das obige in Betracht gezogen, ist das standardmäßige Verzeichnis <php-install-directory>/lib/php/extension/<debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, z.B. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 oder /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Ist die Funktionalität des Ladens von Modulen nicht verfügbar, oder wurde sie deaktiviert (durch Deaktivieren von enable_dl in der php.ini), wird ein E_ERROR ausgegeben, und die Ausführung gestoppt. Scheitert dl() weil die angegebene Erweiterung nicht geladen werden konnte, wird zusätzlich zu false eine E_WARNING Meldung ausgegeben.

Beispiele

Beispiel #1 dl() Beispiele

<?php
// Beispiel für das Laden einer Extension je nach Betriebssystem
if (!extension_loaded('sqlite')) {
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        dl('php_sqlite.dll');
    } else {
        dl('sqlite.so');
    }
}

// Oder unter Verwendung der PHP_SHLIB_SUFFIX Konstante
if (!extension_loaded('sqlite')) {
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

Anmerkungen

Hinweis:

dl() wird nicht unterstützt, wenn PHP mit ZTS-Unterstützung erstellt wurde. Statt dessen müssen die Direktiven zum Laden von Extensions verwendet werden.

Hinweis:

dl() unterscheidet auf Unix-Plattformen zwischen Groß- und Kleinschreibung.

Siehe auch

  • Direktiven zum Laden von Extensions
  • extension_loaded() - Prüft ob eine Extension geladen ist


Prüft ob eine Extension geladen ist

  • « dl
  • gc_collect_cycles »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Prüft ob eine Extension geladen ist

extension_loaded

(PHP 4, PHP 5, PHP 7, PHP 8)

extension_loaded — Prüft ob eine Extension geladen ist

Beschreibung

extension_loaded ( string $name ) : bool

Prüft ob eine Extension geladen ist.

Parameter-Liste

name

Der Name der Extension. Dieser Parameter ist Groß-/Kleinschreibungsunabhängig.

Eine Liste der Namen verschiedener Extensions finden Sie in der Ausgabe von phpinfo() oder Sie können das CGI oder CLI Binary mit der -m Option aufrufen:

$ php -m
[PHP Modules]
xml
tokenizer
standard
sockets
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

Rückgabewerte

Gibt true zurück wenn die Extension mit dem gewünschten Namen geladen ist, sonst false.

Beispiele

Beispiel #1 extension_loaded() Beispiel

<?php
if (!extension_loaded('gd')) {
    if (!dl('gd.so')) {
        exit;
    }
}
?>

Siehe auch

  • get_loaded_extensions() - Liefert ein Array mit den Namen aller einkompilierten und geladenen Extensions
  • get_extension_funcs() - Liefert die Namen der Funktionen einer Extension
  • phpinfo() - Gibt Informationen zur PHP-Konfiguration aus
  • dl() - Lädt eine PHP-Erweiterung (Extension) zur Laufzeit
  • function_exists() - Falls die angegebene Funktion definiert ist, wird true zurück gegeben


Forces collection of any existing garbage cycles

  • « extension_loaded
  • gc_disable »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Forces collection of any existing garbage cycles

gc_collect_cycles

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gc_collect_cycles — Forces collection of any existing garbage cycles

Beschreibung

gc_collect_cycles ( ) : int

Forces collection of any existing garbage cycles.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns number of collected cycles.

Siehe auch

  • Garbage Collection


Deactivates the circular reference collector

  • « gc_collect_cycles
  • gc_enable »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Deactivates the circular reference collector

gc_disable

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gc_disable — Deactivates the circular reference collector

Beschreibung

gc_disable ( ) : void

Deactivates the circular reference collector, setting zend.enable_gc to 0.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Garbage Collection


Activates the circular reference collector

  • « gc_disable
  • gc_enabled »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Activates the circular reference collector

gc_enable

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gc_enable — Activates the circular reference collector

Beschreibung

gc_enable ( ) : void

Activates the circular reference collector, setting zend.enable_gc to 1.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Garbage Collection


Returns status of the circular reference collector

  • « gc_enable
  • gc_mem_caches »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Returns status of the circular reference collector

gc_enabled

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gc_enabled — Returns status of the circular reference collector

Beschreibung

gc_enabled ( ) : bool

Returns status of the circular reference collector.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the garbage collector is enabled, false otherwise.

Beispiele

Beispiel #1 A gc_enabled() example

<?php
if(gc_enabled()) gc_collect_cycles();
?>

Siehe auch

  • Garbage Collection


Reclaims memory used by the Zend Engine memory manager

  • « gc_enabled
  • gc_status »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Reclaims memory used by the Zend Engine memory manager

gc_mem_caches

(PHP 7, PHP 8)

gc_mem_caches — Reclaims memory used by the Zend Engine memory manager

Beschreibung

gc_mem_caches ( ) : int

Reclaims memory used by the Zend Engine memory manager.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of bytes freed.

Siehe auch

  • Garbage Collection


Gets information about the garbage collector

  • « gc_mem_caches
  • get_cfg_var »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Gets information about the garbage collector

gc_status

(PHP 7 >= 7.3.0, PHP 8)

gc_status — Gets information about the garbage collector

Beschreibung

gc_status ( ) : array

Gets information about the current state of the garbage collector.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an associative array with the following elements:

  • "runs"
  • "collected"
  • "threshold"
  • "roots"

Beispiele

Beispiel #1 gc_status() Usage

<?php

// create object tree that needs gc collection
$a = new stdClass();
$a->b = [];
for ($i = 0; $i < 100000; $i++) {
    $b = new stdClass();
    $b->a = $a;
    $a->b[] = $b;
}
unset($a);
unset($b);
gc_collect_cycles();

var_dump(gc_status());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(4) {
  ["runs"]=>
  int(5)
  ["collected"]=>
  int(100002)
  ["threshold"]=>
  int(50001)
  ["roots"]=>
  int(0)
}

Siehe auch

  • Garbage Collection


Ermittelt den Wert einer Konfigurationsoption

  • « gc_status
  • get_current_user »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Ermittelt den Wert einer Konfigurationsoption

get_cfg_var

(PHP 4, PHP 5, PHP 7, PHP 8)

get_cfg_var — Ermittelt den Wert einer Konfigurationsoption

Beschreibung

get_cfg_var ( string $option ) : mixed

Ermittelt den aktuellen Wert der Konfigurationsoption option.

Diese Funktion gibt keine Konfigurationsinformationen zurück die bereits bei der Kompilation von PHP oder über Apache-Konfigurationsdateien gesetzt wurden.

Um zu prüfen ob das System eine Konfigurationsdatei benutzt, können Sie versuchen den Wert der cfg_file_path Einstellung abzufragen. Wenn dieser verfügbar ist wird eine Konfigurationsdatei genutzt.

Parameter-Liste

option

Der Name der Konfigurationsvariable.

Rückgabewerte

Gibt den aktuellen Wert der mit option angegebenen Konfigurationsvariable zurück. Tritt ein Fehler auf so wird false zurückgegeben.

Siehe auch

  • ini_get() - Gets the value of a configuration option
  • ini_get_all() - Gets all configuration options


Liefert den Benutzernamen des Besitzers des aktuellen PHP-Skripts

  • « get_cfg_var
  • get_defined_constants »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Liefert den Benutzernamen des Besitzers des aktuellen PHP-Skripts

get_current_user

(PHP 4, PHP 5, PHP 7, PHP 8)

get_current_user — Liefert den Benutzernamen des Besitzers des aktuellen PHP-Skripts

Beschreibung

get_current_user ( ) : string

Liefert den Namen des Benutzers, welcher der Besitzer der aktuell ausgeführten PHP-Skriptdatei ist.

Rückgabewerte

Liefert den Benutzernamen als String.

Beispiele

Beispiel #1 get_current_user()-Beispiel

<?php
echo 'Name des Benutzers: ' . get_current_user();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Name des Benutzers: SYSTEM

Siehe auch

  • getmyuid() - Zeigt die User-ID des Besitzers eines PHP-Scripts
  • getmygid() - Get PHP script owner's GID
  • getmypid() - Prozess-Id eines Scripts
  • getmyinode() - Ermittelt den Inode des aktuellen Skripts
  • getlastmod() - Uhrzeit der letzten Änderung eines Scripts


Returns an associative array with the names of all the constants and their values

  • « get_current_user
  • get_extension_funcs »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Returns an associative array with the names of all the constants and their values

get_defined_constants

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

get_defined_constants — Returns an associative array with the names of all the constants and their values

Beschreibung

get_defined_constants ( bool $categorize = false ) : array

Returns the names and values of all the constants currently defined. This includes those created by extensions as well as those created with the define() function.

Parameter-Liste

categorize

Causing this function to return a multi-dimensional array with categories in the keys of the first dimension and constants and their values in the second dimension.

<?php
define("MY_CONSTANT", 1);
print_r(get_defined_constants(true));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [Core] => Array
        (
            [E_ERROR] => 1
            [E_WARNING] => 2
            [E_PARSE] => 4
            [E_NOTICE] => 8
            [E_CORE_ERROR] => 16
            [E_CORE_WARNING] => 32
            [E_COMPILE_ERROR] => 64
            [E_COMPILE_WARNING] => 128
            [E_USER_ERROR] => 256
            [E_USER_WARNING] => 512
            [E_USER_NOTICE] => 1024
            [E_ALL] => 2047
            [TRUE] => 1
        )

    [pcre] => Array
        (
            [PREG_PATTERN_ORDER] => 1
            [PREG_SET_ORDER] => 2
            [PREG_OFFSET_CAPTURE] => 256
            [PREG_SPLIT_NO_EMPTY] => 1
            [PREG_SPLIT_DELIM_CAPTURE] => 2
            [PREG_SPLIT_OFFSET_CAPTURE] => 4
            [PREG_GREP_INVERT] => 1
        )

    [user] => Array
        (
            [MY_CONSTANT] => 1
        )

)

Rückgabewerte

Returns an array of constant name => constant value array, optionally groupped by extension name registering the constant.

Beispiele

Beispiel #1 get_defined_constants() Example

<?php
print_r(get_defined_constants());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [E_ERROR] => 1
    [E_WARNING] => 2
    [E_PARSE] => 4
    [E_NOTICE] => 8
    [E_CORE_ERROR] => 16
    [E_CORE_WARNING] => 32
    [E_COMPILE_ERROR] => 64
    [E_COMPILE_WARNING] => 128
    [E_USER_ERROR] => 256
    [E_USER_WARNING] => 512
    [E_USER_NOTICE] => 1024
    [E_ALL] => 2047
    [TRUE] => 1
)

Siehe auch

  • defined() - Prüft, ob eine benannte Konstante existiert
  • get_loaded_extensions() - Liefert ein Array mit den Namen aller einkompilierten und geladenen Extensions
  • get_defined_functions() - Liefert ein Array aller definierten Funktionen
  • get_defined_vars() - Gibt ein Array aller definierten Variablen zurück


Liefert die Namen der Funktionen einer Extension

  • « get_defined_constants
  • get_include_path »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Liefert die Namen der Funktionen einer Extension

get_extension_funcs

(PHP 4, PHP 5, PHP 7, PHP 8)

get_extension_funcs — Liefert die Namen der Funktionen einer Extension

Beschreibung

get_extension_funcs ( string $module_name ) : array

Diese Funktion gibt die Namen aller in der gegebenen Extension definierten Funktionen zurück.

Parameter-Liste

module_name

Der Extensionname.

Hinweis:

Der Name muss klein geschrieben werden.

Rückgabewerte

Gibt ein Array mit den Namen aller Funktionen zurück oder false wenn keine Extension mit dem Namen module_name geladen ist.

Beispiele

Beispiel #1 Gibt alle XML Funktionen aus

<?php
print_r(get_extension_funcs("xml"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => xml_parser_create
    [1] => xml_parser_create_ns
    [2] => xml_set_object
    [3] => xml_set_element_handler
    [4] => xml_set_character_data_handler
    [5] => xml_set_processing_instruction_handler
    [6] => xml_set_default_handler
    [7] => xml_set_unparsed_entity_decl_handler
    [8] => xml_set_notation_decl_handler
    [9] => xml_set_external_entity_ref_handler
    [10] => xml_set_start_namespace_decl_handler
    [11] => xml_set_end_namespace_decl_handler
    [12] => xml_parse
    [13] => xml_parse_into_struct
    [14] => xml_get_error_code
    [15] => xml_error_string
    [16] => xml_get_current_line_number
    [17] => xml_get_current_column_number
    [18] => xml_get_current_byte_index
    [19] => xml_parser_free
    [20] => xml_parser_set_option
    [21] => xml_parser_get_option
    [22] => utf8_encode
    [23] => utf8_decode
)

Siehe auch

  • get_loaded_extensions() - Liefert ein Array mit den Namen aller einkompilierten und geladenen Extensions
  • ReflectionExtension::getFunctions() - Gets extension functions


Gets the current include_path configuration option

  • « get_extension_funcs
  • get_included_files »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Gets the current include_path configuration option

get_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

get_include_path — Gets the current include_path configuration option

Beschreibung

get_include_path ( ) : string|false

Gets the current include_path configuration option value.

Rückgabewerte

Returns the path, as a string, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 get_include_path() example

<?php
echo get_include_path();

// Or using ini_get()
echo ini_get('include_path');
?>

Siehe auch

  • ini_get() - Gets the value of a configuration option
  • restore_include_path() - Restores the value of the include_path configuration option
  • set_include_path() - Setzt die Konfigurationsoption include_path
  • include - include


Liefert ein Array mit den Namen der includierten Dateien

  • « get_include_path
  • get_loaded_extensions »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Liefert ein Array mit den Namen der includierten Dateien

get_included_files

(PHP 4, PHP 5, PHP 7, PHP 8)

get_included_files — Liefert ein Array mit den Namen der includierten Dateien

Beschreibung

get_included_files ( ) : array

Gibt die Namen aller Dateien zurück die mit include, include_once, require oder require_once eingebunden wurden.

Rückgabewerte

Gibt ein Array mit Dateinamen zurück.

Das ursprünglich aufgerufene Skript wird auch als includierte Datei angesehen und damit zusammen mit den Namen der tatäschlich mit include etc. eingebundenen Dateien zurückgegeben.

Dateien die mehrfach eingebunden werden erscheinen nur einfach im Ergebnisarray.

Beispiele

Beispiel #1 get_included_files()Beispiel

<?php
// Diese Datei ist abc.php

include 'test1.php';
include_once 'test2.php';
require 'test3.php';
require_once 'test4.php';

$included_files = get_included_files();

foreach ($included_files as $filename) {
    echo "$filename\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

/pfad/zu/abc.php
/pfad/zu/test1.php
/pfad/zu/test2.php
/pfad/zu/test3.php
/pfad/zu/test4.php

Siehe auch

  • include - include
  • include_once - include_once
  • require - require
  • require_once - require_once
  • get_required_files() - Alias von get_included_files


Liefert ein Array mit den Namen aller einkompilierten und geladenen Extensions

  • « get_included_files
  • get_magic_quotes_gpc »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Liefert ein Array mit den Namen aller einkompilierten und geladenen Extensions

get_loaded_extensions

(PHP 4, PHP 5, PHP 7, PHP 8)

get_loaded_extensions — Liefert ein Array mit den Namen aller einkompilierten und geladenen Extensions

Beschreibung

get_loaded_extensions ( bool $zend_extensions = false ) : array

Diese Funktion gibt die Namen aller in den PHP Interpreter einkompilierten und geladenen Extensions aus.

Parameter-Liste

zend_extensions

Legt fest ob nur Zend Extensions zurückgegeben werden sollen. Vorgabewert ist false d.h. es werden nur reguläre Extensions zurückgegeben.

Rückgabewerte

Gibt ein Array mit den Namen aller Extensions zurück.

Beispiele

Beispiel #1 get_loaded_extensions() Beispiele

<?php
print_r(get_loaded_extensions());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

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() - Liefert die Namen der Funktionen einer Extension
  • extension_loaded() - Prüft ob eine Extension geladen ist
  • dl() - Lädt eine PHP-Erweiterung (Extension) zur Laufzeit
  • phpinfo() - Gibt Informationen zur PHP-Konfiguration aus


Ermittelt die aktuelle Konfiguration von magic_quotes_gpc

  • « get_loaded_extensions
  • get_magic_quotes_runtime »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Ermittelt die aktuelle Konfiguration von magic_quotes_gpc

get_magic_quotes_gpc

(PHP 4, PHP 5, PHP 7)

get_magic_quotes_gpc — Ermittelt die aktuelle Konfiguration von magic_quotes_gpc

Warnung

Diese Funktion ist seit PHP 7.4.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

get_magic_quotes_gpc ( ) : bool

Gibt immer false zurück.

Rückgabewerte

Gibt immer false zurück.

Changelog

Version | Beschreibung
7.4.0 | Diese Funktion wurde missbilligt.

Siehe auch

  • addslashes() - Stellt bestimmten Zeichen eines Strings ein "\" voran
  • stripslashes() - Entfernt Maskierungszeichen aus einem String
  • get_magic_quotes_runtime() - Ermittelt die aktuelle Konfiguration von magic_quotes_runtime
  • ini_get() - Gets the value of a configuration option


Ermittelt die aktuelle Konfiguration von magic_quotes_runtime

  • « get_magic_quotes_gpc
  • get_required_files »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Ermittelt die aktuelle Konfiguration von magic_quotes_runtime

get_magic_quotes_runtime

(PHP 4, PHP 5, PHP 7)

get_magic_quotes_runtime — Ermittelt die aktuelle Konfiguration von magic_quotes_runtime

Warnung

Diese Funktion ist seit PHP 7.4.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

get_magic_quotes_runtime ( ) : bool

Gibt die aktuelle Konfiguration von magic_quotes_runtime zurück.

Rückgabewerte

Gibt 0 zurück, wenn magic_quotes_gpc ausgeschaltet ist, anderfalls 1. Von PHP 5.4.0 wird immer false zurückgegeben.

Changelog

Version | Beschreibung
7.4.0 | Diese Funktion wurde missbilligt.

Beispiele

Beispiel #1 get_magic_quotes_runtime() Beispiel

<?php
// Prüfe, ob magic_quotes_runtime aktiv ist
if(get_magic_quotes_runtime())
{
    // Deaktiviere
    set_magic_quotes_runtime(false);
}
?>

Siehe auch

  • get_magic_quotes_gpc() - Ermittelt die aktuelle Konfiguration von magic_quotes_gpc
  • set_magic_quotes_runtime()


Alias von get_included_files

  • « get_magic_quotes_runtime
  • get_resources »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Alias von get_included_files

get_required_files

(PHP 4, PHP 5, PHP 7, PHP 8)

get_required_files — Alias von get_included_files()

Beschreibung

Diese Funktion ist ein Alias für: get_included_files().


Returns active resources

  • « get_required_files
  • getenv »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Returns active resources

get_resources

(PHP 7, PHP 8)

get_resources — Returns active resources

Beschreibung

get_resources ( string $type = ? ) : array

Returns an array of all currently active resources, optionally filtered by resource type.

Parameter-Liste

type

If defined, this will cause get_resources() to only return resources of the given type. A list of resource types is available.

If the string Unknown is provided as the type, then only resources that are of an unknown type will be returned.

If omitted, all resources will be returned.

Rückgabewerte

Returns an array of currently active resources, indexed by resource number.

Beispiele

Beispiel #1 Unfiltered get_resources()

<?php
$fp = tmpfile();
var_dump(get_resources());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [1]=>
  resource(1) of type (stream)
}

Beispiel #2 Filtered get_resources()

<?php
$fp = tmpfile();
var_dump(get_resources('stream'));
var_dump(get_resources('curl'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [1]=>
  resource(1) of type (stream)
}
array(0) {
}

Siehe auch

  • get_loaded_extensions() - Liefert ein Array mit den Namen aller einkompilierten und geladenen Extensions
  • get_defined_constants() - Returns an associative array with the names of all the constants and their values
  • get_defined_functions() - Liefert ein Array aller definierten Funktionen
  • get_defined_vars() - Gibt ein Array aller definierten Variablen zurück


Liefert den Wert einer Umgebungsvariable

  • « get_resources
  • getlastmod »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Liefert den Wert einer Umgebungsvariable

getenv

(PHP 4, PHP 5, PHP 7, PHP 8)

getenv — Liefert den Wert einer Umgebungsvariable

Beschreibung

getenv ( string $varname , bool $local_only = false ) : string
getenv ( ) : array

Liefert den Wert einer Umgebungsvariable.

Eine Liste aller Umgebungsvariablen können Sie über die Funktion phpinfo() anzeigen lassen. Die Bedeutung vieler dieser Variablen können Sie in der » RFC 3875 im Abschnitt 4.1 "Request Meta-Variables" nachlesen.

Parameter-Liste

varname

Der Variablenname

local_only

Bei true werden nur lokale Umgebungsvariablen, die vom Betriebsystem oder durch putenv gesetzt wurden, zurückgeliefert.

Rückgabewerte

Gibt den Wert der Umgebungsvariable varname zurück oder false, wenn die Umgebungsvariable varname nicht existiert. Wird varname ausgelassen, werden alle Umgebungsvariablen als assoziatives Array zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | Der Parameter varname kann nun ausgelassen werden, um ein assoziatives Array aller Umgebungsvariablen abzurufen.
5.5.38, 5.6.24, 7.0.9 | Der local_only Parameter wurde hinzugefügt.

Anmerkungen

Warnung

Wird PHP in einer SAPI wie Fast CGI ausgeführt, liefert diese Funktion immer den Wert einer Umgebungsvariablen, die von der SAPI gesetzt wurde, zurück, selbst wenn putenv() verwendet wurde, um eine lokale Umgebungsvariable mit dem selben Namen zu setzen. Verwenden Sie local_only, um den Wert einer lokal gesetzten Umgebungsvariable zurück zu liefern.

Beispiele

Beispiel #1 getenv()-Beispiel

<?php
// nutzen Sie getenv() ...
$ip = getenv('REMOTE_ADDR');

// ... oder einfach die superglobalen Arrays ($_SERVER oder $_ENV)
$ip = $_SERVER['REMOTE_ADDR'];

// Sicheres Lesen eines Wertes einer Umgebungsvariablen, wobei ignoriert wird,
// ob sie durch die SAPI gesetzt oder durch putenv geändert wurde
$ip = getenv('REMOTE_ADDR', true) ?: getenv('REMOTE_ADDR')
?>

Siehe auch

  • putenv() - Setzt den Wert einer Umgebungsvariablen.
  • apache_getenv() - Liefert eine Apache-Subprocess_env-Variable
  • Superglobals


Uhrzeit der letzten Änderung eines Scripts

  • « getenv
  • getmygid »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Uhrzeit der letzten Änderung eines Scripts

getlastmod

(PHP 4, PHP 5, PHP 7, PHP 8)

getlastmod — Uhrzeit der letzten Änderung eines Scripts

Beschreibung

getlastmod ( ) : int

Ermittelt die Uhrzeit der letzten Änderung des ausgeführten Scripts

Wenn Sie sich für das Änderungsdatum einer anderen Datei interessieren nutzen Sie statt dessen filemtime().

Rückgabewerte

Liefert die Zeit der letzten Änderung des auseführten Skripts. Der Wert wird als Unix Timestamp zurückgegebn und kann mit Hilfe der Funktion date() verarbeitet werden. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 getlastmod() Beispiel

<?php
// Liefert z.B. 'Letzte Änderung: March 04 1998 20:43:59.'
echo "Letzte Änderung: " . date ("F d Y H:i:s.", getlastmod());
?>

Siehe auch

  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum
  • getmyuid() - Zeigt die User-ID des Besitzers eines PHP-Scripts
  • getmygid() - Get PHP script owner's GID
  • get_current_user() - Liefert den Benutzernamen des Besitzers des aktuellen PHP-Skripts
  • getmyinode() - Ermittelt den Inode des aktuellen Skripts
  • getmypid() - Prozess-Id eines Scripts
  • filemtime() - Liefert Datum und Uhrzeit der letzten Dateiänderung


Get PHP script owner's GID

  • « getlastmod
  • getmyinode »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Get PHP script owner's GID

getmygid

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

getmygid — Get PHP script owner's GID

Beschreibung

getmygid ( ) : int|false

Gets the group ID of the current script.

Rückgabewerte

Returns the group ID of the current script, or false on error.

Siehe auch

  • getmyuid() - Zeigt die User-ID des Besitzers eines PHP-Scripts
  • getmypid() - Prozess-Id eines Scripts
  • get_current_user() - Liefert den Benutzernamen des Besitzers des aktuellen PHP-Skripts
  • getmyinode() - Ermittelt den Inode des aktuellen Skripts
  • getlastmod() - Uhrzeit der letzten Änderung eines Scripts


Ermittelt den Inode des aktuellen Skripts

  • « getmygid
  • getmypid »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Ermittelt den Inode des aktuellen Skripts

getmyinode

(PHP 4, PHP 5, PHP 7, PHP 8)

getmyinode — Ermittelt den Inode des aktuellen Skripts

Beschreibung

getmyinode ( ) : int

Ermittelt den Inode der aktuell ausgeführten Skriptdatei.

Rückgabewerte

Gibt die Inode-Nummer der aktuellen Skriptdatei als Integer zurück oder false im Fehlerfall.

Siehe auch

  • getmygid() - Get PHP script owner's GID
  • getmyuid() - Zeigt die User-ID des Besitzers eines PHP-Scripts
  • getmypid() - Prozess-Id eines Scripts
  • get_current_user() - Liefert den Benutzernamen des Besitzers des aktuellen PHP-Skripts
  • getlastmod() - Uhrzeit der letzten Änderung eines Scripts


Prozess-Id eines Scripts

  • « getmyinode
  • getmyuid »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Prozess-Id eines Scripts

getmypid

(PHP 4, PHP 5, PHP 7, PHP 8)

getmypid — Prozess-Id eines Scripts

Beschreibung

getmypid ( ) : int

Liefert die Prozess-ID unter der das Skript ausgeführt wird.

Rückgabewerte

Liefert die Prozess-ID unter der das Skript ausgeführt wird, oder false bei Fehlern

Anmerkungen

Warnung

Prozess-IDs sind nicht eindeutig, sie sind daher eine schwache Entropiequelle. Wir raten davon ab sich in sicherheitsrelevanten Bereichen auf Prozess-IDs zu verlassen.

Siehe auch

  • getmygid() - Get PHP script owner's GID
  • getmyuid() - Zeigt die User-ID des Besitzers eines PHP-Scripts
  • get_current_user() - Liefert den Benutzernamen des Besitzers des aktuellen PHP-Skripts
  • getmyinode() - Ermittelt den Inode des aktuellen Skripts
  • getlastmod() - Uhrzeit der letzten Änderung eines Scripts


Zeigt die User-ID des Besitzers eines PHP-Scripts

  • « getmypid
  • getopt »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Zeigt die User-ID des Besitzers eines PHP-Scripts

getmyuid

(PHP 4, PHP 5, PHP 7, PHP 8)

getmyuid — Zeigt die User-ID des Besitzers eines PHP-Scripts

Beschreibung

getmyuid ( ) : int

Liefert die User-ID des Besitzers des aktuellen Scripts

Rückgabewerte

Liefert die User-ID des aktuellen Scripts oder false bei einem Fehler.

Siehe auch

  • getmygid() - Get PHP script owner's GID
  • getmypid() - Prozess-Id eines Scripts
  • get_current_user() - Liefert den Benutzernamen des Besitzers des aktuellen PHP-Skripts
  • getmyinode() - Ermittelt den Inode des aktuellen Skripts
  • getlastmod() - Uhrzeit der letzten Änderung eines Scripts


Gets options from the command line argument list

  • « getmyuid
  • getrusage »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Gets options from the command line argument list

getopt

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

getopt — Gets options from the command line argument list

Beschreibung

getopt ( string $short_options , array $long_options = [] , int &$rest_index = null ) : array|false

Parses options passed to the script.

Parameter-Liste

short_options
Each character in this string will be used as option characters and matched against options passed to the script starting with a single hyphen (-). For example, an option string "x" recognizes an option -x. Only a-z, A-Z and 0-9 are allowed.
long_options
An array of options. Each element in this array will be used as option strings and matched against options passed to the script starting with two hyphens (--). For example, an longopts element "opt" recognizes an option --opt.
rest_index
If the rest_index parameter is present, then the index where argument parsing stopped will be written to this variable.

The short_options parameter may contain the following elements:

  • Individual characters (do not accept values)
  • Characters followed by a colon (parameter requires value)
  • Characters followed by two colons (optional value)
Option values are the first argument after the string. If a value is required, it does not matter whether the value has leading white space or not. See note.

Hinweis: Optional values do not accept " " (space) as a separator.

The long_options array values may contain:

  • String (parameter does not accept any value)
  • String followed by a colon (parameter requires value)
  • String followed by two colons (optional value)

Hinweis:

The format for the short_options and long_options is almost the same, the only difference is that long_options takes an array of options (where each element is the option) whereas short_options takes a string (where each character is the option).

Rückgabewerte

This function will return an array of option / argument pairs, Im Fehlerfall wird false zurückgegeben..

Hinweis:

The parsing of options will end at the first non-option found, anything that follows is discarded.

Changelog

Version | Beschreibung
7.1.0 | Added the rest_index parameter.

Beispiele

Beispiel #1 getopt() example: The basics

<?php
// Script example.php
$options = getopt("f:hp:");
var_dump($options);
?>
shell> php example.php -fvalue -h

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["f"]=>
  string(5) "value"
  ["h"]=>
  bool(false)
}

Beispiel #2 getopt() example: Introducing long options

<?php
// Script example.php
$shortopts  = "";
$shortopts .= "f:";  // Required value
$shortopts .= "v::"; // Optional value
$shortopts .= "abc"; // These options do not accept values

$longopts  = array(
    "required:",     // Required value
    "optional::",    // Optional value
    "option",        // No value
    "opt",           // No value
);
$options = getopt($shortopts, $longopts);
var_dump($options);
?>
shell> php example.php -f "value for f" -v -a --required value --optional="optional value" --option

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(6) {
  ["f"]=>
  string(11) "value for f"
  ["v"]=>
  bool(false)
  ["a"]=>
  bool(false)
  ["required"]=>
  string(5) "value"
  ["optional"]=>
  string(14) "optional value"
  ["option"]=>
  bool(false)
}

Beispiel #3 getopt() example: Passing multiple options as one

<?php
// Script example.php
$options = getopt("abc");
var_dump($options);
?>
shell> php example.php -aaac

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["a"]=>
  array(3) {
    [0]=>
    bool(false)
    [1]=>
    bool(false)
    [2]=>
    bool(false)
  }
  ["c"]=>
  bool(false)
}

Beispiel #4 getopt() example: Using rest_index

<?php
// Script example.php
$optind = null;
$opts = getopt('a:b:', [], $optind);
$pos_args = array_slice($argv, $optind);
var_dump($pos_args);
shell> php example.php -a 1 -b 2 -- test

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  [0]=>
  string(4) "test"
}

Siehe auch

  • $argv


Ermittelt den aktuellen Ressourcenverbrauch

  • « getopt
  • ini_alter »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Ermittelt den aktuellen Ressourcenverbrauch

getrusage

(PHP 4, PHP 5, PHP 7, PHP 8)

getrusage — Ermittelt den aktuellen Ressourcenverbrauch

Beschreibung

getrusage ( int $who = 0 ) : array

Dies ist eine Schnittstelle zu getrusage(2), das Daten des Systemaufrufs liefert.

Parameter-Liste

who

Ist who 1, wird getrusage mit RUSAGE_CHILDREN aufgerufen.

Rückgabewerte

Gibt ein assoziatives Array mit den Daten zurück, die der Systemaufruf ausgibt. Alle Elemente sind unter Verwendung ihres dokumentierten Feldnamens zugreifbar.

Beispiele

Beispiel #1 getrusage() Beispiel

<?php
$dat = getrusage();
echo $dat["ru_oublock"];       // number of block output operations
echo $dat["ru_inblock"];       // number of block input operations
echo $dat["ru_msgsnd"];        // number of IPC messages sent
echo $dat["ru_msgrcv"];        // number of IPC messages received
echo $dat["ru_maxrss"];        // maximum resident set size
echo $dat["ru_ixrss"];         // integral shared memory size
echo $dat["ru_idrss"];         // integral unshared data size
echo $dat["ru_minflt"];        // number of page reclaims (soft page faults)
echo $dat["ru_majflt"];        // number of page faults (hard page faults)
echo $dat["ru_nsignals"];      // number of signals received
echo $dat["ru_nvcsw"];         // number of voluntary context switches
echo $dat["ru_nivcsw"];        // number of involuntary context switches
echo $dat["ru_nswap"];         // number of swaps
echo $dat["ru_utime.tv_usec"]; // user time used (microseconds)
echo $dat["ru_utime.tv_sec"];  // user time used (seconds)
echo $dat["ru_stime.tv_usec"]; // system time used (microseconds)
?>

Changelog

Version | Beschreibung
7.0.0 | Diese Funktion wird nun unter Windows unterstützt.

Anmerkungen

Hinweis:

Unter Windows gibt getrusage() nur folgende Elemente zurück:

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"
  • "ru_majflt" (nur wenn who RUSAGE_SELF ist)
  • "ru_maxrss" (nur wenn who RUSAGE_SELF ist)

Wird getrusage() mit who als 1 (RUSAGE_CHILDREN) aufgerufen, dann wird der Ressourcenverbrauch der Threads zusammengefasst (was bedeutet, dass die Funktion intern mit RUSAGE_THREAD aufgerufen wird).

Hinweis:

Unter BeOS 2000 werden nur folgende Element zurückgegeben:

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"

Siehe auch

  • Die Seite ihres Handbuchs zu getrusage(2)


Alias von ini_set

  • « getrusage
  • ini_get_all »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Alias von ini_set

ini_alter

(PHP 4, PHP 5, PHP 7, PHP 8)

ini_alter — Alias von ini_set()

Beschreibung

Diese Funktion ist ein Alias für: ini_set().


Gets all configuration options

  • « ini_alter
  • ini_get »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Gets all configuration options

ini_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ini_get_all — Gets all configuration options

Beschreibung

ini_get_all ( string $extension = ? , bool $details = true ) : array

Returns all the registered configuration options.

Parameter-Liste

extension

An optional extension name. If set, the function return only options specific for that extension.

details

Retrieve details settings or only the current value for each setting. Default is true (retrieve details).

Rückgabewerte

Returns an associative array with directive name as the array key. Returns false and raises an E_WARNING level error if the extension doesn't exist.

When details is true (default) the array will contain global_value (set in php.ini), local_value (perhaps set with ini_set() or .htaccess), and access (the access level).

When details is false the value will be the current value of the option.

See the manual section for information on what access levels mean.

Hinweis:

It's possible for a directive to have multiple access levels, which is why access shows the appropriate bitmask values.

Anmerkungen

Hinweis:

ini_get_all() ignores "array" ini options such as pdo.dsn.*.

Beispiele

Beispiel #1 ini_get_all() examples

<?php
print_r(ini_get_all("pcre"));
print_r(ini_get_all());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [pcre.backtrack_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

    [pcre.recursion_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

)
Array
(
    [allow_call_time_pass_reference] => Array
        (
            [global_value] => 0
            [local_value] => 0
            [access] => 6
        )

    [allow_url_fopen] => Array
        (
            [global_value] => 1
            [local_value] => 1
            [access] => 4
        )

    ...

)

Beispiel #2 Disabling details

<?php
print_r(ini_get_all("pcre", false)); // Added in PHP 5.3.0
print_r(ini_get_all(null, false)); // Added in PHP 5.3.0
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [pcre.backtrack_limit] => 100000
    [pcre.recursion_limit] => 100000
)
Array
(
    [allow_call_time_pass_reference] => 0
    [allow_url_fopen] => 1
    ...
)

Siehe auch

  • Wie man Konfigurationseinstellungen ändert
  • ini_get() - Gets the value of a configuration option
  • ini_restore() - Restores the value of a configuration option
  • ini_set() - Sets the value of a configuration option
  • get_loaded_extensions() - Liefert ein Array mit den Namen aller einkompilierten und geladenen Extensions
  • phpinfo() - Gibt Informationen zur PHP-Konfiguration aus
  • ReflectionExtension::getINIEntries() - Gets extension ini entries


Gets the value of a configuration option

  • « ini_get_all
  • ini_restore »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Gets the value of a configuration option

ini_get

(PHP 4, PHP 5, PHP 7, PHP 8)

ini_get — Gets the value of a configuration option

Beschreibung

ini_get ( string $option ) : string|false

Returns the value of the configuration option on success.

Parameter-Liste

option

The configuration option name.

Rückgabewerte

Returns the value of the configuration option as a string on success, or an empty string for null values. Returns false if the configuration option doesn't exist.

Beispiele

Beispiel #1 A few ini_get() examples

<?php
/*
Our php.ini contains the following settings:

display_errors = On
register_globals = Off
post_max_size = 8M
*/

echo 'display_errors = ' . ini_get('display_errors') . "\n";
echo 'register_globals = ' . ini_get('register_globals') . "\n";
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));

function return_bytes($val) {
    $val = trim($val);
    $last = strtolower($val[strlen($val)-1]);
    switch($last) {
        // The 'G' modifier is available since PHP 5.1.0
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }

    return $val;
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
post_max_size in bytes = 8388608

Anmerkungen

Hinweis: When querying boolean values

A boolean ini value of off will be returned as an empty string or "0" while a boolean ini value of on will be returned as "1". The function can also return the literal string of INI value.

Hinweis: When querying memory size values

Many ini memory size values, such as upload_max_filesize, are stored in the php.ini file in shorthand notation. ini_get() will return the exact string stored in the php.ini file and NOT its int equivalent. Attempting normal arithmetic functions on these values will not have otherwise expected results. The example above shows one way to convert shorthand notation into bytes, much like how the PHP source does it.

Hinweis:

ini_get() can't read "array" ini options such as pdo.dsn.*, and returns false in this case.

Siehe auch

  • get_cfg_var() - Ermittelt den Wert einer Konfigurationsoption
  • ini_get_all() - Gets all configuration options
  • ini_restore() - Restores the value of a configuration option
  • ini_set() - Sets the value of a configuration option


Restores the value of a configuration option

  • « ini_get
  • ini_set »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Restores the value of a configuration option

ini_restore

(PHP 4, PHP 5, PHP 7, PHP 8)

ini_restore — Restores the value of a configuration option

Beschreibung

ini_restore ( string $option ) : void

Restores a given configuration option to its original value.

Parameter-Liste

option

The configuration option name.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ini_restore() example

<?php
$setting = 'y2k_compliance';

echo 'Current value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;

ini_set($setting, ini_get($setting) ? 0 : 1);
echo 'New value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;

ini_restore($setting);
echo 'Original value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Current value for 'y2k_compliance': 1
New value for 'y2k_compliance': 0
Original value for 'y2k_compliance': 1

Siehe auch

  • ini_get() - Gets the value of a configuration option
  • ini_get_all() - Gets all configuration options
  • ini_set() - Sets the value of a configuration option


Sets the value of a configuration option

  • « ini_restore
  • main »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Sets the value of a configuration option

ini_set

(PHP 4, PHP 5, PHP 7, PHP 8)

ini_set — Sets the value of a configuration option

Beschreibung

ini_set ( string $option , string $value ) : string|false

Sets the value of the given configuration option. The configuration option will keep this new value during the script's execution, and will be restored at the script's ending.

Parameter-Liste

option

Not all the available options can be changed using ini_set(). There is a list of all available options in the appendix.

value

The new value for the option.

Rückgabewerte

Returns the old value on success, false on failure.

Beispiele

Beispiel #1 Setting an ini option

<?php
echo ini_get('display_errors');

if (!ini_get('display_errors')) {
    ini_set('display_errors', '1');
}

echo ini_get('display_errors');
?>

Siehe auch

  • get_cfg_var() - Ermittelt den Wert einer Konfigurationsoption
  • ini_get() - Gets the value of a configuration option
  • ini_get_all() - Gets all configuration options
  • ini_restore() - Restores the value of a configuration option
  • How to change configuration settings


Dummy for main

  • « ini_set
  • memory_get_peak_usage »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Dummy for main

main

main — Dummy for main()

Beschreibung

There is no function named main() except in the PHP source. In PHP 4.3.0, a new type of error handling in the PHP source (php_error_docref) was introduced. One feature is to provide links to a manual page in PHP error messages when the PHP directives html_errors (on by default) and docref_root (on by default until PHP 4.3.2) are set.

Sometimes error messages refer to a manual page for the function main() which is why this page exists. If you discover such a reference, please » file a bug report, indicating the PHP function caused the error that linked to main() and it will be fixed and properly documented.

Known errors that point to main()
Function name | No longer points here as of
include | 5.1.0
include_once | 5.1.0
require | 5.1.0
require_once | 5.1.0

Siehe auch

  • html_errors
  • display_errors


Returns the peak of memory allocated by PHP

  • « main
  • memory_get_usage »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Returns the peak of memory allocated by PHP

memory_get_peak_usage

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

memory_get_peak_usage — Returns the peak of memory allocated by PHP

Beschreibung

memory_get_peak_usage ( bool $real_usage = false ) : int

Returns the peak of memory, in bytes, that's been allocated to your PHP script.

Parameter-Liste

real_usage

Set this to true to get the real size of memory allocated from system. If not set or false only the memory used by emalloc() is reported.

Rückgabewerte

Returns the memory peak in bytes.

Siehe auch

  • memory_get_usage() - Returns the amount of memory allocated to PHP
  • memory_limit


Returns the amount of memory allocated to PHP

  • « memory_get_peak_usage
  • php_ini_loaded_file »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Returns the amount of memory allocated to PHP

memory_get_usage

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

memory_get_usage — Returns the amount of memory allocated to PHP

Beschreibung

memory_get_usage ( bool $real_usage = false ) : int

Returns the amount of memory, in bytes, that's currently being allocated to your PHP script.

Parameter-Liste

real_usage

Set this to true to get total memory allocated from system, including unused pages. If not set or false only the used memory is reported.

Hinweis:

PHP does not track memory that is not allocated by emalloc()

Rückgabewerte

Returns the memory amount in bytes.

Beispiele

Beispiel #1 A memory_get_usage() example

<?php
// This is only an example, the numbers below will
// differ depending on your system

echo memory_get_usage() . "\n"; // 36640

$a = str_repeat("Hello", 4242);

echo memory_get_usage() . "\n"; // 57960

unset($a);

echo memory_get_usage() . "\n"; // 36744

?>

Siehe auch

  • memory_get_peak_usage() - Returns the peak of memory allocated by PHP
  • memory_limit


Retrieve a path to the loaded php.ini file

  • « memory_get_usage
  • php_ini_scanned_files »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Retrieve a path to the loaded php.ini file

php_ini_loaded_file

(PHP 5 >= 5.2.4, PHP 7, PHP 8)

php_ini_loaded_file — Retrieve a path to the loaded php.ini file

Beschreibung

php_ini_loaded_file ( ) : string|false

Check if a php.ini file is loaded, and retrieve its path.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The loaded php.ini path, or false if one is not loaded.

Beispiele

Beispiel #1 php_ini_loaded_file() example

<?php
$inipath = php_ini_loaded_file();

if ($inipath) {
    echo 'Loaded php.ini: ' . $inipath;
} else {
    echo 'A php.ini file is not loaded';
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Loaded php.ini: /usr/local/php/php.ini

Siehe auch

  • php_ini_scanned_files() - Liefert die Liste von analysierten .ini-Dateien aus einem zusätzlichen ini-Verzeichnis
  • phpinfo() - Gibt Informationen zur PHP-Konfiguration aus
  • The configuration file


Liefert die Liste von analysierten .ini-Dateien aus einem zusätzlichen ini-Verzeichnis

  • « php_ini_loaded_file
  • php_sapi_name »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Liefert die Liste von analysierten .ini-Dateien aus einem zusätzlichen ini-Verzeichnis

php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

php_ini_scanned_files — Liefert die Liste von analysierten .ini-Dateien aus einem zusätzlichen ini-Verzeichnis

Beschreibung

php_ini_scanned_files ( ) : string

php_ini_scanned_files() gibt eine durch Kommata getrennte Liste von Konfigurationsdateien zurück, die nach php.ini analysiert wurden. Die durchsuchten Verzeichnisse werden mittels Option während der Übersetzung angegeben und optional zur Laufzeit mittels Umgebungsvariable. Weitere Informationen gibt es in der Installationsanleitung.

Die zurückgegebenen Konfigurationsdateien enthalten den kompletten Pfad.

Rückgabewerte

Gibt bei Erfolg eine durch Kommata getrennte Liste von .ini-Dateien zurück. Jedes Komma wird gefolgt von einem Zeilenumbruch. Falls die Konfigurationsanweisung --with-config-file-scan-dir und die Umgebungsvariable PHP_INI_SCAN_DIR nicht gesetzt wurden, wird false zurückgegeben. Falls sie gesetzt wurden und das Verzeichnis leer ist, wird eine leere Zeichenkette zurückgegeben. Falls eine Datei unkenntlich ist, erscheint sie trotzdem in der Liste, erzeugt aber auch einen PHP-Fehler. Dieser PHP-Fehler wird sowohl bei der Übersetzung als auch bei der Verwendung von php_ini_scanned_files() angezeigt.

Beispiele

Beispiel #1 Ein einfaches Beispiel um zurückgegebene ini-Dateien aufzulisten

<?php
if ($dateiliste = php_ini_scanned_files()) {
    if (strlen($dateiliste) > 0) {
        $dateien = explode(',', $dateiliste);

        foreach ($dateien as $datei) {
            echo "<li>" . trim($datei) . "</li>\n";
        }
    }
}
?>

Siehe auch

  • ini_set() - Sets the value of a configuration option
  • phpinfo() - Gibt Informationen zur PHP-Konfiguration aus
  • php_ini_loaded_file() - Retrieve a path to the loaded php.ini file


Gibt das genutzte Interface zwischen PHP und dem Webserver zurück

  • « php_ini_scanned_files
  • php_uname »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Gibt das genutzte Interface zwischen PHP und dem Webserver zurück

php_sapi_name

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

php_sapi_name — Gibt das genutzte Interface zwischen PHP und dem Webserver zurück

Beschreibung

php_sapi_name ( ) : string

Gibt einen kleingeschriebenen String zurück, der die Schnittstelle (das Server-API, SAPI) beschreibt, die PHP verwendet. Dieser String ist z.B. "cli" für den PHP-Kommandozeileninterpreter CLI, während beim Einsatz mit Apache unterschiedliche Werte zurückgegeben werden können, je nachdem welches SAPI genutzt wird. Die möglichen Rückgabewerte sind weiter unten aufgelistet.

Rückgabewerte

Gibt den Schnittstellentyp als kleingeschriebenen String zurück.

Mögliche Werte sind unter anderem apache, apache2handler, cgi (bis PHP 5.3), cgi-fcgi, cli, cli-server, embed, fpm-fcgi, litespeed, nsapi, phpdbg,

Beispiele

Beispiel #1 php_sapi_name() Beispiel

Dieses Beispiel prüft auf die Teilzeichenkette cgi, da es auch cgi-fcgi sein könnte.

<?php
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == 'cgi') {
    echo "Sie benutzen CGI PHP\n";
} else {
    echo "Sie benutzen nicht CGI PHP\n";
}
?>

Anmerkungen

Hinweis: Ein alternativer Ansatz

Die PHP Konstante PHP_SAPI hat den gleichen Wert wie php_sapi_name().

Tipp

Eine mögliche Überraschung

Die definierte SAPI muss nicht naheliegend sein, denn zum Beispiel anstatt als apache kann sie als apache2handler definiert sein.

Siehe auch

  • PHP_SAPI


Returns information about the operating system PHP is running on

  • « php_sapi_name
  • phpcredits »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Returns information about the operating system PHP is running on

php_uname

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

php_uname — Returns information about the operating system PHP is running on

Beschreibung

php_uname ( string $mode = "a" ) : string

php_uname() returns a description of the operating system PHP is running on. This is the same string you see at the very top of the phpinfo() output. For the name of just the operating system, consider using the PHP_OS constant, but keep in mind this constant will contain the operating system PHP was built on.

On some older UNIX platforms, it may not be able to determine the current OS information in which case it will revert to displaying the OS PHP was built on. This will only happen if your uname() library call either doesn't exist or doesn't work.

Parameter-Liste

mode

mode is a single character that defines what information is returned:

  • 'a': This is the default. Contains all modes in the sequence "s n r v m".
  • 's': Operating system name. eg. FreeBSD.
  • 'n': Host name. eg. localhost.example.com.
  • 'r': Release name. eg. 5.1.2-RELEASE.
  • 'v': Version information. Varies a lot between operating systems.
  • 'm': Machine type. eg. i386.

Rückgabewerte

Returns the description, as a string.

Beispiele

Beispiel #1 Some php_uname() examples

<?php
echo php_uname();
echo PHP_OS;

/* Some possible outputs:
Linux localhost 2.4.21-0.13mdk #1 Fri Mar 14 15:08:06 EST 2003 i686
Linux

FreeBSD localhost 3.2-RELEASE #15: Mon Dec 17 08:46:02 GMT 2001
FreeBSD

Windows NT XN1 5.1 build 2600
WINNT
*/

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    echo 'This is a server using Windows!';
} else {
    echo 'This is a server not using Windows!';
}

?>

There are also some related Predefined PHP constants that may come in handy, for example:

Beispiel #2 A few OS related constant examples

<?php
// *nix
echo DIRECTORY_SEPARATOR; // /
echo PHP_SHLIB_SUFFIX;    // so
echo PATH_SEPARATOR;      // :

// Win*
echo DIRECTORY_SEPARATOR; // \
echo PHP_SHLIB_SUFFIX;    // dll
echo PATH_SEPARATOR;      // ;
?>

Siehe auch

  • phpversion() - Liefert die aktuelle PHP-Version
  • php_sapi_name() - Gibt das genutzte Interface zwischen PHP und dem Webserver zurück
  • phpinfo() - Gibt Informationen zur PHP-Konfiguration aus


Prints out the credits for PHP

  • « php_uname
  • phpinfo »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Prints out the credits for PHP

phpcredits

(PHP 4, PHP 5, PHP 7, PHP 8)

phpcredits — Prints out the credits for PHP

Beschreibung

phpcredits ( int $flags = CREDITS_ALL ) : bool

This function prints out the credits listing the PHP developers, modules, etc. It generates the appropriate HTML codes to insert the information in a page.

Parameter-Liste

flags

To generate a custom credits page, you may want to use the flags parameter.

Pre-defined phpcredits() flags
name | description
CREDITS_ALL | All the credits, equivalent to using: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGE. It generates a complete stand-alone HTML page with the appropriate tags.
CREDITS_DOCS | The credits for the documentation team
CREDITS_FULLPAGE | Usually used in combination with the other flags. Indicates that a complete stand-alone HTML page needs to be printed including the information indicated by the other flags.
CREDITS_GENERAL | General credits: Language design and concept, PHP authors and SAPI module.
CREDITS_GROUP | A list of the core developers
CREDITS_MODULES | A list of the extension modules for PHP, and their authors
CREDITS_SAPI | A list of the server API modules for PHP, and their authors

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Prints the general credits

<?php
phpcredits(CREDITS_GENERAL);
?>

Beispiel #2 Prints the core developers and the documentation group

<?php
phpcredits(CREDITS_GROUP | CREDITS_DOCS | CREDITS_FULLPAGE);
?>

Beispiel #3 Printing all the credits

<html>
 <head>
  <title>My credits page</title>
 </head>
 <body>
<?php
// some code of your own
phpcredits(CREDITS_ALL - CREDITS_FULLPAGE);
// some more code
?>
 </body>
</html>

Anmerkungen

Hinweis:

phpcredits() outputs plain text instead of HTML when using the CLI mode.

Siehe auch

  • phpversion() - Liefert die aktuelle PHP-Version
  • php_logo_guid()
  • phpinfo() - Gibt Informationen zur PHP-Konfiguration aus


Gibt Informationen zur PHP-Konfiguration aus

  • « phpcredits
  • phpversion »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Gibt Informationen zur PHP-Konfiguration aus

phpinfo

(PHP 4, PHP 5, PHP 7, PHP 8)

phpinfo — Gibt Informationen zur PHP-Konfiguration aus

Beschreibung

phpinfo ( int $what = INFO_ALL ) : bool

Zeigt eine große Anzahl von Informationen über den aktuellen Zustand von PHP an. Dies umfasst Informationen über die Optionen während des Kompilierens und die Extensions, die PHP-Version, Server-Informationen und -Umgebung (falls als Modul kompiliert), die PHP-Umgebung, Versionsinformationen zum Betriebssystem, Pfade, Master- und lokale Werte der Konfigurationsoptionen, HTTP-Header und die PHP-Lizenz.

Weil jedes System anders installiert ist, wird phpinfo() oft genutzt, um die Konfigurationseinstellungen und die verfügbaren vordefinierten Variablen auf einem System zu prüfen.

phpinfo() ist außerdem ein wertvolles Debugging-Tool, da es alle EGPCS-Daten (Environment, GET, POST, Cookie, Server) enthält.

Parameter-Liste

what

Die Ausgabe kann durch die bitweise summierte Angabe von einer oder mehrerer der folgenden Konstanten im optionalen what-Parameter angepasst werden. Die Konstanten oder Bitwerte können auch mit dem binären Oder-Operator kombiniert werden.

phpinfo()-Optionen
Name (Konstante) | Wert | Beschreibung
INFO_GENERAL | 1 | Die Konfigurationszeile, der Ort der php.ini, das Übersetzungsdatum, der Webserver, das System und mehr.
INFO_CREDITS | 2 | PHP-Credits. Siehe auch phpcredits().
INFO_CONFIGURATION | 4 | Aktueller lokaler und Master-Wert der PHP-Direktiven. Siehe auch ini_get().
INFO_MODULES | 8 | Die geladenene Module und ihre jeweiligen Einstellungen. Siehe auch get_loaded_extensions().
INFO_ENVIRONMENT | 16 | Informationen über die Umgebungsvariablen, die auch in $_ENV verfügbar ist.
INFO_VARIABLES | 32 | Zeigt alle vordefinierten Variablen aus EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | PHP-Lizenz-Informationen. Siehe auch » Lizenz-FAQ.
INFO_ALL | -1 | Zeigt alle genannten Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 phpinfo()-Beispiel

<?php

// Zeigt alle Informationen (Standardwert ist INFO_ALL)
phpinfo();

// Zeigt nur die Modul-Informationen.
// phpinfo(8) führt zum gleichen Ergebnis.
phpinfo(INFO_MODULES);

?>

Anmerkungen

Hinweis:

In PHP-Versionen vor 5.5 sind Teile der angezeigten Informationen deaktiviert, wenn die expose_php Konfigurationseinstellung auf off eingestellt ist. Das beinhaltet die PHP- und Zend-Logos und die Danksagung.

Teile der angezeigten Informationen sind deaktiviert, wenn die expose_php-Konfigurationseinstellung auf off gesetzt ist. Dies umfasst die PHP- und Zend-Logos sowie die Credits.

Hinweis:

phpinfo() gibt reinen Text statt HTML aus, wenn es im CLI-Modus benutzt wird.

Siehe auch

  • phpversion() - Liefert die aktuelle PHP-Version
  • phpcredits() - Prints out the credits for PHP
  • php_logo_guid()
  • ini_get() - Gets the value of a configuration option
  • ini_set() - Sets the value of a configuration option
  • get_loaded_extensions() - Liefert ein Array mit den Namen aller einkompilierten und geladenen Extensions
  • vordefinierte Variable


Liefert die aktuelle PHP-Version

  • « phpinfo
  • putenv »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Liefert die aktuelle PHP-Version

phpversion

(PHP 4, PHP 5, PHP 7, PHP 8)

phpversion — Liefert die aktuelle PHP-Version

Beschreibung

phpversion ( string $extension = ? ) : string

Liefert die Versionsnummer der gerade laufenden PHP-Version oder der angegebenen extension als String.

Parameter-Liste

extension

Ein optionaler Extensionname.

Rückgabewerte

Wenn der optionale Parameter extension angegeben wurde, wird die Versionsnummer dieser Extension zurückgegeben oder false, falls die Extension nicht geladen ist oder keine Versionsinformation enthält.

Beispiele

Beispiel #1 phpversion()-Beispiel

<?php
// gibt z.B. 'Die aktuelle PHP-Version ist 4.1.1' aus
echo 'Die aktuelle PHP Version ist ' . phpversion();

// Gibt z.B. '2.0' aus oder nichts, falls die Extension nicht aktiviert ist
echo phpversion('tidy');
?>

Beispiel #2 PHP_VERSION_ID Beispiel und Verwendung

<?php
// PHP_VERSION_ID ist von PHP 5.2.7 an verfügbar;
// emuliere es unter älteren Versionen
// version is lower than that, then emulate it
if (!defined('PHP_VERSION_ID')) {
    $version = explode('.', PHP_VERSION);

    define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
}

// PHP_VERSION_ID ist als Zahl definiert; je höher diese ist,
// desto neuer ist die PHP-Version. Es ist wie oben angegeben definiert:
//
// $version_id = $major_version * 10000 + $minor_version * 100 + $release_version;
//
// Nun kann PHP_VERSION_ID verwendet werden, um zu prüfen, ob diese PHP-Version
// bestimmte Features unterstützt, ohne jedesmal version_compare() zu verwenden,
// um zu prüfen, ob die aktuelle PHP-Version bestimmte Features nicht unterstützt.
//
// Beispielsweise können wir so die PHP_VERSION_* Konstanten definieren,
// die in Versionen vor 5.2.7 nicht verfügbar waren.

if (PHP_VERSION_ID < 50207) {
    define('PHP_MAJOR_VERSION',   $version[0]);
    define('PHP_MINOR_VERSION',   $version[1]);
    define('PHP_RELEASE_VERSION', $version[2]);

    // und so weiter, ...
}
?>

Anmerkungen

Hinweis:

Diese Information ist ebenfalls in der vordefinierten Konstante PHP_VERSION verfügbar. Weitere Versionsinformation ist durch die Verwendung der PHP_VERSION_* Konstanten verfügbar.

Siehe auch

  • PHP_VERSION Konstanten
  • version_compare() - Vergleicht zwei Versionsnummern im PHP-Stil
  • phpinfo() - Gibt Informationen zur PHP-Konfiguration aus
  • phpcredits() - Prints out the credits for PHP
  • php_logo_guid()
  • zend_version() - Liefert die aktuelle Version der Zend Engine


Setzt den Wert einer Umgebungsvariablen.

  • « phpversion
  • restore_include_path »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Setzt den Wert einer Umgebungsvariablen.

putenv

(PHP 4, PHP 5, PHP 7, PHP 8)

putenv — Setzt den Wert einer Umgebungsvariablen.

Beschreibung

putenv ( string $setting ) : bool

Fügt setting zur Server-Umgebung hinzu. Die Umgebungsvariable existiert nur für die Dauer des aktuellen Request. Am Ende des Requests wird der Originalzustand der Umgebung wiederhergestellt.

Parameter-Liste

setting

Die Einstellung, beispielsweise "FOO=BAR"

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Setzen einer Umgebungsvariablen

<?php
putenv("UNIQID=$uniqid");
?>

Siehe auch

  • getenv() - Liefert den Wert einer Umgebungsvariable
  • apache_setenv() - Setzt eine Apache-Subprocess_env-Variable


Restores the value of the include_path configuration option

  • « putenv
  • set_include_path »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Restores the value of the include_path configuration option

restore_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

restore_include_path — Restores the value of the include_path configuration option

Warnung

Diese Funktion ist seit PHP 7.4.0 VERALTET und seit PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

restore_include_path ( ) : void

Restores the include_path configuration option back to its original master value as set in php.ini

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 restore_include_path() example

<?php

echo get_include_path();  // .:/usr/local/lib/php

set_include_path('/inc');

echo get_include_path();  // /inc

restore_include_path();

// Or using ini_restore()
ini_restore('include_path');

echo get_include_path();  // .:/usr/local/lib/php

?>

Siehe auch

  • ini_restore() - Restores the value of a configuration option
  • get_include_path() - Gets the current include_path configuration option
  • set_include_path() - Setzt die Konfigurationsoption include_path
  • include - include


Setzt die Konfigurationsoption include_path

  • « restore_include_path
  • set_time_limit »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Setzt die Konfigurationsoption include_path

set_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

set_include_path — Setzt die Konfigurationsoption include_path

Beschreibung

set_include_path ( string $new_include_path ) : string

Setzt die include_path Konfigurationsoption für die Dauer dieser Script-Ausführung.

Parameter-Liste

new_include_path

Der neue Wert für den include_path

Rückgabewerte

Gibt bei Erfolg den alten include_path zurückIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 set_include_path()-Beispiel

<?php
set_include_path('/usr/lib/pear');

// Oder mit ini_set()
ini_set('include_path', '/usr/lib/pear');
?>

Beispiel #2 Den include-path erweitern

Wenn man die PATH_SEPARATOR Konstante verwendet, ist es möglich, den include_path ohne Kenntnis des verwendeten Betriebssystems zu erweitern.

In diesem Beispiel fügen wir /usr/lib/pear an das Ende des vorhandenen include_path an.

<?php
$path = '/usr/lib/pear';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
?>

Siehe auch

  • ini_set() - Sets the value of a configuration option
  • get_include_path() - Gets the current include_path configuration option
  • restore_include_path() - Restores the value of the include_path configuration option
  • include - include


Beschränkt die maximale Ausführungszeit

  • « set_include_path
  • sys_get_temp_dir »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Beschränkt die maximale Ausführungszeit

set_time_limit

(PHP 4, PHP 5, PHP 7, PHP 8)

set_time_limit — Beschränkt die maximale Ausführungszeit

Beschreibung

set_time_limit ( int $seconds ) : bool

Legt die Zeit in Sekunden fest, die ein Script laufen darf. Ist diese Zeit abgelaufen, wird ein schwerwiegender Fehler zurückgegeben. Der Standard liegt bei 30 Sekunden, es sei denn max_execution_time wurde in php.ini gesetzt.

Wenn set_time_limit() aufgerufen wird, dann startet der Zähler neu. Das heißt, 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.

Parameter-Liste

seconds

Die maximale Ausführungszeit in Sekunden, oder 0 wenn die Ausführungszeit nicht limitiert werden soll.

Rückgabewerte

Gibt true im Erfolgsfall zurück oder false bei einem Fehler.

Anmerkungen

Hinweis:

Die set_time_limit()-Funktion und die max_execution_time Konfigurationsdirektive beschränken nur die Ausführungszeit des Skripts selbst. Zeit die für Aktivitäten außerhalb des Skripts aufgebracht wird wie z.B. die Ausführung von Systemaufrufen mit system(), Streamoperationen, Datenbankabfragen usw. werden nicht in die Berechnung der Ausführungszeit mit einbezogen.

Siehe auch

  • max_execution_time
  • max_input_time


Returns directory path used for temporary files

  • « set_time_limit
  • version_compare »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Returns directory path used for temporary files

sys_get_temp_dir

(PHP 5 >= 5.2.1, PHP 7, PHP 8)

sys_get_temp_dir — Returns directory path used for temporary files

Beschreibung

sys_get_temp_dir ( ) : string

Returns the path of the directory PHP stores temporary files in by default.

Rückgabewerte

Returns the path of the temporary directory.

Beispiele

Beispiel #1 sys_get_temp_dir() example

<?php
// Create a temporary file in the temporary
// files directory using sys_get_temp_dir()
$temp_file = tempnam(sys_get_temp_dir(), 'Tux');

echo $temp_file;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

C:\Windows\Temp\TuxA318.tmp

Siehe auch

  • tmpfile() - Erstellt eine temporäre Datei
  • tempnam() - Erzeugt eine Datei mit eindeutigem Dateinamen


Vergleicht zwei Versionsnummern im PHP-Stil

  • « sys_get_temp_dir
  • zend_thread_id »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Vergleicht zwei Versionsnummern im PHP-Stil

version_compare

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

version_compare — Vergleicht zwei Versionsnummern im PHP-Stil

Beschreibung

version_compare ( string $version1 , string $version2 ) : int
version_compare ( string $version1 , string $version2 , string $operator ) : bool

version_compare() vergleicht zwei den PHP-Versionen angeglichenen Versionsnummern.

Zuerst ersetzt die Funktion _, - und + durch einen Punkt . in den Versionsangaben und setzt vor und nach jeder Kette aus nicht-numerischen Zeichen Punkte ein, sodass beispielsweise '4.3.2RC1' zu '4.3.2.RC.1' wird. Anschließend werden von links nach rechts die Teile verglichen. Wenn ein Teil spezielle Zeichen enthält, werden diese nach der folgenden Reihenfolge behandelt: jede Zeichenkette, die nicht in dieser Liste vorkommt < dev < alpha = a < beta = b < RC = rc < # < pl = p. Auf diese Weise können nicht nur Versionen verschiedener Tiefe wie '4.1' und '4.1.2' sondern auch alle anderen Versionen verglichen werden, die sich auf bestimmte Entwicklungsstadien von PHP beziehen.

Parameter-Liste

version1

Erste Versionsnummer.

version2

Zweite Versionsnummer.

operator

Wenn der freiwillige Parameter operator angegeben ist, wird auf ein bestimmtes Verhältnis geprüft. Mögliche Operatoren sind: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne.

Dieser Parameter berücksicht Groß- und Kleinschreibung, die Werte sollten alle kleingeschrieben werden.

Rückgabewerte

Standardmäßig gibt version_compare() -1 zurück, wenn die erste Version kleiner ist als die zweite, 0, wenn die Versionen gleich sind und 1, wenn die zweite Version kleiner ist.

Wenn der optionale Parameter operator übergeben wurde, gibt die Funktion true oder false zurück, je nach dem, ob das mit dem Operator definierte Verhältnis der Wahrheit entspricht oder nicht. Wird ein nicht unterstützter operator angegeben, wird null zurückgegeben.

Beispiele

Das untenstehende Beispiel benutzt die Konstante PHP_VERSION, die die Version des aktuell ausführenden PHP-Interpreters enthält.

Beispiel #1 version_compare()-Beispiele

<?php
if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
    echo 'Ich bin mindestens PHP 7.0.0, meine Version: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
    echo 'Ich bin mindestens PHP 5.3.0, meine Version: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
    echo 'Ich bin mindestens PHP 5, meine Version: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '<')) {
    echo 'Ich bin noch PHP 4, meine Version: ' . PHP_VERSION . "\n";
}
?>

Anmerkungen

Hinweis:

Die Konstante PHP_VERSION enthält die aktuelle PHP-Version

Hinweis:

Vorveröffentlichte Versionen wie 5.3.0-dev werden als kleiner erkannt als ihre finalen Veröffentlichungen wie 5.3.0.

Hinweis:

Bei besonderen Versionszeichenketten wie alpha und beta wird zwischen Groß-/Kleinschreibung unterschieden. Versionszeichenketten aus beliebigen Quellen, die nicht den PHP-Standard einhalten, müssen bei Bedarf mit strtolower() in Kleinschreibung gewandelt werden bevor version_compare() aufgerufen wird.

Siehe auch

  • phpversion() - Liefert die aktuelle PHP-Version
  • php_uname() - Returns information about the operating system PHP is running on
  • function_exists() - Falls die angegebene Funktion definiert ist, wird true zurück gegeben


Returns a unique identifier for the current thread

  • « version_compare
  • zend_version »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Returns a unique identifier for the current thread

zend_thread_id

(PHP 5, PHP 7, PHP 8)

zend_thread_id — Returns a unique identifier for the current thread

Beschreibung

zend_thread_id ( ) : int

Die Funktion liefert eine eindeutige ID für den aktuellen Thread.

Rückgabewerte

Gibt die Thread-ID als Integer zurück.

Beispiele

Beispiel #1 zend_thread_id()-Beispiel

<?php
$thread_id = zend_thread_id();

echo 'Der aktuelle Thread ist: ' . $thread_id;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Der aktuelle Thread ist: 7864

Anmerkungen

Hinweis:

Diese Funktion ist nur verfügbar, wenn PHP mit ZTS- (Zend Thread Safety) und Debug- (--enable-debug) -Unterstützung kompiliert wurde.


Liefert die aktuelle Version der Zend Engine

  • « zend_thread_id
  • phpdbg »
  • PHP Manual
  • PHP-Optionen-/-Informationen-Funktionen
  • Liefert die aktuelle Version der Zend Engine

zend_version

(PHP 4, PHP 5, PHP 7, PHP 8)

zend_version — Liefert die aktuelle Version der Zend Engine

Beschreibung

zend_version ( ) : string

Liefert die Versionsnummer der aktuell laufenden Zend Engine als String. Zend Engine.

Rückgabewerte

Liefert die Versionsnummer der Zend Engine als String.

Beispiele

Beispiel #1 zend_version() Beispiel

<?php
echo "Zend Engine Version: " . zend_version();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Zend Engine Version: 2.2.0

Siehe auch

  • phpinfo() - Gibt Informationen zur PHP-Konfiguration aus
  • phpcredits() - Prints out the credits for PHP
  • php_logo_guid()
  • phpversion() - Liefert die aktuelle PHP-Version


Interactive PHP Debugger

  • Einführung
  • Installation/Konfiguration
    • Laufzeit-Konfiguration
  • Vordefinierte Konstanten
  • phpdbg Funktionen
    • phpdbg_break_file — Inserts a breakpoint at a line in a file
    • phpdbg_break_function — Inserts a breakpoint at entry to a function
    • phpdbg_break_method — Inserts a breakpoint at entry to a method
    • phpdbg_break_next — Inserts a breakpoint at the next opcode
    • phpdbg_clear — Clears all breakpoints
    • phpdbg_color — Sets the color of certain elements
    • phpdbg_end_oplog — Beschreibung
    • phpdbg_exec — Attempts to set the execution context
    • phpdbg_get_executable — Beschreibung
    • phpdbg_prompt — Sets the command prompt
    • phpdbg_start_oplog — Beschreibung


Einführung

Implemented as a SAPI module, phpdbg can exert complete control over the environment without impacting the functionality or performance of your code.

phpdbg aims to be a lightweight, powerful, easy to use debugging platform for PHP. It offers the following features:

  • Step-Through Debugging
  • Flexible Breakpoints (Class Method, Function, File:Line, Address, Opcode)
  • Easy Access to PHP with built-in eval()
  • Userland API
  • SAPI Agnostic - Easily Integrated
  • PHP Configuration File Support
  • JIT Super Globals - Set Your Own !!
  • Optional readline Support - Comfortable Terminal Operation
  • Easy Operation - See Help :)

Command line options
Option | Example Argument | Description
-c | -c/my/php.ini | Set php.ini file to load
-d | -dmemory_limit=4G | Set a php.ini directive
-n |  | Disable default php.ini
-q |  | Suppress welcome banner
-v |  | Enable oplog output
-b |  | Disable color
-i | -imy.init | Set .phpdbginit file
-I |  | Ignore default .phpdbginit
-O | -Omy.oplog | Set oplog output file
-r |  | Run execution context
-rr |  | Run execution context and quit after execution (not respecting breakpoints)
-e |  | Generate extended information for debugger/profiler
-E |  | Enable step through eval, careful!
-s | -s=, -s=foo | Read code to execute from stdin with an optional delimiter
-S | -Scli | Override SAPI name, careful!
-l | -l4000 | Setup remote console ports
-a | -a192.168.0.3 | Setup remote console bind address
-x |  | Enable xml output (instead of normal text output)
-p | -p, -p=func, -p* | Output opcodes and quit
-h |  | Print the help overview
-V |  | Print version number
-- | -- arg1 arg2 | Use to delimit phpdbg arguments and php $argv; append any $argv argument after it


  • « Einführung
  • Laufzeit-Konfiguration »
  • PHP Manual
  • phpdbg
  • Installation/Konfiguration

Installation/Konfiguration

Inhaltsverzeichnis

  • Laufzeit-Konfiguration


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

phpdbg Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
phpdbg.eol | 2 | PHP_INI_ALL | Available as of PHP 7.0.0
phpdbg.path |  | 6 | Available as of PHP 5.6.3

Hier eine kurze Erklärung der Konfigurationsoptionen:

phpdbg.eol mixed

The kind of line ending to use for output. For setting the value, one of the string aliases must be used.

int Value | string Alias
0 | CRLF, crlf, DOS, dos
1 | LF, lf, UNIX, unix
2 | CR, cr, MAC, mac

phpdbg.path string


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

PHPDBG_VERSION (string)
PHPDBG_FILE (int)
Removed as of PHP 7.3.0.
PHPDBG_METHOD (int)
Removed as of PHP 7.3.0.
PHPDBG_LINENO (int)
Removed as of PHP 7.3.0.
PHPDBG_FUNC (int)
Removed as of PHP 7.3.0.
PHPDBG_COLOR_PROMPT (int)
PHPDBG_COLOR_NOTICE (int)
PHPDBG_COLOR_ERROR (int)


phpdbg Funktionen

Inhaltsverzeichnis

  • phpdbg_break_file — Inserts a breakpoint at a line in a file
  • phpdbg_break_function — Inserts a breakpoint at entry to a function
  • phpdbg_break_method — Inserts a breakpoint at entry to a method
  • phpdbg_break_next — Inserts a breakpoint at the next opcode
  • phpdbg_clear — Clears all breakpoints
  • phpdbg_color — Sets the color of certain elements
  • phpdbg_end_oplog — Beschreibung
  • phpdbg_exec — Attempts to set the execution context
  • phpdbg_get_executable — Beschreibung
  • phpdbg_prompt — Sets the command prompt
  • phpdbg_start_oplog — Beschreibung


Inserts a breakpoint at a line in a file

  • « phpdbg Funktionen
  • phpdbg_break_function »
  • PHP Manual
  • phpdbg Funktionen
  • Inserts a breakpoint at a line in a file

phpdbg_break_file

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

phpdbg_break_file — Inserts a breakpoint at a line in a file

Beschreibung

phpdbg_break_file ( string $file , int $line ) : void

Insert a breakpoint at the given line in the given file.

Parameter-Liste

file

The name of the file.

line

The line number.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • phpdbg_break_function() - Inserts a breakpoint at entry to a function
  • phpdbg_break_method() - Inserts a breakpoint at entry to a method
  • phpdbg_break_next() - Inserts a breakpoint at the next opcode
  • phpdbg_clear() - Clears all breakpoints


Inserts a breakpoint at entry to a function

  • « phpdbg_break_file
  • phpdbg_break_method »
  • PHP Manual
  • phpdbg Funktionen
  • Inserts a breakpoint at entry to a function

phpdbg_break_function

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

phpdbg_break_function — Inserts a breakpoint at entry to a function

Beschreibung

phpdbg_break_function ( string $function ) : void

Insert a breakpoint at the entry to the given function.

Parameter-Liste

function

The name of the function.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • phpdbg_break_file() - Inserts a breakpoint at a line in a file
  • phpdbg_break_method() - Inserts a breakpoint at entry to a method
  • phpdbg_break_next() - Inserts a breakpoint at the next opcode
  • phpdbg_clear() - Clears all breakpoints


Inserts a breakpoint at entry to a method

  • « phpdbg_break_function
  • phpdbg_break_next »
  • PHP Manual
  • phpdbg Funktionen
  • Inserts a breakpoint at entry to a method

phpdbg_break_method

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

phpdbg_break_method — Inserts a breakpoint at entry to a method

Beschreibung

phpdbg_break_method ( string $class , string $method ) : void

Insert a breakpoint at the entry to the given method of the given class.

Parameter-Liste

class

The name of the class.

method

The name of the method.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • phpdbg_break_file() - Inserts a breakpoint at a line in a file
  • phpdbg_break_function() - Inserts a breakpoint at entry to a function
  • phpdbg_break_next() - Inserts a breakpoint at the next opcode
  • phpdbg_clear() - Clears all breakpoints


Inserts a breakpoint at the next opcode

  • « phpdbg_break_method
  • phpdbg_clear »
  • PHP Manual
  • phpdbg Funktionen
  • Inserts a breakpoint at the next opcode

phpdbg_break_next

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

phpdbg_break_next — Inserts a breakpoint at the next opcode

Beschreibung

phpdbg_break_next ( ) : void

Insert a breakpoint at the next opcode.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • phpdbg_break_file() - Inserts a breakpoint at a line in a file
  • phpdbg_break_function() - Inserts a breakpoint at entry to a function
  • phpdbg_break_method() - Inserts a breakpoint at entry to a method
  • phpdbg_clear() - Clears all breakpoints


Clears all breakpoints

  • « phpdbg_break_next
  • phpdbg_color »
  • PHP Manual
  • phpdbg Funktionen
  • Clears all breakpoints

phpdbg_clear

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

phpdbg_clear — Clears all breakpoints

Beschreibung

phpdbg_clear ( ) : void

Clear all breakpoints that have been set, either via one of the phpdbg_break_*() functions or interactively in the console.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • phpdbg_break_file() - Inserts a breakpoint at a line in a file
  • phpdbg_break_function() - Inserts a breakpoint at entry to a function
  • phpdbg_break_method() - Inserts a breakpoint at entry to a method
  • phpdbg_break_next() - Inserts a breakpoint at the next opcode


Sets the color of certain elements

  • « phpdbg_clear
  • phpdbg_end_oplog »
  • PHP Manual
  • phpdbg Funktionen
  • Sets the color of certain elements

phpdbg_color

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

phpdbg_color — Sets the color of certain elements

Beschreibung

phpdbg_color ( int $element , string $color ) : void

Set the color of the given element.

Parameter-Liste

element

One of the PHPDBG_COLOR_* constants.

color

The name of the color. One of white, red, green, yellow, blue, purple, cyan or black, optionally with either a trailing -bold or -underline, for instance, white-bold or green-underline.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • phpdbg_prompt() - Sets the command prompt


Beschreibung

  • « phpdbg_color
  • phpdbg_exec »
  • PHP Manual
  • phpdbg Funktionen
  • Beschreibung

phpdbg_end_oplog

(PHP 7, PHP 8)

phpdbg_end_oplog —

Beschreibung

phpdbg_end_oplog ( array $options = [] ) : array|null

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

options

Rückgabewerte


Attempts to set the execution context

  • « phpdbg_end_oplog
  • phpdbg_get_executable »
  • PHP Manual
  • phpdbg Funktionen
  • Attempts to set the execution context

phpdbg_exec

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

phpdbg_exec — Attempts to set the execution context

Beschreibung

phpdbg_exec ( string $context ) : string|bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

context

Rückgabewerte

If the execution context was set previously it is returned. If the execution context was not set previously true is returned. If the request to set the context fails, false is returned, and an E_WARNING raised.


Beschreibung

  • « phpdbg_exec
  • phpdbg_prompt »
  • PHP Manual
  • phpdbg Funktionen
  • Beschreibung

phpdbg_get_executable

(PHP 7, PHP 8)

phpdbg_get_executable —

Beschreibung

phpdbg_get_executable ( array $options = [] ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

options

Rückgabewerte


Sets the command prompt

  • « phpdbg_get_executable
  • phpdbg_start_oplog »
  • PHP Manual
  • phpdbg Funktionen
  • Sets the command prompt

phpdbg_prompt

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

phpdbg_prompt — Sets the command prompt

Beschreibung

phpdbg_prompt ( string $string ) : void

Set the command prompt to the given string.

Parameter-Liste

string

The string to use as command prompt.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • phpdbg_color() - Sets the color of certain elements


Beschreibung

  • « phpdbg_prompt
  • runkit7 »
  • PHP Manual
  • phpdbg Funktionen
  • Beschreibung

phpdbg_start_oplog

(PHP 7, PHP 8)

phpdbg_start_oplog —

Beschreibung

phpdbg_start_oplog ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


runkit7

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • runkit7 Funktionen
    • runkit7_constant_add — Similar to define(), but allows defining in class definitions as well
    • runkit7_constant_redefine — Redefine an already defined constant
    • runkit7_constant_remove — Remove/Delete an already defined constant
    • runkit7_function_add — Add a new function, similar to create_function
    • runkit7_function_copy — Copy a function to a new function name
    • runkit7_function_redefine — Replace a function definition with a new implementation
    • runkit7_function_remove — Remove a function definition
    • runkit7_function_rename — Change a function's name
    • runkit7_import — Process a PHP file importing function and class definitions, overwriting where appropriate
    • runkit7_method_add — Dynamically adds a new method to a given class
    • runkit7_method_copy — Copies a method from class to another
    • runkit7_method_redefine — Dynamically changes the code of the given method
    • runkit7_method_remove — Dynamically removes the given method
    • runkit7_method_rename — Dynamically changes the name of the given method
    • runkit7_object_id — Return the integer object handle for given object
    • runkit7_superglobals — Return numerically indexed array of registered superglobals
    • runkit7_zval_inspect — Returns information about the passed in value with data types, reference counts, etc


Einführung

The runkit7 extension provides means to modify constants, user-defined functions, and user-defined classes. It also provides for custom superglobal variables.

This package is a fork of the » runkit package providing PHP 7 support.


Anforderungen

Modifying Constants, Functions, Classes, and Methods as well as Custom Superglobals works with all releases of PHP 7. No special requirements are necessary.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/runkit7.

Windows binaries (DLL files) for this PECL extension are available from the PECL website.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Runkit Configuration Options
Name | Standard | Veränderbar | Changelog
runkit.superglobal | "" | PHP_INI_PERDIR |
runkit.internal_override | "0" | PHP_INI_SYSTEM |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

runkit.superglobal string
Comma-separated list of variable names to be treated as superglobals. This value should be set in the systemwide php.ini file, but may work in perdir configuration contexts depending on your SAPI.

Beispiel #1 Custom Superglobals with runkit.superglobal=_FOO,_BAR in php.ini

<?php
function show_values() {
  echo "Foo is $_FOO\n";
  echo "Bar is $_BAR\n";
  echo "Baz is $_BAZ\n";
}

$_FOO = 'foo';
$_BAR = 'bar';
$_BAZ = 'baz';

/* Displays foo and bar, but not baz */
show_values();
?>
runkit.internal_override bool
Enables ability to modify/rename/remove internal functions.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

RUNKIT7_IMPORT_FUNCTIONS (int)
runkit7_import() flag indicating that normal functions should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_METHODS (int)
runkit7_import() flag indicating that class methods should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_CONSTS (int)
runkit7_import() flag indicating that class constants should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_PROPS (int)
runkit7_import() flag indicating that class standard properties should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_STATIC_PROPS (int)
runkit7_import() flag indicating that class static properties should be imported from the specified file. Available since Runkit 1.0.1.
RUNKIT7_IMPORT_CLASSES (int)
runkit7_import() flag representing a bitwise OR of the RUNKIT7_IMPORT_CLASS_* constants.
RUNKIT7_IMPORT_OVERRIDE (int)
runkit7_import() flag indicating that if any of the imported functions, methods, constants, or properties already exist, they should be replaced with the new definitions. If this flag is not set, then any imported definitions which already exist will be discarded.
RUNKIT7_ACC_RETURN_REFERENCE (int)
Include this flag to make the function or method being created or redeclared return a reference.
RUNKIT7_ACC_PUBLIC (int)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method public.
RUNKIT7_ACC_PROTECTED (int)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method protected.
RUNKIT7_ACC_PRIVATE (int)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method private.
RUNKIT7_ACC_STATIC (int)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method static.
RUNKIT7_FEATURE_MANIPULATION (int)
Equal to 1 if runtime manipulation is enabled, and 0 otherwise.
RUNKIT7_FEATURE_SUPERGLOBALS (int)
Equal to 1 if custom superglobals are enabled, and 0 otherwise.
RUNKIT7_FEATURE_SANDBOX (int)
Always 0, it's impractical to implement the sandbox feature in php 7.


runkit7 Funktionen

Inhaltsverzeichnis

  • runkit7_constant_add — Similar to define(), but allows defining in class definitions as well
  • runkit7_constant_redefine — Redefine an already defined constant
  • runkit7_constant_remove — Remove/Delete an already defined constant
  • runkit7_function_add — Add a new function, similar to create_function
  • runkit7_function_copy — Copy a function to a new function name
  • runkit7_function_redefine — Replace a function definition with a new implementation
  • runkit7_function_remove — Remove a function definition
  • runkit7_function_rename — Change a function's name
  • runkit7_import — Process a PHP file importing function and class definitions, overwriting where appropriate
  • runkit7_method_add — Dynamically adds a new method to a given class
  • runkit7_method_copy — Copies a method from class to another
  • runkit7_method_redefine — Dynamically changes the code of the given method
  • runkit7_method_remove — Dynamically removes the given method
  • runkit7_method_rename — Dynamically changes the name of the given method
  • runkit7_object_id — Return the integer object handle for given object
  • runkit7_superglobals — Return numerically indexed array of registered superglobals
  • runkit7_zval_inspect — Returns information about the passed in value with data types, reference counts, etc


Similar to define(), but allows defining in class definitions as well

  • « runkit7 Funktionen
  • runkit7_constant_redefine »
  • PHP Manual
  • runkit7 Funktionen
  • Similar to define(), but allows defining in class definitions as well

runkit7_constant_add

(PECL runkit7 >= Unknown)

runkit7_constant_add — Similar to define(), but allows defining in class definitions as well

Beschreibung

runkit7_constant_add ( string $constname , mixed $value , int $newVisibility = ? ) : bool

Parameter-Liste

constname

Name of constant to declare. Either a string to indicate a global constant, or classname::constname to indicate a class constant.

value

NULL, Bool, Long, Double, String, Array, or Resource value to store in the new constant.

newVisibility

Visibility of the constant, for class constants. Public by default. One of the RUNKIT7_ACC_* constants.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • define() - Definiert eine benannte Konstante
  • runkit7_constant_redefine() - Redefine an already defined constant
  • runkit7_constant_remove() - Remove/Delete an already defined constant


Redefine an already defined constant

  • « runkit7_constant_add
  • runkit7_constant_remove »
  • PHP Manual
  • runkit7 Funktionen
  • Redefine an already defined constant

runkit7_constant_redefine

(PECL runkit7 >= Unknown)

runkit7_constant_redefine — Redefine an already defined constant

Beschreibung

runkit7_constant_redefine ( string $constname , mixed $value , string $newVisibility = ? ) : bool

Parameter-Liste

constname

Constant to redefine. Either the name of a global constant, or classname::constname indicating class constant.

value

Value to assign to the constant.

newVisibility

The new visibility of the constant, for class constants. Unchanged by default. One of the RUNKIT7_ACC_* constants.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • runkit7_constant_add() - Similar to define(), but allows defining in class definitions as well
  • runkit7_constant_remove() - Remove/Delete an already defined constant


Remove/Delete an already defined constant

  • « runkit7_constant_redefine
  • runkit7_function_add »
  • PHP Manual
  • runkit7 Funktionen
  • Remove/Delete an already defined constant

runkit7_constant_remove

(PECL runkit7 >= Unknown)

runkit7_constant_remove — Remove/Delete an already defined constant

Beschreibung

runkit7_constant_remove ( string $constname ) : bool

Parameter-Liste

constname

Name of the constant to remove. Either the name of a global constant, or classname::constname indicating a class constant.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • define() - Definiert eine benannte Konstante
  • runkit7_constant_add() - Similar to define(), but allows defining in class definitions as well
  • runkit7_constant_redefine() - Redefine an already defined constant


Add a new function, similar to create_function

  • « runkit7_constant_remove
  • runkit7_function_copy »
  • PHP Manual
  • runkit7 Funktionen
  • Add a new function, similar to create_function

runkit7_function_add

(PECL runkit7 >= Unknown)

runkit7_function_add — Add a new function, similar to create_function()

Beschreibung

runkit7_function_add ( string $funcname , string $arglist , string $code , bool $return_by_reference = null , string $doc_comment = null , string $return_type = ? , bool $is_strict = ? ) : bool
runkit7_function_add ( string $funcname , Closure $closure , string $doc_comment = null , string $return_type = ? , bool $is_strict = ? ) : bool

Parameter-Liste

funcname

Name of the function to be created

arglist

Comma separated argument list

code

Code making up the function

closure

A closure that defines the function.

return_by_reference

Whether the function should return by reference.

doc_comment

The doc comment of the function.

return_type

The return type of the function.

is_strict

Whether the function should behave as if it were declared in a file with strict_types=1

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 A runkit7_function_add() example

<?php
runkit7_function_add('testme','$a,$b','echo "The value of a is $a\n"; echo "The value of b is $b\n";');
testme(1,2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The value of a is 1
The value of b is 2

Siehe auch

  • create_function() - Erzeugen einer anonymen (Lambda-Stil) Funktion
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_rename() - Change a function's name
  • runkit7_function_remove() - Remove a function definition
  • runkit7_method_add() - Dynamically adds a new method to a given class


Copy a function to a new function name

  • « runkit7_function_add
  • runkit7_function_redefine »
  • PHP Manual
  • runkit7 Funktionen
  • Copy a function to a new function name

runkit7_function_copy

(PECL runkit7 >= Unknown)

runkit7_function_copy — Copy a function to a new function name

Beschreibung

runkit7_function_copy ( string $funcname , string $targetname ) : bool

Parameter-Liste

funcname

Name of the existing function

targetname

Name of the new function to copy the definition to

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 A runkit7_function_copy() example

<?php
function original() {
  echo "In a function\n";
}
runkit7_function_copy('original','duplicate');
original();
duplicate();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

In a function
In a function

Siehe auch

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_rename() - Change a function's name
  • runkit7_function_remove() - Remove a function definition


Replace a function definition with a new implementation

  • « runkit7_function_copy
  • runkit7_function_remove »
  • PHP Manual
  • runkit7 Funktionen
  • Replace a function definition with a new implementation

runkit7_function_redefine

(PECL runkit7 >= Unknown)

runkit7_function_redefine — Replace a function definition with a new implementation

Beschreibung

runkit7_function_redefine ( string $funcname , string $arglist , string $code , bool $return_by_reference = null , string $doc_comment = null , string $return_type = ? , string $is_strict = ? ) : bool
runkit7_function_redefine ( string $funcname , Closure $closure , string $doc_comment = null , string $return_type = ? , string $is_strict = ? ) : bool

Hinweis: Normalerweise können nur benutzerdefinierte Funktionen gelöscht, umbenannt oder modifiziert werden. Wenn Sie auch interne Funktionen übersteuern wollen, müssen Sie runkit.internal_override in Ihrer php.ini aktivieren.

Parameter-Liste

funcname

Name of function to redefine

arglist

New list of arguments to be accepted by function

code

New code implementation

closure

A closure that defines the function.

return_by_reference

Whether the function should return by reference.

doc_comment

The doc comment of the function.

return_type

The return type of the function.

is_strict

Whether the function behaves as if it was declared in a file with strict_types=1

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 A runkit7_function_redefine() example

<?php
function testme() {
  echo "Original Testme Implementation\n";
}
testme();
runkit7_function_redefine('testme','','echo "New Testme Implementation\n";');
testme();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Original Testme Implementation
New Testme Implementation

Siehe auch

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_rename() - Change a function's name
  • runkit7_function_remove() - Remove a function definition
  • runkit7_method_redefine() - Dynamically changes the code of the given method


Remove a function definition

  • « runkit7_function_redefine
  • runkit7_function_rename »
  • PHP Manual
  • runkit7 Funktionen
  • Remove a function definition

runkit7_function_remove

(PECL runkit7 >= Unknown)

runkit7_function_remove — Remove a function definition

Beschreibung

runkit7_function_remove ( string $funcname ) : bool

Hinweis: Normalerweise können nur benutzerdefinierte Funktionen gelöscht, umbenannt oder modifiziert werden. Wenn Sie auch interne Funktionen übersteuern wollen, müssen Sie runkit.internal_override in Ihrer php.ini aktivieren.

Parameter-Liste

funcname

Name of the function to be deleted

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_rename() - Change a function's name


Change a function's name

  • « runkit7_function_remove
  • runkit7_import »
  • PHP Manual
  • runkit7 Funktionen
  • Change a function's name

runkit7_function_rename

(PECL runkit7 >= Unknown)

runkit7_function_rename — Change a function's name

Beschreibung

runkit7_function_rename ( string $funcname , string $newname ) : bool

Hinweis: Normalerweise können nur benutzerdefinierte Funktionen gelöscht, umbenannt oder modifiziert werden. Wenn Sie auch interne Funktionen übersteuern wollen, müssen Sie runkit.internal_override in Ihrer php.ini aktivieren.

Parameter-Liste

funcname

Current function name

newname

New function name

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_remove() - Remove a function definition


Process a PHP file importing function and class definitions, overwriting where appropriate

  • « runkit7_function_rename
  • runkit7_method_add »
  • PHP Manual
  • runkit7 Funktionen
  • Process a PHP file importing function and class definitions, overwriting where appropriate

runkit7_import

(PECL runkit7 >= Unknown)

runkit7_import — Process a PHP file importing function and class definitions, overwriting where appropriate

Beschreibung

runkit7_import ( string $filename , int $flags = ? ) : bool

Similar to include. However, any code residing outside of a function or class is simply ignored. Additionally, depending on the value of flags, any functions or classes which already exist in the currently running environment may be automatically overwritten by their new definitions.

Parameter-Liste

filename

Filename to import function and class definitions from

flags

Bitwise OR of the RUNKIT7_IMPORT_* family of constants.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Dynamically adds a new method to a given class

  • « runkit7_import
  • runkit7_method_copy »
  • PHP Manual
  • runkit7 Funktionen
  • Dynamically adds a new method to a given class

runkit7_method_add

(PECL runkit7 >= Unknown)

runkit7_method_add — Dynamically adds a new method to a given class

Beschreibung

runkit7_method_add ( string $classname , string $methodname , string $args , string $code , int $flags = RUNKIT7_ACC_PUBLIC , string $doc_comment = null , string $return_type = ? , bool $is_strict = ? ) : bool
runkit7_method_add ( string $classname , string $methodname , Closure $closure , int $flags = RUNKIT7_ACC_PUBLIC , string $doc_comment = null , string $return_type = ? , bool $is_strict = ? ) : bool

Parameter-Liste

classname

The class to which this method will be added

methodname

The name of the method to add

args

Comma-delimited list of arguments for the newly-created method

code

The code to be evaluated when methodname is called

closure

A closure that defines the method.

flags

The type of method to create, can be RUNKIT7_ACC_PUBLIC, RUNKIT7_ACC_PROTECTED or RUNKIT7_ACC_PRIVATE optionally combined via bitwise OR with RUNKIT7_ACC_STATIC

doc_comment

The doc comment of the method.

return_type

The return type of the method.

is_strict

Whether the method behaves as if it were declared in a file with strict_types=1

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 runkit7_method_add() example

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// create an Example object
$e = new Example();

// Add a new public method
runkit7_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    RUNKIT7_ACC_PUBLIC
);

// add 12 + 4
echo $e->add(12, 4);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

16

Siehe auch

  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_add() - Add a new function, similar to create_function


Copies a method from class to another

  • « runkit7_method_add
  • runkit7_method_redefine »
  • PHP Manual
  • runkit7 Funktionen
  • Copies a method from class to another

runkit7_method_copy

(PECL runkit7 >= Unknown)

runkit7_method_copy — Copies a method from class to another

Beschreibung

runkit7_method_copy ( string $dClass , string $dMethod , string $sClass , string $sMethod = ? ) : bool

Parameter-Liste

dClass

Destination class for copied method

dMethod

Destination method name

sClass

Source class of the method to copy

sMethod

Name of the method to copy from the source class. If this parameter is omitted, the value of dMethod is assumed.

Rückgabewerte

Beispiele

Beispiel #1 runkit7_method_copy() example

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // initially, no methods
}

// copy the example() method from the Foo class to the Bar class, as baz()
runkit7_method_copy('Bar', 'baz', 'Foo', 'example');

// output copied function
echo Bar::baz();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

foo!

Siehe auch

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_copy() - Copy a function to a new function name


Dynamically changes the code of the given method

  • « runkit7_method_copy
  • runkit7_method_remove »
  • PHP Manual
  • runkit7 Funktionen
  • Dynamically changes the code of the given method

runkit7_method_redefine

(PECL runkit7 >= Unknown)

runkit7_method_redefine — Dynamically changes the code of the given method

Beschreibung

runkit7_method_redefine ( string $classname , string $methodname , string $args , string $code , int $flags = RUNKIT7_ACC_PUBLIC , string $doc_comment = null , string $return_type = ? , bool $is_strict = ? ) : bool
runkit7_method_redefine ( string $classname , string $methodname , Closure $closure , int $flags = RUNKIT7_ACC_PUBLIC , string $doc_comment = null , string $return_type = ? , bool $is_strict = ? ) : bool

Parameter-Liste

classname

The class in which to redefine the method

methodname

The name of the method to redefine

args

Comma-delimited list of arguments for the redefined method

code

The new code to be evaluated when methodname is called

closure

A closure that defines the method.

flags

The redefined method can be RUNKIT7_ACC_PUBLIC, RUNKIT7_ACC_PROTECTED or RUNKIT7_ACC_PRIVATE optionally combined via bitwise OR with RUNKIT7_ACC_STATIC

doc_comment

The doc comment of the method.

return_type

The return type of the method.

is_strict

Whether the method behaves as if it was declared in a file with strict_types=1.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 runkit7_method_redefine() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// create an Example object
$e = new Example();

// output Example::foo() (before redefine)
echo "Before: " . $e->foo();

// Redefine the 'foo' method
runkit7_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    RUNKIT7_ACC_PUBLIC
);

// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Before: foo!
After: bar!

Siehe auch

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_redefine() - Replace a function definition with a new implementation


Dynamically removes the given method

  • « runkit7_method_redefine
  • runkit7_method_rename »
  • PHP Manual
  • runkit7 Funktionen
  • Dynamically removes the given method

runkit7_method_remove

(PECL runkit7 >= Unknown)

runkit7_method_remove — Dynamically removes the given method

Beschreibung

runkit7_method_remove ( string $classname , string $methodname ) : bool

Hinweis: Diese Funktion kann nicht genutzt werden, um die aktuell ausgeführte (oder verkette) Methode zu manipulieren.

Parameter-Liste

classname

The class in which to remove the method

methodname

The name of the method to remove

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 runkit7_method_remove() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Remove the 'foo' method
runkit7_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bar

Siehe auch

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_remove() - Remove a function definition


Dynamically changes the name of the given method

  • « runkit7_method_remove
  • runkit7_object_id »
  • PHP Manual
  • runkit7 Funktionen
  • Dynamically changes the name of the given method

runkit7_method_rename

(PECL runkit7 >= Unknown)

runkit7_method_rename — Dynamically changes the name of the given method

Beschreibung

runkit7_method_rename ( string $classname , string $methodname , string $newname ) : bool

Hinweis: Diese Funktion kann nicht genutzt werden, um die aktuell ausgeführte (oder verkette) Methode zu manipulieren.

Parameter-Liste

classname

The class in which to rename the method

methodname

The name of the method to rename

newname

The new name to give to the renamed method

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 runkit7_method_rename() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Rename the 'foo' method to 'bar'
runkit7_method_rename(
    'Example',
    'foo',
    'bar'
);

// output renamed function
echo Example::bar();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

foo!

Siehe auch

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_function_rename() - Change a function's name


Return the integer object handle for given object

  • « runkit7_method_rename
  • runkit7_superglobals »
  • PHP Manual
  • runkit7 Funktionen
  • Return the integer object handle for given object

runkit7_object_id

(PECL runkit7 >= Unknown)

runkit7_object_id — Return the integer object handle for given object

Beschreibung

runkit7_object_id ( object $obj ) : int

This function returns a unique identifier for the object. The object id is unique for the lifetime of the object. Once the object is destroyed, its id may be reused for other objects. This behavior is similar to spl_object_hash().

Parameter-Liste

obj

Any object.

Rückgabewerte

An integer identifier that is unique for each currently existing object and is always the same for each object.

Anmerkungen

Hinweis:

When an object is destroyed, its id may be reused for other objects.


Return numerically indexed array of registered superglobals

  • « runkit7_object_id
  • runkit7_zval_inspect »
  • PHP Manual
  • runkit7 Funktionen
  • Return numerically indexed array of registered superglobals

runkit7_superglobals

(PECL runkit7 >= Unknown)

runkit7_superglobals — Return numerically indexed array of registered superglobals

Beschreibung

runkit7_superglobals ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a numerically indexed array of the currently registered superglobals. i.e. _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES

Siehe auch

  • Variable Scope


Returns information about the passed in value with data types, reference counts, etc

  • « runkit7_superglobals
  • uopz »
  • PHP Manual
  • runkit7 Funktionen
  • Returns information about the passed in value with data types, reference counts, etc

runkit7_zval_inspect

(PECL runkit7 >= Unknown)

runkit7_zval_inspect — Returns information about the passed in value with data types, reference counts, etc

Beschreibung

runkit7_zval_inspect ( string $value ) : array

Parameter-Liste

value

The value to return the representation of


User Operations for Zend

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Uopz Funktionen
    • uopz_add_function — Adds non-existent function or method
    • uopz_allow_exit — Allows control over disabled exit opcode
    • uopz_backup — Backup a function
    • uopz_compose — Compose a class
    • uopz_copy — Copy a function
    • uopz_del_function — Deletes previously added function or method
    • uopz_delete — Delete a function
    • uopz_extend — Extend a class at runtime
    • uopz_flags — Get or set flags on function or class
    • uopz_function — Creates a function at runtime
    • uopz_get_exit_status — Retrieve the last set exit status
    • uopz_get_hook — Gets previously set hook on function or method
    • uopz_get_mock — Get the current mock for a class
    • uopz_get_property — Gets value of class or instance property
    • uopz_get_return — Gets a previous set return value for a function
    • uopz_get_static — Gets the static variables from function or method scope
    • uopz_implement — Implements an interface at runtime
    • uopz_overload — Overload a VM opcode
    • uopz_redefine — Redefine a constant
    • uopz_rename — Rename a function at runtime
    • uopz_restore — Restore a previously backed up function
    • uopz_set_hook — Sets hook to execute when entering a function or method
    • uopz_set_mock — Use mock instead of class for new objects
    • uopz_set_property — Sets value of existing class or instance property
    • uopz_set_return — Provide a return value for an existing function
    • uopz_set_static — Sets the static variables in function or method scope
    • uopz_undefine — Undefine a constant
    • uopz_unset_hook — Removes previously set hook on function or method
    • uopz_unset_mock — Unset previously set mock
    • uopz_unset_return — Unsets a previously set return value for a function


Einführung

The uopz - User Operations for Zend - extension exposes Zend Engine functionality normally used at compilation and execution time in order to allow modification of the internal structures that represent PHP code, and for user code to interact with the VM.

uopz supports the following activities:

  • Overloading some opcodes including ZEND_EXIT and ZEND_NEW
  • Backup and restore functions and methods
  • Renaming functions and methods
  • Copying of functions and methods
  • Deletion of functions and methods
  • Redefinition of global and class constants
  • Deletion of global and class constants
  • Runtime composition and modification of classes

Hinweis:

All of the activities supported are compatible with opcache

Achtung

PECL uopz 6.1.1 is not compatible with Xdebug >= 2.9.4. Later uopz versions are not compatible with Xdebug < 2.9.4.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

uopz 2 requires PHP 5.4+. uopz 5.0 requires PHP 7. As of uopz 5.1, PHP 7.1+ is required.


Installation

uopz releases are hosted by PECL and the source code by » github, the easiest route to installation is the normal PECL route: » https://pecl.php.net/package/uopz.

Windows users can download prebuilt release binaries from the » PECL website.

As of uopz 5.0.0 the extension must be loaded as extension. Before this version it must be loaded as zend_extension.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

uopz Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
uopz.disable | "0" | PHP_INI_SYSTEM | Available as of uopz 5.0.2
uopz.exit | "0" | PHP_INI_SYSTEM | Available as of uopz 6.0.1
uopz.overloads | "1" | PHP_INI_SYSTEM | Available as of uopz 2.0.2. Removed as of uopz 5.0.0.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

uopz.disable bool

If enabled, uopz should stop having any effect on the engine.

uopz.exit bool

Whether to allow the execution of exit opcodes or not. This setting can be overridden during runtime by calling uopz_allow_exit().

uopz.exit bool

Enables the ability to use uopz_overload().

Hinweis: When running with OPcache enabled, it may be necessary to disable all OPcache optimizations (opcache.optimization_level=0).


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

The following opcodes are defined as constants by uopz before 5.0.0:

ZEND_EXIT (int)
Invoked by exit() and die(), receives no arguments. Return boolean true to exit, false to continue
ZEND_NEW (int)
Invoked by object construction, receives the class of object being created as the only argument
ZEND_THROW (int)
Invoked by the throw construct, receives the class of exception being thrown as the only argument
ZEND_FETCH_CLASS (int)
Invoked upon composure, receives the class the name of the class being fetched as the only argument
ZEND_ADD_TRAIT (int)
Invoked upon composure, receives the class the trait is being added to as the first argument, and the name of the trait as the second argument
ZEND_ADD_INTERFACE (int)
Invoked upon composure, receives the class the interface is being added to as the first argument, and the name of the interface as the second argument
ZEND_INSTANCEOF (int)
Invoked by instanceof operator, receives the object being verified as the first argument, and the name of the class which that object should be as the second argument

The following constants control the VM's behaviour after a user handler is invoked, be extremely careful! These constants are removed as of uopz 5.0.0.

ZEND_USER_OPCODE_CONTINUE (int)
Advance 1 opcode and continuue
ZEND_USER_OPCODE_ENTER (int)
Enter into new op_array without recursion
ZEND_USER_OPCODE_LEAVE (int)
Return to calling op_array within the same executor
ZEND_USER_OPCODE_DISPATCH (int)
Dispatch to original opcode handler
ZEND_USER_OPCODE_DISPATCH_TO (int)
Dispatch to a specific handler (OR'd with ZEND opcode constant)
ZEND_USER_OPCODE_RETURN (int)
Exit from executor (return from function)

The following modifiers are registered as constants by uopz

ZEND_ACC_PUBLIC (int)
Mark function as public, the default
ZEND_ACC_PROTECTED (int)
Mark function as protected
ZEND_ACC_PRIVATE (int)
Mark function as private
ZEND_ACC_STATIC (int)
Mark function as static
ZEND_ACC_FINAL (int)
Mark function as final
ZEND_ACC_ABSTRACT (int)
Mark function as abstract
ZEND_ACC_CLASS (int)
Dummy registered for consistency, the default kind of class entry. Removed as of uopz 5.0.0.
ZEND_ACC_INTERFACE (int)
Mark class as interface. Removed as of uopz 5.0.0.
ZEND_ACC_TRAIT (int)
Mark class as trait. Removed as of uopz 5.0.0.
ZEND_ACC_FETCH (int)
Used for getting flags only. Removed as of uopz 5.0.0.


Uopz Funktionen

Inhaltsverzeichnis

  • uopz_add_function — Adds non-existent function or method
  • uopz_allow_exit — Allows control over disabled exit opcode
  • uopz_backup — Backup a function
  • uopz_compose — Compose a class
  • uopz_copy — Copy a function
  • uopz_del_function — Deletes previously added function or method
  • uopz_delete — Delete a function
  • uopz_extend — Extend a class at runtime
  • uopz_flags — Get or set flags on function or class
  • uopz_function — Creates a function at runtime
  • uopz_get_exit_status — Retrieve the last set exit status
  • uopz_get_hook — Gets previously set hook on function or method
  • uopz_get_mock — Get the current mock for a class
  • uopz_get_property — Gets value of class or instance property
  • uopz_get_return — Gets a previous set return value for a function
  • uopz_get_static — Gets the static variables from function or method scope
  • uopz_implement — Implements an interface at runtime
  • uopz_overload — Overload a VM opcode
  • uopz_redefine — Redefine a constant
  • uopz_rename — Rename a function at runtime
  • uopz_restore — Restore a previously backed up function
  • uopz_set_hook — Sets hook to execute when entering a function or method
  • uopz_set_mock — Use mock instead of class for new objects
  • uopz_set_property — Sets value of existing class or instance property
  • uopz_set_return — Provide a return value for an existing function
  • uopz_set_static — Sets the static variables in function or method scope
  • uopz_undefine — Undefine a constant
  • uopz_unset_hook — Removes previously set hook on function or method
  • uopz_unset_mock — Unset previously set mock
  • uopz_unset_return — Unsets a previously set return value for a function


Adds non-existent function or method

  • « Uopz Funktionen
  • uopz_allow_exit »
  • PHP Manual
  • Uopz Funktionen
  • Adds non-existent function or method

uopz_add_function

(PECL uopz 5, PECL uopz 6)

uopz_add_function — Adds non-existent function or method

Beschreibung

uopz_add_function ( string $function , Closure $handler , int &$flags = ZEND_ACC_PUBLIC ) : bool
uopz_add_function ( string $class , string $function , Closure $handler , int &$flags = ZEND_ACC_PUBLIC , int &$all = true ) : bool

Adds a non-existent function or method.

Parameter-Liste

class

The name of the class.

function

The name of the function or method.

handler

The Closure that defines the new function or method.

flags

Flags to set for the new function or method.

all

Whether all classes that descend from class will also be affected.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

uopz_add_function() throws a RuntimeException if the function or method to add already exists.

Beispiele

Beispiel #1 Basic uopz_add_function() Usage

<?php
uopz_add_function('foo', function () {echo 'bar';});
foo();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bar

Siehe auch

  • uopz_del_function() - Deletes previously added function or method
  • uopz_set_return() - Provide a return value for an existing function


Allows control over disabled exit opcode

  • « uopz_add_function
  • uopz_backup »
  • PHP Manual
  • Uopz Funktionen
  • Allows control over disabled exit opcode

uopz_allow_exit

(PECL uopz 5, PECL uopz 6)

uopz_allow_exit — Allows control over disabled exit opcode

Beschreibung

uopz_allow_exit ( bool $allow ) : void

By default uopz disables the exit opcode, so exit() calls are practically ignored. uopz_allow_exit() allows to control this behavior.

Parameter-Liste

allow

Whether to allow the execution of exit opcodes or not.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 uopz_allow_exit() example

<?php
exit(1);
echo 1;
uopz_allow_exit(true);
exit(2);
echo 2;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1

Anmerkungen

Achtung

OPcache optimizes away dead code after unconditional exit.

Siehe auch

  • uopz_get_exit_status() - Retrieve the last set exit status


Backup a function

  • « uopz_allow_exit
  • uopz_compose »
  • PHP Manual
  • Uopz Funktionen
  • Backup a function

uopz_backup

(PECL uopz 1 >= 1.0.3, PECL uopz 2)

uopz_backup — Backup a function

Warnung

Diese Funktion wurde mit PECL uopz 5.0.0 ENTFERNT.

Beschreibung

uopz_backup ( string $function ) : void
uopz_backup ( string $class , string $function ) : void

Backup a function at runtime, to be restored on shutdown

Parameter-Liste

class

The name of the class containing the function to backup

function

The name of the function

Rückgabewerte

Beispiele

Beispiel #1 uopz_backup() example

<?php
uopz_backup("fgets");
uopz_function("fgets", function(){
    return true;
});
var_dump(fgets());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Compose a class

  • « uopz_backup
  • uopz_copy »
  • PHP Manual
  • Uopz Funktionen
  • Compose a class

uopz_compose

(PECL uopz 1, PECL uopz 2)

uopz_compose — Compose a class

Warnung

Diese Funktion wurde mit PECL uopz 5.0.0 ENTFERNT.

Beschreibung

uopz_compose ( string $name , array $classes , array $methods = ? , array $properties = ? , int $flags = ? ) : void

Creates a new class of the given name that implements, extends, or uses all of the provided classes

Parameter-Liste

name

A legal class name

classes

An array of class, interface and trait names

methods

An associative array of methods, values are either closures or [modifiers => closure]

properties

An associative array of properties, keys are names, values are modifiers

flags

Entry type, by default ZEND_ACC_CLASS

Rückgabewerte

Beispiele

Beispiel #1 uopz_compose() example

<?php
class myClass {}
trait myTrait {}
interface myInterface {}

uopz_compose(
    Composed::class, [
        myClass::class,
        myTrait::class,
        myInterface::class
    ], [
    "__construct" => function() {
        /* ... */
    }
]);

var_dump(
 class_uses(Composed::class),
 class_parents(Composed::class),
 class_implements(Composed::class));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["myTrait"]=>
  string(7) "myTrait"
}
array(1) {
  ["myClass"]=>
  string(7) "myClass"
}
array(1) {
  ["myInterface"]=>
  string(11) "myInterface"
}


Copy a function

  • « uopz_compose
  • uopz_del_function »
  • PHP Manual
  • Uopz Funktionen
  • Copy a function

uopz_copy

(PECL uopz 1 >= 1.0.4, PECL uopz 2)

uopz_copy — Copy a function

Warnung

Diese Funktion wurde mit PECL uopz 5.0.0 ENTFERNT.

Beschreibung

uopz_copy ( string $function ) : Closure
uopz_copy ( string $class , string $function ) : Closure

Copy a function by name

Parameter-Liste

class

The name of the class containing the function to copy

function

The name of the function

Rückgabewerte

A Closure for the specified function

Beispiele

Beispiel #1 uopz_copy() example

<?php
$strtotime = uopz_copy('strtotime');

uopz_function("strtotime", function($arg1, $arg2) use($strtotime) {
    /* can call original strtotime from here */
    var_dump($arg1);
});

var_dump(strtotime('dummy'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(5) "dummy"


Deletes previously added function or method

  • « uopz_copy
  • uopz_delete »
  • PHP Manual
  • Uopz Funktionen
  • Deletes previously added function or method

uopz_del_function

(PECL uopz 5, PECL uopz 6)

uopz_del_function — Deletes previously added function or method

Beschreibung

uopz_del_function ( string $function ) : bool
uopz_del_function ( string $class , string $function , int &$all = true ) : bool

Deletes a previously added function or method.

Parameter-Liste

class

The name of the class.

function

The name of the function or method.

all

Whether all classes that descend from class will also be affected.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

uopz_del_function() throws a RuntimeException if the function or method to delete has not been added by uopz_add_function().

Beispiele

Beispiel #1 Basic uopz_del_function() Usage

<?php
uopz_add_function('foo', function () {echo 'bar';});
var_dump(function_exists('foo'));
uopz_del_function('foo');
var_dump(function_exists('foo'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)

Siehe auch

  • uopz_add_function() - Adds non-existent function or method
  • uopz_unset_return() - Unsets a previously set return value for a function


Delete a function

  • « uopz_del_function
  • uopz_extend »
  • PHP Manual
  • Uopz Funktionen
  • Delete a function

uopz_delete

(PECL uopz 1, PECL uopz 2)

uopz_delete — Delete a function

Warnung

Diese Funktion wurde mit PECL uopz 5.0.0 ENTFERNT.

Beschreibung

uopz_delete ( string $function ) : void
uopz_delete ( string $class , string $function ) : void

Deletes a function or method

Parameter-Liste

class

function

Rückgabewerte

Beispiele

Beispiel #1 uopz_delete() example

<?php
uopz_delete("strlen");

echo strlen("Hello World");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

PHP Fatal error: Call to undefined function strlen() in /path/to/script.php on line 4

Beispiel #2 uopz_delete() class example

<?php
class My {
    public static function strlen($arg) {
        return strlen($arg);
    }
}

uopz_delete(My::class, "strlen");

echo My::strlen("Hello World");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

PHP Fatal error: Call to undefined method My::strlen() in /path/to/script.php on line 10


Extend a class at runtime

  • « uopz_delete
  • uopz_flags »
  • PHP Manual
  • Uopz Funktionen
  • Extend a class at runtime

uopz_extend

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6)

uopz_extend — Extend a class at runtime

Beschreibung

uopz_extend ( string $class , string $parent ) : bool

Makes class extend parent

Parameter-Liste

class

The name of the class to extend

parent

The name of the class to inherit

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

As of PHP 7.4.0, uopz_extends() throws a RuntimeException, if OPcache is enabled, and the class entry of either class or parent (if it is a trait) is immutable.

Beispiele

Beispiel #1 uopz_extend() example

<?php
class A {}
class B {}

uopz_extend(A::class, B::class);

var_dump(class_parents(A::class));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["B"]=>
  string(1) "B"
}


Get or set flags on function or class

  • « uopz_extend
  • uopz_function »
  • PHP Manual
  • Uopz Funktionen
  • Get or set flags on function or class

uopz_flags

(PECL uopz 2 >= 2.0.2, PECL uopz 5, PECL uopz 6)

uopz_flags — Get or set flags on function or class

Beschreibung

uopz_flags ( string $function , int $flags = PHP_INT_MAX ) : int
uopz_flags ( string $class , string $function , int $flags = PHP_INT_MAX ) : int

Get or set the flags on a class or function entry at runtime

Parameter-Liste

class

The name of a class

function

The name of the function. If class is given and an empty string is passed as function, uopz_flags() gets or sets the flags of the class entry.

flags

A valid set of ZEND_ACC_ flags. If omitted, uopz_flags() acts as getter.

Rückgabewerte

If setting, returns old flags, else returns flags

Fehler/Exceptions

As of PHP 7.4.0, if the parameter flags is passed, uopz_flags() throws a RuntimeException, if OPcache is enabled, and the class entry of class or the function entry of function is immutable.

Changelog

Version | Beschreibung
PECL uopz 5.0.0 | The flags parameter is now optional. Formerly, ZEND_ACC_FETCH had to be passed to use uopz_flags() as getter.

Beispiele

Beispiel #1 uopz_flags() example

<?php
class Test {
    public function method() {
        return __CLASS__;
    }
}

$flags = uopz_flags("Test", "method");

var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_STATIC));

var_dump(uopz_flags("Test", "method", $flags|ZEND_ACC_STATIC|ZEND_ACC_PRIVATE));

var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_STATIC));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(false)
int(1234567890)
bool(true)
bool(true)

Beispiel #2 "Unfinalize" a Class

<?php
final class MyClass
{
}

$flags = uopz_flags(MyClass::class, '');
uopz_flags(MyClass::class, '', $flags & ~ZEND_ACC_FINAL);
var_dump((new ReflectionClass(MyClass::class))->isFinal());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)


Creates a function at runtime

  • « uopz_flags
  • uopz_get_exit_status »
  • PHP Manual
  • Uopz Funktionen
  • Creates a function at runtime

uopz_function

(PECL uopz 1, PECL uopz 2)

uopz_function — Creates a function at runtime

Warnung

Diese Funktion wurde mit PECL uopz 5.0.0 ENTFERNT.

Beschreibung

uopz_function ( string $function , Closure $handler , int $modifiers = ? ) : void
uopz_function ( string $class , string $function , Closure $handler , int $modifiers = ? ) : void

Creates a function at runtime

Parameter-Liste

class

The name of the class to receive the new function

function

The name of the function

handler

The Closure for the function

modifiers

The modifiers for the function, by default copied or ZEND_ACC_PUBLIC

Rückgabewerte

Beispiele

Beispiel #1 uopz_function() example

<?php
uopz_function("my_strlen", function($arg) {
    return strlen($arg);
});
echo my_strlen("Hello World");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

11

Beispiel #2 uopz_function() class example

<?php
class My {}

uopz_function(My::class, "strlen", function($arg) {
    return strlen($arg);
}, ZEND_ACC_STATIC);

echo My::strlen("Hello World");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

11


Retrieve the last set exit status

  • « uopz_function
  • uopz_get_hook »
  • PHP Manual
  • Uopz Funktionen
  • Retrieve the last set exit status

uopz_get_exit_status

(PECL uopz 5, PECL uopz 6)

uopz_get_exit_status — Retrieve the last set exit status

Beschreibung

uopz_get_exit_status ( ) : mixed

Retrieves the last set exit status, i.e. the value passed to exit().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This function returns the last exit status, or null if exit() has not been called.

Beispiele

Beispiel #1 uopz_get_exit_status() example

<?php
exit(123);
echo uopz_get_exit_status();?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

123

Anmerkungen

Achtung

OPcache optimizes away dead code after unconditional exit.

Siehe auch

  • uopz_allow_exit() - Allows control over disabled exit opcode


Gets previously set hook on function or method

  • « uopz_get_exit_status
  • uopz_get_mock »
  • PHP Manual
  • Uopz Funktionen
  • Gets previously set hook on function or method

uopz_get_hook

(PECL uopz 5, PECL uopz 6)

uopz_get_hook — Gets previously set hook on function or method

Beschreibung

uopz_get_hook ( string $function ) : Closure
uopz_get_hook ( string $class , string $function ) : Closure

Gets the previously set hook on a function or method.

Parameter-Liste

class

The name of the class.

function

The name of the function or method.

Rückgabewerte

Returns the previously set hook on a function or method, or null if no hook has been set.

Beispiele

Beispiel #1 Basic uopz_get_hook() Usage

<?php
function foo() {
    echo 'foo';
}
uopz_set_hook('foo', function () {echo 'bar';});
var_dump(uopz_get_hook('foo'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Closure)#2 (0) {
}

Siehe auch

  • uopz_set_hook() - Sets hook to execute when entering a function or method
  • uopz_unset_hook() - Removes previously set hook on function or method


Get the current mock for a class

  • « uopz_get_hook
  • uopz_get_property »
  • PHP Manual
  • Uopz Funktionen
  • Get the current mock for a class

uopz_get_mock

(PECL uopz 5, PECL uopz 6)

uopz_get_mock — Get the current mock for a class

Beschreibung

uopz_get_mock ( string $class ) : mixed

Returns the current mock for class.

Parameter-Liste

class

The name of the mocked class.

Rückgabewerte

Either a string containing the name of the mock, or an object, or null if no mock has been set.

Beispiele

Beispiel #1 uopz_get_mock() example

<?php
class A {
    public static function who() {
        echo "A";
    }
}

class mockA {
    public static function who() {
        echo "mockA";
    }
}

uopz_set_mock(A::class, mockA::class);
echo uopz_get_mock(A::class);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

mockA

Siehe auch

  • uopz_set_mock() - Use mock instead of class for new objects
  • uopz_unset_mock() - Unset previously set mock


Gets value of class or instance property

  • « uopz_get_mock
  • uopz_get_return »
  • PHP Manual
  • Uopz Funktionen
  • Gets value of class or instance property

uopz_get_property

(PECL uopz 5, PECL uopz 6)

uopz_get_property — Gets value of class or instance property

Beschreibung

uopz_get_property ( string $class , string $property ) : mixed
uopz_get_property ( object $instance , string $property ) : mixed

Gets the value of a static class property, if class is given, or the value of an instance property, if instance is given.

Parameter-Liste

class

The name of the class.

instance

The object instance.

property

The name of the property.

Rückgabewerte

Returns the value of the class or instance property, or null if the property is not defined.

Beispiele

Beispiel #1 Basic uopz_get_property() Usage

<?php
class Foo {
    private static $staticBar = 10;
    private $bar = 100;
}
$foo = new Foo;
var_dump(uopz_get_property('Foo', 'staticBar'));
var_dump(uopz_get_property($foo, 'bar'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(10)
int(100)

Siehe auch

  • uopz_set_property() - Sets value of existing class or instance property


Gets a previous set return value for a function

  • « uopz_get_property
  • uopz_get_static »
  • PHP Manual
  • Uopz Funktionen
  • Gets a previous set return value for a function

uopz_get_return

(PECL uopz 5, PECL uopz 6)

uopz_get_return — Gets a previous set return value for a function

Beschreibung

uopz_get_return ( string $function ) : mixed
uopz_get_return ( string $class , string $function ) : mixed

Gets the return value of the function previously set by uopz_set_return().

Parameter-Liste

class

The name of the class containing the function

function

The name of the function

Rückgabewerte

The return value or Closure previously set.

Beispiele

Beispiel #1 uopz_get_return() example

<?php
uopz_set_return("strlen", 42);
echo uopz_get_return("strlen");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

42


Gets the static variables from function or method scope

  • « uopz_get_return
  • uopz_implement »
  • PHP Manual
  • Uopz Funktionen
  • Gets the static variables from function or method scope

uopz_get_static

(PECL uopz 5, PECL uopz 6)

uopz_get_static — Gets the static variables from function or method scope

Beschreibung

uopz_get_static ( string $class , string $function ) : array
uopz_get_static ( string $function ) : array

Gets the static variables from function or method scope.

Parameter-Liste

class

The name of the class.

function

The name of the function or method.

Rückgabewerte

Returns an associative array of variable names mapped to their current values on success, or null if the function or method does not exist.

Beispiele

Beispiel #1 Basic uopz_get_static() Usage

<?php
function foo() {
    static $bar = 'baz';
}
var_dump(uopz_get_static('foo'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["bar"]=>
  string(3) "baz"
}

Siehe auch

  • uopz_set_static() - Sets the static variables in function or method scope


Implements an interface at runtime

  • « uopz_get_static
  • uopz_overload »
  • PHP Manual
  • Uopz Funktionen
  • Implements an interface at runtime

uopz_implement

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6)

uopz_implement — Implements an interface at runtime

Beschreibung

uopz_implement ( string $class , string $interface ) : bool

Makes class implement interface

Parameter-Liste

class

interface

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

As of PHP 7.4.0, uopz_implements() throws a RuntimeException, if OPcache is enabled, and the class entry of class is immutable.

Beispiele

Beispiel #1 uopz_implement() example

<?php
interface myInterface {}

class myClass {}

uopz_implement(myClass::class, myInterface::class);

var_dump(class_implements(myClass::class));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["myInterface"]=>
  string(11) "myInterface"
}


Overload a VM opcode

  • « uopz_implement
  • uopz_redefine »
  • PHP Manual
  • Uopz Funktionen
  • Overload a VM opcode

uopz_overload

(PECL uopz 1, PECL uopz 2)

uopz_overload — Overload a VM opcode

Warnung

Diese Funktion wurde mit PECL uopz 5.0.0 ENTFERNT.

Beschreibung

uopz_overload ( int $opcode , Callable $callable ) : void

Overloads the specified opcode with the user defined function

Parameter-Liste

opcode

A valid opcode, see constants for details of supported codes

callable

Rückgabewerte

Beispiele

Beispiel #1 uopz_overload() example

<?php
uopz_overload(ZEND_EXIT, function(){});

exit();
echo "Hello World";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hello World


Redefine a constant

  • « uopz_overload
  • uopz_rename »
  • PHP Manual
  • Uopz Funktionen
  • Redefine a constant

uopz_redefine

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6)

uopz_redefine — Redefine a constant

Beschreibung

uopz_redefine ( string $constant , mixed $value ) : bool
uopz_redefine ( string $class , string $constant , mixed $value ) : bool

Redefines the given constant as value

Parameter-Liste

class

The name of the class containing the constant

constant

The name of the constant

value

The new value for the constant, must be a valid type for a constant variable

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 uopz_redefine() example

<?php
define("MY", 100);

uopz_redefine("MY", 1000);

echo MY;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1000


Rename a function at runtime

  • « uopz_redefine
  • uopz_restore »
  • PHP Manual
  • Uopz Funktionen
  • Rename a function at runtime

uopz_rename

(PECL uopz 1, PECL uopz 2)

uopz_rename — Rename a function at runtime

Warnung

Diese Funktion wurde mit PECL uopz 5.0.0 ENTFERNT.

Beschreibung

uopz_rename ( string $function , string $rename ) : void
uopz_rename ( string $class , string $function , string $rename ) : void

Renames function to rename

Hinweis:

If both functions exist, this effectively swaps their names

Parameter-Liste

class

The name of the class containing the function

function

The name of an existing function

rename

The new name for the function

Rückgabewerte

Beispiele

Beispiel #1 uopz_rename() example

<?php
uopz_rename("strlen", "original_strlen");

echo original_strlen("Hello World");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

11

Beispiel #2 uopz_rename() class example

<?php
class My {
    public function strlen($arg) {
        return strlen($arg);
    }
}

uopz_rename(My::class, "strlen", "original_strlen");

echo My::original_strlen("Hello World");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

11


Restore a previously backed up function

  • « uopz_rename
  • uopz_set_hook »
  • PHP Manual
  • Uopz Funktionen
  • Restore a previously backed up function

uopz_restore

(PECL uopz 1 >= 1.0.3, PECL uopz 2)

uopz_restore — Restore a previously backed up function

Warnung

Diese Funktion wurde mit PECL uopz 5.0.0 ENTFERNT.

Beschreibung

uopz_restore ( string $function ) : void
uopz_restore ( string $class , string $function ) : void

Restore a previously backed up function

Parameter-Liste

class

The name of the class containing the function to restore

function

The name of the function

Rückgabewerte

Beispiele

Beispiel #1 uopz_restore() example

<?php
uopz_backup("fgets");
uopz_function("fgets", function(){
    return true;
});
var_dump(fgets());
uopz_restore('fgets');
fgets();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Warning: fgets() expects at least 1 parameter, 0 given in /path/to/script.php on line 8


Sets hook to execute when entering a function or method

  • « uopz_restore
  • uopz_set_mock »
  • PHP Manual
  • Uopz Funktionen
  • Sets hook to execute when entering a function or method

uopz_set_hook

(PECL uopz 5, PECL uopz 6)

uopz_set_hook — Sets hook to execute when entering a function or method

Beschreibung

uopz_set_hook ( string $function , Closure $hook ) : bool
uopz_set_hook ( string $class , string $function , Closure $hook ) : bool

Sets a hook to execute when entering a function or method.

Parameter-Liste

class

The name of the class.

function

The name of the function or method.

hook

A closure to execute when entering the function or method.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Basic uopz_set_hook() Usage

<?php
function foo() {
    echo 'foo';
}
uopz_set_hook('foo', function () {echo 'bar';});
foo();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

barfoo

Siehe auch

  • uopz_get_hook() - Gets previously set hook on function or method
  • uopz_unset_hook() - Removes previously set hook on function or method


Use mock instead of class for new objects

  • « uopz_set_hook
  • uopz_set_property »
  • PHP Manual
  • Uopz Funktionen
  • Use mock instead of class for new objects

uopz_set_mock

(PECL uopz 5, PECL uopz 6)

uopz_set_mock — Use mock instead of class for new objects

Beschreibung

uopz_set_mock ( string $class , mixed $mock ) : void

If mock is a string containing the name of a class then it will be instantiated instead of class. mock can also be an object.

Hinweis:

Only dynamic access to properties and methods will use the mock object. Static access still uses the original class. See example below.

Parameter-Liste

class

The name of the class to be mocked.

mock

The mock to use in the form of a string containing the name of the class to use or an object. If a string is passed, it has to be the fully qualified class name. It is recommended to use the ::class magic constant in this case.

Changelog

Version | Beschreibung
uopz 6.0.0 | Mocking static members is no longer supported by this function. uopz_redefine() and uopz_set_return(), or Componere can be used instead.

Beispiele

Beispiel #1 uopz_set_mock() example

<?php
class A {
    public function who() {
        echo "A";
    }
}

class mockA {
    public function who() {
        echo "mockA";
    }
}

uopz_set_mock(A::class, mockA::class);
(new A)->who();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

mockA

Beispiel #2 uopz_set_mock() example

<?php
class A {
    public function who() {
        echo "A";
    }
}

uopz_set_mock(A::class, new class {
                            public function who() {
                                echo "mockA";
                            }
                        });
(new A)->who();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

mockA

Beispiel #3 uopz_set_mock() and static members

As of uopz 6.0.0 mocking static members is no longer supported.

<?php
class A {
    const CON = 'A';
    public static function who() {
        echo "A";
    }
}

uopz_set_mock(A::class, new class {
                            const CON = 'mockA';
                            public static function who() {
                                echo "mockA";
                            }
                        });
echo A::CON, PHP_EOL;
A::who();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

A
A

Output of the above example in uopz 5:

mockA
mockA

Siehe auch

  • uopz_get_mock() - Get the current mock for a class
  • uopz_unset_mock() - Unset previously set mock


Sets value of existing class or instance property

  • « uopz_set_mock
  • uopz_set_return »
  • PHP Manual
  • Uopz Funktionen
  • Sets value of existing class or instance property

uopz_set_property

(PECL uopz 5, PECL uopz 6)

uopz_set_property — Sets value of existing class or instance property

Beschreibung

uopz_set_property ( string $class , string $property , mixed $value ) : void
uopz_set_property ( object $instance , string $property , mixed $value ) : void

Sets the value of an existing static class property, if class is given, or the value of an instance property (regardless whether the instance property already exists), if instance is given.

Parameter-Liste

class

The name of the class.

instance

The object instance.

property

The name of the property.

value

The value to assign to the property.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Basic uopz_set_property() Usage

<?php
class Foo {
   private static $staticBar;
   private $bar;
   public static function testStaticBar() {
      return self::$staticBar;
   }
   public function testBar() {
      return $this->bar;
   }
}
$foo = new Foo;
uopz_set_property('Foo', 'staticBar', 10);
uopz_set_property($foo, 'bar', 100);
var_dump(Foo::testStaticBar());
var_dump($foo->testBar());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(10)

Siehe auch

  • uopz_get_property() - Gets value of class or instance property


Provide a return value for an existing function

  • « uopz_set_property
  • uopz_set_static »
  • PHP Manual
  • Uopz Funktionen
  • Provide a return value for an existing function

uopz_set_return

(PECL uopz 5, PECL uopz 6)

uopz_set_return — Provide a return value for an existing function

Beschreibung

uopz_set_return ( string $function , mixed $value , bool $execute = false ) : bool
uopz_set_return ( string $class , string $function , mixed $value , bool $execute = false ) : bool

Sets the return value of the function to value. If value is a Closure and execute is set, the Closure will be executed in place of the original function. It is possible to call the original function from the Closure.

Hinweis:

This function replaces uopz_rename().

Parameter-Liste

class

The name of the class containing the function

function

The name of an existing function

value

The value the function should return. If a Closure is provided and the execute flag is set, the Closure will be executed in place of the original function.

execute

If true, and a Closure was provided as the value, the Closure will be executed in place of the original function.

Rückgabewerte

True if succeeded, false otherwise.

Beispiele

Beispiel #1 uopz_set_return() example

<?php
uopz_set_return("strlen", 42);
echo strlen("Banana");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

42

Beispiel #2 uopz_set_return() example

<?php
uopz_set_return("strlen", function($str) { return strlen($str) * 2; }, true );
echo strlen("Banana");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

12

Beispiel #3 uopz_set_return() class example

<?php
class My {
    public static function strlen($arg) {
        return strlen($arg);
    }
}
uopz_set_return(My::class, "strlen", function($str) { return strlen($str) * 2; }, true );
echo My::strlen("Banana");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

12


Sets the static variables in function or method scope

  • « uopz_set_return
  • uopz_undefine »
  • PHP Manual
  • Uopz Funktionen
  • Sets the static variables in function or method scope

uopz_set_static

(PECL uopz 5, PECL uopz 6)

uopz_set_static — Sets the static variables in function or method scope

Beschreibung

uopz_set_static ( string $function , array $static ) : void
uopz_set_static ( string $class , string $function , array $static ) : void

Sets the static variables in function or method scope.

Parameter-Liste

class

The name of the class.

function

The name of the function or method.

static

The associative array of variable names mapped to their values.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Basic uopz_set_static() Usage

<?php
function foo() {
    static $bar = 'baz';
    var_dump($bar);
}
uopz_set_static('foo', ['bar' => 'qux']);
foo();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "qux"

Siehe auch

  • uopz_get_static() - Gets the static variables from function or method scope


Undefine a constant

  • « uopz_set_static
  • uopz_unset_hook »
  • PHP Manual
  • Uopz Funktionen
  • Undefine a constant

uopz_undefine

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6)

uopz_undefine — Undefine a constant

Beschreibung

uopz_undefine ( string $constant ) : bool
uopz_undefine ( string $class , string $constant ) : bool

Removes the constant at runtime

Parameter-Liste

class

The name of the class containing constant

constant

The name of an existing constant

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 uopz_undefine() example

<?php
define("MY", true);

uopz_undefine("MY");

var_dump(defined("MY"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)


Removes previously set hook on function or method

  • « uopz_undefine
  • uopz_unset_mock »
  • PHP Manual
  • Uopz Funktionen
  • Removes previously set hook on function or method

uopz_unset_hook

(PECL uopz 5, PECL uopz 6)

uopz_unset_hook — Removes previously set hook on function or method

Beschreibung

uopz_unset_hook ( string $function ) : bool
uopz_unset_hook ( string $class , string $function ) : bool

Removes the previously set hook on a function or method.

Parameter-Liste

class

The name of the class.

function

The name of the function or method.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Basic uopz_unset_hook() Usage

<?php
function foo() {
    echo 'foo';
}
uopz_set_hook('foo', function () {echo 'bar';});
foo();
echo PHP_EOL;
uopz_unset_hook('foo');
foo();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

barfoo
foo

Siehe auch

  • uopz_set_hook() - Sets hook to execute when entering a function or method
  • uopz_get_hook() - Gets previously set hook on function or method


Unset previously set mock

  • « uopz_unset_hook
  • uopz_unset_return »
  • PHP Manual
  • Uopz Funktionen
  • Unset previously set mock

uopz_unset_mock

(PECL uopz 5, PECL uopz 6)

uopz_unset_mock — Unset previously set mock

Beschreibung

uopz_unset_mock ( string $class ) : void

Unsets the previously set mock for class.

Parameter-Liste

class

The name of the mocked class.

Fehler/Exceptions

A RuntimeException is thrown, if no mock was previously set for class.

Beispiele

Beispiel #1 uopz_unset_mock() example

<?php
class A {
    public static function who() {
        echo "A";
    }
}

class mockA {
    public static function who() {
        echo "mockA";
    }
}

uopz_set_mock(A::class, mockA::class);
uopz_unset_mock(A::class);
A::who();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

A

Siehe auch

  • uopz_set_mock() - Use mock instead of class for new objects
  • uopz_get_mock() - Get the current mock for a class


Unsets a previously set return value for a function

  • « uopz_unset_mock
  • Weakref »
  • PHP Manual
  • Uopz Funktionen
  • Unsets a previously set return value for a function

uopz_unset_return

(PECL uopz 5, PECL uopz 6)

uopz_unset_return — Unsets a previously set return value for a function

Beschreibung

uopz_unset_return ( string $function ) : bool
uopz_unset_return ( string $class , string $function ) : bool

Unsets the return value of the function previously set by uopz_set_return().

Parameter-Liste

class

The name of the class containing the function

function

The name of the function

Rückgabewerte

True on success

Beispiele

Beispiel #1 uopz_unset_return() example

<?php
uopz_set_return("strlen", 42);
$len = strlen("Banana");
uopz_unset_return("strlen");
echo $len + strlen("Banana");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

48


Weak References

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Ressource-Typen
  • WeakRef — The WeakRef class
    • Weakref::acquire — Acquires a strong reference on that object
    • Weakref::__construct — Constructs a new weak reference
    • Weakref::get — Returns the object pointed to by the weak reference
    • Weakref::release — Releases a previously acquired reference
    • Weakref::valid — Checks whether the object referenced still exists
  • WeakMap — The WeakMap class
    • WeakMap::__construct — Constructs a new map
    • WeakMap::count — Counts the number of live entries in the map
    • WeakMap::current — Returns the current value under iteration
    • WeakMap::key — Returns the current key under iteration
    • WeakMap::next — Advances to the next map element
    • WeakMap::offsetExists — Checks whether a certain object is in the map
    • WeakMap::offsetGet — Returns the value pointed to by a certain object
    • WeakMap::offsetSet — Updates the map with a new key-value pair
    • WeakMap::offsetUnset — Removes an entry from the map
    • WeakMap::rewind — Rewinds the iterator to the beginning of the map
    • WeakMap::valid — Returns whether the iterator is still on a valid map element


Einführung

Weak references provide a non-intrusive gateway to ephemeral objects. Unlike normal (strong) references, weak references do not prevent the garbage collector from freeing that object. For this reason, an object may be destroyed even though a weak reference to that object still exists. In such conditions, the weak reference seamlessly becomes invalid.

Beispiel #1 Weakref usage example

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}

unset($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Object still exists!
object(MyClass)#1 (0) {
}
Destroying object!
Object is dead!


Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation
  • Ressource-Typen


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/weakref.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


  • « Installation
  • WeakRef »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert keine Ressource-Typen.


The WeakRef class

(PECL weakref >= 0.1.0)

Einführung

The WeakRef class provides a gateway to objects without preventing the garbage collector from freeing those objects. It also provides a way to turn a weak reference into a strong one.

Hinweis:

The class WeakRef is not to be confused with the class WeakReference.

Klassenbeschreibung

WeakRef {
/* Methoden */
public Weakref::__construct ( object $object )
public Weakref::acquire ( ) : bool
public Weakref::get ( ) : object
public Weakref::release ( ) : bool
public Weakref::valid ( ) : bool
}

Beispiele

Beispiel #1 WeakRef usage example

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new WeakRef($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}

unset($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Object still exists!
object(MyClass)#1 (0) {
}
Destroying object!
Object is dead!

Inhaltsverzeichnis

  • Weakref::acquire — Acquires a strong reference on that object
  • Weakref::__construct — Constructs a new weak reference
  • Weakref::get — Returns the object pointed to by the weak reference
  • Weakref::release — Releases a previously acquired reference
  • Weakref::valid — Checks whether the object referenced still exists


Acquires a strong reference on that object

  • « WeakRef
  • Weakref::__construct »
  • PHP Manual
  • WeakRef
  • Acquires a strong reference on that object

Weakref::acquire

(PECL weakref >= 0.1.0)

Weakref::acquire — Acquires a strong reference on that object

Beschreibung

public Weakref::acquire ( ) : bool

Acquires a strong reference on that object, virtually turning the weak reference into a strong one.

The Weakref instance maintains an internal acquired counter to track outstanding strong references. If the call to Weakref::acquire() is successful, this counter will be incremented by one.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the reference was valid and could be turned into a strong reference, false otherwise.

Beispiele

Beispiel #1 Weakref::acquire() example

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

$r1->acquire();

echo "Unsetting o1...\n";
unset($o1);

$o2 = $r1->get();

$r1->release();

echo "Unsetting o2...\n";
unset($o2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Unsetting o1...
Unsetting o2...
Destroying object!

Beispiel #2 Nested acquire/release example

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

echo "Acquiring...\n";
$r1->acquire();

echo "  Unsetting...\n";
unset($o1);

echo "  Acquiring...\n";
$r1->acquire();

echo "    Acquiring...\n";
$r1->acquire();

echo "    Releasing...\n";
$r1->release();

echo "  Releasing...\n";
$r1->release();

echo "Releasing...\n";
$r1->release();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Acquiring...
  Unsetting...
  Acquiring...
    Acquiring...
    Releasing...
  Releasing...
Releasing...
Destroying object!

Siehe auch

  • Weakref::release() - Releases a previously acquired reference


Constructs a new weak reference

  • « Weakref::acquire
  • Weakref::get »
  • PHP Manual
  • WeakRef
  • Constructs a new weak reference

Weakref::__construct

(PECL weakref >= 0.1.0)

Weakref::__construct — Constructs a new weak reference

Beschreibung

public Weakref::__construct ( object $object )

Constructs a new weak reference.

Parameter-Liste

object

The object to reference.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Weakref::__construct() example

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}

unset($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Object still exists!
object(MyClass)#1 (0) {
}
Destroying object!
Object is dead!


Returns the object pointed to by the weak reference

  • « Weakref::__construct
  • Weakref::release »
  • PHP Manual
  • WeakRef
  • Returns the object pointed to by the weak reference

Weakref::get

(PECL weakref >= 0.1.0)

Weakref::get — Returns the object pointed to by the weak reference

Beschreibung

public Weakref::get ( ) : object

Returns the object pointed to by the weak reference.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the object if the reference is still valid, null otherwise.

Siehe auch

  • Weakref::valid() - Checks whether the object referenced still exists


Releases a previously acquired reference

  • « Weakref::get
  • Weakref::valid »
  • PHP Manual
  • WeakRef
  • Releases a previously acquired reference

Weakref::release

(PECL weakref >= 0.1.0)

Weakref::release — Releases a previously acquired reference

Beschreibung

public Weakref::release ( ) : bool

Releases a previously acquired reference, potentially turning a strong reference back into a weak reference.

The Weakref instance maintains an internal acquired counter to track outstanding strong references. If the call to Weakref::release() is successful, this counter will be decremented by one. Once this counter reaches zero, the strong reference is turned back into a weak reference.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the reference was previously acquired and thus could be released, false otherwise.

Beispiele

Beispiel #1 Weakref::release() example

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

$r1->acquire();

echo "Unsetting o1...\n";
unset($o1);

$o2 = $r1->get();

$r1->release();

echo "Unsetting o2...\n";
unset($o2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Unsetting o1...
Unsetting o2...
Destroying object!

Siehe auch

  • Weakref::acquire() - Acquires a strong reference on that object


Checks whether the object referenced still exists

  • « Weakref::release
  • WeakMap »
  • PHP Manual
  • WeakRef
  • Checks whether the object referenced still exists

Weakref::valid

(PECL weakref >= 0.1.0)

Weakref::valid — Checks whether the object referenced still exists

Beschreibung

public Weakref::valid ( ) : bool

Checks whether the object referenced still exists.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the object still exists and is thus still accessible via Weakref::get(), false otherwise.

Siehe auch

  • Weakref::get() - Returns the object pointed to by the weak reference


The WeakMap class

(PECL weakref >= 0.2.0)

Einführung

Klassenbeschreibung

WeakMap implements Countable , ArrayAccess , Iterator {
/* Methoden */
public __construct ( )
public count ( ) : int
public current ( ) : mixed
public key ( ) : object
public next ( ) : void
public offsetExists ( object $object ) : bool
public offsetGet ( object $object ) : mixed
public offsetSet ( object $object , mixed $value ) : void
public offsetUnset ( object $object ) : void
public rewind ( ) : void
public valid ( ) : bool
}

Beispiele

Beispiel #1 Weakmap usage example

<?php
$wm = new WeakMap();

$o = new StdClass;

class A {
    public function __destruct() {
        echo "Dead!\n";
    }
}

$wm[$o] = new A;

var_dump(count($wm));
echo "Unsetting...\n";
unset($o);
echo "Done\n";
var_dump(count($wm));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)
Unsetting...
Dead!
Done
int(0)

Inhaltsverzeichnis

  • WeakMap::__construct — Constructs a new map
  • WeakMap::count — Counts the number of live entries in the map
  • WeakMap::current — Returns the current value under iteration
  • WeakMap::key — Returns the current key under iteration
  • WeakMap::next — Advances to the next map element
  • WeakMap::offsetExists — Checks whether a certain object is in the map
  • WeakMap::offsetGet — Returns the value pointed to by a certain object
  • WeakMap::offsetSet — Updates the map with a new key-value pair
  • WeakMap::offsetUnset — Removes an entry from the map
  • WeakMap::rewind — Rewinds the iterator to the beginning of the map
  • WeakMap::valid — Returns whether the iterator is still on a valid map element


Constructs a new map

  • « WeakMap
  • WeakMap::count »
  • PHP Manual
  • WeakMap
  • Constructs a new map

WeakMap::__construct

(PECL weakref >= 0.2.0)

WeakMap::__construct — Constructs a new map

Beschreibung

public WeakMap::__construct ( )

Constructs a new map.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Counts the number of live entries in the map

  • « WeakMap::__construct
  • WeakMap::current »
  • PHP Manual
  • WeakMap
  • Counts the number of live entries in the map

WeakMap::count

(PECL weakref >= 0.2.0)

WeakMap::count — Counts the number of live entries in the map

Beschreibung

public WeakMap::count ( ) : int

Counts the number of live entries in the map.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of live entries in the map.


Returns the current value under iteration

  • « WeakMap::count
  • WeakMap::key »
  • PHP Manual
  • WeakMap
  • Returns the current value under iteration

WeakMap::current

(PECL weakref >= 0.2.0)

WeakMap::current — Returns the current value under iteration

Beschreibung

public WeakMap::current ( ) : mixed

Returns the current value being iterated on in the map.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value currently being iterated on.


Returns the current key under iteration

  • « WeakMap::current
  • WeakMap::next »
  • PHP Manual
  • WeakMap
  • Returns the current key under iteration

WeakMap::key

(PECL weakref >= 0.2.0)

WeakMap::key — Returns the current key under iteration

Beschreibung

public WeakMap::key ( ) : object

Returns the object serving as key in the map, at the current iterating position.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The object key currently being iterated.


Advances to the next map element

  • « WeakMap::key
  • WeakMap::offsetExists »
  • PHP Manual
  • WeakMap
  • Advances to the next map element

WeakMap::next

(PECL weakref >= 0.2.0)

WeakMap::next — Advances to the next map element

Beschreibung

public WeakMap::next ( ) : void

Advances to the next map element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Checks whether a certain object is in the map

  • « WeakMap::next
  • WeakMap::offsetGet »
  • PHP Manual
  • WeakMap
  • Checks whether a certain object is in the map

WeakMap::offsetExists

(PECL weakref >= 0.2.0)

WeakMap::offsetExists — Checks whether a certain object is in the map

Beschreibung

public WeakMap::offsetExists ( object $object ) : bool

Checks whether the passed object is referenced in the map.

Parameter-Liste

object

Object to check for.

Rückgabewerte

Returns true if the object is contained in the map, false otherwise.


Returns the value pointed to by a certain object

  • « WeakMap::offsetExists
  • WeakMap::offsetSet »
  • PHP Manual
  • WeakMap
  • Returns the value pointed to by a certain object

WeakMap::offsetGet

(PECL weakref >= 0.2.0)

WeakMap::offsetGet — Returns the value pointed to by a certain object

Beschreibung

public WeakMap::offsetGet ( object $object ) : mixed

Returns the value pointed to by a certain object.

Parameter-Liste

object

Some object contained as key in the map.

Rückgabewerte

Returns the value associated to the object passed as argument, null otherwise.


Updates the map with a new key-value pair

  • « WeakMap::offsetGet
  • WeakMap::offsetUnset »
  • PHP Manual
  • WeakMap
  • Updates the map with a new key-value pair

WeakMap::offsetSet

(PECL weakref >= 0.2.0)

WeakMap::offsetSet — Updates the map with a new key-value pair

Beschreibung

public WeakMap::offsetSet ( object $object , mixed $value ) : void

Updates the map with a new key-value pair. If the key already existed in the map, the old value is replaced with the new.

Parameter-Liste

object

The object serving as key of the key-value pair.

value

The arbitrary data serving as value of the key-value pair.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Removes an entry from the map

  • « WeakMap::offsetSet
  • WeakMap::rewind »
  • PHP Manual
  • WeakMap
  • Removes an entry from the map

WeakMap::offsetUnset

(PECL weakref >= 0.2.0)

WeakMap::offsetUnset — Removes an entry from the map

Beschreibung

public WeakMap::offsetUnset ( object $object ) : void

Removes an entry from the map.

Parameter-Liste

object

The key object to remove from the map.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Rewinds the iterator to the beginning of the map

  • « WeakMap::offsetUnset
  • WeakMap::valid »
  • PHP Manual
  • WeakMap
  • Rewinds the iterator to the beginning of the map

WeakMap::rewind

(PECL weakref >= 0.2.0)

WeakMap::rewind — Rewinds the iterator to the beginning of the map

Beschreibung

public WeakMap::rewind ( ) : void

Rewinds the iterator to the beginning of the map.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Returns whether the iterator is still on a valid map element

  • « WeakMap::rewind
  • WinCache »
  • PHP Manual
  • WeakMap
  • Returns whether the iterator is still on a valid map element

WeakMap::valid

(PECL weakref >= 0.2.0)

WeakMap::valid — Returns whether the iterator is still on a valid map element

Beschreibung

public WeakMap::valid ( ) : bool

Returns whether the iterator is still on a valid map element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the iterator is on a valid element that can be accessed, false otherwise.


Windows Cache for PHP

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • WinCache Statistics Script
    • WinCache Session Handler
    • WinCache Functions Reroutes
    • Ressource-Typen
  • Vordefinierte Konstanten
  • WinCache Funktionen
    • wincache_fcache_fileinfo — Retrieves information about files cached in the file cache
    • wincache_fcache_meminfo — Retrieves information about file cache memory usage
    • wincache_lock — Acquires an exclusive lock on a given key
    • wincache_ocache_fileinfo — Retrieves information about files cached in the opcode cache
    • wincache_ocache_meminfo — Retrieves information about opcode cache memory usage
    • wincache_refresh_if_changed — Refreshes the cache entries for the cached files
    • wincache_rplist_fileinfo — Retrieves information about resolve file path cache
    • wincache_rplist_meminfo — Retrieves information about memory usage by the resolve file path cache
    • wincache_scache_info — Retrieves information about files cached in the session cache
    • wincache_scache_meminfo — Retrieves information about session cache memory usage
    • wincache_ucache_add — Adds a variable in user cache only if variable does not already exist in the cache
    • wincache_ucache_cas — Compares the variable with old value and assigns new value to it
    • wincache_ucache_clear — Deletes entire content of the user cache
    • wincache_ucache_dec — Decrements the value associated with the key
    • wincache_ucache_delete — Deletes variables from the user cache
    • wincache_ucache_exists — Checks if a variable exists in the user cache
    • wincache_ucache_get — Gets a variable stored in the user cache
    • wincache_ucache_inc — Increments the value associated with the key
    • wincache_ucache_info — Retrieves information about data stored in the user cache
    • wincache_ucache_meminfo — Retrieves information about user cache memory usage
    • wincache_ucache_set — Adds a variable in user cache and overwrites a variable if it already exists in the cache
    • wincache_unlock — Releases an exclusive lock on a given key
  • Building for Windows
    • Prerequisites
    • Compiling and building
    • Verifying the build


Einführung

Windows Cache Extension for PHP is a PHP accelerator that is used to increase the speed of PHP applications running on Windows and Windows Server. Once the Windows Cache Extension for PHP is enabled and loaded by the PHP engine, PHP applications can take advantage of the functionality without any code modifications.

The Windows Cache Extension includes 5 different types of caches. The following describes the purpose of each cache type and the benefits it provides.

  • PHP Opcode Cache - PHP is a script processing engine, which reads an input stream of data that contains text and/or PHP instructions and produces another stream of data, most commonly in the HTML format. This means that on a web server the PHP engine reads, parses, compiles and executes a PHP script each time that it is requested by a Web client. The reading, parsing and compilation operations put additional load on the web server's CPU and file system and thus affect the overall performance of a PHP web application. The PHP bytecode (opcode) cache is used to store the compiled script bytecode in shared memory so that it can be re-used by PHP engine for subsequent executions of the same script.

    Support for opcode caching was removed in Wincache 2.0.0, all users who wish to have an opcache should use the OPcache extension that is included with PHP as of PHP 5.5.0.

  • File Cache - Even with the PHP opcode cache enabled, the PHP engine has to accesses the script files on a file system. When PHP scripts are stored on a remote UNC file share, the file operations introduce a significant performance overhead. The Windows Cache Extension for PHP includes a file cache that is used to store the content of the PHP script files in shared memory, which reduces the amount of file system operations performed by PHP engine.

  • Resolve File Path Cache - PHP scripts very often include or operate with files by using relative file paths. Every file path has to be normalized to an absolute file path by the PHP engine. When a PHP application uses many PHP files and accesses them by relative paths, the operation of resolving the paths may negatively impact the application's performance. The Windows Cache Extension for PHP provides a Resolve File Path cache, which is used to store the mappings between relative and absolute file paths, thereby reducing the number of path resolutions that the PHP engine has to perform.

  • User Cache (available since version 1.1.0) - PHP scripts can take advantage of the shared memory cache by using the user cache API's. PHP objects and variables can be stored in the user cache and then re-used on subsequent requests. This can be used to improve performance of PHP scripts and to share the data across multiple PHP processes.

  • Session Handler (available since version 1.1.0) - The WinCache session handler can be used to store the PHP session data in the shared memory cache. This avoids file system operations for reading and writing session data, which improves performance when large amount of data is stored in PHP session.


Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation
  • Laufzeit-Konfiguration
  • WinCache Statistics Script
  • WinCache Session Handler
  • WinCache Functions Reroutes
  • Ressource-Typen


Anforderungen

The extension is currently supported only on the following configurations:

Windows OS:

  • Windows XP SP3 with IIS 5.1 and » FastCGI Extension
  • Windows Server 2003 with IIS 6.0 and » FastCGI Extension
  • Windows Vista SP1 with IIS 7.0 and FastCGI Module
  • Windows Server 2008 with IIS 7.0 and FastCGI Module
  • Windows 7 with IIS 7.5 and FastCGI Module
  • Windows Server 2008 R2 with IIS 7.5 and FastCGI Module

PHP:

  • PHP 5.2.X, Non-thread-safe build
  • PHP 5.3 X86, Non-thread-safe VC9 build

Hinweis: The WinCache Extension can only be used when IIS is configured to run PHP via FastCGI.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/wincache.

There are two packages for this extension: one package is for PHP versions 5.2.X, and the other package is for PHP 5.3.X. Select the package that is appropriate for the PHP version being used.

To install and enable the extension, follow these steps:

  1. Unpack the package into some temporary location.

  2. Copy the php_wincache.dll file into the PHP extensions folder. Typically this folder is called "ext" and it is located in the same folder with all PHP binary files. For example: C:\Program Files\PHP\ext.

  3. Using a text editor, open the php.ini file, which is usually located in the same folder where all PHP binary files are. For example: C:\Program Files\PHP\php.ini.

  4. Add the following line at the end of the php.ini file: extension = php_wincache.dll.

  5. Save and close the php.ini file.

  6. Recycle the IIS Application Pools for PHP to pick up the configuration changes. To check that the extension has been enabled, create a file called phpinfo.php with a PHP code that calls phpinfo function.

  7. Save the phpinfo.php file in the root folder of a IIS web site that uses PHP, then open a browser and make a request to http://localhost/phpinfo.php. Search within the returned web page for a section called wincache. If the extension is enabled, then the phpinfo output will list the configuration settings provided by the WinCache.

Hinweis: Do not forget to remove phpinfo.php file from the web site's root folder after verifying that extension has been enabled.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

The following table lists and explains the configuration settings provided by the WinCache extension:

WinCache configuration options
Name | Standard | Minimum | Maximum | Veränderbar | Changelog
wincache.fcenabled | "1" | "0" | "1" | PHP_INI_ALL | Available as of WinCache 1.0.0
wincache.fcenabledfilter | "NULL" | "NULL" | "NULL" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.fcachesize | "24" | "5" | "255" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.fcndetect | "1" | "0" | "1" | PHP_INI_SYSTEM | Available as of WinCache 1.1.0
wincache.maxfilesize | "256" | "10" | "2048" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.ocenabled | "1" | "0" | "1" | PHP_INI_ALL | Available as of WinCache 1.0.0. Removed as of 2.0.0.0
wincache.ocenabledfilter | "NULL" | "NULL" | "NULL" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0. Removed as of 2.0.0.0
wincache.ocachesize | "96" | "15" | "255" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0. Removed as of 2.0.0.0
wincache.filecount | "4096" | "1024" | "16384" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.chkinterval | "30" | "0" | "300" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.ttlmax | "1200" | "0" | "7200" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.enablecli | 0 | 0 | 1 | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.ignorelist | NULL | NULL | NULL | PHP_INI_ALL | Available as of WinCache 1.0.0
wincache.namesalt | NULL | NULL | NULL | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.ucenabled | 1 | 0 | 1 | PHP_INI_SYSTEM | Available as of WinCache 1.1.0
wincache.ucachesize | 8 | 5 | 85 | PHP_INI_SYSTEM | Available as of WinCache 1.1.0
wincache.scachesize | 8 | 5 | 85 | PHP_INI_SYSTEM | Available as of WinCache 1.1.0
wincache.rerouteini | NULL | NULL | NULL | PHP_INI_SYSTEM | Available as of WinCache 1.2.0. Removed as of 1.3.7
wincache.reroute_enabled | 1 | 0 | 1 | PHP_INI_SYSTEM | PHP_INI_PERDIR | Available as of WinCache 1.3.7
wincache.srwlocks | 1 | 0 | 1 | PHP_INI_SYSTEM | Available as of WinCache 1.3.6.3. Removed as of 2.0.0.0
wincache.filemapdir | NULL | NULL | NULL | PHP_INI_SYSTEM | Available as of WinCache 1.3.7.4
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

wincache.fcenabled bool
Enables or disables the file cache functionality.
wincache.fcenabledfilter string
Defines a comma-separated list of IIS web site identifiers where file cache should be enabled or disabled. This setting works in conjunction with wincache.fcenabled: if wincache.fcenabled is set to 1, then the sites listed in the wincache.fcenabledfilter will have the file cache turned off; if wincache.fcenabled is set to 0, then the sites listed in the wincache.fcenabledfilter will have the file cache turned on.
wincache.fcachesize int
Defines the maximum memory size (in megabytes) that is allocated for the file cache. If the total size of all the cached files exceeds the value specified in this setting, then most stale files will be removed from the file cache.
wincache.fcndetect bool
Enables or disables the file change notification detection functionality. If file change notification is supported then it will be used to refresh the opcode and file cache entries as soon as the corresponding files are modified on a file system. If file change notification is not supported, for example when using network file shares, then wincache will poll for file changes at regular time intervals specified by wincache.chkinterval.
wincache.maxfilesize int
Defines the maximum allowed size (in kilobytes) for a single file to be cached. If a file size exceeds the specified value, the file will not be cached. This setting applies to the file cache only.
wincache.ocenabled bool
Warnung

This option has been REMOVED as of 2.0.0.0

Enables or disables the opcode cache functionality
wincache.ocenabledfilter string
Warnung

This option has been REMOVED as of 2.0.0.0

Defines a comma-separated list of IIS web site identifiers where opcode cache should be enabled or disabled. This setting works in conjunction with wincache.ocenabled: if wincache.ocenabled is set to 1, then the sites listed in the wincache.ocenabledfilter will have the opcode cache turned off; if wincache.ocenabled is set to 0, then the sites listed in the wincache.ocenabledfilter will have the opcode cache turned on.
wincache.ocachesize int
Warnung

This option has been REMOVED as of 2.0.0.0

Defines the maximum memory size (in megabytes) that is allocated for the opcode cache. If the cached opcode size exceeds the specified value, then most stale opcode will be removed from the cache. Note that the opcode cache size must be at least 3 times bigger than file cache size. If that is not the case the opcode cache size will be automatically increased.
wincache.filecount int
Defines how many files are expected to be cached by the extension, so that appropriate memory size is allocated at the startup time. If the number of files exceeds the specified value, the WinCache will re-allocate more memory as needed.
wincache.chkinterval int
Defines how often (in seconds) the extension checks for file changes in order to refresh the cache. Setting it to 0 will disable the refreshing of the cache. The file changes will not be reflected in the cache unless the cache entry for that file is removed by scavenger or IIS application pool is recycled or wincache_refresh_if_changed function is called.
wincache.ttlmax int
Defines the maximum time to live (in seconds) for a cached entry without being used. Setting it to 0 will disable the cache scavenger, so the cached entries will never be removed from the cache during the lifetime of the IIS worker process.
wincache.enablecli bool
Defines if caching is enabled when PHP is running in command line (CLI) mode.
wincache.ignorelist string

Defines a list of files that should not be cached by the extension. The files list is specified by using file names only, separated by the pipe symbol - "|".

Beispiel #1 wincache.ignorelist example

wincache.ignorelist = "index.php|misc.php|admin.php"

wincache.namesalt string
Defines a string that will be used when naming the extension specific objects that are stored in shared memory. This is used to avoid conflicts that may be caused if other applications within an IIS worker process tries to access shared memory. The length of the namesalt string cannot exceed 8 characters.
wincache.ucenabled bool
Enables or disables the user cache functionality.
wincache.ucachesize int
Defines the maximum memory size in megabytes that is allocated for the user cache. If the total size of variables stored in the user cache exceeds the specified value, then the most stale variables will be removed from the cache.
wincache.scachesize int
Defines the maximum memory size in megabytes that is allocated for the session cache. If the total size of data stored in the session cache exceeds the specified value, then the most stale data will be removed from the cache.
wincache.rerouteini string
Warnung

This option has been REMOVED as of 1.3.7. See wincache.reroute_enabled for similar functionality as of 1.3.7.

Specifies an absolute or a relateve path to the reroute.ini file that contains the list of PHP functions whose implementation should be replaced with the WinCache function equivalents. If a relative path is specified then it is assumed to be relative to the location of php-cgi.exe file.
wincache.reroute_enabled bool
Enables or disables the rerouting of certain file I/O functions through the file cache.
wincache.srwlocks bool
Warnung

This option has been REMOVED as of 2.0.0.0

Enables or disables the use of shared reader/writer locks. Disabling is useful when troubleshooting deadlock conditions in WinCache.
wincache.filemapdir string
Specifies an absolute path to a directory where WinCache will store the temporary files used for shared memory segments. This directory must be on the local machine and not on a networked file system. If the directory is not specified, WinCache will use the Windows System Page File for all shared memory segments.


WinCache Statistics Script

The installation package for WinCache includes a PHP script, wincache.php, that can be used to obtain cache information and statistics.

If the WinCache extension was installed via the Microsoft Web Platform Installer, then this script is located in %SystemDrive%\Program Files\IIS\Windows Cache for PHP\. On a 64-bit version of the Windows Server operating system, the script is located in %SystemDrive%\Program Files (x86)\IIS\Windows Cache for PHP. If the extension was installed manually, then the wincache.php will be located in the same folder from which the content of the installation package was extracted.

To use wincache.php, copy it into a root folder of a Web site or into any subfolder. To protect the script, open it in any text editor and replace the values for USERNAME and PASSWORD constants. If any other IIS authentication is enabled on the server, then follow the instructions in the comments:

Beispiel #1 Authentication configuration for wincache.php

<?php
/**
 * ======================== CONFIGURATION SETTINGS ==============================
 * If you do not want to use authentication for this page, set USE_AUTHENTICATION to 0.
 * If you use authentication then replace the default password.
 */
define('USE_AUTHENTICATION', 1);
define('USERNAME', 'wincache');
define('PASSWORD', 'wincache');

/**
 * The Basic PHP authentication will work only when IIS is configured to support
 * Anonymous Authentication' and nothing else. If IIS is configured to support/use
 * any other kind of authentication like Basic/Negotiate/Digest etc, this will not work.
 * In that case use the array below to define the names of users in your
 * domain/network/workgroup which you want to grant access to.
 */
$user_allowed = array('DOMAIN\user1', 'DOMAIN\user2', 'DOMAIN\user3');

/**
 * If the array contains string 'all', then all the users authenticated by IIS
 * will have access to the page. Uncomment the below line and comment above line
 * to grant access to all users who gets authenticated by IIS.
 */
/* $user_allowed = array('all'); */

/** ===================== END OF CONFIGURATION SETTINGS ========================== */
?>

Hinweis: Always protect the wincache.php script by using either the built-in authentication or the server's authentication mechanism. Leaving this script unprotected may compromise the security of your web application and web server.


WinCache Session Handler

The WinCache session handler (available since WinCache 1.1.0) can be used to configure PHP to store the session data in shared memory session cache. Using shared memory instead of the default file session storage helps improve performance of PHP applications that store large amount of data in session objects. Wincache session cache uses file-backed shared memory, which ensures that the session data is not lost during recycling of IIS application pools.

To configure PHP to use WinCache session handler set the php.ini setting session.save_handler to wincache. By default the Windows temporary file location is used for storing the session data. To change the location of the session file use session.save_path directive.

Beispiel #1 Enabling WinCache session handler

session.save_handler = wincache
session.save_path = C:\inetpub\temp\session\


WinCache Functions Reroutes

NOTE: wincache.rerouteini was removed as of WinCache 1.3.7.0. It has been replaced with automatic function reroutes. See: wincache.reroute_enabled.

The WinCache functions reroutes (available since WinCache 1.2.0, removed since WinCache 1.3.7.0) can be used to replace built-in PHP functions with their equivalents that are optimized for a particular purpose. WinCache extension includes Windows-optimized implementation of PHP file functions that may improve performance of PHP applications in cases when PHP has to access files on network shares. The optimized implementation is provided for the following functions:

  • file_exists
  • file_get_contents
  • readfile
  • is_readable
  • is_writable
  • is_dir
  • realpath
  • filesize

To configure WinCache to use the functions reroutes use the file reroute.ini that is included in WinCache installation package. Copy this file into the same directory where php.ini file is located. After that add the wincache.rerouteini setting in php.ini and specify an absolute or relative path to the reroute.ini file.

Beispiel #1 Enabling WinCache functions reroutes

wincache.rerouteini = C:\PHP\reroute.ini

Hinweis: If WinCache functions reroutes are enabled it is recommended to increase the WinCache file cache size. This can be done by using wincache.fcachesize setting.

The reroute.ini file contains the mappings between the native PHP functions and their equivalents in WinCache. Each line in the file defines a mapping by using the following syntax:

<PHP function name>:[<number of function parameters>]=<wincache function name>

The example of the file is shown below. In this example the calls to PHP function file_get_contents() will be replaced with calls to wincache_file_get_contents() only if the number of parameters passed to the function is less than or equals to 2. Specifying the number of parameters is useful when replacement function does not handle all the function's parameters.

Beispiel #2 Reroute.ini file content

[FunctionRerouteList]
file_exists=wincache_file_exists
file_get_contents:2=wincache_file_get_contents
readfile:2=wincache_readfile
is_readable=wincache_is_readable
is_writable=wincache_is_writable
is_writeable=wincache_is_writable
is_file=wincache_is_file
is_dir=wincache_is_dir
realpath=wincache_realpath
filesize=wincache_filesize


  • « WinCache Functions Reroutes
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert keine Ressource-Typen.


  • « Ressource-Typen
  • WinCache Funktionen »
  • PHP Manual
  • WinCache
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


WinCache Funktionen

Inhaltsverzeichnis

  • wincache_fcache_fileinfo — Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo — Retrieves information about file cache memory usage
  • wincache_lock — Acquires an exclusive lock on a given key
  • wincache_ocache_fileinfo — Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo — Retrieves information about opcode cache memory usage
  • wincache_refresh_if_changed — Refreshes the cache entries for the cached files
  • wincache_rplist_fileinfo — Retrieves information about resolve file path cache
  • wincache_rplist_meminfo — Retrieves information about memory usage by the resolve file path cache
  • wincache_scache_info — Retrieves information about files cached in the session cache
  • wincache_scache_meminfo — Retrieves information about session cache memory usage
  • wincache_ucache_add — Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_cas — Compares the variable with old value and assigns new value to it
  • wincache_ucache_clear — Deletes entire content of the user cache
  • wincache_ucache_dec — Decrements the value associated with the key
  • wincache_ucache_delete — Deletes variables from the user cache
  • wincache_ucache_exists — Checks if a variable exists in the user cache
  • wincache_ucache_get — Gets a variable stored in the user cache
  • wincache_ucache_inc — Increments the value associated with the key
  • wincache_ucache_info — Retrieves information about data stored in the user cache
  • wincache_ucache_meminfo — Retrieves information about user cache memory usage
  • wincache_ucache_set — Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_unlock — Releases an exclusive lock on a given key


Retrieves information about files cached in the file cache

  • « WinCache Funktionen
  • wincache_fcache_meminfo »
  • PHP Manual
  • WinCache Funktionen
  • Retrieves information about files cached in the file cache

wincache_fcache_fileinfo

(PECL wincache >= 1.0.0)

wincache_fcache_fileinfo — Retrieves information about files cached in the file cache

Beschreibung

wincache_fcache_fileinfo ( bool $summaryonly = false ) : array|false

Retrieves information about file cache content and its usage.

Parameter-Liste

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the file cache summary.

Rückgabewerte

Array of meta data about file cache Im Fehlerfall wird false zurückgegeben.

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the file cache has been active
  • total_file_count - total number of files that are currently in the file cache
  • total_hit_count - number of times the files have been served from the file cache
  • total_miss_count - number of times the files have not been found in the file cache

  • file_entries - an array that contains the information about all the cached files:

    • file_name - absolute file name of the cached file
    • add_time - time in seconds since the file has been added to the file cache
    • use_time - time in seconds since the file has been accessed in the file cache
    • last_check - time in seconds since the file has been checked for modifications
    • hit_count - number of times the file has been served from the cache
    • file_size - size of the cached file in bytes

Beispiele

Beispiel #1 A wincache_fcache_fileinfo() example

<pre>
<?php
print_r(wincache_fcache_fileinfo());
?>
</pre>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(   [total_cache_uptime] => 3234
    [total_file_count] => 5
    [total_hit_count] => 0
    [total_miss_count] => 1
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 1
                    [use_time] => 0
                    [last_check] => 1
                    [hit_count] => 1
                    [file_size] => 2435
                )
            [2] => Array (...iterates for each cached file)
        )
)

Siehe auch

  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about file cache memory usage

  • « wincache_fcache_fileinfo
  • wincache_lock »
  • PHP Manual
  • WinCache Funktionen
  • Retrieves information about file cache memory usage

wincache_fcache_meminfo

(PECL wincache >= 1.0.0)

wincache_fcache_meminfo — Retrieves information about file cache memory usage

Beschreibung

wincache_fcache_meminfo ( ) : array|false

Retrieves information about memory usage by file cache.

Rückgabewerte

Array of meta data about file cache memory usage Im Fehlerfall wird false zurückgegeben.

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the file cache
  • memory_free - amount of free memory in bytes available for the file cache
  • num_used_blks - number of memory blocks used by the file cache
  • num_free_blks - number of free memory blocks available for the file cache
  • memory_overhead - amount of memory in bytes used for the file cache internal structures

Beispiele

Beispiel #1 A wincache_fcache_meminfo() example

<pre>
<?php
print_r(wincache_fcache_meminfo());
?>
</pre>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [memory_total] => 134217728
    [memory_free] => 131339120
    [num_used_blks] => 361
    [num_free_blks] => 3
    [memory_overhead] => 5856
)

Siehe auch

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Acquires an exclusive lock on a given key

  • « wincache_fcache_meminfo
  • wincache_ocache_fileinfo »
  • PHP Manual
  • WinCache Funktionen
  • Acquires an exclusive lock on a given key

wincache_lock

(PECL wincache >= 1.1.0)

wincache_lock — Acquires an exclusive lock on a given key

Beschreibung

wincache_lock ( string $key , bool $isglobal = false ) : bool

Obtains an exclusive lock on a given key. The execution of the current script will be blocked until the lock can be obtained. Once the lock is obtained, the other scripts that try to request the lock by using the same key will be blocked, until the current script releases the lock by using wincache_unlock().

Warnung

Using of the wincache_lock() and wincache_unlock() can cause deadlocks when executing PHP scripts in a multi-process environment like FastCGI. Do not use these functions unless you are absolutely sure you need to use them. For the majority of the operations on the user cache it is not necessary to use these functions.

Parameter-Liste

key

Name of the key in the cache to get the lock on.

isglobal

Controls whether the scope of the lock is system-wide or local. Local locks are scoped to the application pool in IIS FastCGI case or to all php processes that have the same parent process identifier.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Using wincache_lock()

<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock(“lock_txt_lock”)) { // do an exclusive lock
    ftruncate($fp, 0); // truncate file
    fwrite($fp, "Write something here\n");
    wincache_unlock(“lock_txt_lock”); // release the lock
} else {
    echo "Couldn't get the lock!";
}
fclose($fp);
?>

Siehe auch

  • wincache_unlock() - Releases an exclusive lock on a given key
  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache


Retrieves information about files cached in the opcode cache

  • « wincache_lock
  • wincache_ocache_meminfo »
  • PHP Manual
  • WinCache Funktionen
  • Retrieves information about files cached in the opcode cache

wincache_ocache_fileinfo

(PECL wincache >= 1.0.0)

wincache_ocache_fileinfo — Retrieves information about files cached in the opcode cache

Beschreibung

wincache_ocache_fileinfo ( bool $summaryonly = false ) : array|false

Retrieves information about opcode cache content and its usage.

Warnung

Diese Funktion wurde mit PHP 7.0.0 ENTFERNT.

Parameter-Liste

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the opcode cache summary.

Rückgabewerte

Array of meta data about opcode cache Im Fehlerfall wird false zurückgegeben.

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the opcode cache has been active
  • total_file_count - total number of files that are currently in the opcode cache
  • total_hit_count - number of times the compiled opcode have been served from the cache
  • total_miss_count - number of times the compiled opcode have not been found in the cache
  • is_local_cache - true is the cache metadata is for a local cache instance, false if the metadata is for the global cache

  • file_entries - an array that contains the information about all the cached files:

    • file_name - absolute file name of the cached file
    • add_time - time in seconds since the file has been added to the opcode cache
    • use_time - time in seconds since the file has been accessed in the opcode cache
    • last_check - time in seconds since the file has been checked for modifications
    • hit_count - number of times the file has been served from the cache
    • function_count - number of functions in the cached file
    • class_count - number of classes in the cached file

Beispiele

Beispiel #1 A wincache_ocache_fileinfo() example

<pre>
<?php
print_r(wincache_ocache_fileinfo());
?>
</pre>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [total_cache_uptime] => 17357
    [total_file_count] => 121
    [total_hit_count] => 36562
    [total_miss_count] => 201
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 17356
                    [use_time] => 7
                    [last_check] => 10
                    [hit_count] => 454
                    [function_count] => 0
                    [class_count] => 1
                )
            [2] => Array (...iterates for each cached file)
        )
)

Siehe auch

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about opcode cache memory usage

  • « wincache_ocache_fileinfo
  • wincache_refresh_if_changed »
  • PHP Manual
  • WinCache Funktionen
  • Retrieves information about opcode cache memory usage

wincache_ocache_meminfo

(PECL wincache >= 1.0.0)

wincache_ocache_meminfo — Retrieves information about opcode cache memory usage

Beschreibung

wincache_ocache_meminfo ( ) : array|false

Retrieves information about memory usage by opcode cache.

Rückgabewerte

Array of meta data about opcode cache memory usage Im Fehlerfall wird false zurückgegeben.

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the opcode cache
  • memory_free - amount of free memory in bytes available for the opcode cache
  • num_used_blks - number of memory blocks used by the opcode cache
  • num_free_blks - number of free memory blocks available for the opcode cache
  • memory_overhead - amount of memory in bytes used for the opcode cache internal structures

Warnung

Diese Funktion wurde mit PHP 7.0.0 ENTFERNT.

Beispiele

Beispiel #1 A wincache_ocache_meminfo() example

<pre>
<?php
print_r(wincache_ocache_meminfo());
?>
</pre>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [memory_total] => 134217728
    [memory_free] => 112106972
    [num_used_blks] => 15469
    [num_free_blks] => 4
    [memory_overhead] => 247600
)

Siehe auch

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Refreshes the cache entries for the cached files

  • « wincache_ocache_meminfo
  • wincache_rplist_fileinfo »
  • PHP Manual
  • WinCache Funktionen
  • Refreshes the cache entries for the cached files

wincache_refresh_if_changed

(PECL wincache >= 1.0.0)

wincache_refresh_if_changed — Refreshes the cache entries for the cached files

Beschreibung

wincache_refresh_if_changed ( array $files = NULL ) : bool

Refreshes the cache entries for the files, whose names were passed in the input argument. If no argument is specified then refreshes all the entries in the cache.

Parameter-Liste

files

An array of file names for files that need to be refreshed. An absolute or relative file paths can be used.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

WinCache performs regular checks on the cached files to ensure that if any file has changed then the corresponding entry in the cache is updated. By default this check is performed every 30 seconds. If, for example, a PHP script updates another PHP script where the application's configuration settings are stored, then it may happen that after the configuration settings have been saved to a file, the application is still using old settings for some time until the cache is refreshed. In those cases it may be preferrable to refresh the cache right after the file has been changed. The following example shows how this can be done.

Beispiel #1 A wincache_refresh_if_changed() example

<?php
$filename = 'C:\inetpub\wwwroot\config.php';
$handle = fopen($filename, 'w+');
if ($handle === FALSE) die('Failed to open file '.$filename.' for writing');
fwrite($handle, '<?php $setting=something; ?>');
fclose($handle);
wincache_refresh_if_changed(array($filename));
?>

Siehe auch

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Retrieves information about resolve file path cache

  • « wincache_refresh_if_changed
  • wincache_rplist_meminfo »
  • PHP Manual
  • WinCache Funktionen
  • Retrieves information about resolve file path cache

wincache_rplist_fileinfo

(PECL wincache >= 1.0.0)

wincache_rplist_fileinfo — Retrieves information about resolve file path cache

Beschreibung

wincache_rplist_fileinfo ( bool $summaryonly = false ) : array|false

Retrieves information about cached mappings between relative file paths and corresponding absolute file paths.

Rückgabewerte

Array of meta data about the resolve file path cache Im Fehlerfall wird false zurückgegeben.

The array returned by this function contains the following elements:

  • total_file_count - total number of file path mappings stored in the cache

  • rplist_entries - an array that contains the information about all the cached file paths:

    • resolve_path - path to a file
    • subkey_data - corresponding absolute path to a file

Beispiele

Beispiel #1 A wincache_rplist_fileinfo() example

<pre>
<?php
print_r(wincache_rplist_fileinfo());
?>
</pre>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [total_file_count] => 5
    [rplist_entries] => Array
        (
            [1] => Array
                (
                    [resolve_path] => checkcache.php
                    [subkey_data] => c:\inetpub\wwwroot|c:\inetpub\wwwroot\checkcache.php
                )

            [2] => Array (...iterates for each cached file)
        )
)

Siehe auch

  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about memory usage by the resolve file path cache

  • « wincache_rplist_fileinfo
  • wincache_scache_info »
  • PHP Manual
  • WinCache Funktionen
  • Retrieves information about memory usage by the resolve file path cache

wincache_rplist_meminfo

(PECL wincache >= 1.0.0)

wincache_rplist_meminfo — Retrieves information about memory usage by the resolve file path cache

Beschreibung

wincache_rplist_meminfo ( ) : array|false

Retrieves information about memory usage by resolve file path cache.

Rückgabewerte

Array of meta data that describes memory usage by resolve file path cache. Im Fehlerfall wird false zurückgegeben.

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the resolve file path cache
  • memory_free - amount of free memory in bytes available for the resolve file path cache
  • num_used_blks - number of memory blocks used by the resolve file path cache
  • num_free_blks - number of free memory blocks available for the resolve file path cache
  • memory_overhead - amount of memory in bytes used for the internal structures of resolve file path cache

Beispiele

Beispiel #1 A wincache_rplist_meminfo() example

<pre>
<?php
print_r(wincache_rplist_meminfo());
?>
</pre>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [memory_total] => 9437184
    [memory_free] => 9416744
    [num_used_blks] => 23
    [num_free_blks] => 1
    [memory_overhead] => 416
)

Siehe auch

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about files cached in the session cache

  • « wincache_rplist_meminfo
  • wincache_scache_meminfo »
  • PHP Manual
  • WinCache Funktionen
  • Retrieves information about files cached in the session cache

wincache_scache_info

(PECL wincache >= 1.1.0)

wincache_scache_info — Retrieves information about files cached in the session cache

Beschreibung

wincache_scache_info ( bool $summaryonly = false ) : array|false

Retrieves information about session cache content and its usage.

Parameter-Liste

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the session cache summary.

Rückgabewerte

Array of meta data about session cache Im Fehlerfall wird false zurückgegeben.

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the session cache has been active
  • total_item_count - total number of elements that are currently in the session cache
  • is_local_cache - true is the cache metadata is for a local cache instance, false if the metadata is for the global cache
  • total_hit_count - number of times the data has been served from the cache
  • total_miss_count - number of times the data has not been found in the cache

  • scache_entries - an array that contains the information about all the cached items:

    • key_name - name of the key which is used to store the data
    • value_type - type of value stored by the key
    • use_time - time in seconds since the file has been accessed in the opcode cache
    • last_check - time in seconds since the file has been checked for modifications
    • ttl_seconds - time remaining for the data to live in the cache, 0 meaning infinite
    • age_seconds - time elapsed from the time data has been added in the cache
    • hitcount - number of times data has been served from the cache

Beispiele

Beispiel #1 A wincache_scache_info() example

<pre>
<?php
print_r(wincache_scache_info());
?>
</pre>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [total_cache_uptime] => 17357
    [total_file_count] => 121
    [total_hit_count] => 36562
    [total_miss_count] => 201
    [scache_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 17356
                    [use_time] => 7
                    [last_check] => 10
                    [hit_count] => 454
                    [function_count] => 0
                    [class_count] => 1
                )
            [2] => Array (...iterates for each cached file)
        )
)

Siehe auch

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about session cache memory usage

  • « wincache_scache_info
  • wincache_ucache_add »
  • PHP Manual
  • WinCache Funktionen
  • Retrieves information about session cache memory usage

wincache_scache_meminfo

(PECL wincache >= 1.1.0)

wincache_scache_meminfo — Retrieves information about session cache memory usage

Beschreibung

wincache_scache_meminfo ( ) : array|false

Retrieves information about memory usage by session cache.

Rückgabewerte

Array of meta data about session cache memory usage Im Fehlerfall wird false zurückgegeben.

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the session cache
  • memory_free - amount of free memory in bytes available for the session cache
  • num_used_blks - number of memory blocks used by the session cache
  • num_free_blks - number of free memory blocks available for the session cache
  • memory_overhead - amount of memory in bytes used for the session cache internal structures

Beispiele

Beispiel #1 A wincache_scache_meminfo() example

<pre>
<?php
print_r(wincache_scache_meminfo());
?>
</pre>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [memory_total] => 5242880
    [memory_free] => 5215056
    [num_used_blks] => 6
    [num_free_blks] => 3
    [memory_overhead] => 176
)

Siehe auch

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache


Adds a variable in user cache only if variable does not already exist in the cache

  • « wincache_scache_meminfo
  • wincache_ucache_cas »
  • PHP Manual
  • WinCache Funktionen
  • Adds a variable in user cache only if variable does not already exist in the cache

wincache_ucache_add

(PECL wincache >= 1.1.0)

wincache_ucache_add — Adds a variable in user cache only if variable does not already exist in the cache

Beschreibung

wincache_ucache_add ( string $key , mixed $value , int $ttl = 0 ) : bool
wincache_ucache_add ( array $values , mixed $unused = NULL , int $ttl = 0 ) : bool

Adds a variable in user cache, only if this variable doesn't already exist in the cache. The added variable remains in the user cache unless its time to live expires or it is deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Parameter-Liste

key

Store the variable using this key name. If a variable with same key is already present the function will fail and return false. key is case sensitive. To override the value even if key is present use wincache_ucache_set() function instad. key can also take array of name => value pairs where names will be used as keys. This can be used to add multiple values in the cache in one operation, thus avoiding race condition.

value

Value of a variable to store. Value supports all data types except resources, such as file handles. This paramter is ignored if first argument is an array. A general guidance is to pass null as value while using array as key. If value is an object, or an array containing objects, then the objects will be serialized. See __sleep() for details on serializing objects.

values

Associative array of keys and values.

ttl

Time for the variable to live in the cache in seconds. After the value specified in ttl has passed the stored variable will be deleted from the cache. This parameter takes a default value of 0 which means the variable will stay in the cache unless explicitly deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Rückgabewerte

If key is string, the function returns true on success and false on failure.

If key is an array, the function returns:

  • If all the name => value pairs in the array can be set, function returns an empty array;
  • If all the name => value pairs in the array cannot be set, function returns false;
  • If some can be set while others cannot, function returns an array with name=>value pair for which the addition failed in the user cache.

Beispiele

Beispiel #1 wincache_ucache_add() with key as a string

<?php
$bar = 'BAR';
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_get('foo'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
string(3) "BAR"

Beispiel #2 wincache_ucache_add() with key as an array

<?php
$colors_array = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(0) { }
array(4) {
  ["green"]=> int(-1)
  ["Blue"]=> int(-1)
  ["yellow"]=> int(-1)
  ["cyan"]=> int(-1)
}
string(1) "6"

Siehe auch

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • __sleep()


Compares the variable with old value and assigns new value to it

  • « wincache_ucache_add
  • wincache_ucache_clear »
  • PHP Manual
  • WinCache Funktionen
  • Compares the variable with old value and assigns new value to it

wincache_ucache_cas

(PECL wincache >= 1.1.0)

wincache_ucache_cas — Compares the variable with old value and assigns new value to it

Beschreibung

wincache_ucache_cas ( string $key , int $old_value , int $new_value ) : bool

Compares the variable associated with the key with old_value and if it matches then assigns the new_value to it.

Parameter-Liste

key

The key that is used to store the variable in the cache. key is case sensitive.

old_value

Old value of the variable pointed by key in the user cache. The value should be of type long, otherwise the function returns false.

new_value

New value which will get assigned to variable pointer by key if a match is found. The value should be of type long, otherwise the function returns false.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Using wincache_ucache_cas()

<?php
wincache_ucache_set('counter', 2922);
var_dump(wincache_ucache_cas('counter', 2922, 1));
var_dump(wincache_ucache_get('counter'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
int(1)

Siehe auch

  • wincache_ucache_inc() - Increments the value associated with the key
  • wincache_ucache_dec() - Decrements the value associated with the key


Deletes entire content of the user cache

  • « wincache_ucache_cas
  • wincache_ucache_dec »
  • PHP Manual
  • WinCache Funktionen
  • Deletes entire content of the user cache

wincache_ucache_clear

(PECL wincache >= 1.1.0)

wincache_ucache_clear — Deletes entire content of the user cache

Beschreibung

wincache_ucache_clear ( ) : bool

Clears/deletes all the values stored in the user cache.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 using wincache_ucache_clear()

<?php
wincache_ucache_set('green', 1);
wincache_ucache_set('red', 2);
wincache_ucache_set('orange', 4);
wincache_ucache_set('blue', 8);
wincache_ucache_set('cyan', 16);
$array1 = array('green', 'red', 'orange', 'blue', 'cyan');
var_dump(wincache_ucache_get($array1));
var_dump(wincache_ucache_clear());
var_dump(wincache_ucache_get($array1));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(5) { ["green"]=> int(1)
           ["red"]=> int(2)
           ["orange"]=> int(4)
           ["blue"]=> int(8)
           ["cyan"]=> int(16) }
bool(true)
bool(false)

Siehe auch

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Decrements the value associated with the key

  • « wincache_ucache_clear
  • wincache_ucache_delete »
  • PHP Manual
  • WinCache Funktionen
  • Decrements the value associated with the key

wincache_ucache_dec

(PECL wincache >= 1.1.0)

wincache_ucache_dec — Decrements the value associated with the key

Beschreibung

wincache_ucache_dec ( string $key , int $dec_by = 1 , bool &$success = ? ) : mixed

Decrements the value associated with the key by 1 or as specified by dec_by.

Parameter-Liste

key

The key that was used to store the variable in the cache. key is case sensitive.

dec_by

The value by which the variable associated with the key will get decremented. If the argument is a floating point number it will be truncated to nearest integer. The variable associated with the key should be of type long, otherwise the function fails and returns false.

success

Will be set to true on success and false on failure.

Rückgabewerte

Returns the decremented value on success and false on failure.

Beispiele

Beispiel #1 Using wincache_ucache_dec()

<?php
wincache_ucache_set('counter', 1);
var_dump(wincache_ucache_dec('counter', 2923, $success));
var_dump($success);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2922)
bool(true)

Siehe auch

  • wincache_ucache_inc() - Increments the value associated with the key
  • wincache_ucache_cas() - Compares the variable with old value and assigns new value to it


Deletes variables from the user cache

  • « wincache_ucache_dec
  • wincache_ucache_exists »
  • PHP Manual
  • WinCache Funktionen
  • Deletes variables from the user cache

wincache_ucache_delete

(PECL wincache >= 1.1.0)

wincache_ucache_delete — Deletes variables from the user cache

Beschreibung

wincache_ucache_delete ( mixed $key ) : bool

Deletes the elements in the user cache pointed by key.

Parameter-Liste

key

The key that was used to store the variable in the cache. key is case sensitive. key can be an array of keys.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

If key is an array then the function returns false if every element of the array fails to get deleted from the user cache, otherwise returns an array which consists of all the keys that are deleted.

Beispiele

Beispiel #1 Using wincache_ucache_delete() with key as a string

<?php
wincache_ucache_set('foo', 'bar');
var_dump(wincache_ucache_delete('foo'));
var_dump(wincache_ucache_exists('foo'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)

Beispiel #2 Usingwincache_ucache_delete() with key as an array

<?php
$array1 = array('green' => '5', 'blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('green', 'blue', 'yellow', 'cyan');
var_dump(wincache_ucache_delete($array2));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) { [0]=> string(5) "green"
           [1]=> string(4) "Blue"
           [2]=> string(6) "yellow"
           [3]=> string(4) "cyan" }

Beispiel #3 Using wincache_ucache_delete() with key as an array where some elements cannot be deleted

<?php
$array1 = array('green' => '5', 'blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('orange', 'red', 'yellow', 'cyan');
var_dump(wincache_ucache_delete($array2));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) { [0]=> string(6) "yellow"
           [1]=> string(4) "cyan" }

Siehe auch

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Checks if a variable exists in the user cache

  • « wincache_ucache_delete
  • wincache_ucache_get »
  • PHP Manual
  • WinCache Funktionen
  • Checks if a variable exists in the user cache

wincache_ucache_exists

(PECL wincache >= 1.1.0)

wincache_ucache_exists — Checks if a variable exists in the user cache

Beschreibung

wincache_ucache_exists ( string $key ) : bool

Checks if a variable with the key exists in the user cache or not.

Parameter-Liste

key

The key that was used to store the variable in the cache. key is case sensitive.

Rückgabewerte

Returns true if variable with the key exitsts, otherwise returns false.

Beispiele

Beispiel #1 Using wincache_ucache_exists()

<?php
if (!wincache_ucache_exists('green'))
    wincache_ucache_set('green', 1);
var_dump(wincache_ucache_exists('green'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)

Siehe auch

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Gets a variable stored in the user cache

  • « wincache_ucache_exists
  • wincache_ucache_inc »
  • PHP Manual
  • WinCache Funktionen
  • Gets a variable stored in the user cache

wincache_ucache_get

(PECL wincache >= 1.1.0)

wincache_ucache_get — Gets a variable stored in the user cache

Beschreibung

wincache_ucache_get ( mixed $key , bool &$success = ? ) : mixed

Gets a variable stored in the user cache.

Parameter-Liste

key

The key that was used to store the variable in the cache. key is case sensitive. key can be an array of keys. In this case the return value will be an array of values of each element in the key array. If an object, or an array containing objects, is returned, then the objects will be unserialized. See __wakeup() for details on unserializing objects.

success

Will be set to true on success and false on failure.

Rückgabewerte

If key is a string, the function returns the value of the variable stored with that key. The success is set to true on success and to false on failure.

The key is an array, the parameter success is always set to true. The returned array (name => value pairs) will contain only those name => value pairs for which the get operation in user cache was successful. If none of the keys in the key array finds a match in the user cache an empty array will be returned.

Beispiele

Beispiel #1 wincache_ucache_get() with key as a string

<?php
wincache_ucache_add('color', 'blue');
var_dump(wincache_ucache_get('color', $success));
var_dump($success);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(4) "blue"
bool(true)

Beispiel #2 wincache_ucache_get() with key as an array

<?php
$array1 = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('green', 'Blue', 'yellow', 'cyan');
var_dump(wincache_ucache_get($array2, $success));
var_dump($success);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) { ["green"]=> string(1) "5"
           ["Blue"]=> string(1) "6"
           ["yellow"]=> string(1) "7"
           ["cyan"]=> string(1) "8" }
bool(true)

Siehe auch

  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • __wakeup()


Increments the value associated with the key

  • « wincache_ucache_get
  • wincache_ucache_info »
  • PHP Manual
  • WinCache Funktionen
  • Increments the value associated with the key

wincache_ucache_inc

(PECL wincache >= 1.1.0)

wincache_ucache_inc — Increments the value associated with the key

Beschreibung

wincache_ucache_inc ( string $key , int $inc_by = 1 , bool &$success = ? ) : mixed

Increments the value associated with the key by 1 or as specified by inc_by.

Parameter-Liste

key

The key that was used to store the variable in the cache. key is case sensitive.

inc_by

The value by which the variable associated with the key will get incremented. If the argument is a floating point number it will be truncated to nearest integer. The variable associated with the key should be of type long, otherwise the function fails and returns false.

success

Will be set to true on success and false on failure.

Rückgabewerte

Returns the incremented value on success and false on failure.

Beispiele

Beispiel #1 Using wincache_ucache_inc()

<?php
wincache_ucache_set('counter', 1);
var_dump(wincache_ucache_inc('counter', 2921, $success));
var_dump($success);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2922)
bool(true)

Siehe auch

  • wincache_ucache_dec() - Decrements the value associated with the key
  • wincache_ucache_cas() - Compares the variable with old value and assigns new value to it


Retrieves information about data stored in the user cache

  • « wincache_ucache_inc
  • wincache_ucache_meminfo »
  • PHP Manual
  • WinCache Funktionen
  • Retrieves information about data stored in the user cache

wincache_ucache_info

(PECL wincache >= 1.1.0)

wincache_ucache_info — Retrieves information about data stored in the user cache

Beschreibung

wincache_ucache_info ( bool $summaryonly = false , string $key = NULL ) : array|false

Retrieves information about data stored in the user cache.

Parameter-Liste

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the user cache summary.

key

The key of an entry in the user cache. If specified then the returned array will contain information only about that cache entry. If not specified and summaryonly is set to false then the returned array will contain information about all entries in the cache.

Rückgabewerte

Array of meta data about user cache Im Fehlerfall wird false zurückgegeben.

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the user cache has been active
  • total_item_count - total number of elements that are currently in the user cache
  • is_local_cache - true is the cache metadata is for a local cache instance, false if the metadata is for the global cache
  • total_hit_count - number of times the data has been served from the cache
  • total_miss_count - number of times the data has not been found in the cache

  • ucache_entries - an array that contains the information about all the cached items:

    • key_name - name of the key which is used to store the data
    • value_type - type of value stored by the key
    • use_time - time in seconds since the file has been accessed in the opcode cache
    • last_check - time in seconds since the file has been checked for modifications
    • is_session - indicates if the data is a session variable
    • ttl_seconds - time remaining for the data to live in the cache, 0 meaning infinite
    • age_seconds - time elapsed from the time data has been added in the cache
    • hitcount - number of times data has been served from the cache

Beispiele

Beispiel #1 Using wincache_ucache_info()

<?php
wincache_ucache_get('green');
wincache_ucache_set('green', 2922);
wincache_ucache_get('green');
wincache_ucache_get('green');
wincache_ucache_get('green');
print_r(wincache_ucache_info());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
( ["total_cache_uptime"] => int(0)
  ["is_local_cache"] => bool(false)
  ["total_item_count"] => int(1)
  ["total_hit_count"] => int(3)
  ["total_miss_count"] => int(1)
  ["ucache_entries"] => Array(1)
    ( [1] => Array(6)
      (
        ["key_name"] => string(5) "green"
        ["value_type"] => string(4) "long"
        ["is_session"] => int(0)
        ["ttl_seconds"] => int(0)
        ["age_seconds"] => int(0)
        ["hitcount"] => int(3)
       )
    )
)

Siehe auch

  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about user cache memory usage

  • « wincache_ucache_info
  • wincache_ucache_set »
  • PHP Manual
  • WinCache Funktionen
  • Retrieves information about user cache memory usage

wincache_ucache_meminfo

(PECL wincache >= 1.1.0)

wincache_ucache_meminfo — Retrieves information about user cache memory usage

Beschreibung

wincache_ucache_meminfo ( ) : array|false

Retrieves information about memory usage by user cache.

Rückgabewerte

Array of meta data about user cache memory usage Im Fehlerfall wird false zurückgegeben.

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the user cache
  • memory_free - amount of free memory in bytes available for the user cache
  • num_used_blks - number of memory blocks used by the user cache
  • num_free_blks - number of free memory blocks available for the user cache
  • memory_overhead - amount of memory in bytes used for the user cache internal structures

Beispiele

Beispiel #1 A wincache_ucache_meminfo() example

<pre>
<?php
print_r(wincache_ucache_meminfo());
?>
</pre>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [memory_total] => 5242880
    [memory_free] => 5215056
    [num_used_blks] => 6
    [num_free_blks] => 3
    [memory_overhead] => 176
)

Siehe auch

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Adds a variable in user cache and overwrites a variable if it already exists in the cache

  • « wincache_ucache_meminfo
  • wincache_unlock »
  • PHP Manual
  • WinCache Funktionen
  • Adds a variable in user cache and overwrites a variable if it already exists in the cache

wincache_ucache_set

(PECL wincache >= 1.1.0)

wincache_ucache_set — Adds a variable in user cache and overwrites a variable if it already exists in the cache

Beschreibung

wincache_ucache_set ( mixed $key , mixed $value , int $ttl = 0 ) : bool
wincache_ucache_set ( array $values , mixed $unused = NULL , int $ttl = 0 ) : bool

Adds a variable in user cache. Overwrites a variable if it already exists in the cache. The added or updated variable remains in the user cache unless its time to live expires or it is deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Parameter-Liste

key

Store the variable using this key name. If a variable with same key is already present the function will overwrite the previous value with the new one. key is case sensitive. key can also take array of name => value pairs where names will be used as keys. This can be used to add multiple values in the cache in one operation, thus avoiding race condition.

value

Value of a variable to store. Value supports all data types except resources, such as file handles. This paramter is ignored if first argument is an array. A general guidance is to pass null as value while using array as key. If value is an object, or an array containing objects, then the objects will be serialized. See __sleep() for details on serializing objects.

values

Associative array of keys and values.

ttl

Time for the variable to live in the cache in seconds. After the value specified in ttl has passed the stored variable will be deleted from the cache. This parameter takes a default value of 0 which means the variable will stay in the cache unless explicitly deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Rückgabewerte

If key is string, the function returns true on success and false on failure.

If key is an array, the function returns:

  • If all the name => value pairs in the array can be set, function returns an empty array;
  • If all the name => value pairs in the array cannot be set, function returns false;
  • If some can be set while others cannot, function returns an array with name=>value pair for which the addition failed in the user cache.

Beispiele

Beispiel #1 wincache_ucache_set() with key as a string

<?php
$bar = 'BAR';
var_dump(wincache_ucache_set('foo', $bar));
var_dump(wincache_ucache_get('foo'));
$bar1 = 'BAR1';
var_dump(wincache_ucache_set('foo', $bar1));
var_dump(wincache_ucache_get('foo'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
string(3) "BAR"
bool(true)
string(3) "BAR1"

Beispiel #2 wincache_ucache_set() with key as an array

<?php
$colors_array = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(0) {}
array(0) {}
string(1) "6"

Siehe auch

  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • __sleep()


Releases an exclusive lock on a given key

  • « wincache_ucache_set
  • Building for Windows »
  • PHP Manual
  • WinCache Funktionen
  • Releases an exclusive lock on a given key

wincache_unlock

(PECL wincache >= 1.1.0)

wincache_unlock — Releases an exclusive lock on a given key

Beschreibung

wincache_unlock ( string $key ) : bool

Releases an exclusive lock that was obtained on a given key by using wincache_lock(). If any other process was blocked waiting for the lock on this key, that process will be able to obtain the lock.

Warnung

Using of the wincache_lock() and wincache_unlock() can cause deadlocks when executing PHP scripts in a multi-process environment like FastCGI. Do not use these functions unless you are absolutely sure you need to use them. For the majority of the operations on the user cache it is not necessary to use these functions.

Parameter-Liste

key

Name of the key in the cache to release the lock on.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Using wincache_unlock()

<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock(“lock_txt_lock”)) { // do an exclusive lock
    ftruncate($fp, 0); // truncate file
    fwrite($fp, "Write something here\n");
    wincache_unlock(“lock_txt_lock”); // release the lock
} else {
    echo "Couldn't get the lock!";
}
fclose($fp);
?>

Siehe auch

  • wincache_lock() - Acquires an exclusive lock on a given key
  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache


Building for Windows

Inhaltsverzeichnis

  • Prerequisites
  • Compiling and building
  • Verifying the build


Prerequisites

Building WinCache extension will require:

  1. PHP source code
  2. PHP build environment
  3. WinCache source code

For completing first two steps, follow the step-by-step guide for how to » build PHP on Windows.

For getting the WinCache source code follow the instructions described in Downloading PECL extensions.


Compiling and building

The following steps describe how to compile and build WinCache on Windows OS:

  1. Open a command prompt which is used to build PHP

  2. Go to the root folder where PHP sources are present

  3. Run the command:

    cscript.exe win32\build\buildconf.js

  4. Run the command:

    configure.bat --help
    The output will contain a new flag --enable-wincache.

  5. Run the command:

    configure.js [all options used to build PHP] --enable-wincache
    --enable-wincache is the only extra option which is required to ensure that WinCache extension gets built properly. This option will build WinCache and will statically link it with PHP dll. To build WinCache extension as a stand-alone DLL use the option --enable-wincache=shared.

  6. Run the command:

    nmake


Verifying the build

The following steps describe how to verify that WinCache has been built correctly:

  1. Go to the folder where the PHP binaries are built

  2. Run the command:

    php.exe -n -d extension=php_wincache.dll -re wincache
    If WinCache has been built properly, the output of this command will list the INI directives and functions supported by WinCache.


Hierarchical Profiler

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Xhprof Funktionen
    • xhprof_disable — Stops xhprof profiler
    • xhprof_enable — Start xhprof profiler
    • xhprof_sample_disable — Stops xhprof sample profiler
    • xhprof_sample_enable — Start XHProf profiling in sampling mode


Einführung

XHProf is a light-weight hierarchical and instrumentation based profiler. During the data collection phase, it keeps track of call counts and inclusive metrics for arcs in the dynamic callgraph of a program. It computes exclusive metrics in the reporting/post processing phase, such as wall (elapsed) time, CPU time and memory usage. A functions profile can be broken down by callers or callees. XHProf handles recursive functions by detecting cycles in the callgraph at data collection time itself and avoiding the cycles by giving unique depth qualified names for the recursive invocations.

XHProf includes a simple HTML based user interface (written in PHP). The browser based UI for viewing profiler results makes it easy to view results or to share results with peers. A callgraph image view is also supported.

XHProf reports can often be helpful in understanding the structure of the code being executed. The hierarchical nature of the reports can be used to determine, for example, what chain of calls led to a particular function getting called.

XHProf supports ability to compare two runs (a.k.a. "diff" reports) or aggregate data from multiple runs. Diff and aggregate reports, much like single run reports, offer "flat" as well as "hierarchical" views of the profile.

Additional documentation can be found via the » facebook xhprof website.


Anforderungen

Although not required, xhprof includes an interface that's written in PHP. It's used to save and display the profiled data in a usable way, where viewing is done via a web browser. So, a PHP enabled web server will likely make the xhprof experience more useful.

There's also a fork of the GUI interface at » http://github.com/preinheimer/xhprof


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/xhprof


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Xhprof Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
xhprof.output_dir | "" | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

xhprof.output_dir string

Directory used by the default implementation of the iXHProfRuns interface (namely, the XHProfRuns_Default class) for storing XHProf runs.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

XHPROF_FLAGS_NO_BUILTINS (int)
Used to skip all built-in (internal) functions.
XHPROF_FLAGS_CPU (int)
Used to add CPU profiling information to the output.
XHPROF_FLAGS_MEMORY (int)
Used to add memory profiling information to the output.


Beispiele

Beispiel #1 Xhprof example with the optional GUI

This example starts and stops the profiler, then uses the bundled GUI interface to save and parse the results. In other words, the code from the extension itself ends at the call to xhprof_disable().

<?php
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

for ($i = 0; $i <= 1000; $i++) {
    $a = $i * $i;
}

$xhprof_data = xhprof_disable();

$XHPROF_ROOT = "/tools/xhprof/";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_testing");

echo "http://localhost/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

http://localhost/xhprof/xhprof_html/index.php?run=t11_4bdf44d21121f&source=xhprof_testing


Xhprof Funktionen

Inhaltsverzeichnis

  • xhprof_disable — Stops xhprof profiler
  • xhprof_enable — Start xhprof profiler
  • xhprof_sample_disable — Stops xhprof sample profiler
  • xhprof_sample_enable — Start XHProf profiling in sampling mode


Stops xhprof profiler

  • « Xhprof Funktionen
  • xhprof_enable »
  • PHP Manual
  • Xhprof Funktionen
  • Stops xhprof profiler

xhprof_disable

(PECL xhprof >= 0.9.0)

xhprof_disable — Stops xhprof profiler

Beschreibung

xhprof_disable ( ) : array

Stops the profiler, and returns xhprof data from the run.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of xhprof data, from the run.

Beispiele

Beispiel #1 xhprof_disable() example

<?php
xhprof_enable();

$foo = strlen("foo bar");

$xhprof_data = xhprof_disable();

print_r($xhprof_data);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [main()==>strlen] => Array
        (
            [ct] => 1
            [wt] => 279
        )

    [main()==>xhprof_disable] => Array
        (
            [ct] => 1
            [wt] => 9
        )

    [main()] => Array
        (
            [ct] => 1
            [wt] => 610
        )

)


Start xhprof profiler

  • « xhprof_disable
  • xhprof_sample_disable »
  • PHP Manual
  • Xhprof Funktionen
  • Start xhprof profiler

xhprof_enable

(PECL xhprof >= 0.9.0)

xhprof_enable — Start xhprof profiler

Beschreibung

xhprof_enable ( int $flags = 0 , array $options = ? ) : void

Start xhprof profiling.

Parameter-Liste

flags

Optional flags to add additional information to the profiling. See the XHprof constants for further information about these flags, e.g., XHPROF_FLAGS_MEMORY to enable memory profiling.

options

An array of optional options, namely, the 'ignored_functions' option to pass in functions to be ignored during profiling.

Rückgabewerte

null

Changelog

Version | Beschreibung
PECL xhprof 0.9.2 | The optional options parameter was added.

Beispiele

Beispiel #1 xhprof_enable() examples

<?php
// 1. elapsed time + memory + CPU profiling; and ignore built-in (internal) functions
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

// 2. elapsed time profiling; ignore call_user_func* during profiling
xhprof_enable(
    0,
    array('ignored_functions' =>  array('call_user_func',
                                        'call_user_func_array')));

// 3. elapsed time + memory profiling; ignore call_user_func* during profiling
xhprof_enable(
    XHPROF_FLAGS_MEMORY,
    array('ignored_functions' =>  array('call_user_func',
                                        'call_user_func_array')));
?>

Siehe auch

  • xhprof_disable() - Stops xhprof profiler
  • xhprof_sample_enable() - Start XHProf profiling in sampling mode
  • memory_get_usage() - Returns the amount of memory allocated to PHP
  • getrusage() - Ermittelt den aktuellen Ressourcenverbrauch


Stops xhprof sample profiler

  • « xhprof_enable
  • xhprof_sample_enable »
  • PHP Manual
  • Xhprof Funktionen
  • Stops xhprof sample profiler

xhprof_sample_disable

(PECL xhprof >= 0.9.0)

xhprof_sample_disable — Stops xhprof sample profiler

Beschreibung

xhprof_sample_disable ( ) : array

Stops the sample mode xhprof profiler, and

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of xhprof sample data, from the run.

Beispiele

Beispiel #1 xhprof_sample_disable() example

<?php
xhprof_sample_enable();

for ($i = 0; $i <= 10000; $i++) {
    $a = strlen($i);
    $b = $i * $a;
    $c = rand();
}

$xhprof_data = xhprof_sample_disable();

print_r($xhprof_data);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [1272935300.800000] => main()
    [1272935300.900000] => main()
)


Start XHProf profiling in sampling mode

  • « xhprof_sample_disable
  • Yac »
  • PHP Manual
  • Xhprof Funktionen
  • Start XHProf profiling in sampling mode

xhprof_sample_enable

(PECL xhprof >= 0.9.0)

xhprof_sample_enable — Start XHProf profiling in sampling mode

Beschreibung

xhprof_sample_enable ( ) : void

Starts profiling in sample mode, which is a lighter weight version of xhprof_enable(). The sampling interval is 0.1 seconds, and samples record the full function call stack. The main use case is when lower overhead is required when doing performance monitoring and diagnostics.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

null

Siehe auch

  • xhprof_sample_disable() - Stops xhprof sample profiler
  • xhprof_enable() - Start xhprof profiler
  • memory_get_usage() - Returns the amount of memory allocated to PHP
  • getrusage() - Ermittelt den aktuellen Ressourcenverbrauch


Yac

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Yac — The Yac class
    • Yac::add — Store into cache
    • Yac::__construct — Constructor
    • Yac::delete — Remove items from cache
    • Yac::dump — Dump cache
    • Yac::flush — Flush the cache
    • Yac::get — Retrieve values from cache
    • Yac::__get — Getter
    • Yac::info — Status of cache
    • Yac::set — Store into cache
    • Yac::__set — Setter


Einführung

Yac (Yet Another cache), is a lock-free, shared memory user data cache, could be used to replace APC, local memcache.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/yac.

Windows binaries (DLL files) for this PECL extension are available from the PECL website.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Yac Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
yac.compress_threshold | -1 | PHP_INI_SYSTEM |
yac.debug | 0 | PHP_INI_ALL |
yac.enable | 1 | PHP_INI_SYSTEM |
yac.enable_cli | 0 | PHP_INI_SYSTEM |
yac.keys_memory_size | 4M | PHP_INI_SYSTEM |
yac.serializer | php | PHP_INI_SYSTEM |
yac.values_memory_size | 64M | PHP_INI_SYSTEM |

Hier eine kurze Erklärung der Konfigurationsoptionen:

yac.compress_threshold int

yac.debug int

yac.enable int

yac.enable_cli int

yac.keys_memory_size string

yac.serializer string

yac.values_memory_size string


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

YAC_VERSION (string)
YAC_MAX_KEY_LEN (int)
Max length of a key could be, it is 48 bytes.
YAC_MAX_VALUE_RAW_LEN (int)
YAC_MAX_RAW_COMPRESSED_LEN (int)
YAC_SERIALIZER_PHP (int)
Use php serialize as serializer
YAC_SERIALIZER_JSON (int)
Use json as serializer(requrie --enable-json)
YAC_SERIALIZER_IGBINARY (int)
Use igbinary as serializer(require --enable-igbinary)
YAC_SERIALIZER_MSGPACK (int)
Use msgpack as serializer(require --enable-msgpack)
YAC_SERIALIZER (string)
Which serialzier is yac used


The Yac class

(PECL yac >= 1.0.0)

Einführung

Klassenbeschreibung

Yac {
/* Eigenschaften */
protected $_prefix ;
/* Methoden */
public __construct ( string $prefix = "" )
public add ( string $keys , mixed $value , int $ttl = 0 ) : bool
public add ( array $key_vals ) : bool
public delete ( string|array $keys , int $ttl = ? ) : bool
public dump ( int $$num ) : mixed
public flush ( ) : bool
public get ( string|array $key , int &$cas = null ) : mixed
public __get ( string $key ) : mixed
public info ( ) : array
public set ( string $keys , mixed $value , int $ttl = 0 ) : bool
public add ( array $key_vals ) : bool
public __set ( string $keys , mixed $value ) : mixed
}

Eigenschaften

_prefix

Inhaltsverzeichnis

  • Yac::add — Store into cache
  • Yac::__construct — Constructor
  • Yac::delete — Remove items from cache
  • Yac::dump — Dump cache
  • Yac::flush — Flush the cache
  • Yac::get — Retrieve values from cache
  • Yac::__get — Getter
  • Yac::info — Status of cache
  • Yac::set — Store into cache
  • Yac::__set — Setter


Store into cache

  • « Yac
  • Yac::__construct »
  • PHP Manual
  • Yac
  • Store into cache

Yac::add

(PECL yac >= 1.0.0)

Yac::add — Store into cache

Beschreibung

public Yac::add ( string $keys , mixed $value , int $ttl = 0 ) : bool
public Yac::add ( array $key_vals ) : bool

Added a item into cache.

Parameter-Liste

keys

String key

value

mixed value, All php value type could be stored except Ressource

ttl

expire time

Rückgabewerte

Boolean, true on success, false on failure

Hinweis:

Yac::add() may fail if cas lock could not obtain, so, if you need the value to be stored properly, you may write codes like:

Beispiel #1 Make sure the item is stored

while(!$yac->set("key", "vale));


Constructor

  • « Yac::add
  • Yac::delete »
  • PHP Manual
  • Yac
  • Constructor

Yac::__construct

(PECL yac >= 1.0.0)

Yac::__construct — Constructor

Beschreibung

public Yac::__construct ( string $prefix = "" )

prefix is used to prepended to keys, this could be used to avoiding conflicts between apps.

Parameter-Liste

prefix

String prefix


Remove items from cache

  • « Yac::__construct
  • Yac::dump »
  • PHP Manual
  • Yac
  • Remove items from cache

Yac::delete

(PECL yac >= 1.0.0)

Yac::delete — Remove items from cache

Beschreibung

public Yac::delete ( string|array $keys , int $ttl = ? ) : bool

remove items from cache

Parameter-Liste

keys

string key, or array of multiple keys to be removed

ttl

if delay is set, delete will mark the items to be invalid in ttl second.

Rückgabewerte


Dump cache

  • « Yac::delete
  • Yac::flush »
  • PHP Manual
  • Yac
  • Dump cache

Yac::dump

(PECL yac >= 1.0.0)

Yac::dump — Dump cache

Beschreibung

public Yac::dump ( int $$num ) : mixed

Dump values stored in cache

Parameter-Liste

num

Maximum number of items should be returned

Rückgabewerte

mixed


Flush the cache

  • « Yac::dump
  • Yac::get »
  • PHP Manual
  • Yac
  • Flush the cache

Yac::flush

(PECL yac >= 1.0.0)

Yac::flush — Flush the cache

Beschreibung

public Yac::flush ( ) : bool

Remove all cached values

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

bool, always true


Retrieve values from cache

  • « Yac::flush
  • Yac::__get »
  • PHP Manual
  • Yac
  • Retrieve values from cache

Yac::get

(PECL yac >= 1.0.0)

Yac::get — Retrieve values from cache

Beschreibung

public Yac::get ( string|array $key , int &$cas = null ) : mixed

Retrieve values from cache

Parameter-Liste

key

String keys, or Array of multiple keys.

cas

if not null, it will be set to the retrieved item's cas.

Rückgabewerte

mixed on success, false on failure


Getter

  • « Yac::get
  • Yac::info »
  • PHP Manual
  • Yac
  • Getter

Yac::__get

(PECL yac >= 1.0.0)

Yac::__get — Getter

Beschreibung

public Yac::__get ( string $key ) : mixed

Retrieve values from cache

Parameter-Liste

key

String key

Rückgabewerte

mixed on success, null on failure


Status of cache

  • « Yac::__get
  • Yac::set »
  • PHP Manual
  • Yac
  • Status of cache

Yac::info

(PECL yac >= 1.0.0)

Yac::info — Status of cache

Beschreibung

public Yac::info ( ) : array

Get status of cache system

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return an array, consistent with: "memory_size", "slots_memory_size", "values_memory_size", "segment_size", "segment_num", "miss", "hits", "fails", "kicks", "recycles", "slots_size", "slots_used"


Store into cache

  • « Yac::info
  • Yac::__set »
  • PHP Manual
  • Yac
  • Store into cache

Yac::set

(PECL yac >= 1.0.0)

Yac::set — Store into cache

Beschreibung

public Yac::set ( string $keys , mixed $value , int $ttl = 0 ) : bool
public Yac::add ( array $key_vals ) : bool

Add a item into cache, it the key is already exists, override it.

Parameter-Liste

keys

String key

value

mixed value, All php value type could be stored except Ressource

ttl

expire time

Rückgabewerte

the value self


Setter

  • « Yac::set
  • Manipulation von Audioformaten »
  • PHP Manual
  • Yac
  • Setter

Yac::__set

(PECL yac >= 1.0.0)

Yac::__set — Setter

Beschreibung

public Yac::__set ( string $keys , mixed $value ) : mixed

store a item into cache

Parameter-Liste

keys

String key

value

mixed value, All php value type could be stored except Ressource

Rückgabewerte

Always return the value self


Manipulation von Audioformaten

  • OpenAL — OpenAL Audio Bindings
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • OpenAL Funktionen


OpenAL Audio Bindings

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • OpenAL Funktionen
    • openal_buffer_create — Generate OpenAL buffer
    • openal_buffer_data — Load a buffer with data
    • openal_buffer_destroy — Destroys an OpenAL buffer
    • openal_buffer_get — Retrieve an OpenAL buffer property
    • openal_buffer_loadwav — Load a .wav file into a buffer
    • openal_context_create — Create an audio processing context
    • openal_context_current — Make the specified context current
    • openal_context_destroy — Destroys a context
    • openal_context_process — Process the specified context
    • openal_context_suspend — Suspend the specified context
    • openal_device_close — Close an OpenAL device
    • openal_device_open — Initialize the OpenAL audio layer
    • openal_listener_get — Retrieve a listener property
    • openal_listener_set — Set a listener property
    • openal_source_create — Generate a source resource
    • openal_source_destroy — Destroy a source resource
    • openal_source_get — Retrieve an OpenAL source property
    • openal_source_pause — Pause the source
    • openal_source_play — Start playing the source
    • openal_source_rewind — Rewind the source
    • openal_source_set — Set source property
    • openal_source_stop — Stop playing the source
    • openal_stream — Begin streaming on a source


  • « OpenAL
  • Installation/Konfiguration »
  • PHP Manual
  • OpenAL
  • Einführung

Einführung

Platform independent audio bindings. Requires the » OpenAL library.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/openal.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


  • « Installation
  • Ressource-Typen »
  • PHP Manual
  • Installation/Konfiguration
  • Laufzeit-Konfiguration

Laufzeit-Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.


Ressource-Typen

This extension defines four resource types:
Open AL(Device) - Returned by openal_device_open(),
Open AL(Context) - Returned by openal_context_create(),
Open AL(Buffer) - Returned by openal_buffer_create(),
and Open AL(Source) - Returned by openal_source_create().


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

ALC_FREQUENCY (int)
Context Attribute
ALC_REFRESH (int)
Context Attribute
ALC_SYNC (int)
Context Attribute
AL_FREQUENCY (int)
Buffer Setting
AL_BITS (int)
Buffer Setting
AL_CHANNELS (int)
Buffer Setting
AL_SIZE (int)
Buffer Setting
AL_BUFFER (int)
Source/Listener Setting (Integer)
AL_SOURCE_RELATIVE (int)
Source/Listener Setting (Integer)
AL_SOURCE_STATE (int)
Source/Listener Setting (Integer)
AL_PITCH (int)
Source/Listener Setting (Float)
AL_GAIN (int)
Source/Listener Setting (Float)
AL_MIN_GAIN (int)
Source/Listener Setting (Float)
AL_MAX_GAIN (int)
Source/Listener Setting (Float)
AL_MAX_DISTANCE (int)
Source/Listener Setting (Float)
AL_ROLLOFF_FACTOR (int)
Source/Listener Setting (Float)
AL_CONE_OUTER_GAIN (int)
Source/Listener Setting (Float)
AL_CONE_INNER_ANGLE (int)
Source/Listener Setting (Float)
AL_CONE_OUTER_ANGLE (int)
Source/Listener Setting (Float)
AL_REFERENCE_DISTANCE (int)
Source/Listener Setting (Float)
AL_POSITION (int)
Source/Listener Setting (Float Vector)
AL_VELOCITY (int)
Source/Listener Setting (Float Vector)
AL_DIRECTION (int)
Source/Listener Setting (Float Vector)
AL_ORIENTATION (int)
Source/Listener Setting (Float Vector)
AL_FORMAT_MONO8 (int)
PCM Format
AL_FORMAT_MONO16 (int)
PCM Format
AL_FORMAT_STEREO8 (int)
PCM Format
AL_FORMAT_STEREO16 (int)
PCM Format
AL_INITIAL (int)
Source State
AL_PLAYING (int)
Source State
AL_PAUSED (int)
Source State
AL_STOPPED (int)
Source State
AL_LOOPING (int)
Source State
AL_TRUE (int)
Boolean value recognized by OpenAL
AL_FALSE (int)
Boolean value recognized by OpenAL


OpenAL Funktionen

Inhaltsverzeichnis

  • openal_buffer_create — Generate OpenAL buffer
  • openal_buffer_data — Load a buffer with data
  • openal_buffer_destroy — Destroys an OpenAL buffer
  • openal_buffer_get — Retrieve an OpenAL buffer property
  • openal_buffer_loadwav — Load a .wav file into a buffer
  • openal_context_create — Create an audio processing context
  • openal_context_current — Make the specified context current
  • openal_context_destroy — Destroys a context
  • openal_context_process — Process the specified context
  • openal_context_suspend — Suspend the specified context
  • openal_device_close — Close an OpenAL device
  • openal_device_open — Initialize the OpenAL audio layer
  • openal_listener_get — Retrieve a listener property
  • openal_listener_set — Set a listener property
  • openal_source_create — Generate a source resource
  • openal_source_destroy — Destroy a source resource
  • openal_source_get — Retrieve an OpenAL source property
  • openal_source_pause — Pause the source
  • openal_source_play — Start playing the source
  • openal_source_rewind — Rewind the source
  • openal_source_set — Set source property
  • openal_source_stop — Stop playing the source
  • openal_stream — Begin streaming on a source


Generate OpenAL buffer

  • « OpenAL Funktionen
  • openal_buffer_data »
  • PHP Manual
  • OpenAL Funktionen
  • Generate OpenAL buffer

openal_buffer_create

(PECL openal >= 0.1.0)

openal_buffer_create — Generate OpenAL buffer

Beschreibung

openal_buffer_create ( ) : resource

Rückgabewerte

Returns an Open AL(Buffer) resource on success or false on failure.

Siehe auch

  • openal_buffer_loadwav() - Load a .wav file into a buffer
  • openal_buffer_data() - Load a buffer with data


Load a buffer with data

  • « openal_buffer_create
  • openal_buffer_destroy »
  • PHP Manual
  • OpenAL Funktionen
  • Load a buffer with data

openal_buffer_data

(PECL openal >= 0.1.0)

openal_buffer_data — Load a buffer with data

Beschreibung

openal_buffer_data ( resource $buffer , int $format , string $data , int $freq ) : bool

Parameter-Liste

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

format

Format of data, one of: AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 und AL_FORMAT_STEREO16

data

Block of binary audio data in the format and freq specified.

freq

Frequency of data given in Hz.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_buffer_loadwav() - Load a .wav file into a buffer
  • openal_stream() - Begin streaming on a source


Destroys an OpenAL buffer

  • « openal_buffer_data
  • openal_buffer_get »
  • PHP Manual
  • OpenAL Funktionen
  • Destroys an OpenAL buffer

openal_buffer_destroy

(PECL openal >= 0.1.0)

openal_buffer_destroy — Destroys an OpenAL buffer

Beschreibung

openal_buffer_destroy ( resource $buffer ) : bool

Parameter-Liste

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_buffer_create() - Generate OpenAL buffer


Retrieve an OpenAL buffer property

  • « openal_buffer_destroy
  • openal_buffer_loadwav »
  • PHP Manual
  • OpenAL Funktionen
  • Retrieve an OpenAL buffer property

openal_buffer_get

(PECL openal >= 0.1.0)

openal_buffer_get — Retrieve an OpenAL buffer property

Beschreibung

openal_buffer_get ( resource $buffer , int $property ) : int|false

Parameter-Liste

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

property

Specific property, one of: AL_FREQUENCY, AL_BITS, AL_CHANNELS und AL_SIZE.

Rückgabewerte

Returns an integer value appropriate to the property requestedIm Fehlerfall wird false zurückgegeben..

Siehe auch

  • openal_buffer_create() - Generate OpenAL buffer


Load a .wav file into a buffer

  • « openal_buffer_get
  • openal_context_create »
  • PHP Manual
  • OpenAL Funktionen
  • Load a .wav file into a buffer

openal_buffer_loadwav

(PECL openal >= 0.1.0)

openal_buffer_loadwav — Load a .wav file into a buffer

Beschreibung

openal_buffer_loadwav ( resource $buffer , string $wavfile ) : bool

Parameter-Liste

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

wavfile

Path to .wav file on local file system.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_buffer_data() - Load a buffer with data
  • openal_stream() - Begin streaming on a source


Create an audio processing context

  • « openal_buffer_loadwav
  • openal_context_current »
  • PHP Manual
  • OpenAL Funktionen
  • Create an audio processing context

openal_context_create

(PECL openal >= 0.1.0)

openal_context_create — Create an audio processing context

Beschreibung

openal_context_create ( resource $device ) : resource

Parameter-Liste

device

An Open AL(Device) resource (previously created by openal_device_open()).

Rückgabewerte

Returns an Open AL(Context) resource on success or false on failure.

Siehe auch

  • openal_device_open() - Initialize the OpenAL audio layer
  • openal_context_destroy() - Destroys a context


Make the specified context current

  • « openal_context_create
  • openal_context_destroy »
  • PHP Manual
  • OpenAL Funktionen
  • Make the specified context current

openal_context_current

(PECL openal >= 0.1.0)

openal_context_current — Make the specified context current

Beschreibung

openal_context_current ( resource $context ) : bool

Parameter-Liste

context

An Open AL(Context) resource (previously created by openal_context_create()).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_context_create() - Create an audio processing context


Destroys a context

  • « openal_context_current
  • openal_context_process »
  • PHP Manual
  • OpenAL Funktionen
  • Destroys a context

openal_context_destroy

(PECL openal >= 0.1.0)

openal_context_destroy — Destroys a context

Beschreibung

openal_context_destroy ( resource $context ) : bool

Parameter-Liste

context

An Open AL(Context) resource (previously created by openal_context_create()).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_context_create() - Create an audio processing context


Process the specified context

  • « openal_context_destroy
  • openal_context_suspend »
  • PHP Manual
  • OpenAL Funktionen
  • Process the specified context

openal_context_process

(PECL openal >= 0.1.0)

openal_context_process — Process the specified context

Beschreibung

openal_context_process ( resource $context ) : bool

Parameter-Liste

context

An Open AL(Context) resource (previously created by openal_context_create()).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_context_create() - Create an audio processing context
  • openal_context_current() - Make the specified context current
  • openal_context_suspend() - Suspend the specified context


Suspend the specified context

  • « openal_context_process
  • openal_device_close »
  • PHP Manual
  • OpenAL Funktionen
  • Suspend the specified context

openal_context_suspend

(PECL openal >= 0.1.0)

openal_context_suspend — Suspend the specified context

Beschreibung

openal_context_suspend ( resource $context ) : bool

Parameter-Liste

context

An Open AL(Context) resource (previously created by openal_context_create()).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_context_create() - Create an audio processing context
  • openal_context_current() - Make the specified context current
  • openal_context_process() - Process the specified context


Close an OpenAL device

  • « openal_context_suspend
  • openal_device_open »
  • PHP Manual
  • OpenAL Funktionen
  • Close an OpenAL device

openal_device_close

(PECL openal >= 0.1.0)

openal_device_close — Close an OpenAL device

Beschreibung

openal_device_close ( resource $device ) : bool

Parameter-Liste

device

An Open AL(Device) resource (previously created by openal_device_open()) to be closed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_device_open() - Initialize the OpenAL audio layer


Initialize the OpenAL audio layer

  • « openal_device_close
  • openal_listener_get »
  • PHP Manual
  • OpenAL Funktionen
  • Initialize the OpenAL audio layer

openal_device_open

(PECL openal >= 0.1.0)

openal_device_open — Initialize the OpenAL audio layer

Beschreibung

openal_device_open ( string $device_desc = ? ) : resource

Parameter-Liste

device_desc

Open an audio device optionally specified by device_desc. If device_desc is not specified the first available audio device will be used.

Rückgabewerte

Returns an Open AL(Device) resource on success or false on failure.

Siehe auch

  • openal_device_close() - Close an OpenAL device
  • openal_context_create() - Create an audio processing context


Retrieve a listener property

  • « openal_device_open
  • openal_listener_set »
  • PHP Manual
  • OpenAL Funktionen
  • Retrieve a listener property

openal_listener_get

(PECL openal >= 0.1.0)

openal_listener_get — Retrieve a listener property

Beschreibung

openal_listener_get ( int $property ) : mixed

Parameter-Liste

property

Property to retrieve, one of:
AL_GAIN (float),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) und
AL_ORIENTATION (array(float,float,float)).

Rückgabewerte

Returns a float or array of floats (as appropriate)Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • openal_listener_set() - Set a listener property


Set a listener property

  • « openal_listener_get
  • openal_source_create »
  • PHP Manual
  • OpenAL Funktionen
  • Set a listener property

openal_listener_set

(PECL openal >= 0.1.0)

openal_listener_set — Set a listener property

Beschreibung

openal_listener_set ( int $property , mixed $setting ) : bool

Parameter-Liste

property

Property to set, one of:
AL_GAIN (float),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) und
AL_ORIENTATION (array(float,float,float)).

setting

Value to set, either float, or an array of floats as appropriate.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_listener_get() - Retrieve a listener property


Generate a source resource

  • « openal_listener_set
  • openal_source_destroy »
  • PHP Manual
  • OpenAL Funktionen
  • Generate a source resource

openal_source_create

(PECL openal >= 0.1.0)

openal_source_create — Generate a source resource

Beschreibung

openal_source_create ( ) : resource

Rückgabewerte

Returns an Open AL(Source) resource on success or false on failure.

Siehe auch

  • openal_source_set() - Set source property
  • openal_source_play() - Start playing the source
  • openal_source_destroy() - Destroy a source resource


Destroy a source resource

  • « openal_source_create
  • openal_source_get »
  • PHP Manual
  • OpenAL Funktionen
  • Destroy a source resource

openal_source_destroy

(PECL openal >= 0.1.0)

openal_source_destroy — Destroy a source resource

Beschreibung

openal_source_destroy ( resource $source ) : bool

Parameter-Liste

source

An Open AL(Source) resource (previously created by openal_source_create()).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_source_create() - Generate a source resource


Retrieve an OpenAL source property

  • « openal_source_destroy
  • openal_source_pause »
  • PHP Manual
  • OpenAL Funktionen
  • Retrieve an OpenAL source property

openal_source_get

(PECL openal >= 0.1.0)

openal_source_get — Retrieve an OpenAL source property

Beschreibung

openal_source_get ( resource $source , int $property ) : mixed

Parameter-Liste

source

An Open AL(Source) resource (previously created by openal_source_create()).

property

Property to get, one of: AL_SOURCE_RELATIVE (int), AL_SOURCE_STATE (int), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

Rückgabewerte

Returns the type associated with the property being retrieved Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • openal_source_create() - Generate a source resource
  • openal_source_set() - Set source property
  • openal_source_play() - Start playing the source


Pause the source

  • « openal_source_get
  • openal_source_play »
  • PHP Manual
  • OpenAL Funktionen
  • Pause the source

openal_source_pause

(PECL openal >= 0.1.0)

openal_source_pause — Pause the source

Beschreibung

openal_source_pause ( resource $source ) : bool

Parameter-Liste

source

An Open AL(Source) resource (previously created by openal_source_create()).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_source_stop() - Stop playing the source
  • openal_source_play() - Start playing the source
  • openal_source_rewind() - Rewind the source


Start playing the source

  • « openal_source_pause
  • openal_source_rewind »
  • PHP Manual
  • OpenAL Funktionen
  • Start playing the source

openal_source_play

(PECL openal >= 0.1.0)

openal_source_play — Start playing the source

Beschreibung

openal_source_play ( resource $source ) : bool

Parameter-Liste

source

An Open AL(Source) resource (previously created by openal_source_create()).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_source_stop() - Stop playing the source
  • openal_source_pause() - Pause the source
  • openal_source_rewind() - Rewind the source


Rewind the source

  • « openal_source_play
  • openal_source_set »
  • PHP Manual
  • OpenAL Funktionen
  • Rewind the source

openal_source_rewind

(PECL openal >= 0.1.0)

openal_source_rewind — Rewind the source

Beschreibung

openal_source_rewind ( resource $source ) : bool

Parameter-Liste

source

An Open AL(Source) resource (previously created by openal_source_create()).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_source_stop() - Stop playing the source
  • openal_source_pause() - Pause the source
  • openal_source_play() - Start playing the source


Set source property

  • « openal_source_rewind
  • openal_source_stop »
  • PHP Manual
  • OpenAL Funktionen
  • Set source property

openal_source_set

(PECL openal >= 0.1.0)

openal_source_set — Set source property

Beschreibung

openal_source_set ( resource $source , int $property , mixed $setting ) : bool

Parameter-Liste

source

An Open AL(Source) resource (previously created by openal_source_create()).

property

Property to set, one of: AL_BUFFER (OpenAL(Source)), AL_LOOPING (bool), AL_SOURCE_RELATIVE (int), AL_SOURCE_STATE (int), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

setting

Value to assign to specified property. Refer to the description of property for a description of the value(s) expected.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_source_create() - Generate a source resource
  • openal_source_get() - Retrieve an OpenAL source property
  • openal_source_play() - Start playing the source


Stop playing the source

  • « openal_source_set
  • openal_stream »
  • PHP Manual
  • OpenAL Funktionen
  • Stop playing the source

openal_source_stop

(PECL openal >= 0.1.0)

openal_source_stop — Stop playing the source

Beschreibung

openal_source_stop ( resource $source ) : bool

Parameter-Liste

source

An Open AL(Source) resource (previously created by openal_source_create()).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • openal_source_play() - Start playing the source
  • openal_source_pause() - Pause the source
  • openal_source_rewind() - Rewind the source


Begin streaming on a source

  • « openal_source_stop
  • Authentifizierungsdienste »
  • PHP Manual
  • OpenAL Funktionen
  • Begin streaming on a source

openal_stream

(PECL openal >= 0.1.0)

openal_stream — Begin streaming on a source

Beschreibung

openal_stream ( resource $source , int $format , int $rate ) : resource|false

Parameter-Liste

source

An Open AL(Source) resource (previously created by openal_source_create()).

format

Format of data, one of: AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 und AL_FORMAT_STEREO16

rate

Frequency of data to stream given in Hz.

Rückgabewerte

Returns a stream resource on successIm Fehlerfall wird false zurückgegeben..

Siehe auch

  • openal_source_create() - Generate a source resource
  • fwrite() - Binär-sicheres Dateischreiben


Authentifizierungsdienste

  • Radius
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Radius Funktionen


Radius

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
    • RADIUS Options
    • RADIUS Packet Types
    • RADIUS Attribute Types
    • RADIUS Vendor Specific Attribute Types
  • Beispiele
  • Radius Funktionen
    • radius_acct_open — Creates a Radius handle for accounting
    • radius_add_server — Adds a server
    • radius_auth_open — Creates a Radius handle for authentication
    • radius_close — Frees all ressources
    • radius_config — Causes the library to read the given configuration file
    • radius_create_request — Create accounting or authentication request
    • radius_cvt_addr — Converts raw data to IP-Address
    • radius_cvt_int — Converts raw data to integer
    • radius_cvt_string — Converts raw data to string
    • radius_demangle_mppe_key — Derives mppe-keys from mangled data
    • radius_demangle — Demangles data
    • radius_get_attr — Extracts an attribute
    • radius_get_tagged_attr_data — Extracts the data from a tagged attribute
    • radius_get_tagged_attr_tag — Extracts the tag from a tagged attribute
    • radius_get_vendor_attr — Extracts a vendor specific attribute
    • radius_put_addr — Attaches an IP address attribute
    • radius_put_attr — Attaches a binary attribute
    • radius_put_int — Attaches an integer attribute
    • radius_put_string — Attaches a string attribute
    • radius_put_vendor_addr — Attaches a vendor specific IP address attribute
    • radius_put_vendor_attr — Attaches a vendor specific binary attribute
    • radius_put_vendor_int — Attaches a vendor specific integer attribute
    • radius_put_vendor_string — Attaches a vendor specific string attribute
    • radius_request_authenticator — Returns the request authenticator
    • radius_salt_encrypt_attr — Salt-encrypts a value
    • radius_send_request — Sends the request and waits for a reply
    • radius_server_secret — Returns the shared secret
    • radius_strerror — Returns an error message


Einführung

This package is based on the libradius (Remote Authentication Dial In User Service) of FreeBSD. It allows clients to perform authentication and accounting by means of network requests to remote servers.

This PECL extension adds full support for Radius Authentication (» RFC 2865) and Radius Accounting (» RFC 2866). This package is available for Unix (tested on FreeBSD and Linux) and for Windows.

Hinweis:

An exact description for libradius can be found » here. A detailed description of the configuration file can be found » here.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/radius.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


Vordefinierte Konstanten

Inhaltsverzeichnis

  • RADIUS Options
  • RADIUS Packet Types
  • RADIUS Attribute Types
  • RADIUS Vendor Specific Attribute Types

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

RADIUS_MPPE_KEY_LEN (int)
The maximum length of MPPE keys.


RADIUS Options

Several RADIUS functions accept option flags as bitmasks. The constants representing those flags are listed below.

RADIUS_OPTION_SALT (int)

When set, this option will result in the attribute value being salt-encrypted.

RADIUS_OPTION_TAGGED (int)

When set, this option will result in the attribute value being tagged with the value of the tag parameter.


RADIUS Packet Types

RADIUS packets, whether requests or responses, always include a type. These constants are provided to make it easier to specify types when using radius_create_request() and when comparing the result of radius_send_request().

RADIUS_ACCESS_REQUEST (int)

An Access-Request, used to authenticate a user against a RADIUS server. Access request packets must include a RADIUS_NAS_IP_ADDRESS or a RADIUS_NAS_IDENTIFIER attribute, must also include a RADIUS_USER_PASSWORD, RADIUS_CHAP_PASSWORD or a RADIUS_STATE attribute, and should include a RADIUS_USER_NAME attribute.

RADIUS_ACCESS_ACCEPT (int)

An Access-Accept response to an Access-Request indicating that the RADIUS server authenticated the user successfully.

RADIUS_ACCESS_REJECT (int)

An Access-Reject response to an Access-Request indicating that the RADIUS server could not authenticate the user.

RADIUS_ACCESS_CHALLENGE (int)

An Access-Challenge response to an Access-Request indicating that the RADIUS server requires further information in another Access-Request before authenticating the user.

RADIUS_ACCOUNTING_REQUEST (int)

An Accounting-Request, used to convey accounting information for a service to the RADIUS server.

RADIUS_ACCOUNTING_RESPONSE (int)

An Accounting-Response response to an Accounting-Request.

RADIUS_COA_REQUEST (int)

A CoA-Request, sent from the RADIUS server to indicate that the authorisations within the user session have changed. A response must be sent in the form of a CoA-ACK or a CoA-NAK.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_COA_ACK (int)

A CoA-ACK, sent to the RADIUS server to indicate that the user authorisations have been updated.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_COA_NAK (int)

A CoA-NAK, sent to the RADIUS server to indicate that the user authorisations could not be updated.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_DISCONNECT_REQUEST (int)

A Disconnect-Request, sent from the RADIUS server to indicate that the user session must be terminated.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_DISCONNECT_ACK (int)

A Disconnect-ACK, sent to the RADIUS server to indicate that the user session has been terminated.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_DISCONNECT_NAK (int)

A Disconnect-NAK, sent to the RADIUS server to indicate that the user session could not be terminated.

This constant is available in PECL radius 1.3.0 and later.


RADIUS Attribute Types

These constants define RADIUS attribute types that can be used with
radius_put_addr(), radius_put_attr(),
radius_put_int() and
radius_put_string().

RADIUS_USER_NAME (int)

The User-Name attribute. The attribute value is expected to be a string containing the name of the user being authenticated, and can be set using radius_put_attr().

RADIUS_USER_PASSWORD (int)

The User-Password attribute. The attribute value is expected to be a string containing the user's password, and can be set using radius_put_attr(). This value will be obfuscated on transmission as described in » section 5.2 of RFC 2865.

RADIUS_CHAP_PASSWORD (int)

The Chap-Password attribute. The attribute value is expected to be a string with the first byte containing the CHAP identifier, and the subsequent 16 bytes containing the MD5 hash of the CHAP identifier, the plaintext password and the CHAP challenge value concatenated together. Note that the CHAP challenge value should also be sent separately in a RADIUS_CHAP_CHALLENGE attribute.

Beispiel #1 Using CHAP passwords

<?php
// Firstly, we'll create an authentication handle and request.
$radh = radius_auth_open();
radius_add_server($radh, $server, $port, $secret, 3, 3);
radius_create_request($radh, RADIUS_ACCESS_REQUEST);

// Assuming $password contains the plaintext password, we now:

// Generate a challenge.
$challenge = mt_rand();

// Specify a CHAP identifier.
$ident = 1;

// Add the Chap-Password attribute.
$cp = md5(pack('Ca*', $ident, $password.$challenge), true);
radius_put_attr($radh, RADIUS_CHAP_PASSWORD, pack('C', $ident).$cp);

// Add the Chap-Challenge attribute.
radius_put_attr($radh, RADIUS_CHAP_CHALLENGE, $challenge);

/* From here, you would add the remaining attributes and
 * call radius_send_request(). */
?>

RADIUS_NAS_IP_ADDRESS (int)

The NAS-IP-Address attribute. The attribute value is expected to the IP address of the RADIUS client encoded as an int, which can be set using radius_put_addr().

RADIUS_NAS_PORT (int)

The NAS-Port attribute. The attribute value is expected to be the physical port of the user on the RADIUS client encoded as an int, which can be set using radius_put_int().

RADIUS_SERVICE_TYPE (int)

The Service-Type attribute. The attribute value indicates the service type the user is requesting, and is expected to be an int, which can be set using radius_put_int().

A number of constants are provided to represent the possible values of this attribute. They include:

  • RADIUS_LOGIN
  • RADIUS_FRAMED
  • RADIUS_CALLBACK_LOGIN
  • RADIUS_CALLBACK_FRAMED
  • RADIUS_OUTBOUND
  • RADIUS_ADMINISTRATIVE
  • RADIUS_NAS_PROMPT
  • RADIUS_AUTHENTICATE_ONLY
  • RADIUS_CALLBACK_NAS_PROMPT

RADIUS_FRAMED_PROTOCOL (int)

The Framed-Protocol attribute. The attribute value is expected to be an int indicating the framing to be used for framed access, and can be set using radius_put_int(). The possible attribute values include these constants:

  • RADIUS_PPP
  • RADIUS_SLIP
  • RADIUS_ARAP
  • RADIUS_GANDALF
  • RADIUS_XYLOGICS

RADIUS_FRAMED_IP_ADDRESS (int)

The Framed-IP-Address attribute. The attribute value is expected to be the address of the user's network encoded as an int, which can be set using radius_put_addr() and retrieved using radius_cvt_addr().

RADIUS_FRAMED_IP_NETMASK (int)

The Framed-IP-Netmask attribute. The attribute value is expected to be the netmask of the user's network encoded as an int, which can be set using radius_put_addr() and retrieved using radius_cvt_addr().

RADIUS_FRAMED_ROUTING (int)

The Framed-Routing attribute. The attribute value is expected to be an int indicating the routing method for the user, which can be set using radius_put_int().

Possible values include:

  • 0: No routing
  • 1: Send routing packets
  • 2: Listen for routing packets
  • 3: Send and listen

RADIUS_FILTER_ID (int)

The Filter-ID attribute. The attribute value is expected to be an implementation-specific, human-readable string of filters, which can be set using radius_put_attr().

RADIUS_FRAMED_MTU (int)

The Framed-MTU attribute. The attribute value is expected to be an int indicating the MTU to be configured for the user, and can be set using radius_put_int().

RADIUS_FRAMED_COMPRESSION (int)

The Framed-Compression attribute. The attribute value is expected to be an int indicating the compression protocol to be used, and can be set using radius_put_int(). Possible values include these constants:

  • RADIUS_COMP_NONE: No compression
  • RADIUS_COMP_VJ: VJ TCP/IP header compression
  • RADIUS_COMP_IPXHDR: IPX header compression
  • RADIUS_COMP_STAC_LZS: Stac-LZS compression (added in PECL radius 1.3.0b2)

RADIUS_LOGIN_IP_HOST (int)

The Login-IP-Host attribute. The attribute value is expected to the IP address to connect the user to, encoded as an int, which can be set using radius_put_addr().

RADIUS_LOGIN_SERVICE (int)

The Login-Service attribute. The attribute value is an int indicating the service to connect the user to on the login host. The value can be converted to a PHP integer via radius_cvt_int().

RADIUS_LOGIN_TCP_PORT (int)

The Login-TCP-Port attribute. The attribute value is an int indicating the port to connect the user to on the login host. The value can be converted to a PHP integer via radius_cvt_int().

RADIUS_REPLY_MESSAGE (int)

The Reply-Message attribute. The attribute value is a string containing text that may be displayed to the user in response to an access request.

RADIUS_CALLBACK_NUMBER (int)

The Callback-Number attribute. The attribute value is a string containing the dialing string to use for callback.

RADIUS_CALLBACK_ID (int)

The Callback-Id attribute. The attribute value is a string containing an implementation-specific name of the place to be called.

RADIUS_FRAMED_ROUTE (int)

The Framed-Route attribute. The attribute value is a string containing an implementation-specific set of routes to be configured for the user.

RADIUS_FRAMED_IPX_NETWORK (int)

The Framed-IPX-Network attribute. The attribute value is an int containing the IPX network to be configured for the user, or 0xFFFFFFFE to indicate that the RADIUS client should select the network, and can be accessed via radius_cvt_int().

RADIUS_STATE (int)

The State attribute. The attribute value is an implementation-defined string included in an Access-Challenge from a server that must be included in the subsequent Access-Request, and can be set using radius_put_attr().

RADIUS_CLASS (int)

The Class attribute. The attribute value is an arbitrary string included in an Access-Accept message that should then be sent to the accounting server in Accounting-Request messages, and can be set using radius_put_attr().

RADIUS_VENDOR_SPECIFIC (int)

The Vendor-Specific attribute. In general, vendor attribute values
should be set using radius_put_vendor_addr(),
radius_put_vendor_attr(),
radius_put_vendor_int() and
radius_put_vendor_string(), rather than directly.

This constant is mostly useful when interpreting vendor specific attributes in responses from a RADIUS server; when a vendor specific attribute is received, the radius_get_vendor_attr() function should be used to access the vendor ID, attribute type and attribute value.

RADIUS_SESSION_TIMEOUT (int)

Session timeout

RADIUS_IDLE_TIMEOUT (int)

Idle timeout

RADIUS_TERMINATION_ACTION (int)

Termination action

RADIUS_CALLED_STATION_ID (int)

Called Station Id

RADIUS_CALLING_STATION_ID (int)

Calling Station Id

RADIUS_NAS_IDENTIFIER (int)

NAS ID

RADIUS_PROXY_STATE (int)

Proxy State

RADIUS_LOGIN_LAT_SERVICE (int)

Login LAT Service

RADIUS_LOGIN_LAT_NODE (int)

Login LAT Node

RADIUS_LOGIN_LAT_GROUP (int)

Login LAT Group

RADIUS_FRAMED_APPLETALK_LINK (int)

Framed Appletalk Link

RADIUS_FRAMED_APPLETALK_NETWORK (int)

Framed Appletalk Network

RADIUS_FRAMED_APPLETALK_ZONE (int)

Framed Appletalk Zone

RADIUS_CHAP_CHALLENGE (int)

Challenge

RADIUS_NAS_PORT_TYPE (int)

NAS port type, one of:

  • RADIUS_ASYNC
  • RADIUS_SYNC
  • RADIUS_ISDN_SYNC
  • RADIUS_ISDN_ASYNC_V120
  • RADIUS_ISDN_ASYNC_V110
  • RADIUS_VIRTUAL
  • RADIUS_PIAFS
  • RADIUS_HDLC_CLEAR_CHANNEL
  • RADIUS_X_25
  • RADIUS_X_75
  • RADIUS_G_3_FAX
  • RADIUS_SDSL
  • RADIUS_ADSL_CAP
  • RADIUS_ADSL_DMT
  • RADIUS_IDSL
  • RADIUS_ETHERNET
  • RADIUS_XDSL
  • RADIUS_CABLE
  • RADIUS_WIRELESS_OTHER
  • RADIUS_WIRELESS_IEEE_802_11

RADIUS_PORT_LIMIT (int)

Port Limit

RADIUS_LOGIN_LAT_PORT (int)

Login LAT Port

RADIUS_CONNECT_INFO (int)

Connect info

RADIUS_ACCT_STATUS_TYPE (int)

Accounting status type, one of:

  • RADIUS_START
  • RADIUS_STOP
  • RADIUS_ACCOUNTING_ON
  • RADIUS_ACCOUNTING_OFF

RADIUS_ACCT_DELAY_TIME (int)

Accounting delay time

RADIUS_ACCT_INPUT_OCTETS (int)

Accounting input bytes

RADIUS_ACCT_OUTPUT_OCTETS (int)

Accounting output bytes

RADIUS_ACCT_SESSION_ID (int)

Accounting session ID

RADIUS_ACCT_AUTHENTIC (int)

Accounting authentic, one of:

  • RADIUS_AUTH_RADIUS
  • RADIUS_AUTH_LOCAL
  • RADIUS_AUTH_REMOTE

RADIUS_ACCT_SESSION_TIME (int)

Accounting session time

RADIUS_ACCT_INPUT_PACKETS (int)

Accounting input packets

RADIUS_ACCT_OUTPUT_PACKETS (int)

Accounting output packets

RADIUS_ACCT_TERMINATE_CAUSE (int)

Accounting terminate cause, one of:

  • RADIUS_TERM_USER_REQUEST
  • RADIUS_TERM_LOST_CARRIER
  • RADIUS_TERM_LOST_SERVICE
  • RADIUS_TERM_IDLE_TIMEOUT
  • RADIUS_TERM_SESSION_TIMEOUT
  • RADIUS_TERM_ADMIN_RESET
  • RADIUS_TERM_ADMIN_REBOOT
  • RADIUS_TERM_PORT_ERROR
  • RADIUS_TERM_NAS_ERROR
  • RADIUS_TERM_NAS_REQUEST
  • RADIUS_TERM_NAS_REBOOT
  • RADIUS_TERM_PORT_UNNEEDED
  • RADIUS_TERM_PORT_PREEMPTED
  • RADIUS_TERM_PORT_SUSPENDED
  • RADIUS_TERM_SERVICE_UNAVAILABLE
  • RADIUS_TERM_CALLBACK
  • RADIUS_TERM_USER_ERROR
  • RADIUS_TERM_HOST_REQUEST

RADIUS_ACCT_MULTI_SESSION_ID (int)

Accounting multi session ID

RADIUS_ACCT_LINK_COUNT (int)

Accounting link count


RADIUS Vendor Specific Attribute Types

RADIUS_VENDOR_MICROSOFT (int)

Microsoft specific vendor attributes (» RFC 2548), one of:

  • RADIUS_MICROSOFT_MS_CHAP_RESPONSE
  • RADIUS_MICROSOFT_MS_CHAP_ERROR
  • RADIUS_MICROSOFT_MS_CHAP_PW_1
  • RADIUS_MICROSOFT_MS_CHAP_PW_2
  • RADIUS_MICROSOFT_MS_CHAP_LM_ENC_PW
  • RADIUS_MICROSOFT_MS_CHAP_NT_ENC_PW
  • RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_POLICY
  • RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_TYPES
  • RADIUS_MICROSOFT_MS_RAS_VENDOR
  • RADIUS_MICROSOFT_MS_CHAP_DOMAIN
  • RADIUS_MICROSOFT_MS_CHAP_CHALLENGE
  • RADIUS_MICROSOFT_MS_CHAP_MPPE_KEYS
  • RADIUS_MICROSOFT_MS_BAP_USAGE
  • RADIUS_MICROSOFT_MS_LINK_UTILIZATION_THRESHOLD
  • RADIUS_MICROSOFT_MS_LINK_DROP_TIME_LIMIT
  • RADIUS_MICROSOFT_MS_MPPE_SEND_KEY
  • RADIUS_MICROSOFT_MS_MPPE_RECV_KEY
  • RADIUS_MICROSOFT_MS_RAS_VERSION
  • RADIUS_MICROSOFT_MS_OLD_ARAP_PASSWORD
  • RADIUS_MICROSOFT_MS_NEW_ARAP_PASSWORD
  • RADIUS_MICROSOFT_MS_ARAP_PASSWORD_CHANGE_REASON
  • RADIUS_MICROSOFT_MS_FILTER
  • RADIUS_MICROSOFT_MS_ACCT_AUTH_TYPE
  • RADIUS_MICROSOFT_MS_ACCT_EAP_TYPE
  • RADIUS_MICROSOFT_MS_CHAP2_RESPONSE
  • RADIUS_MICROSOFT_MS_CHAP2_SUCCESS
  • RADIUS_MICROSOFT_MS_CHAP2_PW
  • RADIUS_MICROSOFT_MS_PRIMARY_DNS_SERVER
  • RADIUS_MICROSOFT_MS_SECONDARY_DNS_SERVER
  • RADIUS_MICROSOFT_MS_PRIMARY_NBNS_SERVER
  • RADIUS_MICROSOFT_MS_SECONDARY_NBNS_SERVER
  • RADIUS_MICROSOFT_MS_ARAP_CHALLENGE


Beispiele

Howto start?

  • get a radius resource
  • configure the library
  • create the request
  • put attributes
  • send the request
  • receive attributes
  • close the radius resource (optional)
Take also a look at the examples in this package.

The package contains an example php script. This script demonstrates howto authenticate with radius using PAP or CHAP (md5). If you authenticate with Microsoft Radius servers then its not possible to use CHAP (md5). If you would like to authenticate with Microsoft Servers you have to use MS-CHAPv1 or MS-CHAPv2, but its more complicated, because you need md4, sha1 and des to generate the right data. The enclosed examples demonstrate all authentication-methods, including MS-CHAPv1 and MS-CHAPv2. To get the MS-CHAP to work you need the mcrypt and the mhash extension, starting with version 1.2 of the package, the mcrypt extension is no longer needed.


Radius Funktionen

Inhaltsverzeichnis

  • radius_acct_open — Creates a Radius handle for accounting
  • radius_add_server — Adds a server
  • radius_auth_open — Creates a Radius handle for authentication
  • radius_close — Frees all ressources
  • radius_config — Causes the library to read the given configuration file
  • radius_create_request — Create accounting or authentication request
  • radius_cvt_addr — Converts raw data to IP-Address
  • radius_cvt_int — Converts raw data to integer
  • radius_cvt_string — Converts raw data to string
  • radius_demangle_mppe_key — Derives mppe-keys from mangled data
  • radius_demangle — Demangles data
  • radius_get_attr — Extracts an attribute
  • radius_get_tagged_attr_data — Extracts the data from a tagged attribute
  • radius_get_tagged_attr_tag — Extracts the tag from a tagged attribute
  • radius_get_vendor_attr — Extracts a vendor specific attribute
  • radius_put_addr — Attaches an IP address attribute
  • radius_put_attr — Attaches a binary attribute
  • radius_put_int — Attaches an integer attribute
  • radius_put_string — Attaches a string attribute
  • radius_put_vendor_addr — Attaches a vendor specific IP address attribute
  • radius_put_vendor_attr — Attaches a vendor specific binary attribute
  • radius_put_vendor_int — Attaches a vendor specific integer attribute
  • radius_put_vendor_string — Attaches a vendor specific string attribute
  • radius_request_authenticator — Returns the request authenticator
  • radius_salt_encrypt_attr — Salt-encrypts a value
  • radius_send_request — Sends the request and waits for a reply
  • radius_server_secret — Returns the shared secret
  • radius_strerror — Returns an error message


Creates a Radius handle for accounting

  • « Radius Funktionen
  • radius_add_server »
  • PHP Manual
  • Radius Funktionen
  • Creates a Radius handle for accounting

radius_acct_open

(PECL radius >= 1.1.0)

radius_acct_open — Creates a Radius handle for accounting

Beschreibung

radius_acct_open ( ) : resource

Rückgabewerte

Returns a handle on success, false on error. This function only fails if insufficient memory is available.

Beispiele

Beispiel #1 radius_acct_open() example

<?php
$res = radius_acct_open ()
    or die ("Could not create handle");
print("Handle successfully created");
?>


Adds a server

  • « radius_acct_open
  • radius_auth_open »
  • PHP Manual
  • Radius Funktionen
  • Adds a server

radius_add_server

(PECL radius >= 1.1.0)

radius_add_server — Adds a server

Beschreibung

radius_add_server ( resource $radius_handle , string $hostname , int $port , string $secret , int $timeout , int $max_tries ) : bool

radius_add_server() may be called multiple times, and it may be used together with radius_config(). At most 10 servers may be specified. When multiple servers are given, they are tried in round-robin fashion until a valid response is received, or until each server's max_tries limit has been reached.

Parameter-Liste

radius_handle

hostname

The hostname parameter specifies the server host, either as a fully qualified domain name or as a dotted-quad IP address in text form.

port

The port specifies the UDP port to contact on the server. If port is given as 0, the library looks up the radius/udp or radacct/udp service in the network services database, and uses the port found there. If no entry is found, the library uses the standard Radius ports, 1812 for authentication and 1813 for accounting.

secret

The shared secret for the server host is passed to the secret parameter. The Radius protocol ignores all but the leading 128 bytes of the shared secret.

timeout

The timeout for receiving replies from the server is passed to the timeout parameter, in units of seconds.

max_tries

The maximum number of repeated requests to make before giving up is passed into the max_tries.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 radius_add_server() example

<?php
if (!radius_add_server($res, 'radius.example.com', 1812, 'testing123', 3, 3)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br>";
    exit;
}
?>

Siehe auch

  • radius_config() - Causes the library to read the given configuration file


Creates a Radius handle for authentication

  • « radius_add_server
  • radius_close »
  • PHP Manual
  • Radius Funktionen
  • Creates a Radius handle for authentication

radius_auth_open

(PECL radius >= 1.1.0)

radius_auth_open — Creates a Radius handle for authentication

Beschreibung

radius_auth_open ( ) : resource

Rückgabewerte

Returns a handle on success, false on error. This function only fails if insufficient memory is available.

Beispiele

Beispiel #1 radius_auth_open() example

<?php
$radh = radius_auth_open()
    or die ("Could not create handle");
echo "Handle successfully created";
?>


Frees all ressources

  • « radius_auth_open
  • radius_config »
  • PHP Manual
  • Radius Funktionen
  • Frees all ressources

radius_close

(PECL radius >= 1.1.0)

radius_close — Frees all ressources

Beschreibung

radius_close ( resource $radius_handle ) : bool

It is not needed to call this function because php frees all resources at the end of each request.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Causes the library to read the given configuration file

  • « radius_close
  • radius_create_request »
  • PHP Manual
  • Radius Funktionen
  • Causes the library to read the given configuration file

radius_config

(PECL radius >= 1.1.0)

radius_config — Causes the library to read the given configuration file

Beschreibung

radius_config ( resource $radius_handle , string $file ) : bool

Before issuing any Radius requests, the library must be made aware of the servers it can contact. The easiest way to configure the library is to call radius_config(). radius_config() causes the library to read a configuration file whose format is described in » radius.conf.

Parameter-Liste

radius_handle

file

The pathname of the configuration file is passed as the file argument to radius_config(). The library can also be configured programmatically by calls to radius_add_server().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • radius_add_server() - Adds a server


Create accounting or authentication request

  • « radius_config
  • radius_cvt_addr »
  • PHP Manual
  • Radius Funktionen
  • Create accounting or authentication request

radius_create_request

(PECL radius >= 1.1.0)

radius_create_request — Create accounting or authentication request

Beschreibung

radius_create_request ( resource $radius_handle , int $type ) : bool

A Radius request consists of a code specifying the kind of request, and zero or more attributes which provide additional information. To begin constructing a new request, call radius_create_request().

Hinweis: Attention: You must call this function, before you can put any attribute!

Parameter-Liste

radius_handle

type

Type is RADIUS_ACCESS_REQUEST or RADIUS_ACCOUNTING_REQUEST.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 radius_create_request() example

<?php
if (!radius_create_request($res, RADIUS_ACCESS_REQUEST)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Siehe auch

  • radius_send_request() - Sends the request and waits for a reply


Converts raw data to IP-Address

  • « radius_create_request
  • radius_cvt_int »
  • PHP Manual
  • Radius Funktionen
  • Converts raw data to IP-Address

radius_cvt_addr

(PECL radius >= 1.1.0)

radius_cvt_addr — Converts raw data to IP-Address

Beschreibung

radius_cvt_addr ( string $data ) : string

Beispiele

Beispiel #1 radius_cvt_addr() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FRAMED_IP_ADDRESS:
        $ip = radius_cvt_addr($data);
        echo "IP: $ip<br>\n";
        break;

    case RADIUS_FRAMED_IP_NETMASK:
        $mask = radius_cvt_addr($data);
        echo "MASK: $mask<br>\n";
        break;
    }
}
?>

Siehe auch

  • radius_cvt_int() - Converts raw data to integer
  • radius_cvt_string() - Converts raw data to string


Converts raw data to integer

  • « radius_cvt_addr
  • radius_cvt_string »
  • PHP Manual
  • Radius Funktionen
  • Converts raw data to integer

radius_cvt_int

(PECL radius >= 1.1.0)

radius_cvt_int — Converts raw data to integer

Beschreibung

radius_cvt_int ( string $data ) : int

Beispiele

Beispiel #1 radius_cvt_int() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FRAMED_MTU:
        $mtu = radius_cvt_int($data);
        echo "MTU: $mtu<br>\n";
        break;
    }
}
?>

Siehe auch

  • radius_cvt_addr() - Converts raw data to IP-Address
  • radius_cvt_string() - Converts raw data to string


Converts raw data to string

  • « radius_cvt_int
  • radius_demangle_mppe_key »
  • PHP Manual
  • Radius Funktionen
  • Converts raw data to string

radius_cvt_string

(PECL radius >= 1.1.0)

radius_cvt_string — Converts raw data to string

Beschreibung

radius_cvt_string ( string $data ) : string

Beispiele

Beispiel #1 radius_cvt_string() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FILTER_ID:
        $id = radius_cvt_string($data);
        echo "Filter ID: $id<br>\n";
        break;
    }
}
?>

Siehe auch

  • radius_cvt_addr() - Converts raw data to IP-Address
  • radius_cvt_int() - Converts raw data to integer


Derives mppe-keys from mangled data

  • « radius_cvt_string
  • radius_demangle »
  • PHP Manual
  • Radius Funktionen
  • Derives mppe-keys from mangled data

radius_demangle_mppe_key

(PECL radius >= 1.2.0)

radius_demangle_mppe_key — Derives mppe-keys from mangled data

Beschreibung

radius_demangle_mppe_key ( resource $radius_handle , string $mangled ) : string

When using MPPE with MS-CHAPv2, the send- and recv-keys are mangled (see » RFC 2548), however this function is useless, because I don't think that there is or will be a PPTP-MPPE implementation in PHP.

Rückgabewerte

Returns the demangled string, or false on error.


Demangles data

  • « radius_demangle_mppe_key
  • radius_get_attr »
  • PHP Manual
  • Radius Funktionen
  • Demangles data

radius_demangle

(PECL radius >= 1.2.0)

radius_demangle — Demangles data

Beschreibung

radius_demangle ( resource $radius_handle , string $mangled ) : string

Some data (Passwords, MS-CHAPv1 MPPE-Keys) is mangled for security reasons, and must be demangled before you can use them.

Rückgabewerte

Returns the demangled string, or false on error.


Extracts an attribute

  • « radius_demangle
  • radius_get_tagged_attr_data »
  • PHP Manual
  • Radius Funktionen
  • Extracts an attribute

radius_get_attr

(PECL radius >= 1.1.0)

radius_get_attr — Extracts an attribute

Beschreibung

radius_get_attr ( resource $radius_handle ) : mixed

Like Radius requests, each response may contain zero or more attributes. After a response has been received successfully by radius_send_request(), its attributes can be extracted one by one using radius_get_attr(). Each time radius_get_attr() is called, it gets the next attribute from the current response.

Rückgabewerte

Returns an associative array containing the attribute-type and the data, or error number <= 0.

Beispiele

Beispiel #1 radius_get_attr() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];
    printf("Got Attr:%d %d Bytes %s\n", $attr, strlen($data), bin2hex($data));
}
?>

Siehe auch

  • radius_put_attr() - Attaches a binary attribute
  • radius_get_vendor_attr() - Extracts a vendor specific attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute
  • radius_send_request() - Sends the request and waits for a reply


Extracts the data from a tagged attribute

  • « radius_get_attr
  • radius_get_tagged_attr_tag »
  • PHP Manual
  • Radius Funktionen
  • Extracts the data from a tagged attribute

radius_get_tagged_attr_data

(PECL radius >= 1.3.0)

radius_get_tagged_attr_data — Extracts the data from a tagged attribute

Beschreibung

radius_get_tagged_attr_data ( string $data ) : string|false

If a tagged attribute has been returned from radius_get_attr(), radius_get_tagged_attr_data() will return the data from the attribute.

Parameter-Liste

data

The tagged attribute to be decoded.

Rückgabewerte

Returns the data from the tagged attribute Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 radius_get_tagged_attr_data() example

<?php
while ($resa = radius_get_attr($res)) {
    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    $tag = radius_get_tagged_attr_tag($data);
    $value = radius_get_tagged_attr_data($data);

    printf("Got tagged attribute with tag %d and value %s\n", $tag, $value);
}
?>

Siehe auch

  • radius_get_attr() - Extracts an attribute
  • radius_get_tagged_attr_tag() - Extracts the tag from a tagged attribute


Extracts the tag from a tagged attribute

  • « radius_get_tagged_attr_data
  • radius_get_vendor_attr »
  • PHP Manual
  • Radius Funktionen
  • Extracts the tag from a tagged attribute

radius_get_tagged_attr_tag

(PECL radius >= 1.3.0)

radius_get_tagged_attr_tag — Extracts the tag from a tagged attribute

Beschreibung

radius_get_tagged_attr_tag ( string $data ) : int|false

If a tagged attribute has been returned from radius_get_attr(), radius_get_tagged_attr_data() will return the tag from the attribute.

Parameter-Liste

data

The tagged attribute to be decoded.

Rückgabewerte

Returns the tag from the tagged attribute Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 radius_get_tagged_attr_tag() example

<?php
while ($resa = radius_get_attr($res)) {
    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    $tag = radius_get_tagged_attr_tag($data);
    $value = radius_get_tagged_attr_data($data);

    printf("Got tagged attribute with tag %d and value %s\n", $tag, $value);
}
?>

Siehe auch

  • radius_get_attr() - Extracts an attribute
  • radius_get_tagged_attr_data() - Extracts the data from a tagged attribute


Extracts a vendor specific attribute

  • « radius_get_tagged_attr_tag
  • radius_put_addr »
  • PHP Manual
  • Radius Funktionen
  • Extracts a vendor specific attribute

radius_get_vendor_attr

(PECL radius >= 1.1.0)

radius_get_vendor_attr — Extracts a vendor specific attribute

Beschreibung

radius_get_vendor_attr ( string $data ) : array

If radius_get_attr() returns RADIUS_VENDOR_SPECIFIC, radius_get_vendor_attr() may be called to determine the vendor.

Rückgabewerte

Returns an associative array containing the attribute-type, vendor and the data, or false on error.

Beispiele

Beispiel #1 radius_get_vendor_attr() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];
    printf("Got Attr:%d %d Bytes %s\n", $attr, strlen($data), bin2hex($data));
    if ($attr == RADIUS_VENDOR_SPECIFIC) {

        $resv = radius_get_vendor_attr($data);
        if (is_array($resv)) {
            $vendor = $resv['vendor'];
            $attrv = $resv['attr'];
            $datav = $resv['data'];
            printf("Got Vendor Attr:%d %d Bytes %s\n", $attrv, strlen($datav), bin2hex($datav));
        }

    }
}
?>

Siehe auch

  • radius_get_attr() - Extracts an attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute


Attaches an IP address attribute

  • « radius_get_vendor_attr
  • radius_put_attr »
  • PHP Manual
  • Radius Funktionen
  • Attaches an IP address attribute

radius_put_addr

(PECL radius >= 1.1.0)

radius_put_addr — Attaches an IP address attribute

Beschreibung

radius_put_addr ( resource $radius_handle , int $type , string $addr , int $options = 0 , int $tag = ? ) : bool

Attaches an IP address attribute to the current RADIUS request.

Hinweis:

A request must be created via radius_create_request() before this function can be called.

Parameter-Liste

radius_handle

The RADIUS resource.

type

The attribute type.

addr

An IPv4 address in string form, such as 10.0.0.1.

options

A bitmask of the attribute options. The available options include RADIUS_OPTION_TAGGED and RADIUS_OPTION_SALT.

tag

The attribute tag. This parameter is ignored unless the RADIUS_OPTION_TAGGED option is set.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
PECL radius 1.3.0 | The options and tag parameters were added.


Attaches a binary attribute

  • « radius_put_addr
  • radius_put_int »
  • PHP Manual
  • Radius Funktionen
  • Attaches a binary attribute

radius_put_attr

(PECL radius >= 1.1.0)

radius_put_attr — Attaches a binary attribute

Beschreibung

radius_put_attr ( resource $radius_handle , int $type , string $value , int $options = 0 , int $tag = ? ) : bool

Attaches a binary attribute to the current RADIUS request.

Hinweis:

A request must be created via radius_create_request() before this function can be called.

Parameter-Liste

radius_handle

The RADIUS resource.

type

The attribute type.

value

The attribute value, which will be treated as a raw binary string.

options

A bitmask of the attribute options. The available options include RADIUS_OPTION_TAGGED and RADIUS_OPTION_SALT.

tag

The attribute tag. This parameter is ignored unless the RADIUS_OPTION_TAGGED option is set.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 radius_put_attr() example

<?php
mt_srand(time());
$chall = mt_rand();
$chapval = md5(pack('Ca*',1 , 'sepp' . $chall));
$pass = pack('CH*', 1, $chapval);
if (!radius_put_attr($res, RADIUS_CHAP_PASSWORD, $pass)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Changelog

Version | Beschreibung
PECL radius 1.3.0 | The options and tag parameters were added.

Siehe auch

  • radius_get_attr() - Extracts an attribute
  • radius_get_vendor_attr() - Extracts a vendor specific attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute


Attaches an integer attribute

  • « radius_put_attr
  • radius_put_string »
  • PHP Manual
  • Radius Funktionen
  • Attaches an integer attribute

radius_put_int

(PECL radius >= 1.1.0)

radius_put_int — Attaches an integer attribute

Beschreibung

radius_put_int ( resource $radius_handle , int $type , int $value , int $options = 0 , int $tag = ? ) : bool

Attaches an integer attribute to the current RADIUS request.

Hinweis:

A request must be created via radius_create_request() before this function can be called.

Parameter-Liste

radius_handle

The RADIUS resource.

type

The attribute type.

value

The attribute value.

options

A bitmask of the attribute options. The available options include RADIUS_OPTION_TAGGED and RADIUS_OPTION_SALT.

tag

The attribute tag. This parameter is ignored unless the RADIUS_OPTION_TAGGED option is set.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
PECL radius 1.3.0 | The options and tag parameters were added.

Beispiele

Beispiel #1 radius_put_int() example

<?php
if (!radius_put_int($res, RAD_FRAMED_PROTOCOL, RAD_PPP)) {
   echo 'RadiusError:' . radius_strerror($res). "\n<br />";
   exit;
}
?>

Siehe auch

  • radius_put_string() - Attaches a string attribute
  • radius_put_vendor_int() - Attaches a vendor specific integer attribute
  • radius_put_vendor_string() - Attaches a vendor specific string attribute


Attaches a string attribute

  • « radius_put_int
  • radius_put_vendor_addr »
  • PHP Manual
  • Radius Funktionen
  • Attaches a string attribute

radius_put_string

(PECL radius >= 1.1.0)

radius_put_string — Attaches a string attribute

Beschreibung

radius_put_string ( resource $radius_handle , int $type , string $value , int $options = 0 , int $tag = ? ) : bool

Attaches a string attribute to the current RADIUS request. In general, radius_put_attr() is a more useful function for attaching string attributes, as it is binary safe.

Hinweis:

A request must be created via radius_create_request() before this function can be called.

Parameter-Liste

radius_handle

The RADIUS resource.

type

The attribute type.

value

The attribute value. This value is expected by the underlying library to be null terminated, therefore this parameter is not binary safe.

options

A bitmask of the attribute options. The available options include RADIUS_OPTION_TAGGED and RADIUS_OPTION_SALT.

tag

The attribute tag. This parameter is ignored unless the RADIUS_OPTION_TAGGED option is set.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
PECL radius 1.3.0 | The options and tag parameters were added.

Beispiele

Beispiel #1 radius_put_string() example

<?php
if (!radius_put_string($res, RADIUS_USER_NAME, 'billy')) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Siehe auch

  • radius_put_int() - Attaches an integer attribute
  • radius_put_vendor_int() - Attaches a vendor specific integer attribute
  • radius_put_vendor_string() - Attaches a vendor specific string attribute


Attaches a vendor specific IP address attribute

  • « radius_put_string
  • radius_put_vendor_attr »
  • PHP Manual
  • Radius Funktionen
  • Attaches a vendor specific IP address attribute

radius_put_vendor_addr

(PECL radius >= 1.1.0)

radius_put_vendor_addr — Attaches a vendor specific IP address attribute

Beschreibung

radius_put_vendor_addr ( resource $radius_handle , int $vendor , int $type , string $addr ) : bool

Attaches an IP address vendor specific attribute to the current RADIUS request.

Hinweis:

A request must be created via radius_create_request() before this function can be called.

Parameter-Liste

radius_handle

The RADIUS resource.

vendor

The vendor ID.

type

The attribute type.

addr

An IPv4 address in string form, such as 10.0.0.1.

options

A bitmask of the attribute options. The available options include RADIUS_OPTION_TAGGED and RADIUS_OPTION_SALT.

tag

The attribute tag. This parameter is ignored unless the RADIUS_OPTION_TAGGED option is set.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
PECL radius 1.3.0 | The options and tag parameters were added.


Attaches a vendor specific binary attribute

  • « radius_put_vendor_addr
  • radius_put_vendor_int »
  • PHP Manual
  • Radius Funktionen
  • Attaches a vendor specific binary attribute

radius_put_vendor_attr

(PECL radius >= 1.1.0)

radius_put_vendor_attr — Attaches a vendor specific binary attribute

Beschreibung

radius_put_vendor_attr ( resource $radius_handle , int $vendor , int $type , string $value , int $options = 0 , int $tag = ? ) : bool

Attaches a vendor specific binary attribute to the current RADIUS request.

Hinweis:

A request must be created via radius_create_request() before this function can be called.

Parameter-Liste

radius_handle

The RADIUS resource.

vendor

The vendor ID.

type

The attribute type.

value

The attribute value, which will be treated as a raw binary string.

options

A bitmask of the attribute options. The available options include RADIUS_OPTION_TAGGED and RADIUS_OPTION_SALT.

tag

The attribute tag. This parameter is ignored unless the RADIUS_OPTION_TAGGED option is set.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
PECL radius 1.3.0 | The options and tag parameters were added.

Beispiele

Beispiel #1 radius_put_vendor_attr() example

<?php
if (!radius_put_vendor_attr($res, RADIUS_VENDOR_MICROSOFT, RAD_MICROSOFT_MS_CHAP_CHALLENGE, $challenge)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Siehe auch

  • radius_get_vendor_attr() - Extracts a vendor specific attribute


Attaches a vendor specific integer attribute

  • « radius_put_vendor_attr
  • radius_put_vendor_string »
  • PHP Manual
  • Radius Funktionen
  • Attaches a vendor specific integer attribute

radius_put_vendor_int

(PECL radius >= 1.1.0)

radius_put_vendor_int — Attaches a vendor specific integer attribute

Beschreibung

radius_put_vendor_int ( resource $radius_handle , int $vendor , int $type , int $value , int $options = 0 , int $tag = ? ) : bool

Attaches a vendor specific integer attribute to the current RADIUS request.

Hinweis:

A request must be created via radius_create_request() before this function can be called.

Parameter-Liste

radius_handle

The RADIUS resource.

vendor

The vendor ID.

type

The attribute type.

value

The attribute value.

options

A bitmask of the attribute options. The available options include RADIUS_OPTION_TAGGED and RADIUS_OPTION_SALT.

tag

The attribute tag. This parameter is ignored unless the RADIUS_OPTION_TAGGED option is set.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
PECL radius 1.3.0 | The options and tag parameters were added.

Siehe auch

  • radius_put_vendor_string() - Attaches a vendor specific string attribute


Attaches a vendor specific string attribute

  • « radius_put_vendor_int
  • radius_request_authenticator »
  • PHP Manual
  • Radius Funktionen
  • Attaches a vendor specific string attribute

radius_put_vendor_string

(PECL radius >= 1.1.0)

radius_put_vendor_string — Attaches a vendor specific string attribute

Beschreibung

radius_put_vendor_string ( resource $radius_handle , int $vendor , int $type , string $value , int $options = 0 , int $tag = ? ) : bool

Attaches a vendor specific string attribute to the current RADIUS request. In general, radius_put_vendor_attr() is a more useful function for attaching string attributes, as it is binary safe.

Hinweis:

A request must be created via radius_create_request() before this function can be called.

Parameter-Liste

radius_handle

The RADIUS resource.

vendor

The vendor ID.

type

The attribute type.

value

The attribute value. This value is expected by the underlying library to be null terminated, therefore this parameter is not binary safe.

options

A bitmask of the attribute options. The available options include RADIUS_OPTION_TAGGED and RADIUS_OPTION_SALT.

tag

The attribute tag. This parameter is ignored unless the RADIUS_OPTION_TAGGED option is set.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
PECL radius 1.3.0 | The options and tag parameters were added.

Siehe auch

  • radius_put_vendor_int() - Attaches a vendor specific integer attribute


Returns the request authenticator

  • « radius_put_vendor_string
  • radius_salt_encrypt_attr »
  • PHP Manual
  • Radius Funktionen
  • Returns the request authenticator

radius_request_authenticator

(PECL radius >= 1.1.0)

radius_request_authenticator — Returns the request authenticator

Beschreibung

radius_request_authenticator ( resource $radius_handle ) : string

The request authenticator is needed for demangling mangled data like passwords and encryption-keys.

Rückgabewerte

Returns the request authenticator as string, or false on error.

Siehe auch

  • radius_demangle() - Demangles data


Salt-encrypts a value

  • « radius_request_authenticator
  • radius_send_request »
  • PHP Manual
  • Radius Funktionen
  • Salt-encrypts a value

radius_salt_encrypt_attr

(PECL radius >= 1.3.0)

radius_salt_encrypt_attr — Salt-encrypts a value

Beschreibung

radius_salt_encrypt_attr ( resource $radius_handle , string $data ) : string|false

Applies the RADIUS salt-encryption algorithm to the given value.

In general, this is achieved automatically by providing the RADIUS_OPTION_SALT option to an attribute setter function, but this function can be used if low-level request construction is required.

Parameter-Liste

data

The data to be salt-encrypted.

Rückgabewerte

Returns the salt-encrypted data Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • radius_put_addr() - Attaches an IP address attribute
  • radius_put_attr() - Attaches a binary attribute
  • radius_put_int() - Attaches an integer attribute
  • radius_put_string() - Attaches a string attribute


Sends the request and waits for a reply

  • « radius_salt_encrypt_attr
  • radius_server_secret »
  • PHP Manual
  • Radius Funktionen
  • Sends the request and waits for a reply

radius_send_request

(PECL radius >= 1.1.0)

radius_send_request — Sends the request and waits for a reply

Beschreibung

radius_send_request ( resource $radius_handle ) : int

After the Radius request has been constructed, it is sent by radius_send_request().

The radius_send_request() function sends the request and waits for a valid reply, retrying the defined servers in round-robin fashion as necessary.

Rückgabewerte

If a valid response is received, radius_send_request() returns the Radius code which specifies the type of the response. This will typically be RADIUS_ACCESS_ACCEPT, RADIUS_ACCESS_REJECT, or RADIUS_ACCESS_CHALLENGE. If no valid response is received, radius_send_request() returns false.

Siehe auch

  • radius_create_request() - Create accounting or authentication request


Returns the shared secret

  • « radius_send_request
  • radius_strerror »
  • PHP Manual
  • Radius Funktionen
  • Returns the shared secret

radius_server_secret

(PECL radius >= 1.1.0)

radius_server_secret — Returns the shared secret

Beschreibung

radius_server_secret ( resource $radius_handle ) : string

The shared secret is needed as salt for demangling mangled data like passwords and encryption-keys.

Rückgabewerte

Returns the server's shared secret as string, or false on error.


Returns an error message

  • « radius_server_secret
  • Eingabezeilenspezifische Erweiterungen »
  • PHP Manual
  • Radius Funktionen
  • Returns an error message

radius_strerror

(PECL radius >= 1.1.0)

radius_strerror — Returns an error message

Beschreibung

radius_strerror ( resource $radius_handle ) : string

If Radius-functions fail then they record an error message. This error message can be retrieved with this function.

Rückgabewerte

Returns error messages as string from failed radius functions.


Eingabezeilenspezifische Erweiterungen

  • Ncurses — Ncurses Terminal Screen Control
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Ncurses Funktionen
  • Readline — GNU Readline
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Readline-Funktionen


Ncurses Terminal Screen Control

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
    • Error codes
    • Colors
    • Keys
    • Mouse
  • Ncurses Funktionen
    • ncurses_addch — Add character at current position and advance cursor
    • ncurses_addchnstr — Add attributed string with specified length at current position
    • ncurses_addchstr — Add attributed string at current position
    • ncurses_addnstr — Add string with specified length at current position
    • ncurses_addstr — Output text at current position
    • ncurses_assume_default_colors — Define default colors for color 0
    • ncurses_attroff — Turn off the given attributes
    • ncurses_attron — Turn on the given attributes
    • ncurses_attrset — Set given attributes
    • ncurses_baudrate — Returns baudrate of terminal
    • ncurses_beep — Let the terminal beep
    • ncurses_bkgd — Set background property for terminal screen
    • ncurses_bkgdset — Control screen background
    • ncurses_border — Draw a border around the screen using attributed characters
    • ncurses_bottom_panel — Moves a visible panel to the bottom of the stack
    • ncurses_can_change_color — Checks if terminal color definitions can be changed
    • ncurses_cbreak — Switch off input buffering
    • ncurses_clear — Clear screen
    • ncurses_clrtobot — Clear screen from current position to bottom
    • ncurses_clrtoeol — Clear screen from current position to end of line
    • ncurses_color_content — Retrieves RGB components of a color
    • ncurses_color_set — Set active foreground and background colors
    • ncurses_curs_set — Set cursor state
    • ncurses_def_prog_mode — Saves terminals (program) mode
    • ncurses_def_shell_mode — Saves terminals (shell) mode
    • ncurses_define_key — Define a keycode
    • ncurses_del_panel — Remove panel from the stack and delete it (but not the associated window)
    • ncurses_delay_output — Delay output on terminal using padding characters
    • ncurses_delch — Delete character at current position, move rest of line left
    • ncurses_deleteln — Delete line at current position, move rest of screen up
    • ncurses_delwin — Delete a ncurses window
    • ncurses_doupdate — Write all prepared refreshes to terminal
    • ncurses_echo — Activate keyboard input echo
    • ncurses_echochar — Single character output including refresh
    • ncurses_end — Stop using ncurses, clean up the screen
    • ncurses_erase — Erase terminal screen
    • ncurses_erasechar — Returns current erase character
    • ncurses_filter — Set LINES for iniscr() and newterm() to 1
    • ncurses_flash — Flash terminal screen (visual bell)
    • ncurses_flushinp — Flush keyboard input buffer
    • ncurses_getch — Read a character from keyboard
    • ncurses_getmaxyx — Returns the size of a window
    • ncurses_getmouse — Reads mouse event
    • ncurses_getyx — Returns the current cursor position for a window
    • ncurses_halfdelay — Put terminal into halfdelay mode
    • ncurses_has_colors — Checks if terminal has color capabilities
    • ncurses_has_ic — Check for insert- and delete-capabilities
    • ncurses_has_il — Check for line insert- and delete-capabilities
    • ncurses_has_key — Check for presence of a function key on terminal keyboard
    • ncurses_hide_panel — Remove panel from the stack, making it invisible
    • ncurses_hline — Draw a horizontal line at current position using an attributed character and max. n characters long
    • ncurses_inch — Get character and attribute at current position
    • ncurses_init_color — Define a terminal color
    • ncurses_init_pair — Define a color pair
    • ncurses_init — Initialize ncurses
    • ncurses_insch — Insert character moving rest of line including character at current position
    • ncurses_insdelln — Insert lines before current line scrolling down (negative numbers delete and scroll up)
    • ncurses_insertln — Insert a line, move rest of screen down
    • ncurses_insstr — Insert string at current position, moving rest of line right
    • ncurses_instr — Reads string from terminal screen
    • ncurses_isendwin — Ncurses is in endwin mode, normal screen output may be performed
    • ncurses_keyok — Enable or disable a keycode
    • ncurses_keypad — Turns keypad on or off
    • ncurses_killchar — Returns current line kill character
    • ncurses_longname — Returns terminals description
    • ncurses_meta — Enables/Disable 8-bit meta key information
    • ncurses_mouse_trafo — Transforms coordinates
    • ncurses_mouseinterval — Set timeout for mouse button clicks
    • ncurses_mousemask — Sets mouse options
    • ncurses_move_panel — Moves a panel so that its upper-left corner is at [startx, starty]
    • ncurses_move — Move output position
    • ncurses_mvaddch — Move current position and add character
    • ncurses_mvaddchnstr — Move position and add attributed string with specified length
    • ncurses_mvaddchstr — Move position and add attributed string
    • ncurses_mvaddnstr — Move position and add string with specified length
    • ncurses_mvaddstr — Move position and add string
    • ncurses_mvcur — Move cursor immediately
    • ncurses_mvdelch — Move position and delete character, shift rest of line left
    • ncurses_mvgetch — Move position and get character at new position
    • ncurses_mvhline — Set new position and draw a horizontal line using an attributed character and max. n characters long
    • ncurses_mvinch — Move position and get attributed character at new position
    • ncurses_mvvline — Set new position and draw a vertical line using an attributed character and max. n characters long
    • ncurses_mvwaddstr — Add string at new position in window
    • ncurses_napms — Sleep
    • ncurses_new_panel — Create a new panel and associate it with window
    • ncurses_newpad — Creates a new pad (window)
    • ncurses_newwin — Create a new window
    • ncurses_nl — Translate newline and carriage return / line feed
    • ncurses_nocbreak — Switch terminal to cooked mode
    • ncurses_noecho — Switch off keyboard input echo
    • ncurses_nonl — Do not translate newline and carriage return / line feed
    • ncurses_noqiflush — Do not flush on signal characters
    • ncurses_noraw — Switch terminal out of raw mode
    • ncurses_pair_content — Retrieves foreground and background colors of a color pair
    • ncurses_panel_above — Returns the panel above panel
    • ncurses_panel_below — Returns the panel below panel
    • ncurses_panel_window — Returns the window associated with panel
    • ncurses_pnoutrefresh — Copies a region from a pad into the virtual screen
    • ncurses_prefresh — Copies a region from a pad into the virtual screen
    • ncurses_putp — Apply padding information to the string and output it
    • ncurses_qiflush — Flush on signal characters
    • ncurses_raw — Switch terminal into raw mode
    • ncurses_refresh — Refresh screen
    • ncurses_replace_panel — Replaces the window associated with panel
    • ncurses_reset_prog_mode — Resets the prog mode saved by def_prog_mode
    • ncurses_reset_shell_mode — Resets the shell mode saved by def_shell_mode
    • ncurses_resetty — Restores saved terminal state
    • ncurses_savetty — Saves terminal state
    • ncurses_scr_dump — Dump screen content to file
    • ncurses_scr_init — Initialize screen from file dump
    • ncurses_scr_restore — Restore screen from file dump
    • ncurses_scr_set — Inherit screen from file dump
    • ncurses_scrl — Scroll window content up or down without changing current position
    • ncurses_show_panel — Places an invisible panel on top of the stack, making it visible
    • ncurses_slk_attr — Returns current soft label key attribute
    • ncurses_slk_attroff — Turn off the given attributes for soft function-key labels
    • ncurses_slk_attron — Turn on the given attributes for soft function-key labels
    • ncurses_slk_attrset — Set given attributes for soft function-key labels
    • ncurses_slk_clear — Clears soft labels from screen
    • ncurses_slk_color — Sets color for soft label keys
    • ncurses_slk_init — Initializes soft label key functions
    • ncurses_slk_noutrefresh — Copies soft label keys to virtual screen
    • ncurses_slk_refresh — Copies soft label keys to screen
    • ncurses_slk_restore — Restores soft label keys
    • ncurses_slk_set — Sets function key labels
    • ncurses_slk_touch — Forces output when ncurses_slk_noutrefresh is performed
    • ncurses_standend — Stop using 'standout' attribute
    • ncurses_standout — Start using 'standout' attribute
    • ncurses_start_color — Initializes color functionality
    • ncurses_termattrs — Returns a logical OR of all attribute flags supported by terminal
    • ncurses_termname — Returns terminals (short)-name
    • ncurses_timeout — Set timeout for special key sequences
    • ncurses_top_panel — Moves a visible panel to the top of the stack
    • ncurses_typeahead — Specify different filedescriptor for typeahead checking
    • ncurses_ungetch — Put a character back into the input stream
    • ncurses_ungetmouse — Pushes mouse event to queue
    • ncurses_update_panels — Refreshes the virtual screen to reflect the relations between panels in the stack
    • ncurses_use_default_colors — Assign terminal default colors to color id -1
    • ncurses_use_env — Control use of environment information about terminal size
    • ncurses_use_extended_names — Control use of extended names in terminfo descriptions
    • ncurses_vidattr — Display the string on the terminal in the video attribute mode
    • ncurses_vline — Draw a vertical line at current position using an attributed character and max. n characters long
    • ncurses_waddch — Adds character at current position in a window and advance cursor
    • ncurses_waddstr — Outputs text at current postion in window
    • ncurses_wattroff — Turns off attributes for a window
    • ncurses_wattron — Turns on attributes for a window
    • ncurses_wattrset — Set the attributes for a window
    • ncurses_wborder — Draws a border around the window using attributed characters
    • ncurses_wclear — Clears window
    • ncurses_wcolor_set — Sets windows color pairings
    • ncurses_werase — Erase window contents
    • ncurses_wgetch — Reads a character from keyboard (window)
    • ncurses_whline — Draws a horizontal line in a window at current position using an attributed character and max. n characters long
    • ncurses_wmouse_trafo — Transforms window/stdscr coordinates
    • ncurses_wmove — Moves windows output position
    • ncurses_wnoutrefresh — Copies window to virtual screen
    • ncurses_wrefresh — Refresh window on terminal screen
    • ncurses_wstandend — End standout mode for a window
    • ncurses_wstandout — Enter standout mode for a window
    • ncurses_wvline — Draws a vertical line in a window at current position using an attributed character and max. n characters long


Einführung

ncurses (new curses) is a free software emulation of curses in System V Rel 4.0 (and above). It uses terminfo format, supports pads, colors, multiple highlights, form characters and function key mapping. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts meant using PHP from the command line.

The features available, such as colors, depend on the terminal that you are using. Use functions such as ncurses_has_colors(), ncurses_can_change_color(), and ncurses_has_ic() to check for individual capabilities.

Hinweis:

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 5.3.0.

ncurses is available for the following platforms:

  • AIX
  • BeOS
  • BSD variants (FreeBSD, NetBSD, OpenBSD)
  • Cygwin
  • Digital Unix (aka OSF1)
  • GNU/Linux
  • HPUX
  • IRIX64
  • macOS
  • OS/2
  • QNX
  • SCO OpenServer
  • Solaris
  • Tru64


Anforderungen

You need the ncurses libraries and headerfiles. Download the latest version from the » ftp://ftp.gnu.org/pub/gnu/ncurses/ or from an other GNU-Mirror.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/ncurses.

Wide character CRT screen handling (ncursesw) support was added in version 1.0.1 of this PECL extension.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

This extension defines window, panel and pad resources.


Vordefinierte Konstanten

Inhaltsverzeichnis

  • Error codes
  • Colors
  • Keys
  • Mouse

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.


Error codes

On error ncurses functions return -1. Some functions return 0 on success. See the relevant pages in the documentation for actual return values.


Colors

ncurses color constants
constant | meaning
NCURSES_COLOR_BLACK | no color (black)
NCURSES_COLOR_WHITE | white
NCURSES_COLOR_RED | red - supported when terminal is in color mode
NCURSES_COLOR_GREEN | green - supported when terminal is in color mode
NCURSES_COLOR_YELLOW | yellow - supported when terminal is in color mode
NCURSES_COLOR_BLUE | blue - supported when terminal is in color mode
NCURSES_COLOR_CYAN | cyan - supported when terminal is in color mode
NCURSES_COLOR_MAGENTA | magenta - supported when terminal is in color mode


Keys

ncurses key constants
constant | meaning
NCURSES_KEY_F0 - NCURSES_KEY_F64 | function keys F1 - F64
NCURSES_KEY_DOWN | down arrow
NCURSES_KEY_UP | up arrow
NCURSES_KEY_LEFT | left arrow
NCURSES_KEY_RIGHT | right arrow
NCURSES_KEY_HOME | home key (upward+left arrow)
NCURSES_KEY_BACKSPACE | backspace
NCURSES_KEY_DL | delete line
NCURSES_KEY_IL | insert line
NCURSES_KEY_DC | delete character
NCURSES_KEY_IC | insert char or enter insert mode
NCURSES_KEY_EIC | exit insert char mode
NCURSES_KEY_CLEAR | clear screen
NCURSES_KEY_EOS | clear to end of screen
NCURSES_KEY_EOL | clear to end of line
NCURSES_KEY_SF | scroll one line forward
NCURSES_KEY_SR | scroll one line backward
NCURSES_KEY_NPAGE | next page
NCURSES_KEY_PPAGE | previous page
NCURSES_KEY_STAB | set tab
NCURSES_KEY_CTAB | clear tab
NCURSES_KEY_CATAB | clear all tabs
NCURSES_KEY_SRESET | soft (partial) reset
NCURSES_KEY_RESET | reset or hard reset
NCURSES_KEY_PRINT | print
NCURSES_KEY_LL | lower left
NCURSES_KEY_A1 | upper left of keypad
NCURSES_KEY_A3 | upper right of keypad
NCURSES_KEY_B2 | center of keypad
NCURSES_KEY_C1 | lower left of keypad
NCURSES_KEY_C3 | lower right of keypad
NCURSES_KEY_BTAB | back tab
NCURSES_KEY_BEG | beginning
NCURSES_KEY_CANCEL | cancel
NCURSES_KEY_CLOSE | close
NCURSES_KEY_COMMAND | cmd (command)
NCURSES_KEY_COPY | copy
NCURSES_KEY_CREATE | create
NCURSES_KEY_END | end
NCURSES_KEY_EXIT | exit
NCURSES_KEY_FIND | find
NCURSES_KEY_HELP | help
NCURSES_KEY_MARK | mark
NCURSES_KEY_MESSAGE | message
NCURSES_KEY_MOVE | move
NCURSES_KEY_NEXT | next
NCURSES_KEY_OPEN | open
NCURSES_KEY_OPTIONS | options
NCURSES_KEY_PREVIOUS | previous
NCURSES_KEY_REDO | redo
NCURSES_KEY_REFERENCE | ref (reference)
NCURSES_KEY_REFRESH | refresh
NCURSES_KEY_REPLACE | replace
NCURSES_KEY_RESTART | restart
NCURSES_KEY_RESUME | resume
NCURSES_KEY_SAVE | save
NCURSES_KEY_SBEG | shiftet beg (beginning)
NCURSES_KEY_SCANCEL | shifted cancel
NCURSES_KEY_SCOMMAND | shifted command
NCURSES_KEY_SCOPY | shifted copy
NCURSES_KEY_SCREATE | shifted create
NCURSES_KEY_SDC | shifted delete char
NCURSES_KEY_SDL | shifted delete line
NCURSES_KEY_SELECT | select
NCURSES_KEY_SEND | shifted end
NCURSES_KEY_SEOL | shifted end of line
NCURSES_KEY_SEXIT | shifted exit
NCURSES_KEY_SFIND | shifted find
NCURSES_KEY_SHELP | shifted help
NCURSES_KEY_SHOME | shifted home
NCURSES_KEY_SIC | shifted input
NCURSES_KEY_SLEFT | shifted left arrow
NCURSES_KEY_SMESSAGE | shifted message
NCURSES_KEY_SMOVE | shifted move
NCURSES_KEY_SNEXT | shifted next
NCURSES_KEY_SOPTIONS | shifted options
NCURSES_KEY_SPREVIOUS | shifted previous
NCURSES_KEY_SPRINT | shifted print
NCURSES_KEY_SREDO | shifted redo
NCURSES_KEY_SREPLACE | shifted replace
NCURSES_KEY_SRIGHT | shifted right arrow
NCURSES_KEY_SRSUME | shifted resume
NCURSES_KEY_SSAVE | shifted save
NCURSES_KEY_SSUSPEND | shifted suspend
NCURSES_KEY_UNDO | undo
NCURSES_KEY_MOUSE | mouse event has occurred
NCURSES_KEY_MAX | maximum key value


Mouse

mouse constants
Constant | meaning
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED | button (1-4) released
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED | button (1-4) pressed
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED | button (1-4) clicked
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED | button (1-4) double clicked
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED | button (1-4) triple clicked
NCURSES_BUTTON_CTRL | ctrl pressed during click
NCURSES_BUTTON_SHIFT | shift pressed during click
NCURSES_BUTTON_ALT | alt pressed during click
NCURSES_ALL_MOUSE_EVENTS | report all mouse events
NCURSES_REPORT_MOUSE_POSITION | report mouse position


Ncurses Funktionen

Inhaltsverzeichnis

  • ncurses_addch — Add character at current position and advance cursor
  • ncurses_addchnstr — Add attributed string with specified length at current position
  • ncurses_addchstr — Add attributed string at current position
  • ncurses_addnstr — Add string with specified length at current position
  • ncurses_addstr — Output text at current position
  • ncurses_assume_default_colors — Define default colors for color 0
  • ncurses_attroff — Turn off the given attributes
  • ncurses_attron — Turn on the given attributes
  • ncurses_attrset — Set given attributes
  • ncurses_baudrate — Returns baudrate of terminal
  • ncurses_beep — Let the terminal beep
  • ncurses_bkgd — Set background property for terminal screen
  • ncurses_bkgdset — Control screen background
  • ncurses_border — Draw a border around the screen using attributed characters
  • ncurses_bottom_panel — Moves a visible panel to the bottom of the stack
  • ncurses_can_change_color — Checks if terminal color definitions can be changed
  • ncurses_cbreak — Switch off input buffering
  • ncurses_clear — Clear screen
  • ncurses_clrtobot — Clear screen from current position to bottom
  • ncurses_clrtoeol — Clear screen from current position to end of line
  • ncurses_color_content — Retrieves RGB components of a color
  • ncurses_color_set — Set active foreground and background colors
  • ncurses_curs_set — Set cursor state
  • ncurses_def_prog_mode — Saves terminals (program) mode
  • ncurses_def_shell_mode — Saves terminals (shell) mode
  • ncurses_define_key — Define a keycode
  • ncurses_del_panel — Remove panel from the stack and delete it (but not the associated window)
  • ncurses_delay_output — Delay output on terminal using padding characters
  • ncurses_delch — Delete character at current position, move rest of line left
  • ncurses_deleteln — Delete line at current position, move rest of screen up
  • ncurses_delwin — Delete a ncurses window
  • ncurses_doupdate — Write all prepared refreshes to terminal
  • ncurses_echo — Activate keyboard input echo
  • ncurses_echochar — Single character output including refresh
  • ncurses_end — Stop using ncurses, clean up the screen
  • ncurses_erase — Erase terminal screen
  • ncurses_erasechar — Returns current erase character
  • ncurses_filter — Set LINES for iniscr() and newterm() to 1
  • ncurses_flash — Flash terminal screen (visual bell)
  • ncurses_flushinp — Flush keyboard input buffer
  • ncurses_getch — Read a character from keyboard
  • ncurses_getmaxyx — Returns the size of a window
  • ncurses_getmouse — Reads mouse event
  • ncurses_getyx — Returns the current cursor position for a window
  • ncurses_halfdelay — Put terminal into halfdelay mode
  • ncurses_has_colors — Checks if terminal has color capabilities
  • ncurses_has_ic — Check for insert- and delete-capabilities
  • ncurses_has_il — Check for line insert- and delete-capabilities
  • ncurses_has_key — Check for presence of a function key on terminal keyboard
  • ncurses_hide_panel — Remove panel from the stack, making it invisible
  • ncurses_hline — Draw a horizontal line at current position using an attributed character and max. n characters long
  • ncurses_inch — Get character and attribute at current position
  • ncurses_init_color — Define a terminal color
  • ncurses_init_pair — Define a color pair
  • ncurses_init — Initialize ncurses
  • ncurses_insch — Insert character moving rest of line including character at current position
  • ncurses_insdelln — Insert lines before current line scrolling down (negative numbers delete and scroll up)
  • ncurses_insertln — Insert a line, move rest of screen down
  • ncurses_insstr — Insert string at current position, moving rest of line right
  • ncurses_instr — Reads string from terminal screen
  • ncurses_isendwin — Ncurses is in endwin mode, normal screen output may be performed
  • ncurses_keyok — Enable or disable a keycode
  • ncurses_keypad — Turns keypad on or off
  • ncurses_killchar — Returns current line kill character
  • ncurses_longname — Returns terminals description
  • ncurses_meta — Enables/Disable 8-bit meta key information
  • ncurses_mouse_trafo — Transforms coordinates
  • ncurses_mouseinterval — Set timeout for mouse button clicks
  • ncurses_mousemask — Sets mouse options
  • ncurses_move_panel — Moves a panel so that its upper-left corner is at [startx, starty]
  • ncurses_move — Move output position
  • ncurses_mvaddch — Move current position and add character
  • ncurses_mvaddchnstr — Move position and add attributed string with specified length
  • ncurses_mvaddchstr — Move position and add attributed string
  • ncurses_mvaddnstr — Move position and add string with specified length
  • ncurses_mvaddstr — Move position and add string
  • ncurses_mvcur — Move cursor immediately
  • ncurses_mvdelch — Move position and delete character, shift rest of line left
  • ncurses_mvgetch — Move position and get character at new position
  • ncurses_mvhline — Set new position and draw a horizontal line using an attributed character and max. n characters long
  • ncurses_mvinch — Move position and get attributed character at new position
  • ncurses_mvvline — Set new position and draw a vertical line using an attributed character and max. n characters long
  • ncurses_mvwaddstr — Add string at new position in window
  • ncurses_napms — Sleep
  • ncurses_new_panel — Create a new panel and associate it with window
  • ncurses_newpad — Creates a new pad (window)
  • ncurses_newwin — Create a new window
  • ncurses_nl — Translate newline and carriage return / line feed
  • ncurses_nocbreak — Switch terminal to cooked mode
  • ncurses_noecho — Switch off keyboard input echo
  • ncurses_nonl — Do not translate newline and carriage return / line feed
  • ncurses_noqiflush — Do not flush on signal characters
  • ncurses_noraw — Switch terminal out of raw mode
  • ncurses_pair_content — Retrieves foreground and background colors of a color pair
  • ncurses_panel_above — Returns the panel above panel
  • ncurses_panel_below — Returns the panel below panel
  • ncurses_panel_window — Returns the window associated with panel
  • ncurses_pnoutrefresh — Copies a region from a pad into the virtual screen
  • ncurses_prefresh — Copies a region from a pad into the virtual screen
  • ncurses_putp — Apply padding information to the string and output it
  • ncurses_qiflush — Flush on signal characters
  • ncurses_raw — Switch terminal into raw mode
  • ncurses_refresh — Refresh screen
  • ncurses_replace_panel — Replaces the window associated with panel
  • ncurses_reset_prog_mode — Resets the prog mode saved by def_prog_mode
  • ncurses_reset_shell_mode — Resets the shell mode saved by def_shell_mode
  • ncurses_resetty — Restores saved terminal state
  • ncurses_savetty — Saves terminal state
  • ncurses_scr_dump — Dump screen content to file
  • ncurses_scr_init — Initialize screen from file dump
  • ncurses_scr_restore — Restore screen from file dump
  • ncurses_scr_set — Inherit screen from file dump
  • ncurses_scrl — Scroll window content up or down without changing current position
  • ncurses_show_panel — Places an invisible panel on top of the stack, making it visible
  • ncurses_slk_attr — Returns current soft label key attribute
  • ncurses_slk_attroff — Turn off the given attributes for soft function-key labels
  • ncurses_slk_attron — Turn on the given attributes for soft function-key labels
  • ncurses_slk_attrset — Set given attributes for soft function-key labels
  • ncurses_slk_clear — Clears soft labels from screen
  • ncurses_slk_color — Sets color for soft label keys
  • ncurses_slk_init — Initializes soft label key functions
  • ncurses_slk_noutrefresh — Copies soft label keys to virtual screen
  • ncurses_slk_refresh — Copies soft label keys to screen
  • ncurses_slk_restore — Restores soft label keys
  • ncurses_slk_set — Sets function key labels
  • ncurses_slk_touch — Forces output when ncurses_slk_noutrefresh is performed
  • ncurses_standend — Stop using 'standout' attribute
  • ncurses_standout — Start using 'standout' attribute
  • ncurses_start_color — Initializes color functionality
  • ncurses_termattrs — Returns a logical OR of all attribute flags supported by terminal
  • ncurses_termname — Returns terminals (short)-name
  • ncurses_timeout — Set timeout for special key sequences
  • ncurses_top_panel — Moves a visible panel to the top of the stack
  • ncurses_typeahead — Specify different filedescriptor for typeahead checking
  • ncurses_ungetch — Put a character back into the input stream
  • ncurses_ungetmouse — Pushes mouse event to queue
  • ncurses_update_panels — Refreshes the virtual screen to reflect the relations between panels in the stack
  • ncurses_use_default_colors — Assign terminal default colors to color id -1
  • ncurses_use_env — Control use of environment information about terminal size
  • ncurses_use_extended_names — Control use of extended names in terminfo descriptions
  • ncurses_vidattr — Display the string on the terminal in the video attribute mode
  • ncurses_vline — Draw a vertical line at current position using an attributed character and max. n characters long
  • ncurses_waddch — Adds character at current position in a window and advance cursor
  • ncurses_waddstr — Outputs text at current postion in window
  • ncurses_wattroff — Turns off attributes for a window
  • ncurses_wattron — Turns on attributes for a window
  • ncurses_wattrset — Set the attributes for a window
  • ncurses_wborder — Draws a border around the window using attributed characters
  • ncurses_wclear — Clears window
  • ncurses_wcolor_set — Sets windows color pairings
  • ncurses_werase — Erase window contents
  • ncurses_wgetch — Reads a character from keyboard (window)
  • ncurses_whline — Draws a horizontal line in a window at current position using an attributed character and max. n characters long
  • ncurses_wmouse_trafo — Transforms window/stdscr coordinates
  • ncurses_wmove — Moves windows output position
  • ncurses_wnoutrefresh — Copies window to virtual screen
  • ncurses_wrefresh — Refresh window on terminal screen
  • ncurses_wstandend — End standout mode for a window
  • ncurses_wstandout — Enter standout mode for a window
  • ncurses_wvline — Draws a vertical line in a window at current position using an attributed character and max. n characters long


Add character at current position and advance cursor

  • « Ncurses Funktionen
  • ncurses_addchnstr »
  • PHP Manual
  • Ncurses Funktionen
  • Add character at current position and advance cursor

ncurses_addch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addch — Add character at current position and advance cursor

Beschreibung

ncurses_addch ( int $ch ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

ch


Add attributed string with specified length at current position

  • « ncurses_addch
  • ncurses_addchstr »
  • PHP Manual
  • Ncurses Funktionen
  • Add attributed string with specified length at current position

ncurses_addchnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addchnstr — Add attributed string with specified length at current position

Beschreibung

ncurses_addchnstr ( string $s , int $n ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

s

n


Add attributed string at current position

  • « ncurses_addchnstr
  • ncurses_addnstr »
  • PHP Manual
  • Ncurses Funktionen
  • Add attributed string at current position

ncurses_addchstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addchstr — Add attributed string at current position

Beschreibung

ncurses_addchstr ( string $s ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

s


Add string with specified length at current position

  • « ncurses_addchstr
  • ncurses_addstr »
  • PHP Manual
  • Ncurses Funktionen
  • Add string with specified length at current position

ncurses_addnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addnstr — Add string with specified length at current position

Beschreibung

ncurses_addnstr ( string $s , int $n ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

s

n


Output text at current position

  • « ncurses_addnstr
  • ncurses_assume_default_colors »
  • PHP Manual
  • Ncurses Funktionen
  • Output text at current position

ncurses_addstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addstr — Output text at current position

Beschreibung

ncurses_addstr ( string $text ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

text


Define default colors for color 0

  • « ncurses_addstr
  • ncurses_attroff »
  • PHP Manual
  • Ncurses Funktionen
  • Define default colors for color 0

ncurses_assume_default_colors

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_assume_default_colors — Define default colors for color 0

Beschreibung

ncurses_assume_default_colors ( int $fg , int $bg ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

fg

bg


Turn off the given attributes

  • « ncurses_assume_default_colors
  • ncurses_attron »
  • PHP Manual
  • Ncurses Funktionen
  • Turn off the given attributes

ncurses_attroff

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attroff — Turn off the given attributes

Beschreibung

ncurses_attroff ( int $attributes ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

attributes


Turn on the given attributes

  • « ncurses_attroff
  • ncurses_attrset »
  • PHP Manual
  • Ncurses Funktionen
  • Turn on the given attributes

ncurses_attron

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attron — Turn on the given attributes

Beschreibung

ncurses_attron ( int $attributes ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

attributes


Set given attributes

  • « ncurses_attron
  • ncurses_baudrate »
  • PHP Manual
  • Ncurses Funktionen
  • Set given attributes

ncurses_attrset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attrset — Set given attributes

Beschreibung

ncurses_attrset ( int $attributes ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

attributes


Returns baudrate of terminal

  • « ncurses_attrset
  • ncurses_beep »
  • PHP Manual
  • Ncurses Funktionen
  • Returns baudrate of terminal

ncurses_baudrate

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_baudrate — Returns baudrate of terminal

Beschreibung

ncurses_baudrate ( ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Let the terminal beep

  • « ncurses_baudrate
  • ncurses_bkgd »
  • PHP Manual
  • Ncurses Funktionen
  • Let the terminal beep

ncurses_beep

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_beep — Let the terminal beep

Beschreibung

ncurses_beep ( ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_beep() sends an audible alert (bell) and if its not possible flashes the screen.

Siehe auch

  • ncurses_flash() - Flash terminal screen (visual bell)


Set background property for terminal screen

  • « ncurses_beep
  • ncurses_bkgdset »
  • PHP Manual
  • Ncurses Funktionen
  • Set background property for terminal screen

ncurses_bkgd

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bkgd — Set background property for terminal screen

Beschreibung

ncurses_bkgd ( int $attrchar ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

attrchar


Control screen background

  • « ncurses_bkgd
  • ncurses_border »
  • PHP Manual
  • Ncurses Funktionen
  • Control screen background

ncurses_bkgdset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bkgdset — Control screen background

Beschreibung

ncurses_bkgdset ( int $attrchar ) : void
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

attrchar


Draw a border around the screen using attributed characters

  • « ncurses_bkgdset
  • ncurses_bottom_panel »
  • PHP Manual
  • Ncurses Funktionen
  • Draw a border around the screen using attributed characters

ncurses_border

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_border — Draw a border around the screen using attributed characters

Beschreibung

ncurses_border ( int $left , int $right , int $top , int $bottom , int $tl_corner , int $tr_corner , int $bl_corner , int $br_corner ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Draws the specified lines and corners around the main window.

Use ncurses_wborder() for borders around subwindows!

Parameter-Liste

Every parameter expects 0 to draw a line or 1 to skip it.

left

right

top

bottom

tl_corner

Top left corner

tr_corner

Top right corner

bl_corner

Bottom left corner

br_corner

Bottom right corner

Siehe auch

  • ncurses_wborder() - Draws a border around the window using attributed characters


Moves a visible panel to the bottom of the stack

  • « ncurses_border
  • ncurses_can_change_color »
  • PHP Manual
  • Ncurses Funktionen
  • Moves a visible panel to the bottom of the stack

ncurses_bottom_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bottom_panel — Moves a visible panel to the bottom of the stack

Beschreibung

ncurses_bottom_panel ( resource $panel ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

panel


Checks if terminal color definitions can be changed

  • « ncurses_bottom_panel
  • ncurses_cbreak »
  • PHP Manual
  • Ncurses Funktionen
  • Checks if terminal color definitions can be changed

ncurses_can_change_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_can_change_color — Checks if terminal color definitions can be changed

Beschreibung

ncurses_can_change_color ( ) : bool

Checks whether the terminal has color capabilities and whether the programmer can change color definitions using ncurses_init_color(). ncurses must be initialized using ncurses_init() before calling this function.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return true if the programmer can change color definitions, false otherwise.

Siehe auch

  • ncurses_has_colors() - Checks if terminal has color capabilities
  • ncurses_init_color() - Define a terminal color
  • ncurses_start_color() - Initializes color functionality


Switch off input buffering

  • « ncurses_can_change_color
  • ncurses_clear »
  • PHP Manual
  • Ncurses Funktionen
  • Switch off input buffering

ncurses_cbreak

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_cbreak — Switch off input buffering

Beschreibung

ncurses_cbreak ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Disables line buffering and character processing (interrupt and flow control characters are unaffected), making characters typed by the user immediately available to the program.

Rückgabewerte

Returns true or NCURSES_ERR if any error occurred.

Siehe auch

  • ncurses_nocbreak() - Switch terminal to cooked mode


Clear screen

  • « ncurses_cbreak
  • ncurses_clrtobot »
  • PHP Manual
  • Ncurses Funktionen
  • Clear screen

ncurses_clear

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clear — Clear screen

Beschreibung

ncurses_clear ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Clears the screen completely without setting blanks.

Note: ncurses_clear() clears the screen without setting blanks, which have the current background rendition. To clear screen with blanks, use ncurses_erase().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ncurses_erase() - Erase terminal screen


Clear screen from current position to bottom

  • « ncurses_clear
  • ncurses_clrtoeol »
  • PHP Manual
  • Ncurses Funktionen
  • Clear screen from current position to bottom

ncurses_clrtobot

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clrtobot — Clear screen from current position to bottom

Beschreibung

ncurses_clrtobot ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Erases all lines from cursor to end of screen and creates blanks. Blanks created by ncurses_clrtobot() have the current background rendition.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ncurses_clear() - Clear screen
  • ncurses_clrtoeol() - Clear screen from current position to end of line


Clear screen from current position to end of line

  • « ncurses_clrtobot
  • ncurses_color_content »
  • PHP Manual
  • Ncurses Funktionen
  • Clear screen from current position to end of line

ncurses_clrtoeol

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clrtoeol — Clear screen from current position to end of line

Beschreibung

ncurses_clrtoeol ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Erases the current line from cursor position to the end. Blanks created by ncurses_clrtoeol() have the current background rendition.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ncurses_clear() - Clear screen
  • ncurses_clrtobot() - Clear screen from current position to bottom


Retrieves RGB components of a color

  • « ncurses_clrtoeol
  • ncurses_color_set »
  • PHP Manual
  • Ncurses Funktionen
  • Retrieves RGB components of a color

ncurses_color_content

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_color_content — Retrieves RGB components of a color

Beschreibung

ncurses_color_content ( int $color , int &$r , int &$g , int &$b ) : int

Retrieves the red, green, and blue components for the given color definition. Terminal color capabilities must be initialized with ncurses_start_color() prior to calling this function.

Parameter-Liste

color

The number of the color to retrieve information for. May be one of the pre-defined color constants.

r

A reference to which to return the red component of the color. The value returned to the reference will be between 0 and 1000.

g

A reference to which to return the green component of the color. The value returned to the reference will be between 0 and 1000.

b

A reference to which to return the blue component of the color. The value returned to the reference will be between 0 and 1000.

Rückgabewerte

Returns -1 if the function was successful, and 0 if ncurses or terminal color capabilities have not been initialized.

Siehe auch

  • ncurses_init_color() - Define a terminal color
  • ncurses_start_color() - Initializes color functionality


Set active foreground and background colors

  • « ncurses_color_content
  • ncurses_curs_set »
  • PHP Manual
  • Ncurses Funktionen
  • Set active foreground and background colors

ncurses_color_set

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_color_set — Set active foreground and background colors

Beschreibung

ncurses_color_set ( int $pair ) : int

Sets the active foreground and background colors. Any characters written after this function is invoked will have these colors. This function requires terminal colors to be supported and initialized using ncurses_start_color() beforehand.

ncurses uses color pairs to specify both foreground and background colors. Use ncurses_init_pair() to define a color pair.

Parameter-Liste

pair

The color pair from which to get the foreground and background colors to set as the active colors.

Rückgabewerte

Returns -1 on success, and 0 on failure.

Beispiele

Beispiel #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Flush output to screen
ncurses_refresh();

ncurses_end();
?>

Siehe auch

  • ncurses_init_pair() - Define a color pair
  • ncurses_start_color() - Initializes color functionality


Set cursor state

  • « ncurses_color_set
  • ncurses_def_prog_mode »
  • PHP Manual
  • Ncurses Funktionen
  • Set cursor state

ncurses_curs_set

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_curs_set — Set cursor state

Beschreibung

ncurses_curs_set ( int $visibility ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

visibility


Saves terminals (program) mode

  • « ncurses_curs_set
  • ncurses_def_shell_mode »
  • PHP Manual
  • Ncurses Funktionen
  • Saves terminals (program) mode

ncurses_def_prog_mode

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_def_prog_mode — Saves terminals (program) mode

Beschreibung

ncurses_def_prog_mode ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Saves the current terminal modes for program (in curses) for use by ncurses_reset_prog_mode().

Rückgabewerte

Returns false on success, otherwise true.

Siehe auch

  • ncurses_reset_prog_mode() - Resets the prog mode saved by def_prog_mode


Saves terminals (shell) mode

  • « ncurses_def_prog_mode
  • ncurses_define_key »
  • PHP Manual
  • Ncurses Funktionen
  • Saves terminals (shell) mode

ncurses_def_shell_mode

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_def_shell_mode — Saves terminals (shell) mode

Beschreibung

ncurses_def_shell_mode ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Saves the current terminal modes for shell (not in curses) for use by ncurses_reset_shell_mode().

Rückgabewerte

Returns false on success, true otherwise.

Siehe auch

  • ncurses_reset_shell_mode() - Resets the shell mode saved by def_shell_mode


Define a keycode

  • « ncurses_def_shell_mode
  • ncurses_del_panel »
  • PHP Manual
  • Ncurses Funktionen
  • Define a keycode

ncurses_define_key

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_define_key — Define a keycode

Beschreibung

ncurses_define_key ( string $definition , int $keycode ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

definition

keycode


Remove panel from the stack and delete it (but not the associated window)

  • « ncurses_define_key
  • ncurses_delay_output »
  • PHP Manual
  • Ncurses Funktionen
  • Remove panel from the stack and delete it (but not the associated window)

ncurses_del_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_del_panel — Remove panel from the stack and delete it (but not the associated window)

Beschreibung

ncurses_del_panel ( resource $panel ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

panel


Delay output on terminal using padding characters

  • « ncurses_del_panel
  • ncurses_delch »
  • PHP Manual
  • Ncurses Funktionen
  • Delay output on terminal using padding characters

ncurses_delay_output

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delay_output — Delay output on terminal using padding characters

Beschreibung

ncurses_delay_output ( int $milliseconds ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

milliseconds


Delete character at current position, move rest of line left

  • « ncurses_delay_output
  • ncurses_deleteln »
  • PHP Manual
  • Ncurses Funktionen
  • Delete character at current position, move rest of line left

ncurses_delch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delch — Delete character at current position, move rest of line left

Beschreibung

ncurses_delch ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Deletes the character under the cursor. All characters to the right of the cursor on the same line are moved to the left one position and the last character on the line is filled with a blank. The cursor position does not change.

Rückgabewerte

Returns false on success, true otherwise.

Siehe auch

  • ncurses_deleteln() - Delete line at current position, move rest of screen up


Delete line at current position, move rest of screen up

  • « ncurses_delch
  • ncurses_delwin »
  • PHP Manual
  • Ncurses Funktionen
  • Delete line at current position, move rest of screen up

ncurses_deleteln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_deleteln — Delete line at current position, move rest of screen up

Beschreibung

ncurses_deleteln ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Deletes the current line under cursor position. All lines below the current line are moved up one line. The bottom line of window is cleared. Cursor position does not change.

Rückgabewerte

Returns false on success, otherwise true.

Siehe auch

  • ncurses_delch() - Delete character at current position, move rest of line left


Delete a ncurses window

  • « ncurses_deleteln
  • ncurses_doupdate »
  • PHP Manual
  • Ncurses Funktionen
  • Delete a ncurses window

ncurses_delwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delwin — Delete a ncurses window

Beschreibung

ncurses_delwin ( resource $window ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window


Write all prepared refreshes to terminal

  • « ncurses_delwin
  • ncurses_echo »
  • PHP Manual
  • Ncurses Funktionen
  • Write all prepared refreshes to terminal

ncurses_doupdate

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_doupdate — Write all prepared refreshes to terminal

Beschreibung

ncurses_doupdate ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Compares the virtual screen to the physical screen and updates the physical screen. This way is more effective than using multiple refresh calls.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Activate keyboard input echo

  • « ncurses_doupdate
  • ncurses_echochar »
  • PHP Manual
  • Ncurses Funktionen
  • Activate keyboard input echo

ncurses_echo

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_echo — Activate keyboard input echo

Beschreibung

ncurses_echo ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Enables echo mode. All characters typed by user are echoed by ncurses_getch().

Rückgabewerte

Returns false on success, true if any error occurred.

Siehe auch

  • ncurses_noecho() - Switch off keyboard input echo to disable echo mode


Single character output including refresh

  • « ncurses_echo
  • ncurses_end »
  • PHP Manual
  • Ncurses Funktionen
  • Single character output including refresh

ncurses_echochar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_echochar — Single character output including refresh

Beschreibung

ncurses_echochar ( int $character ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

character


Stop using ncurses, clean up the screen

  • « ncurses_echochar
  • ncurses_erase »
  • PHP Manual
  • Ncurses Funktionen
  • Stop using ncurses, clean up the screen

ncurses_end

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_end — Stop using ncurses, clean up the screen

Beschreibung

ncurses_end ( ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Erase terminal screen

  • « ncurses_end
  • ncurses_erasechar »
  • PHP Manual
  • Ncurses Funktionen
  • Erase terminal screen

ncurses_erase

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_erase — Erase terminal screen

Beschreibung

ncurses_erase ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Fills the terminal screen with blanks.

Created blanks have the current background rendition, set by ncurses_bkgd().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ncurses_bkgd() - Set background property for terminal screen
  • ncurses_clear() - Clear screen


Returns current erase character

  • « ncurses_erase
  • ncurses_filter »
  • PHP Manual
  • Ncurses Funktionen
  • Returns current erase character

ncurses_erasechar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_erasechar — Returns current erase character

Beschreibung

ncurses_erasechar ( ) : string
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Returns the current erase character.

Rückgabewerte

The current erase char, as a string.

Siehe auch

  • ncurses_killchar() - Returns current line kill character


Set LINES for iniscr() and newterm() to 1

  • « ncurses_erasechar
  • ncurses_flash »
  • PHP Manual
  • Ncurses Funktionen
  • Set LINES for iniscr() and newterm() to 1

ncurses_filter

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_filter — Set LINES for iniscr() and newterm() to 1

Beschreibung

ncurses_filter ( ) : void
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Flash terminal screen (visual bell)

  • « ncurses_filter
  • ncurses_flushinp »
  • PHP Manual
  • Ncurses Funktionen
  • Flash terminal screen (visual bell)

ncurses_flash

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_flash — Flash terminal screen (visual bell)

Beschreibung

ncurses_flash ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Flashes the screen, and if its not possible, sends an audible alert (bell).

Rückgabewerte

Returns false on success, otherwise true.

Siehe auch

  • ncurses_beep() - Let the terminal beep


Flush keyboard input buffer

  • « ncurses_flash
  • ncurses_getch »
  • PHP Manual
  • Ncurses Funktionen
  • Flush keyboard input buffer

ncurses_flushinp

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_flushinp — Flush keyboard input buffer

Beschreibung

ncurses_flushinp ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Throws away any typeahead that has been typed and has not yet been read by your program.

Rückgabewerte

Returns false on success, otherwise true.


Read a character from keyboard

  • « ncurses_flushinp
  • ncurses_getmaxyx »
  • PHP Manual
  • Ncurses Funktionen
  • Read a character from keyboard

ncurses_getch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getch — Read a character from keyboard

Beschreibung

ncurses_getch ( ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Returns the size of a window

  • « ncurses_getch
  • ncurses_getmouse »
  • PHP Manual
  • Ncurses Funktionen
  • Returns the size of a window

ncurses_getmaxyx

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getmaxyx — Returns the size of a window

Beschreibung

ncurses_getmaxyx ( resource $window , int &$y , int &$x ) : void
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Gets the horizontal and vertical size of the given window into the given variables.

Variables must be passed as reference, so they are updated when the user changes the terminal size.

Parameter-Liste

window

The measured window

y

This will be set to the window height

x

This will be set to the window width

Rückgabewerte

Es wird kein Wert zurückgegeben.


Reads mouse event

  • « ncurses_getmaxyx
  • ncurses_getyx »
  • PHP Manual
  • Ncurses Funktionen
  • Reads mouse event

ncurses_getmouse

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getmouse — Reads mouse event

Beschreibung

ncurses_getmouse ( array &$mevent ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

ncurses_getmouse() reads mouse event out of queue.

Parameter-Liste

mevent

Event options will be delivered in this parameter which has to be an array, passed by reference (see example below).

On success an associative array with following keys will be delivered:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

Rückgabewerte

Returns false if a mouse event is actually visible in the given window, otherwise returns true.

Beispiele

Beispiel #1 ncurses_getmouse() example

<?php
switch (ncurses_getch()){
  case NCURSES_KEY_MOUSE:
    if (!ncurses_getmouse($mevent)){
      if ($mevent["mmask"] & NCURSES_MOUSE_BUTTON1_PRESSED){
        $mouse_x = $mevent["x"]; // Save mouse position
        $mouse_y = $mevent["y"];
      }
    }
  break;

  default:
    /* .... */
}
?>

Siehe auch

  • ncurses_ungetmouse() - Pushes mouse event to queue


Returns the current cursor position for a window

  • « ncurses_getmouse
  • ncurses_halfdelay »
  • PHP Manual
  • Ncurses Funktionen
  • Returns the current cursor position for a window

ncurses_getyx

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getyx — Returns the current cursor position for a window

Beschreibung

ncurses_getyx ( resource $window , int &$y , int &$x ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

y

x


Put terminal into halfdelay mode

  • « ncurses_getyx
  • ncurses_has_colors »
  • PHP Manual
  • Ncurses Funktionen
  • Put terminal into halfdelay mode

ncurses_halfdelay

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_halfdelay — Put terminal into halfdelay mode

Beschreibung

ncurses_halfdelay ( int $tenth ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

tenth


Checks if terminal has color capabilities

  • « ncurses_halfdelay
  • ncurses_has_ic »
  • PHP Manual
  • Ncurses Funktionen
  • Checks if terminal has color capabilities

ncurses_has_colors

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_colors — Checks if terminal has color capabilities

Beschreibung

ncurses_has_colors ( ) : bool

Checks whether the terminal has color capabilities. This function can be used to write terminal-independent programs. ncurses must be initialized using ncurses_init() before calling this function.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return true if the terminal has color capabilities, false otherwise.

Beispiele

Beispiel #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Flush output to screen
ncurses_refresh();

ncurses_end();
?>

Siehe auch

  • ncurses_can_change_color() - Checks if terminal color definitions can be changed
  • ncurses_start_color() - Initializes color functionality


Check for insert- and delete-capabilities

  • « ncurses_has_colors
  • ncurses_has_il »
  • PHP Manual
  • Ncurses Funktionen
  • Check for insert- and delete-capabilities

ncurses_has_ic

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_ic — Check for insert- and delete-capabilities

Beschreibung

ncurses_has_ic ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Checks whether the terminal has insert and delete capabilities.

Rückgabewerte

Returns true if the terminal has insert/delete-capabilities, false otherwise.

Siehe auch

  • ncurses_has_il() - Check for line insert- and delete-capabilities


Check for line insert- and delete-capabilities

  • « ncurses_has_ic
  • ncurses_has_key »
  • PHP Manual
  • Ncurses Funktionen
  • Check for line insert- and delete-capabilities

ncurses_has_il

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_il — Check for line insert- and delete-capabilities

Beschreibung

ncurses_has_il ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Checks whether the terminal has insert- and delete-line-capabilities.

Rückgabewerte

Returns true if the terminal has insert/delete-line capabilities, false otherwise.

Siehe auch

  • ncurses_has_ic() - Check for insert- and delete-capabilities


Check for presence of a function key on terminal keyboard

  • « ncurses_has_il
  • ncurses_hide_panel »
  • PHP Manual
  • Ncurses Funktionen
  • Check for presence of a function key on terminal keyboard

ncurses_has_key

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_key — Check for presence of a function key on terminal keyboard

Beschreibung

ncurses_has_key ( int $keycode ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

keycode


Remove panel from the stack, making it invisible

  • « ncurses_has_key
  • ncurses_hline »
  • PHP Manual
  • Ncurses Funktionen
  • Remove panel from the stack, making it invisible

ncurses_hide_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_hide_panel — Remove panel from the stack, making it invisible

Beschreibung

ncurses_hide_panel ( resource $panel ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

panel


Draw a horizontal line at current position using an attributed character and max. n characters long

  • « ncurses_hide_panel
  • ncurses_inch »
  • PHP Manual
  • Ncurses Funktionen
  • Draw a horizontal line at current position using an attributed character and max. n characters long

ncurses_hline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_hline — Draw a horizontal line at current position using an attributed character and max. n characters long

Beschreibung

ncurses_hline ( int $charattr , int $n ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

charattr

n


Get character and attribute at current position

  • « ncurses_hline
  • ncurses_init_color »
  • PHP Manual
  • Ncurses Funktionen
  • Get character and attribute at current position

ncurses_inch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_inch — Get character and attribute at current position

Beschreibung

ncurses_inch ( ) : string
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Returns the character from the current position.

Rückgabewerte

Returns the character, as a string.


Define a terminal color

  • « ncurses_inch
  • ncurses_init_pair »
  • PHP Manual
  • Ncurses Funktionen
  • Define a terminal color

ncurses_init_color

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init_color — Define a terminal color

Beschreibung

ncurses_init_color ( int $color , int $r , int $g , int $b ) : int

Defines or redefines the given color. When this function is called, all occurrences of the given color on the screen, if any, immediately change to the new definition.

Color capabilities must be supported by the terminal and initialized using ncurses_start_color() prior to calling this function. In addition, the terminal must have color changing capabilities; use ncurses_can_change_color() to check for this.

Parameter-Liste

color

The identification number of the color to redefine. It may be one of the default color constants.

r

A color value, between 0 and 1000, for the red component.

g

A color value, between 0 and 1000, for the green component.

b

A color value, between 0 and 1000, for the blue component.

Rückgabewerte

Returns -1 if the function was successful, and 0 if ncurses or terminal color capabilities have not been initialized or the terminal does not have color changing capabilities.

Siehe auch

  • ncurses_color_content() - Retrieves RGB components of a color
  • ncurses_start_color() - Initializes color functionality


Define a color pair

  • « ncurses_init_color
  • ncurses_init »
  • PHP Manual
  • Ncurses Funktionen
  • Define a color pair

ncurses_init_pair

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init_pair — Define a color pair

Beschreibung

ncurses_init_pair ( int $pair , int $fg , int $bg ) : int

Defines or redefines the given color pair to have the given foreground and background colors. If the color pair was previously initialized, the screen is refreshed and all occurrences of it are changed to reflect the new definition.

Color capabilities must be initialized using ncurses_start_color() before calling this function. The first color pair (color pair 0) is assumed to be white on black by default, but can be changed using ncurses_assume_default_colors().

Parameter-Liste

pair

The number of the color pair to define.

fg

The foreground color for the color pair. May be one of the pre-defined colors or one defined by ncurses_init_color() if the terminal has color changing capabilities.

bg

The background color for the color pair. May be one of the pre-defined colors or one defined by ncurses_init_color() if the terminal has color changing capabilities.

Rückgabewerte

Returns -1 if the function was successful, and 0 if ncurses or color support were not initialized.

Anmerkungen

Note that color changing capabilities are not required for defining color pairs of pre-existing colors, but only for changing definitions (red, green, and blue components) of colors themselves per ncurses_init_color().

Beispiele

Beispiel #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Flush output to screen
ncurses_refresh();

ncurses_end();
?>

Siehe auch

  • ncurses_pair_content() - Retrieves foreground and background colors of a color pair
  • ncurses_start_color() - Initializes color functionality


Initialize ncurses

  • « ncurses_init_pair
  • ncurses_insch »
  • PHP Manual
  • Ncurses Funktionen
  • Initialize ncurses

ncurses_init

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init — Initialize ncurses

Beschreibung

ncurses_init ( ) : void

Initializes the ncurses interface. This function must be used before any other ncurses function call.

Note that ncurses_end() must be called before exiting from the program, or the terminal will not be restored to its proper non-visual mode.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ncurses_end() - Stop using ncurses, clean up the screen


Insert character moving rest of line including character at current position

  • « ncurses_init
  • ncurses_insdelln »
  • PHP Manual
  • Ncurses Funktionen
  • Insert character moving rest of line including character at current position

ncurses_insch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insch — Insert character moving rest of line including character at current position

Beschreibung

ncurses_insch ( int $character ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

character


Insert lines before current line scrolling down (negative numbers delete and scroll up)

  • « ncurses_insch
  • ncurses_insertln »
  • PHP Manual
  • Ncurses Funktionen
  • Insert lines before current line scrolling down (negative numbers delete and scroll up)

ncurses_insdelln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insdelln — Insert lines before current line scrolling down (negative numbers delete and scroll up)

Beschreibung

ncurses_insdelln ( int $count ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

count


Insert a line, move rest of screen down

  • « ncurses_insdelln
  • ncurses_insstr »
  • PHP Manual
  • Ncurses Funktionen
  • Insert a line, move rest of screen down

ncurses_insertln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insertln — Insert a line, move rest of screen down

Beschreibung

ncurses_insertln ( ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Inserts a new line above the current line. The bottom line will be lost.


Insert string at current position, moving rest of line right

  • « ncurses_insertln
  • ncurses_instr »
  • PHP Manual
  • Ncurses Funktionen
  • Insert string at current position, moving rest of line right

ncurses_insstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insstr — Insert string at current position, moving rest of line right

Beschreibung

ncurses_insstr ( string $text ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

text


Reads string from terminal screen

  • « ncurses_insstr
  • ncurses_isendwin »
  • PHP Manual
  • Ncurses Funktionen
  • Reads string from terminal screen

ncurses_instr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_instr — Reads string from terminal screen

Beschreibung

ncurses_instr ( string &$buffer ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Reads a string from the terminal screen and returns the number of characters read from the current character position until end of line.

Parameter-Liste

buffer

The characters. Attributes will be stripped.

Rückgabewerte

Returns the number of characters.


Ncurses is in endwin mode, normal screen output may be performed

  • « ncurses_instr
  • ncurses_keyok »
  • PHP Manual
  • Ncurses Funktionen
  • Ncurses is in endwin mode, normal screen output may be performed

ncurses_isendwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_isendwin — Ncurses is in endwin mode, normal screen output may be performed

Beschreibung

ncurses_isendwin ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Checks if ncurses is in endwin mode.

Rückgabewerte

Returns true, if ncurses_end() has been called without any subsequent calls to ncurses_wrefresh(), false otherwise.

Siehe auch

  • ncurses_end() - Stop using ncurses, clean up the screen
  • ncurses_wrefresh() - Refresh window on terminal screen


Enable or disable a keycode

  • « ncurses_isendwin
  • ncurses_keypad »
  • PHP Manual
  • Ncurses Funktionen
  • Enable or disable a keycode

ncurses_keyok

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_keyok — Enable or disable a keycode

Beschreibung

ncurses_keyok ( int $keycode , bool $enable ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

keycode

enable


Turns keypad on or off

  • « ncurses_keyok
  • ncurses_killchar »
  • PHP Manual
  • Ncurses Funktionen
  • Turns keypad on or off

ncurses_keypad

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_keypad — Turns keypad on or off

Beschreibung

ncurses_keypad ( resource $window , bool $bf ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

bf


Returns current line kill character

  • « ncurses_keypad
  • ncurses_longname »
  • PHP Manual
  • Ncurses Funktionen
  • Returns current line kill character

ncurses_killchar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_killchar — Returns current line kill character

Beschreibung

ncurses_killchar ( ) : string
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Returns the current line kill character.

Rückgabewerte

Returns the kill character, as a string.

Siehe auch

  • ncurses_erasechar() - Returns current erase character


Returns terminals description

  • « ncurses_killchar
  • ncurses_meta »
  • PHP Manual
  • Ncurses Funktionen
  • Returns terminals description

ncurses_longname

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_longname — Returns terminals description

Beschreibung

ncurses_longname ( ) : string
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Returns a verbose description of the terminal.

Rückgabewerte

Returns the description, as a string truncated to 128 characters. On errors, returns null.

Siehe auch

  • ncurses_termname() - Returns terminals (short)-name


Enables/Disable 8-bit meta key information

  • « ncurses_longname
  • ncurses_mouse_trafo »
  • PHP Manual
  • Ncurses Funktionen
  • Enables/Disable 8-bit meta key information

ncurses_meta

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_meta — Enables/Disable 8-bit meta key information

Beschreibung

ncurses_meta ( resource $window , bool $8bit ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

8bit


Transforms coordinates

  • « ncurses_meta
  • ncurses_mouseinterval »
  • PHP Manual
  • Ncurses Funktionen
  • Transforms coordinates

ncurses_mouse_trafo

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mouse_trafo — Transforms coordinates

Beschreibung

ncurses_mouse_trafo ( int &$y , int &$x , bool $toscreen ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

y

x

toscreen


Set timeout for mouse button clicks

  • « ncurses_mouse_trafo
  • ncurses_mousemask »
  • PHP Manual
  • Ncurses Funktionen
  • Set timeout for mouse button clicks

ncurses_mouseinterval

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mouseinterval — Set timeout for mouse button clicks

Beschreibung

ncurses_mouseinterval ( int $milliseconds ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

milliseconds


Sets mouse options

  • « ncurses_mouseinterval
  • ncurses_move_panel »
  • PHP Manual
  • Ncurses Funktionen
  • Sets mouse options

ncurses_mousemask

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mousemask — Sets mouse options

Beschreibung

ncurses_mousemask ( int $newmask , int &$oldmask ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Sets mouse events to be reported. By default no mouse events will be reported.

Mouse events are represented by NCURSES_KEY_MOUSE in the ncurses_wgetch() input stream. To read the event data and pop the event of queue, call ncurses_getmouse().

Parameter-Liste

newmask

Mouse mask options can be set with the following predefined constants:

  • NCURSES_BUTTON1_PRESSED

  • NCURSES_BUTTON1_RELEASED

  • NCURSES_BUTTON1_CLICKED

  • NCURSES_BUTTON1_DOUBLE_CLICKED

  • NCURSES_BUTTON1_TRIPLE_CLICKED

  • NCURSES_BUTTON2_PRESSED

  • NCURSES_BUTTON2_RELEASED

  • NCURSES_BUTTON2_CLICKED

  • NCURSES_BUTTON2_DOUBLE_CLICKED

  • NCURSES_BUTTON2_TRIPLE_CLICKED

  • NCURSES_BUTTON3_PRESSED

  • NCURSES_BUTTON3_RELEASED

  • NCURSES_BUTTON3_CLICKED

  • NCURSES_BUTTON3_DOUBLE_CLICKED

  • NCURSES_BUTTON3_TRIPLE_CLICKED

  • NCURSES_BUTTON4_PRESSED

  • NCURSES_BUTTON4_RELEASED

  • NCURSES_BUTTON4_CLICKED

  • NCURSES_BUTTON4_DOUBLE_CLICKED

  • NCURSES_BUTTON4_TRIPLE_CLICKED

  • NCURSES_BUTTON_SHIFT>

  • NCURSES_BUTTON_CTRL

  • NCURSES_BUTTON_ALT

  • NCURSES_ALL_MOUSE_EVENTS

  • NCURSES_REPORT_MOUSE_POSITION

As a side effect, setting a zero mousemask in newmask turns off the mouse pointer. Setting a non zero value turns mouse pointer on.

oldmask

This will be set to the previous value of the mouse event mask.

Rückgabewerte

Returns the mask of reportable events. On complete failure, it returns 0.

Beispiele

Beispiel #1 ncurses_mousemask() example

<?php
$newmask = NCURSES_BUTTON1_CLICKED + NCURSES_BUTTON1_RELEASED;
$mask = ncurses_mousemask($newmask, $oldmask);
if ($mask & $newmask){
    printf("All specified mouse options will be supported\n");
}
?>

Siehe auch

  • ncurses_getch() - Read a character from keyboard
  • ncurses_getmouse() - Reads mouse event
  • ncurses_ungetmouse() - Pushes mouse event to queue


Moves a panel so that its upper-left corner is at [startx, starty]

  • « ncurses_mousemask
  • ncurses_move »
  • PHP Manual
  • Ncurses Funktionen
  • Moves a panel so that its upper-left corner is at [startx, starty]

ncurses_move_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_move_panel — Moves a panel so that its upper-left corner is at [startx, starty]

Beschreibung

ncurses_move_panel ( resource $panel , int $startx , int $starty ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

panel

startx

starty


Move output position

  • « ncurses_move_panel
  • ncurses_mvaddch »
  • PHP Manual
  • Ncurses Funktionen
  • Move output position

ncurses_move

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_move — Move output position

Beschreibung

ncurses_move ( int $y , int $x ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

y

x


Move current position and add character

  • « ncurses_move
  • ncurses_mvaddchnstr »
  • PHP Manual
  • Ncurses Funktionen
  • Move current position and add character

ncurses_mvaddch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddch — Move current position and add character

Beschreibung

ncurses_mvaddch ( int $y , int $x , int $c ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

y

x

c


Move position and add attributed string with specified length

  • « ncurses_mvaddch
  • ncurses_mvaddchstr »
  • PHP Manual
  • Ncurses Funktionen
  • Move position and add attributed string with specified length

ncurses_mvaddchnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddchnstr — Move position and add attributed string with specified length

Beschreibung

ncurses_mvaddchnstr ( int $y , int $x , string $s , int $n ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

y

x

s

n


Move position and add attributed string

  • « ncurses_mvaddchnstr
  • ncurses_mvaddnstr »
  • PHP Manual
  • Ncurses Funktionen
  • Move position and add attributed string

ncurses_mvaddchstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddchstr — Move position and add attributed string

Beschreibung

ncurses_mvaddchstr ( int $y , int $x , string $s ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

y

x

s


Move position and add string with specified length

  • « ncurses_mvaddchstr
  • ncurses_mvaddstr »
  • PHP Manual
  • Ncurses Funktionen
  • Move position and add string with specified length

ncurses_mvaddnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddnstr — Move position and add string with specified length

Beschreibung

ncurses_mvaddnstr ( int $y , int $x , string $s , int $n ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

y

x

s

n


Move position and add string

  • « ncurses_mvaddnstr
  • ncurses_mvcur »
  • PHP Manual
  • Ncurses Funktionen
  • Move position and add string

ncurses_mvaddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddstr — Move position and add string

Beschreibung

ncurses_mvaddstr ( int $y , int $x , string $s ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

y

x

s


Move cursor immediately

  • « ncurses_mvaddstr
  • ncurses_mvdelch »
  • PHP Manual
  • Ncurses Funktionen
  • Move cursor immediately

ncurses_mvcur

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvcur — Move cursor immediately

Beschreibung

ncurses_mvcur ( int $old_y , int $old_x , int $new_y , int $new_x ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

old_y

old_x

new_y

new_x


Move position and delete character, shift rest of line left

  • « ncurses_mvcur
  • ncurses_mvgetch »
  • PHP Manual
  • Ncurses Funktionen
  • Move position and delete character, shift rest of line left

ncurses_mvdelch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvdelch — Move position and delete character, shift rest of line left

Beschreibung

ncurses_mvdelch ( int $y , int $x ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

y

x


Move position and get character at new position

  • « ncurses_mvdelch
  • ncurses_mvhline »
  • PHP Manual
  • Ncurses Funktionen
  • Move position and get character at new position

ncurses_mvgetch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvgetch — Move position and get character at new position

Beschreibung

ncurses_mvgetch ( int $y , int $x ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

y

x


Set new position and draw a horizontal line using an attributed character and max. n characters long

  • « ncurses_mvgetch
  • ncurses_mvinch »
  • PHP Manual
  • Ncurses Funktionen
  • Set new position and draw a horizontal line using an attributed character and max. n characters long

ncurses_mvhline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvhline — Set new position and draw a horizontal line using an attributed character and max. n characters long

Beschreibung

ncurses_mvhline ( int $y , int $x , int $attrchar , int $n ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

y

x

attrchar

n


Move position and get attributed character at new position

  • « ncurses_mvhline
  • ncurses_mvvline »
  • PHP Manual
  • Ncurses Funktionen
  • Move position and get attributed character at new position

ncurses_mvinch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvinch — Move position and get attributed character at new position

Beschreibung

ncurses_mvinch ( int $y , int $x ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

y

x


Set new position and draw a vertical line using an attributed character and max. n characters long

  • « ncurses_mvinch
  • ncurses_mvwaddstr »
  • PHP Manual
  • Ncurses Funktionen
  • Set new position and draw a vertical line using an attributed character and max. n characters long

ncurses_mvvline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvvline — Set new position and draw a vertical line using an attributed character and max. n characters long

Beschreibung

ncurses_mvvline ( int $y , int $x , int $attrchar , int $n ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

y

x

attrchar

n


Add string at new position in window

  • « ncurses_mvvline
  • ncurses_napms »
  • PHP Manual
  • Ncurses Funktionen
  • Add string at new position in window

ncurses_mvwaddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvwaddstr — Add string at new position in window

Beschreibung

ncurses_mvwaddstr ( resource $window , int $y , int $x , string $text ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

y

x

text


Sleep

  • « ncurses_mvwaddstr
  • ncurses_new_panel »
  • PHP Manual
  • Ncurses Funktionen
  • Sleep

ncurses_napms

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_napms — Sleep

Beschreibung

ncurses_napms ( int $milliseconds ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

milliseconds


Create a new panel and associate it with window

  • « ncurses_napms
  • ncurses_newpad »
  • PHP Manual
  • Ncurses Funktionen
  • Create a new panel and associate it with window

ncurses_new_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_new_panel — Create a new panel and associate it with window

Beschreibung

ncurses_new_panel ( resource $window ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window


Creates a new pad (window)

  • « ncurses_new_panel
  • ncurses_newwin »
  • PHP Manual
  • Ncurses Funktionen
  • Creates a new pad (window)

ncurses_newpad

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_newpad — Creates a new pad (window)

Beschreibung

ncurses_newpad ( int $rows , int $cols ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

rows

cols


Create a new window

  • « ncurses_newpad
  • ncurses_nl »
  • PHP Manual
  • Ncurses Funktionen
  • Create a new window

ncurses_newwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_newwin — Create a new window

Beschreibung

ncurses_newwin ( int $rows , int $cols , int $y , int $x ) : resource
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Creates a new window to draw elements in.

When creating additional windows, remember to use ncurses_getmaxyx() to check for available space, as terminal size is individual and may vary.

Parameter-Liste

rows

Number of rows

cols

Number of columns

y

y-coordinate of the origin

x

x-coordinate of the origin

Rückgabewerte

Returns a resource ID for the new window.


Translate newline and carriage return / line feed

  • « ncurses_newwin
  • ncurses_nocbreak »
  • PHP Manual
  • Ncurses Funktionen
  • Translate newline and carriage return / line feed

ncurses_nl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nl — Translate newline and carriage return / line feed

Beschreibung

ncurses_nl ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Switch terminal to cooked mode

  • « ncurses_nl
  • ncurses_noecho »
  • PHP Manual
  • Ncurses Funktionen
  • Switch terminal to cooked mode

ncurses_nocbreak

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nocbreak — Switch terminal to cooked mode

Beschreibung

ncurses_nocbreak ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Returns terminal to normal (cooked) mode. Initially the terminal may or may not be in cbreak mode as the mode is inherited. Therefore a program should call ncurses_cbreak() and ncurses_nocbreak() explicitly.

Rückgabewerte

Returns true if any error occurred, otherwise false.

Siehe auch

  • ncurses_cbreak() - Switch off input buffering


Switch off keyboard input echo

  • « ncurses_nocbreak
  • ncurses_nonl »
  • PHP Manual
  • Ncurses Funktionen
  • Switch off keyboard input echo

ncurses_noecho

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noecho — Switch off keyboard input echo

Beschreibung

ncurses_noecho ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Prevents echoing of user typed characters.

Rückgabewerte

Returns true if any error occurred, false otherwise.

Siehe auch

  • ncurses_echo() - Activate keyboard input echo
  • ncurses_getch() - Read a character from keyboard


Do not translate newline and carriage return / line feed

  • « ncurses_noecho
  • ncurses_noqiflush »
  • PHP Manual
  • Ncurses Funktionen
  • Do not translate newline and carriage return / line feed

ncurses_nonl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nonl — Do not translate newline and carriage return / line feed

Beschreibung

ncurses_nonl ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Do not flush on signal characters

  • « ncurses_nonl
  • ncurses_noraw »
  • PHP Manual
  • Ncurses Funktionen
  • Do not flush on signal characters

ncurses_noqiflush

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noqiflush — Do not flush on signal characters

Beschreibung

ncurses_noqiflush ( ) : void
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Switch terminal out of raw mode

  • « ncurses_noqiflush
  • ncurses_pair_content »
  • PHP Manual
  • Ncurses Funktionen
  • Switch terminal out of raw mode

ncurses_noraw

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noraw — Switch terminal out of raw mode

Beschreibung

ncurses_noraw ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Switches the terminal out of raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The difference is that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal.

Rückgabewerte

Returns true if any error occurred, otherwise false.

Siehe auch

  • ncurses_raw() - Switch terminal into raw mode
  • ncurses_cbreak() - Switch off input buffering
  • ncurses_nocbreak() - Switch terminal to cooked mode


Retrieves foreground and background colors of a color pair

  • « ncurses_noraw
  • ncurses_panel_above »
  • PHP Manual
  • Ncurses Funktionen
  • Retrieves foreground and background colors of a color pair

ncurses_pair_content

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_pair_content — Retrieves foreground and background colors of a color pair

Beschreibung

ncurses_pair_content ( int $pair , int &$f , int &$b ) : int

Retrieves the foreground and background colors that constitute the given color pair. Terminal color capabilities must be initialized with ncurses_start_color() prior to calling this function.

Parameter-Liste

pair

The number of the color pair to retrieve information for.

f

A reference to which to return the foreground color of the color pair. The information returned will be a color number referring to one of the pre-defined colors or a color defined previously by ncurses_init_color() if the terminal supports color changing.

b

A reference to which to return the background color of the color pair. The information returned will be a color number referring to one of the pre-defined colors or a color defined previously by ncurses_init_color() if the terminal supports color changing.

Rückgabewerte

Returns -1 if the function was successful, and 0 if ncurses or terminal color capabilities have not been initialized.

Siehe auch

  • ncurses_init_pair() - Define a color pair
  • ncurses_start_color() - Initializes color functionality


Returns the panel above panel

  • « ncurses_pair_content
  • ncurses_panel_below »
  • PHP Manual
  • Ncurses Funktionen
  • Returns the panel above panel

ncurses_panel_above

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_above — Returns the panel above panel

Beschreibung

ncurses_panel_above ( resource $panel ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

panel

Rückgabewerte

If panel is null, returns the bottom panel in the stack.


Returns the panel below panel

  • « ncurses_panel_above
  • ncurses_panel_window »
  • PHP Manual
  • Ncurses Funktionen
  • Returns the panel below panel

ncurses_panel_below

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_below — Returns the panel below panel

Beschreibung

ncurses_panel_below ( resource $panel ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

panel

Parameter-Liste

If panel is null, returns the top panel in the stack.


Returns the window associated with panel

  • « ncurses_panel_below
  • ncurses_pnoutrefresh »
  • PHP Manual
  • Ncurses Funktionen
  • Returns the window associated with panel

ncurses_panel_window

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_window — Returns the window associated with panel

Beschreibung

ncurses_panel_window ( resource $panel ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

panel


Copies a region from a pad into the virtual screen

  • « ncurses_panel_window
  • ncurses_prefresh »
  • PHP Manual
  • Ncurses Funktionen
  • Copies a region from a pad into the virtual screen

ncurses_pnoutrefresh

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_pnoutrefresh — Copies a region from a pad into the virtual screen

Beschreibung

ncurses_pnoutrefresh ( resource $pad , int $pminrow , int $pmincol , int $sminrow , int $smincol , int $smaxrow , int $smaxcol ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol


Copies a region from a pad into the virtual screen

  • « ncurses_pnoutrefresh
  • ncurses_putp »
  • PHP Manual
  • Ncurses Funktionen
  • Copies a region from a pad into the virtual screen

ncurses_prefresh

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_prefresh — Copies a region from a pad into the virtual screen

Beschreibung

ncurses_prefresh ( resource $pad , int $pminrow , int $pmincol , int $sminrow , int $smincol , int $smaxrow , int $smaxcol ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol


Apply padding information to the string and output it

  • « ncurses_prefresh
  • ncurses_qiflush »
  • PHP Manual
  • Ncurses Funktionen
  • Apply padding information to the string and output it

ncurses_putp

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_putp — Apply padding information to the string and output it

Beschreibung

ncurses_putp ( string $text ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

text


Flush on signal characters

  • « ncurses_putp
  • ncurses_raw »
  • PHP Manual
  • Ncurses Funktionen
  • Flush on signal characters

ncurses_qiflush

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_qiflush — Flush on signal characters

Beschreibung

ncurses_qiflush ( ) : void
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Switch terminal into raw mode

  • « ncurses_qiflush
  • ncurses_refresh »
  • PHP Manual
  • Ncurses Funktionen
  • Switch terminal into raw mode

ncurses_raw

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_raw — Switch terminal into raw mode

Beschreibung

ncurses_raw ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Places the terminal in raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The difference is that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal.

Rückgabewerte

Returns true if any error occurred, otherwise false.

Siehe auch

  • ncurses_noraw() - Switch terminal out of raw mode
  • ncurses_cbreak() - Switch off input buffering
  • ncurses_nocbreak() - Switch terminal to cooked mode


Refresh screen

  • « ncurses_raw
  • ncurses_replace_panel »
  • PHP Manual
  • Ncurses Funktionen
  • Refresh screen

ncurses_refresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_refresh — Refresh screen

Beschreibung

ncurses_refresh ( int $ch ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

ch


Replaces the window associated with panel

  • « ncurses_refresh
  • ncurses_reset_prog_mode »
  • PHP Manual
  • Ncurses Funktionen
  • Replaces the window associated with panel

ncurses_replace_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_replace_panel — Replaces the window associated with panel

Beschreibung

ncurses_replace_panel ( resource $panel , resource $window ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

panel

window


Resets the prog mode saved by def_prog_mode

  • « ncurses_replace_panel
  • ncurses_reset_shell_mode »
  • PHP Manual
  • Ncurses Funktionen
  • Resets the prog mode saved by def_prog_mode

ncurses_reset_prog_mode

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_reset_prog_mode — Resets the prog mode saved by def_prog_mode

Beschreibung

ncurses_reset_prog_mode ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Resets the shell mode saved by def_shell_mode

  • « ncurses_reset_prog_mode
  • ncurses_resetty »
  • PHP Manual
  • Ncurses Funktionen
  • Resets the shell mode saved by def_shell_mode

ncurses_reset_shell_mode

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_reset_shell_mode — Resets the shell mode saved by def_shell_mode

Beschreibung

ncurses_reset_shell_mode ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Restores saved terminal state

  • « ncurses_reset_shell_mode
  • ncurses_savetty »
  • PHP Manual
  • Ncurses Funktionen
  • Restores saved terminal state

ncurses_resetty

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_resetty — Restores saved terminal state

Beschreibung

ncurses_resetty ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Restores the terminal state, which was previously saved by calling ncurses_savetty().

Rückgabewerte

Always returns false.

Siehe auch

  • ncurses_savetty() - Saves terminal state


Saves terminal state

  • « ncurses_resetty
  • ncurses_scr_dump »
  • PHP Manual
  • Ncurses Funktionen
  • Saves terminal state

ncurses_savetty

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_savetty — Saves terminal state

Beschreibung

ncurses_savetty ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Saves the current terminal state. The saved terminal state can be restored with ncurses_resetty().

Rückgabewerte

Always returns false.

Siehe auch

  • ncurses_resetty() - Restores saved terminal state


Dump screen content to file

  • « ncurses_savetty
  • ncurses_scr_init »
  • PHP Manual
  • Ncurses Funktionen
  • Dump screen content to file

ncurses_scr_dump

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_dump — Dump screen content to file

Beschreibung

ncurses_scr_dump ( string $filename ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

filename


Initialize screen from file dump

  • « ncurses_scr_dump
  • ncurses_scr_restore »
  • PHP Manual
  • Ncurses Funktionen
  • Initialize screen from file dump

ncurses_scr_init

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_init — Initialize screen from file dump

Beschreibung

ncurses_scr_init ( string $filename ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

filename


Restore screen from file dump

  • « ncurses_scr_init
  • ncurses_scr_set »
  • PHP Manual
  • Ncurses Funktionen
  • Restore screen from file dump

ncurses_scr_restore

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_restore — Restore screen from file dump

Beschreibung

ncurses_scr_restore ( string $filename ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

filename


Inherit screen from file dump

  • « ncurses_scr_restore
  • ncurses_scrl »
  • PHP Manual
  • Ncurses Funktionen
  • Inherit screen from file dump

ncurses_scr_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_set — Inherit screen from file dump

Beschreibung

ncurses_scr_set ( string $filename ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

filename


Scroll window content up or down without changing current position

  • « ncurses_scr_set
  • ncurses_show_panel »
  • PHP Manual
  • Ncurses Funktionen
  • Scroll window content up or down without changing current position

ncurses_scrl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scrl — Scroll window content up or down without changing current position

Beschreibung

ncurses_scrl ( int $count ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

count


Places an invisible panel on top of the stack, making it visible

  • « ncurses_scrl
  • ncurses_slk_attr »
  • PHP Manual
  • Ncurses Funktionen
  • Places an invisible panel on top of the stack, making it visible

ncurses_show_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_show_panel — Places an invisible panel on top of the stack, making it visible

Beschreibung

ncurses_show_panel ( resource $panel ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

panel


Returns current soft label key attribute

  • « ncurses_show_panel
  • ncurses_slk_attroff »
  • PHP Manual
  • Ncurses Funktionen
  • Returns current soft label key attribute

ncurses_slk_attr

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attr — Returns current soft label key attribute

Beschreibung

ncurses_slk_attr ( ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Returns the current soft label key attribute.

Rückgabewerte

The attribute, as an integer.


Turn off the given attributes for soft function-key labels

  • « ncurses_slk_attr
  • ncurses_slk_attron »
  • PHP Manual
  • Ncurses Funktionen
  • Turn off the given attributes for soft function-key labels

ncurses_slk_attroff

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attroff — Turn off the given attributes for soft function-key labels

Beschreibung

ncurses_slk_attroff ( int $intarg ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

intarg


Turn on the given attributes for soft function-key labels

  • « ncurses_slk_attroff
  • ncurses_slk_attrset »
  • PHP Manual
  • Ncurses Funktionen
  • Turn on the given attributes for soft function-key labels

ncurses_slk_attron

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attron — Turn on the given attributes for soft function-key labels

Beschreibung

ncurses_slk_attron ( int $intarg ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

intarg


Set given attributes for soft function-key labels

  • « ncurses_slk_attron
  • ncurses_slk_clear »
  • PHP Manual
  • Ncurses Funktionen
  • Set given attributes for soft function-key labels

ncurses_slk_attrset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attrset — Set given attributes for soft function-key labels

Beschreibung

ncurses_slk_attrset ( int $intarg ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

intarg


Clears soft labels from screen

  • « ncurses_slk_attrset
  • ncurses_slk_color »
  • PHP Manual
  • Ncurses Funktionen
  • Clears soft labels from screen

ncurses_slk_clear

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_clear — Clears soft labels from screen

Beschreibung

ncurses_slk_clear ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

The function ncurses_slk_clear() clears soft label keys from screen.

Rückgabewerte

Returns true on errors, false otherwise.


Sets color for soft label keys

  • « ncurses_slk_clear
  • ncurses_slk_init »
  • PHP Manual
  • Ncurses Funktionen
  • Sets color for soft label keys

ncurses_slk_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_color — Sets color for soft label keys

Beschreibung

ncurses_slk_color ( int $intarg ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

intarg


Initializes soft label key functions

  • « ncurses_slk_color
  • ncurses_slk_noutrefresh »
  • PHP Manual
  • Ncurses Funktionen
  • Initializes soft label key functions

ncurses_slk_init

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_init — Initializes soft label key functions

Beschreibung

ncurses_slk_init ( int $format ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Initializes soft label key functions

This function must be called before ncurses_init() or ncurses_newwin() is called.

Parameter-Liste

format

If ncurses_init() eventually uses a line from stdscr to emulate the soft labels, then this parameter determines how the labels are arranged of the screen.

0 indicates a 3-2-3 arrangement of the labels, 1 indicates a 4-4 arrangement and 2 indicates the PC like 4-4-4 mode, but in addition an index line will be created.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Copies soft label keys to virtual screen

  • « ncurses_slk_init
  • ncurses_slk_refresh »
  • PHP Manual
  • Ncurses Funktionen
  • Copies soft label keys to virtual screen

ncurses_slk_noutrefresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_noutrefresh — Copies soft label keys to virtual screen

Beschreibung

ncurses_slk_noutrefresh ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Copies soft label keys to screen

  • « ncurses_slk_noutrefresh
  • ncurses_slk_restore »
  • PHP Manual
  • Ncurses Funktionen
  • Copies soft label keys to screen

ncurses_slk_refresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_refresh — Copies soft label keys to screen

Beschreibung

ncurses_slk_refresh ( ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Copies soft label keys from virtual screen to physical screen.


Restores soft label keys

  • « ncurses_slk_refresh
  • ncurses_slk_set »
  • PHP Manual
  • Ncurses Funktionen
  • Restores soft label keys

ncurses_slk_restore

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_restore — Restores soft label keys

Beschreibung

ncurses_slk_restore ( ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Restores the soft label keys after ncurses_slk_clear() has been performed.


Sets function key labels

  • « ncurses_slk_restore
  • ncurses_slk_touch »
  • PHP Manual
  • Ncurses Funktionen
  • Sets function key labels

ncurses_slk_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_set — Sets function key labels

Beschreibung

ncurses_slk_set ( int $labelnr , string $label , int $format ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

labelnr

label

format


Forces output when ncurses_slk_noutrefresh is performed

  • « ncurses_slk_set
  • ncurses_standend »
  • PHP Manual
  • Ncurses Funktionen
  • Forces output when ncurses_slk_noutrefresh is performed

ncurses_slk_touch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_touch — Forces output when ncurses_slk_noutrefresh is performed

Beschreibung

ncurses_slk_touch ( ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Forces all the soft labels to be output the next time a ncurses_slk_noutrefresh() is performed.


Stop using 'standout' attribute

  • « ncurses_slk_touch
  • ncurses_standout »
  • PHP Manual
  • Ncurses Funktionen
  • Stop using 'standout' attribute

ncurses_standend

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_standend — Stop using 'standout' attribute

Beschreibung

ncurses_standend ( ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Start using 'standout' attribute

  • « ncurses_standend
  • ncurses_start_color »
  • PHP Manual
  • Ncurses Funktionen
  • Start using 'standout' attribute

ncurses_standout

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_standout — Start using 'standout' attribute

Beschreibung

ncurses_standout ( ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Initializes color functionality

  • « ncurses_standout
  • ncurses_termattrs »
  • PHP Manual
  • Ncurses Funktionen
  • Initializes color functionality

ncurses_start_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_start_color — Initializes color functionality

Beschreibung

ncurses_start_color ( ) : int

Initializes color functionality in ncurses. This function must be called before any color manipulation functions are called and after ncurses_init() is called. It is good practice to call this function right after ncurses_init().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns 0 on success, or -1 if the color table could not be allocated or ncurses was not initialized.

Beispiele

Beispiel #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Flush output to screen
ncurses_refresh();

ncurses_end();
?>

Siehe auch

  • ncurses_can_change_color() - Checks if terminal color definitions can be changed
  • ncurses_has_colors() - Checks if terminal has color capabilities


Returns a logical OR of all attribute flags supported by terminal

  • « ncurses_start_color
  • ncurses_termname »
  • PHP Manual
  • Ncurses Funktionen
  • Returns a logical OR of all attribute flags supported by terminal

ncurses_termattrs

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_termattrs — Returns a logical OR of all attribute flags supported by terminal

Beschreibung

ncurses_termattrs ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Returns terminals (short)-name

  • « ncurses_termattrs
  • ncurses_timeout »
  • PHP Manual
  • Ncurses Funktionen
  • Returns terminals (short)-name

ncurses_termname

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_termname — Returns terminals (short)-name

Beschreibung

ncurses_termname ( ) : string
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Returns terminals shortname.

Rückgabewerte

Returns the shortname of the terminal, truncated to 14 characters. On errors, returns null.

Siehe auch

  • ncurses_longname() - Returns terminals description


Set timeout for special key sequences

  • « ncurses_termname
  • ncurses_top_panel »
  • PHP Manual
  • Ncurses Funktionen
  • Set timeout for special key sequences

ncurses_timeout

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_timeout — Set timeout for special key sequences

Beschreibung

ncurses_timeout ( int $millisec ) : void
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

millisec


Moves a visible panel to the top of the stack

  • « ncurses_timeout
  • ncurses_typeahead »
  • PHP Manual
  • Ncurses Funktionen
  • Moves a visible panel to the top of the stack

ncurses_top_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_top_panel — Moves a visible panel to the top of the stack

Beschreibung

ncurses_top_panel ( resource $panel ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

panel


Specify different filedescriptor for typeahead checking

  • « ncurses_top_panel
  • ncurses_ungetch »
  • PHP Manual
  • Ncurses Funktionen
  • Specify different filedescriptor for typeahead checking

ncurses_typeahead

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_typeahead — Specify different filedescriptor for typeahead checking

Beschreibung

ncurses_typeahead ( int $fd ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

fd


Put a character back into the input stream

  • « ncurses_typeahead
  • ncurses_ungetmouse »
  • PHP Manual
  • Ncurses Funktionen
  • Put a character back into the input stream

ncurses_ungetch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_ungetch — Put a character back into the input stream

Beschreibung

ncurses_ungetch ( int $keycode ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

keycode


Pushes mouse event to queue

  • « ncurses_ungetch
  • ncurses_update_panels »
  • PHP Manual
  • Ncurses Funktionen
  • Pushes mouse event to queue

ncurses_ungetmouse

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_ungetmouse — Pushes mouse event to queue

Beschreibung

ncurses_ungetmouse ( array $mevent ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Pushes a KEY_MOUSE event onto the input queue and associates with this event the given state data and screen-relative character cell coordinates, specified in mevent.

Parameter-Liste

mevent

An associative array specifying the event options:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

Rückgabewerte

Returns false on success, true otherwise.

Siehe auch

  • ncurses_getmouse() - Reads mouse event


Refreshes the virtual screen to reflect the relations between panels in the stack

  • « ncurses_ungetmouse
  • ncurses_use_default_colors »
  • PHP Manual
  • Ncurses Funktionen
  • Refreshes the virtual screen to reflect the relations between panels in the stack

ncurses_update_panels

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_update_panels — Refreshes the virtual screen to reflect the relations between panels in the stack

Beschreibung

ncurses_update_panels ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Assign terminal default colors to color id -1

  • « ncurses_update_panels
  • ncurses_use_env »
  • PHP Manual
  • Ncurses Funktionen
  • Assign terminal default colors to color id -1

ncurses_use_default_colors

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_default_colors — Assign terminal default colors to color id -1

Beschreibung

ncurses_use_default_colors ( ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Control use of environment information about terminal size

  • « ncurses_use_default_colors
  • ncurses_use_extended_names »
  • PHP Manual
  • Ncurses Funktionen
  • Control use of environment information about terminal size

ncurses_use_env

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_env — Control use of environment information about terminal size

Beschreibung

ncurses_use_env ( bool $flag ) : void
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

flag


Control use of extended names in terminfo descriptions

  • « ncurses_use_env
  • ncurses_vidattr »
  • PHP Manual
  • Ncurses Funktionen
  • Control use of extended names in terminfo descriptions

ncurses_use_extended_names

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_extended_names — Control use of extended names in terminfo descriptions

Beschreibung

ncurses_use_extended_names ( bool $flag ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

flag


Display the string on the terminal in the video attribute mode

  • « ncurses_use_extended_names
  • ncurses_vline »
  • PHP Manual
  • Ncurses Funktionen
  • Display the string on the terminal in the video attribute mode

ncurses_vidattr

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_vidattr — Display the string on the terminal in the video attribute mode

Beschreibung

ncurses_vidattr ( int $intarg ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

intarg


Draw a vertical line at current position using an attributed character and max. n characters long

  • « ncurses_vidattr
  • ncurses_waddch »
  • PHP Manual
  • Ncurses Funktionen
  • Draw a vertical line at current position using an attributed character and max. n characters long

ncurses_vline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_vline — Draw a vertical line at current position using an attributed character and max. n characters long

Beschreibung

ncurses_vline ( int $charattr , int $n ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

charattr

n


Adds character at current position in a window and advance cursor

  • « ncurses_vline
  • ncurses_waddstr »
  • PHP Manual
  • Ncurses Funktionen
  • Adds character at current position in a window and advance cursor

ncurses_waddch

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_waddch — Adds character at current position in a window and advance cursor

Beschreibung

ncurses_waddch ( resource $window , int $ch ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

ch


Outputs text at current postion in window

  • « ncurses_waddch
  • ncurses_wattroff »
  • PHP Manual
  • Ncurses Funktionen
  • Outputs text at current postion in window

ncurses_waddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_waddstr — Outputs text at current postion in window

Beschreibung

ncurses_waddstr ( resource $window , string $str , int $n = ? ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

str

n


Turns off attributes for a window

  • « ncurses_waddstr
  • ncurses_wattron »
  • PHP Manual
  • Ncurses Funktionen
  • Turns off attributes for a window

ncurses_wattroff

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattroff — Turns off attributes for a window

Beschreibung

ncurses_wattroff ( resource $window , int $attrs ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

attrs


Turns on attributes for a window

  • « ncurses_wattroff
  • ncurses_wattrset »
  • PHP Manual
  • Ncurses Funktionen
  • Turns on attributes for a window

ncurses_wattron

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattron — Turns on attributes for a window

Beschreibung

ncurses_wattron ( resource $window , int $attrs ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

attrs


Set the attributes for a window

  • « ncurses_wattron
  • ncurses_wborder »
  • PHP Manual
  • Ncurses Funktionen
  • Set the attributes for a window

ncurses_wattrset

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattrset — Set the attributes for a window

Beschreibung

ncurses_wattrset ( resource $window , int $attrs ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

attrs


Draws a border around the window using attributed characters

  • « ncurses_wattrset
  • ncurses_wclear »
  • PHP Manual
  • Ncurses Funktionen
  • Draws a border around the window using attributed characters

ncurses_wborder

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wborder — Draws a border around the window using attributed characters

Beschreibung

ncurses_wborder ( resource $window , int $left , int $right , int $top , int $bottom , int $tl_corner , int $tr_corner , int $bl_corner , int $br_corner ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Draws the specified lines and corners around the passed window.

Use ncurses_border() for borders around the main window.

Parameter-Liste

Each parameter expects 0 to draw a line and 1 to skip it.

window

The window on which we operate

left

right

top

bottom

tl_corner

Top left corner

tr_corner

Top right corner

bl_corner

Bottom left corner

br_corner

Bottom right corner

Siehe auch

  • ncurses_border() - Draw a border around the screen using attributed characters


Clears window

  • « ncurses_wborder
  • ncurses_wcolor_set »
  • PHP Manual
  • Ncurses Funktionen
  • Clears window

ncurses_wclear

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wclear — Clears window

Beschreibung

ncurses_wclear ( resource $window ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window


Sets windows color pairings

  • « ncurses_wclear
  • ncurses_werase »
  • PHP Manual
  • Ncurses Funktionen
  • Sets windows color pairings

ncurses_wcolor_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wcolor_set — Sets windows color pairings

Beschreibung

ncurses_wcolor_set ( resource $window , int $color_pair ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

color_pair


Erase window contents

  • « ncurses_wcolor_set
  • ncurses_wgetch »
  • PHP Manual
  • Ncurses Funktionen
  • Erase window contents

ncurses_werase

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_werase — Erase window contents

Beschreibung

ncurses_werase ( resource $window ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window


Reads a character from keyboard (window)

  • « ncurses_werase
  • ncurses_whline »
  • PHP Manual
  • Ncurses Funktionen
  • Reads a character from keyboard (window)

ncurses_wgetch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wgetch — Reads a character from keyboard (window)

Beschreibung

ncurses_wgetch ( resource $window ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window


Draws a horizontal line in a window at current position using an attributed character and max. n characters long

  • « ncurses_wgetch
  • ncurses_wmouse_trafo »
  • PHP Manual
  • Ncurses Funktionen
  • Draws a horizontal line in a window at current position using an attributed character and max. n characters long

ncurses_whline

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_whline — Draws a horizontal line in a window at current position using an attributed character and max. n characters long

Beschreibung

ncurses_whline ( resource $window , int $charattr , int $n ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

charattr

n


Transforms window/stdscr coordinates

  • « ncurses_whline
  • ncurses_wmove »
  • PHP Manual
  • Ncurses Funktionen
  • Transforms window/stdscr coordinates

ncurses_wmouse_trafo

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wmouse_trafo — Transforms window/stdscr coordinates

Beschreibung

ncurses_wmouse_trafo ( resource $window , int &$y , int &$x , bool $toscreen ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

x

y

toscreen


Moves windows output position

  • « ncurses_wmouse_trafo
  • ncurses_wnoutrefresh »
  • PHP Manual
  • Ncurses Funktionen
  • Moves windows output position

ncurses_wmove

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wmove — Moves windows output position

Beschreibung

ncurses_wmove ( resource $window , int $y , int $x ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

y

x


Copies window to virtual screen

  • « ncurses_wmove
  • ncurses_wrefresh »
  • PHP Manual
  • Ncurses Funktionen
  • Copies window to virtual screen

ncurses_wnoutrefresh

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wnoutrefresh — Copies window to virtual screen

Beschreibung

ncurses_wnoutrefresh ( resource $window ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window


Refresh window on terminal screen

  • « ncurses_wnoutrefresh
  • ncurses_wstandend »
  • PHP Manual
  • Ncurses Funktionen
  • Refresh window on terminal screen

ncurses_wrefresh

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wrefresh — Refresh window on terminal screen

Beschreibung

ncurses_wrefresh ( resource $window ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window


End standout mode for a window

  • « ncurses_wrefresh
  • ncurses_wstandout »
  • PHP Manual
  • Ncurses Funktionen
  • End standout mode for a window

ncurses_wstandend

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wstandend — End standout mode for a window

Beschreibung

ncurses_wstandend ( resource $window ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window


Enter standout mode for a window

  • « ncurses_wstandend
  • ncurses_wvline »
  • PHP Manual
  • Ncurses Funktionen
  • Enter standout mode for a window

ncurses_wstandout

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wstandout — Enter standout mode for a window

Beschreibung

ncurses_wstandout ( resource $window ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window


Draws a vertical line in a window at current position using an attributed character and max. n characters long

  • « ncurses_wstandout
  • Readline »
  • PHP Manual
  • Ncurses Funktionen
  • Draws a vertical line in a window at current position using an attributed character and max. n characters long

ncurses_wvline

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wvline — Draws a vertical line in a window at current position using an attributed character and max. n characters long

Beschreibung

ncurses_wvline ( resource $window , int $charattr , int $n ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

window

charattr

n


GNU Readline

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Readline-Funktionen
    • readline_add_history — Fügt eine Zeile zur History hinzu
    • readline_callback_handler_install — Initialisiert das readline-Callback-Interface und das Terminal, gibt den Prompt aus und springt direkt zurück
    • readline_callback_handler_remove — Entfernt den letztdefinierten Callbackhandler und setzt die Terminalumgebung auf die Ursprungswerte zurück
    • readline_callback_read_char — Liest ein Zeichen und informiert das readline-Callback-Interface, wenn die Eingabezeile abgeschlossen wurde
    • readline_clear_history — Löscht die History
    • readline_completion_function — Registriert eine Vervollständigungsfunktion
    • readline_info — Liest/Setzt verschiedene interne readline-Variablen
    • readline_list_history — Auflistung der History
    • readline_on_new_line — Informiert readline, dass der Cursor in eine neue Zeile bewegt wurde
    • readline_read_history — Liest die History
    • readline_redisplay — Zeichnet den Bildschirm neu
    • readline_write_history — Schreibt die History
    • readline — Liest eine Zeile


Einführung

Die readline-Funktionen implementieren eine Schnittstelle zur GNU-Readline-Bibliothek. Diese Funktionen bieten die Möglichkeit, Kommandozeilen zu editieren. Ein Beispiel für die Anwendung ist die Art und Weise, wie die Bash es erlaubt, die Pfeiltasten zu benutzen, um Schriftzeichen einzufügen oder durch die Kommando-History zu scrollen. Auf Grund des interaktiven Charakters dieser Bibliothek ist diese beim Programmieren von Webanwendungen von geringem Nutzen, kann aber nützlich sein, wenn Sie Skripte schreiben, die dafür gedacht sind, PHP von der Kommandozeile auszuführen.

Von PHP 7.1.0 wird diese Erweiterung unter Windows unterstützt.

Achtung

Die readline Extension ist nicht threadsicher! Daher wird von der Verwendung mit jeglicher threadsicheren SAPI (wie Apaches mod_winnt) unbedingt abgeraten.


Anforderungen

Möchten Sie die readline Funktionen nutzen, müssen Sie die libreadline-Bibliothek installieren. Die libreadline-Bibliothek finden Sie auf der Homepage des GNU-Readline-Projekts unter » http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. Dieses Projekt wird von Chet Ramey betreut, der auch der Author der Bash ist.

Sie können diese Funktionen auch mit der libedit-Bibliothek benutzen, die einen Ersatz für readline darstellt und nicht der GPL unterliegt. Die libedit-Bibliothek ist BSD-lizensiert und steht unter der Adresse » http://www.thrysoee.dk/editline/ zum Download bereit.


Installation

Um diese Funktionen benutzten zu können, müssen Sie die CLI- oder CGI-Version von PHP mit readline-Unterstützung kompilieren. Konfigurieren Sie PHP mit der Option --with-readline[=DIR]. Wenn Sie libedit als Ersatz für readline benutzen wollen, konfigurieren Sie PHP mit der Option --with-libedit[=DIR].

Unter Windows ist diese Extension von PHP 7.1.0 an standardmäßig verfügbar.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Readline Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
cli.pager | "" | PHP_INI_ALL | Verfügbar seit PHP 5.4.0.
cli.prompt | "\\b \\> " | PHP_INI_ALL | Verfügbar seit PHP 5.4.0.

Hier eine kurze Erklärung der Konfigurationsoptionen:

cli.pager string

Das externe Programm für die Ausgabe der Kommandozeile.

cli.prompt string

Die Eingabeaufforderung der Kommandozeile.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

READLINE_LIB (string)
Die Bibliothek, die für readline Unterstützung verwendet wird; zurzeit entweder readline oder libedit. Verfügbar von PHP 5.5.0 an.


Readline-Funktionen

Inhaltsverzeichnis

  • readline_add_history — Fügt eine Zeile zur History hinzu
  • readline_callback_handler_install — Initialisiert das readline-Callback-Interface und das Terminal, gibt den Prompt aus und springt direkt zurück
  • readline_callback_handler_remove — Entfernt den letztdefinierten Callbackhandler und setzt die Terminalumgebung auf die Ursprungswerte zurück
  • readline_callback_read_char — Liest ein Zeichen und informiert das readline-Callback-Interface, wenn die Eingabezeile abgeschlossen wurde
  • readline_clear_history — Löscht die History
  • readline_completion_function — Registriert eine Vervollständigungsfunktion
  • readline_info — Liest/Setzt verschiedene interne readline-Variablen
  • readline_list_history — Auflistung der History
  • readline_on_new_line — Informiert readline, dass der Cursor in eine neue Zeile bewegt wurde
  • readline_read_history — Liest die History
  • readline_redisplay — Zeichnet den Bildschirm neu
  • readline_write_history — Schreibt die History
  • readline — Liest eine Zeile


Fügt eine Zeile zur History hinzu

  • « Readline-Funktionen
  • readline_callback_handler_install »
  • PHP Manual
  • Readline-Funktionen
  • Fügt eine Zeile zur History hinzu

readline_add_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_add_history — Fügt eine Zeile zur History hinzu

Beschreibung

readline_add_history ( string $prompt ) : bool

Diese Funktion fügt eine Zeile zur Kommandozeilen-History hinzu.

Parameter-Liste

prompt

Die zur History hinzuzufügende Zeile.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Initialisiert das readline-Callback-Interface und das Terminal, gibt den Prompt aus und springt direkt zurück

  • « readline_add_history
  • readline_callback_handler_remove »
  • PHP Manual
  • Readline-Funktionen
  • Initialisiert das readline-Callback-Interface und das Terminal, gibt den Prompt aus und springt direkt zurück

readline_callback_handler_install

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_callback_handler_install — Initialisiert das readline-Callback-Interface und das Terminal, gibt den Prompt aus und springt direkt zurück

Beschreibung

readline_callback_handler_install ( string $prompt , callable $callback ) : bool

Initialisiert ein readline-Callback-Interface, gibt danach den prompt aus und springt direkt zurück. Der doppelte Aufruf der Funktion ohne Zurücksetzen des verwendeten Callback-Interfaces wird automatisch und in geeigneter Weise das alte Interface überschreiben.

Die Callback-Fähigkeiten sind hilfreich, wenn sie mit stream_select() kombiniert werden, da dies eine Verschränkung von IO und Benutzereingaben wie mittels readline() ermöglicht.

Parameter-Liste

prompt

Die Prompt-Message.

callback

Die callback-Funktion benötigt einen Parameter; die Benutzereingabe wird zurückgegeben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Readline-Callback-Interface-Beispiel

<?php
function rl_callback($ret)
{
    global $c, $prompting;

    echo "Sie haben eingegeben: $ret\n";
    $c++;

    if ($c > 10) {
        $prompting = false;
        readline_callback_handler_remove();
    } else {
        readline_callback_handler_install("[$c] Geben Sie etwas ein: ", 'rl_callback');
    }
}

$c = 1;
$prompting = true;

readline_callback_handler_install("[$c] Geben Sie etwas ein: ", 'rl_callback');

while ($prompting) {
    $w = NULL;
    $e = NULL;
    $n = stream_select($r = array(STDIN), $w, $e, null);
    if ($n && in_array(STDIN, $r)) {
        // Liest das aktuelle Zeichen und ruft die Callbackfunktion auf, wenn ein
        // Newline-Zeichen eingegeben wurde
        readline_callback_read_char();
    }
}

echo "Eingabe deaktiviert. Komplett ausgeführt.\n";
?>

Siehe auch

  • readline_callback_handler_remove() - Entfernt den letztdefinierten Callbackhandler und setzt die Terminalumgebung auf die Ursprungswerte zurück
  • readline_callback_read_char() - Liest ein Zeichen und informiert das readline-Callback-Interface, wenn die Eingabezeile abgeschlossen wurde
  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec


Entfernt den letztdefinierten Callbackhandler und setzt die Terminalumgebung auf die Ursprungswerte zurück

  • « readline_callback_handler_install
  • readline_callback_read_char »
  • PHP Manual
  • Readline-Funktionen
  • Entfernt den letztdefinierten Callbackhandler und setzt die Terminalumgebung auf die Ursprungswerte zurück

readline_callback_handler_remove

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_callback_handler_remove — Entfernt den letztdefinierten Callbackhandler und setzt die Terminalumgebung auf die Ursprungswerte zurück

Beschreibung

readline_callback_handler_remove ( ) : bool

Entfernt den letztdefinierten Callbackhandler und setzt die Terminalumgebung auf die Ursprungswerte zurück.

Rückgabewerte

Gibt true zurück, wenn der letztdefinierte Callbackhandler zurückgesetzt wurde; falls dieser nicht gefunden wurde, wird false zurückgegeben.

Beispiele

Werfen Sie auch einen Blick auf die Dokumentation der Funktion readline_callback_handler_install(), dort finden Sie ein Beispiel zur Verwendung des readline-Callback-Interfaces.

Siehe auch

  • readline_callback_handler_install() - Initialisiert das readline-Callback-Interface und das Terminal, gibt den Prompt aus und springt direkt zurück
  • readline_callback_read_char() - Liest ein Zeichen und informiert das readline-Callback-Interface, wenn die Eingabezeile abgeschlossen wurde


Liest ein Zeichen und informiert das readline-Callback-Interface, wenn die Eingabezeile abgeschlossen wurde

  • « readline_callback_handler_remove
  • readline_clear_history »
  • PHP Manual
  • Readline-Funktionen
  • Liest ein Zeichen und informiert das readline-Callback-Interface, wenn die Eingabezeile abgeschlossen wurde

readline_callback_read_char

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_callback_read_char — Liest ein Zeichen und informiert das readline-Callback-Interface, wenn die Eingabezeile abgeschlossen wurde

Beschreibung

readline_callback_read_char ( ) : void

Liest ein Zeichen der Benutzereingabe ein. Wenn eine Eingabezeile abgeschlossen ist, informiert diese Funktion das readline-Callback-Interface, das mittels readline_callback_handler_install()

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Werfen Sie auch einen Blick auf die Dokumentation der Funktion readline_callback_handler_install(), dort finden Sie ein Beispiel zur Verwendung des readline-Callback-Interfaces.

Siehe auch

  • readline_callback_handler_install() - Initialisiert das readline-Callback-Interface und das Terminal, gibt den Prompt aus und springt direkt zurück
  • readline_callback_handler_remove() - Entfernt den letztdefinierten Callbackhandler und setzt die Terminalumgebung auf die Ursprungswerte zurück


Löscht die History

  • « readline_callback_read_char
  • readline_completion_function »
  • PHP Manual
  • Readline-Funktionen
  • Löscht die History

readline_clear_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_clear_history — Löscht die History

Beschreibung

readline_clear_history ( ) : bool

Diese Funktion löscht die gesamte Kommandozeilen-History.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Registriert eine Vervollständigungsfunktion

  • « readline_clear_history
  • readline_info »
  • PHP Manual
  • Readline-Funktionen
  • Registriert eine Vervollständigungsfunktion

readline_completion_function

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_completion_function — Registriert eine Vervollständigungsfunktion

Beschreibung

readline_completion_function ( callable $callback ) : bool

Diese Funktion registriert eine Vervollständigungsfunktion. Das ist die gleiche Art von Funktionalität, die sie erhalten, wenn Sie die Tab-Taste benutzen, während Sie in der Bash arbeiten.

Parameter-Liste

callback

Sie müssen den Namen einer existierenden Funktion angeben, die einen Teil einer Kommandozeile akzeptiert und ein Array möglicher Übereinstimmungen zurückgibt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Liest/Setzt verschiedene interne readline-Variablen

  • « readline_completion_function
  • readline_list_history »
  • PHP Manual
  • Readline-Funktionen
  • Liest/Setzt verschiedene interne readline-Variablen

readline_info

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_info — Liest/Setzt verschiedene interne readline-Variablen

Beschreibung

readline_info ( string|null $var_name = null , int|string|bool|null $value = null ) : mixed

Liest/Setzt verschiedene interne readline-Variablen.

Parameter-Liste

var_name

Ein Variablenname.

value

Sofern unterstützt, entspricht der Parameter dem neuen gesetzten Wert.

Rückgabewerte

Wenn diese Funktion ohne Parameter aufgerufen wird, gibt sie ein Array von Werten für alle Einstellungen zurück, die readline benutzen. Die Elemente werden durch die folgenden Werte indiziert: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name und terminal_name.

Wird die Funktion mit einem oder zwei Parametern aufgerufen, wird der alte Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | var_name und value sind nun Nullable-Typen.


Auflistung der History

  • « readline_info
  • readline_on_new_line »
  • PHP Manual
  • Readline-Funktionen
  • Auflistung der History

readline_list_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_list_history — Auflistung der History

Beschreibung

readline_list_history ( ) : array

Gibt die vollständige Kommandozeilen-History zurück.

Rückgabewerte

Diese Funktion gibt ein Array der gesamten Kommandozeilen-History zurück. Die Elemente sind numerisch indiziert, beginnend bei Null.


Informiert readline, dass der Cursor in eine neue Zeile bewegt wurde

  • « readline_list_history
  • readline_read_history »
  • PHP Manual
  • Readline-Funktionen
  • Informiert readline, dass der Cursor in eine neue Zeile bewegt wurde

readline_on_new_line

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_on_new_line — Informiert readline, dass der Cursor in eine neue Zeile bewegt wurde

Beschreibung

readline_on_new_line ( ) : void

Informiert readline, dass der Cursor in eine neue Zeile bewegt wurde.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Liest die History

  • « readline_on_new_line
  • readline_redisplay »
  • PHP Manual
  • Readline-Funktionen
  • Liest die History

readline_read_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_read_history — Liest die History

Beschreibung

readline_read_history ( string|null $filename = null ) : bool

Diese Funktion liest eine Kommandozeilen-History aus einer Datei.

Parameter-Liste

filename

Pfad zur Datei, die die Kommandozeilen-History enthält.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | filename ist nun ein Nullable-Typ.


Zeichnet den Bildschirm neu

  • « readline_read_history
  • readline_write_history »
  • PHP Manual
  • Readline-Funktionen
  • Zeichnet den Bildschirm neu

readline_redisplay

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_redisplay — Zeichnet den Bildschirm neu

Beschreibung

readline_redisplay ( ) : void

Zeichnet die Eingabezeile neu um den Bildschirm neu aufzubauen.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Schreibt die History

  • « readline_redisplay
  • readline »
  • PHP Manual
  • Readline-Funktionen
  • Schreibt die History

readline_write_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_write_history — Schreibt die History

Beschreibung

readline_write_history ( string|null $filename = null ) : bool

Diese Funktion schreibt die Kommandozeilen-History in eine Datei.

Parameter-Liste

filename

Pfad zur Datei, in der gespeichert werden soll.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | filename ist nun ein Nullable-Typ.


Liest eine Zeile

  • « readline_write_history
  • Erweiterungen zur Datenkompression und Archivierung »
  • PHP Manual
  • Readline-Funktionen
  • Liest eine Zeile

readline

(PHP 4, PHP 5, PHP 7, PHP 8)

readline — Liest eine Zeile

Beschreibung

readline ( string|null $prompt = null ) : string|false

Liest eine einzelne Zeile vom Benutzer ein. Sie müssen diese Zeile selbst mittels readline_add_history() zur History hinzufügen.

Parameter-Liste

prompt

Sie können eine Zeichenkette angeben, mit dem Sie den Benutzer zur Eingabe auffordern.

Rückgabewerte

Gibt eine einzelne Zeile des Benutzers zurück. Der Zeile, die zurückgegeben wird, fehlt das abschließende Zeichen für einen Zeilenvorschub. Können keine weiteren Daten gelesen werden, wird false zurückgegeben.

Beispiele

Beispiel #1 readline()-Beispiel

<?php
// Drei Kommandos vom Benutzer abfragen
for ($i=0; $i < 3; $i++) {
        $line = readline("Command: ");
        readline_add_history($line);
}

// History ausgeben
print_r(readline_list_history());

// Variablen ausgeben
print_r(readline_info());
?>


Erweiterungen zur Datenkompression und Archivierung

  • Bzip2
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Bzip2 Funktionen
  • LZF
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • LZF Funktionen
  • Phar
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Using Phar Archives
    • Creating Phar Archives
    • What makes a phar a phar and not a tar or a zip?
    • Phar — Die Phar Klasse
    • PharData — The PharData class
    • PharFileInfo — The PharFileInfo class
    • PharException — The PharException class
  • Rar — Rar Archiving
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • RAR Funktionen
    • RarArchive — The RarArchive class
    • RarEntry — The RarEntry class
    • RarException — The RarException class
  • Zip
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • ZipArchive — Die ZipArchive Klasse
    • Zip Funktionen
  • Zlib — Zlib-Komprimierung
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Zlib-Funktionen
    • DeflateContext — The DeflateContext class
    • InflateContext — The InflateContext class


Bzip2

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Bzip2 Funktionen
    • bzclose — Schließt eine bzip2-Datei
    • bzcompress — Komprimiert eine Zeichenkette in bzip2-encodierte Daten
    • bzdecompress — Dekomprimiert bzip2-kodierte Daten
    • bzerrno — Gibt eine bzip2-Fehlernummer zurück
    • bzerror — Gibt die bzip2-Fehlernummer und die -Fehlermeldung in einem Array zurück
    • bzerrstr — Gibt eine bzip2-Fehlermeldung zurÃ¼ck
    • bzflush — Erzwingt das Schreiben aller gepufferten Daten
    • bzopen — Öffnet eine bzip2-komprimierte Datei
    • bzread — Binär-sicheres Lesen aus einer bzip2-Datei
    • bzwrite — Binär-sicheres Schreiben einer bzip2-Datei


Einführung

Die bzip2-Funktionen werden benutzt, um transparent bzip2 (.bz2)-komprimierte Dateien lesen und schreiben zu können.


Anforderungen

Dieses Module nutzt die Funktionen der » bzip2-Bibliothek von Julian Seward. Dabei benötigt das Modul eine Version der bzip2/libbzip2 >= 1.0.x.


Installation

Die Bzip2-Unterstützung ist in PHP nicht standardmäßig aktiviert. Es ist erforderlich, die Option --with-bz2[=DIR] beim Kompilieren von PHP anzugeben.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

This extension defines one resource type: a file pointer identifying the bz2-file to work on.


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • Bzip2
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Beispiele

Dieses Beispiel öffnet eine temporäre Datei und schreibt einen Teststring in diese, danach wird der Inhalt der Datei ausgegeben.

Beispiel #1 Ein kleines bzip2()-Beispiel

<?php

$filename = "/tmp/testfile.bz2";
$str = "Das ist ein Test.\n";

// Datei zum Schreiben öffnen
$bz = bzopen($filename, "w");

// Zeichenkette in Datei schreiben
bzwrite($bz, $str);

// Datei schließen
bzclose($bz);

// Datei zum Lesen öffnen
$bz = bzopen($filename, "r");

// 10 Zeichen lesen
echo bzread($bz, 10);

/* Ausgabe bis zum Dateiende (oder der nächsten 1024 Zeichen) und schließen
der Datei. */
echo bzread($bz);

bzclose($bz);

?>


Bzip2 Funktionen

Inhaltsverzeichnis

  • bzclose — Schließt eine bzip2-Datei
  • bzcompress — Komprimiert eine Zeichenkette in bzip2-encodierte Daten
  • bzdecompress — Dekomprimiert bzip2-kodierte Daten
  • bzerrno — Gibt eine bzip2-Fehlernummer zurück
  • bzerror — Gibt die bzip2-Fehlernummer und die -Fehlermeldung in einem Array zurück
  • bzerrstr — Gibt eine bzip2-Fehlermeldung zurÃ¼ck
  • bzflush — Erzwingt das Schreiben aller gepufferten Daten
  • bzopen — Öffnet eine bzip2-komprimierte Datei
  • bzread — Binär-sicheres Lesen aus einer bzip2-Datei
  • bzwrite — Binär-sicheres Schreiben einer bzip2-Datei


Schließt eine bzip2-Datei

  • « Bzip2 Funktionen
  • bzcompress »
  • PHP Manual
  • Bzip2 Funktionen
  • Schließt eine bzip2-Datei

bzclose

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzclose — Schließt eine bzip2-Datei

Beschreibung

bzclose ( resource $bz ) : bool

Schließt die vom übergebenen Dateizeiger bezeichnete bzip2-Datei.

Parameter-Liste

bz

Der Dateizeiger. Dieser muss eine valide Ressource sein und muss auf eine Datei zeigen, die erfolgreich mittels bzopen() geöffnet wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • bzopen() - Öffnet eine bzip2-komprimierte Datei


Komprimiert eine Zeichenkette in bzip2-encodierte Daten

  • « bzclose
  • bzdecompress »
  • PHP Manual
  • Bzip2 Funktionen
  • Komprimiert eine Zeichenkette in bzip2-encodierte Daten

bzcompress

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzcompress — Komprimiert eine Zeichenkette in bzip2-encodierte Daten

Beschreibung

bzcompress ( string $source , int $blocksize = 4 , int $workfactor = 0 ) : mixed

bzcompress() komprimiert den übergebenen String und gibt ihn als bzip2-komprimierte Daten zurück.

Parameter-Liste

source

Die zu komprimierende Zeichenkette.

blocksize

Spezifiziert die Blockgröße während der Komprierung und darf zwischen 1 und 9 liegen. 9 ist dabei die beste Komprimierung, die allerdings mehr Ressourcen benötigt.

workfactor

Bestimmt, wie die Funktion sich im schlimmsten Fall, sich stark wiederholender Eingabedaten, verhält. Der Wert darf zwischen 0 und 250 liegen, wobei 0 ein spezieller Wert ist.

Unabhängig vom workfactor-Parameter wird die generierte Ausgabe stets gleich bleiben.

Rückgabewerte

Die komprimierte Zeichenkette oder die Fehlernummer im Falle eines Fehlers.

Beispiele

Beispiel #1 Komprimierung von Daten

<?php
$str = "sample data";
$bzstr = bzcompress($str, 9);
echo $bzstr;
?>

Siehe auch

  • bzdecompress() - Dekomprimiert bzip2-kodierte Daten


Dekomprimiert bzip2-kodierte Daten

  • « bzcompress
  • bzerrno »
  • PHP Manual
  • Bzip2 Funktionen
  • Dekomprimiert bzip2-kodierte Daten

bzdecompress

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzdecompress — Dekomprimiert bzip2-kodierte Daten

Beschreibung

bzdecompress ( string $source , int $small = 0 ) : mixed

bzdecompress() dekomprimiert die übergebene Zeichenkette, die bzip2-kodierte Daten enthält.

Parameter-Liste

source

Zu dekomprimierende Zeichenkette

small

Wenn true, wird ein alternativer Dekompressionsalgorithmus verwendet, der weniger Speicher benötigt. Es werden dann nur maximal etwa 2300K benötigt, allerdings findet die Dekompression nur mit etwa halber Geschwindigkeit statt.

Weitere Details finden sich in der » bzip2-Dokumentation.

Rückgabewerte

Die dekomprimierte Zeichenkette oder Fehlernummer im Falle eines Fehlers.

Beispiele

Beispiel #1 Dekomprimieren einer Zeichenkette

<?php
$start_str = "Ist dies nicht ein ernstes Gesicht?";
$bzstr = bzcompress($start_str);

echo "Komprimierte Zeichenkette: ";
echo $bzstr;
echo "\n<br />\n";

$str = bzdecompress($bzstr);
echo "Dekomprimierte Zeichenkette: ";
echo $str;
echo "\n<br />\n";
?>

Siehe auch

  • bzcompress() - Komprimiert eine Zeichenkette in bzip2-encodierte Daten


Gibt eine bzip2-Fehlernummer zurück

  • « bzdecompress
  • bzerror »
  • PHP Manual
  • Bzip2 Funktionen
  • Gibt eine bzip2-Fehlernummer zurück

bzerrno

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzerrno — Gibt eine bzip2-Fehlernummer zurück

Beschreibung

bzerrno ( resource $bz ) : int

Gibt die Fehlernummer eines beliebigen bzip2-Fehlers, der von übergebenen Dateizeiger zurückgegeben wird.

Parameter-Liste

bz

Zeiger auf eine erfolgreich mittels bzopen() geöffnete Datei.

Rückgabewerte

Gibt die Fehlernummer als Integer zurück.

Siehe auch

  • bzerror() - Gibt die bzip2-Fehlernummer und die -Fehlermeldung in einem Array zurück
  • bzerrstr() - Gibt eine bzip2-Fehlermeldung zurÃ¼ck


Gibt die bzip2-Fehlernummer und die -Fehlermeldung in einem Array zurück

  • « bzerrno
  • bzerrstr »
  • PHP Manual
  • Bzip2 Funktionen
  • Gibt die bzip2-Fehlernummer und die -Fehlermeldung in einem Array zurück

bzerror

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzerror — Gibt die bzip2-Fehlernummer und die -Fehlermeldung in einem Array zurück

Beschreibung

bzerror ( resource $bz ) : array

Gibt die Fehlernummer und die Fehlermeldung eines beliebigen vom gegebenen Dateizeiger gelieferten bzip2-Fehlers zurück.

Parameter-Liste

bz

Zeiger auf eine erfolgreich mittels bzopen() geöffnete Datei.

Rückgabewerte

Gibt ein assoziatives Array zurück, das die Fehlernummer im errno-Eintrag und die Fehlermeldung im errstr-Eintrag enthält.

Beispiele

Beispiel #1 bzerror()-Beispiel

<?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

Siehe auch

  • bzerrno() - Gibt eine bzip2-Fehlernummer zurück
  • bzerrstr() - Gibt eine bzip2-Fehlermeldung zurÃ¼ck


Gibt eine bzip2-Fehlermeldung zurÃ¼ck

  • « bzerror
  • bzflush »
  • PHP Manual
  • Bzip2 Funktionen
  • Gibt eine bzip2-Fehlermeldung zurÃ¼ck

bzerrstr

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzerrstr — Gibt eine bzip2-Fehlermeldung zurÃ¼ck

Beschreibung

bzerrstr ( resource $bz ) : string

Gibt die Fehlermeldung eines bzip2-Fehlers zurÃ¼ck, der vom gegebenen Dateizeiger zurÃ¼ckgegeben wird.

Parameter-Liste

bz

Zeiger auf eine erfolgreich mittels bzopen() geÃ¶ffnete Datei.

Rückgabewerte

Gibt eine Zeichenkette mit der Fehlermeldung zurÃ¼ck.

Siehe auch

  • bzerrno() - Gibt eine bzip2-Fehlernummer zurück
  • bzerror() - Gibt die bzip2-Fehlernummer und die -Fehlermeldung in einem Array zurück


Erzwingt das Schreiben aller gepufferten Daten

  • « bzerrstr
  • bzopen »
  • PHP Manual
  • Bzip2 Funktionen
  • Erzwingt das Schreiben aller gepufferten Daten

bzflush

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzflush — Erzwingt das Schreiben aller gepufferten Daten

Beschreibung

bzflush ( resource $bz ) : bool

Erzwingt das Schreiben aller gepufferten bzip2-Daten für den Dateizeiger bz.

Parameter-Liste

bz

Zeiger auf eine erfolgreich mittels bzopen() geöffnete Datei.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • bzread() - Binär-sicheres Lesen aus einer bzip2-Datei
  • bzwrite() - Binär-sicheres Schreiben einer bzip2-Datei


Öffnet eine bzip2-komprimierte Datei

  • « bzflush
  • bzread »
  • PHP Manual
  • Bzip2 Funktionen
  • Öffnet eine bzip2-komprimierte Datei

bzopen

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzopen — Öffnet eine bzip2-komprimierte Datei

Beschreibung

bzopen ( string $file , string $mode ) : resource

Öffnet eine bzip2-Datei (.bz2) zum Lesen oder Schreiben.

Parameter-Liste

file

Name der zu öffnenden Datei, oder eine bestehende Stream-Ressource.

mode

Die Modi 'r' und 'w' werden unterstützt. Andere Werte führen dazu, daß bzopen false zurückgibt.

Rückgabewerte

Wenn das Öffnen fehlschlägt, gibt bzopen() false zurück, andernfalls wird ein Zeiger auf die geöffnete Datei zurückgegeben.

Beispiele

Beispiel #1 bzopen()-Beispiel

<?php

$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("$file konnte nicht zum Lesen geöffnet werden");

bzclose($bz);

?>

Siehe auch

  • bzclose() - Schließt eine bzip2-Datei


Binär-sicheres Lesen aus einer bzip2-Datei

  • « bzopen
  • bzwrite »
  • PHP Manual
  • Bzip2 Funktionen
  • Binär-sicheres Lesen aus einer bzip2-Datei

bzread

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzread — Binär-sicheres Lesen aus einer bzip2-Datei

Beschreibung

bzread ( resource $bz , int $length = 1024 ) : string

bzread() liest Daten vom übergebenen bzip2-Dateizeiger.

Das Lesen wird beendet, wenn length (unkomprimierte) Bytes gelesen wurden oder das Ende der Datei (EOF) erreicht ist, je nachdem, welcher Fall zuerst auftritt.

Parameter-Liste

bz

Der Dateizeiger. Es muss ein valider Zeiger sein und auf eine Datei zeigen, die erfolgreich mittels bzopen() geöffnet wurde.

length

Wenn nichts angegeben ist, liest bzread() 1024 (unkomprimierte) Bytes auf einmal. Maximal 8192 unkomprimierte Bytes können auf einmal gelesen werden.

Rückgabewerte

Gibt die unkomprimierten Daten oder im Fehlerfall false zurück.

Beispiele

Beispiel #1 bzread()-Beispiel

<?php

$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Konnte $file nicht öffnen");

$decompressed_file = '';
while (!feof($bz)) {
  $decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);

echo "Der Inhalt von $file ist: <br />\n";
echo $decompressed_file;

?>

Siehe auch

  • bzwrite() - Binär-sicheres Schreiben einer bzip2-Datei
  • feof() - Prüft, ob ein Dateizeiger am Ende der Datei steht
  • bzopen() - Öffnet eine bzip2-komprimierte Datei


Binär-sicheres Schreiben einer bzip2-Datei

  • « bzread
  • LZF »
  • PHP Manual
  • Bzip2 Funktionen
  • Binär-sicheres Schreiben einer bzip2-Datei

bzwrite

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzwrite — Binär-sicheres Schreiben einer bzip2-Datei

Beschreibung

bzwrite ( resource $bz , string $data , int $length = ? ) : int

bzwrite() schreibt eine Zeichenkette in den übergebenen bzip2-Dateistream.

Parameter-Liste

bz

Der Dateizeiger. Muss gültig sein und auf eine erfolgreich von bzopen() geöffnete Datei zeigen.

data

Die zu schreibenden Daten.

length

Wird dieser Parameter übergeben, stoppt das Schreiben nach length (unkomprimiert) geschriebenen Bytes oder wenn alle Bytes aus data geschrieben wurden, je nachdem, welcher Fall zuerst auftritt.

Rückgabewerte

Gibt die Anzahl der geschriebenen Bytes bzw. false im Falle eines Fehlers zurück.

Beispiele

Beispiel #1 bzwrite()-Beispiel

<?php
$str = "uncompressed data";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

Siehe auch

  • bzread() - Binär-sicheres Lesen aus einer bzip2-Datei
  • bzopen() - Öffnet eine bzip2-komprimierte Datei


LZF

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • LZF Funktionen
    • lzf_compress — LZF compression
    • lzf_decompress — LZF decompression
    • lzf_optimized_for — Determines what LZF extension was optimized for


Einführung

LZF is a very fast compression algorithm, ideal for saving space with only slight speed cost. It can be optimized for speed or space at the time of compilation. This extension is using » liblzf library by Marc Lehmann for its operations.


Installation

Diese » PECL-Extension ist nicht Teil von PHP. Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/lzf.

In order to use these functions you must compile PHP with lzf support by using the --with-lzf[=DIR] configure option. You may also pass --enable-lzf-better-compression to optimize LZF for space rather than speed.

Windows users will enable php_lzf.dll inside of php.ini in order to use these functions. Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


  • « Ressource-Typen
  • LZF Funktionen »
  • PHP Manual
  • LZF
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


LZF Funktionen

Inhaltsverzeichnis

  • lzf_compress — LZF compression
  • lzf_decompress — LZF decompression
  • lzf_optimized_for — Determines what LZF extension was optimized for


LZF compression

  • « LZF Funktionen
  • lzf_decompress »
  • PHP Manual
  • LZF Funktionen
  • LZF compression

lzf_compress

(PECL lzf >= 0.1.0)

lzf_compress — LZF compression

Beschreibung

lzf_compress ( string $data ) : string

lzf_compress() compresses the given data string using LZF encoding.

Parameter-Liste

data

The string to compress.

Rückgabewerte

Returns the compressed data or false if an error occurred.

Siehe auch

  • lzf_decompress() - LZF decompression


LZF decompression

  • « lzf_compress
  • lzf_optimized_for »
  • PHP Manual
  • LZF Funktionen
  • LZF decompression

lzf_decompress

(PECL lzf >= 0.1.0)

lzf_decompress — LZF decompression

Beschreibung

lzf_decompress ( string $data ) : string

lzf_compress() decompresses the given data string containing lzf encoded data.

Parameter-Liste

data

The compressed string.

Rückgabewerte

Returns the decompressed data or false if an error occurred.

Siehe auch

  • lzf_compress() - LZF compression


Determines what LZF extension was optimized for

  • « lzf_decompress
  • Phar »
  • PHP Manual
  • LZF Funktionen
  • Determines what LZF extension was optimized for

lzf_optimized_for

(PECL lzf >= 1.0.0)

lzf_optimized_for — Determines what LZF extension was optimized for

Beschreibung

lzf_optimized_for ( ) : int

Determines what was LZF extension optimized for during compilation.

Rückgabewerte

Returns 1 if LZF was optimized for speed, 0 for compression.


Phar

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Using Phar Archives
    • Using Phar Archives: Introduction
    • Using Phar Archives: the phar stream wrapper
    • Using Phar Archives: the Phar and PharData class
  • Creating Phar Archives
    • Creating Phar Archives: Introduction
  • What makes a phar a phar and not a tar or a zip?
    • Ingredients of all Phar archives, independent of file format
    • Phar file stub
    • Head-to-head comparison of Phar, Tar and Zip
    • Tar-based phars
    • Zip-based phars
    • Phar File Format
    • Global Phar bitmapped flags
    • Phar manifest file entry definition
    • Phar Signature format
  • Phar — Die Phar Klasse
    • Phar::addEmptyDir — Add an empty directory to the phar archive
    • Phar::addFile — Add a file from the filesystem to the phar archive
    • Phar::addFromString — Add a file from a string to the phar archive
    • Phar::apiVersion — Returns the api version
    • Phar::buildFromDirectory — Construct a phar archive from the files within a directory
    • Phar::buildFromIterator — Construct a phar archive from an iterator
    • Phar::canCompress — Returns whether phar extension supports compression using either zlib or bzip2
    • Phar::canWrite — Returns whether phar extension supports writing and creating phars
    • Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression
    • Phar::compressFiles — Compresses all files in the current Phar archive
    • Phar::__construct — Construct a Phar archive object
    • Phar::convertToData — Convert a phar archive to a non-executable tar or zip file
    • Phar::convertToExecutable — Convert a phar archive to another executable phar archive file format
    • Phar::copy — Copy a file internal to the phar archive to another new file within the phar
    • Phar::count — Returns the number of entries (files) in the Phar archive
    • Phar::createDefaultStub — Create a phar-file format specific stub
    • Phar::decompress — Decompresses the entire Phar archive
    • Phar::decompressFiles — Decompresses all files in the current Phar archive
    • Phar::delMetadata — Deletes the global metadata of the phar
    • Phar::delete — Delete a file within a phar archive
    • Phar::extractTo — Extract the contents of a phar archive to a directory
    • Phar::getAlias — Get the alias for Phar
    • Phar::getMetadata — Returns phar archive meta-data
    • Phar::getModified — Return whether phar was modified
    • Phar::getPath — Get the real path to the Phar archive on disk
    • Phar::getSignature — Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
    • Phar::getStub — Return the PHP loader or bootstrap stub of a Phar archive
    • Phar::getSupportedCompression — Return array of supported compression algorithms
    • Phar::getSupportedSignatures — Return array of supported signature types
    • Phar::getVersion — Return version info of Phar archive
    • Phar::hasMetadata — Returns whether phar has global meta-data
    • Phar::interceptFileFuncs — Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
    • Phar::isBuffering — Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
    • Phar::isCompressed — Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
    • Phar::isFileFormat — Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
    • Phar::isValidPharFilename — Returns whether the given filename is a valid phar filename
    • Phar::isWritable — Returns true if the phar archive can be modified
    • Phar::loadPhar — Loads any phar archive with an alias
    • Phar::mapPhar — Reads the currently executed file (a phar) and registers its manifest
    • Phar::mount — Mount an external path or file to a virtual location within the phar archive
    • Phar::mungServer — Defines a list of up to 4 $_SERVER variables that should be modified for execution
    • Phar::offsetExists — Determines whether a file exists in the phar
    • Phar::offsetGet — Gets a PharFileInfo object for a specific file
    • Phar::offsetSet — Set the contents of an internal file to those of an external file
    • Phar::offsetUnset — Remove a file from a phar
    • Phar::running — Returns the full path on disk or full phar URL to the currently executing Phar archive
    • Phar::setAlias — Set the alias for the Phar archive
    • Phar::setDefaultStub — Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
    • Phar::setMetadata — Sets phar archive meta-data
    • Phar::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it
    • Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive
    • Phar::startBuffering — Start buffering Phar write operations, do not modify the Phar object on disk
    • Phar::stopBuffering — Stop buffering write requests to the Phar archive, and save changes to disk
    • Phar::unlinkArchive — Completely remove a phar archive from disk and from memory
    • Phar::webPhar — mapPhar for web-based phars. front controller for web applications
  • PharData — The PharData class
    • PharData::addEmptyDir — Add an empty directory to the tar/zip archive
    • PharData::addFile — Add a file from the filesystem to the tar/zip archive
    • PharData::addFromString — Add a file from the filesystem to the tar/zip archive
    • PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory
    • PharData::buildFromIterator — Construct a tar or zip archive from an iterator
    • PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression
    • PharData::compressFiles — Compresses all files in the current tar/zip archive
    • PharData::__construct — Construct a non-executable tar or zip archive object
    • PharData::convertToData — Convert a phar archive to a non-executable tar or zip file
    • PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive
    • PharData::copy — Copy a file internal to the phar archive to another new file within the phar
    • PharData::decompress — Decompresses the entire Phar archive
    • PharData::decompressFiles — Decompresses all files in the current zip archive
    • PharData::delMetadata — Deletes the global metadata of a zip archive
    • PharData::delete — Delete a file within a tar/zip archive
    • PharData::extractTo — Extract the contents of a tar/zip archive to a directory
    • PharData::isWritable — Returns true if the tar/zip archive can be modified
    • PharData::offsetSet — Set the contents of a file within the tar/zip to those of an external file or string
    • PharData::offsetUnset — Remove a file from a tar/zip archive
    • PharData::setAlias — Dummy function (Phar::setAlias is not valid for PharData)
    • PharData::setDefaultStub — Dummy function (Phar::setDefaultStub is not valid for PharData)
    • PharData::setMetadata — Sets phar archive meta-data
    • PharData::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it
    • PharData::setStub — Dummy function (Phar::setStub is not valid for PharData)
  • PharFileInfo — The PharFileInfo class
    • PharFileInfo::chmod — Sets file-specific permission bits
    • PharFileInfo::compress — Compresses the current Phar entry with either zlib or bzip2 compression
    • PharFileInfo::__construct — Construct a Phar entry object
    • PharFileInfo::decompress — Decompresses the current Phar entry within the phar
    • PharFileInfo::delMetadata — Deletes the metadata of the entry
    • PharFileInfo::getCRC32 — Returns CRC32 code or throws an exception if CRC has not been verified
    • PharFileInfo::getCompressedSize — Returns the actual size of the file (with compression) inside the Phar archive
    • PharFileInfo::getContent — Get the complete file contents of the entry
    • PharFileInfo::getMetadata — Returns file-specific meta-data saved with a file
    • PharFileInfo::getPharFlags — Returns the Phar file entry flags
    • PharFileInfo::hasMetadata — Returns the metadata of the entry
    • PharFileInfo::isCRCChecked — Returns whether file entry has had its CRC verified
    • PharFileInfo::isCompressed — Returns whether the entry is compressed
    • PharFileInfo::setMetadata — Sets file-specific meta-data saved with a file
  • PharException — The PharException class


Einführung

The phar extension provides a way to put entire PHP applications into a single file called a "phar" (PHP Archive) for easy distribution and installation. In addition to providing this service, the phar extension also provides a file-format abstraction method for creating and manipulating tar and zip files through the PharData class, much as PDO provides a unified interface for accessing different databases. Unlike PDO, which cannot convert between different databases, Phar also can convert between tar, zip and phar file formats with a single line of code. see Phar::convertToExecutable() for one example.

What is phar? Phar archives are best characterized as a convenient way to group several files into a single file. As such, a phar archive provides a way to distribute a complete PHP application in a single file and run it from that file without the need to extract it to disk. Additionally, phar archives can be executed by PHP as easily as any other file, both on the commandline and from a web server. Phar is kind of like a thumb drive for PHP applications.

Phar implements this functionality through a Stream Wrapper. Normally, to use an external file within a PHP script, you would use include

Beispiel #1 Using an external file

<?php
 include '/path/to/external/file.php';
 ?>

PHP can be thought of as actually translating /path/to/external/file.php into a stream wrapper as file:///path/to/external/file.php, and under the hood it does in fact use the plain file stream wrapper stream functions to access all local files.

To use a file named file.php contained with a phar archive /path/to/myphar.phar, the syntax is very similar to the file:// syntax above.

Beispiel #2 Using a file within a phar archive

<?php
 include 'phar:///path/to/myphar.phar/file.php';
 ?>

In fact, one can treat a phar archive exactly as if it were an external disk, using any of fopen()-related functions, opendir() and mkdir()-related functions to read, change, or create new files and directories within the phar archive. This allows complete PHP applications to be distributed in a single file and run directly from that file.

The most common usage for a phar archive is to distribute a complete application in a single file. For instance, the PEAR Installer that is bundled with PHP versions is distributed as a phar archive. To use a phar archive distributed in this way, the archive can be executed on the command-line or via a web server.

Phar archives can be distributed as tar archives, zip archives, or as the custom phar file format designed specifically for the phar extension. Each file format has advantages and disadvantages. The tar and zip file formats can be read or extracted by any third-party tool that can read the format, but require the phar extension in order to run with PHP. The phar file format is customized and unique to the phar extension, and can only be created by the phar extension or the PEAR package » PHP_Archive, but has the advantage that applications created in this format will run even if the phar extension is not enabled.

In other words, even with the phar extension disabled, one can execute or include a phar-based archive. Accessing individual files within a phar archive is only possible with the phar extension unless the phar archive was created by PHP_Archive.

The phar extension is also capable of converting a phar archive from tar to zip or to phar file format in a single command:

Beispiel #3 Converting a phar archive from phar to tar file format

<?php
 $phar = new Phar('myphar.phar');
 $pgz = $phar->convertToExecutable(Phar::TAR, Phar::GZ); // makes myphar.phar.tar.gz
 ?>

Phar can compress individual files or an entire archive using gzip compression or bzip2 compression, and can verify archive integrity automatically through the use of MD5, SHA-1, SHA-256 or SHA-512 signatures.

Lastly, the Phar extension is security-conscious, and disables write access to executable phar archives by default, and requires system-level disabling of the phar.readonly php.ini setting in order to create or modify phar archives. Normal tar and zip archives without an executable stub can always be created or modified using the PharData class.

If you are creating applications for distribution, you will want to read How to create Phar Archives. If you want more information on the differences between the three file formats that phar supports, you should read Phar, Tar and Zip.

If you are using phar applications, there are helpful tips in How to use Phar Archives

The word phar is a portmanteau of PHP and Archive and is based loosely on the jar (Java Archive) familiar to Java developers.

The implementation for Phar archives is based on the PEAR package » PHP_Archive, and the implementation details are similar, although the Phar extension is much more powerful. In addition, the Phar extension allows most PHP applications to be run unmodified while PHP_Archive-based phar archives often require extensive modification in order to work.


Anforderungen

Phar requires PHP 5.2.0 or newer. Additional features require the SPL extension in order to take advantage of iteration and array access to a Phar's file contents. The phar stream does not require any additional extensions to function.

You may optionally wish to enable the zlib and bzip2 extensions to take advantage of compressed phar support. In addition, to take advantage of OpenSSL signing, the OpenSSL extension must be enabled.

Note that a bug in the zlib.deflate stream filter fixed in PHP version 5.2.6 and newer may cause truncation of gzip and bzip2-compressed phar archives.

PHP 5.3 configured with --enable-zend-multibyte makes phar dependant on the ini option detect_unicode.


Installation

The Phar extension is bundled with PHP as of PHP version 5.3.0, and enabled by default. To disable Phar support, use --disable-phar.

Phar may be installed via the PECL extension with previous PHP versions, and the » Phar PECL page contains further information and history.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Filesystem and Streams Configuration Options
Name | Standard | Veränderbar | Changelog
phar.readonly | "1" | PHP_INI_ALL |
phar.require_hash | "1" | PHP_INI_ALL |
phar.cache_list | "" | PHP_INI_SYSTEM |

Hier eine kurze Erklärung der Konfigurationsoptionen:

phar.readonly bool

This option disables creation or modification of Phar archives using the phar stream or Phar object's write support. This setting should always be enabled on production machines, as the phar extension's convenient write support could allow straightforward creation of a php-based virus when coupled with other common security vulnerabilities.

Hinweis:

This setting can only be unset in php.ini due to security reasons. If phar.readonly is disabled in php.ini, the user may enable phar.readonly in a script or disable it later. If phar.readonly is enabled in php.ini, a script may harmlessly "re-enable" the INI variable, but may not disable it.

phar.require_hash bool

This option will force all opened Phar archives to contain some kind of signature (currently MD5, SHA1, SHA256, SHA512 and OpenSSL are supported), and will refuse to process any Phar archive that does not contain a signature.

Hinweis:

This setting can only be unset in php.ini. If phar.require_hash is disabled in php.ini, the user may enable phar.require_hash in a script or disable it later. If phar.require_hash is enabled in php.ini, a script may harmlessly "re-enable" the INI variable, but may not disable it.

This setting does not affect reading plain tar files with the PharData class.

Achtung

phar.require_hash does not provide any security per se, it is merely a measure against running accidentially corrupted Phar archives, because anyone who would be able to tamper with the Phar could easily fix the signature afterwards.

phar.cache_list string

Allows mapping phar archives to be pre-parsed at web server startup, providing a performance improvement that brings running files out of a phar archive very close to the speed of running those files from a traditional disk-based installation.

Beispiel #1 phar.cache_list usage example

in php.ini (windows):
phar.cache_list =C:\path\to\phar1.phar;C:\path\to\phar2.phar
in php.ini (unix):
phar.cache_list =/path/to/phar1.phar:/path/to/phar2.phar


Ressource-Typen

The Phar extension provides the phar stream, which allows accessing files contained within a phar transparently. See also the description of the Phar file format.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Phar compression constants
Constant | Value | Description
Phar::NONE (int) | 0x00000000 | no compression
Phar::COMPRESSED (int) | 0x0000F000 | bitmask that can be used with file flags to determine if any compression is present
Phar::GZ (int) | 0x00001000 | zlib (gzip) compression
Phar::BZ2 (int) | 0x00002000 | bzip2 compression
Phar file format constants
Constant | Value | Description
Phar::PHAR (int) | 1 | phar file format
Phar::TAR (int) | 2 | tar file format
Phar::ZIP (int) | 3 | zip file format
Phar signature constants
Constant | Value | Description
Phar::MD5 (int) | 0x0001 | signature with md5 hash algorithm
Phar::SHA1 (int) | 0x0002 | signature with sha1 hash algorithm
Phar::SHA256 (int) | 0x0003 | signature with sha256 hash algorithm (requires hash extension)
Phar::SHA512 (int) | 0x0004 | signature with sha512 hash algorithm (requires hash extension)
Phar::OPENSSL (int) | 0x0010 | signature with OpenSSL public/private key pair. This is a true, asymmetric key signature.
Phar webPhar mime override constants
Constant | Value | Description
Phar::PHP (int) | 0 | used to instruct the mimeoverrides parameter of Phar::webPhar() that the extension should be parsed as a PHP file
Phar::PHPS (int) | 1 | used to instruct the mimeoverrides parameter of Phar::webPhar() that the extension should be parsed as a PHP source file through highlight_file()


Using Phar Archives

Inhaltsverzeichnis

  • Using Phar Archives: Introduction
  • Using Phar Archives: the phar stream wrapper
  • Using Phar Archives: the Phar and PharData class


Using Phar Archives: Introduction

Phar archives are similar in concept to Java JAR archives, but are tailored to the needs and to the flexibility of PHP applications. A Phar archive is used to distribute a complete PHP application or library in a single file. A Phar archive application is used exactly like any other PHP application:

php coolapplication.phar

Using a Phar archive library is identical to using any other PHP library:

<?php
include 'coollibrary.phar';
?>

The phar stream wrapper provides the core of the phar extension, and is explained in detail here. The phar stream wrapper allows accessing the files within a phar archive using PHP's standard file functions fopen(), opendir(), and others that work on regular files. The phar stream wrapper supports all read/write operations on both files and directories.

<?php
include 'phar://coollibrary.phar/internal/file.php';
header('Content-type: image/jpeg');
// phars can be accessed by full path or by alias
echo file_get_contents('phar:///fullpath/to/coollibrary.phar/images/wow.jpg');
?>

The Phar class implements advanced functionality for accessing files and for creating phar archives. The Phar class is explained in detail here.

<?php
try {
    // open an existing phar
    $p = new Phar('coollibrary.phar', 0);
    // Phar extends SPL's DirectoryIterator class
    foreach (new RecursiveIteratorIterator($p) as $file) {
        // $file is a PharFileInfo class, and inherits from SplFileInfo
        echo $file->getFileName() . "\n";
        echo file_get_contents($file->getPathName()) . "\n"; // display contents;
    }
    if (isset($p['internal/file.php'])) {
        var_dump($p['internal/file.php']->getMetadata());
    }

    // create a new phar - phar.readonly must be 0 in php.ini
    // phar.readonly is enabled by default for security reasons.
    // On production servers, Phars need never be created,
    // only executed.
    if (Phar::canWrite()) {
        $p = new Phar('newphar.tar.phar', 0, 'newphar.tar.phar');
        // make this a tar-based phar archive, compressed with gzip compression (.tar.gz)
        $p = $p->convertToExecutable(Phar::TAR, Phar::GZ);

        // create transaction - nothing is written to newphar.phar
        // until stopBuffering() is called, although temporary storage is needed
        $p->startBuffering();
        // add all files in /path/to/project, saving in the phar with the prefix "project"
        $p->buildFromIterator(new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/path/to/project')), '/path/to/');

        // add a new file via the array access API
        $p['file1.txt'] = 'Information';
        $fp = fopen('hugefile.dat', 'rb');
        // copy all data from the stream
        $p['data/hugefile.dat'] = $fp;

        if (Phar::canCompress(Phar::GZ)) {
            $p['data/hugefile.dat']->compress(Phar::GZ);
        }

        $p['images/wow.jpg'] = file_get_contents('images/wow.jpg');
        // any value can be saved as file-specific meta-data
        $p['images/wow.jpg']->setMetadata(array('mime-type' => 'image/jpeg'));
        $p['index.php'] = file_get_contents('index.php');
        $p->setMetadata(array('bootstrap' => 'index.php'));

        // save the phar archive to disk
        $p->stopBuffering();
    }
} catch (Exception $e) {
    echo 'Could not open Phar: ', $e;
}
?>

In addition, verification of phar file contents can be done using any of the supported symmetric hash algorithms (MD5, SHA1, SHA256 and SHA512 if ext/hash is enabled) and using asymmetric public/private key signing using OpenSSL. To take advantage of OpenSSL signing, you need to generate a public/private key pair, and use the private key to set the signature using Phar::setSignatureAlgorithm(). In addition, the public key as extracted using this code:

<?php
$public = openssl_get_publickey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($public, $pkey);
?>
must be saved adjacent to the phar archive it verifies. If the phar archive is saved as /path/to/my.phar, the public key must be saved as /path/to/my.phar.pubkey, or phar will be unable to verify the OpenSSL signature.

The Phar class also provides 3 static methods, Phar::webPhar(), Phar::mungServer() and Phar::interceptFileFuncs() that are crucial to packaging up PHP applications designed for usage on regular filesystems and for web-based applications. Phar::webPhar() implements a front controller that routes HTTP calls to the correct location within the phar archive. Phar::mungServer() is used to modify the values of the $_SERVER array to trick applications that process these values. Phar::interceptFileFuncs() instructs Phar to intercept calls to fopen(), file_get_contents(), opendir(), and all of the stat-based functions (file_exists(), is_readable() and so on) and route all relative paths to locations within the phar archive.

As an example, packaging up a release of the popular phpMyAdmin application for use as a phar archive requires only this simple script and then phpMyAdmin.phar.tar.php can be accessed as a regular file from your web server after modifying the user/password:

<?php
@unlink('phpMyAdmin.phar.tar.php');
copy('phpMyAdmin-2.11.3-english.tar.gz', 'phpMyAdmin.phar.tar.php');
$a = new Phar('phpMyAdmin.phar.tar.php');
$a->startBuffering();
$a["phpMyAdmin-2.11.3-english/config.inc.php"] = '<?php
/* Servers configuration */
$i = 0;

/* Server localhost (config:root) [1] */
$i++;
$cfg[\'Servers\'][$i][\'host\'] = \'localhost\';
$cfg[\'Servers\'][$i][\'extension\'] = \'mysqli\';
$cfg[\'Servers\'][$i][\'connect_type\'] = \'tcp\';
$cfg[\'Servers\'][$i][\'compress\'] = false;
$cfg[\'Servers\'][$i][\'auth_type\'] = \'config\';
$cfg[\'Servers\'][$i][\'user\'] = \'root\';
$cfg[\'Servers\'][$i][\'password\'] = \'\';

/* End of servers configuration */
if (strpos(PHP_OS, \'WIN\') !== false) {
    $cfg[\'UploadDir\'] = getcwd();
} else {
    $cfg[\'UploadDir\'] = \'/tmp/pharphpmyadmin\';
    @mkdir(\'/tmp/pharphpmyadmin\');
    @chmod(\'/tmp/pharphpmyadmin\', 0777);
}';
$a->setStub('<?php
Phar::interceptFileFuncs();
Phar::webPhar("phpMyAdmin.phar", "phpMyAdmin-2.11.3-english/index.php");
echo "phpMyAdmin is intended to be executed from a web browser\n";
exit -1;
__HALT_COMPILER();
');
$a->stopBuffering();
?>


Using Phar Archives: the phar stream wrapper

The Phar stream wrapper fully supports fopen() for read and write (not append), unlink(), stat(), fstat(), fseek(), rename() and directory stream operations opendir() and rmdir() and mkdir().

Individual file compression and per-file metadata can also be manipulated in a Phar archive using stream contexts:

<?php
$context = stream_context_create(array('phar' =>
                                    array('compress' => Phar::GZ)),
                                    array('metadata' => array('user' => 'cellog')));
file_put_contents('phar://my.phar/somefile.php', 0, $context);
?>

The phar stream wrapper does not operate on remote files, and cannot operate on remote files, and so is allowed even when the allow_url_fopen and allow_url_include INI options are disabled.

Although it is possible to create phar archives from scratch just using stream operations, it is best to use the functionality built into the Phar class. The stream wrapper is best used for read-only operations.


Using Phar Archives: the Phar and PharData class

The Phar class supports reading and manipulation of Phar archives, as well as iteration through inherited functionality of the RecursiveDirectoryIterator class. With support for the ArrayAccess interface, files inside a Phar archive can be accessed as if they were part of an associative array.

The PharData class extends the Phar, and allows creating and modifying non-executable (data) tar and zip archives even if phar.readonly=1 in php.ini. As such, PharData::setAlias() and PharData::setStub() are both disabled as the concept of alias and stub are unique to executable phar archives.

It is important to note that when creating a Phar archive, the full path should be passed to the Phar object constructor. Relative paths will fail to initialize.

Assuming that $p is a Phar object initialized as follows:

<?php
$p = new Phar('/path/to/myphar.phar', 0, 'myphar.phar');
?>

An empty Phar archive will be created at /path/to/myphar.phar, or if /path/to/myphar.phar already exists, it will be opened again. The literal myphar.phar demonstrates the concept of an alias that can be used to reference /path/to/myphar.phar in URLs as in:

<?php
// these two calls to file_get_contents() are equivalent if
// /path/to/myphar.phar has an explicit alias of "myphar.phar"
// in its manifest, or if the phar was initialized with the
// previous example's Phar object setup
$f = file_get_contents('phar:///path/to/myphar.phar/whatever.txt');
$f = file_get_contents('phar://myphar.phar/whatever.txt');
?>

With the newly created $p Phar object, the following is possible:

  • $a = $p['file.php'] creates a PharFileInfo class that refers to the contents of phar://myphar.phar/file.php
  • $p['file.php'] = $v creates a new file (phar://myphar.phar/file.php), or overwrites an existing file within myphar.phar. $v can be either a string or an open file pointer, in which case the entire contents of the file will be used to create the new file. Note that $p->addFromString('file.php', $v) is functionally equivalent to the above. Also possible is to add the contents of a file with $p->addFile('/path/to/file.php', 'file.php'). Lastly, an empty directory can be created with $p->addEmptyDir('empty').
  • isset($p['file.php']) can be used to determine whether phar://myphar.phar/file.php exists within myphar.phar.
  • unset($p['file.php']) erases phar://myphar.phar/file.php from myphar.phar.

In addition, the Phar object is the only way to access Phar-specific metadata, through Phar::getMetadata(), and the only way to set or retrieve a Phar archive's PHP loader stub through Phar::getStub() and Phar::setStub(). Additionally, compression for the entire Phar archive at once can only be manipulated using the Phar class.

The full list of Phar object functionality is documented below.

The PharFileInfo class extends the SplFileInfo class, and adds several methods for manipulating Phar-specific details of a file contained within a Phar, such as manipulating compression and metadata.


  • « Using Phar Archives: the Phar and PharData class
  • Creating Phar Archives: Introduction »
  • PHP Manual
  • Phar
  • Creating Phar Archives

Creating Phar Archives

Inhaltsverzeichnis

  • Creating Phar Archives: Introduction


Creating Phar Archives: Introduction

To be written fully in the near future. Before reading this, be sure to read How to use Phar Archives.

A great place to start is by reading about Phar::buildFromIterator(), and the specifics of the file format choices available for archives. A healthy understanding of what a stub is and does is crucial to phar archive creation, and so Phar::setStub() and Phar::createDefaultStub() are good places to start as well. If you are distributing a web-based application, it is crucial to know about Phar::webPhar() and related method Phar::mungServer(). Any application that accesses its own files should also consider using Phar::interceptFileFuncs().


What makes a phar a phar and not a tar or a zip?

Inhaltsverzeichnis

  • Ingredients of all Phar archives, independent of file format
  • Phar file stub
  • Head-to-head comparison of Phar, Tar and Zip
  • Tar-based phars
  • Zip-based phars
  • Phar File Format
  • Global Phar bitmapped flags
  • Phar manifest file entry definition
  • Phar Signature format


Ingredients of all Phar archives, independent of file format

All Phar archives contain three to four sections:

  1. a stub

  2. a manifest describing the contents

  3. the file contents

  4. [optional] a signature for verifying Phar integrity (phar file format only)


Phar file stub

A Phar's stub is a simple PHP file. The smallest possible stub follows:

<?php __HALT_COMPILER();

A stub must contain as a minimum, the __HALT_COMPILER(); token at its conclusion. Typically, a stub will contain loader functionality like so:

<?php
Phar::mapPhar();
include 'phar://myphar.phar/index.php';
__HALT_COMPILER();

There are no restrictions on the contents of a Phar stub, except for the requirement that it conclude with __HALT_COMPILER();. The closing PHP tag

?>
may be included or omitted, but there can be no more than 1 space between the ; and the close tag
?>
 or the phar extension will be unable to process the Phar archive's manifest.

In a tar or zip-based phar archive, the stub is stored in the .phar/stub.php file. The default stub for phar-based Phar archives contains approximately 7k of code to extract the contents of the phar and execute them. See Phar::createDefaultStub() for more detail.

The phar alias is stored in a tar or zip-based phar archive in the .phar/alias.txt file as plain text.


Head-to-head comparison of Phar, Tar and Zip

What are the good and the bad things about the three supported file formats in the phar extension? This table attempts to address that question.

Feature matrix: Phar vs. Tar vs. Zip
Feature | Phar | Tar | Zip
Standard File Format | No | Yes | Yes
Can be executed without the Phar Extension [1] | Yes | No | No
Per-file compression | Yes | No | Yes
Whole-archive compression | Yes | Yes | No
Whole-archive signature validation | Yes | Yes | Yes (PHP 5.3.1+)
Web-specific application support | Yes | Yes | Yes
Per-file Meta-data | Yes | Yes | Yes
Whole-Archive Meta-data | Yes | Yes | Yes
Archive creation/modification [2] | Yes | Yes | Yes
Full support for all stream wrapper functions | Yes | Yes | Yes
Can be created/modified even if phar.readonly=1 [3] | No | Yes | Yes

Tipp

[1] PHP can only directly access the contents of a Phar archive without the Phar extension if it is using a stub that extracts the contents of the phar archive. The stub created by Phar::createDefaultStub() extracts the phar archive and runs its contents from a temporary directory if no phar extension is found.

Tipp

[2] All write access requires phar.readonly to be disabled in php.ini or on the command-line directly.

Tipp

[3] Only tar and zip archives without .phar in their filename and without an executable stub .phar/stub.php can be created if phar.readonly=1.


Tar-based phars

Archives based on the tar file format follow the more modern USTAR file format. The design of the tar file header makes them more efficient to access than the zip file format, and almost as efficient as the phar file format. File names are limited to 255 bytes, including full path within the phar archive. There is no limit on the number of files within a tar-based phar archive. These archives can fully compressed in gzip or bzip2 format and still be executed by the Phar extension.

There is limited support for reading tarballs in pax interchange format, but all recognized pax headers (currently, typeflag x and g) are silently ignored. There is also limited support for GNU Tar Archives; currently, ././@LongLink headers are resolved.

To compress an entire archive, use Phar::compress(). To decompress an entire archive, use Phar::decompress().


Zip-based phars

Archives based on the zip file format support several features built into the zip file format. Per-file and whole-archive metadata is stored in the zip file comment and zip archive comment as a serialized string. Pre-existing zip comments will be successfully read as a string. Per-file compression read/write is supported with zlib DEFLATE compression, and read access is supported with bzip2 compression. There is no limit on the number of files within a zip-based phar archive. Empty directories are stored in the zip archive as files with a trailing slash like my/directory/


Phar File Format

The phar file format is literally laid out as stub/manifest/contents/signature, and stores the crucial information of what is included in the phar archive in its manifest.

The Phar manifest is a highly optimized format that allows per-file specification of file compression, file permissions, and even user-defined meta-data such as file user or group. All values greater than 1 byte are stored in little-endian byte order, with the exception of the API version, which for historical reasons is stored as 3 nibbles in big-endian order.

All unused flags are reserved for future use, and must not be used to store custom information. Use the per-file meta-data facility to store customized information about particular files.

The basic file format of a Phar archive manifest is as follows:

Global Phar manifest format
Size in bytes | Description
4 bytes | Length of manifest in bytes (1 MB limit)
4 bytes | Number of files in the Phar
2 bytes | API version of the Phar manifest (currently 1.0.0)
4 bytes | Global Phar bitmapped flags
4 bytes | Length of Phar alias
?? | Phar alias (length based on previous)
4 bytes | Length of Phar metadata (0 for none)
?? | Serialized Phar Meta-data, stored in serialize() format
at least 24 * number of entries bytes | entries for each file


Global Phar bitmapped flags

Here are the bitmapped flags currently recognized by the Phar extension for the global Phar flat bitmap:

Bitmap values recognized
Value | Description
0x00010000 | If set, this Phar contains a verification signature
0x00001000 | If set, this Phar contains at least 1 file that is compressed with zlib DEFLATE compression
0x00002000 | If set, this Phar contains at least 1 file that is compressed with bzip2 compression


Phar manifest file entry definition

Each file in the manifest contains the following information:

Phar Manifest file entry
Size in bytes | Description
4 bytes | Filename length in bytes
?? | Filename (length specified in previous)
4 bytes | Un-compressed file size in bytes
4 bytes | Unix timestamp of file
4 bytes | Compressed file size in bytes
4 bytes | CRC32 checksum of un-compressed file contents
4 bytes | Bit-mapped File-specific flags
4 bytes | Serialized File Meta-data length (0 for none)
?? | Serialized File Meta-data, stored in serialize() format

Note that as of API version 1.1.1, empty directories are stored as filenames with a trailing slash like my/directory/

The File-specific bitmap values recognized are:

Bitmap values recognized
Value | Description
0x000001FF | These bits are reserved for defining specific file permissions of a file. Permissions are used for fstat() and can be used to recreate desired permissions upon extraction.
0x00001000 | If set, this file is compressed with zlib DEFLATE compression
0x00002000 | If set, this file is compressed with bzip2 compression


Phar Signature format

Phars containing a signature always have the signature appended to the end of the Phar archive after the loader, manifest, and file contents. The signature formats supported at this time are MD5, SHA1, SHA256, SHA512, and OPENSSL.

Signature format
Length in bytes | Description
varying | The actual signature, 20 bytes for an SHA1 signature, 16 bytes for an MD5 signature, 32 bytes for an SHA256 signature, and 64 bytes for an SHA512 signature. The length of an OPENSSL signature depends on the size of the private key.
4 bytes | Signature flags. 0x0001 is used to define an MD5 signature, 0x0002 is used to define an SHA1 signature, 0x0003 is used to define an SHA256 signature, and 0x0004 is used to define an SHA512 signature. The SHA256 and SHA512 signature support is available as of API version 1.1.0. 0x0010 is used to define an OPENSSL signature, what is available as of API version 1.1.1, if OpenSSL is available.
4 bytes | Magic GBMB used to define the presence of a signature.


Die Phar Klasse

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Einführung

Die Phar Klasse bietet ein gehobenes Interface zum Zugreifen und Erstellen von Phar Archiven.

Klassenbeschreibung

Phar extends RecursiveDirectoryIterator implements Countable , ArrayAccess {
/* Geerbte Konstanten */
const int FilesystemIterator::CURRENT_AS_PATHNAME = 32 ;
const int FilesystemIterator::CURRENT_AS_FILEINFO = 0 ;
const int FilesystemIterator::CURRENT_AS_SELF = 16 ;
const int FilesystemIterator::CURRENT_MODE_MASK = 240 ;
const int FilesystemIterator::KEY_AS_PATHNAME = 0 ;
const int FilesystemIterator::KEY_AS_FILENAME = 256 ;
const int FilesystemIterator::FOLLOW_SYMLINKS = 512 ;
const int FilesystemIterator::KEY_MODE_MASK = 3840 ;
const int FilesystemIterator::NEW_CURRENT_AND_KEY = 256 ;
const int FilesystemIterator::SKIP_DOTS = 4096 ;
const int FilesystemIterator::UNIX_PATHS = 8192 ;
/* Methoden */
public addEmptyDir ( string $dirname ) : void
public addFile ( string $file , string $localname = ? ) : void
public addFromString ( string $localname , string $contents ) : void
final public static apiVersion ( ) : string
public buildFromDirectory ( string $base_dir , string $regex = ? ) : array
public buildFromIterator ( Iterator $iter , string $base_directory = ? ) : array
final public static canCompress ( int $type = 0 ) : bool
final public static canWrite ( ) : bool
public compress ( int $compression , string $extension = ? ) : Phar
public compressFiles ( int $compression ) : void
public __construct ( string $fname , int $flags = ? , string $alias = ? )
public convertToData ( int $format = 9021976 , int $compression = 9021976 , string $extension = ? ) : PharData
public convertToExecutable ( int $format = 9021976 , int $compression = 9021976 , string $extension = ? ) : Phar
public copy ( string $oldfile , string $newfile ) : bool
public count ( ) : int
final public static createDefaultStub ( string $indexfile = ? , string $webindexfile = ? ) : string
public decompress ( string $extension = ? ) : Phar
public decompressFiles ( ) : bool
public delMetadata ( ) : bool
public delete ( string $entry ) : bool
public extractTo ( string $pathto , string|array|null $files = null , bool $overwrite = false ) : bool
public getAlias ( ) : string
public getMetadata ( ) : mixed
public getModified ( ) : bool
public getPath ( ) : string
public getSignature ( ) : array
public getStub ( ) : string
final public static getSupportedCompression ( ) : array
final public static getSupportedSignatures ( ) : array
public getVersion ( ) : string
public hasMetadata ( ) : bool
final public static interceptFileFuncs ( ) : void
public isBuffering ( ) : bool
public isCompressed ( ) : mixed
public isFileFormat ( int $format ) : bool
final public static isValidPharFilename ( string $filename , bool $executable = true ) : bool
public isWritable ( ) : bool
final public static loadPhar ( string $filename , string $alias = ? ) : bool
final public static mapPhar ( string $alias = ? , int $dataoffset = 0 ) : bool
final public static mount ( string $pharpath , string $externalpath ) : void
final public static mungServer ( array $munglist ) : void
public offsetExists ( string $offset ) : bool
public offsetGet ( string $offset ) : PharFileInfo
public offsetSet ( string $offset , string $value ) : void
public offsetUnset ( string $offset ) : bool
final public static running ( bool $retphar = true ) : string
public setAlias ( string $alias ) : bool
public setDefaultStub ( string $index = ? , string $webindex = ? ) : bool
public setMetadata ( mixed $metadata ) : void
public setSignatureAlgorithm ( int $sigtype , string $privatekey = ? ) : void
public setStub ( string $stub , int $len = -1 ) : bool
public startBuffering ( ) : void
public stopBuffering ( ) : void
final public static unlinkArchive ( string $archive ) : bool
final public static webPhar ( string $alias = ? , string $index = "index.php" , string $f404 = ? , array $mimetypes = ? , callable $rewrites = ? ) : void
}

Inhaltsverzeichnis

  • Phar::addEmptyDir — Add an empty directory to the phar archive
  • Phar::addFile — Add a file from the filesystem to the phar archive
  • Phar::addFromString — Add a file from a string to the phar archive
  • Phar::apiVersion — Returns the api version
  • Phar::buildFromDirectory — Construct a phar archive from the files within a directory
  • Phar::buildFromIterator — Construct a phar archive from an iterator
  • Phar::canCompress — Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::canWrite — Returns whether phar extension supports writing and creating phars
  • Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::compressFiles — Compresses all files in the current Phar archive
  • Phar::__construct — Construct a Phar archive object
  • Phar::convertToData — Convert a phar archive to a non-executable tar or zip file
  • Phar::convertToExecutable — Convert a phar archive to another executable phar archive file format
  • Phar::copy — Copy a file internal to the phar archive to another new file within the phar
  • Phar::count — Returns the number of entries (files) in the Phar archive
  • Phar::createDefaultStub — Create a phar-file format specific stub
  • Phar::decompress — Decompresses the entire Phar archive
  • Phar::decompressFiles — Decompresses all files in the current Phar archive
  • Phar::delMetadata — Deletes the global metadata of the phar
  • Phar::delete — Delete a file within a phar archive
  • Phar::extractTo — Extract the contents of a phar archive to a directory
  • Phar::getAlias — Get the alias for Phar
  • Phar::getMetadata — Returns phar archive meta-data
  • Phar::getModified — Return whether phar was modified
  • Phar::getPath — Get the real path to the Phar archive on disk
  • Phar::getSignature — Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
  • Phar::getStub — Return the PHP loader or bootstrap stub of a Phar archive
  • Phar::getSupportedCompression — Return array of supported compression algorithms
  • Phar::getSupportedSignatures — Return array of supported signature types
  • Phar::getVersion — Return version info of Phar archive
  • Phar::hasMetadata — Returns whether phar has global meta-data
  • Phar::interceptFileFuncs — Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
  • Phar::isBuffering — Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
  • Phar::isCompressed — Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::isFileFormat — Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
  • Phar::isValidPharFilename — Returns whether the given filename is a valid phar filename
  • Phar::isWritable — Returns true if the phar archive can be modified
  • Phar::loadPhar — Loads any phar archive with an alias
  • Phar::mapPhar — Reads the currently executed file (a phar) and registers its manifest
  • Phar::mount — Mount an external path or file to a virtual location within the phar archive
  • Phar::mungServer — Defines a list of up to 4 $_SERVER variables that should be modified for execution
  • Phar::offsetExists — Determines whether a file exists in the phar
  • Phar::offsetGet — Gets a PharFileInfo object for a specific file
  • Phar::offsetSet — Set the contents of an internal file to those of an external file
  • Phar::offsetUnset — Remove a file from a phar
  • Phar::running — Returns the full path on disk or full phar URL to the currently executing Phar archive
  • Phar::setAlias — Set the alias for the Phar archive
  • Phar::setDefaultStub — Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
  • Phar::setMetadata — Sets phar archive meta-data
  • Phar::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it
  • Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::startBuffering — Start buffering Phar write operations, do not modify the Phar object on disk
  • Phar::stopBuffering — Stop buffering write requests to the Phar archive, and save changes to disk
  • Phar::unlinkArchive — Completely remove a phar archive from disk and from memory
  • Phar::webPhar — mapPhar for web-based phars. front controller for web applications


Add an empty directory to the phar archive

  • « Phar
  • Phar::addFile »
  • PHP Manual
  • Phar
  • Add an empty directory to the phar archive

Phar::addEmptyDir

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::addEmptyDir — Add an empty directory to the phar archive

Beschreibung

public Phar::addEmptyDir ( string $dirname ) : void

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

With this method, an empty directory is created with path dirname. This method is similar to ZipArchive::addEmptyDir().

Parameter-Liste

dirname

The name of the empty directory to create in the phar archive

Rückgabewerte

no return value, exception is thrown on failure.

Beispiele

Beispiel #1 A Phar::addEmptyDir() example

<?php
try {
    $a = new Phar('/path/to/phar.phar');

    $a->addEmptyDir('/full/path/to/file');
    // demonstrates how this file is stored
    $b = $a['full/path/to/file']->isDir();
} catch (Exception $e) {
    // handle errors here
}
?>

Siehe auch

  • PharData::addEmptyDir() - Add an empty directory to the tar/zip archive
  • Phar::addFile() - Add a file from the filesystem to the phar archive
  • Phar::addFromString() - Add a file from a string to the phar archive


Add a file from the filesystem to the phar archive

  • « Phar::addEmptyDir
  • Phar::addFromString »
  • PHP Manual
  • Phar
  • Add a file from the filesystem to the phar archive

Phar::addFile

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::addFile — Add a file from the filesystem to the phar archive

Beschreibung

public Phar::addFile ( string $file , string $localname = ? ) : void

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

With this method, any file or URL can be added to the phar archive. If the optional second parameter localname is specified, the file will be stored in the archive with that name, otherwise the file parameter is used as the path to store within the archive. URLs must have a localname or an exception is thrown. This method is similar to ZipArchive::addFile().

Parameter-Liste

file

Full or relative path to a file on disk to be added to the phar archive.

localname

Path that the file will be stored in the archive.

Rückgabewerte

no return value, exception is thrown on failure.

Beispiele

Beispiel #1 A Phar::addFile() example

<?php
try {
    $a = new Phar('/path/to/phar.phar');

    $a->addFile('/full/path/to/file');
    // demonstrates how this file is stored
    $b = $a['full/path/to/file']->getContent();

    $a->addFile('/full/path/to/file', 'my/file.txt');
    $c = $a['my/file.txt']->getContent();

    // demonstrate URL usage
    $a->addFile('http://www.example.com', 'example.html');
} catch (Exception $e) {
    // handle errors here
}
?>

Anmerkungen

Hinweis: Phar::addFile(), Phar::addFromString() and Phar::offsetSet() save a new phar archive each time they are called. If performance is a concern, Phar::buildFromDirectory() or Phar::buildFromIterator() should be used instead.

Siehe auch

  • Phar::offsetSet() - Set the contents of an internal file to those of an external file
  • PharData::addFile() - Add a file from the filesystem to the tar/zip archive
  • Phar::addFromString() - Add a file from a string to the phar archive
  • Phar::addEmptyDir() - Add an empty directory to the phar archive


Add a file from a string to the phar archive

  • « Phar::addFile
  • Phar::apiVersion »
  • PHP Manual
  • Phar
  • Add a file from a string to the phar archive

Phar::addFromString

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::addFromString — Add a file from a string to the phar archive

Beschreibung

public Phar::addFromString ( string $localname , string $contents ) : void

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

With this method, any string can be added to the phar archive. The file will be stored in the archive with localname as its path. This method is similar to ZipArchive::addFromString().

Parameter-Liste

localname

Path that the file will be stored in the archive.

contents

The file contents to store

Rückgabewerte

no return value, exception is thrown on failure.

Beispiele

Beispiel #1 A Phar::addFromString() example

<?php
try {
    $a = new Phar('/path/to/phar.phar');

    $a->addFromString('path/to/file.txt', 'my simple file');
    $b = $a['path/to/file.txt']->getContent();

    // to add contents from a stream handle for large files, use offsetSet()
    $c = fopen('/path/to/hugefile.bin');
    $a['largefile.bin'] = $c;
    fclose($c);
} catch (Exception $e) {
    // handle errors here
}
?>

Anmerkungen

Hinweis: Phar::addFile(), Phar::addFromString() and Phar::offsetSet() save a new phar archive each time they are called. If performance is a concern, Phar::buildFromDirectory() or Phar::buildFromIterator() should be used instead.

Siehe auch

  • Phar::offsetSet() - Set the contents of an internal file to those of an external file
  • PharData::addFromString() - Add a file from the filesystem to the tar/zip archive
  • Phar::addFile() - Add a file from the filesystem to the phar archive
  • Phar::addEmptyDir() - Add an empty directory to the phar archive


Returns the api version

  • « Phar::addFromString
  • Phar::buildFromDirectory »
  • PHP Manual
  • Phar
  • Returns the api version

Phar::apiVersion

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::apiVersion — Returns the api version

Beschreibung

final public static Phar::apiVersion ( ) : string

Return the API version of the phar file format that will be used when creating phars. The Phar extension supports reading API version 1.0.0 or newer. API version 1.1.0 is required for SHA-256 and SHA-512 hash, and API version 1.1.1 is required to store empty directories.

Parameter-Liste

Rückgabewerte

The API version string as in "1.0.0".

Beispiele

Beispiel #1 A Phar::apiVersion() example

<?php
echo Phar::apiVersion();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1.1.1


Construct a phar archive from the files within a directory

  • « Phar::apiVersion
  • Phar::buildFromIterator »
  • PHP Manual
  • Phar
  • Construct a phar archive from the files within a directory

Phar::buildFromDirectory

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::buildFromDirectory — Construct a phar archive from the files within a directory

Beschreibung

public Phar::buildFromDirectory ( string $base_dir , string $regex = ? ) : array

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

Populate a phar archive from directory contents. The optional second parameter is a regular expression (pcre) that is used to exclude files. Any filename that matches the regular expression will be included, all others will be excluded. For more fine-grained control, use Phar::buildFromIterator().

Parameter-Liste

base_dir

The full or relative path to the directory that contains all files to add to the archive.

regex

An optional pcre regular expression that is used to filter the list of files. Only file paths matching the regular expression will be included in the archive.

Rückgabewerte

Phar::buildFromDirectory() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

Fehler/Exceptions

This method throws BadMethodCallException when unable to instantiate the internal directory iterators, or a PharException if there were errors saving the phar archive.

Beispiele

Beispiel #1 A Phar::buildFromDirectory() example

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
// add all files in the project
$phar->buildFromDirectory(dirname(__FILE__) . '/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));

$phar2 = new Phar('project2.phar', 0, 'project2.phar');
// add all files in the project, only include php files
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
$phar2->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Siehe auch

  • Phar::buildFromIterator() - Construct a phar archive from an iterator


Construct a phar archive from an iterator

  • « Phar::buildFromDirectory
  • Phar::canCompress »
  • PHP Manual
  • Phar
  • Construct a phar archive from an iterator

Phar::buildFromIterator

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::buildFromIterator — Construct a phar archive from an iterator

Beschreibung

public Phar::buildFromIterator ( Iterator $iter , string $base_directory = ? ) : array

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

Populate a phar archive from an iterator. Two styles of iterators are supported, iterators that map the filename within the phar to the name of a file on disk, and iterators like DirectoryIterator that return SplFileInfo objects. For iterators that return SplFileInfo objects, the second parameter is required.

Parameter-Liste

iter

Any iterator that either associatively maps phar file to location or returns SplFileInfo objects

base_directory

For iterators that return SplFileInfo objects, the portion of each file's full path to remove when adding to the phar archive

Rückgabewerte

Phar::buildFromIterator() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

Beispiele

Beispiel #1 A Phar::buildFromIterator() with SplFileInfo

For most phar archives, the archive will reflect an actual directory layout, and the second style is the most useful. For instance, to create a phar archive containing the files in this sample directory layout:

/path/to/project/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

This code could be used to add these files to the "project.phar" phar archive:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new RecursiveDirectoryIterator('/path/to/project')),
    '/path/to/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

The file project.phar can then be used immediately. Phar::buildFromIterator() does not set values such as compression, metadata, and this can be done after creating the phar archive.

As an interesting note, Phar::buildFromIterator() can also be used to copy the contents of an existing phar archive, as the Phar object descends from DirectoryIterator:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new Phar('/path/to/anotherphar.phar')),
    'phar:///path/to/anotherphar.phar/path/to/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Beispiel #2 A Phar::buildFromIterator() with other iterators

The second form of the iterator can be used with any iterator that returns a key => value mapping, such as an ArrayIterator:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
    new ArrayIterator(
     array(
        'internal/file.php' => dirname(__FILE__) . '/somefile.php',
        'another/file.jpg' => fopen('/path/to/bigfile.jpg', 'rb'),
     )));
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Fehler/Exceptions

This method returns UnexpectedValueException when the iterator returns incorrect values, such as an integer key instead of a string, a BadMethodCallException when an SplFileInfo-based iterator is passed without a base_directory parameter, or a PharException if there were errors saving the phar archive.

Siehe auch

  • Phar::buildFromDirectory() - Construct a phar archive from the files within a directory


Returns whether phar extension supports compression using either zlib or bzip2

  • « Phar::buildFromIterator
  • Phar::canWrite »
  • PHP Manual
  • Phar
  • Returns whether phar extension supports compression using either zlib or bzip2

Phar::canCompress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::canCompress — Returns whether phar extension supports compression using either zlib or bzip2

Beschreibung

final public static Phar::canCompress ( int $type = 0 ) : bool

This should be used to test whether compression is possible prior to loading a phar archive containing compressed files.

Parameter-Liste

type

Either Phar::GZ or Phar::BZ2 can be used to test whether compression is possible with a specific compression algorithm (zlib or bzip2).

Rückgabewerte

true if compression/decompression is available, false if not.

Beispiele

Beispiel #1 A Phar::canCompress() example

<?php
if (Phar::canCompress()) {
    echo file_get_contents('phar://compressedphar.phar/internal/file.txt');
} else {
    echo 'no compression available';
}
?>

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file


Returns whether phar extension supports writing and creating phars

  • « Phar::canCompress
  • Phar::compress »
  • PHP Manual
  • Phar
  • Returns whether phar extension supports writing and creating phars

Phar::canWrite

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::canWrite — Returns whether phar extension supports writing and creating phars

Beschreibung

final public static Phar::canWrite ( ) : bool

This static method determines whether write access has been disabled in the system php.ini via the phar.readonly ini variable.

Parameter-Liste

Rückgabewerte

true if write access is enabled, false if it is disabled.

Beispiele

Beispiel #1 A Phar::canWrite() example

<?php
if (Phar::canWrite()) {
    file_put_contents('phar://myphar.phar/file.txt', 'hi there');
}
?>

Siehe auch

  • phar.readonly
  • Phar::isWritable() - Returns true if the phar archive can be modified


Compresses the entire Phar archive using Gzip or Bzip2 compression

  • « Phar::canWrite
  • Phar::compressFiles »
  • PHP Manual
  • Phar
  • Compresses the entire Phar archive using Gzip or Bzip2 compression

Phar::compress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression

Beschreibung

public Phar::compress ( int $compression , string $extension = ? ) : Phar

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

For tar-based and phar-based phar archives, this method compresses the entire archive using gzip compression or bzip2 compression. The resulting file can be processed with the gunzip command/bunzip command, or accessed directly and transparently with the Phar extension.

For Zip-based phar archives, this method fails with an exception. The zlib extension must be enabled to compress with gzip compression, the bzip2 extension must be enabled in order to compress with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

In addition, this method automatically renames the archive, appending .gz, .bz2 or removing the extension if passed Phar::NONE to remove compression. Alternatively, a file extension may be specified with the second parameter.

Parameter-Liste

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

extension

By default, the extension is .phar.gz or .phar.bz2 for compressing phar archives, and .phar.tar.gz or .phar.tar.bz2 for compressing tar archives. For decompressing, the default file extensions are .phar and .phar.tar.

Rückgabewerte

Returns a Phar object.

Fehler/Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or the bzip2 extension is not enabled.

Beispiele

Beispiel #1 A Phar::compress() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.phar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.phar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.phar already exists
?>

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive


Compresses all files in the current Phar archive

  • « Phar::compress
  • Phar::__construct »
  • PHP Manual
  • Phar
  • Compresses all files in the current Phar archive

Phar::compressFiles

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::compressFiles — Compresses all files in the current Phar archive

Beschreibung

public Phar::compressFiles ( int $compression ) : void

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

For tar-based phar archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use Phar::compress() to compress an entire tar-based phar archive.

For Zip-based and phar-based phar archives, this method compresses all files in the Phar archive using the specified compression. The zlib or bzip2 extensions must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2/zlib compression, the respective extension must be enabled in order to decompress the files prior to re-compressing. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Parameter-Liste

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Beispiele

Beispiel #1 A Phar::compressFiles() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive


Construct a Phar archive object

  • « Phar::compressFiles
  • Phar::convertToData »
  • PHP Manual
  • Phar
  • Construct a Phar archive object

Phar::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::__construct — Construct a Phar archive object

Beschreibung

public Phar::__construct ( string $fname , int $flags = ? , string $alias = ? )

Parameter-Liste

fname

Path to an existing Phar archive or to-be-created archive. The file name's extension must contain .phar.

flags

Flags to pass to parent class RecursiveDirectoryIterator.

alias

Alias with which this Phar archive should be referred to in calls to stream functionality.

Fehler/Exceptions

Throws BadMethodCallException if called twice, UnexpectedValueException if the phar archive can't be opened.

Beispiele

Beispiel #1 A Phar::__construct() example

<?php
try {
    $p = new Phar('/path/to/my.phar', FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_FILENAME,
                  'my.phar');
} catch (UnexpectedValueException $e) {
    die('Could not open my.phar');
} catch (BadMethodCallException $e) {
    echo 'technically, this cannot happen';
}
// this works now
echo file_get_contents('phar://my.phar/example.txt');
// and works as if we had typed
echo file_get_contents('phar:///path/to/my.phar/example.txt');
?>


Convert a phar archive to a non-executable tar or zip file

  • « Phar::__construct
  • Phar::convertToExecutable »
  • PHP Manual
  • Phar
  • Convert a phar archive to a non-executable tar or zip file

Phar::convertToData

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::convertToData — Convert a phar archive to a non-executable tar or zip file

Beschreibung

public Phar::convertToData ( int $format = 9021976 , int $compression = 9021976 , string $extension = ? ) : PharData

This method is used to convert an executable phar archive to either a tar or zip file. To make the tar or zip non-executable, the phar stub and phar alias files are removed from the newly created archive.

If no changes are specified, this method throws a BadMethodCallException if the archive is in phar file format. For archives in tar or zip file format, this method converts the archive to a non-executable archive.

If successful, the method creates a new archive on disk and returns a PharData object. The old archive is not removed from disk, and should be done manually after the process has finished.

Parameter-Liste

format

This should be one of Phar::TAR or Phar::ZIP. If set to null, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that .phar cannot be used anywhere in the filename for a non-executable tar or zip archive.

If converting to a tar-based phar archive, the default extensions are .tar, .tar.gz, and .tar.bz2 depending on specified compression. For zip-based archives, the default extension is .zip.

Rückgabewerte

The method returns a PharData object on success and throws an exception on failure.

Fehler/Exceptions

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), and a PharException if any problems are encountered during the phar creation process.

Beispiele

Beispiel #1 A Phar::convertToData() example

Using Phar::convertToData():

<?php
try {
    $tarphar = new Phar('myphar.phar.tar');
    // note that myphar.phar.tar is *not* unlinked
    // convert it to the non-executable tar file format
    // creates myphar.tar
    $tar = $tarphar->convertToData();
    // convert to non-executable zip format, creates myphar.zip
    $zip = $tarphar->convertToData(Phar::ZIP);
    // create myphar.tbz
    $tgz = $tarphar->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
    // creates myphar.phar.tgz
    $phar = $tarphar->convertToData(Phar::PHAR); // throws exception
} catch (Exception $e) {
    // handle the error here
}
?>

Siehe auch

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive
  • PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file


Convert a phar archive to another executable phar archive file format

  • « Phar::convertToData
  • Phar::copy »
  • PHP Manual
  • Phar
  • Convert a phar archive to another executable phar archive file format

Phar::convertToExecutable

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::convertToExecutable — Convert a phar archive to another executable phar archive file format

Beschreibung

public Phar::convertToExecutable ( int $format = 9021976 , int $compression = 9021976 , string $extension = ? ) : Phar

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

This method is used to convert a phar archive to another file format. For instance, it can be used to create a tar-based executable phar archive from a zip-based executable phar archive, or from an executable phar archive in the phar file format. In addition, it can be used to apply whole-archive compression to a tar or phar-based archive.

If no changes are specified, this method throws a BadMethodCallException.

If successful, the method creates a new archive on disk and returns a Phar object. The old archive is not removed from disk, and should be done manually after the process has finished.

Parameter-Liste

format

This should be one of Phar::PHAR, Phar::TAR, or Phar::ZIP. If set to null, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that all zip- and tar-based phar archives must contain .phar in their file extension in order to be processed as a phar archive.

If converting to a phar-based archive, the default extensions are .phar, .phar.gz, or .phar.bz2 depending on the specified compression. For tar-based phar archives, the default extensions are .phar.tar, .phar.tar.gz, and .phar.tar.bz2. For zip-based phar archives, the default extension is .phar.zip.

Rückgabewerte

The method returns a Phar object on success and throws an exception on failure.

Fehler/Exceptions

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), an UnexpectedValueException if write support is disabled, and a PharException if any problems are encountered during the phar creation process.

Beispiele

Beispiel #1 A Phar::convertToExecutable() example

Using Phar::convertToExecutable():

<?php
try {
    $tarphar = new Phar('myphar.phar.tar');
    // convert it to the phar file format
    // note that myphar.phar.tar is *not* unlinked
    $phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
    // creates myphar.phar.tgz
    $compressed = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
    // handle the error here
}
?>

Siehe auch

  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive
  • PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file


Copy a file internal to the phar archive to another new file within the phar

  • « Phar::convertToExecutable
  • Phar::count »
  • PHP Manual
  • Phar
  • Copy a file internal to the phar archive to another new file within the phar

Phar::copy

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::copy — Copy a file internal to the phar archive to another new file within the phar

Beschreibung

public Phar::copy ( string $oldfile , string $newfile ) : bool

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

Copy a file internal to the phar archive to another new file within the phar. This is an object-oriented alternative to using copy() with the phar stream wrapper.

Parameter-Liste

oldfile

newfile

Rückgabewerte

returns true on success, but it is safer to encase method call in a try/catch block and assume success if no exception is thrown.

Fehler/Exceptions

throws UnexpectedValueException if the source file does not exist, the destination file already exists, write access is disabled, opening either file fails, reading the source file fails, or a PharException if writing the changes to the phar fails.

Beispiele

Beispiel #1 A Phar::copy() example

This example shows using Phar::copy() and the equivalent stream wrapper performance of the same thing. The primary difference between the two approaches is error handling. All Phar methods throw exceptions, whereas the stream wrapper uses trigger_error().

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar['a'] = 'hi';
    $phar->copy('a', 'b');
    echo $phar['b']; // outputs "hi"
} catch (Exception $e) {
    // handle error
}

// the stream wrapper equivalent of the above code.
// E_WARNINGS are triggered on error rather than exceptions.
copy('phar://myphar.phar/a', 'phar//myphar.phar/c');
echo file_get_contents('phar://myphar.phar/c'); // outputs "hi"
?>


Returns the number of entries (files) in the Phar archive

  • « Phar::copy
  • Phar::createDefaultStub »
  • PHP Manual
  • Phar
  • Returns the number of entries (files) in the Phar archive

Phar::count

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::count — Returns the number of entries (files) in the Phar archive

Beschreibung

public Phar::count ( ) : int

Parameter-Liste

Rückgabewerte

The number of files contained within this phar, or 0 (the number zero) if none.

Beispiele

Beispiel #1 A Phar::count() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
    echo 'Could not create phar:', $e;
}
echo 'The new phar has ' . $p->count() . " entries\n";
$p['file.txt'] = 'hi';
echo 'The new phar has ' . $p->count() . " entries\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The new phar has 0 entries
The new phar has 1 entries


Create a phar-file format specific stub

  • « Phar::count
  • Phar::decompress »
  • PHP Manual
  • Phar
  • Create a phar-file format specific stub

Phar::createDefaultStub

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::createDefaultStub — Create a phar-file format specific stub

Beschreibung

final public static Phar::createDefaultStub ( string $indexfile = ? , string $webindexfile = ? ) : string

This method is intended for creation of phar-file format-specific stubs, and is not intended for use with tar- or zip-based phar archives.

Phar archives contain a bootstrap loader, or stub written in PHP that is executed when the archive is executed in PHP either via include:

<?php
include 'myphar.phar';
?>
or by simple execution:
php myphar.phar

This method provides a simple and easy method to create a stub that will run a startup file from the phar archive. In addition, different files can be specified for running the phar archive from the command line versus through a web server. The loader stub also calls Phar::interceptFileFuncs() to allow easy bundling of a PHP application that accesses the file system. If the phar extension is not present, the loader stub will extract the phar archive to a temporary directory and then operate on the files. A shutdown function erases the temporary files on exit.

Rückgabewerte

Returns a string containing the contents of a customized bootstrap loader (stub) that allows the created Phar archive to work with or without the Phar extension enabled.

Fehler/Exceptions

Throws UnexpectedValueException if either parameter is longer than 400 bytes.

Beispiele

Beispiel #1 A Phar::createDefaultStub() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
    // handle errors
}
?>

Siehe auch

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::getStub() - Return the PHP loader or bootstrap stub of a Phar archive


Decompresses the entire Phar archive

  • « Phar::createDefaultStub
  • Phar::decompressFiles »
  • PHP Manual
  • Phar
  • Decompresses the entire Phar archive

Phar::decompress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::decompress — Decompresses the entire Phar archive

Beschreibung

public Phar::decompress ( string $extension = ? ) : Phar

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

For tar-based and phar-based phar archives, this method decompresses the entire archive.

For Zip-based phar archives, this method fails with an exception. The zlib extension must be enabled to decompress an archive compressed with gzip compression, and the bzip2 extension must be enabled in order to decompress an archive compressed with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

In addition, this method automatically changes the file extension of the archive, .phar by default for phar archives, or .phar.tar for tar-based phar archives. Alternatively, a file extension may be specified with the second parameter.

Parameter-Liste

extension

For decompressing, the default file extensions are .phar and .phar.tar. Use this parameter to specify another file extension. Be aware that all executable phar archives must contain .phar in their filename.

Rückgabewerte

A Phar object is returned.

Fehler/Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or the bzip2 extension is not enabled.

Beispiele

Beispiel #1 A Phar::decompress() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar.gz');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p3 = $p2->decompress(); // creates /path/to/my.phar
?>

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive


Decompresses all files in the current Phar archive

  • « Phar::decompress
  • Phar::delMetadata »
  • PHP Manual
  • Phar
  • Decompresses all files in the current Phar archive

Phar::decompressFiles

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::decompressFiles — Decompresses all files in the current Phar archive

Beschreibung

public Phar::decompressFiles ( ) : bool

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

For tar-based phar archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use Phar::compress() to compress an entire tar-based phar archive.

For Zip-based and phar-based phar archives, this method decompresses all files in the Phar archive. The zlib or bzip2 extensions must be enabled to take advantage of this feature if any files are compressed using bzip2/zlib compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Beispiele

Beispiel #1 A Phar::decompressFiles() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->decompressFiles();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive


Deletes the global metadata of the phar

  • « Phar::decompressFiles
  • Phar::delete »
  • PHP Manual
  • Phar
  • Deletes the global metadata of the phar

Phar::delMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.0)

Phar::delMetadata — Deletes the global metadata of the phar

Beschreibung

public Phar::delMetadata ( ) : bool

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

Deletes the global metadata of the phar

Parameter-Liste

Rückgabewerte

returns true on success, but it is better to check for thrown exception, and assume success if none is thrown.

Fehler/Exceptions

Throws PharException if errors occur while flushing changes to disk.

Beispiele

Beispiel #1 A Phar::delMetaData() example

<?php
try {
    $phar = new Phar('myphar.phar');
    var_dump($phar->getMetadata());
    $phar->setMetadata("hi there");
    var_dump($phar->getMetadata());
    $phar->delMetadata();
    var_dump($phar->getMetadata());
} catch (Exception $e) {
    // handle errors
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
string(8) "hi there"
NULL

Siehe auch

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data


Delete a file within a phar archive

  • « Phar::delMetadata
  • Phar::extractTo »
  • PHP Manual
  • Phar
  • Delete a file within a phar archive

Phar::delete

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::delete — Delete a file within a phar archive

Beschreibung

public Phar::delete ( string $entry ) : bool

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

Delete a file within an archive. This is the functional equivalent of calling unlink() on the stream wrapper equivalent, as shown in the example below.

Parameter-Liste

entry

Path within an archive to the file to delete.

Rückgabewerte

returns true on success, but it is better to check for thrown exception, and assume success if none is thrown.

Fehler/Exceptions

Throws PharException if errors occur while flushing changes to disk.

Beispiele

Beispiel #1 A Phar::delete() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->delete('unlink/me.php');
    // this is equivalent to:
    unlink('phar://myphar.phar/unlink/me.php');
} catch (Exception $e) {
    // handle errors
}
?>

Siehe auch

  • PharData::delete() - Delete a file within a tar/zip archive
  • Phar::unlinkArchive() - Completely remove a phar archive from disk and from memory


Extract the contents of a phar archive to a directory

  • « Phar::delete
  • Phar::getAlias »
  • PHP Manual
  • Phar
  • Extract the contents of a phar archive to a directory

Phar::extractTo

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::extractTo — Extract the contents of a phar archive to a directory

Beschreibung

public Phar::extractTo ( string $pathto , string|array|null $files = null , bool $overwrite = false ) : bool

Extract all files within a phar archive to disk. Extracted files and directories preserve permissions as stored in the archive. The optional parameters allow optional control over which files are extracted, and whether existing files on disk can be overwritten. The second parameter files can be either the name of a file or directory to extract, or an array of names of files and directories to extract. By default, this method will not overwrite existing files, the third parameter can be set to true to enable overwriting of files. This method is similar to ZipArchive::extractTo().

Parameter-Liste

pathto

Path to extract the given files to

files

The name of a file or directory to extract, or an array of files/directories to extract, null to skip this param

overwrite

Set to true to enable overwriting existing files

Rückgabewerte

returns true on success, but it is better to check for thrown exception, and assume success if none is thrown.

Fehler/Exceptions

Throws PharException if errors occur while flushing changes to disk.

Beispiele

Beispiel #1 A Phar::extractTo() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->extractTo('/full/path'); // extract all files
    $phar->extractTo('/another/path', 'file.txt'); // extract only file.txt
    $phar->extractTo('/this/path',
        array('file1.txt', 'file2.txt')); // extract 2 files only
    $phar->extractTo('/third/path', null, true); // extract all files, and overwrite
} catch (Exception $e) {
    // handle errors
}
?>

Siehe auch

  • PharData::extractTo() - Extract the contents of a tar/zip archive to a directory


Get the alias for Phar

  • « Phar::extractTo
  • Phar::getMetadata »
  • PHP Manual
  • Phar
  • Get the alias for Phar

Phar::getAlias

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.1)

Phar::getAlias — Get the alias for Phar

Beschreibung

public Phar::getAlias ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the alias or null if there's no alias.


Returns phar archive meta-data

  • « Phar::getAlias
  • Phar::getModified »
  • PHP Manual
  • Phar
  • Returns phar archive meta-data

Phar::getMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::getMetadata — Returns phar archive meta-data

Beschreibung

public Phar::getMetadata ( ) : mixed

Retrieve archive meta-data. Meta-data can be any PHP variable that can be serialized.

Parameter-Liste

No parameters.

Rückgabewerte

any PHP variable that can be serialized and is stored as meta-data for the Phar archive, or null if no meta-data is stored.

Beispiele

Beispiel #1 A Phar::getMetadata() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.php'] = '<?php echo "hello";';
    $p->setMetadata(array('bootstrap' => 'file.php'));
    var_dump($p->getMetadata());
} catch (Exception $e) {
    echo 'Could not modify phar:', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Siehe auch

  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar
  • Phar::hasMetadata() - Returns whether phar has global meta-data


Return whether phar was modified

  • « Phar::getMetadata
  • Phar::getPath »
  • PHP Manual
  • Phar
  • Return whether phar was modified

Phar::getModified

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::getModified — Return whether phar was modified

Beschreibung

public Phar::getModified ( ) : bool

This method can be used to determine whether a phar has either had an internal file deleted, or contents of a file changed in some way.

Parameter-Liste

No parameters.

Rückgabewerte

true if the phar has been modified since opened, false if not.


Get the real path to the Phar archive on disk

  • « Phar::getModified
  • Phar::getSignature »
  • PHP Manual
  • Phar
  • Get the real path to the Phar archive on disk

Phar::getPath

(PHP 5 >= 5.3.0, PHP 7)

Phar::getPath — Get the real path to the Phar archive on disk

Beschreibung

public Phar::getPath ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive

  • « Phar::getPath
  • Phar::getStub »
  • PHP Manual
  • Phar
  • Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive

Phar::getSignature

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::getSignature — Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive

Beschreibung

public Phar::getSignature ( ) : array

Returns the verification signature of a phar archive in a hexadecimal string.

Parameter-Liste

Rückgabewerte

Array with the opened archive's signature in hash key and MD5, SHA-1, SHA-256, SHA-512, or OpenSSL in hash_type. This signature is a hash calculated on the entire phar's contents, and may be used to verify the integrity of the archive. A valid signature is absolutely required of all executable phar archives if the phar.require_hash INI variable is set to true.


Return the PHP loader or bootstrap stub of a Phar archive

  • « Phar::getSignature
  • Phar::getSupportedCompression »
  • PHP Manual
  • Phar
  • Return the PHP loader or bootstrap stub of a Phar archive

Phar::getStub

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::getStub — Return the PHP loader or bootstrap stub of a Phar archive

Beschreibung

public Phar::getStub ( ) : string

Phar archives contain a bootstrap loader, or stub written in PHP that is executed when the archive is executed in PHP either via include:

<?php
include 'myphar.phar';
?>
or by simple execution:
php myphar.phar

Rückgabewerte

Returns a string containing the contents of the bootstrap loader (stub) of the current Phar archive.

Fehler/Exceptions

Throws RuntimeException if it is not possible to read the stub from the Phar archive.

Beispiele

Beispiel #1 A Phar::getStub() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
echo $p->getStub();
echo "==NEXT==\n";
$p->setStub("<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER(); ?>");
echo $p->getStub();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?php __HALT_COMPILER(); ?>
==NEXT==
<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER(); ?>

Siehe auch

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::createDefaultStub() - Create a phar-file format specific stub


Return array of supported compression algorithms

  • « Phar::getStub
  • Phar::getSupportedSignatures »
  • PHP Manual
  • Phar
  • Return array of supported compression algorithms

Phar::getSupportedCompression

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.0)

Phar::getSupportedCompression — Return array of supported compression algorithms

Beschreibung

final public static Phar::getSupportedCompression ( ) : array

Parameter-Liste

No parameters.

Rückgabewerte

Returns an array containing any of Phar::GZ or Phar::BZ2, depending on the availability of the zlib extension or the bz2 extension.

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive


Return array of supported signature types

  • « Phar::getSupportedCompression
  • Phar::getVersion »
  • PHP Manual
  • Phar
  • Return array of supported signature types

Phar::getSupportedSignatures

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.1.0)

Phar::getSupportedSignatures — Return array of supported signature types

Beschreibung

final public static Phar::getSupportedSignatures ( ) : array

Return array of supported signature types

Parameter-Liste

No parameters.

Rückgabewerte

Returns an array containing any of MD5, SHA-1, SHA-256, SHA-512, or OpenSSL.

Siehe auch

  • Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
  • Phar::setSignatureAlgorithm() - Set the signature algorithm for a phar and apply it


Return version info of Phar archive

  • « Phar::getSupportedSignatures
  • Phar::hasMetadata »
  • PHP Manual
  • Phar
  • Return version info of Phar archive

Phar::getVersion

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::getVersion — Return version info of Phar archive

Beschreibung

public Phar::getVersion ( ) : string

Returns the API version of an opened Phar archive.

Parameter-Liste

Rückgabewerte

The opened archive's API version. This is not to be confused with the API version that the loaded phar extension will use to create new phars. Each Phar archive has the API version hard-coded into its manifest. See Phar file format documentation for more information.

Siehe auch

  • Phar::apiVersion() - Returns the api version


Returns whether phar has global meta-data

  • « Phar::getVersion
  • Phar::interceptFileFuncs »
  • PHP Manual
  • Phar
  • Returns whether phar has global meta-data

Phar::hasMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.0)

Phar::hasMetadata — Returns whether phar has global meta-data

Beschreibung

public Phar::hasMetadata ( ) : bool

Returns whether phar has global meta-data set.

Parameter-Liste

No parameters.

Rückgabewerte

Returns true if meta-data has been set, and false if not.

Beispiele

Beispiel #1 A Phar::hasMetadata() example

<?php
try {
    $phar = new Phar('myphar.phar');
    var_dump($phar->hasMetadata());
    $phar->setMetadata(array('thing' => 'hi'));
    var_dump($phar->hasMetadata());
    $phar->delMetadata();
    var_dump($phar->hasMetadata());
} catch (Exception $e) {
    // handle error
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(false)

Siehe auch

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar


Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

  • « Phar::hasMetadata
  • Phar::isBuffering »
  • PHP Manual
  • Phar
  • Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

Phar::interceptFileFuncs

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::interceptFileFuncs — Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

Beschreibung

final public static Phar::interceptFileFuncs ( ) : void

instructs phar to intercept fopen(), readfile(), file_get_contents(), opendir(), and all of the stat-related functions. If any of these functions is called from within a phar archive with a relative path, the call is modified to access a file within the phar archive. Absolute paths are assumed to be attempts to load external files from the filesystem.

This function makes it possible to run PHP applications designed to run off of a hard disk as a phar application.

Parameter-Liste

No parameters.

Rückgabewerte

Beispiele

Beispiel #1 A Phar::interceptFileFuncs() example

<?php
Phar::interceptFileFuncs();
include 'phar://' . __FILE__ . '/file.php';
?>

Assuming that this phar is at /path/to/myphar.phar and it contains file.php and file2.txt, if file.php contains this code:

Beispiel #2 A Phar::interceptFileFuncs() example

<?php
echo file_get_contents('file2.txt');
?>

Normally PHP would search the current directory for file2.txt, which would translate as the directory of file.php, or the current directory of a command-line user. Phar::interceptFileFuncs() instructs PHP to consider the current directory to be phar:///path/to/myphar.phar/ and so opens phar:///path/to/myphar.phar/file2.txt in the above example code.


Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

  • « Phar::interceptFileFuncs
  • Phar::isCompressed »
  • PHP Manual
  • Phar
  • Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

Phar::isBuffering

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::isBuffering — Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

Beschreibung

public Phar::isBuffering ( ) : bool

This method can be used to determine whether a Phar will save changes to disk immediately, or whether a call to Phar::stopBuffering() is needed to enable saving changes.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

Rückgabewerte

Returns true if the write operations are being buffer, false otherwise.

Beispiele

Beispiel #1 A Phar::isBuffering() example

<?php
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p2 = new Phar('existingphar.phar');
$p['file1.txt'] = 'hi';
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
?>
=2=
<?php
$p->startBuffering();
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
$p->stopBuffering();
?>
=3=
<?php
var_dump($p->isBuffering());
var_dump($p2->isBuffering());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(false)
=2=
bool(true)
bool(false)
=3=
bool(false)
bool(false)

Siehe auch

  • Phar::startBuffering() - Start buffering Phar write operations, do not modify the Phar object on disk
  • Phar::stopBuffering() - Stop buffering write requests to the Phar archive, and save changes to disk


Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)

  • « Phar::isBuffering
  • Phar::isFileFormat »
  • PHP Manual
  • Phar
  • Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)

Phar::isCompressed

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::isCompressed — Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)

Beschreibung

public Phar::isCompressed ( ) : mixed

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on). Zip-based phar archives cannot be compressed as a file, and so this method will always return false if a zip-based phar archive is queried.

Parameter-Liste

No parameters.

Rückgabewerte

Phar::GZ, Phar::BZ2 or false

Beispiele

Beispiel #1 A Phar::isCompressed() example

<?php
try {
    $phar1 = new Phar('myphar.zip.phar');
    var_dump($phar1->isCompressed());
    $phar2 = new Phar('myuncompressed.tar.phar');
    var_dump($phar2->isCompressed());
    $phar2->compress(Phar::GZ);
    var_dump($phar2->isCompressed() == Phar::GZ);
} catch (Exception $e) {
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(false)
bool(true)

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms


Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter

  • « Phar::isCompressed
  • Phar::isValidPharFilename »
  • PHP Manual
  • Phar
  • Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter

Phar::isFileFormat

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::isFileFormat — Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter

Beschreibung

public Phar::isFileFormat ( int $format ) : bool

Parameter-Liste

format

Either Phar::PHAR, Phar::TAR, or Phar::ZIP to test for the format of the archive.

Rückgabewerte

Returns true if the phar archive matches the file format requested by the parameter

Fehler/Exceptions

PharException is thrown if the parameter is an unknown file format specifier.

Siehe auch

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file


Returns whether the given filename is a valid phar filename

  • « Phar::isFileFormat
  • Phar::isWritable »
  • PHP Manual
  • Phar
  • Returns whether the given filename is a valid phar filename

Phar::isValidPharFilename

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.0)

Phar::isValidPharFilename — Returns whether the given filename is a valid phar filename

Beschreibung

final public static Phar::isValidPharFilename ( string $filename , bool $executable = true ) : bool

Returns whether the given filename is a valid phar filename that will be recognized as a phar archive by the phar extension. This can be used to test a name without having to instantiate a phar archive and catch the inevitable Exception that will be thrown if an invalid name is specified.

Parameter-Liste

filename

The name or full path to a phar archive not yet created

executable

This parameter determines whether the filename should be treated as a phar executable archive, or a data non-executable archive

Rückgabewerte

Returns true if the filename is valid, false if not.


Returns true if the phar archive can be modified

  • « Phar::isValidPharFilename
  • Phar::loadPhar »
  • PHP Manual
  • Phar
  • Returns true if the phar archive can be modified

Phar::isWritable

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::isWritable — Returns true if the phar archive can be modified

Beschreibung

public Phar::isWritable ( ) : bool

This method returns true if phar.readonly is 0, and the actual phar archive on disk is not read-only.

Parameter-Liste

No parameters.

Rückgabewerte

Returns true if the phar archive can be modified

Siehe auch

  • Phar::canWrite() - Returns whether phar extension supports writing and creating phars
  • PharData::isWritable() - Returns true if the tar/zip archive can be modified


Loads any phar archive with an alias

  • « Phar::isWritable
  • Phar::mapPhar »
  • PHP Manual
  • Phar
  • Loads any phar archive with an alias

Phar::loadPhar

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::loadPhar — Loads any phar archive with an alias

Beschreibung

final public static Phar::loadPhar ( string $filename , string $alias = ? ) : bool

This can be used to read the contents of an external Phar archive. This is most useful for assigning an alias to a phar so that subsequent references to the phar can use the shorter alias, or for loading Phar archives that only contain data and are not intended for execution/inclusion in PHP scripts.

Parameter-Liste

filename

the full or relative path to the phar archive to open

alias

The alias that may be used to refer to the phar archive. Note that many phar archives specify an explicit alias inside the phar archive, and a PharException will be thrown if a new alias is specified in this case.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

PharException is thrown if an alias is passed in and the phar archive already has an explicit alias

Beispiele

Beispiel #1 A Phar::loadPhar() example

Phar::loadPhar can be used anywhere to load an external Phar archive, whereas Phar::mapPhar should be used in a loader stub for a Phar.

<?php
try {
    Phar::loadPhar('/path/to/phar.phar', 'my.phar');
    echo file_get_contents('phar://my.phar/file.txt');
} catch (PharException $e) {
    echo $e;
}
?>

Siehe auch

  • Phar::mapPhar() - Reads the currently executed file (a phar) and registers its manifest


Reads the currently executed file (a phar) and registers its manifest

  • « Phar::loadPhar
  • Phar::mount »
  • PHP Manual
  • Phar
  • Reads the currently executed file (a phar) and registers its manifest

Phar::mapPhar

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::mapPhar — Reads the currently executed file (a phar) and registers its manifest

Beschreibung

final public static Phar::mapPhar ( string $alias = ? , int $dataoffset = 0 ) : bool

This static method can only be used inside a Phar archive's loader stub in order to initialize the phar when it is directly executed, or when it is included in another script.

Parameter-Liste

alias

The alias that can be used in phar:// URLs to refer to this archive, rather than its full path.

dataoffset

Unused variable, here for compatibility with PEAR's PHP_Archive.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

PharException is thrown if not called directly within PHP execution, if no __HALT_COMPILER(); token is found in the current source file, or if the file cannot be opened for reading.

Beispiele

Beispiel #1 A Phar::mapPhar() example

mapPhar should be used only inside a phar's loader stub. Use loadPhar to load an external phar into memory.

Here is a sample Phar loader stub that uses mapPhar.

<?php
function __autoload($class)
{
    include 'phar://me.phar/' . str_replace('_', '/', $class) . '.php';
}
try {
    Phar::mapPhar('me.phar');
    include 'phar://me.phar/startup.php';
} catch (PharException $e) {
    echo $e->getMessage();
    die('Cannot initialize Phar');
}
__HALT_COMPILER();

Siehe auch

  • Phar::loadPhar() - Loads any phar archive with an alias


Mount an external path or file to a virtual location within the phar archive

  • « Phar::mapPhar
  • Phar::mungServer »
  • PHP Manual
  • Phar
  • Mount an external path or file to a virtual location within the phar archive

Phar::mount

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::mount — Mount an external path or file to a virtual location within the phar archive

Beschreibung

final public static Phar::mount ( string $pharpath , string $externalpath ) : void

Much like the unix file system concept of mounting external devices to paths within the directory tree, Phar::mount() allows referring to external files and directories as if they were inside of an archive. This allows powerful abstraction such as referring to external configuration files as if they were inside the archive.

Parameter-Liste

pharpath

The internal path within the phar archive to use as the mounted path location. This must be a relative path within the phar archive, and must not already exist.

externalpath

A path or URL to an external file or directory to mount within the phar archive

Rückgabewerte

No return. PharException is thrown on failure.

Fehler/Exceptions

Throws PharException if any problems occur mounting the path.

Beispiele

Beispiel #1 A Phar::mount() example

The following example shows accessing an external configuration file as if it were a path within a phar archive.

First, the code inside of a phar archive:

<?php
$configuration = simplexml_load_string(file_get_contents(
    Phar::running(false) . '/config.xml'));
?>

Next the external code used to mount the configuration file:

<?php
// first set up the association between the abstract config.xml
// and the actual one on disk
Phar::mount('phar://config.xml', '/home/example/config.xml');
// now run the application
include '/path/to/archive.phar';
?>

Another method is to put the mounting code inside the stub of the phar archive. Here is an example of setting up a default configuration file if no user configuration is specified:

<?php
// first set up the association between the abstract config.xml
// and the actual one on disk
if (defined('EXTERNAL_CONFIG')) {
    Phar::mount('config.xml', EXTERNAL_CONFIG);
    if (file_exists(__DIR__ . '/extra_config.xml')) {
        Phar::mount('extra.xml', __DIR__ . '/extra_config.xml');
    }
} else {
    Phar::mount('config.xml', 'phar://' . __FILE__ . '/default_config.xml');
    Phar::mount('extra.xml', 'phar://' . __FILE__ . '/default_extra.xml');
}
// now run the application
include 'phar://' . __FILE__ . '/index.php';
__HALT_COMPILER();
?>

...and the code externally to load this phar archive:

<?php
define('EXTERNAL_CONFIG', '/home/example/config.xml');
// now run the application
include '/path/to/archive.phar';
?>


Defines a list of up to 4 $_SERVER variables that should be modified for execution

  • « Phar::mount
  • Phar::offsetExists »
  • PHP Manual
  • Phar
  • Defines a list of up to 4 $_SERVER variables that should be modified for execution

Phar::mungServer

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::mungServer — Defines a list of up to 4 $_SERVER variables that should be modified for execution

Beschreibung

final public static Phar::mungServer ( array $munglist ) : void

Phar::mungServer() should only be called within the stub of a phar archive.

Defines a list of up to 4 $_SERVER variables that should be modified for execution. Variables that can be modified to remove traces of phar execution are REQUEST_URI, PHP_SELF, SCRIPT_NAME and SCRIPT_FILENAME.

On its own, this method does nothing. Only when combined with Phar::webPhar() does it take effect, and only when the requested file is a PHP file to be parsed. Note that the PATH_INFO and PATH_TRANSLATED variables are always modified.

The original values of variables that are modified are stored in the SERVER array with PHAR_ prepended, so for instance SCRIPT_NAME would be saved as PHAR_SCRIPT_NAME.

Parameter-Liste

munglist

an array containing as string indices any of REQUEST_URI, PHP_SELF, SCRIPT_NAME and SCRIPT_FILENAME. Other values trigger an exception, and Phar::mungServer() is case-sensitive.

Rückgabewerte

No return.

Fehler/Exceptions

Throws UnexpectedValueException if any problems are found with the passed in data.

Beispiele

Beispiel #1 A Phar::mungServer() example

<?php
// example stub
Phar::mungServer(array('REQUEST_URI'));
Phar::webPhar();
__HALT_COMPILER();
?>

Siehe auch

  • Phar::webPhar() - mapPhar for web-based phars. front controller for web applications
  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive


Determines whether a file exists in the phar

  • « Phar::mungServer
  • Phar::offsetGet »
  • PHP Manual
  • Phar
  • Determines whether a file exists in the phar

Phar::offsetExists

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::offsetExists — Determines whether a file exists in the phar

Beschreibung

public Phar::offsetExists ( string $offset ) : bool

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets.

offsetExists() is called whenever isset() is called.

Parameter-Liste

offset

The filename (relative path) to look for in a Phar.

Rückgabewerte

Returns true if the file exists within the phar, or false if not.

Beispiele

Beispiel #1 A Phar::offsetExists() example

<?php
$p = new Phar(dirname(__FILE__) . '/my.phar', 0, 'my.phar');
$p['firstfile.txt'] = 'first file';
$p['secondfile.txt'] = 'second file';
// the next set of lines call offsetExists() indirectly
var_dump(isset($p['firstfile.txt']));
var_dump(isset($p['nothere.txt']));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)

Siehe auch

  • Phar::offsetGet() - Gets a PharFileInfo object for a specific file
  • Phar::offsetSet() - Set the contents of an internal file to those of an external file
  • Phar::offsetUnset() - Remove a file from a phar


Gets a PharFileInfo object for a specific file

  • « Phar::offsetExists
  • Phar::offsetSet »
  • PHP Manual
  • Phar
  • Gets a PharFileInfo object for a specific file

Phar::offsetGet

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::offsetGet — Gets a PharFileInfo object for a specific file

Beschreibung

public Phar::offsetGet ( string $offset ) : PharFileInfo

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. Phar::offsetGet() is used for retrieving files from a Phar archive.

Parameter-Liste

offset

The filename (relative path) to look for in a Phar.

Rückgabewerte

A PharFileInfo object is returned that can be used to iterate over a file's contents or to retrieve information about the current file.

Fehler/Exceptions

This method throws BadMethodCallException if the file does not exist in the Phar archive.

Beispiele

Beispiel #1 Phar::offsetGet() example

As with all classes that implement the ArrayAccess interface, Phar::offsetGet() is automatically called when using the [] angle bracket operator.

<?php
$p = new Phar(dirname(__FILE__) . '/myphar.phar', 0, 'myphar.phar');
$p['exists.txt'] = "file exists\n";
try {
    // automatically calls offsetGet()
    echo $p['exists.txt'];
    echo $p['doesnotexist.txt'];
} catch (BadMethodCallException $e) {
    echo $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

file exists
Entry doesnotexist.txt does not exist

Siehe auch

  • Phar::offsetExists() - Determines whether a file exists in the phar
  • Phar::offsetSet() - Set the contents of an internal file to those of an external file
  • Phar::offsetUnset() - Remove a file from a phar


Set the contents of an internal file to those of an external file

  • « Phar::offsetGet
  • Phar::offsetUnset »
  • PHP Manual
  • Phar
  • Set the contents of an internal file to those of an external file

Phar::offsetSet

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::offsetSet — Set the contents of an internal file to those of an external file

Beschreibung

public Phar::offsetSet ( string $offset , string $value ) : void

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetSet is used for modifying an existing file, or adding a new file to a Phar archive.

Parameter-Liste

offset

The filename (relative path) to modify in a Phar.

value

Content of the file.

Rückgabewerte

No return values.

Fehler/Exceptions

if phar.readonly is 1, BadMethodCallException is thrown, as modifying a Phar is only allowed when phar.readonly is set to 0. Throws PharException if there are any problems flushing changes made to the Phar archive to disk.

Beispiele

Beispiel #1 A Phar::offsetSet() example

offsetSet should not be accessed directly, but instead used via array access with the [] operator.

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
    // calls offsetSet
    $p['file.txt'] = 'Hi there';
} catch (Exception $e) {
    echo 'Could not modify file.txt:', $e;
}
?>

Anmerkungen

Hinweis: Phar::addFile(), Phar::addFromString() and Phar::offsetSet() save a new phar archive each time they are called. If performance is a concern, Phar::buildFromDirectory() or Phar::buildFromIterator() should be used instead.

Siehe auch

  • Phar::offsetExists() - Determines whether a file exists in the phar
  • Phar::offsetGet() - Gets a PharFileInfo object for a specific file
  • Phar::offsetUnset() - Remove a file from a phar


Remove a file from a phar

  • « Phar::offsetSet
  • Phar::running »
  • PHP Manual
  • Phar
  • Remove a file from a phar

Phar::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::offsetUnset — Remove a file from a phar

Beschreibung

public Phar::offsetUnset ( string $offset ) : bool

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetUnset is used for deleting an existing file, and is called by the unset() language construct.

Parameter-Liste

offset

The filename (relative path) to modify in a Phar.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

if phar.readonly is 1, BadMethodCallException is thrown, as modifying a Phar is only allowed when phar.readonly is set to 0. Throws PharException if there are any problems flushing changes made to the Phar archive to disk.

Beispiele

Beispiel #1 A Phar::offsetUnset() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
    // deletes file.txt from my.phar by calling offsetUnset
    unset($p['file.txt']);
} catch (Exception $e) {
    echo 'Could not delete file.txt: ', $e;
}
?>

Siehe auch

  • Phar::offsetExists() - Determines whether a file exists in the phar
  • Phar::offsetGet() - Gets a PharFileInfo object for a specific file
  • Phar::offsetSet() - Set the contents of an internal file to those of an external file
  • Phar::unlinkArchive() - Completely remove a phar archive from disk and from memory
  • Phar::delete() - Delete a file within a phar archive


Returns the full path on disk or full phar URL to the currently executing Phar archive

  • « Phar::offsetUnset
  • Phar::setAlias »
  • PHP Manual
  • Phar
  • Returns the full path on disk or full phar URL to the currently executing Phar archive

Phar::running

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::running — Returns the full path on disk or full phar URL to the currently executing Phar archive

Beschreibung

final public static Phar::running ( bool $retphar = true ) : string

Returns the full path to the running phar archive. This is intended for use much like the __FILE__ magic constant, and only has effect inside an executing phar archive.

Inside the stub of an archive, Phar::running() returns "". Simply use __FILE__ to access the current running phar inside a stub.

Parameter-Liste

retphar

If false, the full path on disk to the phar archive is returned. If true, a full phar URL is returned.

Rückgabewerte

Returns the filename if valid, empty string otherwise.

Beispiele

Beispiel #1 A Phar::running() example

For the following example, assume the phar archive is located at /path/to/phar/my.phar.

<?php
$a = Phar::running(); // $a is "phar:///path/to/my.phar"
$b = Phar::running(false); // $b is "/path/to/my.phar"
?>


Set the alias for the Phar archive

  • « Phar::running
  • Phar::setDefaultStub »
  • PHP Manual
  • Phar
  • Set the alias for the Phar archive

Phar::setAlias

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.1)

Phar::setAlias — Set the alias for the Phar archive

Beschreibung

public Phar::setAlias ( string $alias ) : bool

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

Set the alias for the Phar archive, and write it as the permanent alias for this phar archive. An alias can be used internally to a phar archive to ensure that use of the phar stream wrapper to access internal files always works regardless of the location of the phar archive on the filesystem. Another alternative is to rely upon Phar's interception of include or to use Phar::interceptFileFuncs() and use relative paths.

Parameter-Liste

alias

A shorthand string that this archive can be referred to in phar stream wrapper access.

Rückgabewerte

Fehler/Exceptions

Throws UnexpectedValueException when write access is disabled, and PharException if the alias is already in use or any problems were encountered flushing changes to disk.

Beispiele

Beispiel #1 A Phar::setAlias() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->setAlias('myp.phar');
} catch (Exception $e) {
    // handle error
}
?>

Siehe auch

  • Phar::__construct() - Construct a Phar archive object
  • Phar::interceptFileFuncs() - Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions


Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader

  • « Phar::setAlias
  • Phar::setMetadata »
  • PHP Manual
  • Phar
  • Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader

Phar::setDefaultStub

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::setDefaultStub — Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader

Beschreibung

public Phar::setDefaultStub ( string $index = ? , string $webindex = ? ) : bool

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

This method is a convenience method that combines the functionality of Phar::createDefaultStub() and Phar::setStub().

Parameter-Liste

index

Relative path within the phar archive to run if accessed on the command-line

webindex

Relative path within the phar archive to run if accessed through a web browser

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

UnexpectedValueException is thrown if phar.readonly is enabled in php.ini. PharException is thrown if any problems are encountered flushing changes to disk.

Beispiele

Beispiel #1 A Phar::setDefaultStub() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->setDefaultStub('cli.php', 'web/index.php');
    // this is the same as:
    // $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
    // handle errors
}
?>

Siehe auch

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::createDefaultStub() - Create a phar-file format specific stub


Sets phar archive meta-data

  • « Phar::setDefaultStub
  • Phar::setSignatureAlgorithm »
  • PHP Manual
  • Phar
  • Sets phar archive meta-data

Phar::setMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::setMetadata — Sets phar archive meta-data

Beschreibung

public Phar::setMetadata ( mixed $metadata ) : void

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

Phar::setMetadata() should be used to store customized data that describes something about the phar archive as a complete entity. PharFileInfo::setMetadata() should be used for file-specific meta-data. Meta-data can slow down the performance of loading a phar archive if the data is large.

Some possible uses for meta-data include specifying which file within the archive should be used to bootstrap the archive, or the location of a file manifest like » PEAR's package.xml file. However, any useful data that describes the phar archive may be stored.

Parameter-Liste

metadata

Any PHP variable containing information to store that describes the phar archive

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 A Phar::setMetadata() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.php'] = '<?php echo "hello"';
    $p->setMetadata(array('bootstrap' => 'file.php'));
    var_dump($p->getMetadata());
} catch (Exception $e) {
    echo 'Could not create and/or modify phar:', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Siehe auch

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar
  • Phar::hasMetadata() - Returns whether phar has global meta-data


Set the signature algorithm for a phar and apply it

  • « Phar::setMetadata
  • Phar::setStub »
  • PHP Manual
  • Phar
  • Set the signature algorithm for a phar and apply it

Phar::setSignatureAlgorithm

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it

Beschreibung

public Phar::setSignatureAlgorithm ( int $sigtype , string $privatekey = ? ) : void

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

set the signature algorithm for a phar and apply it. The signature algorithm must be one of Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, or Phar::OPENSSL.

Note that all executable phar archives have a signature created automatically, SHA1 by default. data tar- or zip-based archives (archives created with the PharData class) must have their signature created and set explicitly via Phar::setSignatureAlgorithm().

Parameter-Liste

sigtype

    One of Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, or Phar::OPENSSL

privatekey

The contents of an OpenSSL private key, as extracted from a certificate or OpenSSL key file:

<?php
$private = openssl_get_privatekey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($private, $pkey);
$p->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
?>
See phar introduction for instructions on naming and placement of the public key file.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws UnexpectedValueException for many errors, and a PharException if any problems occur flushing changes to disk.

Siehe auch

  • Phar::getSupportedSignatures() - Return array of supported signature types
  • Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive


Used to set the PHP loader or bootstrap stub of a Phar archive

  • « Phar::setSignatureAlgorithm
  • Phar::startBuffering »
  • PHP Manual
  • Phar
  • Used to set the PHP loader or bootstrap stub of a Phar archive

Phar::setStub

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive

Beschreibung

public Phar::setStub ( string $stub , int $len = -1 ) : bool

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

This method is used to add a PHP bootstrap loader stub to a new Phar archive, or to replace the loader stub in an existing Phar archive.

The loader stub for a Phar archive is used whenever an archive is included directly as in this example:

<?php
include 'myphar.phar';
?>

The loader is not accessed when including a file through the phar stream wrapper like so:

<?php
include 'phar://myphar.phar/somefile.php';
?>

Parameter-Liste

stub

A string or an open stream handle to use as the executable stub for this phar archive.

len

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

UnexpectedValueException is thrown if phar.readonly is enabled in php.ini. PharException is thrown if any problems are encountered flushing changes to disk.

Beispiele

Beispiel #1 A Phar::setStub() example

<?php
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['a.php'] = '<?php var_dump("Hello");';
    $p->setStub('<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
    include 'phar://brandnewphar.phar/a.php';
    var_dump($p->getStub());
    $p['b.php'] = '<?php var_dump("World");';
    $p->setStub('<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
    include 'phar://brandnewphar.phar/b.php';
    var_dump($p->getStub());
} catch (Exception $e) {
    echo 'Write operations failed on brandnewphar.phar: ', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(5) "Hello"
string(82) "<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"
string(5) "World"
string(83) "<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"

Siehe auch

  • Phar::getStub() - Return the PHP loader or bootstrap stub of a Phar archive
  • Phar::createDefaultStub() - Create a phar-file format specific stub


Start buffering Phar write operations, do not modify the Phar object on disk

  • « Phar::setStub
  • Phar::stopBuffering »
  • PHP Manual
  • Phar
  • Start buffering Phar write operations, do not modify the Phar object on disk

Phar::startBuffering

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::startBuffering — Start buffering Phar write operations, do not modify the Phar object on disk

Beschreibung

public Phar::startBuffering ( ) : void

Although technically unnecessary, the Phar::startBuffering() method can provide a significant performance boost when creating or modifying a Phar archive with a large number of files. Ordinarily, every time a file within a Phar archive is created or modified in any way, the entire Phar archive will be recreated with the changes. In this way, the archive will be up-to-date with the activity performed on it.

However, this can be unnecessary when simply creating a new Phar archive, when it would make more sense to write the entire archive out at once. Similarly, it is often necessary to make a series of changes and to ensure that they all are possible before making any changes on disk, similar to the relational database concept of transactions. the Phar::startBuffering()/Phar::stopBuffering() pair of methods is provided for this purpose.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 A Phar::startBuffering() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
    echo 'Could not create phar:', $e;
}
echo 'The new phar has ' . $p->count() . " entries\n";
$p->startBuffering();
$p['file.txt'] = 'hi';
$p['file2.txt'] = 'there';
$p['file2.txt']->setCompressedGZ();
$p['file3.txt'] = 'babyface';
$p['file3.txt']->setMetadata(42);
$p->setStub("<?php
function __autoload($class)
{
    include 'phar://myphar.phar/' . str_replace('_', '/', $class) . '.php';
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER();");
$p->stopBuffering();
?>

Siehe auch

  • Phar::stopBuffering() - Stop buffering write requests to the Phar archive, and save changes to disk
  • Phar::isBuffering() - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk


Stop buffering write requests to the Phar archive, and save changes to disk

  • « Phar::startBuffering
  • Phar::unlinkArchive »
  • PHP Manual
  • Phar
  • Stop buffering write requests to the Phar archive, and save changes to disk

Phar::stopBuffering

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Phar::stopBuffering — Stop buffering write requests to the Phar archive, and save changes to disk

Beschreibung

public Phar::stopBuffering ( ) : void

Phar::stopBuffering() is used in conjunction with the Phar::startBuffering() method. Phar::startBuffering() can provide a significant performance boost when creating or modifying a Phar archive with a large number of files. Ordinarily, every time a file within a Phar archive is created or modified in any way, the entire Phar archive will be recreated with the changes. In this way, the archive will be up-to-date with the activity performed on it.

However, this can be unnecessary when simply creating a new Phar archive, when it would make more sense to write the entire archive out at once. Similarly, it is often necessary to make a series of changes and to ensure that they all are possible before making any changes on disk, similar to the relational database concept of transactions. The Phar::startBuffering()/Phar::stopBuffering() pair of methods is provided for this purpose.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

PharException is thrown if any problems are encountered flushing changes to disk.

Beispiele

Beispiel #1 A Phar::stopBuffering() example

<?php
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file1.txt'] = 'hi';
$p->startBuffering();
var_dump($p->getStub());
$p->setStub("<?php
function __autoload(\$class)
{
    include 'phar://brandnewphar.phar/' . str_replace('_', '/', \$class) . '.php';
}
Phar::mapPhar('brandnewphar.phar');
include 'phar://brandnewphar.phar/startup.php';
__HALT_COMPILER();");
$p->stopBuffering();
var_dump($p->getStub());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(24) "<?php __HALT_COMPILER();"
string(195) "<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('brandnewphar.phar');
include 'phar://brandnewphar.phar/startup.php';
__HALT_COMPILER();"

Siehe auch

  • Phar::startBuffering() - Start buffering Phar write operations, do not modify the Phar object on disk
  • Phar::isBuffering() - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk


Completely remove a phar archive from disk and from memory

  • « Phar::stopBuffering
  • Phar::webPhar »
  • PHP Manual
  • Phar
  • Completely remove a phar archive from disk and from memory

Phar::unlinkArchive

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::unlinkArchive — Completely remove a phar archive from disk and from memory

Beschreibung

final public static Phar::unlinkArchive ( string $archive ) : bool

Removes a phar archive from disk and memory.

Parameter-Liste

archive

The path on disk to the phar archive.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

PharException is thrown if there are any open file pointers to the phar archive, or any existing Phar, PharData, or PharFileInfo objects referring to the phar archive.

Beispiele

Beispiel #1 A Phar::unlinkArchive() example

<?php
// simple usage
Phar::unlinkArchive('/path/to/my.phar');

// more common example:
$p = new Phar('my.phar');
$fp = fopen('phar://my.phar/file.txt', 'r');
// this creates 'my.phar.gz'
$gp = $p->compress(Phar::GZ);
// remove all references to the archive
unset($p);
fclose($fp);
// now remove all traces of the archive
Phar::unlinkArchive('my.phar');
?>

Siehe auch

  • Phar::delete() - Delete a file within a phar archive
  • Phar::offsetUnset() - Remove a file from a phar


mapPhar for web-based phars. front controller for web applications

  • « Phar::unlinkArchive
  • PharData »
  • PHP Manual
  • Phar
  • mapPhar for web-based phars. front controller for web applications

Phar::webPhar

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Phar::webPhar — mapPhar for web-based phars. front controller for web applications

Beschreibung

final public static Phar::webPhar ( string $alias = ? , string $index = "index.php" , string $f404 = ? , array $mimetypes = ? , callable $rewrites = ? ) : void

Phar::mapPhar() for web-based phars. This method parses $_SERVER['REQUEST_URI'] and routes a request from a web browser to an internal file within the phar archive. In essence, it simulates a web server, routing requests to the correct file, echoing the correct headers and parsing PHP files as needed. This powerful method is part of what makes it easy to convert an existing PHP application into a phar archive. Combined with Phar::mungServer() and Phar::interceptFileFuncs(), any web application can be used unmodified from a phar archive.

Phar::webPhar() should only be called from the stub of a phar archive (see here for more information on what a stub is).

Parameter-Liste

alias

The alias that can be used in phar:// URLs to refer to this archive, rather than its full path.

index

The location within the phar of the directory index.

f404

The location of the script to run when a file is not found. This script should output the proper HTTP 404 headers.

mimetypes

An array mapping additional file extensions to MIME type. If the default mapping is sufficient, pass an empty array. By default, these extensions are mapped to these MIME types:

<?php
$mimes = array(
    'phps' => Phar::PHPS, // pass to highlight_file()
    'c' => 'text/plain',
    'cc' => 'text/plain',
    'cpp' => 'text/plain',
    'c++' => 'text/plain',
    'dtd' => 'text/plain',
    'h' => 'text/plain',
    'log' => 'text/plain',
    'rng' => 'text/plain',
    'txt' => 'text/plain',
    'xsd' => 'text/plain',
    'php' => Phar::PHP, // parse as PHP
    'inc' => Phar::PHP, // parse as PHP
    'avi' => 'video/avi',
    'bmp' => 'image/bmp',
    'css' => 'text/css',
    'gif' => 'image/gif',
    'htm' => 'text/html',
    'html' => 'text/html',
    'htmls' => 'text/html',
    'ico' => 'image/x-ico',
    'jpe' => 'image/jpeg',
    'jpg' => 'image/jpeg',
    'jpeg' => 'image/jpeg',
    'js' => 'application/x-javascript',
    'midi' => 'audio/midi',
    'mid' => 'audio/midi',
    'mod' => 'audio/mod',
    'mov' => 'movie/quicktime',
    'mp3' => 'audio/mp3',
    'mpg' => 'video/mpeg',
    'mpeg' => 'video/mpeg',
    'pdf' => 'application/pdf',
    'png' => 'image/png',
    'swf' => 'application/shockwave-flash',
    'tif' => 'image/tiff',
    'tiff' => 'image/tiff',
    'wav' => 'audio/wav',
    'xbm' => 'image/xbm',
    'xml' => 'text/xml',
);
?>

rewrites

The rewrites function is passed a string as its only parameter and must return a string or false.

If you are using fast-cgi or cgi then the parameter passed to the function is the value of the $_SERVER['PATH_INFO'] variable. Otherwise, the parameter passed to the function is the value of the $_SERVER['REQUEST_URI'] variable.

If a string is returned it is used as the internal file path. If false is returned then webPhar() will send a HTTP 403 Denied Code.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws PharException when unable to open the internal file to output, or if called from a non-stub. If an invalid array value is passed into mimetypes or an invalid callback is passed into rewrites, then UnexpectedValueException is thrown.

Beispiele

Beispiel #1 A Phar::webPhar() example

With the example below, the created phar will display Hello World if one browses to /myphar.phar/index.php or to /myphar.phar, and will display the source of index.phps if one browses to /myphar.phar/index.phps.

<?php
// creating the phar archive:
try {
    $phar = new Phar('myphar.phar');
    $phar['index.php'] = '<?php echo "Hello World"; ?>';
    $phar['index.phps'] = '<?php echo "Hello World"; ?>';
    $phar->setStub('<?php
Phar::webPhar();
__HALT_COMPILER(); ?>');
} catch (Exception $e) {
    // handle error here
}
?>

Siehe auch

  • Phar::mungServer() - Defines a list of up to 4 $_SERVER variables that should be modified for execution
  • Phar::interceptFileFuncs() - Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions


The PharData class

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

Einführung

The PharData class provides a high-level interface to accessing and creating non-executable tar and zip archives. Because these archives do not contain a stub and cannot be executed by the phar extension, it is possible to create and manipulate regular zip and tar files using the PharData class even if phar.readonly php.ini setting is 1.

Klassenbeschreibung

PharData extends RecursiveDirectoryIterator implements Countable , ArrayAccess {
/* Geerbte Konstanten */
const int FilesystemIterator::CURRENT_AS_PATHNAME = 32 ;
const int FilesystemIterator::CURRENT_AS_FILEINFO = 0 ;
const int FilesystemIterator::CURRENT_AS_SELF = 16 ;
const int FilesystemIterator::CURRENT_MODE_MASK = 240 ;
const int FilesystemIterator::KEY_AS_PATHNAME = 0 ;
const int FilesystemIterator::KEY_AS_FILENAME = 256 ;
const int FilesystemIterator::FOLLOW_SYMLINKS = 512 ;
const int FilesystemIterator::KEY_MODE_MASK = 3840 ;
const int FilesystemIterator::NEW_CURRENT_AND_KEY = 256 ;
const int FilesystemIterator::SKIP_DOTS = 4096 ;
const int FilesystemIterator::UNIX_PATHS = 8192 ;
/* Methoden */
public addEmptyDir ( string $dirname ) : void
public addFile ( string $file , string $localname = ? ) : void
public addFromString ( string $localname , string $contents ) : void
public buildFromDirectory ( string $base_dir , string $regex = ? ) : array
public buildFromIterator ( Iterator $iter , string $base_directory = ? ) : array
public compress ( int $compression , string $extension = ? ) : PharData
public compressFiles ( int $compression ) : void
public __construct ( string $fname , int $flags = ? , string $alias = ? , int $format = Phar::TAR )
public convertToData ( int $format = ? , int $compression = ? , string $extension = ? ) : PharData
public convertToExecutable ( int $format = ? , int $compression = ? , string $extension = ? ) : Phar
public copy ( string $oldfile , string $newfile ) : bool
public decompress ( string $extension = ? ) : PharData
public decompressFiles ( ) : bool
public delMetadata ( ) : bool
public delete ( string $entry ) : bool
public extractTo ( string $pathto , string|array|null $files = null , bool $overwrite = false ) : bool
public isWritable ( ) : bool
public offsetSet ( string $offset , string $value ) : void
public offsetUnset ( string $offset ) : bool
public setAlias ( string $alias ) : bool
public setDefaultStub ( string $index = ? , string $webindex = ? ) : bool
public setMetadata ( mixed $metadata ) : void
public setSignatureAlgorithm ( int $sigtype ) : void
public setStub ( string $stub , int $len = -1 ) : bool
}

Inhaltsverzeichnis

  • PharData::addEmptyDir — Add an empty directory to the tar/zip archive
  • PharData::addFile — Add a file from the filesystem to the tar/zip archive
  • PharData::addFromString — Add a file from the filesystem to the tar/zip archive
  • PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory
  • PharData::buildFromIterator — Construct a tar or zip archive from an iterator
  • PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • PharData::compressFiles — Compresses all files in the current tar/zip archive
  • PharData::__construct — Construct a non-executable tar or zip archive object
  • PharData::convertToData — Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive
  • PharData::copy — Copy a file internal to the phar archive to another new file within the phar
  • PharData::decompress — Decompresses the entire Phar archive
  • PharData::decompressFiles — Decompresses all files in the current zip archive
  • PharData::delMetadata — Deletes the global metadata of a zip archive
  • PharData::delete — Delete a file within a tar/zip archive
  • PharData::extractTo — Extract the contents of a tar/zip archive to a directory
  • PharData::isWritable — Returns true if the tar/zip archive can be modified
  • PharData::offsetSet — Set the contents of a file within the tar/zip to those of an external file or string
  • PharData::offsetUnset — Remove a file from a tar/zip archive
  • PharData::setAlias — Dummy function (Phar::setAlias is not valid for PharData)
  • PharData::setDefaultStub — Dummy function (Phar::setDefaultStub is not valid for PharData)
  • PharData::setMetadata — Sets phar archive meta-data
  • PharData::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it
  • PharData::setStub — Dummy function (Phar::setStub is not valid for PharData)


Add an empty directory to the tar/zip archive

  • « PharData
  • PharData::addFile »
  • PHP Manual
  • PharData
  • Add an empty directory to the tar/zip archive

PharData::addEmptyDir

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::addEmptyDir — Add an empty directory to the tar/zip archive

Beschreibung

public PharData::addEmptyDir ( string $dirname ) : void

With this method, an empty directory is created with path dirname. This method is similar to ZipArchive::addEmptyDir().

Parameter-Liste

dirname

The name of the empty directory to create in the phar archive

Rückgabewerte

no return value, exception is thrown on failure.

Beispiele

Beispiel #1 A PharData::addEmptyDir() example

<?php
try {
    $a = new PharData('/path/to/my.tar');

    $a->addEmptyDir('/full/path/to/file');
    // demonstrates how this file is stored
    $b = $a['full/path/to/file']->isDir();
} catch (Exception $e) {
    // handle errors here
}
?>

Siehe auch

  • Phar::addEmptyDir() - Add an empty directory to the phar archive
  • PharData::addFile() - Add a file from the filesystem to the tar/zip archive
  • PharData::addFromString() - Add a file from the filesystem to the tar/zip archive


Add a file from the filesystem to the tar/zip archive

  • « PharData::addEmptyDir
  • PharData::addFromString »
  • PHP Manual
  • PharData
  • Add a file from the filesystem to the tar/zip archive

PharData::addFile

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::addFile — Add a file from the filesystem to the tar/zip archive

Beschreibung

public PharData::addFile ( string $file , string $localname = ? ) : void

With this method, any file or URL can be added to the tar/zip archive. If the optional second parameter localname is specified, the file will be stored in the archive with that name, otherwise the file parameter is used as the path to store within the archive. URLs must have a localname or an exception is thrown. This method is similar to ZipArchive::addFile().

Parameter-Liste

file

Full or relative path to a file on disk to be added to the phar archive.

localname

Path that the file will be stored in the archive.

Rückgabewerte

no return value, exception is thrown on failure.

Beispiele

Beispiel #1 A PharData::addFile() example

<?php
try {
    $a = new PharData('/path/to/my.tar');

    $a->addFile('/full/path/to/file');
    // demonstrates how this file is stored
    $b = $a['full/path/to/file']->getContent();

    $a->addFile('/full/path/to/file', 'my/file.txt');
    $c = $a['my/file.txt']->getContent();

    // demonstrate URL usage
    $a->addFile('http://www.example.com', 'example.html');
} catch (Exception $e) {
    // handle errors here
}
?>

Anmerkungen

Hinweis: PharData::addFile(), PharData::addFromString() and PharData::offsetSet() save a new phar archive each time they are called. If performance is a concern, PharData::buildFromDirectory() or PharData::buildFromIterator() should be used instead.

Siehe auch

  • PharData::offsetSet() - Set the contents of a file within the tar/zip to those of an external file or string
  • Phar::addFile() - Add a file from the filesystem to the phar archive
  • PharData::addFromString() - Add a file from the filesystem to the tar/zip archive
  • PharData::addEmptyDir() - Add an empty directory to the tar/zip archive


Add a file from the filesystem to the tar/zip archive

  • « PharData::addFile
  • PharData::buildFromDirectory »
  • PHP Manual
  • PharData
  • Add a file from the filesystem to the tar/zip archive

PharData::addFromString

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::addFromString — Add a file from the filesystem to the tar/zip archive

Beschreibung

public PharData::addFromString ( string $localname , string $contents ) : void

With this method, any string can be added to the tar/zip archive. The file will be stored in the archive with localname as its path. This method is similar to ZipArchive::addFromString().

Parameter-Liste

localname

Path that the file will be stored in the archive.

contents

The file contents to store

Rückgabewerte

no return value, exception is thrown on failure.

Beispiele

Beispiel #1 A PharData::addFromString() example

<?php
try {
    $a = new PharData('/path/to/my.tar');

    $a->addFromString('path/to/file.txt', 'my simple file');
    $b = $a['path/to/file.txt']->getContent();

    // to add contents from a stream handle for large files, use offsetSet()
    $c = fopen('/path/to/hugefile.bin');
    $a['largefile.bin'] = $c;
    fclose($c);
} catch (Exception $e) {
    // handle errors here
}
?>

Anmerkungen

Hinweis: PharData::addFile(), PharData::addFromString() and PharData::offsetSet() save a new phar archive each time they are called. If performance is a concern, PharData::buildFromDirectory() or PharData::buildFromIterator() should be used instead.

Siehe auch

  • PharData::offsetSet() - Set the contents of a file within the tar/zip to those of an external file or string
  • Phar::addFromString() - Add a file from a string to the phar archive
  • PharData::addFile() - Add a file from the filesystem to the tar/zip archive
  • PharData::addEmptyDir() - Add an empty directory to the tar/zip archive


Construct a tar/zip archive from the files within a directory

  • « PharData::addFromString
  • PharData::buildFromIterator »
  • PHP Manual
  • PharData
  • Construct a tar/zip archive from the files within a directory

PharData::buildFromDirectory

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory

Beschreibung

public PharData::buildFromDirectory ( string $base_dir , string $regex = ? ) : array

Populate a tar/zip archive from directory contents. The optional second parameter is a regular expression (pcre) that is used to exclude files. Any filename that matches the regular expression will be included, all others will be excluded. For more fine-grained control, use PharData::buildFromIterator().

Parameter-Liste

base_dir

The full or relative path to the directory that contains all files to add to the archive.

regex

An optional pcre regular expression that is used to filter the list of files. Only file paths matching the regular expression will be included in the archive.

Rückgabewerte

Phar::buildFromDirectory() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

Fehler/Exceptions

This method throws BadMethodCallException when unable to instantiate the internal directory iterators, or a PharException if there were errors saving the phar archive.

Beispiele

Beispiel #1 A PharData::buildFromDirectory() example

<?php
$phar = new PharData('project.tar');
// add all files in the project
$phar->buildFromDirectory(dirname(__FILE__) . '/project');

$phar2 = new PharData('project2.zip');
// add all files in the project, only include php files
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
?>

Siehe auch

  • Phar::buildFromDirectory() - Construct a phar archive from the files within a directory
  • PharData::buildFromIterator() - Construct a tar or zip archive from an iterator


Construct a tar or zip archive from an iterator

  • « PharData::buildFromDirectory
  • PharData::compress »
  • PHP Manual
  • PharData
  • Construct a tar or zip archive from an iterator

PharData::buildFromIterator

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::buildFromIterator — Construct a tar or zip archive from an iterator

Beschreibung

public PharData::buildFromIterator ( Iterator $iter , string $base_directory = ? ) : array

Populate a tar or zip archive from an iterator. Two styles of iterators are supported, iterators that map the filename within the tar/zip to the name of a file on disk, and iterators like DirectoryIterator that return SplFileInfo objects. For iterators that return SplFileInfo objects, the second parameter is required.

Beispiele

Beispiel #1 A PharData::buildFromIterator() with SplFileInfo

For most tar/zip archives, the archive will reflect an actual directory layout, and the second style is the most useful. For instance, to create a tar/zip archive containing the files in this sample directory layout:

/path/to/project/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

This code could be used to add these files to the "project.tar" tar archive:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new RecursiveDirectoryIterator('/path/to/project')),
    '/path/to/project');
?>

The file project.tar can then be used immediately. PharData::buildFromIterator() does not set values such as compression, metadata, and this can be done after creating the tar/zip archive.

As an interesting note, PharData::buildFromIterator() can also be used to copy the contents of an existing phar, tar or zip archive, as the PharData object descends from DirectoryIterator:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new Phar('/path/to/anotherphar.phar')),
    'phar:///path/to/anotherphar.phar/path/to/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Beispiel #2 A PharData::buildFromIterator() with other iterators

The second form of the iterator can be used with any iterator that returns a key => value mapping, such as an ArrayIterator:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
    new ArrayIterator(
     array(
        'internal/file.php' => dirname(__FILE__) . '/somefile.php',
        'another/file.jpg' => fopen('/path/to/bigfile.jpg', 'rb'),
     )));
?>

Parameter-Liste

iter

Any iterator that either associatively maps tar/zip file to location or returns SplFileInfo objects

base_directory

For iterators that return SplFileInfo objects, the portion of each file's full path to remove when adding to the tar/zip archive

Rückgabewerte

PharData::buildFromIterator() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

Fehler/Exceptions

This method returns UnexpectedValueException when the iterator returns incorrect values, such as an integer key instead of a string, a BadMethodCallException when an SplFileInfo-based iterator is passed without a base_directory parameter, or a PharException if there were errors saving the phar archive.

Siehe auch

  • Phar::buildFromIterator() - Construct a phar archive from an iterator


Compresses the entire tar/zip archive using Gzip or Bzip2 compression

  • « PharData::buildFromIterator
  • PharData::compressFiles »
  • PHP Manual
  • PharData
  • Compresses the entire tar/zip archive using Gzip or Bzip2 compression

PharData::compress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression

Beschreibung

public PharData::compress ( int $compression , string $extension = ? ) : PharData

For tar archives, this method compresses the entire archive using gzip compression or bzip2 compression. The resulting file can be processed with the gunzip command/bunzip command, or accessed directly and transparently with the Phar extension.

For zip archives, this method fails with an exception. The zlib extension must be enabled to compress with gzip compression, the bzip2 extension must be enabled in order to compress with bzip2 compression.

In addition, this method automatically renames the archive, appending .gz, .bz2 or removing the extension if passed Phar::NONE to remove compression. Alternatively, a file extension may be specified with the second parameter.

Parameter-Liste

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

extension

By default, the extension is .tar.gz or .tar.bz2 for compressing a tar, and .tar for decompressing.

Rückgabewerte

A PharData object is returned.

Fehler/Exceptions

Throws BadMethodCallException if the zlib extension is not available, or the bzip2 extension is not enabled.

Beispiele

Beispiel #1 A PharData::compress() example

<?php
$p = new PharData('/path/to/my.tar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.tar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.tar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.tar already exists
?>

Siehe auch

  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression


Compresses all files in the current tar/zip archive

  • « PharData::compress
  • PharData::__construct »
  • PHP Manual
  • PharData
  • Compresses all files in the current tar/zip archive

PharData::compressFiles

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::compressFiles — Compresses all files in the current tar/zip archive

Beschreibung

public PharData::compressFiles ( int $compression ) : void

For tar-based archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use PharData::compress() to compress an entire tar-based archive.

For Zip-based archives, this method compresses all files in the archive using the specified compression. The zlib or bzip2 extensions must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2/zlib compression, the respective extension must be enabled in order to decompress the files prior to re-compressing.

Parameter-Liste

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Beispiele

Beispiel #1 A PharData::compressFiles() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • PharData::decompressFiles() - Decompresses all files in the current zip archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • PharData::decompress() - Decompresses the entire Phar archive


Construct a non-executable tar or zip archive object

  • « PharData::compressFiles
  • PharData::convertToData »
  • PHP Manual
  • PharData
  • Construct a non-executable tar or zip archive object

PharData::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::__construct — Construct a non-executable tar or zip archive object

Beschreibung

public PharData::__construct ( string $fname , int $flags = ? , string $alias = ? , int $format = Phar::TAR )

Parameter-Liste

fname

Path to an existing tar/zip archive or to-be-created archive

flags

Flags to pass to Phar parent class RecursiveDirectoryIterator.

alias

Alias with which this Phar archive should be referred to in calls to stream functionality.

format

One of the file format constants available within the Phar class.

Fehler/Exceptions

Throws BadMethodCallException if called twice; UnexpectedValueException if the Phar archive can't be opened.

Beispiele

Beispiel #1 A PharData::__construct() example

<?php
try {
    $p = new PharData('/path/to/my.tar', Phar::CURRENT_AS_FILEINFO | Phar::KEY_AS_FILENAME);
} catch (UnexpectedValueException $e) {
    die('Could not open my.tar');
} catch (BadMethodCallException $e) {
    echo 'technically, this cannot happen';
}
echo file_get_contents('phar:///path/to/my.tar/example.txt');
?>


Convert a phar archive to a non-executable tar or zip file

  • « PharData::__construct
  • PharData::convertToExecutable »
  • PHP Manual
  • PharData
  • Convert a phar archive to a non-executable tar or zip file

PharData::convertToData

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::convertToData — Convert a phar archive to a non-executable tar or zip file

Beschreibung

public PharData::convertToData ( int $format = ? , int $compression = ? , string $extension = ? ) : PharData

This method is used to convert a non-executable tar or zip archive to another non-executable format.

If no changes are specified, this method throws a BadMethodCallException. This method should be used to convert a tar archive to zip format or vice-versa. Although it is possible to simply change the compression of a tar archive using this method, it is better to use the PharData::compress() method for logical consistency.

If successful, the method creates a new archive on disk and returns a PharData object. The old archive is not removed from disk, and should be done manually after the process has finished.

Parameter-Liste

format

This should be one of Phar::TAR or Phar::ZIP. If set to null, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that .phar cannot be used anywhere in the filename for a non-executable tar or zip archive.

If converting to a tar-based phar archive, the default extensions are .tar, .tar.gz, and .tar.bz2 depending on specified compression. For zip-based archives, the default extension is .zip.

Rückgabewerte

The method returns a PharData object on success and throws an exception on failure.

Fehler/Exceptions

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), and a PharException if any problems are encountered during the phar creation process.

Beispiele

Beispiel #1 A PharData::convertToData() example

Using PharData::convertToData():

<?php
try {
    $tarphar = new PharData('myphar.tar');
    // note that myphar.tar is *not* unlinked
    // convert it to the non-executable tar file format
    // creates myphar.zip
    $zip = $tarphar->convertToData(Phar::ZIP);
    // create myphar.tbz
    $tgz = $zip->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
    // creates myphar.phar.tgz
    $phar = $tarphar->convertToData(Phar::PHAR); // throws exception
} catch (Exception $e) {
    // handle the error here
}
?>

Siehe auch

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive


Convert a non-executable tar/zip archive to an executable phar archive

  • « PharData::convertToData
  • PharData::copy »
  • PHP Manual
  • PharData
  • Convert a non-executable tar/zip archive to an executable phar archive

PharData::convertToExecutable

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive

Beschreibung

public PharData::convertToExecutable ( int $format = ? , int $compression = ? , string $extension = ? ) : Phar

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

This method is used to convert a non-executable tar or zip archive to an executable phar archive. Any of the three executable file formats (phar, tar or zip) can be used, and whole-archive compression can also be performed.

If no changes are specified, this method throws a BadMethodCallException.

If successful, the method creates a new archive on disk and returns a Phar object. The old archive is not removed from disk, and should be done manually after the process has finished.

Parameter-Liste

format

This should be one of Phar::PHAR, Phar::TAR, or Phar::ZIP. If set to null, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that all zip- and tar-based phar archives must contain .phar in their file extension in order to be processed as a phar archive.

If converting to a phar-based archive, the default extensions are .phar, .phar.gz, or .phar.bz2 depending on the specified compression. For tar-based phar archives, the default extensions are .phar.tar, .phar.tar.gz, and .phar.tar.bz2. For zip-based phar archives, the default extension is .phar.zip.

Rückgabewerte

The method returns a Phar object on success and throws an exception on failure.

Fehler/Exceptions

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), an UnexpectedValueException if write support is disabled, and a PharException if any problems are encountered during the phar creation process.

Beispiele

Beispiel #1 A PharData::convertToExecutable() example

Using PharData::convertToExecutable():

<?php
try {
    $tarphar = new PharData('myphar.tar');
    // convert it to the phar file format
    // note that myphar.tar is *not* unlinked
    $phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
    // creates myphar.phar.tgz
    $compressed = $tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
    // handle the error here
}
?>

Siehe auch

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file


Copy a file internal to the phar archive to another new file within the phar

  • « PharData::convertToExecutable
  • PharData::decompress »
  • PHP Manual
  • PharData
  • Copy a file internal to the phar archive to another new file within the phar

PharData::copy

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::copy — Copy a file internal to the phar archive to another new file within the phar

Beschreibung

public PharData::copy ( string $oldfile , string $newfile ) : bool

Copy a file internal to the tar/zip archive to another new file within the same archive. This is an object-oriented alternative to using copy() with the phar stream wrapper.

Parameter-Liste

oldfile

newfile

Rückgabewerte

returns true on success, but it is safer to encase method call in a try/catch block and assume success if no exception is thrown.

Fehler/Exceptions

throws UnexpectedValueException if the source file does not exist, the destination file already exists, write access is disabled, opening either file fails, reading the source file fails, or a PharException if writing the changes to the phar fails.

Beispiele

Beispiel #1 A PharData::copy() example

This example shows using PharData::copy() and the equivalent stream wrapper performance of the same thing. The primary difference between the two approaches is error handling. All PharData methods throw exceptions, whereas the stream wrapper uses trigger_error().

<?php
try {
    $phar = new PharData('myphar.tar');
    $phar['a'] = 'hi';
    $phar->copy('a', 'b');
    echo $phar['b']; // outputs "phar://myphar.tar/b"
} catch (Exception $e) {
    // handle error
}

// the stream wrapper equivalent of the above code.
// E_WARNINGS are triggered on error rather than exceptions.
copy('phar://myphar.tar/a', 'phar//myphar.tar/c');
echo file_get_contents('phar://myphar.tar/c'); // outputs "hi"
?>


Decompresses the entire Phar archive

  • « PharData::copy
  • PharData::decompressFiles »
  • PHP Manual
  • PharData
  • Decompresses the entire Phar archive

PharData::decompress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::decompress — Decompresses the entire Phar archive

Beschreibung

public PharData::decompress ( string $extension = ? ) : PharData

For tar-based archives, this method decompresses the entire archive.

For Zip-based archives, this method fails with an exception. The zlib extension must be enabled to decompress an archive compressed with gzip compression, and the bzip2 extension must be enabled in order to decompress an archive compressed with bzip2 compression.

In addition, this method automatically renames the file extension of the archive, .tar by default. Alternatively, a file extension may be specified with the extension parameter.

Parameter-Liste

extension

For decompressing, the default file extension is .tar. Use this parameter to specify another file extension. Be aware that only executable archives can contain .phar in their filename.

Rückgabewerte

A PharData object is returned.

Fehler/Exceptions

Throws BadMethodCallException if the zlib extension is not available, or the bzip2 extension is not enabled.

Beispiele

Beispiel #1 A PharData::decompress() example

<?php
$p = new PharData('/path/to/my.tar.gz');
$p->decompress(); // creates /path/to/my.tar
?>

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • PharData::compressFiles() - Compresses all files in the current tar/zip archive
  • PharData::decompressFiles() - Decompresses all files in the current zip archive


Decompresses all files in the current zip archive

  • « PharData::decompress
  • PharData::delMetadata »
  • PHP Manual
  • PharData
  • Decompresses all files in the current zip archive

PharData::decompressFiles

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::decompressFiles — Decompresses all files in the current zip archive

Beschreibung

public PharData::decompressFiles ( ) : bool

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

For tar-based archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use PharData::compress() to compress an entire tar-based archive.

For Zip-based archives, this method decompresses all files in the archive. The zlib or bzip2 extensions must be enabled to take advantage of this feature if any files are compressed using bzip2/zlib compression.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Throws BadMethodCallException if the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Beispiele

Beispiel #1 A PharData::decompressFiles() example

<?php
$p = new PharData('/path/to/my.zip');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
$p->decompressFiles();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressed(Phar::BZ2));
    var_dump($file->isCompressed(Phar::GZ));
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(10) "myfile.txt"
int(4096)
bool(false)
bool(true)
string(11) "myfile2.txt"
int(4096)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • PharData::compressFiles() - Compresses all files in the current tar/zip archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • PharData::decompress() - Decompresses the entire Phar archive


Deletes the global metadata of a zip archive

  • « PharData::decompressFiles
  • PharData::delete »
  • PHP Manual
  • PharData
  • Deletes the global metadata of a zip archive

PharData::delMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::delMetadata — Deletes the global metadata of a zip archive

Beschreibung

public PharData::delMetadata ( ) : bool

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

Deletes the global metadata of the zip archive

Parameter-Liste

Rückgabewerte

returns true on success, but it is better to check for thrown exception, and assume success if none is thrown.

Fehler/Exceptions

Throws PharException if errors occur while flushing changes to disk.

Beispiele

Beispiel #1 A PharData::delMetaData() example

<?php
try {
    $phar = new PharData('myphar.zip');
    var_dump($phar->getMetadata());
    $phar->setMetadata("hi there");
    var_dump($phar->getMetadata());
    $phar->delMetadata();
    var_dump($phar->getMetadata());
} catch (Exception $e) {
    // handle errors
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
string(8) "hi there"
NULL

Siehe auch

  • Phar::delMetadata() - Deletes the global metadata of the phar


Delete a file within a tar/zip archive

  • « PharData::delMetadata
  • PharData::extractTo »
  • PHP Manual
  • PharData
  • Delete a file within a tar/zip archive

PharData::delete

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::delete — Delete a file within a tar/zip archive

Beschreibung

public PharData::delete ( string $entry ) : bool

Delete a file within an archive. This is the functional equivalent of calling unlink() on the stream wrapper equivalent, as shown in the example below.

Parameter-Liste

entry

Path within an archive to the file to delete.

Rückgabewerte

returns true on success, but it is better to check for thrown exception, and assume success if none is thrown.

Fehler/Exceptions

Throws PharException if errors occur while flushing changes to disk.

Beispiele

Beispiel #1 A PharData::delete() example

<?php
try {
    $phar = new PharData('myphar.zip');
    $phar->delete('unlink/me.php');
    // this is equivalent to:
    unlink('phar://myphar.phar/unlink/me.php');
} catch (Exception $e) {
    // handle errors
}
?>

Siehe auch

  • Phar::delete() - Delete a file within a phar archive


Extract the contents of a tar/zip archive to a directory

  • « PharData::delete
  • PharData::isWritable »
  • PHP Manual
  • PharData
  • Extract the contents of a tar/zip archive to a directory

PharData::extractTo

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::extractTo — Extract the contents of a tar/zip archive to a directory

Beschreibung

public PharData::extractTo ( string $pathto , string|array|null $files = null , bool $overwrite = false ) : bool

Extract all files within a tar/zip archive to disk. Extracted files and directories preserve permissions as stored in the archive. The optional parameters allow optional control over which files are extracted, and whether existing files on disk can be overwritten. The second parameter files can be either the name of a file or directory to extract, or an array of names of files and directories to extract. By default, this method will not overwrite existing files, the third parameter can be set to true to enable overwriting of files. This method is similar to ZipArchive::extractTo().

Parameter-Liste

pathto

Path to extract the given files to

files

The name of a file or directory to extract, or an array of files/directories to extract

overwrite

Set to true to enable overwriting existing files

Rückgabewerte

returns true on success, but it is better to check for thrown exception, and assume success if none is thrown.

Fehler/Exceptions

Throws PharException if errors occur while flushing changes to disk.

Beispiele

Beispiel #1 A PharData::extractTo() example

<?php
try {
    $phar = new PharData('myphar.tar');
    $phar->extractTo('/full/path'); // extract all files
    $phar->extractTo('/another/path', 'file.txt'); // extract only file.txt
    $phar->extractTo('/this/path',
        array('file1.txt', 'file2.txt')); // extract 2 files only
    $phar->extractTo('/third/path', null, true); // extract all files, and overwrite
} catch (Exception $e) {
    // handle errors
}
?>

Siehe auch

  • Phar::extractTo() - Extract the contents of a phar archive to a directory


Returns true if the tar/zip archive can be modified

  • « PharData::extractTo
  • PharData::offsetSet »
  • PHP Manual
  • PharData
  • Returns true if the tar/zip archive can be modified

PharData::isWritable

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::isWritable — Returns true if the tar/zip archive can be modified

Beschreibung

public PharData::isWritable ( ) : bool

This method returns true if the tar/zip archive on disk is not read-only. Unlike Phar::isWritable(), data-only tar/zip archives can be modified even if phar.readonly is set to 1.

Parameter-Liste

No parameters.

Rückgabewerte

Returns true if the tar/zip archive can be modified

Siehe auch

  • Phar::canWrite() - Returns whether phar extension supports writing and creating phars
  • Phar::isWritable() - Returns true if the phar archive can be modified


Set the contents of a file within the tar/zip to those of an external file or string

  • « PharData::isWritable
  • PharData::offsetUnset »
  • PHP Manual
  • PharData
  • Set the contents of a file within the tar/zip to those of an external file or string

PharData::offsetSet

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::offsetSet — Set the contents of a file within the tar/zip to those of an external file or string

Beschreibung

public PharData::offsetSet ( string $offset , string $value ) : void

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a tar/zip archive using array access brackets. offsetSet is used for modifying an existing file, or adding a new file to a tar/zip archive.

Parameter-Liste

offset

The filename (relative path) to modify in a tar or zip archive.

value

Content of the file.

Rückgabewerte

No return values.

Fehler/Exceptions

Throws PharException if there are any problems flushing changes made to the tar/zip archive to disk.

Beispiele

Beispiel #1 A PharData::offsetSet() example

offsetSet should not be accessed directly, but instead used via array access with the [] operator.

<?php
$p = new PharData('/path/to/my.tar');
try {
    // calls offsetSet
    $p['file.txt'] = 'Hi there';
} catch (Exception $e) {
    echo 'Could not modify file.txt:', $e;
}
?>

Anmerkungen

Hinweis: PharData::addFile(), PharData::addFromString() and PharData::offsetSet() save a new phar archive each time they are called. If performance is a concern, PharData::buildFromDirectory() or PharData::buildFromIterator() should be used instead.

Siehe auch

  • Phar::offsetSet() - Set the contents of an internal file to those of an external file


Remove a file from a tar/zip archive

  • « PharData::offsetSet
  • PharData::setAlias »
  • PHP Manual
  • PharData
  • Remove a file from a tar/zip archive

PharData::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::offsetUnset — Remove a file from a tar/zip archive

Beschreibung

public PharData::offsetUnset ( string $offset ) : bool

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a tar/zip archive using array access brackets. offsetUnset is used for deleting an existing file, and is called by the unset() language construct.

Parameter-Liste

offset

The filename (relative path) to modify in the tar/zip archive.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Throws PharException if there are any problems flushing changes made to the tar/zip archive to disk.

Beispiele

Beispiel #1 A PharData::offsetUnset() example

<?php
$p = new PharData('/path/to/my.zip');
try {
    // deletes file.txt from my.zip by calling offsetUnset
    unset($p['file.txt']);
} catch (Exception $e) {
    echo 'Could not delete file.txt: ', $e;
}
?>

Siehe auch

  • Phar::offsetUnset() - Remove a file from a phar


Dummy function (Phar::setAlias is not valid for PharData)

  • « PharData::offsetUnset
  • PharData::setDefaultStub »
  • PHP Manual
  • PharData
  • Dummy function (Phar::setAlias is not valid for PharData)

PharData::setAlias

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::setAlias — Dummy function (Phar::setAlias is not valid for PharData)

Beschreibung

public PharData::setAlias ( string $alias ) : bool

Non-executable tar/zip archives cannot have an alias, so this method simply throws an exception.

Parameter-Liste

alias

A shorthand string that this archive can be referred to in phar stream wrapper access. This parameter is ignored.

Rückgabewerte

Fehler/Exceptions

Throws PharException on all method calls

Siehe auch

  • Phar::setAlias() - Set the alias for the Phar archive


Dummy function (Phar::setDefaultStub is not valid for PharData)

  • « PharData::setAlias
  • PharData::setMetadata »
  • PHP Manual
  • PharData
  • Dummy function (Phar::setDefaultStub is not valid for PharData)

PharData::setDefaultStub

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::setDefaultStub — Dummy function (Phar::setDefaultStub is not valid for PharData)

Beschreibung

public PharData::setDefaultStub ( string $index = ? , string $webindex = ? ) : bool

Non-executable tar/zip archives cannot have a stub, so this method simply throws an exception.

Parameter-Liste

index

Relative path within the phar archive to run if accessed on the command-line

webindex

Relative path within the phar archive to run if accessed through a web browser

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Throws PharException on all method calls

Siehe auch

  • Phar::setDefaultStub() - Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader


Sets phar archive meta-data

  • « PharData::setDefaultStub
  • PharData::setSignatureAlgorithm »
  • PHP Manual
  • PharData
  • Sets phar archive meta-data

PharData::setMetadata

(No version information available, might only be in Git)

PharData::setMetadata — Sets phar archive meta-data

Beschreibung

public PharData::setMetadata ( mixed $metadata ) : void

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

Phar::setMetadata() should be used to store customized data that describes something about the phar archive as a complete entity. PharFileInfo::setMetadata() should be used for file-specific meta-data. Meta-data can slow down the performance of loading a phar archive if the data is large.

Some possible uses for meta-data include specifying which file within the archive should be used to bootstrap the archive, or the location of a file manifest like » PEAR's package.xml file. However, any useful data that describes the phar archive may be stored.

Parameter-Liste

metadata

Any PHP variable containing information to store that describes the phar archive

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 A Phar::setMetadata() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.php'] = '<?php echo "hello"';
    $p->setMetadata(array('bootstrap' => 'file.php'));
    var_dump($p->getMetadata());
} catch (Exception $e) {
    echo 'Could not create and/or modify phar:', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Siehe auch

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar
  • Phar::hasMetadata() - Returns whether phar has global meta-data


Set the signature algorithm for a phar and apply it

  • « PharData::setMetadata
  • PharData::setStub »
  • PHP Manual
  • PharData
  • Set the signature algorithm for a phar and apply it

PharData::setSignatureAlgorithm

(No version information available, might only be in Git)

PharData::setSignatureAlgorithm — Set the signature algorithm for a phar and apply it

Beschreibung

public PharData::setSignatureAlgorithm ( int $sigtype ) : void

Hinweis:

Diese Methode des Phar-Objekts funktioniert nur wenn die php.ini-Einstellung phar.readonly auf 0 gesetzt ist, sonst wird eine PharException geworfen.

Set the signature algorithm for a phar and apply it. The signature algorithm must be one of Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, or Phar::OPENSSL.

Parameter-Liste

sigtype

    One of Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, or Phar::OPENSSL

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws UnexpectedValueException for many errors, BadMethodCallException if called for a zip- or a tar-based phar archive, and a PharException if any problems occur flushing changes to disk.

Siehe auch

  • Phar::getSupportedSignatures() - Return array of supported signature types
  • Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive


Dummy function (Phar::setStub is not valid for PharData)

  • « PharData::setSignatureAlgorithm
  • PharFileInfo »
  • PHP Manual
  • PharData
  • Dummy function (Phar::setStub is not valid for PharData)

PharData::setStub

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::setStub — Dummy function (Phar::setStub is not valid for PharData)

Beschreibung

public PharData::setStub ( string $stub , int $len = -1 ) : bool

Non-executable tar/zip archives cannot have a stub, so this method simply throws an exception.

Parameter-Liste

stub

A string or an open stream handle to use as the executable stub for this phar archive. This parameter is ignored.

len

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Throws PharException on all method calls

Siehe auch

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive


The PharFileInfo class

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Einführung

The PharFileInfo class provides a high-level interface to the contents and attributes of a single file within a phar archive.

Klassenbeschreibung

PharFileInfo extends SplFileInfo {
/* Methoden */
public chmod ( int $permissions ) : void
public compress ( int $compression ) : bool
public __construct ( string $entry )
public decompress ( ) : bool
public delMetadata ( ) : bool
public getCRC32 ( ) : int
public getCompressedSize ( ) : int
public getContent ( ) : string
public getMetadata ( ) : mixed
public getPharFlags ( ) : int
public hasMetadata ( ) : bool
public isCRCChecked ( ) : bool
public isCompressed ( int $compression_type = 9021976 ) : bool
public setMetadata ( mixed $metadata ) : void
/* Geerbte Methoden */
public SplFileInfo::getATime ( ) : int
public SplFileInfo::getBasename ( string $suffix = ? ) : string
public SplFileInfo::getCTime ( ) : int
public SplFileInfo::getExtension ( ) : string
public SplFileInfo::getFileInfo ( string $class_name = ? ) : SplFileInfo
public SplFileInfo::getFilename ( ) : string
public SplFileInfo::getGroup ( ) : int
public SplFileInfo::getInode ( ) : int
public SplFileInfo::getLinkTarget ( ) : string
public SplFileInfo::getMTime ( ) : int
public SplFileInfo::getOwner ( ) : int
public SplFileInfo::getPath ( ) : string
public SplFileInfo::getPathInfo ( string $class_name = ? ) : SplFileInfo
public SplFileInfo::getPathname ( ) : string
public SplFileInfo::getPerms ( ) : int
public SplFileInfo::getRealPath ( ) : string
public SplFileInfo::getSize ( ) : int
public SplFileInfo::getType ( ) : string
public SplFileInfo::isDir ( ) : bool
public SplFileInfo::isExecutable ( ) : bool
public SplFileInfo::isFile ( ) : bool
public SplFileInfo::isLink ( ) : bool
public SplFileInfo::isReadable ( ) : bool
public SplFileInfo::isWritable ( ) : bool
public SplFileInfo::openFile ( string $open_mode = "r" , bool $use_include_path = false , resource $context = null ) : SplFileObject
public SplFileInfo::setFileClass ( string $class_name = "SplFileObject" ) : void
public SplFileInfo::setInfoClass ( string $class_name = "SplFileInfo" ) : void
public SplFileInfo::__toString ( ) : string
}

Inhaltsverzeichnis

  • PharFileInfo::chmod — Sets file-specific permission bits
  • PharFileInfo::compress — Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::__construct — Construct a Phar entry object
  • PharFileInfo::decompress — Decompresses the current Phar entry within the phar
  • PharFileInfo::delMetadata — Deletes the metadata of the entry
  • PharFileInfo::getCRC32 — Returns CRC32 code or throws an exception if CRC has not been verified
  • PharFileInfo::getCompressedSize — Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::getContent — Get the complete file contents of the entry
  • PharFileInfo::getMetadata — Returns file-specific meta-data saved with a file
  • PharFileInfo::getPharFlags — Returns the Phar file entry flags
  • PharFileInfo::hasMetadata — Returns the metadata of the entry
  • PharFileInfo::isCRCChecked — Returns whether file entry has had its CRC verified
  • PharFileInfo::isCompressed — Returns whether the entry is compressed
  • PharFileInfo::setMetadata — Sets file-specific meta-data saved with a file


Sets file-specific permission bits

  • « PharFileInfo
  • PharFileInfo::compress »
  • PHP Manual
  • PharFileInfo
  • Sets file-specific permission bits

PharFileInfo::chmod

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::chmod — Sets file-specific permission bits

Beschreibung

public PharFileInfo::chmod ( int $permissions ) : void

PharFileInfo::chmod() allows setting of the executable file permissions bit, as well as read-only bits. Writeable bits are ignored, and set at runtime based on the phar.readonly INI variable. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Parameter-Liste

permissions

permissions (see chmod())

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 A PharFileInfo::chmod() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar('brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.sh'] = '#!/usr/local/lib/php
    <?php echo "hi"; ?>';
    // set executable bit
    $p['file.sh']->chmod(0555);
    var_dump($p['file.sh']->isExecutable());
} catch (Exception $e) {
    echo 'Could not create/modify phar: ', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Compresses the current Phar entry with either zlib or bzip2 compression

  • « PharFileInfo::chmod
  • PharFileInfo::__construct »
  • PHP Manual
  • PharFileInfo
  • Compresses the current Phar entry with either zlib or bzip2 compression

PharFileInfo::compress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharFileInfo::compress — Compresses the current Phar entry with either zlib or bzip2 compression

Beschreibung

public PharFileInfo::compress ( int $compression ) : bool

This method compresses the file inside the Phar archive using either bzip2 compression or zlib compression. The bzip2 or zlib extension must be enabled to take advantage of this feature. In addition, if the file is already compressed, the respective extension must be enabled in order to decompress the file. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2/zlib extension is not available.

Beispiele

Beispiel #1 A PharFileInfo::compress() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCompressed(Phar::BZ2));
    $p['myfile.txt']->compress(Phar::BZ2);
    var_dump($file->isCompressed(Phar::BZ2));
} catch (Exception $e) {
    echo 'Create/modify operations on my.phar failed: ', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms


Construct a Phar entry object

  • « PharFileInfo::compress
  • PharFileInfo::decompress »
  • PHP Manual
  • PharFileInfo
  • Construct a Phar entry object

PharFileInfo::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::__construct — Construct a Phar entry object

Beschreibung

public PharFileInfo::__construct ( string $entry )

This should not be called directly. Instead, a PharFileInfo object is initialized by calling Phar::offsetGet() through array access.

Parameter-Liste

entry

The full url to retrieve a file. If you wish to retrieve the information for the file my/file.php from the phar boo.phar, the entry should be phar://boo.phar/my/file.php.

Fehler/Exceptions

Throws BadMethodCallException if __construct() is called twice. Throws UnexpectedValueException if the phar URL requested is malformed, the requested phar cannot be opened, or the file can't be found within the phar.

Beispiele

Beispiel #1 A PharFileInfo::__construct() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['testfile.txt'] = "hi\nthere\ndude";
    $file = $p['testfile.txt'];
    foreach ($file as $line => $text) {
        echo "line number $line: $text";
    }
    // this also works
    $file = new PharFileInfo('phar:///path/to/my.phar/testfile.txt');
    foreach ($file as $line => $text) {
        echo "line number $line: $text";
    }
} catch (Exception $e) {
    echo 'Phar operations failed: ', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

line number 1: hi
line number 2: there
line number 3: dude
line number 1: hi
line number 2: there
line number 3: dude


Decompresses the current Phar entry within the phar

  • « PharFileInfo::__construct
  • PharFileInfo::delMetadata »
  • PHP Manual
  • PharFileInfo
  • Decompresses the current Phar entry within the phar

PharFileInfo::decompress

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharFileInfo::decompress — Decompresses the current Phar entry within the phar

Beschreibung

public PharFileInfo::decompress ( ) : bool

This method decompresses the file inside the Phar archive. Depending on how the file is compressed, the bzip2 or zlib extensions must be enabled to take advantage of this feature. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2/zlib extension is not available.

Beispiele

Beispiel #1 A PharFileInfo::decompress() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    $file->compress(Phar::GZ);
    var_dump($file->isCompressed());
    $p['myfile.txt']->decompress();
    var_dump($file->isCompressed());
} catch (Exception $e) {
    echo 'Create/modify failed for my.phar: ', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(4096)
bool(false)

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms


Deletes the metadata of the entry

  • « PharFileInfo::decompress
  • PharFileInfo::getCRC32 »
  • PHP Manual
  • PharFileInfo
  • Deletes the metadata of the entry

PharFileInfo::delMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.0)

PharFileInfo::delMetadata — Deletes the metadata of the entry

Beschreibung

public PharFileInfo::delMetadata ( ) : bool

Deletes the metadata of the entry, if any.

Parameter-Liste

No parameters.

Rückgabewerte

Returns true if successful, false if the entry had no metadata. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Fehler/Exceptions

Throws PharException if errors occurred while flushing changes to disk, and BadMethodCallException if write access is disabled.

Beispiele

Beispiel #1 A PharFileInfo::delMetaData() example

<?php
try {
    $a = new Phar('myphar.phar');
    $a['hi'] = 'hi';
    var_dump($a['hi']->delMetadata());
    $a['hi']->setMetadata('there');
    var_dump($a['hi']->delMetadata());
    var_dump($a['hi']->delMetadata());
} catch (Exception $e) {
    // handle errors
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(false)

Siehe auch

  • PharFileInfo::setMetadata() - Sets file-specific meta-data saved with a file
  • PharFileInfo::hasMetadata() - Returns the metadata of the entry
  • PharFileInfo::getMetadata() - Returns file-specific meta-data saved with a file
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data


Returns CRC32 code or throws an exception if CRC has not been verified

  • « PharFileInfo::delMetadata
  • PharFileInfo::getCompressedSize »
  • PHP Manual
  • PharFileInfo
  • Returns CRC32 code or throws an exception if CRC has not been verified

PharFileInfo::getCRC32

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::getCRC32 — Returns CRC32 code or throws an exception if CRC has not been verified

Beschreibung

public PharFileInfo::getCRC32 ( ) : int

This returns the crc32() checksum of the file within the Phar archive.

Rückgabewerte

The crc32() checksum of the file within the Phar archive.

Fehler/Exceptions

Throws BadMethodCallException if the file has not yet had its CRC32 verified. This should be impossible with normal use, as the CRC is verified upon opening the file for reading or writing.

Beispiele

Beispiel #1 A PharFileInfo::getCRC32() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    echo $file->getCRC32();
} catch (Exception $e) {
    echo 'Write operations on my.phar.phar failed: ', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3633523372


Returns the actual size of the file (with compression) inside the Phar archive

  • « PharFileInfo::getCRC32
  • PharFileInfo::getContent »
  • PHP Manual
  • PharFileInfo
  • Returns the actual size of the file (with compression) inside the Phar archive

PharFileInfo::getCompressedSize

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::getCompressedSize — Returns the actual size of the file (with compression) inside the Phar archive

Beschreibung

public PharFileInfo::getCompressedSize ( ) : int

This returns the size of the file within the Phar archive. Uncompressed files will return the same value for getCompressedSize as they will with filesize()

Rückgabewerte

The size in bytes of the file within the Phar archive on disk.

Beispiele

Beispiel #1 A PharFileInfo::getCompressedSize() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    echo $file->getCompressedSize();
} catch (Exception $e) {
    echo 'Write operations failed on my.phar: ', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2

Siehe auch

  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compressFiles() - Compresses all files in the current Phar archive


Get the complete file contents of the entry

  • « PharFileInfo::getCompressedSize
  • PharFileInfo::getMetadata »
  • PHP Manual
  • PharFileInfo
  • Get the complete file contents of the entry

PharFileInfo::getContent

(PHP 5 >= 5.3.0, PHP 7)

PharFileInfo::getContent — Get the complete file contents of the entry

Beschreibung

public PharFileInfo::getContent ( ) : string

This function behaves like file_get_contents() but for Phar.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the file contents.


Returns file-specific meta-data saved with a file

  • « PharFileInfo::getContent
  • PharFileInfo::getPharFlags »
  • PHP Manual
  • PharFileInfo
  • Returns file-specific meta-data saved with a file

PharFileInfo::getMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::getMetadata — Returns file-specific meta-data saved with a file

Beschreibung

public PharFileInfo::getMetadata ( ) : mixed

Return meta-data that was saved in the Phar archive's manifest for this file.

Parameter-Liste

Rückgabewerte

any PHP variable that can be serialized and is stored as meta-data for the file, or null if no meta-data is stored.

Beispiele

Beispiel #1 A PharFileInfo::getMetadata() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.txt'] = 'hello';
    $p['file.txt']->setMetadata(array('user' => 'bill', 'mime-type' => 'text/plain'));
    var_dump($p['file.txt']->getMetadata());
} catch (Exception $e) {
    echo 'Could not create/modify brandnewphar.phar: ', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["user"]=>
  string(4) "bill"
  ["mime-type"]=>
  string(10) "text/plain"
}

Siehe auch

  • PharFileInfo::setMetadata() - Sets file-specific meta-data saved with a file
  • PharFileInfo::hasMetadata() - Returns the metadata of the entry
  • PharFileInfo::delMetadata() - Deletes the metadata of the entry
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data


Returns the Phar file entry flags

  • « PharFileInfo::getMetadata
  • PharFileInfo::hasMetadata »
  • PHP Manual
  • PharFileInfo
  • Returns the Phar file entry flags

PharFileInfo::getPharFlags

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::getPharFlags — Returns the Phar file entry flags

Beschreibung

public PharFileInfo::getPharFlags ( ) : int

This returns the flags set in the manifest for a Phar. This will always return 0 in the current implementation.

Rückgabewerte

The Phar flags (always 0 in the current implementation)

Beispiele

Beispiel #1 A PharFileInfo::getPharFlags() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->getPharFlags());
} catch (Exception $e) {
    echo 'Could not create/modify my.phar: ', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)


Returns the metadata of the entry

  • « PharFileInfo::getPharFlags
  • PharFileInfo::isCRCChecked »
  • PHP Manual
  • PharFileInfo
  • Returns the metadata of the entry

PharFileInfo::hasMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.2.0)

PharFileInfo::hasMetadata — Returns the metadata of the entry

Beschreibung

public PharFileInfo::hasMetadata ( ) : bool

Returns the metadata of a file within a phar archive.

Parameter-Liste

No parameters.

Rückgabewerte

Returns false if no metadata is set or is null, true if metadata is not null

Siehe auch

  • PharFileInfo::setMetadata() - Sets file-specific meta-data saved with a file
  • PharFileInfo::getMetadata() - Returns file-specific meta-data saved with a file
  • PharFileInfo::delMetadata() - Deletes the metadata of the entry
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data


Returns whether file entry has had its CRC verified

  • « PharFileInfo::hasMetadata
  • PharFileInfo::isCompressed »
  • PHP Manual
  • PharFileInfo
  • Returns whether file entry has had its CRC verified

PharFileInfo::isCRCChecked

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::isCRCChecked — Returns whether file entry has had its CRC verified

Beschreibung

public PharFileInfo::isCRCChecked ( ) : bool

This returns whether a file within a Phar archive has had its CRC verified.

Rückgabewerte

true if the file has had its CRC verified, false if not.

Beispiele

Beispiel #1 A PharFileInfo::isCRCChecked() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCRCChecked());
} catch (Exception $e) {
    echo 'Create/modify operations failed on my.phar: ', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Returns whether the entry is compressed

  • « PharFileInfo::isCRCChecked
  • PharFileInfo::setMetadata »
  • PHP Manual
  • PharFileInfo
  • Returns whether the entry is compressed

PharFileInfo::isCompressed

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::isCompressed — Returns whether the entry is compressed

Beschreibung

public PharFileInfo::isCompressed ( int $compression_type = 9021976 ) : bool

This returns whether a file is compressed within a Phar archive with either Gzip or Bzip2 compression.

Parameter-Liste

compression_type

One of Phar::GZ or Phar::BZ2, defaults to any compression.

Rückgabewerte

true if the file is compressed within the Phar archive, false if not.

Beispiele

Beispiel #1 A PharFileInfo::isCompressed() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p['myfile2.txt']->setCompressedGZ();
    $file = $p['myfile.txt'];
    $file2 = $p['myfile2.txt'];
    var_dump($file->isCompressed());
    var_dump($file2->isCompressed());
} catch (Exception $e) {
    echo 'Create/modify on phar my.phar failed: ', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)

Siehe auch

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compressFiles() - Compresses all files in the current Phar archive


Sets file-specific meta-data saved with a file

  • « PharFileInfo::isCompressed
  • PharException »
  • PHP Manual
  • PharFileInfo
  • Sets file-specific meta-data saved with a file

PharFileInfo::setMetadata

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

PharFileInfo::setMetadata — Sets file-specific meta-data saved with a file

Beschreibung

public PharFileInfo::setMetadata ( mixed $metadata ) : void

PharFileInfo::setMetadata() should only be used to store customized data in a file that cannot be represented with existing information stored with a file. Meta-data can significantly slow down the performance of loading a phar archive if the data is large, or if there are many files containing meta-data. It is important to note that file permissions are natively supported inside a phar; it is possible to set them with the PharFileInfo::chmod() method. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Some possible uses for meta-data include passing a user/group that should be set when a file is extracted from the phar to disk. Other uses could include explicitly specifying a MIME type to return. However, any useful data that describes a file, but should not be contained inside of it may be stored.

Parameter-Liste

metadata

Any PHP variable containing information to store alongside a file

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 A PharFileInfo::setMetadata() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.txt'] = 'hello';
    $p['file.txt']->setMetadata(array('user' => 'bill', 'mime-type' => 'text/plain'));
    var_dump($p['file.txt']->getMetaData());
} catch (Exception $e) {
    echo 'Could not create/modify phar: ', $e;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["user"]=>
  string(4) "bill"
  ["mime-type"]=>
  string(10) "text/plain"
}

Siehe auch

  • PharFileInfo::hasMetadata() - Returns the metadata of the entry
  • PharFileInfo::getMetadata() - Returns file-specific meta-data saved with a file
  • PharFileInfo::delMetadata() - Deletes the metadata of the entry
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data


The PharException class

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 1.0.0)

Einführung

The PharException class provides a phar-specific exception class for try/catch blocks.

Klassenbeschreibung

PharException extends Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


Rar Archiving

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • RAR Funktionen
    • rar_wrapper_cache_stats — Cache hits and misses for the URL wrapper
  • RarArchive — The RarArchive class
    • RarArchive::close — Close RAR archive and free all resources
    • RarArchive::getComment — Get comment text from the RAR archive
    • RarArchive::getEntries — Get full list of entries from the RAR archive
    • RarArchive::getEntry — Get entry object from the RAR archive
    • RarArchive::isBroken — Test whether an archive is broken (incomplete)
    • RarArchive::isSolid — Check whether the RAR archive is solid
    • RarArchive::open — Open RAR archive
    • RarArchive::setAllowBroken — Whether opening broken archives is allowed
    • RarArchive::__toString — Get text representation
  • RarEntry — The RarEntry class
    • RarEntry::extract — Extract entry from the archive
    • RarEntry::getAttr — Get attributes of the entry
    • RarEntry::getCrc — Get CRC of the entry
    • RarEntry::getFileTime — Get entry last modification time
    • RarEntry::getHostOs — Get entry host OS
    • RarEntry::getMethod — Get pack method of the entry
    • RarEntry::getName — Get name of the entry
    • RarEntry::getPackedSize — Get packed size of the entry
    • RarEntry::getStream — Get file handler for entry
    • RarEntry::getUnpackedSize — Get unpacked size of the entry
    • RarEntry::getVersion — Get minimum version of RAR program required to unpack the entry
    • RarEntry::isDirectory — Test whether an entry represents a directory
    • RarEntry::isEncrypted — Test whether an entry is encrypted
    • RarEntry::__toString — Get text representation of entry
  • RarException — The RarException class
    • RarException::isUsingExceptions — Check whether error handling with exceptions is in use
    • RarException::setUsingExceptions — Activate and deactivate error handling with exceptions


Einführung

RAR ist ein von Eugene Roshal erstellter machtvoller und effektiver Archiver. Diese Erweiterung erlaubt es, RAR-Archive auszulesen, aber nicht, diese zu erstellen, da dies von der UnRAR-Bibliothek nicht unterstützt und auch durch dessen Lizenz direkt verboten ist.

Mehr Information über RAR und UnRAR kann unter » http://www.rarlabs.com/ gefunden werden.


Installation

RAR ist aktuell verfügbar durch PECL » https://pecl.php.net/package/rar.

Sie können den PECL-Installer benutzen, um die RAR-Erweiterung zu installieren, mit diesem Befehl: pecl -v install rar.

Sie können immer das tar.gz Paket herunterladen und RAR manuell installieren.:

Beispiel #1 Rar Installation

gunzip rar-xxx.tgz
tar -xvf rar-xxx.tar
cd rar-xxx
phpize
./configure && make && make install

Windows Benutzer müssen php_rar.dll in der php.ini aktivieren, um diese Funktionen verwenden zu können. Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


Ressource-Typen

Diese Erweiterung registriert drei interne Klassen: Die von rar_open() zurückgegebenen Archiv-Darstellungen - RarArchive -,die von rar_list() und rar_entry_get() zurückgegebenen Eintragsdarstellungen - RarEntry und der Ausnahmetyp RarException.

Diese Erweiterung registriert auch eine Stream Ressource, "rar" genannt und einen URL Wrapper, "rar wrapper" genannt, registriert unter dem Präfix "rar".


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

RAR_HOST_MSDOS (int)
Use RarEntry::HOST_MSDOS instead.
RAR_HOST_OS2 (int)
Use RarEntry::HOST_OS2 instead.
RAR_HOST_WIN32 (int)
Use RarEntry::HOST_WIN32 instead.
RAR_HOST_UNIX (int)
Use RarEntry::HOST_UNIX instead.
RAR_HOST_BEOS (int)
Use RarEntry::HOST_BEOS instead.


Beispiele

See also the examples under rar:// wrapper.

Beispiel #1 On-the-fly decompression

<?php

if (!array_key_exists("i", $_GET) || !is_numeric($_GET["i"]))
    die("Index unspecified or non-numeric");
$index = (int) $_GET["i"];

$arch = RarArchive::open("example.rar");
if ($arch === FALSE)
    die("Cannot open example.rar");

$entries = $arch->getEntries();
if ($entries === FALSE)
    die("Cannot retrieve entries");

if (!array_key_exists($index, $entries))
    die("No such index: $index");

$orfilename = $entries[$index]->getName(); //UTF-8 encoded

$filesize = $entries[$index]->getUnpackedSize();

/* you could check HTTP_IF_MODIFIED_SINCE here and compare with
 * $entries[$index]->getFileTime(). You could also send a
 * "Last modified" header */

$fp = $entries[$index]->getStream();
if ($fp === FALSE)
    die("Cannot open file with index $index insided the archive.");

$arch->close(); //no longer needed; stream is independent

function detectUserAgent() {
    if (!array_key_exists('HTTP_USER_AGENT', $_SERVER))
        return "Other";

    $uas = $_SERVER['HTTP_USER_AGENT'];
    if (preg_match("@Opera/@", $uas))
        return "Opera";
    if (preg_match("@Firefox/@", $uas))
        return "Firefox";
    if (preg_match("@Chrome/@", $uas))
        return "Chrome";
    if (preg_match("@MSIE ([0-9.]+);@", $uas, $matches)) {
        if (((float)$matches[1]) >= 7.0)
            return "IE";
    }

    return "Other";
}

/*
 * We have 3 options:
 * - For FF and Opera, which support RFC 2231, use that format.
 * - For IE and Chrome, use attwithfnrawpctenclong
 *   (http://greenbytes.de/tech/tc2231/#attwithfnrawpctenclong)
 * - For the others, convert to ISO-8859-1, if possible
 */
$formatRFC2231 = 'Content-Disposition: attachment; filename*=UTF-8\'\'%s';
$formatDef = 'Content-Disposition: attachment; filename="%s"';

switch (detectUserAgent()) {
    case "Opera":
    case "Firefox":
        $orfilename = rawurlencode($orfilename);
        $format = $formatRFC2231;
        break;

    case "IE":
    case "Chrome":
        $orfilename = rawurlencode($orfilename);
        $format = $formatDef;
        break;
    default:
        if (function_exists('iconv'))
            $orfilename =
                @iconv("UTF-8", "ISO-8859-1//TRANSLIT", $orfilename);
        $format = $formatDef;
}

header(sprintf($format, $orfilename));
//cannot send error messages from now on (headers already sent)

//replace by real content type, perhaps infering from the file extension
$contentType = "application/octet-stream";
header("Content-Type: $contentType");

header("Content-Transfer-Encoding: binary");

header("Content-Length: $filesize");

if ($_SERVER['REQUEST_METHOD'] == "HEAD")
    die();

while (!feof($fp)) {
    $s = @fread($fp, 8192);
    if ($s === false)
        break; //useless to send error messages

    echo $s;
}
?>

This example opens a RAR file and presents the requested file inside the RAR archive for download to the client.

Beispiel #2 RAR extension filesystem extraction example

<?php

$rar_file = rar_open('example.rar') or die("Can't open Rar archive");

$entries = rar_list($rar_file);

foreach ($entries as $entry) {
    echo 'Filename: ' . $entry->getName() . "\n";
    echo 'Packed size: ' . $entry->getPackedSize() . "\n";
    echo 'Unpacked size: ' . $entry->getUnpackedSize() . "\n";

    $entry->extract('/dir/extract/to/');
}

rar_close($rar_file);

?>

This example opens a RAR file archive and extracts each entry to the specified directory.


RAR Funktionen

Inhaltsverzeichnis

  • rar_wrapper_cache_stats — Cache hits and misses for the URL wrapper


Cache hits and misses for the URL wrapper

  • « RAR Funktionen
  • RarArchive »
  • PHP Manual
  • RAR Funktionen
  • Cache hits and misses for the URL wrapper

rar_wrapper_cache_stats

(PECL rar >= 3.0.0)

rar_wrapper_cache_stats — Cache hits and misses for the URL wrapper

Beschreibung

rar_wrapper_cache_stats ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The RarArchive class

(PECL rar >= 2.0.0)

Einführung

This class represents a RAR archive, which may be formed by several volumes (parts) and which contains a number of RAR entries (i.e., files, directories and other special objects such as symbolic links).

Objects of this class can be traversed, yielding the entries stored in the respective RAR archive. Those entries can also be obtained through RarArchive::getEntry() and RarArchive::getEntries().

Klassenbeschreibung

final RarArchive implements Traversable {
/* Methoden */
public close ( ) : bool
public getComment ( ) : string
public getEntries ( ) : array|false
public getEntry ( string $entryname ) : RarEntry|false
public isBroken ( ) : bool
public isSolid ( ) : bool
public static open ( string $filename , string $password = NULL , callable $volume_callback = NULL ) : RarArchive|false
public setAllowBroken ( bool $allow_broken ) : bool
public __toString ( ) : string
}

Inhaltsverzeichnis

  • RarArchive::close — Close RAR archive and free all resources
  • RarArchive::getComment — Get comment text from the RAR archive
  • RarArchive::getEntries — Get full list of entries from the RAR archive
  • RarArchive::getEntry — Get entry object from the RAR archive
  • RarArchive::isBroken — Test whether an archive is broken (incomplete)
  • RarArchive::isSolid — Check whether the RAR archive is solid
  • RarArchive::open — Open RAR archive
  • RarArchive::setAllowBroken — Whether opening broken archives is allowed
  • RarArchive::__toString — Get text representation


Close RAR archive and free all resources

  • « RarArchive
  • RarArchive::getComment »
  • PHP Manual
  • RarArchive
  • Close RAR archive and free all resources

RarArchive::close

rar_close

(PECL rar >= 2.0.0)

RarArchive::close -- rar_close — Close RAR archive and free all resources

Beschreibung

Objektorientierter Stil (method):

public RarArchive::close ( ) : bool

Prozeduraler Stil:

rar_close ( RarArchive $rarfile ) : bool

Close RAR archive and free all allocated resources.

Parameter-Liste

rarfile

A RarArchive object, opened with rar_open().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
PECL rar 2.0.0 | The RAR entries returned by RarArchive::getEntry() and RarArchive::getEntries() are now invalidated when calling this method. This means that all instance methods called for such entries and not guaranteed to succeed.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$rar_arch = RarArchive::open('latest_winrar.rar');
echo $rar_arch."\n";
$rar_arch->close();
echo $rar_arch."\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar"
RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar" (closed)

Beispiel #2 Prozeduraler Stil

<?php
$rar_arch = rar_open('latest_winrar.rar');
echo $rar_arch."\n";
rar_close($rar_arch);
echo $rar_arch."\n";
?>


Get comment text from the RAR archive

  • « RarArchive::close
  • RarArchive::getEntries »
  • PHP Manual
  • RarArchive
  • Get comment text from the RAR archive

RarArchive::getComment

rar_comment_get

(PECL rar >= 2.0.0)

RarArchive::getComment -- rar_comment_get — Get comment text from the RAR archive

Beschreibung

Objektorientierter Stil (method):

public RarArchive::getComment ( ) : string

Prozeduraler Stil:

rar_comment_get ( RarArchive $rarfile ) : string

Get the (global) comment stored in the RAR archive. It may be up to 64 KiB long.

Hinweis:

This extension does not support comments at the entry level.

Parameter-Liste

rarfile

A RarArchive object, opened with rar_open().

Rückgabewerte

Returns the comment or null if there is none.

Hinweis:

RAR has currently no support for unicode comments. The encoding of the result of this function is not specified, but it will probably be Windows-1252.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$rar_arch = RarArchive::open('commented.rar');
echo $rar_arch->getComment();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

This is the comment of the file commented.rar.

Beispiel #2 Prozeduraler Stil

<?php
$rar_arch = rar_open('commented.rar');
echo rar_comment_get($rar_arch);
?>


Get full list of entries from the RAR archive

  • « RarArchive::getComment
  • RarArchive::getEntry »
  • PHP Manual
  • RarArchive
  • Get full list of entries from the RAR archive

RarArchive::getEntries

rar_list

(PECL rar >= 2.0.0)

RarArchive::getEntries -- rar_list — Get full list of entries from the RAR archive

Beschreibung

Objektorientierter Stil (method):

public RarArchive::getEntries ( ) : array|false

Prozeduraler Stil:

rar_list ( RarArchive $rarfile ) : array|false

Get entries list (files and directories) from the RAR archive.

Hinweis:

If the archive has entries with the same name, this method, together with RarArchive foreach iteration and array-like access with numeric indexes, are the only ones to access all the entries (i.e., RarArchive::getEntry() and the rar:// wrapper are insufficient).

Parameter-Liste

rarfile

A RarArchive object, opened with rar_open().

Rückgabewerte

rar_list() returns array of RarEntry objects Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
PECL rar 3.0.0 | Support for RAR archives with repeated entry names is no longer defective.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$rar_arch = RarArchive::open('solid.rar');
if ($rar_arch === FALSE)
    die("Could not open RAR archive.");

$rar_entries = $rar_arch->getEntries();
if ($rar_entries === FALSE)
    die("Could not retrieve entries.");

echo "Found " . count($rar_entries) . " entries.\n";

foreach ($rar_entries as $e) {
    echo $e;
    echo "\n";
}
$rar_arch->close();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Found 2 entries.
RarEntry for file "tese.txt" (23b93a7a)
RarEntry for file "unrardll.txt" (2ed64b6e)

Beispiel #2 Prozeduraler Stil

<?php
$rar_arch = rar_open('solid.rar');
if ($rar_arch === FALSE)
    die("Could not open RAR archive.");

$rar_entries = rar_list($rar_arch);
if ($rar_entries === FALSE)
    die("Could retrieve entries.");

echo "Found " . count($rar_entries) . " entries.\n";

foreach ($rar_entries as $e) {
    echo $e;
    echo "\n";
}
rar_close($rar_arch);
?>

Siehe auch

  • RarArchive::getEntry() - Get entry object from the RAR archive
  • rar:// wrapper


Get entry object from the RAR archive

  • « RarArchive::getEntries
  • RarArchive::isBroken »
  • PHP Manual
  • RarArchive
  • Get entry object from the RAR archive

RarArchive::getEntry

rar_entry_get

(PECL rar >= 2.0.0)

RarArchive::getEntry -- rar_entry_get — Get entry object from the RAR archive

Beschreibung

Objektorientierter Stil (method):

public RarArchive::getEntry ( string $entryname ) : RarEntry|false

Prozeduraler Stil:

rar_entry_get ( RarArchive $rarfile , string $entryname ) : RarEntry|false

Get entry object (file or directory) from the RAR archive.

Hinweis:

You can also get entry objects using RarArchive::getEntries().

Note that a RAR archive can have multiple entries with the same name; this method will retrieve only the first.

Parameter-Liste

rarfile

A RarArchive object, opened with rar_open().

entryname

Path to the entry within the RAR archive.

Hinweis:

The path must be the same returned by RarEntry::getName().

Rückgabewerte

Returns the matching RarEntry object Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$rar_arch = RarArchive::open('solid.rar');
if ($rar_arch === FALSE)
    die("Could not open RAR archive.");
$rar_entry = $rar_arch->getEntry('tese.txt');
if ($rar_entry === FALSE)
    die("Could not get such entry");
echo get_class($rar_entry)."\n";
echo $rar_entry;
$rar_arch->close();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

RarEntry
RarEntry for file "tese.txt" (23b93a7a)

Beispiel #2 Prozeduraler Stil

<?php
$rar_arch = rar_open('solid.rar');
if ($rar_arch === FALSE)
    die("Could not open RAR archive.");
$rar_entry = rar_entry_get($rar_arch, 'tese.txt');
if ($rar_entry === FALSE)
    die("Could not get such entry");
echo get_class($rar_entry)."\n";
echo $rar_entry;
rar_close($rar_arch);
?>

Siehe auch

  • RarArchive::getEntries() - Get full list of entries from the RAR archive
  • rar:// wrapper


Test whether an archive is broken (incomplete)

  • « RarArchive::getEntry
  • RarArchive::isSolid »
  • PHP Manual
  • RarArchive
  • Test whether an archive is broken (incomplete)

RarArchive::isBroken

rar_broken_is

(PECL rar >= 3.0.0)

RarArchive::isBroken -- rar_broken_is — Test whether an archive is broken (incomplete)

Beschreibung

Objektorientierter Stil (method):

public RarArchive::isBroken ( ) : bool

Prozeduraler Stil:

rar_broken_is ( RarArchive $rarfile ) : bool

This function determines whether an archive is incomplete, i.e., if a volume is missing or a volume is truncated.

Parameter-Liste

rarfile

A RarArchive object, opened with rar_open().

Rückgabewerte

Returns true if the archive is broken, false otherwise. This function may also return false if the passed file has already been closed. The only way to tell the two cases apart is to enable exceptions with RarException::setUsingExceptions(); however, this should be unnecessary as a program should not operate on closed files.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Third argument is used to omit notice */
$arch = RarArchive::open($file, null, 'retnull');
var_dump($arch->isBroken());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)

Beispiel #2 Prozeduraler Stil

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Third argument is used to omit notice */
$arch = rar_open($file, null, 'retnull');
var_dump(rar_broken_is($arch));
?>

Siehe auch

  • RarArchive::setAllowBroken() - Whether opening broken archives is allowed


Check whether the RAR archive is solid

  • « RarArchive::isBroken
  • RarArchive::open »
  • PHP Manual
  • RarArchive
  • Check whether the RAR archive is solid

RarArchive::isSolid

rar_solid_is

(PECL rar >= 2.0.0)

RarArchive::isSolid -- rar_solid_is — Check whether the RAR archive is solid

Beschreibung

Objektorientierter Stil (method):

public RarArchive::isSolid ( ) : bool

Prozeduraler Stil:

rar_solid_is ( RarArchive $rarfile ) : bool

Check whether the RAR archive is solid. Individual file extraction is slower on solid archives.

Parameter-Liste

rarfile

A RarArchive object, opened with rar_open().

Rückgabewerte

Returns true if the archive is solid, false otherwise.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$arch1 = RarArchive::open("store_method.rar");
$arch2 = RarArchive::open("solid.rar");
echo "$arch1: " . ($arch1->isSolid()?'yes':'no') ."\n";
echo "$arch2: " . ($arch2->isSolid()?'yes':'no') . "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

RAR Archive "C:\php_rar\trunk\tests\store_method.rar": no
RAR Archive "C:\php_rar\trunk\tests\solid.rar": yes

Beispiel #2 Prozeduraler Stil

<?php
$arch1 = rar_open("store_method.rar");
$arch2 = rar_open("solid.rar");
echo "$arch1: " . (rar_solid_is($arch1)?'yes':'no') ."\n";
echo "$arch2: " . (rar_solid_is($arch2)?'yes':'no') . "\n";
?>


Open RAR archive

  • « RarArchive::isSolid
  • RarArchive::setAllowBroken »
  • PHP Manual
  • RarArchive
  • Open RAR archive

RarArchive::open

rar_open

(PECL rar >= 2.0.0)

RarArchive::open -- rar_open — Open RAR archive

Beschreibung

Objektorientierter Stil (method):

public static RarArchive::open ( string $filename , string $password = NULL , callable $volume_callback = NULL ) : RarArchive|false

Prozeduraler Stil:

rar_open ( string $filename , string $password = NULL , callable $volume_callback = NULL ) : RarArchive|false

Open specified RAR archive and return RarArchive instance representing it.

Hinweis:

If opening a multi-volume archive, the path of the first volume should be passed as the first parameter. Otherwise, not all files will be shown. This is by design.

Parameter-Liste

filename

Path to the Rar archive.

password

A plain password, if needed to decrypt the headers. It will also be used by default if encrypted files are found. Note that the files may have different passwords in respect to the headers and among them.

volume_callback

A function that receives one parameter – the path of the volume that was not found – and returns a string with the correct path for such volume or null if such volume does not exist or is not known. The programmer should ensure the passed function doesn't cause loops as this function is called repeatedly if the path returned in a previous call did not correspond to the needed volume. Specifying this parameter omits the notice that would otherwise be emitted whenever a volume is not found; an implementation that only returns null can therefore be used to merely omit such notices.

Warnung

Prior to version 2.0.0, this function would not handle relative paths correctly. Use realpath() as a workaround.

Rückgabewerte

Returns the requested RarArchive instance Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
PECL rar 3.0.0 | volume_callback was added.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$rar_arch = RarArchive::open('encrypted_headers.rar', 'samplepassword');
if ($rar_arch === FALSE)
    die("Failed opening file");

$entries = $rar_arch->getEntries();
if ($entries === FALSE)
    die("Failed fetching entries");

echo "Found " . count($entries) . " files.\n";

if (empty($entries))
    die("No valid entries found.");

$stream = reset($entries)->getStream();
if ($stream === FALSE)
    die("Failed opening first file");

$rar_arch->close();

echo "Content of first one follows:\n";
echo stream_get_contents($stream);

fclose($stream);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Found 2 files.
Content of first one follows:
Encrypted file 1 contents.

Beispiel #2 Prozeduraler Stil

<?php
$rar_arch = rar_open('encrypted_headers.rar', 'samplepassword');
if ($rar_arch === FALSE)
    die("Failed opening file");

$entries = rar_list($rar_arch);
if ($entries === FALSE)
    die("Failed fetching entries");

echo "Found " . count($entries) . " files.\n";

if (empty($entries))
    die("No valid entries found.");

$stream = reset($entries)->getStream();
if ($stream === FALSE)
    die("Failed opening first file");

rar_close($rar_arch);

echo "Content of first one follows:\n";
echo stream_get_contents($stream);

fclose($stream);
?>

Beispiel #3 Volume Callback

<?php
/* In this example, there's a volume named multi_broken.part1.rar
 * whose next volume is named multi.part2.rar */
function resolve($vol) {
    if (preg_match('/_broken/', $vol))
        return str_replace('_broken', '', $vol);
    else
        return null;
}
$rar_file1 = rar_open(dirname(__FILE__).'/multi_broken.part1.rar', null, 'resolve');
$entry = $rar_file1->getEntry('file2.txt');
$entry->extract(null, dirname(__FILE__) . "/temp_file2.txt");
?>

Siehe auch

  • rar:// wrapper


Whether opening broken archives is allowed

  • « RarArchive::open
  • RarArchive::__toString »
  • PHP Manual
  • RarArchive
  • Whether opening broken archives is allowed

RarArchive::setAllowBroken

(PECL rar >= 3.0.0)

RarArchive::setAllowBroken — Whether opening broken archives is allowed

Beschreibung

Objektorientierter Stil (method):

public RarArchive::setAllowBroken ( bool $allow_broken ) : bool

Prozeduraler Stil:

rar_allow_broken_set ( RarArchive $rarfile , bool $allow_broken ) : bool

This method defines whether broken archives can be read or all the operations that attempt to extract the archive entries will fail. Broken archives are archives for which no error is detected when the file is opened but an error occurs when reading the entries.

Parameter-Liste

rarfile

A RarArchive object, opened with rar_open().

allow_broken

Whether to allow reading broken files (true) or not (false).

Rückgabewerte

Returns true Im Fehlerfall wird false zurückgegeben.. It will only fail if the file has already been closed.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Third argument omits "volume not found" message */
$a = RarArchive::open($file, null, 'retnull');
$a->setAllowBroken(true);
foreach ($a->getEntries() as $e) {
    echo "$e\n";
}
var_dump(count($a));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

RarEntry for file "file1.txt" (52b28202)
int(1)

Beispiel #2 Prozeduraler Stil

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Third argument omits "volume not found" message */
$a = rar_open($file, null, 'retnull');
rar_allow_broken_set($a, true);
foreach (rar_list($a) as $e) {
    echo "$e\n";
}
var_dump(count($a));
?>

Siehe auch

  • RarArchive::isBroken() - Test whether an archive is broken (incomplete)


Get text representation

  • « RarArchive::setAllowBroken
  • RarEntry »
  • PHP Manual
  • RarArchive
  • Get text representation

RarArchive::__toString

(PECL rar >= 2.0.0)

RarArchive::__toString — Get text representation

Beschreibung

public RarArchive::__toString ( ) : string

Provides a string representation for this RarArchive object. It currently shows the full path name of the archive volume that was opened and whether the resource is valid or was already closed through a call to RarArchive::close().

This method may be used only for debugging purposes, as there are no guarantees as to which information the result contains or how it is formatted.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A textual representation of this RarArchive object. The content of this representation is unspecified.

Beispiele

Beispiel #1 RarArchive::__toString() example

<?php
$rar_arch = RarArchive::open('latest_winrar.rar');
echo $rar_arch."\n";
$rar_arch->close();
echo $rar_arch."\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar"
RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar" (closed)


The RarEntry class

(PECL rar >= 0.1)

Einführung

A RAR entry, representing a directory or a compressed file inside a RAR archive.

Klassenbeschreibung

final RarEntry {
/* Konstanten */
const int HOST_MSDOS = 0 ;
const int HOST_OS2 = 1 ;
const int HOST_WIN32 = 2 ;
const int HOST_UNIX = 3 ;
const int HOST_MACOS = 4 ;
const int HOST_BEOS = 5 ;
const int ATTRIBUTE_WIN_READONLY = 1 ;
const int ATTRIBUTE_WIN_HIDDEN = 2 ;
const int ATTRIBUTE_WIN_SYSTEM = 4 ;
const int ATTRIBUTE_WIN_DIRECTORY = 16 ;
const int ATTRIBUTE_WIN_ARCHIVE = 32 ;
const int ATTRIBUTE_WIN_DEVICE = 64 ;
const int ATTRIBUTE_WIN_NORMAL = 128 ;
const int ATTRIBUTE_WIN_TEMPORARY = 256 ;
const int ATTRIBUTE_WIN_SPARSE_FILE = 512 ;
const int ATTRIBUTE_WIN_REPARSE_POINT = 1024 ;
const int ATTRIBUTE_WIN_COMPRESSED = 2048 ;
const int ATTRIBUTE_WIN_OFFLINE = 4096 ;
const int ATTRIBUTE_WIN_NOT_CONTENT_INDEXED = 8192 ;
const int ATTRIBUTE_WIN_ENCRYPTED = 16384 ;
const int ATTRIBUTE_WIN_VIRTUAL = 65536 ;
const int ATTRIBUTE_UNIX_WORLD_EXECUTE = 1 ;
const int ATTRIBUTE_UNIX_WORLD_WRITE = 2 ;
const int ATTRIBUTE_UNIX_WORLD_READ = 4 ;
const int ATTRIBUTE_UNIX_GROUP_EXECUTE = 8 ;
const int ATTRIBUTE_UNIX_GROUP_WRITE = 16 ;
const int ATTRIBUTE_UNIX_GROUP_READ = 32 ;
const int ATTRIBUTE_UNIX_OWNER_EXECUTE = 64 ;
const int ATTRIBUTE_UNIX_OWNER_WRITE = 128 ;
const int ATTRIBUTE_UNIX_OWNER_READ = 256 ;
const int ATTRIBUTE_UNIX_STICKY = 512 ;
const int ATTRIBUTE_UNIX_SETGID = 1024 ;
const int ATTRIBUTE_UNIX_SETUID = 2048 ;
const int ATTRIBUTE_UNIX_FINAL_QUARTET = 61440 ;
const int ATTRIBUTE_UNIX_FIFO = 4096 ;
const int ATTRIBUTE_UNIX_CHAR_DEV = 8192 ;
const int ATTRIBUTE_UNIX_DIRECTORY = 16384 ;
const int ATTRIBUTE_UNIX_BLOCK_DEV = 24576 ;
const int ATTRIBUTE_UNIX_REGULAR_FILE = 32768 ;
const int ATTRIBUTE_UNIX_SYM_LINK = 40960 ;
const int ATTRIBUTE_UNIX_SOCKET = 49152 ;
/* Methoden */
public extract ( string $dir , string $filepath = "" , string $password = NULL , bool $extended_data = false ) : bool
public getAttr ( ) : int
public getCrc ( ) : string
public getFileTime ( ) : string
public getHostOs ( ) : int
public getMethod ( ) : int
public getName ( ) : string
public getPackedSize ( ) : int
public getStream ( string $password = ? ) : resource|false
public getUnpackedSize ( ) : int
public getVersion ( ) : int
public isDirectory ( ) : bool
public isEncrypted ( ) : bool
public __toString ( ) : string
}

Vordefinierte Konstanten

RarEntry::HOST_MSDOS

If the return value of RarEntry::getHostOs() equals this constant, MS-DOS was used to add this entry. Use instead of RAR_HOST_MSDOS.

RarEntry::HOST_OS2

If the return value of RarEntry::getHostOs() equals this constant, OS/2 was used to add this entry. Intended to replace RAR_HOST_OS2.

RarEntry::HOST_WIN32

If the return value of RarEntry::getHostOs() equals this constant, Microsoft Windows was used to add this entry. Intended to replace RAR_HOST_WIN32.

RarEntry::HOST_UNIX

If the return value of RarEntry::getHostOs() equals this constant, an unspecified UNIX OS was used to add this entry. Intended to replace RAR_HOST_UNIX.

RarEntry::HOST_MACOS

If the return value of RarEntry::getHostOs() equals this constant, Mac OS was used to add this entry.

RarEntry::HOST_BEOS

If the return value of RarEntry::getHostOs() equals this constant, BeOS was used to add this entry. Intended to replace RAR_HOST_BEOS.

RarEntry::ATTRIBUTE_WIN_READONLY

Bit that represents a Windows entry with a read-only attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_HIDDEN

Bit that represents a Windows entry with a hidden attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_SYSTEM

Bit that represents a Windows entry with a system attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_DIRECTORY

Bit that represents a Windows entry with a directory attribute (entry is a directory). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows. See also RarEntry::isDirectory(), which also works with entries that were not added in WinRAR.

RarEntry::ATTRIBUTE_WIN_ARCHIVE

Bit that represents a Windows entry with an archive attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_DEVICE

Bit that represents a Windows entry with a device attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_NORMAL

Bit that represents a Windows entry with a normal file attribute (entry is NOT a directory). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows. See also RarEntry::isDirectory(), which also works with entries that were not added in WinRAR.

RarEntry::ATTRIBUTE_WIN_TEMPORARY

Bit that represents a Windows entry with a temporary attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_SPARSE_FILE

Bit that represents a Windows entry with a sparse file attribute (file is an NTFS sparse file). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_REPARSE_POINT

Bit that represents a Windows entry with a reparse point attribute (entry is an NTFS reparse point, e.g. a directory junction or a mount file system). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_COMPRESSED

Bit that represents a Windows entry with a compressed attribute (NTFS only). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_OFFLINE

Bit that represents a Windows entry with an offline attribute (entry is offline and not accessible). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_NOT_CONTENT_INDEXED

Bit that represents a Windows entry with a not content indexed attribute (entry is to be indexed). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_ENCRYPTED

Bit that represents a Windows entry with an encrypted attribute (NTFS only). To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_WIN_VIRTUAL

Bit that represents a Windows entry with a virtual attribute. To be used with RarEntry::getAttr() on entries whose host OS is Microsoft Windows.

RarEntry::ATTRIBUTE_UNIX_WORLD_EXECUTE

Bit that represents a UNIX entry that is world executable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_WORLD_WRITE

Bit that represents a UNIX entry that is world writable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_WORLD_READ

Bit that represents a UNIX entry that is world readable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_EXECUTE

Bit that represents a UNIX entry that is group executable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_WRITE

Bit that represents a UNIX entry that is group writable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_GROUP_READ

Bit that represents a UNIX entry that is group readable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_EXECUTE

Bit that represents a UNIX entry that is owner executable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_WRITE

Bit that represents a UNIX entry that is owner writable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_OWNER_READ

Bit that represents a UNIX entry that is owner readable. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_STICKY

Bit that represents the UNIX sticky bit. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_SETGID

Bit that represents the UNIX setgid attribute. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_SETUID

Bit that represents the UNIX setuid attribute. To be used with RarEntry::getAttr() on entries whose host OS is UNIX.

RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET

Mask to isolate the last four bits (nibble) of UNIX attributes
      (_S_IFMT, the type of file mask). To be used with
      RarEntry::getAttr() on entries whose host OS is UNIX and with the
      constants RarEntry::ATTRIBUTE_UNIX_FIFO,
      RarEntry::ATTRIBUTE_UNIX_CHAR_DEV,
      RarEntry::ATTRIBUTE_UNIX_DIRECTORY,
      RarEntry::ATTRIBUTE_UNIX_BLOCK_DEV,
      RarEntry::ATTRIBUTE_UNIX_REGULAR_FILE,
      RarEntry::ATTRIBUTE_UNIX_SYM_LINK and
      RarEntry::ATTRIBUTE_UNIX_SOCKET.

RarEntry::ATTRIBUTE_UNIX_FIFO

Unix FIFOs will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_CHAR_DEV

Unix character devices will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_DIRECTORY

Unix directories will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET. See also RarEntry::isDirectory(), which also works with entries that were added in other operating systems.

RarEntry::ATTRIBUTE_UNIX_BLOCK_DEV

Unix block devices will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_REGULAR_FILE

Unix regular files (not directories) will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET. See also RarEntry::isDirectory(), which also works with entries that were added in other operating systems.

RarEntry::ATTRIBUTE_UNIX_SYM_LINK

Unix symbolic links will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

RarEntry::ATTRIBUTE_UNIX_SOCKET

Unix sockets will have attributes whose last four bits have this value. To be used with RarEntry::getAttr() on entries whose host OS is UNIX and with the constant RarEntry::ATTRIBUTE_UNIX_FINAL_QUARTET.

Inhaltsverzeichnis

  • RarEntry::extract — Extract entry from the archive
  • RarEntry::getAttr — Get attributes of the entry
  • RarEntry::getCrc — Get CRC of the entry
  • RarEntry::getFileTime — Get entry last modification time
  • RarEntry::getHostOs — Get entry host OS
  • RarEntry::getMethod — Get pack method of the entry
  • RarEntry::getName — Get name of the entry
  • RarEntry::getPackedSize — Get packed size of the entry
  • RarEntry::getStream — Get file handler for entry
  • RarEntry::getUnpackedSize — Get unpacked size of the entry
  • RarEntry::getVersion — Get minimum version of RAR program required to unpack the entry
  • RarEntry::isDirectory — Test whether an entry represents a directory
  • RarEntry::isEncrypted — Test whether an entry is encrypted
  • RarEntry::__toString — Get text representation of entry


Extract entry from the archive

  • « RarEntry
  • RarEntry::getAttr »
  • PHP Manual
  • RarEntry
  • Extract entry from the archive

RarEntry::extract

(PECL rar >= 0.1)

RarEntry::extract — Extract entry from the archive

Beschreibung

public RarEntry::extract ( string $dir , string $filepath = "" , string $password = NULL , bool $extended_data = false ) : bool

RarEntry::extract() extracts the entry's data. It will create new file in the specified dir with the name identical to the entry's name, unless the second argument is specified. See below for more information.

Parameter-Liste

dir

Path to the directory where files should be extracted. This parameter is considered if and only if filepath is not. If both parameters are empty an extraction to the current directory will be attempted.

filepath

Path (relative or absolute) containing the directory and filename of the extracted file. This parameter overrides both the parameter dir and the original file name.

password

The password used to encrypt this entry. If the entry is not encrypted, this value will not be used and can be omitted. If this parameter is omitted and the entry is encrypted, the password given to rar_open(), if any, will be used. If a wrong password is given, either explicitly or implicitly via rar_open(), CRC checking will fail and this method will fail and return false. If no password is given and one is required, this method will fail and return false. You can check whether an entry is encrypted with RarEntry::isEncrypted().

extended_data

If true, extended information such as NTFS ACLs and Unix owner information will be set in the extract files, as long as it's present in the archive.

Warnung

Prior to version 2.0.0, this function would not handle relative paths correctly. Use realpath() as a workaround.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
PECL rar 3.0.0 | extended_data was added.
PECL rar 3.0.0 | Support for RAR archives with repeated entry names is no longer defective.

Beispiele

Beispiel #1 RarEntry::extract() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

$entry->extract('/dir/to'); // create /dir/to/Dir/file.txt
$entry->extract(false, '/dir/to/new_name.txt'); // create /dir/to/new_name.txt

?>

Beispiel #2 How to extract all files in archive:

<?php

/* example by Erik Jenssen aka erix */

$filename = "foobar.rar";
$filepath = "/home/foo/bar/";

$rar_file = rar_open($filepath.$filename);
$list = rar_list($rar_file);
foreach($list as $file) {
    $entry = rar_entry_get($rar_file, $file);
    $entry->extract("."); // extract to the current dir
}
rar_close($rar_file);

?>

Siehe auch

  • RarEntry::getStream() - Get file handler for entry
  • rar:// wrapper


Get attributes of the entry

  • « RarEntry::extract
  • RarEntry::getCrc »
  • PHP Manual
  • RarEntry
  • Get attributes of the entry

RarEntry::getAttr

(PECL rar >= 0.1)

RarEntry::getAttr — Get attributes of the entry

Beschreibung

public RarEntry::getAttr ( ) : int

Returns the OS-dependent attributes of the archive entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the attributes or false on error.

Beispiele

Beispiel #1 RarEntry::getAttr() example

<?php

$rar_file = rar_open('example.rar') or die("Can't open Rar archive");

$entry = rar_entry_get($rar_file, 'dir/in/the/archive') or die("Can't find such entry");

$host_os = $entry->getHostOs();
$attr = $entry->getAttr();

switch($host_os) {
    case RAR_HOST_MSDOS:
    case RAR_HOST_OS2:
    case RAR_HOST_WIN32:
    case RAR_HOST_MACOS:
        printf("%c%c%c%c%c%c\n",
                ($attr & 0x08) ? 'V' : '.',
                ($attr & 0x10) ? 'D' : '.',
                ($attr & 0x01) ? 'R' : '.',
                ($attr & 0x02) ? 'H' : '.',
                ($attr & 0x04) ? 'S' : '.',
                ($attr & 0x20) ? 'A' : '.');
        break;
    case RAR_HOST_UNIX:
    case RAR_HOST_BEOS:
        switch ($attr & 0xF000)
        {
            case 0x4000:
                printf("d");
                break;
            case 0xA000:
                printf("l");
                break;
            default:
                printf("-");
                break;
        }
        printf("%c%c%c%c%c%c%c%c%c\n",
                ($attr & 0x0100) ? 'r' : '-',
                ($attr & 0x0080) ? 'w' : '-',
                ($attr & 0x0040) ? (($attr & 0x0800) ? 's':'x'):(($attr & 0x0800) ? 'S':'-'),
                ($attr & 0x0020) ? 'r' : '-',
                ($attr & 0x0010) ? 'w' : '-',
                ($attr & 0x0008) ? (($attr & 0x0400) ? 's':'x'):(($attr & 0x0400) ? 'S':'-'),
                ($attr & 0x0004) ? 'r' : '-',
                ($attr & 0x0002) ? 'w' : '-',
                ($attr & 0x0001) ? 'x' : '-');
        break;
}

rar_close($rar_file);

?>

Siehe auch

  • RarEntry::getHostOs() - Get entry host OS
  • The constants in RarEntry


Get CRC of the entry

  • « RarEntry::getAttr
  • RarEntry::getFileTime »
  • PHP Manual
  • RarEntry
  • Get CRC of the entry

RarEntry::getCrc

(PECL rar >= 0.1)

RarEntry::getCrc — Get CRC of the entry

Beschreibung

public RarEntry::getCrc ( ) : string

Returns an hexadecimal string representation of the CRC of the archive entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the CRC of the archive entry or false on error.

Changelog

Version | Beschreibung
PECL rar 2.0.0 | This method now returns correct values for multiple volume archives.


Get entry last modification time

  • « RarEntry::getCrc
  • RarEntry::getHostOs »
  • PHP Manual
  • RarEntry
  • Get entry last modification time

RarEntry::getFileTime

(PECL rar >= 0.1)

RarEntry::getFileTime — Get entry last modification time

Beschreibung

public RarEntry::getFileTime ( ) : string

Gets entry last modification time.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns entry last modification time as string in format YYYY-MM-DD HH:II:SS, or false on error.


Get entry host OS

  • « RarEntry::getFileTime
  • RarEntry::getMethod »
  • PHP Manual
  • RarEntry
  • Get entry host OS

RarEntry::getHostOs

(PECL rar >= 0.1)

RarEntry::getHostOs — Get entry host OS

Beschreibung

public RarEntry::getHostOs ( ) : int

Returns the code of the host OS of the archive entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the code of the host OS, or false on error.

Beispiele

Beispiel #1 RarEntry::getHostOs() example (version >= 2.0.0)

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

switch ($entry->getHostOs()) {
    case RarEntry::HOST_MSDOS:
        echo "MS-DOS\n";
        break;
    case RarEntry::HOST_OS2:
        echo "OS2\n";
        break;
    case RarEntry::HOST_WIN32:
        echo "Win32\n";
        break;
    case RarEntry::HOST_MACOS:
        echo "MacOS\n";
        break;
    case RarEntry::HOST_UNIX:
        echo "Unix/Linux\n";
        break;
    case RarEntry::HOST_BEOS:
        echo "BeOS\n";
        break;
}

?>

Beispiel #2 RarEntry::getHostOs() example (version <= 1.0.0)

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

switch ($entry->getHostOs()) {
    case RAR_HOST_MSDOS:
        echo "MS-DOS\n";
        break;
    case RAR_HOST_OS2:
        echo "OS2\n";
        break;
    case RAR_HOST_WIN32:
        echo "Win32\n";
        break;
    case RAR_HOST_MACOS:
        echo "MacOS\n";
        break;
    case RAR_HOST_UNIX:
        echo "Unix/Linux\n";
        break;
    case RAR_HOST_BEOS:
        echo "BeOS\n";
        break;
}

?>

Siehe auch

  • RarEntry::extract() - Extract entry from the archive


Get pack method of the entry

  • « RarEntry::getHostOs
  • RarEntry::getName »
  • PHP Manual
  • RarEntry
  • Get pack method of the entry

RarEntry::getMethod

(PECL rar >= 0.1)

RarEntry::getMethod — Get pack method of the entry

Beschreibung

public RarEntry::getMethod ( ) : int

RarEntry::getMethod() returns number of the method used when adding current archive entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the method number or false on error.

Beispiele

Beispiel #1 RarEntry::getMethod() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Method number: " . $entry->getMethod();

?>


Get name of the entry

  • « RarEntry::getMethod
  • RarEntry::getPackedSize »
  • PHP Manual
  • RarEntry
  • Get name of the entry

RarEntry::getName

(PECL rar >= 0.1)

RarEntry::getName — Get name of the entry

Beschreibung

public RarEntry::getName ( ) : string

Returns the name (with path) of the archive entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the entry name as a string, or false on error.

Changelog

Version | Beschreibung
PECL rar 2.0.0 | As of version 2.0.0, the returned string is encoded in Unicode/UTF-8.

Beispiele

Beispiel #1 RarEntry::getName() example

<?php

//this example is safe even in pages not encoded in UTF-8
//for those encoded in UTF-8, the call to mb_convert_encoding is unnecessary

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Entry name: " . mb_convert_encoding(
    htmlentities(
        $entry->getName(),
        ENT_COMPAT,
        "UTF-8"
    ),
    "HTML-ENTITIES",
    "UTF-8"
);

?>


Get packed size of the entry

  • « RarEntry::getName
  • RarEntry::getStream »
  • PHP Manual
  • RarEntry
  • Get packed size of the entry

RarEntry::getPackedSize

(PECL rar >= 0.1)

RarEntry::getPackedSize — Get packed size of the entry

Beschreibung

public RarEntry::getPackedSize ( ) : int

Get packed size of the archive entry.

Hinweis:

Note that on platforms with 32-bit longs (that includes Windows x64), the maximum size returned is capped at 2 GiB. Check the constant PHP_INT_MAX.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the packed size, or false on error.

Changelog

Version | Beschreibung
PECL rar 2.0.0 | This method now returns correct values of packed sizes bigger than 2 GiB on platforms with 64-bit ints and never returns negative values on other platforms.

Beispiele

Beispiel #1 RarEntry::getPackedSize() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Packed size of " . $entry->getName() . " = " . $entry->getPackedSize() . " bytes";

?>


Get file handler for entry

  • « RarEntry::getPackedSize
  • RarEntry::getUnpackedSize »
  • PHP Manual
  • RarEntry
  • Get file handler for entry

RarEntry::getStream

(PECL rar >= 2.0.0)

RarEntry::getStream — Get file handler for entry

Beschreibung

public RarEntry::getStream ( string $password = ? ) : resource|false

Returns a file handler that supports read operations. This handler provides on-the-fly decompression for this entry.

The handler is not invalidated by calling rar_close().

Warnung

The resulting stream has no integrity verification. In particular, file corruption and decryption with a wrong a key will not be detected. It is the programmer's responsability to use the entry's CRC to check for integrity, if he so wishes.

Parameter-Liste

password

The password used to encrypt this entry. If the entry is not encrypted, this value will not be used and can be omitted. If this parameter is omitted and the entry is encrypted, the password given to rar_open(), if any, will be used. If a wrong password is given, either explicitly or implicitly via rar_open(), this method's resulting stream will produce wrong output. If no password is given and one is required, this method will fail and return false. You can check whether an entry is encrypted with RarEntry::isEncrypted().

Rückgabewerte

The file handler Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
PECL rar 3.0.0 | Support for RAR archives with repeated entry names is no longer defective.

Beispiele

Beispiel #1 RarEntry::getStream() example

<?php

$rar_file = rar_open('example.rar');
if ($rar_file === false)
    die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt');
if ($entry === false)
    die("Failed to find such entry");

$stream = $entry->getStream();
if ($stream === false)
    die("Failed to obtain stream.");

rar_close($rar_file); //stream is independent from file

while (!feof($stream)) {
    $buff = fread($stream, 8192);
    if ($buff !== false)
        echo $buff;
    else
        break; //fread error
}

fclose($stream);

?>

Siehe auch

  • RarEntry::extract() - Extract entry from the archive
  • rar:// wrapper


Get unpacked size of the entry

  • « RarEntry::getStream
  • RarEntry::getVersion »
  • PHP Manual
  • RarEntry
  • Get unpacked size of the entry

RarEntry::getUnpackedSize

(PECL rar >= 0.1)

RarEntry::getUnpackedSize — Get unpacked size of the entry

Beschreibung

public RarEntry::getUnpackedSize ( ) : int

Get unpacked size of the archive entry.

Hinweis:

Note that on platforms with 32-bit longs (that includes Windows x64), the maximum size returned is capped at 2 GiB. Check the constant PHP_INT_MAX.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the unpacked size, or false on error.

Changelog

Version | Beschreibung
PECL rar 2.0.0 | This method now returns correct values of unpacked sizes bigger than 2 GiB on platforms with 64-bit ints and never returns negative values on other platforms.

Rückgabewerte

Beispiel #1 RarEntry::getUnpackedSize() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Unpacked size of " . $entry->getName() . " = " . $entry->getPackedSize() . " bytes";

?>


Get minimum version of RAR program required to unpack the entry

  • « RarEntry::getUnpackedSize
  • RarEntry::isDirectory »
  • PHP Manual
  • RarEntry
  • Get minimum version of RAR program required to unpack the entry

RarEntry::getVersion

(PECL rar >= 0.1)

RarEntry::getVersion — Get minimum version of RAR program required to unpack the entry

Beschreibung

public RarEntry::getVersion ( ) : int

Returns minimum version of RAR program (e.g. WinRAR) required to unpack the entry. It is encoded as 10 * major version + minor version.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the version or false on error.

Beispiele

Beispiel #1 RarEntry::getVersion() example

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Rar version required for unpacking: " . $entry->getVersion();

?>


Test whether an entry represents a directory

  • « RarEntry::getVersion
  • RarEntry::isEncrypted »
  • PHP Manual
  • RarEntry
  • Test whether an entry represents a directory

RarEntry::isDirectory

(PECL rar >= 2.0.0)

RarEntry::isDirectory — Test whether an entry represents a directory

Beschreibung

public RarEntry::isDirectory ( ) : bool

Tests whether the current entry is a directory.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if this entry is a directory and false otherwise.

Anmerkungen

This function is only available starting with version 2.0.0, but one can also test whether an entry is a directory by checking the entry attributes, like this (only works for files compressed in RAR for Windows or Unix):

<?php
//...
//Open file, get entry and store in variable $e...
//...

$isDirectory = (bool) ((($e->getHostOs() == RAR_HOST_WIN32) && ($e->getAttr() & 0x10)) ||
    (($e->getHostOs() == RAR_HOST_UNIX) && (($e->getAttr() & 0xf000) == 0x4000)));
?>


Test whether an entry is encrypted

  • « RarEntry::isDirectory
  • RarEntry::__toString »
  • PHP Manual
  • RarEntry
  • Test whether an entry is encrypted

RarEntry::isEncrypted

(PECL rar >= 2.0.0)

RarEntry::isEncrypted — Test whether an entry is encrypted

Beschreibung

public RarEntry::isEncrypted ( ) : bool

Tests whether the current entry contents are encrypted.

Hinweis:

The password used may differ between files inside the same RAR archive.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the current entry is encrypted and false otherwise.


Get text representation of entry

  • « RarEntry::isEncrypted
  • RarException »
  • PHP Manual
  • RarEntry
  • Get text representation of entry

RarEntry::__toString

(PECL rar >= 2.0.0)

RarEntry::__toString — Get text representation of entry

Beschreibung

public RarEntry::__toString ( ) : string

RarEntry::__toString() returns a textual representation for this entry. It includes whether the entry is a file or a directory (symbolic links and other special objects will be treated as files), the UTF-8 name of the entry and its CRC. The form and content of this representation may be changed in the future, so they cannot be relied upon.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A textual representation for the entry.


The RarException class

(PECL rar >= 2.0.0)

Einführung

This class serves two purposes: it is the type of the exceptions thrown by the RAR extension functions and methods and it allows, through static methods to query and define the error behaviour of the extension, i.e., whether exceptions are thrown or only warnings are emitted.

The following error codes are used:

  • -1 - error outside UnRAR library
  • 11 - insufficient memory
  • 12 - bad data
  • 13 - bad archive
  • 14 - unknown format
  • 15 - file open error
  • 16 - file create error
  • 17 - file close error
  • 18 - read error
  • 19 - write error
  • 20 - buffer too small
  • 21 - unknown RAR error
  • 22 - password required but not given

Klassenbeschreibung

final RarException extends Exception {
/* Methoden */
public static isUsingExceptions ( ) : bool
public static setUsingExceptions ( bool $using_exceptions ) : void
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Inhaltsverzeichnis

  • RarException::isUsingExceptions — Check whether error handling with exceptions is in use
  • RarException::setUsingExceptions — Activate and deactivate error handling with exceptions


Check whether error handling with exceptions is in use

  • « RarException
  • RarException::setUsingExceptions »
  • PHP Manual
  • RarException
  • Check whether error handling with exceptions is in use

RarException::isUsingExceptions

(PECL rar >= 2.0.0)

RarException::isUsingExceptions — Check whether error handling with exceptions is in use

Beschreibung

public static RarException::isUsingExceptions ( ) : bool

Checks whether the RAR functions will emit warnings and return error values or whether they will throw exceptions in most of the circumstances (does not include some programmatic errors such as passing the wrong type of arguments).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if exceptions are being used, false otherwise.

Beispiele

Beispiel #1 RarException::isUsingExceptions() example

<?php
//The default is not to use exceptions
var_dump(RarException::isUsingExceptions());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)

Siehe auch

  • RarException::setUsingExceptions() - Activate and deactivate error handling with exceptions


Activate and deactivate error handling with exceptions

  • « RarException::isUsingExceptions
  • Zip »
  • PHP Manual
  • RarException
  • Activate and deactivate error handling with exceptions

RarException::setUsingExceptions

(PECL rar >= 2.0.0)

RarException::setUsingExceptions — Activate and deactivate error handling with exceptions

Beschreibung

public static RarException::setUsingExceptions ( bool $using_exceptions ) : void

If and only if the argument is true, then, instead of emitting warnings and returning a special value indicating error when the UnRAR library encounters an error, an exception of type RarException will be thrown.

Exceptions will also be thrown for the following errors, which occur outside the library (their error code will be -1):

  • attempting some operations on a closed RarArchive object or a RarEntry object relative to the first;
  • attempting to get an entry that does not exist with RarArchive::getEntry().

Parameter-Liste

using_exceptions

Should be true to activate exception throwing, false to deactivate (the default).

Beispiele

Beispiel #1 RarException::setUsingExceptions() example

<?php
var_dump(RarException::isUsingExceptions());
$arch = RarArchive::open("does_not_exist.rar");
var_dump($arch);

RarException::setUsingExceptions(true);
var_dump(RarException::isUsingExceptions());
$arch = RarArchive::open("does_not_exist.rar");
var_dump($arch); //not reached
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)

Warning: RarArchive::open(): Failed to open does_not_exist.rar: ERAR_EOPEN (file open error) in C:\php_rar\trunk\tests\test.php on line 3
bool(false)
bool(true)

Fatal error: Uncaught exception 'RarException' with message 'unRAR internal error: Failed to open does_not_exist.rar: ERAR_EOPEN (file open error)' in C:\php_rar\trunk\tests\test.php:8
Stack trace:
#0 C:\php_rar\trunk\tests\test.php(8): RarArchive::open('does_not_exist....')
#1 {main}
  thrown in C:\php_rar\trunk\tests\test.php on line 8

Siehe auch

  • RarException::isUsingExceptions() - Check whether error handling with exceptions is in use


Zip

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • ZipArchive — Die ZipArchive Klasse
    • ZipArchive::addEmptyDir — Fügt ein neues Verzeichnis hinzu
    • ZipArchive::addFile — Fügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu
    • ZipArchive::addFromString — Fügt eine Datei unter Verwendung ihres Inhalts zu einem ZIP-Archiv hinzu
    • ZipArchive::addGlob — Add files from a directory by glob pattern
    • ZipArchive::addPattern — Add files from a directory by PCRE pattern
    • ZipArchive::close — Schließt das aktive Archiv (geöffnet oder neu erstellt)
    • ZipArchive::count — Counts the number of files in the archive
    • ZipArchive::deleteIndex — Löscht einen Archiveintrag unter Verwendung seines Index
    • ZipArchive::deleteName — Löscht einen Archiveintrag unter Verwendung seines Namens
    • ZipArchive::extractTo — Extrahiert den Archivinhalt
    • ZipArchive::getArchiveComment — Gibt den ZIP-Archiv-Kommentar zurück
    • ZipArchive::getCommentIndex — Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsindex zurück
    • ZipArchive::getCommentName — Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsnamens zurück
    • ZipArchive::getExternalAttributesIndex — Retrieve the external attributes of an entry defined by its index
    • ZipArchive::getExternalAttributesName — Retrieve the external attributes of an entry defined by its name
    • ZipArchive::getFromIndex — Gibt den Inhalt eines Eintrags unter Verwendung seines Index zurück
    • ZipArchive::getFromName — Gibt den Inhalt eines Eintrags unter Verwendung seines Namens zurück
    • ZipArchive::getNameIndex — Gibt den Namen eines Eintrags unter Verwendung seines Index zurück
    • ZipArchive::getStatusString — Gibt die Statusfehlermeldung sowie System- oder ZIP-Meldungen zurück
    • ZipArchive::getStream — Erzeugt einen Dateizeiger zu dem per Name bestimmten Eintrag (read only)
    • ZipArchive::isCompressionMethodSupported — Check if a compression method is supported by libzip
    • ZipArchive::isEncryptionMethodSupported — Check if a encryption method is supported by libzip
    • ZipArchive::locateName — Gibt den Index eines Archiveintrags zurück
    • ZipArchive::open — Öffnet ein ZIP-Dateiarchiv
    • ZipArchive::registerCancelCallback — Register a callback to allow cancellation during archive close.
    • ZipArchive::registerProgressCallback — Register a callback to provide updates during archive close.
    • ZipArchive::renameIndex — Benennt einen durch seinen Index bestimmten Eintrag um
    • ZipArchive::renameName — Benennt einen durch seinen Namen bestimmten Eintrag um
    • ZipArchive::replaceFile — Replace file in ZIP archive with a given path
    • ZipArchive::setArchiveComment — Setzt einen Kommentar zu einem ZIP-Archiv
    • ZipArchive::setCommentIndex — Setzt einen Eintragskommentar, der via Eintragsindex bestimmt wird
    • ZipArchive::setCommentName — Setzt einen Eintragskommentar, der via Eintragsnamen bestimmt wird
    • ZipArchive::setCompressionIndex — Set the compression method of an entry defined by its index
    • ZipArchive::setCompressionName — Set the compression method of an entry defined by its name
    • ZipArchive::setEncryptionIndex — Set the encryption method of an entry defined by its index
    • ZipArchive::setEncryptionName — Set the encryption method of an entry defined by its name
    • ZipArchive::setExternalAttributesIndex — Set the external attributes of an entry defined by its index
    • ZipArchive::setExternalAttributesName — Set the external attributes of an entry defined by its name
    • ZipArchive::setMtimeIndex — Set the modification time of an entry defined by its index
    • ZipArchive::setMtimeName — Set the modification time of an entry defined by its name
    • ZipArchive::setPassword — Set the password for the active archive
    • ZipArchive::statIndex — Gibt die Details eines via Index bestimmten Eintrags zurück
    • ZipArchive::statName — Gibt die Details eines via Namen bestimmten Eintrags zurück
    • ZipArchive::unchangeAll — Setzt alle im Archiv durchgeführten Änderungen zurück
    • ZipArchive::unchangeArchive — Nimmt alle globalen Änderungen zurück, die im Archiv durchgeführt wurden
    • ZipArchive::unchangeIndex — Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Index gemacht wurden
    • ZipArchive::unchangeName — Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Namen gemacht wurden
  • Zip Funktionen
    • zip_close — Schließt ein ZIP-Archiv
    • zip_entry_close — Schließt einen Verzeichniseintrag
    • zip_entry_compressedsize — Ermittelt die komprimierte Größe eines Verzeichniseintrages
    • zip_entry_compressionmethod — Ermittelt die Komprimierungsmethode eines Verzeichniseintrags
    • zip_entry_filesize — Ermittelt die effektive Größe eines Verzeichniseintrages
    • zip_entry_name — Gibt den Namen eines Verzeichniseintrages zurück
    • zip_entry_open — Öffnet einen Verzeichniseintrag für den Lesezugriff
    • zip_entry_read — Liest einen geöffneten Verzeichniseintrag aus
    • zip_open — Öffnet ein ZIP-Archiv
    • zip_read — Liest den nächsten Eintrag innerhalb des ZIP-Archivs


Einführung

Diese Extension ermöglicht den transparenten Lese- und Schreibzugriff auf ZIP-komprimierte Archive und die darin enthaltenen Dateien.


Anforderungen

Diese Extension benötigt » libzip. Version 1.1.2 wurde mit PHP bis Version 7.3 ausgeliefert.

Die Mindestanforderung ist Version 0.11, aber neuere werden dringend empfohlen.

  • Version 1.2 wird für Verschlüsselungsunterstützung benötigt, siehe ZipArchive::setEncryptionIndex()
  • Version 1.3 wird für Fortschrittsunterstüzung benötigt, siehe ZipArchive::registerProgressCallback()
  • Version 1.6 wird für Abbruchsunterstüztung benötigt, siehe ZipArchive::registerCancelCallback()


Installation

Linux systems

Von PHP 7.4.0 an muss, um diese Funktionen nutzen zu können, PHP mit der Option --with-zip kompiliert werden. Zuvor musste Zip-Unterstützung durch Verwendung der --enable-zip Konfigurationsoption aktiviert werden.

Mit PHP 5.6.0 wurde die --with-libzip=DIR Konfigurationsoption hinzugefügt, um eine System-Installation von libzip zu verwenden. libzip 0.11 wird benötigt, aber 0.11.2 oder höher werden empfohlen.

Von PHP 7.3.0 an wird die Kompilierung mit der gebündelten libzip nicht mehr empfohlen, ist aber noch immer möglich, indem --without-libzip zur Konfiguration hinzugefügt wird. Von PHP 7.4.0 an ist die gebündelte libzip nicht mehr vorhanden.

Windows

Ab PHP 5.3 ist diese Erweiterung eingebaut. Vorher mussten Windows Benutzer php_zip.dll in ihrer php.ini laden um diese Funktionen nutzen zu können.

Installation via PECL

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/zip.


Ressource-Typen

Die Zip Extension benutzt zwei Resourcetypen, einen für Verzeichnisse innerhalb eines Zip-Archivs und einen für die eigentlichen Dateieinträge innerhalb des Archivs.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

ZipArchive nutzt Klassenkonstanten. Es gibt drei Arten von Konstanten: für Flags (FL_), Fehler (ER_) und Modi (ohne Prefix).

ZipArchive::CREATE (int)
Archiv anlegen wenn es noch nicht existiert.
ZipArchive::OVERWRITE (int)
Existiert das Archiv, dann ignoriere den aktuellen Inhalt. Anders ausgedrückt, behandle es auf dieselbe Weise, wie ein leeres Archiv.
ZipArchive::EXCL (int)
Mit einer Fehlermeldung abbrechen, falls das Archiv bereits existiert.
ZipArchive::RDONLY (int)
Öffnet Archiv im Nurlesemodus. Verfügbar von PHP 7.4.3, bzw. PECL zip 1.17.1 an, wenn mit libzip = 1.0.0 kompiliert.
ZipArchive::CHECKCONS (int)
Prüft zusätliche Konsistenzbedingungen und bricht mit einem Fehler ab, wenn diese nicht erfüllt sind.
ZipArchive::FL_NOCASE (int)
Namensvergleiche ohne Beachtung von Groß- und Kleinschreibung.
ZipArchive::FL_NODIR (int)
Verzeichniskomponenten ignorieren.
ZipArchive::FL_COMPRESSED (int)
Komprimierte Daten lesen.
ZipArchive::FL_UNCHANGED (int)
Orginaldaten benutzen und Änderungen ignorieren.
ZipArchive::FL_RECOMPRESS (int)
Erzwinge Neukomprimierung der Daten. Verfügbar von PHP 8.0.0 und PECL zip 1.18.0 an.
ZipArchive::FL_ENCRYPTED (int)
Liest verschlüsselte Daten (impliziert FL_COMPRESSED). Verfügbar von PHP 8.0.0 und PECL zip 1.18.0 an.
ZipArchive::FL_OVERWRITE (int)
Existiert die Datei mit diesem Namen bereits, wird sie überschrieben (ersetzt). Verfügbar von PHP 8.0.0 und PECL zip 1.18.0 an.
ZipArchive::FL_LOCAL (int)
In den lokalen Headern. Verfügbar von PHP 8.0.0 und PECL zip 1.18.0 an.
ZipArchive::ZIP_FL_CENTRAL (int)
Im zentralen Verzeichnis. Verfügbar von PHP 8.0.0 und PECL zip 1.18.0 an.
ZipArchive::FL_ENC_GUESS (int)
Versuche die String-Kodierung zu erraten (Standardwert). Verfügbar ab PHP 7.0.8.
ZipArchive::FL_ENC_RAW (int)
Lies unmodifizierten String. Verfügbar ab PHP 7.0.8.
ZipArchive::FL_ENC_STRICT (int)
Folge streng der Spezifikation. Verfügbar ab PHP 7.0.8.
ZipArchive::FL_ENC_UTF_8 (int)
Der String ist UTF-8 kodiert. Verfügbar ab PHP 7.0.8.
ZipArchive::FL_ENC_CP437 (int)
Der String ist CP437 kodiert. Verfügbar ab PHP 7.0.8.
ZipArchive::CM_DEFAULT (int)
Benutze "deflate" oder "store", je nachdem, was effektiver ist.
ZipArchive::CM_STORE (int)
Daten unkomprimiert mit der "store"-Methode ablegen
ZipArchive::CM_SHRINK (int)
Daten mit der "shrink"-Methode ablegen
ZipArchive::CM_REDUCE_1 (int)
Daten mit Faktor 1 reduzieren
ZipArchive::CM_REDUCE_2 (int)
Daten mit Faktor 2 reduzieren
ZipArchive::CM_REDUCE_3 (int)
Daten mit Faktor 3 reduzieren
ZipArchive::CM_REDUCE_4 (int)
Daten mit Faktor 4 reduzieren
ZipArchive::CM_IMPLODE (int)
Daten mit der "implode"-Methode ablegen
ZipArchive::CM_DEFLATE (int)
Daten mit der "deflate"-Methode ablegen
ZipArchive::CM_DEFLATE64 (int)
Daten mit der "deflate64"-Methode ablegen
ZipArchive::CM_PKWARE_IMPLODE (int)
Daten mit der PKWARE Implode-Methode ablegen
ZipArchive::CM_BZIP2 (int)
Daten mit dem Bzip2-Algorithmus ablegen
ZipArchive::CM_LZMA (int)
LZMA-Algorithmus
ZipArchive::CM_LZMA2 (int)
LZMA2-Algorithmus. Verfügbar von PHP 7.4.3, bzw. PECL zip 1.16.0, wenn mit libzip >= 1.6.0 kompiliert.
ZipArchive::CM_ZSTD (int)
Zstandard-Algorithmus. Verfügbar von PHP 8.0.0, bzw. PECL zip 1.19.1 an, wenn gegen libzip = 1.8.0 kompiliert wurde.
ZipArchive::CM_XZ (int)
XZ-Algorithmus. Verfügbar von PHP 7.4.3, bzw. PECL zip 1.16.1 an, wenn mit libzip >= 1.6.0 kompiliert.
ZipArchive::ER_OK (int)
Kein Fehler.
ZipArchive::ER_MULTIDISK (int)
ZIP-Archiv über mehrere Datenträger nicht unterstützt.
ZipArchive::ER_RENAME (int)
Umbenennung einer temporären Datei fehlgeschlagen.
ZipArchive::ER_CLOSE (int)
Schließen eines Archivs fehlgeschlagen.
ZipArchive::ER_SEEK (int)
Positionierungsfehler
ZipArchive::ER_READ (int)
Lesefehler
ZipArchive::ER_WRITE (int)
Schreibfehler
ZipArchive::ER_CRC (int)
CRC-Prüfsummenfehler
ZipArchive::ER_ZIPCLOSED (int)
Das die Datei enthaltende Archiv wurde geschlossen.
ZipArchive::ER_NOENT (int)
Datei nicht gefunden.
ZipArchive::ER_EXISTS (int)
Datei existiert bereits.
ZipArchive::ER_OPEN (int)
Datei kann nicht geöffnet werden.
ZipArchive::ER_TMPOPEN (int)
Temporäre Datei kann nicht angelegt werden.
ZipArchive::ER_ZLIB (int)
Zlib-Fehler
ZipArchive::ER_MEMORY (int)
Speicheranforderung fehlgeschlagen
ZipArchive::ER_CHANGED (string)
Eintrag wurde geändert.
ZipArchive::ER_COMPNOTSUPP (int)
Kompressionsmethode nicht unterstützt.
ZipArchive::ER_EOF (int)
Unerwartetes Dateiende.
ZipArchive::ER_INVAL (int)
Ungültiges Argument.
ZipArchive::ER_NOZIP (int)
Kein Zip-Archiv.
ZipArchive::ER_INTERNAL (int)
Interner Fehler.
ZipArchive::ER_INCONS (int)
Zip-Archiv inkonsistent.
ZipArchive::ER_REMOVE (int)
Datei kann nicht entfernt werden.
ZipArchive::ER_DELETED (int)
Eintrag wurde entfernt.
ZipArchive::ER_ENCRNOTSUPP (int)
Verschlüsselungsmethode nicht unterstützt. Verfügbar von PHP 7.4.3, bzw. PECL zip 1.16.1 an.
ZipArchive::ER_RDONLY (int)
Nurlese-Archiv. Verfügbar von PHP 7.4.3, bzw. PECL zip 1.16.1 an.
ZipArchive::ER_NOPASSWD (int)
Kein Passwort angegeben. Verfügbar von PHP 7.4.3, bzw. PECL zip 1.16.1 an.
ZipArchive::ER_WRONGPASSWD (int)
Falsches Passwort angegeben. Verfügbar von PHP 7.4.3, bzw. PECL zip 1.16.1 an.
ZipArchive::ZIP_ER_OPNOTSUPP (int)
Nurlese-Archiv. Verfügbar von PHP 7.4.3, bzw. PECL zip 1.16.1 an, wenn mit libzip = 1.0.0 kompiliert.
ZipArchive::ZIP_ER_INUSE (int)
Ressource wird noch verwendet. Verfügbar von PHP 7.4.3, bzw. PECL zip 1.16.1 an, wenn mit libzip = 1.0.0 kompiliert.
ZipArchive::ZIP_ER_TELL (int)
Verfügbar von PHP 7.4.3, bzw. PECL zip 1.16.1 an, wenn mit libzip = 1.0.0 kompiliert.
ZipArchive::ZIP_ER_COMPRESSED_DATA (int)
Komprimierte Daten ungültig. Verfügbar von PHP 7.4.3, bzw. PECL zip 1.16.1 an, wenn mit libzip = 1.0.0 kompiliert.
ZipArchive::ER_CANCELLED (int)
Operation abgebrochen. Verfügbar von PHP 7.4.3, bzw. PECL zip 1.16.1 an, wenn mit libzip = 1.0.0 kompiliert.
ZipArchive::EM_NONE (int)
Keine Verschlüsselung. Verfügbar von PHP 7.2.0, bzw. PECL zip 1.14.0 an.
ZipArchive::EM_TRAD_PKWARE (int)
Traditionelle PKWARE-Verschlüsselung. Verfügbar von PHP 8.0.0, bzw. PECL zip 1.19.0 an.
ZipArchive::EM_AES_128 (int)
AES-128-Verschlüsselung. Verfügbar von PHP 7.2.0, bzw. PECL zip 1.14.0 an, wenn mit libzip = 1.2.0 kompiliert.
ZipArchive::EM_AES_192 (int)
AES-192-Verschlüsselung. Verfügbar von PHP 7.2.0, bzw. PECL zip 1.14.0 an, wenn mit libzip = 1.2.0 kompiliert.
ZipArchive::EM_AES_256 (int)
AES-256-Verschlüsselung. Verfügbar von PHP 7.2.0, bzw. PECL zip 1.14.0 an, wenn mit libzip = 1.2.0 kompiliert.
ZipArchive::EM_UNKNOWN (int)
Unbekannter Verschlüsselungsalgorithmus. Verfügbar von PHP 8.0.0, bzw. PECL zip 1.19.0 an.
ZipArchive::LIBZIP_VERSION (string)
Die Version der Zip-Bibliothek. Verfügbar von PHP 7.4.3, bzw. PECL zip 1.16.0 an.
Betriebssystemkonstanten für externe Attribute
ZipArchive::OPSYS_DOS (int)
ZipArchive::OPSYS_AMIGA (int)
ZipArchive::OPSYS_OPENVMS (int)
ZipArchive::OPSYS_UNIX (int)
ZipArchive::OPSYS_VM_CMS (int)
ZipArchive::OPSYS_ATARI_ST (int)
ZipArchive::OPSYS_OS_2 (int)
ZipArchive::OPSYS_MACINTOSH (int)
ZipArchive::OPSYS_Z_SYSTEM (int)
ZipArchive::OPSYS_CPM (int)
ZipArchive::OPSYS_WINDOWS_NTFS (int)
ZipArchive::OPSYS_MVS (int)
ZipArchive::OPSYS_VSE (int)
ZipArchive::OPSYS_ACORN_RISC (int)
ZipArchive::OPSYS_VFAT (int)
ZipArchive::OPSYS_ALTERNATE_MVS (int)
ZipArchive::OPSYS_BEOS (int)
ZipArchive::OPSYS_TANDEM (int)
ZipArchive::OPSYS_OS_400 (int)
ZipArchive::OPSYS_OS_X (int)
ZipArchive::OPSYS_DEFAULT (int)
Seit PHP 5.6.0, PECL zip 1.12.4


Beispiele

Beispiel #1 Erstellen eines Zip-Archivs

<?php

$zip = new ZipArchive();
$filename = "./test112.zip";

if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
    exit("cannot open <$filename>\n");
}

$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt.\n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
?>

Beispiel #2 Ausgabe eines detailierten Archivlistings

<?php
$za = new ZipArchive();

$za->open('test_with_comment.zip');
print_r($za);
var_dump($za);
echo "numFiles: " . $za->numFiles . "\n";
echo "status: " . $za->status  . "\n";
echo "statusSys: " . $za->statusSys . "\n";
echo "filename: " . $za->filename . "\n";
echo "comment: " . $za->comment . "\n";

for ($i=0; $i<$za->numFiles;$i++) {
    echo "index: $i\n";
    print_r($za->statIndex($i));
}
echo "numFile:" . $za->numFiles . "\n";
?>

Beispiel #3 Zip Stream Wrapper, Auslesen von OpenOffice Metainformationen

<?php
$reader = new XMLReader();

$reader->open('zip://' . dirname(__FILE__) . '/test.odt#meta.xml');
$odt_meta = array();
while ($reader->read()) {
    if ($reader->nodeType == XMLREADER::ELEMENT) {
        $elm = $reader->name;
    } else {
        if ($reader->nodeType == XMLREADER::END_ELEMENT && $reader->name == 'office:meta') {
            break;
        }
        if (!trim($reader->value)) {
            continue;
        }
        $odt_meta[$elm] = $reader->value;
    }
}
print_r($odt_meta);
?>

Das folgende Beispiel benutzt das alte PHP 4 API, es öffnet eine Zip-Datei, liest jede einzelne Datei im Archiv und gibt deren Inhalt aus. Die in diesem Beispiel genutzte test2.zip Datei ist Teil des Testarchivs des ZZIPlib Quellcodes.

Beispiel #4 Zip Beispiel

<?php

$zip = zip_open("/tmp/test2.zip");

if ($zip) {
    while ($zip_entry = zip_read($zip)) {
        echo "Name:               " . zip_entry_name($zip_entry) . "\n";
        echo "Actual Filesize:    " . zip_entry_filesize($zip_entry) . "\n";
        echo "Compressed Size:    " . zip_entry_compressedsize($zip_entry) . "\n";
        echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";

        if (zip_entry_open($zip, $zip_entry, "r")) {
            echo "File Contents:\n";
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            echo "$buf\n";

            zip_entry_close($zip_entry);
        }
        echo "\n";

    }

    zip_close($zip);

}
?>


Die ZipArchive Klasse

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

Einführung

Ein Dateiarchiv, komprimiert mit Zip.

Klassenbeschreibung

ZipArchive implements Countable {
/* Eigenschaften */
int $lastId;
int $status;
int $statusSys;
int $numFiles;
string $filename;
string $comment;
/* Methoden */
public addEmptyDir ( string $dirname , int $flags = 0 ) : bool
public addFile ( string $filepath , string $entryname = "" , int $start = 0 , int $length = 0 , int $flags = ZipArchive::FL_OVERWRITE ) : bool
public addFromString ( string $name , string $content , int $flags = ZipArchive::FL_OVERWRITE ) : bool
public addGlob ( string $pattern , int $flags = 0 , array $options = [] ) : array|false
public addPattern ( string $pattern , string $path = "." , array $options = [] ) : array|false
public close ( ) : bool
public count ( ) : int
public deleteIndex ( int $index ) : bool
public deleteName ( string $name ) : bool
public extractTo ( string $pathto , array|string|null $files = null ) : bool
public getArchiveComment ( int $flags = 0 ) : string|false
public getCommentIndex ( int $index , int $flags = 0 ) : string|false
public getCommentName ( string $name , int $flags = 0 ) : string|false
public GetExternalAttributesIndex ( int $index , int &$opsys , int &$attr , int $flags = ? ) : bool
public getExternalAttributesName ( string $name , int &$opsys , int &$attr , int $flags = 0 ) : bool
public getFromIndex ( int $index , int $len = 0 , int $flags = 0 ) : string|false
public getFromName ( string $name , int $len = 0 , int $flags = 0 ) : string|false
public getNameIndex ( int $index , int $flags = 0 ) : string|false
public getStatusString ( ) : string
public getStream ( string $name ) : resource|false
public static isCompressionMethodSupported ( int $method , bool $enc = true ) : bool
public static isEncryptionMethodSupported ( int $method , bool $enc = true ) : bool
public locateName ( string $name , int $flags = 0 ) : int|false
public open ( string $filename , int $flags = 0 ) : bool|int
public registerCancelCallback ( callable $callback ) : bool
public registerProgressCallback ( float $rate , callable $callback ) : bool
public renameIndex ( int $index , string $new_name ) : bool
public renameName ( string $name , string $new_name ) : bool
public replaceFile ( string $filepath , string $index , int $start = 0 , int $length = 0 , int $flags = 0 ) : bool
public setArchiveComment ( string $comment ) : bool
public setCommentIndex ( int $index , string $comment ) : bool
public setCommentName ( string $name , string $comment ) : bool
public setCompressionIndex ( int $index , int $method , int $compflags = 0 ) : bool
public setCompressionName ( string $name , int $method , int $compflags = 0 ) : bool
public setEncryptionIndex ( int $index , int $method , string|null $password = null ) : bool
public setEncryptionName ( string $name , int $method , string|null $password = null ) : bool
public setExternalAttributesIndex ( int $index , int $opsys , int $attr , int $flags = 0 ) : bool
public setExternalAttributesName ( string $name , int $opsys , int $attr , int $flags = 0 ) : bool
public setMtimeIndex ( int $index , int $timestamp , int $flags = 0 ) : bool|null
public setMtimeName ( string $name , int $timestamp , int $flags = 0 ) : bool|null
public setPassword ( string $password ) : bool
public statIndex ( int $index , int $flags = 0 ) : array|false
public statName ( string $name , int $flags = 0 ) : array|false
public unchangeAll ( ) : bool
public unchangeArchive ( ) : bool
public unchangeIndex ( int $index ) : bool
public unchangeName ( string $name ) : bool
}

Eigenschaften

lastId

Index des zuletzt hinzugefügten Eintrags (Datei oder Verzeichnis). Verfügbar von PHP 8.0.0 und PECL zip 1.18.0 an.

status

Status des Zip-Archives. Verfügbar für geschlossene Archive von PHP 8.0.0 und PECL zip 1.18.0 an.

statusSys

System Status des Zip-Archives. Verfügbar für geschlossene Archive von PHP 8.0.0 und PECL zip 1.18.0 an.

numFiles

Anzahl Dateien im Archiv

filename

Dateiname im Dateisystem

comment

Kommentar für das Archiv

Inhaltsverzeichnis

  • ZipArchive::addEmptyDir — Fügt ein neues Verzeichnis hinzu
  • ZipArchive::addFile — Fügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu
  • ZipArchive::addFromString — Fügt eine Datei unter Verwendung ihres Inhalts zu einem ZIP-Archiv hinzu
  • ZipArchive::addGlob — Add files from a directory by glob pattern
  • ZipArchive::addPattern — Add files from a directory by PCRE pattern
  • ZipArchive::close — Schließt das aktive Archiv (geöffnet oder neu erstellt)
  • ZipArchive::count — Counts the number of files in the archive
  • ZipArchive::deleteIndex — Löscht einen Archiveintrag unter Verwendung seines Index
  • ZipArchive::deleteName — Löscht einen Archiveintrag unter Verwendung seines Namens
  • ZipArchive::extractTo — Extrahiert den Archivinhalt
  • ZipArchive::getArchiveComment — Gibt den ZIP-Archiv-Kommentar zurück
  • ZipArchive::getCommentIndex — Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsindex zurück
  • ZipArchive::getCommentName — Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsnamens zurück
  • ZipArchive::getExternalAttributesIndex — Retrieve the external attributes of an entry defined by its index
  • ZipArchive::getExternalAttributesName — Retrieve the external attributes of an entry defined by its name
  • ZipArchive::getFromIndex — Gibt den Inhalt eines Eintrags unter Verwendung seines Index zurück
  • ZipArchive::getFromName — Gibt den Inhalt eines Eintrags unter Verwendung seines Namens zurück
  • ZipArchive::getNameIndex — Gibt den Namen eines Eintrags unter Verwendung seines Index zurück
  • ZipArchive::getStatusString — Gibt die Statusfehlermeldung sowie System- oder ZIP-Meldungen zurück
  • ZipArchive::getStream — Erzeugt einen Dateizeiger zu dem per Name bestimmten Eintrag (read only)
  • ZipArchive::isCompressionMethodSupported — Check if a compression method is supported by libzip
  • ZipArchive::isEncryptionMethodSupported — Check if a encryption method is supported by libzip
  • ZipArchive::locateName — Gibt den Index eines Archiveintrags zurück
  • ZipArchive::open — Öffnet ein ZIP-Dateiarchiv
  • ZipArchive::registerCancelCallback — Register a callback to allow cancellation during archive close.
  • ZipArchive::registerProgressCallback — Register a callback to provide updates during archive close.
  • ZipArchive::renameIndex — Benennt einen durch seinen Index bestimmten Eintrag um
  • ZipArchive::renameName — Benennt einen durch seinen Namen bestimmten Eintrag um
  • ZipArchive::replaceFile — Replace file in ZIP archive with a given path
  • ZipArchive::setArchiveComment — Setzt einen Kommentar zu einem ZIP-Archiv
  • ZipArchive::setCommentIndex — Setzt einen Eintragskommentar, der via Eintragsindex bestimmt wird
  • ZipArchive::setCommentName — Setzt einen Eintragskommentar, der via Eintragsnamen bestimmt wird
  • ZipArchive::setCompressionIndex — Set the compression method of an entry defined by its index
  • ZipArchive::setCompressionName — Set the compression method of an entry defined by its name
  • ZipArchive::setEncryptionIndex — Set the encryption method of an entry defined by its index
  • ZipArchive::setEncryptionName — Set the encryption method of an entry defined by its name
  • ZipArchive::setExternalAttributesIndex — Set the external attributes of an entry defined by its index
  • ZipArchive::setExternalAttributesName — Set the external attributes of an entry defined by its name
  • ZipArchive::setMtimeIndex — Set the modification time of an entry defined by its index
  • ZipArchive::setMtimeName — Set the modification time of an entry defined by its name
  • ZipArchive::setPassword — Set the password for the active archive
  • ZipArchive::statIndex — Gibt die Details eines via Index bestimmten Eintrags zurück
  • ZipArchive::statName — Gibt die Details eines via Namen bestimmten Eintrags zurück
  • ZipArchive::unchangeAll — Setzt alle im Archiv durchgeführten Änderungen zurück
  • ZipArchive::unchangeArchive — Nimmt alle globalen Änderungen zurück, die im Archiv durchgeführt wurden
  • ZipArchive::unchangeIndex — Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Index gemacht wurden
  • ZipArchive::unchangeName — Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Namen gemacht wurden


Fügt ein neues Verzeichnis hinzu

  • « ZipArchive
  • ZipArchive::addFile »
  • PHP Manual
  • ZipArchive
  • Fügt ein neues Verzeichnis hinzu

ZipArchive::addEmptyDir

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.8.0)

ZipArchive::addEmptyDir — Fügt ein neues Verzeichnis hinzu

Beschreibung

public ZipArchive::addEmptyDir ( string $dirname , int $flags = 0 ) : bool

Fügt dem Archiv ein neues Verzeichnis hinzu.

Parameter-Liste

dirname

Das hinzuzufügende Verzeichnis.

flags

Eine Bitmaske bestehend aus ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437. Das Verhalten dieser Konstanten wird in der ZIP Konstanten Seite beschrieben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 / 1.18.0 | flags wurde hinzugefügt.

Beispiele

Beispiel #1 Erstellt ein neues Verzeichnis im Archiv

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    if($zip->addEmptyDir('newDirectory')) {
        echo 'Neues Rootverzeichnis erstellt.';
    } else {
        echo 'Konnte Verzeichnis nicht erstellen.';
    }
    $zip->close();
} else {
    echo 'Fehler';
}
?>


Fügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu

  • « ZipArchive::addEmptyDir
  • ZipArchive::addFromString »
  • PHP Manual
  • ZipArchive
  • Fügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu

ZipArchive::addFile

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::addFile — Fügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu

Beschreibung

public ZipArchive::addFile ( string $filepath , string $entryname = "" , int $start = 0 , int $length = 0 , int $flags = ZipArchive::FL_OVERWRITE ) : bool

Fügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu.

Hinweis: For maximum portability, it is recommended to always use forward slashes (/) as directory separator in ZIP filenames.

Parameter-Liste

filepath

Der Pfad zur hinzuzufügenden Datei.

entryname

Falls übergeben und nicht leer, ist dies der lokale Name innerhalb des ZIP-Archives, der den filepath überschreibt.

start

Die Startposition für partielles Kopieren.

length

Die Länge für partielles Kopieren; wenn 0 oder -1, wird die gesamte Datei (beginnend bei start) verwendet.

flags

Eine Bitmaske bestehend aus ZipArchive::FL_OVERWRITE, ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437. Das Verhalten dieser Konstanten wird in der ZIP-Konstanten Seite beschrieben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 / 1.18.0 | flags wurde hinzugefügt.

Beispiele

Dieses Beispiel öffnet ein ZIP-Dateiarchiv test.zip und fügt die Datei /pfad/zur/datei.txt als neuername.txt hinzu.

Beispiel #1 Öffnen und hinzufügen

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->addFile('/pfad/zur/datei.txt', 'neuername.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'Fehler';
}
?>

Anmerkungen

Hinweis:

Falls eine Datei zu einem Archiv hinzugefügt werden soll, wird PHP die Datei sperren; die Sperre wird erst gelöst, nachdem das ZipArchive-Objekt geschlossen wurde, entweder per ZipArchive::close(), oder weil das ZipArchive-Objekt zerstört wurde. Dies kann dazu führen, dass die hinzuzufügende Datei erst gelöscht werden kann nachdem die Sperre gelöst wurde.

Siehe auch

  • ZipArchive::replaceFile() - Replace file in ZIP archive with a given path


Fügt eine Datei unter Verwendung ihres Inhalts zu einem ZIP-Archiv hinzu

  • « ZipArchive::addFile
  • ZipArchive::addGlob »
  • PHP Manual
  • ZipArchive
  • Fügt eine Datei unter Verwendung ihres Inhalts zu einem ZIP-Archiv hinzu

ZipArchive::addFromString

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::addFromString — Fügt eine Datei unter Verwendung ihres Inhalts zu einem ZIP-Archiv hinzu

Beschreibung

public ZipArchive::addFromString ( string $name , string $content , int $flags = ZipArchive::FL_OVERWRITE ) : bool

Fügt eine Datei unter Verwendung ihres Inhalts zu einem ZIP-Archiv hinzu.

Hinweis: For maximum portability, it is recommended to always use forward slashes (/) as directory separator in ZIP filenames.

Parameter-Liste

name

Der Name des anzulegenden Eintrags.

content

Der Inhalt, der zum Erstellen des Eintrags verwendet werden soll. Dieser wird im Binary-safe-Modus verwendet.

flags

Eine Bitmaske bestehend aus ZipArchive::FL_OVERWRITE, ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437. Das Verhalten dieser Konstanten wird in der ZIP-Konstanten Seite beschrieben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 / 1.18.0 | flags wurde hinzugefügt.

Beispiele

Beispiel #1 Einen Eintrag zu einem neuen Archiv hinzufügen

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'Dateiinhalt kommt hier');
    $zip->close();
    echo 'ok';
} else {
    echo 'Fehler';
}
?>

Beispiel #2 Eine Datei zu einem Verzeichnis innerhalb eines Archivs hinzufügen

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->addFromString('dir/test.txt', 'file content goes here');
    $zip->close();
    echo 'ok';
} else {
    echo 'Fehler';
}
?>


Add files from a directory by glob pattern

  • « ZipArchive::addFromString
  • ZipArchive::addPattern »
  • PHP Manual
  • ZipArchive
  • Add files from a directory by glob pattern

ZipArchive::addGlob

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL zip >= 1.9.0)

ZipArchive::addGlob — Add files from a directory by glob pattern

Beschreibung

public ZipArchive::addGlob ( string $pattern , int $flags = 0 , array $options = [] ) : array|false

Add files from a directory which match the glob pattern.

Hinweis: For maximum portability, it is recommended to always use forward slashes (/) as directory separator in ZIP filenames.

Parameter-Liste

pattern

A glob() pattern against which files will be matched.

flags

A bit mask of glob() flags.

options

An associative array of options. Available options are:

  • "add_path"

    Prefix to prepend when translating to the local path of the file within the archive. This is applied after any remove operations defined by the "remove_path" or "remove_all_path" options.

  • "remove_path"

    Prefix to remove from matching file paths before adding to the archive.

  • "remove_all_path"

    true to use the file name only and add to the root of the archive.

  • "flags"

    Bitmask consisting of ZipArchive::FL_OVERWRITE, ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437. The behaviour of these constants is described on the ZIP constants page.

  • "comp_method"

    Compression method, one of the ZipArchive::CM_* constants, see ZIP constants page.

  • "comp_flags"

    Compression level.

  • "enc_method"

    Encryption method, one of the ZipArchive::EM_* constants, see ZIP constants page.

  • "enc_password"

    Password used for encryption.

Rückgabewerte

An array of added files on success Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 / 1.18.0 | "flags" in options was added.
8.0.0 / 1.18.1 | "comp_method", "comp_flags", "enc_method" and "enc_password" in options were added.

Beispiele

Beispiel #1 ZipArchive::addGlob() example

Add all php scripts and text files from current working directory

<?php
$zip = new ZipArchive();
$ret = $zip->open('application.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
    printf('Failed with code %d', $ret);
} else {
    $options = array('add_path' => 'sources/', 'remove_all_path' => TRUE);
    $zip->addGlob('*.{php,txt}', GLOB_BRACE, $options);
    $zip->close();
}
?>

Siehe auch

  • ZipArchive::addFile() - Fügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu
  • ZipArchive::addPattern() - Add files from a directory by PCRE pattern


Add files from a directory by PCRE pattern

  • « ZipArchive::addGlob
  • ZipArchive::close »
  • PHP Manual
  • ZipArchive
  • Add files from a directory by PCRE pattern

ZipArchive::addPattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL zip >= 1.9.0)

ZipArchive::addPattern — Add files from a directory by PCRE pattern

Beschreibung

public ZipArchive::addPattern ( string $pattern , string $path = "." , array $options = [] ) : array|false

Add files from a directory which match the regular expression pattern. The operation is not recursive. The pattern will be matched against the file name only.

Parameter-Liste

pattern

A PCRE pattern against which files will be matched.

path

The directory that will be scanned. Defaults to the current working directory.

options

An associative array of options accepted by ZipArchive::addGlob().

Rückgabewerte

An array of added files on success Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ZipArchive::addPattern() example

Add all php scripts and text files from current directory

<?php
$zip = new ZipArchive();
$ret = $zip->open('application.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
    printf('Failed with code %d', $ret);
} else {
    $directory = realpath('.');
    $options = array('add_path' => 'sources/', 'remove_path' => $directory);
    $zip->addPattern('/\.(?:php|txt)$/', $directory, $options);
    $zip->close();
}
?>

Siehe auch

  • ZipArchive::addFile() - Fügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu
  • ZipArchive::addGlob() - Add files from a directory by glob pattern


Schließt das aktive Archiv (geöffnet oder neu erstellt)

  • « ZipArchive::addPattern
  • ZipArchive::count »
  • PHP Manual
  • ZipArchive
  • Schließt das aktive Archiv (geöffnet oder neu erstellt)

ZipArchive::close

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::close — Schließt das aktive Archiv (geöffnet oder neu erstellt)

Beschreibung

public ZipArchive::close ( ) : bool

Schließt das geöffnete oder neu erstellte Archiv und speichert die Änderungen. Diese Methode wird am Ende des Skripts automatisch aufgerufen.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Counts the number of files in the archive

  • « ZipArchive::close
  • ZipArchive::deleteIndex »
  • PHP Manual
  • ZipArchive
  • Counts the number of files in the archive

ZipArchive::count

(PHP 7 >= 7.2.0, PHP 8, PECL zip >= 1.15.0)

ZipArchive::count — Counts the number of files in the archive

Beschreibung

public ZipArchive::count ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of files in the archive.


Löscht einen Archiveintrag unter Verwendung seines Index

  • « ZipArchive::count
  • ZipArchive::deleteName »
  • PHP Manual
  • ZipArchive
  • Löscht einen Archiveintrag unter Verwendung seines Index

ZipArchive::deleteIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::deleteIndex — Löscht einen Archiveintrag unter Verwendung seines Index

Beschreibung

public ZipArchive::deleteIndex ( int $index ) : bool

Löscht einen Archiveintrag unter Verwendung seines Index.

Parameter-Liste

index

Index des zu löschenden Eintrags.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Löschen einer Datei aus dem Archiv unter Verwendung ihres Index

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->deleteIndex(2);
    $zip->close();
    echo 'ok';
} else {
    echo 'Fehler';
}
?>


Löscht einen Archiveintrag unter Verwendung seines Namens

  • « ZipArchive::deleteIndex
  • ZipArchive::extractTo »
  • PHP Manual
  • ZipArchive
  • Löscht einen Archiveintrag unter Verwendung seines Namens

ZipArchive::deleteName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::deleteName — Löscht einen Archiveintrag unter Verwendung seines Namens

Beschreibung

public ZipArchive::deleteName ( string $name ) : bool

Löscht einen Archiveintrag unter Verwendung seines Namens.

Parameter-Liste

name

Name des zu löschenden Eintrags.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Eine Datei und ein Verzeichnis unter Verwendung ihrer Namen aus einem Archiv löschen

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
    $zip->deleteName('testfromfile.php');
    $zip->deleteName('testDir/');
    $zip->close();
    echo 'ok';
} else {
    echo 'Fehler';
}
?>


Extrahiert den Archivinhalt

  • « ZipArchive::deleteName
  • ZipArchive::getArchiveComment »
  • PHP Manual
  • ZipArchive
  • Extrahiert den Archivinhalt

ZipArchive::extractTo

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::extractTo — Extrahiert den Archivinhalt

Beschreibung

public ZipArchive::extractTo ( string $pathto , array|string|null $files = null ) : bool

Extrahiert das komplette Archiv oder die gegebenen Dateien in das angegebene Ziel.

Warnung

Die Standardberechtigungen für extrahierte Dateien und Verzeichnisse sind maximal großzügig ausgelegt. Dies kann eingeschränkt werden, wenn die aktuelle umask durch Verwendung von umask() gesetzt wird.

Parameter-Liste

pathto

Stelle, an die die Dateien extrahiert werden sollen.

files

Die zu extrahierenden Einträge. Es wird entweder ein einzelner Eintragsname oder ein Array von Namen akzeptiert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Alle Einträge extrahieren

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->extractTo('/mein/ziel/verzeichnis/');
    $zip->close();
    echo 'ok';
} else {
    echo 'Fehler';
}
?>

Beispiel #2 Zwei Einträge extrahieren

<?php
$zip = new ZipArchive;
$res = $zip->open('test_im.zip');
if ($res === TRUE) {
    $zip->extractTo('/mein/ziel/verzeichnis/', array('pear_item.gif', 'testfromfile.php'));
    $zip->close();
    echo 'ok';
} else {
    echo 'Fehler';
}
?>


Gibt den ZIP-Archiv-Kommentar zurück

  • « ZipArchive::extractTo
  • ZipArchive::getCommentIndex »
  • PHP Manual
  • ZipArchive
  • Gibt den ZIP-Archiv-Kommentar zurück

ZipArchive::getArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getArchiveComment — Gibt den ZIP-Archiv-Kommentar zurück

Beschreibung

public ZipArchive::getArchiveComment ( int $flags = 0 ) : string|false

Gibt den ZIP-Archiv-Kommentar zurück.

Parameter-Liste

flags

Ist flags aufZipArchive::FL_UNCHANGED gesetzt, wird der originale unveränderte Kommentar zurückgegeben.

Rückgabewerte

Gibt bei Erfolg den ZIP-Archiv-Kommentar zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Einen Archivkommentar ausgeben

<?php
$zip = new ZipArchive;
$res = $zip->open('test_with_comment.zip');
if ($res === TRUE) {
    var_dump($zip->getArchiveComment());
    /* Oder die Archiveigenschaft verwenden */
    var_dump($zip->comment);
} else {
    echo 'Fehler, Code:' . $res;
}
?>


Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsindex zurück

  • « ZipArchive::getArchiveComment
  • ZipArchive::getCommentName »
  • PHP Manual
  • ZipArchive
  • Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsindex zurück

ZipArchive::getCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::getCommentIndex — Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsindex zurück

Beschreibung

public ZipArchive::getCommentIndex ( int $index , int $flags = 0 ) : string|false

Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsindex zurück.

Parameter-Liste

index

Index des Eintrags.

flags

Wenn das Flag auf ZipArchive::FL_UNCHANGED gesetzt ist, wird der originale Kommentar unverändert zurückgegeben.

Rückgabewerte

Gibt bei Erfolg den Kommentar zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Einen Eintragskommentar ausgeben

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip');
if ($res === TRUE) {
    var_dump($zip->getCommentIndex(1));
} else {
    echo 'Fehler, Code:' . $res;
}
?>


Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsnamens zurück

  • « ZipArchive::getCommentIndex
  • ZipArchive::getExternalAttributesIndex »
  • PHP Manual
  • ZipArchive
  • Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsnamens zurück

ZipArchive::getCommentName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::getCommentName — Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsnamens zurück

Beschreibung

public ZipArchive::getCommentName ( string $name , int $flags = 0 ) : string|false

Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsnamens zurück.

Parameter-Liste

name

Name des Eintrags.

flags

Wenn das Flag auf ZipArchive::FL_UNCHANGED gesetzt ist, wird der originale Kommentar unverändert zurückgegeben.

Rückgabewerte

Gibt bei Erfolg den Kommentar zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Einen Eintragskommentar ausgeben

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip');
if ($res === TRUE) {
    var_dump($zip->getCommentName('test/eintrag1.txt'));
} else {
    echo 'Fehler, Code:' . $res;
}
?>


Retrieve the external attributes of an entry defined by its index

  • « ZipArchive::getCommentName
  • ZipArchive::getExternalAttributesName »
  • PHP Manual
  • ZipArchive
  • Retrieve the external attributes of an entry defined by its index

ZipArchive::getExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesIndex — Retrieve the external attributes of an entry defined by its index

Beschreibung

public ZipArchive::GetExternalAttributesIndex ( int $index , int &$opsys , int &$attr , int $flags = ? ) : bool

Retrieve the external attributes of an entry defined by its index.

Parameter-Liste

index

Index of the entry.

opsys

On success, receive the operating system code defined by one of the ZipArchive::OPSYS_ constants.

attr

On success, receive the external attributes. Value depends on operating system.

flags

If flags is set to ZipArchive::FL_UNCHANGED, the original unchanged attributes are returned.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

This example extract all the entries of a ZIP archive test.zip and set the Unix rights from external attributes.

Beispiel #1 Extract all entries with Unix rights

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip') === TRUE) {
    for ($idx=0 ; $s = $zip->statIndex($idx) ; $idx++) {
        if ($zip->extractTo('.', $s['name'])) {
            if ($zip->getExternalAttributesIndex($idx, $opsys, $attr)
                && $opsys==ZipArchive::OPSYS_UNIX) {
               chmod($s['name'], ($attr >> 16) & 0777);
            }
        }
    }
    $zip->close();
    echo "Ok\n";
} else {
    echo "KO\n";
}
?>


Retrieve the external attributes of an entry defined by its name

  • « ZipArchive::getExternalAttributesIndex
  • ZipArchive::getFromIndex »
  • PHP Manual
  • ZipArchive
  • Retrieve the external attributes of an entry defined by its name

ZipArchive::getExternalAttributesName

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesName — Retrieve the external attributes of an entry defined by its name

Beschreibung

public ZipArchive::getExternalAttributesName ( string $name , int &$opsys , int &$attr , int $flags = 0 ) : bool

Retrieve the external attributes of an entry defined by its name.

Parameter-Liste

name

Name of the entry.

opsys

On success, receive the operating system code defined by one of the ZipArchive::OPSYS_ constants.

attr

On success, receive the external attributes. Value depends on operating system.

flags

If flags is set to ZipArchive::FL_UNCHANGED, the original unchanged attributes are returned.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Gibt den Inhalt eines Eintrags unter Verwendung seines Index zurück

  • « ZipArchive::getExternalAttributesName
  • ZipArchive::getFromName »
  • PHP Manual
  • ZipArchive
  • Gibt den Inhalt eines Eintrags unter Verwendung seines Index zurück

ZipArchive::getFromIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getFromIndex — Gibt den Inhalt eines Eintrags unter Verwendung seines Index zurück

Beschreibung

public ZipArchive::getFromIndex ( int $index , int $len = 0 , int $flags = 0 ) : string|false

Gibt den Inhalt eines Eintrags unter Verwendung seines Index zurück.

Parameter-Liste

index

Index des Eintrags

len

Die von dem Eintrag zu lesende Länge. Falls 0, wird der gesamte Eintrag gelesen.

flags

Die Flags, die beim Öffnen des Archivs verwendet werden können. Die folgenden Werte können darauf angewendet werden (ODER verknüpft):

  • ZipArchive::FL_UNCHANGED

  • ZipArchive::FL_COMPRESSED

Rückgabewerte

Gibt im Erfolgsfall den Inhalt des Eintrags zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Den Dateiinhalt auslesen

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    echo $zip->getFromIndex(2);
    $zip->close();
} else {
    echo 'Fehler';
}
?>

Siehe auch

  • ZipArchive::getFromName() - Gibt den Inhalt eines Eintrags unter Verwendung seines Namens zurück


Gibt den Inhalt eines Eintrags unter Verwendung seines Namens zurück

  • « ZipArchive::getFromIndex
  • ZipArchive::getNameIndex »
  • PHP Manual
  • ZipArchive
  • Gibt den Inhalt eines Eintrags unter Verwendung seines Namens zurück

ZipArchive::getFromName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getFromName — Gibt den Inhalt eines Eintrags unter Verwendung seines Namens zurück

Beschreibung

public ZipArchive::getFromName ( string $name , int $len = 0 , int $flags = 0 ) : string|false

Gibt den Inhalt eines Eintrags unter Verwendung seines Namens zurück.

Parameter-Liste

name

Name des Eintrags

len

Die von dem Eintrag zu lesende Länge. Falls 0, wird der gesamte Eintrag gelesen.

flags

Die Flags, die beim Suchen des Eintrags verwendet werden können. Die folgenden Werte können darauf angewendet werden (ODER-verknüpft):

  • ZipArchive::FL_UNCHANGED

  • ZipArchive::FL_COMPRESSED

  • ZipArchive::FL_NOCASE

Rückgabewerte

Gibt im Erfolgsfall den Inhalt des Eintrags zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Den Dateiinhalt auslesen

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
    echo $zip->getFromName('testfromfile.php');
    $zip->close();
} else {
    echo 'Fehler';
}
?>

Beispiel #2 Ein Bild aus einem ZIP-Eintrag konvertieren

<?php
$z = new ZipArchive();
if ($z->open(dirname(__FILE__) . '/test_im.zip')) {
    $im_string = $z->getFromName("pear_item.gif");
    $im = imagecreatefromstring($im_string);
    imagepng($im, 'b.png');
}
?>

Siehe auch

  • ZipArchive::getFromIndex() - Gibt den Inhalt eines Eintrags unter Verwendung seines Index zurück


Gibt den Namen eines Eintrags unter Verwendung seines Index zurück

  • « ZipArchive::getFromName
  • ZipArchive::getStatusString »
  • PHP Manual
  • ZipArchive
  • Gibt den Namen eines Eintrags unter Verwendung seines Index zurück

ZipArchive::getNameIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::getNameIndex — Gibt den Namen eines Eintrags unter Verwendung seines Index zurück

Beschreibung

public ZipArchive::getNameIndex ( int $index , int $flags = 0 ) : string|false

Gibt den Namen eines Eintrags unter Verwendung seines Index zurück.

Parameter-Liste

index

Index des Eintrags.

flags

Ist flags aufZipArchive::FL_UNCHANGED gesetzt, wird der originale unveränderte Name zurückgegeben.

Rückgabewerte

Gibt im Erfolgsfall den Namen zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ZipArchive::getNameIndex()-Beispiel

<?php
if ($zip->open('test.zip') == TRUE) {
 for ($i = 0; $i < $zip->numFiles; $i++) {
     $filename = $zip->getNameIndex($i);
     // ...
 }
}
?>


Gibt die Statusfehlermeldung sowie System- oder ZIP-Meldungen zurück

  • « ZipArchive::getNameIndex
  • ZipArchive::getStream »
  • PHP Manual
  • ZipArchive
  • Gibt die Statusfehlermeldung sowie System- oder ZIP-Meldungen zurück

ZipArchive::getStatusString

(PHP 5 >= 5.2.7, PHP 7, PHP 8)

ZipArchive::getStatusString — Gibt die Statusfehlermeldung sowie System- oder ZIP-Meldungen zurück

Beschreibung

public ZipArchive::getStatusString ( ) : string

Gibt die Statusfehlermeldung sowie System- oder ZIP-Meldungen zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Liefert einen string mit der Statusmeldung.

Changelog

Version | Beschreibung
8.0.0 / 1.18.0 | Diese Methode kann für ein geschlossenes Archiv aufgerufen werden.
8.0.0 / 1.18.0 | Diese Methode gibt im Fall eines Fehlers nicht mehr false zurück.


Erzeugt einen Dateizeiger zu dem per Name bestimmten Eintrag (read only)

  • « ZipArchive::getStatusString
  • ZipArchive::isCompressionMethodSupported »
  • PHP Manual
  • ZipArchive
  • Erzeugt einen Dateizeiger zu dem per Name bestimmten Eintrag (read only)

ZipArchive::getStream

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getStream — Erzeugt einen Dateizeiger zu dem per Name bestimmten Eintrag (read only)

Beschreibung

public ZipArchive::getStream ( string $name ) : resource|false

Erzeugt einen Dateizeiger zu dem per Name bestimmten Eintrag. Derzeit werden nur Leseoperationen unterstützt.

Parameter-Liste

name

Der Name des zu verwendenden Eintrags.

Rückgabewerte

Gibt im Erfolgsfall einen Filepointer (resource) zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Den Eintragsinhalt mit fread() holen und speichern

<?php
$contents = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
    $fp = $z->getStream('test');
    if(!$fp) exit("Fehler\n");

    while (!feof($fp)) {
        $contents .= fread($fp, 2);
    }

    fclose($fp);
    file_put_contents('t',$contents);
    echo "Erledigt.\n";
}
?>

Beispiel #2 Das gleiche wie im vorigen Beispiel aber mit fopen() und dem ZIP-Streamwrapper

<?php
$contents = '';
$fp = fopen('zip://' . dirname(__FILE__) . '/test.zip#test', 'r');
if (!$fp) {
    exit("Datei kann nicht geöffnet werden\n");
}
while (!feof($fp)) {
    $contents .= fread($fp, 2);
}
echo "$contents\n";
fclose($fp);
echo "Erledigt.\n";
?>

Beispiel #3 Streamwrapper und Bild, kann ebenfalls mit der XML-Funktion verwendet werden

<?php
$im = imagecreatefromgif('zip://' . dirname(__FILE__) . '/test_im.zip#pear_item.gif');
imagepng($im, 'a.png');
?>


Check if a compression method is supported by libzip

  • « ZipArchive::getStream
  • ZipArchive::isEncryptionMethodSupported »
  • PHP Manual
  • ZipArchive
  • Check if a compression method is supported by libzip

ZipArchive::isCompressionMethodSupported

(PHP >= 8.0.0, PECL zip >= 1.19.0)

ZipArchive::isCompressionMethodSupported — Check if a compression method is supported by libzip

Beschreibung

public static ZipArchive::isCompressionMethodSupported ( int $method , bool $enc = true ) : bool

Check if a compression method is supported by libzip.

Parameter-Liste

method

The compression method, one of the ZipArchive::CM_* constants.

enc

If true check for compression, else check for decompression.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

This function is only available if built against libzip = 1.7.0.

Siehe auch

  • ZipArchive::setCompressionIndex() - Set the compression method of an entry defined by its index
  • ZipArchive::setCompressionName() - Set the compression method of an entry defined by its name


Check if a encryption method is supported by libzip

  • « ZipArchive::isCompressionMethodSupported
  • ZipArchive::locateName »
  • PHP Manual
  • ZipArchive
  • Check if a encryption method is supported by libzip

ZipArchive::isEncryptionMethodSupported

(PHP >= 8.0.0, PECL zip >= 1.19.0)

ZipArchive::isEncryptionMethodSupported — Check if a encryption method is supported by libzip

Beschreibung

public static ZipArchive::isEncryptionMethodSupported ( int $method , bool $enc = true ) : bool

Check if a compression method is supported by libzip.

Parameter-Liste

method

The encryption method, one of the ZipArchive::EM_* constants.

enc

If true check for encryption, else check for decryption.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

This function is only available if built against libzip = 1.7.0.

Siehe auch

  • ZipArchive::setEncryptionIndex() - Set the encryption method of an entry defined by its index
  • ZipArchive::setEncryptionName() - Set the encryption method of an entry defined by its name


Gibt den Index eines Archiveintrags zurück

  • « ZipArchive::isEncryptionMethodSupported
  • ZipArchive::open »
  • PHP Manual
  • ZipArchive
  • Gibt den Index eines Archiveintrags zurück

ZipArchive::locateName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::locateName — Gibt den Index eines Archiveintrags zurück

Beschreibung

public ZipArchive::locateName ( string $name , int $flags = 0 ) : int|false

Lokalisiert einen Eintrag unter Verwendung seines Namens.

Parameter-Liste

name

Der Name des Eintrags, nach dem gesucht werden soll.

flags

Die Funktion gibt den Index der Datei namens fname im Archiv zurück. Die Flags können miteinander kombiniert werden, soll keines davon genutzt werden, sollte 0 verwendet werden.

  • ZipArchive::FL_NOCASE

  • ZipArchive::FL_NODIR

Rückgabewerte

Gibt im Erfolgsfall den Index eines Eintrags zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ein Archiv erstellen und es mit locateName verwenden

<?php
$file = 'testlocate.zip';

$zip = new ZipArchive;
if ($zip->open($file, ZipArchive::CREATE) !== TRUE) {
    exit('Fehler');
}

$zip->addFromString('eintrag1.txt', 'Eintrag #1');
$zip->addFromString('eintrag2.txt', 'Eintrag #2');
$zip->addFromString('dir/eintrag2d.txt', 'Eintrag #2');

if ($zip->status == ZipArchive::ER_OK) {
    echo "Fehler beim Schreiben des ZIP\n";
}
$zip->close();

if ($zip->open($file) !== TRUE) {
    exit('Fehler');
}

echo $zip->locateName('eintrag1.txt') . "\n";
echo $zip->locateName('eiNtrag2.txt') . "\n";
echo $zip->locateName('eiNtrag2.txt', ZipArchive::FL_NOCASE) . "\n";
echo $zip->locateName('einTRag2d.txt', ZipArchive::FL_NOCASE|ZipArchive::FL_NODIR) . "\n";
$zip->close();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0

1
2


Öffnet ein ZIP-Dateiarchiv

  • « ZipArchive::locateName
  • ZipArchive::registerCancelCallback »
  • PHP Manual
  • ZipArchive
  • Öffnet ein ZIP-Dateiarchiv

ZipArchive::open

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::open — Öffnet ein ZIP-Dateiarchiv

Beschreibung

public ZipArchive::open ( string $filename , int $flags = 0 ) : bool|int

Öffnet ein neues oder existierendes ZIP-Archiv für Lese-, Schreib- und Veränderungszugriffe.

Seit libzip 1.6.0 wird eine leere Datei nicht länger als gültiges Archiv angesehen.

Parameter-Liste

filename

Der Name des zu öffnenden ZIP-Archivs.

flags

Der Modus, in dem das zu öffnende Archiv verwendet werden soll.

  • ZipArchive::OVERWRITE

  • ZipArchive::CREATE

  • ZipArchive::RDONLY

  • ZipArchive::EXCL

  • ZipArchive::CHECKCONS

Rückgabewerte

Gibt bei Erfolg true zurück, oder einen der folgenden Fehlercodes:

ZipArchive::ER_EXISTS
Die Datei existiert bereits.
ZipArchive::ER_INCONS
Das Zip-Archiv ist inkonsistent.
ZipArchive::ER_INVAL
Ungültiges Argument.
ZipArchive::ER_MEMORY
Malloc-Fehler.
ZipArchive::ER_NOENT
Keine solche Datei.
ZipArchive::ER_NOZIP
Kein ZIP-Archiv.
ZipArchive::ER_OPEN
Datei konnte nicht geöffnet werden.
ZipArchive::ER_READ
Lesefehler.
ZipArchive::ER_SEEK
Positionierungsfehler.

Beispiele

Beispiel #1 Öffnen und extrahieren

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    echo 'ok';
    $zip->extractTo('test');
    $zip->close();
} else {
    echo 'Fehler, Code:' . $res;
}
?>

Beispiel #2 Ein Archiv erstellen

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'Der Dateiinhalt kommt hier');
    $zip->addFile('data.txt', 'eintragsname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'Fehler';
}
?>

Beispiel #3 Erstellen eines temporären Archivs

<?php
$name = tempnam(sys_get_temp_dir(), "FOO");
$zip = new ZipArchive;
$res = $zip->open($name, ZipArchive::OVERWRITE); /* trunkieren, da eine leere Datei nicht gültig ist */
if ($res === TRUE) {
    $zip->addFile('data.txt', 'eintragsname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'Fehler';
}
?>


Register a callback to allow cancellation during archive close.

  • « ZipArchive::open
  • ZipArchive::registerProgressCallback »
  • PHP Manual
  • ZipArchive
  • Register a callback to allow cancellation during archive close.

ZipArchive::registerCancelCallback

(PHP >= 8.0.0, PECL zip >= 1.17.0)

ZipArchive::registerCancelCallback — Register a callback to allow cancellation during archive close.

Beschreibung

public ZipArchive::registerCancelCallback ( callable $callback ) : bool

Register a callback function to allow cancellation during archive close.

Parameter-Liste

callback

If this function return 0 operation will continue, other value it will be cancelled.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

This function is only available if built against libzip = 1.6.0.

Beispiele

This example creates a ZIP file archive php.zip and cancel operation on some run condition.

Beispiel #1 Archive a file

<?php
$zip = new ZipArchive();
if ($zip->open('php.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE)) {
    $zip->addFile(PHP_BINARY, 'php');
    $zip->registerCancelCallback(function () {
        return ($someruncondition ? -1 : 0);
    });
    $zip->close();
}

Siehe auch

  • ZipArchive::registerProgressCallback() - Register a callback to provide updates during archive close.


Register a callback to provide updates during archive close.

  • « ZipArchive::registerCancelCallback
  • ZipArchive::renameIndex »
  • PHP Manual
  • ZipArchive
  • Register a callback to provide updates during archive close.

ZipArchive::registerProgressCallback

(PHP >= 8.0.0, PECL zip >= 1.17.0)

ZipArchive::registerProgressCallback — Register a callback to provide updates during archive close.

Beschreibung

public ZipArchive::registerProgressCallback ( float $rate , callable $callback ) : bool

Register a callback function to provide updates during archive close.

Parameter-Liste

rate

Change between each call of the callback (from 0.0 to 1.0).

callback

This function will receive the current state as a float (from 0.0 to 1.0).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

This function is only available if built against libzip = 1.3.0.

Beispiele

This example creates a ZIP file archive php.zip and show progression.

Beispiel #1 Archive a file

$zip = new ZipArchive();
if ($zip->open('php.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE)) {
    $zip->addFile(PHP_BINARY, 'php');
    $zip->registerProgressCallback(0.05, function ($r) {
        printf("%d%%\n", $r * 100);
    });
    $zip->close();
}

Siehe auch

  • ZipArchive::registerCancelCallback() - Register a callback to allow cancellation during archive close.


Benennt einen durch seinen Index bestimmten Eintrag um

  • « ZipArchive::registerProgressCallback
  • ZipArchive::renameName »
  • PHP Manual
  • ZipArchive
  • Benennt einen durch seinen Index bestimmten Eintrag um

ZipArchive::renameIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::renameIndex — Benennt einen durch seinen Index bestimmten Eintrag um

Beschreibung

public ZipArchive::renameIndex ( int $index , string $new_name ) : bool

Benennt einen durch seinen Index bestimmten Eintrag um.

Parameter-Liste

index

Index des umzubenennenden Eintrags.

new-name

Neuer Name.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Einen Eintrag umbenennen

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->renameIndex(2,'neuer_name.txt');
    $zip->close();
} else {
    echo 'Fehler, Code:' . $res;
}
?>


Benennt einen durch seinen Namen bestimmten Eintrag um

  • « ZipArchive::renameIndex
  • ZipArchive::replaceFile »
  • PHP Manual
  • ZipArchive
  • Benennt einen durch seinen Namen bestimmten Eintrag um

ZipArchive::renameName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::renameName — Benennt einen durch seinen Namen bestimmten Eintrag um

Beschreibung

public ZipArchive::renameName ( string $name , string $new_name ) : bool

Benennt einen durch seinen Namen bestimmten Eintrag um.

Parameter-Liste

name

Name des umzubenennenden Eintrags.

new_name

Neuer Name.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Einen Eintrag umbenennen

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->renameName('aktueller_name.txt','neuer_name.txt');
    $zip->close();
} else {
    echo 'Fehler, Code:' . $res;
}
?>


Replace file in ZIP archive with a given path

  • « ZipArchive::renameName
  • ZipArchive::setArchiveComment »
  • PHP Manual
  • ZipArchive
  • Replace file in ZIP archive with a given path

ZipArchive::replaceFile

(PHP >= 8.0.0, PECL zip >= 1.18.0)

ZipArchive::replaceFile — Replace file in ZIP archive with a given path

Beschreibung

public ZipArchive::replaceFile ( string $filepath , string $index , int $start = 0 , int $length = 0 , int $flags = 0 ) : bool

Replace file in ZIP archive with a given path.

Hinweis: For maximum portability, it is recommended to always use forward slashes (/) as directory separator in ZIP filenames.

Parameter-Liste

filepath

The path to the file to add.

index

The index of the file to be replaced, its name is unchanged.

start

For partial copy, start position.

length

For partial copy, length to be copied, if 0 or -1 the whole file (starting from start) is used.

flags

Bitmask consisting of ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437. The behaviour of these constants is described on the ZIP constants page.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

This example opens a ZIP file archive test.zip and replaces index 1 entry with /path/to/index.txt.

Beispiel #1 Open and replace

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->replaceFile('/path/to/index.txt', 1);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

Siehe auch

  • ZipArchive::addFile() - Fügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu


Setzt einen Kommentar zu einem ZIP-Archiv

  • « ZipArchive::replaceFile
  • ZipArchive::setCommentIndex »
  • PHP Manual
  • ZipArchive
  • Setzt einen Kommentar zu einem ZIP-Archiv

ZipArchive::setArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::setArchiveComment — Setzt einen Kommentar zu einem ZIP-Archiv

Beschreibung

public ZipArchive::setArchiveComment ( string $comment ) : bool

Setzt einen Kommentar zu einem ZIP-Archiv.

Parameter-Liste

comment

Der Inhalt des Kommentars.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ein Archiv erstellen und einen Kommentar hinzufügen

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'Der Dateiinhalt kommt hier');
    $zip->setArchiveComment('Neuer Archivkommentar');
    $zip->close();
    echo 'ok';
} else {
    echo 'Fehler';
}
?>


Setzt einen Eintragskommentar, der via Eintragsindex bestimmt wird

  • « ZipArchive::setArchiveComment
  • ZipArchive::setCommentName »
  • PHP Manual
  • ZipArchive
  • Setzt einen Eintragskommentar, der via Eintragsindex bestimmt wird

ZipArchive::setCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::setCommentIndex — Setzt einen Eintragskommentar, der via Eintragsindex bestimmt wird

Beschreibung

public ZipArchive::setCommentIndex ( int $index , string $comment ) : bool

Setzt einen Eintragskommentar, der via Eintragsindex bestimmt wird.

Parameter-Liste

index

Index des Eintrags.

comment

Der Inhalt des Kommentars.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ein Archiv öffnen und für einen Eintrag einen Kommentar hinzufügen

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->setCommentIndex(2, 'Neuer Eintragskommentar');
    $zip->close();
    echo 'ok';
} else {
    echo 'Fehler';
}
?>


Setzt einen Eintragskommentar, der via Eintragsnamen bestimmt wird

  • « ZipArchive::setCommentIndex
  • ZipArchive::setCompressionIndex »
  • PHP Manual
  • ZipArchive
  • Setzt einen Eintragskommentar, der via Eintragsnamen bestimmt wird

ZipArchive::setCommentName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::setCommentName — Setzt einen Eintragskommentar, der via Eintragsnamen bestimmt wird

Beschreibung

public ZipArchive::setCommentName ( string $name , string $comment ) : bool

Setzt einen Eintragskommentar, der via Eintragsnamen bestimmt wird.

Parameter-Liste

name

Name des Eintrags.

comment

Der Inhalt des Kommentars.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ein Archiv öffnen und für einen Eintrag einen Kommentar hinzufügen

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->setCommentName('eintrag1.txt', 'Neuer Eintragskommentar');
    $zip->close();
    echo 'ok';
} else {
    echo 'Fehler';
}
?>


Set the compression method of an entry defined by its index

  • « ZipArchive::setCommentName
  • ZipArchive::setCompressionName »
  • PHP Manual
  • ZipArchive
  • Set the compression method of an entry defined by its index

ZipArchive::setCompressionIndex

(PHP 7, PHP 8, PECL zip >= 1.13.0)

ZipArchive::setCompressionIndex — Set the compression method of an entry defined by its index

Beschreibung

public ZipArchive::setCompressionIndex ( int $index , int $method , int $compflags = 0 ) : bool

Set the compression method of an entry defined by its index.

Parameter-Liste

index

Index of the entry.

method

The compression method, one of the ZipArchive::CM_* constants.

compflags

Compression level.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Add files with different compression methods to an archive

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('foo', 'Some text');
    $zip->addFromString('bar', 'Some other text');
    $zip->setCompressionIndex(0, ZipArchive::CM_STORE);
    $zip->setCompressionIndex(1, ZipArchive::CM_DEFLATE);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>


Set the compression method of an entry defined by its name

  • « ZipArchive::setCompressionIndex
  • ZipArchive::setEncryptionIndex »
  • PHP Manual
  • ZipArchive
  • Set the compression method of an entry defined by its name

ZipArchive::setCompressionName

(PHP 7, PHP 8, PECL zip >= 1.13.0)

ZipArchive::setCompressionName — Set the compression method of an entry defined by its name

Beschreibung

public ZipArchive::setCompressionName ( string $name , int $method , int $compflags = 0 ) : bool

Set the compression method of an entry defined by its name.

Parameter-Liste

name

Name of the entry.

method

The compression method, one of the ZipArchive::CM_* constants.

compflags

Compression level.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Add files with different compression methods to an archive

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('foo', 'Some text');
    $zip->addFromString('bar', 'Some other text');
    $zip->setCompressionName('foo', ZipArchive::CM_STORE);
    $zip->setCompressionName('bar', ZipArchive::CM_DEFLATE);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

Beispiel #2 Add file and set compression method

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFile('foo.jpg', 'bar.jpg');
    $zip->setCompressionName('bar.jpg', ZipArchive::CM_XZ);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>


Set the encryption method of an entry defined by its index

  • « ZipArchive::setCompressionName
  • ZipArchive::setEncryptionName »
  • PHP Manual
  • ZipArchive
  • Set the encryption method of an entry defined by its index

ZipArchive::setEncryptionIndex

(PHP >= 7.2.0, PHP 8, PECL zip >= 1.14.0)

ZipArchive::setEncryptionIndex — Set the encryption method of an entry defined by its index

Beschreibung

public ZipArchive::setEncryptionIndex ( int $index , int $method , string|null $password = null ) : bool

Set the encryption method of an entry defined by its index.

Parameter-Liste

index

Index of the entry.

method

The encryption method defined by one of the ZipArchive::EM_ constants.

password

Optional password, default used when missing.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

This function is only available if built against libzip = 1.2.0.

Changelog

Version | Beschreibung
8.0.0 | password is now nullable.

Siehe auch

  • ZipArchive::setPassword() - Set the password for the active archive
  • ZipArchive::setEncryptionName() - Set the encryption method of an entry defined by its name


Set the encryption method of an entry defined by its name

  • « ZipArchive::setEncryptionIndex
  • ZipArchive::setExternalAttributesIndex »
  • PHP Manual
  • ZipArchive
  • Set the encryption method of an entry defined by its name

ZipArchive::setEncryptionName

(PHP >= 7.2.0, PHP 8, PECL zip >= 1.14.0)

ZipArchive::setEncryptionName — Set the encryption method of an entry defined by its name

Beschreibung

public ZipArchive::setEncryptionName ( string $name , int $method , string|null $password = null ) : bool

Set the encryption method of an entry defined by its name.

Parameter-Liste

name

Name of the entry.

method

The encryption method defined by one of the ZipArchive::EM_ constants.

password

Optional password, default used when missing.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | password is now nullable.

Beispiele

This example creates a ZIP file archive test.zip and add the file test.txt encrypted using the AES 256 method.

Beispiel #1 Archive and encrypt a file

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
    $zip->setPassword('secret');
    $zip->addFile('text.txt');
    $zip->setEncryptionName('text.txt', ZipArchive::EM_AES_256);
    $zip->close();
    echo "Ok\n";
} else {
    echo "KO\n";
}
?>

Anmerkungen

Hinweis:

This function is only available if built against libzip = 1.2.0.

Siehe auch

  • ZipArchive::setPassword() - Set the password for the active archive
  • ZipArchive::setEncryptionIndex() - Set the encryption method of an entry defined by its index


Set the external attributes of an entry defined by its index

  • « ZipArchive::setEncryptionName
  • ZipArchive::setExternalAttributesName »
  • PHP Manual
  • ZipArchive
  • Set the external attributes of an entry defined by its index

ZipArchive::setExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesIndex — Set the external attributes of an entry defined by its index

Beschreibung

public ZipArchive::setExternalAttributesIndex ( int $index , int $opsys , int $attr , int $flags = 0 ) : bool

Set the external attributes of an entry defined by its index.

Parameter-Liste

index

Index of the entry.

opsys

The operating system code defined by one of the ZipArchive::OPSYS_ constants.

attr

The external attributes. Value depends on operating system.

flags

Optional flags. Currently unused.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set the external attributes of an entry defined by its name

  • « ZipArchive::setExternalAttributesIndex
  • ZipArchive::setMtimeIndex »
  • PHP Manual
  • ZipArchive
  • Set the external attributes of an entry defined by its name

ZipArchive::setExternalAttributesName

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesName — Set the external attributes of an entry defined by its name

Beschreibung

public ZipArchive::setExternalAttributesName ( string $name , int $opsys , int $attr , int $flags = 0 ) : bool

Set the external attributes of an entry defined by its name.

Parameter-Liste

name

Name of the entry.

opsys

The operating system code defined by one of the ZipArchive::OPSYS_ constants.

attr

The external attributes. Value depends on operating system.

flags

Optional flags. Currently unused.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

This example opens a ZIP file archive test.zip and add the file test.txt with its Unix rights as external attributes.

Beispiel #1 Archive a file, with its Unix rights

<?php
$zip = new ZipArchive();
$stat = stat($filename='test.txt');
if (is_array($stat) && $zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
    $zip->addFile($filename);
    $zip->setExternalAttributesName($filename, ZipArchive::OPSYS_UNIX, $stat['mode'] << 16);
    $zip->close();
    echo "Ok\n";
} else {
    echo "KO\n";
}
?>


Set the modification time of an entry defined by its index

  • « ZipArchive::setExternalAttributesName
  • ZipArchive::setMtimeName »
  • PHP Manual
  • ZipArchive
  • Set the modification time of an entry defined by its index

ZipArchive::setMtimeIndex

(PHP >= 8.0.0, PECL zip >= 1.16.0)

ZipArchive::setMtimeIndex — Set the modification time of an entry defined by its index

Beschreibung

public ZipArchive::setMtimeIndex ( int $index , int $timestamp , int $flags = 0 ) : bool|null

Set the modification time of an entry defined by its index.

Parameter-Liste

index

Index of the entry.

timestamp

The modification time (unix timestamp) of the file.

flags

Optional flags, unused for now.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

This example creates a ZIP file archive test.zip and add the file test.txt with its modification date.

Beispiel #1 Archive a file

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
    $zip->addFile('text.txt');
    $zip->setMtimeIndex(0, mktime(0,0,0,12,25,2019));
    $zip->close();
    echo "Ok\n";
} else {
    echo "KO\n";
}
?>

Anmerkungen

Hinweis:

This function is only available if built against libzip = 1.0.0.

Siehe auch

  • ZipArchive::setMtimeName() - Set the modification time of an entry defined by its name


Set the modification time of an entry defined by its name

  • « ZipArchive::setMtimeIndex
  • ZipArchive::setPassword »
  • PHP Manual
  • ZipArchive
  • Set the modification time of an entry defined by its name

ZipArchive::setMtimeName

(PHP >= 8.0.0, PECL zip >= 1.16.0)

ZipArchive::setMtimeName — Set the modification time of an entry defined by its name

Beschreibung

public ZipArchive::setMtimeName ( string $name , int $timestamp , int $flags = 0 ) : bool|null

Set the modification time of an entry defined by its name.

Parameter-Liste

name

Name of the entry.

timestamp

The modification time (unix timestamp) of the file.

flags

Optional flags, unused for now.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

This example creates a ZIP file archive test.zip and add the file test.txt with its modification date.

Beispiel #1 Archive a file

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
    $zip->addFile('text.txt');
    $zip->setMtimeName('text.txt', mktime(0,0,0,12,25,2019));
    $zip->close();
    echo "Ok\n";
} else {
    echo "KO\n";
}
?>

Anmerkungen

Hinweis:

This function is only available if built against libzip = 1.0.0.

Siehe auch

  • ZipArchive::setMtimeIndex() - Set the modification time of an entry defined by its index


Set the password for the active archive

  • « ZipArchive::setMtimeName
  • ZipArchive::statIndex »
  • PHP Manual
  • ZipArchive
  • Set the password for the active archive

ZipArchive::setPassword

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::setPassword — Set the password for the active archive

Beschreibung

public ZipArchive::setPassword ( string $password ) : bool

Sets the password for the active archive.

Parameter-Liste

password

The password to be used for the archive.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

As of PHP 7.2.0 and libzip 1.2.0 the password is used to decompress the archive, and is also the default password for ZipArchive::setEncryptionName() and ZipArchive::setEncryptionIndex(). Formerly, this function only set the password to be used to decompress the archive; it did not turn a non-password-protected ZipArchive into a password-protected ZipArchive.

Siehe auch

  • ZipArchive::setEncryptionIndex() - Set the encryption method of an entry defined by its index
  • ZipArchive::setEncryptionName() - Set the encryption method of an entry defined by its name


Gibt die Details eines via Index bestimmten Eintrags zurück

  • « ZipArchive::setPassword
  • ZipArchive::statName »
  • PHP Manual
  • ZipArchive
  • Gibt die Details eines via Index bestimmten Eintrags zurück

ZipArchive::statIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::statIndex — Gibt die Details eines via Index bestimmten Eintrags zurück

Beschreibung

public ZipArchive::statIndex ( int $index , int $flags = 0 ) : array|false

Die Funktion erhält Informationen über einen Eintrag, der mittels seines Index bestimmt wird.

Parameter-Liste

index

Index des Eintrags.

flags

ZipArchive::FL_UNCHANGED kann angewendet werden, um ohne Berücksichtigung eventueller Veränderungen Informationen über die originale Datei im Archiv zu erhalten.

Rückgabewerte

Gibt ein Array zurück, das die Eintragsdetails enthält. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Die Statusinformation eines Eintrags ausgeben

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    print_r($zip->statIndex(3));
    $zip->close();
} else {
    echo 'Fehler, Code:' . $res;
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)


Gibt die Details eines via Namen bestimmten Eintrags zurück

  • « ZipArchive::statIndex
  • ZipArchive::unchangeAll »
  • PHP Manual
  • ZipArchive
  • Gibt die Details eines via Namen bestimmten Eintrags zurück

ZipArchive::statName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::statName — Gibt die Details eines via Namen bestimmten Eintrags zurück

Beschreibung

public ZipArchive::statName ( string $name , int $flags = 0 ) : array|false

Die Funktion erhält Informationen über einen Eintrag, der mittels seines Namens bestimmt wird.

Parameter-Liste

name

Name des Eintrags

flags

Das flags-Argument gibt an, wie die Namensauflösung durchgeführt werden soll. Außerdem kann ZipArchive::FL_UNCHANGED angewendet werden, um ohne Berücksichtigung eventueller Veränderungen Informationen über die originale Datei im Archiv zu erhalten.

  • ZipArchive::FL_NOCASE

  • ZipArchive::FL_NODIR

  • ZipArchive::FL_UNCHANGED

Rückgabewerte

Gibt ein Array zurück, das die Eintragsdetails enthält. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Die Statusinformation eines Eintrags ausgeben

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    print_r($zip->statName('foobar/baz'));
    $zip->close();
} else {
    echo 'Fehler, Code:' . $res;
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)


Setzt alle im Archiv durchgeführten Änderungen zurück

  • « ZipArchive::statName
  • ZipArchive::unchangeArchive »
  • PHP Manual
  • ZipArchive
  • Setzt alle im Archiv durchgeführten Änderungen zurück

ZipArchive::unchangeAll

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::unchangeAll — Setzt alle im Archiv durchgeführten Änderungen zurück

Beschreibung

public ZipArchive::unchangeAll ( ) : bool

Setzt alle im Archiv durchgeführten Änderungen zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Nimmt alle globalen Änderungen zurück, die im Archiv durchgeführt wurden

  • « ZipArchive::unchangeAll
  • ZipArchive::unchangeIndex »
  • PHP Manual
  • ZipArchive
  • Nimmt alle globalen Änderungen zurück, die im Archiv durchgeführt wurden

ZipArchive::unchangeArchive

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::unchangeArchive — Nimmt alle globalen Änderungen zurück, die im Archiv durchgeführt wurden

Beschreibung

public ZipArchive::unchangeArchive ( ) : bool

Nimmt alle globalen Änderungen zurück, die im Archiv durchführt wurden. Derzeit bedeutet das, dass nur Änderungen an Archivkommentaren zurückgenommen werden können.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Index gemacht wurden

  • « ZipArchive::unchangeArchive
  • ZipArchive::unchangeName »
  • PHP Manual
  • ZipArchive
  • Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Index gemacht wurden

ZipArchive::unchangeIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::unchangeIndex — Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Index gemacht wurden

Beschreibung

public ZipArchive::unchangeIndex ( int $index ) : bool

Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Index gemacht wurden.

Parameter-Liste

index

Index des Eintrags.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Namen gemacht wurden

  • « ZipArchive::unchangeIndex
  • Zip Funktionen »
  • PHP Manual
  • ZipArchive
  • Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Namen gemacht wurden

ZipArchive::unchangeName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::unchangeName — Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Namen gemacht wurden

Beschreibung

public ZipArchive::unchangeName ( string $name ) : bool

Nimmt alle zu einem Eintrag gehörenden Veränderungen zurück.

Parameter-Liste

name

Name des Eintrags.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Zip Funktionen

Warnung

Die procedurale API sollte ab PHP 8.0.0 nicht mehr verwendet werden. Stattdessen sollte ZipArchive verwendet werden.

Inhaltsverzeichnis

  • zip_close — Schließt ein ZIP-Archiv
  • zip_entry_close — Schließt einen Verzeichniseintrag
  • zip_entry_compressedsize — Ermittelt die komprimierte Größe eines Verzeichniseintrages
  • zip_entry_compressionmethod — Ermittelt die Komprimierungsmethode eines Verzeichniseintrags
  • zip_entry_filesize — Ermittelt die effektive Größe eines Verzeichniseintrages
  • zip_entry_name — Gibt den Namen eines Verzeichniseintrages zurück
  • zip_entry_open — Öffnet einen Verzeichniseintrag für den Lesezugriff
  • zip_entry_read — Liest einen geöffneten Verzeichniseintrag aus
  • zip_open — Öffnet ein ZIP-Archiv
  • zip_read — Liest den nächsten Eintrag innerhalb des ZIP-Archivs


Schließt ein ZIP-Archiv

  • « Zip Funktionen
  • zip_entry_close »
  • PHP Manual
  • Zip Funktionen
  • Schließt ein ZIP-Archiv

zip_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_close — Schließt ein ZIP-Archiv

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

zip_close ( resource $zip ) : void

Schließt das übergebene ZIP-Archiv.

Parameter-Liste

zip

Eine ZIP-Datei, die zuvor mittels zip_open() geöffnet wurde.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::close().

Siehe auch

  • zip_open() - Öffnet ein ZIP-Archiv
  • zip_read() - Liest den nächsten Eintrag innerhalb des ZIP-Archivs


Schließt einen Verzeichniseintrag

  • « zip_close
  • zip_entry_compressedsize »
  • PHP Manual
  • Zip Funktionen
  • Schließt einen Verzeichniseintrag

zip_entry_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_close — Schließt einen Verzeichniseintrag

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

zip_entry_close ( resource $zip_entry ) : bool

Schließt den angegebenen Verzeichniseintrag.

Parameter-Liste

zip_entry

Ein Verzeichniseintrag, der zuvor mit zip_entry_open() geöffnet wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist zugunsten der Objekt-API missbilligt.

Siehe auch

  • zip_entry_open() - Öffnet einen Verzeichniseintrag für den Lesezugriff
  • zip_entry_read() - Liest einen geöffneten Verzeichniseintrag aus


Ermittelt die komprimierte Größe eines Verzeichniseintrages

  • « zip_entry_close
  • zip_entry_compressionmethod »
  • PHP Manual
  • Zip Funktionen
  • Ermittelt die komprimierte Größe eines Verzeichniseintrages

zip_entry_compressedsize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_compressedsize — Ermittelt die komprimierte Größe eines Verzeichniseintrages

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

zip_entry_compressedsize ( resource $zip_entry ) : int|false

Gibt die komprimierte Größe des angegebenen Verzeichniseintrages zurück.

Parameter-Liste

zip_entry

Ein von zip_read() zurückgegebener Verzeichniseintrag.

Rückgabewerte

Die komprimierte Größe. Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::statIndex().

Siehe auch

  • zip_open() - Öffnet ein ZIP-Archiv
  • zip_read() - Liest den nächsten Eintrag innerhalb des ZIP-Archivs


Ermittelt die Komprimierungsmethode eines Verzeichniseintrags

  • « zip_entry_compressedsize
  • zip_entry_filesize »
  • PHP Manual
  • Zip Funktionen
  • Ermittelt die Komprimierungsmethode eines Verzeichniseintrags

zip_entry_compressionmethod

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_compressionmethod — Ermittelt die Komprimierungsmethode eines Verzeichniseintrags

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

zip_entry_compressionmethod ( resource $zip_entry ) : string|false

Gibt die Komprimierungsmethode des von zip_entry angegebenen Verzeichniseintrages zurück.

Parameter-Liste

zip_entry

Ein von zip_read() zurückgegebener Verzeichniseintrag.

Rückgabewerte

Die Komprimierungsmethode. Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::statIndex().

Siehe auch

  • zip_open() - Öffnet ein ZIP-Archiv
  • zip_read() - Liest den nächsten Eintrag innerhalb des ZIP-Archivs


Ermittelt die effektive Größe eines Verzeichniseintrages

  • « zip_entry_compressionmethod
  • zip_entry_name »
  • PHP Manual
  • Zip Funktionen
  • Ermittelt die effektive Größe eines Verzeichniseintrages

zip_entry_filesize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_filesize — Ermittelt die effektive Größe eines Verzeichniseintrages

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

zip_entry_filesize ( resource $zip_entry ) : int|false

Gibt die effektive Größe des angegebenen Verzeichniseintrags zurück.

Parameter-Liste

zip_entry

Ein von zip_read() zurückgegebener Verzeichniseintrag.

Rückgabewerte

Die Größe des Verzeichniseintrags. Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::statIndex().

Siehe auch

  • zip_open() - Öffnet ein ZIP-Archiv
  • zip_read() - Liest den nächsten Eintrag innerhalb des ZIP-Archivs


Gibt den Namen eines Verzeichniseintrages zurück

  • « zip_entry_filesize
  • zip_entry_open »
  • PHP Manual
  • Zip Funktionen
  • Gibt den Namen eines Verzeichniseintrages zurück

zip_entry_name

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_name — Gibt den Namen eines Verzeichniseintrages zurück

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

zip_entry_name ( resource $zip_entry ) : string|false

Gibt den Names eines angegebenen Verzeichniseintrags zurück.

Parameter-Liste

zip_entry

Ein von zip_read() zurückgegebener Verzeichniseintrag.

Rückgabewerte

Der Name des Verzeichniseintrags. Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::statIndex().

Siehe auch

  • zip_open() - Öffnet ein ZIP-Archiv
  • zip_read() - Liest den nächsten Eintrag innerhalb des ZIP-Archivs


Öffnet einen Verzeichniseintrag für den Lesezugriff

  • « zip_entry_name
  • zip_entry_read »
  • PHP Manual
  • Zip Funktionen
  • Öffnet einen Verzeichniseintrag für den Lesezugriff

zip_entry_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_open — Öffnet einen Verzeichniseintrag für den Lesezugriff

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

zip_entry_open ( resource $zip_dp , resource $zip_entry , string $mode = "rb" ) : bool

Öffnet einen Verzeichniseintrag für den Lesezugriff.

Parameter-Liste

zip_dp

Ein valides Ressource-Handle, das von der zip_open() zurückgegeben wurde.

zip_entry

Ein Verzeichniseintrag, der von zip_read() zurückgegeben wurde.

mode

Einer der in der Dokumentation zu fopen() angegebenen Modi.

Hinweis:

Derzeit wird mode ignoriert und statt dessen standardmäßig "rb" verwendet. Dies ist dadurch bedingt, dass der ZIP-Support in PHP nur den Nur-Lesen-Modus unterstützt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Hinweis:

Im Gegensatz zu fopen() und vergleichbaren Funktionen zeigt der Rückgabewert von zip_entry_open() nur das Gelingen an und wird nicht für weitere Operationen benötigt.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist zugunsten der Objekt-API missbilligt.

Siehe auch

  • zip_entry_close() - Schließt einen Verzeichniseintrag
  • zip_entry_read() - Liest einen geöffneten Verzeichniseintrag aus


Liest einen geöffneten Verzeichniseintrag aus

  • « zip_entry_open
  • zip_open »
  • PHP Manual
  • Zip Funktionen
  • Liest einen geöffneten Verzeichniseintrag aus

zip_entry_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_entry_read — Liest einen geöffneten Verzeichniseintrag aus

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

zip_entry_read ( resource $zip_entry , int $len = 1024 ) : string|false

Liest aus einem geöffneten Verzeichniseintrag.

Parameter-Liste

zip_entry

Ein von zip_read() zurückgegebener Verzeichniseintrag.

len

Die Anzahl der zurückzugebenden Bytes.

Hinweis:

Dies sollte die Länge der der unkomprimierten Daten sein, die Sie auslesen möchten.

Rückgabewerte

Gibt die gelesenen Daten zurück oder einen leeren String, wenn das Ende der Datei erreicht ist oder false, bei einem Fehler.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::open().

Siehe auch

  • zip_entry_open() - Öffnet einen Verzeichniseintrag für den Lesezugriff
  • zip_entry_close() - Schließt einen Verzeichniseintrag
  • zip_entry_filesize() - Ermittelt die effektive Größe eines Verzeichniseintrages


Öffnet ein ZIP-Archiv

  • « zip_entry_read
  • zip_read »
  • PHP Manual
  • Zip Funktionen
  • Öffnet ein ZIP-Archiv

zip_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_open — Öffnet ein ZIP-Archiv

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

zip_open ( string $filename ) : resource|int|false

Öffnet ein ZIP-Archiv für den Lesezugriff.

Parameter-Liste

filename

Der Name der zu öffnenden ZIP-Datei.

Rückgabewerte

Gibt einen Dateizeiger für die spätere Verwendung mit zip_read() und zip_close() zurück. Ist filename nicht vorhanden oder tritt ein anderer Fehler auf, wird entweder false oder die Fehlernummer zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::open().

Siehe auch

  • zip_read() - Liest den nächsten Eintrag innerhalb des ZIP-Archivs
  • zip_close() - Schließt ein ZIP-Archiv


Liest den nächsten Eintrag innerhalb des ZIP-Archivs

  • « zip_open
  • Zlib »
  • PHP Manual
  • Zip Funktionen
  • Liest den nächsten Eintrag innerhalb des ZIP-Archivs

zip_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.0.0)

zip_read — Liest den nächsten Eintrag innerhalb des ZIP-Archivs

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

zip_read ( resource $zip ) : resource|false

Liest den nächsten Eintrag innerhalb des ZIP-Archivs.

Parameter-Liste

zip

Eine ZIP-Datei, die zuvor mittels zip_open() geöffnet wurde.

Rückgabewerte

Gibt im Erfolgsfall einen Verzeichniseintrag zur späteren Benutzung mit den zip_entry_...-Funktionen zurück. Wenn keine weiteren Einträge vorhanden sind, wird false zurückgegeben. Tritt ein Fehler auf, ist der Rückgabewert die entsprechende Fehlernummer.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::statIndex().

Siehe auch

  • zip_open() - Öffnet ein ZIP-Archiv
  • zip_close() - Schließt ein ZIP-Archiv
  • zip_entry_open() - Öffnet einen Verzeichniseintrag für den Lesezugriff
  • zip_entry_read() - Liest einen geöffneten Verzeichniseintrag aus


Zlib-Komprimierung

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Zlib-Funktionen
    • deflate_add — Incrementally deflate data
    • deflate_init — Initialize an incremental deflate context
    • gzclose — Schließt einen geöffnete gz-Dateizeiger
    • gzcompress — Komprimiert einen String
    • gzdecode — Dekodiert eine gzip-komprimierte Zeichenkette
    • gzdeflate — Komprimiert eine Zeichenkette
    • gzencode — Create a gzip compressed string
    • gzeof — Prüft bei einem gz-Dateizeiger auf EOF
    • gzfile — Liest eine ganze gz-Datei in ein Array
    • gzgetc — Holt Zeichen vom gz-Dateizeiger
    • gzgets — Get line from file pointer
    • gzgetss — Holt eine Zeile vom gz-Dateizeiger und entfernt die HTML-Tags
    • gzinflate — Dekomprimiert eine komprimierte Zeichenkette
    • gzopen — Öffnet eine gz-Datei
    • gzpassthru — Gibt alle verbleibenden Daten eines gz-Dateizeigers aus
    • gzputs — Alias von gzwrite
    • gzread — Liest binary-safe aus einer gz-Datei
    • gzrewind — Setzt den gz-Dateizeiger auf den Anfang zurück
    • gzseek — Positioniert den gz-Dateizeiger
    • gztell — Ermittelt die aktuelle Position eines gz-Dateizeigers
    • gzuncompress — Dekomprimiert einen komprimierten String
    • gzwrite — Ausgabe in gz-komprimierte Dateien
    • inflate_add — Incrementally inflate encoded data
    • inflate_get_read_len — Get number of bytes read so far
    • inflate_get_status — Get decompression status
    • inflate_init — Initialize an incremental inflate context
    • readgzfile — Gibt eine gz-komprimierte Datei aus
    • zlib_decode — Dekomprimiert raw-/gzip-/zlib-kodierte Daten
    • zlib_encode — Komprimiert Daten mit der gewählten Kodierung
    • zlib_get_coding_type — Gibt die für Ausgabekomprimierung genutzte Methode zurück
  • DeflateContext — The DeflateContext class
  • InflateContext — The InflateContext class


Einführung

Dieses Modul gibt Ihnen die Möglichkeit, transparent gzip-komprimierte Dateien (*.gz) zu lesen und zu schreiben. Hierfür bietet die Erweiterung die Versionen der meisten Dateisystem-Funktionen, die mit gzip-komprimierten (und unkomprimierten) Dateien, jedoch nicht mit Sockets funktionieren.

Hinweis:

Mit Version 4.0.4 wurde ein fopen-wrapper für .gz-Dateien eingeführt, so dass Sie den speziellen zlib:-URL verwenden können, um auf komprimierte Dateien transparent über die f*()-Dateifunktionen zuzugreifen. Beim Aufruf von fopen() müssen Sie dazu lediglich vor dem Dateinamen das Präfix zlib: schreiben. Diese Möglichkeit erfordert eine C-Laufzeitbibliothek, die die fopencookie()-Funktion bereitstellt. Nach aktuellem Stand scheint die GNU libc die einzige Bibliothek zu sein, die dieses Feature bereitstellt.

In PHP 4.3.0 wurde zlib: in compress.zlib:// geändert, um Konflikte mit Dateinamen zu vermeiden, die ':' Zeichen enthalten. Die fopencookie() Funktion wird nicht mehr benötigt. Mehr Information hierzu finden Sie im Abschnitt über zlib://.


Anforderungen

Diese Erweiterung nutzt die Funktionen der » zlib-Bibliothek von Jean-loup Gailly und Mark Adler. Sie benötigen zlib >= 1.0.9, um die Funktionen nutzen zu können. Von PHP 5.4.0 an muss zlib >= 1.2.0.4 verwendet werden.


Installation

Die Unterstützung für zlib ist in PHP nicht standardmäßig aktiviert. Es ist erforderlich, die Option --with-zlib[=DIR] beim Kompilieren von PHP anzugeben.

Die Windowsversion von PHP enthält diese Erweiterung. Um diese Funktionen zu verwenden, müssen Sie keine zusätzlichen Erweiterungen aktivieren.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Die zlib-Erweiterung gibt Ihnen die Möglichkeit, Ihre Seiten on-the-fly transparent zu komprimieren, wenn der Browser dies unterstützt. Dafür gibt es drei Optionen in der Konfigurationsdatei php.ini.

Zlib-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
zlib.output_compression | "0" | PHP_INI_ALL |
zlib.output_compression_level | "-1" | PHP_INI_ALL |
zlib.output_handler | "" | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

zlib.output_compression bool/int

Wenn diese Option in der php.ini oder der Apachekonfiguration auf "On" gesetzt ist, werden die Seiten komprimiert, wenn der Browser einen "Accept-Encoding: gzip"- oder einen "deflate"-Header sendet. Zu den normalerweise vom Server gesendeten Headern werden nun "Content-Encoding: gzip" (respektive "deflate") und "Vary: Accept-Encoding" hinzugefügt. Zur Laufzeit kann die Option nur gesetzt werden, bevor irgendeine Ausgabe gesendet wurde.

Diese Option akzeptiert auch Integerwerte anstelle des boolschen On/Off. Wenn Sie diese verwenden, können Sie die Ausgabepuffergröße festlegen (der Standardwert ist 4KB).

Hinweis:

output_handler muss leer sein, wenn diese Option den Wert "On" hat! Verwenden Sie statt dessen zlib.output_handler.

zlib.output_compression_level int

Der Kompressionsgrad für die transparente Ausgabekomprimierung. Geben Sie einen Wert zwischen 0 (keine Kompression) und 9 (stärkste Kompressionsrate) an. Der Vorgabewert -1 lässt den Server darüber entscheiden, welcher Kompressionsgrad zu verwenden ist.

zlib.output_handler string

Sie können keine zusätzlichen Outputhandler angeben, wenn Sie zlib.output_compression aktiviert haben. Diese Einstellung tut das Gleiche wie output_handler, allerdings in einer anderen Reihenfolge.


Ressource-Typen

Die Extension definiert eine Filepointer-Ressource, die von gzopen() zurückgegeben wird. Vor PHP 8.0.0 wurden auch die Ressourcen zlib.deflate und zlib.inflate definiert.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

FORCE_GZIP (int)
FORCE_DEFLATE (int)
ZLIB_ENCODING_RAW (int)
DEFLATE-Algorithmus gemäß RFC 1951. Verfügbar ab PHP 7.0.0.
ZLIB_ENCODING_DEFLATE (int)
ZLIB-Komprimierungsalgorithmus gemäß RFC 1950. Verfügbar ab PHP 7.0.0.
ZLIB_ENCODING_GZIP (int)
GZIP-Algorithmus gemäß RFC 1952. Verfügbar ab PHP 7.0.0.
ZLIB_FILTERED (int)
Verfügbar ab PHP 7.0.0.
ZLIB_HUFFMAN_ONLY (int)
Verfügbar ab PHP 7.0.0.
ZLIB_FIXED (int)
Verfügbar ab PHP 7.0.0.
ZLIB_RLE (int)
Verfügbar ab PHP 7.0.0.
ZLIB_DEFAULT_STRATEGY (int)
Verfügbar ab PHP 7.0.0.
ZLIB_BLOCK (int)
Verfügbar ab PHP 7.0.0.
ZLIB_NO_FLUSH (int)
Verfügbar ab PHP 7.0.0.
ZLIB_PARTIAL_FLUSH (int)
Verfügbar ab PHP 7.0.0.
ZLIB_SYNC_FLUSH (int)
Verfügbar ab PHP 7.0.0.
ZLIB_FULL_FLUSH (int)
Verfügbar ab PHP 7.0.0.
ZLIB_FINISH (int)
Verfügbar ab PHP 7.0.0.


Beispiele

Dieses Beispiel öffnet eine temporäre Datei und schreibt einen Teststring in die Datei, dann wird der Inhalt dieser Datei zweimal ausgegeben.

Beispiel #1 Ein kleines Beispiel zu Zlib

<?php

$filename = tempnam('/tmp', 'zlibtest') . '.gz';
echo "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Nur ein test, test, test, test, test, test, test, test!\n";

// Temporäre Datei zum Schreiben mit der maximalen Kompressionsstufe öffnen
$zp = gzopen($filename, "w9");

// String in die Datei schreiben
gzwrite($zp, $s);

// Datei schließen
gzclose($zp);

// Datei zum Lesen öffnen
$zp = gzopen($filename, "r");

// 3 Zeichen einlesen und ausgeben
echo gzread($zp, 3);

// Inhalt der Datei ausgeben und die Datei schließen
gzpassthru($zp);
gzclose($zp);

echo "\n";

// Öffne die Datei und gib den Inhalt zum zweiten Mal aus
if (readgzfile($filename) != strlen($s)) {
        echo "Error with zlib functions!";
}
unlink($filename);
echo "</pre>\n</body>\n</html>\n";

?>

Beispiel #2 Arbeiten mit den inkrementellen Kompriemierungs- und Dekomprimierungs-API ab PHP 7.0.0

<?php
// führe GZIP-Komprimierung durch:
$deflateContext = deflate_init(ZLIB_ENCODING_GZIP);
$compressed = deflate_add($deflateContext, "Zu komprimierende Daten", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", weitere Daten", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", und noch mehr Daten!", ZLIB_FINISH);

// führe GZIP-Dekomprimierung durch:
$inflateContext = inflate_init(ZLIB_ENCODING_GZIP);
$uncompressed = inflate_add($inflateContext, $compressed, ZLIB_NO_FLUSH);
$uncompressed .= inflate_add($inflateContext, NULL, ZLIB_FINISH);
echo $uncompressed;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Zu komprimierende Daten, weitere Daten, und noch mehr Daten!


Zlib-Funktionen

Inhaltsverzeichnis

  • deflate_add — Incrementally deflate data
  • deflate_init — Initialize an incremental deflate context
  • gzclose — Schließt einen geöffnete gz-Dateizeiger
  • gzcompress — Komprimiert einen String
  • gzdecode — Dekodiert eine gzip-komprimierte Zeichenkette
  • gzdeflate — Komprimiert eine Zeichenkette
  • gzencode — Create a gzip compressed string
  • gzeof — Prüft bei einem gz-Dateizeiger auf EOF
  • gzfile — Liest eine ganze gz-Datei in ein Array
  • gzgetc — Holt Zeichen vom gz-Dateizeiger
  • gzgets — Get line from file pointer
  • gzgetss — Holt eine Zeile vom gz-Dateizeiger und entfernt die HTML-Tags
  • gzinflate — Dekomprimiert eine komprimierte Zeichenkette
  • gzopen — Öffnet eine gz-Datei
  • gzpassthru — Gibt alle verbleibenden Daten eines gz-Dateizeigers aus
  • gzputs — Alias von gzwrite
  • gzread — Liest binary-safe aus einer gz-Datei
  • gzrewind — Setzt den gz-Dateizeiger auf den Anfang zurück
  • gzseek — Positioniert den gz-Dateizeiger
  • gztell — Ermittelt die aktuelle Position eines gz-Dateizeigers
  • gzuncompress — Dekomprimiert einen komprimierten String
  • gzwrite — Ausgabe in gz-komprimierte Dateien
  • inflate_add — Incrementally inflate encoded data
  • inflate_get_read_len — Get number of bytes read so far
  • inflate_get_status — Get decompression status
  • inflate_init — Initialize an incremental inflate context
  • readgzfile — Gibt eine gz-komprimierte Datei aus
  • zlib_decode — Dekomprimiert raw-/gzip-/zlib-kodierte Daten
  • zlib_encode — Komprimiert Daten mit der gewählten Kodierung
  • zlib_get_coding_type — Gibt die für Ausgabekomprimierung genutzte Methode zurück


Incrementally deflate data

  • « Zlib-Funktionen
  • deflate_init »
  • PHP Manual
  • Zlib-Funktionen
  • Incrementally deflate data

deflate_add

(PHP 7, PHP 8)

deflate_add — Incrementally deflate data

Beschreibung

deflate_add ( DeflateContext $context , string $data , int $flush_mode = ZLIB_SYNC_FLUSH ) : string|false

Incrementally deflates data in the specified context.

Parameter-Liste

context

A context created with deflate_init().

data

A chunk of data to compress.

flush_mode

One of ZLIB_BLOCK, ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH (default), ZLIB_FULL_FLUSH, ZLIB_FINISH. Normally you will want to set ZLIB_NO_FLUSH to maximize compression, and ZLIB_FINISH to terminate with the last chunk of data. See the » zlib manual for a detailed description of these constants.

Rückgabewerte

Returns a chunk of compressed data, Im Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

If invalid arguments are given, an error of level E_WARNING is generated.

Changelog

Version | Beschreibung
8.0.0 | context expects a DeflateContext instance now; previously, a resource was expected.

Siehe auch

  • deflate_init() - Initialize an incremental deflate context


Initialize an incremental deflate context

  • « deflate_add
  • gzclose »
  • PHP Manual
  • Zlib-Funktionen
  • Initialize an incremental deflate context

deflate_init

(PHP 7, PHP 8)

deflate_init — Initialize an incremental deflate context

Beschreibung

deflate_init ( int $encoding , array $options = [] ) : DeflateContext|false

Initializes an incremental deflate context using the specified encoding.

Note that the window option here only sets the window size of the algorithm, differently from the zlib filters where the same parameter also sets the encoding to use; the encoding must be set with the encoding parameter.

Limitation: there is currently no way to set the header information on a GZIP compressed stream, which are set as follows: GZIP signature (\x1f\x8B); compression method (\x08 == DEFLATE); 6 zero bytes; the operating system set to the current system (\x00 = Windows, \x03 = Unix, etc.)

Parameter-Liste

encoding

One of the ZLIB_ENCODING_* constants.

options

An associative array which may contain the following elements:

level

The compression level in range -1..9; defaults to -1.

memory

The compression memory level in range 1..9; defaults to 8.

window

The zlib window size (logarithmic) in range 8..15; defaults to 15. zlib changes a window size of 8 to 9, and as of zlib 1.2.8 fails with a warning, if a window size of 8 is requested for ZLIB_ENCODING_RAW or ZLIB_ENCODING_GZIP.

strategy

One of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY (the default).

dictionary

A string or an array of strings of the preset dictionary (default: no preset dictionary).

Rückgabewerte

Returns a deflate context resource (zlib.deflate) on success, Im Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

If an invalid option is passed to options or the context couldn't be created, an error of level E_WARNING is generated.

Changelog

Version | Beschreibung
8.0.0 | On success, this function returns a DeflateContext instance now; previously, a resource was returned.

Siehe auch

  • deflate_add() - Incrementally deflate data
  • inflate_init() - Initialize an incremental inflate context


Schließt einen geöffnete gz-Dateizeiger

  • « deflate_init
  • gzcompress »
  • PHP Manual
  • Zlib-Funktionen
  • Schließt einen geöffnete gz-Dateizeiger

gzclose

(PHP 4, PHP 5, PHP 7, PHP 8)

gzclose — Schließt einen geöffnete gz-Dateizeiger

Beschreibung

gzclose ( resource $stream ) : bool

Schließt den angegeben gz-Dateizeiger.

Parameter-Liste

stream

Der gz-Dateizeiger. Dieser muss auf eine gültige, erfolgreich mit gzopen() geöffnete Datei zeigen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 gzclose()-Beispiel

<?php
$gz = gzopen('somefile.gz','w9');
gzputs ($gz, 'Ich wurde zu somefile.gz hinzugefügt');
gzclose($gz);
?>

Siehe auch

  • gzopen() - Öffnet eine gz-Datei


Komprimiert einen String

  • « gzclose
  • gzdecode »
  • PHP Manual
  • Zlib-Funktionen
  • Komprimiert einen String

gzcompress

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

gzcompress — Komprimiert einen String

Beschreibung

gzcompress ( string $data , int $level = -1 , int $encoding = ZLIB_ENCODING_DEFLATE ) : string|false

Diese Funktion komprimiert den gegebenen String mittels des ZLIB-Datenformats.

Details zum ZLIB-Kompressionsalgorithmus finden Sie im Dokument "» ZLIB Compressed Data Format Specification version 3.3" (RFC 1950).

Hinweis:

Dies entspricht nicht der gzip-Kompression, welche zusätzliche Kopfdaten enthält. Für gzip-Kompression nutzen Sie bitte gzencode().

Parameter-Liste

data

Die zu komprimierenden Daten.

level

Der Kompressionsgrad. Dieser reicht von 0 für keine Kompression bis 9 für maximale Kompression.

Wird -1 angegeben, wird die Standardkompression der zlib-Bibliothek verwendet, die 6 ist.

encoding

Eine der ZLIB_ENCODING_* Konstanten.

Rückgabewerte

Der komprimierte String oder false, falls ein Fehler aufgetreten ist.

Beispiele

Beispiel #1 gzcompress()-Beispiel

<?php
$compressed = gzcompress('Komprimiere mich', 9);
echo $compressed;
?>

Siehe auch

  • gzdeflate() - Komprimiert eine Zeichenkette
  • gzinflate() - Dekomprimiert eine komprimierte Zeichenkette
  • gzuncompress() - Dekomprimiert einen komprimierten String
  • gzencode() - Create a gzip compressed string


Dekodiert eine gzip-komprimierte Zeichenkette

  • « gzcompress
  • gzdeflate »
  • PHP Manual
  • Zlib-Funktionen
  • Dekodiert eine gzip-komprimierte Zeichenkette

gzdecode

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

gzdecode — Dekodiert eine gzip-komprimierte Zeichenkette

Beschreibung

gzdecode ( string $data , int $max_length = 0 ) : string|false

Diese Funktion gibt die dekodierte Version von data zurück.

Parameter-Liste

data

Die zu dekodierenden Daten, die mittels gzencode() kodiert wurden.

max_length

Die maximale Länge der zu dekodierenden Daten.

Rückgabewerte

Die dekodierte Zeichenkette, oder false, wenn ein Fehler auftrat.

Siehe auch

  • gzencode() - Create a gzip compressed string


Komprimiert eine Zeichenkette

  • « gzdecode
  • gzencode »
  • PHP Manual
  • Zlib-Funktionen
  • Komprimiert eine Zeichenkette

gzdeflate

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gzdeflate — Komprimiert eine Zeichenkette

Beschreibung

gzdeflate ( string $data , int $level = -1 , int $encoding = ZLIB_ENCODING_RAW ) : string|false

Diese Funktion komprimiert die übergebene Zeichenkette mit dem DEFLATE-Datenformat.

Zu Einzelheiten bezüglich des DEFLATE-Kompressions-Algorithmus siehe das Dokument "» DEFLATE Compressed Data Format Specification version 1.3" (RFC 1951).

Parameter-Liste

data

Die zu komprimierenden (deflate == entleeren) Daten.

level

Der Komprimierungsfaktor. Kann von 0 für keine Kompression bis 9 für maximale Kompression übergeben werden. Wird er nicht übergeben, ist der Standard-Komprimierungsfaktor der Standard-Komprimierungsfaktor der zlib-Bibliothek.

encoding

Eine der ZLIB_ENCODING_*-Konstanten.

Rückgabewerte

Die komprimierte (entleerte) Zeichenkette, oder false, wenn ein Fehler auftrat.

Beispiele

Beispiel #1 gzdeflate()-Beispiel

<?php
$compressed = gzdeflate('Compress me', 9);
echo $compressed;
?>

Siehe auch

  • gzinflate() - Dekomprimiert eine komprimierte Zeichenkette
  • gzcompress() - Komprimiert einen String
  • gzuncompress() - Dekomprimiert einen komprimierten String
  • gzencode() - Create a gzip compressed string


Create a gzip compressed string

  • « gzdeflate
  • gzeof »
  • PHP Manual
  • Zlib-Funktionen
  • Create a gzip compressed string

gzencode

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gzencode — Create a gzip compressed string

Beschreibung

gzencode ( string $data , int $level = -1 , int $encoding = ZLIB_ENCODING_GZIP ) : string|false

This function returns a compressed version of the input data compatible with the output of the gzip program.

For more information on the GZIP file format, see the document: » GZIP file format specification version 4.3 (RFC 1952).

Parameter-Liste

data

The data to encode.

level

The level of compression. Can be given as 0 for no compression up to 9 for maximum compression. If not given, the default compression level will be the default compression level of the zlib library.

encoding

The encoding mode. Can be FORCE_GZIP (the default) or FORCE_DEFLATE.

Prior to PHP 5.4.0, using FORCE_DEFLATE results in a standard zlib deflated string (inclusive zlib headers) after a gzip file header but without the trailing crc32 checksum.

In PHP 5.4.0 and later, FORCE_DEFLATE generates RFC 1950 compliant output, consisting of a zlib header, the deflated data, and an Adler checksum.

Rückgabewerte

The encoded string, or false if an error occurred.

Beispiele

The resulting data contains the appropriate headers and data structure to make a standard .gz file, e.g.:

Beispiel #1 Creating a gzip file

<?php
$data = implode("", file("bigfile.txt"));
$gzdata = gzencode($data, 9);
$fp = fopen("bigfile.txt.gz", "w");
fwrite($fp, $gzdata);
fclose($fp);
?>

Siehe auch

  • gzdecode() - Dekodiert eine gzip-komprimierte Zeichenkette
  • gzdeflate() - Komprimiert eine Zeichenkette
  • gzinflate() - Dekomprimiert eine komprimierte Zeichenkette
  • gzuncompress() - Dekomprimiert einen komprimierten String
  • gzcompress() - Komprimiert einen String
  • » ZLIB Compressed Data Format Specification (RFC 1950)


Prüft bei einem gz-Dateizeiger auf EOF

  • « gzencode
  • gzfile »
  • PHP Manual
  • Zlib-Funktionen
  • Prüft bei einem gz-Dateizeiger auf EOF

gzeof

(PHP 4, PHP 5, PHP 7, PHP 8)

gzeof — Prüft bei einem gz-Dateizeiger auf EOF

Beschreibung

gzeof ( resource $stream ) : bool

Prüft den übergebenen gz-Dateizeiger auf EOF.

Parameter-Liste

stream

Der gz-Dateizeiger. Er muss gültig sein und muss auf eine Datei zeigen, die erfolgreich mit gzopen() geöffnet wurde.

Rückgabewerte

Gibt true zurück wenn der gz-Dateizeiger bei EOF (Dateiende) ist oder ein Fehler auftritt; gibt ansonsten false zurück.

Beispiele

Beispiel #1 gzeof()-Beispiel

<?php
$gz = gzopen('somefile.gz', 'r');
while (!gzeof($gz)) {
  echo gzgetc($gz);
}
gzclose($gz);
?>


Liest eine ganze gz-Datei in ein Array

  • « gzeof
  • gzgetc »
  • PHP Manual
  • Zlib-Funktionen
  • Liest eine ganze gz-Datei in ein Array

gzfile

(PHP 4, PHP 5, PHP 7, PHP 8)

gzfile — Liest eine ganze gz-Datei in ein Array

Beschreibung

gzfile ( string $filename , int $use_include_path = 0 ) : array|false

Diese Funktion entspricht weitgehend readgzfile(), gibt die Datei aber in einem Array zurück.

Parameter-Liste

filename

Der Dateiname.

use_include_path

Sie können diesen optionalen Parameter auf 1 setzen, wenn Sie die Datei auch im include_path suchen lassen wollen.

Rückgabewerte

Ein Array, das die Zeilen der Datei als Elemente enthält. Leere Zeilen sind enthalten, und Zeilenumbrüche sind noch angefügt. Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 gzfile()-Beispiel

<?php
$lines = gzfile('somefile.gz');
foreach ($lines as $line) {
    echo $line;
}
?>

Siehe auch

  • readgzfile() - Gibt eine gz-komprimierte Datei aus
  • gzopen() - Öffnet eine gz-Datei


Holt Zeichen vom gz-Dateizeiger

  • « gzfile
  • gzgets »
  • PHP Manual
  • Zlib-Funktionen
  • Holt Zeichen vom gz-Dateizeiger

gzgetc

(PHP 4, PHP 5, PHP 7, PHP 8)

gzgetc — Holt Zeichen vom gz-Dateizeiger

Beschreibung

gzgetc ( resource $stream ) : string|false

Gibt eine Zeichenkette zurück, die ein einzelnes von dem übergebenen gz-Dateizeiger gelesenes (unkomprimiertes) Zeichen enthält.

Parameter-Liste

stream

Der gz-Dateizeiger. Er muss gültig sein und auf eine mit gzopen() erfolgreiche geöffnete Datei zeigen.

Rückgabewerte

Das unkomprimierte Zeichen oder false bei EOF (ungleich gzeof()).

Beispiele

Beispiel #1 gzgetc()-Beispiel

<?php
$gz = gzopen('somefile.gz', 'r');
while (!gzeof($gz)) {
  echo gzgetc($gz);
}
gzclose($gz);
?>

Siehe auch

  • gzopen() - Öffnet eine gz-Datei
  • gzgets() - Get line from file pointer


Get line from file pointer

  • « gzgetc
  • gzgetss »
  • PHP Manual
  • Zlib-Funktionen
  • Get line from file pointer

gzgets

(PHP 4, PHP 5, PHP 7, PHP 8)

gzgets — Get line from file pointer

Beschreibung

gzgets ( resource $stream , int|null $length = null ) : string|false

Gets a (uncompressed) string of up to length - 1 bytes read from the given file pointer. Reading ends when length - 1 bytes have been read, on a newline, or on EOF (whichever comes first).

Parameter-Liste

stream

The gz-file pointer. It must be valid, and must point to a file successfully opened by gzopen().

length

The length of data to get.

Rückgabewerte

The uncompressed string, or false on error.

Changelog

Version | Beschreibung
8.0.0 | length is nullable now; previously, the default was 1024.

Beispiele

Beispiel #1 gzgets() example

<?php
$handle = gzopen('somefile.gz', 'r');
while (!gzeof($handle)) {
   $buffer = gzgets($handle, 4096);
   echo $buffer;
}
gzclose($handle);
?>

Siehe auch

  • gzopen() - Öffnet eine gz-Datei
  • gzgetc() - Holt Zeichen vom gz-Dateizeiger
  • gzwrite() - Ausgabe in gz-komprimierte Dateien


Holt eine Zeile vom gz-Dateizeiger und entfernt die HTML-Tags

  • « gzgets
  • gzinflate »
  • PHP Manual
  • Zlib-Funktionen
  • Holt eine Zeile vom gz-Dateizeiger und entfernt die HTML-Tags

gzgetss

(PHP 4, PHP 5, PHP 7)

gzgetss — Holt eine Zeile vom gz-Dateizeiger und entfernt die HTML-Tags

Warnung

Diese Funktion ist seit PHP 7.3.0 VERALTET und seit PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

gzgetss ( resource $zp , int $length , string $allowable_tags = ? ) : string

Identisch zu gzgets(), außer dass gzgetss() versucht, HTML- und PHP-Tags aus dem gelesenen Text zu entfernen.

Parameter-Liste

zp

Der gz-Dateizeiger. Er muss gültig sein und auf eine mit gzopen() erfolgreiche geöffnete Datei zeigen.

length

Die Länge der zu erhaltenden Daten.

allowable_tags

Dieser optionale Parameter kann genutzt werden, um Tags anzugeben, die nicht entfernt werden sollen.

Rückgabewerte

Die unkomprimierte und bereinigte Zeichenkette oder false bei Fehlern.

Beispiele

Beispiel #1 gzgetss()-Beispiel

<?php
$handle = gzopen('somefile.gz', 'r');
while (!gzeof($handle)) {
   $buffer = gzgetss($handle, 4096);
   echo $buffer;
}
gzclose($handle);
?>

Siehe auch

  • gzopen() - Öffnet eine gz-Datei
  • gzgets() - Get line from file pointer
  • strip_tags() - Entfernt HTML- und PHP-Tags aus einem String


Dekomprimiert eine komprimierte Zeichenkette

  • « gzgetss
  • gzopen »
  • PHP Manual
  • Zlib-Funktionen
  • Dekomprimiert eine komprimierte Zeichenkette

gzinflate

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gzinflate — Dekomprimiert eine komprimierte Zeichenkette

Beschreibung

gzinflate ( string $data , int $max_length = 0 ) : string|false

Diese Funktion dekomprimiert eine Zeichenkette, die mit dem DEFLATE-Kompressions-Algorithmus komprimiert wurde.

Parameter-Liste

data

Die Daten, die mitgzdeflate() komprimiert wurden.

max_length

Die maximale Länge der zu dekodierenden Daten.

Rückgabewerte

Die originalen unkomprimierten Daten oder false bei Fehlern.

Diese Funktion wird einen Fehler zurückgeben, wenn die Länge der unkomprimierten Daten mehr als das 32768-fache der Länge der komprimierten Eingabe data oder größer als der optionale Parametermax_length ist.

Beispiele

Beispiel #1 gzinflate()-Beispiel

<?php
$compressed   = gzdeflate('Compress me', 9);
$uncompressed = gzinflate($compressed);
echo $uncompressed;
?>

Siehe auch

  • gzdeflate() - Komprimiert eine Zeichenkette
  • gzcompress() - Komprimiert einen String
  • gzuncompress() - Dekomprimiert einen komprimierten String
  • gzencode() - Create a gzip compressed string


Öffnet eine gz-Datei

  • « gzinflate
  • gzpassthru »
  • PHP Manual
  • Zlib-Funktionen
  • Öffnet eine gz-Datei

gzopen

(PHP 4, PHP 5, PHP 7, PHP 8)

gzopen — Öffnet eine gz-Datei

Beschreibung

gzopen ( string $filename , string $mode , int $use_include_path = 0 ) : resource|false

Öffnet eine gzip- (.gz) Datei zum Lesen oder Schreiben.

gzopen() kann auch Dateien lesen, die nicht im gzip-Format vorliegen. In diesem Fall liest gzread() direkt aus der Datei ohne zu entpacken.

Parameter-Liste

filename

Der Dateiname.

mode

Wie in fopen() (rb oder wb), allerdings kann auch der Kompressionsgrad (wb9) oder die Strategie angegeben werden: f für gefilterte Daten (wb6f) oder h für Huffman-Kompression (wb1h). (Weitere Informationen über den Strategieparameter finden Sie in der Beschreibung zu deflateInit2 in zlib.h.)

use_include_path

Sie können diesen optionalen Parameter auf 1 setzen, um die Datei auch im include_path suchen zu lassen.

Rückgabewerte

Gibt einen Dateizeiger auf die geöffnete Datei zurück. Alles, was Sie von nun an hieraus lesen, wird transparent entpackt und alles, was Sie schreiben, wird komprimiert.

Schlägt das Öffnen fehl, so gibt die Funktion false zurück.

Beispiele

Beispiel #1 gzopen()-Beispiel

<?php
$fp = gzopen("/tmp/file.gz", "r");
?>

Siehe auch

  • gzclose() - Schließt einen geöffnete gz-Dateizeiger


Gibt alle verbleibenden Daten eines gz-Dateizeigers aus

  • « gzopen
  • gzputs »
  • PHP Manual
  • Zlib-Funktionen
  • Gibt alle verbleibenden Daten eines gz-Dateizeigers aus

gzpassthru

(PHP 4, PHP 5, PHP 7, PHP 8)

gzpassthru — Gibt alle verbleibenden Daten eines gz-Dateizeigers aus

Beschreibung

gzpassthru ( resource $stream ) : int

Liest bis EOF von der aktuellen Position auf dem übergebenen gz-Dateizeiger und schreibt die (unkomprimierten) Ergebnisse auf die Standardausgabe.

Hinweis:

Eventuell müssen sie gzrewind() aufrufen, um den Dateizeiger auf den Anfang der Datei zurückzusetzen, falls sie schon Daten dorthin geschrieben haben.

Tipp

Wenn sie einfach den Inhalt einer Datei in den Ausgabepuffer ausgeben wollen, ohne sie zuerst zu verändern oder zu einem bestimmten Offset zu springen (seek), können sie readgzfile() nutzen, was den gzopen()-Aufruf spart.

Parameter-Liste

stream

Der gz-Dateizeiger. Er muss gültig sein und auf eine mit gzopen() erfolgreiche geöffnete Datei zeigen.

Rückgabewerte

Die Anzahl umkomprimierter Zeichen, gelesen von gz und durchgereicht zu der Eingabe oder false bei Fehlern.

Beispiele

Beispiel #1 gzpassthru()-Beispiel

<?php
$fp = gzopen('file.gz', 'r');
gzpassthru($fp);
gzclose($fp);
?>


Alias von gzwrite

  • « gzpassthru
  • gzread »
  • PHP Manual
  • Zlib-Funktionen
  • Alias von gzwrite

gzputs

(PHP 4, PHP 5, PHP 7, PHP 8)

gzputs — Alias von gzwrite()

Beschreibung

Diese Funktion ist ein Alias für: gzwrite().


Liest binary-safe aus einer gz-Datei

  • « gzputs
  • gzrewind »
  • PHP Manual
  • Zlib-Funktionen
  • Liest binary-safe aus einer gz-Datei

gzread

(PHP 4, PHP 5, PHP 7, PHP 8)

gzread — Liest binary-safe aus einer gz-Datei

Beschreibung

gzread ( resource $stream , int $length ) : string|false

gzread() liest bis zu length Bytes vom angegebenen gz-Dateizeiger. Das Lesen stoppt, wenn length (unkomprimierte) Bytes gelesen wurden oder EOF (Dateiende) erreicht wurde, je nachdem, was zuerst eintrifft.

Parameter-Liste

stream

Der gz-Dateizeiger. Dieser muss auf eine gültige, erfolgreich mit gzopen() geöffnete Datei zeigen.

length

Die Anzahl der zu lesenden Bytes.

Rückgabewerte

Die gelesenen Daten. Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
7.4.0 | Diese Funktion gibt jetzt bei einem Fehler false zurück; vorher wurde 0 zurückgegeben.

Beispiele

Beispiel #1 gzread()-Beispiel

<?php
// Liest den Inhalt einer gz-Datei in einen String
$filename = "/usr/local/something.txt.gz";
$zd = gzopen($filename, "r");
$contents = gzread($zd, 10000);
gzclose($zd);
?>

Siehe auch

  • gzwrite() - Ausgabe in gz-komprimierte Dateien
  • gzopen() - Öffnet eine gz-Datei
  • gzgets() - Get line from file pointer
  • gzgetss() - Holt eine Zeile vom gz-Dateizeiger und entfernt die HTML-Tags
  • gzfile() - Liest eine ganze gz-Datei in ein Array
  • gzpassthru() - Gibt alle verbleibenden Daten eines gz-Dateizeigers aus


Setzt den gz-Dateizeiger auf den Anfang zurück

  • « gzread
  • gzseek »
  • PHP Manual
  • Zlib-Funktionen
  • Setzt den gz-Dateizeiger auf den Anfang zurück

gzrewind

(PHP 4, PHP 5, PHP 7, PHP 8)

gzrewind — Setzt den gz-Dateizeiger auf den Anfang zurück

Beschreibung

gzrewind ( resource $stream ) : bool

Setzt die Schreib-/Leseposition des gz-Dateizeigers auf den Anfang des Streams zurück.

Parameter-Liste

stream

Der gz-Dateizeiger. Dies muss auf eine gültige, erfolgreich mit gzopen() geöffnete Datei zeigen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • gzseek() - Positioniert den gz-Dateizeiger
  • gztell() - Ermittelt die aktuelle Position eines gz-Dateizeigers


Positioniert den gz-Dateizeiger

  • « gzrewind
  • gztell »
  • PHP Manual
  • Zlib-Funktionen
  • Positioniert den gz-Dateizeiger

gzseek

(PHP 4, PHP 5, PHP 7, PHP 8)

gzseek — Positioniert den gz-Dateizeiger

Beschreibung

gzseek ( resource $stream , int $offset , int $whence = SEEK_SET ) : int

Setzt die Schreib-/Leseposition für die angegebene Datei. Dies entspricht dem C-API Aufruf gzseek(zp, offset, SEEK_SET).

Wenn die Datei für Lesezugriffe geöffnet ist, wird diese Funktion emuliert und kann sehr langsam sein. Wenn die Datei zum Schreiben geöffnet ist, kann nur vorwärts positioniert werden; die Funktion komprimiert dann eine Sequenz von Nullbytes, um die gewünschte Position zu erreichen.

Parameter-Liste

stream

Der gz-Dateizeiger. Dieser muss auf eine gültige, erfolgreich mit gzopen() geöffnete Datei zeigen.

offset

Die gewünschte Position.

whence

whence gibt an, auf welche Anfangsposition sich offset bezieht. Mögliche Werte sind:

  • SEEK_SET - Setzt die Position auf offset Bytes vom Dataianfang.
  • SEEK_CUR - Verschiebt die Position um offset Bytes ausgehend von der aktuellen Position.

Wird whence nicht angegeben, so wird SEEK_SET angenommen.

Rückgabewerte

Gibt 0 bei Erfolg und -1 bei Fehlern zurück. Beachten Sie, dass eine Suche über das Dateiende hinaus nicht als Fehler gilt.

Beispiele

Beispiel #1 gzseek()-Beispiel

<?php
$gz = gzopen('somefile.gz', 'r');
gzseek($gz,2);
echo gzgetc($gz);
gzclose($gz);
?>

Siehe auch

  • gztell() - Ermittelt die aktuelle Position eines gz-Dateizeigers
  • gzrewind() - Setzt den gz-Dateizeiger auf den Anfang zurück


Ermittelt die aktuelle Position eines gz-Dateizeigers

  • « gzseek
  • gzuncompress »
  • PHP Manual
  • Zlib-Funktionen
  • Ermittelt die aktuelle Position eines gz-Dateizeigers

gztell

(PHP 4, PHP 5, PHP 7, PHP 8)

gztell — Ermittelt die aktuelle Position eines gz-Dateizeigers

Beschreibung

gztell ( resource $stream ) : int|false

Gibt die aktuelle Schreib-/Leseposition des angegebenen gz-Dateizeigers zurück. Diese entspricht dem Offset in die nicht komprimierten Dateidaten.

Parameter-Liste

stream

Der gz-Dateizeiger. Dieser muss auf eine gültige, erfolgreich mit gzopen() geöffnete Datei zeigen.

Rückgabewerte

Die aktuelle Dateiposition oder false bei Fehlern.

Siehe auch

  • gzopen() - Öffnet eine gz-Datei
  • gzseek() - Positioniert den gz-Dateizeiger
  • gzrewind() - Setzt den gz-Dateizeiger auf den Anfang zurück


Dekomprimiert einen komprimierten String

  • « gztell
  • gzwrite »
  • PHP Manual
  • Zlib-Funktionen
  • Dekomprimiert einen komprimierten String

gzuncompress

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

gzuncompress — Dekomprimiert einen komprimierten String

Beschreibung

gzuncompress ( string $data , int $max_length = 0 ) : string|false

Diese Funktion dekomprimiert einen komprimierten String.

Parameter-Liste

data

Mit gzcompress() komprimierte Daten.

max_length

Die maximale Länge der dekodierten Daten.

Rückgabewerte

Die ursprünglichen nicht komprimierten Daten, oder false bei Fehlern.

Die Funktion gibt einen Fehler zurück, wenn die unkomprimierten Daten mehr als 32768 mal so lang sind wie die komprimierte Eingabe oder länger, als mit dem optionalen Parameter max_length angegeben.

Beispiele

Beispiel #1 gzuncompress()-Beispiel

<?php
$compressed   = gzcompress('Compress me', 9);
$uncompressed = gzuncompress($compressed);
echo $uncompressed;
?>

Siehe auch

  • gzcompress() - Komprimiert einen String
  • gzinflate() - Dekomprimiert eine komprimierte Zeichenkette
  • gzdeflate() - Komprimiert eine Zeichenkette
  • gzencode() - Create a gzip compressed string


Ausgabe in gz-komprimierte Dateien

  • « gzuncompress
  • inflate_add »
  • PHP Manual
  • Zlib-Funktionen
  • Ausgabe in gz-komprimierte Dateien

gzwrite

(PHP 4, PHP 5, PHP 7, PHP 8)

gzwrite — Ausgabe in gz-komprimierte Dateien

Beschreibung

gzwrite ( resource $stream , string $data , int|null $length = null ) : int|false

gzwrite() schreibt den Inhalt von data in die angegebene gz-Datei aus.

Parameter-Liste

stream

Ein gz-Dateizeiger. Dieser muss gültig sein und auf eine Datei zeigen, die erfolgreich mit gzopen() geöffnet wurde.

data

Der auszugebende String.

length

Die Anzahl unkomprimierter Bytes, die ausgegeben werden sollen. Wenn angegeben, wird nach length aus data geschriebenen Bytes abgebrochen, wenn bis dahin das Ende des Strings nicht erreicht ist.

Hinweis:

Es ist zu beachten, dass der Konfigurationsparameter magic_quotes_runtime ignoriert wird und keine Slashes aus data entfernt, werden wenn der optionale Parameter length übergeben wird.

Rückgabewerte

Gibt die Anzahl der (unkomprimierten) Bytes zurück, die auf den gegebenen gz-Stream ausgegeben wurden. Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | length ist jetzt ein Nullable-Typ; vorher war der Standardwert 0.
7.4.0 | Falls ein Fehler auftritt, gibt diese Funktion jetzt false zurück; vorher wurde 0 zurückgegeben.

Beispiele

Beispiel #1 gzwrite()-Beispiel

<?php
$string = 'Zu komprimierende Daten';
$gz = gzopen('somefile.gz','w9');
gzwrite($gz, $string);
gzclose($gz);
?>

Siehe auch

  • gzread() - Liest binary-safe aus einer gz-Datei
  • gzopen() - Öffnet eine gz-Datei


Incrementally inflate encoded data

  • « gzwrite
  • inflate_get_read_len »
  • PHP Manual
  • Zlib-Funktionen
  • Incrementally inflate encoded data

inflate_add

(PHP 7, PHP 8)

inflate_add — Incrementally inflate encoded data

Beschreibung

inflate_add ( InflateContext $context , string $data , int $flush_mode = ZLIB_SYNC_FLUSH ) : string|false

Incrementally inflates encoded data in the specified context.

Limitation: header information from GZIP compressed data are not made available.

Parameter-Liste

context

A context created with inflate_init().

data

A chunk of compressed data.

flush_mode

One of ZLIB_BLOCK, ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH (default), ZLIB_FULL_FLUSH, ZLIB_FINISH. Normally you will want to set ZLIB_NO_FLUSH to maximize compression, and ZLIB_FINISH to terminate with the last chunk of data. See the » zlib manual for a detailed description of these constants.

Rückgabewerte

Returns a chunk of uncompressed data, Im Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

If invalid parameters are given, inflating the data requires a preset dictionary, but none is specified, the compressed stream is corrupt or has an invalid checksum, an error of level E_WARNING is generated.

Changelog

Version | Beschreibung
8.0.0 | context expects an InflateContext instance now; previously, a resource was expected.

Siehe auch

  • inflate_init() - Initialize an incremental inflate context


Get number of bytes read so far

  • « inflate_add
  • inflate_get_status »
  • PHP Manual
  • Zlib-Funktionen
  • Get number of bytes read so far

inflate_get_read_len

(PHP 7 >= 7.2.0, PHP 8)

inflate_get_read_len — Get number of bytes read so far

Beschreibung

inflate_get_read_len ( InflateContext $context ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

context

Rückgabewerte

Returns number of bytes read so farIm Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | context expects an InflateContext instance now; previously, a resource was expected.


Get decompression status

  • « inflate_get_read_len
  • inflate_init »
  • PHP Manual
  • Zlib-Funktionen
  • Get decompression status

inflate_get_status

(PHP 7 >= 7.2.0, PHP 8)

inflate_get_status — Get decompression status

Beschreibung

inflate_get_status ( InflateContext $context ) : int

Usually returns either ZLIB_OK or ZLIB_STREAM_END.

Parameter-Liste

context

Rückgabewerte

Returns decompression statusIm Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | context expects an InflateContext instance now; previously, a resource was expected.


Initialize an incremental inflate context

  • « inflate_get_status
  • readgzfile »
  • PHP Manual
  • Zlib-Funktionen
  • Initialize an incremental inflate context

inflate_init

(PHP 7, PHP 8)

inflate_init — Initialize an incremental inflate context

Beschreibung

inflate_init ( int $encoding , array $options = [] ) : InflateContext|false

Initialize an incremental inflate context with the specified encoding.

Parameter-Liste

encoding

One of the ZLIB_ENCODING_* constants.

options

An associative array which may contain the following elements:

level

The compression level in range -1..9; defaults to -1.

memory

The compression memory level in range 1..9; defaults to 8.

window

The zlib window size (logarithmic) in range 8..15; defaults to 15.

strategy

One of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY (the default).

dictionary

A string or an array of strings of the preset dictionary (default: no preset dictionary).

Rückgabewerte

Returns an inflate context resource (zlib.inflate) on success, Im Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

If an invalid encoding or option is passed to options, or the context couldn't be created, an error of level E_WARNING is generated.

Changelog

Version | Beschreibung
8.0.0 | On success, this function returns an InflateContext instance now; previously, a resource was returned.

Siehe auch

  • inflate_add() - Incrementally inflate encoded data
  • deflate_init() - Initialize an incremental deflate context


Gibt eine gz-komprimierte Datei aus

  • « inflate_init
  • zlib_decode »
  • PHP Manual
  • Zlib-Funktionen
  • Gibt eine gz-komprimierte Datei aus

readgzfile

(PHP 4, PHP 5, PHP 7, PHP 8)

readgzfile — Gibt eine gz-komprimierte Datei aus

Beschreibung

readgzfile ( string $filename , int $use_include_path = 0 ) : int|false

Liest eine Datei, dekomprimiert sie und gibt das Ergebnis auf die Standardausgabe aus.

readgzfile() kann auch Dateien lesen, die nicht im gzip-Format vorliegen; in diesem Fall wird der Inhalt der Datei direkt ohne Dekomprimierung ausgegeben.

Parameter-Liste

filename

Der Dateiname. Die Datei wird geöffnet und ihr Inhalt auf die Standardausgabe ausgegeben.

use_include_path

Dieser Parameter kann auf 1 gesetzt werden, wenn die Datei auch im include_path gesucht werden soll.

Rückgabewerte

Gibt im Erfolgsfall die Anzahl der ausgegebenen Zeichen zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Siehe auch

  • gzpassthru() - Gibt alle verbleibenden Daten eines gz-Dateizeigers aus
  • gzfile() - Liest eine ganze gz-Datei in ein Array
  • gzopen() - Öffnet eine gz-Datei


Dekomprimiert raw-/gzip-/zlib-kodierte Daten

  • « readgzfile
  • zlib_encode »
  • PHP Manual
  • Zlib-Funktionen
  • Dekomprimiert raw-/gzip-/zlib-kodierte Daten

zlib_decode

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

zlib_decode — Dekomprimiert raw-/gzip-/zlib-kodierte Daten

Beschreibung

zlib_decode ( string $data , int $max_length = 0 ) : string|false

Dekomprimiert raw-/gzip-/zlib-kodierte Daten.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

data

max_length

Rückgabewerte

Gibt die unkomprimierten Daten zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • zlib_encode() - Komprimiert Daten mit der gewählten Kodierung


Komprimiert Daten mit der gewählten Kodierung

  • « zlib_decode
  • zlib_get_coding_type »
  • PHP Manual
  • Zlib-Funktionen
  • Komprimiert Daten mit der gewählten Kodierung

zlib_encode

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

zlib_encode — Komprimiert Daten mit der gewählten Kodierung

Beschreibung

zlib_encode ( string $data , int $encoding , int $level = -1 ) : string|false

Komprimiert Daten mit der gewählten Kodierung.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

data

Die zu komprimierenden Daten.

encoding

Der Komprimierungsalgorithmus. Entweder ZLIB_ENCODING_RAW, ZLIB_ENCODING_DEFLATE oder ZLIB_ENCODING_GZIP.

level

Rückgabewerte

Beispiele

Beispiel #1 zlib_encode()-Beispiel

<?php
$str = 'hallo welt';
$enc = zlib_encode($str, ZLIB_ENCODING_DEFLATE);
echo bin2hex($enc);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

789ccb48ccc9c957284fcd290100156803ed

Siehe auch

  • zlib_decode() - Dekomprimiert raw-/gzip-/zlib-kodierte Daten


Gibt die für Ausgabekomprimierung genutzte Methode zurück

  • « zlib_encode
  • DeflateContext »
  • PHP Manual
  • Zlib-Funktionen
  • Gibt die für Ausgabekomprimierung genutzte Methode zurück

zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

zlib_get_coding_type — Gibt die für Ausgabekomprimierung genutzte Methode zurück

Beschreibung

zlib_get_coding_type ( ) : string|false

Gibt die für Ausgabekomprimierung genutzte Methode zurück.

Rückgabewerte

Mögliche Ergebnisse sind gzip, deflate oder false.

Siehe auch

  • Die zlib.output_compression-Direktive.


The DeflateContext class

(PHP 8)

Einführung

A fully opaque class which replaces zlib.deflate resources as of PHP 8.0.0.

Klassenbeschreibung

final DeflateContext {
}


The InflateContext class

(PHP 8)

Einführung

A fully opaque class which replaces zlib.inflate resources as of PHP 8.0.0.

Klassenbeschreibung

final InflateContext {
}


Kryptografische Erweiterungen

  • CSPRNG
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • CSPRNG Funktionen
  • Hash — HASH-Erweiterung
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • HashContext — The HashContext class
    • Hash-Funktionen
  • Mcrypt
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Mcrypt Chiffren
    • Beispiele
    • Mcrypt Funktionen
  • Mhash
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Mhash Funktionen
  • OpenSSL
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Schlüssel-/Zertifikatparameter
    • Überprüfung von Zertifikaten
    • OpenSSL-Funktionen
    • OpenSSLCertificate — The OpenSSLCertificate class
    • OpenSSLCertificateSigningRequest — The OpenSSLCertificateSigningRequest class
    • OpenSSLAsymmetricKey — The OpenSSLAsymmetricKey class
  • Password Hashing
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Passwort-Hashing-Funktionen
  • Sodium
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Sodium Funktionen
    • SodiumException — The SodiumException class


CSPRNG

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • CSPRNG Funktionen
    • random_bytes — Generates cryptographically secure pseudo-random bytes
    • random_int — Generates cryptographically secure pseudo-random integers


Einführung

The » cryptographically secure pseudo-random number generator (CSPRNG) API provides an easy and reliable way to generate crypto-strong random integers and bytes for use within cryptographic contexts.

Dies existiert seit PHP 7.0.0 but there is also a » userland implementation for PHP >= 5.2.0.


  • « Ressource-Typen
  • CSPRNG Funktionen »
  • PHP Manual
  • CSPRNG
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


CSPRNG Funktionen

Inhaltsverzeichnis

  • random_bytes — Generates cryptographically secure pseudo-random bytes
  • random_int — Generates cryptographically secure pseudo-random integers


Generates cryptographically secure pseudo-random bytes

  • « CSPRNG Funktionen
  • random_int »
  • PHP Manual
  • CSPRNG Funktionen
  • Generates cryptographically secure pseudo-random bytes

random_bytes

(PHP 7, PHP 8)

random_bytes — Generates cryptographically secure pseudo-random bytes

Beschreibung

random_bytes ( int $length ) : string

Generates an arbitrary length string of cryptographic random bytes that are suitable for cryptographic use, such as when generating salts, keys or initialization vectors.

Die Zufallsquellen, die für diese Funktion verwendet werden, sind folgende:

  • Unter Windows wird immer » CryptGenRandom() verwendet. Seit PHP 7.2.0 wird stattdessen immer » CNG-API verwendet.
  • Unter Linux wird der Syscall » getrandom(2) verwendet, wenn er verfügbar ist.
  • Auf anderen Plattformen wird /dev/urandom verwendet.
  • Ist keine der zuvor aufgezählten Quellen verfübar, wird ein Error geworfen.

Hinweis: Obwohl diese Funktion erst mit PHP 7.0.0 in PHP hinzugefügt wurde, gibt es » Userland-Implementierungen für PHP 5.2 bis einschließlich 5.6.

Parameter-Liste

length

The length of the random string that should be returned in bytes.

Rückgabewerte

Returns a string containing the requested number of cryptographically secure random bytes.

Fehler/Exceptions

  • Wenn keine angemessene Quelle für Zufallszahlen verfügbar ist, wird eine Exception geworfen.
  • Werden ungültige Parameter übergeben, so wird ein TypeError geworfen.
  • If an invalid length of bytes is given, an Error will be thrown.

Beispiele

Beispiel #1 random_bytes() example

<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(10) "385e33f741"

Siehe auch

  • random_int() - Generates cryptographically secure pseudo-random integers
  • openssl_random_pseudo_bytes() - Generate a pseudo-random string of bytes
  • bin2hex() - Wandelt Binär-Daten in ihre hexadezimale Entsprechung um


Generates cryptographically secure pseudo-random integers

  • « random_bytes
  • Hash »
  • PHP Manual
  • CSPRNG Funktionen
  • Generates cryptographically secure pseudo-random integers

random_int

(PHP 7, PHP 8)

random_int — Generates cryptographically secure pseudo-random integers

Beschreibung

random_int ( int $min , int $max ) : int

Generates cryptographic random integers that are suitable for use where unbiased results are critical, such as when shuffling a deck of cards for a poker game.

Die Zufallsquellen, die für diese Funktion verwendet werden, sind folgende:

  • Unter Windows wird immer » CryptGenRandom() verwendet. Seit PHP 7.2.0 wird stattdessen immer » CNG-API verwendet.
  • Unter Linux wird der Syscall » getrandom(2) verwendet, wenn er verfügbar ist.
  • Auf anderen Plattformen wird /dev/urandom verwendet.
  • Ist keine der zuvor aufgezählten Quellen verfübar, wird ein Error geworfen.

Hinweis: Obwohl diese Funktion erst mit PHP 7.0.0 in PHP hinzugefügt wurde, gibt es » Userland-Implementierungen für PHP 5.2 bis einschließlich 5.6.

Parameter-Liste

min

The lowest value to be returned, which must be PHP_INT_MIN or higher.

max

The highest value to be returned, which must be less than or equal to PHP_INT_MAX.

Rückgabewerte

Returns a cryptographically secure random integer in the range min to max, inclusive.

Fehler/Exceptions

  • Wenn keine angemessene Quelle für Zufallszahlen verfügbar ist, wird eine Exception geworfen.
  • Werden ungültige Parameter übergeben, so wird ein TypeError geworfen.
  • If max is less than min, an Error will be thrown.

Beispiele

Beispiel #1 random_int() example

<?php
var_dump(random_int(100, 999));
var_dump(random_int(-1000, 0));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(248)
int(-898)

Siehe auch

  • random_bytes() - Generates cryptographically secure pseudo-random bytes


HASH-Erweiterung

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • HashContext — The HashContext class
    • HashContext::__construct — Private constructor to disallow direct instantiation
  • Hash-Funktionen
    • hash_algos — Gibt einer Liste der verfügbaren Hashing-Algorithmen zurück
    • hash_copy — Dupliziert einen Hash-Kontext
    • hash_equals — Timing attack safe string comparison
    • hash_file — Berechnet den Hash des Inhalts einer Datei
    • hash_final — Schließt einen schrittweisen Hashing-Vorgang ab und gibt sein Ergebnis zurück
    • hash_hkdf — Generate a HKDF key derivation of a supplied key input
    • hash_hmac_algos — Return a list of registered hashing algorithms suitable for hash_hmac
    • hash_hmac_file — Berechnet einen Hash einer Datei mit Schlüssel unter Verwendung von HMAC
    • hash_hmac — Berechnet einen Hash mit Schlüssel unter Verwendung von HMAC
    • hash_init — Initialisiert einen schrittweisen Hashing-Kontext
    • hash_pbkdf2 — Generate a PBKDF2 key derivation of a supplied password
    • hash_update_file — Fügt Daten aus einer Datei an einen aktiven Hash-Kontext an
    • hash_update_stream — Fügt Daten aus einem Stream an einen aktiven Hash-Kontext an
    • hash_update — Fügt Daten an einen aktiven Hash-Kontext an
    • hash — Berechnet den Hash einer Nachricht


Einführung

Funktionen zur Nutzung kryptographischer Hash-Algorithmen. Die Erweiterung erlaubt direktes oder schrittweises Verarbeiten von Daten beliebiger Länge unter Nutzung einer großen Auswahl von Hashing-Algorithmen.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.


Installation

Von PHP 5.1.2 an wird die Hash-Erweiterung mitgeliefert und standardmäßig in PHP einkompiliert.

Sie kann mit dem --disable-hash Umschalter für configure explizit deaktiviert werden. Frühere PHP-Versionen können die Hash-Erweiterung mit der Installation des » PECL-Moduls nutzen.

Von PHP 7.4.0 an ist die Hash-Erweiterung eine Core-Erweiterung, so dass sie immer aktiviert ist.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung stellt eine Kontextressource für Hashs bereit, die von hash_init() zurückgegeben wird.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

HASH_HMAC (integer)
Optionales Symbol für hash_init(). Es bewirkt, dass der HMAC-digest-keying-Algorithmus auf den aktuellen Hashing- Kontext angewendet werden soll.


The HashContext class

(PHP 7 >= 7.2.0, PHP 8)

Einführung

Klassenbeschreibung

HashContext {
/* Methoden */
private __construct ( )
}

Inhaltsverzeichnis

  • HashContext::__construct — Private constructor to disallow direct instantiation


Private constructor to disallow direct instantiation

  • « HashContext
  • Hash-Funktionen »
  • PHP Manual
  • HashContext
  • Private constructor to disallow direct instantiation

HashContext::__construct

(PHP 7 >= 7.2.0, PHP 8)

HashContext::__construct — Private constructor to disallow direct instantiation

Beschreibung

private HashContext::__construct ( )

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Hash-Funktionen

Inhaltsverzeichnis

  • hash_algos — Gibt einer Liste der verfügbaren Hashing-Algorithmen zurück
  • hash_copy — Dupliziert einen Hash-Kontext
  • hash_equals — Timing attack safe string comparison
  • hash_file — Berechnet den Hash des Inhalts einer Datei
  • hash_final — Schließt einen schrittweisen Hashing-Vorgang ab und gibt sein Ergebnis zurück
  • hash_hkdf — Generate a HKDF key derivation of a supplied key input
  • hash_hmac_algos — Return a list of registered hashing algorithms suitable for hash_hmac
  • hash_hmac_file — Berechnet einen Hash einer Datei mit Schlüssel unter Verwendung von HMAC
  • hash_hmac — Berechnet einen Hash mit Schlüssel unter Verwendung von HMAC
  • hash_init — Initialisiert einen schrittweisen Hashing-Kontext
  • hash_pbkdf2 — Generate a PBKDF2 key derivation of a supplied password
  • hash_update_file — Fügt Daten aus einer Datei an einen aktiven Hash-Kontext an
  • hash_update_stream — Fügt Daten aus einem Stream an einen aktiven Hash-Kontext an
  • hash_update — Fügt Daten an einen aktiven Hash-Kontext an
  • hash — Berechnet den Hash einer Nachricht


Gibt einer Liste der verfügbaren Hashing-Algorithmen zurück

  • « Hash-Funktionen
  • hash_copy »
  • PHP Manual
  • Hash-Funktionen
  • Gibt einer Liste der verfügbaren Hashing-Algorithmen zurück

hash_algos

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_algos — Gibt einer Liste der verfügbaren Hashing-Algorithmen zurück

Beschreibung

hash_algos ( ) : array

Rückgabewerte

Gibt ein nicht-assoziatives Array mit allen unterstützten Hashing-Algorithmen zurück.

Changelog

Version | Beschreibung
7.4.0 | Ünterstützung für crc32c wurde hinzugefügt.
7.1.0 | Unterstützung für sha512/224, sha512/256, sha3-224, sha3-256, sha3-384 und sha3-512 wurde hinzugefügt.
5.6.0 | Unterstützung für gost-crypto hinzugefügt. Dieser implementiert die GOST Hash-Funktion unter Verwendung der CryptoPro S-box Tabellen wie unter » RFC 4357, section 11.2 spezifiziert.
5.4.0 | Unterstützung für joaat, fnv132 und fnv164 hinzugefügt. Unterstützung für Salsa10 und Salsa20 entfernt.
5.3.0 | Unterstützung für md2, ripemd256, ripemd320, salsa10, salsa20, snefru256 und sha224 hinzugefügt.

Beispiele

Beispiel #1 hash_algos()-Beispiel

Von PHP 7.4.0 an gibt hash_algos() die folgende Liste von Algorithmen zurück.

<?php
print_r(hash_algos());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha224
    [5] => sha256
    [6] => sha384
    [7] => sha512/224
    [8] => sha512/256
    [9] => sha512
    [10] => sha3-224
    [11] => sha3-256
    [12] => sha3-384
    [13] => sha3-512
    [14] => ripemd128
    [15] => ripemd160
    [16] => ripemd256
    [17] => ripemd320
    [18] => whirlpool
    [19] => tiger128,3
    [20] => tiger160,3
    [21] => tiger192,3
    [22] => tiger128,4
    [23] => tiger160,4
    [24] => tiger192,4
    [25] => snefru
    [26] => snefru256
    [27] => gost
    [28] => gost-crypto
    [29] => adler32
    [30] => crc32
    [31] => crc32b
    [32] => crc32c
    [33] => fnv132
    [34] => fnv1a32
    [35] => fnv164
    [36] => fnv1a64
    [37] => joaat
    [38] => haval128,3
    [39] => haval160,3
    [40] => haval192,3
    [41] => haval224,3
    [42] => haval256,3
    [43] => haval128,4
    [44] => haval160,4
    [45] => haval192,4
    [46] => haval224,4
    [47] => haval256,4
    [48] => haval128,5
    [49] => haval160,5
    [50] => haval192,5
    [51] => haval224,5
    [52] => haval256,5
)

Siehe auch

  • hash_hmac_algos() - Return a list of registered hashing algorithms suitable for hash_hmac


Dupliziert einen Hash-Kontext

  • « hash_algos
  • hash_equals »
  • PHP Manual
  • Hash-Funktionen
  • Dupliziert einen Hash-Kontext

hash_copy

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

hash_copy — Dupliziert einen Hash-Kontext

Beschreibung

hash_copy ( HashContext $context ) : HashContext

Parameter-Liste

context

Von hash_init() zurückgegebener Hash-Kontext

Rückgabewerte

Gibt eine Kopie des Hash-Kontexts zurück.

Changelog

Version | Beschreibung
7.2.0 | Erwartet und liefert nun einen HashContext anstatt einer Ressource zurück.

Beispiele

Beispiel #1 hash_copy()-Beispiel

<?php
$context = hash_init("md5");
hash_update($context, "data");

/* Dupliziere Kontext um ihn weiter nutzen zu können */
$copy_context = hash_copy($context);

echo hash_final($context), "\n";

hash_update($copy_context, "data");
echo hash_final($copy_context), "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

8d777f385d3dfec8815d20f7496026dc
511ae0b1c13f95e5f08f1a0dd3da3d93


Timing attack safe string comparison

  • « hash_copy
  • hash_file »
  • PHP Manual
  • Hash-Funktionen
  • Timing attack safe string comparison

hash_equals

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

hash_equals — Timing attack safe string comparison

Beschreibung

hash_equals ( string $known_string , string $user_string ) : bool

Compares two strings using the same time whether they're equal or not.

This function should be used to mitigate timing attacks; for instance, when testing crypt() password hashes.

Parameter-Liste

known_string

The string of known length to compare against

user_string

The user-supplied string

Rückgabewerte

Returns true when the two strings are equal, false otherwise.

Fehler/Exceptions

Emits an E_WARNING message when either of the supplied parameters is not a string.

Beispiele

Beispiel #1 hash_equals() example

<?php
$expected  = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct   = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('apple', '$2a$07$usesomesillystringforsalt$');

var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)

Anmerkungen

Hinweis:

Both arguments must be of the same length to be compared successfully. When arguments of differing length are supplied, false is returned immediately and the length of the known string may be leaked in case of a timing attack.

Hinweis:

It is important to provide the user-supplied string as the second parameter, rather than the first.


Berechnet den Hash des Inhalts einer Datei

  • « hash_equals
  • hash_final »
  • PHP Manual
  • Hash-Funktionen
  • Berechnet den Hash des Inhalts einer Datei

hash_file

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_file — Berechnet den Hash des Inhalts einer Datei

Beschreibung

hash_file ( string $algo , string $filename , bool $raw_output = false ) : string

Parameter-Liste

algo

Name des gewählten Hash-Algorithmus (z.B. "md5", "sha256", "haval160,4", usw...) Für eine Liste der unterstützten Algorithmen, siehe hash_hmac_algos().

filename

URL der Datei, die gehasht werden soll, fopen-Wrapper werden unterstützt.

raw_output

Ist dieser Parameter true, werden direkt Binärdaten zurückgegeben, andernfalls werden klein geschriebene Hexadezimalziffern zurückgegeben.

Rückgabewerte

Gibt den berechneten Hash als Hexadezimalzahl zurück, außer raw_output ist wahr, in diesem Fall wird die binäre Darstellung des Hashes zurückgegeben.

Beispiele

Beispiel #1 hash_file()-Beispiel

<?php
/* Erstelle die Datei, deren Inhalt gehasht werden soll */
file_put_contents('example.txt', 'Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.');

echo hash_file('md5', 'example.txt');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

ba4b9da310763a91f8edc7c185a1e4bf

Siehe auch

  • hash() - Berechnet den Hash einer Nachricht
  • hash_hmac_file() - Berechnet einen Hash einer Datei mit Schlüssel unter Verwendung von HMAC
  • hash_update_file() - Fügt Daten aus einer Datei an einen aktiven Hash-Kontext an
  • md5_file() - Berechnet den MD5-Code einer Datei
  • sha1_file() - Berechnet den SHA1-Hash einer Datei


Schließt einen schrittweisen Hashing-Vorgang ab und gibt sein Ergebnis zurück

  • « hash_file
  • hash_hkdf »
  • PHP Manual
  • Hash-Funktionen
  • Schließt einen schrittweisen Hashing-Vorgang ab und gibt sein Ergebnis zurück

hash_final

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_final — Schließt einen schrittweisen Hashing-Vorgang ab und gibt sein Ergebnis zurück

Beschreibung

hash_final ( HashContext $context , bool $raw_output = false ) : string

Parameter-Liste

context

Hashing-Kontext, zurückgegeben von hash_init().

raw_output

Ist dieser Parameter true, werden direkt Binärdaten zurückgegeben, andernfalls werden klein geschriebene Hexadezimalziffern zurückgegeben.

Rückgabewerte

Gibt den berechneten Hash als Hexadezimalzahl zurück, außer raw_output ist wahr, in diesem Fall wird die binäre Darstellung des Hashes zurückgegeben.

Changelog

Version | Beschreibung
7.2.0 | Erwartet nun einen HashContext anstatt einer Ressource.

Beispiele

Beispiel #1 hash_final()-Beispiel

<?php
$ctx = hash_init('sha1');
hash_update($ctx, 'Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.');
echo hash_final($ctx);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

48e3273628b29b2a640adee09a488f6f885f5116

Siehe auch

  • hash_init() - Initialisiert einen schrittweisen Hashing-Kontext
  • hash_update() - Fügt Daten an einen aktiven Hash-Kontext an
  • hash_update_stream() - Fügt Daten aus einem Stream an einen aktiven Hash-Kontext an
  • hash_update_file() - Fügt Daten aus einer Datei an einen aktiven Hash-Kontext an


Generate a HKDF key derivation of a supplied key input

  • « hash_final
  • hash_hmac_algos »
  • PHP Manual
  • Hash-Funktionen
  • Generate a HKDF key derivation of a supplied key input

hash_hkdf

(PHP 7 >= 7.1.2, PHP 8)

hash_hkdf — Generate a HKDF key derivation of a supplied key input

Beschreibung

hash_hkdf ( string $algo , string $key , int $length = 0 , string $info = "" , string $salt = "" ) : string

Parameter-Liste

algo

Name of selected hashing algorithm (i.e. "sha256", "sha512", "haval160,4", etc..) See hash_algos() for a list of supported algorithms.

Hinweis:

Non-cryptographic hash functions are not allowed.

key

Input keying material (raw binary). Cannot be empty.

length

Desired output length in bytes. Cannot be greater than 255 times the chosen hash function size.

If length is 0, the output length will default to the chosen hash function size.

info

Application/context-specific info string.

salt

Salt to use during derivation.

While optional, adding random salt significantly improves the strength of HKDF.

Rückgabewerte

Returns a string containing a raw binary representation of the derived key (also known as output keying material - OKM); or false on failure.

Fehler/Exceptions

An E_WARNING will be raised if key is empty, algo is unknown/non-cryptographic, length is less than 0 or too large (greater than 255 times the size of the hash function).

Beispiele

Beispiel #1 hash_hkdf() example

<?php
// Generate a random key, and salt to strengthen it during derivation.
$inputKey = random_bytes(32);
$salt = random_bytes(16);

// Derive a pair of separate keys, using the same input created above.
$encryptionKey = hash_hkdf('sha256', $inputKey, 32, 'aes-256-encryption', $salt);
$authenticationKey = hash_hkdf('sha256', $inputKey, 32, 'sha-256-authentication', $salt);

var_dump($encryptionKey !== $authenticationKey); // bool(true)
?>

The above example produces a pair of separate keys, suitable for creation of an encrypt-then-HMAC construct, using AES-256 and SHA-256 for encryption and authentication respectively.

Siehe auch

  • hash_pbkdf2() - Generate a PBKDF2 key derivation of a supplied password
  • » RFC 5869
  • » userland implementation


Return a list of registered hashing algorithms suitable for hash_hmac

  • « hash_hkdf
  • hash_hmac_file »
  • PHP Manual
  • Hash-Funktionen
  • Return a list of registered hashing algorithms suitable for hash_hmac

hash_hmac_algos

(PHP 7 >= 7.2.0, PHP 8)

hash_hmac_algos — Return a list of registered hashing algorithms suitable for hash_hmac

Beschreibung

hash_hmac_algos ( ) : array

Rückgabewerte

Returns a numerically indexed array containing the list of supported hashing algorithms suitable for hash_hmac().

Beispiele

Beispiel #1 hash_hmac_algos() example

<?php
print_r(hash_hmac_algos());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha224
    [5] => sha256
    [6] => sha384
    [7] => sha512/224
    [8] => sha512/256
    [9] => sha512
    [10] => sha3-224
    [11] => sha3-256
    [12] => sha3-384
    [13] => sha3-512
    [14] => ripemd128
    [15] => ripemd160
    [16] => ripemd256
    [17] => ripemd320
    [18] => whirlpool
    [19] => tiger128,3
    [20] => tiger160,3
    [21] => tiger192,3
    [22] => tiger128,4
    [23] => tiger160,4
    [24] => tiger192,4
    [25] => snefru
    [26] => snefru256
    [27] => gost
    [28] => gost-crypto
    [29] => haval128,3
    [30] => haval160,3
    [31] => haval192,3
    [32] => haval224,3
    [33] => haval256,3
    [34] => haval128,4
    [35] => haval160,4
    [36] => haval192,4
    [37] => haval224,4
    [38] => haval256,4
    [39] => haval128,5
    [40] => haval160,5
    [41] => haval192,5
    [42] => haval224,5
    [43] => haval256,5
)

Anmerkungen

Hinweis:

Before PHP 7.2.0 the only means to get a list of supported hash algorithms has been to call hash_algos() which also returns hash algorithms that are not suitable for hash_hmac().

Siehe auch

  • hash_hmac() - Berechnet einen Hash mit Schlüssel unter Verwendung von HMAC
  • hash_algos() - Gibt einer Liste der verfügbaren Hashing-Algorithmen zurück


Berechnet einen Hash einer Datei mit Schlüssel unter Verwendung von HMAC

  • « hash_hmac_algos
  • hash_hmac »
  • PHP Manual
  • Hash-Funktionen
  • Berechnet einen Hash einer Datei mit Schlüssel unter Verwendung von HMAC

hash_hmac_file

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_hmac_file — Berechnet einen Hash einer Datei mit Schlüssel unter Verwendung von HMAC

Beschreibung

hash_hmac_file ( string $algo , string $filename , string $key , bool $raw_output = false ) : string

Parameter-Liste

algo

Name des gewählten Hash-Algorithmus (z.B. "md5", "sha256", "haval160,4", usw...). Für eine Liste der unterstützten Algorithmen, siehe hash_hmac_algos().

filename

URL der Datei, die gehasht werden soll, fopen-Wrapper werden unterstützt.

key

Geheimer Schlüssel für die Berechnung der HMAC-Variante des Hashs.

raw_output

Ist dieser Parameter true, werden direkt Binärdaten zurückgegeben, andernfalls werden klein geschriebene Hexadezimalziffern zurückgegeben.

Rückgabewerte

Gibt den berechneten Hash als Hexadezimalzahl zurück, außer raw_output ist wahr, in diesem Fall wird die binäre Darstellung des Hashes zurückgegeben. Gibt false zurück, wenn algo nicht bekannt oder eine nicht-kryptographische Hash-Funktion ist, oder falls die Datei filename nicht gelesen werden kann.

Changelog

Version | Beschreibung
7.2.0 | Die Verwendung von nicht-kryptografischen Hashfunktionen (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) ist nicht mehr möglich.

Beispiele

Beispiel #1 hash_hmac_file()-Beispiel

<?php
/* Erstelle die Datei, deren Inhalt gehasht werden soll */
file_put_contents('example.txt', 'Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.');

echo hash_hmac_file('md5', 'example.txt', 'geheimnis');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

e949d0086c79cc6d67cf757bab4e5be8

Siehe auch

  • hash_hmac_algos() - Return a list of registered hashing algorithms suitable for hash_hmac
  • hash_hmac() - Berechnet einen Hash mit Schlüssel unter Verwendung von HMAC
  • hash_file() - Berechnet den Hash des Inhalts einer Datei


Berechnet einen Hash mit Schlüssel unter Verwendung von HMAC

  • « hash_hmac_file
  • hash_init »
  • PHP Manual
  • Hash-Funktionen
  • Berechnet einen Hash mit Schlüssel unter Verwendung von HMAC

hash_hmac

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_hmac — Berechnet einen Hash mit Schlüssel unter Verwendung von HMAC

Beschreibung

hash_hmac ( string $algo , string $data , string $key , bool $raw_output = false ) : string

Parameter-Liste

algo

Name des gewählten Hash-Algorithmus (z.B. "md5", "sha256", "haval160,4", usw...). Für eine Liste der unterstützten Algorithmen, siehe hash_hmac_algos().

data

Nachricht, die gehasht werden soll.

key

Geheimer Schlüssel für die Berechnung der HMAC-Variante des Hashs.

raw_output

Ist dieser Parameter true, werden direkt Binärdaten zurückgegeben, andernfalls werden klein geschriebene Hexadezimalziffern zurückgegeben.

Rückgabewerte

Gibt den berechneten Hash als Hexadezimalzahl zurück, außer raw_output ist wahr, in diesem Fall wird die binäre Darstellung des Hashes zurückgegeben. Gibt false zurück, wenn algo nicht bekannt oder eine nicht-kryptographische Hash-Funktion ist.

Changelog

Version | Beschreibung
7.2.0 | Die Verwendung nicht-kryptografischer Hashfunktionen (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) ist nicht mehr möglich.

Beispiele

Beispiel #1 hash_hmac()-Beispiel

<?php
echo hash_hmac('ripemd160', 'Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.', 'geheimnis');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2c74049f7b3ce927cefaaa4162c98abe234f971f

Siehe auch

  • hash() - Berechnet den Hash einer Nachricht
  • hash_hmac_algos() - Return a list of registered hashing algorithms suitable for hash_hmac
  • hash_init() - Initialisiert einen schrittweisen Hashing-Kontext
  • hash_hmac_file() - Berechnet einen Hash einer Datei mit Schlüssel unter Verwendung von HMAC


Initialisiert einen schrittweisen Hashing-Kontext

  • « hash_hmac
  • hash_pbkdf2 »
  • PHP Manual
  • Hash-Funktionen
  • Initialisiert einen schrittweisen Hashing-Kontext

hash_init

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_init — Initialisiert einen schrittweisen Hashing-Kontext

Beschreibung

hash_init ( string $algo , int $options = 0 , string $key = null ) : HashContext

Parameter-Liste

algo

Name des gewählten Hash-Algorithmus (z.B. "md5", "sha256", "haval160,4", usw...) Eine Liste der unterstützten Algorithmen ist hash_algos() zu entnehmen.

options

Optionale Einstellungen für die Hash-Generierung, aktuell wird nur eine Option unterstützt: HASH_HMAC. Wenn diese gesetzt ist, ist der Parameter key Pflicht.

key

Ein geheimer Schlüssel zur Verwendung mit dem HMAC-Verfahren. Wenn HASH_HMAC bei options gesetzt ist, muss key gesetzt werden.

Rückgabewerte

Gibt einen Hashing-Kontext zur Nutzung mit hash_update(), hash_update_stream(), hash_update_file(), und hash_final() zurück.

Changelog

Version | Beschreibung
7.2.0 | Die Verwendung nicht-kryptografischer Hashfunktionen (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) mit HASH_HMAC ist nicht mehr möglich.
7.2.0 | Liefert nun einen HashContext anstatt einer Ressource zurück.

Beispiele

Beispiel #1 Beispiel für schrittweises Hashing

<?php
$ctx = hash_init('md5');
hash_update($ctx, 'Franz jagt im komplett verwahrlosten ');
hash_update($ctx, 'Taxi quer durch Bayern.');
echo hash_final($ctx);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

ba4b9da310763a91f8edc7c185a1e4bf

Siehe auch

  • hash() - Berechnet den Hash einer Nachricht
  • hash_algos() - Gibt einer Liste der verfügbaren Hashing-Algorithmen zurück
  • hash_file() - Berechnet den Hash des Inhalts einer Datei
  • hash_hmac() - Berechnet einen Hash mit Schlüssel unter Verwendung von HMAC
  • hash_hmac_file() - Berechnet einen Hash einer Datei mit Schlüssel unter Verwendung von HMAC


Generate a PBKDF2 key derivation of a supplied password

  • « hash_init
  • hash_update_file »
  • PHP Manual
  • Hash-Funktionen
  • Generate a PBKDF2 key derivation of a supplied password

hash_pbkdf2

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

hash_pbkdf2 — Generate a PBKDF2 key derivation of a supplied password

Beschreibung

hash_pbkdf2 ( string $algo , string $password , string $salt , int $iterations , int $length = 0 , bool $binary = false ) : string

Parameter-Liste

algo

Name of selected hashing algorithm (i.e. md5, sha256, haval160,4, etc..) See hash_algos() for a list of supported algorithms.

password

The password to use for the derivation.

salt

The salt to use for the derivation. This value should be generated randomly.

iterations

The number of internal iterations to perform for the derivation.

length

The length of the output string. If binary is true this corresponds to the byte-length of the derived key, if binary is false this corresponds to twice the byte-length of the derived key (as every byte of the key is returned as two hexits).

If 0 is passed, the entire output of the supplied algorithm is used.

binary

When set to true, outputs raw binary data. false outputs lowercase hexits.

Rückgabewerte

Returns a string containing the derived key as lowercase hexits unless binary is set to true in which case the raw binary representation of the derived key is returned.

Fehler/Exceptions

An E_WARNING will be raised if the algorithm is unknown, the iterations parameter is less than or equal to 0, the length is less than 0 or the salt is too long (greater than INT_MAX - 4).

Changelog

Version | Beschreibung
7.2.0 | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.

Beispiele

Beispiel #1 hash_pbkdf2() example, basic usage

<?php
$password = "password";
$iterations = 1000;

// Generate a random IV using openssl_random_pseudo_bytes()
// random_bytes() or another suitable source of randomness
$salt = openssl_random_pseudo_bytes(16);

$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20);
echo $hash;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

120fb6cffcf8b32c43e7

Anmerkungen

Achtung

The PBKDF2 method can be used for hashing passwords for storage. However, it should be noted that password_hash() or crypt() with CRYPT_BLOWFISH are better suited for password storage.

Siehe auch

  • crypt() - Einweg-String-Hashing
  • password_hash() - Erstellt einen Passwort-Hash
  • hash() - Berechnet den Hash einer Nachricht
  • hash_algos() - Gibt einer Liste der verfügbaren Hashing-Algorithmen zurück
  • hash_init() - Initialisiert einen schrittweisen Hashing-Kontext
  • hash_hmac() - Berechnet einen Hash mit Schlüssel unter Verwendung von HMAC
  • hash_hmac_file() - Berechnet einen Hash einer Datei mit Schlüssel unter Verwendung von HMAC
  • openssl_pbkdf2() - Generates a PKCS5 v2 PBKDF2 string


Fügt Daten aus einer Datei an einen aktiven Hash-Kontext an

  • « hash_pbkdf2
  • hash_update_stream »
  • PHP Manual
  • Hash-Funktionen
  • Fügt Daten aus einer Datei an einen aktiven Hash-Kontext an

hash_update_file

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_update_file — Fügt Daten aus einer Datei an einen aktiven Hash-Kontext an

Beschreibung

hash_update_file ( HashContext $hcontext , string $filename , resource $scontext = null ) : bool

Parameter-Liste

hcontext

Hashing-Kontext, zurückgegeben von hash_init().

filename

URL der Datei, die zum Kontext hinzugefügt werden soll; fopen-Wrapper werden unterstützt.

scontext

Stream-Kontext, wie von stream_context_create() zurückgegeben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.2.0 | Erwartet nun einen HashContext anstatt einer Ressource.

Siehe auch

  • hash_init() - Initialisiert einen schrittweisen Hashing-Kontext
  • hash_update() - Fügt Daten an einen aktiven Hash-Kontext an
  • hash_update_stream() - Fügt Daten aus einem Stream an einen aktiven Hash-Kontext an
  • hash_final() - Schließt einen schrittweisen Hashing-Vorgang ab und gibt sein Ergebnis zurück
  • hash() - Berechnet den Hash einer Nachricht
  • hash_file() - Berechnet den Hash des Inhalts einer Datei


Fügt Daten aus einem Stream an einen aktiven Hash-Kontext an

  • « hash_update_file
  • hash_update »
  • PHP Manual
  • Hash-Funktionen
  • Fügt Daten aus einem Stream an einen aktiven Hash-Kontext an

hash_update_stream

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_update_stream — Fügt Daten aus einem Stream an einen aktiven Hash-Kontext an

Beschreibung

hash_update_stream ( HashContext $context , resource $handle , int $length = -1 ) : int

Parameter-Liste

context

Hashing-Kontext, zurückgegeben von hash_init().

handle

Offene Datei-Ressource, wie von einer Stream-erstellenden Funktion zurückgegeben.

length

Maximale Anzahl an Zeichen, die von handle in den Hashing-Kontext kopiert werden

Rückgabewerte

Anzahl an Bytes, die dem Hashing-Kontext von handle hinzugefügt wurden.

Changelog

Version | Beschreibung
7.2.0 | Erwartet nun einen HashContext anstatt einer Ressource.

Beispiele

Beispiel #1 hash_update_stream()-Beispiel

<?php
$fp = tmpfile();
fwrite($fp, 'Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.');
rewind($fp);

$ctx = hash_init('md5');
hash_update_stream($ctx, $fp);
echo hash_final($ctx);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

ba4b9da310763a91f8edc7c185a1e4bf

Siehe auch

  • hash_init() - Initialisiert einen schrittweisen Hashing-Kontext
  • hash_update() - Fügt Daten an einen aktiven Hash-Kontext an
  • hash_final() - Schließt einen schrittweisen Hashing-Vorgang ab und gibt sein Ergebnis zurück
  • hash() - Berechnet den Hash einer Nachricht
  • hash_file() - Berechnet den Hash des Inhalts einer Datei


Fügt Daten an einen aktiven Hash-Kontext an

  • « hash_update_stream
  • hash »
  • PHP Manual
  • Hash-Funktionen
  • Fügt Daten an einen aktiven Hash-Kontext an

hash_update

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_update — Fügt Daten an einen aktiven Hash-Kontext an

Beschreibung

hash_update ( HashContext $context , string $data ) : bool

Parameter-Liste

context

Hashing-Kontext, zurückgegeben von hash_init().

data

Nachricht, die in den Hash-Kontext eingefügt wird.

Rückgabewerte

Returns true.

Changelog

Version | Beschreibung
7.2.0 | Erwartet nun einen HashContext anstatt einer Ressource.

Siehe auch

  • hash_init() - Initialisiert einen schrittweisen Hashing-Kontext
  • hash_update_file() - Fügt Daten aus einer Datei an einen aktiven Hash-Kontext an
  • hash_update_stream() - Fügt Daten aus einem Stream an einen aktiven Hash-Kontext an
  • hash_final() - Schließt einen schrittweisen Hashing-Vorgang ab und gibt sein Ergebnis zurück


Berechnet den Hash einer Nachricht

  • « hash_update
  • Mcrypt »
  • PHP Manual
  • Hash-Funktionen
  • Berechnet den Hash einer Nachricht

hash

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash — Berechnet den Hash einer Nachricht

Beschreibung

hash ( string $algo , string $data , bool $raw_output = false ) : string

Parameter-Liste

algo

Name des gewählten Hash-Algorithmus (z.B. "md5", "sha256", "haval160,4", usw...) Für eine Liste der unterstützten Algorithmen, siehe hash_hmac_algos().

data

Nachricht, die gehasht werden soll.

raw_output

Ist dieser Parameter true, werden direkt Binärdaten zurückgegeben, andernfalls werden klein geschriebene Hexadezimalziffern zurückgegeben.

Rückgabewerte

Gibt den berechneten Hash als Hexadezimalzahl zurück, außer raw_output ist wahr, in diesem Fall wird die binäre Darstellung des Hashes zurückgegeben.

Changelog

Version | Beschreibung
5.4.0 | Der tiger Algorithmus verwendet nun Big-Endian-Bytereihenfolge. Vergleiche das Beispiel weiter unten.

Beispiele

Beispiel #1 hash()-Beispiel

<?php
echo hash('ripemd160', 'Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1e3d00e6a15336c66e46881d1efe8afc7813f66e

Beispiel #2 Ermitteln von Prä-PHP 5.4 tiger Hashes mit PHP 5.4 und höher

<?php
function old_tiger($data = "", $width=192, $rounds = 3) {
    return substr(
        implode(
            array_map(
                function ($h) {
                    return str_pad(bin2hex(strrev($h)), 16, "0");
                },
                str_split(hash("tiger192,$rounds", $data, true), 8)
            )
        ),
        0, 48-(192-$width)/4
    );
}
echo hash('tiger192,3', 'a-string'), PHP_EOL;
echo old_tiger('a-string'), PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.3:

146a7492719b3564094efe7abbd40a7416fd900179d02773
64359b7192746a14740ad4bb7afe4e097327d0790190fd16

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.4:

64359b7192746a14740ad4bb7afe4e097327d0790190fd16
146a7492719b3564094efe7abbd40a7416fd900179d02773

Siehe auch

  • hash_file() - Berechnet den Hash des Inhalts einer Datei
  • hash_hmac() - Berechnet einen Hash mit Schlüssel unter Verwendung von HMAC
  • hash_init() - Initialisiert einen schrittweisen Hashing-Kontext
  • md5() - Errechnet den MD5-Hash eines Strings
  • sha1() - Berechnet den SHA1-Hash eines Strings


Mcrypt

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Mcrypt Chiffren
  • Beispiele
  • Mcrypt Funktionen
    • mcrypt_cbc — Entschlüsselt/Verschlüsselt Daten im CBC Modus
    • mcrypt_cfb — Encrypts/decrypts data in CFB mode
    • mcrypt_create_iv — Creates an initialization vector (IV) from a random source
    • mcrypt_decrypt — Decrypts crypttext with given parameters
    • mcrypt_ecb — Deprecated: Encrypts/decrypts data in ECB mode
    • mcrypt_enc_get_algorithms_name — Returns the name of the opened algorithm
    • mcrypt_enc_get_block_size — Returns the blocksize of the opened algorithm
    • mcrypt_enc_get_iv_size — Returns the size of the IV of the opened algorithm
    • mcrypt_enc_get_key_size — Returns the maximum supported keysize of the opened mode
    • mcrypt_enc_get_modes_name — Returns the name of the opened mode
    • mcrypt_enc_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
    • mcrypt_enc_is_block_algorithm_mode — Checks whether the encryption of the opened mode works on blocks
    • mcrypt_enc_is_block_algorithm — Checks whether the algorithm of the opened mode is a block algorithm
    • mcrypt_enc_is_block_mode — Checks whether the opened mode outputs blocks
    • mcrypt_enc_self_test — Runs a self test on the opened module
    • mcrypt_encrypt — Encrypts plaintext with given parameters
    • mcrypt_generic_deinit — This function deinitializes an encryption module
    • mcrypt_generic_end — This function terminates encryption
    • mcrypt_generic_init — This function initializes all buffers needed for encryption
    • mcrypt_generic — This function encrypts data
    • mcrypt_get_block_size — Gets the block size of the specified cipher
    • mcrypt_get_cipher_name — Gets the name of the specified cipher
    • mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination
    • mcrypt_get_key_size — Gets the key size of the specified cipher
    • mcrypt_list_algorithms — Gets an array of all supported ciphers
    • mcrypt_list_modes — Gets an array of all supported modes
    • mcrypt_module_close — Closes the mcrypt module
    • mcrypt_module_get_algo_block_size — Returns the blocksize of the specified algorithm
    • mcrypt_module_get_algo_key_size — Returns the maximum supported keysize of the opened mode
    • mcrypt_module_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
    • mcrypt_module_is_block_algorithm_mode — Returns if the specified module is a block algorithm or not
    • mcrypt_module_is_block_algorithm — This function checks whether the specified algorithm is a block algorithm
    • mcrypt_module_is_block_mode — Returns if the specified mode outputs blocks or not
    • mcrypt_module_open — Opens the module of the algorithm and the mode to be used
    • mcrypt_module_self_test — This function runs a self test on the specified module
    • mcrypt_ofb — Encrypts/decrypts data in OFB mode
    • mdecrypt_generic — Decrypts data


Einführung

Warnung

Dieses Feature wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und in PHP 7.2.0 REMOVED (entfernt).

Alternativ können die folgenden Features verwendet werden:

  • Sodium (verfügbar von PHP 7.2.0 an)
  • OpenSSL

Hinweis:

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 7.2.0.

Dies ist eine Schnittstelle zur mcrypt Bibliothek, welche eine breite Spanne von Block-Algorythmen wie DES, TripleDES, Blowfish(standard), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 und GOST in den Chiffriermodi CBC, CFB, CFB und ECB unterstützt. Darüber hinaus unterstützt es auch RC6 und IDEA, welche als "nicht frei" gelten. CFB/OFB sind standardmäßig 8bit.


Anforderungen

Diese Funktionen arbeiten mit mcrypt. Um es zu verwenden, laden Sie libmcrypt-x.x.tar.gz von » http://mcrypt.sourceforge.net/ herunter und folgen den beiliegenden Installationsanweisungen.

libmcrypt Version 2.5.6 oder höher wird benötigt.

Windows-Benutzer werden die Bibliothek in den veröffentlichten PHP 5.2 Windows-Binärdateien finden. Die PHP 5.3 Windows-Binärdateien verwenden die statische Version der Mcrypt-Bibliothek, es werden keine DLLs benötigt.

Wenn Sie libmcrypt 2.4.x oder höher verwenden, werden die folgenden zusätzlichen Blockalgorythmen unterstützt: CASE, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT und die folgenden Chiffren: ENIGMA (crypt), PANAMA, RC4 und WAKE. Mit libmcrypt 2.4.x oder höher ist ein weiterer Chiffriermodus verfügbar; nOFB.


Installation

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 7.2.0

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/mcrypt.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Mcrypt-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
mcrypt.algorithms_dir | null | PHP_INI_ALL |
mcrypt.modes_dir | null | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

mcrypt.algorithms_dir string

Das Verzeichnis, das die Algorithmen enthält. Standardmäßig ist dies der beim Kompilieren von libmcrypt angegebene Ordner, typischerweise /usr/local/lib/libmcrypt. Siehe mcrypt_list_algorithms() für weitere Informationen.

mcrypt.modes_dir string

Das Verzeichnis, das die Modi enthält. Standardmäßig ist dies der beim Kompilieren von libmcrypt angegebene Ordner, typischerweise. /usr/local/lib/libmcrypt Siehe mcrypt_list_modes() für weitere Informationen.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

mcrypt_module_open() gibt einen Verschlüsselungs-Deskriptor zurück.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Mcrypt kann in vier Blockchiffriermodi arbeiten: CBC, OFB, CFB und ECB. Wenn es gegen libmcrypt-2.4.x oder höher gelinkt ist, können die Funktionen auch in den Blockchiffriermodi nOFB und STREAM arbeiten. Unten finden Sie eine Liste mit allen unterstützten Verschlüsselungsmodi zusammen mit den für die Verschlüsselung definierten Konstanten. Für eine vollständige Referenz und Diskussionen siehe Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) ist ein Blockchiffremodus, der grundsätzlich für die meisten Zwecke ungeeignet ist. Die Verwendung dieses Modus wird nicht empfohlen.
  • MCRYPT_MODE_CBC (cipher block chaining) ist ein Blockchiffremodus, der erheblich sicherer ist als der ECB-Modus.
  • MCRYPT_MODE_CFB (cipher feedback, im 8bit-Modus) ist ein Stromchiffremodus. Es wird empfohlen, NCFB statt des CFB-Modus zu verwenden.
  • MCRYPT_MODE_OFB (output feedback, im 8bit-Modus) ist ein mit CFB vergleichbarer Stromchiffremodus, kann aber in Anwendungen verwendet werden, in denen Fehlerfortplanzung nicht toleriert werden kann. Es wird empfohlen den NOFB-Modus statt des OFB-Modus zu verwenden.
  • MCRYPT_MODE_NOFB (output feedback, im n-bit-Modus) ist mit dem OFB-Modus vergleichbar, arbeitet aber auf der vollständigen Blockgröße des Algorithmus.
  • MCRYPT_MODE_STREAM ist ein extra Modus zum Einbinden einiger Stream-Algorithmen wie "WAKE" oder "RC4".

Mcrypt unterstützt einige weitere Betriebmodi, für die es keine vordefinierten Konstanten gibt. Sie können genutzt werden, indem eine Zeichenkette anstelle der fehlenden Konstante übergebene wird.

  • "ctr" (counter-Modus) ist ein Stromchiffremodus.
  • "ncfb" (cipher feedback, im n-bit Modus) ist vergleichbar mit dem CFB-Modus, arbeitet aber auf der vollständigen Blockgröße des Algorithmus.

Weitere Modus- und Zufallsgeräte-Konstanten:

MCRYPT_ENCRYPT (int)
MCRYPT_DECRYPT (int)
MCRYPT_DEV_RANDOM (int)
MCRYPT_DEV_URANDOM (int)
MCRYPT_RAND (int)


Mcrypt Chiffren

Hier ist eine Liste der Chiffren, die aktuell von der mcrypt-Erweiterung unterstützt werden. Für eine komplette Liste der unterstützten Chiffren siehe die Definitionen am Ende der Datei mcrypt.h. Im allgemeinen gilt für die mcrypt-2.2.x API, dass auf die Chiffre mit MCRYPT_[chiffrename] zugegriffen werden kann. Diese Konstanten funktionieren ebenfalls mit der libmcrypt-2.4.x und libmcrypt-2.5.x API, jedoch ist es möglich, den Namen der Chiffre als String mit einem Aufruf der Funktion mcrypt_module_open() anzugeben.

  • MCRYPT_3DES
  • MCRYPT_ARCFOUR_IV (nur libmcrypt > 2.4.x)
  • MCRYPT_ARCFOUR (nur libmcrypt > 2.4.x)
  • MCRYPT_BLOWFISH
  • MCRYPT_CAST_128
  • MCRYPT_CAST_256
  • MCRYPT_CRYPT
  • MCRYPT_DES
  • MCRYPT_DES_COMPAT (nur libmcrypt 2.2.x)
  • MCRYPT_ENIGMA (nur libmcrypt > 2.4.x, Aliase für MCRYPT_CRYPT)
  • MCRYPT_GOST
  • MCRYPT_IDEA (nicht frei)
  • MCRYPT_LOKI97 (nur libmcrypt > 2.4.x)
  • MCRYPT_MARS (nur libmcrypt > 2.4.x, nicht frei)
  • MCRYPT_PANAMA (nur libmcrypt > 2.4.x)
  • MCRYPT_RIJNDAEL_128 (nur libmcrypt > 2.4.x)
  • MCRYPT_RIJNDAEL_192 (nur libmcrypt > 2.4.x)
  • MCRYPT_RIJNDAEL_256 (nur libmcrypt > 2.4.x)
  • MCRYPT_RC2
  • MCRYPT_RC4 (nur libmcrypt 2.2.x)
  • MCRYPT_RC6 (nur libmcrypt > 2.4.x)
  • MCRYPT_RC6_128 (nur libmcrypt 2.2.x)
  • MCRYPT_RC6_192 (nur libmcrypt 2.2.x)
  • MCRYPT_RC6_256 (nur libmcrypt 2.2.x)
  • MCRYPT_SAFER64
  • MCRYPT_SAFER128
  • MCRYPT_SAFERPLUS (nur libmcrypt > 2.4.x)
  • MCRYPT_SERPENT(nur libmcrypt > 2.4.x)
  • MCRYPT_SERPENT_128 (nur libmcrypt 2.2.x)
  • MCRYPT_SERPENT_192 (nur libmcrypt 2.2.x)
  • MCRYPT_SERPENT_256 (nur libmcrypt 2.2.x)
  • MCRYPT_SKIPJACK (nur libmcrypt > 2.4.x)
  • MCRYPT_TEAN (nur libmcrypt 2.2.x)
  • MCRYPT_THREEWAY
  • MCRYPT_TRIPLEDES (nur libmcrypt > 2.4.x)
  • MCRYPT_TWOFISH (für ältere mcrypt 2.x Versionen, oder mcrypt > 2.4.x )
  • MCRYPT_TWOFISH128 (TWOFISHxxx sind verfügbar in neueren 2.x Versionen, aber nicht in den 2.4.x Versionen)
  • MCRYPT_TWOFISH192
  • MCRYPT_TWOFISH256
  • MCRYPT_WAKE (nur libmcrypt > 2.4.x)
  • MCRYPT_XTEA (nur libmcrypt > 2.4.x)

Sie müssen (im CFB und OFB Modus) oder können (im CBC Modus) die jeweiligen Chiffrierfunktionen mit einem Initialierungs-Vektor versorgen (initialization vector, IV). Der IV muss einmalig und sowohl für die Verschlüsselung als auch für die Entschlüsselung gleich sein. Bei Daten, die verschlüsselt gespeichert werden, können Sie die Ausgabe einer Funktion des Indexes verwenden, unter welcher die Daten gespeichert werden (z.B. der MD5-Hash des Dateinamens). Alternativ können die den IV zusammen mit den verschlüsselten Daten übermitteln (siehe Kapitel 9.3 aus Applied Cryptography by Schneier (ISBN 0-471-11709-9) für eine Diskussion zu diesem Thema).


Beispiele

Mcrypt kann zur Ver- und Entschlüsselung unter Verwendung der oben erwähnten Chiffren benutzt werden. Wenn Sie mit libmcrypt-2.2.x verknüpft sind, können die vier wichtigen mcrypt-Befehle (mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb(), and mcrypt_ofb()) in beiden Modi, die MCRYPT_ENCRYPT und MCRYPT_DECRYPT genannt werden, operieren.

Wenn Sie mit libmcrypt 2.4.x oder 2.5.x verknüpft sind, sind diese Funktionen immer noch verfügbar, jedoch wird es empfohlen, die erweiterten Funktionen zu verwenden.

Beispiel #1 Verschlüsselt einen übergebenen Wert mit AES mit einem 256-bit Schlüssel unter 2.4.x und höher im Modus CBC

<?php
    $key = hash('sha256', 'Geheimer Schlüssel', true);
    $input = "Treffpunkt: 9 Uhr am geheimen Platz.";

    $td = mcrypt_module_open('rijndael-128', '', 'cbc', '');
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_URANDOM);
    mcrypt_generic_init($td, $key, $iv);
    $encrypted_data = mcrypt_generic($td, $input);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
?>
Dieses Beispiel gibt Ihnen die verschlüsselten Daten als String in $encrypted_data. Für ein vollständiges Beispiel siehe mcrypt_module_open().


Mcrypt Funktionen

Inhaltsverzeichnis

  • mcrypt_cbc — Entschlüsselt/Verschlüsselt Daten im CBC Modus
  • mcrypt_cfb — Encrypts/decrypts data in CFB mode
  • mcrypt_create_iv — Creates an initialization vector (IV) from a random source
  • mcrypt_decrypt — Decrypts crypttext with given parameters
  • mcrypt_ecb — Deprecated: Encrypts/decrypts data in ECB mode
  • mcrypt_enc_get_algorithms_name — Returns the name of the opened algorithm
  • mcrypt_enc_get_block_size — Returns the blocksize of the opened algorithm
  • mcrypt_enc_get_iv_size — Returns the size of the IV of the opened algorithm
  • mcrypt_enc_get_key_size — Returns the maximum supported keysize of the opened mode
  • mcrypt_enc_get_modes_name — Returns the name of the opened mode
  • mcrypt_enc_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
  • mcrypt_enc_is_block_algorithm_mode — Checks whether the encryption of the opened mode works on blocks
  • mcrypt_enc_is_block_algorithm — Checks whether the algorithm of the opened mode is a block algorithm
  • mcrypt_enc_is_block_mode — Checks whether the opened mode outputs blocks
  • mcrypt_enc_self_test — Runs a self test on the opened module
  • mcrypt_encrypt — Encrypts plaintext with given parameters
  • mcrypt_generic_deinit — This function deinitializes an encryption module
  • mcrypt_generic_end — This function terminates encryption
  • mcrypt_generic_init — This function initializes all buffers needed for encryption
  • mcrypt_generic — This function encrypts data
  • mcrypt_get_block_size — Gets the block size of the specified cipher
  • mcrypt_get_cipher_name — Gets the name of the specified cipher
  • mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination
  • mcrypt_get_key_size — Gets the key size of the specified cipher
  • mcrypt_list_algorithms — Gets an array of all supported ciphers
  • mcrypt_list_modes — Gets an array of all supported modes
  • mcrypt_module_close — Closes the mcrypt module
  • mcrypt_module_get_algo_block_size — Returns the blocksize of the specified algorithm
  • mcrypt_module_get_algo_key_size — Returns the maximum supported keysize of the opened mode
  • mcrypt_module_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
  • mcrypt_module_is_block_algorithm_mode — Returns if the specified module is a block algorithm or not
  • mcrypt_module_is_block_algorithm — This function checks whether the specified algorithm is a block algorithm
  • mcrypt_module_is_block_mode — Returns if the specified mode outputs blocks or not
  • mcrypt_module_open — Opens the module of the algorithm and the mode to be used
  • mcrypt_module_self_test — This function runs a self test on the specified module
  • mcrypt_ofb — Encrypts/decrypts data in OFB mode
  • mdecrypt_generic — Decrypts data


Entschlüsselt/Verschlüsselt Daten im CBC Modus

  • « Mcrypt Funktionen
  • mcrypt_cfb »
  • PHP Manual
  • Mcrypt Funktionen
  • Entschlüsselt/Verschlüsselt Daten im CBC Modus

mcrypt_cbc

(PHP 4, PHP 5)

mcrypt_cbc — Entschlüsselt/Verschlüsselt Daten im CBC Modus

Warnung

Diese Funktion wurde in PHP 5.5.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Funktionen verwendet werden:

  • mcrypt_decrypt()
  • mcrypt_encrypt()

Beschreibung

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 = ? ) : string

Der erste Prototyp ist in libmcrypt 2.2.x, der zweite in >=2.4.x. Der mode sollte entweder MCRYPT_ENCRYPT oder MCRYPT_DECRYPT sein.


Encrypts/decrypts data in CFB mode

  • « mcrypt_cbc
  • mcrypt_create_iv »
  • PHP Manual
  • Mcrypt Funktionen
  • Encrypts/decrypts data in CFB mode

mcrypt_cfb

(PHP 4, PHP 5)

mcrypt_cfb — Encrypts/decrypts data in CFB mode

Warnung

Diese Funktion wurde in PHP 5.5.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Funktionen verwendet werden:

  • mcrypt_decrypt()
  • mcrypt_encrypt()

Beschreibung

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 = ? ) : string

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.


Creates an initialization vector (IV) from a random source

  • « mcrypt_cfb
  • mcrypt_decrypt »
  • PHP Manual
  • Mcrypt Funktionen
  • Creates an initialization vector (IV) from a random source

mcrypt_create_iv

(PHP 4, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_create_iv — Creates an initialization vector (IV) from a random source

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und in PHP 7.2.0 REMOVED (entfernt).

Alternativ können die folgenden Funktionen verwendet werden:

  • random_bytes()

Beschreibung

mcrypt_create_iv ( int $size , int $source = MCRYPT_DEV_URANDOM ) : string

Creates an initialization vector (IV) from a random source.

The IV is only meant to give an alternative seed to the encryption routines. This IV does not need to be secret at all, though it can be desirable. You even can send it along with your ciphertext without losing security.

Parameter-Liste

size

The size of the IV.

source

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). Prior to 5.3.0, MCRYPT_RAND was the only one supported on Windows.

Note that the default value of this parameter was MCRYPT_DEV_RANDOM prior to PHP 5.6.0.

Hinweis: Note that MCRYPT_DEV_RANDOM may block until more entropy is available.

Rückgabewerte

Returns the initialization vector, or false on error.

Beispiele

Beispiel #1 mcrypt_create_iv() Example

<?php
    $size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
    $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
?>

Siehe auch

  • » http://www.ciphersbyritter.com/GLOSSARY.HTM#IV
  • » http://www.quadibloc.com/crypto/co0409.htm
  • Chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9)
  • random_bytes() - Generates cryptographically secure pseudo-random bytes


Decrypts crypttext with given parameters

  • « mcrypt_create_iv
  • mcrypt_ecb »
  • PHP Manual
  • Mcrypt Funktionen
  • Decrypts crypttext with given parameters

mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_decrypt — Decrypts crypttext with given parameters

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_decrypt ( string $cipher , string $key , string $data , string $mode , string $iv = ? ) : string|false

Decrypts the data and returns the unencrypted data.

Parameter-Liste

cipher

Eine der Konstanten von MCRYPT_ciphername oder der Name eines Algorithmus als Zeichenkette.

key

The key with which the data was encrypted. If the provided key size is not supported by the cipher, the function will emit a warning and return false

data

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

Eine der Konstanten von MCRYPT_MODE_modename oder eine der folgenden Zeichenketten: "ecb", "cbc", "cfb", "ofb", "nofb" oder "stream".

iv

Wird für die Initialisierung in den Modi CBC, CFB oder OFB und von einigen Algorithmen im STREAM-Modus verwendet. Wird die Länge des angegebenen IV vom Betriebsmodus nicht unterstützt, oder wurde kein IV angegeben aber der Betriebsmodus benötigt einen, so wird diese Funktion eine Warnung ausgeben und false zurückgeben.

Rückgabewerte

Returns the decrypted data as a string Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
5.6.0 | Invalid key and iv sizes are no longer accepted. mcrypt_decrypt() will now throw a warning and return false if the inputs are invalid. Previously keys and IVs were padded with '\0' bytes to the next valid size.

Siehe auch

  • mcrypt_encrypt() - Encrypts plaintext with given parameters


Deprecated: Encrypts/decrypts data in ECB mode

  • « mcrypt_decrypt
  • mcrypt_enc_get_algorithms_name »
  • PHP Manual
  • Mcrypt Funktionen
  • Deprecated: Encrypts/decrypts data in ECB mode

mcrypt_ecb

(PHP 4, PHP 5)

mcrypt_ecb — Deprecated: Encrypts/decrypts data in ECB mode

Warnung

Diese Funktion wurde in PHP 5.5.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Funktionen verwendet werden:

  • mcrypt_decrypt()
  • mcrypt_encrypt()

Beschreibung

mcrypt_ecb ( int $cipher , string $key , string $data , int $mode ) : string
mcrypt_ecb ( string $cipher , string $key , string $data , int $mode , string $iv = ? ) : string

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.


Returns the name of the opened algorithm

  • « mcrypt_ecb
  • mcrypt_enc_get_block_size »
  • PHP Manual
  • Mcrypt Funktionen
  • Returns the name of the opened algorithm

mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_algorithms_name — Returns the name of the opened algorithm

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_enc_get_algorithms_name ( resource $td ) : string

This function returns the name of the algorithm.

Parameter-Liste

td

The encryption descriptor.

Rückgabewerte

Returns the name of the opened algorithm as a string.

Beispiele

Beispiel #1 mcrypt_enc_get_algorithms_name() example

<?php
$td = mcrypt_module_open(MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
echo mcrypt_enc_get_algorithms_name($td). "\n";

$td = mcrypt_module_open('cast-256', '', MCRYPT_MODE_CFB, '');
echo mcrypt_enc_get_algorithms_name($td). "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CAST-256
CAST-256


Returns the blocksize of the opened algorithm

  • « mcrypt_enc_get_algorithms_name
  • mcrypt_enc_get_iv_size »
  • PHP Manual
  • Mcrypt Funktionen
  • Returns the blocksize of the opened algorithm

mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_block_size — Returns the blocksize of the opened algorithm

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_enc_get_block_size ( resource $td ) : int

Gets the blocksize of the opened algorithm.

Parameter-Liste

td

The encryption descriptor.

Rückgabewerte

Returns the block size of the specified algorithm in bytes.


Returns the size of the IV of the opened algorithm

  • « mcrypt_enc_get_block_size
  • mcrypt_enc_get_key_size »
  • PHP Manual
  • Mcrypt Funktionen
  • Returns the size of the IV of the opened algorithm

mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_iv_size — Returns the size of the IV of the opened algorithm

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_enc_get_iv_size ( resource $td ) : int

This function returns the size of the IV of the algorithm specified by the encryption descriptor in bytes. An IV is used in cbc, cfb and ofb modes, and in some algorithms in stream mode.

Parameter-Liste

td

The encryption descriptor.

Rückgabewerte

Returns the size of the IV, or 0 if the IV is ignored by the algorithm.


Returns the maximum supported keysize of the opened mode

  • « mcrypt_enc_get_iv_size
  • mcrypt_enc_get_modes_name »
  • PHP Manual
  • Mcrypt Funktionen
  • Returns the maximum supported keysize of the opened mode

mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_key_size — Returns the maximum supported keysize of the opened mode

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_enc_get_key_size ( resource $td ) : int

Gets the maximum supported key size of the algorithm in bytes.

Parameter-Liste

td

The encryption descriptor.

Rückgabewerte

Returns the maximum supported key size of the algorithm in bytes.


Returns the name of the opened mode

  • « mcrypt_enc_get_key_size
  • mcrypt_enc_get_supported_key_sizes »
  • PHP Manual
  • Mcrypt Funktionen
  • Returns the name of the opened mode

mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_modes_name — Returns the name of the opened mode

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_enc_get_modes_name ( resource $td ) : string

This function returns the name of the mode.

Parameter-Liste

td

The encryption descriptor.

Rückgabewerte

Returns the name as a string.

Beispiele

Beispiel #1 mcrypt_enc_get_modes_name() example

<?php
$td = mcrypt_module_open (MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
echo mcrypt_enc_get_modes_name($td). "\n";

$td = mcrypt_module_open ('cast-256', '', 'ecb', '');
echo mcrypt_enc_get_modes_name($td). "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CFB
ECB


Returns an array with the supported keysizes of the opened algorithm

  • « mcrypt_enc_get_modes_name
  • mcrypt_enc_is_block_algorithm_mode »
  • PHP Manual
  • Mcrypt Funktionen
  • Returns an array with the supported keysizes of the opened algorithm

mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_enc_get_supported_key_sizes ( resource $td ) : array

Gets the supported key sizes of the opened algorithm.

Parameter-Liste

td

The encryption descriptor.

Rückgabewerte

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.

Beispiele

Beispiel #1 mcrypt_enc_get_supported_key_sizes() example

<?php
    $td = mcrypt_module_open('rijndael-256', '', 'ecb', '');
    var_dump(mcrypt_enc_get_supported_key_sizes($td));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  int(16)
  [1]=>
  int(24)
  [2]=>
  int(32)
}


Checks whether the encryption of the opened mode works on blocks

  • « mcrypt_enc_get_supported_key_sizes
  • mcrypt_enc_is_block_algorithm »
  • PHP Manual
  • Mcrypt Funktionen
  • Checks whether the encryption of the opened mode works on blocks

mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_is_block_algorithm_mode — Checks whether the encryption of the opened mode works on blocks

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_enc_is_block_algorithm_mode ( resource $td ) : bool

Tells whether the algorithm of the opened mode works on blocks (e.g. false for stream, and true for cbc, cfb, ofb)..

Parameter-Liste

td

The encryption descriptor.

Rückgabewerte

Returns true if the mode is for use with block algorithms, otherwise it returns false.


Checks whether the algorithm of the opened mode is a block algorithm

  • « mcrypt_enc_is_block_algorithm_mode
  • mcrypt_enc_is_block_mode »
  • PHP Manual
  • Mcrypt Funktionen
  • Checks whether the algorithm of the opened mode is a block algorithm

mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_is_block_algorithm — Checks whether the algorithm of the opened mode is a block algorithm

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_enc_is_block_algorithm ( resource $td ) : bool

Tells whether the algorithm of the opened mode is a block algorithm.

Parameter-Liste

td

The encryption descriptor.

Rückgabewerte

Returns true if the algorithm is a block algorithm or false if it is a stream one.


Checks whether the opened mode outputs blocks

  • « mcrypt_enc_is_block_algorithm
  • mcrypt_enc_self_test »
  • PHP Manual
  • Mcrypt Funktionen
  • Checks whether the opened mode outputs blocks

mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_is_block_mode — Checks whether the opened mode outputs blocks

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_enc_is_block_mode ( resource $td ) : bool

Tells whether the opened mode outputs blocks (e.g. true for cbc and ecb, and false for cfb and stream).

Parameter-Liste

td

The encryption descriptor.

Rückgabewerte

Returns true if the mode outputs blocks of bytes, or false if it outputs just bytes.


Runs a self test on the opened module

  • « mcrypt_enc_is_block_mode
  • mcrypt_encrypt »
  • PHP Manual
  • Mcrypt Funktionen
  • Runs a self test on the opened module

mcrypt_enc_self_test

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_self_test — Runs a self test on the opened module

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_enc_self_test ( resource $td ) : int

This function runs the self test on the algorithm specified by the descriptor td.

Parameter-Liste

td

The encryption descriptor.

Rückgabewerte

Returns 0 on success and a negative Integer on failure.


Encrypts plaintext with given parameters

  • « mcrypt_enc_self_test
  • mcrypt_generic_deinit »
  • PHP Manual
  • Mcrypt Funktionen
  • Encrypts plaintext with given parameters

mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_encrypt — Encrypts plaintext with given parameters

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_encrypt ( string $cipher , string $key , string $data , string $mode , string $iv = ? ) : string|false

Encrypts the data and returns it.

Parameter-Liste

cipher

Eine der Konstanten von MCRYPT_ciphername oder der Name eines Algorithmus als Zeichenkette.

key

The key with which the data will be encrypted. If the provided key size is not supported by the cipher, the function will emit a warning and return false

data

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 than the size of the data that was given by data.

mode

Eine der Konstanten von MCRYPT_MODE_modename oder eine der folgenden Zeichenketten: "ecb", "cbc", "cfb", "ofb", "nofb" oder "stream".

iv

Wird für die Initialisierung in den Modi CBC, CFB oder OFB und von einigen Algorithmen im STREAM-Modus verwendet. Wird die Länge des angegebenen IV vom Betriebsmodus nicht unterstützt, oder wurde kein IV angegeben aber der Betriebsmodus benötigt einen, so wird diese Funktion eine Warnung ausgeben und false zurückgeben.

Rückgabewerte

Returns the encrypted data as a string Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
5.6.0 | Invalid key and iv sizes are no longer accepted. mcrypt_encrypt() will now throw a warning and return false if the inputs are invalid. Previously keys and IVs were padded with '\0' bytes to the next valid size.

Beispiele

Beispiel #1 mcrypt_encrypt() Example

<?php
    # --- ENCRYPTION ---

    # the key should be random binary, use scrypt, bcrypt or PBKDF2 to
    # convert a string into a key
    # key is specified using hexadecimal
    $key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");

    # show key size use either 16, 24 or 32 byte keys for AES-128, 192
    # and 256 respectively
    $key_size =  strlen($key);
    echo "Key size: " . $key_size . "\n";

    $plaintext = "This string was AES-256 / CBC / ZeroBytePadding encrypted.";

    # create a random IV to use with CBC encoding
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    # creates a cipher text compatible with AES (Rijndael block size = 128)
    # to keep the text confidential
    # only suitable for encoded input that never ends with value 00h
    # (because of default zero padding)
    $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,
                                 $plaintext, MCRYPT_MODE_CBC, $iv);

    # prepend the IV for it to be available for decryption
    $ciphertext = $iv . $ciphertext;

    # encode the resulting cipher text so it can be represented by a string
    $ciphertext_base64 = base64_encode($ciphertext);

    echo  $ciphertext_base64 . "\n";

    # === WARNING ===

    # Resulting cipher text has no integrity or authenticity added
    # and is not protected against padding oracle attacks.

    # --- DECRYPTION ---

    $ciphertext_dec = base64_decode($ciphertext_base64);

    # retrieves the IV, iv_size should be created using mcrypt_get_iv_size()
    $iv_dec = substr($ciphertext_dec, 0, $iv_size);

    # retrieves the cipher text (everything except the $iv_size in the front)
    $ciphertext_dec = substr($ciphertext_dec, $iv_size);

    # may remove 00h valued characters from end of plain text
    $plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,
                                    $ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);

    echo  $plaintext_dec . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Key size: 32
ENJW8mS2KaJoNB5E5CoSAAu0xARgsR1bdzFWpEn+poYw45q+73az5kYi4j+0haevext1dGrcW8Qi59txfCBV8BBj3bzRP3dFCp3CPQSJ8eU=
This string was AES-256 / CBC / ZeroBytePadding encrypted.

Siehe auch

  • mcrypt_decrypt() - Decrypts crypttext with given parameters
  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used


This function deinitializes an encryption module

  • « mcrypt_encrypt
  • mcrypt_generic_end »
  • PHP Manual
  • Mcrypt Funktionen
  • This function deinitializes an encryption module

mcrypt_generic_deinit

(PHP 4 >= 4.0.7, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic_deinit — This function deinitializes an encryption module

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_generic_deinit ( resource $td ) : bool

This function terminates encryption specified by the encryption descriptor (td). It clears all buffers, but does not close the module. You need to call mcrypt_module_close() yourself. (But PHP does this for you at the end of the script.)

Parameter-Liste

td

The encryption descriptor.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used
  • mcrypt_generic_init() - This function initializes all buffers needed for encryption


This function terminates encryption

  • « mcrypt_generic_deinit
  • mcrypt_generic_init »
  • PHP Manual
  • Mcrypt Funktionen
  • This function terminates encryption

mcrypt_generic_end

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_end — This function terminates encryption

Warnung

Diese Funktion wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Funktionen verwendet werden:

  • mcrypt_generic_deinit()

Beschreibung

mcrypt_generic_end ( resource $td ) : bool

Warnung

mcrypt_generic_deinit() should be used instead of this function, as it can cause crashes when used with mcrypt_module_close() due to multiple buffer frees.

This function terminates encryption specified by the encryption descriptor (td). Actually it clears all buffers, and closes all the modules used. Returns false on error, or true on success.


This function initializes all buffers needed for encryption

  • « mcrypt_generic_end
  • mcrypt_generic »
  • PHP Manual
  • Mcrypt Funktionen
  • This function initializes all buffers needed for encryption

mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic_init — This function initializes all buffers needed for encryption

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_generic_init ( resource $td , string $key , string $iv ) : int

You need to call this function before every call to mcrypt_generic() or mdecrypt_generic().

Parameter-Liste

td

The encryption descriptor.

key

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.

iv

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.

Rückgabewerte

The function returns a negative value on error: -3 when the key length was incorrect, -4 when there was a memory allocation problem and any other return value is an unknown error. If an error occurs a warning will be displayed accordingly. false is returned if incorrect parameters were passed.

Siehe auch

  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used


This function encrypts data

  • « mcrypt_generic_init
  • mcrypt_get_block_size »
  • PHP Manual
  • Mcrypt Funktionen
  • This function encrypts data

mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic — This function encrypts data

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_generic ( resource $td , string $data ) : string

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 than the input, due to the padding of the data.

If you want to store the encrypted data in a database make sure to store the entire string as returned by mcrypt_generic, or the string will not entirely decrypt properly. If your original string is 10 characters long and the block size is 8 (use mcrypt_enc_get_block_size() to determine the blocksize), you would need at least 16 characters in your database field. Note the string returned by mdecrypt_generic() will be 16 characters as well...use rtrim($str, "\0") to remove the padding.

If you are for example storing the data in a MySQL database remember that varchar fields automatically have trailing spaces removed during insertion. As encrypted data can end in a space (ASCII 32), the data will be damaged by this removal. Store data in a tinyblob/tinytext (or larger) field instead.

Parameter-Liste

td

The encryption descriptor.

The encryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

data

The data to encrypt.

Rückgabewerte

Returns the encrypted data.

Siehe auch

  • mdecrypt_generic() - Decrypts data
  • mcrypt_generic_init() - This function initializes all buffers needed for encryption
  • mcrypt_generic_deinit() - This function deinitializes an encryption module


Gets the block size of the specified cipher

  • « mcrypt_generic
  • mcrypt_get_cipher_name »
  • PHP Manual
  • Mcrypt Funktionen
  • Gets the block size of the specified cipher

mcrypt_get_block_size

(PHP 4, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_block_size — Gets the block size of the specified cipher

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_get_block_size ( int $cipher ) : int|false
mcrypt_get_block_size ( string $cipher , string $mode ) : int|false

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_block_size() is used to get the size of a block of the specified cipher (in combination with an encryption mode).

It is more useful to use the mcrypt_enc_get_block_size() function as this uses the resource returned by mcrypt_module_open().

Parameter-Liste

cipher

Eine der Konstanten von MCRYPT_ciphername oder der Name eines Algorithmus als Zeichenkette.

mode

Eine der Konstanten von MCRYPT_MODE_modename oder eine der folgenden Zeichenketten: "ecb", "cbc", "cfb", "ofb", "nofb" oder "stream".

Rückgabewerte

Returns the algorithm block size in bytes Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 mcrypt_get_block_size() example

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x.

<?php

echo mcrypt_get_block_size('tripledes', 'ecb'); // 8

?>

Siehe auch

  • mcrypt_get_key_size() - Gets the key size of the specified cipher
  • mcrypt_enc_get_block_size() - Returns the blocksize of the opened algorithm
  • mcrypt_encrypt() - Encrypts plaintext with given parameters


Gets the name of the specified cipher

  • « mcrypt_get_block_size
  • mcrypt_get_iv_size »
  • PHP Manual
  • Mcrypt Funktionen
  • Gets the name of the specified cipher

mcrypt_get_cipher_name

(PHP 4, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_cipher_name — Gets the name of the specified cipher

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_get_cipher_name ( int $cipher ) : string
mcrypt_get_cipher_name ( string $cipher ) : string

mcrypt_get_cipher_name() is used to get the name of the specified cipher.

mcrypt_get_cipher_name() takes the cipher number as an argument (libmcrypt 2.2.x) or takes the cipher name as an argument (libmcrypt 2.4.x or higher) and returns the name of the cipher or false, if the cipher does not exist.

Parameter-Liste

cipher

Eine der Konstanten von MCRYPT_ciphername oder der Name eines Algorithmus als Zeichenkette.

Rückgabewerte

This function returns the name of the cipher or false if the cipher does not exist.

Beispiele

Beispiel #1 mcrypt_get_cipher_name() Example

<?php
   $cipher = MCRYPT_TripleDES;

   echo mcrypt_get_cipher_name($cipher);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3DES


Returns the size of the IV belonging to a specific cipher/mode combination

  • « mcrypt_get_cipher_name
  • mcrypt_get_key_size »
  • PHP Manual
  • Mcrypt Funktionen
  • Returns the size of the IV belonging to a specific cipher/mode combination

mcrypt_get_iv_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_get_iv_size ( string $cipher , string $mode ) : int

Gets the size of the IV belonging to a specific cipher/mode combination.

It is more useful to use the mcrypt_enc_get_iv_size() function as this uses the resource returned by mcrypt_module_open().

Parameter-Liste

cipher

Eine der Konstanten von MCRYPT_ciphername oder der Name eines Algorithmus als Zeichenkette.

mode

Eine der Konstanten von MCRYPT_MODE_modename oder eine der folgenden Zeichenketten: "ecb", "cbc", "cfb", "ofb", "nofb" oder "stream".

The IV is ignored in ECB mode as this mode does not require it. You will need to have the same IV (think: starting point) both at encryption and decryption stages, otherwise your encryption will fail.

Rückgabewerte

Returns the size of the Initialization Vector (IV) in bytes. On error the function returns false. If the IV is ignored in the specified cipher/mode combination zero is returned.

Beispiele

Beispiel #1 mcrypt_get_iv_size() Example

<?php
    echo mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB) . "\n";

    echo mcrypt_get_iv_size('des', 'ecb') . "\n";
?>

Siehe auch

  • mcrypt_get_block_size() - Gets the block size of the specified cipher
  • mcrypt_enc_get_iv_size() - Returns the size of the IV of the opened algorithm
  • mcrypt_create_iv() - Creates an initialization vector (IV) from a random source


Gets the key size of the specified cipher

  • « mcrypt_get_iv_size
  • mcrypt_list_algorithms »
  • PHP Manual
  • Mcrypt Funktionen
  • Gets the key size of the specified cipher

mcrypt_get_key_size

(PHP 4, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_key_size — Gets the key size of the specified cipher

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_get_key_size ( int $cipher ) : int|false
mcrypt_get_key_size ( string $cipher , string $mode ) : int|false

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_key_size() is used to get the size of a key of the specified cipher (in combination with an encryption mode).

It is more useful to use the mcrypt_enc_get_key_size() function as this uses the resource returned by mcrypt_module_open().

Parameter-Liste

cipher

Eine der Konstanten von MCRYPT_ciphername oder der Name eines Algorithmus als Zeichenkette.

mode

Eine der Konstanten von MCRYPT_MODE_modename oder eine der folgenden Zeichenketten: "ecb", "cbc", "cfb", "ofb", "nofb" oder "stream".

Rückgabewerte

Returns the maximum supported key size of the algorithm in bytes Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 mcrypt_get_key_size() Example

<?php
    echo mcrypt_get_key_size('tripledes', 'ecb');
?>

The example above shows how to use this function when linked against libmcrypt 2.4.x or 2.5.x.

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

24

Siehe auch

  • mcrypt_get_block_size() - Gets the block size of the specified cipher
  • mcrypt_enc_get_key_size() - Returns the maximum supported keysize of the opened mode
  • mcrypt_encrypt() - Encrypts plaintext with given parameters


Gets an array of all supported ciphers

  • « mcrypt_get_key_size
  • mcrypt_list_modes »
  • PHP Manual
  • Mcrypt Funktionen
  • Gets an array of all supported ciphers

mcrypt_list_algorithms

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_list_algorithms — Gets an array of all supported ciphers

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_list_algorithms ( string $lib_dir = ini_get("mcrypt.algorithms_dir") ) : array

Gets the list of all supported algorithms in the lib_dir parameter.

Parameter-Liste

lib_dir

Specifies the directory where all algorithms are located. If not specified, the value of the mcrypt.algorithms_dir php.ini directive is used.

Rückgabewerte

Returns an array with all the supported algorithms.

Beispiele

Beispiel #1 mcrypt_list_algorithms() Example

<?php
$algorithms = mcrypt_list_algorithms();
print_r($algorithms);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => cast-128
    [1] => gost
    [2] => rijndael-128
    [3] => twofish
    [4] => arcfour
    [5] => cast-256
    [6] => loki97
    [7] => rijndael-192
    [8] => saferplus
    [9] => wake
    [10] => blowfish-compat
    [11] => des
    [12] => rijndael-256
    [13] => serpent
    [14] => xtea
    [15] => blowfish
    [16] => enigma
    [17] => rc2
    [18] => tripledes
)


Gets an array of all supported modes

  • « mcrypt_list_algorithms
  • mcrypt_module_close »
  • PHP Manual
  • Mcrypt Funktionen
  • Gets an array of all supported modes

mcrypt_list_modes

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_list_modes — Gets an array of all supported modes

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_list_modes ( string $lib_dir = ini_get("mcrypt.modes_dir") ) : array

Gets the list of all supported modes in the lib_dir parameter.

Parameter-Liste

lib_dir

Specifies the directory where all modes are located. If not specified, the value of the mcrypt.modes_dir php.ini directive is used.

Rückgabewerte

Returns an array with all the supported modes.

Beispiele

Beispiel #1 mcrypt_list_modes() Example

<?php
    $modes = mcrypt_list_modes();

    foreach ($modes as $mode) {
        echo "$mode <br />\n";
    }
?>

The example above will produce a list with all supported algorithms in the default mode directory. If it is not set with the mcrypt.modes_dir php.ini directive, the default directory of mcrypt is used (which is /usr/local/lib/libmcrypt).


Closes the mcrypt module

  • « mcrypt_list_modes
  • mcrypt_module_get_algo_block_size »
  • PHP Manual
  • Mcrypt Funktionen
  • Closes the mcrypt module

mcrypt_module_close

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_close — Closes the mcrypt module

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_module_close ( resource $td ) : bool

Closes the specified encryption handle.

Parameter-Liste

td

The encryption descriptor.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used


Returns the blocksize of the specified algorithm

  • « mcrypt_module_close
  • mcrypt_module_get_algo_key_size »
  • PHP Manual
  • Mcrypt Funktionen
  • Returns the blocksize of the specified algorithm

mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_get_algo_block_size — Returns the blocksize of the specified algorithm

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_module_get_algo_block_size ( string $algorithm , string $lib_dir = ? ) : int

Gets the blocksize of the specified algorithm.

Parameter-Liste

algorithm

The algorithm name.

lib_dir

This optional parameter can contain the location where the mode module is on the system.

Rückgabewerte

Returns the block size of the algorithm specified in bytes.


Returns the maximum supported keysize of the opened mode

  • « mcrypt_module_get_algo_block_size
  • mcrypt_module_get_supported_key_sizes »
  • PHP Manual
  • Mcrypt Funktionen
  • Returns the maximum supported keysize of the opened mode

mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_get_algo_key_size — Returns the maximum supported keysize of the opened mode

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_module_get_algo_key_size ( string $algorithm , string $lib_dir = ? ) : int

Gets the maximum supported keysize of the opened mode.

Parameter-Liste

algorithm

The algorithm name.

lib_dir

This optional parameter can contain the location where the mode module is on the system.

Rückgabewerte

This function returns the maximum supported key size of the algorithm specified in bytes.


Returns an array with the supported keysizes of the opened algorithm

  • « mcrypt_module_get_algo_key_size
  • mcrypt_module_is_block_algorithm_mode »
  • PHP Manual
  • Mcrypt Funktionen
  • Returns an array with the supported keysizes of the opened algorithm

mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_module_get_supported_key_sizes ( string $algorithm , string $lib_dir = ? ) : array

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.

Parameter-Liste

algorithm

The algorithm to be used.

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Rückgabewerte

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.

Siehe auch

  • mcrypt_enc_get_supported_key_sizes() - Returns an array with the supported keysizes of the opened algorithm


Returns if the specified module is a block algorithm or not

  • « mcrypt_module_get_supported_key_sizes
  • mcrypt_module_is_block_algorithm »
  • PHP Manual
  • Mcrypt Funktionen
  • Returns if the specified module is a block algorithm or not

mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_is_block_algorithm_mode — Returns if the specified module is a block algorithm or not

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_module_is_block_algorithm_mode ( string $mode , string $lib_dir = ? ) : bool

This function returns true if the mode is for use with block algorithms, otherwise it returns false. (e.g. false for stream, and true for cbc, cfb, ofb).

Parameter-Liste

mode

The mode to check.

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Rückgabewerte

This function returns true if the mode is for use with block algorithms, otherwise it returns false. (e.g. false for stream, and true for cbc, cfb, ofb).


This function checks whether the specified algorithm is a block algorithm

  • « mcrypt_module_is_block_algorithm_mode
  • mcrypt_module_is_block_mode »
  • PHP Manual
  • Mcrypt Funktionen
  • This function checks whether the specified algorithm is a block algorithm

mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_is_block_algorithm — This function checks whether the specified algorithm is a block algorithm

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_module_is_block_algorithm ( string $algorithm , string $lib_dir = ? ) : bool

This function returns true if the specified algorithm is a block algorithm, or false if it is a stream one.

Parameter-Liste

algorithm

The algorithm to check.

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Rückgabewerte

This function returns true if the specified algorithm is a block algorithm, or false if it is a stream one.


Returns if the specified mode outputs blocks or not

  • « mcrypt_module_is_block_algorithm
  • mcrypt_module_open »
  • PHP Manual
  • Mcrypt Funktionen
  • Returns if the specified mode outputs blocks or not

mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_is_block_mode — Returns if the specified mode outputs blocks or not

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_module_is_block_mode ( string $mode , string $lib_dir = ? ) : bool

This function returns true if the mode outputs blocks of bytes or false if it outputs just bytes. (e.g. true for cbc and ecb, and false for cfb and stream).

Parameter-Liste

mode

Eine der Konstanten von MCRYPT_MODE_modename oder eine der folgenden Zeichenketten: "ecb", "cbc", "cfb", "ofb", "nofb" oder "stream".

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Rückgabewerte

This function returns true if the mode outputs blocks of bytes or false if it outputs just bytes. (e.g. true for cbc and ecb, and false for cfb and stream).


Opens the module of the algorithm and the mode to be used

  • « mcrypt_module_is_block_mode
  • mcrypt_module_self_test »
  • PHP Manual
  • Mcrypt Funktionen
  • Opens the module of the algorithm and the mode to be used

mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_open — Opens the module of the algorithm and the mode to be used

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_module_open ( string $algorithm , string $algorithm_directory , string $mode , string $mode_directory ) : resource

This function opens the module of the algorithm and the mode to be used. The name of the algorithm is specified in algorithm, e.g. "twofish" or is one of the MCRYPT_ciphername constants. The module is closed by calling mcrypt_module_close().

Parameter-Liste

algorithm

Eine der Konstanten von MCRYPT_ciphername oder der Name eines Algorithmus als Zeichenkette.

algorithm_directory

The algorithm_directory parameter is used to locate the encryption module. When you supply a directory name, it is used. When you set it to an empty string (""), the value set by the mcrypt.algorithms_dir php.ini directive is used. When it is not set, the default directory that is used is the one that was compiled into libmcrypt (usually /usr/local/lib/libmcrypt).

mode

Eine der Konstanten von MCRYPT_MODE_modename oder eine der folgenden Zeichenketten: "ecb", "cbc", "cfb", "ofb", "nofb" oder "stream".

mode_directory

The mode_directory parameter is used to locate the encryption module. When you supply a directory name, it is used. When you set it to an empty string (""), the value set by the mcrypt.modes_dir php.ini directive is used. When it is not set, the default directory that is used is the one that was compiled-in into libmcrypt (usually /usr/local/lib/libmcrypt).

Rückgabewerte

Normally it returns an encryption descriptor, or false on error.

Beispiele

Beispiel #1 mcrypt_module_open() Examples

<?php
    $td = mcrypt_module_open(MCRYPT_DES, '',
        MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');

    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
?>

The first line in the example above will try to open the DES cipher from the default directory and the ECB mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

Beispiel #2 Using mcrypt_module_open() in encryption

<?php
    /* Open the cipher */
    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');

    /* Create the IV and determine the keysize length, use MCRYPT_RAND
     * on Windows instead */
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
    $ks = mcrypt_enc_get_key_size($td);

    /* Create key */
    $key = substr(md5('very secret key'), 0, $ks);

    /* Intialize encryption */
    mcrypt_generic_init($td, $key, $iv);

    /* Encrypt data */
    $encrypted = mcrypt_generic($td, 'This is very important data');

    /* Terminate encryption handler */
    mcrypt_generic_deinit($td);

    /* Initialize encryption module for decryption */
    mcrypt_generic_init($td, $key, $iv);

    /* Decrypt encrypted string */
    $decrypted = mdecrypt_generic($td, $encrypted);

    /* Terminate decryption handle and close module */
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);

    /* Show string */
    echo trim($decrypted) . "\n";
?>

Siehe auch

  • mcrypt_module_close() - Closes the mcrypt module
  • mcrypt_generic() - This function encrypts data
  • mdecrypt_generic() - Decrypts data
  • mcrypt_generic_init() - This function initializes all buffers needed for encryption
  • mcrypt_generic_deinit() - This function deinitializes an encryption module


This function runs a self test on the specified module

  • « mcrypt_module_open
  • mcrypt_ofb »
  • PHP Manual
  • Mcrypt Funktionen
  • This function runs a self test on the specified module

mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_self_test — This function runs a self test on the specified module

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mcrypt_module_self_test ( string $algorithm , string $lib_dir = ? ) : bool

This function runs the self test on the algorithm specified.

Parameter-Liste

algorithm

Eine der Konstanten von MCRYPT_ciphername oder der Name eines Algorithmus als Zeichenkette.

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Rückgabewerte

The function returns true if the self test succeeds, or false when it fails.

Beispiele

Beispiel #1 mcrypt_module_self_test() example

<?php
var_dump(mcrypt_module_self_test(MCRYPT_RIJNDAEL_128)) . "\n";
var_dump(mcrypt_module_self_test(MCRYPT_BOGUS_CYPHER));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)


Encrypts/decrypts data in OFB mode

  • « mcrypt_module_self_test
  • mdecrypt_generic »
  • PHP Manual
  • Mcrypt Funktionen
  • Encrypts/decrypts data in OFB mode

mcrypt_ofb

(PHP 4, PHP 5)

mcrypt_ofb — Encrypts/decrypts data in OFB mode

Warnung

Diese Funktion wurde in PHP 5.5.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Funktionen verwendet werden:

  • mcrypt_decrypt()
  • mcrypt_encrypt()

Beschreibung

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 = ? ) : string

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.


Decrypts data

  • « mcrypt_ofb
  • Mhash »
  • PHP Manual
  • Mcrypt Funktionen
  • Decrypts data

mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mdecrypt_generic — Decrypts data

Warnung

Diese Funktion wurde in PHP 7.1.0 als DEPRECATED (veraltet) markiert und ist seit PHP 7.2.0 ENTFERNT (entfernt).

Beschreibung

mdecrypt_generic ( resource $td , string $data ) : string

This function decrypts data. Note that the length of the returned string can in fact be longer than the unencrypted string, due to the padding of the data.

Parameter-Liste

td

An encryption descriptor returned by mcrypt_module_open()

data

Encrypted data.

Beispiele

Beispiel #1 mdecrypt_generic() Example

<?php
    /* Data */
    $key = 'this is a very long key, even too long for the cipher';
    $plain_text = 'very important data';

    /* Open module, and create IV */
    $td = mcrypt_module_open('des', '', 'ecb', '');
    $key = substr($key, 0, mcrypt_enc_get_key_size($td));
    $iv_size = mcrypt_enc_get_iv_size($td);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    /* Initialize encryption handle */
    if (mcrypt_generic_init($td, $key, $iv) != -1) {

        /* Encrypt data */
        $c_t = mcrypt_generic($td, $plain_text);
        mcrypt_generic_deinit($td);

        /* Reinitialize buffers for decryption */
        mcrypt_generic_init($td, $key, $iv);
        $p_t = mdecrypt_generic($td, $c_t);

        /* Clean up */
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
    }

    if (strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
        echo "ok\n";
    } else {
        echo "error\n";
    }
?>

The example above shows how to check if the data before the encryption is the same as the data after the decryption. It is very important to reinitialize the encryption buffer with mcrypt_generic_init() before you try to decrypt the data.

The decryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

Siehe auch

  • mcrypt_generic() - This function encrypts data
  • mcrypt_generic_init() - This function initializes all buffers needed for encryption
  • mcrypt_generic_deinit() - This function deinitializes an encryption module


Mhash

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Mhash Funktionen
    • mhash_count — Gibt die höchstmöglichen Hash-ID zurück
    • mhash_get_block_size — Liefert die Blockgröße des übergebenen Hashes
    • mhash_get_hash_name — Liefert den Namen eines Hashes
    • mhash_keygen_s2k — Generates a key
    • mhash — Berechnet einen Hash


Einführung

These functions are intended to work with » mhash. Mhash can be used to create checksums, message digests, message authentication codes, and more.

This is an interface to the mhash library. Mhash supports a wide variety of hash algorithms such as MD5, SHA1, GOST, and many others. For a complete list of supported hashes, refer to the constants page. The general rule is that you can access the hash algorithm from PHP with MHASH_hashname. For example, to access TIGER you use the PHP constant MHASH_TIGER.

Hinweis:

This extension is obsoleted by Hash.

Hinweis:

As of PHP 7.0.0 the Mhash extension has been fully integrated into the Hash extension. Therefore, it is no longer possible to detect Mhash support with extension_loaded(); use function_exists() instead. Furthermore, Mhash is no longer reported by get_loaded_extensions() and related features.


Anforderungen

To use it, download the mhash distribution from » its web site and follow the included installation instructions.


Installation

You need to compile PHP with the --with-mhash[=DIR] parameter to enable this extension. DIR is the mhash installation directory.

As of PHP 5.3.0, the mhash extension is emulated thru the Hash extension. This makes the mhash installation directory have no effect, and requires the hash extension enabled to make the mhash support available.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Here is a list of hashes which are currently supported by mhash. If a hash is not listed here, but it is listed in the mhash documentation as supported, you can safely assume that this documentation is outdated.

  • MHASH_ADLER32
  • MHASH_CRC32
  • MHASH_CRC32B
  • MHASH_GOST
  • MHASH_HAVAL128
  • MHASH_HAVAL160
  • MHASH_HAVAL192
  • MHASH_HAVAL224
  • MHASH_HAVAL256
  • MHASH_MD2
  • MHASH_MD4
  • MHASH_MD5
  • MHASH_RIPEMD128
  • MHASH_RIPEMD256
  • MHASH_RIPEMD320
  • MHASH_SHA1
  • MHASH_SHA192
  • MHASH_SHA224
  • MHASH_SHA256
  • MHASH_SHA384
  • MHASH_SHA512
  • MHASH_SNEFRU128
  • MHASH_SNEFRU256
  • MHASH_TIGER
  • MHASH_TIGER128
  • MHASH_TIGER160
  • MHASH_WHIRLPOOL


Beispiele

Beispiel #1 Computes the MD5 digest and hmac and print it out as hex

<?php
$input = "what do ya want for nothing?";
$hash = mhash(MHASH_MD5, $input);
echo "The hash is " . bin2hex($hash) . "<br />\n";
$hash = mhash(MHASH_MD5, $input, "Jefe");
echo "The hmac is " . bin2hex($hash) . "<br />\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The hash is d03cb659cbf9192dcd066272249f8412
The hmac is 750c783e6ab0b503eaa86e310a5db738


Mhash Funktionen

Inhaltsverzeichnis

  • mhash_count — Gibt die höchstmöglichen Hash-ID zurück
  • mhash_get_block_size — Liefert die Blockgröße des übergebenen Hashes
  • mhash_get_hash_name — Liefert den Namen eines Hashes
  • mhash_keygen_s2k — Generates a key
  • mhash — Berechnet einen Hash


Gibt die höchstmöglichen Hash-ID zurück

  • « Mhash Funktionen
  • mhash_get_block_size »
  • PHP Manual
  • Mhash Funktionen
  • Gibt die höchstmöglichen Hash-ID zurück

mhash_count

(PHP 4, PHP 5, PHP 7, PHP 8)

mhash_count — Gibt die höchstmöglichen Hash-ID zurück

Beschreibung

mhash_count ( ) : int

mhash_count() gibt die höchste verfügbare Hash-ID zurück.

Rückgabewerte

Gibt die höchste verfügbare Hash-ID zurück. Hashes sind von 0 bis zu der Hash-ID nummeriert.

Beispiele

Beispiel #1 Alle Hashes durchlaufen

<?php

$nr = mhash_count();

for ($i = 0; $i <= $nr; $i++) {
    echo sprintf ("Die Blockgröße von %s ist %d\n",
        mhash_get_hash_name ($i),
        mhash_get_block_size ($i));
}
?>


Liefert die Blockgröße des übergebenen Hashes

  • « mhash_count
  • mhash_get_hash_name »
  • PHP Manual
  • Mhash Funktionen
  • Liefert die Blockgröße des übergebenen Hashes

mhash_get_block_size

(PHP 4, PHP 5, PHP 7, PHP 8)

mhash_get_block_size — Liefert die Blockgröße des übergebenen Hashes

Beschreibung

mhash_get_block_size ( int $algo ) : int|false

Gibt die Blockgröße des übergebenen algo zurück.

Parameter-Liste

algo

Die Hashkennung. Eine der MHASH_hashname-Konstanten.

Rückgabewerte

Gibt die Größe in Bytes zurück oder false, wenn der algo nicht existiert.

Beispiele

Beispiel #1 mhash_get_block_size()-Beispiel

<?php

echo mhash_get_block_size(MHASH_MD5); // 16

?>


Liefert den Namen eines Hashes

  • « mhash_get_block_size
  • mhash_keygen_s2k »
  • PHP Manual
  • Mhash Funktionen
  • Liefert den Namen eines Hashes

mhash_get_hash_name

(PHP 4, PHP 5, PHP 7, PHP 8)

mhash_get_hash_name — Liefert den Namen eines Hashes

Beschreibung

mhash_get_hash_name ( int $algo ) : string|false

Gibt den Namen des angegebenen algo zurück.

Parameter-Liste

algo

Die Hashkennung. Eine der MHASH_hashname-Konstanten.

Rückgabewerte

Gibt den Namen des Hashes zurück oder false, wenn der Hash nicht existiert.

Beispiele

Beispiel #1 mhash_get_hash_name()-Beispiel

<?php

echo mhash_get_hash_name(MHASH_MD5); // MD5

?>


Generates a key

  • « mhash_get_hash_name
  • mhash »
  • PHP Manual
  • Mhash Funktionen
  • Generates a key

mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

mhash_keygen_s2k — Generates a key

Beschreibung

mhash_keygen_s2k ( int $algo , string $password , string $salt , int $length ) : string|false

Generates a key according to the given algo, using an user provided password.

This is the Salted S2K algorithm as specified in the OpenPGP document (» RFC 2440).

Keep in mind that user supplied passwords are not really suitable to be used as keys in cryptographic algorithms, since users normally choose keys they can write on keyboard. These passwords use only 6 to 7 bits per character (or less). It is highly recommended to use some kind of transformation (like this function) to the user supplied key.

Parameter-Liste

algo

The hash ID used to create the key. One of the MHASH_hashname constants.

password

An user supplied password.

salt

Must be different and random enough for every key you generate in order to create different keys. Because salt must be known when you check the keys, it is a good idea to append the key to it. Salt has a fixed length of 8 bytes and will be padded with zeros if you supply less bytes.

length

The key length, in bytes.

Rückgabewerte

Returns the generated key as a string, or false on error.


Berechnet einen Hash

  • « mhash_keygen_s2k
  • OpenSSL »
  • PHP Manual
  • Mhash Funktionen
  • Berechnet einen Hash

mhash

(PHP 4, PHP 5, PHP 7, PHP 8)

mhash — Berechnet einen Hash

Beschreibung

mhash ( int $algo , string $data , string|null $key = null ) : string|false

mhash() wendet eine Hash-Funktion abhängig von algo auf data an.

Parameter-Liste

algo

Die Hashkennung. Eine der MHASH_hashname-Konstanten.

data

Die Nutzereingabe als Zeichenkette.

key

Wenn angegeben, wird die Funktion den resultierenden HMAC statt des Hashs zurückgeben. HMAC ist ein Keyed-Hashing für Nachrichtenauthentifizierung, oder anders ausgedrückt, ein Message-Digest, der vom angegeben Schlüssel abhängt. Nicht alle von MHash unterstützten Algorithmen können im HMAC-Modus verwendet werden.

Rückgabewerte

Gibt den resultieren Hash (auch Digest genannt) oder HMAC als Zeichenkette zurück oder false im Fehlerfall.

Changelog

Version | Beschreibung
8.0.0 | key ist nun ein Nullable-Typ.


OpenSSL

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
    • Zweckprüfende Flags
    • Padding-Flags für asymmetrische Verschlüsselung
    • Key types
    • PKCS7-Flags/Konstanten
    • CMS-Flags/Konstanten
    • Signatur-Algorithmen
    • Ciphers
    • Versions-Konstanten
    • Konstanten zur Identifizierung des Servernamens (Server Name Indication)
    • Andere Konstanten
  • Schlüssel-/Zertifikatparameter
  • Überprüfung von Zertifikaten
  • OpenSSL-Funktionen
    • openssl_cipher_iv_length — Gets the cipher iv length
    • openssl_cms_decrypt — Decrypt a CMS message
    • openssl_cms_encrypt — Encrypt a CMS message
    • openssl_cms_read — Export the CMS file to an array of PEM certificates
    • openssl_cms_sign — Sign a file
    • openssl_cms_verify — Verify a CMS signature
    • openssl_csr_export_to_file — Exportiert einen CSR in eine Datei
    • openssl_csr_export — Exportiert einen CSR als Zeichenkette
    • openssl_csr_get_public_key — Liefert den öffentlichen Schlüssel eines CSR
    • openssl_csr_get_subject — Liefert das Subjekt eines CSR
    • openssl_csr_new — Erzeugt einen CSR
    • openssl_csr_sign — Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat
    • openssl_decrypt — Decrypts data
    • openssl_dh_compute_key — Computes shared secret for public value of remote DH public key and local DH key
    • openssl_digest — Computes a digest
    • openssl_encrypt — Verschlüsselt Daten
    • openssl_error_string — Liefert eine OpenSSL-Fehlermeldung
    • openssl_free_key — Gibt eine Schlüssel-Ressource frei
    • openssl_get_cert_locations — Retrieve the available certificate locations
    • openssl_get_cipher_methods — Gets available cipher methods
    • openssl_get_curve_names — Gets list of available curve names for ECC
    • openssl_get_md_methods — Gets available digest methods
    • openssl_get_privatekey — Alias von openssl_pkey_get_private
    • openssl_get_publickey — Alias von openssl_pkey_get_public
    • openssl_open — Öffnet versiegelte Daten
    • openssl_pbkdf2 — Generates a PKCS5 v2 PBKDF2 string
    • openssl_pkcs12_export_to_file — Exportiert in eine PKCS#12-kompatible Zertifikats-Datei
    • openssl_pkcs12_export — Exportiert eine PKCS#12-kompatible Zertifikats-Datei in eine Variable
    • openssl_pkcs12_read — Parst eine PKCS#12-Zertifikats-Datei in ein Array
    • openssl_pkcs7_decrypt — Entschlüsselt eine S/MIME-verschlüsselte Nachricht
    • openssl_pkcs7_encrypt — Verschlüsselt eine S/MIME-Nachricht
    • openssl_pkcs7_read — Export the PKCS7 file to an array of PEM certificates
    • openssl_pkcs7_sign — Signiert eine S/MIME-Nachricht
    • openssl_pkcs7_verify — Überprüft die Signatur einer mit S/MIME signierten Nachricht
    • openssl_pkey_derive — Computes shared secret for public value of remote and local DH or ECDH key
    • openssl_pkey_export_to_file — Speichert einen Schlüssel in einem exportierbaren Format in einer Datei
    • openssl_pkey_export — Speichert ein exportierbares Format eines Schlüssels in einer Zeichenkette
    • openssl_pkey_free — Gibt einen privaten Schlüssel frei
    • openssl_pkey_get_details — Liefert ein Array mit Schlüssel-Details
    • openssl_pkey_get_private — Liefert einen privaten Schlüssel
    • openssl_pkey_get_public — Extrahiert einen öffentlichen Schlüssel aus einem Zertifikat und bereitet diesen zur Verwendung vor
    • openssl_pkey_new — Erzeugt einen neuen privaten Schlüssel
    • openssl_private_decrypt — Entschlüsselt Daten mit einem privaten Schlüssel
    • openssl_private_encrypt — Verschlüsselt Daten mit einem privaten Schlüssel
    • openssl_public_decrypt — Entschlüsselt Daten mit einem öffentlichen Schlüssel
    • openssl_public_encrypt — Verschlüsselt Daten mit einem öffentlichen Schlüssel
    • openssl_random_pseudo_bytes — Generate a pseudo-random string of bytes
    • openssl_seal — Versiegelt (verschlüsselt) Daten
    • openssl_sign — Erzeugt eine Signatur
    • openssl_spki_export_challenge — Exports the challenge associated with a signed public key and challenge
    • openssl_spki_export — Exports a valid PEM formatted public key signed public key and challenge
    • openssl_spki_new — Generate a new signed public key and challenge
    • openssl_spki_verify — Verifies a signed public key and challenge
    • openssl_verify — Überprüft eine Signatur
    • openssl_x509_check_private_key — Überprüft, ob ein privater Schlüssel zu einem Zertifikat passt
    • openssl_x509_checkpurpose — Überprüft, ob ein Zertifikat für einen bestimmten Zweck verwendet werden kann
    • openssl_x509_export_to_file — Exportiert ein Zertifikat in eine Datei
    • openssl_x509_export — Exportiert ein Zertifikat als Zeichenkette
    • openssl_x509_fingerprint — Calculates the fingerprint, or digest, of a given X.509 certificate
    • openssl_x509_free — Gibt eine Zertifikats-Ressource frei
    • openssl_x509_parse — Parst ein X.509-Zertifikat und liefert die Informationen als Array
    • openssl_x509_read — Parst ein X.509-Zertitifikat und gibt ein Objekt dafür zurück
    • openssl_x509_verify — Verifies digital signature of x509 certificate against a public key
  • OpenSSLCertificate — The OpenSSLCertificate class
  • OpenSSLCertificateSigningRequest — The OpenSSLCertificateSigningRequest class
  • OpenSSLAsymmetricKey — The OpenSSLAsymmetricKey class


Einführung

Diese Erweiterung verbindet die Funktionen der » OpenSSL-Bibliothek für symmetrische und asymmetrische Verschlüsselung und Entschlüsselung, PBKDF2, PKCS7, PKCS12, X509 und andere Krypto-Operationen. Darüber hinaus stellt sie die Implementierung von TLS-Streams zur Verfügung.

OpenSSL bietet viele Möglichkeiten, die dieses Modul zum jetzigen Zeitpunkt nicht unterstützt. Einige dieser Möglichkeiten werden vielleicht in zukünftigen Versionen zur Verfügung stehen.


Anforderungen

Bevor die Openssl-Funktionen verwendet werden können, muss die » OpenSSL-Bibliothek installiert werden. PHP 5 benötigt midestens OpenSSL >= 0.9.6. Allerdings haben spätere Versionen von PHP 5 einige Kompilationsprobleme und sollten wenigstens mit OpenSSL >= 0.9.8 verwendet werden, welches auch die Mindestversion für PHP 7.0 ist. Andere Versionen (PHP >= 7.1.0) erfordern OpenSSL >= 1.0.1.

Warnung

Es wird dringnd empfohlen, die aktuellste OpenSSL-Version zu verwenden, anderenfalls könnte der Webserver anfällig für Angriffe sein.


Installation

Um OpenSSL mit PHP nutzen zu können, muss PHP mit der Option --with-openssl[=DIR] kompiliert werden.

Die OpenSSL-Bibliothek stellt einige weitere Bedingungen, um zur Laufzeit korrekt funktionieren zu können. Insbesondere benötigt OpenSSL Zugang zu einer Quelle für zufällige oder pseudo-zufällige Zahlen. Auf Unix und Unix-ähnlichen Systemen bedeutet dies, dass OpenSSL Zugang zu /dev/urandom oder /dev/random haben muss.

Von PHP 5.6.3 an steht die Konfigurationsoption --with-system-ciphers zur Verfügung, die bewirkt, dass PHP statt einer voreingestellten Standardliste die Chiffreliste des Systems verwendet.

Hinweis: Hinweis für Win32-Benutzer

Diese Extension benötigt DLL-Dateien. die für Windows verfügbar seien müssen. Der FAQ-Eintrag " Wie füge ich unter Windows PATH mein PHP-Verzeichnis hinzu?" gibt hierzu weitere Informationen. Obwohl ein einfaches Kopieren der DLL-Dateien vom PHP-Verzeichnis in den Windows-Systemordner auch funktioniert (weil der Systemordner immer im PATH enthalten ist), ist dieses Vorgehen nicht empfehlenswert. Diese Extension benötigt die folgenden Dateien im PATH: libeay32.dll oder, von OpenSLL 1.1 an, libcrypto-*.dll

Wenn Sie vorhaben, Funktionen zur Schlüsselerzeugung und zum Signieren von Zertifikaten zu verwenden, müssen Sie eine gültige Konfigurationsdatei für OpenSSL, openssl.cnf, installieren. Wir fügen der Win32-Binärdistribution eine Beispielkonfigurationsdatei bei, die Sie im Verzeichnis extras/openssl finden.

PHP verwendet folgende Logik, um die openssl.cnf zu finden:

  • Die Umgebungsvariable OPENSSL_CONF wird, falls gesetzt, als Pfad zur Konfigurationsdatei verwendet (den Dateinamen mit eingeschlossen).
  • Die Umgebungsvariable SSLEAY_CONF wird, falls gesetzt, als Pfad zur Konfigurationsdatei verwendet (den Dateinamen mit eingeschlossen).
  • PHP sucht die Datei openssl.cnf an dem Ort, der bei der Kompilierung der OpenSSL-DLL als Speicherort für Zertifikate angegeben wurde. Üblicherweise ist der Standard-Dateiname C:\Program Files\Common Files\SSL\openssl.cnf (x64) oder C:\Program Files (x86)\Common Files\SSL\openssl.cnf (x86) oder, vor PHP 7.4.0, C:\usr\local\ssl\openssl.cnf.

Bei der Installation müssen Sie entscheiden, ob Sie die Konfigurationsdatei in den Standardpfad installieren oder ob Sie sie an einem anderen Ort installieren und Umgebungsvariablen verwenden (möglicherweise auf Basis einzelner virtueller Hosts), um die Konfigurationsdatei zu finden. Bei Funktionen, die diese Konfigurationsdatei benötigen, ist es möglich, durch die Angabe des Parameters options den Standardpfad zu dieser Datei in einem Skript zu überschreiben.
Achtung

Es ist sicherzustellen, dass es nicht-privilegierten Nutzern nicht erlaubt ist openssl.cnf zu ändern.

Changelog

Version | Beschreibung
7.4.0 | Der OpenSSL-Standard-Konfigurationspfad wurde von C:\usr\local\ssl zu C:\Program Files\Common Files\SSL bzw. C:\Program Files (x86)\Common Files\SSL geändert.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

openssl Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
openssl.cafile | "" | PHP_INI_PERDIR | Available as of PHP 5.6.0.
openssl.capath | "" | PHP_INI_PERDIR | Available as of PHP 5.6.0.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

openssl.cafile string

Location of Certificate Authority file on local filesystem which should be used with the verify_peer context option to authenticate the identity of the remote peer.

openssl.capath string

If cafile is not specified or if the certificate is not found there, the directory pointed to by capath is searched for a suitable certificate. capath must be a correctly hashed certificate directory.

See also the SSL stream context options.


Ressource-Typen

Vor PHP 8.0.0 gab es 3 Ressourcentypen, die im OpenSSL-Modul definiert waren:

  • OpenSSL-Schlüssel
  • OpenSSL X.509
  • OpenSSL X.509 CSR


Vordefinierte Konstanten

Inhaltsverzeichnis

  • Zweckprüfende Flags
  • Padding-Flags für asymmetrische Verschlüsselung
  • Key types
  • PKCS7-Flags/Konstanten
  • CMS-Flags/Konstanten
  • Signatur-Algorithmen
  • Ciphers
  • Versions-Konstanten
  • Konstanten zur Identifizierung des Servernamens (Server Name Indication)
  • Andere Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.


Zweckprüfende Flags

X509_PURPOSE_SSL_CLIENT (int)
X509_PURPOSE_SSL_SERVER (int)
X509_PURPOSE_NS_SSL_SERVER (int)
X509_PURPOSE_SMIME_SIGN (int)
X509_PURPOSE_SMIME_ENCRYPT (int)
X509_PURPOSE_CRL_SIGN (int)
X509_PURPOSE_ANY (int)


Padding-Flags für asymmetrische Verschlüsselung

OPENSSL_PKCS1_PADDING (int)
OPENSSL_SSLV23_PADDING (int)
OPENSSL_NO_PADDING (int)
OPENSSL_PKCS1_OAEP_PADDING (int)


Key types

OPENSSL_KEYTYPE_RSA (int)
OPENSSL_KEYTYPE_DSA (int)
OPENSSL_KEYTYPE_DH (int)
OPENSSL_KEYTYPE_EC (int)
Diese Konstante ist nur verfügbar, wenn PHP mit OpenSSL 0.9.8+ kompiliert wurde. Hinzugefügt in PHP 5.2.0.


PKCS7-Flags/Konstanten

Die S/MIME-Funktionen nutzen Flags, die durch ein Bitfeld angegeben werden. Dieses Bitfeld kann einen oder mehrere der folgenden Werte enthalten:

PKCS7-Konstanten
Konstante | Beschreibung
PKCS7_TEXT | Fügt einer verschlüsselten/signierten Nachricht den Inhaltstyp-Header text/plain zu hinzu. Beim Entschlüsseln oder Überprüfen wird dieser Header aus der Ausgabe entfernt. Entspricht die entschlüsselte oder geprüfte Nachricht nicht dem MIME-Typ text/plain, tritt ein Fehler auf.
PKCS7_BINARY | Normalerweise wird die Nachricht in ein "kanonisches" Format konvertiert, das effektiv CR und LF als Zeilende verwendet, wie von der S/MIME-Spezifikation gefordert. Wird diese Option angegeben, findet keine Konvertierung statt. Dies ist nützlich beim Umgang mit Binärdaten, die nicht im MIME-Format vorliegen.
PKCS7_NOINTERN | Beim Überprüfen einer Nachricht werden in der Nachricht enthaltene Zertifikate (falls vorhanden) nach dem Signatur-Zertifikat durchsucht. Mit dieser Option werden nur Zertifikate verwendet, die mit dem Parameter extracerts in der Funktion openssl_pkcs7_verify() angegeben wurden. Die mitgelieferten Zertifikate können aber dennoch verwendet werden, allerdings als nicht vertrauenswürdige CAs.
PKCS7_NOVERIFY | Das Zertifikat des Unterzeichners einer signierten Nachricht nicht überprüfen.
PKCS7_NOCHAIN | Die Überprüfung der Zertifikate des Unterzeichners nicht verketten, das bedeutet, die Zertifikate in der signierten Nachricht werden nicht als nicht vertrauenswürdige CAs verwendet.
PKCS7_NOCERTS | Beim Signieren einer Nachricht wird normalerweise das Zertifikat des Unterzeichnenden mit in die Nachricht aufgenommen. Mit dieser Option wird das Zertifikat nicht mit aufgenommen. Diese Option verringert die Größe der signierten Nachricht, aber der Überprüfende muss eine lokale Kopie des Zertifikats vom Unterzeichnenden besitzen (zum Beispiel durch Angabe des Parameters extracerts in der Funktion openssl_pkcs7_verify()).
PKCS7_NOATTR | Beim Signieren einer Nachricht wird normalerweise eine Reihe von Attributen mit angehängt. Diese enthalten die Zeit der Signierung und die unterstützen symmetrischen Algorithmen. Mit dieser Option werden diese Attribute nicht mit aufgenommen.
PKCS7_DETACHED | Beim Signieren einer Nachricht wird die Klartext-Signierung mit dem MIME-Typ "multipart/signed" verwendet. Das ist der Standard, wenn in flags keine optionalen Parameter an die Funktion openssl_pkcs7_sign() übergeben werden. Wenn Sie diese Option ausschalten, wird die Nachricht mit einer intransparenten Signatur unterzeichnet. Dieses Verhalten ist robuster gegenüber der Übersetzung durch Mail-Relays, kann aber nicht mit Mailprogrammen gelesen werden, die den S/Mime Standard nicht unterstützen.
PKCS7_NOSIGS | Die Signaturen einer Nachricht nicht überprüfen.


CMS-Flags/Konstanten

Die CMS-Funktionen verwenden Flags, die über ein Bitfeld angegeben werden, das einen oder mehrere der folgenden Werte enthalten kann:

CMS-Konstanten
Konstante | Beschreibung
OPENSSL_CMS_TEXT | Fügt einer verschlüsselten/signierten Nachricht den Inhaltstyp-Header text/plain zu hinzu. Beim Entschlüsseln oder Überprüfen wird dieser Header aus der Ausgabe entfernt. Entspricht die entschlüsselte oder geprüfte Nachricht nicht dem MIME-Typ text/plain, tritt ein Fehler auf.
OPENSSL_CMS_BINARY | Normalerweise wird die Nachricht in ein "kanonisches" Format konvertiert, das effektiv CR und LF als Zeilende verwendet, wie von der CMS-Spezifikation gefordert. Wird diese Option angegeben, findet keine Konvertierung statt. Dies ist nützlich beim Umgang mit Binärdaten, die nicht im CMS-Format vorliegen.
OPENSSL_CMS_NOINTERN | Beim Überprüfen einer Nachricht werden in der Nachricht enthaltene Zertifikate (falls vorhanden) nach dem Signatur-Zertifikat durchsucht. Mit dieser Option werden nur Zertifikate verwendet, die mit dem Parameter untrusted_certificates_filename in der Funktion openssl_cms_verify() angegeben wurden. Die mitgelieferten Zertifikate können aber dennoch verwendet werden, allerdings als nicht vertrauenswürdige CAs.
OPENSSL_CMS_NOVERIFY | Das Zertifikat des Unterzeichners einer signierten Nachricht nicht überprüfen.
OPENSSL_CMS_NOCERTS | Beim Signieren einer Nachricht wird normalerweise das Zertifikat des Unterzeichnenden mit in die Nachricht aufgenommen. Mit dieser Option wird das Zertifikat nicht mit aufgenommen. Diese Option verringert die Größe der signierten Nachricht, aber der Überprüfende muss eine lokale Kopie des Zertifikats vom Unterzeichnenden besitzen (zum Beispiel durch Angabe des Parameters untrusted_certificates_filename in der Funktion openssl_cms_verify()).
OPENSSL_CMS_NOATTR | Beim Signieren einer Nachricht wird normalerweise eine Reihe von Attributen mit angehängt. Diese enthalten die Zeit der Signierung und die unterstützen symmetrischen Algorithmen. Mit dieser Option werden diese Attribute nicht mit aufgenommen.
OPENSSL_CMS_DETACHED | Beim Signieren einer Nachricht wird die Klartext-Signierung mit dem MIME-Typ "multipart/signed" verwendet. Das ist der Standard, wenn in flags keine optionalen Parameter an die Funktion openssl_cms_sign() übergeben werden. Wenn Sie diese Option ausschalten, wird die Nachricht mit einer intransparenten Signatur unterzeichnet. Dieses Verhalten ist robuster gegenüber der Übersetzung durch Mail-Relays, kann aber nicht mit Mailprogrammen gelesen werden, die den S/Mime Standard nicht unterstützen.
OPENSSL_CMS_NOSIGS | Die Signaturen einer Nachricht nicht überprüfen.


Signatur-Algorithmen

OPENSSL_ALGO_DSS1 (int)
OPENSSL_ALGO_SHA1 (int)
Wird als Standard-Algorithmus für die Funktionen openssl_sign() und openssl_verify() verwendet.
OPENSSL_ALGO_SHA224 (int)
Hinzugefügt in PHP 5.4.8.
OPENSSL_ALGO_SHA256 (int)
Hinzugefügt in PHP 5.4.8.
OPENSSL_ALGO_SHA384 (int)
Hinzugefügt in PHP 5.4.8.
OPENSSL_ALGO_SHA512 (int)
Hinzugefügt in PHP 5.4.8.
OPENSSL_ALGO_RMD160 (int)
Hinzugefügt in PHP 5.4.8.
OPENSSL_ALGO_MD5 (int)
OPENSSL_ALGO_MD4 (int)
OPENSSL_ALGO_MD2 (int)
Von PHP 5.2.13 und PHP 5.3.2 an ist diese Konstante nur verfügbar, wenn PHP mit MD2-Support kompiliert wurde. Dies erfordert die Übergabe des -DHAVE_OPENSSL_MD2_H CFLAG, wenn PHP, und enable-md2, wenn OpenSSL 1.0.0+ kompiliert wird.


Ciphers

OPENSSL_CIPHER_RC2_40 (int)
OPENSSL_CIPHER_RC2_128 (int)
OPENSSL_CIPHER_RC2_64 (int)
OPENSSL_CIPHER_DES (int)
OPENSSL_CIPHER_3DES (int)
OPENSSL_CIPHER_AES_128_CBC (int)
Hinzugefügt in PHP 5.4.0.
OPENSSL_CIPHER_AES_192_CBC (int)
Hinzugefügt in PHP 5.4.0.
OPENSSL_CIPHER_AES_256_CBC (int)
Hinzugefügt in PHP 5.4.0.


  • « Ciphers
  • Konstanten zur Identifizierung des Servernamens (Server Name Indication) »
  • PHP Manual
  • Vordefinierte Konstanten
  • Versions-Konstanten

Versions-Konstanten

OPENSSL_VERSION_TEXT (string)
Hinzugefügt in PHP 5.2.0.
OPENSSL_VERSION_NUMBER (int)
Hinzugefügt in PHP 5.2.0.


Konstanten zur Identifizierung des Servernamens (Server Name Indication)

OPENSSL_TLSEXT_SERVER_NAME (string)
Ob SNI unterstützt wird oder nicht.

Hinweis:

Diese Konstante wurde in 5.3.2 hinzugefügt und erfordert, dass PHP mit OpenSSL 0.9.8j oder höher kompiliert wurde.


Andere Konstanten

OPENSSL_RAW_DATA (bool)
Wenn OPENSSL_RAW_DATA in den Funktionen openssl_encrypt() oder openssl_decrypt() im Parameter options angegeben ist, werden die Daten so zurückgegeben, wie sie sind. Ist sie nicht angegeben, werden Base64-kodierte Daten an den Aufrufenden zurückgegeben.
OPENSSL_ZERO_PADDING (bool)
Standardmäßig wird bei Verschlüsselungsvorgängen mit Standard-Blockpadding aufgefüllt und das Padding wird beim Entschlüsseln geprüft und entfernt. Wenn OPENSSL_ZERO_PADDING in den Funktionen openssl_encrypt() oder openssl_decrypt() im Parameter options angegeben ist, wird kein Padding durchgeführt und die Gesamtmenge der verschlüsselten oder entschlüsselten Daten muss ein Vielfaches der Blockgröße sein, sonst tritt ein Fehler auf.
OPENSSL_ENCODING_SMIME (int)
Gibt an, dass die Kodierung im S/MIME-Format erfolgt.
OPENSSL_ENCODING_DER (int)
Gibt an, dass die Kodierung im DER-Format (Distinguished Encoding Rules) erfolgt.
OPENSSL_ENCODING_PEM (int)
Gibt an, dass die Kodierung im PEM-Format (Privacy-Enhanced Mail) erfolgt.


Schlüssel-/Zertifikatparameter

Ziemlich viele der OpenSSL-Funktionen benötigen einen Schlüssel- oder Zertifikatparameter. Folgende Methoden können genutzt werden, um solche zu erhalten:

  • Zertifikate

    1. Eine OpenSSLCertificate-Instanz (oder vor PHP 8.0.0 eine Ressource vom Typ OpenSSL X.509), die von openssl_x509_read() zurückgegeben wurde.
    2. Eine Zeichenkette mit dem Format file://pfad/zu/cert.pem; die angegebene Datei muss ein PEM-kodiertes Zertifikat enthalten.
    3. Eine Zeichenkette, die den Inhalt eines Zertifikats in PEM-Kodierung enthält. Sie kann mit -----BEGIN CERTIFICATE----- beginnen.

  • Zertifikat-Signierungsanforderungen (Certificate Signing Requests, CSRs)

    1. Eine OpenSSLCertificateSigningRequest-Instanz (oder vor PHP 8.0.0 eine Ressource vom Typ OpenSSL X.509 CSR), die von openssl_csr_new() zurückgegeben wurde.
    2. Eine Zeichenkette mit dem Format file://path/to/csr.pem; die benannte Datei muss einen PEM-kodierten CSR enthalten.
    3. Eine Zeichenkette, die den Inhalt eines CSRs in PEM-Kodierung enthält. Sie kann mit -----BEGIN CERTIFICATE REQUEST----- beginnen.

  • Öffentliche/Private Schlüssel

    1. Eine OpenSSLAsymmetricKey-Instanz (oder vor PHP 8.0.0 eine Ressource vom Typ OpenSSL-Schlüssel), die von openssl_get_publickey() oder openssl_get_privatekey() zurückgegeben wurde.
    2. Nur für öffentliche Schlüssel: eine OpenSSLCertificate-Instanz (oder vor PHP 8.0.0 eine Ressource vom Typ OpenSSL X.509).
    3. Eine Zeichenkette mit dem Format file://pfad/zu/datei.pem - die angegebene Datei muss ein PEM-kodiertes Zertifikat und/oder einen PEM-kodierten privaten Schlüssel enthalten.
    4. Eine Zeichenkette, die den Inhalt eines Zertifikats/Schlüssels in PEM-Kodierung enthält. Sie kann mit -----BEGIN PUBLIC KEY----- beginnen.
    5. Für private Schlüssel können Sie auch die Syntax array($key, $passphrase) verwenden. $key repräsentiert einen Schlüssel, den Sie entweder mit der Notation file:// oder dem textlichen Inhalt wie oben angeben. $passphrase ist eine Zeichenfolge, die die Passphrase für den privaten Schlüssel enthält.


Überprüfung von Zertifikaten

Wenn Sie eine Funktion aufrufen, die eine Signatur/ein Zertifikat überprüft, ist der Parameter ca_info ein Array, das Datei- und Verzeichnisnamen enthält, die auf vertrauenswürdige CA-Dateien verweisen. Falls Sie ein Verzeichnis angeben, muss dies ein korrekt geformtes gehashtes Verzeichnis in der Art sein, wie es der Befehl openssl verwenden würde.


OpenSSL-Funktionen

Inhaltsverzeichnis

  • openssl_cipher_iv_length — Gets the cipher iv length
  • openssl_cms_decrypt — Decrypt a CMS message
  • openssl_cms_encrypt — Encrypt a CMS message
  • openssl_cms_read — Export the CMS file to an array of PEM certificates
  • openssl_cms_sign — Sign a file
  • openssl_cms_verify — Verify a CMS signature
  • openssl_csr_export_to_file — Exportiert einen CSR in eine Datei
  • openssl_csr_export — Exportiert einen CSR als Zeichenkette
  • openssl_csr_get_public_key — Liefert den öffentlichen Schlüssel eines CSR
  • openssl_csr_get_subject — Liefert das Subjekt eines CSR
  • openssl_csr_new — Erzeugt einen CSR
  • openssl_csr_sign — Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat
  • openssl_decrypt — Decrypts data
  • openssl_dh_compute_key — Computes shared secret for public value of remote DH public key and local DH key
  • openssl_digest — Computes a digest
  • openssl_encrypt — Verschlüsselt Daten
  • openssl_error_string — Liefert eine OpenSSL-Fehlermeldung
  • openssl_free_key — Gibt eine Schlüssel-Ressource frei
  • openssl_get_cert_locations — Retrieve the available certificate locations
  • openssl_get_cipher_methods — Gets available cipher methods
  • openssl_get_curve_names — Gets list of available curve names for ECC
  • openssl_get_md_methods — Gets available digest methods
  • openssl_get_privatekey — Alias von openssl_pkey_get_private
  • openssl_get_publickey — Alias von openssl_pkey_get_public
  • openssl_open — Öffnet versiegelte Daten
  • openssl_pbkdf2 — Generates a PKCS5 v2 PBKDF2 string
  • openssl_pkcs12_export_to_file — Exportiert in eine PKCS#12-kompatible Zertifikats-Datei
  • openssl_pkcs12_export — Exportiert eine PKCS#12-kompatible Zertifikats-Datei in eine Variable
  • openssl_pkcs12_read — Parst eine PKCS#12-Zertifikats-Datei in ein Array
  • openssl_pkcs7_decrypt — Entschlüsselt eine S/MIME-verschlüsselte Nachricht
  • openssl_pkcs7_encrypt — Verschlüsselt eine S/MIME-Nachricht
  • openssl_pkcs7_read — Export the PKCS7 file to an array of PEM certificates
  • openssl_pkcs7_sign — Signiert eine S/MIME-Nachricht
  • openssl_pkcs7_verify — Überprüft die Signatur einer mit S/MIME signierten Nachricht
  • openssl_pkey_derive — Computes shared secret for public value of remote and local DH or ECDH key
  • openssl_pkey_export_to_file — Speichert einen Schlüssel in einem exportierbaren Format in einer Datei
  • openssl_pkey_export — Speichert ein exportierbares Format eines Schlüssels in einer Zeichenkette
  • openssl_pkey_free — Gibt einen privaten Schlüssel frei
  • openssl_pkey_get_details — Liefert ein Array mit Schlüssel-Details
  • openssl_pkey_get_private — Liefert einen privaten Schlüssel
  • openssl_pkey_get_public — Extrahiert einen öffentlichen Schlüssel aus einem Zertifikat und bereitet diesen zur Verwendung vor
  • openssl_pkey_new — Erzeugt einen neuen privaten Schlüssel
  • openssl_private_decrypt — Entschlüsselt Daten mit einem privaten Schlüssel
  • openssl_private_encrypt — Verschlüsselt Daten mit einem privaten Schlüssel
  • openssl_public_decrypt — Entschlüsselt Daten mit einem öffentlichen Schlüssel
  • openssl_public_encrypt — Verschlüsselt Daten mit einem öffentlichen Schlüssel
  • openssl_random_pseudo_bytes — Generate a pseudo-random string of bytes
  • openssl_seal — Versiegelt (verschlüsselt) Daten
  • openssl_sign — Erzeugt eine Signatur
  • openssl_spki_export_challenge — Exports the challenge associated with a signed public key and challenge
  • openssl_spki_export — Exports a valid PEM formatted public key signed public key and challenge
  • openssl_spki_new — Generate a new signed public key and challenge
  • openssl_spki_verify — Verifies a signed public key and challenge
  • openssl_verify — Überprüft eine Signatur
  • openssl_x509_check_private_key — Überprüft, ob ein privater Schlüssel zu einem Zertifikat passt
  • openssl_x509_checkpurpose — Überprüft, ob ein Zertifikat für einen bestimmten Zweck verwendet werden kann
  • openssl_x509_export_to_file — Exportiert ein Zertifikat in eine Datei
  • openssl_x509_export — Exportiert ein Zertifikat als Zeichenkette
  • openssl_x509_fingerprint — Calculates the fingerprint, or digest, of a given X.509 certificate
  • openssl_x509_free — Gibt eine Zertifikats-Ressource frei
  • openssl_x509_parse — Parst ein X.509-Zertifikat und liefert die Informationen als Array
  • openssl_x509_read — Parst ein X.509-Zertitifikat und gibt ein Objekt dafür zurück
  • openssl_x509_verify — Verifies digital signature of x509 certificate against a public key


Gets the cipher iv length

  • « OpenSSL-Funktionen
  • openssl_cms_decrypt »
  • PHP Manual
  • OpenSSL-Funktionen
  • Gets the cipher iv length

openssl_cipher_iv_length

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

openssl_cipher_iv_length — Gets the cipher iv length

Beschreibung

openssl_cipher_iv_length ( string $cipher_algo ) : int|false

Gets the cipher initialization vector (iv) length.

Parameter-Liste

cipher_algo

The cipher method, see openssl_get_cipher_methods() for a list of potential values.

Rückgabewerte

Returns the cipher length on success, or false on failure.

Fehler/Exceptions

Emits an E_WARNING level error when the cipher algorithm is unknown.

Beispiele

Beispiel #1 openssl_cipher_iv_length() example

<?php
$method = 'AES-128-CBC';
$ivlen = openssl_cipher_iv_length($method);

echo $ivlen;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

16


Decrypt a CMS message

  • « openssl_cipher_iv_length
  • openssl_cms_encrypt »
  • PHP Manual
  • OpenSSL-Funktionen
  • Decrypt a CMS message

openssl_cms_decrypt

(PHP 8)

openssl_cms_decrypt — Decrypt a CMS message

Beschreibung

openssl_cms_decrypt ( string $input_filename , string $output_filename , OpenSSLCertificate|string $certificate , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key = null , int $encoding = OPENSSL_ENCODING_SMIME ) : bool

Decrypts a CMS message.

Parameter-Liste

input_filename

The name of a file containing encrypted content.

output_filename

The name of the file to deposit the decrypted content.

certificate

The name of the file containing a certificate of the recipient.

private_key

The name of the file containing a PKCS#8 key.

encoding

The encoding of the input file. One of OPENSSL_CMS_SMIME, OPENSLL_CMS_DER or OPENSSL_CMS_PEM.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Encrypt a CMS message

  • « openssl_cms_decrypt
  • openssl_cms_read »
  • PHP Manual
  • OpenSSL-Funktionen
  • Encrypt a CMS message

openssl_cms_encrypt

(PHP 8)

openssl_cms_encrypt — Encrypt a CMS message

Beschreibung

openssl_cms_encrypt ( string $input_filename , string $output_filename , OpenSSLCertificate|array|string $certificate , array|null $headers , int $flags = 0 , int $encoding = OPENSSL_ENCODING_SMIME , int $cipher_algo = OPENSSL_CIPHER_RC2_40 ) : bool

This function encrypts content to one or more recipients, based on the certificates that are passed to it.

Parameter-Liste

input_filename

The file to be encrypted.

output_filename

The output file.

certificate

Recipients to encrypt to.

headers

Headers to include when S/MIME is used.

flags

Flags to be passed to CMS_sign.

encoding

An encoding to output. One of OPENSSL_CMS_SMIME, OPENSLL_CMS_DER or OPENSSL_CMS_PEM.

cipher_algo

A cypher to use.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Export the CMS file to an array of PEM certificates

  • « openssl_cms_encrypt
  • openssl_cms_sign »
  • PHP Manual
  • OpenSSL-Funktionen
  • Export the CMS file to an array of PEM certificates

openssl_cms_read

(PHP 8)

openssl_cms_read — Export the CMS file to an array of PEM certificates

Beschreibung

openssl_cms_read ( string $input_filename , array &$certificates ) : bool

Performs the exact analog to openssl_pkcs7_read().

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

input_filename

certificates

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Sign a file

  • « openssl_cms_read
  • openssl_cms_verify »
  • PHP Manual
  • OpenSSL-Funktionen
  • Sign a file

openssl_cms_sign

(PHP 8)

openssl_cms_sign — Sign a file

Beschreibung

openssl_cms_sign ( string $input_filename , string $output_filename , OpenSSLCertificate|string $certificate , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key , array|null $headers , int $flags = 0 , int $encoding = OPENSSL_ENCODING_SMIME , string|null $untrusted_certificates_filename = null ) : bool

This function signs a file with an X.509 certificate and key.

Parameter-Liste

input_filename

The name of the file to be signed.

output_filename

The name of the file to deposit the results.

certificate

The name of the file containing the signing certificate.

private_key

The name of file containing the key associated with certificate.

headers

An array of headers to be included in S/MIME output.

flags

Flags to be passed to cms_sign().

encoding

The encoding of the output file. One of OPENSSL_CMS_SMIME, OPENSLL_CMS_DER or OPENSSL_CMS_PEM.

untrusted_certificates_filename

Intermediate certificates to be included in the signature.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Verify a CMS signature

  • « openssl_cms_sign
  • openssl_csr_export_to_file »
  • PHP Manual
  • OpenSSL-Funktionen
  • Verify a CMS signature

openssl_cms_verify

(PHP 8)

openssl_cms_verify — Verify a CMS signature

Beschreibung

openssl_cms_verify ( string $input_filename , int $flags = 0 , string|null $certificates = null , array $ca_info = [] , string|null $untrusted_certificates_filename = null , string|null $content = null , string|null $pk7 = null , string|null $sigfile = null , int $encoding = OPENSSL_ENCODING_SMIME ) : bool

This function verifies a CMS signature, either attached or detached, with the specified encoding.

Parameter-Liste

input_filename

The input file.

flags

Flags to pass to cms_verify().

certificates

A file with the signer certificate and optionally intermediate certificates.

ca_info

An array containing self-signed certificate authority certificates.

untrusted_certificates_filename

A file containing additional intermediate certificates.

content

A file pointing to the content when signatures are detached.

pk7

sigfile

A file to save the signature to.

encoding

The encoding of the input file. One of OPENSSL_CMS_SMIME, OPENSLL_CMS_DER or OPENSSL_CMS_PEM.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Exportiert einen CSR in eine Datei

  • « openssl_cms_verify
  • openssl_csr_export »
  • PHP Manual
  • OpenSSL-Funktionen
  • Exportiert einen CSR in eine Datei

openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_export_to_file — Exportiert einen CSR in eine Datei

Beschreibung

openssl_csr_export_to_file ( OpenSSLCertificateSigningRequest|string $csr , string $output_filename , bool $no_text = true ) : bool

openssl_csr_export_to_file() exportiert die mit dem Parameter csr angegebene Zertifikats-Signierungsanfrage und speichert diese im PEM-Format in der Datei mit dem Namen output_filename.

Parameter-Liste

csr

See CSR parameters for a list of valid values.

output_filename

Pfad zur Ausgabedatei.

no_text

Der optionale Parameternotext beinflusst die Ausführlichkeit der Ausgabe. Wenn er auf false gesetzt wird, werden zusätzliche lesbare Informationen in die Ausgabe aufgenommen. Der Vorgabewert für notext ist true.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | csr akzeptiert nun eine OpenSSLCertificateSigningRequest-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.

Beispiele

Beispiel #1 openssl_csr_export_to_file()-Beispiel

<?php
$subject = array(
    "commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha384') );
openssl_pkey_export_to_file($private_key, 'example-priv.key');
// Nebst dem Subjekt enthält der CSR den zum privaten Schlüssel gehörenden
// öffentlichen Schlüssel
openssl_csr_export_to_file($csr, 'example-csr.pem');
?>

Siehe auch

  • openssl_csr_export() - Exportiert einen CSR als Zeichenkette
  • openssl_csr_new() - Erzeugt einen CSR
  • openssl_csr_sign() - Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat


Exportiert einen CSR als Zeichenkette

  • « openssl_csr_export_to_file
  • openssl_csr_get_public_key »
  • PHP Manual
  • OpenSSL-Funktionen
  • Exportiert einen CSR als Zeichenkette

openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_export — Exportiert einen CSR als Zeichenkette

Beschreibung

openssl_csr_export ( OpenSSLCertificateSigningRequest|string $csr , OpenSSLAsymmetricKey &$output , bool $no_text = true ) : bool

openssl_csr_export() exportiert die mit dem Parameter csr angegebene Zertifikats-Signierungsanfrage und speichert diese im PEM-Format in der Zeichenkette output, die per Referenz übergeben wird.

Parameter-Liste

csr

See CSR parameters for a list of valid values.

output

Im Erfolgsfall enthält diese Zeichenkette den PEM-kodierten CSR.

no_text

Der optionale Parameternotext beinflusst die Ausführlichkeit der Ausgabe. Wenn er auf false gesetzt wird, werden zusätzliche lesbare Informationen in die Ausgabe aufgenommen. Der Vorgabewert für notext ist true.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | csr akzeptiert nun eine OpenSSLCertificateSigningRequest-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.

Beispiele

Beispiel #1 openssl_csr_export()-Beispiel

<?php
$subject = array(
    "commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$configargs = array(
    'digest_alg' => 'sha256WithRSAEncryption'
);
$csr = openssl_csr_new($subject, $private_key, $configargs);
openssl_csr_export($csr, $csr_string);
echo $csr_string;
?>

Siehe auch

  • openssl_csr_export_to_file() - Exportiert einen CSR in eine Datei
  • openssl_csr_new() - Erzeugt einen CSR
  • openssl_csr_sign() - Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat


Liefert den öffentlichen Schlüssel eines CSR

  • « openssl_csr_export
  • openssl_csr_get_subject »
  • PHP Manual
  • OpenSSL-Funktionen
  • Liefert den öffentlichen Schlüssel eines CSR

openssl_csr_get_public_key

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

openssl_csr_get_public_key — Liefert den öffentlichen Schlüssel eines CSR

Beschreibung

openssl_csr_get_public_key ( OpenSSLCertificateSigningRequest|string $csr , bool $short_names = true ) : OpenSSLAsymmetricKey|false

openssl_csr_get_public_key() extrahiert den öffentlichen Schlüssel aus csr und bereitet ihn für die Verwendung mit anderen Funktionen vor.

Parameter-Liste

csr

See CSR parameters for a list of valid values.

short_names
Warnung

Dieser Parameter wird ignoriert.

Rückgabewerte

Gibt bei Erfolg eine OpenSSLAsymmetricKey-Instanz zurück oder false bei einem Fehler.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine OpenSSLAsymmetricKey-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel zurückgegeben.
8.0.0 | csr akzeptiert nun eine OpenSSLCertificateSigningRequest-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.

Beispiele

Beispiel #1 openssl_csr_get_public_key()-Beispiel

<?php
$subject = array(
    "commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha256') );
$public_key = openssl_csr_get_public_key($csr);
$info = openssl_pkey_get_details($public_key);
echo $info['key'];
?>

Siehe auch

  • openssl_csr_get_subject() - Liefert das Subjekt eines CSR
  • openssl_csr_new() - Erzeugt einen CSR
  • openssl_pkey_get_details() - Liefert ein Array mit Schlüssel-Details
  • openssl_pkey_export_to_file() - Speichert einen Schlüssel in einem exportierbaren Format in einer Datei
  • openssl_pkey_export() - Speichert ein exportierbares Format eines Schlüssels in einer Zeichenkette


Liefert das Subjekt eines CSR

  • « openssl_csr_get_public_key
  • openssl_csr_new »
  • PHP Manual
  • OpenSSL-Funktionen
  • Liefert das Subjekt eines CSR

openssl_csr_get_subject

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

openssl_csr_get_subject — Liefert das Subjekt eines CSR

Beschreibung

openssl_csr_get_subject ( OpenSSLCertificateSigningRequest|string $csr , bool $short_names = true ) : array|false

openssl_csr_get_subject() gibt Informationen zum Distinguished Name des Subjekts zurück, die im csr kodiert sind, was Felder wie commonName (CN), organizationName (O), countryName (C) usw. einschließt.

Parameter-Liste

csr

See CSR parameters for a list of valid values.

short_names

short_names steuert, wie die Daten im Array indexiert sind. Wenn short_names true ist (Standardwert), dann werden die Felder mit ihrer kurzen Namensform indexiert; andernfalls wird die lange Namensform verwendet - z.B. ist CN die kurze Namensform von commonName.

Rückgabewerte

Gibt ein assoziatives Array mit der Beschreibung des Subjekts zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | csr akzeptiert nun eine OpenSSLCertificateSigningRequest-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.

Beispiele

Beispiel #1 openssl_csr_get_subject()-Beispiel

<?php
$subject = array(
    "countryName" => "CA",
    "stateOrProvinceName" => "Alberta",
    "localityName" => "Calgary",
    "organizationName" => "XYZ Widgets Inc",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@example.com",
);
$private_key = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$configargs = array(
    'digest_alg' => 'sha512WithRSAEncryption'
);
$csr = openssl_csr_new($subject, $privkey, $configargs);
print_r(openssl_csr_get_subject($csr));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [C] => CA
    [ST] => Alberta
    [L] => Calgary
    [O] => XYZ Widgets Inc
    [OU] => PHP Documentation Team
    [CN] => Wez Furlong
    [emailAddress] => wez@example.com
)

Siehe auch

  • openssl_csr_new() - Erzeugt einen CSR
  • openssl_csr_get_public_key() - Liefert den öffentlichen Schlüssel eines CSR
  • openssl_x509_parse() - Parst ein X.509-Zertifikat und liefert die Informationen als Array


Erzeugt einen CSR

  • « openssl_csr_get_subject
  • openssl_csr_sign »
  • PHP Manual
  • OpenSSL-Funktionen
  • Erzeugt einen CSR

openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_new — Erzeugt einen CSR

Beschreibung

openssl_csr_new ( array $distinguished_names , OpenSSLAsymmetricKey &$private_key , array|null $options = null , array|null $extra_attributes = null ) : OpenSSLCertificateSigningRequest|false

openssl_csr_new() erzeugt einen neuen CSR (Certificate Signing Request, Zertifikats-Signierungsanfrage) basierend auf den Informationen, die mit dem Parameter distinguished_names angegeben werden.

Hinweis: Die ordnungsgemäße Ausführung dieser Funktion setzt die Installation einer gültigen openssl.cnf-Datei voraus. Mehr Information hierzu finden sie im Installationsabschnitt.

Parameter-Liste

distinguished_names

Der Distinguished Name oder die Subjekt-Felder, die im Zertifikat verwendet werden sollen.

private_key

Der private_key muss ein privater Schlüssel sein, der vorher mit openssl_pkey_new() (oder einer anderen Funktion aus der openssl_pkey-Familie) erzeugt wurde. Der entsprechende öffentliche Teil des Schlüssels wird verwendet, um den CSR zu signieren.

options

In der Standardeinstellung werden die Informationen für die Anfrage aus der openssl.conf ihres Systems verwendet. Sie können einen Konfigurationsabsschnitt mit dem Schlüssel config_section_section des Arrays options setzen. Außerdem haben Sie die Möglichkeit, eine alternative OpenSSL-Konfigurationsdatei anzugeben, indem Sie den Wert des Schlüssels config auf den Pfad zu der Datei setzen, die Sie verwenden möchten. Die unten in der Tabelle aufgeführten Schlüssel, soweit in options vorhanden, verhalten sich genau gleich wie die entsprechenden Werte in der openssl.conf

Überschreiben der Konfiguration
options-Schlüssel | Typ | openssl.conf-Entsprechung | Beschreibung
digest_alg | string | default_md | Digest-Methode oder Signaturhash, üblicherweise eins von openssl_get_md_methods().
x509_extensions | string | x509_extensions | Bestimmt, welche Erweiterung verwendet werden soll, wenn ein x509-Zertifikat erzeugt werden soll.
req_extensions | string | req_extensions | Bestimmt welche Erweiterung verwendet werden soll, wenn eine Zertifikats-Signierungsanfrage (CSR) erzeugt werden soll.
private_key_bits | int | default_bits | Bestimmt wieviele Bits verwendet werden sollen, um einen privaten Schlüssel zu erzeugen.
private_key_type | int | keine | Bestimmt den Typ des privaten Schlüssels, der erzeugt werden soll. Der Typ kann einer der folgenden sein: OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_RSA oder OPENSSL_KEYTYPE_EC. Der Standardwert ist OPENSSL_KEYTYPE_RSA.
encrypt_key | bool | encrypt_key | Soll ein exportierter Schlüssel (mit Passphrase) verschlüsselt werden?
encrypt_key_cipher | int | keine | Eine der Ziffer-Konstanten.
curve_name | string | none | Einer der openssl_get_curve_names().
config | string | N/A | Pfad zur eigenen alternativen openssl.conf-Datei.

extra_attributes

extra_attributeskann verwendet werden, um zusätzliche Konfigurationsoptionen für den CSR anzugeben. Sowohl distinguished_names als auch extra_attributes sind assoziative Arrays, deren Schlüssel zu OIDs konvertiert und auf den relevanten Teil der Anfrage angewendet werden.

Rückgabewerte

Gibt den CSR zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine OpenSSLCertificateSigningRequest-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR zurückgegeben.
8.0.0 | private_key akzeptiert nun eine OpenSSLAsymmetricKey-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel akzeptiert.
7.1.0 | options unterstützt nun auch curve_name.

Beispiele

Beispiel #1 Erzeugen eines selbstsignierten Zertifikats

<?php
// bei SSL-Zertifikate ist der commonName der zu sichernde Domain-Name
// bei S/MIME-Zertifikate ist der commonName der Eigentümer der E-Mail-Adresse
// die Felder location und identification beziehen sich auf den Eigentümer der
// zu sichernden Domain oder des E-Mail-Eigentümers
$dn = array(
    "countryName" => "GB",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@example.com"
);

// Erzeugen eines neuen privaten (und öffentlichen) Schlüsselpaars
$privkey = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));

// Erzeugen einer Zertifikats-Signierungsanfrage
$csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));

// Erzeugen eines selbstsignierten Zertifikats, das für die Dauer von 365 Tagen
// gültig ist.
$x509 = openssl_csr_sign($csr, null, $privkey, $days=365, array('digest_alg' => 'sha256'));

// Sichern des privaten Schlüssels, des CSR und des selbstsignierten
// Zertifikats für die spätere Verwendung
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($x509, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);

// Anzeigen aller aufgetretenen Fehler
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Beispiel #2 Erzeugen eines selbstsignierten ECC-Zertifikats (von PHP 7.1.0 an)

<?php
$subject = array(
    "commonName" => "docs.php.net",
);

// Erzeugen eines neuen privaten (und öffentlichen) Schlüsselpaars
$private_key = openssl_pkey_new(array(
    "private_key_type" => OPENSSL_KEYTYPE_EC,
    "curve_name" => 'prime256v1',
));

// Erzeugen einer Zertifikats-Signierungsanfrage
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha384'));

// Erzeugen eines selbstsignierten EC-Zertifikats
$x509 = openssl_csr_sign($csr, null, $private_key, $days=365, array('digest_alg' => 'sha384'));
openssl_x509_export_to_file($x509, 'ecc-cert.pem');
openssl_pkey_export_to_file($private_key, 'ecc-private.key');
?>

Siehe auch

  • openssl_csr_sign() - Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat


Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat

  • « openssl_csr_new
  • openssl_decrypt »
  • PHP Manual
  • OpenSSL-Funktionen
  • Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat

openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_sign — Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat

Beschreibung

openssl_csr_sign ( OpenSSLCertificateSigningRequest|string $csr , OpenSSLCertificate|string|null $ca_certificate , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key , int $days , array|null $options = null , int $serial = 0 ) : OpenSSLCertificate|false

openssl_csr_sign() erzeugt eine x509-Zertifikatressource aus dem übergebenen CSR.

Hinweis: Die ordnungsgemäße Ausführung dieser Funktion setzt die Installation einer gültigen openssl.cnf-Datei voraus. Mehr Information hierzu finden sie im Installationsabschnitt.

Parameter-Liste

csr

Ein zuvor mit openssl_csr_new() erzeugter CSR. Es kann sich aber auch um den Pfad zu einer PEM-kodierten CSR-Datei in der Form file://path/to/csr handeln, oder eine Zeichenkette wie von openssl_csr_export() zurückgegeben.

ca_certificate

Das generierte Zertifikat wird mit ca_certificate signiert. Falls hier null angegeben wird, wird ein selbstsigniertes Zertifikat erstellt.

private_key

private_key ist der zu ca_certificate gehörende private Schlüssel.

days

days gibt die Gültigkeitsdauer des Zertifikats in Tagen an.

options

Mit options kann die Signierung des CSR feiner abgestimmt werden. Weitere Informationen zu options sind openssl_csr_new() zu entnehmen.

serial

Eine optionale Seriennummer für das ausgestellte Zertifikat. Wenn nicht angegeben, wird der Standardwert 0 verwendet.

Rückgabewerte

Gibt bei Erfolg ein OpenSSLCertificate zurück, false bei einem Fehler.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine OpenSSLCertificate-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL X.509 zurückgegeben.
8.0.0 | csr akzeptiert nun eine OpenSSLCertificateSigningRequest-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
8.0.0 | ca_certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.
8.0.0 | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.

Beispiele

Beispiel #1 openssl_csr_sign()-Beispiel - Signieren eines CSR (wie eine eigene CA implementiert wird)

<?php
// Annahme: dieses Skript erhält einen CSR, der auf einer anderen Seite in
// eine Textarea eingegeben wurde.
$csrdata = $_POST["CSR"];

// Wir werden die Anfrage mit unserem eigenen
// "certificate authority"-Zertifikat signieren. Sie können jedes beliebige
// Zertifikat verwenden, um ein anderes zu signieren. Aber das Ganze ist
// ziemlich nutzlos, solange die Software/Benutzer, die dieses neu signierte
// Zertifikat nutzen werden, dem signierenden Zertifikat nicht vertrauen.

// Wir benötigen unser CA-Zertifikat und dessen privaten Schlüssel
$cacert = "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key", "your_ca_key_passphrase");

$usercert = openssl_csr_sign($csrdata, $cacert, $privkey, 365, array('digest_alg'=>'sha256') );

// Jetzt zeigen wir das generierte Zertifikat an, damit die Benutzer es
// kopieren und in ihre lokale Konfiguration einfügen können (wie z.B. eine
// Datei, die das Zertifikat für ihren SSL-Server enthalten soll.
openssl_x509_export($usercert, $certout);
echo $certout;

// Anzeigen aller aufgetretenen Fehler
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>


Decrypts data

  • « openssl_csr_sign
  • openssl_dh_compute_key »
  • PHP Manual
  • OpenSSL-Funktionen
  • Decrypts data

openssl_decrypt

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_decrypt — Decrypts data

Beschreibung

openssl_decrypt ( string $data , string $cipher_algo , string $passphrase , int $options = 0 , string $iv = "" , string $tag = "" , string $aad = "" ) : string|false

Takes a raw or base64 encoded string and decrypts it using a given method and key.

Parameter-Liste

data

The encrypted message to be decrypted.

cipher_algo

The cipher method. For a list of available cipher methods, use openssl_get_cipher_methods().

passphrase

The key.

options

options can be one of OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING.

iv

A non-NULL Initialization Vector.

tag

The authentication tag in AEAD cipher mode. If it is incorrect, the authentication fails and the function returns false.

Achtung

The length of the tag is not checked by the function. It is the caller's responsibility to ensure that the length of the tag matches the length of the tag retrieved when openssl_encrypt() has been called. Otherwise the decryption may succeed if the given tag only matches the start of the proper tag.

aad

Additional authentication data.

Rückgabewerte

The decrypted string on successIm Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

Emits an E_WARNING level error if an unknown cipher algorithm is passed via the cipher_algo parameter.

Emits an E_WARNING level error if an empty value is passed in via the iv parameter.

Changelog

Version | Beschreibung
7.1.0 | The tag and aad parameters were added.

Siehe auch

  • openssl_encrypt() - Verschlüsselt Daten


Computes shared secret for public value of remote DH public key and local DH key

  • « openssl_decrypt
  • openssl_digest »
  • PHP Manual
  • OpenSSL-Funktionen
  • Computes shared secret for public value of remote DH public key and local DH key

openssl_dh_compute_key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_dh_compute_key — Computes shared secret for public value of remote DH public key and local DH key

Beschreibung

openssl_dh_compute_key ( string $public_key , OpenSSLAsymmetricKey $private_key ) : string|false

The shared secret returned by openssl_dh_compute_key() is often used as an encryption key to secretly communicate with a remote party. This is known as the Diffie-Hellman key exchange.

Parameter-Liste

public_key

DH Public key of the remote party.

private_key

A local DH private key, corresponding to the public key to be shared with the remote party.

Rückgabewerte

Returns shared secret on successIm Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | private_key accepts an OpenSSLAsymmetricKey now; previously, a Ressource of type OpenSSL key was accepted.

Beispiele

Beispiel #1 Compute a shared secret

First generate a public/private DH keypair locally, and have the remote party do the same. We need to use the openssl command-line utility.

# generate private/public key keypair
openssl dhparam -out dhparam.pem 2048
openssl genpkey -paramfile dhparam.pem -out privatekey.pem

# extract public key only
openssl pkey -in privatekey.pem -pubout -out publickey.pem

Next, send your public key to the remote party. Use the openssl pkey command to view the public key you will be sent from the remote party.

openssl pkey -pubin -in remotepublickey.pem -text -noout

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

PKCS#3 DH Public-Key: (2048 bit)
    public-key:
        67:e5:e5:fa:e0:7b:0f:96:2c:dc:96:44:5f:50:02:
        9e:8d:c2:6c:04:68:b0:d1:1d:75:66:fc:63:f5:e3:
        42:30:b8:96:c1:45:cc:08:60:b4:21:3b:dd:ee:66:
        88:db:77:d9:1e:11:89:d4:5c:f2:7a:f2:f1:fe:1c:
        77:9d:6f:13:b8:b2:56:00:ef:cb:3b:60:79:74:02:
        98:f5:f9:8e:3e:b5:62:08:de:ca:8c:c3:40:4a:80:
        79:d5:43:06:17:a8:19:56:af:cc:95:5e:e2:32:2d:
        d2:14:7b:76:5a:9a:f1:3c:76:76:35:cc:7b:c1:a5:
        f4:39:e5:b6:ca:71:3f:7c:3f:97:e5:ab:86:c1:cd:
        0e:e6:ee:04:c9:e6:2d:80:7e:59:c0:49:eb:b6:64:
        4f:a8:f9:bb:a3:87:b3:3d:76:01:9e:2b:16:94:a4:
        37:30:fb:35:e2:63:be:23:90:b9:ef:3f:46:46:04:
        94:8f:60:79:7a:51:55:d6:1a:1d:f5:d9:7f:4a:3e:
        aa:ac:b0:d0:82:cc:c2:e0:94:e0:54:c1:17:83:0b:
        74:08:4d:5a:79:ae:ff:7f:1c:04:ab:23:39:4a:ae:
        87:83:55:43:ab:7a:7c:04:9d:20:80:bb:af:5f:16:
        a3:e3:20:b9:21:47:8c:f8:7f:a8:60:80:9e:61:77:
        36
 [...abbreviated...]

Use this public key as a parameter to openssl_dh_compute_key() in order to compute the shared secret.

<?php
$remote_public_key = '67e5e5fae07b0f962cdc96445f50029e8dc26c0468b0d11d7566fc63f5e34230b896c145cc0860b4213bddee6688db77d91e1189d45cf27af2f1fe1c779d6f13b8b25600efcb3b6079740298f5f98e3eb56208deca8cc3404a8079d5430617a81956afcc955ee2322dd2147b765a9af13c767635cc7bc1a5f439e5b6ca713f7c3f97e5ab86c1cd0ee6ee04c9e62d807e59c049ebb6644fa8f9bba387b33d76019e2b1694a43730fb35e263be2390b9ef3f464604948f60797a5155d61a1df5d97f4a3eaaacb0d082ccc2e094e054c117830b74084d5a79aeff7f1c04ab23394aae87835543ab7a7c049d2080bbaf5f16a3e320b921478cf87fa860809e617736';

$local_priv_key = openssl_pkey_get_private('file://privatekey.pem');

$shared_secret = openssl_dh_compute_key(hex2bin($remote_public_key), $local_priv_key);
echo bin2hex($shared_secret)."\n";
?>

Beispiel #2 Generate a DH public/private keypair in php

First, generate the DH prime number

openssl dhparam -out dhparam.pem 2048
openssl dh -in dhparam.pem -noout  -text

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    PKCS#3 DH Parameters: (2048 bit)
        prime:
            00:a3:25:1e:73:3f:44:b9:2b:ee:f4:9d:9f:37:6a:
            4b:fd:1d:bd:f4:af:da:c8:10:77:59:41:c6:5f:73:
            d2:88:29:39:cd:1c:5f:c3:9f:0f:22:d2:9c:20:c1:
            e4:c0:18:03:b8:b6:d8:da:ad:3b:39:a6:da:8e:fe:
            12:30:e9:03:5d:22:ba:ef:18:d2:7b:69:f9:5b:cb:
            78:c6:0c:8c:6b:f2:49:92:c2:49:e0:45:77:72:b3:
            55:36:30:f2:40:17:89:18:50:03:fa:2d:54:7a:7f:
            34:4c:73:32:b6:88:14:51:14:be:80:57:95:e6:a3:
            f6:51:ff:17:47:4f:15:d6:0e:6c:47:53:72:2c:2a:
            4c:21:cb:7d:f3:49:97:c9:47:5e:40:33:7b:99:52:
            7e:7a:f3:52:27:80:de:1b:26:6b:40:bb:14:11:0b:
            fb:e6:d8:2f:cf:a0:06:2f:96:b9:1c:0b:b4:cb:d3:
            a6:62:9c:48:67:f6:81:f2:c6:ff:45:03:0a:9d:67:
            9d:ce:27:d9:6b:48:5d:ca:fb:c2:5d:84:9b:8b:cb:
            40:c7:a4:0c:8a:6e:f4:ab:ba:b6:10:c3:b8:25:4d:
            cf:60:96:f4:db:e8:00:1c:58:47:7a:fb:51:86:d1:
            22:d7:4e:94:31:7a:d5:da:3d:53:de:da:bb:64:8d:
            62:6b
        generator: 2 (0x2)

Prime and generator values ares passed as p and g into openssl_pkey_new()

<?php
$configargs = array();
$configargs['p'] = hex2bin('00a3251e733f44b92beef49d9f376a4bfd1dbdf4afdac810775941c65f73d2882939cd1c5fc39f0f22d29c20c1e4c01803b8b6d8daad3b39a6da8efe1230e9035d22baef18d27b69f95bcb78c60c8c6bf24992c249e0457772b3553630f2401789185003fa2d547a7f344c7332b688145114be805795e6a3f651ff17474f15d60e6c4753722c2a4c21cb7df34997c9475e40337b99527e7af3522780de1b266b40bb14110bfbe6d82fcfa0062f96b91c0bb4cbd3a6629c4867f681f2c6ff45030a9d679dce27d96b485dcafbc25d849b8bcb40c7a40c8a6ef4abbab610c3b8254dcf6096f4dbe8001c58477afb5186d122d74e94317ad5da3d53dedabb648d626b');
$configargs['g'] = hex2bin('02');
$private_key = openssl_pkey_new(array('dh' => $configargs));
openssl_pkey_export_to_file($private_key,'privatekey.pem',$passphrase='y0urp@s5phr@se');

$details = openssl_pkey_get_details($private_key);
$local_pub_key = $details['dh']['pub_key'];
echo bin2hex($local_pub_key)."\n";//you can send your public key to the remote party

$details = openssl_pkey_get_details(openssl_pkey_get_public("file://remotepublickey.pem"));
$remote_public_key = $details['dh']['pub_key'];
$shared_secret = openssl_dh_compute_key($remote_public_key, $private_key);
echo bin2hex($shared_secret)."\n";
?>

Siehe auch

  • openssl_pkey_new() - Erzeugt einen neuen privaten Schlüssel
  • openssl_pkey_get_details() - Liefert ein Array mit Schlüssel-Details
  • openssl_pkey_get_private() - Liefert einen privaten Schlüssel
  • openssl_pkey_get_public() - Extrahiert einen öffentlichen Schlüssel aus einem Zertifikat und bereitet diesen zur Verwendung vor


Computes a digest

  • « openssl_dh_compute_key
  • openssl_encrypt »
  • PHP Manual
  • OpenSSL-Funktionen
  • Computes a digest

openssl_digest

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_digest — Computes a digest

Beschreibung

openssl_digest ( string $data , string $digest_algo , bool $binary = false ) : string|false

Computes a digest hash value for the given data using a given method, and returns a raw or binhex encoded string.

Parameter-Liste

data

The data.

digest_algo

The digest method to use, e.g. "sha256", see openssl_get_md_methods() for a list of available digest methods.

binary

Setting to true will return as raw output data, otherwise the return value is binhex encoded.

Rückgabewerte

Returns the digested hash value on successIm Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

Emits an E_WARNING level error if an unknown signature algorithm is passed via the digest_algo parameter.

Siehe auch

  • openssl_get_md_methods() - Gets available digest methods


Verschlüsselt Daten

  • « openssl_digest
  • openssl_error_string »
  • PHP Manual
  • OpenSSL-Funktionen
  • Verschlüsselt Daten

openssl_encrypt

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_encrypt — Verschlüsselt Daten

Beschreibung

openssl_encrypt ( string $data , string $cipher_algo , string $passphrase , int $options = 0 , string $iv = "" , string &$tag = null , string $aad = "" , int $tag_length = 16 ) : string|false

Verschlüsselt die Daten mit den angegebenen Methode und Schlüssel. Die Rückgabe kann aus unbearbeiteten oder base64-kodierten Zeichenketten bestehen.

Parameter-Liste

data

Die zu verschlüsselnde Klartextnachricht.

cipher_algo

Die Verschlüsselungsmethode. openssl_get_cipher_methods() liefert eine Liste der verfügbaren Verschlüsselungsmethoden.

passphrase

Die Passphrase. Ist die Passphrase kürzer als erwartet, wird sie stillschweigend mit NUL-Zeichen aufgefüllt; ist die Passphrase länger als erwartet, wird sie stillschweigend abgeschnitten.

options

options ist eine bitweise Verknüpfung der Flags OPENSSL_RAW_DATA und OPENSSL_ZERO_PADDING.

iv

Der Initialisierungsvektor (darf nicht NULL sein).

tag

Das Authentifizierungskennzeichen das per Referenz übergeben wird, wenn der AEAD-Verschlüsselungsmodus (GCM oder CCM) verwendet wird.

aad

Zusätzliche Authentifizierungsdaten.

tag_length

Die Länge des Authentifizierungskennzeichens tag. Der Wert liegt beim GCM-Modus zwischen 4 und 16.

Rückgabewerte

Gibt nach erfolgreicher Verarbeitung die verschlüsselte Zeichenkette zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Gibt einen Fehler der Stufe E_WARNING aus, wenn eine unbekannte Verschlüsselungsmethode über den Parameter cipher_algo übergeben wurde.

Gibt einen Fehler der Stufe E_WARNING aus, wenn eine leere Zeichenkette über den Parameter iv übergeben wurde.

Changelog

Version | Beschreibung
7.1.0 | Die Parameter tag, aad und tag_length wurden hinzugefügt.

Beispiele

Beispiel #1 AES Authenticated Encryption im GCM-Modus, Beispiel für PHP 7.1+

<?php
// $key sollte zuvor auf eine kryptographisch sichere Weise erzeugt worden
// sein, z.B. per openssl_random_pseudo_bytes
$plaintext = "zu verschlüsselnde Nachricht";
$cipher = "aes-128-gcm";
if (in_array($cipher, openssl_get_cipher_methods()))
{
    $ivlen = openssl_cipher_iv_length($cipher);
    $iv = openssl_random_pseudo_bytes($ivlen);
    $ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv, $tag);
    // speichere $cipher, $iv und $tag für spätere Entschlüsselung
    $original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv, $tag);
    echo $original_plaintext."\n";
}
?>

Beispiel #2 AES Authenticated Encryption, Beispiel für PHP 5.6+

<?php
// $key sollte zuvor auf eine kryptographisch sichere Weise erzeugt worden
// sein, z.B. per openssl_random_pseudo_bytes
$plaintext = "zu verschlüsselnde Nachricht";
$ivlen = openssl_cipher_iv_length($cipher="AES-128-CBC");
$iv = openssl_random_pseudo_bytes($ivlen);
$ciphertext_raw = openssl_encrypt($plaintext, $cipher, $key, $options=OPENSSL_RAW_DATA, $iv);
$hmac = hash_hmac('sha256', $ciphertext_raw, $key, $as_binary=true);
$ciphertext = base64_encode( $iv.$hmac.$ciphertext_raw );

// spätere Entschlüsselung ...
$c = base64_decode($ciphertext);
$ivlen = openssl_cipher_iv_length($cipher="AES-128-CBC");
$iv = substr($c, 0, $ivlen);
$hmac = substr($c, $ivlen, $sha2len=32);
$ciphertext_raw = substr($c, $ivlen+$sha2len);
$original_plaintext = openssl_decrypt($ciphertext_raw, $cipher, $key, $options=OPENSSL_RAW_DATA, $iv);
$calcmac = hash_hmac('sha256', $ciphertext_raw, $key, $as_binary=true);
if (hash_equals($hmac, $calcmac)) // PHP 5.6+ Rechenzeitangriff-sicherer Vergleich
{
    echo $original_plaintext."\n";
}
?>

Siehe auch

  • openssl_decrypt() - Decrypts data


Liefert eine OpenSSL-Fehlermeldung

  • « openssl_encrypt
  • openssl_free_key »
  • PHP Manual
  • OpenSSL-Funktionen
  • Liefert eine OpenSSL-Fehlermeldung

openssl_error_string

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_error_string — Liefert eine OpenSSL-Fehlermeldung

Beschreibung

openssl_error_string ( ) : string|false

openssl_error_string() gibt den letzten Fehlertext der OpenSSL-Bibliothek zurück. Fehler werden in einer Queue gesammelt, daher sollte diese Funktion mehrmals aufgerufen werden, um alle Informationen zu erhalten. Der letzte Fehler ist der zuletzt aufgetretene.

Rückgabewerte

Gibt eine Fehlermeldung als Zeichenkette zurück oder false, sofern keine weiteren Fehlermeldungen vorliegen.

Beispiele

Beispiel #1 openssl_error_string()-Beispiel

<?php
// Annahme: Sie haben eine openssl-Funktion aufgerufen, die einen Fehler
// verursacht hat.
while ($msg = openssl_error_string())
    echo $msg . "<br />\n";
?>


Gibt eine Schlüssel-Ressource frei

  • « openssl_error_string
  • openssl_get_cert_locations »
  • PHP Manual
  • OpenSSL-Funktionen
  • Gibt eine Schlüssel-Ressource frei

openssl_free_key

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_free_key — Gibt eine Schlüssel-Ressource frei

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

openssl_free_key ( OpenSSLAsymmetricKey $key ) : void

openssl_free_key() gibt den Speicher des über den Parameter key identifizierten Schlüssels frei.

Parameter-Liste

key

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist nun veraltet, da sie keine Auswirkung mehr hat.
8.0.0 | key akzeptiert nun eine OpenSSLAsymmetricKey-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel akzeptiert.


Retrieve the available certificate locations

  • « openssl_free_key
  • openssl_get_cipher_methods »
  • PHP Manual
  • OpenSSL-Funktionen
  • Retrieve the available certificate locations

openssl_get_cert_locations

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_get_cert_locations — Retrieve the available certificate locations

Beschreibung

openssl_get_cert_locations ( ) : array

openssl_get_cert_locations() returns an array with information about the available certificate locations that will be searched for SSL certificates.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array with the available certificate locations.

Beispiele

Beispiel #1 openssl_get_cert_locations() example

<?php
var_dump(openssl_get_cert_locations());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(8) {
  ["default_cert_file"]=>
  string(21) "/usr/lib/ssl/cert.pem"
  ["default_cert_file_env"]=>
  string(13) "SSL_CERT_FILE"
  ["default_cert_dir"]=>
  string(18) "/usr/lib/ssl/certs"
  ["default_cert_dir_env"]=>
  string(12) "SSL_CERT_DIR"
  ["default_private_dir"]=>
  string(20) "/usr/lib/ssl/private"
  ["default_default_cert_area"]=>
  string(12) "/usr/lib/ssl"
  ["ini_cafile"]=>
  string(0) ""
  ["ini_capath"]=>
  string(0) ""
}


Gets available cipher methods

  • « openssl_get_cert_locations
  • openssl_get_curve_names »
  • PHP Manual
  • OpenSSL-Funktionen
  • Gets available cipher methods

openssl_get_cipher_methods

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_get_cipher_methods — Gets available cipher methods

Beschreibung

openssl_get_cipher_methods ( bool $aliases = false ) : array

Gets a list of available cipher methods.

Parameter-Liste

aliases

Set to true if cipher aliases should be included within the returned array.

Rückgabewerte

An array of available cipher methods. Note that prior to OpenSSL 1.1.1, the cipher methods have been returned in upper case and lower case spelling; as of OpenSSL 1.1.1 only the lower case variants are returned.

Beispiele

Beispiel #1 openssl_get_cipher_methods() example

Shows how the available ciphers might look, and also which aliases might be available.

<?php
$ciphers             = openssl_get_cipher_methods();
$ciphers_and_aliases = openssl_get_cipher_methods(true);
$cipher_aliases      = array_diff($ciphers_and_aliases, $ciphers);

//ECB mode should be avoided
$ciphers = array_filter( $ciphers, function($n) { return stripos($n,"ecb")===FALSE; } );

//At least as early as Aug 2016, Openssl declared the following weak: RC2, RC4, DES, 3DES, MD5 based
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"des")===FALSE; } );
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"rc2")===FALSE; } );
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"rc4")===FALSE; } );
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"md5")===FALSE; } );
$cipher_aliases = array_filter($cipher_aliases,function($c) { return stripos($c,"des")===FALSE; } );
$cipher_aliases = array_filter($cipher_aliases,function($c) { return stripos($c,"rc2")===FALSE; } );

print_r($ciphers);
print_r($cipher_aliases);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => aes-128-cbc
    [1] => aes-128-cbc-hmac-sha1
    [2] => aes-128-cbc-hmac-sha256
    [3] => aes-128-ccm
    [4] => aes-128-cfb
    [5] => aes-128-cfb1
    [6] => aes-128-cfb8
    [7] => aes-128-ctr
    [9] => aes-128-gcm
    [10] => aes-128-ocb
    [11] => aes-128-ofb
    [12] => aes-128-xts
    [13] => aes-192-cbc
    [14] => aes-192-ccm
    [15] => aes-192-cfb
    [16] => aes-192-cfb1
    [17] => aes-192-cfb8
    [18] => aes-192-ctr
    [20] => aes-192-gcm
    [21] => aes-192-ocb
    [22] => aes-192-ofb
    [23] => aes-256-cbc
    [24] => aes-256-cbc-hmac-sha1
    [25] => aes-256-cbc-hmac-sha256
    [26] => aes-256-ccm
    [27] => aes-256-cfb
    [28] => aes-256-cfb1
    [29] => aes-256-cfb8
    [30] => aes-256-ctr
    [32] => aes-256-gcm
    [33] => aes-256-ocb
    [34] => aes-256-ofb
    [35] => aes-256-xts
    [36] => aria-128-cbc
    [37] => aria-128-ccm
    [38] => aria-128-cfb
    [39] => aria-128-cfb1
    [40] => aria-128-cfb8
    [41] => aria-128-ctr
    [43] => aria-128-gcm
    [44] => aria-128-ofb
    [45] => aria-192-cbc
    [46] => aria-192-ccm
    [47] => aria-192-cfb
    [48] => aria-192-cfb1
    [49] => aria-192-cfb8
    [50] => aria-192-ctr
    [52] => aria-192-gcm
    [53] => aria-192-ofb
    [54] => aria-256-cbc
    [55] => aria-256-ccm
    [56] => aria-256-cfb
    [57] => aria-256-cfb1
    [58] => aria-256-cfb8
    [59] => aria-256-ctr
    [61] => aria-256-gcm
    [62] => aria-256-ofb
    [63] => bf-cbc
    [64] => bf-cfb
    [66] => bf-ofb
    [67] => camellia-128-cbc
    [68] => camellia-128-cfb
    [69] => camellia-128-cfb1
    [70] => camellia-128-cfb8
    [71] => camellia-128-ctr
    [73] => camellia-128-ofb
    [74] => camellia-192-cbc
    [75] => camellia-192-cfb
    [76] => camellia-192-cfb1
    [77] => camellia-192-cfb8
    [78] => camellia-192-ctr
    [80] => camellia-192-ofb
    [81] => camellia-256-cbc
    [82] => camellia-256-cfb
    [83] => camellia-256-cfb1
    [84] => camellia-256-cfb8
    [85] => camellia-256-ctr
    [87] => camellia-256-ofb
    [88] => cast5-cbc
    [89] => cast5-cfb
    [91] => cast5-ofb
    [92] => chacha20
    [93] => chacha20-poly1305
    [111] => id-aes128-CCM
    [112] => id-aes128-GCM
    [113] => id-aes128-wrap
    [114] => id-aes128-wrap-pad
    [115] => id-aes192-CCM
    [116] => id-aes192-GCM
    [117] => id-aes192-wrap
    [118] => id-aes192-wrap-pad
    [119] => id-aes256-CCM
    [120] => id-aes256-GCM
    [121] => id-aes256-wrap
    [122] => id-aes256-wrap-pad
    [124] => idea-cbc
    [125] => idea-cfb
    [127] => idea-ofb
    [137] => seed-cbc
    [138] => seed-cfb
    [140] => seed-ofb
    [141] => sm4-cbc
    [142] => sm4-cfb
    [143] => sm4-ctr
    [145] => sm4-ofb
)
Array
(
    [36] => aes128
    [37] => aes128-wrap
    [38] => aes192
    [39] => aes192-wrap
    [40] => aes256
    [41] => aes256-wrap
    [69] => aria128
    [70] => aria192
    [71] => aria256
    [72] => bf
    [77] => blowfish
    [99] => camellia128
    [100] => camellia192
    [101] => camellia256
    [102] => cast
    [103] => cast-cbc
    [146] => idea
    [164] => seed
    [169] => sm4
)

Siehe auch

  • openssl_get_md_methods() - Gets available digest methods


Gets list of available curve names for ECC

  • « openssl_get_cipher_methods
  • openssl_get_md_methods »
  • PHP Manual
  • OpenSSL-Funktionen
  • Gets list of available curve names for ECC

openssl_get_curve_names

(PHP 7 >= 7.1.0, PHP 8)

openssl_get_curve_names — Gets list of available curve names for ECC

Beschreibung

openssl_get_curve_names ( ) : array|false

Gets the list of available curve names for use in Elliptic curve cryptography (ECC) for public/private key operations. The two most widely standardized/supported curves are prime256v1 (NIST P-256) and secp384r1 (NIST P-384).

Approximate Equivalancies of AES, RSA, DSA and ECC Keysizes
AES Symmetric Keysize (Bits) | RSA and DSA Keysize (Bits) | ECC Keysize (Bits)
80 | 1024 | 160
112 | 2048 | 224
128 | 3072 | 256
192 | 7680 | 384
256 | 15360 | 512
» NIST recommends using ECC curves with at least 256 bits.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of available curve names, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 openssl_get_curve_names() example

<?php
$curve_names = openssl_get_curve_names();
print_r($curve_names);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => secp112r1
    [1] => secp112r2
    [2] => secp128r1
    [3] => secp128r2
    [4] => secp160k1
    [5] => secp160r1
    [6] => secp160r2
    [7] => secp192k1
    [8] => secp224k1
    [9] => secp224r1
    [10] => secp256k1
    [11] => secp384r1
    [12] => secp521r1
    [13] => prime192v1
    [14] => prime192v2
    [15] => prime192v3
    [16] => prime239v1
    [17] => prime239v2
    [18] => prime239v3
    [19] => prime256v1
    [20] => sect113r1
    [21] => sect113r2
    [22] => sect131r1
    [23] => sect131r2
    [24] => sect163k1
    [25] => sect163r1
    [26] => sect163r2
    [27] => sect193r1
    [28] => sect193r2
    [29] => sect233k1
    [30] => sect233r1
    [31] => sect239k1
    [32] => sect283k1
    [33] => sect283r1
    [34] => sect409k1
    [35] => sect409r1
    [36] => sect571k1
    [37] => sect571r1
    [38] => c2pnb163v1
    [39] => c2pnb163v2
    [40] => c2pnb163v3
    [41] => c2pnb176v1
    [42] => c2tnb191v1
    [43] => c2tnb191v2
    [44] => c2tnb191v3
    [45] => c2pnb208w1
    [46] => c2tnb239v1
    [47] => c2tnb239v2
    [48] => c2tnb239v3
    [49] => c2pnb272w1
    [50] => c2pnb304w1
    [51] => c2tnb359v1
    [52] => c2pnb368w1
    [53] => c2tnb431r1
    [54] => wap-wsg-idm-ecid-wtls1
    [55] => wap-wsg-idm-ecid-wtls3
    [56] => wap-wsg-idm-ecid-wtls4
    [57] => wap-wsg-idm-ecid-wtls5
    [58] => wap-wsg-idm-ecid-wtls6
    [59] => wap-wsg-idm-ecid-wtls7
    [60] => wap-wsg-idm-ecid-wtls8
    [61] => wap-wsg-idm-ecid-wtls9
    [62] => wap-wsg-idm-ecid-wtls10
    [63] => wap-wsg-idm-ecid-wtls11
    [64] => wap-wsg-idm-ecid-wtls12
    [65] => Oakley-EC2N-3
    [66] => Oakley-EC2N-4
    [67] => brainpoolP160r1
    [68] => brainpoolP160t1
    [69] => brainpoolP192r1
    [70] => brainpoolP192t1
    [71] => brainpoolP224r1
    [72] => brainpoolP224t1
    [73] => brainpoolP256r1
    [74] => brainpoolP256t1
    [75] => brainpoolP320r1
    [76] => brainpoolP320t1
    [77] => brainpoolP384r1
    [78] => brainpoolP384t1
    [79] => brainpoolP512r1
    [80] => brainpoolP512t1
)


Gets available digest methods

  • « openssl_get_curve_names
  • openssl_get_privatekey »
  • PHP Manual
  • OpenSSL-Funktionen
  • Gets available digest methods

openssl_get_md_methods

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_get_md_methods — Gets available digest methods

Beschreibung

openssl_get_md_methods ( bool $aliases = false ) : array

Gets a list of available digest methods.

Parameter-Liste

aliases

Set to true if digest aliases should be included within the returned array.

Rückgabewerte

An array of available digest methods.

Beispiele

Beispiel #1 openssl_get_md_methods() example

Shows how the available digests might look, and also which aliases might be available.

<?php
$digests             = openssl_get_md_methods();
$digests_and_aliases = openssl_get_md_methods(true);
$digest_aliases      = array_diff($digests_and_aliases, $digests);

print_r($digests);

print_r($digest_aliases);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => DSA
    [1] => DSA-SHA
    [2] => MD2
    [3] => MD4
    [4] => MD5
    [5] => RIPEMD160
    [6] => SHA
    [7] => SHA1
    [8] => SHA224
    [9] => SHA256
    [10] => SHA384
    [11] => SHA512
    [12] => dsaEncryption
    [13] => dsaWithSHA
    [14] => ecdsa-with-SHA1
    [15] => md2
    [16] => md4
    [17] => md5
    [18] => ripemd160
    [19] => sha
    [20] => sha1
    [21] => sha224
    [22] => sha256
    [23] => sha384
    [24] => sha512
)
Array
(
    [2] => DSA-SHA1
    [3] => DSA-SHA1-old
    [4] => DSS1
    [9] => RSA-MD2
    [10] => RSA-MD4
    [11] => RSA-MD5
    [12] => RSA-RIPEMD160
    [13] => RSA-SHA
    [14] => RSA-SHA1
    [15] => RSA-SHA1-2
    [16] => RSA-SHA224
    [17] => RSA-SHA256
    [18] => RSA-SHA384
    [19] => RSA-SHA512
    [28] => dsaWithSHA1
    [29] => dss1
    [32] => md2WithRSAEncryption
    [34] => md4WithRSAEncryption
    [36] => md5WithRSAEncryption
    [37] => ripemd
    [39] => ripemd160WithRSA
    [40] => rmd160
    [43] => sha1WithRSAEncryption
    [45] => sha224WithRSAEncryption
    [47] => sha256WithRSAEncryption
    [49] => sha384WithRSAEncryption
    [51] => sha512WithRSAEncryption
    [52] => shaWithRSAEncryption
    [53] => ssl2-md5
    [54] => ssl3-md5
    [55] => ssl3-sha1
)

Siehe auch

  • openssl_digest() - Computes a digest
  • openssl_get_cipher_methods() - Gets available cipher methods


Alias von openssl_pkey_get_private

  • « openssl_get_md_methods
  • openssl_get_publickey »
  • PHP Manual
  • OpenSSL-Funktionen
  • Alias von openssl_pkey_get_private

openssl_get_privatekey

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_get_privatekey — Alias von openssl_pkey_get_private()

Beschreibung

Diese Funktion ist ein Alias für: openssl_pkey_get_private().


Alias von openssl_pkey_get_public

  • « openssl_get_privatekey
  • openssl_open »
  • PHP Manual
  • OpenSSL-Funktionen
  • Alias von openssl_pkey_get_public

openssl_get_publickey

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_get_publickey — Alias von openssl_pkey_get_public()

Beschreibung

Diese Funktion ist ein Alias für: openssl_pkey_get_public().


Öffnet versiegelte Daten

  • « openssl_get_publickey
  • openssl_pbkdf2 »
  • PHP Manual
  • OpenSSL-Funktionen
  • Öffnet versiegelte Daten

openssl_open

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_open — Öffnet versiegelte Daten

Beschreibung

openssl_open ( string $data , string &$output , string $encrypted_key , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key , string $cipher_algo , string|null $iv = null ) : bool

Die Funktion openssl_open() öffnet (entschlüsselt) data unter Verwendung des privaten Schlüssels, der mit der Schlüsselkennung private_key und dem Umschlagschlüssel encrypted_key verknüpft ist und füllt output mit den entschlüsselten Daten. Der Umschlagschlüssel wird bei der Versiegelung erzeugt und kann ausschließlich für einen bestimmten privaten Schlüssel verwendet werden. Mehr Informationen sind der Dokumentation zu openssl_seal() zu entnehmen.

Parameter-Liste

data

output

Bei erfolgreicher Ausführung werden die geöffneten Daten in diesem Parameter zurückgegeben.

encrypted_key

private_key

cipher_algo

Die Verschlüsselungsmethode.

Achtung

Der Standardwert ('RC4') wird als unsicher eingestuft. Es wird dringend empfohlen, explizit eine sichere Verschlüsselungsmethode anzugeben.

iv

Der Initialisierungsvektor.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 CSR akzeptiert.
8.0.0 | Der Parameter cipher_algo ist nicht mehr optional.

Beispiele

Beispiel #1 openssl_open()-Beispiel

<?php
// Annahme: $sealed und $env_key enthalten versiegelte Daten bzw. unseren
// Umschlagschlüssel; beide haben wir von dem Versiegelnden erhalten

// privaten Schlüssel aus einer Datei holen und vorbereiten
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// entschlüsseln der Daten und speichern in $open
if (openssl_open($sealed, $open, $env_key, $pkeyid)) {
    echo "Das sind die geöffneten Daten: ", $open;
} else {
    echo "Öffnen der Daten nicht möglich!";
}

// löschen des privaten Schlüssels aus dem Speicher
openssl_free_key($pkeyid);
?>

Siehe auch

  • openssl_seal() - Versiegelt (verschlüsselt) Daten


Generates a PKCS5 v2 PBKDF2 string

  • « openssl_open
  • openssl_pkcs12_export_to_file »
  • PHP Manual
  • OpenSSL-Funktionen
  • Generates a PKCS5 v2 PBKDF2 string

openssl_pbkdf2

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

openssl_pbkdf2 — Generates a PKCS5 v2 PBKDF2 string

Beschreibung

openssl_pbkdf2 ( string $password , string $salt , int $key_length , int $iterations , string $digest_algo = "sha1" ) : string|false

openssl_pbkdf2() computes PBKDF2 (Password-Based Key Derivation Function 2), a key derivation function defined in PKCS5 v2.

Parameter-Liste

password

Password from which the derived key is generated.

salt

PBKDF2 recommends a crytographic salt of at least 64 bits (8 bytes).

key_length

Length of desired output key.

iterations

The number of iterations desired. » NIST recommends at least 10,000.

digest_algo

Optional hash or digest algorithm from openssl_get_md_methods(). Defaults to SHA-1.

Rückgabewerte

Returns raw binary stringIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 openssl_pbkdf2() example

<?php
$password = 'yOuR-pAs5w0rd-hERe';
$salt = openssl_random_pseudo_bytes(12);
$keyLength = 40;
$iterations = 10000;
$generated_key = openssl_pbkdf2($password, $salt, $keyLength, $iterations, 'sha256');
echo bin2hex($generated_key)."\n";
echo base64_encode($generated_key)."\n";
?>

Siehe auch

  • hash_pbkdf2() - Generate a PBKDF2 key derivation of a supplied password
  • openssl_get_md_methods() - Gets available digest methods


Exportiert in eine PKCS#12-kompatible Zertifikats-Datei

  • « openssl_pbkdf2
  • openssl_pkcs12_export »
  • PHP Manual
  • OpenSSL-Funktionen
  • Exportiert in eine PKCS#12-kompatible Zertifikats-Datei

openssl_pkcs12_export_to_file

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

openssl_pkcs12_export_to_file — Exportiert in eine PKCS#12-kompatible Zertifikats-Datei

Beschreibung

openssl_pkcs12_export_to_file ( OpenSSLCertificate|string $certificate , string $output_filename , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key , string $passphrase , array $options = [] ) : bool

openssl_pkcs12_export_to_file() speichert certificate in der in output_filename angegebenen Datei im Format PKCS#12.

Parameter-Liste

x509

Siehe Schlüssel-/Zertifikatsparameter für eine Auflistung der gültigen Werte.

output_filename

Der Pfad zur Ausgabe-Datei.

private_key

Der private Schlüssel der PKCS#12-Datei. Siehe Schlüssel/Zertifikat-Parameter für eine Liste gültiger Werte.

passphrase

Das Passwort, um die PKCS#12-Datei zu entschlüsseln.

options

Ein optionales Array; andere Schlüssel werden ignoriert.

Schlüssel | Beschreibung
"extracerts" | Ein Array von zusätzlichen Zertifikaten oder ein einzelnes Zertifikat, das in der PKCS#12-Datei enthalten sein soll.
"friendlyname" | Zeichenkette, die für das bereitgestellte Zertifikat und den Schlüssel verwendet werden soll.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
8.0.0 | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.


Exportiert eine PKCS#12-kompatible Zertifikats-Datei in eine Variable

  • « openssl_pkcs12_export_to_file
  • openssl_pkcs12_read »
  • PHP Manual
  • OpenSSL-Funktionen
  • Exportiert eine PKCS#12-kompatible Zertifikats-Datei in eine Variable

openssl_pkcs12_export

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

openssl_pkcs12_export — Exportiert eine PKCS#12-kompatible Zertifikats-Datei in eine Variable

Beschreibung

openssl_pkcs12_export ( OpenSSLCertificate|string $certificate , string &$output , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key , string $passphrase , array $options = [] ) : bool

openssl_pkcs12_export() speichert certificate als Zeichenkette im PKCS#12-Format in der Variable output.

Parameter-Liste

x509

Siehe Schlüssel-/Zertifikatsparameter für eine Auflistung der gültigen Werte.

output

Bei Erfolg enthält diese Variable die PKCS#12-Zeichenkette.

private_key

Der private Schlüsel zur PKCS#12-Datei. Siehe Schlüssel/Zertifikat-Parameter für eine Liste gültiger Werte.

passphrase

Das Passwort zum Entschlüsseln der PKCS#12-Datei.

options

Ein optionales Array; andere Schlüssel werden ignoriert.

Key | Beschreibung
"extracerts" | Ein Array von zusätzlichen Zertifikaten oder ein einzelnes Zertifikat, das in der PKCS#12-Datei enthalten sein soll.
"friendlyname" | Die Zeichenkette, die für das bereitgestellte Zertifikat und den Schlüssel verwendet werden soll.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
8.0.0 | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.


Parst eine PKCS#12-Zertifikats-Datei in ein Array

  • « openssl_pkcs12_export
  • openssl_pkcs7_decrypt »
  • PHP Manual
  • OpenSSL-Funktionen
  • Parst eine PKCS#12-Zertifikats-Datei in ein Array

openssl_pkcs12_read

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

openssl_pkcs12_read — Parst eine PKCS#12-Zertifikats-Datei in ein Array

Beschreibung

openssl_pkcs12_read ( string $pkcs12 , array &$certificates , string $passphrase ) : bool

openssl_pkcs12_read() parst den im Parameter pkcs12 übergebenen Inhalt der PKCS#12-Zertifikats-Datei in das im Parameter certificates angegebene Array.

Parameter-Liste

pkcs12

Der Inhalt der Zertifikats-Datei, nicht ihr Dateiname.

certificates

Enthält im Erfolgsfall die Daten der Zertifikats-Datei als Array.

passphrase

Das Passwort zum Entschlüsseln der PKCS#12-Datei.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 openssl_pkcs12_read()-Beispiel

<?php
if (!$cert_store = file_get_contents("/certs/file.p12")) {
    echo "Fehler: die Zertifikats-Datei kann nicht gelesen werden\n";
    exit;
}

if (openssl_pkcs12_read($cert_store, $cert_info, "my_secret_pass")) {
    echo "Zertifikatsinformationen\n";
    print_r($cert_info);
} else {
    echo "Fehler: das Zertifikats-Datei kann nicht gelesen werden.\n";
    exit;
}
?>


Entschlüsselt eine S/MIME-verschlüsselte Nachricht

  • « openssl_pkcs12_read
  • openssl_pkcs7_encrypt »
  • PHP Manual
  • OpenSSL-Funktionen
  • Entschlüsselt eine S/MIME-verschlüsselte Nachricht

openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_pkcs7_decrypt — Entschlüsselt eine S/MIME-verschlüsselte Nachricht

Beschreibung

openssl_pkcs7_decrypt ( string $input_filename , string $output_filename , OpenSSLCertificate|string $certificate , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key = null ) : bool

Die Funktion openssl_pkcs7_decrypt() entschlüsselt die mit S/MIME verschlüsselte Nachricht, die sich in der mit dem Parameter input_filename angegeben Datei befindet. Verwendet werden dafür das durch certificate angegebene Zertifikat und der damit verknüpfte private Schlüssel, angegeben durch private_key.

Parameter-Liste

input_filename

output_filename

Die entschlüsselte Nachricht wird in die Datei namens output_filename geschrieben.

certificate

private_key

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 CSR akzeptiert.

Beispiele

Beispiel #1 openssl_pkcs7_decrypt()-Beispiel

<?php
// Annahme: $cert enthält Ihr persönliches Zertifikat und
// $key Ihr privates Schlüsselpaar. Sie erhalten eine S/MIME-Nachricht.
$infilename = "encrypted.msg";  // diese Datei enthält ihre verschlüsselte Nachricht
$outfilename = "decrypted.msg"; // stellen Sie sicher, dass Sie Schreibrechte haben!

if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key)) {
    echo "entschlüsselt!";
} else {
    echo "entschlüsseln fehlgeschlagen!";
}
?>


Verschlüsselt eine S/MIME-Nachricht

  • « openssl_pkcs7_decrypt
  • openssl_pkcs7_read »
  • PHP Manual
  • OpenSSL-Funktionen
  • Verschlüsselt eine S/MIME-Nachricht

openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_pkcs7_encrypt — Verschlüsselt eine S/MIME-Nachricht

Beschreibung

openssl_pkcs7_encrypt ( string $input_filename , string $output_filename , OpenSSLCertificate|array|string $certificate , array|null $headers , int $flags = 0 , int $cipher_algo = OPENSSL_CIPHER_RC2_40 ) : bool

Die Funktion openssl_pkcs7_encrypt() nimmt den Inhalt der durch input_filename angegebenen Datei und verschlüsselt ihn unter Verwendung eines RC2-40-Bit-Schlüssels. Der Inhalt kann anschließend nur von den im Parameter certificate angegebenen Empfängern gelesen werden.

Parameter-Liste

input_filename

output_filename

certificate

Entweder ein einzelnes X.509-Zertifikat oder ein Array solcher Zertifikate.

headers

headers ist ein Array von Headern, die den Daten nach der Verschlüsselung vorangestellt werden.

Bei headers handelt es sich entweder um ein assoziatives Array mit den Header-Namen als Schlüssel, oder um ein indiziertes Array, bei dem jedes Element eine einzelne Headerzeile enthält.

flags

Mittels flags können Optionen angegeben werden, die den Verschlüsselungsprozess beeinflussen. Siehe PKCS7-Konstanten.

cipher_algo

Eine der Verschlüsselungskonstanten.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.

Beispiele

Beispiel #1 openssl_pkcs7_encrypt()-Beispiel

<?php
// die zu verschlüsselnde Nachricht, die Sie Ihrem als "Nighthawk" bekanntem
// Geheimagenten im Einsatz schicken wollen.
// Sein Zertifikat liegt in der Datei nighthawk.pem vor
$data = <<<EOD
Nighthawk,

Streng geheim (For Your Eyes Only)!

Der Feind rückt näher. Treffen Sie mich im Cafè um 0830,
um ihren gefälschten Pass abzuholen.

HQ
EOD;

// Schlüssel laden
$key = file_get_contents("nighthawk.pem");

// Nachricht in Datei speichern
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);

// Verschlüsseln
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
    array("To" => "nighthawk@example.com", // keyed syntax
          "From: HQ <hq@example.com>", // indexed syntax
          "Subject" => "Streng geheim!"))) {
    // Nachricht verschlüsselt - abschicken!
    exec(ini_get("sendmail_path") . " < enc.txt");
}
?>


Export the PKCS7 file to an array of PEM certificates

  • « openssl_pkcs7_encrypt
  • openssl_pkcs7_sign »
  • PHP Manual
  • OpenSSL-Funktionen
  • Export the PKCS7 file to an array of PEM certificates

openssl_pkcs7_read

(PHP 7 >= 7.2.0, PHP 8)

openssl_pkcs7_read — Export the PKCS7 file to an array of PEM certificates

Beschreibung

openssl_pkcs7_read ( string $input_filename , array &$certificates ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

input_filename

certificates

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Signiert eine S/MIME-Nachricht

  • « openssl_pkcs7_read
  • openssl_pkcs7_verify »
  • PHP Manual
  • OpenSSL-Funktionen
  • Signiert eine S/MIME-Nachricht

openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_pkcs7_sign — Signiert eine S/MIME-Nachricht

Beschreibung

openssl_pkcs7_sign ( string $input_filename , string $output_filename , OpenSSLCertificate|string $certificate , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key , array|null $headers , int $flags = PKCS7_DETACHED , string|null $untrusted_certificates_filename = null ) : bool

Die Funktion openssl_pkcs7_sign() nimmt den Inhalt der durch input_filename angegebenen Datei und signiert ihn. Verwendet werden dafür das Zertifikat, angegeben durch certificate, und der dazugehörige private Schlüssel private_key.

Parameter-Liste

input_filename

Die Eingabedatei, die digital signiert werden soll.

output_filename

Die Datei, in die die digitale Signatur geschrieben werden soll.

certificate

Das X.509-Zertifikat, das für die digitale Signierung von input_filename verwendet werden soll. Gültige Werte sind dem Abschnitt Schlüssel/Zertifikat-Parameter zu entnehmen.

private_key

private_key ist der private Schlüssel, der zu certificate gehört. Gültige Werte sind dem Abschnitt Öffentliche/Private Schlüssel-Parameter zu entnehmen.

headers

headers ist ein Array aus Headern, die den Daten vorangestellt werden, nachdem diese signiert wurden (weitere Informationen über das Format dieses Parameters sind der Dokumentation zu openssl_pkcs7_encrypt() zu entnehmen).

flags

flags kann zur Änderung der Ausgabe verwendet werden - siehe die PKCS7-Konstanten.

untrusted_certificates_filename

untrusted_certificates_filename gibt den Namen einer Datei an, die ein oder mehrere extra Zertifikate enthält, die in die Signatur mit eingefügt werden. Das kann zum Beispiel als Hilfe für einen Empfänger dienen, das von Ihnen verwendete Zertifikat zu überprüfen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
8.0.0 | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 CSR akzeptiert.

Beispiele

Beispiel #1 openssl_pkcs7_sign()-Beispiel

<?php
// Die Nachricht,  die Sie signieren möchten, damit der Empfänger sicher
// sein kann, dass diese Nachricht von Ihnen stammt.

$data = <<<EOD

Sie haben meine Erlaubnis 10.000 EUR für Essen auszugeben.

Der CEO
EOD;
// Nachricht in einer Datei speichern
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// Verschlüsseln
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
    array("file://mycert.pem", "mypassphrase"),
    array("To" => "joes@example.com", // keyed syntax
          "From: HQ <ceo@example.com>", // indexed syntax
          "Subject" => "Eyes only")
    )) {
    // Nachricht signiert - abschicken!
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>


Überprüft die Signatur einer mit S/MIME signierten Nachricht

  • « openssl_pkcs7_sign
  • openssl_pkey_derive »
  • PHP Manual
  • OpenSSL-Funktionen
  • Überprüft die Signatur einer mit S/MIME signierten Nachricht

openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_pkcs7_verify — Überprüft die Signatur einer mit S/MIME signierten Nachricht

Beschreibung

openssl_pkcs7_verify ( string $input_filename , int $flags , string|null $signers_certificates_filename = null , array $ca_info = [] , string|null $untrusted_certificates_filename = null , string|null $content = null , string|null $output_filename = null ) : bool|int

openssl_pkcs7_verify() liest die in der angegebenen Datei enthaltene S/MIME-Nachricht und untersucht die digitale Signatur.

Parameter-Liste

input_filename

Der Pfad zur Datei.

flags

Mit dem Parameter flags wird beeinflusst, auf welche Art die Signatur verifiziert wird. Für mehr Informationen siehe PKCS7-Konstanten

signers_certificates_filename

Wird der Parameter signers_certificates_filename angegeben, muss dies eine Zeichenkette sein, die den Namen einer Datei enthält, in der das Zertifikat der unterzeichnenden Person im PEM-Format gespeichert wird.

ca_info

Wird der Parameter ca_info angegeben, muss er Informationen über die vertrauenswürdigen CA-Zertifikate enthalten, die für den Überprüfungsprozess verwendet werden. Für weitere Informationen siehe Überprüfung von Zertifikaten.

untrusted_certificates_filename

Wird der Parameter untrusted_certificates_filename angegeben, ist es der Name einer Datei, die mehrere extra Zertifikate enthält, die als nicht vertrauenswürdige CAs verwendet werden.

content

Mit content kann der Name einer Datei angegeben werden, die mit den verifizierten Daten gefüllt wird, wobei die Signaturinformationen entfernt werden.

output_filename

Rückgabewerte

Gibt true zurück, wenn die Signatur verifiziert werden konnte, false wenn die Signatur nicht korrekt ist (die Daten wurden verändert oder das signierende Zertifikat ist ungültig), oder -1 im Falle eines Fehlers.

Changelog

Version | Beschreibung
8.0.0 | signers_certificates_filename, untrusted_certificates_filename, Inhalt und Ausgabedateiname sind nun vom Typ Nullable.
7.2.0 | Der Parameter output_filename wurde hinzugefügt.

Anmerkungen

Hinweis: Wie in RFC 2045 spezifiziert, dürfen die Zeilen im Parameter input_filename nicht länger als 76 Zeichen sein.


Computes shared secret for public value of remote and local DH or ECDH key

  • « openssl_pkcs7_verify
  • openssl_pkey_export_to_file »
  • PHP Manual
  • OpenSSL-Funktionen
  • Computes shared secret for public value of remote and local DH or ECDH key

openssl_pkey_derive

(PHP 7 >= 7.3.0, PHP 8)

openssl_pkey_derive — Computes shared secret for public value of remote and local DH or ECDH key

Beschreibung

openssl_pkey_derive ( OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key , int $key_length = 0 ) : string|false

openssl_pkey_derive() takes a set of a public_key and private_key and derives a shared secret, for either DH or EC keys.

Parameter-Liste

public_key

public_key is the public key for the derivation. See Public/Private Key parameters for a list of valid values.

private_key

private_key is the private key for the derivation. See Public/Private Key parameters for a list of valid values.

key_length

If not zero, will set the desired length of the derived secret.

Rückgabewerte

The derived secret on successIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 openssl_pkey_derive() example

<?php
// Load in private key
$priv = openssl_pkey_get_private("-----BEGIN PRIVATE KEY-----
MIICJgIBADCCARcGCSqGSIb3DQEDATCCAQgCggEBAJLxRCaZ933uW+AXmabHFDDy
upojBIRlbmQLJZfigDaSA1f9YOTsIv+WwVFTX/J1mtCyx9uBcz0Nt2kmVwxWuc2f
VtCEMPsmLsVXX7xRUFLpyX1Y1IYGBVXQOoOvLWYQjpZgnx47Pkh1Ok1+smffztfC
0DCNt4KorWrbsPcmqBejXHN79KvWFjZmXOksRiNu/Bn76RiqvofC4z8Ri3kHXQG2
197JGZzzFXHadGC3xbkg8UxsNbYhVMKbm0iANfafUH7/hoS9UjAVQYtvwe7YNiW/
HnyfVCrKwcc7sadd8Iphh+3lf5P1AhaQEAMytanrzq9RDXKBxuvpSJifRYasZYsC
AQIEggEEAoIBAGwAYC2E81Y1U2Aox0U7u1+vBcbht/OO87tutMvc4NTLf6NLPHsW
cPqBixs+3rSn4fADzAIvdLBmogjtiIZoB6qyHrllF/2xwTVGEeYaZIupQH3bMK2b
6eUvnpuu4Ytksiz6VpXBBRMrIsj3frM+zUtnq8vKUr+TbjV2qyKR8l3eNDwzqz30
dlbKh9kIhZafclHfRVfyp+fVSKPfgrRAcLUgAbsVjOjPeJ90xQ4DTMZ6vjiv6tHM
hkSjJIcGhRtSBzVF/cT38GyCeTmiIA/dRz2d70lWrqDQCdp9ArijgnpjNKAAulSY
CirnMsGZTDGmLOHg4xOZ5FEAzZI2sFNLlcw=
-----END PRIVATE KEY-----
");

// Load in public key
$pub = openssl_pkey_get_public("-----BEGIN PUBLIC KEY-----
MIICJDCCARcGCSqGSIb3DQEDATCCAQgCggEBAJLxRCaZ933uW+AXmabHFDDyupoj
BIRlbmQLJZfigDaSA1f9YOTsIv+WwVFTX/J1mtCyx9uBcz0Nt2kmVwxWuc2fVtCE
MPsmLsVXX7xRUFLpyX1Y1IYGBVXQOoOvLWYQjpZgnx47Pkh1Ok1+smffztfC0DCN
t4KorWrbsPcmqBejXHN79KvWFjZmXOksRiNu/Bn76RiqvofC4z8Ri3kHXQG2197J
GZzzFXHadGC3xbkg8UxsNbYhVMKbm0iANfafUH7/hoS9UjAVQYtvwe7YNiW/Hnyf
VCrKwcc7sadd8Iphh+3lf5P1AhaQEAMytanrzq9RDXKBxuvpSJifRYasZYsCAQID
ggEFAAKCAQAiCSBpxvGgsTorxAWtcAlSmzAJnJxFgSPef0g7OjhESytnc8G2QYmx
ovMt5KVergcitztWh08hZQUdAYm4rI+zMlAFDdN8LWwBT/mGKSzRkWeprd8E7mvy
ucqC1YXCMqmIwPySvLQUB/Dl8kgau7BLAnIJm8VP+MVrn8g9gghD0qRCgPgtEaDV
vocfgnOU43rhKnIgO0cHOKtw2qybSFB8QuZrYugq4j8Bwkrzh6rdMMeyMl/ej5Aj
c0wamOzuBDtXt0T9+Fx3khHaowjCc7xJZRgZCxg43SbqMWJ9lUg94I7+LTX61Gyv
dtlkbGbtoDOnxeNnN93gwQZngGYZYciu
-----END PUBLIC KEY-----
");

// Outputs the hex version of the derived key
echo bin2hex(openssl_pkey_derive($pub,$priv));


Speichert einen Schlüssel in einem exportierbaren Format in einer Datei

  • « openssl_pkey_derive
  • openssl_pkey_export »
  • PHP Manual
  • OpenSSL-Funktionen
  • Speichert einen Schlüssel in einem exportierbaren Format in einer Datei

openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_export_to_file — Speichert einen Schlüssel in einem exportierbaren Format in einer Datei

Beschreibung

openssl_pkey_export_to_file ( OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key , string $output_filename , string|null $passphrase = null , array|null $options = null ) : bool

openssl_pkey_export_to_file() speichert den ASCII-verschlüsselten (PEM-kodierten) Schlüssel key in der in output_filename angegebenen Datei.

Hinweis: Die ordnungsgemäße Ausführung dieser Funktion setzt die Installation einer gültigen openssl.cnf-Datei voraus. Mehr Information hierzu finden sie im Installationsabschnitt.

Parameter-Liste

key

output_filename

Der Pfad zur Ausgabedatei.

passphrase

Der Schlüssel wird optional von einer passphrase geschützt.

options

options können Sie verwenden, um den Export feiner abzustimmen. Sie können damit Optionen für die OpenSSL-Konfigurationsdatei bestimmen und/oder überschreiben. Weitere Informationen über options sind der Dokumentation zu openssl_csr_new() zu entnehmen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.


Speichert ein exportierbares Format eines Schlüssels in einer Zeichenkette

  • « openssl_pkey_export_to_file
  • openssl_pkey_free »
  • PHP Manual
  • OpenSSL-Funktionen
  • Speichert ein exportierbares Format eines Schlüssels in einer Zeichenkette

openssl_pkey_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_export — Speichert ein exportierbares Format eines Schlüssels in einer Zeichenkette

Beschreibung

openssl_pkey_export ( OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key , string &$output , string|null $passphrase = null , array|null $options = null ) : bool

openssl_pkey_export() exportiert key als eine PEM-kodierte Zeichenkette und speichert diese in output (welcher per Referenz übergeben wird).

Hinweis: Die ordnungsgemäße Ausführung dieser Funktion setzt die Installation einer gültigen openssl.cnf-Datei voraus. Mehr Information hierzu finden sie im Installationsabschnitt.

Parameter-Liste

key

output

passphrase

Der Schlüssel wird optional von einer passphrase geschützt.

options

options können Sie verwenden, um den Export feiner abzustimmen. Sie können damit Optionen für die OpenSSL-Konfigurationsdatei bestimmen und/oder überschreiben. Weitere Informationen über options sind der Dokumentation zu openssl_csr_new() entnehmen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.


Gibt einen privaten Schlüssel frei

  • « openssl_pkey_export
  • openssl_pkey_get_details »
  • PHP Manual
  • OpenSSL-Funktionen
  • Gibt einen privaten Schlüssel frei

openssl_pkey_free

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_free — Gibt einen privaten Schlüssel frei

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

openssl_pkey_free ( OpenSSLAsymmetricKey $key ) : void

Diese Funktion gibt einen privaten Schlüssel frei, der mittels openssl_pkey_new() erstellt wurde.

Parameter-Liste

key

Die Ressource, die den Schlüssel enthält.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist nun veraltet, da sie keine Auswirkung mehr hat.
8.0.0 | key akzeptiert nun eine OpenSSLAsymmetricKey-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel akzeptiert.


Liefert ein Array mit Schlüssel-Details

  • « openssl_pkey_free
  • openssl_pkey_get_private »
  • PHP Manual
  • OpenSSL-Funktionen
  • Liefert ein Array mit Schlüssel-Details

openssl_pkey_get_details

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

openssl_pkey_get_details — Liefert ein Array mit Schlüssel-Details

Beschreibung

openssl_pkey_get_details ( OpenSSLAsymmetricKey $key ) : array|false

Diese Funktion gibt die Schlüssel-Details zurück (Bits, Schlüssel, Typ).

Parameter-Liste

key

Die Ressource, die den Schlüssel enthält.

Rückgabewerte

Gibt bei Erfolg ein Array mit den Schlüssel-Details zurück oder false im Fehlerfall. Das zurückgegebene Array enthält die Indizes bits (Anzahl der Bits), key (der öffentliche Schlüssel als Zeichenkette) und type (Typ des Schlüssels, eine der Konstanten OPENSSL_KEYTYPE_RSA, OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH und OPENSSL_KEYTYPE_EC oder -1 für einen unbekannten Typ).

In Abhängigkeit vom verwendeten Schlüssel-Typ können zusätzliche Details zurückgegeben werden. Es ist zu beachten, dass manche Elemente u.U. nicht immer verfügbar sind.

  • OPENSSL_KEYTYPE_RSA: ein zusätzlicher Array-Schlüssel mit dem Namen "rsa", der die Schlüssel-Daten enthält, wird zurückgegeben.
    Schlüssel | Beschreibung
    "n" | Modul
    "e" | Öffentlicher Exponent
    "d" | Privater Exponent
    "p" | Primzahl 1
    "q" | Primzahl 2
    "dmp1" | Exponent 1, d mod (p-1)
    "dmq1" | Exponent 2, d mod (q-1)
    "iqmp" | Koeffizient, (Kehrwert von q) mod p
  • OPENSSL_KEYTYPE_DSA: ein zusätzlicher Array-Schlüssel mit dem Namen "dsa", der die Schlüssel-Daten enthält, wird zurückgegeben.
    Schlüssel | Beschreibung
    "p" | Primzahl (öffentlich)
    "q" | 160-bit Unterprimzahl, q | p-1 (öffentlich)
    "g" | Generator der Untergruppe (öffentlich)
    "priv_key" | privater Schlüssel
    "pub_key" | öffentlicher Schlüssel y = g^x
  • OPENSSL_KEYTYPE_DH: ein zusätzlicher Array-Schlüssel mit dem Namen "dh", der die Schlüssel-Daten enthält, wird zurückgegeben.
    Schlüssel | Beschreibung
    "p" | Primzahl (geteilt)
    "g" | Generator von Z_p (geteilt)
    "priv_key" | privater DH-Wert x
    "pub_key" | öffentlicher DH-Wert g^x
  • OPENSSL_KEYTYPE_EC: ein zusätzlicher Array-Schlüssel mit dem Namen "ec", der die Schlüssel-Daten enthält, wird zurückgegeben.
    Key | Beschreibung
    "curve_name" | Der Name der Kurve, siehe openssl_get_curve_names().
    "curve_oid" | ASN1-Objektkennung (OID) für EC-Kurve.
    "x" | x-Koordinate (öffentlich)
    "y" | y-Koordinate (öffentlich)
    "d" | privater Schlüssel

Changelog

Version | Beschreibung
8.0.0 | key akzeptiert nun eine OpenSSLAsymmetricKey-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel akzeptiert.


Liefert einen privaten Schlüssel

  • « openssl_pkey_get_details
  • openssl_pkey_get_public »
  • PHP Manual
  • OpenSSL-Funktionen
  • Liefert einen privaten Schlüssel

openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_get_private — Liefert einen privaten Schlüssel

Beschreibung

openssl_pkey_get_private ( OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key , string|null $passphrase = null ) : OpenSSLAsymmetricKey|false

openssl_pkey_get_private() parst private_key und bereitet ihn zur Verwendung durch andere Funktionen vor.

Parameter-Liste

private_key

Als private_key kann angegeben werden:

  1. Eine Zeichenkette im Format file://path/to/file.pem. Die angegebene Datei muss ein PEM-kodiertes Zertifikat und/oder einen privaten Schlüssel enthalten.
  2. Ein privater Schlüssel im PEM-Format.

passphrase

Der optionale Parameter passphrase muss angegeben werden, falls der Schlüssel selbst verschlüsselt ist (durch eine Passphrase geschützt).

Rückgabewerte

Gibt bei Erfolg eine OpenSSLAsymmetricKey-Instanz zurück oder false, wenn ein Fehler auftritt.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine OpenSSLAsymmetricKey-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel zurückgegeben.
8.0.0 | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
8.0.0 | passphrase ist nun ein Nullable-Typ.


Extrahiert einen öffentlichen Schlüssel aus einem Zertifikat und bereitet diesen zur Verwendung vor

  • « openssl_pkey_get_private
  • openssl_pkey_new »
  • PHP Manual
  • OpenSSL-Funktionen
  • Extrahiert einen öffentlichen Schlüssel aus einem Zertifikat und bereitet diesen zur Verwendung vor

openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_get_public — Extrahiert einen öffentlichen Schlüssel aus einem Zertifikat und bereitet diesen zur Verwendung vor

Beschreibung

openssl_pkey_get_public ( OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key ) : OpenSSLAsymmetricKey|false

openssl_pkey_get_public() extrahiert den öffentlichen Schlüssel aus public_key und bereitet ihn für die Verwendung durch andere Funktionen vor.

Parameter-Liste

public_key

public_key kann folgendes sein:

  1. Eine OpenSSLAsymmetricKey-Instanz.
  2. Eine Zeichenkette im Format file://path/to/file.pem. Die angegebene Datei muss ein PEM-kodiertes Zertifikat und/oder einen öffentlichen Schlüssel enthalten.
  3. Ein öffentlicher Schlüssel im PEM-Format.

Rückgabewerte

Gibt bei Erfolg eine OpenSSLAsymmetricKey-Instanz zurück oder false, wenn ein Fehler auftritt.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine OpenSSLAsymmetricKey-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel zurückgegeben.
8.0.0 | public_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.


Erzeugt einen neuen privaten Schlüssel

  • « openssl_pkey_get_public
  • openssl_private_decrypt »
  • PHP Manual
  • OpenSSL-Funktionen
  • Erzeugt einen neuen privaten Schlüssel

openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_new — Erzeugt einen neuen privaten Schlüssel

Beschreibung

openssl_pkey_new ( array|null $options = null ) : OpenSSLAsymmetricKey|false

openssl_pkey_new() erzeugt einen neuen privaten Schlüssel. Wie man den öffentlichen Teil des Schlüssels erhält, wird in einem Beispiel unten gezeigt.

Hinweis: Die ordnungsgemäße Ausführung dieser Funktion setzt die Installation einer gültigen openssl.cnf-Datei voraus. Mehr Information hierzu finden sie im Installationsabschnitt.

Parameter-Liste

options

Die Schlüsselerzeugung kann mit options feiner abgestimmt werden (z.B. die Angabe der verwendeten Bits). Weitere Informationen über options sind der Dokumentation zu openssl_csr_new() zu entnehmen.

Rückgabewerte

Gibt bei Erfolg eine OpenSSLAsymmetricKey-Instanz zurück oder false, wenn ein Fehler auftritt.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine OpenSSLAsymmetricKey-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel zurückgegeben.
7.1.0 | Das Konfigurationsargument curve_name wurde hinzugefügt, sodass EC-Schlüssel erzeugt werden können.

Beispiele

Beispiel #1 Aus einem privaten Schlüssel den öffentlichen Schlüssel gewinnen

<?php
$private_key = openssl_pkey_new();
$public_key_pem = openssl_pkey_get_details($private_key)['key'];
echo $public_key_pem;
$public_key = openssl_pkey_get_public($public_key_pem);
var_dump($public_key);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArZFsmN2P6rx1Xt7YV95o
gcdlal0k3ryiIhFNzjwtRNNTXfEfBr6lUuaIJYQ8/XqEBX0hpcfuuF6tTRlonA3t
WLME0QFD93YVsAaXcy76YqjjqcRRodIBphAbYyyMI/lXkQAdn7kbAmr7neSOsMYJ
El9Wo4Hl4oG6e52ZnYHyqW9dxh4hX93eupR2TmcCdVf+r9xoHewP0KJYSHt7vDUX
AQlWYcQiWHIadFsmL0orr6mutlXFReoHbesgKY9/3YLOu0JfxflSjIZ2JeL1NTl1
MsmODsUwgAUrwnWKKx+eQUP5g3GnSB3dPkRh9zRVRiLNWbCugyjrf3e6DgQWrW7j
pwIDAQAB
-----END PUBLIC KEY-----
resource(5) of type (OpenSSL key)


Entschlüsselt Daten mit einem privaten Schlüssel

  • « openssl_pkey_new
  • openssl_private_encrypt »
  • PHP Manual
  • OpenSSL-Funktionen
  • Entschlüsselt Daten mit einem privaten Schlüssel

openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_private_decrypt — Entschlüsselt Daten mit einem privaten Schlüssel

Beschreibung

openssl_private_decrypt ( string $data , string &$decrypted_data , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key , int $padding = OPENSSL_PKCS1_PADDING ) : bool

openssl_private_decrypt() entschlüsselt data, das zuvor mit openssl_public_encrypt() verschlüsselt wurde, und speichert das Ergebnis in decrypted_data.

Mit dieser Funktion können beispielweise Daten entschlüsselt werden, die nur für einen bestimmten Empfänger gedacht sind.

Parameter-Liste

data

decrypted_data

private_key

private_key muss der private Schlüssel sein, der dem Schlüssel entspricht, mit dem die Daten verschlüsselt wurden.

padding

padding kann eine der Konstanten OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING und OPENSSL_NO_PADDING sein.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.

Siehe auch

  • openssl_public_encrypt() - Verschlüsselt Daten mit einem öffentlichen Schlüssel
  • openssl_public_decrypt() - Entschlüsselt Daten mit einem öffentlichen Schlüssel


Verschlüsselt Daten mit einem privaten Schlüssel

  • « openssl_private_decrypt
  • openssl_public_decrypt »
  • PHP Manual
  • OpenSSL-Funktionen
  • Verschlüsselt Daten mit einem privaten Schlüssel

openssl_private_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_private_encrypt — Verschlüsselt Daten mit einem privaten Schlüssel

Beschreibung

openssl_private_encrypt ( string $data , string &$encrypted_data , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key , int $padding = OPENSSL_PKCS1_PADDING ) : bool

openssl_private_encrypt() verschlüsselt data mit dem privaten Schlüssel private_key, und speichert das Ergebnis in encrypted_data. Verschlüsselte Daten können mit openssl_public_decrypt() entschlüsselt werden.

Diese Funktion kann z.B. verwendet werden, um Daten (oder deren Hashwert) zu signieren um damit sicherzustellen, dass diese Daten wirklich von einem bestimmten Sender stammen, und nicht von jemand anderem.

Parameter-Liste

data

encrypted_data

private_key

padding

padding kann entweder OPENSSL_PKCS1_PADDING oder OPENSSL_NO_PADDING sein.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.

Siehe auch

  • openssl_public_encrypt() - Verschlüsselt Daten mit einem öffentlichen Schlüssel
  • openssl_public_decrypt() - Entschlüsselt Daten mit einem öffentlichen Schlüssel


Entschlüsselt Daten mit einem öffentlichen Schlüssel

  • « openssl_private_encrypt
  • openssl_public_encrypt »
  • PHP Manual
  • OpenSSL-Funktionen
  • Entschlüsselt Daten mit einem öffentlichen Schlüssel

openssl_public_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_public_decrypt — Entschlüsselt Daten mit einem öffentlichen Schlüssel

Beschreibung

openssl_public_decrypt ( string $data , string &$decrypted_data , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key , int $padding = OPENSSL_PKCS1_PADDING ) : bool

openssl_public_decrypt() entschlüsselt data, das zuvor mit openssl_private_encrypt() verschlüsselt wurde, und speichert das Ergebnis in decrypted_data.

Diese Funktion kann z.B. verwendet werden, um zu überprüfen, ob eine Nachricht wirklich vom Eigentümer des privaten Schlüssels geschrieben wurde.

Parameter-Liste

data

decrypted_data

public_key

public_key muss der öffentliche Schlüssel sein, der zum privaten Schlüssel gehört, mit dem die Daten verschlüsselt wurden.

padding

padding kann entweder OPENSSL_PKCS1_PADDING oder OPENSSL_NO_PADDING sein.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | public_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.

Siehe auch

  • openssl_private_encrypt() - Verschlüsselt Daten mit einem privaten Schlüssel
  • openssl_private_decrypt() - Entschlüsselt Daten mit einem privaten Schlüssel


Verschlüsselt Daten mit einem öffentlichen Schlüssel

  • « openssl_public_decrypt
  • openssl_random_pseudo_bytes »
  • PHP Manual
  • OpenSSL-Funktionen
  • Verschlüsselt Daten mit einem öffentlichen Schlüssel

openssl_public_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_public_encrypt — Verschlüsselt Daten mit einem öffentlichen Schlüssel

Beschreibung

openssl_public_encrypt ( string $data , string &$encrypted_data , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key , int $padding = OPENSSL_PKCS1_PADDING ) : bool

openssl_public_encrypt() verschlüsselt data mit dem öffentlichen Schlüssel public_key, und speichert das Ergebnis in encrypted_data. Verschlüsselte Daten können mittels openssl_private_decrypt() entschlüsselt werden.

Diese Funktion kann beispielsweise verwendet werden, um eine Nachricht zu verschlüsseln, die dann nur vom Eigentümer des privaten Schlüssels gelesen werden kann. Sie kann ebenfalls verwendet werden, um Daten sicher in einer Datenbank zu speichern.

Parameter-Liste

data

encrypted_data

Hier werden die verschlüsselten Daten abgelegt.

public_key

Der öffentliche Schlüssel.

padding

padding kann entweder OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING oder OPENSSL_NO_PADDING sein.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | public_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.

Siehe auch

  • openssl_private_encrypt() - Verschlüsselt Daten mit einem privaten Schlüssel
  • openssl_private_decrypt() - Entschlüsselt Daten mit einem privaten Schlüssel


Generate a pseudo-random string of bytes

  • « openssl_public_encrypt
  • openssl_seal »
  • PHP Manual
  • OpenSSL-Funktionen
  • Generate a pseudo-random string of bytes

openssl_random_pseudo_bytes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_random_pseudo_bytes — Generate a pseudo-random string of bytes

Beschreibung

openssl_random_pseudo_bytes ( int $length , bool &$strong_result = null ) : string

Generates a string of pseudo-random bytes, with the number of bytes determined by the length parameter.

It also indicates if a cryptographically strong algorithm was used to produce the pseudo-random bytes, and does this via the optional strong_result parameter. It's rare for this to be false, but some systems may be broken or old.

Parameter-Liste

length

The length of the desired string of bytes. Must be a positive integer. PHP will try to cast this parameter to a non-null integer to use it.

strong_result

If passed into the function, this will hold a bool value that determines if the algorithm used was "cryptographically strong", e.g., safe for usage with GPG, passwords, etc. true if it did, otherwise false

Rückgabewerte

Returns the generated String of bytes on success, Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | strong_result is nullable now.

Beispiele

Beispiel #1 openssl_random_pseudo_bytes() example

<?php
for ($i = 1; $i <= 4; $i++) {
    $bytes = openssl_random_pseudo_bytes($i, $cstrong);
    $hex   = bin2hex($bytes);

    echo "Lengths: Bytes: $i and Hex: " . strlen($hex) . PHP_EOL;
    var_dump($hex);
    var_dump($cstrong);
    echo PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Lengths: Bytes: 1 and Hex: 2
string(2) "42"
bool(true)

Lengths: Bytes: 2 and Hex: 4
string(4) "dc6e"
bool(true)

Lengths: Bytes: 3 and Hex: 6
string(6) "288591"
bool(true)

Lengths: Bytes: 4 and Hex: 8
string(8) "ab86d144"
bool(true)

Siehe auch

  • random_bytes() - Generates cryptographically secure pseudo-random bytes
  • bin2hex() - Wandelt Binär-Daten in ihre hexadezimale Entsprechung um
  • crypt() - Einweg-String-Hashing
  • mt_rand() - Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren
  • uniqid() - Erzeugt eine eindeutige ID


Versiegelt (verschlüsselt) Daten

  • « openssl_random_pseudo_bytes
  • openssl_sign »
  • PHP Manual
  • OpenSSL-Funktionen
  • Versiegelt (verschlüsselt) Daten

openssl_seal

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_seal — Versiegelt (verschlüsselt) Daten

Beschreibung

openssl_seal ( string $data , string &$sealed_data , array &$encrypted_keys , array $public_key , string $cipher_algo , string &$iv = null ) : int|false

Die Funktion openssl_seal() verschlüsselt data unter Verwendung des angegebenen cipher_algo mit einem zufällig erzeugten geheimen Schlüssel. Dieser Schlüssel wird mit jedem öffentlichen Schlüssel verschlüsselt, der mit der Kennung in public_key verknüpft ist. Jeder verschlüsselte Schlüssel wird in encrypted_keyszurückgegeben. Das bedeutet, dass Sie verschlüsselte Daten an mehrere Empfänger versenden können (unter der Voraussetzung, dass Sie irgendwann die öffentlichen Schlüssel der Empfänger erhalten haben). Jeder Empfänger muss sowohl die verschlüsselten Daten als auch den entsprechenden Umschlagschlüssel erhalten, der mit dem öffentlichen Schlüssel des Empfängers versiegelt wurde.

Parameter-Liste

data

Die zu verschlüsselnden Daten.

sealed_data

Die verschlüsselten Daten.

encrypted_keys

Das Array verschlüsselter Schlüssel.

public_key

Das Array von OpenSSLAsymmetricKey-Instanzen, das öffentliche Schlüssel enthält.

cipher_algo

Die Verschlüsselungsmethode.

Achtung

Der Standardwert ('RC4') wird als unsicher betrachtet. Es wird dringend empfohlen, explizit eine sichere Verschlüsselungsmethode anzugeben.

iv

Der Initialisierungsvektor.

Rückgabewerte

Gibt bei Erfolg die Länge der verschlüsselten Daten zurück; in diesem Fall sind die verschlüsselten Daten in sealed_data enthalten und encrypted_keys enthält die Umschlagschlüssel. Sollte ein Fehler aufgetreten sein gibt die Funktion false zurück.

Changelog

Version | Beschreibung
8.0.0 | public_key akzeptiert nun ein Array von OpenSSLAsymmetricKey-Instanzen; vorher wurde ein Array von Ressourcen vom Typ OpenSSL-Schlüssel akzeptiert.
8.0.0 | Der Parameter cipher_algo ist nicht mehr optional.
8.0.0 | iv ist nun ein Nullable-Typ.

Beispiele

Beispiel #1 openssl_seal()-Beispiel

<?php
// Annahme: $data enthält die zu versiegelnden Daten

// holen und vorbereiten der öffentlichen Schlüssel unserer Empfänger
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);

// Wiederholung für den zweiten Empfänger
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);

// versiegeln der Nachricht, nur Besitzer von $pk1 und $pk2 können mit
// Schlüsseln $sealed entschlüsseln, entsprechendes gilt für $ekeys[0]
// und $ekeys[1].
openssl_seal($data, $sealed, $ekeys, array($pk1, $pk2));

// Löschen der Schlüssel aus dem Speicher
openssl_free_key($pk1);
openssl_free_key($pk2);
?>

Siehe auch

  • openssl_open() - Öffnet versiegelte Daten


Erzeugt eine Signatur

  • « openssl_seal
  • openssl_spki_export_challenge »
  • PHP Manual
  • OpenSSL-Funktionen
  • Erzeugt eine Signatur

openssl_sign

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_sign — Erzeugt eine Signatur

Beschreibung

openssl_sign ( string $data , string &$signature , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key , string|int $algorithm = OPENSSL_ALGO_SHA1 ) : bool

Die Funktion openssl_sign() errechnet die Signatur für die im Parameter data angegebenen Daten, indem sie unter Verwendung des privaten Schlüssels private_key eine kryptographische digitale Signatur erzeugt. Es ist zu beachten, dass die Daten selbst nicht verschlüsselt werden.

Parameter-Liste

data

Die zu verschlüsselnden Daten.

signature

Nach erfolgreicher Ausführung wird die Signatur im Parameter signature zurückgegeben.

private_key

OpenSSLAsymmetricKey - ein von openssl_get_privatekey() zurückgegebener Schlüssel.

string - ein Schlüssel im PEM-Format.

algorithm

int - einer dieser Signatur-Algorithmen.

string - eine von openssl_get_md_methods() zurückgegebene gültige Zeichenkette, beispielsweise "sha256WithRSAEncryption" oder "sha384".

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.

Beispiele

Beispiel #1 openssl_sign()-Beispiel

<?php
// Annahme: $data enthält die Daten, die signiert werden sollen

// holen und vorbereiten des privaten Schlüssels aus einer Datei
$pkeyid = openssl_pkey_get_private("file://src/openssl-0.9.6/demos/sign/key.pem");

// errechnen der Signatur
openssl_sign($data, $signature, $pkeyid);

// löschen des Schlüssels aus dem Speicher
openssl_free_key($pkeyid);
?>

Beispiel #2 openssl_sign()-Beispiel

<?php
// die zu verschlüssenlnden Daten
$data = 'my data';

// erzeuge einen neuen privaten und öffentlichen Schlüssel
$new_key_pair = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
openssl_pkey_export($new_key_pair, $private_key_pem);

$details = openssl_pkey_get_details($new_key_pair);
$public_key_pem = $details['key'];

// erzeuge die Signatur
openssl_sign($data, $signature, $private_key_pem, OPENSSL_ALGO_SHA256);

// für spätere Verwendung speichern
file_put_contents('private_key.pem', $private_key_pem);
file_put_contents('public_key.pem', $public_key_pem);
file_put_contents('signature.dat', $signature);

// Signatur überprüfen
$r = openssl_verify($data, $signature, $public_key_pem, "sha256WithRSAEncryption");
var_dump($r);
?>

Siehe auch

  • openssl_verify() - Überprüft eine Signatur


Exports the challenge associated with a signed public key and challenge

  • « openssl_sign
  • openssl_spki_export »
  • PHP Manual
  • OpenSSL-Funktionen
  • Exports the challenge associated with a signed public key and challenge

openssl_spki_export_challenge

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_spki_export_challenge — Exports the challenge associated with a signed public key and challenge

Beschreibung

openssl_spki_export_challenge ( string $spki ) : string|false

Exports challenge from encoded signed public key and challenge

Parameter-Liste

spki

Expects a valid signed public key and challenge

Rückgabewerte

Returns the associated challenge string or false on failure.

Fehler/Exceptions

Emits an E_WARNING level error if an invalid argument is passed via the spki parameter.

Beispiele

Beispiel #1 openssl_spki_export_challenge() example

Extracts the associated challenge string or NULL on failure.

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');
$challenge = openssl_spki_export_challenge(preg_replace('/SPKAC=/', '', $spkac));
?>

Beispiel #2 openssl_spki_export_challenge() example from <keygen>

Extracts the associated challenge string issued from the <keygen> element

<?php
$challenge = openssl_spki_export_challenge(preg_replace('/SPKAC=/', '', $_POST['spkac']));
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Siehe auch

  • openssl_spki_new() - Generate a new signed public key and challenge
  • openssl_spki_verify() - Verifies a signed public key and challenge
  • openssl_spki_export() - Exports a valid PEM formatted public key signed public key and challenge
  • openssl_get_md_methods() - Gets available digest methods
  • openssl_csr_new() - Erzeugt einen CSR
  • openssl_csr_sign() - Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat


Exports a valid PEM formatted public key signed public key and challenge

  • « openssl_spki_export_challenge
  • openssl_spki_new »
  • PHP Manual
  • OpenSSL-Funktionen
  • Exports a valid PEM formatted public key signed public key and challenge

openssl_spki_export

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_spki_export — Exports a valid PEM formatted public key signed public key and challenge

Beschreibung

openssl_spki_export ( string $spki ) : string|false

Exports PEM formatted public key from encoded signed public key and challenge

Parameter-Liste

spki

Expects a valid signed public key and challenge

Rückgabewerte

Returns the associated PEM formatted public key or false on failure.

Fehler/Exceptions

Emits an E_WARNING level error if an invalid argument is passed via the spki parameter.

Beispiele

Beispiel #1 openssl_spki_export() example

Extracts the associated PEM formatted public key or NULL on failure.

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');
$pubKey = openssl_spki_export(preg_replace('/SPKAC=/', '', $spkac));

if ($pubKey) {
    echo $pubKey;
}
?>

Beispiel #2 openssl_spki_export() example from <keygen>

Extracts the associated PEM formatted public key issued from the <keygen> element

<?php
$spkac = openssl_spki_export(preg_replace('/SPKAC=/', '', $_POST['spkac']));
if ($spkac != NULL) {
    echo $spkac;
} else {
    echo "Extraction of pub key failed";
}
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Siehe auch

  • openssl_spki_new() - Generate a new signed public key and challenge
  • openssl_spki_verify() - Verifies a signed public key and challenge
  • openssl_spki_export_challenge() - Exports the challenge associated with a signed public key and challenge
  • openssl_get_md_methods() - Gets available digest methods
  • openssl_csr_new() - Erzeugt einen CSR
  • openssl_csr_sign() - Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat


Generate a new signed public key and challenge

  • « openssl_spki_export
  • openssl_spki_verify »
  • PHP Manual
  • OpenSSL-Funktionen
  • Generate a new signed public key and challenge

openssl_spki_new

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_spki_new — Generate a new signed public key and challenge

Beschreibung

openssl_spki_new ( OpenSSLAsymmetricKey $private_key , string $challenge , int $digest_algo = OPENSSL_ALGO_MD5 ) : string|false

Generates a signed public key and challenge using specified hashing algorithm

Parameter-Liste

private_key

private_key should be set to a private key that was previously generated by openssl_pkey_new() (or otherwise obtained from the other openssl_pkey family of functions). The corresponding public portion of the key will be used to sign the CSR.

challenge

The challenge associated to associate with the SPKAC

digest_algo

The digest algorithm. See openssl_get_md_method().

Rückgabewerte

Returns a signed public key and challenge string or false on failure.

Fehler/Exceptions

Emits an E_WARNING level error if an unknown signature algorithm is passed via the digest_algo parameter.

Changelog

Version | Beschreibung
8.0.0 | private_key accepts an OpenSSLAsymmetricKey instance now; previously, a Ressource of type OpenSSL key was accepted.

Beispiele

Beispiel #1 openssl_spki_new() example

Generate a new SPKAC with the default digest (MD5)

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'testing');

if ($spkac !== NULL) {
    echo $spkac;
} else {
    echo "SPKAC generation failed";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

MIICRzCCAS8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDM3V3sS4o4
mB9dczziRnjGAmSp+JwPrHoYMAFGvDNmZGyiWfU586X4BKs++BAj7e/FsAfno0Hd
hN9FwpCNFSox30L03nQvLYJE7f/WqigwBeMRT7Op/xvFks4sT70xP2HRYv4KqP9a
WRcKU6cFH8VxhFhqM2txEIxZKdFLaL28yT7bEDmcglf4JLDdgNMb9rET1dkgtKE6
dOaJHPGjf1uvnOH4YwkQr7n4sLUR3Kdbh0ZJAFuQVDZulo+LLzxBBkqJJcB6FhF+
oXCdHTKZnqAhpWDz+NXYytAmevab6IYm5TWPWsJUv1YKJA5lg2mXbbloIZlN9Mgc
i9fi03bdw+crAgMBAAEWB3Rlc3RpbmcwDQYJKoZIhvcNAQEEBQADggEBALyUvP/o
pPSoWBlorFyZ2RnGwKf9qMpE0q2IJP7G3oDR4LyK/m933DUiZ+YnqThrH/CWb4Ek
y5I3OCyl3S4wCuU1ibZZwDVwYShr5ELp0J9PEf7qMQZOhNsizoC7k+Czb2xB6hYW
sKfsfTKm3cXBtH3fdgc/Z1Z7VSWnAzYo38snqm72NTf5yFRnrQdphNNXi+kn1zHA
lxXRyFDXHOcYsOnwAWfyXFA4QDHQ0ezz0UoCY8gJXovcZb4GRYqOLUAsF2HcNboy
29WN8VqE29sL9QxVZFlwMcqyoLcNnyw38GvNvAGqSvzzbnEFP2MAQXJVe0H0hdp/
MML5G2iNVgNozAo=

Siehe auch

  • openssl_spki_verify() - Verifies a signed public key and challenge
  • openssl_spki_export_challenge() - Exports the challenge associated with a signed public key and challenge
  • openssl_spki_export() - Exports a valid PEM formatted public key signed public key and challenge
  • openssl_get_md_methods() - Gets available digest methods
  • openssl_csr_new() - Erzeugt einen CSR
  • openssl_csr_sign() - Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat


Verifies a signed public key and challenge

  • « openssl_spki_new
  • openssl_verify »
  • PHP Manual
  • OpenSSL-Funktionen
  • Verifies a signed public key and challenge

openssl_spki_verify

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_spki_verify — Verifies a signed public key and challenge

Beschreibung

openssl_spki_verify ( string $spki ) : bool

Validates the supplied signed public key and challenge

Parameter-Liste

spki

Expects a valid signed public key and challenge

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Emits an E_WARNING level error if an invalid argument is passed via the spki parameter.

Beispiele

Beispiel #1 openssl_spki_verify() example

Validates an existing signed public key and challenge

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'challenge string');

if (openssl_spki_verify(preg_replace('/SPKAC=/', '', $spkac))) {
    echo $spkac;
} else {
    echo "SPKAC validation failed";
}
?>

Beispiel #2 openssl_spki_verify() example from <keygen>

Validates an existing signed public key and challenge issued from the <keygen> element

<?php
if (openssl_spki_verify(preg_replace('/SPKAC=/', '', $_POST['spkac']))) {
    echo $spkac;
} else {
    echo "SPKAC validation failed";
}
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Siehe auch

  • openssl_spki_new() - Generate a new signed public key and challenge
  • openssl_spki_export_challenge() - Exports the challenge associated with a signed public key and challenge
  • openssl_spki_export() - Exports a valid PEM formatted public key signed public key and challenge
  • openssl_get_md_methods() - Gets available digest methods
  • openssl_csr_new() - Erzeugt einen CSR
  • openssl_csr_sign() - Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat


Überprüft eine Signatur

  • « openssl_spki_verify
  • openssl_x509_check_private_key »
  • PHP Manual
  • OpenSSL-Funktionen
  • Überprüft eine Signatur

openssl_verify

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_verify — Überprüft eine Signatur

Beschreibung

openssl_verify ( string $data , string $signature , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key , string|int $algorithm = OPENSSL_ALGO_SHA1 ) : int|false

Die Funktion openssl_verify() überprüft die Korrektheit der Signatur signature für die angegebenen Daten data mit Hilfe des öffentlichen Schlüssels public_key. Dieser muss der zum privaten Schlüssel passende öffentliche sein, der für die Signatur verwendet wurde.

Parameter-Liste

data

Die Zeichenkette der Daten, mit denen die Signatur zuvor erzeugt wurde.

signature

Eine rohe binäre Zeichenkette, erzeugt durch openssl_sign() oder ähnliche Mittel.

public_key

OpenSSLAsymmetricKey - ein von openssl_get_publickey() zurückgegebener Schlüssel.

string - ein PEM-formatierter Schlüssel, z.B. "-----BEGIN PUBLIC KEY----- MIIBCgK...".

algorithm

int - einer von diesen Signatur-Algorithmen.

string - eine von openssl_get_md_methods() zurückgegebene gültige Zeichenkette, beispielsweise "sha1WithRSAEncryption" oder "sha512".

Rückgabewerte

Gibt bei einer korrekten Signatur 1 zurück, 0 bei einer unkorrekten und -1 oder false, falls ein Fehler aufgetreten ist.

Changelog

Version | Beschreibung
8.0.0 | public_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.

Beispiele

Beispiel #1 openssl_verify()-Beispiel

<?php
// Annahme: $data und $signature enthalten die Daten und die Signatur

// holen des öffentlichen Schlüssels aus dem Zertifikat und vorbereiten
$pubkeyid = openssl_pkey_get_public("file://src/openssl-0.9.6/demos/sign/cert.pem");

// feststellen, ob die Signatur ok ist oder nicht
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1) {
    echo "gut";
} elseif ($ok == 0) {
    echo "schlecht";
} else {
    echo "Mist, Fehler beim überprüfen der Signatur";
}

// Löschen des Schlüssels aus dem Speicher
openssl_free_key($pubkeyid);
?>

Beispiel #2 openssl_verify()-Beispiel

<?php
// die zu signierenden Daten
$data = 'my data';

// erzeuge neuen privaten und öffentlichen Schlüssel
$private_key_res = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$details = openssl_pkey_get_details($private_key_res);
$public_key_res = openssl_pkey_get_public($details['key']);

// erzeuge Signatur
openssl_sign($data, $signature, $private_key_res, "sha256WithRSAEncryption");

// überprüfe Signatur
$ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA256);
if ($ok == 1) {
    echo "gültig";
} elseif ($ok == 0) {
    echo "ungültig";
} else {
    echo "Fehler: ".openssl_error_string();
}
?>

Siehe auch

  • openssl_sign() - Erzeugt eine Signatur


Überprüft, ob ein privater Schlüssel zu einem Zertifikat passt

  • « openssl_verify
  • openssl_x509_checkpurpose »
  • PHP Manual
  • OpenSSL-Funktionen
  • Überprüft, ob ein privater Schlüssel zu einem Zertifikat passt

openssl_x509_check_private_key

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_x509_check_private_key — Überprüft, ob ein privater Schlüssel zu einem Zertifikat passt

Beschreibung

openssl_x509_check_private_key ( OpenSSLCertificate|string $certificate , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key ) : bool

Prüft, ob der übergebene Schlüssel private_key der private Schlüssel zum Zertifikat certificate ist.

Warnung

Die Funktion überprüft nicht, ob private_key tatsächlich ein privater Schlüssel ist. Sie vergleicht lediglich die öffentlichen Bestandteile (u.B. Exponent und Modulus eines RSA-Schlüssels) und/oder die Schlüsselparameter (z.B. die EC-Parameter eines EC-Schlüssels).

Dies bedeutet beispielsweise, dass ein öffentlicher Schlüssel als private_key angegeben werden kann, woraufhin die Funktion möglicherweise true zurückgibt.

Parameter-Liste

certificate

Das Zertifikat.

private_key

Der private Schlüssel.

Rückgabewerte

Gibt true zurück, wenn private_key der private Schlüssel zum Zertifikat certificateist, andernfalls false.

Changelog

Version | Beschreibung
8.0.0 | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.
8.0.0 | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.


Überprüft, ob ein Zertifikat für einen bestimmten Zweck verwendet werden kann

  • « openssl_x509_check_private_key
  • openssl_x509_export_to_file »
  • PHP Manual
  • OpenSSL-Funktionen
  • Überprüft, ob ein Zertifikat für einen bestimmten Zweck verwendet werden kann

openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_checkpurpose — Überprüft, ob ein Zertifikat für einen bestimmten Zweck verwendet werden kann

Beschreibung

openssl_x509_checkpurpose ( OpenSSLCertificate|string $certificate , int $purpose , array $ca_info = [] , string|null $untrusted_certificates_file = null ) : bool|int

openssl_x509_checkpurpose() überprüft ein Zertifikat, um festzustellen, ob es für den in purpose angegebenen Zweck eingesetzt werden kann.

Parameter-Liste

certificate

Das zu prüfende Zertifikat.

purpose

openssl_x509_checkpurpose()-Verwendungszwecke
Konstante | Beschreibung
X509_PURPOSE_SSL_CLIENT | Kann das Zertifikat für die Clientseite einer SSL-Verbindung verwendet werden?
X509_PURPOSE_SSL_SERVER | Kann das Zertifikat für die Serverseite einer SSL-Verbindung verwendet werden?
X509_PURPOSE_NS_SSL_SERVER | Kann das Zertifikat für den Netscape SSL-Server verwendet werden?
X509_PURPOSE_SMIME_SIGN | Kann das Zertifikat zum Signieren einer S/MIME-E-Mail verwendet werden?
X509_PURPOSE_SMIME_ENCRYPT | Kann das Zertifikat zum Verschlüsseln einer S/MIME-E-Mail verwendet werden?
X509_PURPOSE_CRL_SIGN | Kann das Zertifikat zum Signieren einer Zertifikats-Widerrufliste (CRL) verwendet werden?
X509_PURPOSE_ANY | Kann das Zertifikat für beliebige/alle Zwecke verwendet werden?
Diese Optionen sind keine Bitfelder, nur eine kann angegeben werden!

ca_info

ca_info sollte ein Array von vertrauenswürdigen CA-Dateien/-Verzeichnissen sein, wie in Überprüfung von Zertifikaten beschrieben.

untrusted_certificates_file

Wenn angegeben sollte dies der Name einer PEM-kodierten Datei sein, die Zertifikate enthält, die bei der Prüfung des Zertifikats helfen können. Die Zertifikate aus dieser Datei werden als nicht vertrauenswürdig erachtet.

Rückgabewerte

Gibt true zurück, falls das Zertifikat für den angegebenen Zweck verwendet werden kann, false, falls nicht und -1 im Falle eines Fehlers.

Changelog

Version | Beschreibung
8.0.0 | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.
8.0.0 | untrusted_certificates_file ist nun ein Nullable-Typ.


Exportiert ein Zertifikat in eine Datei

  • « openssl_x509_checkpurpose
  • openssl_x509_export »
  • PHP Manual
  • OpenSSL-Funktionen
  • Exportiert ein Zertifikat in eine Datei

openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_x509_export_to_file — Exportiert ein Zertifikat in eine Datei

Beschreibung

openssl_x509_export_to_file ( OpenSSLCertificate|string $certificate , string $output_filename , bool $no_text = true ) : bool

openssl_x509_export_to_file() speichert ein certificate im PEM-kodierten Format in einer Datei mit Namen output_filename.

Parameter-Liste

x509

Siehe Schlüssel-/Zertifikatsparameter für eine Auflistung der gültigen Werte.

output_filename

Pfad zur Ausgabe-Datei.

no_text

Der optionale Parameternotext beinflusst die Ausführlichkeit der Ausgabe. Wenn er auf false gesetzt wird, werden zusätzliche lesbare Informationen in die Ausgabe aufgenommen. Der Vorgabewert für notext ist true.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.


Exportiert ein Zertifikat als Zeichenkette

  • « openssl_x509_export_to_file
  • openssl_x509_fingerprint »
  • PHP Manual
  • OpenSSL-Funktionen
  • Exportiert ein Zertifikat als Zeichenkette

openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_x509_export — Exportiert ein Zertifikat als Zeichenkette

Beschreibung

openssl_x509_export ( OpenSSLCertificate|string $certificate , string &$output , bool $no_text = true ) : bool

openssl_x509_export() speichert certificate im PEM-kodierten Format in einer Zeichenkette mit dem Namen output.

Parameter-Liste

x509

Siehe Schlüssel-/Zertifikatsparameter für eine Auflistung der gültigen Werte.

output

Enhält bei Erfolg das PEM.

no_text

Der optionale Parameternotext beinflusst die Ausführlichkeit der Ausgabe. Wenn er auf false gesetzt wird, werden zusätzliche lesbare Informationen in die Ausgabe aufgenommen. Der Vorgabewert für notext ist true.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.


Calculates the fingerprint, or digest, of a given X.509 certificate

  • « openssl_x509_export
  • openssl_x509_free »
  • PHP Manual
  • OpenSSL-Funktionen
  • Calculates the fingerprint, or digest, of a given X.509 certificate

openssl_x509_fingerprint

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_x509_fingerprint — Calculates the fingerprint, or digest, of a given X.509 certificate

Beschreibung

openssl_x509_fingerprint ( OpenSSLCertificate|string $certificate , string $digest_algo = "sha1" , bool $binary = false ) : string|false

openssl_x509_fingerprint() returns the digest of certificate as a string.

Parameter-Liste

x509

Siehe Schlüssel-/Zertifikatsparameter für eine Auflistung der gültigen Werte.

digest_algo

The digest method or hash algorithm to use, e.g. "sha256", one of openssl_get_md_methods().

binary

When set to true, outputs raw binary data. false outputs lowercase hexits.

Rückgabewerte

Returns a string containing the calculated certificate fingerprint as lowercase hexits unless binary is set to true in which case the raw binary representation of the message digest is returned.

Returns false on failure.

Changelog

Version | Beschreibung
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a Ressource of type OpenSSL X.509 was accepted.


Gibt eine Zertifikats-Ressource frei

  • « openssl_x509_fingerprint
  • openssl_x509_parse »
  • PHP Manual
  • OpenSSL-Funktionen
  • Gibt eine Zertifikats-Ressource frei

openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_free — Gibt eine Zertifikats-Ressource frei

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

openssl_x509_free ( OpenSSLCertificate $certificate ) : void

Die Funktion openssl_x509_free() gibt den Speicherbereich frei, der von der Zertifikatsressource certificate belegt wird.

Parameter-Liste

certificate

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion ist nun veraltet, da sie keine Auswirkung mehr hat.
8.0.0 | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.


Parst ein X.509-Zertifikat und liefert die Informationen als Array

  • « openssl_x509_free
  • openssl_x509_read »
  • PHP Manual
  • OpenSSL-Funktionen
  • Parst ein X.509-Zertifikat und liefert die Informationen als Array

openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_parse — Parst ein X.509-Zertifikat und liefert die Informationen als Array

Beschreibung

openssl_x509_parse ( OpenSSLCertificate|string $certificate , bool $short_names = true ) : array|false

openssl_x509_parse() gibt Informationen über das per certificate übergebene Zertifikat zurück, einschließlich Name des Subjekts, Name des Herausgebers, Verwendungszwecke, Zeitangaben zur Gültigkeit etc.

Parameter-Liste

certificate

Das X509-Zertifikat. Siehe Schlüssel/Zertifikat-Parameter für eine Liste gültiger Werte.

short_names

Der Parameter short_names kontrolliert, wie die Daten im Array indiziert werden. Wenn short_names true ist (Standard), dann wird die Kurzform verwendet, andernfalls werden die langen Bezeichner verwendet; CN ist beispielsweise die Kurzform zu commonName.

Rückgabewerte

Die Struktur der zurückgegeben Daten ist absichtlich noch nicht dokumentiert, da es noch Änderungen geben wird.

Changelog

Version | Beschreibung
8.0.0 | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.


Parst ein X.509-Zertitifikat und gibt ein Objekt dafür zurück

  • « openssl_x509_parse
  • openssl_x509_verify »
  • PHP Manual
  • OpenSSL-Funktionen
  • Parst ein X.509-Zertitifikat und gibt ein Objekt dafür zurück

openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_read — Parst ein X.509-Zertitifikat und gibt ein Objekt dafür zurück

Beschreibung

openssl_x509_read ( OpenSSLCertificate|string $certificate ) : OpenSSLCertificate|false

Die Funktion openssl_x509_read() parst das in certificate übergebene Zertifikat und gibt ein OpenSSLCertificate-Objekt dafür zurück.

Parameter-Liste

certificate

X509-Zertifikat. Siehe Schlüssel/Zertifikat-Parameter für eine Liste gültiger Werte.

Rückgabewerte

Gibt im Erfolgsfall ein OpenSSLCertificate-Objekt zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine OpenSSLCertificate-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL X.509 zurückgegeben.
8.0.0 | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.


Verifies digital signature of x509 certificate against a public key

  • « openssl_x509_read
  • OpenSSLCertificate »
  • PHP Manual
  • OpenSSL-Funktionen
  • Verifies digital signature of x509 certificate against a public key

openssl_x509_verify

(PHP 7 >= 7.4.0, PHP 8)

openssl_x509_verify — Verifies digital signature of x509 certificate against a public key

Beschreibung

openssl_x509_verify ( OpenSSLCertificate|string $certificate , OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key ) : int

openssl_x509_verify() verifies that the certificate certificate was signed by the private key corresponding to public key public_key.

Parameter-Liste

x509

Siehe Schlüssel-/Zertifikatsparameter für eine Auflistung der gültigen Werte.

public_key

OpenSSLAsymmetricKey - a key, returned by openssl_get_publickey()

string - a PEM formatted key, example, "-----BEGIN PUBLIC KEY----- MIIBCgK..."

Rückgabewerte

Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

Changelog

Version | Beschreibung
8.0.0 | certificate accepts an OpenSSLCertificate instance now; previously, a Ressource of type OpenSSL X.509 was accepted.
8.0.0 | public_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a Ressource of type OpenSSL key or OpenSSL X.509 was accepted.

Beispiele

Beispiel #1 openssl_x509_verify() example

<?php
$hostname = "news.php.net";
$ssloptions = array(
    "capture_peer_cert" => true,
    "capture_peer_cert_chain" => true,
    "allow_self_signed"=> false,
    "CN_match" => $hostname,
    "verify_peer" => true,
    "SNI_enabled" => true,
    "SNI_server_name" => $hostname,
);

$ctx = stream_context_create( array("ssl" => $ssloptions) );
$result = stream_socket_client("ssl://$hostname:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx);
$cont = stream_context_get_params($result);
$x509 = $cont["options"]["ssl"]["peer_certificate"];
$certparsed = openssl_x509_parse($x509);

foreach($cont["options"]["ssl"]["peer_certificate_chain"] as $chaincert)
{
    $chainparsed = openssl_x509_parse($chaincert);
    $chain_public_key = openssl_get_publickey($chaincert);
    $r = openssl_x509_verify($x509, $chain_public_key);
    if ($r==1)
    {
        echo $certparsed['subject']['CN'];
        echo " was digitally signed by ";
        echo $chainparsed['subject']['CN']."\n";
    }
}
?>

Siehe auch

  • openssl_verify() - Überprüft eine Signatur
  • openssl_get_publickey() - Alias von openssl_pkey_get_public


The OpenSSLCertificate class

(PHP 8)

Einführung

A fully opaque class which replaces OpenSSL X.509 resources as of PHP 8.0.0.

Klassenbeschreibung

final OpenSSLCertificate {
}


The OpenSSLCertificateSigningRequest class

(PHP 8)

Einführung

A fully opaque class which replaces OpenSSL X.509 CSR resources as of PHP 8.0.0.

Klassenbeschreibung

final OpenSSLCertificateSigningRequest {
}


The OpenSSLAsymmetricKey class

(PHP 8)

Einführung

A fully opaque class which replaces OpenSSL key resources as of PHP 8.0.0.

Klassenbeschreibung

final OpenSSLAsymmetricKey {
}


Password Hashing

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Passwort-Hashing-Funktionen
    • password_algos — Get available password hashing algorithm IDs
    • password_get_info — Gibt Informationen über einen Hash zurück
    • password_hash — Erstellt einen Passwort-Hash
    • password_needs_rehash — Überprüft, ob der übergebene Hash mit den übergebenen Optionen übereinstimmt
    • password_verify — Überprüft, ob ein Passwort und ein Hash zusammenpassen


Einführung

Die password hashing API stellt einen einfach zu benutzenden Wrapper über der Funktion crypt(), und einigen anderen Password-Hash-Algorithmen, zur einfachen Erstellung und Verwaltung von Passwörtern zur Verfügung.

Diese Erweiterung ist verfügbar seit PHP 5.5.0 aber es gibt ebenso eine » userland implementation für PHP >= 5.3.7.


Anforderungen

Diese Erweiterung benötigt für die Kompilierung keine externen Bibliotheken.

Für Argon2 Passwort-Hashing wird allerdings » libargon2 benotigt. Von PHP 7.3.0 an wird libargon2 Version 20161029 oder später benötigt.


Installation

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.

Um Argon2-Passwort-Hashing zu aktivieren, muss PHP allerdings mit libargon2 Unterstützung unter Verwendung der Konfigurationsoption --with-password-argon2[=DIR] kompiliert werden.


Vordefinierte Konstanten

Die aufgelisteten Konstanten stehen immer zur Verfügung, da sie zum Grundbestand von PHP gehören.

PASSWORD_BCRYPT (string)

PASSWORD_BCRYPT wird verwendet, um neue Passwort-Hashes unter Verwendung des CRYPT_BLOWFISH Algorithmus zu erzeugen.

Dies ergibt immer einen Hash, der das "$2y$"-Crypt-Format verwendet, und immer 60 Zeichen lang ist.

Unterstützte Optionen:

  • salt (string) - um manuell ein Salt anzugeben, das beim Hashing des Passworts verwendet wird. Es ist zu beachten, dass dies die automatische Erzeugung des Salt verhindert.

    Wird diese Option ausgelassen, dann wird von password_hash() ein zufälliges Salt für jedes gehashte Passwort erzeugt. Dies ist die vorgesehene Funktionsweise, und von PHP 7.0.0 an wird die salt-Option missbilligt.

  • cost (int) - bezeichnet den algorithmischen Aufwand, der angewendet werden soll. Beispiele dieses Wertes können der crypt()-Dokumentation entnommen werden.

    Wird diese Option ausgelassen, dann wird der Standardwert 10 verwendet. Das ist eine gute Ausgangsbasis, aber es ist zu erwägen, diesen Wert in Abhängigkeit von der Hardware zu erhöhen.

PASSWORD_ARGON2I (string)

PASSWORD_ARGON2I wird verwendet um neue Passwort-Hashes unter Verwendung des Argon2i-Algorithmus zu erzeugen.

Unterstützte Optionen:

  • memory_cost (int) - die Obergrenze des Speichers (in Bytes), der verwendet werden darf, um den Argon2-Hash zu berechnen. Der Vorgabewert ist PASSWORD_ARGON2_DEFAULT_MEMORY_COST.

  • time_cost (int) - die Höchstdauer der Berechnung des Argon2-Hashs. Der Vorgabewert ist PASSWORD_ARGON2_DEFAULT_TIME_COST.

  • threads (int) - Die Anzahl der Threads, die für die Berechnung des Argon2-Hashs verwendet werden. Der Vorgabewert ist PASSWORD_ARGON2_DEFAULT_THREADS.

Verfügbar von PHP 7.2.0 an.

PASSWORD_ARGON2ID (string)

PASSWORD_ARGON2ID wird verwendet um neue Passwort-Hashes unter Verwendung des Argon2id-Algorithmus zu erzeugen. Es werden dieselben Optionen wie bei PASSWORD_ARGON2I unterstützt.

Verfügbar von PHP 7.3.0 an.

PASSWORD_ARGON2_DEFAULT_MEMORY_COST (int)

Der Vorgabewert des Speichers in Bytes, den Argon2lib beim Versuch den Hash zu berechnen, verwenden wird.

Verfügbar von PHP 7.2.0 an.

PASSWORD_ARGON2_DEFAULT_TIME_COST (int)

Der Vorgabewert der Dauer, die Argon2lib beim Versuch den Hash zu berechnen, verwenden wird.

Verfügbar von PHP 7.2.0 an.

PASSWORD_ARGON2_DEFAULT_THREADS (int)

Der Vorgabewert der Anzahl Threads, die Argon2lib verwenden wird.

Verfügbar von PHP 7.2.0 an.

PASSWORD_DEFAULT (mixed)

Der Vorgabewert des Algorithmus, der für das Hashing verwendet wird, wenn kein Algorithmus angegeben wird. Dies kann sich in neueren PHP-Releases ändern, wenn neuere, stärkere Hash-Algorithmen unterstützt werden.

Es ist zu betonen, dass sich im Lauf der Zeit diese Konstante ändern kann (und vermutlich wird). Daher ist zu beachten, dass sich die Länge des resultierenden Hashs ändern kann. Also sollte bei Verwendung von PASSWORD_DEFAULT der sich ergebende Hash so gespeichert werden, dass er mehr als 60 Zeichen lang sein kann (255 ist die empfohlene Länge).

Werte dieser Konstante:

  • PHP 5.5.0 - PASSWORD_BCRYPT

Changelog

Version | Beschreibung
7.4.0 | Die Werte der Passwort-Algorithmen-IDs (PASSWORD_BCRYPT, PASSWORD_ARGON2I, PASSWORD_ARGON2ID und PASSWORD_DEFAULT) sind nun Strings. Zuvor waren es Integer.


Passwort-Hashing-Funktionen

Inhaltsverzeichnis

  • password_algos — Get available password hashing algorithm IDs
  • password_get_info — Gibt Informationen über einen Hash zurück
  • password_hash — Erstellt einen Passwort-Hash
  • password_needs_rehash — Überprüft, ob der übergebene Hash mit den übergebenen Optionen übereinstimmt
  • password_verify — Überprüft, ob ein Passwort und ein Hash zusammenpassen


Get available password hashing algorithm IDs

  • « Passwort-Hashing-Funktionen
  • password_get_info »
  • PHP Manual
  • Passwort-Hashing-Funktionen
  • Get available password hashing algorithm IDs

password_algos

(PHP 7 >= 7.4.0, PHP 8)

password_algos — Get available password hashing algorithm IDs

Beschreibung

password_algos ( ) : array

Returns a complete list of all registered password hashing algorithm IDs as an Array of Strings.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the available password hashing algorithm IDs.

Beispiele

Beispiel #1 Basic password() usage

<?php
print_r(password_algos());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => 2y
    [1] => argon2i
    [2] => argon2id
)


Gibt Informationen über einen Hash zurück

  • « password_algos
  • password_hash »
  • PHP Manual
  • Passwort-Hashing-Funktionen
  • Gibt Informationen über einen Hash zurück

password_get_info

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_get_info — Gibt Informationen über einen Hash zurück

Beschreibung

password_get_info ( string $hash ) : array

Falls ein gültiger Hash übergeben wird, der durch einen von password_hash() unterstützen Algorithmus erzeugt wurde, gibt diese Funktion ein Array mit Informationen über diesen Hash zurück.

Parameter-Liste

hash

Ein Hash, der durch password_hash() erzeugt wurde.

Rückgabewerte

Gibt ein assoziatives Array mit drei Elementen zurück:

  • algo, dies ist eine der Passwort-Algorithmus-Konstanten
  • algoName, dies ist der lesbare Name des Algorithmus
  • options, dies enthält die Optionen, die password_hash() übergeben wurden


Erstellt einen Passwort-Hash

  • « password_get_info
  • password_needs_rehash »
  • PHP Manual
  • Passwort-Hashing-Funktionen
  • Erstellt einen Passwort-Hash

password_hash

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_hash — Erstellt einen Passwort-Hash

Beschreibung

password_hash ( string $password , mixed $algo , array $options = ? ) : string|false

password_hash() erstellt einen neuen Passwort-Hash und
benutzt dabei einen starken Einweg-Hashing-Algorithmus.
password_hash() ist kompatibel zu
crypt(). Daher können Passwort-Hashes, die durch
crypt() erzeugt wurden, mit
password_hash() verwendet werden.

Die folgenden Algorithmen werden zur Zeit unterstützt:

  • PASSWORD_DEFAULT - Benutzt den bcrypt-Algorithmus (Standard in PHP 5.5.0). Es ist zu beachten, dass sich diese Konstante mit der Zeit ändern wird, wenn stärkere Algorithmen in PHP implementiert werden. Aus diesem Grund kann sich die Länge des zurückgegebenen Strings mit der Zeit ändern. Es wird deshalb empfohlen das Ergebnis in einem Datenbankfeld zu speichern, das mehr als 60 Zeichen speichern kann. (z.B. 255 Zeichen).
  • PASSWORD_BCRYPT - Benutzt den CRYPT_BLOWFISH-Algorithmus zum Erstellen des Hashes. Dieser erstellt einen crypt()-kompatiblen Hash und benutzt die "$2y$"-Kennung. Es wird immer ein 60 Zeichen langer String zurückgegeben, Im Fehlerfall wird false zurückgegeben.
  • PASSWORD_ARGON2I - Verwendet den Argon2i-Algorithmus zur Erstellung des Hashes. Dieser Algorithmus ist nur verfügbar, wenn PHP mit Argon2-Unterstützung kompiliert wurde.
  • PASSWORD_ARGON2ID - Verwendet den Argon2id-Algorithmus zur Erstellung des Hashes. Dieser Algorithmus ist nur verfügbar, wenn PHP mit Argon2-Unterstützung kompiliert wurde.

Unterstützte Optionen für PASSWORD_BCRYPT:

  • salt (string) - um manuell ein Salt anzugeben, das beim Hashing des Passworts verwendet wird. Es ist zu beachten, dass diese Option die automatische Generierung des Salt verhindert.

    Wenn diese Option nicht angegeben wird, erzeugt die Funktion password_hash() für jedes gehashte Passwort ein zufälliges Salt. Dies ist die vorgesehene Funktionsweise.

    Warnung

    Die salt-Option wird von PHP 7.0.0 an missbilligt. Es wird nun empfohlen, einfach das Salt zu verwenden, das standardmäßig erzeugt wird.

  • cost (int) - bezeichnet die algorithmischen Kosten, die verwendet werden sollen. Beispiele für diesen Wert finden Sie finden Sie auf der Seite crypt().

    Wenn diese Option nicht angegeben wird, wird ein Standardwert von 10 verwendet. Dies ist eine gute Basis für die Kosten, aber je nach Hardware sollten Sie in Betracht ziehen, den Wert zu erhöhen.

Unterstützte Optionen für PASSWORD_ARGON2I und PASSWORD_ARGON2ID:

  • memory_cost (int) - Maximaler Speicher (in Kibibytes), der zum Berechnen des Argon2-Hashes verwendet werden darf. Der Standardwert ist PASSWORD_ARGON2_DEFAULT_MEMORY_COST.

  • time_cost (int) - Maximale Zeit, die die das Berechnen des Argon2-Hashes dauern darf. Der Standardwert ist PASSWORD_ARGON2_DEFAULT_TIME_COST.

  • threads (int) - Anzahl der zu verwendenden Threads zum Berechnen des Argon2-Hashes. Der Standardwert ist PASSWORD_ARGON2_DEFAULT_THREADS.

Parameter-Liste

password

Das Passwort des Benutzers.

Achtung

Die Verwendung von PASSWORD_BCRYPT als Algorithmus führt dazu, dass der Parameter password auf eine Höchstlänge von 72 Zeichen gekürzt wird.

algo

Eine Konstante für den Passwort-Algorithmus, die den Algorithmus zum hashen des Passwortes angibt.

options

Ein assoziatives Array mit Optionen. Siehe auch Konstanten für Passwort-Algorithmen für Informationen zu den von den jeweiligen Algorithmen unterstützten Optionen.

Wenn diese Option weggelassen wird, wird ein zufälliges Salz erzeugt und die Standardkosten werden verwendet.

Rückgabewerte

Gibt den Passwort-Hash zurück. Im Fehlerfall wird false zurückgegeben.

Der verwendete Algorithmus, der Aufwand und das Salt werden als Teil des Hashes zurückgegeben. Daher sind alle Informationen, die benötigt werden, um den Hash zu verifizieren, darin enthalten. Dies erlaubt es der Funktion password_verify() den Hash zu überprüfen, ohne dass eine separate Speicherung für das Salt oder die Algorithmus-Informationen erforderlich ist.

Changelog

Version | Beschreibung
7.4.0 | Der algo Parameter erwartet nun einen String, aber akzeptiert noch immer Integer aus Gründen der Abwärtskompatibilität.
7.3.0 | Mit PASSWORD_ARGON2ID wurde die Unterstützung für Argon2id-Passwörter hinzugefügt.
7.2.0 | Mit PASSWORD_ARGON2I wurde die Unterstützung für Argon2i-Passwörter hinzugefügt.

Beispiele

Beispiel #1 password_hash()-Beispiel

<?php
/**
 * Wir wollen nur unser Passwort mit dem aktuellen STANDARD-Algorithmus hashen.
 * Dieser ist derzeit BCRYPT und liefert ein Ergebnis mit 60 Zeichen.
 *
 * Beachten Sie, dass sich STANDARD im Laufe der Zeit ändern kann, daher
 * sollten Sie sich darauf vorbereiten, indem Sie die Speicherung von mehr als
 * 60 Zeichen ermöglichen (255 wäre gut).
 */
echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a

Beispiel #2 password_hash()-Beispiel mit manuell festgelegten Kosten

<?php
/**
 * In diesem Fall wollen wir die Standardkosten für BCRYPT auf 12 erhöhen.
 * Beachten Sie, dass wir auch auf BCRYPT umgestellt haben, das immer 60
 * Zeichen haben wird.
 */
$optionen = [
    'cost' => 12,
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $optionen);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

$2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K

Beispiel #3 password_hash()-Beispiel für die Suche nach angemessenen Kosten

<?php
/**
 * Dieser Code führt einen Benchmark Ihres Servers durch, um festzustellen,
 * wie hoch die Kosten sind, die Sie sich leisten können. Sie sollten die
 * höchsten Kosten einstellen, die Sie sich leisten können, ohne dass der
 * Server zu sehr verlangsamt wird. 8-10 ist ein guter Grundwert, und mehr ist
 * gut, wenn Ihre Server schnell genug sind. Der folgende Code zielt auf eine
 * Dehnungszeit von = 50 Millisekunden ab, was ein guter Richtwert für Systeme
 * ist, die interaktive Anmeldungen verarbeiten.
 */
$zeitZiel = 0.05; // 50 Millisekunden

$kosten = 8;
do {
    $kosten++;
    $start = microtime(true);
    password_hash("test", PASSWORD_BCRYPT, ["cost" => $kosten]);
    $ende = microtime(true);
} while (($ende - $start) < $zeitZiel);

echo "Ermittelte angemessene Kosten: " . $kosten;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ermittelte angemessene Kosten: 10

Beispiel #4 password_hash()-Beispiel, das Argon2i verwendet

<?php
echo 'Argon2i-Hash: ' . password_hash('rasmuslerdorf', PASSWORD_ARGON2I);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Argon2i-Hash: $argon2i$v=19$m=1024,t=2,p=2$YzJBSzV4TUhkMzc3d3laeg$zqU/1IN0/AogfP4cmSJI1vc8lpXRW9/S0sYY2i2jHT0

Anmerkungen

Achtung

Es wird dringend empfohlen, dass Sie kein eigenes Salz für diese Funktion verwenden. Es wird automatisch ein sicheres Salt für Sie erzeugt, wenn Sie keines angeben.

Wie oben erwähnt, erzeugt die Angabe der Option salt in PHP 7.0 eine Missbilligungs-Warnung. Die Unterstützung für die manuelle Angabe eines Salzes kann in einer zukünftigen PHP-Version entfernt werden.

Hinweis:

Es wird empfohlen, dass Sie diese Funktion auf Ihren Servern testen und den Kostenparameter so anpassen, dass die Ausführung der Funktion weniger als 100 Millisekunden auf interaktiven Systemen dauert. Das Skript im obigen Beispiel wird hilft Ihnen, einen guten Kostenwert für Ihre Hardware zu wählen.

Hinweis: Aktualisierungen der unterstützten Algorithmen durch diese Funktion (oder Änderungen am Standardalgorithmus) müssen den folgenden Regeln folgen:

  • Jeder neue Algorithmus muss für mindestens 1 Vollversion im Core von PHP sein, bevor er zum Standard wird. Wenn also z.B. ein neuer Algorithmus in 7.5.5 hinzugefügt wird, wäre er erst in 7.7 als Standard geeignet (da 7.6 die erste Vollversion wäre). Wenn aber ein anderer Algorithmus in 7.6.0 hinzugefügt würde, wäre auch dieser für die Standardeinstellung in 7.7.0 freigegeben.
  • Die Voreinstellung sollte sich nur bei einem Vollversion (7.3.0, 8.0.0, etc) ändern und nicht bei einem Korrekturversion. Die einzige Ausnahme hiervon ist in einem Notfall, wenn eine kritische Sicherheitslücke in der aktuellen Voreinstellung gefunden wurde.

Siehe auch

  • password_verify() - Überprüft, ob ein Passwort und ein Hash zusammenpassen
  • crypt() - Einweg-String-Hashing
  • » userland implementation
  • sodium_crypto_pwhash_str() - Get an ASCII-encoded hash


Überprüft, ob der übergebene Hash mit den übergebenen Optionen übereinstimmt

  • « password_hash
  • password_verify »
  • PHP Manual
  • Passwort-Hashing-Funktionen
  • Überprüft, ob der übergebene Hash mit den übergebenen Optionen übereinstimmt

password_needs_rehash

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_needs_rehash — Überprüft, ob der übergebene Hash mit den übergebenen Optionen übereinstimmt

Beschreibung

password_needs_rehash ( string $hash , mixed $algo , array $options = ? ) : bool

Diese Funktion überprüft, ob der übergebene Hash den gleichen Algorithmus und die gleichen Optionen nutzt, wie in den übergebenen Optionen abgegeben. Falls nicht, wird angenommen, dass erneutes Hashen notwendig ist.

Parameter-Liste

hash

Ein Hash, der durch password_hash() erzeugt wurde.

algo

Eine Konstante für den Passwort-Algorithmus, die den Algorithmus zum hashen des Passwortes angibt.

options

Ein assoziatives Array mit Optionen. Siehe auch Konstanten für Passwort-Algorithmen für Informationen zu den von den jeweiligen Algorithmen unterstützten Optionen.

Rückgabewerte

Gibt true zurück, falls der Hash erneut gehasht werden muss, damit die übergebenen Parameter algo und options übereinstimmen, sonst false.

Changelog

Version | Beschreibung
7.4.0 | Der algo Parameter erwartet nun einen String, aber akzeptiert noch immer Integer aus Gründen der Abwärtskompatibilität.

Beispiele

Beispiel #1 password_needs_rehash() Verwendungsbeispiel

<?php

$password = 'rasmuslerdorf';
$hash = '$2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS';

// Der Aufwand-Parameter kann sich im Lauf der Zeit ändern, da die Hardware besser wird
$options = array('cost' => 11);

// Überprüfe den gespeicherten Hash gegen das Klartextkennwort
if (password_verify($password, $hash)) {
    // Prüfe ob ein neuerer Hash-Algorithmus verfügbar ist
    // oder sich der Aufwand geändert hat
    if (password_needs_rehash($hash, PASSWORD_DEFAULT, $options)) {
        // Falls ja, dann erzeuge einen neuen Hash, und ersetze den alten
        $newHash = password_hash($password, PASSWORD_DEFAULT, $options);
    }

    // Melde Nutzer an
}
?>


Überprüft, ob ein Passwort und ein Hash zusammenpassen

  • « password_needs_rehash
  • Sodium »
  • PHP Manual
  • Passwort-Hashing-Funktionen
  • Überprüft, ob ein Passwort und ein Hash zusammenpassen

password_verify

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_verify — Überprüft, ob ein Passwort und ein Hash zusammenpassen

Beschreibung

password_verify ( string $password , string $hash ) : boolean

Überprüft, ob ein Passwort und ein Hash zusammenpassen.

Beachte, dass password_hash() den Algorithmus, den Aufwand und den Salt als Teil des Hashes zurückgibt. Somit sind alle benötigten Informationen im Hash enthalten, was der Funktion erlaubt den Hash zu prüfen, ohne dass Informationen über den Salt oder den Algorithmus an anderer Stelle gespeichert werden müssen.

Diese Funktion ist vor Timing-Angriffen sicher.

Parameter-Liste

password

Das Passwort des Benutzers.

hash

Ein Hash, der durch password_hash() erzeugt wurde.

Rückgabewerte

Gibt true zurück, falls Password und Hash zusammenpassen, sonst false.

Beispiele

Beispiel #1 password_verify()-Beispiel

<?php
// Siehe auch das password_hash() Beispiel in diesem Kontext
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Valides Passwort!';
} else {
    echo 'Invalides Passwort.';
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Valides Passwort!

Siehe auch

  • password_hash() - Erstellt einen Passwort-Hash
  • » Userland Implementation
  • sodium_crypto_pwhash_str_verify() - Verifies that a password matches a hash


Sodium

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Sodium Funktionen
    • sodium_add — Add large numbers
    • sodium_base642bin — Description
    • sodium_bin2base64 — Description
    • sodium_bin2hex — Encode to hexadecimal
    • sodium_compare — Compare large numbers
    • sodium_crypto_aead_aes256gcm_decrypt — Decrypt in combined mode with precalculation
    • sodium_crypto_aead_aes256gcm_encrypt — Encrypt in combined mode with precalculation
    • sodium_crypto_aead_aes256gcm_is_available — Check if hardware supports AES256-GCM
    • sodium_crypto_aead_aes256gcm_keygen — Get random bytes for key
    • sodium_crypto_aead_chacha20poly1305_decrypt — Verify that the ciphertext includes a valid tag
    • sodium_crypto_aead_chacha20poly1305_encrypt — Encrypt a message
    • sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Verify that the ciphertext includes a valid tag
    • sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Encrypt a message
    • sodium_crypto_aead_chacha20poly1305_ietf_keygen — Get random bytes for key
    • sodium_crypto_aead_chacha20poly1305_keygen — Get random bytes for key
    • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — Description
    • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — Description
    • sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Description
    • sodium_crypto_auth_keygen — Get random bytes for key
    • sodium_crypto_auth_verify — Verifies that the tag is valid for the message
    • sodium_crypto_auth — Compute a tag for the message
    • sodium_crypto_box_keypair_from_secretkey_and_publickey — Description
    • sodium_crypto_box_keypair — Randomly generate a secret key and a corresponding public key
    • sodium_crypto_box_open — Verify and decrypt a ciphertext
    • sodium_crypto_box_publickey_from_secretkey — Description
    • sodium_crypto_box_publickey — Description
    • sodium_crypto_box_seal_open — Decrypt the ciphertext
    • sodium_crypto_box_seal — Encrypt a message
    • sodium_crypto_box_secretkey — Description
    • sodium_crypto_box_seed_keypair — Deterministically derive the key pair from a single key
    • sodium_crypto_box — Encrypt a message
    • sodium_crypto_generichash_final — Complete the hash
    • sodium_crypto_generichash_init — Initialize a hash
    • sodium_crypto_generichash_keygen — Get random bytes for key
    • sodium_crypto_generichash_update — Add message to a hash
    • sodium_crypto_generichash — Get a hash of the message
    • sodium_crypto_kdf_derive_from_key — Derive a subkey
    • sodium_crypto_kdf_keygen — Get random bytes for key
    • sodium_crypto_kx_client_session_keys — Description
    • sodium_crypto_kx_keypair — Creates a new sodium keypair
    • sodium_crypto_kx_publickey — Description
    • sodium_crypto_kx_secretkey — Description
    • sodium_crypto_kx_seed_keypair — Description
    • sodium_crypto_kx_server_session_keys — Description
    • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify — Verify that the password is a valid password verification string
    • sodium_crypto_pwhash_scryptsalsa208sha256_str — Get an ASCII encoded hash
    • sodium_crypto_pwhash_scryptsalsa208sha256 — Derives a key from a password
    • sodium_crypto_pwhash_str_needs_rehash — Description
    • sodium_crypto_pwhash_str_verify — Verifies that a password matches a hash
    • sodium_crypto_pwhash_str — Get an ASCII-encoded hash
    • sodium_crypto_pwhash — Derive a key from a password
    • sodium_crypto_scalarmult_base — Alias von sodium_crypto_box_publickey_from_secretkey
    • sodium_crypto_scalarmult — Compute a shared secret given a user's secret key and another user's public key
    • sodium_crypto_secretbox_keygen — Get random bytes for key
    • sodium_crypto_secretbox_open — Verify and decrypt a ciphertext
    • sodium_crypto_secretbox — Encrypt a message
    • sodium_crypto_secretstream_xchacha20poly1305_init_pull — Description
    • sodium_crypto_secretstream_xchacha20poly1305_init_push — Description
    • sodium_crypto_secretstream_xchacha20poly1305_keygen — Description
    • sodium_crypto_secretstream_xchacha20poly1305_pull — Description
    • sodium_crypto_secretstream_xchacha20poly1305_push — Description
    • sodium_crypto_secretstream_xchacha20poly1305_rekey — Description
    • sodium_crypto_shorthash_keygen — Get random bytes for key
    • sodium_crypto_shorthash — Compute a fixed-size fingerprint for the message
    • sodium_crypto_sign_detached — Sign the message
    • sodium_crypto_sign_ed25519_pk_to_curve25519 — Convert an Ed25519 public key to a Curve25519 public key
    • sodium_crypto_sign_ed25519_sk_to_curve25519 — Convert an Ed25519 secret key to a Curve25519 secret key
    • sodium_crypto_sign_keypair_from_secretkey_and_publickey — Description
    • sodium_crypto_sign_keypair — Randomly generate a secret key and a corresponding public key
    • sodium_crypto_sign_open — Check that the signed message has a valid signature
    • sodium_crypto_sign_publickey_from_secretkey — Extract the public key from the secret key
    • sodium_crypto_sign_publickey — Description
    • sodium_crypto_sign_secretkey — Description
    • sodium_crypto_sign_seed_keypair — Deterministically derive the key pair from a single key
    • sodium_crypto_sign_verify_detached — Verify signature for the message
    • sodium_crypto_sign — Sign a message
    • sodium_crypto_stream_keygen — Get random bytes for key
    • sodium_crypto_stream_xor — Encrypt a message
    • sodium_crypto_stream — Generate a deterministic sequence of bytes from a seed
    • sodium_hex2bin — Decodes a hexadecimally encoded binary string
    • sodium_increment — Increment large number
    • sodium_memcmp — Test for equality in constant-time
    • sodium_memzero — Overwrite buf with zeros
    • sodium_pad — Add padding data
    • sodium_unpad — Remove padding data
  • SodiumException — The SodiumException class


  • « Sodium
  • Installation/Konfiguration »
  • PHP Manual
  • Sodium
  • Einführung

Einführung


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

This extension requires » libsodium = 1.0.8.


Installation

As of PHP 7.2.0 this extension is bundled with PHP. For older PHP versions this extension is available via PECL.

Linux Systems

In order to use this extension you must compile PHP with sodium support by using the --with-sodium[=DIR] configure option.

Windows

In order to use this extension you have to add extension=php_sodium.dll to php.ini.

Installation via PECL

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/libsodium


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SODIUM_LIBRARY_VERSION (string)
SODIUM_LIBRARY_MAJOR_VERSION (int)
SODIUM_LIBRARY_MINOR_VERSION (int)
SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES (int)
SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES (int)
SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES (int)
SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES (int)
SODIUM_CRYPTO_AUTH_BYTES (int)
SODIUM_CRYPTO_AUTH_KEYBYTES (int)
SODIUM_CRYPTO_BOX_SEALBYTES (int)
SODIUM_CRYPTO_BOX_SECRETKEYBYTES (int)
SODIUM_CRYPTO_BOX_PUBLICKEYBYTES (int)
SODIUM_CRYPTO_BOX_KEYPAIRBYTES (int)
SODIUM_CRYPTO_BOX_MACBYTES (int)
SODIUM_CRYPTO_BOX_NONCEBYTES (int)
SODIUM_CRYPTO_BOX_SEEDBYTES (int)
SODIUM_CRYPTO_KDF_BYTES_MIN (int)
SODIUM_CRYPTO_KDF_BYTES_MAX (int)
SODIUM_CRYPTO_KDF_CONTEXTBYTES (int)
SODIUM_CRYPTO_KDF_KEYBYTES (int)
SODIUM_CRYPTO_KX_SEEDBYTES (int)
SODIUM_CRYPTO_KX_SESSIONKEYBYTES (int)
SODIUM_CRYPTO_KX_PUBLICKEYBYTES (int)
SODIUM_CRYPTO_KX_SECRETKEYBYTES (int)
SODIUM_CRYPTO_KX_KEYPAIRBYTES (int)
SODIUM_CRYPTO_GENERICHASH_BYTES (int)
SODIUM_CRYPTO_GENERICHASH_BYTES_MIN (int)
SODIUM_CRYPTO_GENERICHASH_BYTES_MAX (int)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES (int)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN (int)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX (int)
SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13 (int)
SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13 (int)
SODIUM_CRYPTO_PWHASH_ALG_DEFAULT (int)
SODIUM_CRYPTO_PWHASH_SALTBYTES (int)
SODIUM_CRYPTO_PWHASH_STRPREFIX (string)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE (int)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE (int)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX (string)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_SCALARMULT_BYTES (int)
SODIUM_CRYPTO_SCALARMULT_SCALARBYTES (int)
SODIUM_CRYPTO_SHORTHASH_BYTES (int)
SODIUM_CRYPTO_SHORTHASH_KEYBYTES (int)
SODIUM_CRYPTO_SECRETBOX_KEYBYTES (int)
SODIUM_CRYPTO_SECRETBOX_MACBYTES (int)
SODIUM_CRYPTO_SECRETBOX_NONCEBYTES (int)
SODIUM_CRYPTO_SIGN_BYTES (int)
SODIUM_CRYPTO_SIGN_SEEDBYTES (int)
SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES (int)
SODIUM_CRYPTO_SIGN_SECRETKEYBYTES (int)
SODIUM_CRYPTO_SIGN_KEYPAIRBYTES (int)
SODIUM_CRYPTO_STREAM_NONCEBYTES (int)
SODIUM_CRYPTO_STREAM_KEYBYTES (int)


Sodium Funktionen

Inhaltsverzeichnis

  • sodium_add — Add large numbers
  • sodium_base642bin — Description
  • sodium_bin2base64 — Description
  • sodium_bin2hex — Encode to hexadecimal
  • sodium_compare — Compare large numbers
  • sodium_crypto_aead_aes256gcm_decrypt — Decrypt in combined mode with precalculation
  • sodium_crypto_aead_aes256gcm_encrypt — Encrypt in combined mode with precalculation
  • sodium_crypto_aead_aes256gcm_is_available — Check if hardware supports AES256-GCM
  • sodium_crypto_aead_aes256gcm_keygen — Get random bytes for key
  • sodium_crypto_aead_chacha20poly1305_decrypt — Verify that the ciphertext includes a valid tag
  • sodium_crypto_aead_chacha20poly1305_encrypt — Encrypt a message
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Verify that the ciphertext includes a valid tag
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Encrypt a message
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen — Get random bytes for key
  • sodium_crypto_aead_chacha20poly1305_keygen — Get random bytes for key
  • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — Description
  • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — Description
  • sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Description
  • sodium_crypto_auth_keygen — Get random bytes for key
  • sodium_crypto_auth_verify — Verifies that the tag is valid for the message
  • sodium_crypto_auth — Compute a tag for the message
  • sodium_crypto_box_keypair_from_secretkey_and_publickey — Description
  • sodium_crypto_box_keypair — Randomly generate a secret key and a corresponding public key
  • sodium_crypto_box_open — Verify and decrypt a ciphertext
  • sodium_crypto_box_publickey_from_secretkey — Description
  • sodium_crypto_box_publickey — Description
  • sodium_crypto_box_seal_open — Decrypt the ciphertext
  • sodium_crypto_box_seal — Encrypt a message
  • sodium_crypto_box_secretkey — Description
  • sodium_crypto_box_seed_keypair — Deterministically derive the key pair from a single key
  • sodium_crypto_box — Encrypt a message
  • sodium_crypto_generichash_final — Complete the hash
  • sodium_crypto_generichash_init — Initialize a hash
  • sodium_crypto_generichash_keygen — Get random bytes for key
  • sodium_crypto_generichash_update — Add message to a hash
  • sodium_crypto_generichash — Get a hash of the message
  • sodium_crypto_kdf_derive_from_key — Derive a subkey
  • sodium_crypto_kdf_keygen — Get random bytes for key
  • sodium_crypto_kx_client_session_keys — Description
  • sodium_crypto_kx_keypair — Creates a new sodium keypair
  • sodium_crypto_kx_publickey — Description
  • sodium_crypto_kx_secretkey — Description
  • sodium_crypto_kx_seed_keypair — Description
  • sodium_crypto_kx_server_session_keys — Description
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify — Verify that the password is a valid password verification string
  • sodium_crypto_pwhash_scryptsalsa208sha256_str — Get an ASCII encoded hash
  • sodium_crypto_pwhash_scryptsalsa208sha256 — Derives a key from a password
  • sodium_crypto_pwhash_str_needs_rehash — Description
  • sodium_crypto_pwhash_str_verify — Verifies that a password matches a hash
  • sodium_crypto_pwhash_str — Get an ASCII-encoded hash
  • sodium_crypto_pwhash — Derive a key from a password
  • sodium_crypto_scalarmult_base — Alias von sodium_crypto_box_publickey_from_secretkey
  • sodium_crypto_scalarmult — Compute a shared secret given a user's secret key and another user's public key
  • sodium_crypto_secretbox_keygen — Get random bytes for key
  • sodium_crypto_secretbox_open — Verify and decrypt a ciphertext
  • sodium_crypto_secretbox — Encrypt a message
  • sodium_crypto_secretstream_xchacha20poly1305_init_pull — Description
  • sodium_crypto_secretstream_xchacha20poly1305_init_push — Description
  • sodium_crypto_secretstream_xchacha20poly1305_keygen — Description
  • sodium_crypto_secretstream_xchacha20poly1305_pull — Description
  • sodium_crypto_secretstream_xchacha20poly1305_push — Description
  • sodium_crypto_secretstream_xchacha20poly1305_rekey — Description
  • sodium_crypto_shorthash_keygen — Get random bytes for key
  • sodium_crypto_shorthash — Compute a fixed-size fingerprint for the message
  • sodium_crypto_sign_detached — Sign the message
  • sodium_crypto_sign_ed25519_pk_to_curve25519 — Convert an Ed25519 public key to a Curve25519 public key
  • sodium_crypto_sign_ed25519_sk_to_curve25519 — Convert an Ed25519 secret key to a Curve25519 secret key
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey — Description
  • sodium_crypto_sign_keypair — Randomly generate a secret key and a corresponding public key
  • sodium_crypto_sign_open — Check that the signed message has a valid signature
  • sodium_crypto_sign_publickey_from_secretkey — Extract the public key from the secret key
  • sodium_crypto_sign_publickey — Description
  • sodium_crypto_sign_secretkey — Description
  • sodium_crypto_sign_seed_keypair — Deterministically derive the key pair from a single key
  • sodium_crypto_sign_verify_detached — Verify signature for the message
  • sodium_crypto_sign — Sign a message
  • sodium_crypto_stream_keygen — Get random bytes for key
  • sodium_crypto_stream_xor — Encrypt a message
  • sodium_crypto_stream — Generate a deterministic sequence of bytes from a seed
  • sodium_hex2bin — Decodes a hexadecimally encoded binary string
  • sodium_increment — Increment large number
  • sodium_memcmp — Test for equality in constant-time
  • sodium_memzero — Overwrite buf with zeros
  • sodium_pad — Add padding data
  • sodium_unpad — Remove padding data


Add large numbers

  • « Sodium Funktionen
  • sodium_base642bin »
  • PHP Manual
  • Sodium Funktionen
  • Add large numbers

sodium_add

(PHP 7 >= 7.2.0, PHP 8)

sodium_add — Add large numbers

Beschreibung

sodium_add ( string &$string1 , string $string2 ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

string1

string2

Rückgabewerte

Es wird kein Wert zurückgegeben.


Description

  • « sodium_add
  • sodium_bin2base64 »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_base642bin

(PHP 7 >= 7.2.0, PHP 8)

sodium_base642bin — Description

Beschreibung

sodium_base642bin ( string $string , int $id , string $ignore = "" ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

string

id

ignore

Rückgabewerte


Description

  • « sodium_base642bin
  • sodium_bin2hex »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_bin2base64

(PHP 7 >= 7.2.0, PHP 8)

sodium_bin2base64 — Description

Beschreibung

sodium_bin2base64 ( string $string , int $id ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

string

id

Rückgabewerte


Encode to hexadecimal

  • « sodium_bin2base64
  • sodium_compare »
  • PHP Manual
  • Sodium Funktionen
  • Encode to hexadecimal

sodium_bin2hex

(PHP 7 >= 7.2.0, PHP 8)

sodium_bin2hex — Encode to hexadecimal

Beschreibung

sodium_bin2hex ( string $string ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

string

Rückgabewerte


Compare large numbers

  • « sodium_bin2hex
  • sodium_crypto_aead_aes256gcm_decrypt »
  • PHP Manual
  • Sodium Funktionen
  • Compare large numbers

sodium_compare

(PHP 7 >= 7.2.0, PHP 8)

sodium_compare — Compare large numbers

Beschreibung

sodium_compare ( string $string1 , string $string2 ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

string1

string2

Rückgabewerte


Decrypt in combined mode with precalculation

  • « sodium_compare
  • sodium_crypto_aead_aes256gcm_encrypt »
  • PHP Manual
  • Sodium Funktionen
  • Decrypt in combined mode with precalculation

sodium_crypto_aead_aes256gcm_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_decrypt — Decrypt in combined mode with precalculation

Beschreibung

sodium_crypto_aead_aes256gcm_decrypt ( string $ciphertext , string $additional_data , string $nonce , string $key ) : string|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

ciphertext

additional_data

nonce

key

Rückgabewerte


Encrypt in combined mode with precalculation

  • « sodium_crypto_aead_aes256gcm_decrypt
  • sodium_crypto_aead_aes256gcm_is_available »
  • PHP Manual
  • Sodium Funktionen
  • Encrypt in combined mode with precalculation

sodium_crypto_aead_aes256gcm_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_encrypt — Encrypt in combined mode with precalculation

Beschreibung

sodium_crypto_aead_aes256gcm_encrypt ( string $message , string $additional_data , string $nonce , string $key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

additional_data

nonce

key

Rückgabewerte


Check if hardware supports AES256-GCM

  • « sodium_crypto_aead_aes256gcm_encrypt
  • sodium_crypto_aead_aes256gcm_keygen »
  • PHP Manual
  • Sodium Funktionen
  • Check if hardware supports AES256-GCM

sodium_crypto_aead_aes256gcm_is_available

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_is_available — Check if hardware supports AES256-GCM

Beschreibung

sodium_crypto_aead_aes256gcm_is_available ( ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get random bytes for key

  • « sodium_crypto_aead_aes256gcm_is_available
  • sodium_crypto_aead_chacha20poly1305_decrypt »
  • PHP Manual
  • Sodium Funktionen
  • Get random bytes for key

sodium_crypto_aead_aes256gcm_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_keygen — Get random bytes for key

Beschreibung

sodium_crypto_aead_aes256gcm_keygen ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Verify that the ciphertext includes a valid tag

  • « sodium_crypto_aead_aes256gcm_keygen
  • sodium_crypto_aead_chacha20poly1305_encrypt »
  • PHP Manual
  • Sodium Funktionen
  • Verify that the ciphertext includes a valid tag

sodium_crypto_aead_chacha20poly1305_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_decrypt — Verify that the ciphertext includes a valid tag

Beschreibung

sodium_crypto_aead_chacha20poly1305_decrypt ( string $ciphertext , string $additional_data , string $nonce , string $key ) : string|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

ciphertext

additional_data

nonce

key

Rückgabewerte


Encrypt a message

  • « sodium_crypto_aead_chacha20poly1305_decrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt »
  • PHP Manual
  • Sodium Funktionen
  • Encrypt a message

sodium_crypto_aead_chacha20poly1305_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_encrypt — Encrypt a message

Beschreibung

sodium_crypto_aead_chacha20poly1305_encrypt ( string $message , string $additional_data , string $nonce , string $key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

additional_data

nonce

key

Rückgabewerte


Verify that the ciphertext includes a valid tag

  • « sodium_crypto_aead_chacha20poly1305_encrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt »
  • PHP Manual
  • Sodium Funktionen
  • Verify that the ciphertext includes a valid tag

sodium_crypto_aead_chacha20poly1305_ietf_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Verify that the ciphertext includes a valid tag

Beschreibung

sodium_crypto_aead_chacha20poly1305_ietf_decrypt ( string $ciphertext , string $additional_data , string $nonce , string $key ) : string|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

ciphertext

additional_data

nonce

key

Rückgabewerte


Encrypt a message

  • « sodium_crypto_aead_chacha20poly1305_ietf_decrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen »
  • PHP Manual
  • Sodium Funktionen
  • Encrypt a message

sodium_crypto_aead_chacha20poly1305_ietf_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Encrypt a message

Beschreibung

sodium_crypto_aead_chacha20poly1305_ietf_encrypt ( string $message , string $additional_data , string $nonce , string $key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

additional_data

nonce

key

Rückgabewerte


Get random bytes for key

  • « sodium_crypto_aead_chacha20poly1305_ietf_encrypt
  • sodium_crypto_aead_chacha20poly1305_keygen »
  • PHP Manual
  • Sodium Funktionen
  • Get random bytes for key

sodium_crypto_aead_chacha20poly1305_ietf_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_keygen — Get random bytes for key

Beschreibung

sodium_crypto_aead_chacha20poly1305_ietf_keygen ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get random bytes for key

  • « sodium_crypto_aead_chacha20poly1305_ietf_keygen
  • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt »
  • PHP Manual
  • Sodium Funktionen
  • Get random bytes for key

sodium_crypto_aead_chacha20poly1305_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_keygen — Get random bytes for key

Beschreibung

sodium_crypto_aead_chacha20poly1305_keygen ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « sodium_crypto_aead_chacha20poly1305_keygen
  • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — Description

Beschreibung

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt ( string $ciphertext , string $additional_data , string $nonce , string $key ) : string|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

ciphertext

additional_data

nonce

key

Rückgabewerte


Description

  • « sodium_crypto_aead_xchacha20poly1305_ietf_decrypt
  • sodium_crypto_aead_xchacha20poly1305_ietf_keygen »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — Description

Beschreibung

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt ( string $message , string $additional_data , string $nonce , string $key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

additional_data

nonce

key

Rückgabewerte


Description

  • « sodium_crypto_aead_xchacha20poly1305_ietf_encrypt
  • sodium_crypto_auth_keygen »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_aead_xchacha20poly1305_ietf_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Description

Beschreibung

sodium_crypto_aead_xchacha20poly1305_ietf_keygen ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get random bytes for key

  • « sodium_crypto_aead_xchacha20poly1305_ietf_keygen
  • sodium_crypto_auth_verify »
  • PHP Manual
  • Sodium Funktionen
  • Get random bytes for key

sodium_crypto_auth_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth_keygen — Get random bytes for key

Beschreibung

sodium_crypto_auth_keygen ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Verifies that the tag is valid for the message

  • « sodium_crypto_auth_keygen
  • sodium_crypto_auth »
  • PHP Manual
  • Sodium Funktionen
  • Verifies that the tag is valid for the message

sodium_crypto_auth_verify

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth_verify — Verifies that the tag is valid for the message

Beschreibung

sodium_crypto_auth_verify ( string $mac , string $message , string $key ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

mac

message

key

Rückgabewerte


Compute a tag for the message

  • « sodium_crypto_auth_verify
  • sodium_crypto_box_keypair_from_secretkey_and_publickey »
  • PHP Manual
  • Sodium Funktionen
  • Compute a tag for the message

sodium_crypto_auth

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth — Compute a tag for the message

Beschreibung

sodium_crypto_auth ( string $message , string $key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

key

Rückgabewerte


Description

  • « sodium_crypto_auth
  • sodium_crypto_box_keypair »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_box_keypair_from_secretkey_and_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_keypair_from_secretkey_and_publickey — Description

Beschreibung

sodium_crypto_box_keypair_from_secretkey_and_publickey ( string $secret_key , string $public_key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

secret_key

public_key

Rückgabewerte


Randomly generate a secret key and a corresponding public key

  • « sodium_crypto_box_keypair_from_secretkey_and_publickey
  • sodium_crypto_box_open »
  • PHP Manual
  • Sodium Funktionen
  • Randomly generate a secret key and a corresponding public key

sodium_crypto_box_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_keypair — Randomly generate a secret key and a corresponding public key

Beschreibung

sodium_crypto_box_keypair ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Verify and decrypt a ciphertext

  • « sodium_crypto_box_keypair
  • sodium_crypto_box_publickey_from_secretkey »
  • PHP Manual
  • Sodium Funktionen
  • Verify and decrypt a ciphertext

sodium_crypto_box_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_open — Verify and decrypt a ciphertext

Beschreibung

sodium_crypto_box_open ( string $ciphertext , string $nonce , string $key_pair ) : string|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

ciphertext

nonce

key_pair

Rückgabewerte


Description

  • « sodium_crypto_box_open
  • sodium_crypto_box_publickey »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_box_publickey_from_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_publickey_from_secretkey — Description

Beschreibung

sodium_crypto_box_publickey_from_secretkey ( string $secret_key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

secret_key

Rückgabewerte


Description

  • « sodium_crypto_box_publickey_from_secretkey
  • sodium_crypto_box_seal_open »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_box_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_publickey — Description

Beschreibung

sodium_crypto_box_publickey ( string $key_pair ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

key_pair

Rückgabewerte


Decrypt the ciphertext

  • « sodium_crypto_box_publickey
  • sodium_crypto_box_seal »
  • PHP Manual
  • Sodium Funktionen
  • Decrypt the ciphertext

sodium_crypto_box_seal_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seal_open — Decrypt the ciphertext

Beschreibung

sodium_crypto_box_seal_open ( string $ciphertext , string $key_pair ) : string|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

ciphertext

key_pair

Rückgabewerte


Encrypt a message

  • « sodium_crypto_box_seal_open
  • sodium_crypto_box_secretkey »
  • PHP Manual
  • Sodium Funktionen
  • Encrypt a message

sodium_crypto_box_seal

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seal — Encrypt a message

Beschreibung

sodium_crypto_box_seal ( string $message , string $key_pair ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

key_pair

Rückgabewerte


Description

  • « sodium_crypto_box_seal
  • sodium_crypto_box_seed_keypair »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_box_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_secretkey — Description

Beschreibung

sodium_crypto_box_secretkey ( string $key_pair ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

key_pair

Rückgabewerte


Deterministically derive the key pair from a single key

  • « sodium_crypto_box_secretkey
  • sodium_crypto_box »
  • PHP Manual
  • Sodium Funktionen
  • Deterministically derive the key pair from a single key

sodium_crypto_box_seed_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seed_keypair — Deterministically derive the key pair from a single key

Beschreibung

sodium_crypto_box_seed_keypair ( string $seed ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

seed

Rückgabewerte


Encrypt a message

  • « sodium_crypto_box_seed_keypair
  • sodium_crypto_generichash_final »
  • PHP Manual
  • Sodium Funktionen
  • Encrypt a message

sodium_crypto_box

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box — Encrypt a message

Beschreibung

sodium_crypto_box ( string $message , string $nonce , string $key_pair ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

nonce

key_pair

Rückgabewerte


Complete the hash

  • « sodium_crypto_box
  • sodium_crypto_generichash_init »
  • PHP Manual
  • Sodium Funktionen
  • Complete the hash

sodium_crypto_generichash_final

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_final — Complete the hash

Beschreibung

sodium_crypto_generichash_final ( string &$state , int $length = SODIUM_CRYPTO_GENERICHASH_BYTES ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

state

length

Rückgabewerte


Initialize a hash

  • « sodium_crypto_generichash_final
  • sodium_crypto_generichash_keygen »
  • PHP Manual
  • Sodium Funktionen
  • Initialize a hash

sodium_crypto_generichash_init

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_init — Initialize a hash

Beschreibung

sodium_crypto_generichash_init ( string $key = "" , int $length = SODIUM_CRYPTO_GENERICHASH_BYTES ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

key

length

Rückgabewerte


Get random bytes for key

  • « sodium_crypto_generichash_init
  • sodium_crypto_generichash_update »
  • PHP Manual
  • Sodium Funktionen
  • Get random bytes for key

sodium_crypto_generichash_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_keygen — Get random bytes for key

Beschreibung

sodium_crypto_generichash_keygen ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Add message to a hash

  • « sodium_crypto_generichash_keygen
  • sodium_crypto_generichash »
  • PHP Manual
  • Sodium Funktionen
  • Add message to a hash

sodium_crypto_generichash_update

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_update — Add message to a hash

Beschreibung

sodium_crypto_generichash_update ( string &$state , string $message ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

state

message

Rückgabewerte


Get a hash of the message

  • « sodium_crypto_generichash_update
  • sodium_crypto_kdf_derive_from_key »
  • PHP Manual
  • Sodium Funktionen
  • Get a hash of the message

sodium_crypto_generichash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash — Get a hash of the message

Beschreibung

sodium_crypto_generichash ( string $message , string $key = "" , int $length = SODIUM_CRYPTO_GENERICHASH_BYTES ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

key

length

Rückgabewerte


Derive a subkey

  • « sodium_crypto_generichash
  • sodium_crypto_kdf_keygen »
  • PHP Manual
  • Sodium Funktionen
  • Derive a subkey

sodium_crypto_kdf_derive_from_key

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kdf_derive_from_key — Derive a subkey

Beschreibung

sodium_crypto_kdf_derive_from_key ( int $subkey_length , int $subkey_id , string $context , string $key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

subkey_length

subkey_id

context

key

Rückgabewerte


Get random bytes for key

  • « sodium_crypto_kdf_derive_from_key
  • sodium_crypto_kx_client_session_keys »
  • PHP Manual
  • Sodium Funktionen
  • Get random bytes for key

sodium_crypto_kdf_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kdf_keygen — Get random bytes for key

Beschreibung

sodium_crypto_kdf_keygen ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « sodium_crypto_kdf_keygen
  • sodium_crypto_kx_keypair »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_kx_client_session_keys

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_client_session_keys — Description

Beschreibung

sodium_crypto_kx_client_session_keys ( string $client_key_pair , string $server_key ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

client_key_pair

server_key

Rückgabewerte


Creates a new sodium keypair

  • « sodium_crypto_kx_client_session_keys
  • sodium_crypto_kx_publickey »
  • PHP Manual
  • Sodium Funktionen
  • Creates a new sodium keypair

sodium_crypto_kx_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_keypair — Creates a new sodium keypair

Beschreibung

sodium_crypto_kx_keypair ( ) : string

Create a new sodium keypair consisting of the secret key (32 bytes) followed by the public key (32 bytes). The keys can be retrieved by calling sodium_crypto_kx_secretkey() and sodium_crypto_kx_publickey(), respectively.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the new keypair on success; throws an exception otherwise.

Beispiele

Beispiel #1 sodium_crypto_kx_keypair() usage

Create a new keypair and retrieve the secret and the public key from it.

<?php
$keypair = sodium_crypto_kx_keypair();
$secret = sodium_crypto_kx_secretkey($keypair);
$public = sodium_crypto_kx_publickey($keypair);
printf("secret: %s\npublic: %s", bin2hex($secret), bin2hex($public));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

secret: e7c5c918fdc40762e6000542c0118f4368ce8fd242b0e48c1e17202797a25daf
public: d1f59fda8652caf40ed1a01d2b6f3802b60846986372cd8fa337b7c12c428b18


Description

  • « sodium_crypto_kx_keypair
  • sodium_crypto_kx_secretkey »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_kx_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_publickey — Description

Beschreibung

sodium_crypto_kx_publickey ( string $key_pair ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

key_pair

Rückgabewerte


Description

  • « sodium_crypto_kx_publickey
  • sodium_crypto_kx_seed_keypair »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_kx_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_secretkey — Description

Beschreibung

sodium_crypto_kx_secretkey ( string $key_pair ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

key_pair

Rückgabewerte


Description

  • « sodium_crypto_kx_secretkey
  • sodium_crypto_kx_server_session_keys »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_kx_seed_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_seed_keypair — Description

Beschreibung

sodium_crypto_kx_seed_keypair ( string $seed ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

seed

Rückgabewerte


Description

  • « sodium_crypto_kx_seed_keypair
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_kx_server_session_keys

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_server_session_keys — Description

Beschreibung

sodium_crypto_kx_server_session_keys ( string $server_key_pair , string $client_key ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

server_key_pair

client_key

Rückgabewerte


Verify that the password is a valid password verification string

  • « sodium_crypto_kx_server_session_keys
  • sodium_crypto_pwhash_scryptsalsa208sha256_str »
  • PHP Manual
  • Sodium Funktionen
  • Verify that the password is a valid password verification string

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify — Verify that the password is a valid password verification string

Beschreibung

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify ( string $hash , string $password ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

hash

password

Rückgabewerte


Get an ASCII encoded hash

  • « sodium_crypto_pwhash_scryptsalsa208sha256_str_verify
  • sodium_crypto_pwhash_scryptsalsa208sha256 »
  • PHP Manual
  • Sodium Funktionen
  • Get an ASCII encoded hash

sodium_crypto_pwhash_scryptsalsa208sha256_str

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_scryptsalsa208sha256_str — Get an ASCII encoded hash

Beschreibung

sodium_crypto_pwhash_scryptsalsa208sha256_str ( string $password , int $opslimit , int $memlimit ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

password

opslimit

memlimit

Rückgabewerte


Derives a key from a password

  • « sodium_crypto_pwhash_scryptsalsa208sha256_str
  • sodium_crypto_pwhash_str_needs_rehash »
  • PHP Manual
  • Sodium Funktionen
  • Derives a key from a password

sodium_crypto_pwhash_scryptsalsa208sha256

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_scryptsalsa208sha256 — Derives a key from a password

Beschreibung

sodium_crypto_pwhash_scryptsalsa208sha256 ( int $length , string $password , string $salt , int $opslimit , int $memlimit ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

length

password

salt

opslimit

memlimit

Rückgabewerte


Description

  • « sodium_crypto_pwhash_scryptsalsa208sha256
  • sodium_crypto_pwhash_str_verify »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_pwhash_str_needs_rehash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_str_needs_rehash — Description

Beschreibung

sodium_crypto_pwhash_str_needs_rehash ( string $password , int $opslimit , int $memlimit ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

password

opslimit

memlimit

Rückgabewerte


Verifies that a password matches a hash

  • « sodium_crypto_pwhash_str_needs_rehash
  • sodium_crypto_pwhash_str »
  • PHP Manual
  • Sodium Funktionen
  • Verifies that a password matches a hash

sodium_crypto_pwhash_str_verify

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_str_verify — Verifies that a password matches a hash

Beschreibung

sodium_crypto_pwhash_str_verify ( string $hash , string $password ) : bool

Checks that a password hash created using sodium_crypto_pwhash_str() matches a given plain-text password. Note that the parameters are in the opposite order to the same parameters in the similar password_hash() function.

Parameter-Liste

hash

Ein Hash, der durch password_hash() erzeugt wurde.

password

Das Passwort des Benutzers.

Rückgabewerte

Returns true if the password and hash match, or false otherwise.

Anmerkungen

Hinweis:

Hashes are calculated using the Argon2ID algorithm, providing resistance to both GPU and side-channel attacks.

Siehe auch

  • sodium_crypto_pwhash_str() - Get an ASCII-encoded hash
  • password_hash() - Erstellt einen Passwort-Hash
  • password_verify() - Überprüft, ob ein Passwort und ein Hash zusammenpassen


Get an ASCII-encoded hash

  • « sodium_crypto_pwhash_str_verify
  • sodium_crypto_pwhash »
  • PHP Manual
  • Sodium Funktionen
  • Get an ASCII-encoded hash

sodium_crypto_pwhash_str

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_str — Get an ASCII-encoded hash

Beschreibung

sodium_crypto_pwhash_str ( string $password , int $opslimit , int $memlimit ) : string

Uses a CPU- and memory-hard hash algorithm along with a randomly-generated salt, and memory and CPU limits to generate an ASCII-encoded hash suitable for password storage.

Parameter-Liste

password

string; The password to generate a hash for.

opslimit

Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are constants available to set the operations limit to appropriate values depending on intended use, in order of strength: SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE and SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE.

memlimit

The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE, and SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE. Typically these should be paired with the matching opslimit values.

Rückgabewerte

Returns the hashed password.

In order to produce the same password hash from the same password, the same values for opslimit and memlimit must be used. These are embedded within the generated hash, so everything that's needed to verify the hash is included. This allows the sodium_crypto_pwhash_str_verify() function to verify the hash without needing separate storage for the other parameters.

Anmerkungen

Hinweis:

Hashes are calculated using the Argon2ID algorithm, providing resistance to both GPU and side-channel attacks. In contrast to the password_hash() function, there is no salt parameter (a salt is generated automatically), and the opslimit and memlimit parameters are not optional.

Beispiele

Beispiel #1 password_hash() example

<?php
$password = 'password';
echo sodium_crypto_pwhash_str(
    $password,
    SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
    SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

$argon2id$v=19$m=65536,t=2,p=1$oWIfdaXwWwhVmovOBc2NAQ$EbsZ+JnZyyavkafS0hoc4HdaOB0ILWZESAZ7kVGa+Iw

Siehe auch

  • sodium_crypto_pwhash_str_verify() - Verifies that a password matches a hash
  • sodium_crypto_pwhash() - Derive a key from a password
  • password_hash() - Erstellt einen Passwort-Hash
  • password_verify() - Überprüft, ob ein Passwort und ein Hash zusammenpassen
  • » Libsodium Argon2 docs


Derive a key from a password

  • « sodium_crypto_pwhash_str
  • sodium_crypto_scalarmult_base »
  • PHP Manual
  • Sodium Funktionen
  • Derive a key from a password

sodium_crypto_pwhash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash — Derive a key from a password

Beschreibung

sodium_crypto_pwhash ( int $length , string $password , string $salt , int $opslimit , int $memlimit , int $algo = SODIUM_CRYPTO_PWHASH_ALG_DEFAULT ) : string

This function provides low-level access to libsodium's crypto_pwhash key derivation function. Unless you have specific reason to use this function, you should use sodium_crypto_pwhash_str() or password_hash() functions instead.

Parameter-Liste

length

int; The length of the password hash to generate, in bytes.

password

string; The password to generate a hash for.

salt

string A salt to add to the password before hashing. The salt should be unpredictable, ideally generated from a good random mumber source such as random_bytes(), and have a length of at least SODIUM_CRYPTO_PWHASH_SALTBYTES bytes.

opslimit

Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are some constants available to set the operations limit to appropriate values depending on intended use, in order of strength: SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE and SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE.

memlimit

The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE, and SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE. Typically these should be paired with the matching opslimit values.

algo

int A number indicating the hash algorithm to use. By default SODIUM_CRYPTO_PWHASH_ALG_DEFAULT (the currently recommended algorithm, which can change from one version of libsodium to another), or explicitly using SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13, representing the Argon2id algorithm version 1.3.

Rückgabewerte

Returns the derived key. The return value is a binary string of the hash, not an ASCII-encoded representation, and does not contain additional information about the parameters used to create the hash, so you will need to keep that information if you are ever going to verify the password in future. Use sodium_crypto_pwhash_str() to avoid needing to do all that.

Beispiele

Beispiel #1 password_hash() example

<?php
//Need to keep the salt if we're ever going to be able to check this password
$salt = random_bytes(SODIUM_CRYPTO_PWHASH_SALTBYTES);
//Using bin2hex to keep output readable
echo bin2hex(
    sodium_crypto_pwhash(
        16, // == 128 bits
        'password',
        $salt,
        SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
        SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE,
        SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13
    )
);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

a18f346ba57992eb7e4ae6abf3fd30ee


Alias von sodium_crypto_box_publickey_from_secretkey

  • « sodium_crypto_pwhash
  • sodium_crypto_scalarmult »
  • PHP Manual
  • Sodium Funktionen
  • Alias von sodium_crypto_box_publickey_from_secretkey

sodium_crypto_scalarmult_base

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_scalarmult_base — Alias von sodium_crypto_box_publickey_from_secretkey()

Beschreibung

Diese Funktion ist ein Alias für: sodium_crypto_box_publickey_from_secretkey().


Compute a shared secret given a user's secret key and another user's public key

  • « sodium_crypto_scalarmult_base
  • sodium_crypto_secretbox_keygen »
  • PHP Manual
  • Sodium Funktionen
  • Compute a shared secret given a user's secret key and another user's public key

sodium_crypto_scalarmult

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_scalarmult — Compute a shared secret given a user's secret key and another user's public key

Beschreibung

sodium_crypto_scalarmult ( string $n , string $p ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

n

p

Rückgabewerte


Get random bytes for key

  • « sodium_crypto_scalarmult
  • sodium_crypto_secretbox_open »
  • PHP Manual
  • Sodium Funktionen
  • Get random bytes for key

sodium_crypto_secretbox_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretbox_keygen — Get random bytes for key

Beschreibung

sodium_crypto_secretbox_keygen ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Verify and decrypt a ciphertext

  • « sodium_crypto_secretbox_keygen
  • sodium_crypto_secretbox »
  • PHP Manual
  • Sodium Funktionen
  • Verify and decrypt a ciphertext

sodium_crypto_secretbox_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretbox_open — Verify and decrypt a ciphertext

Beschreibung

sodium_crypto_secretbox_open ( string $ciphertext , string $nonce , string $key ) : string|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

ciphertext

nonce

key

Rückgabewerte


Encrypt a message

  • « sodium_crypto_secretbox_open
  • sodium_crypto_secretstream_xchacha20poly1305_init_pull »
  • PHP Manual
  • Sodium Funktionen
  • Encrypt a message

sodium_crypto_secretbox

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretbox — Encrypt a message

Beschreibung

sodium_crypto_secretbox ( string $message , string $nonce , string $key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

nonce

key

Rückgabewerte


Description

  • « sodium_crypto_secretbox
  • sodium_crypto_secretstream_xchacha20poly1305_init_push »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_secretstream_xchacha20poly1305_init_pull

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_init_pull — Description

Beschreibung

sodium_crypto_secretstream_xchacha20poly1305_init_pull ( string $header , string $key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

header

key

Rückgabewerte


Description

  • « sodium_crypto_secretstream_xchacha20poly1305_init_pull
  • sodium_crypto_secretstream_xchacha20poly1305_keygen »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_secretstream_xchacha20poly1305_init_push

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_init_push — Description

Beschreibung

sodium_crypto_secretstream_xchacha20poly1305_init_push ( string $key ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

key

Rückgabewerte


Description

  • « sodium_crypto_secretstream_xchacha20poly1305_init_push
  • sodium_crypto_secretstream_xchacha20poly1305_pull »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_secretstream_xchacha20poly1305_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_keygen — Description

Beschreibung

sodium_crypto_secretstream_xchacha20poly1305_keygen ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « sodium_crypto_secretstream_xchacha20poly1305_keygen
  • sodium_crypto_secretstream_xchacha20poly1305_push »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_secretstream_xchacha20poly1305_pull

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_pull — Description

Beschreibung

sodium_crypto_secretstream_xchacha20poly1305_pull ( string &$state , string $ciphertext , string $additional_data = "" ) : array|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

state

ciphertext

additional_data

Rückgabewerte


Description

  • « sodium_crypto_secretstream_xchacha20poly1305_pull
  • sodium_crypto_secretstream_xchacha20poly1305_rekey »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_secretstream_xchacha20poly1305_push

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_push — Description

Beschreibung

sodium_crypto_secretstream_xchacha20poly1305_push ( string &$state , string $message , string $additional_data = "" , int $tag = SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

state

message

additional_data

tag

Rückgabewerte


Description

  • « sodium_crypto_secretstream_xchacha20poly1305_push
  • sodium_crypto_shorthash_keygen »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_secretstream_xchacha20poly1305_rekey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_rekey — Description

Beschreibung

sodium_crypto_secretstream_xchacha20poly1305_rekey ( string &$state ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

state

Rückgabewerte


Get random bytes for key

  • « sodium_crypto_secretstream_xchacha20poly1305_rekey
  • sodium_crypto_shorthash »
  • PHP Manual
  • Sodium Funktionen
  • Get random bytes for key

sodium_crypto_shorthash_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_shorthash_keygen — Get random bytes for key

Beschreibung

sodium_crypto_shorthash_keygen ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Compute a fixed-size fingerprint for the message

  • « sodium_crypto_shorthash_keygen
  • sodium_crypto_sign_detached »
  • PHP Manual
  • Sodium Funktionen
  • Compute a fixed-size fingerprint for the message

sodium_crypto_shorthash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_shorthash — Compute a fixed-size fingerprint for the message

Beschreibung

sodium_crypto_shorthash ( string $message , string $key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

key

Rückgabewerte


Sign the message

  • « sodium_crypto_shorthash
  • sodium_crypto_sign_ed25519_pk_to_curve25519 »
  • PHP Manual
  • Sodium Funktionen
  • Sign the message

sodium_crypto_sign_detached

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_detached — Sign the message

Beschreibung

sodium_crypto_sign_detached ( string $message , string $secret_key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

secret_key

Rückgabewerte


Convert an Ed25519 public key to a Curve25519 public key

  • « sodium_crypto_sign_detached
  • sodium_crypto_sign_ed25519_sk_to_curve25519 »
  • PHP Manual
  • Sodium Funktionen
  • Convert an Ed25519 public key to a Curve25519 public key

sodium_crypto_sign_ed25519_pk_to_curve25519

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_ed25519_pk_to_curve25519 — Convert an Ed25519 public key to a Curve25519 public key

Beschreibung

sodium_crypto_sign_ed25519_pk_to_curve25519 ( string $public_key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

public_key

Rückgabewerte


Convert an Ed25519 secret key to a Curve25519 secret key

  • « sodium_crypto_sign_ed25519_pk_to_curve25519
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey »
  • PHP Manual
  • Sodium Funktionen
  • Convert an Ed25519 secret key to a Curve25519 secret key

sodium_crypto_sign_ed25519_sk_to_curve25519

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_ed25519_sk_to_curve25519 — Convert an Ed25519 secret key to a Curve25519 secret key

Beschreibung

sodium_crypto_sign_ed25519_sk_to_curve25519 ( string $secret_key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

secret_key

Rückgabewerte


Description

  • « sodium_crypto_sign_ed25519_sk_to_curve25519
  • sodium_crypto_sign_keypair »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_sign_keypair_from_secretkey_and_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_keypair_from_secretkey_and_publickey — Description

Beschreibung

sodium_crypto_sign_keypair_from_secretkey_and_publickey ( string $secret_key , string $public_key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

secret_key

public_key

Rückgabewerte


Randomly generate a secret key and a corresponding public key

  • « sodium_crypto_sign_keypair_from_secretkey_and_publickey
  • sodium_crypto_sign_open »
  • PHP Manual
  • Sodium Funktionen
  • Randomly generate a secret key and a corresponding public key

sodium_crypto_sign_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_keypair — Randomly generate a secret key and a corresponding public key

Beschreibung

sodium_crypto_sign_keypair ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Check that the signed message has a valid signature

  • « sodium_crypto_sign_keypair
  • sodium_crypto_sign_publickey_from_secretkey »
  • PHP Manual
  • Sodium Funktionen
  • Check that the signed message has a valid signature

sodium_crypto_sign_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_open — Check that the signed message has a valid signature

Beschreibung

sodium_crypto_sign_open ( string $ciphertext , string $public_key ) : string|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

ciphertext

public_key

Rückgabewerte


Extract the public key from the secret key

  • « sodium_crypto_sign_open
  • sodium_crypto_sign_publickey »
  • PHP Manual
  • Sodium Funktionen
  • Extract the public key from the secret key

sodium_crypto_sign_publickey_from_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_publickey_from_secretkey — Extract the public key from the secret key

Beschreibung

sodium_crypto_sign_publickey_from_secretkey ( string $secret_key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

secret_key

Rückgabewerte


Description

  • « sodium_crypto_sign_publickey_from_secretkey
  • sodium_crypto_sign_secretkey »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_sign_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_publickey — Description

Beschreibung

sodium_crypto_sign_publickey ( string $key_pair ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

key_pair

Rückgabewerte


Description

  • « sodium_crypto_sign_publickey
  • sodium_crypto_sign_seed_keypair »
  • PHP Manual
  • Sodium Funktionen
  • Description

sodium_crypto_sign_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_secretkey — Description

Beschreibung

sodium_crypto_sign_secretkey ( string $key_pair ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

key_pair

Rückgabewerte


Deterministically derive the key pair from a single key

  • « sodium_crypto_sign_secretkey
  • sodium_crypto_sign_verify_detached »
  • PHP Manual
  • Sodium Funktionen
  • Deterministically derive the key pair from a single key

sodium_crypto_sign_seed_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_seed_keypair — Deterministically derive the key pair from a single key

Beschreibung

sodium_crypto_sign_seed_keypair ( string $seed ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

seed

Rückgabewerte


Verify signature for the message

  • « sodium_crypto_sign_seed_keypair
  • sodium_crypto_sign »
  • PHP Manual
  • Sodium Funktionen
  • Verify signature for the message

sodium_crypto_sign_verify_detached

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_verify_detached — Verify signature for the message

Beschreibung

sodium_crypto_sign_verify_detached ( string $signature , string $message , string $public_key ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

signature

message

public_key

Rückgabewerte


Sign a message

  • « sodium_crypto_sign_verify_detached
  • sodium_crypto_stream_keygen »
  • PHP Manual
  • Sodium Funktionen
  • Sign a message

sodium_crypto_sign

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign — Sign a message

Beschreibung

sodium_crypto_sign ( string $message , string $secret_key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

secret_key

Rückgabewerte


Get random bytes for key

  • « sodium_crypto_sign
  • sodium_crypto_stream_xor »
  • PHP Manual
  • Sodium Funktionen
  • Get random bytes for key

sodium_crypto_stream_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_stream_keygen — Get random bytes for key

Beschreibung

sodium_crypto_stream_keygen ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Encrypt a message

  • « sodium_crypto_stream_keygen
  • sodium_crypto_stream »
  • PHP Manual
  • Sodium Funktionen
  • Encrypt a message

sodium_crypto_stream_xor

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_stream_xor — Encrypt a message

Beschreibung

sodium_crypto_stream_xor ( string $message , string $nonce , string $key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

message

nonce

key

Rückgabewerte


Generate a deterministic sequence of bytes from a seed

  • « sodium_crypto_stream_xor
  • sodium_hex2bin »
  • PHP Manual
  • Sodium Funktionen
  • Generate a deterministic sequence of bytes from a seed

sodium_crypto_stream

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_stream — Generate a deterministic sequence of bytes from a seed

Beschreibung

sodium_crypto_stream ( int $length , string $nonce , string $key ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

length

nonce

key

Rückgabewerte


Decodes a hexadecimally encoded binary string

  • « sodium_crypto_stream
  • sodium_increment »
  • PHP Manual
  • Sodium Funktionen
  • Decodes a hexadecimally encoded binary string

sodium_hex2bin

(PHP 7 >= 7.2.0, PHP 8)

sodium_hex2bin — Decodes a hexadecimally encoded binary string

Beschreibung

sodium_hex2bin ( string $string , string $ignore = "" ) : string

Decodes a hexadecimally encoded binary string.

Like sodium_bin2hex(), sodium_hex2bin() is resistant to side-channel attacks while hex2bin() is not.

Parameter-Liste

string

Hexadecimal representation of data.

ignore

Optional string argument for characters to ignore.

Rückgabewerte

Returns the binary representation of the given string data.


Increment large number

  • « sodium_hex2bin
  • sodium_memcmp »
  • PHP Manual
  • Sodium Funktionen
  • Increment large number

sodium_increment

(PHP 7 >= 7.2.0, PHP 8)

sodium_increment — Increment large number

Beschreibung

sodium_increment ( string &$string ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

string

Rückgabewerte


Test for equality in constant-time

  • « sodium_increment
  • sodium_memzero »
  • PHP Manual
  • Sodium Funktionen
  • Test for equality in constant-time

sodium_memcmp

(PHP 7 >= 7.2.0, PHP 8)

sodium_memcmp — Test for equality in constant-time

Beschreibung

sodium_memcmp ( string $string1 , string $string2 ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

string1

string2

Rückgabewerte


Overwrite buf with zeros

  • « sodium_memcmp
  • sodium_pad »
  • PHP Manual
  • Sodium Funktionen
  • Overwrite buf with zeros

sodium_memzero

(PHP 7 >= 7.2.0, PHP 8)

sodium_memzero — Overwrite buf with zeros

Beschreibung

sodium_memzero ( string &$string ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

string

Rückgabewerte


Add padding data

  • « sodium_memzero
  • sodium_unpad »
  • PHP Manual
  • Sodium Funktionen
  • Add padding data

sodium_pad

(PHP 7 >= 7.2.0, PHP 8)

sodium_pad — Add padding data

Beschreibung

sodium_pad ( string $string , int $length ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

string

length

Rückgabewerte


Remove padding data

  • « sodium_pad
  • SodiumException »
  • PHP Manual
  • Sodium Funktionen
  • Remove padding data

sodium_unpad

(PHP 7 >= 7.2.0, PHP 8)

sodium_unpad — Remove padding data

Beschreibung

sodium_unpad ( string $string , int $block_size ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

string

block_size

Rückgabewerte


The SodiumException class

(PHP 7 >= 7.2.0, PHP 8)

Einführung

Exceptions thrown by the sodium functions.

Klassenbeschreibung

SodiumException extends Exception implements Throwable {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


Datenbankerweiterungen

  • Abstraktionsebenen
    • DBA — Abstraktionsschicht für dbm-style-Datenbanken
    • ODBC — ODBC (Unified)
    • PDO — PHP Data Objects
  • Anbieterspezifische Datenbankerweiterungen
    • CUBRID
    • DB++
    • dBase
    • filePro
    • Firebird/InterBase
    • FrontBase
    • IBM DB2 — IBM DB2, Cloudscape and Apache Derby
    • Ingres — Ingres DBMS, EDBC und Enterprise Access Gateways
    • Mongo — MongoDB driver (legacy)
    • MongoDB — MongoDB driver
    • MySQL — MySQL Drivers and Plugins
    • OCI8 — Oracle OCI8
    • Paradox — Paradox File Access
    • PostgreSQL
    • SQLite3
    • SQLSRV — Microsoft SQL Server Driver for PHP
    • tokyo_tyrant


Abstraktionsebenen

  • DBA — Abstraktionsschicht für dbm-style-Datenbanken
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • DBA-Funktionen
  • ODBC — ODBC (Unified)
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • ODBC Funktionen
  • PDO — PHP Data Objects
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Verbindungen und Verbindungsmanagement
    • Transaktionen und auto-commit
    • Prepared Statements und Stored Procedures
    • Fehler und Fehlerbehandlung
    • Large Objects (LOBs)
    • PDO — Die PDO-Klasse
    • PDOStatement — Die PDOStatement-Klasse
    • PDOException — Die Klasse PDOException
    • PDO-Treiber


Abstraktionsschicht für dbm-style-Datenbanken

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Die grundlegende Verwendung
  • DBA-Funktionen
    • dba_close — Schließt eine DBA-Datenbank
    • dba_delete — Löscht den zum angegebenen Schlüssel gehörigen DBA-Eintrag
    • dba_exists — Überprüft, ob ein angegebener Schlüssel existiert
    • dba_fetch — Liest die Daten zu einem angegebenen Schlüssel aus
    • dba_firstkey — Liefert den ersten Schlüssel
    • dba_handlers — Listet alle verfügbaren Handler auf
    • dba_insert — Fügt einen Eintrag ein
    • dba_key_split — Zerlegt einen Schlüssel in Zeichenketten-Darstellung in eine Array-Darstellung
    • dba_list — Listet alle offenen Datenbank-Dateien auf
    • dba_nextkey — Liefert den nachfolgenden Schlüssel
    • dba_open — Öffnet eine Datenbank
    • dba_optimize — Optimiert eine Datenbank
    • dba_popen — Öffnet eine persistente Datenbank-Verbindung
    • dba_replace — Ersetzt einen Eintrag oder fügt ihn ein
    • dba_sync — Synchronisiert eine Datenbank


Einführung

Diese Funktionen bilden die Basis für den Zugriff auf Datenbanken vom Typ "Berkeley DB".

"dba" implementiert eine generelle Abstraktionsschicht für verschiedene dateibasierte Datenbanken. Der Funktionsumfang ist daher beschränkt auf eine gemeinsame Teilmenge des Funktionsumfangs aktueller Datenbanken wie zum Beispiel » Oracle Berkeley DB.


Anforderungen

Das Verhalten der dba-Funktionen ist teilweise abhängig von der Implementation des zugrundeliegenden Datenbanksystems. Funktionen wie zum Beispiel dba_optimize() und dba_sync() funktionieren möglicherweise bei einem Datenbanksystem wie erwartet, während sie bei anderen nichts bewirken. Die unterstützten DBA-Treiber müssen heruntergeladen und installiert werden.

Liste der DBA-Treiber
Treiber | Hinweise
dbm | Dbm ist der ursprüngliche und älteste Typ der "Berkeley DB"-Datenbanken. Wenn möglich, sollten Sie diesen Typ vermeiden. Die in DB2 und gdbm enthaltenen Kompatibilitätsfunktionen werden nicht unterstützt, da sie nur auf Quellcode-Basis kompatibel sind, aber das original dbm-Format nicht bearbeiten können.
ndbm | Ndbm ist neuer und flexibler als Dbm. Er hat jedoch die meisten Einschränkungen von Dbm übernommen und ist daher ebenfalls nicht empfehlenswert.
gdbm | Gdbm ist der » GNU-Datenbank-Manager.
db2 | DB2 ist für » Oracle Berkeley DB 2. Es wird beschrieben als "Werkzeugsatz mit eingebauter Hochleistungs-Unterstützung von Datenbanken sowohl für Standalone- als auch für Client/Server-Anwendungen".
db3 | DB3 ist für » Oracle Berkeley DB 3.
db4 | DB4 ist für » Oracle Berkeley DB 4 oder 5. Ab PHP 5.3.3 kann er mit BDB 5 verwendet werden.
cdb | Cdb ist "ein schnelles, zuverlässiges und kompaktes Paket zum Erstellen und Auslesen konstanter Datenbanken." Es stammt vom Autor von qmail und kann bei » http://cr.yp.to/cdb.html heruntergeladen werden. Da es für konstante Daten ausgelegt ist, werden nur lesende Operationen unterstützt. Durch die interne cdb-Bibliothek werden auch schreibende Operationen (aber keine Aktualisierungen) unterstützt.
cdb_make | Bei Verwendung der in PHP mitgelieferten cdb-Bibliothek können cdb-Dateien erzeugt (aber nicht aktualisiert) werden.
flatfile | Steht wegen der Kompatibilität mit der veralteten dbm-Erweiterung zur Verfügung und sollte vermieden werden. Sie können ihn aber bei Dateien verwenden, die in diesem Format erzeugt wurden. Das geschieht, wenn configure keine externe Bibliothek finden konnte.
inifile | Steht zur Verfügung, damit php.ini-Dateien über PHP-Skripte geändert werden können. Wenn mit ini-Dateien gearbeitet wird, können Arrays der Form array(0=>gruppe,1=>wert_name) oder Zeichenketten der Form "[gruppe]wert_name" (gruppe ist optional) übergeben werden. Da die Funktionen dba_firstkey() und dba_nextkey() die Zeichenketten-Darstellung des Schlüssels zurückgeben, steht die Funktion dba_key_split() zur Verfügung, die es ermöglicht, die Zeichenketten-Schlüssel in Array-Schlüssel umzuwandeln, ohne dass das false verloren geht.
qdbm | Die qdbm-Bibliothek kann bei » http://fallabs.com/qdbm/index.html heruntergeladen werden.
tcadb | Steht ab PHP 5.4.0 zur Verfügung. Die Tokyo-Cabinet-Bibliothek kann von » http://fallabs.com/tokyocabinet/ heruntergeladen werden.
lmdb | Steht ab PHP 7.2.0 zur Verfügung. Die Lightning Memory-Mapped Database Bibliothek kann von » https://symas.com/lmdb/ heruntergeladen werden.

Beim Aufruf von dba_open() oder dba_popen() muss einer der Treibernamen als Argument angegeben werden. Die Liste der tatsächlich verfügbaren Treiber lässt sich mittlels phpinfo() oder dba_handlers() angezeigen.


Installation

Durch die Verwendung der Konfigurationsoption --enable-dba=shared wird ein dynamisch ladbares Modul erstellt, mit dem PHP eine grundlegende Unterstützung von dbm-style-Datenbanken bietet. Es muss außerdem die Unterstützung für mindestens einen der folgenden Handler hinzugefügt werden, indem der configure-Schalter --with-XXXX oder --enable-XXXX im PHP-Konfigurationsaufruf angegegeben wird.

Warnung

Nachdem PHP konfiguriert und kompiliert wurde, muss in der Kommandozeile der folgende Test ausgeführt werden: php run-tests.php ext/dba. Damit zeigt sich, ob die Kombination der Handler funktioniert. Am problematischsten sind dbm und ndbm, die mit vielen Installationen kollidieren. Das liegt daran, dass diese Bibliotheken auf einigen Systemen Bestandteil von mehr als einer anderen Bibliothek sind. Der Konfigurationstest verhindert nur die Konfiguration fehlerhafter einzelner Handler, aber nicht die Konfiguration fehlerhafter Kombinationen.

Unterstützte DBA-Handler
Handler | Configure-Schalter
dbm

Fügen Sie --with-dbm[=DIR] hinzu, um die Unterstützung für dbm zu aktivieren.

Hinweis:

dbm ist für gewöhnlich ein Wrapper, der häufig zu Fehlern führt. Das bedeutet, dass Sie dbm nur benutzen sollten, wenn Sie sicher sind, dass er funktioniert und wenn Sie dieses Format wirklich benötigen.

ndbm

Fügen Sie --with-ndbm[=DIR] hinzu, um die Unterstützung für ndbm zu aktivieren.

Hinweis:

ndbm ist für gewöhnlich ein Wrapper, der häufig zu Fehlern führt. Das bedeutet, dass Sie ndbm nur benutzen sollten, wenn Sie sicher sind, dass er funktioniert und wenn Sie dieses Format wirklich benötigen.

gdbm | Fügen Sie --with-gdbm[=DIR] hinzu, um die Unterstützung für gdbm zu aktivieren.
db2

Fügen Sie --with-db2[=DIR] hinzu, um die Unterstützung für Oracle Berkeley DB 2 zu aktivieren.

Hinweis:

db2 kollidiert mit db3 und db4.

db3

Fügen Sie --with-db3[=DIR] hinzu, um die Unterstützung für Oracle Berkeley DB 3 zu aktivieren.

Hinweis:

db3 kollidiert mit db2 und db4.

db4

Fügen Sie --with-db4[=DIR] hinzu, um die Unterstützung für Oracle Berkeley DB 4 oder 5 zu aktivieren.

Hinweis:

db4 kollidiert mit db2 und db3.

Hinweis:

Die db-Bibliotheken von Version 4.1 bis 4.1.24 mit keiner Version von PHP verwendet werden.

Die Unterstützung für BDB 5 wurde in PHP 5.3.3 hinzugefügt.

cdb

Fügen Sie --with-cdb[=DIR] hinzu, um die Unterstützung für cdb zu aktivieren.

Hinweis:

DIR kann weggelassen werden um die in PHP enthaltene cdb-Bibliothek zu verwenden. Diese fügt den cdb_make-Handler hinzu, mit dem es möglich ist, cdb-Dateien zu erzeugen und über den Datenstrom von PHP auf cdb-Dateien im Netzwerk zuzugreifen.

flatfile

Fügen Sie --enable-flatfile hinzu, um die Unterstützung für flatfile zu aktivieren. Vor PHP 5.2.1 musste statt dessen --with-flatfile verwendet werden.

Hinweis:

Dies wurde für die Kompatibilität mit der veralteten dbm-Erweiterung hinzugefügt. Verwenden Sie diesen Handler nur dann, wenn Sie keine der Bibliotheken installieren können, die von anderen Handlern benötigt werden und den in PHP enthaltenen cdb-Handler nicht verwenden können.

inifile

Fügen Sie --enable-inifile hinzu, um die Unterstützung für inifile zu aktivieren. Vor PHP 5.2.1 musste statt dessen --with-inifile verwendet werden.

Hinweis:

Dies wurde hinzugefügt um es zu ermöglichen, .ini-Dateien im Microsoft-Stil (wie z.B. die php.ini) zu lesen und zu schreiben.

qdbm

Fügen Sie --with-qdbm[=DIR] hinzu, um die Unterstützung für qdbm zu aktivieren.

Hinweis:

qdbm kollidiert mit dbm und gdbm.

Hinweis:

Die qdbm-Bibliothek kann bei » http://fallabs.com/qdbm/index.html heruntergeladen werden.

tcadb

Um Unterstützung für Tokyo Cabinet zu aktivieren, muss --with-tcadb[=DIR] hinzugefügt werden.

Hinweis:

Dies wurde in PHP 5.4.0 hinzugefügt. Die Tokyo Cabinet Bibliothek kann von » http://fallabs.com/tokyocabinet/ heruntergeladen werden.

lmdb

Um Unterstützung für die Lightning Memory-Mapped Database zu aktivieren, muss --with-lmdb[=DIR] hinzugefügt werden.

Hinweis:

Dies wurde in PHP 7.2.0 hinzugefügt. Die Lightning Memory-Mapped Database Bibliothek kann von » https://symas.com/lmdb/ heruntergeladen werden.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

DBA Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
dba.default_handler | DBA_DEFAULT | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

dba.default_handler string

Der Name der Standard-Verbindungskennung


Ressource-Typen

Die Funktionen dba_open() und dba_popen() geben eine Kennung für den Zugriff auf die angegebene Datenbank-Datei zurück, die bei allen dba-Funktionsaufrufen verwendet wird.


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • DBA
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


  • « Vordefinierte Konstanten
  • Die grundlegende Verwendung »
  • PHP Manual
  • DBA
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Die grundlegende Verwendung


Die grundlegende Verwendung

Beispiel #1 DBA Beispiel

<?php

$id = dba_open("/tmp/test.db", "n", "db2");

if (!$id) {
    echo "dba_open schlug fehl\n";
    exit;
}

dba_replace("schluessel", "Dies ist ein Beispiel!", $id);

if (dba_exists("schluessel", $id)) {
    echo dba_fetch("schluessel", $id);
    dba_delete("schluessel", $id);
}

dba_close($id);
?>

DBA arbeitet binärsicher und besitzt keine willkürlichen Limits. Es erbt allerdings alle Einschränkungen von der zugrundeliegenden Datenbank-Implementation.

Alle dateibasierten Datenbanken müssen, soweit es überhaupt möglich ist, einen Weg zur Verfügung stellen, um den Dateimodus einer neu erstellten Datenbank festzulegen. Der Dateimodus wird gewöhnlich als viertes Argument an die Funktionen dba_open() oder dba_popen() übergeben.

Sie können auf alle Einträge in einer Datenbank sequentiell durch die Verwendung von dba_firstkey() und dba_nextkey() zugreifen. Während die Datenbank so durchlaufen wird, darf sie nicht verändert werden.

Beispiel #2 Durchlaufen einer Datenbank

<?php

// ...Oeffnen der Datenbank...

$schluessel = dba_firstkey($id);

while ($schluessel !== false) {
    if (true) {          // den Schluessel fuer spaetere Aktionen merken
        $spaeter_bearbeiten[] = $schluessel;
    }
    $schluessel = dba_nextkey($id);
}

foreach ($spaeter_bearbeiten as $wert) {
    dba_delete($wert, $id);
}

?>


DBA-Funktionen

Inhaltsverzeichnis

  • dba_close — Schließt eine DBA-Datenbank
  • dba_delete — Löscht den zum angegebenen Schlüssel gehörigen DBA-Eintrag
  • dba_exists — Überprüft, ob ein angegebener Schlüssel existiert
  • dba_fetch — Liest die Daten zu einem angegebenen Schlüssel aus
  • dba_firstkey — Liefert den ersten Schlüssel
  • dba_handlers — Listet alle verfügbaren Handler auf
  • dba_insert — Fügt einen Eintrag ein
  • dba_key_split — Zerlegt einen Schlüssel in Zeichenketten-Darstellung in eine Array-Darstellung
  • dba_list — Listet alle offenen Datenbank-Dateien auf
  • dba_nextkey — Liefert den nachfolgenden Schlüssel
  • dba_open — Öffnet eine Datenbank
  • dba_optimize — Optimiert eine Datenbank
  • dba_popen — Öffnet eine persistente Datenbank-Verbindung
  • dba_replace — Ersetzt einen Eintrag oder fügt ihn ein
  • dba_sync — Synchronisiert eine Datenbank


Schließt eine DBA-Datenbank

  • « DBA-Funktionen
  • dba_delete »
  • PHP Manual
  • DBA-Funktionen
  • Schließt eine DBA-Datenbank

dba_close

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_close — Schließt eine DBA-Datenbank

Beschreibung

dba_close ( resource $dba ) : void

dba_close() schließt die offene Datenbank und gibt alle Ressourcen der angegebenen Datenbank-Verbindungskennung frei.

Parameter-Liste

dba

Die Datenbank-Verbindungskennung, die von dba_open() oder dba_popen() zurückgegeben wurde.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • dba_open() - Öffnet eine Datenbank
  • dba_popen() - Öffnet eine persistente Datenbank-Verbindung


Löscht den zum angegebenen Schlüssel gehörigen DBA-Eintrag

  • « dba_close
  • dba_exists »
  • PHP Manual
  • DBA-Funktionen
  • Löscht den zum angegebenen Schlüssel gehörigen DBA-Eintrag

dba_delete

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_delete — Löscht den zum angegebenen Schlüssel gehörigen DBA-Eintrag

Beschreibung

dba_delete ( string|array $key , resource $dba ) : bool

dba_delete() löscht den angegebenen Eintrag aus der Datenbank.

Parameter-Liste

key

Der Schlüssel des zu löschenden Eintrags.

dba

Die Datenbank-Verbindungskennung, die von dba_open() oder dba_popen() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • dba_exists() - Überprüft, ob ein angegebener Schlüssel existiert
  • dba_fetch() - Liest die Daten zu einem angegebenen Schlüssel aus
  • dba_insert() - Fügt einen Eintrag ein
  • dba_replace() - Ersetzt einen Eintrag oder fügt ihn ein


Überprüft, ob ein angegebener Schlüssel existiert

  • « dba_delete
  • dba_fetch »
  • PHP Manual
  • DBA-Funktionen
  • Überprüft, ob ein angegebener Schlüssel existiert

dba_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_exists — Überprüft, ob ein angegebener Schlüssel existiert

Beschreibung

dba_exists ( string|array $key , resource $dba ) : bool

dba_exists() überprüft, ob der angegebene Schlüssel in der Datenbank existiert.

Parameter-Liste

key

Der Schlüssel, für den die Überprüfung durchgeführt wird.

dba

Die Datenbank-Verbindungskennung, die von dba_open() oder dba_popen() zurückgegeben wurde.

Rückgabewerte

Gibt true zurück, falls der Schlüssel existiert und andernfalls false.

Siehe auch

  • dba_delete() - Löscht den zum angegebenen Schlüssel gehörigen DBA-Eintrag
  • dba_fetch() - Liest die Daten zu einem angegebenen Schlüssel aus
  • dba_insert() - Fügt einen Eintrag ein
  • dba_replace() - Ersetzt einen Eintrag oder fügt ihn ein


Liest die Daten zu einem angegebenen Schlüssel aus

  • « dba_exists
  • dba_firstkey »
  • PHP Manual
  • DBA-Funktionen
  • Liest die Daten zu einem angegebenen Schlüssel aus

dba_fetch

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_fetch — Liest die Daten zu einem angegebenen Schlüssel aus

Beschreibung

dba_fetch ( string $key , resource $handle ) : string
dba_fetch ( string $key , int $skip , resource $handle ) : string

dba_fetch() liest die durch key festgelegten Daten aus der durch handle spezifizierten Datenbank aus.

Parameter-Liste

key

Der Schlüssel, durch den die Daten bestimmt sind.

Hinweis:

Wenn mit ini-Dateien gearbeitet wird, akzeptiert diese Funktion Arrays als Schlüssel, wobei der Index 0 die Gruppe ist und der Index 1 der Name des Wertes. Siehe dba_key_split().

skip

Die Anzahl der Schlüssel-Wert-Paare, die bei cdb-Datenbanken ignoriert werden sollen. Dieser Wert wird bei allen anderen Datenbanken, die keine Unterstützung für mehrere Schlüssel mit dem selben Namen bieten, ignoriert.

handle

Die Datenbank-Verbindungskennung, die von dba_open() oder dba_popen() zurückgegeben wurde.

Rückgabewerte

Falls das Schlüssel/Wert-Paar gefunden wird, wird die zugehörige Zeichenkette zurückgegeben, andernfalls false.

Siehe auch

  • dba_exists() - Überprüft, ob ein angegebener Schlüssel existiert
  • dba_delete() - Löscht den zum angegebenen Schlüssel gehörigen DBA-Eintrag
  • dba_insert() - Fügt einen Eintrag ein
  • dba_replace() - Ersetzt einen Eintrag oder fügt ihn ein
  • dba_key_split() - Zerlegt einen Schlüssel in Zeichenketten-Darstellung in eine Array-Darstellung


Liefert den ersten Schlüssel

  • « dba_fetch
  • dba_handlers »
  • PHP Manual
  • DBA-Funktionen
  • Liefert den ersten Schlüssel

dba_firstkey

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_firstkey — Liefert den ersten Schlüssel

Beschreibung

dba_firstkey ( resource $dba ) : string|false

dba_firstkey() gibt den ersten Schlüssel aus der Datenbank zurück und setzt den internen Schlüssel-Zeiger zurück. Dies erlaubt eine sequentielle Suche durch die gesamte Datenbank.

Parameter-Liste

dba

Die Datenbank-Verbindungskennung, die von dba_open() oder dba_popen() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg den Schlüssel zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • dba_nextkey() - Liefert den nachfolgenden Schlüssel
  • dba_key_split() - Zerlegt einen Schlüssel in Zeichenketten-Darstellung in eine Array-Darstellung
  • Beispiel 2 der DBA-Beispiele


Listet alle verfügbaren Handler auf

  • « dba_firstkey
  • dba_insert »
  • PHP Manual
  • DBA-Funktionen
  • Listet alle verfügbaren Handler auf

dba_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

dba_handlers — Listet alle verfügbaren Handler auf

Beschreibung

dba_handlers ( bool $full_info = false ) : array

dba_handlers() listet alle Handler auf, die von dieser Erweiterung unterstützt werden.

Parameter-Liste

full_info

Schaltet die Anzeige der kompletten Information im Ergebnis ein/aus.

Rückgabewerte

Gibt ein Array mit Datenbank-Handlern zurück. Falls full_info auf true gesetzt war, ist es ein assoziatives Array mit den Namen der Handler als Schlüssel und deren Versionsinformationen als Wert. Andernfalls ist das Ergebnis ein indiziertes Array mit den Namen der Handler.

Hinweis:

Falls die interne cdb-Bibliothek verwendet wird, sehen Sie cdb und cdb_make.

Beispiele

Beispiel #1 dba_handlers()-Beispiel

<?php

echo "Verfügbare DBA-Handler:\n";
foreach (dba_handlers(true) as $handler_name => $handler_version) {
  // die Versionen "säubern"
  $handler_version = str_replace('$', '', $handler_version);
  echo " - $handler_name: $handler_version\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Verfügbare DBA-Handler:
 - cdb: 0.75, Revision: 1.3.2.3
 - cdb_make: 0.75, Revision: 1.2.2.4
 - db2: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99)
 - inifile: 1.0, Revision: 1.6.2.3
 - flatfile: 1.0, Revision: 1.5.2.4


Fügt einen Eintrag ein

  • « dba_handlers
  • dba_key_split »
  • PHP Manual
  • DBA-Funktionen
  • Fügt einen Eintrag ein

dba_insert

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_insert — Fügt einen Eintrag ein

Beschreibung

dba_insert ( string|array $key , string $value , resource $dba ) : bool

dba_insert() fügt den Eintrag, der durch key und value beschrieben wird, in die Datenbank ein.

Parameter-Liste

key

Der Schlüssel des einzufügenden Eintrags. Die Aktion schlägt fehl, wenn es den Schlüssel schon in der Datenbank gibt. Verwenden Sie dba_replace(), falls Sie einen vorhandenen Schlüssel ersetzen wollen.

value

Der Wert, der eingefügt werden soll.

dba

Die Datenbank-Verbindungskennung, die von dba_open() oder dba_popen() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • dba_exists() - Überprüft, ob ein angegebener Schlüssel existiert
  • dba_delete() - Löscht den zum angegebenen Schlüssel gehörigen DBA-Eintrag
  • dba_fetch() - Liest die Daten zu einem angegebenen Schlüssel aus
  • dba_replace() - Ersetzt einen Eintrag oder fügt ihn ein


Zerlegt einen Schlüssel in Zeichenketten-Darstellung in eine Array-Darstellung

  • « dba_insert
  • dba_list »
  • PHP Manual
  • DBA-Funktionen
  • Zerlegt einen Schlüssel in Zeichenketten-Darstellung in eine Array-Darstellung

dba_key_split

(PHP 5, PHP 7, PHP 8)

dba_key_split — Zerlegt einen Schlüssel in Zeichenketten-Darstellung in eine Array-Darstellung

Beschreibung

dba_key_split ( string|false|null $key ) : array|false

dba_key_split() zerlegt einen Schlüssel, der in Zeichenketten-Darstellung vorliegt in eine Array-Darstellung.

Parameter-Liste

key

Der Schlüssel in Zeichenketten-Darstellung.

Rückgabewerte

Gibt ein Array der Form array(0 => gruppe, 1 => wert_name) zurück. Falls Schlüssel null oder false ist, gibt diese Funktion false zurück.

Siehe auch

  • dba_firstkey() - Liefert den ersten Schlüssel
  • dba_nextkey() - Liefert den nachfolgenden Schlüssel
  • dba_fetch() - Liest die Daten zu einem angegebenen Schlüssel aus


Listet alle offenen Datenbank-Dateien auf

  • « dba_key_split
  • dba_nextkey »
  • PHP Manual
  • DBA-Funktionen
  • Listet alle offenen Datenbank-Dateien auf

dba_list

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

dba_list — Listet alle offenen Datenbank-Dateien auf

Beschreibung

dba_list ( ) : array

dba_list() listet alle offenen Datenbank-Dateien auf.

Rückgabewerte

Ein assoziatives Array der Form Ressource-ID => Dateiname.


Liefert den nachfolgenden Schlüssel

  • « dba_list
  • dba_open »
  • PHP Manual
  • DBA-Funktionen
  • Liefert den nachfolgenden Schlüssel

dba_nextkey

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_nextkey — Liefert den nachfolgenden Schlüssel

Beschreibung

dba_nextkey ( resource $dba ) : string|false

dba_nextkey() gibt den nachfolgenden Schlüssel aus der Datenbank zurück und erhöht den internen Schlüssel-Zeiger.

Parameter-Liste

dba

Die Datenbank-Verbindungskennung, die von dba_open() oder dba_popen() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg den Schlüssel zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • dba_firstkey() - Liefert den ersten Schlüssel
  • dba_key_split() - Zerlegt einen Schlüssel in Zeichenketten-Darstellung in eine Array-Darstellung
  • Beispiel 2 der DBA-Beispiele


Öffnet eine Datenbank

  • « dba_nextkey
  • dba_optimize »
  • PHP Manual
  • DBA-Funktionen
  • Öffnet eine Datenbank

dba_open

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_open — Öffnet eine Datenbank

Beschreibung

dba_open ( string $path , string $mode , string $handler = ? , string ...$args ) : resource|false

dba_open() stellt eine Datenbankinstanz für path mit mode her und benutzt dabei handler.

Parameter-Liste

path

Ein gültiger Pfad in Ihrem Dateisystem.

mode

Das ist r für lesenden Zugriff, w für lesenden und schreibenden Zugriff auf eine existierende Datenbank, c für lesenden und schreibenden Zugriff und Erstellen der Datenbank, falls sie noch nicht existiert und n für das Erstellen einer Datenbank, bzw. deren Zurücksetzen auf die Größe 0, falls sie schon existiert und lesenden und schreibenden Zugriff. Die Datenbank wird im BTree-Modus erzeugt. Andere Modi, wie Hash oder Queue, werden nicht unterstützt.

Zusätzlich können Sie mit dem nächsten Buchstaben die Datenbank-Sperrmethode festlegen. Verwenden Sie l um die Datenbank mit einer .lck-Datei zu sperren oder d um die Datenbank-Datei selbst zu sperren. Es ist wichtig, dass alle Ihre Anwendungen das einheitlich machen.

Falls Sie den Zugriff testen wollen, ohne auf die Sperrung zu warten, können Sie t als dritten Buchstaben anfügen. Wenn Sie sich absolut sicher sind, dass Sie keine Datenbanksperre benötigen, können Sie statt l oder d - verwenden. Wenn weder d oder l noch - verwendet wird, sperrt dba die Datenbank-Datei wie bei Verwendung von d.

Hinweis:

Es kann jeweils nur einen Schreibzugriff auf eine Datenbank-Datei geben. Wenn dba auf einen Webserver verwendet wird und mehr als eine Anfrage Schreibzugriff benötigt, kann nur einer nach dem anderen erledigt werden. Auch das Lesen ist während des Schreibens nicht erlaubt. Die DBA-Erweiterung verwendet Sperren, um dies zu verhindern. Siehe folgende Tabelle:

DBA-Sperrung
schon geöffnet | Modus = "rl" | Modus = "rlt" | Modus = "wl" | Modus = "wlt" | Modus = "rd" | Modus = "rdt" | Modus = "wd" | Modus = "wdt"
nicht geöffnet | OK | OK | OK | OK | OK | OK | OK | OK
Modus = "rl" | OK | OK | warten | false | unzulässig | unzulässig | unzulässig | unzulässig
Modus = "wl" | warten | false | warten | false | unzulässig | unzulässig | unzulässig | unzulässig
Modus = "rd" | unzulässig | unzulässig | unzulässig | unzulässig | OK | OK | warten | false
Modus = "wd" | unzulässig | unzulässig | unzulässig | unzulässig | warten | false | warten | false
  • OK: der zweite Aufruf ist erfolgreich.
  • warten: der zweite Aufruf wartet bis für den ersten dba_close() aufgerufen wird.
  • false: der zweite Aufruf gibt false zurück.
  • unzulässig: Sie dürfen beim Parameter Modus die Modifikatoren "l" und "d" nicht zusammen verwenden.

Handler

Der Name des handlers, der für den Zugriff auf path benutzt werden soll. Er bekommt alle optionalen Argumente, die der Funktion dba_open() mitgegeben wurden, übergeben und kann damit in deren Name verfahren.

args

Optionale String-Parameter, die an den Treiber übergeben werden.

Die cdb-, cdb_make-, flatfile-, inifile-, qdbm- und tcadb-Treiber unterstützen keine zusätzlichen Parameter.

Die db1-, db2-, db3-, db4-, dbm-, gdbm- und ndbm-Treiber unterstützen einen einzigen zusätzlichen Parameter $filemode, der dieselbe Bedeutung wie der $mode-Parameter von chmod() hat, und dessen Standardwert 0644 ist.

Der lmdb-Treiber akzeptiert zwei zusätzliche Parameter. Der erste erlaubt es den $filemode anzugeben (siehe Beschreibung weiter oben), und der zweite die $mapsize, wobei der Wert ein Vielfaches der Pagesize des Betriebssystems sein sollte, oder Null, um die voreingestellte Mapsize zu verwenden. Der $mapsize-Parameter wird von PHP 7.3.14 bzw. 7.4.2 an unterstützt.

Rückgabewerte

Gibt eine positive Verbindungskennung zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.3.14, 7.4.2 | Der lmdb Treiber unterstützt nun einen zusätzlichen $mapsize Parameter.

Siehe auch

  • dba_popen() - Öffnet eine persistente Datenbank-Verbindung
  • dba_close() - Schließt eine DBA-Datenbank


Optimiert eine Datenbank

  • « dba_open
  • dba_popen »
  • PHP Manual
  • DBA-Funktionen
  • Optimiert eine Datenbank

dba_optimize

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_optimize — Optimiert eine Datenbank

Beschreibung

dba_optimize ( resource $dba ) : bool

dba_optimize() optimiert die zugrunde liegende Datenbank.

Parameter-Liste

dba

Die Datenbank-Verbindungskennung, die von dba_open() oder dba_popen() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • dba_sync() - Synchronisiert eine Datenbank


Öffnet eine persistente Datenbank-Verbindung

  • « dba_optimize
  • dba_replace »
  • PHP Manual
  • DBA-Funktionen
  • Öffnet eine persistente Datenbank-Verbindung

dba_popen

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_popen — Öffnet eine persistente Datenbank-Verbindung

Beschreibung

dba_popen ( string $path , string $mode , string $handler = ? , mixed ...$args ) : resource|false

dba_popen() stellt eine persistente Datenbankinstanz für path mit mode her und benutzt dabei den Handler handler.

Parameter-Liste

path

Ein gültiger Pfad in Ihrem Dateisystem.

mode

Das ist r für lesenden Zugriff, w für lesenden und schreibenden Zugriff auf eine existierende Datenbank, c für lesenden und schreibenden Zugriff und Erstellen der Datenbank, falls sie noch nicht existiert und n für das Erstellen einer Datenbank, bzw. deren Zurücksetzen auf die Größe 0, falls sie schon existiert und lesenden und schreibenden Zugriff.

handler

Der Name des handlers, der für den Zugriff auf path benutzt werden soll. Er bekommt alle optionalen Argumente, die der Funktion dba_popen() mitgegeben wurden, übergeben und kann damit in deren Name verfahren.

args

Optionale String-Parameter, die an den Treiber übergeben werden.

Die cdb-, cdb_make-, flatfile-, inifile-, qdbm- und tcadb-Treiber unterstützen keine zusätzlichen Parameter.

Die db1-, db2-, db3-, db4-, dbm-, gdbm- und ndbm-Treiber unterstützen einen zusätzlichen Parameter $filemode, der die gleiche Bedeutung hat wie der $mode-Parameter in chmod() und den Standardwert 0644 hat.

Der lmdb-Treiber akzeptiert zwei zusätzliche Parameter. Der erste erlaubt es den $filemode anzugeben (siehe Beschreibung weiter oben), und der zweite die $mapsize, wobei der Wert ein Vielfaches der Pagesize des Betriebssystems sein sollte, oder Null, um die voreingestellte Mapsize zu verwenden. Der $mapsize-Parameter wird ab PHP 7.3.14 bzw. 7.4.2 unterstützt.

Rückgabewerte

Gibt eine positive Verbindungskennung zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • dba_open() - Öffnet eine Datenbank
  • dba_close() - Schließt eine DBA-Datenbank


Ersetzt einen Eintrag oder fügt ihn ein

  • « dba_popen
  • dba_sync »
  • PHP Manual
  • DBA-Funktionen
  • Ersetzt einen Eintrag oder fügt ihn ein

dba_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_replace — Ersetzt einen Eintrag oder fügt ihn ein

Beschreibung

dba_replace ( string|array $key , string $value , resource $dba ) : bool

dba_replace() ersetzt in der durch dba spezifizierten Datenbank den Eintrag, der durch key und value beschrieben wird, oder fügt ihn ein.

Parameter-Liste

key

Der Schlüssel des zu ersetzenden Eintrags.

value

Der Wert, der ersetzt werden soll.

dba

Die Datenbank-Verbindungskennung, die von dba_open() oder dba_popen() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • dba_exists() - Überprüft, ob ein angegebener Schlüssel existiert
  • dba_delete() - Löscht den zum angegebenen Schlüssel gehörigen DBA-Eintrag
  • dba_fetch() - Liest die Daten zu einem angegebenen Schlüssel aus
  • dba_insert() - Fügt einen Eintrag ein


Synchronisiert eine Datenbank

  • « dba_replace
  • ODBC »
  • PHP Manual
  • DBA-Funktionen
  • Synchronisiert eine Datenbank

dba_sync

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_sync — Synchronisiert eine Datenbank

Beschreibung

dba_sync ( resource $dba ) : bool

dba_sync() synchronisiert die Datenbank. Dies kann möglicherweise einen physikalischen Schreibvorgang auf den Datenträger auslösen, falls dies unterstützt wird.

Parameter-Liste

dba

Die Datenbank-Verbindungskennung, die von dba_open() oder dba_popen() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • dba_optimize() - Optimiert eine Datenbank


ODBC (Unified)

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • ODBC Funktionen
    • odbc_autocommit — Ändert das Autocommit-Verhalten
    • odbc_binmode — Behandlung von Binärdaten
    • odbc_close_all — Schließt alle ODBC-Verbindungen
    • odbc_close — Schließ eine ODBC-Verbindung
    • odbc_columnprivileges — Liste Spalten und damit verbundene Rechte für die angegeben Tabelle auf
    • odbc_columns — Lists the column names in specified tables
    • odbc_commit — Schließt eine ODBC-Transaktion ab
    • odbc_connect — Verbindet mit einer Datenquelle
    • odbc_cursor — Liefert den Cursornamen
    • odbc_data_source — Returns information about available DSNs
    • odbc_do — Alias von odbc_exec
    • odbc_error — Get the last error code
    • odbc_errormsg — Get the last error message
    • odbc_exec — Führt einen SQL-Befehl direkt aus
    • odbc_execute — Führt einen vorbereiteten SQL-Befehl aus
    • odbc_fetch_array — Fetch a result row as an associative array
    • odbc_fetch_into — Liest eine Ergebniszeile in ein Array
    • odbc_fetch_object — Fetch a result row as an object
    • odbc_fetch_row — Liefert eine Zeile zurück
    • odbc_field_len — Bestimmt die Länge (Präzision) eines Feldes
    • odbc_field_name — Liefert den Spaltennamen
    • odbc_field_num — Liefert die Spaltennummer
    • odbc_field_precision — Alias von odbc_field_len
    • odbc_field_scale — Get the scale of a field
    • odbc_field_type — Datentyp eines Feldes
    • odbc_foreignkeys — Retrieves a list of foreign keys
    • odbc_free_result — Gibt den durch ein Abfrageergebnis belegten Speicher wieder frei
    • odbc_gettypeinfo — Retrieves information about data types supported by the data source
    • odbc_longreadlen — Steuert die Behandlung von LONG-Spalten
    • odbc_next_result — Checks if multiple results are available
    • odbc_num_fields — Liefert die Anzahl der Ergebnisspalten
    • odbc_num_rows — Liefert die Zeilenzahl des Abfrageergebnisses
    • odbc_pconnect — Öffnet eine persistente Datenbankverbindung
    • odbc_prepare — Bereitet eine Anweisung für die Ausführung vor
    • odbc_primarykeys — Gets the primary keys for a table
    • odbc_procedurecolumns — Retrieve information about parameters to procedures
    • odbc_procedures — Get the list of procedures stored in a specific data source
    • odbc_result_all — Gibt das aktuelle Abfrageergebnis als HTML-Tabelle aus
    • odbc_result — Liefert Ergebnisdaten
    • odbc_rollback — Bricht eine Transaktion ab
    • odbc_setoption — ODBC-Einstellungen anpassen
    • odbc_specialcolumns — Retrieves special columns
    • odbc_statistics — Retrieve statistics about a table
    • odbc_tableprivileges — Lists tables and the privileges associated with each table
    • odbc_tables — Get the list of table names stored in a specific data source


Einführung

Zusätzlich zur normalen ODBC Unterstützung bieten die Unified ODBC Funktionen in PHP Zugriff auf Datenbanken die bei der Implementierung ihrer eigenen APIs die Semantik dem ODBC API entliehen haben. Statt mehrere beinahe identische Datenbankerweiterungen zu pflegen wurden all diese Treiber zu einem vereinheitlichten Satz von ODBC Funktione verschmolzen.

Die folgenden Datenbanken werden von Unified ODBC unterstützt: » Adabas D, » IBM DB2, » iODBC, » Solid, and » Sybase SQL Anywhere.

Hinweis:

Mit Ausnahme von iODBC erfolgt der Zugriff auf die genannten Datenbanken ohne dass ODBC selbst benötigt wird. Die Funktionen greifen direkt auf die jeweilige Datenbank zu, bieten aber die gleichen Funktionsnamen und Parameter wie die entsprechenden ODBC Funktionen. Wird PHP dagegen mit iODBC Unsterstützung kompiliert so ist es möglich jeden ODBC-konforme Treiber aus PHP Applikationen heraus zu nutzen. Weitere Informationen zu iODBC finden sich unter » www.iodbc.org und der Alternative unixODBC » www.unixodbc.org.


Anforderungen

Um auf eine der unterstützten Datenbanken zugreifen zu können, müssen die erforderlichen Bibliotheken installiert sein.


Installation

--with-adabas[=DIR]

Aktiviert Adabas D Unterstützung. DIR ist das Adabas Installationsverzeichnis oder /usr/local, wenn nicht angegeben.

--with-sapdb[=DIR]

Aktiviert SAP DB Unterstützung. DIR ist das SAP DB Installationsverzeichnis oder /usr/local, wenn nicht angegeben.

--with-solid[=DIR]

Aktiviert Solid Unterstützung. DIR ist das Solid Installationsverzeichnis oder /usr/local/solid, wenn nicht angegeben.

--with-ibm-db2[=DIR]

Aktiviert IBM DB2 Unterstützung. DIR ist das IBM DB2 Installationsverzeichnis oder /home/db2inst1/sqllib, wenn nicht angegeben.

--with-empress[=DIR]

Aktiviert Empress Unterstützung. DIR ist das Empress Installationsverzeichnis oder $EMPRESSPATH, wenn nicht angegeben. Es wird nur Empress Version 8.60 oder größer unterstützt.

--with-empress-bcs[=DIR]

Aktiviert "Empress Local Access Unterstützung. DIR ist das Empress Installationsverzeichnis oder $EMPRESSPATH, wenn nicht angegeben. Es wird nur Empress Version 8.60 oder größer unterstützt.

--with-birdstep[=DIR]

Aktiviert Birdstep Unterstützung. DIR ist das Birdstep Installationsverzeichnis oder /usr/local/birdstep, wenn nicht angegeben.

--with-custom-odbc[=DIR]

Aktiviert benutzerdefinierte ODBC Unterstützung. DIR ist das ODBC Installationsverzeichnis oder /usr/local, wenn nicht angegeben. Es muss sichergestellt werden, dass CUSTOM_ODBC_LIBS definert ist, und dass eine odbc.h Datei im Includepfad existiert. Für Sybase SQL Anywhere 5.5.00 unter QNX sollte z.B. folgendes vor dem Aufruf des configure Skripts folgende Umgebungsvariablen gesetzt werden:

   CPPFLAGS="-DODBC_QNX -DSQLANY_BUG"
   LDFLAGS=-lunix
   CUSTOM_ODBC_LIBS="-ldblib -lodbc".

--with-iodbc[=DIR]

Aktiviert iODBC Unterstützung. DIR ist das iODBC Installationsverzeichnis oder /usr/local, wenn nicht angegeben.

--with-esoob[=DIR]

Aktiviert Easysoft OOB support. DIR ist das OOB Installationsverzeichnis oder /usr/local/easysoft/oob/client, wenn nicht angegeben.

--with-unixODBC[=DIR]

Aktiviert unixODBC Unterstützung. DIR ist das unixODBC Installationsverzeichnis oder /usr/local, wenn nicht angegeben.

--with-openlink[=DIR]

Aktiviert OpenLink ODBC Unterstützung. DIR ist das OpenLink Installationsverzeichnis oder /usr/local, wenn nicht angegeben. Dieses Modul entspricht iODBC.

--with-dbmaker[=DIR]

Aktiviert DBMaker Unterstützung. DIR ist das DBMaker Installationsverzeichnis oder das Verzeichnis, in dem die neueste DBMaker Version installiert ist, wenn nicht angegeben (z.B. /home/dbmaker/3.6).

Die Windowsversion von PHP enthält diese Erweiterung. Um diese Funktionen zu verwenden, müssen Sie keine zusätzlichen Erweiterungen aktivieren.

As of PHP 7.0.0, however, Windows users must enable php_odbc.dll in order to use this extension.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Unified ODBC-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
odbc.default_db * | NULL | PHP_INI_ALL |
odbc.default_user * | NULL | PHP_INI_ALL |
odbc.default_pw * | NULL | PHP_INI_ALL |
odbc.allow_persistent | "1" | PHP_INI_SYSTEM |
odbc.check_persistent | "1" | PHP_INI_SYSTEM |
odbc.max_persistent | "-1" | PHP_INI_SYSTEM |
odbc.max_links | "-1" | PHP_INI_SYSTEM |
odbc.defaultlrl | "4096" | PHP_INI_ALL |
odbc.defaultbinmode | "1" | PHP_INI_ALL |
odbc.default_cursortype | "3" | PHP_INI_ALL | Verfügbar von PHP 5.3.0 an

Hinweis: Mit * markierte Optionen sind noch nicht implementiert.

Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

odbc.default_db string

Zu verwendende ODBC-Datenquelle, falls keine mit odbc_connect() oder odbc_pconnect() angegeben wurde.

odbc.default_user string

Zu verwendender Benutzername, falls keiner in odbc_connect() oder odbc_pconnect() angegeben wurde.

odbc.default_pw string

Zu verwendendes Passwort, falls keines in odbc_connect() oder odbc_pconnect() angegeben wurde.

odbc.allow_persistent bool

Gibt an, ob persistente ODBC-Verbindungen möglich sein sollen.

odbc.check_persistent bool

Prüft vor der Benutzung, ob eine persistente Verbindung noch gültig ist.

odbc.max_persistent int

Die maximale Anzahl persistenter ODBC-Verbindungen je Prozess.

odbc.max_links int

Die maximale Anzahl der ODBC-Verbindungen je Prozess (inklusive persistenter Verbindungen).

odbc.defaultlrl int

Behandlung von LONG-Feldern. Gibt die Anzahl der Bytes an, die an Variablen zurückgegeben werden. Siehe odbc_longreadlen() für Details.

Wird ein int-Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben.
odbc.defaultbinmode int

Handhabung binärer Daten. Siehe odbc_binmode() für Details.

odbc.default_cursortype int

Bestimmt das ODBC-Cursormodell. Mögliche Werte sind SQL_CURSOR_FORWARD_ONLY, SQL_CURSOR_KEYSET_DRIVEN, SQL_CURSOR_DYNAMIC und SQL_CURSOR_STATIC (Standardwert).


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert zwei Ressourcetypen für ODBC-Verbindungen und ODBC-Abfrageergebnisse.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

ODBC_TYPE (int)
ODBC_BINMODE_PASSTHRU (int)
ODBC_BINMODE_RETURN (int)
ODBC_BINMODE_CONVERT (int)
SQL_ODBC_CURSORS (int)
SQL_CUR_USE_DRIVER (int)
SQL_CUR_USE_IF_NEEDED (int)
SQL_CUR_USE_ODBC (int)
SQL_CONCURRENCY (int)
SQL_CONCUR_READ_ONLY (int)
SQL_CONCUR_LOCK (int)
SQL_CONCUR_ROWVER (int)
SQL_CONCUR_VALUES (int)
SQL_CURSOR_TYPE (int)
SQL_CURSOR_FORWARD_ONLY (int)
SQL_CURSOR_KEYSET_DRIVEN (int)
SQL_CURSOR_DYNAMIC (int)
SQL_CURSOR_STATIC (int)
SQL_KEYSET_SIZE (int)
SQL_CHAR (int)
SQL_VARCHAR (int)
SQL_LONGVARCHAR (int)
SQL_DECIMAL (int)
SQL_NUMERIC (int)
SQL_BIT (int)
SQL_TINYINT (int)
SQL_SMALLINT (int)
SQL_INTEGER (int)
SQL_BIGINT (int)
SQL_REAL (int)
SQL_FLOAT (int)
SQL_DOUBLE (int)
SQL_BINARY (int)
SQL_VARBINARY (int)
SQL_LONGVARBINARY (int)
SQL_DATE (int)
SQL_TIME (int)
SQL_TIMESTAMP (int)
SQL_TYPE_DATE (int)
SQL_TYPE_TIME (int)
SQL_TYPE_TIMESTAMP (int)
SQL_BEST_ROWID (int)
SQL_ROWVER (int)
SQL_SCOPE_CURROW (int)
SQL_SCOPE_TRANSACTION (int)
SQL_SCOPE_SESSION (int)
SQL_NO_NULLS (int)
SQL_NULLABLE (int)
SQL_INDEX_UNIQUE (int)
SQL_INDEX_ALL (int)
SQL_ENSURE (int)
SQL_QUICK (int)


ODBC Funktionen

Inhaltsverzeichnis

  • odbc_autocommit — Ändert das Autocommit-Verhalten
  • odbc_binmode — Behandlung von Binärdaten
  • odbc_close_all — Schließt alle ODBC-Verbindungen
  • odbc_close — Schließ eine ODBC-Verbindung
  • odbc_columnprivileges — Liste Spalten und damit verbundene Rechte für die angegeben Tabelle auf
  • odbc_columns — Lists the column names in specified tables
  • odbc_commit — Schließt eine ODBC-Transaktion ab
  • odbc_connect — Verbindet mit einer Datenquelle
  • odbc_cursor — Liefert den Cursornamen
  • odbc_data_source — Returns information about available DSNs
  • odbc_do — Alias von odbc_exec
  • odbc_error — Get the last error code
  • odbc_errormsg — Get the last error message
  • odbc_exec — Führt einen SQL-Befehl direkt aus
  • odbc_execute — Führt einen vorbereiteten SQL-Befehl aus
  • odbc_fetch_array — Fetch a result row as an associative array
  • odbc_fetch_into — Liest eine Ergebniszeile in ein Array
  • odbc_fetch_object — Fetch a result row as an object
  • odbc_fetch_row — Liefert eine Zeile zurück
  • odbc_field_len — Bestimmt die Länge (Präzision) eines Feldes
  • odbc_field_name — Liefert den Spaltennamen
  • odbc_field_num — Liefert die Spaltennummer
  • odbc_field_precision — Alias von odbc_field_len
  • odbc_field_scale — Get the scale of a field
  • odbc_field_type — Datentyp eines Feldes
  • odbc_foreignkeys — Retrieves a list of foreign keys
  • odbc_free_result — Gibt den durch ein Abfrageergebnis belegten Speicher wieder frei
  • odbc_gettypeinfo — Retrieves information about data types supported by the data source
  • odbc_longreadlen — Steuert die Behandlung von LONG-Spalten
  • odbc_next_result — Checks if multiple results are available
  • odbc_num_fields — Liefert die Anzahl der Ergebnisspalten
  • odbc_num_rows — Liefert die Zeilenzahl des Abfrageergebnisses
  • odbc_pconnect — Öffnet eine persistente Datenbankverbindung
  • odbc_prepare — Bereitet eine Anweisung für die Ausführung vor
  • odbc_primarykeys — Gets the primary keys for a table
  • odbc_procedurecolumns — Retrieve information about parameters to procedures
  • odbc_procedures — Get the list of procedures stored in a specific data source
  • odbc_result_all — Gibt das aktuelle Abfrageergebnis als HTML-Tabelle aus
  • odbc_result — Liefert Ergebnisdaten
  • odbc_rollback — Bricht eine Transaktion ab
  • odbc_setoption — ODBC-Einstellungen anpassen
  • odbc_specialcolumns — Retrieves special columns
  • odbc_statistics — Retrieve statistics about a table
  • odbc_tableprivileges — Lists tables and the privileges associated with each table
  • odbc_tables — Get the list of table names stored in a specific data source


Ändert das Autocommit-Verhalten

  • « ODBC Funktionen
  • odbc_binmode »
  • PHP Manual
  • ODBC Funktionen
  • Ändert das Autocommit-Verhalten

odbc_autocommit

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_autocommit — Ändert das Autocommit-Verhalten

Beschreibung

odbc_autocommit ( resource $odbc , bool $enable = false ) : int|bool

Schaltet das Autocommit-Verhalten um.

In der Standardeinstellung ist autocommit für eine Datenbankverbindung aktiviert. Das Deaktivieren von autocommit enspricht dem Starten einer Transaktion.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

enable

Ist enable true, ist autocommit aktiviert, ist es false, ist autocommit deaktiviert.

Rückgabewerte

Ohne den Parameter enable gibt diese Funktion den aktuellen autocommit-Status für die Datenbankverbindung odbc zurück. Eine Zahl ungleich 0 wird zurückgegeben, wenn autocommit aktiviert ist, 0, wenn es deaktiviert ist, und false, im Fehlerfall.

Wird enable übergeben, gibt diese Funktion im Erfolgsfall true zurück, und false im Fehlerfall.

Siehe auch

  • odbc_commit() - Schließt eine ODBC-Transaktion ab
  • odbc_rollback() - Bricht eine Transaktion ab


Behandlung von Binärdaten

  • « odbc_autocommit
  • odbc_close_all »
  • PHP Manual
  • ODBC Funktionen
  • Behandlung von Binärdaten

odbc_binmode

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_binmode — Behandlung von Binärdaten

Beschreibung

odbc_binmode ( resource $statement , int $mode ) : bool

Steuert die Behandlung binärer Spaltendaten. Betroffene ODBC SQL Typen sind BINARY, VARBINARY und LONGVARBINARY. Der Standardmodus kann mit der php.ini-Anweisung uodbc.defaultbinmode festgelegt werden.

Werden SQL-Binärdaten in C-Zeichendaten konvertiert (ODBC_BINMODE_CONVERT), wird jedes Byte (8 Bits) der ursprünglichen Daten 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".

Während die Behandlung von BINARY- und VARBINARY-Spalten nur von binmode abhängt, hängt die Behandlung von LONGVARBINARY-Spalten auch von longreadlen ab:

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_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 odbc__result() genutzt wird, werden die Daten bei direkter Ausgabe direkt an den Client gesendet, d.h. ausgegeben.

Parameter-Liste

statement

Die Ergebniskennung.

Wenn statement gleich 0 ist, wird die Einstellung als Standardwert für die neue Ergebnisse verwendet.

mode

Mögliche Werte für mode sind:

  • ODBC_BINMODE_PASSTHRU: schleift BINÄRE Daten durch
  • ODBC_BINMODE_RETURN: liefert die Binärdaten unverändert zurück
  • ODBC_BINMODE_CONVERT: konvertiert die Binärdaten zu Zeichen und liefert sie zurück

Hinweis: Die Behandlung von binary long Spalten wird ebenfalls durch odbc_longreadlen() beeinflusst.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Schließt alle ODBC-Verbindungen

  • « odbc_binmode
  • odbc_close »
  • PHP Manual
  • ODBC Funktionen
  • Schließt alle ODBC-Verbindungen

odbc_close_all

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_close_all — Schließt alle ODBC-Verbindungen

Beschreibung

odbc_close_all ( ) : void

odbc_close_all() schließt alle bestehenden Verbindungen zu den Datenbankservern.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Anmerkungen

Hinweis:

Diese Funktion schlägt fehl, wenn noch Transaktionen auf einer Verbindung aktiv sind. Diese Verbindung wird in diesem Fall geöffnet bleiben.


Schließ eine ODBC-Verbindung

  • « odbc_close_all
  • odbc_columnprivileges »
  • PHP Manual
  • ODBC Funktionen
  • Schließ eine ODBC-Verbindung

odbc_close

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_close — Schließ eine ODBC-Verbindung

Beschreibung

odbc_close ( resource $odbc ) : void

Schließt die Verbindung zum Datenbankserver.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Anmerkungen

Hinweis:

Diese Funktion scheitert, wenn auf dieser Datenbankverbindung noch Transaktionen ausstehen. In diesem Fall bleibt die Verbindung geöffnet.


Liste Spalten und damit verbundene Rechte für die angegeben Tabelle auf

  • « odbc_close
  • odbc_columns »
  • PHP Manual
  • ODBC Funktionen
  • Liste Spalten und damit verbundene Rechte für die angegeben Tabelle auf

odbc_columnprivileges

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_columnprivileges — Liste Spalten und damit verbundene Rechte für die angegeben Tabelle auf

Beschreibung

odbc_columnprivileges ( resource $odbc , string|null $catalog , string $schema , string $table , string $column ) : resource|false

Listet die Spalten und die mit ihnen verbundenen Rechte für die gegebene Tabelle auf.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

catalog

Der Katalog ('Kennzeichner' in ODBC 2 Terminologie).

schema

Das Schema ('Besitzer' in ODBC 2 Terminologie). Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

table

Der Tabellenname. Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

column

Der Spaltenname. Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

Rückgabewerte

Gibt eine ODBC Ergebniskennung zurück, Im Fehlerfall wird false zurückgegeben.. Die Ergebniskennung kann verwendet werden, um eine Liste von Spalten und den zugehörigen Rechten zu erhalten.

Die Ergebnismenge enhält die folgenden Spalten:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE
Treiber können zusätzliche Spalten melden.

Die Ergebnis-Resource ist nach TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME und PRIVILEGE sortiert.

Beispiele

Beispiel #1 Zugriffsberechtigungen für eine Spalte auflisten

<?php
$conn = odbc_connect($dsn, $benutzer, $pass);
$berechtigungen = odbc_columnprivileges($conn, 'TutorialDB', 'dbo', 'test', 'id');
while (($row = odbc_fetch_array($berechtigungen))) {
    print_r($row);
    break; // weitere Zeilen der Kürze halber weggelassen
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => test
    [COLUMN_NAME] => id
    [GRANTOR] => dbo
    [GRANTEE] => dbo
    [PRIVILEGE] => INSERT
    [IS_GRANTABLE] => YES
)


Lists the column names in specified tables

  • « odbc_columnprivileges
  • odbc_commit »
  • PHP Manual
  • ODBC Funktionen
  • Lists the column names in specified tables

odbc_columns

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_columns — Lists the column names in specified tables

Beschreibung

odbc_columns ( resource $odbc , string|null $catalog = null , string|null $schema = null , string|null $table = null , string|null $column = null ) : resource|false

Lists all columns in the requested range.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

catalog

Der Katalog ('Kennzeichner' in ODBC 2 Terminologie).

schema

Das Schema ('Besitzer' in ODBC 2 Terminologie). Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

table

The table name. Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

column

The column name. Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

Rückgabewerte

Returns an ODBC result identifierIm Fehlerfall wird false zurückgegeben..

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • NUM_PREC_RADIX
  • NULLABLE
  • REMARKS
  • COLUMN_DEF
  • SQL_DATA_TYPE
  • SQL_DATETIME_SUB
  • CHAR_OCTET_LENGTH
  • ORDINAL_POSITION
  • IS_NULLABLE
Treiber können zusätzliche Spalten melden.

The result set is ordered by TABLE_CAT, TABLE_SCHEM, TABLE_NAME and ORDINAL_POSITION.

Changelog

Version | Beschreibung
8.0.0 | schema, table and column are now nullable.

Beispiele

Beispiel #1 List Columns of a Table

<?php
$conn = odbc_connect($dsn, $user, $pass);
$columns = odbc_columns($conn, 'TutorialDB', 'dbo', 'test', '%');
while (($row = odbc_fetch_array($columns))) {
    print_r($row);
    break; // further rows omitted for brevity
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [COLUMN_NAME] => id
    [DATA_TYPE] => 4
    [TYPE_NAME] => int
    [COLUMN_SIZE] => 10
    [BUFFER_LENGTH] => 4
    [DECIMAL_DIGITS] => 0
    [NUM_PREC_RADIX] => 10
    [NULLABLE] => 0
    [REMARKS] =>
    [COLUMN_DEF] =>
    [SQL_DATA_TYPE] => 4
    [SQL_DATETIME_SUB] =>
    [CHAR_OCTET_LENGTH] =>
    [ORDINAL_POSITION] => 1
    [IS_NULLABLE] => NO
)

Siehe auch

  • odbc_columnprivileges() - Liste Spalten und damit verbundene Rechte für die angegeben Tabelle auf
  • odbc_procedurecolumns() - Retrieve information about parameters to procedures


Schließt eine ODBC-Transaktion ab

  • « odbc_columns
  • odbc_connect »
  • PHP Manual
  • ODBC Funktionen
  • Schließt eine ODBC-Transaktion ab

odbc_commit

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_commit — Schließt eine ODBC-Transaktion ab

Beschreibung

odbc_commit ( resource $odbc ) : bool

Schließt alle ausstehenden Transaktion der Verbindung ab.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Verbindet mit einer Datenquelle

  • « odbc_commit
  • odbc_cursor »
  • PHP Manual
  • ODBC Funktionen
  • Verbindet mit einer Datenquelle

odbc_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_connect — Verbindet mit einer Datenquelle

Beschreibung

odbc_connect ( string $dsn , string $user , string $password , int $cursor_option = SQL_CUR_USE_DRIVER ) : resource|false

Die Verbindungskennung, die von dieser Funktion zurückgegeben wird, wird von anderen ODBC-Funktionen benötigt. Es können mehrere Verbindungen nebeneinander bestehen, solange sie entweder unterschiedliche Datenbanken oder unterschiedliche Anmeldeinformation verwenden.

Bei einigen ODBC-Treibern können möglicherweise Probleme bei der Ausführung von komplexen Prozeduren auftreten. Die Fehlermeldung lautet dann etwa "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it". Die Verwendung von SQL_CUR_USE_ODBC kann diesen Fehler verhindern. Weiterhin unterstützen einige ODBC-Treiber den optionalen Parameter row_number der Funktion odbc_fetch_row() nicht. Auch in diesem Fall kann SQL_CUR_USE_ODBC helfen.

Parameter-Liste

dsn

Der Datenquellenname für die Verbindung. Alternativ kann auch eine DSN-lose Verbindungszeichenkette verwendet werden.

user

Der Benutzername.

password

Das Passwort.

cursor_option

Dies 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.

Folgende Konstanten sind als Cursortyp definiert:

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER

Rückgabewerte

Gibt eine ODBC-Verbindung zurück. Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 DSN-lose Verbindung

<?php
// Microsoft SQL Server unter Verwendung des SQL Native Client 10.0 ODBC-Treibers - ermöglicht Verbindungen zu SQL 7, 2000, 2005 und 2008
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);

// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

// Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir" , '', '');
?>

Siehe auch

  • Für persistente Verbindungen: odbc_pconnect() - Öffnet eine persistente Datenbankverbindung


Liefert den Cursornamen

  • « odbc_connect
  • odbc_data_source »
  • PHP Manual
  • ODBC Funktionen
  • Liefert den Cursornamen

odbc_cursor

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_cursor — Liefert den Cursornamen

Beschreibung

odbc_cursor ( resource $statement ) : string|false

Liefert den Cursornamen für die gegebene Ergebniskennung result_id zurück.

Parameter-Liste

statement

Die Ergebniskennung.

Rückgabewerte

Gibt den Cursornamen als Zeichenkette zurück. Im Fehlerfall wird false zurückgegeben..


Returns information about available DSNs

  • « odbc_cursor
  • odbc_do »
  • PHP Manual
  • ODBC Funktionen
  • Returns information about available DSNs

odbc_data_source

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

odbc_data_source — Returns information about available DSNs

Beschreibung

odbc_data_source ( resource $odbc , int $fetch_type ) : array|false

This function will return the list of available DSN (after calling it several times).

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

fetch_type

The fetch_type can be one of two constant types: SQL_FETCH_FIRST, SQL_FETCH_NEXT. Use SQL_FETCH_FIRST the first time this function is called, thereafter use the SQL_FETCH_NEXT.

Rückgabewerte

Returns false on error, an Array upon success, and null after fetching the last available DSN.

Beispiele

Beispiel #1 List available DSNs

<?php
$conn = odbc_connect('dsn', 'user', 'pass');
$dsn_info = odbc_data_source($conn, SQL_FETCH_FIRST);
while ($dsn_info) {
    print_r($dsn_info);
    $dsn_info = odbc_data_source($conn, SQL_FETCH_NEXT);
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [server] => dsn
    [description] => ODBC Driver 17 for SQL Server
)
Array
(
    [server] => other_dsn
    [description] => Microsoft Access Driver (*.mdb, *.accdb)
)


Alias von odbc_exec

  • « odbc_data_source
  • odbc_error »
  • PHP Manual
  • ODBC Funktionen
  • Alias von odbc_exec

odbc_do

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_do — Alias von odbc_exec()

Beschreibung

Diese Funktion ist ein Alias für: odbc_exec().


Get the last error code

  • « odbc_do
  • odbc_errormsg »
  • PHP Manual
  • ODBC Funktionen
  • Get the last error code

odbc_error

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

odbc_error — Get the last error code

Beschreibung

odbc_error ( resource|null $odbc = null ) : string

Returns a six-digit ODBC state, or an empty string if there has been no errors.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

Rückgabewerte

If odbc is specified, the last state of that connection is returned, else the last state of any connection is returned.

This function returns meaningful value only if last odbc query failed (i.e. odbc_exec() returned false).

Changelog

Version | Beschreibung
8.0.0 | odbc is nullable now.

Siehe auch

  • odbc_errormsg() - Get the last error message
  • odbc_exec() - Führt einen SQL-Befehl direkt aus


Get the last error message

  • « odbc_error
  • odbc_exec »
  • PHP Manual
  • ODBC Funktionen
  • Get the last error message

odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

odbc_errormsg — Get the last error message

Beschreibung

odbc_errormsg ( resource|null $odbc = null ) : string

Returns a string containing the last ODBC error message, or an empty string if there has been no errors.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

Rückgabewerte

If odbc is specified, the last state of that connection is returned, else the last state of any connection is returned.

This function returns meaningful value only if last odbc query failed (i.e. odbc_exec() returned false).

Changelog

Version | Beschreibung
8.0.0 | odbc is nullable now.

Siehe auch

  • odbc_error() - Get the last error code
  • odbc_exec() - Führt einen SQL-Befehl direkt aus


Führt einen SQL-Befehl direkt aus

  • « odbc_errormsg
  • odbc_execute »
  • PHP Manual
  • ODBC Funktionen
  • Führt einen SQL-Befehl direkt aus

odbc_exec

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_exec — Führt einen SQL-Befehl direkt aus

Beschreibung

odbc_exec ( resource $odbc , string $query ) : resource|false

Sendet eine SQL-Anweisung an den Datenbankserver.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

query

Die SQL-Anweisung.

Rückgabewerte

Gibt eine ODBC-Ergebniskennung zurück, wenn das SQL-Kommando erfolgreich ausgeführt wurde, oder false im Fehlerfall.

Changelog

Version | Beschreibung
8.0.0 | flags wurde entfernt.

Siehe auch

  • odbc_prepare() - Bereitet eine Anweisung für die Ausführung vor
  • odbc_execute() - Führt einen vorbereiteten SQL-Befehl aus


Führt einen vorbereiteten SQL-Befehl aus

  • « odbc_exec
  • odbc_fetch_array »
  • PHP Manual
  • ODBC Funktionen
  • Führt einen vorbereiteten SQL-Befehl aus

odbc_execute

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_execute — Führt einen vorbereiteten SQL-Befehl aus

Beschreibung

odbc_execute ( resource $statement , array $params = [] ) : bool

Führt eine mit odbc_prepare() vorbereitete Anweisung aus.

Parameter-Liste

statement

Die Ergebniskennung resource von odbc_prepare().

params

Parameter in params werden für Platzhalter in der vorbereiteten Anweisung in der Reihenfolge ihres Vorkommens eingesetzt. Elemente dieses Array werden zu Zeichenketten konvertiert, wenn diese Funktion aufgerufen wird.

Jegliche Parameter in params, die mit einfachen Anführungszeichen beginnen und enden, werden als Name einer Datei interpretiert, die gelesen und als Daten für den entsprechenden Platzhalter an den Server gesendet werden.

Soll eine Zeichenkette, die tatsächlich mit einfachen Anführungszeichen beginnt und endet übergeben werden, muss ein Leerzeichen oder ein anderes Zeichen, das kein einfaches Anführungszeichen ist, am Anfang oder Ende der Zeichenkette eingefügt werden, was verhindert, dass der Parameter als Dateiname interpretiert wird. Ist dies keine Option, dann muss ein anderer Mechanismus verwendet werden, um die Zeichenkette zu übergeben, wie z.B. die Abfrage direkt per odbc_exec() auszuführen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Beispiel für odbc_execute() und odbc_prepare()

Im folgenden Code ist $success nur dann true, wenn alle drei Parameter für myproc Eingabeparameter (IN) sind:

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt    = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>

Wenn eine gespeicherte Prozedur aufgerufen werden soll, die Ein-Ausgabe- (INOUT) oder Ausgabeparameter (OUT) verwendet, wird als Workaround empfohlen, eine native Extension für die jeweilige Datenbank zu verwenden (beispielsweise oci8 für Oracle).

Siehe auch

  • odbc_prepare() - Bereitet eine Anweisung für die Ausführung vor


Fetch a result row as an associative array

  • « odbc_execute
  • odbc_fetch_into »
  • PHP Manual
  • ODBC Funktionen
  • Fetch a result row as an associative array

odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

odbc_fetch_array — Fetch a result row as an associative array

Beschreibung

odbc_fetch_array ( resource $statement , int $row = -1 ) : array|false

Fetch an associative array from an ODBC query.

Parameter-Liste

statement

The result resource from odbc_exec().

row

Optionally choose which row number to retrieve.

Rückgabewerte

Returns an array that corresponds to the fetched row, or false if there are no more rows.

Anmerkungen

Hinweis: This function exists when compiled with DBMaker, IBM DB2 or UnixODBC support.

Siehe auch

  • odbc_fetch_row() - Liefert eine Zeile zurück
  • odbc_fetch_object() - Fetch a result row as an object
  • odbc_num_rows() - Liefert die Zeilenzahl des Abfrageergebnisses


Liest eine Ergebniszeile in ein Array

  • « odbc_fetch_array
  • odbc_fetch_object »
  • PHP Manual
  • ODBC Funktionen
  • Liest eine Ergebniszeile in ein Array

odbc_fetch_into

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_fetch_into — Liest eine Ergebniszeile in ein Array

Beschreibung

odbc_fetch_into ( resource $statement , array &$array , int $row = 0 ) : int|false

Liest eine Ergebniszeile in ein Array.

Parameter-Liste

statement

Die Resource, die das Abfrageergebnis beinhaltet.

array

Das Array, welches das Ergebnis aufnehmen soll. Hier kann ein beliebiger Typ übergeben werden, da dies in ein Array konvertiert wird. Das Array wird die Werte der einzelnen Spalten ab der Arrayposition 0 enthalten.

row

Die Zeilennummer.

Rückgabewerte

Gibt die Anzahl der Spalten im Ergebnis zurück, false bei einem Fehler.

Beispiele

Beispiel #1 odbc_fetch_into()-Beispiele

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

oder

<?php
$rc = odbc_fetch_into($res_id, $my_array, 2);
?>


Fetch a result row as an object

  • « odbc_fetch_into
  • odbc_fetch_row »
  • PHP Manual
  • ODBC Funktionen
  • Fetch a result row as an object

odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

odbc_fetch_object — Fetch a result row as an object

Beschreibung

odbc_fetch_object ( resource $statement , int $row = -1 ) : stdClass|false

Fetch an object from an ODBC query.

Parameter-Liste

statement

The result resource from odbc_exec().

row

Optionally choose which row number to retrieve.

Rückgabewerte

Returns an object that corresponds to the fetched row, or false if there are no more rows.

Anmerkungen

Hinweis: This function exists when compiled with DBMaker, IBM DB2 or UnixODBC support.

Siehe auch

  • odbc_fetch_row() - Liefert eine Zeile zurück
  • odbc_fetch_array() - Fetch a result row as an associative array
  • odbc_num_rows() - Liefert die Zeilenzahl des Abfrageergebnisses


Liefert eine Zeile zurück

  • « odbc_fetch_object
  • odbc_field_len »
  • PHP Manual
  • ODBC Funktionen
  • Liefert eine Zeile zurück

odbc_fetch_row

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_fetch_row — Liefert eine Zeile zurück

Beschreibung

odbc_fetch_row ( resource $statement , int|null $row = null ) : bool

Stellt eine Zeile der von odbc_do() oder
odbc_exec() zurückgegeben Daten bereit. Nachdem
odbc_fetch_row() aufgerufen wurde, können die Felder
dieser Zeile mit odbc_result() genutzt werden.

Parameter-Liste

statement

Die Ergebniskennung.

row

Wenn row nicht definiert ist, versucht odbc_fetch_row() die nächste Zeile aus der Ergebnismenge zu holen. odbc_fetch_row() kann abwechselnd ohne und mit dem Parameter row genutzt werden.

Um ein Abfrageergebnis mehrfach zu durchlaufen, kann odbc_fetch_row() mit row gleich 1 aufgerufen werden, um dann wie gewohnt mit odbc_fetch_row() ohne row fortzufahren. Wenn der ODBC-Treiber das Lesen von Zeilen nach Zeilennummer nicht unterstützt, wird der Parameter row ignoriert.

Rückgabewerte

Gibt true zurück, wenn eine Zeile gelesen wurde, und false anderfalls.

Changelog

Version | Beschreibung
8.0.0 | row ist jetzt ein Nullable-Typ.


Bestimmt die Länge (Präzision) eines Feldes

  • « odbc_fetch_row
  • odbc_field_name »
  • PHP Manual
  • ODBC Funktionen
  • Bestimmt die Länge (Präzision) eines Feldes

odbc_field_len

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_len — Bestimmt die Länge (Präzision) eines Feldes

Beschreibung

odbc_field_len ( resource $statement , int $field ) : int|false

Gibt die Länge eines durch eine Feldnummer angegebenen Feldes in der angegebenen Ergebniskennung zurück.

Parameter-Liste

statement

Die Ergebniskennung.

field

Die Feldnummer, wobei die Nummerierung mit 1 beginnt.

Rückgabewerte

Gibt die Feldlänge zurück, oder false im Fehlerfall.

Siehe auch

  • odbc_field_scale() - Get the scale of a field, um die Dezimalstellen einer Gleitkommazahl zu erhalten


Liefert den Spaltennamen

  • « odbc_field_len
  • odbc_field_num »
  • PHP Manual
  • ODBC Funktionen
  • Liefert den Spaltennamen

odbc_field_name

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_name — Liefert den Spaltennamen

Beschreibung

odbc_field_name ( resource $statement , int $field ) : string|false

Liefert den Namen der Spalte, die die angegebe Spaltennummer in der angegebenen Ergebniskennung belegt.

Parameter-Liste

statement

Die Ergebniskennung.

field

Die Feldnummer, wobei die Nummerierung mit 1 beginnt.

Rückgabewerte

Gibt den Feldnamen als Zeichenkette zurück, oder false im Fehlerfall.


Liefert die Spaltennummer

  • « odbc_field_name
  • odbc_field_precision »
  • PHP Manual
  • ODBC Funktionen
  • Liefert die Spaltennummer

odbc_field_num

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_num — Liefert die Spaltennummer

Beschreibung

odbc_field_num ( resource $statement , string $field ) : int|false

Liefert die Spaltennummer, die zum benannten Feld in der angegebenen Ergebniskennung gehört.

Parameter-Liste

statement

Die Ergebniskennung.

field

Der Feldname.

Rückgabewerte

Gibt die Feldnummer als Ganzzahl zurück, oder false im Fehlerfall. Die Feld-Nummerierung beginnt mit 1.


Alias von odbc_field_len

  • « odbc_field_num
  • odbc_field_scale »
  • PHP Manual
  • ODBC Funktionen
  • Alias von odbc_field_len

odbc_field_precision

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_precision — Alias von odbc_field_len()

Beschreibung

Diese Funktion ist ein Alias für: odbc_field_len().

Siehe auch

  • odbc_field_scale() - Get the scale of a field to get the scale of a floating point number.


Get the scale of a field

  • « odbc_field_precision
  • odbc_field_type »
  • PHP Manual
  • ODBC Funktionen
  • Get the scale of a field

odbc_field_scale

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_scale — Get the scale of a field

Beschreibung

odbc_field_scale ( resource $statement , int $field ) : int|false

Gets the scale of the field referenced by number in the given result identifier.

Parameter-Liste

statement

The result identifier.

field

The field number. Field numbering starts at 1.

Rückgabewerte

Returns the field scale as a integer, or false on error.


Datentyp eines Feldes

  • « odbc_field_scale
  • odbc_foreignkeys »
  • PHP Manual
  • ODBC Funktionen
  • Datentyp eines Feldes

odbc_field_type

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_type — Datentyp eines Feldes

Beschreibung

odbc_field_type ( resource $statement , int $field ) : string|false

Liefert den SQL-Datentypen des Feldes, das in der angegeben Ergebniskennung numerisch referenziert wird.

Parameter-Liste

statement

Die Ergebniskennung.

field

Die Feldnummer. Die Nummerierung beginnt mit 1.

Rückgabewerte

Gibt den Feldtyp als Zeichenkette zurück, oder false im Fehlerfall.


Retrieves a list of foreign keys

  • « odbc_field_type
  • odbc_free_result »
  • PHP Manual
  • ODBC Funktionen
  • Retrieves a list of foreign keys

odbc_foreignkeys

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_foreignkeys — Retrieves a list of foreign keys

Beschreibung

odbc_foreignkeys ( resource $odbc , string|null $pk_catalog , string $pk_schema , string $pk_table , string $fk_catalog , string $fk_schema , string $fk_table ) : resource|false

Retrieves a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

pk_catalog

The catalog ('qualifier' in ODBC 2 parlance) of the primary key table.

pk_schema

The schema ('owner' in ODBC 2 parlance) of the primary key table.

pk_table

The primary key table.

pk_catalog

The catalog ('qualifier' in ODBC 2 parlance) of the foreign key table.

fk_schema

The schema ('owner' in ODBC 2 parlance) of the foreign key table.

fk_table

The foreign key table.

Rückgabewerte

Returns an ODBC result identifierIm Fehlerfall wird false zurückgegeben..

The result set has the following columns:

  • PKTABLE_CAT
  • PKTABLE_SCHEM
  • PKTABLE_NAME
  • PKCOLUMN_NAME
  • FKTABLE_CAT
  • FKTABLE_SCHEM
  • FKTABLE_NAME
  • FKCOLUMN_NAME
  • KEY_SEQ
  • UPDATE_RULE
  • DELETE_RULE
  • FK_NAME
  • PK_NAME
  • DEFERRABILITY
Treiber können zusätzliche Spalten melden.

If the foreign keys associated with a primary key are requested, the result set is ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME and KEY_SEQ. If the primary keys associated with a foreign key are requested, the result set is ordered by PKTABLE_CAT, PKTABLE_SCHEM, PKTABLE_NAME and KEY_SEQ.

If pk_table contains a table name, odbc_foreignkeys() returns a result set containing the primary key of the specified table and all of the foreign keys that refer to it.

If fk_table contains a table name, odbc_foreignkeys() returns a result set containing all of the foreign keys in the specified table and the primary keys (in other tables) to which they refer.

If both pk_table and fk_table contain table names, odbc_foreignkeys() returns the foreign keys in the table specified in fk_table that refer to the primary key of the table specified in pk_table. This should be one key at most.

Siehe auch

  • odbc_tables() - Get the list of table names stored in a specific data source
  • odbc_primarykeys() - Gets the primary keys for a table


Gibt den durch ein Abfrageergebnis belegten Speicher wieder frei

  • « odbc_foreignkeys
  • odbc_gettypeinfo »
  • PHP Manual
  • ODBC Funktionen
  • Gibt den durch ein Abfrageergebnis belegten Speicher wieder frei

odbc_free_result

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_free_result — Gibt den durch ein Abfrageergebnis belegten Speicher wieder frei

Beschreibung

odbc_free_result ( resource $statement ) : bool

Gibt den durch ein Abfrageergebnis belegten Speicher wieder frei.

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.

Parameter-Liste

statement

Die Ergebniskennung.

Rückgabewerte

Gibt immer true zurück.

Anmerkungen

Hinweis:

Wird odbc_free_result() bei deaktiviertem autocommit (siehe odbc_autocommit()) aufgerufen, bevor die Transaktion abgeschlossen wurde, werden alle austehenden Transaktionen zurückgenommen.


Retrieves information about data types supported by the data source

  • « odbc_free_result
  • odbc_longreadlen »
  • PHP Manual
  • ODBC Funktionen
  • Retrieves information about data types supported by the data source

odbc_gettypeinfo

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_gettypeinfo — Retrieves information about data types supported by the data source

Beschreibung

odbc_gettypeinfo ( resource $odbc , int $data_type = 0 ) : resource|false

Retrieves information about data types supported by the data source.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

data_type

The data type, which can be used to restrict the information to a single data type.

Rückgabewerte

Returns an ODBC result identifier or false on failure.

The result set has the following columns:

  • TYPE_NAME
  • DATA_TYPE
  • PRECISION
  • LITERAL_PREFIX
  • LITERAL_SUFFIX
  • CREATE_PARAMS
  • NULLABLE
  • CASE_SENSITIVE
  • SEARCHABLE
  • UNSIGNED_ATTRIBUTE
  • MONEY
  • AUTO_INCREMENT
  • LOCAL_TYPE_NAME
  • MINIMUM_SCALE
  • MAXIMUM_SCALE

The result set is ordered by DATA_TYPE and TYPE_NAME.


Steuert die Behandlung von LONG-Spalten

  • « odbc_gettypeinfo
  • odbc_next_result »
  • PHP Manual
  • ODBC Funktionen
  • Steuert die Behandlung von LONG-Spalten

odbc_longreadlen

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_longreadlen — Steuert die Behandlung von LONG-Spalten

Beschreibung

odbc_longreadlen ( resource $statement , int $length ) : bool

Steuert die Behandlung von LONG- und LONGVARCHAR-Spalten. Die Standardlänge kann mit der php.ini-Anweisung uodbc.defaultlrl festgelegt werden.

Parameter-Liste

statement

Die Ergebniskennung.

length

Die Anzahl von Bytes, die an PHP zurückgegeben werden, wird durch den Parameter length gesteuert. Ist er auf 0 gesetzt, werden die Daten von Long-Spalten an den Client durchgeschleift, d.h. ausgegeben, wenn sie mit odbc_result() abgerufen werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

Die Behandlung von LONGVARBINARY-Spalten wird auch durch odbc_binmode() beeinflusst.


Checks if multiple results are available

  • « odbc_longreadlen
  • odbc_num_fields »
  • PHP Manual
  • ODBC Funktionen
  • Checks if multiple results are available

odbc_next_result

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

odbc_next_result — Checks if multiple results are available

Beschreibung

odbc_next_result ( resource $statement ) : bool

Checks if there are more result sets available as well as allowing access to the next result set via odbc_fetch_array(), odbc_fetch_row(), odbc_result(), etc.

Parameter-Liste

statement

The result identifier.

Rückgabewerte

Returns true if there are more result sets, false otherwise.

Beispiele

Beispiel #1 odbc_next_result()

<?php
$r_Connection = odbc_connect($dsn, $username, $password);

$s_SQL = <<<END_SQL
SELECT 'A'
SELECT 'B'
SELECT 'C'
END_SQL;

$r_Results = odbc_exec($r_Connection, $s_SQL);

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump first result set";
var_dump($a_Row1, $a_Row2);

echo "Get second results set ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump second result set ";
var_dump($a_Row1, $a_Row2);

echo "Get third results set ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump third result set ";
var_dump($a_Row1, $a_Row2);

echo "Try for a fourth result set ";
var_dump(odbc_next_result($r_Results));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Dump first result set array(1) {
  ["A"]=>
  string(1) "A"
}
bool(false)
Get second results set bool(true)
Dump second result set array(1) {
  ["B"]=>
  string(1) "B"
}
bool(false)
Get third results set bool(true)
Dump third result set array(1) {
  ["C"]=>
  string(1) "C"
}
bool(false)
Try for a fourth result set bool(false)


Liefert die Anzahl der Ergebnisspalten

  • « odbc_next_result
  • odbc_num_rows »
  • PHP Manual
  • ODBC Funktionen
  • Liefert die Anzahl der Ergebnisspalten

odbc_num_fields

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_num_fields — Liefert die Anzahl der Ergebnisspalten

Beschreibung

odbc_num_fields ( resource $statement ) : int

Liefert die Anzahl von Feldern (Spalten) in einem ODBC-Ergebnis.

Parameter-Liste

statement

Die Ergebniskennung, die von odbc_exec() zurückgegeben wurde.

Rückgabewerte

Gibt die Anzahl der Felder zurück, oder -1 im Fehlerfall.


Liefert die Zeilenzahl des Abfrageergebnisses

  • « odbc_num_fields
  • odbc_pconnect »
  • PHP Manual
  • ODBC Funktionen
  • Liefert die Zeilenzahl des Abfrageergebnisses

odbc_num_rows

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_num_rows — Liefert die Zeilenzahl des Abfrageergebnisses

Beschreibung

odbc_num_rows ( resource $statement ) : int

Liefert die Anzahl der Zeilen eines Ergebnisses. Bei INSERT, UPDATE und DELETE-Anweisungen gibt odbc_num_rows() die Zahl der betroffenen Zeilen zurück. Bei einer SELECT-Abfrage kann dies die Anzahl der vorhanden Zeilen sein.

Parameter-Liste

statement

Die Ergebniskennung, die von odbc_exec() zurückgegeben wurde.

Rückgabewerte

Gibt die Anzahl der Zeilen in einem ODBC-Ergebnis zurück. Diese Funktion gibt im Fehlerfall -1 zurück.

Anmerkungen

Hinweis:

Die Verwendung von odbc_num_rows(), um die Anzahl der verfügbaren Zeilen nach einem SELECT zu ermittelnt, wird bei vielen Treibern -1 liefern.


Öffnet eine persistente Datenbankverbindung

  • « odbc_num_rows
  • odbc_prepare »
  • PHP Manual
  • ODBC Funktionen
  • Öffnet eine persistente Datenbankverbindung

odbc_pconnect

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_pconnect — Öffnet eine persistente Datenbankverbindung

Beschreibung

odbc_pconnect ( string $dsn , string $user , string $password , int $cursor_option = SQL_CUR_USE_DRIVER ) : resource|false

Öffnet eine persistente Datenbankverbindung.

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 dsn, user und password-Kombination (über odbc_connect() und odbc_pconnect()) können dann die bestehende Verbindung weiterbenutzen.

Parameter-Liste

Details können der odbc_connect()-Dokumentation entnommen werden.

Rückgabewerte

Gibt eine ODBC-Verbindungskennung zurück. Im Fehlerfall wird false zurückgegeben..

Anmerkungen

Hinweis: Persistente Verbindungen wirken nicht, wenn PHP als CGI-Programm verwendet wird.

Siehe auch

  • odbc_connect() - Verbindet mit einer Datenquelle
  • Persistente Datenbankverbindungen


Bereitet eine Anweisung für die Ausführung vor

  • « odbc_pconnect
  • odbc_primarykeys »
  • PHP Manual
  • ODBC Funktionen
  • Bereitet eine Anweisung für die Ausführung vor

odbc_prepare

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_prepare — Bereitet eine Anweisung für die Ausführung vor

Beschreibung

odbc_prepare ( resource $odbc , string $query ) : resource|false

Bereitet eine Anweisung für die Ausführung vor. Die Ergebniskennung kann später verwendet werden, um die Anweisung mit odbc_execute() auszuführen.

Einige Datenbanken (wie beispielsweise IBM DB2, MS SQL Server und Oracle) unterstützen gespeicherte Prozeduren, die Parameter vom Typ IN, INOUT und OUT akzeptieren können, wie von der ODBC-Spezifikation definiert. Allerdings unterstützt der Unified-ODBC-Treiber zurzeit nur Parameter vom Typ IN für gespeicherte Prozeduren.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

query

Die Abfrage-Anweisung, die vorbereitet werden soll, als Zeichenkette.

Rückgabewerte

Gibt eine ODBC-Ergebniskennung zurück, wenn das SQL-Kommando erfolgreich vorbereitet wurde. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Beispiel für odbc_execute() und odbc_prepare()

Im folgenden Code ist $success nur dann true, wenn alle drei Parameter für myproc Eingabeparameter (IN) sind:

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt    = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>

Wenn eine gespeicherte Prozedur aufgerufen werden soll, die Ein-Ausgabe- (INOUT) oder Ausgabeparameter (OUT) verwendet, wird als Workaround empfohlen, eine native Erweiterung für die jeweilige Datenbank zu verwenden (beispielsweise oci8 für Oracle).

Siehe auch

  • odbc_execute() - Führt einen vorbereiteten SQL-Befehl aus


Gets the primary keys for a table

  • « odbc_prepare
  • odbc_procedurecolumns »
  • PHP Manual
  • ODBC Funktionen
  • Gets the primary keys for a table

odbc_primarykeys

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_primarykeys — Gets the primary keys for a table

Beschreibung

odbc_primarykeys ( resource $odbc , string|null $catalog , string $schema , string $table ) : resource|false

Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

catalog

Der Katalog ('Kennzeichner' in ODBC 2 Terminologie).

schema

Das Schema ('Besitzer' in ODBC 2 Terminologie).

table

Rückgabewerte

Returns an ODBC result identifierIm Fehlerfall wird false zurückgegeben..

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • KEY_SEQ
  • PK_NAME
Treiber können zusätzliche Spalten melden.

The result set is ordered by TABLE_CAT, TABLE_SCHEM, TABLE_NAME and KEY_SEQ.

Beispiele

Beispiel #1 List primary Keys of a Column

<?php
$conn = odbc_connect($dsn, $user, $pass);
$primarykeys = odbc_primarykeys($conn, 'TutorialDB', 'dbo', 'TEST');
while (($row = odbc_fetch_array($primarykeys))) {
    print_r($row);
    break; // further rows omitted for brevity
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [COLUMN_NAME] => id
    [KEY_SEQ] => 1
    [PK_NAME] => PK__TEST__3213E83FE141F843
)

Siehe auch

  • odbc_tables() - Get the list of table names stored in a specific data source
  • odbc_foreignkeys() - Retrieves a list of foreign keys


Retrieve information about parameters to procedures

  • « odbc_primarykeys
  • odbc_procedures »
  • PHP Manual
  • ODBC Funktionen
  • Retrieve information about parameters to procedures

odbc_procedurecolumns

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_procedurecolumns — Retrieve information about parameters to procedures

Beschreibung

odbc_procedurecolumns ( resource $odbc , string|null $catalog = null , string|null $schema = null , string|null $procedure = null , string|null $column = null ) : resource|false

Retrieve information about parameters to procedures.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

catalog

Der Katalog ('Kennzeichner' in ODBC 2 Terminologie).

schema

Das Schema ('Besitzer' in ODBC 2 Terminologie). Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

procedure

The proc. Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

column

The column. Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

Rückgabewerte

Returns the list of input and output parameters, as well as the columns that make up the result set for the specified procedures. Returns an ODBC result identifierIm Fehlerfall wird false zurückgegeben..

The result set has the following columns:

  • PROCEDURE_CAT
  • PROCEDURE_SCHEM
  • PROCEDURE_NAME
  • COLUMN_NAME
  • COLUMN_TYPE
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • NUM_PREC_RADIX
  • NULLABLE
  • REMARKS
  • COLUMN_DEF
  • SQL_DATA_TYPE
  • SQL_DATETIME_SUB
  • CHAR_OCTET_LENGTH
  • ORDINAL_POSITION
  • IS_NULLABLE
Treiber können zusätzliche Spalten melden.

The result set is ordered by PROCEDURE_CAT, PROCEDURE_SCHEM, PROCEDURE_NAME and COLUMN_TYPE.

Changelog

Version | Beschreibung
8.0.0 | Prior to this version, the function could only be called with either one or five arguments.

Beispiele

Beispiel #1 List Columns of a stored Procedure

<?php
$conn = odbc_connect($dsn, $user, $pass);
$columns = odbc_procedurecolumns($conn, 'TutorialDB', 'dbo', 'GetEmployeeSalesYTD;1', '%');
while (($row = odbc_fetch_array($columns))) {
    print_r($row);
    break; // further rows omitted for brevity
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [PROCEDURE_CAT] => TutorialDB
    [PROCEDURE_SCHEM] => dbo
    [PROCEDURE_NAME] => GetEmployeeSalesYTD;1
    [COLUMN_NAME] => @SalesPerson
    [COLUMN_TYPE] => 1
    [DATA_TYPE] => -9
    [TYPE_NAME] => nvarchar
    [COLUMN_SIZE] => 50
    [BUFFER_LENGTH] => 100
    [DECIMAL_DIGITS] =>
    [NUM_PREC_RADIX] =>
    [NULLABLE] => 1
    [REMARKS] =>
    [COLUMN_DEF] =>
    [SQL_DATA_TYPE] => -9
    [SQL_DATETIME_SUB] =>
    [CHAR_OCTET_LENGTH] => 100
    [ORDINAL_POSITION] => 1
    [IS_NULLABLE] => YES
)

Siehe auch

  • odbc_columns() - Lists the column names in specified tables


Get the list of procedures stored in a specific data source

  • « odbc_procedurecolumns
  • odbc_result_all »
  • PHP Manual
  • ODBC Funktionen
  • Get the list of procedures stored in a specific data source

odbc_procedures

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_procedures — Get the list of procedures stored in a specific data source

Beschreibung

odbc_procedures ( resource $odbc , string|null $catalog = null , string|null $schema = null , string|null $procedure = null ) : resource|false

Lists all procedures in the requested range.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

catalog

Der Katalog ('Kennzeichner' in ODBC 2 Terminologie).

schema

Das Schema ('Besitzer' in ODBC 2 Terminologie). Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

procedure

The name. Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

Rückgabewerte

Returns an ODBC result identifier containing the informationIm Fehlerfall wird false zurückgegeben..

The result set has the following columns:

  • PROCEDURE_CAT
  • PROCEDURE_SCHEM
  • PROCEDURE_NAME
  • NUM_INPUT_PARAMS
  • NUM_OUTPUT_PARAMS
  • NUM_RESULT_SETS
  • REMARKS
  • PROCEDURE_TYPE
Treiber können zusätzliche Spalten melden.

The result set is ordered by PROCEDURE_CAT, PROCEDURE_SCHEMA and PROCEDURE_NAME.

Changelog

Version | Beschreibung
8.0.0 | Prior to this version, the function could only be called with either one or four arguments.

Beispiele

Beispiel #1 List stored Procedures of a Database

<?php
$conn = odbc_connect($dsn, $user, $pass);
$procedures = odbc_procedures($conn, $catalog, $schema, '%');
while (($row = odbc_fetch_array($procedures))) {
    print_r($row);
    break; // further rows omitted for brevity
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [PROCEDURE_CAT] => TutorialDB
    [PROCEDURE_SCHEM] => dbo
    [PROCEDURE_NAME] => GetEmployeeSalesYTD;1
    [NUM_INPUT_PARAMS] => -1
    [NUM_OUTPUT_PARAMS] => -1
    [NUM_RESULT_SETS] => -1
    [REMARKS] =>
    [PROCEDURE_TYPE] => 2
)

Siehe auch

  • odbc_procedurecolumns() - Retrieve information about parameters to procedures
  • odbc_tables() - Get the list of table names stored in a specific data source


Gibt das aktuelle Abfrageergebnis als HTML-Tabelle aus

  • « odbc_procedures
  • odbc_result »
  • PHP Manual
  • ODBC Funktionen
  • Gibt das aktuelle Abfrageergebnis als HTML-Tabelle aus

odbc_result_all

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_result_all — Gibt das aktuelle Abfrageergebnis als HTML-Tabelle aus

Beschreibung

odbc_result_all ( resource $statement , string $format = "" ) : int|false

Gibt alle Zeilen einer Ergebniskennung, die von odbc_exec() geliefert wurde, aus. Das Ergebnis ist als HTML-Tabelle formatiert. Die Daten werden nicht maskiert.

Diese Funktion ist nicht für den Einsatz in Produktionsumgebungen gedacht; sie ist lediglich für Entwicklungszwecke gedacht, um schnell eine Ergebnisliste anzuzeigen.

Parameter-Liste

statement

Die Ergebniskennung.

format

Zusätzliche allgemeine Tabellenformatierung.

Rückgabewerte

Gibt die Anzahl der Zeilen in einem Ergebnis zurück, oder false im Fehlerfall.


Liefert Ergebnisdaten

  • « odbc_result_all
  • odbc_rollback »
  • PHP Manual
  • ODBC Funktionen
  • Liefert Ergebnisdaten

odbc_result

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_result — Liefert Ergebnisdaten

Beschreibung

odbc_result ( resource $statement , string|int $field ) : string|bool|null

Liefert Ergebnisdaten.

Parameter-Liste

statement

Die ODBC resource.

field

Der Name des zu lesenden Feldes. Dies kann entweder eine Ganzzahl sein, die der Spaltennummer des Feldes entspricht, oder eine Zeichenkette, die den Namen des Feldes enthält.

Rückgabewerte

Gibt den Zeichenketteninhalt des Feldes zurück, false im Fehlerfall, null bei NULL-Werten, oder true bei binären Daten.

Beispiele

Der erste Aufruf von odbc_result() liefert den Wert des drittes Feldes im aktuellen Datensatz des Abfrageergebnisses zurück. Der zweite Funktionsaufruf von odbc_result() 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.

Beispiel #1 odbc_result()-Beispiele

<?php
$item_3   = odbc_result($Query_ID, 3);
$item_val = odbc_result($Query_ID, "wert");
?>

Anmerkungen

Feldindizes beginnen bei 1. Wie Binär- oder Long-Spaltendaten zurückgegeben werden, kann der odbc_binmode()- und odbc_longreadlen()-Dokumentation entnommen werden.


Bricht eine Transaktion ab

  • « odbc_result
  • odbc_setoption »
  • PHP Manual
  • ODBC Funktionen
  • Bricht eine Transaktion ab

odbc_rollback

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_rollback — Bricht eine Transaktion ab

Beschreibung

odbc_rollback ( resource $odbc ) : bool

Bricht alle ausstehenden Transaktion der Verbindung ab.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


ODBC-Einstellungen anpassen

  • « odbc_rollback
  • odbc_specialcolumns »
  • PHP Manual
  • ODBC Funktionen
  • ODBC-Einstellungen anpassen

odbc_setoption

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_setoption — ODBC-Einstellungen anpassen

Beschreibung

odbc_setoption ( resource $odbc , int $which , int $option , int $value ) : bool

Diese Funktion erlaubt das Einstellen der ODBC-Optionen für eine einzelne Verbindung oder ein Abfrageergebnis. Sie soll beim Auffinden und Beheben von Problemen mit ODBC-Treibern helfen. Es empfiehlt sich, diese Funktion nur zu nutzen, wenn man einige Erfahrung mit ODBC-Programmierung gesammelt hat und die Wirkungen der einzelnen Parameter kennt. Es wird sicherlich nötig sein, eine gute ODBC-Referenz zur Hand zu haben, um all die unterschiedlichen Optionen und Werte, die verwendet werden können, zu erklären. Unterschiedliche Treiberversionen unterstützen unterschiedliche Optionen.

Weil die Effekte je nach ODBC-Treiber unterschiedlich sein können, wird unbedingt davon abgeraten, Skripte mit dieser Funktion zu veröffentlichen. Einige ODBC-Optionen stehen dieser Funktion nicht zur Verfügung, weil sie vor dem Aufbau einer ODBC-Verbindung oder vor der Vorbereitung der Abfrage eingestellt sein müssen. In einigen Fällen hilft diese Funktion allerdings zu vermeiden, dass man von seinem Vorgesetzten gezwungen wird, ein kommerzielles Programm einzusetzen - und darauf kommt es doch an.

Parameter-Liste

odbc

Ist die Verbindungs- oder Ergebniskennung, deren Einstellungen geändert werden sollen. Bei SQLSetConnectOption() ist es eine Verbindungskennung, bei SQLSetStmtOption() eine Ergebniskennung.

which

Ist die ODBC-Funktion, die genutzt werden soll. Die Werte sind 1 für SQLSetConnectOption() und 2 für SQLSetStmtOption().

option

Die zu ändernde Option.

value

Der Wert für die angegebene option.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 odbc_setoption()-Beispiele

<?php
// 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);
?>


Retrieves special columns

  • « odbc_setoption
  • odbc_statistics »
  • PHP Manual
  • ODBC Funktionen
  • Retrieves special columns

odbc_specialcolumns

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_specialcolumns — Retrieves special columns

Beschreibung

odbc_specialcolumns ( resource $odbc , int $type , string|null $catalog , string $schema , string $table , int $scope , int $nullable ) : resource|false

Retrieves either the optimal set of columns that uniquely identifies a row in the table, or columns that are automatically updated when any value in the row is updated by a transaction.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

type
When the type argument is SQL_BEST_ROWID, odbc_specialcolumns() returns the column or columns that uniquely identify each row in the table. When the type argument is SQL_ROWVER, odbc_specialcolumns() returns the column or columns in the specified table, if any, that are automatically updated by the data source when any value in the row is updated by any transaction.
catalog

Der Katalog ('Kennzeichner' in ODBC 2 Terminologie).

schema

Das Schema ('Besitzer' in ODBC 2 Terminologie).

table

The table.

scope

The scope, which orders the result set. One of SQL_SCOPE_CURROW, SQL_SCOPE_TRANSACTION or SQL_SCOPE_SESSION.

nullable

Determines whether to return special columns that can have a NULL value. One of SQL_NO_NULLS or SQL_NULLABLE .

Rückgabewerte

Returns an ODBC result identifier or false on failure.

The result set has the following columns:

  • SCOPE
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • PSEUDO_COLUMN
Treiber können zusätzliche Spalten melden.

The result set is ordered by SCOPE.

Siehe auch

  • odbc_tables() - Get the list of table names stored in a specific data source


Retrieve statistics about a table

  • « odbc_specialcolumns
  • odbc_tableprivileges »
  • PHP Manual
  • ODBC Funktionen
  • Retrieve statistics about a table

odbc_statistics

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_statistics — Retrieve statistics about a table

Beschreibung

odbc_statistics ( resource $odbc , string|null $catalog , string $schema , string $table , int $unique , int $accuracy ) : resource|false

Get statistics about a table and its indexes.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

catalog

Der Katalog ('Kennzeichner' in ODBC 2 Terminologie).

schema

Das Schema ('Besitzer' in ODBC 2 Terminologie).

table

The table name.

unique

The type of the index. One of SQL_INDEX_UNIQUE or SQL_INDEX_ALL.

accuracy

One of SQL_ENSURE or SQL_QUICK. The latter requests that the driver retrieve the CARDINALITY and PAGES only if they are readily available from the server.

Rückgabewerte

Returns an ODBC result identifierIm Fehlerfall wird false zurückgegeben..

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • NON_UNIQUE
  • INDEX_QUALIFIER
  • INDEX_NAME
  • TYPE
  • ORDINAL_POSITION
  • COLUMN_NAME
  • ASC_OR_DESC
  • CARDINALITY
  • PAGES
  • FILTER_CONDITION
Treiber können zusätzliche Spalten melden.

The result set is ordered by NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME and ORDINAL_POSITION.

Beispiele

Beispiel #1 List Statistics of a Table

<?php
$conn = odbc_connect($dsn, $user, $pass);
$statistics = odbc_statistics($conn, 'TutorialDB', 'dbo', 'TEST', SQL_INDEX_UNIQUE, SQL_QUICK);
while (($row = odbc_fetch_array($statistics))) {
    print_r($row);
    break; // further rows omitted for brevity
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [NON_UNIQUE] =>
    [INDEX_QUALIFIER] =>
    [INDEX_NAME] =>
    [TYPE] => 0
    [ORDINAL_POSITION] =>
    [COLUMN_NAME] =>
    [ASC_OR_DESC] =>
    [CARDINALITY] => 15
    [PAGES] => 3
    [FILTER_CONDITION] =>
)

Siehe auch

  • odbc_tables() - Get the list of table names stored in a specific data source


Lists tables and the privileges associated with each table

  • « odbc_statistics
  • odbc_tables »
  • PHP Manual
  • ODBC Funktionen
  • Lists tables and the privileges associated with each table

odbc_tableprivileges

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_tableprivileges — Lists tables and the privileges associated with each table

Beschreibung

odbc_tableprivileges ( resource $odbc , string|null $catalog , string $schema , string $table ) : resource|false

Lists tables in the requested range and the privileges associated with each table.

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

catalog

Der Katalog ('Kennzeichner' in ODBC 2 Terminologie).

schema

Das Schema ('Besitzer' in ODBC 2 Terminologie). Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

table

The name. Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

Rückgabewerte

An ODBC result identifierIm Fehlerfall wird false zurückgegeben..

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE
Treiber können zusätzliche Spalten melden.

The result set is ordered by TABLE_CAT, TABLE_SCHEM, TABLE_NAME, PRIVILEGE and GRANTEE.

Beispiele

Beispiel #1 List Privileges of a Table

<?php
$conn = odbc_connect($dsn, $user, $pass);
$privileges = odbc_tableprivileges($conn, 'SalesOrders', 'dbo', 'Orders');
while (($row = odbc_fetch_array($privileges))) {
    print_r($row);
    break; // further rows omitted for brevity
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [TABLE_CAT] => SalesOrders
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => Orders
    [GRANTOR] => dbo
    [GRANTEE] => dbo
    [PRIVILEGE] => DELETE
    [IS_GRANTABLE] => YES
)

Siehe auch

  • odbc_tables() - Get the list of table names stored in a specific data source


Get the list of table names stored in a specific data source

  • « odbc_tableprivileges
  • PDO »
  • PHP Manual
  • ODBC Funktionen
  • Get the list of table names stored in a specific data source

odbc_tables

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_tables — Get the list of table names stored in a specific data source

Beschreibung

odbc_tables ( resource $odbc , string|null $catalog = null , string|null $schema = null , string|null $table = null , string|null $types = null ) : resource|false

Lists all tables in the requested range.

To support enumeration of qualifiers, owners, and table types, the following special semantics for the catalog, schema, table, and table_type are available:

  • If catalog is a single percent character (%) and schema and table are empty strings, then the result set contains a list of valid qualifiers for the data source. (All columns except the TABLE_QUALIFIER column contain NULLs.)
  • If schema is a single percent character (%) and catalog and table are empty strings, then the result set contains a list of valid owners for the data source. (All columns except the TABLE_OWNER column contain NULLs.)
  • If table_type is a single percent character (%) and catalog, schema and table are empty strings, then the result set contains a list of valid table types for the data source. (All columns except the TABLE_TYPE column contain NULLs.)

Parameter-Liste

odbc

Eine ODBC-Verbindungsressource, siehe odbc_connect() für Details.

catalog

Der Katalog ('Kennzeichner' in ODBC 2 Terminologie).

schema

Das Schema ('Besitzer' in ODBC 2 Terminologie). Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

table

The name. Dieser Parameter akzeptiert die folgenden Suchmuster: % für 0 oder mehr Zeichen und _ für genau ein beliebiges Zeichen.

types

If table_type is not an empty string, it must contain a list of comma-separated values for the types of interest; each value may be enclosed in single quotes (') or unquoted. For example, 'TABLE','VIEW' or TABLE, VIEW. If the data source does not support a specified table type, odbc_tables() does not return any results for that type.

Rückgabewerte

Returns an ODBC result identifier containing the information Im Fehlerfall wird false zurückgegeben..

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • TABLE_TYPE
  • REMARKS
Treiber können zusätzliche Spalten melden.

The result set is ordered by TABLE_TYPE, TABLE_CAT, TABLE_SCHEM and TABLE_NAME.

Changelog

Version | Beschreibung
8.0.0 | schema, table and types are now nullable.

Beispiele

Beispiel #1 List Tables in a Catalog

<?php
$conn = odbc_connect($dsn, $user, $pass);
$tables = odbc_tables($conn, 'SalesOrders', 'dbo', '%', 'TABLE');
while (($row = odbc_fetch_array($tables))) {
    print_r($row);
    break; // further rows omitted for brevity
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [TABLE_CAT] => SalesOrders
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => Orders
    [TABLE_TYPE] => TABLE
    [REMARKS] =>
)

Siehe auch

  • odbc_tableprivileges() - Lists tables and the privileges associated with each table
  • odbc_columns() - Lists the column names in specified tables
  • odbc_specialcolumns() - Retrieves special columns
  • odbc_statistics() - Retrieve statistics about a table
  • odbc_procedures() - Get the list of procedures stored in a specific data source


PHP Data Objects

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Verbindungen und Verbindungsmanagement
  • Transaktionen und auto-commit
  • Prepared Statements und Stored Procedures
  • Fehler und Fehlerbehandlung
  • Large Objects (LOBs)
  • PDO — Die PDO-Klasse
    • PDO::beginTransaction — Initiates a transaction
    • PDO::commit — Commits a transaction
    • PDO::__construct — Creates a PDO instance representing a connection to a database
    • PDO::errorCode — Fetch the SQLSTATE associated with the last operation on the database handle
    • PDO::errorInfo — Fetch extended error information associated with the last operation on the database handle
    • PDO::exec — Führt ein SQL Statement aus und gibt die Zahl der betroffenen Zeilen zurück
    • PDO::getAttribute — Retrieve a database connection attribute
    • PDO::getAvailableDrivers — Return an array of available PDO drivers
    • PDO::inTransaction — Checks if inside a transaction
    • PDO::lastInsertId — Returns the ID of the last inserted row or sequence value
    • PDO::prepare — Prepares a statement for execution and returns a statement object
    • PDO::query — Executes an SQL statement, returning a result set as a PDOStatement object
    • PDO::quote — Quotes a string for use in a query
    • PDO::rollBack — Rolls back a transaction
    • PDO::setAttribute — Set an attribute
  • PDOStatement — Die PDOStatement-Klasse
    • PDOStatement::bindColumn — Bind a column to a PHP variable
    • PDOStatement::bindParam — Binds a parameter to the specified variable name
    • PDOStatement::bindValue — Binds a value to a parameter
    • PDOStatement::closeCursor — Closes the cursor, enabling the statement to be executed again
    • PDOStatement::columnCount — Returns the number of columns in the result set
    • PDOStatement::debugDumpParams — Dump an SQL prepared command
    • PDOStatement::errorCode — Fetch the SQLSTATE associated with the last operation on the statement handle
    • PDOStatement::errorInfo — Fetch extended error information associated with the last operation on the statement handle
    • PDOStatement::execute — Führt ein Prepared Statement aus
    • PDOStatement::fetch — Fetches the next row from a result set
    • PDOStatement::fetchAll — Returns an array containing all of the result set rows
    • PDOStatement::fetchColumn — Returns a single column from the next row of a result set
    • PDOStatement::fetchObject — Fetches the next row and returns it as an object
    • PDOStatement::getAttribute — Retrieve a statement attribute
    • PDOStatement::getColumnMeta — Returns metadata for a column in a result set
    • PDOStatement::nextRowset — Advances to the next rowset in a multi-rowset statement handle
    • PDOStatement::rowCount — Returns the number of rows affected by the last SQL statement
    • PDOStatement::setAttribute — Set a statement attribute
    • PDOStatement::setFetchMode — Set the default fetch mode for this statement
  • PDOException — Die Klasse PDOException
  • PDO-Treiber
    • CUBRID (PDO) — CUBRID Functions (PDO_CUBRID)
    • MS SQL Server (PDO) — Microsoft SQL Server and Sybase Functions (PDO_DBLIB)
    • Firebird (PDO) — Firebird Functions (PDO_FIREBIRD)
    • IBM (PDO) — IBM Functions (PDO_IBM)
    • Informix (PDO) — Informix Functions (PDO_INFORMIX)
    • MySQL (PDO) — MySQL Functions (PDO_MYSQL)
    • MS SQL Server (PDO) — Microsoft SQL Server Functions (PDO_SQLSRV)
    • Oracle (PDO) — Oracle Functions (PDO_OCI)
    • ODBC and DB2 (PDO) — ODBC and DB2 Functions (PDO_ODBC)
    • PostgreSQL (PDO) — PostgreSQL Functions (PDO_PGSQL)
    • SQLite (PDO) — SQLite Functions (PDO_SQLITE)


Einführung

Die PHP Data Objects-Erweiterung (PDO) stellt eine leichte, konsistente Schnittstelle bereit, um mit PHP auf Datenbanken zuzugreifen. Jeder Datenbanktreiber, der die PDO-Schnittstelle implementiert, kann spezifische Features als reguläre Funktionen der Erweiterung bereitstellen. Beachten Sie, dass Sie keine Funktionen der Datenbank mit PDO allein benutzen können. Sie müssen einen datenbankspezifischen PDO-Treiber benutzen, um auf eine Datenbank zuzugreifen.

PDO bietet eine Abstraktionsschicht für den Datenzugriff, das bedeutet, dass Sie, egal welche Datenbank Sie benutzen, dieselben Funktionen verwenden können, um Abfragen zu erstellen und Daten zu lesen. PDO bietet keine Abstraktion für Datenbanken. Es schreibt keine SQL-Abfragen um oder emuliert fehlende Features. Sie sollten eine komplette Abstraktionsschicht verwenden, wenn Sie diese Funktionalität benötigen.

PDO wird mit PHP 5.1 ausgeliefert und ist als PECL-Erweiterung für PHP 5.0 verfügbar. PDO benötigt die neuen OO-Features im Kern von PHP 5 und wird deswegen nicht mit früheren Versionen von PHP funktionieren.


Installation

PDO auf Unix-Systemen installieren

  1. PDO und der PDO_SQLITE Treiber sind seit PHP 5.1.0 standardmäßig aktiviert. Zusätzlich müssen Sie eventuell den PDO-Treiber für die Datenbank Ihrer Wahl aktivieren. Ziehen Sie die Dokumentation für datenbankspezifische PDO-Treiber zu Rate, um mehr darüber zu erfahren.

    Hinweis:

    Beachten Sie: Wenn Sie PDO als Shared Extension (nicht empfohlen) kompilieren, müssen alle PDO-Treiber nach PDO selbst geladen werden.

  2. Wenn PDO als Shared Module installiert wurde, muss die php.ini-Datei dahingehend geändert werden, dass die PDO-Erweiterung automatisch geladen wird, wenn PHP ausgeführt wird. Sie müssen dort auch alle datenbankspezifischen Treiber aktivieren. Versichern Sie sich, dass diese nach der Zeile mit pdo.so stehen, da PDO initialisiert werden muss, bevor die datenbankspezifischen Erweiterungen geladen werden können. Wenn Sie PDO und die datenbankspezifischen Erweiterungen statisch kompiliert haben, können Sie diesen Schritt überspringen.

    extension=pdo.so

Installation auf Windows

  1. PDO und alle gängigen Treiber werden mit PHP als Shared Module mitgeliefert und müssen nur durch Bearbeiten der Datei php.ini aktiviert werden:

    extension=php_pdo.dll

    Hinweis:

    Dieser Schritt ist seit PHP 5.3 nicht mehr notwendig, da für PDO keine DLL mehr benötigt wird.

  2. Als nächstes wählen Sie die datenbankspezifischen DLL-Dateien und laden sie entweder per dl() zur Laufzeit oder aktivieren sie in der Datei php.ini unterhalb von php_pdo.dll. Zum Beispiel:

    extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_informix.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

    Diese DLLs sollten im extension_dir des Systems vorhanden sein.

Hinweis:

Vergessen Sie nicht, dass nach Änderungen an der php.ini Datei PHP neu gestartet werden muss, damit neue Konfigurationsanweisungen wirken.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

PDO Configuration Options
Name | Standard | Veränderbar | Changelog
pdo.dsn.* |  | php.ini only |

Hier eine kurze Erklärung der Konfigurationsoptionen:

pdo.dsn.* string

Defines DSN alias. See PDO::__construct() for thorough explanation.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Warnung

PDO nutzt seit PHP 5.1 Klassen-Konstanten. Frühere Versionen nutzen globale Konstanten in der Form PDO_PARAM_BOOL.

PDO::PARAM_BOOL (int)
Stellt den Datentyp Boolean dar.
PDO::PARAM_NULL (int)
Stellt den Datentyp SQL-NULL dar.
PDO::PARAM_INT (int)
Stellt den Datentyp SQL-INTEGER dar.
PDO::PARAM_STR (int)
Stellt SQL-CHAR, VARCHAR und andere String-Datentypen dar.
PDO::PARAM_STR_NATL (int)
Ein Flag, das angibt, dass eine Zeichenkette den nationalen Zeichensatz verwendet. Verfügbar seit PHP 7.2.0.
PDO::PARAM_STR_CHAR (int)
Ein Flag, das angibt, dass eine Zeichenkette den regulären Zeichensatz verwendet. Verfügbar seit PHP 7.2.0.
PDO::PARAM_LOB (int)
Stellt den SQL-Datentyp LOB (large object) dar.
PDO::PARAM_STMT (int)
Stellt einen Datensatztyp dar. Wird derzeit von keinem Treiber unterstützt.
PDO::PARAM_INPUT_OUTPUT (int)
Legt fest, dass der Parameter ein INOUT-Parameter für eine Stored Procedure sein muss. Auf den Wert muss ein bitweises OR mit einem eindeutigen PDO::PARAM_*-Parameter ausgeführt werden.
PDO::FETCH_LAZY (int)
Legt fest, dass die Methode zum Abrufen von Daten jede Zeile als eigenständiges Objekt mit variablem Namen zurückgeben soll, welcher gleichlautend mit den Spaltennamen in der Ergebnismenge ist. PDO::FETCH_LAZY erstellt die variablen Objektnamen, sobald auf diese zugegriffen wird. Ungültig innerhalb von PDOStatement::fetchAll().
PDO::FETCH_ASSOC (int)
Legt fest, dass die Methode zum Abrufen von Daten jede Zeile in einem assoziativen Array zurückgibt, das mit den Spaltennamen aus der Ergebnismenge indiziert wird. Wenn die Ergebnismenge mehrere gleichlautende Spaltennamen enthält, gibt PDO::FETCH_ASSOC nur einen Wert pro Spaltenname zurück.
PDO::FETCH_NAMED (int)
Legt fest, dass die Methode zum Abrufen von Daten jede Zeile als ein Array mit dem Index des Spaltennamens der entsprechenden Ergebnismenge zurückgeben soll. Wenn die Ergebnismenge mehrere Spalten mit dem gleichen Namen besitzt, gibt PDO::FETCH_NAMED ein Array von Werten pro Spaltenname zurück.
PDO::FETCH_NUM (int)
Legt fest, dass die Methode zum Abrufen von Daten jede Zeile als Array zurückgeben soll, indiziert durch die Spaltennummer, wie sie in der entsprechenden Ergebnismenge zurückgegeben wird, beginnend bei Spalte 0.
PDO::FETCH_BOTH (int)
Legt fest, dass die Methode zum Abrufen von Daten jede Zeile als Array zurückgeben soll, das durch den Spaltennamen und die Spaltennummer indiziert ist, wie sie in der entsprechenden Ergebnismenge zurückgegeben werden, beginnend bei Spalte 0.
PDO::FETCH_OBJ (int)
Legt fest, dass die Methode zum Abrufen von Daten jede Zeile als ein Objekt mit Eigenschaftsnamen zurückgeben soll, die den in der Ergebnismenge zurückgegebenen Spaltennamen entsprechen.
PDO::FETCH_BOUND (int)
Legt fest, dass die Methode zum Abrufen von Daten TRUE zurückgeben soll und die Werte der Spalten in der Ergebnismenge den PHP-Variablen zuweist, an die sie mit der Methode PDOStatement::bindParam() oder der Methode PDOStatement::bindColumn() gebunden wurden.
PDO::FETCH_COLUMN (int)
Legt fest, dass die Methode zum Abrufen von Daten nur eine einzige angeforderte Spalte aus der nächsten Zeile in der Ergebnismenge zurückgeben soll.
PDO::FETCH_CLASS (int)
Legt fest, dass die Methode zum Abrufen von Daten eine neue Instanz der angeforderten Klasse zurückgeben soll, die die Spalten den benannten Eigenschaften der Klasse zuordnet.

Hinweis: Die magische __set()-Methode wird aufgerufen, wenn die Eigenschaft in der angeforderten Klasse nicht vorhanden ist

PDO::FETCH_INTO (int)
Legt fest, dass die Methode zum Abrufen von Daten eine vorhandene Instanz der angeforderten Klasse aktualisieren soll, indem die Spalten den benannten Eigenschaften der Klasse zugeordnet werden.
PDO::FETCH_FUNC (int)
Ermöglicht die ad-hoc Anpassung der Daten (nur gültig innerhalb von PDOStatement::fetchAll()).
PDO::FETCH_GROUP (int)
Gruppiert die Rückgabe nach den Werten. Üblicherweise in Verbindung mit PDO::FETCH_COLUMN oder PDO::FETCH_KEY_PAIR.
PDO::FETCH_UNIQUE (int)
Ruft nur eindeutige Werte abrufen.
PDO::FETCH_KEY_PAIR (int)
Liefert das Ergebnis von zwei Spalten als Array. Der Inhalt der ersten Spalte ist der Schlüssel und der Inhalt der zweiten Spalte ist der Wert. Verfügbar seit PHP 5.2.3.
PDO::FETCH_CLASSTYPE (int)
Ermittelt den Klassennamen aus dem Wert der ersten Spalte.
PDO::FETCH_SERIALIZE (int)
Ähnlich wie PDO::FETCH_INTO, liefert aber das Objekt als serialisierte Zeichenkette. Verfügbar seit PHP 5.1.0. Ab PHP 5.3.0 wird der Konstruktor nicht aufgerufen, wenn dieses Flag gesetzt ist.
PDO::FETCH_PROPS_LATE (int)
Ruft den Konstrutor auf bevor die Eigenschaften gesetzt werden. Verfügbar seit PHP 5.2.0
PDO::ATTR_AUTOCOMMIT (int)
Wenn dieser Wert false ist, versucht PDO, Autocommit zu deaktivieren, damit die Verbindung eine Transaktion starten kann.
PDO::ATTR_PREFETCH (int)
Durch Ändern der Prefetch-Puffergröße können Sie die Balance zwischen Speicherverbrauch und Datenbankgeschwindigkeit einstellen. Nicht alle Datenbank/Treiber-Kombinationen unterstützen die Größenänderung dieses Puffers. Je größer der Puffer ist, desto höher ist die Leistung, aber auch der Speicherverbrauch.
PDO::ATTR_TIMEOUT (int)
Legt den Timeout-Wert für die Kommunikation mit der Datenbank in Sekunden fest.
PDO::ATTR_ERRMODE (int)
Informationen zu diesem Attribut finden Sie im Abschnitt Fehler und Fehlerbehandlung.
PDO::ATTR_SERVER_VERSION (int)
Dieses Attribut ist schreibgeschützt; es gibt Informationen über die Version des Datenbankservers zurück, mit dem PDO verbunden ist.
PDO::ATTR_CLIENT_VERSION (int)
Dieses Attribut ist schreibgeschützt; es gibt Informationen über die Versionen der Client-Bibliotheken zurück, die der PDO-Treiber verwendet.
PDO::ATTR_SERVER_INFO (int)
Dieses Attribut ist schreibgeschützt; es gibt einige Metainformationen über den Datenbankserver zurück, mit dem PDO verbunden ist.
PDO::ATTR_CONNECTION_STATUS (int)
PDO::ATTR_CASE (int)
Erzwingt die Zuordnung von Spaltennamen zur Groß- oder Kleinschreibung, die durch die PDO::CASE_*-Konstanten festgelegt wird.
PDO::ATTR_CURSOR_NAME (int)
Liefert oder setzt den Namen, der für einen Cursor verwendet werden soll. Am nützlichsten bei der Verwendung von scrollbaren Cursorn und positionierten Aktualisierungen.
PDO::ATTR_CURSOR (int)
Wählt den Cursortyp aus. PDO unterstützt derzeit entweder PDO::CURSOR_FWDONLY oder PDO::CURSOR_SCROLL. Bleiben Sie bei PDO::CURSOR_FWDONLY, es sei denn, Sie wissen, dass Sie einen scrollbaren Cursor benötigen.
PDO::ATTR_DRIVER_NAME (string)
Gibt den Namen des Treibers zurück.

Beispiel #1 Die Verwendung von PDO::ATTR_DRIVER_NAME

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
  echo "Läuft auf MySQL; macht hier etwas MySQL-spezifisches\n";
}
?>

PDO::ATTR_ORACLE_NULLS (int)
Konvertiert leere Zeichenketten bei Datenabfragen in SQL-NULL-Werte.
PDO::ATTR_PERSISTENT (mixed)
Fordert eine persistente Verbindung an, anstatt eine neue Verbindung zu erstellen. Weitere Informationen zu diesem Attribut finden Sie im Abschnitt Verbindungen und Verbindungsmanagement.
PDO::ATTR_STATEMENT_CLASS (int)
Legt den Name der Klasse fest, die als Statement zurückgegeben wird.
PDO::ATTR_FETCH_CATALOG_NAMES (int)
Stellt jedem Spaltennamen, der in der Ergebnismenge zurückgegeben wird, den Namen des enthaltenden Katalogs voran. Der Katalogname und der Spaltenname werden durch einen Punkt (.) getrennt. Die Unterstützung dieses Attributs liegt auf der Treiberebene; es kann sein, dass es von Ihrem Treiber nicht unterstützt wird.
PDO::ATTR_FETCH_TABLE_NAMES (int)
Stellt jedem Spaltennamen, der in der Ergebnismenge zurückgegeben wird, den Namen der enthaltenden Tabelle voran. Der Tabellenname und der Spaltenname werden durch einen Punkt (.) getrennt. Die Unterstützung dieses Attributs liegt auf der Treiberebene; es kann sein, dass es von Ihrem Treiber nicht unterstützt wird.
PDO::ATTR_STRINGIFY_FETCHES (int)
Erzwingt, dass alle Werte als Zeichenkette abgerufen werden.
PDO::ATTR_MAX_COLUMN_LEN (int)
Legt die maximale Länge der Spaltennamen fest.
PDO::ATTR_DEFAULT_FETCH_MODE (int)
Verfügbar seit PHP 5.2.0.
PDO::ATTR_EMULATE_PREPARES (int)
Verfügbar seit PHP 5.1.3.
PDO::ATTR_DEFAULT_STR_PARAM (int)
Legt den Standard-Zeichenketten-Parametertypen fest; entweder PDO::PARAM_STR_NATL oder PDO::PARAM_STR_CHAR. Verfügbar seit PHP 7.2.0.
PDO::ERRMODE_SILENT (int)
Löst keinen Fehler und keine Ausnahme aus, wenn ein Fehler auftritt. Es wird erwartet, dass der Entwickler explizit auf Fehler prüft. Dies ist der Standardmodus. Weitere Informationen zu diesem Attribut finden Sie im Abschnitt Fehler und Fehlerbehandlung.
PDO::ERRMODE_WARNING (int)
Gibt eine PHP-E_WARNING-Meldung aus, wenn ein Fehler auftritt. Weitere Informationen zu diesem Attribut finden Sie im Abschnitt Fehler und Fehlerbehandlung.
PDO::ERRMODE_EXCEPTION (int)
Löst eine PDOException aus, wenn ein Fehler auftritt. Weitere Informationen zu diesem Attribut finden Sie im Abschnitt Fehler und Fehlerbehandlung.
PDO::CASE_NATURAL (int)
Belässt die Spaltennamen so, wie sie vom Datenbanktreiber zurückgegeben werden.
PDO::CASE_LOWER (int)
Erzwingt die Kleinschreibung von Spaltennamen.
PDO::CASE_UPPER (int)
Erzwingt die Großschreibung von Spaltennamen.
PDO::NULL_NATURAL (int)
PDO::NULL_EMPTY_STRING (int)
PDO::NULL_TO_STRING (int)
PDO::FETCH_ORI_NEXT (int)
Liefert die nächste Zeile aus der Ergebnismenge. Gilt nur für scrollbare Cursor.
PDO::FETCH_ORI_PRIOR (int)
Liefert die vorherige Zeile aus der Ergebnismenge. Gilt nur für scrollbare Cursor.
PDO::FETCH_ORI_FIRST (int)
Liefert die erste Zeile aus der Ergebnismenge. Gilt nur für scrollbare Cursor.
PDO::FETCH_ORI_LAST (int)
Liefert die vorherige Zeile aus der Ergebnismenge. Gilt nur für scrollbare Cursor.
PDO::FETCH_ORI_ABS (int)
Liefert die angeforderte Zeile anhand der Zeilennummer aus der Ergebnismenge. Gilt nur für scrollbare Cursor.
PDO::FETCH_ORI_REL (int)
Liefert die angeforderte Zeile an einer Position relativ zur aktuellen Position des Cursors aus der Ergebnismenge. Gilt nur für scrollbare Cursor.
PDO::CURSOR_FWDONLY (int)
Erzeugt ein PDOStatement-Objekt mit einem Nur-Vorwärts-Cursor. Dies ist die Standard-Cursor-Wahl, da es das schnellste und häufigste Datenzugriffsmuster in PHP ist.
PDO::CURSOR_SCROLL (int)
Erzeugt ein PDOStatement-Objekt mit einem scrollbaren Cursor. Übergeben Sie die Konstante PDO::FETCH_ORI_*, um die aus der Ergebnismenge abgerufenen Zeilen zu steuern.
PDO::ERR_NONE (string)
Entspricht dem SQLSTATE '00000', d.h. die SQL-Anweisung wurde erfolgreich und ohne Fehler oder Warnungen ausgegeben. Diese Konstante ist für die Unterstützung bei der Überprüfung von PDO::errorCode() oder PDOStatement::errorCode(), um festzustellen, ob ein Fehler aufgetreten ist. Normalerweise wissen Sie sowieso, ob dies der Fall ist, indem Sie den Rückgabewert der Methode untersuchen, die die Fehlerbedingung ausgelöst hat.
PDO::PARAM_EVT_ALLOC (int)
Ein Zuweisungsereignis (Allocation).
PDO::PARAM_EVT_FREE (int)
Ein Freigabe-Ereignis (Deallocation).
PDO::PARAM_EVT_EXEC_PRE (int)
Löst ein Ereignis vor der Ausführung einer vorbereiteten Anweisung aus.
PDO::PARAM_EVT_EXEC_POST (int)
Löst ein Ereignis nach der Ausführung einer vorbereiteten Anweisung aus.
PDO::PARAM_EVT_FETCH_PRE (int)
Löst ein Ereignis vor dem Abrufen eines Ergebnisses aus einer Ergebnismenge aus.
PDO::PARAM_EVT_FETCH_POST (int)
Löst ein Ereignis nach dem Abrufen eines Ergebnisses aus einer Ergebnismenge aus.
PDO::PARAM_EVT_NORMALIZE (int)
Löst ein Ereignis während der Registrierung eines gebundenen Parameters aus, was es dem Treiber ermöglicht, den Parameternamen zu normalisieren.
PDO::SQLITE_DETERMINISTIC (int)
Signalisiert, dass eine Funktion die mit PDO::sqliteCreateFunction() erzeugt wurde, deterministisch ist, d.h. dass sie immer das selbe Ergebnis liefert, wenn sie innerhalb der selben SQL-Anweisung mit den gleichen Parametern aufgerufen wird. (Verfügbar seit PHP 7.1.4.)


Verbindungen und Verbindungsmanagement

Verbindungen und Verwaltung der Verbindungen

Verbindungen werden durch das Erstellen von Instanzen der PDO-Basisklasse erzeugt. Es ist unerheblich, welchen Treiber Sie benutzen wollen. Sie benutzen immer den PDO-Klassennamen. Der Konstruktor erwartet Parameter zur Angabe der Datenbankquelle (auch bekannt als DSN) und optional für Benutzername und Passwort (falls vorhanden).

Beispiel #1 Mit MySQL verbinden

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

Wenn es Fehler bei der Verbindung gibt, wird eine Ausnahme vom Typ PDOException geworfen. Sie können die Ausnahme abfangen, wenn Sie sich selbst um die Fehlerbedingung kümmern wollen, oder Sie können es einer globalen Routine zur Ausnahmebehandlung überlassen, die Sie mit set_exception_handler() konfigurieren.

Beispiel #2 Verbindungsfehler behandeln

<?php
try {
   $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
   foreach ($dbh->query('SELECT * from FOO') as $row) {
      print_r($row);
   }
   $dbh = null;
} catch (PDOException $e) {
   print "Error!: " . $e->getMessage() . "<br/>";
   die();
}
?>

Warnung

Wenn Ihre Anwendung die vom PDO-Konstruktor geworfene Ausnahme nicht auffängt, ist die normale Vorgehensweise der Zend Engine, das Skript zu terminieren und einen Backtrace anzuzeigen. Dieser Backtrace wird wahrscheinlich alle Details der Datenbankverbindung enthüllen, inklusive Benutzername und Passwort. Sie sind also verantwortlich, diese Ausnahme aufzufangen, entweder explizit (mit einem catch-Block) oder implizit mit set_exception_handler().

Bei erfolgreicher Verbindung zur Datenbank wird eine Instanz der PDO-Klasse an Ihr Skript zurückgegeben. Die Verbindung bleibt während der Lebensdauer des PDO-Objekts aktiv. Um die Verbindung zu beenden, müssen Sie das Objekt löschen, indem Sie sicherstellen, dass alle Referenzen darauf gelöscht werden - das erreichen Sie, indem Sie der Variable, die das Objekt beinhaltet, null zuweisen. Wenn Sie das nicht explizit tun, schließt PHP die Verbindung automatisch, wenn Ihr Skript endet.

Hinweis: Gibt es noch weitere Referenzen auf dieses PDO-Exemplar (wie etwa von einem PDOStatement-Exemplar, oder von anderen Variablen, die dasselbe PDO-Exemplar referenzieren), müssen diese ebenfalls entfernt werden (zum Beispiel durch die Zuweisung von null an die Variable, die das PDOStatement referenziert).

Beispiel #3 Eine Verbindung schließen

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// hier die Verbindung nutzen
$sth = $dbh->query('SELECT * FROM foo');

// und nachdem das erledigt ist, wird sie geschlossen
$sth = null;
$dbh = null;
?>

Viele Webanwendungen profitieren von persistenten Verbindungen zum Datenbankserver. Persistente Verbindungen werden nicht am Ende des Skripts geschlossen, sondern werden gecacht und wiederverwendet, wenn ein anderes Skript eine Verbindung mit denselben Daten anfordert. Der Cache an persistenten Verbindungen erlaubt Ihnen, den Overhead zu vermeiden, wenn jedesmal eine neue Verbindung geöffnet wird, sobald ein Skript mit der Datenbank kommunizieren muss, was sich in einer schnelleren Anwendung widerspiegelt.

Beispiel #4 Persistente Verbindungen

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
  PDO::ATTR_PERSISTENT => true
));
?>

Der Wert der PDO::ATTR_PERSISTENT Option wird nach Boolean kovertiert (aktiviere/deaktiviere persistente Verbindungen), es sei denn es ist ein nicht-numerischer String; in diesem Fall ermöglicht es die Verwendung mehrerer persistenter Verbindungspools. Das ist nützlich, wenn unterschiedliche Verbindungen inkompatible Einstellungen verwenden, beispielsweise unterschiedliche Werte von PDO::MYSQL_ATTR_USE_BUFFERED_QUERY.

Hinweis:

Wenn Sie persistente Verbindungen verwenden wollen, müssen Sie PDO::ATTR_PERSISTENT im Array von Treiberoptionen setzen, das an den PDO-Konstruktor übergeben wird. Wenn Sie dieses Attribut mittels PDO::setAttribute() nach der Instanziierung des Objekts setzen, verwendet der Treiber keine persistenten Verbindungen.

Hinweis:

Wenn Sie den PDO-ODBC-Treiber benutzen und Ihre ODBC-Bibliotheken ODBC Connection Pooling unterstützen (unixODBC und Windows etwa, es könnte auch andere geben), dann wird empfohlen, dass sie keine persistenten PDO-Verbindungen benutzen, sondern das Cachen der Verbindungen der ODBC Connection Pooling-Schicht überlassen. Der ODBC Connection Pool wird mit anderen Modulen im Prozess geteilt. Wenn PDO also angewiesen wird die Verbindung zu cachen, wird diese Verbindung nie dem ODBC Connection Pool zurückgegeben, was darin resultiert, dass zusätzliche Verbindungen aufgebaut werden, um jene anderen Module zu bedienen.


Transaktionen und auto-commit

Jetzt, wo Sie via PDO verbunden sind, müssen Sie sich bewusst machen, wie PDO Transaktionen verwaltet, bevor Sie anfangen, Abfragen auszuführen. Falls Sie noch nie mit Transaktionen zu tun hatten, diese bieten 4 wichtige Features: Atomizität, Konsistenz (Consistency), Isolation und Dauerhaftigkeit (Durability) (ACID). Einfach gesagt wird alles in einer Transaktion, auch wenn es in Einzelschritten ausgeführt wird, garantiert in sicherer Weise in die Datenbank eingetragen, ohne Beeinträchtigung durch andere Verbindungen, wenn es abgeschickt wird. Aktivitäten in Transaktionen können auch automatisch annulliert werden (wenn Sie es noch nicht abgeschickt haben), was Fehlerbehandlung in Ihren Scripts einfacher macht.

Transaktionen werden typischerweise implementiert, indem Ihre Menge an Änderungen "aufgespart" wird und dann in einem Rutsch abgearbeitet werden. Das hat den netten Nebeneffekt, dass die Effizienz der Aktualisierungen drastisch erhöht wird. In anderen Worten können Transaktionen Ihre Scripts schneller und möglicherweise auch robuster machen. Aber Sie müssen sie korrekt verwenden, um davon zu profitieren.

Unglücklicherweise unterstützt nicht jede Datenbank Transaktionen, deswegen muss PDO in einem "auto-commit" genannten Modus laufen, wenn Sie die Verbindung zum ersten Mal öffnen. "Auto-commit" bedeutet, dass jede Abfrage, die Sie ausführen ihre eigene implizite Transaktion besitzt, wenn die Datenbank das unterstützt, oder keine Transaktion, wenn die Datenbank keine Transaktionen unterstützt. Wenn Sie eine Transaktion benötigen, müssen Sie eine mit der Methode PDO::beginTransaction() initiieren. Wenn der zu Grunde liegende Treiber keine Transaktionen unterstützt, wird eine PDOException geworfen (unbeachtet Ihrer Einstellungen zur Fehlerbehandlung: dies ist immer eine ernste Fehlerbedingung). Wenn Sie dann in einer Transaktion sind, können Sie PDO::commit() oder PDO::rollBack() benutzen, um die Transaktion abzuschließen, abhängig vom Erfolg des Codes, den Sie während der Transaktion ausgeführt haben.

Warnung

PDO überprüft nur auf Treiberebene auf Transaktionsfähigkeit. Wenn bestimmte Laufzeitbedingunen ergeben, dass Transaktionen nicht verfügbar sind, wird PDO::beginTransaction() trotzdem ohne Fehler true zurückgeben, wenn der Server die Anfrage zum Start einer Transaktion akzeptiert.

Ein Beispiel wäre es, Transaktionen auf MyISAM-Tabellen in einer MySQL-Datenbank zu verwenden

Wenn das Script endet oder die Verbindung im Begriff ist, geschlossen zu werden und Sie eine Transaktion ausstehen haben, wird PDO automatisch einen Rollback durchführen. Dies ist eine Sicherheitsmaßnahme, um Inkonsistenzen in dem Fall, dass das Script unerwartet beendet wird, zu vermeiden - wenn Sie die Transaktion nicht explizit ausgeführt haben, wird angenommen, dass etwas schiefgegangen ist, deswegen wird zur Sicherheit Ihrer Daten ein Rollback durchgeführt.

Warnung

Der automatische Rollback wird nur durchgeführt, wenn Sie die Transaktion per PDO::beginTransaction() starten. Wenn Sie manuell eine Abfrage ausführen, die eine Transaktion startet, kann PDO nichts davon wissen und kann deswegen auch keinen Rollback durchführen, wenn etwas schiefgeht.

Beispiel #1 Mehrere Abfragen in einer Transaktion

Im folgenden Beispiel nehmen wir an, dass wir einen Satz von Einträgen für einen neuen Angestellten eintragen wollen, dem die ID-Nummer 23 zugeordnet wurde. Zusätzlich zur Angabe der Basisdaten für diese Person müssen wir auch ihr Gehalt festhalten. Es ist ziemlich einfach, zwei getrennte Aktualisierungen durchzuführen, aber indem wir sie in PDO::beginTransaction() und PDO::commit() einschließen, garantieren wir, dass niemand anderes diese Änderungen sieht, bis sie komplett sind. Wenn etwas schiefgeht, wird der catch-Block alle seit Beginn der Transaktion durchgeführten Änderungen rückgängig machen und dann eine Fehlermeldung ausgeben.

<?php
try {
  $dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
      array(PDO::ATTR_PERSISTENT => true));
  echo "Connected\n";
} catch (Exception $e) {
  die("Unable to connect: " . $e->getMessage());
}

try {
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $dbh->beginTransaction();
  $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
  $dbh->exec("insert into salarychange (id, amount, changedate)
      values (23, 50000, NOW())");
  $dbh->commit();

} catch (Exception $e) {
  $dbh->rollBack();
  echo "Failed: " . $e->getMessage();
}
?>

Sie sind nicht darauf beschränkt, Änderungen in einer Transaktion durchzuführen. Sie können auch komplexe Abfragen ausführen um Daten zu erhalten, und diese Informationen etwa dazu benutzen, mehr Änderungen und Abfragen zu erzeugen. Während die Transaktion aktiv ist, kann garantiert niemand anderes Änderungen durchführen, während Sie bei der Arbeit sind. Um ehrlich zu sein, stimmt das nicht 100%, aber es ist für den Anfang ausreichend, falls Sie noch nie von Transaktionen gehört haben.


Prepared Statements und Stored Procedures

Viele der ausgereifteren Datenbanken unterstützen das Konzept der Prepared Statements. Was ist das? Man kann sie sich als eine Art von kompiliertem Template für SQL das eine Anwendung ausführen will vorstellen, das durch variable Parameter angepasst werden kann. Prepared Statements haben zwei wichtige Vorteile:

  • Die Abfrage muss nur einmal geparst (oder vorbereitet) werden, kann dann aber mehrere Male mit denselben oder anderen Parametern ausgeführt werden. Wenn die Abfrage vorbereitet wird, kann die Datenbank ihre Vorgehensweise zur Ausführung der Abfrage analysieren, kompilieren und optimieren. Für komplexe Abfragen kann dieser Vorgang genug Zeit benötigen, dass es eine Anwendung merklich verlangsamt, wenn dieselbe Abfrage oft mit verschiedenen Parametern wiederholt wird. Mit einem Prepared Statement vermeidet die Anwendung den Zyklus der Analyse/Kompilierung/Optimierung. Kurz gesagt benötigen Prepared Statements weniger Ressourcen und laufen deswegen schneller.
  • Die Parameter für Prepared Statements müssen nicht maskiert werden. Der Treiber übernimmt das automatisch. Wenn eine Anwendung ausschließlich Prepared Statements benutzt, kann sich der Entwickler sicher sein, dass keine SQL-Injection auftreten wird. (Wenn aber trotzdem andere Teile der Abfrage aus nicht zuverlässigen Eingaben generiert werden, ist dies immer noch möglich.)

Prepared Statements sind so nützlich, dass sie das einzige Feature sind, das PDO auch für Treiber emulieren wird, die diese nicht unterstützen. Das garantiert, dass eine Anwendung unabhängig von den Möglichkeiten der Datenbank dieselbe Art des Datenzugriffs nutzen kann.

Beispiel #1 Wiederholte Inserts mit Prepared Statements

Dieses Beispiel führt eine INSERT-Abfrage durch, in der ein name und ein value für die benannten Platzhalter eingesetzt werden.

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// eine Zeile einfügen
$name = 'one';
$value = 1;
$stmt->execute();

// eine weitere Zeile mit anderen Werten einfügen
$name = 'two';
$value = 2;
$stmt->execute();
?>

Beispiel #2 Wiederholte Inserts mit Prepared Statements

Dieses Beispiel führt eine INSERT-Abfrage durch, in der ein name und ein value für die positionsabhängigen ?-Platzhalter eingesetzt werden.

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

// eine Zeile einfügen
$name = 'one';
$value = 1;
$stmt->execute();

// eine weitere Zeile mit anderen Werten einfügen
$name = 'two';
$value = 2;
$stmt->execute();
?>

Beispiel #3 Abfragen von Daten mit Prepared Statements

Dieses Beispiel ruft Daten basierend auf einem Schlüsselwert ab, der von einem Formular geliefert wird. Die Benutzereingabe wird automatisch maskiert, deswegen gibt es kein Risiko eines SQL-Injection-Angriffs.

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
  while ($row = $stmt->fetch()) {
    print_r($row);
  }
}
?>

Beispiel #4 Eine Stored Procedure mit einem Ausgabeparameter aufrufen

Wenn es der Datenbanktreiber unterstützt, kann eine Anwendung auch Parameter für die Ausgabe einführen, ähnlich der Eingabe. Ausgabeparameter werden typischerweise benutzt, um Werte von Stored Procedures abzurufen. Ausgabeparameter sind etwas komplexer in der Verwendung als Eingabeparameter, weil die Entwickler wissen muss, wie groß ein gegebener Parameter sein könnte, wenn sie ihn einführen. Wenn der Wert sich als größer herausstellt als die vorgeschlagene Größe, wird eine Fehlermeldung erzeugt.

<?php
$stmt = $dbh->prepare("CALL sp_returns_string(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);

// Aufruf der Stored Procedure
$stmt->execute();

print "Rückgabewert der Stored Procedure: $return_value\n";
?>

Beispiel #5 Eine Stored Procedure mit einem Eingabe-/Ausgabe-Parameter aufrufen

Entwickler können auch Parameter angeben, die Werte für Eingabe und Ausgabe enthalten. Die Syntax ist ähnlich den Ausgabeparametern. In diesem nächsten Beispiel wird die Zeichenkette 'hallo' der Stored Procedure übergeben. Wenn diese etwas zurückgibt, wird 'hallo' durch den Rückgabewert der Stored Procedure ersetzt.

<?php
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value = 'hallo';
$stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);

// Aufruf der Stored Procedure
$stmt->execute();

print "Rückgabewert der Stored Procedure: $value\n";
?>

Beispiel #6 Ungültige Verwendung von Platzhaltern

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE '%?%'");
$stmt->execute(array($_GET['name']));

// Platzhalter müssen anstelle des ganzen Wertes verwendet werden
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->execute(array("%$_GET[name]%"));
?>


Fehler und Fehlerbehandlung

PDO bietet Ihnen die Wahl unter 3 verschiedenen Strategien zur Fehlerbehandlung, um Ihrem Stil der Anwendungsentwicklung gerecht zu werden.

  • PDO::ERRMODE_SILENT

    Das ist die Standardmethode. PDO setzt einfach den Fehler-Code, damit Sie ihn mit den Methoden PDO::errorCode() und PDO::errorInfo() sowohl im Statement- als auch im Datenbank-Objekt überprüfen können. Wenn der Fehler aus einem Aufruf eines Statement-Objekts hervorging, würden Sie die Methoden PDOStatement::errorCode() oder PDOStatement::errorInfo() des Objekts aufrufen. Wenn der Fehler aus einem Aufruf des Datenbank-Objekts hervorging, würden Sie diese Methoden des Datenbank-Objekts aufrufen.

  • PDO::ERRMODE_WARNING

    Zusätzlich zum Setzen des Fehler-Codes wird PDO eine traditionelle E_WARNING-Nachricht ausgeben. Diese Einstellung ist nützlich während des Debuggens/Testens, wenn Sie sehen wollen, welche Probleme aufgetreten sind, ohne den Ablauf der Anwendung zu unterbrechen.

  • PDO::ERRMODE_EXCEPTION

    Zusätzlich zum Setzen des Fehler-Codes wirft PDO eine PDOException und setzt deren Eigenschaften so, dass sie den Fehler-Code und Fehlerinformationen widergeben. Diese Einstellung ist auch nützlich während des Debuggens, da sie das Script am Ort des Fehlers gewissermaßen "sprengt" und sehr schnell mögliche Problemstellen in Ihrem Code aufzeigt. (Zur Erinnerung: Transaktionen bekommen automatisch einen Rollback, wenn eine Ausnahme das Script beendet.)

    Diese Einstellung ist auch nützlich, da Sie ihre Fehlerbehandlung klarer als mit traditionellen PHP-Warnungen strukturieren können und mit weniger Code und Verschachtelung als im stillen Modus mit expliziter Überprüfung des Rückgabewertes jedes einzelnen Datenbankaufrufes.

    Unter Ausnahmen finden Sie weitere Informationen über Ausnahmen in PHP.

PDO benutzt Fehler-Codes nach SQL-92 SQLSTATE. Individuelle PDO-Treiber sind selbst verantwortlich, ihre nativen Fehler-Codes in die entsprechenden SQLSTATE-Pendants umzuwandeln. Die Methode PDO::errorCode() gibt einen einzelnen SQLSTATE-Code zurück. Wenn Sie genauere Informationen über einen Fehler benötigen, bietet PDO auch die Methode PDO::errorInfo(), die ein Array zurückgibt, das den SQLSTATE-Code, den treiberspezifischen Fehler-Code und die treiberspezifische Fehlermeldung enthält.

Beispiel #1 Eine PDO Instanz erstellen und den Error Mode setzen

<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Verbindung fehlgeschlagen: ' . $e->getMessage();
}

?>

Hinweis:

PDO::__construct() wirft immer eine PDOException wenn die Verbindung fehlschlägt unabhängig davon welcher PDO::ATTR_ERRMODE gerade eingestellt ist. Nicht abgefangene Exceptions sind fatal.

Beispiel #2 Erzeugen eines PDO Exemplars und setzen des Fehlermodus per Konstruktor

<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'googleguy';
$password = 'googleguy';

/*
    Die Verwendung von try/catch um den Konstruktor ist berechtigt, auch wenn
    wir ERRMODE auf WARNING setzen, da PDO::__construct immer eine PDOException
    auslöst, wenn die Verbindung fehlschlägt.
*/
try {
    $dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
} catch (PDOException $e) {
    echo 'Verbindung fehlgeschlagen: ' . $e->getMessage();
    exit;
}

// Dies wird PDO veranlassen einen Fehler der Stufe E_WARNING anstelle einer
// Exception auszulösen (falls die Tabelle nicht existiert)
$dbh->query("SELECT wrongcolumn FROM wrongtable");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Warning: PDO::query(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.wrongtable' doesn't exist in
/tmp/pdo_test.php on line 18


Large Objects (LOBs)

Es könnte an irgendeinem Punkt in Ihrer Anwendung passieren, dass Sie eine "große" Menge an Daten in Ihrer Datenbank ablegen müssen. Groß bedeutet typischerweise "etwa 4 kb oder mehr", obwohl manche Datenbanken spielend bis zu 32 kb bearbeiten können, bevor das als "groß" zählt. Large Objects können entweder textueller oder binärer Natur sein. PDO erlaubt Ihnen, mit diesem großen Datentyp zu arbeiten, indem Sie PDO::PARAM_LOB als Typ in Ihren Methodenaufrufen von PDOStatement::bindParam() oder PDOStatement::bindColumn() benutzen. PDO::PARAM_LOB veranlasst PDO, die Daten als Stream zu behandeln, so dass Sie diese mit Hilfe der PHP Streams-API bearbeiten können.

Beispiel #1 Ein Bild aus einer Datenbank anzeigen

Dieses Beispiel weist das LOB der Variable namens $lob zu und sendet es mittels fpassthru() an den Browser. Weil das LOB als Stream dargestellt wird, können Funktionen wie fgets(), fread() und stream_get_contents() damit benutzt werden.

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("select contenttype, imagedata from images where id=?");
$stmt->execute(array($_GET['id']));
$stmt->bindColumn(1, $type, PDO::PARAM_STR, 256);
$stmt->bindColumn(2, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

header("Content-Type: $type");
fpassthru($lob);
?>

Beispiel #2 Ein Bild in eine Datenbank einfügen

Dieses Beispiel öffnet eine Datei und übergibt das File-Handle an PDO, damit sie als LOB eingefügt wird. PDO wird sein Möglichstes tun, den Inhalt der Datei auf möglichst effiziente Weise in die Datenbank zu bekommen.

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");
$id = get_new_id(); // Eine Funktion zum Allokieren der neuen ID

// Wir nehmen an, das Skript läuft als Teil eines Datei-Upload-Formulars
// Sie finden weitere Informationen in der PHP-Dokumentation

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>

Beispiel #3 Ein Bild in eine Datenbank einfügen: Oracle

Oracle erfordert eine leicht unterschiedliche Syntax, um ein LOB aus einer Datei einzufügen. Es ist auch unumgänglich, dass Sie diesen Insert innerhalb einer Transaktion durchführen, andernfalls wird Ihr frisch eingefügtes LOB mit einer Länge von 0 als Teil des impliziten Commits, der beim Ausführen der Abfrage passiert, gespeichert.

<?php
$db = new PDO('oci:', 'scott', 'tiger');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) " .
  "VALUES (?, ?, EMPTY_BLOB()) RETURNING imagedata INTO ?");
$id = get_new_id(); // Eine Funktion zum Allokieren einer neuen ID

// Wir nehmen an, das Skript läuft als Teil eines Datei-Upload-Formulars
// Sie finden weitere Informationen in der PHP-Dokumentation

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>


Die PDO-Klasse

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

Einführung

Repräsentiert eine Verbindung zwischen PHP und einem Datenbankserver.

Klassenbeschreibung

PDO {
public __construct ( string $dsn , string $username = ? , string $passwd = ? , array $options = ? )
public beginTransaction ( ) : bool
public commit ( ) : bool
public errorCode ( ) : string
public errorInfo ( ) : array
public exec ( string $statement ) : int
public getAttribute ( int $attribute ) : mixed
public static getAvailableDrivers ( ) : array
public inTransaction ( ) : bool
public lastInsertId ( string $name = null ) : string
public prepare ( string $statement , array $driver_options = array() ) : PDOStatement
public query ( string $statement ) : PDOStatement
public quote ( string $string , int $parameter_type = PDO::PARAM_STR ) : string
public rollBack ( ) : bool
public setAttribute ( int $attribute , mixed $value ) : bool
}

Inhaltsverzeichnis

  • PDO::beginTransaction — Initiates a transaction
  • PDO::commit — Commits a transaction
  • PDO::__construct — Creates a PDO instance representing a connection to a database
  • PDO::errorCode — Fetch the SQLSTATE associated with the last operation on the database handle
  • PDO::errorInfo — Fetch extended error information associated with the last operation on the database handle
  • PDO::exec — Führt ein SQL Statement aus und gibt die Zahl der betroffenen Zeilen zurück
  • PDO::getAttribute — Retrieve a database connection attribute
  • PDO::getAvailableDrivers — Return an array of available PDO drivers
  • PDO::inTransaction — Checks if inside a transaction
  • PDO::lastInsertId — Returns the ID of the last inserted row or sequence value
  • PDO::prepare — Prepares a statement for execution and returns a statement object
  • PDO::query — Executes an SQL statement, returning a result set as a PDOStatement object
  • PDO::quote — Quotes a string for use in a query
  • PDO::rollBack — Rolls back a transaction
  • PDO::setAttribute — Set an attribute


Initiates a transaction

  • « PDO
  • PDO::commit »
  • PHP Manual
  • PDO
  • Initiates a transaction

PDO::beginTransaction

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::beginTransaction — Initiates a transaction

Beschreibung

public PDO::beginTransaction ( ) : bool

Turns off autocommit mode. While autocommit mode is turned off, changes made to the database via the PDO object instance are not committed until you end the transaction by calling PDO::commit(). Calling PDO::rollBack() will roll back all changes to the database and return the connection to autocommit mode.

Some databases, including MySQL, automatically issue an implicit COMMIT when a database definition language (DDL) statement such as DROP TABLE or CREATE TABLE is issued within a transaction. The implicit COMMIT will prevent you from rolling back any other changes within the transaction boundary.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Throws a PDOException if there is already a transaction started or the driver does not support transactions.

Hinweis: An exception is raised even when the PDO::ATTR_ERRMODE attribute is not PDO::ERRMODE_EXCEPTION.

Beispiele

Beispiel #1 Roll back a transaction

The following example begins a transaction and issues two statements that modify the database before rolling back the changes. On MySQL, however, the DROP TABLE statement automatically commits the transaction so that none of the changes in the transaction are rolled back.

<?php
/* Begin a transaction, turning off autocommit */
$dbh->beginTransaction();

/* Change the database schema and data */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* Recognize mistake and roll back changes */
$dbh->rollBack();

/* Database connection is now back in autocommit mode */
?>

Siehe auch

  • PDO::commit() - Commits a transaction
  • PDO::rollBack() - Rolls back a transaction
  • Transactions and auto-commit


Commits a transaction

  • « PDO::beginTransaction
  • PDO::__construct »
  • PHP Manual
  • PDO
  • Commits a transaction

PDO::commit

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::commit — Commits a transaction

Beschreibung

public PDO::commit ( ) : bool

Commits a transaction, returning the database connection to autocommit mode until the next call to PDO::beginTransaction() starts a new transaction.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Throws a PDOException if there is no active transaction.

Hinweis: An exception is raised even when the PDO::ATTR_ERRMODE attribute is not PDO::ERRMODE_EXCEPTION.

Beispiele

Beispiel #1 Committing a basic transaction

<?php
/* Begin a transaction, turning off autocommit */
$dbh->beginTransaction();

/* Insert multiple records on an all-or-nothing basis */
$sql = 'INSERT INTO fruit
    (name, colour, calories)
    VALUES (?, ?, ?)';

$sth = $dbh->prepare($sql);

foreach ($fruits as $fruit) {
    $sth->execute(array(
        $fruit->name,
        $fruit->colour,
        $fruit->calories,
    ));
}

/* Commit the changes */
$dbh->commit();

/* Database connection is now back in autocommit mode */
?>

Beispiel #2 Committing a DDL transaction

<?php
/* Begin a transaction, turning off autocommit */
$dbh->beginTransaction();

/* Change the database schema */
$sth = $dbh->exec("DROP TABLE fruit");

/* Commit the changes */
$dbh->commit();

/* Database connection is now back in autocommit mode */
?>

Hinweis: Not all databases will allow transactions to operate on DDL statements: some will generate errors, whereas others (including MySQL) will automatically commit the transaction after the first DDL statement has been encountered.

Siehe auch

  • PDO::beginTransaction() - Initiates a transaction
  • PDO::rollBack() - Rolls back a transaction
  • Transactions and auto-commit


Creates a PDO instance representing a connection to a database

  • « PDO::commit
  • PDO::errorCode »
  • PHP Manual
  • PDO
  • Creates a PDO instance representing a connection to a database

PDO::__construct

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::__construct — Creates a PDO instance representing a connection to a database

Beschreibung

public PDO::__construct ( string $dsn , string $username = ? , string $passwd = ? , array $options = ? )

Creates a PDO instance to represent a connection to the requested database.

Parameter-Liste

dsn

The Data Source Name, or DSN, contains the information required to connect to the database.

In general, a DSN consists of the PDO driver name, followed by a colon, followed by the PDO driver-specific connection syntax. Further information is available from the PDO driver-specific documentation.

The dsn parameter supports three different methods of specifying the arguments required to create a database connection:

Driver invocation

dsn contains the full DSN.

URI invocation

dsn consists of uri: followed by a URI that defines the location of a file containing the DSN string. The URI can specify a local file or a remote URL.

uri:file:///path/to/dsnfile

Aliasing

dsn consists of a name name that maps to pdo.dsn.name in php.ini defining the DSN string.

Hinweis:

The alias must be defined in php.ini, and not .htaccess or httpd.conf

username

The user name for the DSN string. This parameter is optional for some PDO drivers.

passwd

The password for the DSN string. This parameter is optional for some PDO drivers.

options

A key=>value array of driver-specific connection options.

Rückgabewerte

Returns a PDO object on success.

Fehler/Exceptions

PDO::__construct() throws a PDOException if the attempt to connect to the requested database fails.

Beispiele

Beispiel #1 Create a PDO instance via driver invocation

<?php
/* Connect to a MySQL database using driver invocation */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>

Beispiel #2 Create a PDO instance via URI invocation

The following example assumes that the file /usr/local/dbconnect exists with file permissions that enable PHP to read the file. The file contains the PDO DSN to connect to a DB2 database through the PDO_ODBC driver:

odbc:DSN=SAMPLE;UID=john;PWD=mypass

The PHP script can then create a database connection by simply passing the uri: parameter and pointing to the file URI:

<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>

Beispiel #3 Create a PDO instance using an alias

The following example assumes that php.ini contains the following entry to enable a connection to a MySQL database using only the alias mydb:

[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php
/* Connect to an ODBC database using an alias */
$dsn = 'mydb';
$user = '';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>


Fetch the SQLSTATE associated with the last operation on the database handle

  • « PDO::__construct
  • PDO::errorInfo »
  • PHP Manual
  • PDO
  • Fetch the SQLSTATE associated with the last operation on the database handle

PDO::errorCode

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::errorCode — Fetch the SQLSTATE associated with the last operation on the database handle

Beschreibung

public PDO::errorCode ( ) : string

Rückgabewerte

Returns an SQLSTATE, a five characters alphanumeric identifier defined in the ANSI SQL-92 standard. Briefly, an SQLSTATE consists of a two characters class value followed by a three characters subclass value. A class value of 01 indicates a warning and is accompanied by a return code of SQL_SUCCESS_WITH_INFO. Class values other than '01', except for the class 'IM', indicate an error. The class 'IM' is specific to warnings and errors that derive from the implementation of PDO (or perhaps ODBC, if you're using the ODBC driver) itself. The subclass value '000' in any class indicates that there is no subclass for that SQLSTATE.

PDO::errorCode() only retrieves error codes for operations performed directly on the database handle. If you create a PDOStatement object through PDO::prepare() or PDO::query() and invoke an error on the statement handle, PDO::errorCode() will not reflect that error. You must call PDOStatement::errorCode() to return the error code for an operation performed on a particular statement handle.

Returns null if no operation has been run on the database handle.

Beispiele

Beispiel #1 Retrieving an SQLSTATE code

<?php
/* Provoke an error -- the BONES table does not exist */
$dbh->exec("INSERT INTO bones(skull) VALUES ('lucy')");

echo "\nPDO::errorCode(): ", $dbh->errorCode();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

PDO::errorCode(): 42S02

Siehe auch

  • PDO::errorInfo() - Fetch extended error information associated with the last operation on the database handle
  • PDOStatement::errorCode() - Fetch the SQLSTATE associated with the last operation on the statement handle
  • PDOStatement::errorInfo() - Fetch extended error information associated with the last operation on the statement handle


Fetch extended error information associated with the last operation on the database handle

  • « PDO::errorCode
  • PDO::exec »
  • PHP Manual
  • PDO
  • Fetch extended error information associated with the last operation on the database handle

PDO::errorInfo

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::errorInfo — Fetch extended error information associated with the last operation on the database handle

Beschreibung

public PDO::errorInfo ( ) : array

Rückgabewerte

PDO::errorInfo() returns an array of error information about the last operation performed by this database handle. The array consists of at least the following fields:

Element | Information
0 | SQLSTATE error code (a five characters alphanumeric identifier defined in the ANSI SQL standard).
1 | Driver-specific error code.
2 | Driver-specific error message.

Hinweis:

If the SQLSTATE error code is not set or there is no driver-specific error, the elements following element 0 will be set to null.

PDO::errorInfo() only retrieves error information for operations performed directly on the database handle. If you create a PDOStatement object through PDO::prepare() or PDO::query() and invoke an error on the statement handle, PDO::errorInfo() will not reflect the error from the statement handle. You must call PDOStatement::errorInfo() to return the error information for an operation performed on a particular statement handle.

Beispiele

Beispiel #1 Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database

<?php
/* Provoke an error -- bogus SQL syntax */
$stmt = $dbh->prepare('bogus sql');
if (!$stmt) {
    echo "\nPDO::errorInfo():\n";
    print_r($dbh->errorInfo());
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

PDO::errorInfo():
Array
(
    [0] => HY000
    [1] => 1
    [2] => near "bogus": syntax error
)

Siehe auch

  • PDO::errorCode() - Fetch the SQLSTATE associated with the last operation on the database handle
  • PDOStatement::errorCode() - Fetch the SQLSTATE associated with the last operation on the statement handle
  • PDOStatement::errorInfo() - Fetch extended error information associated with the last operation on the statement handle


Führt ein SQL Statement aus und gibt die Zahl der betroffenen Zeilen zurück

  • « PDO::errorInfo
  • PDO::getAttribute »
  • PHP Manual
  • PDO
  • Führt ein SQL Statement aus und gibt die Zahl der betroffenen Zeilen zurück

PDO::exec

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::exec — Führt ein SQL Statement aus und gibt die Zahl der betroffenen Zeilen zurück

Beschreibung

public PDO::exec ( string $statement ) : int

PDO::exec() führt ein SQL Statement aus und gibt die Anzahl der betroffenen Zeilen zurück.

PDO::exec() gibt nicht die Ergebnisse eines SELECT Statements zurück. Um diese zu erhalten kann entweder PDO::query() genutzt werden, oder ein ein PDOStatement, welches über PDO::prepare() erstellt und über PDOStatement::execute() ausgeführt wird.

Parameter-Liste

statement

Das SQL Statement, welches ausgeführt werden soll.

Alle Usereingaben in diesem Query müssen maskiert werden.

Rückgabewerte

PDO::exec() gibt die Anzahl von Zeilen zurück, welche durch diese Abfrage geändert oder gelöscht wurden. Wenn keine Zeilen geändert wurden, gibt PDO::exec() 0 zurück.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Das folgende Beispiel verlässt sich fälschlicherweise auf den Rückgabewert von PDO::exec(), weswegen ein Statement, welches 0 Zeilen ändert, einen Aufruf von die() nach sich zieht:

<?php
$db->exec() or die(print_r($db->errorInfo(), true));  // unrichtig
?>

Beispiele

Beispiel #1 Ein DELETE Statement ausführen

Führt ein DELETE Statement ohne WHERE-Klausel aus, und gibt die Anzahl der gelöschten Zeilen aus.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

/* Lösche alle Zeilen aus der FRUIT Tabelle */
$count = $dbh->exec("DELETE FROM fruit");

/* Und gebe die Anzahl an gelöschten Zeilen zurück */
echo "$count Zeilen wurden gelöscht.\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

10 Zeilen wurden gelöscht.

Siehe auch

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDO::query() - Executes an SQL statement, returning a result set as a PDOStatement object
  • PDOStatement::execute() - Führt ein Prepared Statement aus


Retrieve a database connection attribute

  • « PDO::exec
  • PDO::getAvailableDrivers »
  • PHP Manual
  • PDO
  • Retrieve a database connection attribute

PDO::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDO::getAttribute — Retrieve a database connection attribute

Beschreibung

public PDO::getAttribute ( int $attribute ) : mixed

This function returns the value of a database connection attribute. To retrieve PDOStatement attributes, refer to PDOStatement::getAttribute().

Note that some database/driver combinations may not support all of the database connection attributes.

Parameter-Liste

attribute

One of the PDO::ATTR_* constants. The constants that apply to database connections are as follows:

  • PDO::ATTR_AUTOCOMMIT
  • PDO::ATTR_CASE
  • PDO::ATTR_CLIENT_VERSION
  • PDO::ATTR_CONNECTION_STATUS
  • PDO::ATTR_DRIVER_NAME
  • PDO::ATTR_ERRMODE
  • PDO::ATTR_ORACLE_NULLS
  • PDO::ATTR_PERSISTENT
  • PDO::ATTR_PREFETCH
  • PDO::ATTR_SERVER_INFO
  • PDO::ATTR_SERVER_VERSION
  • PDO::ATTR_TIMEOUT

Rückgabewerte

A successful call returns the value of the requested PDO attribute. An unsuccessful call returns null.

Beispiele

Beispiel #1 Retrieving database connection attributes

<?php
$conn = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$attributes = array(
    "AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION", "CONNECTION_STATUS",
    "ORACLE_NULLS", "PERSISTENT", "PREFETCH", "SERVER_INFO", "SERVER_VERSION",
    "TIMEOUT"
);

foreach ($attributes as $val) {
    echo "PDO::ATTR_$val: ";
    echo $conn->getAttribute(constant("PDO::ATTR_$val")) . "\n";
}
?>

Siehe auch

  • PDO::setAttribute() - Set an attribute
  • PDOStatement::getAttribute() - Retrieve a statement attribute
  • PDOStatement::setAttribute() - Set a statement attribute


Return an array of available PDO drivers

  • « PDO::getAttribute
  • PDO::inTransaction »
  • PHP Manual
  • PDO
  • Return an array of available PDO drivers

PDO::getAvailableDrivers

pdo_drivers

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.3)

PDO::getAvailableDrivers -- pdo_drivers — Return an array of available PDO drivers

Beschreibung

public static PDO::getAvailableDrivers ( ) : array
pdo_drivers ( ) : array

This function returns all currently available PDO drivers which can be used in DSN parameter of PDO::__construct().

Rückgabewerte

PDO::getAvailableDrivers() returns an array of PDO driver names. If no drivers are available, it returns an empty array.

Beispiele

Beispiel #1 A PDO::getAvailableDrivers() example

<?php
print_r(PDO::getAvailableDrivers());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => mysql
    [1] => sqlite
)


Checks if inside a transaction

  • « PDO::getAvailableDrivers
  • PDO::lastInsertId »
  • PHP Manual
  • PDO
  • Checks if inside a transaction

PDO::inTransaction

(PHP 5 >= 5.3.3, Bundled pdo_pgsql, PHP 7)

PDO::inTransaction — Checks if inside a transaction

Beschreibung

public PDO::inTransaction ( ) : bool

Checks if a transaction is currently active within the driver. This method only works for database drivers that support transactions.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if a transaction is currently active, and false if not.


Returns the ID of the last inserted row or sequence value

  • « PDO::inTransaction
  • PDO::prepare »
  • PHP Manual
  • PDO
  • Returns the ID of the last inserted row or sequence value

PDO::lastInsertId

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::lastInsertId — Returns the ID of the last inserted row or sequence value

Beschreibung

public PDO::lastInsertId ( string $name = null ) : string

Returns the ID of the last inserted row, or the last value from a sequence object, depending on the underlying driver. For example, PDO_PGSQL requires you to specify the name of a sequence object for the name parameter.

Hinweis:

This method may not return a meaningful or consistent result across different PDO drivers, because the underlying database may not even support the notion of auto-increment fields or sequences.

Parameter-Liste

name

Name of the sequence object from which the ID should be returned.

Rückgabewerte

If a sequence name was not specified for the name parameter, PDO::lastInsertId() returns a string representing the row ID of the last row that was inserted into the database.

If a sequence name was specified for the name parameter, PDO::lastInsertId() returns a string representing the last value retrieved from the specified sequence object.

If the PDO driver does not support this capability, PDO::lastInsertId() triggers an IM001 SQLSTATE.


Prepares a statement for execution and returns a statement object

  • « PDO::lastInsertId
  • PDO::query »
  • PHP Manual
  • PDO
  • Prepares a statement for execution and returns a statement object

PDO::prepare

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::prepare — Prepares a statement for execution and returns a statement object

Beschreibung

public PDO::prepare ( string $statement , array $driver_options = array() ) : PDOStatement

Prepares an SQL statement to be executed by the PDOStatement::execute() method. The statement template can contain zero or more named (:name) or question mark (?) parameter markers for which real values will be substituted when the statement is executed. Both named and question mark parameter markers cannot be used within the same statement template; only one or the other parameter style. Use these parameters to bind any user-input, do not include the user-input directly in the query.

You must include a unique parameter marker for each value you wish to pass in to the statement when you call PDOStatement::execute(). You cannot use a named parameter marker of the same name more than once in a prepared statement, unless emulation mode is on.

Hinweis:

Parameter markers can represent a complete data literal only. Neither part of literal, nor keyword, nor identifier, nor whatever arbitrary query part can be bound using parameters. For example, you cannot bind multiple values to a single parameter in the IN() clause of an SQL statement.

Calling PDO::prepare() and PDOStatement::execute() for statements that will be issued multiple times with different parameter values optimizes the performance of your application by allowing the driver to negotiate client and/or server side caching of the query plan and meta information. Also, calling PDO::prepare() and PDOStatement::execute() helps to prevent SQL injection attacks by eliminating the need to manually quote and escape the parameters.

PDO will emulate prepared statements/bound parameters for drivers that do not natively support them, and can also rewrite named or question mark style parameter markers to something more appropriate, if the driver supports one style but not the other.

Hinweis: As of PHP 5.3.0, the parser used for emulated prepared statements and for rewriting named or question mark style parameters supports the non standard backslash escapes for single- and double quotes. That means that terminating quotes immediately preceeded by a backslash are not recognized as such, which may result in wrong detection of parameters causing the prepared statement to fail when it is executed. A work-around is to not use emulated prepares for such SQL queries, and to avoid rewriting of parameters by using a parameter style which is natively supported by the driver.

Parameter-Liste

statement

This must be a valid SQL statement template for the target database server.

driver_options

This array holds one or more key=>value pairs to set attribute values for the PDOStatement object that this method returns. You would most commonly use this to set the PDO::ATTR_CURSOR value to PDO::CURSOR_SCROLL to request a scrollable cursor. Some drivers have driver-specific options that may be set at prepare-time.

Rückgabewerte

If the database server successfully prepares the statement, PDO::prepare() returns a PDOStatement object. If the database server cannot successfully prepare the statement, PDO::prepare() returns false or emits PDOException (depending on error handling).

Hinweis:

Emulated prepared statements does not communicate with the database server so PDO::prepare() does not check the statement.

Beispiele

Beispiel #1 SQL statement template with named parameters

<?php
/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>

Beispiel #2 SQL statement template with question mark parameters

<?php
/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
?>

Siehe auch

  • PDO::exec() - Führt ein SQL Statement aus und gibt die Zahl der betroffenen Zeilen zurück
  • PDO::query() - Executes an SQL statement, returning a result set as a PDOStatement object
  • PDOStatement::execute() - Führt ein Prepared Statement aus


Executes an SQL statement, returning a result set as a PDOStatement object

  • « PDO::prepare
  • PDO::quote »
  • PHP Manual
  • PDO
  • Executes an SQL statement, returning a result set as a PDOStatement object

PDO::query

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDO::query — Executes an SQL statement, returning a result set as a PDOStatement object

Beschreibung

public PDO::query ( string $statement ) : PDOStatement
public PDO::query ( string $statement , int $fetch_style = PDO::FETCH_COLUMN , int $colno ) : PDOStatement
public PDO::query ( string $statement , int $fetch_style = PDO::FETCH_CLASS , string $classname , array $ctorargs ) : PDOStatement
public PDO::query ( string $statement , int $fetch_style = PDO::FETCH_INTO , object $object ) : PDOStatement

PDO::query() executes an SQL statement in a single function call, returning the result set (if any) returned by the statement as a PDOStatement object.

For a query that you need to issue multiple times, you will realize better performance if you prepare a PDOStatement object using PDO::prepare() and issue the statement with multiple calls to PDOStatement::execute().

If you do not fetch all of the data in a result set before issuing your next call to PDO::query(), your call may fail. Call PDOStatement::closeCursor() to release the database resources associated with the PDOStatement object before issuing your next call to PDO::query().

Hinweis:

If more than one argument is passed to this function, the remaining arguments will be treated as though you called PDOStatement::setFetchMode() on the resultant statement object.

Parameter-Liste

statement

The SQL statement to prepare and execute.

Data inside the query should be properly escaped.

Rückgabewerte

PDO::query() returns a PDOStatement object, or false on failure.

Beispiele

Beispiel #1 Demonstrate PDO::query

A nice feature of PDO::query() is that it enables you to iterate over the rowset returned by a successfully executed SELECT statement.

<?php
$sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
foreach ($conn->query($sql) as $row) {
    print $row['name'] . "\t";
    print $row['color'] . "\t";
    print $row['calories'] . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

apple   red     150
banana  yellow  250
kiwi    brown   75
lemon   yellow  25
orange  orange  300
pear    green   150
watermelon      pink    90

Siehe auch

  • PDO::exec() - Führt ein SQL Statement aus und gibt die Zahl der betroffenen Zeilen zurück
  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::execute() - Führt ein Prepared Statement aus


Quotes a string for use in a query

  • « PDO::query
  • PDO::rollBack »
  • PHP Manual
  • PDO
  • Quotes a string for use in a query

PDO::quote

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.1)

PDO::quote — Quotes a string for use in a query

Beschreibung

public PDO::quote ( string $string , int $parameter_type = PDO::PARAM_STR ) : string

PDO::quote() places quotes around the input string (if required) and escapes special characters within the input string, using a quoting style appropriate to the underlying driver.

If you are using this function to build SQL statements, you are strongly recommended to use PDO::prepare() to prepare SQL statements with bound parameters instead of using PDO::quote() to interpolate user input into an SQL statement. Prepared statements with bound parameters are not only more portable, more convenient, immune to SQL injection, but are often much faster to execute than interpolated queries, as both the server and client side can cache a compiled form of the query.

Not all PDO drivers implement this method (notably PDO_ODBC). Consider using prepared statements instead.

Achtung

Security: the default character set

The character set must be set either on the server level, or within the database connection itself (depending on the driver) for it to affect PDO::quote(). See the driver-specific documentation for more information.

Parameter-Liste

string

The string to be quoted.

parameter_type

Provides a data type hint for drivers that have alternate quoting styles.

Rückgabewerte

Returns a quoted string that is theoretically safe to pass into an SQL statement. Returns false if the driver does not support quoting in this way.

Beispiele

Beispiel #1 Quoting a normal string

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Simple string */
$string = 'Nice';
print "Unquoted string: $string\n";
print "Quoted string: " . $conn->quote($string) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Unquoted string: Nice
Quoted string: 'Nice'

Beispiel #2 Quoting a dangerous string

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Dangerous string */
$string = 'Naughty \' string';
print "Unquoted string: $string\n";
print "Quoted string:" . $conn->quote($string) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Unquoted string: Naughty ' string
Quoted string: 'Naughty '' string'

Beispiel #3 Quoting a complex string

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Complex string */
$string = "Co'mpl''ex \"st'\"ring";
print "Unquoted string: $string\n";
print "Quoted string: " . $conn->quote($string) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Unquoted string: Co'mpl''ex "st'"ring
Quoted string: 'Co''mpl''''ex "st''"ring'

Siehe auch

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::execute() - Führt ein Prepared Statement aus


Rolls back a transaction

  • « PDO::quote
  • PDO::setAttribute »
  • PHP Manual
  • PDO
  • Rolls back a transaction

PDO::rollBack

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::rollBack — Rolls back a transaction

Beschreibung

public PDO::rollBack ( ) : bool

Rolls back the current transaction, as initiated by PDO::beginTransaction().

If the database was set to autocommit mode, this function will restore autocommit mode after it has rolled back the transaction.

Some databases, including MySQL, automatically issue an implicit COMMIT when a database definition language (DDL) statement such as DROP TABLE or CREATE TABLE is issued within a transaction. The implicit COMMIT will prevent you from rolling back any other changes within the transaction boundary.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Throws a PDOException if there is no active transaction.

Hinweis: An exception is raised even when the PDO::ATTR_ERRMODE attribute is not PDO::ERRMODE_EXCEPTION.

Beispiele

Beispiel #1 Roll back a transaction

The following example begins a transaction and issues two statements that modify the database before rolling back the changes. On MySQL, however, the DROP TABLE statement automatically commits the transaction so that none of the changes in the transaction are rolled back.

<?php
/* Begin a transaction, turning off autocommit */
$dbh->beginTransaction();

/* Change the database schema and data */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* Recognize mistake and roll back changes */
$dbh->rollBack();

/* Database connection is now back in autocommit mode */
?>

Siehe auch

  • PDO::beginTransaction() - Initiates a transaction
  • PDO::commit() - Commits a transaction
  • Transactions and auto-commit


Set an attribute

  • « PDO::rollBack
  • PDOStatement »
  • PHP Manual
  • PDO
  • Set an attribute

PDO::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::setAttribute — Set an attribute

Beschreibung

public PDO::setAttribute ( int $attribute , mixed $value ) : bool

Sets an attribute on the database handle. Some of the available generic attributes are listed below; some drivers may make use of additional driver specific attributes.

  • PDO::ATTR_CASE: Force column names to a specific case.

    • PDO::CASE_LOWER: Force column names to lower case.

    • PDO::CASE_NATURAL: Leave column names as returned by the database driver.

    • PDO::CASE_UPPER: Force column names to upper case.

  • PDO::ATTR_ERRMODE: Error reporting.

    • PDO::ERRMODE_SILENT: Just set error codes.

    • PDO::ERRMODE_WARNING: Raise E_WARNING.

    • PDO::ERRMODE_EXCEPTION: Throw exceptions.

  • PDO::ATTR_ORACLE_NULLS (available with all drivers, not just Oracle): Conversion of NULL and empty strings.

    • PDO::NULL_NATURAL: No conversion.

    • PDO::NULL_EMPTY_STRING: Empty string is converted to null.

    • PDO::NULL_TO_STRING: NULL is converted to an empty string.

  • PDO::ATTR_STRINGIFY_FETCHES: Convert numeric values to strings when fetching. Requires bool.

  • PDO::ATTR_STATEMENT_CLASS: Set user-supplied statement class derived from PDOStatement. Cannot be used with persistent PDO instances. Requires array(string classname, array(mixed constructor_args)).

  • PDO::ATTR_TIMEOUT: Specifies the timeout duration in seconds. Not all drivers support this option, and its meaning may differ from driver to driver. For example, sqlite will wait for up to this time value before giving up on obtaining an writable lock, but other drivers may interpret this as a connect or a read timeout interval. Requires int.

  • PDO::ATTR_AUTOCOMMIT (available in OCI, Firebird and MySQL): Whether to autocommit every single statement.

  • PDO::ATTR_EMULATE_PREPARES Enables or disables emulation of prepared statements. Some drivers do not support native prepared statements or have limited support for them. Use this setting to force PDO to either always emulate prepared statements (if true and emulated prepares are supported by the driver), or to try to use native prepared statements (if false). It will always fall back to emulating the prepared statement if the driver cannot successfully prepare the current query. Requires bool.

  • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (available in MySQL): Use buffered queries.

  • PDO::ATTR_DEFAULT_FETCH_MODE: Set default fetch mode. Description of modes is available in PDOStatement::fetch() documentation.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Die PDOStatement-Klasse

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.0)

Einführung

Repräsentiert ein Prepared Statement und, nachdem es ausgeführt wurde, die zugehörige Ergebnismenge.

Klassenbeschreibung

PDOStatement implements Traversable {
/* Eigenschaften */
readonly string $queryString;
/* Methoden */
public bindColumn ( mixed $column , mixed &$param , int $type = ? , int $maxlen = ? , mixed $driverdata = ? ) : bool
public bindParam ( mixed $parameter , mixed &$variable , int $data_type = PDO::PARAM_STR , int $length = ? , mixed $driver_options = ? ) : bool
public bindValue ( mixed $parameter , mixed $value , int $data_type = PDO::PARAM_STR ) : bool
public closeCursor ( ) : bool
public columnCount ( ) : int
public debugDumpParams ( ) : void
public errorCode ( ) : string
public errorInfo ( ) : array
public execute ( array $input_parameters = null ) : bool
public fetch ( int $fetch_style = ? , int $cursor_orientation = PDO::FETCH_ORI_NEXT , int $cursor_offset = 0 ) : mixed
public fetchAll ( int $fetch_style = ? , mixed $fetch_argument = ? , array $ctor_args = array() ) : array|false
public fetchColumn ( int $column_number = 0 ) : mixed
public fetchObject ( string $class_name = "stdClass" , array $ctor_args = ? ) : object|false
public getAttribute ( int $attribute ) : mixed
public getColumnMeta ( int $column ) : array
public nextRowset ( ) : bool
public rowCount ( ) : int
public setAttribute ( int $attribute , mixed $value ) : bool
public setFetchMode ( int $mode ) : bool
}

Eigenschaften

queryString

Verwendete Abfragezeichenkette.

Inhaltsverzeichnis

  • PDOStatement::bindColumn — Bind a column to a PHP variable
  • PDOStatement::bindParam — Binds a parameter to the specified variable name
  • PDOStatement::bindValue — Binds a value to a parameter
  • PDOStatement::closeCursor — Closes the cursor, enabling the statement to be executed again
  • PDOStatement::columnCount — Returns the number of columns in the result set
  • PDOStatement::debugDumpParams — Dump an SQL prepared command
  • PDOStatement::errorCode — Fetch the SQLSTATE associated with the last operation on the statement handle
  • PDOStatement::errorInfo — Fetch extended error information associated with the last operation on the statement handle
  • PDOStatement::execute — Führt ein Prepared Statement aus
  • PDOStatement::fetch — Fetches the next row from a result set
  • PDOStatement::fetchAll — Returns an array containing all of the result set rows
  • PDOStatement::fetchColumn — Returns a single column from the next row of a result set
  • PDOStatement::fetchObject — Fetches the next row and returns it as an object
  • PDOStatement::getAttribute — Retrieve a statement attribute
  • PDOStatement::getColumnMeta — Returns metadata for a column in a result set
  • PDOStatement::nextRowset — Advances to the next rowset in a multi-rowset statement handle
  • PDOStatement::rowCount — Returns the number of rows affected by the last SQL statement
  • PDOStatement::setAttribute — Set a statement attribute
  • PDOStatement::setFetchMode — Set the default fetch mode for this statement


Bind a column to a PHP variable

  • « PDOStatement
  • PDOStatement::bindParam »
  • PHP Manual
  • PDOStatement
  • Bind a column to a PHP variable

PDOStatement::bindColumn

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::bindColumn — Bind a column to a PHP variable

Beschreibung

public PDOStatement::bindColumn ( mixed $column , mixed &$param , int $type = ? , int $maxlen = ? , mixed $driverdata = ? ) : bool

PDOStatement::bindColumn() arranges to have a particular variable bound to a given column in the result-set from a query. Each call to PDOStatement::fetch() or PDOStatement::fetchAll() will update all the variables that are bound to columns.

Hinweis:

Since information about the columns is not always available to PDO until the statement is executed, portable applications should call this function after PDOStatement::execute().

However, to be able to bind a LOB column as a stream when using the PgSQL driver, applications should call this method before calling PDOStatement::execute(), otherwise the large object OID will be returned as an integer.

Parameter-Liste

column

Number of the column (1-indexed) or name of the column in the result set. If using the column name, be aware that the name should match the case of the column, as returned by the driver.

param

Name of the PHP variable to which the column will be bound.

type

Data type of the parameter, specified by the PDO::PARAM_* constants.

maxlen

A hint for pre-allocation.

driverdata

Optional parameter(s) for the driver.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Binding result set output to PHP variables

Binding columns in the result set to PHP variables is an effective way to make the data contained in each row immediately available to your application. The following example demonstrates how PDO allows you to bind and retrieve columns with a variety of options and with intelligent defaults.

<?php
function readData($dbh) {
  $sql = 'SELECT name, colour, calories FROM fruit';
  try {
    $stmt = $dbh->prepare($sql);
    $stmt->execute();

    /* Bind by column number */
    $stmt->bindColumn(1, $name);
    $stmt->bindColumn(2, $colour);

    /* Bind by column name */
    $stmt->bindColumn('calories', $cals);

    while ($row = $stmt->fetch(PDO::FETCH_BOUND)) {
      $data = $name . "\t" . $colour . "\t" . $cals . "\n";
      print $data;
    }
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
readData($dbh);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

apple   red     150
banana  yellow  175
kiwi    green   75
orange  orange  150
mango   red     200
strawberry      red     25

Siehe auch

  • PDOStatement::execute() - Führt ein Prepared Statement aus
  • PDOStatement::fetch() - Fetches the next row from a result set
  • PDOStatement::fetchAll() - Returns an array containing all of the result set rows
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set


Binds a parameter to the specified variable name

  • « PDOStatement::bindColumn
  • PDOStatement::bindValue »
  • PHP Manual
  • PDOStatement
  • Binds a parameter to the specified variable name

PDOStatement::bindParam

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::bindParam — Binds a parameter to the specified variable name

Beschreibung

public PDOStatement::bindParam ( mixed $parameter , mixed &$variable , int $data_type = PDO::PARAM_STR , int $length = ? , mixed $driver_options = ? ) : bool

Binds a PHP variable to a corresponding named or question mark placeholder in the SQL statement that was used to prepare the statement. Unlike PDOStatement::bindValue(), the variable is bound as a reference and will only be evaluated at the time that PDOStatement::execute() is called.

Most parameters are input parameters, that is, parameters that are used in a read-only fashion to build up the query (but may nonetheless be cast according to data_type). Some drivers support the invocation of stored procedures that return data as output parameters, and some also as input/output parameters that both send in data and are updated to receive it.

Parameter-Liste

parameter

Parameter identifier. For a prepared statement using named placeholders, this will be a parameter name of the form :name. For a prepared statement using question mark placeholders, this will be the 1-indexed position of the parameter.

variable

Name of the PHP variable to bind to the SQL statement parameter.

data_type

Explicit data type for the parameter using the PDO::PARAM_* constants. To return an INOUT parameter from a stored procedure, use the bitwise OR operator to set the PDO::PARAM_INPUT_OUTPUT bits for the data_type parameter.

length

Length of the data type. To indicate that a parameter is an OUT parameter from a stored procedure, you must explicitly set the length.

driver_options

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Execute a prepared statement with named placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Beispiel #2 Execute a prepared statement with question mark placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Beispiel #3 Call a stored procedure with an INOUT parameter

<?php
/* Call a stored procedure with an INOUT parameter */
$colour = 'red';
$sth = $dbh->prepare('CALL puree_fruit(?)');
$sth->bindParam(1, $colour, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);
$sth->execute();
print("After pureeing fruit, the colour is: $colour");
?>

Siehe auch

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::execute() - Führt ein Prepared Statement aus
  • PDOStatement::bindValue() - Binds a value to a parameter


Binds a value to a parameter

  • « PDOStatement::bindParam
  • PDOStatement::closeCursor »
  • PHP Manual
  • PDOStatement
  • Binds a value to a parameter

PDOStatement::bindValue

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.0)

PDOStatement::bindValue — Binds a value to a parameter

Beschreibung

public PDOStatement::bindValue ( mixed $parameter , mixed $value , int $data_type = PDO::PARAM_STR ) : bool

Binds a value to a corresponding named or question mark placeholder in the SQL statement that was used to prepare the statement.

Parameter-Liste

parameter

Parameter identifier. For a prepared statement using named placeholders, this will be a parameter name of the form :name. For a prepared statement using question mark placeholders, this will be the 1-indexed position of the parameter.

value

The value to bind to the parameter.

data_type

Explicit data type for the parameter using the PDO::PARAM_* constants.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Execute a prepared statement with named placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindValue(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>

Beispiel #2 Execute a prepared statement with question mark placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindValue(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();
?>

Siehe auch

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::execute() - Führt ein Prepared Statement aus
  • PDOStatement::bindParam() - Binds a parameter to the specified variable name


Closes the cursor, enabling the statement to be executed again

  • « PDOStatement::bindValue
  • PDOStatement::columnCount »
  • PHP Manual
  • PDOStatement
  • Closes the cursor, enabling the statement to be executed again

PDOStatement::closeCursor

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::closeCursor — Closes the cursor, enabling the statement to be executed again

Beschreibung

public PDOStatement::closeCursor ( ) : bool

PDOStatement::closeCursor() frees up the connection to the server so that other SQL statements may be issued, but leaves the statement in a state that enables it to be executed again.

This method is useful for database drivers that do not support executing a PDOStatement object when a previously executed PDOStatement object still has unfetched rows. If your database driver suffers from this limitation, the problem may manifest itself in an out-of-sequence error.

PDOStatement::closeCursor() is implemented either as an optional driver specific method (allowing for maximum efficiency), or as the generic PDO fallback if no driver specific function is installed. The PDO generic fallback is semantically the same as writing the following code in your PHP script:

<?php
do {
    while ($stmt->fetch())
        ;
    if (!$stmt->nextRowset())
        break;
} while (true);
?>

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 A PDOStatement::closeCursor() example

In the following example, the $stmt PDOStatement object returns multiple rows but the application fetches only the first row, leaving the PDOStatement object in a state of having unfetched rows. To ensure that the application will work with all database drivers, the author inserts a call to PDOStatement::closeCursor() on $stmt before executing the $otherStmt PDOStatement object.

<?php
/* Create a PDOStatement object */
$stmt = $dbh->prepare('SELECT foo FROM bar');

/* Create a second PDOStatement object */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');

/* Execute the first statement */
$stmt->execute();

/* Fetch only the first row from the results */
$stmt->fetch();

/* The following call to closeCursor() may be required by some drivers */
$stmt->closeCursor();

/* Now we can execute the second statement */
$otherStmt->execute();
?>

Siehe auch

  • PDOStatement::execute() - Führt ein Prepared Statement aus


Returns the number of columns in the result set

  • « PDOStatement::closeCursor
  • PDOStatement::debugDumpParams »
  • PHP Manual
  • PDOStatement
  • Returns the number of columns in the result set

PDOStatement::columnCount

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::columnCount — Returns the number of columns in the result set

Beschreibung

public PDOStatement::columnCount ( ) : int

Use PDOStatement::columnCount() to return the number of columns in the result set represented by the PDOStatement object.

If the PDOStatement object was returned from PDO::query(), the column count is immediately available.

If the PDOStatement object was returned from PDO::prepare(), an accurate column count will not be available until you invoke PDOStatement::execute().

Rückgabewerte

Returns the number of columns in the result set represented by the PDOStatement object, even if the result set is empty. If there is no result set, PDOStatement::columnCount() returns 0.

Beispiele

Beispiel #1 Counting columns

This example demonstrates how PDOStatement::columnCount() operates with and without a result set.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

$sth = $dbh->prepare("SELECT name, colour FROM fruit");

/* Count the number of columns in the (non-existent) result set */
$colcount = $sth->columnCount();
print("Before execute(), result set has $colcount columns (should be 0)\n");

$sth->execute();

/* Count the number of columns in the result set */
$colcount = $sth->columnCount();
print("After execute(), result set has $colcount columns (should be 2)\n");

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Before execute(), result set has 0 columns (should be 0)
After execute(), result set has 2 columns (should be 2)

Siehe auch

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::execute() - Führt ein Prepared Statement aus
  • PDOStatement::rowCount() - Returns the number of rows affected by the last SQL statement


Dump an SQL prepared command

  • « PDOStatement::columnCount
  • PDOStatement::errorCode »
  • PHP Manual
  • PDOStatement
  • Dump an SQL prepared command

PDOStatement::debugDumpParams

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::debugDumpParams — Dump an SQL prepared command

Beschreibung

public PDOStatement::debugDumpParams ( ) : void

Dumps the information contained by a prepared statement directly on the output. It will provide the SQL query in use, the number of parameters used (Params), the list of parameters with their key name or position, their name, their position in the query (if this is supported by the PDO driver, otherwise, it will be -1), type (param_type) as an integer, and a boolean value is_param.

This is a debug function, which dumps the data directly to the normal output.

Tipp

Bei allem, dessen Ergebnisausgabe direkt im Browser angezeigt wird, können Sie die Funktionen zur Ausgabesteuerung verwenden. Damit lässt sich die Ausgabe dieser Funktion erfassen, und - zum Beispiel - in einem string speichern.

This will only dump the parameters in the statement at the moment of the dump. Extra parameters are not stored in the statement, and not displayed.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 PDOStatement::debugDumpParams() example with named parameters

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();

$sth->debugDumpParams();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

SQL: [96] SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour
Params:  2
Key: Name: [9] :calories
paramno=-1
name=[9] ":calories"
is_param=1
param_type=1
Key: Name: [7] :colour
paramno=-1
name=[7] ":colour"
is_param=1
param_type=2

Beispiel #2 PDOStatement::debugDumpParams() example with unnamed parameters

<?php

/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$name = 'apple';

$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();

$sth->debugDumpParams();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

SQL: [82] SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?
Params:  2
Key: Position #0:
paramno=0
name=[0] ""
is_param=1
param_type=1
Key: Position #1:
paramno=1
name=[0] ""
is_param=1
param_type=2

Changelog

Version | Beschreibung
7.2.0 | PDOStatement::debugDumpParams() now returns the SQL sent to the database, including the full, raw query (including the replaced placeholders with their bounded values). Note, that this will only be available if emulated prepared statements are turned on.

Siehe auch

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::bindParam() - Binds a parameter to the specified variable name
  • PDOStatement::bindValue() - Binds a value to a parameter


Fetch the SQLSTATE associated with the last operation on the statement handle

  • « PDOStatement::debugDumpParams
  • PDOStatement::errorInfo »
  • PHP Manual
  • PDOStatement
  • Fetch the SQLSTATE associated with the last operation on the statement handle

PDOStatement::errorCode

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::errorCode — Fetch the SQLSTATE associated with the last operation on the statement handle

Beschreibung

public PDOStatement::errorCode ( ) : string

Rückgabewerte

Identical to PDO::errorCode(), except that PDOStatement::errorCode() only retrieves error codes for operations performed with PDOStatement objects.

Beispiele

Beispiel #1 Retrieving an SQLSTATE code

<?php
/* Provoke an error -- the BONES table does not exist */
$err = $dbh->prepare('SELECT skull FROM bones');
$err->execute();

echo "\nPDOStatement::errorCode(): ";
print $err->errorCode();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

PDOStatement::errorCode(): 42S02

Siehe auch

  • PDO::errorCode() - Fetch the SQLSTATE associated with the last operation on the database handle
  • PDO::errorInfo() - Fetch extended error information associated with the last operation on the database handle
  • PDOStatement::errorInfo() - Fetch extended error information associated with the last operation on the statement handle


Fetch extended error information associated with the last operation on the statement handle

  • « PDOStatement::errorCode
  • PDOStatement::execute »
  • PHP Manual
  • PDOStatement
  • Fetch extended error information associated with the last operation on the statement handle

PDOStatement::errorInfo

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::errorInfo — Fetch extended error information associated with the last operation on the statement handle

Beschreibung

public PDOStatement::errorInfo ( ) : array

Rückgabewerte

PDOStatement::errorInfo() returns an array of error information about the last operation performed by this statement handle. The array consists of at least the following fields:

Element | Information
0 | SQLSTATE error code (a five characters alphanumeric identifier defined in the ANSI SQL standard).
1 | Driver specific error code.
2 | Driver specific error message.

Beispiele

Beispiel #1 Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database

<?php
/* Provoke an error -- the BONES table does not exist */
$sth = $dbh->prepare('SELECT skull FROM bones');
$sth->execute();

echo "\nPDOStatement::errorInfo():\n";
$arr = $sth->errorInfo();
print_r($arr);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

PDOStatement::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

Siehe auch

  • PDO::errorCode() - Fetch the SQLSTATE associated with the last operation on the database handle
  • PDO::errorInfo() - Fetch extended error information associated with the last operation on the database handle
  • PDOStatement::errorCode() - Fetch the SQLSTATE associated with the last operation on the statement handle


Führt ein Prepared Statement aus

  • « PDOStatement::errorInfo
  • PDOStatement::fetch »
  • PHP Manual
  • PDOStatement
  • Führt ein Prepared Statement aus

PDOStatement::execute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::execute — Führt ein Prepared Statement aus

Beschreibung

public PDOStatement::execute ( array $input_parameters = null ) : bool

Führt das Prepared Statement aus. Falls das Prepared Statement Parameter-Marker enthält, muss entweder:

  • PDOStatement::bindParam() und/oder PDOStatement::bindValue() aufgerufen werden, um Variablen bzw. Werte an die Parameter-Marker zu binden. Gebundene Variablen übergeben ihren Wert als Eingabe und erhalten, falls vorhanden, den Ausgabewert ihrer zugehörigen Parameter-Marker.

  • oder ein Array mit Nur-Eingabe-Parameterwerten übergeben werden.

Parameter-Liste

input_parameters

Ein Array von Werten mit so vielen Elementen, wie es gebundene Parameter in der auszuführenden SQL-Anweisung gibt. Alle Werte werden als PDO::PARAM_STR behandelt.

An einen einzelnen Paramter können nicht mehrere Werte gebunden werden; es ist z.B. nicht gestattet, zwei Werte an einen einzelnen benannten Parameter in einer IN()-Klausel zu binden.

Mehr Werte zu binden als festgelegt ist nicht möglich; wenn input_parameters mehr Parameter enthält als in PDO::prepare() definiert wurden, wird die Anweisung fehlschlagen und ein Fehler wird ausgegeben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ein Prepared Statement mit Variablen- und Wertebindung ausführen

<?php
/* Ein Prepared Statement ausführen, in dem Variable und Wert zugewiesen werden */
$calories = 150;
$colour = 'gre';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour LIKE :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', "%{$colour}%");
$sth->execute();
?>

Beispiel #2 Ein Prepared Statement mit einem Array von Eingabewerten (benannte Parameter) ausführen

<?php
/* Ein Prepared Statement ausführen, indem ein Array von Eingabewerten übergeben wird */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>

Beispiel #3 Ein Prepared Statement mit einem Array von Eingabewerten (Platzhalter) ausführen

<?php
/* Ein Prepared Statement ausführen, indem ein Array von Eingabewerten übergeben wird */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
?>

Beispiel #4 Ein Prepared Statement mit Fragezeichen-Platzhaltern ausführen

<?php
/* Ein Prepared Statement durch das binden von PHP-Variablen ausführen*/
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Beispiel #5 Ein Prepared Statement mit einem Array für eine IN-Klausel ausführen

<?php
/* Führt ein Prepared Statement mit einem Array für eine IN-Klausel aus */
$params = array(1, 21, 63, 171);
/* Erstelle einen String für die Parameter-Platzhalter, gefüllt bis zur Anzahl Parameter */
$place_holders = implode(',', array_fill(0, count($params), '?'));

/*
    Das bereitet das Statement mit genügend unbenannten Platzhaltern
    für jeden Wert in unserem $params-Array vor. Die Werte aus dem
    $params-Array werden dann an die Platzhalter im Prepared Statement
    gebunden, wenn das Statement ausgeführt wird. Das ist nicht das
    gleiche wie PDOStatement::bindParam() zu verwenden, weil dies eine
    Referenz zur Variable benötigt. PDOStatement::execute() ordnet
    hingegen nur die Werte zu.
*/
$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
$sth->execute($params);
?>

Anmerkungen

Hinweis:

Manche Treiber verlangen die Ausführung von close cursor, bevor das nächste Statement ausgeführt wird.

Siehe auch

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::bindParam() - Binds a parameter to the specified variable name
  • PDOStatement::fetch() - Fetches the next row from a result set
  • PDOStatement::fetchAll() - Returns an array containing all of the result set rows
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set


Fetches the next row from a result set

  • « PDOStatement::execute
  • PDOStatement::fetchAll »
  • PHP Manual
  • PDOStatement
  • Fetches the next row from a result set

PDOStatement::fetch

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::fetch — Fetches the next row from a result set

Beschreibung

public PDOStatement::fetch ( int $fetch_style = ? , int $cursor_orientation = PDO::FETCH_ORI_NEXT , int $cursor_offset = 0 ) : mixed

Fetches a row from a result set associated with a PDOStatement object. The fetch_style parameter determines how PDO returns the row.

Parameter-Liste

fetch_style

Controls how the next row will be returned to the caller. This value must be one of the PDO::FETCH_* constants, defaulting to value of PDO::ATTR_DEFAULT_FETCH_MODE (which defaults to PDO::FETCH_BOTH).

  • PDO::FETCH_ASSOC: returns an array indexed by column name as returned in your result set

  • PDO::FETCH_BOTH (default): returns an array indexed by both column name and 0-indexed column number as returned in your result set

  • PDO::FETCH_BOUND: returns true and assigns the values of the columns in your result set to the PHP variables to which they were bound with the PDOStatement::bindColumn() method

  • PDO::FETCH_CLASS: returns a new instance of the requested class, mapping the columns of the result set to named properties in the class, and calling the constructor afterwards, unless PDO::FETCH_PROPS_LATE is also given. If fetch_style includes PDO::FETCH_CLASSTYPE (e.g. PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE) then the name of the class is determined from a value of the first column.

  • PDO::FETCH_INTO: updates an existing instance of the requested class, mapping the columns of the result set to named properties in the class

  • PDO::FETCH_LAZY: combines PDO::FETCH_BOTH and PDO::FETCH_OBJ, creating the object variable names as they are accessed

  • PDO::FETCH_NAMED: returns an array with the same form as PDO::FETCH_ASSOC, except that if there are multiple columns with the same name, the value referred to by that key will be an array of all the values in the row that had that column name

  • PDO::FETCH_NUM: returns an array indexed by column number as returned in your result set, starting at column 0

  • PDO::FETCH_OBJ: returns an anonymous object with property names that correspond to the column names returned in your result set

  • PDO::FETCH_PROPS_LATE: when used with PDO::FETCH_CLASS, the constructor of the class is called before the properties are assigned from the respective column values.

cursor_orientation

For a PDOStatement object representing a scrollable cursor, this value determines which row will be returned to the caller. This value must be one of the PDO::FETCH_ORI_* constants, defaulting to PDO::FETCH_ORI_NEXT. To request a scrollable cursor for your PDOStatement object, you must set the PDO::ATTR_CURSOR attribute to PDO::CURSOR_SCROLL when you prepare the SQL statement with PDO::prepare().

offset

For a PDOStatement object representing a scrollable cursor for which the cursor_orientation parameter is set to PDO::FETCH_ORI_ABS, this value specifies the absolute number of the row in the result set that shall be fetched.

For a PDOStatement object representing a scrollable cursor for which the cursor_orientation parameter is set to PDO::FETCH_ORI_REL, this value specifies the row to fetch relative to the cursor position before PDOStatement::fetch() was called.

Rückgabewerte

The return value of this function on success depends on the fetch type. In all cases, false is returned on failure.

Beispiele

Beispiel #1 Fetching rows using different fetch styles

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Exercise PDOStatement::fetch styles */
print("PDO::FETCH_ASSOC: ");
print("Return next row as an array indexed by column name\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");

print("PDO::FETCH_BOTH: ");
print("Return next row as an array indexed by both column name and number\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");

print("PDO::FETCH_LAZY: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");

print("PDO::FETCH_OBJ: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->name;
print("\n");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

PDO::FETCH_ASSOC: Return next row as an array indexed by column name
Array
(
    [name] => apple
    [colour] => red
)

PDO::FETCH_BOTH: Return next row as an array indexed by both column name and number
Array
(
    [name] => banana
    [0] => banana
    [colour] => yellow
    [1] => yellow
)

PDO::FETCH_LAZY: Return next row as an anonymous object with column names as properties
PDORow Object
(
    [name] => orange
    [colour] => orange
)

PDO::FETCH_OBJ: Return next row as an anonymous object with column names as properties
kiwi

Beispiel #2 Fetching rows with a scrollable cursor

<?php
function readDataForwards($dbh) {
  $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY BET';
  try {
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
    $stmt->execute();
    while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) {
      $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
      print $data;
    }
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
function readDataBackwards($dbh) {
  $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
  try {
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
    do {
      $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
      print $data;
    } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}

print "Reading forwards:\n";
readDataForwards($conn);

print "Reading backwards:\n";
readDataBackwards($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Reading forwards:
21    10    5
16    0     5
19    20    10

Reading backwards:
19    20    10
16    0     5
21    10    5

Beispiel #3 Construction order

When objects are fetched via PDO::FETCH_CLASS the object properties are assigned first, and then the constructor of the class is invoked. If PDO::FETCH_PROPS_LATE is also given, this order is reversed, i.e. first the constructor is called, and afterwards the properties are assigned.

<?php
class Person
{
    private $name;

    public function __construct()
    {
        $this->tell();
    }

    public function tell()
    {
        if (isset($this->name)) {
            echo "I am {$this->name}.\n";
        } else {
            echo "I don't have a name yet.\n";
        }
    }
}

$sth = $dbh->query("SELECT * FROM people");
$sth->setFetchMode(PDO::FETCH_CLASS, 'Person');
$person = $sth->fetch();
$person->tell();
$sth->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE, 'Person');
$person = $sth->fetch();
$person->tell();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

I am Alice.
I am Alice.
I don't have a name yet.
I am Bob.

Siehe auch

  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::execute() - Führt ein Prepared Statement aus
  • PDOStatement::fetchAll() - Returns an array containing all of the result set rows
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set
  • PDOStatement::fetchObject() - Fetches the next row and returns it as an object
  • PDOStatement::setFetchMode() - Set the default fetch mode for this statement


Returns an array containing all of the result set rows

  • « PDOStatement::fetch
  • PDOStatement::fetchColumn »
  • PHP Manual
  • PDOStatement
  • Returns an array containing all of the result set rows

PDOStatement::fetchAll

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::fetchAll — Returns an array containing all of the result set rows

Beschreibung

public PDOStatement::fetchAll ( int $fetch_style = ? , mixed $fetch_argument = ? , array $ctor_args = array() ) : array|false

Parameter-Liste

fetch_style

Controls the contents of the returned array as documented in
PDOStatement::fetch().
Defaults to value of PDO::ATTR_DEFAULT_FETCH_MODE
(which defaults to PDO::FETCH_BOTH)

To return an array consisting of all values of a single column from the result set, specify PDO::FETCH_COLUMN. You can specify which column you want with the fetch_argument parameter.

To fetch only the unique values of a single column from the result set, bitwise-OR PDO::FETCH_COLUMN with PDO::FETCH_UNIQUE.

To return an associative array grouped by the values of a specified column, bitwise-OR PDO::FETCH_COLUMN with PDO::FETCH_GROUP.

fetch_argument

This argument has a different meaning depending on the value of the fetch_style parameter:

  • PDO::FETCH_COLUMN: Returns the indicated 0-indexed column.

  • PDO::FETCH_CLASS: Returns instances of the specified class, mapping the columns of each row to named properties in the class.

  • PDO::FETCH_FUNC: Returns the results of calling the specified function, using each row's columns as parameters in the call.

ctor_args

Arguments of custom class constructor when the fetch_style parameter is PDO::FETCH_CLASS.

Rückgabewerte

PDOStatement::fetchAll() returns an array containing all of the remaining rows in the result set. The array represents each row as either an array of column values or an object with properties corresponding to each column name. An empty array is returned if there are zero results to fetch, or false on failure.

Using this method to fetch large result sets will result in a heavy demand on system and possibly network resources. Rather than retrieving all of the data and manipulating it in PHP, consider using the database server to manipulate the result sets. For example, use the WHERE and ORDER BY clauses in SQL to restrict results before retrieving and processing them with PHP.

Beispiele

Beispiel #1 Fetch all remaining rows in a result set

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch all of the remaining rows in the result set */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Fetch all of the remaining rows in the result set:
Array
(
    [0] => Array
        (
            [name] => apple
            [0] => apple
            [colour] => red
            [1] => red
        )

    [1] => Array
        (
            [name] => pear
            [0] => pear
            [colour] => green
            [1] => green
        )

    [2] => Array
        (
            [name] => watermelon
            [0] => watermelon
            [colour] => pink
            [1] => pink
        )

)

Beispiel #2 Fetching all values of a single column from a result set

The following example demonstrates how to return all of the values of a single column from a result set, even though the SQL statement itself may return multiple columns per row.

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch all of the values of the first column */
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
var_dump($result);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array(3)
(
    [0] =>
    string(5) => apple
    [1] =>
    string(4) => pear
    [2] =>
    string(10) => watermelon
)

Beispiel #3 Grouping all values by a single column

The following example demonstrates how to return an associative array grouped by the values of the specified column in the result set. The array contains three keys: values apple and pear are returned as arrays that contain two different colours, while watermelon is returned as an array that contains only one colour.

<?php
$insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)");
$insert->execute(array('apple', 'green'));
$insert->execute(array('pear', 'yellow'));

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Group values by the first column */
var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  ["apple"]=>
  array(2) {
    [0]=>
    string(5) "green"
    [1]=>
    string(3) "red"
  }
  ["pear"]=>
  array(2) {
    [0]=>
    string(5) "green"
    [1]=>
    string(6) "yellow"
  }
  ["watermelon"]=>
  array(1) {
    [0]=>
    string(5) "pink"
  }
}

Beispiel #4 Instantiating a class for each result

The following example demonstrates the behaviour of the PDO::FETCH_CLASS fetch style.

<?php
class fruit {
    public $name;
    public $colour;
}

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

$result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit");
var_dump($result);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  object(fruit)#1 (2) {
    ["name"]=>
    string(5) "apple"
    ["colour"]=>
    string(5) "green"
  }
  [1]=>
  object(fruit)#2 (2) {
    ["name"]=>
    string(4) "pear"
    ["colour"]=>
    string(6) "yellow"
  }
  [2]=>
  object(fruit)#3 (2) {
    ["name"]=>
    string(10) "watermelon"
    ["colour"]=>
    string(4) "pink"
  }
  [3]=>
  object(fruit)#4 (2) {
    ["name"]=>
    string(5) "apple"
    ["colour"]=>
    string(3) "red"
  }
  [4]=>
  object(fruit)#5 (2) {
    ["name"]=>
    string(4) "pear"
    ["colour"]=>
    string(5) "green"
  }
}

Beispiel #5 Calling a function for each result

The following example demonstrates the behaviour of the PDO::FETCH_FUNC fetch style.

<?php
function fruit($name, $colour) {
    return "{$name}: {$colour}";
}

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

$result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit");
var_dump($result);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  string(12) "apple: green"
  [1]=>
  string(12) "pear: yellow"
  [2]=>
  string(16) "watermelon: pink"
  [3]=>
  string(10) "apple: red"
  [4]=>
  string(11) "pear: green"
}

Siehe auch

  • PDO::query() - Executes an SQL statement, returning a result set as a PDOStatement object
  • PDOStatement::fetch() - Fetches the next row from a result set
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set
  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::setFetchMode() - Set the default fetch mode for this statement


Returns a single column from the next row of a result set

  • « PDOStatement::fetchAll
  • PDOStatement::fetchObject »
  • PHP Manual
  • PDOStatement
  • Returns a single column from the next row of a result set

PDOStatement::fetchColumn

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::fetchColumn — Returns a single column from the next row of a result set

Beschreibung

public PDOStatement::fetchColumn ( int $column_number = 0 ) : mixed

Returns a single column from the next row of a result set or false if there are no more rows.

Hinweis:

PDOStatement::fetchColumn() should not be used to retrieve boolean columns, as it is impossible to distinguish a value of false from there being no more rows to retrieve. Use PDOStatement::fetch() instead.

Parameter-Liste

column_number

0-indexed number of the column you wish to retrieve from the row. If no value is supplied, PDOStatement::fetchColumn() fetches the first column.

Rückgabewerte

PDOStatement::fetchColumn() returns a single column from the next row of a result set or false if there are no more rows.

Warnung

There is no way to return another column from the same row if you use PDOStatement::fetchColumn() to retrieve data.

Beispiele

Beispiel #1 Return first column of the next row

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

print("Fetch the first column from the first row in the result set:\n");
$result = $sth->fetchColumn();
print("name = $result\n");

print("Fetch the second column from the second row in the result set:\n");
$result = $sth->fetchColumn(1);
print("colour = $result\n");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Fetch the first column from the first row in the result set:
name = lemon
Fetch the second column from the second row in the result set:
colour = red

Siehe auch

  • PDO::query() - Executes an SQL statement, returning a result set as a PDOStatement object
  • PDOStatement::fetch() - Fetches the next row from a result set
  • PDOStatement::fetchAll() - Returns an array containing all of the result set rows
  • PDO::prepare() - Prepares a statement for execution and returns a statement object
  • PDOStatement::setFetchMode() - Set the default fetch mode for this statement


Fetches the next row and returns it as an object

  • « PDOStatement::fetchColumn
  • PDOStatement::getAttribute »
  • PHP Manual
  • PDOStatement
  • Fetches the next row and returns it as an object

PDOStatement::fetchObject

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.4)

PDOStatement::fetchObject — Fetches the next row and returns it as an object

Beschreibung

public PDOStatement::fetchObject ( string $class_name = "stdClass" , array $ctor_args = ? ) : object|false

Fetches the next row and returns it as an object. This function is an
alternative to PDOStatement::fetch() with
PDO::FETCH_CLASS or
PDO::FETCH_OBJ style.

When an object is fetched, its properties are assigned from respective column values, and afterwards its constructor is invoked.

Parameter-Liste

class_name

Name of the created class.

ctor_args

Elements of this array are passed to the constructor.

Rückgabewerte

Returns an instance of the required class with property names that correspond to the column names Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • PDOStatement::fetch() - Fetches the next row from a result set


Retrieve a statement attribute

  • « PDOStatement::fetchObject
  • PDOStatement::getColumnMeta »
  • PHP Manual
  • PDOStatement
  • Retrieve a statement attribute

PDOStatement::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::getAttribute — Retrieve a statement attribute

Beschreibung

public PDOStatement::getAttribute ( int $attribute ) : mixed

Gets an attribute of the statement. Currently, no generic attributes exist but only driver specific:

  • PDO::ATTR_CURSOR_NAME (Firebird and ODBC specific): Get the name of cursor for UPDATE ... WHERE CURRENT OF.

Rückgabewerte

Returns the attribute value.

Siehe auch

  • PDO::getAttribute() - Retrieve a database connection attribute
  • PDO::setAttribute() - Set an attribute
  • PDOStatement::setAttribute() - Set a statement attribute


Returns metadata for a column in a result set

  • « PDOStatement::getAttribute
  • PDOStatement::nextRowset »
  • PHP Manual
  • PDOStatement
  • Returns metadata for a column in a result set

PDOStatement::getColumnMeta

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::getColumnMeta — Returns metadata for a column in a result set

Beschreibung

public PDOStatement::getColumnMeta ( int $column ) : array

Retrieves the metadata for a 0-indexed column in a result set as an associative array.

Warnung

Not all PDO drivers support PDOStatement::getColumnMeta().

The following drivers support this method:

  • PDO_DBLIB
  • PDO_MYSQL
  • PDO_PGSQL
  • PDO_SQLITE

Parameter-Liste

column

The 0-indexed column in the result set.

Rückgabewerte

Returns an associative array containing the following values representing the metadata for a single column:

Column metadata
Name | Value
native_type | The PHP native type used to represent the column value.
driver:decl_type | The SQL type used to represent the column value in the database. If the column in the result set is the result of a function, this value is not returned by PDOStatement::getColumnMeta().
flags | Any flags set for this column.
name | The name of this column as returned by the database.
table | The name of this column's table as returned by the database.
len | The length of this column. Normally -1 for types other than floating point decimals.
precision | The numeric precision of this column. Normally 0 for types other than floating point decimals.
pdo_type | The type of this column as represented by the PDO::PARAM_* constants.

Returns false if the requested column does not exist in the result set, or if no result set exists.

Beispiele

Beispiel #1 Retrieving column metadata

The following example shows the results of retrieving the metadata for a single column generated by a function (COUNT) in a PDO_SQLITE driver.

<?php
$select = $DB->query('SELECT COUNT(*) FROM fruit');
$meta = $select->getColumnMeta(0);
var_dump($meta);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(6) {
  ["native_type"]=>
  string(7) "integer"
  ["flags"]=>
  array(0) {
  }
  ["name"]=>
  string(8) "COUNT(*)"
  ["len"]=>
  int(-1)
  ["precision"]=>
  int(0)
  ["pdo_type"]=>
  int(2)
}

Siehe auch

  • PDOStatement::columnCount() - Returns the number of columns in the result set
  • PDOStatement::rowCount() - Returns the number of rows affected by the last SQL statement


Advances to the next rowset in a multi-rowset statement handle

  • « PDOStatement::getColumnMeta
  • PDOStatement::rowCount »
  • PHP Manual
  • PDOStatement
  • Advances to the next rowset in a multi-rowset statement handle

PDOStatement::nextRowset

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::nextRowset — Advances to the next rowset in a multi-rowset statement handle

Beschreibung

public PDOStatement::nextRowset ( ) : bool

Some database servers support stored procedures that return more than one rowset (also known as a result set). PDOStatement::nextRowset() enables you to access the second and subsequent rowsets associated with a PDOStatement object. Each rowset can have a different set of columns from the preceding rowset.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Fetching multiple rowsets returned from a stored procedure

The following example shows how to call a stored procedure, MULTIPLE_ROWSETS, that returns three rowsets. We use a do / while loop to loop over the PDOStatement::nextRowset() method, which returns false and terminates the loop when no more rowsets can be returned.

<?php
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$i = 1;
do {
    $rowset = $stmt->fetchAll(PDO::FETCH_NUM);
    if ($rowset) {
        printResultSet($rowset, $i);
    }
    $i++;
} while ($stmt->nextRowset());

function printResultSet(&$rowset, $i) {
    print "Result set $i:\n";
    foreach ($rowset as $row) {
        foreach ($row as $col) {
            print $col . "\t";
        }
        print "\n";
    }
    print "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Result set 1:
apple    red
banana   yellow

Result set 2:
orange   orange    150
banana   yellow    175

Result set 3:
lime     green
apple    red
banana   yellow

Siehe auch

  • PDOStatement::columnCount() - Returns the number of columns in the result set
  • PDOStatement::execute() - Führt ein Prepared Statement aus
  • PDOStatement::getColumnMeta() - Returns metadata for a column in a result set
  • PDO::query() - Executes an SQL statement, returning a result set as a PDOStatement object


Returns the number of rows affected by the last SQL statement

  • « PDOStatement::nextRowset
  • PDOStatement::setAttribute »
  • PHP Manual
  • PDOStatement
  • Returns the number of rows affected by the last SQL statement

PDOStatement::rowCount

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::rowCount — Returns the number of rows affected by the last SQL statement

Beschreibung

public PDOStatement::rowCount ( ) : int

PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object.

If the last SQL statement executed by the associated PDOStatement was a SELECT statement, some databases may return the number of rows returned by that statement. However, this behaviour is not guaranteed for all databases and should not be relied on for portable applications.

Hinweis:

This method returns "0" (zero) with the SQLite driver at all times, and with the PostgreSQL driver only when setting the PDO::ATTR_CURSOR statement attribute to PDO::CURSOR_SCROLL.

Rückgabewerte

Returns the number of rows.

Beispiele

Beispiel #1 Return the number of deleted rows

PDOStatement::rowCount() returns the number of rows affected by a DELETE, INSERT, or UPDATE statement.

<?php
/* Delete all rows from the FRUIT table */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();

/* Return number of rows that were deleted */
print("Return number of rows that were deleted:\n");
$count = $del->rowCount();
print("Deleted $count rows.\n");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Return number of rows that were deleted:
Deleted 9 rows.

Beispiel #2 Counting rows returned by a SELECT statement

For most databases, PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement. Instead, use PDO::query() to issue a SELECT COUNT(*) statement with the same predicates as your intended SELECT statement, then use PDOStatement::fetchColumn() to retrieve the number of matching rows.

<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
$res = $conn->query($sql);
$count = $res->fetchColumn();

print "There are " .  $count . " matching records.";

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

There are 2 matching records.

Siehe auch

  • PDOStatement::columnCount() - Returns the number of columns in the result set
  • PDOStatement::fetchColumn() - Returns a single column from the next row of a result set
  • PDO::query() - Executes an SQL statement, returning a result set as a PDOStatement object


Set a statement attribute

  • « PDOStatement::rowCount
  • PDOStatement::setFetchMode »
  • PHP Manual
  • PDOStatement
  • Set a statement attribute

PDOStatement::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::setAttribute — Set a statement attribute

Beschreibung

public PDOStatement::setAttribute ( int $attribute , mixed $value ) : bool

Sets an attribute on the statement. Currently, no generic attributes are set but only driver specific:

  • PDO::ATTR_CURSOR_NAME (Firebird and ODBC specific): Set the name of cursor for UPDATE ... WHERE CURRENT OF.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • PDO::getAttribute() - Retrieve a database connection attribute
  • PDO::setAttribute() - Set an attribute
  • PDOStatement::getAttribute() - Retrieve a statement attribute


Set the default fetch mode for this statement

  • « PDOStatement::setAttribute
  • PDOException »
  • PHP Manual
  • PDOStatement
  • Set the default fetch mode for this statement

PDOStatement::setFetchMode

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::setFetchMode — Set the default fetch mode for this statement

Beschreibung

public PDOStatement::setFetchMode ( int $mode ) : bool
public PDOStatement::setFetchMode ( int $mode = PDO::FETCH_COLUMN , int $colno ) : bool
public PDOStatement::setFetchMode ( int $mode = PDO::FETCH_CLASS , string $classname , array $ctorargs ) : bool
public PDOStatement::setFetchMode ( int $mode = PDO::FETCH_INTO , object $object ) : bool

Parameter-Liste

mode

The fetch mode must be one of the PDO::FETCH_* constants.

colno

Column number.

classname

Class name.

ctorargs

Constructor arguments.

object

Object.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Setting the fetch mode

The following example demonstrates how PDOStatement::setFetchMode() changes the default fetch mode for a PDOStatement object.

<?php
$sql = 'SELECT name, colour, calories FROM fruit';
try {
  $stmt = $dbh->query($sql);
  $result = $stmt->setFetchMode(PDO::FETCH_NUM);
  while ($row = $stmt->fetch()) {
    print $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
  }
}
catch (PDOException $e) {
  print $e->getMessage();
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

apple   red     150
banana  yellow  250
orange  orange  300
kiwi    brown   75
lemon   yellow  25
pear    green   150
watermelon      pink    90


Die Klasse PDOException

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Stellt einen Fehler dar, der von PDO ausgelöst wird. Sie sollten selbst keine PDOException in Ihrem eigenen Code werfen. Unter Ausnahmen finden Sie weitere Informationen über Ausnahmen in PHP.

Klassenbeschreibung

PDOException extends RuntimeException {
/* Eigenschaften */
public array $errorInfo ;
protected string $code ;
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

errorInfo

Entsprechend PDO::errorInfo() oder PDOStatement::errorInfo()

code

SQLSTATE-Fehlercode. Zugriff via Exception::getCode().


PDO-Treiber

Inhaltsverzeichnis

  • CUBRID (PDO)
  • MS SQL Server (PDO)
  • Firebird (PDO)
  • IBM (PDO)
  • Informix (PDO)
  • MySQL (PDO)
  • MS SQL Server (PDO)
  • Oracle (PDO)
  • ODBC and DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)

Die folgenden Treiber implementieren momentan die PDO-Schnittstelle:

Treibername | Unterstützte Datenbanken
PDO_CUBRID | Cubrid
PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD | Firebird
PDO_IBM | IBM DB2
PDO_INFORMIX | IBM Informix Dynamic Server
PDO_MYSQL | MySQL 3.x/4.x/5.x
PDO_OCI | Oracle Call Interface
PDO_ODBC | ODBC v3 (IBM DB2, unixODBC und win32 ODBC)
PDO_PGSQL | PostgreSQL
PDO_SQLITE | SQLite 3 und SQLite 2
PDO_SQLSRV | Microsoft SQL Server / SQL Azure


CUBRID Functions (PDO_CUBRID)

Einführung

PDO_CUBRID is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to CUBRID databases.

Hinweis:

Current version of PDO_CUBRID doesn't support persistent connection now.

Installation

To build the PDO_CUBRID extension, the CUBRID DBMS must be installed on the same system as PHP. PDO_CUBRID is a » PECL extension, so follow the instructions in Installation of PECL extensions to install the PDO_CUBRID extension. Issue the configure command to point to the location of your CUBRID base dir as follows:

   $ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
The configure command defaults to the value of the CUBRID environment variable.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows. Detailed information about installation on Linux and Windows manually, please read build-guide.html in PECL package CUBRID for reference.

Features

PDO_CUBRID Features
Feature | Description
Scrollable cursors | PDO_CUBRID supports scrollable cursors. The default cursor type is forward only, and you can use parameter driver_options in PDO::prepare() to change cursor type.
Timeout | PDO_CUBRID supports sql statement execution timeout setting; You can use PDO::setAttribute() to set timeout value.
Autocommit_mode and Transaction PDO_CUBRID supports both autocommit_mode and transaction, and autocommit_mode is enabled by default. You can use PDO::setAttribute() to change its state.

If you use PDO::beginTransaction() to begin a transaction, it will disable autocommit_mode automatically and restore it after PDO::commit() or PDO::rollBack(). Note that before disabling the autocommit_mode, any pending work is automatically committed.

Multiple SQL Statements | PDO_CUBRID supports Multiple SQL statements. Multiple SQL statements are separated by semicolons (;)
Schema Information | PDO_CUBRID implements a function PDO::cubrid_schema() to get schema information.
LOBs PDO_CUBRID supports BLOB/CLOB data type. The LOB in PDO is represented as a stream, so you can insert LOBs by binding a stream, and get LOBs by reading a stream returned by CUBRID PDO. For example:

Beispiel #1 Insert LOBs in CUBRID PDO

<?php
$fp = fopen('lob_test.png', 'rb');

$sql_stmt = "INSERT INTO lob_test(name, content) VALUES('lob_test.png', ?)";

$stmt = $dbh->prepare($sql_stmt);
$ret = $stmt->bindParam(1, $fp, PDO::PARAM_LOB);
$ret = $stmt->execute();
?>

Beispiel #2 Fetch LOBs in CUBRID PDO

<?php
$sql_stmt = "SELECT content FROM lob_test WHERE name='lob_test.png'";

$stmt = $dbh->prepare($sql_stmt);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_NUM);

header("Content-Type: image/png");
fpassthru($result[0]);
?>

Column meta The PDOStatement::getColumnMeta() in CUBRID PDO will return an associative array containing the following values:
  • type
  • name
  • table
  • def
  • precision
  • scale
  • not_null
  • auto_increment
  • unique_key
  • multiple_key
  • primary_key
  • foreign_key
  • reverse_index
  • reverse_unique
Collection Data Type PDO_CUBRID supports SET/MULTISET/SEQUENCE data type. If you don't specify data type, the default data type is char,for example:

Beispiel #3 Insert set in CUBRID PDO with default data type.

<?php
$conn_str ="cubrid:dbname=demodb;host=localhost;port=33000";
$cubrid_pdo = new PDO($conn_str, 'dba', '');

$cubrid_pdo->exec("DROP TABLE if exists test_tbl");
$cubrid_pdo->exec("CREATE TABLE test_tbl (col_1 SET(VARCHAR))");

$sql_stmt_insert = "INSERT INTO test_tbl VALUES (?);";
$stmt = $cubrid_pdo->prepare($sql_stmt_insert);
$data = array("abc","def","ghi");
$ret = $stmt->bindParam(1, $data, PDO::PARAM_NULL);
$ret = $stmt->execute();
var_Dump($ret);
?>

Beispiel #4 Specify data type when insert set in CUBRID PDO

<?php
$conn_str ="cubrid:dbname=demodb;host=localhost;port=33000";
$cubrid_pdo = new PDO($conn_str, 'dba', '');

$cubrid_pdo->exec("DROP TABLE if exists test_tbl");
$cubrid_pdo->exec("CREATE TABLE test_tbl (col_1 SET(int))");

$sql_stmt_insert = "INSERT INTO test_tbl VALUES (?);";
$stmt = $cubrid_pdo->prepare($sql_stmt_insert);
$data = array(1,2,3,4);
$ret = $stmt->bindParam(1, $data, 0,0,"int");
$ret = $stmt->execute();
var_Dump($ret);
?>

CUBRID Bind Data Types:(The fifth parameter of PDOStatement::bindParam):
  • CHAR
  • STRING
  • NCHAR
  • VARNCHAR
  • BIT
  • VARBIT
  • NUMERIC
  • NUMBER
  • INT
  • SHORT
  • BIGINT
  • MONETARY
  • FLOAT
  • DOUBLE
  • DATE
  • TIME
  • DATETIME
  • TIMESTAMP

Vordefinierte Konstanten

Die folgenden Konstanten werden vom Treiber definiert und sind nur verfügbar, wenn die Extension entweder in PHP einkompiliert oder dynamisch zur Laufzeit geladen wurde. Weiterhin sind diese Konstanten treiberspezifisch und sollten nur mit diesem Treiber benutzt werden. MySQL-spezifische Attribute mit dem PostgreSQL Treiber zu nutzen, kann zu unerwarteten Ergebnissen führen. Kann Ihr Code mit verschiedenen Treibern arbeiten, so können Sie PDO::getAttribute() benutzen, um mit PDO_ATTR_DRIVER_NAME den aktuellen Treiber zu ermitteln.

The following constants can be used when setting the database attribute. They can be passed to PDO::getAttribute() or PDO::setAttribute().

PDO::CUBRID attribute flags
Constant | Description
PDO::CUBRID_ATTR_ISOLATION_LEVEL | Transaction isolation level for the database connection.
PDO::CUBRID_ATTR_LOCK_TIMEOUT | Transaction timeout in seconds.
PDO::CUBRID_ATTR_MAX_STRING_LENGTH | Read only. The maximum string length for bit, varbit, char, varchar, nchar, nchar varying data types when using CUBRID PDO API.

The following constants can be used when setting the transaction isolation level. They can be passed to PDO::getAttribute() or returned by PDO::setAttribute().

PDO::CUBRID isolation level flags
Constant | Description
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE | The lowest isolation level (1). A dirty, non-repeatable or phantom read may occur for the tuple and a non-repeatable read may occur for the table as well.
PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE | A relatively low isolation level (2). A dirty read does not occur, but non-repeatable or phantom read may occur.
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE | The default isolation of CUBRID (3). A dirty, non-repeatable or phantom read may occur for the tuple, but repeatable read is ensured for the table.
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE | A relatively low isolation level (4). A dirty read does not occur, but non-repeatable or phantom read may.
PDO::TRAN_REP_CLASS_REP_INSTANCE | A relatively high isolation level (5). A dirty or non-repeatable read does not occur, but a phantom read may.
PDO::TRAN_SERIALIZABLE | The highest isolation level (6). Problems concerning concurrency (e.g. dirty read, non-repeatable read, phantom read, etc.) do not occur.

The following constants can be used when getting schema information. They can be passed to PDO::cubrid_schema().

PDO::CUBRID schema flags
Constant | Description
PDO::CUBRID_SCH_TABLE | Get name and type of table in CUBRID.
PDO::CUBRID_SCH_VIEW | Get name and type of view in CUBRID.
PDO::CUBRID_SCH_QUERY_SPEC | Get the query definition of view.
PDO::CUBRID_SCH_ATTRIBUTE | Get the attributes of table column.
PDO::CUBRID_SCH_TABLE_ATTRIBUTE | Get the attributes of table.
PDO::CUBRID_SCH_METHOD | Get the instance method. The instance method is a method called by a class instance. It is used more often than the class method because most operations are executed in the instance.
PDO::CUBRID_SCH_TABLE_METHOD | Get the class method. The class method is a method called by a class object. It is usually used to create a new class instance or to initialize it. It is also used to access or update class attributes.
PDO::CUBRID_SCH_METHOD_FILE | Get the information of the file where the method of the table is defined.
PDO::CUBRID_SCH_SUPER_TABLE | Get the name and type of table which table inherites attributes from.
PDO::CUBRID_SCH_SUB_TABLE | Get the name and type of table which inherites attributes from this table.
PDO::CUBRID_SCH_CONSTRAINT | Get the table constraints.
PDO::CUBRID_SCH_TRIGGER | Get the table triggers.
PDO::CUBRID_SCH_TABLE_PRIVILEGE | Get the privilege information of table.
PDO::CUBRID_SCH_COL_PRIVILEGE | Get the privilege information of column.
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE | Get the direct super table of table.
PDO::CUBRID_SCH_PRIMARY_KEY | Get the table primary key.
PDO::CUBRID_SCH_IMPORTED_KEYS | Get imported keys of table.
PDO::CUBRID_SCH_EXPORTED_KEYS | Get exported keys of table.
PDO::CUBRID_SCH_CROSS_REFERENCE | Get reference relationship of tow tables.

Inhaltsverzeichnis

  • PDO_CUBRID DSN — Connecting to CUBRID databases
  • PDO::cubrid_schema — Get the requested schema information


Connecting to CUBRID databases

  • « CUBRID (PDO)
  • PDO::cubrid_schema »
  • PHP Manual
  • CUBRID (PDO)
  • Connecting to CUBRID databases

PDO_CUBRID DSN

(PECL PDO_CUBRID >= 8.3.0.0001)

PDO_CUBRID DSN — Connecting to CUBRID databases

Beschreibung

The PDO_CUBRID Data Source Name (DSN) is composed of the following elements, delimited by semicolons:

DSN prefix

The DSN prefix is cubrid:.

host

The hostname on which the database server resides.

port

The port on which the database server is running.

dbname

The name of the database.

Anmerkungen

Hinweis:

When you estalish the connection to CUBRID, you should give username and password except DSN.

Beispiele

Beispiel #1 PDO_CUBRID DSN examples

The following example shows a PDO_CUBRID DSN for connecting to a CUBRID database:

cubrid:host=localhost;port=33000;dbname=demodb


Get the requested schema information

  • « PDO_CUBRID DSN
  • MS SQL Server (PDO) »
  • PHP Manual
  • CUBRID (PDO)
  • Get the requested schema information

PDO::cubrid_schema

(PECL PDO_CUBRID >= 8.3.0.0001)

PDO::cubrid_schema — Get the requested schema information

Beschreibung

public PDO::cubrid_schema ( int $schema_type , string $table_name = ? , string $col_name = ? ) : array

This function is used to get the requested schema information from database. You have to designate table_name, if you want to get information on certain table, col_name, if you want to get information on certain column (can be used only with PDO::CUBRID_SCH_COL_PRIVILEGE).

The result of this function is returned as a two-dimensional array (column (associative array) * row (numeric array)). The following tables shows types of schema and the column structure of the result array to be returned based on the schema type.

Result Composition of Each Type
Schema | Column Number | Column Name | Value
PDO::CUBRID_SCH_TABLE | 1 | NAME |
 | 2 | TYPE | 0:system table 1:view 2:table
PDO::CUBRID_SCH_VIEW | 1 | NAME |
 | 2 | TYPE | 1:view
PDO::CUBRID_SCH_QUERY_SPEC | 1 | QUERY_SPEC |
PDO::CUBRID_SCH_ATTRIBUTE / PDO::CUBRID_SCH_TABLE_ATTRIBUTE | 1 | ATTR_NAME |
 | 2 | DOMAIN |
 | 3 | SCALE |
 | 4 | PRECISION |
 | 5 | INDEXED | 1:indexed
 | 6 | NOT NULL | 1:not null
 | 7 | SHARED | 1:shared
 | 8 | UNIQUE | 1:unique
 | 9 | DEFAULT |
 | 10 | ATTR_ORDER | base:1
 | 11 | CLASS_NAME |
 | 12 | SOURCE_CLASS |
 | 13 | IS_KEY | 1:key
PDO::CUBRID_SCH_METHOD / PDO::CUBRID_SCH_TABLE_METHOD | 1 | NAME |
 | 2 | RET_DOMAIN |
 | 3 | ARG_DOMAIN |
PDO::CUBRID_SCH_METHOD_FILE | 1 | METHOD_FILE |
PDO::CUBRID_SCH_SUPER_TABLE / PDO::CUBRID_SCH_DIRECT_SUPER_TABLE / PDO::CUBRID_SCH_SUB_TABLE | 1 | CLASS_NAME |
 | 2 | TYPE | 0:system table 1:view 2:table
PDO::CUBRID_SCH_CONSTRAINT | 1 | TYPE | 0:unique 1:index 2:reverse unique 3:reverse index
 | 2 | NAME |
 | 3 | ATTR_NAME |
 | 4 | NUM_PAGES |
 | 5 | NUM_KEYS |
 | 6 | PRIMARY_KEY | 1:primary key
 | 7 | KEY_ORDER | base:1
PDO::CUBRID_SCH_TRIGGER | 1 | NAME |
 | 2 | STATUS |
 | 3 | EVENT |
 | 4 | TARGET_CLASS |
 | 5 | TARGET_ATTR |
 | 6 | ACTION_TIME |
 | 7 | ACTION |
 | 8 | PRIORITY |
 | 9 | CONDITION_TIME |
 | 10 | CONDITION |
PDO::CUBRID_SCH_TABLE_PRIVILEGE / PDO::CUBRID_SCH_COL_PRIVILEGE | 1 | CLASS_NAME / ATTR_NAME |
 | 2 | PRIVILEGE |
 | 3 | GRANTABLE |
PDO::CUBRID_SCH_PRIMARY_KEY | 1 | CLASS_NAME |
 | 2 | ATTR_NAME |
 | 3 | KEY_SEQ | base:1
 | 4 | KEY_NAME |
PDO::CUBRID_SCH_IMPORTED_KEYS / PDO::CUBRID_SCH_EXPORTED_KEYS / PDO::CUBRID_SCH_CROSS_REFERENCE | 1 | PKTABLE_NAME |
 | 2 | PKCOLUMN_NAME |
 | 3 | FKTABLE_NAME | base:1
 | 4 | FKCOLUMN_NAME |
 | 5 | KEY_SEQ | base:1
 | 6 | UPDATE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 7 | DELETE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 8 | FK_NAME |
 | 9 | PK_NAME |

Parameter-Liste

schema_type

Schema type that you want to know.

table_name

Table you want to know the schema of.

col_name

Column you want to know the schema of.

Rückgabewerte

Array containing the schema information, when process is successful;

FALSE, when process is unsuccessful

Beispiele

Beispiel #1 A PDO::cubrid_schema() example

This example shows how to get primary key and foreign keys of table game.

<?php
$pk_list = $dbh->cubrid_schema(PDO::CUBRID_SCH_PRIMARY_KEY, "game");
print_r($pk_list);

$fk_list = $dbh->cubrid_schema(PDO::CUBRID_SCH_IMPORTED_KEYS, "game");
print_r($fk_list);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Result:
Array
(
    [0] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => athlete_code
            [KEY_SEQ] => 3
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

    [1] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => event_code
            [KEY_SEQ] => 2
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

    [2] => Array
        (
            [CLASS_NAME] => game
            [ATTR_NAME] => host_year
            [KEY_SEQ] => 1
            [KEY_NAME] => pk_game_host_year_event_code_athlete_code
        )

)
Array
(
    [0] => Array
        (
            [PKTABLE_NAME] => athlete
            [PKCOLUMN_NAME] => code
            [FKTABLE_NAME] => game
            [FKCOLUMN_NAME] => athlete_code
            [KEY_SEQ] => 1
            [UPDATE_RULE] => 1
            [DELETE_RULE] => 1
            [FK_NAME] => fk_game_athlete_code
            [PK_NAME] => pk_athlete_code
        )

    [1] => Array
        (
            [PKTABLE_NAME] => event
            [PKCOLUMN_NAME] => code
            [FKTABLE_NAME] => game
            [FKCOLUMN_NAME] => event_code
            [KEY_SEQ] => 1
            [UPDATE_RULE] => 1
            [DELETE_RULE] => 1
            [FK_NAME] => fk_game_event_code
            [PK_NAME] => pk_event_code
        )

)


Microsoft SQL Server and Sybase Functions (PDO_DBLIB)

Einführung

PDO_DBLIB is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Microsoft SQL Server and Sybase databases through the FreeTDS library.

This extension is not available anymore on Windows with PHP 5.3 or later.

On Windows, you should use SqlSrv, an alternative driver for MS SQL is available from Microsoft: » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx .

If it is not possible to use SqlSrv, you can use the PDO_ODBC driver to connect to Microsoft SQL Server and Sybase databases, as the native Windows DB-LIB is ancient, thread un-safe and no longer supported by Microsoft.

Inhaltsverzeichnis

  • PDO_DBLIB DSN — Connecting to Microsoft SQL Server and Sybase databases


Connecting to Microsoft SQL Server and Sybase databases

  • « MS SQL Server (PDO)
  • Firebird (PDO) »
  • PHP Manual
  • MS SQL Server (PDO)
  • Connecting to Microsoft SQL Server and Sybase databases

PDO_DBLIB DSN

(PECL PDO_DBLIB >= 0.9.0)

PDO_DBLIB DSN — Connecting to Microsoft SQL Server and Sybase databases

Beschreibung

The PDO_DBLIB Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is sybase: if PDO_DBLIB was linked against the Sybase ct-lib libraries, mssql: if PDO_DBLIB was linked against the Microsoft SQL Server libraries, or dblib: if PDO_DBLIB was linked against the FreeTDS libraries.

host

The hostname on which the database server resides. Defaults to 127.0.0.1.

dbname

The name of the database.

charset

The client character set.

appname

The application name (used in sysprocesses). Defaults to "PHP Generic DB-lib" or "PHP freetds".

secure

Currently unused.

Beispiele

Beispiel #1 PDO_DBLIB DSN examples

The following examples show a PDO_DBLIB DSN for connecting to Microsoft SQL Server and Sybase databases:

mssql:host=localhost;dbname=testdb
sybase:host=localhost;dbname=testdb
dblib:host=localhost;dbname=testdb


Firebird Functions (PDO_FIREBIRD)

Einführung

PDO_FIREBIRD is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Firebird database.

Installation

Use --with-pdo-firebird[=DIR] to install the PDO Firebird extension, where the optional [=DIR] is the Firebird base install directory.

$ ./configure --with-pdo-firebird

Vordefinierte Konstanten

Die folgenden Konstanten werden vom Treiber definiert und sind nur verfügbar, wenn die Extension entweder in PHP einkompiliert oder dynamisch zur Laufzeit geladen wurde. Weiterhin sind diese Konstanten treiberspezifisch und sollten nur mit diesem Treiber benutzt werden. MySQL-spezifische Attribute mit dem PostgreSQL Treiber zu nutzen, kann zu unerwarteten Ergebnissen führen. Kann Ihr Code mit verschiedenen Treibern arbeiten, so können Sie PDO::getAttribute() benutzen, um mit PDO_ATTR_DRIVER_NAME den aktuellen Treiber zu ermitteln.

PDO::FB_ATTR_DATE_FORMAT (int)

Available since PHP 5.3.0.

Sets the date format.

PDO::FB_ATTR_TIME_FORMAT (int)

Sets the time format.

Available since PHP 5.3.0.

PDO::FB_ATTR_TIMESTAMP_FORMAT (int)

Sets the timestamp format.

Available since PHP 5.3.0.

Inhaltsverzeichnis

  • PDO_FIREBIRD DSN — Connecting to Firebird databases


Connecting to Firebird databases

  • « Firebird (PDO)
  • IBM (PDO) »
  • PHP Manual
  • Firebird (PDO)
  • Connecting to Firebird databases

PDO_FIREBIRD DSN

(PECL PDO_FIREBIRD >= 0.1.0)

PDO_FIREBIRD DSN — Connecting to Firebird databases

Beschreibung

The PDO_FIREBIRD Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is firebird:.

dbname

The name of the database.

charset

The character set.

role

The SQL role name.

dialect

The dialect of the database; either 1 or 3. If not specified, the dialect defaults to 3. Available as of PHP 7.4.0.

Beispiele

Beispiel #1 PDO_FIREBIRD DSN example with path

The following example shows a PDO_FIREBIRD DSN for connecting to Firebird databases:

firebird:dbname=/path/to/DATABASE.FDB

Beispiel #2 PDO_FIREBIRD DSN example with port and path

The following example shows a PDO_FIREBIRD DSN for connecting to a Firebird database using hostname port and path:

firebird:dbname=hostname/port:/path/to/DATABASE.FDB

Beispiel #3 PDO_FIREBIRD DSN example with localhost and path to employee.fdb on Debian system

The following example shows a PDO_FIREBIRD DSN for connecting to a Firebird database employee.fdb using localhost:

firebird:dbname=localhost:/var/lib/firebird/2.5/data/employee.fdb

Beispiel #4 PDO_FIREBIRD DSN to connect to a dialect 1 database

The following example shows a PDO_FIREBIRD DSN for connecting to a Firebird database test.fdb which has been created using dialect 1. This is only supported as of PHP 7.4.0.

firebird:dbname=localhost:/var/lib/firebird/2.5/data/test.fdb;CHARSET=Windows-1252;dialect=1


IBM Functions (PDO_IBM)

Einführung

PDO_IBM is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to IBM databases.

Installation

To build the PDO_IBM extension, the DB2 Client v9.1 or later must be installed on the same system as PHP. The DB2 Client can be downloaded from the IBM » Application Development Site.

Hinweis: Note

The DB2 Client v9.1 or later supports direct access to DB2 for Linux, UNIX, and Windows v8 and v9.1 servers.

The DB2 Client v9.1 also supports access to DB2 UDB for i5 and DB2 UDB for z/OS servers using the separately purchased » DB2 Connect product.

PDO_IBM is a » PECL extension, so follow the instructions in Installation of PECL extensions to install the PDO_IBM extension. Issue the configure command to point to the location of your DB2 Client header files and libraries as follows:

bash$ ./configure --with-pdo-ibm=/path/to/sqllib[,shared]
The configure command defaults to the value of the DB2DIR environment variable.

Inhaltsverzeichnis

  • PDO_IBM DSN — Connecting to IBM databases


Connecting to IBM databases

  • « IBM (PDO)
  • Informix (PDO) »
  • PHP Manual
  • IBM (PDO)
  • Connecting to IBM databases

PDO_IBM DSN

(PECL PDO_IBM >= 0.9.0)

PDO_IBM DSN — Connecting to IBM databases

Beschreibung

The PDO_IBM Data Source Name (DSN) is based on the IBM CLI DSN. The major components of the PDO_IBM DSN are:

DSN prefix

The DSN prefix is ibm:.

DSN

The DSN can be any of the following:

  • a) Data source setup using db2cli.ini or odbc.ini

  • b) Catalogued database name i.e. database alias in the DB2 client catalog

  • c) Complete connection string in the following format: DRIVER={IBM DB2 ODBC DRIVER};DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password; where the parameters represent the following values:

    database

    The name of the database.

    hostname

    The hostname or IP address of the database server.

    port

    The TCP/IP port on which the database is listening for requests.

    username

    The username with which you are connecting to the database.

    password

    The password with which you are connecting to the database.

Beispiele

Beispiel #1 PDO_IBM DSN example using db2cli.ini

The following example shows a PDO_IBM DSN for connecting to an DB2 database cataloged as DB2_9 in db2cli.ini:

$db = new PDO("ibm:DSN=DB2_9", "", "");

[DB2_9]
Database=testdb
Protocol=tcpip
Hostname=11.22.33.444
Servicename=56789

Beispiel #2 PDO_IBM DSN example using a connection string

The following example shows a PDO_IBM DSN for connecting to an DB2 database named testdb using the DB2 CLI connection string syntax.

$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
  "HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");


Informix Functions (PDO_INFORMIX)

Einführung

PDO_INFORMIX is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Informix databases.

Installation

To build the PDO_INFORMIX extension, the Informix Client SDK 2.81 UC1 or higher must be installed on the same system as PHP. The Informix Client SDK is available from the » IBM Informix Support Site.

PDO_INFORMIX is a » PECL extension, so follow the instructions in Installation of PECL extensions to install the PDO_INFORMIX extension. Issue the configure command to point to the location of your Informix Client SDK header files and libraries as follows:

   bash$ ./configure --with-pdo-informix=/path/to/SDK[,shared]
The configure command defaults to the value of the INFORMIXDIR environment variable.

Scrollable cursors

PDO_INFORMIX supports scrollable cursors; however, they are not enabled by default. To enable scrollable cursor support, you must either set ENABLESCROLLABLECURSORS=1 in the corresponding ODBC connection settings in odbc.ini or pass the EnableScrollableCursors=1 clause in the DSN connection string.

Inhaltsverzeichnis

  • PDO_INFORMIX DSN — Connecting to Informix databases


Connecting to Informix databases

  • « Informix (PDO)
  • MySQL (PDO) »
  • PHP Manual
  • Informix (PDO)
  • Connecting to Informix databases

PDO_INFORMIX DSN

(PECL PDO_INFORMIX >= 0.1.0)

PDO_INFORMIX DSN — Connecting to Informix databases

Beschreibung

The PDO_INFORMIX Data Source Name (DSN) is based on the Informix ODBC DSN string. Details on configuring an Informix ODBC DSN are available from the » Informix Dynamic Server Information Center. The major components of the PDO_INFORMIX DSN are:

DSN prefix

The DSN prefix is informix:.

DSN

The DSN can be either a data source setup using odbc.ini or a complete » connection string.

Beispiele

Beispiel #1 PDO_INFORMIX DSN example using odbc.ini

The following example shows a PDO_INFORMIX DSN for connecting to an Informix database cataloged as Infdrv33 in odbc.ini:

$db = new PDO("informix:DSN=Infdrv33", "", "");

[ODBC Data Sources]
Infdrv33=INFORMIX 3.3 32-BIT

[Infdrv33]
Driver=/opt/informix/csdk_2.81.UC1G2/lib/cli/iclis09b.so
Description=INFORMIX 3.3 32-BIT
Database=common_db
LogonID=testuser
pwd=testpass
Servername=ids_server
DB_LOCALE=en_US.819
OPTIMIZEAUTOCOMMIT=1
ENABLESCROLLABLECURSORS=1

Beispiel #2 PDO_INFORMIX DSN example using a connection string

The following example shows a PDO_INFORMIX DSN for connecting to an Informix database named common_db using the Informix connection string syntax.

$db = new PDO("informix:host=host.domain.com; service=9800;
    database=common_db; server=ids_server; protocol=onsoctcp;
    EnableScrollableCursors=1", "testuser", "tespass");


MySQL Functions (PDO_MYSQL)

Einführung

PDO_MYSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to MySQL databases.

PDO_MYSQL uses emulated prepares by default.

MySQL 8

When running a PHP version before 7.1.16, or PHP 7.2 before 7.2.4, set MySQL 8 Server's default password plugin to mysql_native_password or else you will see errors similar to The server requested authentication method unknown to the client [caching_sha2_password] even when caching_sha2_password is not used.

This is because MySQL 8 defaults to caching_sha2_password, a plugin that is not recognized by the older PHP (mysqlnd) releases. Instead, change it by setting default_authentication_plugin=mysql_native_password in my.cnf. The caching_sha2_password plugin will be supported in a future PHP release. In the meantime, the mysql_xdevapi extension does support it.

Warnung

Beware: Some MySQL table types (storage engines) do not support transactions. When writing transactional database code using a table type that does not support transactions, MySQL will pretend that a transaction was initiated successfully. In addition, any DDL queries issued will implicitly commit any pending transactions.

Installation

The common Unix distributions include binary versions of PHP that can be installed. Although these binary versions are typically built with support for the MySQL extensions, the extension libraries themselves may need to be installed using an additional package. Check the package manager than comes with your chosen distribution for availability.

For example, on Ubuntu the php5-mysql package installs the ext/mysql, ext/mysqli, and PDO_MYSQL PHP extensions. On CentOS, the php-mysql package also installs these three PHP extensions.

Alternatively, you can compile this extension yourself. Building PHP from source allows you to specify the MySQL extensions you want to use, as well as your choice of client library for each extension.

When compiling, use --with-pdo-mysql[=DIR] to install the PDO MySQL extension, where the optional [=DIR] is the MySQL base library. As of PHP 5.4, mysqlnd is the default library. For details about choosing a library, see Choosing a MySQL library.

Optionally, the --with-mysql-sock[=DIR] sets to location to the MySQL unix socket pointer for all MySQL extensions, including PDO_MYSQL. If unspecified, the default locations are searched.

Optionally, the --with-zlib-dir[=DIR] is used to set the path to the libz install prefix.

$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock

SSL support is enabled using the appropriate PDO_MySQL constants, which is equivalent to calling the » MySQL C API function mysql_ssl_set(). Also, SSL cannot be enabled with PDO::setAttribute because the connection already exists. See also the MySQL documentation about » connecting to MySQL with SSL.

Vordefinierte Konstanten

Die folgenden Konstanten werden vom Treiber definiert und sind nur verfügbar, wenn die Extension entweder in PHP einkompiliert oder dynamisch zur Laufzeit geladen wurde. Weiterhin sind diese Konstanten treiberspezifisch und sollten nur mit diesem Treiber benutzt werden. MySQL-spezifische Attribute mit dem PostgreSQL Treiber zu nutzen, kann zu unerwarteten Ergebnissen führen. Kann Ihr Code mit verschiedenen Treibern arbeiten, so können Sie PDO::getAttribute() benutzen, um mit PDO_ATTR_DRIVER_NAME den aktuellen Treiber zu ermitteln.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (int)
If this attribute is set to true on a PDOStatement, the MySQL driver will use the buffered versions of the MySQL API. If you're writing portable code, you should use PDOStatement::fetchAll() instead.

Beispiel #1 Forcing queries to be buffered in mysql

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
    $stmt = $db->prepare('select * from foo',
        array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
} else {
    die("my application only works with mysql; I should use \$stmt->fetchAll() instead");
}
?>

PDO::MYSQL_ATTR_LOCAL_INFILE (int)

Enable LOAD LOCAL INFILE.

Note, this constant can only be used in the driver_options array when constructing a new database handle.

PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY (string)

Allows restricting LOCAL DATA loading to files located in this designated directory.

Note, this constant can only be used in the driver_options array when constructing a new database handle.

PDO::MYSQL_ATTR_INIT_COMMAND (int)

Command to execute when connecting to the MySQL server. Will automatically be re-executed when reconnecting.

Note, this constant can only be used in the driver_options array when constructing a new database handle.

PDO::MYSQL_ATTR_READ_DEFAULT_FILE (int)

Read options from the named option file instead of from my.cnf. This option is not available if mysqlnd is used, because mysqlnd does not read the mysql configuration files.

PDO::MYSQL_ATTR_READ_DEFAULT_GROUP (int)

Read options from the named group from my.cnf or the file specified with MYSQL_READ_DEFAULT_FILE. This option is not available if mysqlnd is used, because mysqlnd does not read the mysql configuration files.

PDO::MYSQL_ATTR_MAX_BUFFER_SIZE (int)

Maximum buffer size. Defaults to 1 MiB. This constant is not supported when compiled against mysqlnd.

PDO::MYSQL_ATTR_DIRECT_QUERY (int)

Perform direct queries, don't use prepared statements.

PDO::MYSQL_ATTR_FOUND_ROWS (int)

Return the number of found (matched) rows, not the number of changed rows.

PDO::MYSQL_ATTR_IGNORE_SPACE (int)

Permit spaces after function names. Makes all functions names reserved words.

PDO::MYSQL_ATTR_COMPRESS (int)

Enable network communication compression.

PDO::MYSQL_ATTR_SSL_CA (int)

The file path to the SSL certificate authority.

PDO::MYSQL_ATTR_SSL_CAPATH (int)

The file path to the directory that contains the trusted SSL CA certificates, which are stored in PEM format.

PDO::MYSQL_ATTR_SSL_CERT (int)

The file path to the SSL certificate.

PDO::MYSQL_ATTR_SSL_CIPHER (int)

A list of one or more permissible ciphers to use for SSL encryption, in a format understood by OpenSSL. For example: DHE-RSA-AES256-SHA:AES128-SHA

PDO::MYSQL_ATTR_SSL_KEY (int)

The file path to the SSL key.

PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT (int)

Provides a way to disable verification of the server SSL certificate.

Dies existiert seit PHP 7.0.18 and PHP 7.1.4.

PDO::MYSQL_ATTR_MULTI_STATEMENTS (int)

Disables multi query execution in both PDO::prepare() and PDO::query() when set to false.

Note, this constant can only be used in the driver_options array when constructing a new database handle.

Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

PDO_MYSQL Configuration Options
Name | Standard | Veränderbar
pdo_mysql.default_socket | "/tmp/mysql.sock" | PHP_INI_SYSTEM
pdo_mysql.debug | NULL | PHP_INI_SYSTEM
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

pdo_mysql.default_socket string

Sets a Unix domain socket. This value can either be set at compile time if a domain socket is found at configure. This ini setting is Unix only.

pdo_mysql.debug bool

Enables debugging for PDO_MYSQL. This setting is only available when PDO_MYSQL is compiled against mysqlnd and in PDO debug mode.

Inhaltsverzeichnis

  • PDO_MYSQL DSN — Connecting to MySQL databases


Connecting to MySQL databases

  • « MySQL (PDO)
  • MS SQL Server (PDO) »
  • PHP Manual
  • MySQL (PDO)
  • Connecting to MySQL databases

PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSN — Connecting to MySQL databases

Beschreibung

The PDO_MYSQL Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is mysql:.

host

The hostname on which the database server resides.

port

The port number where the database server is listening.

dbname

The name of the database.

unix_socket

The MySQL Unix socket (shouldn't be used with host or port).

charset

The character set. See the character set concepts documentation for more information.

Beispiele

Beispiel #1 PDO_MYSQL DSN examples

The following example shows a PDO_MYSQL DSN for connecting to MySQL databases:

mysql:host=localhost;dbname=testdb
More complete examples:
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

Anmerkungen

Hinweis: Unix only:

When the host name is set to "localhost", then the connection to the server is made thru a domain socket. If PDO_MYSQL is compiled against libmysqlclient then the location of the socket file is at libmysqlclient's compiled in location. If PDO_MYSQL is compiled against mysqlnd a default socket can be set thru the pdo_mysql.default_socket setting.


Microsoft SQL Server Functions (PDO_SQLSRV)

Einführung

PDO_SQLSRV is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to MS SQL Server (starting with SQL Server 2005) and SQL Azure databases.

Installation

The PDO_SQLSRV extension is enabled by adding appropriate DLL file to your PHP extension directory and the corresponding entry to the php.ini file. The PDO_SQLSRV download comes 8 driver files, four of which are for PDO support. If you are running non-thread-safe PHP (PHP 5.3), use the php_pdo_sqlsrv_53_nts.dll file. (You should use a non-thread-safe version if you are using IIS as your web server). If you are running thread-safe PHP, use the php_pdo_sqlsrv_53_ts.dll file. Similarly for PHP 5.4, use the php_pdo_sqlsrv_54_nts.dll or php_pdo_sqlsrv_54_ts.dll depending on whether your PHP installation is non-thread-safe or thread-safe.

The most recent version of the driver is available for download here: » SQLSRV download. If you need support for PHP 5.2 and/or PHP compiled with VC6, use the 2.0 release of the driver: » SQLSRV 2.0 download. The driver sources are hosted in a » public repository.

For more information about system requirements, see » SQLSRV System Requirements.

The PDO_SQLSRV extension is only compatible with PHP running on Windows. For Linux, see ODBC and » Microsoft's SQL Server ODBC Driver for Linux.

Vordefinierte Konstanten

Die folgenden Konstanten werden vom Treiber definiert und sind nur verfügbar, wenn die Extension entweder in PHP einkompiliert oder dynamisch zur Laufzeit geladen wurde. Weiterhin sind diese Konstanten treiberspezifisch und sollten nur mit diesem Treiber benutzt werden. MySQL-spezifische Attribute mit dem PostgreSQL Treiber zu nutzen, kann zu unerwarteten Ergebnissen führen. Kann Ihr Code mit verschiedenen Treibern arbeiten, so können Sie PDO::getAttribute() benutzen, um mit PDO_ATTR_DRIVER_NAME den aktuellen Treiber zu ermitteln.

PDO::SQLSRV_TXN_READ_UNCOMMITTED (int)
This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Read Uncommitted.
PDO::SQLSRV_TXN_READ_COMMITTED (int)
This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Read Committed.
PDO::SQLSRV_TXN_REPEATABLE_READ (int)
This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Repeateable Read.
PDO::SQLSRV_TXN_SNAPSHOT (int)
This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Snapshot.
PDO::SQLSRV_TXN_SERIALIZABLE (int)
This constant is an acceptable value for the SQLSRV DSN key TransactionIsolation. This constant sets the transaction isolation level for the connection to Serializable.
PDO::SQLSRV_ENCODING_BINARY (int)
Specifies that data is sent/retrieved as a raw byte stream to/from the server without performing encoding or translation. This constant can be passed to PDOStatement::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_SYSTEM (int)
Specifies that data is sent/retrieved to/from the server as 8-bit characters as specified in the code page of the Windows locale that is set on the system. Any multi-byte characters or characters that do not map into this code page are substituted with a single byte question mark (?) character. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_UTF8 (int)
Specifies that data is sent/retrieved to/from the server in UTF-8 encoding. This is the default encoding. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_DEFAULT (int)
Specifies that data is sent/retrieved to/from the server according to PDO::SQLSRV_ENCODING_SYSTEM if specified during connection. The connection's encoding is used if specified in a prepare statement. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn, and PDOStatement::bindParam.
PDO::SQLSRV_ATTR_QUERY_TIMEOUT (int)
A non-negative integer representing the timeout period, in seconds. Zero (0) is the default and means no timeout. This constant can be passed to PDOStatement::setAttribute, PDO::setAttribute, and PDO::prepare.
PDO::SQLSRV_ATTR_DIRECT_QUERY (int)
Indicates that a query should be executed directly, without being prepared. This constant can be passed to PDO::setAttribute, and PDO::prepare. For more information, see » Direct and Prepared Statement Execution.

Inhaltsverzeichnis

  • PDO_SQLSRV DSN — Connecting to MS SQL Server and SQL Azure databases


Connecting to MS SQL Server and SQL Azure databases

  • « MS SQL Server (PDO)
  • Oracle (PDO) »
  • PHP Manual
  • MS SQL Server (PDO)
  • Connecting to MS SQL Server and SQL Azure databases

PDO_SQLSRV DSN

(PECL pdo_sqlsrv >= 2.0.1)

PDO_SQLSRV DSN — Connecting to MS SQL Server and SQL Azure databases

Beschreibung

The PDO_SQLSRV Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is sqlsrv:.

APP

The application name used in tracing.

ConnectionPooling

Specifies whether the connection is assigned from a connection pool (1 or true) or not (0 or false).

Database

The name of the database.

Encrypt

Specifies whether the communication with SQL Server is encrypted (1 or true) or unencrypted (0 or false).

Failover_Partner

Specifies the server and instance of the database's mirror (if enabled and configured) to use when the primary server is unavailable.

LoginTimeout

Specifies the number of seconds to wait before failing the connection attempt.

MultipleActiveResultSets

Disables or explicitly enables support for multiple active Result sets (MARS).

QuotedId

Specifies whether to use SQL-92 rules for quoted identifiers (1 or true) or to use legacy Transact-SQL rules (0 or false).

Server

The name of the database server.

TraceFile

Specifies the path for the file used for trace data.

TraceOn

Specifies whether ODBC tracing is enabled (1 or true) or disabled (0 or false) for the connection being established.

TransactionIsolation

Specifies the transaction isolation level. The accepted values for this
option are PDO::SQLSRV_TXN_READ_UNCOMMITTED, PDO::SQLSRV_TXN_READ_COMMITTED,
PDO::SQLSRV_TXN_REPEATABLE_READ, PDO::SQLSRV_TXN_SNAPSHOT, and
PDO::SQLSRV_TXN_SERIALIZABLE.

TrustServerCertificate

Specifies whether the client should trust (1 or true) or reject (0 or false) a self-signed server certificate.

WSID

Specifies the name of the computer for tracing.

Beispiele

Beispiel #1 PDO_SQLSRV DSN examples

The following example shows how to connecto to a specified MS SQL Server database:

$c = new PDO("sqlsrv:Server=localhost;Database=testdb", "UserName", "Password");

The following example shows how to connect to a MS SQL Server database on a specified port:

$c = new PDO("sqlsrv:Server=localhost,1521;Database=testdb", "UserName", "Password");

The following example shows how to connecto to a SQL Azure database with server ID 12345abcde. Note that when you connect to SQL Azure with PDO, your username will be UserName@12345abcde (UserName@ServerId).

$c = new PDO("sqlsrv:Server=12345abcde.database.windows.net;Database=testdb", "UserName@12345abcde", "Password");


Oracle Functions (PDO_OCI)

Installation

If the Oracle Database is on the same machine as PHP, the database software already contains the necessary libraries. When PHP is on a different machine, use the free » Oracle Instant Client libraries. For details refer to the OCI8 Requirements section.

Use --with-pdo-oci[=DIR] to install the PDO Oracle OCI extension, where the optional [=DIR] is the Oracle Home directory. [=DIR] defaults to the $ORACLE_HOME environment variable.

Use --with-pdo-oci=instantclient,prefix,version for an Oracle Instant Client SDK, where prefix and version are configured.

// Using $ORACLE_HOME
$ ./configure --with-pdo-oci

// Using OIC for Linux with 10.2.0.3 RPMs with a /usr prefix
$ ./configure --with-pdo-oci=instantclient,/usr,10.2.0.3

Vordefinierte Konstanten

Die folgenden Konstanten werden vom Treiber definiert und sind nur verfügbar, wenn die Extension entweder in PHP einkompiliert oder dynamisch zur Laufzeit geladen wurde. Weiterhin sind diese Konstanten treiberspezifisch und sollten nur mit diesem Treiber benutzt werden. MySQL-spezifische Attribute mit dem PostgreSQL Treiber zu nutzen, kann zu unerwarteten Ergebnissen führen. Kann Ihr Code mit verschiedenen Treibern arbeiten, so können Sie PDO::getAttribute() benutzen, um mit PDO_ATTR_DRIVER_NAME den aktuellen Treiber zu ermitteln.

PDO::OCI_ATTR_ACTION (int)

Provides a way to specify the action on the database session.

Dies existiert seit PHP 7.2.16 and 7.3.3

PDO::OCI_ATTR_CLIENT_INFO (int)

Provides a way to specify the client info on the database session.

Dies existiert seit PHP 7.2.16 and 7.3.3

PDO::OCI_ATTR_CLIENT_IDENTIFIER (int)

Provides a way to specify the client identifier on the database session.

Dies existiert seit PHP 7.2.16 and 7.3.3

PDO::OCI_ATTR_MODULE (int)

Provides a way to specify the module on the database session.

Dies existiert seit PHP 7.2.16 and 7.3.3

Inhaltsverzeichnis

  • PDO_OCI DSN — Connecting to Oracle databases


Connecting to Oracle databases

  • « Oracle (PDO)
  • ODBC and DB2 (PDO) »
  • PHP Manual
  • Oracle (PDO)
  • Connecting to Oracle databases

PDO_OCI DSN

(PECL PDO_OCI >= 0.1.0)

PDO_OCI DSN — Connecting to Oracle databases

Beschreibung

The PDO_OCI Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is oci:.

dbname (Oracle Instant Client)

The URI for the Oracle Instant Client connection takes the form of dbname=//hostname:port-number/database. If you are connecting to a database defined in tnsnames.ora, use only the name of the database: dbname=database.

charset

The client-side character set for the current environment handle.

Beispiele

Beispiel #1 PDO_OCI DSN examples

The following examples show a PDO_OCI DSN for connecting to Oracle databases:

// Connect to a database defined in tnsnames.ora
oci:dbname=mydb

// Connect using the Oracle Instant Client
oci:dbname=//localhost:1521/mydb


ODBC and DB2 Functions (PDO_ODBC)

Einführung

PDO_ODBC is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to databases through ODBC drivers or through the IBM DB2 Call Level Interface (DB2 CLI) library. PDO_ODBC currently supports three different "flavours" of database drivers:

ibm-db2

Supports access to IBM DB2 Universal Database, Cloudscape, and Apache Derby servers through the free DB2 express-C client.

unixODBC

Supports access to database servers through the unixODBC driver manager and the database's own ODBC drivers.

generic

Offers a compile option for ODBC driver managers that are not explicitly supported by PDO_ODBC.

On Windows, php_pdo_odbc.dll has to be enabled as extension in php.ini. It is linked against the Windows ODBC Driver Manager so that PHP can connect to any database cataloged as a System DSN, and is the recommended driver for connecting to Microsoft SQL Server databases.

Installation

PDO_ODBC on UNIX systems

  1. As of PHP 5.1, PDO_ODBC is included in the PHP source. You can compile the PDO_ODBC extension as either a static or shared module using the following configure commands.

    ibm_db2

    ./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
    To build PDO_ODBC with the ibm-db2 flavour, you have to have previously installed the DB2 application development headers on the same machine on which you are compiling PDO_ODBC. The DB2 application development headers are an installable option in the DB2 servers, and are also available as part of the DB2 Application Development Client freely available for download from the IBM developerWorks » website.

    If you do not supply a location for the DB2 libraries and headers to the configure command, PDO_ODBC defaults to /home/db2inst1/sqllib.

    unixODBC

    ./configure --with-pdo-odbc=unixODBC,/usr/local
    If you do not supply a location for the unixODBC libraries and headers to the configure command, PDO_ODBC defaults to /usr/local.

    generic
    ./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags

Vordefinierte Konstanten

Die folgenden Konstanten werden vom Treiber definiert und sind nur verfügbar, wenn die Extension entweder in PHP einkompiliert oder dynamisch zur Laufzeit geladen wurde. Weiterhin sind diese Konstanten treiberspezifisch und sollten nur mit diesem Treiber benutzt werden. MySQL-spezifische Attribute mit dem PostgreSQL Treiber zu nutzen, kann zu unerwarteten Ergebnissen führen. Kann Ihr Code mit verschiedenen Treibern arbeiten, so können Sie PDO::getAttribute() benutzen, um mit PDO_ATTR_DRIVER_NAME den aktuellen Treiber zu ermitteln.

PDO::ODBC_ATTR_USE_CURSOR_LIBRARY (int)

This option controls whether the ODBC cursor library is used. The ODBC cursor library supports some advanced ODBC features (e.g. block scrollable cursors), which may not be implemented by the driver. The following values are supported:

  • PDO::ODBC_SQL_USE_IF_NEEDED (the default): use the ODBC cursor library when needed.

  • PDO::ODBC_SQL_USE_DRIVER: never use the ODBC cursor library.

  • PDO::ODBC_SQL_USE_ODBC: always use the ODBC cursor library.

PDO::ODBC_ATTR_ASSUME_UTF8 (bool)

Windows only. If true, UTF-16 encoded character data (CHAR, VARCHAR and LONGVARCHAR) is converted to UTF-8 when reading from or writing data to the database. If false (the default), no character encoding conversion is done.

Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

PDO_ODBC Configuration Options
Name | Standard | Veränderbar | Changelog
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | Available since PHP 5.1.0.
pdo_odbc.db2_instance_name | NULL | PHP_INI_SYSTEM | Available since PHP 5.1.1. Dieses veraltete Feature wird in der Zukunft sicherlich entfernt.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

pdo_odbc.connection_pooling string

Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" (equals to ""). The parameter describes how strict the connection manager should be when matching connection parameters to existing pooled connections. strict is the recommend default, and will result in the use of cached connections only when all the connection parameters match exactly. relaxed will result in the use of cached connections when similar connection parameters are used. This can result in increased use of the cache, at the risk of bleeding connection information between (for example) virtual hosts.

This setting can only be changed from the php.ini file, and affects the entire process; any other modules loaded into the process that use the same ODBC libraries will be affected too, including the Unified ODBC extension.

Warnung

relaxed matching should not be used on a shared server, for security reasons.

Tipp

Leave this setting at the default strict setting unless you have good reason to change it.

pdo_odbc.db2_instance_name string

If you compile PDO_ODBC using the db2 flavour, this setting sets the value of the DB2INSTANCE environment variable on Linux and UNIX operating systems to the specified name of the DB2 instance. This enables PDO_ODBC to resolve the location of the DB2 libraries and make cataloged connections to DB2 databases.

This setting can only be changed from the php.ini file, and affects the entire process; any other modules loaded into the process that use the same ODBC libraries will be affected too, including the Unified ODBC extension.

This setting has no effect on Windows.

Inhaltsverzeichnis

  • PDO_ODBC DSN — Connecting to ODBC or DB2 databases


Connecting to ODBC or DB2 databases

  • « ODBC and DB2 (PDO)
  • PostgreSQL (PDO) »
  • PHP Manual
  • ODBC and DB2 (PDO)
  • Connecting to ODBC or DB2 databases

PDO_ODBC DSN

(PECL PDO_ODBC >= 0.1.0)

PDO_ODBC DSN — Connecting to ODBC or DB2 databases

Beschreibung

The PDO_ODBC Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is odbc:. If you are connecting to a database cataloged in the ODBC driver manager or the DB2 catalog, you can append the cataloged name of the database to the DSN.

DSN

The name of the database as cataloged in the ODBC driver manager or the DB2 catalog. Alternately, you can provide a complete ODBC connection string to connect to a database as described at » http://www.connectionstrings.com/.

UID

The name of the user for the connection. If you specify the user name in the DSN, PDO ignores the value of the user name argument in the PDO constructor.

PWD

The password of the user for the connection. If you specify the password in the DSN, PDO ignores the value of the password argument in the PDO constructor.

Beispiele

Beispiel #1 PDO_ODBC DSN example (ODBC driver manager)

The following example shows a PDO_ODBC DSN for connecting to an ODBC database cataloged as testdb in the ODBC driver manager:

odbc:testdb

Beispiel #2 PDO_ODBC DSN example (IBM DB2 uncataloged connection)

The following example shows a PDO_ODBC DSN for connecting to an IBM DB2 database named SAMPLE using the full ODBC DSN syntax:

odbc:DRIVER={IBM DB2 ODBC DRIVER};HOSTNAME=localhost;PORT=50000;DATABASE=SAMPLE;PROTOCOL=TCPIP;UID=db2inst1;PWD=ibmdb2;

Beispiel #3 PDO_ODBC DSN example (Microsoft Access uncataloged connection)

The following example shows a PDO_ODBC DSN for connecting to a Microsoft Access database stored at C:\db.mdb using the full ODBC DSN syntax:

odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\db.mdb;Uid=Admin


PostgreSQL Functions (PDO_PGSQL)

Einführung

PDO_PGSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to PostgreSQL databases.

Ressource-Typen

This extension defines a stream resource returned by PDO::pgsqlLOBOpen().

Installation

Use --with-pdo-pgsql[=DIR] to install the PDO PostgreSQL extension, where the optional [=DIR] is the PostgreSQL base install directory, or the path to pg_config.

$ ./configure --with-pdo-pgsql

Inhaltsverzeichnis

  • PDO_PGSQL DSN — Connecting to PostgreSQL databases
  • PDO::pgsqlCopyFromArray — Copy data from PHP array into table
  • PDO::pgsqlCopyFromFile — Copy data from file into table
  • PDO::pgsqlCopyToArray — Copy data from database table into PHP array
  • PDO::pgsqlCopyToFile — Copy data from table into file
  • PDO::pgsqlGetNotify — Get asynchronous notification
  • PDO::pgsqlGetPid — Get the server PID
  • PDO::pgsqlLOBCreate — Creates a new large object
  • PDO::pgsqlLOBOpen — Opens an existing large object stream
  • PDO::pgsqlLOBUnlink — Deletes the large object


Connecting to PostgreSQL databases

  • « PostgreSQL (PDO)
  • PDO::pgsqlCopyFromArray »
  • PHP Manual
  • PostgreSQL (PDO)
  • Connecting to PostgreSQL databases

PDO_PGSQL DSN

(PHP 5 >= 5.1.0, PHP 7, PECL PDO_PGSQL >= 0.1.0)

PDO_PGSQL DSN — Connecting to PostgreSQL databases

Beschreibung

The PDO_PGSQL Data Source Name (DSN) is composed of the following elements, delimited by spaces or semicolons:

DSN prefix

The DSN prefix is pgsql:.

host

The hostname on which the database server resides.

port

The port on which the database server is running.

dbname

The name of the database.

user

The name of the user for the connection. If you specify the user name in the DSN, PDO ignores the value of the user name argument in the PDO constructor.

password

The password of the user for the connection. If you specify the password in the DSN, PDO ignores the value of the password argument in the PDO constructor.

Hinweis:

The bytea fields are returned as streams.

Beispiele

Beispiel #1 PDO_PGSQL DSN examples

The following example shows a PDO_PGSQL DSN for connecting to a PostgreSQL database:

pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass


Copy data from PHP array into table

  • « PDO_PGSQL DSN
  • PDO::pgsqlCopyFromFile »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from PHP array into table

PDO::pgsqlCopyFromArray

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyFromArray — Copy data from PHP array into table

Beschreibung

public PDO::pgsqlCopyFromArray ( string $table_name , array $rows , string $delimiter = '\t' , string $null_as = "\\\\N" , string $fields = ? ) : bool

Copies data from rows array to table table_name using delimiter as fields delimiter and fields list

Parameter-Liste

table_name

String containing table name

rows

Array of strings with fields separated by delimiter

delimiter

Delimiter used in rows array

null_as

How to interpret null values

fields

List of fields to insert

Rückgabewerte

Returns true on success,Im Fehlerfall wird false zurückgegeben..


Copy data from file into table

  • « PDO::pgsqlCopyFromArray
  • PDO::pgsqlCopyToArray »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from file into table

PDO::pgsqlCopyFromFile

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyFromFile — Copy data from file into table

Beschreibung

public PDO::pgsqlCopyFromFile ( string $table_name , string $filename , string $delimiter = '\t' , string $null_as = "\\\\N" , string $fields = ? ) : bool

Copies data from file specified by filename into table table_name using delimiter as fields delimiter and fields list

Parameter-Liste

table_name

String containing table name

filename

Filename containing data to import

delimiter

Delimiter used in file specified by filename

null_as

How to interpret null values

fields

List of fields to insert

Rückgabewerte

Returns true on success,Im Fehlerfall wird false zurückgegeben..


Copy data from database table into PHP array

  • « PDO::pgsqlCopyFromFile
  • PDO::pgsqlCopyToFile »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from database table into PHP array

PDO::pgsqlCopyToArray

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyToArray — Copy data from database table into PHP array

Beschreibung

public PDO::pgsqlCopyToArray ( string $table_name , string $delimiter = '\t' , string $null_as = "\\\\N" , string $fields = ? ) : array|false

Copies data from table into array using delimiter as fields delimiter and fields list

Parameter-Liste

table_name

String containing table name

delimiter

Delimiter used in rows

null_as

How to interpret null values

fields

List of fields to export

Rückgabewerte

Returns an array of rows,Im Fehlerfall wird false zurückgegeben..


Copy data from table into file

  • « PDO::pgsqlCopyToArray
  • PDO::pgsqlGetNotify »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from table into file

PDO::pgsqlCopyToFile

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyToFile — Copy data from table into file

Beschreibung

public PDO::pgsqlCopyToFile ( string $table_name , string $filename , string $delimiter = '\t' , string $null_as = "\\\\N" , string $fields = ? ) : bool

Copies data from table into file specified by filename using delimiter as fields delimiter and fields list

Parameter-Liste

table_name

String containing table name

filename

Filename to export data

delimiter

Delimiter used in file specified by filename

null_as

How to interpret null values

fields

List of fields to insert

Rückgabewerte

Returns true on success,Im Fehlerfall wird false zurückgegeben..


Get asynchronous notification

  • « PDO::pgsqlCopyToFile
  • PDO::pgsqlGetPid »
  • PHP Manual
  • PostgreSQL (PDO)
  • Get asynchronous notification

PDO::pgsqlGetNotify

(PHP 5 >= 5.6.0, PHP 7)

PDO::pgsqlGetNotify — Get asynchronous notification

Beschreibung

public PDO::pgsqlGetNotify ( int $result_type = PDO::FETCH_USE_DEFAULT , int $ms_timeout = 0 ) : array

Returns a result set representing a pending asynchronous notification.

Parameter-Liste

result_type

The format the result set should be returned as, represented as a PDO::FETCH_* constant.

ms_timeout

The length of time to wait for a response, in milliseconds.

Rückgabewerte

If one or more notifications is pending, returns a single row, with fields message and pid, otherwise returns false.


Get the server PID

  • « PDO::pgsqlGetNotify
  • PDO::pgsqlLOBCreate »
  • PHP Manual
  • PostgreSQL (PDO)
  • Get the server PID

PDO::pgsqlGetPid

(PHP 5 >= 5.6.0, PHP 7)

PDO::pgsqlGetPid — Get the server PID

Beschreibung

public PDO::pgsqlGetPid ( ) : int

Returns the server's PID.

Rückgabewerte

The server's PID.


Creates a new large object

  • « PDO::pgsqlGetPid
  • PDO::pgsqlLOBOpen »
  • PHP Manual
  • PostgreSQL (PDO)
  • Creates a new large object

PDO::pgsqlLOBCreate

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBCreate — Creates a new large object

Beschreibung

public PDO::pgsqlLOBCreate ( ) : string

PDO::pgsqlLOBCreate() creates a large object and returns the OID of that object. You may then open a stream on the object using PDO::pgsqlLOBOpen() to read or write data to it. The OID can be stored in columns of type OID and be used to reference the large object, without causing the row to grow arbitrarily large. The large object will continue to live in the database until it is removed by calling PDO::pgsqlLOBUnlink().

Large objects can be up to 2GB in size, but are cumbersome to use; you need to ensure that PDO::pgsqlLOBUnlink() is called prior to deleting the last row that references its OID from your database. In addition, large objects have no access controls. As an alternative, try the bytea column type; recent versions of PostgreSQL allow bytea columns of up to 1GB in size and transparently manage the storage for optimal row size.

Hinweis: This function must be called within a transaction.

Parameter-Liste

PDO::pgsqlLOBCreate() takes no parameters.

Rückgabewerte

Returns the OID of the newly created large object on success, or false on failure.

Beispiele

Beispiel #1 A PDO::pgsqlLOBCreate() example

This example creates a new large object and copies the contents of a file into it. The OID is then stored into a table.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$oid = $db->pgsqlLOBCreate();
$stream = $db->pgsqlLOBOpen($oid, 'w');
$local = fopen($filename, 'rb');
stream_copy_to_stream($local, $stream);
$local = null;
$stream = null;
$stmt = $db->prepare("INSERT INTO BLOBS (ident, oid) VALUES (?, ?)");
$stmt->execute(array($some_id, $oid));
$db->commit();
?>

Siehe auch

  • PDO::pgsqlLOBOpen() - Opens an existing large object stream
  • PDO::pgsqlLOBUnlink() - Deletes the large object
  • pg_lo_create() - Erzeugt ein Large Object


Opens an existing large object stream

  • « PDO::pgsqlLOBCreate
  • PDO::pgsqlLOBUnlink »
  • PHP Manual
  • PostgreSQL (PDO)
  • Opens an existing large object stream

PDO::pgsqlLOBOpen

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBOpen — Opens an existing large object stream

Beschreibung

public PDO::pgsqlLOBOpen ( string $oid , string $mode = "rb" ) : resource|false

PDO::pgsqlLOBOpen() opens a stream to access the data referenced by oid. If mode is r, the stream is opened for reading, if mode is w, then the stream will be opened for writing. You can use all the usual filesystem functions, such as fread(), fwrite() and fgets() to manipulate the contents of the stream.

Hinweis: This function, and all manipulations of the large object, must be called and carried out within a transaction.

Parameter-Liste

oid

A large object identifier.

mode

If mode is r, open the stream for reading. If mode is w, open the stream for writing.

Rückgabewerte

Returns a stream resource on successIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 A PDO::pgsqlLOBOpen() example

Following on from the PDO::pgsqlLOBCreate() example, this code snippet retrieves the large object from the database and outputs it to the browser.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$stmt = $db->prepare("select oid from BLOBS where ident = ?");
$stmt->execute(array($some_id));
$stmt->bindColumn('oid', $oid, PDO::PARAM_STR);
$stmt->fetch(PDO::FETCH_BOUND);
$stream = $db->pgsqlLOBOpen($oid, 'r');
header("Content-type: application/octet-stream");
fpassthru($stream);
?>

Siehe auch

  • PDO::pgsqlLOBCreate() - Creates a new large object
  • PDO::pgsqlLOBUnlink() - Deletes the large object
  • pg_lo_open() - Öffnet ein Large Object


Deletes the large object

  • « PDO::pgsqlLOBOpen
  • SQLite (PDO) »
  • PHP Manual
  • PostgreSQL (PDO)
  • Deletes the large object

PDO::pgsqlLOBUnlink

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBUnlink — Deletes the large object

Beschreibung

public PDO::pgsqlLOBUnlink ( string $oid ) : bool

Deletes a large object from the database identified by OID.

Hinweis: This function must be called within a transaction.

Parameter-Liste

oid

A large object identifier

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 A PDO::pgsqlLOBUnlink() example

This example unlinks a large object from the database prior to deleting the row that references it from the blobs table we've been using in our PDO::pgsqlLOBCreate() and PDO::pgsqlLOBOpen() examples.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$db->pgsqlLOBUnlink($oid);
$stmt = $db->prepare("DELETE FROM BLOBS where ident = ?");
$stmt->execute(array($some_id));
$db->commit();
?>

Siehe auch

  • PDO::pgsqlLOBOpen() - Opens an existing large object stream
  • PDO::pgsqlLOBCreate() - Creates a new large object


SQLite Functions (PDO_SQLITE)

Einführung

Der PDO_SQLITE-Treiber implementiert das PHP Data Objects (PDO) Interface, um Zugriff auf SQLite3-Datenbanken zu ermöglichen.

Hinweis:

PDO_SQLITE erlaubt es Zeichenketten, abgesehen von Datenströmen, mit PDO::PARAM_LOB zu nutzen.

Installation

The PDO_SQLITE PDO driver is enabled by default. To disable, --without-pdo-sqlite[=DIR] may be used, where the optional [=DIR] is the sqlite base install directory. As of PHP 7.4.0 » libsqlite = 3.5.0 is required. Formerly, the bundled libsqlite could have been used instead, and was the default, if [=DIR] has been omitted.

Hinweis: Additional setup on Windows as of PHP 7.4.0

Diese Extension benötigt DLL-Dateien. die für Windows verfügbar seien müssen. Der FAQ-Eintrag " Wie füge ich unter Windows PATH mein PHP-Verzeichnis hinzu?" gibt hierzu weitere Informationen. Obwohl ein einfaches Kopieren der DLL-Dateien vom PHP-Verzeichnis in den Windows-Systemordner auch funktioniert (weil der Systemordner immer im PATH enthalten ist), ist dieses Vorgehen nicht empfehlenswert. Diese Extension benötigt die folgenden Dateien im PATH: libsqlite3.dll.

Inhaltsverzeichnis

  • PDO_SQLITE DSN — Verbindungen zu SQLite-Datenbanken aufbauen
  • PDO::sqliteCreateAggregate — Registriert eine benutzerdefinierte Aggregationsfunktion zur Verwendung in SQL-Annweisungen
  • PDO::sqliteCreateCollation — Registers a User Defined Function for use as a collating function in SQL statements
  • PDO::sqliteCreateFunction — Registriert eine benutzerdefinierte Funktion (UDF) zur Nutzung in SQL-Anweisungen


Verbindungen zu SQLite-Datenbanken aufbauen

  • « SQLite (PDO)
  • PDO::sqliteCreateAggregate »
  • PHP Manual
  • SQLite (PDO)
  • Verbindungen zu SQLite-Datenbanken aufbauen

PDO_SQLITE DSN

(PHP 5 >= 5.1.0, PHP 7, PECL PDO_SQLITE >= 0.2.0)

PDO_SQLITE DSN — Verbindungen zu SQLite-Datenbanken aufbauen

Beschreibung

Der PDO_SQLITE-Data Source Name (DSN) setzt sich aus den folgenden Elementen zusammen:

DSN-Präfix (SQLite 3)

Das DSN-Präfix ist sqlite:.

  • Um eine Datenbank auf dem Datenträger anzusprechen, wird ihr absoluter Pfad an das DSN-Präfix angehängt.

  • Um eine Datenbank im Speicher zu erzeugen, wird :memory: an das DSN-Präfix angefügt.

  • Besteht der DSN nur aus dem Präfix, wird eine temporäre Datenbank verwendet, die gelöscht wird, wenn die Verbindung geschlossen wird.

Beispiele

Beispiel #1 PDO_SQLITE DSN Beispiele

Die folgenden Beispiele zeigen PDO_SQLITE DSN, die genutzt werden, um Verbindungen zu SQLite-Datenbanken aufzubauen:

sqlite:/opt/databases/mydb.sq3
sqlite::memory:
sqlite:


Registriert eine benutzerdefinierte Aggregationsfunktion zur Verwendung in SQL-Annweisungen

  • « PDO_SQLITE DSN
  • PDO::sqliteCreateCollation »
  • PHP Manual
  • SQLite (PDO)
  • Registriert eine benutzerdefinierte Aggregationsfunktion zur Verwendung in SQL-Annweisungen

PDO::sqliteCreateAggregate

(PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)

PDO::sqliteCreateAggregate — Registriert eine benutzerdefinierte Aggregationsfunktion zur Verwendung in SQL-Annweisungen

Beschreibung

public PDO::sqliteCreateAggregate ( string $function_name , callable $step_func , callable $finalize_func , int $num_args = ? ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Diese Methode entspricht PDO::sqliteCreateFunction, mit dem Unterschied, dass sie Funktionen registriert, welche benutzt werden können, ein Ergebnis über alle Zeilen einer Anfrage zu aggregieren.

Der Hauptunterschied zwischen dieser Methode und PDO::sqliteCreateFunction ist, dass zwei Funktionen notwendig sind, um das Aggregat zu verwalten.

Parameter-Liste

function_name

Der Name der in SQL-Anweisungen genutzten Funktion.

step_func

Die Callback-Funktion, welche für jede Zeile des Abfrageergebnisses ausgeführt wird. Ihr PHP sollte das Ergebnis akkumulieren und im Aggregationskontext speichern.

Es ist notwendig, diese Funktion wie folgt zu definieren:

step ( mixed $context , int $rownumber , mixed $value , mixed ...$values ) : mixed
context

Der Aggregationskontext. null für die erste Zeile; in den folgenden Zeilen hat er den Wert, der zuvor von der Schritt-Funktion zurückgegeben wurde. Sie sollten diesen nutzen, um den Aggregationszustand zu bewahren.

rownumber

Die Nummer der aktuellen Zeile.

value

Das erste Argument, das an das Aggregat übergeben wurde.

values

Weitere Argumente, die an das Aggregat übergeben wurden.

Der Rückgabewert dieser Funktion wird als context-Argument im nächsten Aufruf der Schritt- oder End-Funktion verwendet.

finalize_func

Die Callback-Funktion, die die Informationen aller Zeilen aggregiert. Sind alle Zeilen abgearbeitet, wird diese Funktion aufgerufen. Diese sollte dann die Daten des Aggregationskontexts auswerten und das Ergebnis zurückgeben. Diese Callback-Funktion sollte einen Variablentyp liefern, der von SQLite erwartet wird, z.B. den Skalar-Typ.

Diese Funktion ist wie folgt zu definieren:

fini ( mixed $context , int $rowcount ) : mixed
context

Enthält den Rückgabewert des letzten Aufrufs der Schritt-Funktion.

rowcount

Enthält die Anzahl an Zeilen, die bereits aggregiert wurden.

Der Rückgabewert dieser Funktion wird als Rückgabewert für die Aggregation genutzt.

num_args

Hinweis für den SQLite-Parser, ob die Callback-Funktion eine bestimmte Anzahl an Parametern erwartet.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Beispiel für eine 'max_length'-Aggregationsfunktion

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = new PDO('sqlite::memory:');
$db->exec("CREATE TABLE strings(a)");
$insert = $db->prepare('INSERT INTO strings VALUES (?)');
foreach ($data as $str) {
    $insert->execute(array($str));
}
$insert = null;

function max_len_step($context, $rownumber, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
    return $context;
}

function max_len_finalize($context, $rowcount)
{
    return $context === null ? 0 : $context;
}

$db->sqliteCreateAggregate('max_len', 'max_len_step', 'max_len_finalize');

var_dump($db->query('SELECT max_len(a) from strings')->fetchAll());

?>

In diesem Beispiel erzeugen wir eine Aggregationsfunktion, die die Länge der längsten Zeichenkette innerhalb einer der Tabellenspalten ermittelt. Die max_len_step-Funktion wird für jede durchlaufene Zeile mit dem Parameter $context aufgerufen. Der Parameter 'context' ist eine normal PHP-Variable, welche ein Array oder sogar einen Objektwert beinhalten kann. In diesem Beispiel benötigen wir ihn als Speicher für die größte bisher gefundene Länge. Wenn die Zeichenkette in $string länger ist, als die aktuell längste, wird der Inhalt von 'context' mit der neuen Länge überschrieben.

Nachdem alle Zeilen abgearbeitet wurden, ruft SQLite die max_len_finalize-Funktion auf, um das Endergebnis zu ermitteln. Hier können wir nun jede Art von Berechnungen, basierend auf den in $context gesammelten Daten, durchführen. In unserem einfachen Beispiel haben wir die Berechnungen jedoch bereits bei der Datenerhebung getätigt, sodass wir nun nur noch den Inhalt von 'context' zurückzugeben brauchen.

Tipp

Es ist nicht ratsam, eine Kopie der Inhalte in 'context' zu speichern, um diese dann am Ende auszuwerten. Das würde dazu führen, dass SQLite eine große Menge an Speicher benötigt, um die Abfrage abzuarbeiten. Überlegen Sie nur mal, wieviel Speicher eine Abfrage braucht, die 1 Millionen Zeilen mit je 32 Byte Inhalt aus der Datenbank liest.

Tipp

Sie können PDO::sqliteCreateFunction und PDO::sqliteCreateAggregate nutzen, um SQLites native SQL-Funktionen zu überschreiben.

Siehe auch

  • PDO::sqliteCreateFunction
  • sqlite_create_function()
  • sqlite_create_aggregate()


Registers a User Defined Function for use as a collating function in SQL statements

  • « PDO::sqliteCreateAggregate
  • PDO::sqliteCreateFunction »
  • PHP Manual
  • SQLite (PDO)
  • Registers a User Defined Function for use as a collating function in SQL statements

PDO::sqliteCreateCollation

(PHP 5 >= 5.3.11, PHP 7)

PDO::sqliteCreateCollation — Registers a User Defined Function for use as a collating function in SQL statements

Beschreibung

public PDO::sqliteCreateCollation ( string $name , callable $callback ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

name

Name of the SQL collating function to be created or redefined.

callback

The name of a PHP function or user-defined function to apply as a callback, defining the behavior of the collation. It should accept two strings and return as strcmp() does, i.e. it should return -1, 1, or 0 if the first string sorts before, sorts after, or is equal to the second.

This function need to be defined as:

collation ( string $string1 , string $string2 ) : int

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 PDO::sqliteCreateCollation() example

<?php
$db = new PDO('sqlite::memory:');
$db->exec("CREATE TABLE test (col1 string)");
$db->exec("INSERT INTO test VALUES ('a1')");
$db->exec("INSERT INTO test VALUES ('a10')");
$db->exec("INSERT INTO test VALUES ('a2')");

$db->sqliteCreateCollation('NATURAL_CMP', 'strnatcmp');
foreach ($db->query("SELECT col1 FROM test ORDER BY col1") as $row) {
  echo $row['col1'] . "\n";
}
echo "\n";
foreach ($db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP") as $row) {
  echo $row['col1'] . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a1
a10
a2

a1
a2
a10


Registriert eine benutzerdefinierte Funktion (UDF) zur Nutzung in SQL-Anweisungen

  • « PDO::sqliteCreateCollation
  • Anbieterspezifische Datenbankerweiterungen »
  • PHP Manual
  • SQLite (PDO)
  • Registriert eine benutzerdefinierte Funktion (UDF) zur Nutzung in SQL-Anweisungen

PDO::sqliteCreateFunction

(PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)

PDO::sqliteCreateFunction — Registriert eine benutzerdefinierte Funktion (UDF) zur Nutzung in SQL-Anweisungen

Beschreibung

public PDO::sqliteCreateFunction ( string $function_name , callable $callback , int $num_args = -1 , int $flags = 0 ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Diese Methode ermöglicht es, in SQLite eine PHP-Funktion als eine benutzerdefinierte Funktion (UDF) zu registrieren, die dann in einer SQL-Anweisung aufgerufen werden kann.

Die UDF kann nun in jeder SQL-Anweisung genutzt werden, die Funktionen aufrufen kann, wie SELECT und UPDATE und auch in Triggern.

Parameter-Liste

function_name

Der Name der Funktion, der in SQL-Anweisungen genutzt wird.

callback

Die Callback-Funktion, die die definierte SQL-Funktion verarbeitet.

Hinweis: Die Callback-Funktionen sollten einen Typ zurückgeben, der von SQLite verstanden wird, z.B. den Skalar-Typ.

Diese Funktion muss wie folgt definiert werden:

callback ( mixed $value , mixed ...$values ) : mixed
value

Das erste Argument, das an die SQL-Funktion übergeben wurde.

values

Weitere Argumente, die an die SQL-Funktion übergeben wurden.

num_args

Die Anzahl von Argumenten, die die SQL-Funktion erwartet. Ist dieser Parameter -1, dann kann die SQL-Funktion eine beliebige Anzahl von Argumenten annehmen.

flags

Eine bitweise Verknüpfung von Flags. Zurzeit wird nur PDO::SQLITE_DETERMINISTIC unterstützt, das angibt, dass die Funktion für dieselbe Eingabe immer dasselbe Ergebnis innerhalb einer einzelnen SQL-Anweisung zurückgibt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.1.4 | Der Parameter flags wurde hinzugefügt.

Beispiele

Beispiel #1 PDO::sqliteCreateFunction()-Beispiel

<?php
function md5_und_umkehren($string)
{
    return strrev(md5($string));
}

$db = new PDO('sqlite:sqlitedb');
$db->sqliteCreateFunction('md5rev', 'md5_und_umkehren', 1);
$zeilen = $db->query('SELECT md5rev(dateiname) FROM dateien')->fetchAll();
?>

In diesem Beispiel wird eine Funktion verwendet, die die md5-Checksumme einer Zeichenkette berechnet und anschließend umgekehrt. Wenn die SQL-Anweisung ausgeführt wird, gibt sie gibt sie den Wert des Dateinamens zurück, der von unserer Funktion umgewandelt wurde. Die Rückgabewerte der Funktion werden in $zeilen gespeichert.

Das Praktische an dieser Technik ist, dass das Ergebnis der Abfrage nicht in einer foreach-Schleife nachbearbeitet werden muss.

Tipp

Sie können PDO::sqliteCreateFunction und PDO::sqliteCreateAggregate nutzen, um native SQLite-SQL-Funktionen zu überschreiben.

Siehe auch

  • PDO::sqliteCreateAggregate
  • sqlite_create_function()
  • sqlite_create_aggregate()


Anbieterspezifische Datenbankerweiterungen

  • CUBRID
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • CUBRID Funktionen
    • CUBRID MySQL Compatibility Functions
    • CUBRID Obsolete Aliases and Functions
  • DB++
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • DB++ Funktionen
  • dBase
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • dBase Funktionen
  • filePro
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • filePro Funktionen
  • Firebird/InterBase
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Firebird/InterBase Funktionen
  • FrontBase
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • FrontBase Funktionen
  • IBM DB2 — IBM DB2, Cloudscape and Apache Derby
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • IBM DB2 Funktionen
  • Ingres — Ingres DBMS, EDBC und Enterprise Access Gateways
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Ingres-Funktionen
  • Mongo — MongoDB driver (legacy)
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Manual
    • Core Classes
    • Types
    • GridFS Classes
    • Batch Classes
    • Miscellaneous
    • Mongo Funktionen
    • Exceptions
    • Changelog
  • MongoDB — MongoDB driver
    • Installation/Konfiguration
    • Tutorials
    • Driver Architecture and Internals — Explains the driver architecture, and special features
    • Security
    • MongoDB\Driver — MongoDB driver classes
    • MongoDB\BSON — BSON type classes and serialization functions
    • MongoDB\Driver\Monitoring — Monitoring classes and subscriber functions
    • MongoDB\Driver\Exception — Exception classes
  • MySQL — MySQL Drivers and Plugins
    • Overview of the MySQL PHP drivers
    • Mysqli — MySQL Improved Extension
    • Mysql_xdevapi
    • MySQL (Original) — Ursprüngliche MySQL API
    • Mysqlnd — MySQL Native Driver
    • mysqlnd_ms — Mysqlnd replication and load balancing plugin
    • mysqlnd_qc — Mysqlnd query result cache plugin
    • mysqlnd_uh — Mysqlnd user handler plugin
    • mysqlnd_mux — Mysqlnd connection multiplexing plugin
    • mysqlnd_memcache — Mysqlnd Memcache plugin
  • OCI8 — Oracle OCI8
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • OCI8 Connection Handling and Connection Pooling
    • OCI8 Fast Application Notification (FAN) Support
    • OCI8 Transparent Application Failover (TAF) Support
    • OCI8 and DTrace Dynamic Tracing
    • Supported Datatypes
    • OCI8 Funktionen
    • OCICollection — The OCICollection class
    • OCILob — The OCILob class
    • OCI8 - Veraltete Aliase und Funktionen
  • Paradox — Paradox File Access
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Paradox Funktionen
  • PostgreSQL
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • PostgreSQL-Funktionen
  • SQLite3
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • SQLite3 — Die SQLite3-Klasse
    • SQLite3Stmt — Die SQLite3Stmt Klasse
    • SQLite3Result — Die SQLite3Result Klasse
  • SQLSRV — Microsoft SQL Server Driver for PHP
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • SQLSRV Funktionen
  • tokyo_tyrant
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • TokyoTyrant — The TokyoTyrant class
    • TokyoTyrantTable — The TokyoTyrantTable class
    • TokyoTyrantQuery — The TokyoTyrantQuery class
    • TokyoTyrantIterator — The TokyoTyrantIterator class
    • TokyoTyrantException — The TokyoTyrantException class


CUBRID

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • CUBRID Funktionen
    • cubrid_bind — Bind variables to a prepared statement as parameters
    • cubrid_close_prepare — Close the request handle
    • cubrid_close_request — Close the request handle
    • cubrid_col_get — Get contents of collection type column using OID
    • cubrid_col_size — Get the number of elements in collection type column using OID
    • cubrid_column_names — Get the column names in result
    • cubrid_column_types — Get column types in result
    • cubrid_commit — Commit a transaction
    • cubrid_connect_with_url — Establish the environment for connecting to CUBRID server
    • cubrid_connect — Open a connection to a CUBRID Server
    • cubrid_current_oid — Get OID of the current cursor location
    • cubrid_disconnect — Close a database connection
    • cubrid_drop — Delete an instance using OID
    • cubrid_error_code_facility — Get the facility code of error
    • cubrid_error_code — Get error code for the most recent function call
    • cubrid_error_msg — Get last error message for the most recent function call
    • cubrid_execute — Execute a prepared SQL statement
    • cubrid_fetch — Fetch the next row from a result set
    • cubrid_free_result — Free the memory occupied by the result data
    • cubrid_get_autocommit — Get auto-commit mode of the connection
    • cubrid_get_charset — Return the current CUBRID connection charset
    • cubrid_get_class_name — Get the class name using OID
    • cubrid_get_client_info — Return the client library version
    • cubrid_get_db_parameter — Returns the CUBRID database parameters
    • cubrid_get_query_timeout — Get the query timeout value of the request
    • cubrid_get_server_info — Return the CUBRID server version
    • cubrid_get — Get a column using OID
    • cubrid_insert_id — Return the ID generated for the last updated AUTO_INCREMENT column
    • cubrid_is_instance — Check whether the instance pointed by OID exists
    • cubrid_lob_close — Close BLOB/CLOB data
    • cubrid_lob_export — Export BLOB/CLOB data to file
    • cubrid_lob_get — Get BLOB/CLOB data
    • cubrid_lob_send — Read BLOB/CLOB data and send straight to browser
    • cubrid_lob_size — Get BLOB/CLOB data size
    • cubrid_lob2_bind — Bind a lob object or a string as a lob object to a prepared statement as parameters
    • cubrid_lob2_close — Close LOB object
    • cubrid_lob2_export — Export the lob object to a file
    • cubrid_lob2_import — Import BLOB/CLOB data from a file
    • cubrid_lob2_new — Create a lob object
    • cubrid_lob2_read — Read from BLOB/CLOB data
    • cubrid_lob2_seek64 — Move the cursor of a lob object
    • cubrid_lob2_seek — Move the cursor of a lob object
    • cubrid_lob2_size64 — Get a lob object's size
    • cubrid_lob2_size — Get a lob object's size
    • cubrid_lob2_tell64 — Tell the cursor position of the LOB object
    • cubrid_lob2_tell — Tell the cursor position of the LOB object
    • cubrid_lob2_write — Write to a lob object
    • cubrid_lock_read — Set a read lock on the given OID
    • cubrid_lock_write — Set a write lock on the given OID
    • cubrid_move_cursor — Move the cursor in the result
    • cubrid_next_result — Get result of next query when executing multiple SQL statements
    • cubrid_num_cols — Return the number of columns in the result set
    • cubrid_num_rows — Get the number of rows in the result set
    • cubrid_pconnect_with_url — Open a persistent connection to CUBRID server
    • cubrid_pconnect — Open a persistent connection to a CUBRID server
    • cubrid_prepare — Prepare a SQL statement for execution
    • cubrid_put — Update a column using OID
    • cubrid_rollback — Roll back a transaction
    • cubrid_schema — Get the requested schema information
    • cubrid_seq_drop — Delete an element from sequence type column using OID
    • cubrid_seq_insert — Insert an element to a sequence type column using OID
    • cubrid_seq_put — Update the element value of sequence type column using OID
    • cubrid_set_add — Insert a single element to set type column using OID
    • cubrid_set_autocommit — Set autocommit mode of the connection
    • cubrid_set_db_parameter — Sets the CUBRID database parameters
    • cubrid_set_drop — Delete an element from set type column using OID
    • cubrid_set_query_timeout — Set the timeout time of query execution
    • cubrid_version — Get the CUBRID PHP module's version
  • CUBRID MySQL Compatibility Functions
    • cubrid_affected_rows — Return the number of rows affected by the last SQL statement
    • cubrid_client_encoding — Return the current CUBRID connection charset
    • cubrid_close — Close CUBRID connection
    • cubrid_data_seek — Move the internal row pointer of the CUBRID result
    • cubrid_db_name — Get db name from results of cubrid_list_dbs
    • cubrid_errno — Return the numerical value of the error message from previous CUBRID operation
    • cubrid_error — Get the error message
    • cubrid_fetch_array — Fetch a result row as an associative array, a numeric array, or both
    • cubrid_fetch_assoc — Return the associative array that corresponds to the fetched row
    • cubrid_fetch_field — Get column information from a result and return as an object
    • cubrid_fetch_lengths — Return an array with the lengths of the values of each field from the current row
    • cubrid_fetch_object — Fetch the next row and return it as an object
    • cubrid_fetch_row — Return a numerical array with the values of the current row
    • cubrid_field_flags — Return a string with the flags of the given field offset
    • cubrid_field_len — Get the maximum length of the specified field
    • cubrid_field_name — Return the name of the specified field index
    • cubrid_field_seek — Move the result set cursor to the specified field offset
    • cubrid_field_table — Return the name of the table of the specified field
    • cubrid_field_type — Return the type of the column corresponding to the given field offset
    • cubrid_list_dbs — Return an array with the list of all existing CUBRID databases
    • cubrid_num_fields — Return the number of columns in the result set
    • cubrid_ping — Ping a server connection or reconnect if there is no connection
    • cubrid_query — Send a CUBRID query
    • cubrid_real_escape_string — Escape special characters in a string for use in an SQL statement
    • cubrid_result — Return the value of a specific field in a specific row
    • cubrid_unbuffered_query — Perform a query without fetching the results into memory
  • CUBRID Obsolete Aliases and Functions
    • cubrid_load_from_glo — Read data from a GLO instance and save it in a file
    • cubrid_new_glo — Create a glo instance
    • cubrid_save_to_glo — Save requested file in a GLO instance
    • cubrid_send_glo — Read data from glo and send it to std output


Einführung

These functions allow you to access CUBRID database servers. More information about CUBRID can be found at » CUBRID.

Documentation for CUBRID can be found at » CUBRID Documentation.


Anforderungen

In order to have these functions available, you must install CUBRID, and compile CUBRID PHP Library with CUBRID support.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/cubrid.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.

For information about manual installation on Linux and Windows systems, please read the file build-guide.html included in the package.


  • « Installation
  • Ressource-Typen »
  • PHP Manual
  • Installation/Konfiguration
  • Laufzeit-Konfiguration

Laufzeit-Konfiguration

There is no runtime configuration now.


Ressource-Typen

There are four resource types used in CUBRID. The first one is the link identifier for a database connection, the second is the a resource which holds the result of a query, and the last two a resource which holds the query results of BLOB/CLOB data types.

connection identifier

A connection identifier returned by cubrid_connect(),
cubrid_connect_with_url(),
cubrid_pconnect() and
cubrid_pconnect_with_url().

request identifier

A request identifier returned by cubrid_prepare() and cubrid_execute().

LOB identifier

A LOB identifier returned by cubrid_lob_get().

LOB2 identifier

A LOB identifier returned by cubrid_lob2_new() or get from the result set.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

The following constants can be used when executing SQL statement. They can be passed to cubrid_prepare() and cubrid_execute().

CUBRID SQL execution flags
Constant | Description
CUBRID_INCLUDE_OID | Determine whether to get OID during query execution.
CUBRID_ASYNC | Execute the query in asynchronous mode.
CUBRID_EXEC_QUERY_ALL | Execute the query in synchronous mode. This flag must be set when executing multiple SQL statements.

The following constants can be used when fetching the results to specify fetch behaviour. They can be passed to cubrid_fetch() and cubrid_fetch_array().

CUBRID fetch flags
Constant | Description
CUBRID_NUM | Get query result as a numeric array (0-default).
CUBRID_ASSOC | Get query result as an associative array.
CUBRID_BOTH | Get query result as both numeric and associative arrays (default value).
CUBRID_OBJECT | Get query result an object.
CUBRID_LOB | The constant CUBRID_LOB can be used when you want to operate the lob object. It can be passed to cubrid_fetch(), cubrid_fetch_row(), cubrid_fetch_array(), cubrid_fetch_assoc() and cubrid_fetch_object().

The following constants can be used when positioning the cursor in query results. They can be passed to or returned by cubrid_move_cursor().

CUBRID cursor position flags
Constant | Description
CUBRID_CURSOR_FIRST | Move current cursor to the first position in the result.
CUBRID_CURSOR_CURRENT | Move current cursor as a default value if the origin is not specified.
CUBRID_CURSOR_LAST | Move current cursor to the last position in the result.
CUBRID_CURSOR_SUCCESS | Returned value of cubrid_move_cursor() function in case of success. This flag has been removed from 8.4.1.
CUBRID_NO_MORE_DATA | Returned value of cubrid_move_cursor() function in case of failure. This flag has been removed from 8.4.1.
CUBRID_CURSOR_ERROR | Returned value of cubrid_move_cursor() function in case of failure. This flag has been removed from 8.4.1.

The following constants can be used when setting the auto-commit mode for the database connection. They can be passed to cubrid_set_autocommit() or returned by cubrid_get_autocommit().

CUBRID auto-commit mode flags
Constant | Description
CUBRID_AUTOCOMMIT_TRUE | Enable the auto-commit mode.
CUBRID_AUTOCOMMIT_FALSE | Disable the auto-commit mode.

The following constants can be used when setting the database parameter. They can be passed to cubrid_set_db_parameter().

CUBRID parameter flags
Constant | Description
CUBRID_PARAM_ISOLATION_LEVEL | Transaction isolation level for the database connection.
CUBRID_PARAM_LOCK_TIMEOUT | Transaction timeout in seconds.

The following constants can be used when setting the transaction isolation level. They can be passed to cubrid_set_db_parameter() or returned by cubrid_get_db_parameter().

CUBRID isolation level flags
Constant | Description
TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE | The lowest isolation level (1). A dirty, non-repeatable or phantom read may occur for the tuple and a non-repeatable read may occur for the table as well.
TRAN_COMMIT_CLASS_COMMIT_INSTANCE | A relatively low isolation level (2). A dirty read does not occur, but non-repeatable or phantom read may occur.
TRAN_REP_CLASS_UNCOMMIT_INSTANCE | The default isolation of CUBRID (3). A dirty, non-repeatable or phantom read may occur for the tuple, but repeatable read is ensured for the table.
TRAN_REP_CLASS_COMMIT_INSTANCE | A relatively low isolation level (4). A dirty read does not occur, but non-repeatable or phantom read may.
TRAN_REP_CLASS_REP_INSTANCE | A relatively high isolation level (5). A dirty or non-repeatable read does not occur, but a phantom read may.
TRAN_SERIALIZABLE | The highest isolation level (6). Problems concerning concurrency (e.g. dirty read, non-repeatable read, phantom read, etc.) do not occur.

The following constants can be used when getting schema information. They can be passed to cubrid_schema().

CUBRID schema flags
Constant | Description
CUBRID_SCH_CLASS | Get name and type of table in CUBRID.
CUBRID_SCH_VCLASS | Get name and type of view in CUBRID.
CUBRID_SCH_QUERY_SPEC | Get the query definition of view.
CUBRID_SCH_ATTRIBUTE | Get the attributes of table column.
CUBRID_SCH_CLASS_ATTRIBUTE | Get the attributes of table.
CUBRID_SCH_METHOD | Get the instance method. The instance method is a method called by a class instance. It is used more often than the class method because most operations are executed in the instance.
CUBRID_SCH_CLASS_METHOD | Get the class method. The class method is a method called by a class object. It is usually used to create a new class instance or to initialize it. It is also used to access or update class attributes.
CUBRID_SCH_METHOD_FILE | Get the information of the file where the method of the table is defined.
CUBRID_SCH_SUPERCLASS | Get the name and type of table which table inherites attributes from.
CUBRID_SCH_SUBCLASS | Get the name and type of table which inherites attributes from this table.
CUBRID_SCH_CONSTRAINT | Get the table constraints.
CUBRID_SCH_TRIGGER | Get the table triggers.
CUBRID_SCH_CLASS_PRIVILEGE | Get the privilege information of table.
CUBRID_SCH_ATTR_PRIVILEGE | Get the privilege information of column.
CUBRID_SCH_DIRECT_SUPER_CLASS | Get the direct super table of table.
CUBRID_SCH_PRIMARY_KEY | Get the table primary key.
CUBRID_SCH_IMPORTED_KEYS | Get imported keys of table.
CUBRID_SCH_EXPORTED_KEYS | Get exported keys of table.
CUBRID_SCH_CROSS_REFERENCE | Get reference relationship of tow tables.

The following constants can be used when reporting errors. They can be returned from cubrid_error_code_facility().

CUBRID error facility code
Constant | Description
CUBRID_FACILITY_DBMS | The error occurred in CUBRID dbms.
CUBRID_FACILITY_CAS | The error occurred in CUBRID broker cas.
CUBRID_FACILITY_CCI | The error occurred in CUBRID cci.
CUBRID_FACILITY_CLIENT | The error occurred in CUBRID PHP client.


Beispiele

The following is a simple example that establishes a connection between PHP and CUBRID. This section will cover the most basic and notable features. The following code required to connect to CUBRID database, which means CUBRID Server and CUBRID Broker have to be running.

The example below uses the demodb database as an examples. By default it is created during the installation. Make sure it has been created.

Beispiel #1 Example of Data Retrieval

<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=euc-kr">
    </head>
    <body>
    <center>
    <table border=2>
    <?php
        /**
         * Set server information for CUBRID connection. host_ip is the IP
         * address where the CUBRID Broker is installed (localhost in this
         * example), and host_port is the port number of the CUBRID Broker.
         * The port number is the default given during the installation.
         * For details, see "Administrator's Guide."
         */
        $host_ip = "localhost";
        $host_port = 33000;
        $db_name = "demodb";
        /**
         * Connect to CUBRID Server. Do not make the actual connection, but
         * only retain the connection information. The reason for not making
         * the actual connection is to handle transaction more efficiently
         * in the 3-tier architecture.
         */
        $cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);

        if (!$cubrid_con) {
            echo "Database Connection Error";
            exit;
        }
    ?>
    <?php
        $sql = "select sports, count(players) as players from event group by sports";
        /**
         * Request the CUBRID Server for the results of the SQL statement.
         * Now make the actual connection to the CUBRID Server.
         */
        $result = cubrid_execute($cubrid_con, $sql);

        if ($result) {
            /**
             * Get the column names from the result set created by the SQL query.
             */
            $columns = cubrid_column_names($result);
            /**
             * Get the number of columns in the result set created by the SQL query.
             */
            $num_fields = cubrid_num_cols($result);
            /**
             * List the column names of the result set on the screen.
             */
            echo("<tr>");

            while (list($key, $colname) = each($columns)) {
                echo("<td align=center>$colname</td>");
            }

            echo("</tr>");

            /**
             * Get the results from the result set.
             */
            while ($row = cubrid_fetch($result)) {
                echo("<tr>");

                for ($i = 0; $i < $num_fields; $i++) {
                    echo("<td align=center>");
                    echo($row[$i]);
                    echo("</td>");
                }

                echo("</tr>");
            }
        }
        /**
         * The PHP module in the CUBRID runs in a 3-tier architecture. Even when
         * calling SELECT for transaction processing, it is processed as a part
         * of the transaction. Therefore, the transaction needs to be rolled back
         * by calling commit or rollback even though SELECT was called for smooth
         * performance.
         */
        cubrid_commit($cubrid_con);
        cubrid_disconnect($cubrid_con);
    ?>
    </body>
    </html>

Beispiel #2 Example of Data Insertion

<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=euc- kr">
    </head>
    <body>
    <center>
    <table border=2>
    <?php
        /**
         * host_ip is the IP address where the CUBRID Broker is installed
         * host_port is the port number of the CUBRID Broker
         * db_name is the name of CUBRID Database
         */
        $host_ip = "localhost";
        $host_port = 33000;
        $db_name = "demodb";
        $cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);

        if (!$cubrid_con) {
            echo "Database Connection Error";
            exit;
        }
    ?>
    <?php
        $sql = "insert into olympic (host_year,host_nation,host_city,"
            . "opening_date,closing_date) values (2008, 'China', 'Beijing',"
            . "to_date('08-08-2008','mm-dd- yyyy'),to_date('08-24-2008','mm-dd-yyyy')) ;"
        $result = cubrid_execute($cubrid_con, $sql);
        if ($result) {
            /**
             * Handled successfully, so commit.
             */
            cubrid_commit($cubrid_con);
            echo("Inserted successfully ");
        } else {
            /**
             * Error occurred, so the error message is output and rollback is called.
             */
            echo(cubrid_error_msg());
            cubrid_rollback($cubrid_con);
        }
        cubrid_disconnect($cubrid_con);
    ?>
    </body>
    </html>


CUBRID Funktionen

Inhaltsverzeichnis

  • cubrid_bind — Bind variables to a prepared statement as parameters
  • cubrid_close_prepare — Close the request handle
  • cubrid_close_request — Close the request handle
  • cubrid_col_get — Get contents of collection type column using OID
  • cubrid_col_size — Get the number of elements in collection type column using OID
  • cubrid_column_names — Get the column names in result
  • cubrid_column_types — Get column types in result
  • cubrid_commit — Commit a transaction
  • cubrid_connect_with_url — Establish the environment for connecting to CUBRID server
  • cubrid_connect — Open a connection to a CUBRID Server
  • cubrid_current_oid — Get OID of the current cursor location
  • cubrid_disconnect — Close a database connection
  • cubrid_drop — Delete an instance using OID
  • cubrid_error_code_facility — Get the facility code of error
  • cubrid_error_code — Get error code for the most recent function call
  • cubrid_error_msg — Get last error message for the most recent function call
  • cubrid_execute — Execute a prepared SQL statement
  • cubrid_fetch — Fetch the next row from a result set
  • cubrid_free_result — Free the memory occupied by the result data
  • cubrid_get_autocommit — Get auto-commit mode of the connection
  • cubrid_get_charset — Return the current CUBRID connection charset
  • cubrid_get_class_name — Get the class name using OID
  • cubrid_get_client_info — Return the client library version
  • cubrid_get_db_parameter — Returns the CUBRID database parameters
  • cubrid_get_query_timeout — Get the query timeout value of the request
  • cubrid_get_server_info — Return the CUBRID server version
  • cubrid_get — Get a column using OID
  • cubrid_insert_id — Return the ID generated for the last updated AUTO_INCREMENT column
  • cubrid_is_instance — Check whether the instance pointed by OID exists
  • cubrid_lob_close — Close BLOB/CLOB data
  • cubrid_lob_export — Export BLOB/CLOB data to file
  • cubrid_lob_get — Get BLOB/CLOB data
  • cubrid_lob_send — Read BLOB/CLOB data and send straight to browser
  • cubrid_lob_size — Get BLOB/CLOB data size
  • cubrid_lob2_bind — Bind a lob object or a string as a lob object to a prepared statement as parameters
  • cubrid_lob2_close — Close LOB object
  • cubrid_lob2_export — Export the lob object to a file
  • cubrid_lob2_import — Import BLOB/CLOB data from a file
  • cubrid_lob2_new — Create a lob object
  • cubrid_lob2_read — Read from BLOB/CLOB data
  • cubrid_lob2_seek64 — Move the cursor of a lob object
  • cubrid_lob2_seek — Move the cursor of a lob object
  • cubrid_lob2_size64 — Get a lob object's size
  • cubrid_lob2_size — Get a lob object's size
  • cubrid_lob2_tell64 — Tell the cursor position of the LOB object
  • cubrid_lob2_tell — Tell the cursor position of the LOB object
  • cubrid_lob2_write — Write to a lob object
  • cubrid_lock_read — Set a read lock on the given OID
  • cubrid_lock_write — Set a write lock on the given OID
  • cubrid_move_cursor — Move the cursor in the result
  • cubrid_next_result — Get result of next query when executing multiple SQL statements
  • cubrid_num_cols — Return the number of columns in the result set
  • cubrid_num_rows — Get the number of rows in the result set
  • cubrid_pconnect_with_url — Open a persistent connection to CUBRID server
  • cubrid_pconnect — Open a persistent connection to a CUBRID server
  • cubrid_prepare — Prepare a SQL statement for execution
  • cubrid_put — Update a column using OID
  • cubrid_rollback — Roll back a transaction
  • cubrid_schema — Get the requested schema information
  • cubrid_seq_drop — Delete an element from sequence type column using OID
  • cubrid_seq_insert — Insert an element to a sequence type column using OID
  • cubrid_seq_put — Update the element value of sequence type column using OID
  • cubrid_set_add — Insert a single element to set type column using OID
  • cubrid_set_autocommit — Set autocommit mode of the connection
  • cubrid_set_db_parameter — Sets the CUBRID database parameters
  • cubrid_set_drop — Delete an element from set type column using OID
  • cubrid_set_query_timeout — Set the timeout time of query execution
  • cubrid_version — Get the CUBRID PHP module's version


Bind variables to a prepared statement as parameters

  • « CUBRID Funktionen
  • cubrid_close_prepare »
  • PHP Manual
  • CUBRID Funktionen
  • Bind variables to a prepared statement as parameters

cubrid_bind

(PECL CUBRID >= 8.3.0)

cubrid_bind — Bind variables to a prepared statement as parameters

Beschreibung

cubrid_bind ( resource $req_identifier , int $bind_index , mixed $bind_value , string $bind_value_type = ? ) : bool

The cubrid_bind() function is used to bind values to a corresponding named or question mark placeholder in the SQL statement that was passed to cubrid_prepare(). If bind_value_type is not given, string will be the default.

Hinweis:

If the type of data to be bound is BLOB/CLOB, CUBRID will try to map the data as a PHP stream. If the actually bind value type is not stream, CUBRID will convert it to string, and use it as the full path and file name of a file on the client filesystem.

If the type of data to be bound explicitly is ENUM, the $bind_value argument should be the enum element which is in string format.

In CUBRID shard envrioment, the $bind_value_type must be included in the cubrid_bind function.

The following table shows the types of substitute values.

CUBRID Bind Date Types
Support | Bind Type | Corresponding SQL Type
Supported | STRING | CHAR, VARCHAR
 | NCHAR | NCHAR, NVARCHAR
 | BIT | BIT, VARBIT
 | NUMERIC or NUMBER | SHORT, INT, NUMERIC
 | FLOAT | FLOAT
 | DOUBLE | DOUBLE
 | TIME | TIME
 | DATE | DATE
 | TIMESTAMP | TIMESTAMP
 | OBJECT | OBJECT
 | ENUM | ENUM
 | BLOB | BLOB
 | CLOB | CLOB
 | NULL | NULL
Not supported | SET | SET
 | MULTISET | MULTISET
 | SEQUENCE | SEQUENCE

Parameter-Liste

req_identifier

Request identifier as a result of cubrid_prepare().

bind_index

Location of binding parameters. It starts with 1.

bind_value

Actual value for binding.

bind_value_type

A type of the value to bind. (It is omitted by default. Thus, the system internally uses string by default. However, you need to specify the exact type of the value as an argument when they are NCHAR, BIT, or BLOB/CLOB).

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Changelog

Version | Beschreibung
8.3.1 | Added BLOB/CLOB data types support.

Beispiele

Beispiel #1 cubrid_bind() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$result = cubrid_execute($conn, "SELECT code FROM event WHERE sports='Basketball' and gender='M'");
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];

cubrid_close_request($result);

$game_req = cubrid_prepare($conn, "SELECT athlete_code FROM game WHERE host_year=1992 and event_code=? and nation_code='USA'");
cubrid_bind($game_req, 1, $event_code, "number");
cubrid_execute($game_req);

printf("--- Dream Team (1992 United States men's Olympic basketball team) ---\n");
while ($athlete_code = cubrid_fetch_array($game_req, CUBRID_NUM)) {
    $athlete_req = cubrid_prepare($conn, "SELECT name FROM athlete WHERE code=? AND nation_code='USA' AND event='Basketball' AND gender='M'");
    cubrid_bind($athlete_req, 1, $athlete_code[0], "number");
    cubrid_execute($athlete_req);
    $row = cubrid_fetch_assoc($athlete_req);
    printf("%s\n", $row["name"]);
}

cubrid_close_request($game_req);
cubrid_close_request($athlete_req);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

--- Dream Team (1992 United States men's Olympic basketball team) ---
Stockton John
Robinson David
Pippen Scottie
Mullin C.
Malone Karl
Laettner C.
Jordan Michael
Johnson Earvin
Ewing Patrick
Drexler Clyde
Bird Larry
Barkley Charles

Beispiel #2 cubrid_bind() BLOB/CLOB example

<?php
$con = cubrid_connect("localhost", 33000, "demodb", "dba", "");
if ($con) {
    cubrid_execute($con,"DROP TABLE if exists php_cubrid_lob_test");
    cubrid_execute($con,"CREATE TABLE php_cubrid_lob_test (doc_content CLOB)");
    $sql = "INSERT INTO php_cubrid_lob_test(doc_content) VALUES(?)";
    $req = cubrid_prepare($con, $sql);

    $fp = fopen("book.txt", "rb");

    cubrid_bind($req, 1, $fp, "clob");
    cubrid_execute($req);
}
?>

Beispiel #3 cubrid_bind() BLOB/CLOB example

<?php
$con = cubrid_connect("localhost", 33000, "demodb", "dba", "");
if ($con) {
    cubrid_execute($con,"DROP TABLE if exists php_cubrid_lob_test");
    cubrid_execute($con,"CREATE TABLE php_cubrid_lob_test (image BLOB)");
    $sql = "INSERT INTO php_cubrid_lob_test(image) VALUES(?)";
    $req = cubrid_prepare($con, $sql);

    cubrid_bind($req, 1, "cubrid_logo.png", "blob");
    cubrid_execute($req);
}
?>

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_prepare() - Prepare a SQL statement for execution


Close the request handle

  • « cubrid_bind
  • cubrid_close_request »
  • PHP Manual
  • CUBRID Funktionen
  • Close the request handle

cubrid_close_prepare

(PECL CUBRID >= 8.3.0)

cubrid_close_prepare — Close the request handle

Beschreibung

cubrid_close_prepare ( resource $req_identifier ) : bool

The cubrid_close_prepare() function closes the request handle given by the req_identifier argument, and releases the memory region related to the handle. It is an alias of cubrid_close_request().

Parameter-Liste

req_identifier

Request identifier.

Rückgabewerte

Return true on success.

Beispiele

Beispiel #1 cubrid_close_prepare() example

<?php
$con = cubrid_connect ("localhost", 33000, "demodb", "dba", "");
if ($con) {
   echo "connected successfully";
   $req = cubrid_execute ( $con, "select * from members",
                           CUBRID_INCLUDE_OID | CUBRID_ASYNC);
   if ($req) {
      while ( list ($id, $name) = cubrid_fetch ($req) ){
         echo $id;
         echo $name;
      }
      cubrid_close_prepare($req); // or you can use cubrid_close_request($req)
   }
   cubrid_disconnect($con);
}
?>

Siehe auch

  • cubrid_close_request() - Close the request handle


Close the request handle

  • « cubrid_close_prepare
  • cubrid_col_get »
  • PHP Manual
  • CUBRID Funktionen
  • Close the request handle

cubrid_close_request

(PECL CUBRID >= 8.3.0)

cubrid_close_request — Close the request handle

Beschreibung

cubrid_close_request ( resource $req_identifier ) : bool

The cubrid_close_request() function closes the request handle given by the req_identifier argument, and releases the memory region related to the handle. It is an alias of cubrid_close_prepare().

Parameter-Liste

req_identifier

Request identifier.

Rückgabewerte

Return true on success.

Beispiele

Beispiel #1 cubrid_close_request() example

<?php
$con = cubrid_connect ("localhost", 33000, "demodb", "dba", "");
if ($con) {
   echo "connected successfully";
   $req = cubrid_execute ( $con, "select * from members",
                           CUBRID_INCLUDE_OID | CUBRID_ASYNC);
   if ($req) {
      while ( list ($id, $name) = cubrid_fetch ($req) ){
         echo $id;
         echo $name;
      }
      cubrid_close_request($req); // or you can use cubrid_close_prepare($req)
   }
   cubrid_disconnect($con);
}
?>

Siehe auch

  • cubrid_close_prepare() - Close the request handle


Get contents of collection type column using OID

  • « cubrid_close_request
  • cubrid_col_size »
  • PHP Manual
  • CUBRID Funktionen
  • Get contents of collection type column using OID

cubrid_col_get

(PECL CUBRID >= 8.3.0)

cubrid_col_get — Get contents of collection type column using OID

Beschreibung

cubrid_col_get ( resource $conn_identifier , string $oid , string $attr_name ) : array

The cubrid_col_get() function is used to get contents of the elements of the collection type (set, multiset, sequence) attribute you requested as an array.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID of the instance that you want to read.

attr_name

Attribute name that you want to read from the instance.

Rückgabewerte

Array (0-based numerical array) containing the elements you requested, when process is successful;

false (to distinguish the error from the situation of attribute having empty collection or NULL, in case of error, a warning message is shown; in such case you can check the error by using cubrid_error_code()), when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_col_get() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

$size = cubrid_col_size($conn, $oid, "b");
var_dump($size);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
int(3)


Get the number of elements in collection type column using OID

  • « cubrid_col_get
  • cubrid_column_names »
  • PHP Manual
  • CUBRID Funktionen
  • Get the number of elements in collection type column using OID

cubrid_col_size

(PECL CUBRID >= 8.3.0)

cubrid_col_size — Get the number of elements in collection type column using OID

Beschreibung

cubrid_col_size ( resource $conn_identifier , string $oid , string $attr_name ) : int

The cubrid_col_size() function is used to get the number of elements in a collection type (set, multiset, sequence) attribute.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID the instance that you want to work with.

attr_name

Name of the attribute that you want to work with.

Rückgabewerte

Number of elements, when process is successful.

false, when process is unsuccessful.

Changelog

Version | Beschreibung
8.3.1 | Change return value: when process is unsuccessful, return false, not -1.

Beispiele

Beispiel #1 cubrid_col_size() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

$size = cubrid_col_size($conn, $oid, "b");
var_dump($size);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
int(3)


Get the column names in result

  • « cubrid_col_size
  • cubrid_column_types »
  • PHP Manual
  • CUBRID Funktionen
  • Get the column names in result

cubrid_column_names

(PECL CUBRID >= 8.3.0)

cubrid_column_names — Get the column names in result

Beschreibung

cubrid_column_names ( resource $req_identifier ) : array

The cubrid_column_names() function is used to get the column names of the query result by using req_identifier.

Parameter-Liste

req_identifier

Request identifier.

Rückgabewerte

Array of string values containing the column names, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_column_names() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
    $column_len = cubrid_field_len($result, $i);
    printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10

Siehe auch

  • cubrid_prepare() - Prepare a SQL statement for execution
  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_column_types() - Get column types in result


Get column types in result

  • « cubrid_column_names
  • cubrid_commit »
  • PHP Manual
  • CUBRID Funktionen
  • Get column types in result

cubrid_column_types

(PECL CUBRID >= 8.3.0)

cubrid_column_types — Get column types in result

Beschreibung

cubrid_column_types ( resource $req_identifier ) : array

The cubrid_column_types() function gets column types of query results by using req_identifier.

Parameter-Liste

req_identifier

Request identifier.

Rückgabewerte

Array of string values containing the column types, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_column_types() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
    $column_len = cubrid_field_len($result, $i);
    printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10

Siehe auch

  • cubrid_column_names() - Get the column names in result
  • cubrid_prepare() - Prepare a SQL statement for execution
  • cubrid_execute() - Execute a prepared SQL statement


Commit a transaction

  • « cubrid_column_types
  • cubrid_connect_with_url »
  • PHP Manual
  • CUBRID Funktionen
  • Commit a transaction

cubrid_commit

(PECL CUBRID >= 8.3.0)

cubrid_commit — Commit a transaction

Beschreibung

cubrid_commit ( resource $conn_identifier ) : bool

The cubrid_commit() function is used to execute commit on the transaction pointed by conn_identifier, currently in progress. Connection to the server is closed after the cubrid_commit() function is called; However, the connection handle is still valid.

In CUBRID PHP, auto-commit mode is disabled by default for transaction management. You can set it by using cubrid_set_autocommit(). You can get its status by using cubrid_get_autocommit(). Before you start a transaction, remember to disable the auto-commit mode.

Parameter-Liste

conn_identifier

Connection identifier.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_commit() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3),
pub_name VARCHAR(20),
city VARCHAR(15),
state CHAR(2),
country VARCHAR(15)
)
EOD;
cubrid_set_autocommit($conn,false);
if (!cubrid_execute($conn, $sql)) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n", cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}

$req = cubrid_prepare($conn, "INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01", "P02", "P03", "P04");
$name_list = array("Abatis Publishers", "Core Dump Books", "Schadenfreude Press", "Tenterhooks Press");
$city_list = array("New York", "San Francisco", "Hamburg", "Berkeley");
$state_list = array("NY", "CA", NULL, "CA");
$country_list = array("USA", "USA", "Germany", "USA");

for ($i = 0, $size = count($id_list); $i < $size; $i++) {
    cubrid_bind($req, 1, $id_list[$i]);
    cubrid_bind($req, 2, $name_list[$i]);
    cubrid_bind($req, 3, $city_list[$i]);
    cubrid_bind($req, 4, $state_list[$i]);
    cubrid_bind($req, 5, $country_list[$i]);

    if (!($ret = cubrid_execute($req))) {
        break;
    }
}

if (!$ret) {
    cubrid_rollback($conn);
} else {
    cubrid_commit($conn);

    $req = cubrid_execute($conn, "SELECT * FROM publishers");
    while ($result = cubrid_fetch_assoc($req)) {
        printf("%-3s %-20s %-15s %-3s %-15s\n",
            $result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
    }
}

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

P01 Abatis Publishers    New York        NY  USA
P02 Core Dump Books      San Francisco   CA  USA
P03 Schadenfreude Press  Hamburg             Germany
P04 Tenterhooks Press    Berkeley        CA  USA

Siehe auch

  • cubrid_rollback() - Roll back a transaction
  • cubrid_get_autocommit() - Get auto-commit mode of the connection
  • cubrid_set_autocommit() - Set autocommit mode of the connection


Establish the environment for connecting to CUBRID server

  • « cubrid_commit
  • cubrid_connect »
  • PHP Manual
  • CUBRID Funktionen
  • Establish the environment for connecting to CUBRID server

cubrid_connect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_connect_with_url — Establish the environment for connecting to CUBRID server

Beschreibung

cubrid_connect_with_url ( string $conn_url , string $userid = ? , string $passwd = ? , bool $new_link = false ) : resource

The cubrid_connect_with_url() function is used to establish the environment for connecting to your server by using connection information passed with an url string argument. If the HA feature is enabled in CUBRID, you must specify the connection information of the standby server, which is used for failover when failure occurs, in the url string argument of this function. If the user name and password is not given, then the "PUBLIC" connection will be made by default.

<url> ::= CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]

<properties> ::= <property> [&<property>]

<properties> ::= alhosts=<alternative_hosts>[ &rctime=<time>]

<properties> ::= login_timeout=<milli_sec>

<properties> ::= query_timeout=<milli_sec>

<properties> ::= disconnect_on_query_timeout=true|false

<alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<host> := HOSTNAME | IP_ADDR

<time> := SECOND

<milli_sec> := MILLI SECOND

  • host : A host name or IP address of the master database
  • db_name : A name of the database
  • db_user : A name of the database user
  • db_password : A database user password
  • alhosts : Specifies the broker information of the standby server, which is used for failover when it is impossible to connect to the active server. You can specify multiple brokers for failover, and the connection to the brokers is attempted in the order listed in alhosts
  • rctime : An interval between the attempts to connect to the active broker in which failure occurred. After a failure occurs, the system connects to the broker specified by althosts (failover), terminates the transaction, and then attempts to connect to the active broker of the master database at every rctime. The default value is 600 seconds.
  • login_timeout : Timeout value (unit: msec.) for database login. The default value is 0, which means infinite postponement.
  • query_timeout : Timeout value (unit: msec.) for query request. Upon timeout, a message to cancel requesting a query transferred to server is sent. The return value can depend on the disconnect_on_query_timeout configuration; even though the message to cancel a request is sent to server, that request may succeed.
  • disconnect_on_query_timeout : Configures a value whether to immediately return an error of function being executed upon timeout. The default value is false.

Hinweis:

? and : that are used as identifiers in PHP connection URL can't be included in the password. The following is an example of a password that is invalid to use as connection URL because it contains "?:".

$url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";

Passwords that contain ? or : may be passed as a separate parameter.

$url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";

$conn = cubrid_connect_with_url($url, "dba", "12?");

If user or password is empty,you can't delete ":",the following is an example.

$url = "CUBRID:localhost:33000:demodb:::";

Parameter-Liste

conn_url

A character string that contains server connection information.

userid

User name for the database.

passwd

User password.

new_link

If a second call is made to cubrid_connect_with_url() with the same arguments, no new connection will be established, but instead, the connection identifier of the already opened connection will be returned. The new_link parameter modifies this behavior and makes cubrid_connect_with_url() always open a new connection, even if cubrid_connect_with_url() was called before with the same parameters.

Rückgabewerte

Connection identifier, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_connect_with_url() url without properties example

<?php
$conn_url = "CUBRID:localhost:33000:demodb:dba::";
$con = cubrid_connect_with_url($conn_url);

if ($con) {
   echo "connected successfully";
   cubrid_execute($con, "create table person(id int,name char(16))");
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }
   cubrid_disconnect($con);
}
?>

Beispiel #2 cubrid_connect_with_url() url with properties example

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::?login_timeout=100"
$con = cubrid_connect_with_url ($conn_url);

if ($con) {
   echo "connected successfully";
   cubrid_execute($con, "create table person(id int,name char(16))");
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }
   cubrid_disconnect($con);
}
?>

Siehe auch

  • cubrid_connect() - Open a connection to a CUBRID Server
  • cubrid_pconnect() - Open a persistent connection to a CUBRID server
  • cubrid_pconnect_with_url() - Open a persistent connection to CUBRID server
  • cubrid_disconnect() - Close a database connection
  • cubrid_close() - Close CUBRID connection


Open a connection to a CUBRID Server

  • « cubrid_connect_with_url
  • cubrid_current_oid »
  • PHP Manual
  • CUBRID Funktionen
  • Open a connection to a CUBRID Server

cubrid_connect

(PECL CUBRID >= 8.3.1)

cubrid_connect — Open a connection to a CUBRID Server

Beschreibung

cubrid_connect ( string $host , int $port , string $dbname , string $userid = ? , string $passwd = ? , bool $new_link = false ) : resource

The cubrid_connect() function is used to establish the environment for connecting to your server by using your server address, port number, database name, user name, and password. If the user name and password is not given, then the "PUBLIC" connection will be made by default.

Parameter-Liste

host

Host name or IP address of CUBRID CAS server.

port

Port number of CUBRID CAS server (BROKER_PORT configured in $CUBRID/conf/cubrid_broker.conf).

dbname

Name of database.

userid

User name for the database. If not given, the default value is "public".

passwd

User password. If not given, the default value is "".

new_link

If a second call is made to cubrid_connect() with the same arguments, no new connection will be established, but instead, the connection identifier of the already opened connection will be returned. The new_link parameter modifies this behavior and makes cubrid_connect() always open a new connection, even if cubrid_connect() was called before with the same parameters.

Rückgabewerte

Connection identifier, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_connect() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Siehe auch

  • cubrid_pconnect() - Open a persistent connection to a CUBRID server
  • cubrid_connect_with_url() - Establish the environment for connecting to CUBRID server
  • cubrid_pconnect_with_url() - Open a persistent connection to CUBRID server
  • cubrid_disconnect() - Close a database connection
  • cubrid_close() - Close CUBRID connection


Get OID of the current cursor location

  • « cubrid_connect
  • cubrid_disconnect »
  • PHP Manual
  • CUBRID Funktionen
  • Get OID of the current cursor location

cubrid_current_oid

(PECL CUBRID >= 8.3.0)

cubrid_current_oid — Get OID of the current cursor location

Beschreibung

cubrid_current_oid ( resource $req_identifier ) : string

The cubrid_current_oid() function is used to get the oid of the current cursor location from the query result. To use cubrid_current_oid(), the query executed must be a updatable query, and the CUBRID_INCLUDE_OID option must be included during the query execution.

Parameter-Liste

req_identifier

Request identifier.

Rückgabewerte

Oid of current cursor location, when process is successful

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_current_oid() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code", CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);
$res = cubrid_get($conn, $oid);

print_r($res);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [s_name] => X
    [f_name] => Mixed
)

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement


Close a database connection

  • « cubrid_current_oid
  • cubrid_drop »
  • PHP Manual
  • CUBRID Funktionen
  • Close a database connection

cubrid_disconnect

(PECL CUBRID >= 8.3.0)

cubrid_disconnect — Close a database connection

Beschreibung

cubrid_disconnect ( resource $conn_identifier = ? ) : bool

The cubrid_disconnect() function closes the connection handle and disconnects from server. If any request handle is not closed at this point, it will be closed. It is similar to the CUBRID MySQL compatible function cubrid_close().

Parameter-Liste

conn_identifier

Connection identifier.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_disconnect() example

<?php
$con = cubrid_connect ("localhost", 33000, "demodb");
if ($con) {
   echo "connected successfully";

   $req = cubrid_execute( $con, "create table person(id int,name char(10))");
   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }

   $req = cubrid_execute( $con, "insert into person values(1,'James')");
   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }
   cubrid_disconnect($con);
}
?>

Siehe auch

  • cubrid_close() - Close CUBRID connection
  • cubrid_connect() - Open a connection to a CUBRID Server
  • cubrid_connect_with_url() - Establish the environment for connecting to CUBRID server


Delete an instance using OID

  • « cubrid_disconnect
  • cubrid_error_code_facility »
  • PHP Manual
  • CUBRID Funktionen
  • Delete an instance using OID

cubrid_drop

(PECL CUBRID >= 8.3.0)

cubrid_drop — Delete an instance using OID

Beschreibung

cubrid_drop ( resource $conn_identifier , string $oid ) : bool

The cubrid_drop() function is used to delete an instance from database by using the oid of the instance.

Parameter-Liste

conn_identifier

Connection identifier.

oid

Oid of the instance that you want to delete.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_drop() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

printf("--- Before Drop: ---\n");
$attr = cubrid_get($conn, $oid);
var_dump($attr);

if (cubrid_drop($conn, $oid)) {
    cubrid_commit($conn);
} else {
    cubrid_rollback($conn);
}

cubrid_close_request($req);

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

printf("\n--- After Drop: ---\n");
$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

--- Before Drop: ---
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

--- After Drop: ---
array(4) {
  ["a"]=>
  string(1) "2"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "4"
    [1]=>
    string(1) "5"
    [2]=>
    string(1) "7"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "44"
    [1]=>
    string(2) "55"
    [2]=>
    string(2) "66"
    [3]=>
    string(3) "666"
  }
  ["d"]=>
  string(10) "b         "
}

Siehe auch

  • cubrid_is_instance() - Check whether the instance pointed by OID exists


Get the facility code of error

  • « cubrid_drop
  • cubrid_error_code »
  • PHP Manual
  • CUBRID Funktionen
  • Get the facility code of error

cubrid_error_code_facility

(PECL CUBRID >= 8.3.0)

cubrid_error_code_facility — Get the facility code of error

Beschreibung

cubrid_error_code_facility ( ) : int

The cubrid_error_code_facility() function is used to get the facility code (level in which the error occurred) from the error code of the error that occurred during the API execution. Usually, you can get the error code when API returns false as its return value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Facility code of the error code that occurred: CUBRID_FACILITY_DBMS, CUBRID_FACILITY_CAS, CUBRID_FACILITY_CCI, CUBRID_FACILITY_CLIENT

Beispiele

Beispiel #1 cubrid_error_code_facility() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = @cubrid_execute($conn, "SELECT * FROM unknown");
if (!$req) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Error facility: 1
Error code: -493
Error msg: Syntax: In line 1, column 15 before END OF STATEMENT
Syntax error: unexpected 'unknown'

Siehe auch

  • cubrid_error_code() - Get error code for the most recent function call
  • cubrid_error_msg() - Get last error message for the most recent function call


Get error code for the most recent function call

  • « cubrid_error_code_facility
  • cubrid_error_msg »
  • PHP Manual
  • CUBRID Funktionen
  • Get error code for the most recent function call

cubrid_error_code

(PECL CUBRID >= 8.3.0)

cubrid_error_code — Get error code for the most recent function call

Beschreibung

cubrid_error_code ( ) : int

The cubrid_error_code() function is used to get the error code of the error that occurred during the API execution. Usually, it gets the error code when API returns false as its return value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Error code of the error that occurred, or 0 (zero) if no error occurred.

Beispiele

Beispiel #1 cubrid_error_code() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_prepare($conn , "SELECT * FROM code WHERE s_name=?");

$req = @cubrid_execute($req);
if (!$req) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Error facility: 4
Error code: -30015
Error msg: Some parameter not binded

Siehe auch

  • cubrid_error_code_facility() - Get the facility code of error
  • cubrid_error_msg() - Get last error message for the most recent function call


Get last error message for the most recent function call

  • « cubrid_error_code
  • cubrid_execute »
  • PHP Manual
  • CUBRID Funktionen
  • Get last error message for the most recent function call

cubrid_error_msg

(PECL CUBRID >= 8.3.0)

cubrid_error_msg — Get last error message for the most recent function call

Beschreibung

cubrid_error_msg ( ) : string

The cubrid_error_msg() function is used to get the error message that occurred during the use of CUBRID API. Usually, it gets error message when API returns false as its return value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Error message that occurred.

Beispiele

Beispiel #1 cubrid_error_msg() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

if (!@cubrid_schema($conn, 100000)) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Error facility: 2
Error code: -10015
Error msg: Invalid T_CCI_SCH_TYPE value

Siehe auch

  • cubrid_error_code() - Get error code for the most recent function call
  • cubrid_error_code_facility() - Get the facility code of error


Execute a prepared SQL statement

  • « cubrid_error_msg
  • cubrid_fetch »
  • PHP Manual
  • CUBRID Funktionen
  • Execute a prepared SQL statement

cubrid_execute

(PECL CUBRID >= 8.3.0)

cubrid_execute — Execute a prepared SQL statement

Beschreibung

cubrid_execute ( resource $conn_identifier , string $sql , int $option = 0 ) : resource
cubrid_execute ( resource $request_identifier , int $option = 0 ) : bool

The cubrid_execute() function is used to execute the given SQL statement. It executes the query by using conn_identifier and SQL, and then returns the request identifier created. It is used for simple execution of query, where the parameter binding is not needed. In addition, the cubrid_execute() function is used to execute the prepared statement by means of cubrid_prepare() and cubrid_bind(). At this time, you need to specify arguments of request_identifier and option.

The option is used to determine whether to get OID after query execution and whether to execute the query in synchronous or asynchronous mode. CUBRID_INCLUDE_OID and CUBRID_ASYNC (or CUBRID_EXEC_QUERY_ALL if you want to execute multiple SQL statements) can be specified by using a bitwise OR operator. If not specified, neither of them isselected. If the flag CUBRID_EXEC_QUERY_ALL is set, a synchronous mode (sync_mode) is used to retrieve query results, and in such cases the following rules are applied:

  • The return value is the result of the first query.
  • If an error occurs in any query, the execution is processed as a failure.
  • In a query composed of q1 q2 q3, if an error occurs in q2 after q1 succeeds the execution, the result of q1 remains valid. That is, the previous successful query executions are not rolled back when an error occurs.
  • If a query is executed successfully, the result of the second query can be obtained using cubrid_next_result().

If the first argument is request_identifier to execute the cubrid_prepare() function, you can specify an option, CUBRID_ASYNC only.

Parameter-Liste

conn_identifier

Connection identifier.

sql

SQL to be executed.

option

Query execution option CUBRID_INCLUDE_OID, CUBRID_ASYNC, CUBRID_EXEC_QUERY_ALL.

request_identifier

cubrid_prepare() identifier.

Rückgabewerte

Request identifier, when process is successful and first param is conn_identifier; true, when process is successful and first argument is request_identifier.

false, when process is unsuccessful.

Changelog

Version | Beschreibung
8.4.0 | Add new option CUBRID_EXEC_QUERY_ALL.

Beispiele

Beispiel #1 cubrid_execute() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$result = cubrid_execute($conn, "SELECT code FROM event WHERE name='100m Butterfly' and gender='M'", CUBRID_ASYNC);
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];

cubrid_close_request($result);

$history_req = cubrid_prepare($conn, "SELECT * FROM history WHERE event_code=?");
cubrid_bind($history_req, 1, $event_code, "number");
cubrid_execute($history_req);

printf("%-20s %-9s %-10s %-5s\n", "athlete", "host_year", "score", "unit");
while ($row = cubrid_fetch_array($history_req, CUBRID_ASSOC)) {
    printf("%-20s %-9s %-10s %-5s\n",
        $row["athlete"], $row["host_year"], $row["score"], $row["unit"]);
}

cubrid_close_request($history_req);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

athlete              host_year score      unit
Phelps Michael       2004      51.25      time

Siehe auch

  • cubrid_prepare() - Prepare a SQL statement for execution
  • cubrid_bind() - Bind variables to a prepared statement as parameters
  • cubrid_next_result() - Get result of next query when executing multiple SQL statements
  • cubrid_close_request() - Close the request handle
  • cubrid_commit() - Commit a transaction
  • cubrid_rollback() - Roll back a transaction


Fetch the next row from a result set

  • « cubrid_execute
  • cubrid_free_result »
  • PHP Manual
  • CUBRID Funktionen
  • Fetch the next row from a result set

cubrid_fetch

(PECL CUBRID >= 8.3.0)

cubrid_fetch — Fetch the next row from a result set

Beschreibung

cubrid_fetch ( resource $result , int $type = CUBRID_BOTH ) : mixed

The cubrid_fetch() function is used to get a single row from the query result. The cursor automatically moves to the next row after getting the result.

Parameter-Liste

result

result comes from a call to cubrid_execute()

type

Array type of the fetched result CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH, CUBRID_OBJECT. If you want to operate the lob object, you can use CUBRID_LOB.

Rückgabewerte

Result array or object, when process is successful.

false, when there are no more rows; NULL, when process is unsuccessful.

The result can be received either as an array or as an object, and you can decide which data type to use by setting the type argument. The type variable can be set to one of the following values:

  • CUBRID_NUM : Numerical array (0-based)
  • CUBRID_ASSOC : Associative array
  • CUBRID_BOTH : Numerical & Associative array (default)
  • CUBRID_OBJECT : object that has the attribute name as the column name of query result

When type argument is omitted, the result will be received using CUBRID_BOTH option as default. When you want to receive query result in object data type, the column name of the result must obey the naming rules for identifiers in PHP. For example, column name such as "count(*)" cannot be received in object type.

Beispiele

Beispiel #1 cubrid_fetch() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT * FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch($req)) {
    printf("%-40s %-10s %-6s %-20s\n",
        $row["name"], $row["area"], $row["seats"], $row["address"]);
}

// if you want to operate lob object, you can use cubrid_fetch($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_row() - Return a numerical array with the values of the current row
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_fetch_object() - Fetch the next row and return it as an object


Free the memory occupied by the result data

  • « cubrid_fetch
  • cubrid_get_autocommit »
  • PHP Manual
  • CUBRID Funktionen
  • Free the memory occupied by the result data

cubrid_free_result

(PECL CUBRID >= 8.3.0)

cubrid_free_result — Free the memory occupied by the result data

Beschreibung

cubrid_free_result ( resource $req_identifier ) : bool

This function frees the memory occupied by the result data. It returns TRUE on success or FALSE on failure. Note that it can only frees the client fetch buffer now, and if you want free all memory, use function cubrid_close_request().

Parameter-Liste

req_identifier

This is the request identifier.

Rückgabewerte

true on success.

false on failure.

Beispiele

Beispiel #1 cubrid_free_result() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM history WHERE host_year=2004 ORDER BY event_code");
$row = cubrid_fetch_assoc($req);
var_dump($row);

cubrid_free_result($req);
cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(5) {
  ["event_code"]=>
  string(5) "20005"
  ["athlete"]=>
  string(12) "Hayes Joanna"
  ["host_year"]=>
  string(4) "2004"
  ["score"]=>
  string(5) "12.37"
  ["unit"]=>
  string(4) "time"
}


Get auto-commit mode of the connection

  • « cubrid_free_result
  • cubrid_get_charset »
  • PHP Manual
  • CUBRID Funktionen
  • Get auto-commit mode of the connection

cubrid_get_autocommit

(PECL CUBRID >= 8.4.0)

cubrid_get_autocommit — Get auto-commit mode of the connection

Beschreibung

cubrid_get_autocommit ( resource $conn_identifier ) : bool

The cubrid_get_autocommit() function is used to get the status of CUBRID database connection auto-commit mode.

For CUBRID 8.4.0, auto-commit mode is disabled by default for transaction management.

For CUBRID 8.4.1, auto-commit mode is enabled by default for transaction management.

Parameter-Liste

conn_identifier

Connection identifier.

Rückgabewerte

true, when auto-commit is on.

false, when auto-commit is off.

null on error.

Siehe auch

  • cubrid_set_autocommit() - Set autocommit mode of the connection
  • cubrid_commit() - Commit a transaction


Return the current CUBRID connection charset

  • « cubrid_get_autocommit
  • cubrid_get_class_name »
  • PHP Manual
  • CUBRID Funktionen
  • Return the current CUBRID connection charset

cubrid_get_charset

(PECL CUBRID >= 8.3.0)

cubrid_get_charset — Return the current CUBRID connection charset

Beschreibung

cubrid_get_charset ( resource $conn_identifier ) : string

This function returns the current CUBRID connection charset and is similar to the CUBRID MySQL compatible function cubrid_client_encoding().

Parameter-Liste

conn_identifier

The CUBRID connection.

Rückgabewerte

A string that represents the CUBRID connection charset; on success.

false on failure.

Beispiele

Beispiel #1 cubrid_get_charset() example

<?php

$con = cubrid_connect("localhost", 33000, "demodb");
if (!$con)
{
    die('Could not connect.');
}

printf("CUBRID current charset: %s\n", cubrid_get_charset($con));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CUBRID current charset: iso8859-1

Siehe auch

  • cubrid_client_encoding() - Return the current CUBRID connection charset


Get the class name using OID

  • « cubrid_get_charset
  • cubrid_get_client_info »
  • PHP Manual
  • CUBRID Funktionen
  • Get the class name using OID

cubrid_get_class_name

(PECL CUBRID >= 8.3.0)

cubrid_get_class_name — Get the class name using OID

Beschreibung

cubrid_get_class_name ( resource $conn_identifier , string $oid ) : string

The cubrid_get_class_name() function is used to get the class name from oid. It doesn't work when selecting data from the system tables, for example db_class.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID of the instance that you want to check the existence.

Rückgabewerte

Class name when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_get_class_name() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code", CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);
$class_name = cubrid_get_class_name($conn, $oid);

print_r($class_name);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

code

Siehe auch

  • cubrid_is_instance() - Check whether the instance pointed by OID exists
  • cubrid_drop() - Delete an instance using OID


Return the client library version

  • « cubrid_get_class_name
  • cubrid_get_db_parameter »
  • PHP Manual
  • CUBRID Funktionen
  • Return the client library version

cubrid_get_client_info

(PECL CUBRID >= 8.3.0)

cubrid_get_client_info — Return the client library version

Beschreibung

cubrid_get_client_info ( ) : string

This function returns a string that represents the client library version.

Parameter-Liste

Rückgabewerte

A string that represents the client library version; on success.

false on failure.

Beispiele

Beispiel #1 cubrid_get_client_info() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1


Returns the CUBRID database parameters

  • « cubrid_get_client_info
  • cubrid_get_query_timeout »
  • PHP Manual
  • CUBRID Funktionen
  • Returns the CUBRID database parameters

cubrid_get_db_parameter

(PECL CUBRID >= 8.3.0)

cubrid_get_db_parameter — Returns the CUBRID database parameters

Beschreibung

cubrid_get_db_parameter ( resource $conn_identifier ) : array

This function returns the CUBRID database parameters or it returns FALSE on failure. It returns an associative array with the values for the following parameters:

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT
  • PARAM_MAX_STRING_LENGTH
  • PARAM_AUTO_COMMIT

Database parameters
Parameter | Description
PARAM_ISOLATION_LEVEL | The transaction isolation level.
LOCK_TIMEOUT | CUBRID provides the lock timeout feature, which sets the waiting time (in seconds) for the lock until the transaction lock setting is allowed. The default value of the lock_timeout_in_secs parameter is -1, which means the application client will wait indefinitely until the transaction lock is allowed.
PARAM_AUTO_COMMIT | In CUBRID PHP, auto-commit mode is disabled by default for transaction management. It can be set by using cubrid_set_autocommit().

The following table shows the isolation levels from 1 to 6. It consists of table schema (row) and isolation level:

Levels of Isolation Supported by CUBRID
Name | Description
SERIALIZABLE (6) | In this isolation level, problems concerning concurrency (e.g. dirty read, non-repeatable read, phantom read, etc.) do not occur.
REPEATABLE READ CLASS with REPEATABLE READ INSTANCES (5) | Another transaction T2 cannot update the schema of table A while transaction T1 is viewing table A. Transaction T1 may experience phantom read for the record R that was inserted by another transaction T2 when it is repeatedly retrieving a specific record.
REPEATABLE READ CLASS with READ COMMITTED INSTANCES (or CURSOR STABILITY) (4) | Another transaction T2 cannot update the schema of table A while transaction T1 is viewing table A. Transaction T1 may experience R read (non-repeatable read) that was updated and committed by another transaction T2 when it is repeatedly retrieving the record R.
REPEATABLE READ CLASS with READ UNCOMMITTED INSTANCES (3) | Default isolation level. Another transaction T2 cannot update the schema of table A while transaction T1 is viewing table A. Transaction T1 may experience R' read (dirty read) for the record that was updated but not committed by another transaction T2.
READ COMMITTED CLASS with READ COMMITTED INSTANCES (2) | Transaction T1 may experience A' read (non-repeatable read) for the table that was updated and committed by another transaction T2 while it is viewing table A repeatedly. Transaction T1 may experience R' read (non-repeatable read) for the record that was updated and committed by another transaction T2 while it is retrieving the record R repeatedly.
READ COMMITTED CLASS with READ UNCOMMITTED INSTANCES (1) | Transaction T1 may experience A' read (non-repeatable read) for the table that was updated and committed by another transaction T2 while it is repeatedly viewing table A. Transaction T1 may experience R' read (dirty read) for the record that was updated but not committed by another transaction T2.

Parameter-Liste

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opened by cubrid_connect() is assumed.

Rückgabewerte

An associative array with CUBRID database parameters; on success.

false on failure.

Changelog

Version | Beschreibung
8.4.0 | Change LOCK_TIMEOUT to PARAM_LOCK_TIMEOUT, and MAX_STRING_LENGTH to PARAM_MAX_STRING_LENGTH in result.

Beispiele

Beispiel #1 cubrid_get_db_parameter() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Siehe auch

  • cubrid_set_db_parameter() - Sets the CUBRID database parameters
  • cubrid_get_autocommit() - Get auto-commit mode of the connection


Get the query timeout value of the request

  • « cubrid_get_db_parameter
  • cubrid_get_server_info »
  • PHP Manual
  • CUBRID Funktionen
  • Get the query timeout value of the request

cubrid_get_query_timeout

(PECL CUBRID >= 8.4.1)

cubrid_get_query_timeout — Get the query timeout value of the request

Beschreibung

cubrid_get_query_timeout ( resource $req_identifier ) : int

The cubrid_get_query_timeout() function is used to get the query timeout of the request.

Parameter-Liste

req_identifier

Request identifier.

Rückgabewerte

Success: the query timeout value of the current request. Units of msec.

Failure: FALSE

Beispiele

Beispiel #1 cubrid_get_query_timeout() example

<?php

$host = "localhost";
$port = 33000;
$db = "demodb";

$conn =
cubrid_connect_with_url("CUBRID:$host:$port:$db:::?login_timeout=50000&query_timeout=5000&disconnect_on_query_timeout=yes");

$req = cubrid_prepare($conn, "SELECT * FROM code");

$timeout = cubrid_get_query_timeout($req);
var_dump($timeout);

cubrid_set_query_timeout($req, 1000);
$timeout = cubrid_get_query_timeout($req);
var_dump($timeout);

cubrid_close($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(5000)
int(1000)

Siehe auch

  • cubrid_set_query_timeout() - Set the timeout time of query execution


Return the CUBRID server version

  • « cubrid_get_query_timeout
  • cubrid_get »
  • PHP Manual
  • CUBRID Funktionen
  • Return the CUBRID server version

cubrid_get_server_info

(PECL CUBRID >= 8.3.0)

cubrid_get_server_info — Return the CUBRID server version

Beschreibung

cubrid_get_server_info ( resource $conn_identifier ) : string

This function returns a string that represents the CUBRID server version.

Parameter-Liste

conn_identifier

The CUBRID connection.

Rückgabewerte

A string that represents the CUBRID server version; on success.

false on failure.

Beispiele

Beispiel #1 cubrid_get_server_info() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1


Get a column using OID

  • « cubrid_get_server_info
  • cubrid_insert_id »
  • PHP Manual
  • CUBRID Funktionen
  • Get a column using OID

cubrid_get

(PECL CUBRID >= 8.3.0)

cubrid_get — Get a column using OID

Beschreibung

cubrid_get ( resource $conn_identifier , string $oid , mixed $attr = ? ) : mixed

The cubrid_get() function is used to get the attribute of the instance of the given oid. You can get single attribute by using string data type for the attr argument, or many attributes by using array data type for the attr argument.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID of the instance that you want to read.

attr

Name of the attribute that you want to read.

Rückgabewerte

Content of the requested attribute, when process is successful; When attr is set with string data type, the result is returned as a string; when attr is set with array data type (0-based numerical array), then the result is returned in associative array. When attr is omitted, then all attributes are received in array form.

false when process is unsuccessful or result is NULL (If error occurs to distinguish empty string from NULL, then it prints the warning message. You can check the error by using cubrid_error_code())

Beispiele

Beispiel #1 cubrid_get() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_get($conn, $oid, "b");
var_dump($attr);

$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(9) "{1, 2, 3}"
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

Siehe auch

  • cubrid_put() - Update a column using OID


Return the ID generated for the last updated AUTO_INCREMENT column

  • « cubrid_get
  • cubrid_is_instance »
  • PHP Manual
  • CUBRID Funktionen
  • Return the ID generated for the last updated AUTO_INCREMENT column

cubrid_insert_id

(PECL CUBRID >= 8.3.0)

cubrid_insert_id — Return the ID generated for the last updated AUTO_INCREMENT column

Beschreibung

cubrid_insert_id ( resource $conn_identifier = ? ) : string

The cubrid_insert_id() function retrieves the ID generated for the AUTO_INCREMENT column which is updated by the previous INSERT query. It returns 0 if the previous query does not generate new rows, or FALSE on failure.

Hinweis:

CUBRID supports AUTO_INCREMENT for more than one columns in a table. In most cases, there will be a single AUTO_INCREMENT column in a table. If there are multiple AUTO_INCREMENT columns, this function should not be used even if it will return a value.

Parameter-Liste

conn_identifier

The connection identifier previously obtained by a call to cubrid_connect().

Rückgabewerte

A string representing the ID generated for an AUTO_INCREMENT column by the previous query, on success.

0, if the previous query does not generate new rows.

false on failure.

Changelog

Version | Beschreibung
8.4.0 | Change the return value from an array to string; Remove the first parameter class_name.

Beispiele

Beispiel #1 cubrid_insert_id() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (d int AUTO_INCREMENT(1, 2), t varchar)");

for ($i = 0; $i < 10; $i++) {
    cubrid_execute($conn, "INSERT INTO cubrid_test(t) VALUES('cubrid_test')");
}

$id = cubrid_insert_id();
var_dump($id);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(2) "19"


Check whether the instance pointed by OID exists

  • « cubrid_insert_id
  • cubrid_lob_close »
  • PHP Manual
  • CUBRID Funktionen
  • Check whether the instance pointed by OID exists

cubrid_is_instance

(PECL CUBRID >= 8.3.0)

cubrid_is_instance — Check whether the instance pointed by OID exists

Beschreibung

cubrid_is_instance ( resource $conn_identifier , string $oid ) : int

The cubrid_is_instance() function is used to check whether the instance pointed by the given oid exists or not.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID of the instance that you want to check the existence.

Rückgabewerte

1, if such instance exists;

0, if such instance does not exist;

-1, in case of error

Beispiele

Beispiel #1 cubrid_is_instance() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$sql = <<<EOD
SELECT host_year, medal, game_date
FROM game
WHERE athlete_code IN
    (SELECT code FROM athlete WHERE name='Thorpe Ian');
EOD;

$req = cubrid_execute($conn, $sql, CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);

$res = cubrid_is_instance ($conn, $oid);
if ($res == 1) {
    echo "Instance pointed by $oid exists.\n";
} else if ($res == 0){
    echo "Instance pointed by $oid doesn't exist.\n";
} else {
    echo "error\n";
}

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Instance pointed by @0|0|0 doesn't exist.

Siehe auch

  • cubrid_drop() - Delete an instance using OID
  • cubrid_get_class_name() - Get the class name using OID


Close BLOB/CLOB data

  • « cubrid_is_instance
  • cubrid_lob_export »
  • PHP Manual
  • CUBRID Funktionen
  • Close BLOB/CLOB data

cubrid_lob_close

(PECL CUBRID >= 8.3.1)

cubrid_lob_close — Close BLOB/CLOB data

Beschreibung

cubrid_lob_close ( array $lob_identifier_array ) : bool

cubrid_lob_close() is used to close all BLOB/CLOB returned from cubrid_lob_get().

Parameter-Liste

lob_identifier_array

LOB identifier array return from cubrid_lob_get.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_lob_close() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Siehe auch

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_export() - Export BLOB/CLOB data to file
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Export BLOB/CLOB data to file

  • « cubrid_lob_close
  • cubrid_lob_get »
  • PHP Manual
  • CUBRID Funktionen
  • Export BLOB/CLOB data to file

cubrid_lob_export

(PECL CUBRID >= 8.3.1)

cubrid_lob_export — Export BLOB/CLOB data to file

Beschreibung

cubrid_lob_export ( resource $conn_identifier , resource $lob_identifier , string $path_name ) : bool

cubrid_lob_export() is used to get BLOB/CLOB data from CUBRID database, and saves its contents to a file. To use this function, you must use cubrid_lob_get() first to get BLOB/CLOB info from CUBRID.

Parameter-Liste

conn_identifier

Connection identifier.

lob_identifier

LOB identifier.

path_name

Path name of the file.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_lob_export() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Siehe auch

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Get BLOB/CLOB data

  • « cubrid_lob_export
  • cubrid_lob_send »
  • PHP Manual
  • CUBRID Funktionen
  • Get BLOB/CLOB data

cubrid_lob_get

(PECL CUBRID >= 8.3.1)

cubrid_lob_get — Get BLOB/CLOB data

Beschreibung

cubrid_lob_get ( resource $conn_identifier , string $sql ) : array

cubrid_lob_get() is used to get BLOB/CLOB meta info from CUBRID database, CUBRID gets BLOB/CLOB by executing the SQL statement, and returns all LOBs as a resource array. Be sure that the SQL retrieves only one column and its data type is BLOB or CLOB.

Remember to use cubrid_lob_close() to release the LOBs if you don't need it any more.

Parameter-Liste

conn_identifier

Connection identifier.

sql

SQL statement to be executed.

Rückgabewerte

Return an array of LOB resources, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_lob_get() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Siehe auch

  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_export() - Export BLOB/CLOB data to file
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Read BLOB/CLOB data and send straight to browser

  • « cubrid_lob_get
  • cubrid_lob_size »
  • PHP Manual
  • CUBRID Funktionen
  • Read BLOB/CLOB data and send straight to browser

cubrid_lob_send

(PECL CUBRID >= 8.3.1)

cubrid_lob_send — Read BLOB/CLOB data and send straight to browser

Beschreibung

cubrid_lob_send ( resource $conn_identifier , resource $lob_identifier ) : bool

cubrid_lob_send() reads BLOB/CLOB data and passes it straight through to the browser. To use this function, you must use cubrid_lob_get() first to get BLOB/CLOB info from CUBRID.

Parameter-Liste

conn_identifier

Connection identifier.

lob_identifier

LOB identifier.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_lob_send() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");

cubrid_lob_send($conn, $lobs[0]);
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Siehe auch

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_export() - Export BLOB/CLOB data to file


Get BLOB/CLOB data size

  • « cubrid_lob_send
  • cubrid_lob2_bind »
  • PHP Manual
  • CUBRID Funktionen
  • Get BLOB/CLOB data size

cubrid_lob_size

(PECL CUBRID >= 8.3.1)

cubrid_lob_size — Get BLOB/CLOB data size

Beschreibung

cubrid_lob_size ( resource $lob_identifier ) : string

cubrid_lob_size() is used to get BLOB/CLOB data size.

Parameter-Liste

lob_identifier

LOB identifier.

Rückgabewerte

A string representing LOB data size, when process is successful.

false, when process is unsuccessful.

Changelog

Version | Beschreibung
8.4.0 | Change return value type from int to string.

Beispiele

Beispiel #1 cubrid_lob_size() example

<?php
$lobs = cubrid_lob_get($con, "SELECT doc_content FROM doc WHERE doc_id=5");
echo "Doc size:".cubrid_lob_size($lobs[0]);
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
?>

Siehe auch

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_export() - Export BLOB/CLOB data to file
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Bind a lob object or a string as a lob object to a prepared statement as parameters

  • « cubrid_lob_size
  • cubrid_lob2_close »
  • PHP Manual
  • CUBRID Funktionen
  • Bind a lob object or a string as a lob object to a prepared statement as parameters

cubrid_lob2_bind

(PECL CUBRID >= 8.4.1)

cubrid_lob2_bind — Bind a lob object or a string as a lob object to a prepared statement as parameters

Beschreibung

cubrid_lob2_bind ( resource $req_identifier , int $bind_index , mixed $bind_value , string $bind_value_type = ? ) : bool

The cubrid_lob2_bind() function is used to bind BLOB/CLOB datas to a corresponding question mark placeholder in the SQL statement that was passed to cubrid_prepare(). If bind_value_type is not given, string will be "BLOB" as the default. But if you use cubrid_lob2_new() before, bind_value_type will be consistent with type in cubrid_lob2_new() as the default.

Parameter-Liste

req_identifier

Request identifier as a result of cubrid_prepare().

bind_index

Location of binding parameters. It starts with 1.

bind_value

Actual value for binding.

bind_value_type

It must be "BLOB" or "CLOB" and it won't be case-sensitive. If it not be given, the default value is "BLOB".

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_lob2_bind() example

<?php
// Table: test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");

cubrid_bind($req,1, 3);

$lob = cubrid_lob2_new($conn, 'CLOB');
cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_bind($req, 1, 4);

cubrid_lob2_bind($req, 2, 'CUBRID LOB2 TEST', 'CLOB');

cubrid_execute($req);

cubrid_disconnect($conn);
?>

Siehe auch

  • cubrid_lob2_new() - Create a lob object
  • cubrid_lob2_close() - Close LOB object


Close LOB object

  • « cubrid_lob2_bind
  • cubrid_lob2_export »
  • PHP Manual
  • CUBRID Funktionen
  • Close LOB object

cubrid_lob2_close

(PECL CUBRID >= 8.4.1)

cubrid_lob2_close — Close LOB object

Beschreibung

cubrid_lob2_close ( resource $lob_identifier ) : bool

The cubrid_lob2_close() function is used to close LOB object returned from cubrid_lob2_new() or got from the result set.

Parameter-Liste

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Rückgabewerte

true, on success.

false, on failure.

Siehe auch

  • cubrid_lob2_new() - Create a lob object


Export the lob object to a file

  • « cubrid_lob2_close
  • cubrid_lob2_import »
  • PHP Manual
  • CUBRID Funktionen
  • Export the lob object to a file

cubrid_lob2_export

(PECL CUBRID >= 8.4.1)

cubrid_lob2_export — Export the lob object to a file

Beschreibung

cubrid_lob2_export ( resource $lob_identifier , string $file_name ) : bool

The cubrid_lob2_export() function is used to save the contents of BLOB/CLOB data to a file. To use this function, you must use cubrid_lob2_new() or fetch a lob object from CUBRID database first. If the file already exists, the operation will fail. This function will not influence the cursor position of the lob object. It operates the entire lob object.

Parameter-Liste

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

filename

File name you want to store BLOB/CLOB data. It also supports the path of the file.

Rückgabewerte

true if the process is successful and false for failure.

Beispiele

Beispiel #1 cubrid_lob2_export() example

<?php
// Table: test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$req = cubrid_prepare($conn, "select * from doc");

cubrid_execute($req);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);

$row = cubrid_fetch($req, CUBRID_NUM | CUBRID_LOB);

cubrid_lob2_export($row[1], "doc_3.txt");

cubrid_lob2_close($row[1]);
cubrid_disconnect($conn);
?>

Siehe auch

  • cubrid_lob2_new() - Create a lob object
  • cubrid_lob2_close() - Close LOB object
  • cubrid_lob2_import() - Import BLOB/CLOB data from a file
  • cubrid_lob2_bind() - Bind a lob object or a string as a lob object to a prepared statement as parameters


Import BLOB/CLOB data from a file

  • « cubrid_lob2_export
  • cubrid_lob2_new »
  • PHP Manual
  • CUBRID Funktionen
  • Import BLOB/CLOB data from a file

cubrid_lob2_import

(PECL CUBRID >= 8.4.1)

cubrid_lob2_import — Import BLOB/CLOB data from a file

Beschreibung

cubrid_lob2_import ( resource $lob_identifier , string $file_name ) : bool

The cubrid_lob2_import() function is used to save the contents of BLOB/CLOB data from a file. To use this function, you must use cubrid_lob2_new() or fetch a lob object from CUBRID database first. If the file already exists, the operation will fail. This function will not influence the cursor position of the lob object. It operates the entire lob object.

Parameter-Liste

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

filename

File name you want to import BLOB/CLOB data. It also supports the path of the file.

Rückgabewerte

true if the process is successful and false for failure.

Beispiele

Beispiel #1 cubrid_lob2_export() example

<?php

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");
cubrid_bind($req, 1, 1);

$lob = cubrid_lob2_new($conn, "clob");
cubrid_lob2_import($lob, "doc_1.txt");
cubrid_lob2_bind($req, 2, $lob, 'CLOB'); // or cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_lob2_close($lob);
cubrid_disconnect($conn);
?>

Siehe auch

  • cubrid_lob2_new() - Create a lob object
  • cubrid_lob2_close() - Close LOB object
  • cubrid_lob2_export() - Export the lob object to a file
  • cubrid_lob2_bind() - Bind a lob object or a string as a lob object to a prepared statement as parameters


Create a lob object

  • « cubrid_lob2_import
  • cubrid_lob2_read »
  • PHP Manual
  • CUBRID Funktionen
  • Create a lob object

cubrid_lob2_new

(PECL CUBRID >= 8.4.1)

cubrid_lob2_new — Create a lob object

Beschreibung

cubrid_lob2_new ( resource $conn_identifier = ? , string $type = "BLOB" ) : resource

The cubrid_lob2_new() function is used to create a lob object (both BLOB and CLOB). This function should be used before you bind a lob object.

Parameter-Liste

conn_identifier

Connection identifier. If the connection identifier is not specified, the last connection opened by cubrid_connect() or cubrid_connect_with_url() is assumed.

type

It may be "BLOB" or "CLOB", it won't be case-sensitive. The default value is "BLOB".

Rückgabewerte

Lob identifier when it is successful.

false on failure.

Siehe auch

  • cubrid_lob2_close() - Close LOB object


Read from BLOB/CLOB data

  • « cubrid_lob2_new
  • cubrid_lob2_seek64 »
  • PHP Manual
  • CUBRID Funktionen
  • Read from BLOB/CLOB data

cubrid_lob2_read

(PECL CUBRID >= 8.4.1)

cubrid_lob2_read — Read from BLOB/CLOB data

Beschreibung

cubrid_lob2_read ( resource $lob_identifier , int $len ) : string

The cubrid_lob2_read() function reads len bytes from the LOB data and returns the bytes read.

Parameter-Liste

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

len

Length from buffer you want to read from the lob data.

Rückgabewerte

Returns the contents as a string.

false when there is no more data.

NULL on failure.

Beispiele

Beispiel #1 cubrid_lob2_read() example 1

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "public", "");

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);

print "position now is " . cubrid_lob2_tell($row[1]) . "\n";

cubrid_lob2_seek($row[1], 10, CUBRID_CURSOR_FIRST);

print "\nposition after moving farword is " . cubrid_lob2_tell($row[1]) . "\n";

$data = cubrid_lob2_read($row[1], 12);

print "\nposition after reading is " . cubrid_lob2_tell($row[1]) . "\n";

print $data . "\n";

cubrid_lob2_seek($row[1], 5, CUBRID_CURSOR_CURRENT);

print "\nposition after moving again is " . cubrid_lob2_tell($row[1]) . "\n";

$data = cubrid_lob2_read($row[1], 20);
print $data . "\n";

cubrid_disconnect($conn);
?>

Beispiel #2 cubrid_lob2_read() example 2

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);

while (true) {
    if ($data = cubrid_lob2_read($row[1], 1024)) {
        print $data . "\n";
    }
    elseif ($data === false) {
        print "There is no more data\n";
        break;
    }
    else {
        print "There must some errors\n";
        break;
    }
}

cubrid_disconnect($conn);
?>

Siehe auch

  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Move the cursor of a lob object

  • « cubrid_lob2_read
  • cubrid_lob2_seek »
  • PHP Manual
  • CUBRID Funktionen
  • Move the cursor of a lob object

cubrid_lob2_seek64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_seek64 — Move the cursor of a lob object

Beschreibung

cubrid_lob2_seek64 ( resource $lob_identifier , string $offset , int $origin = CUBRID_CURSOR_CURRENT ) : bool

The cubrid_lob2_seek64() function is used to move the cursor position of a lob object by the value set in the offset argument, to the direction set in the origin argument. If the offset you want to move is larger than an integer data can be stored, you can use this function.

To set the origin argument, you can use CUBRID_CURSOR_FIRST to set the cursor position moving forward offset units from the first beginning. In this case, offset must be a positive value.

If you use CUBRID_CURSOR_CURRENT for origin, you can move forward or backward. and offset can be positive or negative.

If you use CUBRID_CURSOR_LAST for origin, you can move backward offset units from the end of LOB object and offset only can be positive.

Hinweis:

If you use this function to move the cursor position of the lob object, you should pass offset as a string.

Parameter-Liste

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

offset

Number of units you want to move the cursor.

origin

This parameter can be the following values:

CUBRID_CURSOR_FIRST: move forward from the first beginning.

CUBRID_CURSOR_CURRENT: move forward or backward from the current position.

CUBRID_CURSOR_LAST: move backward at the end of LOB object.

Rückgabewerte

true if the process is successful and false for failure.

Beispiele

Beispiel #1 cubrid_lob2_seek64() example

<?php
// test_lob (id INT, contents CLOB)
// Data length of doc_1.txt should be greater than 20101029056306120215.

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");
cubrid_bind($req, 1, 1);

$lob = cubrid_lob2_new($conn, "clob");
cubrid_lob2_import($lob, "doc_1.txt");
cubrid_lob2_bind($req, 2, $lob, 'CLOB'); // or cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_lob2_close($lob);

$req = cubrid_execute($conn, "select * from test_lob");
$row = cubrid_fetch_row($req, CUBRID_LOB);
$lob = $row[1];

cubrid_lob2_seek64($lob, "20101029056306120215", CUBRID_CURSOR_FIRST);
$data = cubrid_lob2_read($lob, 20);
echo $data."\n";
cubrid_disconnect($conn);
?>

Siehe auch

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Move the cursor of a lob object

  • « cubrid_lob2_seek64
  • cubrid_lob2_size64 »
  • PHP Manual
  • CUBRID Funktionen
  • Move the cursor of a lob object

cubrid_lob2_seek

(PECL CUBRID >= 8.4.1)

cubrid_lob2_seek — Move the cursor of a lob object

Beschreibung

cubrid_lob2_seek ( resource $lob_identifier , int $offset , int $origin = CUBRID_CURSOR_CURRENT ) : bool

The cubrid_lob2_seek() function is used to move the cursor position of a lob object by the value set in the offset argument, to the direction set in the origin argument.

To set the origin argument, you can use CUBRID_CURSOR_FIRST to set the cursor position moving forward offset units from the first beginning. In this case, offset must be a positive value.

If you use CUBRID_CURSOR_CURRENT for origin, you can move forward or backward. and offset can be positive or negative.

If you use CUBRID_CURSOR_LAST for origin, you can move backward offset units from the end of LOB object and offset only can be positive.

Parameter-Liste

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

offset

Number of units you want to move the cursor.

origin

This parameter can be the following values:

CUBRID_CURSOR_FIRST: move forward from the first beginning.

CUBRID_CURSOR_CURRENT: move forward or backward from the current position.

CUBRID_CURSOR_LAST: move backward at the end of LOB object.

Rückgabewerte

true if the process is successful and false for failure.

Beispiele

Beispiel #1 cubrid_lob2_seek() example

<?php
// test_lob (id INT, contents CLOB)
$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");
$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(2, ?)");

$lob = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob, "Hello world");

cubrid_lob2_seek($lob, 0, CUBRID_CURSOR_LAST);
cubrid_lob2_write($lob, "beautiful");

cubrid_lob2_seek($lob, 15, CUBRID_CURSOR_FIRST);
$data = cubrid_lob2_read($lob, 5);

echo $data."\n";

cubrid_lob2_bind($req, 1, $lob);
cubrid_execute($req);

cubrid_disconnect($conn);
?>

Siehe auch

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Get a lob object's size

  • « cubrid_lob2_seek
  • cubrid_lob2_size »
  • PHP Manual
  • CUBRID Funktionen
  • Get a lob object's size

cubrid_lob2_size64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_size64 — Get a lob object's size

Beschreibung

cubrid_lob2_size64 ( resource $lob_identifier ) : string

The cubrid_lob2_size64() function is used to get the size of a lob object. If the size of a lob object is larger than an integer data can be stored, you can use this function and it will return the size as a string.

Parameter-Liste

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Rückgabewerte

It will return the size of the LOB object as a string when it processes successfully.

false on failure.

Siehe auch

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size


Get a lob object's size

  • « cubrid_lob2_size64
  • cubrid_lob2_tell64 »
  • PHP Manual
  • CUBRID Funktionen
  • Get a lob object's size

cubrid_lob2_size

(PECL CUBRID >= 8.4.1)

cubrid_lob2_size — Get a lob object's size

Beschreibung

cubrid_lob2_size ( resource $lob_identifier ) : int

The cubrid_lob2_size() function is used to get the size of a lob object.

Parameter-Liste

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Rückgabewerte

It will return the size of the LOB object when it processes successfully.

false on failure.

Siehe auch

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size64() - Get a lob object's size


Tell the cursor position of the LOB object

  • « cubrid_lob2_size
  • cubrid_lob2_tell »
  • PHP Manual
  • CUBRID Funktionen
  • Tell the cursor position of the LOB object

cubrid_lob2_tell64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_tell64 — Tell the cursor position of the LOB object

Beschreibung

cubrid_lob2_tell64 ( resource $lob_identifier ) : string

The cubrid_lob2_tell64() function is used to tell the cursor position of the LOB object. If the size of a lob object is larger than an integer data can be stored, you can use this function and it will return the position information as a string.

Parameter-Liste

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Rückgabewerte

It will return the cursor position on the LOB object as a string when it processes successfully.

false on failure.

Siehe auch

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Tell the cursor position of the LOB object

  • « cubrid_lob2_tell64
  • cubrid_lob2_write »
  • PHP Manual
  • CUBRID Funktionen
  • Tell the cursor position of the LOB object

cubrid_lob2_tell

(PECL CUBRID >= 8.4.1)

cubrid_lob2_tell — Tell the cursor position of the LOB object

Beschreibung

cubrid_lob2_tell ( resource $lob_identifier ) : int

The cubrid_lob2_tell() function is used to tell the cursor position of the LOB object.

Parameter-Liste

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Rückgabewerte

It will return the cursor position on the LOB object when it processes successfully.

false on failure.

Siehe auch

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_write() - Write to a lob object
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Write to a lob object

  • « cubrid_lob2_tell
  • cubrid_lock_read »
  • PHP Manual
  • CUBRID Funktionen
  • Write to a lob object

cubrid_lob2_write

(PECL CUBRID >= 8.4.1)

cubrid_lob2_write — Write to a lob object

Beschreibung

cubrid_lob2_write ( resource $lob_identifier , string $buf ) : bool

The cubrid_lob2_write() function reads as much as data from buf and stores it to the LOB object. Note that this function can only append characters now.

Parameter-Liste

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

buf

Data that need to be written to the lob object.

Rückgabewerte

true if the process is successful and false for failure.

Beispiele

Beispiel #1 cubrid_lob2_write() example 1

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(2, ?)");

$lob = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob, "Hello world");

cubrid_lob2_bind($req, 1, $lob);
cubrid_execute($req);

cubrid_disconnect($conn);
?>

Beispiel #2 cubrid_lob2_write() example 2

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(1, ?)");
$lob1 = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob1, "cubrid php driver");
cubrid_lob2_bind($req, 1, $lob1);
cubrid_execute($req);

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);
$lob2 = $row[1];
cubrid_lob2_seek($lob2, 0, CUBRID_CURSOR_LAST);

$pos = cubrid_lob2_tell($lob2);
print "pos before write: $pos\n";

cubrid_lob2_write($lob2, "Hello world");

$pos = cubrid_lob2_tell($lob2);
print "pos after write: $pos\n";

cubrid_disconnect($conn);
?>

Siehe auch

  • cubrid_lob2_read() - Read from BLOB/CLOB data
  • cubrid_lob2_seek() - Move the cursor of a lob object
  • cubrid_lob2_seek64() - Move the cursor of a lob object
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object
  • cubrid_lob2_size() - Get a lob object's size
  • cubrid_lob2_size64() - Get a lob object's size


Set a read lock on the given OID

  • « cubrid_lob2_write
  • cubrid_lock_write »
  • PHP Manual
  • CUBRID Funktionen
  • Set a read lock on the given OID

cubrid_lock_read

(PECL CUBRID >= 8.3.0)

cubrid_lock_read — Set a read lock on the given OID

Beschreibung

cubrid_lock_read ( resource $conn_identifier , string $oid ) : bool

The cubrid_lock_read() function is used to put read lock on the instance pointed by given oid.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID of the instance that you want to put read lock on.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_lock_read() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

cubrid_lock_read($conn, $oid);

$attr = cubrid_get($conn, $oid, "b");
var_dump($attr);

$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(9) "{1, 2, 3}"
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

Siehe auch

  • cubrid_lock_write() - Set a write lock on the given OID


Set a write lock on the given OID

  • « cubrid_lock_read
  • cubrid_move_cursor »
  • PHP Manual
  • CUBRID Funktionen
  • Set a write lock on the given OID

cubrid_lock_write

(PECL CUBRID >= 8.3.0)

cubrid_lock_write — Set a write lock on the given OID

Beschreibung

cubrid_lock_write ( resource $conn_identifier , string $oid ) : bool

The cubrid_lock_write() function is used to put write lock on the instance pointed by the given oid.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID of the instance that you want to put write lock on.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_lock_write() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

cubrid_lock_write($conn, $oid);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_put($conn, $oid, "b", array(2, 4, 8));

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "4"
  [2]=>
  string(1) "8"
}

Siehe auch

  • cubrid_lock_read() - Set a read lock on the given OID


Move the cursor in the result

  • « cubrid_lock_write
  • cubrid_next_result »
  • PHP Manual
  • CUBRID Funktionen
  • Move the cursor in the result

cubrid_move_cursor

(PECL CUBRID >= 8.3.0)

cubrid_move_cursor — Move the cursor in the result

Beschreibung

cubrid_move_cursor ( resource $req_identifier , int $offset , int $origin = CUBRID_CURSOR_CURRENT ) : bool

The cubrid_move_cursor() function is used to move the current cursor location of req_identifier by the value set in the offset argument, to the direction set in the origin argument. To set the origin argument, you can use CUBRID_CURSOR_FIRST for the first part of the result, CUBRID_CURSOR_CURRENT for the current location of the result, or CUBRID_CURSOR_LAST for the last part of the result. If origin argument is not explicitly designated, then the function uses CUBRID_CURSOR_CURRENT as its default value.

If the value of cursor movement range goes over the valid limit, then the cursor moves to the next location after the valid range for the cursor. For example, if you move 20 units in the result with the size of 10, then the cursor will move to 11th place and return CUBRID_NO_MORE_DATA.

Parameter-Liste

req_identifier

Request identifier.

offset

Number of units you want to move the cursor.

origin

Location where you want to move the cursor from CUBRID_CURSOR_FIRST, CUBRID_CURSOR_CURRENT, CUBRID_CURSOR_LAST.

Rückgabewerte

true, when process is successful.

false, when process is unsucceful.

Beispiele

Beispiel #1 cubrid_move_cursor() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");
cubrid_move_cursor($req, 1, CUBRID_CURSOR_LAST);

$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_CURRENT);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  string(1) "G"
  [1]=>
  string(4) "Gold"
}
array(2) {
  [0]=>
  string(1) "X"
  [1]=>
  string(5) "Mixed"
}
array(2) {
  [0]=>
  string(1) "M"
  [1]=>
  string(3) "Man"
}

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement


Get result of next query when executing multiple SQL statements

  • « cubrid_move_cursor
  • cubrid_num_cols »
  • PHP Manual
  • CUBRID Funktionen
  • Get result of next query when executing multiple SQL statements

cubrid_next_result

(PECL CUBRID >= 8.4.0)

cubrid_next_result — Get result of next query when executing multiple SQL statements

Beschreibung

cubrid_next_result ( resource $result ) : bool

The cubrid_next_result() function is used to get results of next query if multiple SQL statements are executed and CUBRID_EXEC_QUERY_ALL flag is set upon cubrid_execute().

Parameter-Liste

result

result comes from a call to cubrid_execute()

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_next_result() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");

$sql_stmt = "SELECT * FROM code; SELECT * FROM history WHERE host_year=2004 AND event_code=20281";
$res = cubrid_execute($conn, $sql_stmt, CUBRID_EXEC_QUERY_ALL);

get_result_info($res);
cubrid_next_result($res);
get_result_info($res);

function get_result_info($req)
{
    printf("\n------------ get_result_info --------------------\n");

    $row_num = cubrid_num_rows($req);
    $col_num = cubrid_num_cols($req);

    $column_name_list = cubrid_column_names($req);
    $column_type_list = cubrid_column_types($req);

    $column_last_name = cubrid_field_name($req, $col_num - 1);
    $column_last_table = cubrid_field_table($req, $col_num - 1);

    $column_last_type = cubrid_field_type($req, $col_num - 1);
    $column_last_len = cubrid_field_len($req, $col_num - 1);

    $column_1_flags = cubrid_field_flags($req, 1);

    printf("%-30s %d\n", "Row count:", $row_num);
    printf("%-30s %d\n", "Column count:", $col_num);
    printf("\n");

    printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Len");
    printf("------------------------------------------------------------------------------\n");

    $size = count($column_name_list);
    for($i = 0; $i < $size; $i++) {
        $column_len = cubrid_field_len($req, $i);
        printf("%-30s %-30s %-15s\n", $column_name_list[$i], $column_type_list[$i], $column_len);
    }
    printf("\n\n");

    printf("%-30s %s\n", "Last Column Name:", $column_last_name);
    printf("%-30s %s\n", "Last Column Table:", $column_last_table);
    printf("%-30s %s\n", "Last Column Type:", $column_last_type);
    printf("%-30s %d\n", "Last Column Len:", $column_last_len);
    printf("%-30s %s\n", "Second Column Flags:", $column_1_flags);

    printf("\n\n");
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

------------ get_result_info --------------------
Row count:                     6
Column count:                  2

Column Names                   Column Types                   Column Len
------------------------------------------------------------------------------
s_name                         char                           1
f_name                         varchar                        6

Last Column Name:              f_name
Last Column Table:             code
Last Column Type:              varchar
Last Column Len:               6
Second Column Flags:

------------ get_result_info --------------------
Row count:                     4
Column count:                  5

Column Names                   Column Types                   Column Len
------------------------------------------------------------------------------
event_code                     integer                        11
athlete                        varchar                        40
host_year                      integer                        11
score                          varchar                        10
unit                           varchar                        5

Last Column Name:              unit
Last Column Table:             history
Last Column Type:              varchar
Last Column Len:               5
Second Column Flags:           not_null primary_key unique_key

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement


Return the number of columns in the result set

  • « cubrid_next_result
  • cubrid_num_rows »
  • PHP Manual
  • CUBRID Funktionen
  • Return the number of columns in the result set

cubrid_num_cols

(PECL CUBRID >= 8.3.0)

cubrid_num_cols — Return the number of columns in the result set

Beschreibung

cubrid_num_cols ( resource $result ) : int

The cubrid_num_cols() function is used to get the number of columns from the query result. It can only be used when the query executed is a select statement.

Parameter-Liste

result

Result.

Rückgabewerte

Number of columns, when process is successful.

false, if SQL statement is not SELECT.

Beispiele

Beispiel #1 cubrid_num_cols() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_cols($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Row Num: 6
Column Num: 2

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_num_rows() - Get the number of rows in the result set


Get the number of rows in the result set

  • « cubrid_num_cols
  • cubrid_pconnect_with_url »
  • PHP Manual
  • CUBRID Funktionen
  • Get the number of rows in the result set

cubrid_num_rows

(PECL CUBRID >= 8.3.0)

cubrid_num_rows — Get the number of rows in the result set

Beschreibung

cubrid_num_rows ( resource $result ) : int

The cubrid_num_rows() function is used to get the number of rows from the query result. You can use it only when the query executed is a select statement. When you want to know such value for INSERT, UPDATE, or DELETE query, you have to use the cubrid_affected_rows() function.

Note: The cubrid_num_rows() function can only be used for synchronous query; it returns 0 when it is used for asynchronous query.

Parameter-Liste

result

result comes from a call to cubrid_execute(), cubrid_query() and cubrid_prepare()

Rückgabewerte

Number of rows, when process is successful.

0 when the query was done in async mode.

-1, if SQL statement is not SELECT.

false when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_num_rows() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_cols($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Row Num: 6
Column Num: 2

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_num_cols() - Return the number of columns in the result set
  • cubrid_affected_rows() - Return the number of rows affected by the last SQL statement


Open a persistent connection to CUBRID server

  • « cubrid_num_rows
  • cubrid_pconnect »
  • PHP Manual
  • CUBRID Funktionen
  • Open a persistent connection to CUBRID server

cubrid_pconnect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_pconnect_with_url — Open a persistent connection to CUBRID server

Beschreibung

cubrid_pconnect_with_url ( string $conn_url , string $userid = ? , string $passwd = ? ) : resource

Establishes a persistent connection to a CUBRID server.

cubrid_pconnect_with_url() acts very much like cubrid_connect_with_url() 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, port, dbname and userid. 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 (cubrid_close() or cubrid_disconnect() will not close links established by cubrid_pconnect_with_url()).

This type of link is therefore called 'persistent'.

<url> ::= CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]

<properties> ::= <property> [&<property>]

<properties> ::= alhosts=<alternative_hosts>[ &rctime=<time>]

<properties> ::= login_timeout=<milli_sec>

<properties> ::= query_timeout=<milli_sec>

<properties> ::= disconnect_on_query_timeout=true|false

<alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<host> := HOSTNAME | IP_ADDR

<time> := SECOND

<milli_sec> := MILLI SECOND

  • host : A host name or IP address of the master database
  • db_name : A name of the database
  • db_user : A name of the database user
  • db_password : A database user password
  • alhosts : Specifies the broker information of the standby server, which is used for failover when it is impossible to connect to the active server. You can specify multiple brokers for failover, and the connection to the brokers is attempted in the order listed in alhosts
  • rctime : An interval between the attempts to connect to the active broker in which failure occurred. After a failure occurs, the system connects to the broker specified by althosts (failover), terminates the transaction, and then attempts to connect to the active broker of the master database at every rctime. The default value is 600 seconds.
  • login_timeout : Timeout value (unit: msec.) for database login. The default value is 0, which means infinite postponement.
  • query_timeout : Timeout value (unit: msec.) for query request. Upon timeout, a message to cancel requesting a query transferred to server is sent. The return value can depend on the disconnect_on_query_timeout configuration; even though the message to cancel a request is sent to server, that request may succeed.
  • disconnect_on_query_timeout : Configures a value whether to immediately return an error of function being executed upon timeout. The default value is false.

Hinweis:

? and : that are used as identifiers in PHP connection URL can't be included in the password. The following is an example of a password that is invalid to use as connection URL because it contains "?:".

$url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";

Passwords that contain ? or : may be passed as a separate parameter.

$url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";

$conn = cubrid_pconnect_with_url ($url, "dba", "12?");

If user or password is empty,you can't delete ":",the following is an example.

$url = "CUBRID:localhost:33000:demodb:::";

Parameter-Liste

conn_url

A character string that contains server connection information.

userid

User name for the database.

passwd

User password.

Rückgabewerte

Connection identifier, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_pconnect_with_url() url without properties example

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::"
$con = cubrid_pconnect_with_url ($conn_url);

if ($con) {
   echo "connected successfully";
   cubrid_execute($con, "create table person(id int,name char(16))");
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request ($req);
      cubrid_commit ($con);
   } else {
      cubrid_rollback ($con);
   }
   cubrid_disconnect ($con);
}
?>

Beispiel #2 cubrid_pconnect_with_url() url with properties example

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::?althost=10.34.63.132:33088&rctime=100"
$con = cubrid_pconnect_with_url ($conn_url);

if ($con) {
   echo "connected successfully";
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request ($req);
      cubrid_commit ($con);
   } else {
      cubrid_rollback ($con);
   }
   cubrid_disconnect ($con);
}
?>

Siehe auch

  • cubrid_connect() - Open a connection to a CUBRID Server
  • cubrid_connect_with_url() - Establish the environment for connecting to CUBRID server
  • cubrid_pconnect() - Open a persistent connection to a CUBRID server
  • cubrid_disconnect() - Close a database connection
  • cubrid_close() - Close CUBRID connection


Open a persistent connection to a CUBRID server

  • « cubrid_pconnect_with_url
  • cubrid_prepare »
  • PHP Manual
  • CUBRID Funktionen
  • Open a persistent connection to a CUBRID server

cubrid_pconnect

(PECL CUBRID >= 8.3.1)

cubrid_pconnect — Open a persistent connection to a CUBRID server

Beschreibung

cubrid_pconnect ( string $host , int $port , string $dbname , string $userid = ? , string $passwd = ? ) : resource

Establishes a persistent connection to a CUBRID server.

cubrid_pconnect() acts very much like cubrid_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, port, dbname and userid. 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 (cubrid_close() or cubrid_disconnect() will not close links established by cubrid_pconnect()).

This type of link is therefore called 'persistent'.

Parameter-Liste

host

Host name or IP address of CUBRID CAS server.

port

Port number of CUBRID CAS server (BROKER_PORT configured in $CUBRID/conf/cubrid_broker.conf).

dbname

Name of database.

userid

User name for the database.

passwd

User password.

Rückgabewerte

Connection identifier, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_connect() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_pconnect("localhost", 33000, "demodb", "dba");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Siehe auch

  • cubrid_connect() - Open a connection to a CUBRID Server
  • cubrid_connect_with_url() - Establish the environment for connecting to CUBRID server
  • cubrid_pconnect_with_url() - Open a persistent connection to CUBRID server
  • cubrid_disconnect() - Close a database connection
  • cubrid_close() - Close CUBRID connection


Prepare a SQL statement for execution

  • « cubrid_pconnect
  • cubrid_put »
  • PHP Manual
  • CUBRID Funktionen
  • Prepare a SQL statement for execution

cubrid_prepare

(PECL CUBRID >= 8.3.0)

cubrid_prepare — Prepare a SQL statement for execution

Beschreibung

cubrid_prepare ( resource $conn_identifier , string $prepare_stmt , int $option = 0 ) : resource

The cubrid_prepare() function is a sort of API which represents SQL statements compiled previously to a given connection handle. This pre-compiled SQL statement will be included in the cubrid_prepare().

Accordingly, you can use this statement effectively to execute several times repeatedly or to process long data. Only a single statement can be used and a parameter may put a question mark (?) to appropriate area in the SQL statement. Add a parameter when you bind a value in the VALUES clause of INSERT statement or in the WHERE clause. Note that it is allowed to bind a value to a MARK(?) by using the cubrid_bind() function only.

Parameter-Liste

conn_identifier

Connection identifier.

prepare_stmt

Prepare query.

option

OID return option CUBRID_INCLUDE_OID.

Rückgabewerte

Request identifier, if process is successful;

false, if process is unsuccessful.

Beispiele

Beispiel #1 cubrid_prepare() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$sql = <<<EOD
SELECT g.event_code, e.name
FROM game g
JOIN event e ON g.event_code=e.code
WHERE host_year = ? AND event_code NOT IN (SELECT event_code FROM game WHERE host_year=?) GROUP BY event_code;
EOD;

$req = cubrid_prepare($conn, $sql);

cubrid_bind($req, 1, 2004);
cubrid_bind($req, 2, 2000);
cubrid_execute($req);

$row_num = cubrid_num_rows($req);
printf("There are %d event that exits in 2004 olympic but not in 2000. For example:\n\n", $row_num);

printf("%-15s %s\n", "Event_code", "Event_name");
printf("----------------------------\n");

$row = cubrid_fetch_assoc($req);
printf("%-15d %s\n", $row["event_code"], $row["name"]);
$row = cubrid_fetch_assoc($req);
printf("%-15d %s\n", $row["event_code"], $row["name"]);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

There are 27 event that exits in 2004 olympic but not in 2000. For example:

Event_code      Event_name
----------------------------
20063           +91kg
20070           64kg

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_bind() - Bind variables to a prepared statement as parameters


Update a column using OID

  • « cubrid_prepare
  • cubrid_rollback »
  • PHP Manual
  • CUBRID Funktionen
  • Update a column using OID

cubrid_put

(PECL CUBRID >= 8.3.0)

cubrid_put — Update a column using OID

Beschreibung

cubrid_put ( resource $conn_identifier , string $oid , string $attr = ? , mixed $value ) : bool

The cubrid_put() function is used to update an attribute of the instance of the given oid.

You can update single attribute by using string data type to set attr. In such case, you can use integer, floating point or string type data for the value argument. To update multiple number of attributes, you can disregard the attr argument, and set value argument with associative array data type.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID of the instance that you want to update.

attr

Name of the attribute that you want to update.

value

New value that you want to assign to the attribute.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_put() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_put($conn, $oid, "b", array(2, 4, 8));

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "4"
  [2]=>
  string(1) "8"
}

Siehe auch

  • cubrid_get() - Get a column using OID
  • cubrid_set_add() - Insert a single element to set type column using OID
  • cubrid_set_drop() - Delete an element from set type column using OID
  • cubrid_seq_insert() - Insert an element to a sequence type column using OID
  • cubrid_seq_drop() - Delete an element from sequence type column using OID
  • cubrid_seq_put() - Update the element value of sequence type column using OID


Roll back a transaction

  • « cubrid_put
  • cubrid_schema »
  • PHP Manual
  • CUBRID Funktionen
  • Roll back a transaction

cubrid_rollback

(PECL CUBRID >= 8.3.0)

cubrid_rollback — Roll back a transaction

Beschreibung

cubrid_rollback ( resource $conn_identifier ) : bool

The cubrid_rollback() function executes rollback on the transaction pointed by conn_identifier, currently in progress.

Connection to server is closed after calling cubrid_rollback(). Connection handle, however, is still valid.

Parameter-Liste

conn_identifier

Connection identifier.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_rollback() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");
cubrid_set_autocommit($conn,false);

@cubrid_execute($conn, "DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3),
pub_name VARCHAR(20),
city VARCHAR(15),
state CHAR(2),
country VARCHAR(15)
)
EOD;

if (!cubrid_execute($conn, $sql)) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n", cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}

$req = cubrid_prepare($conn, "INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01", "P02", "P03", "P04");
$name_list = array("Abatis Publishers", "Core Dump Books", "Schadenfreude Press", "Tenterhooks Press");
$city_list = array("New York", "San Francisco", "Hamburg", "Berkeley");
$state_list = array("NY", "CA", NULL, "CA");
$country_list = array("USA", "USA", "Germany", "USA");

for ($i = 0, $size = count($id_list); $i < $size; $i++) {
    cubrid_bind($req, 1, $id_list[$i]);
    cubrid_bind($req, 2, $name_list[$i]);
    cubrid_bind($req, 3, $city_list[$i]);
    cubrid_bind($req, 4, $state_list[$i]);
    cubrid_bind($req, 5, $country_list[$i]);

    if (!($ret = cubrid_execute($req))) {
        break;
    }
}

if (!$ret) {
    cubrid_rollback($conn);
} else {
    cubrid_commit($conn);

    $req = cubrid_execute($conn, "SELECT * FROM publishers");
    while ($result = cubrid_fetch_assoc($req)) {
        printf("%-3s %-20s %-15s %-3s %-15s\n",
            $result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
    }
}

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

P01 Abatis Publishers    New York        NY  USA
P02 Core Dump Books      San Francisco   CA  USA
P03 Schadenfreude Press  Hamburg             Germany
P04 Tenterhooks Press    Berkeley        CA  USA

Siehe auch

  • cubrid_commit() - Commit a transaction
  • cubrid_disconnect() - Close a database connection


Get the requested schema information

  • « cubrid_rollback
  • cubrid_seq_drop »
  • PHP Manual
  • CUBRID Funktionen
  • Get the requested schema information

cubrid_schema

(PECL CUBRID >= 8.3.0)

cubrid_schema — Get the requested schema information

Beschreibung

cubrid_schema ( resource $conn_identifier , int $schema_type , string $class_name = ? , string $attr_name = ? ) : array

The cubrid_schema() function is used to get the requested schema information from database. You have to designate class_name, if you want to get information on certain class, attr_name, if you want to get information on certain attribute (can be used only with CUBRID_ SCH_ATTR_PRIVILEGE).

The result of the cubrid_schema function is returned as a two-dimensional array (column (associative array) * row (numeric array)). The following tables shows types of schema and the column structure of the result array to be returned based on the schema type.

Result Composition of Each Type
Schema | Column Number | Column Name | Value
CUBRID_SCH_CLASS | 1 | NAME |
 | 2 | TYPE | 0:system class 1:vclass 2:class
CUBRID_SCH_VCLASS | 1 | NAME |
 | 2 | TYPE | 1:vclass
CUBRID_SCH_QUERY_SPEC | 1 | QUERY_SPEC |
CUBRID_SCH_ATTRIBUTE / CUBRID_SCH_CLASS_ATTRIBUTE | 1 | ATTR_NAME |
 | 2 | DOMAIN |
 | 3 | SCALE |
 | 4 | PRECISION |
 | 5 | INDEXED | 1:indexed
 | 6 | NOT NULL | 1:not null
 | 7 | SHARED | 1:shared
 | 8 | UNIQUE | 1:unique
 | 9 | DEFAULT |
 | 10 | ATTR_ORDER | base:1
 | 11 | CLASS_NAME |
 | 12 | SOURCE_CLASS |
 | 13 | IS_KEY | 1:key
CUBRID_SCH_METHOD / CUBRID_SCH_CLASS_METHOD | 1 | NAME |
 | 2 | RET_DOMAIN |
 | 3 | ARG_DOMAIN |
CUBRID_SCH_METHOD_FILE | 1 | METHOD_FILE |
CUBRID_SCH_SUPERCLASS / CUBRID_SCH_DIRECT_SUPER_CLASS / CUBRID_SCH_SUBCLASS | 1 | CLASS_NAME |
 | 2 | TYPE | 0:system class 1:vclass 2:class
CUBRID_SCH_CONSTRAINT | 1 | TYPE | 0:unique 1:index 2:reverse unique 3:reverse index
 | 2 | NAME |
 | 3 | ATTR_NAME |
 | 4 | NUM_PAGES |
 | 5 | NUM_KEYS |
 | 6 | PRIMARY_KEY | 1:primary key
 | 7 | KEY_ORDER | base:1
CUBRID_SCH_TRIGGER | 1 | NAME |
 | 2 | STATUS |
 | 3 | EVENT |
 | 4 | TARGET_CLASS |
 | 5 | TARGET_ATTR |
 | 6 | ACTION_TIME |
 | 7 | ACTION |
 | 8 | PRIORITY |
 | 9 | CONDITION_TIME |
 | 10 | CONDITION |
CUBRID_SCH_CLASS_PRIVILEGE / CUBRID_SCH_ATTR_PRIVILEGE | 1 | CLASS_NAME / ATTR_NAME |
 | 2 | PRIVILEGE |
 | 3 | GRANTABLE |
CUBRID_SCH_PRIMARY_KEY | 1 | CLASS_NAME |
 | 2 | ATTR_NAME |
 | 3 | KEY_SEQ | base:1
 | 4 | KEY_NAME |
CUBRID_SCH_IMPORTED_KEYS / CUBRID_SCH_EXPORTED_KEYS / CUBRID_SCH_CROSS_REFERENCE | 1 | PKTABLE_NAME |
 | 2 | PKCOLUMN_NAME |
 | 3 | FKTABLE_NAME | base:1
 | 4 | FKCOLUMN_NAME |
 | 5 | KEY_SEQ | base:1
 | 6 | UPDATE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 7 | DELETE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 8 | FK_NAME |
 | 9 | PK_NAME |

Parameter-Liste

conn_identifier

Connection identifier.

schema_type

Schema data that you want to know.

class_name

Class you want to know the schema of.

attr_name

Attribute you want to know the schema of.

Rückgabewerte

Array containing the schema information, when process is successful;

false, when process is unsuccessful

Changelog

Version | Beschreibung
8.3.1 | Change return value: when process is unsuccessful, return false, not -1.

Beispiele

Beispiel #1 cubrid_schema() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

printf("\n--- Primary Key ---\n");
$pk = cubrid_schema($conn, CUBRID_SCH_PRIMARY_KEY, "game");
var_dump($pk);

printf("\n--- Foreign Keys ---\n");
$fk = cubrid_schema($conn, CUBRID_SCH_IMPORTED_KEYS, "game");
var_dump($fk);

printf("\n--- Column Attribute ---\n");
$attr = cubrid_schema($conn, CUBRID_SCH_ATTRIBUTE, "stadium", "area");
var_dump($attr);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

--- Primary Key ---
array(3) {
  [0]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "3"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [1]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "2"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [2]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(9) "host_year"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
}

--- Foreign Keys ---
array(2) {
  [0]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(7) "athlete"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(20) "fk_game_athlete_code"
    ["PK_NAME"]=>
    string(15) "pk_athlete_code"
  }
  [1]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(5) "event"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(18) "fk_game_event_code"
    ["PK_NAME"]=>
    string(13) "pk_event_code"
  }
}

--- Column Attribute ---
array(1) {
  [0]=>
  array(13) {
    ["ATTR_NAME"]=>
    string(4) "area"
    ["DOMAIN"]=>
    string(1) "7"
    ["SCALE"]=>
    string(1) "2"
    ["PRECISION"]=>
    string(2) "10"
    ["INDEXED"]=>
    string(1) "0"
    ["NON_NULL"]=>
    string(1) "0"
    ["SHARED"]=>
    string(1) "0"
    ["UNIQUE"]=>
    string(1) "0"
    ["DEFAULT"]=>
    NULL
    ["ATTR_ORDER"]=>
    string(1) "4"
    ["CLASS_NAME"]=>
    string(7) "stadium"
    ["SOURCE_CLASS"]=>
    string(7) "stadium"
    ["IS_KEY"]=>
    string(1) "0"
  }
}


Delete an element from sequence type column using OID

  • « cubrid_schema
  • cubrid_seq_insert »
  • PHP Manual
  • CUBRID Funktionen
  • Delete an element from sequence type column using OID

cubrid_seq_drop

(PECL CUBRID >= 8.3.0)

cubrid_seq_drop — Delete an element from sequence type column using OID

Beschreibung

cubrid_seq_drop ( resource $conn_identifier , string $oid , string $attr_name , int $index ) : bool

The cubrid_seq_drop() function is used to delete an element you request from the given sequence type attribute in the database.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute that you want to delete an element from.

index

Index of the element that you want to delete (1-based).

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_seq_drop() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_drop($conn, $oid, "c", 4);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(3) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
}

Siehe auch

  • cubrid_seq_insert() - Insert an element to a sequence type column using OID
  • cubrid_seq_put() - Update the element value of sequence type column using OID


Insert an element to a sequence type column using OID

  • « cubrid_seq_drop
  • cubrid_seq_put »
  • PHP Manual
  • CUBRID Funktionen
  • Insert an element to a sequence type column using OID

cubrid_seq_insert

(PECL CUBRID >= 8.3.0)

cubrid_seq_insert — Insert an element to a sequence type column using OID

Beschreibung

cubrid_seq_insert ( resource $conn_identifier , string $oid , string $attr_name , int $index , string $seq_element ) : bool

The cubrid_col_insert() function is used to insert an element to a sequence type attribute in a requested location.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute you want to insert an instance to.

index

Location of the element, you want to insert the element to (1-based).

seq_element

Content of the element that you want to insert.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_seq_insert() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_insert($conn, $oid, "c", 5, "44");

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(5) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
  [4]=>
  string(2) "44"
}

Siehe auch

  • cubrid_seq_drop() - Delete an element from sequence type column using OID
  • cubrid_seq_put() - Update the element value of sequence type column using OID


Update the element value of sequence type column using OID

  • « cubrid_seq_insert
  • cubrid_set_add »
  • PHP Manual
  • CUBRID Funktionen
  • Update the element value of sequence type column using OID

cubrid_seq_put

(PECL CUBRID >= 8.3.0)

cubrid_seq_put — Update the element value of sequence type column using OID

Beschreibung

cubrid_seq_put ( resource $conn_identifier , string $oid , string $attr_name , int $index , string $seq_element ) : bool

The cubrid_seq_put() function is used to update the content of the requested element in a sequent type attribute using OID.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute that you want to update an element.

index

Index (1-based) of the element that you want to update.

seq_element

New content that you want to use for the update.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_seq_put() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_put($conn, $oid, "c", 1, "111");

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(4) {
  [0]=>
  string(3) "111"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}

Siehe auch

  • cubrid_seq_drop() - Delete an element from sequence type column using OID
  • cubrid_seq_insert() - Insert an element to a sequence type column using OID


Insert a single element to set type column using OID

  • « cubrid_seq_put
  • cubrid_set_autocommit »
  • PHP Manual
  • CUBRID Funktionen
  • Insert a single element to set type column using OID

cubrid_set_add

(PECL CUBRID >= 8.3.0)

cubrid_set_add — Insert a single element to set type column using OID

Beschreibung

cubrid_set_add ( resource $conn_identifier , string $oid , string $attr_name , string $set_element ) : bool

The cubrid_set_add() function is used to insert a single element to a set type attribute (set, multiset, sequence) you requested.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute you want to insert an element.

set_element

Content of the element you want to insert.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_set_add() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_set_add($conn, $oid, "b", "4");

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(4) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
  [3]=>
  string(1) "4"
}

Siehe auch

  • cubrid_seq_drop() - Delete an element from sequence type column using OID


Set autocommit mode of the connection

  • « cubrid_set_add
  • cubrid_set_db_parameter »
  • PHP Manual
  • CUBRID Funktionen
  • Set autocommit mode of the connection

cubrid_set_autocommit

(PECL CUBRID >= 8.4.0)

cubrid_set_autocommit — Set autocommit mode of the connection

Beschreibung

cubrid_set_autocommit ( resource $conn_identifier , bool $mode ) : bool

The cubrid_set_autocommit() function is used to set the CUBRID database auto-commit mode of the current database connection.

In CUBRID PHP, auto-commit mode is disabled by default for transaction management. When auto-commit mode is truned from off to on, any pending work is automatically committed.

Parameter-Liste

conn_identifier

Connection identifier.

mode

Auto-commit mode. The following constants can be used:

  • CUBRID_AUTOCOMMIT_FALSE
  • CUBRID_AUTOCOMMIT_TRUE

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Siehe auch

  • cubrid_get_autocommit() - Get auto-commit mode of the connection
  • cubrid_commit() - Commit a transaction


Sets the CUBRID database parameters

  • « cubrid_set_autocommit
  • cubrid_set_drop »
  • PHP Manual
  • CUBRID Funktionen
  • Sets the CUBRID database parameters

cubrid_set_db_parameter

(PECL CUBRID >= 8.4.0)

cubrid_set_db_parameter — Sets the CUBRID database parameters

Beschreibung

cubrid_set_db_parameter ( resource $conn_identifier , int $param_type , int $param_value ) : bool

The cubrid_set_db_parameter() function is used to set the CUBRID database parameters. It can set the following CUBRID database parameters:

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT

Hinweis:

The auto-commit mode can be set by using cubrid_set_autocommit().

Parameter-Liste

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opened by cubrid_connect() is assumed.

param_type

Database parameter type.

param_value

Isolation level value (1-6) or lock timeout (in seconds) value.

Rückgabewerte

true on success.

false on failure.

Beispiele

Beispiel #1 cubrid_get_db_parameter() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$params = cubrid_get_db_parameter($conn);
var_dump($params);

cubrid_set_autocommit($conn, CUBRID_AUTOCOMMIT_TRUE);
cubrid_set_db_parameter($conn, CUBRID_PARAM_ISOLATION_LEVEL, 2);

$params_new = cubrid_get_db_parameter($conn);
var_dump($params_new);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  ["PARAM_ISOLATION_LEVEL"]=>
  int(3)
  ["PARAM_LOCK_TIMEOUT"]=>
  int(-1)
  ["PARAM_MAX_STRING_LENGTH"]=>
  int(1073741823)
  ["PARAM_AUTO_COMMIT"]=>
  int(0)
}
array(4) {
  ["PARAM_ISOLATION_LEVEL"]=>
  int(2)
  ["PARAM_LOCK_TIMEOUT"]=>
  int(-1)
  ["PARAM_MAX_STRING_LENGTH"]=>
  int(1073741823)
  ["PARAM_AUTO_COMMIT"]=>
  int(1)
}

Siehe auch

  • cubrid_get_db_parameter() - Returns the CUBRID database parameters
  • cubrid_set_autocommit() - Set autocommit mode of the connection


Delete an element from set type column using OID

  • « cubrid_set_db_parameter
  • cubrid_set_query_timeout »
  • PHP Manual
  • CUBRID Funktionen
  • Delete an element from set type column using OID

cubrid_set_drop

(PECL CUBRID >= 8.3.0)

cubrid_set_drop — Delete an element from set type column using OID

Beschreibung

cubrid_set_drop ( resource $conn_identifier , string $oid , string $attr_name , string $set_element ) : bool

The cubrid_set_drop() function is used to delete an element that you request from the given set type (set, multiset) attribute of the database.

Parameter-Liste

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute you want to delete an element from.

set_element

Content of the element you want to delete.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_set_drop() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_set_drop($conn, $oid, "b", "1");

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(2) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "3"
}

Siehe auch

  • cubrid_set_add() - Insert a single element to set type column using OID


Set the timeout time of query execution

  • « cubrid_set_drop
  • cubrid_version »
  • PHP Manual
  • CUBRID Funktionen
  • Set the timeout time of query execution

cubrid_set_query_timeout

(PECL CUBRID >= 8.4.1)

cubrid_set_query_timeout — Set the timeout time of query execution

Beschreibung

cubrid_set_query_timeout ( resource $req_identifier , int $timeout ) : bool

The cubrid_set_query_timeout() function is used to set the timeout time of query execution.

Parameter-Liste

req_identifier

Request identifier.

timeout

Timeout time, unit of msec.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Siehe auch

  • cubrid_get_query_timeout() - Get the query timeout value of the request


Get the CUBRID PHP module's version

  • « cubrid_set_query_timeout
  • CUBRID MySQL Compatibility Functions »
  • PHP Manual
  • CUBRID Funktionen
  • Get the CUBRID PHP module's version

cubrid_version

(PECL CUBRID >= 8.3.0)

cubrid_version — Get the CUBRID PHP module's version

Beschreibung

cubrid_version ( ) : string

The cubrid_version() function is used to get the CUBRID PHP module's version.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Version information (eg. "8.3.1.0001").

Beispiele

Beispiel #1 cubrid_version() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb", "dba");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Siehe auch

  • cubrid_error_code() - Get error code for the most recent function call
  • cubrid_error_code_facility() - Get the facility code of error


CUBRID MySQL Compatibility Functions

Inhaltsverzeichnis

  • cubrid_affected_rows — Return the number of rows affected by the last SQL statement
  • cubrid_client_encoding — Return the current CUBRID connection charset
  • cubrid_close — Close CUBRID connection
  • cubrid_data_seek — Move the internal row pointer of the CUBRID result
  • cubrid_db_name — Get db name from results of cubrid_list_dbs
  • cubrid_errno — Return the numerical value of the error message from previous CUBRID operation
  • cubrid_error — Get the error message
  • cubrid_fetch_array — Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_assoc — Return the associative array that corresponds to the fetched row
  • cubrid_fetch_field — Get column information from a result and return as an object
  • cubrid_fetch_lengths — Return an array with the lengths of the values of each field from the current row
  • cubrid_fetch_object — Fetch the next row and return it as an object
  • cubrid_fetch_row — Return a numerical array with the values of the current row
  • cubrid_field_flags — Return a string with the flags of the given field offset
  • cubrid_field_len — Get the maximum length of the specified field
  • cubrid_field_name — Return the name of the specified field index
  • cubrid_field_seek — Move the result set cursor to the specified field offset
  • cubrid_field_table — Return the name of the table of the specified field
  • cubrid_field_type — Return the type of the column corresponding to the given field offset
  • cubrid_list_dbs — Return an array with the list of all existing CUBRID databases
  • cubrid_num_fields — Return the number of columns in the result set
  • cubrid_ping — Ping a server connection or reconnect if there is no connection
  • cubrid_query — Send a CUBRID query
  • cubrid_real_escape_string — Escape special characters in a string for use in an SQL statement
  • cubrid_result — Return the value of a specific field in a specific row
  • cubrid_unbuffered_query — Perform a query without fetching the results into memory


Return the number of rows affected by the last SQL statement

  • « CUBRID MySQL Compatibility Functions
  • cubrid_client_encoding »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the number of rows affected by the last SQL statement

cubrid_affected_rows

(PECL CUBRID >= 8.3.0)

cubrid_affected_rows — Return the number of rows affected by the last SQL statement

Beschreibung

cubrid_affected_rows ( resource $conn_identifier = ? ) : int
cubrid_affected_rows ( resource $req_identifier = ? ) : int

The cubrid_affected_rows() function is used to get the number of rows affected by the SQL statement (INSERT, DELETE, UPDATE).

Parameter-Liste

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opend by cubrid_connect() is assumed.

req_identifier

Request Identifier, could be returned from either cubrid_prepare() or cubrid_execute(). If the request identifier is not specified, the last identifier requested by cubrid_prepare() or cubrid_execute() is assumed.

Rückgabewerte

Number of rows affected by the SQL statement, when process is successful.

-1, when SQL statement is not INSERT, DELETE or UPDATE.

false, when the request identifier is not specified, and there is no last request.

Beispiele

Beispiel #1 cubrid_affected_rows() example

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
cubrid_execute($conn, "DROP TABLE IF EXISTS cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (d varchar)");
$sql_stmt = "INSERT INTO cubrid_test(d) VALUES('php-test')";
$req = cubrid_prepare($conn, $sql_stmt);

for ($i = 0; $i < 10; $i++) {
    cubrid_execute($req);
}
cubrid_commit($conn);

$req = cubrid_execute($conn, "DELETE FROM cubrid_test WHERE d='php-test'", CUBRID_ASYNC);
var_dump(cubrid_affected_rows());
var_dump(cubrid_affected_rows($conn));
var_dump(cubrid_affected_rows($req));

cubrid_disconnect($conn);

print "done!";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Rows deleted: 5

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement


Return the current CUBRID connection charset

  • « cubrid_affected_rows
  • cubrid_close »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the current CUBRID connection charset

cubrid_client_encoding

(PECL CUBRID >= 8.3.1)

cubrid_client_encoding — Return the current CUBRID connection charset

Beschreibung

cubrid_client_encoding ( resource $conn_identifier = ? ) : string

This function returns the current CUBRID connection charset and is similar to the CUBRID function cubrid_get_charset().

Parameter-Liste

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opened by cubrid_connect() is assumed.

Rückgabewerte

A string that represents the CUBRID connection charset; on success.

false on failure.

Beispiele

Beispiel #1 cubrid_client_encoding() example

<?php

$con = cubrid_connect("localhost", 33000, "demodb");
if (!$con)
{
    die('Could not connect.');
}

printf("CUBRID current charset: %s\n", cubrid_client_encoding($con));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CUBRID current charset: iso8859-1

Siehe auch

  • cubrid_get_charset() - Return the current CUBRID connection charset


Close CUBRID connection

  • « cubrid_client_encoding
  • cubrid_data_seek »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Close CUBRID connection

cubrid_close

(PECL CUBRID >= 8.3.1)

cubrid_close — Close CUBRID connection

Beschreibung

cubrid_close ( resource $conn_identifier = ? ) : bool

The cubrid_close() function ends the transaction currently in process, closes the connection handle and disconnects from server. If there is any request handles not closed yet at this point, they will be closed. It is similar to the CUBRID function cubrid_disconnect().

Parameter-Liste

conn_identifier

The CUBRID connection identifier. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_close() example

<?php
$con = cubrid_connect ("localhost", 33000, "demodb");
if ($con) {
   echo "connected successfully";
   $req = cubrid_execute ( $con, "insert into person values(1,'James')");
   if ($req) {
      cubrid_close_request ($req);
      cubrid_commit ($con);
   } else {
      cubrid_rollback ($con);
   }
   cubrid_close ($con);
}
?>

Siehe auch

  • cubrid_disconnect() - Close a database connection
  • cubrid_connect() - Open a connection to a CUBRID Server
  • cubrid_connect_with_url() - Establish the environment for connecting to CUBRID server


Move the internal row pointer of the CUBRID result

  • « cubrid_close
  • cubrid_db_name »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Move the internal row pointer of the CUBRID result

cubrid_data_seek

(PECL CUBRID >= 8.3.0)

cubrid_data_seek — Move the internal row pointer of the CUBRID result

Beschreibung

cubrid_data_seek ( resource $result , int $row_number ) : bool

This function performs the moving of the internal row pointer of the CUBRID result (associated with the specified result identifier) to point to a specific row number. There are functions, such as cubrid_fetch_assoc(), which use the current stored value of row number.

Parameter-Liste

result

The result.

row_number

This is the desired row number of the new result pointer.

Rückgabewerte

Returns true on success or false on failure.

Beispiele

Beispiel #1 cubrid_data_seek() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM code");
cubrid_data_seek($req, 0);

$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_data_seek($req, 2);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_data_seek($req, 4);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  string(1) "X"
  [1]=>
  string(5) "Mixed"
}
array(2) {
  [0]=>
  string(1) "M"
  [1]=>
  string(3) "Man"
}
array(2) {
  [0]=>
  string(1) "S"
  [1]=>
  string(6) "Silver"
}


Get db name from results of cubrid_list_dbs

  • « cubrid_data_seek
  • cubrid_errno »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Get db name from results of cubrid_list_dbs

cubrid_db_name

(PECL CUBRID >= 8.3.1)

cubrid_db_name — Get db name from results of cubrid_list_dbs

Beschreibung

cubrid_db_name ( array $result , int $index ) : string

Retrieve the database name from a call to cubrid_list_dbs().

Parameter-Liste

result

The result pointer from a call to cubrid_list_dbs().

index

The index into the result set.

Rückgabewerte

Returns the database name on success, and false on failure. If false is returned, use cubrid_error() to determine the nature of the error.

Beispiele

Beispiel #1 cubrid_db_name() example

<?php
error_reporting(E_ALL);

$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$db_list = cubrid_list_dbs($conn);

$i = 0;
$cnt = count($db_list);
while ($i < $cnt) {
    echo cubrid_db_name($db_list, $i) . "\n";
    $i++;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

demodb

Siehe auch

  • cubrid_list_dbs() - Return an array with the list of all existing CUBRID databases


Return the numerical value of the error message from previous CUBRID operation

  • « cubrid_db_name
  • cubrid_error »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the numerical value of the error message from previous CUBRID operation

cubrid_errno

(PECL CUBRID >= 8.3.1)

cubrid_errno — Return the numerical value of the error message from previous CUBRID operation

Beschreibung

cubrid_errno ( resource $conn_identifier = ? ) : int

Returns the error number from the last CUBRID function.

The cubrid_errno() function is used to get the error code of the error that occurred during the API execution. Usually, it gets the error code when API returns false as its return value.

Parameter-Liste

conn_identifier

The CUBRID connection identifier. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Rückgabewerte

Returns the error number from the last CUBRID function, or 0 (zero) if no error occurred.

Beispiele

Beispiel #1 cubrid_errno() example

<?php
$con = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$req = cubrid_execute($con, "select id, name from person");
if ($req) {
    while (list ($id, $name) = cubrid_fetch($req))
    echo $id, $name;
} else {
    echo "Error Code: ", cubrid_errno($con);
    echo "Error Message: ", cubrid_error($con);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Error Code: -493 Error Message: Syntax: Unknown class "person". select id, [name] from person

Siehe auch

  • cubrid_error() - Get the error message
  • cubrid_error_code() - Get error code for the most recent function call
  • cubrid_error_msg() - Get last error message for the most recent function call


Get the error message

  • « cubrid_errno
  • cubrid_fetch_array »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Get the error message

cubrid_error

(PECL CUBRID >= 8.3.1)

cubrid_error — Get the error message

Beschreibung

cubrid_error ( resource $connection = ? ) : string

The cubrid_error() function is used to get the error message that occurred during the use of CUBRID API. Usually, it gets error message when API returns false as its return value.

Parameter-Liste

connection

The CUBRID connection.

Rückgabewerte

Error message that occurred.

Beispiele

Beispiel #1 cubrid_error() example

<?php
$con = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$req = cubrid_execute($con, "select id, name from person");
if ($req) {
    while (list ($id, $name) = cubrid_fetch($req))
    echo $id, $name;
} else {
    echo "Error Code: ", cubrid_errno($con);
    echo "Error Message: ", cubrid_error($con);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Error Code: -493 Error Message: Syntax: Unknown class "person". select id, [name] from person

Siehe auch

  • cubrid_errno() - Return the numerical value of the error message from previous CUBRID operation
  • cubrid_error_code() - Get error code for the most recent function call
  • cubrid_error_msg() - Get last error message for the most recent function call


Fetch a result row as an associative array, a numeric array, or both

  • « cubrid_error
  • cubrid_fetch_assoc »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Fetch a result row as an associative array, a numeric array, or both

cubrid_fetch_array

(PECL CUBRID >=8.3.0)

cubrid_fetch_array — Fetch a result row as an associative array, a numeric array, or both

Beschreibung

cubrid_fetch_array ( resource $result , int $type = CUBRID_BOTH ) : array

The cubrid_fetch_array() function is used to get a single row from the query result and returns an array. The cursor automatically moves to the next row after getting the result.

Parameter-Liste

result

Result comes from a call to cubrid_execute()

type

Array type of the fetched result CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH. If you need to operate the lob object, you can use CUBRID_LOB.

Rückgabewerte

Returns an array of strings that corresponds to the fetched row, when process is successful.

false, when there are no more rows; NULL, when process is unsuccessful.

The type of returned array depends on how type is defined. By using CUBRID_BOTH (default), you'll get an array with both associative and number indices, and you can decide which data type to use by setting the type argument. The type variable can be set to one of the following values:

  • CUBRID_NUM : Numerical array (0-based)
  • CUBRID_ASSOC : Associative array
  • CUBRID_BOTH : Numerical & Associative array (default)

Beispiele

Beispiel #1 cubrid_fetch_array() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch_array($req, CUBRID_NUM)) {
    printf("%-40s %-10s %-6s %-20s\n", $row[0], $row[1], $row[2], $row[3]);
}

// if you want to operate LOB object, you can use cubrid_fetch_array($req, CUBRID_NUM | CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_row() - Return a numerical array with the values of the current row
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_fetch_object() - Fetch the next row and return it as an object


Return the associative array that corresponds to the fetched row

  • « cubrid_fetch_array
  • cubrid_fetch_field »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the associative array that corresponds to the fetched row

cubrid_fetch_assoc

(PECL CUBRID >= 8.3.0)

cubrid_fetch_assoc — Return the associative array that corresponds to the fetched row

Beschreibung

cubrid_fetch_assoc ( resource $result , int $type = ? ) : array

This function returns the associative array, that corresponds to the fetched row, and then moves the internal data pointer ahead, or returns FALSE when the end is reached.

Parameter-Liste

result

result comes from a call to cubrid_execute()

type

Type can only be CUBRID_LOB, this parameter will be used only when you need to operate the lob object.

Rückgabewerte

Associative array, when process is successful.

false, when there are no more rows; NULL, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_fetch_assoc() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch_assoc($req)) {
    printf("%-40s %-10s %-6s %-20s\n",
        $row["name"], $row["area"], $row["seats"], $row["address"]);
}

// if you want to operate LOB object, you can use cubrid_fetch_assoc($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_row() - Return a numerical array with the values of the current row
  • cubrid_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_object() - Fetch the next row and return it as an object


Get column information from a result and return as an object

  • « cubrid_fetch_assoc
  • cubrid_fetch_lengths »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Get column information from a result and return as an object

cubrid_fetch_field

(PECL CUBRID >= 8.3.1)

cubrid_fetch_field — Get column information from a result and return as an object

Beschreibung

cubrid_fetch_field ( resource $result , int $field_offset = 0 ) : object

This function returns an object with certain properties of the specific column. The properties of the object are:

name

column name

table

name of the table that the column belongs to

def

default value of the column

max_length

maximum length of the column

not_null

1 if the column cannot be NULL

primary_key

1 if the column is a primary key

unique_key

1 if the column is an unique key

multiple_key

1 if the column is a non-unique key

numeric

1 if the column is numeric

blob

1 if the column is a BLOB

type

the type of the column

unsigned

1 if the column is unsigned

zerofill

1 if the column is zero-filled

Parameter-Liste

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. If the field offset is not specified, the next field (that was not yet retrieved by this function) is retrieved. The field_offset starts at 0.

Rückgabewerte

Object with certain properties of the specific column, when process is successful.

false on failure.

Beispiele

Beispiel #1 cubrid_fetch_field() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT event_code,athlete_code,nation_code,game_date FROM game WHERE host_year=1988 and event_code=20001;");

var_dump(cubrid_fetch_row($req));

cubrid_field_seek($req, 1);
$field = cubrid_fetch_field($req);

printf("\n--- Field Properties ---\n");
printf("%-30s %s\n", "name:", $field->name);
printf("%-30s %s\n", "table:", $field->table);
printf("%-30s \"%s\"\n", "default value:", $field->def);
printf("%-30s %d\n", "max length:", $field->max_length);
printf("%-30s %d\n", "not null:", $field->not_null);
printf("%-30s %d\n", "primary key:", $field->primary_key);
printf("%-30s %d\n", "unique key:", $field->unique_key);
printf("%-30s %d\n", "multiple key:", $field->multiple_key);
printf("%-30s %d\n", "numeric:", $field->numeric);
printf("%-30s %d\n", "blob:", $field->blob);
printf("%-30s %s\n", "type:", $field->type);
printf("%-30s %d\n", "unsigned:", $field->unsigned);
printf("%-30s %d\n", "zerofill:", $field->zerofill);

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  [0]=>
  string(5) "20001"
  [1]=>
  string(5) "16681"
  [2]=>
  string(3) "KOR"
  [3]=>
  string(9) "1988-9-30"
}

--- Field Properties ---
name:                          athlete_code
table:                         game
default value:                 ""
max length:                    0
not null:                      1
primary key:                   1
unique key:                    1
multiple key:                  0
numeric:                       1
blob:                          0
type:                          integer
unsigned:                      0
zerofill:                      0


Return an array with the lengths of the values of each field from the current row

  • « cubrid_fetch_field
  • cubrid_fetch_object »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return an array with the lengths of the values of each field from the current row

cubrid_fetch_lengths

(PECL CUBRID >= 8.3.0)

cubrid_fetch_lengths — Return an array with the lengths of the values of each field from the current row

Beschreibung

cubrid_fetch_lengths ( resource $result ) : array

This function returns an numeric array with the lengths of the values of each field from the current row of the result set or it returns FALSE on failure.

Hinweis:

If field data type is BLOB/CLOB, you should get its length by using cubrid_lob_size().

Parameter-Liste

result

result comes from a call to cubrid_execute()

Rückgabewerte

An numeric array, when process is successful.

false on failure.

Beispiele

Beispiel #1 cubrid_fetch_lengths() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$row = cubrid_fetch_row($result);
print_r($row);

$lens = cubrid_fetch_lengths($result);
print_r($lens);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => 2004
    [1] => 20085
    [2] => 15118
    [3] => 30134
    [4] => AUS
    [5] => G
    [6] => 2004-8-20
)
Array
(
    [0] => 4
    [1] => 5
    [2] => 5
    [3] => 5
    [4] => 3
    [5] => 1
    [6] => 10
)


Fetch the next row and return it as an object

  • « cubrid_fetch_lengths
  • cubrid_fetch_row »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Fetch the next row and return it as an object

cubrid_fetch_object

(PECL CUBRID >= 8.3.0)

cubrid_fetch_object — Fetch the next row and return it as an object

Beschreibung

cubrid_fetch_object ( resource $result , string $class_name = ? , array $params = ? , int $type = ? ) : object

This function returns an object with the column names of the result set as properties. The values of these properties are extracted from the current row of the result.

Parameter-Liste

result

result comes from a call to cubrid_execute()

class_name

The name of the class to instantiate. If not specified, a stdClass (stdClass is PHP's generic empty class that's used when casting other types to objects) object is returned.

params

An optional array of parameters to pass to the constructor for class_name objects.

type

Type can only be CUBRID_LOB, this parameter will be used only when you need to operate the lob object.

Rückgabewerte

An object, when process is successful.

false, when there are no more rows; NULL, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_fetch_object() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$res = cubrid_execute($conn, "SELECT * FROM code");

var_dump(cubrid_fetch_object($res));

// if you want to operate LOB object, you can use cubrid_fetch_object($res, CUBRID_LOB)

class demodb_code {
    public $s_name = null;
    public $f_name = null;

    public function toString() {
        var_dump($this);
    }
}

var_dump(cubrid_fetch_object($res, "demodb_code"));

// if you want to operate LOB object, you can use cubrid_fetch_object($res, "demodb_code", CUBRID_LOB)

class demodb_code_construct extends demodb_code {
    public function __construct($s, $f) {
        $this->s_name = $s;
        $this->f_name = $f;
    }
}

var_dump(cubrid_fetch_object($res, 'demodb_code_construct', array('s_name', 'f_name')));

// if you want to operate LOB object, you can use cubrid_fetch_object($res, 'demodb_code_construct', array('s_name', 'f_name'), CUBRID_LOB)

var_dump(cubrid_fetch_object($res));

cubrid_close_request($res);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(stdClass)#1 (2) {
  ["s_name"]=>
  string(1) "X"
  ["f_name"]=>
  string(5) "Mixed"
}
object(demodb_code)#1 (2) {
  ["s_name"]=>
  string(1) "W"
  ["f_name"]=>
  string(5) "Woman"
}
object(demodb_code_construct)#1 (2) {
  ["s_name"]=>
  string(6) "s_name"
  ["f_name"]=>
  string(6) "f_name"
}
object(stdClass)#1 (2) {
  ["s_name"]=>
  string(1) "B"
  ["f_name"]=>
  string(6) "Bronze"
}

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_fetch_row() - Return a numerical array with the values of the current row


Return a numerical array with the values of the current row

  • « cubrid_fetch_object
  • cubrid_field_flags »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return a numerical array with the values of the current row

cubrid_fetch_row

(PECL CUBRID >= 8.3.0)

cubrid_fetch_row — Return a numerical array with the values of the current row

Beschreibung

cubrid_fetch_row ( resource $result , int $type = ? ) : array

This function returns a numerical array with the values of the current row from the result set, starting from 0, and moves the internal data pointer ahead.

Parameter-Liste

result

result comes from a call to cubrid_execute()

type

Type can only be CUBRID_LOB, this parameter will be used only when you need to operate the lob object.

Rückgabewerte

A numerical array, when process is successful.

false, when there are no more rows; NULL, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_fetch_row() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT name,area,seats,address FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch_row($req)) {
    printf("%-40s %-10s %-6s %-20s\n", $row[0], $row[1], $row[2], $row[3]);
}

// if you want to operate LOB object, you can use cubrid_fetch_row($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Siehe auch

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_fetch_object() - Fetch the next row and return it as an object


Return a string with the flags of the given field offset

  • « cubrid_fetch_row
  • cubrid_field_len »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return a string with the flags of the given field offset

cubrid_field_flags

(PECL CUBRID >= 8.3.0)

cubrid_field_flags — Return a string with the flags of the given field offset

Beschreibung

cubrid_field_flags ( resource $result , int $field_offset ) : string

This function returns a string with the flags of the given field offset separated by space. You can split the returned value using explode. The possible flags could be: not_null, primary_key, unique_key, foreign_key, auto_increment, shared, reverse_index, reverse_unique and timestamp.

Parameter-Liste

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Rückgabewerte

A string with flags, when process is successful.

false when invalid field_offset value.

-1 if SQL sentence is not SELECT.

Beispiele

Beispiel #1 cubrid_field_flags() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$col_num = cubrid_num_cols($result);

printf("%-30s %s\n", "Field Name", "Field Flags");
for($i = 0; $i < $col_num; $i++) {
    printf("%-30s %s\n", cubrid_field_name($result, $i), cubrid_field_flags($result, $i));
}

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Field Name                     Field Flags
host_year                      not_null primary_key unique_key
event_code                     not_null primary_key unique_key foreign_key
athlete_code                   not_null primary_key unique_key foreign_key
stadium_code                   not_null
nation_code
medal
game_date


Get the maximum length of the specified field

  • « cubrid_field_flags
  • cubrid_field_name »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Get the maximum length of the specified field

cubrid_field_len

(PECL CUBRID >= 8.3.0)

cubrid_field_len — Get the maximum length of the specified field

Beschreibung

cubrid_field_len ( resource $result , int $field_offset ) : int

This function returns the maximum length of the specified field on success, or it returns FALSE on failure.

Parameter-Liste

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Rückgabewerte

Maximum length, when process is successful.

false on failure.

Beispiele

Beispiel #1 cubrid_field_len() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
    $column_len = cubrid_field_len($result, $i);
    printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10


Return the name of the specified field index

  • « cubrid_field_len
  • cubrid_field_seek »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the name of the specified field index

cubrid_field_name

(PECL CUBRID >= 8.3.0)

cubrid_field_name — Return the name of the specified field index

Beschreibung

cubrid_field_name ( resource $result , int $field_offset ) : string

This function returns the name of the specified field index on success or it returns FALSE on failure.

Parameter-Liste

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Rückgabewerte

Name of specified field index, on success.

false on failure.

Beispiele

Beispiel #1 cubrid_field_name() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$col_num = cubrid_num_cols($result);

printf("%-30s %s\n", "Field Name", "Field Flags");
for($i = 0; $i < $col_num; $i++) {
    printf("%-30s %s\n", cubrid_field_name($result, $i), cubrid_field_flags($result, $i));
}

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Field Name                     Field Flags
host_year                      not_null primary_key unique_key
event_code                     not_null primary_key unique_key foreign_key
athlete_code                   not_null primary_key unique_key foreign_key
stadium_code                   not_null
nation_code
medal
game_date


Move the result set cursor to the specified field offset

  • « cubrid_field_name
  • cubrid_field_table »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Move the result set cursor to the specified field offset

cubrid_field_seek

(PECL CUBRID >= 8.3.0)

cubrid_field_seek — Move the result set cursor to the specified field offset

Beschreibung

cubrid_field_seek ( resource $result , int $field_offset = 0 ) : bool

This function moves the result set cursor to the specified field offset. This offset is used by cubrid_fetch_field() if it doesn't include a field offset. It returns TRUE on success or FALSE on failure.

Parameter-Liste

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Rückgabewerte

true on success.

false on failure.

Beispiele

Beispiel #1 cubrid_field_seek() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT event_code,athlete_code,nation_code,game_date FROM game WHERE host_year=1988 and event_code=20001;");

var_dump(cubrid_fetch_row($req));

cubrid_field_seek($req, 1);
$field = cubrid_fetch_field($req);

printf("\n--- Field Properties ---\n");
printf("%-30s %s\n", "name:", $field->name);
printf("%-30s %s\n", "table:", $field->table);
printf("%-30s \"%s\"\n", "default value:", $field->def);
printf("%-30s %d\n", "max length:", $field->max_length);
printf("%-30s %d\n", "not null:", $field->not_null);
printf("%-30s %d\n", "unique key:", $field->unique_key);
printf("%-30s %d\n", "multiple key:", $field->multiple_key);
printf("%-30s %d\n", "numeric:", $field->numeric);
printf("%-30s %s\n", "type:", $field->type);

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  [0]=>
  string(5) "20001"
  [1]=>
  string(5) "16132"
  [2]=>
  string(3) "KOR"
  [3]=>
  string(9) "1988-09-30"
}

--- Field Properties ---
name:                          athlete_code
table:                         game
default value:                 ""
max length:                    0
not null:                      1
unique key:                    1
multiple key:                  0
numeric:                       1
type:                          integer


Return the name of the table of the specified field

  • « cubrid_field_seek
  • cubrid_field_type »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the name of the table of the specified field

cubrid_field_table

(PECL CUBRID >= 8.3.0)

cubrid_field_table — Return the name of the table of the specified field

Beschreibung

cubrid_field_table ( resource $result , int $field_offset ) : string

This function returns the name of the table of the specified field. This is useful when using large select queries with JOINS.

Parameter-Liste

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Rückgabewerte

Name of the table of the specified field, on success.

false when invalid field_offset value.

-1 if SQL sentence is not SELECT.

Beispiele

Beispiel #1 cubrid_field_table() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM code");

$col_num = cubrid_num_cols($result);

printf("%-15s %-15s %s\n", "Field Table", "Field Name", "Field Type");
for($i = 0; $i < $col_num; $i++) {
    printf("%-15s %-15s %s\n",
        cubrid_field_table($result, $i), cubrid_field_name($result, $i), cubrid_field_type($result, $i));
}

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Field Table     Field Name      Field Type
code            s_name          char
code            f_name          varchar


Return the type of the column corresponding to the given field offset

  • « cubrid_field_table
  • cubrid_list_dbs »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the type of the column corresponding to the given field offset

cubrid_field_type

(PECL CUBRID >= 8.3.0)

cubrid_field_type — Return the type of the column corresponding to the given field offset

Beschreibung

cubrid_field_type ( resource $result , int $field_offset ) : string

This function returns the type of the column corresponding to the given field offset. The returned field type could be one of the following: "int", "real", "string", etc.

Parameter-Liste

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Rückgabewerte

Type of the column, on success.

false when invalid field_offset value.

-1 if SQL sentence is not SELECT.

Beispiele

Beispiel #1 cubrid_field_type() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$result = cubrid_execute($conn, "SELECT * FROM code");

$col_num = cubrid_num_cols($result);

printf("%-15s %-15s %s\n", "Field Table", "Field Name", "Field Type");
for($i = 0; $i < $col_num; $i++) {
    printf("%-15s %-15s %s\n",
        cubrid_field_table($result, $i), cubrid_field_name($result, $i), cubrid_field_type($result, $i));
}

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Field Table     Field Name      Field Type
code            s_name          char
code            f_name          varchar


Return an array with the list of all existing CUBRID databases

  • « cubrid_field_type
  • cubrid_num_fields »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return an array with the list of all existing CUBRID databases

cubrid_list_dbs

(PECL CUBRID >= 8.3.0)

cubrid_list_dbs — Return an array with the list of all existing CUBRID databases

Beschreibung

cubrid_list_dbs ( resource $conn_identifier = ? ) : array

This function returns an array with the list of all existing Cubrid databases.

Parameter-Liste

conn_identifier

The CUBRID connection.

Rückgabewerte

An numeric array with all existing Cubrid databases; on success.

false on failure.

Beispiele

Beispiel #1 cubrid_list_dbs() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$db_list = cubrid_list_dbs($conn);
var_dump($db_list);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  [0]=>
  string(6) "demodb"
}


Return the number of columns in the result set

  • « cubrid_list_dbs
  • cubrid_ping »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the number of columns in the result set

cubrid_num_fields

(PECL CUBRID >= 8.3.0)

cubrid_num_fields — Return the number of columns in the result set

Beschreibung

cubrid_num_fields ( resource $result ) : int

This function returns the number of columns in the result set, on success, or it returns FALSE on failure.

Parameter-Liste

result

result comes from a call to cubrid_execute(), cubrid_query() and cubrid_prepare()

Rückgabewerte

Number of columns, on success.

-1 if SQL sentence is not SELECT.

false when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_num_fields() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_fields($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Row Num: 6
Column Num: 2


Ping a server connection or reconnect if there is no connection

  • « cubrid_num_fields
  • cubrid_query »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Ping a server connection or reconnect if there is no connection

cubrid_ping

(PECL CUBRID >= 8.3.1)

cubrid_ping — Ping a server connection or reconnect if there is no connection

Beschreibung

cubrid_ping ( resource $conn_identifier = ? ) : bool

Checks whether or not the connection to the server is working.

Parameter-Liste

conn_identifier

The CUBRID connection identifier. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Rückgabewerte

Returns true if the connection to the server CUBRID server is working, otherwise false.

Beispiele

Beispiel #1 cubrid_ping() example

<?php
set_time_limit(0);

$conn = cubrid_connect('localhost', 33000, 'demodb');

/* Assuming this query will take a long time */
$sql = "select * from athlete";
$result = cubrid_query($sql);
if (!$result) {
    echo 'Query #1 failed, exiting.';
    exit;
}

/* Make sure the connection is still alive, if not, try to reconnect */
if (!cubrid_ping($conn)) {
    echo 'Lost connection, exiting after query #1';
    exit;
}
cubrid_free_result($result);

/* So the connection is still alive, let's run another query */
$sql2 = "select * from code";
$result2 = cubrid_query($sql2);
?>


Send a CUBRID query

  • « cubrid_ping
  • cubrid_real_escape_string »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Send a CUBRID query

cubrid_query

(PECL CUBRID >= 8.3.1)

cubrid_query — Send a CUBRID query

Beschreibung

cubrid_query ( string $query , resource $conn_identifier = ? ) : resource

cubrid_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified conn_identifier.

Parameter-Liste

query

An SQL query

Data inside the query should be properly escaped.

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Rückgabewerte

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, cubrid_query() returns a resource on success, or false on error.

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, cubrid_query() returns true on success or false on error.

The returned result resource should be passed to cubrid_fetch_array(), and other functions for dealing with result tables, to access the returned data.

Use cubrid_num_rows() to find out how many rows were returned for a SELECT statement or cubrid_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

cubrid_query() will also fail and return false if the user does not have permission to access the table(s) referenced by the query.

Beispiele

Beispiel #1 Invalid Query

The following query is syntactically invalid, so cubrid_query() fails and returns false.

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb');

$result = cubrid_query('SELECT * WHERE 1=1');
if (!$result) {
    die('Invalid query: ' . cubrid_error());
}

?>

Beispiel #2 Valid Query

The following query is valid, so cubrid_query() returns a resource.

<?php
// This could be supplied by a user, for example
$firstname = 'fred';
$lastname  = 'fox';

$conn = cubrid_connect('localhost', 33000, 'demodb');

cubrid_execute($conn,"DROP TABLE if exists friends");
cubrid_execute($conn,"create table friends(firstname varchar,lastname varchar,address char(24),age int)");
cubrid_execute($conn,"insert into friends values('fred','fox','home-1','20')");
cubrid_execute($conn,"insert into friends values('blue','cat','home-2','21')");
// Formulate Query
// This is the best way to perform an SQL query
// For more examples, see cubrid_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
cubrid_real_escape_string($firstname),
cubrid_real_escape_string($lastname));

// Perform Query
$result = cubrid_query($query);

// Check result
// This shows the actual query sent to CUBRID, and the error. Useful for debugging.
if (!$result) {
    $message  = 'Invalid query: ' . cubrid_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
}

// Use result
// Attempting to print $result won't allow access to information in the resource
// One of the cubrid result functions must be used
// See also cubrid_result(), cubrid_fetch_array(), cubrid_fetch_row(), etc.
while ($row = cubrid_fetch_assoc($result)) {
    echo $row['firstname'];
    echo $row['lastname'];
    echo $row['address'];
    echo $row['age'];
}

// Free the resources associated with the result set
// This is done automatically at the end of the script
cubrid_free_result($result);
?>

Siehe auch

  • cubrid_connect() - Open a connection to a CUBRID Server
  • cubrid_error() - Get the error message
  • cubrid_real_escape_string() - Escape special characters in a string for use in an SQL statement
  • cubrid_result() - Return the value of a specific field in a specific row
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_unbuffered_query() - Perform a query without fetching the results into memory


Escape special characters in a string for use in an SQL statement

  • « cubrid_query
  • cubrid_result »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Escape special characters in a string for use in an SQL statement

cubrid_real_escape_string

(PECL CUBRID >= 8.3.0)

cubrid_real_escape_string — Escape special characters in a string for use in an SQL statement

Beschreibung

cubrid_real_escape_string ( string $unescaped_string , resource $conn_identifier = ? ) : string

This function returns the escaped string version of the given string. It will escape the following characters: '. In general, single quotations are used to enclose character string. Double quotations may be used as well depending on the value of ansi_quotes, which is a parameter related to SQL statement. If the ansi_quotes value is set to no, character string enclosed by double quotations is handled as character string, not as an identifier. The default value is yes. If you want to include a single quote as part of a character string, enter two single quotes in a row.

Parameter-Liste

unescaped_string

The string that is to be escaped.

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Rückgabewerte

Escaped string version of the given string, on success.

false on failure.

Beispiele

Beispiel #1 cubrid_real_escape_string() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$unescaped_str = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
$escaped_str = cubrid_real_escape_string($unescaped_str);

$len = strlen($unescaped_str);

@cubrid_execute($conn, "DROP TABLE cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (t char($len))");
cubrid_execute($conn, "INSERT INTO cubrid_test (t) VALUES('$escaped_str')");

$req = cubrid_execute($conn, "SELECT * FROM cubrid_test");
$row = cubrid_fetch_assoc($req);

var_dump($row);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["t"]=>
  string(95) " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
}


Return the value of a specific field in a specific row

  • « cubrid_real_escape_string
  • cubrid_unbuffered_query »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Return the value of a specific field in a specific row

cubrid_result

(PECL CUBRID >= 8.3.0)

cubrid_result — Return the value of a specific field in a specific row

Beschreibung

cubrid_result ( resource $result , int $row , mixed $field = 0 ) : string

This function returns the value of a specific field in a specific row from a result set.

Parameter-Liste

result

result comes from a call to cubrid_execute()

row

The row number from the result that is being retrieved. Row numbers start at 0.

field

The name or offset of the field being retrieved. It can be the field's offset, the field's name, or the field's table dot field name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name. If undefined, the first field is retrieved.

Rückgabewerte

Value of a specific field, on success (NULL if value if null).

false on failure.

Beispiele

Beispiel #1 cubrid_result() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM code");

$result = cubrid_result($req, 0);
var_dump($result);

$result = cubrid_result($req, 0, 1);
var_dump($result);

$result = cubrid_result($req, 5, "f_name");
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(1) "X"
string(5) "Mixed"
string(4) "Gold"


Perform a query without fetching the results into memory

  • « cubrid_result
  • CUBRID Obsolete Aliases and Functions »
  • PHP Manual
  • CUBRID MySQL Compatibility Functions
  • Perform a query without fetching the results into memory

cubrid_unbuffered_query

(PECL CUBRID >= 8.3.0)

cubrid_unbuffered_query — Perform a query without fetching the results into memory

Beschreibung

cubrid_unbuffered_query ( string $query , resource $conn_identifier = ? ) : resource

This function performs a query without waiting for that all query results have been complete. It will return when the results are being generated.

Parameter-Liste

query

A SQL query.

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Rückgabewerte

For SELECT, SHOW, DESCRIBE or EXPLAIN statements returns a request identifier resource on success.

For other type of SQL statements, UPDATE, DELETE, DROP, etc, returns true on success.

false on failure.

Anmerkungen

Hinweis:

The benefits of cubrid_unbuffered_query() come at a cost: you cannot use cubrid_num_rows() and cubrid_data_seek() on a result set returned from cubrid_unbuffered_query().

Beispiele

Beispiel #1 cubrid_unbuffered_query() example

<?php
    $link = cubrid_connect("localhost", 30000, "demodb", "dba", "");
    if (!$link)
    {
        die('Could not connect.');
    }
    $query = "select * from code";
    $result = cubrid_unbuffered_query($query, $link);

    while ($row = cubrid_fetch($result))
    {
        var_dump($row);
    }

    cubrid_close_request($result);
    cubrid_disconnect($link);
?>


CUBRID Obsolete Aliases and Functions

Inhaltsverzeichnis

  • cubrid_load_from_glo — Read data from a GLO instance and save it in a file
  • cubrid_new_glo — Create a glo instance
  • cubrid_save_to_glo — Save requested file in a GLO instance
  • cubrid_send_glo — Read data from glo and send it to std output


Read data from a GLO instance and save it in a file

  • « CUBRID Obsolete Aliases and Functions
  • cubrid_new_glo »
  • PHP Manual
  • CUBRID Obsolete Aliases and Functions
  • Read data from a GLO instance and save it in a file

cubrid_load_from_glo

(PECL CUBRID >= 8.3.0)

cubrid_load_from_glo — Read data from a GLO instance and save it in a file

Beschreibung

cubrid_load_from_glo ( resource $conn_identifier , string $oid , string $file_name ) : int

The cubrid_load_from_glo() function is used to read a data from a glo instance, and saves it in a designated file.

Parameter-Liste

conn_identifier

Connection identifier.

oid

Oid of the glo instance that you want to read the data from.

file_name

Name of the file where you want to save the data in.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_load_from_glo() example

<?php
$req = cubrid_execute ($con, "select image from person where id=1");
if ($req) {
   list ($oid) = cubrid_fetch($req);
   cubrid_close_request($req);
   $res = cubrid_load_from_glo ($con, $oid, "output.jpg");
   if ($res) {
      echo "image changed successfully";
   }
}
?>

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: cubrid_load_from_glo()

Hinweis:

This function is removed from CUBRID 3.1.

Siehe auch

  • cubrid_new_glo() - Create a glo instance
  • cubrid_save_to_glo() - Save requested file in a GLO instance
  • cubrid_send_glo() - Read data from glo and send it to std output


Create a glo instance

  • « cubrid_load_from_glo
  • cubrid_save_to_glo »
  • PHP Manual
  • CUBRID Obsolete Aliases and Functions
  • Create a glo instance

cubrid_new_glo

(PECL CUBRID >= 8.3.0)

cubrid_new_glo — Create a glo instance

Beschreibung

cubrid_new_glo ( resource $conn_identifier , string $class_name , string $file_name ) : string

The cubrid_new_glo() function is used to create a glo instance in the requested class (glo class). The glo created is a LO type, and is stored in the file_name file.

Parameter-Liste

conn_identifier

Connection identifier.

class_name

Name of the class that you want to create a glo in.

file_name

The file name that you want to save in the newly created glo.

Rückgabewerte

Oid of the instance created, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_new_glo() example

<?php
$oid = cubrid_new_glo ($con, "glo", "input.jpg");
if ($oid){
   // the type of column "image" is "object"
   $req = cubrid_execute ($con, "insert into person(image) values($oid)");
   if ($req) {
      echo "image inserted successfully";
      cubrid_close_request ($req);
      cubrid_commit($con);
   }
}
?>

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: cubrid_new_glo()

Hinweis:

This function is removed from CUBRID 3.1.

Siehe auch

  • cubrid_save_to_glo() - Save requested file in a GLO instance
  • cubrid_load_from_glo() - Read data from a GLO instance and save it in a file
  • cubrid_send_glo() - Read data from glo and send it to std output


Save requested file in a GLO instance

  • « cubrid_new_glo
  • cubrid_send_glo »
  • PHP Manual
  • CUBRID Obsolete Aliases and Functions
  • Save requested file in a GLO instance

cubrid_save_to_glo

(PECL CUBRID >= 8.3.0)

cubrid_save_to_glo — Save requested file in a GLO instance

Beschreibung

cubrid_save_to_glo ( resource $conn_identifier , string $oid , string $file_name ) : int

The cubrid_save_to_glo() function is used to save requested file in a glo instance.

Parameter-Liste

conn_identifier

Connection identifier.

oid

Oid of the glo instance that you want to save a file in.

file_name

The name of the file that you want to save.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_save_to_glo() example

<?php
$req = cubrid_execute ($con, "select image from person where id=1");
if ($req) {
   list ($oid) = cubrid_fetch($req);
   cubrid_close_request($req);
   $res = cubrid_save_to_glo ($con, $oid, "input.jpg");
   if ($res) {
      echo "image changed successfully";
   }
}
?>

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: cubrid_save_to_glo()

Hinweis:

This function is removed from CUBRID 3.1.

Siehe auch

  • cubrid_new_glo() - Create a glo instance
  • cubrid_load_from_glo() - Read data from a GLO instance and save it in a file
  • cubrid_send_glo() - Read data from glo and send it to std output


Read data from glo and send it to std output

  • « cubrid_save_to_glo
  • DB++ »
  • PHP Manual
  • CUBRID Obsolete Aliases and Functions
  • Read data from glo and send it to std output

cubrid_send_glo

(PECL CUBRID >= 8.3.0)

cubrid_send_glo — Read data from glo and send it to std output

Beschreibung

cubrid_send_glo ( resource $conn_identifier , string $oid ) : int

The cubrid_send_glo() function is used to read data from glo instance and sends it to the PHP standard output.

Parameter-Liste

conn_identifier

Connection identifier.

oid

Oid of the glo instance that you want to read data from.

Rückgabewerte

true, when process is successful.

false, when process is unsuccessful.

Beispiele

Beispiel #1 cubrid_send_glo() example

<?php
$req = cubrid_execute ($con, "select image from person where id =1");
if ($req) {
  list ($oid) = cubrid_fetch($req);
  cubrid_close_request($req);
  Header ("Content-type: image/jpeg");
  cubrid_send_glo ($con, $oid);
}
?>

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: cubrid_send_glo()

Hinweis:

This function is removed from CUBRID 3.1.

Siehe auch

  • cubrid_new_glo() - Create a glo instance
  • cubrid_save_to_glo() - Save requested file in a GLO instance
  • cubrid_load_from_glo() - Read data from a GLO instance and save it in a file


DB++

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
    • db++ error codes
  • DB++ Funktionen
    • dbplus_add — Add a tuple to a relation
    • dbplus_aql — Perform AQL query
    • dbplus_chdir — Get/Set database virtual current directory
    • dbplus_close — Close a relation
    • dbplus_curr — Get current tuple from relation
    • dbplus_errcode — Get error string for given errorcode or last error
    • dbplus_errno — Get error code for last operation
    • dbplus_find — Set a constraint on a relation
    • dbplus_first — Get first tuple from relation
    • dbplus_flush — Flush all changes made on a relation
    • dbplus_freealllocks — Free all locks held by this client
    • dbplus_freelock — Release write lock on tuple
    • dbplus_freerlocks — Free all tuple locks on given relation
    • dbplus_getlock — Get a write lock on a tuple
    • dbplus_getunique — Get an id number unique to a relation
    • dbplus_info — Get information about a relation
    • dbplus_last — Get last tuple from relation
    • dbplus_lockrel — Request write lock on relation
    • dbplus_next — Get next tuple from relation
    • dbplus_open — Open relation file
    • dbplus_prev — Get previous tuple from relation
    • dbplus_rchperm — Change relation permissions
    • dbplus_rcreate — Creates a new DB++ relation
    • dbplus_rcrtexact — Creates an exact but empty copy of a relation including indices
    • dbplus_rcrtlike — Creates an empty copy of a relation with default indices
    • dbplus_resolve — Resolve host information for relation
    • dbplus_restorepos — Restore position
    • dbplus_rkeys — Specify new primary key for a relation
    • dbplus_ropen — Open relation file local
    • dbplus_rquery — Perform local (raw) AQL query
    • dbplus_rrename — Rename a relation
    • dbplus_rsecindex — Create a new secondary index for a relation
    • dbplus_runlink — Remove relation from filesystem
    • dbplus_rzap — Remove all tuples from relation
    • dbplus_savepos — Save position
    • dbplus_setindex — Set index
    • dbplus_setindexbynumber — Set index by number
    • dbplus_sql — Perform SQL query
    • dbplus_tcl — Execute TCL code on server side
    • dbplus_tremove — Remove tuple and return new current tuple
    • dbplus_undo — Undo
    • dbplus_undoprepare — Prepare undo
    • dbplus_unlockrel — Give up write lock on relation
    • dbplus_unselect — Remove a constraint from relation
    • dbplus_update — Update specified tuple in relation
    • dbplus_xlockrel — Request exclusive lock on relation
    • dbplus_xunlockrel — Free exclusive lock on relation


Einführung

db++, made by the German company » Concept asa, is a relational database system with high performance and low memory and disk usage in mind. While providing SQL as an additional language interface, it is not really an SQL database in the first place but provides its own AQL query language which is much more influenced by the relational algebra than SQL is.

Concept asa always had an interest in supporting open source languages, db++ has had Perl and Tcl call interfaces for years now and uses Tcl as its internal stored procedure language.

Hinweis:

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 4.3.0

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.


Anforderungen

This extension relies on external client libraries so you have to have a db++ client installed on the system you want to use this extension on.

» Concept asa provides » db++ Demo versions and » documentation for Linux, some other Unix versions. There is also a Windows version of db++, but this extension doesn't support it (yet).


Installation

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 4.3.0

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/dbplus.

In order to build this extension yourself you need the db++ client libraries and header files to be installed on your system (these are included in the db++ installation archives by default). You have to run configure with option --with-dbplus to build this extension.

configure looks for the client libraries and header files under the default paths /usr/dbplus, /usr/local/dbplus and /opt/dblus. If you have installed db++ in a different place you have add the installation path to the configure option like this: --with-dbplus=/your/installation/path.


Ressource-Typen

dbplus_relation

Most db++ functions operate on or return dbplus_relation resources. A dbplus_relation is a handle to a stored relation or a relation generated as the result of a query.


Vordefinierte Konstanten

Inhaltsverzeichnis

  • db++ error codes

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.


db++ error codes

DB++ Error Codes
PHP Constant | db++ constant | meaning
DBPLUS_ERR_NOERR (int) | ERR_NOERR | Null error condition
DBPLUS_ERR_DUPLICATE (int) | ERR_DUPLICATE | Tried to insert a duplicate tuple
DBPLUS_ERR_EOSCAN (int) | ERR_EOSCAN | End of scan from rget()
DBPLUS_ERR_EMPTY (int) | ERR_EMPTY | Relation is empty (server)
DBPLUS_ERR_CLOSE (int) | ERR_CLOSE | The server can't close
DBPLUS_ERR_WLOCKED (int) | ERR_WLOCKED | The record is write locked
DBPLUS_ERR_LOCKED (int) | ERR_LOCKED | Relation was already locked
DBPLUS_ERR_NOLOCK (int) | ERR_NOLOCK | Relation cannot be locked
DBPLUS_ERR_READ (int) | ERR_READ | Read error on relation
DBPLUS_ERR_WRITE (int) | ERR_WRITE | Write error on relation
DBPLUS_ERR_CREATE (int) | ERR_CREATE | Create() system call failed
DBPLUS_ERR_LSEEK (int) | ERR_LSEEK | Lseek() system call failed
DBPLUS_ERR_LENGTH (int) | ERR_LENGTH | Tuple exceeds maximum length
DBPLUS_ERR_OPEN (int) | ERR_OPEN | Open() system call failed
DBPLUS_ERR_WOPEN (int) | ERR_WOPEN | Relation already opened for writing
DBPLUS_ERR_MAGIC (int) | ERR_MAGIC | File is not a relation
DBPLUS_ERR_VERSION (int) | ERR_VERSION | File is a very old relation
DBPLUS_ERR_PGSIZE (int) | ERR_PGSIZE | Relation uses a different page size
DBPLUS_ERR_CRC (int) | ERR_CRC | Invalid crc in the superpage
DBPLUS_ERR_PIPE (int) | ERR_PIPE | Piped relation requires lseek()
DBPLUS_ERR_NIDX (int) | ERR_NIDX | Too many secondary indices
DBPLUS_ERR_MALLOC (int) | ERR_MALLOC | Malloc() call failed
DBPLUS_ERR_NUSERS (int) | ERR_NUSERS | Error use of max users
DBPLUS_ERR_PREEXIT (int) | ERR_PREEXIT | Caused by invalid usage
DBPLUS_ERR_ONTRAP (int) | ERR_ONTRAP | Caused by a signal
DBPLUS_ERR_PREPROC (int) | ERR_PREPROC | Error in the preprocessor
DBPLUS_ERR_DBPARSE (int) | ERR_DBPARSE | Error in the parser
DBPLUS_ERR_DBRUNERR (int) | ERR_DBRUNERR | Run error in db
DBPLUS_ERR_DBPREEXIT (int) | ERR_DBPREEXIT | Exit condition caused by prexit() * procedure
DBPLUS_ERR_WAIT (int) | ERR_WAIT | Wait a little (Simple only)
DBPLUS_ERR_CORRUPT_TUPLE (int) | ERR_CORRUPT_TUPLE | A client sent a corrupt tuple
DBPLUS_ERR_WARNING0 (int) | ERR_WARNING0 | The Simple routines encountered a non fatal error which was corrected
DBPLUS_ERR_PANIC (int) | ERR_PANIC | The server should not really die but after a disaster send ERR_PANIC to all its clients
DBPLUS_ERR_FIFO (int) | ERR_FIFO | Can't create a fifo
DBPLUS_ERR_PERM (int) | ERR_PERM | Permission denied
DBPLUS_ERR_TCL (int) | ERR_TCL | TCL_error
DBPLUS_ERR_RESTRICTED (int) | ERR_RESTRICTED | Only two users
DBPLUS_ERR_USER (int) | ERR_USER | An error in the use of the library by an application programmer
DBPLUS_ERR_UNKNOWN (int) | ERR_UNKNOWN |


DB++ Funktionen

Inhaltsverzeichnis

  • dbplus_add — Add a tuple to a relation
  • dbplus_aql — Perform AQL query
  • dbplus_chdir — Get/Set database virtual current directory
  • dbplus_close — Close a relation
  • dbplus_curr — Get current tuple from relation
  • dbplus_errcode — Get error string for given errorcode or last error
  • dbplus_errno — Get error code for last operation
  • dbplus_find — Set a constraint on a relation
  • dbplus_first — Get first tuple from relation
  • dbplus_flush — Flush all changes made on a relation
  • dbplus_freealllocks — Free all locks held by this client
  • dbplus_freelock — Release write lock on tuple
  • dbplus_freerlocks — Free all tuple locks on given relation
  • dbplus_getlock — Get a write lock on a tuple
  • dbplus_getunique — Get an id number unique to a relation
  • dbplus_info — Get information about a relation
  • dbplus_last — Get last tuple from relation
  • dbplus_lockrel — Request write lock on relation
  • dbplus_next — Get next tuple from relation
  • dbplus_open — Open relation file
  • dbplus_prev — Get previous tuple from relation
  • dbplus_rchperm — Change relation permissions
  • dbplus_rcreate — Creates a new DB++ relation
  • dbplus_rcrtexact — Creates an exact but empty copy of a relation including indices
  • dbplus_rcrtlike — Creates an empty copy of a relation with default indices
  • dbplus_resolve — Resolve host information for relation
  • dbplus_restorepos — Restore position
  • dbplus_rkeys — Specify new primary key for a relation
  • dbplus_ropen — Open relation file local
  • dbplus_rquery — Perform local (raw) AQL query
  • dbplus_rrename — Rename a relation
  • dbplus_rsecindex — Create a new secondary index for a relation
  • dbplus_runlink — Remove relation from filesystem
  • dbplus_rzap — Remove all tuples from relation
  • dbplus_savepos — Save position
  • dbplus_setindex — Set index
  • dbplus_setindexbynumber — Set index by number
  • dbplus_sql — Perform SQL query
  • dbplus_tcl — Execute TCL code on server side
  • dbplus_tremove — Remove tuple and return new current tuple
  • dbplus_undo — Undo
  • dbplus_undoprepare — Prepare undo
  • dbplus_unlockrel — Give up write lock on relation
  • dbplus_unselect — Remove a constraint from relation
  • dbplus_update — Update specified tuple in relation
  • dbplus_xlockrel — Request exclusive lock on relation
  • dbplus_xunlockrel — Free exclusive lock on relation


Add a tuple to a relation

  • « DB++ Funktionen
  • dbplus_aql »
  • PHP Manual
  • DB++ Funktionen
  • Add a tuple to a relation

dbplus_add

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_add — Add a tuple to a relation

Beschreibung

dbplus_add ( resource $relation , array $tuple ) : int

Adds a tuple to a relation.

Parameter-Liste

relation

tuple

An array of attribute/value pairs to be inserted into the given relation.

After successful execution this array will contain the complete data of the newly created tuple, including all implicitly set domain fields like sequences.

Rückgabewerte

The function will return DBPLUS_ERR_NOERR on success or a db++ error code on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_errcode() - Get error string for given errorcode or last error


Perform AQL query

  • « dbplus_add
  • dbplus_chdir »
  • PHP Manual
  • DB++ Funktionen
  • Perform AQL query

dbplus_aql

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_aql — Perform AQL query

Beschreibung

dbplus_aql ( string $query , string $server = ? , string $dbpath = ? ) : resource

Executes an AQL query on the given server and dbpath.

Parameter-Liste

query

The AQL query to be executed. Further information on the AQL (Algebraic Query Language) is provided in the original db++ manual.

server

dbpath

Rückgabewerte

Returns a relation handle on success. The result data may be fetched from this relation by calling dbplus_next() and dbplus_curr(). Other relation access functions will not work on a result relation.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Get/Set database virtual current directory

  • « dbplus_aql
  • dbplus_close »
  • PHP Manual
  • DB++ Funktionen
  • Get/Set database virtual current directory

dbplus_chdir

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_chdir — Get/Set database virtual current directory

Beschreibung

dbplus_chdir ( string $newdir = ? ) : string

Changes the virtual current directory where relation files will be looked for by dbplus_open().

Parameter-Liste

newdir

The new directory for relation files. You can omit this parameter to query the current working directory.

Rückgabewerte

Returns the absolute path of the current directory.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Close a relation

  • « dbplus_chdir
  • dbplus_curr »
  • PHP Manual
  • DB++ Funktionen
  • Close a relation

dbplus_close

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_close — Close a relation

Beschreibung

dbplus_close ( resource $relation ) : mixed

Closes a relation previously opened by dbplus_open().

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Returns true on success or DBPLUS_ERR_UNKNOWN on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Get current tuple from relation

  • « dbplus_close
  • dbplus_errcode »
  • PHP Manual
  • DB++ Funktionen
  • Get current tuple from relation

dbplus_curr

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_curr — Get current tuple from relation

Beschreibung

dbplus_curr ( resource $relation , array &$tuple ) : int

Reads the data for the current tuple for the given relation.

Parameter-Liste

relation

A relation opened by dbplus_open().

tuple

The data will be passed back in this parameter, as an associative array.

Rückgabewerte

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_first() - Get first tuple from relation
  • dbplus_prev() - Get previous tuple from relation
  • dbplus_next() - Get next tuple from relation
  • dbplus_last() - Get last tuple from relation
  • dbplus_errcode() - Get error string for given errorcode or last error


Get error string for given errorcode or last error

  • « dbplus_curr
  • dbplus_errno »
  • PHP Manual
  • DB++ Funktionen
  • Get error string for given errorcode or last error

dbplus_errcode

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_errcode — Get error string for given errorcode or last error

Beschreibung

dbplus_errcode ( int $errno = ? ) : string

Returns a clear error string for the given error code.

Parameter-Liste

errno

The error code. If not provided, the result code of the last db++ operation is assumed.

Rückgabewerte

Returns the error message.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Get error code for last operation

  • « dbplus_errcode
  • dbplus_find »
  • PHP Manual
  • DB++ Funktionen
  • Get error code for last operation

dbplus_errno

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_errno — Get error code for last operation

Beschreibung

dbplus_errno ( ) : int

Returns the error code returned by the last db++ operation.

Rückgabewerte

Returns the error code, as an integer.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_errcode() - Get error string for given errorcode or last error


Set a constraint on a relation

  • « dbplus_errno
  • dbplus_first »
  • PHP Manual
  • DB++ Funktionen
  • Set a constraint on a relation

dbplus_find

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_find — Set a constraint on a relation

Beschreibung

dbplus_find ( resource $relation , array $constraints , mixed $tuple ) : int

Places a constraint on the given relation.

Further calls to functions like dbplus_curr() or dbplus_next() will only return tuples matching the given constraints.

Parameter-Liste

relation

A relation opened by dbplus_open().

constraints

Constraints are triplets of strings containing of a domain name, a comparison operator and a comparison value. The constraints parameter array may consist of a collection of string arrays, each of which contains a domain, an operator and a value, or of a single string array containing a multiple of three elements.

The comparison operator may be one of the following strings: '==', '>', '>=', '<', '<=', '!=', '~' for a regular expression match and 'BAND' or 'BOR' for bitwise operations.

tuple

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_unselect() - Remove a constraint from relation


Get first tuple from relation

  • « dbplus_find
  • dbplus_flush »
  • PHP Manual
  • DB++ Funktionen
  • Get first tuple from relation

dbplus_first

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_first — Get first tuple from relation

Beschreibung

dbplus_first ( resource $relation , array &$tuple ) : int

Reads the data for the first tuple for the given relation, makes it the current tuple and pass it back as an associative array in tuple.

Parameter-Liste

relation

A relation opened by dbplus_open().

tuple

Rückgabewerte

Returns DBPLUS_ERR_NOERR on success or a db++ error code on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_curr() - Get current tuple from relation
  • dbplus_prev() - Get previous tuple from relation
  • dbplus_next() - Get next tuple from relation
  • dbplus_last() - Get last tuple from relation
  • dbplus_errcode() - Get error string for given errorcode or last error


Flush all changes made on a relation

  • « dbplus_first
  • dbplus_freealllocks »
  • PHP Manual
  • DB++ Funktionen
  • Flush all changes made on a relation

dbplus_flush

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_flush — Flush all changes made on a relation

Beschreibung

dbplus_flush ( resource $relation ) : int

Writes all changes applied to relation since the last flush to disk.

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Returns DBPLUS_ERR_NOERR on success or a db++ error code on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_errcode() - Get error string for given errorcode or last error


Free all locks held by this client

  • « dbplus_flush
  • dbplus_freelock »
  • PHP Manual
  • DB++ Funktionen
  • Free all locks held by this client

dbplus_freealllocks

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_freealllocks — Free all locks held by this client

Beschreibung

dbplus_freealllocks ( ) : int

Frees all tuple locks held by this client.

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_getlock() - Get a write lock on a tuple
  • dbplus_freelock() - Release write lock on tuple
  • dbplus_freerlocks() - Free all tuple locks on given relation


Release write lock on tuple

  • « dbplus_freealllocks
  • dbplus_freerlocks »
  • PHP Manual
  • DB++ Funktionen
  • Release write lock on tuple

dbplus_freelock

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_freelock — Release write lock on tuple

Beschreibung

dbplus_freelock ( resource $relation , string $tuple ) : int

Releases a write lock on the given tuple previously obtained by dbplus_getlock().

Parameter-Liste

relation

A relation opened by dbplus_open().

tuple

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_getlock() - Get a write lock on a tuple
  • dbplus_freerlocks() - Free all tuple locks on given relation
  • dbplus_freealllocks() - Free all locks held by this client


Free all tuple locks on given relation

  • « dbplus_freelock
  • dbplus_getlock »
  • PHP Manual
  • DB++ Funktionen
  • Free all tuple locks on given relation

dbplus_freerlocks

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_freerlocks — Free all tuple locks on given relation

Beschreibung

dbplus_freerlocks ( resource $relation ) : int

Frees all tuple locks held on the given relation.

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_getlock() - Get a write lock on a tuple
  • dbplus_freelock() - Release write lock on tuple
  • dbplus_freealllocks() - Free all locks held by this client


Get a write lock on a tuple

  • « dbplus_freerlocks
  • dbplus_getunique »
  • PHP Manual
  • DB++ Funktionen
  • Get a write lock on a tuple

dbplus_getlock

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_getlock — Get a write lock on a tuple

Beschreibung

dbplus_getlock ( resource $relation , string $tuple ) : int

Requests a write lock on the specified tuple.

Parameter-Liste

relation

A relation opened by dbplus_open().

tuple

Rückgabewerte

Returns zero on success or a non-zero error code, especially DBPLUS_ERR_WLOCKED on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_freelock() - Release write lock on tuple
  • dbplus_freerlocks() - Free all tuple locks on given relation
  • dbplus_freealllocks() - Free all locks held by this client


Get an id number unique to a relation

  • « dbplus_getlock
  • dbplus_info »
  • PHP Manual
  • DB++ Funktionen
  • Get an id number unique to a relation

dbplus_getunique

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_getunique — Get an id number unique to a relation

Beschreibung

dbplus_getunique ( resource $relation , int $uniqueid ) : int

Obtains a number guaranteed to be unique for the given relation and will pass it back in the variable given as uniqueid.

Parameter-Liste

relation

A relation opened by dbplus_open().

uniqueid

Rückgabewerte

Returns DBPLUS_ERR_NOERR on success or a db++ error code on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Get information about a relation

  • « dbplus_getunique
  • dbplus_last »
  • PHP Manual
  • DB++ Funktionen
  • Get information about a relation

dbplus_info

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_info — Get information about a relation

Beschreibung

dbplus_info ( resource $relation , string $key , array &$result ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

relation

A relation opened by dbplus_open().

key

result

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Get last tuple from relation

  • « dbplus_info
  • dbplus_lockrel »
  • PHP Manual
  • DB++ Funktionen
  • Get last tuple from relation

dbplus_last

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_last — Get last tuple from relation

Beschreibung

dbplus_last ( resource $relation , array &$tuple ) : int

Reads the data for the last tuple for the given relation, makes it the current tuple and pass it back as an associative array in tuple.

Parameter-Liste

relation

A relation opened by dbplus_open().

tuple

Rückgabewerte

Returns DBPLUS_ERR_NOERR on success or a db++ error code on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_first() - Get first tuple from relation
  • dbplus_curr() - Get current tuple from relation
  • dbplus_prev() - Get previous tuple from relation
  • dbplus_next() - Get next tuple from relation


Request write lock on relation

  • « dbplus_last
  • dbplus_next »
  • PHP Manual
  • DB++ Funktionen
  • Request write lock on relation

dbplus_lockrel

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_lockrel — Request write lock on relation

Beschreibung

dbplus_lockrel ( resource $relation ) : int

Requests a write lock on the given relation.

Other clients may still query the relation, but can't alter it while it is locked.

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Get next tuple from relation

  • « dbplus_lockrel
  • dbplus_open »
  • PHP Manual
  • DB++ Funktionen
  • Get next tuple from relation

dbplus_next

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_next — Get next tuple from relation

Beschreibung

dbplus_next ( resource $relation , array &$tuple ) : int

Reads the data for the next tuple for the given relation, makes it the current tuple and will pass it back as an associative array in tuple.

Parameter-Liste

relation

A relation opened by dbplus_open().

tuple

Rückgabewerte

Returns DBPLUS_ERR_NOERR on success or a db++ error code on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_first() - Get first tuple from relation
  • dbplus_curr() - Get current tuple from relation
  • dbplus_prev() - Get previous tuple from relation
  • dbplus_last() - Get last tuple from relation


Open relation file

  • « dbplus_next
  • dbplus_prev »
  • PHP Manual
  • DB++ Funktionen
  • Open relation file

dbplus_open

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_open — Open relation file

Beschreibung

dbplus_open ( string $name ) : resource

Opens the given relation file.

Parameter-Liste

name

Can be either a file name or a relative or absolute path name. This will be mapped in any case to an absolute relation file path on a specific host machine and server.

Rückgabewerte

On success a relation file resource (cursor) is returned which must be used in any subsequent commands referencing the relation. Failure leads to a zero return value, the actual error code may be asked for by calling dbplus_errno().

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Get previous tuple from relation

  • « dbplus_open
  • dbplus_rchperm »
  • PHP Manual
  • DB++ Funktionen
  • Get previous tuple from relation

dbplus_prev

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_prev — Get previous tuple from relation

Beschreibung

dbplus_prev ( resource $relation , array &$tuple ) : int

Reads the data for the previous tuple for the given relation, makes it the current tuple and will pass it back as an associative array in tuple.

Parameter-Liste

relation

A relation opened by dbplus_open().

tuple

Rückgabewerte

Returns DBPLUS_ERR_NOERR on success or a db++ error code on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_first() - Get first tuple from relation
  • dbplus_curr() - Get current tuple from relation
  • dbplus_next() - Get next tuple from relation
  • dbplus_last() - Get last tuple from relation


Change relation permissions

  • « dbplus_prev
  • dbplus_rcreate »
  • PHP Manual
  • DB++ Funktionen
  • Change relation permissions

dbplus_rchperm

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_rchperm — Change relation permissions

Beschreibung

dbplus_rchperm ( resource $relation , int $mask , string $user , string $group ) : int

Changes access permissions as specified by mask, user and group. The values for these are operating system specific.

Parameter-Liste

relation

A relation opened by dbplus_open().

mask

user

group

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Creates a new DB++ relation

  • « dbplus_rchperm
  • dbplus_rcrtexact »
  • PHP Manual
  • DB++ Funktionen
  • Creates a new DB++ relation

dbplus_rcreate

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_rcreate — Creates a new DB++ relation

Beschreibung

dbplus_rcreate ( string $name , mixed $domlist , bool $overwrite = ? ) : resource

Creates a new relation. Any existing relation sharing the same name will be overwritten if the relation is currently not in use and overwrite is set to TRUE.

Parameter-Liste

name

domlist

A combination of domains. May be passed as a single domain name string or as an array of domain names.

This parameter should contain the domain specification for the new relation within an array of domain description strings. A domain description string consists of a domain name unique to this relation, a slash and a type specification character. See the db++ documentation, especially the dbcreate(1) manpage, for a description of available type specifiers and their meanings.

Hinweis:

This function will also accept a string with space delimited domain description strings, but it is recommended to use an array

overwrite

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Creates an exact but empty copy of a relation including indices

  • « dbplus_rcreate
  • dbplus_rcrtlike »
  • PHP Manual
  • DB++ Funktionen
  • Creates an exact but empty copy of a relation including indices

dbplus_rcrtexact

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_rcrtexact — Creates an exact but empty copy of a relation including indices

Beschreibung

dbplus_rcrtexact ( string $name , resource $relation , bool $overwrite = ? ) : mixed

dbplus_rcrtexact() will create an exact but empty copy of the given relation under a new name.

Parameter-Liste

name

relation

The copied relation, opened by dbplus_open().

overwrite

An existing relation by the same name will only be overwritten if this parameter is set to true and no other process is currently using the relation.

Rückgabewerte

Returns resource on success or DBPLUS_ERR_UNKNOWN on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Creates an empty copy of a relation with default indices

  • « dbplus_rcrtexact
  • dbplus_resolve »
  • PHP Manual
  • DB++ Funktionen
  • Creates an empty copy of a relation with default indices

dbplus_rcrtlike

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_rcrtlike — Creates an empty copy of a relation with default indices

Beschreibung

dbplus_rcrtlike ( string $name , resource $relation , int $overwrite = ? ) : mixed

dbplus_rcrtexact() will create an empty copy of the given relation under a new name, but with default indices.

Parameter-Liste

name

relation

The copied relation, opened by dbplus_open().

overwrite

An existing relation by the same name will only be overwritten if this parameter is set to true and no other process is currently using the relation.

Rückgabewerte

Returns resource on success or DBPLUS_ERR_UNKNOWN on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Resolve host information for relation

  • « dbplus_rcrtlike
  • dbplus_restorepos »
  • PHP Manual
  • DB++ Funktionen
  • Resolve host information for relation

dbplus_resolve

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_resolve — Resolve host information for relation

Beschreibung

dbplus_resolve ( string $relation_name ) : array

dbplus_resolve() will try to resolve the given relation_name and find out internal server id, real hostname and the database path on this host.

Parameter-Liste

relation_name

The relation name.

Rückgabewerte

Returns an array containing these values under the keys sid, host and host_path or false on error.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_tcl() - Execute TCL code on server side


Restore position

  • « dbplus_resolve
  • dbplus_rkeys »
  • PHP Manual
  • DB++ Funktionen
  • Restore position

dbplus_restorepos

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_restorepos — Restore position

Beschreibung

dbplus_restorepos ( resource $relation , array $tuple ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

relation

A relation opened by dbplus_open().

tuple

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Specify new primary key for a relation

  • « dbplus_restorepos
  • dbplus_ropen »
  • PHP Manual
  • DB++ Funktionen
  • Specify new primary key for a relation

dbplus_rkeys

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_rkeys — Specify new primary key for a relation

Beschreibung

dbplus_rkeys ( resource $relation , mixed $domlist ) : mixed

dbplus_rkeys() will replace the current primary key for relation with the combination of domains specified by domlist.

Parameter-Liste

relation

A relation opened by dbplus_open().

domlist

A combination of domains. May be passed as a single domain name string or as an array of domain names.

Rückgabewerte

Returns resource on success or DBPLUS_ERR_UNKNOWN on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Open relation file local

  • « dbplus_rkeys
  • dbplus_rquery »
  • PHP Manual
  • DB++ Funktionen
  • Open relation file local

dbplus_ropen

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_ropen — Open relation file local

Beschreibung

dbplus_ropen ( string $name ) : resource

dbplus_ropen() will open the relation file locally for quick access without any client/server overhead. Access is read only and only dbplus_curr() and dbplus_next() may be applied to the returned relation.

Parameter-Liste

name

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Perform local (raw) AQL query

  • « dbplus_ropen
  • dbplus_rrename »
  • PHP Manual
  • DB++ Funktionen
  • Perform local (raw) AQL query

dbplus_rquery

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_rquery — Perform local (raw) AQL query

Beschreibung

dbplus_rquery ( string $query , string $dbpath = ? ) : resource

dbplus_rquery() performs a local (raw) AQL query using an AQL interpreter embedded into the db++ client library. dbplus_rquery() is faster than dbplus_aql() but will work on local data only.

Parameter-Liste

query

dbpath

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Rename a relation

  • « dbplus_rquery
  • dbplus_rsecindex »
  • PHP Manual
  • DB++ Funktionen
  • Rename a relation

dbplus_rrename

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_rrename — Rename a relation

Beschreibung

dbplus_rrename ( resource $relation , string $name ) : int

dbplus_rrename() will change the name of relation to name.

Parameter-Liste

relation

A relation opened by dbplus_open().

name

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Create a new secondary index for a relation

  • « dbplus_rrename
  • dbplus_runlink »
  • PHP Manual
  • DB++ Funktionen
  • Create a new secondary index for a relation

dbplus_rsecindex

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_rsecindex — Create a new secondary index for a relation

Beschreibung

dbplus_rsecindex ( resource $relation , mixed $domlist , int $type ) : mixed

dbplus_rsecindex() will create a new secondary index for relation with consists of the domains specified by domlist and is of type type

Parameter-Liste

relation

A relation opened by dbplus_open().

domlist

A combination of domains. May be passed as a single domain name string or as an array of domain names.

type

Rückgabewerte

Returns resource on success or DBPLUS_ERR_UNKNOWN on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Remove relation from filesystem

  • « dbplus_rsecindex
  • dbplus_rzap »
  • PHP Manual
  • DB++ Funktionen
  • Remove relation from filesystem

dbplus_runlink

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_runlink — Remove relation from filesystem

Beschreibung

dbplus_runlink ( resource $relation ) : int

dbplus_runlink() will close and remove the relation.

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Remove all tuples from relation

  • « dbplus_runlink
  • dbplus_savepos »
  • PHP Manual
  • DB++ Funktionen
  • Remove all tuples from relation

dbplus_rzap

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_rzap — Remove all tuples from relation

Beschreibung

dbplus_rzap ( resource $relation ) : int

dbplus_rzap() will remove all tuples from relation.

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Save position

  • « dbplus_rzap
  • dbplus_setindex »
  • PHP Manual
  • DB++ Funktionen
  • Save position

dbplus_savepos

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_savepos — Save position

Beschreibung

dbplus_savepos ( resource $relation ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Set index

  • « dbplus_savepos
  • dbplus_setindexbynumber »
  • PHP Manual
  • DB++ Funktionen
  • Set index

dbplus_setindex

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_setindex — Set index

Beschreibung

dbplus_setindex ( resource $relation , string $idx_name ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

relation

A relation opened by dbplus_open().

idx_name

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Set index by number

  • « dbplus_setindex
  • dbplus_sql »
  • PHP Manual
  • DB++ Funktionen
  • Set index by number

dbplus_setindexbynumber

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_setindexbynumber — Set index by number

Beschreibung

dbplus_setindexbynumber ( resource $relation , int $idx_number ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

relation

A relation opened by dbplus_open().

idx_number

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Perform SQL query

  • « dbplus_setindexbynumber
  • dbplus_tcl »
  • PHP Manual
  • DB++ Funktionen
  • Perform SQL query

dbplus_sql

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_sql — Perform SQL query

Beschreibung

dbplus_sql ( string $query , string $server = ? , string $dbpath = ? ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

query

server

dbpath

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Execute TCL code on server side

  • « dbplus_sql
  • dbplus_tremove »
  • PHP Manual
  • DB++ Funktionen
  • Execute TCL code on server side

dbplus_tcl

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_tcl — Execute TCL code on server side

Beschreibung

dbplus_tcl ( int $sid , string $script ) : string

A db++ server will prepare a TCL interpreter for each client connection. This interpreter will enable the server to execute TCL code provided by the client as a sort of stored procedures to improve the performance of database operations by avoiding client/server data transfers and context switches.

dbplus_tcl() needs to pass the client connection id the TCL script code should be executed by. dbplus_resolve() will provide this connection id. The function will return whatever the TCL code returns or a TCL error message if the TCL code fails.

Parameter-Liste

sid

script

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_resolve() - Resolve host information for relation


Remove tuple and return new current tuple

  • « dbplus_tcl
  • dbplus_undo »
  • PHP Manual
  • DB++ Funktionen
  • Remove tuple and return new current tuple

dbplus_tremove

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_tremove — Remove tuple and return new current tuple

Beschreibung

dbplus_tremove ( resource $relation , array $tuple , array &$current = ? ) : int

dbplus_tremove() removes tuple from relation if it perfectly matches a tuple within the relation. current, if given, will contain the data of the new current tuple after calling dbplus_tremove().

Parameter-Liste

relation

A relation opened by dbplus_open().

tuple

current

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Undo

  • « dbplus_tremove
  • dbplus_undoprepare »
  • PHP Manual
  • DB++ Funktionen
  • Undo

dbplus_undo

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_undo — Undo

Beschreibung

dbplus_undo ( resource $relation ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Prepare undo

  • « dbplus_undo
  • dbplus_unlockrel »
  • PHP Manual
  • DB++ Funktionen
  • Prepare undo

dbplus_undoprepare

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_undoprepare — Prepare undo

Beschreibung

dbplus_undoprepare ( resource $relation ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Give up write lock on relation

  • « dbplus_undoprepare
  • dbplus_unselect »
  • PHP Manual
  • DB++ Funktionen
  • Give up write lock on relation

dbplus_unlockrel

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_unlockrel — Give up write lock on relation

Beschreibung

dbplus_unlockrel ( resource $relation ) : int

Release a write lock previously obtained by dbplus_lockrel().

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Remove a constraint from relation

  • « dbplus_unlockrel
  • dbplus_update »
  • PHP Manual
  • DB++ Funktionen
  • Remove a constraint from relation

dbplus_unselect

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_unselect — Remove a constraint from relation

Beschreibung

dbplus_unselect ( resource $relation ) : int

Calling dbplus_unselect() will remove a constraint previously set by dbplus_find() on relation.

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Update specified tuple in relation

  • « dbplus_unselect
  • dbplus_xlockrel »
  • PHP Manual
  • DB++ Funktionen
  • Update specified tuple in relation

dbplus_update

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_update — Update specified tuple in relation

Beschreibung

dbplus_update ( resource $relation , array $old , array $new ) : int

dbplus_update() replaces the old tuple with the data from the new one, only if the old completely matches a tuple within relation.

Parameter-Liste

relation

A relation opened by dbplus_open().

old

The old tuple.

new

The new tuple.

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Request exclusive lock on relation

  • « dbplus_update
  • dbplus_xunlockrel »
  • PHP Manual
  • DB++ Funktionen
  • Request exclusive lock on relation

dbplus_xlockrel

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_xlockrel — Request exclusive lock on relation

Beschreibung

dbplus_xlockrel ( resource $relation ) : int

Request an exclusive lock on relation preventing even read access from other clients.

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • dbplus_xunlockrel() - Free exclusive lock on relation


Free exclusive lock on relation

  • « dbplus_xlockrel
  • dBase »
  • PHP Manual
  • DB++ Funktionen
  • Free exclusive lock on relation

dbplus_xunlockrel

(PHP 4 <= 4.3.0, PECL dbplus >= 0.9)

dbplus_xunlockrel — Free exclusive lock on relation

Beschreibung

dbplus_xunlockrel ( resource $relation ) : int

Releases an exclusive lock previously obtained by dbplus_xlockrel().

Parameter-Liste

relation

A relation opened by dbplus_open().

Rückgabewerte

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


dBase

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • dBase Funktionen
    • dbase_add_record — Hängt einen Datensatz an eine Datenbank an
    • dbase_close — Schließt eine Datenbank
    • dbase_create — Erzeugt eine Datenbank
    • dbase_delete_record — Markiert einen Datensatz als gelöscht
    • dbase_get_header_info — Liefert Informationen des Dateikopfs einer Datenbank
    • dbase_get_record_with_names — Liefert einen Datensatz aus einer Datenbank als assoziatives Array
    • dbase_get_record — Liefert einen Datensatz aus einer Datenbank als indiziertes Array
    • dbase_numfields — Liefert die Anzahl der Felder einer Datenbank
    • dbase_numrecords — Liefert die Anzahl der Datensätze einer Datenbank
    • dbase_open — Öffnet eine Datenbank
    • dbase_pack — Entfernt die als gelöscht markierten Datensätze aus einer Datenbank
    • dbase_replace_record — Ersetzt einen Datensatz in einer Datenbank


Einführung

Hinweis:

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 5.3.0.

Diese Funktionen erlauben Ihnen den Zugriff auf Datensätze, die in Datenbanken im dBase-Format (dbf) vorliegen.

Warnung

Wir empfehlen, keine dBase-Dateien als Produktions-Datenbank zu benutzen. Wählen Sie dafür stattdessen einen echten SQL-Server; » MySQL oder » Postgres sind bei PHP eine gute Wahl. Die dBase-Unterstützung durch PHP dient hauptsächlich dem Im- und Export von Daten zu oder aus ihrer Web-Datenbank, weil das DBF-Datei-Format allgemein von Windows-Tabellenkalulationen und -Zeitplanern verstanden wird.

Achtung

Von dbase 7.0.0 an werden Datenbanken automatisch per flock() gesperrt. Zuvor wurden Sperren nicht unterstützt, so dass zwei Webserver-Prozesse, die gleichzeitig dieselbe dBase-Datei änderten, mit hoher Wahrscheinlichkeit die Datenbank ruinierten. Dies kann auf Systemen, die die Sperren auf Prozessebene implementieren unter multithreaded SAPIS, auch noch mit dbase 7.0.0+ passieren.

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.

Nur dbf Datei-Level 3 (dBASE III+) - 5 (dBASE V) werden unterstützt. Folgende dBase-Feldtypen stehen stehen zur Verfügung:

Verfügbare Feldtypen
Feld | dBase-Typ | Format | Zusätzliche Informationen
M | Memo | n/a | Dieser Typ wird von PHP nicht unterstützt, ein solches Feld wird ignoriert
D | Date | YYYYMMDD | Die Feldlänge ist auf acht Zeichen begrenzt
T | DateTime | YYYYMMDDhhmmss.uuu | (FoxPro) Es wird keine Gültigkeitsprüfung vorgenommen. Verfügbar seit dbase 7.0.0.
N | Number | Eine Zahl | Sie müssen die Länge und die Genauigkeit (die Anzahl der Nachkommastellen) angeben.
F | Float | Eine Gleitkommazahl | Dasselbe wie N. Die Unterstützung für diesen Feldtyp wurde in PHP 5.2.0 hinzugefügt
C | String | Eine Zeichenkette | Sie müssen die Länge angeben. Wenn Daten eingetragen werden, werden Leerzeichen ans Ende der Zeichenkette angehängt, bis die festgelegte Länge erreicht ist. Überlange Zeichenketten werden stillschweigend abgeschnitten, wenn die Daten gespeichert werden.
L | Boolean | T oder Y für true, F oder N für false, ? für nicht initialisiert. | Wird seit dbase 7.0.0 als bool (true oder false), oder null für nicht initialisierte Felder zurückgeliefert. Wurde vorher als int (1 oder 0> zurückgeliefert.

Hinweis:

Von dbase 7.0.0 an werden nullable Felder für DBASE_TYPE_FOXPRO Datenbanken unterstützt. Ist ein Feld nullable, wird die Übergabe von null das entsprechende Flag setzen, und beim späteren Abruf wird der Feldwert null sein.

Hinweis:

Indizes und Memo-Felder werden nicht unterstützt.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/dbase.


Ressource-Typen

Von 7.0.0 an ist der Ressourcetyp dbase definiert, der von dbase_open() und dbase_create() zurückgegeben wird.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

DBASE_VERSION (string)
Die Version der Extension. (Verfügbar von dbase 7.0.0 an)
DBASE_RDONLY (int)
Öffne die Datenbank nur zum Lesen. Verwendet mit dbase_open(). (Verfügbar von dbase 7.0.0 an)
DBASE_RDWR (int)
Öffne die Datenbank zum Lesen und Schreiben. Verwendet mit dbase_open(). (Verfügbar von dbase 7.0.0 an)
DBASE_TYPE_DBASE (int)
Erzeuge eine Datenbank im dBASE-Stil. Verwendet mit dbase_create(). (Verfügbar von dbase 7.0.0 an)
DBASE_TYPE_FOXPRO (int)
Erzeuge eine Datenbank im FoxPro-Stil. Verwendet mit dbase_create(). (Verfügbar von dbase 7.0.0 an)


dBase Funktionen

Beispiele

Für viele Beispiele dieses Abschnitts wird eine dBase-Datenbank benötigt. Wir werden die Datenbank /tmp/test.dbf verwenden, die im Beispiel von dbase_create() erzeugt wird.

Inhaltsverzeichnis

  • dbase_add_record — Hängt einen Datensatz an eine Datenbank an
  • dbase_close — Schließt eine Datenbank
  • dbase_create — Erzeugt eine Datenbank
  • dbase_delete_record — Markiert einen Datensatz als gelöscht
  • dbase_get_header_info — Liefert Informationen des Dateikopfs einer Datenbank
  • dbase_get_record_with_names — Liefert einen Datensatz aus einer Datenbank als assoziatives Array
  • dbase_get_record — Liefert einen Datensatz aus einer Datenbank als indiziertes Array
  • dbase_numfields — Liefert die Anzahl der Felder einer Datenbank
  • dbase_numrecords — Liefert die Anzahl der Datensätze einer Datenbank
  • dbase_open — Öffnet eine Datenbank
  • dbase_pack — Entfernt die als gelöscht markierten Datensätze aus einer Datenbank
  • dbase_replace_record — Ersetzt einen Datensatz in einer Datenbank


Hängt einen Datensatz an eine Datenbank an

  • « dBase Funktionen
  • dbase_close »
  • PHP Manual
  • dBase Funktionen
  • Hängt einen Datensatz an eine Datenbank an

dbase_add_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_add_record — Hängt einen Datensatz an eine Datenbank an

Beschreibung

dbase_add_record ( resource $database , array $data ) : bool

Hängt die angegebenen Daten an die Datenbank an.

Parameter-Liste

database

Die Datenbank-Ressource, die von dbase_open() oder dbase_create() zurückgegeben wurde.

data

Ein indiziertes Datenarray. Falls die Anzahl der Elemente nicht mit der Anzahl der Datenbankfelder übereinstimmt, schlägt dbase_add_record() fehl.

Hinweis:

Vergessen Sie nicht, den deleted-Schlüssel zu löschen, wenn Sie für diesen Parameter den Rückgabewert von dbase_get_record() verwenden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
dbase 7.0.0 | database ist nun eine resource statt eines int.

Beispiele

Beispiel #1 Einen Datensatz in eine dBase-Datenbank einfügen

<?php

// im lesen/schreiben-Modus öffnen
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  dbase_add_record($db, array(
      date('Ymd'),
      'Maxim Topolov',
      '23',
      'max@example.com',
      'T'));
  dbase_close($db);
}

?>

Siehe auch

  • dbase_delete_record() - Markiert einen Datensatz als gelöscht
  • dbase_replace_record() - Ersetzt einen Datensatz in einer Datenbank


Schließt eine Datenbank

  • « dbase_add_record
  • dbase_create »
  • PHP Manual
  • dBase Funktionen
  • Schließt eine Datenbank

dbase_close

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_close — Schließt eine Datenbank

Beschreibung

dbase_close ( resource $database ) : bool

Schließt die angegebene Datenbank-Ressource.

Parameter-Liste

database

Die Datenbank-Ressource, die von dbase_open() oder dbase_create() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
dbase 7.0.0 | database ist nun eine resource statt eines int.

Beispiele

Beispiel #1 Schließen einer dBase-Datenbankdatei

<?php

// im nur-lesen-Modus öffnen
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  // ein paar Daten auslesen ...

  dbase_close($db);
}

?>

Siehe auch

  • dbase_open() - Öffnet eine Datenbank
  • dbase_create() - Erzeugt eine Datenbank


Erzeugt eine Datenbank

  • « dbase_close
  • dbase_delete_record »
  • PHP Manual
  • dBase Funktionen
  • Erzeugt eine Datenbank

dbase_create

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_create — Erzeugt eine Datenbank

Beschreibung

dbase_create ( string $path , array $fields , int $type = DBASE_TYPE_DBASE ) : resource

Erzeugt eine der angegebenen Definition entsprechende dBase-Datenbank. Existiert die Datei bereits, wird sie nicht gekürzt. dbase_pack() kann aufgerufen werden, um die Kürzung zu erzwingen.

Hinweis:

Diese Funktion wird von open_basedir beeinflusst.

Parameter-Liste

path

Der Pfad der Datenbank. Das kann ein relativer oder absoluter Pfad zu der Datei sein, in der dBase die Daten speichert.

fields

Ein Array aus Arrays, von denen jedes das Format eines Datenbankfeldes beschreibt. Jedes Feld besteht aus einem Namen, einem Zeichen für den Feldtyp und gegebenenfalls einer Länge, einer Genauigkeit und einem nullable-Flag. Die unterstützten Feldtypen sind im Einführungsabschnitt aufgeführt.

type

Der zu erzeugende Datenbanktype. Entweder DBASE_TYPE_DBASE oder DBASE_TYPE_FOXPRO.

Hinweis:

Die Feldnamen sind längenbeschränkt, und dürfen 10 Zeichen nicht überschreiten.

Rückgabewerte

Gibt eine Datenbank-Ressource zurück, falls die Datenbank erfolgreich erzeugt werden konnte oder false, falls ein Fehler auftrat.

Changelog

Version | Beschreibung
dbase 7.0.0 | Der Parameter type wurde hinzugefügt.
dbase 7.0.0 | Der Rückgabewert ist nun eine resource anstatt eines int.

Beispiele

Beispiel #1 Erzeugen einer dBase-Datenbankdatei

<?php

// Datenbank-"Definition"
$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('/tmp/test.dbf', $def)) {
  echo "Fehler, konnte die Datenbank nicht erzeugen\n";
}

?>

Siehe auch

  • dbase_open() - Öffnet eine Datenbank
  • dbase_close() - Schließt eine Datenbank


Markiert einen Datensatz als gelöscht

  • « dbase_create
  • dbase_get_header_info »
  • PHP Manual
  • dBase Funktionen
  • Markiert einen Datensatz als gelöscht

dbase_delete_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_delete_record — Markiert einen Datensatz als gelöscht

Beschreibung

dbase_delete_record ( resource $database , int $number ) : bool

Markiert den angegebenen Datensatz in der Datenbank als gelöscht.

Hinweis:

Um den Datensatz wirklich aus der Datenbank zu entfernen, müssen sie noch dbase_pack() aufrufen.

Parameter-Liste

database

Die Datenbank-Ressource, die von dbase_open() oder dbase_create() zurückgegeben wurde.

number

Eine Ganzzahl, die von 1 bis zur Anzahl der Datensätze in der Datenbank (wie von dbase_numrecords() zurückgegeben) geht.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
dbase 7.0.0 | database ist nun eine resource statt eines int.

Siehe auch

  • dbase_add_record() - Hängt einen Datensatz an eine Datenbank an
  • dbase_replace_record() - Ersetzt einen Datensatz in einer Datenbank


Liefert Informationen des Dateikopfs einer Datenbank

  • « dbase_delete_record
  • dbase_get_record_with_names »
  • PHP Manual
  • dBase Funktionen
  • Liefert Informationen des Dateikopfs einer Datenbank

dbase_get_header_info

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_header_info — Liefert Informationen des Dateikopfs einer Datenbank

Beschreibung

dbase_get_header_info ( resource $database ) : array

Liefert für die angegebene Datenbank-Verbindungskennung Informationen über die Datenbankstruktur.

Parameter-Liste

database

Die Datenbank-Ressource, die von dbase_open() oder dbase_create() zurückgegeben wurde.

Rückgabewerte

Ein indiziertes Array mit einem Eintrag für jedes Feld der Datenbank. Der Index des Arrays beginnt bei 0.

Jedes Element des Arrays enthält ein assoziatives Array mit folgenden Informationen über die Felder:

name
Der Name des Feldes
type
Der lesbare Name für den dBase-Typ des Feldes (d.h. date, boolean, etc.) Die unterstützten Feldtypen sind im Einführungsabschnitt aufgeführt.
length
Die Anzahl der Bytes, die dieses Feld haben kann
precision
Die Anzahl der Nachkommastellen des Feldes
format
Ein für das Feld vorgeschlagenes printf()-Format-Spezifikationssymbol
offset
Der Byte-Abstand des Feldes vom Anfang der Zeile

Falls die Dateikopf-Informationen der Datenbank nicht gelesen werden können, wird false zurückgegeben.

Changelog

Version | Beschreibung
dbase 7.0.0 | database ist nun eine resource statt eines int.

Beispiele

Beispiel #1 Anzeigen der Informationen des Dateikopfs einer dBase-Datenbankdatei

<?php
// Der Pfad zur dBase-Datei
$db_pfad = "/tmp/test.dbf";

// Öffnen der dBase-Datei
$dbh = dbase_open($db_pfad, 0)
  or die("Fehler! Konnte die dBase-Datenbankdatei '$db_pfad' nicht öffnen.");

// Auslesen der Feldinformationen
$feld_info = dbase_get_header_info($dbh);

// Ausgeben der Informationen
print_r($feld_info);
?>


Liefert einen Datensatz aus einer Datenbank als assoziatives Array

  • « dbase_get_header_info
  • dbase_get_record »
  • PHP Manual
  • dBase Funktionen
  • Liefert einen Datensatz aus einer Datenbank als assoziatives Array

dbase_get_record_with_names

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_record_with_names — Liefert einen Datensatz aus einer Datenbank als assoziatives Array

Beschreibung

dbase_get_record_with_names ( resource $database , int $number ) : array

Gibt einen Datensatz aus einer dBase-Datenbank als assoziatives Array zurück.

Parameter-Liste

database

Die Datenbank-Ressource, die von dbase_open() oder dbase_create() zurückgegeben wurde.

number

Der Index des Datensatzes zwischen 1 und dbase_numrecords($dbase_identifier).

Rückgabewerte

Ein assoziatives Array mit dem Datensatz. Dieses Array enthält einen zusätzlichen Schlüssel namens deleted, der auf 1 gesetzt ist, wenn der Datensatz zum Löschen markiert wurde (siehe dbase_delete_record()). Daher ist es nicht möglich den Wert eines Feldes mit dem Namen deleted mit dieser Funktion zu ermitteln.

Jedes Feld wird in den entsprechenden PHP-Typ umgewandelt, ausgenommen:

  • Datumsfelder werden als Zeichenkette zurückgegeben.
  • Zeitstempelwerte werden in Zeichenketten umgewandelt.
  • Ganzzahlen außerhalb des Bereiches PHP_INT_MIN..PHP_INT_MAX werden als Zeichenkette zurückgegeben.
  • Boolesche Werte (L) werden zu 1 oder 0 umgewandelt.

Falls ein Fehler auftritt, gibt dbase_get_record_with_names() false zurück.

Changelog

Version | Beschreibung
dbase 7.0.0 | database ist nun eine resource statt eines int.

Beispiele

Beispiel #1 Liste aller in der Datenbank eingetragener Mitglieder

<?php
// im nur-lesen-Modus öffnen
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  $anzahl_datensaetze = dbase_numrecords($db);
  for ($i = 1; $i <= $anzahl_datensaetze; $i++) {
      $datensatz = dbase_get_record_with_names($db, $i);
      if ($datensatz['IstMitglied'] == 1) {
          echo "Mitglied #$i: " . trim($datensatz['Name']) . "\n";
      }
  }
}
?>

Siehe auch

  • dbase_get_record() - Liefert einen Datensatz aus einer Datenbank als indiziertes Array


Liefert einen Datensatz aus einer Datenbank als indiziertes Array

  • « dbase_get_record_with_names
  • dbase_numfields »
  • PHP Manual
  • dBase Funktionen
  • Liefert einen Datensatz aus einer Datenbank als indiziertes Array

dbase_get_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_record — Liefert einen Datensatz aus einer Datenbank als indiziertes Array

Beschreibung

dbase_get_record ( resource $database , int $number ) : array

Gibt einen Datensatz aus einer Datenbank als indiziertes Array zurück.

Parameter-Liste

database

Die Datenbank-Ressource, die von dbase_open() oder dbase_create() zurückgegeben wurde.

number

Der Index des Datensatzes zwischen 1 und dbase_numrecords($dbase_identifier).

Rückgabewerte

Ein indiziertes Array mit dem Datensatz. Dieses Array enthält zusätzlich einen assoziativen Schlüssel namens deleted, der auf 1 gesetzt ist, wenn der Datensatz zum Löschen markiert wurde (siehe dbase_delete_record()).

Jedes Feld wird in den entsprechenden PHP-Typ umgewandelt, ausgenommen:

  • Datumsfelder werden als Zeichenkette zurückgegeben.
  • Zeitstempelwerte werden in Zeichenketten umgewandelt.
  • Ganzzahlen außerhalb des Bereiches PHP_INT_MIN..PHP_INT_MAX werden als Zeichenkette zurückgegeben.
  • Boolesche Werte (L) werden zu 1 oder 0 umgewandelt.

Falls ein Fehler auftritt, gibt dbase_get_record() false zurück.

Changelog

Version | Beschreibung
dbase 7.0.0 | database ist nun eine resource statt eines int.

Siehe auch

  • dbase_get_record_with_names() - Liefert einen Datensatz aus einer Datenbank als assoziatives Array


Liefert die Anzahl der Felder einer Datenbank

  • « dbase_get_record
  • dbase_numrecords »
  • PHP Manual
  • dBase Funktionen
  • Liefert die Anzahl der Felder einer Datenbank

dbase_numfields

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_numfields — Liefert die Anzahl der Felder einer Datenbank

Beschreibung

dbase_numfields ( resource $database ) : int

Gibt die Anzahl der Felder (Spalten) der angegebenen Datenbank zurück.

Hinweis:

Die Anzahl der Felder liegt zwischen 0 und dbase_numfields($db)-1, wogegen die Anzahl der Datensätze zwischen 1 und dbase_numrecords($db) liegt.

Parameter-Liste

database

Die Datenbank-Ressource, die von dbase_open() oder dbase_create() zurückgegeben wurde.

Rückgabewerte

Die Anzahl der Felder in der Datenbank oder false, falls ein Fehler auftrat.

Changelog

Version | Beschreibung
dbase 7.0.0 | database ist nun eine resource statt eines int.

Beispiele

Beispiel #1 dbase_numfields()-Beispiel

<?php

$rec = dbase_get_record($db, $recno);
$nf  = dbase_numfields($db);
for ($i = 0; $i < $nf; $i++) {
  echo $rec[$i], "\n";
}

?>

Siehe auch

  • dbase_numrecords() - Liefert die Anzahl der Datensätze einer Datenbank


Liefert die Anzahl der Datensätze einer Datenbank

  • « dbase_numfields
  • dbase_open »
  • PHP Manual
  • dBase Funktionen
  • Liefert die Anzahl der Datensätze einer Datenbank

dbase_numrecords

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_numrecords — Liefert die Anzahl der Datensätze einer Datenbank

Beschreibung

dbase_numrecords ( resource $database ) : int

Gibt die Anzahl der Datensätze (Zeilen) der angegebenen Datenbank zurück.

Hinweis:

Datensätze, die zur Löschung markiert sind, werden ebenfalls gezählt.

Hinweis:

Die Anzahl der Datensätze liegt zwischen 1 und dbase_numrecords($db), wogegen die Anzahl der Felder zwischen 0 und dbase_numfields($db)-1 liegt.

Parameter-Liste

database

Die Datenbank-Ressource, die von dbase_open() oder dbase_create() zurückgegeben wurde.

Rückgabewerte

Die Anzahl der Datensätze in der Datenbank oder false, falls ein Fehler auftrat.

Changelog

Version | Beschreibung
dbase 7.0.0 | database ist nun eine resource statt eines int.

Beispiele

Beispiel #1 Eine Schleife über alle Datensätze der Datenbank ausführen

<?php

// im nur-lesen-Modus öffnen
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  $anzahl_datensaetze = dbase_numrecords($db);
  for ($i = 1; $i <= $anzahl_datensaetze; $i++) {
      $record = dbase_get_record($db, $i);
      if (!$record['deleted']) {
          // mache etwas mit $record
      } else {
          // mache etwas mit dem gelöschten $record, oder ignoriere ihn
      }
  }
}

?>

Siehe auch

  • dbase_numfields() - Liefert die Anzahl der Felder einer Datenbank


Öffnet eine Datenbank

  • « dbase_numrecords
  • dbase_pack »
  • PHP Manual
  • dBase Funktionen
  • Öffnet eine Datenbank

dbase_open

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_open — Öffnet eine Datenbank

Beschreibung

dbase_open ( string $path , int $mode ) : resource|false

dbase_open() öffnet eine dBase-Datenbank im angegebenen Zugriffsmodus.

Hinweis:

Diese Funktion wird von open_basedir beeinflusst.

Parameter-Liste

path

Der Pfad der Datenbank. Das kann ein relativer oder absoluter Pfad zu der Datei sein, in der dBase die Daten speichert.

mode

Eine Ganzzahl, die denen des open()-Systemaufrufs entspricht (typischerweise bedeutet 0 nur lesen, 1 nur schreiben und 2 lesen und schreiben).

Hinweis:

Eine dBase-Datei kann nicht im nur-schreiben-Modus geöffnet werden, weil diese Funktion dann die Informationen des Dateikopfs nicht lesen könnte. Deshalb kann der mode 1 nicht verwendet werden.

Von dbase 7.0.0 an kann DBASE_RDONLY, bzw. DBASE_RDWR verwendet werden, um den mode anzugeben.

Rückgabewerte

Gibt im Erfolgsfall eine Datenbank-Ressource zurück. Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
dbase 7.0.0 | Der Rückgabewert ist nun eine resource anstatt eines int.

Beispiele

Beispiel #1 Öffnen einer dBase-Datenbankdatei

<?php

// im nur-lesen-Modus öffnen
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  // ein paar Daten lesen ...

  dbase_close($db);
}

?>

Siehe auch

  • dbase_create() - Erzeugt eine Datenbank
  • dbase_close() - Schließt eine Datenbank


Entfernt die als gelöscht markierten Datensätze aus einer Datenbank

  • « dbase_open
  • dbase_replace_record »
  • PHP Manual
  • dBase Funktionen
  • Entfernt die als gelöscht markierten Datensätze aus einer Datenbank

dbase_pack

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_pack — Entfernt die als gelöscht markierten Datensätze aus einer Datenbank

Beschreibung

dbase_pack ( resource $database ) : bool

Entfernt die mittels dbase_delete_record() als gelöscht markierten Datensätze endgültig aus der angegebenen Datenbank. Es ist zu beachten, dass die Datei nach erfolgreichem Packen gekürzt wird (anders als bei PACK-Kommando von dBASE III).

Parameter-Liste

database

Die Datenbank-Ressource, die von dbase_open() oder dbase_create() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
dbase 7.0.0 | database ist nun eine resource statt eines int.

Beispiele

Beispiel #1 Leeren einer dBase-Datenbank

<?php

// im lesen-schreiben-Modus öffnen
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  $anzahl_datensaetze = dbase_numrecords($db);
  for ($i = 1; $i <= $anzahl_datensaetze; $i++) {
      dbase_delete_record($db, $i);
  }
  // Datensätze löschen
  dbase_pack($db);
}

?>

Siehe auch

  • dbase_delete_record() - Markiert einen Datensatz als gelöscht


Ersetzt einen Datensatz in einer Datenbank

  • « dbase_pack
  • filePro »
  • PHP Manual
  • dBase Funktionen
  • Ersetzt einen Datensatz in einer Datenbank

dbase_replace_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_replace_record — Ersetzt einen Datensatz in einer Datenbank

Beschreibung

dbase_replace_record ( resource $database , array $data , int $number ) : bool

Ersetzt in der Datenbank den angegebenen Datensatz record_number mit den Daten aus record.

Parameter-Liste

database

Die Datenbank-Ressource, die von dbase_open() oder dbase_create() zurückgegeben wurde.

data

Ein indiziertes Datenarray. Falls die Anzahl der Elemente nicht mit der Anzahl der Datenbankfelder übereinstimmt, schlägt dbase_replace_record() fehl.

Hinweis:

Vergessen Sie nicht, den deleted-Schlüssel zu löschen, wenn Sie für diesen Parameter den Rückgabewert von dbase_get_record() verwenden.

number

Eine Ganzzahl, die von 1 bis zur Anzahl der Datensätze in der Datenbank (wie von dbase_numrecords() zurückgegeben) geht.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
dbase 7.0.0 | database ist nun eine resource statt eines int.

Beispiele

Beispiel #1 Aktualisieren eines Datensatzes in der Datenbank

<?php

// im lesen-schreiben-Modus öffnen
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  // den alten Datensatz holen
  $datensatz = dbase_get_record_with_names($db, 1);

  // den Eintrag 'deleted' entfernen
  unset($datensatz['deleted']);

  // das Datumsfeld mit dem aktuellen Zeitstempel aktualisieren
  $datensatz['Datum'] = date('Ymd');

  // wandle den Datensatz in ein indexiertes Array um
  $datensatz = array_values($datensatz);

  // den Datensatz ersetzen
  dbase_replace_record($db, $datensatz, 1);
  dbase_close($db);
}

?>

Anmerkungen

Hinweis:

Boolesche Felder ergeben einen int-Elementwert (0 oder 1), wenn sie per dbase_get_record() oder dbase_get_record_with_names() gelesen werden. Werden sie zurückgeschrieben, wird der Wert zu 0, so dass darauf geachtet werden muss, den Wert ordnungsgemäß anzupassen.

Siehe auch

  • dbase_add_record() - Hängt einen Datensatz an eine Datenbank an
  • dbase_delete_record() - Markiert einen Datensatz als gelöscht


filePro

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • filePro Funktionen
    • filepro_fieldcount — Bestimmt, wieviele Felder in einer filePro-Datenbank vorhanden sind
    • filepro_fieldname — Ermittelt den Namen eines Feldes
    • filepro_fieldtype — Ermittelt den Typ eines Feldes
    • filepro_fieldwidth — Ermittelt die Länge eines Feldes
    • filepro_retrieve — Holt Daten aus einer filePro-Datenbank
    • filepro_rowcount — bestimmt, wieviele Zeilen eine filePro-Datenbank enthält
    • filepro — Liest und überprüft die Map-Datei


Einführung

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 unter » http://www.fptech.com/.

Hinweis:

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 5.2.0.


Installation

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 5.2.0

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/filepro.


  • « Ressource-Typen
  • filePro Funktionen »
  • PHP Manual
  • filePro
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


filePro Funktionen

Inhaltsverzeichnis

  • filepro_fieldcount — Bestimmt, wieviele Felder in einer filePro-Datenbank vorhanden sind
  • filepro_fieldname — Ermittelt den Namen eines Feldes
  • filepro_fieldtype — Ermittelt den Typ eines Feldes
  • filepro_fieldwidth — Ermittelt die Länge eines Feldes
  • filepro_retrieve — Holt Daten aus einer filePro-Datenbank
  • filepro_rowcount — bestimmt, wieviele Zeilen eine filePro-Datenbank enthält
  • filepro — Liest und überprüft die Map-Datei


Bestimmt, wieviele Felder in einer filePro-Datenbank vorhanden sind

  • « filePro Funktionen
  • filepro_fieldname »
  • PHP Manual
  • filePro Funktionen
  • Bestimmt, wieviele Felder in einer filePro-Datenbank vorhanden sind

filepro_fieldcount

(PHP 4, PHP 5 < 5.2.0, PECL filepro SVN)

filepro_fieldcount — Bestimmt, wieviele Felder in einer filePro-Datenbank vorhanden sind

Beschreibung

filepro_fieldcount ( ) : int

Gibt die Anzahl der Felder (Spalten) in der geöffneten filePro-Datenbank zurück.

Rückgabewerte

Gibt die Anzahl der Felder in der geöffneten filePro-Datenbank oder im Fehlerfall false zurück.

Siehe auch

  • filepro() - Liest und überprüft die Map-Datei


Ermittelt den Namen eines Feldes

  • « filepro_fieldcount
  • filepro_fieldtype »
  • PHP Manual
  • filePro Funktionen
  • Ermittelt den Namen eines Feldes

filepro_fieldname

(PHP 4, PHP 5 < 5.2.0, PECL filepro SVN)

filepro_fieldname — Ermittelt den Namen eines Feldes

Beschreibung

filepro_fieldname ( int $field_number ) : string

Gibt den Namen des Feldes zurück, dass der Angabe in field_number entspricht.

Parameter-Liste

field_number

Die Feldnummer.

Rückgabewerte

Gibt den Namen des Feldes als String oder im Fehlerfall false zurück.


Ermittelt den Typ eines Feldes

  • « filepro_fieldname
  • filepro_fieldwidth »
  • PHP Manual
  • filePro Funktionen
  • Ermittelt den Typ eines Feldes

filepro_fieldtype

(PHP 4, PHP 5 < 5.2.0, PECL filepro SVN)

filepro_fieldtype — Ermittelt den Typ eines Feldes

Beschreibung

filepro_fieldtype ( int $field_number ) : string

Gibt den Inhaltstyp des Feldes zurück, das der Angabe in field_number entspricht.

Parameter-Liste

field_number

Die Feldnummer.

Rückgabewerte

Gibt den Inhaltstyp eines Feldes als String oder im Fehlerfall false zurück.


Ermittelt die Länge eines Feldes

  • « filepro_fieldtype
  • filepro_retrieve »
  • PHP Manual
  • filePro Funktionen
  • Ermittelt die Länge eines Feldes

filepro_fieldwidth

(PHP 4, PHP 5 < 5.2.0, PECL filepro SVN)

filepro_fieldwidth — Ermittelt die Länge eines Feldes

Beschreibung

filepro_fieldwidth ( int $field_number ) : int

Gibt die Länge des Feldes zurück, das der Angabe in field_number entspricht.

Parameter-Liste

field_number

Die Feldnummer.

Rückgabewerte

Gibt die Feldlänge als Integer oder im Fehlerfall false zurück.


Holt Daten aus einer filePro-Datenbank

  • « filepro_fieldwidth
  • filepro_rowcount »
  • PHP Manual
  • filePro Funktionen
  • Holt Daten aus einer filePro-Datenbank

filepro_retrieve

(PHP 4, PHP 5 < 5.2.0, PECL filepro SVN)

filepro_retrieve — Holt Daten aus einer filePro-Datenbank

Beschreibung

filepro_retrieve ( int $row_number , int $field_number ) : string

Gibt die Daten von einer bestimmten Stelle in der Datenbank zurück.

Parameter-Liste

row_number

Die Zeilennummer. Muss zwischen null und der absoluten Anzahl der Zeilen minus eins liegen (0..filepro_rowcount() - 1)

field_number

Die Feldnummer. Akzeptiert Werte zwischen null und der absoluten Anzahl der Felder minus eins (0..filepro_fieldcount() - 1)

Rückgabewerte

Gibt die angegebenen Daten oder im Fehlerfall false zurück.


bestimmt, wieviele Zeilen eine filePro-Datenbank enthält

  • « filepro_retrieve
  • filepro »
  • PHP Manual
  • filePro Funktionen
  • bestimmt, wieviele Zeilen eine filePro-Datenbank enthält

filepro_rowcount

(PHP 4, PHP 5 < 5.2.0, PECL filepro SVN)

filepro_rowcount — bestimmt, wieviele Zeilen eine filePro-Datenbank enthält

Beschreibung

filepro_rowcount ( ) : int

Gibt die Anzahl der Zeilen in der geöffneten filePro-Datenbank zurück.

Rückgabewerte

Gibt die Anzahl der Zeilen in der geöffneten filePro-Datenbank oder im Fehlerfall false zurück.

Siehe auch

  • filepro() - Liest und überprüft die Map-Datei


Liest und überprüft die Map-Datei

  • « filepro_rowcount
  • Firebird/InterBase »
  • PHP Manual
  • filePro Funktionen
  • Liest und überprüft die Map-Datei

filepro

(PHP 4, PHP 5 < 5.2.0, PECL filepro SVN)

filepro — Liest und überprüft die Map-Datei

Beschreibung

filepro ( string $directory ) : bool

Die Funktion liest und überprüft die Map-Datei, die die Feldnummern und dazugehörigen Informationen enthält.

Es wird kein Locking durchgeführt, daher sollten Sie davon absehen, an einer mit PHP geöffneten filePro-Datenbank Veränderungen vorzunehmen.

Parameter-Liste

directory

Das Map-Verzeichnis.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Firebird/InterBase

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Firebird/InterBase Funktionen
    • fbird_add_user — Alias von ibase_add_user
    • fbird_affected_rows — Alias von ibase_affected_rows
    • fbird_backup — Alias von ibase_backup
    • fbird_blob_add — Alias von ibase_blob_add
    • fbird_blob_cancel — Cancel creating blob
    • fbird_blob_close — Alias von ibase_blob_close
    • fbird_blob_create — Alias von ibase_blob_create
    • fbird_blob_echo — Alias von ibase_blob_echo
    • fbird_blob_get — Alias von ibase_blob_get
    • fbird_blob_import — Alias von ibase_blob_import
    • fbird_blob_info — Alias von ibase_blob_info
    • fbird_blob_open — Alias von ibase_blob_open
    • fbird_close — Alias von ibase_close
    • fbird_commit_ret — Alias von ibase_commit_ret
    • fbird_commit — Alias von ibase_commit
    • fbird_connect — Alias von ibase_connect
    • fbird_db_info — Alias von ibase_db_info
    • fbird_delete_user — Alias von ibase_delete_user
    • fbird_drop_db — Alias von ibase_drop_db
    • fbird_errcode — Alias von ibase_errcode
    • fbird_errmsg — Alias von ibase_errmsg
    • fbird_execute — Alias von ibase_execute
    • fbird_fetch_assoc — Alias von ibase_fetch_assoc
    • fbird_fetch_object — Alias von ibase_fetch_object
    • fbird_fetch_row — Alias von ibase_fetch_row
    • fbird_field_info — Alias von ibase_field_info
    • fbird_free_event_handler — Alias von ibase_free_event_handler
    • fbird_free_query — Alias von ibase_free_query
    • fbird_free_result — Alias von ibase_free_result
    • fbird_gen_id — Alias von ibase_gen_id
    • fbird_maintain_db — Alias von ibase_maintain_db
    • fbird_modify_user — Alias von ibase_modify_user
    • fbird_name_result — Alias von ibase_name_result
    • fbird_num_fields — Alias von ibase_num_fields
    • fbird_num_params — Alias von ibase_num_params
    • fbird_param_info — Alias von ibase_param_info
    • fbird_pconnect — Alias von ibase_pconnect
    • fbird_prepare — Alias von ibase_prepare
    • fbird_query — Alias von ibase_query
    • fbird_restore — Alias von ibase_restore
    • fbird_rollback_ret — Alias von ibase_rollback_ret
    • fbird_rollback — Alias von ibase_rollback
    • fbird_server_info — Alias von ibase_server_info
    • fbird_service_attach — Alias von ibase_service_attach
    • fbird_service_detach — Alias von ibase_service_detach
    • fbird_set_event_handler — Alias von ibase_set_event_handler
    • fbird_trans — Alias von ibase_trans
    • fbird_wait_event — Alias von ibase_wait_event
    • ibase_add_user — Fügt einen Benutzer zu einer Security-Datenbank hinzu
    • ibase_affected_rows — Gibt die Anzahl der Zeilen zurück, die von der vorherigen Abfrage betroffen waren
    • ibase_backup — Initiiert eine Sicherungsaufgabe im Service Manager und springt sofort zurück
    • ibase_blob_add — Fügt Daten in ein neues BLOB ein
    • ibase_blob_cancel — Bricht die Erstellung eines neuen BLOBs ab.
    • ibase_blob_close — BLOB schließen
    • ibase_blob_create — Erstellt ein neues BLOB zum Hinzufügen von Daten
    • ibase_blob_echo — Ausgabe von BLOB-Inhalten an den Browser
    • ibase_blob_get — Holt sich len Bytes Daten aus dem offenen BLOB
    • ibase_blob_import — Erstellt ein BLOB, kopiert die Dateidaten hinein und schließt es
    • ibase_blob_info — Gibt die Blob-Länge und andere nützliche Informationen zurück
    • ibase_blob_open — BLOB zum Abrufen von Datenteilen öffnen
    • ibase_close — Schließt eine Verbindung zu einer InterBase-Datenbank
    • ibase_commit_ret — Schreibt eine Transaktion fest, ohne diese zu schließen
    • ibase_commit — Schreibt eine Transaktion fest
    • ibase_connect — Öffnet eine Verbindung zu einer Datenbank
    • ibase_db_info — Fragt statistische Daten über eine Datenbank ab
    • ibase_delete_user — Löscht einen Benutzer aus einer Security-Datenbank
    • ibase_drop_db — Löscht eine Datenbank
    • ibase_errcode — Gibt einen Fehlercode zurück
    • ibase_errmsg — Gibt eine Fehlermeldung zurück
    • ibase_execute — Ausführen einer vorbereiteten Abfrage
    • ibase_fetch_assoc — Ruft eine Ergebniszeile aus einer Abfrage als assoziatives Array ab
    • ibase_fetch_object — Liest einen Datensatz einer InterBase-Datenbank als Objekt ein
    • ibase_fetch_row — Ruft eine Zeile aus einer InterBase-Datenbank ab
    • ibase_field_info — Ruft Informationen zu einem Feld ab
    • ibase_free_event_handler — Bricht einen registrierten Ereignishandler ab
    • ibase_free_query — Gibt den Speicher einer vorbereiteten Abfrage wieder frei
    • ibase_free_result — Gibt eine Ergebnismenge frei
    • ibase_gen_id — Inkrementiert den benannten Generator und gibt dessen neuen Wert zurück
    • ibase_maintain_db — Führt einen Wartungsbefehl auf dem Datenbankserver aus
    • ibase_modify_user — Ändert den Benutzer einer Security-Datenbank
    • ibase_name_result — Weist einer Ergebnismenge einen Namen zu
    • ibase_num_fields — Ermittelt die Anzahl der Felder einer Ergebnismenge
    • ibase_num_params — Gibt die Anzahl der Parameter in einer vorbereiteten Abfrage zurück
    • ibase_param_info — Gibt Informationen zu einem Parameter in einer vorbereiteten Abfrage zurück
    • ibase_pconnect — Öffnet eine persistente Verbindung zu einer InterBase-Datenbank
    • ibase_prepare — Bereitet eine Abfrage für späteres Binden der Parameter-Platzhalter und Ausführung vor
    • ibase_query — Führt eine Abfrage auf einer InterBase Datenbank aus
    • ibase_restore — Leitet eine Wiederherstellungsaufgabe im Service Manager ein und kehrt sofort zurück
    • ibase_rollback_ret — Macht eine Transaktion rückgängig, ohne diese zu schließen
    • ibase_rollback — Macht eine Transaktion rückgängig
    • ibase_server_info — Informationen zu einem Datenbankserver anfordern
    • ibase_service_attach — Verbindet zum Service-Manager
    • ibase_service_detach — Trennt die Verbindung zum Service-Manager
    • ibase_set_event_handler — Registriert eine Rückruffunktion, die aufgerufen werden soll, wenn Ereignisse auftreten
    • ibase_trans — Startet eine Transaktion
    • ibase_wait_event — Wartet, bis ein Ereignis von der Datenbank veröffentlicht wurde


Einführung

Firebird is a relational database offering many ISO SQL-2003 features that runs on Linux, Windows, and a variety of Unix platforms. Firebird offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names since 1981.

InterBase is the name of the closed-source variant of this RDBMS that was developed by Embarcadero/Inprise. More information about InterBase is available at » http://www.embarcadero.com/products/interbase.

Firebird is a commercially independent project (fundation) of C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Embarcadero) under the InterBase Public License v.1.0 on 25 July, 2000. More information about Firebird is available at » http://www.firebirdsql.org/.

Hinweis:

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 7.4.0

This extension supports InterBase versions 6 and up and Firebird version 2.0 and up.


Installation

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 7.4.0

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/ibase.

To enable Firebird/InterBase support configure PHP --with-interbase[=DIR], where DIR is the Firebird/InterBase base install directory, which defaults to /usr.

Hinweis: Note to Win32/Win64 Users

Diese Extension benötigt DLL-Dateien. die für Windows verfügbar seien müssen. Der FAQ-Eintrag " Wie füge ich unter Windows PATH mein PHP-Verzeichnis hinzu?" gibt hierzu weitere Informationen. Obwohl ein einfaches Kopieren der DLL-Dateien vom PHP-Verzeichnis in den Windows-Systemordner auch funktioniert (weil der Systemordner immer im PATH enthalten ist), ist dieses Vorgehen nicht empfehlenswert. Diese Extension benötigt die folgenden Dateien im PATH: fbclient.dll,gds32.dll

If you installed the Firebird/InterBase database server on the same machine PHP is running on, you will have this DLL already and fbclient.dll,gds32.dll (gds32.dll is generated from the installer for legacy applications) will already be in the PATH.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

InterBase configuration options
Name | Standard | Veränderbar | Changelog
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM |
ibase.max_links | "-1" | PHP_INI_SYSTEM |
ibase.default_db | NULL | PHP_INI_SYSTEM |
ibase.default_user | NULL | PHP_INI_ALL |
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

ibase.allow_persistent bool

Whether to allow persistent connections to Firebird/InterBase.

ibase.max_persistent int

The maximum number of persistent Firebird/InterBase connections per process. New connections created with ibase_pconnect() will be non-persistent if this number would be exceeded.

ibase.max_links int

The maximum number of Firebird/InterBase connections per process, including persistent connections.

ibase.default_db string

The default database to connect to when ibase_[p]connect() is called without specifying a database name. If this value is set and SQL safe mode is enabled, no other connections than to this database will be allowed.

ibase.default_user string

The user name to use when connecting to a database if no user name is specified.

ibase.default_password string

The password to use when connecting to a database if no password is specified.

ibase.default_charset string

The character set to use when connecting to a database if no character set is specified.

ibase.timestampformat string

ibase.dateformat string

ibase.timeformat string

These directives are used to set the date and time formats that are used when returning dates and times from a result set, or when binding arguments to date and time parameters.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

The following constants can be passed to ibase_trans() to specify transaction behaviour.

Firebird/InterBase transaction flags
Constant | Description
IBASE_DEFAULT | The default transaction settings are to be used. This default is determined by the client library, which defines it as IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT in most cases.
IBASE_READ | Starts a read-only transaction.
IBASE_WRITE | Starts a read-write transaction.
IBASE_CONSISTENCY | Starts a transaction with the isolation level set to 'consistency', which means the transaction cannot read from tables that are being modified by other concurrent transactions.
IBASE_CONCURRENCY | Starts a transaction with the isolation level set to 'concurrency' (or 'snapshot'), which means the transaction has access to all tables, but cannot see changes that were committed by other transactions after the transaction was started.
IBASE_COMMITTED | Starts a transaction with the isolation level set to 'read committed'. This flag should be combined with either IBASE_REC_VERSION or IBASE_REC_NO_VERSION. This isolation level allows access to changes that were committed after the transaction was started. If IBASE_REC_NO_VERSION was specified, only the latest version of a row can be read. If IBASE_REC_VERSION was specified, a row can even be read when a modification to it is pending in a concurrent transaction.
IBASE_WAIT | Indicated that a transaction should wait and retry when a conflict occurs.
IBASE_NOWAIT | Indicated that a transaction should fail immediately when a conflict occurs.

The following constants can be passed to ibase_fetch_row(), ibase_fetch_assoc() or ibase_fetch_object() to specify fetch behaviour.

Firebird/InterBase fetch flags
Constant | Description
IBASE_FETCH_BLOBS | Also available as IBASE_TEXTfor backward compatibility. Causes BLOB contents to be fetched inline, instead of being fetched as BLOB identifiers.
IBASE_FETCH_ARRAYS | Causes arrays to be fetched inline. Otherwise, array identifiers are returned. Array identifiers can only be used as arguments to INSERT operations, as no functions to handle array identifiers are currently available.
IBASE_UNIXTIME | Causes date and time fields not to be returned as strings, but as UNIX timestamps (the number of seconds since the epoch, which is 1-Jan-1970 0:00 UTC). Might be problematic if used with dates before 1970 on some systems.

The following constants are used to pass requests and options to the service
API functions (ibase_server_info(), ibase_db_info(),
ibase_backup(), ibase_restore()
and ibase_maintain_db()). Please refer to
the Firebird/InterBase manuals for the meaning of these options.

IBASE_BKP_IGNORE_CHECKSUMS
Options to ibase_backup()
IBASE_BKP_IGNORE_LIMBO
Options to ibase_backup()
IBASE_BKP_METADATA_ONLY
Options to ibase_backup()
IBASE_BKP_NO_GARBAGE_COLLECT
Options to ibase_backup()
IBASE_BKP_OLD_DESCRIPTIONS
Options to ibase_backup()
IBASE_BKP_NON_TRANSPORTABLE
Options to ibase_backup()
IBASE_BKP_CONVERT
Options to ibase_backup()
IBASE_RES_DEACTIVATE_IDX
Options to ibase_restore()
IBASE_RES_NO_SHADOW
Options to ibase_restore()
IBASE_RES_NO_VALIDITY
Options to ibase_restore()
IBASE_RES_ONE_AT_A_TIME
Options to ibase_restore()
IBASE_RES_REPLACE
IBASE_RES_CREATE
Options to ibase_restore()
IBASE_RES_USE_ALL_SPACE
Options to ibase_restore()
IBASE_PRP_PAGE_BUFFERS
IBASE_PRP_SWEEP_INTERVAL
IBASE_PRP_SHUTDOWN_DB
IBASE_PRP_DENY_NEW_TRANSACTIONS
IBASE_PRP_DENY_NEW_ATTACHMENTS
IBASE_PRP_RESERVE_SPACE
IBASE_PRP_RES_USE_FULL
IBASE_PRP_RES
IBASE_PRP_WRITE_MODE
IBASE_PRP_WM_ASYNC
IBASE_PRP_WM_SYNC
IBASE_PRP_ACCESS_MODE
IBASE_PRP_AM_READONLY
IBASE_PRP_AM_READWRITE
IBASE_PRP_SET_SQL_DIALECT
IBASE_PRP_ACTIVATE
IBASE_PRP_DB_ONLINE
IBASE_RPR_CHECK_DB
IBASE_RPR_IGNORE_CHECKSUM
IBASE_RPR_KILL_SHADOWS
IBASE_RPR_MEND_DB
IBASE_RPR_VALIDATE_DB
IBASE_RPR_FULL
IBASE_RPR_SWEEP_DB
Options to ibase_maintain_db()
IBASE_STS_DATA_PAGES
IBASE_STS_DB_LOG
IBASE_STS_HDR_PAGES
IBASE_STS_IDX_PAGES
IBASE_STS_SYS_RELATIONS
Options to ibase_db_info()
IBASE_SVC_SERVER_VERSION
Options to ibase_server_info()
IBASE_SVC_IMPLEMENTATION
Options to ibase_server_info()
IBASE_SVC_GET_ENV
Options to ibase_server_info()
IBASE_SVC_GET_ENV_LOCK
IBASE_SVC_GET_ENV_MSG
IBASE_SVC_USER_DBPATH
IBASE_SVC_SVR_DB_INFO
IBASE_SVC_GET_USERS
Options to ibase_server_info()


Firebird/InterBase Funktionen

Inhaltsverzeichnis

  • fbird_add_user — Alias von ibase_add_user
  • fbird_affected_rows — Alias von ibase_affected_rows
  • fbird_backup — Alias von ibase_backup
  • fbird_blob_add — Alias von ibase_blob_add
  • fbird_blob_cancel — Cancel creating blob
  • fbird_blob_close — Alias von ibase_blob_close
  • fbird_blob_create — Alias von ibase_blob_create
  • fbird_blob_echo — Alias von ibase_blob_echo
  • fbird_blob_get — Alias von ibase_blob_get
  • fbird_blob_import — Alias von ibase_blob_import
  • fbird_blob_info — Alias von ibase_blob_info
  • fbird_blob_open — Alias von ibase_blob_open
  • fbird_close — Alias von ibase_close
  • fbird_commit_ret — Alias von ibase_commit_ret
  • fbird_commit — Alias von ibase_commit
  • fbird_connect — Alias von ibase_connect
  • fbird_db_info — Alias von ibase_db_info
  • fbird_delete_user — Alias von ibase_delete_user
  • fbird_drop_db — Alias von ibase_drop_db
  • fbird_errcode — Alias von ibase_errcode
  • fbird_errmsg — Alias von ibase_errmsg
  • fbird_execute — Alias von ibase_execute
  • fbird_fetch_assoc — Alias von ibase_fetch_assoc
  • fbird_fetch_object — Alias von ibase_fetch_object
  • fbird_fetch_row — Alias von ibase_fetch_row
  • fbird_field_info — Alias von ibase_field_info
  • fbird_free_event_handler — Alias von ibase_free_event_handler
  • fbird_free_query — Alias von ibase_free_query
  • fbird_free_result — Alias von ibase_free_result
  • fbird_gen_id — Alias von ibase_gen_id
  • fbird_maintain_db — Alias von ibase_maintain_db
  • fbird_modify_user — Alias von ibase_modify_user
  • fbird_name_result — Alias von ibase_name_result
  • fbird_num_fields — Alias von ibase_num_fields
  • fbird_num_params — Alias von ibase_num_params
  • fbird_param_info — Alias von ibase_param_info
  • fbird_pconnect — Alias von ibase_pconnect
  • fbird_prepare — Alias von ibase_prepare
  • fbird_query — Alias von ibase_query
  • fbird_restore — Alias von ibase_restore
  • fbird_rollback_ret — Alias von ibase_rollback_ret
  • fbird_rollback — Alias von ibase_rollback
  • fbird_server_info — Alias von ibase_server_info
  • fbird_service_attach — Alias von ibase_service_attach
  • fbird_service_detach — Alias von ibase_service_detach
  • fbird_set_event_handler — Alias von ibase_set_event_handler
  • fbird_trans — Alias von ibase_trans
  • fbird_wait_event — Alias von ibase_wait_event
  • ibase_add_user — Fügt einen Benutzer zu einer Security-Datenbank hinzu
  • ibase_affected_rows — Gibt die Anzahl der Zeilen zurück, die von der vorherigen Abfrage betroffen waren
  • ibase_backup — Initiiert eine Sicherungsaufgabe im Service Manager und springt sofort zurück
  • ibase_blob_add — Fügt Daten in ein neues BLOB ein
  • ibase_blob_cancel — Bricht die Erstellung eines neuen BLOBs ab.
  • ibase_blob_close — BLOB schließen
  • ibase_blob_create — Erstellt ein neues BLOB zum Hinzufügen von Daten
  • ibase_blob_echo — Ausgabe von BLOB-Inhalten an den Browser
  • ibase_blob_get — Holt sich len Bytes Daten aus dem offenen BLOB
  • ibase_blob_import — Erstellt ein BLOB, kopiert die Dateidaten hinein und schließt es
  • ibase_blob_info — Gibt die Blob-Länge und andere nützliche Informationen zurück
  • ibase_blob_open — BLOB zum Abrufen von Datenteilen öffnen
  • ibase_close — Schließt eine Verbindung zu einer InterBase-Datenbank
  • ibase_commit_ret — Schreibt eine Transaktion fest, ohne diese zu schließen
  • ibase_commit — Schreibt eine Transaktion fest
  • ibase_connect — Öffnet eine Verbindung zu einer Datenbank
  • ibase_db_info — Fragt statistische Daten über eine Datenbank ab
  • ibase_delete_user — Löscht einen Benutzer aus einer Security-Datenbank
  • ibase_drop_db — Löscht eine Datenbank
  • ibase_errcode — Gibt einen Fehlercode zurück
  • ibase_errmsg — Gibt eine Fehlermeldung zurück
  • ibase_execute — Ausführen einer vorbereiteten Abfrage
  • ibase_fetch_assoc — Ruft eine Ergebniszeile aus einer Abfrage als assoziatives Array ab
  • ibase_fetch_object — Liest einen Datensatz einer InterBase-Datenbank als Objekt ein
  • ibase_fetch_row — Ruft eine Zeile aus einer InterBase-Datenbank ab
  • ibase_field_info — Ruft Informationen zu einem Feld ab
  • ibase_free_event_handler — Bricht einen registrierten Ereignishandler ab
  • ibase_free_query — Gibt den Speicher einer vorbereiteten Abfrage wieder frei
  • ibase_free_result — Gibt eine Ergebnismenge frei
  • ibase_gen_id — Inkrementiert den benannten Generator und gibt dessen neuen Wert zurück
  • ibase_maintain_db — Führt einen Wartungsbefehl auf dem Datenbankserver aus
  • ibase_modify_user — Ändert den Benutzer einer Security-Datenbank
  • ibase_name_result — Weist einer Ergebnismenge einen Namen zu
  • ibase_num_fields — Ermittelt die Anzahl der Felder einer Ergebnismenge
  • ibase_num_params — Gibt die Anzahl der Parameter in einer vorbereiteten Abfrage zurück
  • ibase_param_info — Gibt Informationen zu einem Parameter in einer vorbereiteten Abfrage zurück
  • ibase_pconnect — Öffnet eine persistente Verbindung zu einer InterBase-Datenbank
  • ibase_prepare — Bereitet eine Abfrage für späteres Binden der Parameter-Platzhalter und Ausführung vor
  • ibase_query — Führt eine Abfrage auf einer InterBase Datenbank aus
  • ibase_restore — Leitet eine Wiederherstellungsaufgabe im Service Manager ein und kehrt sofort zurück
  • ibase_rollback_ret — Macht eine Transaktion rückgängig, ohne diese zu schließen
  • ibase_rollback — Macht eine Transaktion rückgängig
  • ibase_server_info — Informationen zu einem Datenbankserver anfordern
  • ibase_service_attach — Verbindet zum Service-Manager
  • ibase_service_detach — Trennt die Verbindung zum Service-Manager
  • ibase_set_event_handler — Registriert eine Rückruffunktion, die aufgerufen werden soll, wenn Ereignisse auftreten
  • ibase_trans — Startet eine Transaktion
  • ibase_wait_event — Wartet, bis ein Ereignis von der Datenbank veröffentlicht wurde


Alias von ibase_add_user

  • « Firebird/InterBase Funktionen
  • fbird_affected_rows »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_add_user

fbird_add_user

(PHP 5, PHP 7 < 7.4.0)

fbird_add_user — Alias von ibase_add_user()

Beschreibung

Diese Funktion ist ein Alias für: ibase_add_user().

Siehe auch

  • fbird_modify_user() - Alias von ibase_modify_user
  • fbird_delete_user() - Alias von ibase_delete_user


Alias von ibase_affected_rows

  • « fbird_add_user
  • fbird_backup »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_affected_rows

fbird_affected_rows

(PHP 5, PHP 7 < 7.4.0)

fbird_affected_rows — Alias von ibase_affected_rows()

Beschreibung

Diese Funktion ist ein Alias für: ibase_affected_rows().

Siehe auch

  • fbird_query() - Alias von ibase_query
  • fbird_execute() - Alias von ibase_execute


Alias von ibase_backup

  • « fbird_affected_rows
  • fbird_blob_add »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_backup

fbird_backup

(PHP 5, PHP 7 < 7.4.0)

fbird_backup — Alias von ibase_backup()

Beschreibung

Diese Funktion ist ein Alias für: ibase_backup().


Alias von ibase_blob_add

  • « fbird_backup
  • fbird_blob_cancel »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_blob_add

fbird_blob_add

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_add — Alias von ibase_blob_add()

Beschreibung

Diese Funktion ist ein Alias für: ibase_blob_add().

Siehe auch

  • fbird_blob_cancel() - Cancel creating blob
  • fbird_blob_close() - Alias von ibase_blob_close
  • fbird_blob_create() - Alias von ibase_blob_create
  • fbird_blob_import() - Alias von ibase_blob_import


Cancel creating blob

  • « fbird_blob_add
  • fbird_blob_close »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Cancel creating blob

fbird_blob_cancel

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_cancel — Cancel creating blob

Beschreibung

fbird_blob_cancel ( resource $blob_handle ) : bool

This function will discard a BLOB if it has not yet been closed by fbird_blob_close().

Parameter-Liste

blob_handle

A BLOB handle opened with fbird_blob_create().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fbird_blob_close() - Alias von ibase_blob_close
  • fbird_blob_create() - Alias von ibase_blob_create
  • fbird_blob_import() - Alias von ibase_blob_import


Alias von ibase_blob_close

  • « fbird_blob_cancel
  • fbird_blob_create »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_blob_close

fbird_blob_close

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_close — Alias von ibase_blob_close()

Beschreibung

Diese Funktion ist ein Alias für: ibase_blob_close().

Siehe auch

  • fbird_blob_create() - Alias von ibase_blob_create
  • fbird_blob_cancel() - Cancel creating blob
  • fbird_blob_open() - Alias von ibase_blob_open
  • fbird_blob_import() - Alias von ibase_blob_import


Alias von ibase_blob_create

  • « fbird_blob_close
  • fbird_blob_echo »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_blob_create

fbird_blob_create

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_create — Alias von ibase_blob_create()

Beschreibung

Diese Funktion ist ein Alias für: ibase_blob_create().

Siehe auch

  • fbird_blob_add() - Alias von ibase_blob_add
  • fbird_blob_cancel() - Cancel creating blob
  • fbird_blob_close() - Alias von ibase_blob_close
  • fbird_blob_import() - Alias von ibase_blob_import


Alias von ibase_blob_echo

  • « fbird_blob_create
  • fbird_blob_get »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_blob_echo

fbird_blob_echo

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_echo — Alias von ibase_blob_echo()

Beschreibung

Diese Funktion ist ein Alias für: ibase_blob_echo().

Siehe auch

  • fbird_blob_open() - Alias von ibase_blob_open
  • fbird_blob_close() - Alias von ibase_blob_close
  • fbird_blob_get() - Alias von ibase_blob_get


Alias von ibase_blob_get

  • « fbird_blob_echo
  • fbird_blob_import »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_blob_get

fbird_blob_get

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_get — Alias von ibase_blob_get()

Beschreibung

Diese Funktion ist ein Alias für: ibase_blob_get().

Siehe auch

  • fbird_blob_open() - Alias von ibase_blob_open
  • fbird_blob_close() - Alias von ibase_blob_close
  • fbird_blob_echo() - Alias von ibase_blob_echo


Alias von ibase_blob_import

  • « fbird_blob_get
  • fbird_blob_info »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_blob_import

fbird_blob_import

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_import — Alias von ibase_blob_import()

Beschreibung

Diese Funktion ist ein Alias für: ibase_blob_import().

Siehe auch

  • fbird_blob_add() - Alias von ibase_blob_add
  • fbird_blob_cancel() - Cancel creating blob
  • fbird_blob_close() - Alias von ibase_blob_close
  • fbird_blob_create() - Alias von ibase_blob_create


Alias von ibase_blob_info

  • « fbird_blob_import
  • fbird_blob_open »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_blob_info

fbird_blob_info

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_info — Alias von ibase_blob_info()

Beschreibung

Diese Funktion ist ein Alias für: ibase_blob_info().


Alias von ibase_blob_open

  • « fbird_blob_info
  • fbird_close »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_blob_open

fbird_blob_open

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_open — Alias von ibase_blob_open()

Beschreibung

Diese Funktion ist ein Alias für: ibase_blob_open().

Siehe auch

  • fbird_blob_close() - Alias von ibase_blob_close
  • fbird_blob_echo() - Alias von ibase_blob_echo
  • fbird_blob_get() - Alias von ibase_blob_get


Alias von ibase_close

  • « fbird_blob_open
  • fbird_commit_ret »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_close

fbird_close

(PHP 5, PHP 7 < 7.4.0)

fbird_close — Alias von ibase_close()

Beschreibung

Diese Funktion ist ein Alias für: ibase_close().

Siehe auch

  • fbird_connect() - Alias von ibase_connect
  • fbird_pconnect() - Alias von ibase_pconnect


Alias von ibase_commit_ret

  • « fbird_close
  • fbird_commit »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_commit_ret

fbird_commit_ret

(PHP 5, PHP 7 < 7.4.0)

fbird_commit_ret — Alias von ibase_commit_ret()

Beschreibung

Diese Funktion ist ein Alias für: ibase_commit_ret().


Alias von ibase_commit

  • « fbird_commit_ret
  • fbird_connect »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_commit

fbird_commit

(PHP 5, PHP 7 < 7.4.0)

fbird_commit — Alias von ibase_commit()

Beschreibung

Diese Funktion ist ein Alias für: ibase_commit().


Alias von ibase_connect

  • « fbird_commit
  • fbird_db_info »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_connect

fbird_connect

(PHP 5, PHP 7 < 7.4.0)

fbird_connect — Alias von ibase_connect()

Beschreibung

Diese Funktion ist ein Alias für: ibase_connect().

Siehe auch

  • fbird_pconnect() - Alias von ibase_pconnect
  • fbird_close() - Alias von ibase_close


Alias von ibase_db_info

  • « fbird_connect
  • fbird_delete_user »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_db_info

fbird_db_info

(PHP 5, PHP 7 < 7.4.0)

fbird_db_info — Alias von ibase_db_info()

Beschreibung

Diese Funktion ist ein Alias für: ibase_db_info().


Alias von ibase_delete_user

  • « fbird_db_info
  • fbird_drop_db »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_delete_user

fbird_delete_user

(PHP 5, PHP 7 < 7.4.0)

fbird_delete_user — Alias von ibase_delete_user()

Beschreibung

Diese Funktion ist ein Alias für: ibase_delete_user().

Siehe auch

  • fbird_add_user() - Alias von ibase_add_user
  • fbird_modify_user() - Alias von ibase_modify_user


Alias von ibase_drop_db

  • « fbird_delete_user
  • fbird_errcode »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_drop_db

fbird_drop_db

(PHP 5, PHP 7 < 7.4.0)

fbird_drop_db — Alias von ibase_drop_db()

Beschreibung

Diese Funktion ist ein Alias für: ibase_drop_db().

Siehe auch

  • fbird_connect() - Alias von ibase_connect
  • fbird_pconnect() - Alias von ibase_pconnect


Alias von ibase_errcode

  • « fbird_drop_db
  • fbird_errmsg »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_errcode

fbird_errcode

(PHP 5, PHP 7 < 7.4.0)

fbird_errcode — Alias von ibase_errcode()

Beschreibung

Diese Funktion ist ein Alias für: ibase_errcode().

Siehe auch

  • fbird_errmsg() - Alias von ibase_errmsg


Alias von ibase_errmsg

  • « fbird_errcode
  • fbird_execute »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_errmsg

fbird_errmsg

(PHP 5, PHP 7 < 7.4.0)

fbird_errmsg — Alias von ibase_errmsg()

Beschreibung

Diese Funktion ist ein Alias für: ibase_errmsg().

Siehe auch

  • fbird_errcode() - Alias von ibase_errcode


Alias von ibase_execute

  • « fbird_errmsg
  • fbird_fetch_assoc »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_execute

fbird_execute

(PHP 5, PHP 7 < 7.4.0)

fbird_execute — Alias von ibase_execute()

Beschreibung

Diese Funktion ist ein Alias für: ibase_execute().

Siehe auch

  • fbird_query() - Alias von ibase_query


Alias von ibase_fetch_assoc

  • « fbird_execute
  • fbird_fetch_object »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_fetch_assoc

fbird_fetch_assoc

(PHP 5, PHP 7 < 7.4.0)

fbird_fetch_assoc — Alias von ibase_fetch_assoc()

Beschreibung

Diese Funktion ist ein Alias für: ibase_fetch_assoc().

Siehe auch

  • fbird_fetch_row() - Alias von ibase_fetch_row
  • fbird_fetch_object() - Alias von ibase_fetch_object


Alias von ibase_fetch_object

  • « fbird_fetch_assoc
  • fbird_fetch_row »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_fetch_object

fbird_fetch_object

(PHP 5, PHP 7 < 7.4.0)

fbird_fetch_object — Alias von ibase_fetch_object()

Beschreibung

Diese Funktion ist ein Alias für: ibase_fetch_object().

Siehe auch

  • fbird_fetch_row() - Alias von ibase_fetch_row
  • fbird_fetch_assoc() - Alias von ibase_fetch_assoc


Alias von ibase_fetch_row

  • « fbird_fetch_object
  • fbird_field_info »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_fetch_row

fbird_fetch_row

(PHP 5, PHP 7 < 7.4.0)

fbird_fetch_row — Alias von ibase_fetch_row()

Beschreibung

Diese Funktion ist ein Alias für: ibase_fetch_row().

Siehe auch

  • fbird_fetch_assoc() - Alias von ibase_fetch_assoc
  • fbird_fetch_object() - Alias von ibase_fetch_object


Alias von ibase_field_info

  • « fbird_fetch_row
  • fbird_free_event_handler »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_field_info

fbird_field_info

(PHP 5, PHP 7 < 7.4.0)

fbird_field_info — Alias von ibase_field_info()

Beschreibung

Diese Funktion ist ein Alias für: ibase_field_info().

Siehe auch

  • fbird_num_fields() - Alias von ibase_num_fields


Alias von ibase_free_event_handler

  • « fbird_field_info
  • fbird_free_query »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_free_event_handler

fbird_free_event_handler

(PHP 5, PHP 7 < 7.4.0)

fbird_free_event_handler — Alias von ibase_free_event_handler()

Beschreibung

Diese Funktion ist ein Alias für: ibase_free_event_handler().

Siehe auch

  • fbird_set_event_handler() - Alias von ibase_set_event_handler


Alias von ibase_free_query

  • « fbird_free_event_handler
  • fbird_free_result »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_free_query

fbird_free_query

(PHP 5, PHP 7 < 7.4.0)

fbird_free_query — Alias von ibase_free_query()

Beschreibung

Diese Funktion ist ein Alias für: ibase_free_query().


Alias von ibase_free_result

  • « fbird_free_query
  • fbird_gen_id »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_free_result

fbird_free_result

(PHP 5, PHP 7 < 7.4.0)

fbird_free_result — Alias von ibase_free_result()

Beschreibung

Diese Funktion ist ein Alias für: ibase_free_result().


Alias von ibase_gen_id

  • « fbird_free_result
  • fbird_maintain_db »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_gen_id

fbird_gen_id

(PHP 5, PHP 7 < 7.4.0)

fbird_gen_id — Alias von ibase_gen_id()

Beschreibung

Diese Funktion ist ein Alias für: ibase_gen_id().


Alias von ibase_maintain_db

  • « fbird_gen_id
  • fbird_modify_user »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_maintain_db

fbird_maintain_db

(PHP 5, PHP 7 < 7.4.0)

fbird_maintain_db — Alias von ibase_maintain_db()

Beschreibung

Diese Funktion ist ein Alias für: ibase_maintain_db().


Alias von ibase_modify_user

  • « fbird_maintain_db
  • fbird_name_result »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_modify_user

fbird_modify_user

(PHP 5, PHP 7 < 7.4.0)

fbird_modify_user — Alias von ibase_modify_user()

Beschreibung

Diese Funktion ist ein Alias für: ibase_modify_user().

Siehe auch

  • fbird_add_user() - Alias von ibase_add_user
  • fbird_delete_user() - Alias von ibase_delete_user


Alias von ibase_name_result

  • « fbird_modify_user
  • fbird_num_fields »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_name_result

fbird_name_result

(PHP 5, PHP 7 < 7.4.0)

fbird_name_result — Alias von ibase_name_result()

Beschreibung

Diese Funktion ist ein Alias für: ibase_name_result().

Siehe auch

  • fbird_prepare() - Alias von ibase_prepare
  • fbird_execute() - Alias von ibase_execute


Alias von ibase_num_fields

  • « fbird_name_result
  • fbird_num_params »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_num_fields

fbird_num_fields

(PHP 5, PHP 7 < 7.4.0)

fbird_num_fields — Alias von ibase_num_fields()

Beschreibung

Diese Funktion ist ein Alias für: ibase_num_fields().

Siehe auch

  • fbird_field_info() - Alias von ibase_field_info


Alias von ibase_num_params

  • « fbird_num_fields
  • fbird_param_info »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_num_params

fbird_num_params

(PHP 5, PHP 7 < 7.4.0)

fbird_num_params — Alias von ibase_num_params()

Beschreibung

Diese Funktion ist ein Alias für: ibase_num_params().

Siehe auch

  • fbird_prepare() - Alias von ibase_prepare
  • fbird_param_info() - Alias von ibase_param_info


Alias von ibase_param_info

  • « fbird_num_params
  • fbird_pconnect »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_param_info

fbird_param_info

(PHP 5, PHP 7 < 7.4.0)

fbird_param_info — Alias von ibase_param_info()

Beschreibung

Diese Funktion ist ein Alias für: ibase_param_info().

Siehe auch

  • fbird_field_info() - Alias von ibase_field_info
  • fbird_num_params() - Alias von ibase_num_params


Alias von ibase_pconnect

  • « fbird_param_info
  • fbird_prepare »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_pconnect

fbird_pconnect

(PHP 5, PHP 7 < 7.4.0)

fbird_pconnect — Alias von ibase_pconnect()

Beschreibung

Diese Funktion ist ein Alias für: ibase_pconnect().

Siehe auch

  • fbird_close() - Alias von ibase_close
  • fbird_connect() - Alias von ibase_connect


Alias von ibase_prepare

  • « fbird_pconnect
  • fbird_query »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_prepare

fbird_prepare

(PHP 5, PHP 7 < 7.4.0)

fbird_prepare — Alias von ibase_prepare()

Beschreibung

Diese Funktion ist ein Alias für: ibase_prepare().


Alias von ibase_query

  • « fbird_prepare
  • fbird_restore »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_query

fbird_query

(PHP 5, PHP 7 < 7.4.0)

fbird_query — Alias von ibase_query()

Beschreibung

Diese Funktion ist ein Alias für: ibase_query().

Siehe auch

  • fbird_errmsg() - Alias von ibase_errmsg
  • fbird_fetch_row() - Alias von ibase_fetch_row
  • fbird_fetch_object() - Alias von ibase_fetch_object
  • fbird_free_result() - Alias von ibase_free_result


Alias von ibase_restore

  • « fbird_query
  • fbird_rollback_ret »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_restore

fbird_restore

(PHP 5, PHP 7 < 7.4.0)

fbird_restore — Alias von ibase_restore()

Beschreibung

Diese Funktion ist ein Alias für: ibase_restore().


Alias von ibase_rollback_ret

  • « fbird_restore
  • fbird_rollback »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_rollback_ret

fbird_rollback_ret

(PHP 5, PHP 7 < 7.4.0)

fbird_rollback_ret — Alias von ibase_rollback_ret()

Beschreibung

Diese Funktion ist ein Alias für: ibase_rollback_ret().


Alias von ibase_rollback

  • « fbird_rollback_ret
  • fbird_server_info »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_rollback

fbird_rollback

(PHP 5, PHP 7 < 7.4.0)

fbird_rollback — Alias von ibase_rollback()

Beschreibung

Diese Funktion ist ein Alias für: ibase_rollback().


Alias von ibase_server_info

  • « fbird_rollback
  • fbird_service_attach »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_server_info

fbird_server_info

(PHP 5, PHP 7 < 7.4.0)

fbird_server_info — Alias von ibase_server_info()

Beschreibung

Diese Funktion ist ein Alias für: ibase_server_info().


Alias von ibase_service_attach

  • « fbird_server_info
  • fbird_service_detach »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_service_attach

fbird_service_attach

(PHP 5, PHP 7 < 7.4.0)

fbird_service_attach — Alias von ibase_service_attach()

Beschreibung

Diese Funktion ist ein Alias für: ibase_service_attach().


Alias von ibase_service_detach

  • « fbird_service_attach
  • fbird_set_event_handler »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_service_detach

fbird_service_detach

(PHP 5, PHP 7 < 7.4.0)

fbird_service_detach — Alias von ibase_service_detach()

Beschreibung

Diese Funktion ist ein Alias für: ibase_service_detach().


Alias von ibase_set_event_handler

  • « fbird_service_detach
  • fbird_trans »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_set_event_handler

fbird_set_event_handler

(PHP 5, PHP 7 < 7.4.0)

fbird_set_event_handler — Alias von ibase_set_event_handler()

Beschreibung

Diese Funktion ist ein Alias für: ibase_set_event_handler().

Siehe auch

  • fbird_free_event_handler() - Alias von ibase_free_event_handler
  • fbird_wait_event() - Alias von ibase_wait_event


Alias von ibase_trans

  • « fbird_set_event_handler
  • fbird_wait_event »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_trans

fbird_trans

(PHP 5, PHP 7 < 7.4.0)

fbird_trans — Alias von ibase_trans()

Beschreibung

Diese Funktion ist ein Alias für: ibase_trans().


Alias von ibase_wait_event

  • « fbird_trans
  • ibase_add_user »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Alias von ibase_wait_event

fbird_wait_event

(PHP 5, PHP 7 < 7.4.0)

fbird_wait_event — Alias von ibase_wait_event()

Beschreibung

Diese Funktion ist ein Alias für: ibase_wait_event().

Siehe auch

  • fbird_set_event_handler() - Alias von ibase_set_event_handler
  • fbird_free_event_handler() - Alias von ibase_free_event_handler


Fügt einen Benutzer zu einer Security-Datenbank hinzu

  • « fbird_wait_event
  • ibase_affected_rows »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Fügt einen Benutzer zu einer Security-Datenbank hinzu

ibase_add_user

(PHP 5, PHP 7 < 7.4.0)

ibase_add_user — Fügt einen Benutzer zu einer Security-Datenbank hinzu

Beschreibung

ibase_add_user ( resource $service_handle , string $user_name , string $password , string $first_name = ? , string $middle_name = ? , string $last_name = ? ) : bool

Parameter-Liste

service_handle

Das Handle für den Datenbankserverdienst.

user_name

Der Anmeldename des neuen Datenbankbenutzers.

password

Das Kennwort des neuen Benutzers.

first_name

Der Vorname des neuen Benutzers.

middle_name

Der zweite Vorname des neuen Datenbankbenutzers.

last_name

Der Nachname des neuen Datenbankbenutzers.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ibase_modify_user() - Ändert den Benutzer einer Security-Datenbank
  • ibase_delete_user() - Löscht einen Benutzer aus einer Security-Datenbank


Gibt die Anzahl der Zeilen zurück, die von der vorherigen Abfrage betroffen waren

  • « ibase_add_user
  • ibase_backup »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Gibt die Anzahl der Zeilen zurück, die von der vorherigen Abfrage betroffen waren

ibase_affected_rows

(PHP 5, PHP 7 < 7.4.0)

ibase_affected_rows — Gibt die Anzahl der Zeilen zurück, die von der vorherigen Abfrage betroffen waren

Beschreibung

ibase_affected_rows ( resource $link_identifier = ? ) : int

Diese Funktion gibt die Anzahl der Zeilen zurück, die von der vorherigen Abfrage (INSERT, UPDATE oder DELETE) betroffen waren, welche im angegebenen Transaktionskontext ausgeführt wurde.

Parameter-Liste

link_identifier

Ein Transaktionskontext. Wenn link_identifier eine Verbindungsressource ist, wird die Standardtransaktion verwendet.

Rückgabewerte

Gibt die Anzahl der Zeilen als Ganzzahl zurück.

Siehe auch

  • ibase_query() - Führt eine Abfrage auf einer InterBase Datenbank aus
  • ibase_execute() - Ausführen einer vorbereiteten Abfrage


Initiiert eine Sicherungsaufgabe im Service Manager und springt sofort zurück

  • « ibase_affected_rows
  • ibase_blob_add »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Initiiert eine Sicherungsaufgabe im Service Manager und springt sofort zurück

ibase_backup

(PHP 5, PHP 7 < 7.4.0)

ibase_backup — Initiiert eine Sicherungsaufgabe im Service Manager und springt sofort zurück

Beschreibung

ibase_backup ( resource $service_handle , string $source_db , string $dest_file , int $options = 0 , bool $verbose = false ) : mixed

Diese Funktion übergibt die Argumente an den (entfernten) Datenbankserver. Dort startet sie einen neuen Sicherungsvorgang. Deshalb erhalten Sie keine Antwort.

Parameter-Liste

service_handle

Eine zuvor geöffnete Verbindung zum Datenbankserver.

source_db

Der absolute Dateipfad zur Datenbank auf dem Datenbankserver. Sie können auch einen Datenbankalias verwenden.

dest_file

Der Pfad zur Sicherungsdatei auf dem Datenbankserver.

options

Zusätzliche Optionen, die zur Sicherung an den Datenbankserver übergeben werden. Der Parameter options darf eine Kombination folgender Konstanten sein: IBASE_BKP_IGNORE_CHECKSUMS, IBASE_BKP_IGNORE_LIMBO, IBASE_BKP_METADATA_ONLY, IBASE_BKP_NO_GARBAGE_COLLECT, IBASE_BKP_OLD_DESCRIPTIONS, IBASE_BKP_NON_TRANSPORTABLE or IBASE_BKP_CONVERT. Vgl. auch den Abschnitt Vordefinierte Konstanten.

verbose

Da der Sicherungsvorgang auf dem Datenbankserver ausgeführt wird, haben Sie keine Chance, die Ausgabe abzurufen. Dieses Argument ist sinnlos.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Da der Sicherungsvorgang auf dem (Remote-) Server durchgeführt wird, übergibt diese Funktion nur die Argumente an diesen. Solange die Argumente gültig sind, werden Sie niemals false zurückbekommen.

Beispiele

Beispiel #1 ibase_backup()-Beispiel

<?php

// Mit Datenbankserver mittels IP-Adresse und Port verbinden
$service = ibase_service_attach ('10.1.11.200/3050', 'sysdba', 'masterkey');

// Sicherungsvorgang auf DB-Server starten
// Sichern der Mitarbeiterdatenbank unter Verwendung des vollständigen Pfads nach /srv/backup/employees.fbk
// Keine speziellen Paramter verwenden
ibase_backup($service, '/srv/firebird/employees.fdb', '/srv/backup/employees.fbk');

// Verbindung wieder freigeben
ibase_service_detach ($service);
?>

Beispiel #2 ibase_backup()-Beispiel mit Argumenten

<?php

// Stelle eine Verbindung zum Datenbankserver mit Namen und Standardport her
$service = ibase_service_attach ('fb-server.contoso.local', 'sysdba', 'masterkey');

// Sicherungsvorgang auf Datenbankserver starten
// Sichern der Mitarbeiterdatenbank mittels Alias nach /srv/backup/employees.fbk.
// Nur die Metadaten sichern. Kein transportables Backup erstellen.
ibase_backup($service, 'employees.fdb', '/srv/backup/employees.fbk', IBASE_BKP_METADATA_ONLY | IBASE_BKP_NON_TRANSPORTABLE);

// Verbindung wieder freigeben
ibase_service_detach ($service);
?>

Siehe auch

  • ibase_restore() - Leitet eine Wiederherstellungsaufgabe im Service Manager ein und kehrt sofort zurück


Fügt Daten in ein neues BLOB ein

  • « ibase_backup
  • ibase_blob_cancel »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Fügt Daten in ein neues BLOB ein

ibase_blob_add

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_add — Fügt Daten in ein neues BLOB ein

Beschreibung

ibase_blob_add ( resource $blob_handle , string $data ) : void

ibase_blob_add() fügt Daten zu einem mittels ibase_blob_create() erstellten BLOB hinzu.

Parameter-Liste

blob_handle

Ein BLOB-Handle, das mit ibase_blob_create() geöffnet wurde.

data

Die einzufügenden Daten

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ibase_blob_cancel() - Bricht die Erstellung eines neuen BLOBs ab.
  • ibase_blob_close() - BLOB schließen
  • ibase_blob_create() - Erstellt ein neues BLOB zum Hinzufügen von Daten
  • ibase_blob_import() - Erstellt ein BLOB, kopiert die Dateidaten hinein und schließt es


Bricht die Erstellung eines neuen BLOBs ab.

  • « ibase_blob_add
  • ibase_blob_close »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Bricht die Erstellung eines neuen BLOBs ab.

ibase_blob_cancel

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_cancel — Bricht die Erstellung eines neuen BLOBs ab.

Beschreibung

ibase_blob_cancel ( resource $blob_handle ) : bool

Diese Funktion löscht ein BLOB, wenn es noch nicht mittels ibase_blob_close() geschlossen wurde.

Parameter-Liste

blob_handle

Ein BLOB-Handle, das mit ibase_blob_create() geöffnet wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ibase_blob_close() - BLOB schließen
  • ibase_blob_create() - Erstellt ein neues BLOB zum Hinzufügen von Daten
  • ibase_blob_import() - Erstellt ein BLOB, kopiert die Dateidaten hinein und schließt es


BLOB schließen

  • « ibase_blob_cancel
  • ibase_blob_create »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • BLOB schließen

ibase_blob_close

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_close — BLOB schließen

Beschreibung

ibase_blob_close ( resource $blob_handle ) : mixed

Diese Funktion schließt einen BLOB, das entweder mittels ibase_blob_open() zum Lesen geöffnet wurde oder mit ibase_blob_create() zum Schreiben.

Parameter-Liste

blob_handle

Ein BLOB-Handle, das mit ibase_blob_create() oder ibase_blob_open() geöffnet wurde.

Rückgabewerte

Wenn das BLOB gelesen wurde, gibt diese Funktion true zurück. Wenn das BLOB erfolgreich geschrieben wurde, gibt diese Funktion eine Zeichenfolge zurück, die die BLOB-ID enthält, die ihr von der Datenbank zugewiesen wurde. Bei einem Fehler gibt diese Funktion false zurück.

Siehe auch

  • ibase_blob_cancel() - Bricht die Erstellung eines neuen BLOBs ab.
  • ibase_blob_open() - BLOB zum Abrufen von Datenteilen öffnen


Erstellt ein neues BLOB zum Hinzufügen von Daten

  • « ibase_blob_close
  • ibase_blob_echo »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Erstellt ein neues BLOB zum Hinzufügen von Daten

ibase_blob_create

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_create — Erstellt ein neues BLOB zum Hinzufügen von Daten

Beschreibung

ibase_blob_create ( resource $link_identifier = null ) : resource

ibase_blob_create() erstellt ein neues BLOB, um dies mit Daten zu füllen.

Parameter-Liste

link_identifier

Eine InterBase/Firebird-Verbindungskennung. Wenn nicht angegeben, wird der zuletzt geöffnete Link angenommen.

Rückgabewerte

Gibt ein BLOB-Handle zur späteren Verwendung mit ibase_blob_add() zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ibase_blob_add() - Fügt Daten in ein neues BLOB ein
  • ibase_blob_cancel() - Bricht die Erstellung eines neuen BLOBs ab.
  • ibase_blob_close() - BLOB schließen
  • ibase_blob_import() - Erstellt ein BLOB, kopiert die Dateidaten hinein und schließt es


Ausgabe von BLOB-Inhalten an den Browser

  • « ibase_blob_create
  • ibase_blob_get »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Ausgabe von BLOB-Inhalten an den Browser

ibase_blob_echo

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_echo — Ausgabe von BLOB-Inhalten an den Browser

Beschreibung

ibase_blob_echo ( string $blob_id ) : bool
ibase_blob_echo ( resource $link_identifier , string $blob_id ) : bool

Diese Funktion öffnet ein BLOB zum Lesen und sendet seinen Inhalt direkt an die Standardausgabe (in den meisten Fällen den Browser).

Parameter-Liste

link_identifier

Eine InterBase/Firebird-Verbindungskennung. Wenn nicht angegeben, wird der zuletzt geöffnete Link angenommen.

blob_id

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ibase_blob_open() - BLOB zum Abrufen von Datenteilen öffnen
  • ibase_blob_close() - BLOB schließen
  • ibase_blob_get() - Holt sich len Bytes Daten aus dem offenen BLOB


Holt sich len Bytes Daten aus dem offenen BLOB

  • « ibase_blob_echo
  • ibase_blob_import »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Holt sich len Bytes Daten aus dem offenen BLOB

ibase_blob_get

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_get — Holt sich len Bytes Daten aus dem offenen BLOB

Beschreibung

ibase_blob_get ( resource $blob_handle , int $len ) : string

Diese Funktion gibt höchstens len Bytes von einem BLOB zurück, das zum Lesen mittels ibase_blob_open() geöffnet wurde.

Hinweis:

Aus einem BLOB, das zum Schreiben mittels ibase_blob_create() geöffnet wurde, kann nicht gelesen werden.

Parameter-Liste

blob_handle

Ein BLOB-Handle, das mit ibase_blob_open() geöffnet wurde.

len

Größe der zurückgegebenen Daten.

Rückgabewerte

Gibt maximal len Bytes aus dem BLOB zurück, oder false bei einem Fehler.

Beispiele

Beispiel #1 ibase_blob_get()-Beispiel

<?php
$result    = ibase_query("SELECT blob_value FROM table");
$data      = ibase_fetch_object($result);
$blob_data = ibase_blob_info($data->BLOB_VALUE);
$blob_hndl = ibase_blob_open($data->BLOB_VALUE);
echo         ibase_blob_get($blob_hndl, $blob_data[0]);
?>
Während dieses Beispiel nicht viel mehr kann als ein 'ibase_blob_echo($data->BLOB_VALUE)', zeigt es Ihnen, wie Sie Informationen in eine $Variable bekommen, die Sie nach Belieben manipulieren können.

Siehe auch

  • ibase_blob_open() - BLOB zum Abrufen von Datenteilen öffnen
  • ibase_blob_close() - BLOB schließen
  • ibase_blob_echo() - Ausgabe von BLOB-Inhalten an den Browser


Erstellt ein BLOB, kopiert die Dateidaten hinein und schließt es

  • « ibase_blob_get
  • ibase_blob_info »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Erstellt ein BLOB, kopiert die Dateidaten hinein und schließt es

ibase_blob_import

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_import — Erstellt ein BLOB, kopiert die Dateidaten hinein und schließt es

Beschreibung

ibase_blob_import ( resource $link_identifier , resource $file_handle ) : string
ibase_blob_import ( resource $file_handle ) : string

Diese Funktion erstellt ein BLOB, liest eine gesamte Datei ein, schließt sie und gibt die zugewiesene BLOB-ID zurück.

Parameter-Liste

link_identifier

Eine InterBase/Firebird-Verbindungskennung. Wenn nicht angegeben, wird der zuletzt geöffnete Link angenommen.

file_handle

Das Datei-Handle ist ein Handle, das mittels fopen() erstellt wurde.

Rückgabewerte

Gibt die BLOB-ID im Erfolgsfall zurück, oder false im Fehlerfall

Beispiele

Beispiel #1 ibase_blob_import()-Beispiel

<?php
$dbh = ibase_connect($host, $username, $password);
$filename = '/tmp/bar';

$fd = fopen($filename, 'r');
if ($fd) {

    $blob = ibase_blob_import($dbh, $fd);
    fclose($fd);

    if (!is_string($blob)) {
        // Import fehlgeschlagen
    } else {
        $query = "INSERT INTO foo (name, data) VALUES ('$filename', ?)";
        $prepared = ibase_prepare($dbh, $query);
        if (!ibase_execute($prepared, $blob)) {
            // Einfügen der Daten fehlgeschlagen
        }
    }
} else {
    // Öffnen der Datei nicht möglich
}
?>

Siehe auch

  • ibase_blob_add() - Fügt Daten in ein neues BLOB ein
  • ibase_blob_cancel() - Bricht die Erstellung eines neuen BLOBs ab.
  • ibase_blob_close() - BLOB schließen
  • ibase_blob_create() - Erstellt ein neues BLOB zum Hinzufügen von Daten


Gibt die Blob-Länge und andere nützliche Informationen zurück

  • « ibase_blob_import
  • ibase_blob_open »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Gibt die Blob-Länge und andere nützliche Informationen zurück

ibase_blob_info

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_info — Gibt die Blob-Länge und andere nützliche Informationen zurück

Beschreibung

ibase_blob_info ( resource $link_identifier , string $blob_id ) : array
ibase_blob_info ( string $blob_id ) : array

Gibt die Blob-Länge und andere nützliche Informationen zurück.

Parameter-Liste

link_identifier

Eine InterBase/Firebird-Verbindungskennung. Wenn nicht angegeben, wird der zuletzt geöffnete Link angenommen.

blob_id

Eine BLOB-ID.

Rückgabewerte

Gibt ein Array mit Informationen zu einem BLOB zurück. Die zurückgegebenen Informationen bestehen aus der Länge des BLOBs, der Anzahl der darin enthaltenen Segmente, der Größe des größten Segments und, ob es sich um ein Stream-BLOB oder ein segmentiertes BLOB handelt.


BLOB zum Abrufen von Datenteilen öffnen

  • « ibase_blob_info
  • ibase_close »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • BLOB zum Abrufen von Datenteilen öffnen

ibase_blob_open

(PHP 5, PHP 7 < 7.4.0)

ibase_blob_open — BLOB zum Abrufen von Datenteilen öffnen

Beschreibung

ibase_blob_open ( resource $link_identifier , string $blob_id ) : resource
ibase_blob_open ( string $blob_id ) : resource

Öffnet ein existentes BLOB zum Lesen

Parameter-Liste

link_identifier

Eine InterBase/Firebird-Verbindungskennung. Wenn nicht angegeben, wird der zuletzt geöffnete Link angenommen.

blob_id

Eine BLOB-ID.

Rückgabewerte

Gibt ein BLOB-Handle zur späteren Verwendung mit ibase_blob_get() zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ibase_blob_close() - BLOB schließen
  • ibase_blob_echo() - Ausgabe von BLOB-Inhalten an den Browser
  • ibase_blob_get() - Holt sich len Bytes Daten aus dem offenen BLOB


Schließt eine Verbindung zu einer InterBase-Datenbank

  • « ibase_blob_open
  • ibase_commit_ret »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Schließt eine Verbindung zu einer InterBase-Datenbank

ibase_close

(PHP 5, PHP 7 < 7.4.0)

ibase_close — Schließt eine Verbindung zu einer InterBase-Datenbank

Beschreibung

ibase_close ( resource $connection_id = null ) : bool

Beendet die Verbindung zu einer InterBase-DB, deren Verbindungs-ID mit der von ibase_connect() zurück gegebenen ID überein stimmt. Vorgenommene Transaktionen der Verbindung werden übertragen, andere werden zurück genommen.

Parameter-Liste

connection_id

Eine Interbase Verbindungs-ID, die von ibase_connect() zurückgegeben wurde. Wenn ausgelassen, wird die zuletzt geöffnete Verbindung angenommen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ibase_connect() - Öffnet eine Verbindung zu einer Datenbank
  • ibase_pconnect() - Öffnet eine persistente Verbindung zu einer InterBase-Datenbank


Schreibt eine Transaktion fest, ohne diese zu schließen

  • « ibase_close
  • ibase_commit »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Schreibt eine Transaktion fest, ohne diese zu schließen

ibase_commit_ret

(PHP 5, PHP 7 < 7.4.0)

ibase_commit_ret — Schreibt eine Transaktion fest, ohne diese zu schließen

Beschreibung

ibase_commit_ret ( resource $link_or_trans_identifier = null ) : bool

Commits a transaction without closing it.

Parameter-Liste

link_or_trans_identifier

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed. The transaction context will be retained, so statements executed from within this transaction will not be invalidated.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Schreibt eine Transaktion fest

  • « ibase_commit_ret
  • ibase_connect »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Schreibt eine Transaktion fest

ibase_commit

(PHP 5, PHP 7 < 7.4.0)

ibase_commit — Schreibt eine Transaktion fest

Beschreibung

ibase_commit ( resource $link_or_trans_identifier = null ) : bool

Schreibt eine Transaktion fest.

Parameter-Liste

link_or_trans_identifier

Wenn diese Funktion ohne Argument aufgerufen wird, wird die Standardtransaktion des Standardlinks festgeschrieben. Wenn das Argument eine Verbindungskennung ist, wird die Standardtransaktion der entsprechenden Verbindung festgeschrieben. Wenn das Argument eine Transaktionskennung ist, wird die entsprechende Transaktion festgeschrieben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Öffnet eine Verbindung zu einer Datenbank

  • « ibase_commit
  • ibase_db_info »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Öffnet eine Verbindung zu einer Datenbank

ibase_connect

(PHP 5, PHP 7 < 7.4.0)

ibase_connect — Öffnet eine Verbindung zu einer Datenbank

Beschreibung

ibase_connect ( string $database = ? , string $username = ? , string $password = ? , string $charset = ? , int $buffers = ? , int $dialect = ? , string $role = ? , int $sync = ? ) : resource

Stellt eine Verbindung zu einem Firebird/InterBase-Server her.

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.

Parameter-Liste

database

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/port:' (TCP/IP für Interbase Server auf benutzerdefiniertem TCP Port), oder '//hostname/' (bei NetBEUI) vorangestellt werden.

username

Der Benutzername. Kann mit der ibase.default_user php.ini Direktive festgelegt werden.

password

Das Passwort für username. Kann mit der ibase.default_password php.ini Direktive festegelegt werden.

charset

charset ist der reguläre Zeichensatz der Datenbank.

buffers

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.

dialect

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).

role

Wirkt nur unter InterBase 5 und höher.

sync

Rückgabewerte

Gibt bei Erfolg eine Firebird/Interbase Verbindungs-ID zurück, oder false im Fehlerfall.

Fehler/Exceptions

Erhalten Sie Fehlermeldungen wie "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (diese treten auf, wenn Sie Zeichen mit Akzent verwenden), wenn Sie diese Funktion und ibase_query() verwenden, müssen Sie den Zeichensatz (d.h. ISO8859_1 oder Ihren aktuellen Zeichensatz) einstellen.

Beispiele

Beispiel #1 ibase_connect()-Beispiel:

<?php
$host = 'localhost:/pfad/zu/ihrer.gdb';

$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
    echo $row->email, "\n";
}
ibase_free_result($sth);
ibase_close($dbh);
?>

Siehe auch

  • ibase_pconnect() - Öffnet eine persistente Verbindung zu einer InterBase-Datenbank
  • ibase_close() - Schließt eine Verbindung zu einer InterBase-Datenbank


Fragt statistische Daten über eine Datenbank ab

  • « ibase_connect
  • ibase_delete_user »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Fragt statistische Daten über eine Datenbank ab

ibase_db_info

(PHP 5, PHP 7 < 7.4.0)

ibase_db_info — Fragt statistische Daten über eine Datenbank ab

Beschreibung

ibase_db_info ( resource $service_handle , string $db , int $action , int $argument = 0 ) : string
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Löscht einen Benutzer aus einer Security-Datenbank

  • « ibase_db_info
  • ibase_drop_db »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Löscht einen Benutzer aus einer Security-Datenbank

ibase_delete_user

(PHP 5, PHP 7 < 7.4.0)

ibase_delete_user — Löscht einen Benutzer aus einer Security-Datenbank

Beschreibung

ibase_delete_user ( resource $service_handle , string $user_name ) : bool

Parameter-Liste

service_handle

Das Handle für den Datenbankserverdienst.

user_name

Der Anmeldename des Benutzers, den Sie aus der Datenbank löschen möchten.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ibase_add_user() - Fügt einen Benutzer zu einer Security-Datenbank hinzu
  • ibase_modify_user() - Ändert den Benutzer einer Security-Datenbank


Löscht eine Datenbank

  • « ibase_delete_user
  • ibase_errcode »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Löscht eine Datenbank

ibase_drop_db

(PHP 5, PHP 7 < 7.4.0)

ibase_drop_db — Löscht eine Datenbank

Beschreibung

ibase_drop_db ( resource $connection = null ) : bool

Diese Funktion löscht eine Datenbank, die entweder mit ibase_connect() oder ibase_pconnect() geöffnet wurde. Die Datenbank wird geschlossen und vom Server gelöscht.

Parameter-Liste

connection

Eine InterBase/Firebird-Verbindungskennung. Wenn nicht angegeben, wird der zuletzt geöffnete Link angenommen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ibase_connect() - Öffnet eine Verbindung zu einer Datenbank
  • ibase_pconnect() - Öffnet eine persistente Verbindung zu einer InterBase-Datenbank


Gibt einen Fehlercode zurück

  • « ibase_drop_db
  • ibase_errmsg »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Gibt einen Fehlercode zurück

ibase_errcode

(PHP 5, PHP 7 < 7.4.0)

ibase_errcode — Gibt einen Fehlercode zurück

Beschreibung

ibase_errcode ( ) : int

Gibt den Fehlercode zurück, der sich aus dem letzten InterBase/FireBird-Funktionsaufruf ergab.

Rückgabewerte

Gibt den Fehlercode als ganze Zahl zurück oder false wenn kein Fehler aufgetreten ist.

Siehe auch

  • ibase_errmsg() - Gibt eine Fehlermeldung zurück


Gibt eine Fehlermeldung zurück

  • « ibase_errcode
  • ibase_execute »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Gibt eine Fehlermeldung zurück

ibase_errmsg

(PHP 5, PHP 7 < 7.4.0)

ibase_errmsg — Gibt eine Fehlermeldung zurück

Beschreibung

ibase_errmsg ( ) : string

Gibt die Fehlermeldung zurück, die sich aus dem letzten InterBase/Firebird-Funktionsaufruf ergab.

Rückgabewerte

Gibt die Fehlermeldung als String zurück oder false, wenn kein Fehler auftrat.

Siehe auch

  • ibase_errcode() - Gibt einen Fehlercode zurück


Ausführen einer vorbereiteten Abfrage

  • « ibase_errmsg
  • ibase_fetch_assoc »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Ausführen einer vorbereiteten Abfrage

ibase_execute

(PHP 5, PHP 7 < 7.4.0)

ibase_execute — Ausführen einer vorbereiteten Abfrage

Beschreibung

ibase_execute ( resource $query , mixed $... = ? ) : resource

Führt eine zuvor 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.

Parameter-Liste

query

Eine per ibase_prepare() vorbereite InterBase-Abfrage.

...

Rückgabewerte

Erzeugt die Abfrage einen Fehler, wird false zurückgegeben. Ist sie erfolgreich und es gibt eine (möglicherweise leere) Ergebnismenge (so wie bei einer SELECT Abfrage), wird eine Ergebniskennung zurückgegeben. War die Abfrage erfolgreich und es gibt keine Ergebnisse, wird true zurückgegeben.

Hinweis:

Diese Funktion gibt die Anzahl der Zeilen zurück, die von der Abfrage betroffen waren (falls größer als 0 und für den Anweisungstyp zutreffend). Eine Abfrage, die erfolgreich war, aber keine Zeilen betraf (z.B. ein UPDATE eines nicht existierenden Datensatzes), gibt true zurück.

Beispiele

Beispiel #1 ibase_execute() Beispiel

<?php

$dbh = ibase_connect($host, $username, $password);

$updates = array(
    1 => 'Erik',
    5 => 'Philipp',
    7 => 'Laurenz'
);

$query = ibase_prepare($dbh, "UPDATE FOO SET BAR = ? WHERE BAZ = ?");

foreach ($updates as $baz => $bar) {
    ibase_execute($query, $bar, $baz);
}

?>

Siehe auch

  • ibase_query() - Führt eine Abfrage auf einer InterBase Datenbank aus


Ruft eine Ergebniszeile aus einer Abfrage als assoziatives Array ab

  • « ibase_execute
  • ibase_fetch_object »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Ruft eine Ergebniszeile aus einer Abfrage als assoziatives Array ab

ibase_fetch_assoc

(PHP 5, PHP 7 < 7.4.0)

ibase_fetch_assoc — Ruft eine Ergebniszeile aus einer Abfrage als assoziatives Array ab

Beschreibung

ibase_fetch_assoc ( resource $result , int $fetch_flag = 0 ) : array

Ruft eine Ergebniszeile aus einer Abfrage als assoziatives Array ab.

ibase_fetch_assoc() holt eine Datenzeile aus result. Wenn zwei oder mehr Spalten des Ergebnisses den gleichen Feldnamen haben, hat die letzte Spalte Vorrang. Um auf die anderen Spalten mit demselben Namen zuzugreifen, müssen Sie entweder mit ibase_fetch_row() auf das Ergebnis mit numerischen Indizes zugreifen oder in Ihrer Abfrage Aliasnamen verwenden.

Parameter-Liste

result

Das Ergebnis-Handle.

fetch_flag

fetch_flag ist eine Kombination der Konstanten IBASE_TEXT und IBASE_UNIXTIME. Diese wird mittel OR zusammengeführt. Die Übergabe von IBASE_TEXT hat zur Folge, dass diese Funktion BLOB-Inhalte, statt BLOB-IDs zurückgibt. function to return BLOB contents instead of BLOB ids. Die Angabe von IBASE_UNIXTIME hat zur Folge, dass diese Funktion Datums- und Zeitwerte als Unix-Zeitstempel zurückgibt, statt formatierter Zeichenfolgen.

Rückgabewerte

Gibt ein assoziatives Array zurück, das der abgerufenen Zeile entspricht. Nachfolgende Aufrufe geben die nächste Zeile in der Ergebnismenge zurück oder false wenn es keine weiteren Zeilen mehr gibt.

Siehe auch

  • ibase_fetch_row() - Ruft eine Zeile aus einer InterBase-Datenbank ab
  • ibase_fetch_object() - Liest einen Datensatz einer InterBase-Datenbank als Objekt ein


Liest einen Datensatz einer InterBase-Datenbank als Objekt ein

  • « ibase_fetch_assoc
  • ibase_fetch_row »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Liest einen Datensatz einer InterBase-Datenbank als Objekt ein

ibase_fetch_object

(PHP 5, PHP 7 < 7.4.0)

ibase_fetch_object — Liest einen Datensatz einer InterBase-Datenbank als Objekt ein

Beschreibung

ibase_fetch_object ( resource $result_id , int $fetch_flag = 0 ) : object

Holt eine Zeile als Pseudo-Objekt von einer gegebenen Ergebniskennung.

Aufeinanderfolgende Aufrufe von ibase_fetch_object() liefern die nächste Zeile der Ergebnismenge.

Parameter-Liste

result_id

Eine InterBase Ergebniskennung, die durch ibase_query() oder ibase_execute() erhalten wurde.

fetch_flag

fetch_flag ist eine Disjunktion der Konstanten IBASE_TEXT und IBASE_UNIXTIME. Die Angabe von IBASE_TEXT führt dazu, dass diese Funktion BLOB-Inhalte statt BLOB-IDs zurückliefert. Die Angabe von IBASE_UNIXTIME führt dazu, dass diese Funktion Date/Time-Werte als Unit-Zeitstempel anstelle von formatierten Zeichenketten zurückliefert.

Rückgabewerte

Gibt ein Objekt mit der Information der nächsten Zeile, oder false, wenn es keine weiteren Zeilen gibt, zurück.

Beispiele

Beispiel #1 ibase_fetch_object() example

<?php
$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
    echo $row->email . "\n";
}
ibase_close($dbh);
?>

Siehe auch

  • ibase_fetch_row() - Ruft eine Zeile aus einer InterBase-Datenbank ab
  • ibase_fetch_assoc() - Ruft eine Ergebniszeile aus einer Abfrage als assoziatives Array ab


Ruft eine Zeile aus einer InterBase-Datenbank ab

  • « ibase_fetch_object
  • ibase_field_info »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Ruft eine Zeile aus einer InterBase-Datenbank ab

ibase_fetch_row

(PHP 5, PHP 7 < 7.4.0)

ibase_fetch_row — Ruft eine Zeile aus einer InterBase-Datenbank ab

Beschreibung

ibase_fetch_row ( resource $result_identifier , int $fetch_flag = 0 ) : array

ibase_fetch_row() ruft eine Datenzeile aus der gegebenen Ergebnismenge ab.

Folgende Aufrufe von ibase_fetch_row() geben die nächste Zeile der Ergebnismenge zurück, oder false, wenn es keine weiteren Zeilen gibt.

Parameter-Liste

result_identifier

Eine InterBase Ergebniskennung.

fetch_flag

fetch_flag ist eine Oder-Verknüpfung der Konstanten IBASE_TEXT und IBASE_UNIXTIME. Wird IBASE_TEXT angegeben, dann werden BLOB Inhalte anstelle von BLOB-IDs zurückgegeben. Wird IBASE_UNIXTIME angegeben, dann werden Datum/Zeit-Werte als Unix Zeitstempel anstelle von formatierten Zeichenketten zurückgegeben.

Rückgabewerte

Gibt ein Array zurück, das der abgerufenen Zeile entspricht, oder false, wenn es keine weiteren Zeilen gibt. Jede Ergebnisspalte wird in einem Array-Offset gespeichert, beginnend mit Offset 0.

Siehe auch

  • ibase_fetch_assoc() - Ruft eine Ergebniszeile aus einer Abfrage als assoziatives Array ab
  • ibase_fetch_object() - Liest einen Datensatz einer InterBase-Datenbank als Objekt ein


Ruft Informationen zu einem Feld ab

  • « ibase_fetch_row
  • ibase_free_event_handler »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Ruft Informationen zu einem Feld ab

ibase_field_info

(PHP 5, PHP 7 < 7.4.0)

ibase_field_info — Ruft Informationen zu einem Feld ab

Beschreibung

ibase_field_info ( resource $result , int $field_number ) : array

Gibt ein Array mit Informationen zu einem Feld zurück, nachdem eine Auswahlabfrage ausgeführt wurde.

Parameter-Liste

result

Eine InterBase/Firebird-Ergebniskennung.

field_number

Feld-Offset.

Rückgabewerte

Gibt ein Array mit folgenden Schlüsseln zurück: name, alias, relation, length und type.

Beispiele

Beispiel #1 ibase_field_info()-Beispiel

<?php
$rs = ibase_query("SELECT * FROM tablename");
$coln = ibase_num_fields($rs);
for ($i = 0; $i < $coln; $i++) {
    $col_info = ibase_field_info($rs, $i);
    echo "name: ". $col_info['name']. "\n";
    echo "alias: ". $col_info['alias']. "\n";
    echo "relation: ". $col_info['relation']. "\n";
    echo "length: ". $col_info['length']. "\n";
    echo "type: ". $col_info['type']. "\n";
}
?>

Siehe auch

  • ibase_num_fields() - Ermittelt die Anzahl der Felder einer Ergebnismenge


Bricht einen registrierten Ereignishandler ab

  • « ibase_field_info
  • ibase_free_query »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Bricht einen registrierten Ereignishandler ab

ibase_free_event_handler

(PHP 5, PHP 7 < 7.4.0)

ibase_free_event_handler — Bricht einen registrierten Ereignishandler ab

Beschreibung

ibase_free_event_handler ( resource $event ) : bool

Diese Funktion bewirkt, dass der durch event angegebene registrierte Ereignishandler abgebrochen wird. Die Rückruffunktion wird für die Ereignisse, für die sie registriert wurde, nicht mehr aufgerufen.

Parameter-Liste

event

Eine Ereignisressource, erstellt durch ibase_set_event_handler().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ibase_set_event_handler() - Registriert eine Rückruffunktion, die aufgerufen werden soll, wenn Ereignisse auftreten


Gibt den Speicher einer vorbereiteten Abfrage wieder frei

  • « ibase_free_event_handler
  • ibase_free_result »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Gibt den Speicher einer vorbereiteten Abfrage wieder frei

ibase_free_query

(PHP 5, PHP 7 < 7.4.0)

ibase_free_query — Gibt den Speicher einer vorbereiteten Abfrage wieder frei

Beschreibung

ibase_free_query ( resource $query ) : bool

Gibt eine vorbereitete Abfrage frei.

Parameter-Liste

query

Eine mit ibase_prepare() vorbereitete Abfrage.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Gibt eine Ergebnismenge frei

  • « ibase_free_query
  • ibase_gen_id »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Gibt eine Ergebnismenge frei

ibase_free_result

(PHP 5, PHP 7 < 7.4.0)

ibase_free_result — Gibt eine Ergebnismenge frei

Beschreibung

ibase_free_result ( resource $result_identifier ) : bool

Gibt eine Ergebnismenge frei.

Parameter-Liste

result_identifier

Eine Ergebnismenge, die durch ibase_query() oder ibase_execute() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Inkrementiert den benannten Generator und gibt dessen neuen Wert zurück

  • « ibase_free_result
  • ibase_maintain_db »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Inkrementiert den benannten Generator und gibt dessen neuen Wert zurück

ibase_gen_id

(PHP 5, PHP 7 < 7.4.0)

ibase_gen_id — Inkrementiert den benannten Generator und gibt dessen neuen Wert zurück

Beschreibung

ibase_gen_id ( string $generator , int $increment = 1 , resource $link_identifier = null ) : mixed
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Rückgabewerte

Gibt den neuen Generatorwert als Ganzzahl oder als Zeichenfolge zurück, wenn der Wert zu groß ist.


Führt einen Wartungsbefehl auf dem Datenbankserver aus

  • « ibase_gen_id
  • ibase_modify_user »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Führt einen Wartungsbefehl auf dem Datenbankserver aus

ibase_maintain_db

(PHP 5, PHP 7 < 7.4.0)

ibase_maintain_db — Führt einen Wartungsbefehl auf dem Datenbankserver aus

Beschreibung

ibase_maintain_db ( resource $service_handle , string $db , int $action , int $argument = 0 ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Ändert den Benutzer einer Security-Datenbank

  • « ibase_maintain_db
  • ibase_name_result »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Ändert den Benutzer einer Security-Datenbank

ibase_modify_user

(PHP 5, PHP 7 < 7.4.0)

ibase_modify_user — Ändert den Benutzer einer Security-Datenbank

Beschreibung

ibase_modify_user ( resource $service_handle , string $user_name , string $password , string $first_name = ? , string $middle_name = ? , string $last_name = ? ) : bool

Parameter-Liste

service_handle

Das Handle für den Datenbankserverdienst.

user_name

Der Anmeldename des zu ändernden Datenbankbenutzers.

password

Das neue Passwort des Benutzers.

first_name

Der neue Vorname des Benutzers.

middle_name

Der neue zweite Vorname des Benutzers.

last_name

Der neue Nachname des Benutzers.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ibase_add_user() - Fügt einen Benutzer zu einer Security-Datenbank hinzu
  • ibase_delete_user() - Löscht einen Benutzer aus einer Security-Datenbank


Weist einer Ergebnismenge einen Namen zu

  • « ibase_modify_user
  • ibase_num_fields »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Weist einer Ergebnismenge einen Namen zu

ibase_name_result

(PHP 5, PHP 7 < 7.4.0)

ibase_name_result — Weist einer Ergebnismenge einen Namen zu

Beschreibung

ibase_name_result ( resource $result , string $name ) : bool

Diese Funktion weist einer Ergebnismenge einen Namen zu. Dieser Name kann später in UPDATE|DELETE ... WHERE CURRENT OF name-Anweisungen verwendet werden.

Parameter-Liste

result

Eine InterBase/Firebird-Ergebnismenge.

name

Der zuzuweisende Name.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ibase_name_result()-Beispiel

<?php
$result = ibase_query("SELECT field1,field2 FROM table FOR UPDATE");
ibase_name_result($result, "my_cursor");

$updateqry = ibase_prepare("UPDATE table SET field2 = ? WHERE CURRENT OF my_cursor");

for ($i = 0; ibase_fetch_row($result); ++$i) {
    ibase_execute($updateqry, $i);
}
?>

Siehe auch

  • ibase_prepare() - Bereitet eine Abfrage für späteres Binden der Parameter-Platzhalter und Ausführung vor
  • ibase_execute() - Ausführen einer vorbereiteten Abfrage


Ermittelt die Anzahl der Felder einer Ergebnismenge

  • « ibase_name_result
  • ibase_num_params »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Ermittelt die Anzahl der Felder einer Ergebnismenge

ibase_num_fields

(PHP 5, PHP 7 < 7.4.0)

ibase_num_fields — Ermittelt die Anzahl der Felder einer Ergebnismenge

Beschreibung

ibase_num_fields ( resource $result_id ) : int

Ermittelt die Anzahl der Felder einer Ergebnismenge.

Parameter-Liste

result_id

Eine InterBase Ergebniskennung.

Rückgabewerte

Gibt die Anzahl der Felder als Ganzzahl zurück.

Beispiele

Beispiel #1 ibase_num_fields() Beispiel

<?php
$rs = ibase_query("SELECT * FROM tablename");
$coln = ibase_num_fields($rs);
for ($i = 0; $i < $coln; $i++) {
    $col_info = ibase_field_info($rs, $i);
    echo "Name: " . $col_info['name'] . "\n";
    echo "Alias: " . $col_info['alias'] . "\n";
    echo "Relation: " . $col_info['relation'] . "\n";
    echo "Länge: " . $col_info['length'] . "\n";
    echo "Typ: " . $col_info['type'] . "\n";
}
?>

Siehe auch

  • ibase_field_info() - Ruft Informationen zu einem Feld ab


Gibt die Anzahl der Parameter in einer vorbereiteten Abfrage zurück

  • « ibase_num_fields
  • ibase_param_info »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Gibt die Anzahl der Parameter in einer vorbereiteten Abfrage zurück

ibase_num_params

(PHP 5, PHP 7 < 7.4.0)

ibase_num_params — Gibt die Anzahl der Parameter in einer vorbereiteten Abfrage zurück

Beschreibung

ibase_num_params ( resource $query ) : int

Diese Funktion gibt die Anzahl der Parameter in der vorbereiteten Abfrage zurück, die mit query angegeben wurde. Dies ist die Anzahl der Bindungsargumente, die beim Aufrufen von ibase_execute() vorhanden sein müssen.

Parameter-Liste

query

Das vorbereitete Abfragehandle.

Rückgabewerte

Gibt die Anzahl der Parameter als Ganzzahl zurück.

Siehe auch

  • ibase_prepare() - Bereitet eine Abfrage für späteres Binden der Parameter-Platzhalter und Ausführung vor
  • ibase_param_info() - Gibt Informationen zu einem Parameter in einer vorbereiteten Abfrage zurück


Gibt Informationen zu einem Parameter in einer vorbereiteten Abfrage zurück

  • « ibase_num_params
  • ibase_pconnect »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Gibt Informationen zu einem Parameter in einer vorbereiteten Abfrage zurück

ibase_param_info

(PHP 5, PHP 7 < 7.4.0)

ibase_param_info — Gibt Informationen zu einem Parameter in einer vorbereiteten Abfrage zurück

Beschreibung

ibase_param_info ( resource $query , int $param_number ) : array

Gibt ein Array mit Informationen zu einem Parameter zurück, nachdem eine Abfrage vorbereitet wurde.

Parameter-Liste

query

Ein von InterBase/Firebird vorbereitetes Abfragehandle.

param_number

Parameteroffset.

Rückgabewerte

Gibt ein Array mit den folgenden Schlüsseln zurück: name, alias, relation, length und type.

Siehe auch

  • ibase_field_info() - Ruft Informationen zu einem Feld ab
  • ibase_num_params() - Gibt die Anzahl der Parameter in einer vorbereiteten Abfrage zurück


Öffnet eine persistente Verbindung zu einer InterBase-Datenbank

  • « ibase_param_info
  • ibase_prepare »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Öffnet eine persistente Verbindung zu einer InterBase-Datenbank

ibase_pconnect

(PHP 5, PHP 7 < 7.4.0)

ibase_pconnect — Öffnet eine persistente Verbindung zu einer InterBase-Datenbank

Beschreibung

ibase_pconnect ( string $database = ? , string $username = ? , string $password = ? , string $charset = ? , int $buffers = ? , int $dialect = ? , string $role = ? , int $sync = ? ) : resource

Öffnet eine persistente Verbindung zu einer InterBase-Datenbank.

ibase_pconnect() agiert ähnlich der Funktion ibase_connect(), mit zwei Ausnahmen.

Erstens wird beim Verbindungs-Aufbau versucht, eine bereits bestehende (persistente) 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ückgegeben.

Zweitens wird beim Beenden des Skripts die Verbindung zum InterBase Server nicht beendet. Statt dessen wird die Verbindung für den weiteren Gebrauch beibehalten (ibase_close() beendet keine Verbindungen, die mittels ibase_pconnect() erzeugt wurden). Diese Art der Verbindung wird deshalb auch 'persistent' genannt.

Parameter-Liste

database

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@' (IPX/SPX) vorangestellt werden.

username

Der Benutzername. Kann mit der ibase.default_user php.ini Direktive festgelegt werden.

password

Das Passwort für username. Kann mit der ibase.default_password php.ini Direktive festegelegt werden.

charset

charset ist der reguläre Zeichensatz der Datenbank.

buffers

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.

dialect

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). Dies wirkt nur mit InterBase 6 und höher.

role

Wirkt nur unter InterBase 5 und höher.

sync

Rückgabewerte

Gibt bei Erfolg eine Firebird/Interbase Verbindungs-ID zurück, oder false im Fehlerfall.

Siehe auch

  • ibase_close() - Schließt eine Verbindung zu einer InterBase-Datenbank
  • ibase_connect() - Öffnet eine Verbindung zu einer Datenbank


Bereitet eine Abfrage für späteres Binden der Parameter-Platzhalter und Ausführung vor

  • « ibase_pconnect
  • ibase_query »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Bereitet eine Abfrage für späteres Binden der Parameter-Platzhalter und Ausführung vor

ibase_prepare

(PHP 5, PHP 7 < 7.4.0)

ibase_prepare — Bereitet eine Abfrage für späteres Binden der Parameter-Platzhalter und Ausführung vor

Beschreibung

ibase_prepare ( string $query ) : resource
ibase_prepare ( resource $link_identifier , string $query ) : resource
ibase_prepare ( resource $link_identifier , string $trans , string $query ) : resource

Bereitet eine Abfrage für späteres Binden der Parameter-Platzhalter und Ausführung vor (per ibase_execute()).

Parameter-Liste

query

Eine InterBase Abfrage.

link_identifier

Ein InterBase-Verbindungs-Bezeichner, der von ibase_connect() zurückgegeben wurde. Falls ausgelassen, wird die zuletzt geöffnete Verbindung verwendet.

trans

Ein InterBase-Transaktions-Handle mit der die Abfrage assoziiert werden soll. Falls ausgelassen, wird die Standard-Transaktion der Abfrage verwendet.

Rückgabewerte

Gibt ein Handle der vorbereiteten Abfrage zurück, oder false im Fehlerfall.


Führt eine Abfrage auf einer InterBase Datenbank aus

  • « ibase_prepare
  • ibase_restore »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Führt eine Abfrage auf einer InterBase Datenbank aus

ibase_query

(PHP 5, PHP 7 < 7.4.0)

ibase_query — Führt eine Abfrage auf einer InterBase Datenbank aus

Beschreibung

ibase_query ( resource $link_identifier = ? , string $query , int $bind_args = ? ) : resource

Führt eine Abfrage auf einer InterBase Datenbank aus.

Parameter-Liste

link_identifier

Eine InterBase Verbindungskennung. Wenn ausgelassen, wird die zuletzt geöffnete Verbindung angenommen.

query

Eine InterBase Abfrage.

bind_args

Rückgabewerte

Erzeugt die Abfrage einen Fehler, wird false zurückgegeben. Ist sie erfolgreich und es gibt eine (möglicherweise leere) Ergebnismenge (so wie bei einer SELECT Abfrage), wird eine Ergebniskennung zurückgegeben. War die Abfrage erfolgreich und es gibt keine Ergebnisse, wird true zurückgegeben.

Hinweis:

Unter PHP 5.0.0 und höher gibt diese Funktion die Anzahl der Zeilen zurück, die von der Abfrage für INSERT, UPDATE und DELETE Anweisungen betroffen waren. Um die Abwärtskompatibilität zu erhalten, wird true für diese Anweisungen zurückgegeben, wenn die Abfrage erfolgreich war, aber keine Zeilen betraf.

Fehler/Exceptions

Erhalten Sie Fehlermeldungen wie "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (diese treten auf, wenn Sie Zeichen mit Akzent verwenden), wenn Sie diese Funktion und ibase_query() verwenden, müssen Sie den Zeichensatz (d.h. ISO8859_1 oder Ihren aktuellen Zeichensatz) einstellen.

Changelog

Version | Beschreibung
5.3.1 | Im Erfolgsfall gibt die Funktion nun true zurück, wenn keine Zeilen betroffen waren, wohingegen zuvor 0 (eine Null gefolgt von einem Leerzeichen) zurückgegeben wurde.

Beispiele

Beispiel #1 ibase_query() example

<?php

$host = 'localhost:/pfad/zu/ihrer.gdb';

$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';

$sth = ibase_query($dbh, $stmt) or die(ibase_errmsg());

?>

Siehe auch

  • ibase_errmsg() - Gibt eine Fehlermeldung zurück
  • ibase_fetch_row() - Ruft eine Zeile aus einer InterBase-Datenbank ab
  • ibase_fetch_object() - Liest einen Datensatz einer InterBase-Datenbank als Objekt ein
  • ibase_free_result() - Gibt eine Ergebnismenge frei


Leitet eine Wiederherstellungsaufgabe im Service Manager ein und kehrt sofort zurück

  • « ibase_query
  • ibase_rollback_ret »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Leitet eine Wiederherstellungsaufgabe im Service Manager ein und kehrt sofort zurück

ibase_restore

(PHP 5, PHP 7 < 7.4.0)

ibase_restore — Leitet eine Wiederherstellungsaufgabe im Service Manager ein und kehrt sofort zurück

Beschreibung

ibase_restore ( resource $service_handle , string $source_file , string $dest_db , int $options = 0 , bool $verbose = false ) : mixed

Diese Funktion übergibt die Argumente an den (entfernten) Datenbankserver. Dort startet sie einen neuen Sicherungsvorgang. Deshalb erhalten Sie keine Antwort.

Parameter-Liste

service_handle

Eine zuvor geöffnete Verbindung zum Datenbankserver.

source_file

Der absolute Pfad auf dem Server, auf dem sich die Sicherungsdatei befindet.

dest_db

Der Pfad zum Erstellen der neuen Datenbank auf dem Server. Sie können auch einen Datenbankalias verwenden.

options

Zusätzliche Optionen, die zur Wiederherstellung an den Datenbankserver übergeben werden. Der Parameter options darf aus Kombinationen folgender Konstanten bestehen: IBASE_RES_DEACTIVATE_IDX, IBASE_RES_NO_SHADOW, IBASE_RES_NO_VALIDITY, IBASE_RES_ONE_AT_A_TIME, IBASE_RES_REPLACE, IBASE_RES_CREATE, IBASE_RES_USE_ALL_SPACE, IBASE_PRP_PAGE_BUFFERS, IBASE_PRP_SWEEP_INTERVAL, IBASE_RES_CREATE. Vgl. den Abschnitt Vordefinierte Konstanten für weitere informationen.

verbose

Da der Wiederherstellungsvorgang auf dem Datenbankserver ausgeführt wird, haben Sie keine Chance, die Ausgabe abzurufen. Dieses Argument ist sinnlos.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Da der Sicherungsvorgang auf dem (Remote-) Server durchgeführt wird, übergibt diese Funktion nur die Argumente an diesen. Solange die Argumente gültig sind, werden Sie niemals false zurückbekommen.

Beispiele

Beispiel #1 ibase_restore()-Beispiel

<?php

// Mit Datenbankserver mittels IP-Adresse und Port verbinden
$service = ibase_service_attach ('10.1.11.200/3050', 'sysdba', 'masterkey');

// Starte den Wiederherstellungsvorgang
// Wiederherstellung der Mitarbeiter-DB in neue emps.fdb-Datenbank.
// Keine Angabe weiterer Argumente.
ibase_restore($service, '/srv/backup/employees.fbk', '/srv/firebird/emps.fdb');

// Verbindung wieder freigeben
ibase_service_detach ($service);
?>

Beispiel #2 ibase_restore()-Beispiel mit Argumenten

<?php

// Mit Datenbankserver mittels Namen und Standardport verbinden
$service = ibase_service_attach ('fb-server.contoso.local', 'sysdba', 'masterkey');

// Starte den Wiederherstellungsprozess
// Employee-Datenbank mittels Alias wiederherstellen
// Wiederherstellung ohne Indizes. Existierende DB ersetzen.
ibase_restore($service, '/srv/backup/employees.fbk', 'employees.fdb', IBASE_RES_DEACTIVATE_IDX | IBASE_RES_REPLACE);

// Verbindung wieder freigeben.
ibase_service_detach ($service);
?>

Siehe auch

  • ibase_backup() - Initiiert eine Sicherungsaufgabe im Service Manager und springt sofort zurück


Macht eine Transaktion rückgängig, ohne diese zu schließen

  • « ibase_restore
  • ibase_rollback »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Macht eine Transaktion rückgängig, ohne diese zu schließen

ibase_rollback_ret

(PHP 5, PHP 7 < 7.4.0)

ibase_rollback_ret — Macht eine Transaktion rückgängig, ohne diese zu schließen

Beschreibung

ibase_rollback_ret ( resource $link_or_trans_identifier = null ) : bool

Macht eine Transaktion rückgängig, ohne diese zu schließen

Parameter-Liste

link_or_trans_identifier

Wenn diese Funktion ohne Argument aufgerufen wird, wird die Standardtransaktion des Standardlinks zurückgesetzt. Wenn das Argument eine Verbindungskennung ist, wird die Standardtransaktion der entsprechenden Verbindung zurückgesetzt. Wenn das Argument eine Transaktionskennung ist, wird die entsprechende Transaktion zurückgesetzt. Der Transaktionskontext wird beibehalten, sodass Anweisungen, die innerhalb dieser Transaktion ausgeführt werden, nicht ungültig werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Macht eine Transaktion rückgängig

  • « ibase_rollback_ret
  • ibase_server_info »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Macht eine Transaktion rückgängig

ibase_rollback

(PHP 5, PHP 7 < 7.4.0)

ibase_rollback — Macht eine Transaktion rückgängig

Beschreibung

ibase_rollback ( resource $link_or_trans_identifier = null ) : bool

Macht eine Transaktion rückgängig.

Parameter-Liste

link_or_trans_identifier

Wenn diese Funktion ohne Argument aufgerufen wird, wird die Standardtransaktion des Standardlinks zurückgesetzt. Wenn das Argument eine Verbindungskennung ist, wird die Standardtransaktion der entsprechenden Verbindung zurückgesetzt. Wenn das Argument eine Transaktionskennung ist, wird die entsprechende Transaktion zurückgesetzt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Informationen zu einem Datenbankserver anfordern

  • « ibase_rollback
  • ibase_service_attach »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Informationen zu einem Datenbankserver anfordern

ibase_server_info

(PHP 5, PHP 7 < 7.4.0)

ibase_server_info — Informationen zu einem Datenbankserver anfordern

Beschreibung

ibase_server_info ( resource $service_handle , int $action ) : string

Parameter-Liste

service_handle

Eine zuvor erstellte Verbindung zum Datenbankserver.

action

Eine gültige Konstante.

Rückgabewerte

Gibt je nach Kontext gemischte Typen zurück.

Beispiele

Beispiel #1 ibase_service_attach()-Beispiel

<?php
    // Stelle eine Verbindung zum entfernten Firebird-Server her
    if (($service = ibase_service_attach('10.1.1.254/3050', 'sysdba', 'masterkey')) != FALSE) {

        // Verbidung erfolgreich

        // Infos ausgeben
        echo "Server version: " . ibase_server_info($service, IBASE_SVC_SERVER_VERSION) . "\n";
        echo "Server implementation: " . ibase_server_info($service, IBASE_SVC_IMPLEMENTATION) . "\n";
        echo "Server users: " . print_r(ibase_server_info($service, IBASE_SVC_GET_USERS), true) . "\n";
        echo "Server directory: " . ibase_server_info($service, IBASE_SVC_GET_ENV) . "\n";
        echo "Server lock path: " . ibase_server_info($service, IBASE_SVC_GET_ENV_LOCK) . "\n";
        echo "Server lib path: " . ibase_server_info($service, IBASE_SVC_GET_ENV_MSG) . "\n";
        echo "Path of user db: " . ibase_server_info($service, IBASE_SVC_USER_DBPATH) . "\n";
        echo "Established connections: " . print_r(ibase_server_info($service, IBASE_SVC_SVR_DB_INFO),true) . "\n";

        // Serververbindung lösen (disconnect)
        ibase_service_detach($service);

    }
    else {
        // Fehler ausgeben
        $conn_error = ibase_errmsg();
        die($conn_error);
    }
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Server version: LI-V3.0.4.33054 Firebird 3.0
Server implementation: Firebird/Linux/AMD/Intel/x64
Server users: Array
(
    [0] => Array
        (
            [user_name] => SYSDBA
            [first_name] => Sql
            [middle_name] => Server
            [last_name] => Administrator
            [user_id] => 0
            [group_id] => 0
        )

)

Server directory: /etc/firebird/
Server lock path: /tmp/firebird/
Server lib path: /usr/lib64/firebird/lib/
Path of user db: /var/lib/firebird/secdb/security3.fdb
Established connections: Array
(
    [attachments] => 3
    [databases] => 2
    [0] => /srv/firebird/poss.fdb
    [1] => /srv/firebird/employees.fdb
)


Verbindet zum Service-Manager

  • « ibase_server_info
  • ibase_service_detach »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Verbindet zum Service-Manager

ibase_service_attach

(PHP 5, PHP 7 < 7.4.0)

ibase_service_attach — Verbindet zum Service-Manager

Beschreibung

ibase_service_attach ( string $host , string $dba_username , string $dba_password ) : resource

Parameter-Liste

host

Der Name oder die IP-Adresse des Datenbank-Hosts. Sie können den Port angeben durch Hinzufügen von '/' und der Portnummer. Sofern kein Port angegeben wurde, wird Port 3050 verwendet.

dba_username

Der Name eines gültigen Benutzers.

dba_password

Das Kennwort des Benutzers.

Rückgabewerte

Gibt eine Interbase/Firebird-Link-ID im Erfolgsfall zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ibase_service_attach()-Beispiel

<?php
    // Stellt über die IP-Adresse eine Verbindung zum Remote-Firebird-Server her
    if (($service = ibase_service_attach('10.1.1.199', 'sysdba', 'masterkey')) != FALSE) {

        // Verbindung erfolgreich
        // Server-Version ermitteln (z.B. 'LI-V3.0.4.33054 Firebird 3.0')
        $server_version  = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

        // Serverimplementierung abrufen (z.B. 'Firebird/Linux/AMD/Intel/x64')
        $server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

        // Vom Server trennen (Verbindung trennen)
        ibase_service_detach($service);

        // Ausgabe
        echo "Server version: " . $server_version . "<br/>";
        echo "Server implementation: " . $server_implementation;
    }
    else {
        // Fehler ausgeben
        $conn_error = ibase_errmsg();
        die($conn_error);
    }

?>

Beispiel #2 ibase_service_attach()-Beispiel mit hostname/port-Syntax

<?php
    // Verbindung zum Remote-Firebird-Server über den Namen herstellen. Port 3050 verwenden.
    if (($service = ibase_service_attach('FB-SRV-01.contoso.local/3050', 'sysdba', 'masterkey')) != FALSE) {

        // Verbindung erfolgreich
        // Server-Version ermitteln (z.B. 'LI-V3.0.4.33054 Firebird 3.0')
        $server_version  = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

        // Serverimplementierung abrufen (z.B. 'Firebird/Linux/AMD/Intel/x64')
        $server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

        // Vom Server trennen (Verbindung trennen)
        ibase_service_detach($service);

        // Ausgabe
        echo "Server version: " . $server_version . "<br/>";
        echo "Server implementation: " . $server_implementation;
    }
    else {
        // Fehler ausgeben
        $conn_error = ibase_errmsg();
        die($conn_error);
    }

?>

Siehe auch

  • ibase_service_detach() - Trennt die Verbindung zum Service-Manager


Trennt die Verbindung zum Service-Manager

  • « ibase_service_attach
  • ibase_set_event_handler »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Trennt die Verbindung zum Service-Manager

ibase_service_detach

(PHP 5, PHP 7 < 7.4.0)

ibase_service_detach — Trennt die Verbindung zum Service-Manager

Beschreibung

ibase_service_detach ( resource $service_handle ) : bool

Parameter-Liste

service_handle

Eine zuvor erstellte Verbindung zum Datenbankserver.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ibase_service_detach()-Beispiel

<?php
    // Verbindung zum Remote-Firebird-Server mittels IP herstellen.
    if (($service = ibase_service_attach('10.1.1.199', 'sysdba', 'masterkey')) != FALSE) {

        // Verbindung erfolgreich
        // Server-Version ermitteln (z.B. 'LI-V3.0.4.33054 Firebird 3.0')
        $server_version  = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

        // Serverimplementierung abrufen (z.B. 'Firebird/Linux/AMD/Intel/x64')
        $server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

        // Verbindung trennen
        if(ibase_service_detach($service) == FALSE) {
            echo "Fehler beim Trennen vom Service.";
        }
        else {
            echo "Erfolgreich vom Service getrennt.";
        }

    }
    else {
        // Ausgabe bei Fehler
        $conn_error = ibase_errmsg();
        die($conn_error);
    }

?>


Registriert eine Rückruffunktion, die aufgerufen werden soll, wenn Ereignisse auftreten

  • « ibase_service_detach
  • ibase_trans »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Registriert eine Rückruffunktion, die aufgerufen werden soll, wenn Ereignisse auftreten

ibase_set_event_handler

(PHP 5, PHP 7 < 7.4.0)

ibase_set_event_handler — Registriert eine Rückruffunktion, die aufgerufen werden soll, wenn Ereignisse auftreten

Beschreibung

ibase_set_event_handler ( callable $event_handler , string $event_name1 , string $... = ? ) : resource
ibase_set_event_handler ( resource $connection , callable $event_handler , string $event_name1 , string $... = ? ) : resource

Diese Funktion registriert eine PHP-Benutzerfunktion als Ereignishandler für die angegebenen Ereignisse.

Parameter-Liste

event_handler

Der Rückruf wird mit dem Ereignisnamen und der Verknüpfungsressource als Argument aufgerufen, wenn eines der angegebenen Ereignisse von der Datenbank gesendet wird.

Der Rückruf muss false zurückgeben, wenn der Eventhandler abgebrochen werden soll. Jeder andere Rückgabewert wird ignoriert. Diese Funktion akzeptiert bis zu 15 Ereignisargumente.

event_name1

Ein Ereignisname.

...

Maximal 15 Ereignisse erlaubt.

Rückgabewerte

Der Rückgabewert ist eine Ereignisressource. Diese Ressource kann verwendet werden, um den Ereignishandler mithilfe von ibase_free_event_handler() freizugeben.

Beispiele

Beispiel #1 ibase_set_event_handler()-Beispiel

<?php

function event_handler($event_name, $link)
{
    if ($event_name == "NEW ORDER") {
        // process new order
        ibase_query($link, "UPDATE orders SET status='handled'");
    } else if ($event_name == "DB_SHUTDOWN") {
        // free event handler
        return false;
    }
}

ibase_set_event_handler($link, "event_handler", "NEW_ORDER", "DB_SHUTDOWN");
?>

Siehe auch

  • ibase_free_event_handler() - Bricht einen registrierten Ereignishandler ab
  • ibase_wait_event() - Wartet, bis ein Ereignis von der Datenbank veröffentlicht wurde


Startet eine Transaktion

  • « ibase_set_event_handler
  • ibase_wait_event »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Startet eine Transaktion

ibase_trans

(PHP 5, PHP 7 < 7.4.0)

ibase_trans — Startet eine Transaktion

Beschreibung

ibase_trans ( int $trans_args = ? , resource $link_identifier = ? ) : resource
ibase_trans ( resource $link_identifier = ? , int $trans_args = ? ) : resource

Startet eine Transaktion

Hinweis:

Der erste Aufruf von ibase_trans() gibt nicht die Standardtransaktion einer Verbindung zurück. Alle Transaktionen, die mittels ibase_trans() gestartet wurden, werden am Ende des Skripts rückgängig gemacht, sofern diese nicht mit ibase_commit() festgeschrieben oder mit ibase_rollback() rückgängig gemacht wurden.

Hinweis:

Diese Funktion akzeptiert mehrere trans_args- und link_identifier-Argumente. Dies erlaubt Transaktionen über mehrere Datenbankverbindungen, die mittels eines 2-Phasen-Commit-Algorithmus festgeschrieben werden. Dies bedeutet, dass Sie sich darauf verlassen können, dass die Aktualisierungen entweder in jeder Datenbank erfolgreich sind oder in jeder Datenbank fehlschlagen. Es bedeutet NICHT, dass Sie Tabellen aus verschiedenen Datenbanken in derselben Abfrage verwenden können!

Wenn Sie Transaktionen über mehrere Datenbanken hinweg verwenden, müssen Sie die Parameter link_id und transaction_id in den Aufrufen von ibase_query() und ibase_prepare() verwenden.

Parameter-Liste

trans_args

trans_args darf eine Kombination aus IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT und IBASE_NOWAIT sein.

link_identifier

Eine InterBase/Firebird-Verbindungskennung. Wenn nicht angegeben, wird der zuletzt geöffnete Link angenommen.

Rückgabewerte

Gibt ein Transaktions-Handle zurück oder false on bei einem Fehler.


Wartet, bis ein Ereignis von der Datenbank veröffentlicht wurde

  • « ibase_trans
  • FrontBase »
  • PHP Manual
  • Firebird/InterBase Funktionen
  • Wartet, bis ein Ereignis von der Datenbank veröffentlicht wurde

ibase_wait_event

(PHP 5, PHP 7 < 7.4.0)

ibase_wait_event — Wartet, bis ein Ereignis von der Datenbank veröffentlicht wurde

Beschreibung

ibase_wait_event ( string $event_name1 , string $... = ? ) : string
ibase_wait_event ( resource $connection , string $event_name1 , string $... = ? ) : string

Diese Funktion unterbricht die Ausführung des Skripts, bis eines der angegebenen Ereignisse von der Datenbank gesendet wird. Der Name des Ereignisses, das gebucht wurde, wird zurückgegeben. Diese Funktion akzeptiert bis zu 15 Ereignisargumente.

Parameter-Liste

event_name1

Der Ereignisname.

...

Rückgabewerte

Gibt den Namen des Ereignisses zurück, das aufgetreten ist.

Siehe auch

  • ibase_set_event_handler() - Registriert eine Rückruffunktion, die aufgerufen werden soll, wenn Ereignisse auftreten
  • ibase_free_event_handler() - Bricht einen registrierten Ereignishandler ab


FrontBase

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • FrontBase Funktionen
    • fbsql_affected_rows — Ermittelt die Anzahl der von der vorherigen FrontBase-Operation betroffenen Datensätze
    • fbsql_autocommit — Aktiviert oder deaktiviert Autocommit
    • fbsql_blob_size — Get the size of a BLOB
    • fbsql_change_user — Wechselt den eingeloggten Benutzer der aktiven Verbindung
    • fbsql_clob_size — Get the size of a CLOB
    • fbsql_close — Beendet eine FrontBase-Verbindung
    • fbsql_commit — Wendet eine Transaktion auf die Datenbank an
    • fbsql_connect — Öffnet eine Verbindung zu einem FrontBase-Server
    • fbsql_create_blob — Create a BLOB
    • fbsql_create_clob — Create a CLOB
    • fbsql_create_db — Erstellt eine FrontBase-Datenbank
    • fbsql_data_seek — Bewegt den internen Ergebnis-Zeiger
    • fbsql_database_password — Sets or retrieves the password for a FrontBase database
    • fbsql_database — Lesen oder Setzen des Datenbanknamens, der mit einer Verbindung verwendet wird
    • fbsql_db_query — Absetzen einer Anfrage an die Datenbank
    • fbsql_db_status — Ermittelt den Status einer angegebenen Datenbank
    • fbsql_drop_db — Löschen (DROP) einer FrontBase-Datenbank
    • fbsql_errno — Liefert die numerische Fehlermeldung der der letzten Operation zurück
    • fbsql_error — Liefert den Fehlertext der zuvor ausgeführten Operation
    • fbsql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
    • fbsql_fetch_assoc — Fetch a result row as an associative array
    • fbsql_fetch_field — Liefert ein Objekt mit Feldinformationen aus einem Abfrageergebnis
    • fbsql_fetch_lengths — Get the length of each output in a result
    • fbsql_fetch_object — Fetch a result row as an object
    • fbsql_fetch_row — Liefert einen Datensatz als numerisches Array
    • fbsql_field_flags — Get the flags associated with the specified field in a result
    • fbsql_field_len — Returns the length of the specified field
    • fbsql_field_name — Liefert den Namen des angegebenen Feldes im Ergebnis
    • fbsql_field_seek — Setzt den Ergebniszeiger auf den angegebenen Feldoffset
    • fbsql_field_table — Liefert den Namen der Tabelle, die das genannte Feld enthält
    • fbsql_field_type — Liefert den Typ des angegebenen Feldes in einem Ergebnis
    • fbsql_free_result — Gibt vom Ergebnis belegten Speicher wieder frei
    • fbsql_get_autostart_info — Beschreibung
    • fbsql_hostname — Ermittelt oder setzt den mit einer Verbindung verwendeten Hostnamen
    • fbsql_insert_id — Get the id generated from the previous INSERT operation
    • fbsql_list_dbs — List databases available on a FrontBase server
    • fbsql_list_fields — List FrontBase result fields
    • fbsql_list_tables — List tables in a FrontBase database
    • fbsql_next_result — Setzt den internen Ergebniskennungszeiger auf das nächste Ergebnis
    • fbsql_num_fields — Ermittelt Anzahl der Felder im Ergebnis
    • fbsql_num_rows — Liefert die Anzahl der Datensätze in einem Ergebnis
    • fbsql_password — Liest oder setzt das Bentuzerpasswort für eine Verbindung
    • fbsql_pconnect — Öffnet eine persistente Verbindung zu einem FrontBase-Server
    • fbsql_query — Sendet eine FrontBase-Abfrage
    • fbsql_read_blob — Read a BLOB from the database
    • fbsql_read_clob — Read a CLOB from the database
    • fbsql_result — Liefert Ergebnisdaten
    • fbsql_rollback — Rollback a transaction to the database
    • fbsql_rows_fetched — Get the number of rows affected by the last statement
    • fbsql_select_db — Wählt eine FrontBase-Datenbank aus
    • fbsql_set_characterset — Change input/output character set
    • fbsql_set_lob_mode — Setzt den LOB-Lese-Modus für eine FrontBase-Ergebnismenge
    • fbsql_set_password — Change the password for a given user
    • fbsql_set_transaction — Set the transaction locking and isolation
    • fbsql_start_db — Startet eine Datenbank auf einem lokalen oder entfernten Server
    • fbsql_stop_db — Stoppt eine Datenbank auf einem lokalen oder entferneten Server
    • fbsql_tablename — Liefert den Tabellennamen eines Felds
    • fbsql_tablename — Alias von fbsql_table_name
    • fbsql_username — Liest oder setzt den Benutzernamen für die Verbindung
    • fbsql_warnings — Aktivieren oder Deaktivieren von FrontBase-Warnungen


Einführung

Über diese Funktionen können Sie auf FrontBase Datenbank-Server zugreifen. Weiterführende Informationen über FrontBase erhalten Sie unter » http://www.frontbase.com/.

Die FrontBase-Dokumentation finden Sie unter » http://www.frontbase.com/cgi-bin/WebObjects/FBWebSite.woa.

Hinweis:

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 5.3.0.


Anforderungen

Sie müssen den FrontBase Datenbank-Server oder die fbsql-Client-Bibliotheken installieren, um die Funktionen nutzen zu können. FrontBase können Sie über » http://www.frontbase.com/ bekommen.


Installation

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 5.3.0

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: .

Um diese Funktionen nutzen zu können, muss PHP mit fbsql-Unterstützung kompiliert werden, hierzu dient die --with-fbsql[=DIR]-Option. Wird kein Pfad angegeben, sucht PHP die fbsql-Bibliotheken im Standardinstallationsverzeichnis der jeweiligen Plattform. Benutzer, die FrontBase an einem anderen Ort installiert haben, sollten den Pfad zu fbsql grundsätzlich angeben: --with-fbsql=/path/to/fbsql. Hierdurch wird PHP gezwungen, die von FrontBase installierten Bibliotheken zu nutzen, um Konflikte zu vermeiden.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

FrontBase configuration options
Name | Standard | Veränderbar | Changelog
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM |
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM |
fbsql.autocommit | "1" | PHP_INI_SYSTEM |
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM |
fbsql.max_links | "128" | PHP_INI_SYSTEM |
fbsql.max_connections | "128" | PHP_INI_SYSTEM |
fbsql.max_results | "128" | PHP_INI_SYSTEM |
fbsql.batchSize | "1000" | PHP_INI_SYSTEM | Entfernt in PHP 5.1.0.
fbsql.default_host | NULL | PHP_INI_SYSTEM |
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM |
fbsql.default_password | "" | PHP_INI_SYSTEM |
fbsql.default_database | "" | PHP_INI_SYSTEM |
fbsql.default_database_password | "" | PHP_INI_SYSTEM |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

FBSQL_ASSOC (integer)
FBSQL_NUM (integer)
FBSQL_BOTH (integer)
FBSQL_LOCK_DEFERRED (integer)
FBSQL_LOCK_OPTIMISTIC (integer)
FBSQL_LOCK_PESSIMISTIC (integer)
FBSQL_ISO_READ_UNCOMMITTED (integer)
FBSQL_ISO_READ_COMMITTED (integer)
FBSQL_ISO_REPEATABLE_READ (integer)
FBSQL_ISO_SERIALIZABLE (integer)
FBSQL_ISO_VERSIONED (integer)
FBSQL_UNKNOWN (integer)
FBSQL_STOPPED (integer)
FBSQL_STARTING (integer)
FBSQL_RUNNING (integer)
FBSQL_STOPPING (integer)
FBSQL_NOEXEC (integer)
FBSQL_LOB_DIRECT (integer)
FBSQL_LOB_HANDLE (integer)


FrontBase Funktionen

Inhaltsverzeichnis

  • fbsql_affected_rows — Ermittelt die Anzahl der von der vorherigen FrontBase-Operation betroffenen Datensätze
  • fbsql_autocommit — Aktiviert oder deaktiviert Autocommit
  • fbsql_blob_size — Get the size of a BLOB
  • fbsql_change_user — Wechselt den eingeloggten Benutzer der aktiven Verbindung
  • fbsql_clob_size — Get the size of a CLOB
  • fbsql_close — Beendet eine FrontBase-Verbindung
  • fbsql_commit — Wendet eine Transaktion auf die Datenbank an
  • fbsql_connect — Öffnet eine Verbindung zu einem FrontBase-Server
  • fbsql_create_blob — Create a BLOB
  • fbsql_create_clob — Create a CLOB
  • fbsql_create_db — Erstellt eine FrontBase-Datenbank
  • fbsql_data_seek — Bewegt den internen Ergebnis-Zeiger
  • fbsql_database_password — Sets or retrieves the password for a FrontBase database
  • fbsql_database — Lesen oder Setzen des Datenbanknamens, der mit einer Verbindung verwendet wird
  • fbsql_db_query — Absetzen einer Anfrage an die Datenbank
  • fbsql_db_status — Ermittelt den Status einer angegebenen Datenbank
  • fbsql_drop_db — Löschen (DROP) einer FrontBase-Datenbank
  • fbsql_errno — Liefert die numerische Fehlermeldung der der letzten Operation zurück
  • fbsql_error — Liefert den Fehlertext der zuvor ausgeführten Operation
  • fbsql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_assoc — Fetch a result row as an associative array
  • fbsql_fetch_field — Liefert ein Objekt mit Feldinformationen aus einem Abfrageergebnis
  • fbsql_fetch_lengths — Get the length of each output in a result
  • fbsql_fetch_object — Fetch a result row as an object
  • fbsql_fetch_row — Liefert einen Datensatz als numerisches Array
  • fbsql_field_flags — Get the flags associated with the specified field in a result
  • fbsql_field_len — Returns the length of the specified field
  • fbsql_field_name — Liefert den Namen des angegebenen Feldes im Ergebnis
  • fbsql_field_seek — Setzt den Ergebniszeiger auf den angegebenen Feldoffset
  • fbsql_field_table — Liefert den Namen der Tabelle, die das genannte Feld enthält
  • fbsql_field_type — Liefert den Typ des angegebenen Feldes in einem Ergebnis
  • fbsql_free_result — Gibt vom Ergebnis belegten Speicher wieder frei
  • fbsql_get_autostart_info — Beschreibung
  • fbsql_hostname — Ermittelt oder setzt den mit einer Verbindung verwendeten Hostnamen
  • fbsql_insert_id — Get the id generated from the previous INSERT operation
  • fbsql_list_dbs — List databases available on a FrontBase server
  • fbsql_list_fields — List FrontBase result fields
  • fbsql_list_tables — List tables in a FrontBase database
  • fbsql_next_result — Setzt den internen Ergebniskennungszeiger auf das nächste Ergebnis
  • fbsql_num_fields — Ermittelt Anzahl der Felder im Ergebnis
  • fbsql_num_rows — Liefert die Anzahl der Datensätze in einem Ergebnis
  • fbsql_password — Liest oder setzt das Bentuzerpasswort für eine Verbindung
  • fbsql_pconnect — Öffnet eine persistente Verbindung zu einem FrontBase-Server
  • fbsql_query — Sendet eine FrontBase-Abfrage
  • fbsql_read_blob — Read a BLOB from the database
  • fbsql_read_clob — Read a CLOB from the database
  • fbsql_result — Liefert Ergebnisdaten
  • fbsql_rollback — Rollback a transaction to the database
  • fbsql_rows_fetched — Get the number of rows affected by the last statement
  • fbsql_select_db — Wählt eine FrontBase-Datenbank aus
  • fbsql_set_characterset — Change input/output character set
  • fbsql_set_lob_mode — Setzt den LOB-Lese-Modus für eine FrontBase-Ergebnismenge
  • fbsql_set_password — Change the password for a given user
  • fbsql_set_transaction — Set the transaction locking and isolation
  • fbsql_start_db — Startet eine Datenbank auf einem lokalen oder entfernten Server
  • fbsql_stop_db — Stoppt eine Datenbank auf einem lokalen oder entferneten Server
  • fbsql_tablename — Liefert den Tabellennamen eines Felds
  • fbsql_tablename — Alias von fbsql_table_name
  • fbsql_username — Liest oder setzt den Benutzernamen für die Verbindung
  • fbsql_warnings — Aktivieren oder Deaktivieren von FrontBase-Warnungen


Ermittelt die Anzahl der von der vorherigen FrontBase-Operation betroffenen Datensätze

  • « FrontBase Funktionen
  • fbsql_autocommit »
  • PHP Manual
  • FrontBase Funktionen
  • Ermittelt die Anzahl der von der vorherigen FrontBase-Operation betroffenen Datensätze

fbsql_affected_rows

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_affected_rows — Ermittelt die Anzahl der von der vorherigen FrontBase-Operation betroffenen Datensätze

Beschreibung

fbsql_affected_rows ( resource $link_identifier = ? ) : int

fbsql_affected_rows() liefert die Anzahl der von der letzten INSERT-, UPDATE- oder DELETE-Abfrage betroffenen Datensätze auf dem Server, der mit dem angegebenen link_identifier assoziiert ist.

Hinweis:

Falls Sie Transaktionen verwenden, müssen Sie fbsql_affected_rows() unmittelbar nach Ihrer INSERT-, UPDATE-, oder DELETE-Abfrage aufrufen, nicht nach dem Commit.

War die letzte Abfrage eine DELETE-Anweisung ohne WHERE-Bedingung, wurden zwar alle Datensätze aus der Tabelle gelöscht, aber diese Funktion gibt in diesem Falle trotzdem Null(0) zurück.

Hinweis:

Benutzen Sie UPDATE, wird FrontBase keine Spalten aktualisieren, bei denen der Neue dem Alten Wert entspricht. Dies kann dazu führen, dass fbsql_affected_rows() unter Umständen nicht die Anzahl der passenden Datensätze liefert, sondern nur die, die tatsächlich durch die Anfrage betroffen waren.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Falls die letze Anfrage fehlschlug, liefert diese Funktion -1 zurück.

Siehe auch

  • fbsql_num_rows() - Liefert die Anzahl der Datensätze in einem Ergebnis


Aktiviert oder deaktiviert Autocommit

  • « fbsql_affected_rows
  • fbsql_blob_size »
  • PHP Manual
  • FrontBase Funktionen
  • Aktiviert oder deaktiviert Autocommit

fbsql_autocommit

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_autocommit — Aktiviert oder deaktiviert Autocommit

Beschreibung

fbsql_autocommit ( resource $link_identifier , bool $OnOff = ? ) : bool

Gibt den derzeitigen Autocommit-Status zurück.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

OnOff

Wird dieser optionale Parameter angegeben, wird der Autocommit-Status geändert.

Ist OnOff true werden aus Abfragen resultierende Änderungen sofort in die Datenbank geschrieben (committed), wenn keine Fehler aufgetreten sind.

Ist OnOff false muss der Benutzer die Änderungen über fbsql_commit() schreiben (commit) oder über fbsql_rollback()die Datentransaktion rückgängig machen (rollback).

Rückgabewerte

Gibt den derzeitigen Autocommit-Status als booleschen Wert zurück.

Siehe auch

  • fbsql_commit() - Wendet eine Transaktion auf die Datenbank an
  • fbsql_rollback() - Rollback a transaction to the database


Get the size of a BLOB

  • « fbsql_autocommit
  • fbsql_change_user »
  • PHP Manual
  • FrontBase Funktionen
  • Get the size of a BLOB

fbsql_blob_size

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0)

fbsql_blob_size — Get the size of a BLOB

Beschreibung

fbsql_blob_size ( string $blob_handle , resource $link_identifier = ? ) : int

Returns the size of the given BLOB.

Parameter-Liste

blob_handle

A BLOB handle, returned by fbsql_create_blob().

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Returns the BLOB size as an integer, or false on error.

Siehe auch

  • fbsql_clob_size() - Get the size of a CLOB


Wechselt den eingeloggten Benutzer der aktiven Verbindung

  • « fbsql_blob_size
  • fbsql_clob_size »
  • PHP Manual
  • FrontBase Funktionen
  • Wechselt den eingeloggten Benutzer der aktiven Verbindung

fbsql_change_user

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_change_user — Wechselt den eingeloggten Benutzer der aktiven Verbindung

Beschreibung

fbsql_change_user ( string $user , string $password , string $database = ? , resource $link_identifier = ? ) : bool

fbsql_change_user() wechselt den eingeloggten Benutzer der angegebenen Verbindung. Wenn die Autorisation des neuen Benutzers und Passworts fehlschlägt, bleibt der momentan verbundene Benutzer aktiv.

Parameter-Liste

user

Der neue Benutzername.

password

Das neue Benutzerpasswort.

database

Wenn angegeben, wird dies zur standardmäßigen oder aktuellen Datenbank, nachdem der Benutzer gewechselt wurde.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Get the size of a CLOB

  • « fbsql_change_user
  • fbsql_close »
  • PHP Manual
  • FrontBase Funktionen
  • Get the size of a CLOB

fbsql_clob_size

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0)

fbsql_clob_size — Get the size of a CLOB

Beschreibung

fbsql_clob_size ( string $clob_handle , resource $link_identifier = ? ) : int

Returns the size of the given CLOB.

Parameter-Liste

clob_handle

A CLOB handle, returned by fbsql_create_clob().

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Returns the CLOB size as an integer, or false on error.

Siehe auch

  • fbsql_blob_size() - Get the size of a BLOB


Beendet eine FrontBase-Verbindung

  • « fbsql_clob_size
  • fbsql_commit »
  • PHP Manual
  • FrontBase Funktionen
  • Beendet eine FrontBase-Verbindung

fbsql_close

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_close — Beendet eine FrontBase-Verbindung

Beschreibung

fbsql_close ( resource $link_identifier = ? ) : bool

Beendet eine Verbindung mit dem FrontBase-Server, welche die angegebene Verbindungskennung hat.

Die Benutzung von fbsql_close() ist normalerweise nicht nötig, da alle nicht-persistenten geöffneten Verbindungen automatisch am Ende der Scriptausführung geschlossen werden.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 fbsql_close() Beispiel

<?php
$link = fbsql_connect("localhost", "_SYSTEM", "secret")
    or die ("Konnte nicht verbinden");
echo "Erfolgreich verbunden";
fbsql_close($link);
?>

Siehe auch

  • fbsql_connect() - Öffnet eine Verbindung zu einem FrontBase-Server
  • fbsql_pconnect() - Öffnet eine persistente Verbindung zu einem FrontBase-Server


Wendet eine Transaktion auf die Datenbank an

  • « fbsql_close
  • fbsql_connect »
  • PHP Manual
  • FrontBase Funktionen
  • Wendet eine Transaktion auf die Datenbank an

fbsql_commit

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_commit — Wendet eine Transaktion auf die Datenbank an

Beschreibung

fbsql_commit ( resource $link_identifier = ? ) : bool

Beendet die momentane Transaktion durch Schreiben aller inserts, updates und deletes auf den Datenträger und Freigabe aller von der Transaktion gesperrten Reihen und Tabellen. Dieser Befehl wird nur benötigt, wenn autocommit auf false gesetzt wurde.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fbsql_autocommit() - Aktiviert oder deaktiviert Autocommit
  • fbsql_rollback() - Rollback a transaction to the database


Öffnet eine Verbindung zu einem FrontBase-Server

  • « fbsql_commit
  • fbsql_create_blob »
  • PHP Manual
  • FrontBase Funktionen
  • Öffnet eine Verbindung zu einem FrontBase-Server

fbsql_connect

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_connect — Öffnet eine Verbindung zu einem FrontBase-Server

Beschreibung

fbsql_connect ( string $hostname = ? , string $username = ? , string $password = ? ) : resource

fbsql_connect() stellt eine Verbindung zu einem FrontBase-Server her.

Sollte ein zweites Mal fbsql_connect() mit den gleichen Argumenten aufgerufen werden, wird keine neue Verbindung hergestellt, sondern statt dessen liefert die Funktion die Kennung der bereits bestehenden Verbindung zurück.

Die Verbindung wird geschlossen sobald die Scriptausführung beendet wird oder vorher, wenn fbsql_close() aufgerufen wird.

Parameter-Liste

hostname

Der Server-Hostname.

username

Der Benutzername für die Verbindung.

password

Das Passwort für die Verbindung.

Rückgabewerte

Liefert bei Erfolg eine positive FrontBase-Verbindungskennung oder false im Fehlerfall.

Beispiele

Beispiel #1 fbsql_connect()-Beispiel:

<?php

$link = fbsql_connect("localhost", "_SYSTEM", "geheim")
    or die ("Konnte keine Verbindung herstellen!");
echo "Verbinden mit FrontBase erfolgreich";
fbsql_close($link);

?>

Siehe auch

  • fbsql_pconnect() - Öffnet eine persistente Verbindung zu einem FrontBase-Server
  • fbsql_close() - Beendet eine FrontBase-Verbindung


Create a BLOB

  • « fbsql_connect
  • fbsql_create_clob »
  • PHP Manual
  • FrontBase Funktionen
  • Create a BLOB

fbsql_create_blob

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0)

fbsql_create_blob — Create a BLOB

Beschreibung

fbsql_create_blob ( string $blob_data , resource $link_identifier = ? ) : string

Creates a BLOB from the given data.

Parameter-Liste

blob_data

The BLOB data.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Returns a resource handle to the newly created BLOB, which can be used with insert and update commands to store the BLOB in the database.

Beispiele

Beispiel #1 fbsql_create_blob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
$filename = "blobfile.bin";
$fp = fopen($filename, "rb");
$blobdata = fread($fp, filesize($filename));
fclose($fp);

$blobHandle = fbsql_create_blob($blobdata, $link);

$sql = "INSERT INTO BLOB_TABLE (BLOB_COLUMN) VALUES ($blobHandle);";
$rs = fbsql_query($sql, $link);
?>

Siehe auch

  • fbsql_create_clob() - Create a CLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_read_clob() - Read a CLOB from the database
  • fbsql_set_lob_mode() - Setzt den LOB-Lese-Modus für eine FrontBase-Ergebnismenge


Create a CLOB

  • « fbsql_create_blob
  • fbsql_create_db »
  • PHP Manual
  • FrontBase Funktionen
  • Create a CLOB

fbsql_create_clob

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0)

fbsql_create_clob — Create a CLOB

Beschreibung

fbsql_create_clob ( string $clob_data , resource $link_identifier = ? ) : string

Creates a CLOB from the given data.

Parameter-Liste

clob_data

The CLOB data.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Returns a resource handle to the newly created CLOB, which can be used with insert and update commands to store the CLOB in the database.

Beispiele

Beispiel #1 fbsql_create_clob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
$filename = "clob_file.txt";
$fp = fopen($filename, "rb");
$clobdata = fread($fp, filesize($filename));
fclose($fp);

$clobHandle = fbsql_create_clob($clobdata, $link);

$sql = "INSERT INTO CLOB_TABLE (CLOB_COLUMN) VALUES ($clobHandle);";
$rs = fbsql_query($sql, $link);
?>

Siehe auch

  • fbsql_create_blob() - Create a BLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_read_clob() - Read a CLOB from the database
  • fbsql_set_lob_mode() - Setzt den LOB-Lese-Modus für eine FrontBase-Ergebnismenge


Erstellt eine FrontBase-Datenbank

  • « fbsql_create_clob
  • fbsql_data_seek »
  • PHP Manual
  • FrontBase Funktionen
  • Erstellt eine FrontBase-Datenbank

fbsql_create_db

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_create_db — Erstellt eine FrontBase-Datenbank

Beschreibung

fbsql_create_db ( string $database_name , resource $link_identifier = ? , string $database_options = ? ) : bool

Versucht eine neue Datenbank auf dem angegebenen Server anzulegen.

Parameter-Liste

database_name

Der Datenbankname als Zeichenkette.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

database_options

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 fbsql_create_db() Beispiel

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "geheim")
    or die ("Konnte nicht verbinden");
if (fbsql_create_db("my_db")) {
    echo "Datenbank erfolgreich erstellt\n";
} else {
    printf("Fehler beim Erstellen der Datenbank: %s\n", fbsql_error ());
}
?>

Siehe auch

  • fbsql_drop_db() - Löschen (DROP) einer FrontBase-Datenbank


Bewegt den internen Ergebnis-Zeiger

  • « fbsql_create_db
  • fbsql_database_password »
  • PHP Manual
  • FrontBase Funktionen
  • Bewegt den internen Ergebnis-Zeiger

fbsql_data_seek

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_data_seek — Bewegt den internen Ergebnis-Zeiger

Beschreibung

fbsql_data_seek ( resource $result , int $row_number ) : bool

Bewegt den internen Datensatz-Zeiger eines FrontBase-Abfrageergebnisses zum Datensatz mit der übergebenen Nummer.

Der nächste Aufruf von fbsql_fetch_row() liefert den entsprechenden Datensatz.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

row_number

Die Datensatznummer. Beginnt bei 0.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 fbsql_data_seek() Beispiel

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "geheim")
    or die("Verbindung nicht möglich");

fbsql_select_db("samp_db")
    or die("Konnte Datenbank nicht auswählen");

$query = "SELECT last_name, first_name FROM friends;";
$result = fbsql_query($query)
    or die("Abfrage gescheitert");

// Datensätze in umgekehrter Reihenfolge holen

for ($i = fbsql_num_rows($result) - 1; $i >=0; $i--) {
    if (!fbsql_data_seek($result, $i)) {
        printf("Konnte nicht zum Datensatz %d wechseln\n", $i);
        continue;
    }

    if (!($row = fbsql_fetch_object($result)))
        continue;

    echo $row->last_name . $row->first_name . "<br />\n";
}

fbsql_free_result ($result);
?>


Sets or retrieves the password for a FrontBase database

  • « fbsql_data_seek
  • fbsql_database »
  • PHP Manual
  • FrontBase Funktionen
  • Sets or retrieves the password for a FrontBase database

fbsql_database_password

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_database_password — Sets or retrieves the password for a FrontBase database

Beschreibung

fbsql_database_password ( resource $link_identifier , string $database_password = ? ) : string

Sets and retrieves the database password used by the connection. If a database is protected by a database password, the user must call this function before calling fbsql_select_db().

If no link is open, the function will try to establish a link as if fbsql_connect() was called, and use it.

This function does not change the database password in the database nor can it be used to retrieve the database password for a database.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

database_password

The database password, as a string. If given, the function sets the database password for the specified link identifier.

Rückgabewerte

Returns the database password associated with the link identifier.

Beispiele

Beispiel #1 fbsql_create_clob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
fbsql_database_password($link, "secret db password");
fbsql_select_db($database, $link);
?>

Siehe auch

  • fbsql_connect() - Öffnet eine Verbindung zu einem FrontBase-Server
  • fbsql_pconnect() - Öffnet eine persistente Verbindung zu einem FrontBase-Server
  • fbsql_select_db() - Wählt eine FrontBase-Datenbank aus


Lesen oder Setzen des Datenbanknamens, der mit einer Verbindung verwendet wird

  • « fbsql_database_password
  • fbsql_db_query »
  • PHP Manual
  • FrontBase Funktionen
  • Lesen oder Setzen des Datenbanknamens, der mit einer Verbindung verwendet wird

fbsql_database

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_database — Lesen oder Setzen des Datenbanknamens, der mit einer Verbindung verwendet wird

Beschreibung

fbsql_database ( resource $link_identifier , string $database = ? ) : string

Lesen oder Setzen des Datenbanknamens, der mit der Verbindung verwendet wird.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

database

Der Datenbankname. Wenn angegeben, wird die Standard-Datenbank der Verbindung zu database geändert.

Rückgabewerte

Gibt den Namen der Datenbank zurück, die mit dieser Verbindung verwendet wird.


Absetzen einer Anfrage an die Datenbank

  • « fbsql_database
  • fbsql_db_status »
  • PHP Manual
  • FrontBase Funktionen
  • Absetzen einer Anfrage an die Datenbank

fbsql_db_query

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_db_query — Absetzen einer Anfrage an die Datenbank

Beschreibung

fbsql_db_query ( string $database , string $query , resource $link_identifier = ? ) : resource

fbsql_db_query() wählt eine Datenbank aus und führt darauf eine Abfrage aus.

Parameter-Liste

database

Die auszuwählende Datenbank.

query

Die auszuführende SQL-Abfrage.

Hinweis:

Die Abfragezeichenkette sollte immer mit einem Semikolon enden.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Liefert die positive FrontBase-Ergebniskennung des Abfrageergebnisses oder false bei einem Fehler.

Siehe auch

  • fbsql_query() - Sendet eine FrontBase-Abfrage
  • fbsql_connect() - Öffnet eine Verbindung zu einem FrontBase-Server


Ermittelt den Status einer angegebenen Datenbank

  • « fbsql_db_query
  • fbsql_drop_db »
  • PHP Manual
  • FrontBase Funktionen
  • Ermittelt den Status einer angegebenen Datenbank

fbsql_db_status

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0)

fbsql_db_status — Ermittelt den Status einer angegebenen Datenbank

Beschreibung

fbsql_db_status ( string $database_name , resource $link_identifier = ? ) : int

Ermittelt den momentanen Status der angegebenen Datenbank.

Parameter-Liste

database_name

Der Datenbankname.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Gibt einen Integerwert mit dem momentanen Status zurück. Dies kann eine der folgenden Konstanten sein:

  • false - Der Ausführungshandler für den Host war ungültig. Dieser Fehler tritt auf wenn link_identifier direkt zu einer Datenbank über eine Portnummer verbindet. FBExec kann auf dem Server verfügbar sein, aber es wurde keine Verbindung hergestellt.
  • FBSQL_UNKNOWN - Der Status ist unbekannt.
  • FBSQL_STOPPED - Die Datenbank läuft nicht. Benutzen Sie fbsql_start_db(), um die Datenbank zu starten.
  • FBSQL_STARTING - Die Datenbank startet.
  • FBSQL_RUNNING - Die Datenbank läuft und kann für SQL-Operationen benutzt werden.
  • FBSQL_STOPPING - Die Datenbank stoppt.
  • FBSQL_NOEXEC - FBExec wird auf dem Server nicht ausgeführt und es ist nicht möglich, den Status der Datenbank auszulesen.

Siehe auch

  • fbsql_start_db() - Startet eine Datenbank auf einem lokalen oder entfernten Server
  • fbsql_stop_db() - Stoppt eine Datenbank auf einem lokalen oder entferneten Server


Löschen (DROP) einer FrontBase-Datenbank

  • « fbsql_db_status
  • fbsql_errno »
  • PHP Manual
  • FrontBase Funktionen
  • Löschen (DROP) einer FrontBase-Datenbank

fbsql_drop_db

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_drop_db — Löschen (DROP) einer FrontBase-Datenbank

Beschreibung

fbsql_drop_db ( string $database_name , resource $link_identifier = ? ) : bool

fbsql_drop_db() versucht eine ganze Datenbank von dem Server zu entfernen, der mit der angegebenen Verbindungkennung assoziert ist.

Parameter-Liste

database_name

Der Datenbankname als Zeichenkette.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fbsql_create_db() - Erstellt eine FrontBase-Datenbank


Liefert die numerische Fehlermeldung der der letzten Operation zurück

  • « fbsql_drop_db
  • fbsql_error »
  • PHP Manual
  • FrontBase Funktionen
  • Liefert die numerische Fehlermeldung der der letzten Operation zurück

fbsql_errno

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_errno — Liefert die numerische Fehlermeldung der der letzten Operation zurück

Beschreibung

fbsql_errno ( resource $link_identifier = ? ) : int

Liefert die Fehlernummer der letzten FrontBase-Operation.

Fehler, die vom fbsql Datenbank-Backend kommen führen nicht zu Warnungen. Stattdessen sollten Sie die Funktion fbsql_errno() verwenden, um die Fehlernummer auszulesen. Beachten Sie, dass diese Funktion nur die Fehlernummer der zuletzt ausgeführten fbsql-Funktion zurückliefert (ausgenommen sind die Funktionen fbsql_error() und fbsql_errno()). Wenn Sie diese Funktion verwenden wollen, sollten Sie den Wert überprüfen, bevor Sie eine weitere fbsql-Funktion ausführen.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Liefert die Fehlernummer der letzten fbsql-Funktion, oder 0 (Null), wenn kein Fehler aufgetreten ist.

Beispiele

Beispiel #1 fbsql_errno() Beispiel

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nicht_existierende_datenbank");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nicht_existierende_tabelle;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

Siehe auch

  • fbsql_error() - Liefert den Fehlertext der zuvor ausgeführten Operation
  • fbsql_warnings() - Aktivieren oder Deaktivieren von FrontBase-Warnungen


Liefert den Fehlertext der zuvor ausgeführten Operation

  • « fbsql_errno
  • fbsql_fetch_array »
  • PHP Manual
  • FrontBase Funktionen
  • Liefert den Fehlertext der zuvor ausgeführten Operation

fbsql_error

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_error — Liefert den Fehlertext der zuvor ausgeführten Operation

Beschreibung

fbsql_error ( resource $link_identifier = ? ) : string

Liefert den Fehlertext der zuvor ausgeführten FrontBase-Operation.

Fehler, die vom FrontBase-Server kommen, führen nicht zu Warnungen. Stattdessen sollten Sie die Funktion fbsql_error() verwenden, um den Fehlertext zu erhalten. Beachten Sie, dass diese Funktion nur den Fehlertext der zuletzt ausgeführten fbsql-Funktion liefert (ausgenommen sind die Funktionen fbsql_error() und fbsql_errno()). Wenn Sie die Funktion verwenden wollen, sollten Sie den Wert überprüfen, bevor Sie eine weitere fbsql-Funktion aufrufen.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Liefert den Fehlertext der zuletzt ausgeführten fbsql-Funktion, oder '' (eine leere Zeichenkette), falls kein Fehler aufgetreten ist.

Beispiele

Beispiel #1 fbsql_error() Beispiel

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nicht_existierende_datenbank");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nicht_existierende_tabelle;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

Siehe auch

  • fbsql_errno() - Liefert die numerische Fehlermeldung der der letzten Operation zurück
  • fbsql_warnings() - Aktivieren oder Deaktivieren von FrontBase-Warnungen


Fetch a result row as an associative array, a numeric array, or both

  • « fbsql_error
  • fbsql_fetch_assoc »
  • PHP Manual
  • FrontBase Funktionen
  • Fetch a result row as an associative array, a numeric array, or both

fbsql_fetch_array

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_fetch_array — Fetch a result row as an associative array, a numeric array, or both

Beschreibung

fbsql_fetch_array ( resource $result , int $result_type = ? ) : array

fbsql_fetch_array() is a combination of
fbsql_fetch_row() and
fbsql_fetch_assoc().

An important thing to note is that using fbsql_fetch_array() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

result_type

A constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, or FBSQL_BOTH.

When using FBSQL_BOTH, 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.

Rückgabewerte

Returns an array that corresponds to the fetched row, or false if there are no more rows.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must the numeric index of the column or make an alias for the column.

select t1.f1 as foo t2.f1 as bar from t1, t2

Beispiele

Beispiel #1 fbsql_fetch_array() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select user_id, fullname from table");
while ($row = fbsql_fetch_array($result)) {
    echo "user_id: " . $row["user_id"] . "<br />\n";
    echo "user_id: " . $row[0] . "<br />\n";
    echo "fullname: " . $row["fullname"] . "<br />\n";
    echo "fullname: " . $row[1] . "<br />\n";
}
fbsql_free_result($result);
?>

Siehe auch

  • fbsql_fetch_row() - Liefert einen Datensatz als numerisches Array
  • fbsql_fetch_assoc() - Fetch a result row as an associative array
  • fbsql_fetch_object() - Fetch a result row as an object


Fetch a result row as an associative array

  • « fbsql_fetch_array
  • fbsql_fetch_field »
  • PHP Manual
  • FrontBase Funktionen
  • Fetch a result row as an associative array

fbsql_fetch_assoc

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_fetch_assoc — Fetch a result row as an associative array

Beschreibung

fbsql_fetch_assoc ( resource $result ) : array

Calling fbsql_fetch_assoc() is equivalent to calling fbsql_fetch_array() with FBSQL_ASSOC as second parameter. It only returns an associative array.

This is the way fbsql_fetch_array() originally worked. If you need the numeric indices as well as the associative, use fbsql_fetch_array().

An important thing to note is that using fbsql_fetch_assoc() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

Rückgabewerte

Returns an associative array that corresponds to the fetched row, or false if there are no more rows.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use fbsql_fetch_array() and have it return the numeric indices as well.

Beispiele

Beispiel #1 fbsql_fetch_assoc() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_assoc($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
fbsql_free_result($result);
?>

Siehe auch

  • fbsql_fetch_row() - Liefert einen Datensatz als numerisches Array
  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_object() - Fetch a result row as an object


Liefert ein Objekt mit Feldinformationen aus einem Abfrageergebnis

  • « fbsql_fetch_assoc
  • fbsql_fetch_lengths »
  • PHP Manual
  • FrontBase Funktionen
  • Liefert ein Objekt mit Feldinformationen aus einem Abfrageergebnis

fbsql_fetch_field

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_fetch_field — Liefert ein Objekt mit Feldinformationen aus einem Abfrageergebnis

Beschreibung

fbsql_fetch_field ( resource $result , int $field_offset = ? ) : object

Wird verwendet, um Feldinformationen aus einem bestimmten Abfrageergebnis zu erhalten.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

field_offset

Der numerische Offset des Feldes. Der Feldindex beginnt mit 0. Wenn nicht angegeben, wird das nächste Feld, das noch nicht durch fbsql_fetch_field() ausgelesen wurde, ermittelt.

Rückgabewerte

Gibt ein Objekt mit Feldinformationen zurück, oder false im Fehlerfall.

Die Eigenschaften des Objekts sind:

  • name - Feldname
  • table - Name der Tabelle zu der das Feld gehört
  • max_length - maximale Länge des Feldes
  • not_null - 1, wenn das Feld nicht null sein kann
  • type - der Typ des Feldes

Beispiele

Beispiel #1 fbsql_fetch_field() Beispiel

<?php
fbsql_connect($host, $user, $password)
    or die ("Keine Verbindung möglich");
$result = fbsql_db_query("database", "select * from table")
    or die ("Abfrage gescheitert");
# get column metadata
$i = 0;
while ($i < fbsql_num_fields($result)) {
    echo "Information für Feld $i:<br />\n";
    $meta = fbsql_fetch_field($result);
    if (!$meta) {
        echo "Keine Information verfügbar<br />\n";
    }
    echo "<pre>
max_length:   $meta->max_length
name:         $meta->name
not_null:     $meta->not_null
table:        $meta->table
type:         $meta->type
</pre>";
    $i++;
}
fbsql_free_result($result);
?>

Siehe auch

  • fbsql_field_seek() - Setzt den Ergebniszeiger auf den angegebenen Feldoffset


Get the length of each output in a result

  • « fbsql_fetch_field
  • fbsql_fetch_object »
  • PHP Manual
  • FrontBase Funktionen
  • Get the length of each output in a result

fbsql_fetch_lengths

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_fetch_lengths — Get the length of each output in a result

Beschreibung

fbsql_fetch_lengths ( resource $result ) : array

Stores the lengths of each result column in the last row returned by
fbsql_fetch_row(),
fbsql_fetch_array() and
fbsql_fetch_object() in an array.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

Rückgabewerte

Returns an array, starting at offset 0, that corresponds to the lengths of each field in the last row fetched by fbsql_fetch_row(), or false on error.

Siehe auch

  • fbsql_fetch_row() - Liefert einen Datensatz als numerisches Array


Fetch a result row as an object

  • « fbsql_fetch_lengths
  • fbsql_fetch_row »
  • PHP Manual
  • FrontBase Funktionen
  • Fetch a result row as an object

fbsql_fetch_object

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_fetch_object — Fetch a result row as an object

Beschreibung

fbsql_fetch_object ( resource $result ) : object

fbsql_fetch_object() is similar to fbsql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

Speed-wise, the function is identical to fbsql_fetch_array(), and almost as quick as fbsql_fetch_row() (the difference is insignificant).

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

Rückgabewerte

Returns an object with properties that correspond to the fetched row, or false if there are no more rows.

Beispiele

Beispiel #1 fbsql_fetch_object() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
fbsql_free_result($result);
?>

Siehe auch

  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_row() - Liefert einen Datensatz als numerisches Array
  • fbsql_fetch_assoc() - Fetch a result row as an associative array


Liefert einen Datensatz als numerisches Array

  • « fbsql_fetch_object
  • fbsql_field_flags »
  • PHP Manual
  • FrontBase Funktionen
  • Liefert einen Datensatz als numerisches Array

fbsql_fetch_row

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_fetch_row — Liefert einen Datensatz als numerisches Array

Beschreibung

fbsql_fetch_row ( resource $result ) : array

fbsql_fetch_row() liefert einen Datensatz aus dem Abfrageergebnis mit der übergebenen Kennung.

Wiederholtes Aufrufen von fbsql_fetch_row() liefert den nächsten Datensatz des Abfrageergebnisses oder false, wenn keine weiteren Datensätze verfügbar sind.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

Rückgabewerte

Liefert ein Array, das der Ergebniszeile entspricht, wobei jedes Ergebnisfeld unter einem Offset, beginnend mit 0, gespeichert ist, oder false, wenn es keine weiteren Zeilen gibt.

Siehe auch

  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_assoc() - Fetch a result row as an associative array
  • fbsql_fetch_object() - Fetch a result row as an object
  • fbsql_data_seek() - Bewegt den internen Ergebnis-Zeiger
  • fbsql_fetch_lengths() - Get the length of each output in a result
  • fbsql_result() - Liefert Ergebnisdaten


Get the flags associated with the specified field in a result

  • « fbsql_fetch_row
  • fbsql_field_len »
  • PHP Manual
  • FrontBase Funktionen
  • Get the flags associated with the specified field in a result

fbsql_field_flags

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_field_flags — Get the flags associated with the specified field in a result

Beschreibung

fbsql_field_flags ( resource $result , int $field_offset = ? ) : string

Gets the flags associated with the specified field in a result.

Parameter-Liste

result

A result pointer returned by fbsql_list_fields().

field_offset

The numerical offset of the field. The field index starts at 0.

Rückgabewerte

Returns the field flags of the specified field as a single word per flag separated by a single space, so that you can split the returned value using explode().


Returns the length of the specified field

  • « fbsql_field_flags
  • fbsql_field_name »
  • PHP Manual
  • FrontBase Funktionen
  • Returns the length of the specified field

fbsql_field_len

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_field_len — Returns the length of the specified field

Beschreibung

fbsql_field_len ( resource $result , int $field_offset = ? ) : int

Returns the length of the specified field.

Parameter-Liste

result

A result pointer returned by fbsql_list_fields().

field_offset

The numerical offset of the field. The field index starts at 0.

Rückgabewerte

Returns the length of the specified field.


Liefert den Namen des angegebenen Feldes im Ergebnis

  • « fbsql_field_len
  • fbsql_field_seek »
  • PHP Manual
  • FrontBase Funktionen
  • Liefert den Namen des angegebenen Feldes im Ergebnis

fbsql_field_name

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_field_name — Liefert den Namen des angegebenen Feldes im Ergebnis

Beschreibung

fbsql_field_name ( resource $result , int $field_index = ? ) : string

Liefert den Namen des angegebenen Feldindex zurück.

Parameter-Liste

result

Eine Ergebniskennung, die von fbsql_list_fields() zurückgeliefert wurde.

field_index

Der numerische Offset des Felds. Der Feldindex beginnt mit 0.

Rückgabewerte

Liefert den Namen als Zeichenkette zurück, oder false wenn das Feld nicht existiert.

Beispiele

Beispiel #1 fbsql_field_name() Beispiel

<?php
// Die Benutzertabelle besteht aus drei Feldern:
//   user_id
//   username
//   password.

$res = fbsql_db_query("users", "select * from users", $link);

echo fbsql_field_name($res, 0) . "\n";
echo fbsql_field_name($res, 2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

user_id
password

Siehe auch

  • fbsql_field_type() - Liefert den Typ des angegebenen Feldes in einem Ergebnis


Setzt den Ergebniszeiger auf den angegebenen Feldoffset

  • « fbsql_field_name
  • fbsql_field_table »
  • PHP Manual
  • FrontBase Funktionen
  • Setzt den Ergebniszeiger auf den angegebenen Feldoffset

fbsql_field_seek

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_field_seek — Setzt den Ergebniszeiger auf den angegebenen Feldoffset

Beschreibung

fbsql_field_seek ( resource $result , int $field_offset = ? ) : bool

Setzt den Feldzeiger auf den angegeben Feldoffset. Wird beim nächsten Aufruf von fbsql_fetch_field() kein Feldoffset übergeben, wird der Feldoffset zurückgeliefert, der bei fbsql_field_seek() angegeben wurde.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

field_offset

Der numerische Offset des Felds. Der Feldindex beginnt mit 0.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fbsql_fetch_field() - Liefert ein Objekt mit Feldinformationen aus einem Abfrageergebnis


Liefert den Namen der Tabelle, die das genannte Feld enthält

  • « fbsql_field_seek
  • fbsql_field_type »
  • PHP Manual
  • FrontBase Funktionen
  • Liefert den Namen der Tabelle, die das genannte Feld enthält

fbsql_field_table

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_field_table — Liefert den Namen der Tabelle, die das genannte Feld enthält

Beschreibung

fbsql_field_table ( resource $result , int $field_offset = ? ) : string

Liefert den Namen der Tabelle, die das genannte Feld enthält.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

field_offset

Der numerische Offset des Felds. Der Feldindex beginnt mit 0.

Rückgabewerte

Liefert den Namen der Tabelle als Zeichenkette zurück.


Liefert den Typ des angegebenen Feldes in einem Ergebnis

  • « fbsql_field_table
  • fbsql_free_result »
  • PHP Manual
  • FrontBase Funktionen
  • Liefert den Typ des angegebenen Feldes in einem Ergebnis

fbsql_field_type

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_field_type — Liefert den Typ des angegebenen Feldes in einem Ergebnis

Beschreibung

fbsql_field_type ( resource $result , int $field_offset = ? ) : string

fbsql_field_type() ist ähnlich zur Funktion fbsql_field_name(), allerdings wird der Feldtyp stattdessen zurückgeliefert.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

field_offset

Der numerische Offset des Felds. Der Feldindex beginnt mit 0.

Rückgabewerte

Liefert den Feldtyp als Zeichenkette zurück.

Der Feldtyp ist einer der folgenden Werte: int, real, string, blob, oder ein anderer, wie in der » FrontBase Dokumentation ausgeführt.

Beispiele

Beispiel #1 fbsql_field_type() Beispiel

<?php

fbsql_connect("localhost", "_SYSTEM", "");
fbsql_select_db("wisconsin");
$result = fbsql_query("SELECT * FROM onek;");
$fields = fbsql_num_fields($result);
$rows   = fbsql_num_rows($result);
$i = 0;
$table = fbsql_field_table($result, $i);
echo "Ihre '" .$table . "' Tabelle hat " . $fields . " Felder und " . $rows . " Datensaetze <br />";
echo "Die Tabelle hat die folgenden Felder <br />";
while ($i < $fields) {
    $type  = fbsql_field_type($result, $i);
    $name  = fbsql_field_name($result, $i);
    $len   = fbsql_field_len($result, $i);
    $flags = fbsql_field_flags($result, $i);
    echo $type . " " . $name . " " . $len . " " . $flags . "<br />";
    $i++;
}
fbsql_close();

?>

Siehe auch

  • fbsql_field_name() - Liefert den Namen des angegebenen Feldes im Ergebnis


Gibt vom Ergebnis belegten Speicher wieder frei

  • « fbsql_field_type
  • fbsql_get_autostart_info »
  • PHP Manual
  • FrontBase Funktionen
  • Gibt vom Ergebnis belegten Speicher wieder frei

fbsql_free_result

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_free_result — Gibt vom Ergebnis belegten Speicher wieder frei

Beschreibung

fbsql_free_result ( resource $result ) : bool

Gibt den Speicher frei, der mit der angegebenen result-Kennung assoziert ist.

fbsql_free_result() muss nur dann aufgerufen werden, wenn Sie sich bei Anfragen, die große Ergebnismengen liefern, Sorgen über den Speicherverbrauch machen. Nach Ablauf des PHP-Skripts wird der Speicher ohnehin freigegeben.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Beschreibung

  • « fbsql_free_result
  • fbsql_hostname »
  • PHP Manual
  • FrontBase Funktionen
  • Beschreibung

fbsql_get_autostart_info

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0)

fbsql_get_autostart_info —

Beschreibung

fbsql_get_autostart_info ( resource $link_identifier = ? ) : array
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.


Ermittelt oder setzt den mit einer Verbindung verwendeten Hostnamen

  • « fbsql_get_autostart_info
  • fbsql_insert_id »
  • PHP Manual
  • FrontBase Funktionen
  • Ermittelt oder setzt den mit einer Verbindung verwendeten Hostnamen

fbsql_hostname

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_hostname — Ermittelt oder setzt den mit einer Verbindung verwendeten Hostnamen

Beschreibung

fbsql_hostname ( resource $link_identifier , string $host_name = ? ) : string

Ermittelt oder setzt den mit einer Verbindung verwendeten Hostnamen.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

host_name

Wenn angegeben, wird dies der neue Hostname der Verbindung.

Rückgabewerte

Gibt den derzeitigen Hostnamen, der von der Verbindung verwendet wird, zürück.

Siehe auch

  • fbsql_username() - Liest oder setzt den Benutzernamen für die Verbindung
  • fbsql_password() - Liest oder setzt das Bentuzerpasswort für eine Verbindung


Get the id generated from the previous INSERT operation

  • « fbsql_hostname
  • fbsql_list_dbs »
  • PHP Manual
  • FrontBase Funktionen
  • Get the id generated from the previous INSERT operation

fbsql_insert_id

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_insert_id — Get the id generated from the previous INSERT operation

Beschreibung

fbsql_insert_id ( resource $link_identifier = ? ) : int

Gets the id generated from the previous INSERT operation which created a DEFAULT UNIQUE value.

Hinweis:

The value of the FrontBase SQL function fbsql_insert_id() always contains the most recently generated DEFAULT UNIQUE value, and is not reset between queries.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Returns the ID generated from the previous INSERT query, or 0 if the previous query does not generate an DEFAULT UNIQUE value.

If you need to save the value for later, be sure to call this function immediately after the query that generates the value.

Siehe auch

  • fbsql_affected_rows() - Ermittelt die Anzahl der von der vorherigen FrontBase-Operation betroffenen Datensätze


List databases available on a FrontBase server

  • « fbsql_insert_id
  • fbsql_list_fields »
  • PHP Manual
  • FrontBase Funktionen
  • List databases available on a FrontBase server

fbsql_list_dbs

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_list_dbs — List databases available on a FrontBase server

Beschreibung

fbsql_list_dbs ( resource $link_identifier = ? ) : resource

Return a result pointer containing the databases available from the current fbsql daemon. Use the fbsql_tablename() to traverse this result pointer.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Returns a result pointer or false on error.

Beispiele

Beispiel #1 fbsql_list_dbs() example

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');
$db_list = fbsql_list_dbs($link);

while ($row = fbsql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

database1
database2
database3
...

Hinweis:

The above code would just as easily work with fbsql_fetch_row() or other similar functions.

Siehe auch

  • fbsql_list_fields() - List FrontBase result fields
  • fbsql_list_tables() - List tables in a FrontBase database


List FrontBase result fields

  • « fbsql_list_dbs
  • fbsql_list_tables »
  • PHP Manual
  • FrontBase Funktionen
  • List FrontBase result fields

fbsql_list_fields

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_list_fields — List FrontBase result fields

Beschreibung

fbsql_list_fields ( string $database_name , string $table_name , resource $link_identifier = ? ) : resource

Retrieves information about the given table.

Parameter-Liste

database_name

The database name.

table_name

The table name.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Returns a result pointer which can be used with the fbsql_field_xxx functions, or false on error.

Fehler/Exceptions

A string describing the error will be placed in $phperrmsg, and unless the function was called as @fbsql() then this error string will also be printed out.

Beispiele

Beispiel #1 fbsql_list_fields() example

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');

$fields = fbsql_list_fields("database1", "table1", $link);
$columns = fbsql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo fbsql_field_name($fields, $i) . "\n";;
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

field1
field2
field3
...

Siehe auch

  • fbsql_field_len() - Returns the length of the specified field
  • fbsql_field_name() - Liefert den Namen des angegebenen Feldes im Ergebnis
  • fbsql_field_type() - Liefert den Typ des angegebenen Feldes in einem Ergebnis
  • fbsql_field_flags() - Get the flags associated with the specified field in a result


List tables in a FrontBase database

  • « fbsql_list_fields
  • fbsql_next_result »
  • PHP Manual
  • FrontBase Funktionen
  • List tables in a FrontBase database

fbsql_list_tables

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_list_tables — List tables in a FrontBase database

Beschreibung

fbsql_list_tables ( string $database , resource $link_identifier = ? ) : resource

Returns a result pointer describing the database.

Parameter-Liste

database

The database name.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Returns a result pointer which can be used with the fbsql_tablename() function to read the actual table names, or false on error.

Siehe auch

  • fbsql_list_fields() - List FrontBase result fields
  • fbsql_list_dbs() - List databases available on a FrontBase server


Setzt den internen Ergebniskennungszeiger auf das nächste Ergebnis

  • « fbsql_list_tables
  • fbsql_num_fields »
  • PHP Manual
  • FrontBase Funktionen
  • Setzt den internen Ergebniskennungszeiger auf das nächste Ergebnis

fbsql_next_result

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_next_result — Setzt den internen Ergebniskennungszeiger auf das nächste Ergebnis

Beschreibung

fbsql_next_result ( resource $result ) : bool

Wenn mehr als eine SQL-Anweisung an den Server gesendet wird oder eine gespeicherte Prozedur mit mehreren Ergebnissen ausgeführt wird, liefert der Server mehrere Ergebnismengen zurück. Diese Funktion überprüft auf zusätzliche auf dem Server verfügbare Ergebnisse. Wenn weitere Ergebnismengen existieren, wird die existierende Ergebnismenge frei gegeben und mit dem nächsten Ergebnis gefüllt.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

Rückgabewerte

Liefert true zurück, wenn ein zusätzliches Ergebnis verfügbar war; ansonsten wird false zurückgeliefert.

Beispiele

Beispiel #1 fbsql_next_result() Beispiel

<?php
$link = fbsql_connect("localhost", "_SYSTEM", "secret");
fbsql_select_db("MyDB", $link);
$SQL = "Select * from table1; select * from table2;";
$rs = fbsql_query($SQL, $link);
do {
    while ($row = fbsql_fetch_row($rs)) {
    }
} while (fbsql_next_result($rs));
fbsql_free_result($rs);
fbsql_close ($link);
?>


Ermittelt Anzahl der Felder im Ergebnis

  • « fbsql_next_result
  • fbsql_num_rows »
  • PHP Manual
  • FrontBase Funktionen
  • Ermittelt Anzahl der Felder im Ergebnis

fbsql_num_fields

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_num_fields — Ermittelt Anzahl der Felder im Ergebnis

Beschreibung

fbsql_num_fields ( resource $result ) : int

Liefert die Anzahl der Felder im angegebenen result zurück.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

Rückgabewerte

Liefert die Anzahl der Felder als Integer zurück.

Siehe auch

  • fbsql_db_query() - Absetzen einer Anfrage an die Datenbank
  • fbsql_query() - Sendet eine FrontBase-Abfrage
  • fbsql_fetch_field() - Liefert ein Objekt mit Feldinformationen aus einem Abfrageergebnis
  • fbsql_num_rows() - Liefert die Anzahl der Datensätze in einem Ergebnis


Liefert die Anzahl der Datensätze in einem Ergebnis

  • « fbsql_num_fields
  • fbsql_password »
  • PHP Manual
  • FrontBase Funktionen
  • Liefert die Anzahl der Datensätze in einem Ergebnis

fbsql_num_rows

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_num_rows — Liefert die Anzahl der Datensätze in einem Ergebnis

Beschreibung

fbsql_num_rows ( resource $result ) : int

Liefert die Anzahl der Datensätze im angegebenen result.

Diese Funktion ist nur für SELECT-Abfragen gültig. Um die Anzahl der betroffenen Datensätze bei INSERT-, UPDATE- oder DELETE-Abfragen zu ermittelt, müssen Sie fbsql_affected_rows() verwenden.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

Rückgabewerte

Liefert die Anzahl der Datensätze, die von der letzten SELECT Anweisung zurückgegeben wurden.

Beispiele

Beispiel #1 fbsql_num_rows() Beispiel

<?php

$link = fbsql_connect("localhost", "username", "passwort");
fbsql_select_db("database", $link);

$result = fbsql_query("SELECT * FROM table1;", $link);
$num_rows = fbsql_num_rows($result);

echo "$num_rows Rows\n";

?>

Siehe auch

  • fbsql_affected_rows() - Ermittelt die Anzahl der von der vorherigen FrontBase-Operation betroffenen Datensätze
  • fbsql_connect() - Öffnet eine Verbindung zu einem FrontBase-Server
  • fbsql_select_db() - Wählt eine FrontBase-Datenbank aus
  • fbsql_query() - Sendet eine FrontBase-Abfrage


Liest oder setzt das Bentuzerpasswort für eine Verbindung

  • « fbsql_num_rows
  • fbsql_pconnect »
  • PHP Manual
  • FrontBase Funktionen
  • Liest oder setzt das Bentuzerpasswort für eine Verbindung

fbsql_password

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_password — Liest oder setzt das Bentuzerpasswort für eine Verbindung

Beschreibung

fbsql_password ( resource $link_identifier , string $password = ? ) : string

Liest oder setzt das Benutzerpasswort für eine Verbindung.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

password

Wenn angegeben, wird dies das neue Verbindungspasswort.

Rückgabewerte

Liefert das aktuelle Passwort für die Verbindung zurück.

Siehe auch

  • fbsql_username() - Liest oder setzt den Benutzernamen für die Verbindung
  • fbsql_hostname() - Ermittelt oder setzt den mit einer Verbindung verwendeten Hostnamen


Öffnet eine persistente Verbindung zu einem FrontBase-Server

  • « fbsql_password
  • fbsql_query »
  • PHP Manual
  • FrontBase Funktionen
  • Öffnet eine persistente Verbindung zu einem FrontBase-Server

fbsql_pconnect

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_pconnect — Öffnet eine persistente Verbindung zu einem FrontBase-Server

Beschreibung

fbsql_pconnect
 ( string $hostname = ini_get("fbsql.default_host")
, string $username = ini_get("fbsql.default_user")
, string $password = ini_get("fbsql.default_password")
) : resource

Stellt eine persistente Verbindung zu einem FrontBase-Server her.

Um die Port-Nummer für den Server zu setzen, verwenden Sie fbsql_select_db().

fbsql_pconnect() verhält sich sehr ähnlich zu fbsql_connect(), weist aber zwei wesentliche Unterschiede auf.

Erstens: vor dem Verbindungsaufbau wird zunächst versucht eine offene (persistente) Verbindung zum gleichen Host, mit dem gleichen Benutzernamen und Benutzerkennwort zu finden. Wenn das gelingt, wird die Verbindungskennung dieser Verbindung zurückgeliefert anstatt eine neue Verbindung aufzubauen.

Zweitens: die Verbindung zum SQL Server wird beim Beenden des PHP-Skripts nicht geschlossen. Sie bleibt zur zukünftigen Verwendung bestehen.

Deshalb wird dieser Verbindungstyp 'persistent' genannt.

Parameter-Liste

hostname

Der Server-Hostname.

username

Der Benutzername für die Verbindung.

password

Das Passwort für die Verbindung.

Rückgabewerte

Liefert eine positive, FrontBase-persistente Verbindungs-Kennung im Erfolgsfall oder false im Fehlerfall.

Siehe auch

  • fbsql_connect() - Öffnet eine Verbindung zu einem FrontBase-Server


Sendet eine FrontBase-Abfrage

  • « fbsql_pconnect
  • fbsql_read_blob »
  • PHP Manual
  • FrontBase Funktionen
  • Sendet eine FrontBase-Abfrage

fbsql_query

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_query — Sendet eine FrontBase-Abfrage

Beschreibung

fbsql_query ( string $query , resource $link_identifier = ? , int $batch_size = ? ) : resource

Sendet eine Abfrage an die momentan aktive Datenbank auf dem Server.

Ist die Abfrage erfolgreich, können Sie fbsql_num_rows() aufrufen, um herauszufinden wie viele Datensätze von einer SELECT-Abfrage zurückgeliefert wurden. Falls Sie eine DELETE-, INSERT-, REPLACE- oder UPDATE-Abfrage verwendet haben, können Sie fbsql_affected_rows() verwenden, um die betroffenen Datensätze herauszufinden.

Parameter-Liste

query

Die auszuführende SQL-Abfrage.

Hinweis:

Der Abfrage-String soll immer mit einem Semikolon enden.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

batch_size

Rückgabewerte

fbsql_query() liefert zur Überprüfung des Erfolgs der Abfrage true (nicht null) oder false zurück. Ein true-Rückgabewert bestätigt, dass die Abfrage gültig war und vom Server ausgeführt werden konnte. Über den Rückgabewert können nicht die betroffenen oder selektierten Datensätze ermittelt werden. Es ist sogar möglich, dass die Abfrage erfolgreich war, aber keine Datensätze betroffen oder selektiert werden.

Bei SELECT-Abfragen gibt fbsql_query() eine neue Ergebniskennung zurück, die Sie an fbsql_result() übergeben können.

fbsql_query() schlägt ebenso fehl und liefert false, wenn Sie keine Berechtigung zum Zugriff auf die verwiesene(n) Tabelle(n) haben.

Beispiele

Die folgende Abfrage ist syntaktisch falsch, so dass fbsql_query() fehlschlägt und false zurückliefert:

Beispiel #1 fbsql_query() Beispiel

<?php
$result = fbsql_query("SELECT * WHERE 1=1")
    or die ("Ungültige Abfrage");
?>

Die folgende Abfrage ist sematisch falsch, wenn my_col keine Spalte in der Tabelle my_tbl ist. Deshalb schlägt fbsql_query() fehl und liefert false zurück:

Beispiel #2 fbsql_query() Beispiel

<?php
$result = fbsql_query("SELECT my_col FROM my_tbl;")
    or die ("Ungültige Abfrage");
?>

Siehe auch

  • fbsql_affected_rows() - Ermittelt die Anzahl der von der vorherigen FrontBase-Operation betroffenen Datensätze
  • fbsql_db_query() - Absetzen einer Anfrage an die Datenbank
  • fbsql_free_result() - Gibt vom Ergebnis belegten Speicher wieder frei
  • fbsql_result() - Liefert Ergebnisdaten
  • fbsql_select_db() - Wählt eine FrontBase-Datenbank aus
  • fbsql_connect() - Öffnet eine Verbindung zu einem FrontBase-Server


Read a BLOB from the database

  • « fbsql_query
  • fbsql_read_clob »
  • PHP Manual
  • FrontBase Funktionen
  • Read a BLOB from the database

fbsql_read_blob

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0)

fbsql_read_blob — Read a BLOB from the database

Beschreibung

fbsql_read_blob ( string $blob_handle , resource $link_identifier = ? ) : string

Reads BLOB data from the database.

If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_blob() to get the actual BLOB data from the database.

Parameter-Liste

blob_handle

A BLOB handle, returned by fbsql_create_blob().

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Returns a string containing the specified BLOB data.

Beispiele

Beispiel #1 fbsql_read_blob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
$sql = "SELECT BLOB_COLUMN FROM BLOB_TABLE;";
$rs = fbsql_query($sql, $link);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] will now contain the blob data for the first row
fbsql_free_result($rs);

$rs = fbsql_query($sql, $link);
fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] will now contain a handle to the BLOB data in the first row
$blob_data = fbsql_read_blob($row_data[0]);
fbsql_free_result($rs);

?>

Siehe auch

  • fbsql_create_blob() - Create a BLOB
  • fbsql_read_clob() - Read a CLOB from the database
  • fbsql_set_lob_mode() - Setzt den LOB-Lese-Modus für eine FrontBase-Ergebnismenge


Read a CLOB from the database

  • « fbsql_read_blob
  • fbsql_result »
  • PHP Manual
  • FrontBase Funktionen
  • Read a CLOB from the database

fbsql_read_clob

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0)

fbsql_read_clob — Read a CLOB from the database

Beschreibung

fbsql_read_clob ( string $clob_handle , resource $link_identifier = ? ) : string

Reads CLOB data from the database.

If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_clob() to get the actual CLOB data from the database.

Parameter-Liste

clob_handle

A CLOB handle, returned by fbsql_create_clob().

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Returns a string containing the specified CLOB data.

Beispiele

Beispiel #1 fbsql_read_clob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
$sql = "SELECT CLOB_COLUMN FROM CLOB_TABLE;";
$rs = fbsql_query($sql, $link);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] will now contain the clob data for the first row
fbsql_free_result($rs);

$rs = fbsql_query($sql, $link);
fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] will now contain a handle to the CLOB data in the first row
$clob_data = fbsql_read_clob($row_data[0]);
fbsql_free_result($rs);

?>

Siehe auch

  • fbsql_create_clob() - Create a CLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_set_lob_mode() - Setzt den LOB-Lese-Modus für eine FrontBase-Ergebnismenge


Liefert Ergebnisdaten

  • « fbsql_read_clob
  • fbsql_rollback »
  • PHP Manual
  • FrontBase Funktionen
  • Liefert Ergebnisdaten

fbsql_result

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_result — Liefert Ergebnisdaten

Beschreibung

fbsql_result ( resource $result , int $row = ? , mixed $field = ? ) : mixed

Liefert den Inhalt eines Felds aus einer FrontBase result Menge.

Wenn auf Anfrageergebnisse mit vielen Datensätzen zugegriffen werden soll, sollten Sie Funktionen, die auf ganze Datensätze zugreifen,in Betracht ziehen (siehe unten). Diese Funktionen liefern bei einem einzigen Aufruf den Inhalt mehrerer Felder und sind aus diesem Grund SEHR viel schneller als fbsql_result().

Aufrufe von fbsql_result() sollten nicht mit Aufrufen anderer Funktionen verschachtelt werden, die auch auf das Ergebnis zugreifen.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

row

field

Kann der Feldoffset, der Feldname, oder ein Bezeichner in der Form Tabellenname.Feldname sein.

Wenn das Feld einen Alias besitzt ('select foo as bar from...') muss der Alias anstatt des Feldnamens verwendet werden.

Hinweis:

Die Angabe eines numerischen Offsets für das field Argument ist viel schneller als die Angabe eines Feldnamens oder tabellenname.feldname.

Rückgabewerte

Siehe auch

Recommended high-performance alternatives:

  • fbsql_fetch_row() - Liefert einen Datensatz als numerisches Array
  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_assoc() - Fetch a result row as an associative array
  • fbsql_fetch_object() - Fetch a result row as an object


Rollback a transaction to the database

  • « fbsql_result
  • fbsql_rows_fetched »
  • PHP Manual
  • FrontBase Funktionen
  • Rollback a transaction to the database

fbsql_rollback

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_rollback — Rollback a transaction to the database

Beschreibung

fbsql_rollback ( resource $link_identifier = ? ) : bool

Ends the current transaction by rolling back all statements issued since last commit.

This command is only needed if autocommit is set to false.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fbsql_autocommit() - Aktiviert oder deaktiviert Autocommit
  • fbsql_commit() - Wendet eine Transaktion auf die Datenbank an


Get the number of rows affected by the last statement

  • « fbsql_rollback
  • fbsql_select_db »
  • PHP Manual
  • FrontBase Funktionen
  • Get the number of rows affected by the last statement

fbsql_rows_fetched

(PHP 5 >= 5.1.0 < 5.3.0)

fbsql_rows_fetched — Get the number of rows affected by the last statement

Beschreibung

fbsql_rows_fetched ( resource $result ) : int

Gets the number of rows affected by the last statement.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

Rückgabewerte

Returns the number of rows, as an integer.


Wählt eine FrontBase-Datenbank aus

  • « fbsql_rows_fetched
  • fbsql_set_characterset »
  • PHP Manual
  • FrontBase Funktionen
  • Wählt eine FrontBase-Datenbank aus

fbsql_select_db

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_select_db — Wählt eine FrontBase-Datenbank aus

Beschreibung

fbsql_select_db ( string $database_name = ? , resource $link_identifier = ? ) : bool

Setzt die momentan aktive Datenbank für die angegebene Verbindungskennung.

Der Client kontaktiert FBExec, um die Portnummer für die Datenbankverbindung abzufragen. Wenn der Datenbankname eine Nummer ist, wird FBExec nicht abgefragt und die Nummer als Portnummer verwendet. Der FrontBase-Server kann über FrontBase -FBExec=No -port=<port number> <database name>. gestartet werden.

Jeder nachfolgende Aufruf von fbsql_query() wird auf der aktiven Datenbank ausgeführt.

Parameter-Liste

database_name

Der Name der auszuwählenden Datenbank.

Wenn die Datenbank mit einem Passwort geschützt ist, muss vorher fbsql_database_password() aufgerufen werden.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fbsql_connect() - Öffnet eine Verbindung zu einem FrontBase-Server
  • fbsql_pconnect() - Öffnet eine persistente Verbindung zu einem FrontBase-Server
  • fbsql_database_password() - Sets or retrieves the password for a FrontBase database
  • fbsql_query() - Sendet eine FrontBase-Abfrage


Change input/output character set

  • « fbsql_select_db
  • fbsql_set_lob_mode »
  • PHP Manual
  • FrontBase Funktionen
  • Change input/output character set

fbsql_set_characterset

(PHP 5 >= 5.1.0 < 5.3.0)

fbsql_set_characterset — Change input/output character set

Beschreibung

fbsql_set_characterset ( resource $link_identifier , int $characterset , int $in_out_both = ? ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Setzt den LOB-Lese-Modus für eine FrontBase-Ergebnismenge

  • « fbsql_set_characterset
  • fbsql_set_password »
  • PHP Manual
  • FrontBase Funktionen
  • Setzt den LOB-Lese-Modus für eine FrontBase-Ergebnismenge

fbsql_set_lob_mode

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0)

fbsql_set_lob_mode — Setzt den LOB-Lese-Modus für eine FrontBase-Ergebnismenge

Beschreibung

fbsql_set_lob_mode ( resource $result , int $lob_mode ) : bool

Setzt den Modus für das Auslesen von LOB-Daten aus der Datenbank.

BLOB- und CLOB-Daten können bei FrontBase direkt oder indirekt abgerufen werden. Direkt abgerufene LOB-Daten werden immer ohne Berücksichtigung des gesetzten LOB-Modus geholt. Wenn die LOB-Daten kleiner als 512 Bytes sind, werden sie immer direkt abgerufen.

Parameter-Liste

result

Ein von fbsql_query() zurückgegebenes Erebnishandle.

lob_mode

Ist eins von:

  • FBSQL_LOB_DIRECT - LOB-Daten werden direkt geholt. Wenn Daten aus der Datenbank mit fbsql_fetch_row() oder einer anderen fetch-Funktion geholt werden, werden alle CLOB- und BLOB-Spalten als gewöhnliche Spalten geliefert. Dies ist der Standardwert bei einem neuen FrontBase-Ergebnis.
  • FBSQL_LOB_HANDLE - LOB-Daten werden als Datenhandles geholt. Wenn Daten aus der Datenbank mit fbsql_fetch_row () oder einer anderen fetch-Funtion geholt werden, wird bei indirekt gespeicherten LOB-Daten ein Handle auf die eigentlichen Daten geliefert. Bei direkt gespeicherten Daten werden die Daten an sich geliefert. Ein Handle wird als 27 Byte langer String mit der Formatierung @'000000000000000000000000' zurückgeliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fbsql_create_blob() - Create a BLOB
  • fbsql_create_clob() - Create a CLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_read_clob() - Read a CLOB from the database


Change the password for a given user

  • « fbsql_set_lob_mode
  • fbsql_set_transaction »
  • PHP Manual
  • FrontBase Funktionen
  • Change the password for a given user

fbsql_set_password

(PHP 5 < 5.3.0)

fbsql_set_password — Change the password for a given user

Beschreibung

fbsql_set_password ( resource $link_identifier , string $user , string $password , string $old_password ) : bool

Changes the password for the given user.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

user

The user name.

password

The new password to be set.

old_password

The old password to be replaced.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set the transaction locking and isolation

  • « fbsql_set_password
  • fbsql_start_db »
  • PHP Manual
  • FrontBase Funktionen
  • Set the transaction locking and isolation

fbsql_set_transaction

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0)

fbsql_set_transaction — Set the transaction locking and isolation

Beschreibung

fbsql_set_transaction ( resource $link_identifier , int $locking , int $isolation ) : void

Sets the transaction locking and isolation.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

locking

The type of locking to be set. It can be one of the following constants: FBSQL_LOCK_DEFERRED, FBSQL_LOCK_OPTIMISTIC, or FBSQL_LOCK_PESSIMISTIC.

isolation

The type of isolation to be set. It can be one of the following constants: FBSQL_ISO_READ_UNCOMMITTED, FBSQL_ISO_READ_COMMITTED, FBSQL_ISO_REPEATABLE_READ, FBSQL_ISO_SERIALIZABLE, or FBSQL_ISO_VERSIONED.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Startet eine Datenbank auf einem lokalen oder entfernten Server

  • « fbsql_set_transaction
  • fbsql_stop_db »
  • PHP Manual
  • FrontBase Funktionen
  • Startet eine Datenbank auf einem lokalen oder entfernten Server

fbsql_start_db

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_start_db — Startet eine Datenbank auf einem lokalen oder entfernten Server

Beschreibung

fbsql_start_db ( string $database_name , resource $link_identifier = ? , string $database_options = ? ) : bool

Startet eine Datenbank auf einem lokalen oder entfernten Server.

Parameter-Liste

database_name

Der Datenbankname.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

database_options

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fbsql_db_status() - Ermittelt den Status einer angegebenen Datenbank
  • fbsql_stop_db() - Stoppt eine Datenbank auf einem lokalen oder entferneten Server


Stoppt eine Datenbank auf einem lokalen oder entferneten Server

  • « fbsql_start_db
  • fbsql_tablename »
  • PHP Manual
  • FrontBase Funktionen
  • Stoppt eine Datenbank auf einem lokalen oder entferneten Server

fbsql_stop_db

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_stop_db — Stoppt eine Datenbank auf einem lokalen oder entferneten Server

Beschreibung

fbsql_stop_db ( string $database_name , resource $link_identifier = ? ) : bool

Stoppt eine Datenbank auf einem lokalen oder entferneten Server.

Parameter-Liste

database_name

Der Datenbankname.

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fbsql_db_status() - Ermittelt den Status einer angegebenen Datenbank
  • fbsql_start_db() - Startet eine Datenbank auf einem lokalen oder entfernten Server


Liefert den Tabellennamen eines Felds

  • « fbsql_stop_db
  • fbsql_tablename »
  • PHP Manual
  • FrontBase Funktionen
  • Liefert den Tabellennamen eines Felds

fbsql_tablename

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0)

fbsql_tablename — Liefert den Tabellennamen eines Felds

Beschreibung

fbsql_table_name ( resource $result , int $index ) : string

fbsql_tablename() ermittelt den Namen der aktuellen Tabelle in der angegebenen result Menge.

Die Funktion fbsql_num_rows() kann verwendet werden, um die Anzahl der Tabellen in der Ergebnis-Kennung zu ermitteln.

Parameter-Liste

result

Eine von fbsql_list_tables() zurückgegebe Ergebnis-Kennung.

index

Integer-Index für die aktuelle Tabelle.

Rückgabewerte

Liefert den Tabellennamen als Zeichenkette zurück.

Beispiele

Beispiel #1 fbsql_tablename() Beispiel

<?php
fbsql_connect("localhost", "_SYSTEM", "");
$result = fbsql_list_tables("wisconsin");
$i = 0;
while ($i < fbsql_num_rows($result)) {
    $tb_names[$i] = fbsql_tablename($result, $i);
    echo $tb_names[$i] . "<br />";
    $i++;
}
?>


Alias von fbsql_table_name

  • « fbsql_tablename
  • fbsql_username »
  • PHP Manual
  • FrontBase Funktionen
  • Alias von fbsql_table_name

fbsql_tablename

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0)

fbsql_tablename — Alias von fbsql_table_name()

Beschreibung

Diese Funktion ist ein Alias für: fbsql_table_name().


Liest oder setzt den Benutzernamen für die Verbindung

  • « fbsql_tablename
  • fbsql_warnings »
  • PHP Manual
  • FrontBase Funktionen
  • Liest oder setzt den Benutzernamen für die Verbindung

fbsql_username

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_username — Liest oder setzt den Benutzernamen für die Verbindung

Beschreibung

fbsql_username ( resource $link_identifier , string $username = ? ) : string

Liest oder setzt den Benutzernamen, der für die Verbindung verwendet wird.

Parameter-Liste

link_identifier

Eine von fbsql_connect() oder fbsql_pconnect() zurückgegebe FrontBase-Verbindung.

Wenn optional und nicht angegeben, wird versucht, eine bereits geöffnete FrontBase-Verbindung zu finden, falls keine vorhanden ist, wird versucht, eine zu öffnen, als ob fbsql_connect() ohne Parameter aufgerufen wurde.

username

Wenn angegeben, ist dies der neu zu setzende Benutzername.

Rückgabewerte

Liefert den aktuellen Benutzernamen, der mit der Verbindung verwendet wird, als Zeichenkette zurück.

Siehe auch

  • fbsql_password() - Liest oder setzt das Bentuzerpasswort für eine Verbindung
  • fbsql_hostname() - Ermittelt oder setzt den mit einer Verbindung verwendeten Hostnamen


Aktivieren oder Deaktivieren von FrontBase-Warnungen

  • « fbsql_username
  • IBM DB2 »
  • PHP Manual
  • FrontBase Funktionen
  • Aktivieren oder Deaktivieren von FrontBase-Warnungen

fbsql_warnings

(PHP 4 >= 4.0.6, PHP 5 < 5.3.0)

fbsql_warnings — Aktivieren oder Deaktivieren von FrontBase-Warnungen

Beschreibung

fbsql_warnings ( bool $OnOff = ? ) : bool

Aktiviert oder deaktiviert FrontBase-Warnungen.

Parameter-Liste

OnOff

Ob Warnungen aktiviert werden sollen oder nicht.

Rückgabewerte

Liefert bei eingeschalteten Warnmeldungen true zurück, andernfalls false.

Siehe auch

  • fbsql_errno() - Liefert die numerische Fehlermeldung der der letzten Operation zurück
  • fbsql_error() - Liefert den Fehlertext der zuvor ausgeführten Operation


IBM DB2, Cloudscape and Apache Derby

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • IBM DB2 Funktionen
    • db2_autocommit — Returns or sets the AUTOCOMMIT state for a database connection
    • db2_bind_param — Binds a PHP variable to an SQL statement parameter
    • db2_client_info — Returns an object with properties that describe the DB2 database client
    • db2_close — Closes a database connection
    • db2_column_privileges — Returns a result set listing the columns and associated privileges for a table
    • db2_columns — Returns a result set listing the columns and associated metadata for a table
    • db2_commit — Commits a transaction
    • db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt
    • db2_conn_errormsg — Returns the last connection error message and SQLCODE value
    • db2_connect — Returns a connection to a database
    • db2_cursor_type — Returns the cursor type used by a statement resource
    • db2_escape_string — Used to escape certain characters
    • db2_exec — Executes an SQL statement directly
    • db2_execute — Executes a prepared SQL statement
    • db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set
    • db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set
    • db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set
    • db2_fetch_object — Returns an object with properties representing columns in the fetched row
    • db2_fetch_row — Sets the result set pointer to the next row or requested row
    • db2_field_display_size — Returns the maximum number of bytes required to display a column
    • db2_field_name — Returns the name of the column in the result set
    • db2_field_num — Returns the position of the named column in a result set
    • db2_field_precision — Returns the precision of the indicated column in a result set
    • db2_field_scale — Returns the scale of the indicated column in a result set
    • db2_field_type — Returns the data type of the indicated column in a result set
    • db2_field_width — Returns the width of the current value of the indicated column in a result set
    • db2_foreign_keys — Returns a result set listing the foreign keys for a table
    • db2_free_result — Frees resources associated with a result set
    • db2_free_stmt — Frees resources associated with the indicated statement resource
    • db2_get_option — Retrieves an option value for a statement resource or a connection resource
    • db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection
    • db2_lob_read — Gets a user defined size of LOB files with each invocation
    • db2_next_result — Requests the next result set from a stored procedure
    • db2_num_fields — Returns the number of fields contained in a result set
    • db2_num_rows — Returns the number of rows affected by an SQL statement
    • db2_pclose — Closes a persistent database connection
    • db2_pconnect — Returns a persistent connection to a database
    • db2_prepare — Prepares an SQL statement to be executed
    • db2_primary_keys — Returns a result set listing primary keys for a table
    • db2_procedure_columns — Returns a result set listing stored procedure parameters
    • db2_procedures — Returns a result set listing the stored procedures registered in a database
    • db2_result — Returns a single column from a row in the result set
    • db2_rollback — Rolls back a transaction
    • db2_server_info — Returns an object with properties that describe the DB2 database server
    • db2_set_option — Set options for connection or statement resources
    • db2_special_columns — Returns a result set listing the unique row identifier columns for a table
    • db2_statistics — Returns a result set listing the index and statistics for a table
    • db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement
    • db2_stmt_errormsg — Returns a string containing the last SQL statement error message
    • db2_table_privileges — Returns a result set listing the tables and associated privileges in a database
    • db2_tables — Returns a result set listing the tables and associated metadata in a database


Einführung

These functions enable you to access IBM DB2 Universal Database, IBM Cloudscape, and Apache Derby databases using the DB2 Call Level Interface (DB2 CLI).


Anforderungen

To connect to IBM DB2 Universal Database for Linux, UNIX, and Windows, or IBM Cloudscape, or Apache Derby, you must install an IBM DB2 Universal Database client on the same computer on which you are running PHP. The extension has been developed and tested with DB2 Version 8.2.

To connect to IBM DB2 Universal Database for z/OS or iSeries, you also require IBM DB2 Connect or the equivalent DRDA gateway software.

Requirements on Linux or Unix

The user invoking the PHP executable or SAPI must specify the DB2 instance before accessing these functions. You can set the name of the DB2 instance in php.ini using the ibm_db2.instance_name configuration option, or you can source the DB2 instance profile before invoking the PHP executable.

If you created a DB2 instance named db2inst1 in /home/db2inst1/, for example, you can add the following line to php.ini:

ibm_db2.instance_name=db2inst1
If you do not set this option in php.ini, you must issue the following command to modify your environment variables to enable access to DB2:
bash$ source /home/db2inst1/sqllib/db2profile
To enable your PHP-enabled Web server to access these functions, you must either set the ibm_db2.instance_name configuration option in php.ini, or source the DB2 instance environment in your Web server start script (typically /etc/init.d/httpd or /etc/init.d/apache).


Installation

To build the ibm_db2 extension, the DB2 application development header files and libraries must be installed on your system. DB2 does not install these by default, so you may have to return to your DB2 installer and add this option. The header files are included with the DB2 Application Development Client freely available for download from the IBM DB2 Universal Database » support site.

If you add the DB2 application development header files and libraries to a Linux or Unix operating system on which DB2 was already installed, you must issue the command db2iupdt -e to update the symbolic links to the header files and libraries in your DB2 instances.

ibm_db2 is a » PECL extension, so follow the instructions in Installation of PECL extensions to install the ibm_db2 extension for PHP. Issue the configure command to point to the location of your DB2 header files and libraries as follows:

bash$ ./configure --with-IBM_DB2=/path/to/DB2
The configure command defaults to /opt/IBM/db2/V8.1.

Hinweis: Note for IIS users

If you are using the ibm_db2 driver with Microsoft Internet Information Server (IIS) you may have to do the following:

  • Install DB2 with extended operating system security.
  • Add the PHP binary path to the PATH system environment variable (default C:\php\).
  • Create another system environment variable equal to the path where the PHP.INI file is located (eg: PHPRC = C:\php\).
  • Add the IUSR_COMPUTERNAME to the DB2USERS group.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

ibm_db2 Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
ibm_db2.binmode | "1" | PHP_INI_ALL |
ibm_db2.i5_all_pconnect | "0" | PHP_INI_SYSTEM | Available since ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | PHP_INI_SYSTEM | Available since ibm_db2 1.4.9.
ibm_db2.i5_dbcs_alloc | "0" | PHP_INI_SYSTEM | Available since ibm_db2 1.5.0.
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM | Available since ibm_db2 1.0.2.
ibm_db2.i5_ignore_userid | "0" | PHP_INI_SYSTEM | Available since ibm_db2 1.8.0.

Hier eine kurze Erklärung der Konfigurationsoptionen:

ibm_db2.binmode int

This option controls the mode used for converting to and from binary data in the PHP application.

  • 1 (DB2_BINARY)

  • 2 (DB2_CONVERT)

  • 3 (DB2_PASSTHRU)

ibm_db2.i5_all_pconnect int

This option overrides i5 db2_connect() full open and close in the PHP application. When ibm_db2.i5_all_pconnect = 1, all db2 connections become persistent (db2_pconnect()). On i5/OS, db2_pconnect() performs dramatically better with lower machine stress over db2_connect(). This is a convenience override of db2_connect() to evoke db2_pconnect() without PHP source code changes.

  • 0 db2_connect() default full open and close

  • 1 db2_connect() override to db2_pconnect() for persistent connection only

ibm_db2.i5_allow_commit int

This option controls the isolation mode used for i5 schema collections in the PHP application (see i5_commit for override).

  • 0 - commitment control is not used

  • 1 - read uncommitted, dirty reads possible.

  • 2 - read committed, dirty reads are not possible.

  • 3 - repeatable read, dirty reads and non-repeatable reads are not possible

  • 4 - serializeable, dirty reads, non-repeatable reads, and phantoms are not possible

ibm_db2.i5_dbcs_alloc int

This option controls the internal ibm_db2 allocation scheme for large DBCS column buffers.

  • 0 no expanded allocations (see i5_dbcs_alloc for override)

  • 1 use expanded allocations (see i5_dbcs_alloc for override)

ibm_db2.instance_name string

On Linux and UNIX operating systems, this option defines the name of the instance to use for cataloged database connections. If this option is set, its value overrides the DB2INSTANCE environment variable setting.

This option is ignored on Windows operating systems.

ibm_db2.i5_ignore_userid int

This option overrides i5 db2_(p)connect userid and password in the PHP application. When ibm_db2.i5_ignore_userid = 1, all db2 (p)connections become null userid and null password. Therefore Apache jobs connect with the current profile (NOBODY). Use of this override is only for simple DB2 based websites that never require profile switching and therefore can avoid all overhead of server mode additional QSQSRVR jobs. This is a convenience override of db2_(p)connect to set the userid and password values to null without PHP source code changes. This override can be used in combination with ibm_db2.i5_all_pconnect = 1.

  • 0 db2_(p)connect with specified userid and password

  • 1 db2_(p)connect override connect with null userid and null password


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

The ibm_db2 extension returns connection resources, statement resources, and result set resources.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

DB2_BINARY (int)
Specifies that binary data shall be returned as is. This is the default mode.
DB2_CONVERT (int)
Specifies that binary data shall be converted to a hexadecimal encoding and returned as an ASCII string.
DB2_PASSTHRU (int)
Specifies that binary data shall be converted to a null value.
DB2_SCROLLABLE (int)
Specifies a scrollable cursor for a statement resource. This mode enables random access to rows in a result set, but currently is supported only by IBM DB2 Universal Database.
DB2_FORWARD_ONLY (int)
Specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.
DB2_PARAM_IN (int)
Specifies the PHP variable should be bound as an IN parameter for a stored procedure.
DB2_PARAM_OUT (int)
Specifies the PHP variable should be bound as an OUT parameter for a stored procedure.
DB2_PARAM_INOUT (int)
Specifies the PHP variable should be bound as an INOUT parameter for a stored procedure.
DB2_PARAM_FILE (int)
Specifies that the column should be bound directly to a file for input.
DB2_AUTOCOMMIT_ON (int)
Specifies that autocommit should be turned on.
DB2_AUTOCOMMIT_OFF (int)
Specifies that autocommit should be turned off.
DB2_DOUBLE (int)
Specifies that the variable should be bound as a DOUBLE, FLOAT, or REAL data type.
DB2_LONG (int)
Specifies that the variable should be bound as a SMALLINT, INTEGER, or BIGINT data type.
DB2_CHAR (int)
Specifies that the variable should be bound as a CHAR or VARCHAR data type.
DB2_CASE_NATURAL (int)
Specifies that column names will be returned in their natural case.
DB2_CASE_LOWER (int)
Specifies that column names will be returned in lower case.
DB2_CASE_UPPER (int)
Specifies that column names will be returned in upper case.
DB2_DEFERRED_PREPARE_ON (int)
Specifies that deferred prepare should be turned on for the specified statement resource.
DB2_DEFERRED_PREPARE_OFF (int)
Specifies that deferred prepare should be turned off for the specified statement resource.


IBM DB2 Funktionen

Inhaltsverzeichnis

  • db2_autocommit — Returns or sets the AUTOCOMMIT state for a database connection
  • db2_bind_param — Binds a PHP variable to an SQL statement parameter
  • db2_client_info — Returns an object with properties that describe the DB2 database client
  • db2_close — Closes a database connection
  • db2_column_privileges — Returns a result set listing the columns and associated privileges for a table
  • db2_columns — Returns a result set listing the columns and associated metadata for a table
  • db2_commit — Commits a transaction
  • db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_conn_errormsg — Returns the last connection error message and SQLCODE value
  • db2_connect — Returns a connection to a database
  • db2_cursor_type — Returns the cursor type used by a statement resource
  • db2_escape_string — Used to escape certain characters
  • db2_exec — Executes an SQL statement directly
  • db2_execute — Executes a prepared SQL statement
  • db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object — Returns an object with properties representing columns in the fetched row
  • db2_fetch_row — Sets the result set pointer to the next row or requested row
  • db2_field_display_size — Returns the maximum number of bytes required to display a column
  • db2_field_name — Returns the name of the column in the result set
  • db2_field_num — Returns the position of the named column in a result set
  • db2_field_precision — Returns the precision of the indicated column in a result set
  • db2_field_scale — Returns the scale of the indicated column in a result set
  • db2_field_type — Returns the data type of the indicated column in a result set
  • db2_field_width — Returns the width of the current value of the indicated column in a result set
  • db2_foreign_keys — Returns a result set listing the foreign keys for a table
  • db2_free_result — Frees resources associated with a result set
  • db2_free_stmt — Frees resources associated with the indicated statement resource
  • db2_get_option — Retrieves an option value for a statement resource or a connection resource
  • db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection
  • db2_lob_read — Gets a user defined size of LOB files with each invocation
  • db2_next_result — Requests the next result set from a stored procedure
  • db2_num_fields — Returns the number of fields contained in a result set
  • db2_num_rows — Returns the number of rows affected by an SQL statement
  • db2_pclose — Closes a persistent database connection
  • db2_pconnect — Returns a persistent connection to a database
  • db2_prepare — Prepares an SQL statement to be executed
  • db2_primary_keys — Returns a result set listing primary keys for a table
  • db2_procedure_columns — Returns a result set listing stored procedure parameters
  • db2_procedures — Returns a result set listing the stored procedures registered in a database
  • db2_result — Returns a single column from a row in the result set
  • db2_rollback — Rolls back a transaction
  • db2_server_info — Returns an object with properties that describe the DB2 database server
  • db2_set_option — Set options for connection or statement resources
  • db2_special_columns — Returns a result set listing the unique row identifier columns for a table
  • db2_statistics — Returns a result set listing the index and statistics for a table
  • db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg — Returns a string containing the last SQL statement error message
  • db2_table_privileges — Returns a result set listing the tables and associated privileges in a database
  • db2_tables — Returns a result set listing the tables and associated metadata in a database


Returns or sets the AUTOCOMMIT state for a database connection

  • « IBM DB2 Funktionen
  • db2_bind_param »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns or sets the AUTOCOMMIT state for a database connection

db2_autocommit

(PECL ibm_db2 >= 1.0.0)

db2_autocommit — Returns or sets the AUTOCOMMIT state for a database connection

Beschreibung

db2_autocommit ( resource $connection , bool $value = ? ) : mixed

Sets or gets the AUTOCOMMIT behavior of the specified connection resource.

Parameter-Liste

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

value

One of the following constants:

DB2_AUTOCOMMIT_OFF

Turns AUTOCOMMIT off.

DB2_AUTOCOMMIT_ON

Turns AUTOCOMMIT on.

Rückgabewerte

When db2_autocommit() receives only the connection parameter, it returns the current state of AUTOCOMMIT for the requested connection as an integer value. A value of DB2_AUTOCOMMIT_OFF indicates that AUTOCOMMIT is off, while a value of DB2_AUTOCOMMIT_ON indicates that AUTOCOMMIT is on.

When db2_autocommit() receives both the connection parameter and autocommit parameter, it attempts to set the AUTOCOMMIT state of the requested connection to the corresponding state. Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Retrieving the AUTOCOMMIT value for a connection

In the following example, a connection which has been created with AUTOCOMMIT turned off is tested with the db2_autocommit() function.

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);
$ac = db2_autocommit($conn);
if ($ac == DB2_AUTOCOMMIT_OFF) {
    print "$ac -- AUTOCOMMIT is off.";
} else {
    print "$ac -- AUTOCOMMIT is on.";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0 -- AUTOCOMMIT is off.

Beispiel #2 Setting the AUTOCOMMIT value for a connection

In the following example, a connection which was initially created with AUTOCOMMIT turned off has its behavior changed to turn AUTOCOMMIT on.

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);

// Turn AUTOCOMMIT on
$rc = db2_autocommit($conn, DB2_AUTOCOMMIT_ON);
if ($rc) {
    print "Turning AUTOCOMMIT on succeeded.\n";
}

// Check AUTOCOMMIT state
$ac = db2_autocommit($conn);
if ($ac == DB2_AUTOCOMMIT_OFF) {
    print "$ac -- AUTOCOMMIT is off.";
} else {
    print "$ac -- AUTOCOMMIT is on.";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Turning AUTOCOMMIT on succeeded.
1 -- AUTOCOMMIT is on.

Siehe auch

  • db2_connect() - Returns a connection to a database
  • db2_pconnect() - Returns a persistent connection to a database


Binds a PHP variable to an SQL statement parameter

  • « db2_autocommit
  • db2_client_info »
  • PHP Manual
  • IBM DB2 Funktionen
  • Binds a PHP variable to an SQL statement parameter

db2_bind_param

(PECL ibm_db2 >= 1.0.0)

db2_bind_param — Binds a PHP variable to an SQL statement parameter

Beschreibung

db2_bind_param ( resource $stmt , int $parameter_number , string $variable_name , int $parameter_type = ? , int $data_type = 0 , int $precision = -1 , int $scale = 0 ) : bool

Binds a PHP variable to an SQL statement parameter in a statement resource returned by db2_prepare(). This function gives you more control over the parameter type, data type, precision, and scale for the parameter than simply passing the variable as part of the optional input array to db2_execute().

Parameter-Liste

stmt

A prepared statement returned from db2_prepare().

parameter_number

Specifies the 1-indexed position of the parameter in the prepared statement.

variable_name

A string specifying the name of the PHP variable to bind to the parameter specified by parameter_number.

parameter_type

A constant specifying whether the PHP variable should be bound to the SQL parameter as an input parameter (DB2_PARAM_IN), an output parameter (DB2_PARAM_OUT), or as a parameter that accepts input and returns output (DB2_PARAM_INOUT). To avoid memory overhead, you can also specify DB2_PARAM_FILE to bind the PHP variable to the name of a file that contains large object (BLOB, CLOB, or DBCLOB) data.

data_type

A constant specifying the SQL data type that the PHP variable should be bound as: one of DB2_BINARY, DB2_CHAR, DB2_DOUBLE, or DB2_LONG .

precision

Specifies the precision with which the variable should be bound to the database. This parameter can also be used for retrieving XML output values from stored procedures. A non-negative value specifies the maximum size of the XML data that will be retrieved from the database. If this parameter is not used, a default of 1MB will be assumed for retrieving the XML output value from the stored procedure.

scale

Specifies the scale with which the variable should be bound to the database.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Binding PHP variables to a prepared statement

The SQL statement in the following example uses two input parameters in the WHERE clause. We call db2_bind_param() to bind two PHP variables to the corresponding SQL parameters. Notice that the PHP variables do not have to be declared or assigned before the call to db2_bind_param(); in the example, $lower_limit is assigned a value before the call to db2_bind_param(), but $upper_limit is assigned a value after the call to db2_bind_param(). The variables must be bound and, for parameters that accept input, must have any value assigned, before calling db2_execute().

<?php

$sql = 'SELECT name, breed, weight FROM animals
    WHERE weight > ? AND weight < ?';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);

// We can declare the variable before calling db2_bind_param()
$lower_limit = 1;

db2_bind_param($stmt, 1, "lower_limit", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "upper_limit", DB2_PARAM_IN);

// We can also declare the variable after calling db2_bind_param()
$upper_limit = 15.0;

if (db2_execute($stmt)) {
    while ($row = db2_fetch_array($stmt)) {
        print "{$row[0]}, {$row[1]}, {$row[2]}\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Pook, cat, 3.2
Rickety Ride, goat, 9.7
Peaches, dog, 12.3

Beispiel #2 Calling stored procedures with IN and OUT parameters

The stored procedure match_animal in the following example accepts three different parameters:

  1. an input (IN) parameter that accepts the name of the first animal as input

  2. an input-output (INOUT) parameter that accepts the name of the second animal as input and returns the string TRUE if an animal in the database matches that name

  3. an output (OUT) parameter that returns the sum of the weight of the two identified animals

In addition, the stored procedure returns a result set consisting of the animals listed in alphabetic order starting at the animal corresponding to the input value of the first parameter and ending at the animal corresponding to the input value of the second parameter.

<?php

$sql = 'CALL match_animal(?, ?, ?)';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);

$name = "Peaches";
$second_name = "Rickety Ride";
$weight = 0;

db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "second_name", DB2_PARAM_INOUT);
db2_bind_param($stmt, 3, "weight", DB2_PARAM_OUT);

print "Values of bound parameters _before_ CALL:\n";
print "  1: {$name} 2: {$second_name} 3: {$weight}\n\n";

if (db2_execute($stmt)) {
    print "Values of bound parameters _after_ CALL:\n";
    print "  1: {$name} 2: {$second_name} 3: {$weight}\n\n";

    print "Results:\n";
    while ($row = db2_fetch_array($stmt)) {
        print "  {$row[0]}, {$row[1]}, {$row[2]}\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Values of bound parameters _before_ CALL:
  1: Peaches 2: Rickety Ride 3: 0

Values of bound parameters _after_ CALL:
  1: Peaches 2: TRUE 3: 22

Results:
  Peaches, dog, 12.3
  Pook, cat, 3.2
  Rickety Ride, goat, 9.7

Beispiel #3 Inserting a binary large object (BLOB) directly from a file

The data for large objects are typically stored in files, such as XML documents or audio files. Rather than reading an entire file into a PHP variable, and then binding that PHP variable into an SQL statement, you can avoid some memory overhead by binding the file directly to the input parameter of your SQL statement. The following example demonstrates how to bind a file directly into a BLOB column.

<?php
$stmt = db2_prepare($conn, "INSERT INTO animal_pictures(picture) VALUES (?)");

$picture = "/opt/albums/spook/grooming.jpg";
$rc = db2_bind_param($stmt, 1, "picture", DB2_PARAM_FILE);
$rc = db2_execute($stmt);
?>

Siehe auch

  • db2_execute() - Executes a prepared SQL statement
  • db2_prepare() - Prepares an SQL statement to be executed


Returns an object with properties that describe the DB2 database client

  • « db2_bind_param
  • db2_close »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns an object with properties that describe the DB2 database client

db2_client_info

(PECL ibm_db2 >= 1.1.1)

db2_client_info — Returns an object with properties that describe the DB2 database client

Beschreibung

db2_client_info ( resource $connection ) : object

This function returns an object with read-only properties that return information about the DB2 database client. The following table lists the DB2 client properties:

DB2 client properties
Property name | Return type | Description
APPL_CODEPAGE | int | The application code page.
CONN_CODEPAGE | int | The code page for the current connection.
DATA_SOURCE_NAME | string | The data source name (DSN) used to create the current connection to the database.
DRIVER_NAME | string | The name of the library that implements the DB2 Call Level Interface (CLI) specification.
DRIVER_ODBC_VER | string | The version of ODBC that the DB2 client supports. This returns a string "MM.mm" where MM is the major version and mm is the minor version. The DB2 client always returns "03.51".
DRIVER_VER | string | The version of the client, in the form of a string "MM.mm.uuuu" where MM is the major version, mm is the minor version, and uuuu is the update. For example, "08.02.0001" represents major version 8, minor version 2, update 1.
ODBC_SQL_CONFORMANCE string

The level of ODBC SQL grammar supported by the client:

MINIMUM

Supports the minimum ODBC SQL grammar.

CORE

Supports the core ODBC SQL grammar.

EXTENDED

Supports extended ODBC SQL grammar.

ODBC_VER | string | The version of ODBC that the ODBC driver manager supports. This returns a string "MM.mm.rrrr" where MM is the major version, mm is the minor version, and rrrr is the release. The DB2 client always returns "03.01.0000".

Parameter-Liste

connection

Specifies an active DB2 client connection.

Rückgabewerte

Returns an object on a successful call. Returns false on failure.

Beispiele

Beispiel #1 A db2_client_info() example

To retrieve information about the client, you must pass a valid database connection resource to db2_client_info().

<?php
$conn = db2_connect( 'SAMPLE', 'db2inst1', 'ibmdb2' );
$client = db2_client_info( $conn );

if ($client) {
    echo "DRIVER_NAME: ";           var_dump( $client->DRIVER_NAME );
    echo "DRIVER_VER: ";            var_dump( $client->DRIVER_VER );
    echo "DATA_SOURCE_NAME: ";      var_dump( $client->DATA_SOURCE_NAME );
    echo "DRIVER_ODBC_VER: ";       var_dump( $client->DRIVER_ODBC_VER );
    echo "ODBC_VER: ";              var_dump( $client->ODBC_VER );
    echo "ODBC_SQL_CONFORMANCE: ";  var_dump( $client->ODBC_SQL_CONFORMANCE );
    echo "APPL_CODEPAGE: ";         var_dump( $client->APPL_CODEPAGE );
    echo "CONN_CODEPAGE: ";         var_dump( $client->CONN_CODEPAGE );
}
else {
    echo "Error retrieving client information.
     Perhaps your database connection was invalid.";
}
db2_close($conn);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

DRIVER_NAME: string(8) "libdb2.a"
DRIVER_VER: string(10) "08.02.0001"
DATA_SOURCE_NAME: string(6) "SAMPLE"
DRIVER_ODBC_VER: string(5) "03.51"
ODBC_VER: string(10) "03.01.0000"
ODBC_SQL_CONFORMANCE: string(8) "EXTENDED"
APPL_CODEPAGE: int(819)
CONN_CODEPAGE: int(819)

Siehe auch

  • db2_server_info() - Returns an object with properties that describe the DB2 database server


Closes a database connection

  • « db2_client_info
  • db2_column_privileges »
  • PHP Manual
  • IBM DB2 Funktionen
  • Closes a database connection

db2_close

(PECL ibm_db2 >= 1.0.0)

db2_close — Closes a database connection

Beschreibung

db2_close ( resource $connection ) : bool

This function closes a DB2 client connection created with db2_connect() and returns the corresponding resources to the database server.

If you attempt to close a persistent DB2 client connection created with db2_pconnect(), the close request is ignored and the persistent DB2 client connection remains available for the next caller.

Parameter-Liste

connection

Specifies an active DB2 client connection.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Closing a connection

The following example demonstrates a successful attempt to close a connection to an IBM DB2, Cloudscape, or Apache Derby database.

<?php
$conn = db2_connect('SAMPLE', 'db2inst1', 'ibmdb2');
$rc = db2_close($conn);
if ($rc) {
    echo "Connection was successfully closed.";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Connection was successfully closed.

Siehe auch

  • db2_connect() - Returns a connection to a database
  • db2_pclose() - Closes a persistent database connection
  • db2_pconnect() - Returns a persistent connection to a database


Returns a result set listing the columns and associated privileges for a table

  • « db2_close
  • db2_columns »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a result set listing the columns and associated privileges for a table

db2_column_privileges

(PECL ibm_db2 >= 1.0.0)

db2_column_privileges — Returns a result set listing the columns and associated privileges for a table

Beschreibung

db2_column_privileges ( resource $connection , string $qualifier = ? , string $schema = ? , string $table-name = ? , string $column-name = ? ) : resource

Returns a result set listing the columns and associated privileges for a table.

Parameter-Liste

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables. To match all schemas, pass null or an empty string.

table-name

The name of the table or view. To match all tables in the database, pass null or an empty string.

column-name

The name of the column. To match all columns in the table, pass null or an empty string.

Rückgabewerte

Returns a statement resource with a result set containing rows describing the column privileges for columns matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema.
TABLE_NAME | Name of the table or view.
COLUMN_NAME | Name of the column.
GRANTOR | Authorization ID of the user who granted the privilege.
GRANTEE | Authorization ID of the user to whom the privilege was granted.
PRIVILEGE | The privilege for the column.
IS_GRANTABLE | Whether the GRANTEE is permitted to grant this privilege to other users.

Siehe auch

  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing the columns and associated metadata for a table

  • « db2_column_privileges
  • db2_commit »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a result set listing the columns and associated metadata for a table

db2_columns

(PECL ibm_db2 >= 1.0.0)

db2_columns — Returns a result set listing the columns and associated metadata for a table

Beschreibung

db2_columns ( resource $connection , string $qualifier = ? , string $schema = ? , string $table-name = ? , string $column-name = ? ) : resource

Returns a result set listing the columns and associated metadata for a table.

Parameter-Liste

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables. To match all schemas, pass '%'.

table-name

The name of the table or view. To match all tables in the database, pass null or an empty string.

column-name

The name of the column. To match all columns in the table, pass null or an empty string.

Rückgabewerte

Returns a statement resource with a result set containing rows describing the columns matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema.
TABLE_NAME | Name of the table or view.
COLUMN_NAME | Name of the column.
DATA_TYPE | The SQL data type for the column represented as an integer value.
TYPE_NAME | A string representing the data type for the column.
COLUMN_SIZE | An integer value representing the size of the column.
BUFFER_LENGTH | Maximum number of bytes necessary to store data from this column.
DECIMAL_DIGITS | The scale of the column, or null where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or null (representing a data type for which radix is not applicable).
NULLABLE | An integer value representing whether the column is nullable or not.
REMARKS | Description of the column.
COLUMN_DEF | Default value for the column.
SQL_DATA_TYPE | An integer value representing the size of the column.
SQL_DATETIME_SUB | Returns an integer value representing a datetime subtype code, or null for SQL data types to which this does not apply.
CHAR_OCTET_LENGTH | Maximum length in octets for a character data type column, which matches COLUMN_SIZE for single-byte character set data, or null for non-character data types.
ORDINAL_POSITION | The 1-indexed position of the column in the table.
IS_NULLABLE | A string value where 'YES' means that the column is nullable and 'NO' means that the column is not nullable.

Siehe auch

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Commits a transaction

  • « db2_columns
  • db2_conn_error »
  • PHP Manual
  • IBM DB2 Funktionen
  • Commits a transaction

db2_commit

(PECL ibm_db2 >= 1.0.0)

db2_commit — Commits a transaction

Beschreibung

db2_commit ( resource $connection ) : bool

Commits an in-progress transaction on the specified connection resource and begins a new transaction. PHP applications normally default to AUTOCOMMIT mode, so db2_commit() is not necessary unless AUTOCOMMIT has been turned off for the connection resource.

Parameter-Liste

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • db2_autocommit() - Returns or sets the AUTOCOMMIT state for a database connection
  • db2_rollback() - Rolls back a transaction


Returns a string containing the SQLSTATE returned by the last connection attempt

  • « db2_commit
  • db2_conn_errormsg »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a string containing the SQLSTATE returned by the last connection attempt

db2_conn_error

(PECL ibm_db2 >= 1.0.0)

db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt

Beschreibung

db2_conn_error ( resource $connection = ? ) : string

db2_conn_error() returns an SQLSTATE value representing the reason the last attempt to connect to a database failed. As db2_connect() returns false in the event of a failed connection attempt, you do not pass any parameters to db2_conn_error() to retrieve the SQLSTATE value.

If, however, the connection was successful but becomes invalid over time, you can pass the connection parameter to retrieve the SQLSTATE value for a specific connection.

To learn what the SQLSTATE value means, you can issue the following command at a DB2 Command Line Processor prompt: db2 '? sqlstate-value'. You can also call db2_conn_errormsg() to retrieve an explicit error message and the associated SQLCODE value.

Parameter-Liste

connection

A connection resource associated with a connection that initially succeeded, but which over time became invalid.

Rückgabewerte

Returns the SQLSTATE value resulting from a failed connection attempt. Returns an empty string if there is no error associated with the last connection attempt.

Beispiele

Beispiel #1 Retrieving an SQLSTATE value for a failed connection attempt

The following example demonstrates how to return an SQLSTATE value after deliberately passing invalid parameters to db2_connect().

<?php
$conn = db2_connect('badname', 'baduser', 'badpassword');
if (!$conn) {
    print "SQLSTATE value: " . db2_conn_error();
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

SQLSTATE value: 08001

Siehe auch

  • db2_conn_errormsg() - Returns the last connection error message and SQLCODE value
  • db2_connect() - Returns a connection to a database
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns the last connection error message and SQLCODE value

  • « db2_conn_error
  • db2_connect »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns the last connection error message and SQLCODE value

db2_conn_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_conn_errormsg — Returns the last connection error message and SQLCODE value

Beschreibung

db2_conn_errormsg ( resource $connection = ? ) : string

db2_conn_errormsg() returns an error message and SQLCODE value representing the reason the last database connection attempt failed. As db2_connect() returns false in the event of a failed connection attempt, do not pass any parameters to db2_conn_errormsg() to retrieve the associated error message and SQLCODE value.

If, however, the connection was successful but becomes invalid over time, you can pass the connection parameter to retrieve the associated error message and SQLCODE value for a specific connection.

Parameter-Liste

connection

A connection resource associated with a connection that initially succeeded, but which over time became invalid.

Rückgabewerte

Returns a string containing the error message and SQLCODE value resulting from a failed connection attempt. If there is no error associated with the last connection attempt, db2_conn_errormsg() returns an empty string.

Beispiele

Beispiel #1 Retrieving the error message returned by a failed connection attempt

The following example demonstrates how to return an error message and SQLCODE value after deliberately passing invalid parameters to db2_connect().

<?php
$conn = db2_connect('badname', 'baduser', 'badpassword');
if (!$conn) {
    print db2_conn_errormsg();
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

[IBM][CLI Driver] SQL1013N  The database alias name
or database name "BADNAME" could not be found.  SQLSTATE=42705
 SQLCODE=-1013

Siehe auch

  • db2_conn_error() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_connect() - Returns a connection to a database
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns a connection to a database

  • « db2_conn_errormsg
  • db2_cursor_type »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a connection to a database

db2_connect

(PECL ibm_db2 >= 1.0.0)

db2_connect — Returns a connection to a database

Beschreibung

db2_connect ( string $database , string $username , string $password , array $options = ? ) : resource

Creates a new connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database.

Parameter-Liste

database

For a cataloged connection to a database, database represents the database alias in the DB2 client catalog.

For an uncataloged connection to a database, database represents a complete connection string in the following format:

DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password;
where the parameters represent the following values:
database

The name of the database.

hostname

The hostname or IP address of the database server.

port

The TCP/IP port on which the database is listening for requests.

username

The username with which you are connecting to the database.

password

The password with which you are connecting to the database.

username

The username with which you are connecting to the database.

For uncataloged connections, you must pass a null value or empty string.

password

The password with which you are connecting to the database.

For uncataloged connections, you must pass a null value or empty string.

options

An associative array of connection options that affect the behavior of the connection, where valid array keys include:

autocommit

Passing the DB2_AUTOCOMMIT_ON value turns autocommit on for this connection handle.

Passing the DB2_AUTOCOMMIT_OFF value turns autocommit off for this connection handle.

DB2_ATTR_CASE

Passing the DB2_CASE_NATURAL value specifies that column names are returned in natural case.

Passing the DB2_CASE_LOWER value specifies that column names are returned in lower case.

Passing the DB2_CASE_UPPER value specifies that column names are returned in upper case.

CURSOR

Passing the DB2_FORWARD_ONLY value specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.

Passing the DB2_SCROLLABLE value specifies a scrollable cursor for a statement resource. This mode enables random access to rows in a result set, but currently is supported only by IBM DB2 Universal Database.

The following new option is available in ibm_db2 version 1.7.0 and later.

trustedcontext

Passing the DB2_TRUSTED_CONTEXT_ENABLE value turns trusted context on for this connection handle. This parameter cannot be set using db2_set_option().

This key works only if the database is cataloged (even if the database is local), or if you specify the full DSN when you create the connection.

To catalog the database, use following commands:

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later.

i5_lib

A character value that indicates the default library that will be used for resolving unqualified file references. This is not valid if the connection is using system naming mode.

i5_naming

DB2_I5_NAMING_ON value turns on DB2 UDB CLI iSeries system naming mode. Files are qualified using the slash (/) delimiter. Unqualified files are resolved using the library list for the job.

DB2_I5_NAMING_OFF value turns off DB2 UDB CLI default naming mode, which is SQL naming. Files are qualified using the period (.) delimiter. Unqualified files are resolved using either the default library or the current user ID.

i5_commit

The i5_commit attribute should be set before the db2_connect(). If the value is changed after the connection has been established, and the connection is to a remote data source, the change does not take effect until the next successful db2_connect() for the connection handle.

Hinweis:

The php.ini setting ibm_db2.i5_allow_commit==0 or DB2_I5_TXN_NO_COMMIT is the default, but may be overridden with the i5_commit option.

DB2_I5_TXN_NO_COMMIT - Commitment control is not used.

DB2_I5_TXN_READ_UNCOMMITTED - Dirty reads, nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_READ_COMMITTED - Dirty reads are not possible. Nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_REPEATABLE_READ - Dirty reads and nonrepeatable reads are not possible. Phantoms are possible.

DB2_I5_TXN_SERIALIZABLE - Transactions are serializable. Dirty reads, non-repeatable reads, and phantoms are not possible

i5_query_optimize

DB2_FIRST_IO All queries are optimized with the goal of returning the first page of output as fast as possible. This goal works well when the output is controlled by a user who is most likely to cancel the query after viewing the first page of output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause.

DB2_ALL_IO All queries are optimized with the goal of running the entire query to completion in the shortest amount of elapsed time. This is a good option when the output of a query is being written to a file or report, or the interface is queuing the output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause. This is the default.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON value turns on DB2 6X allocation scheme for DBCS translation column size growth.

DB2_I5_DBCS_ALLOC_OFF value turns off DB2 6X allocation scheme for DBCS translation column size growth.

Note: php.ini setting ibm_db2.i5_dbcs_alloc==0 or DB2_I5_DBCS_ALLOC_OFF is the default, but may be overridden with the i5_dbcs_alloc option.

i5_date_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) date format yyyy-mm-dd is used. This is the default.

DB2_I5_FMT_USA - The United States date format mm/dd/yyyy is used.

DB2_I5_FMT_EUR - The European date format dd.mm.yyyy is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard date format yyyy-mm-dd is used.

DB2_I5_FMT_MDY - The date format mm/dd/yyyy is used.

DB2_I5_FMT_DMY - The date format dd/mm/yyyy is used.

DB2_I5_FMT_YMD - The date format yy/mm/dd is used.

DB2_I5_FMT_JUL - The Julian date format yy/ddd is used.

DB2_I5_FMT_JOB - The job default is used.

i5_date_sep

DB2_I5_SEP_SLASH - A slash ( / ) is used as the date separator. This is the default.

DB2_I5_SEP_DASH - A dash ( - ) is used as the date separator.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the date separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the date separator.

DB2_I5_SEP_BLANK - A blank is used as the date separator.

DB2_I5_SEP_JOB - The job default is used

i5_time_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) time format hh.mm.ss is used. This is the default.

DB2_I5_FMT_USA - The United States time format hh:mmxx is used, where xx is AM or PM.

DB2_I5_FMT_EUR - The European time format hh.mm.ss is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard time format hh:mm:ss is used.

DB2_I5_FMT_HMS - The hh:mm:ss format is used.

i5_time_sep

DB2_I5_SEP_COLON - A colon ( : ) is used as the time separator. This is the default.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the time separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the time separator.

DB2_I5_SEP_BLANK - A blank is used as the time separator.

DB2_I5_SEP_JOB - The job default is used.

i5_decimal_sep

DB2_I5_SEP_PERIOD - A period ( . ) is used as the decimal separator. This is the default.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the decimal separator.

DB2_I5_SEP_JOB - The job default is used.

The following new i5/OS option is available in ibm_db2 version 1.8.0 and later.

i5_libl

A character value that indicates the library list that will be used for resolving unqualified file references. Specify the library list elements separated by blanks 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Hinweis:

i5_libl calls qsys2/qcmdexc('cmd',cmdlen), which is only available in i5/OS V5R4 and later.

Rückgabewerte

Returns a connection handle resource if the connection attempt is successful. If the connection attempt fails, db2_connect() returns false.

Beispiele

Beispiel #1 Creating a cataloged connection

Cataloged connections require you to have previously cataloged the target database through the DB2 Command Line Processor (CLP) or DB2 Configuration Assistant.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$conn = db2_connect($database, $user, $password);

if ($conn) {
    echo "Connection succeeded.";
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Connection succeeded.

Beispiel #2 Creating an uncataloged connection

An uncataloged connection enables you to dynamically connect to a database.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$hostname = 'localhost';
$port = 50000;

$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" .
  "HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;";
$conn = db2_connect($conn_string, '', '');

if ($conn) {
    echo "Connection succeeded.";
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Connection succeeded.

Beispiel #3 Creating a connection with autocommit off by default

Passing an array of options to db2_connect() enables you to modify the default behavior of the connection handle.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);

$conn = db2_connect($database, $user, $password, $options);

if ($conn) {
    echo "Connection succeeded.\n";
    if (db2_autocommit($conn)) {
         echo "Autocommit is on.\n";
    }
    else {
         echo "Autocommit is off.\n";
    }
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Connection succeeded.
Autocommit is off.

Beispiel #4 i5/OS best performance

To achieve best performance for your i5/OS ibm_db2 1.5.1 PHP application use the default host, userid, and password for your db2_connect().

<?php
  $library = "ADC";
  $i5 = db2_connect("", "", "", array("i5_lib"=>"qsys2"));
  $result = db2_exec($i5,
       "select * from systables where table_schema = '$library'");
  while ($row = db2_fetch_both($result)) {
     echo $row['TABLE_NAME']."</br>";
  }
  db2_close($i5);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

ANIMALS
NAMES
PICTURES

Beispiel #5 Using trusted context

The following example shows how to enable trusted context, switch users, and get the current user ID.

<?php

$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
  PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_connect($dsn, "", "", $options);
if($tc_conn) {
    echo "Explicit trusted connection succeeded.\n";

    if(db2_get_option($tc_conn, "trustedcontext")) {
        $userBefore = db2_get_option($tc_conn, "trusted_user");

        //Do some work as user 1.

        //Switching to trusted user.
        $parameters = array("trusted_user" => $tc_user,
          "trusted_password" => $tcuser_pass);
        $res = db2_set_option ($tc_conn, $parameters, 1);

        $userAfter = db2_get_option($tc_conn, "trusted_user");
        //Do more work as trusted user.

        if($userBefore != $userAfter) {
            echo "User has been switched." . "\n";
        }
    }

    db2_close($tc_conn);
}
else {
    echo "Explicit trusted connection failed.\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Explicit trusted connection succeeded.
User has been switched.

Siehe auch

  • db2_close() - Closes a database connection
  • db2_pconnect() - Returns a persistent connection to a database


Returns the cursor type used by a statement resource

  • « db2_connect
  • db2_escape_string »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns the cursor type used by a statement resource

db2_cursor_type

(PECL ibm_db2 >= 1.0.0)

db2_cursor_type — Returns the cursor type used by a statement resource

Beschreibung

db2_cursor_type ( resource $stmt ) : int

Returns the cursor type used by a statement resource. Use this to determine if you are working with a forward-only cursor or scrollable cursor.

Parameter-Liste

stmt

A valid statement resource.

Rückgabewerte

Returns either DB2_FORWARD_ONLY if the statement resource uses a forward-only cursor or DB2_SCROLLABLE if the statement resource uses a scrollable cursor.

Siehe auch

  • db2_prepare() - Prepares an SQL statement to be executed


Used to escape certain characters

  • « db2_cursor_type
  • db2_exec »
  • PHP Manual
  • IBM DB2 Funktionen
  • Used to escape certain characters

db2_escape_string

(PECL ibm_db2 >= 1.6.0)

db2_escape_string — Used to escape certain characters

Beschreibung

db2_escape_string ( string $string_literal ) : string

Prepends backslashes to special characters in the string argument.

Parameter-Liste

string_literal

The string that contains special characters that need to be modified. Characters that are prepended with a backslash are \x00, \n, \r, \, ', " and \x1a.

Rückgabewerte

Returns string_literal with the special characters noted above prepended with backslashes.

Beispiele

Beispiel #1 A db2_escape_string() example

Result of using the db2_escape_string() function

<?php

$conn = db2_connect($database, $user, $password);

if ($conn) {
    $str[0] = "All characters: \x00 , \n , \r , \ , ' , \" , \x1a .";
    $str[1] = "Backslash (\). Single quote ('). Double quote (\")";
    $str[2] = "The NULL character \0 must be quoted as well";
    $str[3] = "Intersting characters: \x1a , \x00 .";
    $str[4] = "Nothing to quote";
    $str[5] = 200676;
    $str[6] = "";

    foreach( $str as $string ) {
        echo "db2_escape_string: " . db2_escape_string($string). "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

db2_escape_string: All characters: \0 , \n , \r , \\ , \' , \" , \Z .
db2_escape_string: Backslash (\\). Single quote (\'). Double quote (\")
db2_escape_string: The NULL character \0 must be quoted as well
db2_escape_string: Intersting characters: \Z , \0 .
db2_escape_string: Nothing to quote
db2_escape_string: 200676
db2_escape_string:

Siehe auch

  • db2_prepare() - Prepares an SQL statement to be executed


Executes an SQL statement directly

  • « db2_escape_string
  • db2_execute »
  • PHP Manual
  • IBM DB2 Funktionen
  • Executes an SQL statement directly

db2_exec

(PECL ibm_db2 >= 1.0.0)

db2_exec — Executes an SQL statement directly

Beschreibung

db2_exec ( resource $connection , string $statement , array $options = ? ) : resource

Executes an SQL statement directly.

If you plan to interpolate PHP variables into the SQL statement, understand that this is one of the more common security exposures. Consider calling db2_prepare() to prepare an SQL statement with parameter markers for input values. Then you can call db2_execute() to pass in the input values and avoid SQL injection attacks.

If you plan to repeatedly issue the same SQL statement with different parameters, consider calling db2_prepare() and db2_execute() to enable the database server to reuse its access plan and increase the efficiency of your database access.

Parameter-Liste

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

statement

An SQL statement. The statement cannot contain any parameter markers.

options

An associative array containing statement options. You can use this parameter to request a scrollable cursor on database servers that support this functionality.

For a description of valid statement options, see db2_set_option().

Rückgabewerte

Returns a statement resource if the SQL statement was issued successfully, or false if the database failed to execute the SQL statement.

Beispiele

Beispiel #1 Creating a table with db2_exec()

The following example uses db2_exec() to issue a set of DDL statements in the process of creating a table.

<?php
$conn = db2_connect($database, $user, $password);

// Create the test table
$create = 'CREATE TABLE animals (id INTEGER, breed VARCHAR(32),
    name CHAR(16), weight DECIMAL(7,2))';
$result = db2_exec($conn, $create);
if ($result) {
    print "Successfully created the table.\n";
}

// Populate the test table
$animals = array(
    array(0, 'cat', 'Pook', 3.2),
    array(1, 'dog', 'Peaches', 12.3),
    array(2, 'horse', 'Smarty', 350.0),
    array(3, 'gold fish', 'Bubbles', 0.1),
    array(4, 'budgerigar', 'Gizmo', 0.2),
    array(5, 'goat', 'Rickety Ride', 9.7),
    array(6, 'llama', 'Sweater', 150)
);

foreach ($animals as $animal) {
    $rc = db2_exec($conn, "INSERT INTO animals (id, breed, name, weight)
      VALUES ({$animal[0]}, '{$animal[1]}', '{$animal[2]}', {$animal[3]})");
    if ($rc) {
        print "Insert... ";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Successfully created the table.
Insert... Insert... Insert... Insert... Insert... Insert... Insert...

Beispiel #2 Executing a SELECT statement with a scrollable cursor

The following example demonstrates how to request a scrollable cursor for an SQL statement issued by db2_exec().

<?php
$conn = db2_connect($database, $user, $password);
$sql = "SELECT name FROM animals
    WHERE weight < 10.0
    ORDER BY name";
if ($conn) {
    require_once('prepare.inc');
    $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
    while ($row = db2_fetch_array($stmt)) {
        print "$row[0]\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Bubbles
Gizmo
Pook
Rickety Ride

Beispiel #3 Returning XML data as an SQL ResultSet

The following example demonstrates how to work with documents stored in a XML column using the SAMPLE database. Using some pretty simple SQL/XML, this example returns some of the nodes in a XML document in an SQL ResultSet format that most users are familiar with.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = \'Kathy Smith\'
    ';
$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE\n");
}
db2_close($conn);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Beispiel #4 Performing a "JOIN" with XML data

The following example works with documents stored in 2 different XML columns in the SAMPLE database. It creates 2 temporary tables from the XML documents from 2 different columns and returns an SQL ResultSet with information regarding shipping status for the customer.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
    SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
    FROM
    XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" BIGINT PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) as A,
    PURCHASEORDER AS B,
    XMLTABLE (
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
    COLUMNS
    "PONUM"  BIGINT PATH \'@PoNum\',
    "STATUS" VARCHAR (50) PATH \'@Status\'
    ) as C
    WHERE A.CID = B.CUSTID AND
    B.POID = C.PONUM AND
    A.NAME = \'Kathy Smith\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
}

db2_close($conn);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1001     Kathy Smith     905-555-7258     5002     Shipped

Beispiel #5 Returning SQL data as part of a larger XML document

The following example works with a portion of the PRODUCT.DESCRIPTION documents in the SAMPLE database. It creates a XML document containing product description (XML data) and pricing info (SQL data).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
    for $prod in $doc/product
    where $prod/description/price < 10.00
    order by $prod/description/price ascending
    return(
        <promoitem> {
        $prod,
        <startdate> {$start} </startdate>,
        <enddate> {$end} </enddate>,
        <promoprice> {$promo} </promoprice>
        } </promoitem>
    )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = \'100-100-01\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_array($stmt)){
    printf("$row[0]\n");
}
db2_close($conn);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Siehe auch

  • db2_execute() - Executes a prepared SQL statement
  • db2_prepare() - Prepares an SQL statement to be executed


Executes a prepared SQL statement

  • « db2_exec
  • db2_fetch_array »
  • PHP Manual
  • IBM DB2 Funktionen
  • Executes a prepared SQL statement

db2_execute

(PECL ibm_db2 >= 1.0.0)

db2_execute — Executes a prepared SQL statement

Beschreibung

db2_execute ( resource $stmt , array $parameters = ? ) : bool

db2_execute() executes an SQL statement that was prepared by db2_prepare().

If the SQL statement returns a result set, for example, a SELECT statement or a CALL to a stored procedure that returns one or more result sets, you can retrieve a row as an array from the stmt resource using db2_fetch_assoc(), db2_fetch_both(), or db2_fetch_array(). Alternatively, you can use db2_fetch_row() to move the result set pointer to the next row and fetch a column at a time from that row with db2_result().

Refer to db2_prepare() for a brief discussion of the advantages of using db2_prepare() and db2_execute() rather than db2_exec().

Parameter-Liste

stmt

A prepared statement returned from db2_prepare().

parameters

An array of input parameters matching any parameter markers contained in the prepared statement.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Preparing and executing an SQL statement with parameter markers

The following example prepares an INSERT statement that accepts four parameter markers, then iterates over an array of arrays containing the input values to be passed to db2_execute().

<?php
$pet = array(0, 'cat', 'Pook', 3.2);

$insert = 'INSERT INTO animals (id, breed, name, weight)
    VALUES (?, ?, ?, ?)';

$stmt = db2_prepare($conn, $insert);
if ($stmt) {
    $result = db2_execute($stmt, $pet);
    if ($result) {
        print "Successfully added new pet.";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Successfully added new pet.

Beispiel #2 Calling a stored procedure with an OUT parameter

The following example prepares a CALL statement that accepts one parameter marker representing an OUT parameter, binds the PHP variable $my_pets to the parameter using db2_bind_param(), then issues db2_execute() to execute the CALL statement. After the CALL to the stored procedure has been made, the value of $num_pets changes to reflect the value returned by the stored procedure for that OUT parameter.

<?php
$num_pets = 0;
$res = db2_prepare($conn, "CALL count_my_pets(?)");
$rc = db2_bind_param($res, 1, "num_pets", DB2_PARAM_OUT);
$rc = db2_execute($res);
print "I have $num_pets pets!";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

I have 7 pets!

Beispiel #3 Returning XML data as an SQL ResultSet

The following example demonstrates how to work with documents stored in a XML column using the SAMPLE database. Using some pretty simple SQL/XML, this example returns some of the nodes in a XML document in an SQL ResultSet format that most users are familiar with.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = ?
    ';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE\n");
    }
}
db2_close($conn);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Beispiel #4 Performing a "JOIN" with XML data

The following example works with documents stored in 2 different XML columns in the SAMPLE database. It creates 2 temporary tables from the XML documents from 2 different columns and returns an SQL ResultSet with information regarding shipping status for the customer.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
FROM
XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" BIGINT PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) as A,
PURCHASEORDER AS B,
XMLTABLE (
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
COLUMNS
"PONUM"  BIGINT PATH \'@PoNum\',
"STATUS" VARCHAR (50) PATH \'@Status\'
) as C
WHERE A.CID = B.CUSTID AND
    B.POID = C.PONUM AND
    A.NAME = ?
';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
    }
}

db2_close($conn);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1001     Kathy Smith     905-555-7258     5002     Shipped

Beispiel #5 Returning SQL data as part of a larger XML document

The following example works with a portion of the PRODUCT.DESCRIPTION documents in the SAMPLE database. It creates a XML document containing product description (XML data) and pricing info (SQL data).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
    for $prod in $doc/product
    where $prod/description/price < 10.00
    order by $prod/description/price ascending
    return(
        <promoitem> {
        $prod,
        <startdate> {$start} </startdate>,
        <enddate> {$end} </enddate>,
        <promoprice> {$promo} </promoprice>
            } </promoitem>
    )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = ?
';

$stmt = db2_prepare($conn, $query);

$pid = "100-100-01";

if ($stmt) {
    db2_bind_param($stmt, 1, "pid", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_array($stmt)){
    printf("$row[0]\n");
    }
}

db2_close($conn);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Siehe auch

  • db2_exec() - Executes an SQL statement directly
  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_result() - Returns a single column from a row in the result set


Returns an array, indexed by column position, representing a row in a result set

  • « db2_execute
  • db2_fetch_assoc »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns an array, indexed by column position, representing a row in a result set

db2_fetch_array

(PECL ibm_db2 >= 1.0.1)

db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set

Beschreibung

db2_fetch_array ( resource $stmt , int $row_number = -1 ) : array

Returns an array, indexed by column position, representing a row in a result set. The columns are 0-indexed.

Parameter-Liste

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Rückgabewerte

Returns a 0-indexed array with column values indexed by the column position representing the next or requested row in the result set. Returns false if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

Beispiele

Beispiel #1 Iterating through a forward-only cursor

If you call db2_fetch_array() without a specific row number, it automatically retrieves the next row in the result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_array($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row[1], $row[2], $row[3]);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Beispiel #2 Retrieving specific rows with db2_fetch_array() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_array() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_array($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row[1], $row[2], $row[3]);
    $i = $i + 2;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Siehe auch

  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Returns an array, indexed by column name, representing a row in a result set

  • « db2_fetch_array
  • db2_fetch_both »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns an array, indexed by column name, representing a row in a result set

db2_fetch_assoc

(PECL ibm_db2 >= 1.0.0)

db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set

Beschreibung

db2_fetch_assoc ( resource $stmt , int $row_number = -1 ) : array

Returns an array, indexed by column name, representing a row in a result set.

Parameter-Liste

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Rückgabewerte

Returns an associative array with column values indexed by the column name representing the next or requested row in the result set. Returns false if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

Beispiele

Beispiel #1 Iterating through a forward-only cursor

If you call db2_fetch_assoc() without a specific row number, it automatically retrieves the next row in the result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_assoc($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Beispiel #2 Retrieving specific rows with db2_fetch_assoc() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_assoc() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_assoc($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
    $i = $i + 2;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Siehe auch

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Returns an array, indexed by both column name and position, representing a row in a result set

  • « db2_fetch_assoc
  • db2_fetch_object »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns an array, indexed by both column name and position, representing a row in a result set

db2_fetch_both

(PECL ibm_db2 >= 1.0.0)

db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set

Beschreibung

db2_fetch_both ( resource $stmt , int $row_number = -1 ) : array

Returns an array, indexed by both column name and position, representing a
row in a result set. Note that the row returned by
db2_fetch_both() requires more memory than the
single-indexed arrays returned by db2_fetch_assoc() or
db2_fetch_array().

Parameter-Liste

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Rückgabewerte

Returns an associative array with column values indexed by both the column name and 0-indexed column number. The array represents the next or requested row in the result set. Returns false if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

Beispiele

Beispiel #1 Iterating through a forward-only cursor

If you call db2_fetch_both() without a specific row number, it automatically retrieves the next row in the result set. The following example accesses columns in the returned array by both column name and by numeric index.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_both($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row[0], $row['BREED'], $row[3]);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Beispiel #2 Retrieving specific rows with db2_fetch_both() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_both() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_both($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row['NAME'], $row[2], $row['WEIGHT']);
    $i = $i + 2;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Siehe auch

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Returns an object with properties representing columns in the fetched row

  • « db2_fetch_both
  • db2_fetch_row »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns an object with properties representing columns in the fetched row

db2_fetch_object

(PECL ibm_db2 >= 1.0.0)

db2_fetch_object — Returns an object with properties representing columns in the fetched row

Beschreibung

db2_fetch_object ( resource $stmt , int $row_number = -1 ) : object

Returns an object in which each property represents a column returned in the row fetched from a result set.

Parameter-Liste

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Rückgabewerte

Returns an object representing a single row in the result set. The properties of the object map to the names of the columns in the result set.

The IBM DB2, Cloudscape, and Apache Derby database servers typically fold column names to upper-case, so the object properties will reflect that case.

If your SELECT statement calls a scalar function to modify the value of a column, the database servers return the column number as the name of the column in the result set. If you prefer a more descriptive column name and object property, you can use the AS clause to assign a name to the column in the result set.

Returns false if no row was retrieved.

Beispiele

Beispiel #1 A db2_fetch_object() example

The following example issues a SELECT statement with a scalar function, RTRIM, that removes whitespace from the end of the column. Rather than creating an object with the properties "BREED" and "2", we use the AS clause in the SELECT statement to assign the name "name" to the modified column. The database server folds the column names to upper-case, resulting in an object with the properties "BREED" and "NAME".

<?php
$conn = db2_connect($database, $user, $password);

$sql = "SELECT breed, RTRIM(name) AS name
    FROM animals
    WHERE id = ?";

if ($conn) {
    $stmt = db2_prepare($conn, $sql);
    db2_execute($stmt, array(0));

    while ($pet = db2_fetch_object($stmt)) {
        echo "Come here, {$pet->NAME}, my little {$pet->BREED}!";
    }
    db2_close($conn);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Come here, Pook, my little cat!

Siehe auch

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Sets the result set pointer to the next row or requested row

  • « db2_fetch_object
  • db2_field_display_size »
  • PHP Manual
  • IBM DB2 Funktionen
  • Sets the result set pointer to the next row or requested row

db2_fetch_row

(PECL ibm_db2 >= 1.0.0)

db2_fetch_row — Sets the result set pointer to the next row or requested row

Beschreibung

db2_fetch_row ( resource $stmt , int $row_number = ? ) : bool

Use db2_fetch_row() to iterate through a result set, or to point to a specific row in a result set if you requested a scrollable cursor.

To retrieve individual fields from the result set, call the db2_result() function.

Rather than calling db2_fetch_row() and db2_result(), most applications will call one of db2_fetch_assoc(), db2_fetch_both(), or db2_fetch_array() to advance the result set pointer and return a complete row as an array.

Parameter-Liste

stmt

A valid stmt resource.

row_number

With scrollable cursors, you can request a specific row number in the result set. Row numbering is 1-indexed.

Rückgabewerte

Returns true if the requested row exists in the result set. Returns false if the requested row does not exist in the result set.

Beispiele

Beispiel #1 Iterating through a result set

The following example demonstrates how to iterate through a result set with db2_fetch_row() and retrieve columns from the result set with db2_result().

<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $name = db2_result($stmt, 0);
    $breed = db2_result($stmt, 1);
    print "$name $breed";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride

Beispiel #2 i5/OS recommended alternatives to db2_fetch_row/db2_result

On i5/OS it is recommended that you use db2_fetch_both(), db2_fetch_array(), or db2_fetch_object() over db2_fetch_row()/db2_result(). In general db2_fetch_row()/db2_result() have more issues with various column types in EBCIDIC to ASCII translation, including possible truncation in DBCS applications. You may also find the performance of db2_fetch_both(), db2_fetch_array(), and db2_fetch_object() to be superior to db2_fetch_row()/db2_result().

<?php
  $conn = db2_connect("","","");
  $sql = 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY';
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_both($stmt)){
    echo "<br>db2_fetch_both {$row['SPECIFIC_NAME']} {$row['ROUTINE_CREATED']} {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_array($stmt)){
    echo "<br>db2_fetch_array {$row[1]}  {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_object($stmt)){
    echo "<br>db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
  }
  db2_close($conn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000

Siehe auch

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_result() - Returns a single column from a row in the result set


Returns the maximum number of bytes required to display a column

  • « db2_fetch_row
  • db2_field_name »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns the maximum number of bytes required to display a column

db2_field_display_size

(PECL ibm_db2 >= 1.0.0)

db2_field_display_size — Returns the maximum number of bytes required to display a column

Beschreibung

db2_field_display_size ( resource $stmt , mixed $column ) : int

Returns the maximum number of bytes required to display a column in a result set.

Parameter-Liste

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Rückgabewerte

Returns an integer value with the maximum number of bytes required to display the specified column. If the column does not exist in the result set, db2_field_display_size() returns false.

Siehe auch

  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the name of the column in the result set

  • « db2_field_display_size
  • db2_field_num »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns the name of the column in the result set

db2_field_name

(PECL ibm_db2 >= 1.0.0)

db2_field_name — Returns the name of the column in the result set

Beschreibung

db2_field_name ( resource $stmt , mixed $column ) : string

Returns the name of the specified column in the result set.

Parameter-Liste

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Rückgabewerte

Returns a string containing the name of the specified column. If the specified column does not exist in the result set, db2_field_name() returns false.

Siehe auch

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the position of the named column in a result set

  • « db2_field_name
  • db2_field_precision »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns the position of the named column in a result set

db2_field_num

(PECL ibm_db2 >= 1.0.0)

db2_field_num — Returns the position of the named column in a result set

Beschreibung

db2_field_num ( resource $stmt , mixed $column ) : int

Returns the position of the named column in a result set.

Parameter-Liste

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Rückgabewerte

Returns an integer containing the 0-indexed position of the named column in the result set. If the specified column does not exist in the result set, db2_field_num() returns false.

Siehe auch

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the precision of the indicated column in a result set

  • « db2_field_num
  • db2_field_scale »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns the precision of the indicated column in a result set

db2_field_precision

(PECL ibm_db2 >= 1.0.0)

db2_field_precision — Returns the precision of the indicated column in a result set

Beschreibung

db2_field_precision ( resource $stmt , mixed $column ) : int

Returns the precision of the indicated column in a result set.

Parameter-Liste

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Rückgabewerte

Returns an integer containing the precision of the specified column. If the specified column does not exist in the result set, db2_field_precision() returns false.

Siehe auch

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the scale of the indicated column in a result set

  • « db2_field_precision
  • db2_field_type »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns the scale of the indicated column in a result set

db2_field_scale

(PECL ibm_db2 >= 1.0.0)

db2_field_scale — Returns the scale of the indicated column in a result set

Beschreibung

db2_field_scale ( resource $stmt , mixed $column ) : int

Returns the scale of the indicated column in a result set.

Parameter-Liste

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Rückgabewerte

Returns an integer containing the scale of the specified column. If the specified column does not exist in the result set, db2_field_scale() returns false.

Siehe auch

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the data type of the indicated column in a result set

  • « db2_field_scale
  • db2_field_width »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns the data type of the indicated column in a result set

db2_field_type

(PECL ibm_db2 >= 1.0.0)

db2_field_type — Returns the data type of the indicated column in a result set

Beschreibung

db2_field_type ( resource $stmt , mixed $column ) : string

Returns the data type of the indicated column in a result set.

Parameter-Liste

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Rückgabewerte

Returns a string containing the defined data type of the specified column. If the specified column does not exist in the result set, db2_field_type() returns false.

Siehe auch

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the width of the current value of the indicated column in a result set

  • « db2_field_type
  • db2_foreign_keys »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns the width of the current value of the indicated column in a result set

db2_field_width

(PECL ibm_db2 >= 1.0.0)

db2_field_width — Returns the width of the current value of the indicated column in a result set

Beschreibung

db2_field_width ( resource $stmt , mixed $column ) : int

Returns the width of the current value of the indicated column in a result set. This is the maximum width of the column for a fixed-length data type, or the actual width of the column for a variable-length data type.

Parameter-Liste

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Rückgabewerte

Returns an integer containing the width of the specified character or binary data type column in a result set. If the specified column does not exist in the result set, db2_field_width() returns false.

Siehe auch

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set


Returns a result set listing the foreign keys for a table

  • « db2_field_width
  • db2_free_result »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a result set listing the foreign keys for a table

db2_foreign_keys

(PECL ibm_db2 >= 1.0.0)

db2_foreign_keys — Returns a result set listing the foreign keys for a table

Beschreibung

db2_foreign_keys ( resource $connection , string $qualifier , string $schema , string $table-name ) : resource

Returns a result set listing the foreign keys for a table.

Parameter-Liste

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables. If schema is null, db2_foreign_keys() matches the schema for the current connection.

table-name

The name of the table.

Rückgabewerte

Returns a statement resource with a result set containing rows describing the foreign keys for the specified table. The result set is composed of the following columns:

Column name | Description
PKTABLE_CAT | Name of the catalog for the table containing the primary key. The value is NULL if this table does not have catalogs.
PKTABLE_SCHEM | Name of the schema for the table containing the primary key.
PKTABLE_NAME | Name of the table containing the primary key.
PKCOLUMN_NAME | Name of the column containing the primary key.
FKTABLE_CAT | Name of the catalog for the table containing the foreign key. The value is NULL if this table does not have catalogs.
FKTABLE_SCHEM | Name of the schema for the table containing the foreign key.
FKTABLE_NAME | Name of the table containing the foreign key.
FKCOLUMN_NAME | Name of the column containing the foreign key.
KEY_SEQ | 1-indexed position of the column in the key.
UPDATE_RULE | Integer value representing the action applied to the foreign key when the SQL operation is UPDATE.
DELETE_RULE | Integer value representing the action applied to the foreign key when the SQL operation is DELETE.
FK_NAME | The name of the foreign key.
PK_NAME | The name of the primary key.
DEFERRABILITY | An integer value representing whether the foreign key deferrability is SQL_INITIALLY_DEFERRED, SQL_INITIALLY_IMMEDIATE, or SQL_NOT_DEFERRABLE.

Siehe auch

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Frees resources associated with a result set

  • « db2_foreign_keys
  • db2_free_stmt »
  • PHP Manual
  • IBM DB2 Funktionen
  • Frees resources associated with a result set

db2_free_result

(PECL ibm_db2 >= 1.0.0)

db2_free_result — Frees resources associated with a result set

Beschreibung

db2_free_result ( resource $stmt ) : bool

Frees the system and database resources that are associated with a result set. These resources are freed implicitly when a script finishes, but you can call db2_free_result() to explicitly free the result set resources before the end of the script.

Parameter-Liste

stmt

A valid statement resource.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • db2_free_stmt() - Frees resources associated with the indicated statement resource


Frees resources associated with the indicated statement resource

  • « db2_free_result
  • db2_get_option »
  • PHP Manual
  • IBM DB2 Funktionen
  • Frees resources associated with the indicated statement resource

db2_free_stmt

(PECL ibm_db2 >= 1.0.0)

db2_free_stmt — Frees resources associated with the indicated statement resource

Beschreibung

db2_free_stmt ( resource $stmt ) : bool

Frees the system and database resources that are associated with a statement resource. These resources are freed implicitly when a script finishes, but you can call db2_free_stmt() to explicitly free the statement resources before the end of the script.

Parameter-Liste

stmt

A valid statement resource.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • db2_free_result() - Frees resources associated with a result set


Retrieves an option value for a statement resource or a connection resource

  • « db2_free_stmt
  • db2_last_insert_id »
  • PHP Manual
  • IBM DB2 Funktionen
  • Retrieves an option value for a statement resource or a connection resource

db2_get_option

(PECL ibm_db2 >= 1.6.0)

db2_get_option — Retrieves an option value for a statement resource or a connection resource

Beschreibung

db2_get_option ( resource $resource , string $option ) : string|false

Retrieves the value of a specified option value for a statement resource or a connection resource.

Parameter-Liste

resource

A valid statement resource as returned from db2_prepare() or a valid connection resource as returned from db2_connect() or db2_pconnect().

option

A valid statement or connection options. The following new options are available as of ibm_db2 version 1.6.0. They provide useful tracking information that can be set during execution with db2_get_option().

Hinweis:

Prior versions of ibm_db2 do not support these new options.

When the value in each option is being set, some servers might not handle the entire length provided and might truncate the value.

To ensure that the data specified in each option is converted correctly when transmitted to a host system, use only the characters A through Z, 0 through 9, and the underscore (_) or period (.).

userid

SQL_ATTR_INFO_USERID - A pointer to a null-terminated character string used to identify the client user ID sent to the host database server when using DB2 Connect.

Hinweis:

DB2 for z/OS and OS/390 servers support up to a length of 16 characters. This user-id is not to be confused with the authentication user-id, it is for identification purposes only and is not used for any authorization.

acctstr

SQL_ATTR_INFO_ACCTSTR - A pointer to a null-terminated character string used to identify the client accounting string sent to the host database server when using DB2 Connect.

Hinweis:

DB2 for z/OS and OS/390 servers support up to a length of 200 characters.

applname

SQL_ATTR_INFO_APPLNAME - A pointer to a null-terminated character string used to identify the client application name sent to the host database server when using DB2 Connect.

Hinweis:

DB2 for z/OS and OS/390 servers support up to a length of 32 characters.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME - A pointer to a null-terminated character string used to identify the client workstation name sent to the host database server when using DB2 Connect.

Hinweis:

DB2 for z/OS and OS/390 servers support up to a length of 18 characters.

The following table specifies which options are compatible with the available resource types:

Resource-Parameter Matrix
Key | Value | Resource Type
 |  | Connection | Statement | Result Set
userid | SQL_ATTR_INFO_USERID | X | X | -
acctstr | SQL_ATTR_INFO_ACCTSTR | X | X | -
applname | SQL_ATTR_INFO_APPLNAME | X | X | -
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME | X | X | -

Rückgabewerte

Returns the current setting of the connection attribute provided on success Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Setting and retrieving parameters through a connection resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$user     = 'db2inst1';
$password = 'ibmdb2';

/* Obtain Connection Resource */
$conn = db2_connect($database, $user, $password);

echo "Client attributes passed through connection string:\n";

/* Create the associative options array with valid key-value pairs */
/* Assign the attributes through connection string */
/* Access the options specified */
$options1 = array('userid' => 'db2inst1');
$conn1 = db2_connect($database, $user, $password, $options1);
$val = db2_get_option($conn1, 'userid');
echo $val . "\n";

$options2 = array('acctstr' => 'account');
$conn2 = db2_connect($database, $user, $password, $options2);
$val = db2_get_option($conn2, 'acctstr');
echo $val . "\n";

$options3 = array('applname' => 'myapp');
$conn3 = db2_connect($database, $user, $password, $options3);
$val = db2_get_option($conn3, 'applname');
echo $val . "\n";

$options4 = array('wrkstnname' => 'workstation');
$conn4 = db2_connect($database, $user, $password, $options4);
$val = db2_get_option($conn4, 'wrkstnname');
echo $val . "\n";

echo "Client attributes passed post-connection:\n";

/* Create the associative options array with valid key-value pairs */
/* Assign the attributes after a connection is made */
/* Access the options specified */
$options5 = array('userid' => 'db2inst1');
$conn5 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn5, $options5, 1);
$val = db2_get_option($conn5, 'userid');
echo $val . "\n";

$options6 = array('acctstr' => 'account');
$conn6 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn6, $options6, 1);
$val = db2_get_option($conn6, 'acctstr');
echo $val . "\n";

$options7 = array('applname' => 'myapp');
$conn7 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn7, $options7, 1);
$val = db2_get_option($conn7, 'applname');
echo $val . "\n";

$options8 = array('wrkstnname' => 'workstation');
$conn8 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn8, $options8, 1);
$val = db2_get_option($conn8, 'wrkstnname');
echo $val . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Client attributes passed through connection string:
db2inst1
account
myapp
workstation
Client attributes passed post-connection:
db2inst1
account
myapp
workstation

Siehe auch

  • db2_connect() - Returns a connection to a database
  • db2_cursor_type() - Returns the cursor type used by a statement resource
  • db2_exec() - Executes an SQL statement directly
  • db2_set_option() - Set options for connection or statement resources
  • db2_pconnect() - Returns a persistent connection to a database
  • db2_prepare() - Prepares an SQL statement to be executed


Returns the auto generated ID of the last insert query that successfully executed on this connection

  • « db2_get_option
  • db2_lob_read »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns the auto generated ID of the last insert query that successfully executed on this connection

db2_last_insert_id

(PECL ibm_db2 >= 1.7.1)

db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection

Beschreibung

db2_last_insert_id ( resource $resource ) : string

Returns the auto generated ID of the last insert query that successfully executed on this connection.

The result of this function is not affected by any of the following:

  • A single row INSERT statement with a VALUES clause for a table without an identity column.

  • A multiple row INSERT statement with a VALUES clause.

  • An INSERT statement with a fullselect.

  • A ROLLBACK TO SAVEPOINT statement.

Parameter-Liste

resource

A valid connection resource as returned from db2_connect() or db2_pconnect(). The value of this parameter cannot be a statement resource or result set resource.

Rückgabewerte

Returns the auto generated ID of last insert query that successfully executed on this connection.

Beispiele

Beispiel #1 A db2_last_insert_id() example

The following example shows how to return the auto generated ID of last insert query that successfully executed on this connection.

<?php

$database = "SAMPLE";
$user = "db2inst1";
$password = "ibmdb2";

$conn = db2_connect($database, $user, $password);
if($conn) {
    $createTable = "CREATE TABLE lastInsertID
      (id integer GENERATED BY DEFAULT AS IDENTITY, name varchar(20))";
    $insertTable = "INSERT INTO lastInsertID (name) VALUES ('Temp Name')";

    $stmt = @db2_exec($conn, $createTable);

    /* Checking for single row inserted. */
    $stmt = db2_exec($conn, $insertTable);
    $ret =  db2_last_insert_id($conn);
    if($ret) {
        echo "Last Insert ID is : " . $ret . "\n";
    } else {
        echo "No Last insert ID.\n";
    }

    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Last Insert ID is : 1


Gets a user defined size of LOB files with each invocation

  • « db2_last_insert_id
  • db2_next_result »
  • PHP Manual
  • IBM DB2 Funktionen
  • Gets a user defined size of LOB files with each invocation

db2_lob_read

(PECL ibm_db2 >= 1.6.0)

db2_lob_read — Gets a user defined size of LOB files with each invocation

Beschreibung

db2_lob_read ( resource $stmt , int $colnum , int $length ) : string

Use db2_lob_read() to iterate through a specified column of a result set and retrieve a user defined size of LOB data.

Parameter-Liste

stmt

A valid stmt resource containing LOB data.

colnum

A valid column number in the result set of the stmt resource.

length

The size of the LOB data to be retrieved from the stmt resource.

Rückgabewerte

Returns the amount of data the user specifies. Returns false if the data cannot be retrieved.

Beispiele

Beispiel #1 Iterating through different types of data

<?php

/* Database Connection Parameters */
$db = 'SAMPLE';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Obtain Connection Resource */
$conn = db2_connect($db,$username,$password);

if ($conn) {
    $drop = 'DROP TABLE clob_stream';
    $result = @db2_exec( $conn, $drop );

    $create = 'CREATE TABLE clob_stream (id INTEGER, my_clob CLOB)';
    $result = db2_exec( $conn, $create );

    $variable = "";
    $stmt = db2_prepare($conn, "INSERT INTO clob_stream (id,my_clob) VALUES (1, ?)");
    $variable = "THIS IS A CLOB TEST. THIS IS A CLOB TEST.";
    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
    db2_execute($stmt);

    $sql = "SELECT id,my_clob FROM clob_stream";
    $result = db2_prepare($conn, $sql);
    db2_execute($result);
    db2_fetch_row($result);
    $i = 0;
    /* Read LOB data */
    while ($data = db2_lob_read($result, 2, 6)) {
        echo "Loop $i: $data\n";
        $i = $i + 1;
    }

    $drop = 'DROP TABLE blob_stream';
    $result = @db2_exec( $conn, $drop );

    $create = 'CREATE TABLE blob_stream (id INTEGER, my_blob CLOB)';
    $result = db2_exec( $conn, $create );

    $variable = "";
    $stmt = db2_prepare($conn, "INSERT INTO blob_stream (id,my_blob) VALUES (1, ?)");
    $variable = "THIS IS A BLOB TEST. THIS IS A BLOB TEST.";
    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
    db2_execute($stmt);

    $sql = "SELECT id,my_blob FROM blob_stream";
    $result = db2_prepare($conn, $sql);
    db2_execute($result);
    db2_fetch_row($result);
    $i = 0;
    /* Read LOB data */
    while ($data = db2_lob_read($result, 2, 6)) {
        echo "Loop $i: $data\n";
        $i = $i + 1;
    }
} else {
    echo 'no connection: ' . db2_conn_errormsg();
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Loop 0: THIS I
Loop 1: S A CL
Loop 2: OB TES
Loop 3: T. THI
Loop 4: S IS A
Loop 5:  CLOB
Loop 6: TEST.
Loop 0: THIS I
Loop 1: S A BL
Loop 2: OB TES
Loop 3: T. THI
Loop 4: S IS A
Loop 5:  BLOB
Loop 6: TEST.

Siehe auch

  • db2_bind_param() - Binds a PHP variable to an SQL statement parameter
  • db2_exec() - Executes an SQL statement directly
  • db2_execute() - Executes a prepared SQL statement
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_result() - Returns a single column from a row in the result set


Requests the next result set from a stored procedure

  • « db2_lob_read
  • db2_num_fields »
  • PHP Manual
  • IBM DB2 Funktionen
  • Requests the next result set from a stored procedure

db2_next_result

(PECL ibm_db2 >= 1.0.0)

db2_next_result — Requests the next result set from a stored procedure

Beschreibung

db2_next_result ( resource $stmt ) : resource

A stored procedure can return zero or more result sets. While you handle the first result set in exactly the same way you would handle the results returned by a simple SELECT statement, to fetch the second and subsequent result sets from a stored procedure you must call the db2_next_result() function and return the result to a uniquely named PHP variable.

Parameter-Liste

stmt

A prepared statement returned from db2_exec() or db2_execute().

Rückgabewerte

Returns a new statement resource containing the next result set if the stored procedure returned another result set. Returns false if the stored procedure did not return another result set.

Beispiele

Beispiel #1 Calling a stored procedure that returns multiple result sets

In the following example, we call a stored procedure that returns three result sets. The first result set is fetched directly from the same statement resource on which we invoked the CALL statement, while the second and third result sets are fetched from statement resources returned from our calls to the db2_next_result() function.

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
  $stmt = db2_exec($conn, 'CALL multiResults()');

  print "Fetching first result set\n";
  while ($row = db2_fetch_array($stmt)) {
    var_dump($row);
  }

  print "\nFetching second result set\n";
  $res = db2_next_result($stmt);
  if ($res) {
    while ($row = db2_fetch_array($res)) {
      var_dump($row);
    }
  }

  print "\nFetching third result set\n";
  $res2 = db2_next_result($stmt);
  if ($res2) {
    while ($row = db2_fetch_array($res2)) {
      var_dump($row);
    }
  }

  db2_close($conn);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Fetching first result set
array(2) {
  [0]=>
  string(16) "Bubbles         "
  [1]=>
  int(3)
}
array(2) {
  [0]=>
  string(16) "Gizmo           "
  [1]=>
  int(4)
}

Fetching second result set
array(4) {
  [0]=>
  string(16) "Sweater         "
  [1]=>
  int(6)
  [2]=>
  string(5) "llama"
  [3]=>
  string(6) "150.00"
}
array(4) {
  [0]=>
  string(16) "Smarty          "
  [1]=>
  int(2)
  [2]=>
  string(5) "horse"
  [3]=>
  string(6) "350.00"
}

Fetching third result set
array(1) {
  [0]=>
  string(16) "Bubbles         "
}
array(1) {
  [0]=>
  string(16) "Gizmo           "
}


Returns the number of fields contained in a result set

  • « db2_next_result
  • db2_num_rows »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns the number of fields contained in a result set

db2_num_fields

(PECL ibm_db2 >= 1.0.0)

db2_num_fields — Returns the number of fields contained in a result set

Beschreibung

db2_num_fields ( resource $stmt ) : int

Returns the number of fields contained in a result set. This is most useful for handling the result sets returned by dynamically generated queries, or for result sets returned by stored procedures, where your application cannot otherwise know how to retrieve and use the results.

Parameter-Liste

stmt

A valid statement resource containing a result set.

Rückgabewerte

Returns an integer value representing the number of fields in the result set associated with the specified statement resource. Returns false if the statement resource is not a valid input value.

Beispiele

Beispiel #1 Retrieving the number of fields in a result set

The following example demonstrates how to retrieve the number of fields returned in a result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, $sql);
$columns = db2_num_fields($stmt);

echo "There are {$columns} columns in the result set.";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

There are 4 columns in the result set.

Siehe auch

  • db2_execute() - Executes a prepared SQL statement
  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the number of rows affected by an SQL statement

  • « db2_num_fields
  • db2_pclose »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns the number of rows affected by an SQL statement

db2_num_rows

(PECL ibm_db2 >= 1.0.0)

db2_num_rows — Returns the number of rows affected by an SQL statement

Beschreibung

db2_num_rows ( resource $stmt ) : int

Returns the number of rows deleted, inserted, or updated by an SQL statement.

To determine the number of rows that will be returned by a SELECT statement, issue SELECT COUNT(*) with the same predicates as your intended SELECT statement and retrieve the value.

If your application logic checks the number of rows returned by a SELECT statement and branches if the number of rows is 0, consider modifying your application to attempt to return the first row with one of db2_fetch_assoc(), db2_fetch_both(), db2_fetch_array(), or db2_fetch_row(), and branch if the fetch function returns false.

Hinweis:

If you issue a SELECT statement using a scrollable cursor, db2_num_rows() returns the number of rows returned by the SELECT statement. However, the overhead associated with scrollable cursors significantly degrades the performance of your application, so if this is the only reason you are considering using scrollable cursors, you should use a forward-only cursor and either call SELECT COUNT(*) or rely on the bool return value of the fetch functions to achieve the equivalent functionality with much better performance.

Parameter-Liste

stmt

A valid stmt resource containing a result set.

Rückgabewerte

Returns the number of rows affected by the last SQL statement issued by the specified statement handle.


Closes a persistent database connection

  • « db2_num_rows
  • db2_pconnect »
  • PHP Manual
  • IBM DB2 Funktionen
  • Closes a persistent database connection

db2_pclose

(PECL ibm_db2 >= 1.8.0)

db2_pclose — Closes a persistent database connection

Beschreibung

db2_pclose ( resource $resource ) : bool

This function closes a DB2 client connection created with db2_pconnect() and returns the corresponding resources to the database server.

Hinweis:

This function is only available on i5/OS in response to i5/OS system administration requests.

If you have a persistent DB2 client connection created with db2_pconnect(), you may use this function to close the connection. To avoid substantial connection performance penalties, this function should only be used in rare cases when the persistent connection has become unresponsive or the persistent connection will not be needed for a long period of time.

Parameter-Liste

connection

Specifies an active DB2 client connection.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Closing a persistent connection

The following example demonstrates a successful attempt to close a connection to an IBM DB2 i5/OS database.

<?php
$conn = db2_pconnect('', '', '');
$rc = db2_pclose($conn);
if ($rc) {
    echo "Connection was successfully closed.";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Connection was successfully closed.

Siehe auch

  • db2_close() - Closes a database connection
  • db2_pconnect() - Returns a persistent connection to a database


Returns a persistent connection to a database

  • « db2_pclose
  • db2_prepare »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a persistent connection to a database

db2_pconnect

(PECL ibm_db2 >= 1.0.0)

db2_pconnect — Returns a persistent connection to a database

Beschreibung

db2_pconnect ( string $database , string $username , string $password , array $options = ? ) : resource

Returns a persistent connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database.

For more information on persistent connections, refer to Persistente Datenbankverbindungen.

Calling db2_close() on a persistent connection always returns true, but the underlying DB2 client connection remains open and waiting to serve the next matching db2_pconnect() request.

Users running version 1.9.0 or later of ibm_db2 should be aware that the extension will perform a transaction rollback on persistent connections at the end of a request, thus ending the transaction. This prevents the transaction block from carrying over to the next request which uses that connection if script execution ends before the transaction block does.

Parameter-Liste

database

The database alias in the DB2 client catalog.

username

The username with which you are connecting to the database.

password

The password with which you are connecting to the database.

options

An associative array of connection options that affect the behavior of the connection, where valid array keys include:

autocommit

Passing the DB2_AUTOCOMMIT_ON value turns autocommit on for this connection handle.

Passing the DB2_AUTOCOMMIT_OFF value turns autocommit off for this connection handle.

DB2_ATTR_CASE

Passing the DB2_CASE_NATURAL value specifies that column names are returned in natural case.

Passing the DB2_CASE_LOWER value specifies that column names are returned in lower case.

Passing the DB2_CASE_UPPER value specifies that column names are returned in upper case.

CURSOR

Passing the DB2_FORWARD_ONLY value specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.

Passing the DB2_SCROLLABLE value specifies a scrollable cursor for a statement resource. This mode enables random access to rows in a result set, but currently is supported only by IBM DB2 Universal Database.

The following new option is available in ibm_db2 version 1.7.0 and later.

trustedcontext

Passing the DB2_TRUSTED_CONTEXT_ENABLE value turns trusted context on for this connection handle. This parameter cannot be set using db2_set_option().

This key works only if the database is cataloged (even if the database is local), or if you specify the full DSN when you create the connection.

To catalog the database, use following commands:

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later.

Tipp

Conflicting connection attributes used in conjunction with persistent connections can produce indeterminate results on i5/OS. Site policies should be establish for all applications using each persistent connection user profile. The default DB2_AUTOCOMMIT_ON is suggested when using persistent connections.

i5_lib

A character value that indicates the default library that will be used for resolving unqualified file references. This is not valid if the connection is using system naming mode.

i5_naming

DB2_I5_NAMING_ON value turns on DB2 UDB CLI iSeries system naming mode. Files are qualified using the slash (/) delimiter. Unqualified files are resolved using the library list for the job.

DB2_I5_NAMING_OFF value turns off DB2 UDB CLI default naming mode, which is SQL naming. Files are qualified using the period (.) delimiter. Unqualified files are resolved using either the default library or the current user ID.

i5_commit

The i5_commit attribute should be set before the db2_pconnect(). If the value is changed after the connection has been established, and the connection is to a remote data source, the change does not take effect until the next successful db2_pconnect() for the connection handle.

Hinweis:

The php.ini setting ibm_db2.i5_allow_commit==0 or DB2_I5_TXN_NO_COMMIT is the default, but may be overridden with the i5_commit option.

DB2_I5_TXN_NO_COMMIT - Commitment control is not used.

DB2_I5_TXN_READ_UNCOMMITTED - Dirty reads, nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_READ_COMMITTED - Dirty reads are not possible. Nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_REPEATABLE_READ - Dirty reads and nonrepeatable reads are not possible. Phantoms are possible.

DB2_I5_TXN_SERIALIZABLE - Transactions are serializable. Dirty reads, non-repeatable reads, and phantoms are not possible

i5_query_optimize

DB2_FIRST_IO All queries are optimized with the goal of returning the first page of output as fast as possible. This goal works well when the output is controlled by a user who is most likely to cancel the query after viewing the first page of output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause.

DB2_ALL_IO All queries are optimized with the goal of running the entire query to completion in the shortest amount of elapsed time. This is a good option when the output of a query is being written to a file or report, or the interface is queuing the output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause. This is the default.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON value turns on DB2 6X allocation scheme for DBCS translation column size growth.

DB2_I5_DBCS_ALLOC_OFF value turns off DB2 6X allocation scheme for DBCS translation column size growth.

Hinweis:

The php.ini setting ibm_db2.i5_dbcs_alloc==0 or DB2_I5_DBCS_ALLOC_OFF is the default, but may be overridden with the i5_dbcs_alloc option.

i5_date_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) date format yyyy-mm-dd is used. This is the default.

DB2_I5_FMT_USA - The United States date format mm/dd/yyyy is used.

DB2_I5_FMT_EUR - The European date format dd.mm.yyyy is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard date format yyyy-mm-dd is used.

DB2_I5_FMT_MDY - The date format mm/dd/yyyy is used.

DB2_I5_FMT_DMY - The date format dd/mm/yyyy is used.

DB2_I5_FMT_YMD - The date format yy/mm/dd is used.

DB2_I5_FMT_JUL - The Julian date format yy/ddd is used.

DB2_I5_FMT_JOB - The job default is used.

i5_date_sep

DB2_I5_SEP_SLASH - A slash ( / ) is used as the date separator. This is the default.

DB2_I5_SEP_DASH - A dash ( - ) is used as the date separator.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the date separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the date separator.

DB2_I5_SEP_BLANK - A blank is used as the date separator.

DB2_I5_SEP_JOB - The job default is used

i5_time_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) time format hh.mm.ss is used. This is the default.

DB2_I5_FMT_USA - The United States time format hh:mmxx is used, where xx is AM or PM.

DB2_I5_FMT_EUR - The European time format hh.mm.ss is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard time format hh:mm:ss is used.

DB2_I5_FMT_HMS - The hh:mm:ss format is used.

i5_time_sep

DB2_I5_SEP_COLON - A colon ( : ) is used as the time separator. This is the default.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the time separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the time separator.

DB2_I5_SEP_BLANK - A blank is used as the time separator.

DB2_I5_SEP_JOB - The job default is used.

i5_decimal_sep

DB2_I5_SEP_PERIOD - A period ( . ) is used as the decimal separator. This is the default.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the decimal separator.

DB2_I5_SEP_JOB - The job default is used.

The following new i5/OS option is available in ibm_db2 version 1.8.0 and later.

i5_libl

A character value that indicates the library list that will be used for resolving unqualified file references. Specify the library list elements separated by blanks 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Hinweis:

i5_libl calls qsys2/qcmdexc('cmd',cmdlen), which is only available in i5/OS V5R4 and later.

Rückgabewerte

Returns a connection handle resource if the connection attempt is successful. db2_pconnect() tries to reuse an existing connection resource that exactly matches the database, username, and password parameters. If the connection attempt fails, db2_pconnect() returns false.

Changelog

Version | Beschreibung
ibm_db2 1.9.0 | Active transactions within a persistent connection will be rolled back at the end of each request.
ibm_db2 1.8.0 | The i5_libl option is available for i5/OS users.
ibm_db2 1.7.0 | The trustedcontext option is available.
ibm_db2 1.5.1 | The i5_lib, i5_naming, i5_commit, i5_query_optimize, i5_dbcs_alloc, i5_date_fmt, i5_date_sep, i5_time_fmt, i5_time_sep and i5_decimal_sep options are available for i5/OS users.

Beispiele

Beispiel #1 A db2_pconnect() example

In the following example, the first call to db2_pconnect() returns a new persistent connection resource. The second call to db2_pconnect() returns a persistent connection resource that simply reuses the first persistent connection resource.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$pconn = db2_pconnect($database, $user, $password);

if ($pconn) {
    echo "Persistent connection succeeded.";
}
else {
    echo "Persistent connection failed.";
}

$pconn2 = db2_pconnect($database, $user, $password);
if ($pconn) {
    echo "Second persistent connection succeeded.";
}
else {
    echo "Second persistent connection failed.";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Persistent connection succeeded.
Second persistent connection succeeded.

Beispiel #2 Using trusted context

The following example shows how to enable trusted context, switch users, and get the current user ID.

<?php

$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
  PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_pconnect($dsn, "", "", $options);
if($tc_conn) {
    echo "Explicit trusted connection succeeded.\n";

    if(db2_get_option($tc_conn, "trustedcontext")) {
        $userBefore = db2_get_option($tc_conn, "trusted_user");

        //Do some work as user 1.

        //Switching to trusted user.
        $parameters = array("trusted_user" => $tc_user,
          "trusted_password" => $tcuser_pass);
        $res = db2_set_option ($tc_conn, $parameters, 1);

        $userAfter = db2_get_option($tc_conn, "trusted_user");
        //Do more work as trusted user.

        if($userBefore != $userAfter) {
            echo "User has been switched." . "\n";
        }
    }

    db2_close($tc_conn);
}
else {
    echo "Explicit trusted connection failed.\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Explicit trusted connection succeeded.
User has been switched.

Siehe auch

  • db2_connect() - Returns a connection to a database


Prepares an SQL statement to be executed

  • « db2_pconnect
  • db2_primary_keys »
  • PHP Manual
  • IBM DB2 Funktionen
  • Prepares an SQL statement to be executed

db2_prepare

(PECL ibm_db2 >= 1.0.0)

db2_prepare — Prepares an SQL statement to be executed

Beschreibung

db2_prepare ( resource $connection , string $statement , array $options = ? ) : resource

db2_prepare() creates a prepared SQL statement which can include 0 or more parameter markers (? characters) representing parameters for input, output, or input/output. You can pass parameters to the prepared statement using db2_bind_param(), or for input values only, as an array passed to db2_execute().

There are three main advantages to using prepared statements in your application:

  • Performance: when you prepare a statement, the database server creates an optimized access plan for retrieving data with that statement. Subsequently issuing the prepared statement with db2_execute() enables the statements to reuse that access plan and avoids the overhead of dynamically creating a new access plan for every statement you issue.

  • Security: when you prepare a statement, you can include parameter markers for input values. When you execute a prepared statement with input values for placeholders, the database server checks each input value to ensure that the type matches the column definition or parameter definition.

  • Advanced functionality: Parameter markers not only enable you to pass input values to prepared SQL statements, they also enable you to retrieve OUT and INOUT parameters from stored procedures using db2_bind_param().

Parameter-Liste

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

statement

An SQL statement, optionally containing one or more parameter markers..

options

An associative array containing statement options. You can use this parameter to request a scrollable cursor on database servers that support this functionality.

For a description of valid statement options, see db2_set_option().

Rückgabewerte

Returns a statement resource if the SQL statement was successfully parsed and prepared by the database server. Returns false if the database server returned an error. You can determine which error was returned by calling db2_stmt_error() or db2_stmt_errormsg().

Beispiele

Beispiel #1 Preparing and executing an SQL statement with parameter markers

The following example prepares an INSERT statement that accepts four parameter markers, then iterates over an array of arrays containing the input values to be passed to db2_execute().

<?php
$animals = array(
    array(0, 'cat', 'Pook', 3.2),
    array(1, 'dog', 'Peaches', 12.3),
    array(2, 'horse', 'Smarty', 350.0),
);

$insert = 'INSERT INTO animals (id, breed, name, weight)
    VALUES (?, ?, ?, ?)';
$stmt = db2_prepare($conn, $insert);
if ($stmt) {
    foreach ($animals as $animal) {
        $result = db2_execute($stmt, $animal);
    }
}
?>

Siehe auch

  • db2_bind_param() - Binds a PHP variable to an SQL statement parameter
  • db2_execute() - Executes a prepared SQL statement
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns a result set listing primary keys for a table

  • « db2_prepare
  • db2_procedure_columns »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a result set listing primary keys for a table

db2_primary_keys

(PECL ibm_db2 >= 1.0.0)

db2_primary_keys — Returns a result set listing primary keys for a table

Beschreibung

db2_primary_keys ( resource $connection , string $qualifier , string $schema , string $table-name ) : resource

Returns a result set listing the primary keys for a table.

Parameter-Liste

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables. If schema is null, db2_primary_keys() matches the schema for the current connection.

table-name

The name of the table.

Rückgabewerte

Returns a statement resource with a result set containing rows describing the primary keys for the specified table. The result set is composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog for the table containing the primary key. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema for the table containing the primary key.
TABLE_NAME | Name of the table containing the primary key.
COLUMN_NAME | Name of the column containing the primary key.
KEY_SEQ | 1-indexed position of the column in the key.
PK_NAME | The name of the primary key.

Siehe auch

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing stored procedure parameters

  • « db2_primary_keys
  • db2_procedures »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a result set listing stored procedure parameters

db2_procedure_columns

(PECL ibm_db2 >= 1.0.0)

db2_procedure_columns — Returns a result set listing stored procedure parameters

Beschreibung

db2_procedure_columns ( resource $connection , string $qualifier , string $schema , string $procedure , string $parameter ) : resource

Returns a result set listing the parameters for one or more stored procedures.

Parameter-Liste

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the procedures. This parameter accepts a search pattern containing _ and % as wildcards.

procedure

The name of the procedure. This parameter accepts a search pattern containing _ and % as wildcards.

parameter

The name of the parameter. This parameter accepts a search pattern containing _ and % as wildcards. If this parameter is null, all parameters for the specified stored procedures are returned.

Rückgabewerte

Returns a statement resource with a result set containing rows describing the parameters for the stored procedures matching the specified parameters. The rows are composed of the following columns:

Column name | Description
PROCEDURE_CAT | The catalog that contains the procedure. The value is null if this table does not have catalogs.
PROCEDURE_SCHEM | Name of the schema that contains the stored procedure.
PROCEDURE_NAME | Name of the procedure.
COLUMN_NAME | Name of the parameter.
COLUMN_TYPE

An integer value representing the type of the parameter:

Return value | Parameter type
1 (SQL_PARAM_INPUT) | Input (IN) parameter.
2 (SQL_PARAM_INPUT_OUTPUT) | Input/output (INOUT) parameter.
3 (SQL_PARAM_OUTPUT) | Output (OUT) parameter.
DATA_TYPE | The SQL data type for the parameter represented as an integer value.
TYPE_NAME | A string representing the data type for the parameter.
COLUMN_SIZE | An integer value representing the size of the parameter.
BUFFER_LENGTH | Maximum number of bytes necessary to store data for this parameter.
DECIMAL_DIGITS | The scale of the parameter, or null where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or null (representing a data type for which radix is not applicable).
NULLABLE | An integer value representing whether the parameter is nullable or not.
REMARKS | Description of the parameter.
COLUMN_DEF | Default value for the parameter.
SQL_DATA_TYPE | An integer value representing the size of the parameter.
SQL_DATETIME_SUB | Returns an integer value representing a datetime subtype code, or null for SQL data types to which this does not apply.
CHAR_OCTET_LENGTH | Maximum length in octets for a character data type parameter, which matches COLUMN_SIZE for single-byte character set data, or null for non-character data types.
ORDINAL_POSITION | The 1-indexed position of the parameter in the CALL statement.
IS_NULLABLE | A string value where 'YES' means that the parameter accepts or returns null values and 'NO' means that the parameter does not accept or return null values.

Siehe auch

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing the stored procedures registered in a database

  • « db2_procedure_columns
  • db2_result »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a result set listing the stored procedures registered in a database

db2_procedures

(PECL ibm_db2 >= 1.0.0)

db2_procedures — Returns a result set listing the stored procedures registered in a database

Beschreibung

db2_procedures ( resource $connection , string $qualifier , string $schema , string $procedure ) : resource

Returns a result set listing the stored procedures registered in a database.

Parameter-Liste

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the procedures. This parameter accepts a search pattern containing _ and % as wildcards.

procedure

The name of the procedure. This parameter accepts a search pattern containing _ and % as wildcards.

Rückgabewerte

Returns a statement resource with a result set containing rows describing the stored procedures matching the specified parameters. The rows are composed of the following columns:

Column name | Description
PROCEDURE_CAT | The catalog that contains the procedure. The value is null if this table does not have catalogs.
PROCEDURE_SCHEM | Name of the schema that contains the stored procedure.
PROCEDURE_NAME | Name of the procedure.
NUM_INPUT_PARAMS | Number of input (IN) parameters for the stored procedure.
NUM_OUTPUT_PARAMS | Number of output (OUT) parameters for the stored procedure.
NUM_RESULT_SETS | Number of result sets returned by the stored procedure.
REMARKS | Any comments about the stored procedure.
PROCEDURE_TYPE | Always returns 1, indicating that the stored procedure does not return a return value.

Siehe auch

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a single column from a row in the result set

  • « db2_procedures
  • db2_rollback »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a single column from a row in the result set

db2_result

(PECL ibm_db2 >= 1.0.0)

db2_result — Returns a single column from a row in the result set

Beschreibung

db2_result ( resource $stmt , mixed $column ) : mixed

Use db2_result() to return the value of a specified column in the current row of a result set. You must call db2_fetch_row() before calling db2_result() to set the location of the result set pointer.

Parameter-Liste

stmt

A valid stmt resource.

column

Either an integer mapping to the 0-indexed field in the result set, or a string matching the name of the column.

Rückgabewerte

Returns the value of the requested field if the field exists in the result set. Returns NULL if the field does not exist, and issues a warning.

Beispiele

Beispiel #1 A db2_result() example

The following example demonstrates how to iterate through a result set with db2_fetch_row() and retrieve columns from the result set with db2_result().

<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $name = db2_result($stmt, 0);
    $breed = db2_result($stmt, 'BREED');
    print "$name $breed";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride

Siehe auch

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row


Rolls back a transaction

  • « db2_result
  • db2_server_info »
  • PHP Manual
  • IBM DB2 Funktionen
  • Rolls back a transaction

db2_rollback

(PECL ibm_db2 >= 1.0.0)

db2_rollback — Rolls back a transaction

Beschreibung

db2_rollback ( resource $connection ) : bool

Rolls back an in-progress transaction on the specified connection resource and begins a new transaction. PHP applications normally default to AUTOCOMMIT mode, so db2_rollback() normally has no effect unless AUTOCOMMIT has been turned off for the connection resource.

Parameter-Liste

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Rolling back a DELETE statement

In the following example, we count the number of rows in a table, turn off AUTOCOMMIT mode on a database connection, delete all of the rows in the table and return the count of 0 to prove that the rows have been removed. We then issue db2_rollback() and return the updated count of rows in the table to show that the number is the same as before we issued the DELETE statement. The return to the original state of the table demonstrates that the roll back of the transaction succeeded.

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
    $stmt = db2_exec($conn, "SELECT count(*) FROM animals");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Turn AUTOCOMMIT off
    db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);

    // Delete all rows from ANIMALS
    db2_exec($conn, "DELETE FROM animals");

    $stmt = db2_exec($conn, "SELECT count(*) FROM animals");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Roll back the DELETE statement
    db2_rollback( $conn );

    $stmt = db2_exec( $conn, "SELECT count(*) FROM animals" );
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";
    db2_close($conn);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

7
0
7

Siehe auch

  • db2_autocommit() - Returns or sets the AUTOCOMMIT state for a database connection
  • db2_commit() - Commits a transaction


Returns an object with properties that describe the DB2 database server

  • « db2_rollback
  • db2_set_option »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns an object with properties that describe the DB2 database server

db2_server_info

(PECL ibm_db2 >= 1.1.1)

db2_server_info — Returns an object with properties that describe the DB2 database server

Beschreibung

db2_server_info ( resource $connection ) : object

This function returns an object with read-only properties that return information about the IBM DB2, Cloudscape, or Apache Derby database server. The following table lists the database server properties:

Database server properties
Property name | Return type | Description
DBMS_NAME | string | The name of the database server to which you are connected. For DB2 servers this is a combination of DB2 followed by the operating system on which the database server is running.
DBMS_VER | string | The version of the database server, in the form of a string "MM.mm.uuuu" where MM is the major version, mm is the minor version, and uuuu is the update. For example, "08.02.0001" represents major version 8, minor version 2, update 1.
DB_CODEPAGE | int | The code page of the database to which you are connected.
DB_NAME | string | The name of the database to which you are connected.
DFT_ISOLATION string

The default transaction isolation level supported by the server:

UR

Uncommitted read: changes are immediately visible by all concurrent transactions.

CS

Cursor stability: a row read by one transaction can be altered and committed by a second concurrent transaction.

RS

Read stability: a transaction can add or remove rows matching a search condition or a pending transaction.

RR

Repeatable read: data affected by pending transaction is not available to other transactions.

NC

No commit: any changes are visible at the end of a successful operation. Explicit commits and rollbacks are not allowed.

IDENTIFIER_QUOTE_CHAR | string | The character used to delimit an identifier.
INST_NAME | string | The instance on the database server that contains the database.
ISOLATION_OPTION | array | An array of the isolation options supported by the database server. The isolation options are described in the DFT_ISOLATION property.
KEYWORDS | array | An array of the keywords reserved by the database server.
LIKE_ESCAPE_CLAUSE | bool | true if the database server supports the use of % and _ wildcard characters. false if the database server does not support these wildcard characters.
MAX_COL_NAME_LEN | int | Maximum length of a column name supported by the database server, expressed in bytes.
MAX_IDENTIFIER_LEN | int | Maximum length of an SQL identifier supported by the database server, expressed in characters.
MAX_INDEX_SIZE | int | Maximum size of columns combined in an index supported by the database server, expressed in bytes.
MAX_PROC_NAME_LEN | int | Maximum length of a procedure name supported by the database server, expressed in bytes.
MAX_ROW_SIZE | int | Maximum length of a row in a base table supported by the database server, expressed in bytes.
MAX_SCHEMA_NAME_LEN | int | Maximum length of a schema name supported by the database server, expressed in bytes.
MAX_STATEMENT_LEN | int | Maximum length of an SQL statement supported by the database server, expressed in bytes.
MAX_TABLE_NAME_LEN | int | Maximum length of a table name supported by the database server, expressed in bytes.
NON_NULLABLE_COLUMNS | bool | true if the database server supports columns that can be defined as NOT NULL, false if the database server does not support columns defined as NOT NULL.
PROCEDURES | bool | true if the database server supports the use of the CALL statement to call stored procedures, false if the database server does not support the CALL statement.
SPECIAL_CHARS | string | A string containing all of the characters other than a-Z, 0-9, and underscore that can be used in an identifier name.
SQL_CONFORMANCE string

The level of conformance to the ANSI/ISO SQL-92 specification offered by the database server:

ENTRY

Entry-level SQL-92 compliance.

FIPS127

FIPS-127-2 transitional compliance.

FULL

Full level SQL-92 compliance.

INTERMEDIATE

Intermediate level SQL-92 compliance.

Parameter-Liste

connection

Specifies an active DB2 client connection.

Rückgabewerte

Returns an object on a successful call. Returns false on failure.

Beispiele

Beispiel #1 A db2_server_info() example

To retrieve information about the server, you must pass a valid database connection resource to db2_server_info().

<?php

$conn = db2_connect('sample', 'db2inst1', 'ibmdb2');

$server = db2_server_info( $conn );

if ($server) {
    echo "DBMS_NAME: ";                 var_dump( $server->DBMS_NAME );
    echo "DBMS_VER: ";                  var_dump( $server->DBMS_VER );
    echo "DB_CODEPAGE: ";               var_dump( $server->DB_CODEPAGE );
    echo "DB_NAME: ";                   var_dump( $server->DB_NAME );
    echo "INST_NAME: ";                 var_dump( $server->INST_NAME );
    echo "SPECIAL_CHARS: ";             var_dump( $server->SPECIAL_CHARS );
    echo "KEYWORDS: ";                  var_dump( sizeof($server->KEYWORDS) );
    echo "DFT_ISOLATION: ";             var_dump( $server->DFT_ISOLATION );
    echo "ISOLATION_OPTION: ";
    $il = '';
    foreach( $server->ISOLATION_OPTION as $opt )
    {
       $il .= $opt." ";
    }
    var_dump( $il );
    echo "SQL_CONFORMANCE: ";           var_dump( $server->SQL_CONFORMANCE );
    echo "PROCEDURES: ";                var_dump( $server->PROCEDURES );
    echo "IDENTIFIER_QUOTE_CHAR: ";     var_dump( $server->IDENTIFIER_QUOTE_CHAR );
    echo "LIKE_ESCAPE_CLAUSE: ";        var_dump( $server->LIKE_ESCAPE_CLAUSE );
    echo "MAX_COL_NAME_LEN: ";          var_dump( $server->MAX_COL_NAME_LEN );
    echo "MAX_ROW_SIZE: ";              var_dump( $server->MAX_ROW_SIZE );
    echo "MAX_IDENTIFIER_LEN: ";        var_dump( $server->MAX_IDENTIFIER_LEN );
    echo "MAX_INDEX_SIZE: ";            var_dump( $server->MAX_INDEX_SIZE );
    echo "MAX_PROC_NAME_LEN: ";         var_dump( $server->MAX_PROC_NAME_LEN );
    echo "MAX_SCHEMA_NAME_LEN: ";       var_dump( $server->MAX_SCHEMA_NAME_LEN );
    echo "MAX_STATEMENT_LEN: ";         var_dump( $server->MAX_STATEMENT_LEN );
    echo "MAX_TABLE_NAME_LEN: ";        var_dump( $server->MAX_TABLE_NAME_LEN );
    echo "NON_NULLABLE_COLUMNS: ";      var_dump( $server->NON_NULLABLE_COLUMNS );

    db2_close($conn);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

DBMS_NAME: string(9) "DB2/LINUX"
DBMS_VER: string(10) "08.02.0000"
DB_CODEPAGE: int(1208)
DB_NAME: string(6) "SAMPLE"
INST_NAME: string(8) "db2inst1"
SPECIAL_CHARS: string(2) "@#"
KEYWORDS: int(179)
DFT_ISOLATION: string(2) "CS"
ISOLATION_OPTION: string(12) "UR CS RS RR "
SQL_CONFORMANCE: string(7) "FIPS127"
PROCEDURES: bool(true)
IDENTIFIER_QUOTE_CHAR: string(1) """
LIKE_ESCAPE_CLAUSE: bool(true)
MAX_COL_NAME_LEN: int(30)
MAX_ROW_SIZE: int(32677)
MAX_IDENTIFIER_LEN: int(18)
MAX_INDEX_SIZE: int(1024)
MAX_PROC_NAME_LEN: int(128)
MAX_SCHEMA_NAME_LEN: int(30)
MAX_STATEMENT_LEN: int(2097152)
MAX_TABLE_NAME_LEN: int(128)
NON_NULLABLE_COLUMNS: bool(true)

Siehe auch

  • db2_client_info() - Returns an object with properties that describe the DB2 database client


Set options for connection or statement resources

  • « db2_server_info
  • db2_special_columns »
  • PHP Manual
  • IBM DB2 Funktionen
  • Set options for connection or statement resources

db2_set_option

(PECL ibm_db2 >= 1.0.0)

db2_set_option — Set options for connection or statement resources

Beschreibung

db2_set_option ( resource $resource , array $options , int $type ) : bool

Sets options for a statement resource or a connection resource. You cannot set options for result set resources.

Parameter-Liste

resource

A valid statement resource as returned from db2_prepare() or a valid connection resource as returned from db2_connect() or db2_pconnect().

options

An associative array containing valid statement or connection options. This parameter can be used to change autocommit values, cursor types (scrollable or forward), and to specify the case of the column names (lower, upper, or natural) that will appear in a result set.

autocommit

Passing DB2_AUTOCOMMIT_ON turns autocommit on for the specified connection resource.

Passing DB2_AUTOCOMMIT_OFF turns autocommit off for the specified connection resource.

cursor

Passing DB2_FORWARD_ONLY specifies a forward-only cursor for a statement resource. This is the default cursor type, and is supported by all database servers.

Passing DB2_SCROLLABLE specifies a scrollable cursor for a statement resource. Scrollable cursors enable result set rows to be accessed in non-sequential order, but are only supported by IBM DB2 Universal Database databases.

binmode

Passing DB2_BINARY specifies that binary data will be returned as is. This is the default mode. This is the equivalent of setting ibm_db2.binmode=1 in php.ini.

Passing DB2_CONVERT specifies that binary data will be converted to hexadecimal encoding, and will be returned as such. This is the equivalent of setting ibm_db2.binmode=2 in php.ini.

Passing DB2_PASSTHRU specifies that binary data will be converted to null. This is the equivalent of setting ibm_db2.binmode=3 in php.ini.

db2_attr_case

Passing DB2_CASE_LOWER specifies that column names of the result set are returned in lower case.

Passing DB2_CASE_UPPER specifies that column names of the result set are returned in upper case.

Passing DB2_CASE_NATURAL specifies that column names of the result set are returned in natural case.

deferred_prepare

Passing DB2_DEFERRED_PREPARE_ON turns deferred prepare on for the specified statement resource.

Passing DB2_DEFERRED_PREPARE_OFF turns deferred prepare off for the specified statement resource.

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later. These options apply only when running PHP and ibm_db2 natively on i5 systems.

i5_fetch_only

DB2_I5_FETCH_ON - Cursors are read-only and cannot be used for positioned updates or deletes. This is the default unless SQL_ATTR_FOR_FETCH_ONLY environment has been set to SQL_FALSE.

DB2_I5_FETCH_OFF - Cursors can be used for positioned updates and deletes.

The following new option is available in ibm_db2 version 1.8.0 and later.

rowcount

DB2_ROWCOUNT_PREFETCH_ON - Client can request the full row count prior to fetching, which means that db2_num_rows() returns the number of rows selected even when a ROLLFORWARD_ONLY cursor is used.

DB2_ROWCOUNT_PREFETCH_OFF - Client cannot request the full row count prior to fetching.

The following new options are available in ibm_db2 version 1.7.0 and later.

trusted_user

To switch the user to a trusted user, pass the User ID (String) of the trusted user as the value of this key. This option can be set on a connection resource only. To use this option, trusted context must be enabled on the connection resource.

trusted_password

The password (String) that corresponds to the user specified by the trusted_user key.

The following new options are available in ibm_db2 version 1.6.0 and later. These options provide useful tracking information that can be accessed during execution with db2_get_option().

Hinweis:

When the value in each option is being set, some servers might not handle the entire length provided and might truncate the value.

To ensure that the data specified in each option is converted correctly when transmitted to a host system, use only the characters A through Z, 0 through 9, and the underscore (_) or period (.).

userid

SQL_ATTR_INFO_USERID - A pointer to a null-terminated character string used to identify the client user ID sent to the host database server when using DB2 Connect.

Hinweis:

DB2 for z/OS and OS/390 servers support up to a length of 16 characters. This user-id is not to be confused with the authentication user-id, it is for identification purposes only and is not used for any authorization.

acctstr

SQL_ATTR_INFO_ACCTSTR - A pointer to a null-terminated character string used to identify the client accounting string sent to the host database server when using DB2 Connect.

Hinweis:

DB2 for z/OS and OS/390 servers support up to a length of 200 characters.

applname

SQL_ATTR_INFO_APPLNAME - A pointer to a null-terminated character string used to identify the client application name sent to the host database server when using DB2 Connect.

Hinweis:

DB2 for z/OS and OS/390 servers support up to a length of 32 characters.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME - A pointer to a null-terminated character string used to identify the client workstation name sent to the host database server when using DB2 Connect.

Hinweis:

DB2 for z/OS and OS/390 servers support up to a length of 18 characters.

type

An integer value that specifies the type of resource that was passed into the function. The type of resource and this value must correspond.

Passing 1 as the value specifies that a connection resource has been passed into the function.

Passing any integer not equal to 1 as the value specifies that a statement resource has been passed into the function.

The following table specifies which options are compatible with the available resource types:

Resource-Parameter Matrix
Key | Value | Resource Type
 |  | Connection | Statement | Result Set
autocommit | DB2_AUTOCOMMIT_ON | X | - | -
autocommit | DB2_AUTOCOMMIT_OFF | X | - | -
cursor | DB2_SCROLLABLE | - | X | -
cursor | DB2_FORWARD_ONLY | - | X | -
binmode | DB2_BINARY | X | X | -
binmode | DB2_CONVERT | X | X | -
binmode | DB2_PASSTHRU | X | X | -
db2_attr_case | DB2_CASE_LOWER | X | X | -
db2_attr_case | DB2_CASE_UPPER | X | X | -
db2_attr_case | DB2_CASE_NATURAL | X | X | -
deferred_prepare | DB2_DEFERRED_PREPARE_ON | - | X | -
deferred_prepare | DB2_DEFERRED_PREPARE_OFF | - | X | -
i5_fetch_only | DB2_I5_FETCH_ON | - | X | -
i5_fetch_only | DB2_I5_FETCH_OFF | - | X | -
rowcount | DB2_ROWCOUNT_PREFETCH_ON | - | X | -
rowcount | DB2_ROWCOUNT_PREFETCH_OFF | - | X | -
trusted_user | <USER NAME> (String) | X | - | -
trusted_password | <PASSWORD> (String) | X | - | -
userid | SQL_ATTR_INFO_USERID | X | X | -
acctstr | SQL_ATTR_INFO_ACCTSTR | X | X | -
applname | SQL_ATTR_INFO_APPLNAME | X | X | -
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME | X | X | -

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Setting one parameter with a connection resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_ON);

/* Call the function using the correct resource, options array, and type values */
$result = db2_set_option($conn, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Options Set Successfully

Beispiel #2 Setting multiple parameters with a connection resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Call the function using the correct resource, options array, and type values */
$result = db2_set_option($conn, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Options Set Successfully

Beispiel #3 Setting multiple parameters with an invalid key

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
             'MY_INVALID_KEY' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Call the function using the correct resource, options array, and type values */
$result = db2_set_option($conn, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Could Not Set Options

Beispiel #4 Setting multiple parameters with an invalid value

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => 'INVALID_VALUE',
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Call the function using the correct resource, options array, and type values */
$result = db2_set_option($conn, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Could Not Set Options

Beispiel #5 Setting multiple parameters with a connection resource and the wrong type

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Call the function using the correct resource, options array, and the wrong type value */
$result = db2_set_option($conn, $options, 2);

/* Check if all options could be set correctly */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Could Not Set Options

Beispiel #6 Setting multiple parameters with the wrong resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE');

/* Call the function using the wrong resource, and the correct options array, and type values */
$result = db2_set_option($stmt, $options, 1);

/* Check if all options could be set correctly */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Could Not Set Options

Beispiel #7 Putting it all together

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Connection String */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Obtain Connection Resource */
$conn = db2_connect($conn_string, '', '');

/* Create the associative options array with valid key-value pairs */
$options = array('db2_attr_case' => DB2_CASE_LOWER,
                        'cursor' => DB2_SCROLLABLE);

$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE WHERE EMPNO = ? OR EMPNO = ?');

/* Call the function using the correct resource, options array, and type values */
$option_result = db2_set_option($stmt, $options, 2);
$result = db2_execute($stmt, array('000130', '000140'));

/* Get Row 2 before Row 1 since Scrollable Cursor */
print_r(db2_fetch_assoc($stmt, 2));
print '<br /><br />';
print_r(db2_fetch_assoc($stmt, 1));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [empno] => 000140
    [firstnme] => HEATHER
    [midinit] => A
    [lastname] => NICHOLLS
    [workdept] => C01
    [phoneno] => 1793
    [hiredate] => 1976-12-15
    [job] => ANALYST
    [edlevel] => 18
    [sex] => F
    [birthdate] => 1946-01-19
    [salary] => 28420.00
    [bonus] => 600.00
    [comm] => 2274.00
)

Array
(
    [empno] => 000130
    [firstnme] => DELORES
    [midinit] => M
    [lastname] => QUINTANA
    [workdept] => C01
    [phoneno] => 4578
    [hiredate] => 1971-07-28
    [job] => ANALYST
    [edlevel] => 16
    [sex] => F
    [birthdate] => 1925-09-15
    [salary] => 23800.00
    [bonus] => 500.00
    [comm] => 1904.00
)

Beispiel #8 i5/OS cursors are read-only

<?php
  $conn = db2_connect("", "", "", array("i5_lib"=>"nobody"));
  $stmt = db2_prepare($conn, 'select * from names where first = ?');
  $name = "first2";
  db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
  $options = array("i5_fetch_only"=>DB2_I5_FETCH_ON);
  db2_set_option($stmt,$options,0);
  if (db2_execute($stmt)) {
    while ($row = db2_fetch_array($stmt)) {
      echo "{$row[0]} {$row[1]}";
    }
  }
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

first2 last2

Siehe auch

  • db2_connect() - Returns a connection to a database
  • db2_pconnect() - Returns a persistent connection to a database
  • db2_exec() - Executes an SQL statement directly
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_cursor_type() - Returns the cursor type used by a statement resource


Returns a result set listing the unique row identifier columns for a table

  • « db2_set_option
  • db2_statistics »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a result set listing the unique row identifier columns for a table

db2_special_columns

(PECL ibm_db2 >= 1.0.0)

db2_special_columns — Returns a result set listing the unique row identifier columns for a table

Beschreibung

db2_special_columns ( resource $connection , string $qualifier , string $schema , string $table_name , int $scope ) : resource

Returns a result set listing the unique row identifier columns for a table.

Parameter-Liste

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables.

table_name

The name of the table.

scope

Integer value representing the minimum duration for which the unique row identifier is valid. This can be one of the following values:

Integer value | SQL constant | Description
0 | SQL_SCOPE_CURROW | Row identifier is valid only while the cursor is positioned on the row.
1 | SQL_SCOPE_TRANSACTION | Row identifier is valid for the duration of the transaction.
2 | SQL_SCOPE_SESSION | Row identifier is valid for the duration of the connection.

Rückgabewerte

Returns a statement resource with a result set containing rows with unique row identifier information for a table. The rows are composed of the following columns:

Column name | Description
SCOPE

Integer value | SQL constant | Description
0 | SQL_SCOPE_CURROW | Row identifier is valid only while the cursor is positioned on the row.
1 | SQL_SCOPE_TRANSACTION | Row identifier is valid for the duration of the transaction.
2 | SQL_SCOPE_SESSION | Row identifier is valid for the duration of the connection.
COLUMN_NAME | Name of the unique column.
DATA_TYPE | SQL data type for the column.
TYPE_NAME | Character string representation of the SQL data type for the column.
COLUMN_SIZE | An integer value representing the size of the column.
BUFFER_LENGTH | Maximum number of bytes necessary to store data from this column.
DECIMAL_DIGITS | The scale of the column, or null where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or null (representing a data type for which radix is not applicable).
PSEUDO_COLUMN | Always returns 1.

Siehe auch

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing the index and statistics for a table

  • « db2_special_columns
  • db2_stmt_error »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a result set listing the index and statistics for a table

db2_statistics

(PECL ibm_db2 >= 1.0.0)

db2_statistics — Returns a result set listing the index and statistics for a table

Beschreibung

db2_statistics ( resource $connection , string $qualifier , string $schema , string $table-name , bool $unique ) : resource

Returns a result set listing the index and statistics for a table.

Parameter-Liste

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema that contains the targeted table. If this parameter is null, the statistics and indexes are returned for the schema of the current user.

table_name

The name of the table.

unique

An integer value representing the type of index information to return.

0

Return only the information for unique indexes on the table.

1

Return the information for all indexes on the table.

Rückgabewerte

Returns a statement resource with a result set containing rows describing the statistics and indexes for the base tables matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is null if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
NON_UNIQUE

An integer value representing whether the index prohibits unique values, or whether the row represents statistics on the table itself:

Return value | Parameter type
0 (SQL_FALSE) | The index allows duplicate values.
1 (SQL_TRUE) | The index values must be unique.
null | This row is statistics information for the table itself.
INDEX_QUALIFIER | A string value representing the qualifier that would have to be prepended to INDEX_NAME to fully qualify the index.
INDEX_NAME | A string representing the name of the index.
TYPE

An integer value representing the type of information contained in this row of the result set:

Return value | Parameter type
0 (SQL_TABLE_STAT) | The row contains statistics about the table itself.
1 (SQL_INDEX_CLUSTERED) | The row contains information about a clustered index.
2 (SQL_INDEX_HASH) | The row contains information about a hashed index.
3 (SQL_INDEX_OTHER) | The row contains information about a type of index that is neither clustered nor hashed.
ORDINAL_POSITION | The 1-indexed position of the column in the index. null if the row contains statistics information about the table itself.
COLUMN_NAME | The name of the column in the index. null if the row contains statistics information about the table itself.
ASC_OR_DESC | A if the column is sorted in ascending order, D if the column is sorted in descending order, null if the row contains statistics information about the table itself.
CARDINALITY

If the row contains information about an index, this column contains an integer value representing the number of unique values in the index.

If the row contains information about the table itself, this column contains an integer value representing the number of rows in the table.

PAGES

If the row contains information about an index, this column contains an integer value representing the number of pages used to store the index.

If the row contains information about the table itself, this column contains an integer value representing the number of pages used to store the table.

FILTER_CONDITION | Always returns null.

Siehe auch

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a string containing the SQLSTATE returned by an SQL statement

  • « db2_statistics
  • db2_stmt_errormsg »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a string containing the SQLSTATE returned by an SQL statement

db2_stmt_error

(PECL ibm_db2 >= 1.0.0)

db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement

Beschreibung

db2_stmt_error ( resource $stmt = ? ) : string

Returns a string containing the SQLSTATE value returned by an SQL statement.

If you do not pass a statement resource as an argument to db2_stmt_error(), the driver returns the SQLSTATE value associated with the last attempt to return a statement resource, for example, from db2_prepare() or db2_exec().

To learn what the SQLSTATE value means, you can issue the following command at a DB2 Command Line Processor prompt: db2 '? sqlstate-value'. You can also call db2_stmt_errormsg() to retrieve an explicit error message and the associated SQLCODE value.

Parameter-Liste

stmt

A valid statement resource.

Rückgabewerte

Returns a string containing an SQLSTATE value.

Siehe auch

  • db2_conn_error() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_conn_errormsg() - Returns the last connection error message and SQLCODE value
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns a string containing the last SQL statement error message

  • « db2_stmt_error
  • db2_table_privileges »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a string containing the last SQL statement error message

db2_stmt_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_stmt_errormsg — Returns a string containing the last SQL statement error message

Beschreibung

db2_stmt_errormsg ( resource $stmt = ? ) : string

Returns a string containing the last SQL statement error message.

If you do not pass a statement resource as an argument to db2_stmt_errormsg(), the driver returns the error message associated with the last attempt to return a statement resource, for example, from db2_prepare() or db2_exec().

Parameter-Liste

stmt

A valid statement resource.

Rückgabewerte

Returns a string containing the error message and SQLCODE value for the last error that occurred issuing an SQL statement.

Siehe auch

  • db2_conn_error() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_conn_errormsg() - Returns the last connection error message and SQLCODE value
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement


Returns a result set listing the tables and associated privileges in a database

  • « db2_stmt_errormsg
  • db2_tables »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a result set listing the tables and associated privileges in a database

db2_table_privileges

(PECL ibm_db2 >= 1.0.0)

db2_table_privileges — Returns a result set listing the tables and associated privileges in a database

Beschreibung

db2_table_privileges ( resource $connection , string $qualifier = ? , string $schema = ? , string $table_name = ? ) : resource

Returns a result set listing the tables and associated privileges in a database.

Parameter-Liste

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables. This parameter accepts a search pattern containing _ and % as wildcards.

table_name

The name of the table. This parameter accepts a search pattern containing _ and % as wildcards.

Rückgabewerte

Returns a statement resource with a result set containing rows describing the privileges for the tables that match the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is null if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
GRANTOR | Authorization ID of the user who granted the privilege.
GRANTEE | Authorization ID of the user to whom the privilege was granted.
PRIVILEGE | The privilege that has been granted. This can be one of ALTER, CONTROL, DELETE, INDEX, INSERT, REFERENCES, SELECT, or UPDATE.
IS_GRANTABLE | A string value of "YES" or "NO" indicating whether the grantee can grant the privilege to other users.

Siehe auch

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing the tables and associated metadata in a database

  • « db2_table_privileges
  • Ingres »
  • PHP Manual
  • IBM DB2 Funktionen
  • Returns a result set listing the tables and associated metadata in a database

db2_tables

(PECL ibm_db2 >= 1.0.0)

db2_tables — Returns a result set listing the tables and associated metadata in a database

Beschreibung

db2_tables ( resource $connection , string $qualifier = ? , string $schema = ? , string $table-name = ? , string $table-type = ? ) : resource

Returns a result set listing the tables and associated metadata in a database.

Parameter-Liste

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass null or an empty string.

schema

The schema which contains the tables. This parameter accepts a search pattern containing _ and % as wildcards.

table-name

The name of the table. This parameter accepts a search pattern containing _ and % as wildcards.

table-type

A list of comma-delimited table type identifiers. To match all table types, pass null or an empty string. Valid table type identifiers include: ALIAS, HIERARCHY TABLE, INOPERATIVE VIEW, NICKNAME, MATERIALIZED QUERY TABLE, SYSTEM TABLE, TABLE, TYPED TABLE, TYPED VIEW, and VIEW.

Rückgabewerte

Returns a statement resource with a result set containing rows describing the tables that match the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is null if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
TABLE_TYPE | Table type identifier for the table.
REMARKS | Description of the table.

Siehe auch

  • db2_column_privileges() - Returns a result set listing the columns and associated privileges for a table
  • db2_columns() - Returns a result set listing the columns and associated metadata for a table
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database


Ingres DBMS, EDBC und Enterprise Access Gateways

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Grundlegende Nutzung
  • Ingres-Funktionen
    • ingres_autocommit_state — Prüft, ob die Verbindung im autocommit-Modus arbeitet
    • ingres_autocommit — Schaltet den autocommit-Modus an oder aus
    • ingres_charset — Gibt den verwendeten Zeichensatz der Installation zurück
    • ingres_close — Schließt eine Ingres-II-Datenbankverbindung
    • ingres_commit — Beendet eine Transaktion
    • ingres_connect — Öffnet eine Verbindung zu einem Ingres-II-Datenbankserver
    • ingres_cursor — Gibt den Namen eines Cursors für die angegebene Ergebnis-Ressource zurück
    • ingres_errno — Gibt den letzten Ingres-Fehlercode zurück
    • ingres_error — Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück
    • ingres_errsqlstate — Gibt den letzten Fehlercode von SQLSTATE zurück
    • ingres_escape_string — Maskiert Sonderzeichen für die Verwendung in Datenbankabfragen
    • ingres_execute — Führt eine vorbereitete Abfrage aus
    • ingres_fetch_array — Liest eine Zeile der Ergebnismenge in ein Array ein
    • ingres_fetch_assoc — Fetch a row of result into an associative array
    • ingres_fetch_object — Gibt eine Zeile der Ergebnismenge als Objekt zurück
    • ingres_fetch_proc_return — Holt den Rückgabewert eines Prozeduraufrufs
    • ingres_fetch_row — Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array
    • ingres_field_length — Gibt die Länge eines Feldes zurück
    • ingres_field_name — Holt den Namen eines Feldes in einer Ergebnismenge
    • ingres_field_nullable — Prüft, ob für ein Feld NULL-Werte zugelassen sind
    • ingres_field_precision — Gibt die Genauigkeit eines Feldes zurück
    • ingres_field_scale — Gibt die Dezimalstellen eines Feldes zurück
    • ingres_field_type — Gibt den Typ eines Feldes in einer Ergebnismenge zurück
    • ingres_free_result — Gibt den durch ein Ergebnis belegten Speicher frei
    • ingres_next_error — Ermittelt den nächsten Ingres-Fehler
    • ingres_num_fields — Gibt die Anzahl der Felder der letzten Abfrage zurück
    • ingres_num_rows — Gibt die Anzahl der Datensätze der Ergebnismenge oder die Anzahl der von der letzten Abfrage betroffenen Datensätze zurück
    • ingres_pconnect — Öffnet eine persistente Verbindung zu einer Ingres-Datenbank
    • ingres_prepare — Bereitet eine Abfrage zur späteren Ausführung vor
    • ingres_query — Sendet eine SQL-Abfrage an den Ingres-Server
    • ingres_result_seek — Positioniert den Datensatzzeiger, bevor Daten geholt werden
    • ingres_rollback — Setzt eine Transaktion zurück
    • ingres_set_environment — Setzt Eigenschaften der Umgebung zur Ausgabesteuerung
    • ingres_unbuffered_query — Sendet eine SQL-Abfrage an Ingres, ohne die Ergebniszeilen zu puffern


Einführung

Mit der Ingres-Erweiterung für PHP können Sie sich mit Ingres-Datenbanksystemen, EDBC und Enterprise Access Gateways verbinden und Abfragen senden.

Hinweis:

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 5.1.0.


Anforderungen

Um die PHP-Erweiterung für Ingres zu kompilieren und zu benutzen, brauchen Sie eine funktionierende Ingres-Clientumgebung. Sie können die Client-Software von » http://esd.ingres.com/ herunterladen.


Installation

Diese » PECL-Extension ist nicht Teil von PHP. Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/ingres.

Die DLL-Datei für diese Erweiterung kann von » http://esd.ingres.com/product/drivers/PHP/ heruntergeladen werden

Um auf diese Funktionen zugreifen zu können, müssen Sie diese Erweiterung » herunterladen und PHP mit der Ingres-Unterstützung kompilieren, indem Sie --with-ingres[=DIR] angeben. DIR ist das Installationsverzeichnis von Ingres. Falls die Umgebungsvariable II_SYSTEM nicht korrekt gesetzt ist, müssen Sie möglicherweise die Option --with-ingres=DIR verwenden, um Ihr Ingres-Installationsverzeichnis anzugeben.

PHP-Code, der für die Versionen 2.x und später geschrieben wurde, ist nicht abwärtskompatibel mit früheren Versionen dieser PHP-Erweiterung. Es ist jedoch möglich, mit der Option --enable-ingres2 zwei nicht kompatiblen Versionen innerhalb derselben PHP-Umgebung zu benutzen. Diese Konfigurationseinstellung benennt die Erweiterung um in ingres2 und verändert die Namen von Funktionen, Einstellungen und Konstanten entsprechend. Ist diese Option aktiviert, wird beispielsweise aus ingres_connect() die Funktion ingres2_connect().

Um diese Erweiterung zu benutzen, muß die Systemvariable II_SYSTEM definiert sein. Linux- und Unix-Benutzer müssen außerdem den Suchpfad für gemeinsam benutzte Bibliotheken setzen, etwa im LD_LIBRARY_PATH. Wenn die Erweiterung zusammen mit dem Apache Webserver eingesetzt wird, müssen diese Variablen explizit im Startskript des Webservers gesetzt werden. Ebenso setzt die Ingres-Erweiterung die Direktive PassEnv voraus, damit die korrekten gemeinsamen Bibliotheken geladen werden können. Ein Beispiel:

Beispiel #1 Verwendungsbeispiel für PassEnv für Ingres

<IfModule mod_env.c>
    PassEnv II_SYSTEM
    PassEnv LD_LIBRARY_PATH
</IfModule>

Hinweis:

Beispielkonfiguration für verschiedene Webserver und Betriebssysteme finden sie hier: » http://community.ingres.com/wiki/Ingres_Articles#Ingres_and_Web_Servers.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Ingres-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Verfügbar seit Ingres 1.0.0
ingres.array_index_start | "1" | PHP_INI_ALL | Verfügbar seit Ingres 1.4.0
ingres.auto | "1" | PHP_INI_ALL | Verfügbar seit Ingres 2.0.0
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Verfügbar seit Ingres 1.2.0
ingres.cursor_mode | "0" | PHP_INI_ALL | Verfügbar seit Ingres 1.1.0
ingres.default_database | NULL | PHP_INI_ALL | Verfügbar seit Ingres 1.0.0
ingres.default_password | NULL | PHP_INI_ALL | Verfügbar seit Ingres 1.0.0
ingres.default_user | NULL | PHP_INI_ALL | Verfügbar seit Ingres 1.0.0
ingres.describe | 1 | PHP_INI_ALL | Verfügbar seit Ingres 2.1.0
ingres.fetch_buffer_size | 100 | PHP_INI_ALL | Verfügbar seit Ingres 2.1.0
ingres.max_links | "-1" | PHP_INI_SYSTEM | Verfügbar seit Ingres 1.0.0
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Verfügbar seit Ingres 1.0.0
ingres.reuse_connection | "1" | PHP_INI_ALL | Verfügbar seit Ingres ingres 2.0.0
ingres.scrollable | "1" | PHP_INI_ALL | Verfügbar seit Ingres 2.0.0.
ingres.trace | "0" | PHP_INI_ALL | Verfügbar seit Ingres 2.0.0.
ingres.trace_connect | "0" | PHP_INI_ALL | Verfügbar seit Ingres 1.2.1.
ingres.utf8 | "1" | PHP_INI_ALL | Verfügbar seit Ingres 2.0.0.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

ingres.allow_persistent boolean

Bestimmt, ob persistente Verbindungen zu Ingres erlaubt sind.

ingres.array_index_start integer

Bestimmt den Startwert der Integer-Schlüssel der Arrays, die von ingres_fetch_array() und ingres_fetch_row() zurückgegeben werden. Standardmäßig ist ingres.array_index_start 1. Um die Ingres-Erweiterung zu anderen Datenbankerweiterungen kompatibel zu machen, sollten Sie diesen Wert auf 0 setzen.

ingres.auto boolean

Schaltet die autocommit-Emulation ein oder aus. Wenn autocommit aktiviert ist, sind mehrere geöffnete Cursor in Ingres nicht möglich. Wenn diese Option aktiviert ist, wird autocommit vom Treiber emuliert.

ingres.blob_segment_length integer

Bestimmt die Größe des Speichers in Bytes, der zum Lesen von Blob-Daten verwendet wird.

ingres.cursor_mode integer

Bestimmt, in welchem Modus ein Cursor mit ingres_prepare() geöffnet wird. Gültige Werte sind INGRES_CURSOR_UPDATE und INGRES_CURSOR_READONLY.

ingres.default_database string

Bestimmt den Namen der zu öffnenden Datenbank, wenn kein Datenbankname bei einem Verbindungsaufbau angegeben wird. Diese Option kann im SQL safe mode nicht verwendet werden.

ingres.default_password string

Bestimmt, mit welchem Passwort eine Verbindung geöffnet wird, wenn kein anderes angegeben wurde. Diese Option kann im SQL safe mode nicht verwendet werden.

ingres.default_user string

Bestimmt, mit welchem Benutzernamen eine Verbindung geöffnet wird, wenn kein anderer angegeben wurde. Diese Option kann im SQL safe mode nicht verwendet werden.

ingres.describe boolean

Aktiviert die Verwendung von DESCRIBE INPUT, um die erwarteten Datentypen für parametrisierte Abfragen zu ermitteln. Dies ist seit Ingres 9.1.0 und später möglich. Wenn diese Option deaktiviert ist, müssen die Datentypen von parametrisierten Abfragen von Hand ermittelt werden. Dazu setzt man den Parameter types in der Funktion ingres_query().

Hinweis:

Die Option mittels ingres_query() zu aktivieren, verursacht zusätzlichen Kommunikationsoverhead zwischen dieser Erweiterung und dem Datenbankserver. Das zusätzliche Datenvolumen bei der Übertragungs können Sie mit ingres_prepare() und ingres_execute() reduzieren.

ingres.fetch_buffer_size integer

Bestimmt die Anzahl der Zeilen, die ingres_fetch_array(), ingres_fetch_object() und ingres_fetch_row() in einer einzigen Leseoperation versuchen soll zu holen.

ingres.max_links integer

Bestimmt die maximale Anzahl von Ingres-Datenbanksitzungen, die pro Prozess oder Thread zulässig sind. Diese Anzahl der Sitzungen sollte die Anzahl der innerhalb von Ingres definierten maximal zulässigen Sitzungen nicht übersteigen.

ingres.max_persistent integer

Bestimmt die Anzahl der maximal zulässigen persistenten Ingres-Verbindungen pro Prozess oder Thread. Diese Anzahl sollte die Anzahl der innerhalb von Ingres definierten maximal zulässigen Sitzungen nicht übersteigen.

ingres.reuse_connection boolean

Bestehende aktive Verbindungen werden wiederverwendet, wenn zur selben Datenbank und mit demselben Benutzernamen verbunden wird.

ingres.scrollable boolean

Schaltet die Unterstützung für scrollbare Cursor ein. Wenn CLOB- oder BLOB-Daten geholt werden, sollte diese Optiion auf false gesetzt sein. Verfügbar seit Ingres 9.2.0 und höher.

ingres.trace boolean

Schaltet eine einfache Ablaufverfolgung mittels E_NOTICE Nachrichten ein.

ingres.trace_connect boolean

Gibt E_NOTICE Nachrichten während Aufrufen von ingres_connect() oder ingres_pconnect() aus.

ingres.utf8 boolean

Es wird angenommen, dass Zeichenketten, die in Spalten des Typs National Character eingefügt werden (NVARCHAR or NCHAR) die Kodierung UTF8 verwenden und deshalb für den Server nach UTF16 konvertiert werden.


Ressource-Typen

ingres_connect() und ingres_pconnect() geben eine Ingres-Verbindungskennung zurück.

ingres_query() und ingres_unbuffered_query() geben eine Ingres-Ergebniskennung zurück.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

INGRES_ASSOC (integer)
Spalten werden in einem Array zurückgegeben, das die Feldnamen als Indexe hat. Wird benutzt von der Funktion ingres_fetch_array()
INGRES_NUM (integer)
Spalten werden in einem Array mit numerischen Indexen zurückgegeben. Diese Indexe beginnen normalerweise bei 1, dem ersten Feldwert im Ergebnis. Sehen Sie sich ingres.array_index_start an, wenn Sie diesen Wert ändern möchten. Wird benutzt von der Funktion ingres_fetch_array()
INGRES_BOTH (integer)
Spalten werden in einem Array zurückgegeben, das sowohl numerische als auch assoziative Indexe hat. Die assoziativen Indexe entsprechen den Feldnamen. Wird benutzt von der Funktion ingres_fetch_array().
INGRES_EXT_VERSION (string)
Bezeichnet die Version der Ingres-Erweiterung. Diese Konstante ist seit der Version 1.2.0 der PECL-Erweiterung verfügbar.
INGRES_API_VERSION (integer)
Bezeichnet die Version der Ingres-OpenAPI, mit der die Erweiterung erzeugt wurde. Diese Konstante ist seit der Version 1.2.0 der PECL-Erweiterung verfügbar.
INGRES_CURSOR_READONLY (integer)
Diese Konstante bestimmt, ob Cursors in Ingres im Modus 'readonly' geöffnet werden sollen. Diese Konstante ist seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in ingres.cursor_mode.
INGRES_CURSOR_UPDATE (integer)
Diese Konstante bestimmt, ob Cursors in Ingres im Modus 'for update' geöffnet werden sollen. Diese Konstante ist seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in ingres.cursor_mode.
INGRES_DATE_MULTINATIONAL (integer)
Äquivalent zu der Einstellung II_DATE_FORMAT für MULTINATIONAL. Diese Konstante
ist seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in
ingres_connect(), ingres_pconnect() und
ingres_set_environment(). Siehe unter Optionen
in ingres_set_environment().
INGRES_DATE_MULTINATIONAL4 (integer)
Äquivalent zu der Einstellung II_DATE_FORMAT für MULTINATIONAL. Diese Konstante
ist seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in
ingres_connect(), ingres_pconnect() und
ingres_set_environment(). Siehe unter Optionen
in ingres_set_environment().
INGRES_DATE_FINNISH (integer)
Äquivalent zu der Einstellung II_DATE_FORMAT für FINNISH. Diese Konstante
ist seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in
ingres_connect(), ingres_pconnect() und
ingres_set_environment(). Siehe unter Optionen
in ingres_set_environment().
INGRES_DATE_ISO (integer)
Äquivalent zu der Einstellung II_DATE_FORMAT für ISO. Diese Konstante ist
seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in
ingres_connect(), ingres_pconnect() und
ingres_set_environment(). Siehe unter Optionen
in ingres_set_environment().
INGRES_DATE_ISO4 (integer)
Äquivalent zu der Einstellung II_DATE_FORMAT für ISO4. Diese Konstante ist
seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in
ingres_connect(), ingres_pconnect() und
ingres_set_environment(). Siehe unter Optionen
in ingres_set_environment().
INGRES_DATE_GERMAN (integer)
Äquivalent zu der Einstellung II_DATE_FORMAT für GERMAN. Diese Konstante ist
seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in
ingres_connect(), ingres_pconnect() und
ingres_set_environment(). Siehe unter Optionen
in ingres_set_environment().
INGRES_DATE_MDY (integer)
Äquivalent zu der Einstellung II_DATE_FORMAT für MDY. Diese Konstante ist
seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in
ingres_connect(), ingres_pconnect() und
ingres_set_environment(). Siehe unter Optionen
in ingres_set_environment().
INGRES_DATE_DMY (integer)
Äquivalent zu der Einstellung II_DATE_FORMAT für DMY. Diese Konstante ist
seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in
ingres_connect(), ingres_pconnect() und
ingres_set_environment(). Siehe unter Optionen
in ingres_set_environment().
INGRES_DATE_YMD (integer)
Äquivalent zu der Einstellung II_DATE_FORMAT für YMD. Diese Konstante ist
seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in
ingres_connect(), ingres_pconnect() und
ingres_set_environment(). Siehe unter Optionen
in ingres_set_environment().
INGRES_MONEY_LEADING (integer)
Bestimmt das Währungssymbol, das vor einen monetären Wert gesetzt werden sollte. Äquivalent zu dem Wert 'L' von II_MONEY_FORMAT. Diese Konstante ist seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in ingres_connect(), ingres_pconnect() und ingres_set_environment(). Siehe unter Optionen in ingres_set_environment().
INGRES_MONEY_TRAILING (integer)
Bestimmt das Währungssymbol, das vor einen monetären Wert gesetzt werden sollte. Äquivalent zu dem Wert 'T' von II_MONEY_FORMAT. Diese Konstante ist seit der Version 1.2.0 der PECL-Erweiterung verfügbar. Wird benutzt in ingres_connect(), ingres_pconnect() und ingres_set_environment(). Siehe unter Optionen in ingres_set_environment().
INGRES_STRUCTURE_BTREE (integer)
Bestimmt, welche Tabellen- oder Indexstruktur BTREE als Vorgabewert benutzen soll, falls die Optionen table_structure oder index_structure beim Verbindungsaufbau verwendet wurden. Diese Konstante ist seit der Version 1.4.0 der PECL-Erweiterung verfügbar. Wird benutzt in ingres_connect() und ingres_pconnect(). Siehe unter Optionen in ingres_connect().
INGRES_STRUCTURE_CBTREE (integer)
Bestimmt, welche Tabellen- oder Indexstruktur COMPRESSED BTREE als Vorgabewert benutzen soll, falls die Optionen table_structure oder index_structure beim Verbindungsaufbau verwendet wurden. Diese Konstante ist seit der Version 1.4.0 der PECL-Erweiterung verfügbar. Wird benutzt in ingres_connect() und ingres_pconnect(). Siehe unter Optionen in ingres_connect().
INGRES_STRUCTURE_HASH (integer)
Bestimmt, welche Tabellen- oder Indexstruktur HASH als Vorgabewert benutzen soll, falls die Optionen table_structure oder index_structure beim Verbindungsaufbau verwendet wurden. Diese Konstante ist seit der Version 1.4.0 der PECL-Erweiterung verfügbar. Wird benutzt in ingres_connect() und ingres_pconnect(). Siehe unter Optionen in ingres_connect().
INGRES_STRUCTURE_CHASH (integer)
Bestimmt, welche Tabellen- oder Indexstruktur COMPRESSED HASH als Vorgabewert benutzen soll, falls die Optionen table_structure oder index_structure beim Verbindungsaufbau verwendet wurden. Diese Konstante ist seit der Version 1.4.0 der PECL-Erweiterung verfügbar. Wird benutzt in ingres_connect() und ingres_pconnect(). Siehe unter Optionen in ingres_connect().
INGRES_STRUCTURE_HEAP (integer)
Bestimmt, welche Tabellenstruktur HEAP als Vorgabewert benutzen soll, falls die Option table_structure beim Verbindungsaufbau verwendet wurden. Diese Konstante ist seit der Version 1.4.0 der PECL-Erweiterung verfügbar. Wird benutzt in ingres_connect() und ingres_pconnect(). Siehe unter Optionen in ingres_connect().
INGRES_STRUCTURE_CHEAP (integer)
Bestimmt, welche Tabellenstruktur COMPRESSED HEAP als Vorgabewert benutzen soll, falls die Option table_structure beim Verbindungsaufbau verwendet wurden. Diese Konstante ist seit der Version 1.4.0 der PECL-Erweiterung verfügbar. Wird benutzt in ingres_connect() und ingres_pconnect(). Siehe unter Optionen in ingres_connect().
INGRES_STRUCTURE_ISAM (integer)
Bestimmt, welche Tabellen- oder Indexstruktur ISAM als Vorgabewert benutzen soll, falls die Optionen table_structure oder index_structure beim Verbindungsaufbau verwendet wurden. Diese Konstante ist seit der Version 1.4.0 der PECL-Erweiterung verfügbar. Wird benutzt in ingres_connect() und ingres_pconnect(). Siehe unter Optionen in ingres_connect().
INGRES_STRUCTURE_CISAM (integer)
Bestimmt, welche Tabellen- oder Indexstruktur COMPRESSED ISAM als Vorgabewert benutzen soll, falls die Optionen table_structure oder index_structure beim Verbindungsaufbau verwendet wurden. Diese Konstante ist seit der Version 1.4.0 der PECL-Erweiterung verfügbar. Wird benutzt in ingres_connect() und ingres_pconnect(). Siehe unter Optionen in ingres_connect().


  • « Vordefinierte Konstanten
  • Grundlegende Nutzung »
  • PHP Manual
  • Ingres
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Grundlegende Nutzung


Grundlegende Nutzung

Dieses einfache Beispiel zeigt, wie man sich mit einer Ingres-Datenbank verbindet, eine Abfrage ausführt, die Ergebnisse ausgibt und die Verbindung wieder schließt.

Beispiel #1 Einfaches Beispiel mit Ingres

<?php
// Verbindung aufbauen und Datenbank auswählen
$link = ingres_connect('database', 'user', 'password')
    or die('Konnte keine Verbindung aufbauen: ' . ingres_error($link));
echo 'Verbindungsaufbau erfolgreich';

// Eine Tabelle abfragen, die in allen Ingres-Datenabanken existiert
$query = 'SELECT * FROM iitables';
$result = ingres_query($link,$query) or die('Abfrage fehlgeschlagen: ' .
ingres_error($link));

// Die Ergebnisse mit HTML ausgeben
// relid - der Name der Tabelle
// relowner - der Besitzer der Tabelle
echo "<table>\n";
while ($iitables = ingres_fetch_object($result)) {
    echo "\t<tr>\n";
    echo "\t\t<td>" . $iitables->relid . "</td>\n";
    echo "\t\t<td>" . $iitables->relowner . "</td>\n";
    echo "\t</tr>\n";
}
echo "</table>\n";

// Speicher freigeben
ingres_free_result($result);

// Transaktion beenden
ingres_commit($link);

// Verbindung schließen
ingres_close($link);
?>


Ingres-Funktionen

Inhaltsverzeichnis

  • ingres_autocommit_state — Prüft, ob die Verbindung im autocommit-Modus arbeitet
  • ingres_autocommit — Schaltet den autocommit-Modus an oder aus
  • ingres_charset — Gibt den verwendeten Zeichensatz der Installation zurück
  • ingres_close — Schließt eine Ingres-II-Datenbankverbindung
  • ingres_commit — Beendet eine Transaktion
  • ingres_connect — Öffnet eine Verbindung zu einem Ingres-II-Datenbankserver
  • ingres_cursor — Gibt den Namen eines Cursors für die angegebene Ergebnis-Ressource zurück
  • ingres_errno — Gibt den letzten Ingres-Fehlercode zurück
  • ingres_error — Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück
  • ingres_errsqlstate — Gibt den letzten Fehlercode von SQLSTATE zurück
  • ingres_escape_string — Maskiert Sonderzeichen für die Verwendung in Datenbankabfragen
  • ingres_execute — Führt eine vorbereitete Abfrage aus
  • ingres_fetch_array — Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc — Fetch a row of result into an associative array
  • ingres_fetch_object — Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_proc_return — Holt den Rückgabewert eines Prozeduraufrufs
  • ingres_fetch_row — Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array
  • ingres_field_length — Gibt die Länge eines Feldes zurück
  • ingres_field_name — Holt den Namen eines Feldes in einer Ergebnismenge
  • ingres_field_nullable — Prüft, ob für ein Feld NULL-Werte zugelassen sind
  • ingres_field_precision — Gibt die Genauigkeit eines Feldes zurück
  • ingres_field_scale — Gibt die Dezimalstellen eines Feldes zurück
  • ingres_field_type — Gibt den Typ eines Feldes in einer Ergebnismenge zurück
  • ingres_free_result — Gibt den durch ein Ergebnis belegten Speicher frei
  • ingres_next_error — Ermittelt den nächsten Ingres-Fehler
  • ingres_num_fields — Gibt die Anzahl der Felder der letzten Abfrage zurück
  • ingres_num_rows — Gibt die Anzahl der Datensätze der Ergebnismenge oder die Anzahl der von der letzten Abfrage betroffenen Datensätze zurück
  • ingres_pconnect — Öffnet eine persistente Verbindung zu einer Ingres-Datenbank
  • ingres_prepare — Bereitet eine Abfrage zur späteren Ausführung vor
  • ingres_query — Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_result_seek — Positioniert den Datensatzzeiger, bevor Daten geholt werden
  • ingres_rollback — Setzt eine Transaktion zurück
  • ingres_set_environment — Setzt Eigenschaften der Umgebung zur Ausgabesteuerung
  • ingres_unbuffered_query — Sendet eine SQL-Abfrage an Ingres, ohne die Ergebniszeilen zu puffern


Prüft, ob die Verbindung im autocommit-Modus arbeitet

  • « Ingres-Funktionen
  • ingres_autocommit »
  • PHP Manual
  • Ingres-Funktionen
  • Prüft, ob die Verbindung im autocommit-Modus arbeitet

ingres_autocommit_state

(PECL ingres >= 2.0.0)

ingres_autocommit_state — Prüft, ob die Verbindung im autocommit-Modus arbeitet

Beschreibung

ingres_autocommit_state ( resource $link ) : bool

ingres_autocommit_state() wird aufgerufen, um festzustellen, ob die aktuelle Verbindung im autocommit-Modus arbeitet oder nicht.

Parameter-Liste

link

Die Verbindungskennung

Rückgabewerte

Gibt true zurück, wenn autocommit aktiviert ist oder false, wenn autocommit deaktiviert ist.

Siehe auch

  • ingres_autocommit() - Schaltet den autocommit-Modus an oder aus
  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server


Schaltet den autocommit-Modus an oder aus

  • « ingres_autocommit_state
  • ingres_charset »
  • PHP Manual
  • Ingres-Funktionen
  • Schaltet den autocommit-Modus an oder aus

ingres_autocommit

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_autocommit — Schaltet den autocommit-Modus an oder aus

Beschreibung

ingres_autocommit ( resource $link ) : bool

ingres_autocommit() wird vor dem Öffnen einer Transaktion aufgerufen (vor dem ersten Aufruf der Funktion ingres_query() oder gleich nach einem Aufruf von ingres_rollback() oder ingres_commit()) um den "autocommit"-Modus des Servers ein- oder auszuschalten (beim Beginn eines Skripts ist der autocommit-Modus ausgeschaltet).

Wenn der autocommit-Modus eingeschaltet ist, wird jede Abfrage automatisch sofort vom Server commited, so als würde die Funktion ingres_commit() nach jedem Aufruf von ingres_query() aufgerufen werden. Um festzustellen, ob autocommit ein- oder ausgeschaltet ist, kann man die Funktion ingres_autocommit_state() aufrufen

Normalerweise rollt Ingres jede nicht commitete Transaktion am Ende eines Seitenaufrufs zurück. Mit dieser Funktion oder mit ingres_commit() stellen Sie sicher, daß Ihre Änderungen in die Datenbank geschrieben wurden.

Parameter-Liste

link

Die Verbindungskennung.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ingres_autocommit_state() - Prüft, ob die Verbindung im autocommit-Modus arbeitet
  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_rollback() - Setzt eine Transaktion zurück
  • ingres_commit() - Beendet eine Transaktion


Gibt den verwendeten Zeichensatz der Installation zurück

  • « ingres_autocommit
  • ingres_close »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt den verwendeten Zeichensatz der Installation zurück

ingres_charset

(PECL ingres >= 2.1.0)

ingres_charset — Gibt den verwendeten Zeichensatz der Installation zurück

Beschreibung

ingres_charset ( resource $link ) : string

ingres_charset() wird aufgerufen um festzustellen, welchen Zeichensatz aus II_CHARSETxx der Ingres-Client verwendet (wobei xx der Installationscode ist).

Hinweis:

Mit der Funktion putenv() können Sie den Wert, den ingres_charset() zurückgibt, überschreiben. Wenn Sie den Wert von II_CHARSETxx in einer laufenden Ingres-Installation ändern, können Ihre Daten beschädigt werden.

Parameter-Liste

link

Die Verbindungskennung

Rückgabewerte

Gibt den Wert von II_CHARSETxx zurück oder NULL, falls der Wert von II_CHARSETxx nicht ermittelt werden konnte.

Beispiele

Beispiel #1 ingres_charset()-Beispiel

<?php
$link = ingres_connect($database, $user, $password);

echo ingres_charset($link) . "\n";

ingres_close($link);
?>

Siehe auch

  • ingres_connect() - Öffnet eine Verbindung zu einem Ingres-II-Datenbankserver
  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server


Schließt eine Ingres-II-Datenbankverbindung

  • « ingres_charset
  • ingres_commit »
  • PHP Manual
  • Ingres-Funktionen
  • Schließt eine Ingres-II-Datenbankverbindung

ingres_close

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_close — Schließt eine Ingres-II-Datenbankverbindung

Beschreibung

ingres_close ( resource $link ) : bool

ingres_close() schließt die Verbindung zu dem Ingres-Datenbankserver, der mit der übergebenen Verbindunkskennung verknüpft ist.

ingres_close() ist normalerweise nicht nötig, weil es keine persistenten Verbindungen schließt und weil alle nicht-persistenten Verbindungen automatisch zum Ende des Skripts geschlossen werden.

Parameter-Liste

link

Die Verbindungskennung

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ingres_connect() - Öffnet eine Verbindung zu einem Ingres-II-Datenbankserver
  • ingres_pconnect() - Öffnet eine persistente Verbindung zu einer Ingres-Datenbank


Beendet eine Transaktion

  • « ingres_close
  • ingres_connect »
  • PHP Manual
  • Ingres-Funktionen
  • Beendet eine Transaktion

ingres_commit

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_commit — Beendet eine Transaktion

Beschreibung

ingres_commit ( resource $link ) : bool

ingres_commit() schließt die aktuell offene Transaktion ab, und schreibt alle Veränderungen in die Datenbank.

Dadurch wird die Transaktion beendet. Eine neue Transaktion kann geöffnet werden, indem man eine neue Abfrage mit ingres_query() an den Datenbankserver schickt.

Sie können auch den Server automatisch nach jeder Abfrage einen Commit ausführen lassen, wenn sie die Funktion ingres_autocommit() aufrufen, bevor Sie die Transaktion öffnen.

Standardmäßig führt Ingres am Ende einer Anfrage ein Rollback für nicht committete Transaktionen durch. Verwenden Sie diese Funktion oder die Funktion ingres_autocommit(), wenn Sie sicherstellen wollen, dass Ihre Daten in die Datenbank übertragen werden.

Parameter-Liste

link

Die Verbindungskennung

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_rollback() - Setzt eine Transaktion zurück
  • ingres_autocommit() - Schaltet den autocommit-Modus an oder aus


Öffnet eine Verbindung zu einem Ingres-II-Datenbankserver

  • « ingres_commit
  • ingres_cursor »
  • PHP Manual
  • Ingres-Funktionen
  • Öffnet eine Verbindung zu einem Ingres-II-Datenbankserver

ingres_connect

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_connect — Öffnet eine Verbindung zu einem Ingres-II-Datenbankserver

Beschreibung

ingres_connect ( string $database = ? , string $username = ? , string $password = ? , array $options = ? ) : resource

ingres_connect() öffnet eine Verbindung zu der Ingres-Datenbank database.

Die Verbindung wird geschlossen, wenn das Skript zuende ist oder wenn die Funktion ingres_close() mit der aktuellen Verbindungskennung aufgerufen wird.

Parameter-Liste

Wenn einige Parameter fehlen, benutzt ingres_connect() die Werte, die in der php.ini für ingres.default_database, ingres.default_user und ingres.default_password eingetragen sind.

database

Der Name der Datenbank. Dieser muss der Syntax

[vnode::]dbname[/svr_class] folgen.

username

Der Ingres-Benutzername.

password

Das Passwort zu username.

options

ingres_connect()-Optionen

Name der Option | Typ | Beschreibung | Beispiel
date_century_boundary | integer | Der Schwellwert, anhand dessen geprüft wird, ob eine zweistellige Jahreszahl im aktuellen oder im kommenden Jahrhundert liegt. Äquivalent zu II_DATE_CENTURY_BOUNDARY. | 50
group | string | Die Nummer der Benutzergruppe des Benutzers. Äquivalent zum '-G' Flag. | payroll
role | string | Die Role-Nummer der Applikation. Falls auch ein Role-Passwort verlangt wird, sollte der Wert als "role/password" angegeben werden.
effective_user | string | Das Ingres-Benutzerkonto, das der Benutzer verkörpert. Äquivalent zu dem Flag '-u'. | another_user
dbms_password | string | Das interne Datenbank-Passwort für den Benutzer, der sich mit Ingres verbindet. | s3cr3t
table_structure string

Die Vorgabewerte für die Struktur neuer Tabellen. Gültige Werte für Tabellenstrukturen sind:

  • INGRES_STRUCTURE_BTREE
  • INGRES_STRUCTURE_HASH
  • INGRES_STRUCTURE_HEAP
  • INGRES_STRUCTURE_ISAM
  • INGRES_STRUCTURE_CBTREE
  • INGRES_STRUCTURE_CISAM
  • INGRES_STRUCTURE_CHASH
  • INGRES_STRUCTURE_CHEAP

 INGRES_STRUCTURE_BTREE
index_structure string

Die Vorgabewerte für die Struktur neuer sekundärer Indexe. Gültige Werte für Indexstrukturen sind:

  • INGRES_STRUCTURE_CBTREE
  • INGRES_STRUCTURE_CISAM
  • INGRES_STRUCTURE_CHASH
  • INGRES_STRUCTURE_BTREE
  • INGRES_STRUCTURE_HASH
  • INGRES_STRUCTURE_ISAM

 INGRES_STRUCTURE_HASH
login_local | boolean | Bestimmt, wie mit Verbindungs-Benutzer-ID und -Passwort verfahren wird, wenn im Verbindungsstring für die Zieldatenbank ein VNODE enthalten ist. Falls diese Option auf TRUE gesetzt wird, werden Benutzer-ID und Passwort für den lokalen Zugriff auf VNODE verwendet und die Zugangsdaten zu VNODE werden zum Verbindungsaufbau zur Datenbank benutzt. Falls die Option auf den Wert FALSE gesetzt wurde, wird mit der Prozess-Benutzer-ID des Benutzers auf VNODE zugegriffen und mit seinen Logindaten für die Verbindung wird, anstelle der VNODE-Login-Daten, eine Verbindung zur Datenbank aufgebaut. Falls der Verbindungsstring keinen VNODE enthält, wird die Option ignoriert. Der Standardwert ist FALSE. | TRUE
timezone | string | Bestimmt die Zeitzone der Datenbanksitzung. Falls die Option nicht angegeben wurde, wird der Wert von II_TIMEZONE_NAME benutzt. Falls dort auch nichts definiert ist, wird NA-PACIFIC (GMT-8 mit Sommerzeit) benutzt.
date_format integer

Bestimmt die erlaubten Ein- und Ausgabeformate für das Datum in Ingres. Falls nichts angegeben ist, werden die Formate von II_DATE_FORMAT benutzt. Falls dort auch nichts definiert wurde, ist US (mm/dd/yy) das Standardformat. Gültige Werte für date_format sind:

  • INGRES_DATE_DMY
  • INGRES_DATE_FINISH
  • INGRES_DATE_GERMAN
  • INGRES_DATE_ISO
  • INGRES_DATE_ISO4
  • INGRES_DATE_MDY
  • INGRES_DATE_MULTINATIONAL
  • INGRES_DATE_MULTINATIONAL4
  • INGRES_DATE_YMD
  • INGRES_DATE_US

 INGRES_DATE_MULTINATIONAL4
decimal_separator string Das Dezimaltrennzeichen ","
money_lort integer

Führendes oder angehängtes Währungssymbol. Gültige Werte für money_lort sind:

  • INGRES_MONEY_LEADING
  • INGRES_MONEY_TRAILING

 INGRES_MONEY_TRAILING
money_sign string Das Währungssymbol, das mit dem Datentyp MONEY benutzt wird. €
money_precision | integer | Die Genauigkeit des Datentyps MONEY. | 3
float4_precision | integer | Die Genauigkeit des Datentyps FLOAT4. | 10
float8_precision | integer | Die Genauigkeit des Datentyps FLOAT8. | 10
blob_segment_length | integer | Die Datenmenge in Bytes, die in einem Zugriff aus einem BLOB/CLOB gelesen werden kann. Falls nichts anderes angegeben wurde, ist der Vorgabewert 4096 Bytes. | 8192

Rückgabewerte

Gibt bei Erfolg eine Ingres-Verbindungskennung zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Öffnen einer Verbindung zu einer Ingres-Datenbank

<?php
$link = ingres_connect("mydb", "user", "pass")
    or die("Konnte nicht verbinden");
echo "Verbindungsaufbau erfolgreich";
ingres_close($link);
?>

Siehe auch

  • ingres_pconnect() - Öffnet eine persistente Verbindung zu einer Ingres-Datenbank
  • ingres_close() - Schließt eine Ingres-II-Datenbankverbindung


Gibt den Namen eines Cursors für die angegebene Ergebnis-Ressource zurück

  • « ingres_connect
  • ingres_errno »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt den Namen eines Cursors für die angegebene Ergebnis-Ressource zurück

ingres_cursor

(PECL ingres >= 1.1.0)

ingres_cursor — Gibt den Namen eines Cursors für die angegebene Ergebnis-Ressource zurück

Beschreibung

ingres_cursor ( resource $result ) : string

Es wird ein String mit dem Namen des aktiven Cursors zurückgegeben oder NULL, falls kein Cursor geöffnet ist.

Parameter-Liste

result

Die Ergebniskennung

Rückgabewerte

Gibt einen String zurück, der den Namen des aktiven Cursors enthält. Falls kein Cursor geöffnet ist, wird NULL zurückgegeben.

Beispiele

Beispiel #1 ingres_cursor()-Beispiel

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_prepare($link, "select * from table");

$cursor_name = ingres_cursor($result);

echo $cursor_name;

?>

Siehe auch

  • ingres_prepare() - Bereitet eine Abfrage zur späteren Ausführung vor
  • ingres_execute() - Führt eine vorbereitete Abfrage aus


Gibt den letzten Ingres-Fehlercode zurück

  • « ingres_cursor
  • ingres_error »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt den letzten Ingres-Fehlercode zurück

ingres_errno

(PECL ingres >= 1.1.0)

ingres_errno — Gibt den letzten Ingres-Fehlercode zurück

Beschreibung

ingres_errno ( resource $link = ? ) : int

Gibt einen Integerwert mit dem letzten Fehlercode zurück. Falls es keinen Fehler gab, wird 0 zurückgegeben.

Wird der Parameter link an ingres_errno() übergeben, wird der letzte Fehlercode für diese Verbindung zurückgegeben. Falls keine Verbindungskennung übergeben wird, gibt ingres_errno() den letzten Fehlercode für die Standardverbindung zurück.

Die Funktion ingres_errno() sollte immer nach der Ausführung einer Datenbankabfrage aufgerufen werden. Wird vor dem Aufruf von ingres_errno() eine andere Funktion aufgerufen, wird der Fehlercode der letzten Datenbankabfrage von diesem Aufruf zurückgesetzt oder verändert.

Parameter-Liste

link

Die Verbindungskennung

Rückgabewerte

Gibt einen Integerwert mit dem letzten Fehlercode zurück. Falls es keinen Fehler gab, wird 0 zurückgegeben.

Beispiele

Beispiel #1 ingres_errno()-Beispiel

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

$error_code = ingres_errno($link);

if ( $error_code != 0 ) {
   echo "Ein Fehler ist aufgetreten - " . $error_code;
}
?>

Siehe auch

  • ingres_error() - Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück
  • ingres_errsqlstate() - Gibt den letzten Fehlercode von SQLSTATE zurück
  • ingres_next_error() - Ermittelt den nächsten Ingres-Fehler


Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück

  • « ingres_errno
  • ingres_errsqlstate »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück

ingres_error

(PECL ingres >= 1.1.0)

ingres_error — Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück

Beschreibung

ingres_error ( resource $link = ? ) : string

Gibt einen String zurück, der eine Beschreibung des letzten Fehlers enthält oder NULL, falls es keinen Fehler gab.

Wird der Parameter link an ingres_error() übergeben, wird die letzte Fehlermeldung für diese Verbindung zurückgegeben. Falls keine Verbindungskennung übergeben wird, gibt ingres_error() die letzte Fehlermeldung für die Standardverbindung zurück.

Die Funktion ingres_error() sollte immer nach der Ausführung einer Datenbankabfrage aufgerufen werden. Wird vor dem Aufruf von ingres_error() eine andere Funktion aufgerufen, wird die Fehlermeldung der letzten Datenbankabfrage von diesem Aufruf zurückgesetzt oder verändert.

Parameter-Liste

link

Die Verbindungskennung.

Rückgabewerte

Gibt einen String mit der letzten Fehlermeldung zurück. Falls es keinen Fehler gab, wird NULL zurückgegeben.

Beispiele

Beispiel #1 Liefere eine Meldung für den zuletzt aufgetretenen Fehler

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

$error_text = ingres_error();

if (!is_null($error_text)) {
   echo "Ein Fehler ist aufgetreten - " . $error_text;
}
?>

Siehe auch

  • ingres_errno() - Gibt den letzten Ingres-Fehlercode zurück
  • ingres_errsqlstate() - Gibt den letzten Fehlercode von SQLSTATE zurück
  • ingres_next_error() - Ermittelt den nächsten Ingres-Fehler


Gibt den letzten Fehlercode von SQLSTATE zurück

  • « ingres_error
  • ingres_escape_string »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt den letzten Fehlercode von SQLSTATE zurück

ingres_errsqlstate

(PECL ingres >= 1.1.0)

ingres_errsqlstate — Gibt den letzten Fehlercode von SQLSTATE zurück

Beschreibung

ingres_errsqlstate ( resource $link = ? ) : string

Gibt einen String zurück, der den letzten Fehlercode von SQLSTATE enthält oder NULL, falls es keinen Fehler gab.

Wird der Parameter link an ingres_errsqlstate() übergeben, wird der letzte Fehlercode von SQLSTATE für diese Verbindung zurückgegeben. Falls keine Verbindungskennung übergeben wird, gibt ingres_errsqlstate() den letzten Fehlercode von SQLSTATE für die Standardverbindung zurück.

Die Funktion ingres_errsqlstate() sollte immer nach der Ausführung einer Datenbankabfrage aufgerufen werden. Wird vor dem Aufruf von ingres_errsqlstate() eine andere Funktion aufgerufen, wird die Fehlermeldung der letzten Datenbankabfrage von diesem Aufruf zurückgesetzt oder verändert.

Parameter-Liste

link

Die Verbindungskennung

Rückgabewerte

Gibt einen String zurück, der den letzten Fehlercode von SQLSTATE enthält oder NULL, falls es keinen Fehler gab.

Beispiele

Beispiel #1 ingres_errsqlstate()-Beispiel

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

$error_sqlstate = ingres_errsqlstate($link);

if (!is_null($error_sqlstate)) {
   echo "Ein Fehler ist aufgetreten - " . $error_sqlstate;
}
?>

Siehe auch

  • ingres_errno() - Gibt den letzten Ingres-Fehlercode zurück
  • ingres_error() - Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück
  • ingres_next_error() - Ermittelt den nächsten Ingres-Fehler


Maskiert Sonderzeichen für die Verwendung in Datenbankabfragen

  • « ingres_errsqlstate
  • ingres_execute »
  • PHP Manual
  • Ingres-Funktionen
  • Maskiert Sonderzeichen für die Verwendung in Datenbankabfragen

ingres_escape_string

(PECL ingres >= 2.1.0)

ingres_escape_string — Maskiert Sonderzeichen für die Verwendung in Datenbankabfragen

Beschreibung

ingres_escape_string ( resource $link , string $source_string ) : string

ingres_escape_string() wird benutzt, um bestimmte Sonderzeichen in Strings zu maskieren, bevor diese an den Datenbankserver gesendet werden.

Parameter-Liste

link

Die Verbindungskennung

source_string

Der String, der geparst werden soll

Rückgabewerte

Gibt einen String zurück, dessen Sonderzeichen maskiert wurden.

Beispiele

Beispiel #1 Bestimmte Sonderzeichen in einer Abfrage maskieren

<?php
$link = ingres_connect($database, $user, $password);

$last_name = "O'Connor";

$sql = sprintf("select * from user_profile where up_last = '%s'", ingres_escape_string( $link, $last_name));

$result = ingres_query($link, $sql);

while ($user = ingres_fetch_object($result))
{
  echo $user->up_first . <BR />;
}

ingres_commit($link);

ingres_close($link);

?>

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server


Führt eine vorbereitete Abfrage aus

  • « ingres_escape_string
  • ingres_fetch_array »
  • PHP Manual
  • Ingres-Funktionen
  • Führt eine vorbereitete Abfrage aus

ingres_execute

(PECL ingres >= 1.1.0)

ingres_execute — Führt eine vorbereitete Abfrage aus

Beschreibung

ingres_execute ( resource $result , array $params = ? , string $types = ? ) : bool

Eine mit ingres_prepare() vorbereitete Abfrage wird ausgeführt.

Hinweis: Verwandte Konfigurationen

Siehe auch die Direktiven ingres.describe, ingres.scrollable und ingres.utf8 der Laufzeit-Konfiguration.

Parameter-Liste

result

Die Ergebniskennung

params

Ein Array mit den Parameterwerten für die Abfrage

types

Ein String, der eine Folge von Datentypen für die übergebenen Parameterwerte enthält. Die Liste der Typ-Codes ist für den types Parameter der Funktion ingres_query() dokumentiert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ingres_unbuffered_query() - Sendet eine SQL-Abfrage an Ingres, ohne die Ergebniszeilen zu puffern
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array
  • ingres_commit() - Beendet eine Transaktion
  • ingres_rollback() - Setzt eine Transaktion zurück
  • ingres_autocommit() - Schaltet den autocommit-Modus an oder aus
  • ingres_set_environment() - Setzt Eigenschaften der Umgebung zur Ausgabesteuerung
  • ingres_errno() - Gibt den letzten Ingres-Fehlercode zurück
  • ingres_error() - Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück


Liest eine Zeile der Ergebnismenge in ein Array ein

  • « ingres_execute
  • ingres_fetch_assoc »
  • PHP Manual
  • Ingres-Funktionen
  • Liest eine Zeile der Ergebnismenge in ein Array ein

ingres_fetch_array

(PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_fetch_array — Liest eine Zeile der Ergebnismenge in ein Array ein

Beschreibung

ingres_fetch_array ( resource $result , int $result_type = ? ) : array

Diese Funktion ist eine erweiterte Version der Funktion ingres_fetch_row(). Zusätzlich zur Speicherung der Daten unter numerischen Indizes werden die Daten auch unter assoziativen Indizes im Ergebnisarray gespeichert, indem die Feldnamen als Schlüssel benutzt werden.

Falls eine oder mehrere Spalten der Ergebnismenge dieselben Feldnamen haben, bekommt die letzte Spalte die Priorität. Um auf die anderen Spalten zuzugreifen, müssen sie entweder den numerischen Index der Spalte benutzen oder Aliase für die Spalten definieren.

<?php

$result = ingres_query($link, "select ap_place as city, ap_ccode as country from airport where ap_iatacode = 'VLL'");
$result = ingres_fetch_array($result);
$foo = $result["city"];
$bar = $result["country"];

?>

Von der Geschwindigkeit her ist diese Funktion identisch zu ingres_fetch_object(), und fast so schnell wie ingres_fetch_row() (der Unterschied ist zu vernachlässigen).

In der Standardeinstellung beginnt die Indizierung der Arrays, die mit ingres_fetch_array() geholt werden bei 1 und nicht bei 0, wie in anderen DBMS-Erweiterungen. Die Startposition kann aber angepasst werden, indem man den Konfigurationsparameter ingres.array_index_start auf den Wert 0 setzt.

Hinweis: Verwandte Konfigurationen

Siehe auch die Direktiven ingres.array_index_start, ingres.fetch_buffer_size und ingres.utf8 der Laufzeit-Konfiguration.

Parameter-Liste

result

Die Ergebniskennung

result_type

Der Ergebnistyp. Der Parameter result_type kann die Werte INGRES_NUM für ein numerisches Array, INGRES_ASSOC für ein assoziatives Array oder INGRES_BOTH (Vorgabewert) für beides haben.

Rückgabewerte

Gibt eine gelesene Zeile aus einem Ergebnis in einem Array zurück oder false, wenn keine Zeilen mehr gelesen werden können.

Beispiele

Beispiel #1 Eine Ergebniszeile in ein Array einlesen

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link,"select * from table");
while ($row = ingres_fetch_array($result)) {
    echo $row["user_id"];  // aus dem assoziativen Array
    echo $row["fullname"];
    echo $row[1];          // aus dem numerischen Array
    echo $row[2];
}
?>

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_num_fields() - Gibt die Anzahl der Felder der letzten Abfrage zurück
  • ingres_field_name() - Holt den Namen eines Feldes in einer Ergebnismenge
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Fetch a row of result into an associative array

  • « ingres_fetch_array
  • ingres_fetch_object »
  • PHP Manual
  • Ingres-Funktionen
  • Fetch a row of result into an associative array

ingres_fetch_assoc

(PECL ingres >= 2.2.2)

ingres_fetch_assoc — Fetch a row of result into an associative array

Beschreibung

ingres_fetch_assoc ( resource $result ) : array

This function is stores the data fetched from a query executed using ingres_query() in an associative array, using the field names as keys.

With regard to speed, the function is identical to ingres_fetch_object(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

By default, arrays created by ingres_fetch_assoc() start from position 1 and not 0 as with other DBMS extensions. The starting position can be adjusted to 0 using the configuration parameter ingres.array_index_start.

Hinweis: Related Configurations

See also the ingres.array_index_start, ingres.fetch_buffer_size and ingres.utf8 directives in Runtime Configuration.

Parameter-Liste

result

The query result identifier

Rückgabewerte

Returns an associative array that corresponds to the fetched row, or false if there are no more rows

Beispiele

Beispiel #1 Fetch a row into an associative array

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link,"select * from table");
while ($row = ingres_fetch_assoc($result)) {
    echo $row["user_id"];  // using associative array
    echo $row["fullname"];
}
?>

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_num_fields() - Gibt die Anzahl der Felder der letzten Abfrage zurück
  • ingres_field_name() - Holt den Namen eines Feldes in einer Ergebnismenge
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Gibt eine Zeile der Ergebnismenge als Objekt zurück

  • « ingres_fetch_assoc
  • ingres_fetch_proc_return »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt eine Zeile der Ergebnismenge als Objekt zurück

ingres_fetch_object

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_fetch_object — Gibt eine Zeile der Ergebnismenge als Objekt zurück

Beschreibung

ingres_fetch_object ( resource $result , int $result_type = ? ) : object

Diese Funktion ist ähnlich zu ingres_fetch_array(), mit einem Unterschied: ein Objekt wird anstelle eines Arrays zurückgegeben. Indirekt heißt das, daß Sie die Daten nur über ihre Feldnamen ansprechen können und nicht über ihre Offsets (Zahlen sind unzulässige Namen für Objekteigenschaften).

Diese Funktion ist von der Geschwindigkeit her identisch zu ingres_fetch_array(), und fast so schnell wie ingres_fetch_row() (der Unterschied ist zu vernachlässigen).

Hinweis: Verwandte Konfigurationen

Siehe auch die Direktiven ingres.fetch_buffer_size und ingres.utf8 der Laufzeit-Konfiguration.

Parameter-Liste

link

Die Ergebniskennung

result_type

Das (optionale) Argument result_type ist eine Konstante und kannd die Werte INGRES_ASSOC, INGRES_NUM und INGRES_BOTH annehmen.

Rückgabewerte

Gibt die Daten einer Zeile der Ergebnismenge in einem Objekt zurück oder false, wenn es keine Zeilen mehr gibt.

Beispiele

Beispiel #1 Eine Zeile in ein Objekt einlesen

<?php
$link = ingres_connect($database, $user, $password);
$result = ingres_query($link, "select * from table");
while ($row = ingres_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
?>

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_num_fields() - Gibt die Anzahl der Felder der letzten Abfrage zurück
  • ingres_field_name() - Holt den Namen eines Feldes in einer Ergebnismenge
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Holt den Rückgabewert eines Prozeduraufrufs

  • « ingres_fetch_object
  • ingres_fetch_row »
  • PHP Manual
  • Ingres-Funktionen
  • Holt den Rückgabewert eines Prozeduraufrufs

ingres_fetch_proc_return

(PECL ingres >= 1.4.0)

ingres_fetch_proc_return — Holt den Rückgabewert eines Prozeduraufrufs

Beschreibung

ingres_fetch_proc_return ( resource $result ) : int

Mir dieser Funktion wird der Rückgabewert einer zuvor ausgeführten Ingres Datenbank-Prozedur (stored procedure) geholt.

Hinweis:

Wird diese Funktion im Zusammenhang mit einer Prozedur benutzt, die neue Zeilen erzeugt, sollte sie erst dann aufgerufen werden, nachdem alle erzeugten Zeilen mit ingres_fetch_array(), ingres_fetch_object() oder ingres_fetch_row() geholt wurden. Diese Funktion unterdrückt alle Zeilen, die noch nicht geholt wurden, falls es solche gibt.

Parameter-Liste

result

Die Ergebniskennung einer Abfrage

Rückgabewerte

Gibt einen integer-Wert zurück, falls die Prozedur einen liefert, anderenfalls null.

Beispiele

Beispiel #1 Holt den Rückgabewert eines Prozeduraufrufs

<?php

$link = ingres_connect($database);

if ( ingres_errno() != 0 ) {
    $error_text = ingres_error();
    die($error_text);
}

$result = ingres_query($link, "execute procedure php_proc (value = 1000)");

if ( ingres_errno() != 0 ) {
    $error_text = ingres_error();
    die($error_text);
}

echo "Rückgabewert - " . ingres_fetch_proc_return($result) . "\n";

ingres_close($link);

?>

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array

  • « ingres_fetch_proc_return
  • ingres_field_length »
  • PHP Manual
  • Ingres-Funktionen
  • Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array

ingres_fetch_row

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_fetch_row — Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array

Beschreibung

ingres_fetch_row ( resource $result ) : array

ingres_fetch_row() gibt ein Array zurück, das die entsprechende Zeile der Ergebnismenge enthält oder false, falls es keine Zeilen mehr in der Ergebnismenge gibt. Jede Spalte ist unter einem Array-Offset, beginnend mit 1, gespeichert.

Aufeinanderfolgende Aufrufe von ingres_fetch_row() geben immer die nächste Zeile der Ergebnismenge zurück oder false, wenn es keine Zeilen mehr gibt.

In der Standardeinstellung beginnt die Indizierung der Arrays, die mit ingres_fetch_row() geholt werden bei 1 und nicht bei 0, wie in anderen DBMS-Erweiterungen. Die Startposition kann aber angepasst werden, indem man den Konfigurationsparameter ingres.array_index_start auf den Wert 0 setzt.

Hinweis: Verwandte Konfigurationen

Siehe auch die Direktiven ingres.array_index_start, ingres.fetch_buffer_size und ingres.utf8 der Laufzeit-Konfiguration.

Parameter-Liste

result

Die Ergebniskennung

Rückgabewerte

Gibt eine gelesene Zeile aus einem Ergebnis in einem Array zurück oder false, wenn keine Zeilen mehr gelesen werden können.

Beispiele

Beispiel #1 Eine Ergebniszeile in ein numerisches Array einlesen

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Siehe auch

  • ingres_num_fields() - Gibt die Anzahl der Felder der letzten Abfrage zurück
  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück


Gibt die Länge eines Feldes zurück

  • « ingres_fetch_row
  • ingres_field_name »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt die Länge eines Feldes zurück

ingres_field_length

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_field_length — Gibt die Länge eines Feldes zurück

Beschreibung

ingres_field_length ( resource $result , int $index ) : int

ingres_field_length() gibt die Länge eines Feldes zurück. Das ist die Anzahl der Bytes, die der Server zum Speichern des Feldes belegt. Genauere Informationen sind dem OpenAPI User Guide - Anhang "Data Types" der Ingres-Dokumentation zu entnehmen.

Hinweis: Verwandte Konfigurationen

Siehe ingres.array_index_start der Laufzeit-Konfiguration

Parameter-Liste

result

Die Ergebniskennung

index

index ist das Feld, dessen Typ ermittelt werden soll.

Die möglichen Werte für index hängen vom Wert von ingres.array_index_start ab. Ist ingres.array_index_start gleich 1 (die Voreinstellung), dann muss index zwischen 1 und dem Wert, der von ingres_num_fields() zurückgegeben wird, liegen. Ist ingres.array_index_start gleich 0, dann mussindex zwischen 0 und ingres_num_fields() - 1 liegen.

Rückgabewerte

Gibt die Länge eines Feldes zurück.

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Holt den Namen eines Feldes in einer Ergebnismenge

  • « ingres_field_length
  • ingres_field_nullable »
  • PHP Manual
  • Ingres-Funktionen
  • Holt den Namen eines Feldes in einer Ergebnismenge

ingres_field_name

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_field_name — Holt den Namen eines Feldes in einer Ergebnismenge

Beschreibung

ingres_field_name ( resource $result , int $index ) : string

ingres_field_name() gibt den Namen eines Feldes in einer Ergebnismenge zurück

Hinweis: In Beziehung stehende Konfiguration

Siehe ingres.array_index_start in Laufzeitkonfiguration

Parameter-Liste

result

Die Ergebniskennung

index

index gibt das zu prüfende Feld an.

Die möglichen Werte von index hängen vom Wert von ingres.array_index_start ab. Ist ingres.array_index_start 1 (die Vorgabe), dann muss index zwischen 1 und dem Wert, der von ingres_num_fields() zurückgegeben wird, liegen. Ist ingres.array_index_start 0, dann muss index zwischen 0 und ingres_num_fields() - 1 liegen.

Rückgabewerte

Gibt den Namen eines Feldes in einer Ergebnismenge zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Prüft, ob für ein Feld NULL-Werte zugelassen sind

  • « ingres_field_name
  • ingres_field_precision »
  • PHP Manual
  • Ingres-Funktionen
  • Prüft, ob für ein Feld NULL-Werte zugelassen sind

ingres_field_nullable

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_field_nullable — Prüft, ob für ein Feld NULL-Werte zugelassen sind

Beschreibung

ingres_field_nullable ( resource $result , int $index ) : bool

Prüft, ob für ein Feld NULL-Werte zugelassen sind

Hinweis: In Beziehung stehende Konfiguration

Siehe ingres.array_index_start in Laufzeitkonfiguration

Parameter-Liste

result

Die Ergebniskennung

index

index gibt das zu prüfende Feld an.

Die möglichen Werte von index hängen vom Wert von ingres.array_index_start ab. Ist ingres.array_index_start 1 (die Vorgabe), dann muss index zwischen 1 und dem Wert, der von ingres_num_fields() zurückgegeben wird, liegen. Ist ingres.array_index_start 0, dann muss index zwischen 0 und ingres_num_fields() - 1 liegen.

Rückgabewerte

ingres_field_nullable() gibt true zurück, falls in dieser Spalte null-Werte zugelasssen sind und false, falls das nicht erlaubt ist.

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Gibt die Genauigkeit eines Feldes zurück

  • « ingres_field_nullable
  • ingres_field_scale »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt die Genauigkeit eines Feldes zurück

ingres_field_precision

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_field_precision — Gibt die Genauigkeit eines Feldes zurück

Beschreibung

ingres_field_precision ( resource $result , int $index ) : int

ingres_field_precision() gibt die Genauigkeit eines Feldes zurück. Dieser Rückgabewert wird nur für Dezimalzahlen, Fließkommazahlen und monetäre SQL-Datentypen benutzt. Detaillierte Information sind dem OpenAPI User Guide der Ingres-Dokumentation, Anhang "Data Types", zu entnehmen.

Hinweis: Verwandte Konfigurationen

Siehe ingres.array_index_start der Laufzeit-Konfiguration

Parameter-Liste

result

Die Ergebniskennung

index

index ist das Feld, dessen Typ ermittelt werden soll.

Die möglichen Werte für index hängen vom Wert von ingres.array_index_start ab. Ist ingres.array_index_start gleich 1 (die Voreinstellung), dann muss index zwischen 1 und dem Wert, der von ingres_num_fields() zurückgegeben wird, liegen. Ist ingres.array_index_start gleich 0, dann mussindex zwischen 0 und ingres_num_fields() - 1 liegen.

Rückgabewerte

Gibt die Genauigkeit eines Feldes als Integerwert zurück

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Gibt die Dezimalstellen eines Feldes zurück

  • « ingres_field_precision
  • ingres_field_type »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt die Dezimalstellen eines Feldes zurück

ingres_field_scale

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_field_scale — Gibt die Dezimalstellen eines Feldes zurück

Beschreibung

ingres_field_scale ( resource $result , int $index ) : int

ingres_field_scale() gibt Gibt die Dezimalstellen eines Feldes zurück. Dieser Rückgabewert wird nur für Dezimalzahlen benutzt. Nähere Informationen sind dem OpenAPI User Guide, Anhang "Data Types", in der Ingres-Dokumentation zu entnehmen.

Hinweis: Verwandte Konfigurationen

Siehe ingres.array_index_start der Laufzeit-Konfiguration

Parameter-Liste

result

Die Ergebniskennung

index

index ist das Feld, dessen Typ ermittelt werden soll.

Die möglichen Werte für index hängen vom Wert von ingres.array_index_start ab. Ist ingres.array_index_start gleich 1 (die Voreinstellung), dann muss index zwischen 1 und dem Wert, der von ingres_num_fields() zurückgegeben wird, liegen. Ist ingres.array_index_start gleich 0, dann mussindex zwischen 0 und ingres_num_fields() - 1 liegen.

Rückgabewerte

Gibt die Dezimalstellen eines Feldes als Integerwert zurück

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Gibt den Typ eines Feldes in einer Ergebnismenge zurück

  • « ingres_field_scale
  • ingres_free_result »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt den Typ eines Feldes in einer Ergebnismenge zurück

ingres_field_type

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_field_type — Gibt den Typ eines Feldes in einer Ergebnismenge zurück

Beschreibung

ingres_field_type ( resource $result , int $index ) : string

Gibt den Typ eines Feldes in einer Ergebnismenge zurück.

Hinweis: Verwandte Konfigurationen

siehe ingres.array_index_start der Laufzeit-Konfiguration

Parameter-Liste

result

Die Ergebniskennung

index

index ist das Feld, dessen Typ ermittelt werden soll.

Die möglichen Werte für index hängen vom Wert von ingres.array_index_start ab. Ist ingres.array_index_start gleich 1 (die Voreinstellung), dann muss index zwischen 1 und dem Wert, der von ingres_num_fields() zurückgegeben wird, liegen. Ist ingres.array_index_start gleich 0, dann mussindex zwischen 0 und ingres_num_fields() - 1 liegen.

Rückgabewerte

ingres_field_type() gibt den Typ eines Feldes in einer Ergebnismenge zurück. Im Fehlerfall wird false zurückgegeben. Beispiele von Rückgabewerten sind: IIAPI_BYTE_TYPE, IIAPI_CHA_TYPE, IIAPI_DTE_TYPE, IIAPI_FLT_TYPE, IIAPI_INT_TYPE, IIAPI_VCH_TYPE. Einige dieser Typen können, in Abhängigkeit von der Feldlänge, mehrere SQL-Typen umfassen (siehe ingres_field_length()). Beispielsweise kann IIAPI_FLT_TYPE entweder float4 oder float8 sein. Genauere Informationen darüber sind dem OpenAPI User Guide, Anhang "Data Types", in der Ingres-Dokumentation zu entnehmen.

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Gibt den durch ein Ergebnis belegten Speicher frei

  • « ingres_field_type
  • ingres_next_error »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt den durch ein Ergebnis belegten Speicher frei

ingres_free_result

(PECL ingres >= 2.0.0)

ingres_free_result — Gibt den durch ein Ergebnis belegten Speicher frei

Beschreibung

ingres_free_result ( resource $result ) : bool

Parameter-Liste

result

Die Ergebniskennung einer Abfrage

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Den Speicherplatz eines Ergebnisses freigeben

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
ingres_free_result($result);

ingres_close($link)

?>

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server


Ermittelt den nächsten Ingres-Fehler

  • « ingres_free_result
  • ingres_num_fields »
  • PHP Manual
  • Ingres-Funktionen
  • Ermittelt den nächsten Ingres-Fehler

ingres_next_error

(PECL ingres >= 2.0.0)

ingres_next_error — Ermittelt den nächsten Ingres-Fehler

Beschreibung

ingres_next_error ( resource $link = ? ) : bool

Gibt den nächsten Ingres-Fehler nach der zuletzt ausgeführten Abfrage zurück. Nach jedem Aufruf von ingres_next_error() kann mit ingres_errno(), ingres_error() oder ingres_errsqlstate() der Fehlercode beziehungsweise die Fehlerbeschreibung oder der SQL-Status abgefragt werden. Solange ingres_next_error() true zurückgibt, gibt es weitere Fehler.

Parameter-Liste

link

Die Verbindungskennung

Rückgabewerte

ingres_next_error() gibt true zurück, wenn weitere Fehler abzufragen sind und false wenn es keine Fehler mehr gibt.

Siehe auch

  • ingres_errno() - Gibt den letzten Ingres-Fehlercode zurück
  • ingres_error() - Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück
  • ingres_errsqlstate() - Gibt den letzten Fehlercode von SQLSTATE zurück


Gibt die Anzahl der Felder der letzten Abfrage zurück

  • « ingres_next_error
  • ingres_num_rows »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt die Anzahl der Felder der letzten Abfrage zurück

ingres_num_fields

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_num_fields — Gibt die Anzahl der Felder der letzten Abfrage zurück

Beschreibung

ingres_num_fields ( resource $result ) : int

ingres_num_fields() liefert die Anzahl der Felder in der Ergebnismenge zurück, die vom Ingres-Server nach einem Aufruf von ingres_query() zurückgegeben wurde.

Parameter-Liste

result

Die Ergebniskennung

Rückgabewerte

Gibt die Anzahl der Felder zurück

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Gibt die Anzahl der Datensätze der Ergebnismenge oder die Anzahl der von der letzten Abfrage betroffenen Datensätze zurück

  • « ingres_num_fields
  • ingres_pconnect »
  • PHP Manual
  • Ingres-Funktionen
  • Gibt die Anzahl der Datensätze der Ergebnismenge oder die Anzahl der von der letzten Abfrage betroffenen Datensätze zurück

ingres_num_rows

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_num_rows — Gibt die Anzahl der Datensätze der Ergebnismenge oder die Anzahl der von der letzten Abfrage betroffenen Datensätze zurück

Beschreibung

ingres_num_rows ( resource $result ) : int

Diese Funktion dient hauptsächlich dazu, die Anzahl der veränderten Datensätze in einer Datenbank festzustellen. Sie kann aber auch dazu verwendet werden, die Anzahl der Datensätze zu ermitteln, die von einem SELECT geholt werden.

Hinweis:

Falls scrollable cursors deaktiviert ist und diese Funktion aufgerufen wird, bevor ingres_fetch_array(), ingres_fetch_object(), oder ingres_fetch_row() aufgerufen werden, löscht der Server die Ergebnisdaten so dass das Skript sie nicht mehr auslesen kann.

Sie sollten stattdessen die Daten der Ergebnismenge mit einer dieser fetch-Funktionen in einer Schleife auslesen, solange, bis keine Datensätze mehr zum Lesen da sind und damit die Schleifenbedingung false wird.

Parameter-Liste

result

Die Ergebniskennung

Rückgabewerte

Bei delete-, insert- or update-Abfragen, gibt ingres_num_rows() die Anzahl der durch diese Abfragen betroffenen Datensätze zurück. Bei anderen Abfragen gibt ingres_num_rows() die Anzahl der Datensätze in der Ergebnismenge zurück.

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Öffnet eine persistente Verbindung zu einer Ingres-Datenbank

  • « ingres_num_rows
  • ingres_prepare »
  • PHP Manual
  • Ingres-Funktionen
  • Öffnet eine persistente Verbindung zu einer Ingres-Datenbank

ingres_pconnect

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_pconnect — Öffnet eine persistente Verbindung zu einer Ingres-Datenbank

Beschreibung

ingres_pconnect ( string $database = ? , string $username = ? , string $password = ? , array $options = ? ) : resource

Öffnet eine persistente Verbindung zu einer Ingres-Datenbank

Es gibt nur zwei Unterschiede zwischen dieser Funktion und ingres_connect(): Zum ersten: beim Verbindungsaufbau schaut die Funktion zuerst, ob schon eine geöffnete (persistente) Verbindung besteht, die mit denselben Parametern geöffnet wurde. Falls eine gefunden wird, wird eine Verbindungskennung zurückgegeben, anstatt eine neue Verbindung zu öffnen. Zum zweiten: Die Verbindung zum Ingres-Server wird nicht geschlossen wenn die Ausführung des Skripts beendet ist, sondern die Verbindung bleibt zum weiteren Gebrauch offen (ingres_close() schließt die Verbindungen, die mit ingres_pconnect() geöffnet wurden nicht). Darum wird diese Art der Verbindung 'persistent' genannt.

Parameter-Liste

database

Der Datenbankname. Dieser muss die folgende Syntax haben:

[vnode::]dbname[/svr_class]

username

Der Ingres-Benutzername

password

Das Passwort von username

options

Bei ingres_connect() finden Sie eine Liste der Optionen, die übergeben werden können.

Rückgabewerte

Bei Erfolg wird eine Ingres-Verbindungskennung zurückgegeben. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ingres_connect() - Öffnet eine Verbindung zu einem Ingres-II-Datenbankserver
  • ingres_close() - Schließt eine Ingres-II-Datenbankverbindung


Bereitet eine Abfrage zur späteren Ausführung vor

  • « ingres_pconnect
  • ingres_query »
  • PHP Manual
  • Ingres-Funktionen
  • Bereitet eine Abfrage zur späteren Ausführung vor

ingres_prepare

(PECL ingres >= 1.1.0)

ingres_prepare — Bereitet eine Abfrage zur späteren Ausführung vor

Beschreibung

ingres_prepare ( resource $link , string $query ) : mixed

Bereitet eine Abfrage zur Ausführung mit ingres_execute() vor.

Die Abfrage wird Teil der aktuell geöffneten Transaktion. Falls es aktuell keine offene Transaktion gibt, wird mit ingres_query() eine neue geöffnet. Geschlossen wird sie entweder mit ingres_commit(), wobei die gemachten Änderungen in die Datenbank geschrieben werden, oder mit ingres_rollback(), wobei die Änderungen verworfen werden. Wenn das Skript zuende ist, wird jede geöffnete Transaktion zurückgesetzt (indem die ingres_rollback() aufgerufen wird). Vor dem Öffnen einer neuen Transaktion kann auch ingres_autocommit() aufgerufen werden, so dass alle Änderungen sofort nach der Ausführung einer SQL-Abfrage committet werden.

Hinweis: Verwandte Konfigurationen

Siehe auch die Direktiven ingres.describe, ingres.scrollable und ingres.utf8 der Laufzeit-Konfiguration.

Parameter-Liste

link

Die Verbindungskennung

query

Eine gültige SQL-Abfrage (vgl. den SQL reference guide der Ingres-Dokumentation). Bei der Funktion ingres_query() ist bei dem Parameter query eine Liste der SQL-Kommandos zu finden, die nicht mit ingres_prepare() ausgeführt werden können.

Rückgabewerte

ingres_prepare() gibt eine Ergebniskennung zurück, die in der Funktion ingres_execute() verwendet wird, um die Abfrage auszuführen. Ob dabei ein Fehler auftrat, kann mit ingres_errno(), ingres_error() oder ingres_errsqlstate() ermittelt werden.

Siehe auch

  • ingres_unbuffered_query() - Sendet eine SQL-Abfrage an Ingres, ohne die Ergebniszeilen zu puffern
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array
  • ingres_commit() - Beendet eine Transaktion
  • ingres_rollback() - Setzt eine Transaktion zurück
  • ingres_autocommit() - Schaltet den autocommit-Modus an oder aus
  • ingres_set_environment() - Setzt Eigenschaften der Umgebung zur Ausgabesteuerung
  • ingres_errno() - Gibt den letzten Ingres-Fehlercode zurück
  • ingres_error() - Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück


Sendet eine SQL-Abfrage an den Ingres-Server

  • « ingres_prepare
  • ingres_result_seek »
  • PHP Manual
  • Ingres-Funktionen
  • Sendet eine SQL-Abfrage an den Ingres-Server

ingres_query

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_query — Sendet eine SQL-Abfrage an den Ingres-Server

Beschreibung

ingres_query ( resource $link , string $query , array $params = ? , string $types = ? ) : mixed

ingres_query() sendet die angegebene query an den Ingres-Server.

Die Abfrage wird zu einem Teil der aktuell offenen Transaktion. Falls keine Transaktion geöffnet ist, öffnet ingres_query() eine neue Transaktion. Um diese Transaktion zu schließen, kann entweder ingres_commit() aufrufen werden, um die gemachten Änderungen in die Datenbank zu schreiben, oder ingres_rollback(), um diese Änderungen zu verwerfen. Wenn das Skript beendet wird, wird jede offene Transaktion zurückgesetzt (indem die Funktion ingres_rollback() aufgerufen wird). Vor dem Öffnen einer neuen Transaktion kann auch ingres_autocommit() aufgerufen werden, so dass alle Änderungen sofort nach der Ausführung einer SQL-Abfrage committet werden.

Hinweis: Verwandte Konfigurationen

Schauen Sie sich ingres.describe, ingres.scrollable und ingres.utf8 an sowie die Direktiven zur Laufzeit Konfiguration.

Parameter-Liste

link

Die Verbindungskennung

query

Eine gültige SQL-Abfrage (mehr im Ingres SQL reference guide der Ingres-Dokumentation).

Daten in der Abfragen sollten ordnungsgemäß maskiert werden.

Folgende Arten von SQL-Abfragen können mit dieser Funktion nicht gesendet werden:

  • close (siehe ingres_close())
  • commit (siehe ingres_commit())
  • connect (siehe ingres_connect())
  • disconnect (siehe ingres_close())
  • get dbevent
  • prepare to commit
  • rollback (siehe ingres_rollback())
  • savepoint
  • set autocommit (siehe ingres_autocommit())
  • alle Abfragen, die sich auf Cursor beziehen, werden nicht unterstützt

params

Ein Array mit Parameterwerten, die in der Abfrage verwendet werden

types

Ein String, der eine Folge von Datentypen für die übergebenen Parameterwerte enthält. Wenn die Option ingres.describe aktiviert ist, kann dieser Parameter ignoriert werden, da die erwarteten Datentypen automatisch vom Server geholt werden.

Typ-Code | Ingres-Datentyp
a | BOOLEAN
b | BYTE
B | LONG BYTE/BLOB
c | CHAR
d | DATE/ANSIDATE/TIMESTAMP/TIME
f | FLOAT
i | INTEGER
L | LONG TEXT
m | MONEY
M | LONG NVARCHAR
n | NCHAR
N | NVARCHAR
t | TEXT
v | VARCHAR
V | LONG VARCHAR

Rückgabewerte

ingres_query() gibt im Erfolgsfall eine Ergebniskennung für die Abfrage zurück. Anderenfalls wird false zurückgegeben. Um festzustellen, ob es einen Fehler gab, sind ingres_errno(), ingres_error() oder ingres_errsqlstate() zu verwenden.

Beispiele

Beispiel #1 Eine einfache SELECT-Abfrage senden

<?php
$link = ingres_connect("demodb");

$result = ingres_query($link, "select * from user_profile");
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Beispiel #2 Abfrage-Parameter an ingres_query() übergeben

<?php
$link = ingres_connect("demodb");

$params[] = "Emma";
$query = "select * from user_profile where up_first = ?";
$result = ingres_query($link, $query, $params);
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Beispiel #3 Ein BLOB mit Parameter-Typen einfügen

<?php
$link = ingres_connect("demodb");

// Eine Bilddatei öffnen
$fh = fopen("photo.jpg","r");
$blob_data = stream_get_contents($fh);
fclose($fh);

// Parameter vorbereiten
$params[] = $blob_data;
$params[] = 1201;

// Parameter-Typen definieren
$param_types = "Bi";

$query = "update user_profile set up_image = ? where up_id = ?";
$result = ingres_query($link, $query , $params, $param_types);

if (ingres_errno())
{
    echo ingres_errno() . "-" . ingres_error() . "\n";
}

ingres_commit($link);

ingres_close($link);
?>

Siehe auch

  • ingres_unbuffered_query() - Sendet eine SQL-Abfrage an Ingres, ohne die Ergebniszeilen zu puffern
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array
  • ingres_commit() - Beendet eine Transaktion
  • ingres_rollback() - Setzt eine Transaktion zurück
  • ingres_autocommit() - Schaltet den autocommit-Modus an oder aus
  • ingres_set_environment() - Setzt Eigenschaften der Umgebung zur Ausgabesteuerung
  • ingres_errno() - Gibt den letzten Ingres-Fehlercode zurück
  • ingres_error() - Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück


Positioniert den Datensatzzeiger, bevor Daten geholt werden

  • « ingres_query
  • ingres_rollback »
  • PHP Manual
  • Ingres-Funktionen
  • Positioniert den Datensatzzeiger, bevor Daten geholt werden

ingres_result_seek

(PECL ingres >= 2.1.0)

ingres_result_seek — Positioniert den Datensatzzeiger, bevor Daten geholt werden

Beschreibung

ingres_result_seek ( resource $result , int $position ) : bool

Mit dieser Funktion kann die Position des Cursors, der mit der Ergebniskennung verknüpft ist, gesetzt werden, bevor Daten geholt werden. Falls ingres.array_index_start auf 0 gesetzt ist, hat die erste Zeile die Nummer 0, ansonsten die Nummer 1. ingres_result_seek() kann nur mit Abfragen verwendet werden, für die scrollable cursors gesetzt ist. Die Funktion kann nicht zusammen mit ingres_unbuffered_query() benutzt werden.

Hinweis: Verwandte Konfigurationen

Siehe auch die Direktiven ingres.scrollable und ingres.array_index_start der Laufzeit-Konfiguration.

Parameter-Liste

result

Die Ergebniskennung einer Abfrage

position

Die Zeilenposition, auf die der Cursor gesetzt werden soll. Falls ingres.array_index_start den Wert 0 hat, hat die erste Zeile die Nummer 0, ansonsten die Nummer 1.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Positioniere den Cursor auf die dritte Zeile

<?php

$result=ingres_query($link, "select * from airport where ap_ccode = 'ES' order by ap_place asc");

/* gehe zu Zeile 3 */
if (!ingres_result_seek($result, 3))
{
    echo ingres_errno() . " - " . ingres_error . "\n";
    die("Skript beendet");
}
else
{
    $airport = ingres_fetch_object ($result);
    {
        echo $airport->ap_iatacode . " - " .  $airport->ap_name . "\n";
    }
}

ingres_commit($link);

?>

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array


Setzt eine Transaktion zurück

  • « ingres_result_seek
  • ingres_set_environment »
  • PHP Manual
  • Ingres-Funktionen
  • Setzt eine Transaktion zurück

ingres_rollback

(PHP 4 >= 4.0.2, PHP 5 < 5.1.0, PECL ingres >= 1.0.0)

ingres_rollback — Setzt eine Transaktion zurück

Beschreibung

ingres_rollback ( resource $link ) : bool

ingres_rollback() setzt die aktuell geöffnete Transaktion zurück und macht alle Änderungen, die in der Transaktion bereits durchgeführt wurden, wieder rückgängig.

Diese Funktion schließt die Transaktion. Eine neue Transaktion kann mit ingres_query() geöffnet werden.

Parameter-Liste

link

Die Verbindungskennung

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_commit() - Beendet eine Transaktion
  • ingres_autocommit() - Schaltet den autocommit-Modus an oder aus


Setzt Eigenschaften der Umgebung zur Ausgabesteuerung

  • « ingres_rollback
  • ingres_unbuffered_query »
  • PHP Manual
  • Ingres-Funktionen
  • Setzt Eigenschaften der Umgebung zur Ausgabesteuerung

ingres_set_environment

(PECL ingres >= 1.2.0)

ingres_set_environment — Setzt Eigenschaften der Umgebung zur Ausgabesteuerung

Beschreibung

ingres_set_environment ( resource $link , array $options ) : bool

ingres_set_environment() wird aufgerufen, um die Optionen zur Ausgabe bestimmter Werte in Ingres zu steuern, beispielsweise für Zeitzonen, Datumsformate, Dezimaltrennzeichen und die Genauigkeit von Fließkommazahlen.

Parameter-Liste

link

Die Verbindungskennung

options

Ein numerisches array mit Name-Wert-Paaren für die Optionen. In der folgenden Tabelle sind die Namen und die erwarteten Werte aufgelistet.

Name der Option | Typ der Option | Beschreibung | Beispiel
date_century_boundary | integer | Der Schwellwert, anhand dessen geprüft wird, ob eine zweistellige Jahreszahl im aktuellen oder im kommenden Jahrhundert liegt. Äquivalent zu II_DATE_CENTURY_BOUNDARY. | 50
timezone | string | Bestimmt die Zeitzone der Datenbanksitzung. Falls die Option nicht angegeben wurde, wird der Wert von II_TIMEZONE_NAME benutzt. Falls dort auch nichts definiert ist, wird NA-PACIFIC (GMT-8 mit Sommerzeit) benutzt. | UNITED-KINGDOM
date_format integer

Bestimmt die erlaubten Ein- und Ausgabeformate für das Datum in Ingres. Falls nichts angegeben ist, werden die Formate von II_DATE_FORMAT benutzt. Falls dort auch nichts definiert wurde, ist US (mm/dd/yy) das Standardformat. Gültige Werte für date_format sind:

  • INGRES_DATE_DMY
  • INGRES_DATE_FINISH
  • INGRES_DATE_GERMAN
  • INGRES_DATE_ISO
  • INGRES_DATE_ISO4
  • INGRES_DATE_MDY
  • INGRES_DATE_MULTINATIONAL
  • INGRES_DATE_MULTINATIONAL4
  • INGRES_DATE_YMD
  • INGRES_DATE_US

 INGRES_DATE_ISO4
decimal_separator string Das Dezimaltrennzeichen ","
money_lort integer

Führendes oder angehängtes Währungssymbol. Gültige Werte für money_lort sind:

  • INGRES_MONEY_LEADING
  • INGRES_MONEY_TRAILING

 INGRES_MONEY_LEADING
money_sign string Das Währungssymbol, das mit dem Datentyp MONEY benutzt wird. €
money_precision | integer | Die Genauigkeit des Datentyps MONEY | 2
float4_precision | integer | Die Genauigkeit des Datentyps FLOAT4 | 10
float8_precision | integer | Die Genauigkeit des Datentyps FLOAT8 | 10
blob_segment_length | integer | Die Datenmenge in Bytes, die in einem Zugriff aus einem BLOB/CLOB gelesen werden kann. Falls nichts anderes angegeben wurde, ist der Vorgabewert 4096 Bytes. | 8192

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Datumsformat auf ISO4 setzen

<?php
$options = array( "date_format" => INGRES_DATE_ISO4 );

if (ingres_set_environment($link, $options))
{
    $result=ingres_query($link,"select date('now') as date");

    while ( $object = ingres_fetch_object ($result) ) {
        echo $object->date."\n";
    }
}
?>

Beispiel #2 Die Zeitzone auf HONG-KONG setzen

<?php

$options = array( "timezone" => "HONG-KONG");

if (ingres_set_environment($link, $options))
{
    $result=ingres_query($link,"select date('now') as date");

    while ( $object = ingres_fetch_object ($result) ) {
        echo $object->date."\n";
    }
}
?>

Siehe auch

  • ingres_connect() - Öffnet eine Verbindung zu einem Ingres-II-Datenbankserver
  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server


Sendet eine SQL-Abfrage an Ingres, ohne die Ergebniszeilen zu puffern

  • « ingres_set_environment
  • Mongo »
  • PHP Manual
  • Ingres-Funktionen
  • Sendet eine SQL-Abfrage an Ingres, ohne die Ergebniszeilen zu puffern

ingres_unbuffered_query

(No version information available, might only be in Git)

ingres_unbuffered_query — Sendet eine SQL-Abfrage an Ingres, ohne die Ergebniszeilen zu puffern

Beschreibung

ingres_unbuffered_query ( resource $link , string $query , array $params = ? , string $types = ? ) : mixed

ingres_unbuffered_query() sendet die angegebene query an den Ingres-Server.

Die Abfrage wird Teil der aktuell geöffneten Transaktion. Falls es aktuell keine offene Transaktion gibt, wird mit ingres_unbuffered_query() eine geöffnet. Geschlossen wird sie entweder mit ingres_commit(), wobei die gemachten Änderungen in die Datenbank geschrieben werden, oder mit ingres_rollback(), wobei die Änderungen verworfen werden. Wenn das Skript zuende ist, wird jede geöffnete Transaktion zurückgesetzt (indem die ingres_rollback() aufgerufen wird). Sie können vor dem Öffnen einer neuen Transaktion ingres_autocommit() ausführen, danach werden alle Änderungen sofort nach der Ausführung einer SQL-Abfrage committet. Ingres erlaubt zum selben Zeitpunkt nur eine einzige aktive ungepufferte Abfrage. Jede andere aktive ungepufferte Abfrage wird geschlossen, bevor noch eine SQL-Abfrage gesendet werden kann. Außerdem kann der Datensatzzeiger vor dem Auslesen nicht mit ingres_result_seek() positioniert werden.

Hinweis: Verwandte Konfigurationen

Siehe auch die Direktiven ingres.describe und ingres.utf8 der Laufzeit-Konfiguration.

Parameter-Liste

link

Die Verbindungskennung

query

Eine gültige SQL-Abfrage (siehe im SQL reference guide der Ingres-Dokumentation). Bei der Funktion ingres_query() finden Sie bei dem Parameter query eine Liste der SQL-Kommandos, die nicht mit ingres_unbuffered_query() ausgeführt werden können.

Daten in der Abfrage sollten ordnungsgemäß maskiert werden.

params

Ein Array mit den Parameterwerten für die Abfrage

types

Ein String, der eine Folge von Datentypen für die übergebenen Parameterwerte enthält. Eine Liste der Typ-Codes finden Sie bei der Funktion ingres_query(). Bei der Funktion ingres_query() finden Sie bei dem Parameter types eine Liste der Typ-Codes.

Rückgabewerte

ingres_unbuffered_query() gibt eine Ergebniskennung zurück, sofern Zeilen gelesen werden können, anderenfalls wird false zurückgegeben. Das ist beispielsweise bei einem INSERT-, UPDATE- oder DELETE-Kommando der Fall. Um festzustellen, ob es einen Fehler gab, benutzt man die Funktionen ingres_errno(), ingres_error() oder ingres_errsqlstate().

Beispiele

Beispiel #1 Ein einfaches ungepuffertes SELECT-Kommando senden

<?php
$link = ingres_connect("demodb");

$result = ingres_unbuffered_query($link, "select * from user_profile");
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Beispiel #2 Abfrageparameter an ingres_unbuffered_query() übergeben

<?php
$link = ingres_connect("demodb");

$params[] = "Emma";
$query = "select * from user_profile where up_first = ?";
$result = ingres_unbuffered_query($link, $query, $params);
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Beispiel #3 Ein BLOB mit Parameter-Typen einfügen

<?php
$link = ingres_connect("demodb");

// Eine Bilddatei öffnen
$fh = fopen("photo.jpg","r");
$blob_data = stream_get_contents($fh);
fclose($fh);

// Parameter vorbereiten
$params[] = $blob_data;
$params[] = 1201;

// Parameter-Typen definieren
$param_types = "Bi";

$query = "update user_profile set up_image = ? where up_id = ?";
$result = ingres_unbuffered_query($link, $query , $params, $param_types);

if (ingres_errno())
{
    echo ingres_errno() . "-" . ingres_error() . "\n";
}
?>

Siehe auch

  • ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
  • ingres_fetch_array() - Liest eine Zeile der Ergebnismenge in ein Array ein
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Gibt eine Zeile der Ergebnismenge als Objekt zurück
  • ingres_fetch_row() - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array
  • ingres_commit() - Beendet eine Transaktion
  • ingres_rollback() - Setzt eine Transaktion zurück
  • ingres_autocommit() - Schaltet den autocommit-Modus an oder aus
  • ingres_set_environment() - Setzt Eigenschaften der Umgebung zur Ausgabesteuerung
  • ingres_errno() - Gibt den letzten Ingres-Fehlercode zurück
  • ingres_error() - Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück


MongoDB driver (legacy)

  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
  • Vordefinierte Konstanten
  • Manual
    • Tutorial
    • Read Preferences
    • Write Concerns
    • SQL to Mongo Mapping Chart
    • Connecting
    • Stream Context Options
    • Writes
    • Querying
    • Updates
    • Security
    • Troubleshooting
    • Running the Driver's Tests
  • Core Classes
    • MongoClient — The MongoClient class
    • MongoDB — The MongoDB class
    • MongoCollection — The MongoCollection class
    • MongoCursor — The MongoCursor class
    • MongoCursorInterface — The MongoCursorInterface interface
    • MongoCommandCursor — The MongoCommandCursor class
  • Types
    • MongoId — The MongoId class
    • MongoCode — The MongoCode class
    • MongoDate — The MongoDate class
    • MongoRegex — The MongoRegex class
    • MongoBinData — The MongoBinData class
    • MongoInt32 — The MongoInt32 class
    • MongoInt64 — The MongoInt64 class
    • MongoDBRef — The MongoDBRef class
    • MongoMinKey — The MongoMinKey class
    • MongoMaxKey — The MongoMaxKey class
    • MongoTimestamp — The MongoTimestamp class
  • GridFS Classes
    • MongoGridFS — The MongoGridFS class
    • MongoGridFSFile — The MongoGridFSFile class
    • MongoGridFSCursor — The MongoGridFSCursor class
  • Batch Classes
    • MongoWriteBatch — The MongoWriteBatch class
    • MongoInsertBatch — The MongoInsertBatch class
    • MongoUpdateBatch — The MongoUpdateBatch class
    • MongoDeleteBatch — The MongoDeleteBatch class
  • Miscellaneous
    • MongoLog — The MongoLog class
    • MongoPool — The MongoPool class
    • Mongo — The Mongo class [deprecated]
  • Mongo Funktionen
    • bson_decode — Deserializes a BSON object into a PHP array
    • bson_encode — Serializes a PHP variable into a BSON string
  • Exceptions
    • MongoException — The MongoException class
    • MongoResultException — The MongoResultException class
    • MongoCursorException — The MongoCursorException class
    • MongoCursorTimeoutException — The MongoCursorTimeoutException class
    • MongoConnectionException — The MongoConnectionException class
    • MongoGridFSException — The MongoGridFSException class
    • MongoDuplicateKeyException — The MongoDuplicateKeyException class
    • MongoProtocolException — The MongoProtocolException class
    • MongoExecutionTimeoutException — The MongoExecutionTimeoutException class
    • MongoWriteConcernException — The MongoWriteConcernException class
  • Changelog


Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation
  • Laufzeit-Konfiguration
Warnung

This extension is deprecated. Instead, the MongoDB extension should be used.


Installation

Warnung

This extension is deprecated. Instead, the MongoDB extension should be used.

The MongoDB PHP driver should work on nearly any system: Windows, macOS, Unix, and Linux; little- and big-endian machines; 32- and 64-bit machines; PHP 5.3 through 5.6 (versions prior to 1.6 also support PHP 5.2).

Diese » PECL-Extension ist nicht Teil von PHP.

  • Manual Installation
  • Installing on *NIX
  • Installing on Windows
  • macOS
  • Gentoo
  • Red Hat
  • Third-Party Installation Instructions

Manual Installation

For driver developers and people interested in the latest bugfixes, you can compile the driver from the latest source code on » Github. Go to Github and click the "download" button. Then run:

$ tar zxvf mongo-php-driver-legacy-<commit_id>.tar.gz
$ cd mongo-php-driver-legacy-<commit_id>
$ phpize
$ ./configure
$ make all
$ sudo make install

Make the following changes to php.ini:

  • Make sure the extension_dir variable is pointing to the directory containing mongo.so. The build will display where it is installing the PHP driver with output that looks something like:

    Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/mongo.so'
    Make sure that it is the same as the PHP extension directory by running:
    $ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20060613 =>
                   /usr/lib/php/extensions/no-debug-non-zts-20060613
    If it's not, change the extension_dir in php.ini or move mongo.so.

  • To load the extension on PHP startup, add a line:

    extension=mongo.so

Installing on *NIX

Run:

$ sudo pecl install mongo

Add the following line to your php.ini file:

extension=mongo.so

If pecl runs out of memory while installing, make sure memory_limit in php.ini is set to at least 128MB.

Installing on Windows

Precompiled binaries for each release are available from » PECL for a variety of combinations of versions, thread safety, and VC libraries. Unzip the archive and put php_mongo.dll in your PHP extension directory ("ext" by default).

Add the following line to your php.ini file:

extension=php_mongo.dll

Hinweis: Additional DLL dependencies for Windows Users

Diese Extension benötigt DLL-Dateien. die für Windows verfügbar seien müssen. Der FAQ-Eintrag " Wie füge ich unter Windows PATH mein PHP-Verzeichnis hinzu?" gibt hierzu weitere Informationen. Obwohl ein einfaches Kopieren der DLL-Dateien vom PHP-Verzeichnis in den Windows-Systemordner auch funktioniert (weil der Systemordner immer im PATH enthalten ist), ist dieses Vorgehen nicht empfehlenswert. Diese Extension benötigt die folgenden Dateien im PATH: libsasl.dll

macOS

In most cases installing from PECL is the easiest way:

$ sudo pecl install mongo

If your system has multiple version of PHP installed (e.g. macOS default, Homebrew, » XAMPP), note that that each version of PHP has its own pecl command and php.ini file.

Hinweis: Xcode dependency for compiling on macOS

Compiling the driver on macOS will require Xcode developer tools, which may be installed with xcode-select --install. If that command is not available, you may first need to install the » Command Line Tools package.

Gentoo

Gentoo has a package for the PHP PECL driver called dev-php/pecl-mongo, which can be installed with:

$ sudo emerge -va dev-php/pecl-mongo

If you use PECL, you may get an error that libtool is the wrong version. Compiling from source you'll need to run aclocal and autoconf.

$ phpize
$ aclocal
$ autoconf
$ ./configure
$ make
$ sudo make install

Red Hat

This includes Fedora and CentOS.

The default Apache settings on these systems do not let requests make network connections, meaning that the driver will get "Permission denied" errors when it tries to connect to the database. If you run into this, try running:

$ /usr/sbin/setsebool -P httpd_can_network_connect 1
Then restart Apache. (This issue has also occurred with SELinux.)

Third-Party Installation Instructions

A number of people have created excellent tutorials on installing the PHP driver.

  • » (Re)installing PHP on macOS

    This article by Justin Hileman details the process of installing PHP and additional extensions with Homebrew on macOS. This complements the earlier instructions on this page for installing the driver with Homebrew.

  • » PHP 5.3.1 with Xdebug, MongoDB and Lithium on Ubuntu 9.10 / Apache 2.2

    This screencast by Jon Adams demonstrates how to quickly get up and running with PHP 5.3.1, Xdebug, and MongoDB on Ubuntu 9.10 with Apache.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Mongo Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
mongo.allow_empty_keys | 0 | PHP_INI_ALL |
mongo.allow_persistent | 1 | PHP_INI_ALL | Removed in 1.2.0
mongo.chunk_size | 262144 | PHP_INI_ALL |
mongo.cmd | "$" | PHP_INI_ALL |
mongo.default_host | "localhost" | PHP_INI_ALL |
mongo.default_port | 27017 | PHP_INI_ALL |
mongo.is_master_interval | 15 | PHP_INI_ALL | Added in 1.2.10, before 1.3.0 the default value was 60.
mongo.long_as_object | 0 | PHP_INI_ALL |
mongo.native_long | 1 | PHP_INI_ALL | Before 1.5.0, the default value was 0.
mongo.ping_interval | 5 | PHP_INI_ALL | Added in 1.2.10
mongo.utf8 | 1 | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

mongo.allow_empty_keys int

Added in version 1.0.11.

If empty strings ("") should be allowed as key names. By default, the driver will throw an exception if you attempt to pass the empty string as a key to the database. It is extremely easy to do this inavertently by using double quotes with $-operators, so it is recommended that you leave this setting as default. However, if you need to save keys that are empty strings, you can set this option to true and the driver will allow you to pass empty strings to the database.

mongo.allow_persistent int

If persistent connections are allowed. (Removed in 1.2.0 - all connections are now persistent).

mongo.chunk_size int

The number of bytes-per-chunk. Used in divvying up GridFS files. This number must be at least 100 less than 4 megabytes (max: 4194204) and it is recommended that it be less than that.

mongo.cmd string

A character to be used in place of $ in modifiers and comparisons.

As it is easy to forget to escape the "$", you can also choose your own special character to use instead of '$'. Choose a character that will not occur in your key names, e.g. ":":

mongo.cmd = ":"

Then, to do a comparison, for example:

<?php

$query = array( "i" => array( ":gt" => 20, ":lte" => 30 ) );

?>

You can also change it in your code using ini_set("mongo.cmd", ":"). Of course, you can also just use single quotes or backslash-escape the $.

mongo.default_host string

Default hostname when nothing is passed to the constructor.

mongo.default_port string

The default TCP port number to use when connecting to the database server if no other port is specified. The database's default is 27017.

mongo.is_master_interval int

Added in version 1.2.10.

For replicaset connections: The minimum interval with which the driver will send "isMaster" requests to the MongoDB server. If the value is lower, there will be more requests, but the driver finds faster whether the topology of the replicaset has been changed.

mongo.long_as_object int

Return a BSON_LONG as an instance of MongoInt64 (instead of a primitive type).

mongo.native_long int

The default behavior for this has been changed to true in 1.5.0, so make sure to set this variable to the value you want (probably true) so that the driver's behavior doesn't suddenly change when you upgrade.

On 64-bit platforms, the mongo.native_long setting allows for 64-bit integers to be stored in MongoDB. If it is not set, only 32-bits of the integer will be saved. The MongoDB data type that is used in this case is the BSON LONG, instead of the BSON INT that is used if this setting is turned off.

The setting also changes the way how BSON LONGs behave when they are read back from MongoDB. Without mongo.native_long enabled, the driver would convert every BSON LONG to a PHP double which can result in a loss of precision.

On 32-bit platforms, the mongo.native_long setting changes nothing for storing integers in MongoDB: the integer is stored as a BSON INT as before. However, when the setting is enabled and a BSON LONG is read from MongoDB a MongoCursorException is thrown alerting you that the data could not be read back without losing precision.

On 32-bit systems especially, it is recommended that you combine this with enabling mongo.long_as_object.

mongo.ping_interval int

Added in version 1.2.10.

For replicaset connections: The minimum interval with which the driver will send "ping" requests to the MongoDB server. If the value is lower, there will be more pings, but the driver finds faster whether a node is no longer reachable from the replicaset.

mongo.utf8 int

If an exception should be thrown for non-UTF8 strings. Until version 1.0.4, the PHP driver would ignore non-UTF8 strings, even though you're not supposed to insert them. As of 1.0.4, the driver throws a MongoException. To ease the transition for applications that insert non-UTF8 strings, you can turn this option off to emulate the old, non-exception-throwning behavior. This option will be eliminated and exceptions always thrown for non-UTF8 strings starting with version 1.1.0.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

MONGO_STREAMS (int)
Alias of MONGO_SUPPORTS_STREAMS
MONGO_SUPPORTS_STREAMS (int)
1 when compiled against PHP Streams (default since 1.4.0).
MONGO_SUPPORTS_SSL (int)
1 when OpenSSL is enabled and available.
MONGO_SUPPORTS_AUTH_MECHANISM_MONGODB_CR (int)
1 when MongoDB-Challenge/Reponse authentication is compiled in.
MONGO_SUPPORTS_AUTH_MECHANISM_MONGODB_X509 (int)
1 when x.509 authentication is compiled in.
MONGO_SUPPORTS_AUTH_MECHANISM_GSSAPI (int)
1 when GSSAPI authentication is compiled in.
MONGO_SUPPORTS_AUTH_MECHANISM_PLAIN (int)
1 when PLAIN authentication is compiled in.
MONGO_STREAM_NOTIFY_TYPE_IO_INIT (int)
MONGO_STREAM_NOTIFY_TYPE_LOG (int)
MONGO_STREAM_NOTIFY_IO_READ (int)
MONGO_STREAM_NOTIFY_IO_WRITE (int)
MONGO_STREAM_NOTIFY_IO_PROGRESS (int)
MONGO_STREAM_NOTIFY_IO_COMPLETED (int)
MONGO_STREAM_NOTIFY_LOG_INSERT (int)
MONGO_STREAM_NOTIFY_LOG_QUERY (int)
MONGO_STREAM_NOTIFY_LOG_UPDATE (int)
MONGO_STREAM_NOTIFY_LOG_DELETE (int)
MONGO_STREAM_NOTIFY_LOG_GETMORE (int)
MONGO_STREAM_NOTIFY_LOG_KILLCURSOR (int)
MONGO_STREAM_NOTIFY_LOG_BATCHINSERT (int)
MONGO_STREAM_NOTIFY_LOG_RESPONSE_HEADER (int)
MONGO_STREAM_NOTIFY_LOG_WRITE_REPLY (int)
MONGO_STREAM_NOTIFY_LOG_CMD_INSERT (int)
MONGO_STREAM_NOTIFY_LOG_CMD_UPDATE (int)
MONGO_STREAM_NOTIFY_LOG_CMD_DELETE (int)
MONGO_STREAM_NOTIFY_LOG_WRITE_BATCH (int)


Manual

Inhaltsverzeichnis

  • Tutorial
  • Read Preferences
  • Write Concerns
  • SQL to Mongo Mapping Chart
  • Connecting
  • Stream Context Options
  • Writes
  • Querying
  • Updates
  • Security
  • Troubleshooting
  • Running the Driver's Tests
Warnung

This extension is deprecated. Instead, the MongoDB extension should be used.

This manual goes into some detail about how to use MongoDB, but it mostly covers using the PHP driver. For information about how to design a schema, what terms means, and setting up the database server, check out the » MongoDB documentation.


Tutorial

Inhaltsverzeichnis

  • Making a Connection
  • Getting a Database
  • Getting A Collection
  • Inserting a Document
  • Finding Documents using MongoCollection::findOne
  • Adding Multiple Documents
  • Counting Documents in A Collection
  • Using a Cursor to Get All of the Documents
  • Setting Criteria for a Query
  • Getting A Set of Documents With a Query
  • Creating An Index
Warnung

This extension is deprecated. Instead, the MongoDB extension should be used.

This is the official MongoDB driver for PHP.

Here's a quick code sample that connects, inserts documents, queries for documents, iterates through query results, and disconnects from MongoDB. There are more details on each step in the tutorial below.

<?php

// connect
$m = new MongoClient();

// select a database
$db = $m->comedy;

// select a collection (analogous to a relational database's table)
$collection = $db->cartoons;

// add a record
$document = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert($document);

// add another record, with a different "shape"
$document = array( "title" => "XKCD", "online" => true );
$collection->insert($document);

// find everything in the collection
$cursor = $collection->find();

// iterate through the results
foreach ($cursor as $document) {
    echo $document["title"] . "\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Calvin and Hobbes
XKCD


Making a Connection

To connect to the database server, use one of the following:

<?php
$connection = new MongoClient(); // connects to localhost:27017
$connection = new MongoClient( "mongodb://example.com" ); // connect to a remote host (default port: 27017)
$connection = new MongoClient( "mongodb://example.com:65432" ); // connect to a remote host at a given port
?>

You do not have to explicitly disconnect from the database. The driver uses persistent connections and will re-use already established connections.

See Also

The chapter on connecting covers different types of connections.

The API documentation on the MongoClient class and MongoClient::__construct() give a comprehensive look at all possible options with a number of examples.


Getting a Database

To select a database, use:

<?php
$connection = new MongoClient();
$db = $connection->dbname;
?>

The database does not need to be created in advance, you can create new databases by selecting them.

Be careful of typos! You can inadvertently create a new database, which can cause confusing errors (here name is misspelled as anme in the second selection:

<?php
$connection = new MongoClient();

$db = $connection->mybiglongdbname;
// do some stuff

$db = $connection->mybiglongdbanme;
// now connected to a different database!
?>

See Also

The API documentation on the MongoDB class contains more information about database objects.


Getting A Collection

Getting a collection has the same syntax as getting a database:

<?php
$connection = new MongoClient();
$db = $connection->baz;

// select a collection:
$collection = $db->foobar;

// or, directly selecting a database and collection:
$collection = $connection->baz->foobar;
?>

A collection is analogous to a table (if you are familiar with relational databases).

See Also

The API documentation on the MongoCollection class contains more information about collection objects.


Inserting a Document

Associative arrays are the basic object that can be saved to a collection in the database. A somewhat random "document" might be:

<?php
$doc = array(
    "name" => "MongoDB",
    "type" => "database",
    "count" => 1,
    "info" => (object)array( "x" => 203, "y" => 102),
    "versions" => array("0.9.7", "0.9.8", "0.9.9")
);
?>

Note that you can have nested arrays and objects. The driver will always store an associative array as an object in the database. A numerically indexed array is stored as an array in case the keys start at 0 and are not interrupted, and as an object if the array keys don't start at 0 or have gaps (ie: 0, 1, 4, 5).

To insert this document, use MongoCollection::insert():

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$collection->insert( $doc );
?>

See Also

The API documentation on MongoCollection::insert() contains more information about inserting data.


Finding Documents using MongoCollection::findOne

  • « Inserting a Document
  • Adding Multiple Documents »
  • PHP Manual
  • Tutorial
  • Finding Documents using MongoCollection::findOne

Finding Documents using MongoCollection::findOne()

To show that the document we inserted in the previous step is stored in the database, we can do a simple MongoCollection::findOne() operation to get a single document from the collection. This method is useful when there is only one document matching the query or you are only interested in one result.

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$document = $collection->findOne();
var_dump( $document );
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(6) {
  ["_id"]=>
  object(MongoId)#8 (1) {
    ["$id"]=>
    string(24) "4e2995576803fab768000000"
  }
  ["name"]=>
  string(7) "MongoDB"
  ["type"]=>
  string(8) "database"
  ["count"]=>
  int(1)
  ["info"]=>
  array(2) {
    ["x"]=>
    int(203)
    ["y"]=>
    int(102)
  }
  ["versions"]=>
  array(3) {
    [0]=>
    string(5) "0.9.7"
    [1]=>
    string(5) "0.9.8"
    [2]=>
    string(5) "0.9.9"
  }
}

Note that there is an _id field that has been added automatically to your document. _id is the "primary key" field. If your document does not specify one, the driver will add one automatically.

If you specify your own _id field, it must be unique to the collection. See the example here:

<?php
$connection = new MongoClient();
$db = $connection->database;

$db->foo->insert(array("_id" => 1));
// this will throw an exception
$db->foo->insert(array("_id" => 1));

// this is fine, as it is a different collection
$db->bar->insert(array("_id" => 1));
?>

By default the driver will ensure the server has acknowledged the write before returning. You can optionally turn this behaviour off by passing array("w" => 0) as the second argument. This means that the driver should not wait for the database to acknowledge the write and would not throw the duplicate _id exception.

See Also

MongoCollection::findOne() for more information about finding data.

MongoId goes into more detail on unique ids.

The writes section covers writes in more depth, and the Write Concerns chapter goes into details of the various Write Concern options.


Adding Multiple Documents

In order to do more interesting things with queries, let's add multiple simple documents to the collection. These documents will just be of the form array( "i" => value ); and we can do this fairly efficiently in a loop:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

for ( $i = 0; $i < 100; $i++ )
{
    $collection->insert( array( 'i' => $i, "field{$i}" => $i * 2 ) );
}
?>

Notice that we can insert arrays with different keys into the same collection. This aspect is what we mean when we say that MongoDB is "schema-free". In the example above each document has an i field, but also a field name in the form of field + $i.


Counting Documents in A Collection

Now that we've inserted 101 documents (the 100 we did in the loop, plus the first one), we can check to see if we have them all using the MongoCollection::count() method.

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

echo $collection->count();
?>
and it should print 101.


Using a Cursor to Get All of the Documents

In order to get all the documents in the collection, we will use MongoCollection::find(). The find() method returns a MongoCursor object which allows us to iterate over the set of documents that matched our query. So to query all of the documents and print them out:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$cursor = $collection->find();
foreach ( $cursor as $id => $value )
{
    echo "$id: ";
    var_dump( $value );
}
?>
and that should print all 101 documents in the collection. $id is the _id field of a document (cast to a string) and $value is the document itself.

See Also

The API documentation on MongoCollection::find() contains more information about finding data.


Setting Criteria for a Query

We can create a query to pass to the MongoCollection::find() method to get a subset of the documents in our collection. For example, if we wanted to find the document for which the value of the "i" field is 71, we would do the following:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$query = array( 'i' => 71 );
$cursor = $collection->find( $query );

while ( $cursor->hasNext() )
{
    var_dump( $cursor->getNext() );
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["i"]=>
  int(71)
  ["_ns"]=>
  "testCollection"
}


Getting A Set of Documents With a Query

We can use the query to get a set of documents from our collection. For example, if we wanted to get all documents where "i" > 50, we could write:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$query = array( "i" => array( '$gt' => 50 ) ); //note the single quotes around '$gt'
$cursor = $collection->find( $query );

while ( $cursor->hasNext() )
{
    var_dump( $cursor->getNext() );
}
?>

which should print the documents where "i" > 50. We could also get a range, say 20 < i <= 30:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$query = array( 'i' => array( '$gt' => 20, "\$lte" => 30 ) );
$cursor = $collection->find( $query );

while ( $cursor->hasNext() )
{
    var_dump( $cursor->getNext() );
}
?>

Remember to always escape the $-symbol or use single quotes. Otherwise PHP will interpret it to be the variable $gt.


Creating An Index

MongoDB supports indexes, and they are very easy to add on a collection. To create an index, you specify the field name and direction: ascending (1) or descending (-1). The following creates an ascending index on the "i" field:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$collection->ensureIndex( array( "i" => 1 ) );  // create index on "i"
$collection->ensureIndex( array( "i" => -1, "j" => 1 ) );  // index on "i" descending, "j" ascending
?>

Indexing is critical for good read performance as your data grows. If you are not familiar with indexing, check out the MongoCollection::ensureIndex() documentation and the core » MongoDB indexing documentation.


Read Preferences

MongoDB 2.2 and version 1.3.0 of the driver add support for » read preferences, which allow control over how queries are directed to mongod instances in a replica set environment. Read preferences may be specified on either a per-connection, per-database, or per-collection basis. Preferences defined at a higher level will be inherited by default (e.g. MongoCollection will inherit read preferences defined on the corresponding MongoDB instance).

Read preferences are specified with a combination of modes and tag sets. Modes determine how mongod instances are prioritized, while » tag sets specify criteria for eligible mongod instances. Mongod instances are only eligible if they are within a 15ms difference in ping time from the nearest mongod instance.

Read Preference Modes

Warnung

All read preference modes except MongoClient::RP_PRIMARY may return stale data as secondaries replicate operations from the primary with some delay. Ensure that your application can tolerate stale data if you choose to use a mode other than MongoClient::RP_PRIMARY.

  • MongoClient::RP_PRIMARY

    All read operations use only the current replica set primary. This is the default. If the primary is unavailable, read operations will produce an exception.

    This mode is incompatible with use of tag sets. Specifying a tag set with MongoClient::RP_PRIMARY will result in an exception.

  • MongoClient::RP_PRIMARY_PREFERRED

    In most situations, operations read from the primary member of the set. However, if the primary is unavailable, as is the case during failover situations, operations read from secondary members.

    When the read preference includes a tag set, the client reads first from the primary, if available, and then from secondaries that match the specified tags. If no secondaries have matching tags, the read operation will produce an exception.

    Warnung

    Version 2.2 of mongos added full support for read preferences. When connecting to older mongos instances, MongoClient::RP_PRIMARY_PREFERRED will send queries to secondaries.

  • MongoClient::RP_SECONDARY

    Operations read only from the secondary members of the set. If no secondaries are available, read operations will produce an exception.

    Most sets have at least one secondary, but there are situations where there may be no available secondary. For example, a set with a primary, a secondary, and an arbiter may not have any secondaries if a member is in recovering state or unavailable.

    When the read preference includes a tag set, the client attempts to find secondary members that match the specified tag set and directs reads to a random secondary from among the nearest group. If no secondaries have matching tags, the read operation will produce an exception.

  • MongoClient::RP_SECONDARY_PREFERRED

    In most situations, operations read from secondary members, but in situations where the set consists of a single primary with no other members, the read operation will use the set's primary.

    When the read preference includes a tag set, the client attempts to find a secondary member that matches the specified tag set and directs reads to a random secondary from among the nearest group. If no secondaries have matching tags, the read operation will produce an exception.

  • MongoClient::RP_NEAREST

    The driver reads from a random member of the set that has a ping time that is less than 15ms slower than the member with the lowest ping time. Reads in the MongoClient::RP_NEAREST mode do not consider the member's type and may read from both primaries and secondaries.

    Set this mode to minimize the effect of network latency on read operations without preference for current or stale data.

    If you specify a tag set, the client attempts to find a member that matches the specified tag set and directs reads to a random node from among the nearest group.

    Hinweis:

    All operations read from the nearest member of the replica set that matches the specified read preference mode. The MongoClient::RP_NEAREST mode prefers low latency reads over a member's primary or secondary status.

Tag Sets

» Tag sets allow you to specify criteria so that your application can target read operations to specific members, based on custom parameters. Tag sets make it possible to ensure that read operations target members in a particular data center or target mongod instances designated for a particular class of operations, such as reporting or analytics.

You can specify tag sets with the following read preference modes:

  • MongoClient::RP_PRIMARY_PREFERRED

  • MongoClient::RP_SECONDARY

  • MongoClient::RP_SECONDARY_PREFERRED

  • MongoClient::RP_NEAREST

You cannot specify tag sets with the MongoClient::RP_PRIMARY read preference mode. Tags apply only when selecting a secondary member of a set, except for the when in the nearest mode.

Specifying Read Preferences

Read preferences may be specified in either the connection URI provided to MongoClient::__construct(), which uses a query string syntax, or via setter methods on the core classes, which use an array syntax for tag sets.

When specifying read preference modes in a query string, the tag sets for the readPreferenceTags value should be a comma-delimited sequence of colon-delimited key/value pairs.

Hinweis:

Each tag set defined in the query string will use the readPreferenceTags name. Unlike how PHP might handle URL query strings, successive values for readPreferenceTags will not overwrite each other. The driver will collect tag sets in the order they appear in the query string.

Warnung

If the driver cannot find a matching tag set the read will fail! It is your responsibility of providing suitable fallback, such as an empty readPreferenceTags value to fallback to "no tag set preference".

Beispiel #1 Connection URI read preferences with query string syntax

<?php
// Prefer the nearest server with no tag preference
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));

// Pick the nearest server in the "east" data center
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east,use:reporting';
$uri .= '&readPreferenceTags=dc:west';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));

// Prefer the nearest server in the "east" data center, then a server in the
// "west" data center, and finally fall back to no tag set preference
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$uri .= '&readPreferenceTags=dc:west';
$uri .= '&readPreferenceTags=';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));
?>

Beispiel #2 Setting read preferences with array syntax for tag sets

<?php

$m = new MongoClient('mongodb://rs1.example.com,rs2.example.com', array(
    'replicaSet' => 'rs',
));

// Prefer the nearest server with no tag preference
$m->setReadPreference(MongoClient::RP_NEAREST, array());

// Pick the nearest server in the "east" data center
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east'),
));

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));

// Prefer the nearest server in the "east" data center, then a server in the
// "west" data center, and finally fall back to no tag set preference
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east'),
    array('dc' => 'west'),
    array(),
));
?>


Write Concerns

MongoDB provides several different ways of selecting how durable a write to the database should be. These ways are called Write Concerns and span everything from completely ignoring all errors, to specifically targetting which servers are required to confirm the write before returning the operation.

When a write (such as with MongoCollection::insert(), MongoCollection::update(), and MongoCollection::remove()) is given a Write Concern option ("w") the driver will send the query to MongoDB and piggy back a getLastError command (GLE) with the Write Concern option at the same time. The server only returns when the Write Concern condition is verified to be fulfilled, or the query times out (controlled with the "wtimeout" option, 10000 milliseconds is the default).

Warnung

Even though a getLastError command times out the data will most likely have been written to the primary server and will be replicated to all the secondaries once they have caught up.

The typical reasons for a timeout to happen is if you specify a Write Concern which requires confirmation from more servers then you currently have available.

When using acknowledged writes and the replica set has failed over, the driver will automatically disconnect from the primary, throw an exception, and attempt to find a new primary on the next operation (your application must decide whether or not to retry the operation on the new primary).

When using unacknowledged writes (w=0) and the replica set has failed over, there will be no way for the driver to know about the change so it will continue and silently fail to write.

The default Write Concern for the MongoClient is 1: acknowledge write operations.

Available Write Concerns
Write Concern | Meaning | Description
w=0 | Unacknowledged | A write will not be followed up with a GLE call, and therefore not checked ("fire and forget")
w=1 | Acknowledged | The write will be acknowledged by the server (the primary on replica set configuration)
w=N | Replica Set Acknowledged | The write will be acknowledged by the primary server, and replicated to N-1 secondaries.
w=majority | Majority Acknowledged | The write will be acknowledged by the majority of the replica set (including the primary). This is a special reserved string.
w=<tag set> | Replica Set Tag Set Acknowledged | The write will be acknowledged by members of the entire tag set
j=true | Journaled | The write will be acknowledged by primary and the journal flushed to disk

Using WriteConcerns

Each of the methods that causes writes (MongoCollection::insert(), MongoCollection::update(), MongoCollection::remove(), and MongoCollection::batchInsert()) allow an optional argument to send a set of options to the MongoDB server. With this option array you can set the WriteConcern as the following example illustrates:

Beispiel #1 Passing a WriteConcern to a write operation

<?php
// Setting w=0 for insert:
$collection->insert($someDoc, array("w" => 0));

// Setting w=majority for update:
$collection->update($someDoc, $someUpdates, array("w" => "majority"));

// Setting w=5 and j=true for remove:
$collection->update($someDoc, array("w" => 5, "j" => true));

// Setting w="AllDCs" for batchInsert:
$collection->update(array($someDoc1, $someDoc2), array("w" => "AllDCs"));
?>

Besides setting WriteConcerns per operation as an option argument, it is also possible to set a default WriteConcern in different ways.

The first way is through the connection string. The connection string accepts the journal, w, and wTimeoutMS options:

Beispiel #2 Connection string WriteConcerns

<?php
$m = new MongoClient("mongodb://localhost/?journal=true&w=majority&wTimeoutMS=20000");
?>

Since driver version 1.5 it is also possible to call MongoDB::setWriteConcern() and MongoCollection::setWriteConcern() to set a default WriteConcern for all operations created from that specific MongoDB or MongoCollection object:

Beispiel #3 MongoDB::setWriteConcern and MongoCollection::setWriteConcern

<?php
$m = new MongoClient("mongodb://localhost/");
$d = $m->demoDb;
$c = $d->demoCollection;

// Set w=3 on the database object with a timeout of 25000ms
$d->setWriteConcern(3, 25000);

// Set w=majority on the collection object without changing the timeout
$c->setWriteConcern("majority");
?>

Unacknowledged Writes

By not requiring the server to acknowledge writes the writes can be performed extremely quickly, but you don't know whether or not they actually succeeded. Writes can fail for a number of reasons: if there are network problems, if a database server goes down, or if the write was simply invalid (e.g., writing to a system collection; or duplicate key errors).

While developing, you should always use acknowledged writes (to protect against inadvertent mistakes, such as syntax errors, invalid operators, duplicate key errors and so on). In production, unacknowledged writes can be used for "unimportant" data. Unimportant data varies on application, but it's generally automatically (instead of user generated) data, such as click tracking or GPS locations, where you can get thousands of records per second.

It is strongly recommended that you do an acknowledged write at the end of series of unacknowledged writes. Doing so will not incur in a too large performance penalty, but still allow you to catch any errors that may have occurred.

Beispiel #4 Unacknowledged WriteConcern, followed with Acknowledged Write

<?php
$collection->insert($someDoc, array("w" => 0));
$collection->update($criteria, $newObj, array("w" => 0));
$collection->insert($somethingElse, array("w" => 0));
try {
    $collection->remove($something, array("w" => 1));
} catch(MongoCursorException $e) {
    /* Handle the exception.. */
    /* Here we should issue find() queries on the IDs generated for
    $somethingElse and $someDoc to verify they got written to the database and
    attempt to figureout where in the chain something happened. */
}
?>

If the last write throws an exception, you know that there's a problem with your database.

Acknowledged Writes

These type of write operations will make sure that the database has accepted the write operation before returning success. If the write failed, it will throw a MongoCursorException with an explanation of the failure. The MongoClient default behaviour is to acknowledge the write (w=1).

It is possible to specify how many members of an replica set have to acknowledge the write (i.e. have it replicated) before the write is deemed acknowledged and the operation returns.

Beispiel #5 Acknowledged Writes

<?php
// Force acknowledgement from the primary only
$collection->insert($doc, array("w" => 1));

// Force acknowledgement from the primary, and one other member of the
// replica set
$collection->insert($doc, array("w" => 2));

// Force acknowledgement from the primary, and six other members of the
// replica set (you probably never should do this):
$collection->insert($doc, array("w" => 7));
?>

Keep in mind to select your Write Concern carefully. If you have a replica set with 5 members, and you select Write Concern of 4 you will risk the write blocking forever when one member of the replica set goes down for maintenance or a temporary network outage happens.

Warnung

Passing in a string value for Write Concern has a specific meaning (Replica Set Tag Set Acknowledged). Please be careful of NOT using string values for numbers (i.e. array("w" => "1")) as it will be treated as a tag set name.

Majority Acknowledged Writes

Using the special majority Write Concern option is the recommended way for writes that are required to survive the apocalypse, as it will ensure the majority of your replica set will have the write and will therefore be guaranteed to survive all usual suspect outage scenarios.

Beispiel #6 Majority Acknowledged Write

<?php
$collection->insert($someDoc, array("w" => "majority"));
?>

Journaled Writes

When connecting to a replica set the default Write Concern is only to have the primary server acknowledge the write. There is however a 100ms window until the write gets journaled and flushed to disk. It is possible to force the write to be journaled before acknowledging the write by setting the j option:

Beispiel #7 Acknowledged and Journaled Write

Forcing journal flush

<?php
$options = array(
    "w" => 1,
    "j" => true,
);
try {
    $collection->insert($document, $options);
} catch(MongoCursorException $e) {
    /* handle the exception */
}
?>

Siehe auch

  • » MongoDB WriteConcern docs

Changelog

Version | Beschreibung
1.3.0 | MongoClient was introduced and defaults to acknowledged writes. The deprecated Mongo defaults to unacknowledged writes.
1.3.0 | The "safe" write option has been deprecated and is not available with the new MongoClient class. Use the "w" option instead.


SQL to Mongo Mapping Chart

This is a PHP-specific version of the » SQL to Mongo mapping chart in the main docs.

SQL Statement | Mongo Query Language Statement
CREATE TABLE USERS (a Number, b Number) | Implicit or use MongoDB::createCollection().
INSERT INTO USERS VALUES(1,1) | $db->users->insert(array("a" => 1, "b" => 1));
SELECT a,b FROM users | $db->users->find(array(), array("a" => 1, "b" => 1));
SELECT * FROM users WHERE age=33 | $db->users->find(array("age" => 33));
SELECT a,b FROM users WHERE age=33 | $db->users->find(array("age" => 33), array("a" => 1, "b" => 1));
SELECT a,b FROM users WHERE age=33 ORDER BY name | $db->users->find(array("age" => 33), array("a" => 1, "b" => 1))->sort(array("name" => 1));
SELECT * FROM users WHERE age>33 | $db->users->find(array("age" => array('$gt' => 33)));
SELECT * FROM users WHERE age<33 | $db->users->find(array("age" => array('$lt' => 33)));
SELECT * FROM users WHERE name LIKE "%Joe%" | $db->users->find(array("name" => new MongoRegex("/Joe/")));
SELECT * FROM users WHERE name LIKE "Joe%" | $db->users->find(array("name" => new MongoRegex("/^Joe/")));
SELECT * FROM users WHERE age>33 AND age<=40 | $db->users->find(array("age" => array('$gt' => 33, '$lte' => 40)));
SELECT * FROM users ORDER BY name DESC | $db->users->find()->sort(array("name" => -1));
CREATE INDEX myindexname ON users(name) | $db->users->ensureIndex(array("name" => 1));
CREATE INDEX myindexname ON users(name,ts DESC) | $db->users->ensureIndex(array("name" => 1, "ts" => -1));
SELECT * FROM users WHERE a=1 and b='q' | $db->users->find(array("a" => 1, "b" => "q"));
SELECT * FROM users LIMIT 20, 10 | $db->users->find()->limit(10)->skip(20);
SELECT * FROM users WHERE a=1 or b=2 | $db->users->find(array('$or' => array(array("a" => 1), array("b" => 2))));
SELECT * FROM users LIMIT 1 | $db->users->find()->limit(1);
EXPLAIN SELECT * FROM users WHERE z=3 | $db->users->find(array("z" => 3))->explain()
SELECT DISTINCT last_name FROM users | $db->command(array("distinct" => "users", "key" => "last_name"));
SELECT COUNT(*y) FROM users | $db->users->count();
SELECT COUNT(*y) FROM users where AGE > 30 | $db->users->find(array("age" => array('$gt' => 30)))->count();
SELECT COUNT(AGE) from users | $db->users->find(array("age" => array('$exists' => true)))->count();
UPDATE users SET a=1 WHERE b='q' | $db->users->update(array("b" => "q"), array('$set' => array("a" => 1)));
UPDATE users SET a=a+2 WHERE b='q' | $db->users->update(array("b" => "q"), array('$inc' => array("a" => 2)));
DELETE FROM users WHERE z="abc" | $db->users->remove(array("z" => "abc"));


Connecting

Inhaltsverzeichnis

  • Connecting over SSL
  • Authentication
  • Replica Sets
  • Sharding
  • Domain Socket Support
  • Persistent Connections (version 1.3.0+)
  • Connection Pooling (version 1.2.0-1.2.12 *only*)
  • Manually Persistent Connections (version up to 1.1.4 *only*)

Connecting to MongoDB can be as easy as new MongoClient, but there are many additional options and configurations. The documentation for MongoClient::__construct() covers all of the API options, but this page gives some more details and advice for practical use cases.


Connecting over SSL

The driver supports connecting to » MongoDB over SSL and can optionally use SSL Stream Context options to provide more details, such as verifying certificates against specific certificate chain, or authenticate to » MongoDB using X509 certificates.

Beispiel #1 Connect to MongoDB Instance with SSL Encryption

<?php
$mc = new MongoClient("mongodb://server1", array("ssl" => true));
?>

Beispiel #2 Connect to MongoDB Instance with SSL Encryption, verifying it is who we think it is

<?php
$SSL_DIR = "/vagrant/certs";
$SSL_FILE = "CA_Root_Certificate.pem";

$ctx = stream_context_create(array(
    "ssl" => array(
        /* Certificate Authority the remote server certificate must be signed by */
        "cafile"            => $SSL_DIR . "/" . $SSL_FILE,

        /* Disable self signed certificates */
        "allow_self_signed" => false,

        /* Verify the peer certificate against our provided Certificate Authority root certificate */
        "verify_peer"       => true, /* Default to false pre PHP 5.6 */

        /* Verify the peer name (e.g. hostname validation) */
        /* Will use the hostname used to connec to the node */
        "verify_peer_name"  => true,

        /* Verify the server certificate has not expired */
        "verify_expiry"     => true, /* Only available in the MongoDB PHP Driver */
    ),
);

$mc = new MongoClient(
    "mongodb://server1",
    array("ssl" => true),
    array("context" => $ctx)
);
?>

Hinweis:

The "verify_peer_name" is new in PHP 5.6.0. The MongoDB driver as of 1.6.5 however has backported this feature into the driver itself, so it works with PHP 5.3 and 5.4 too

Beispiel #3 Connect to MongoDB Instance that Requires Client Certificates

<?php
$SSL_DIR  = "/vagrant/certs";
$SSL_FILE = "CA_Root_Certificate.pem";

$MYCERT   = "/vagrant/certs/ca-signed-client.pem";

$ctx = stream_context_create(array(
    "ssl" => array(
        "local_cert"        => $MYCERT,
        /* If the certificate we are providing was passphrase encoded, we need to set it here */
        "passphrase"        => "My Passphrase for the local_cert",

        /* Optionally verify the server is who he says he is */
        "cafile"            => $SSL_DIR . "/" . $SSL_FILE,
        "allow_self_signed" => false,
        "verify_peer"       => true,
        "verify_peer_name"  => true,
        "verify_expiry"     => true,
    ),
));

$mc = new MongoClient(
    "mongodb://server1/?ssl=true",
    array(),
    array("context" => $ctx)
);
?>

Beispiel #4 Authenticating with X.509 certificates

The username is the certificate subject from the X509, which can be extracted like this:

openssl x509 -in /vagrant/certs/ca-signed-client.pem -inform PEM -subject -nameopt RFC2253
<?php
$ctx = stream_context_create( array(
    "ssl" => array(
        "local_cert" => "/vagrant/certs/ca-signed-client.pem",
    )
) );

$mc = new MongoClient(
    'mongodb://username@server1/?authSource=$external&authMechanism=MONGODB-X509&ssl=true',
    array(),
    array("context" => $ctx)
);
?>

Where username is the certificate subject.

Changelog

Version | Beschreibung
1.5.0 | Added support for X509 authentication.
1.4.0 | Added support for connecting to SSL enabled MongoDB.


Authentication

If MongoDB is started with the --auth or --keyFile options, you must authenticate before you can do any operations with the driver. You may authenticate a connection by specifying the username and password in either the connection URI or the "username" and "password" options for MongoClient::__construct().

Beispiel #1 Authenticating against the "admin" database

<?php
// Specifying the username and password in the connection URI (preferred)
$m = new MongoClient("mongodb://${username}:${password}@localhost");

// Specifying the username and password via the options array (alternative)
$m = new MongoClient("mongodb://localhost", array("username" => $username, "password" => $password));
?>

By default, the driver will authenticate against the admin database. You may authenticate against a different database by specifying it in either the connection URI or the "db" option for MongoClient::__construct().

Beispiel #2 Authenticating against normal databases

<?php
// Specifying the authentication database in the connection URI (preferred)
$m = new MongoClient("mongodb://${username}:${password}@localhost/myDatabase");

// Specifying the authentication database via the options array (alternative)
$m = new MongoClient("mongodb://${username}:${password}@localhost", array("db" => "myDatabase"));
?>

If your connection is dropped, the driver will automatically attempt to reconnect and reauthenticate you.


Replica Sets

To connect to a replica set, specify one or more members of the set and use the "replicaSet" option. Multiple servers may be delimited by a comma.

Beispiel #1 ReplicaSet seed list

<?php
// Using multiple servers as the seed list (prefered)
$m = new MongoClient("mongodb://rs1.example.com:27017,rs2.example.com:27017/?replicaSet=myReplSetName");

// Using one server as the seed list
$m = new MongoClient("mongodb://rs1.example.com:27017", array("replicaSet" => "myReplSetName"));

// Using multiple servers as the seed list
$m = new MongoClient("mongodb://rs1.example.com:27017,rs2.example.com:27017", array("replicaSet" => "myReplSetName"));
?>

The PHP driver will query the database server(s) listed to determine the primary. So long as it can connect to at least one host listed and find a primary, the connection will succeed. If it cannot make a connection to any servers listed or cannot find a primary, a MongoConnectionException will be thrown.

Tipp

You should always provide a seed list with more than one member of the ReplicaSet. For highest availability you should seed with at least one server from each of your datacenters.

Warnung

The host names that you specify in the seed list must match the host names in the replica set configuration. This is because the driver only uses the host names in the replica set configuration to create the hash for its persistent connections.

For example, if an IP address is used in the seed list and the replica set is configured with host names, the driver will discard any seed list connection(s) that differ from the canonical host names reported by the replica set. Effectively, these non-canonical seed list connections will be recreated on each request, greatly reducing the benefit of using persistent connections.

Warnung

The driver does not support connecting to different replica sets with the same name. This extends beyond one script so make sure to have separate names for each of your replica sets. That also means that you can not do this:

Beispiel #2 Wrong replica set name duplication

<?php
$m = new MongoClient("mongodb://devserver1,devserver2,devserver3/?replicaSet=repset");
$m = new MongoClient("mongodb://prodserver1,prodserver2,prodserver3/?replicaSet=repset");
?>

Instead, you need to have two different names for your replica sets:

Beispiel #3 Correct use of two replica set names

<?php
$m = new MongoClient("mongodb://devserver1,devserver2,devserver3/?replicaSet=devset");
$m = new MongoClient("mongodb://prodserver1,prodserver2,prodserver3/?replicaSet=prodset");
?>

If the primary becomes unavailable, an election will take place and a secondary will be promoted to the role of primary (unless a majority vote cannot be established). During this time (» 20-60 seconds), the connection will not be able to perform any write operations and attempts to do so will result in an exception. Connections to secondaries will still be able to perform reads.

Hinweis:

The default Read Preference is to only read from the primary. During the election process there is no primary, and all read will therefore fail.

It is recommended to use MongoClient::RP_PRIMARY_PREFERRED Read Preference for applications that require high availability for reads, as reads will only be executed on the secondaries when there simply isn't a primary available.

Once a primary is elected, attempting to perform a read or write will allow the driver to detect the new primary. The driver will make this its primary database connection and continue operating normally.

The health and state of a secondary is checked every 5 seconds (configurable with mongo.ping_interval) or when the next operation occurs after 5 seconds. It will also recheck the configuration when the driver has a problem reaching a server.

Replica set failovers are checked every 60 seconds (configurable with mongo.is_master_interval), and whenever a write operation fails when using acknowledged writes.

Achtung

Secondaries may be behind the primary in operations, so your application must be able to handle out-of-date data when using Read Preferences other then MongoClient::RP_PRIMARY.

For more information on replica sets, see the » core documentation.

Siehe auch

  • Read Preferences
  • Write Concerns

Changelog

Version | Beschreibung
1.0.9 | Added support for connecting to ReplicaSet and automatic failover.


Sharding

To connect to a shard cluster, specify the address of one or more mongos instances in the connection string. Multiple servers may be delimited by a comma.

<?php
// Using one server as the seed list
$m = new MongoClient("mongodb://mongos1.example.com:27017");

// Using multiple servers as the seed list
$m = new MongoClient("mongodb://mongos1.example.com:27017,mongos2.example.com:27017");
?>

Regardless of whether each shard is a stand-alone mongod server or a full replica set, the driver's connection process is the same. All database communication will be routed through mongos.

For more information on sharding with MongoDB, see the » sharding documentation.


Domain Socket Support

MongoDB has built-in support for connecting via Unix Domain Sockets and will open the socket on startup. By default, the socket is located in /tmp/mongodb-<port>.sock.

To connect to the socket file, specify the path in your MongoDB connection string:

<?php
$m = new MongoClient("mongodb:///tmp/mongo-27017.sock");
?>

If you would like to authenticate against a database (as described above) with a socket file, you must specify a port of 0 so that the connection string parser can detect the end of the socket path. Alternatively, you can use the constructor options.

<?php
$m = new MongoClient("mongodb://username:password@/tmp/mongo-27017.sock:0/foo");
?>

Changelog

Version | Beschreibung
1.0.9 | Added support for Unix Domain Sockets.


Persistent Connections (version 1.3.0+)

All versions of the driver since 1.3.0 utilize persistent connections to minimize the number of connections made to each database server. These connections are saved by the PHP worker process and may be reused between multiple requests.

Before connecting to a database server, the driver will create a hash for the connection based on its host, port, replica set name (if any), any authentication credentials (e.g. username, password, database), and the process ID. If a connection already exists for that hash, it will be used in lieu of creating a new connection associated with that hash. MongoClient::getConnections() may be used to retrieve info about each persistent connection. Consider the following program:

<?php

$m1 = new MongoClient('mongodb://localhost');
$m2 = new MongoClient('mongodb://localhost');
$m3 = new MongoClient('mongodb://user:pw@localhost');
$m4 = new MongoClient('mongodb://127.0.0.1');
$m5 = new MongoClient('mongodb://rs1.local:30017,rs2.local:30018/?replicaSet=rs');
$m6 = new MongoClient('mongodb://sharding.local:40017');

foreach (MongoClient::getConnections() as $conn) {
    echo $conn['hash'], "\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

localhost:27017;-;X;15487
localhost:27017;-;admin/user/c56c…8bbc;15487
127.0.0.1:27017;-;X;15487
rs1.local:30017;rs;X;15487
rs2.local:30018;rs;X;15487
sharding.local:40017;-;X;15487

In this example $m1 and $m2 have the same hash and share a persistent connection. Connections for each other MongoClient instance hash to unique values and use their own sockets. Note that "localhost" and "127.0.0.1" do not share the same hash; DNS resolution is not taken into account.


Connection Pooling (version 1.2.0-1.2.12 *only*)

Hinweis:

This section is no longer relevant as of the 1.3.0 release of the driver and only serves as a historical information on how the pooling used to work.

The latest versions of the driver have no concept of pooling anymore and will maintain only one connection per process, for each connection type (ReplicaSet/standalone/mongos), for each credentials combination.

Creating connections is one of the most heavyweight things that the driver does. It can take hundreds of milliseconds to set up a connection correctly, even on a fast network. Thus, the driver tries to minimize the number of new connections created by reusing connections from a pool.

When a user creates a new instance of MongoClient, all necessary connections will be taken from their pools (replica sets may require multiple connections, one for each member of the set). When the MongoClient instance goes out of scope, the connections will be returned to the pool. When the PHP process exits, all connections in the pools will be closed.

"Why do I have so many open connections?"

Connection pools can generate a large number of connections. This is expected and, using a little arithmetic, you can figure out how many connections will be created. There are three factors in determining the total number of connections:

  • connections_per_pool

    Each connection pool will create, by default, an unlimited number of connections. One might assume that this is a problem: if it can create an unlimited number of connections, couldn't it create thousands and the server would run out of file descriptors? In practice, this is unlikely, as unused connections are returned to the pool to be used later, so future connections will use the same connection instead of creating a new one. Unless you create thousands of connections at once without letting any go out of scope, the number of connections open should stay at a reasonable number.

    You can see how many connections you have in a pool using the MongoPool::info() function. Add up the "in use" and "in pool" fields for a given server. That is the total number of connections for that pool.

  • pools_per_process

    Each MongoDB server address you're connecting to gets its own connection pool. For example, if your local hostname is "example.net", connecting to "example.net:27017", "localhost:27017", and "/tmp/mongodb-27017.sock" will create three connection pools. You can see how many connection pools you have open using MongoPool::info().

  • processes

    Each PHP process has a separate set of pools. PHP-FPM and Apache generally create between 6 and a couple of dozen PHP worker children. Check your settings to see what the max number of PHP processes is that can be spawned.

    If you are using PHP-FPM, estimating the number of connections can be tricky because it will spawn more PHP-FPM workers under heavy load. To be on the safe side, look at the max_children parameter or add up spare_servers + start_servers (choose whichever number is higher). That will indicate how many PHP processes (i.e. sets of pools) you should plan for.

The three variables above can be multiplied together to give the max number of connections expected: connections_per_pool * pools_per_process * processes. Note that connections_per_pool can be different for different pools, so connections_per_pool should be the max.

For example, suppose we're getting 30 connections per pool, 10 pools per PHP process, and 128 PHP processes. Then we can expect 38400 connections from this machine. Thus, we should set this machine's file descriptor limit to be high enough to handle all of these connections or it may run out of file descriptors.

See MongoPool for more information on connection pooling.


Manually Persistent Connections (version up to 1.1.4 *only*)

Hinweis:

This section is not relevant for 1.2.0+. In 1.2.0+, connections are always persistent and managed automatically by the driver. If you are using a 1.2.x release (but not 1.3.x or later), see MongoPool for more information on pooling.

Creating new connection to the database is very slow. To minimize the number of connections that you need to make, you can use persistent connections. A persistent connection is saved by PHP, so you can use the same connection for multiple requests.

For example, this simple program connects to the database 1000 times:

<?php

for ($i=0; $i<1000; $i++) {
  $m = new MongoClient();
}

?>

It takes approximately 18 seconds to execute. If we change it to use a persistent connection:

<?php

for ($i=0; $i<1000; $i++) {
  $m = new MongoClient("localhost:27017", array("persist" => "x"));
}

?>

...it takes less than .02 seconds to execute, as it only makes one database connection.

Persistent connections need an identifier string (which is "x" in the above example) to uniquely identify them. For a persistent connection to be used, the hostname, port, persist string, and authentication credentials (username, password and database, if given) must match an existing persistent connection. Otherwise, a new connection will be created with this identifying information.

Persistent connections are highly recommended and should always be used in production unless there is a compelling reason not to. Most of the reasons that they are not recommended for relational databases are irrelevant to MongoDB.


Stream Context Options

The PHP MongoDB extension provides Stream Context Support using the mongodb context.

A stream context must be created with stream_context_create() and passed to the MongoClient::__construct() before the actual connection to MongoDB is made. It is not possible to apply a stream context to already created streams.

Additional context options and parameters, such as ssl and notification parameters, are also supported.

The MongoDB context options provide a rich interface to log network traffic between the driver and the MongoDB servers. This interface can be used to provide query logging, profiler, debuggers, or anything that would need to inspect the underlaying commands and protocol options.

Siehe auch

  • SSL-Kontext-Optionen
  • Socket context options
  • Kontextparameter

Inhaltsverzeichnis

  • log_cmd_delete — Callback When Deleting Documents
  • log_cmd_insert — Callback When Inserting Documents
  • log_cmd_update — Callback When Updating Documents
  • log_getmore — Callback When Retrieving Next Cursor Batch
  • log_killcursor — Callback When Executing KILLCURSOR operations
  • log_reply — Callback When Reading the MongoDB reply
  • log_write_batch — Callback When Writing Batches


Callback When Deleting Documents

  • « Stream Context Options
  • log_cmd_insert »
  • PHP Manual
  • Stream Context Options
  • Callback When Deleting Documents

log_cmd_delete

(PECL mongo >= 1.5.0)

log_cmd_delete — Callback When Deleting Documents

Beschreibung

log_cmd_delete ( array $server , array $writeOptions , array $deleteOptions , array $protocolOptions )

A callable function, used by the log_cmd_delete context option, when deleteing a document

Hinweis:

This is not a real function, only a prototype of how the function should be.

Parameter-Liste

server

An array containing the basic information about the server that was picked.

key | value
hash | server hash, example: localhost:27017;-;X;56052
type | Node type (primary/secondary/mongos/arbiter): 2
max_bson_size | The maximum BSON Size over the wire this node accepts: 16777216
max_message_size | The maximum Message Size over the wire this node accepts: 48000000
request_id | The request identifier for this message: 42

writeOptions

key | value
ordered | boolean, if the operation (in case of batch operation) must be executed sequentually (ordered=true)
writeConcern | An array of writeConcern options (see below)
writeConcern array values
key | value
fsync | boolean, force flushing to disk before returning
j | boolean, force journal write before returning
wtimeout | integer, milliseconds, maximum time the primary is allowed to wait to verify replication
w | integer=server count, or string=replication-tag

deleteOptions

key | value
limit | integer, 1 or 0. If 0, delete all matching documents.
q | Array, the search criteria

protocolOptions

key | value
message_length | The total size (in bytes) of the encoded message being sent over the wire
request_id | The request identifier for this message: 42
namespace | The MongoDB namespace used for the protocol message dbname.collectionname

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Only available when connected to MongoDB 2.6.0+


Callback When Inserting Documents

  • « log_cmd_delete
  • log_cmd_update »
  • PHP Manual
  • Stream Context Options
  • Callback When Inserting Documents

log_cmd_insert

(PECL mongo >= 1.5.0)

log_cmd_insert — Callback When Inserting Documents

Beschreibung

log_cmd_insert ( array $server , array $document , array $writeOptions , array $protocolOptions )

A callable function, used by the log_cmd_insert context option, when inserting a document

Hinweis:

This is not a real function, only a prototype of how the function should be.

Parameter-Liste

server

An array containing the basic information about the server that was picked.

key | value
hash | server hash, example: localhost:27017;-;X;56052
type | Node type (primary/secondary/mongos/arbiter): 2
max_bson_size | The maximum BSON Size over the wire this node accepts: 16777216
max_message_size | The maximum Message Size over the wire this node accepts: 48000000
request_id | The request identifier for this message: 42

document

The document that has been prepared to be inserted

writeOptions

key | value
ordered | boolean, if the operation (in case of batch operation) must be executed sequentually (ordered=true)
writeConcern | An array of writeConcern options (see below)
writeConcern array values
key | value
fsync | boolean, force flushing to disk before returning
j | boolean, force journal write before returning
wtimeout | integer, milliseconds, maximum time the primary is allowed to wait to verify replication
w | integer=server count, or string=replication-tag

protocolOptions

key | value
message_length | The total size (in bytes) of the encoded message being sent over the wire
request_id | The request identifier for this message: 42
namespace | The MongoDB namespace used for the protocol message dbname.collectionname

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Only available when connected to MongoDB 2.6.0+


Callback When Updating Documents

  • « log_cmd_insert
  • log_getmore »
  • PHP Manual
  • Stream Context Options
  • Callback When Updating Documents

log_cmd_update

(PECL mongo >= 1.5.0)

log_cmd_update — Callback When Updating Documents

Beschreibung

log_cmd_update ( array $server , array $writeOptions , array $updateOptions , array $protocolOptions )

A callable function, used by the log_cmd_update context option, when updateing a document

Hinweis:

This is not a real function, only a prototype of how the function should be.

Parameter-Liste

server

An array containing the basic information about the server that was picked.

key | value
hash | server hash, example: localhost:27017;-;X;56052
type | Node type (primary/secondary/mongos/arbiter): 2
max_bson_size | The maximum BSON Size over the wire this node accepts: 16777216
max_message_size | The maximum Message Size over the wire this node accepts: 48000000
request_id | The request identifier for this message: 42

writeOptions

key | value
ordered | boolean, if the operation (in case of batch operation) must be executed sequentually (ordered=true)
writeConcern | An array of writeConcern options (see below)
writeConcern array values
key | value
fsync | boolean, force flushing to disk before returning
j | boolean, force journal write before returning
wtimeout | integer, milliseconds, maximum time the primary is allowed to wait to verify replication
w | integer=server count, or string=replication-tag

updateOptions

key | value
multi | Boolean, true if this update is allowed to update all matched criteria
upsert | Boolean, true if the document should be created if criteria does not match
q | Array, the search criteria
u | Array, the new object/modifications

protocolOptions

key | value
message_length | The total size (in bytes) of the encoded message being sent over the wire
request_id | The request identifier for this message: 42
namespace | The MongoDB namespace used for the protocol message dbname.collectionname

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Only available when connected to MongoDB 2.6.0+


Callback When Retrieving Next Cursor Batch

  • « log_cmd_update
  • log_killcursor »
  • PHP Manual
  • Stream Context Options
  • Callback When Retrieving Next Cursor Batch

log_getmore

(PECL mongo >= 1.5.0)

log_getmore — Callback When Retrieving Next Cursor Batch

Beschreibung

log_getmore ( array $server , array $info )

A callable function, used by the log_getmore context option, when executing a GET_MORE operation.

Hinweis:

This is not a real function, only a prototype of how the function should be.

Parameter-Liste

server

An array containing the basic information about the server that was picked.

key | value
hash | server hash, example: localhost:27017;-;X;56052
type | Node type (primary/secondary/mongos/arbiter): 2
max_bson_size | The maximum BSON Size over the wire this node accepts: 16777216
max_message_size | The maximum Message Size over the wire this node accepts: 48000000
request_id | The request identifier for this message: 42

info

key | value
request_id | integer, the driver request identifier
cursor_id | integer, the cursor identifier being used to fetch more data
batch_size | integer, maximum number of documents being requested


Callback When Executing KILLCURSOR operations

  • « log_getmore
  • log_reply »
  • PHP Manual
  • Stream Context Options
  • Callback When Executing KILLCURSOR operations

log_killcursor

(PECL mongo >= 1.5.0)

log_killcursor — Callback When Executing KILLCURSOR operations

Beschreibung

log_killcursor ( array $server , array $info )

A callable function, used by the log_killcursor context option, when reading a killcursor from MongoDB.

Hinweis:

This is not a real function, only a prototype of how the function should be.

Parameter-Liste

server

An array containing the basic information about the server that was picked.

key | value
hash | server hash, example: localhost:27017;-;X;56052
type | Node type (primary/secondary/mongos/arbiter): 2
max_bson_size | The maximum BSON Size over the wire this node accepts: 16777216
max_message_size | The maximum Message Size over the wire this node accepts: 48000000
request_id | The request identifier for this message: 42

info

key | value
cursor_id | integer, the cursor identifier to kill


Callback When Reading the MongoDB reply

  • « log_killcursor
  • log_write_batch »
  • PHP Manual
  • Stream Context Options
  • Callback When Reading the MongoDB reply

log_reply

(PECL mongo >= 1.5.0)

log_reply — Callback When Reading the MongoDB reply

Beschreibung

log_reply ( array $server , array $messageHeaders , array $operationHeaders )

A callable function, used by the log_reply context option, when reading a reply from MongoDB.

Hinweis:

This is not a real function, only a prototype of how the function should be.

Parameter-Liste

server

An array containing the basic information about the server that was picked.

key | value
hash | server hash, example: localhost:27017;-;X;56052
type | Node type (primary/secondary/mongos/arbiter): 2
max_bson_size | The maximum BSON Size over the wire this node accepts: 16777216
max_message_size | The maximum Message Size over the wire this node accepts: 48000000
request_id | The request identifier for this message: 42

messageHeaders

key | value
length | integer, bytes, message reply length
request_id | integer, the server request identifier
response_id | integer, the driver request identifier this message is a response of
opcode | integer, the opcode id

operationHeaders

key | value
flags | integer, bitmask of protocol flags
cursor_id | integer, ID of the cursor created on the server (0 if none created, or its been exhausted)
start | The starting offset of this cursor
returned | integer, how many documents are returned in this trip

Siehe auch

  • The » OP_REPLY definition in the Wire Protocol


Callback When Writing Batches

  • « log_reply
  • Writes »
  • PHP Manual
  • Stream Context Options
  • Callback When Writing Batches

log_write_batch

(PECL mongo >= 1.5.0)

log_write_batch — Callback When Writing Batches

Beschreibung

log_write_batch ( array $server , array $writeOptions , array $batch , array $protocolOptions )

A callable function, used by the log_write_batch context option, when executing a batch operation.

Hinweis:

This is not a real function, only a prototype of how the function should be.

Parameter-Liste

server

An array containing the basic information about the server that was picked.

key | value
hash | server hash, example: localhost:27017;-;X;56052
type | Node type (primary/secondary/mongos/arbiter): 2
max_bson_size | The maximum BSON Size over the wire this node accepts: 16777216
max_message_size | The maximum Message Size over the wire this node accepts: 48000000
request_id | The request identifier for this message: 42

writeOptions

key | value
ordered | boolean, if the operation (in case of batch operation) must be executed sequentually (ordered=true)
writeConcern | An array of writeConcern options (see below)
writeConcern array values
key | value
fsync | boolean, force flushing to disk before returning
j | boolean, force journal write before returning
wtimeout | integer, milliseconds, maximum time the primary is allowed to wait to verify replication
w | integer=server count, or string=replication-tag

batch

Array, the actual batch operation.

protocolOptions

key | value
message_length | The total size (in bytes) of the encoded message being sent over the wire
request_id | The request identifier for this message: 42
namespace | The MongoDB namespace used for the protocol message dbname.collectionname

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Only available when connected to MongoDB 2.6.0+


Writes

Updating Nested Objects

Suppose we wish to change the name of a comment's author in this document:

{
    "_id" : ObjectId("4b06c282edb87a281e09dad9"),
    "content" : "this is a blog post.",
    "comments" :
    [
        {
            "author" : "Mike",
            "comment" : "I think that blah blah blah...",
        },
        {
            "author" : "John",
            "comment" : "I disagree."
        }
    ]
}
In order to change an inner field, we use $set (so that all of the other fields are not removed!) with the index of comment to change:
<?php

$blog->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim"))));

?>

The Positional Operator

The positional operator $ is useful for updating objects that are in arrays. In the example above, for instance, suppose that we did not know the index of the comment that we needed to change, merely that we needed to change "John" to "Jim". We can use $ to do so.

<?php

$blog->update(
    array('comments.author' => 'John'),
    array('$set' => array('comments.$.author' => 'Jim')));

?>


Querying

Distributing queries to secondaries

All queries (reads and writes) are only sent to the primary member of a replica set by default. This is however easily configurable by using the Read Preferences which allow you to set some generic read preferences (such as allowing secondary reads of the nearest server), and also provide ways to specifically target a server in a specific country, datacenter, or even hardware, by the use of replica set tag sets.

Read preferences can be configured at every level of the driver:

  • As a query parameter or option to MongoClient::__construct()
  • Specifically by calling MongoClient::setReadPreference()
  • At the database level with MongoDB::setReadPreference()
  • At the collection level with MongoCollection::setReadPreference()
  • At the cursor level with MongoCursor::setReadPreference() or MongoCommandCursor::setReadPreference()
Each class inherits its read preference setting from the "parent" context.

Beispiel #1 Inheriting read preferences from the database level down to the cursor

<?php
$db->setReadPreference(MongoClient::RP_SECONDARY_PREFERRED);
$c = $db->myCollection;

$cursor = $c->find();
?>

In this example, the query will be executed against a secondary. The collection inherits MongoClient::RP_SECONDARY_PREFERRED from the database and the cursor inherits it from the collection.

How secondaries are chosen

Each instance of MongoClient chooses its own secondary using the available secondary with the lowest ping time. So, if we had a PHP client in Europe and one in Australia and we had one secondary in each of these data centers, we could do:

<?php
$options = array("replicaSet" => "setName", "readPreference" => MongoClient::RP_SECONDARY_PREFERRED);

// on the Australian client
$m = new MongoClient("mongodb://primary,australianhost.secondary,europeanhost.secondary", $options);
$cursor = $m->foo->bar->find();
$cursor->getNext();
echo "Reading from: ", $cursor->info()["server"], "\n";

// on the European client
$m = new MongoClient("mongodb://primary,australianhost.secondary,europeanhost.secondary", $options);
$cursor = $m->foo->bar->find();
$cursor->getNext();
echo "Reading from: ", $cursor->info()["server"], "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Reading from: australianHost
Reading from: europeanHost

Note that we have to do a query before a secondary is chosen: secondaries are chosen lazily by the driver, and for each query separately.

You can see what the driver thinks is the current status of the set members by running MongoClient::getHosts() or MongoClient::getConnections().

If no secondary is readable, the driver will send reads to the primary as we specified MongoClient::RP_SECONDARY_PREFERRED which will fallback to execute a query on a primary if no secondaries are available. A server is considered readable if its state is 2 (SECONDARY) and its health is 1. You can check this with MongoClient::getHosts() and MongoClient::getConnections().

Random notes

Writes are always sent to the primary—and by default all reads are sent to the primary too.

Querying by _id

Every object inserted is automatically assigned a unique _id field, which is often a useful field to use in queries. This works similarly to "get last insert ID" functionality, except that the _id is chosen by the client.

Suppose that we wish to find the document we just inserted. Inserting adds an _id field to the document, so we can query by that:

<?php
$person = array("name" => "joe");

$people->insert($person);

// now $joe has an _id field
$joe = $people->findOne(array("_id" => $person['_id']));
?>

Unless the user has specified otherwise, the _id field is a MongoId. The most common mistake is attempting to use a string to match a MongoId. Keep in mind that these are two different datatypes, and will not match each other in the same way that the string "array()" is not the same as an empty array. For example:

<?php
$person = array("name" => "joe");

$people->insert($person);

// convert the _id to a string
$pid = $person['_id'] . "";

// FAILS - $pid is a string, not a MongoId
$joe = $people->findOne(array("_id" => $pid));
?>

Arrays

Arrays are special in a couple ways. First, there are two types that MongoDB uses: "normal" arrays and associative arrays. Associative arrays can have any mix of key types and values. "Normal" arrays are defined as arrays with ascending numeric indexes starting at 0 and increasing by one for each element. These are, typically, just your usual PHP array.

For instance, if you want to save a list of awards in a document, you could say:

<?php

$collection->save(array("awards" => array("gold", "silver", "bronze")));

?>

Queries can reach into arrays to search for elements. Suppose that we wish to find all documents with an array element of a given value. For example, documents with a "gold" award, such as:

{ "_id" : ObjectId("4b06c282edb87a281e09dad9"), "awards" : ["gold", "silver", "bronze"]}

This can be done with a simple query, ignoring the fact that "awards" is an array:

<?php

  $cursor = $collection->find(array("awards" => "gold"));

?>

Suppose we are querying for a more complex object, if each element of the array were an object itself, such as:

{
     "_id" : ObjectId("4b06c282edb87a281e09dad9"),
     "awards" :
     [
        {
            "first place" : "gold"
        },
        {
            "second place" : "silver"
        },
        {
            "third place" :  "bronze"
        }
     ]
}

Still ignoring that this is an array, we can use dot notation to query the subobject:

<?php

$cursor = $collection->find(array("awards.first place" => "gold"));

?>

Notice that it doesn't matter that there is a space in the field name (although it may be best not to use spaces, just to make things more readable).

You can also use an array to query for a number of possible values. For instance, if we were looking for documents "gold" or "copper", we could do:

<?php

$cursor = $collection->find(array("awards" => array('$in' => array("gold", "copper"))));

?>

Changelog

Version | Beschreibung
1.3.0 | Introduced the Read Preferences framework to allow more fine grained control over secondary reads.
1.3.0 | Deprecated slaveOkay usage, the alternative is Read Preferences.
1.1.0 | Introduced the possiblity of routing reads to secondaries of replica set members using Mongo::setSlaveOkay()


Updates

Updates can be one of the most complicated operation available with MongoDB. They combine a query with an action, modifying documents that match the criteria. They are also extremely powerful, allowing you to change documents quickly and replace them altogether. They are done in-place (when possible) with little overhead.

Modifying vs. replacing documents

There are two types of updates you can use: modifying updates and replacing updates. Modifying updates contain $-operators and change fields in a document: they might increment counters, push new elements onto an array, or change the type of a field.

For example, a modifying update could add a new field to a document.

<?php
/** suppose documents look like:
 * {"username" : "...", "password" : "...", "email" : "..."}
 */
$coll->update(array("username" => "joe"), array('$set' => array("twitter" => "@joe4153")));

/** now the document will look like:
 * {"username" : "joe", "password" : "...", "email" : "...", "twitter" : "@joe4153"}
 */
?>

Replacing updates replace the entire matching document with a new document. They are generally not as efficient as using $-modifiers, but can be very usefully for complex operations or updates that can't be expressed in terms of $-operators.

For example, a replacing update can completely change the structure of a document.

<?php
/** suppose documents look like:
 * {"username" : "...", "password" : "...", "email" : "..."}
 */
$coll->update(array("username" => "joe"), array("userId" => 12345, "info" => array(
    "name" => "joe", "twitter" => "@joe4153", "email" => "..."), "likes" => array()));

/** now the document will look like:
 * {
 *     "userId" : 12345,
 *     "info" : {
 *         "name" : "joe",
 *         "twitter" : "@joe4153",
 *         "email" : "..."
 *     },
 *     "likes" : []
 * }
 */
?>

Updating Nested Objects

Suppose we wish to change the name of a comment's author in this document:

{
    "_id" : ObjectId("4b06c282edb87a281e09dad9"),
    "content" : "this is a blog post.",
    "comments" :
    [
        {
            "author" : "Mike",
            "comment" : "I think that blah blah blah...",
        },
        {
            "author" : "John",
            "comment" : "I disagree."
        }
    ]
}
In order to change an inner field, we use $set (so that all of the other fields are not removed!) with the index of comment to change:
<?php

$blog->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim"))));

?>

The Positional Operator

The positional operator $ is useful for updating objects that are in arrays. In the example above, for instance, suppose that we did not know the index of the comment that we needed to change, merely that we needed to change "John" to "Jim". We can use $ to do so.

<?php

$blog->update(
    array("comments.author" => "John"),
    array('$set' => array('comments.$.author' => "Jim")));

?>


Security

Request Injection Attacks

If you are passing $_GET (or $_POST) parameters to your queries, make sure that they are cast to strings first. Users can insert associative arrays in GET and POST requests, which could then become unwanted $-queries.

A fairly innocuous example: suppose you are looking up a user's information with the request http://www.example.com?username=bob. Your application does the query $collection->find(array("username" => $_GET['username'])).

Someone could subvert this by getting http://www.example.com?username[$ne]=foo, which PHP will magically turn into an associative array, turning your query into $collection->find(array("username" => array('$ne' => "foo"))), which will return all users not named "foo" (all of your users, probably).

This is a fairly easy attack to defend against: make sure $_GET and $_POST parameters are the type you expect before you send them to the database (cast them to strings, in this case).

Note that this type of attack can be used with any databases interation that locates a document, including updates, upserts, find-and-modifies, and removes.

Thanks to » Phil for pointing this out.

See » the main documentation for more information about SQL-injection-like issues with MongoDB.

Script Injection Attacks

If you are using JavaScript, make sure that any variables that cross the PHP- to-JavaScript boundry are passed in the scope field of MongoCode, not interpolated into the JavaScript string. This can come up when using MongoDB::execute(), $where clauses, MapReduces, group-bys, and any other time you may pass JavaScript into the database.

Hinweis:

MapReduce ignore the scope field of MongoCode, but there is a scope option on the command that can be used instead.

For example, suppose we have some JavaScript to greet a user in the database logs. We could do:

<?php

// don't do this!

$username = $_POST['username'];
$db->execute("print('Hello, $username!');");

?>

However, what if a malicious user passes in some JavaScript?

<?php

// don't do this!

// $username is set to "'); db.users.drop(); print('"
$db->execute("print('Hello, $username!');");

?>

Now MongoDB executes the JavaScript string "print('Hello, '); db.users.drop(); print('!');". This attack is easy to avoid: use scope to pass variables from PHP to JavaScript:

<?php

$scope = array("user" => $username);
$db->execute(new MongoCode("print('Hello, '+user+'!');", $scope));

?>

This adds a variable user to the JavaScript scope. Now if someone tries to send malicious code, MongoDB will harmlessly print Hello, '); db.dropDatabase(); print('!.

Using scope helps prevent malicious input from being executed by the database. However, you must make sure that your code does not turn around and execute the input anyway! For example, never use the JavaScript eval function on user input:

<?php

// don't do this!

// $jsShellInput is "db.users.drop();"
$scope = array("input" => $jsShellInput);
$db->execute(new MongoCode("eval(input);", $scope));

?>

Always use scope and never allow the database to execute user input as code.


Troubleshooting

If you're having trouble, there are lots of resources you can turn to.

  • IRC

    The official MongoDB IRC room is irc.freenode.net/#mongodb. This is the fastest way to get help.

  • Mailing List

    » MongoDB's mailing list is a good (and usually very fast) way to get answers to questions.

  • Bug Tracker

    Found a bug? Want a feature? Have a question? File it in the » PHP driver's bug tracker.

You can make the driver log all kinds of error messages as E_NOTICE level PHP error messages. Have a look at the MongoLog for an example.


Running the Driver's Tests

The PECL package does not come with the tests, but they are available at » Github.

.phpt Tests

.phpt tests are the standard way of testing PHP extensions. After compiling the MongoDB driver with "make" you can then issue "make test" to run the tests. These tests require MongoDB to be working, and hence, you need to configure the test suite itself.

There is more information on running the tests in the contributing guidelines on » GitHub.

Reporting Errors

Please report any failures or errors in the » bugtracker. There may be skipped tests, these are normal and can be ignored.

New tests are always welcome! Please feel free to contribute new tests of any type testing any functionality.


Core Classes

Inhaltsverzeichnis

  • MongoClient
  • MongoDB
  • MongoCollection
  • MongoCursor
  • MongoCursorInterface
  • MongoCommandCursor
Warnung

This extension is deprecated. Instead, the MongoDB extension should be used.

The core classes are the most important part of the driver.


The MongoClient class

(PECL mongo >=1.3.0)

Warnung

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. Alternatives to this class include:

  • MongoDB\Driver\Manager

Einführung

A connection manager for PHP and MongoDB.

This class is used to create and manage connections. A typical use is:

Beispiel #1 MongoClient basic usage

<?php

$m = new MongoClient(); // connect
$db = $m->foo; // get the database named "foo"

?>

See MongoClient::__construct() and the section on connecting for more information about creating connections.

Klassenbeschreibung

MongoClient {
/* Konstanten */
const string VERSION ;
const string DEFAULT_HOST = "localhost" ;
const int DEFAULT_PORT = 27017 ;
const string RP_PRIMARY = "primary" ;
const string RP_PRIMARY_PREFERRED = "primaryPreferred" ;
const string RP_SECONDARY = "secondary" ;
const string RP_SECONDARY_PREFERRED = "secondaryPreferred" ;
const string RP_NEAREST = "nearest" ;
/* Eigenschaften */
public bool $connected = false ;
public string $status = null ;
protected string $server = null ;
protected bool $persistent = null ;
/* Methoden */
public __construct ( string $server = "mongodb://localhost:27017" , array $options = array("connect" => true) , array $driver_options = ? )
public close ( bool|string $connection = ? ) : bool
public connect ( ) : bool
public dropDB ( mixed $db ) : array
public __get ( string $dbname ) : MongoDB
public static getConnections ( ) : array
public getHosts ( ) : array
public getReadPreference ( ) : array
public getWriteConcern ( ) : array
public killCursor ( string $server_hash , int|MongoInt64 $id ) : bool
public listDBs ( ) : array
public selectCollection ( string $db , string $collection ) : MongoCollection
public selectDB ( string $name ) : MongoDB
public setReadPreference ( string $read_preference , array $tags = ? ) : bool
public setWriteConcern ( mixed $w , int $wtimeout = ? ) : bool
public __toString ( ) : string
}

Vordefinierte Konstanten

MongoClient Constants

MongoClient::VERSION
PHP driver version. May be suffixed with "dev", "+" or "-" if it is in-between versions.
MongoClient::DEFAULT_HOST
Host to connect to if no host is given.
MongoClient::DEFAULT_PORT
Port to connect to if no port is given.
MongoClient::RP_PRIMARY
Read preference for the primary replica set member.
MongoClient::RP_PRIMARY_PREFERRED
Read preference for preferring the primary replica set member.
MongoClient::RP_SECONDARY
Read preference for a secondary replica set member.
MongoClient::RP_SECONDARY_PREFERRED
Read preference for preferring a secondary replica set member.
MongoClient::RP_NEAREST
Read preference for the nearest replica set member.

Fields

connected

This property will be set to true if we have a open connection to the database, false otherwise. If the connection is to a replica set, this property will only be true if the driver has a connection to a node matching the current read preference. This property does not take authentication into account.

This property is deprecated since version 1.5.0.

status

This property is no longer used and will be set to null In driver versions 1.1.x and earlier, this may be set to a string value (e.g. "recycled", "new") when persistent connections are used.

This property is deprecated since version 1.5.0.

Siehe auch

  • Read Preferences
  • Write Concerns
  • Connecting
  • MongoDB core docs on » connecting

Inhaltsverzeichnis

  • MongoClient::close — Closes this connection
  • MongoClient::connect — Connects to a database server
  • MongoClient::__construct — Creates a new database connection object
  • MongoClient::dropDB — Drops a database [deprecated]
  • MongoClient::__get — Gets a database
  • MongoClient::getConnections — Return info about all open connections
  • MongoClient::getHosts — Updates status for all associated hosts
  • MongoClient::getReadPreference — Get the read preference for this connection
  • MongoClient::getWriteConcern — Get the write concern for this connection
  • MongoClient::killCursor — Kills a specific cursor on the server
  • MongoClient::listDBs — Lists all of the databases available
  • MongoClient::selectCollection — Gets a database collection
  • MongoClient::selectDB — Gets a database
  • MongoClient::setReadPreference — Set the read preference for this connection
  • MongoClient::setWriteConcern — Set the write concern for this connection
  • MongoClient::__toString — String representation of this connection


Closes this connection

  • « MongoClient
  • MongoClient::connect »
  • PHP Manual
  • MongoClient
  • Closes this connection

MongoClient::close

(PECL mongo >=1.3.0)

MongoClient::close — Closes this connection

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public MongoClient::close ( bool|string $connection = ? ) : bool

The MongoClient::close() method forcefully closes a connection to the database, even if persistent connections are being used. You should never have to do this under normal circumstances.

Parameter-Liste

connection

If connection is not given, or false then connection that would be selected for writes would be closed. In a single-node configuration, that is then the whole connection, but if you are connected to a replica set, close() will only close the connection to the primary server.

If connection is true then all connections as known by the connection manager will be closed. This can include connections that are not referenced in the connection string used to create the object that you are calling close on.

If connection is a string argument, then it will only close the connection identified by this hash. Hashes are identifiers for a connection and can be obtained by calling MongoClient::getConnections().

Rückgabewerte

Returns if the connection was successfully closed.

Beispiele

Beispiel #1 MongoClient::close() example

This example demonstrates how to selectively close all connections for secondaries only.

<?php
// Connect to a replicaset
$a = new MongoClient("mongodb://whisky:13000/?replicaset=seta");

$connections = $a->getConnections();

foreach ( $connections as $con )
{
    // Loop over all the connections, and when the type is "SECONDARY"
    // we close the connection
    if ( $con['connection']['connection_type_desc'] == "SECONDARY" )
    {
        echo "Closing '{$con['hash']}': ";
        $closed = $a->close( $con['hash'] );
        echo $closed ? "ok" : "failed", "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Closing 'whisky:13001;X;4948': ok

Changelog

Version | Beschreibung
PECL mongo 1.3.0 | The connection parameter to this function was added in 1.3.0. Before that, only the write connection would be closed by this method.
PECL mongo 1.2.0 | Before version 1.2.0 the driver would not use persistent connections by default, and all connections would be closed as soon as a MongoDB connection went out if scope. Since version 1.2.0 this is no longer the case and it is a bad idea to call close as you might end up overloading the server with connections under high load.

Siehe auch

  • MongoClient::getConnections() - Return info about all open connections


Connects to a database server

  • « MongoClient::close
  • MongoClient::__construct »
  • PHP Manual
  • MongoClient
  • Connects to a database server

MongoClient::connect

(PECL mongo >=1.3.0)

MongoClient::connect — Connects to a database server

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public MongoClient::connect ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

If the connection was successful.

Fehler/Exceptions

Throws MongoConnectionException if it fails to connect to the database.


Creates a new database connection object

  • « MongoClient::connect
  • MongoClient::dropDB »
  • PHP Manual
  • MongoClient
  • Creates a new database connection object

MongoClient::__construct

(PECL mongo >=1.3.0)

MongoClient::__construct — Creates a new database connection object

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\Driver\Manager::__construct()

Beschreibung

public MongoClient::__construct
 ( string $server = "mongodb://localhost:27017"
, array $options = array("connect" => true)
, array $driver_options = ?
)

If no parameters are passed, this connects to "localhost:27017" (or whatever was specified in php.ini for mongo.default_host and mongo.default_port).

server should have the form:

mongodb://[username:password@]host1[:port1][,host2[:port2:],...]/db

The connection string always starts with mongodb://, to indicate it is a connection string in this form.

If username and password are specified, the constructor will attempt to authenticate the connection with the database before returning. Username and password are optional and must be followed by an @, if specified.

At least one host must be given (port optional, always defaulting to 27017) and as many hosts as desired may be connected to. Host names are comma-separated and the constructor will return successfully if it connected to at least one host. If it could not connect to any of the hosts, it will throw a MongoConnectionException. Please see the Replica Sets section for information on how to connect to Replica Sets.

If you specified a username and password, you may specify a database to authenticate with. If db is not specified, "admin" will be used.

An optional query string may be used to specify extra options. The same options are supported through the options array as well, and are therefore redescribed there. See the examples below on how to set those options.

One part of the options governs how the driver reads from secondary nodes in a replica set environment. Extra information on how these read preferences work is available as well through the read preferences documentation page.

Parameter-Liste

server

The server name.

options

An array of options for the connection. Currently available options include:

  • "authMechanism"

    Available mechanisms are:

    authMechanism | Description | Availability
    MONGODB-CR | Authenticate using Challenge Response mechanism. This is the default value. | All MongoDB versions
    MONGODB-X509 | Authenticates using X509 certificates | MongoDB 2.6. Only available when OpenSSL is enabled
    PLAIN | Authenticates using unencrypted plain username+password. Must be used over SSL connections. Generally used by MongoDB to login via 3rd party LDAP server | MongoDB Enterprise 2.4. The Driver must be compiled against CyrusSASL2
    GSSAPI | Authenticates via kerberos systems | MongoDB Enterprise 2.4. The Driver must be compiled against CyrusSASL2
    SCRAM-SHA-1 | Authenticates using SCRAM-SHA-1 | MongoDB 3.0.

  • "authSource"

    Should be set to the database name where the user is defined it.

  • "connect"

    If the constructor should connect before returning. Default is true. When set to false the driver will automatically connect to the server whenever it is necessary to do a query. Alternatively, you can run MongoClient::connect() manually.

    Warnung

    This option is not supported through the connection string.

  • "connectTimeoutMS"

    How long a connection can take to be opened before timing out in milliseconds. Defaults to 60000 (60 seconds).

    If -1 is specified, no connection timeout will be applied and PHP will use default_socket_timeout.

  • "db"

    The database to authenticate against can be specified here, instead of including it in the host list. This overrides a database given in the host list.

  • "fsync"

    When "fsync" is set, all write operations will block until the database has flushed the changes to disk. This makes the write operations slower, but it guarantees that writes have succeeded and that the operations can be recovered in case of total system failure.

    If the MongoDB server has journaling enabled, this option is identical to "journal". If journaling is not enabled, this option ensures that write operations will be synced to database files on disk.

    Hinweis: If journaling is enabled, users are strongly encouraged to use the "journal" option instead of "fsync". Do not use "fsync" and "journal" simultaneously, as that will result in an error.

  • "journal"

    When "journal" is set, all write operations will block until the database has flushed the changes to the journal on disk. This makes the write operations slower, but it guarantees that writes have succeeded and that the operations can be recovered in case of total system failure.

    Hinweis: If this option is used and journaling is disabled, MongoDB 2.6+ will raise an error and the write will fail; older server versions will simply ignore the option.

  • "gssapiServiceName"

    Sets the » Kerberos service principal. Only applicable when authMechanism=GSSAPI. Defaults to "mongodb".

  • "password"

    The password can be specified here, instead of including it in the host list. This is especially useful if a password has a "@" in it. This overrides a password set in the host list.

  • "readPreference"

    Specifies the read preference type. Read preferences provide you with control from which secondaries data can be read from.

    Allowed values are: MongoClient::RP_PRIMARY,
MongoClient::RP_PRIMARY_PREFERRED,
MongoClient::RP_SECONDARY,
MongoClient::RP_SECONDARY_PREFERRED and
MongoClient::RP_NEAREST.

    See the documentation on read preferences for more information.

  • "readPreferenceTags"

    Specifies the read preference tags as an array of strings. Tags can be used in combination with the readPreference option to further control which secondaries data might be read from.

    See the documentation on read preferences for more information.

  • "replicaSet"

    The name of the replica set to connect to. If this is given, the primary will be automatically be determined. This means that the driver may end up connecting to a server that was not even listed. See the replica set example below for details.

  • "secondaryAcceptableLatencyMS"

    When reading from a secondary (using ReadPreferences), do not read from secondaries known to be more then secondaryAcceptableLatencyMS away from us. Defaults to 15

  • "socketTimeoutMS"

    How long a socket operation (read or write) can take before timing out in milliseconds. Defaults to 30000 (30 seconds).

    If -1 is specified, socket operations may block indefinitely. This option may also be set on a per-operation basis using MongoCursor::timeout() for queries or the "socketTimeoutMS" option for write methods.

    Hinweis: This is a client-side timeout. If a write operation times out, there is no way to know if the server actually handled the write or not, as a MongoCursorTimeoutException will be thrown in lieu of returning a write result.

  • "ssl"

    A boolean to specify whether you want to enable SSL for the connections to MongoDB. Extra options such as certificates can be set with SSL-Kontext-Optionen.

  • "username"

    The username can be specified here, instead of including it in the host list. This is especially useful if a username has a ":" in it. This overrides a username set in the host list.

  • "w"

    The w option specifies the Write Concern for the driver, which determines how long the driver blocks when writing. The default value is 1.

    This option is applicable when connecting to both single servers and replica sets. A positive value controls how many nodes must acknowledge the write instruction before the driver continues. A value of 1 would require the single server or primary (in a replica set) to acknowledge the write operation. A value of 3 would cause the driver to block until the write has been applied to the primary as well as two secondary servers (in a replica set).

    A string value is used to control which tag sets are taken into account for write concerns. "majority" is special and ensures that the write operation has been applied to the majority (more than 50%) of the participating nodes.

  • "wTimeoutMS"

    This option specifies the time limit, in milliseconds, for write concern acknowledgement. It is only applicable for write operations where "w" is greater than 1, as the timeout pertains to replication. If the write concern is not satisfied within the time limit, a MongoCursorException will be thrown. A value of 0 may be specified to block indefinitely. The default value is 10000 (ten seconds).

The following options are deprecated and should no longer be used:

  • "slaveOkay"

    Deprecated. Please use the read preference options.

  • "timeout"

    Deprecated alias for "connectTimeoutMS".

  • "wTimeout"

    Deprecated alias for "wTimeoutMS".

driver_options

An array of options for the MongoDB driver. Options include setting connection context options for SSL or logging callbacks.

  • "context"

    The Stream Context to attach to all new connections. This allows you for example to configure SSL certificates and are described at SSL context options. See the Connecting over SSL tutorial.

Rückgabewerte

Returns a new database connection object.

Fehler/Exceptions

Throws MongoConnectionException if it tries and fails to connect to the database for all hostnames given. It will also throw a MongoConnnectionException if an invalid username or password is given. See MongoConnectionException documentation for common exceptions and their causes.

Beispiele

Beispiel #1 MongoClient::__construct() replica set example

This example shows how to connect the driver to a replica set. It assumes that there is a set of three servers: sf1.example.com, sf2.example.com, and ny1.example.com. The primary could be any one of these servers.

<?php

// pass a comma-separated list of server names to the constructor
// Note that we don't need to pass in all the members of the replicaset, the driver
// will derive the full list.
$m1 = new MongoClient("mongodb://sf2.example.com,ny1.example.com", array("replicaSet" => "myReplSet"));

?>

If the current primary fails, the driver will figure out which secondary server became the new primary and automatically start using that connection. Automatic failover will not work correctly if replicaSet is not specified.

At least one seed in the seed list must be up for the driver to connect to the replica set.

If you include seeds from two separate replica sets, behavior is undefined.

See the » core documentation on replica sets for more information.

Beispiel #2 Connecting to a domain socket

In version 1.0.9+, you can use a UNIX domain socket to connect to an instance of MongoDB running locally. This should be slightly faster than using a network connection.

In version 1.5.0, the MongoDB server automatically opens a socket at /tmp/mongodb-<port>.sock. You can connect to this by specifying the path in your connection string:

<?php

// MongoDB server running locally on port 20000
$m = new MongoClient("mongodb:///tmp/mongodb-20000.sock");

?>

You can combine this with any other connections you'd like:

<?php

// try to connect to the domain socket, fall back to localhost connection
$m = new MongoClient("mongodb:///tmp/mongodb-27017.sock,localhost:27017");

?>

Beispiel #3 MongoClient::__construct() authentication example

A user must exist in the admin database before attempting to use authentication. You can create one with the Mongo shell by running:

> use admin
switched to db admin
> db.addUser("testUser", "testPass");
{
        "_id" : ObjectId("4b21272fd9ab21611d19095c"),
        "user" : "testUser",
        "pwd" : "03b9b27e0abf1865e2f6fcbd9845dd59"
}
>

After creating a user with, in this case, username "testUser" and password "testPass", you can create an authenticated connection:

<?php

$m = new MongoClient("mongodb://testUser:testPass@localhost");

?>

Beispiel #4 MongoClient::__construct() read preference example

<?php

// Prefer the nearest server in the "east" data center
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));
?>

See the read preferences section of this manual for further information.

Beispiel #5 MongoClient::__construct() options example

Options can be passed both through the query string in the connection string, or as an array passed as second argument to the constructor.

Here we set the journal option to true and readPreference to secondary preferred as default for all write operations:

<?php
$m = new MongoClient("mongodb://localhost/?journal=true&readPreference=secondary");
?>

And now we do the same, but as an options array:

<?php
$options = array(
    'journal' => true,
    'readPreference' => 'secondary',
);
$m = new MongoClient("mongodb://localhost/", $options);
?>

Beispiel #6 MongoClient::__construct() read preference example

<?php

// Prefer the nearest server in the "east" data center
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));
?>

See the read preferences section of this manual for further information.

Changelog

Version | Beschreibung
PECL mongo 1.6.0

Added support for "SCRAM-SHA-1" in "authMechanism" option.

PECL mongo 1.5.0

Added "authMechanism", "gssapiServiceName", and "secondaryAcceptableLatencyMS".

PECL mongo 1.4.0

Added "ssl" option and support for connecting over SSL.

Added "wTimeoutMS" option, which replaces "wTimeout".

Emits E_DEPRECATED when "slaveOkay" or "timeout" is used.

PECL mongo 1.5.0

Added "authSource".

PECL mongo 1.3.4

Added "connectTimeoutMS" and "socketTimeoutMS" options.

PECL mongo 1.3.0

Added "readPreference", "readPreferenceTags", "w", and "wTimeout" options.

PECL mongo 1.2.0

Added "username" and "password" options.

Removed "persist" option, as all connections are now persistent. It can still be used, but it doesn't affect anything.

"persist"

If the connection should be persistent. If set, the connection will be persistent. The string representation of the value is used as an ID for the connection, so two instances of MongoClient that are initialized with array("persist" => "foobar") will share the same database connection, whereas an instance initialized with array("persist" => "barbaz") will use a different database connection.

The "replicaSet" option now takes a string, not a boolean.

PECL mongo 1.0.9 | Added "replicaSet" option.
PECL mongo 1.0.2

Changed constructor to take an array of options. Pre-1.0.2, the constructor took the following parameters:

server

The server name.

connect

Optional boolean parameter specifying if the constructor should connect to the database before returning. Defaults to true.

persistent

If the connection should be persistent.

paired

If the connection should be paired.


Drops a database [deprecated]

  • « MongoClient::__construct
  • MongoClient::__get »
  • PHP Manual
  • MongoClient
  • Drops a database [deprecated]

MongoClient::dropDB

(PECL mongo >=1.3.0)

MongoClient::dropDB — Drops a database [deprecated]

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension, but there is an alternative in the PHP library:

  • » MongoDB\Client::dropDatabase()

Beschreibung

public MongoClient::dropDB ( mixed $db ) : array
Warnung

Deprecated

Use MongoDB::drop() instead.

Parameter-Liste

db

The database to drop. Can be a MongoDB object or the name of the database.

Rückgabewerte

Returns the database response.


Gets a database

  • « MongoClient::dropDB
  • MongoClient::getConnections »
  • PHP Manual
  • MongoClient
  • Gets a database

MongoClient::__get

(PECL mongo >=1.3.0)

MongoClient::__get — Gets a database

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension, but there is an alternative in the PHP library:

  • » MongoDB\Client::__get()

Beschreibung

public MongoClient::__get ( string $dbname ) : MongoDB

This is the cleanest way of getting a database. If the database name has any special characters, MongoClient::selectDB() will need to be used; however, this should be sufficient for most cases.

<?php

$mongo = new MongoClient();

// the following two lines are equivalent
$db = $mongo->selectDB("foo");
$db = $mongo->foo;

?>

Parameter-Liste

dbname

The database name.

Rückgabewerte

Returns a new db object.

Fehler/Exceptions

Throws a generic exception if the database name is invalid.


Return info about all open connections

  • « MongoClient::__get
  • MongoClient::getHosts »
  • PHP Manual
  • MongoClient
  • Return info about all open connections

MongoClient::getConnections

(PECL mongo >=1.3.0)

MongoClient::getConnections — Return info about all open connections

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public static MongoClient::getConnections ( ) : array

Returns an array of all open connections, and information about each of the servers

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of open connections.

Beispiele

Beispiel #1 MongoClient::getConnections() example

<?php
$m = new MongoClient;
var_dump($m->getConnections());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  array(3) {
    ["hash"]=>
    string(26) "localhost:27017;-;X;56052"
    ["server"]=>
    array(3) {
      ["host"]=>
      string(10) "localhost"
      ["port"]=>
      int(27017)
      ["pid"]=>
      int(56052)
    }
    ["connection"]=>
    array(8) {
      ["last_ping"]=>
      int(1354076401)
      ["last_ismaster"]=>
      int(0)
      ["ping_ms"]=>
      int(0)
      ["connection_type"]=>
      int(1)
      ["connection_type_desc"]=>
      string(10) "STANDALONE"
      ["max_bson_size"]=>
      int(16777216)
      ["tag_count"]=>
      int(0)
      ["tags"]=>
      array(0) {
      }
    }
  }
}


Updates status for all associated hosts

  • « MongoClient::getConnections
  • MongoClient::getReadPreference »
  • PHP Manual
  • MongoClient
  • Updates status for all associated hosts

MongoClient::getHosts

(PECL mongo >=1.3.0)

MongoClient::getHosts — Updates status for all associated hosts

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\Driver\Manager::getServers()

Beschreibung

public MongoClient::getHosts ( ) : array

This method is only useful with a connection to a replica set. It returns the status of all of the hosts in the set. Without a replica set, it will just return an array with one element containing the host that you are connected to.

See the query section of this manual for information on distributing reads to secondaries.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array of information about the hosts in the set. Includes each host's hostname, its health (1 is healthy), its state (1 is primary, 2 is secondary, 0 is anything else), the amount of time it took to ping the server, and when the last ping occurred. For example, on a three-member replica set, it might look something like:

array(3) {
  ["A:27017"]=>
  array(4) {
    ["host"]=>
    "A"
    ["port"]=>
    27017
    ["health"]=>
    int(1)
    ["state"]=>
    int(2)
    ["ping"]=>
    int(369)
    ["lastPing"]=>
    int(1309470644)
  }
  ["B:27017"]=>
  array(4) {
    ["host"]=>
    "B"
    ["port"]=>
    27017
    ["health"]=>
    int(1)
    ["state"]=>
    int(1)
    ["ping"]=>
    int(139)
    ["lastPing"]=>
    int(1309470644)
  }
  ["C:27017"]=>
  array(4) {
    ["host"]=>
    "C"
    ["port"]=>
    27017
    ["health"]=>
    int(1)
    ["state"]=>
    int(2)
    ["ping"]=>
    int(1012)
    ["lastPing"]=>
    int(1309470644)
  }
}

Changelog

Version | Beschreibung
PECL mongo 1.2.10 | Support for non-replicasets was added. The returned array elements now also include the hostname and port.

Siehe auch

  • MongoClient::getConnections() - Return info about all open connections


Get the read preference for this connection

  • « MongoClient::getHosts
  • MongoClient::getWriteConcern »
  • PHP Manual
  • MongoClient
  • Get the read preference for this connection

MongoClient::getReadPreference

(PECL mongo >=1.3.0)

MongoClient::getReadPreference — Get the read preference for this connection

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public MongoClient::getReadPreference ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This function returns an array describing the read preference. The array contains the values type for the string read preference mode (corresponding to the MongoClient constants), and tagsets containing a list of all tag set criteria. If no tag sets were specified, tagsets will not be present in the array.

Changelog

Version | Beschreibung
PECL mongo 1.3.3 | The return value has changed to be consistent with MongoClient::setReadPreference(). The type value was changed from a number to a string, type_string was removed, and tagsets now expresses tags as key/value pairs instead of colon-delimited strings.

Beispiele

Beispiel #1 MongoClient::getReadPreference() return value example

<?php

$m = new MongoClient();
$m->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($m->getReadPreference());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Siehe auch

  • The read preferences documentation.
  • MongoClient::setReadPreference() - Set the read preference for this connection


Get the write concern for this connection

  • « MongoClient::getReadPreference
  • MongoClient::killCursor »
  • PHP Manual
  • MongoClient
  • Get the write concern for this connection

MongoClient::getWriteConcern

(PECL mongo >=1.5.0)

MongoClient::getWriteConcern — Get the write concern for this connection

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public MongoClient::getWriteConcern ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This function returns an array describing the write concern. The array contains the values w for an integer acknowledgement level or string mode, and wtimeout denoting the maximum number of milliseconds to wait for the server to satisfy the write concern.

Beispiele

Beispiel #1 MongoClient::getWriteConcern() return value example

<?php

$mc = new MongoClient('mongodb://localhost:27017', array('wTimeoutMS' => 500));
var_dump($mc->getWriteConcern());

$mc->setWriteConcern(1, 1000);
var_dump($mc->getWriteConcern());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(500)
}
array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(1000)
}

Siehe auch

  • The write concern documentation.
  • MongoClient::setWriteConcern() - Set the write concern for this connection


Kills a specific cursor on the server

  • « MongoClient::getWriteConcern
  • MongoClient::listDBs »
  • PHP Manual
  • MongoClient
  • Kills a specific cursor on the server

MongoClient::killCursor

(PECL mongo >=1.5.0)

MongoClient::killCursor — Kills a specific cursor on the server

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public MongoClient::killCursor ( string $server_hash , int|MongoInt64 $id ) : bool

In certain situations it might be needed to kill a cursor on the server. Usually cursors time out after 10 minutes of inactivity, but it is possible to create an immortal cursor with MongoCursor::immortal() that never times out. In order to be able to kill such an immortal cursor, you can call this method with the information supplied by MongoCursor::info().

Parameter-Liste

server_hash

The server hash that has the cursor. This can be obtained through MongoCursor::info().

id

The ID of the cursor to kill. You can either supply an int containing the 64 bit cursor ID, or an object of the MongoInt64 class. The latter is necessary on 32 bit platforms (and Windows).

Rückgabewerte

Returns true if the method attempted to kill a cursor, and false if there was something wrong with the arguments (such as a wrong server_hash). The return status does not reflect where the cursor was actually killed as the server does not provide that information.

Fehler/Exceptions

This method displays a warning if the supplied server_hash does not match up with an existing connection. No attempt to kill a cursor is attempted in that case either.

Beispiele

Beispiel #1 MongoClient::killCursor() example

This example shows how to connect, do a query, obtain the cursor information and then kill the cursor.

<?php
$m = new MongoClient();
$c = $m->testdb->collection;
$cursor = $c->find();
$result = $cursor->next();

// Now the cursor is valid, so we can get the hash and ID out:
$info = $cursor->info();

// Kill the cursor
MongoClient::killCursor( $info['server'], $info['id'] );
?>


Lists all of the databases available

  • « MongoClient::killCursor
  • MongoClient::selectCollection »
  • PHP Manual
  • MongoClient
  • Lists all of the databases available

MongoClient::listDBs

(PECL mongo >=1.3.0)

MongoClient::listDBs — Lists all of the databases available

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension, but there is an alternative in the PHP library:

  • » MongoDB\Client::listDatabases()

Beschreibung

public MongoClient::listDBs ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an associative array containing three fields. The first field is databases, which in turn contains an array. Each element of the array is an associative array corresponding to a database, giving th database's name, size, and if it's empty. The other two fields are totalSize (in bytes) and ok, which is 1 if this method ran successfully.

Beispiele

Beispiel #1 MongoClient::listDBs() example

Example demonstrating how to use listDBs and the returned data structure.

<?php

$mongo = new MongoClient();
$dbs = $mongo->listDBs();
print_r($dbs);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [databases] => Array
        (
            [0] => Array
                (
                    [name] => doctrine
                    [sizeOnDisk] => 218103808
                    [empty] =>
                )
        )

    [totalSize] => 218103808
    [ok] => 1
)


Gets a database collection

  • « MongoClient::listDBs
  • MongoClient::selectDB »
  • PHP Manual
  • MongoClient
  • Gets a database collection

MongoClient::selectCollection

(PECL mongo >=1.3.0)

MongoClient::selectCollection — Gets a database collection

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension, but there is an alternative in the PHP library:

  • » MongoDB\Client::selectCollection()

Beschreibung

public MongoClient::selectCollection ( string $db , string $collection ) : MongoCollection

Parameter-Liste

db

The database name.

collection

The collection name.

Rückgabewerte

Returns a new collection object.

Fehler/Exceptions

Throws Exception if the database or collection name is invalid.

Beispiele

Beispiel #1 MongoClient::selectCollection() example

<?php
$m = new MongoClient();

$c1 = $m->selectCollection("foo", "bar.baz");
// which is equivalent to
$c2 = $m->selectDB("foo")->selectCollection("bar.baz");

// $c1 and $c2 now represent the same collection
?>


Gets a database

  • « MongoClient::selectCollection
  • MongoClient::setReadPreference »
  • PHP Manual
  • MongoClient
  • Gets a database

MongoClient::selectDB

(PECL mongo >=1.3.0)

MongoClient::selectDB — Gets a database

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension, but there is an alternative in the PHP library:

  • » MongoDB\Client::selectDatabase()

Beschreibung

public MongoClient::selectDB ( string $name ) : MongoDB

Parameter-Liste

name

The database name.

Rückgabewerte

Returns a new database object.

Fehler/Exceptions

Throws Exception if the database name is invalid.


Set the read preference for this connection

  • « MongoClient::selectDB
  • MongoClient::setWriteConcern »
  • PHP Manual
  • MongoClient
  • Set the read preference for this connection

MongoClient::setReadPreference

(PECL mongo >=1.3.0)

MongoClient::setReadPreference — Set the read preference for this connection

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public MongoClient::setReadPreference ( string $read_preference , array $tags = ? ) : bool

Parameter-Liste

read_preference

The read preference mode: MongoClient::RP_PRIMARY,
MongoClient::RP_PRIMARY_PREFERRED,
MongoClient::RP_SECONDARY,
MongoClient::RP_SECONDARY_PREFERRED, or
MongoClient::RP_NEAREST.

tags

An array of zero or more tag sets, where each tag set is itself an array of criteria used to match tags on replica set members.

Rückgabewerte

Returns true on success, or false otherwise.

Fehler/Exceptions

Emits E_WARNING if either parameter is invalid, or if one or more tag sets are provided with the MongoClient::RP_PRIMARY read preference mode.

Beispiele

Beispiel #1 MongoClient::setReadPreference() tag set array syntax example

<?php

$m = new MongoClient();

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Siehe auch

  • The read preferences documentation.
  • MongoClient::getReadPreference() - Get the read preference for this connection


Set the write concern for this connection

  • « MongoClient::setReadPreference
  • MongoClient::__toString »
  • PHP Manual
  • MongoClient
  • Set the write concern for this connection

MongoClient::setWriteConcern

(PECL mongo >=1.5.0)

MongoClient::setWriteConcern — Set the write concern for this connection

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public MongoClient::setWriteConcern ( mixed $w , int $wtimeout = ? ) : bool

Parameter-Liste

w

The write concern. This may be an integer denoting the number of servers required to acknowledge the write, or a string mode (e.g. "majority").

wtimeout

The maximum number of milliseconds to wait for the server to satisfy the write concern.

Rückgabewerte

Returns true on success, or false otherwise.

Fehler/Exceptions

Emits E_WARNING if the w parameter is not an integer or string value.

Beispiele

Beispiel #1 MongoClient::setWriteConcern() example

<?php

$mc = new MongoClient('mongodb://rs1.example.com,rs2.example.com');

// Require that the majority of servers in the replica set acknowledge writes
// within three seconds.
$mc->setWriteConcern('majority', 3000);
?>

Siehe auch

  • The write concern documentation.
  • MongoClient::getWriteConcern() - Get the write concern for this connection


String representation of this connection

  • « MongoClient::setWriteConcern
  • MongoDB »
  • PHP Manual
  • MongoClient
  • String representation of this connection

MongoClient::__toString

(PECL mongo >=1.3.0)

MongoClient::__toString — String representation of this connection

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public MongoClient::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns hostname and port for this connection.


The MongoDB class

(PECL mongo >=0.9.0)

Einführung

Instances of this class are used to interact with a database. To get a database:

Beispiel #1 Selecting a database

<?php

$m = new MongoClient(); // connect
$db = $m->selectDB("example");

?>
Database names can use almost any character in the ASCII range. However, they cannot contain " ", "." or be the empty string. The name "system" is also reserved.

A few unusual, but valid, database names: "null", "[x,y]", "3", "\"", "/".

Unlike collection names, database names may contain "$".

Klassenbeschreibung

MongoDB {
/* Konstanten */
const int PROFILING_OFF = 0 ;
const int PROFILING_SLOW = 1 ;
const int PROFILING_ON = 2 ;
/* Fields */
public int $w = 1 ;
public int $wtimeout = 10000 ;
/* Methoden */
public authenticate ( string $username , string $password ) : array
public command ( array $command , array $options = array() , string &$hash = ? ) : array
public __construct ( MongoClient $conn , string $name )
public createCollection ( string $name , array $options = ? ) : MongoCollection
public createDBRef ( string $collection , mixed $document_or_id ) : array
public drop ( ) : array
public dropCollection ( mixed $coll ) : array
public execute ( mixed $code , array $args = array() ) : array
public forceError ( ) : bool
public __get ( string $name ) : MongoCollection
public getCollectionInfo ( array $options = array() ) : array
public getCollectionNames ( array $options = array() ) : array
public getDBRef ( array $ref ) : array
public getGridFS ( string $prefix = "fs" ) : MongoGridFS
public getProfilingLevel ( ) : int
public getReadPreference ( ) : array
public getSlaveOkay ( ) : bool
public getWriteConcern ( ) : array
public lastError ( ) : array
public listCollections ( array $options = array() ) : array
public prevError ( ) : array
public repair ( bool $preserve_cloned_files = false , bool $backup_original_files = false ) : array
public resetError ( ) : array
public selectCollection ( string $name ) : MongoCollection
public setProfilingLevel ( int $level ) : int
public setReadPreference ( string $read_preference , array $tags = ? ) : bool
public setSlaveOkay ( bool $ok = true ) : bool
public setWriteConcern ( mixed $w , int $wtimeout = ? ) : bool
public __toString ( ) : string
}

Vordefinierte Konstanten

MongoDB Log Levels

MongoDB::PROFILING_OFF
Profiling is off.
MongoDB::PROFILING_SLOW
Profiling is on for slow operations (>100 ms).
MongoDB::PROFILING_ON
Profiling is on for all operations.

Fields

w
1

The number of servers to replicate a change to before returning success. Inherited by instances of MongoCollection derived from this. w functionality is only available in version 1.5.1+ of the MongoDB server and 1.0.8+ of the driver.

w is used whenever you need to adjust the acknowledgement level (MongoCollection::insert(), MongoCollection::update(), MongoCollection::remove(), MongoCollection::save(), and MongoCollection::ensureIndex() all support this option). With the default value (1), an acknowledged operation will return once the database server has the operation. If the server goes down before the operation has been replicated to a secondary, it is possible to lose the operation forever. Thus, you can specify w to be higher than one and guarantee that at least one secondary has the operation before it is considered successful.

For example, if w is 2, the primary and one secondary must have a record of the operation or the driver will throw a MongoCursorException. It is tempting to set w to the total number of secondaries + primary, but then if one secondary is down the operation will fail and an exception will be thrown, so usually w=2 is safest (primary and one secondary).

wtimeout
10000

The number of milliseconds to wait for MongoDB::$w replications to take place. Inherited by instances of MongoCollection derived from this. w functionality is only available in version 1.5.1+ of the MongoDB server and 1.0.8+ of the driver.

Unless wtimeout is set, the server waits forever for replicating to w servers to finish. The driver defaults to waiting for 10 seconds, you can change this value to alter its behavior.

Siehe auch

MongoDB core docs on » databases.

Inhaltsverzeichnis

  • MongoDB::authenticate — Log in to this database
  • MongoDB::command — Execute a database command
  • MongoDB::__construct — Creates a new database
  • MongoDB::createCollection — Creates a collection
  • MongoDB::createDBRef — Creates a database reference
  • MongoDB::drop — Drops this database
  • MongoDB::dropCollection — Drops a collection [deprecated]
  • MongoDB::execute — Runs JavaScript code on the database server [deprecated]
  • MongoDB::forceError — Creates a database error
  • MongoDB::__get — Gets a collection
  • MongoDB::getCollectionInfo — Returns information about collections in this database
  • MongoDB::getCollectionNames — Gets an array of names for all collections in this database
  • MongoDB::getDBRef — Fetches the document pointed to by a database reference
  • MongoDB::getGridFS — Fetches toolkit for dealing with files stored in this database
  • MongoDB::getProfilingLevel — Gets this database's profiling level
  • MongoDB::getReadPreference — Get the read preference for this database
  • MongoDB::getSlaveOkay — Get slaveOkay setting for this database
  • MongoDB::getWriteConcern — Get the write concern for this database
  • MongoDB::lastError — Check if there was an error on the most recent db operation performed
  • MongoDB::listCollections — Gets an array of MongoCollection objects for all collections in this database
  • MongoDB::prevError — Checks for the last error thrown during a database operation
  • MongoDB::repair — Repairs and compacts this database
  • MongoDB::resetError — Clears any flagged errors on the database
  • MongoDB::selectCollection — Gets a collection
  • MongoDB::setProfilingLevel — Sets this database's profiling level
  • MongoDB::setReadPreference — Set the read preference for this database
  • MongoDB::setSlaveOkay — Change slaveOkay setting for this database
  • MongoDB::setWriteConcern — Set the write concern for this database
  • MongoDB::__toString — The name of this database


Log in to this database

  • « MongoDB
  • MongoDB::command »
  • PHP Manual
  • MongoDB
  • Log in to this database

MongoDB::authenticate

(PECL mongo >=1.0.1)

MongoDB::authenticate — Log in to this database

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Instead, you need to provide credentials through the connection string.

Beschreibung

public MongoDB::authenticate ( string $username , string $password ) : array

This method causes its connection to be authenticated. If authentication is enabled for the database server (it's not, by default), you need to log in before the database will allow you to do anything.

In general, you should use the authenticate built into MongoClient::__construct() in preference to this method. If you authenticate on connection and the connection drops and reconnects during your session, you'll be reauthenticated. If you manually authenticated using this method and the connection drops, you'll have to call this method again once you're reconnected.

This method is identical to running:

<?php

$salted = "${username}:mongo:${password}";
$hash = md5($salted);

$nonce = $db->command(array("getnonce" => 1));

$saltedHash = md5($nonce["nonce"]."${username}${hash}");

$result = $db->command(array("authenticate" => 1,
    "user" => $username,
    "nonce" => $nonce["nonce"],
    "key" => $saltedHash
));

?>

Once a connection has been authenticated, it can only be un-authenticated by using the "logout" database command:

<?php

$db->command(array("logout" => 1));

?>

Parameter-Liste

username

The username.

password

The password (in plaintext).

Rückgabewerte

Returns database response. If the login was successful, it will return

<?php
array("ok" => 1);
?>
If something went wrong, it will return
<?php
array("ok" => 0, "errmsg" => "auth fails");
?>
("auth fails" could be another message, depending on database version and what when wrong).

Siehe auch

MongoDB core docs on » authenticate.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used. Please pass in the authentication details to the constructor.


Execute a database command

  • « MongoDB::authenticate
  • MongoDB::__construct »
  • PHP Manual
  • MongoDB
  • Execute a database command

MongoDB::command

(PECL mongo >=0.9.2)

MongoDB::command — Execute a database command

Beschreibung

public MongoDB::command ( array $command , array $options = array() , string &$hash = ? ) : array

Almost everything that is not a CRUD operation can be done with a database command. Need to know the database version? There's a command for that. Need to do aggregation? There's a command for that. Need to turn up logging? You get the idea.

This method is identical to:

<?php

public function command($data) {
    return $this->selectCollection('$cmd')->findOne($data);
}

?>

Parameter-Liste

command

The query to send.

options

An array of options for the index creation. Currently available options include:

  • "socketTimeoutMS"

    This option specifies the time limit, in milliseconds, for socket communication. If the server does not respond within the timeout period, a MongoCursorTimeoutException will be thrown and there will be no way to determine if the server actually handled the write or not. A value of -1 may be specified to block indefinitely. The default value for MongoClient is 30000 (30 seconds).

The following options are deprecated and should no longer be used:

  • "timeout"

    Deprecated alias for "socketTimeoutMS".

hash

Set to the connection hash of the server that executed the command. When the command result is suitable for creating a MongoCommandCursor, the hash is intended to be passed to MongoCommandCursor::createFromDocument().

The hash will also correspond to a connection returned from MongoClient::getConnections().

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Renamed the "timeout" option to "socketTimeoutMS". Emits E_DEPRECATED when "timeout" is used. Added hash by-reference parameter.
PECL mongo 1.2.0 | Added options parameter with a single option: "timeout".

Rückgabewerte

Returns database response. Every database response is always maximum one document, which means that the result of a database command can never exceed 16MB. The resulting document's structure depends on the command, but most results will have the ok field to indicate success or failure and results containing an array of each of the resulting documents.

Beispiele

Beispiel #1 MongoDB::command() "distinct" example

Finding all of the distinct values for a key.

<?php

$people = $db->people;

$people->insert(array("name" => "Joe", "age" => 4));
$people->insert(array("name" => "Sally", "age" => 22));
$people->insert(array("name" => "Dave", "age" => 22));
$people->insert(array("name" => "Molly", "age" => 87));

$ages = $db->command(array("distinct" => "people", "key" => "age"));

foreach ($ages['values'] as $age) {
    echo "$age\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

4
22
87

Beispiel #2 MongoDB::command() "distinct" example

Finding all of the distinct values for a key, where the value is larger than or equal to 18.

<?php

$people = $db->people;

$people->insert(array("name" => "Joe", "age" => 4));
$people->insert(array("name" => "Sally", "age" => 22));
$people->insert(array("name" => "Dave", "age" => 22));
$people->insert(array("name" => "Molly", "age" => 87));

$ages = $db->command(
    array(
        "distinct" => "people",
        "key" => "age",
        "query" => array("age" => array('$gte' => 18))
    )
);

foreach ($ages['values'] as $age) {
    echo "$age\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

22
87

Beispiel #3 MongoDB::command() MapReduce example

Get all users with at least on "sale" event, and how many times each of these users has had a sale.

<?php

// sample event document
$events->insert(array("user_id" => $id,
    "type" => $type,
    "time" => new MongoDate(),
    "desc" => $description));

// construct map and reduce functions
$map = new MongoCode("function() { emit(this.user_id,1); }");
$reduce = new MongoCode("function(k, vals) { ".
    "var sum = 0;".
    "for (var i in vals) {".
        "sum += vals[i];".
    "}".
    "return sum; }");

$sales = $db->command(array(
    "mapreduce" => "events",
    "map" => $map,
    "reduce" => $reduce,
    "query" => array("type" => "sale"),
    "out" => array("merge" => "eventCounts")));

$users = $db->selectCollection($sales['result'])->find();

foreach ($users as $user) {
    echo "{$user['_id']} had {$user['value']} sale(s).\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

User 47cc67093475061e3d9536d2 had 3 sale(s).
User 49902cde5162504500b45c2c had 14 sale(s).
User 4af467e4fd543cce7b0ea8e2 had 1 sale(s).

Hinweis: Using MongoCode

This example uses MongoCode, which can also take a scope argument. However, at the moment, MongoDB does not support using scopes in MapReduce. If you would like to use client-side variables in the MapReduce functions, you can add them to the global scope by using the optional scope field with the database command. See the » MapReduce documentation for more information.

Hinweis: The out argument

Before 1.8.0, the out argument was optional. If you did not use it, MapReduce results would be written to a temporary collection, which would be deleted when your connection was closed. In 1.8.0+, the out argument is required. See the » MapReduce documentation for more information.

Beispiel #4 MongoDB::command() "geoNear" example

This example shows how to use the geoNear command.

<?php
$m = new MongoClient();
$d = $m->demo;
$c = $d->poiConcat;

$r = $d->command(array(
    'geoNear' => "poiConcat",      // Search in the poiConcat collection
    'near' => array(-0.08, 51.48), // Search near 51.48°N, 0.08°E
    'spherical' => true,           // Enable spherical search
    'num' => 5,                    // Maximum 5 returned documents
));
print_r($r);
?>

Siehe auch

  • MongoCollection::aggregate() - Perform an aggregation using the aggregation framework
  • MongoCollection::findAndModify() - Update a document and return it
  • MongoCollection::group() - Performs an operation similar to SQL's GROUP BY command

MongoDB core docs on » database commands.


Creates a new database

  • « MongoDB::command
  • MongoDB::createCollection »
  • PHP Manual
  • MongoDB
  • Creates a new database

MongoDB::__construct

(PECL mongo >=0.9.0)

MongoDB::__construct — Creates a new database

Beschreibung

public MongoDB::__construct ( MongoClient $conn , string $name )

This method is not meant to be called directly. The preferred way to create an instance of MongoDB is through MongoClient::__get() or MongoClient::selectDB().

If you're ignoring the previous paragraph and want to call it directly you can do so:

<?php

$m = new MongoClient();
$db = new MongoDB($m, 'mydbname');

?>

But don't. Isn't this much nicer:

<?php

$m = new MongoClient();
$db = $m->mydbname;

// or, if the name contains weird characters:

$db = $m->selectDB('my,db:name');

?>

Parameter-Liste

MongoClient conn

Database connection.

name

Database name.

Rückgabewerte

Returns the database.

Fehler/Exceptions

Throws default exception if the database name is invalid.


Creates a collection

  • « MongoDB::__construct
  • MongoDB::createDBRef »
  • PHP Manual
  • MongoDB
  • Creates a collection

MongoDB::createCollection

(PECL mongo >=0.9.0)

MongoDB::createCollection — Creates a collection

Beschreibung

public MongoDB::createCollection ( string $name , array $options = ? ) : MongoCollection

This method is used to create capped collections and other collections requiring special options. It is identical to running:

<?php

$collection = $db->command(array(
    "create" => $name,
    "capped" => $options["capped"],
    "size" => $options["size"],
    "max" => $options["max"],
    "autoIndexId" => $options["autoIndexId"],
));

?>
See MongoDB::command() for more information about database commands.

Parameter-Liste

name

The name of the collection.

options

An array containing options for the collections. Each option is its own element in the options array, with the option name listed below being the key of the element. The supported options depend on the MongoDB server version and storage engine, and the driver passes any option that you give it straight to the server. A few of the supported options are, but you can find a full list in the MongoDB core docs on » createCollection:

capped

If the collection should be a fixed size.

size

If the collection is fixed size, its size in bytes.

max

If the collection is fixed size, the maximum number of elements to store in the collection.

autoIndexId

If capped is true you can specify false to disable the automatic index created on the _id field. Before MongoDB 2.2, the default value for autoIndexId was false.

Rückgabewerte

Returns a collection object representing the new collection.

Beispiele

Beispiel #1 MongoDB::createCollection() capped collection example

A capped collection is a special type of collection that has either a fixed or a fixed number of elements. Once the collection is "full," the oldest elements will be removed when new elements are added. Capped collections can be very useful for applications like logging, where you may want to reserve a certain amount of space for logs and not worry about them getting too big.

This example creates a very tiny log collection that will keep a maximum of 10 documents.

<?php

$log = $db->createCollection(
    "logger",
    array(
        'capped' => true,
        'size' => 10*1024,
        'max' => 10
    )
);

for ($i = 0; $i < 100; $i++) {
    $log->insert(array("level" => WARN, "msg" => "sample log message #$i", "ts" => new MongoDate()));
}

$msgs = $log->find();

foreach ($msgs as $msg) {
    echo $msg['msg']."\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

sample log message #90
sample log message #91
sample log message #92
sample log message #93
sample log message #94
sample log message #95
sample log message #96
sample log message #97
sample log message #98
sample log message #99

Changelog

Version Beschreibung
PECL mongo 1.4.0

In versions before 1.4.0, the options were all arguments to the method. The function synopsis in those older versions is:

public MongoDB::createCollection ( string $name , bool $capped = false , int $size = 0 , int $max = 0 ) : MongoCollection

The meaning of the options is the same as described under the options argument above.


Creates a database reference

  • « MongoDB::createCollection
  • MongoDB::drop »
  • PHP Manual
  • MongoDB
  • Creates a database reference

MongoDB::createDBRef

(PECL mongo >=0.9.0)

MongoDB::createDBRef — Creates a database reference

Beschreibung

public MongoDB::createDBRef ( string $collection , mixed $document_or_id ) : array

This method is a flexible interface for creating database refrences (see MongoDBRef).

Parameter-Liste

collection

The collection to which the database reference will point.

document_or_id

If an array or object is given, its _id field will be used as the reference ID. If a MongoId or scalar is given, it will be used as the reference ID.

Rückgabewerte

Returns a database reference array.

If an array without an _id field was provided as the document_or_id parameter, null will be returned.

Beispiele

Beispiel #1 MongoDB::createDBRef() example

Example demonstrating how to programatically create a DB reference array from a document.

<?php

$articles = $db->articles;

$article = array(
 'title' => 'Test article',
 'description' => 'Test article description'
);

$articles->insert($article);
$ref = $db->createDBRef('articles', $article);

print_r($article);
print_r($ref);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

     Array
     (
         [title] => Test article
         [description] => Test article description
         [_id] => MongoId Object
             (
             )

     )
     Array
     (
         [$ref] => articles
         [$id] => MongoId Object
             (
             )

     )

Now the $ref can be stored on another document and retrieved later with MongoDB::getDBRef() or MongoCollection::getDBRef().

Beispiel #2 MongoDB::createDBRef() example

Example demonstrating how to programatically create a DB reference from just an id.

<?php

$id = new MongoId('47cc67093475061e3d9536d2');
$ref = $db->createDBRef('articles', $id);
?>


Drops this database

  • « MongoDB::createDBRef
  • MongoDB::dropCollection »
  • PHP Manual
  • MongoDB
  • Drops this database

MongoDB::drop

(PECL mongo >=0.9.0)

MongoDB::drop — Drops this database

Beschreibung

public MongoDB::drop ( ) : array

This drops the database currently being used.

This is identical to running:

<?php

public function drop() {
    $this->command(array("dropDatabase" => 1));
}

?>

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the database response.

Beispiele

Beispiel #1 MongoDB::drop() example

This example demonstrates how to drop a mongo database and the response to expect.

<?php

$db = $mongo->foo;
$response = $db->drop();
print_r($response);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [dropped] => foo.$cmd
    [ok] => 1
)


Drops a collection [deprecated]

  • « MongoDB::drop
  • MongoDB::execute »
  • PHP Manual
  • MongoDB
  • Drops a collection [deprecated]

MongoDB::dropCollection

(PECL mongo >=0.9.0)

MongoDB::dropCollection — Drops a collection [deprecated]

Beschreibung

public MongoDB::dropCollection ( mixed $coll ) : array
Warnung

Deprecated

Use MongoCollection::drop() instead.

This function leaks memory in version 1.0.7 and earlier!

Parameter-Liste

coll

MongoCollection or name of collection to drop.

Rückgabewerte

Returns the database response.


Runs JavaScript code on the database server [deprecated]

  • « MongoDB::dropCollection
  • MongoDB::forceError »
  • PHP Manual
  • MongoDB
  • Runs JavaScript code on the database server [deprecated]

MongoDB::execute

(PECL mongo >=0.9.3)

MongoDB::execute — Runs JavaScript code on the database server [deprecated]

Beschreibung

public MongoDB::execute ( mixed $code , array $args = array() ) : array
Warnung

The » eval command, which this method invokes, is deprecated in MongoDB 3.0+.

The Mongo database server runs a JavaScript engine. This method allows you to run arbitary JavaScript on the database. This can be useful if you want touch a number of collections lightly, or process some results on the database side to reduce the amount that has to be sent to the client.

Running JavaScript in the database takes a write lock, meaning it blocks other operations. Make sure you consider this before running a long script.

This is a wrapper for the » eval database command. This method is basically:

<?php

public function execute($code, $args) {
    return $this->command(array('eval' => $code, 'args' => $args));
}

?>

MongoDB implies a return statement if you have a single statement on a single line. This can cause some unintuitive behavior. For example, this returns "foo":

<?php

$db->execute('"foo";');

?>

However, these return null:

<?php

$db->execute('"bar"; "foo";'); // more than one statement

$db->execute('db.foo.count(
);'); // more than one line

?>

To avoid surprising behavior, it is best not to depend on MongoDB to decide what to return, but to explicitly state a return value. In the examples above, we can change them to:

<?php

$db->execute('"bar"; return "foo";');

$db->execute('return db.foo.count(
);');

?>

Now the first statement will return "foo" and the second statement will return a count of the "foo" collection.

Parameter-Liste

code

MongoCode or string to execute.

args

Arguments to be passed to code.

Rückgabewerte

Returns the result of the evaluation.

Beispiele

Beispiel #1 Simple MongoDB::execute() example

<?php

$response = $db->execute("function() { return 'Hello, world!'; }");
echo $response['retval'];

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hello, world!

Beispiel #2 Parameter MongoDB::execute() example

The optional array of parameters will be passed to the JavaScript function.

<?php

$response = $db->execute("function(greeting, name) { return greeting+', '+name+'!'; }", array("Good bye", "Joe"));
echo $response['retval'];

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Good bye, Joe!

Beispiel #3 Scope example

If a MongoCode object is used instead of a string for the first parameter, a scope can be passed in which the JavaScript will be executed.

<?php

$func =
    "function(greeting, name) { ".
        "return greeting+', '+name+', says '+greeter;".
    "}";
$scope = array("greeter" => "Fred");

$code = new MongoCode($func, $scope);

$response = $db->execute($code, array("Goodbye", "Joe"));
echo $response['retval'];

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Goodbye, Joe, says Fred

Siehe auch

  • The MongoDB » eval command docs

Changelog

Version | Beschreibung
PECL mongo 1.7.0 | This method has been deprecated as a result of the underlaying » eval command being deprecated in MongoDB 3.0+.


Creates a database error

  • « MongoDB::execute
  • MongoDB::__get »
  • PHP Manual
  • MongoDB
  • Creates a database error

MongoDB::forceError

(PECL mongo >=0.9.5)

MongoDB::forceError — Creates a database error

Beschreibung

public MongoDB::forceError ( ) : bool

This method is not very useful for normal MongoDB use. It forces a database error to occur. This means that MongoDB::lastError() will return a generic database error after running this command.

This command is identical to running:

<?php

public function forceError() {
    return $this->command(array('forceerror' => 1));
}

?>

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the database response.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.


Gets a collection

  • « MongoDB::forceError
  • MongoDB::getCollectionInfo »
  • PHP Manual
  • MongoDB
  • Gets a collection

MongoDB::__get

(PECL mongo >=1.0.2)

MongoDB::__get — Gets a collection

Beschreibung

public MongoDB::__get ( string $name ) : MongoCollection

This is the easiest way of getting a collection from a database object. If a collection name contains strange characters, you may have to use MongoDB::selectCollection() instead.

<?php

$mongo = new MongoClient();

// the following two lines are equivalent
$collection = $mongo->selectDB("foo")->selectCollection("bar");
$collection = $mongo->foo->bar;

?>

Parameter-Liste

name

The name of the collection.

Rückgabewerte

Returns the collection.


Returns information about collections in this database

  • « MongoDB::__get
  • MongoDB::getCollectionNames »
  • PHP Manual
  • MongoDB
  • Returns information about collections in this database

MongoDB::getCollectionInfo

(PECL mongo >=1.6.0)

MongoDB::getCollectionInfo — Returns information about collections in this database

Beschreibung

public MongoDB::getCollectionInfo ( array $options = array() ) : array

Gets a list of all collections in the database and returns them as an array of documents, which contain their names and options.

Hinweis: This method will use the » listCollections database command when communicating with MongoDB 2.8+. For previous database versions, the method will query the special system.namespaces collection.

Parameter-Liste

options

An array of options for listing the collections. Currently available options include:

  • "filter"

    Optional query criteria. If provided, this criteria will be used to filter the collections included in the result.

    Relevant fields that may be queried include "name" (collection name as a string, without the database name prefix) and "options" (object containing options used to create the collection)..

    Hinweis: MongoDB 2.6 and earlier versions require the "name" criteria, if specified, to be a string value (i.e. equality match). This is because the driver must prefix the value with the database name in order to query the system.namespaces collection. Later versions of MongoDB do not have this limitation, as the driver will use the listCollections command.

  • "includeSystemCollections"

    Boolean, defaults to false. Determines whether system collections should be included in the result.

The following option may be used with MongoDB 2.8+:

  • "maxTimeMS"

    Specifies a cumulative time limit in milliseconds for processing the operation (does not include idle time). If the operation is not completed within the timeout period, a MongoExecutionTimeoutException will be thrown.

Rückgabewerte

This function returns an array where each element is an array describing a collection. Elements will contain a name key denoting the name of the collection, and optionally contain an options key denoting an array of objects used to create the collection. For example, capped collections will include capped and size options.

Fehler/Exceptions

For MongoDB 2.6 and earlier, MongoException will be thrown if a non-string value was specified for the "filter" option's "name" criteria.

Beispiele

Beispiel #1 MongoDB::getCollectionInfo() example

<?php
$m = new MongoClient();
$db = $m->selectDB("demo");
var_dump($db->getCollectionInfo());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  [0]=>
  array(2) {
    ["name"]=>
    string(4) "logs"
    ["options"]=>
    array(2) {
      ["capped"]=>
      bool(true)
      ["size"]=>
      int(10240)
    }
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(5) "users"
    ["options"]=>
    array(1) {
      ["flags"]=>
      int(1)
    }
  }
}

Siehe auch

  • MongoDB::getCollectionNames() - Gets an array of names for all collections in this database
  • MongoDB::listCollections() - Gets an array of MongoCollection objects for all collections in this database


Gets an array of names for all collections in this database

  • « MongoDB::getCollectionInfo
  • MongoDB::getDBRef »
  • PHP Manual
  • MongoDB
  • Gets an array of names for all collections in this database

MongoDB::getCollectionNames

(PECL mongo >=1.3.0)

MongoDB::getCollectionNames — Gets an array of names for all collections in this database

Beschreibung

public MongoDB::getCollectionNames ( array $options = array() ) : array

Gets a list of all collections in the database and returns their names as an array of strings.

Hinweis: This method will use the » listCollections database command when communicating with MongoDB 2.8+. For previous database versions, the method will query the special system.namespaces collection.

Parameter-Liste

options

An array of options for listing the collections. Currently available options include:

  • "filter"

    Optional query criteria. If provided, this criteria will be used to filter the collections included in the result.

    Relevant fields that may be queried include "name" (collection name as a string, without the database name prefix) and "options" (object containing options used to create the collection)..

    Hinweis: MongoDB 2.6 and earlier versions require the "name" criteria, if specified, to be a string value (i.e. equality match). This is because the driver must prefix the value with the database name in order to query the system.namespaces collection. Later versions of MongoDB do not have this limitation, as the driver will use the listCollections command.

  • "includeSystemCollections"

    Boolean, defaults to false. Determines whether system collections should be included in the result.

The following option may be used with MongoDB 2.8+:

  • "maxTimeMS"

    Specifies a cumulative time limit in milliseconds for processing the operation (does not include idle time). If the operation is not completed within the timeout period, a MongoExecutionTimeoutException will be thrown.

Rückgabewerte

Returns the collection names as an array of strings.

Fehler/Exceptions

For MongoDB 2.6 and earlier, MongoException will be thrown if a non-string value was specified for the "filter" option's "name" criteria.

Changelog

Version | Beschreibung
PECL mongo 1.6.0 | Changed first parameter to be an array of options. Pre-1.6.0, the first parameter was a boolean indicating the "includeSystemCollections" option.

Beispiele

Beispiel #1 MongoDB::getCollectionNames() example

<?php
$m = new MongoClient();
$db = $m->selectDB("demo");
$collections = $db->getCollectionNames();

foreach ($collections as $collectionName) {
    echo "Found collection: ", $collectionName, "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

...
Found collection: img
Found collection: beer
Found collection: collation
...

Siehe auch

  • MongoDB::listCollections() - Gets an array of MongoCollection objects for all collections in this database
  • MongoDB::getCollectionInfo() - Returns information about collections in this database


Fetches the document pointed to by a database reference

  • « MongoDB::getCollectionNames
  • MongoDB::getGridFS »
  • PHP Manual
  • MongoDB
  • Fetches the document pointed to by a database reference

MongoDB::getDBRef

(PECL mongo >=0.9.0)

MongoDB::getDBRef — Fetches the document pointed to by a database reference

Beschreibung

public MongoDB::getDBRef ( array $ref ) : array

Parameter-Liste

ref

A database reference.

Rückgabewerte

Returns the document pointed to by the reference.

Beispiele

Beispiel #1 MongoDB::getDBRef() example

Example demonstrating how to get a database reference and what the expected input is.

<?php

 $ref = array(
   '$ref' => 'profiles',
   '$id' => new MongoId('47cc67093475061e3d9536d2')
 );

 $profile = $db->getDBRef($ref);
 ?>

See MongoDB::createDBRef() for more information about how to programatically create DB references.


Fetches toolkit for dealing with files stored in this database

  • « MongoDB::getDBRef
  • MongoDB::getProfilingLevel »
  • PHP Manual
  • MongoDB
  • Fetches toolkit for dealing with files stored in this database

MongoDB::getGridFS

(PECL mongo >=0.9.0)

MongoDB::getGridFS — Fetches toolkit for dealing with files stored in this database

Beschreibung

public MongoDB::getGridFS ( string $prefix = "fs" ) : MongoGridFS

Parameter-Liste

prefix

The prefix for the files and chunks collections.

Rückgabewerte

Returns a new gridfs object for this database.

Beispiele

Beispiel #1 MongoDB::getGridFS() example

This example demonstrates how get a MongoGridFS instance.

<?php

$db = $mongo->my_db;

$prefix = 'files';
$collection = $db->getGridFS($prefix);

?>

Read more about the MongoGridFS to learn how to store files with MongoDB.


Gets this database's profiling level

  • « MongoDB::getGridFS
  • MongoDB::getReadPreference »
  • PHP Manual
  • MongoDB
  • Gets this database's profiling level

MongoDB::getProfilingLevel

(PECL mongo >=0.9.0)

MongoDB::getProfilingLevel — Gets this database's profiling level

Beschreibung

public MongoDB::getProfilingLevel ( ) : int

This returns the current database profiling level.

The database profiler tracks query execution times. If you turn it on (say, using MongoDB::setProfilingLevel() or the shell), you can see how many queries took longer than a given number of milliseconds or the timing for all queries.

Note that profiling slows down queries, so it is better to use in development or testing than in a time-sensitive application.

This function is equivalent to running:

<?php

public function getProfilingLevel() {
    return $this->command(array('profile' => -1));
}

?>

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the profiling level.

Siehe auch

  • MongoDB core docs on » profiling
  • MongoDB::setProfilingLevel() - Sets this database's profiling level


Get the read preference for this database

  • « MongoDB::getProfilingLevel
  • MongoDB::getSlaveOkay »
  • PHP Manual
  • MongoDB
  • Get the read preference for this database

MongoDB::getReadPreference

(PECL mongo >=1.3.0)

MongoDB::getReadPreference — Get the read preference for this database

Beschreibung

public MongoDB::getReadPreference ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This function returns an array describing the read preference. The array contains the values type for the string read preference mode (corresponding to the MongoClient constants), and tagsets containing a list of all tag set criteria. If no tag sets were specified, tagsets will not be present in the array.

Changelog

Version | Beschreibung
PECL mongo 1.3.3 | The return value has changed to be consistent with MongoDB::setReadPreference(). The type value was changed from a number to a string, type_string was removed, and tagsets now expresses tags as key/value pairs instead of colon-delimited strings.

Beispiele

Beispiel #1 MongoDB::getReadPreference() return value example

<?php

$m = new MongoClient();
$db = $m->test;
$db->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($db->getReadPreference());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Siehe auch

  • The read preferences documentation.
  • MongoDB::setReadPreference() - Set the read preference for this database


Get slaveOkay setting for this database

  • « MongoDB::getReadPreference
  • MongoDB::getWriteConcern »
  • PHP Manual
  • MongoDB
  • Get slaveOkay setting for this database

MongoDB::getSlaveOkay

(PECL mongo >=1.1.0)

MongoDB::getSlaveOkay — Get slaveOkay setting for this database

Beschreibung

public MongoDB::getSlaveOkay ( ) : bool

See the query section of this manual for information on distributing reads to secondaries.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the value of slaveOkay for this instance.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Siehe auch

  • Read Preferences
  • MongoDB::getReadPreference() - Get the read preference for this database
  • MongoDB::setReadPreference() - Set the read preference for this database


Get the write concern for this database

  • « MongoDB::getSlaveOkay
  • MongoDB::lastError »
  • PHP Manual
  • MongoDB
  • Get the write concern for this database

MongoDB::getWriteConcern

(PECL mongo >=1.5.0)

MongoDB::getWriteConcern — Get the write concern for this database

Beschreibung

public MongoDB::getWriteConcern ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This function returns an array describing the write concern. The array contains the values w for an integer acknowledgement level or string mode, and wtimeout denoting the maximum number of milliseconds to wait for the server to satisfy the write concern.

Beispiele

Beispiel #1 MongoDB::getWriteConcern() return value example

<?php

$mc = new MongoClient('mongodb://localhost:27017', array('wTimeoutMS' => 500));
$db = $mc->selectDB('test');
var_dump($db->getWriteConcern());

$db->setWriteConcern(1, 1000);
var_dump($db->getWriteConcern());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(500)
}
array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(1000)
}

Siehe auch

  • The write concern documentation.
  • MongoDB::setWriteConcern() - Set the write concern for this database


Check if there was an error on the most recent db operation performed

  • « MongoDB::getWriteConcern
  • MongoDB::listCollections »
  • PHP Manual
  • MongoDB
  • Check if there was an error on the most recent db operation performed

MongoDB::lastError

(PECL mongo >=0.9.5)

MongoDB::lastError — Check if there was an error on the most recent db operation performed

Beschreibung

public MongoDB::lastError ( ) : array

This method is equivalent to:

<?php

public function lastError() {
    return $this->command(array('getlasterror' => 1));
}

?>

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the error, if there was one.

Beispiele

Beispiel #1 MongoDB::lastError() null error example

<?php
$db->resetError();
var_dump($db->lastError());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  ["err"]=>
  NULL
  ["n"]=>
  int(0)
  ["ok"]=>
  float(1)
}

Beispiel #2 MongoDB::lastError() duplicate key example

<?php
$c = $db->selectCollection("foo");

// insert two documents with the same _id
$c->insert(array("_id" => 1));
$c->insert(array("_id" => 1));

var_dump($db->lastError());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  ["err"]=>
  string(64) "E11000 duplicate key errorindex: foo.foo.$_id_  dup key: { : 1 }"
  ["n"]=>
  int(0)
  ["ok"]=>
  float(1)
}


Gets an array of MongoCollection objects for all collections in this database

  • « MongoDB::lastError
  • MongoDB::prevError »
  • PHP Manual
  • MongoDB
  • Gets an array of MongoCollection objects for all collections in this database

MongoDB::listCollections

(PECL mongo >=0.9.0)

MongoDB::listCollections — Gets an array of MongoCollection objects for all collections in this database

Beschreibung

public MongoDB::listCollections ( array $options = array() ) : array

Gets a list of all collections in the database and returns them as an array of MongoCollection objects.

Hinweis: This method will use the » listCollections database command when communicating with MongoDB 2.8+. For previous database versions, the method will query the special system.namespaces collection.

Parameter-Liste

options

An array of options for listing the collections. Currently available options include:

  • "filter"

    Optional query criteria. If provided, this criteria will be used to filter the collections included in the result.

    Relevant fields that may be queried include "name" (collection name as a string, without the database name prefix) and "options" (object containing options used to create the collection)..

    Hinweis: MongoDB 2.6 and earlier versions require the "name" criteria, if specified, to be a string value (i.e. equality match). This is because the driver must prefix the value with the database name in order to query the system.namespaces collection. Later versions of MongoDB do not have this limitation, as the driver will use the listCollections command.

  • "includeSystemCollections"

    Boolean, defaults to false. Determines whether system collections should be included in the result.

The following option may be used with MongoDB 2.8+:

  • "maxTimeMS"

    Specifies a cumulative time limit in milliseconds for processing the operation (does not include idle time). If the operation is not completed within the timeout period, a MongoExecutionTimeoutException will be thrown.

Rückgabewerte

Returns an array of MongoCollection objects.

Fehler/Exceptions

For MongoDB 2.6 and earlier, MongoException will be thrown if a non-string value was specified for the "filter" option's "name" criteria.

Changelog

Version | Beschreibung
PECL mongo 1.6.0 | Changed first parameter to be an array of options. Pre-1.6.0, the first parameter was a boolean indicating the "includeSystemCollections" option.
PECL mongo 1.3.0 | Added the includeSystemCollections parameter.

Beispiele

Beispiel #1 MongoDB::listCollections() example

The following example demonstrates running count on each collection in a database.

<?php

$m = new MongoClient();
$db = $m->selectDB("demo");
$collections = $db->listCollections();

foreach ($collections as $collection) {
    echo "amount of documents in $collection: ";
    echo $collection->count(), "\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

...
amount of documents in demo.pubs: 4
amount of documents in demo.elephpants: 3
amount of documents in demo.cities: 22840
...

Siehe auch

  • MongoDB::getCollectionNames() - Gets an array of names for all collections in this database
  • MongoDB::getCollectionInfo() - Returns information about collections in this database


Checks for the last error thrown during a database operation

  • « MongoDB::listCollections
  • MongoDB::repair »
  • PHP Manual
  • MongoDB
  • Checks for the last error thrown during a database operation

MongoDB::prevError

(PECL mongo >=0.9.5)

MongoDB::prevError — Checks for the last error thrown during a database operation

Beschreibung

public MongoDB::prevError ( ) : array

MongoDB::lastError() is usually preferred to this. This method returns the last database error that occurred and how many operations ago it occurred. It is mostly deprecated.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the error and the number of operations ago it occurred.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.


Repairs and compacts this database

  • « MongoDB::prevError
  • MongoDB::resetError »
  • PHP Manual
  • MongoDB
  • Repairs and compacts this database

MongoDB::repair

(PECL mongo >=0.9.0)

MongoDB::repair — Repairs and compacts this database

Beschreibung

public MongoDB::repair ( bool $preserve_cloned_files = false , bool $backup_original_files = false ) : array

This creates a fresh copy of all database data. It will remove any corrupt data and compact and large stretches of free space it finds. This is a very slow operation on a large database.

This is usually run from the shell or the command line, not the driver.

It is equivalent to the function:

<?php

public function repair() {
    return $this->command(array('repairDatabase' => 1));
}

?>

Parameter-Liste

preserve_cloned_files

If cloned files should be kept if the repair fails.

backup_original_files

If original files should be backed up.

Rückgabewerte

Returns db response.

Siehe auch

MongoDB core docs on » repairDatabase.

Beispiele

Beispiel #1 MongoDB::repair() example

This example demonstrates how to repare and compact a database.

<?php

$db = $mongo->foo;

$response = $db->repair();
print_r($response);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [ok] => 1
)


Clears any flagged errors on the database

  • « MongoDB::repair
  • MongoDB::selectCollection »
  • PHP Manual
  • MongoDB
  • Clears any flagged errors on the database

MongoDB::resetError

(PECL mongo >=0.9.5)

MongoDB::resetError — Clears any flagged errors on the database

Beschreibung

public MongoDB::resetError ( ) : array

This method is not used in normal operations. It resets the database error tracker (which can be incremented with MongoDB::forceError(), also not normally used).

It is equivalent to running:

<?php

public function resetError() {
    return $this->command(array('reseterror' => 1));
}

?>

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the database response.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.


Gets a collection

  • « MongoDB::resetError
  • MongoDB::setProfilingLevel »
  • PHP Manual
  • MongoDB
  • Gets a collection

MongoDB::selectCollection

(PECL mongo >=0.9.0)

MongoDB::selectCollection — Gets a collection

Beschreibung

public MongoDB::selectCollection ( string $name ) : MongoCollection

Parameter-Liste

name

The collection name.

Rückgabewerte

Returns a new collection object.

Fehler/Exceptions

Throws Exception if the collection name is invalid.


Sets this database's profiling level

  • « MongoDB::selectCollection
  • MongoDB::setReadPreference »
  • PHP Manual
  • MongoDB
  • Sets this database's profiling level

MongoDB::setProfilingLevel

(PECL mongo >=0.9.0)

MongoDB::setProfilingLevel — Sets this database's profiling level

Beschreibung

public MongoDB::setProfilingLevel ( int $level ) : int

This changes the current database profiling level.

This function is equivalent to running:

<?php

public function setProfilingLevel($level) {
    return $this->command(array('profile' => $level));
}

?>

The options for level are 0 (off), 1 (queries > 100ms), and 2 (all queries). If you would like to profile queries that take longer than another time period, use the database command and pass it a second option, the number of milliseconds. For example, to profile all queries that take longer than one second, run:

<?php

$result = $this->command(array('profile' => 1, 'slowms' => 1000));

?>

Profiled queries will appear in the system.profile collection of this database.

Parameter-Liste

level

Profiling level.

Rückgabewerte

Returns the previous profiling level.

Siehe auch

  • MongoDB core docs on » profiling
  • MongoDB::getProfilingLevel() - Gets this database's profiling level


Set the read preference for this database

  • « MongoDB::setProfilingLevel
  • MongoDB::setSlaveOkay »
  • PHP Manual
  • MongoDB
  • Set the read preference for this database

MongoDB::setReadPreference

(PECL mongo >=1.3.0)

MongoDB::setReadPreference — Set the read preference for this database

Beschreibung

public MongoDB::setReadPreference ( string $read_preference , array $tags = ? ) : bool

Parameter-Liste

read_preference

The read preference mode: MongoClient::RP_PRIMARY,
MongoClient::RP_PRIMARY_PREFERRED,
MongoClient::RP_SECONDARY,
MongoClient::RP_SECONDARY_PREFERRED, or
MongoClient::RP_NEAREST.

tags

An array of zero or more tag sets, where each tag set is itself an array of criteria used to match tags on replica set members.

Rückgabewerte

Returns true on success, or false otherwise.

Fehler/Exceptions

Emits E_WARNING if either parameter is invalid, or if one or more tag sets are provided with the MongoClient::RP_PRIMARY read preference mode.

Beispiele

Beispiel #1 MongoDB::setReadPreference() tag set array syntax example

<?php

$m = new MongoClient();
$db = $m->test;

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$db->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Siehe auch

  • The read preferences documentation.
  • MongoDB::getReadPreference() - Get the read preference for this database


Change slaveOkay setting for this database

  • « MongoDB::setReadPreference
  • MongoDB::setWriteConcern »
  • PHP Manual
  • MongoDB
  • Change slaveOkay setting for this database

MongoDB::setSlaveOkay

(PECL mongo >=1.1.0)

MongoDB::setSlaveOkay — Change slaveOkay setting for this database

Beschreibung

public MongoDB::setSlaveOkay ( bool $ok = true ) : bool

See the query section of this manual for information on distributing reads to secondaries.

Parameter-Liste

ok

If reads should be sent to secondary members of a replica set for all possible queries using this MongoDB instance.

Rückgabewerte

Returns the former value of slaveOkay for this instance.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Siehe auch

  • Read Preferences
  • MongoDB::setReadPreference() - Set the read preference for this database
  • MongoDB::getReadPreference() - Get the read preference for this database


Set the write concern for this database

  • « MongoDB::setSlaveOkay
  • MongoDB::__toString »
  • PHP Manual
  • MongoDB
  • Set the write concern for this database

MongoDB::setWriteConcern

(PECL mongo >=1.5.0)

MongoDB::setWriteConcern — Set the write concern for this database

Beschreibung

public MongoDB::setWriteConcern ( mixed $w , int $wtimeout = ? ) : bool

Parameter-Liste

w

The write concern. This may be an integer denoting the number of servers required to acknowledge the write, or a string mode (e.g. "majority").

wtimeout

The maximum number of milliseconds to wait for the server to satisfy the write concern.

Rückgabewerte

Returns true on success, or false otherwise.

Fehler/Exceptions

Emits E_WARNING if the w parameter is not an integer or string value.

Beispiele

Beispiel #1 MongoDB::setWriteConcern() example

<?php

$mc = new MongoClient('mongodb://rs1.example.com,rs2.example.com');
$db = $mc->selectDB('test');

// Require that the majority of servers in the replica set acknowledge writes
// within three seconds.
$db->setWriteConcern('majority', 3000);
?>

Siehe auch

  • The write concern documentation.
  • MongoDB::getWriteConcern() - Get the write concern for this database


The name of this database

  • « MongoDB::setWriteConcern
  • MongoCollection »
  • PHP Manual
  • MongoDB
  • The name of this database

MongoDB::__toString

(PECL mongo >=0.9.0)

MongoDB::__toString — The name of this database

Beschreibung

public MongoDB::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns this database's name.


The MongoCollection class

(PECL mongo >=0.9.0)

Einführung

Represents a MongoDB collection.

Collection names can use any character in the ASCII set. Some valid collection names are "", "...", "my collection", and "*&#@".

User-defined collection names cannot contain the $ symbol. There are certain system collections which use a $ in their names (e.g., local.oplog.$main), but it is a reserved character. If you attempt to create and use a collection with a $ in the name, MongoDB will assert.

Klassenbeschreibung

MongoCollection {
/* Konstanten */
const int ASCENDING = 1 ;
const int DESCENDING = -1 ;
/* Fields */
public MongoDB $db = null ;
public int $w ;
public int $wtimeout ;
/* Methoden */
public aggregate ( array $pipeline , array $options = ? ) : array
public aggregateCursor ( array $command , array $options = ? ) : MongoCommandCursor
public batchInsert ( array $a , array $options = array() ) : mixed
public __construct ( MongoDB $db , string $name )
public count ( array $query = array() , array $options = array() ) : int
public createDBRef ( mixed $document_or_id ) : array
public createIndex ( array $keys , array $options = array() ) : bool
public deleteIndex ( string|array $keys ) : array
public deleteIndexes ( ) : array
public distinct ( string $key , array $query = ? ) : array|false
public drop ( ) : array
public ensureIndex ( string|array $key|keys , array $options = array() ) : bool
public find ( array $query = array() , array $fields = array() ) : MongoCursor
public findAndModify ( array $query , array $update = ? , array $fields = ? , array $options = ? ) : array
public findOne
 ( array $query = array()
, array $fields = array()
, array $options = array()
) : array
public __get ( string $name ) : MongoCollection
public getDBRef ( array $ref ) : array
public getIndexInfo ( ) : array
public getName ( ) : string
public getReadPreference ( ) : array
public getSlaveOkay ( ) : bool
public getWriteConcern ( ) : array
public group ( mixed $keys , array $initial , MongoCode $reduce , array $options = array() ) : array
public insert ( array|object $document , array $options = array() ) : bool|array
public parallelCollectionScan ( int $num_cursors ) : array[MongoCommandCursor]
public remove ( array $criteria = array() , array $options = array() ) : bool|array
public save ( array|object $document , array $options = array() ) : mixed
public setReadPreference ( string $read_preference , array $tags = ? ) : bool
public setSlaveOkay ( bool $ok = true ) : bool
public setWriteConcern ( mixed $w , int $wtimeout = ? ) : bool
static protected toIndexString ( mixed $keys ) : string
public __toString ( ) : string
public update ( array $criteria , array $new_object , array $options = array() ) : bool|array
public validate ( bool $scan_data = false ) : array
}

Vordefinierte Konstanten

MongoCollection::ASCENDING
Ascending direction for sorts and index creation.
MongoCollection::DESCENDING
Descending direction for sorts and index creation.

Fields

db

The "parent" database for this collection.

w

The number of servers to replicate a change to before returning success. Value is inherited from the parent database. The MongoDB class has a more detailed description of how w works.

wtimeout

The number of milliseconds to wait for $this->w replications to take place. Value is inherited from the parent database. The MongoDB class has a more detailed description of how wtimeout works.

Siehe auch

MongoDB core docs on » collections.

Inhaltsverzeichnis

  • MongoCollection::aggregate — Perform an aggregation using the aggregation framework
  • MongoCollection::aggregateCursor — Execute an aggregation pipeline command and retrieve results through a cursor
  • MongoCollection::batchInsert — Inserts multiple documents into this collection
  • MongoCollection::__construct — Creates a new collection
  • MongoCollection::count — Counts the number of documents in this collection
  • MongoCollection::createDBRef — Creates a database reference
  • MongoCollection::createIndex — Creates an index on the specified field(s) if it does not already exist
  • MongoCollection::deleteIndex — Deletes an index from this collection
  • MongoCollection::deleteIndexes — Delete all indices for this collection
  • MongoCollection::distinct — Retrieve a list of distinct values for the given key across a collection
  • MongoCollection::drop — Drops this collection
  • MongoCollection::ensureIndex — Creates an index on the specified field(s) if it does not already exist
  • MongoCollection::find — Queries this collection, returning a MongoCursor for the result set
  • MongoCollection::findAndModify — Update a document and return it
  • MongoCollection::findOne — Queries this collection, returning a single element
  • MongoCollection::__get — Gets a collection
  • MongoCollection::getDBRef — Fetches the document pointed to by a database reference
  • MongoCollection::getIndexInfo — Returns information about indexes on this collection
  • MongoCollection::getName — Returns this collection's name
  • MongoCollection::getReadPreference — Get the read preference for this collection
  • MongoCollection::getSlaveOkay — Get slaveOkay setting for this collection
  • MongoCollection::getWriteConcern — Get the write concern for this collection
  • MongoCollection::group — Performs an operation similar to SQL's GROUP BY command
  • MongoCollection::insert — Inserts a document into the collection
  • MongoCollection::parallelCollectionScan — Returns an array of cursors to iterator over a full collection in parallel
  • MongoCollection::remove — Remove records from this collection
  • MongoCollection::save — Saves a document to this collection
  • MongoCollection::setReadPreference — Set the read preference for this collection
  • MongoCollection::setSlaveOkay — Change slaveOkay setting for this collection
  • MongoCollection::setWriteConcern — Set the write concern for this database
  • MongoCollection::toIndexString — Converts keys specifying an index to its identifying string
  • MongoCollection::__toString — String representation of this collection
  • MongoCollection::update — Update records based on a given criteria
  • MongoCollection::validate — Validates this collection


Perform an aggregation using the aggregation framework

  • « MongoCollection
  • MongoCollection::aggregateCursor »
  • PHP Manual
  • MongoCollection
  • Perform an aggregation using the aggregation framework

MongoCollection::aggregate

(PECL mongo >=1.3.0)

MongoCollection::aggregate — Perform an aggregation using the aggregation framework

Beschreibung

public MongoCollection::aggregate ( array $pipeline , array $options = ? ) : array
public MongoCollection::aggregate ( array $op , array ...$ops ) : array

The MongoDB » aggregation framework provides a means to calculate aggregated values without having to use MapReduce. While MapReduce is powerful, it is often more difficult than necessary for many simple aggregation tasks, such as totaling or averaging field values.

This method accepts either a variable amount of pipeline operators, or a single array of operators constituting the pipeline.

Parameter-Liste

pipeline

An array of pipeline operators.

options

Options for the aggregation command. Valid options include:

  • "allowDiskUse"

    Allow aggregation stages to write to temporary files

  • "cursor"

    Options controlling the creation of the cursor object. This option causes the command to return a result document suitable for constructing a MongoCommandCursor. If you need to use this option, you should consider using MongoCollection::aggregateCursor().

  • "explain"

    Return information on the processing of the pipeline.

  • "maxTimeMS"

    Specifies a cumulative time limit in milliseconds for processing the operation (does not include idle time). If the operation is not completed within the timeout period, a MongoExecutionTimeoutException will be thrown.

Or

op

First pipeline operator.

ops

Additional pipeline operators.

Rückgabewerte

The result of the aggregation as an array. The ok will be set to 1 on success, 0 on failure.

Fehler/Exceptions

When an error occurs an array with the following keys will be returned:

  • errmsg - containing the reason for the failure
  • code - the errorcode of the failure
  • ok - will be set to 0.

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Added optional options argument

Beispiele

Beispiel #1 MongoCollection::aggregate() example

The following example aggregation operation pivots data to create a set of author names grouped by tags applied to an article. Call the aggregation framework by issuing the following command:

<?php
$m = new MongoClient("localhost");
$c = $m->selectDB("examples")->selectCollection("article");
$data = array (
    'title' => 'this is my title',
    'author' => 'bob',
    'posted' => new MongoDate,
    'pageViews' => 5,
    'tags' => array ( 'fun', 'good', 'fun' ),
    'comments' => array (
      array (
        'author' => 'joe',
        'text' => 'this is cool',
      ),
      array (
        'author' => 'sam',
        'text' => 'this is bad',
      ),
    ),
    'other' =>array (
      'foo' => 5,
    ),
);
$d = $c->insert($data, array("w" => 1));

$ops = array(
    array(
        '$project' => array(
            "author" => 1,
            "tags"   => 1,
        )
    ),
    array('$unwind' => '$tags'),
    array(
        '$group' => array(
            "_id" => array("tags" => '$tags'),
            "authors" => array('$addToSet' => '$author'),
        ),
    ),
);
$results = $c->aggregate($ops);
var_dump($results);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["result"]=>
  array(2) {
    [0]=>
    array(2) {
      ["_id"]=>
      array(1) {
        ["tags"]=>
        string(4) "good"
      }
      ["authors"]=>
      array(1) {
        [0]=>
        string(3) "bob"
      }
    }
    [1]=>
    array(2) {
      ["_id"]=>
      array(1) {
        ["tags"]=>
        string(3) "fun"
      }
      ["authors"]=>
      array(1) {
        [0]=>
        string(3) "bob"
      }
    }
  }
  ["ok"]=>
  float(1)
}

The following examples use the » zipcode data set. Use mongoimport to load this data set into your mongod instance.

Beispiel #2 MongoCollection::aggregate() example

To return all states with a population greater than 10 million, use the following aggregation operation:

<?php
$m = new MongoClient("localhost");
$c = $m->selectDB("test")->selectCollection("zips");

$pipeline = array(
    array(
        '$group' => array(
            '_id' => array('state' => '$state'),
            'totalPop' => array('$sum' => '$pop')
        )
    ),
    array(
        '$match' => array(
            'totalPop' => array('$gte' => 10 * 1000 * 1000)
        )
    ),
);
$out = $c->aggregate($pipeline);
var_dump($out);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["result"]=>
  array(7) {
    [0]=>
    array(2) {
      ["_id"]=>
      string(2) "TX"
      ["totalPop"]=>
      int(16986510)
    }
    [1]=>
    array(2) {
      ["_id"]=>
      string(2) "PA"
      ["totalPop"]=>
      int(11881643)
    }
    [2]=>
    array(2) {
      ["_id"]=>
      string(2) "NY"
      ["totalPop"]=>
      int(17990455)
    }
    [3]=>
    array(2) {
      ["_id"]=>
      string(2) "IL"
      ["totalPop"]=>
      int(11430602)
    }
    [4]=>
    array(2) {
      ["_id"]=>
      string(2) "CA"
      ["totalPop"]=>
      int(29760021)
    }
    [5]=>
    array(2) {
      ["_id"]=>
      string(2) "OH"
      ["totalPop"]=>
      int(10847115)
    }
    [6]=>
    array(2) {
      ["_id"]=>
      string(2) "FL"
      ["totalPop"]=>
      int(12937926)
    }
  }
  ["ok"]=>
  float(1)
}

Beispiel #3 MongoCollection::aggregate() example

To return the average populations for cities in each state, use the following aggregation operation:

<?php
$m = new MongoClient;
$c = $m->selectDB("test")->selectCollection("zips");

$out = $c->aggregate(
    array(
        '$group' => array(
            '_id' => array('state' => '$state', 'city' => '$city' ),
            'pop' => array('$sum' => '$pop' )
        )
    ),
    array(
        '$group' => array(
            '_id' => '$_id.state',
            'avgCityPop' => array('$avg' => '$pop')
        )
    )
);

var_dump($out);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["result"]=>
  array(51) {
    [0]=>
    array(2) {
      ["_id"]=>
      string(2) "DC"
      ["avgCityPop"]=>
      float(303450)
    }
    [1]=>
    array(2) {
      ["_id"]=>
      string(2) "DE"
      ["avgCityPop"]=>
      float(14481.913043478)
    }
...
    [49]=>
    array(2) {
      ["_id"]=>
      string(2) "WI"
      ["avgCityPop"]=>
      float(7323.0074850299)
    }
    [50]=>
    array(2) {
      ["_id"]=>
      string(2) "WV"
      ["avgCityPop"]=>
      float(2759.1953846154)
    }
  }
  ["ok"]=>
  float(1)
}

Beispiel #4 MongoCollection::aggregate() with command options

To return information on how the pipeline will be processed we use the explain command option:

<?php
$m = new MongoClient;
$c = $m->selectDB("test")->selectCollection("zips");

$pipeline = array(
    array(
        '$group' => array(
            '_id' => '$state',
           'totalPop' => array('$sum' => '$pop'),
        ),
    ),
    array(
        '$match' => array(
            'totalPop' => array('$gte' => 10 * 1000 * 1000)
        )
    ),
    array(
        '$sort' => array("totalPop" => -1),
    ),
);

$options = array("explain" => true);
$out = $c->aggregate($pipeline, $options);
var_dump($out);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["stages"]=>
  array(4) {
    [0]=>
    array(1) {
      ["$cursor"]=>
      array(3) {
        ["query"]=>
        array(0) {
        }
        ["fields"]=>
        array(3) {
          ["pop"]=>
          int(1)
          ["state"]=>
          int(1)
          ["_id"]=>
          int(0)
        }
        ["plan"]=>
        array(4) {
          ["cursor"]=>
          string(11) "BasicCursor"
          ["isMultiKey"]=>
          bool(false)
          ["scanAndOrder"]=>
          bool(false)
          ["allPlans"]=>
          array(1) {
            [0]=>
            array(3) {
              ["cursor"]=>
              string(11) "BasicCursor"
              ["isMultiKey"]=>
              bool(false)
              ["scanAndOrder"]=>
              bool(false)
            }
          }
        }
      }
    }
    [1]=>
    array(1) {
      ["$group"]=>
      array(2) {
        ["_id"]=>
        string(6) "$state"
        ["totalPop"]=>
        array(1) {
          ["$sum"]=>
          string(4) "$pop"
        }
      }
    }
    [2]=>
    array(1) {
      ["$match"]=>
      array(1) {
        ["totalPop"]=>
        array(1) {
          ["$gte"]=>
          int(10000000)
        }
      }
    }
    [3]=>
    array(1) {
      ["$sort"]=>
      array(1) {
        ["sortKey"]=>
        array(1) {
          ["totalPop"]=>
          int(-1)
        }
      }
    }
  }
  ["ok"]=>
  float(1)
}

Siehe auch

  • MongoCollection::aggregateCursor() - Execute an aggregation pipeline command and retrieve results through a cursor
  • The MongoDB » aggregation framework


Execute an aggregation pipeline command and retrieve results through a cursor

  • « MongoCollection::aggregate
  • MongoCollection::batchInsert »
  • PHP Manual
  • MongoCollection
  • Execute an aggregation pipeline command and retrieve results through a cursor

MongoCollection::aggregateCursor

(PECL mongo >=1.5.0)

MongoCollection::aggregateCursor — Execute an aggregation pipeline command and retrieve results through a cursor

Beschreibung

public MongoCollection::aggregateCursor ( array $command , array $options = ? ) : MongoCommandCursor

With this method you can execute Aggregation Framework pipelines and retrieve the results through a cursor, instead of getting just one document back as you would with MongoCollection::aggregate(). This method returns a MongoCommandCursor object. This cursor object implements the Iterator interface just like the MongoCursor objects that are returned by the MongoCollection::find() method.

Hinweis: The resulting MongoCommandCursor will inherit this collection's read preference. MongoCommandCursor::setReadPreference() may be used to change the read preference before iterating on the cursor.

Parameter-Liste

pipeline

The Aggregation Framework pipeline to execute.

options

Options for the aggregation command. Valid options include:

  • "allowDiskUse"

    Allow aggregation stages to write to temporary files

  • "cursor"

    It is possible to configure how many initial documents the server should return with the first result set. The default initial batch size is 101. You can change it by adding the batchSize option:

    <?php
    $collection    ->aggregateCursor(
            $pipeline,
        [     "cursor" => [ "batchSize" => 4 ] ]
    );

    This option only configures the size of the first batch. To configure the size of future batches, please use the MongoCommandCursor::batchSize() method on the returned MongoCommandCursor object.

  • "explain"

    Return information on the processing of the pipeline. This option may cause the command to return a result document that is unsuitable for constructing a MongoCommandCursor. If you need to use this option, you should consider using MongoCollection::aggregate().

  • "maxTimeMS"

    Specifies a cumulative time limit in milliseconds for processing the operation (does not include idle time). If the operation is not completed within the timeout period, a MongoExecutionTimeoutException will be thrown.

Rückgabewerte

Returns a MongoCommandCursor object. Because this implements the Iterator interface you can iterate over each of the results as returned by the command query. The MongoCommandCursor also implements the MongoCursorInterface interface which adds the MongoCommandCursor::batchSize(), MongoCommandCursor::dead(), MongoCommandCursor::info() methods.

Beispiele

Beispiel #1 MongoCollection::aggregateCursor() example

Finding all of the distinct values for a key.

<?php
$m = new MongoClient;
$db = $m->test;
$people = $db->people;
$people->drop();

$people->insert(array("name" => "Joe", "points" => 4));
$people->insert(array("name" => "Molly", "points" => 43));
$people->insert(array("name" => "Sally", "points" => 22));
$people->insert(array("name" => "Joe", "points" => 22));
$people->insert(array("name" => "Molly", "points" => 87));

$ages = $people->aggregateCursor( [
        [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
        [ '$sort' => [ 'points' => -1 ] ],
] );

foreach ($ages as $person) {
    echo "{$person['_id']}: {$person['points']}\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Molly: 130
Joe: 26
Sally: 22

Beispiel #2 MongoCollection::aggregateCursor() example with different initial batch size

Finding all of the distinct values for a key.

<?php
$m = new MongoClient;
$db = $m->test;
$people = $db->people;
$people->drop();

/* Insert some sample data */
$people->insert(array("name" => "Joe", "points" => 4));
$people->insert(array("name" => "Molly", "points" => 43));
$people->insert(array("name" => "Sally", "points" => 22));
$people->insert(array("name" => "Joe", "points" => 22));
$people->insert(array("name" => "Molly", "points" => 87));

/* Run the command cursor */
$ages = $people->aggregateCursor(
    [
        [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
        [ '$sort' => [ 'points' => -1 ] ],
    ],
    [ "cursor" => [ "batchSize" => 4 ] ]
);

foreach ($ages as $person) {
    echo "{$person['_id']}: {$person['points']}\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Molly: 130
Joe: 26
Sally: 22

Siehe auch

  • MongoDB::command() - Execute a database command
  • MongoCommandCursor
  • MongoCommandCursor::batchSize() - Limits the number of elements returned in one batch
  • MongoCollection::aggregate() - Perform an aggregation using the aggregation framework
  • The MongoDB » aggregation framework


Inserts multiple documents into this collection

  • « MongoCollection::aggregateCursor
  • MongoCollection::__construct »
  • PHP Manual
  • MongoCollection
  • Inserts multiple documents into this collection

MongoCollection::batchInsert

(PECL mongo >=0.9.0)

MongoCollection::batchInsert — Inserts multiple documents into this collection

Beschreibung

public MongoCollection::batchInsert ( array $a , array $options = array() ) : mixed

Parameter-Liste

a

An array of arrays or objects. If any objects are used, they may not have protected or private properties.

Hinweis:

If the documents to insert do not have an _id key or property, a new MongoId instance will be created and assigned to it. See MongoCollection::insert() for additional information on this behavior.

options

An array of options for the batch of insert operations. Currently available options include:

  • "continueOnError"

    Boolean, defaults to false. If set, the database will not stop processing a bulk insert if one fails (eg due to duplicate IDs). This makes bulk insert behave similarly to a series of single inserts, except that calling MongoDB::lastError() will have an error set if any insert fails, not just the last one. If multiple errors occur, only the most recent will be reported by MongoDB::lastError().

    Hinweis:

    Please note that continueOnError affects errors on the database side only. If you try to insert a document that has errors (for example it contains a key with an empty name), then the document is not even transferred to the database as the driver detects this error and bails out. continueOnError has no effect on errors detected in the documents by the driver.

  • "fsync"

    Boolean, defaults to false. If journaling is enabled, it works exactly like "j". If journaling is not enabled, the write operation blocks until it is synced to database files on disk. If true, an acknowledged insert is implied and this option will override setting "w" to 0.

    Hinweis: If journaling is enabled, users are strongly encouraged to use the "j" option instead of "fsync". Do not use "fsync" and "j" simultaneously, as that will result in an error.

  • "j"

    Boolean, defaults to false. Forces the write operation to block until it is synced to the journal on disk. If true, an acknowledged write is implied and this option will override setting "w" to 0.

    Hinweis: If this option is used and journaling is disabled, MongoDB 2.6+ will raise an error and the write will fail; older server versions will simply ignore the option.

  • "socketTimeoutMS"

    This option specifies the time limit, in milliseconds, for socket communication. If the server does not respond within the timeout period, a MongoCursorTimeoutException will be thrown and there will be no way to determine if the server actually handled the write or not. A value of -1 may be specified to block indefinitely. The default value for MongoClient is 30000 (30 seconds).

  • "w"

    See Write Concerns. The default value for MongoClient is 1.

  • "wTimeoutMS"

    This option specifies the time limit, in milliseconds, for write concern acknowledgement. It is only applicable when "w" is greater than 1, as the timeout pertains to replication. If the write concern is not satisfied within the time limit, a MongoCursorException will be thrown. A value of 0 may be specified to block indefinitely. The default value for MongoClient is 10000 (ten seconds).

The following options are deprecated and should no longer be used:

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Deprecated alias for "socketTimeoutMS".

  • "wtimeout"

    Deprecated alias for "wTimeoutMS".

Rückgabewerte

If the w parameter is set to acknowledge the write, returns an associative array with the status of the inserts ("ok") and any error that may have occurred ("err"). Otherwise, returns true if the batch insert was successfully sent, false otherwise.

Fehler/Exceptions

Throws MongoException if any inserted documents are empty or if they contains zero-length keys. Attempting to insert an object with protected and private properties will cause a zero-length key error.

Throws MongoCursorException if the "w" option is set and the write fails.

Throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Added the "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added the "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
PECL mongo 1.3.4 | Added "wtimeout" option.
PECL mongo 1.3.0 | Added "w" option.
PECL mongo 1.2.7 | Added "continueOnError" option.
PECL mongo 1.0.9 | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option.
PECL mongo 1.0.5 | Added options parameter.

Beispiele

Beispiel #1 MongoCollection::batchInsert() example

Batch insertion is a quick way to add many elements to the database at once

<?php

$users = array();
for ($i = 0; $i<100; $i++) {
  $users[] = array('username' => 'user'.$i, 'i' => $i);
}

$mongo = new MongoClient();
$collection = $mongo->my_db->users;
$collection->drop();

$collection->batchInsert($users);

foreach ($users as $user) {
  echo $user['_id']."\n"; // populated with instanceof MongoId
}

$users = $collection->find()->sort(array('i' => 1));
foreach ($users as $user) {
    var_dump($user['username']);
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

4bf43ac68ead0e1971000000
4bf43ac68ead0e1971010000
4bf43ac68ead0e1971020000
...
string(5) "user1"
string(5) "user2"
string(5) "user3"
...

Beispiel #2 MongoCollection::batchInsert() example with ignoring errors

<?php

$con = new Mongo;
$db = $con->demo;

$doc1 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010001'),
        'id' => 1,
        'desc' => "ONE",
);
$doc2 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010002'),
        'id' => 2,
        'desc' => "TWO",
);
$doc3 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010002'), // same _id as above
        'id' => 3,
        'desc' => "THREE",
);
$doc4 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010004'),
        'id' => 4,
        'desc' => "FOUR",
);

$c = $db->selectCollection('c');
$c->batchInsert(
    array($doc1, $doc2, $doc3, $doc4),
    array('continueOnError' => true)
);

$docs = $c->find();
foreach ($docs as $doc) {
    var_dump($doc['desc']);
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(3) "ONE"
string(3) "TWO"
string(4) "FOUR"

Siehe auch

  • MongoCollection::insert() - Inserts a document into the collection
  • MongoCollection::update() - Update records based on a given criteria
  • MongoCollection::find() - Queries this collection, returning a MongoCursor for the result set
  • MongoCollection::remove() - Remove records from this collection
  • MongoDB core docs on » insert.


Creates a new collection

  • « MongoCollection::batchInsert
  • MongoCollection::count »
  • PHP Manual
  • MongoCollection
  • Creates a new collection

MongoCollection::__construct

(PECL mongo >=0.9.0)

MongoCollection::__construct — Creates a new collection

Beschreibung

public MongoCollection::__construct ( MongoDB $db , string $name )

Parameter-Liste

MongoDB db

Parent database.

name

Name for this collection.

Rückgabewerte

Returns a new collection object.

Fehler/Exceptions

Throws default exception if the collection name is invalid.


Counts the number of documents in this collection

  • « MongoCollection::__construct
  • MongoCollection::createDBRef »
  • PHP Manual
  • MongoCollection
  • Counts the number of documents in this collection

MongoCollection::count

(PECL mongo >=0.9.0)

MongoCollection::count — Counts the number of documents in this collection

Beschreibung

public MongoCollection::count
 ( array $query = array()
, array $options = array()
) : int

Parameter-Liste

query

Associative array or object with fields to match.

options

An array of options for the index creation. Currently available options include:

Name | Typ | Beschreibung
hint mixed

Index to use for the query. If a string is passed, it should correspond to an index name. If an array or object is passed, it should correspond to the specification used to create the index (i.e. the first argument to MongoCollection::createIndex()).

This option is only supported in MongoDB 2.6+.
limit | int | The maximum number of matching documents to return.
maxTimeMS int

Specifies a cumulative time limit in milliseconds for processing the operation (does not include idle time). If the operation is not completed within the timeout period, a MongoExecutionTimeoutException will be thrown.

This option is only supported in MongoDB 2.6+.
skip | int | The number of matching documents to skip before returning results.

Rückgabewerte

Returns the number of documents matching the query.

Fehler/Exceptions

Throws MongoResultException if the server could not execute the command due to an error.

Throws MongoExecutionTimeoutException if command execution was terminated due to maxTimeMS.

Changelog

Version | Beschreibung
PECL mongo 1.6.0 | The second parameter is now an options array. Passing limit and skip as the second and third parameters, respectively, is deprecated.
PECL mongo 1.0.7 | Added limit and skip as second and third parameters, respectively.

Beispiele

Beispiel #1 MongoCollection::count() example

<?php

$collection->insert(array('x'=>1));
$collection->insert(array('x'=>2));
$collection->insert(array('x'=>3));

var_dump($collection->count());
var_dump($collection->count(array('x'=>1)));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)
int(1)


Creates a database reference

  • « MongoCollection::count
  • MongoCollection::createIndex »
  • PHP Manual
  • MongoCollection
  • Creates a database reference

MongoCollection::createDBRef

(PECL mongo >=0.9.0)

MongoCollection::createDBRef — Creates a database reference

Beschreibung

public MongoCollection::createDBRef ( mixed $document_or_id ) : array

Parameter-Liste

document_or_id

If an array or object is given, its _id field will be used as the reference ID. If a MongoId or scalar is given, it will be used as the reference ID.

Rückgabewerte

Returns a database reference array.

If an array without an _id field was provided as the document_or_id parameter, null will be returned.

Beispiele

Beispiel #1 MongoCollection::createDBRef() example

<?php

$songs = $db->songs;
$playlists = $db->playlists;

// create a reference to a song
$manamana = $songs->findOne(array('title' => 'Ma na ma na'));
$refToSong = $songs->createDBRef($manamana);

// add the reference to my playlist
$playlists->update(array('username' => 'me'), array('$push' => array('songlist' => $refToSong)));

?>

Siehe auch

  • MongoCollection::getDBRef() - Fetches the document pointed to by a database reference


Creates an index on the specified field(s) if it does not already exist

  • « MongoCollection::createDBRef
  • MongoCollection::deleteIndex »
  • PHP Manual
  • MongoCollection
  • Creates an index on the specified field(s) if it does not already exist

MongoCollection::createIndex

(PECL mongo >=1.5.0)

MongoCollection::createIndex — Creates an index on the specified field(s) if it does not already exist

Beschreibung

public MongoCollection::createIndex ( array $keys , array $options = array() ) : bool

Creates an index on the specified field(s) if it does not already exist. Fields may be indexed with a direction (e.g. ascending or descending) or a special type (e.g. text, geospatial, hashed).

Hinweis:

This method will use the » createIndexes database command when communicating with MongoDB 2.6+. For previous database versions, the method will perform an insert operation on the special system.indexes collection.

Parameter-Liste

keys

An array specifying the index's fields as its keys. For each field, the value is either the index direction or » index type. If specifying direction, specify 1 for ascending or -1 for descending.

options

An array of options for the index creation. We pass all given options straight to the server, but a non-exhaustive list of currently available options include:

  • "unique"

    Specify true to create a unique index. The default value is false. This option applies only to ascending/descending indexes.

    Hinweis:

    When MongoDB indexes a field, if a document does not have a value for the field, a null value is indexed. If multiple documents do not contain a field, a unique index will reject all but the first of those documents. The "sparse" option may be used to overcome this, since it will prevent documents without the field from being indexed.

  • "sparse"

    Specify true to create a sparse index, which only indexes documents containing a specified field. The default value is false.

  • "expireAfterSeconds"

    The value of this option should specify the number of seconds after which a document should be considered expired and automatically removed from the collection. This option is only compatible with single-field indexes where the field will contain MongoDate values.

    Hinweis:

    This feature is available in MongoDB 2.2+. See » Expire Data from Collections by Setting TTL for more information.

  • "name"

    An optional name that uniquely identifies the index.

    Hinweis:

    By default, the driver will generate an index name based on the index's field(s) and ordering or type. For example, a compound index array("x" => 1, "y" => -1) would be named "x_1_y_-1" and a geospatial index array("loc" => "2dsphere") would be named "loc_2dsphere". For indexes with many fields, it is possible that the generated name might exceed MongoDB's » limit for index names. The "name" option may be used in that case to supply a shorter name.

  • "background"

    Builds the index in the background so that building an index does not block other database activities. Specify true to build in the background. The default value is false.

    Warnung

    Prior to MongoDB 2.6.0, index builds on secondaries were executed as foreground operations, irrespective of this option. See » Building Indexes with Replica Sets for more information.

  • "socketTimeoutMS"

    This option specifies the time limit, in milliseconds, for socket communication. If the server does not respond within the timeout period, a MongoCursorTimeoutException will be thrown and there will be no way to determine if the server actually handled the write or not. A value of -1 may be specified to block indefinitely. The default value for MongoClient is 30000 (30 seconds).

The following option may be used with MongoDB 2.6+:

  • "maxTimeMS"

    Specifies a cumulative time limit in milliseconds for processing the operation (does not include idle time). If the operation is not completed within the timeout period, a MongoExecutionTimeoutException will be thrown.

The following options may be used with MongoDB versions before 2.8:

  • "dropDups"

    Specify true to force creation of a unique index where the collection may contain duplicate values for a key. MongoDB will index the first occurrence of a key and delete all subsequent documents from the collection that contain a duplicate value for that key. The default value is false.

    Warnung

    "dropDups" may delete data from your database. Use with extreme caution.

    Hinweis:

    This option is not supported on MongoDB 2.8+. Index creation will fail if the collection contains duplicate values.

The following options may be used with MongoDB versions before 2.6:

  • "w"

    See Write Concerns. The default value for MongoClient is 1.

  • "wTimeoutMS"

    This option specifies the time limit, in milliseconds, for write concern acknowledgement. It is only applicable when "w" is greater than 1, as the timeout pertains to replication. If the write concern is not satisfied within the time limit, a MongoCursorException will be thrown. A value of 0 may be specified to block indefinitely. The default value for MongoClient is 10000 (ten seconds).

The following options are deprecated and should no longer be used:

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Deprecated alias for "socketTimeoutMS".

  • "wtimeout"

    Deprecated alias for "wTimeoutMS".

Rückgabewerte

Returns an array containing the status of the index creation. The array contains whether the operation succeeded ("ok"), the number of indexes before and after the operation ("numIndexesBefore" and "numIndexesAfter"), and whether the collection that the index belongs to has been created ("createdCollectionAutomatically"). If the index already existed and did not need to be created, a "note" field may be present in lieu of "numIndexesAfter".

With MongoDB 2.4 and earlier, a status document is only returned if the write concern is at least 1. Otherwise, true is returned. The fields in the status document are different, except for the "ok" field, which signals whether the index creation was successful. Additional fields are described in the documentation for MongoCollection::insert().

Fehler/Exceptions

Throws MongoException if the index name is longer than 128 bytes, or if the index specification is not an array.

Throws MongoDuplicateKeyException if the server could not create the unique index due to conflicting documents.

Throws MongoResultException if the server could not create the index due to an error.

Throws MongoCursorException if the "w" option is set and the write fails.

Throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.

Beispiele

Beispiel #1 MongoCollection::createIndex() example

<?php

$c = new MongoCollection($db, 'foo');

// create an index on 'x' ascending
$c->createIndex(array('x' => 1));

// create a unique index on 'y'
$c->createIndex(array('y' => 1), array('unique' => true));

// create a compound index on 'za' ascending and 'zb' descending
$c->createIndex(array('za' => 1, 'zb' => -1));

?>

Beispiel #2 Geospatial Indexing

Mongo supports geospatial indexes, which allow you to search for documents near a given location or within a shape. The following example creates a geospatial index on the "loc" field:

<?php

$collection->createIndex(array('loc' => '2dsphere'));

?>

Beispiel #3 Drop duplicates example

<?php

$collection->insert(array('username' => 'joeschmoe'));
$collection->insert(array('username' => 'joeschmoe'));

/* Index creation fails, since you cannot create a unique index on a field when
 * duplicates exist.
 */
$collection->createIndex(array('username' => 1), array('unique' => 1));

/* MongoDB will one of the conflicting documents and allow the unique index to
 * be created.
 */
$collection->createIndex(array('username' => 1), array('unique' => 1, 'dropDups' => 1));

/* We now have a unique index and subsequent inserts with the same username will
 * fail.
 */
$collection->insert(array('username' => 'joeschmoe'));

?>

Siehe auch

  • MongoCollection::deleteIndex() - Deletes an index from this collection
  • MongoCollection::deleteIndexes() - Delete all indices for this collection
  • The MongoDB » index and » index type documentation.


Deletes an index from this collection

  • « MongoCollection::createIndex
  • MongoCollection::deleteIndexes »
  • PHP Manual
  • MongoCollection
  • Deletes an index from this collection

MongoCollection::deleteIndex

(PECL mongo >=0.9.0)

MongoCollection::deleteIndex — Deletes an index from this collection

Beschreibung

public MongoCollection::deleteIndex ( string|array $keys ) : array

This method is identical to:

<?php

public function deleteIndexes($keys) {
  $indexName = $this->toIndexString($keys);

  return $this->db->command(array(
    "deleteIndexes" => $this->getName(),
    "index" => $indexName,
  ));
}

?>

Each index is given a unique name when it is created. This is often generated by the driver based on the index key(s) and order/type, but custom names may also be specified with MongoCollection::createIndex()'s "name" option).

Unfortunately, MongoCollection::deleteIndex() cannot delete custom-named indexes due to a backwards compatibility issue. When a string argument is provided, it is assumed to be the single field name in an ascending index (e.g. the name "x_1" would be used for the argument "x"). If an array or object is provided, an index name is generated just as if that argument was passed to MongoCollection::createIndex().

In order to delete a custom-named index with the PHP driver, the deleteIndexes database command must be used. For instance, an index named "myIndex" could be deleted with the PHP driver by running:

<?php

$db->command(array(
  "deleteIndexes" => $collection->getName(),
  "index" => "myIndex",
));

?>

To determine the name of an index with the PHP driver, you can query the system.indexes collection of a database and look for the "name" field of each result. The "ns" field will indicate the collection to which each index belongs.

Parameter-Liste

keys

An array specifying the index's fields as its keys. For each field, the value is either the index direction or » index type. If specifying direction, specify 1 for ascending or -1 for descending.

If a string is provided, it is assumed to be the single field name in an ascending index.

Rückgabewerte

Returns the database response.

Beispiele

Beispiel #1 MongoCollection::deleteIndex() example

This example passes the function string and array parameters.

<?php

$m = new MongoClient();
$c = $m->example->indices;

// create and remove a simple index
$c->createIndex(array("i"=>1));
$c->deleteIndex("i");

// create and remove a multi-key index
$c->ensureIndex(array("j" => 1, "k" => 1));
$c->deleteIndex(array("j" => 1, "k" => 1));

?>

Siehe auch

  • MongoCollection::createIndex() - Creates an index on the specified field(s) if it does not already exist
  • MongoCollection::deleteIndexes() - Delete all indices for this collection
  • MongoCollection::toIndexString() - Converts keys specifying an index to its identifying string
  • The MongoDB » index and » index type documentation.


Delete all indices for this collection

  • « MongoCollection::deleteIndex
  • MongoCollection::distinct »
  • PHP Manual
  • MongoCollection
  • Delete all indices for this collection

MongoCollection::deleteIndexes

(PECL mongo >=0.9.0)

MongoCollection::deleteIndexes — Delete all indices for this collection

Beschreibung

public MongoCollection::deleteIndexes ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the database response.

Beispiele

Beispiel #1 MongoCollection::deleteIndexes() example

This example demonstrates how to delete all indexes from a collection and the response to expect.

<?php

$collection = $mongo->my_db->articles;
$response = $collection->deleteIndexes();
print_r($response);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [nIndexesWas] => 1
    [msg] => all indexes deleted for collection
    [ok] => 1
)

Siehe auch

  • MongoCollection::createIndex() - Creates an index on the specified field(s) if it does not already exist
  • MongoCollection::deleteIndex() - Deletes an index from this collection


Retrieve a list of distinct values for the given key across a collection

  • « MongoCollection::deleteIndexes
  • MongoCollection::drop »
  • PHP Manual
  • MongoCollection
  • Retrieve a list of distinct values for the given key across a collection

MongoCollection::distinct

(PECL mongo >=1.2.11)

MongoCollection::distinct — Retrieve a list of distinct values for the given key across a collection

Beschreibung

public MongoCollection::distinct ( string $key , array $query = ? ) : array|false

The distinct command returns a list of distinct values for the given key across a collection.

Parameter-Liste

key

The key to use.

query

An optional query parameters

Rückgabewerte

Returns an array of distinct values, Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 MongoCollection::distinct() example

<?php
$m = new Mongo;
$db = $m->selectDB("test");
$db->dropCollection("distinct");
$c = $db->distinct;

$c->insert(array("stuff" => "bar", "zip-code" => 10010));
$c->insert(array("stuff" => "foo", "zip-code" => 10010));
$c->insert(array("stuff" => "bar", "zip-code" => 99701), array("w" => 1));

$retval = $c->distinct("zip-code");
var_dump($retval);

$retval = $c->distinct("zip-code", array("stuff" => "foo"));
var_dump($retval);

$retval = $c->distinct("zip-code", array("stuff" => "bar"));
var_dump($retval);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  int(10010)
  [1]=>
  int(99701)
}
array(1) {
  [0]=>
  int(10010)
}
array(2) {
  [0]=>
  int(10010)
  [1]=>
  int(99701)
}

Beispiel #2 MongoCollection::distinct() example on a embedded document

<?php
$c->insert(array("user" => array("points" => 25)));
$c->insert(array("user" => array("points" => 31)));
$c->insert(array("user" => array("points" => 25)));

$retval = $c->distinct("user.points");
var_dump($retval);

$retval = $c->distinct("user.nonexisting");
var_dump($retval);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  int(25)
  [1]=>
  int(31)
}
array(0) {
}


Drops this collection

  • « MongoCollection::distinct
  • MongoCollection::ensureIndex »
  • PHP Manual
  • MongoCollection
  • Drops this collection

MongoCollection::drop

(PECL mongo >=0.9.0)

MongoCollection::drop — Drops this collection

Beschreibung

public MongoCollection::drop ( ) : array

Drops this collection and deletes its indices.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the database response.

Beispiele

Beispiel #1 MongoCollection::drop() example

This example demonstrates how to drop a collection and the response to expect.

<?php

$collection = $mongo->my_db->articles;
$response = $collection->drop();
print_r($response);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [nIndexesWas] => 1
    [msg] => all indexes deleted for collection
    [ns] => my_db.articles
    [ok] => 1
)


Creates an index on the specified field(s) if it does not already exist

  • « MongoCollection::drop
  • MongoCollection::find »
  • PHP Manual
  • MongoCollection
  • Creates an index on the specified field(s) if it does not already exist

MongoCollection::ensureIndex

(PECL mongo >=0.9.0)

MongoCollection::ensureIndex — Creates an index on the specified field(s) if it does not already exist

Beschreibung

public MongoCollection::ensureIndex ( string|array $key|keys , array $options = array() ) : bool
Warnung

This method is deprecated since version 1.5.0. Please use MongoCollection::createIndex() instead.

Creates an index on the specified field(s) if it does not already exist. Fields may be indexed with a direction (e.g. ascending or descending) or a special type (e.g. text, geospatial, hashed).

Hinweis:

This method will use the » createIndexes database command when communicating with MongoDB 2.6+. For previous database versions, the method will perform an insert operation on the special system.indexes collection.

Parameter-Liste

keys

An array specifying the index's fields as its keys. For each field, the value is either the index direction or » index type. If specifying direction, specify 1 for ascending or -1 for descending.

options

An array of options for the index creation. Currently available options include:

  • "unique"

    Specify true to create a unique index. The default value is false. This option applies only to ascending/descending indexes.

    Hinweis:

    When MongoDB indexes a field, if a document does not have a value for the field, a null value is indexed. If multiple documents do not contain a field, a unique index will reject all but the first of those documents. The "sparse" option may be used to overcome this, since it will prevent documents without the field from being indexed.

  • "sparse"

    Specify true to create a sparse index, which only indexes documents containing a specified field. The default value is false.

  • "expireAfterSeconds"

    The value of this option should specify the number of seconds after which a document should be considered expired and automatically removed from the collection. This option is only compatible with single-field indexes where the field will contain MongoDate values.

    Hinweis:

    This feature is available in MongoDB 2.2+. See » Expire Data from Collections by Setting TTL for more information.

  • "name"

    An optional name that uniquely identifies the index.

    Hinweis:

    By default, the driver will generate an index name based on the index's field(s) and ordering or type. For example, a compound index array("x" => 1, "y" => -1) would be named "x_1_y_-1" and a geospatial index array("loc" => "2dsphere") would be named "loc_2dsphere". For indexes with many fields, it is possible that the generated name might exceed MongoDB's » limit for index names. The "name" option may be used in that case to supply a shorter name.

  • "background"

    Builds the index in the background so that building an index does not block other database activities. Specify true to build in the background. The default value is false.

    Warnung

    Prior to MongoDB 2.6.0, index builds on secondaries were executed as foreground operations, irrespective of this option. See » Building Indexes with Replica Sets for more information.

  • "socketTimeoutMS"

    This option specifies the time limit, in milliseconds, for socket communication. If the server does not respond within the timeout period, a MongoCursorTimeoutException will be thrown and there will be no way to determine if the server actually handled the write or not. A value of -1 may be specified to block indefinitely. The default value for MongoClient is 30000 (30 seconds).

The following option may be used with MongoDB 2.6+:

  • "maxTimeMS"

    Specifies a cumulative time limit in milliseconds for processing the operation (does not include idle time). If the operation is not completed within the timeout period, a MongoExecutionTimeoutException will be thrown.

The following options may be used with MongoDB versions before 2.8:

  • "dropDups"

    Specify true to force creation of a unique index where the collection may contain duplicate values for a key. MongoDB will index the first occurrence of a key and delete all subsequent documents from the collection that contain a duplicate value for that key. The default value is false.

    Warnung

    "dropDups" may delete data from your database. Use with extreme caution.

    Hinweis:

    This option is not supported on MongoDB 2.8+. Index creation will fail if the collection contains duplicate values.

The following options may be used with MongoDB versions before 2.6:

  • "w"

    See Write Concerns. The default value for MongoClient is 1.

  • "wTimeoutMS"

    This option specifies the time limit, in milliseconds, for write concern acknowledgement. It is only applicable when "w" is greater than 1, as the timeout pertains to replication. If the write concern is not satisfied within the time limit, a MongoCursorException will be thrown. A value of 0 may be specified to block indefinitely. The default value for MongoClient is 10000 (ten seconds).

The following options are deprecated and should no longer be used:

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Deprecated alias for "socketTimeoutMS".

  • "wtimeout"

    Deprecated alias for "wTimeoutMS".

Rückgabewerte

Returns an array containing the status of the index creation. The array contains whether the operation succeeded ("ok"), the number of indexes before and after the operation ("numIndexesBefore" and "numIndexesAfter"), and whether the collection that the index belongs to has been created ("createdCollectionAutomatically"). If the index already existed and did not need to be created, a "note" field may be present in lieu of "numIndexesAfter".

With MongoDB 2.4 and earlier, a status document is only returned if the write concern is at least 1. Otherwise, true is returned. The fields in the status document are different, except for the "ok" field, which signals whether the index creation was successful. Additional fields are described in the documentation for MongoCollection::insert().

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Renamed the "wtimeout" option to "wTimeoutMS". Emits E_DEPRECATED when "wtimeout" is used. Renamed the "timeout" option to "socketTimeoutMS". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
PECL mongo 1.3.4 | Added "wtimeout" option.
PECL mongo 1.3.0 | Added "w" option. The options parameter no longer accepts a boolean to signify a unique index. Instead, this now has to be done with array('unique' => true).
PECL mongo 1.2.11 | Emits E_DEPRECATED when options is scalar.
PECL mongo 1.2.0 | Added "timeout" option.
PECL mongo 1.0.11 | The "safe" option will trigger a primary failover, if necessary. MongoException will be thrown if the index name (either generated or set) is longer than 128 bytes.
PECL mongo 1.0.5 | Added the "name" option to override index name creation.
PECL mongo 1.0.2 | Changed options parameter from boolean to array. Pre-1.0.2, the second parameter was an optional boolean value specifying a unique index.

Fehler/Exceptions

Throws MongoException if the index name is longer than 128 bytes, or if the index specification is not an array.

Throws MongoDuplicateKeyException if the server could not create the unique index due to conflicting documents.

Throws MongoResultException if the server could not create the index due to an error.

Throws MongoCursorException if the "w" option is set and the write fails.

Throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.

Beispiele

Beispiel #1 MongoCollection::ensureIndex() example

<?php

$c = new MongoCollection($db, 'foo');

// create an index on 'x' ascending
$c->ensureIndex(array('x' => 1));

// create a unique index on 'y'
$c->ensureIndex(array('y' => 1), array('unique' => true));

// create a compound index on 'za' ascending and 'zb' descending
$c->ensureIndex(array('za' => 1, 'zb' => -1));

?>

Beispiel #2 Geospatial Indexing

Mongo supports geospatial indexes, which allow you to search for documents near a given location or within a shape. The following example creates a geospatial index on the "loc" field:

<?php

$collection->ensureIndex(array('loc' => '2dsphere'));

?>

Beispiel #3 Drop duplicates example

<?php

$collection->insert(array('username' => 'joeschmoe'));
$collection->insert(array('username' => 'joeschmoe'));

/* Index creation fails, since you cannot create a unique index on a field when
 * duplicates exist.
 */
$collection->ensureIndex(array('username' => 1), array('unique' => 1));

/* MongoDB will one of the conflicting documents and allow the unique index to
 * be created.
 */
$collection->ensureIndex(array('username' => 1), array('unique' => 1, 'dropDups' => 1));

/* We now have a unique index and subsequent inserts with the same username will
 * fail.
 */
$collection->insert(array('username' => 'joeschmoe'));

?>

Siehe auch

  • MongoCollection::createIndex() - Creates an index on the specified field(s) if it does not already exist
  • MongoCollection::deleteIndex() - Deletes an index from this collection
  • MongoCollection::deleteIndexes() - Delete all indices for this collection
  • The MongoDB » index and » index type documentation.


Queries this collection, returning a MongoCursor for the result set

  • « MongoCollection::ensureIndex
  • MongoCollection::findAndModify »
  • PHP Manual
  • MongoCollection
  • Queries this collection, returning a MongoCursor for the result set

MongoCollection::find

(PECL mongo >=0.9.0)

MongoCollection::find — Queries this collection, returning a MongoCursor for the result set

Beschreibung

public MongoCollection::find
 ( array $query = array()
, array $fields = array()
) : MongoCursor

Parameter-Liste

query

The fields for which to search. MongoDB's query language is quite extensive. The PHP driver will in almost all cases pass the query straight through to the server, so reading the MongoDB core docs on » find is a good idea.

Warnung

Please make sure that for all special query operators (starting with $) you use single quotes so that PHP doesn't try to replace "$exists" with the value of the variable $exists.

fields

Fields of the results to return. The array is in the format array('fieldname' => true, 'fieldname2' => true). The _id field is always returned.

Rückgabewerte

Returns a cursor for the search results.

Beispiele

Beispiel #1 MongoCollection::find() example

This example demonstrates basic search options.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'produce');

// search for fruits
$fruitQuery = array('Type' => 'Fruit');

$cursor = $collection->find($fruitQuery);
foreach ($cursor as $doc) {
    var_dump($doc);
}

// search for produce that is sweet. Taste is a child of Details.
$sweetQuery = array('Details.Taste' => 'Sweet');
echo "Sweet\n";
$cursor = $collection->find($sweetQuery);
foreach ($cursor as $doc) {
    var_dump($doc);
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "50a87dd084f045a19b220dd6"
  }
  ["Name"]=>
  string(5) "Apple"
  ["Type"]=>
  string(5) "Fruit"
  ["Details"]=>
  array(2) {
    ["Taste"]=>
    string(5) "Sweet"
    ["Colour"]=>
    string(3) "Red"
  }
}
array(4) {
  ["_id"]=>
  object(MongoId)#8 (1) {
    ["$id"]=>
    string(24) "50a87de084f045a19b220dd7"
  }
  ["Name"]=>
  string(5) "Lemon"
  ["Type"]=>
  string(5) "Fruit"
  ["Details"]=>
  array(2) {
    ["Taste"]=>
    string(4) "Sour"
    ["Colour"]=>
    string(5) "Green"
  }
}

Sweet:
array(4) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "50a87dd084f045a19b220dd6"
  }
  ["Name"]=>
  string(5) "Apple"
  ["Type"]=>
  string(5) "Fruit"
  ["Details"]=>
  array(2) {
    ["Taste"]=>
    string(5) "Sweet"
    ["Colour"]=>
    string(3) "Red"
  }
}

See MongoCursor for more information how to work with cursors.

Beispiel #2 MongoCollection::find() example

This example demonstrates how to search for a range.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

// search for documents where 5 < x < 20
$rangeQuery = array('x' => array( '$gt' => 5, '$lt' => 20 ));

$cursor = $collection->find($rangeQuery);
foreach ($cursor as $doc) {
    var_dump($doc);
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["_id"]=>
  object(MongoId)#10 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000000"
  }
  ["x"]=>
  int(12)
}
array(2) {
  ["_id"]=>
  object(MongoId)#11 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000001"
  }
  ["x"]=>
  int(12)
}

See MongoCursor for more information how to work with cursors.

Beispiel #3 MongoCollection::find() example using $where

This example demonstrates how to search a collection using javascript code to reduce the resultset.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

$js = "function() {
    return this.name == 'Joe' || this.age == 50;
}";
$cursor = $collection->find(array('$where' => $js));
foreach ($cursor as $doc) {
    var_dump($doc);
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000002"
  }
  ["name"]=>
  string(3) "Joe"
  ["age"]=>
  int(20)
}

Beispiel #4 MongoCollection::find() example using $in

This example demonstrates how to search a collection using the $in operator.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

$cursor = $collection->find(array(
    'name' => array('$in' => array('Joe', 'Wendy'))
));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000002"
  }
  ["name"]=>
  string(3) "Joe"
  ["age"]=>
  int(20)
}

Beispiel #5 Getting results as an array

This returns a MongoCursor. Often, when people are starting out, they are more comfortable using an array. To turn a cursor into an array, use the iterator_to_array() function.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

$cursor = $collection->find();
$array = iterator_to_array($cursor);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  ["4ebc40af10b89f5149000000"]=>
  array(2) {
    ["_id"]=>
    object(MongoId)#6 (1) {
      ["$id"]=>
      string(24) "4ebc40af10b89f5149000000"
    }
    ["x"]=>
    int(12)
  }
  ["4ebc40af10b89f5149000001"]=>
  array(2) {
    ["_id"]=>
    object(MongoId)#11 (1) {
      ["$id"]=>
      string(24) "4ebc40af10b89f5149000001"
    }
    ["x"]=>
    int(12)
  }
  ["4ebc40af10b89f5149000002"]=>
  array(3) {
    ["_id"]=>
    object(MongoId)#12 (1) {
      ["$id"]=>
      string(24) "4ebc40af10b89f5149000002"
    }
    ["name"]=>
    string(3) "Joe"
    ["age"]=>
    int(20)
  }
}

Using iterator_to_array() forces the driver to load all of the results into memory, so do not do this for result sets that are larger than memory!

Also, certain system collections do not have an _id field. If you are dealing with a collection that might have documents without _ids, pass false as the second argument to iterator_to_array() (so that it will not try to use the non-existent _id values as keys).

Siehe auch

  • MongoCollection::findOne() - Queries this collection, returning a single element
  • MongoCollection::insert() - Inserts a document into the collection
  • MongoDB core docs on » find.


Update a document and return it

  • « MongoCollection::find
  • MongoCollection::findOne »
  • PHP Manual
  • MongoCollection
  • Update a document and return it

MongoCollection::findAndModify

(PECL mongo >=1.3.0)

MongoCollection::findAndModify — Update a document and return it

Beschreibung

public MongoCollection::findAndModify ( array $query , array $update = ? , array $fields = ? , array $options = ? ) : array

The findAndModify command atomically modifies and returns a single document. By default, the returned document does not include the modifications made on the update. To return the document with the modifications made on the update, use the new option.

Parameter-Liste

query

The query criteria to search for.

update

The update criteria.

fields

Optionally only return these fields.

options

An array of options to apply, such as remove the match document from the DB and return it.

Option | Beschreibung
sort array | Determines which document the operation will modify if the query selects multiple documents. findAndModify will modify the first document in the sort order specified by this argument.
remove bool | Optional if update field exists. When true, removes the selected document. The default is false.
update array | Optional if remove field exists. Performs an update of the selected document.
new bool | Optional. When true, returns the modified document rather than the original. The findAndModify method ignores the new option for remove operations. The default is false.
upsert bool | Optional. Used in conjunction with the update field. When true, the findAndModify command creates a new document if the query returns no documents. The default is false. In MongoDB 2.2, the findAndModify command returns null when upsert is true.

Rückgabewerte

Returns the original document, or the modified document when new is set.

Fehler/Exceptions

Throws MongoResultException on failure.

Beispiele

Beispiel #1 MongoCollection::findAndModify() example

<?php
$m = new Mongo;
$col = $m->selectDB("test")->jobs;

$col->insert(array(
     "name" => "Next promo",
     "inprogress" => false,
     "priority" => 0,
     "tasks" => array( "select product", "add inventory", "do placement"),
) );

$col->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 1,
     "tasks" => array( "run sales report", "email report" )
) );

$col->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 2,
     "tasks" => array( "run marketing report", "email report" )
    ),
    array("w" => 1)
);

$retval = $col->findAndModify(
     array("inprogress" => false, "name" => "Biz report"),
     array('$set' => array('inprogress' => true, "started" => new MongoDate())),
     null,
     array(
        "sort" => array("priority" => -1),
        "new" => true,
    )
);

var_dump($retval);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(6) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "5091b5b244415e8cc3000002"
  }
  ["inprogress"]=>
  bool(true)
  ["name"]=>
  string(10) "Biz report"
  ["priority"]=>
  int(2)
  ["started"]=>
  object(MongoDate)#8 (2) {
    ["sec"]=>
    int(1351726514)
    ["usec"]=>
    int(925000)
  }
  ["tasks"]=>
  array(2) {
    [0]=>
    string(20) "run marketing report"
    [1]=>
    string(12) "email report"
  }
}

Beispiel #2 MongoCollection::findAndModify() error handling

<?php
$m = new Mongo;
$col = $m->selectDB("test")->jobs;
try {
    $retval = $col->findAndModify(
         array("inprogress" => false, "name" => "Next promo"),
         array('$pop' => array("tasks" => -1)),
         array("tasks" => array('$pop' => array("stuff"))),
         array("new" => true)
    );
} catch(MongoResultException $e) {
    echo $e->getCode(), " : ", $e->getMessage(), "\n";
    var_dump($e->getDocument());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

13097 : exception: Unsupported projection option: $pop
array(3) {
  ["errmsg"]=>
  string(46) "exception: Unsupported projection option: $pop"
  ["code"]=>
  int(13097)
  ["ok"]=>
  float(0)
}

Siehe auch

  • The MongoDB » findAndModify command docs


Queries this collection, returning a single element

  • « MongoCollection::findAndModify
  • MongoCollection::__get »
  • PHP Manual
  • MongoCollection
  • Queries this collection, returning a single element

MongoCollection::findOne

(PECL mongo >=0.9.0)

MongoCollection::findOne — Queries this collection, returning a single element

Beschreibung

public MongoCollection::findOne
 ( array $query = array()
, array $fields = array()
, array $options = array()
) : array

As opposed to MongoCollection::find(), this method will return only the first result from the result set, and not a MongoCursor that can be iterated over.

Parameter-Liste

query

The fields for which to search. MongoDB's query language is quite extensive. The PHP driver will in almost all cases pass the query straight through to the server, so reading the MongoDB core docs on » find is a good idea.

Warnung

Please make sure that for all special query operaters (starting with $) you use single quotes so that PHP doesn't try to replace "$exists" with the value of the variable $exists.

fields

Fields of the results to return. The array is in the format array('fieldname' => true, 'fieldname2' => true). The _id field is always returned.

options

This parameter is an associative array of the form array("name" => <value>, ...). Currently supported options are:

  • "maxTimeMS"

    Specifies a cumulative time limit in milliseconds for processing the operation (does not include idle time). If the operation is not completed within the timeout period, a MongoExecutionTimeoutException will be thrown.

Rückgabewerte

Returns record matching the search or null.

Fehler/Exceptions

Throws MongoConnectionException if it cannot reach the database.

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Added optional options argument.

Beispiele

Beispiel #1 MongoCollection::findOne() document by its id.

This example demonstrates how to find a single document in a collection by its id.

<?php

$articles = $mongo->my_db->articles;

$article = $articles->findOne(array('_id' => new MongoId('47cc67093475061e3d9536d2')));

?>

Beispiel #2 MongoCollection::findOne() document by some condition.

This example demonstrates how to find a single document in a collection by some condition and limiting the returned fields.

<?php

$users = $mongo->my_db->users;
$user = $users->findOne(array('username' => 'jwage'), array('password'));
print_r($user);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [_id] => MongoId Object
        (
        )

    [password] => test
)

Notice how even though the document does have a username field, we limited the results to only contain the password field.

Siehe auch

  • MongoCollection::find() - Queries this collection, returning a MongoCursor for the result set
  • MongoCollection::insert() - Inserts a document into the collection
  • MongoDB core docs on » find.


Gets a collection

  • « MongoCollection::findOne
  • MongoCollection::getDBRef »
  • PHP Manual
  • MongoCollection
  • Gets a collection

MongoCollection::__get

(PECL mongo >=1.0.2)

MongoCollection::__get — Gets a collection

Beschreibung

public MongoCollection::__get ( string $name ) : MongoCollection

A concise syntax for getting a collection with a dot-separated name. If a collection name contains strange characters, you may have to use MongoDB::selectCollection() instead.

<?php

$mongo = new MongoClient();

// the following two lines are equivalent
$collection = $mongo->selectDB("foo")->selectCollection("bar.baz");
$collection = $mongo->foo->bar->baz;

?>

Parameter-Liste

name

The next string in the collection name.

Rückgabewerte

Returns the collection.


Fetches the document pointed to by a database reference

  • « MongoCollection::__get
  • MongoCollection::getIndexInfo »
  • PHP Manual
  • MongoCollection
  • Fetches the document pointed to by a database reference

MongoCollection::getDBRef

(PECL mongo >=0.9.0)

MongoCollection::getDBRef — Fetches the document pointed to by a database reference

Beschreibung

public MongoCollection::getDBRef ( array $ref ) : array

Parameter-Liste

ref

A database reference.

Rückgabewerte

Returns the database document pointed to by the reference.

Beispiele

Beispiel #1 MongoCollection::getDBRef() example

<?php

$playlists = $db->playlists;

$myList = $playlists->findOne(array('username' => 'me'));

// fetch each song in the playlist
foreach ($myList['songlist'] as $songRef) {
    $song = $playlists->getDBRef($songRef);
    echo $song['title'] . "\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Dazed and Confused
Ma na ma na
Bohemian Rhapsody

In the above example each $songRef looks something like the following:
    Array
    (
        [$ref] => songs
        [$id] => 49902cde5162504500b45c2c
    )

Siehe auch

  • MongoCollection::createDBRef() - Creates a database reference


Returns information about indexes on this collection

  • « MongoCollection::getDBRef
  • MongoCollection::getName »
  • PHP Manual
  • MongoCollection
  • Returns information about indexes on this collection

MongoCollection::getIndexInfo

(PECL mongo >=0.9.0)

MongoCollection::getIndexInfo — Returns information about indexes on this collection

Beschreibung

public MongoCollection::getIndexInfo ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This function returns an array in which each element describes an index. Elements will contain the values name for the name of the index, ns for the namespace (a combination of the database and collection name), and key for a list of all fields in the index and their ordering. Additional values may be present for special indexes, such as unique or sparse.

Beispiele

Beispiel #1 MongoCollection::getIndexInfo() example

<?php

$m = new MongoClient();
$c = $m->selectCollection('test', 'venues');
var_dump($c->getIndexInfo());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(4) {
  [0]=>
  array(4) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(1) {
      ["_id"]=>
      int(1)
    }
    ["name"]=>
    string(4) "_id_"
    ["ns"]=>
    string(11) "test.venues"
  }
  [1]=>
  array(4) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(1) {
      ["name"]=>
      float(1)
    }
    ["name"]=>
    string(6) "name_1"
    ["ns"]=>
    string(11) "test.venues"
  }
  [2]=>
  array(4) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(2) {
      ["type"]=>
      float(1)
      ["createdAt"]=>
      float(-1)
    }
    ["name"]=>
    string(19) "type_1_createdAt_-1"
    ["ns"]=>
    string(11) "test.venues"
  }
  [3]=>
  array(5) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(1) {
      ["location"]=>
      string(8) "2dsphere"
    }
    ["name"]=>
    string(17) "location_2dsphere"
    ["ns"]=>
    string(11) "test.venues"
    ["2dsphereIndexVersion"]=>
    int(2)
  }
}

Siehe auch

MongoDB core docs on » vanilla indexes and » geospatial indexes.


Returns this collection's name

  • « MongoCollection::getIndexInfo
  • MongoCollection::getReadPreference »
  • PHP Manual
  • MongoCollection
  • Returns this collection's name

MongoCollection::getName

(PECL mongo >=0.9.0)

MongoCollection::getName — Returns this collection's name

Beschreibung

public MongoCollection::getName ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the name of this collection.

Beispiele

Beispiel #1 MongoCollection::getName() example

<?php

$m = new MongoClient();
$c = $m->foo->bar->baz;

echo "Working with collection " . $c->getName() . ".\n";

// the full namespace is given by the MongoCollection::__toString() method
echo "Working in namespace $c.\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Working with collection bar.baz.
Working in namespace foo.bar.baz.


Get the read preference for this collection

  • « MongoCollection::getName
  • MongoCollection::getSlaveOkay »
  • PHP Manual
  • MongoCollection
  • Get the read preference for this collection

MongoCollection::getReadPreference

(PECL mongo >=1.3.0)

MongoCollection::getReadPreference — Get the read preference for this collection

Beschreibung

public MongoCollection::getReadPreference ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This function returns an array describing the read preference. The array contains the values type for the string read preference mode (corresponding to the MongoClient constants), and tagsets containing a list of all tag set criteria. If no tag sets were specified, tagsets will not be present in the array.

Changelog

Version | Beschreibung
PECL mongo 1.3.3 | The return value has changed to be consistent with MongoCollection::setReadPreference(). The type value was changed from a number to a string, type_string was removed, and tagsets now expresses tags as key/value pairs instead of colon-delimited strings.

Beispiele

Beispiel #1 MongoCollection::getReadPreference() return value example

<?php

$m = new MongoClient();
$c = $m->test->users;
$c->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($c->getReadPreference());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Siehe auch

  • The read preferences documentation.
  • MongoCollection::setReadPreference() - Set the read preference for this collection


Get slaveOkay setting for this collection

  • « MongoCollection::getReadPreference
  • MongoCollection::getWriteConcern »
  • PHP Manual
  • MongoCollection
  • Get slaveOkay setting for this collection

MongoCollection::getSlaveOkay

(PECL mongo >=1.1.0)

MongoCollection::getSlaveOkay — Get slaveOkay setting for this collection

Beschreibung

public MongoCollection::getSlaveOkay ( ) : bool

See the query section of this manual for information on distributing reads to secondaries.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the value of slaveOkay for this instance.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Siehe auch

  • Read Preferences
  • MongoCollection::getReadPreference() - Get the read preference for this collection


Get the write concern for this collection

  • « MongoCollection::getSlaveOkay
  • MongoCollection::group »
  • PHP Manual
  • MongoCollection
  • Get the write concern for this collection

MongoCollection::getWriteConcern

(PECL mongo >=1.5.0)

MongoCollection::getWriteConcern — Get the write concern for this collection

Beschreibung

public MongoCollection::getWriteConcern ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This function returns an array describing the write concern. The array contains the values w for an integer acknowledgement level or string mode, and wtimeout denoting the maximum number of milliseconds to wait for the server to satisfy the write concern.

Beispiele

Beispiel #1 MongoCollection::getWriteConcern() return value example

<?php

$mc = new MongoClient('mongodb://localhost:27017', array('wTimeoutMS' => 500));
$coll = $mc->selectCollection('test', 'foo');
var_dump($coll->getWriteConcern());

$coll->setWriteConcern(1, 1000);
var_dump($coll->getWriteConcern());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(500)
}
array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(1000)
}

Siehe auch

  • The write concern documentation.
  • MongoCollection::setWriteConcern() - Set the write concern for this database


Performs an operation similar to SQL's GROUP BY command

  • « MongoCollection::getWriteConcern
  • MongoCollection::insert »
  • PHP Manual
  • MongoCollection
  • Performs an operation similar to SQL's GROUP BY command

MongoCollection::group

(PECL mongo >=0.9.2)

MongoCollection::group — Performs an operation similar to SQL's GROUP BY command

Beschreibung

public MongoCollection::group ( mixed $keys , array $initial , MongoCode $reduce , array $options = array() ) : array

Parameter-Liste

keys

Fields to group by. If an array or non-code object is passed, it will be the key used to group results.

1.0.4+: If keys is an instance of MongoCode, keys will be treated as a function that returns the key to group by (see the "Passing a keys function" example below).

initial

Initial value of the aggregation counter object.

reduce

A function that takes two arguments (the current document and the aggregation to this point) and does the aggregation.

options

Optional parameters to the group command. Valid options include:

  • "condition"

    Criteria for including a document in the aggregation.

  • "finalize"

    Function called once per unique key that takes the final output of the reduce function.

  • "maxTimeMS"

    Specifies a cumulative time limit in milliseconds for processing the operation (does not include idle time). If the operation is not completed within the timeout period, a MongoExecutionTimeoutException will be thrown.

Rückgabewerte

Returns an array containing the result.

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Added "maxTimeMS" option.
PECL mongo 1.2.11 | Emits E_DEPRECATED when options is scalar.

Beispiele

Beispiel #1 MongoCollection::group() example

This groups documents by category and creates a list of names within that category.

<?php

$collection->insert(array("category" => "fruit", "name" => "apple"));
$collection->insert(array("category" => "fruit", "name" => "peach"));
$collection->insert(array("category" => "fruit", "name" => "banana"));
$collection->insert(array("category" => "veggie", "name" => "corn"));
$collection->insert(array("category" => "veggie", "name" => "broccoli"));

$keys = array("category" => 1);

$initial = array("items" => array());

$reduce = "function (obj, prev) { prev.items.push(obj.name); }";

$g = $collection->group($keys, $initial, $reduce);

echo json_encode($g['retval']);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

[{"category":"fruit","items":["apple","peach","banana"]},{"category":"veggie","items":["corn","broccoli"]}]

Beispiel #2 MongoCollection::group() example

This example doesn't use any key, so every document will be its own group. It also uses a condition: only documents that match this condition will be processed by the grouping function.

<?php

$collection->save(array("a" => 2));
$collection->save(array("b" => 5));
$collection->save(array("a" => 1));

// use all fields
$keys = array();

// set intial values
$initial = array("count" => 0);

// JavaScript function to perform
$reduce = "function (obj, prev) { prev.count++; }";

// only use documents where the "a" field is greater than 1
$condition = array('condition' => array("a" => array( '$gt' => 1)));

$g = $collection->group($keys, $initial, $reduce, $condition);

var_dump($g);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(4) {
  ["retval"]=>
  array(1) {
    [0]=>
    array(1) {
      ["count"]=>
      float(1)
    }
  }
  ["count"]=>
  float(1)
  ["keys"]=>
  int(1)
  ["ok"]=>
  float(1)
}

Beispiel #3 Passing a keys function

If you want to group by something other than a field name, you can pass a function as the first parameter of MongoCollection::group() and it will be run against each document. The return value of the function will be used as its grouping value.

This example demonstrates grouping by the num field modulo 4.

<?php

$c->group(new MongoCode('function(doc) { return {mod : doc.num % 4}; }'),
     array("count" => 0),
     new MongoCode('function(current, total) { total.count++; }'));

?>


Inserts a document into the collection

  • « MongoCollection::group
  • MongoCollection::parallelCollectionScan »
  • PHP Manual
  • MongoCollection
  • Inserts a document into the collection

MongoCollection::insert

(PECL mongo >=0.9.0)

MongoCollection::insert — Inserts a document into the collection

Beschreibung

public MongoCollection::insert ( array|object $document , array $options = array() ) : bool|array

All strings sent to the database must be UTF-8. If a string is not UTF-8, a MongoException will be thrown. To insert (or query for) a non-UTF-8 string, use MongoBinData.

Parameter-Liste

document

An array or object. If an object is used, it may not have protected or private properties.

Hinweis:

If the parameter does not have an _id key or property, a new MongoId instance will be created and assigned to it. This special behavior does not mean that the parameter is passed by reference.

options

An array of options for the insert operation. Currently available options include:

  • "fsync"

    Boolean, defaults to false. If journaling is enabled, it works exactly like "j". If journaling is not enabled, the write operation blocks until it is synced to database files on disk. If true, an acknowledged insert is implied and this option will override setting "w" to 0.

    Hinweis: If journaling is enabled, users are strongly encouraged to use the "j" option instead of "fsync". Do not use "fsync" and "j" simultaneously, as that will result in an error.

  • "j"

    Boolean, defaults to false. Forces the write operation to block until it is synced to the journal on disk. If true, an acknowledged write is implied and this option will override setting "w" to 0.

    Hinweis: If this option is used and journaling is disabled, MongoDB 2.6+ will raise an error and the write will fail; older server versions will simply ignore the option.

  • "socketTimeoutMS"

    This option specifies the time limit, in milliseconds, for socket communication. If the server does not respond within the timeout period, a MongoCursorTimeoutException will be thrown and there will be no way to determine if the server actually handled the write or not. A value of -1 may be specified to block indefinitely. The default value for MongoClient is 30000 (30 seconds).

  • "w"

    See Write Concerns. The default value for MongoClient is 1.

  • "wTimeoutMS"

    This option specifies the time limit, in milliseconds, for write concern acknowledgement. It is only applicable when "w" is greater than 1, as the timeout pertains to replication. If the write concern is not satisfied within the time limit, a MongoCursorException will be thrown. A value of 0 may be specified to block indefinitely. The default value for MongoClient is 10000 (ten seconds).

The following options are deprecated and should no longer be used:

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Deprecated alias for "socketTimeoutMS".

  • "wtimeout"

    Deprecated alias for "wTimeoutMS".

Rückgabewerte

Returns an array containing the status of the insertion if the "w" option is set. Otherwise, returns true if the inserted array is not empty (a MongoException will be thrown if the inserted array is empty).

If an array is returned, the following keys may be present:

ok

This should almost always be 1 (unless last_error itself failed).

err

If this field is non-null, an error occurred on the previous operation. If this field is set, it will be a string describing the error that occurred.

code

If a database error occurred, the relevant error code will be passed back to the client.

errmsg

This field is set if something goes wrong with a database command. It is coupled with ok being 0. For example, if w is set and times out, errmsg will be set to "timed out waiting for slaves" and ok will be 0. If this field is set, it will be a string describing the error that occurred.

n

If the last operation was an update, upsert, or a remove, the number of documents affected will be returned. For insert operations, this value is always 0.

wtimeout

If the previous option timed out waiting for replication.

waited

How long the operation waited before timing out.

wtime

If w was set and the operation succeeded, how long it took to replicate to w servers.

upserted

If an upsert occurred, this field will contain the new record's _id field. For upserts, either this field or updatedExisting will be present (unless an error occurred).

updatedExisting

If an upsert updated an existing element, this field will be true. For upserts, either this field or upserted will be present (unless an error occurred).

Fehler/Exceptions

Throws MongoException if the inserted document is empty or if it contains zero-length keys. Attempting to insert an object with protected and private properties will cause a zero-length key error.

Throws MongoCursorException if the "w" option is set and the write fails.

Throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Added the "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added the "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
PECL mongo 1.3.4 | Added "wtimeout" option.
PECL mongo 1.3.0 | Added "w" option. The options parameter no longer accepts a boolean to signify an acknowledged write. Instead, this now has to be done with array('w' => 1) (the default behaviour of MongoClient).
PECL mongo 1.2.0 | Added "timeout" option.
PECL mongo 1.0.11 | Disconnects on "not master" errors if "safe" is set.
PECL mongo 1.0.9 | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option. The return type was changed to be an array containing error information if the "safe" option is used. Otherwise, a boolean is returned as before.
PECL mongo 1.0.2 | Changed second parameter to be an array of options. Pre-1.0.2, the second parameter was a boolean indicating the "safe" option.
PECL mongo 1.0.1 | Throw a MongoCursorException if the "safe" option is set and the insert fails.

Beispiele

Beispiel #1 MongoCollection::insert() _id example

An _id field will be added to the inserted document if not already present. Depending on how the parameter is passed, a generated _id may or may not be available to calling code.

<?php

$m = new MongoClient();
$collection = $m->selectCollection('test', 'phpmanual');

// If an array literal is used, there is no way to access the generated _id
$collection->insert(array('x' => 1));

// The _id is available on an array passed by value
$a = array('x' => 2);
$collection->insert($a);
var_dump($a);

// The _id is not available on an array passed by reference
$b = array('x' => 3);
$ref = &$b;
$collection->insert($ref);
var_dump($ref);

// The _id is available if a wrapping function does not trigger copy-on-write
function insert_no_cow($collection, $document)
{
    $collection->insert($document);
}

$c = array('x' => 4);
insert_no_cow($collection, $c);
var_dump($c);

// The _id is not available if a wrapping function triggers copy-on-write
function insert_cow($collection, $document)
{
    $document['y'] = 1;
    $collection->insert($document);
}

$d = array('x' => 5);
insert_cow($collection, $d);
var_dump($d);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["x"]=>
  int(2)
  ["_id"]=>
  object(MongoId)#4 (0) {
  }
}
array(1) {
  ["x"]=>
  int(3)
}
array(2) {
  ["x"]=>
  int(4)
  ["_id"]=>
  object(MongoId)#5 (0) {
  }
}
array(1) {
  ["x"]=>
  int(5)
}

Beispiel #2 MongoCollection::insert() acknowledged write example

This example shows inserting two elements with the same _id, which causes a MongoCursorException to be thrown, as w was set.

<?php

$person = array("name" => "Joe", "age" => 20);
$collection->insert($person);

// now $person has an _id field, so if we save it
// again, we will get an exception
try {
    $collection->insert($person, array("w" => 1));
} catch(MongoCursorException $e) {
    echo "Can't save the same person twice!\n";
}

?>

Siehe auch

  • MongoCollection::batchInsert() - Inserts multiple documents into this collection
  • MongoCollection::update() - Update records based on a given criteria
  • MongoCollection::find() - Queries this collection, returning a MongoCursor for the result set
  • MongoCollection::remove() - Remove records from this collection
  • MongoDB core docs on » insert.


Returns an array of cursors to iterator over a full collection in parallel

  • « MongoCollection::insert
  • MongoCollection::remove »
  • PHP Manual
  • MongoCollection
  • Returns an array of cursors to iterator over a full collection in parallel

MongoCollection::parallelCollectionScan

(PECL mongo >=1.5.0)

MongoCollection::parallelCollectionScan — Returns an array of cursors to iterator over a full collection in parallel

Beschreibung

public MongoCollection::parallelCollectionScan ( int $num_cursors ) : array[MongoCommandCursor]

This method returns an array of a maximum of num_cursors cursors. An iteration over one of the returned cursors results in a partial set of documents for a collection. Iteration over all the returned cursors results in getting every document back from the collection.

This method is a wrapper for the parallelCollectionScan MongoDB command.

Parameter-Liste

num_cursors

The number of cursors to request from the server. Please note, that the server can return less cursors than you requested.

Rückgabewerte

Returns an array of MongoCommandCursor objects.

Beispiele

Beispiel #1 MongoCollection::parallelCollectionScan() example

Returning all documents in a collection by using multiple cursors.

<?php
$m = new MongoClient;
$c = $m->demo->cities;

/* Request three cursors */
$cursors = $c->parallelCollectionScan( 3 );

/* Add all the cursors to the MultipleIterator */
$mi = new MultipleIterator( MultipleIterator::MIT_NEED_ANY );
foreach ( $cursors as $cursor )
{
    $mi->attachIterator( $cursor );
}

/* Iterate over all the associated cursors */
foreach ( $mi as $items )
{
    foreach ( $items as $item )
    {
        if ( $item !== NULL )
        {
            echo $item['name'], "\n";
        }
    }
}
?>

Siehe auch

  • MultipleIterator
  • MongoCommandCursor
  • MongoDB::command() - Execute a database command


Remove records from this collection

  • « MongoCollection::parallelCollectionScan
  • MongoCollection::save »
  • PHP Manual
  • MongoCollection
  • Remove records from this collection

MongoCollection::remove

(PECL mongo >=0.9.0)

MongoCollection::remove — Remove records from this collection

Beschreibung

public MongoCollection::remove
 ( array $criteria = array()
, array $options = array()
) : bool|array

Parameter-Liste

criteria

Query criteria for the documents to delete.

options

An array of options for the remove operation. Currently available options include:

  • "w"

    See Write Concerns. The default value for MongoClient is 1.

  • "justOne"

    Specify true to limit deletion to just one document. If false or omitted, all documents matching the criteria will be deleted.

  • "fsync"

    Boolean, defaults to false. If journaling is enabled, it works exactly like "j". If journaling is not enabled, the write operation blocks until it is synced to database files on disk. If true, an acknowledged insert is implied and this option will override setting "w" to 0.

    Hinweis: If journaling is enabled, users are strongly encouraged to use the "j" option instead of "fsync". Do not use "fsync" and "j" simultaneously, as that will result in an error.

  • "j"

    Boolean, defaults to false. Forces the write operation to block until it is synced to the journal on disk. If true, an acknowledged write is implied and this option will override setting "w" to 0.

    Hinweis: If this option is used and journaling is disabled, MongoDB 2.6+ will raise an error and the write will fail; older server versions will simply ignore the option.

  • "socketTimeoutMS"

    This option specifies the time limit, in milliseconds, for socket communication. If the server does not respond within the timeout period, a MongoCursorTimeoutException will be thrown and there will be no way to determine if the server actually handled the write or not. A value of -1 may be specified to block indefinitely. The default value for MongoClient is 30000 (30 seconds).

  • "w"

    See Write Concerns. The default value for MongoClient is 1.

  • "wTimeoutMS"

    This option specifies the time limit, in milliseconds, for write concern acknowledgement. It is only applicable when "w" is greater than 1, as the timeout pertains to replication. If the write concern is not satisfied within the time limit, a MongoCursorException will be thrown. A value of 0 may be specified to block indefinitely. The default value for MongoClient is 10000 (ten seconds).

The following options are deprecated and should no longer be used:

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Deprecated alias for "socketTimeoutMS".

  • "wtimeout"

    Deprecated alias for "wTimeoutMS".

Rückgabewerte

Returns an array containing the status of the removal if the "w" option is set. Otherwise, returns true.

Fields in the status array are described in the documentation for MongoCollection::insert().

Fehler/Exceptions

Throws MongoCursorException if the "w" option is set and the write fails.

Throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Added "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
PECL mongo 1.3.4 | Added "wtimeout" option.
PECL mongo 1.3.0 | Added "w" option. The options parameter no longer accepts a boolean to signify "justOne". Instead, this now has to be done with array('justOne' => true).
PECL mongo 1.2.11 | Emits E_DEPRECATED when options is scalar.
PECL mongo 1.2.0 | Added "timeout" option.
PECL mongo 1.0.11 | Disconnects on "not master" errors if "safe" is set.
PECL mongo 1.0.9 | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option. The return type was changed to be an array containing error information if the "safe" option is used. Otherwise, a boolean is returned as before.
PECL mongo 1.0.5 | Changed second parameter to be an array of options. Pre-1.0.5, the second parameter was a boolean indicating the "safe" option.

Beispiele

Beispiel #1 MongoCollection::remove() with justOne example

<?php

$radioactive = $db->radioactive;

// count how much more plutonium there is
$remaining = $radioactive->count(array('type' => 94));

$halflife = $remaining/2;

// remove half of it
while ($halflife > 0) {
    $radioactive->remove(array('type' => 94), array("justOne" => true));
    $halflife--;
}

?>

Siehe auch

  • MongoCollection::insert() - Inserts a document into the collection
  • MongoCollection::update() - Update records based on a given criteria
  • MongoDB core docs on » remove.


Saves a document to this collection

  • « MongoCollection::remove
  • MongoCollection::setReadPreference »
  • PHP Manual
  • MongoCollection
  • Saves a document to this collection

MongoCollection::save

(PECL mongo >=0.9.0)

MongoCollection::save — Saves a document to this collection

Beschreibung

public MongoCollection::save ( array|object $document , array $options = array() ) : mixed

If the object is from the database, update the existing database object, otherwise insert this object.

Parameter-Liste

document

Array or object to save. If an object is used, it may not have protected or private properties.

Hinweis:

If the parameter does not have an _id key or property, a new MongoId instance will be created and assigned to it. See MongoCollection::insert() for additional information on this behavior.

options

Options for the save.

  • "fsync"

    Boolean, defaults to false. If journaling is enabled, it works exactly like "j". If journaling is not enabled, the write operation blocks until it is synced to database files on disk. If true, an acknowledged insert is implied and this option will override setting "w" to 0.

    Hinweis: If journaling is enabled, users are strongly encouraged to use the "j" option instead of "fsync". Do not use "fsync" and "j" simultaneously, as that will result in an error.

  • "j"

    Boolean, defaults to false. Forces the write operation to block until it is synced to the journal on disk. If true, an acknowledged write is implied and this option will override setting "w" to 0.

    Hinweis: If this option is used and journaling is disabled, MongoDB 2.6+ will raise an error and the write will fail; older server versions will simply ignore the option.

  • "socketTimeoutMS"

    This option specifies the time limit, in milliseconds, for socket communication. If the server does not respond within the timeout period, a MongoCursorTimeoutException will be thrown and there will be no way to determine if the server actually handled the write or not. A value of -1 may be specified to block indefinitely. The default value for MongoClient is 30000 (30 seconds).

  • "w"

    See Write Concerns. The default value for MongoClient is 1.

  • "wtimeout"

    Deprecated alias for "wTimeoutMS".

  • "wTimeoutMS"

    This option specifies the time limit, in milliseconds, for write concern acknowledgement. It is only applicable when "w" is greater than 1, as the timeout pertains to replication. If the write concern is not satisfied within the time limit, a MongoCursorException will be thrown. A value of 0 may be specified to block indefinitely. The default value for MongoClient is 10000 (ten seconds).

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Deprecated alias for "socketTimeoutMS".

Rückgabewerte

If w was set, returns an array containing the status of the save. Otherwise, returns a boolean representing if the array was not empty (an empty array will not be inserted).

Fehler/Exceptions

Throws MongoException if the inserted document is empty or if it contains zero-length keys. Attempting to insert an object with protected and private properties will cause a zero-length key error.

Throws MongoCursorException if the "w" option is set and the write fails.

Throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Added "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
PECL mongo 1.2.0 | Added "timeout" option.
PECL mongo 1.0.11 | Disconnects on "not master" errors if "safe" is set.
PECL mongo 1.0.9 | Added "fsync" option.
PECL mongo 1.0.5 | Added options parameter.

Beispiele

Beispiel #1 MongoCollection::save() example

<?php

$obj = array('x' => 1);

// insert $obj into the db
$collection->save($obj);
var_dump($obj);

// add another field
$obj['foo'] = 'bar';

// $obj cannot be inserted again, causes duplicate _id error
$collection->insert($obj);

// save updates $obj with the new field
$collection->save($obj);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["x"]=>
  int(1)
  ["_id"]=>
  object(MongoId)#4 (1) {
    ["$id"]=>
    string(24) "50b6afe544415ed606000000"
  }
}


Set the read preference for this collection

  • « MongoCollection::save
  • MongoCollection::setSlaveOkay »
  • PHP Manual
  • MongoCollection
  • Set the read preference for this collection

MongoCollection::setReadPreference

(PECL mongo >=1.3.0)

MongoCollection::setReadPreference — Set the read preference for this collection

Beschreibung

public MongoCollection::setReadPreference ( string $read_preference , array $tags = ? ) : bool

Parameter-Liste

read_preference

The read preference mode: MongoClient::RP_PRIMARY,
MongoClient::RP_PRIMARY_PREFERRED,
MongoClient::RP_SECONDARY,
MongoClient::RP_SECONDARY_PREFERRED, or
MongoClient::RP_NEAREST.

tags

An array of zero or more tag sets, where each tag set is itself an array of criteria used to match tags on replica set members.

Rückgabewerte

Returns true on success, or false otherwise.

Fehler/Exceptions

Emits E_WARNING if either parameter is invalid, or if one or more tag sets are provided with the MongoClient::RP_PRIMARY read preference mode.

Beispiele

Beispiel #1 MongoCollection::setReadPreference() tag set array syntax example

<?php

$m = new MongoClient();
$c = $m->test->users;

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$c->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Siehe auch

  • The read preferences documentation.
  • MongoCollection::getReadPreference() - Get the read preference for this collection


Change slaveOkay setting for this collection

  • « MongoCollection::setReadPreference
  • MongoCollection::setWriteConcern »
  • PHP Manual
  • MongoCollection
  • Change slaveOkay setting for this collection

MongoCollection::setSlaveOkay

(PECL mongo >=1.1.0)

MongoCollection::setSlaveOkay — Change slaveOkay setting for this collection

Beschreibung

public MongoCollection::setSlaveOkay ( bool $ok = true ) : bool

See the query section of this manual for information on distributing reads to secondaries.

Parameter-Liste

ok

If reads should be sent to secondary members of a replica set for all possible queries using this MongoCollection instance.

Rückgabewerte

Returns the former value of slaveOkay for this instance.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Siehe auch

  • Read Preferences
  • MongoCollection::setReadPreference() - Set the read preference for this collection


Set the write concern for this database

  • « MongoCollection::setSlaveOkay
  • MongoCollection::toIndexString »
  • PHP Manual
  • MongoCollection
  • Set the write concern for this database

MongoCollection::setWriteConcern

(PECL mongo >=1.5.0)

MongoCollection::setWriteConcern — Set the write concern for this database

Beschreibung

public MongoCollection::setWriteConcern ( mixed $w , int $wtimeout = ? ) : bool

Parameter-Liste

w

The write concern. This may be an integer denoting the number of servers required to acknowledge the write, or a string mode (e.g. "majority").

wtimeout

The maximum number of milliseconds to wait for the server to satisfy the write concern.

Rückgabewerte

Returns true on success, or false otherwise.

Fehler/Exceptions

Emits E_WARNING if the w parameter is not an integer or string value.

Beispiele

Beispiel #1 MongoDB::setWriteConcern() example

<?php

$mc = new MongoClient('mongodb://rs1.example.com,rs2.example.com');
$coll = $mc->selectCollection('test', 'foo');

// Require that the majority of servers in the replica set acknowledge writes
// within three seconds.
$coll->setWriteConcern('majority', 3000);
?>

Siehe auch

  • The write concern documentation.
  • MongoCollection::getWriteConcern() - Get the write concern for this collection


Converts keys specifying an index to its identifying string

  • « MongoCollection::setWriteConcern
  • MongoCollection::__toString »
  • PHP Manual
  • MongoCollection
  • Converts keys specifying an index to its identifying string

MongoCollection::toIndexString

(PECL mongo >=0.9.0)

MongoCollection::toIndexString — Converts keys specifying an index to its identifying string

Beschreibung

static protected MongoCollection::toIndexString ( mixed $keys ) : string
Warnung

This method is deprecated since version 1.5.0.

Parameter-Liste

keys

Field or fields to convert to the identifying string

Rückgabewerte

Returns a string that describes the index.

Beispiele

Beispiel #1 MongoCollection::toIndexString() example

This example shows how you can create an index name out of keys. Because this is a protected (static) method, you need to overload it in a child class first.

<?php
// Create inherited class to make the method "public".
class MyCollection extends MongoCollection
{
    static public function toIndexString($a)
    {
        return parent::toIndexString($a);
    }
}

echo MyCollection::toIndexString("foo"), "\n";
// Outputs: foo_1

echo MyCollection::toIndexString(array('name' => 1, 'age' => -1)), "\n";
// Outputs: name_1_age_-1
?>

Siehe auch

MongoDB core docs on » indexes.

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | This method has been deprecated.


String representation of this collection

  • « MongoCollection::toIndexString
  • MongoCollection::update »
  • PHP Manual
  • MongoCollection
  • String representation of this collection

MongoCollection::__toString

(PECL mongo >=0.9.0)

MongoCollection::__toString — String representation of this collection

Beschreibung

public MongoCollection::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the full name of this collection.

Beispiele

Beispiel #1 MongoCollection::__toString() example

<?php

$m = new MongoClient();

$c1 = $m->foo->bar->baz;
echo "Working with collection $c1.";

$c2 = $m->selectCollection('[]', '&');
echo "Working with collection $c2.";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Working with collection foo.bar.baz.
Working with collection [].&.


Update records based on a given criteria

  • « MongoCollection::__toString
  • MongoCollection::validate »
  • PHP Manual
  • MongoCollection
  • Update records based on a given criteria

MongoCollection::update

(PECL mongo >=0.9.0)

MongoCollection::update — Update records based on a given criteria

Beschreibung

public MongoCollection::update ( array $criteria , array $new_object , array $options = array() ) : bool|array

Parameter-Liste

criteria

Query criteria for the documents to update.

new_object

The object used to update the matched documents. This may either contain update operators (for modifying specific fields) or be a replacement document.

options

An array of options for the update operation. Currently available options include:

  • "upsert"

    If no document matches $criteria, a new document will be inserted.

    If a new document would be inserted and $new_object contains atomic modifiers (i.e. $ operators), those operations will be applied to the $criteria parameter to create the new document. If $new_object does not contain atomic modifiers, it will be used as-is for the inserted document. See the upsert examples below for more information.

  • "multiple"

    All documents matching $criteria will be updated. MongoCollection::update() has exactly the opposite behavior of MongoCollection::remove(): it updates one document by default, not all matching documents. It is recommended that you always specify whether you want to update multiple documents or a single document, as the database may change its default behavior at some point in the future.

  • "fsync"

    Boolean, defaults to false. If journaling is enabled, it works exactly like "j". If journaling is not enabled, the write operation blocks until it is synced to database files on disk. If true, an acknowledged insert is implied and this option will override setting "w" to 0.

    Hinweis: If journaling is enabled, users are strongly encouraged to use the "j" option instead of "fsync". Do not use "fsync" and "j" simultaneously, as that will result in an error.

  • "j"

    Boolean, defaults to false. Forces the write operation to block until it is synced to the journal on disk. If true, an acknowledged write is implied and this option will override setting "w" to 0.

    Hinweis: If this option is used and journaling is disabled, MongoDB 2.6+ will raise an error and the write will fail; older server versions will simply ignore the option.

  • "socketTimeoutMS"

    This option specifies the time limit, in milliseconds, for socket communication. If the server does not respond within the timeout period, a MongoCursorTimeoutException will be thrown and there will be no way to determine if the server actually handled the write or not. A value of -1 may be specified to block indefinitely. The default value for MongoClient is 30000 (30 seconds).

  • "w"

    See Write Concerns. The default value for MongoClient is 1.

  • "wTimeoutMS"

    This option specifies the time limit, in milliseconds, for write concern acknowledgement. It is only applicable when "w" is greater than 1, as the timeout pertains to replication. If the write concern is not satisfied within the time limit, a MongoCursorException will be thrown. A value of 0 may be specified to block indefinitely. The default value for MongoClient is 10000 (ten seconds).

The following options are deprecated and should no longer be used:

  • "safe"

    Deprecated. Please use the write concern "w" option.

  • "timeout"

    Deprecated alias for "socketTimeoutMS".

  • "wtimeout"

    Deprecated alias for "wTimeoutMS".

Rückgabewerte

Returns an array containing the status of the update if the "w" option is set. Otherwise, returns true.

Fields in the status array are described in the documentation for MongoCollection::insert().

Fehler/Exceptions

Throws MongoCursorException if the "w" option is set and the write fails.

Throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | Added the "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added the "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
PECL mongo 1.3.4 | Added "wtimeout" option.
PECL mongo 1.3.0 | Added "w" option. The options parameter no longer accepts a boolean to signify an upsert. Instead, this now has to be done with array('upsert' => true).
PECL mongo 1.2.11 | Emits E_DEPRECATED when options is scalar.
PECL mongo 1.2.0 | Added "timeout" option.
PECL mongo 1.0.11 | Disconnects on "not master" errors if "safe" is set.
PECL mongo 1.0.9 | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option. The return type was changed to be an array containing error information if the "safe" option is used. Otherwise, a boolean is returned as before.
PECL mongo 1.0.5 | Added "safe" option.
PECL mongo 1.0.1 | Changed options parameter from boolean to array. Pre-1.0.1, the second parameter was an optional boolean value specifying an upsert.

Beispiele

Beispiel #1 MongoCollection::update()

Adding an address field to a document.

<?php

$c->insert(array("firstname" => "Bob", "lastname" => "Jones" ));
$newdata = array('$set' => array("address" => "1 Smith Lane"));
$c->update(array("firstname" => "Bob"), $newdata);

var_dump($c->findOne(array("firstname" => "Bob")));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(4) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["firstname"]=>
  string(3) "Bob"
  ["lastname"]=>
  string(5) "Jones"
  ["address"]=>
  string(12) "1 Smith Lane"
}

Beispiel #2 MongoCollection::update() upsert examples

Upserts can simplify code, as a single line can create the document if it does not exist (based on $criteria), or update an existing document if it matches.

In the following example, $new_object contains an atomic modifier. Since the collection is empty and upsert must insert a new document, it will apply those operations to the $criteria parameter in order to create the document.

<?php

$c->drop();
$c->update(
    array("uri" => "/summer_pics"),
    array('$inc' => array("page hits" => 1)),
    array("upsert" => true)
);
var_dump($c->findOne());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  ["_id"]=>
  object(MongoId)#9 (0) {
  }
  ["uri"]=>
  string(12) "/summer_pics"
  ["page hits"]=>
  int(1)
}

If $new_object does not contain atomic modifiers (i.e. $ operators), upsert will use $new_object as-is for the new document. This matches the behavior of a normal update, where not using atomic modifiers causes the document to be overwritten.

<?php

$c->drop();
$c->update(
    array("name" => "joe"),
    array("username" => "joe312", "createdAt" => new MongoDate()),
    array("upsert" => true)
);
var_dump($c->findOne());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  ["_id"]=>
  object(MongoId)#10 (0) {
  }
  ["username"]=>
  string(6) "joe312"
  ["createdAt"]=>
  object(MongoDate)#4 (0) {
  }
}

Beispiel #3 MongoCollection::update() multiple example

By default, MongoCollection::update() will only update the first document matching $criteria that it finds. Using the "multiple" option can override this behavior, if needed.

This example adds a "gift" field to every person whose birthday is in the next day.

<?php

$today = array('$gt' => new MongoDate(), '$lt' => new MongoDate(strtotime("+1 day")));
$people->update(
    array("birthday" => $today),
    array('$set' => array('gift' => $surprise)),
    array("multiple" => true)
);

?>

Siehe auch

The PHP documentation on updates and the » MongoDB core docs.


Validates this collection

  • « MongoCollection::update
  • MongoCursor »
  • PHP Manual
  • MongoCollection
  • Validates this collection

MongoCollection::validate

(PECL mongo >=0.9.0)

MongoCollection::validate — Validates this collection

Beschreibung

public MongoCollection::validate ( bool $scan_data = false ) : array

Parameter-Liste

scan_data

Only validate indices, not the base collection.

Rückgabewerte

Returns the database's evaluation of this object.


The MongoCursor class

(PECL mongo >=0.9.0)

Einführung

A cursor is used to iterate through the results of a database query. For example, to query the database and see all results, you could do:

Beispiel #1 MongoCursor basic usage

<?php

$cursor = $collection->find();
var_dump(iterator_to_array($cursor));

?>

You don't generally create cursors using the MongoCursor constructor, you get a new cursor by calling MongoCollection::find() (as shown above).

Suppose that, in the example above, $collection was a 50GB collection. We certainly wouldn't want to load that into memory all at once, which is what a cursor is for: allowing the client to access the collection in dribs and drabs.

If we have a large result set, we can iterate through it, loading a few megabytes of results into memory at a time. For example, we could do:

Beispiel #2 Iterating over MongoCursor

<?php

$cursor = $collection->find();

foreach ($cursor as $doc) {
    // do something to each document
}

?>
This will go through each document in the collection, loading and garbage collecting documents as needed.

Note that this means that a cursor does not "contain" the database results, it just manages them. Thus, if you print a cursor (with, say, var_dump() or print_r()), you'll just get the cursor object, not your documents. To get the documents themselves, you can use one of the methods shown above.

Cursor Stages

A MongoCursor has two "life stages": pre- and post- query. When a cursor is created, it has not yet contacted the database, so it is in its pre-query state. In this state, the client can further specify what they want the query to do, including adding limits, skips, sorts, and more advanced options.

When the client attempts to get a result (by calling MongoCursor::next(), directly or indirectly), the cursor moves into the post-query stage. At this point, the query has been executed by the database and cannot be modified anymore.

Beispiel #3 Adding options to MongoCursor

<?php

$cursor = $collection->find()->limit(10);

// database has not yet been queried, so more search options can be added
$cursor = $cursor->sort(array("a" => 1));

var_dump($cursor->getNext());
// now database has been queried and more options cannot be added

// so this will throw an exception:
$cursor->skip(4);
?>

Klassenbeschreibung

MongoCursor implements MongoCursorInterface , Iterator {
/* Static Fields */
static bool $slaveOkay = false ;
static int $timeout = 30000 ;
/* Methoden */
public addOption ( string $key , mixed $value ) : MongoCursor
public awaitData ( bool $wait = true ) : MongoCursor
public batchSize ( int $batchSize ) : MongoCursor
public __construct ( MongoClient $connection , string $ns , array $query = array() , array $fields = array() )
public count ( bool $foundOnly = false ) : int
public current ( ) : array
public dead ( ) : bool
protected doQuery ( ) : void
public explain ( ) : array
public fields ( array $f ) : MongoCursor
public getNext ( ) : array
public getReadPreference ( ) : array
public hasNext ( ) : bool
public hint ( mixed $index ) : MongoCursor
public immortal ( bool $liveForever = true ) : MongoCursor
public info ( ) : array
public key ( ) : string|int
public limit ( int $num ) : MongoCursor
public maxTimeMS ( int $ms ) : MongoCursor
public next ( ) : array
public partial ( bool $okay = true ) : MongoCursor
public reset ( ) : void
public rewind ( ) : void
public setFlag ( int $flag , bool $set = true ) : MongoCursor
public setReadPreference ( string $read_preference , array $tags = ? ) : MongoCursor
public skip ( int $num ) : MongoCursor
public slaveOkay ( bool $okay = true ) : MongoCursor
public snapshot ( ) : MongoCursor
public sort ( array $fields ) : MongoCursor
public tailable ( bool $tail = true ) : MongoCursor
public timeout ( int $ms ) : MongoCursor
public valid ( ) : bool
}

Static Variables

slaveOkay

If the query should have the "slaveOkay" flag set, which allows reads on the secondary (secondaries are, by default, just for backup and not queried). Can be overridden with MongoCursor::slaveOkay().

This functionality is deprecated. Please use Read Preferences instead.

timeout

Set timeout in milliseconds for all database responses. Use -1 to wait forever. Can be overridden with MongoCursor::timeout(). This does not cause the MongoDB server to cancel the operation; it only instructs the driver to stop waiting for a response and throw a MongoCursorTimeoutException after a set time.

Siehe auch

MongoDB core docs on » cursors.

Inhaltsverzeichnis

  • MongoCursor::addOption — Adds a top-level key/value pair to a query
  • MongoCursor::awaitData — Sets whether this cursor will wait for a while for a tailable cursor to return more data
  • MongoCursor::batchSize — Limits the number of elements returned in one batch
  • MongoCursor::__construct — Create a new cursor
  • MongoCursor::count — Counts the number of results for this query
  • MongoCursor::current — Returns the current element
  • MongoCursor::dead — Checks if there are results that have not yet been sent from the database
  • MongoCursor::doQuery — Execute the query
  • MongoCursor::explain — Return an explanation of the query, often useful for optimization and debugging
  • MongoCursor::fields — Sets the fields for a query
  • MongoCursor::getNext — Advances the cursor to the next result, and returns that result
  • MongoCursor::getReadPreference — Get the read preference for this query
  • MongoCursor::hasNext — Checks if there are any more elements in this cursor
  • MongoCursor::hint — Gives the database a hint about the query
  • MongoCursor::immortal — Sets whether this cursor will timeout
  • MongoCursor::info — Gets information about the cursor's creation and iteration
  • MongoCursor::key — Returns the current result's _id, or its index within the result set
  • MongoCursor::limit — Limits the number of results returned
  • MongoCursor::maxTimeMS — Sets a server-side timeout for this query
  • MongoCursor::next — Advances the cursor to the next result, and returns that result
  • MongoCursor::partial — If this query should fetch partial results from mongos if a shard is down
  • MongoCursor::reset — Clears the cursor
  • MongoCursor::rewind — Returns the cursor to the beginning of the result set
  • MongoCursor::setFlag — Sets arbitrary flags in case there is no method available the specific flag
  • MongoCursor::setReadPreference — Set the read preference for this query
  • MongoCursor::skip — Skips a number of results
  • MongoCursor::slaveOkay — Sets whether this query can be done on a secondary [deprecated]
  • MongoCursor::snapshot — Use snapshot mode for the query
  • MongoCursor::sort — Sorts the results by given fields
  • MongoCursor::tailable — Sets whether this cursor will be left open after fetching the last results
  • MongoCursor::timeout — Sets a client-side timeout for this query
  • MongoCursor::valid — Checks if the cursor is reading a valid result


Adds a top-level key/value pair to a query

  • « MongoCursor
  • MongoCursor::awaitData »
  • PHP Manual
  • MongoCursor
  • Adds a top-level key/value pair to a query

MongoCursor::addOption

(PECL mongo >=1.0.4)

MongoCursor::addOption — Adds a top-level key/value pair to a query

Beschreibung

public MongoCursor::addOption ( string $key , mixed $value ) : MongoCursor

This is an advanced function and should not be used unless you know what you're doing.

A query can optionally be nested in a "query" field if other options, such as a sort or hint, are given. For instance, adding a sort causes the query to become a subfield of a bigger query object, like:

<?php

$query = array("query" => $query, "orderby" => $sort);

?>

This method is for adding a top-level field to a query. It makes the query a subobject (if it isn't already) and adds the key/value pair of your chosing to the top level.

Warnung

It cannot be used to add extra criteria to a query on the fly. For instance, this will not work:

<?php

// NOT CORRECT
$cursor = $users->find()->addOption("name", "joe")->addOption("age", 20);

?>
This does not query for a user named "joe" with an age of 20.

Parameter-Liste

key

Fieldname to add.

value

Value to add.

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating.

Beispiele

Beispiel #1 Adding a comment with MongoCursor::addOption() example

MongoDB supports special options to be send to the server. The shell uses the _addSpecial option to send a $comment to the server. This comment will show up in the profiling log (for slow queries f.e.). In the PHP driver, you use the MongoCursor::addOption() method.

<?php
$m = new MongoClient;
$c = $m->demo->demo;
$cursor = $c->find();
$cursor->addOption('$comment', "This comment will show up in the profiling log");

foreach ($cursor as $document) { /* empty */ }
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

{
    "op" : "query",
    "ns" : "demo.demo",
    "query" : {
        "$query" : {

        },
        "$comment" : "This comment will show up in the profiling log"
    },
    "cursorid" : 168463566447,
    "ntoreturn" : 0,
    "ntoskip" : 0,
    "nscanned" : 101,
    "nscannedObjects" : 101,
    "keyUpdates" : 0,
    "numYield" : 0,
…

Beispiel #2 MongoCursor::addOption() example

Using MongoCursor::skip() to skip over millions of results can become slow. One way around this is to use $min or $max options for the query. These can be handy, but they require an index on exactly the fields being searched for. This is an example of how to use $min as an alternative to MongoCursor::skip().

<?php

// make sure we have an index
$c->ensureIndex(array("ts" => 1));

// you may have to modify this to run in a reasonable amount of time on slow
// machines (should take about 30 seconds on a good machine)
for ($i = 0; $i < 30000000; $i++) {
    $c->insert(array("ts" => new MongoDate(), "i" => $i));
}

$now = strtotime("now");

// find documents inserted in the last 2 seconds
$cursor = $c->find()->addOption('$min', array("ts" => $now-2));

?>


Sets whether this cursor will wait for a while for a tailable cursor to return more data

  • « MongoCursor::addOption
  • MongoCursor::batchSize »
  • PHP Manual
  • MongoCursor
  • Sets whether this cursor will wait for a while for a tailable cursor to return more data

MongoCursor::awaitData

(PECL mongo >=1.2.11)

MongoCursor::awaitData — Sets whether this cursor will wait for a while for a tailable cursor to return more data

Beschreibung

public MongoCursor::awaitData ( bool $wait = true ) : MongoCursor

This method is to be used with tailable cursors. If we are at the end of the data, block for a while rather than returning no data. After a timeout period, we do return as normal.

Parameter-Liste

wait

If the cursor should wait for more data to become available.

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating.

Beispiele

Beispiel #1 MongoCursor::awaitData() example

In this example we tail the "oplog" and instead of sleeping during every iteration, we set the MongoCursor::awaitData() option. MongoCursor::hasNext() will now block until there is more data available.

<?php
$m = new MongoClient( 'mongodb://localhost:13000', array( 'replSet' => 'seta' ) );
$c = $m->local->selectCollection( 'oplog.rs' );
$cursor = $c->find( array( 'ns' => 'demo.article', 'op' => 'i' ) );
$cursor->tailable( true );
$cursor->awaitData( true );

while (true) {
    if (!$cursor->hasNext()) {
        // we've read all the results, exit
        if ($cursor->dead()) {
            break;
        }
    } else {
        var_dump( $cursor->getNext() );
    }
}
?>

Siehe auch

MongoDB core docs on » tailable cursors.

  • MongoCursor::tailable() - Sets whether this cursor will be left open after fetching the last results


Limits the number of elements returned in one batch

  • « MongoCursor::awaitData
  • MongoCursor::__construct »
  • PHP Manual
  • MongoCursor
  • Limits the number of elements returned in one batch

MongoCursor::batchSize

(PECL mongo >=1.0.11)

MongoCursor::batchSize — Limits the number of elements returned in one batch

Beschreibung

public MongoCursor::batchSize ( int $batchSize ) : MongoCursor

A cursor typically fetches a batch of result objects and store them locally. This method sets the batchSize value to configure the amount of documents retrieved from the server in one round trip. However, it will never return more documents than fit in the max batch size limit (usually 4MB).

Parameter-Liste

batchSize

The number of results to return per batch. Each batch requires a round-trip to the server.

If batchSize is 2 or more, it represents the size of each batch of objects retrieved. It can be adjusted to optimize performance and limit data transfer.

If batchSize is 1 or negative, it will limit of number returned documents to the absolute value of batchSize, and the cursor will be closed. For example if batchSize is -10, then the server will return a maximum of 10 documents and as many as can fit in 4MB, then close the cursor.

Warnung

A batchSize of 1 is special, and means the same as -1, i.e. a value of 1 makes the cursor only capable of returning one document.

Note that this feature is different from MongoCursor::limit() in that documents must fit within a maximum size, and it removes the need to send a request to close the cursor server-side. The batch size can be changed even after a cursor is iterated, in which case the setting will apply on the next batch retrieval.

This cannot override MongoDB's limit on the amount of data it will return to the client (i.e., if you set batch size to 1,000,000,000, MongoDB will still only return 4-16MB of results per batch).

To ensure consistent behavior, the rules of MongoCursor::batchSize() and MongoCursor::limit() behave a little complex but work "as expected". The rules are: hard limits override soft limits with preference given to MongoCursor::limit() over MongoCursor::batchSize(). After that, whichever is set and lower than the other will take precedence. See below. section for some examples.

Rückgabewerte

Returns this cursor.

Beispiele

Beispiel #1 MongoCursor::batchSize() and combinations with MongoCursor::limit()

<?php

// one batch, at most 10 items. The -10 makes the server to return 10 items,
// and then remove the cursor.
$cursor->limit(20)->batchSize(-10);

// first batch: at most 10 items
$cursor->limit(10);

// first batch: at most 10 items
$cursor->limit(10)->batchSize(20);

// results are fetched in batches of 10 each, with a maximum of 20 items
// returned (that means two batches of 10).
$cursor->limit(20)->batchSize(10);

// results are fetched in batches of 7 each, with a maximum of 30 items
// returned (that means that the driver requests 4 batches of 7, and one batch
// of 2).
$cursor->limit(30)->batchSize(7)
?>

Siehe auch

MongoDB core docs on » batchSize.

  • MongoCursor::limit() - Limits the number of results returned
  • MongoCursorInterface::batchSize() - Limits the number of elements returned in one batch

Changelog

Version | Beschreibung
PECL mongo 1.4.5 | Before 1.4.5, this method would throw an MongoCursorException if the cursor had already started iterating.


Create a new cursor

  • « MongoCursor::batchSize
  • MongoCursor::count »
  • PHP Manual
  • MongoCursor
  • Create a new cursor

MongoCursor::__construct

(PECL mongo >=0.9.0)

MongoCursor::__construct — Create a new cursor

Beschreibung

public MongoCursor::__construct ( MongoClient $connection , string $ns , array $query = array() , array $fields = array() )

Parameter-Liste

connection

Database connection.

ns

Full name of database and collection.

query

Database query.

fields

Fields to return.

Rückgabewerte

Returns the new cursor.


Counts the number of results for this query

  • « MongoCursor::__construct
  • MongoCursor::current »
  • PHP Manual
  • MongoCursor
  • Counts the number of results for this query

MongoCursor::count

(PECL mongo >=0.9.2)

MongoCursor::count — Counts the number of results for this query

Beschreibung

public MongoCursor::count ( bool $foundOnly = false ) : int

This method does not affect the state of the cursor: if you haven't queried yet, you can still apply limits, skips, etc. If you have started iterating through results, it will not move the current position of the cursor. If you have exhausted the cursor, it will not reset it.

Parameter-Liste

foundOnly

Send cursor limit and skip information to the count function, if applicable.

Rückgabewerte

The number of documents returned by this cursor's query.

Beispiele

Beispiel #1 MongoCursor::count() example

<?php

$collection->insert(array('x'=>1));
$collection->insert(array('x'=>2));
$collection->insert(array('x'=>3));

$cursor = $collection->find();

var_dump($cursor->count());
var_dump($cursor->count(true));

$cursor->limit(2);

var_dump($cursor->count());
var_dump($cursor->count(true));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)
int(3)
int(3)
int(2)

Fehler/Exceptions

Throws MongoConnectionException if it cannot reach the database.


Returns the current element

  • « MongoCursor::count
  • MongoCursor::dead »
  • PHP Manual
  • MongoCursor
  • Returns the current element

MongoCursor::current

(PECL mongo >=0.9.0)

MongoCursor::current — Returns the current element

Beschreibung

public MongoCursor::current ( ) : array

This returns null until MongoCursor::next() is called.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current result document as an associative array. null will be returned if there is no result.

Siehe auch

  • Iterator::current() - Gibt das aktuelle Element zurück


Checks if there are results that have not yet been sent from the database

  • « MongoCursor::current
  • MongoCursor::doQuery »
  • PHP Manual
  • MongoCursor
  • Checks if there are results that have not yet been sent from the database

MongoCursor::dead

(PECL mongo >=0.9.6)

MongoCursor::dead — Checks if there are results that have not yet been sent from the database

Beschreibung

public MongoCursor::dead ( ) : bool

The database sends responses in batches of documents, up to 4MB of documents per response. This method checks if the database has more batches or if the result set has been exhausted.

A cursor being "dead" does not mean that MongoCursor::hasNext() will return false, it only means that the database is done sending results to the client. The client should continue iterating through results until MongoCursor::hasNext() is false.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if there are more results that have not yet been sent to the client, and false otherwise.

Siehe auch

  • MongoCursorInterface::dead() - Checks if there are results that have not yet been sent from the database


Execute the query

  • « MongoCursor::dead
  • MongoCursor::explain »
  • PHP Manual
  • MongoCursor
  • Execute the query

MongoCursor::doQuery

(PECL mongo >=0.9.0 <1.6.0)

MongoCursor::doQuery — Execute the query

Beschreibung

protected MongoCursor::doQuery ( ) : void
Warnung

Please do not use me.

This function actually queries the database. All queries and commands go through this function. Thus, this function can be overridden to provide custom query handling.

This handles serializing your query, sending it to the database, receiving a response, and deserializing it. Thus, if you are planning to override this, your code should probably call out to the original to use the existing functionality (see the example below).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

null.

Fehler/Exceptions

Throws MongoConnectionException if it cannot reach the database.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Beispiele

Beispiel #1 MongoCursor::doQuery() example

You could override this function to attempt a query on a secondary and, if that fails, try it again on the primary.

<?php

class MyCursor extends MongoCursor {

    protected function doQuery() {

        $this->slaveOkay();

        try {
            MongoCursor::doQuery();
        }
        catch(MongoCursorException $e) {
            $this->slaveOkay(false);
            MongoCursor::doQuery();
        }
    }
}

?>


Return an explanation of the query, often useful for optimization and debugging

  • « MongoCursor::doQuery
  • MongoCursor::fields »
  • PHP Manual
  • MongoCursor
  • Return an explanation of the query, often useful for optimization and debugging

MongoCursor::explain

(PECL mongo >=0.9.2)

MongoCursor::explain — Return an explanation of the query, often useful for optimization and debugging

Beschreibung

public MongoCursor::explain ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an explanation of the query.

Beispiele

Beispiel #1 MongoCursor::explain() example

<?php

$cursor = $collection->find(array("x"=>1), array("y"));
$cursor->sort(array("z" => 1))->limit(4)->skip(5);

var_dump($cursor->explain());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(8) {
  ["cursor"]=>
  string(15) "BtreeCursor x_1"
  ["startKey"]=>
  array(1) {
    ["x"]=>
    int(1)
  }
  ["endKey"]=>
  array(1) {
    ["x"]=>
    int(1)
  }
  ["nscanned"]=>
  float(4)
  ["n"]=>
  int(4)
  ["scanAndOrder"]=>
  int(1)
  ["millis"]=>
  int(3)
  ["allPlans"]=>
  array(2) {
    [0]=>
    array(3) {
      ["cursor"]=>
      string(15) "BtreeCursor x_1"
      ["startKey"]=>
      array(1) {
        ["x"]=>
        int(1)
      }
      ["endKey"]=>
      array(1) {
        ["x"]=>
        int(1)
      }
    }
    [1]=>
    array(3) {
      ["cursor"]=>
      string(11) "BasicCursor"
      ["startKey"]=>
      array(0) {
      }
      ["endKey"]=>
      array(0) {
      }
    }
  }
}

Fehler/Exceptions

Throws MongoConnectionException if it cannot reach the database.

Siehe auch

MongoDB core docs on » explain.


Sets the fields for a query

  • « MongoCursor::explain
  • MongoCursor::getNext »
  • PHP Manual
  • MongoCursor
  • Sets the fields for a query

MongoCursor::fields

(PECL mongo >=1.0.6)

MongoCursor::fields — Sets the fields for a query

Beschreibung

public MongoCursor::fields ( array $f ) : MongoCursor

Fields are specified by "fieldname" : bool. true indicates that a field should be returned, false indicates that it should not be returned. You can also use 1 and 0 instead of true and false.

Thus, to return only the "summary" field, one could say:

<?php

$cursor->fields(array("summary" => true));

?>

To return all fields except the "hidden" field:

<?php

$cursor->fields(array("hidden" => false));

?>

Parameter-Liste

f

Fields to return (or not return).

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating or a scalar argument is given.


Advances the cursor to the next result, and returns that result

  • « MongoCursor::fields
  • MongoCursor::getReadPreference »
  • PHP Manual
  • MongoCursor
  • Advances the cursor to the next result, and returns that result

MongoCursor::getNext

(PECL mongo >=0.9.0)

MongoCursor::getNext — Advances the cursor to the next result, and returns that result

Beschreibung

public MongoCursor::getNext ( ) : array

Hinweis:

MongoCursor::getNext() is an alias of MongoCursor::next().


Get the read preference for this query

  • « MongoCursor::getNext
  • MongoCursor::hasNext »
  • PHP Manual
  • MongoCursor
  • Get the read preference for this query

MongoCursor::getReadPreference

(PECL mongo >=1.3.3)

MongoCursor::getReadPreference — Get the read preference for this query

Beschreibung

public MongoCursor::getReadPreference ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This function returns an array describing the read preference. The array contains the values type for the string read preference mode (corresponding to the MongoClient constants), and tagsets containing a list of all tag set criteria. If no tag sets were specified, tagsets will not be present in the array.

Beispiele

Beispiel #1 MongoCursor::getReadPreference() return value example

<?php

$m = new MongoClient();
$cursor = $m->test->users->find();
$cursor->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($cursor->getReadPreference());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Siehe auch

  • The read preferences documentation.
  • MongoCursor::setReadPreference() - Set the read preference for this query
  • MongoCursorInterface::getReadPreference() - Get the read preference for this query


Checks if there are any more elements in this cursor

  • « MongoCursor::getReadPreference
  • MongoCursor::hint »
  • PHP Manual
  • MongoCursor
  • Checks if there are any more elements in this cursor

MongoCursor::hasNext

(PECL mongo >=0.9.0)

MongoCursor::hasNext — Checks if there are any more elements in this cursor

Beschreibung

public MongoCursor::hasNext ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns if there is another element.

Fehler/Exceptions

Throws MongoConnectionException if it cannot reach the database and MongoCursorTimeoutException if the timeout is exceeded.


Gives the database a hint about the query

  • « MongoCursor::hasNext
  • MongoCursor::immortal »
  • PHP Manual
  • MongoCursor
  • Gives the database a hint about the query

MongoCursor::hint

(PECL mongo >=0.9.0)

MongoCursor::hint — Gives the database a hint about the query

Beschreibung

public MongoCursor::hint ( mixed $index ) : MongoCursor

Parameter-Liste

index

Index to use for the query. If a string is passed, it should correspond to an index name. If an array or object is passed, it should correspond to the specification used to create the index (i.e. the first argument to MongoCollection::ensureIndex()).

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating.

Changelog

Version | Beschreibung
PECL mongo 1.4.0 | The index argument now supports index names as string values. In versions before 1.4.0, only array or object values were accepted.


Sets whether this cursor will timeout

  • « MongoCursor::hint
  • MongoCursor::info »
  • PHP Manual
  • MongoCursor
  • Sets whether this cursor will timeout

MongoCursor::immortal

(PECL mongo >=1.0.1)

MongoCursor::immortal — Sets whether this cursor will timeout

Beschreibung

public MongoCursor::immortal ( bool $liveForever = true ) : MongoCursor

After remaining idle on the server for some amount of time, cursors, by default, "die." This is generally the behavior one wants. The database cleans up a cursor once all of its results have been sent to the client, but if the client doesn't request all of the results, the cursor will languish there, taking up resources. Thus, after a few minutes, the cursor "times out" and the database assumes the client has gotten everything it needs and cleans up its the cursor's resources.

If, for some reason, you need a cursor to hang around for a long time, you can prevent the database from cleaning it up by using this method. However, if you make a cursor immortal, you need to iterate through all of its results (or at least until MongoCursor::dead() returns true) or the cursor will hang around the database forever, taking up resources.

Parameter-Liste

liveForever

If the cursor should be immortal.

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating.


Gets information about the cursor's creation and iteration

  • « MongoCursor::immortal
  • MongoCursor::key »
  • PHP Manual
  • MongoCursor
  • Gets information about the cursor's creation and iteration

MongoCursor::info

(PECL mongo >=1.0.5)

MongoCursor::info — Gets information about the cursor's creation and iteration

Beschreibung

public MongoCursor::info ( ) : array

This can be called before or after the cursor has started iterating.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the namespace, batch size, limit, skip, flags, query, and projected fields for this cursor. If the cursor has started iterating, additional information about iteration and the connection will be included.

Changelog

Version | Beschreibung
PECL mongo 1.1.0 | Added a number of other fields, including id (the cursor id), at (the driver's counter of which document is current), numReturned (the number returned by the server in the current batch), and server (which server the query was sent to—useful in conjunction with Read Preferences.
PECL mongo 1.0.10 | Added started_iterating field, a boolean indicating if cursor is pre- or post-query.

Beispiele

Beispiel #1 MongoCursor::info() example

<?php
$m = new MongoClient();

$cursor = $m->test->foo->find(array("x" => 4), array("y" => 0));

echo "Before iteration started:\n";
var_dump($cursor->info());

echo "\nAfter iteration started:\n";
$cursor->rewind();
var_dump($cursor->info());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Before iteration started:
array(8) {
  ["ns"]=>
  string(8) "test.foo"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["fields"]=>
  array(1) {
    ["y"]=>
    int(0)
  }
  ["started_iterating"]=>
  bool(false)
}

After iteration started:
array(15) {
  ["ns"]=>
  string(8) "test.foo"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["fields"]=>
  array(1) {
    ["y"]=>
    int(0)
  }
  ["started_iterating"]=>
  bool(true)
  ["id"]=>
  int(0)
  ["at"]=>
  int(0)
  ["numReturned"]=>
  int(1)
  ["server"]=>
  string(25) "localhost:27017;-;.;26450"
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["connection_type_desc"]=>
  string(10) "STANDALONE"
}

Siehe auch

  • MongoCursorInterface::info() - Gets information about the cursor's creation and iteration


Returns the current result's _id, or its index within the result set

  • « MongoCursor::info
  • MongoCursor::limit »
  • PHP Manual
  • MongoCursor
  • Returns the current result's _id, or its index within the result set

MongoCursor::key

(PECL mongo >=0.9.0)

MongoCursor::key — Returns the current result's _id, or its index within the result set

Beschreibung

public MongoCursor::key ( ) : string|int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current result's _id as a string. If the result has no _id, its numeric index within the result set will be returned as an integer.

Siehe auch

  • Iterator::key() - Gibt den Schlüssel des aktuellen Elements zurück


Limits the number of results returned

  • « MongoCursor::key
  • MongoCursor::maxTimeMS »
  • PHP Manual
  • MongoCursor
  • Limits the number of results returned

MongoCursor::limit

(PECL mongo >=0.9.0)

MongoCursor::limit — Limits the number of results returned

Beschreibung

public MongoCursor::limit ( int $num ) : MongoCursor

Parameter-Liste

num

The number of results to return.

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating.

Siehe auch

  • MongoDB core docs on » limit.
  • MongoCursor::batchSize() - Limits the number of elements returned in one batch
  • MongoCursor::skip() - Skips a number of results


Sets a server-side timeout for this query

  • « MongoCursor::limit
  • MongoCursor::next »
  • PHP Manual
  • MongoCursor
  • Sets a server-side timeout for this query

MongoCursor::maxTimeMS

(PECL mongo >=1.5.0)

MongoCursor::maxTimeMS — Sets a server-side timeout for this query

Beschreibung

public MongoCursor::maxTimeMS ( int $ms ) : MongoCursor

Specifies a cumulative time limit in milliseconds to be allowed by the server for processing operations on the cursor.

Parameter-Liste

ms

Specifies a cumulative time limit in milliseconds to be allowed by the server for processing operations on the cursor.

Rückgabewerte

This cursor.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating.

Causes methods that fetch results to throw a MongoExecutionTimeoutException if the query takes longer than the specified number of milliseconds in processing time.

Beispiele

Beispiel #1 MongoCursor::maxTimeMS() example

In the following example, the server will abort the query if the cursor requires more than two seconds in processing time to return its results.

<?php

$cursor = $collection->find();
$cursor->maxTimeMS(2000);

try {
    $results = iterator_to_array($cursor);
} catch (MongoExecutionTimeoutException $e) {
    echo "query took too long!";
}

?>

Anmerkungen

Warnung

Unlike MongoCursor::timeout(), which specifies a client-side timeout, MongoCursor::maxTimeMS() can be used to cause the MongoDB server to abort long-running queries. This timeout is cumulative for the lifetime of the cursor (i.e. each batch will contribute to this time limit). The timeout only considers processing time; idle time is not considered.


Advances the cursor to the next result, and returns that result

  • « MongoCursor::maxTimeMS
  • MongoCursor::partial »
  • PHP Manual
  • MongoCursor
  • Advances the cursor to the next result, and returns that result

MongoCursor::next

(PECL mongo >=0.9.0)

MongoCursor::next — Advances the cursor to the next result, and returns that result

Beschreibung

public MongoCursor::next ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the next document.

Fehler/Exceptions

Throws MongoConnectionException if it cannot reach the database and MongoCursorTimeoutException if the timeout is exceeded.

Siehe auch

  • Iterator::next() - Rückt den Zeiger auf das nächste Element vor


If this query should fetch partial results from mongos if a shard is down

  • « MongoCursor::next
  • MongoCursor::reset »
  • PHP Manual
  • MongoCursor
  • If this query should fetch partial results from mongos if a shard is down

MongoCursor::partial

(PECL mongo >=1.2.0)

MongoCursor::partial — If this query should fetch partial results from mongos if a shard is down

Beschreibung

public MongoCursor::partial ( bool $okay = true ) : MongoCursor

This option allows mongos to send partial query results if a shard is unreachable. This is only applicable when running a sharded MongoDB cluster and connecting to a mongos.

If a shard goes down and a query needs to be sent to that shard, mongos will return the results (if any) from shards it already contacted, then an error message that it could not reach the shard (a MongoCursorException in PHP). If you would like to get whatever results mongos can provide and no exception, you can use this method. Note that this means that you won't have an indication that a shard is down in your query response.

This has no effect on the query if all shards are reachable. This flag was implemented in MongoDB version 1.7.5, so will only work with that version and higher.

Parameter-Liste

okay

If receiving partial results is okay.

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating.


Clears the cursor

  • « MongoCursor::partial
  • MongoCursor::rewind »
  • PHP Manual
  • MongoCursor
  • Clears the cursor

MongoCursor::reset

(PECL mongo >=0.9.0)

MongoCursor::reset — Clears the cursor

Beschreibung

public MongoCursor::reset ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

null.


Returns the cursor to the beginning of the result set

  • « MongoCursor::reset
  • MongoCursor::setFlag »
  • PHP Manual
  • MongoCursor
  • Returns the cursor to the beginning of the result set

MongoCursor::rewind

(PECL mongo >=0.9.0)

MongoCursor::rewind — Returns the cursor to the beginning of the result set

Beschreibung

public MongoCursor::rewind ( ) : void

This is identical to the function:

<?php

public function rewind() {
    $this->reset();
    $this->next();
}

?>

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

null.

Fehler/Exceptions

Throws MongoConnectionException if it cannot reach the database and MongoCursorTimeoutException if the timeout is exceeded.

Siehe auch

  • Iterator::rewind() - Setzt den Iterator auf das erste Element zurück


Sets arbitrary flags in case there is no method available the specific flag

  • « MongoCursor::rewind
  • MongoCursor::setReadPreference »
  • PHP Manual
  • MongoCursor
  • Sets arbitrary flags in case there is no method available the specific flag

MongoCursor::setFlag

(PECL mongo >=1.2.11)

MongoCursor::setFlag — Sets arbitrary flags in case there is no method available the specific flag

Beschreibung

public MongoCursor::setFlag ( int $flag , bool $set = true ) : MongoCursor

The MongoCursor class has several methods for setting flags on the query object. This method is available in case the MongoDB wire protocol has acquired a new flag, and the driver has not been updated with a method for this new flag. In all other cases, the method should be used. See the "See also" section for available methods.

Parameter-Liste

flag

Which flag to set. You can not set flag 6 (EXHAUST) as the driver does not know how to handle them. You will get a warning if you try to use this flag. For available flags, please refer to the wire protocol » documentation.

set

Whether the flag should be set (true) or unset (false).

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Shows a warning when an unsupport flag is attempted to be set.

Changelog

Version | Beschreibung
PECL mongo 1.4.0 | Support for flag 3 (OPLOG_REPLAY) is added. Versions before 1.4.0 would throw a warning saying that the flag is unsupported.

Beispiele

Beispiel #1 MongoCursor::setFlag() example

<?php
$m = new MongoClient( 'mongodb://localhost:13000', array( 'replSet' => 'seta' ) );
$c = $m->local->selectCollection( 'oplog.rs' );
$cursor = $c->find( array( 'ns' => 'demo.article', 'op' => 'i' ) );
$cursor->setFlag( 1, true ); // sets the tailable flag
$cursor->setFlag( 5, true ); // sets the await data flag
?>

Siehe auch

  • MongoCursor::tailable() - Sets whether this cursor will be left open after fetching the last results
  • MongoCursor::immortal() - Sets whether this cursor will timeout
  • MongoCursor::awaitData() - Sets whether this cursor will wait for a while for a tailable cursor to return more data
  • MongoCursor::partial() - If this query should fetch partial results from mongos if a shard is down
  • MongoDB core docs on» wire protocol query flags


Set the read preference for this query

  • « MongoCursor::setFlag
  • MongoCursor::skip »
  • PHP Manual
  • MongoCursor
  • Set the read preference for this query

MongoCursor::setReadPreference

(PECL mongo >=1.3.3)

MongoCursor::setReadPreference — Set the read preference for this query

Beschreibung

public MongoCursor::setReadPreference ( string $read_preference , array $tags = ? ) : MongoCursor

Parameter-Liste

read_preference

The read preference mode: MongoClient::RP_PRIMARY,
MongoClient::RP_PRIMARY_PREFERRED,
MongoClient::RP_SECONDARY,
MongoClient::RP_SECONDARY_PREFERRED, or
MongoClient::RP_NEAREST.

tags

An array of zero or more tag sets, where each tag set is itself an array of criteria used to match tags on replica set members.

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Emits E_WARNING if either parameter is invalid, or if one or more tag sets are provided with the MongoClient::RP_PRIMARY read preference mode.

Beispiele

Beispiel #1 MongoCursor::setReadPreference() tag set array syntax example

<?php

$m = new MongoClient();
$cursor = $m->test->users->find();

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$cursor->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Siehe auch

  • The read preferences documentation.
  • MongoCursor::getReadPreference() - Get the read preference for this query
  • MongoCursorInterface::setReadPreference() - Set the read preference for this query


Skips a number of results

  • « MongoCursor::setReadPreference
  • MongoCursor::slaveOkay »
  • PHP Manual
  • MongoCursor
  • Skips a number of results

MongoCursor::skip

(PECL mongo >=0.9.0)

MongoCursor::skip — Skips a number of results

Beschreibung

public MongoCursor::skip ( int $num ) : MongoCursor

Parameter-Liste

num

The number of results to skip.

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating.

Siehe auch

  • MongoCursor::limit() - Limits the number of results returned


Sets whether this query can be done on a secondary [deprecated]

  • « MongoCursor::skip
  • MongoCursor::snapshot »
  • PHP Manual
  • MongoCursor
  • Sets whether this query can be done on a secondary [deprecated]

MongoCursor::slaveOkay

(PECL mongo >=0.9.4)

MongoCursor::slaveOkay — Sets whether this query can be done on a secondary [deprecated]

Beschreibung

public MongoCursor::slaveOkay ( bool $okay = true ) : MongoCursor
Warnung

This method is deprecated since version 1.5.0. Instead, please use MongoCursor::setReadPreference() and Read Preferences.

Calling this will make the driver route reads to secondaries if:

  • You are using a replica set, and
  • You created a MongoClient instance using the option "replicaSet" => "setName", and
  • There is a healthy secondary that can be reached by the driver.
You can check which server was used for this query by calling MongoCursor::info() after running the query. It's server field will show which server the query was sent to.

Note that you should use this function even if you do not use the automatic routing to secondaries. If you connect directly to a secondary in a replica set, you still need to call this function, which basically tells the database that you are aware that you might be getting older data and you're okay with that. If you do not call this, you'll get "not master" errors when you try to query.

This method will override the static class variable
MongoCursor::$slaveOkay.  It will also override
Mongo::setSlaveOkay(),
MongoDB::setSlaveOkay() and
MongoCollection::setSlaveOkay().

Parameter-Liste

okay

If it is okay to query the secondary.

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating.

Beispiele

Beispiel #1 MongoCursor::slaveOkay() example

<?php

MongoCursor::$slaveOkay = false;

// cannot query secondary
$cursor = $collection->find();

// can query secondary
$cursor = $collection->find()->slaveOkay();

MongoCursor::$slaveOkay = true;

// can query secondary
$cursor = $collection->find();

// cannot query secondary
$cursor = $collection->find()->slaveOkay(false);

?>

Siehe auch

  • Read Preferences
  • MongoCursor::setReadPreference() - Set the read preference for this query
  • MongoCursor::getReadPreference() - Get the read preference for this query

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | This method has been deprecated in favour of MongoCursor::setReadPreference() and Read Preferences.


Use snapshot mode for the query

  • « MongoCursor::slaveOkay
  • MongoCursor::sort »
  • PHP Manual
  • MongoCursor
  • Use snapshot mode for the query

MongoCursor::snapshot

(PECL mongo >=0.9.4)

MongoCursor::snapshot — Use snapshot mode for the query

Beschreibung

public MongoCursor::snapshot ( ) : MongoCursor

Use snapshot mode for the query. Snapshot mode ensures that a document will not be returned more than once because an intervening write operation results in a move of the document. Documents inserted or deleted during the lifetime of the cursor may or may not be returned, irrespective of snapshot mode.

Queries with short responses (less than 1MB) are always effectively snapshotted.

Snapshot mode may not be used with sorting, explicit hints, or queries on sharded collections.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating.

Siehe auch

MongoDB core docs on » $snapshot operator.


Sorts the results by given fields

  • « MongoCursor::snapshot
  • MongoCursor::tailable »
  • PHP Manual
  • MongoCursor
  • Sorts the results by given fields

MongoCursor::sort

(PECL mongo >=0.9.0)

MongoCursor::sort — Sorts the results by given fields

Beschreibung

public MongoCursor::sort ( array $fields ) : MongoCursor

Parameter-Liste

fields

An array of fields by which to sort. Each element in the array has as key the field name, and as value either 1 for ascending sort, or -1 for descending sort.

Each result is first sorted on the first field in the array, then (if it exists) on the second field in the array, etc. This means that the order of the fields in the fields array is important. See also the examples section.

Rückgabewerte

Returns the same cursor that this method was called on.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating.

Beispiele

Beispiel #1 MongoCursor::sort() example

<?php
// Sort on field x, ascending
$cursor->sort(array('x' => 1));

// The order in the associative array is important. For instance, these two
// examples will yield different results:

// Sort on date ascending and age descending
$cursor->sort(array('date' => 1, 'age' => -1));

// Sort on age descending and date ascending
$cursor->sort(array('age' => -1, 'date' => 1));
?>


Sets whether this cursor will be left open after fetching the last results

  • « MongoCursor::sort
  • MongoCursor::timeout »
  • PHP Manual
  • MongoCursor
  • Sets whether this cursor will be left open after fetching the last results

MongoCursor::tailable

(PECL mongo >=0.9.4)

MongoCursor::tailable — Sets whether this cursor will be left open after fetching the last results

Beschreibung

public MongoCursor::tailable ( bool $tail = true ) : MongoCursor

Mongo has a feature known as tailable cursors which are similar to the Unix "tail -f" command.

Tailable means cursor is not closed when the last data is retrieved. Rather, the cursor marks the final object's position. you can resume using the cursor later, from where it was located, if more data were received.

Like any "latent cursor", the cursor may become invalid at some point -- for example if that final object it references were deleted. Thus, you should be prepared to requery if the cursor is MongoCursor::dead().

Parameter-Liste

tail

If the cursor should be tailable.

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Throws MongoCursorException if this cursor has started iterating.

Beispiele

Beispiel #1 MongoCursor::tailable() example

<?php

$cursor = $collection->find()->tailable();

$results = array();

while (1) {
    if (!$cursor->hasNext()) {
        // we've read all the results, exit
        if ($cursor->dead()) {
            break;
        }
        // read all results so far, wait for more
        sleep(10);
    }
    else {
        $results[] = $cursor->getNext();
    }
}

?>

Siehe auch

MongoDB core docs on » tailable cursors.

  • MongoCursor::awaitData() - Sets whether this cursor will wait for a while for a tailable cursor to return more data


Sets a client-side timeout for this query

  • « MongoCursor::tailable
  • MongoCursor::valid »
  • PHP Manual
  • MongoCursor
  • Sets a client-side timeout for this query

MongoCursor::timeout

(PECL mongo >=1.0.3)

MongoCursor::timeout — Sets a client-side timeout for this query

Beschreibung

public MongoCursor::timeout ( int $ms ) : MongoCursor

A timeout can be set at any time and will affect subsequent queries on the cursor, including fetching more results from the database.

Parameter-Liste

ms

The number of milliseconds for the cursor to wait for a response. Use -1 to wait forever. By default, the cursor will wait 30000 milliseconds (30 seconds).

Rückgabewerte

This cursor.

Fehler/Exceptions

Causes methods that fetch results to throw a MongoCursorTimeoutException if the query takes longer than the specified number of milliseconds.

Beispiele

Beispiel #1 MongoCursor::timeout() example

In the following example, the driver will wait forever for the initial database response, and then wait 100ms for subsequent responses.

<?php

$cursor = $collection->find();
$cursor->timeout(-1);

/* $cursor->hasNext() executes the query. An infinite timeout has been set, so
 * the driver will wait as long as necessary for a response.
 */
while ($cursor->hasNext()) {
    $cursor->timeout(100);

    /* A timeout has now been set, so if the cursor needs to get more results
     * from the database, it will only wait 100ms for a response.
     */
    try {
        print_r($cursor->getNext());
    } catch (MongoCursorTimeoutException $e) {
        echo "query took too long!";
    }
}

?>

Anmerkungen

Warnung

This does not cause the MongoDB server to cancel long-running operations; it only instructs the driver to stop waiting for a response and throw a MongoCursorTimeoutException after a set time. If you need to specify a server-side timeout for a query, consider using MongoCursor::maxTimeMS().

Siehe auch

  • MongoCursorInterface::timeout() - Sets a client-side timeout for this query
  • The socketTimeoutMS option for MongoClient::__construct()


Checks if the cursor is reading a valid result

  • « MongoCursor::timeout
  • MongoCursorInterface »
  • PHP Manual
  • MongoCursor
  • Checks if the cursor is reading a valid result

MongoCursor::valid

(PECL mongo >=0.9.0)

MongoCursor::valid — Checks if the cursor is reading a valid result

Beschreibung

public MongoCursor::valid ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the current result is not null, and false otherwise.

Siehe auch

  • Iterator::valid() - Prüft, ob die aktuelle Position zulässig ist


The MongoCursorInterface interface

(PECL mongo >=1.5.0)

Einführung

Interface for cursors, which can be used to iterate through results of a database query or command. This interface is implemented by the MongoCursor and MongoCommandCursor classes.

Hinweis: Similar to Traversable, this interface cannot be implemented in PHP scripts.

Klassenbeschreibung

MongoCursorInterface extends Iterator {
/* Methoden */
abstract public batchSize ( int $batchSize ) : MongoCursorInterface
abstract public dead ( ) : bool
abstract public getReadPreference ( ) : array
abstract public info ( ) : array
abstract public setReadPreference ( string $read_preference , array $tags = ? ) : MongoCursorInterface
abstract public timeout ( int $ms ) : MongoCursorInterface
/* Geerbte Methoden */
abstract public Iterator::current ( ) : mixed
abstract public Iterator::key ( ) : scalar
abstract public Iterator::next ( ) : void
abstract public Iterator::rewind ( ) : void
abstract public Iterator::valid ( ) : bool
}

Inhaltsverzeichnis

  • MongoCursorInterface::batchSize — Limits the number of elements returned in one batch
  • MongoCursorInterface::dead — Checks if there are results that have not yet been sent from the database
  • MongoCursorInterface::getReadPreference — Get the read preference for this query
  • MongoCursorInterface::info — Gets information about the cursor's creation and iteration
  • MongoCursorInterface::setReadPreference — Set the read preference for this query
  • MongoCursorInterface::timeout — Sets a client-side timeout for this query


Limits the number of elements returned in one batch

  • « MongoCursorInterface
  • MongoCursorInterface::dead »
  • PHP Manual
  • MongoCursorInterface
  • Limits the number of elements returned in one batch

MongoCursorInterface::batchSize

(PECL mongo >=1.5.0)

MongoCursorInterface::batchSize — Limits the number of elements returned in one batch

Beschreibung

abstract public MongoCursorInterface::batchSize ( int $batchSize ) : MongoCursorInterface

A cursor typically fetches a batch of result objects and stores them locally. This method sets the batch size value to configure the amount of documents retrieved from the server in one round trip.

Parameter-Liste

batchSize

The number of results to return per batch.

Rückgabewerte

Returns this cursor.


Checks if there are results that have not yet been sent from the database

  • « MongoCursorInterface::batchSize
  • MongoCursorInterface::getReadPreference »
  • PHP Manual
  • MongoCursorInterface
  • Checks if there are results that have not yet been sent from the database

MongoCursorInterface::dead

(PECL mongo >=1.5.0)

MongoCursorInterface::dead — Checks if there are results that have not yet been sent from the database

Beschreibung

abstract public MongoCursorInterface::dead ( ) : bool

This method checks whether the cursor has been exhausted and the database has no more results to send to the client. A cursor being "dead" does not necessarily mean that there are no more results available for iteration.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if there are more results that have not yet been sent to the client, and false otherwise.


Get the read preference for this query

  • « MongoCursorInterface::dead
  • MongoCursorInterface::info »
  • PHP Manual
  • MongoCursorInterface
  • Get the read preference for this query

MongoCursorInterface::getReadPreference

(PECL mongo >=1.6.0)

MongoCursorInterface::getReadPreference — Get the read preference for this query

Beschreibung

abstract public MongoCursorInterface::getReadPreference ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This function returns an array describing the read preference. The array contains the values type for the string read preference mode (corresponding to the MongoClient constants), and tagsets containing a list of all tag set criteria. If no tag sets were specified, tagsets will not be present in the array.

Siehe auch

  • The read preferences documentation.
  • MongoCursorInterface::setReadPreference() - Set the read preference for this query


Gets information about the cursor's creation and iteration

  • « MongoCursorInterface::getReadPreference
  • MongoCursorInterface::setReadPreference »
  • PHP Manual
  • MongoCursorInterface
  • Gets information about the cursor's creation and iteration

MongoCursorInterface::info

(PECL mongo >=1.5.0)

MongoCursorInterface::info — Gets information about the cursor's creation and iteration

Beschreibung

abstract public MongoCursorInterface::info ( ) : array

Returns information about the cursor's creation and iteration. This can be called before or after the cursor has started iterating.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the namespace, batch size, limit, skip, flags, query, and projected fields for this cursor. If the cursor has started iterating, additional information about iteration and the connection will be included.


Set the read preference for this query

  • « MongoCursorInterface::info
  • MongoCursorInterface::timeout »
  • PHP Manual
  • MongoCursorInterface
  • Set the read preference for this query

MongoCursorInterface::setReadPreference

(PECL mongo >=1.6.0)

MongoCursorInterface::setReadPreference — Set the read preference for this query

Beschreibung

abstract public MongoCursorInterface::setReadPreference ( string $read_preference , array $tags = ? ) : MongoCursorInterface

Parameter-Liste

read_preference

The read preference mode: MongoClient::RP_PRIMARY,
MongoClient::RP_PRIMARY_PREFERRED,
MongoClient::RP_SECONDARY,
MongoClient::RP_SECONDARY_PREFERRED, or
MongoClient::RP_NEAREST.

tags

An array of zero or more tag sets, where each tag set is itself an array of criteria used to match tags on replica set members.

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Emits E_WARNING if either parameter is invalid, or if one or more tag sets are provided with the MongoClient::RP_PRIMARY read preference mode.

Siehe auch

  • The read preferences documentation.
  • MongoCursorInterface::getReadPreference() - Get the read preference for this query


Sets a client-side timeout for this query

  • « MongoCursorInterface::setReadPreference
  • MongoCommandCursor »
  • PHP Manual
  • MongoCursorInterface
  • Sets a client-side timeout for this query

MongoCursorInterface::timeout

(PECL mongo >=1.5.0)

MongoCursorInterface::timeout — Sets a client-side timeout for this query

Beschreibung

abstract public MongoCursorInterface::timeout ( int $ms ) : MongoCursorInterface

A timeout can be set at any time and will affect subsequent data retrieval associated with this cursor, including fetching more results from the database.

Parameter-Liste

ms

The number of milliseconds for the cursor to wait for a response. Use -1 to wait forever. By default, the cursor will wait 30000 milliseconds (30 seconds).

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Causes methods that fetch results to throw a MongoCursorTimeoutException if the data fetch takes longer than the specified number of milliseconds.

Siehe auch

  • The socketTimeoutMS option for MongoClient::__construct()


The MongoCommandCursor class

(PECL mongo >=1.5.0)

Einführung

A command cursor is similar to a MongoCursor except that you use it for iterating through the results of a database command instead of a normal query. Command cursors are useful for iterating over large result sets that might exceed the document size limit (currently 16MB) of a single MongoDB::command() response.

While you can create command cursors using MongoCommandCursor::__construct() or the MongoCommandCursor::createFromDocument() factory method, you will generally want to use command-specific helpers such as MongoCollection::aggregateCursor().

Note that the cursor does not "contain" the database command's results; it just manages iteration through them. Thus, if you print a cursor (f.e. with var_dump() or print_r()), you will see the cursor object but not the result documents.

Cursor Stages

A MongoCommandCursor has two "life stages": pre- and post- command. When a cursor is created, it has not yet contacted the database, so it is in its pre-command state. When the client first attempts to get a result (by calling MongoCommandCursor::rewind(), directly or indirectly), the cursor moves into the post-command state.

The command cursor's batch size and socket timeout may be configured in both the pre- and post- command states.

Beispiel #1 Adding options to MongoCommandCursor

<?php

$cursor = new MongoCommandCursor(...);

$cursor = $cursor->batchSize( 4 );

foreach ($cursor as $result) {
    var_dump($result);
}
?>

Klassenbeschreibung

MongoCommandCursor implements MongoCursorInterface , Iterator {
/* Methoden */
public batchSize ( int $batchSize ) : MongoCommandCursor
public __construct ( MongoClient $connection , string $ns , array $command = array() )
public static createFromDocument ( MongoClient $connection , string $hash , array $document ) : MongoCommandCursor
public current ( ) : array
public dead ( ) : bool
public getReadPreference ( ) : array
public info ( ) : array
public key ( ) : int
public next ( ) : void
public rewind ( ) : array
public setReadPreference ( string $read_preference , array $tags = ? ) : MongoCommandCursor
public timeout ( int $ms ) : MongoCommandCursor
public valid ( ) : bool
}

Siehe auch

  • MongoDB::command()
  • MongoCollection::aggregateCursor()

Inhaltsverzeichnis

  • MongoCommandCursor::batchSize — Limits the number of elements returned in one batch
  • MongoCommandCursor::__construct — Create a new command cursor
  • MongoCommandCursor::createFromDocument — Create a new command cursor from an existing command response document
  • MongoCommandCursor::current — Returns the current element
  • MongoCommandCursor::dead — Checks if there are results that have not yet been sent from the database
  • MongoCommandCursor::getReadPreference — Get the read preference for this command
  • MongoCommandCursor::info — Gets information about the cursor's creation and iteration
  • MongoCommandCursor::key — Returns the current result's index within the result set
  • MongoCommandCursor::next — Advances the cursor to the next result
  • MongoCommandCursor::rewind — Executes the command and resets the cursor to the start of the result set
  • MongoCommandCursor::setReadPreference — Set the read preference for this command
  • MongoCommandCursor::timeout — Sets a client-side timeout for this command
  • MongoCommandCursor::valid — Checks if the cursor is reading a valid result


Limits the number of elements returned in one batch

  • « MongoCommandCursor
  • MongoCommandCursor::__construct »
  • PHP Manual
  • MongoCommandCursor
  • Limits the number of elements returned in one batch

MongoCommandCursor::batchSize

(PECL mongo >=1.5.0)

MongoCommandCursor::batchSize — Limits the number of elements returned in one batch

Beschreibung

public MongoCommandCursor::batchSize ( int $batchSize ) : MongoCommandCursor

A cursor typically fetches a batch of result objects and store them locally. This method sets the batchSize value to configure the amount of documents retrieved from the server in one round trip.

Parameter-Liste

batchSize

The number of results to return per batch. Each batch requires a round-trip to the server.

This cannot override MongoDB's limit on the amount of data it will return to the client (i.e., if you set batch size to 1,000,000,000, MongoDB will still only return 4-16MB of results per batch).

Rückgabewerte

Returns this cursor.

Beispiele

Beispiel #1 MongoCommandCursor::batchSize()

<?php
$commandCursor->batchSize(20);
?>

Siehe auch

  • MongoCursorInterface::batchSize() - Limits the number of elements returned in one batch


Create a new command cursor

  • « MongoCommandCursor::batchSize
  • MongoCommandCursor::createFromDocument »
  • PHP Manual
  • MongoCommandCursor
  • Create a new command cursor

MongoCommandCursor::__construct

(PECL mongo >=1.5.0)

MongoCommandCursor::__construct — Create a new command cursor

Beschreibung

public MongoCommandCursor::__construct ( MongoClient $connection , string $ns , array $command = array() )

Generally, you should not have to construct a MongoCommandCursor manually, as there are helper functions such as MongoCollection::aggregateCursor() and MongoCollection::parallelCollectionScan(); however, if the server introduces new commands that can return cursors, this constructor will be useful in the absence of specific helper methods. You may also consider using MongoCommandCursor::createFromDocument().

Parameter-Liste

connection

Database connection.

ns

Full name of the database and collection (e.g. "test.foo")

command

Database command.

Rückgabewerte

Returns the new cursor.

Beispiele

Beispiel #1 MongoCommandCursor example

<?php
$m = new MongoClient;

// Define the aggregation pipeline
$pipeline = [
    [ '$group' => [
        '_id' => '$country_code',
        'timezones' => [ '$addToSet' => '$timezone' ]
    ] ],
    [ '$sort' => [ '_id' => 1 ] ],
];

// Construct a MongoCommandCursor object
$cursor = new MongoCommandCursor(
    $m, // MongoClient object
    'demo.cities', // namespace
    [
        'aggregate' => 'cities',
        'pipeline' => $pipeline,
        'cursor' => [ 'batchSize' => 0 ],
    ]
);

foreach($cursor as $result) {
   …
}
?>

Siehe auch

  • MongoCommandCursor::createFromDocument() - Create a new command cursor from an existing command response document
  • MongoCollection::aggregateCursor() - Execute an aggregation pipeline command and retrieve results through a cursor
  • MongoCollection::parallelCollectionScan() - Returns an array of cursors to iterator over a full collection in parallel


Create a new command cursor from an existing command response document

  • « MongoCommandCursor::__construct
  • MongoCommandCursor::current »
  • PHP Manual
  • MongoCommandCursor
  • Create a new command cursor from an existing command response document

MongoCommandCursor::createFromDocument

(PECL mongo >=1.5.0)

MongoCommandCursor::createFromDocument — Create a new command cursor from an existing command response document

Beschreibung

public static MongoCommandCursor::createFromDocument ( MongoClient $connection , string $hash , array $document ) : MongoCommandCursor

Use this method if you have a raw command result with cursor information in it. Note that cursors created with this method cannot be iterated multiple times, as they will lack the original command necessary for re-execution.

Parameter-Liste

connection

Database connection.

hash

The connection hash, as obtained through the third by-reference argument to MongoDB::command().

document

Document with cursor information in it. This document needs to contain the id, ns and firstBatch fields. Such a document is obtained by calling the MongoDB::command() with appropriate arguments to return a cursor, and not just an inline result. See the example below.

Rückgabewerte

Returns the new cursor.

Beispiele

Beispiel #1 MongoCommandCursor::createFromDocument()

<?php
$m = new MongoClient;
$d = $m->demo;

// Define the aggregation pipeline
$pipeline = [
    [ '$group' => [
        '_id' => '$country_code',
        'timezones' => [ '$addToSet' => '$timezone' ]
    ] ],
    [ '$sort' => [ '_id' => 1 ] ],
];

// Execute the command. The "cursor" option instructs the server to return
// cursor information in the response instead of inline results.
$r = $d->command(
    [
        'aggregate' => 'cities',
        'pipeline' => $pipeline,
        'cursor' => [ 'batchSize' => 1 ],
    ],
    null,
    $hash
);

// Show result and hash
var_dump( $r, $hash );

// Construct the command cursor
$cursor = MongoCommandCursor::createFromDocument( $m, $hash, $r );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["cursor"]=>
  array(3) {
    ["id"]=>
    object(MongoInt64)#5 (1) {
      ["value"]=>
      string(12) "392143983421"
    }
    ["ns"]=>
    string(11) "demo.cities"
    ["firstBatch"]=>
    array(1) {
      [0]=>
      array(2) {
        ["_id"]=>
        string(2) "AD"
        ["timezones"]=>
        array(1) {
          [0]=>
          string(14) "Europe/Andorra"
        }
      }
    }
  }
  ["ok"]=>
  float(1)
}
string(25) "localhost:27017;-;.;17617"

As you can see, the returned cursor information has the id, ns and firstBatch fields.

Siehe auch

  • MongoCommandCursor::__construct() - Create a new command cursor


Returns the current element

  • « MongoCommandCursor::createFromDocument
  • MongoCommandCursor::dead »
  • PHP Manual
  • MongoCommandCursor
  • Returns the current element

MongoCommandCursor::current

(PECL mongo >=1.5.0)

MongoCommandCursor::current — Returns the current element

Beschreibung

public MongoCommandCursor::current ( ) : array

This returns null until MongoCommandCursor::rewind() is called.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current result document as an associative array. null will be returned if there is no result.

Siehe auch

  • Iterator::current() - Gibt das aktuelle Element zurück


Checks if there are results that have not yet been sent from the database

  • « MongoCommandCursor::current
  • MongoCommandCursor::getReadPreference »
  • PHP Manual
  • MongoCommandCursor
  • Checks if there are results that have not yet been sent from the database

MongoCommandCursor::dead

(PECL mongo >=1.5.0)

MongoCommandCursor::dead — Checks if there are results that have not yet been sent from the database

Beschreibung

public MongoCommandCursor::dead ( ) : bool

This method checks whether the MongoCommandCursor cursor has been exhausted and the database has no more results to send to the client. A cursor being "dead" does not necessarily mean that there are no more results available for iteration.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if there are more results that have not yet been sent to the client, and false otherwise.

Siehe auch

  • MongoCursorInterface::dead() - Checks if there are results that have not yet been sent from the database


Get the read preference for this command

  • « MongoCommandCursor::dead
  • MongoCommandCursor::info »
  • PHP Manual
  • MongoCommandCursor
  • Get the read preference for this command

MongoCommandCursor::getReadPreference

(PECL mongo >=1.6.0)

MongoCommandCursor::getReadPreference — Get the read preference for this command

Beschreibung

public MongoCommandCursor::getReadPreference ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This function returns an array describing the read preference. The array contains the values type for the string read preference mode (corresponding to the MongoClient constants), and tagsets containing a list of all tag set criteria. If no tag sets were specified, tagsets will not be present in the array.

Beispiele

Beispiel #1 MongoCommandCursor::getReadPreference() return value example

<?php

$m = new MongoClient('mongodb://rs1.example.com:27017', array('replicaSet' => 'myReplSetName'));
$collection = $m->selectCollection('test', 'people');

// If a MongoCommandCursor is constructed directly, it will inherit the read
// preference of the MongoClient instance passed to its constructor; however,
// MongoCollection::aggregateCursor() will have the MongoCommandCursor inherit
// the collection's read preference.
$collection->setReadPreference(MongoClient::RP_SECONDARY);

$cursor = $collection->aggregateCursor( [
    [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
    [ '$sort' => [ 'points' => -1 ] ],
] );

var_dump($cursor->getReadPreference());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["type"]=>
  string(9) "secondary"
}

Siehe auch

  • The read preferences documentation.
  • MongoCommandCursor::setReadPreference() - Set the read preference for this command
  • MongoCursorInterface::getReadPreference() - Get the read preference for this query


Gets information about the cursor's creation and iteration

  • « MongoCommandCursor::getReadPreference
  • MongoCommandCursor::key »
  • PHP Manual
  • MongoCommandCursor
  • Gets information about the cursor's creation and iteration

MongoCommandCursor::info

(PECL mongo >=1.5.0)

MongoCommandCursor::info — Gets information about the cursor's creation and iteration

Beschreibung

public MongoCommandCursor::info ( ) : array

This can be called before or after the cursor has started iterating.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the namespace, batch size, limit, skip, flags, query, and projected fields for this cursor. If the cursor has started iterating, additional information about iteration and the connection will be included.

Beispiele

Beispiel #1 MongoCommandCursor::info() example

<?php
$m = new MongoClient();

$cursor = new MongoCommandCursor(
    $m, // MongoClient object
    'demo.cities', // namespace
    [
        'aggregate' => 'cities',
        'pipeline' => [ [ '$match' => [ '_id' => [ '$exists' => true ] ] ] ],
        'cursor' => [ 'batchSize' => 1 ],
    ]
);

echo "Before iteration started:\n";
var_dump($cursor->info());

echo "\nAfter iteration started:\n";
$cursor->rewind();
var_dump($cursor->info());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Before iteration started:
array(8) {
  ["ns"]=>
  string(11) "demo.cities"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(3) {
    ["aggregate"]=>
    string(6) "cities"
    ["pipeline"]=>
    array(1) {
      [0]=>
      array(1) {
        ["$match"]=>
        array(1) {
          ["_id"]=>
          array(1) {
            ["$exists"]=>
            bool(true)
          }
        }
      }
    }
    ["cursor"]=>
    array(1) {
      ["batchSize"]=>
      int(1)
    }
  }
  ["fields"]=>
  NULL
  ["started_iterating"]=>
  bool(false)
}

After iteration started:
array(17) {
  ["ns"]=>
  string(11) "demo.cities"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(3) {
    ["aggregate"]=>
    string(6) "cities"
    ["pipeline"]=>
    array(1) {
      [0]=>
      array(1) {
        ["$match"]=>
        array(1) {
          ["_id"]=>
          array(1) {
            ["$exists"]=>
            bool(true)
          }
        }
      }
    }
    ["cursor"]=>
    array(1) {
      ["batchSize"]=>
      int(1)
    }
  }
  ["fields"]=>
  NULL
  ["started_iterating"]=>
  bool(true)
  ["id"]=>
  int(185840310129)
  ["at"]=>
  int(0)
  ["numReturned"]=>
  int(0)
  ["server"]=>
  string(25) "localhost:27017;-;.;23991"
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["connection_type_desc"]=>
  string(10) "STANDALONE"
  ["firstBatchAt"]=>
  int(0)
  ["firstBatchNumReturned"]=>
  int(1)
}

Siehe auch

  • MongoCursorInterface::info() - Gets information about the cursor's creation and iteration


Returns the current result's index within the result set

  • « MongoCommandCursor::info
  • MongoCommandCursor::next »
  • PHP Manual
  • MongoCommandCursor
  • Returns the current result's index within the result set

MongoCommandCursor::key

(PECL mongo >=1.5.0)

MongoCommandCursor::key — Returns the current result's index within the result set

Beschreibung

public MongoCommandCursor::key ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current result's index within the result set.

Siehe auch

  • Iterator::key() - Gibt den Schlüssel des aktuellen Elements zurück


Advances the cursor to the next result

  • « MongoCommandCursor::key
  • MongoCommandCursor::rewind »
  • PHP Manual
  • MongoCommandCursor
  • Advances the cursor to the next result

MongoCommandCursor::next

(PECL mongo >=1.5.0)

MongoCommandCursor::next — Advances the cursor to the next result

Beschreibung

public MongoCommandCursor::next ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

null.

Fehler/Exceptions

Throws MongoConnectionException if it cannot reach the database and MongoCursorTimeoutException if the timeout is exceeded.

Siehe auch

  • Iterator::next() - Rückt den Zeiger auf das nächste Element vor


Executes the command and resets the cursor to the start of the result set

  • « MongoCommandCursor::next
  • MongoCommandCursor::setReadPreference »
  • PHP Manual
  • MongoCommandCursor
  • Executes the command and resets the cursor to the start of the result set

MongoCommandCursor::rewind

(PECL mongo >=1.5.0)

MongoCommandCursor::rewind — Executes the command and resets the cursor to the start of the result set

Beschreibung

public MongoCommandCursor::rewind ( ) : array

If the cursor has already started iteration, the command will be re-executed.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The raw server result document.

Fehler/Exceptions

Throws MongoConnectionException if it cannot reach the database and MongoCursorTimeoutException if the timeout is exceeded.

Throws MongoCursorException if the cursor was created with MongoCommandCursor::createFromDocument() and has already started iteration. Such cursors cannot be iterated multiple times, as they lack the original command necessary for re-execution.

Beispiele

Beispiel #1 MongoCommandCursor::rewind()

<?php
$rawResult = $commandCursor->rewind();

// Command cursor is now reset to the start of the result set

var_dump($rawResult);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["cursor"]=>
  array(3) {
    ["id"]=>
    object(MongoInt64)#5 (1) {
      ["value"]=>
      string(12) "310050110216"
    }
    ["ns"]=>
    string(9) "demo.test"
    ["firstBatch"]=>
    array(1) {
      [0]=>
      array(2) {
        ["_id"]=>
        object(MongoId)#6 (1) {
          ["$id"]=>
          string(24) "52f5691544670a8077b0dc51"
        }
        ["value"]=>
        string(2) "42"
      }
    }
  }
  ["ok"]=>
  float(1)
}

Siehe auch

  • Iterator::rewind() - Setzt den Iterator auf das erste Element zurück


Set the read preference for this command

  • « MongoCommandCursor::rewind
  • MongoCommandCursor::timeout »
  • PHP Manual
  • MongoCommandCursor
  • Set the read preference for this command

MongoCommandCursor::setReadPreference

(PECL mongo >=1.6.0)

MongoCommandCursor::setReadPreference — Set the read preference for this command

Beschreibung

public MongoCommandCursor::setReadPreference ( string $read_preference , array $tags = ? ) : MongoCommandCursor

Parameter-Liste

read_preference

The read preference mode: MongoClient::RP_PRIMARY,
MongoClient::RP_PRIMARY_PREFERRED,
MongoClient::RP_SECONDARY,
MongoClient::RP_SECONDARY_PREFERRED, or
MongoClient::RP_NEAREST.

tags

An array of zero or more tag sets, where each tag set is itself an array of criteria used to match tags on replica set members.

Rückgabewerte

Returns this cursor.

Fehler/Exceptions

Emits E_WARNING if either parameter is invalid, or if one or more tag sets are provided with the MongoClient::RP_PRIMARY read preference mode.

Beispiele

Beispiel #1 MongoCommandCursor::setReadPreference() tag set array syntax example

<?php

$m = new MongoClient('mongodb://rs1.example.com:27017', array('replicaSet' => 'myReplSetName'));
$collection = $m->selectCollection('test', 'people');

$cursor = $collection->aggregateCursor( [
    [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
    [ '$sort' => [ 'points' => -1 ] ],
] );

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$cursor->setReadPreference(MongoClient::RP_NEAREST, [
    [ 'dc' => 'east', 'use' => 'reporting' ],
    [ 'dc' => 'west' ],
] );

foreach ($cursor as $person) {
    // ...
}

// If the read preference is changed, it will be used the next time the cursor
// is rewound and the command is re-executed.
$cursor->setReadPreference(MongoClient::RP_PRIMARY);

foreach ($cursor as $person) {
    // ...
}

?>

Siehe auch

  • The read preferences documentation.
  • MongoCommandCursor::getReadPreference() - Get the read preference for this command
  • MongoCursorInterface::setReadPreference() - Set the read preference for this query


Sets a client-side timeout for this command

  • « MongoCommandCursor::setReadPreference
  • MongoCommandCursor::valid »
  • PHP Manual
  • MongoCommandCursor
  • Sets a client-side timeout for this command

MongoCommandCursor::timeout

(PECL mongo >=1.6.0)

MongoCommandCursor::timeout — Sets a client-side timeout for this command

Beschreibung

public MongoCommandCursor::timeout ( int $ms ) : MongoCommandCursor

A timeout can be set at any time and will affect subsequent data retrieval associated with this cursor, including fetching more results from the database.

Parameter-Liste

ms

The number of milliseconds for the cursor to wait for a response. Use -1 to wait forever. By default, the cursor will wait 30000 milliseconds (30 seconds).

Rückgabewerte

This cursor.

Fehler/Exceptions

Causes methods that fetch results to throw a MongoCursorTimeoutException if the data fetch takes longer than the specified number of milliseconds.

Beispiele

Beispiel #1 MongoCommandCursor::timeout() example

In the following example, the driver will wait for 60 seconds for the first response from the aggregate command. It will also wait for 60 seconds each time the server needs to be polled for more information.

<?php

$m = new MongoClient;
$col = $m->database->collection;

$pipeline = [ … ];

$cursor = $col->aggregateCursor( $pipeline );
$cursor->timeout( 60000 ); // for 60 seconds

foreach ( $cursor as $result ) {
   …
}

?>

Anmerkungen

Warnung

This does not cause the MongoDB server to cancel long-running operations; it only instructs the driver to stop waiting for a response and throw a MongoCursorTimeoutException after a set time. If you need to specify a server-side timeout for a command, considering passing the maxTimeMS option to MongoCollection::aggregateCursor().

Siehe auch

  • MongoCollection::aggregateCursor() - Execute an aggregation pipeline command and retrieve results through a cursor
  • MongoCursorInterface::timeout() - Sets a client-side timeout for this query
  • The socketTimeoutMS option for MongoClient::__construct()


Checks if the cursor is reading a valid result

  • « MongoCommandCursor::timeout
  • Types »
  • PHP Manual
  • MongoCommandCursor
  • Checks if the cursor is reading a valid result

MongoCommandCursor::valid

(PECL mongo >=1.5.0)

MongoCommandCursor::valid — Checks if the cursor is reading a valid result

Beschreibung

public MongoCommandCursor::valid ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the current result is not null, and false otherwise.

Siehe auch

  • Iterator::valid() - Prüft, ob die aktuelle Position zulässig ist


Types

Inhaltsverzeichnis

  • MongoId
  • MongoCode
  • MongoDate
  • MongoRegex
  • MongoBinData
  • MongoInt32
  • MongoInt64
  • MongoDBRef
  • MongoMinKey
  • MongoMaxKey
  • MongoTimestamp

MongoDB allows programmers to save and query for data expressed in all of the basic PHP types, compound types (arrays, associative arrays, and objects), and a half-dozen classes provided by the MongoDB PHP driver (for regular expressions, dates, and other specialized applications).

Booleans and null

true, false, and null can be used as-is.

Numbers

Numbers are distinct from strings in MongoDB: "123" does not match 123. Thus, if you want to make sure numbers are sorted and matched correctly, you must make sure that they are actually saved as numbers.

<?php

$doc = array("a" => 123, "b" => "123");
$collection->insert($doc);

$doc->find(array("a" => 123));   // matches
$doc->find(array("a" => "123")); // doesn't match
$doc->find(array("a" => 123.0)); // matches
$doc->find(array("b" => 123));   // doesn't match
$doc->find(array("b" => "123")); // matches

?>

As noted above, floating point numbers do compare with/match integer numbers as one would expect.

Large Numbers

By default, on a 32-bit system, numbers are sent to the database as 32-bit integers. On a 64-bit system, they are sent as 64-bit integers. For backwards compatibility, all systems deserialize 64-bit integers as floating point numbers. Floating point numbers are not exact. If you need exact values, you must tweak your php.ini settings.

On a 32-bit system, if mongo.long_as_object is set, 64-bit integers will be returns as MongoInt64 objects. The integer will be stored in the value field with perfect precision (as a string). You can also use MongoInt64 to save 64-bit integers on 32-bit machines.

On 64-bit systems, you can either set mongo.long_as_object or set mongo.native_long. mongo.native_long will return 64-bit integers and "normal" PHP integers. You can use MongoInt32 to save 32-bit integers on 64-bit machines.

You should set the mongo.long_as_object and mongo.native_long behavior that you plan to use, even if it is the default behavior (to protect against future changes to the defaults).

See also: php.ini Options, MongoInt32, MongoInt64.

Strings

Strings must be UTF-8. Non-UTF-8 strings must either be converted to UTF-8 before being sent to the database or saved as binary data.

Regular expressions can be used to match strings, and are expressed using the MongoRegex class.

Binary Data

Non-UTF-8 strings, images, and any other binary data should be sent to the database using the MongoBinData type.

Dates

Dates can be created using the MongoDate class. They are stored as milliseconds since the epoch.

MongoTimestamp is not for saving dates or timestamps, it is used internally by MongoDB. Unless you are creating a tool that interacts with the internals of replication or sharding, you should use MongoDate, not MongoTimestamp.

Unique Ids

The driver will automatically create an _id field before inserting a document (unless one is specified by the user). This field is an instance of MongoId (called "ObjectId" in most other languages).

These ids are 12 bytes long and composed of:

  • 4 bytes of timestamp

    No two records can have the same id if they were inserted at different times.

  • 3 bytes machine id

    No two records can have the same id if they were inserted on different machines

  • 2 bytes thread id

    No two records can have the same id if they were inserted by different threads running on the same machine.

  • 3 bytes incrementing value

    Each time an id is created, a global counter is incremented and used as the increment value of the next id.

Thus, no two records can have the same id unless a single process on a single machine managed to insert 256^3 (over 16 million) documents in one second, overflowing the increment field.

JavaScript

MongoDB comes with a JavaScript engine, so you can embed JavaScript in queries (using a $where clause), send it directly to the database to be executed, and use it to perform aggregations.

For security, use MongoCode's scope field to use PHP variables in JavaScript. Code that does not require external values can either use MongoCode or just be a string. See the section on security for more information about sending JavaScript to the database.

Arrays and Objects

Arrays and objects can also be saved to the database. An array with ascending numeric keys will be saved as a an array, anything else will be saved as an object.

<?php

// $scores will be saved as an array
$scores = array(98, 100, 73, 85);
$collection->insert(array("scores" => $scores));

// $scores will be saved as an object
$scores = array("quiz1" => 98, "midterm" => 100, "quiz2" => 73, "final" => 85);
$collection->insert(array("scores" => $scores));

?>

If you query for these objects using the database shell, they will look like:

> db.students.find()
{ "_id" : ObjectId("4b06beada9ad6390dab17c43"), "scores" : [ 98, 100, 73, 85 ] }
{ "_id" : ObjectId("4b06bebea9ad6390dab17c44"), "scores" : { "quiz1" : 98, "midterm" : 100, "quiz2" : 73, "final" : 85 } }

The database can also save arbitrary PHP objects (although they will be returned as associative arrays). The fields are used for the key/value pairs. For example, a blog post might look like:

<?php

  // the blog post class
  class Post {

  var $author;
  var $content;
  var $comments = array();
  var $date;

  public function __construct($author, $content) {
  $this->author = $author;
$this->content = $content;
    $this->date = new MongoDate();
  }

  public function setTitle($title) {
    $this->title = $title;
  }
}

// create a simple blog post and insert it into the database
$post1 = new Post("Adam", "This is a blog post");

$blog->insert($post1);

// there is nothing restricting the type of the "author" field, so we can make
// it a nested object
$author = array("name" => "Fred", "karma" => 42);
$post2 = new Post($author, "This is another blog post.");

// we create an extra field by setting the title
$post2->setTitle("Second Post");

$blog->insert($post2);

?>

From the database shell, this will look something like:

> db.blog.find()
{ "_id" : ObjectId("4b06c263edb87a281e09dad8"), "author" : "Adam", "content" : "This is a blog post", "comments" : [ ], "date" : "Fri Nov 20 2009 11:22:59 GMT-0500 (EST)" }
{ "_id" : ObjectId("4b06c282edb87a281e09dad9"), "author" : { "name" : "Fred", "karma" : 42 }, "content" : "This is a blog post", "comments" : [ ], "date" : "Fri Nov 20 2009 11:23:30 GMT-0500 (EST)", "title" : "Second Post" }

The driver will not detect reference loops in arrays and objects. For example, this will give a fatal error:

<?php

$collection->insert($GLOBALS);

?>
Fatal error: Nesting level too deep - recursive dependency?
If you need to insert documents that may have recursive dependency, you have to check for it yourself before passing it to the driver.


The MongoId class

(PECL mongo >=0.8.0)

Warnung

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. Alternatives to this class include:

  • MongoDB\BSON\ObjectId

Einführung

A unique identifier created for database objects. If an object is inserted into the database without an _id field, an _id field will be added to it with a MongoId instance as its value. If the data has a naturally occuring unique field (e.g. username or timestamp) it is fine to use this as the _id field instead, and it will not be replaced with a MongoId.

Instances of the MongoId class fulfill the role that autoincrementing does in a relational database: to provide a unique key if the data does not naturally have one. Autoincrementing does not work well with a sharded database, as it is difficult to determine the next number in the sequence. This class fulfills the constraints of quickly generating a value that is unique across shards.

Each MongoId is 12 bytes (making its string form 24 hexadecimal characters). The first four bytes are a timestamp, the next three are a hash of the client machine's hostname, the next two are the two least significant bytes of the process id running the script, and the last three bytes are an incrementing value.

MongoIds are serializable/unserializable. Their serialized form is similar to their string form:

C:7:"MongoId":24:{4af9f23d8ead0e1d32000000}

Klassenbeschreibung

MongoId {
public string $$id = null ;
/* Methoden */
public __construct ( string|MongoId $id = null )
public static getHostname ( ) : string
public getInc ( ) : int
public getPID ( ) : int
public getTimestamp ( ) : int
public static isValid ( mixed $value ) : bool
public static __set_state ( array $props ) : MongoId
public __toString ( ) : string
}

Fields

$id
This field contains the string representation of this object.

Hinweis: The property name begins with a $ character. It may be accessed using complex variable parsed syntax (e.g. $mongoId->{'$id'}).

Siehe auch

MongoDB core docs on » ObjectIds.

Inhaltsverzeichnis

  • MongoId::__construct — Creates a new id
  • MongoId::getHostname — Gets the hostname being used for this machine's ids
  • MongoId::getInc — Gets the incremented value to create this id
  • MongoId::getPID — Gets the process ID
  • MongoId::getTimestamp — Gets the number of seconds since the epoch that this id was created
  • MongoId::isValid — Check if a value is a valid ObjectId
  • MongoId::__set_state — Create a dummy MongoId
  • MongoId::__toString — Returns a hexidecimal representation of this id


Creates a new id

  • « MongoId
  • MongoId::getHostname »
  • PHP Manual
  • MongoId
  • Creates a new id

MongoId::__construct

(PECL mongo >= 0.8.0)

MongoId::__construct — Creates a new id

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\BSON\ObjectId::__construct()

Beschreibung

public MongoId::__construct ( string|MongoId $id = null )

Parameter-Liste

id

A string (must be 24 hexadecimal characters) or a MongoId instance.

Rückgabewerte

Returns a new id.

Changelog

Version | Beschreibung
PECL mongo 1.4.0 | An exception is thrown when passed invalid string

Beispiele

Beispiel #1 MongoId::__construct() example

This example shows how to create a new id. This is seldom necessary, as the driver adds an id to arrays automatically before storing them in the database.

<?php

  $id1 = new MongoId();
  echo "$id1\n";

  $id2 = new MongoId();
  echo "$id2\n";

  ?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

49a7011a05c677b9a916612a
49a702d5450046d3d515d10d

Beispiel #2 Parameter example

This example shows how to use a string parameter to initialize a MongoId with a given value.

<?php
  $id1 = new MongoId();

  // create a new id from $id1
  $id2 = new MongoId("$id1");

  // show that $id1 and $id2 have the same hexidecimal value
  var_dump($id1 == $id2);
  ?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)

Siehe auch

  • MongoId::__toString() - Returns a hexidecimal representation of this id
  • MongoId::isvalid() - Check if a value is a valid ObjectId


Gets the hostname being used for this machine's ids

  • « MongoId::__construct
  • MongoId::getInc »
  • PHP Manual
  • MongoId
  • Gets the hostname being used for this machine's ids

MongoId::getHostname

(PECL mongo >= 1.0.8)

MongoId::getHostname — Gets the hostname being used for this machine's ids

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public static MongoId::getHostname ( ) : string

This returns the hostname MongoId is using to generate unique ids. This should be the same value gethostname() returns.

It is identical to the function:

<?php

public static function getHostname() {
    return gethostname();
}

?>

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the hostname.


Gets the incremented value to create this id

  • « MongoId::getHostname
  • MongoId::getPID »
  • PHP Manual
  • MongoId
  • Gets the incremented value to create this id

MongoId::getInc

(PECL mongo >= 1.0.11)

MongoId::getInc — Gets the incremented value to create this id

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public MongoId::getInc ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the incremented value used to create this MongoId.


Gets the process ID

  • « MongoId::getInc
  • MongoId::getTimestamp »
  • PHP Manual
  • MongoId
  • Gets the process ID

MongoId::getPID

(PECL mongo >= 1.0.11)

MongoId::getPID — Gets the process ID

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public MongoId::getPID ( ) : int

Extracts the pid from the Mongo ID

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the PID of the MongoId.


Gets the number of seconds since the epoch that this id was created

  • « MongoId::getPID
  • MongoId::isValid »
  • PHP Manual
  • MongoId
  • Gets the number of seconds since the epoch that this id was created

MongoId::getTimestamp

(PECL mongo >= 1.0.1)

MongoId::getTimestamp — Gets the number of seconds since the epoch that this id was created

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public MongoId::getTimestamp ( ) : int

This returns the same thing as running time() when the id is created.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of seconds since the epoch that this id was created. There are only four bytes of timestamp stored, so MongoDate is a better choice for storing exact or wide-ranging times.


Check if a value is a valid ObjectId

  • « MongoId::getTimestamp
  • MongoId::__set_state »
  • PHP Manual
  • MongoId
  • Check if a value is a valid ObjectId

MongoId::isValid

(PECL mongo >= 1.5.0)

MongoId::isValid — Check if a value is a valid ObjectId

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public static MongoId::isValid ( mixed $value ) : bool

This method may be used to check a variable before passing it as an argument to MongoId::__construct().

Parameter-Liste

value

The value to check for validity.

Rückgabewerte

Returns true if value is a MongoId instance or a string consisting of exactly 24 hexadecimal characters; otherwise, false is returned.


Create a dummy MongoId

  • « MongoId::isValid
  • MongoId::__toString »
  • PHP Manual
  • MongoId
  • Create a dummy MongoId

MongoId::__set_state

(PECL mongo >= 1.0.8)

MongoId::__set_state — Create a dummy MongoId

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public static MongoId::__set_state ( array $props ) : MongoId

This function is only used by PHP internally, it shouldn't need to ever be called by the user.

It is identical to the function:

<?php

public static function __set_state($props) {
    return new MongoId("000000000000000000000000");
}

?>

Parameter-Liste

props

Theoretically, an array of properties used to create the new id. However, as MongoId instances have no properties, this is not used.

Rückgabewerte

A new id with the value "000000000000000000000000".


Returns a hexidecimal representation of this id

  • « MongoId::__set_state
  • MongoCode »
  • PHP Manual
  • MongoId
  • Returns a hexidecimal representation of this id

MongoId::__toString

(PECL mongo >= 0.8.0)

MongoId::__toString — Returns a hexidecimal representation of this id

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\BSON\ObjectId::__toString()

Beschreibung

public MongoId::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This id.

Beispiele

Beispiel #1 MongoId::__toString() example

<?php

$m = new MongoClient();
$collection = $m->selectDB("foo")->selectCollection("bar");

$collection->insert(array( "x" => "y" ));
$collection->insert(array( "x" => "y" ));

$cursor = $collection->find();
$r1 = $cursor->next();
$r2 = $cursor->next();

echo $r1["_id"] . "\n";
echo $r2["_id"] . "\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

49a7011a05c677b9a916612a
49a702d5450046d3d515d10d


The MongoCode class

(PECL mongo >=0.8.3)

Warnung

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. Alternatives to this class include:

  • MongoDB\BSON\JavaScript

Einführung

Represents JavaScript code for the database.

MongoCode objects are composed of two parts: a string of code and an optional scope. The string of code must be valid JavaScript. The scope is a associative array of variable name/value pairs.

Klassenbeschreibung

MongoCode {
/* Methoden */
public __construct ( string $code , array $scope = array() )
public __toString ( ) : string
}

Inhaltsverzeichnis

  • MongoCode::__construct — Creates a new code object
  • MongoCode::__toString — Returns this code as a string


Creates a new code object

  • « MongoCode
  • MongoCode::__toString »
  • PHP Manual
  • MongoCode
  • Creates a new code object

MongoCode::__construct

(PECL mongo >= 0.8.3)

MongoCode::__construct — Creates a new code object

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\BSON\JavaScript::__construct()

Beschreibung

public MongoCode::__construct ( string $code , array $scope = array() )

Parameter-Liste

code

A string of code.

scope

The scope to use for the code.

Rückgabewerte

Returns a new code object.

Beispiele

Beispiel #1 MongoCode::__construct() example

<?php

$code = new MongoCode('function() { '.
    'for(i=0;i<10;i++) {'.
        'db.foo.update({z : i}, {z : x});'.
    '}'.
    'return x-1;'.
 '}', array("x" => 4));
var_dump($code);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MongoCode)#1 (2) {
  ["scope"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["code"]=>
  string(80) "function() { for(i=0;i<10;i++) { db.foo.update({z : i}, {z : x}); } return x-1; }"
}

Beispiel #2 Using MongoCode with $where

This example queries a collection for elements where the 'x' fields is less than $y. Notice that PHP objects can be passed into the JavaScript scope and that the JavaScript function returns a boolean.

<?php

$cursor = $collection->find(array('$where' => new MongoCode('function() { return this.x < y; }', array('y'=>$y))));

?>


Returns this code as a string

  • « MongoCode::__construct
  • MongoDate »
  • PHP Manual
  • MongoCode
  • Returns this code as a string

MongoCode::__toString

(PECL mongo >= 0.8.3)

MongoCode::__toString — Returns this code as a string

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this method in the new extension.

Beschreibung

public MongoCode::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This code, the scope is not returned.

Beispiele

Beispiel #1 MongoCode::__toString() example

<?php

$code = new MongoCode('return x;', array("x"=>"hi"));
echo "$code\n";

$code = new MongoCode('function() { for(i=0;i<10;i++) { db.foo.update({x:i}, {x:i+1}); } }');
echo "$code\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

return x;
function() { for(i=0;i<10;i++) { db.foo.update({x:i}, {x:i+1}); } }


The MongoDate class

(PECL mongo >=0.8.1)

Warnung

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. Alternatives to this class include:

  • MongoDB\BSON\UTCDateTime

Einführung

Represent date objects for the database. This class should be used to save dates to the database and to query for dates. For example:

Beispiel #1 Storing dates with MongoDate

<?php

// save a date to the database
$collection->save(array("ts" => new MongoDate()));

$start = new MongoDate(strtotime("2010-01-15 00:00:00"));
$end = new MongoDate(strtotime("2010-01-30 00:00:00"));

// find dates between 1/15/2010 and 1/30/2010
$collection->find(array("ts" => array('$gt' => $start, '$lte' => $end)));

?>

MongoDB stores dates as milliseconds past the epoch. This means that dates do not contain timezone information. Timezones must be stored in a separate field if needed. Second, this means that any precision beyond milliseconds will be lost when the document is sent to/from the database.

Klassenbeschreibung

MongoDate {
/* Fields */
public int $sec ;
public int $usec ;
/* Methoden */
public __construct ( int $sec = time() , int $usec = 0 )
public toDateTime ( ) : DateTime
public __toString ( ) : string
}

Inhaltsverzeichnis

  • MongoDate::__construct — Creates a new date
  • MongoDate::toDateTime — Returns a DateTime object representing this date
  • MongoDate::__toString — Returns a string representation of this date


Creates a new date

  • « MongoDate
  • MongoDate::toDateTime »
  • PHP Manual
  • MongoDate
  • Creates a new date

MongoDate::__construct

(PECL mongo >= 0.8.1)

MongoDate::__construct — Creates a new date

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\BSON\UTCDateTime::__construct()

Beschreibung

public MongoDate::__construct ( int $sec = time() , int $usec = 0 )

Creates a new date. If no parameters are given, the current time is used.

Parameter-Liste

sec

Number of seconds since the epoch (i.e. 1 Jan 1970 00:00:00.000 UTC).

usec

Microseconds. Please be aware though that MongoDB's resolution is milliseconds and not microseconds, which means this value will be truncated to millisecond resolution.

Rückgabewerte

Returns this new date.

Beispiele

Beispiel #1 MongoDate::__construct() example

This example demonstrates creating a new date with the current time and a new date with a given time.

<?php

$d = new MongoDate();
echo "$d\n";
$d = new MongoDate(1234567890);
echo "$d\n";
$d = new MongoDate(strtotime("2009-05-01 00:00:01"));
echo "$d\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

0.23660600 1235685067
0.00000000 1234567890
0.00000000 1241150401

Siehe auch

  • MongoDate::__toString() - Returns a string representation of this date


Returns a DateTime object representing this date

  • « MongoDate::__construct
  • MongoDate::__toString »
  • PHP Manual
  • MongoDate
  • Returns a DateTime object representing this date

MongoDate::toDateTime

(PECL mongo >= 1.6.0)

MongoDate::toDateTime — Returns a DateTime object representing this date

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\BSON\UTCDateTime::toDateTime()

Beschreibung

public MongoDate::toDateTime ( ) : DateTime

Returns the DateTime representation of this date. The returned DateTime will use the UTC time zone.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This date as a DateTime object.

Beispiele

Beispiel #1 MongoDate::toDateTime() example

This example demonstrates creating a DateTime object from a MongoDate object.

<?php
$d = new MongoDate(strtotime("2014-11-18 11:01:25"));
var_dump( $d->toDateTime() );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

class DateTime#2 (3) {
  public $date =>
  string(26) "2014-11-18 11:01:25.000000"
  public $timezone_type =>
  int(1)
  public $timezone =>
  string(6) "+00:00"
}


Returns a string representation of this date

  • « MongoDate::toDateTime
  • MongoRegex »
  • PHP Manual
  • MongoDate
  • Returns a string representation of this date

MongoDate::__toString

(PECL mongo >= 0.8.1)

MongoDate::__toString — Returns a string representation of this date

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\BSON\UTCDateTime::__toString()

Beschreibung

public MongoDate::__toString ( ) : string

Returns a string representation of this date, similar to the representation returned by microtime().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This date.


The MongoRegex class

(PECL mongo >=0.8.1)

Warnung

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. Alternatives to this class include:

  • MongoDB\BSON\Regex

Einführung

This class can be used to create regular expressions. Typically, these expressions will be used to query the database and find matching strings. More unusually, they can be saved to the database and retrieved.

Regular expressions consist of four parts. First a / as starting delimiter, then the pattern, another / and finally a string containing flags.

Beispiel #1 Regular expression pattern

/pattern/flags

MongoDB recognizes six regular expression flags:

  • i: Case insensitive

  • m: Multiline

  • x: Can contain comments

  • l: locale

  • s: dotall, "." matches everything, including newlines

  • u: match unicode

Klassenbeschreibung

MongoRegex {
/* Fields */
public string $regex ;
public string $flags ;
/* Methoden */
public __construct ( string $regex )
public __toString ( ) : string
}

Inhaltsverzeichnis

  • MongoRegex::__construct — Creates a new regular expression
  • MongoRegex::__toString — A string representation of this regular expression


Creates a new regular expression

  • « MongoRegex
  • MongoRegex::__toString »
  • PHP Manual
  • MongoRegex
  • Creates a new regular expression

MongoRegex::__construct

(PECL mongo >= 0.8.1)

MongoRegex::__construct — Creates a new regular expression

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\BSON\Regex::__construct()

Beschreibung

public MongoRegex::__construct ( string $regex )

Creates a new regular expression.

Parameter-Liste

regex

Regular expression string of the form /expr/flags.

Rückgabewerte

Returns a new regular expression.

Beispiele

Beispiel #1 MongoRegex::__construct() example

This example uses a regular expression to query for all documents with a username field starting (^) with an l and a vowel ([aeiouy]), case-insensitive (/i).

<?php
$luke_search = new MongoRegex("/^l[aeiouy]/i");
$cursor = $collection->find(array("username" => $luke_search));
?>

Siehe auch

  • MongoRegex::__toString() - A string representation of this regular expression


A string representation of this regular expression

  • « MongoRegex::__construct
  • MongoBinData »
  • PHP Manual
  • MongoRegex
  • A string representation of this regular expression

MongoRegex::__toString

(PECL mongo >= 0.8.1)

MongoRegex::__toString — A string representation of this regular expression

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\BSON\Regex::__toString()

Beschreibung

public MongoRegex::__toString ( ) : string

Returns a string representation of this regular expression.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This regular expression in the form "/expr/flags".

Beispiele

Beispiel #1 MongoRegex::__toString() example

<?php

$r = new MongoRegex( "/[a-fA-F0-9]{16}/g" );
echo $r->regex . "\n";
echo $r->flags . "\n";
echo "$r\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

[a-fA-F0-9]{16}
g
/[a-fA-F0-9]{16}/g


The MongoBinData class

(PECL mongo >= 0.8.1)

Warnung

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. Alternatives to this class include:

  • MongoDB\BSON\Binary

Einführung

An object that can be used to store or retrieve binary data from the database.

The maximum size of a single object that can be inserted into the database is 16MB. For data that is larger than this (movies, music, Henry Kissinger's autobiography), use MongoGridFS. For data that is smaller than 16MB, you may find it easier to embed it within the document using MongoBinData.

For example, to embed an image in a document, one could write:

<?php

$profile = array(
    "username" => "foobity",
    "pic" => new MongoBinData(file_get_contents("gravatar.jpg"), MongoBinData::GENERIC),
);

$users->save($profile);

?>

This class contains a type field, which currently gives no additional functionality in the PHP driver or the database. There are seven predefined types, which are defined as class constants below. For backwards compatibility, the PHP driver uses MongoBinData::BYTE_ARRAY as the default; however, this may change to MongoBinData::GENERIC in the future. Users are encouraged to specify a type in MongoBinData::__construct().

Klassenbeschreibung

MongoBinData {
/* Konstanten */
const int GENERIC = 0 ;
const int FUNC = 1 ;
const int BYTE_ARRAY = 2 ;
const int UUID = 3 ;
const int UUID_RFC4122 = 4 ;
const int MD5 = 5 ;
const int CUSTOM = 128 ;
/* Fields */
public string $bin ;
public int $type = 2 ;
/* Methoden */
public __construct ( string $data , int $type = 0 )
public __toString ( ) : string
}

Vordefinierte Konstanten

Binary Data Types

MongoBinData::GENERIC
Generic binary data.
MongoBinData::FUNC
Function.
MongoBinData::BYTE_ARRAY
Generic binary data (deprecated in favor of MongoBinData::GENERIC).
MongoBinData::UUID
Universally unique identifier (deprecated in favor of MongoBinData::UUID_RFC4122).
MongoBinData::UUID_RFC4122
Universally unique identifier (according to » RFC 4122).
MongoBinData::MD5
MD5.
MongoBinData::CUSTOM
User-defined type.

Changelog

Version | Beschreibung
1.5.0 | Added MongoBinData::GENERIC and MongoBinData::UUID_RFC4122 constants.

Inhaltsverzeichnis

  • MongoBinData::__construct — Creates a new binary data object
  • MongoBinData::__toString — The string representation of this binary data object


Creates a new binary data object

  • « MongoBinData
  • MongoBinData::__toString »
  • PHP Manual
  • MongoBinData
  • Creates a new binary data object

MongoBinData::__construct

(PECL mongo >= 0.8.1)

MongoBinData::__construct — Creates a new binary data object

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\BSON\Binary::__construct()

Beschreibung

public MongoBinData::__construct ( string $data , int $type = 0 )

Creates a new binary data object.

There are seven types of binary data currently recognized by the BSON spec, which are defined as class constants. For backwards compatibility, the PHP driver uses MongoBinData::BYTE_ARRAY as the default; however, this may change to MongoBinData::GENERIC in the future. Users are encouraged to specify a type instead of relying on the default.

Parameter-Liste

data

Binary data.

type

Data type.

Rückgabewerte

Returns a new binary data object.

Changelog

Version | Beschreibung
PECL mongo 1.5.0 | The default changed from 2 (MongoBinData::BYTE_ARRAY) to 0 (MongoBinData::GENERIC).
PECL mongo 1.2.11 | Emits E_DEPRECATED when the second argument is not used. The default value for type may change in the near future.


The string representation of this binary data object

  • « MongoBinData::__construct
  • MongoInt32 »
  • PHP Manual
  • MongoBinData
  • The string representation of this binary data object

MongoBinData::__toString

(PECL mongo >= 0.8.1)

MongoBinData::__toString — The string representation of this binary data object

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\BSON\Binary::getData()

Beschreibung

public MongoBinData::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string "<Mongo Binary Data>". To access the contents of a MongoBinData, use the bin field.


The MongoInt32 class

(PECL mongo >=1.0.9)

Warnung

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this class in the new extension.

Instead, the new extension chooses the appropriate database type depending on the integer's value.

Einführung

The class can be used to save 32-bit integers to the database on a 64-bit system.

Klassenbeschreibung

MongoInt32 {
/* Fields */
public string $value ;
/* Methoden */
public __construct ( string $value )
public __toString ( ) : string
}

Fields

value
This is the string value of the 32-bit number. For instance, 123's value would be "123".

Inhaltsverzeichnis

  • MongoInt32::__construct — Creates a new 32-bit integer
  • MongoInt32::__toString — Returns the string representation of this 32-bit integer


Creates a new 32-bit integer

  • « MongoInt32
  • MongoInt32::__toString »
  • PHP Manual
  • MongoInt32
  • Creates a new 32-bit integer

MongoInt32::__construct

(PECL mongo >= 1.0.9)

MongoInt32::__construct — Creates a new 32-bit integer

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this class in the new extension.

Instead, the new extension chooses the appropriate database type depending on the integer's value.

Beschreibung

public MongoInt32::__construct ( string $value )

Creates a new 32-bit number with the given value.

Parameter-Liste

value

A number.

Rückgabewerte

Returns a new integer.


Returns the string representation of this 32-bit integer

  • « MongoInt32::__construct
  • MongoInt64 »
  • PHP Manual
  • MongoInt32
  • Returns the string representation of this 32-bit integer

MongoInt32::__toString

(PECL mongo >= 1.0.9)

MongoInt32::__toString — Returns the string representation of this 32-bit integer

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this class in the new extension.

Instead, the new extension chooses the appropriate database type depending on the integer's value.

Beschreibung

public MongoInt32::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of this integer.


The MongoInt64 class

(PECL mongo >=1.0.9)

Warnung

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this class in the new extension.

Instead, the new extension chooses the appropriate database type depending on the integer's value.

Einführung

The class can be used to save 64-bit integers to the database on a 32-bit system.

Klassenbeschreibung

MongoInt64 {
/* Fields */
public string $value ;
/* Methoden */
public __construct ( string $value )
public __toString ( ) : string
}

Fields

value
This is the string value of the 64-bit number. For instance, 123's value would be "123".

Inhaltsverzeichnis

  • MongoInt64::__construct — Creates a new 64-bit integer
  • MongoInt64::__toString — Returns the string representation of this 64-bit integer


Creates a new 64-bit integer

  • « MongoInt64
  • MongoInt64::__toString »
  • PHP Manual
  • MongoInt64
  • Creates a new 64-bit integer

MongoInt64::__construct

(PECL mongo >= 1.0.9)

MongoInt64::__construct — Creates a new 64-bit integer

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this class in the new extension.

Instead, the new extension chooses the appropriate database type depending on the integer's value.

Beschreibung

public MongoInt64::__construct ( string $value )

Creates a new 64-bit number with the given value.

Parameter-Liste

value

A number.

Rückgabewerte

Returns a new integer.


Returns the string representation of this 64-bit integer

  • « MongoInt64::__construct
  • MongoDBRef »
  • PHP Manual
  • MongoInt64
  • Returns the string representation of this 64-bit integer

MongoInt64::__toString

(PECL mongo >= 1.0.9)

MongoInt64::__toString — Returns the string representation of this 64-bit integer

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this class in the new extension.

Instead, the new extension chooses the appropriate database type depending on the integer's value.

Beschreibung

public MongoInt64::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of this integer.


The MongoDBRef class

(PECL mongo >=0.9.0)

Warnung

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this class in the new extension.

The concept of database references, and hence this class, has been deprecated in the database.

Einführung

This class can be used to create lightweight links between objects in different collections.

Motivation: Suppose we need to refer to a document in another collection. The easiest way is to create a field in the current document. For example, if we had a "people" collection and an "addresses" collection, we might want to create a link between each person document and an address document:

Beispiel #1 Linking documents

<?php

$people = $db->people;
$addresses = $db->addresses;

$myAddress = array("line 1" => "123 Main Street",
    "line 2" => null,
    "city" => "Springfield",
    "state" => "Vermont",
    "country" => "USA");

// save the address
$addresses->insert($myAddress);

// save a person with a reference to the address
$me = array("name" => "Fred", "address" => $myAddress['_id']);
$people->insert($me);

?>

Then, later on, we can find the person's address by querying the "addresses" collection with the MongoId we saved in the "people" collection.

Suppose now that we have a more general case, where we don't know which collection (or even which database) contains the referenced document. MongoDBRef is a good choice for this case, as it is a common format that all of the drivers and the database understand.

If each person had a list of things they liked which could come from multiple collections, such as "hobbies", "sports", "books", etc., we could use MongoDBRefs to keep track of what "like" went with what collection:

Beispiel #2 Creating MongoDBRef links

<?php

$people = $db->selectCollection("people");

// model trains are in the "hobbies" collection
$trainRef = MongoDBRef::create("hobbies", $modelTrains['_id']);
// soccer is in the "sports" collection
$soccerRef = MongoDBRef::create("sports", $soccer['_id']);

// now we'll know what collections the items in the "likes" array came from when
// we retrieve this document
$people->insert(array("name" => "Fred", "likes" => array($trainRef, $soccerRef)));

?>

Database references can be thought of as hyperlinks: they give the unique address of another document, but they do not load it or automatically follow the link/reference.

A database reference is just a normal associative array, not an instance of MongoDBRef, so this class is a little different than the other data type classes. This class contains exclusively static methods for manipulating database references.

Klassenbeschreibung

MongoDBRef {
/* Methoden */
public static create ( string $collection , mixed $id , string $database = ? ) : array
public static get ( MongoDB $db , array $ref ) : array
public static isRef ( mixed $ref ) : bool
}

Siehe auch

MongoDB core docs on » databases references.

Inhaltsverzeichnis

  • MongoDBRef::create — Creates a new database reference
  • MongoDBRef::get — Fetches the object pointed to by a reference
  • MongoDBRef::isRef — Checks if an array is a database reference


Creates a new database reference

  • « MongoDBRef
  • MongoDBRef::get »
  • PHP Manual
  • MongoDBRef
  • Creates a new database reference

MongoDBRef::create

(PECL mongo >= 0.9.0)

MongoDBRef::create — Creates a new database reference

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this class in the new extension.

The concept of database references, and hence this class, has been deprecated.

Beschreibung

public static MongoDBRef::create ( string $collection , mixed $id , string $database = ? ) : array

If no database is given, the current database is used.

Parameter-Liste

collection

Collection name (without the database name).

id

The _id field of the object to which to link.

database

Database name.

Rückgabewerte

Returns the reference.

Beispiele

Beispiel #1 MongoDBRef::create() example

This creates a database reference to a document in the addresses collection. The MongoCollection::getName() function returns the name of the collection (not including the database name).

<?php
$addresses = $db->addresses;
$people = $db->people;

// save $address so it has an _id
$addresses->insert($address);

// create a reference
$ref = MongoDBRef::create($addresses->getName(), $address['_id']);

// set the field in $person
$person['address'] = $ref;
$people->save($person);
?>

Siehe auch

  • MongoDB::createDBRef() - Creates a database reference
  • MongoCollection::createDBRef() - Creates a database reference


Fetches the object pointed to by a reference

  • « MongoDBRef::create
  • MongoDBRef::isRef »
  • PHP Manual
  • MongoDBRef
  • Fetches the object pointed to by a reference

MongoDBRef::get

(PECL mongo >= 0.9.0)

MongoDBRef::get — Fetches the object pointed to by a reference

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this class in the new extension.

The concept of database references, and hence this class, has been deprecated.

Beschreibung

public static MongoDBRef::get ( MongoDB $db , array $ref ) : array

Parameter-Liste

db

Database to use.

ref

Reference to fetch.

Rückgabewerte

Returns the document to which the reference refers or null if the document does not exist (the reference is broken).

Beispiele

Beispiel #1 MongoCollection::createDBRef() example

<?php

// get $person out of the db
$person = $people->findOne();

// dereference the address
$address = MongoDBRef::get($people->db, $person['address']);

?>

Siehe auch

  • MongoDB::getDBRef() - Fetches the document pointed to by a database reference
  • MongoCollection::getDBRef() - Fetches the document pointed to by a database reference


Checks if an array is a database reference

  • « MongoDBRef::get
  • MongoMinKey »
  • PHP Manual
  • MongoDBRef
  • Checks if an array is a database reference

MongoDBRef::isRef

(PECL mongo >= 0.9.0)

MongoDBRef::isRef — Checks if an array is a database reference

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. There is no equivalent for this class in the new extension.

The concept of database references, and hence this class, has been deprecated.

Beschreibung

public static MongoDBRef::isRef ( mixed $ref ) : bool

This method does not actually follow the reference, so it does not determine if it is broken or not. It merely checks that ref is in valid database reference format (in that it is an object or array with $ref and $id fields).

Parameter-Liste

ref

Array or object to check.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


The MongoMinKey class

(PECL mongo >= 1.0.2)

Warnung

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. Alternatives to this class include:

  • MongoDB\BSON\MinKey

Einführung

MongoMinKey is an special type used by the database that compares less than all other possible BSON values. Thus, if a query is sorted by a given field in ascending order, any document with a MongoMinKey as its value will be returned first.

MongoMinKey has no associated fields, methods, or constants. It is merely the "smallest" value that can be represented in the database.

Hinweis: MongoMinKey is used internally by MongoDB for indexing and sharding. There is generally no reason to use this class in an application.

Klassenbeschreibung

MongoMinKey {
}

Using MongoMinKey as a value

<?php

$collection->insert(array("task" => "lunch", "doBy" => new MongoMinKey));
$collection->insert(array("task" => "staff meeting", "doBy" => new MongoDate(strtotime("+4 days"))));

$cursor = $collection->find()->sort(array("doBy" => 1));

?>

The cursor will return the lunch document followed by the staff meeting document. The lunch document will always be returned first, regardless of what else is added to the collection (unless other documents are added with MongoMinKey in their "doBy" field).

Siehe auch

  • MongoMaxKey


The MongoMaxKey class

(PECL mongo >= 1.0.2)

Warnung

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. Alternatives to this class include:

  • MongoDB\BSON\MaxKey

Einführung

MongoMaxKey is an special type used by the database that compares greater than all other possible BSON values. Thus, if a query is sorted by a given field in ascending order, any document with a MongoMaxKey as its value will be returned last.

MongoMaxKey has no associated fields, methods, or constants. It is merely the "greatest" value that can be represented in the database.

Hinweis: MongoMaxKey is used internally by MongoDB for indexing and sharding. There is generally no reason to use this class in an application.

Klassenbeschreibung

MongoMaxKey {
}

Using MongoMaxKey as a value

<?php

$collection->insert(array("task" => "dishes", "doBy" => new MongoMaxKey));
$collection->insert(array("task" => "staff meeting", "doBy" => new MongoDate(strtotime("+4 days"))));

$cursor = $collection->find()->sort(array("doBy" => 1));

?>

The cursor will return the staff meeting document followed by the dishes document. The dishes document will always be returned last, regardless of what else is added to the collection (unless other documents are added with MongoMaxKey in their "doBy" field).

Siehe auch

  • MongoMinKey


The MongoTimestamp class

(PECL mongo >=1.0.1)

Warnung

This extension that defines this class is deprecated. Instead, the MongoDB extension should be used. Alternatives to this class include:

  • MongoDB\BSON\Timestamp

Einführung

MongoTimestamp is an internal type used by MongoDB for replication and sharding. It consists of a 4-byte timestamp (i.e. seconds since the epoch) and a 4-byte increment. This type is not intended for storing time or date values (e.g. a "createdAt" field on a document).

Hinweis: Unless you are writing an application that interacts with MongoDB's replication oplog or sharding internals: stop, go directly to MongoDate, do not pass go, and do not collect 200 dollars. This is not the class you are looking for.

Klassenbeschreibung

MongoTimestamp {
/* Fields */
public int $sec = 0 ;
public int $inc = 0 ;
/* Methoden */
public __construct ( int $sec = time() , int $inc = ? )
public __toString ( ) : string
}

Inhaltsverzeichnis

  • MongoTimestamp::__construct — Creates a new timestamp
  • MongoTimestamp::__toString — Returns a string representation of this timestamp


Creates a new timestamp

  • « MongoTimestamp
  • MongoTimestamp::__toString »
  • PHP Manual
  • MongoTimestamp
  • Creates a new timestamp

MongoTimestamp::__construct

(PECL mongo >= 1.0.1)

MongoTimestamp::__construct — Creates a new timestamp

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\BSON\Timestamp::__construct()

Beschreibung

public MongoTimestamp::__construct ( int $sec = time() , int $inc = ? )

Creates a new timestamp. If no parameters are given, the current time is used and the increment is automatically provided. The increment is set to 0 when the module is loaded and is incremented every time this constructor is called (without the $inc parameter passed in).

Parameter-Liste

sec

Number of seconds since the epoch (i.e. 1 Jan 1970 00:00:00.000 UTC).

inc

Increment.

Rückgabewerte

Returns this new timestamp.

Siehe auch

  • MongoTimestamp::__toString() - Returns a string representation of this timestamp


Returns a string representation of this timestamp

  • « MongoTimestamp::__construct
  • GridFS Classes »
  • PHP Manual
  • MongoTimestamp
  • Returns a string representation of this timestamp

MongoTimestamp::__toString

(PECL mongo >= 1.0.1)

MongoTimestamp::__toString — Returns a string representation of this timestamp

This extension that defines this method is deprecated. Instead, the MongoDB extension should be used. Alternatives to this method include:

  • MongoDB\BSON\Timestamp::__toString()

Beschreibung

public MongoTimestamp::__toString ( ) : string

Returns the "sec" field of this timestamp.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The seconds since epoch represented by this timestamp.


  • « MongoTimestamp::__toString
  • MongoGridFS »
  • PHP Manual
  • Mongo
  • GridFS Classes

GridFS Classes

Inhaltsverzeichnis

  • MongoGridFS
  • MongoGridFSFile
  • MongoGridFSCursor


The MongoGridFS class

(PECL mongo >=0.9.0)

Einführung

Utilities for storing and retrieving files from the database.

GridFS is a storage specification all supported drivers implement. Basically, it defines two collections: files, for file metadata, and chunks, for file content. If the file is large, it will automatically be split into smaller chunks and each chunk will be saved as a document in the chunks collection.

Each document in the files collection contains the filename, upload date, and md5 hash. It also contains a unique _id field, which can be used to query the chunks collection for the file's content. Each document in the chunks collection contains a chunk of binary data, a files_id field that matches its file's _id, and the position of this chunk in the overall file.

For example, the files document is something like:

<?php
array("_id" => 123456789, "filename" => "foo.txt", "chunkSize" => 3, "length" => 12);
?>
and the chunks documents look like:
<?php
array("files_id" => 123456789, "n" => 0, "data" => new MongoBinData("abc"));
array("files_id" => 123456789, "n" => 1, "data" => new MongoBinData("def"));
array("files_id" => 123456789, "n" => 2, "data" => new MongoBinData("ghi"));
array("files_id" => 123456789, "n" => 3, "data" => new MongoBinData("jkl"));
?>
Of course, the default chunk size is thousands of bytes, but that makes an unwieldy example.

Inter-Language Compatibility

You should be able to use any files created by MongoGridFS with any other drivers, and vice versa. However, some drivers expect that all metadata associated with a file be in a "metadata" field. If you're going to be using other languages, it's a good idea to wrap info you might want them to see in a "metadata" field. For example, instead of:

<?php

$grid->storeFile("somefile.txt", array("date" => new MongoDate()));

?>

use something like:

<?php

$grid->storeFile("somefile.txt", array("metadata" => array("date" => new MongoDate())));

?>

The MongoGridFS Family

MongoGridFS represents the files and chunks collections. MongoGridFS extends MongoCollection, and an instance of MongoGridFS has access to all of MongoCollection methods, which act on the files collection:

<?php

$grid = $db->getGridFS();
$grid->update(array("filename" => "foo"), $newObj); // update on the files collection

?>

Another example of manipulating metadata:

<?php

// save a file
$id = $grid->storeFile("game.tgz");
$game = $grid->findOne();

// add a downloads counter
$game->file['downloads'] = 0;
$grid->save($game->file);

// increment the counter
$grid->update(array("_id" => $id), array('$inc' => array("downloads" => 1)));

?>

You can also access the chunks collection from an instance of MongoGridFS:

<?php

  $chunks = $grid->chunks; // $chunks is a normal MongoCollection
$chunks->insert(array("x" => 4));

?>

There are some methods for MongoGridFS with the same name as MongoCollection methods, that behave slightly differently. For example, MongoGridFS::remove() will remove any objects that match the criteria from the files collection and their content from the chunks collection.

To store something new in GridFS, there are a couple options. If you have a filename, you can say:

<?php

$grid->storeFile($filename, array("whatever" => "metadata", "you" => "want"));

?>

If you have a string of bytes that isn't a file, you can also store that using MongoGridFS::storeBytes():

<?php

$grid->storeBytes($bytes, array("whatever" => "metadata", "you" => "want"));

?>

Querying a MongoGridFS collection returns a MongoGridFSCursor, which behaves like a normal MongoCursor except that it returns MongoGridFSFiles instead of associative arrays.

MongoGridFSFiles can be written back to disc using MongoGridFSFile::write() or retrieved in memory using MongoGridFSFile::getBytes(). There is currently no method that automatically streams chunks, but it would be fairly easy to write by querying the $grid->chunks collection.

MongoGridFSFile objects contain a field file which contains any file metadata.

Klassenbeschreibung

extends MongoCollection {
/* Fields */
public MongoCollection $chunks = null ;
protected string $filesName = null ;
protected string $chunksName = null ;
/* Methoden */
public __construct ( MongoDB $db , string $prefix = "fs" , mixed $chunks = "fs" )
public delete ( mixed $id ) : bool|array
public drop ( ) : array
public find ( array $query = array() , array $fields = array() ) : MongoGridFSCursor
public findOne ( mixed $query = array() , mixed $fields = array() ) : MongoGridFSFile
public get ( mixed $id ) : MongoGridFSFile
public put ( string $filename , array $metadata = array() , array $options = array() ) : mixed
public remove ( array $criteria = array() , array $options = array() ) : bool|array
public storeBytes ( string $bytes , array $metadata = array() , array $options = array() ) : mixed
public storeFile ( string|resource $filename , array $metadata = array() , array $options = array() ) : mixed
public storeUpload ( string $name , array $metadata = ? ) : mixed
}

Siehe auch

  • MongoDB core docs on » GridFS
  • LightCube Solutions blog post on » saving user uploads
  • LightCube Solutions blog post on » adding metadata to files

Inhaltsverzeichnis

  • MongoGridFS::__construct — Creates new file collections
  • MongoGridFS::delete — Remove a file and its chunks from the database
  • MongoGridFS::drop — Drops the files and chunks collections
  • MongoGridFS::find — Queries for files
  • MongoGridFS::findOne — Returns a single file matching the criteria
  • MongoGridFS::get — Ruft eine Datei von der Datenbank ab.
  • MongoGridFS::put — Speichert eine Datei in der Datenbank
  • MongoGridFS::remove — Remove files and their chunks from the database
  • MongoGridFS::storeBytes — Stores a string of bytes in the database
  • MongoGridFS::storeFile — Stores a file in the database
  • MongoGridFS::storeUpload — Stores an uploaded file in the database


Creates new file collections

  • « MongoGridFS
  • MongoGridFS::delete »
  • PHP Manual
  • MongoGridFS
  • Creates new file collections

MongoGridFS::__construct

(PECL mongo >=0.9.0)

MongoGridFS::__construct — Creates new file collections

Beschreibung

public MongoGridFS::__construct ( MongoDB $db , string $prefix = "fs" , mixed $chunks = "fs" )

Files as stored across two collections, the first containing file meta information, the second containing chunks of the actual file. By default, fs.files and fs.chunks are the collection names used.

Use one argument to specify a prefix other than "fs":

$fs = new MongoGridFS($db, "myfiles");
uses myfiles.files and myfiles.chunks collections.

Parameter-Liste

db

Database.

files

Optional collection name prefix.


Remove a file and its chunks from the database

  • « MongoGridFS::__construct
  • MongoGridFS::drop »
  • PHP Manual
  • MongoGridFS
  • Remove a file and its chunks from the database

MongoGridFS::delete

(PECL mongo >=1.0.8)

MongoGridFS::delete — Remove a file and its chunks from the database

Beschreibung

public MongoGridFS::delete ( mixed $id ) : bool|array

Hinweis:

MongoGridFS::delete() is a convenience method for calling MongoGridFS::remove() with specific criteria and default options parameters.

Parameter-Liste

id

_id of the file to remove.

Rückgabewerte

Returns an array containing the status of the removal (with respect to the files collection) if a write concern is applied. Otherwise, returns true.

Fields in the status array are described in the documentation for MongoCollection::insert().

Fehler/Exceptions

Throws MongoCursorException if the "w" option is set and the write fails.

Throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.


Drops the files and chunks collections

  • « MongoGridFS::delete
  • MongoGridFS::find »
  • PHP Manual
  • MongoGridFS
  • Drops the files and chunks collections

MongoGridFS::drop

(PECL mongo >=0.9.0)

MongoGridFS::drop — Drops the files and chunks collections

Beschreibung

public MongoGridFS::drop ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The database response.


Queries for files

  • « MongoGridFS::drop
  • MongoGridFS::findOne »
  • PHP Manual
  • MongoGridFS
  • Queries for files

MongoGridFS::find

(PECL mongo >=0.9.0)

MongoGridFS::find — Queries for files

Beschreibung

public MongoGridFS::find
 ( array $query = array()
, array $fields = array()
) : MongoGridFSCursor

Parameter-Liste

query

The query.

fields

Fields to return.

Rückgabewerte

A MongoGridFSCursor.


Returns a single file matching the criteria

  • « MongoGridFS::find
  • MongoGridFS::get »
  • PHP Manual
  • MongoGridFS
  • Returns a single file matching the criteria

MongoGridFS::findOne

(PECL mongo >=0.9.0)

MongoGridFS::findOne — Returns a single file matching the criteria

Beschreibung

public MongoGridFS::findOne
 ( mixed $query = array()
, mixed $fields = array()
) : MongoGridFSFile

Parameter-Liste

query

The filename or criteria for which to search.

Rückgabewerte

Returns a MongoGridFSFile or null.

Beispiele

Beispiel #1 MongoGridFS::findOne() example

Example demonstrating how to find a single file from the MongoGridFS.

<?php

$downloads = $mongo->my_db->getGridFS('downloads');

$downloads->storeFile('filename.tgz');

$download = $downloads->findOne('filename.tgz'); // instance of MongoGridFSFile

print_r($download);
?>

See MongoGridFSFile for more information about how to work with files.

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

MongoGridFSFile Object
(
    [file] => Array
        (
            [_id] => MongoId Object
                (
                )

            [filename] => filename.tgz
            [uploadDate] => MongoDate Object
                (
                    [sec] => 1274288014
                    [usec] => 467000
                )

            [chunkSize] => 262144
            [md5] => d41d8cd98f00b204e9800998ecf8427e
        )

    [gridfs:protected] => MongoGridFS Object
        (
            [chunks] => MongoCollection Object
                (
                )

            [filesName:protected] => downloads.files
            [chunksName:protected] => downloads.chunks
        )

)


Ruft eine Datei von der Datenbank ab.

  • « MongoGridFS::findOne
  • MongoGridFS::put »
  • PHP Manual
  • MongoGridFS
  • Ruft eine Datei von der Datenbank ab.

MongoGridFS::get

(PECL mongo >=1.0.8)

MongoGridFS::get — Ruft eine Datei von der Datenbank ab.

Beschreibung

public MongoGridFS::get ( mixed $id ) : MongoGridFSFile

Parameter-Liste

id

_id der gesuchten Datei.

Rückgabewerte

Gibt die Datei zurück wenn sie vorhanden ist, ansonsten null.


Speichert eine Datei in der Datenbank

  • « MongoGridFS::get
  • MongoGridFS::remove »
  • PHP Manual
  • MongoGridFS
  • Speichert eine Datei in der Datenbank

MongoGridFS::put

(PECL mongo >=1.0.8)

MongoGridFS::put — Speichert eine Datei in der Datenbank

Beschreibung

public MongoGridFS::put ( string $filename , array $metadata = array() , array $options = array() ) : mixed

Hinweis:

MongoGridFS::put() ist ein Alias von MongoGridFS::storeFile().

Parameter-Liste

filename

Name der Datei die gespeichert werden soll.

metadata

Metadaten Felder die noch hinzugefügt werden sollen.

Hinweis:

These fields may also overwrite those that would be created automatically by the driver, as described in the MongoDB core documentation for the » files collection. Some practical use cases for this behavior would be to specify a custom chunkSize or _id for the file.

options

Ein Array mit Optionen für die Einfügeoperation, die gegen die chunks and files Kollektionen durchgeführt werden. Dokumentation für diese Option kann MongoCollection::insert() entnommen werden.

Rückgabewerte

Returns the _id of the saved file document. This will be a generated MongoId unless an _id was explicitly specified in the metadata parameter.

Fehler/Exceptions

Wirft MongoGridFSException, wenn ein Fehler beim Lesen von filename, oder beim Einfügen in die chunks oder files Kollektionen auftrat.

Siehe auch

  • MongoGridFS::storeBytes() - Stores a string of bytes in the database
  • MongoGridFS::storeFile() - Stores a file in the database
  • MongoGridFS::storeUpload() - Stores an uploaded file in the database
  • MongoDB core docs on » GridFS


Remove files and their chunks from the database

  • « MongoGridFS::put
  • MongoGridFS::storeBytes »
  • PHP Manual
  • MongoGridFS
  • Remove files and their chunks from the database

MongoGridFS::remove

(PECL mongo >=0.9.0)

MongoGridFS::remove — Remove files and their chunks from the database

Beschreibung

public MongoGridFS::remove
 ( array $criteria = array()
, array $options = array()
) : bool|array

Parameter-Liste

criteria

The filename or criteria for which to search.

options

An array of options for the remove operations executed against the chunks and files collections. See MongoCollection::remove() for documentation on these options.

Rückgabewerte

Returns an array containing the status of the removal (with respect to the files collection) if the "w" option is set. Otherwise, returns true.

Fields in the status array are described in the documentation for MongoCollection::insert().

Fehler/Exceptions

Throws MongoCursorException if the "w" option is set and the write fails.

Throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.


Stores a string of bytes in the database

  • « MongoGridFS::remove
  • MongoGridFS::storeFile »
  • PHP Manual
  • MongoGridFS
  • Stores a string of bytes in the database

MongoGridFS::storeBytes

(PECL mongo >=0.9.2)

MongoGridFS::storeBytes — Stores a string of bytes in the database

Beschreibung

public MongoGridFS::storeBytes ( string $bytes , array $metadata = array() , array $options = array() ) : mixed

Parameter-Liste

bytes

String of bytes to store.

metadata

Other metadata fields to include in the file document.

Hinweis:

These fields may also overwrite those that would be created automatically by the driver, as described in the MongoDB core documentation for the » files collection. Some practical use cases for this behavior would be to specify a custom chunkSize or _id for the file.

options

An array of options for the insert operations executed against the chunks and files collections. See MongoCollection::insert() for documentation on these these options.

Rückgabewerte

Returns the _id of the saved file document. This will be a generated MongoId unless an _id was explicitly specified in the metadata parameter.

Fehler/Exceptions

Throws MongoGridFSException if there is an error inserting into the chunks or files collections.

Beispiele

Beispiel #1 MongoGridFS::storeBytes() with additional metadata

<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();

$bytes = 'abcdefghijklmnopqrstuvwxyz';
$id = $gridfs->storeBytes($bytes, array('_id' => 'alphabet'));
$gridfsFile = $gridfs->get($id);

var_dump($gridfsFile->file);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(7) {
  ["_id"]=>
  string(8) "alphabet"
  ["uploadDate"]=>
  object(MongoDate)#7 (0) {
  }
  ["length"]=>
  int(26)
  ["chunkSize"]=>
  int(262144)
  ["md5"]=>
  string(32) "c3fcd3d76192e4007dfb496cca67e13b"
}

Siehe auch

  • MongoGridFS::put() - Speichert eine Datei in der Datenbank
  • MongoGridFS::storeFile() - Stores a file in the database
  • MongoGridFS::storeUpload() - Stores an uploaded file in the database
  • MongoDB core docs on » GridFS


Stores a file in the database

  • « MongoGridFS::storeBytes
  • MongoGridFS::storeUpload »
  • PHP Manual
  • MongoGridFS
  • Stores a file in the database

MongoGridFS::storeFile

(PECL mongo >=0.9.0)

MongoGridFS::storeFile — Stores a file in the database

Beschreibung

public MongoGridFS::storeFile ( string|resource $filename , array $metadata = array() , array $options = array() ) : mixed

Parameter-Liste

filename

Name of the file or a readable stream to store.

metadata

Other metadata fields to include in the file document.

Hinweis:

These fields may also overwrite those that would be created automatically by the driver, as described in the MongoDB core documentation for the » files collection. Some practical use cases for this behavior would be to specify a custom chunkSize or _id for the file.

options

An array of options for the insert operations executed against the chunks and files collections. See MongoCollection::insert() for documentation on these these options.

Rückgabewerte

Returns the _id of the saved file document. This will be a generated MongoId unless an _id was explicitly specified in the metadata parameter.

Fehler/Exceptions

Throws MongoGridFSException if there is an error reading filename or inserting into the chunks or files collections.

Beispiele

Beispiel #1 MongoGridFS::storeFile() with additional metadata

<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();

$id = $gridfs->storeFile('example.txt', array('contentType' => 'plain/text'));
$gridfsFile = $gridfs->get($id);

var_dump($gridfsFile->file);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(7) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["contentType"]=>
  string(10) "plain/text"
  ["filename"]=>
  string(11) "example.txt"
  ["uploadDate"]=>
  object(MongoDate)#7 (0) {
  }
  ["length"]=>
  int(26)
  ["chunkSize"]=>
  int(262144)
  ["md5"]=>
  string(32) "c3fcd3d76192e4007dfb496cca67e13b"
}

Siehe auch

  • MongoGridFS::put() - Speichert eine Datei in der Datenbank
  • MongoGridFS::storeBytes() - Stores a string of bytes in the database
  • MongoGridFS::storeUpload() - Stores an uploaded file in the database
  • MongoDB core docs on » GridFS


Stores an uploaded file in the database

  • « MongoGridFS::storeFile
  • MongoGridFSFile »
  • PHP Manual
  • MongoGridFS
  • Stores an uploaded file in the database

MongoGridFS::storeUpload

(PECL mongo >=0.9.0)

MongoGridFS::storeUpload — Stores an uploaded file in the database

Beschreibung

public MongoGridFS::storeUpload ( string $name , array $metadata = ? ) : mixed

Parameter-Liste

name

The name of the uploaded file(s) to store. This should correspond to the file field's name attribute in the HTML form.

metadata

Other metadata fields to include in the file document.

Hinweis:

These fields may also overwrite those that would be created automatically by the driver, as described in the MongoDB core documentation for the » files collection. Some practical use cases for this behavior would be to specify a custom chunkSize or _id for the file.

Hinweis:

The filename field will be populated with the client's filename (e.g. $_FILES['foo']['name']).

Rückgabewerte

Returns the _id of the saved file document. This will be a generated MongoId unless an _id was explicitly specified in the metadata parameter.

Hinweis:

If multiple files are uploaded using the same field name, this method will not return anything; however, the files themselves will still be processed.

Fehler/Exceptions

Throws MongoGridFSException if there is an error reading the uploaded file(s) or inserting into the chunks or files collections.

Changelog

Version | Beschreibung
PECL mongo 1.2.5 | Changed second parameter to an array of metadata. Pre-1.2.5, the second parameter was an optional string overriding the filename.

Beispiele

Beispiel #1 MongoGridFS::storeUpload() HTML form example

Suppose you have the following HTML form:

<form method="POST" enctype="multipart/form-data">
    <label for="username">Username:</label>
    <input type="text" name="username" id="username" />

    <label for="pic">Please upload a profile picture:</label>
    <input type="file" name="pic" id="pic" />

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

If you wanted to store the uploaded image in MongoDB, you could do the following in the script handling the form submission:

<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();

$gridfs->storeUpload('pic', array('username' => $_POST['username']));
?>

Siehe auch

  • MongoGridFS::put() - Speichert eine Datei in der Datenbank
  • MongoGridFS::storeBytes() - Stores a string of bytes in the database
  • MongoGridFS::storeFile() - Stores a file in the database
  • MongoDB core docs on » GridFS


The MongoGridFSFile class

(PECL mongo >=0.9.0)

Einführung

A database file object.

Klassenbeschreibung

MongoGridFSFile {
/* Fields */
public array $file = null ;
protected MongoGridFS $gridfs = null ;
/* Methoden */
public MongoGridfsFile::__construct ( MongoGridFS $gridfs , array $file )
public getBytes ( ) : string
public getFilename ( ) : string
public getResource ( ) : resource
public getSize ( ) : int
public write ( string $filename = null ) : int
}

Inhaltsverzeichnis

  • MongoGridfsFile::__construct — Create a new GridFS file
  • MongoGridFSFile::getBytes — Returns this file's contents as a string of bytes
  • MongoGridFSFile::getFilename — Returns this file's filename
  • MongoGridFSFile::getResource — Returns a resource that can be used to read the stored file
  • MongoGridFSFile::getSize — Returns this file's size
  • MongoGridFSFile::write — Writes this file to the filesystem


Create a new GridFS file

  • « MongoGridFSFile
  • MongoGridFSFile::getBytes »
  • PHP Manual
  • MongoGridFSFile
  • Create a new GridFS file

MongoGridfsFile::__construct

(PECL mongo >=0.9.0)

MongoGridfsFile::__construct — Create a new GridFS file

Beschreibung

public MongoGridfsFile::__construct ( MongoGridFS $gridfs , array $file )

Parameter-Liste

gridfs

The parent MongoGridFS instance.

file

A file from the database.

Rückgabewerte

Returns a new MongoGridFSFile.


Returns this file's contents as a string of bytes

  • « MongoGridfsFile::__construct
  • MongoGridFSFile::getFilename »
  • PHP Manual
  • MongoGridFSFile
  • Returns this file's contents as a string of bytes

MongoGridFSFile::getBytes

(PECL mongo >=0.9.0)

MongoGridFSFile::getBytes — Returns this file's contents as a string of bytes

Beschreibung

public MongoGridFSFile::getBytes ( ) : string

Warning: this will load the file into memory. If the file is bigger than your memory, this will cause problems!

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string of the bytes in the file.

Beispiele

Beispiel #1 MongoGridFSFile::getBytes() example

<?php

$images = $db->my_db->getGridFS('images');

$image = $images->findOne('jwage.png');

header('Content-type: image/png;');
echo $image->getBytes();
?>


Returns this file's filename

  • « MongoGridFSFile::getBytes
  • MongoGridFSFile::getResource »
  • PHP Manual
  • MongoGridFSFile
  • Returns this file's filename

MongoGridFSFile::getFilename

(PECL mongo >=0.9.0)

MongoGridFSFile::getFilename — Returns this file's filename

Beschreibung

public MongoGridFSFile::getFilename ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the filename.


Returns a resource that can be used to read the stored file

  • « MongoGridFSFile::getFilename
  • MongoGridFSFile::getSize »
  • PHP Manual
  • MongoGridFSFile
  • Returns a resource that can be used to read the stored file

MongoGridFSFile::getResource

(PECL mongo >=1.3.0)

MongoGridFSFile::getResource — Returns a resource that can be used to read the stored file

Beschreibung

public MongoGridFSFile::getResource ( ) : resource

This method returns a stream resource that can be used with all file functions in PHP that deal with reading files. The contents of the file are pulled out of MongoDB on the fly, so that the whole file does not have to be loaded into memory first.

At most two GridFSFile chunks will be loaded in memory.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a resource that can be used to read the file with

Beispiele

Beispiel #1 MongoGridFSFile::getResource() example

<?php
$m = new Mongo;
$images = $m->my_db->getGridFS('images');

$image = $images->findOne('mongo.png');

header('Content-type: image/png;');
$stream = $image->getResource();

while (!feof($stream)) {
    echo fread($stream, 8192);
}
?>


Returns this file's size

  • « MongoGridFSFile::getResource
  • MongoGridFSFile::write »
  • PHP Manual
  • MongoGridFSFile
  • Returns this file's size

MongoGridFSFile::getSize

(PECL mongo >=0.9.0)

MongoGridFSFile::getSize — Returns this file's size

Beschreibung

public MongoGridFSFile::getSize ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns this file's size


Writes this file to the filesystem

  • « MongoGridFSFile::getSize
  • MongoGridFSCursor »
  • PHP Manual
  • MongoGridFSFile
  • Writes this file to the filesystem

MongoGridFSFile::write

(PECL mongo >=0.9.0)

MongoGridFSFile::write — Writes this file to the filesystem

Beschreibung

public MongoGridFSFile::write ( string $filename = null ) : int

Parameter-Liste

filename

The location to which to write the file. If none is given, the stored filename will be used.

Rückgabewerte

Returns the number of bytes written.

Beispiele

Beispiel #1 MongoGridFSFile::write() example

<?php

$images = $db->my_db->getGridFS('images');

$image = $images->findOne('jwage.png');
$image->write('/path/to/write/jwage.png');
?>


The MongoGridFSCursor class

(PECL mongo >=0.9.0)

Einführung

Cursor for database file results.

Klassenbeschreibung

extends MongoCursor {
/* Fields */
protected MongoGridFS $gridfs = null ;
/* Methoden */
public __construct ( MongoGridFS $gridfs , resource $connection , string $ns , array $query , array $fields )
public current ( ) : MongoGridFSFile
public getNext ( ) : MongoGridFSFile
public key ( ) : string
}

Inhaltsverzeichnis

  • MongoGridFSCursor::__construct — Create a new cursor
  • MongoGridFSCursor::current — Returns the current file
  • MongoGridFSCursor::getNext — Return the next file to which this cursor points, and advance the cursor
  • MongoGridFSCursor::key — Returns the current result's filename


Create a new cursor

  • « MongoGridFSCursor
  • MongoGridFSCursor::current »
  • PHP Manual
  • MongoGridFSCursor
  • Create a new cursor

MongoGridFSCursor::__construct

(PECL mongo >=0.9.0)

MongoGridFSCursor::__construct — Create a new cursor

Beschreibung

public MongoGridFSCursor::__construct ( MongoGridFS $gridfs , resource $connection , string $ns , array $query , array $fields )

Parameter-Liste

gridfs

Related GridFS collection.

connection

Database connection.

ns

Full name of database and collection.

query

Database query.

fields

Fields to return.

Rückgabewerte

Returns the new cursor.


Returns the current file

  • « MongoGridFSCursor::__construct
  • MongoGridFSCursor::getNext »
  • PHP Manual
  • MongoGridFSCursor
  • Returns the current file

MongoGridFSCursor::current

(PECL mongo >=0.9.0)

MongoGridFSCursor::current — Returns the current file

Beschreibung

public MongoGridFSCursor::current ( ) : MongoGridFSFile

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current file.


Return the next file to which this cursor points, and advance the cursor

  • « MongoGridFSCursor::current
  • MongoGridFSCursor::key »
  • PHP Manual
  • MongoGridFSCursor
  • Return the next file to which this cursor points, and advance the cursor

MongoGridFSCursor::getNext

(PECL mongo >=0.9.0)

MongoGridFSCursor::getNext — Return the next file to which this cursor points, and advance the cursor

Beschreibung

public MongoGridFSCursor::getNext ( ) : MongoGridFSFile

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the next file.


Returns the current result's filename

  • « MongoGridFSCursor::getNext
  • Batch Classes »
  • PHP Manual
  • MongoGridFSCursor
  • Returns the current result's filename

MongoGridFSCursor::key

(PECL mongo >=0.9.0)

MongoGridFSCursor::key — Returns the current result's filename

Beschreibung

public MongoGridFSCursor::key ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current result's _id as a string.

Changelog

Version | Beschreibung
PECL mongo 1.3.0 | The document's _id is returned as a string value, since the key should be unique. Pre-1.3.0, filename was returned.


Batch Classes

Inhaltsverzeichnis

  • MongoWriteBatch
  • MongoInsertBatch
  • MongoUpdateBatch
  • MongoDeleteBatch


The MongoWriteBatch class

(PECL mongo >=1.5.0)

Einführung

MongoWriteBatch is the base class for the MongoInsertBatch, MongoUpdateBatch and MongoDeleteBatch classes.

MongoWriteBatch allows you to "batch up" multiple operations (of same type) and shipping them all to MongoDB at the same time. This can be especially useful when operating on many documents at the same time to reduce roundtrips.

Prior to version 1.5.0 of the driver it was possible to use MongoCollection::batchInsert(), however, as of 1.5.0 that method is now discouraged.

Note: This class is only available when talking to MongoDB 2.6.0 (and later) servers. It will throw MongoProtocolException if attempting to use it on older MongoDB servers.

Klassenbeschreibung

MongoWriteBatch {
/* Konstanten */
const int COMMAND_INSERT = 1 ;
const int COMMAND_UPDATE = 2 ;
const int COMMAND_DELETE = 3 ;
/* Methoden */
protected __construct ( MongoCollection $collection , string $batch_type = ? , array $write_options = ? )
public add ( array $item ) : bool
final public execute ( array $write_options ) : array
}

MongoWriteBatch types

MongoWriteBatch::COMMAND_INSERT

Create an Insert Write Batch

MongoWriteBatch::COMMAND_UPDATE

Create an Update Write Batch

MongoWriteBatch::COMMAND_DELETE

Create an Delete Write Batch

Beschreibung

When executing a batch by calling MongoWriteBatch::execute(), MongoWriteBatch will send up to maxWriteBatchSize (defaults to 1000) documents or maxBsonObjectSize (defaults to 16777216 bytes), whichever comes first.

Hinweis:

Documents will never be partially transferred. When adding documents to the batch, that overflows the limit, a new batch will be created and the document put into the new batch.

Fehler/Exceptions

  • Exception on parameter parsing failures
  • Exception on argument validation errors (e.g. missing keys)
  • MongoProtocolException when talking to MongoDB server older then 2.6.0.
  • MongoProtocolException on socket errors.
  • MongoWriteConcernException when a write fails due to WriteConcerns

Beispiele

Beispiel #1 MongoWriteBatch example

Adding documents to a Insert batch and then execute it

<?php
$mc = new MongoClient("localhost");

$collection = $mc->selectCollection("test", "test");

$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");

$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
    $batch->add($document);
}
$retval = $batch->execute(array("w" => 1));
var_dump($retval);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["nInserted"]=>
  int(3)
  ["ok"]=>
  bool(true)
}

Inhaltsverzeichnis

  • MongoWriteBatch::add — Adds a write operation to a batch
  • MongoWriteBatch::__construct — Creates a new batch of write operations
  • MongoWriteBatch::execute — Executes a batch of write operations


Adds a write operation to a batch

  • « MongoWriteBatch
  • MongoWriteBatch::__construct »
  • PHP Manual
  • MongoWriteBatch
  • Adds a write operation to a batch

MongoWriteBatch::add

(PECL mongo >= 1.5.0)

MongoWriteBatch::add — Adds a write operation to a batch

Beschreibung

public MongoWriteBatch::add ( array $item ) : bool

Adds a write operation to the batch.

If $item causes the batch to exceed the maxWriteBatchSize or maxBsonObjectSize limits, the driver will internally split the batches into multiple write commands upon calling MongoWriteBatch::execute().

Parameter-Liste

item

An array that describes a write operation. The structure of this value depends on the batch's operation type.

Batch type | Argument expectation
MongoWriteBatch::COMMAND_INSERT | The document to add.
MongoWriteBatch::COMMAND_UPDATE

Raw update operation.

Required keys are "q" and "u", which correspond to the $criteria and $new_object parameters of MongoCollection::update(), respectively.

Optional keys are "multi" and "upsert", which correspond to the "multiple" and "upsert" options for MongoCollection::update(), respectively. If unspecified, both options default to false.
MongoWriteBatch::COMMAND_DELETE

Raw delete operation.

Required keys are: "q" and "limit", which correspond to the $criteria parameter and "justOne" option of MongoCollection::remove(), respectively.

The "limit" option is an int; however, MongoDB only supports 0 (i.e. remove all matching documents) and 1 (i.e. remove at most one matching document) at this time.

Rückgabewerte

Returns true on success and throws an exception on failure.

Fehler/Exceptions

  • Exception on parameter parsing failures
  • Exception on argument validation errors (e.g. missing keys)

Beispiele

Beispiel #1 MongoWriteBatch::add() example

Batching up multiple insert operations

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");

$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
    $batch->add($document);
}
$batch->execute(array("w" => 1));
?>

Beispiel #2 MongoWriteBatch::add() example

Batching up multiple update operations

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "u" => array('$set' => array("try" => 1)),
    "multi"  => false, /* default value */
    "upsert" => false, /* default value */
);
$item2 = array(
    "q" => array("is" => "working"),
    "u" => array('$set' => array("try" => 2)),
    "multi" => true,
);
$item3 = array(
    "q" => array("created" => "new-document"),
    "u" => array('$set' => array("try" => 3)),
    "upsert" => true,
);

$batch = new MongoUpdateBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->add($item3);
$batch->execute(array("w" => 1));

?>

Beispiel #3 MongoWriteBatch::add() example

Batching up multiple delete operations

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "limit" => 1,
);
$item2 = array(
    "q" => array("try" => 3),
    "limit" => 1,
);

$batch = new MongoDeleteBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->execute(array("w" => 1));
?>


Creates a new batch of write operations

  • « MongoWriteBatch::add
  • MongoWriteBatch::execute »
  • PHP Manual
  • MongoWriteBatch
  • Creates a new batch of write operations

MongoWriteBatch::__construct

(PECL mongo >= 1.5.0)

MongoWriteBatch::__construct — Creates a new batch of write operations

Beschreibung

protected MongoWriteBatch::__construct ( MongoCollection $collection , string $batch_type = ? , array $write_options = ? )

Constructs a new MongoWriteBatch.

Hinweis:

This is a protected constructor. Please use one of the classes inheriting MongoWriteBatch.

Parameter-Liste

collection

The MongoCollection to execute the batch on. Its write concern will be copied and used as the default write concern if none is given as $write_options or during MongoWriteBatch::execute().

batch_type

One of:

  • 0 - make an MongoWriteBatch::COMMAND_INSERT batch
  • 1 - make an MongoWriteBatch::COMMAND_UPDATE batch
  • 2 - make a MongoWriteBatch::COMMAND_DELETE batch

write_options

An array of Write Options.

key | value meaning
w (int|string) | Write concern value
wtimeout (int) | Maximum time to wait for replication
ordered | Determins if MongoDB must apply this batch in order (sequentally, one item at a time) or can rearrange it. Defaults to true
j (bool) | Wait for journaling on the primary. This value is discouraged, use WriteConcern instead.
fsync (bool) | Wait for fsync on the primary. This value is discouraged, use WriteConcern instead.

Rückgabewerte

A new MongoWriteBatch of type batch_type.

Siehe auch

  • MongoInsertBatch
  • MongoUpdateBatch
  • MongoDeleteBatch


Executes a batch of write operations

  • « MongoWriteBatch::__construct
  • MongoInsertBatch »
  • PHP Manual
  • MongoWriteBatch
  • Executes a batch of write operations

MongoWriteBatch::execute

(PECL mongo >= 1.5.0)

MongoWriteBatch::execute — Executes a batch of write operations

Beschreibung

final public MongoWriteBatch::execute ( array $write_options ) : array

Executes the batch of write operations.

Parameter-Liste

write_options

See MongoWriteBatch::__construct.

Rückgabewerte

Returns an array containing statistical information for the full batch. If the batch had to be split into multiple batches, the return value will aggregate the values from individual batches and return only the totals.

If the batch was empty, an array containing only the 'ok' field is returned (as true) although nothing will be shipped over the wire (NOOP).

Array key | Value meaning | Returned for batch type
nInserted | Number of inserted documents | MongoWriteBatch::COMMAND_INSERT batch
nMatched | Number of documents matching the query criteria | MongoWriteBatch::COMMAND_UPDATE batch
nModified | Number of documents actually needed to be modied | MongoWriteBatch::COMMAND_UPDATE batch
nUpserted | Number of upserted documents | MongoWriteBatch::COMMAND_UPDATE batch
nRemoved | Number of documents removed | MongoWriteBatch::COMMAND_DELETE batch
ok | Command success indicator | All

Fehler/Exceptions

A MongoWriteConcernException exception is thrown on failure.

Beispiele

Beispiel #1 MongoWriteBatch::add() example

Batching up multiple insert operations

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");

$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
    $batch->add($document);
}
$retval = $batch->execute(array("w" => 1));
var_dump($retval);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["nInserted"]=>
  int(3)
  ["ok"]=>
  bool(true)
}

Beispiel #2 MongoWriteBatch::add() example

Batching up multiple update operations

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "u" => array('$set' => array("try" => 1)),
    "multi"  => false, /* default value */
    "upsert" => false, /* default value */
);
$item2 = array(
    "q" => array("is" => "working"),
    "u" => array('$set' => array("try" => 2)),
    "multi" => true,
);
$item3 = array(
    "q" => array("created" => "new-document"),
    "u" => array('$set' => array("try" => 3)),
    "upsert" => true,
);

$batch = new MongoUpdateBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->add($item3);
$retval = $batch->execute(array("w" => 1));
var_dump($retval);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  ["nMatched"]=>
  int(18)
  ["nModified"]=>
  int(2)
  ["nUpserted"]=>
  int(0)
  ["ok"]=>
  bool(true)
}

Beispiel #3 MongoWriteBatch::add() example

Batching up multiple delete operations

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "limit" => 1,
);
$item2 = array(
    "q" => array("try" => 3),
    "limit" => 1,
);

$batch = new MongoDeleteBatch($collection);
$batch->add($item1);
$batch->add($item2);
$retval = $batch->execute(array("w" => 1));
var_dump($retval);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["nRemoved"]=>
  int(1)
  ["ok"]=>
  bool(true)
}


The MongoInsertBatch class

(PECL mongo >=1.5.0)

Einführung

Constructs a batch of INSERT operations. See MongoWriteBatch.

Klassenbeschreibung

MongoInsertBatch extends MongoWriteBatch {
/* Methoden */
public __construct ( MongoCollection $collection , array $write_options = ? )
/* Geerbte Methoden */
public MongoWriteBatch::add ( array $item ) : bool
final public MongoWriteBatch::execute ( array $write_options ) : array
}

Inhaltsverzeichnis

  • MongoInsertBatch::__construct — Description


Description

  • « MongoInsertBatch
  • MongoUpdateBatch »
  • PHP Manual
  • MongoInsertBatch
  • Description

MongoInsertBatch::__construct

(PECL mongo >= 1.5.0)

MongoInsertBatch::__construct — Description

Beschreibung

public MongoInsertBatch::__construct ( MongoCollection $collection , array $write_options = ? )

Constructs a batch of INSERT operations. See MongoWriteBatch.

Parameter-Liste

collection

The MongoCollection to execute the batch on. Its write concern will be copied and used as the default write concern if none is given as $write_options or during MongoWriteBatch::execute().

write_options

An array of Write Options.

key | value meaning
w (int|string) | Write concern value
wtimeout (int) | Maximum time to wait for replication
ordered | Determins if MongoDB must apply this batch in order (sequentally, one item at a time) or can rearrange it. Defaults to true
j (bool) | Wait for journaling on the primary. This value is discouraged, use WriteConcern instead.
fsync (bool) | Wait for fsync on the primary. This value is discouraged, use WriteConcern instead.

Rückgabewerte

A new MongoInsertBatch.


The MongoUpdateBatch class

(PECL mongo >=1.5.0)

Einführung

Constructs a batch of UPDATE operations. See MongoWriteBatch.

Klassenbeschreibung

MongoUpdateBatch extends MongoWriteBatch {
/* Methoden */
public __construct ( MongoCollection $collection , array $write_options = ? )
/* Geerbte Methoden */
public MongoWriteBatch::add ( array $item ) : bool
final public MongoWriteBatch::execute ( array $write_options ) : array
}

Inhaltsverzeichnis

  • MongoUpdateBatch::__construct — Description


Description

  • « MongoUpdateBatch
  • MongoDeleteBatch »
  • PHP Manual
  • MongoUpdateBatch
  • Description

MongoUpdateBatch::__construct

(PECL mongo >= 1.5.0)

MongoUpdateBatch::__construct — Description

Beschreibung

public MongoUpdateBatch::__construct ( MongoCollection $collection , array $write_options = ? )

Constructs a batch of UPDATE operations. See MongoWriteBatch.

Parameter-Liste

collection

The MongoCollection to execute the batch on. Its write concern will be copied and used as the default write concern if none is given as $write_options or during MongoWriteBatch::execute().

write_options

An array of Write Options.

key | value meaning
w (int|string) | Write concern value
wtimeout (int) | Maximum time to wait for replication
ordered | Determins if MongoDB must apply this batch in order (sequentally, one item at a time) or can rearrange it. Defaults to true
j (bool) | Wait for journaling on the primary. This value is discouraged, use WriteConcern instead.
fsync (bool) | Wait for fsync on the primary. This value is discouraged, use WriteConcern instead.

Rückgabewerte

A new MongoUpdateBatch.


The MongoDeleteBatch class

(PECL mongo >=1.5.0)

Einführung

Constructs a batch of DELETE operations. See MongoWriteBatch.

Klassenbeschreibung

MongoDeleteBatch extends MongoWriteBatch {
/* Methoden */
public __construct ( MongoCollection $collection , array $write_options = ? )
/* Geerbte Methoden */
public MongoWriteBatch::add ( array $item ) : bool
final public MongoWriteBatch::execute ( array $write_options ) : array
}

Inhaltsverzeichnis

  • MongoDeleteBatch::__construct — Description


Description

  • « MongoDeleteBatch
  • Miscellaneous »
  • PHP Manual
  • MongoDeleteBatch
  • Description

MongoDeleteBatch::__construct

(PECL mongo >= 1.5.0)

MongoDeleteBatch::__construct — Description

Beschreibung

public MongoDeleteBatch::__construct ( MongoCollection $collection , array $write_options = ? )

Constructs a batch of DELETE operations. See MongoWriteBatch.

Parameter-Liste

collection

The MongoCollection to execute the batch on. Its write concern will be copied and used as the default write concern if none is given as $write_options or during MongoWriteBatch::execute().

write_options

An array of Write Options.

key | value meaning
w (int|string) | Write concern value
wtimeout (int) | Maximum time to wait for replication
ordered | Determins if MongoDB must apply this batch in order (sequentally, one item at a time) or can rearrange it. Defaults to true
j (bool) | Wait for journaling on the primary. This value is discouraged, use WriteConcern instead.
fsync (bool) | Wait for fsync on the primary. This value is discouraged, use WriteConcern instead.

Rückgabewerte

A new MongoDeleteBatch.


  • « MongoDeleteBatch::__construct
  • MongoLog »
  • PHP Manual
  • Mongo
  • Miscellaneous

Miscellaneous

Inhaltsverzeichnis

  • MongoLog
  • MongoPool
  • Mongo


The MongoLog class

(PECL mongo >=1.2.3)

Einführung

Logging can be used to get detailed information about what the driver is doing. Logging is disabled by default, but this class allows you to activate specific levels of logging for various parts of the driver. Some examples:

<?php

// print every log message possible
MongoLog::setLevel(MongoLog::ALL); // all log levels
MongoLog::setModule(MongoLog::ALL); // all parts of the driver

// print significant events about replica set failover
MongoLog::setLevel(MongoLog::INFO);
MongoLog::setModule(MongoLog::RS);

// print info- and diagnostic-level events for replica sets and connections
MongoLog::setLevel(MongoLog::INFO|MongoLog::FINE);
MongoLog::setModule(MongoLog::RS|MongoLog::CON);

?>

Hinweis:

By default, MongoLog emits all log messages as PHP notices. Depending on the SAPI you use, messages may be sent to stderr (for CLI) or the web server's error log. If, after configuring MongoLog, log messages are not appearing as expected, ensure that the E_NOTICE bit is included in error_reporting and that display_errors is on.

Klassenbeschreibung

MongoLog {
/* Konstanten */
const int NONE = 0 ;
const int ALL = 31 ;
level constants {
const int WARNING = 1 ;
const int INFO = 2 ;
const int FINE = 4 ;
module constants {
const int RS = 1 ;
const int POOL = 1 ;
const int CON = 2 ;
const int IO = 4 ;
const int SERVER = 8 ;
const int PARSE = 16 ;
/* Fields */
private static int $callback ;
private static int $level ;
private static int $module ;
/* Methoden */
public static getCallback ( ) : callable
public static getLevel ( ) : int
public static getModule ( ) : int
public static setCallback ( callable $log_function ) : void
public static setLevel ( int $level ) : void
public static setModule ( int $module ) : void
}

Vordefinierte Konstanten

MongoLog Constants

These constants can be used by both MongoLog::setLevel() and MongoLog::setModule().

MongoLog::NONE
Log nothing.
MongoLog::ALL
Log everything.

MongoLog Level Constants

These constants can be used by MongoLog::setLevel().

MongoLog::WARNING
Log events that are somewhat exceptional, but not quite worthy of an actual exception (e.g. recoverable connection errors).
MongoLog::INFO
Log events that may be of interest to administrators, but are not particularly noteworthy (e.g. option parsing, authentication steps).
MongoLog::FINE
Log most events that the driver performs (e.g. server selection, socket communication). Depending on the module being logged, this can be extremely noisy and is primarily useful for debugging.

MongoLog Module Constants

These constants can be used by MongoLog::setModule().

MongoLog::CON
Log connection activity. Creating new connections, authentication, pinging, timeouts, etc.
MongoLog::IO
Log traffic to/from the database. Unless your program is trivial, this will create an enormous number of log messages.
MongoLog::PARSE
Log parsing of the connection string and options when constructing MongoClient.
MongoLog::POOL
Previously used to log connection pool activity. This option is now a deprecated alias of MongoLog::RS.
MongoLog::RS
Log replica set activity. Failovers, read preference selection, etc.
MongoLog::SERVER
Previously used to log server status changes. This option is deprecated in favor of MongoLog::RS.

Changelog

Version | Beschreibung
PECL mongo 1.3.0 | Added MongoLog::CON and deprecated MongoLog::POOL and MongoLog::SERVER.

Inhaltsverzeichnis

  • MongoLog::getCallback — Gets the previously set callback function
  • MongoLog::getLevel — Gets the level(s) currently being logged
  • MongoLog::getModule — Gets the module(s) currently being logged
  • MongoLog::setCallback — Sets a callback function to be invoked for events
  • MongoLog::setLevel — Sets the level(s) to be logged
  • MongoLog::setModule — Sets the module(s) to be logged


Gets the previously set callback function

  • « MongoLog
  • MongoLog::getLevel »
  • PHP Manual
  • MongoLog
  • Gets the previously set callback function

MongoLog::getCallback

(PECL mongo >= 1.3.0)

MongoLog::getCallback — Gets the previously set callback function

Beschreibung

public static MongoLog::getCallback ( ) : callable

Retrieves the callback function.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the callback function, or false if not set yet.

Anmerkungen

Achtung

This function is only available with PHP 5.3.0 and later.


Gets the level(s) currently being logged

  • « MongoLog::getCallback
  • MongoLog::getModule »
  • PHP Manual
  • MongoLog
  • Gets the level(s) currently being logged

MongoLog::getLevel

(PECL mongo >= 1.2.3)

MongoLog::getLevel — Gets the level(s) currently being logged

Beschreibung

public static MongoLog::getLevel ( ) : int

This function can be used to see which log levels are currently enabled. The returned integer may be compared with the MongoLog level constants using bitwise operators to check for specific log levels.

<?php

if (MongoLog::getLevel() & MongoLog::FINE) {
    echo "lots of logs\n";
}

if (MongoLog::getLevel() ^ MongoLog::NONE) {
    echo "logging, at least a little\n";
}

if (MongoLog::getLevel() == MongoLog::ALL) {
    echo "logging at the highest levels\n";
}

?>

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the level(s) currently being logged.


Gets the module(s) currently being logged

  • « MongoLog::getLevel
  • MongoLog::setCallback »
  • PHP Manual
  • MongoLog
  • Gets the module(s) currently being logged

MongoLog::getModule

(PECL mongo >= 1.2.3)

MongoLog::getModule — Gets the module(s) currently being logged

Beschreibung

public static MongoLog::getModule ( ) : int

This function can be used to see which driver modules are currently being logged. The returned integer may be compared with the MongoLog module constants using bitwise operators to check if specific modules are being logged.

<?php

if (MongoLog::getModule() & MongoLog::RS) {
    echo "logging replica sets\n";
}

if (MongoLog::getModule() ^ MongoLog::NONE) {
    echo "logging something\n";
}

if ((MongoLog::getModule() & MongoLog::IO) == 0) {
    echo "not logging io\n";
}

?>

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the module(s) currently being logged.


Sets a callback function to be invoked for events

  • « MongoLog::getModule
  • MongoLog::setLevel »
  • PHP Manual
  • MongoLog
  • Sets a callback function to be invoked for events

MongoLog::setCallback

(PECL mongo >= 1.3.0)

MongoLog::setCallback — Sets a callback function to be invoked for events

Beschreibung

public static MongoLog::setCallback ( callable $log_function ) : void

This function will set a callback function to be invoked for events in lieu of emitting of PHP notice.

Parameter-Liste

log_function

The callback function to be invoked on events. It should have the following prototype:

log_function ( int $module , int $level , string $message )
module
One of the MongoLog module constants.
level
One of the MongoLog level constants.
message
The log message itself.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 MongoLog::setCallback() example

<?php

function module2string($module)
{
    switch ($module) {
        case MongoLog::RS: return "REPLSET";
        case MongoLog::CON: return "CON";
        case MongoLog::IO: return "IO";
        case MongoLog::SERVER: return "SERVER";
        case MongoLog::PARSE: return "PARSE";
        default: return "UNKNOWN";
    }
}

function level2string($level)
{
    switch ($level) {
        case MongoLog::WARNING: return "WARN";
        case MongoLog::INFO: return "INFO";
        case MongoLog::FINE: return "FINE";
        default: return "UNKNOWN";
    }
}

function callback($module, $level, $message)
{
    echo date("Y-m-d H:i:s - ");
    printf("%s (%s): %s\n", module2string($module), level2string($level), $message);
}

MongoLog::setLevel(MongoLog::ALL);
MongoLog::setModule(MongoLog::ALL);

// We specify the function name here, but any callable (e.g. anonymous function) will work
MongoLog::setCallback("callback");

new MongoClient();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2013-07-09 09:41:42 - PARSE (INFO): Parsing localhost:27017
2013-07-09 09:41:42 - PARSE (INFO): - Found node: localhost:27017
2013-07-09 09:41:42 - PARSE (INFO): - Connection type: STANDALONE
2013-07-09 09:41:42 - CON (INFO): mongo_get_read_write_connection: finding a STANDALONE connection
2013-07-09 09:41:42 - CON (INFO): connection_create: creating new connection for localhost:27017
2013-07-09 09:41:42 - CON (INFO): stream_connect: Not establishing SSL for localhost:27017
2013-07-09 09:41:42 - CON (INFO): get_server_flags: start
2013-07-09 09:41:42 - CON (FINE): send_packet: read from header: 36
2013-07-09 09:41:42 - CON (FINE): send_packet: data_size: 95
2013-07-09 09:41:42 - CON (FINE): get_server_flags: setting maxBsonObjectSize to 16777216
2013-07-09 09:41:42 - CON (FINE): get_server_flags: setting maxMessageSizeBytes to 48000000
2013-07-09 09:41:42 - CON (INFO): is_ping: pinging localhost:27017;-;.;1543
2013-07-09 09:41:42 - CON (FINE): send_packet: read from header: 36
2013-07-09 09:41:42 - CON (FINE): send_packet: data_size: 17
2013-07-09 09:41:42 - CON (INFO): is_ping: last pinged at 1373359302; time: 0ms
2013-07-09 09:41:42 - REPLSET (FINE): finding candidate servers
2013-07-09 09:41:42 - REPLSET (FINE): - all servers
2013-07-09 09:41:42 - REPLSET (FINE): filter_connections: adding connections:
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): filter_connections: done
2013-07-09 09:41:42 - REPLSET (FINE): limiting by seeded/discovered servers
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): limiting by seeded/discovered servers: done
2013-07-09 09:41:42 - REPLSET (FINE): limiting by credentials
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): limiting by credentials: done
2013-07-09 09:41:42 - REPLSET (FINE): sorting servers by priority and ping time
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): sorting servers: done
2013-07-09 09:41:42 - REPLSET (FINE): selecting near servers
2013-07-09 09:41:42 - REPLSET (FINE): selecting near servers: nearest is 0ms
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): selecting near server: done
2013-07-09 09:41:42 - REPLSET (INFO): pick server: random element 0
2013-07-09 09:41:42 - REPLSET (INFO): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543

Anmerkungen

Achtung

This function is only available with PHP 5.3.0 and later.


Sets the level(s) to be logged

  • « MongoLog::setCallback
  • MongoLog::setModule »
  • PHP Manual
  • MongoLog
  • Sets the level(s) to be logged

MongoLog::setLevel

(PECL mongo >= 1.2.3)

MongoLog::setLevel — Sets the level(s) to be logged

Beschreibung

public static MongoLog::setLevel ( int $level ) : void

This function can be used to control logging verbosity and the types of activities that should be logged. The MongoLog level constants may be used with bitwise operators to specify multiple levels.

<?php

// first, specify a logging module
MongoLog::setModule(MongoLog::CON);

// log messages for every level
MongoLog::setLevel(MongoLog::ALL);

// log warning and info messages only
MongoLog::setLevel(MongoLog::WARNING|MongoLog::INFO);

// log everything except fine activity
MongoLog::setLevel(MongoLog::ALL & (~MongoLog::FINE));

?>

Note that you must also call MongoLog::setModule() to specify which modules(s) of the driver should log.

Parameter-Liste

level

The level(s) you would like to log.


Sets the module(s) to be logged

  • « MongoLog::setLevel
  • MongoPool »
  • PHP Manual
  • MongoLog
  • Sets the module(s) to be logged

MongoLog::setModule

(PECL mongo >= 1.2.3)

MongoLog::setModule — Sets the module(s) to be logged

Beschreibung

public static MongoLog::setModule ( int $module ) : void

This function can be used to set which driver modules should be logged. The MongoLog module constants may be used with bitwise operators to specify multiple modules.

<?php

// first, specify a logging level
MongoLog::setLevel(MongoLog::ALL);

// log replica set activity
MongoLog::setModule(MongoLog::RS);

// log replica sets and connection activity
MongoLog::setModule(MongoLog::RS|MongoLog::CON);

// log everything except IO activity
MongoLog::setModule(MongoLog::ALL & (~MongoLog::IO));

?>

Note that you must also call MongoLog::setLevel() to enable logging.

Parameter-Liste

module

The module(s) you would like to log.


The MongoPool class

(PECL mongo >= 1.2.3)

Einführung

Warnung

The current (1.3.0+) releases of the driver no longer implements pooling. This class and its methods are therefore deprecated and should not be used.

Klassenbeschreibung

MongoPool {
/* Methoden */
public static getSize ( ) : int
public info ( ) : array
public static setSize ( int $size ) : bool
}

Changelog

Version | Beschreibung
PECL mongo 1.3.0 | This functionality has been removed and no longer does anything other than emit deprecation warnings. This class is only kept around for backwards compatibility and will be removed in the near future.
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Inhaltsverzeichnis

  • MongoPool::getSize — Get pool size for connection pools
  • MongoPool::info — Returns information about all connection pools
  • MongoPool::setSize — Set the size for future connection pools


Get pool size for connection pools

  • « MongoPool
  • MongoPool::info »
  • PHP Manual
  • MongoPool
  • Get pool size for connection pools

MongoPool::getSize

(PECL mongo >= 1.2.3)

MongoPool::getSize — Get pool size for connection pools

Beschreibung

public static MongoPool::getSize ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current pool size.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Beispiele

Beispiel #1 Changing pool size

This returns the default pool size, sets a new pool size, then prints the new pool size and the pool debugging information. Note that changing the pool size only affects new connection pools, it does not change old ones.

<?php

$connection = new Mongo("host1");

// pool size is -1
echo "pool size is: ".MongoPool::getSize()."\n";

echo "setting pool size to 200\n";

MongoPool::setSize(200);

// pool size is 200
echo "pool size is: ".MongoPool::getSize()."\n";

$conn2 = new Mongo("host2");

// remaining for host1 is -2
// remaining for host2 is 199
var_dump(Mongo::poolDebug());

?>

Siehe auch

  • MongoPool::setSize() - Set the size for future connection pools
  • MongoPool::info() - Returns information about all connection pools
  • The connection documentation.


Returns information about all connection pools

  • « MongoPool::getSize
  • MongoPool::setSize »
  • PHP Manual
  • MongoPool
  • Returns information about all connection pools

MongoPool::info

(PECL mongo >= 1.2.3)

MongoPool::info — Returns information about all connection pools

Beschreibung

public MongoPool::info ( ) : array

Returns an array of information about all connection pools.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Each connection pool has an identifier, which starts with the host. For each pool, this function shows the following fields:

in use

The number of connections currently being used by Mongo instances.

in pool

The number of connections currently in the pool (not being used).

remaining

The number of connections that could be created by this pool. For example, suppose a pool had 5 connections remaining and 3 connections in the pool. We could create 8 new instances of MongoClient before we exhausted this pool (assuming no instances of MongoClient went out of scope, returning their connections to the pool).

A negative number means that this pool will spawn unlimited connections.

Before a pool is created, you can change the max number of connections by calling Mongo::setPoolSize(). Once a pool is showing up in the output of this function, its size cannot be changed.

total

The total number of connections allowed for this pool. This should be greater than or equal to "in use" + "in pool" (or -1).

timeout

The socket timeout for connections in this pool. This is how long connections in this pool will attempt to connect to a server before giving up.

waiting

If you have capped the pool size, workers requesting connections from the pool may block until other workers return their connections. This field shows how many milliseconds workers have blocked for connections to be released. If this number keeps increasing, you may want to use MongoPool::setSize() to add more connections to your pool.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.


Set the size for future connection pools

  • « MongoPool::info
  • Mongo »
  • PHP Manual
  • MongoPool
  • Set the size for future connection pools

MongoPool::setSize

(PECL mongo >= 1.2.3)

MongoPool::setSize — Set the size for future connection pools

Beschreibung

public static MongoPool::setSize ( int $size ) : bool

Sets the max number of connections new pools will be able to create.

Parameter-Liste

size

The max number of connections future pools will be able to create. Negative numbers mean that the pool will spawn an infinite number of connections.

Rückgabewerte

Returns the former value of pool size.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Beispiele

Beispiel #1 Mongo::setPoolSize() example

If you set the pool size to n and then create n connections, attempting to create an n+1st connection will throw a MongoConnectionException.

<?php

// only allow one connection to a server
MongoPool::setSize(1);

// creates one connection to localhost:27017
$m1 = new Mongo();

// attempt to create a second connection to localhost:27017
// only one connection is allowed, so this will throw an exception
$m2 = new Mongo();

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Fatal error: Uncaught exception 'MongoConnectionException' with message 'no more connections in pool' in /path/to/php/script.php:10
Stack trace:
#0 /path/to/php/script.php(10): Mongo->__construct()
#1 {main}
  thrown in /path/to/php/script.php on line 10

Siehe auch

  • MongoPool::getSize() - Get pool size for connection pools
  • MongoPool::info() - Returns information about all connection pools
  • The connection documentation.


The Mongo class [deprecated]

(PECL mongo >=0.9.0)

Einführung

A connection between PHP and MongoDB.

This class extends MongoClient and provides access to several deprecated methods.

For backwards compatibility, it also defaults the "w" option of its constructor argument to 0, which does not require write operations to be acknowledged by the server. See MongoClient::__construct() for more information.

Warnung

This class has been DEPRECATED as of version 1.3.0. Relying on this feature is highly discouraged. Please use MongoClient instead.

Klassenbeschreibung

Mongo extends MongoClient {
/* Methoden */
protected connectUtil ( ) : bool
public static getPoolSize ( ) : int
public getSlave ( ) : string
public getSlaveOkay ( ) : bool
public poolDebug ( ) : array
public static setPoolSize ( int $size ) : bool
public setSlaveOkay ( bool $ok = true ) : bool
public switchSlave ( ) : string
/* Geerbte Methoden */
public MongoClient::close ( bool|string $connection = ? ) : bool
public MongoClient::connect ( ) : bool
public MongoClient::dropDB ( mixed $db ) : array
public MongoClient::__get ( string $dbname ) : MongoDB
public static MongoClient::getConnections ( ) : array
public MongoClient::getHosts ( ) : array
public MongoClient::getReadPreference ( ) : array
public MongoClient::getWriteConcern ( ) : array
public MongoClient::killCursor ( string $server_hash , int|MongoInt64 $id ) : bool
public MongoClient::listDBs ( ) : array
public MongoClient::selectCollection ( string $db , string $collection ) : MongoCollection
public MongoClient::selectDB ( string $name ) : MongoDB
public MongoClient::setReadPreference ( string $read_preference , array $tags = ? ) : bool
public MongoClient::setWriteConcern ( mixed $w , int $wtimeout = ? ) : bool
public MongoClient::__toString ( ) : string
}

Inhaltsverzeichnis

  • Mongo::connectUtil — Connects with a database server
  • Mongo::__construct — The __construct purpose
  • Mongo::getPoolSize — Get pool size for connection pools
  • Mongo::getSlave — Returns the address being used by this for slaveOkay reads
  • Mongo::getSlaveOkay — Get slaveOkay setting for this connection
  • Mongo::poolDebug — Returns information about all connection pools
  • Mongo::setPoolSize — Set the size for future connection pools
  • Mongo::setSlaveOkay — Change slaveOkay setting for this connection
  • Mongo::switchSlave — Choose a new secondary for slaveOkay reads


Connects with a database server

  • « Mongo
  • Mongo::__construct »
  • PHP Manual
  • Mongo
  • Connects with a database server

Mongo::connectUtil

(PECL mongo >=0.9.0)

Mongo::connectUtil — Connects with a database server

Beschreibung

protected Mongo::connectUtil ( ) : bool
Warnung

This is an internal function that you should never call yourself.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

If the connection was successful.

Fehler/Exceptions

Throws MongoConnectionException if it fails to connect to the databases.


The __construct purpose

  • « Mongo::connectUtil
  • Mongo::getPoolSize »
  • PHP Manual
  • Mongo
  • The __construct purpose

Mongo::__construct

(PECL mongo >=0.9.0)

Mongo::__construct — The __construct purpose

Beschreibung

public Mongo::__construct ( string $server = ? , array $options = ? )

This method overwrites the MongoClient constructor and turns off acknowledged writes.

Please see MongoClient::__construct() for description of the parameters.

Rückgabewerte

Warnung

Instanciating this class will emit E_DEPRECATED warning, and turn off acknowledged writes.

Please use the MongoClient instead.


Get pool size for connection pools

  • « Mongo::__construct
  • Mongo::getSlave »
  • PHP Manual
  • Mongo
  • Get pool size for connection pools

Mongo::getPoolSize

(PECL mongo >=1.2.0)

Mongo::getPoolSize — Get pool size for connection pools

Beschreibung

public static Mongo::getPoolSize ( ) : int
Warnung

This feature has been DEPRECATED as of version 1.2.3. Relying on this feature is highly discouraged. Please use MongoPool::getSize() instead.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current pool size.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Beispiele

Beispiel #1 Changing pool size

This returns the default pool size, sets a new pool size, then prints the new pool size and the pool debugging information. Note that changing the pool size only affects new connection pools, it does not change old ones.

<?php

$connection = new Mongo("host1");

// pool size is -1
echo "pool size is: ".Mongo::getPoolSize()."\n";

echo "setting pool size to 200\n";

Mongo::setPoolSize(200);

// pool size is 200
echo "pool size is: ".Mongo::getPoolSize()."\n";

$conn2 = new Mongo("host2");

// remaining for host1 is -2
// remaining for host2 is 199
var_dump(Mongo::poolDebug());

?>

Siehe auch

  • Mongo::setPoolSize() - Set the size for future connection pools
  • Mongo::poolDebug() - Returns information about all connection pools
  • The connection documentation.


Returns the address being used by this for slaveOkay reads

  • « Mongo::getPoolSize
  • Mongo::getSlaveOkay »
  • PHP Manual
  • Mongo
  • Returns the address being used by this for slaveOkay reads

Mongo::getSlave

(PECL mongo >=1.1.0)

Mongo::getSlave — Returns the address being used by this for slaveOkay reads

Beschreibung

public Mongo::getSlave ( ) : string

This finds the address of the secondary currently being used for reads. It is a read-only method: it does not change anything about the internal state of the object.

When you create a connection to the database, the driver will not immediately decide on a secondary to use. Thus, after you connect, this function will return null even if there are secondaries available. When you first do a query with slaveOkay set, at that point the driver will choose a secondary for this connection. At that point, this function will return the chosen secondary.

See the query section of this manual for information on distributing reads to secondaries.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The address of the secondary this connection is using for reads.

This returns null if this is not connected to a replica set or not yet initialized.

Fehler/Exceptions

Issues E_DEPRECATED warning

The returned results aren't really useful as the secondary selection process is done on each query and database command execution.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Siehe auch

  • MongoCursor::info() - Gets information about the cursor's creation and iteration


Get slaveOkay setting for this connection

  • « Mongo::getSlave
  • Mongo::poolDebug »
  • PHP Manual
  • Mongo
  • Get slaveOkay setting for this connection

Mongo::getSlaveOkay

(PECL mongo >=1.1.0)

Mongo::getSlaveOkay — Get slaveOkay setting for this connection

Beschreibung

public Mongo::getSlaveOkay ( ) : bool

See the query section of this manual for information on distributing reads to secondaries.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the value of slaveOkay for this instance.

Fehler/Exceptions

Issues E_DEPRECATED warning

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Siehe auch

  • Read Preferences
  • MongoClient::getReadPreference() - Get the read preference for this connection


Returns information about all connection pools

  • « Mongo::getSlaveOkay
  • Mongo::setPoolSize »
  • PHP Manual
  • Mongo
  • Returns information about all connection pools

Mongo::poolDebug

(PECL mongo >=1.2.0)

Mongo::poolDebug — Returns information about all connection pools

Beschreibung

public Mongo::poolDebug ( ) : array
Warnung

This feature has been DEPRECATED as of version 1.2.3. Relying on this feature is highly discouraged. Please use MongoPool::info() instead.

Returns an array of information about all connection pools.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Each connection pool has an identifier, which starts with the host. For each pool, this function shows the following fields:

in use

The number of connections currently being used by MongoClient instances.

in pool

The number of connections currently in the pool (not being used).

remaining

The number of connections that could be created by this pool. For example, suppose a pool had 5 connections remaining and 3 connections in the pool. We could create 8 new instances of MongoClient before we exhausted this pool (assuming no instances of MongoClient went out of scope, returning their connections to the pool).

A negative number means that this pool will spawn unlimited connections.

Before a pool is created, you can change the max number of connections by calling Mongo::setPoolSize(). Once a pool is showing up in the output of this function, its size cannot be changed.

timeout

The socket timeout for connections in this pool. This is how long connections in this pool will attempt to connect to a server before giving up.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.


Set the size for future connection pools

  • « Mongo::poolDebug
  • Mongo::setSlaveOkay »
  • PHP Manual
  • Mongo
  • Set the size for future connection pools

Mongo::setPoolSize

(PECL mongo >=1.2.0)

Mongo::setPoolSize — Set the size for future connection pools

Beschreibung

public static Mongo::setPoolSize ( int $size ) : bool
Warnung

This method has been DEPRECATED as of version 1.2.3. Relying on this feature is highly discouraged. Please use MongoPool::setSize() instead.

Sets the max number of connections new pools will be able to create.

Parameter-Liste

size

The max number of connections future pools will be able to create. Negative numbers mean that the pool will spawn an infinite number of connections.

Rückgabewerte

Returns the former value of pool size.

Beispiele

Beispiel #1 Mongo::setPoolSize() example

If you set the pool size to n and then create n connections, attempting to create an n+1st connection will throw a MongoConnectionException.

<?php

// only allow one connection to a server
Mongo::setPoolSize(1);

// creates one connection to localhost:27017
$m1 = new Mongo();

// attempt to create a second connection to localhost:27017
// only one connection is allowed, so this will throw an exception
$m2 = new Mongo();

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Fatal error: Uncaught exception 'MongoConnectionException' with message 'no more connections in pool' in /path/to/php/script.php:10
Stack trace:
#0 /path/to/php/script.php(10): Mongo->__construct()
#1 {main}
  thrown in /path/to/php/script.php on line 10

Siehe auch

  • Mongo::getPoolSize() - Get pool size for connection pools
  • Mongo::poolDebug() - Returns information about all connection pools
  • The connection documentation.


Change slaveOkay setting for this connection

  • « Mongo::setPoolSize
  • Mongo::switchSlave »
  • PHP Manual
  • Mongo
  • Change slaveOkay setting for this connection

Mongo::setSlaveOkay

(PECL mongo >=1.1.0)

Mongo::setSlaveOkay — Change slaveOkay setting for this connection

Beschreibung

public Mongo::setSlaveOkay ( bool $ok = true ) : bool

See the query section of this manual for information on distributing reads to secondaries.

Parameter-Liste

ok

If reads should be sent to secondary members of a replica set for all possible queries using this MongoClient instance.

Rückgabewerte

Returns the former value of slaveOkay for this instance.

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Siehe auch

  • Read Preferences
  • MongoClient::setReadPreference() - Set the read preference for this connection


Choose a new secondary for slaveOkay reads

  • « Mongo::setSlaveOkay
  • Mongo Funktionen »
  • PHP Manual
  • Mongo
  • Choose a new secondary for slaveOkay reads

Mongo::switchSlave

(PECL mongo >=1.1.0)

Mongo::switchSlave — Choose a new secondary for slaveOkay reads

Beschreibung

public Mongo::switchSlave ( ) : string

This choses a random secondary for a connection to read from. It is called automatically by the driver and should not need to be used. It calls MongoClient::getHosts() (to refresh the status of hosts) and Mongo::getSlave() (to get the return value).

See the query section of this manual for information on distributing reads to secondaries.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The address of the secondary this connection is using for reads. This may be the same as the previous address as addresses are randomly chosen. It may return only one address if only one secondary (or only the primary) is available.

For example, if we had a three member replica set with a primary, secondary, and arbiter this method would always return the address of the secondary. If the secondary became unavailable, this method would always return the address of the primary. If the primary also became unavailable, this method would throw an exception, as an arbiter cannot handle reads.

Fehler/Exceptions

Throws a MongoException (error code 15) if it is called on a non-replica-set connection. It will also throw MongoExceptions if it cannot find anyone (primary or secondary) to read from (error code 16).

Changelog

Version | Beschreibung
PECL mongo 1.2.11 | Emits E_DEPRECATED when used.

Siehe auch

  • Read Preferences


Mongo Funktionen

Inhaltsverzeichnis

  • bson_decode — Deserializes a BSON object into a PHP array
  • bson_encode — Serializes a PHP variable into a BSON string


Deserializes a BSON object into a PHP array

  • « Mongo Funktionen
  • bson_encode »
  • PHP Manual
  • Mongo Funktionen
  • Deserializes a BSON object into a PHP array

bson_decode

(PECL mongo >=1.0.1)

bson_decode — Deserializes a BSON object into a PHP array

Beschreibung

bson_decode ( string $bson ) : array

This function is very beta and entirely useless for 99% of users. It is only useful if you're doing something weird, such as writing your own driver on top of the PHP driver.

Parameter-Liste

bson

The BSON to be deserialized.

Rückgabewerte

Returns the deserialized BSON object.


Serializes a PHP variable into a BSON string

  • « bson_decode
  • Exceptions »
  • PHP Manual
  • Mongo Funktionen
  • Serializes a PHP variable into a BSON string

bson_encode

(PECL mongo >=1.0.1)

bson_encode — Serializes a PHP variable into a BSON string

Beschreibung

bson_encode ( mixed $anything ) : string

This function is very beta and entirely useless for 99% of users. It is only useful if you're doing something weird, such as writing your own driver on top of the PHP driver.

Parameter-Liste

anything

The variable to be serialized.

Rückgabewerte

Returns the serialized string.


Exceptions

Inhaltsverzeichnis

  • MongoException
  • MongoResultException
  • MongoCursorException
  • MongoCursorTimeoutException
  • MongoConnectionException
  • MongoGridFSException
  • MongoDuplicateKeyException
  • MongoProtocolException
  • MongoExecutionTimeoutException
  • MongoWriteConcernException

VMWare Oddities

If you are running VMWare on Windows and are using CIFS, pausing the VM will cause CIFS to go out of sync and cause weird errors on un-pausing it ("The Mongo object has not been correctly initialized by its constructor"). Permanently mounting the Windows shares will fix this and you'll be able to pause and unpause at will.

To permanently mount the Windows shares, run:

$ sudo update-rc.d -f umountnfs.sh remove
$ sudo update-rc.d umountnfs.sh stop 15 0 6 .

See » the Ubuntu docs for the most up-to-date instructions.


The MongoException class

(PECL mongo >= 1.0.0)

Einführung

Default Mongo exception.

This covers a bunch of different error conditions that may eventually be moved to more specific exceptions, but will always extend MongoException.

  • The MongoSomething object has not been correctly initialized by its constructor

    Code: 0

    Probably your Mongo object is not connected to a database server.

  • zero-length keys are not allowed, did you use $ with double quotes?

    Code: 1

    You tried to save "" as a key. You generally should not do this. "" can mess up subobject access and is used by MongoDB internally. However, if you really want, you can set mongo.allow_empty_keys to true in your php.ini file to override this sanity check. If you override this, it is highly recommended that you set error checking to strict to avoid string interpolation errors.

  • '.' not allowed in key: <key>

    Code: 2

    You attempted to write a key with '.' in it, which is prohibited.

  • insert too large: <size>, max: <max>

    Code: 3

    You're attempting to send too much data to the database at once: the database will only accept inserts up to a certain size (currently 16 MB).

  • no elements in doc

    Code: 4

    You're attempting to save a document with no fields.

  • size of BSON doc is <size> bytes, max <max>MB

    Code: 5

    You're attempting to save a document that is larger than MongoDB can save.

  • no documents given

    Code: 6

    You're attempting to batch insert an empty array of documents.

  • MongoCollection::group takes an array, object, or MongoCode key

    Code: 7

    Wrong type parameter send to MongoCollection::group().

  • field names must be strings

    Code: 8

    You should format field selectors as array("field1" => 1, "field2" => 1, ..., "fieldN" => 1).

  • invalid regex

    Code: 9

    The regex passed to MongoRegex is not of the correct form.

  • MongoDBRef::get: $ref field must be a string

    Code: 10

  • MongoDBRef::get: $db field must be a string

    Code: 11

  • non-utf8 string: <str>

    Code: 12

    This error occurs if you attempt to send a non-utf8 string to the database. All strings going into the database should be UTF8. See php.ini options for the transition option of quieting this exception.

  • mutex error: <err>

    Code: 13

    The driver uses mutexes for synchronizing requests and responses in multithreaded environments. This is a fairly serious error and may not have a stack trace. It's unusual and should be reported to maintainers with any system information and steps to reproduce that you can provide.

  • index name too long: <len>, max <max> characters

    Code: 14

    Indexes with names longer than 128 characters cannot be created. If you get this error, you should use MongoCollection::ensureIndex()'s "name" option to create a shorter name for your index.

Klassenbeschreibung

MongoException extends Exception {
}


The MongoResultException class

(PECL mongo >=1.3.0)

Einführung

The MongoResultException is thrown by several command helpers (such as MongoCollection::findAndModify()) in the event of failure. The original result document is available through MongoResultException::getDocument().

Klassenbeschreibung

MongoResultException extends MongoException {
/* Eigenschaften */
public $document ;
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
public getDocument ( ) : array
}

Eigenschaften

document

The raw result document as an array.

Inhaltsverzeichnis

  • MongoResultException::getDocument — Retrieve the full result document


Retrieve the full result document

  • « MongoResultException
  • MongoCursorException »
  • PHP Manual
  • MongoResultException
  • Retrieve the full result document

MongoResultException::getDocument

(PECL mongo >=1.3.0)

MongoResultException::getDocument — Retrieve the full result document

Beschreibung

public MongoResultException::getDocument ( ) : array

Retrieves the full error result document.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The full result document as an array, including partial data if available and additional keys.

Beispiele

Beispiel #1 MongoResultException::getDocument() example

<?php
$mc = new MongoClient("localhost");
$c = $mc->selectCollection("test", "test");

$c->insert(array(
     "name" => "Next promo",
     "inprogress" => false,
     "priority" => 0,
     "tasks" => array( "select product", "add inventory", "do placement"),
) );

$c->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 1,
     "tasks" => array( "run sales report", "email report" )
) );

$c->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 2,
     "tasks" => array( "run marketing report", "email report" )
    ),
    array("w" => true)
);

try {
    $retval = $c->findAndModify(
         array("inprogress" => false, "name" => "Biz report"),
         array('$set' => array('$set' => array('inprogress' => true, "started" => new MongoDate()))),
         null,
         array(
            "sort" => array("priority" => -1),
            "new" => true,
        )
    );
} catch(MongoResultException $e) {
    echo $e->getMessage(), "\n";
    $res = $e->getDocument();
    var_dump($res);
}
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

$set is not valid for storage.
array(3) {
  ["lastErrorObject"]=>
  array(5) {
    ["connectionId"]=>
    int(6)
    ["err"]=>
    string(30) "$set is not valid for storage."
    ["code"]=>
    int(52)
    ["n"]=>
    int(0)
    ["ok"]=>
    float(1)
  }
  ["ok"]=>
  float(0)
  ["errmsg"]=>
  string(30) "$set is not valid for storage."
}


The MongoCursorException class

(PECL mongo >= 1.0.0)

Einführung

Caused by accessing a cursor incorrectly or a error receiving a reply. Note that this can be thrown by any database request that receives a reply, not just queries. Writes, commands, and any other operation that sends information to the database and waits for a response can throw a MongoCursorException. The only exception is new MongoClient() (creating a new connection), which will only throw MongoConnectionExceptions.

This returns a specific error message to help diagnose the problem and a numeric error code associated with the cause of the exception.

For example, suppose you tried to insert two documents with the same _id:

<?php

try {
    $collection->insert(array("_id" => 1), array("w" => 1));
    $collection->insert(array("_id" => 1), array("w" => 1));
}
catch (MongoCursorException $e) {
    echo "error message: ".$e->getMessage()."\n";
    echo "error code: ".$e->getCode()."\n";
}

?>
This would produce output like:
error message: E11000 duplicate key error index: foo.bar.$_id_  dup key: { : 1 }
error code: 11000
Note that the MongoDB error code (11000) is used for the PHP error code. The PHP driver uses the "native" error code wherever possible.

The following is a list of common errors, codes, and causes. Exact errors are in italics, errors where the message can vary are described in obliques.

  • cannot modify cursor after beginning iteration

    Code: 0

    You are calling a method that sets up the query after executing the query. Reset the cursor and try again.

    An example:

    <?php

    try {
            $cursor = $collection->find();
            var_dump($cursor->getNext());

            // getNext() queried the database, it's too late to set a limit
            $cursor->limit(1);
    }
    catch (    MongoCursorException $e) {
        echo     "error message: ".$e->getMessage()."\n";
        echo     "error code: ".$e->getCode()."\n";
    }

    // this will work, though:
    $cursor->getNext();
    $cursor->reset();
    $cursor->limit(1);

    ?>

  • Get next batch send errors

    Code: 1

    Could not send the query to the database. Make sure the database is still up and the network is okay.

  • cursor not found

    Code: 2

    The driver was trying to fetch more results from the database, but the database did not have a record of the query. This usually means that the cursor timed out on the server side: after a few minutes of inactivity, the database will kill a cursor (see MongoCursor::immortal() for information on preventing this).

    An example:

    <?php

    try {
            $cursor = $collection->find();
            $cursor->getNext();

            // sleep for 15 minutes
            sleep(60*15);

        while (    $cursor->hasNext()) {
                $cursor->getNext();
        }
    }
    catch (    MongoCursorException $e) {
        echo     "error message: ".$e->getMessage()."\n";
        echo     "error code: ".$e->getCode()."\n";
    }

    ?>

  • cursor->buf.pos is null

    Code: 3

    This may indicate you are out of RAM or some other extraordinary circumstance.

  • couldn't get response header

    Code: 4

    A common error if the database or network goes down. This means that the driver couldn't get a response from the connection.

  • no db response

    Code: 5

    This may not even be an error, for example, the database command "shutdown" returns no response. However, if you were expecting a response, this means the database didn't give one.

  • bad response length: %d, did the db assert?

    Code: 6

    This means that the database said that its response was less than 0. This error probably indicates a network error or database corruption.

  • incomplete header

    Code: 7

    Highly unusual. Occurs if the database response started out correctly, but broke off in the middle. Probably indicates a network problem.

  • incomplete response

    Code: 8

    Highly unusual. Occurs if the database response started out correctly, but broke off in the middle. Probably indicates a network problem.

  • couldn't find a response

    Code: 9

    If the response was cached and now cannot be located.

  • error getting socket

    Code: 10

    The socket was closed or encountered an error. The driver should automatically reconnect (if possible) on the next operation.

  • couldn't find reply, please try again

    Code: 11

    The driver saves any database responses it cannot immediately match with a request. This exception occurs if the driver has already passed your request's response and cannot find your response in its cache.

  • error getting database response: errstr

    WSA error getting database response: errstr

    "errstr" is an io error reported directly from the C socket subsystem. On Windows, the error message is prefixed with "WSA".

  • Timeout error

    Code: 13

    If there was an error while waiting for a query to complete.

  • couldn't send query: <various>

    Code: 14

    C socket error on send.

  • max number of retries exhausted, couldn't send query

    Code: 19

    The driver will automatically retry "plain" queries (not commands) a couple of times if the first attempt failed for certain reasons. This is to cause fewer exceptions during replica set failover (although you will probably still have to deal with some) and gloss over transient network issues.

    This can also be caused by the driver not being able to reconnect at all to the database (if, for example, the database is unreachable).

    Version 1.2.2+.

Errors passed through by the database

Database errors should always trigger MongoCursorExceptions on queries. Error messages and codes are sent directly from the database and you should be able to see matching errors in the database log.

A few common database errors are listed below:

  • E11000 duplicate key error index: foo.bar.$X dup key: { /* ... */ }

    Code: 11000

    Database error for duplicate keys.

  • not master

    Codes: 10107, 13435, and 10058

    Not master errors, piped through by the database. ach of these will cause the driver to disconnect and attempt to find a new primary. The actual error you get on failover may not be a "not master" error, depending on when the change in primary occurs.

Klassenbeschreibung

MongoCursorException extends MongoException {
}

Inhaltsverzeichnis

  • MongoCursorException::getHost — The hostname of the server that encountered the error


The hostname of the server that encountered the error

  • « MongoCursorException
  • MongoCursorTimeoutException »
  • PHP Manual
  • MongoCursorException
  • The hostname of the server that encountered the error

MongoCursorException::getHost

(PECL mongo >= 1.0.0)

MongoCursorException::getHost — The hostname of the server that encountered the error

Beschreibung

public MongoCursorException::getHost ( ) : string

Returns the hostname of the server the query was sent too.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the hostname, or NULL if the hostname is unknown.


The MongoCursorTimeoutException class

(PECL mongo >= 1.0.0)

Einführung

Caused by a query timing out. You can set the length of time to wait before this exception is thrown by calling MongoCursor::timeout() on the cursor or setting MongoCursor::$timeout. The static variable is useful for queries such as database commands and MongoCollection::findOne(), both of which implicitly use cursors.

Klassenbeschreibung

MongoCursorTimeoutException extends MongoCursorException {
}


The MongoConnectionException class

(PECL mongo >= 1.0.0)

Einführung

Thrown when the driver fails to connect to the database.

There are a number of possible error messages to help you diagnose the connection problem. These are:

  • No candidate servers found

    Thrown when the driver cannot establish a connection to MongoDB (fulfilling the ReadPreferences, if specified).

  • No server name given.

    This error occurs if you pass in "" as the server name, probably because of an typo with string interpolation, e.g., "$servr" instead of "$server".

  • failed to get host [hostname] or port [portnum] from [server].

    This indicated that the server string was malformed. "[hostname]" and "[portnum]" will be as much as the driver could dicipher of it.

  • Operation in progress

    Connecting to the database timed out.

  • Transport endpoint is not connected

    Generally means that the connection string isn't correct, the driver couldn't even find the database server.

  • couldn't determine master

    No server in a replica set connection was identified as the primary.

  • couldn't get host info for [server]

    This indicated that DNS could not resolve the server address you gave. This could easily be caused by a typo, for example, "server" instead of "$server".

  • Invalid Argument

    This can be caused by attempting to connect to a machine that is up but that the database isn't actually running on. Make sure that you've started the database server before connecting.

  • Permission denied

    This means that the socket could not be opened due to permissions issues. On Red Hat variants, this can be caused by a default setting that does not allow Apache to create network connections. You can override this setting by running:

    $ /usr/sbin/setsebool -P httpd_can_network_connect 1
    then restarting Apache.

If the error message is not listed above, it is probably an error from the C socket, and you can search the web for its usual cause.

Klassenbeschreibung

MongoConnectionException extends MongoException {
}


The MongoGridFSException class

(PECL mongo >= 1.0.0)

Einführung

Thrown when there are errors reading or writing files to or from the database.

Klassenbeschreibung

MongoGridFSException extends MongoException {
}

Error codes

MongoGridFSException error codes
Code | Message | Reason
3 | Could not open file $filename | Attempting to store an invalid file, such as directory
4 | File $filename is too large: $filesize bytes | Maximum filesize in GridFS is 4GB
5 | could not find filehandle | Resource doesn't have a filehandle
6 | no file is associate with this filehandle | Resource isn't a file resource
7 | error setting up file: $filenames | Could not open file for reading
9 | error reading file $filenames | Failed reading file
10 | error reading filehandle | Failed reading from a resource
11 | could not find uploaded file %s | Filename doesn't seem to be uploaded file
12 | Couldn't find tmp_name in the $_FILES array. Are you sure the upload worked? | Uploaded filename probably failed
13 | tmp_name was not a string or an array | Invalid filename given
14 | couldn't find file size | The length property is missing
15 | Cannot find filename | No filename provided, and no filename property set
16 | could not open destination file %s | Destination filename not writable
17 | error reading chunk of file | Chunk corruption
18 | couldn't create a php_stream | Couldn't create a stream resource
19 | couldn't find property | Chunk corruption
20 | chunk number has wrong size (size) when the max is maxchunksize | Chunk larger then expected
21 | chunk has wrong format | Chunk corruption


The MongoDuplicateKeyException class

(PECL mongo >= 1.5.0)

Einführung

Thrown when attempting to insert a document into a collection which already contains the same values for the unique keys.

Klassenbeschreibung

MongoDuplicateKeyException extends MongoWriteConcernException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public MongoWriteConcernException::getDocument ( ) : array
}

Beispiele

Beispiel #1 Catching MongoDuplicateKeyException

<?php
$mc = new MongoClient("localhost");

$c = $mc->selectCollection("test", "test");

$c->insert(array('_id' => 1));
try {
    $c->insert(array('_id' => 1));
} catch (MongoWriteConcernException $e) {
    echo $e->getMessage(), "\n";
}
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

localhost:27017: insertDocument :: caused by :: 11000 E11000 duplicate key error index: test.test.$_id_  dup key: { : 1 }


The MongoProtocolException class

(PECL mongo >= 1.5.0)

Einführung

When talking to MongoDB 2.6.0, and later, certain operations (such as writes) may throw MongoProtocolException when the response from the server did not make sense - for example during network failure (we could read the entire response) or data corruption.

This exception is also thrown when attempting to talk newer protocols then the server supports, for example using the MongoWriteBatch when talking to a MongoDB server prior to 2.6.0.

Klassenbeschreibung

MongoProtocolException extends MongoException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}

Beispiele

Beispiel #1 Catching MongoProtocolException

Running the following example against MongoDB prior to 2.6.0 will throw an MongoProtocolException

<?php
$mc = new MongoClient("localhost");
$c = $mc->selectCollection("test", "test");

try {
    $batch = new MongoInsertBatch($c);
} catch(MongoProtocolException $e) {
    echo $e->getMessage();
}
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

Current primary does not have a Write API


The MongoExecutionTimeoutException class

(PECL mongo >= 1.5.0)

Einführung

Thrown when a operation times out server side (i.e. in MongoDB).

To configure the operation timeout threshold, use MongoCursor::maxTimeMS() or the "maxTimeMS" command option.

Klassenbeschreibung

MongoExecutionTimeoutException extends MongoException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}


The MongoWriteConcernException class

(PECL mongo >= 1.5.0)

Einführung

MongoWriteConcernException is thrown when a write fails. See Write Concerns for how to set failure thresholds.

Prior to MongoDB 2.6.0, the » getLastError command would determine whether a write failed.

Klassenbeschreibung

MongoWriteConcernException extends MongoCursorException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
public getDocument ( ) : array
/* Geerbte Methoden */
public MongoCursorException::getHost ( ) : string
}

Inhaltsverzeichnis

  • MongoWriteConcernException::getDocument — Get the error document


Get the error document

  • « MongoWriteConcernException
  • Changelog »
  • PHP Manual
  • MongoWriteConcernException
  • Get the error document

MongoWriteConcernException::getDocument

(PECL mongo >= 1.5.0)

MongoWriteConcernException::getDocument — Get the error document

Beschreibung

public MongoWriteConcernException::getDocument ( ) : array

Returns the actual response from the server that was interperated as an error.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A MongoDB document, if available, as an array.


Changelog

Folgende Änderungen wurden an den Klassen/Funktionen/Methoden dieser Extension vorgenommen.

MongoDB PHP Driver 1.5.0

It supports all new features for MongoDB 2.6, including:

  • Aggregate can now return a cursor
  • Aggregation pipelines can now be explained
  • Possible to set maxTimeMS for commands and queries
  • Transparent support for the new command-based MongoDB write API
  • New MongoWriteBatch classes (using the new MongoDB write API)
  • Support for MongoDB Enterprise features (e.g. Kerberos, LDAP, X509)
  • Option to tune acceptable server latency for secondary reads (secondaryAcceptableLatencyMS)

With this release, some driver functionality which was previously documented as deprecated will now formally raise deprecation notices. This includes:

  • Instantiating the Mongo class
  • Calling MongoCursor::slaveOkay()
  • "wtimeout" and "safe" options for MongoCollection write operations
  • Manipulating public properties on core classes (such as $collection->w)

Hinweis:

No previously deprecated features have been removed.

Changes in behaviour:

  • Setting the mongo.native_long INI setting now raises an error on 32-bit platforms, and now defaults to true for 64-bit platforms.

MongoDB PHP Driver 1.4.0

The 1.4 series introduced fundemental changes in how connections are created to the MongoDB servers. The driver now utilizes PHP native streams, so all normal PHP stream options apply. Furthermore, an experimental Stream Context Support was added.

The 1.4.x series also added support for MongoDB 2.4.x.

The most important improvements however deal with the handling of replica sets, especially nodes that timeout and nodes that are unreachable for various reasons. Besides the improvements to replica set handling, this release addresses issues with read preferences through mongos nodes. It also adds support for SSL enabled connections as well as journal and fsync connection string options.

MongoDB PHP Driver 1.3.0

The 1.3 series introduced several major changes to the extension such as completely rewritten connection handling (and removal of the pooling mechanism), support for ReadPreferences and change the default WriteConcerns to be acknowledged by introducing a new class MongoClient which serves as a replacement class for the now deprecated Mongo class.

The driver now also supports connecting to multiple mongos instances (the Mongo Shard router) for loadbalancing.

Other enhancements include improved logging for easier connection handling debugging with MongoLog and support for the » Aggregation Framework via the MongoCollection::aggregate() method.

Changes to existing methods

Following is a list of all improvements to existing methods since their inception.

Version | Function | Description
PECL mongo 1.7.0 | MongoDB::execute | This method has been deprecated as a result of the underlaying eval command being deprecated in MongoDB 3.0+.
PECL mongo 1.6.0 | MongoClient::__construct | Added support for "SCRAM-SHA-1" in "authMechanism" option.
 | MongoCollection::count | The second parameter is now an options array. Passing limit and skip as the second and third parameters, respectively, is deprecated.
 | MongoDB::getCollectionNames | Changed first parameter to be an array of options. Pre-1.6.0, the first parameter was a boolean indicating the "includeSystemCollections" option.
 | MongoDB::listCollections | Changed first parameter to be an array of options. Pre-1.6.0, the first parameter was a boolean indicating the "includeSystemCollections" option.
PECL mongo 1.5.0 | log_cmd_delete | Only available when connected to MongoDB 2.6.0+
 | log_cmd_insert | Only available when connected to MongoDB 2.6.0+
 | log_cmd_update | Only available when connected to MongoDB 2.6.0+
 | log_write_batch | Only available when connected to MongoDB 2.6.0+
 | MongoBinData::__construct | The default changed from 2 (MongoBinData::BYTE_ARRAY) to 0 (MongoBinData::GENERIC).
 | MongoClient::__construct | Added "authMechanism", "gssapiServiceName", and "secondaryAcceptableLatencyMS".
 | MongoClient::__construct | Added "authSource".
 | MongoCollection::aggregate | Added optional options argument
 | MongoCollection::batchInsert | Added the "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added the "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
 | MongoCollection::ensureIndex | Renamed the "wtimeout" option to "wTimeoutMS". Emits E_DEPRECATED when "wtimeout" is used. Renamed the "timeout" option to "socketTimeoutMS". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
 | MongoCollection::findOne | Added optional options argument.
 | MongoCollection::group | Added "maxTimeMS" option.
 | MongoCollection::insert | Added the "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added the "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
 | MongoCollection::remove | Added "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
 | MongoCollection::save | Added "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
 | MongoCollection::toIndexString | This method has been deprecated.
 | MongoCollection::update | Added the "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added the "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
 | MongoCursor::slaveOkay | This method has been deprecated in favour of MongoCursor::setReadPreference and .
 | MongoDB::command | Renamed the "timeout" option to "socketTimeoutMS". Emits E_DEPRECATED when "timeout" is used. Added hash by-reference parameter.
PECL mongo 1.4.5 | MongoCursor::batchSize | Before 1.4.5, this method would throw an MongoCursorException if the cursor had already started iterating.
PECL mongo 1.4.0 | MongoClient::__construct | Added "ssl" option and support for connecting over SSL. Added "wTimeoutMS" option, which replaces "wTimeout". Emits E_DEPRECATED when "slaveOkay" or "timeout" is used.
 | MongoCursor::hint | The index argument now supports index names as string values. In versions before 1.4.0, only array or object values were accepted.
 | MongoCursor::setFlag | Support for flag 3 (OPLOG_REPLAY) is added. Versions before 1.4.0 would throw a warning saying that the flag is unsupported.
 | MongoDB::createCollection | In versions before 1.4.0, the options were all arguments to the method. The function synopsis in those older versions is: public MongoCollectionMongoDB::createCollection stringname boolcappedfalse intsize0 intmax0 The meaning of the options is the same as described under the options argument above.
 | MongoId::__construct | An exception is thrown when passed invalid string
PECL mongo 1.3.4 | MongoClient::__construct | Added "connectTimeoutMS" and "socketTimeoutMS" options.
 | MongoCollection::batchInsert | Added "wtimeout" option.
 | MongoCollection::ensureIndex | Added "wtimeout" option.
 | MongoCollection::insert | Added "wtimeout" option.
 | MongoCollection::remove | Added "wtimeout" option.
 | MongoCollection::update | Added "wtimeout" option.
PECL mongo 1.3.3 | MongoClient::getReadPreference | The return value has changed to be consistent with MongoClient::setReadPreference. The type value was changed from a number to a string, type_string was removed, and tagsets now expresses tags as key/value pairs instead of colon-delimited strings.
 | MongoCollection::getReadPreference | The return value has changed to be consistent with MongoCollection::setReadPreference. The type value was changed from a number to a string, type_string was removed, and tagsets now expresses tags as key/value pairs instead of colon-delimited strings.
 | MongoDB::getReadPreference | The return value has changed to be consistent with MongoDB::setReadPreference. The type value was changed from a number to a string, type_string was removed, and tagsets now expresses tags as key/value pairs instead of colon-delimited strings.
PECL mongo 1.3.0 | MongoClient::close | The connection parameter to this function was added in 1.3.0. Before that, only the write connection would be closed by this method.
 | MongoClient::__construct | Added "readPreference", "readPreferenceTags", "w", and "wTimeout" options.
 | MongoCollection::batchInsert | Added "w" option.
 | MongoCollection::ensureIndex | Added "w" option. The options parameter no longer accepts a boolean to signify a unique index. Instead, this now has to be done with array('unique' => true).
 | MongoCollection::insert | Added "w" option. The options parameter no longer accepts a boolean to signify an acknowledged write. Instead, this now has to be done with array('w' => 1) (the default behaviour of MongoClient).
 | MongoCollection::remove | Added "w" option. The options parameter no longer accepts a boolean to signify "justOne". Instead, this now has to be done with array('justOne' => true).
 | MongoCollection::update | Added "w" option. The options parameter no longer accepts a boolean to signify an upsert. Instead, this now has to be done with array('upsert' => true).
 | MongoDB::listCollections | Added the includeSystemCollections parameter.
 | MongoGridFSCursor::key | The document's _id is returned as a string value, since the key should be unique. Pre-1.3.0, filename was returned.
PECL mongo 1.2.11 | Mongo::getPoolSize | Emits E_DEPRECATED when used.
 | Mongo::getSlave | Emits E_DEPRECATED when used.
 | Mongo::getSlaveOkay | Emits E_DEPRECATED when used.
 | Mongo::poolDebug | Emits E_DEPRECATED when used.
 | Mongo::setSlaveOkay | Emits E_DEPRECATED when used.
 | Mongo::switchSlave | Emits E_DEPRECATED when used.
 | MongoBinData::__construct | Emits E_DEPRECATED when the second argument is not used. The default value for type may change in the near future.
 | MongoCollection::ensureIndex | Emits E_DEPRECATED when options is scalar.
 | MongoCollection::getSlaveOkay | Emits E_DEPRECATED when used.
 | MongoCollection::group | Emits E_DEPRECATED when options is scalar.
 | MongoCollection::remove | Emits E_DEPRECATED when options is scalar.
 | MongoCollection::setSlaveOkay | Emits E_DEPRECATED when used.
 | MongoCollection::update | Emits E_DEPRECATED when options is scalar.
 | MongoCursor::doQuery | Emits E_DEPRECATED when used.
 | MongoDB::authenticate | Emits E_DEPRECATED when used. Please pass in the authentication details to the constructor.
 | MongoDB::forceError | Emits E_DEPRECATED when used.
 | MongoDB::getSlaveOkay | Emits E_DEPRECATED when used.
 | MongoDB::prevError | Emits E_DEPRECATED when used.
 | MongoDB::resetError | Emits E_DEPRECATED when used.
 | MongoDB::setSlaveOkay | Emits E_DEPRECATED when used.
 | MongoPool::getSize | Emits E_DEPRECATED when used.
 | MongoPool::info | Emits E_DEPRECATED when used.
 | MongoPool::setSize | Emits E_DEPRECATED when used.
PECL mongo 1.2.10 | MongoClient::getHosts | Support for non-replicasets was added. The returned array elements now also include the hostname and port.
PECL mongo 1.2.7 | MongoCollection::batchInsert | Added "continueOnError" option.
PECL mongo 1.2.5 | MongoGridFS::storeUpload | Changed second parameter to an array of metadata. Pre-1.2.5, the second parameter was an optional string overriding the filename.
PECL mongo 1.2.0 | MongoClient::close | Before version 1.2.0 the driver would not use persistent connections by default, and all connections would be closed as soon as a MongoDB connection went out if scope. Since version 1.2.0 this is no longer the case and it is a bad idea to call close as you might end up overloading the server with connections under high load.
 | MongoClient::__construct | Added "username" and "password" options. Removed "persist" option, as all connections are now persistent. It can still be used, but it doesn't affect anything. "persist" If the connection should be persistent. If set, the connection will be persistent. The string representation of the value is used as an ID for the connection, so two instances of MongoClient that are initialized with array("persist" => "foobar") will share the same database connection, whereas an instance initialized with array("persist" => "barbaz") will use a different database connection. The "replicaSet" option now takes a string, not a boolean.
 | MongoCollection::ensureIndex | Added "timeout" option.
 | MongoCollection::insert | Added "timeout" option.
 | MongoCollection::remove | Added "timeout" option.
 | MongoCollection::save | Added "timeout" option.
 | MongoCollection::update | Added "timeout" option.
 | MongoDB::command | Added options parameter with a single option: "timeout".
PECL mongo 1.1.0 | MongoCursor::info | Added a number of other fields, including id (the cursor id), at (the driver's counter of which document is current), numReturned (the number returned by the server in the current batch), and server (which server the query was sent to—useful in conjunction with .
PECL mongo 1.0.11 | MongoCollection::ensureIndex | The "safe" option will trigger a primary failover, if necessary. MongoException will be thrown if the index name (either generated or set) is longer than 128 bytes.
 | MongoCollection::insert | Disconnects on "not master" errors if "safe" is set.
 | MongoCollection::remove | Disconnects on "not master" errors if "safe" is set.
 | MongoCollection::save | Disconnects on "not master" errors if "safe" is set.
 | MongoCollection::update | Disconnects on "not master" errors if "safe" is set.
PECL mongo 1.0.10 | MongoCursor::info | Added started_iterating field, a boolean indicating if cursor is pre- or post-query.
PECL mongo 1.0.9 | MongoClient::__construct | Added "replicaSet" option.
 | MongoCollection::batchInsert | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option.
 | MongoCollection::insert | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option. The return type was changed to be an array containing error information if the "safe" option is used. Otherwise, a boolean is returned as before.
 | MongoCollection::remove | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option. The return type was changed to be an array containing error information if the "safe" option is used. Otherwise, a boolean is returned as before.
 | MongoCollection::save | Added "fsync" option.
 | MongoCollection::update | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option. The return type was changed to be an array containing error information if the "safe" option is used. Otherwise, a boolean is returned as before.
PECL mongo 1.0.7 | MongoCollection::count | Added limit and skip as second and third parameters, respectively.
PECL mongo 1.0.5 | MongoCollection::batchInsert | Added options parameter.
 | MongoCollection::ensureIndex | Added the "name" option to override index name creation.
 | MongoCollection::remove | Changed second parameter to be an array of options. Pre-1.0.5, the second parameter was a boolean indicating the "safe" option.
 | MongoCollection::save | Added options parameter.
 | MongoCollection::update | Added "safe" option.
PECL mongo 1.0.2 | MongoClient::__construct | Changed constructor to take an array of options. Pre-1.0.2, the constructor took the following parameters: server The server name. connect Optional boolean parameter specifying if the constructor should connect to the database before returning. Defaults to true. persistent If the connection should be persistent. paired If the connection should be paired.
 | MongoCollection::ensureIndex | Changed options parameter from boolean to array. Pre-1.0.2, the second parameter was an optional boolean value specifying a unique index.
 | MongoCollection::insert | Changed second parameter to be an array of options. Pre-1.0.2, the second parameter was a boolean indicating the "safe" option.
PECL mongo 1.0.1 | MongoCollection::insert | Throw a MongoCursorException if the "safe" option is set and the insert fails.
 | MongoCollection::update | Changed options parameter from boolean to array. Pre-1.0.1, the second parameter was an optional boolean value specifying an upsert.


MongoDB driver

Unlike the mongo extension, this extension is developed atop the » libmongoc and » libbson libraries. It provides a minimal API for core driver functionality: commands, queries, writes, connection management, and BSON serialization.

Userland PHP libraries that depend on this extension may provide higher level APIs, such as query builders, individual command helper methods, and GridFS. Application developers should consider using this extension in conjunction with the » MongoDB PHP library, which implements the same higher level APIs found in MongoDB drivers for other languages. This separation of concerns allows the driver to focus on essential features for which an extension implementation is paramount for performance.

  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Vordefinierte Konstanten
  • Tutorials
    • Using the PHP Library for MongoDB (PHPLIB)
    • Application Performance Monitoring (APM)
  • Driver Architecture and Internals — Explains the driver architecture, and special features
    • Architecture — Architecture Overview
    • Connections — Connection handling and persistence
    • Persisting Data — Serialization and deserialization of PHP variables into MongoDB
  • Security
    • Request Injection Attacks
    • Script Injection Attacks
  • MongoDB\Driver — MongoDB driver classes
    • MongoDB\Driver\Manager — The MongoDB\Driver\Manager class
    • MongoDB\Driver\Command — The MongoDB\Driver\Command class
    • MongoDB\Driver\Query — The MongoDB\Driver\Query class
    • MongoDB\Driver\BulkWrite — The MongoDB\Driver\BulkWrite class
    • MongoDB\Driver\Session — The MongoDB\Driver\Session class
    • MongoDB\Driver\ClientEncryption — The MongoDB\Driver\ClientEncryption class
    • MongoDB\Driver\WriteConcern — The MongoDB\Driver\WriteConcern class
    • MongoDB\Driver\ReadPreference — The MongoDB\Driver\ReadPreference class
    • MongoDB\Driver\ReadConcern — The MongoDB\Driver\ReadConcern class
    • MongoDB\Driver\Cursor — The MongoDB\Driver\Cursor class
    • MongoDB\Driver\CursorId — The MongoDB\Driver\CursorId class
    • MongoDB\Driver\CursorInterface — The MongoDB\Driver\CursorInterface interface
    • MongoDB\Driver\Server — The MongoDB\Driver\Server class
    • MongoDB\Driver\WriteConcernError — The MongoDB\Driver\WriteConcernError class
    • MongoDB\Driver\WriteError — The MongoDB\Driver\WriteError class
    • MongoDB\Driver\WriteResult — The MongoDB\Driver\WriteResult class
  • MongoDB\BSON — BSON type classes and serialization functions
    • Funktionen
    • MongoDB\BSON\Binary — The MongoDB\BSON\Binary class
    • MongoDB\BSON\Decimal128 — The MongoDB\BSON\Decimal128 class
    • MongoDB\BSON\Javascript — The MongoDB\BSON\Javascript class
    • MongoDB\BSON\MaxKey — The MongoDB\BSON\MaxKey class
    • MongoDB\BSON\MinKey — The MongoDB\BSON\MinKey class
    • MongoDB\BSON\ObjectId — The MongoDB\BSON\ObjectId class
    • MongoDB\BSON\Regex — The MongoDB\BSON\Regex class
    • MongoDB\BSON\Timestamp — The MongoDB\BSON\Timestamp class
    • MongoDB\BSON\UTCDateTime — The MongoDB\BSON\UTCDateTime class
    • MongoDB\BSON\Type — The MongoDB\BSON\Type interface
    • MongoDB\BSON\Persistable — The MongoDB\BSON\Persistable interface
    • MongoDB\BSON\Serializable — The MongoDB\BSON\Serializable interface
    • MongoDB\BSON\Unserializable — The MongoDB\BSON\Unserializable interface
    • MongoDB\BSON\BinaryInterface — The MongoDB\BSON\BinaryInterface interface
    • MongoDB\BSON\Decimal128Interface — The MongoDB\BSON\Decimal128Interface interface
    • MongoDB\BSON\JavascriptInterface — The MongoDB\BSON\JavascriptInterface interface
    • MongoDB\BSON\MaxKeyInterface — The MongoDB\BSON\MaxKeyInterface interface
    • MongoDB\BSON\MinKeyInterface — The MongoDB\BSON\MinKeyInterface interface
    • MongoDB\BSON\ObjectIdInterface — The MongoDB\BSON\ObjectIdInterface interface
    • MongoDB\BSON\RegexInterface — The MongoDB\BSON\RegexInterface interface
    • MongoDB\BSON\TimestampInterface — The MongoDB\BSON\TimestampInterface interface
    • MongoDB\BSON\UTCDateTimeInterface — The MongoDB\BSON\UTCDateTimeInterface interface
    • MongoDB\BSON\DBPointer — The MongoDB\BSON\DBPointer class (deprecated)
    • MongoDB\BSON\Int64 — The MongoDB\BSON\Int64 class
    • MongoDB\BSON\Symbol — The MongoDB\BSON\Symbol class (deprecated)
    • MongoDB\BSON\Undefined — The MongoDB\BSON\Undefined class (deprecated)
  • MongoDB\Driver\Monitoring — Monitoring classes and subscriber functions
    • Funktionen
    • MongoDB\Driver\Monitoring\CommandFailedEvent — The MongoDB\Driver\Monitoring\CommandFailedEvent class
    • MongoDB\Driver\Monitoring\CommandStartedEvent — The MongoDB\Driver\Monitoring\CommandStartedEvent class
    • MongoDB\Driver\Monitoring\CommandSucceededEvent — The MongoDB\Driver\Monitoring\CommandSucceededEvent class
    • MongoDB\Driver\Monitoring\CommandSubscriber — The MongoDB\Driver\Monitoring\CommandSubscriber interface
    • MongoDB\Driver\Monitoring\Subscriber — The MongoDB\Driver\Monitoring\Subscriber interface
  • MongoDB\Driver\Exception — Exception classes
    • MongoDB\Driver\Exception\AuthenticationException — The MongoDB\Driver\Exception\AuthenticationException class
    • MongoDB\Driver\Exception\BulkWriteException — The MongoDB\Driver\Exception\BulkWriteException class
    • MongoDB\Driver\Exception\CommandException — The MongoDB\Driver\Exception\CommandException class
    • MongoDB\Driver\Exception\ConnectionException — The MongoDB\Driver\Exception\ConnectionException class
    • MongoDB\Driver\Exception\ConnectionTimeoutException — The MongoDB\Driver\Exception\ConnectionTimeoutException class
    • MongoDB\Driver\Exception\EncryptionException — The MongoDB\Driver\Exception\EncryptionException class
    • MongoDB\Driver\Exception\Exception — The MongoDB\Driver\Exception\Exception interface
    • MongoDB\Driver\Exception\ExecutionTimeoutException — The MongoDB\Driver\Exception\ExecutionTimeoutException class
    • MongoDB\Driver\Exception\InvalidArgumentException — The MongoDB\Driver\Exception\InvalidArgumentException class
    • MongoDB\Driver\Exception\LogicException — The MongoDB\Driver\Exception\LogicException class
    • MongoDB\Driver\Exception\RuntimeException — The MongoDB\Driver\Exception\RuntimeException class
    • MongoDB\Driver\Exception\ServerException — The MongoDB\Driver\Exception\ServerException class
    • MongoDB\Driver\Exception\SSLConnectionException — The MongoDB\Driver\Exception\SSLConnectionException class (deprecated)
    • MongoDB\Driver\Exception\UnexpectedValueException — The MongoDB\Driver\Exception\UnexpectedValueException class
    • MongoDB\Driver\Exception\WriteException — The MongoDB\Driver\Exception\WriteException class
    • Class Tree — MongoDB Exception Class Tree


Installation/Konfiguration

  • Anforderungen
  • Installation
    • Installing the MongoDB PHP Driver with PECL
    • Installing the MongoDB PHP Driver on macOS with Homebrew
    • Installing the MongoDB PHP Driver on Windows
    • Building the MongoDB PHP Driver from source
  • Laufzeit-Konfiguration
  • Vordefinierte Konstanten


Anforderungen

As of version 1.8.0, the driver requires PHP 7.0 or higher. Previous versions of the driver allow compatibility with older PHP versions.

The driver requires » libbson and » libmongoc, and will use bundled versions of both libraries by default. System libraries may also be used, as discussed in the manual installation documentation.

The driver, via libmongoc, optionally depends on a TLS library (e.g. OpenSSL) and will use it if available. If the build process fails to find a TLS library, users should check that the appropriate development package (e.g. libssl-dev) and » pkg-config are both installed. The process for detecting and configuring TLS libraries is discussed in more detail in the manual installation documentation.

» Cyrus SASL is an optional dependency to support Kerberos authentication and will be used if available.

Hinweis: Due to potential problems representing 64-bit integers on 32-bit platforms, users are advised to use 64-bit environments. When using a 32-bit platform, be aware that any 64-bit integer read from the database will be returned as a MongoDB\BSON\Int64 instance instead of a PHP integer type.


Installation

Inhaltsverzeichnis

  • Installing the MongoDB PHP Driver with PECL
  • Installing the MongoDB PHP Driver on macOS with Homebrew
  • Installing the MongoDB PHP Driver on Windows
  • Building the MongoDB PHP Driver from source


Installing the MongoDB PHP Driver with PECL

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/mongodb

Linux, Unix, and macOS users may run the following command to install the driver:

$ sudo pecl install mongodb

If your system has multiple version of PHP installed (e.g. macOS default, Homebrew, » XAMPP), note that that each version of PHP has its own pecl command and php.ini file.

Installing the driver via PECL will use bundled versions of » libbson and » libmongoc and attempt to automatically configure them.

Hinweis: If the build process fails to find an SSL library, check that the development packages (e.g. libssl-dev) and » pkg-config are both installed. If that does not resolve the problem, consider using the manual installation process.

Finally, add the following line to your php.ini file:

extension=mongodb.so


Installing the MongoDB PHP Driver on macOS with Homebrew

» Homebrew 1.5.0 deprecated the » Homebrew/php tap and removed formulae for individual PHP extensions. Going forward, macOS users are advised to install the » php formula and follow the standard PECL installation instructions using the pecl command provided by the Homebrew PHP installation.


Installing the MongoDB PHP Driver on Windows

Precompiled binaries for each release are available from » PECL for a variety of combinations of versions, thread safety, and VC libraries. Extract the archive and put php_mongodb.dll in your PHP extension directory ("ext" by default).

Add the following line to your php.ini file:

extension=php_mongodb.dll

Hinweis: Additional DLL dependencies for Windows Users

Diese Extension benötigt DLL-Dateien. die für Windows verfügbar seien müssen. Der FAQ-Eintrag " Wie füge ich unter Windows PATH mein PHP-Verzeichnis hinzu?" gibt hierzu weitere Informationen. Obwohl ein einfaches Kopieren der DLL-Dateien vom PHP-Verzeichnis in den Windows-Systemordner auch funktioniert (weil der Systemordner immer im PATH enthalten ist), ist dieses Vorgehen nicht empfehlenswert. Diese Extension benötigt die folgenden Dateien im PATH: libsasl.dll


Building the MongoDB PHP Driver from source

For driver developers and people interested in the latest bugfixes, you can compile the driver from the latest source code on » Github. Run the following commands to clone and build the project:

$ git clone https://github.com/mongodb/mongo-php-driver.git
$ cd mongo-php-driver
$ git submodule update --init
$ phpize
$ ./configure
$ make all
$ sudo make install

If your system has multiple version of PHP installed (e.g. macOS default and » XAMPP), note that each version of PHP has its own phpize command and php.ini file.

By default, the driver will use bundled versions of » libbson, » libmongoc, and » libmongocrypt and attempt to configure them on its own. If these libraries are already installed as system libraries, you can instruct the driver to utilize them by specifying --with-libbson=yes --with--libmongoc=yes as arguments to configure. Starting with version 1.7.0 of the extension, these arguments are deprecated and you should use --with-mongodb-system-libs=yes instead.

For a complete list of configure options, run configure --help.

When using bundled versions of libbson and libmongoc, the driver will also attempt to select an SSL library according to the --with-mongodb-ssl option for configure. The default value is --with-mongodb-ssl=auto, which will search for Secure Transport (macOS only), OpenSSL, and LibreSSL, in that order. Additionally, you may specify openssl, libressl, or darwin to force selection of a particular library, respectively.

Hinweis:

If the build process fails to find an SSL library, check that the development packages (e.g. libssl-dev) and » pkg-config are both installed.

When using Homebrew on macOS, it is common for a system to have multiple versions of OpenSSL installed. To ensure that the desired version of OpenSSL is selected, the PKG_CONFIG_PATH environment variable may be used to control the search path for pkg-config. If pkg-config is not used, configure also supports a --with-openssl-dir=DIR argument, which can be used to specify a manual search path (for OpenSSL only).

The final build step, make install, will report where mongodb.so has been installed, similar to:

Installing shared extensions:     /usr/lib/php/extensions/debug-non-zts-20151012/

Ensure that the extension_dir option in php.ini points to the directory where mongodb.so was installed. You can query for the option by running:

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/debug-non-zts-20151012 =>
                   /usr/lib/php/extensions/debug-non-zts-20151012

If the directories differ, either change extension_dir in php.ini or manually move mongodb.so to the correct directory.

Finally, add the following line to your php.ini file:

extension=mongodb.so


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

mongodb Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog | Comments
mongodb.debug | "" | PHP_INI_ALL |  |

Hier eine kurze Erklärung der Konfigurationsoptionen:

mongodb.debug string

Store full activity debug log in this directory or stream. The special value "stderr" can be provided to write to STDERR.

Hinweis:

Please note that the debug log can contain sensitive information, such as credentials to the MongoDB server and full documents written to or read from the server. Please review any debug logs before sharing them with other people.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

MONGODB_VERSION (string)
x.y.z style version number of the extension
MONGODB_STABILITY (string)
Current stability (alpha/beta/stable)


Tutorials

In this section you will find several tutorials on how to use the MongoDB driver for PHP.

  • Using the PHP Library for MongoDB (PHPLIB)
  • Application Performance Monitoring (APM)


Using the PHP Library for MongoDB (PHPLIB)

After the initial driver set-up, we will continue explaining how to get started with the MongoDB driver and corresponding userland library to write our first project.

Installing the PHP Library with Composer

The last thing we still need to install to get started on the application itself, is the PHP library.

The library needs to be installed with » Composer, a package manager for PHP. Instructions for installing Composer on various platforms may be found on its website.

Install the library by running:

$ composer require mongodb/mongodb

It will output something akin to:

./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing mongodb/mongodb (1.0.0)
    Downloading: 100%

Writing lock file
Generating autoload files

Composer will create several files: composer.json, composer.lock, and a vendor directory that will contain the library and any other dependencies your project might require.

Using the PHP Library

In addition to managing your dependencies, Composer will also provide you with an autoloader (for those dependencies' classes). Ensure that it is included at the start of your script or in your application's bootstrap code:

<?php
// This path should point to Composer's autoloader
require 'vendor/autoload.php';

With this done, you can now use any of the functionality as described in the » library documentation.

If you have previously used the old driver (i.e. mongo extension), the library's API should look familiar. It contains a » Client class for connecting to MongoDB, and » Database class for database-level operations (e.g. commands, collection management) and a » Collection class for collection-level operations (e.g. » CRUD methods, index management). Various Collection methods have been renamed for clarity, and to be in accordance with a new language-agnostic » specification.

As an example, this is how you insert a document into the beers collection of the demo database:

<?php
require 'vendor/autoload.php'; // include Composer's autoloader

$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;

$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

echo "Inserted with Object ID '{$result->getInsertedId()}'";
?>

Instead of injecting the generated _id field into the input document (as was done in the old driver), it is now made available through the result object returned by the insertOne method.

After insertion, you can of course also query the data that you have just inserted. For that, you use the find method, which returns an iterable cursor:

<?php
require 'vendor/autoload.php'; // include Composer's autoloader

$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;

$result = $collection->find( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

foreach ($result as $entry) {
    echo $entry['_id'], ': ', $entry['name'], "\n";
}
?>

While it may not be apparent in the examples, BSON documents and arrays are unserialized as type classes in the library by default. These classes ensure that values preserve their type when being serialized back into BSON, which avoids a caveat in the old driver where arrays might turn into documents, and vice versa. Additionally, the classes extend ArrayObject for enhanced usability. You can find more information on how serialization and deserialization between PHP variables and BSON is handled by the driver and library by reading the Persisting Data specification.


Application Performance Monitoring (APM)

Since version 1.3, the MongoDB driver contains an API for performance monitoring. This API allows you to find out how long specific operations take by setting up subscribers. Each subscriber is required to implement one or more interfaces under the MongoDB\Driver\Monitoring namespace. Currently, only the MongoDB\Driver\Monitoring\CommandSubscriber interface is available.

The MongoDB\Driver\Monitoring\CommandSubscriber interface defines three methods: commandStarted, commandSucceeded, and commandFailed. Each of these three methods accept a single event argument of a specific class for the respective event. For example, the commandSucceeded's $event argument is a MongoDB\Driver\Monitoring\CommandSucceededEvent object.

In this tutorial we will implement a subscriber that creates a list of all the query profiles and the average time they took.

Subscriber Class Scaffolding

We start with the framework for our subscriber:

<?php

class QueryTimeCollector implements \MongoDB\Driver\Monitoring\CommandSubscriber
{
    public function commandStarted( \MongoDB\Driver\Monitoring\CommandStartedEvent $event )
    {
    }

    public function commandSucceeded( \MongoDB\Driver\Monitoring\CommandSucceededEvent $event )
    {
    }

    public function commandFailed( \MongoDB\Driver\Monitoring\CommandFailedEvent $event )
    {
    }
}

?>

Registering the Subscriber

Once a subscriber object is instantiated, it needs to be registered with the driver's monitoring system. This is done by calling MongoDB\Driver\Monitoring\addSubscriber().

<?php

\MongoDB\Driver\Monitoring\addSubscriber( new QueryTimeCollector() );

?>

Implementing the Logic

With the object registered, the only thing left is to implement the logic in the subscriber class. To correlate the two events that make up a successfully executed command (commandStarted and commandSucceeded), each event object exposes a requestId field.

To record the average time per query shape, we will start by checking for a find command in the commandStarted event. We will then add an item to the pendingCommands property indexed by its requestId and with its value representing the query shape.

If we receive a corresponding commandSucceeded event with the same requestId, we add the duration of the event (from durationMicros) to the total time and increment the operation count.

If a corresponding commandFailed event is encountered, we just remove the entry from the pendingCommands property.

<?php

class QueryTimeCollector implements \MongoDB\Driver\Monitoring\CommandSubscriber
{
    private $pendingCommands = [];
    private $queryShapeStats = [];

    /* Creates a query shape out of the filter argument. Right now it only
     * takes the top level fields into account */
    private function createQueryShape( array $filter )
    {
        return json_encode( array_keys( $filter ) );
    }

    public function commandStarted( \MongoDB\Driver\Monitoring\CommandStartedEvent $event )
    {
        if ( array_key_exists( 'find', (array) $event->getCommand() ) )
        {
            $queryShape = $this->createQueryShape( (array) $event->getCommand()->filter );
            $this->pendingCommands[$event->getRequestId()] = $queryShape;
        }
    }

    public function commandSucceeded( \MongoDB\Driver\Monitoring\CommandSucceededEvent $event )
    {
        $requestId = $event->getRequestId();
        if ( array_key_exists( $requestId, $this->pendingCommands ) )
        {
            $this->queryShapeStats[$this->pendingCommands[$requestId]]['count']++;
            $this->queryShapeStats[$this->pendingCommands[$requestId]]['duration'] += $event->getDurationMicros();
            unset( $this->pendingCommands[$requestId] );
        }
    }

    public function commandFailed( \MongoDB\Driver\Monitoring\CommandFailedEvent $event )
    {
        if ( array_key_exists( $event->getRequestId(), $this->pendingCommands ) )
        {
            unset( $this->pendingCommands[$event->getRequestId()] );
        }
    }

    public function __destruct()
    {
        foreach( $this->queryShapeStats as $shape => $stats )
        {
            echo "Shape: ", $shape, " (", $stats['count'], ")\n  ",
                $stats['duration'] / $stats['count'], "µs\n\n";
        }
    }
}

$m = new \MongoDB\Driver\Manager( 'mongodb://localhost:27016' );

/* Add the subscriber */
\MongoDB\Driver\Monitoring\addSubscriber( new QueryTimeCollector() );

/* Do a bunch of queries */
$query = new \MongoDB\Driver\Query( [
    'region_slug' => 'scotland-highlands', 'age' => [ '$gte' => 20 ]
] );
$cursor = $m->executeQuery( 'dramio.whisky', $query );

$query = new \MongoDB\Driver\Query( [
    'region_slug' => 'scotland-lowlands', 'age' => [ '$gte' => 15 ]
] );
$cursor = $m->executeQuery( 'dramio.whisky', $query );

$query = new \MongoDB\Driver\Query( [ 'region_slug' => 'scotland-lowlands' ] );
$cursor = $m->executeQuery( 'dramio.whisky', $query );

?>


Explains the driver architecture, and special features

  • Architecture — Architecture Overview
  • Connections — Connection handling and persistence
  • Persisting Data — Serialization and deserialization of PHP variables into MongoDB
    • Serialization to BSON
    • Deserialization from BSON


Architecture Overview

This section explains how all the different parts of the driver fit together. From the different language runtimes, through the extension and to the PHP libraries on top. This new architecture has replaced the old mongo extension. We refer to the new one as the mongodb extension.

At the top of this stack sits a pure » PHP library, which we will distribute as a Composer package. This library will provide an API similar to what users have come to expect from the old mongo driver (e.g. CRUD methods, database and collection objects, command helpers) and we expect it to be a common dependency for most applications built with MongoDB. This library will also implement common » specifications, in the interest of improving API consistency across all of the » drivers maintained by MongoDB (and hopefully some community drivers, too).

Sitting below that library we have the lower level driver. This extension will effectively form the glue between PHP and our system libraries (» libmongoc and » libbson). This extension will expose an identical public API for the most essential and performance-sensitive functionality:

  • Connection management
  • BSON encoding and decoding
  • Object document serialization (to support ODM libraries)
  • Executing commands and write operations
  • Handling queries and cursors

By decoupling the driver internals and a high-level API into an extension and PHP libraries, respectively, we hope to reduce our maintainence burden and allow for faster iteration on new features. As a welcome side effect, this also makes it easier for anyone to contribute to the driver. Additionally, an identical public API will make it that much easier to port an application across PHP runtimes, whether the application uses the low-level driver directly or a higher-level PHP library.

» GridFS is a great example of why we chose this direction. Although we implemented GridFS in C for our old mongo driver, it is actually quite a high-level specification. Its API is just an abstraction for accessing two collections: files (i.e. metadata) and chunks (i.e. blocks of data). Likewise, all of the syntactic sugar found in the old mongo driver, such as processing uploaded files or exposing GridFS files as PHP streams, can be implemented in pure PHP. Provided we have performant methods for reading from and writing to GridFS' collections – and thanks to our low level extensions, we will – shifting this API to PHP is win-win.

Earlier I mentioned that we expect the PHP library to be a common dependency for most applications, but not all. Some users may prefer to stick to the no-frills API offered by the extensions, or create their own high-level abstraction (akin to » Doctrine MongoDB for the old mongo driver). Future libraries could include a PHP library geared for MongoDB administration, which provides an API for various user management and ops commands. The next major version of » Doctrine MongoDB ODM will likely also sit directly atop the extensions.

While we will continue to maintain and support the old mongo driver and its users for the foreseeable future, we invite everyone to use the next-generation driver and consider it for any new projects going forward. You can find all of the essential components across GitHub and JIRA:

Driver Source Code and JIRA Locations
Project | GitHub | JIRA
PHP Library | » mongodb/mongo-php-library | » PHPLIB
PHP 5 and PHP 7 Driver (phongo) | » mongodb/mongo-php-driver | » PHPC

The existing » PHP project in JIRA will remain open for reporting bugs against the old mongo driver, but we would ask that you use the new projects above for anything pertaining to our next-generation drivers.


Connection handling and persistence

Hinweis: On Unix platforms, the MongoDB driver is sensitive to scripts that use the fork() system call without also calling exec(). Users are advised not to re-use MongoDB\Driver\Manager instances in a forked child process.

Connection and topology persistence (PHP version since 1.2.0)

All versions of the driver since 1.2.0 persist the » libmongoc client object in the PHP worker process, which allows it to re-use database connections, authentication states, and topology information across multiple requests.

When MongoDB\Driver\Manager::__construct() is invoked, a hash is created from its arguments (i.e. URI string and array options). The driver will attempt to find a previously persisted » libmongoc client object for that hash. If an existing client cannot be found for the hash, a new client will be created (and persisted for future use).

Each client contains its own database connections and a view of the server topology (e.g. standalone, replica set, shard cluster). By persisting the client between PHP requests, the driver is able to re-use established database connections and remove the need for » discovering the server topology on each request.

Consider the following example:

<?php

$managers = [
    new MongoDB\Driver\Manager('mongodb://127.0.0.1'),
    new MongoDB\Driver\Manager('mongodb://127.0.0.1'),
    new MongoDB\Driver\Manager('mongodb://127.0.0.1:27017'),
    new MongoDB\Driver\Manager('mongodb://rs1.example.com,rs2.example.com/', ['replicaSet' => 'myReplicaSet']),
];

foreach ($managers as $manager) {
    $manager->executeCommand('test', new MongoDB\Driver\Command(['ping' => 1]));
}

?>

The first two Manager objects will share the same » libmongoc client since their constructor arguments are identical. The third and fourth objects will each use their own client. In total, three clients will be created and the PHP worker executing this script will open two connections to 127.0.0.1 and one connection to each of rs1.example.com and rs2.example.com. If the driver discovers additional members of the replica set after issuing isMaster commands, it will open additional connections to those servers as well.

If the same worker executes the script again in a second request, the three clients will be re-used and no new connections should be made. Depending on how long ago the previous request was served, the driver may need to issue additional isMaster commands to update its view of the topologies.

Socket persistence (PHP versions before 1.2.0)

Versions of the PHP driver before 1.2.0 utilize PHP's Streams API for database connections, using an API within » libmongoc to designate custom handlers for socket communication; however, a new libmongoc client is created for each MongoDB\Driver\Manager. As a result, the driver persists individual database connections but not authentication state or topology information. This means that the driver needs to issue commands at the start of each request to authenticate and » discover the server topology.

Database connections are persisted by a hash derived from the server's host, port, and the URI string used to construct the MongoDB\Driver\Manager. The constructor's array options are not included in this hash.

Hinweis: Versions of the driver >= 1.1.8 and < 1.2.0 do not persist sockets for SSL connections. See » PHPC-720 for additional information.

Despite its shortcomings with persisting SSL connections when and topology information, this version of the driver supports all SSL context options since it uses PHP's Streams API.


Serialization and deserialization of PHP variables into MongoDB

Inhaltsverzeichnis

  • Serialization to BSON
  • Deserialization from BSON

This document discusses the methods how compound structures (documents, arrays, objects) are persisted through the drivers. And how they are brought back into PHP land.


Serialization to BSON

Arrays

If an array is a packed array — i.e. the keys start at 0 and are sequential without gaps: BSON array.

If the array is not packed — i.e. having associative (string) keys, the keys don't start at 0, or when there are gaps:: BSON object

A top-level (root) document, always serializes as a BSON document.

Examples

These serialize as a BSON array:

[ 8, 5, 2, 3 ] => [ 8, 5, 2, 3 ]
[ 0 => 4, 1 => 9 ] => [ 4, 9 ]

These serialize as a BSON document:

[ 0 => 1, 2 => 8, 3 => 12 ] => { "0" : 1, "2" : 8, "3" : 12 }
[ "foo" => 42 ] => { "foo" : 42 }
[ 1 => 9, 0 => 10 ] => { "1" : 9, "0" : 10 }

Note that the five examples are extracts of a full document, and represent only one value inside a document.

Objects

If an object is of the stdClass class, serialize as a BSON document.

If an object is a supported class that implements MongoDB\BSON\Type, then use the BSON serialization logic for that specific type. MongoDB\BSON\Type instances (excluding MongoDB\BSON\Serializable may only be serialized as a document field value. Attempting to serialize such an object as a root document will throw a MongoDB\Driver\Exception\UnexpectedValueException

If an object is of an unknown class implementing the MongoDB\BSON\Type interface, then throw a MongoDB\Driver\Exception\UnexpectedValueException

If an object is of any other class, without implementing any special interface, serialize as a BSON document. Keep only public properties, and ignore protected and private properties.

If an object is of a class that implements the MongoDB\BSON\Serializable interface, call MongoDB\BSON\Serializable::bsonSerialize() and use the returned array or stdClass to serialize as a BSON document or array. The BSON type will be determined by the following:

  1. Root documents must be serialized as a BSON document.

  2. MongoDB\BSON\Persistable objects must be serialized as a BSON document.

  3. If MongoDB\BSON\Serializable::bsonSerialize() returns a packed array, serialize as a BSON array.

  4. If MongoDB\BSON\Serializable::bsonSerialize() returns a non-packed array or stdClass, serialize as a BSON document.

  5. If MongoDB\BSON\Serializable::bsonSerialize() did not return an array or stdClass, throw an MongoDB\Driver\Exception\UnexpectedValueException exception.

If an object is of a class that implements the MongoDB\BSON\Persistable interface (which implies MongoDB\BSON\Serializable), obtain the properties in a similar way as in the previous paragraphs, but also add an additional property __pclass as a Binary value, with subtype 0x80 and data bearing the fully qualified class name of the object that is being serialized.

The __pclass property is added to the array or object returned by MongoDB\BSON\Serializable::bsonSerialize(), which means it will overwrite any __pclass key/property in the MongoDB\BSON\Serializable::bsonSerialize() return value. If you want to avoid this behaviour and set your own __pclass value, you must not implement MongoDB\BSON\Persistable and should instead implement MongoDB\BSON\Serializable directly.

Examples

<?php

class stdClass {
  public $foo = 42;
} // => { "foo" : 42 }

class MyClass {
  public $foo = 42;
  protected $prot = "wine";
  private $fpr = "cheese";
} // => { "foo" : 42 }

class AnotherClass1 implements MongoDB\BSON\Serializable {
  public $foo = 42;
  protected $prot = "wine";
  private $fpr = "cheese";
  function bsonSerialize() {
      return [ 'foo' => $this->foo, 'prot' => $this->prot ];
  }
} // => { "foo" : 42, "prot" : "wine" }

class AnotherClass2 implements MongoDB\BSON\Serializable {
  public $foo = 42;
  function bsonSerialize() {
      return $this;
  }
} // => MongoDB\Driver\Exception\UnexpectedValueException("bsonSerialize() did not return an array or stdClass")

class AnotherClass3 implements MongoDB\BSON\Serializable {
  private $elements = [ 'foo', 'bar' ];
  function bsonSerialize() {
      return $this->elements;
  }
} // => { "0" : "foo", "1" : "bar" }

class ContainerClass implements MongoDB\BSON\Serializable {
  public $things = AnotherClass4 implements MongoDB\BSON\Serializable {
    private $elements = [ 0 => 'foo', 2 => 'bar' ];
    function bsonSerialize() {
      return $this->elements;
    }
  }
  function bsonSerialize() {
      return [ 'things' => $this->things ];
  }
} // => { "things" : { "0" : "foo", "2" : "bar" } }

class ContainerClass implements MongoDB\BSON\Serializable {
  public $things = AnotherClass5 implements MongoDB\BSON\Serializable {
    private $elements = [ 0 => 'foo', 2 => 'bar' ];
    function bsonSerialize() {
      return array_values($this->elements);
    }
  }
  function bsonSerialize() {
      return [ 'things' => $this->things ];
  }
} // => { "things" : [ "foo", "bar" ] }

class ContainerClass implements MongoDB\BSON\Serializable {
  public $things = AnotherClass6 implements MongoDB\BSON\Serializable {
    private $elements = [ 'foo', 'bar' ];
    function bsonSerialize() {
      return (object) $this->elements;
    }
  }
  function bsonSerialize() {
      return [ 'things' => $this->things ];
  }
} // => { "things" : { "0" : "foo", "1" : "bar" } }

class UpperClass implements MongoDB\BSON\Persistable {
  public $foo = 42;
  protected $prot = "wine";
  private $fpr = "cheese";
  function bsonSerialize() {
      return [ 'foo' => $this->foo, 'prot' => $this->prot ];
  }
} // => { "foo" : 42, "prot" : "wine", "__pclass" : { "$type" : "80", "$binary" : "VXBwZXJDbGFzcw==" } }


Deserialization from BSON

The legacy mongo extension deserialized both BSON documents and arrays as PHP arrays. While PHP arrays are convenient to work with, this behavior was problematic because different BSON types could deserialize to the same PHP value (e.g. {"0": "foo"} and ["foo"]) and make it impossible to infer the original BSON type. By default, the current driver addresses this concern by ensuring that BSON arrays and documents are converted to PHP arrays and objects, respectively.

For compound types, there are three data types:

root

refers to the top-level BSON document only

document

refers to embedded BSON documents only

array

refers to a BSON array

Besides the three collective types, it is also possible to configure specific fields in your document to map to the data types mentioned below. As an example, the following type map allows you to map each embedded document within an "addresses" array to an Address class and each "city" field within those embedded address documents to a City class:

[
    'fieldPaths' => [
        'addresses.$' => 'MyProject\Address',
        'addresses.$.city' => 'MyProject\City',
    ],
]

Each of those three data types, as well as the field specific mappings, can be mapped against different PHP types. The possible mapping values are:

not set or NULL (default)

  • A BSON array will be deserialized as a PHP array.

  • A BSON document (root or embedded) without a __pclass property [1] becomes a PHP stdClass object, with each BSON document key set as a public stdClass property.

  • A BSON document (root or embedded) with a __pclass property [1] becomes a PHP object of the class name as defined by the __pclass property.

    If the named class implements the MongoDB\BSON\Persistable interface, then the properties of the BSON document, including the __pclass property, are sent as an associative array to the MongoDB\BSON\Unserializable::bsonUnserialize() function to initialise the object's properties.

    If the named class does not exist or does not implement the MongoDB\BSON\Persistable interface, stdClass will be used and each BSON document key (including __pclass) will be set as a public stdClass property.

    The __pclass functionality relies on the property being part of a retrieved MongoDB document. If you use a projection when querying for documents, you need to include the __pclass field in the projection for this functionality to work.

"array"

Turns a BSON array or BSON document into a PHP array. There will be no special treatment of a __pclass property [1], but it may be set as an element in the returned array if it was present in the BSON document.

"object" or "stdClass"

Turns a BSON array or BSON document into a stdClass object. There will be no special treatment of a __pclass property [1], but it may be set as a public property in the returned object if it was present in the BSON document.

any other string

Defines the class name that the BSON array or BSON object should be deserialized as. For BSON objects that include __pclass properties, that class will take priority.

If the named class does not exist, is not concrete (i.e. it is abstract or an interface), or does not implement MongoDB\BSON\Unserializable then an MongoDB\Driver\Exception\InvalidArgumentException exception is thrown.

If the BSON object has a __pclass property and that class exists and implements MongoDB\BSON\Persistable it will supersede the class provided in the type map.

The properties of the BSON document, including the __pclass property if it exists, will be sent as an associative array to the MongoDB\BSON\Unserializable::bsonUnserialize() function to initialise the object's properties.

TypeMaps

TypeMaps can be set through the MongoDB\Driver\Cursor::setTypeMap() method on a MongoDB\Driver\Cursor object, or the $typeMap argument of MongoDB\BSON\toPHP(). Each of the three classes (root, document, and array) can be individually set, in addition to the field specific types.

If the value in the map is NULL, it means the same as the default value for that item.

Examples

These examples use the following classes:

MyClass

which does not implement any interface

YourClass

which implements MongoDB\BSON\Unserializable

OurClass

which implements MongoDB\BSON\Persistable

TheirClass

which extends OurClass

The MongoDB\BSON\Unserializable::bsonUnserialize() method of YourClass, OurClass, TheirClass iterate over the array and set the properties without modifications. It also sets the $unserialized property to true:

<?php

function bsonUnserialize( array $map )
{
    foreach ( $map as $k => $value )
    {
        $this->$k = $value;
    }
    $this->unserialized = true;
}

/* typemap: [] (all defaults) */
{ "foo": "yes", "bar" : false }
  -> stdClass { $foo => 'yes', $bar => false }

{ "foo": "no", "array" : [ 5, 6 ] }
  -> stdClass { $foo => 'no', $array => [ 5, 6 ] }

{ "foo": "no", "obj" : { "embedded" : 3.14 } }
  -> stdClass { $foo => 'no', $obj => stdClass { $embedded => 3.14 } }

{ "foo": "yes", "__pclass": "MyClass" }
  -> stdClass { $foo => 'yes', $__pclass => 'MyClass' }

{ "foo": "yes", "__pclass": { "$type" : "80", "$binary" : "MyClass" } }
  -> stdClass { $foo => 'yes', $__pclass => Binary(0x80, 'MyClass') }

{ "foo": "yes", "__pclass": { "$type" : "80", "$binary" : "YourClass") }
  -> stdClass { $foo => 'yes', $__pclass => Binary(0x80, 'YourClass') }

{ "foo": "yes", "__pclass": { "$type" : "80", "$binary" : "OurClass") }
  -> OurClass { $foo => 'yes', $__pclass => Binary(0x80, 'OurClass'), $unserialized => true }

{ "foo": "yes", "__pclass": { "$type" : "44", "$binary" : "YourClass") }
  -> stdClass { $foo => 'yes', $__pclass => Binary(0x44, 'YourClass') }

/* typemap: [ "root" => "MissingClass" ] */
{ "foo": "yes" }
  -> MongoDB\Driver\Exception\InvalidArgumentException("MissingClass does not exist")

/* typemap: [ "root" => "MyClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MyClass" } }
  -> MongoDB\Driver\Exception\InvalidArgumentException("MyClass does not implement Unserializable interface")

/* typemap: [ "root" => "MongoDB\BSON\Unserializable" ] */
{ "foo": "yes" }
  -> MongoDB\Driver\Exception\InvalidArgumentException("Unserializable is not a concrete class")

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MongoDB\BSON\Unserializable" } }
  -> YourClass { $foo => "yes", $__pclass => Binary(0x80, "MongoDB\BSON\Unserializable"), $unserialized => true }

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MyClass" } }
  -> YourClass { $foo => "yes", $__pclass => Binary(0x80, "MyClass"), $unserialized => true }

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "OurClass" } }
  -> OurClass { $foo => "yes", $__pclass => Binary(0x80, "OurClass"), $unserialized => true }

/* typemap: [ "root" => "YourClass" ] */
{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "TheirClass" } }
  -> TheirClass { $foo => "yes", $__pclass => Binary(0x80, "TheirClass"), $unserialized => true }

/* typemap: [ "root" => "OurClass" ] */
{ foo: "yes", "__pclass" : { "$type": "80", "$binary": "TheirClass" } }
  -> TheirClass { $foo => "yes", $__pclass => Binary(0x80, "TheirClass"), $unserialized => true }

/* typemap: [ 'root' => 'YourClass' ] */
{ foo: "yes", "__pclass" : { "$type": "80", "$binary": "YourClass" } }
  -> YourClass { $foo => 'yes', $__pclass => Binary(0x80, 'YourClass'), $unserialized => true }

/* typemap: [ 'root' => 'array', 'document' => 'array' ] */
{ "foo": "yes", "bar" : false }
  -> [ "foo" => "yes", "bar" => false ]

{ "foo": "no", "array" : [ 5, 6 ] }
  -> [ "foo" => "no", "array" => [ 5, 6 ] ]

{ "foo": "no", "obj" : { "embedded" : 3.14 } }
  -> [ "foo" => "no", "obj" => [ "embedded => 3.14 ] ]

{ "foo": "yes", "__pclass": "MyClass" }
  -> [ "foo" => "yes", "__pclass" => "MyClass" ]

{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "MyClass" } }
  -> [ "foo" => "yes", "__pclass" => Binary(0x80, "MyClass") ]

{ "foo": "yes", "__pclass" : { "$type": "80", "$binary": "OurClass" } }
  -> [ "foo" => "yes", "__pclass" => Binary(0x80, "OurClass") ]

/* typemap: [ 'root' => 'object', 'document' => 'object' ] */
{ "foo": "yes", "__pclass": { "$type": "80", "$binary": "MyClass" } }
  -> stdClass { $foo => "yes", "__pclass" => Binary(0x80, "MyClass") }


  • « Deserialization from BSON
  • Request Injection Attacks »
  • PHP Manual
  • MongoDB
  • Security

Security

  • Request Injection Attacks
  • Script Injection Attacks


Request Injection Attacks

If you are passing $_GET (or $_POST) parameters to your queries, make sure that they are cast to strings first. Users can insert associative arrays in GET and POST requests, which could then become unwanted $-queries.

A fairly innocuous example: suppose you are looking up a user's information with the request http://www.example.com?username=bob. Your application creates the query $q = new \MongoDB\Driver\Query( [ 'username' => $_GET['username'] ]).

Someone could subvert this by getting http://www.example.com?username[$ne]=foo, which PHP will magically turn into an associative array, turning your query into $q = new \MongoDB\Driver\Query( [ 'username' => [ '$ne' => 'foo' ] ] ), which will return all users not named "foo" (all of your users, probably).

This is a fairly easy attack to defend against: make sure $_GET and $_POST parameters are the type you expect before you send them to the database. PHP has the filter_var() function to assist with this.

Note that this type of attack can be used with any database interaction that locates a document, including updates, upserts, deletes, and findAndModify commands.

See » the main documentation for more information about SQL-injection-like issues with MongoDB.


Script Injection Attacks

If you are using JavaScript, make sure that any variables that cross the PHP- to-JavaScript boundry are passed in the scope field of MongoDB\BSON\Javascript, not interpolated into the JavaScript string. This can come up when using $where clauses in queries, mapReduce and group commands, and any other time you may pass JavaScript into the database.

For example, suppose we have some JavaScript to greet a user in the database logs. We could do:

<?php
$m = new MongoDB\Driver\Manager;

// Don't do this!!!
$username = $_GET['field'];

$cmd = new \MongoDB\Driver\Command( [
    'eval' => "print('Hello, $username!');"
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

However, what if a malicious user passes in some JavaScript?

<?php
$m = new MongoDB\Driver\Manager;

// Don't do this!!!
$username = $_GET['field'];
// $username is set to "'); db.users.drop(); print('"

$cmd = new \MongoDB\Driver\Command( [
    'eval' => "print('Hello, $username!');"
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

Now MongoDB executes the JavaScript string "print('Hello, '); db.users.drop(); print('!');". This attack is easy to avoid: use args to pass variables from PHP to JavaScript:

<?php
$m = new MongoDB\Driver\Manager;

$_GET['field'] = 'derick';
$args = [ $_GET['field'] ];

$cmd = new \MongoDB\Driver\Command( [
    'eval' => "function greet(username) { print('Hello, ' + username + '!'); }",
    'args' => $args,
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

This adds an argument to the JavaScript scope, which gets used as argument for the greet function. Now if someone tries to send malicious code, MongoDB will harmlessly print Hello, '); db.dropDatabase(); print('!.

Using arguments helps to prevent malicious input from being executed by the database. However, you must make sure that your code does not turn around and execute the input anyway! It is best to avoid executing any JavaScript on the server in the first place.

You are strongly recommended to stay clear of the » $where clause with queries, as it impacts performance significantly. Where possible, use either normal query operators, or the » Aggregation Framework.

As alternative to » MapReduce, which uses JavaScript, consider using the » Aggregation Framework. Unlike Map/Reduce, it uses an idiomatic language to construct queries, without having to write, and use, the slower JavaScript approach that Map/Reduce requires.

The » eval command has been deprecated since MongoDB 3.0, and should also be avoided.


MongoDB driver classes

  • MongoDB\Driver\Manager — The MongoDB\Driver\Manager class
    • MongoDB\Driver\Manager::__construct — Create new MongoDB Manager
    • MongoDB\Driver\Manager::createClientEncryption — Create a new ClientEncryption object
    • MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations
    • MongoDB\Driver\Manager::executeCommand — Execute a database command
    • MongoDB\Driver\Manager::executeQuery — Execute a database query
    • MongoDB\Driver\Manager::executeReadCommand — Execute a database command that reads
    • MongoDB\Driver\Manager::executeReadWriteCommand — Execute a database command that reads and writes
    • MongoDB\Driver\Manager::executeWriteCommand — Execute a database command that writes
    • MongoDB\Driver\Manager::getReadConcern — Return the ReadConcern for the Manager
    • MongoDB\Driver\Manager::getReadPreference — Return the ReadPreference for the Manager
    • MongoDB\Driver\Manager::getServers — Return the servers to which this manager is connected
    • MongoDB\Driver\Manager::getWriteConcern — Return the WriteConcern for the Manager
    • MongoDB\Driver\Manager::selectServer — Select a server matching a read preference
    • MongoDB\Driver\Manager::startSession — Start a new client session for use with this client
  • MongoDB\Driver\Command — The MongoDB\Driver\Command class
    • MongoDB\Driver\Command::__construct — Create a new Command
  • MongoDB\Driver\Query — The MongoDB\Driver\Query class
    • MongoDB\Driver\Query::__construct — Create a new Query
  • MongoDB\Driver\BulkWrite — The MongoDB\Driver\BulkWrite class
    • MongoDB\Driver\BulkWrite::__construct — Create a new BulkWrite
    • MongoDB\Driver\BulkWrite::count — Count number of write operations in the bulk
    • MongoDB\Driver\BulkWrite::delete — Add a delete operation to the bulk
    • MongoDB\Driver\BulkWrite::insert — Add an insert operation to the bulk
    • MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk
  • MongoDB\Driver\Session — The MongoDB\Driver\Session class
    • MongoDB\Driver\Session::abortTransaction — Aborts a transaction
    • MongoDB\Driver\Session::advanceClusterTime — Advances the cluster time for this session
    • MongoDB\Driver\Session::advanceOperationTime — Advances the operation time for this session
    • MongoDB\Driver\Session::commitTransaction — Commits a transaction
    • MongoDB\Driver\Session::__construct — Create a new Session (not used)
    • MongoDB\Driver\Session::endSession — Terminates a session
    • MongoDB\Driver\Session::getClusterTime — Returns the cluster time for this session
    • MongoDB\Driver\Session::getLogicalSessionId — Returns the logical session ID for this session
    • MongoDB\Driver\Session::getOperationTime — Returns the operation time for this session
    • MongoDB\Driver\Session::getServer — Returns the server to which this session is pinned
    • MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction
    • MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session
    • MongoDB\Driver\Session::isInTransaction — Returns whether a multi-document transaction is in progress
    • MongoDB\Driver\Session::startTransaction — Starts a transaction
  • MongoDB\Driver\ClientEncryption — The MongoDB\Driver\ClientEncryption class
    • MongoDB\Driver\ClientEncryption::createDataKey — Create a new encryption data key
    • MongoDB\Driver\ClientEncryption::decrypt — Decrypt a value
    • MongoDB\Driver\ClientEncryption::encrypt — Encrypt a value
  • MongoDB\Driver\WriteConcern — The MongoDB\Driver\WriteConcern class
    • MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\WriteConcern::__construct — Create a new WriteConcern
    • MongoDB\Driver\WriteConcern::getJournal — Returns the WriteConcern's "journal" option
    • MongoDB\Driver\WriteConcern::getW — Returns the WriteConcern's "w" option
    • MongoDB\Driver\WriteConcern::getWtimeout — Returns the WriteConcern's "wtimeout" option
    • MongoDB\Driver\WriteConcern::isDefault — Checks if this is the default write concern
    • MongoDB\Driver\WriteConcern::serialize — Serialize a WriteConcern
    • MongoDB\Driver\WriteConcern::unserialize — Unserialize a WriteConcern
  • MongoDB\Driver\ReadPreference — The MongoDB\Driver\ReadPreference class
    • MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\ReadPreference::__construct — Create a new ReadPreference
    • MongoDB\Driver\ReadPreference::getHedge — Returns the ReadPreference's "hedge" option
    • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Returns the ReadPreference's "maxStalenessSeconds" option
    • MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option
    • MongoDB\Driver\ReadPreference::getModeString — Returns the ReadPreference's "mode" option as a string
    • MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option
    • MongoDB\Driver\ReadPreference::serialize — Serialize a ReadPreference
    • MongoDB\Driver\ReadPreference::unserialize — Unserialize a ReadPreference
  • MongoDB\Driver\ReadConcern — The MongoDB\Driver\ReadConcern class
    • MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\ReadConcern::__construct — Create a new ReadConcern
    • MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option
    • MongoDB\Driver\ReadConcern::isDefault — Checks if this is the default read concern
    • MongoDB\Driver\ReadConcern::serialize — Serialize a ReadConcern
    • MongoDB\Driver\ReadConcern::unserialize — Unserialize a ReadConcern
  • MongoDB\Driver\Cursor — The MongoDB\Driver\Cursor class
    • MongoDB\Driver\Cursor::__construct — Create a new Cursor (not used)
    • MongoDB\Driver\Cursor::current — Returns the current element
    • MongoDB\Driver\Cursor::getId — Returns the ID for this cursor
    • MongoDB\Driver\Cursor::getServer — Returns the server associated with this cursor
    • MongoDB\Driver\Cursor::isDead — Checks if the cursor is exhausted or may have additional results
    • MongoDB\Driver\Cursor::key — Returns the current result's index within the cursor
    • MongoDB\Driver\Cursor::next — Advances the cursor to the next result
    • MongoDB\Driver\Cursor::rewind — Rewind the cursor to the first result
    • MongoDB\Driver\Cursor::setTypeMap — Sets a type map to use for BSON unserialization
    • MongoDB\Driver\Cursor::toArray — Returns an array containing all results for this cursor
    • MongoDB\Driver\Cursor::valid — Checks if the current position in the cursor is valid
  • MongoDB\Driver\CursorId — The MongoDB\Driver\CursorId class
    • MongoDB\Driver\CursorId::__construct — Create a new CursorId (not used)
    • MongoDB\Driver\CursorId::serialize — Serialize a CursorId
    • MongoDB\Driver\CursorId::__toString — String representation of the cursor ID
    • MongoDB\Driver\CursorId::unserialize — Unserialize a CursorId
  • MongoDB\Driver\CursorInterface — The MongoDB\Driver\CursorInterface interface
    • MongoDB\Driver\CursorInterface::getId — Returns the ID for this cursor
    • MongoDB\Driver\CursorInterface::getServer — Returns the server associated with this cursor
    • MongoDB\Driver\CursorInterface::isDead — Checks if the cursor may have additional results
    • MongoDB\Driver\CursorInterface::setTypeMap — Sets a type map to use for BSON unserialization
    • MongoDB\Driver\CursorInterface::toArray — Returns an array containing all results for this cursor
  • MongoDB\Driver\Server — The MongoDB\Driver\Server class
    • MongoDB\Driver\Server::__construct — Create a new Server (not used)
    • MongoDB\Driver\Server::executeBulkWrite — Execute one or more write operations on this server
    • MongoDB\Driver\Server::executeCommand — Execute a database command on this server
    • MongoDB\Driver\Server::executeQuery — Execute a database query on this server
    • MongoDB\Driver\Server::executeReadCommand — Execute a database command that reads on this server
    • MongoDB\Driver\Server::executeReadWriteCommand — Execute a database command that reads and writes on this server
    • MongoDB\Driver\Server::executeWriteCommand — Execute a database command that writes on this server
    • MongoDB\Driver\Server::getHost — Returns the hostname of this server
    • MongoDB\Driver\Server::getInfo — Returns an array of information about this server
    • MongoDB\Driver\Server::getLatency — Returns the latency of this server
    • MongoDB\Driver\Server::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Server::getTags — Returns an array of tags describing this server in a replica set
    • MongoDB\Driver\Server::getType — Returns an integer denoting the type of this server
    • MongoDB\Driver\Server::isArbiter — Checks if this server is an arbiter member of a replica set
    • MongoDB\Driver\Server::isHidden — Checks if this server is a hidden member of a replica set
    • MongoDB\Driver\Server::isPassive — Checks if this server is a passive member of a replica set
    • MongoDB\Driver\Server::isPrimary — Checks if this server is a primary member of a replica set
    • MongoDB\Driver\Server::isSecondary — Checks if this server is a secondary member of a replica set
  • MongoDB\Driver\WriteConcernError — The MongoDB\Driver\WriteConcernError class
    • MongoDB\Driver\WriteConcernError::getCode — Returns the WriteConcernError's error code
    • MongoDB\Driver\WriteConcernError::getInfo — Returns metadata document for the WriteConcernError
    • MongoDB\Driver\WriteConcernError::getMessage — Returns the WriteConcernError's error message
  • MongoDB\Driver\WriteError — The MongoDB\Driver\WriteError class
    • MongoDB\Driver\WriteError::getCode — Returns the WriteError's error code
    • MongoDB\Driver\WriteError::getIndex — Returns the index of the write operation corresponding to this WriteError
    • MongoDB\Driver\WriteError::getInfo — Returns metadata document for the WriteError
    • MongoDB\Driver\WriteError::getMessage — Returns the WriteError's error message
  • MongoDB\Driver\WriteResult — The MongoDB\Driver\WriteResult class
    • MongoDB\Driver\WriteResult::getDeletedCount — Returns the number of documents deleted
    • MongoDB\Driver\WriteResult::getInsertedCount — Returns the number of documents inserted (excluding upserts)
    • MongoDB\Driver\WriteResult::getMatchedCount — Returns the number of documents selected for update
    • MongoDB\Driver\WriteResult::getModifiedCount — Returns the number of existing documents updated
    • MongoDB\Driver\WriteResult::getServer — Returns the server associated with this write result
    • MongoDB\Driver\WriteResult::getUpsertedCount — Returns the number of documents inserted by an upsert
    • MongoDB\Driver\WriteResult::getUpsertedIds — Returns an array of identifiers for upserted documents
    • MongoDB\Driver\WriteResult::getWriteConcernError — Returns any write concern error that occurred
    • MongoDB\Driver\WriteResult::getWriteErrors — Returns any write errors that occurred
    • MongoDB\Driver\WriteResult::isAcknowledged — Returns whether the write was acknowledged


The MongoDB\Driver\Manager class

(mongodb >=1.0.0)

Einführung

The MongoDB\Driver\Manager is the main entry point to the extension. It is responsible for maintaining connections to MongoDB (be it standalone server, replica set, or sharded cluster).

No connection to MongoDB is made upon instantiating the Manager. This means the MongoDB\Driver\Manager can always be constructed, even though one or more MongoDB servers are down.

Any write or query can throw connection exceptions as connections are created lazily. A MongoDB server may also become unavailable during the life time of the script. It is therefore important that all actions on the Manager to be wrapped in try/catch statements.

Klassenbeschreibung

final MongoDB\Driver\Manager {
/* Methoden */
final public __construct
 ( string $uri = "mongodb://127.0.0.1/"
, array $uriOptions = array()
, array $driverOptions = array()
)
final public createClientEncryption ( array $options ) : MongoDB\Driver\ClientEncryption
final public executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk , array $options = array() ) : MongoDB\Driver\WriteResult
final public executeCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor
final public executeQuery ( string $namespace , MongoDB\Driver\Query $query , array $options = array() ) : MongoDB\Driver\Cursor
final public executeReadCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor
final public executeReadWriteCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor
final public executeWriteCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor
final public getReadConcern ( ) : MongoDB\Driver\ReadConcern
final public getReadPreference ( ) : MongoDB\Driver\ReadPreference
final public getServers ( ) : array
final public getWriteConcern ( ) : MongoDB\Driver\WriteConcern
final public selectServer ( MongoDB\Driver\ReadPreference $readPreference ) : MongoDB\Driver\Server
final public startSession ( array $options = ? ) : MongoDB\Driver\Session
}

Beispiele

Beispiel #1 MongoDB\Driver\Manager::__construct() basic example

var_dump()ing a MongoDB\Driver\Manager will print out various details about the manager that are otherwise not normally exposed. This can be useful to debug how the driver views your MongoDB setup, and which options are used.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
var_dump($manager);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MongoDB\Driver\Manager)#1 (3) {
  ["request_id"]=>
  int(1714636915)
  ["uri"]=>
  string(25) "mongodb://localhost:27017"
  ["cluster"]=>
  array(13) {
    ["mode"]=>
    string(6) "direct"
    ["state"]=>
    string(4) "born"
    ["request_id"]=>
    int(0)
    ["sockettimeoutms"]=>
    int(300000)
    ["last_reconnect"]=>
    int(0)
    ["uri"]=>
    string(25) "mongodb://localhost:27017"
    ["requires_auth"]=>
    int(0)
    ["nodes"]=>
    array(...)
    ["max_bson_size"]=>
    int(16777216)
    ["max_msg_size"]=>
    int(50331648)
    ["sec_latency_ms"]=>
    int(15)
    ["peers"]=>
    array(0) {
    }
    ["replSet"]=>
    NULL
  }
}

Inhaltsverzeichnis

  • MongoDB\Driver\Manager::__construct — Create new MongoDB Manager
  • MongoDB\Driver\Manager::createClientEncryption — Create a new ClientEncryption object
  • MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations
  • MongoDB\Driver\Manager::executeCommand — Execute a database command
  • MongoDB\Driver\Manager::executeQuery — Execute a database query
  • MongoDB\Driver\Manager::executeReadCommand — Execute a database command that reads
  • MongoDB\Driver\Manager::executeReadWriteCommand — Execute a database command that reads and writes
  • MongoDB\Driver\Manager::executeWriteCommand — Execute a database command that writes
  • MongoDB\Driver\Manager::getReadConcern — Return the ReadConcern for the Manager
  • MongoDB\Driver\Manager::getReadPreference — Return the ReadPreference for the Manager
  • MongoDB\Driver\Manager::getServers — Return the servers to which this manager is connected
  • MongoDB\Driver\Manager::getWriteConcern — Return the WriteConcern for the Manager
  • MongoDB\Driver\Manager::selectServer — Select a server matching a read preference
  • MongoDB\Driver\Manager::startSession — Start a new client session for use with this client


Create new MongoDB Manager

  • « MongoDB\Driver\Manager
  • MongoDB\Driver\Manager::createClientEncryption »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Create new MongoDB Manager

MongoDB\Driver\Manager::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Manager::__construct — Create new MongoDB Manager

Beschreibung

final public MongoDB\Driver\Manager::__construct
 ( string $uri = "mongodb://127.0.0.1/"
, array $uriOptions = array()
, array $driverOptions = array()
)

Constructs a new MongoDB\Driver\Manager object with the specified options.

Hinweis: Per the » Server Discovery and Monitoring Specification, this constructor performs no I/O. Connections will be initialized on demand, when the first operation is executed.

Hinweis: When specifying any SSL or TLS URI options via the connection string or uriOptions parameter, the driver will implicitly enable TLS for its connections. To avoid this, either explicitly disable the tls option or don't specify any TLS options.

Hinweis: On Unix platforms, the MongoDB driver is sensitive to scripts that use the fork() system call without also calling exec(). Users are advised not to re-use MongoDB\Driver\Manager instances in a forked child process.

Parameter-Liste

uri

A » mongodb:// connection URI:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[defaultAuthDb][?options]]

For details on supported URI options, see » Connection String Options in the MongoDB manual. » Connection pool options are not supported, as the PHP driver does not implement connection pools.

The uri is a URL, hence any special characters in its components need to be URL encoded according to » RFC 3986. This is particularly relevant to the username and password, which can often include special characters such as @, :, or %. When connecting via a Unix domain socket, the socket path may contain special characters such as slashes and must be encoded. The rawurlencode() function may be used to encode constituent parts of the URI.

The defaultAuthDb component may be used to specify the database name associated with the user's credentials; however the authSource URI option will take priority if specified. If neither defaultAuthDb nor authSource are specified, the admin database will be used by default. The defaultAuthDb component has no effect in the absence of user credentials.

uriOptions

Additional » connection string options, which will overwrite any options with the same name in the uri parameter.

uriOptions
Option | Type | Description
appname string

MongoDB 3.4+ has the ability to annotate connections with metadata provided by the connecting client. This metadata is included in the server's logs upon establishing a connection and also recorded in slow query logs when database profiling is enabled.

This option may be used to specify an application name, which will be included in the metadata. The value cannot exceed 128 characters in length.

authMechanism string

The authentication mechanism that MongoDB will use to authenticate the connection. For additional details and a list of supported values, see » Authentication Options in the MongoDB manual.

authMechanismProperties array

Properties for the selected authentication mechanism. For additional details and a list of supported properties, see the » Driver Authentication Specification.

Hinweis: When not specified in the URI string, this option is expressed as an array of key/value pairs. The keys and values in this array should be strings.

authSource string

The database name associated with the user's credentials. Defaults to the database component of the connection URI, or the admin database if both are unspecified.

For authentication mechanisms that delegate credential storage to other services (e.g. GSSAPI), this should be "$external".

canonicalizeHostname bool

If true, the driver will resolve the real hostname for the server IP address before authenticating via SASL. Some underlying GSSAPI layers already do this, but the functionality may be disabled in their config (e.g. krb.conf). Defaults to false.

This option is a deprecated alias for the "CANONICALIZE_HOST_NAME" property of the "authMechanismProperties" URI option.

compressors string

A prioritized, comma-delimited list of compressors that the client wants to use. Messages are only compressed if the client and server share any compressors in common, and the compressor used in each direction will depend on the individual configuration of the server or driver. See the » Driver Compression Specification for more information.

connectTimeoutMS int

The time in milliseconds to attempt a connection before timing out. Defaults to 10,000 milliseconds.

directConnection bool

This option can be used to control replica set discovery behavior when only a single host is provided in the connection string. By default, providing a single member in the connection string will establish a direct connection or discover additional members depending on whether the "replicaSet" URI option is omitted or present, respectively. Specify false to force discovery to occur (if "replicaSet" is omitted) or specify true to force a direct connection (if "replicaSet" is present).

gssapiServiceName string

Set the Kerberos service name when connecting to Kerberized MongoDB instances. This value must match the service name set on MongoDB instances (i.e. » saslServiceName server parameter). Defaults to "mongodb".

This option is a deprecated alias for the "SERVICE_NAME" property of the "authMechanismProperties" URI option.

heartbeatFrequencyMS int

Specifies the interval in milliseconds between the driver's checks of the MongoDB topology, counted from the end of the previous check until the beginning of the next one. Defaults to 60,000 milliseconds.

Per the » Server Discovery and Monitoring Specification, this value cannot be less than 500 milliseconds.

journal bool

Corresponds to the default write concern's journal parameter. If true, writes will require acknowledgement from MongoDB that the operation has been written to the journal. For details, see MongoDB\Driver\WriteConcern.

localThresholdMS int

The size in milliseconds of the latency window for selecting among multiple suitable MongoDB instances while resolving a read preference. Defaults to 15 milliseconds.

maxStalenessSeconds int

Corresponds to the read preference's "maxStalenessSeconds". Specifies, in seconds, how stale a secondary can be before the client stops using it for read operations. By default, there is no maximum staleness and clients will not consider a secondary’s lag when choosing where to direct a read operation. For details, see MongoDB\Driver\ReadPreference.

If specified, the max staleness must be a signed 32-bit integer greater than or equal to MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS (i.e. 90 seconds).

password | string | The password for the user being authenticated. This option is useful if the password contains special characters, which would otherwise need to be URL encoded for the connection URI.
readConcernLevel | string | Corresponds to the read concern's level parameter. Specifies the level of read isolation. For details, see MongoDB\Driver\ReadConcern.
readPreference string

Corresponds to the read preference's mode parameter. Defaults to "primary". For details, see MongoDB\Driver\ReadPreference.

readPreferenceTags array

Corresponds to the read preference's tagSets parameter. Tag sets allow you to target read operations to specific members of a replica set. For details, see MongoDB\Driver\ReadPreference.

Hinweis: When not specified in the URI string, this option is expressed as an array consistent with the format expected by MongoDB\Driver\ReadPreference::__construct().

replicaSet string

Specifies the name of the replica set.

retryReads bool

Specifies whether or not the driver should automatically retry certain read operations that fail due to transient network errors or replica set elections. This functionality requires MongoDB 3.6+. Defaults to true.

See the » Retryable Reads Specification for more information.

retryWrites bool

Specifies whether or not the driver should automatically retry certain write operations that fail due to transient network errors or replica set elections. This functionality requires MongoDB 3.6+. Defaults to true.

See » Retryable Writes in the MongoDB manual for more information.

safe bool

If true, specifies 1 for the default write concern's w parameter. If false, 0 is specified. For details, see MongoDB\Driver\WriteConcern.

This option is deprecated and should not be used.

serverSelectionTimeoutMS int

Specifies how long in milliseconds to block for server selection before throwing an exception. Defaults to 30,000 milliseconds.

serverSelectionTryOnce bool

When true, instructs the driver to scan the MongoDB deployment exactly once after server selection fails and then either select a server or raise an error. When false, the driver blocks and searches for a server up to the "serverSelectionTimeoutMS" value. Defaults to true.

slaveOk bool

Specifies "secondaryPreferred" for the read preference mode if true. For details, see MongoDB\Driver\ReadPreference.

This option is deprecated and should not be used.

socketCheckIntervalMS int

If a socket has not been used recently, the driver must check it via an isMaster command before using it for any operation. Defaults to 5,000 milliseconds.

socketTimeoutMS int

The time in milliseconds to attempt a send or receive on a socket before timing out. Defaults to 300,000 milliseconds (i.e. five minutes).

ssl bool

Initiates the connection with TLS/SSL if true. Defaults to false.

This option is a deprecated alias for the "tls" URI option.

tls bool

Initiates the connection with TLS/SSL if true. Defaults to false.

tlsAllowInvalidCertificates bool

Specifies whether or not the driver should error when the server's TLS certificate is invalid. Defaults to false.

Warnung

Disabling certificate validation creates a vulnerability.

tlsAllowInvalidHostnames bool

Specifies whether or not the driver should error when there is a mismatch between the server's hostname and the hostname specified by the TLS certificate. Defaults to false.

Warnung

Disabling certificate validation creates a vulnerability. Allowing invalid hostnames may expose the driver to a » man-in-the-middle attack.

tlsCAFile string

Path to file with either a single or bundle of certificate authorities to be considered trusted when making a TLS connection. The system certificate store will be used by default.

tlsCertificateKeyFile string

Path to the client certificate file or the client private key file; in the case that they both are needed, the files should be concatenated.

tlsCertificateKeyFilePassword string

Password to decrypt the client private key (i.e. "tlsCertificateKeyFile" URI option) to be used for TLS connections.

tlsDisableCertificateRevocationCheck bool

If true, the driver will not attempt to check certificate revocation status (e.g. OCSP, CRL). Defaults to false.

tlsDisableOCSPEndpointCheck bool

If true, the driver will not attempt to contact an OCSP responder endpoint if needed (i.e. an OCSP response is not stapled). Defaults to false.

tlsInsecure bool

Relax TLS constraints as much as possible. Specifying true for this option has the same effect as specifying true for both the "tlsAllowInvalidCertificates" and "tlsAllowInvalidHostnames" URI options. Defaults to false.

Warnung

Disabling certificate validation creates a vulnerability. Allowing invalid hostnames may expose the driver to a » man-in-the-middle attack.

username | string | The username for the user being authenticated. This option is useful if the username contains special characters, which would otherwise need to be URL encoded for the connection URI.
w int|string

Corresponds to the default write concern's w parameter. For details, see MongoDB\Driver\WriteConcern.

wTimeoutMS int|string

Corresponds to the default write concern's wtimeout parameter. Specifies a time limit, in milliseconds, for the write concern. For details, see MongoDB\Driver\WriteConcern.

If specified, wTimeoutMS must be a signed 32-bit integer greater than or equal to zero.

zlibCompressionLevel int

Specifies the compression level to use for the zlib compressor. This option has no effect if zlib is not included in the "compressors" URI option. See the » Driver Compression Specification for more information.

driverOptions

driverOptions
Option | Type | Description
allow_invalid_hostname bool

Disables hostname validation if true. Defaults to false.

Allowing invalid hostnames may expose the driver to a » man-in-the-middle attack.

This option is a deprecated alias for the "tlsAllowInvalidHostnames" URI option.

autoEncryption array

Provides options to enable automatic client-side field level encryption. The following options are supported:

Options for automatic encryption
Option | Type | Description
keyVaultClient | MongoDB\Driver\Manager | Der Manager, der verwendet wird, um Datenschlüssel-Abfragen auf einen anderen MongoDB-Cluster zu routen. Standardmäßig werden der aktuelle Manager und Cluster verwendet.
keyVaultNamespace | string | Ein vollständig qualifizierter Namensraum (z.B. "databaseName.collectionName"), der die Kollektion bezeichnet, die alle Datenschlüssel enthält, die für Ver- und Entschlüsselung verwendet werden.
kmsProviders array

Ein Dokument, das die Konfiguration für einen oder mehrere KMS-Provider enthält, die verwendet wird, um Datenschlüssel zu verschlüsseln. Zurzeit werden aws und local unterstützt, und wenigstens eines muss angegeben werden.

Das Format für aws ist wie folgt:

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>
}

Das Format für local ist wie folgt:

local: {
    // Der Hauptschlüssel, der zur Ver- und Entschlüsselung von Datenschlüsseln verwendet wird
    key: <96 Byte MongoDB\BSON\Binary mit Untertyp 0>
}
schemaMap array

Allows specifying a local JSON schema that is used to configure encryption.

Hinweis: Supplying a schemaMap provides more security than relying on JSON schemas obtained from the server. It protects against a malicious server advertising a false JSON schema, which could trick the client into sending unencrypted data that should be encrypted.

Hinweis: Schemas supplied in the schemaMap only apply to configuring automatic encryption for client side encryption. Other validation rules in the JSON schema will not be enforced by the driver and will result in an error.

bypassAutoEncryption | bool | With this option set to true, mongocryptd will not be spawned automatically. This is used to disable automatic encryption.
extraOptions | array | The extraOptions relate to the mongocryptd process. See the » Client-Side Encryption Specification for more information.

Hinweis: Automatic encryption is an enterprise only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error. To bypass automatic encryption for all operations, set bypassAutoEncryption=true in autoEncryption. For more information on whitelisted operations, see the » Client-Side Encryption Specification.

ca_dir string

Path to a correctly hashed certificate directory. The system certificate store will be used by default.

ca_file string

Path to file with either a single or bundle of certificate authorities to be considered trusted when making a TLS connection. The system certificate store will be used by default.

This option is a deprecated alias for the "tlsCAFile" URI option.

context resource

SSL context options to be used as fallbacks if a driver option or its equivalent URI option, if any, is not specified. Note that the driver does not consult the default stream context (i.e. stream_context_get_default()). The following context options are supported:

SSL context option fallbacks
Driver option | Context option (fallback)
ca_dir | capath
ca_file | cafile
pem_file | local_cert
pem_pwd | passphrase
weak_cert_validation | allow_self_signed

This option is supported for backwards compatibility, but should be considered deprecated.

crl_file | string | Path to a certificate revocation list file.
driver array

Allows custom drivers to append their own metadata to the server handshake. By default, the driver submits its own name, version, and platform (i.e. PHP version) in the handshake. Custom drivers can specify strings for the "name", "version", and "platform" keys of this array, which will be appended to the respective field(s) in the handshake document.

Hinweis: Handshake information is limited to 512 bytes. The driver will truncate handshake data to fit within this 512-byte string. Drivers and ODMs are encouraged to keep their own metadata concise.

pem_file string

Path to a PEM encoded certificate to use for client authentication.

This option is a deprecated alias for the "tlsCertificateKeyFile" URI option.

pem_pwd string

Passphrase for the PEM encoded certificate (if applicable).

This option is a deprecated alias for the "tlsCertificateKeyFilePassword" URI option.

weak_cert_validation bool

Disables certificate validation if true. Defaults to false

This option is a deprecated alias for the "tlsAllowInvalidHostnames" URI option.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\RuntimeException if the uri format is invalid

Changelog

Version Beschreibung
PECL mongodb 1.8.0

Added the "directConnection", "tlsDisableCertificateRevocationCheck", and "tlsDisableOCSPEndpointCheck" URI options.

Added the "driver" driver option.

PECL mongodb 1.7.0

Added the "autoEncryption" driver option.

Specifying any SSL or TLS option via the driverOptions parameter will now implicitly enable TLS, as is done for the corresponding URI options.

PECL mongodb 1.6.0

Added the "retryReads", "tls", "tlsAllowInvalidCertificates", "tlsAllowInvalidHostnames", "tlsCAFile", "tlsCertificateKeyFile", "tlsCertificateKeyFilePassword", and "tlsInsecure" URI options.

The "retryWrites" URI option defaults to true.

Specifying any SSL or TLS URI option via the connection string or uriOptions parameter will now implicitly enable TLS unless ssl or tls is false. TLS is not implicitly enabled for any options in the driverOptions parameter, which is unchanged from previous versions.

PECL mongodb 1.5.0

"wtimeoutMS" is now always validated and applied to the write concern. Previously, the option was ignored if "w" was <= 1, since the timeout only applies to replication.

PECL mongodb 1.4.0

Added the "compressors", "retryWrites", and "zlibCompressionLevel" URI options.

PECL mongodb 1.3.0

The uriOptions argument now accepts "authMechanism" and "authMechanismProperties" options. Previously, these options were only supported in the uri argument.

PECL mongodb 1.2.0

The uri argument defaults to "mongodb://127.0.0.1/". The default port remains 27017.

Added the "appname" URI option.

Added the "allow_invalid_hostname", "ca_file", "ca_dir", "clr_file", "pem_file", "pem_pwd", and "weak_cert_validation" driver options.

The PHP Streams API is no longer used for socket communication. The "connectTimeoutMS" URI option now defaults to 10 seconds instead of default_socket_timeout in previous versions. Additionally, the driver no longer supports all SSL context options via the "context" driver option.

PECL mongodb 1.1.0

The uri argument is optional and defaults to "mongodb://localhost:27017/".

Beispiele

Beispiel #1 MongoDB\Driver\Manager::__construct() basic examples

Connecting to standalone MongoDB node:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://example.com:27017");

?>

Connecting to standalone MongoDB node via a Unix domain socket. The socket path may include special characters such as slashes and should be encoded with rawurlencode().

<?php

$manager = new MongoDB\Driver\Manager("mongodb://" . rawurlencode("/tmp/mongodb-27017.sock"));

?>

Connecting to a replica set:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

?>

Connecting to a sharded cluster (i.e. one or more mongos instances):

<?php

$manager = new MongoDB\Driver\Manager("mongodb://mongos1.example.com,mongos2.example.com/");

?>

Connecting to MongoDB with authentication credentials for a particular user and database:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://myusername:mypassword@example.com/?authSource=databaseName");

?>

Connecting to MongoDB with authentication credentials for a particular user and database, where the username or password includes special characters (e.g. @, :, %). In the following example, the password string myp@ss:w%rd has been manually escaped; however, rawurlencode() may also be used to escape URI components that may contain special characters.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://myusername:myp%40ss%3Aw%25rd@example.com/?authSource=databaseName");

?>

Connecting to MongoDB with X509 authentication:

<?php

$manager = new MongoDB\Driver\Manager(
    "mongodb://example.com/?ssl=true&authMechanism=MONGODB-X509",
    [],
    [
        "pem_file" => "/path/to/client.pem",
    ]
);
?>

Siehe auch

  • Connection handling and persistence
  • » MongoDB Connection String Format


Create a new ClientEncryption object

  • « MongoDB\Driver\Manager::__construct
  • MongoDB\Driver\Manager::executeBulkWrite »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Create a new ClientEncryption object

MongoDB\Driver\Manager::createClientEncryption

(mongodb >=1.7.0)

MongoDB\Driver\Manager::createClientEncryption — Create a new ClientEncryption object

Beschreibung

final public MongoDB\Driver\Manager::createClientEncryption ( array $options ) : MongoDB\Driver\ClientEncryption

Constructs a new MongoDB\Driver\ClientEncryption object with the specified options.

Parameter-Liste

options

options
Option | Type | Description
keyVaultClient | MongoDB\Driver\Manager | Der Manager, der verwendet wird, um Datenschlüssel-Abfragen auf einen anderen MongoDB-Cluster zu routen. Standardmäßig werden der aktuelle Manager und Cluster verwendet.
keyVaultNamespace | string | Ein vollständig qualifizierter Namensraum (z.B. "databaseName.collectionName"), der die Kollektion bezeichnet, die alle Datenschlüssel enthält, die für Ver- und Entschlüsselung verwendet werden.
kmsProviders array

Ein Dokument, das die Konfiguration für einen oder mehrere KMS-Provider enthält, die verwendet wird, um Datenschlüssel zu verschlüsseln. Zurzeit werden aws und local unterstützt, und wenigstens eines muss angegeben werden.

Das Format für aws ist wie folgt:

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>
}

Das Format für local ist wie folgt:

local: {
    // Der Hauptschlüssel, der zur Ver- und Entschlüsselung von Datenschlüsseln verwendet wird
    key: <96 Byte MongoDB\BSON\Binary mit Untertyp 0>
}

Rückgabewerte

Returns a new MongoDB\Driver\ClientEncryption instance.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\RuntimeException if the extension was compiled without libmongocrypt support

Siehe auch

  • MongoDB\Driver\ClientEncryption
  • » Explicit (Manual) Client-Side Field Level Encryption in the MongoDB manual


Execute one or more write operations

  • « MongoDB\Driver\Manager::createClientEncryption
  • MongoDB\Driver\Manager::executeCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute one or more write operations

MongoDB\Driver\Manager::executeBulkWrite

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations

Beschreibung

final public MongoDB\Driver\Manager::executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk , array $options = array() ) : MongoDB\Driver\WriteResult

Executes one or more write operations on the primary server.

A MongoDB\Driver\BulkWrite can be constructed with one or more write operations of varying types (e.g. updates, deletes, and inserts). The driver will attempt to send operations of the same type to the server in as few requests as possible to optimize round trips.

Parameter-Liste

namespace

A fully qualified namespace (databaseName.collectionName)

bulk (MongoDB\Driver\BulkWrite)

The write(s) to execute.

options

options
Option Type Description
session MongoDB\Driver\Session

A session to associate with the operation.

writeConcern MongoDB\Driver\WriteConcern

A write concern to apply to the operation.

Rückgabewerte

Returns MongoDB\Driver\WriteResult on success.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if bulk does not contain any write operations.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if bulk has already been executed. MongoDB\Driver\BulkWrite objects may not be executed multiple times.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used in combination with an unacknowledged write concern.
  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\BulkWriteException on any write failure (WriteError and WriteConcern failures)
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.

Changelog

Version | Beschreibung
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\WriteConcern object.
PECL mongodb 1.3.0 | MongoDB\Driver\Exception\InvalidArgumentException is now thrown if bulk does not contain any write operations. Previously, a MongoDB\Driver\Exception\BulkWriteException was thrown.

Beispiele

Beispiel #1 MongoDB\Driver\Manager::executeBulkWrite() example

<?php

$bulk = new MongoDB\Driver\BulkWrite();

$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);

$bulk->update(['x' => 2], ['$set' => ['x' => 1]], ['multi' => false, 'upsert' => false]);
$bulk->update(['x' => 3], ['$set' => ['x' => 3]], ['multi' => false, 'upsert' => true]);
$bulk->update(['_id' => 3], ['$set' => ['x' => 3]], ['multi' => false, 'upsert' => true]);

$bulk->insert(['_id' => 4, 'x' => 2]);

$bulk->delete(['x' => 1], ['limit' => 1]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 100);
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Matched  %d document(s)\n", $result->getMatchedCount());
printf("Updated  %d document(s)\n", $result->getModifiedCount());
printf("Upserted %d document(s)\n", $result->getUpsertedCount());
printf("Deleted  %d document(s)\n", $result->getDeletedCount());

foreach ($result->getUpsertedIds() as $index => $id) {
    printf('upsertedId[%d]: ', $index);
    var_dump($id);
}

/* If the WriteConcern could not be fulfilled */
if ($writeConcernError = $result->getWriteConcernError()) {
    printf("%s (%d): %s\n", $writeConcernError->getMessage(), $writeConcernError->getCode(), var_export($writeConcernError->getInfo(), true));
}

/* If a write could not happen at all */
foreach ($result->getWriteErrors() as $writeError) {
    printf("Operation#%d: %s (%d)\n", $writeError->getIndex(), $writeError->getMessage(), $writeError->getCode());
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Inserted 3 document(s)
Matched  1 document(s)
Updated  1 document(s)
Upserted 2 document(s)
Deleted  1 document(s)
upsertedId[3]: object(MongoDB\BSON\ObjectId)#5 (1) {
  ["oid"]=>
  string(24) "54d3adc3ce7a792f4d703756"
}
upsertedId[4]: int(3)

Siehe auch

  • MongoDB\Driver\BulkWrite
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Server::executeBulkWrite() - Execute one or more write operations on this server


Execute a database command

  • « MongoDB\Driver\Manager::executeBulkWrite
  • MongoDB\Driver\Manager::executeQuery »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command

MongoDB\Driver\Manager::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeCommand — Execute a database command

Beschreibung

final public MongoDB\Driver\Manager::executeCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor

Selects a server according to the "readPreference" option and executes the command on that server. By default, the read preference from the MongoDB Connection URI will be used.

This method applies no special logic to the command. Although this method accepts "readConcern" and "writeConcern" options, which will be incorporated into the command document, those options will not default to corresponding values from the MongoDB Connection URI nor will the MongoDB server version be taken into account. Users are therefore encouraged to use specific read and/or write command methods if possible.

Parameter-Liste

db (string)

The name of the database on which to execute the command.

command (MongoDB\Driver\Command)

The command to execute.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

A read concern to apply to the operation.

This option is available in MongoDB 3.2+ and will result in an exception at execution time if specified for an older server version.

readPreference MongoDB\Driver\ReadPreference

A read preference to use for selecting a server for the operation.

session MongoDB\Driver\Session

A session to associate with the operation.

writeConcern MongoDB\Driver\WriteConcern

A write concern to apply to the operation.

Warnung

If you are using a "session" which has a transaction in progress, you cannot specify a "readConcern" or "writeConcern" option. This will result in an MongoDB\Driver\Exception\InvalidArgumentException being thrown. Instead, you should set these two options when you create the transaction with MongoDB\Driver\Session::startTransaction().

Rückgabewerte

Returns MongoDB\Driver\Cursor on success.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used in combination with an unacknowledged write concern.
  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).

Changelog

Version | Beschreibung
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\ReadPreference object.

Beispiele

Beispiel #1 MongoDB\Driver\Manager::executeCommand() with a command returning a single result document

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$command = new MongoDB\Driver\Command(['ping' => 1]);

try {
    $cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

/* The ping command returns a single result document, so we need to access the
 * first result in the cursor. */
$response = $cursor->toArray()[0];

var_dump($response);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["ok"]=>
  float(1)
}

Beispiel #2 MongoDB\Driver\Manager::executeCommand() with a command returning a cursor

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1, 'y' => 'foo']);
$bulk->insert(['x' => 2, 'y' => 'bar']);
$bulk->insert(['x' => 3, 'y' => 'bar']);
$manager->executeBulkWrite('db.collection', $bulk);

$command = new MongoDB\Driver\Command([
    'aggregate' => 'collection',
    'pipeline' => [
        ['$group' => ['_id' => '$y', 'sum' => ['$sum' => '$x']]],
    ],
    'cursor' => new stdClass,
]);
$cursor = $manager->executeCommand('db', $command);

/* The aggregate command can optionally return its results in a cursor instead
 * of a single result document. In this case, we can iterate on the cursor
 * directly to access those results. */
foreach ($cursor as $document) {
    var_dump($document);
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(stdClass)#6 (2) {
  ["_id"]=>
  string(3) "bar"
  ["sum"]=>
  int(10)
}
object(stdClass)#7 (2) {
  ["_id"]=>
  string(3) "foo"
  ["sum"]=>
  int(2)
}

Beispiel #3 Limiting execution time for a command

The execution time of a command may be limited by specifying a value for "maxTimeMS" in the MongoDB\Driver\Command document. Note that this time limit is enforced on the server side and does not take network latency into account. See » Terminate Running Operations in the MongoDB manual for more information.

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');

$command = new MongoDB\Driver\Command([
    'count' => 'collection',
    'query' => ['x' => ['$gt' => 1]],
    'maxTimeMS' => 1000,
]);

$cursor = $manager->executeCommand('db', $command);

var_dump($cursor->toArray()[0]);

?>

If the command fails to complete after one second of execution time on the server, a MongoDB\Driver\Exception\ExecutionTimeoutException will be thrown.

Anmerkungen

Hinweis: If a secondary readPreference is used, it is the caller's responsibility to ensure that the command can be executed on a secondary. No validation is done by the driver.

Siehe auch

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeReadCommand() - Execute a database command that reads
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Execute a database command that reads and writes
  • MongoDB\Driver\Manager::executeWriteCommand() - Execute a database command that writes
  • MongoDB\Driver\Server::executeCommand() - Execute a database command on this server


Execute a database query

  • « MongoDB\Driver\Manager::executeCommand
  • MongoDB\Driver\Manager::executeReadCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database query

MongoDB\Driver\Manager::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeQuery — Execute a database query

Beschreibung

final public MongoDB\Driver\Manager::executeQuery ( string $namespace , MongoDB\Driver\Query $query , array $options = array() ) : MongoDB\Driver\Cursor

Selects a server according to the "readPreference" option and executes the query on that server. By default, the read preference from the MongoDB Connection URI will be used.

Parameter-Liste

namespace

A fully qualified namespace (databaseName.collectionName)

query (MongoDB\Driver\Query)

The query to execute.

options

options
Option Type Description
readPreference MongoDB\Driver\ReadPreference

A read preference to use for selecting a server for the operation.

session MongoDB\Driver\Session

A session to associate with the operation.

Rückgabewerte

Returns MongoDB\Driver\Cursor on success.

Fehler/Exceptions

  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid query operators).

Changelog

Version | Beschreibung
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\ReadPreference object.

Beispiele

Beispiel #1 MongoDB\Driver\Manager::executeQuery() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$filter = ['x' => ['$gt' => 1]];
$options = [
    'projection' => ['_id' => 0],
    'sort' => ['x' => -1],
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);

foreach ($cursor as $document) {
    var_dump($document);
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(stdClass)#6 (1) {
  ["x"]=>
  int(3)
}
object(stdClass)#7 (1) {
  ["x"]=>
  int(2)
}

Beispiel #2 Limiting execution time for a query

The "maxTimeMS" MongoDB\Driver\Query option may be used to limit the execution time of a query. Note that this time limit is enforced on the server side and does not take network latency into account. See » Terminate Running Operations in the MongoDB manual for more information.

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');

$filter = ['x' => ['$gt' => 1]];
$options = [
    'maxTimeMS' => 1000,
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);

foreach ($cursor as $document) {
    var_dump($document);
}

?>

If the query fails to complete after one second of execution time on the server, a MongoDB\Driver\Exception\ExecutionTimeoutException will be thrown.

Siehe auch

  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Query
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Server::executeQuery() - Execute a database query on this server


Execute a database command that reads

  • « MongoDB\Driver\Manager::executeQuery
  • MongoDB\Driver\Manager::executeReadWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command that reads

MongoDB\Driver\Manager::executeReadCommand

(mongodb >=1.4.0)

MongoDB\Driver\Manager::executeReadCommand — Execute a database command that reads

Beschreibung

final public MongoDB\Driver\Manager::executeReadCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor

Selects a server according to the "readPreference" option and executes the command on that server. By default, the read preference from the MongoDB Connection URI will be used.

This method will apply logic that is specific to commands that read (e.g. » count) and take the MongoDB server version into account. The "readConcern" option will default to the corresponding value from the MongoDB Connection URI.

Parameter-Liste

db (string)

The name of the database on which to execute the command.

command (MongoDB\Driver\Command)

The command to execute.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

A read concern to apply to the operation.

This option is available in MongoDB 3.2+ and will result in an exception at execution time if specified for an older server version.

readPreference MongoDB\Driver\ReadPreference

A read preference to use for selecting a server for the operation.

session MongoDB\Driver\Session

A session to associate with the operation.

Warnung

If you are using a "session" which has a transaction in progress, you cannot specify a "readConcern" or "writeConcern" option. This will result in an MongoDB\Driver\Exception\InvalidArgumentException being thrown. Instead, you should set these two options when you create the transaction with MongoDB\Driver\Session::startTransaction().

Rückgabewerte

Returns MongoDB\Driver\Cursor on success.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command).

Siehe auch

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Execute a database command that reads and writes
  • MongoDB\Driver\Manager::executeWriteCommand() - Execute a database command that writes
  • MongoDB\Driver\Server::executeReadCommand() - Execute a database command that reads on this server


Execute a database command that reads and writes

  • « MongoDB\Driver\Manager::executeReadCommand
  • MongoDB\Driver\Manager::executeWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command that reads and writes

MongoDB\Driver\Manager::executeReadWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Manager::executeReadWriteCommand — Execute a database command that reads and writes

Beschreibung

final public MongoDB\Driver\Manager::executeReadWriteCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor

Executes the command on the primary server.

This method will apply logic that is specific to commands that read and write (e.g. » aggregate) and take the MongoDB server version into account. The "readConcern" and "writeConcern" options will default to the corresponding values from the MongoDB Connection URI.

Parameter-Liste

db (string)

The name of the database on which to execute the command.

command (MongoDB\Driver\Command)

The command to execute.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

A read concern to apply to the operation.

This option is available in MongoDB 3.2+ and will result in an exception at execution time if specified for an older server version.

session MongoDB\Driver\Session

A session to associate with the operation.

writeConcern MongoDB\Driver\WriteConcern

A write concern to apply to the operation.

Warnung

If you are using a "session" which has a transaction in progress, you cannot specify a "readConcern" or "writeConcern" option. This will result in an MongoDB\Driver\Exception\InvalidArgumentException being thrown. Instead, you should set these two options when you create the transaction with MongoDB\Driver\Session::startTransaction().

Rückgabewerte

Returns MongoDB\Driver\Cursor on success.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used in combination with an unacknowledged write concern.
  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command).

Changelog

Version | Beschreibung
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.

Siehe auch

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeReadCommand() - Execute a database command that reads
  • MongoDB\Driver\Manager::executeWriteCommand() - Execute a database command that writes
  • MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server


Execute a database command that writes

  • « MongoDB\Driver\Manager::executeReadWriteCommand
  • MongoDB\Driver\Manager::getReadConcern »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command that writes

MongoDB\Driver\Manager::executeWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Manager::executeWriteCommand — Execute a database command that writes

Beschreibung

final public MongoDB\Driver\Manager::executeWriteCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor

Executes the command on the primary server.

This method will apply logic that is specific to commands that write (e.g. » drop) and take the MongoDB server version into account. The "writeConcern" option will default to the corresponding value from the MongoDB Connection URI.

Hinweis: This method is not intended to be used to execute » insert, » update, or » delete commands. Users are encouraged to use MongoDB\Driver\Manager::executeBulkWrite() for those commands.

Parameter-Liste

db (string)

The name of the database on which to execute the command.

command (MongoDB\Driver\Command)

The command to execute.

options

options
Option Type Description
session MongoDB\Driver\Session

A session to associate with the operation.

writeConcern MongoDB\Driver\WriteConcern

A write concern to apply to the operation.

Warnung

If you are using a "session" which has a transaction in progress, you cannot specify a "readConcern" or "writeConcern" option. This will result in an MongoDB\Driver\Exception\InvalidArgumentException being thrown. Instead, you should set these two options when you create the transaction with MongoDB\Driver\Session::startTransaction().

Rückgabewerte

Returns MongoDB\Driver\Cursor on success.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used in combination with an unacknowledged write concern.
  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command).

Changelog

Version | Beschreibung
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.

Siehe auch

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeReadCommand() - Execute a database command that reads
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Execute a database command that reads and writes
  • MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server


Return the ReadConcern for the Manager

  • « MongoDB\Driver\Manager::executeWriteCommand
  • MongoDB\Driver\Manager::getReadPreference »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the ReadConcern for the Manager

MongoDB\Driver\Manager::getReadConcern

(mongodb >=1.1.0)

MongoDB\Driver\Manager::getReadConcern — Return the ReadConcern for the Manager

Beschreibung

final public MongoDB\Driver\Manager::getReadConcern ( ) : MongoDB\Driver\ReadConcern

Returns the MongoDB\Driver\ReadConcern for the Manager, which is derived from its URI options. This is the default read concern for queries and commands executed on the Manager.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The MongoDB\Driver\ReadConcern for the Manager.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\Manager::getReadConcern() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager->getReadConcern());

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/?readConcernLevel=local');
var_dump($manager->getReadConcern());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MongoDB\Driver\ReadConcern)#2 (0) {
}
object(MongoDB\Driver\ReadConcern)#1 (1) {
  ["level"]=>
  string(5) "local"
}

Siehe auch

  • MongoDB\Driver\ReadConcern
  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Return the ReadPreference for the Manager

  • « MongoDB\Driver\Manager::getReadConcern
  • MongoDB\Driver\Manager::getServers »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the ReadPreference for the Manager

MongoDB\Driver\Manager::getReadPreference

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getReadPreference — Return the ReadPreference for the Manager

Beschreibung

final public MongoDB\Driver\Manager::getReadPreference ( ) : MongoDB\Driver\ReadPreference

Returns the MongoDB\Driver\ReadPreference for the Manager, which is derived from its URI options. This is the default read preference for queries and commands executed on the Manager.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The MongoDB\Driver\ReadPreference for the Manager.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\Manager::getReadPreference() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager->getReadPreference());

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/?readPreference=secondaryPreferred&readPreferenceTags=dc:ny,rack:1&readPreferenceTags=dc:ny&readPreferenceTags=');
var_dump($manager->getReadPreference());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MongoDB\Driver\ReadPreference)#2 (1) {
  ["mode"]=>
  string(7) "primary"
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(18) "secondaryPreferred"
  ["tags"]=>
  array(3) {
    [0]=>
    object(stdClass)#3 (2) {
      ["dc"]=>
      string(2) "ny"
      ["rack"]=>
      string(1) "1"
    }
    [1]=>
    object(stdClass)#4 (1) {
      ["dc"]=>
      string(2) "ny"
    }
    [2]=>
    object(stdClass)#5 (0) {
    }
  }
}

Siehe auch

  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Return the servers to which this manager is connected

  • « MongoDB\Driver\Manager::getReadPreference
  • MongoDB\Driver\Manager::getWriteConcern »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the servers to which this manager is connected

MongoDB\Driver\Manager::getServers

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getServers — Return the servers to which this manager is connected

Beschreibung

final public MongoDB\Driver\Manager::getServers ( ) : array

Returns an array of MongoDB\Driver\Server instances to which this manager is connected.

Hinweis: Since the driver connects to the database lazily, this method may return an empty array if called before executing an operation on the MongoDB\Driver\Manager.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array of MongoDB\Driver\Server instances to which this manager is connected.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\Manager::getServers() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

/* The driver connects to the database server lazily, so Manager::getServers()
 * may initially return an empty array. */
var_dump($manager->getServers());

$command = new MongoDB\Driver\Command(['ping' => 1]);
$manager->executeCommand('db', $command);

var_dump($manager->getServers());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(0) {
}
array(1) {
  [0]=>
  object(MongoDB\Driver\Server)#3 (10) {
    ["host"]=>
    string(9) "localhost"
    ["port"]=>
    int(27017)
    ["type"]=>
    int(1)
    ["is_primary"]=>
    bool(false)
    ["is_secondary"]=>
    bool(false)
    ["is_arbiter"]=>
    bool(false)
    ["is_hidden"]=>
    bool(false)
    ["is_passive"]=>
    bool(false)
    ["last_is_master"]=>
    array(8) {
      ["ismaster"]=>
      bool(true)
      ["maxBsonObjectSize"]=>
      int(16777216)
      ["maxMessageSizeBytes"]=>
      int(48000000)
      ["maxWriteBatchSize"]=>
      int(1000)
      ["localTime"]=>
      object(MongoDB\BSON\UTCDateTime)#4 (1) {
        ["milliseconds"]=>
        int(1447267964517)
      }
      ["maxWireVersion"]=>
      int(3)
      ["minWireVersion"]=>
      int(0)
      ["ok"]=>
      float(1)
    }
    ["round_trip_time"]=>
    int(554)
  }
}

Siehe auch

  • MongoDB\Driver\Server
  • MongoDB\Driver\Manager::selectServer() - Select a server matching a read preference


Return the WriteConcern for the Manager

  • « MongoDB\Driver\Manager::getServers
  • MongoDB\Driver\Manager::selectServer »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the WriteConcern for the Manager

MongoDB\Driver\Manager::getWriteConcern

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getWriteConcern — Return the WriteConcern for the Manager

Beschreibung

final public MongoDB\Driver\Manager::getWriteConcern ( ) : MongoDB\Driver\WriteConcern

Returns the MongoDB\Driver\WriteConcern for the Manager, which is derived from its URI options. This is the default write concern for writes and commands executed on the Manager.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The MongoDB\Driver\WriteConcern for the Manager.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\Manager::getWriteConcern() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager->getWriteConcern());

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/?w=majority&wtimeoutMS=2000');
var_dump($manager->getWriteConcern());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MongoDB\Driver\WriteConcern)#2 (0) {
}
object(MongoDB\Driver\WriteConcern)#1 (2) {
  ["w"]=>
  string(8) "majority"
  ["wtimeout"]=>
  int(2000)
}

Siehe auch

  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Select a server matching a read preference

  • « MongoDB\Driver\Manager::getWriteConcern
  • MongoDB\Driver\Manager::startSession »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Select a server matching a read preference

MongoDB\Driver\Manager::selectServer

(mongodb >=1.0.0)

MongoDB\Driver\Manager::selectServer — Select a server matching a read preference

Beschreibung

final public MongoDB\Driver\Manager::selectServer ( MongoDB\Driver\ReadPreference $readPreference ) : MongoDB\Driver\Server

Selects a MongoDB\Driver\Server matching readPreference. This may be used to preselect a server in order to perform version checking before executing an operation.

Hinweis: Unlike MongoDB\Driver\Manager::getServers(), this method will initialize database connections and perform server discovery if necessary. See the » Server Selection Specification for additional information.

Parameter-Liste

readPreference (MongoDB\Driver\ReadPreference)

The read preference to use for selecting a server.

Rückgabewerte

Returns a MongoDB\Driver\Server matching the read preference.

Fehler/Exceptions

  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\Exception\RuntimeException if a server matching the read preference could not be found.

Siehe auch

  • MongoDB\Driver\Server
  • MongoDB\Driver\Manager::getServers() - Return the servers to which this manager is connected
  • » Server Selection Specification


Start a new client session for use with this client

  • « MongoDB\Driver\Manager::selectServer
  • MongoDB\Driver\Command »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Start a new client session for use with this client

MongoDB\Driver\Manager::startSession

(mongodb >=1.4.0)

MongoDB\Driver\Manager::startSession — Start a new client session for use with this client

Beschreibung

final public MongoDB\Driver\Manager::startSession ( array $options = ? ) : MongoDB\Driver\Session

Creates a MongoDB\Driver\Session for the given options. The session may then be specified when executing commands, queries, and write operations.

Hinweis: A MongoDB\Driver\Session can only be used with the MongoDB\Driver\Manager from which it was created.

Parameter-Liste

options

options
Option Type Description Default
causalConsistency bool

Configure causal consistency in a session. If true, each operation in the session will be causally ordered after the previous read or write operation. Set to false to disable causal consistency.

See » Casual Consistency in the MongoDB manual for more information.

true
defaultTransactionOptions array

Default options to apply to newly created transactions. These options are used unless they are overridden when a transaction is started with different value for each option.

options
Option Type Description
maxCommitTimeMS integer

Die maximale Dauer in Millisekunden, die ein einziger commitTransaction-Befehl beanspruchen darf.

Wenn angegeben, muss maxCommitTimeMS eine vorzeichenbehaftete 32-bit Ganzzahl größer als oder gleich Null sein.

readConcern MongoDB\Driver\ReadConcern

A read concern to apply to the operation.

This option is available in MongoDB 3.2+ and will result in an exception at execution time if specified for an older server version.

readPreference MongoDB\Driver\ReadPreference

A read preference to use for selecting a server for the operation.

writeConcern MongoDB\Driver\WriteConcern

A write concern to apply to the operation.

This option is available in MongoDB 4.0+.

[]

Rückgabewerte

Returns a MongoDB\Driver\Session.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\RuntimeException if the session could not be created (e.g. libmongoc does not support crypto).

Changelog

Version | Beschreibung
PECL mongodb 1.6.0 | The "maxCommitTimeMS" option was added to "defaultTransactionOptions".
PECL mongodb 1.5.0 | The "defaultTransactionOptions" option was added.

Siehe auch

  • MongoDB\Driver\Session
  • » Casual Consistency in the MongoDB manual


The MongoDB\Driver\Command class

(mongodb >=1.0.0)

Einführung

The MongoDB\Driver\Command class is a value object that represents a database command.

To provide Command Helpers the MongoDB\Driver\Command object should be composed.

Klassenbeschreibung

final MongoDB\Driver\Command {
/* Methoden */
final public __construct ( array|object $document , array $commandOptions = ? )
}

Beispiele

Beispiel #1 Composing MongoDB\Driver\Command to provide a helper to create collections

<?php
class CreateCollection {
    protected $cmd = array();

    function __construct($collectionName) {
        $this->cmd["create"] = (string)$collectionName;
    }
    function setCappedCollection($maxBytes, $maxDocuments = false) {
        $this->cmd["capped"] = true;
        $this->cmd["size"]   = (int)$maxBytes;

        if ($maxDocuments) {
            $this->cmd["max"] = (int)$maxDocuments;
        }
    }
    function usePowerOf2Sizes($bool) {
        if ($bool) {
            $this->cmd["flags"] = 1;
        } else {
            $this->cmd["flags"] = 0;
        }
    }
    function setFlags($flags) {
        $this->cmd["flags"] = (int)$flags;
    }
    function getCommand() {
        return new MongoDB\Driver\Command($this->cmd);
    }
    function getCollectionName() {
        return $this->cmd["create"];
    }
}

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$createCollection = new CreateCollection("cappedCollection");
$createCollection->setCappedCollection(64 * 1024);

try {
    $command = $createCollection->getCommand();
    $cursor = $manager->executeCommand("databaseName", $command);
    $response = $cursor->toArray()[0];
    var_dump($response);

    $collstats = ["collstats" => $createCollection->getCollectionName()];
    $cursor = $manager->executeCommand("databaseName", new MongoDB\Driver\Command($collstats));
    $response = $cursor->toArray()[0];
    var_dump($response);
} catch(MongoDB\Driver\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(MongoDB\Driver\Command)#3 (1) {
  ["command"]=>
  array(3) {
    ["create"]=>
    string(16) "cappedCollection"
    ["capped"]=>
    bool(true)
    ["size"]=>
    int(65536)
  }
}
array(1) {
  ["ok"]=>
  float(1)
}
array(16) {
  ["ns"]=>
  string(29) "databaseName.cappedCollection"
  ["count"]=>
  int(0)
  ["size"]=>
  int(0)
  ["numExtents"]=>
  int(1)
  ["storageSize"]=>
  int(65536)
  ["nindexes"]=>
  int(1)
  ["lastExtentSize"]=>
  float(65536)
  ["paddingFactor"]=>
  float(1)
  ["paddingFactorNote"]=>
  string(101) "paddingFactor is unused and unmaintained in 2.8. It remains hard coded to 1.0 for compatibility only."
  ["userFlags"]=>
  int(0)
  ["capped"]=>
  bool(true)
  ["max"]=>
  int(9223372036854775807)
  ["maxSize"]=>
  int(65536)
  ["totalIndexSize"]=>
  int(8176)
  ["indexSizes"]=>
  object(stdClass)#4 (1) {
    ["_id_"]=>
    int(8176)
  }
  ["ok"]=>
  float(1)
}

Inhaltsverzeichnis

  • MongoDB\Driver\Command::__construct — Create a new Command


Create a new Command

  • « MongoDB\Driver\Command
  • MongoDB\Driver\Query »
  • PHP Manual
  • MongoDB\Driver\Command
  • Create a new Command

MongoDB\Driver\Command::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Command::__construct — Create a new Command

Beschreibung

final public MongoDB\Driver\Command::__construct ( array|object $document , array $commandOptions = ? )

Constructs a new MongoDB\Driver\Command, which is an immutable value object that represents a database command. The command may then be executed with MongoDB\Driver\Manager::executeCommand().

The complete command document, which includes the command name and its options, should be expressed in the document parameter. The commandOptions parameter is only used to specify options related to the execution of the command and the resulting MongoDB\Driver\Cursor.

Parameter-Liste

document

The complete command document, which will be sent to the server.

commandOptions

Hinweis: Do not use this parameter to specify options described in the command's reference in the MongoDB manual. This parameter should only be used for the options explicitly listed below.

commandOptions
Option Type Description
maxAwaitTimeMS int

Positive integer denoting the time limit in milliseconds for the server to block a getMore operation if no data is available. This option should only be used in conjunction with commands that return a tailable cursor (e.g. » Change Streams).

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Changelog

Version | Beschreibung
PECL mongodb 1.4.0 | Added a second commandOptions argument, which supports the "maxAwaitTimeMS" option.

Beispiele

Beispiel #1 MongoDB\Driver\Command::__construct() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$command = new MongoDB\Driver\Command(array("buildinfo" => 1));

try {
    $cursor = $manager->executeCommand("admin", $command);
    $response = $cursor->toArray()[0];
} catch(MongoDB\Driver\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}
var_dump($response);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(13) {
  ["version"]=>
  string(14) "2.8.0-rc2-pre-"
  ["gitVersion"]=>
  string(62) "b743d7158f7642f4da6b7eac8320374b3b88dc2e modules: subscription"
  ["OpenSSLVersion"]=>
  string(25) "OpenSSL 1.0.1f 6 Jan 2014"
  ["sysInfo"]=>
  string(104) "Linux infant 3.16.0-24-generic #32-Ubuntu SMP Tue Oct 28 13:07:32 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49"
  ["loaderFlags"]=>
  string(91) "-fPIC -pthread -Wl,-z,now -rdynamic -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,-E"
  ["compilerFlags"]=>
  string(301) "-Wnon-virtual-dtor -Woverloaded-virtual -std=c++11 -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -pipe -Werror -O3 -Wno-unused-local-typedefs -Wno-unused-function -Wno-deprecated-declarations -Wno-unused-but-set-variable -fno-builtin-memcmp -std=c99"
  ["allocator"]=>
  string(8) "tcmalloc"
  ["versionArray"]=>
  array(4) {
    [0]=>
    int(2)
    [1]=>
    int(8)
    [2]=>
    int(0)
    [3]=>
    int(-8)
  }
  ["javascriptEngine"]=>
  string(2) "V8"
  ["bits"]=>
  int(64)
  ["debug"]=>
  bool(false)
  ["maxBsonObjectSize"]=>
  int(16777216)
  ["ok"]=>
  float(1)
}

Beispiel #2 MongoDB\Driver\Command::__construct() example

Commands can accept options as well, as part of the normal structure that you create to send to the server. For example, the maxTimeMS option can be passed with most commands to restrict the amount of time a specific command can run for on the server.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$command = new MongoDB\Driver\Command(
    array(
        "distinct" => "beer",
        "key" => "beer_name",
        "maxTimeMS" => 10,
    )
);

try {
    $cursor = $manager->executeCommand("beerdb", $command);
    $response = $cursor->toArray()[0];
} catch(MongoDB\Driver\Exception\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}
var_dump($response);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

operation exceeded time limit

Siehe auch

  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Cursor


The MongoDB\Driver\Query class

(mongodb >=1.0.0)

Einführung

The MongoDB\Driver\Query class is a value object that represents a database query.

Klassenbeschreibung

final MongoDB\Driver\Query {
/* Methoden */
final public __construct ( array|object $filter , array $queryOptions = ? )
}

Inhaltsverzeichnis

  • MongoDB\Driver\Query::__construct — Create a new Query


Create a new Query

  • « MongoDB\Driver\Query
  • MongoDB\Driver\BulkWrite »
  • PHP Manual
  • MongoDB\Driver\Query
  • Create a new Query

MongoDB\Driver\Query::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Query::__construct — Create a new Query

Beschreibung

final public MongoDB\Driver\Query::__construct ( array|object $filter , array $queryOptions = ? )

Constructs a new MongoDB\Driver\Query, which is an immutable value object that represents a database query. The query may then be executed with MongoDB\Driver\Manager::executeQuery().

Parameter-Liste

filter (array|object)

Das » Abfrage-Prädikat. Ein leeres Prädikat passt auf alle Dokumente in der Sammlung.

Hinweis: Bei der Auswertung von Abfragekriterien vergleicht MongoDB Typen und Werte gemäß seiner eigenen » Vergleichsregeln für BSON-Typen, die sich von PHP's Regeln für Typenvergleich und Typen-Jonglage unterscheidet. Wenn es eine Übereinstimmung mit einem speziellen BSON-Typ gibt, sollten die Abfragekriterien die entsprechende BSON-Klasse verwenden (z.B. MongoDB\BSON\ObjectId, um auf eine » ObjectId zu passen).

queryOptions

queryOptions
Option | Type | Description
allowDiskUse bool

Allows MongoDB to use temporary disk files to store data exceeding the 100 megabyte system memory limit while processing a blocking sort operation.

allowPartialResults bool

For queries against a sharded collection, returns partial results from the mongos if some shards are unavailable instead of throwing an error.

Falls back to the deprecated "partial" option if not specified.

awaitData | bool | Use in conjunction with the "tailable" option to block a getMore operation on the cursor temporarily if at the end of data rather than returning no data. After a timeout period, the query returns as normal.
batchSize int

The number of documents to return in the first batch. Defaults to 101. A batch size of 0 means that the cursor will be established, but no documents will be returned in the first batch.

In versions of MongoDB before 3.2, where queries use the legacy wire protocol OP_QUERY, a batch size of 1 will close the cursor irrespective of the number of matched documents.

collation array|object

» Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks. When specifying collation, the "locale" field is mandatory; all other collation fields are optional. For descriptions of the fields, see » Collation Document.

If the collation is unspecified but the collection has a default collation, the operation uses the collation specified for the collection. If no collation is specified for the collection or for the operation, MongoDB uses the simple binary comparison used in prior versions for string comparisons.

This option is available in MongoDB 3.4+ and will result in an exception at execution time if specified for an older server version.

comment string

A comment to attach to the query to help interpret and trace query profile data.

Falls back to the deprecated "$comment" modifier if not specified.

exhaust bool

Stream the data down full blast in multiple "more" packages, on the assumption that the client will fully read all data queried. Faster when you are pulling a lot of data and know you want to pull it all down. Note: the client is not allowed to not read all the data unless it closes the connection.

This option is not supported by the find command in MongoDB 3.2+ and will force the driver to use the legacy wire protocol version (i.e. OP_QUERY).

explain bool

If true, the returned MongoDB\Driver\Cursor will contain a single document that describes the process and indexes used to return the query.

Falls back to the deprecated "$explain" modifier if not specified.

This option is not supported by the find command in MongoDB 3.2+ and will only be respected when using the legacy wire protocol version (i.e. OP_QUERY). The » explain command should be used on MongoDB 3.0+.

hint string|array|object

Index specification. Specify either the index name as a string or the index key pattern. If specified, then the query system will only consider plans using the hinted index.

Falls back to the deprecated "hint" option if not specified.

limit int

The maximum number of documents to return. If unspecified, then defaults to no limit. A limit of 0 is equivalent to setting no limit.

A negative limit is will be interpreted as a positive limit with the "singleBatch" option set to true. This behavior is supported for backwards compatibility, but should be considered deprecated.

max array|object

The exclusive upper bound for a specific index.

Falls back to the deprecated "$max" modifier if not specified.

maxAwaitTimeMS int

Positive integer denoting the time limit in milliseconds for the server to block a getMore operation if no data is available. This option should only be used in conjunction with the "tailable" and "awaitData" options.

maxScan int
Warnung

This option is deprecated and should not be used.

Positive integer denoting the maximum number of documents or index keys to scan when executing the query.

Falls back to the deprecated "$maxScan" modifier if not specified.

maxTimeMS int

The cumulative time limit in milliseconds for processing operations on the cursor. MongoDB aborts the operation at the earliest following interrupt point.

Falls back to the deprecated "$maxTimeMS" modifier if not specified.

min array|object

The inclusive lower bound for a specific index.

Falls back to the deprecated "$min" modifier if not specified.

modifiers | array | » Meta operators modifying the output or behavior of a query. Use of these operators is deprecated in favor of named options.
noCursorTimeout | bool | Prevents the server from timing out idle cursors after an inactivity period (10 minutes).
oplogReplay bool

Internal use for replica sets. To use oplogReplay, you must include the following condition in the filter:

[ 'ts' => [ '$gte' => <timestamp> ] ]

Hinweis: This option is deprecated as of the 1.8.0 release.
projection array|object

The » projection specification to determine which fields to include in the returned documents.

If you are using the ODM functionality to deserialise documents as their original PHP class, make sure that you include the __pclass field in the projection. This is required for the deserialization to work and without it, the driver will return (by default) a stdClass object instead.

readConcern MongoDB\Driver\ReadConcern

A read concern to apply to the operation. By default, the read concern from the MongoDB Connection URI will be used.

This option is available in MongoDB 3.2+ and will result in an exception at execution time if specified for an older server version.

returnKey bool

If true, returns only the index keys in the resulting documents. Default value is false. If true and the find command does not use an index, the returned documents will be empty.

Falls back to the deprecated "$returnKey" modifier if not specified.

showRecordId bool

Determines whether to return the record identifier for each document. If true, adds a top-level "$recordId" field to the returned documents.

Falls back to the deprecated "$showDiskLoc" modifier if not specified.

singleBatch | bool | Determines whether to close the cursor after the first batch. Defaults to false.
skip | int | Number of documents to skip. Defaults to 0.
slaveOk | bool | Allow query of replica set secondaries
snapshot bool
Warnung

This option is deprecated and should not be used.

Prevents the cursor from returning a document more than once because of an intervening write operation.

Falls back to the deprecated "$snapshot" modifier if not specified.

sort array|object

The sort specification for the ordering of the results.

Falls back to the deprecated "$orderby" modifier if not specified.

tailable | bool | Returns a tailable cursor for a capped collection.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Changelog

Version | Beschreibung
PECL mongodb 1.8.0

Added the "allowDiskUse" option.

The "oplogReplay" option is deprecated.

PECL mongodb 1.5.0

The "maxScan" and "snapshot" options are deprecated.

PECL mongodb 1.3.0

Added the "maxAwaitTimeMS" option.

PECL mongodb 1.2.0

Added the "allowPartialResults", "collation", "comment", "hint", "max", "maxScan", "maxTimeMS", "min", "returnKey", "showRecordId", and "snapshot" options.

Renamed the "partial" option to "allowPartialResults". For backwards compatibility, "partial" will still be read if "allowPartialResults" is not specified.

Removed the "slaveOk" option, which is obsolete. For queries using the legacy wire protocol OP_QUERY, the driver will set the slaveOk bit as needed in accordance with the » Server Selection Specification.

PECL mongodb 1.1.0 | Added the "readConcern" option.

Beispiele

Beispiel #1 MongoDB\Driver\Query::__construct() example

<?php
/* Select only documents authord by "bjori" with at least 100 views */
$filter = [
    'author' => 'bjori',
    'views' => [
        '$gte' => 100,
    ],
];

$options = [
    /* Only return the following fields in the matching documents */
    'projection' => [
        'title' => 1,
        'article' => 1,
    ],
    /* Return the documents in descending order of views */
    'sort' => [
        'views' => -1
    ],
];

$query = new MongoDB\Driver\Query($filter, $options);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$readPreference = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$cursor = $manager->executeQuery('databaseName.collectionName', $query, $readPreference);

foreach($cursor as $document) {
    var_dump($document);
}

?>

Siehe auch

  • MongoDB\Driver\Manager::executeQuery() - Execute a database query
  • MongoDB\Driver\Cursor


The MongoDB\Driver\BulkWrite class

(mongodb >=1.0.0)

Einführung

The MongoDB\Driver\BulkWrite collects one or more write operations that should be sent to the server. After adding any number of insert, update, and delete operations, the collection may be executed via MongoDB\Driver\Manager::executeBulkWrite().

Write operations may either be ordered (default) or unordered. Ordered write operations are sent to the server, in the order provided, for serial execution. If a write fails, any remaining operations will be aborted. Unordered operations are sent to the server in an arbitrary order where they may be executed in parallel. Any errors that occur are reported after all operations have been attempted.

Klassenbeschreibung

final MongoDB\Driver\BulkWrite implements Countable {
/* Methoden */
public __construct ( array $options = ? )
public count ( ) : int
public delete ( array|object $filter , array $deleteOptions = ? ) : void
public insert ( array|object $document ) : mixed
public update ( array|object $filter , array|object $newObj , array $updateOptions = ? ) : void
}

Beispiele

Beispiel #1 Mixed write operations are grouped by type

Mixed write operations (i.e. inserts, updates, and deletes) will be assembled into typed write commands to be sent sequentially to the server.

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(['x' => 2], ['$set' => ['x' => 1]]);
$bulk->insert(['_id' => 3, 'x' => 3]);
$bulk->delete(['x' => 1]);

?>

Will result in four write commands (i.e. roundtrips) being executed. Since the operations are ordered, the third insertion cannot be sent until the preceding update is executed.

Beispiel #2 Ordered write operations causing an error

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->delete([]);
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3, 'hello' => 'world']);
$bulk->update(['_id' => 3], ['$set' => ['hello' => 'earth']]);
$bulk->insert(['_id' => 4, 'hello' => 'pluto']);
$bulk->update(['_id' => 4], ['$set' => ['hello' => 'moon']]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 5]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);

try {
    $result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
    $result = $e->getWriteResult();

    // Check if the write concern could not be fulfilled
    if ($writeConcernError = $result->getWriteConcernError()) {
        printf("%s (%d): %s\n",
            $writeConcernError->getMessage(),
            $writeConcernError->getCode(),
            var_export($writeConcernError->getInfo(), true)
        );
    }

    // Check if any write operations did not complete at all
    foreach ($result->getWriteErrors() as $writeError) {
        printf("Operation#%d: %s (%d)\n",
            $writeError->getIndex(),
            $writeError->getMessage(),
            $writeError->getCode()
        );
    }
} catch (MongoDB\Driver\Exception\Exception $e) {
    printf("Other error: %s\n", $e->getMessage());
    exit;
}

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Updated  %d document(s)\n", $result->getModifiedCount());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Operation#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Inserted 4 document(s)
Updated  2 document(s)

If the write concern could not be fullfilled, the example above would output something like:

waiting for replication timed out (64): array (
  'wtimeout' => true,
)
Operation#7: E11000 duplicate key error index: databaseName.collectionName.$_id_ dup key: { : 3 } (11000)
Inserted 4 document(s)
Updated  2 document(s)

If we execute the example above, but allow for unordered writes:

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]);
/* ... */

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Operation#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Operation#8: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 4 } (11000)
Inserted 5 document(s)
Updated  2 document(s)

Siehe auch

  • MongoDB\Driver\Manager::executeBulkWrite()
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\WriteConcernError
  • MongoDB\Driver\WriteError

Inhaltsverzeichnis

  • MongoDB\Driver\BulkWrite::__construct — Create a new BulkWrite
  • MongoDB\Driver\BulkWrite::count — Count number of write operations in the bulk
  • MongoDB\Driver\BulkWrite::delete — Add a delete operation to the bulk
  • MongoDB\Driver\BulkWrite::insert — Add an insert operation to the bulk
  • MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk


Create a new BulkWrite

  • « MongoDB\Driver\BulkWrite
  • MongoDB\Driver\BulkWrite::count »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Create a new BulkWrite

MongoDB\Driver\BulkWrite::__construct

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::__construct — Create a new BulkWrite

Beschreibung

public MongoDB\Driver\BulkWrite::__construct ( array $options = ? )

Constructs a new MongoDB\Driver\BulkWrite, which is a mutable object to which one or more write operations may be added. The write(s) may then be executed with MongoDB\Driver\Manager::executeBulkWrite().

Parameter-Liste

options (array)

options
Option | Type | Description | Default
bypassDocumentValidation bool

If true, allows insert and update operations to circumvent document level validation.

This option is available in MongoDB 3.2+ and is ignored for older server versions, which do not support document level validation.

false
ordered | bool | Ordered operations (true) are executed serially on the MongoDB server, while unordered operations (false) are sent to the server in an arbitrary order and may be executed in parallel. | true

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Changelog

Version | Beschreibung
PECL mongodb 1.1.0 | Added the "bypassDocumentValidation" option.

Beispiele

Beispiel #1 MongoDB\Driver\BulkWrite::__construct() example

<?php

$bulk = new MongoDB\Driver\BulkWrite(['ordered' => true]);
$bulk->delete([]);
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(
    ['x' => 2],
    ['$set' => ['x' => 1]],
    ['limit' => 1, 'upsert' => false]
);
$bulk->delete(['x' => 1], ['limit' => 1]);
$bulk->update(
    ['_id' => 3],
    ['$set' => ['x' => 3]],
    ['limit' => 1, 'upsert' => true]
);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(1);

try {
    $result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
    $result = $e->getWriteResult();

    // Check if the write concern could not be fulfilled
    if ($writeConcernError = $result->getWriteConcernError()) {
        printf("%s (%d): %s\n",
            $writeConcernError->getMessage(),
            $writeConcernError->getCode(),
            var_export($writeConcernError->getInfo(), true)
        );
    }

    // Check if any write operations did not complete at all
    foreach ($result->getWriteErrors() as $writeError) {
        printf("Operation#%d: %s (%d)\n",
            $writeError->getIndex(),
            $writeError->getMessage(),
            $writeError->getCode()
        );
    }
} catch (MongoDB\Driver\Exception\Exception $e) {
    printf("Other error: %s\n", $e->getMessage());
    exit;
}

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Updated  %d document(s)\n", $result->getModifiedCount());
printf("Upserted %d document(s)\n", $result->getUpsertedCount());
printf("Deleted  %d document(s)\n", $result->getDeletedCount());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Inserted 2 document(s)
Updated  1 document(s)
Upserted 1 document(s)
Deleted  1 document(s)

Siehe auch

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


Count number of write operations in the bulk

  • « MongoDB\Driver\BulkWrite::__construct
  • MongoDB\Driver\BulkWrite::delete »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Count number of write operations in the bulk

MongoDB\Driver\BulkWrite::count

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::count — Count number of write operations in the bulk

Beschreibung

public MongoDB\Driver\BulkWrite::count ( ) : int

Returns the number of write operations added to the MongoDB\Driver\BulkWrite object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns number of write operations added to the MongoDB\Driver\BulkWrite object.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Changelog

Version | Beschreibung
PECL mongodb 1.2.0 | Returns the number of write operations added to the MongoDB\Driver\BulkWrite object. Earlier versions returned the expected number of client-to-server roundtrips required to execute all write operations.

Beispiele

Beispiel #1 MongoDB\Driver\BulkWrite::count() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);
$bulk->update(['x' => 2], ['$set' => ['x' => 1]]);
$bulk->delete(['x' => 1]);

var_dump(count($bulk));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(4)


Add a delete operation to the bulk

  • « MongoDB\Driver\BulkWrite::count
  • MongoDB\Driver\BulkWrite::insert »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Add a delete operation to the bulk

MongoDB\Driver\BulkWrite::delete

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::delete — Add a delete operation to the bulk

Beschreibung

public MongoDB\Driver\BulkWrite::delete ( array|object $filter , array $deleteOptions = ? ) : void

Adds a delete operation to the MongoDB\Driver\BulkWrite.

Parameter-Liste

filter (array|object)

Das » Abfrage-Prädikat. Ein leeres Prädikat passt auf alle Dokumente in der Sammlung.

Hinweis: Bei der Auswertung von Abfragekriterien vergleicht MongoDB Typen und Werte gemäß seiner eigenen » Vergleichsregeln für BSON-Typen, die sich von PHP's Regeln für Typenvergleich und Typen-Jonglage unterscheidet. Wenn es eine Übereinstimmung mit einem speziellen BSON-Typ gibt, sollten die Abfragekriterien die entsprechende BSON-Klasse verwenden (z.B. MongoDB\BSON\ObjectId, um auf eine » ObjectId zu passen).

deleteOptions

deleteOptions
Option | Type | Description | Default
collation array|object

» Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks. When specifying collation, the "locale" field is mandatory; all other collation fields are optional. For descriptions of the fields, see » Collation Document.

If the collation is unspecified but the collection has a default collation, the operation uses the collation specified for the collection. If no collation is specified for the collection or for the operation, MongoDB uses the simple binary comparison used in prior versions for string comparisons.

This option is available in MongoDB 3.4+ and will result in an exception at execution time if specified for an older server version.

hint string|array|object

Index specification. Specify either the index name as a string or the index key pattern. If specified, then the query system will only consider plans using the hinted index.

This option is available in MongoDB 4.4+ and will result in an exception at execution time if specified for an older server version.

limit | bool | Delete all matching documents (false), or only the first matching document (true) | false

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Changelog

Version | Beschreibung
PECL mongodb 1.8.0 | Added the "hint" option.
PECL mongodb 1.2.0 | Added the "collation" option.

Beispiele

Beispiel #1 MongoDB\Driver\BulkWrite::delete() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->delete(['x' => 1], ['limit' => 1]);
$bulk->delete(['x' => 2], ['limit' => 0]);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

Siehe auch

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


Add an insert operation to the bulk

  • « MongoDB\Driver\BulkWrite::delete
  • MongoDB\Driver\BulkWrite::update »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Add an insert operation to the bulk

MongoDB\Driver\BulkWrite::insert

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::insert — Add an insert operation to the bulk

Beschreibung

public MongoDB\Driver\BulkWrite::insert ( array|object $document ) : mixed

Adds an insert operation to the MongoDB\Driver\BulkWrite.

Parameter-Liste

document (array|object)

A document to insert.

Rückgabewerte

Returns the _id of the inserted document. If the document did not have an _id, the MongoDB\BSON\ObjectId generated for the insert will be returned.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Changelog

Version | Beschreibung
PECL mongodb 1.3.0 | The _id of the inserted document is always returned. Previously, the method only returned a value if a MongoDB\BSON\ObjectId was generated.

Beispiele

Beispiel #1 MongoDB\Driver\BulkWrite::insert() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;

$document1 = ['title' => 'one'];
$document2 = ['_id' => 'custom ID', 'title' => 'two'];
$document3 = ['_id' => new MongoDB\BSON\ObjectId, 'title' => 'three'];

$_id1 = $bulk->insert($document1);
$_id2 = $bulk->insert($document2);
$_id3 = $bulk->insert($document3);

var_dump($_id1, $_id2, $_id3);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MongoDB\BSON\ObjectId)#3 (1) {
  ["oid"]=>
  string(24) "54d51146bd21b91405401d92"
}
NULL
NULL

Siehe auch

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult
  • MongoDB\BSON\ObjectId
  • MongoDB\BSON\Persistable


Add an update operation to the bulk

  • « MongoDB\Driver\BulkWrite::insert
  • MongoDB\Driver\Session »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Add an update operation to the bulk

MongoDB\Driver\BulkWrite::update

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk

Beschreibung

public MongoDB\Driver\BulkWrite::update ( array|object $filter , array|object $newObj , array $updateOptions = ? ) : void

Adds an update operation to the MongoDB\Driver\BulkWrite.

Parameter-Liste

filter (array|object)

Das » Abfrage-Prädikat. Ein leeres Prädikat passt auf alle Dokumente in der Sammlung.

Hinweis: Bei der Auswertung von Abfragekriterien vergleicht MongoDB Typen und Werte gemäß seiner eigenen » Vergleichsregeln für BSON-Typen, die sich von PHP's Regeln für Typenvergleich und Typen-Jonglage unterscheidet. Wenn es eine Übereinstimmung mit einem speziellen BSON-Typ gibt, sollten die Abfragekriterien die entsprechende BSON-Klasse verwenden (z.B. MongoDB\BSON\ObjectId, um auf eine » ObjectId zu passen).

newObj (array|object)

A document containing either update operators (e.g. $set), a replacement document (i.e. only field:value expressions), or an » aggregation pipeline.

updateOptions

updateOptions
Option | Type | Description | Default
arrayFilters array

An array of filter documents that determines which array elements to modify for an update operation on an array field. See » Specify arrayFilters for Array Update Operations in the MongoDB manual for more information.

This option is available in MongoDB 3.6+ and will result in an exception at execution time if specified for an older server version.

collation array|object

» Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks. When specifying collation, the "locale" field is mandatory; all other collation fields are optional. For descriptions of the fields, see » Collation Document.

If the collation is unspecified but the collection has a default collation, the operation uses the collation specified for the collection. If no collation is specified for the collection or for the operation, MongoDB uses the simple binary comparison used in prior versions for string comparisons.

This option is available in MongoDB 3.4+ and will result in an exception at execution time if specified for an older server version.

hint string|array|object

Index specification. Specify either the index name as a string or the index key pattern. If specified, then the query system will only consider plans using the hinted index.

This option is available in MongoDB 4.2+ and will result in an exception at execution time if specified for an older server version.

multi | bool | Update only the first matching document if false, or all matching documents true. This option cannot be true if newObj is a replacement document. | false
upsert | bool | If filter does not match an existing document, insert a single document. The document will be created from newObj if it is a replacement document (i.e. no update operators); otherwise, the operators in newObj will be applied to filter to create the new document. | false

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Changelog

Version | Beschreibung
PECL mongodb 1.7.0 | Added the "hint" option.
PECL mongodb 1.6.0 | The newObj parameter now accepts an aggregation pipeline. This feature requires MongoDB 4.2+ and will result in an exception at execution time if specified for an older server version.
PECL mongodb 1.5.0 | Using the "arrayFilters" option will result in an exception at execution time if unsupported by the server. Previously, no exception would be thrown and the option may have been ignored.
PECL mongodb 1.4.0 | Added the "arrayFilters" option.
PECL mongodb 1.2.0 | Added the "collation" option.

Beispiele

Beispiel #1 MongoDB\Driver\BulkWrite::update() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->update(
    ['x' => 2],
    ['$set' => ['y' => 3]],
    ['multi' => false, 'upsert' => false]
);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

Siehe auch

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


The MongoDB\Driver\Session class

(mongodb >=1.4.0)

Einführung

The MongoDB\Driver\Session class represents a client session and is returned by MongoDB\Driver\Manager::startSession(). Commands, queries, and write operations may then be associated the session.

Klassenbeschreibung

final MongoDB\Driver\Session {
/* Constants */
const string TRANSACTION_NONE = none ;
const string TRANSACTION_STARTING = starting ;
const string TRANSACTION_IN_PROGRESS = in_progress ;
const string TRANSACTION_COMMITTED = committed ;
const string TRANSACTION_ABORTED = aborted ;
/* Methoden */
final public abortTransaction ( ) : void
final public advanceClusterTime ( array|object $clusterTime ) : void
final public advanceOperationTime ( MongoDB\BSON\TimestampInterface $operationTime ) : void
final public commitTransaction ( ) : void
final private __construct ( )
final public endSession ( ) : void
final public getClusterTime ( ) : object|null
final public getLogicalSessionId ( ) : object
final public getOperationTime ( ) : MongoDB\BSON\Timestamp|null
final public getServer ( ) : MongoDB\Driver\Server|null
final public getTransactionOptions ( ) : array|null
final public getTransactionState ( ) : string
final public isInTransaction ( ) : bool
final public startTransaction ( array $options = ? ) : void
}

Vordefinierte Konstanten

MongoDB\Driver\Session::TRANSACTION_NONE

There is no transaction in progress.

MongoDB\Driver\Session::TRANSACTION_STARTING

A transaction has been started, but no operation has been sent to the server.

MongoDB\Driver\Session::TRANSACTION_IN_PROGRESS

A transaction is in progress.

MongoDB\Driver\Session::TRANSACTION_COMMITTED

The transaction was committed.

MongoDB\Driver\Session::TRANSACTION_ABORTED

The transaction was aborted.

Inhaltsverzeichnis

  • MongoDB\Driver\Session::abortTransaction — Aborts a transaction
  • MongoDB\Driver\Session::advanceClusterTime — Advances the cluster time for this session
  • MongoDB\Driver\Session::advanceOperationTime — Advances the operation time for this session
  • MongoDB\Driver\Session::commitTransaction — Commits a transaction
  • MongoDB\Driver\Session::__construct — Create a new Session (not used)
  • MongoDB\Driver\Session::endSession — Terminates a session
  • MongoDB\Driver\Session::getClusterTime — Returns the cluster time for this session
  • MongoDB\Driver\Session::getLogicalSessionId — Returns the logical session ID for this session
  • MongoDB\Driver\Session::getOperationTime — Returns the operation time for this session
  • MongoDB\Driver\Session::getServer — Returns the server to which this session is pinned
  • MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction
  • MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session
  • MongoDB\Driver\Session::isInTransaction — Returns whether a multi-document transaction is in progress
  • MongoDB\Driver\Session::startTransaction — Starts a transaction


Aborts a transaction

  • « MongoDB\Driver\Session
  • MongoDB\Driver\Session::advanceClusterTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Aborts a transaction

MongoDB\Driver\Session::abortTransaction

(mongodb >=1.5.0)

MongoDB\Driver\Session::abortTransaction — Aborts a transaction

Beschreibung

final public MongoDB\Driver\Session::abortTransaction ( ) : void

Terminates the multi-document transaction and rolls back any data changes made by the operations within the transaction. That is, the transaction ends without saving any of the changes made by the operations in the transaction.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\RuntimeException if the transaction could not be aborted (e.g. a transaction was not started).

Siehe auch

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client
  • MongoDB\Driver\Session::commitTransaction() - Commits a transaction
  • MongoDB\Driver\Session::startTransaction() - Starts a transaction


Advances the cluster time for this session

  • « MongoDB\Driver\Session::abortTransaction
  • MongoDB\Driver\Session::advanceOperationTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Advances the cluster time for this session

MongoDB\Driver\Session::advanceClusterTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::advanceClusterTime — Advances the cluster time for this session

Beschreibung

final public MongoDB\Driver\Session::advanceClusterTime ( array|object $clusterTime ) : void

Advances the cluster time for this session. If the cluster time is less than or equal to the session's current cluster time, this function is a no-op.

By using this method in conjunction with MongoDB\Driver\Session::advanceOperationTime() to copy the cluster and operation times from another session, you can ensure that operations in this session are causally consistent with the last operation in the other session.

Parameter-Liste

clusterTime

The cluster time is a document containing a logical timestamp and server signature. Typically, this value will be obtained by calling MongoDB\Driver\Session::getClusterTime() on another session object.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Session::advanceOperationTime() - Advances the operation time for this session
  • MongoDB\Driver\Session::getClusterTime() - Returns the cluster time for this session


Advances the operation time for this session

  • « MongoDB\Driver\Session::advanceClusterTime
  • MongoDB\Driver\Session::commitTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Advances the operation time for this session

MongoDB\Driver\Session::advanceOperationTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::advanceOperationTime — Advances the operation time for this session

Beschreibung

final public MongoDB\Driver\Session::advanceOperationTime ( MongoDB\BSON\TimestampInterface $operationTime ) : void

Advances the operation time for this session. If the operation time is less than or equal to the session's current operation time, this function is a no-op.

By using this method in conjunction with MongoDB\Driver\Session::advanceClusterTime() to copy the operation and cluster times from another session, you can ensure that operations in this session are causally consistent with the last operation in the other session.

Parameter-Liste

operationTime

The operation time is a logical timestamp. Typically, this value will be obtained by calling MongoDB\Driver\Session::getOperationTime() on another session object.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Session::advanceClusterTime() - Advances the cluster time for this session
  • MongoDB\Driver\Session::getClusterTime() - Returns the cluster time for this session


Commits a transaction

  • « MongoDB\Driver\Session::advanceOperationTime
  • MongoDB\Driver\Session::__construct »
  • PHP Manual
  • MongoDB\Driver\Session
  • Commits a transaction

MongoDB\Driver\Session::commitTransaction

(mongodb >=1.5.0)

MongoDB\Driver\Session::commitTransaction — Commits a transaction

Beschreibung

final public MongoDB\Driver\Session::commitTransaction ( ) : void

Saves the changes made by the operations in the multi-document transaction and ends the transaction. Until the commit, none of the data changes made from within the transaction are visible outside the transaction.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\CommandException if the server could not commit the transaction (e.g. due to conflicts, network issues). In case the exception's MongoDB\Driver\Exception\CommandException::getResultDocument() has a "errorLabels" element, and this array contains a "TransientTransactionError" or "UnUnknownTransactionCommitResult" value, it is safe to re-try the whole transaction. In newer versions of the driver, MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() should be used to test for this situation instead.
  • Throws MongoDB\Driver\Exception\RuntimeException if the transaction could not be commited (e.g. a transaction was not started).

Siehe auch

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client
  • MongoDB\Driver\Session::abortTransaction() - Aborts a transaction
  • MongoDB\Driver\Session::startTransaction() - Starts a transaction
  • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() - Returns whether an error label is associated with an exception


Create a new Session (not used)

  • « MongoDB\Driver\Session::commitTransaction
  • MongoDB\Driver\Session::endSession »
  • PHP Manual
  • MongoDB\Driver\Session
  • Create a new Session (not used)

MongoDB\Driver\Session::__construct

(mongodb >=1.4.0)

MongoDB\Driver\Session::__construct — Create a new Session (not used)

Beschreibung

final private MongoDB\Driver\Session::__construct ( )

MongoDB\Driver\Session objects are returned by MongoDB\Driver\Manager::startSession() and cannot be constructed directly.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Siehe auch

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client


Terminates a session

  • « MongoDB\Driver\Session::__construct
  • MongoDB\Driver\Session::getClusterTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Terminates a session

MongoDB\Driver\Session::endSession

(mongodb >=1.5.0)

MongoDB\Driver\Session::endSession — Terminates a session

Beschreibung

final public MongoDB\Driver\Session::endSession ( ) : void

This method closes an existing session. If a transaction was associated with this session, the transaction will be aborted. After calling this method, applications should not invoke other methods on the session.

Hinweis: Sessions are also closed during garbage collection. It should not be necessary to call this method under normal circumstances.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client
  • MongoDB\Driver\Session::abortTransaction() - Aborts a transaction
  • MongoDB\Driver\Session::commitTransaction() - Commits a transaction
  • MongoDB\Driver\Session::startTransaction() - Starts a transaction


Returns the cluster time for this session

  • « MongoDB\Driver\Session::endSession
  • MongoDB\Driver\Session::getLogicalSessionId »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the cluster time for this session

MongoDB\Driver\Session::getClusterTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::getClusterTime — Returns the cluster time for this session

Beschreibung

final public MongoDB\Driver\Session::getClusterTime ( ) : object|null

Returns the cluster time for this session. If the session has not been used for any operation and MongoDB\Driver\Session::advanceClusterTime() has not been called, the cluster time will be null.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the cluster time for this session, or null if the session has no cluster time.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Session::advanceClusterTime() - Advances the cluster time for this session


Returns the logical session ID for this session

  • « MongoDB\Driver\Session::getClusterTime
  • MongoDB\Driver\Session::getOperationTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the logical session ID for this session

MongoDB\Driver\Session::getLogicalSessionId

(mongodb >=1.4.0)

MongoDB\Driver\Session::getLogicalSessionId — Returns the logical session ID for this session

Beschreibung

final public MongoDB\Driver\Session::getLogicalSessionId ( ) : object

Returns the logical session ID for this session, which may be used to identify this session's operations on the server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the logical session ID for this session.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.


Returns the operation time for this session

  • « MongoDB\Driver\Session::getLogicalSessionId
  • MongoDB\Driver\Session::getServer »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the operation time for this session

MongoDB\Driver\Session::getOperationTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::getOperationTime — Returns the operation time for this session

Beschreibung

final public MongoDB\Driver\Session::getOperationTime ( ) : MongoDB\BSON\Timestamp|null

Returns the operation time for this session. If the session has not been used for any operation and MongoDB\Driver\Session::advanceOperationTime() has not been called, the operation time will be null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the operation time for this session, or null if the session has no operation time.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Session::advanceOperationTime() - Advances the operation time for this session


Returns the server to which this session is pinned

  • « MongoDB\Driver\Session::getOperationTime
  • MongoDB\Driver\Session::getTransactionOptions »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the server to which this session is pinned

MongoDB\Driver\Session::getServer

(mongodb >=1.6.0)

MongoDB\Driver\Session::getServer — Returns the server to which this session is pinned

Beschreibung

final public MongoDB\Driver\Session::getServer ( ) : MongoDB\Driver\Server|null

Returns the MongoDB\Driver\Server to which this session is pinned. If the session is not pinned to a server, null will be returned.

Session pinning is primarily used for sharded transactions, as all commands within a sharded transaction must be sent to the same mongos instance. This method is intended to be used by libraries built atop the extension to allow use of a pinned server instead of invoking server selection.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the MongoDB\Driver\Server to which this session is pinned, or null if the session is not pinned to any server.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.


Returns options for the currently running transaction

  • « MongoDB\Driver\Session::getServer
  • MongoDB\Driver\Session::getTransactionState »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns options for the currently running transaction

MongoDB\Driver\Session::getTransactionOptions

(mongodb >=1.7.0)

MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction

Beschreibung

final public MongoDB\Driver\Session::getTransactionOptions ( ) : array|null

Returns options for the currently running transaction.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a array containing current transaction options, or null if no transaction is running.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Session::getTransactionState() - Returns the current transaction state for this session


Returns the current transaction state for this session

  • « MongoDB\Driver\Session::getTransactionOptions
  • MongoDB\Driver\Session::isInTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the current transaction state for this session

MongoDB\Driver\Session::getTransactionState

(mongodb >=1.7.0)

MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session

Beschreibung

final public MongoDB\Driver\Session::getTransactionState ( ) : string

Returns the transaction state for this session.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current transaction state for this session.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Session::isInTransaction() - Returns whether a multi-document transaction is in progress
  • MongoDB\Driver\Session::getTransactionOptions() - Returns options for the currently running transaction


Returns whether a multi-document transaction is in progress

  • « MongoDB\Driver\Session::getTransactionState
  • MongoDB\Driver\Session::startTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns whether a multi-document transaction is in progress

MongoDB\Driver\Session::isInTransaction

(mongodb >=1.6.0)

MongoDB\Driver\Session::isInTransaction — Returns whether a multi-document transaction is in progress

Beschreibung

final public MongoDB\Driver\Session::isInTransaction ( ) : bool

Returns whether a multi-document transaction is currently in progress for this session. A transaction is considered "in progress" if it has been started but has not been committed or aborted.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if a transaction is currently in progress for this session, and false otherwise.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Session::getTransactionState() - Returns the current transaction state for this session


Starts a transaction

  • « MongoDB\Driver\Session::isInTransaction
  • MongoDB\Driver\ClientEncryption »
  • PHP Manual
  • MongoDB\Driver\Session
  • Starts a transaction

MongoDB\Driver\Session::startTransaction

(mongodb >=1.5.0)

MongoDB\Driver\Session::startTransaction — Starts a transaction

Beschreibung

final public MongoDB\Driver\Session::startTransaction ( array $options = ? ) : void

Starts a multi-document transaction associated with the session. At any given time, you can have at most one open transaction for a session. After starting a transaction, the session object must be passed to each operation via the "session" option (e.g. MongoDB\Driver\Manager::executeBulkWrite()) in order to associate that operation with the transaction.

Transactions can be committed through MongoDB\Driver\Session::commitTransaction(), and aborted with MongoDB\Driver\Session::abortTransaction(). Transactions are also automatically aborted when the session is closed from garbage collection or by explicitly calling MongoDB\Driver\Session::endSession().

Parameter-Liste

options

Options can be passed as argument to this method. Each element in this options array overrides the corresponding option from the "defaultTransactionOptions" option, if set when starting the session with MongoDB\Driver\Manager::startSession().

options
Option Type Description
maxCommitTimeMS integer

Die maximale Dauer in Millisekunden, die ein einziger commitTransaction-Befehl beanspruchen darf.

Wenn angegeben, muss maxCommitTimeMS eine vorzeichenbehaftete 32-bit Ganzzahl größer als oder gleich Null sein.

readConcern MongoDB\Driver\ReadConcern

A read concern to apply to the operation.

This option is available in MongoDB 3.2+ and will result in an exception at execution time if specified for an older server version.

readPreference MongoDB\Driver\ReadPreference

A read preference to use for selecting a server for the operation.

writeConcern MongoDB\Driver\WriteConcern

A write concern to apply to the operation.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\CommandException if the transaction could not be started because of a server-side problem (e.g. a lock could not be obtained).
  • Throws MongoDB\Driver\Exception\RuntimeException if the transaction could not be started (e.g. a transaction was already started).

Changelog

Version | Beschreibung
PECL mongodb 1.6.0 | The "maxCommitTimeMS" option was added.

Siehe auch

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client
  • MongoDB\Driver\Session::commitTransaction() - Commits a transaction
  • MongoDB\Driver\Session::abortTransaction() - Aborts a transaction


The MongoDB\Driver\ClientEncryption class

(mongodb >=1.7.0)

Einführung

The MongoDB\Driver\ClientEncryption class handles creation of data keys for client-side encryption, as well as manually encrypting and decrypting values.

Klassenbeschreibung

final MongoDB\Driver\ClientEncryption {
/* Constants */
const string AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC = AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic ;
const string AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM = AEAD_AES_256_CBC_HMAC_SHA_512-Random ;
/* Methoden */
final public createDataKey ( string $kmsProvider , array $options = ? ) : MongoDB\BSON\Binary
final public decrypt ( MongoDB\BSON\Binary $value ) : mixed
final public encrypt ( mixed $value , array $options = ? ) : MongoDB\BSON\Binary
}

Vordefinierte Konstanten

MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC

Uses randomized encryption.

MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM

Uses deterministic (queryable) encryption.

Siehe auch

  • MongoDB\Driver\Manager::createClientEncryption()

Inhaltsverzeichnis

  • MongoDB\Driver\ClientEncryption::createDataKey — Create a new encryption data key
  • MongoDB\Driver\ClientEncryption::decrypt — Decrypt a value
  • MongoDB\Driver\ClientEncryption::encrypt — Encrypt a value


Create a new encryption data key

  • « MongoDB\Driver\ClientEncryption
  • MongoDB\Driver\ClientEncryption::decrypt »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Create a new encryption data key

MongoDB\Driver\ClientEncryption::createDataKey

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::createDataKey — Create a new encryption data key

Beschreibung

final public MongoDB\Driver\ClientEncryption::createDataKey ( string $kmsProvider , array $options = ? ) : MongoDB\BSON\Binary

Creates a new key document and inserts it into the key vault collection.

Parameter-Liste

kmsProvider

The KMS provider ("local" or "aws") that will be used to encrypt the new encryption key.

options

Data key options
Option Type Description
masterKey array

The masterKey identifies a KMS-specific key used to encrypt the new data key. If the kmsProvider is aws it is required and has the following fields:

AWS masterKey options
Option | Type | Description
region | string | Required.
key | string | Required. The Amazon Resource Name (ARN) to the AWS customer master key (CMK).
endpoint | string | Optional. An alternate host identifier to send KMS requests to. May include port number.

keyAltNames array

An optional list of string alternate names used to reference a key. If a key is created with alternate names, then encryption may refer to the key by the unique alternate name instead of by _id.

Rückgabewerte

Returns the identifier of the new key as a MongoDB\BSON\Binary object with subtype 4 (UUID).

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\EncryptionException if an error occurs while creating the data key


Decrypt a value

  • « MongoDB\Driver\ClientEncryption::createDataKey
  • MongoDB\Driver\ClientEncryption::encrypt »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Decrypt a value

MongoDB\Driver\ClientEncryption::decrypt

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::decrypt — Decrypt a value

Beschreibung

final public MongoDB\Driver\ClientEncryption::decrypt ( MongoDB\BSON\Binary $value ) : mixed

Decrypts the value.

Parameter-Liste

value

A MongoDB\BSON\Binary instance with subtype 6 containing the encrypted value.

Rückgabewerte

Returns the decrypted value as it was passed to MongoDB\Driver\ClientEncryption::encrypt().

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\EncryptionException if an error occurs while decrypting the value

Siehe auch

  • MongoDB\Driver\ClientEncryption::encrypt() - Encrypt a value


Encrypt a value

  • « MongoDB\Driver\ClientEncryption::decrypt
  • MongoDB\Driver\WriteConcern »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Encrypt a value

MongoDB\Driver\ClientEncryption::encrypt

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::encrypt — Encrypt a value

Beschreibung

final public MongoDB\Driver\ClientEncryption::encrypt ( mixed $value , array $options = ? ) : MongoDB\BSON\Binary

Encrypts the value.

Parameter-Liste

value

The value to be encrypted. Any value that can be inserted into MongoDB can be encrypted using this method.

options

Encryption options
Option Type Description
algorithm string

The encryption algorithm to be used. Use the constants defined in MongoDB\Driver\ClientEncryption.

keyAltName string

Identifies a key vault collection document by keyAltName.

keyId MongoDB\BSON\Binary

Identifies a data key by _id. The value is a UUID (binary subtype 4).

Hinweis: Exactly one of keyId and keyAltName must be provided. The algorithm option is required.

Rückgabewerte

Returns the encrypted value as MongoDB\BSON\Binary object with subtype 6.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\EncryptionException if an error occurs while encrypting the value

Siehe auch

  • MongoDB\Driver\ClientEncryption::decrypt() - Decrypt a value


The MongoDB\Driver\WriteConcern class

(mongodb >=1.0.0)

Einführung

MongoDB\Driver\WriteConcern describes the level of acknowledgement requested from MongoDB for write operations to a standalone mongod or to replica sets or to sharded clusters. In sharded clusters, mongos instances will pass the write concern on to the shards.

Klassenbeschreibung

final MongoDB\Driver\WriteConcern implements MongoDB\BSON\Serializable , Serializable {
/* Constants */
const string MAJORITY = "majority" ;
/* Methoden */
final public bsonSerialize ( ) : object
final public __construct ( string|int $w , int $wtimeout = ? , bool $journal = ? )
final public getJournal ( ) : bool|null
final public getW ( ) : string|int|null
final public getWtimeout ( ) : int|MongoDB\BSON\Int64
final public isDefault ( ) : bool
final public serialize ( ) : string
final public unserialize ( string $serialized ) : void
}

Vordefinierte Konstanten

MongoDB\Driver\WriteConcern::MAJORITY

Majority of all the members in the set; arbiters, non-voting members, passive members, hidden members and delayed members are all included in the definition of majority write concern.

Changelog

Version | Beschreibung
PECL mongodb 1.7.0 | Implements Serializable.
PECL mongodb 1.2.0 | Implements MongoDB\BSON\Serializable.

Inhaltsverzeichnis

  • MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\WriteConcern::__construct — Create a new WriteConcern
  • MongoDB\Driver\WriteConcern::getJournal — Returns the WriteConcern's "journal" option
  • MongoDB\Driver\WriteConcern::getW — Returns the WriteConcern's "w" option
  • MongoDB\Driver\WriteConcern::getWtimeout — Returns the WriteConcern's "wtimeout" option
  • MongoDB\Driver\WriteConcern::isDefault — Checks if this is the default write concern
  • MongoDB\Driver\WriteConcern::serialize — Serialize a WriteConcern
  • MongoDB\Driver\WriteConcern::unserialize — Unserialize a WriteConcern


Returns an object for BSON serialization

  • « MongoDB\Driver\WriteConcern
  • MongoDB\Driver\WriteConcern::__construct »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns an object for BSON serialization

MongoDB\Driver\WriteConcern::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization

Beschreibung

final public MongoDB\Driver\WriteConcern::bsonSerialize ( ) : object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an object for serializing the WriteConcern as BSON.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteConcern::bsonSerialize() with majority write concern

<?php

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY);
var_dump($wc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($wc));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#2 (1) {
  ["w"]=>
  string(8) "majority"
}

{ "w" : "majority" }

Beispiel #2 MongoDB\Driver\WriteConcern::bsonSerialize() with wtimeout and journal

<?php

$wc = new MongoDB\Driver\WriteConcern(2, 1000, true);
var_dump($wc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($wc));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#2 (3) {
  ["w"]=>
  int(2)
  ["j"]=>
  bool(true)
  ["wtimeout"]=>
  int(1000)
}

{ "w" : 2, "j" : true, "wtimeout" : 1000 }

Siehe auch

  • MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON
  • » Write Concern reference


Create a new WriteConcern

  • « MongoDB\Driver\WriteConcern::bsonSerialize
  • MongoDB\Driver\WriteConcern::getJournal »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Create a new WriteConcern

MongoDB\Driver\WriteConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::__construct — Create a new WriteConcern

Beschreibung

final public MongoDB\Driver\WriteConcern::__construct ( string|int $w , int $wtimeout = ? , bool $journal = ? )

Constructs a new MongoDB\Driver\WriteConcern, which is an immutable value object.

Parameter-Liste

w

Write concern
Value | Description
1 | Requests acknowledgement that the write operation has propagated to the standalone mongod or the primary in a replica set. This is the default write concern for MongoDB.
0 | Requests no acknowledgment of the write operation. However, this may return information about socket exceptions and networking errors to the application.
<integer greater than 1> | Numbers greater than 1 are valid only for replica sets to request acknowledgement from specified number of members, including the primary.
MongoDB\Driver\WriteConcern::MAJORITY

Requests acknowledgment that write operations have propagated to the majority of voting nodes, including the primary, and have been written to the on-disk journal for these nodes.

Prior to MongoDB 3.0, this refers to the majority of replica set members (not just voting nodes).

string | A string value is interpereted as a tag set. Requests acknowledgement that the write operations have propagated to a replica set member with the specified tag.

wtimeout

How long to wait (in milliseconds) for secondaries before failing.

wtimeout causes write operations to return with an error (WriteConcernError) after the specified limit, even if the required write concern will eventually succeed. When these write operations return, MongoDB does not undo successful data modifications performed before the write concern exceeded the wtimeout time limit.

If specified, wtimeout must be a signed 64-bit integer greater than or equal to zero.

Write concern timeout
Value | Description
0 | Block indefinitely. This is the default.
<integer greater than 0> | Milliseconds to wait until returning.

journal

Wait until mongod has applied the write to the journal.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if w is invalid or wtimeout is either negative or greater than the bounds of a signed 32-bit integer.

Changelog

Version | Beschreibung
PECL mongodb 1.7.0 | The wTimeout parameter now accepts 64-bit values.

Beispiele

Beispiel #1 MongoDB\Driver\WriteConcern::__construct() example

<?php

/* Request write acknowledgement from the majority of the replica set nodes */
$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 500);

/* Request write acknowledgement from a node configured with the "MultipleDC" tag */
$wc = new MongoDB\Driver\WriteConcern("MultipleDC", 500);

?>

Siehe auch

  • » Write Concern reference


Returns the WriteConcern's "journal" option

  • « MongoDB\Driver\WriteConcern::__construct
  • MongoDB\Driver\WriteConcern::getW »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns the WriteConcern's "journal" option

MongoDB\Driver\WriteConcern::getJournal

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getJournal — Returns the WriteConcern's "journal" option

Beschreibung

final public MongoDB\Driver\WriteConcern::getJournal ( ) : bool|null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the WriteConcern's "journal" option.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteConcern::getJournal() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getJournal());

$wc = new MongoDB\Driver\WriteConcern(1, 0, true);
var_dump($wc->getJournal());

$wc = new MongoDB\Driver\WriteConcern(1, 0, false);
var_dump($wc->getJournal());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
bool(true)
bool(false)

Siehe auch

  • » Write Concern reference


Returns the WriteConcern's "w" option

  • « MongoDB\Driver\WriteConcern::getJournal
  • MongoDB\Driver\WriteConcern::getWtimeout »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns the WriteConcern's "w" option

MongoDB\Driver\WriteConcern::getW

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getW — Returns the WriteConcern's "w" option

Beschreibung

final public MongoDB\Driver\WriteConcern::getW ( ) : string|int|null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the WriteConcern's "w" option.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteConcern::getW() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getW());

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY);
var_dump($wc->getW());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)
string(8) "majority"

Siehe auch

  • » Write Concern reference


Returns the WriteConcern's "wtimeout" option

  • « MongoDB\Driver\WriteConcern::getW
  • MongoDB\Driver\WriteConcern::isDefault »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns the WriteConcern's "wtimeout" option

MongoDB\Driver\WriteConcern::getWtimeout

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getWtimeout — Returns the WriteConcern's "wtimeout" option

Beschreibung

final public MongoDB\Driver\WriteConcern::getWtimeout ( ) : int|MongoDB\BSON\Int64

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the WriteConcern's "wtimeout" option.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Changelog

Version | Beschreibung
PECL mongodb 1.7.0 | On 32-bit systems, this method will return a MongoDB\BSON\Int64 instance if the WriteConcern object was created with a wTimeout that exceeds the 32-bit range. On 64-bit systems, this method will always return an integer value.

Beispiele

Beispiel #1 MongoDB\Driver\WriteConcern::getWtimeout() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getWtimeout());

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 3000);
var_dump($wc->getWtimeout());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)
int(3000)

Siehe auch

  • » Write Concern reference


Checks if this is the default write concern

  • « MongoDB\Driver\WriteConcern::getWtimeout
  • MongoDB\Driver\WriteConcern::serialize »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Checks if this is the default write concern

MongoDB\Driver\WriteConcern::isDefault

(mongodb >=1.3.0)

MongoDB\Driver\WriteConcern::isDefault — Checks if this is the default write concern

Beschreibung

final public MongoDB\Driver\WriteConcern::isDefault ( ) : bool

Returns whether this is the default write concern (i.e. no options are specified). This method is primarily intended to be used in conjunction with MongoDB\Driver\Manager::getWriteConcern() to determine whether the Manager has been constructed without any write concern options.

The driver will not include a default write concern in its write operations (e.g. MongoDB\Driver\Manager::executeBulkWrite()) in order to allow the server to apply its own default, which may have been » modified. Libraries that access the Manager's write concern to include it in their own write commands should use this method to ensure that default write concerns are left unset.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if this is the default write concern and false otherwise.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteConcern::isDefault() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/?w=majority');
$wc = $manager->getWriteConcern();
var_dump($wc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/');
$wc = $manager->getWriteConcern();
var_dump($wc->isDefault());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(false)
bool(true)

Siehe auch

  • MongoDB\Driver\Manager::getWriteConcern() - Return the WriteConcern for the Manager
  • » Modify Default Write Concern in the MongoDB manual
  • » Write Concern reference


Serialize a WriteConcern

  • « MongoDB\Driver\WriteConcern::isDefault
  • MongoDB\Driver\WriteConcern::unserialize »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Serialize a WriteConcern

MongoDB\Driver\WriteConcern::serialize

(mongodb >=1.7.0)

MongoDB\Driver\WriteConcern::serialize — Serialize a WriteConcern

Beschreibung

final public MongoDB\Driver\WriteConcern::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\Driver\WriteConcern.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\WriteConcern::unserialize() - Unserialize a WriteConcern
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Unserialize a WriteConcern

  • « MongoDB\Driver\WriteConcern::serialize
  • MongoDB\Driver\ReadPreference »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Unserialize a WriteConcern

MongoDB\Driver\WriteConcern::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\WriteConcern::unserialize — Unserialize a WriteConcern

Beschreibung

final public MongoDB\Driver\WriteConcern::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\Driver\WriteConcern.

Rückgabewerte

Returns the unserialized MongoDB\Driver\WriteConcern.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Siehe auch

  • MongoDB\Driver\WriteConcern::serialize() - Serialize a WriteConcern
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\Driver\ReadPreference class

(mongodb >=1.0.0)

Einführung

Klassenbeschreibung

final MongoDB\Driver\ReadPreference implements MongoDB\BSON\Serializable , Serializable {
/* Constants */
const int RP_PRIMARY = 1 ;
const int RP_PRIMARY_PREFERRED = 5 ;
const int RP_SECONDARY = 2 ;
const int RP_SECONDARY_PREFERRED = 6 ;
const int RP_NEAREST = 10 ;
const string PRIMARY = primary ;
const string PRIMARY_PREFERRED = primaryPreferred ;
const string SECONDARY = secondary ;
const string SECONDARY_PREFERRED = secondaryPreferred ;
const string NEAREST = nearest ;
const int NO_MAX_STALENESS = -1 ;
const int SMALLEST_MAX_STALENESS_SECONDS = 90 ;
/* Methoden */
final public bsonSerialize ( ) : object
final public __construct ( string|int $mode , array $tagSets = null , array $options = array() )
final public getHedge ( ) : object|null
final public getMaxStalenessSeconds ( ) : int
final public getMode ( ) : int
final public getModeString ( ) : string
final public getTagSets ( ) : array
final public serialize ( ) : string
final public unserialize ( string $serialized ) : void
}

Vordefinierte Konstanten

MongoDB\Driver\ReadPreference::RP_PRIMARY

All operations read from the current replica set primary. This is the default read preference for MongoDB.

MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED

In most situations, operations read from the primary but if it is unavailable, operations read from secondary members.

MongoDB\Driver\ReadPreference::RP_SECONDARY

All operations read from the secondary members of the replica set.

MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED

In most situations, operations read from secondary members but if no secondary members are available, operations read from the primary.

MongoDB\Driver\ReadPreference::RP_NEAREST

Operations read from member of the replica set with the least network latency, irrespective of the member's type.

MongoDB\Driver\ReadPreference::PRIMARY

All operations read from the current replica set primary. This is the default read preference for MongoDB.

MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED

In most situations, operations read from the primary but if it is unavailable, operations read from secondary members.

MongoDB\Driver\ReadPreference::SECONDARY

All operations read from the secondary members of the replica set.

MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED

In most situations, operations read from secondary members but if no secondary members are available, operations read from the primary.

MongoDB\Driver\ReadPreference::NEAREST

Operations read from member of the replica set with the least network latency, irrespective of the member's type.

MongoDB\Driver\ReadPreference::NO_MAX_STALENESS

The default value for the "maxStalenessSeconds" option is to specify no limit on maximum staleness, which means that the driver will not consider a secondary's lag when choosing where to direct a read operation.

MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS

The minimum value for the "maxStalenessSeconds" option is 90 seconds. The driver estimates secondaries' staleness by periodically checking the latest write date of each replica set member. Since these checks are infrequent, the staleness estimate is coarse. Thus, the driver cannot enforce a max staleness value of less than 90 seconds.

Changelog

Version | Beschreibung
PECL mongodb 1.7.0 | Added the MongoDB\Driver\ReadPreference::PRIMARY, MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED, MongoDB\Driver\ReadPreference::SECONDARY, MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED, MongoDB\Driver\ReadPreference::NEAREST constants. Implements Serializable.
PECL mongodb 1.2.0 | Added the MongoDB\Driver\ReadPreference::NO_MAX_STALENESS and MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS constants. Implements MongoDB\BSON\Serializable.

Inhaltsverzeichnis

  • MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\ReadPreference::__construct — Create a new ReadPreference
  • MongoDB\Driver\ReadPreference::getHedge — Returns the ReadPreference's "hedge" option
  • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Returns the ReadPreference's "maxStalenessSeconds" option
  • MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option
  • MongoDB\Driver\ReadPreference::getModeString — Returns the ReadPreference's "mode" option as a string
  • MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option
  • MongoDB\Driver\ReadPreference::serialize — Serialize a ReadPreference
  • MongoDB\Driver\ReadPreference::unserialize — Unserialize a ReadPreference


Returns an object for BSON serialization

  • « MongoDB\Driver\ReadPreference
  • MongoDB\Driver\ReadPreference::__construct »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns an object for BSON serialization

MongoDB\Driver\ReadPreference::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization

Beschreibung

final public MongoDB\Driver\ReadPreference::bsonSerialize ( ) : object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an object for serializing the ReadPreference as BSON.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\ReadPreference::bsonSerialize() with primary read preference

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
var_dump($rp->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#2 (1) {
  ["mode"]=>
  string(7) "primary"
}

{ "mode" : "primary" }

Beispiel #2 MongoDB\Driver\ReadPreference::bsonSerialize() with secondary read preference and tag sets

<?php

$rp = new MongoDB\Driver\ReadPreference(
    MongoDB\Driver\ReadPreference::RP_SECONDARY,
    [
        ['dc' => 'ny'],
        ['dc' => 'sf', 'use' => 'reporting'],
        []
    ]
);
var_dump($rp->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#2 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["tags"]=>
  array(3) {
    [0]=>
    object(stdClass)#1 (1) {
      ["dc"]=>
      string(2) "ny"
    }
    [1]=>
    object(stdClass)#5 (2) {
      ["dc"]=>
      string(2) "sf"
      ["use"]=>
      string(9) "reporting"
    }
    [2]=>
    object(stdClass)#4 (0) {
    }
  }
}

{ "mode" : "secondary", "tags" : [ { "dc" : "ny" }, { "dc" : "sf", "use" : "reporting" }, {  } ] }

Beispiel #3 MongoDB\Driver\ReadPreference::bsonSerialize() with secondary read preference and max staleness

<?php

$rp = new MongoDB\Driver\ReadPreference(
    MongoDB\Driver\ReadPreference::RP_SECONDARY,
    null,
    ['maxStalenessSeconds' => 120]
);
var_dump($rp->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#2 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["maxStalenessSeconds"]=>
  int(120)
}

{ "mode" : "secondary", "maxStalenessSeconds" : 120 }

Siehe auch

  • MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON
  • » Read Preference reference


Create a new ReadPreference

  • « MongoDB\Driver\ReadPreference::bsonSerialize
  • MongoDB\Driver\ReadPreference::getHedge »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Create a new ReadPreference

MongoDB\Driver\ReadPreference::__construct

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::__construct — Create a new ReadPreference

Beschreibung

final public MongoDB\Driver\ReadPreference::__construct ( string|int $mode , array $tagSets = null , array $options = array() )

Constructs a new MongoDB\Driver\ReadPreference, which is an immutable value object.

Parameter-Liste

mode

Read preference mode
Value Description
MongoDB\Driver\ReadPreference::RP_PRIMARY or "primary"

All operations read from the current replica set primary. This is the default read preference for MongoDB.

MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED or "primaryPreferred"

In most situations, operations read from the primary but if it is unavailable, operations read from secondary members.

MongoDB\Driver\ReadPreference::RP_SECONDARY or "secondary"

All operations read from the secondary members of the replica set.

MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED or "secondaryPreferred"

In most situations, operations read from secondary members but if no secondary members are available, operations read from the primary.

MongoDB\Driver\ReadPreference::RP_NEAREST or "nearest"

Operations read from member of the replica set with the least network latency, irrespective of the member's type.

tagSets

Tag sets allow you to target read operations to specific members of a replica set. This parameter should be an array of associative arrays, each of which contain zero or more key/value pairs. When selecting a server for a read operation, the driver attempt to select a node having all tags in a set (i.e. the associative array of key/value pairs). If selection fails, the driver will attempt subsequent sets. An empty tag set (array()) will match any node and may be used as a fallback.

Tags are not compatible with the MongoDB\Driver\ReadPreference::RP_PRIMARY mode and, in general, only apply when selecting a secondary member of a set for a read operation. However, the MongoDB\Driver\ReadPreference::RP_NEAREST mode, when combined with a tag set, selects the matching member with the lowest network latency. This member may be a primary or secondary.

options

options
Option Type Description
hedge object|array

Specifies whether to use » hedged reads, which are supported by MongoDB 4.4+ for sharded queries.

Server hedged reads are available for all non-primary read preferences and are enabled by default when using the "nearest" mode. This option allows explicitly enabling server hedged reads for non-primary read preferences by specifying ['enabled' => true], or explicitly disabling server hedged reads for the "nearest" read preference by specifying ['enabled' => false].

maxStalenessSeconds int

Specifies a maximum replication lag, or "staleness", for reads from secondaries. When a secondary's estimated staleness exceeds this value, the driver stops using it for read operations.

If specified, the max staleness must be a signed 32-bit integer greater than or equal to MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS.

Defaults to MongoDB\Driver\ReadPreference::NO_MAX_STALENESS, which means that the driver will not consider a secondary's lag when choosing where to direct a read operation.

This option is not compatible with the MongoDB\Driver\ReadPreference::RP_PRIMARY mode. Specifying a max staleness also requires all MongoDB instances in the deployment to be using MongoDB 3.4+. An exception will be thrown at execution time if any MongoDB instances in the deployment are of an older server version.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if mode is invalid.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if tagSets is provided for a primary read preference or is malformed (i.e. not an array of zero or more documents).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "maxStalenessSeconds" option is provided for a primary read preference or is out of range.

Changelog

Version | Beschreibung
PECL mongodb 1.8.0 | Added the "hedge" option.
PECL mongodb 1.3.0 | The mode argument now accepts a string value, which is consistent with the "readPreference" URI option for MongoDB\Driver\Manager::__construct().
PECL mongodb 1.2.0 | Added a third options argument, which supports the "maxStalenessSeconds" option.

Beispiele

Beispiel #1 MongoDB\Driver\ReadPreference::__construct() example

<?php

/* Prefer a secondary node but fall back to a primary. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED));

/* Prefer a node in the New York data center with lowest latency. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_NEAREST, [['dc' => 'ny']]));

/* Require a secondary node whose replication lag is within two minutes of the primary */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, ['maxStalenessSeconds' => 120]));

/* Explicitly enable server hedged reads */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, ['hedge' => ['enabled' => true]]));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(MongoDB\Driver\ReadPreference)#1 (1) {
  ["mode"]=>
  string(18) "secondaryPreferred"
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(7) "nearest"
  ["tags"]=>
  array(1) {
    [0]=>
    object(stdClass)#2 (1) {
      ["dc"]=>
      string(2) "ny"
    }
  }
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["maxStalenessSeconds"]=>
  int(120)
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["hedge"]=>
  object(stdClass)#1 (1) {
    ["enabled"]=>
    bool(true)
  }
}

Siehe auch

  • » Read Preference reference


Returns the ReadPreference's "hedge" option

  • « MongoDB\Driver\ReadPreference::__construct
  • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "hedge" option

MongoDB\Driver\ReadPreference::getHedge

(mongodb >=1.8.0)

MongoDB\Driver\ReadPreference::getHedge — Returns the ReadPreference's "hedge" option

Beschreibung

final public MongoDB\Driver\ReadPreference::getHedge ( ) : object|null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the ReadPreference's "hedge" option.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • » Read Preference reference


Returns the ReadPreference's "maxStalenessSeconds" option

  • « MongoDB\Driver\ReadPreference::getHedge
  • MongoDB\Driver\ReadPreference::getMode »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "maxStalenessSeconds" option

MongoDB\Driver\ReadPreference::getMaxStalenessSeconds

(mongodb >=1.2.0)

MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Returns the ReadPreference's "maxStalenessSeconds" option

Beschreibung

final public MongoDB\Driver\ReadPreference::getMaxStalenessSeconds ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the ReadPreference's "maxStalenessSeconds" option. If no max staleness has been specified, MongoDB\Driver\ReadPreference::NO_MAX_STALENESS will be returned.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\ReadPreference::getMaxStalenessSeconds() example

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY);
var_dump($rp->getMaxStalenessSeconds());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, [
    'maxStalenessSeconds' => MongoDB\Driver\ReadPreference::NO_MAX_STALENESS,
]);
var_dump($rp->getMaxStalenessSeconds());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, [
    'maxStalenessSeconds' => MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS,
]);
var_dump($rp->getMaxStalenessSeconds());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, [
    'maxStalenessSeconds' => 1000,
]);
var_dump($rp->getMaxStalenessSeconds());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(-1)
int(-1)
int(90)
int(1000)

Siehe auch

  • » Read Preference reference


Returns the ReadPreference's "mode" option

  • « MongoDB\Driver\ReadPreference::getMaxStalenessSeconds
  • MongoDB\Driver\ReadPreference::getModeString »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "mode" option

MongoDB\Driver\ReadPreference::getMode

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option

Beschreibung

final public MongoDB\Driver\ReadPreference::getMode ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the ReadPreference's "mode" option.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\ReadPreference::getMode() example

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED);
var_dump($rp->getMode());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_NEAREST);
var_dump($rp->getMode());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)
int(5)
int(2)
int(6)
int(10)

Siehe auch

  • MongoDB\Driver\ReadPreference::getModeString() - Returns the ReadPreference's "mode" option as a string
  • » Read Preference reference


Returns the ReadPreference's "mode" option as a string

  • « MongoDB\Driver\ReadPreference::getMode
  • MongoDB\Driver\ReadPreference::getTagSets »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "mode" option as a string

MongoDB\Driver\ReadPreference::getModeString

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::getModeString — Returns the ReadPreference's "mode" option as a string

Beschreibung

final public MongoDB\Driver\ReadPreference::getModeString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the ReadPreference's "mode" option as a string.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\ReadPreference::getModeString() example

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::PRIMARY);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::SECONDARY);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::NEAREST);
var_dump($rp->getModeString());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(7) "primary"
string(16) "primaryPreferred"
string(9) "secondary"
string(18) "secondaryPreferred"
string(7) "nearest"

Siehe auch

  • MongoDB\Driver\ReadPreference::getMode() - Returns the ReadPreference's "mode" option
  • » Read Preference reference


Returns the ReadPreference's "tagSets" option

  • « MongoDB\Driver\ReadPreference::getModeString
  • MongoDB\Driver\ReadPreference::serialize »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "tagSets" option

MongoDB\Driver\ReadPreference::getTagSets

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option

Beschreibung

final public MongoDB\Driver\ReadPreference::getTagSets ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the ReadPreference's "tagSets" option.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\ReadPreference::getTagSets() example

<?php

$mode = MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED;

/* Null and an empty array both denote no tag set preference. */
$rp = new MongoDB\Driver\ReadPreference($mode, null);
var_dump($rp->getTagSets());

$rp = new MongoDB\Driver\ReadPreference($mode, []);
var_dump($rp->getTagSets());

/* Prefer a node in New York, but fall back to any available node. */
$rp = new MongoDB\Driver\ReadPreference($mode, [['dc' => 'ny']]);
var_dump($rp->getTagSets());

/* Prefer a node in the New York, followed by a node in San Francisco that is
   labeled for reporting usage, and finally fall back to any available node. */
$rp = new MongoDB\Driver\ReadPreference($mode, [
  ['dc' => 'ny'],
  ['dc' => 'sf', 'use' => 'reporting'],
  [],
]);
var_dump($rp->getTagSets());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(0) {
}
array(0) {
}
array(2) {
  [0]=>
  array(1) {
    ["dc"]=>
    string(2) "ny"
  }
  [1]=>
  array(0) {
  }
}
array(3) {
  [0]=>
  array(1) {
    ["dc"]=>
    string(2) "ny"
  }
  [1]=>
  array(2) {
    ["dc"]=>
    string(2) "sf"
    ["use"]=>
    string(9) "reporting"
  }
  [2]=>
  array(0) {
  }
}

Siehe auch

  • » Read Preference reference


Serialize a ReadPreference

  • « MongoDB\Driver\ReadPreference::getTagSets
  • MongoDB\Driver\ReadPreference::unserialize »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Serialize a ReadPreference

MongoDB\Driver\ReadPreference::serialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::serialize — Serialize a ReadPreference

Beschreibung

final public MongoDB\Driver\ReadPreference::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\Driver\ReadPreference.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\ReadPreference::unserialize() - Unserialize a ReadPreference
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Unserialize a ReadPreference

  • « MongoDB\Driver\ReadPreference::serialize
  • MongoDB\Driver\ReadConcern »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Unserialize a ReadPreference

MongoDB\Driver\ReadPreference::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::unserialize — Unserialize a ReadPreference

Beschreibung

final public MongoDB\Driver\ReadPreference::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\Driver\ReadPreference.

Rückgabewerte

Returns the unserialized MongoDB\Driver\ReadPreference.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Siehe auch

  • MongoDB\Driver\ReadPreference::serialize() - Serialize a ReadPreference
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\Driver\ReadConcern class

(mongodb >=1.1.0)

Einführung

MongoDB\Driver\ReadConcern controls the level of isolation for read operations for replica sets and replica set shards. This option requires MongoDB 3.2 or later.

Klassenbeschreibung

final MongoDB\Driver\ReadConcern implements MongoDB\BSON\Serializable , Serializable {
/* Constants */
const string AVAILABLE = "available" ;
const string LINEARIZABLE = "linearizable" ;
const string LOCAL = "local" ;
const string MAJORITY = "majority" ;
/* Methoden */
final public bsonSerialize ( ) : object
final public __construct ( string $level = ? )
final public getLevel ( ) : string|null
final public isDefault ( ) : bool
final public serialize ( ) : string
final public unserialize ( string $serialized ) : void
}

Vordefinierte Konstanten

MongoDB\Driver\ReadConcern::AVAILABLE

Default for reads against secondaries when afterClusterTimeand level are unspecified.

The query returns the instance's most recent data. Provides no guarantee that the data has been written to a majority of the replica set members (i.e. may be rolled back).

For unsharded collections (including collections in a standalone deployment or a replica set deployment), "local" and "available" read concerns behave identically.

For a sharded cluster, "available" read concern provides greater tolerance for partitions since it does not wait to ensure consistency guarantees. However, a query with "available" read concern may return orphan documents if the shard is undergoing chunk migrations since the "available" read concern, unlike "local" read concern, does not contact the shard's primary nor the config servers for updated metadata.

MongoDB\Driver\ReadConcern::LINEARIZABLE

The query returns data that reflects all successful writes issued with a write concern of "majority" and acknowledged prior to the start of the read operation. For replica sets that run with writeConcernMajorityJournalDefault set to true, linearizable read concern returns data that will never be rolled back.

With writeConcernMajorityJournalDefault set to false, MongoDB will not wait for w: "majority" writes to be durable before acknowledging the writes. As such, "majority" write operations could possibly roll back in the event of a loss of a replica set member.

You can specify linearizable read concern for read operations on the primary only.

Linearizable read concern guarantees only apply if read operations specify a query filter that uniquely identifies a single document.

Tipp

Always use maxTimeMS with linearizable read concern in case a majority of data bearing members are unavailable. maxTimeMS ensures that the operation does not block indefinitely and instead ensures that the operation returns an error if the read concern cannot be fulfilled.

Linearizable read concern requires MongoDB 3.4.

MongoDB\Driver\ReadConcern::LOCAL

Default for reads against primary if level is unspecified and for reads against secondaries if level is unspecified but afterClusterTime is specified.

The query returns the instance's most recent data. Provides no guarantee that the data has been written to a majority of the replica set members (i.e. may be rolled back).

MongoDB\Driver\ReadConcern::MAJORITY

The query returns the instance's most recent data acknowledged as having been written to a majority of members in the replica set.

To use read concern level of "majority", replica sets must use WiredTiger storage engine and election protocol version 1.

Changelog

Version | Beschreibung
PECL mongodb 1.7.0 | Implements Serializable.
PECL mongodb 1.4.0 | Added the MongoDB\Driver\ReadConcern::AVAILABLE constant.
PECL mongodb 1.2.0 | Added the MongoDB\Driver\ReadConcern::LINEARIZABLE constant. Implements MongoDB\BSON\Serializable.

Siehe auch

  • » Read Concern reference

Inhaltsverzeichnis

  • MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\ReadConcern::__construct — Create a new ReadConcern
  • MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option
  • MongoDB\Driver\ReadConcern::isDefault — Checks if this is the default read concern
  • MongoDB\Driver\ReadConcern::serialize — Serialize a ReadConcern
  • MongoDB\Driver\ReadConcern::unserialize — Unserialize a ReadConcern


Returns an object for BSON serialization

  • « MongoDB\Driver\ReadConcern
  • MongoDB\Driver\ReadConcern::__construct »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Returns an object for BSON serialization

MongoDB\Driver\ReadConcern::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization

Beschreibung

final public MongoDB\Driver\ReadConcern::bsonSerialize ( ) : object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an object for serializing the ReadConcern as BSON.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\ReadConcern::bsonSerialize() with empty read concern

<?php

$rc = new MongoDB\Driver\ReadConcern;
var_dump($rc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rc));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#2 (0) {
}

{ }

Beispiel #2 MongoDB\Driver\ReadConcern::bsonSerialize() with local read concern

<?php

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);
var_dump($rc->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rc));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#2 (1) {
  ["level"]=>
  string(5) "local"
}

{ "level" : "local" }

Siehe auch

  • MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON
  • » Read Concern reference


Create a new ReadConcern

  • « MongoDB\Driver\ReadConcern::bsonSerialize
  • MongoDB\Driver\ReadConcern::getLevel »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Create a new ReadConcern

MongoDB\Driver\ReadConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\ReadConcern::__construct — Create a new ReadConcern

Beschreibung

final public MongoDB\Driver\ReadConcern::__construct ( string $level = ? )

Constructs a new MongoDB\Driver\ReadConcern, which is an immutable value object.

Parameter-Liste

level

The » read concern level. You may use, but are not limited to, one of the class constants.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\ReadConcern::__construct() example

<?php

/* Unspecified read isolation level (uses the server's default behavior) */
$rc = new MongoDB\Driver\ReadConcern();

/* Request read isolation from a single replica set node */
$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);

/* Request read isolation from a majority of the replica set nodes */
$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);

?>

Siehe auch

  • » Read Concern reference


Returns the ReadConcern's "level" option

  • « MongoDB\Driver\ReadConcern::__construct
  • MongoDB\Driver\ReadConcern::isDefault »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Returns the ReadConcern's "level" option

MongoDB\Driver\ReadConcern::getLevel

(mongodb >=1.0.0)

MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option

Beschreibung

final public MongoDB\Driver\ReadConcern::getLevel ( ) : string|null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the ReadConcern's "level" option.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\ReadConcern::getLevel() example

<?php

$rc = new MongoDB\Driver\ReadConcern();
var_dump($rc->getLevel());

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);
var_dump($rc->getLevel());

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);
var_dump($rc->getLevel());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
string(5) "local"
string(8) "majority"

Siehe auch

  • » Read Concern reference


Checks if this is the default read concern

  • « MongoDB\Driver\ReadConcern::getLevel
  • MongoDB\Driver\ReadConcern::serialize »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Checks if this is the default read concern

MongoDB\Driver\ReadConcern::isDefault

(mongodb >=1.3.0)

MongoDB\Driver\ReadConcern::isDefault — Checks if this is the default read concern

Beschreibung

final public MongoDB\Driver\ReadConcern::isDefault ( ) : bool

Returns whether this is the default read concern (i.e. no options are specified). This method is primarily intended to be used in conjunction with MongoDB\Driver\Manager::getReadConcern() to determine whether the Manager has been constructed without any read concern options.

The driver will not include a default read concern in its read operations (e.g. MongoDB\Driver\Manager::executeQuery()) in order order to allow the server to apply its own default. Libraries that access the Manager's read concern to include it in their own read commands should use this method to ensure that default read concerns are left unset.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if this is the default read concern and false otherwise.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\ReadConcern::isDefault() example

<?php

$rc = new MongoDB\Driver\ReadConcern(null);
var_dump($rc->isDefault());

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);
var_dump($rc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/?readConcernLevel=majority');
$rc = $manager->getReadConcern();
var_dump($rc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/');
$rc = $manager->getReadConcern();
var_dump($rc->isDefault());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(false)
bool(true)

Siehe auch

  • MongoDB\Driver\Manager::getReadConcern() - Return the ReadConcern for the Manager
  • » Read Concern reference


Serialize a ReadConcern

  • « MongoDB\Driver\ReadConcern::isDefault
  • MongoDB\Driver\ReadConcern::unserialize »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Serialize a ReadConcern

MongoDB\Driver\ReadConcern::serialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadConcern::serialize — Serialize a ReadConcern

Beschreibung

final public MongoDB\Driver\ReadConcern::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\Driver\ReadConcern.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\ReadConcern::unserialize() - Unserialize a ReadConcern
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Unserialize a ReadConcern

  • « MongoDB\Driver\ReadConcern::serialize
  • MongoDB\Driver\Cursor »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Unserialize a ReadConcern

MongoDB\Driver\ReadConcern::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadConcern::unserialize — Unserialize a ReadConcern

Beschreibung

final public MongoDB\Driver\ReadConcern::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\Driver\ReadConcern.

Rückgabewerte

Returns the unserialized MongoDB\Driver\ReadConcern.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Siehe auch

  • MongoDB\Driver\ReadConcern::serialize() - Serialize a ReadConcern
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\Driver\Cursor class

(mongodb >=1.0.0)

Einführung

The MongoDB\Driver\Cursor class encapsulates the results of a MongoDB command or query and may be returned by MongoDB\Driver\Manager::executeCommand() or MongoDB\Driver\Manager::executeQuery(), respectively.

Klassenbeschreibung

final MongoDB\Driver\Cursor implements MongoDB\Driver\CursorInterface , Iterator {
/* Methoden */
final private __construct ( )
public current ( ) : array|object
final public getId ( ) : MongoDB\Driver\CursorId
final public getServer ( ) : MongoDB\Driver\Server
final public isDead ( ) : bool
public key ( ) : int
public next ( ) : void
public rewind ( ) : void
final public setTypeMap ( array $typemap ) : void
final public toArray ( ) : array
public valid ( ) : bool
}

Changelog

Version | Beschreibung
PECL mongodb 1.9.0 | Implements Iterator.
PECL mongodb 1.6.0 | Implements MongoDB\Driver\CursorInterface, which extends Traversable.

Beispiele

Beispiel #1 Reading a result set

MongoDB\Driver\Manager::executeCommand() and MongoDB\Driver\Manager::executeQuery() both return their result(s) as a MongoDB\Driver\Cursor object. This object can be used to iterate over the result set of the command or query.

Because MongoDB\Driver\Cursor implements the Traversable interface, you can simply iterate over the result set with foreach.

<?php

$manager = new MongoDB\Driver\Manager();

/* Insert some documents so that our query returns information */
$bulkWrite = new MongoDB\Driver\BulkWrite;
$bulkWrite->insert(['name' => 'Ceres', 'size' => 946, 'distance' => 2.766]);
$bulkWrite->insert(['name' => 'Vesta', 'size' => 525, 'distance' => 2.362]);
$manager->executeBulkWrite("test.asteroids", $bulkWrite);

/* Query for all the items in the collection */
$query = new MongoDB\Driver\Query( [] );

/* Query the "asteroids" collection of the "test" database */
$cursor = $manager->executeQuery("test.asteroids", $query);

/* $cursor now contains an object that wraps around the result set. Use
 * foreach() to iterate over all the result */
foreach($cursor as $document) {
    print_r($document);
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

stdClass Object
(
    [_id] => MongoDB\BSON\ObjectId Object
        (
            [oid] => 5a4cff2f122d3321565d8cc2
        )

    [name] => Ceres
    [size] => 946
    [distance] => 2.766
)
stdClass Object
(
    [_id] => MongoDB\BSON\ObjectId Object
        (
            [oid] => 5a4cff2f122d3321565d8cc3
        )

    [name] => Vesta
    [size] => 525
    [distance] => 2.362
}

Beispiel #2 Reading a result set for a tailable cursor

» Tailable cursors are a special type of MongoDB cursor that allows the client to read some results and then wait until more documents become available. These cursors are primarily used with » Capped Collections and » Change Streams.

While normal cursors can be iterated once with foreach, that approach will not work with tailable cursors. When foreach is used with a tailable cursor, the loop will stop upon reaching the end of the initial result set. Attempting to continue iteration on the cursor with a second foreach would throw an exception, since PHP attempts to rewind the cursor. Similar to result objects in other database drivers, cursors in MongoDB only support forward iteration, which means they cannot be rewound.

In order to continuously read from a tailable cursor, the Cursor object must be wrapped with an IteratorIterator. This allows the application to directly control the cursor's iteration, avoid inadvertently rewinding the cursor, and decide when to wait for new results or stop iteration entirely.

In order to demonstrate a tailable cursor in action, two scripts will be used: a "producer" and a "consumer". The producer script will create a new capped collection using the » create command and proceed to insert a new document into that collection each second.

<?php

$manager = new MongoDB\Driver\Manager;

$manager->executeCommand('test', new MongoDB\Driver\Command([
    'create' => 'asteroids',
    'capped' => true,
    'size' => 1048576,
]));

while (true) {
    $bulkWrite = new MongoDB\Driver\BulkWrite;
    $bulkWrite->insert(['createdAt' => new MongoDB\BSON\UTCDateTime]);
    $manager->executeBulkWrite('test.asteroids', $bulkWrite);

    sleep(1);
}

?>

With the producer script still running, a second consumer script may be executed to read the inserted documents using a tailable cursor, indicated by the tailable and awaitData options to MongoDB\Driver\Query::__construct().

<?php

$manager = new MongoDB\Driver\Manager;

$query = new MongoDB\Driver\Query([], [
    'tailable' => true,
    'awaitData' => true,
]);

$cursor = $manager->executeQuery('test.asteroids', $query);

$iterator = new IteratorIterator($cursor);

$iterator->rewind();

while (true) {
    if ($iterator->valid()) {
        $document = $iterator->current();
        printf("Consumed document created at: %s\n", $document->createdAt);
    }

    $iterator->next();
}

?>

The consumer script will start by quickly printing all available documents in the capped collection (as if foreach had been used); however, it will not terminate upon reaching the end of the initial result set. Since the cursor is tailable, calling IteratorIterator::next() will block and wait for additional results. IteratorIterator::valid() is also used to check if there is actually data available to read at each step.

Hinweis: This example uses the awaitData query option to instruct the server to block for a short period (e.g. one second) at the end of the result set before returning a response to the driver. This is used to prevent the driver from aggressively polling the server when there are no results available. The maxAwaitTimeMS option may be used in conjunction with tailable and awaitData to specify the amount of time that the server should block when it reaches the end of the result set.

Fehler/Exceptions

When iterating over the cursor object, BSON data is converted into PHP variables. This iteration can cause the following Exceptions:

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the input did not contain exactly one BSON document. Possible reasons include, but are not limited to, invalid BSON, extra data (after reading one BSON document), or an unexpected » libbson error.

Inhaltsverzeichnis

  • MongoDB\Driver\Cursor::__construct — Create a new Cursor (not used)
  • MongoDB\Driver\Cursor::current — Returns the current element
  • MongoDB\Driver\Cursor::getId — Returns the ID for this cursor
  • MongoDB\Driver\Cursor::getServer — Returns the server associated with this cursor
  • MongoDB\Driver\Cursor::isDead — Checks if the cursor is exhausted or may have additional results
  • MongoDB\Driver\Cursor::key — Returns the current result's index within the cursor
  • MongoDB\Driver\Cursor::next — Advances the cursor to the next result
  • MongoDB\Driver\Cursor::rewind — Rewind the cursor to the first result
  • MongoDB\Driver\Cursor::setTypeMap — Sets a type map to use for BSON unserialization
  • MongoDB\Driver\Cursor::toArray — Returns an array containing all results for this cursor
  • MongoDB\Driver\Cursor::valid — Checks if the current position in the cursor is valid


Create a new Cursor (not used)

  • « MongoDB\Driver\Cursor
  • MongoDB\Driver\Cursor::current »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Create a new Cursor (not used)

MongoDB\Driver\Cursor::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::__construct — Create a new Cursor (not used)

Beschreibung

final private MongoDB\Driver\Cursor::__construct ( )

MongoDB\Driver\Cursor objects are returned as the result of an executed command or query and cannot be constructed directly.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Siehe auch

  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeQuery() - Execute a database query
  • MongoDB\Driver\Server::executeCommand() - Execute a database command on this server
  • MongoDB\Driver\Server::executeQuery() - Execute a database query on this server


Returns the current element

  • « MongoDB\Driver\Cursor::__construct
  • MongoDB\Driver\Cursor::getId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns the current element

MongoDB\Driver\Cursor::current

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::current — Returns the current element

Beschreibung

public MongoDB\Driver\Cursor::current ( ) : array|object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current result document as an array or object, depending on the cursor's type map. If iteration has not started or the current position is not valid, null will be returned.

Siehe auch

  • Iterator::current() - Gibt das aktuelle Element zurück


Returns the ID for this cursor

  • « MongoDB\Driver\Cursor::current
  • MongoDB\Driver\Cursor::getServer »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns the ID for this cursor

MongoDB\Driver\Cursor::getId

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::getId — Returns the ID for this cursor

Beschreibung

final public MongoDB\Driver\Cursor::getId ( ) : MongoDB\Driver\CursorId

Returns the MongoDB\Driver\CursorId associated with this cursor. A cursor ID uniquely identifies the cursor on the server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the MongoDB\Driver\CursorId for this cursor.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\Cursor::getId() example

<?php

/* In this example, we insert several documents into the collection and specify
 * a smaller batchSize to ensure that the first batch contains only a subset of
 * our results and the cursor remains open on the server. */
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([], ['batchSize' => 2]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump($cursor->getId());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MongoDB\Driver\CursorId)#5 (1) {
  ["id"]=>
  int(94810124093)
}

Siehe auch

  • MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::__toString() - String representation of the cursor ID


Returns the server associated with this cursor

  • « MongoDB\Driver\Cursor::getId
  • MongoDB\Driver\Cursor::isDead »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns the server associated with this cursor

MongoDB\Driver\Cursor::getServer

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::getServer — Returns the server associated with this cursor

Beschreibung

final public MongoDB\Driver\Cursor::getServer ( ) : MongoDB\Driver\Server

Returns the MongoDB\Driver\Server associated with this cursor. This is the server that executed the MongoDB\Driver\Query or MongoDB\Driver\Command.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the MongoDB\Driver\Server associated with this cursor.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\Cursor::getServer() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump($cursor->getServer());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MongoDB\Driver\Server)#5 (10) {
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["type"]=>
  int(1)
  ["is_primary"]=>
  bool(false)
  ["is_secondary"]=>
  bool(false)
  ["is_arbiter"]=>
  bool(false)
  ["is_hidden"]=>
  bool(false)
  ["is_passive"]=>
  bool(false)
  ["last_is_master"]=>
  array(8) {
    ["ismaster"]=>
    bool(true)
    ["maxBsonObjectSize"]=>
    int(16777216)
    ["maxMessageSizeBytes"]=>
    int(48000000)
    ["maxWriteBatchSize"]=>
    int(1000)
    ["localTime"]=>
    object(MongoDB\BSON\UTCDateTime)#6 (1) {
      ["milliseconds"]=>
      int(1446505367907)
    }
    ["maxWireVersion"]=>
    int(3)
    ["minWireVersion"]=>
    int(0)
    ["ok"]=>
    float(1)
  }
  ["round_trip_time"]=>
  int(584)
}

Siehe auch

  • MongoDB\Driver\Server


Checks if the cursor is exhausted or may have additional results

  • « MongoDB\Driver\Cursor::getServer
  • MongoDB\Driver\Cursor::key »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Checks if the cursor is exhausted or may have additional results

MongoDB\Driver\Cursor::isDead

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::isDead — Checks if the cursor is exhausted or may have additional results

Beschreibung

final public MongoDB\Driver\Cursor::isDead ( ) : bool

Checks whether there are definitely no additional results available on the cursor. This method is similar to the » cursor.isExhausted() method in the MongoDB shell and is primarily useful when iterating » tailable cursors.

A cursor has no additional results and is considered "dead" when one of the following is true:

  • The current batch has been fully iterated and the cursor ID is zero (i.e. a » getMore cannot be issued).
  • An error was encountered while iterating the cursor.
  • The cursor reached its configured limit.

By design, it is not possible to always determine whether a cursor has additional results. The cases where a cursor may have more data available is as follows:

  • There are additional documents in the current batch, which are buffered on the client side. Iterating will fetch a document from the local buffer.
  • There are no additional documents in the current batch (i.e. local buffer), but the cursor ID is non-zero. Iterating will request more documents from the server via a » getMore operation, which may or may not return additional results and/or indicate that the cursor has been closed on the server by returning zero for its ID.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if there are definitely no additional results available on the cursor, and false otherwise.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\Cursor::isDead() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);

$iterator = new IteratorIterator($cursor);

$iterator->rewind();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(false)
bool(false)
bool(true)

Siehe auch

  • » Tailable Cursors in the MongoDB manual
  • » cursor.isExhausted() in the MongoDB manual


Returns the current result's index within the cursor

  • « MongoDB\Driver\Cursor::isDead
  • MongoDB\Driver\Cursor::next »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns the current result's index within the cursor

MongoDB\Driver\Cursor::key

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::key — Returns the current result's index within the cursor

Beschreibung

public MongoDB\Driver\Cursor::key ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current result's numeric index within the cursor.

Siehe auch

  • Iterator::key() - Gibt den Schlüssel des aktuellen Elements zurück


Advances the cursor to the next result

  • « MongoDB\Driver\Cursor::key
  • MongoDB\Driver\Cursor::rewind »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Advances the cursor to the next result

MongoDB\Driver\Cursor::next

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::next — Advances the cursor to the next result

Beschreibung

public MongoDB\Driver\Cursor::next ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Moves the current position to the next element in the cursor.

Fehler/Exceptions

  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons

Siehe auch

  • Iterator::next() - Rückt den Zeiger auf das nächste Element vor


Rewind the cursor to the first result

  • « MongoDB\Driver\Cursor::next
  • MongoDB\Driver\Cursor::setTypeMap »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Rewind the cursor to the first result

MongoDB\Driver\Cursor::rewind

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::rewind — Rewind the cursor to the first result

Beschreibung

public MongoDB\Driver\Cursor::rewind ( ) : void

If the cursor has advanced beyond its first position, it can no longer be rewound.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

null.

Fehler/Exceptions

  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\Exception\LogicException if this method is called after the cursor has advanced beyond its first position.

Siehe auch

  • Iterator::rewind() - Setzt den Iterator auf das erste Element zurück


Sets a type map to use for BSON unserialization

  • « MongoDB\Driver\Cursor::rewind
  • MongoDB\Driver\Cursor::toArray »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Sets a type map to use for BSON unserialization

MongoDB\Driver\Cursor::setTypeMap

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::setTypeMap — Sets a type map to use for BSON unserialization

Beschreibung

final public MongoDB\Driver\Cursor::setTypeMap ( array $typemap ) : void

Sets the type map configuration to use when unserializing the BSON results into PHP values.

Parameter-Liste

typeMap (array)

Type map configuration.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

When iterating over the cursor, the following exceptions can also be thrown due to an incorrect type map configuration:

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.

Beispiele

Beispiel #1 MongoDB\Driver\Cursor::setTypeMap() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$id = $bulk->insert(['x' => 1]);
$manager->executeBulkWrite('db.collection', $bulk);

$query = new MongoDB\Driver\Query(['_id' => $id]);
$cursor = $manager->executeQuery('db.collection', $query);
$cursor->setTypeMap(['root' => 'array']);

foreach ($cursor as $document) {
    var_dump($document);
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["_id"]=>
  object(MongoDB\BSON\ObjectId)#6 (1) {
    ["oid"]=>
    string(24) "56424fb76118fd3267180741"
  }
  ["x"]=>
  int(1)
}

Siehe auch

  • Persisting Data


Returns an array containing all results for this cursor

  • « MongoDB\Driver\Cursor::setTypeMap
  • MongoDB\Driver\Cursor::valid »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns an array containing all results for this cursor

MongoDB\Driver\Cursor::toArray

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::toArray — Returns an array containing all results for this cursor

Beschreibung

final public MongoDB\Driver\Cursor::toArray ( ) : array

Iterates the cursor and returns its results in an array. MongoDB\Driver\Cursor::setTypeMap() may be used to control how documents are unserialized into PHP values.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing all results for this cursor.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\Cursor::toArray() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$query = new MongoDB\Driver\Query([]);
$cursor = $manager->executeQuery('db.collection', $query);

var_dump($cursor->toArray());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  object(stdClass)#6 (2) {
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#5 (1) {
      ["oid"]=>
      string(24) "564259a96118fd40b41bcf61"
    }
    ["x"]=>
    int(1)
  }
  [1]=>
  object(stdClass)#8 (2) {
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#7 (1) {
      ["oid"]=>
      string(24) "564259a96118fd40b41bcf62"
    }
    ["x"]=>
    int(2)
  }
  [2]=>
  object(stdClass)#10 (2) {
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#9 (1) {
      ["oid"]=>
      string(24) "564259a96118fd40b41bcf63"
    }
    ["x"]=>
    int(3)
  }
}

Siehe auch

  • MongoDB\Driver\Cursor::setTypeMap() - Sets a type map to use for BSON unserialization


Checks if the current position in the cursor is valid

  • « MongoDB\Driver\Cursor::toArray
  • MongoDB\Driver\CursorId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Checks if the current position in the cursor is valid

MongoDB\Driver\Cursor::valid

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::valid — Checks if the current position in the cursor is valid

Beschreibung

public MongoDB\Driver\Cursor::valid ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the current cursor position is valid, false otherwise.

Siehe auch

  • Iterator::valid() - Prüft, ob die aktuelle Position zulässig ist


The MongoDB\Driver\CursorId class

(mongodb >=1.0.0)

Einführung

The MongoDB\Driver\CursorID class is a value object that represents a cursor ID. Instances of this class are returned by MongoDB\Driver\Cursor::getId().

Klassenbeschreibung

final MongoDB\Driver\CursorId implements Serializable {
/* Methoden */
final private __construct ( )
final public serialize ( ) : string
final public __toString ( ) : string
final public unserialize ( string $serialized ) : void
}

Changelog

Version | Beschreibung
PECL mongodb 1.7.0 | Implements Serializable.

Inhaltsverzeichnis

  • MongoDB\Driver\CursorId::__construct — Create a new CursorId (not used)
  • MongoDB\Driver\CursorId::serialize — Serialize a CursorId
  • MongoDB\Driver\CursorId::__toString — String representation of the cursor ID
  • MongoDB\Driver\CursorId::unserialize — Unserialize a CursorId


Create a new CursorId (not used)

  • « MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::serialize »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Create a new CursorId (not used)

MongoDB\Driver\CursorId::__construct

(mongodb >=1.0.0)

MongoDB\Driver\CursorId::__construct — Create a new CursorId (not used)

Beschreibung

final private MongoDB\Driver\CursorId::__construct ( )

MongoDB\Driver\CursorId objects are returned from MongoDB\Driver\Cursor::getId() and cannot be constructed directly.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Siehe auch

  • MongoDB\Driver\Cursor::getId() - Returns the ID for this cursor


Serialize a CursorId

  • « MongoDB\Driver\CursorId::__construct
  • MongoDB\Driver\CursorId::__toString »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Serialize a CursorId

MongoDB\Driver\CursorId::serialize

(mongodb >=1.7.0)

MongoDB\Driver\CursorId::serialize — Serialize a CursorId

Beschreibung

final public MongoDB\Driver\CursorId::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\Driver\CursorId.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\CursorId::unserialize() - Unserialize a CursorId
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


String representation of the cursor ID

  • « MongoDB\Driver\CursorId::serialize
  • MongoDB\Driver\CursorId::unserialize »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • String representation of the cursor ID

MongoDB\Driver\CursorId::__toString

(mongodb >=1.0.0)

MongoDB\Driver\CursorId::__toString — String representation of the cursor ID

Beschreibung

final public MongoDB\Driver\CursorId::__toString ( ) : string

Returns the string representation of the cursor ID.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of the cursor ID.

Beispiele

Beispiel #1 MongoDB\Driver\CursorId::__toString() example

<?php

/* In this example, we insert several documents into the collection and specify
 * a smaller batchSize to ensure that the first batch contains only a subset of
 * our results and the cursor remains open on the server. */
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([], ['batchSize' => 2]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump((string) $cursor->getId());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(11) "98061641158"

Siehe auch

  • MongoDB\Driver\Cursor::getId() - Returns the ID for this cursor


Unserialize a CursorId

  • « MongoDB\Driver\CursorId::__toString
  • MongoDB\Driver\CursorInterface »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Unserialize a CursorId

MongoDB\Driver\CursorId::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\CursorId::unserialize — Unserialize a CursorId

Beschreibung

final public MongoDB\Driver\CursorId::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\Driver\CursorId.

Rückgabewerte

Returns the unserialized MongoDB\Driver\CursorId.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Siehe auch

  • MongoDB\Driver\CursorId::serialize() - Serialize a CursorId
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\Driver\CursorInterface interface

(mongodb >=1.6.0)

Einführung

This interface is implemented by MongoDB\Driver\Cursor but may also be used for type-hinting and userland classes.

Klassenbeschreibung

MongoDB\Driver\CursorInterface implements Traversable {
/* Methoden */
abstract public getId ( ) : MongoDB\Driver\CursorId
abstract public getServer ( ) : MongoDB\Driver\Server
abstract public isDead ( ) : bool
abstract public setTypeMap ( array $typemap ) : void
abstract public toArray ( ) : array
}

Inhaltsverzeichnis

  • MongoDB\Driver\CursorInterface::getId — Returns the ID for this cursor
  • MongoDB\Driver\CursorInterface::getServer — Returns the server associated with this cursor
  • MongoDB\Driver\CursorInterface::isDead — Checks if the cursor may have additional results
  • MongoDB\Driver\CursorInterface::setTypeMap — Sets a type map to use for BSON unserialization
  • MongoDB\Driver\CursorInterface::toArray — Returns an array containing all results for this cursor


Returns the ID for this cursor

  • « MongoDB\Driver\CursorInterface
  • MongoDB\Driver\CursorInterface::getServer »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Returns the ID for this cursor

MongoDB\Driver\CursorInterface::getId

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::getId — Returns the ID for this cursor

Beschreibung

abstract public MongoDB\Driver\CursorInterface::getId ( ) : MongoDB\Driver\CursorId

Returns the MongoDB\Driver\CursorId associated with this cursor. A cursor ID uniquely identifies the cursor on the server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the MongoDB\Driver\CursorId for this cursor.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Cursor::getId() - Returns the ID for this cursor
  • MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::__toString() - String representation of the cursor ID


Returns the server associated with this cursor

  • « MongoDB\Driver\CursorInterface::getId
  • MongoDB\Driver\CursorInterface::isDead »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Returns the server associated with this cursor

MongoDB\Driver\CursorInterface::getServer

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::getServer — Returns the server associated with this cursor

Beschreibung

abstract public MongoDB\Driver\CursorInterface::getServer ( ) : MongoDB\Driver\Server

Returns the MongoDB\Driver\Server associated with this cursor. This is the server that executed the MongoDB\Driver\Query or MongoDB\Driver\Command.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the MongoDB\Driver\Server associated with this cursor.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Cursor::getServer() - Returns the server associated with this cursor
  • MongoDB\Driver\Server


Checks if the cursor may have additional results

  • « MongoDB\Driver\CursorInterface::getServer
  • MongoDB\Driver\CursorInterface::setTypeMap »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Checks if the cursor may have additional results

MongoDB\Driver\CursorInterface::isDead

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::isDead — Checks if the cursor may have additional results

Beschreibung

abstract public MongoDB\Driver\CursorInterface::isDead ( ) : bool

Checks whether the cursor may have additional results available to read. A cursor is initially "alive" but may become "dead" for any of the following reasons:

  • Advancing a non-tailable cursor did not return a document
  • The cursor encountered an error
  • The cursor read its last batch to completion
  • The cursor reached its configured limit
This is primarily useful with tailable cursors.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if additional results are not available, and false otherwise.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Cursor::isDead() - Checks if the cursor is exhausted or may have additional results


Sets a type map to use for BSON unserialization

  • « MongoDB\Driver\CursorInterface::isDead
  • MongoDB\Driver\CursorInterface::toArray »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Sets a type map to use for BSON unserialization

MongoDB\Driver\CursorInterface::setTypeMap

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::setTypeMap — Sets a type map to use for BSON unserialization

Beschreibung

abstract public MongoDB\Driver\CursorInterface::setTypeMap ( array $typemap ) : void

Sets the type map configuration to use when unserializing the BSON results into PHP values.

Parameter-Liste

typeMap (array)

Type map configuration.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Cursor::setTypeMap() - Sets a type map to use for BSON unserialization
  • Persisting Data


Returns an array containing all results for this cursor

  • « MongoDB\Driver\CursorInterface::setTypeMap
  • MongoDB\Driver\Server »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Returns an array containing all results for this cursor

MongoDB\Driver\CursorInterface::toArray

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::toArray — Returns an array containing all results for this cursor

Beschreibung

abstract public MongoDB\Driver\CursorInterface::toArray ( ) : array

Iterates the cursor and returns its results in an array. MongoDB\Driver\CursorInterface::setTypeMap() may be used to control how documents are unserialized into PHP values.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing all results for this cursor.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Cursor::toArray() - Returns an array containing all results for this cursor
  • MongoDB\Driver\CursorInterface::setTypeMap() - Sets a type map to use for BSON unserialization


The MongoDB\Driver\Server class

(mongodb >=1.0.0)

Einführung

Klassenbeschreibung

final MongoDB\Driver\Server {
/* Constants */
const int TYPE_UNKNOWN = 0 ;
const int TYPE_STANDALONE = 1 ;
const int TYPE_MONGOS = 2 ;
const int TYPE_POSSIBLE_PRIMARY = 3 ;
const int TYPE_RS_PRIMARY = 4 ;
const int TYPE_RS_SECONDARY = 5 ;
const int TYPE_RS_ARBITER = 6 ;
const int TYPE_RS_OTHER = 7 ;
const int TYPE_RS_GHOST = 8 ;
/* Methoden */
final private __construct ( )
final public executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk , array $options = array() ) : MongoDB\Driver\WriteResult
final public executeCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor
final public executeQuery ( string $namespace , MongoDB\Driver\Query $query , array $options = array() ) : MongoDB\Driver\Cursor
final public executeReadCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor
final public executeReadWriteCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor
final public executeWriteCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor
final public getHost ( ) : string
final public getInfo ( ) : array
final public getLatency ( ) : string
final public getPort ( ) : int
final public getTags ( ) : array
final public getType ( ) : int
final public isArbiter ( ) : bool
final public isHidden ( ) : bool
final public isPassive ( ) : bool
final public isPrimary ( ) : bool
final public isSecondary ( ) : bool
}

Vordefinierte Konstanten

MongoDB\Driver\Server::TYPE_UNKNOWN

Unknown server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_STANDALONE

Standalone server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_MONGOS

Mongos server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_POSSIBLE_PRIMARY

Replica set possible primary server type, returned by MongoDB\Driver\Server::getType().

A server may be identified as a possible primary if it has not yet been checked but another memory of the replica set thinks it is the primary.

MongoDB\Driver\Server::TYPE_RS_PRIMARY

Replica set primary server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_SECONDARY

Replica set secondary server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_ARBITER

Replica set arbiter server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_OTHER

Replica set other server type, returned by MongoDB\Driver\Server::getType().

Such servers may be hidden, starting up, or recovering. They cannot be queried, but their hosts lists are useful for discovering the current replica set configuration.

MongoDB\Driver\Server::TYPE_RS_GHOST

Replica set ghost server type, returned by MongoDB\Driver\Server::getType().

Servers may be identified as such in at least three situations: briefly during server startup; in an uninitialized replica set; or when the server is shunned (i.e. removed from the replica set config). They cannot be queried, nor can their host list be used to discover the current replica set configuration; however, the client may monitor this server in hope that it transitions to a more useful state.

Inhaltsverzeichnis

  • MongoDB\Driver\Server::__construct — Create a new Server (not used)
  • MongoDB\Driver\Server::executeBulkWrite — Execute one or more write operations on this server
  • MongoDB\Driver\Server::executeCommand — Execute a database command on this server
  • MongoDB\Driver\Server::executeQuery — Execute a database query on this server
  • MongoDB\Driver\Server::executeReadCommand — Execute a database command that reads on this server
  • MongoDB\Driver\Server::executeReadWriteCommand — Execute a database command that reads and writes on this server
  • MongoDB\Driver\Server::executeWriteCommand — Execute a database command that writes on this server
  • MongoDB\Driver\Server::getHost — Returns the hostname of this server
  • MongoDB\Driver\Server::getInfo — Returns an array of information about this server
  • MongoDB\Driver\Server::getLatency — Returns the latency of this server
  • MongoDB\Driver\Server::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Server::getTags — Returns an array of tags describing this server in a replica set
  • MongoDB\Driver\Server::getType — Returns an integer denoting the type of this server
  • MongoDB\Driver\Server::isArbiter — Checks if this server is an arbiter member of a replica set
  • MongoDB\Driver\Server::isHidden — Checks if this server is a hidden member of a replica set
  • MongoDB\Driver\Server::isPassive — Checks if this server is a passive member of a replica set
  • MongoDB\Driver\Server::isPrimary — Checks if this server is a primary member of a replica set
  • MongoDB\Driver\Server::isSecondary — Checks if this server is a secondary member of a replica set


Create a new Server (not used)

  • « MongoDB\Driver\Server
  • MongoDB\Driver\Server::executeBulkWrite »
  • PHP Manual
  • MongoDB\Driver\Server
  • Create a new Server (not used)

MongoDB\Driver\Server::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Server::__construct — Create a new Server (not used)

Beschreibung

final private MongoDB\Driver\Server::__construct ( )

MongoDB\Driver\Server objects are created internally by MongoDB\Driver\Manager when a database connection is established and may be returned by MongoDB\Driver\Manager::getServers() and MongoDB\Driver\Manager::selectServer().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Siehe auch

  • MongoDB\Driver\Manager::getServers() - Return the servers to which this manager is connected
  • MongoDB\Driver\Manager::selectServer() - Select a server matching a read preference


Execute one or more write operations on this server

  • « MongoDB\Driver\Server::__construct
  • MongoDB\Driver\Server::executeCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute one or more write operations on this server

MongoDB\Driver\Server::executeBulkWrite

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeBulkWrite — Execute one or more write operations on this server

Beschreibung

final public MongoDB\Driver\Server::executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk , array $options = array() ) : MongoDB\Driver\WriteResult

Executes one or more write operations on this server.

A MongoDB\Driver\BulkWrite can be constructed with one or more write operations of varying types (e.g. updates, deletes, and inserts). The driver will attempt to send operations of the same type to the server in as few requests as possible to optimize round trips.

Parameter-Liste

namespace

A fully qualified namespace (databaseName.collectionName)

bulk (MongoDB\Driver\BulkWrite)

The write(s) to execute.

options

options
Option Type Description
session MongoDB\Driver\Session

A session to associate with the operation.

writeConcern MongoDB\Driver\WriteConcern

A write concern to apply to the operation.

Rückgabewerte

Returns MongoDB\Driver\WriteResult on success.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if bulk does not contain any write operations.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if bulk has already been executed. MongoDB\Driver\BulkWrite objects may not be executed multiple times.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used in combination with an unacknowledged write concern.
  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\BulkWriteException on any write failure (WriteError and WriteConcern failures)
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.

Changelog

Version | Beschreibung
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\WriteConcern object.
PECL mongodb 1.3.0 | MongoDB\Driver\Exception\InvalidArgumentException is now thrown if bulk does not contain any write operations. Previously, a MongoDB\Driver\Exception\BulkWriteException was thrown.

Anmerkungen

Hinweis: It is the caller's responsibility to ensure that the server is capable of executing the write operation. For example, executing a write operation on a secondary (excluding its "local" database) will fail.

Siehe auch

  • MongoDB\Driver\BulkWrite
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations


Execute a database command on this server

  • « MongoDB\Driver\Server::executeBulkWrite
  • MongoDB\Driver\Server::executeQuery »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database command on this server

MongoDB\Driver\Server::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeCommand — Execute a database command on this server

Beschreibung

final public MongoDB\Driver\Server::executeCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor

Executes the command on this server.

This method applies no special logic to the command. Although this method accepts "readConcern" and "writeConcern" options, which will be incorporated into the command document, those options will not default to corresponding values from the MongoDB Connection URI nor will the MongoDB server version be taken into account. Users are therefore encouraged to use specific read and/or write command methods if possible.

Hinweis: The "readPreference" option does not control the server to which the driver issues the operation; it will always be executed on this server object. Instead, it may be used when issuing the operation to a secondary (from a replica set connection, not standalone) or mongos node to ensure that the driver sets the wire protocol accordingly or adds the read preference to the operation, respectively.

Parameter-Liste

db (string)

The name of the database on which to execute the command.

command (MongoDB\Driver\Command)

The command to execute.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

A read concern to apply to the operation.

This option is available in MongoDB 3.2+ and will result in an exception at execution time if specified for an older server version.

readPreference MongoDB\Driver\ReadPreference

A read preference to use for selecting a server for the operation.

session MongoDB\Driver\Session

A session to associate with the operation.

writeConcern MongoDB\Driver\WriteConcern

A write concern to apply to the operation.

Warnung

If you are using a "session" which has a transaction in progress, you cannot specify a "readConcern" or "writeConcern" option. This will result in an MongoDB\Driver\Exception\InvalidArgumentException being thrown. Instead, you should set these two options when you create the transaction with MongoDB\Driver\Session::startTransaction().

Rückgabewerte

Returns MongoDB\Driver\Cursor on success.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used in combination with an unacknowledged write concern.
  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).

Changelog

Version | Beschreibung
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\ReadPreference object.

Anmerkungen

Hinweis: It is the caller's responsibility to ensure that the server is capable of executing the write operation. For example, executing a write operation on a secondary (excluding its "local" database) will fail.

Siehe auch

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeReadCommand() - Execute a database command that reads on this server
  • MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server
  • MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command


Execute a database query on this server

  • « MongoDB\Driver\Server::executeCommand
  • MongoDB\Driver\Server::executeReadCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database query on this server

MongoDB\Driver\Server::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeQuery — Execute a database query on this server

Beschreibung

final public MongoDB\Driver\Server::executeQuery ( string $namespace , MongoDB\Driver\Query $query , array $options = array() ) : MongoDB\Driver\Cursor

Executes the query on this server.

Hinweis: The "readPreference" option does not control the server to which the driver issues the operation; it will always be executed on this server object. Instead, it may be used when issuing the operation to a secondary (from a replica set connection, not standalone) or mongos node to ensure that the driver sets the wire protocol accordingly or adds the read preference to the operation, respectively.

Parameter-Liste

namespace

A fully qualified namespace (databaseName.collectionName)

query (MongoDB\Driver\Query)

The query to execute.

options

options
Option Type Description
readPreference MongoDB\Driver\ReadPreference

A read preference to use for selecting a server for the operation.

session MongoDB\Driver\Session

A session to associate with the operation.

Rückgabewerte

Returns MongoDB\Driver\Cursor on success.

Fehler/Exceptions

  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid query operators).

Changelog

Version | Beschreibung
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\ReadPreference object.

Siehe auch

  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Query
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Manager::executeQuery() - Execute a database query


Execute a database command that reads on this server

  • « MongoDB\Driver\Server::executeQuery
  • MongoDB\Driver\Server::executeReadWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database command that reads on this server

MongoDB\Driver\Server::executeReadCommand

(mongodb >=1.4.0)

MongoDB\Driver\Server::executeReadCommand — Execute a database command that reads on this server

Beschreibung

final public MongoDB\Driver\Server::executeReadCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor

Executes the command on this server.

This method will apply logic that is specific to commands that read (e.g. » count) and take the MongoDB server version into account. The "readConcern" option will default to the corresponding value from the MongoDB Connection URI.

Hinweis: The "readPreference" option does not control the server to which the driver issues the operation; it will always be executed on this server object. Instead, it may be used when issuing the operation to a secondary (from a replica set connection, not standalone) or mongos node to ensure that the driver sets the wire protocol accordingly or adds the read preference to the operation, respectively.

Parameter-Liste

db (string)

The name of the database on which to execute the command.

command (MongoDB\Driver\Command)

The command to execute.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

A read concern to apply to the operation.

This option is available in MongoDB 3.2+ and will result in an exception at execution time if specified for an older server version.

readPreference MongoDB\Driver\ReadPreference

A read preference to use for selecting a server for the operation.

session MongoDB\Driver\Session

A session to associate with the operation.

Warnung

If you are using a "session" which has a transaction in progress, you cannot specify a "readConcern" or "writeConcern" option. This will result in an MongoDB\Driver\Exception\InvalidArgumentException being thrown. Instead, you should set these two options when you create the transaction with MongoDB\Driver\Session::startTransaction().

Rückgabewerte

Returns MongoDB\Driver\Cursor on success.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command).

Siehe auch

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeCommand() - Execute a database command on this server
  • MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server
  • MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server
  • MongoDB\Driver\Manager::executeReadCommand() - Execute a database command that reads


Execute a database command that reads and writes on this server

  • « MongoDB\Driver\Server::executeReadCommand
  • MongoDB\Driver\Server::executeWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database command that reads and writes on this server

MongoDB\Driver\Server::executeReadWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Server::executeReadWriteCommand — Execute a database command that reads and writes on this server

Beschreibung

final public MongoDB\Driver\Server::executeReadWriteCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor

Executes the command on this server.

This method will apply logic that is specific to commands that read and write (e.g. » aggregate) and take the MongoDB server version into account. The "readConcern" and "writeConcern" options will default to the corresponding values from the MongoDB Connection URI.

Parameter-Liste

db (string)

The name of the database on which to execute the command.

command (MongoDB\Driver\Command)

The command to execute.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

A read concern to apply to the operation.

This option is available in MongoDB 3.2+ and will result in an exception at execution time if specified for an older server version.

session MongoDB\Driver\Session

A session to associate with the operation.

writeConcern MongoDB\Driver\WriteConcern

A write concern to apply to the operation.

Warnung

If you are using a "session" which has a transaction in progress, you cannot specify a "readConcern" or "writeConcern" option. This will result in an MongoDB\Driver\Exception\InvalidArgumentException being thrown. Instead, you should set these two options when you create the transaction with MongoDB\Driver\Session::startTransaction().

Rückgabewerte

Returns MongoDB\Driver\Cursor on success.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used in combination with an unacknowledged write concern.
  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command).

Changelog

Version | Beschreibung
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.

Anmerkungen

Hinweis: It is the caller's responsibility to ensure that the server is capable of executing the write operation. For example, executing a write operation on a secondary (excluding its "local" database) will fail.

Siehe auch

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeCommand() - Execute a database command on this server
  • MongoDB\Driver\Server::executeReadCommand() - Execute a database command that reads on this server
  • MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Execute a database command that reads and writes


Execute a database command that writes on this server

  • « MongoDB\Driver\Server::executeReadWriteCommand
  • MongoDB\Driver\Server::getHost »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database command that writes on this server

MongoDB\Driver\Server::executeWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Server::executeWriteCommand — Execute a database command that writes on this server

Beschreibung

final public MongoDB\Driver\Server::executeWriteCommand ( string $db , MongoDB\Driver\Command $command , array $options = array() ) : MongoDB\Driver\Cursor

Executes the command on this server.

This method will apply logic that is specific to commands that write (e.g. » drop) and take the MongoDB server version into account. The "writeConcern" option will default to the corresponding value from the MongoDB Connection URI.

Hinweis: This method is not intended to be used to execute » insert, » update, or » delete commands. Users are encouraged to use MongoDB\Driver\Server::executeBulkWrite() for those commands.

Parameter-Liste

db (string)

The name of the database on which to execute the command.

command (MongoDB\Driver\Command)

The command to execute.

options

options
Option Type Description
session MongoDB\Driver\Session

A session to associate with the operation.

writeConcern MongoDB\Driver\WriteConcern

A write concern to apply to the operation.

Warnung

If you are using a "session" which has a transaction in progress, you cannot specify a "readConcern" or "writeConcern" option. This will result in an MongoDB\Driver\Exception\InvalidArgumentException being thrown. Instead, you should set these two options when you create the transaction with MongoDB\Driver\Session::startTransaction().

Rückgabewerte

Returns MongoDB\Driver\Cursor on success.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used in combination with an unacknowledged write concern.
  • Throws MongoDB\Driver\AuthenticationException if authentication is needed and fails
  • Throws MongoDB\Driver\ConnectionException if connection to the server fails for other then authentication reasons
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command).

Changelog

Version | Beschreibung
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.

Anmerkungen

Hinweis: It is the caller's responsibility to ensure that the server is capable of executing the write operation. For example, executing a write operation on a secondary (excluding its "local" database) will fail.

Siehe auch

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeCommand() - Execute a database command on this server
  • MongoDB\Driver\Server::executeReadCommand() - Execute a database command that reads on this server
  • MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server
  • MongoDB\Driver\Manager::executeWriteCommand() - Execute a database command that writes


Returns the hostname of this server

  • « MongoDB\Driver\Server::executeWriteCommand
  • MongoDB\Driver\Server::getInfo »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns the hostname of this server

MongoDB\Driver\Server::getHost

(mongodb >=1.0.0)

MongoDB\Driver\Server::getHost — Returns the hostname of this server

Beschreibung

final public MongoDB\Driver\Server::getHost ( ) : string

Returns the hostname of this server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the hostname of this server.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\Server::getHost() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getHost());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(9) "localhost"

Siehe auch

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Returns an array of information about this server

  • « MongoDB\Driver\Server::getHost
  • MongoDB\Driver\Server::getLatency »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns an array of information about this server

MongoDB\Driver\Server::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\Server::getInfo — Returns an array of information about this server

Beschreibung

final public MongoDB\Driver\Server::getInfo ( ) : array

Returns an array of information about this server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array of information about this server.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\Server::getInfo() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getInfo());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(8) {
  ["ismaster"]=>
  bool(true)
  ["maxBsonObjectSize"]=>
  int(16777216)
  ["maxMessageSizeBytes"]=>
  int(48000000)
  ["maxWriteBatchSize"]=>
  int(1000)
  ["localTime"]=>
  object(MongoDB\BSON\UTCDateTime)#4 (1) {
    ["milliseconds"]=>
    int(1447276242774)
  }
  ["maxWireVersion"]=>
  int(3)
  ["minWireVersion"]=>
  int(0)
  ["ok"]=>
  float(1)
}


Returns the latency of this server

  • « MongoDB\Driver\Server::getInfo
  • MongoDB\Driver\Server::getPort »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns the latency of this server

MongoDB\Driver\Server::getLatency

(mongodb >=1.0.0)

MongoDB\Driver\Server::getLatency — Returns the latency of this server

Beschreibung

final public MongoDB\Driver\Server::getLatency ( ) : string

Returns the latency of this server (i.e. the client's measured » round trip time of an ismaster command).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the latency of this server.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\Server::getLatency() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getLatency());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(592)

Siehe auch

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server
  • » Server Discovery and Monitoring Specification


Returns the port on which this server is listening

  • « MongoDB\Driver\Server::getLatency
  • MongoDB\Driver\Server::getTags »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns the port on which this server is listening

MongoDB\Driver\Server::getPort

(mongodb >=1.0.0)

MongoDB\Driver\Server::getPort — Returns the port on which this server is listening

Beschreibung

final public MongoDB\Driver\Server::getPort ( ) : int

Returns the port on which this server is listening.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the port on which this server is listening.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\Server::getPort() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getPort());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(27017)

Siehe auch

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Returns an array of tags describing this server in a replica set

  • « MongoDB\Driver\Server::getPort
  • MongoDB\Driver\Server::getType »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns an array of tags describing this server in a replica set

MongoDB\Driver\Server::getTags

(mongodb >=1.0.0)

MongoDB\Driver\Server::getTags — Returns an array of tags describing this server in a replica set

Beschreibung

final public MongoDB\Driver\Server::getTags ( ) : array

Returns an array of » tags used to describe this server in a replica set. The array will contain zero or more string key and value pairs.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array of tags used to describe this server in a replica set.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Returns an integer denoting the type of this server

  • « MongoDB\Driver\Server::getTags
  • MongoDB\Driver\Server::isArbiter »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns an integer denoting the type of this server

MongoDB\Driver\Server::getType

(mongodb >=1.0.0)

MongoDB\Driver\Server::getType — Returns an integer denoting the type of this server

Beschreibung

final public MongoDB\Driver\Server::getType ( ) : int

Returns an int denoting the type of this server. The value will correlate with a MongoDB\Driver\Server constant.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an int denoting the type of this server.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Checks if this server is an arbiter member of a replica set

  • « MongoDB\Driver\Server::getType
  • MongoDB\Driver\Server::isHidden »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is an arbiter member of a replica set

MongoDB\Driver\Server::isArbiter

(mongodb >=1.0.0)

MongoDB\Driver\Server::isArbiter — Checks if this server is an arbiter member of a replica set

Beschreibung

final public MongoDB\Driver\Server::isArbiter ( ) : bool

Returns whether this server is an » arbiter member of a replica set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if this server is an arbiter member of a replica set, and false otherwise.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Checks if this server is a hidden member of a replica set

  • « MongoDB\Driver\Server::isArbiter
  • MongoDB\Driver\Server::isPassive »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a hidden member of a replica set

MongoDB\Driver\Server::isHidden

(mongodb >=1.0.0)

MongoDB\Driver\Server::isHidden — Checks if this server is a hidden member of a replica set

Beschreibung

final public MongoDB\Driver\Server::isHidden ( ) : bool

Returns whether this server is a » hidden member of a replica set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if this server is a hidden member of a replica set, and false otherwise.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Checks if this server is a passive member of a replica set

  • « MongoDB\Driver\Server::isHidden
  • MongoDB\Driver\Server::isPrimary »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a passive member of a replica set

MongoDB\Driver\Server::isPassive

(mongodb >=1.0.0)

MongoDB\Driver\Server::isPassive — Checks if this server is a passive member of a replica set

Beschreibung

final public MongoDB\Driver\Server::isPassive ( ) : bool

Returns whether this server is a » passive member of a replica set (i.e. its priority is 0).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if this server is a passive member of a replica set, and false otherwise.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Checks if this server is a primary member of a replica set

  • « MongoDB\Driver\Server::isPassive
  • MongoDB\Driver\Server::isSecondary »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a primary member of a replica set

MongoDB\Driver\Server::isPrimary

(mongodb >=1.0.0)

MongoDB\Driver\Server::isPrimary — Checks if this server is a primary member of a replica set

Beschreibung

final public MongoDB\Driver\Server::isPrimary ( ) : bool

Returns whether this server is a » primary member of a replica set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if this server is a primary member of a replica set, and false otherwise.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Checks if this server is a secondary member of a replica set

  • « MongoDB\Driver\Server::isPrimary
  • MongoDB\Driver\WriteConcernError »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a secondary member of a replica set

MongoDB\Driver\Server::isSecondary

(mongodb >=1.0.0)

MongoDB\Driver\Server::isSecondary — Checks if this server is a secondary member of a replica set

Beschreibung

final public MongoDB\Driver\Server::isSecondary ( ) : bool

Returns whether this server is a » secondary member of a replica set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if this server is a secondary member of a replica set, and false otherwise.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


The MongoDB\Driver\WriteConcernError class

(mongodb >=1.0.0)

Einführung

The MongoDB\Driver\WriteConcernError class encapsulates information about a write concern error and may be returned by MongoDB\Driver\WriteResult::getWriteConcernError().

Klassenbeschreibung

final MongoDB\Driver\WriteConcernError {
/* Methoden */
final public getCode ( ) : int
final public getInfo ( ) : object|null
final public getMessage ( ) : string
}

Inhaltsverzeichnis

  • MongoDB\Driver\WriteConcernError::getCode — Returns the WriteConcernError's error code
  • MongoDB\Driver\WriteConcernError::getInfo — Returns metadata document for the WriteConcernError
  • MongoDB\Driver\WriteConcernError::getMessage — Returns the WriteConcernError's error message


Returns the WriteConcernError's error code

  • « MongoDB\Driver\WriteConcernError
  • MongoDB\Driver\WriteConcernError::getInfo »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Returns the WriteConcernError's error code

MongoDB\Driver\WriteConcernError::getCode

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getCode — Returns the WriteConcernError's error code

Beschreibung

final public MongoDB\Driver\WriteConcernError::getCode ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the WriteConcernError's error code.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteConcernError::getCode() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
    $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteConcernError()->getCode());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(64)

Siehe auch

  • » Write Concern reference


Returns metadata document for the WriteConcernError

  • « MongoDB\Driver\WriteConcernError::getCode
  • MongoDB\Driver\WriteConcernError::getMessage »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Returns metadata document for the WriteConcernError

MongoDB\Driver\WriteConcernError::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getInfo — Returns metadata document for the WriteConcernError

Beschreibung

final public MongoDB\Driver\WriteConcernError::getInfo ( ) : object|null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the metadata document for the WriteConcernError, or null if no metadata is available.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteConcernError::getInfo() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
    $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteConcernError()->getInfo());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#1 (1) {
  ["wtimeout"]=>
  bool(true)
}

Siehe auch

  • » Write Concern reference


Returns the WriteConcernError's error message

  • « MongoDB\Driver\WriteConcernError::getInfo
  • MongoDB\Driver\WriteError »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Returns the WriteConcernError's error message

MongoDB\Driver\WriteConcernError::getMessage

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getMessage — Returns the WriteConcernError's error message

Beschreibung

final public MongoDB\Driver\WriteConcernError::getMessage ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the WriteConcernError's error message.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteConcernError::getMessage() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
    $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteConcernError()->getMessage());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(33) "waiting for replication timed out"

Siehe auch

  • » Write Concern reference


The MongoDB\Driver\WriteError class

(mongodb >=1.0.0)

Einführung

The MongoDB\Driver\WriteError class encapsulates information about a write error and may be returned as an array element from MongoDB\Driver\WriteResult::getWriteErrors().

Klassenbeschreibung

final MongoDB\Driver\WriteError {
/* Methoden */
final public getCode ( ) : int
final public getIndex ( ) : int
final public getInfo ( ) : object|null
final public getMessage ( ) : string
}

Inhaltsverzeichnis

  • MongoDB\Driver\WriteError::getCode — Returns the WriteError's error code
  • MongoDB\Driver\WriteError::getIndex — Returns the index of the write operation corresponding to this WriteError
  • MongoDB\Driver\WriteError::getInfo — Returns metadata document for the WriteError
  • MongoDB\Driver\WriteError::getMessage — Returns the WriteError's error message


Returns the WriteError's error code

  • « MongoDB\Driver\WriteError
  • MongoDB\Driver\WriteError::getIndex »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns the WriteError's error code

MongoDB\Driver\WriteError::getCode

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getCode — Returns the WriteError's error code

Beschreibung

final public MongoDB\Driver\WriteError::getCode ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the WriteError's error code.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteError::getCode() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
    $manager->executeBulkWrite('db.collection', $bulk);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteErrors()[0]->getCode());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(11000)


Returns the index of the write operation corresponding to this WriteError

  • « MongoDB\Driver\WriteError::getCode
  • MongoDB\Driver\WriteError::getInfo »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns the index of the write operation corresponding to this WriteError

MongoDB\Driver\WriteError::getIndex

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getIndex — Returns the index of the write operation corresponding to this WriteError

Beschreibung

final public MongoDB\Driver\WriteError::getIndex ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the index of the write operation (from MongoDB\Driver\BulkWrite) corresponding to this WriteError.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteError::getIndex() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
    $manager->executeBulkWrite('db.collection', $bulk);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteErrors()[0]->getIndex());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)

Siehe auch

  • MongoDB\Driver\BulkWrite


Returns metadata document for the WriteError

  • « MongoDB\Driver\WriteError::getIndex
  • MongoDB\Driver\WriteError::getMessage »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns metadata document for the WriteError

MongoDB\Driver\WriteError::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getInfo — Returns metadata document for the WriteError

Beschreibung

final public MongoDB\Driver\WriteError::getInfo ( ) : object|null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the metadata document for the WriteError, or null if no metadata is available.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.


Returns the WriteError's error message

  • « MongoDB\Driver\WriteError::getInfo
  • MongoDB\Driver\WriteResult »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns the WriteError's error message

MongoDB\Driver\WriteError::getMessage

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getMessage — Returns the WriteError's error message

Beschreibung

final public MongoDB\Driver\WriteError::getMessage ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the WriteError's error message.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteError::getMessage() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
    $manager->executeBulkWrite('db.collection', $bulk);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteErrors()[0]->getMessage());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(70) "E11000 duplicate key error index: db.collection.$_id_ dup key: { : 1 }"


The MongoDB\Driver\WriteResult class

(mongodb >=1.0.0)

Einführung

The MongoDB\Driver\WriteResult class encapsulates information about an executed MongoDB\Driver\BulkWrite and may be returned by MongoDB\Driver\Manager::executeBulkWrite().

Klassenbeschreibung

final MongoDB\Driver\WriteResult {
/* Methoden */
final public getDeletedCount ( ) : int|null
final public getInsertedCount ( ) : int|null
final public getMatchedCount ( ) : int|null
final public getModifiedCount ( ) : int|null
final public getServer ( ) : MongoDB\Driver\Server
final public getUpsertedCount ( ) : int|null
final public getUpsertedIds ( ) : array
final public getWriteConcernError ( ) : MongoDB\Driver\WriteConcernError|null
final public getWriteErrors ( ) : array
final public isAcknowledged ( ) : bool
}

Inhaltsverzeichnis

  • MongoDB\Driver\WriteResult::getDeletedCount — Returns the number of documents deleted
  • MongoDB\Driver\WriteResult::getInsertedCount — Returns the number of documents inserted (excluding upserts)
  • MongoDB\Driver\WriteResult::getMatchedCount — Returns the number of documents selected for update
  • MongoDB\Driver\WriteResult::getModifiedCount — Returns the number of existing documents updated
  • MongoDB\Driver\WriteResult::getServer — Returns the server associated with this write result
  • MongoDB\Driver\WriteResult::getUpsertedCount — Returns the number of documents inserted by an upsert
  • MongoDB\Driver\WriteResult::getUpsertedIds — Returns an array of identifiers for upserted documents
  • MongoDB\Driver\WriteResult::getWriteConcernError — Returns any write concern error that occurred
  • MongoDB\Driver\WriteResult::getWriteErrors — Returns any write errors that occurred
  • MongoDB\Driver\WriteResult::isAcknowledged — Returns whether the write was acknowledged


Returns the number of documents deleted

  • « MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteResult::getInsertedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of documents deleted

MongoDB\Driver\WriteResult::getDeletedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getDeletedCount — Returns the number of documents deleted

Beschreibung

final public MongoDB\Driver\WriteResult::getDeletedCount ( ) : int|null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of documents deleted, or null if the write was not acknowledged.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteResult::getDeletedCount() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getDeletedCount());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)

Siehe auch

  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns the number of documents inserted (excluding upserts)

  • « MongoDB\Driver\WriteResult::getDeletedCount
  • MongoDB\Driver\WriteResult::getMatchedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of documents inserted (excluding upserts)

MongoDB\Driver\WriteResult::getInsertedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getInsertedCount — Returns the number of documents inserted (excluding upserts)

Beschreibung

final public MongoDB\Driver\WriteResult::getInsertedCount ( ) : int|null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of documents inserted (excluding upserts), or null if the write was not acknowledged.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteResult::getInsertedCount() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getInsertedCount());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)

Siehe auch

  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns the number of documents selected for update

  • « MongoDB\Driver\WriteResult::getInsertedCount
  • MongoDB\Driver\WriteResult::getModifiedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of documents selected for update

MongoDB\Driver\WriteResult::getMatchedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getMatchedCount — Returns the number of documents selected for update

Beschreibung

final public MongoDB\Driver\WriteResult::getMatchedCount ( ) : int|null

If the update operation results in no change to the document (e.g. setting the value of a field to its current value), the matched count may be greater than the value returned by MongoDB\Driver\WriteResult::getModifiedCount().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of documents selected for update, or null if the write was not acknowledged.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteResult::getMatchedCount() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getMatchedCount());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)

Siehe auch

  • MongoDB\Driver\WriteResult::getModifiedCount() - Returns the number of existing documents updated
  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns the number of existing documents updated

  • « MongoDB\Driver\WriteResult::getMatchedCount
  • MongoDB\Driver\WriteResult::getServer »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of existing documents updated

MongoDB\Driver\WriteResult::getModifiedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getModifiedCount — Returns the number of existing documents updated

Beschreibung

final public MongoDB\Driver\WriteResult::getModifiedCount ( ) : int|null

If the update operation results in no change to the document (e.g. setting the value of a field to its current value), the modified count may be less than the value returned by MongoDB\Driver\WriteResult::getMatchedCount().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of existing documents updated, or null if the write was not acknowledged.

The modified count is not available on versions of MongoDB before 2.6, which used the legacy wire protocol version (i.e. OP_UPDATE). If this is the case, the modified count will also be null.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteResult::getModifiedCount() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getModifiedCount());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)

Siehe auch

  • MongoDB\Driver\WriteResult::getMatchedCount() - Returns the number of documents selected for update
  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns the server associated with this write result

  • « MongoDB\Driver\WriteResult::getModifiedCount
  • MongoDB\Driver\WriteResult::getUpsertedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the server associated with this write result

MongoDB\Driver\WriteResult::getServer

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getServer — Returns the server associated with this write result

Beschreibung

final public MongoDB\Driver\WriteResult::getServer ( ) : MongoDB\Driver\Server

Returns the MongoDB\Driver\Server associated with this write result. This is the server that executed the MongoDB\Driver\BulkWrite.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the MongoDB\Driver\Server associated with this write result.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteResult::getServer() example

<?php

$manager = new MongoDB\Driver\Manager;
$server = $manager->selectServer(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY));

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$result = $server->executeBulkWrite('db.collection', $bulk);

var_dump($result->getServer() == $server);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)

Siehe auch

  • MongoDB\Driver\Server


Returns the number of documents inserted by an upsert

  • « MongoDB\Driver\WriteResult::getServer
  • MongoDB\Driver\WriteResult::getUpsertedIds »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of documents inserted by an upsert

MongoDB\Driver\WriteResult::getUpsertedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getUpsertedCount — Returns the number of documents inserted by an upsert

Beschreibung

final public MongoDB\Driver\WriteResult::getUpsertedCount ( ) : int|null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of documents inserted by an upsert.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteResult::getUpsertedCount() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getUpsertedCount());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2)

Siehe auch

  • MongoDB\Driver\WriteResult::getUpsertedIds() - Returns an array of identifiers for upserted documents
  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns an array of identifiers for upserted documents

  • « MongoDB\Driver\WriteResult::getUpsertedCount
  • MongoDB\Driver\WriteResult::getWriteConcernError »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns an array of identifiers for upserted documents

MongoDB\Driver\WriteResult::getUpsertedIds

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getUpsertedIds — Returns an array of identifiers for upserted documents

Beschreibung

final public MongoDB\Driver\WriteResult::getUpsertedIds ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array of identifiers (i.e. "_id" field values) for upserted documents. The array keys will correspond to the index of the write operation (from MongoDB\Driver\BulkWrite) responsible for the upsert.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteResult::getUpsertedIds() example

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getUpsertedIds());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  [2]=>
  object(MongoDB\BSON\ObjectId)#4 (1) {
    ["oid"]=>
    string(24) "580e62a224f2302f191b880b"
  }
  [3]=>
  object(MongoDB\BSON\ObjectId)#5 (1) {
    ["oid"]=>
    string(24) "580e62a224f2302f191b880c"
  }
}

Siehe auch

  • MongoDB\Driver\WriteResult::getUpsertedCount() - Returns the number of documents inserted by an upsert
  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns any write concern error that occurred

  • « MongoDB\Driver\WriteResult::getUpsertedIds
  • MongoDB\Driver\WriteResult::getWriteErrors »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns any write concern error that occurred

MongoDB\Driver\WriteResult::getWriteConcernError

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteConcernError — Returns any write concern error that occurred

Beschreibung

final public MongoDB\Driver\WriteResult::getWriteConcernError ( ) : MongoDB\Driver\WriteConcernError|null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a MongoDB\Driver\WriteConcernError if a write concern error was encountered during the write operation, and null otherwise.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteResult::getWriteConcernError() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
    $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteConcernError());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MongoDB\Driver\WriteConcernError)#6 (3) {
  ["message"]=>
  string(33) "waiting for replication timed out"
  ["code"]=>
  int(64)
  ["info"]=>
  object(stdClass)#7 (1) {
    ["wtimeout"]=>
    bool(true)
  }
}

Siehe auch

  • MongoDB\Driver\WriteConcern
  • » Write Concern reference


Returns any write errors that occurred

  • « MongoDB\Driver\WriteResult::getWriteConcernError
  • MongoDB\Driver\WriteResult::isAcknowledged »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns any write errors that occurred

MongoDB\Driver\WriteResult::getWriteErrors

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteErrors — Returns any write errors that occurred

Beschreibung

final public MongoDB\Driver\WriteResult::getWriteErrors ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array of MongoDB\Driver\WriteError objects for any write errors encountered during the write operation. The array will be empty if no write errors occurred.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteResult::getWriteErrors() with a single error

<?php

$manager = new MongoDB\Driver\Manager;

/* By default, bulk write operations are executed serially in order and
 * execution will stop after the first error.
 */
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 4]);

try {
    $result = $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteErrors());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  object(MongoDB\Driver\WriteError)#5 (4) {
    ["message"]=>
    string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 2 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(2)
    ["info"]=>
    NULL
  }
}

Beispiel #2 MongoDB\Driver\WriteResult::getWriteErrors() with multiple errors

<?php

$manager = new MongoDB\Driver\Manager;

/* The "ordered" option may be used to allow bulk write operations to continue
 * executing after the first error is encountered.
 */
$bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]);
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 4]);

try {
    $result = $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
    var_dump($e->getWriteResult()->getWriteErrors());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  [0]=>
  object(MongoDB\Driver\WriteError)#5 (4) {
    ["message"]=>
    string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 2 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(2)
    ["info"]=>
    NULL
  }
  [1]=>
  object(MongoDB\Driver\WriteError)#6 (4) {
    ["message"]=>
    string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 4 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(5)
    ["info"]=>
    NULL
  }
}

Siehe auch

  • MongoDB\Driver\WriteError


Returns whether the write was acknowledged

  • « MongoDB\Driver\WriteResult::getWriteErrors
  • MongoDB\BSON »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns whether the write was acknowledged

MongoDB\Driver\WriteResult::isAcknowledged

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::isAcknowledged — Returns whether the write was acknowledged

Beschreibung

final public MongoDB\Driver\WriteResult::isAcknowledged ( ) : bool

If the write is acknowledged, other count fields will be available on the MongoDB\Driver\WriteResult object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the write was acknowledged, and false otherwise.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\Driver\WriteResult::isAcknowledged() with acknowledged write concern

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->isAcknowledged());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)

Beispiel #2 MongoDB\Driver\WriteResult::isAcknowledged() with unacknowledged write concern

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk, new MongoDB\Driver\WriteConcern(0));

var_dump($result->isAcknowledged());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)

Siehe auch

  • MongoDB\Driver\WriteConcern
  • » Write Concern reference


BSON type classes and serialization functions

  • Funktionen
    • MongoDB\BSON\fromJSON — Returns the BSON representation of a JSON value
    • MongoDB\BSON\fromPHP — Returns the BSON representation of a PHP value
    • MongoDB\BSON\toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of a BSON value
    • MongoDB\BSON\toJSON — Returns the Legacy Extended JSON representation of a BSON value
    • MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value
    • MongoDB\BSON\toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of a BSON value
  • MongoDB\BSON\Binary — The MongoDB\BSON\Binary class
    • MongoDB\BSON\Binary::__construct — Construct a new Binary
    • MongoDB\BSON\Binary::getData — Returns the Binary's data
    • MongoDB\BSON\Binary::getType — Returns the Binary's type
    • MongoDB\BSON\Binary::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Binary::serialize — Serialize a Binary
    • MongoDB\BSON\Binary::__toString — Returns the Binary's data
    • MongoDB\BSON\Binary::unserialize — Unserialize a Binary
  • MongoDB\BSON\Decimal128 — The MongoDB\BSON\Decimal128 class
    • MongoDB\BSON\Decimal128::__construct — Construct a new Decimal128
    • MongoDB\BSON\Decimal128::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Decimal128::serialize — Serialize a Decimal128
    • MongoDB\BSON\Decimal128::__toString — Returns the string representation of this Decimal128
    • MongoDB\BSON\Decimal128::unserialize — Unserialize a Decimal128
  • MongoDB\BSON\Javascript — The MongoDB\BSON\Javascript class
    • MongoDB\BSON\Javascript::__construct — Construct a new Javascript
    • MongoDB\BSON\Javascript::getCode — Returns the Javascript's code
    • MongoDB\BSON\Javascript::getScope — Returns the Javascript's scope document
    • MongoDB\BSON\Javascript::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Javascript::serialize — Serialize a Javascript
    • MongoDB\BSON\Javascript::__toString — Returns the Javascript's code
    • MongoDB\BSON\Javascript::unserialize — Unserialize a Javascript
  • MongoDB\BSON\MaxKey — The MongoDB\BSON\MaxKey class
    • MongoDB\BSON\MaxKey::__construct — Construct a new MaxKey
    • MongoDB\BSON\MaxKey::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\MaxKey::serialize — Serialize a MaxKey
    • MongoDB\BSON\MaxKey::unserialize — Unserialize a MaxKey
  • MongoDB\BSON\MinKey — The MongoDB\BSON\MinKey class
    • MongoDB\BSON\MinKey::__construct — Construct a new MinKey
    • MongoDB\BSON\MinKey::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\MinKey::serialize — Serialize a MinKey
    • MongoDB\BSON\MinKey::unserialize — Unserialize a MinKey
  • MongoDB\BSON\ObjectId — The MongoDB\BSON\ObjectId class
    • MongoDB\BSON\ObjectId::__construct — Construct a new ObjectId
    • MongoDB\BSON\ObjectId::getTimestamp — Returns the timestamp component of this ObjectId
    • MongoDB\BSON\ObjectId::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\ObjectId::serialize — Serialize an ObjectId
    • MongoDB\BSON\ObjectId::__toString — Returns the hexidecimal representation of this ObjectId
    • MongoDB\BSON\ObjectId::unserialize — Unserialize an ObjectId
  • MongoDB\BSON\Regex — The MongoDB\BSON\Regex class
    • MongoDB\BSON\Regex::__construct — Construct a new Regex
    • MongoDB\BSON\Regex::getFlags — Returns the Regex's flags
    • MongoDB\BSON\Regex::getPattern — Returns the Regex's pattern
    • MongoDB\BSON\Regex::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Regex::serialize — Serialize a Regex
    • MongoDB\BSON\Regex::__toString — Returns the string representation of this Regex
    • MongoDB\BSON\Regex::unserialize — Unserialize a Regex
  • MongoDB\BSON\Timestamp — The MongoDB\BSON\Timestamp class
    • MongoDB\BSON\Timestamp::__construct — Construct a new Timestamp
    • MongoDB\BSON\Timestamp::getIncrement — Returns the increment component of this Timestamp
    • MongoDB\BSON\Timestamp::getTimestamp — Returns the timestamp component of this Timestamp
    • MongoDB\BSON\Timestamp::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Timestamp::serialize — Serialize a Timestamp
    • MongoDB\BSON\Timestamp::__toString — Returns the string representation of this Timestamp
    • MongoDB\BSON\Timestamp::unserialize — Unserialize a Timestamp
  • MongoDB\BSON\UTCDateTime — The MongoDB\BSON\UTCDateTime class
    • MongoDB\BSON\UTCDateTime::__construct — Construct a new UTCDateTime
    • MongoDB\BSON\UTCDateTime::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\UTCDateTime::serialize — Serialize a UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTime — Returns the DateTime representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTime::__toString — Returns the string representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTime::unserialize — Unserialize a UTCDateTime
  • MongoDB\BSON\Type — The MongoDB\BSON\Type interface
  • MongoDB\BSON\Persistable — The MongoDB\BSON\Persistable interface
  • MongoDB\BSON\Serializable — The MongoDB\BSON\Serializable interface
    • MongoDB\BSON\Serializable::bsonSerialize — Provides an array or document to serialize as BSON
  • MongoDB\BSON\Unserializable — The MongoDB\BSON\Unserializable interface
    • MongoDB\BSON\Unserializable::bsonUnserialize — Constructs the object from a BSON array or document
  • MongoDB\BSON\BinaryInterface — The MongoDB\BSON\BinaryInterface interface
    • MongoDB\BSON\BinaryInterface::getData — Returns the BinaryInterface's data
    • MongoDB\BSON\BinaryInterface::getType — Returns the BinaryInterface's type
    • MongoDB\BSON\BinaryInterface::__toString — Returns the BinaryInterface's data
  • MongoDB\BSON\Decimal128Interface — The MongoDB\BSON\Decimal128Interface interface
    • MongoDB\BSON\Decimal128Interface::__toString — Returns the string representation of this Decimal128Interface
  • MongoDB\BSON\JavascriptInterface — The MongoDB\BSON\JavascriptInterface interface
    • MongoDB\BSON\JavascriptInterface::getCode — Returns the JavascriptInterface's code
    • MongoDB\BSON\JavascriptInterface::getScope — Returns the JavascriptInterface's scope document
    • MongoDB\BSON\JavascriptInterface::__toString — Returns the JavascriptInterface's code
  • MongoDB\BSON\MaxKeyInterface — The MongoDB\BSON\MaxKeyInterface interface
  • MongoDB\BSON\MinKeyInterface — The MongoDB\BSON\MinKeyInterface interface
  • MongoDB\BSON\ObjectIdInterface — The MongoDB\BSON\ObjectIdInterface interface
    • MongoDB\BSON\ObjectIdInterface::getTimestamp — Returns the timestamp component of this ObjectIdInterface
    • MongoDB\BSON\ObjectIdInterface::__toString — Returns the hexidecimal representation of this ObjectIdInterface
  • MongoDB\BSON\RegexInterface — The MongoDB\BSON\RegexInterface interface
    • MongoDB\BSON\RegexInterface::getFlags — Returns the RegexInterface's flags
    • MongoDB\BSON\RegexInterface::getPattern — Returns the RegexInterface's pattern
    • MongoDB\BSON\RegexInterface::__toString — Returns the string representation of this RegexInterface
  • MongoDB\BSON\TimestampInterface — The MongoDB\BSON\TimestampInterface interface
    • MongoDB\BSON\TimestampInterface::getIncrement — Returns the increment component of this TimestampInterface
    • MongoDB\BSON\TimestampInterface::getTimestamp — Returns the timestamp component of this TimestampInterface
    • MongoDB\BSON\TimestampInterface::__toString — Returns the string representation of this TimestampInterface
  • MongoDB\BSON\UTCDateTimeInterface — The MongoDB\BSON\UTCDateTimeInterface interface
    • MongoDB\BSON\UTCDateTimeInterface::toDateTime — Returns the DateTime representation of this UTCDateTimeInterface
    • MongoDB\BSON\UTCDateTimeInterface::__toString — Returns the string representation of this UTCDateTimeInterface
  • MongoDB\BSON\DBPointer — The MongoDB\BSON\DBPointer class (deprecated)
    • MongoDB\BSON\DBPointer::__construct — Construct a new DBPointer (unused)
    • MongoDB\BSON\DBPointer::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\DBPointer::serialize — Serialize a DBPointer
    • MongoDB\BSON\DBPointer::__toString — Returns an empty string
    • MongoDB\BSON\DBPointer::unserialize — Unserialize a DBPointer
  • MongoDB\BSON\Int64 — The MongoDB\BSON\Int64 class
    • MongoDB\BSON\Int64::__construct — Construct a new Int64 (unused)
    • MongoDB\BSON\Int64::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Int64::serialize — Serialize an Int64
    • MongoDB\BSON\Int64::__toString — Returns the string representation of this Int64
    • MongoDB\BSON\Int64::unserialize — Unserialize an Int64
  • MongoDB\BSON\Symbol — The MongoDB\BSON\Symbol class (deprecated)
    • MongoDB\BSON\Symbol::__construct — Construct a new Symbol (unused)
    • MongoDB\BSON\Symbol::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Symbol::serialize — Serialize a Symbol
    • MongoDB\BSON\Symbol::__toString — Returns the Symbol as a string
    • MongoDB\BSON\Symbol::unserialize — Unserialize a Symbol
  • MongoDB\BSON\Undefined — The MongoDB\BSON\Undefined class (deprecated)
    • MongoDB\BSON\Undefined::__construct — Construct a new Undefined (unused)
    • MongoDB\BSON\Undefined::jsonSerialize — Returns a representation that can be converted to JSON
    • MongoDB\BSON\Undefined::serialize — Serialize a Undefined
    • MongoDB\BSON\Undefined::__toString — Returns an empty string
    • MongoDB\BSON\Undefined::unserialize — Unserialize a Undefined


Funktionen

Inhaltsverzeichnis

  • MongoDB\BSON\fromJSON — Returns the BSON representation of a JSON value
  • MongoDB\BSON\fromPHP — Returns the BSON representation of a PHP value
  • MongoDB\BSON\toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toJSON — Returns the Legacy Extended JSON representation of a BSON value
  • MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of a BSON value


Returns the BSON representation of a JSON value

  • « Funktionen
  • MongoDB\BSON\fromPHP »
  • PHP Manual
  • Funktionen
  • Returns the BSON representation of a JSON value

MongoDB\BSON\fromJSON

(mongodb >=1.0.0)

MongoDB\BSON\fromJSON — Returns the BSON representation of a JSON value

Beschreibung

MongoDB\BSON\fromJSON ( string $json ) : string

Converts an » extended JSON string to its BSON representation.

Parameter-Liste

json (string)

JSON value to be converted.

Rückgabewerte

The serialized BSON document as a binary string.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the JSON value cannot be converted to BSON (e.g. due to a syntax error).

Beispiele

Beispiel #1 MongoDB\BSON\fromJSON() example

<?php

$json = '{ "_id": { "$oid": "563143b280d2387c91807965" } }';
$bson = MongoDB\BSON\fromJSON($json);
$value = MongoDB\BSON\toPHP($bson);
var_dump($value);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(stdClass)#2 (1) {
  ["_id"]=>
  object(MongoDB\BSON\ObjectId)#1 (1) {
    ["oid"]=>
    string(24) "563143b280d2387c91807965"
  }
}

Siehe auch

  • MongoDB\BSON\toJSON() - Returns the Legacy Extended JSON representation of a BSON value
  • » MongoDB Extended JSON
  • » MongoDB BSON


Returns the BSON representation of a PHP value

  • « MongoDB\BSON\fromJSON
  • MongoDB\BSON\toCanonicalExtendedJSON »
  • PHP Manual
  • Funktionen
  • Returns the BSON representation of a PHP value

MongoDB\BSON\fromPHP

(mongodb >=1.0.0)

MongoDB\BSON\fromPHP — Returns the BSON representation of a PHP value

Beschreibung

MongoDB\BSON\fromPHP ( array|object $value ) : string

Serializes a PHP array or object (e.g. document) to its » BSON representation. The returned binary string will describe a BSON document.

Parameter-Liste

value (array|object)

PHP value to be serialized.

Rückgabewerte

The serialized BSON document as a binary string.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the PHP value cannot be converted to BSON. Possible reasons include, but are not limited to, encountering an unexpected MongoDB\BSON\Type instance or MongoDB\BSON\Serializable::bsonSerialize() failing to return an array or stdClass.

Beispiele

Beispiel #1 MongoDB\BSON\fromPHP() example

<?php

$bson = MongoDB\BSON\fromPHP(['foo' => 1]);
echo bin2hex($bson), "\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0e00000010666f6f000100000000cat

Siehe auch

  • MongoDB\BSON\toPHP() - Returns the PHP representation of a BSON value
  • » MongoDB BSON
  • Persisting Data


Returns the Canonical Extended JSON representation of a BSON value

  • « MongoDB\BSON\fromPHP
  • MongoDB\BSON\toJSON »
  • PHP Manual
  • Funktionen
  • Returns the Canonical Extended JSON representation of a BSON value

MongoDB\BSON\toCanonicalExtendedJSON

(mongodb >=1.3.0)

MongoDB\BSON\toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of a BSON value

Beschreibung

MongoDB\BSON\toCanonicalExtendedJSON ( string $bson ) : string

Converts a BSON string to its » Canonical Extended JSON representation. The canonical format prefers type fidelity at the expense of concise output and is most suited for producing output that can be converted back to BSON without any loss of type information (e.g. numeric types will remain differentiated).

Parameter-Liste

bson (string)

BSON value to be converted.

Rückgabewerte

The converted JSON value.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the input did not contain exactly one BSON document. Possible reasons include, but are not limited to, invalid BSON, extra data (after reading one BSON document), or an unexpected » libbson error.

Beispiele

Beispiel #1 MongoDB\BSON\toCanonicalExtendedJSON() example

<?php

$documents = [
    [ 'null' => null ],
    [ 'boolean' => true ],
    [ 'string' => 'foo' ],
    [ 'int32' => 123 ],
    [ 'int64' => 4294967295 ],
    [ 'double' => 1.0, ],
    [ 'nan' => NAN ],
    [ 'pos_inf' => INF ],
    [ 'neg_inf' => -INF ],
    [ 'array' => [ 'foo', 'bar' ]],
    [ 'document' => [ 'foo' => 'bar' ]],
    [ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
    [ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
    [ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
    [ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
    [ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
    [ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
    [ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
    [ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
    [ 'minkey' => new MongoDB\BSON\MinKey ],
    [ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
    $bson = MongoDB\BSON\fromPHP($document);
    echo MongoDB\BSON\toCanonicalExtendedJSON($bson), "\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : { "$numberInt" : "123" } }
{ "int64" : { "$numberLong" : "4294967295"} }
{ "double" : { "$numberDouble" : "1.0" } }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : { "$numberLong" : "1445990400000" } } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : { "$numberInt" : "1" } } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Siehe auch

  • MongoDB\BSON\fromJSON() - Returns the BSON representation of a JSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » Extended JSON Specification
  • » MongoDB BSON


Returns the Legacy Extended JSON representation of a BSON value

  • « MongoDB\BSON\toCanonicalExtendedJSON
  • MongoDB\BSON\toPHP »
  • PHP Manual
  • Funktionen
  • Returns the Legacy Extended JSON representation of a BSON value

MongoDB\BSON\toJSON

(mongodb >=1.0.0)

MongoDB\BSON\toJSON — Returns the Legacy Extended JSON representation of a BSON value

Beschreibung

MongoDB\BSON\toJSON ( string $bson ) : string

Converts a BSON string to its » Legacy Extended JSON representation.

Hinweis: There exist several JSON formats for representing BSON. This function implements the "strict mode" defined in » MongoDB Extended JSON, which has been superseded by the canonical and relaxed formats defined in the » Extended JSON Specification and implemented by MongoDB\BSON\toCanonicalExtendedJSON() and MongoDB\BSON\toRelaxedExtendedJSON(), respectively.

Warnung

» JSON does not support NAN and INF and MongoDB's Legacy Extended JSON format does not define an alternative representation for these values (» libbson will output nan and inf literals, which may not be parsed as valid JSON). If you are working with BSON that may contain non-finite numbers, please use MongoDB\BSON\toCanonicalExtendedJSON() or MongoDB\BSON\toRelaxedExtendedJSON().

Parameter-Liste

bson (string)

BSON value to be converted.

Rückgabewerte

The converted JSON value.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the input did not contain exactly one BSON document. Possible reasons include, but are not limited to, invalid BSON, extra data (after reading one BSON document), or an unexpected » libbson error.

Beispiele

Beispiel #1 MongoDB\BSON\toJSON() example

<?php

$documents = [
    [ 'null' => null ],
    [ 'boolean' => true ],
    [ 'string' => 'foo' ],
    [ 'int32' => 123 ],
    [ 'int64' => 4294967295 ],
    [ 'double' => 1.0, ],
    [ 'nan' => NAN ],
    [ 'pos_inf' => INF ],
    [ 'neg_inf' => -INF ],
    [ 'array' => [ 'foo', 'bar' ]],
    [ 'document' => [ 'foo' => 'bar' ]],
    [ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
    [ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
    [ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
    [ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
    [ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
    [ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
    [ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
    [ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
    [ 'minkey' => new MongoDB\BSON\MinKey ],
    [ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
    $bson = MongoDB\BSON\fromPHP($document);
    echo MongoDB\BSON\toJSON($bson), "\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : 123 }
{ "int64" : 4294967295 }
{ "double" : 1.0 }
{ "nan" : nan }
{ "pos_inf" : inf }
{ "neg_inf" : -inf }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : "Zm9v", "$type" : "00" } }
{ "date" : { "$date" : 1445990400000 } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regex" : "pattern", "$options" : "i" } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : 1 } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Siehe auch

  • MongoDB\BSON\fromJSON() - Returns the BSON representation of a JSON value
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON
  • » MongoDB BSON


Returns the PHP representation of a BSON value

  • « MongoDB\BSON\toJSON
  • MongoDB\BSON\toRelaxedExtendedJSON »
  • PHP Manual
  • Funktionen
  • Returns the PHP representation of a BSON value

MongoDB\BSON\toPHP

(mongodb >=1.0.0)

MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value

Beschreibung

MongoDB\BSON\toPHP ( string $bson , array $typeMap = array() ) : array|object

Unserializes a BSON document (i.e. binary string) to its PHP representation. The typeMap paramater may be used to control the PHP types used for converting BSON arrays and documents (both root and embedded).

Warnung

Fields containing deprecated BSON types (i.e. undefined, symbol, DBPointer) are represented only by bare-bones objects of the classes MongoDB\BSON\Undefined, MongoDB\BSON\Symbol, and MongoDB\BSON\DBPointer, when converting BSON to PHP. These objects are created from BSON data and used for storing these types back into the database, but can not be instantiated as they have a private constructor.

Parameter-Liste

bson (string)

BSON value to be unserialized.

typeMap (array)

Type map configuration.

Rückgabewerte

The unserialized PHP value.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the input did not contain exactly one BSON document. Possible reasons include, but are not limited to, invalid BSON, extra data (after reading one BSON document), or an unexpected » libbson error.

Changelog

Version | Beschreibung
PECL mongodb 1.4.0 | If the input contains an unsupported, deprecated BSON type, the driver will now no longer log a warning to the debug log, but instead will create an object representing this type.
PECL mongodb 1.3.2 | MongoDB\Driver\Exception\UnexpectedValueException is no longer thrown if the input contains an unsupported, deprecated BSON type. Such types will be ignored (as they were in versions before 1.3.0), although the driver will now log a warning to the debug log (see: mongodb.debug).
PECL mongodb 1.3.0 | MongoDB\Driver\Exception\UnexpectedValueException is thrown if the input contains an unsupported, deprecated BSON type. Previously, such types were ignored.

Beispiele

Beispiel #1 MongoDB\BSON\toPHP() example

<?php

$bson = hex2bin('0e00000010666f6f000100000000');
$value = MongoDB\BSON\toPHP($bson);
var_dump($value);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(stdClass)#1 (1) {
  ["foo"]=>
  int(1)
}

Siehe auch

  • MongoDB\BSON\fromPHP() - Returns the BSON representation of a PHP value
  • » MongoDB BSON
  • Persisting Data


Returns the Relaxed Extended JSON representation of a BSON value

  • « MongoDB\BSON\toPHP
  • MongoDB\BSON\Binary »
  • PHP Manual
  • Funktionen
  • Returns the Relaxed Extended JSON representation of a BSON value

MongoDB\BSON\toRelaxedExtendedJSON

(mongodb >=1.3.0)

MongoDB\BSON\toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of a BSON value

Beschreibung

MongoDB\BSON\toRelaxedExtendedJSON ( string $bson ) : string

Converts a BSON string to its » Relaxed Extended JSON representation. The relaxed format prefers use of JSON type primitives at the expense of type fidelity and is most suited for producing output that can be easily consumed by web APIs and humans.

Parameter-Liste

bson (string)

BSON value to be converted.

Rückgabewerte

The converted JSON value.

Fehler/Exceptions

  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the input did not contain exactly one BSON document. Possible reasons include, but are not limited to, invalid BSON, extra data (after reading one BSON document), or an unexpected » libbson error.

Beispiele

Beispiel #1 MongoDB\BSON\toRelaxedExtendedJSON() example

<?php

$documents = [
    [ 'null' => null ],
    [ 'boolean' => true ],
    [ 'string' => 'foo' ],
    [ 'int32' => 123 ],
    [ 'int64' => 4294967295 ],
    [ 'double' => 1.0, ],
    [ 'nan' => NAN ],
    [ 'pos_inf' => INF ],
    [ 'neg_inf' => -INF ],
    [ 'array' => [ 'foo', 'bar' ]],
    [ 'document' => [ 'foo' => 'bar' ]],
    [ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
    [ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
    [ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
    [ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
    [ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
    [ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
    [ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
    [ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
    [ 'minkey' => new MongoDB\BSON\MinKey ],
    [ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
    $bson = MongoDB\BSON\fromPHP($document);
    echo MongoDB\BSON\toRelaxedExtendedJSON($bson), "\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : 123 }
{ "int64" : 4294967295 }
{ "double" : 1.0 }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : "2015-10-28T00:00:00Z" } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : 1 } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Siehe auch

  • MongoDB\BSON\fromJSON() - Returns the BSON representation of a JSON value
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • » Extended JSON
  • » MongoDB BSON


The MongoDB\BSON\Binary class

(mongodb >=1.0.0)

Einführung

BSON type for binary data (i.e. array of bytes). Binary values also have a subtype, which is used to indicate what kind of data is in the byte array. Subtypes from zero to 127 are predefined or reserved. Subtypes from 128-255 are user-defined.

Klassenbeschreibung

final MongoDB\BSON\Binary implements MongoDB\BSON\BinaryInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Constants */
const int TYPE_GENERIC = 0 ;
const int TYPE_FUNCTION = 1 ;
const int TYPE_OLD_BINARY = 2 ;
const int TYPE_OLD_UUID = 3 ;
const int TYPE_UUID = 4 ;
const int TYPE_MD5 = 5 ;
const int TYPE_ENCRYPTED = 6 ;
const int TYPE_USER_DEFINED = 128 ;
/* Methoden */
final public __construct ( string $data , int $type )
final public getData ( ) : string
final public getType ( ) : int
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public __toString ( ) : string
final public unserialize ( string $serialized ) : void
}

Vordefinierte Konstanten

MongoDB\BSON\Binary::TYPE_GENERIC

Generic binary data.

MongoDB\BSON\Binary::TYPE_FUNCTION

Function.

MongoDB\BSON\Binary::TYPE_OLD_BINARY

Generic binary data (deprecated in favor of MongoDB\BSON\Binary::TYPE_GENERIC).

MongoDB\BSON\Binary::TYPE_OLD_UUID

Universally unique identifier (deprecated in favor of MongoDB\BSON\Binary::TYPE_UUID). When using this type, the Binary's data should be 16 bytes in length.

Historically, other drivers encoded values with this type based on their language conventions (e.g. varying endianness), which makes it non-portable. The PHP driver applies no special handling for encoding or decoding data with this type.

MongoDB\BSON\Binary::TYPE_UUID

Universally unique identifier. When using this type, the Binary's data should be 16 bytes in length and encoded according to » RFC 4122.

MongoDB\BSON\Binary::TYPE_MD5

MD5 hash. When using this type, the Binary's data should be 16 bytes in length.

MongoDB\BSON\Binary::TYPE_ENCRYPTED

Encrypted value. This subtype is used for client-side encryption.

MongoDB\BSON\Binary::TYPE_USER_DEFINED

User-defined type. While types between 0 and 127 are predefined or reserved, types between 128 and 255 are user-defined and may be used for anything.

Changelog

Version | Beschreibung
PECL mongodb 1.3.0 | Implements MongoDB\BSON\BinaryInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Inhaltsverzeichnis

  • MongoDB\BSON\Binary::__construct — Construct a new Binary
  • MongoDB\BSON\Binary::getData — Returns the Binary's data
  • MongoDB\BSON\Binary::getType — Returns the Binary's type
  • MongoDB\BSON\Binary::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Binary::serialize — Serialize a Binary
  • MongoDB\BSON\Binary::__toString — Returns the Binary's data
  • MongoDB\BSON\Binary::unserialize — Unserialize a Binary


Construct a new Binary

  • « MongoDB\BSON\Binary
  • MongoDB\BSON\Binary::getData »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Construct a new Binary

MongoDB\BSON\Binary::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Binary::__construct — Construct a new Binary

Beschreibung

final public MongoDB\BSON\Binary::__construct ( string $data , int $type )

Parameter-Liste

data (string)

Binary data.

type (int)

Unsigned 8-bit integer denoting the data's type.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if type is not an unsigned 8-bit integer.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if type is MongoDB\BSON\Binary::TYPE_UUID or MongoDB\BSON\Binary::TYPE_OLD_UUID and data is not exactly 16 bytes in length.

Changelog

Version | Beschreibung
PECL mongodb 1.3.0 | MongoDB\Driver\Exception\InvalidArgumentException is thrown if type is MongoDB\BSON\Binary::TYPE_UUID or MongoDB\BSON\Binary::TYPE_OLD_UUID and data is not exactly 16 bytes in length.
PECL mongodb 1.1.3 | MongoDB\Driver\Exception\InvalidArgumentException is thrown if type is not an unsigned 8-bit integer.

Beispiele

Beispiel #1 MongoDB\BSON\Binary::__construct() example

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(MongoDB\BSON\Binary)#1 (2) {
  ["data"]=>
  string(3) "foo"
  ["type"]=>
  int(0)
}

Siehe auch

  • » BSON Types


Returns the Binary's data

  • « MongoDB\BSON\Binary::__construct
  • MongoDB\BSON\Binary::getType »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Returns the Binary's data

MongoDB\BSON\Binary::getData

(mongodb >=1.0.0)

MongoDB\BSON\Binary::getData — Returns the Binary's data

Beschreibung

final public MongoDB\BSON\Binary::getData ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the Binary's data.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\BSON\Binary::getData() example

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary->getData());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "foo"

Siehe auch

  • » BSON Types


Returns the Binary's type

  • « MongoDB\BSON\Binary::getData
  • MongoDB\BSON\Binary::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Returns the Binary's type

MongoDB\BSON\Binary::getType

(mongodb >=1.0.0)

MongoDB\BSON\Binary::getType — Returns the Binary's type

Beschreibung

final public MongoDB\BSON\Binary::getType ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the Binary's type.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\BSON\Binary::getType() example

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary->getType());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)

Siehe auch

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Binary::getType
  • MongoDB\BSON\Binary::serialize »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Binary::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Binary::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\Binary::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Binary.

Hinweis: The output is consistent with the MongoDB\BSON\toJSON() function, which uses the driver-specific legacy extended JSON format. This does not necessarily match the » relaxed or » canonical extended JSON representations used by MongoDB\BSON\toRelaxedExtendedJSON() and MongoDB\BSON\toCanonicalExtendedJSON(), respectively.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Binary

  • « MongoDB\BSON\Binary::jsonSerialize
  • MongoDB\BSON\Binary::__toString »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Serialize a Binary

MongoDB\BSON\Binary::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Binary::serialize — Serialize a Binary

Beschreibung

final public MongoDB\BSON\Binary::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\Binary.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\Binary::unserialize() - Unserialize a Binary
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Returns the Binary's data

  • « MongoDB\BSON\Binary::serialize
  • MongoDB\BSON\Binary::unserialize »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Returns the Binary's data

MongoDB\BSON\Binary::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Binary::__toString — Returns the Binary's data

Beschreibung

final public MongoDB\BSON\Binary::__toString ( ) : string

Diese Methode ist ein Alias für: MongoDB\BSON\Binary::getData().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the Binary's data.

Beispiele

Beispiel #1 MongoDB\BSON\Binary::__toString() example

<?php

var_dump((string) new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "foo"

Siehe auch

  • MongoDB\BSON\Binary::getData() - Returns the Binary's data
  • » BSON Types


Unserialize a Binary

  • « MongoDB\BSON\Binary::__toString
  • MongoDB\BSON\Decimal128 »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Unserialize a Binary

MongoDB\BSON\Binary::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Binary::unserialize — Unserialize a Binary

Beschreibung

final public MongoDB\BSON\Binary::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\Binary.

Rückgabewerte

Returns the unserialized MongoDB\BSON\Binary.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Siehe auch

  • MongoDB\BSON\Binary::serialize() - Serialize a Binary
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\BSON\Decimal128 class

(mongodb >=1.2.0)

Einführung

BSON type for the » Decimal128 floating-point format, which supports numbers with up to 34 decimal digits (i.e. significant digits) and an exponent range of -6143 to +6144.

Unlike the double BSON type (i.e. float in PHP), which only stores an approximation of the decimal values, the decimal data type stores the exact value. For example, MongoDB\BSON\Decimal128('9.99') has a precise value of 9.99 where as a double 9.99 would have an approximate value of 9.9900000000000002131628….

Hinweis: MongoDB\BSON\Decimal128 is only compatible with MongoDB 3.4+. Attempting to use the BSON type with an earlier version of MongoDB will result in an error.

Klassenbeschreibung

final MongoDB\BSON\Decimal128 implements MongoDB\BSON\Decimal128Interface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Methoden */
final public __construct ( string $value = ? )
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public __toString ( ) : string
final public unserialize ( string $serialized ) : void
}

Changelog

Version | Beschreibung
PECL mongodb 1.3.0 | Implements MongoDB\BSON\Decimal128Interface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Inhaltsverzeichnis

  • MongoDB\BSON\Decimal128::__construct — Construct a new Decimal128
  • MongoDB\BSON\Decimal128::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Decimal128::serialize — Serialize a Decimal128
  • MongoDB\BSON\Decimal128::__toString — Returns the string representation of this Decimal128
  • MongoDB\BSON\Decimal128::unserialize — Unserialize a Decimal128


Construct a new Decimal128

  • « MongoDB\BSON\Decimal128
  • MongoDB\BSON\Decimal128::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Construct a new Decimal128

MongoDB\BSON\Decimal128::__construct

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::__construct — Construct a new Decimal128

Beschreibung

final public MongoDB\BSON\Decimal128::__construct ( string $value = ? )

Hinweis: MongoDB\BSON\Decimal128 is only compatible with MongoDB 3.4+. Attempting to use the BSON type with an earlier version of MongoDB will result in an error.

Parameter-Liste

value (string)

A decimal string.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if value is not a valid decimal string.

Beispiele

Beispiel #1 MongoDB\BSON\Decimal128::__construct() example

<?php

var_dump(new MongoDB\BSON\Decimal128(1234.5678));
var_dump(new MongoDB\BSON\Decimal128(NAN));
var_dump(new MongoDB\BSON\Decimal128(INF));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MongoDB\BSON\Decimal128)#1 (1) {
  ["dec"]=>
  string(9) "1234.5678"
}
object(MongoDB\BSON\Decimal128)#1 (1) {
  ["dec"]=>
  string(3) "NaN"
}
object(MongoDB\BSON\Decimal128)#1 (1) {
  ["dec"]=>
  string(8) "Infinity"
}

Siehe auch

  • » Decimal128 floating-point format
  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Decimal128::__construct
  • MongoDB\BSON\Decimal128::serialize »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Decimal128::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\Decimal128::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Decimal128.

Hinweis: The output is consistent with the MongoDB\BSON\toJSON() function, which uses the driver-specific legacy extended JSON format. This does not necessarily match the » relaxed or » canonical extended JSON representations used by MongoDB\BSON\toRelaxedExtendedJSON() and MongoDB\BSON\toCanonicalExtendedJSON(), respectively.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Decimal128

  • « MongoDB\BSON\Decimal128::jsonSerialize
  • MongoDB\BSON\Decimal128::__toString »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Serialize a Decimal128

MongoDB\BSON\Decimal128::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::serialize — Serialize a Decimal128

Beschreibung

final public MongoDB\BSON\Decimal128::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\Decimal128.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\Decimal128::unserialize() - Unserialize a Decimal128
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Returns the string representation of this Decimal128

  • « MongoDB\BSON\Decimal128::serialize
  • MongoDB\BSON\Decimal128::unserialize »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Returns the string representation of this Decimal128

MongoDB\BSON\Decimal128::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::__toString — Returns the string representation of this Decimal128

Beschreibung

final public MongoDB\BSON\Decimal128::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of this Decimal128.

Beispiele

Beispiel #1 MongoDB\BSON\Decimal128::__toString() example

<?php

var_dump((string) new MongoDB\BSON\Decimal128(1234.5678));
var_dump((string) new MongoDB\BSON\Decimal128(NAN));
var_dump((string) new MongoDB\BSON\Decimal128(INF));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(9) "1234.5678"
string(3) "NaN"
string(8) "Infinity"

Siehe auch

  • » Decimal128 floating-point format
  • » BSON Types


Unserialize a Decimal128

  • « MongoDB\BSON\Decimal128::__toString
  • MongoDB\BSON\Javascript »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Unserialize a Decimal128

MongoDB\BSON\Decimal128::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::unserialize — Unserialize a Decimal128

Beschreibung

final public MongoDB\BSON\Decimal128::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\Decimal128.

Rückgabewerte

Returns the unserialized MongoDB\BSON\Decimal128.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Siehe auch

  • MongoDB\BSON\Decimal128::serialize() - Serialize a Decimal128
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\BSON\Javascript class

(mongodb >=1.0.0)

Einführung

BSON type for Javascript code. An optional scope document may be specified that maps identifiers to values and defines the scope in which the code should be evaluated by the server.

Hinweis: This BSON type is mainly used when executing database commands that take a Javascript function as a parameter, such as » mapReduce.

Klassenbeschreibung

final MongoDB\BSON\Javascript implements MongoDB\BSON\JavascriptInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Methoden */
final public __construct ( string $code , array|object $scope = ? )
final public getCode ( ) : string
final public getScope ( ) : object|null
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public __toString ( ) : string
final public unserialize ( string $serialized ) : void
}

Changelog

Version | Beschreibung
PECL mongodb 1.3.0 | Implements MongoDB\BSON\JavascriptInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Inhaltsverzeichnis

  • MongoDB\BSON\Javascript::__construct — Construct a new Javascript
  • MongoDB\BSON\Javascript::getCode — Returns the Javascript's code
  • MongoDB\BSON\Javascript::getScope — Returns the Javascript's scope document
  • MongoDB\BSON\Javascript::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Javascript::serialize — Serialize a Javascript
  • MongoDB\BSON\Javascript::__toString — Returns the Javascript's code
  • MongoDB\BSON\Javascript::unserialize — Unserialize a Javascript


Construct a new Javascript

  • « MongoDB\BSON\Javascript
  • MongoDB\BSON\Javascript::getCode »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Construct a new Javascript

MongoDB\BSON\Javascript::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Javascript::__construct — Construct a new Javascript

Beschreibung

final public MongoDB\BSON\Javascript::__construct ( string $code , array|object $scope = ? )

Parameter-Liste

code (string)

Javascript code.

scope (array|object)

Javascript scope.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if code contains null bytes.

Changelog

Version | Beschreibung
PECL mongodb 1.2.0 | MongoDB\Driver\Exception\InvalidArgumentException is thrown if code contains null bytes. Previously, values would be truncated at the first null byte.

Beispiele

Beispiel #1 MongoDB\BSON\Javascript::__construct() example

<?php

$code = new MongoDB\BSON\Javascript('function() { return 1; }');
var_dump($code);

$codews = new MongoDB\BSON\Javascript('function() { return foo; }', ['foo' => 'bar']);
var_dump($codews);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(MongoDB\BSON\Javascript)#1 (2) {
  ["javascript"]=>
  string(24) "function() { return 1; }"
  ["scope"]=>
  object(stdClass)#2 (0) {
  }
}
object(MongoDB\BSON\Javascript)#2 (2) {
  ["javascript"]=>
  string(26) "function() { return foo; }"
  ["scope"]=>
  object(stdClass)#1 (1) {
    ["foo"]=>
    string(3) "bar"
  }
}

Siehe auch

  • » BSON Types


Returns the Javascript's code

  • « MongoDB\BSON\Javascript::__construct
  • MongoDB\BSON\Javascript::getScope »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Returns the Javascript's code

MongoDB\BSON\Javascript::getCode

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::getCode — Returns the Javascript's code

Beschreibung

final public MongoDB\BSON\Javascript::getCode ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the Javascript's code.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\BSON\Javascript::getCode() example

<?php

$js = new MongoDB\BSON\Javascript('function foo(bar) { return bar; }');
var_dump($js->getCode());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(33) "function foo(bar) { return bar; }"

Siehe auch

  • » BSON Types


Returns the Javascript's scope document

  • « MongoDB\BSON\Javascript::getCode
  • MongoDB\BSON\Javascript::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Returns the Javascript's scope document

MongoDB\BSON\Javascript::getScope

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::getScope — Returns the Javascript's scope document

Beschreibung

final public MongoDB\BSON\Javascript::getScope ( ) : object|null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the Javascript's scope document, or null if the is no scope.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\BSON\Javascript::getScope() example

<?php

$js = new MongoDB\BSON\Javascript('function foo(bar) { return bar; }');
var_dump($js->getScope());

$js = new MongoDB\BSON\Javascript('function foo() { return foo; }', ['foo' => 42]);
var_dump($js->getScope());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
object(stdClass)#1 (1) {
  ["foo"]=>
  int(42)
}

Siehe auch

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Javascript::getScope
  • MongoDB\BSON\Javascript::serialize »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Javascript::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\Javascript::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Javascript.

Hinweis: The output is consistent with the MongoDB\BSON\toJSON() function, which uses the driver-specific legacy extended JSON format. This does not necessarily match the » relaxed or » canonical extended JSON representations used by MongoDB\BSON\toRelaxedExtendedJSON() and MongoDB\BSON\toCanonicalExtendedJSON(), respectively.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Javascript

  • « MongoDB\BSON\Javascript::jsonSerialize
  • MongoDB\BSON\Javascript::__toString »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Serialize a Javascript

MongoDB\BSON\Javascript::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::serialize — Serialize a Javascript

Beschreibung

final public MongoDB\BSON\Javascript::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\Javascript.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\Javascript::unserialize() - Unserialize a Javascript
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Returns the Javascript's code

  • « MongoDB\BSON\Javascript::serialize
  • MongoDB\BSON\Javascript::unserialize »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Returns the Javascript's code

MongoDB\BSON\Javascript::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::__toString — Returns the Javascript's code

Beschreibung

final public MongoDB\BSON\Javascript::__toString ( ) : string

Diese Methode ist ein Alias für: MongoDB\BSON\Javascript::getCode().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the Javascript's code.

Beispiele

Beispiel #1 MongoDB\BSON\Javascript::__toString() example

<?php

var_dump((string) new MongoDB\BSON\Javascript('function foo(bar) { return bar; }'));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(33) "function foo(bar) { return bar; }"

Siehe auch

  • MongoDB\BSON\Javascript::getCode() - Returns the Javascript's code
  • » BSON Types


Unserialize a Javascript

  • « MongoDB\BSON\Javascript::__toString
  • MongoDB\BSON\MaxKey »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Unserialize a Javascript

MongoDB\BSON\Javascript::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::unserialize — Unserialize a Javascript

Beschreibung

final public MongoDB\BSON\Javascript::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\Javascript.

Rückgabewerte

Returns the unserialized MongoDB\BSON\Javascript.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Siehe auch

  • MongoDB\BSON\Javascript::serialize() - Serialize a Javascript
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\BSON\MaxKey class

(mongodb >=1.0.0)

Einführung

Special BSON type which compares higher than all other possible BSON element values.

Hinweis: This is an internal MongoDB type used for indexing and sharding.

Klassenbeschreibung

final MongoDB\BSON\MaxKey implements MongoDB\BSON\MaxKeyInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Methoden */
final public __construct ( )
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public unserialize ( string $serialized ) : void
}

Changelog

Version | Beschreibung
PECL mongodb 1.3.0 | Implements MongoDB\BSON\MaxKeyInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Inhaltsverzeichnis

  • MongoDB\BSON\MaxKey::__construct — Construct a new MaxKey
  • MongoDB\BSON\MaxKey::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\MaxKey::serialize — Serialize a MaxKey
  • MongoDB\BSON\MaxKey::unserialize — Unserialize a MaxKey


Construct a new MaxKey

  • « MongoDB\BSON\MaxKey
  • MongoDB\BSON\MaxKey::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Construct a new MaxKey

MongoDB\BSON\MaxKey::__construct

(mongodb >=1.0.0)

MongoDB\BSON\MaxKey::__construct — Construct a new MaxKey

Beschreibung

final public MongoDB\BSON\MaxKey::__construct ( )

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\BSON\MaxKey::__construct() example

<?php

var_dump(new MongoDB\BSON\MaxKey());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(MongoDB\BSON\MaxKey)#1 (0) {
}

Siehe auch

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\MaxKey::__construct
  • MongoDB\BSON\MaxKey::serialize »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Returns a representation that can be converted to JSON

MongoDB\BSON\MaxKey::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\MaxKey::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\MaxKey::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\MaxKey.

Hinweis: The output is consistent with the MongoDB\BSON\toJSON() function, which uses the driver-specific legacy extended JSON format. This does not necessarily match the » relaxed or » canonical extended JSON representations used by MongoDB\BSON\toRelaxedExtendedJSON() and MongoDB\BSON\toCanonicalExtendedJSON(), respectively.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a MaxKey

  • « MongoDB\BSON\MaxKey::jsonSerialize
  • MongoDB\BSON\MaxKey::unserialize »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Serialize a MaxKey

MongoDB\BSON\MaxKey::serialize

(mongodb >=1.2.0)

MongoDB\BSON\MaxKey::serialize — Serialize a MaxKey

Beschreibung

final public MongoDB\BSON\MaxKey::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\MaxKey.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\MaxKey::unserialize() - Unserialize a MaxKey
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Unserialize a MaxKey

  • « MongoDB\BSON\MaxKey::serialize
  • MongoDB\BSON\MinKey »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Unserialize a MaxKey

MongoDB\BSON\MaxKey::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\MaxKey::unserialize — Unserialize a MaxKey

Beschreibung

final public MongoDB\BSON\MaxKey::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\MaxKey.

Rückgabewerte

Returns the unserialized MongoDB\BSON\MaxKey.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\MaxKey::serialize() - Serialize a MaxKey
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\BSON\MinKey class

(mongodb >=1.0.0)

Einführung

Special BSON type which compares lower than all other possible BSON element values.

Hinweis: This is an internal MongoDB type used for indexing and sharding.

Klassenbeschreibung

final MongoDB\BSON\MinKey implements MongoDB\BSON\MinKeyInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Methoden */
final public __construct ( )
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public unserialize ( string $serialized ) : void
}

Changelog

Version | Beschreibung
PECL mongodb 1.3.0 | Implements MongoDB\BSON\MinKeyInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Inhaltsverzeichnis

  • MongoDB\BSON\MinKey::__construct — Construct a new MinKey
  • MongoDB\BSON\MinKey::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\MinKey::serialize — Serialize a MinKey
  • MongoDB\BSON\MinKey::unserialize — Unserialize a MinKey


Construct a new MinKey

  • « MongoDB\BSON\MinKey
  • MongoDB\BSON\MinKey::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Construct a new MinKey

MongoDB\BSON\MinKey::__construct

(mongodb >=1.0.0)

MongoDB\BSON\MinKey::__construct — Construct a new MinKey

Beschreibung

final public MongoDB\BSON\MinKey::__construct ( )

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\BSON\MinKey::__construct() example

<?php

var_dump(new MongoDB\BSON\MinKey());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(MongoDB\BSON\MinKey)#1 (0) {
}

Siehe auch

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\MinKey::__construct
  • MongoDB\BSON\MinKey::serialize »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Returns a representation that can be converted to JSON

MongoDB\BSON\MinKey::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\MinKey::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\MinKey::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\MinKey.

Hinweis: The output is consistent with the MongoDB\BSON\toJSON() function, which uses the driver-specific legacy extended JSON format. This does not necessarily match the » relaxed or » canonical extended JSON representations used by MongoDB\BSON\toRelaxedExtendedJSON() and MongoDB\BSON\toCanonicalExtendedJSON(), respectively.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a MinKey

  • « MongoDB\BSON\MinKey::jsonSerialize
  • MongoDB\BSON\MinKey::unserialize »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Serialize a MinKey

MongoDB\BSON\MinKey::serialize

(mongodb >=1.2.0)

MongoDB\BSON\MinKey::serialize — Serialize a MinKey

Beschreibung

final public MongoDB\BSON\MinKey::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\MinKey.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\MinKey::unserialize() - Unserialize a MinKey
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Unserialize a MinKey

  • « MongoDB\BSON\MinKey::serialize
  • MongoDB\BSON\ObjectId »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Unserialize a MinKey

MongoDB\BSON\MinKey::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\MinKey::unserialize — Unserialize a MinKey

Beschreibung

final public MongoDB\BSON\MinKey::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\MinKey.

Rückgabewerte

Returns the unserialized MongoDB\BSON\MinKey.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\MinKey::serialize() - Serialize a MinKey
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\BSON\ObjectId class

(mongodb >=1.0.0)

Einführung

BSON type for an » ObjectId. The value consists of 12 bytes, where the first four bytes are a timestamp that reflect the ObjectId's creation. Specifically, the value consists of:

  • a 4-byte value representing the seconds since the Unix epoch,
  • a 5-byte random number unique to a machine and process, and
  • a 3-byte counter, starting with a random value.

In MongoDB, each document stored in a collection requires a unique _id field that acts as a primary key. If an inserted document omits the _id field, the driver automatically generates an ObjectId for the _id field.

Using ObjectIds for the _id field provides the following additional benefits:

  • The creation time of the ObjectId may be accessed using the MongoDB\BSON\ObjectId::getTimestamp() method.
  • Sorting on an _id field that stores ObjectId values is roughly equivalent to sorting by creation time.

Klassenbeschreibung

final MongoDB\BSON\ObjectId implements MongoDB\BSON\ObjectIdInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Methoden */
final public __construct ( string $id = ? )
final public getTimestamp ( ) : int
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public __toString ( ) : string
final public unserialize ( string $serialized ) : void
}

Changelog

Version | Beschreibung
PECL mongodb 1.3.0 | Renamed from MongoDB\BSON\ObjectID to MongoDB\BSON\ObjectId. Implements MongoDB\BSON\ObjectIdInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Inhaltsverzeichnis

  • MongoDB\BSON\ObjectId::__construct — Construct a new ObjectId
  • MongoDB\BSON\ObjectId::getTimestamp — Returns the timestamp component of this ObjectId
  • MongoDB\BSON\ObjectId::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\ObjectId::serialize — Serialize an ObjectId
  • MongoDB\BSON\ObjectId::__toString — Returns the hexidecimal representation of this ObjectId
  • MongoDB\BSON\ObjectId::unserialize — Unserialize an ObjectId


Construct a new ObjectId

  • « MongoDB\BSON\ObjectId
  • MongoDB\BSON\ObjectId::getTimestamp »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Construct a new ObjectId

MongoDB\BSON\ObjectId::__construct

(mongodb >=1.0.0)

MongoDB\BSON\ObjectId::__construct — Construct a new ObjectId

Beschreibung

final public MongoDB\BSON\ObjectId::__construct ( string $id = ? )

Parameter-Liste

id (string)

A 24-character hexadecimal string. If not provided, the driver will generate an ObjectId.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if id is not a 24-character hexadecimal string.

Beispiele

Beispiel #1 MongoDB\BSON\ObjectId::__construct() example

<?php

var_dump(new MongoDB\BSON\ObjectId());

var_dump(new MongoDB\BSON\ObjectId('000000000000000000000001'));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MongoDB\BSON\ObjectId)#1 (1) {
  ["oid"]=>
  string(24) "56732d3dda14d81214634921"
}
object(MongoDB\BSON\ObjectId)#1 (1) {
  ["oid"]=>
  string(24) "000000000000000000000001"
}

Siehe auch

  • » ObjectId Reference
  • » BSON Types: ObjectId


Returns the timestamp component of this ObjectId

  • « MongoDB\BSON\ObjectId::__construct
  • MongoDB\BSON\ObjectId::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Returns the timestamp component of this ObjectId

MongoDB\BSON\ObjectId::getTimestamp

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::getTimestamp — Returns the timestamp component of this ObjectId

Beschreibung

final public MongoDB\BSON\ObjectId::getTimestamp ( ) : int

The timestamp component of an ObjectId is its most significant 32 bits, which denotes the number of seconds since the Unix epoch. This value is read as an unsigned 32-bit integer with big-endian byte order.

Hinweis: Because PHP's integer type is signed, some values returned by this method may appear as negative integers on 32-bit platforms. The "%u" formatter of sprintf() may be used to obtain a string representation of the unsigned decimal value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the timestamp component of this ObjectId.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\BSON\ObjectId::getTimestamp() example

<?php

var_dump((new MongoDB\BSON\ObjectId())->getTimestamp());

var_dump((new MongoDB\BSON\ObjectId('0000002a0000000000000000'))->getTimestamp());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

integer(1484854719)
integer(42)

Siehe auch

  • » ObjectId Reference
  • » BSON Types: ObjectId


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\ObjectId::getTimestamp
  • MongoDB\BSON\ObjectId::serialize »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Returns a representation that can be converted to JSON

MongoDB\BSON\ObjectId::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\ObjectId::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\ObjectId.

Hinweis: The output is consistent with the MongoDB\BSON\toJSON() function, which uses the driver-specific legacy extended JSON format. This does not necessarily match the » relaxed or » canonical extended JSON representations used by MongoDB\BSON\toRelaxedExtendedJSON() and MongoDB\BSON\toCanonicalExtendedJSON(), respectively.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize an ObjectId

  • « MongoDB\BSON\ObjectId::jsonSerialize
  • MongoDB\BSON\ObjectId::__toString »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Serialize an ObjectId

MongoDB\BSON\ObjectId::serialize

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::serialize — Serialize an ObjectId

Beschreibung

final public MongoDB\BSON\ObjectId::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\ObjectId.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\ObjectId::unserialize() - Unserialize an ObjectId
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Returns the hexidecimal representation of this ObjectId

  • « MongoDB\BSON\ObjectId::serialize
  • MongoDB\BSON\ObjectId::unserialize »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Returns the hexidecimal representation of this ObjectId

MongoDB\BSON\ObjectId::__toString

(mongodb >=1.0.0)

MongoDB\BSON\ObjectId::__toString — Returns the hexidecimal representation of this ObjectId

Beschreibung

final public MongoDB\BSON\ObjectId::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the hexidecimal representation of this ObjectId.

Beispiele

Beispiel #1 MongoDB\BSON\ObjectId::__toString() example

<?php

var_dump((string) new MongoDB\BSON\ObjectId());
var_dump((string) new MongoDB\BSON\ObjectId('000000000000000000000001'));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(24) "56731b49da14d8747d701211"
string(24) "000000000000000000000001"

Siehe auch

  • » ObjectId Reference
  • » BSON Types: ObjectId


Unserialize an ObjectId

  • « MongoDB\BSON\ObjectId::__toString
  • MongoDB\BSON\Regex »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Unserialize an ObjectId

MongoDB\BSON\ObjectId::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::unserialize — Unserialize an ObjectId

Beschreibung

final public MongoDB\BSON\ObjectId::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\ObjectId.

Rückgabewerte

Returns the unserialized MongoDB\BSON\ObjectId.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Siehe auch

  • MongoDB\BSON\ObjectId::serialize() - Serialize an ObjectId
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\BSON\Regex class

(mongodb >=1.0.0)

Einführung

BSON type for a regular expression pattern and optional » flags.

Hinweis: This BSON type is mainly used when querying the database. Alternatively, the » $regex query operator may be used.

Klassenbeschreibung

final MongoDB\BSON\Regex implements MongoDB\BSON\RegexInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Methoden */
final public __construct ( string $pattern , string $flags = "" )
final public getFlags ( ) : string
final public getPattern ( ) : string
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public __toString ( ) : string
final public unserialize ( string $serialized ) : void
}

Changelog

Version | Beschreibung
PECL mongodb 1.3.0 | Implements MongoDB\BSON\RegexInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Inhaltsverzeichnis

  • MongoDB\BSON\Regex::__construct — Construct a new Regex
  • MongoDB\BSON\Regex::getFlags — Returns the Regex's flags
  • MongoDB\BSON\Regex::getPattern — Returns the Regex's pattern
  • MongoDB\BSON\Regex::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Regex::serialize — Serialize a Regex
  • MongoDB\BSON\Regex::__toString — Returns the string representation of this Regex
  • MongoDB\BSON\Regex::unserialize — Unserialize a Regex


Construct a new Regex

  • « MongoDB\BSON\Regex
  • MongoDB\BSON\Regex::getFlags »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Construct a new Regex

MongoDB\BSON\Regex::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Regex::__construct — Construct a new Regex

Beschreibung

final public MongoDB\BSON\Regex::__construct ( string $pattern , string $flags = "" )

Parameter-Liste

pattern (string)

The regular expression pattern.

Hinweis: The pattern should not be wrapped with delimiter characters.

flags (string)

The » regular expression flags. Characters in this argument will be sorted alphabetically.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if pattern or flags contain null bytes.

Changelog

Version Beschreibung
PECL mongodb 1.2.0

The flags argument is optional and defaults to an empty string.

Characters in the flags argument will be sorted alphabetically when a Regex is constructed. Previously, the characters were stored in the order provided.

MongoDB\Driver\Exception\InvalidArgumentException is thrown if pattern or flags contain null bytes. Previously, values would be truncated at the first null byte.

Beispiele

Beispiel #1 MongoDB\BSON\Regex::__construct() example

<?php

$regex = new MongoDB\BSON\Regex('^foo', 'i');
var_dump($regex);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(MongoDB\BSON\Regex)#1 (2) {
  ["pattern"]=>
  string(4) "^foo"
  ["flags"]=>
  string(1) "i"
}

Siehe auch

  • » BSON Types
  • » Supported regular expression flags


Returns the Regex's flags

  • « MongoDB\BSON\Regex::__construct
  • MongoDB\BSON\Regex::getPattern »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Returns the Regex's flags

MongoDB\BSON\Regex::getFlags

(mongodb >=1.0.0)

MongoDB\BSON\Regex::getFlags — Returns the Regex's flags

Beschreibung

final public MongoDB\BSON\Regex::getFlags ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the Regex's flags.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\BSON\Regex::getFlags() example

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump($regex->getFlags());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "i"

Siehe auch

  • » BSON Types
  • » Supported regular expression flags


Returns the Regex's pattern

  • « MongoDB\BSON\Regex::getFlags
  • MongoDB\BSON\Regex::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Returns the Regex's pattern

MongoDB\BSON\Regex::getPattern

(mongodb >=1.0.0)

MongoDB\BSON\Regex::getPattern — Returns the Regex's pattern

Beschreibung

final public MongoDB\BSON\Regex::getPattern ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the Regex's pattern.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\BSON\Regex::getPattern() example

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump($regex->getPattern());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(5) "regex"

Siehe auch

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Regex::getPattern
  • MongoDB\BSON\Regex::serialize »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Regex::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Regex::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\Regex::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Regex.

Hinweis: The output is consistent with the MongoDB\BSON\toJSON() function, which uses the driver-specific legacy extended JSON format. This does not necessarily match the » relaxed or » canonical extended JSON representations used by MongoDB\BSON\toRelaxedExtendedJSON() and MongoDB\BSON\toCanonicalExtendedJSON(), respectively.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Regex

  • « MongoDB\BSON\Regex::jsonSerialize
  • MongoDB\BSON\Regex::__toString »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Serialize a Regex

MongoDB\BSON\Regex::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Regex::serialize — Serialize a Regex

Beschreibung

final public MongoDB\BSON\Regex::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\Regex.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\Regex::unserialize() - Unserialize a Regex
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Returns the string representation of this Regex

  • « MongoDB\BSON\Regex::serialize
  • MongoDB\BSON\Regex::unserialize »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Returns the string representation of this Regex

MongoDB\BSON\Regex::__toString

(mongodb >=1.0.0)

MongoDB\BSON\Regex::__toString — Returns the string representation of this Regex

Beschreibung

final public MongoDB\BSON\Regex::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of this Regex.

Beispiele

Beispiel #1 MongoDB\BSON\Regex::__toString() example

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump((string) $regex);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(8) "/regex/i"

Siehe auch

  • » BSON Types


Unserialize a Regex

  • « MongoDB\BSON\Regex::__toString
  • MongoDB\BSON\Timestamp »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Unserialize a Regex

MongoDB\BSON\Regex::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Regex::unserialize — Unserialize a Regex

Beschreibung

final public MongoDB\BSON\Regex::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\Regex.

Rückgabewerte

Returns the unserialized MongoDB\BSON\Regex.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Siehe auch

  • MongoDB\BSON\Regex::serialize() - Serialize a Regex
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\BSON\Timestamp class

(mongodb >=1.0.0)

Einführung

Represents a » BSON timestamp, The value consists of a 4-byte timestamp (i.e. seconds since the epoch) and a 4-byte increment.

Hinweis: This is an internal MongoDB type used for replication and sharding. It is not intended for general date storage (MongoDB\BSON\UTCDateTime should be used instead).

Klassenbeschreibung

final MongoDB\BSON\Timestamp implements MongoDB\BSON\TimestampInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Methoden */
final public __construct ( int $increment , int $timestamp )
final public getIncrement ( ) : int
final public getTimestamp ( ) : int
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public __toString ( ) : string
final public unserialize ( string $serialized ) : void
}

Changelog

Version | Beschreibung
PECL mongodb 1.3.0 | Implements MongoDB\BSON\TimestampInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Inhaltsverzeichnis

  • MongoDB\BSON\Timestamp::__construct — Construct a new Timestamp
  • MongoDB\BSON\Timestamp::getIncrement — Returns the increment component of this Timestamp
  • MongoDB\BSON\Timestamp::getTimestamp — Returns the timestamp component of this Timestamp
  • MongoDB\BSON\Timestamp::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Timestamp::serialize — Serialize a Timestamp
  • MongoDB\BSON\Timestamp::__toString — Returns the string representation of this Timestamp
  • MongoDB\BSON\Timestamp::unserialize — Unserialize a Timestamp


Construct a new Timestamp

  • « MongoDB\BSON\Timestamp
  • MongoDB\BSON\Timestamp::getIncrement »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Construct a new Timestamp

MongoDB\BSON\Timestamp::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Timestamp::__construct — Construct a new Timestamp

Beschreibung

final public MongoDB\BSON\Timestamp::__construct ( int $increment , int $timestamp )

Parameter-Liste

increment (int)

32-bit integer denoting the incrementing ordinal for operations within a given second.

timestamp (int)

32-bit integer denoting seconds since the Unix epoch.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\BSON\Timestamp::__construct() example

<?php

$timestamp = new MongoDB\BSON\Timestamp(1234, 5678);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(MongoDB\BSON\Timestamp)#1 (2) {
  ["increment"]=>
  int(1234)
  ["timestamp"]=>
  int(5678)
}

Siehe auch

  • » BSON Types: Timestamps


Returns the increment component of this Timestamp

  • « MongoDB\BSON\Timestamp::__construct
  • MongoDB\BSON\Timestamp::getTimestamp »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Returns the increment component of this Timestamp

MongoDB\BSON\Timestamp::getIncrement

(mongodb >=1.3.0)

MongoDB\BSON\Timestamp::getIncrement — Returns the increment component of this Timestamp

Beschreibung

final public MongoDB\BSON\Timestamp::getIncrement ( ) : int

The increment component of a Timestamp is its least significant 32 bits, whichs denotes the incrementing ordinal for operations within a given second. This value is read as an unsigned 32-bit integer with big-endian byte order.

Hinweis: Because PHP's integer type is signed, some values returned by this method may appear as negative integers on 32-bit platforms. The "%u" formatter of sprintf() may be used to obtain a string representation of the unsigned decimal value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the increment component of this Timestamp.

Warnung

On 32-bit systems this method may return a negative number. Although the increment and timestamp parts of the BSON timestamp type consists of two unsigned 32-bit values, PHP can not represent these on 32-bit platforms.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • » BSON Types: Timestamps


Returns the timestamp component of this Timestamp

  • « MongoDB\BSON\Timestamp::getIncrement
  • MongoDB\BSON\Timestamp::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Returns the timestamp component of this Timestamp

MongoDB\BSON\Timestamp::getTimestamp

(mongodb >=1.3.0)

MongoDB\BSON\Timestamp::getTimestamp — Returns the timestamp component of this Timestamp

Beschreibung

final public MongoDB\BSON\Timestamp::getTimestamp ( ) : int

The timestamp component of a Timestamp is its most significant 32 bits, which denotes the number of seconds since the Unix epoch. This value is read as an unsigned 32-bit integer with big-endian byte order.

Hinweis: Because PHP's integer type is signed, some values returned by this method may appear as negative integers on 32-bit platforms. The "%u" formatter of sprintf() may be used to obtain a string representation of the unsigned decimal value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the timestamp component of this Timestamp.

Warnung

On 32-bit systems this method may return a negative number. Although the increment and timestamp parts of the BSON timestamp type consists of two unsigned 32-bit values, PHP can not represent these on 32-bit platforms.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • » BSON Types: Timestamps


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Timestamp::getTimestamp
  • MongoDB\BSON\Timestamp::serialize »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Timestamp::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Timestamp::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\Timestamp::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Timestamp.

Hinweis: The output is consistent with the MongoDB\BSON\toJSON() function, which uses the driver-specific legacy extended JSON format. This does not necessarily match the » relaxed or » canonical extended JSON representations used by MongoDB\BSON\toRelaxedExtendedJSON() and MongoDB\BSON\toCanonicalExtendedJSON(), respectively.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Timestamp

  • « MongoDB\BSON\Timestamp::jsonSerialize
  • MongoDB\BSON\Timestamp::__toString »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Serialize a Timestamp

MongoDB\BSON\Timestamp::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Timestamp::serialize — Serialize a Timestamp

Beschreibung

final public MongoDB\BSON\Timestamp::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\Timestamp.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\Timestamp::unserialize() - Unserialize a Timestamp
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Returns the string representation of this Timestamp

  • « MongoDB\BSON\Timestamp::serialize
  • MongoDB\BSON\Timestamp::unserialize »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Returns the string representation of this Timestamp

MongoDB\BSON\Timestamp::__toString

(mongodb >=1.0.0)

MongoDB\BSON\Timestamp::__toString — Returns the string representation of this Timestamp

Beschreibung

final public MongoDB\BSON\Timestamp::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of this Timestamp.

Beispiele

Beispiel #1 MongoDB\BSON\Timestamp::__toString() example

<?php

$timestamp = new MongoDB\BSON\Timestamp(1234, 5678);
var_dump((string) $timestamp);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(11) "[1234:5678]"

Siehe auch

  • » BSON Types: Timestamps


Unserialize a Timestamp

  • « MongoDB\BSON\Timestamp::__toString
  • MongoDB\BSON\UTCDateTime »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Unserialize a Timestamp

MongoDB\BSON\Timestamp::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Timestamp::unserialize — Unserialize a Timestamp

Beschreibung

final public MongoDB\BSON\Timestamp::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\Timestamp.

Rückgabewerte

Returns the unserialized MongoDB\BSON\Timestamp.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Siehe auch

  • MongoDB\BSON\Timestamp::serialize() - Serialize a Timestamp
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\BSON\UTCDateTime class

(mongodb >=1.0.0)

Einführung

Represents a » BSON date. The value is a 64-bit integer that represents the number of milliseconds since the Unix epoch (Jan 1, 1970). Negative values represent dates before 1970.

Klassenbeschreibung

final MongoDB\BSON\UTCDateTime implements MongoDB\BSON\UTCDateTimeInterface , MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Methoden */
final public __construct ( int|float|string|DateTimeInterface $milliseconds = null )
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public toDateTime ( ) : DateTime
final public __toString ( ) : string
final public unserialize ( string $serialized ) : void
}

Changelog

Version | Beschreibung
PECL mongodb 1.3.0 | Implements MongoDB\BSON\UTCDateTimeInterface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Inhaltsverzeichnis

  • MongoDB\BSON\UTCDateTime::__construct — Construct a new UTCDateTime
  • MongoDB\BSON\UTCDateTime::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\UTCDateTime::serialize — Serialize a UTCDateTime
  • MongoDB\BSON\UTCDateTime::toDateTime — Returns the DateTime representation of this UTCDateTime
  • MongoDB\BSON\UTCDateTime::__toString — Returns the string representation of this UTCDateTime
  • MongoDB\BSON\UTCDateTime::unserialize — Unserialize a UTCDateTime


Construct a new UTCDateTime

  • « MongoDB\BSON\UTCDateTime
  • MongoDB\BSON\UTCDateTime::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Construct a new UTCDateTime

MongoDB\BSON\UTCDateTime::__construct

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::__construct — Construct a new UTCDateTime

Beschreibung

final public MongoDB\BSON\UTCDateTime::__construct ( int|float|string|DateTimeInterface $milliseconds = null )

Parameter-Liste

milliseconds (int|float|string|DateTimeInterface)

Number of milliseconds since the Unix epoch (Jan 1, 1970). Negative values represent dates before 1970. This value may be provided as a 64-bit int. For compatibility on 32-bit systems, this parameter may also be provided as a float or string.

If the argument is a DateTimeInterface, the number of milliseconds since the Unix epoch will be derived from that value. Note that in versions of PHP versions before 7.1.0, DateTime and DateTimeImmutable objects constructed from the current time did not incorporate sub-second precision.

If this argument is null, the current time will be used by default.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Changelog

Version | Beschreibung
PECL mongodb 1.2.0 | The milliseconds argument is optional and defaults to null (i.e. current time). The argument also accepts a DateTimeInterface, which may be used to derive the number of milliseconds since the Unix epoch. Previously, only int, float, and string types were accepted.

Beispiele

Beispiel #1 MongoDB\BSON\UTCDateTime::__construct() example

<?php

var_dump(new MongoDB\BSON\UTCDateTime);

var_dump(new MongoDB\BSON\UTCDateTime(new DateTime));

var_dump(new MongoDB\BSON\UTCDateTime(1416445411987));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  string(13) "1484852905560"
}
object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  string(13) "1484852905560"
}
object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  string(13) "1416445411987"
}

Siehe auch

  • » BSON Types: Date


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\UTCDateTime::__construct
  • MongoDB\BSON\UTCDateTime::serialize »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Returns a representation that can be converted to JSON

MongoDB\BSON\UTCDateTime::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\UTCDateTime::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\UTCDateTime::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\UTCDateTime.

Hinweis: The output is consistent with the MongoDB\BSON\toJSON() function, which uses the driver-specific legacy extended JSON format. This does not necessarily match the » relaxed or » canonical extended JSON representations used by MongoDB\BSON\toRelaxedExtendedJSON() and MongoDB\BSON\toCanonicalExtendedJSON(), respectively.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a UTCDateTime

  • « MongoDB\BSON\UTCDateTime::jsonSerialize
  • MongoDB\BSON\UTCDateTime::toDateTime »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Serialize a UTCDateTime

MongoDB\BSON\UTCDateTime::serialize

(mongodb >=1.2.0)

MongoDB\BSON\UTCDateTime::serialize — Serialize a UTCDateTime

Beschreibung

final public MongoDB\BSON\UTCDateTime::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\UTCDateTime.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\UTCDateTime::unserialize() - Unserialize a UTCDateTime
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Returns the DateTime representation of this UTCDateTime

  • « MongoDB\BSON\UTCDateTime::serialize
  • MongoDB\BSON\UTCDateTime::__toString »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Returns the DateTime representation of this UTCDateTime

MongoDB\BSON\UTCDateTime::toDateTime

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::toDateTime — Returns the DateTime representation of this UTCDateTime

Beschreibung

final public MongoDB\BSON\UTCDateTime::toDateTime ( ) : DateTime

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the DateTime representation of this UTCDateTime. The returned DateTime will use the UTC time zone.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Beispiele

Beispiel #1 MongoDB\BSON\UTCDatetime::toDateTime() example

<?php

$utcdatetime = new MongoDB\BSON\UTCDateTime(1416445411987);
$datetime = $utcdatetime->toDateTime();
var_dump($datetime->format('r'));
var_dump($datetime->format('U.u'));
var_dump($datetime->getTimezone());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(31) "Thu, 20 Nov 2014 01:03:31 +0000"
string(17) "1416445411.987000"
object(DateTimeZone)#3 (2) {
  ["timezone_type"]=>
  int(1)
  ["timezone"]=>
  string(6) "+00:00"
}

Siehe auch

  • » BSON Types: Date


Returns the string representation of this UTCDateTime

  • « MongoDB\BSON\UTCDateTime::toDateTime
  • MongoDB\BSON\UTCDateTime::unserialize »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Returns the string representation of this UTCDateTime

MongoDB\BSON\UTCDateTime::__toString

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::__toString — Returns the string representation of this UTCDateTime

Beschreibung

final public MongoDB\BSON\UTCDateTime::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of this UTCDateTime.

Beispiele

Beispiel #1 MongoDB\BSON\UTCDateTime::__toString() example

<?php

$utcdatetime = new MongoDB\BSON\UTCDateTime(1416445411987);
var_dump((string) $utcdatetime);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(13) "1416445411987"

Siehe auch

  • » BSON Types: Date


Unserialize a UTCDateTime

  • « MongoDB\BSON\UTCDateTime::__toString
  • MongoDB\BSON\Type »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Unserialize a UTCDateTime

MongoDB\BSON\UTCDateTime::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\UTCDateTime::unserialize — Unserialize a UTCDateTime

Beschreibung

final public MongoDB\BSON\UTCDateTime::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\UTCDateTime.

Rückgabewerte

Returns the unserialized MongoDB\BSON\UTCDateTime.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Siehe auch

  • MongoDB\BSON\UTCDateTime::serialize() - Serialize a UTCDateTime
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\BSON\Type interface

(mongodb >=1.0.0)

Einführung

Abstract base interface that should not be implemented directly.

Interface-Übersicht

MongoDB\BSON\Type {
}

This interface has no methods. Its only purpose is to be the base interface for all BSON type classes.


The MongoDB\BSON\Persistable interface

(mongodb >=1.0.0)

Einführung

Classes may implement this interface to take advantage of automatic ODM (object document mapping) behavior in the driver. During serialization, the driver will inject a __pclass property containing the PHP class name into the data returned by MongoDB\BSON\Serializable::bsonSerialize(). During unserialization, the same __pclass property will then be used to infer the PHP class (independent of any type map configuration) to be constructed before MongoDB\BSON\Unserializable::bsonUnserialize() is invoked. See Persisting Data for additional information.

Hinweis: Even if MongoDB\BSON\Serializable::bsonSerialize() would return a sequential array, injection of the __pclass property will cause the object to be serialized as a BSON document.

Interface-Übersicht

MongoDB\BSON\Persistable implements MongoDB\BSON\Unserializable , MongoDB\BSON\Serializable {
/* Geerbte Methoden */
abstract public MongoDB\BSON\Serializable::bsonSerialize ( ) : array|object
abstract public MongoDB\BSON\Unserializable::bsonUnserialize ( array $data ) : void
}


The MongoDB\BSON\Serializable interface

(mongodb >=1.0.0)

Einführung

Classes that implement this interface may return data to be serialized as a BSON array or document in lieu of the object's public properties.

Interface-Übersicht

MongoDB\BSON\Serializable implements MongoDB\BSON\Type {
/* Methoden */
abstract public bsonSerialize ( ) : array|object
}

Inhaltsverzeichnis

  • MongoDB\BSON\Serializable::bsonSerialize — Provides an array or document to serialize as BSON


Provides an array or document to serialize as BSON

  • « MongoDB\BSON\Serializable
  • MongoDB\BSON\Unserializable »
  • PHP Manual
  • MongoDB\BSON\Serializable
  • Provides an array or document to serialize as BSON

MongoDB\BSON\Serializable::bsonSerialize

(mongodb >=1.0.0)

MongoDB\BSON\Serializable::bsonSerialize — Provides an array or document to serialize as BSON

Beschreibung

abstract public MongoDB\BSON\Serializable::bsonSerialize ( ) : array|object

Called during serialization of the object to BSON. The method must return an array or stdClass.

Root documents (e.g. a MongoDB\BSON\Serializable passed to MongoDB\BSON\fromPHP()) will always be serialized as a BSON document. For field values, associative arrays and stdClass instances will be serialized as a BSON document and sequential arrays (i.e. sequential, numeric indexes starting at 0) will be serialized as a BSON array.

Users are encouraged to include an _id property (e.g. a MongoDB\BSON\ObjectId initialized in your constructor) when returning data for a BSON root document; otherwise, the driver or database will need to generate a MongoDB\BSON\ObjectId when inserting or upserting the document, respectively.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array or stdClass to be serialized as a BSON array or document.

Beispiele

Beispiel #1 MongoDB\BSON\Serializable::bsonSerialize() returning an associative array for root document

<?php

class MyDocument implements MongoDB\BSON\Serializable
{
    private $id;

    function __construct()
    {
        $this->id = new MongoDB\BSON\ObjectId;
    }

    function bsonSerialize()
    {
        return ['_id' => $this->id, 'foo' => 'bar'];
    }
}

$bson = MongoDB\BSON\fromPHP(new MyDocument);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

{ "_id" : { "$oid" : "56cccdcada14d8755a58c591" }, "foo" : "bar" }

Beispiel #2 MongoDB\BSON\Serializable::bsonSerialize() returning a sequential array for root document

<?php

class MyArray implements MongoDB\BSON\Serializable
{
    function bsonSerialize()
    {
        return [1, 2, 3];
    }
}

$bson = MongoDB\BSON\fromPHP(new MyArray);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

{ "0" : 1, "1" : 2, "2" : 3 }

Beispiel #3 MongoDB\BSON\Serializable::bsonSerialize() returning an associative array for document field

<?php

class MyDocument implements MongoDB\BSON\Serializable
{
    function bsonSerialize()
    {
        return ['foo' => 'bar'];
    }
}

$value = ['document' => new MyDocument];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

{ "document" : { "foo" : "bar" } }

Beispiel #4 MongoDB\BSON\Serializable::bsonSerialize() returning a sequential array for document field

<?php

class MyArray implements MongoDB\BSON\Serializable
{
    function bsonSerialize()
    {
        return [1, 2, 3];
    }
}

$value = ['array' => new MyArray];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

{ "array" : [ 1, 2, 3 ] }

Siehe auch

  • MongoDB\BSON\Unserializable::bsonUnserialize() - Constructs the object from a BSON array or document
  • MongoDB\BSON\Persistable
  • Persisting Data


The MongoDB\BSON\Unserializable interface

(mongodb >=1.0.0)

Einführung

Classes that implement this interface may be specified in a type map for unserializing BSON arrays and documents (both root and embedded).

Interface-Übersicht

MongoDB\BSON\Unserializable {
/* Methoden */
abstract public bsonUnserialize ( array $data ) : void
}

Inhaltsverzeichnis

  • MongoDB\BSON\Unserializable::bsonUnserialize — Constructs the object from a BSON array or document


Constructs the object from a BSON array or document

  • « MongoDB\BSON\Unserializable
  • MongoDB\BSON\BinaryInterface »
  • PHP Manual
  • MongoDB\BSON\Unserializable
  • Constructs the object from a BSON array or document

MongoDB\BSON\Unserializable::bsonUnserialize

(mongodb >=1.0.0)

MongoDB\BSON\Unserializable::bsonUnserialize — Constructs the object from a BSON array or document

Beschreibung

abstract public MongoDB\BSON\Unserializable::bsonUnserialize ( array $data ) : void

Called during unserialization of the object from BSON. The properties of the BSON array or document will be passed to the method as an array.

Remember to check for an _id property when handling data from a BSON document.

Hinweis: This method acts as the constructor of the object. The __construct() method will not be called after this method.

Parameter-Liste

data (array)

Properties within the BSON array or document.

Rückgabewerte

The return value from this method is ignored.

Beispiele

Beispiel #1 MongoDB\BSON\Unserializable::bsonUnserialize() example

<?php

class MyDocument implements MongoDB\BSON\Unserializable
{
    private $data = [];

    function bsonUnserialize(array $data)
    {
        $this->data = $data;
    }
}

$bson = MongoDB\BSON\fromJSON('{ "foo": "bar" }');
$value = MongoDB\BSON\toPHP($bson, ['root' => 'MyDocument']);
var_dump($value);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(MyDocument)#1 (1) {
  ["data":"MyDocument":private]=>
  array(1) {
    ["foo"]=>
    string(3) "bar"
  }
}

Siehe auch

  • MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON
  • MongoDB\BSON\Persistable
  • Persisting Data


The MongoDB\BSON\BinaryInterface interface

(mongodb >=1.3.0)

Einführung

This interface is implemented by MongoDB\BSON\Binary but may also be used for type-hinting and userland classes.

Klassenbeschreibung

MongoDB\BSON\BinaryInterface {
/* Methoden */
abstract public getData ( ) : string
abstract public getType ( ) : int
abstract public __toString ( ) : string
}

Inhaltsverzeichnis

  • MongoDB\BSON\BinaryInterface::getData — Returns the BinaryInterface's data
  • MongoDB\BSON\BinaryInterface::getType — Returns the BinaryInterface's type
  • MongoDB\BSON\BinaryInterface::__toString — Returns the BinaryInterface's data


Returns the BinaryInterface's data

  • « MongoDB\BSON\BinaryInterface
  • MongoDB\BSON\BinaryInterface::getType »
  • PHP Manual
  • MongoDB\BSON\BinaryInterface
  • Returns the BinaryInterface's data

MongoDB\BSON\BinaryInterface::getData

(mongodb >=1.3.0)

MongoDB\BSON\BinaryInterface::getData — Returns the BinaryInterface's data

Beschreibung

abstract public MongoDB\BSON\BinaryInterface::getData ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the BinaryInterface's data.

Siehe auch

  • MongoDB\BSON\Binary::getData() - Returns the Binary's data


Returns the BinaryInterface's type

  • « MongoDB\BSON\BinaryInterface::getData
  • MongoDB\BSON\BinaryInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\BinaryInterface
  • Returns the BinaryInterface's type

MongoDB\BSON\BinaryInterface::getType

(mongodb >=1.3.0)

MongoDB\BSON\BinaryInterface::getType — Returns the BinaryInterface's type

Beschreibung

abstract public MongoDB\BSON\BinaryInterface::getType ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the BinaryInterface's type.

Siehe auch

  • MongoDB\BSON\Binary::getType() - Returns the Binary's type


Returns the BinaryInterface's data

  • « MongoDB\BSON\BinaryInterface::getType
  • MongoDB\BSON\Decimal128Interface »
  • PHP Manual
  • MongoDB\BSON\BinaryInterface
  • Returns the BinaryInterface's data

MongoDB\BSON\BinaryInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\BinaryInterface::__toString — Returns the BinaryInterface's data

Beschreibung

abstract public MongoDB\BSON\BinaryInterface::__toString ( ) : string

Diese Methode ist ein Alias für: MongoDB\BSON\BinaryInterface::getData().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the BinaryInterface's data.

Siehe auch

  • MongoDB\BSON\BinaryInterface::getData() - Returns the BinaryInterface's data
  • MongoDB\BSON\Binary::__toString() - Returns the Binary's data


The MongoDB\BSON\Decimal128Interface interface

(mongodb >=1.3.0)

Einführung

This interface is implemented by MongoDB\BSON\Decimal128 but may also be used for type-hinting and userland classes.

Klassenbeschreibung

MongoDB\BSON\Decimal128Interface {
/* Methoden */
abstract public __toString ( ) : string
}

Inhaltsverzeichnis

  • MongoDB\BSON\Decimal128Interface::__toString — Returns the string representation of this Decimal128Interface


Returns the string representation of this Decimal128Interface

  • « MongoDB\BSON\Decimal128Interface
  • MongoDB\BSON\JavascriptInterface »
  • PHP Manual
  • MongoDB\BSON\Decimal128Interface
  • Returns the string representation of this Decimal128Interface

MongoDB\BSON\Decimal128Interface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\Decimal128Interface::__toString — Returns the string representation of this Decimal128Interface

Beschreibung

abstract public MongoDB\BSON\Decimal128Interface::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of this Decimal128Interface.

Siehe auch

  • MongoDB\BSON\Decimal128::__toString() - Returns the string representation of this Decimal128


The MongoDB\BSON\JavascriptInterface interface

(mongodb >=1.3.0)

Einführung

This interface is implemented by MongoDB\BSON\Javascript but may also be used for type-hinting and userland classes.

Klassenbeschreibung

MongoDB\BSON\JavascriptInterface {
/* Methoden */
abstract public getCode ( ) : string
abstract public getScope ( ) : object|null
abstract public __toString ( ) : string
}

Inhaltsverzeichnis

  • MongoDB\BSON\JavascriptInterface::getCode — Returns the JavascriptInterface's code
  • MongoDB\BSON\JavascriptInterface::getScope — Returns the JavascriptInterface's scope document
  • MongoDB\BSON\JavascriptInterface::__toString — Returns the JavascriptInterface's code


Returns the JavascriptInterface's code

  • « MongoDB\BSON\JavascriptInterface
  • MongoDB\BSON\JavascriptInterface::getScope »
  • PHP Manual
  • MongoDB\BSON\JavascriptInterface
  • Returns the JavascriptInterface's code

MongoDB\BSON\JavascriptInterface::getCode

(mongodb >=1.3.0)

MongoDB\BSON\JavascriptInterface::getCode — Returns the JavascriptInterface's code

Beschreibung

abstract public MongoDB\BSON\JavascriptInterface::getCode ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the JavascriptInterface's code.

Siehe auch

  • MongoDB\BSON\Javascript::getCode() - Returns the Javascript's code


Returns the JavascriptInterface's scope document

  • « MongoDB\BSON\JavascriptInterface::getCode
  • MongoDB\BSON\JavascriptInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\JavascriptInterface
  • Returns the JavascriptInterface's scope document

MongoDB\BSON\JavascriptInterface::getScope

(mongodb >=1.3.0)

MongoDB\BSON\JavascriptInterface::getScope — Returns the JavascriptInterface's scope document

Beschreibung

abstract public MongoDB\BSON\JavascriptInterface::getScope ( ) : object|null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the JavascriptInterface's scope document.

Siehe auch

  • MongoDB\BSON\Javascript::getScope() - Returns the Javascript's scope document


Returns the JavascriptInterface's code

  • « MongoDB\BSON\JavascriptInterface::getScope
  • MongoDB\BSON\MaxKeyInterface »
  • PHP Manual
  • MongoDB\BSON\JavascriptInterface
  • Returns the JavascriptInterface's code

MongoDB\BSON\JavascriptInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\JavascriptInterface::__toString — Returns the JavascriptInterface's code

Beschreibung

abstract public MongoDB\BSON\JavascriptInterface::__toString ( ) : string

Diese Methode ist ein Alias für: MongoDB\BSON\JavascriptInterface::getCode().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the JavascriptInterface's code.

Siehe auch

  • MongoDB\BSON\JavascriptInterface::getCode() - Returns the JavascriptInterface's code
  • MongoDB\BSON\Javascript::__toString() - Returns the Javascript's code


The MongoDB\BSON\MaxKeyInterface interface

(mongodb >=1.3.0)

Einführung

This interface is implemented by MongoDB\BSON\MaxKey but may also be used for type-hinting and userland classes.

Klassenbeschreibung

MongoDB\BSON\MaxKeyInterface {
}

This interface has no methods.


The MongoDB\BSON\MinKeyInterface interface

(mongodb >=1.3.0)

Einführung

This interface is implemented by MongoDB\BSON\MinKey but may also be used for type-hinting and userland classes.

Klassenbeschreibung

MongoDB\BSON\MinKeyInterface {
}

This interface has no methods.


The MongoDB\BSON\ObjectIdInterface interface

(mongodb >=1.3.0)

Einführung

This interface is implemented by MongoDB\BSON\ObjectId but may also be used for type-hinting and userland classes.

Klassenbeschreibung

MongoDB\BSON\ObjectIdInterface {
/* Methoden */
abstract public getTimestamp ( ) : int
abstract public __toString ( ) : string
}

Inhaltsverzeichnis

  • MongoDB\BSON\ObjectIdInterface::getTimestamp — Returns the timestamp component of this ObjectIdInterface
  • MongoDB\BSON\ObjectIdInterface::__toString — Returns the hexidecimal representation of this ObjectIdInterface


Returns the timestamp component of this ObjectIdInterface

  • « MongoDB\BSON\ObjectIdInterface
  • MongoDB\BSON\ObjectIdInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\ObjectIdInterface
  • Returns the timestamp component of this ObjectIdInterface

MongoDB\BSON\ObjectIdInterface::getTimestamp

(mongodb >=1.3.0)

MongoDB\BSON\ObjectIdInterface::getTimestamp — Returns the timestamp component of this ObjectIdInterface

Beschreibung

abstract public MongoDB\BSON\ObjectIdInterface::getTimestamp ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the timestamp component of this ObjectIdInterface.

Siehe auch

  • MongoDB\BSON\ObjectId::getTimestamp() - Returns the timestamp component of this ObjectId


Returns the hexidecimal representation of this ObjectIdInterface

  • « MongoDB\BSON\ObjectIdInterface::getTimestamp
  • MongoDB\BSON\RegexInterface »
  • PHP Manual
  • MongoDB\BSON\ObjectIdInterface
  • Returns the hexidecimal representation of this ObjectIdInterface

MongoDB\BSON\ObjectIdInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\ObjectIdInterface::__toString — Returns the hexidecimal representation of this ObjectIdInterface

Beschreibung

abstract public MongoDB\BSON\ObjectIdInterface::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the hexidecimal representation of this ObjectIdInterface.

Siehe auch

  • MongoDB\BSON\ObjectId::__toString() - Returns the hexidecimal representation of this ObjectId


The MongoDB\BSON\RegexInterface interface

(mongodb >=1.3.0)

Einführung

This interface is implemented by MongoDB\BSON\Regex but may also be used for type-hinting and userland classes.

Klassenbeschreibung

MongoDB\BSON\RegexInterface {
/* Methoden */
abstract public getFlags ( ) : string
abstract public getPattern ( ) : string
abstract public __toString ( ) : string
}

Inhaltsverzeichnis

  • MongoDB\BSON\RegexInterface::getFlags — Returns the RegexInterface's flags
  • MongoDB\BSON\RegexInterface::getPattern — Returns the RegexInterface's pattern
  • MongoDB\BSON\RegexInterface::__toString — Returns the string representation of this RegexInterface


Returns the RegexInterface's flags

  • « MongoDB\BSON\RegexInterface
  • MongoDB\BSON\RegexInterface::getPattern »
  • PHP Manual
  • MongoDB\BSON\RegexInterface
  • Returns the RegexInterface's flags

MongoDB\BSON\RegexInterface::getFlags

(mongodb >=1.3.0)

MongoDB\BSON\RegexInterface::getFlags — Returns the RegexInterface's flags

Beschreibung

abstract public MongoDB\BSON\RegexInterface::getFlags ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the RegexInterface's flags.

Siehe auch

  • MongoDB\BSON\Regex::getFlags() - Returns the Regex's flags


Returns the RegexInterface's pattern

  • « MongoDB\BSON\RegexInterface::getFlags
  • MongoDB\BSON\RegexInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\RegexInterface
  • Returns the RegexInterface's pattern

MongoDB\BSON\RegexInterface::getPattern

(mongodb >=1.3.0)

MongoDB\BSON\RegexInterface::getPattern — Returns the RegexInterface's pattern

Beschreibung

abstract public MongoDB\BSON\RegexInterface::getPattern ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the RegexInterface's pattern.

Siehe auch

  • MongoDB\BSON\Regex::getPattern() - Returns the Regex's pattern


Returns the string representation of this RegexInterface

  • « MongoDB\BSON\RegexInterface::getPattern
  • MongoDB\BSON\TimestampInterface »
  • PHP Manual
  • MongoDB\BSON\RegexInterface
  • Returns the string representation of this RegexInterface

MongoDB\BSON\RegexInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\RegexInterface::__toString — Returns the string representation of this RegexInterface

Beschreibung

abstract public MongoDB\BSON\RegexInterface::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of this RegexInterface.

Siehe auch

  • MongoDB\BSON\Regex::__toString() - Returns the string representation of this Regex


The MongoDB\BSON\TimestampInterface interface

(mongodb >=1.3.0)

Einführung

This interface is implemented by MongoDB\BSON\Timestamp but may also be used for type-hinting and userland classes.

Klassenbeschreibung

MongoDB\BSON\TimestampInterface {
/* Methoden */
abstract public getIncrement ( ) : int
abstract public getTimestamp ( ) : int
abstract public __toString ( ) : string
}

Inhaltsverzeichnis

  • MongoDB\BSON\TimestampInterface::getIncrement — Returns the increment component of this TimestampInterface
  • MongoDB\BSON\TimestampInterface::getTimestamp — Returns the timestamp component of this TimestampInterface
  • MongoDB\BSON\TimestampInterface::__toString — Returns the string representation of this TimestampInterface


Returns the increment component of this TimestampInterface

  • « MongoDB\BSON\TimestampInterface
  • MongoDB\BSON\TimestampInterface::getTimestamp »
  • PHP Manual
  • MongoDB\BSON\TimestampInterface
  • Returns the increment component of this TimestampInterface

MongoDB\BSON\TimestampInterface::getIncrement

(mongodb >=1.3.0)

MongoDB\BSON\TimestampInterface::getIncrement — Returns the increment component of this TimestampInterface

Beschreibung

abstract public MongoDB\BSON\TimestampInterface::getIncrement ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the increment component of this TimestampInterface.

Warnung

On 32-bit systems this method may return a negative number. Although the increment and timestamp parts of the BSON timestamp type consists of two unsigned 32-bit values, PHP can not represent these on 32-bit platforms.

Siehe auch

  • MongoDB\BSON\Timestamp::getIncrement() - Returns the increment component of this Timestamp


Returns the timestamp component of this TimestampInterface

  • « MongoDB\BSON\TimestampInterface::getIncrement
  • MongoDB\BSON\TimestampInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\TimestampInterface
  • Returns the timestamp component of this TimestampInterface

MongoDB\BSON\TimestampInterface::getTimestamp

(mongodb >=1.3.0)

MongoDB\BSON\TimestampInterface::getTimestamp — Returns the timestamp component of this TimestampInterface

Beschreibung

abstract public MongoDB\BSON\TimestampInterface::getTimestamp ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the timestamp component of this TimestampInterface.

Warnung

On 32-bit systems this method may return a negative number. Although the increment and timestamp parts of the BSON timestamp type consists of two unsigned 32-bit values, PHP can not represent these on 32-bit platforms.

Siehe auch

  • MongoDB\BSON\Timestamp::getTimestamp() - Returns the timestamp component of this Timestamp


Returns the string representation of this TimestampInterface

  • « MongoDB\BSON\TimestampInterface::getTimestamp
  • MongoDB\BSON\UTCDateTimeInterface »
  • PHP Manual
  • MongoDB\BSON\TimestampInterface
  • Returns the string representation of this TimestampInterface

MongoDB\BSON\TimestampInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\TimestampInterface::__toString — Returns the string representation of this TimestampInterface

Beschreibung

abstract public MongoDB\BSON\TimestampInterface::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of this TimestampInterface.

Siehe auch

  • MongoDB\BSON\Timestamp::__toString() - Returns the string representation of this Timestamp


The MongoDB\BSON\UTCDateTimeInterface interface

(mongodb >=1.3.0)

Einführung

This interface is implemented by MongoDB\BSON\UTCDateTime but may also be used for type-hinting and userland classes.

Klassenbeschreibung

MongoDB\BSON\UTCDateTimeInterface {
/* Methoden */
abstract public toDateTime ( ) : DateTime
abstract public __toString ( ) : string
}

Inhaltsverzeichnis

  • MongoDB\BSON\UTCDateTimeInterface::toDateTime — Returns the DateTime representation of this UTCDateTimeInterface
  • MongoDB\BSON\UTCDateTimeInterface::__toString — Returns the string representation of this UTCDateTimeInterface


Returns the DateTime representation of this UTCDateTimeInterface

  • « MongoDB\BSON\UTCDateTimeInterface
  • MongoDB\BSON\UTCDateTimeInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\UTCDateTimeInterface
  • Returns the DateTime representation of this UTCDateTimeInterface

MongoDB\BSON\UTCDateTimeInterface::toDateTime

(mongodb >=1.3.0)

MongoDB\BSON\UTCDateTimeInterface::toDateTime — Returns the DateTime representation of this UTCDateTimeInterface

Beschreibung

abstract public MongoDB\BSON\UTCDateTimeInterface::toDateTime ( ) : DateTime

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the DateTime representation of this UTCDateTimeInterface. The returned DateTime should use the UTC time zone.

Siehe auch

  • MongoDB\BSON\UTCDateTime::toDateTime() - Returns the DateTime representation of this UTCDateTime


Returns the string representation of this UTCDateTimeInterface

  • « MongoDB\BSON\UTCDateTimeInterface::toDateTime
  • MongoDB\BSON\DBPointer »
  • PHP Manual
  • MongoDB\BSON\UTCDateTimeInterface
  • Returns the string representation of this UTCDateTimeInterface

MongoDB\BSON\UTCDateTimeInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\UTCDateTimeInterface::__toString — Returns the string representation of this UTCDateTimeInterface

Beschreibung

abstract public MongoDB\BSON\UTCDateTimeInterface::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of this UTCDateTimeInterface.

Siehe auch

  • MongoDB\BSON\UTCDateTime::__toString() - Returns the string representation of this UTCDateTime


The MongoDB\BSON\DBPointer class (deprecated)

(mongodb >=1.4.0)

Einführung

BSON type for the "DBPointer" type. This BSON type is deprecated, and this class can not be instantiated. It will be created from a BSON DBPointer type while converting BSON to PHP, and can also be converted back into BSON while storing documents in the database.

Klassenbeschreibung

final MongoDB\BSON\DBPointer implements MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Methoden */
final private __construct ( )
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public __toString ( ) : string
final public unserialize ( string $serialized ) : void
}

Inhaltsverzeichnis

  • MongoDB\BSON\DBPointer::__construct — Construct a new DBPointer (unused)
  • MongoDB\BSON\DBPointer::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\DBPointer::serialize — Serialize a DBPointer
  • MongoDB\BSON\DBPointer::__toString — Returns an empty string
  • MongoDB\BSON\DBPointer::unserialize — Unserialize a DBPointer


Construct a new DBPointer (unused)

  • « MongoDB\BSON\DBPointer
  • MongoDB\BSON\DBPointer::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Construct a new DBPointer (unused)

MongoDB\BSON\DBPointer::__construct

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::__construct — Construct a new DBPointer (unused)

Beschreibung

final private MongoDB\BSON\DBPointer::__construct ( )

MongoDB\BSON\DBPointer objects are created through conversion from a deprecated BSON type and cannot be constructed directly.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Siehe auch

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\DBPointer::__construct
  • MongoDB\BSON\DBPointer::serialize »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Returns a representation that can be converted to JSON

MongoDB\BSON\DBPointer::jsonSerialize

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\DBPointer::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\DBPointer.

Hinweis: The output is consistent with the MongoDB\BSON\toJSON() function, which uses the driver-specific legacy extended JSON format. This does not necessarily match the » relaxed or » canonical extended JSON representations used by MongoDB\BSON\toRelaxedExtendedJSON() and MongoDB\BSON\toCanonicalExtendedJSON(), respectively.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a DBPointer

  • « MongoDB\BSON\DBPointer::jsonSerialize
  • MongoDB\BSON\DBPointer::__toString »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Serialize a DBPointer

MongoDB\BSON\DBPointer::serialize

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::serialize — Serialize a DBPointer

Beschreibung

final public MongoDB\BSON\DBPointer::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\DBPointer.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\DBPointer::unserialize() - Unserialize a DBPointer
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Returns an empty string

  • « MongoDB\BSON\DBPointer::serialize
  • MongoDB\BSON\DBPointer::unserialize »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Returns an empty string

MongoDB\BSON\DBPointer::__toString

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::__toString — Returns an empty string

Beschreibung

final public MongoDB\BSON\DBPointer::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an empty string.

Siehe auch

  • » BSON Types


Unserialize a DBPointer

  • « MongoDB\BSON\DBPointer::__toString
  • MongoDB\BSON\Int64 »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Unserialize a DBPointer

MongoDB\BSON\DBPointer::unserialize

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::unserialize — Unserialize a DBPointer

Beschreibung

final public MongoDB\BSON\DBPointer::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\DBPointer.

Rückgabewerte

Returns the unserialized MongoDB\BSON\DBPointer.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\DBPointer::serialize() - Serialize a DBPointer
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\BSON\Int64 class

(mongodb >=1.5.0)

Einführung

BSON type for a 64-bit integer. This class cannot be instantiated and is only created during BSON decoding when a 64-bit integer cannot be represented as a PHP integer on a 32-bit platform. Versions of the driver before 1.5.0 would throw an exception when attempting to decode a 64-bit integer on a 32-bit platform.

During BSON encoding, objects of this class will convert back to a 64-bit integer type. This allows 64-bit integers to be roundtripped through a 32-bit PHP environment without any loss of precision. The __toString() method allows the 64-bit integer value to be accessed as a string.

Hinweis: This class exists purely for 32-bit platforms. Applications on 64-bit platforms (i.e. PHP_INT_SIZE is 8) should never encounter this class during normal operation.

Klassenbeschreibung

final MongoDB\BSON\Int64 implements MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Methoden */
final private __construct ( )
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public __toString ( ) : string
final public unserialize ( string $serialized ) : void
}

Inhaltsverzeichnis

  • MongoDB\BSON\Int64::__construct — Construct a new Int64 (unused)
  • MongoDB\BSON\Int64::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Int64::serialize — Serialize an Int64
  • MongoDB\BSON\Int64::__toString — Returns the string representation of this Int64
  • MongoDB\BSON\Int64::unserialize — Unserialize an Int64


Construct a new Int64 (unused)

  • « MongoDB\BSON\Int64
  • MongoDB\BSON\Int64::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Construct a new Int64 (unused)

MongoDB\BSON\Int64::__construct

(mongodb >=1.5.0)

MongoDB\BSON\Int64::__construct — Construct a new Int64 (unused)

Beschreibung

final private MongoDB\BSON\Int64::__construct ( )

MongoDB\BSON\Int64 objects are created through conversion from a 64-bit integer BSON type on a 32-bit platform and cannot be constructed directly.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Siehe auch

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Int64::__construct
  • MongoDB\BSON\Int64::serialize »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Int64::jsonSerialize

(mongodb >=1.5.0)

MongoDB\BSON\Int64::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\Int64::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Int64.

Hinweis: The output is consistent with the MongoDB\BSON\toCanonicalExtendedJSON() function, which uses the » canonical extended JSON format. This differs from other BSON classes, which use the driver-specific legacy extended JSON format (MongoDB\BSON\toJSON()), in order to ensure that the 64-bit integer value is correctly represented on 32-bit platforms.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize an Int64

  • « MongoDB\BSON\Int64::jsonSerialize
  • MongoDB\BSON\Int64::__toString »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Serialize an Int64

MongoDB\BSON\Int64::serialize

(mongodb >=1.5.0)

MongoDB\BSON\Int64::serialize — Serialize an Int64

Beschreibung

final public MongoDB\BSON\Int64::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\Int64.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\Int64::unserialize() - Unserialize an Int64
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Returns the string representation of this Int64

  • « MongoDB\BSON\Int64::serialize
  • MongoDB\BSON\Int64::unserialize »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Returns the string representation of this Int64

MongoDB\BSON\Int64::__toString

(mongodb >=1.5.0)

MongoDB\BSON\Int64::__toString — Returns the string representation of this Int64

Beschreibung

final public MongoDB\BSON\Int64::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of this Int64.

Beispiele

Beispiel #1 MongoDB\BSON\Int64::__toString() example

<?php

$int64 = unserialize('C:18:"MongoDB\BSON\Int64":47:{a:1:{s:7:"integer";s:19:"9223372036854775807";}}');

var_dump((string) $int64);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(19) "9223372036854775807"

Siehe auch

  • » BSON Types


Unserialize an Int64

  • « MongoDB\BSON\Int64::__toString
  • MongoDB\BSON\Symbol »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Unserialize an Int64

MongoDB\BSON\Int64::unserialize

(mongodb >=1.5.0)

MongoDB\BSON\Int64::unserialize — Unserialize an Int64

Beschreibung

final public MongoDB\BSON\Int64::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\Int64.

Rückgabewerte

Returns the unserialized MongoDB\BSON\Int64.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Siehe auch

  • MongoDB\BSON\Int64::serialize() - Serialize an Int64
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\BSON\Symbol class (deprecated)

(mongodb >=1.4.0)

Einführung

BSON type for the "Symbol" type. This BSON type is deprecated, and this class can not be instantiated. It will be created from a BSON symbol type while converting BSON to PHP, and can also be converted back into BSON while storing documents in the database.

Klassenbeschreibung

final MongoDB\BSON\Symbol implements MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Methoden */
final private __construct ( )
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public __toString ( ) : string
final public unserialize ( string $serialized ) : void
}

Inhaltsverzeichnis

  • MongoDB\BSON\Symbol::__construct — Construct a new Symbol (unused)
  • MongoDB\BSON\Symbol::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Symbol::serialize — Serialize a Symbol
  • MongoDB\BSON\Symbol::__toString — Returns the Symbol as a string
  • MongoDB\BSON\Symbol::unserialize — Unserialize a Symbol


Construct a new Symbol (unused)

  • « MongoDB\BSON\Symbol
  • MongoDB\BSON\Symbol::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Construct a new Symbol (unused)

MongoDB\BSON\Symbol::__construct

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::__construct — Construct a new Symbol (unused)

Beschreibung

final private MongoDB\BSON\Symbol::__construct ( )

MongoDB\BSON\Symbol objects are created through conversion from a deprecated BSON type and cannot be constructed directly.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Siehe auch

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Symbol::__construct
  • MongoDB\BSON\Symbol::serialize »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Symbol::jsonSerialize

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\Symbol::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Symbol.

Hinweis: The output is consistent with the MongoDB\BSON\toJSON() function, which uses the driver-specific legacy extended JSON format. This does not necessarily match the » relaxed or » canonical extended JSON representations used by MongoDB\BSON\toRelaxedExtendedJSON() and MongoDB\BSON\toCanonicalExtendedJSON(), respectively.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Symbol

  • « MongoDB\BSON\Symbol::jsonSerialize
  • MongoDB\BSON\Symbol::__toString »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Serialize a Symbol

MongoDB\BSON\Symbol::serialize

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::serialize — Serialize a Symbol

Beschreibung

final public MongoDB\BSON\Symbol::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\Symbol.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\Symbol::unserialize() - Unserialize a Symbol
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Returns the Symbol as a string

  • « MongoDB\BSON\Symbol::serialize
  • MongoDB\BSON\Symbol::unserialize »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Returns the Symbol as a string

MongoDB\BSON\Symbol::__toString

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::__toString — Returns the Symbol as a string

Beschreibung

final public MongoDB\BSON\Symbol::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string representation of this Symbol.

Siehe auch

  • » BSON Types


Unserialize a Symbol

  • « MongoDB\BSON\Symbol::__toString
  • MongoDB\BSON\Undefined »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Unserialize a Symbol

MongoDB\BSON\Symbol::unserialize

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::unserialize — Unserialize a Symbol

Beschreibung

final public MongoDB\BSON\Symbol::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\Symbol.

Rückgabewerte

Returns the unserialized MongoDB\BSON\Symbol.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\Symbol::serialize() - Serialize a Symbol
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The MongoDB\BSON\Undefined class (deprecated)

(mongodb >=1.4.0)

Einführung

BSON type for the "Undefined" type. This BSON type is deprecated, and this class can not be instantiated. It will be created from a BSON undefined type while converting BSON to PHP, and can also be converted back into BSON while storing documents in the database.

Klassenbeschreibung

final MongoDB\BSON\Undefined implements MongoDB\BSON\Type , Serializable , JsonSerializable {
/* Methoden */
final private __construct ( )
final public jsonSerialize ( ) : mixed
final public serialize ( ) : string
final public __toString ( ) : string
final public unserialize ( string $serialized ) : void
}

Inhaltsverzeichnis

  • MongoDB\BSON\Undefined::__construct — Construct a new Undefined (unused)
  • MongoDB\BSON\Undefined::jsonSerialize — Returns a representation that can be converted to JSON
  • MongoDB\BSON\Undefined::serialize — Serialize a Undefined
  • MongoDB\BSON\Undefined::__toString — Returns an empty string
  • MongoDB\BSON\Undefined::unserialize — Unserialize a Undefined


Construct a new Undefined (unused)

  • « MongoDB\BSON\Undefined
  • MongoDB\BSON\Undefined::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Construct a new Undefined (unused)

MongoDB\BSON\Undefined::__construct

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::__construct — Construct a new Undefined (unused)

Beschreibung

final private MongoDB\BSON\Undefined::__construct ( )

MongoDB\BSON\Undefined objects are created through conversion from a deprecated BSON type and cannot be constructed directly.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Siehe auch

  • » BSON Types


Returns a representation that can be converted to JSON

  • « MongoDB\BSON\Undefined::__construct
  • MongoDB\BSON\Undefined::serialize »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Returns a representation that can be converted to JSON

MongoDB\BSON\Undefined::jsonSerialize

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::jsonSerialize — Returns a representation that can be converted to JSON

Beschreibung

final public MongoDB\BSON\Undefined::jsonSerialize ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns data which can be serialized by json_encode() to produce an extended JSON representation of the MongoDB\BSON\Undefined.

Hinweis: The output is consistent with the MongoDB\BSON\toJSON() function, which uses the driver-specific legacy extended JSON format. This does not necessarily match the » relaxed or » canonical extended JSON representations used by MongoDB\BSON\toRelaxedExtendedJSON() and MongoDB\BSON\toCanonicalExtendedJSON(), respectively.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • JsonSerializable::jsonSerialize() - Angegebene Daten, die in JSON serialisiert werden sollen
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB Extended JSON


Serialize a Undefined

  • « MongoDB\BSON\Undefined::jsonSerialize
  • MongoDB\BSON\Undefined::__toString »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Serialize a Undefined

MongoDB\BSON\Undefined::serialize

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::serialize — Serialize a Undefined

Beschreibung

final public MongoDB\BSON\Undefined::serialize ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the serialized representation of the MongoDB\BSON\Undefined.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\Undefined::unserialize() - Unserialize a Undefined
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Returns an empty string

  • « MongoDB\BSON\Undefined::serialize
  • MongoDB\BSON\Undefined::unserialize »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Returns an empty string

MongoDB\BSON\Undefined::__toString

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::__toString — Returns an empty string

Beschreibung

final public MongoDB\BSON\Undefined::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an empty string.

Siehe auch

  • » BSON Types


Unserialize a Undefined

  • « MongoDB\BSON\Undefined::__toString
  • MongoDB\Driver\Monitoring »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Unserialize a Undefined

MongoDB\BSON\Undefined::unserialize

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::unserialize — Unserialize a Undefined

Beschreibung

final public MongoDB\BSON\Undefined::unserialize ( string $serialized ) : void

Parameter-Liste

serialized

The serialized MongoDB\BSON\Undefined.

Rückgabewerte

Returns the unserialized MongoDB\BSON\Undefined.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\BSON\Undefined::serialize() - Serialize a Undefined
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


Monitoring classes and subscriber functions

  • Funktionen
    • MongoDB\Driver\Monitoring\addSubscriber — Registers a new monitoring event subscriber
    • MongoDB\Driver\Monitoring\removeSubscriber — Unregisters an existing monitoring event subscriber
  • MongoDB\Driver\Monitoring\CommandFailedEvent — The MongoDB\Driver\Monitoring\CommandFailedEvent class
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName — Returns the command name
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros — Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getError — Returns the Exception associated with the failed command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId — Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply — Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId — Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer — Returns the Server on which the command was executed
  • MongoDB\Driver\Monitoring\CommandStartedEvent — The MongoDB\Driver\Monitoring\CommandStartedEvent class
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand — Returns the command document
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName — Returns the command name
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName — Returns the database on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId — Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId — Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer — Returns the Server on which the command was executed
  • MongoDB\Driver\Monitoring\CommandSucceededEvent — The MongoDB\Driver\Monitoring\CommandSucceededEvent class
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName — Returns the command name
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros — Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId — Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply — Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId — Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer — Returns the Server on which the command was executed
  • MongoDB\Driver\Monitoring\CommandSubscriber — The MongoDB\Driver\Monitoring\CommandSubscriber interface
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed — Notification method for a failed command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted — Notification method for a started command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded — Notification method for a successful command
  • MongoDB\Driver\Monitoring\Subscriber — The MongoDB\Driver\Monitoring\Subscriber interface


Funktionen

Inhaltsverzeichnis

  • MongoDB\Driver\Monitoring\addSubscriber — Registers a new monitoring event subscriber
  • MongoDB\Driver\Monitoring\removeSubscriber — Unregisters an existing monitoring event subscriber


Registers a new monitoring event subscriber

  • « Funktionen
  • MongoDB\Driver\Monitoring\removeSubscriber »
  • PHP Manual
  • Funktionen
  • Registers a new monitoring event subscriber

MongoDB\Driver\Monitoring\addSubscriber

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\addSubscriber — Registers a new monitoring event subscriber

Beschreibung

MongoDB\Driver\Monitoring\addSubscriber ( MongoDB\Driver\Monitoring\Subscriber $subscriber ) : void

Registers a new monitoring event subscriber with the driver. Registered subscribers will be notified of monitoring events through specific methods.

Hinweis: If the object is already registered, this function is a no-op.

Parameter-Liste

subscriber (MongoDB\Driver\Monitoring\Subscriber)

A monitoring event subscriber object to register.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\removeSubscriber() - Unregisters an existing monitoring event subscriber
  • Application Performance Monitoring (APM)


Unregisters an existing monitoring event subscriber

  • « MongoDB\Driver\Monitoring\addSubscriber
  • MongoDB\Driver\Monitoring\CommandFailedEvent »
  • PHP Manual
  • Funktionen
  • Unregisters an existing monitoring event subscriber

MongoDB\Driver\Monitoring\removeSubscriber

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\removeSubscriber — Unregisters an existing monitoring event subscriber

Beschreibung

MongoDB\Driver\Monitoring\removeSubscriber ( MongoDB\Driver\Monitoring\Subscriber $subscriber ) : void

Unregisters an existing monitoring event subscriber from the driver. Unregistered subscribers will no longer be notified of monitoring events.

Hinweis: If the object is not registered, this function is a no-op.

Parameter-Liste

subscriber (MongoDB\Driver\Monitoring\Subscriber)

A monitoring event subscriber object to unregister.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a new monitoring event subscriber
  • Application Performance Monitoring (APM)


The MongoDB\Driver\Monitoring\CommandFailedEvent class

(mongodb >=1.3.0)

Einführung

The MongoDB\Driver\Monitoring\CommandFailedEvent class encapsulates information about a failed command.

Klassenbeschreibung

final MongoDB\Driver\Monitoring\CommandFailedEvent {
/* Methoden */
final public getCommandName ( ) : string
final public getDurationMicros ( ) : int
final public getError ( ) : Exception
final public getOperationId ( ) : string
final public getReply ( ) : object
final public getRequestId ( ) : string
final public getServer ( ) : MongoDB\Driver\Server
}

Inhaltsverzeichnis

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName — Returns the command name
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros — Returns the command's duration in microseconds
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getError — Returns the Exception associated with the failed command
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId — Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply — Returns the command reply document
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId — Returns the command's request ID
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer — Returns the Server on which the command was executed


Returns the command name

  • « MongoDB\Driver\Monitoring\CommandFailedEvent
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command name

MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName — Returns the command name

Beschreibung

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName ( ) : string

Returns the command name (e.g. "find", "aggregate").

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command name.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • Application Performance Monitoring (APM)


Returns the command's duration in microseconds

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getError »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command's duration in microseconds

MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros — Returns the command's duration in microseconds

Beschreibung

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros ( ) : int

The command's duration is a calculated value that includes the time to send the message and receive the reply from the server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command's duration in microseconds.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • Application Performance Monitoring (APM)


Returns the Exception associated with the failed command

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the Exception associated with the failed command

MongoDB\Driver\Monitoring\CommandFailedEvent::getError

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getError — Returns the Exception associated with the failed command

Beschreibung

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getError ( ) : Exception

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the Exception associated with the failed command.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • Application Performance Monitoring (APM)


Returns the command's operation ID

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getError
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command's operation ID

MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId — Returns the command's operation ID

Beschreibung

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId ( ) : string

The operation ID is generated by the driver and may be used to link events together such as bulk write operations, which may have been split across several commands at the protocol level.

Hinweis: Since multiple commands may share the same operation ID, it is not reliable to use this value to associate event objects with each other. The request ID returned by MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId() should be used instead.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command's operation ID.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId() - Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the command reply document

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command reply document

MongoDB\Driver\Monitoring\CommandFailedEvent::getReply

(mongodb >=1.5.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getReply — Returns the command reply document

Beschreibung

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getReply ( ) : object

The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command reply document as a stdClass object.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • Application Performance Monitoring (APM)
  • Persisting Data


Returns the command's request ID

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getReply
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command's request ID

MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId — Returns the command's request ID

Beschreibung

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId ( ) : string

The request ID is generated by the driver and may be used to associate this MongoDB\Driver\Monitoring\CommandFailedEvent with a previous MongoDB\Driver\Monitoring\CommandStartedEvent.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command's request ID.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the Server on which the command was executed

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId
  • MongoDB\Driver\Monitoring\CommandStartedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the Server on which the command was executed

MongoDB\Driver\Monitoring\CommandFailedEvent::getServer

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getServer — Returns the Server on which the command was executed

Beschreibung

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getServer ( ) : MongoDB\Driver\Server

Returns the MongoDB\Driver\Server on which the command was executed.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the MongoDB\Driver\Server on which the command was executed.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer() - Returns the Server on which the command was executed
  • Application Performance Monitoring (APM)


The MongoDB\Driver\Monitoring\CommandStartedEvent class

(mongodb >=1.3.0)

Einführung

The MongoDB\Driver\Monitoring\CommandStartedEvent class encapsulates information about a started command.

Klassenbeschreibung

final MongoDB\Driver\Monitoring\CommandStartedEvent {
/* Methoden */
final public getCommand ( ) : object
final public getCommandName ( ) : string
final public getDatabaseName ( ) : string
final public getOperationId ( ) : string
final public getRequestId ( ) : string
final public getServer ( ) : MongoDB\Driver\Server
}

Inhaltsverzeichnis

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand — Returns the command document
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName — Returns the command name
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName — Returns the database on which the command was executed
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId — Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId — Returns the command's request ID
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer — Returns the Server on which the command was executed


Returns the command document

  • « MongoDB\Driver\Monitoring\CommandStartedEvent
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the command document

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand — Returns the command document

Beschreibung

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand ( ) : object

The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command document as a stdClass object.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • Application Performance Monitoring (APM)
  • Persisting Data


Returns the command name

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the command name

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName — Returns the command name

Beschreibung

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName ( ) : string

Returns the command name (e.g. "find", "aggregate").

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command name.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • Application Performance Monitoring (APM)


Returns the database on which the command was executed

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the database on which the command was executed

MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName — Returns the database on which the command was executed

Beschreibung

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the database on which the command was executed.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • Application Performance Monitoring (APM)


Returns the command's operation ID

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the command's operation ID

MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId — Returns the command's operation ID

Beschreibung

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId ( ) : string

The operation ID is generated by the driver and may be used to link events together such as bulk write operations, which may have been split across several commands at the protocol level.

Hinweis: Since multiple commands may share the same operation ID, it is not reliable to use this value to associate event objects with each other. The request ID returned by MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() should be used instead.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command's operation ID.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId() - Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId() - Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the command's request ID

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the command's request ID

MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId — Returns the command's request ID

Beschreibung

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId ( ) : string

The request ID is generated by the driver and may be used to associate this MongoDB\Driver\Monitoring\CommandStartedEvent with a later MongoDB\Driver\Monitoring\CommandFailedEvent or MongoDB\Driver\Monitoring\CommandSucceededEvent.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command's request ID.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId() - Returns the command's request ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the Server on which the command was executed

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId
  • MongoDB\Driver\Monitoring\CommandSucceededEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the Server on which the command was executed

MongoDB\Driver\Monitoring\CommandStartedEvent::getServer

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getServer — Returns the Server on which the command was executed

Beschreibung

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getServer ( ) : MongoDB\Driver\Server

Returns the MongoDB\Driver\Server on which the command was executed.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the MongoDB\Driver\Server on which the command was executed.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer() - Returns the Server on which the command was executed
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer() - Returns the Server on which the command was executed
  • Application Performance Monitoring (APM)


The MongoDB\Driver\Monitoring\CommandSucceededEvent class

(mongodb >=1.3.0)

Einführung

The MongoDB\Driver\Monitoring\CommandSucceededEvent class encapsulates information about a successful command.

Klassenbeschreibung

final MongoDB\Driver\Monitoring\CommandSucceededEvent {
/* Methoden */
final public getCommandName ( ) : string
final public getDurationMicros ( ) : int
final public getOperationId ( ) : string
final public getReply ( ) : object
final public getRequestId ( ) : string
final public getServer ( ) : MongoDB\Driver\Server
}

Inhaltsverzeichnis

  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName — Returns the command name
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros — Returns the command's duration in microseconds
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId — Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply — Returns the command reply document
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId — Returns the command's request ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer — Returns the Server on which the command was executed


Returns the command name

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command name

MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName — Returns the command name

Beschreibung

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName ( ) : string

Returns the command name (e.g. "find", "aggregate").

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command name.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • Application Performance Monitoring (APM)


Returns the command's duration in microseconds

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command's duration in microseconds

MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros — Returns the command's duration in microseconds

Beschreibung

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros ( ) : int

The command's duration is a calculated value that includes the time to send the message and receive the reply from the server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command's duration in microseconds.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • Application Performance Monitoring (APM)


Returns the command's operation ID

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command's operation ID

MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId — Returns the command's operation ID

Beschreibung

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId ( ) : string

The operation ID is generated by the driver and may be used to link events together such as bulk write operations, which may have been split across several commands at the protocol level.

Hinweis: Since multiple commands may share the same operation ID, it is not reliable to use this value to associate event objects with each other. The request ID returned by MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() should be used instead.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command's operation ID.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId() - Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the command reply document

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command reply document

MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply — Returns the command reply document

Beschreibung

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply ( ) : object

The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command reply document as a stdClass object.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • Application Performance Monitoring (APM)
  • Persisting Data


Returns the command's request ID

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command's request ID

MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId — Returns the command's request ID

Beschreibung

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId ( ) : string

The request ID is generated by the driver and may be used to associate this MongoDB\Driver\Monitoring\CommandSucceededEvent with a previous MongoDB\Driver\Monitoring\CommandStartedEvent.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the command's request ID.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the Server on which the command was executed

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId
  • MongoDB\Driver\Monitoring\CommandSubscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the Server on which the command was executed

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer — Returns the Server on which the command was executed

Beschreibung

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer ( ) : MongoDB\Driver\Server

Returns the MongoDB\Driver\Server on which the command was executed.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the MongoDB\Driver\Server on which the command was executed.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer() - Returns the Server on which the command was executed
  • MongoDB\Driver\Cursor::getServer() - Returns the server associated with this cursor
  • MongoDB\Driver\WriteResult::getServer() - Returns the server associated with this write result
  • Application Performance Monitoring (APM)


The MongoDB\Driver\Monitoring\CommandSubscriber interface

(mongodb >=1.3.0)

Einführung

Classes may implement this interface to register an event subscriber that is notified for each started, successful, and failed command event. See Application Performance Monitoring (APM) for additional information.

Interface-Übersicht

MongoDB\Driver\Monitoring\CommandSubscriber implements MongoDB\Driver\Monitoring\Subscriber {
/* Methoden */
abstract public commandFailed ( MongoDB\Driver\Monitoring\CommandFailedEvent $event ) : void
abstract public commandStarted ( MongoDB\Driver\Monitoring\CommandStartedEvent $event ) : void
abstract public commandSucceeded ( MongoDB\Driver\Monitoring\CommandSucceededEvent $event ) : void
}

Inhaltsverzeichnis

  • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed — Notification method for a failed command
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted — Notification method for a started command
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded — Notification method for a successful command


Notification method for a failed command

  • « MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • Notification method for a failed command

MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed — Notification method for a failed command

Beschreibung

abstract public MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed ( MongoDB\Driver\Monitoring\CommandFailedEvent $event ) : void

If the subscriber has been registered with MongoDB\Driver\Monitoring\addSubscriber(), the driver will call this method when a command has failed.

Parameter-Liste

event (MongoDB\Driver\Monitoring\CommandFailedEvent)

An event object encapsulating information about the failed command.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a new monitoring event subscriber
  • Application Performance Monitoring (APM)


Notification method for a started command

  • « MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • Notification method for a started command

MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted — Notification method for a started command

Beschreibung

abstract public MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted ( MongoDB\Driver\Monitoring\CommandStartedEvent $event ) : void

If the subscriber has been registered with MongoDB\Driver\Monitoring\addSubscriber(), the driver will call this method when a command has started.

Parameter-Liste

event (MongoDB\Driver\Monitoring\CommandStartedEvent)

An event object encapsulating information about the started command.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a new monitoring event subscriber
  • Application Performance Monitoring (APM)


Notification method for a successful command

  • « MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted
  • MongoDB\Driver\Monitoring\Subscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • Notification method for a successful command

MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded — Notification method for a successful command

Beschreibung

abstract public MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded ( MongoDB\Driver\Monitoring\CommandSucceededEvent $event ) : void

If the subscriber has been registered with MongoDB\Driver\Monitoring\addSubscriber(), the driver will call this method when a command has succeeded.

Parameter-Liste

event (MongoDB\Driver\Monitoring\CommandSucceededEvent)

An event object encapsulating information about the successful command.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

  • Throws MongoDB\Driver\InvalidArgumentException on argument parsing errors.

Siehe auch

  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Registers a new monitoring event subscriber
  • Application Performance Monitoring (APM)


The MongoDB\Driver\Monitoring\Subscriber interface

(mongodb >=1.3.0)

Einführung

Base interface for event subscribers. This is used for type-hinting MongoDB\Driver\Monitoring\addSubscriber() and MongoDB\Driver\Monitoring\removeSubscriber() and should not be implemented directly.

Interface-Übersicht

MongoDB\Driver\Monitoring\Subscriber {
}

This interface has no methods. Its only purpose is to be the base interface for all event subscribers.


Exception classes

  • MongoDB\Driver\Exception\AuthenticationException — The MongoDB\Driver\Exception\AuthenticationException class
  • MongoDB\Driver\Exception\BulkWriteException — The MongoDB\Driver\Exception\BulkWriteException class
  • MongoDB\Driver\Exception\CommandException — The MongoDB\Driver\Exception\CommandException class
    • MongoDB\Driver\Exception\CommandException::getResultDocument — Returns the result document for the failed command
  • MongoDB\Driver\Exception\ConnectionException — The MongoDB\Driver\Exception\ConnectionException class
  • MongoDB\Driver\Exception\ConnectionTimeoutException — The MongoDB\Driver\Exception\ConnectionTimeoutException class
  • MongoDB\Driver\Exception\EncryptionException — The MongoDB\Driver\Exception\EncryptionException class
  • MongoDB\Driver\Exception\Exception — The MongoDB\Driver\Exception\Exception interface
  • MongoDB\Driver\Exception\ExecutionTimeoutException — The MongoDB\Driver\Exception\ExecutionTimeoutException class
  • MongoDB\Driver\Exception\InvalidArgumentException — The MongoDB\Driver\Exception\InvalidArgumentException class
  • MongoDB\Driver\Exception\LogicException — The MongoDB\Driver\Exception\LogicException class
  • MongoDB\Driver\Exception\RuntimeException — The MongoDB\Driver\Exception\RuntimeException class
    • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel — Returns whether an error label is associated with an exception
  • MongoDB\Driver\Exception\ServerException — The MongoDB\Driver\Exception\ServerException class
  • MongoDB\Driver\Exception\SSLConnectionException — The MongoDB\Driver\Exception\SSLConnectionException class (deprecated)
  • MongoDB\Driver\Exception\UnexpectedValueException — The MongoDB\Driver\Exception\UnexpectedValueException class
  • MongoDB\Driver\Exception\WriteException — The MongoDB\Driver\Exception\WriteException class
    • MongoDB\Driver\Exception\WriteException::getWriteResult — Returns the WriteResult for the failed write operation
  • Class Tree — MongoDB Exception Class Tree


The MongoDB\Driver\Exception\AuthenticationException class

(mongodb >= 1.0.0)

Einführung

Thrown when the driver fails to authenticate with the server.

Klassenbeschreibung

MongoDB\Driver\Exception\AuthenticationException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Geerbte Eigenschaften */
protected array|null $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The MongoDB\Driver\Exception\BulkWriteException class

(mongodb >= 1.0.0)

Einführung

Thrown when a bulk write operation fails.

Klassenbeschreibung

MongoDB\Driver\Exception\BulkWriteException extends MongoDB\Driver\Exception\WriteException implements MongoDB\Driver\Exception\Exception {
/* Geerbte Eigenschaften */
protected MongoDB\Driver\WriteResult $writeResult ;
protected array|null $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public MongoDB\Driver\Exception\WriteException::getWriteResult ( ) : MongoDB\Driver\WriteResult
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The MongoDB\Driver\Exception\CommandException class

(mongodb >= 1.5.0)

Einführung

Thrown when a command fails.

Klassenbeschreibung

MongoDB\Driver\Exception\CommandException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Eigenschaften */
protected object $resultDocument ;
/* Geerbte Eigenschaften */
protected array|null $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
final public getResultDocument ( ) : object
/* Geerbte Methoden */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

resultDocument

The result document associated with the failed command.

Inhaltsverzeichnis

  • MongoDB\Driver\Exception\CommandException::getResultDocument — Returns the result document for the failed command


Returns the result document for the failed command

  • « MongoDB\Driver\Exception\CommandException
  • MongoDB\Driver\Exception\ConnectionException »
  • PHP Manual
  • MongoDB\Driver\Exception\CommandException
  • Returns the result document for the failed command

MongoDB\Driver\Exception\CommandException::getResultDocument

(mongodb >= 1.5.0)

MongoDB\Driver\Exception\CommandException::getResultDocument — Returns the result document for the failed command

Beschreibung

final public MongoDB\Driver\Exception\CommandException::getResultDocument ( ) : object

Returns the result document for the failed command.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The result document for the failed command.

Siehe auch

  • MongoDB\Driver\Manager::executeCommand() - Execute a database command


The MongoDB\Driver\Exception\ConnectionException class

(mongodb >= 1.0.0)

Einführung

Base class for exceptions thrown when the driver fails to establish a database connection.

Klassenbeschreibung

MongoDB\Driver\Exception\ConnectionException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Geerbte Eigenschaften */
protected array|null $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The MongoDB\Driver\Exception\ConnectionTimeoutException class

(mongodb >= 1.0.0)

Einführung

Thrown when the driver fails to establish a database connection within a specified time limit (connectTimeoutMS) or server selection fails (serverSelectionTimeoutMS).

Klassenbeschreibung

final MongoDB\Driver\Exception\ConnectionTimeoutException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Geerbte Eigenschaften */
protected array|null $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The MongoDB\Driver\Exception\EncryptionException class

(mongodb >= 1.7.0)

Einführung

Base class for exceptions thrown during client-side encryption.

Klassenbeschreibung

MongoDB\Driver\Exception\EncryptionException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Geerbte Eigenschaften */
protected array|null $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The MongoDB\Driver\Exception\Exception interface

(mongodb >= 1.0.0)

Einführung

Common interface for all driver exceptions. This may be used to catch only exceptions originating from the driver itself.

Klassenbeschreibung

MongoDB\Driver\Exception\Exception {
}


The MongoDB\Driver\Exception\ExecutionTimeoutException class

(mongodb >= 1.0.0)

Einführung

Thrown when a query or command fails to complete within a specified time limit (e.g. » maxTimeMS).

Klassenbeschreibung

final MongoDB\Driver\Exception\ExecutionTimeoutException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Geerbte Eigenschaften */
protected array|null $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Changelog

Version | Beschreibung
PECL mongodb 1.5.0 | This class now extends MongoDB\Driver\Exception\ServerException instead of MongoDB\Driver\Exception\RuntimeException.


The MongoDB\Driver\Exception\InvalidArgumentException class

(mongodb >= 1.0.0)

Einführung

Thrown when a driver method is given invalid arguments (e.g. invalid option types).

Klassenbeschreibung

MongoDB\Driver\Exception\InvalidArgumentException extends InvalidArgumentException implements MongoDB\Driver\Exception\Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The MongoDB\Driver\Exception\LogicException class

(mongodb >= 1.0.0)

Einführung

Thrown when the driver is incorrectly used (e.g. rewinding a cursor).

Klassenbeschreibung

MongoDB\Driver\Exception\LogicException extends LogicException implements MongoDB\Driver\Exception\Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The MongoDB\Driver\Exception\RuntimeException class

(mongodb >= 1.0.0)

Einführung

Thrown when the driver encounters a runtime error (e.g. internal error from » libmongoc).

Klassenbeschreibung

MongoDB\Driver\Exception\RuntimeException extends RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Eigenschaften */
protected array|null $errorLabels ;
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
final public hasErrorLabel ( string $errorLabel ) : bool
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

errorLabels

Contains an array of error labels to go with an exception. For example, error labels can be used to detect whether a transaction can be retried safely if the TransientTransactionError label is present. The existence of a specific error label should be tested for with the MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(), instead of interpreting this errorLabels property manually.

Changelog

Version | Beschreibung
PECL mongodb 1.6.0 | The MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() method and MongoDB\Driver\Exception\RuntimeException::errorLabels property have been added.

Inhaltsverzeichnis

  • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel — Returns whether an error label is associated with an exception


Returns whether an error label is associated with an exception

  • « MongoDB\Driver\Exception\RuntimeException
  • MongoDB\Driver\Exception\ServerException »
  • PHP Manual
  • MongoDB\Driver\Exception\RuntimeException
  • Returns whether an error label is associated with an exception

MongoDB\Driver\Exception\RuntimeException::hasErrorLabel

(mongodb >= 1.6.0)

MongoDB\Driver\Exception\RuntimeException::hasErrorLabel — Returns whether an error label is associated with an exception

Beschreibung

final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool

Returns whether the errorLabel has been set for this exception. Error labels are set by either the server or the driver to indicated specific situations on which you might want to decide on how you want to handle a specific exception. A common situation might be to find out whether you can safely retry a transaction that failed due to a transient error (like a networking issue, or a transaction conflict). Examples of error labels are TransientTransactionError and UnknownTransactionCommitResult.

Parameter-Liste

errorLabel

The name of the errorLabel to test for.

Rückgabewerte

Whether the given errorLabel is associated with this exception.

Siehe auch

  • MongoDB\Driver\Session::commitTransaction() - Commits a transaction
  • » MongoDB documentation on transactions


The MongoDB\Driver\Exception\ServerException class

(mongodb >= 1.5.0)

Einführung

Base class for exceptions thrown by the server. The code of this exception and its subclasses will correspond to the original error code from the server.

Klassenbeschreibung

MongoDB\Driver\Exception\ServerException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Geerbte Eigenschaften */
protected array|null $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The MongoDB\Driver\Exception\SSLConnectionException class (deprecated)

(mongodb >= 1.0.0)

Warnung

This exception class is deprecated and may be removed in a future major version. The driver has never thrown this exception.

Einführung

Thrown when the driver fails to establish an SSL connection with the server.

Klassenbeschreibung

final MongoDB\Driver\Exception\SSLConnectionException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Geerbte Eigenschaften */
protected array|null $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The MongoDB\Driver\Exception\UnexpectedValueException class

(mongodb >= 1.0.0)

Einführung

Thrown when the driver encounters an unexpected value (e.g. during BSON serialization or deserialization).

Klassenbeschreibung

MongoDB\Driver\Exception\UnexpectedValueException extends UnexpectedValueException implements MongoDB\Driver\Exception\Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The MongoDB\Driver\Exception\WriteException class

(mongodb >= 1.0.0)

Einführung

Base class for exceptions thrown by a failed write operation. The exception encapsulates a MongoDB\Driver\WriteResult object.

Klassenbeschreibung

abstract MongoDB\Driver\Exception\WriteException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Eigenschaften */
protected MongoDB\Driver\WriteResult $writeResult ;
/* Geerbte Eigenschaften */
protected array|null $errorLabels ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
final public getWriteResult ( ) : MongoDB\Driver\WriteResult
/* Geerbte Methoden */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel ( string $errorLabel ) : bool
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

writeResult

The MongoDB\Driver\WriteResult associated with the failed write operation.

Changelog

Version | Beschreibung
PECL mongodb 1.5.0 | This class now extends MongoDB\Driver\Exception\ServerException instead of MongoDB\Driver\Exception\RuntimeException.

Inhaltsverzeichnis

  • MongoDB\Driver\Exception\WriteException::getWriteResult — Returns the WriteResult for the failed write operation


Returns the WriteResult for the failed write operation

  • « MongoDB\Driver\Exception\WriteException
  • Class Tree »
  • PHP Manual
  • MongoDB\Driver\Exception\WriteException
  • Returns the WriteResult for the failed write operation

MongoDB\Driver\Exception\WriteException::getWriteResult

(mongodb >= 1.0.0)

MongoDB\Driver\Exception\WriteException::getWriteResult — Returns the WriteResult for the failed write operation

Beschreibung

final public MongoDB\Driver\Exception\WriteException::getWriteResult ( ) : MongoDB\Driver\WriteResult

Returns the MongoDB\Driver\WriteResult for the failed write operation. The MongoDB\Driver\WriteResult::getWriteErrors() and MongoDB\Driver\WriteResult::getWriteConcernError() methods may be used to get more details about the failure.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The MongoDB\Driver\WriteResult for the failed write operation.

Beispiele

Beispiel #1 MongoDB\Driver\Exception\WriteException::getWriteResult() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost');
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
    $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\WriteException $e) {
    $writeResult = $e->getWriteResult();

    if ($writeConcernError = $writeResult->getWriteConcernError()) {
        var_dump($writeConcernError);
    }

    if ($writeErrors = $writeResult->getWriteErrors()) {
        var_dump($writeErrors);
    }
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  object(MongoDB\Driver\WriteError)#5 (4) {
    ["message"]=>
    string(70) "E11000 duplicate key error index: db.collection.$_id_ dup key: { : 1 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(1)
    ["info"]=>
    NULL
  }
}

Siehe auch

  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations


MongoDB Exception Class Tree

The class hierarchy for MongoDB exceptions is modeled after that of the SPL Exceptions. Base classes extend their SPL counterpart and all exception classes in the extension implement the MongoDB\Driver\Exception\Exception interface.

  • MongoDB\Driver\Exception\LogicException (extends LogicException)
  • MongoDB\Driver\Exception\InvalidArgumentException (extends InvalidArgumentException)
  • MongoDB\Driver\Exception\UnexpectedValueException (extends UnexpectedValueException)
  • MongoDB\Driver\Exception\RuntimeException (extends RuntimeException)
    • MongoDB\Driver\Exception\ConnectionException
      • MongoDB\Driver\Exception\AuthenticationException
      • MongoDB\Driver\Exception\ConnectionTimeoutException
      • MongoDB\Driver\Exception\SSLConnectionException (deprecated)
    • MongoDB\Driver\Exception\EncryptionException
    • MongoDB\Driver\Exception\ServerException
      • MongoDB\Driver\Exception\CommandException
      • MongoDB\Driver\Exception\ExecutionTimeoutException
      • MongoDB\Driver\Exception\WriteException
        • MongoDB\Driver\Exception\BulkWriteException


MySQL Drivers and Plugins

PHP offers several MySQL drivers and plugins for accessing and handling MySQL.

The differences and functionality of the MySQL extensions are described within the overview of this section.

  • Overview of the MySQL PHP drivers
    • Terminology overview
    • Choosing an API
    • Choosing a library
    • Concepts
  • Mysqli — MySQL Improved Extension
    • Einführung
    • Overview
    • Quick start guide
    • Installation/Konfiguration
    • The mysqli Extension and Persistent Connections
    • Vordefinierte Konstanten
    • Notes
    • The MySQLi Extension Function Summary
    • mysqli — Die mysqli Klasse
    • mysqli_stmt — Die mysqli_stmt Klasse
    • mysqli_result — Die MySQLi-Ergebnisklasse
    • mysqli_driver — Die mysqli_driver-Klasse
    • mysqli_warning — Die MySQLi-Warnungsklasse
    • mysqli_sql_exception — Die MySQLi Fehlerbehandlungs-Klasse
    • Aliase und veraltete MySQLi Funktionen
    • Changelog
  • Mysql_xdevapi
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Mysql_xdevapi Funktionen
    • mysql_xdevapi\BaseResult — BaseResult interface
    • mysql_xdevapi\Client — Client class
    • mysql_xdevapi\Collection — Collection class
    • mysql_xdevapi\CollectionAdd — CollectionAdd class
    • mysql_xdevapi\CollectionFind — CollectionFind class
    • mysql_xdevapi\CollectionModify — CollectionModify class
    • mysql_xdevapi\CollectionRemove — CollectionRemove class
    • mysql_xdevapi\ColumnResult — ColumnResult class
    • mysql_xdevapi\CrudOperationBindable — CrudOperationBindable interface
    • mysql_xdevapi\CrudOperationLimitable — CrudOperationLimitable interface
    • mysql_xdevapi\CrudOperationSkippable — CrudOperationSkippable interface
    • mysql_xdevapi\CrudOperationSortable — CrudOperationSortable interface
    • mysql_xdevapi\DatabaseObject — DatabaseObject interface
    • mysql_xdevapi\DocResult — DocResult class
    • mysql_xdevapi\Exception — Exception class
    • mysql_xdevapi\Executable — Executable interface
    • mysql_xdevapi\ExecutionStatus — ExecutionStatus class
    • mysql_xdevapi\Expression — Expression class
    • mysql_xdevapi\Result — Result class
    • mysql_xdevapi\RowResult — RowResult class
    • mysql_xdevapi\Schema — Schema class
    • mysql_xdevapi\SchemaObject — SchemaObject interface
    • mysql_xdevapi\Session — Session class
    • mysql_xdevapi\SqlStatement — SqlStatement class
    • mysql_xdevapi\SqlStatementResult — SqlStatementResult class
    • mysql_xdevapi\Statement — Statement class
    • mysql_xdevapi\Table — Table class
    • mysql_xdevapi\TableDelete — TableDelete class
    • mysql_xdevapi\TableInsert — TableInsert class
    • mysql_xdevapi\TableSelect — TableSelect class
    • mysql_xdevapi\TableUpdate — TableUpdate class
    • mysql_xdevapi\Warning — Warning class
  • MySQL (Original) — Ursprüngliche MySQL API
    • Einführung
    • Installation/Konfiguration
    • Changelog
    • Vordefinierte Konstanten
    • Beispiele
    • MySQL Funktionen
  • Mysqlnd — MySQL Native Driver
    • Einführung
    • Overview
    • Installation
    • Laufzeit-Konfiguration
    • Incompatibilities
    • Persistent Connections
    • Statistics
    • Notes
    • Memory management
    • MySQL Native Driver Plugin API
  • mysqlnd_ms — Mysqlnd replication and load balancing plugin
    • Einführung
    • Quickstart and Examples
    • Concepts
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Mysqlnd_ms Funktionen
    • Change History
  • mysqlnd_qc — Mysqlnd query result cache plugin
    • Einführung
    • Quickstart and Examples
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • mysqlnd_qc Funktionen
    • Change History
  • mysqlnd_uh — Mysqlnd user handler plugin
    • Einführung
    • Quickstart and Examples
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • MysqlndUhConnection — The MysqlndUhConnection class
    • MysqlndUhPreparedStatement — The MysqlndUhPreparedStatement class
    • Mysqlnd_uh Funktionen
    • Change History
  • mysqlnd_mux — Mysqlnd connection multiplexing plugin
    • Einführung
    • Concepts
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Change History
  • mysqlnd_memcache — Mysqlnd Memcache plugin
    • Einführung
    • Quickstart and Examples
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Mysqlnd_memcache Funktionen
    • Change History


Overview of the MySQL PHP drivers

Introduction

There are several PHP APIs for accessing the MySQL database. Users can choose between the mysqli or PDO_MySQL extensions.

This guide explains the terminology used to describe each API, information about choosing which API to use, and also information to help choose which MySQL library to use with the API.

  • Terminology overview
  • Choosing an API
  • Choosing a library
  • Concepts
    • Buffered and Unbuffered queries
    • Character sets


Terminology overview

This section provides an introduction to the options available to you when developing a PHP application that needs to interact with a MySQL database.

What is an API?

An Application Programming Interface, or API, defines the classes, methods, functions and variables that your application will need to call in order to carry out its desired task. In the case of PHP applications that need to communicate with databases the necessary APIs are usually exposed via PHP extensions.

APIs can be procedural or object-oriented. With a procedural API you call functions to carry out tasks, with the object-oriented API you instantiate classes and then call methods on the resulting objects. Of the two, the latter is usually the preferred interface, as it is more modern and leads to better organized code.

When writing PHP applications that need to connect to the MySQL server there are several API options available. This document discusses what is available and how to select the best solution for your application.

What is a Connector?

In the MySQL documentation, the term connector refers to a piece of software that allows your application to connect to the MySQL database server. MySQL provides connectors for a variety of languages, including PHP.

If your PHP application needs to communicate with a database server you will need to write PHP code to perform such activities as connecting to the database server, querying the database and other database-related functions. Software is required to provide the API that your PHP application will use, and also handle the communication between your application and the database server, possibly using other intermediate libraries where necessary. This software is known generically as a connector, as it allows your application to connect to a database server.

What is a Driver?

A driver is a piece of software designed to communicate with a specific type of database server. The driver may also call a library, such as the MySQL Client Library or the MySQL Native Driver. These libraries implement the low-level protocol used to communicate with the MySQL database server.

By way of an example, the PHP Data Objects (PDO) database abstraction layer may use one of several database-specific drivers. One of the drivers it has available is the PDO MYSQL driver, which allows it to interface with the MySQL server.

Sometimes people use the terms connector and driver interchangeably, this can be confusing. In the MySQL-related documentation the term driver is reserved for software that provides the database-specific part of a connector package.

What is an Extension?

In the PHP documentation, you will come across another term - extension. The PHP code consists of a core, with optional extensions to the core functionality. PHP's MySQL-related extension, mysqli, is implemented using the PHP extension framework.

An extension typically exposes an API to the PHP programmer, to allow its facilities to be used programmatically. However, some extensions which use the PHP extension framework do not expose an API to the PHP programmer.

The PDO MySQL driver extension, for example, does not expose an API to the PHP programmer, but provides an interface to the PDO layer above it.

The terms API and extension should not be taken to mean the same thing, as an extension may not necessarily expose an API to the programmer.


Choosing an API

PHP offers different APIs to connect to MySQL. Below we show the APIs provided by the mysqli and PDO extensions. Each code snippet creates a connection to a MySQL server running on "example.com" using the username "user" and the password "password". And a query is run to greet the user.

Beispiel #1 Comparing the MySQL APIs

<?php
// mysqli
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);

// PDO
$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
$statement = $pdo->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);

Feature comparison

The overall performance of both extensions is considered to be about the same. Although the performance of the extension contributes only a fraction of the total run time of a PHP web request. Often, the impact is as low as 0.1%.

 | ext/mysqli | PDO_MySQL
PHP version introduced | 5.0 | 5.1
Included with PHP 7.x and 8.x | Yes | Yes
Development status | Active | Active
Lifecycle | Active | Active
Recommended for new projects | Yes | Yes
OOP Interface | Yes | Yes
Procedural Interface | Yes | No
API supports non-blocking, asynchronous queries with mysqlnd | Yes | No
Persistent Connections | Yes | Yes
API supports Charsets | Yes | Yes
API supports server-side Prepared Statements | Yes | Yes
API supports client-side Prepared Statements | No | Yes
API supports Stored Procedures | Yes | Yes
API supports Multiple Statements | Yes | Most
API supports Transactions | Yes | Yes
Transactions can be controlled with SQL | Yes | Yes
Supports all MySQL 5.1+ functionality | Yes | Most


Choosing a library

The mysqli and PDO_MySQL PHP extensions are lightweight wrappers on top of a C client library. The extensions can either use the mysqlnd library or the libmysqlclient library. Choosing a library is a compile time decision.

The mysqlnd library is part of the PHP distribution. It offers features like lazy connections and query caching, features that are not available with libmysqlclient, so using the built-in mysqlnd library is highly recommended. See the mysqlnd documentation for additional details, and a listing of features and functionality that it offers.

Beispiel #1 Configure commands for using mysqlnd or libmysqlclient

// Recommended, compiles with mysqlnd
$ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

// Alternatively recommended, compiles with mysqlnd
$ ./configure --with-mysqli --with-pdo-mysql

// Not recommended, compiles with libmysqlclient
$ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config

Library feature comparison

It is recommended to use the mysqlnd library instead of the MySQL Client Server library (libmysqlclient). Both libraries are supported and constantly being improved.

 | MySQL native driver (mysqlnd) | MySQL client server library (libmysqlclient)
Part of the PHP distribution | Yes | No
PHP version introduced | 5.3.0 | N/A
License | PHP License 3.01 | Dual-License
Development status | Active | Active
Lifecycle | No end announced | No end announced
Compile default (for all MySQL extensions) | Yes | No
Compression protocol support | Yes | Yes
SSL support | Yes | Yes
Named pipe support | Yes | Yes
Non-blocking, asynchronous queries | Yes | No
Performance statistics | Yes | No
LOAD LOCAL INFILE respects the open_basedir directive | Yes | No
Uses PHP's native memory management system (e.g., follows PHP memory limits) | Yes | No
Return numeric column as double (COM_QUERY) | Yes | No
Return numeric column as string (COM_QUERY) | Yes | Yes
Plugin API | Yes | Limited
Read/Write splitting for MySQL Replication | Yes, with plugin | No
Load Balancing | Yes, with plugin | No
Fail over | Yes, with plugin | No
Lazy connections | Yes, with plugin | No
Query caching | Yes, with plugin | No
Transparent query manipulations (E.g., auto-EXPLAIN or monitoring) | Yes, with plugin | No
Automatic reconnect | No | Optional


Concepts

Inhaltsverzeichnis

  • Buffered and Unbuffered queries
  • Character sets

These concepts are specific to the MySQL drivers for PHP.


Buffered and Unbuffered queries

Queries are using the buffered mode by default. This means that query results are immediately transferred from the MySQL Server to PHP and then are kept in the memory of the PHP process. This allows additional operations like counting the number of rows, and moving (seeking) the current result pointer. It also allows issuing further queries on the same connection while working on the result set. The downside of the buffered mode is that larger result sets might require quite a lot memory. The memory will be kept occupied till all references to the result set are unset or the result set was explicitly freed, which will automatically happen during request end the latest. The terminology "store result" is also used for buffered mode, as the whole result set is stored at once.

Hinweis:

When using libmysqlclient as library PHP's memory limit won't count the memory used for result sets unless the data is fetched into PHP variables. With mysqlnd the memory accounted for will include the full result set.

Unbuffered MySQL queries execute the query and then return a resource while the data is still waiting on the MySQL server for being fetched. This uses less memory on the PHP-side, but can increase the load on the server. Unless the full result set was fetched from the server no further queries can be sent over the same connection. Unbuffered queries can also be referred to as "use result".

Following these characteristics buffered queries should be used in cases where you expect only a limited result set or need to know the amount of returned rows before reading all rows. Unbuffered mode should be used when you expect larger results.

Because buffered queries are the default, the examples below will demonstrate how to execute unbuffered queries with each API.

Beispiel #1 Unbuffered query example: mysqli

<?php
$mysqli  = new mysqli("localhost", "my_user", "my_password", "world");
$uresult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT);

if ($uresult) {
   while ($row = $uresult->fetch_assoc()) {
       echo $row['Name'] . PHP_EOL;
   }
}
?>

Beispiel #2 Unbuffered query example: pdo_mysql

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_pass');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$uresult = $pdo->query("SELECT Name FROM City");
if ($uresult) {
   while ($row = $uresult->fetch(PDO::FETCH_ASSOC)) {
       echo $row['Name'] . PHP_EOL;
   }
}
?>


Character sets

Ideally a proper character set will be set at the server level, and doing this is described within the » Character Set Configuration section of the MySQL Server manual. Alternatively, each MySQL API offers a method to set the character set at runtime.

Achtung

The character set and character escaping

The character set should be understood and defined, as it has an affect on every action, and includes security implications. For example, the escaping mechanism (e.g., mysqli_real_escape_string() for mysqli and PDO::quote() for PDO_MySQL) will adhere to this setting. It is important to realize that these functions will not use the character set that is defined with a query, so for example the following will not have an effect on them:

Beispiel #1 Problems with setting the character set with SQL

<?php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

// Will NOT affect $mysqli->real_escape_string();
$mysqli->query("SET NAMES utf8mb4");

// Will NOT affect $mysqli->real_escape_string();
$mysqli->query("SET CHARACTER SET utf8mb4");

// But, this will affect $mysqli->real_escape_string();
$mysqli->set_charset('utf8mb4');

// But, this will NOT affect it (UTF-8 vs utf8mb4) -- don't use dashes here
$mysqli->set_charset('UTF-8');
?>

Below are examples that demonstrate how to properly alter the character set at runtime using each API.

Hinweis: Possible UTF-8 confusion

Because character set names in MySQL do not contain dashes, the string "utf8" is valid in MySQL to set the character set to UTF-8 (up to 3 byte UTF-8 Unicode Encoding). The string "UTF-8" is not valid, as using "UTF-8" will fail to change the character set and will throw an error.

Beispiel #2 Setting the character set example: mysqli

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

echo 'Initial character set: ' . $mysqli->character_set_name() . "\n";

if (!$mysqli->set_charset('utf8mb4')) {
    printf("Error loading character set utf8mb4: %s\n", $mysqli->error);
    exit;
}

echo 'Your current character set is: ' . $mysqli->character_set_name() . "\n";
?>

Beispiel #3 Setting the character set example: pdo_mysql

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8mb4", 'my_user', 'my_pass');
?>


MySQL Improved Extension

  • Einführung
  • Overview
  • Quick start guide
    • Dual procedural and object-oriented interface
    • Connections
    • Executing statements
    • Prepared Statements
    • Stored Procedures
    • Multiple Statements
    • API support for transactions
    • Metadata
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • The mysqli Extension and Persistent Connections
  • Vordefinierte Konstanten
  • Notes
  • The MySQLi Extension Function Summary
  • mysqli — Die mysqli Klasse
    • mysqli::$affected_rows — Ermittelt die Anzahl der betroffenen Zeilen in einem vorherigen MySQL Vorgang
    • mysqli::autocommit — Aktiviert oder deaktiviert das automatische Übertragen von Datenbankänderungen
    • mysqli::begin_transaction — Starts a transaction
    • mysqli::change_user — Changes the user of the specified database connection
    • mysqli::character_set_name — Returns the default character set for the database connection
    • mysqli::close — Schließt die zuvor geöffnete Datenbankverbindung
    • mysqli::commit — Commits the current transaction
    • mysqli::$connect_errno — Returns the error code from last connect call
    • mysqli::$connect_error — Returns a string description of the last connect error
    • mysqli::__construct — Open a new connection to the MySQL server
    • mysqli::debug — Performs debugging operations
    • mysqli::dump_debug_info — Dump debugging information into the log
    • mysqli::$errno — Returns the error code for the most recent function call
    • mysqli::$error_list — Returns a list of errors from the last command executed
    • mysqli::$error — Returns a string description of the last error
    • mysqli::$field_count — Returns the number of columns for the most recent query
    • mysqli::get_charset — Returns a character set object
    • mysqli::$client_info — Get MySQL client info
    • mysqli::$client_version — Returns the MySQL client version as an integer
    • mysqli::get_connection_stats — Returns statistics about the client connection
    • mysqli::$host_info — Returns a string representing the type of connection used
    • mysqli::$protocol_version — Returns the version of the MySQL protocol used
    • mysqli::$server_info — Returns the version of the MySQL server
    • mysqli::$server_version — Returns the version of the MySQL server as an integer
    • mysqli::get_warnings — Get result of SHOW WARNINGS
    • mysqli::$info — Retrieves information about the most recently executed query
    • mysqli::init — Initializes MySQLi and returns an object for use with mysqli_real_connect()
    • mysqli::$insert_id — Returns the auto generated id used in the latest query
    • mysqli::kill — Asks the server to kill a MySQL thread
    • mysqli::more_results — Check if there are any more query results from a multi query
    • mysqli::multi_query — Performs a query on the database
    • mysqli::next_result — Prepare next result from multi_query
    • mysqli::options — Set options
    • mysqli::ping — Pings a server connection, or tries to reconnect if the connection has gone down
    • mysqli::poll — Poll connections
    • mysqli::prepare — Prepare an SQL statement for execution
    • mysqli::query — Performs a query on the database
    • mysqli::real_connect — Opens a connection to a mysql server
    • mysqli::real_escape_string — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
    • mysqli::real_query — Execute an SQL query
    • mysqli::reap_async_query — Get result from async query
    • mysqli::refresh — Refreshes
    • mysqli::release_savepoint — Removes the named savepoint from the set of savepoints of the current transaction
    • mysqli::rollback — Rolls back current transaction
    • mysqli::savepoint — Set a named transaction savepoint
    • mysqli::select_db — Selects the default database for database queries
    • mysqli::set_charset — Sets the default client character set
    • mysqli::$sqlstate — Returns the SQLSTATE error from previous MySQL operation
    • mysqli::ssl_set — Used for establishing secure connections using SSL
    • mysqli::stat — Liefert den aktuellen Systemstatus
    • mysqli::stmt_init — Initializes a statement and returns an object for use with mysqli_stmt_prepare
    • mysqli::store_result — Transfers a result set from the last query
    • mysqli::$thread_id — Returns the thread ID for the current connection
    • mysqli::thread_safe — Returns whether thread safety is given or not
    • mysqli::use_result — Initiate a result set retrieval
    • mysqli::$warning_count — Gibt die Anzahl an Warnungen für den letzten Query der übergebenen Verbindung zurück.
  • mysqli_stmt — Die mysqli_stmt Klasse
    • mysqli_stmt::$affected_rows — gibt die gesamte Anzahl der Zeilen zurück, die bei der letzten ausgeführten Anweisung geändert, gelöscht oder eingefügt worden sind
    • mysqli_stmt::attr_get — Liefert den aktuellen Wert des Attributs einer Anweisung
    • mysqli_stmt::attr_set — Verändert das Verhalten einer vorbereiteten Anweisung (prepared statement)
    • mysqli_stmt::bind_param — Bindet Variablen als Parameter an eine vorbereitete Anweisung (prepared statement)
    • mysqli_stmt::bind_result — Bindet Variablen an eine vorbereitete Anweisung (prepared statement), um das Ergebnis einer Abfrage abzulegen
    • mysqli_stmt::close — Schließt eine vorbereitete Anweisung (prepared statement)
    • mysqli_stmt::__construct — Erzeugt ein neues mysqli_stmt-Objekt
    • mysqli_stmt::data_seek — Geht zu einer beliebigen Zeile in der Ergebnismenge einer Abfrage.
    • mysqli_stmt::$errno — Returns the error code for the most recent statement call
    • mysqli_stmt::$error_list — Returns a list of errors from the last statement executed
    • mysqli_stmt::$error — Returns a string description for last statement error
    • mysqli_stmt::execute — Executes a prepared Query
    • mysqli_stmt::fetch — Fetch results from a prepared statement into the bound variables
    • mysqli_stmt::$field_count — Returns the number of columns in the given statement
    • mysqli_stmt::free_result — Frees stored result memory for the given statement handle
    • mysqli_stmt::get_result — Gets a result set from a prepared statement
    • mysqli_stmt::get_warnings — Get result of SHOW WARNINGS
    • mysqli_stmt::$insert_id — Get the ID generated from the previous INSERT operation
    • mysqli_stmt::more_results — Prüft, ob es weitere Ergebnismengen bei einer Mehrfachabfrage gibt.
    • mysqli_stmt::next_result — Liest die nächste Ergebnismenge einer Mehrfachabfrage aus.
    • mysqli_stmt::$num_rows — gibt die Anzahl der Zeilen einer Ergebnismenge zurück
    • mysqli_stmt::$param_count — Liefert die Anzahl der Parameter einer Anweisung
    • mysqli_stmt::prepare — Prepare an SQL statement for execution
    • mysqli_stmt::reset — Resets a prepared statement
    • mysqli_stmt::result_metadata — Returns result set metadata from a prepared statement
    • mysqli_stmt::send_long_data — Sendet Daten blockweise
    • mysqli_stmt::$sqlstate — Gibt den SQL-Status von der vorangegangenen Ausführung der Anweisung zurück
    • mysqli_stmt::store_result — Holt die Ergebnismenge einer vorbereiteten Anweisung (Prepared Statement)
  • mysqli_result — Die MySQLi-Ergebnisklasse
    • mysqli_result::$current_field — Get current field offset of a result pointer
    • mysqli_result::data_seek — Adjusts the result pointer to an arbitrary row in the result
    • mysqli_result::fetch_all — Fetches all result rows as an associative array, a numeric array, or both
    • mysqli_result::fetch_array — Fetch a result row as an associative, a numeric array, or both
    • mysqli_result::fetch_assoc — Fetch a result row as an associative array
    • mysqli_result::fetch_field_direct — Fetch meta-data for a single field
    • mysqli_result::fetch_field — Returns the next field in the result set
    • mysqli_result::fetch_fields — Returns an array of objects representing the fields in a result set
    • mysqli_result::fetch_object — Returns the current row of a result set as an object
    • mysqli_result::fetch_row — Get a result row as an enumerated array
    • mysqli_result::$field_count — Get the number of fields in a result
    • mysqli_result::field_seek — Set result pointer to a specified field offset
    • mysqli_result::free — Frees the memory associated with a result
    • mysqli_result::$lengths — Returns the lengths of the columns of the current row in the result set
    • mysqli_result::$num_rows — Gets the number of rows in a result
  • mysqli_driver — Die mysqli_driver-Klasse
    • mysqli_driver::embedded_server_end — Stop embedded server
    • mysqli_driver::embedded_server_start — Initialize and start embedded server
    • mysqli_driver::$report_mode — Sets mysqli error reporting mode
  • mysqli_warning — Die MySQLi-Warnungsklasse
    • mysqli_warning::next — Fetch next warning
  • mysqli_sql_exception — Die MySQLi Fehlerbehandlungs-Klasse
  • Aliase und veraltete MySQLi Funktionen
    • mysqli_connect — Alias von mysqli::__construct
    • mysqli_escape_string — Alias von mysqli_real_escape_string
    • mysqli_execute — Alias für mysqli_stmt_execute
    • mysqli_get_client_stats — Returns client per-process statistics
    • mysqli_get_links_stats — Return information about open and cached links
    • mysqli_report — Alias von mysqli_driver->report_mode
    • mysqli::set_opt — Alias für mysqli_options
  • Changelog


Einführung

Die mysqli-Erweiterung ermöglicht es, die ab MySQL 4.1 gegebene Funktionalität anzusprechen. Weitere Informationen über den MySQL-Datenbank-Server sind unter » http://www.mysql.com/ zu finden.

Ein Überblick über Software, die MySQL unter PHP nutzt, ist unter Overview zu finden.

Dokumentation über MySQL befindet sich unter » http://dev.mysql.com/doc/.

Teile dieser Dokumentation sind mit Erlaubnis der Oracle Corporation dem MySQL-Handbuch entnommen.

Beispiele verwenden entweder die » world oder » sakila Datenbank, die frei verfügbar sind.


Overview

This section provides an introduction to the options available to you when developing a PHP application that needs to interact with a MySQL database.

What is an API?

An Application Programming Interface, or API, defines the classes, methods, functions and variables that your application will need to call in order to carry out its desired task. In the case of PHP applications that need to communicate with databases the necessary APIs are usually exposed via PHP extensions.

APIs can be procedural or object-oriented. With a procedural API, you call functions to carry out tasks, with the object-oriented API you instantiate classes and then call methods on the resulting objects. Of the two, the latter is usually the preferred interface, as it is more modern and leads to better-organized code.

When writing PHP applications that need to connect to the MySQL server there are several API options available. This document discusses what is available and how to select the best solution for your application.

What is a Connector?

In the MySQL documentation, the term connector refers to a piece of software that allows your application to connect to the MySQL database server. MySQL provides connectors for a variety of languages, including PHP.

If your PHP application needs to communicate with a database server you will need to write PHP code to perform such activities as connecting to the database server, querying the database, and other database-related functions. Software is required to provide the API that your PHP application will use, and also handle the communication between your application and the database server, possibly using other intermediate libraries where necessary. This software is known generically as a connector, as it allows your application to connect to a database server.

What is a Driver?

A driver is a piece of software designed to communicate with a specific type of database server. The driver may also call a library, such as the MySQL Client Library or the MySQL Native Driver. These libraries implement the low-level protocol used to communicate with the MySQL database server.

By way of an example, the PHP Data Objects (PDO) database abstraction layer may use one of several database-specific drivers. One of the drivers it has available is the PDO MYSQL driver, which allows it to interface with the MySQL server.

Sometimes people use the terms connector and driver interchangeably, this can be confusing. In the MySQL-related documentation the term driver is reserved for software that provides the database-specific part of a connector package.

What is an Extension?

In the PHP documentation you will come across another term - extension. The PHP code consists of a core, with optional extensions to the core functionality. PHP's MySQL-related extensions, such as the mysqli extension, and the PDO MySQL driver extension, are implemented using the PHP extension framework.

An extension typically exposes an API to the PHP programmer, to allow its facilities to be used programmatically. However, some extensions which use the PHP extension framework do not expose an API to the PHP programmer.

The PDO MySQL driver extension, for example, does not expose an API to the PHP programmer, but provides an interface to the PDO layer above it.

The terms API and extension should not be taken to mean the same thing, as an extension may not necessarily expose an API to the programmer.

What are the main PHP API offerings for using MySQL?

There are two main API options when considering connecting to a MySQL database server:

  • PHP's mysqli Extension

  • PHP Data Objects (PDO)

Each has its own advantages and disadvantages. The following discussion aims to give a brief introduction to the key aspects of each API.

What is PHP's mysqli Extension?

The mysqli extension, or as it is sometimes known, the MySQL improved extension, was developed to take advantage of new features found in MySQL systems versions 4.1.3 and newer. The mysqli extension is included with PHP versions 5 and later.

The mysqli extension has a number of benefits, the key enhancements over the mysql extension being:

  • Object-oriented interface

  • Support for Prepared Statements

  • Support for Multiple Statements

  • Support for Transactions

  • Enhanced debugging capabilities

As well as the object-oriented interface the extension also provides a procedural interface.

The mysqli extension is built using the PHP extension framework, its source code is located in the directory ext/mysqli.

For further information on the mysqli extension, see Mysqli.

What is PDO?

PHP Data Objects, or PDO, is a database abstraction layer specifically for PHP applications. PDO provides a consistent API for your PHP application regardless of the type of database server your application will connect to. In theory, if you are using the PDO API, you could switch the database server you used, from say Firebird to MySQL, and only need to make minor changes to your PHP code.

Other examples of database abstraction layers include JDBC for Java applications and DBI for Perl.

While PDO has its advantages, such as a clean, simple, portable API, its main disadvantage is that it doesn't allow you to use all of the advanced features that are available in the latest versions of MySQL server. For example, PDO does not allow you to use MySQL's support for Multiple Statements.

PDO is implemented using the PHP extension framework, its source code is located in the directory ext/pdo.

For further information on PDO, see the PDO.

What is the PDO MYSQL driver?

The PDO MYSQL driver is not an API as such, at least from the PHP programmer's perspective. In fact, the PDO MYSQL driver sits in the layer below PDO itself and provides MySQL-specific functionality. The programmer still calls the PDO API, but PDO uses the PDO MYSQL driver to carry out communication with the MySQL server.

The PDO MYSQL driver is one of several available PDO drivers. Other PDO drivers available include those for the Firebird and PostgreSQL database servers.

The PDO MYSQL driver is implemented using the PHP extension framework. Its source code is located in the directory ext/pdo_mysql. It does not expose an API to the PHP programmer.

For further information on the PDO MYSQL driver, see MySQL (PDO).

What is PHP's MySQL Native Driver?

In order to communicate with the MySQL database server, mysqli and the PDO MYSQL driver each use a low-level library that implements the required protocol. In the past, the only available library was the MySQL Client Library, otherwise known as libmysqlclient.

However, the interface presented by libmysqlclient was not optimized for communication with PHP applications, as libmysqlclient was originally designed with C applications in mind. For this reason, the MySQL Native Driver, mysqlnd, was developed as an alternative to libmysqlclient for PHP applications.

Both, the mysqli extension and the PDO MySQL driver can each be individually configured to use either libmysqlclient or mysqlnd. As mysqlnd is designed specifically to be utilised in the PHP system it has numerous memory and speed enhancements over libmysqlclient. You are strongly encouraged to take advantage of these improvements.

The MySQL Native Driver is implemented using the PHP extension framework. The source code is located in ext/mysqlnd. It does not expose an API to the PHP programmer.

Comparison of Features

The following table compares the functionality of the main methods of connecting to MySQL from PHP:

Comparison of MySQL API options for PHP
 | PHP's mysqli Extension | PDO (Using PDO MySQL Driver and MySQL Native Driver)
PHP version introduced | 5.0 | 5.0
MySQL development status | Active development | Active development
API supports Charsets | Yes | Yes
API supports server-side Prepared Statements | Yes | Yes
API supports client-side Prepared Statements | No | Yes
API supports Stored Procedures | Yes | Yes
API supports Multiple Statements | Yes | Most
Supports all MySQL 4.1+ functionality | Yes | Most


Quick start guide

Inhaltsverzeichnis

  • Dual procedural and object-oriented interface
  • Connections
  • Executing statements
  • Prepared Statements
  • Stored Procedures
  • Multiple Statements
  • API support for transactions
  • Metadata

This quick start guide will help with choosing and gaining familiarity with the PHP MySQL API.

This quick start gives an overview on the mysqli extension. Code examples are provided for all major aspects of the API. Database concepts are explained to the degree needed for presenting concepts specific to MySQL.

Required: A familiarity with the PHP programming language, the SQL language, and basic knowledge of the MySQL server.


Dual procedural and object-oriented interface

The mysqli extension features a dual interface. It supports the procedural and object-oriented programming paradigm.

Users migrating from the old mysql extension may prefer the procedural interface. The procedural interface is similar to that of the old mysql extension. In many cases, the function names differ only by prefix. Some mysqli functions take a connection handle as their first argument, whereas matching functions in the old mysql interface take it as an optional last argument.

Beispiel #1 Easy migration from the old mysql extension

<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
$res = mysqli_query($mysqli, "SELECT 'Please, do not use ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($res);
echo $row['_msg'];

$mysql = mysql_connect("example.com", "user", "password");
mysql_select_db("test");
$res = mysql_query("SELECT 'the mysql extension for new developments.' AS _msg FROM DUAL", $mysql);
$row = mysql_fetch_assoc($res);
echo $row['_msg'];
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Please, do not use the mysql extension for new developments.

The object-oriented interface

In addition to the classical procedural interface, users can choose to use the object-oriented interface. The documentation is organized using the object-oriented interface. The object-oriented interface shows functions grouped by their purpose, making it easier to get started. The reference section gives examples for both syntax variants.

There are no significant performance differences between the two interfaces. Users can base their choice on personal preference.

Beispiel #2 Object-oriented and procedural interface

<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$res = mysqli_query($mysqli, "SELECT 'A world full of ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($res);
echo $row['_msg'];

$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}

$res = $mysqli->query("SELECT 'choices to please everybody.' AS _msg FROM DUAL");
$row = $res->fetch_assoc();
echo $row['_msg'];
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

A world full of choices to please everybody.

The object oriented interface is used for the quickstart because the reference section is organized that way.

Mixing styles

It is possible to switch between styles at any time. Mixing both styles is not recommended for code clarity and coding style reasons.

Beispiel #3 Bad coding style

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}

$res = mysqli_query($mysqli, "SELECT 'Possible but bad style.' AS _msg FROM DUAL");
if (!$res) {
    echo "Failed to run query: (" . $mysqli->errno . ") " . $mysqli->error;
}

if ($row = $res->fetch_assoc()) {
    echo $row['_msg'];
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Possible but bad style.

See also

  • mysqli::__construct()
  • mysqli::query()
  • mysqli_result::fetch_assoc()
  • $mysqli::connect_errno
  • $mysqli::connect_error
  • $mysqli::errno
  • $mysqli::error
  • The MySQLi Extension Function Summary


Connections

The MySQL server supports the use of different transport layers for connections. Connections use TCP/IP, Unix domain sockets or Windows named pipes.

The hostname localhost has a special meaning. It is bound to the use of Unix domain sockets. It is not possible to open a TCP/IP connection using the hostname localhost you must use 127.0.0.1 instead.

Beispiel #1 Special meaning of localhost

<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";

$mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

echo $mysqli->host_info . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Localhost via UNIX socket
127.0.0.1 via TCP/IP

Connection parameter defaults

Depending on the connection function used, assorted parameters can be omitted. If a parameter is not provided, then the extension attempts to use the default values that are set in the PHP configuration file.

Beispiel #2 Setting defaults

mysqli.default_host=192.168.2.27
mysqli.default_user=root
mysqli.default_pw=""
mysqli.default_port=3306
mysqli.default_socket=/tmp/mysql.sock

The resulting parameter values are then passed to the client library that is used by the extension. If the client library detects empty or unset parameters, then it may default to the library built-in values.

Built-in connection library defaults

If the host value is unset or empty, then the client library will default to a Unix socket connection on localhost. If socket is unset or empty, and a Unix socket connection is requested, then a connection to the default socket on /tmp/mysql.sock is attempted.

On Windows systems, the host name . is interpreted by the client library as an attempt to open a Windows named pipe based connection. In this case the socket parameter is interpreted as the pipe name. If not given or empty, then the socket (pipe name) defaults to \\.\pipe\MySQL.

If neither a Unix domain socket based not a Windows named pipe based connection is to be established and the port parameter value is unset, the library will default to port 3306.

The mysqlnd library and the MySQL Client Library (libmysqlclient) implement the same logic for determining defaults.

Connection options

Connection options are available to, for example, set init commands which are executed upon connect, or for requesting use of a certain charset. Connection options must be set before a network connection is established.

For setting a connection option, the connect operation has to be
performed in three steps: creating a connection handle with
mysqli_init(), setting the requested options using
mysqli_options(), and establishing the network
connection with mysqli_real_connect().

Connection pooling

The mysqli extension supports persistent database connections, which are a special kind of pooled connections. By default, every database connection opened by a script is either explicitly closed by the user during runtime or released automatically at the end of the script. A persistent connection is not. Instead it is put into a pool for later reuse, if a connection to the same server using the same username, password, socket, port and default database is opened. Reuse saves connection overhead.

Every PHP process is using its own mysqli connection pool. Depending on the web server deployment model, a PHP process may serve one or multiple requests. Therefore, a pooled connection may be used by one or more scripts subsequently.

Persistent connection

If a unused persistent connection for a given combination of host, username, password, socket, port and default database can not be found in the connection pool, then mysqli opens a new connection. The use of persistent connections can be enabled and disabled using the PHP directive mysqli.allow_persistent. The total number of connections opened by a script can be limited with mysqli.max_links. The maximum number of persistent connections per PHP process can be restricted with mysqli.max_persistent. Please note, that the web server may spawn many PHP processes.

A common complain about persistent connections is that their state is not reset before reuse. For example, open and unfinished transactions are not automatically rolled back. But also, authorization changes which happened in the time between putting the connection into the pool and reusing it are not reflected. This may be seen as an unwanted side-effect. On the contrary, the name persistent may be understood as a promise that the state is persisted.

The mysqli extension supports both interpretations of a persistent connection: state persisted, and state reset before reuse. The default is reset. Before a persistent connection is reused, the mysqli extension implicitly calls mysqli_change_user() to reset the state. The persistent connection appears to the user as if it was just opened. No artifacts from previous usages are visible.

The mysqli_change_user() function is an expensive operation. For best performance, users may want to recompile the extension with the compile flag MYSQLI_NO_CHANGE_USER_ON_PCONNECT being set.

It is left to the user to choose between safe behavior and best performance. Both are valid optimization goals. For ease of use, the safe behavior has been made the default at the expense of maximum performance.

See also

  • mysqli::__construct()
  • mysqli::init()
  • mysqli::options()
  • mysqli::real_connect()
  • mysqli::change_user()
  • $mysqli::host_info
  • MySQLi Configuration Options
  • Persistent Database Connections


Executing statements

Statements can be executed with the
mysqli_query(), mysqli_real_query()
and mysqli_multi_query() functions.
The mysqli_query() function is the most
common, and combines the executing statement with a
buffered fetch of its result set, if any, in one call.
Calling mysqli_query() is identical to
calling mysqli_real_query()
followed by mysqli_store_result().

Beispiel #1 Connecting to MySQL

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Buffered result sets

After statement execution results can be retrieved at once to be buffered by the client or by read row by row. Client-side result set buffering allows the server to free resources associated with the statement results as early as possible. Generally speaking, clients are slow consuming result sets. Therefore, it is recommended to use buffered result sets. mysqli_query() combines statement execution and result set buffering.

PHP applications can navigate freely through buffered results. Navigation is fast because the result sets are held in client memory. Please, keep in mind that it is often easier to scale by client than it is to scale the server.

Beispiel #2 Navigation through buffered results

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

$res = $mysqli->query("SELECT id FROM test ORDER BY id ASC");

echo "Reverse order...\n";
for ($row_no = $res->num_rows - 1; $row_no >= 0; $row_no--) {
    $res->data_seek($row_no);
    $row = $res->fetch_assoc();
    echo " id = " . $row['id'] . "\n";
}

echo "Result set order...\n";
$res->data_seek(0);
while ($row = $res->fetch_assoc()) {
    echo " id = " . $row['id'] . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Reverse order...
 id = 3
 id = 2
 id = 1
Result set order...
 id = 1
 id = 2
 id = 3

Unbuffered result sets

If client memory is a short resource and freeing server resources as early as possible to keep server load low is not needed, unbuffered results can be used. Scrolling through unbuffered results is not possible before all rows have been read.

Beispiel #3 Navigation through unbuffered results

<?php
$mysqli->real_query("SELECT id FROM test ORDER BY id ASC");
$res = $mysqli->use_result();

echo "Result set order...\n";
while ($row = $res->fetch_assoc()) {
    echo " id = " . $row['id'] . "\n";
}
?>

Result set values data types

The mysqli_query(), mysqli_real_query() and mysqli_multi_query() functions are used to execute non-prepared statements. At the level of the MySQL Client Server Protocol, the command COM_QUERY and the text protocol are used for statement execution. With the text protocol, the MySQL server converts all data of a result sets into strings before sending. This conversion is done regardless of the SQL result set column data type. The mysql client libraries receive all column values as strings. No further client-side casting is done to convert columns back to their native types. Instead, all values are provided as PHP strings.

Beispiel #4 Text protocol returns strings by default

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

$res = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $res->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

id = 1 (string)
label = a (string)

It is possible to convert integer and float columns back to PHP numbers by setting the MYSQLI_OPT_INT_AND_FLOAT_NATIVE connection option, if using the mysqlnd library. If set, the mysqlnd library will check the result set meta data column types and convert numeric SQL columns to PHP numbers, if the PHP data type value range allows for it. This way, for example, SQL INT columns are returned as integers.

Beispiel #5 Native data types with mysqlnd and connection option

<?php
$mysqli = mysqli_init();
$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
$mysqli->real_connect("example.com", "user", "password", "database");

if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

$res = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $res->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

id = 1 (integer)
label = a (string)

See also

  • mysqli::__construct()
  • mysqli::init()
  • mysqli::options()
  • mysqli::real_connect()
  • mysqli::query()
  • mysqli::multi_query()
  • mysqli::use_result()
  • mysqli::store_result()
  • mysqli_result::free()


Prepared Statements

The MySQL database supports prepared statements. A prepared statement or a parameterized statement is used to execute the same statement repeatedly with high efficiency.

Basic workflow

The prepared statement execution consists of two stages: prepare and execute. At the prepare stage a statement template is sent to the database server. The server performs a syntax check and initializes server internal resources for later use.

The MySQL server supports using anonymous, positional placeholder with ?.

Beispiel #1 First stage: prepare

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

/* Non-prepared statement */
if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

/* Prepared statement, stage 1: prepare */
if (!($stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"))) {
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Prepare is followed by execute. During execute the client binds parameter values and sends them to the server. The server creates a statement from the statement template and the bound values to execute it using the previously created internal resources.

Beispiel #2 Second stage: bind and execute

<?php
/* Prepared statement, stage 2: bind and execute */
$id = 1;
if (!$stmt->bind_param("i", $id)) {
    echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}

if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
?>

Repeated execution

A prepared statement can be executed repeatedly. Upon every execution the current value of the bound variable is evaluated and sent to the server. The statement is not parsed again. The statement template is not transferred to the server again.

Beispiel #3 INSERT prepared once, executed multiple times

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

/* Non-prepared statement */
if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

/* Prepared statement, stage 1: prepare */
if (!($stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"))) {
     echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

/* Prepared statement, stage 2: bind and execute */
$id = 1;
if (!$stmt->bind_param("i", $id)) {
    echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}

if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}

/* Prepared statement: repeated execution, only data transferred from client to server */
for ($id = 2; $id < 5; $id++) {
    if (!$stmt->execute()) {
        echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
    }
}

/* explicit close recommended */
$stmt->close();

/* Non-prepared statement */
$res = $mysqli->query("SELECT id FROM test");
var_dump($res->fetch_all());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [3]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}

Every prepared statement occupies server resources. Statements should be closed explicitly immediately after use. If not done explicitly, the statement will be closed when the statement handle is freed by PHP.

Using a prepared statement is not always the most efficient way of executing a statement. A prepared statement executed only once causes more client-server round-trips than a non-prepared statement. This is why the SELECT is not run as a prepared statement above.

Also, consider the use of the MySQL multi-INSERT SQL syntax for INSERTs. For the example, multi-INSERT requires less round-trips between the server and client than the prepared statement shown above.

Beispiel #4 Less round trips using multi-INSERT SQL

<?php
if (!$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3), (4)")) {
    echo "Multi-INSERT failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Result set values data types

The MySQL Client Server Protocol defines a different data transfer protocol for prepared statements and non-prepared statements. Prepared statements are using the so called binary protocol. The MySQL server sends result set data "as is" in binary format. Results are not serialized into strings before sending. The client libraries do not receive strings only. Instead, they will receive binary data and try to convert the values into appropriate PHP data types. For example, results from an SQL INT column will be provided as PHP integer variables.

Beispiel #5 Native datatypes

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();
$res = $stmt->get_result();
$row = $res->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

id = 1 (integer)
label = a (string)

This behavior differs from non-prepared statements. By default, non-prepared statements return all results as strings. This default can be changed using a connection option. If the connection option is used, there are no differences.

Fetching results using bound variables

Results from prepared statements can either be retrieved by binding output variables, or by requesting a mysqli_result object.

Output variables must be bound after statement execution. One variable must be bound for every column of the statements result set.

Beispiel #6 Output variable binding

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("SELECT id, label FROM test"))) {
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
    echo "Execute failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

$out_id    = NULL;
$out_label = NULL;
if (!$stmt->bind_result($out_id, $out_label)) {
    echo "Binding output parameters failed: (" . $stmt->errno . ") " . $stmt->error;
}

while ($stmt->fetch()) {
    printf("id = %s (%s), label = %s (%s)\n", $out_id, gettype($out_id), $out_label, gettype($out_label));
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

id = 1 (integer), label = a (string)

Prepared statements return unbuffered result sets by default. The results of the statement are not implicitly fetched and transferred from the server to the client for client-side buffering. The result set takes server resources until all results have been fetched by the client. Thus it is recommended to consume results timely. If a client fails to fetch all results or the client closes the statement before having fetched all data, the data has to be fetched implicitly by mysqli.

It is also possible to buffer the results of a prepared statement using mysqli_stmt_store_result().

Fetching results using mysqli_result interface

Instead of using bound results, results can also be retrieved through the mysqli_result interface. mysqli_stmt_get_result() returns a buffered result set.

Beispiel #7 Using mysqli_result to fetch results

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("SELECT id, label FROM test ORDER BY id ASC"))) {
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
     echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}

if (!($res = $stmt->get_result())) {
    echo "Getting result set failed: (" . $stmt->errno . ") " . $stmt->error;
}

var_dump($res->fetch_all());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  [0]=>
  array(2) {
    [0]=>
    int(1)
    [1]=>
    string(1) "a"
  }
}

Using the mysqli_result interface offers the additional benefit of flexible client-side result set navigation.

Beispiel #8 Buffered result set for flexible read out

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a'), (2, 'b'), (3, 'c')")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("SELECT id, label FROM test"))) {
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
     echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}

if (!($res = $stmt->get_result())) {
    echo "Getting result set failed: (" . $stmt->errno . ") " . $stmt->error;
}

for ($row_no = ($res->num_rows - 1); $row_no >= 0; $row_no--) {
    $res->data_seek($row_no);
    var_dump($res->fetch_assoc());
}
$res->close();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["id"]=>
  int(3)
  ["label"]=>
  string(1) "c"
}
array(2) {
  ["id"]=>
  int(2)
  ["label"]=>
  string(1) "b"
}
array(2) {
  ["id"]=>
  int(1)
  ["label"]=>
  string(1) "a"
}

Escaping and SQL injection

Bound variables are sent to the server separately from the query and thus cannot interfere with it. The server uses these values directly at the point of execution, after the statement template is parsed. Bound parameters do not need to be escaped as they are never substituted into the query string directly. A hint must be provided to the server for the type of bound variable, to create an appropriate conversion. See the mysqli_stmt_bind_param() function for more information.

Such a separation sometimes considered as the only security feature to prevent SQL injection, but the same degree of security can be achieved with non-prepared statements, if all the values are formatted correctly. It should be noted that correct formatting is not the same as escaping and involves more logic than simple escaping. Thus, prepared statements are simply a more convenient and less error-prone approach to this element of database security.

Client-side prepared statement emulation

The API does not include emulation for client-side prepared statement emulation.

Quick prepared - non-prepared statement comparison

The table below compares server-side prepared and non-prepared statements.

Comparison of prepared and non-prepared statements
 | Prepared Statement | Non-prepared statement
Client-server round trips, SELECT, single execution | 2 | 1
Statement string transferred from client to server | 1 | 1
Client-server round trips, SELECT, repeated (n) execution | 1 + n | n
Statement string transferred from client to server | 1 template, n times bound parameter, if any | n times together with parameter, if any
Input parameter binding API | Yes, automatic input escaping | No, manual input escaping
Output variable binding API | Yes | No
Supports use of mysqli_result API | Yes, use mysqli_stmt_get_result() | Yes
Buffered result sets | Yes, use mysqli_stmt_get_result() or binding with mysqli_stmt_store_result() | Yes, default of mysqli_query()
Unbuffered result sets | Yes, use output binding API | Yes, use mysqli_real_query() with mysqli_use_result()
MySQL Client Server protocol data transfer flavor | Binary protocol | Text protocol
Result set values SQL data types | Preserved when fetching | Converted to string or preserved when fetching
Supports all SQL statements | Recent MySQL versions support most but not all | Yes

See also

  • mysqli::__construct()
  • mysqli::query()
  • mysqli::prepare()
  • mysqli_stmt::prepare()
  • mysqli_stmt::execute()
  • mysqli_stmt::bind_param()
  • mysqli_stmt::bind_result()


Stored Procedures

The MySQL database supports stored procedures. A stored procedure is a subroutine stored in the database catalog. Applications can call and execute the stored procedure. The CALL SQL statement is used to execute a stored procedure.

Parameter

Stored procedures can have IN, INOUT and OUT parameters, depending on the MySQL version. The mysqli interface has no special notion for the different kinds of parameters.

IN parameter

Input parameters are provided with the CALL statement. Please, make sure values are escaped correctly.

Beispiel #1 Calling a stored procedure

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query("CREATE PROCEDURE p(IN id_val INT) BEGIN INSERT INTO test(id) VALUES(id_val); END;")) {
    echo "Stored procedure creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("CALL p(1)")) {
    echo "CALL failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($res = $mysqli->query("SELECT id FROM test"))) {
    echo "SELECT failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

var_dump($res->fetch_assoc());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["id"]=>
  string(1) "1"
}

INOUT/OUT parameter

The values of INOUT/OUT parameters are accessed using session variables.

Beispiel #2 Using session variables

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query('CREATE PROCEDURE p(OUT msg VARCHAR(50)) BEGIN SELECT "Hi!" INTO msg; END;')) {
    echo "Stored procedure creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("SET @msg = ''") || !$mysqli->query("CALL p(@msg)")) {
    echo "CALL failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($res = $mysqli->query("SELECT @msg as _p_out"))) {
    echo "Fetch failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

$row = $res->fetch_assoc();
echo $row['_p_out'];
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hi!

Application and framework developers may be able to provide a more convenient API using a mix of session variables and databased catalog inspection. However, please note the possible performance impact of a custom solution based on catalog inspection.

Handling result sets

Stored procedures can return result sets. Result sets returned from a stored procedure cannot be fetched correctly using mysqli_query(). The mysqli_query() function combines statement execution and fetching the first result set into a buffered result set, if any. However, there are additional stored procedure result sets hidden from the user which cause mysqli_query() to fail returning the user expected result sets.

Result sets returned from a stored procedure are fetched using mysqli_real_query() or mysqli_multi_query(). Both functions allow fetching any number of result sets returned by a statement, such as CALL. Failing to fetch all result sets returned by a stored procedure causes an error.

Beispiel #3 Fetching results from stored procedures

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id FROM test; SELECT id + 1 FROM test; END;')) {
    echo "Stored procedure creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->multi_query("CALL p()")) {
    echo "CALL failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

do {
    if ($res = $mysqli->store_result()) {
        printf("---\n");
        var_dump($res->fetch_all());
        $res->free();
    } else {
        if ($mysqli->errno) {
            echo "Store failed: (" . $mysqli->errno . ") " . $mysqli->error;
        }
    }
} while ($mysqli->more_results() && $mysqli->next_result());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}

Use of prepared statements

No special handling is required when using the prepared statement interface for fetching results from the same stored procedure as above. The prepared statement and non-prepared statement interfaces are similar. Please note, that not every MYSQL server version may support preparing the CALL SQL statement.

Beispiel #4 Stored Procedures and Prepared Statements

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id FROM test; SELECT id + 1 FROM test; END;')) {
    echo "Stored procedure creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("CALL p()"))) {
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}

do {
    if ($res = $stmt->get_result()) {
        printf("---\n");
        var_dump(mysqli_fetch_all($res));
        mysqli_free_result($res);
    } else {
        if ($stmt->errno) {
            echo "Store failed: (" . $stmt->errno . ") " . $stmt->error;
        }
    }
} while ($stmt->more_results() && $stmt->next_result());
?>

Of course, use of the bind API for fetching is supported as well.

Beispiel #5 Stored Procedures and Prepared Statements using bind API

<?php
if (!($stmt = $mysqli->prepare("CALL p()"))) {
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}

do {

    $id_out = NULL;
    if (!$stmt->bind_result($id_out)) {
        echo "Bind failed: (" . $stmt->errno . ") " . $stmt->error;
    }

    while ($stmt->fetch()) {
        echo "id = $id_out\n";
    }
} while ($stmt->more_results() && $stmt->next_result());
?>

See also

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli_result::next-result()
  • mysqli_result::more-results()


Multiple Statements

MySQL optionally allows having multiple statements in one statement string. Sending multiple statements at once reduces client-server round trips but requires special handling.

Multiple statements or multi queries must be executed with mysqli_multi_query(). The individual statements of the statement string are separated by semicolon. Then, all result sets returned by the executed statements must be fetched.

The MySQL server allows having statements that do return result sets and statements that do not return result sets in one multiple statement.

Beispiel #1 Multiple Statements

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

$sql = "SELECT COUNT(*) AS _num FROM test; ";
$sql.= "INSERT INTO test(id) VALUES (1); ";
$sql.= "SELECT COUNT(*) AS _num FROM test; ";

if (!$mysqli->multi_query($sql)) {
    echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

do {
    if ($res = $mysqli->store_result()) {
        var_dump($res->fetch_all(MYSQLI_ASSOC));
        $res->free();
    }
} while ($mysqli->more_results() && $mysqli->next_result());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  [0]=>
  array(1) {
    ["_num"]=>
    string(1) "0"
  }
}
array(1) {
  [0]=>
  array(1) {
    ["_num"]=>
    string(1) "1"
  }
}

Security considerations

The API functions mysqli_query() and mysqli_real_query() do not set a connection flag necessary for activating multi queries in the server. An extra API call is used for multiple statements to reduce the likeliness of accidental SQL injection attacks. An attacker may try to add statements such as ; DROP DATABASE mysql or ; SELECT SLEEP(999). If the attacker succeeds in adding SQL to the statement string but mysqli_multi_query is not used, the server will not execute the second, injected and malicious SQL statement.

Beispiel #2 SQL Injection

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
$res    = $mysqli->query("SELECT 1; DROP TABLE mysql.user");
if (!$res) {
    echo "Error executing query: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Error executing query: (1064) You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax
to use near 'DROP TABLE mysql.user' at line 1

Prepared statements

Use of the multiple statement with prepared statements is not supported.

See also

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli_result::next-result()
  • mysqli_result::more-results()


API support for transactions

The MySQL server supports transactions depending on the storage engine used. Since MySQL 5.5, the default storage engine is InnoDB. InnoDB has full ACID transaction support.

Transactions can either be controlled using SQL or API calls. It is recommended to use API calls for enabling and disabling the autocommit mode and for committing and rolling back transactions.

Beispiel #1 Setting autocommit mode with SQL and through the API

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Recommended: using API to control transactional settings */
$mysqli->autocommit(false);

/* Won't be monitored and recognized by the replication and the load balancing plugin */
$mysqli->query('SET AUTOCOMMIT = 0');

Optional feature packages, such as the replication and load balancing plugin, can easily monitor API calls. The replication plugin offers transaction aware load balancing, if transactions are controlled with API calls. Transaction aware load balancing is not available if SQL statements are used for setting autocommit mode, committing or rolling back a transaction.

Beispiel #2 Commit and rollback

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");
$mysqli->autocommit(false);

$mysqli->query("INSERT INTO test(id) VALUES (1)");
$mysqli->rollback();

$mysqli->query("INSERT INTO test(id) VALUES (2)");
$mysqli->commit();

Please note, that the MySQL server cannot roll back all statements. Some statements cause an implicit commit.

See also

  • mysqli::autocommit()
  • mysqli::begin_transaction()
  • mysqli::commit()
  • mysqli::rollback()


Metadata

A MySQL result set contains metadata. The metadata describes the columns found in the result set. All metadata sent by MySQL is accessible through the mysqli interface. The extension performs no or negligible changes to the information it receives. Differences between MySQL server versions are not aligned.

Meta data is access through the mysqli_result interface.

Beispiel #1 Accessing result set meta data

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

$res = $mysqli->query("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
var_dump($res->fetch_fields());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  object(stdClass)#3 (13) {
    ["name"]=>
    string(4) "_one"
    ["orgname"]=>
    string(0) ""
    ["table"]=>
    string(0) ""
    ["orgtable"]=>
    string(0) ""
    ["def"]=>
    string(0) ""
    ["db"]=>
    string(0) ""
    ["catalog"]=>
    string(3) "def"
    ["max_length"]=>
    int(1)
    ["length"]=>
    int(1)
    ["charsetnr"]=>
    int(63)
    ["flags"]=>
    int(32897)
    ["type"]=>
    int(8)
    ["decimals"]=>
    int(0)
  }
  [1]=>
  object(stdClass)#4 (13) {
    ["name"]=>
    string(4) "_two"
    ["orgname"]=>
    string(0) ""
    ["table"]=>
    string(0) ""
    ["orgtable"]=>
    string(0) ""
    ["def"]=>
    string(0) ""
    ["db"]=>
    string(0) ""
    ["catalog"]=>
    string(3) "def"
    ["max_length"]=>
    int(5)
    ["length"]=>
    int(5)
    ["charsetnr"]=>
    int(8)
    ["flags"]=>
    int(1)
    ["type"]=>
    int(253)
    ["decimals"]=>
    int(31)
  }
}

Prepared statements

Meta data of result sets created using prepared statements are accessed the same way. A suitable mysqli_result handle is returned by mysqli_stmt_result_metadata().

Beispiel #2 Prepared statements metadata

<?php
$stmt = $mysqli->prepare("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
$stmt->execute();
$res = $stmt->result_metadata();
var_dump($res->fetch_fields());
?>

See also

  • mysqli::query()
  • mysqli_result::fetch_fields()


Anforderungen

Um diese Erweitertung zu benutzen muss PHP mit Support für die mysqli Erweiterung compiliert werden.

MySQL 8

Bei der Verwendung von PHP vor 7.1.16 oder PHP 7.2 vor 7.2.4, ist als Standard Passwort-Plugin des MySQL 8 Servers mysql_native_password zu konfigurieren; andernfalls werden Fehlermeldungen in der Art The server requested authentication method unknown to the client [caching_sha2_password] auftreten, selbst wenn caching_sha2_password nicht verwendet wird.

Das liegt daran, dass das Standard Passwort-Plugin von MySQL 8 caching_sha2_password ist, ein Plugin, dass den älteren PHP (mysqlnd) Versionen nicht bekannt ist. Daher sollte also default_authentication_plugin=mysql_native_password in my.cnf konfiguriert werden. Das caching_sha2_password Plugin wird in einer zukünftigen PHP-Version unterstützt werden. In der Zwischenzeit wird es von der mysql_xdevapi Extension unterstützt.


Installation

Die mysqli-Erweiterung wurde in PHP 5.0.0 eingeführt; der MySQL Native Driver mit PHP 5.3.0.

Installation on Linux

Die gängigen Unix-Distributionen enthalten Binärversionen von PHP, die installiert werden können. Obwohl diese Binärversionen typischerweise mit Unterstützung für die MySQL-Erweiterungen erstellt wurden, müssen möglicherweise die Erweiterungs-Bibliotheken selbst unter Verwendung eines zusätzlichen Pakets installiert werden. Die Paketverwaltung der gewählten Distribution ist auf dessen Verfügbarkeit zu prüfen.

Beispielsweise installiert unter Ubuntu das Paket php5-mysql die PHP-Erweiterungen ext/mysql, ext/mysqli und pdo_mysql. Unter CentOS installiert das Paket php-mysql diese drei Erweiterungen ebenfalls.

Alternativ kann diese Erweiterung auch selbst kompiliert werden. Das Kompilieren von PHP aus den Quellen erlaubt die Auswahl der MySQL-Erweiterungen, die verwendet werden sollen, sowie die Wahl der Client-Bibliothek für jede Erweiterung.

Der MySQL Native Driver wird empfohlen, da er zu einer verbesserten Performance führt und Zugriff auf Funktionen gewährt, die bei der Verwendung der MySQL-Client-Bibliothek nicht zur Verfügung stehen. Lesen Sie Was versteht man unter dem MySQL Native Driver von PHP?, um einen kurzen Überblick über die Vorteile des MySQL Native Drivers zu erhalten.

/path/to/mysql_config stellt den Pfad des mysql_config-Programms dar, das mit MySQL-Server ausgeliefert wird.

Unterstützungsmatrix für die MySQLi-Kompilierung
PHP-Version | Standard | Konfigurationsoptionen: mysqlnd | Konfigurationsoptionen: libmysqlclient | Changelog
5.4.x und höher | mysqlnd | --with-mysqli | --with-mysqli=/path/to/mysql_config | mysqlnd ist nun standardmäßig aktiviert
5.3.x | libmysqlclient | --with-mysqli=mysqlnd | --with-mysqli=/path/to/mysql_config | mysqlnd wird unterstützt
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Nicht verfügbar | --with-mysqli=/path/to/mysql_config | mysqlnd wird nicht unterstützt

Es ist möglich, MySQL-Erweiterungen und Client-Bibliotheken frei zu mischen. Zum Beispiel ist es denkbar, dass die MySQL-Erweiterung die MySQL-Client-Bibliothek (libmysqlclient) verwendet, während die mysqli-Erweiterung so konfiguriert ist, dass sie den MySQL Native Driver verwendet. Alle Kombinationen von Erweiterungen und Client-Bibliotheken sind möglich.

Installation auf Windows-Systemen

Unter Windows wird PHP in der Regel durch den Binär-Installer installiert.

PHP 5.3.0 und neuer

Unter Windows gilt für die PHP-Versionen 5.3 und neuer, dass die mysqli-Erweiterung standardmäßig aktiviert ist und den MySQL Native Driver verwendet. Das bedeutet, dass Sie sich nicht um die Konfiguration des Zugriffs auf die libmysql.dll kümmern müssen.

PHP 5.0, 5.1, 5.2

Unter diesen alten, nicht mehr unterstützten PHP-Versionen (die Unterstützung von PHP 5.2 wurde am 6. Januar 2011 eingestellt), sind zusätzliche Konfigurationsschritte notwendig, um mysqli zu aktivieren und die Client-Bibliothek anzugeben, die verwendet werden soll.

Die mysqli-Erweiterung ist standardmäßig nicht aktiviert, daher muss die php_mysqli.dll-DLL in der php.ini aktiviert werden. Um dies zu tun, müssen Sie die php.ini-Datei finden (typischerweise liegt diese unter c:\php) und das Kommentarzeichen (ein Semikolon) vom Anfang der Zeile extension=php_mysqli.dll im Abschnitt [PHP_MYSQLI] entfernen.

Wenn Sie die MySQL-Client-Bibliothek mit mysqli verwenden wollen, stellen Sie sicher, dass PHP auf die Bibliothek zugreifen kann. Die MySQL-Client-Bibliothek ist in einer Datei namens libmysql.dll der PHP-Windowsdistribution enthalten. Um sie erfolgreich laden zu können, muss sie innerhalb des Pfades liegen, der von der Windows-Umgebungsvariablen PATH bestimmt wird. Lesen Sie dazu auch den FAQ-Eintrag "Wie füge ich mein PHP-Verzeichnis der PATH-Variablen unter Windows hinzu?", um mehr Informationen darüber zu erhalten. Das Kopieren von libmysql.dll in das Windows-Systemverzeichnis (typischerweise c:\Windows\system) funktioniert ebenfalls, da das Systemverzeichnis standardmäßig im PATH enthalten ist. Allerdings raten wir dringend von dieser Arbeitsweise ab.

Wie bei der Aktivierung jeder anderen PHP-Erweiterung (wie z.B. php_mysqli.dll) sollte auch hier die PHP-Anweisung extension_dir auf das Verzeichnis zeigen, in dem die vorhandenen PHP-Erweiterungen liegen. Lesen Sie dazu auch den Abschnitt Manuelle PHP-Installation auf Windows. Ein entsprechender extension_dir-Wert für PHP 5 ist zum Beispiel c:\php\ext.

Hinweis:

Wenn beim Starten des Webservers ein Fehler ähnlich dem folgenden auftritt: "Unable to load dynamic library './php_mysqli.dll'", liegt das daran, dass php_mysqli.dll und/oder libmysql.dll vom System nicht gefunden wird.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

MySQLi-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
mysqli.allow_local_infile | "0" | PHP_INI_SYSTEM | Vor PHP 7.2.16 und 7.3.3 war der Standardwert "1".
mysqli.local_infile_directory |  | PHP_INI_SYSTEM |
mysqli.allow_persistent | "1" | PHP_INI_SYSTEM |
mysqli.max_persistent | "-1" | PHP_INI_SYSTEM |
mysqli.max_links | "-1" | PHP_INI_SYSTEM |
mysqli.default_port | "3306" | PHP_INI_ALL |
mysqli.default_socket | NULL | PHP_INI_ALL |
mysqli.default_host | NULL | PHP_INI_ALL |
mysqli.default_user | NULL | PHP_INI_ALL |
mysqli.default_pw | NULL | PHP_INI_ALL |
mysqli.reconnect | "0" | PHP_INI_SYSTEM |
mysqli.rollback_on_cached_plink | TRUE | PHP_INI_SYSTEM |

Für weitere Details und Definitionen über die oben genannten PHP_INI_*-Konstanten siehe das Kapitel über Konfigurations-Änderungen.

Hier eine kurze Erklärung der Konfigurationsoptionen:

mysqli.allow_local_infile int

Erlaubt den Zugriff auf, aus der Persepektive von PHP, lokale Dateien mit LOAD DATA-Anweisungen.

mysqli.local_infile_directory string

Erlaubt es, das Laden von LOCAL DATA auf Dateien zu beschränken, die sich in diesem bestimmten Verzeichnis befinden.

mysqli.allow_persistent int

Aktiviert die Möglichkeit, persistente Verbindungen mittels mysqli_connect() zu erstellen.

mysqli.max_persistent int

Die maximale Anzahl persistenter Verbindungen. Ist der Wert auf 0 gesetzt, ist die Anzahl unbegrenzt.

mysqli.max_links int

Die maximale Anzahl von MySQL-Verbindungen pro Prozess.

mysqli.default_port int

Die Standard-TCP-Portnummer, die benutzt werden soll, wenn eine Verbindung zum Datenbankserver aufgebaut werden soll und kein anderer Port explizit angegeben wurde. Wenn hier kein Standardport angegeben wird, wird der Port aus der MYSQL_TCP_PORT Umgebungs-Variable, dem mysql-tcp-Eintrag in der /etc/services oder der compile-time MYSQL_PORT-Konstante (in dieser Reihenfolge) verwendet. Win32 benutzt nur die MYSQL_PORT-Konstante.

mysqli.default_socket string

Der Standard-Socketname, der beim Verbindungsaufbau zu einem lokalen Datenbankserver verwendet wird, sofern kein anderer Socketname angegeben wurde.

mysqli.default_host string

Der Standard-Server-Host, der beim Verbindungsaufbau zu einem lokalen Datenbankserver verwendet wird, sofern kein anderer Host angegeben wurde.

mysqli.default_user string

Der Standard-Benutzername, der beim Verbindungsaufbau zu einem lokalen Datenbankserver verwendet wird, sofern kein anderer Name angegeben wurde.

mysqli.default_pw string

Das Standard-Passwort, das beim Verbindungsaufbau zu einem lokalen Datenbankserver verwendet wird, sofern kein anderes Passwort angegeben wurde.

mysqli.reconnect int

Automatischer Neuaufbau der Verbindung, falls die Verbindung getrennt wird.

Hinweis: Diese php.ini Einstellung wird vom mysqlnd-Treiber ignoriert.

mysqli.rollback_on_cached_plink bool

Ist diese Option aktiviert, dann werden beim Schließen einer persistenten Verbindung alle ausstehenden Transaktionen dieser Verbindung zurückgesetzt, bevor sie in den Pool der persistenten Verbindungen zurückgestellt wird. Andernfalls werden ausstehende Transaktionen erst zurückgesetzt, wenn die Verbindung wiederverwendet oder wenn sie tatsächlich geschlossen wird.

Benutzer können MYSQL_OPT_READ_TIMEOUT nicht durch einen API-Aufruf oder Laufzeit-Konfigurationseinstellungen ändern. Es ist zu beachten, dass es, wenn das möglich wäre, Unterschiede gäbe, wie libmysqlclient und Streams den Wert von MYSQL_OPT_READ_TIMEOUT interpretieren.


  • « Laufzeit-Konfiguration
  • The mysqli Extension and Persistent Connections »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert keine Ressource-Typen.


The mysqli Extension and Persistent Connections

The idea behind persistent connections is that a connection between a client process and a database can be reused by a client process, rather than being created and destroyed multiple times. This reduces the overhead of creating fresh connections every time one is required, as unused connections are cached and ready to be reused.

Unlike the mysql extension, mysqli does not provide a separate function for opening persistent connections. To open a persistent connection you must prepend p: to the hostname when connecting.

The problem with persistent connections is that they can be left in unpredictable states by clients. For example, a table lock might be activated before a client terminates unexpectedly. A new client process reusing this persistent connection will get the connection as is. Any cleanup would need to be done by the new client process before it could make good use of the persistent connection, increasing the burden on the programmer.

The persistent connection of the mysqli extension however provides built-in cleanup handling code. The cleanup carried out by mysqli includes:

  • Rollback active transactions

  • Close and drop temporary tables

  • Unlock tables

  • Reset session variables

  • Close prepared statements (always happens with PHP)

  • Close handler

  • Release locks acquired with GET_LOCK()

This ensures that persistent connections are in a clean state on return from the connection pool, before the client process uses them.

The mysqli extension does this cleanup by automatically calling the C-API function mysql_change_user().

The automatic cleanup feature has advantages and disadvantages though. The advantage is that the programmer no longer needs to worry about adding cleanup code, as it is called automatically. However, the disadvantage is that the code could potentially be a little slower, as the code to perform the cleanup needs to run each time a connection is returned from the connection pool.

It is possible to switch off the automatic cleanup code, by compiling PHP with MYSQLI_NO_CHANGE_USER_ON_PCONNECT defined.

Hinweis:

The mysqli extension supports persistent connections when using either MySQL Native Driver or MySQL Client Library.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

MYSQLI_READ_DEFAULT_GROUP

Liest Optionen der angegebenen Gruppe aus my.cnf oder der mit MYSQLI_READ_DEFAULT_FILE angegebenen Datei.

MYSQLI_READ_DEFAULT_FILE

Liest Optionen aus der angegebenen Datei anstelle von my.cnf.

MYSQLI_OPT_CONNECT_TIMEOUT

Der Verbindungs-Timeout in Sekunden.

MYSQLI_OPT_READ_TIMEOUT

Der Timeout für das Ergebnis der Befehlsausführung in Sekunden. Verfügbar ab PHP 7.2.0.

MYSQLI_OPT_LOCAL_INFILE

Ermöglicht den Befehl LOAD LOCAL INFILE.

MYSQLI_OPT_INT_AND_FLOAT_NATIVE

Konvertiert Integer- und Float-Spalten zurück in PHP-Zahlen. Nur gültig für mysqlnd.

MYSQLI_OPT_NET_CMD_BUFFER_SIZE

Die Größe des internen Kommando-/Netzwerkpuffers. Nur gültig für mysqlnd.

MYSQLI_OPT_NET_READ_BUFFER_SIZE

Die Maximalgröße der Datenblöcke in Bytes, wenn der Textkörper eines MySQL-Befehlspakets gelesen wird. Nur gültig für mysqlnd.

MYSQLI_OPT_SSL_VERIFY_SERVER_CERT

Benötigt MySQL 5.1.10 und höher.

MYSQLI_INIT_COMMAND

Das Kommando, das bei der Verbindungsaufnahme zum MySQL-Server ausgeführt werden soll. Dieses Kommando wird auch bei automatischer Wiederaufnahme der Verbindung nach Unterbrechungen ausgeführt.

MYSQLI_CLIENT_SSL

Verwendet SSL-Verschlüsselung. Diese Option sollte nicht von Anwendungen gesetzt werden, sie wird stattdessen von der MySQL-Client-Bibliothek intern gesetzt.

MYSQLI_CLIENT_COMPRESS

Verwendet komprimierte Übertragung.

MYSQLI_CLIENT_INTERACTIVE

Unterbricht die Verbindung nach interactive_timeout Sekunden Inaktivität (an Stelle von wait_timeout). Die wait_timeout-Variable der Verbindungssession wird auf den Wert der interactive_timeout-Variablen der Session gesetzt.

MYSQLI_CLIENT_IGNORE_SPACE

Ermöglicht Leerzeichen nach Funktionsnamen, dadurch werden alle Funktionsnamen automatisch zu reservierten Worten.

MYSQLI_CLIENT_NO_SCHEMA

Deaktiviert die datenbank.tabelle.spalte-Syntax.

MYSQLI_CLIENT_MULTI_QUERIES

Ermöglicht mehrere Semikolon-getrennte Abfragen innerhalb eines einzelnen mysqli_query()-Aufrufs.

MYSQLI_STORE_RESULT

Die Abfrageergebnisse werden clientseitig gepuffert.

MYSQLI_USE_RESULT

Die Abfrageergebnisse werden nicht clientseitig gepuffert.

MYSQLI_ASSOC

Die Spaltenwerte werden als Array mit dem Spaltennamen als Schlüssel zurückgegeben.

MYSQLI_NUM

Die Spaltenwerte werden als Array mit der Spaltennummer als Schlüssel zurückgegeben.

MYSQLI_BOTH

Die Spaltenwerte werden als Array mit sowohl der Spaltennummer als auch dem Spaltennamen als Schlüssel zurückgegeben.

MYSQLI_NOT_NULL_FLAG

Gibt an, dass eine Spalte als NOT NULL definiert ist.

MYSQLI_PRI_KEY_FLAG

Die Spalte ist Teil eines Primärschlüssels.

MYSQLI_UNIQUE_KEY_FLAG

Die Spalte ist Teil eines Unique-Index.

MYSQLI_MULTIPLE_KEY_FLAG

Die Spalte ist Teil eines Index.

MYSQLI_BLOB_FLAG

Die Spalte ist als BLOB definiert.

MYSQLI_UNSIGNED_FLAG

Die Spalte ist als UNSIGNED definiert.

MYSQLI_ZEROFILL_FLAG

Die Spalte ist als ZEROFILL definiert.

MYSQLI_AUTO_INCREMENT_FLAG

Die Spalte ist als AUTO_INCREMENT definiert.

MYSQLI_TIMESTAMP_FLAG

Die Spalte ist als TIMESTAMP definiert.

MYSQLI_SET_FLAG

Die Spalte ist als SET definiert.

MYSQLI_NUM_FLAG

Die Spalte ist als NUMERIC definiert.

MYSQLI_PART_KEY_FLAG

Die Spalte ist Teil eines mehrspaltigen Index.

MYSQLI_GROUP_FLAG

Die Spalte ist Teil der GROUP BY-Bedingung

MYSQLI_TYPE_DECIMAL

Die Spalte ist als DECIMAL definiert.

MYSQLI_TYPE_NEWDECIMAL

Die Spalte ist als DECIMAL oder NUMERIC definiert. Verfügbar ab MySQL 5.0.3.

MYSQLI_TYPE_BIT

Die Spalte ist als BIT definiert. Verfügbar ab MySQL 5.0.3.

MYSQLI_TYPE_TINY

Die Spalte ist als TINYINT definiert.

MYSQLI_TYPE_SHORT

Die Spalte ist als SMALLINT definiert.

MYSQLI_TYPE_LONG

Die Spalte ist als INT definiert.

MYSQLI_TYPE_FLOAT

Die Spalte ist als FLOAT definiert.

MYSQLI_TYPE_DOUBLE

Die Spalte ist als DOUBLE definiert.

MYSQLI_TYPE_NULL

Die Spalte ist als DEFAULT NULL definiert.

MYSQLI_TYPE_TIMESTAMP

Die Spalte ist als TIMESTAMP definiert.

MYSQLI_TYPE_LONGLONG

Die Spalte ist als BIGINT definiert.

MYSQLI_TYPE_INT24

Die Spalte ist als MEDIUMINT definiert.

MYSQLI_TYPE_DATE

Die Spalte ist als DATE definiert.

MYSQLI_TYPE_TIME

Die Spalte ist als TIME definiert.

MYSQLI_TYPE_DATETIME

Die Spalte ist als DATETIME definiert.

MYSQLI_TYPE_YEAR

Die Spalte ist als YEAR definiert.

MYSQLI_TYPE_NEWDATE

Die Spalte ist als DATE definiert.

MYSQLI_TYPE_INTERVAL

Die Spalte ist als INTERVAL definiert.

MYSQLI_TYPE_ENUM

Die Spalte ist als ENUM definiert.

MYSQLI_TYPE_SET

Die Spalte ist als SET definiert.

MYSQLI_TYPE_TINY_BLOB

Die Spalte ist als TINYBLOB definiert.

MYSQLI_TYPE_MEDIUM_BLOB

Die Spalte ist als MEDIUMBLOB definiert.

MYSQLI_TYPE_LONG_BLOB

Die Spalte ist als LONGBLOB definiert.

MYSQLI_TYPE_BLOB

Die Spalte ist als BLOB definiert.

MYSQLI_TYPE_VAR_STRING

Die Spalte ist als VARCHAR definiert.

MYSQLI_TYPE_STRING

Die Spalte ist als CHAR oder BINARY definiert.

MYSQLI_TYPE_CHAR

Die Spalte ist als TINYINT definiert. Für CHAR, siehe MYSQLI_TYPE_STRING.

MYSQLI_TYPE_GEOMETRY

Die Spalte ist als GEOMETRY definiert.

MYSQLI_TYPE_JSON

Die Spalte ist als JSON definiert. Nur gültig für mysqlnd und MySQL 5.7.8 und höher.

MYSQLI_NEED_DATA

Weitere Daten für eine gebundene Variable verfügbar.

MYSQLI_NO_DATA

Keine weiteren Daten für eine gebundene Variable verfügbar.

MYSQLI_DATA_TRUNCATED

Die Daten wurden unvollständig übertragen. Verfügbar ab MySQL 5.0.5.

MYSQLI_ENUM_FLAG

Die Spalte ist als ENUM definiert.

MYSQLI_BINARY_FLAG

Die Spalte ist als BINARY definiert.

MYSQLI_CURSOR_TYPE_FOR_UPDATE

MYSQLI_CURSOR_TYPE_NO_CURSOR

MYSQLI_CURSOR_TYPE_READ_ONLY

MYSQLI_CURSOR_TYPE_SCROLLABLE

MYSQLI_STMT_ATTR_CURSOR_TYPE

MYSQLI_STMT_ATTR_PREFETCH_ROWS

MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH

MYSQLI_SET_CHARSET_NAME

MYSQLI_REPORT_INDEX

Meldet, wenn kein Index oder ein schlechter Index in einer Abfrage verwendet wurde.

MYSQLI_REPORT_ERROR

Meldet Fehler von mysqli-Funktionsaufrufen.

MYSQLI_REPORT_STRICT

Löst bei Fehlern eine mysqli_sql_exception aus, anstatt eine Warnung zu erzeugen.

MYSQLI_REPORT_ALL

Aktiviert alle Report-Optionen.

MYSQLI_REPORT_OFF

Schaltet die Meldungen aus.

MYSQLI_DEBUG_TRACE_ENABLED

Wenn dies gleich 1 ist, dann steht die mysqli_debug()-Funktionalität zur Verfügung.

MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED

MYSQLI_SERVER_QUERY_NO_INDEX_USED

MYSQLI_SERVER_PUBLIC_KEY

MYSQLI_REFRESH_GRANT

Aktualisiert die Berechtigungstabellen.

MYSQLI_REFRESH_LOG

Leert die Logs so, wie die Ausführung der SQL-Anweisung FLUSH LOGS.

MYSQLI_REFRESH_TABLES

Leert den Tabellen-Zwischenspeicher so, wie die Ausführung der SQL-Anweisung FLUSH TABLES.

MYSQLI_REFRESH_HOSTS

Leert den Host-Zwischenspeicher so, wie die Ausführung der SQL-Anweisung FLUSH HOSTS.

MYSQLI_REFRESH_STATUS

Setzt die Statusvariablen so zurück, wie die Ausführung der SQL-Anweisung FLUSH STATUS.

MYSQLI_REFRESH_THREADS

Leert den Thread-Zwischenspeicher.

MYSQLI_REFRESH_SLAVE

Auf einem Slave-Replikationsserver: setzt die Master-Server-Informationen zurück und führt einen Neustart des Slave durch. Dies ist wie die Ausführung der SQL-Anweisung RESET SLAVE.

MYSQLI_REFRESH_MASTER

Auf einem Master-Replikationsserver: entfernt die binären Protokolldateien, die im binären Protokollindex aufgeführt werden, und schneidet die Indexdatei ab. Dies ist wie die Ausführung der SQL-Anweisung RESET MASTER.

MYSQLI_TRANS_COR_AND_CHAIN

Fügt "AND CHAIN" an mysqli_commit() oder mysqli_rollback() an.

MYSQLI_TRANS_COR_AND_NO_CHAIN

Fügt "AND NO CHAIN" an mysqli_commit() oder mysqli_rollback() an.

MYSQLI_TRANS_COR_RELEASE

Fügt "RELEASE" an mysqli_commit() oder mysqli_rollback() an.

MYSQLI_TRANS_COR_NO_RELEASE

Fügt "NO RELEASE" an mysqli_commit() oder mysqli_rollback() an.

MYSQLI_TRANS_START_READ_ONLY

Beginnt die Transaktion als "START TRANSACTION READ ONLY" mit mysqli_begin_transaction().

MYSQLI_TRANS_START_READ_WRITE

Beginnt die Transaktion als "START TRANSACTION READ WRITE" mit mysqli_begin_transaction().

MYSQLI_TRANS_START_CONSISTENT_SNAPSHOT

Beginnt die Transaktion als "START TRANSACTION WITH CONSISTENT SNAPSHOT" mit mysqli_begin_transaction().

MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT

Benötigt MySQL 5.6.5 und höher.


Notes

Some implementation notes:

  1. Support was added for MYSQL_TYPE_GEOMETRY to the MySQLi extension in PHP 5.3.

  2. Note there are different internal implementations within libmysqlclient and mysqlnd for handling columns of type MYSQL_TYPE_GEOMETRY. Generally speaking, mysqlnd will allocate significantly less memory. For example, if there is a POINT column in a result set, libmysqlclient may pre-allocate up to 4GB of RAM although less than 50 bytes are needed for holding a POINT column in memory. Memory allocation is much lower, less than 50 bytes, if using mysqlnd.


The MySQLi Extension Function Summary

Summary of mysqli methods
mysqli Class
OOP Interface | Procedural Interface | Alias (Do not use) | Description
Properties
$mysqli::affected_rows | mysqli_affected_rows() | N/A | Gets the number of affected rows in a previous MySQL operation
$mysqli::client_info | mysqli_get_client_info() | N/A | Returns the MySQL client version as a string
$mysqli::client_version | mysqli_get_client_version() | N/A | Returns MySQL client version info as an integer
$mysqli::connect_errno | mysqli_connect_errno() | N/A | Returns the error code from last connect call
$mysqli::connect_error | mysqli_connect_error() | N/A | Returns a string description of the last connect error
$mysqli::errno | mysqli_errno() | N/A | Returns the error code for the most recent function call
$mysqli::error | mysqli_error() | N/A | Returns a string description of the last error
$mysqli::field_count | mysqli_field_count() | N/A | Returns the number of columns for the most recent query
$mysqli::host_info | mysqli_get_host_info() | N/A | Returns a string representing the type of connection used
$mysqli::protocol_version | mysqli_get_proto_info() | N/A | Returns the version of the MySQL protocol used
$mysqli::server_info | mysqli_get_server_info() | N/A | Returns the version of the MySQL server
$mysqli::server_version | mysqli_get_server_version() | N/A | Returns the version of the MySQL server as an integer
$mysqli::info | mysqli_info() | N/A | Retrieves information about the most recently executed query
$mysqli::insert_id | mysqli_insert_id() | N/A | Returns the auto generated id used in the last query
$mysqli::sqlstate | mysqli_sqlstate() | N/A | Returns the SQLSTATE error from previous MySQL operation
$mysqli::warning_count | mysqli_warning_count() | N/A | Returns the number of warnings from the last query for the given link
Methods
mysqli::autocommit() | mysqli_autocommit() | N/A | Turns on or off auto-committing database modifications
mysqli::change_user() | mysqli_change_user() | N/A | Changes the user of the specified database connection
mysqli::character_set_name(), mysqli::client_encoding | mysqli_character_set_name() | mysqli_client_encoding() | Returns the default character set for the database connection
mysqli::close() | mysqli_close() | N/A | Closes a previously opened database connection
mysqli::commit() | mysqli_commit() | N/A | Commits the current transaction
mysqli::__construct() | mysqli_connect() | N/A | Open a new connection to the MySQL server [Note: static (i.e. class) method]
mysqli::debug() | mysqli_debug() | N/A | Performs debugging operations
mysqli::dump_debug_info() | mysqli_dump_debug_info() | N/A | Dump debugging information into the log
mysqli::get_charset() | mysqli_get_charset() | N/A | Returns a character set object
mysqli::get_connection_stats() | mysqli_get_connection_stats() | N/A | Returns client connection statistics. Nur in mysqlnd verfügbar.
mysqli::get_client_info() | mysqli_get_client_info() | N/A | Returns the MySQL client version as a string
mysqli::get_client_stats() | mysqli_get_client_stats() | N/A | Returns client per-process statistics. Nur in mysqlnd verfügbar.
mysqli::get_server_info() | mysqli_get_server_info() | N/A | Returns a string representing the version of the MySQL server that the MySQLi extension is connected to
mysqli::get_warnings() | mysqli_get_warnings() | N/A | NOT DOCUMENTED
mysqli::init() | mysqli_init() | N/A | Initializes MySQLi and returns an object for use with mysqli_real_connect.
mysqli::kill() | mysqli_kill() | N/A | Asks the server to kill a MySQL thread
mysqli::more_results() | mysqli_more_results() | N/A | Check if there are any more query results from a multi query
mysqli::multi_query() | mysqli_multi_query() | N/A | Performs a query on the database
mysqli::next_result() | mysqli_next_result() | N/A | Prepare next result from multi_query
mysqli::options() | mysqli_options() | mysqli_set_opt() | Set options
mysqli::ping() | mysqli_ping() | N/A | Pings a server connection, or tries to reconnect if the connection has gone down
mysqli::prepare() | mysqli_prepare() | N/A | Prepare an SQL statement for execution
mysqli::query() | mysqli_query() | N/A | Performs a query on the database
mysqli::real_connect() | mysqli_real_connect() | N/A | Opens a connection to a mysql server
mysqli::real_escape_string(), mysqli::escape_string() | mysqli_real_escape_string() | mysqli_escape_string() | Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
mysqli::real_query() | mysqli_real_query() | N/A | Execute an SQL query
mysqli::refresh() | mysqli_refresh() | N/A | Flushes tables or caches, or resets the replication server information
mysqli::rollback() | mysqli_rollback() | N/A | Rolls back current transaction
mysqli::select_db() | mysqli_select_db() | N/A | Selects the default database for database queries
mysqli::set_charset() | mysqli_set_charset() | N/A | Sets the default client character set
mysqli::ssl_set() | mysqli_ssl_set() | N/A | Used for establishing secure connections using SSL
mysqli::stat() | mysqli_stat() | N/A | Gets the current system status
mysqli::stmt_init() | mysqli_stmt_init() | N/A | Initializes a statement and returns an object for use with mysqli_stmt_prepare
mysqli::store_result() | mysqli_store_result() | N/A | Transfers a result set from the last query
mysqli::thread_id() | mysqli_thread_id() | N/A | Returns the thread ID for the current connection
mysqli::thread_safe() | mysqli_thread_safe() | N/A | Returns whether thread safety is given or not
mysqli::use_result() | mysqli_use_result() | N/A | Initiate a result set retrieval
Summary of mysqli_stmt methods
MySQL_STMT
OOP Interface | Procedural Interface | Alias (Do not use) | Description
Properties
$mysqli_stmt::affected_rows | mysqli_stmt_affected_rows() | N/A | Returns the total number of rows changed, deleted, or inserted by the last executed statement
$mysqli_stmt::errno | mysqli_stmt_errno() | N/A | Returns the error code for the most recent statement call
$mysqli_stmt::error | mysqli_stmt_error() | N/A | Returns a string description for last statement error
$mysqli_stmt::field_count | mysqli_stmt_field_count() | N/A | Returns the number of field in the given statement - not documented
$mysqli_stmt::insert_id | mysqli_stmt_insert_id() | N/A | Get the ID generated from the previous INSERT operation
$mysqli_stmt::num_rows | mysqli_stmt_num_rows() | N/A | Return the number of rows in statements result set
$mysqli_stmt::param_count | mysqli_stmt_param_count() | mysqli_param_count() | Returns the number of parameter for the given statement
$mysqli_stmt::sqlstate | mysqli_stmt_sqlstate() | N/A | Returns SQLSTATE error from previous statement operation
Methods
mysqli_stmt::attr_get() | mysqli_stmt_attr_get() | N/A | Used to get the current value of a statement attribute
mysqli_stmt::attr_set() | mysqli_stmt_attr_set() | N/A | Used to modify the behavior of a prepared statement
mysqli_stmt::bind_param() | mysqli_stmt_bind_param() | mysqli_bind_param() | Binds variables to a prepared statement as parameters
mysqli_stmt::bind_result() | mysqli_stmt_bind_result() | mysqli_bind_result() | Binds variables to a prepared statement for result storage
mysqli_stmt::close() | mysqli_stmt_close() | N/A | Closes a prepared statement
mysqli_stmt::data_seek() | mysqli_stmt_data_seek() | N/A | Seeks to an arbitrary row in statement result set
mysqli_stmt::execute() | mysqli_stmt_execute() | mysqli_execute() | Executes a prepared Query
mysqli_stmt::fetch() | mysqli_stmt_fetch() | mysqli_fetch() | Fetch results from a prepared statement into the bound variables
mysqli_stmt::free_result() | mysqli_stmt_free_result() | N/A | Frees stored result memory for the given statement handle
mysqli_stmt::get_result() | mysqli_stmt_get_result() | N/A | Gets a result set from a prepared statement. Nur in mysqlnd verfügbar.
mysqli_stmt::get_warnings() | mysqli_stmt_get_warnings() | N/A | NOT DOCUMENTED
mysqli_stmt::more_results() | mysqli_stmt_more_results() | N/A | Checks if there are more query results from a multiple query
mysqli_stmt::next_result() | mysqli_stmt_next_result() | N/A | Reads the next result from a multiple query
mysqli_stmt::num_rows() | mysqli_stmt_num_rows() | N/A | See also property $mysqli_stmt::num_rows
mysqli_stmt::prepare() | mysqli_stmt_prepare() | N/A | Prepare an SQL statement for execution
mysqli_stmt::reset() | mysqli_stmt_reset() | N/A | Resets a prepared statement
mysqli_stmt::result_metadata() | mysqli_stmt_result_metadata() | mysqli_get_metadata() | Returns result set metadata from a prepared statement
mysqli_stmt::send_long_data() | mysqli_stmt_send_long_data() | mysqli_send_long_data() | Send data in blocks
mysqli_stmt::store_result() | mysqli_stmt_store_result() | N/A | Transfers a result set from a prepared statement
Summary of mysqli_result methods
mysqli_result
OOP Interface | Procedural Interface | Alias (Do not use) | Description
Properties
$mysqli_result::current_field | mysqli_field_tell() | N/A | Get current field offset of a result pointer
$mysqli_result::field_count | mysqli_num_fields() | N/A | Get the number of fields in a result
$mysqli_result::lengths | mysqli_fetch_lengths() | N/A | Returns the lengths of the columns of the current row in the result set
$mysqli_result::num_rows | mysqli_num_rows() | N/A | Gets the number of rows in a result
Methods
mysqli_result::data_seek() | mysqli_data_seek() | N/A | Adjusts the result pointer to an arbitrary row in the result
mysqli_result::fetch_all() | mysqli_fetch_all() | N/A | Fetches all result rows and returns the result set as an associative array, a numeric array, or both. Nur in mysqlnd verfügbar.
mysqli_result::fetch_array() | mysqli_fetch_array() | N/A | Fetch a result row as an associative, a numeric array, or both
mysqli_result::fetch_assoc() | mysqli_fetch_assoc() | N/A | Fetch a result row as an associative array
mysqli_result::fetch_field_direct() | mysqli_fetch_field_direct() | N/A | Fetch meta-data for a single field
mysqli_result::fetch_field() | mysqli_fetch_field() | N/A | Returns the next field in the result set
mysqli_result::fetch_fields() | mysqli_fetch_fields() | N/A | Returns an array of objects representing the fields in a result set
mysqli_result::fetch_object() | mysqli_fetch_object() | N/A | Returns the current row of a result set as an object
mysqli_result::fetch_row() | mysqli_fetch_row() | N/A | Get a result row as an enumerated array
mysqli_result::field_seek() | mysqli_field_seek() | N/A | Set result pointer to a specified field offset
mysqli_result::free(), mysqli_result::close, mysqli_result::free_result | mysqli_free_result() | N/A | Frees the memory associated with a result
Summary of mysqli_driver methods
MySQL_Driver
OOP Interface | Procedural Interface | Alias (Do not use) | Description
Properties
$mysqli_driver::mysqli_report | mysqli_report() | N/A | Sets mysqli error reporting mode
Methods
mysqli_driver::embedded_server_end() | mysqli_embedded_server_end() | N/A | NOT DOCUMENTED
mysqli_driver::embedded_server_start() | mysqli_embedded_server_start() | N/A | NOT DOCUMENTED

Hinweis:

Alias functions are provided for backward compatibility purposes only. Do not use them in new projects.


Die mysqli Klasse

(PHP 5, PHP 7)

Einführung

Repräsentiert eine Verbindung zwischen PHP und einer MySQL Datenbank.

Klassenbeschreibung

mysqli {
/* Eigenschaften */
int $affected_rows;
static int $connect_errno;
static string $connect_error;
int $errno;
array $error_list;
string $error;
int $field_count;
string $client_info;
int $client_version;
string $host_info;
string $protocol_version;
string $server_info;
int $server_version;
string $info;
mixed $insert_id;
string $sqlstate;
int $thread_id;
int $warning_count;
/* Methoden */
public __construct
 ( string $host = ini_get("mysqli.default_host")
, string $username = ini_get("mysqli.default_user")
, string $passwd = ini_get("mysqli.default_pw")
, string $dbname = ""
, int $port = ini_get("mysqli.default_port")
, string $socket = ini_get("mysqli.default_socket")
)
public autocommit ( bool $mode ) : bool
public begin_transaction ( int $flags = 0 , string $name = ? ) : bool
public change_user ( string $user , string $password , string $database ) : bool
public character_set_name ( ) : string
public close ( ) : bool
public commit ( int $flags = 0 , string $name = ? ) : bool
public connect
 ( string $host = ini_get("mysqli.default_host")
, string $username = ini_get("mysqli.default_user")
, string $passwd = ini_get("mysqli.default_pw")
, string $dbname = ""
, int $port = ini_get("mysqli.default_port")
, string $socket = ini_get("mysqli.default_socket")
) : void
public debug ( string $message ) : bool
public dump_debug_info ( ) : bool
public get_charset ( ) : object
public get_client_info ( ) : string
public get_connection_stats ( ) : bool
public get_server_info ( ) : string
public get_warnings ( ) : mysqli_warning
public init ( ) : mysqli
public kill ( int $processid ) : bool
public more_results ( ) : bool
public multi_query ( string $query ) : bool
public next_result ( ) : bool
public options ( int $option , mixed $value ) : bool
public ping ( ) : bool
public static poll ( array &$read , array &$error , array &$reject , int $sec , int $usec = 0 ) : int
public prepare ( string $query ) : mysqli_stmt
public query ( string $query , int $resultmode = MYSQLI_STORE_RESULT ) : mixed
public real_connect ( string $host = ? , string $username = ? , string $passwd = ? , string $dbname = ? , int $port = ? , string $socket = ? , int $flags = ? ) : bool
public escape_string ( string $escapestr ) : string
real_escape_string ( string $escapestr ) : string
public real_query ( string $query ) : bool
public reap_async_query ( ) : mysqli_result
public refresh ( int $options ) : bool
public release_savepoint ( string $name ) : bool
public rollback ( int $flags = 0 , string $name = ? ) : bool
public savepoint ( string $name ) : bool
public select_db ( string $dbname ) : bool
public set_charset ( string $charset ) : bool
public ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher ) : bool
public stat ( ) : string
public stmt_init ( ) : mysqli_stmt
public store_result ( int $option = ? ) : mysqli_result
public thread_safe ( ) : void
public use_result ( ) : mysqli_result
}

Inhaltsverzeichnis

  • mysqli::$affected_rows — Ermittelt die Anzahl der betroffenen Zeilen in einem vorherigen MySQL Vorgang
  • mysqli::autocommit — Aktiviert oder deaktiviert das automatische Übertragen von Datenbankänderungen
  • mysqli::begin_transaction — Starts a transaction
  • mysqli::change_user — Changes the user of the specified database connection
  • mysqli::character_set_name — Returns the default character set for the database connection
  • mysqli::close — Schließt die zuvor geöffnete Datenbankverbindung
  • mysqli::commit — Commits the current transaction
  • mysqli::$connect_errno — Returns the error code from last connect call
  • mysqli::$connect_error — Returns a string description of the last connect error
  • mysqli::__construct — Open a new connection to the MySQL server
  • mysqli::debug — Performs debugging operations
  • mysqli::dump_debug_info — Dump debugging information into the log
  • mysqli::$errno — Returns the error code for the most recent function call
  • mysqli::$error_list — Returns a list of errors from the last command executed
  • mysqli::$error — Returns a string description of the last error
  • mysqli::$field_count — Returns the number of columns for the most recent query
  • mysqli::get_charset — Returns a character set object
  • mysqli::$client_info — Get MySQL client info
  • mysqli::$client_version — Returns the MySQL client version as an integer
  • mysqli::get_connection_stats — Returns statistics about the client connection
  • mysqli::$host_info — Returns a string representing the type of connection used
  • mysqli::$protocol_version — Returns the version of the MySQL protocol used
  • mysqli::$server_info — Returns the version of the MySQL server
  • mysqli::$server_version — Returns the version of the MySQL server as an integer
  • mysqli::get_warnings — Get result of SHOW WARNINGS
  • mysqli::$info — Retrieves information about the most recently executed query
  • mysqli::init — Initializes MySQLi and returns an object for use with mysqli_real_connect()
  • mysqli::$insert_id — Returns the auto generated id used in the latest query
  • mysqli::kill — Asks the server to kill a MySQL thread
  • mysqli::more_results — Check if there are any more query results from a multi query
  • mysqli::multi_query — Performs a query on the database
  • mysqli::next_result — Prepare next result from multi_query
  • mysqli::options — Set options
  • mysqli::ping — Pings a server connection, or tries to reconnect if the connection has gone down
  • mysqli::poll — Poll connections
  • mysqli::prepare — Prepare an SQL statement for execution
  • mysqli::query — Performs a query on the database
  • mysqli::real_connect — Opens a connection to a mysql server
  • mysqli::real_escape_string — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
  • mysqli::real_query — Execute an SQL query
  • mysqli::reap_async_query — Get result from async query
  • mysqli::refresh — Refreshes
  • mysqli::release_savepoint — Removes the named savepoint from the set of savepoints of the current transaction
  • mysqli::rollback — Rolls back current transaction
  • mysqli::savepoint — Set a named transaction savepoint
  • mysqli::select_db — Selects the default database for database queries
  • mysqli::set_charset — Sets the default client character set
  • mysqli::$sqlstate — Returns the SQLSTATE error from previous MySQL operation
  • mysqli::ssl_set — Used for establishing secure connections using SSL
  • mysqli::stat — Liefert den aktuellen Systemstatus
  • mysqli::stmt_init — Initializes a statement and returns an object for use with mysqli_stmt_prepare
  • mysqli::store_result — Transfers a result set from the last query
  • mysqli::$thread_id — Returns the thread ID for the current connection
  • mysqli::thread_safe — Returns whether thread safety is given or not
  • mysqli::use_result — Initiate a result set retrieval
  • mysqli::$warning_count — Gibt die Anzahl an Warnungen für den letzten Query der übergebenen Verbindung zurück.


Ermittelt die Anzahl der betroffenen Zeilen in einem vorherigen MySQL Vorgang

  • « mysqli
  • mysqli::autocommit »
  • PHP Manual
  • mysqli
  • Ermittelt die Anzahl der betroffenen Zeilen in einem vorherigen MySQL Vorgang

mysqli::$affected_rows

mysqli_affected_rows

(PHP 5, PHP 7)

mysqli::$affected_rows -- mysqli_affected_rows — Ermittelt die Anzahl der betroffenen Zeilen in einem vorherigen MySQL Vorgang

Beschreibung

Objektorientierter Stil

int $mysqli->affected_rows;

Prozeduraler Stil

mysqli_affected_rows ( mysqli $link ) : int

Gibt die Anzahl der von der letzten INSERT-, UPDATE-,REPLACE- oder DELETE-Abfrage betroffenen Zeilen zurück.

Für SELECT-Anweisungen entspricht mysqli_affected_rows() mysqli_num_rows()

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Eine Ganzzahl größer als Null zeigt die Anzahl der betroffenen oder abgerufenen Zeilen an. Null gibt an, dass keine Datensätze für eine UPDATE-Anweisung aktualisiert wurden, keine Zeilen mit der WHERE-Klausel übereinstimmen oder,dass die Datenbankabfrage noch nicht aufgeführt worden ist. -1 gibt an, dass die Datenbankabfrage einen Fehler zurückgegeben hat.

Hinweis:

Ist die Anzahl der betroffenen Datensätze größer als der maximale Integer-Wert( PHP_INT_MAX ), wird die Anzahl der betroffenen Datensätze als String zurückgegeben.

Beispiele

Beispiel #1 $mysqli->affected_rows example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Verbindung überprüfen */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Datensätze einfügen */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", $mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* Datensätze updaten */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", $mysqli->affected_rows);

/* Datensätze löschen */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", $mysqli->affected_rows);

/* Alle Datensätze auswählen */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", $mysqli->affected_rows);

$result->close();

/* Tabelle Language löschen */
$mysqli->query("DROP TABLE Language");

/* Verbindung schließen */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* Datensätze einfügen */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

/* Datensätze aktualisieren */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));

/* Datensätze löschen */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", mysqli_affected_rows($link));

/* Alle Datensätze auswählen */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", mysqli_affected_rows($link));

mysqli_free_result($result);

/* Tabelle Language löschen */
mysqli_query($link, "DROP TABLE Language");

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Affected rows (INSERT): 984
Affected rows (UPDATE): 168
Affected rows (DELETE): 815
Affected rows (SELECT): 169

Siehe auch

  • mysqli_num_rows() - Gets the number of rows in a result
  • mysqli_info() - Retrieves information about the most recently executed query


Aktiviert oder deaktiviert das automatische Übertragen von Datenbankänderungen

  • « mysqli::$affected_rows
  • mysqli::begin_transaction »
  • PHP Manual
  • mysqli
  • Aktiviert oder deaktiviert das automatische Übertragen von Datenbankänderungen

mysqli::autocommit

mysqli_autocommit

(PHP 5, PHP 7)

mysqli::autocommit -- mysqli_autocommit — Aktiviert oder deaktiviert das automatische Übertragen von Datenbankänderungen

Beschreibung

Objektorientierter Stil

public mysqli::autocommit ( bool $mode ) : bool

Prozeduraler Stil

mysqli_autocommit ( mysqli $link , bool $mode ) : bool

Aktiviert oder deaktiviert den Autocommit-Modus für Abfragen an die Datenbankverbindung.

Um den aktuellen Zustand von Autocommit festzustellen, ist die SQL-Anweisung SELECT @@autocommit zu verwenden.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

mode

Legt fest, ob Autocommit aktiviert werden soll oder nicht.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

Die Funktion kann nicht mit Tabellentypen verwendet werden, die keine Transaktionen unterstützen (wie MyISAM oder ISAM).

Beispiele

Beispiel #1 mysqli::autocommit()-Beispiel

Objektorientierter Stil

<?php

/* mysqli anweisen, eine Exception auszulösen, wenn ein Fehler auftritt */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Die Tabellen-Engine muss Transaktionen unterstützen */
$mysqli->query("CREATE TABLE IF NOT EXISTS language (
    Code text NOT NULL,
    Speakers int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* autocommit ausschalten */
$mysqli->autocommit(false);

$result = $mysqli->query("SELECT @@autocommit");
$row = $result->fetch_row();
printf("Autocommit ist %s\n", $row[0]);

try {
    /* Insert-Anweisung vorbereiten */
    $stmt = $mysqli->prepare('INSERT INTO language(Code, Speakers) VALUES (?,?)');
    $stmt->bind_param('ss', $language_code, $native_speakers);

    /* Ein paar Werte einfügen */
    $language_code = 'DE';
    $native_speakers = 50_123_456;
    $stmt->execute();
    $language_code = 'FR';
    $native_speakers = 40_546_321;
    $stmt->execute();

    /* Übertragung der Daten in die Datenbank. Dies setzt nicht autocommit=true */
    $mysqli->commit();
    print "2 Zeilen in die Datenbank übertragen\n";

    $result = $mysqli->query("SELECT @@autocommit");
    $row = $result->fetch_row();
    printf("Autocommit ist %s\n", $row[0]);

    /* Versuchen, weitere Werte einzufügen */
    $language_code = 'PL';
    $native_speakers = 30_555_444;
    $stmt->execute();
    $language_code = 'DK';
    $native_speakers = 5_222_444;
    $stmt->execute();

    /* Das Setzen von autocommit=true löst eine Übertragung aus */
    $mysqli->autocommit(true);

    print "2 weitere Zeilen in die Datenbank übertragen\n";
} catch (mysqli_sql_exception $exception) {
    $mysqli->rollback();

    throw $exception;
}

Prozeduraler Stil

<?php

/* mysqli anweisen, eine Exception auszulösen, wenn ein Fehler auftritt */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Die Tabellen-Engine muss Transaktionen unterstützen */
mysqli_query($mysqli, "CREATE TABLE IF NOT EXISTS language (
    Code text NOT NULL,
    Speakers int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* autocommit ausschalten */
mysqli_autocommit($mysqli, false);

$result = mysqli_query($mysqli, "SELECT @@autocommit");
    $row = mysqli_fetch_row($result);
printf("Autocommit ist %s\n", $row[0]);

try {
    /* Insert-Anweisung vorbereiten */
    $stmt = mysqli_prepare($mysqli, 'INSERT INTO language(Code, Speakers) VALUES (?,?)');
    mysqli_stmt_bind_param($stmt, 'ss', $language_code, $native_speakers);

    /* Ein paar Werte einfügen */
    $language_code = 'DE';
    $native_speakers = 50_123_456;
    mysqli_stmt_execute($stmt);
    $language_code = 'FR';
    $native_speakers = 40_546_321;
    mysqli_stmt_execute($stmt);

    /* Übertragung der Daten in die Datenbank. Dies setzt nicht autocommit=true */
    mysqli_commit($mysqli);
    print "2 Zeilen in die Datenbank übertragen\n";

    $result = mysqli_query($mysqli, "SELECT @@autocommit");
    $row = mysqli_fetch_row($result);
    printf("Autocommit ist %s\n", $row[0]);

    /* Versuchen, weitere Werte einzufügen */
    $language_code = 'PL';
    $native_speakers = 30_555_444;
    mysqli_stmt_execute($stmt);
    $language_code = 'DK';
    $native_speakers = 5_222_444;
    mysqli_stmt_execute($stmt);

    /* Das Setzen von autocommit=true löst eine Übertragung aus */
    mysqli_autocommit($mysqli, true);

    print "2 weitere Zeilen in die Datenbank übertragen\n";
} catch (mysqli_sql_exception $exception) {
    mysqli_rollback($mysqli);

    throw $exception;
}

Die obigen Bespiele erzeugen folgende Ausgabe:

Autocommit ist 0
2 Zeilen in die Datenbank übertragen
Autocommit ist 0
2 weitere Zeilen in die Datenbank übertragen
Autocommit ist 0
2 Zeilen in die Datenbank übertragen
Autocommit ist 0
2 weitere Zeilen in die Datenbank übertragen

Siehe auch

  • mysqli_begin_transaction() - Starts a transaction
  • mysqli_commit() - Commits the current transaction
  • mysqli_rollback() - Rolls back current transaction


Starts a transaction

  • « mysqli::autocommit
  • mysqli::change_user »
  • PHP Manual
  • mysqli
  • Starts a transaction

mysqli::begin_transaction

mysqli_begin_transaction

(PHP 5 >= 5.5.0, PHP 7)

mysqli::begin_transaction -- mysqli_begin_transaction — Starts a transaction

Beschreibung

Objektorientierter Stil

public mysqli::begin_transaction ( int $flags = 0 , string $name = ? ) : bool

Prozeduraler Stil:

mysqli_begin_transaction ( mysqli $link , int $flags = 0 , string $name = ? ) : bool

Begins a transaction. Requires the InnoDB engine (it is enabled by default). For additional details about how MySQL transactions work, see » http://dev.mysql.com/doc/mysql/en/commit.html.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

flags

Valid flags are:

  • MYSQLI_TRANS_START_READ_ONLY: Start the transaction as "START TRANSACTION READ ONLY". Requires MySQL 5.6 and above.

  • MYSQLI_TRANS_START_READ_WRITE: Start the transaction as "START TRANSACTION READ WRITE". Requires MySQL 5.6 and above.

  • MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT: Start the transaction as "START TRANSACTION WITH CONSISTENT SNAPSHOT".

name

Savepoint name for the transaction.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

This function does not work with non transactional table types (like MyISAM or ISAM).

Beispiele

Beispiel #1 mysqli::begin_transaction() example

Objektorientierter Stil

<?php

/* Tell mysqli to throw an exception if an error occurs */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* The table engine has to support transactions */
$mysqli->query("CREATE TABLE IF NOT EXISTS language (
    Code text NOT NULL,
    Speakers int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Start transaction */
$mysqli->begin_transaction();

try {
    /* Insert some values */
    $mysqli->query("INSERT INTO language(Code, Speakers) VALUES ('DE', 42000123)");

    /* Try to insert invalid values */
    $language_code = 'FR';
    $native_speakers = 'Unknown';
    $stmt = $mysqli->prepare('INSERT INTO language(Code, Speakers) VALUES (?,?)');
    $stmt->bind_param('ss', $language_code, $native_speakers);
    $stmt->execute();

    /* If code reaches this point without errors then commit the data in the database */
    $mysqli->commit();
} catch (mysqli_sql_exception $exception) {
    $mysqli->rollback();

    throw $exception;
}

Prozeduraler Stil

<?php

/* Tell mysqli to throw an exception if an error occurs */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

/* The table engine has to support transactions */
mysqli_query($mysqli, "CREATE TABLE IF NOT EXISTS language (
    Code text NOT NULL,
    Speakers int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Start transaction */
mysqli_begin_transaction($mysqli);

try {
    /* Insert some values */
    mysqli_query($mysqli, "INSERT INTO language(Code, Speakers) VALUES ('DE', 42000123)");

    /* Try to insert invalid values */
    $language_code = 'FR';
    $native_speakers = 'Unknown';
    $stmt = mysqli_prepare($mysqli, 'INSERT INTO language(Code, Speakers) VALUES (?,?)');
    mysqli_stmt_bind_param($stmt, 'ss', $language_code, $native_speakers);
    mysqli_stmt_execute($stmt);

    /* If code reaches this point without errors then commit the data in the database */
    mysqli_commit($mysqli);
} catch (mysqli_sql_exception $exception) {
    mysqli_rollback($mysqli);

    throw $exception;
}

Siehe auch

  • mysqli_autocommit() - Aktiviert oder deaktiviert das automatische Übertragen von Datenbankänderungen
  • mysqli_commit() - Commits the current transaction
  • mysqli_rollback() - Rolls back current transaction


Changes the user of the specified database connection

  • « mysqli::begin_transaction
  • mysqli::character_set_name »
  • PHP Manual
  • mysqli
  • Changes the user of the specified database connection

mysqli::change_user

mysqli_change_user

(PHP 5, PHP 7)

mysqli::change_user -- mysqli_change_user — Changes the user of the specified database connection

Beschreibung

Objektorientierter Stil

public mysqli::change_user ( string $user , string $password , string $database ) : bool

Prozeduraler Stil

mysqli_change_user ( mysqli $link , string $user , string $password , string $database ) : bool

Changes the user of the specified database connection and sets the current database.

In order to successfully change users a valid username and password parameters must be provided and that user must have sufficient permissions to access the desired database. If for any reason authorization fails, the current user authentication will remain.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

user

The MySQL user name.

password

The MySQL password.

database

The database to change to.

If desired, the null value may be passed resulting in only changing the user and not selecting a database. To select a database in this case use the mysqli_select_db() function.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

Using this command will always cause the current database connection to behave as if was a completely new database connection, regardless of if the operation was completed successfully. This reset includes performing a rollback on any active transactions, closing all temporary tables, and unlocking all locked tables.

Beispiele

Beispiel #1 mysqli::change_user() example

Objektorientierter Stil

<?php

/* connect database test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Set Variable a */
$mysqli->query("SET @a:=1");

/* reset all and select a new database */
$mysqli->change_user("my_user", "my_password", "world");

if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database: %s\n", $row[0]);
    $result->close();
}

if ($result = $mysqli->query("SELECT @a")) {
    $row = $result->fetch_row();
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
/* connect database test */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Set Variable a */
mysqli_query($link, "SET @a:=1");

/* reset all and select a new database */
mysqli_change_user($link, "my_user", "my_password", "world");

if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database: %s\n", $row[0]);
    mysqli_free_result($result);
}

if ($result = mysqli_query($link, "SELECT @a")) {
    $row = mysqli_fetch_row($result);
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Default database: world
Value of variable a is NULL

Siehe auch

  • mysqli_connect() - Alias von mysqli::__construct
  • mysqli_select_db() - Selects the default database for database queries


Returns the default character set for the database connection

  • « mysqli::change_user
  • mysqli::close »
  • PHP Manual
  • mysqli
  • Returns the default character set for the database connection

mysqli::character_set_name

mysqli_character_set_name

(PHP 5, PHP 7)

mysqli::character_set_name -- mysqli_character_set_name — Returns the default character set for the database connection

Beschreibung

Objektorientierter Stil

public mysqli::character_set_name ( ) : string

Prozeduraler Stil

mysqli_character_set_name ( mysqli $link ) : string

Returns the current character set for the database connection.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

The default character set for the current connection

Beispiele

Beispiel #1 mysqli::character_set_name() example

Objektorientierter Stil

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = $mysqli->character_set_name();
printf ("Current character set is %s\n", $charset);

$mysqli->close();
?>

Prozeduraler Stil

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = mysqli_character_set_name($link);
printf ("Current character set is %s\n",$charset);

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Current character set is latin1_swedish_ci

Siehe auch

  • mysqli_set_charset() - Sets the default client character set
  • mysqli_client_encoding()
  • mysqli_real_escape_string() - Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection


Schließt die zuvor geöffnete Datenbankverbindung

  • « mysqli::character_set_name
  • mysqli::commit »
  • PHP Manual
  • mysqli
  • Schließt die zuvor geöffnete Datenbankverbindung

mysqli::close

mysqli_close

(PHP 5, PHP 7)

mysqli::close -- mysqli_close — Schließt die zuvor geöffnete Datenbankverbindung

Beschreibung

Objektorientierter Stil

public mysqli::close ( ) : bool

Prozeduraler Stil

mysqli_close ( mysqli $link ) : bool

Schließt die zuvor geöffnete Datenbankverbindung.

Offene nicht-persistente MySQL Verbindungen und Ergebnismengen werden bei der Beendigung der PHP-Skipt-Ausführung automatisch zerstört. Obwohl also das explizite Schließen von offenen Verbindungen und das Freigeben von Ergebnismengen optional ist, wird es dennoch empfohlen. Dadurch werden unmittelbar Ressourcen an PHP und MySQL zurückgeben, was die Performance verbessern kann. Weitere Information ist unter Freigeben von Ressourcen zu finden.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

See mysqli_connect().

Anmerkungen

Hinweis:

mysqli_close() schließt keine persistenten Verbindungen. Weitere Details sind der Handbuchseite zu persistent connections zu entnehmen.

Siehe auch

  • mysqli::__construct() - Open a new connection to the MySQL server
  • mysqli_init() - Initializes MySQLi and returns an object for use with mysqli_real_connect()
  • mysqli_real_connect() - Opens a connection to a mysql server
  • mysqli_free_result() - Frees the memory associated with a result


Commits the current transaction

  • « mysqli::close
  • mysqli::$connect_errno »
  • PHP Manual
  • mysqli
  • Commits the current transaction

mysqli::commit

mysqli_commit

(PHP 5, PHP 7)

mysqli::commit -- mysqli_commit — Commits the current transaction

Beschreibung

Objektorientierter Stil

public mysqli::commit ( int $flags = 0 , string $name = ? ) : bool

Prozeduraler Stil

mysqli_commit ( mysqli $link , int $flags = 0 , string $name = ? ) : bool

Commits the current transaction for the database connection.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

flags

A bitmask of MYSQLI_TRANS_COR_* constants.

name

If provided then COMMIT/*name*/ is executed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

This function does not work with non transactional table types (like MyISAM or ISAM).

Beispiele

See the mysqli::begin_transaction() example.

Siehe auch

  • mysqli_autocommit() - Aktiviert oder deaktiviert das automatische Übertragen von Datenbankänderungen
  • mysqli_begin_transaction() - Starts a transaction
  • mysqli_rollback() - Rolls back current transaction
  • mysqli_savepoint() - Set a named transaction savepoint


Returns the error code from last connect call

  • « mysqli::commit
  • mysqli::$connect_error »
  • PHP Manual
  • mysqli
  • Returns the error code from last connect call

mysqli::$connect_errno

mysqli_connect_errno

(PHP 5, PHP 7)

mysqli::$connect_errno -- mysqli_connect_errno — Returns the error code from last connect call

Beschreibung

Objektorientierter Stil

static int $mysqli->connect_errno;

Prozeduraler Stil

mysqli_connect_errno ( ) : int

Returns the last error code number from the last call to mysqli_connect().

Hinweis:

Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Rückgabewerte

An error code value for the last call to mysqli_connect(), if it failed. zero means no error occurred.

Beispiele

Beispiel #1 $mysqli->connect_errno example

Objektorientierter Stil

<?php
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db');

if ($mysqli->connect_errno) {
    die('Connect Error: ' . $mysqli->connect_errno);
}
?>

Prozeduraler Stil

<?php
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db');

if (!$link) {
    die('Connect Error: ' . mysqli_connect_errno());
}
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Connect Error: 1045

Siehe auch

  • mysqli_connect() - Alias von mysqli::__construct
  • mysqli_connect_error() - Returns a string description of the last connect error
  • mysqli_errno() - Returns the error code for the most recent function call
  • mysqli_error() - Returns a string description of the last error
  • mysqli_sqlstate() - Returns the SQLSTATE error from previous MySQL operation


Returns a string description of the last connect error

  • « mysqli::$connect_errno
  • mysqli::__construct »
  • PHP Manual
  • mysqli
  • Returns a string description of the last connect error

mysqli::$connect_error

mysqli_connect_error

(PHP 5, PHP 7)

mysqli::$connect_error -- mysqli_connect_error — Returns a string description of the last connect error

Beschreibung

Objektorientierter Stil

static string $mysqli->connect_error;

Prozeduraler Stil

mysqli_connect_error ( ) : string

Returns the last error message string from the last call to mysqli_connect().

Rückgabewerte

A string that describes the error. null is returned if no error occurred.

Beispiele

Beispiel #1 $mysqli->connect_error example

Objektorientierter Stil

<?php
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db');

if ($mysqli->connect_error) {
    die('Connect Error: ' . $mysqli->connect_error);
}
?>

Prozeduraler Stil

<?php
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db');

if (!$link) {
    die('Connect Error: ' . mysqli_connect_error());
}
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Connect Error: Access denied for user 'fake_user'@'localhost' (using password: YES)

Siehe auch

  • mysqli_connect() - Alias von mysqli::__construct
  • mysqli_connect_errno() - Returns the error code from last connect call
  • mysqli_errno() - Returns the error code for the most recent function call
  • mysqli_error() - Returns a string description of the last error
  • mysqli_sqlstate() - Returns the SQLSTATE error from previous MySQL operation


Open a new connection to the MySQL server

  • « mysqli::$connect_error
  • mysqli::debug »
  • PHP Manual
  • mysqli
  • Open a new connection to the MySQL server

mysqli::__construct

mysqli::connect

mysqli_connect

(PHP 5, PHP 7)

mysqli::__construct -- mysqli::connect -- mysqli_connect — Open a new connection to the MySQL server

Beschreibung

Objektorientierter Stil

public mysqli::__construct
 ( string $host = ini_get("mysqli.default_host")
, string $username = ini_get("mysqli.default_user")
, string $passwd = ini_get("mysqli.default_pw")
, string $dbname = ""
, int $port = ini_get("mysqli.default_port")
, string $socket = ini_get("mysqli.default_socket")
)
public mysqli::connect
 ( string $host = ini_get("mysqli.default_host")
, string $username = ini_get("mysqli.default_user")
, string $passwd = ini_get("mysqli.default_pw")
, string $dbname = ""
, int $port = ini_get("mysqli.default_port")
, string $socket = ini_get("mysqli.default_socket")
) : void

Prozeduraler Stil

mysqli_connect
 ( string $host = ini_get("mysqli.default_host")
, string $username = ini_get("mysqli.default_user")
, string $passwd = ini_get("mysqli.default_pw")
, string $dbname = ""
, int $port = ini_get("mysqli.default_port")
, string $socket = ini_get("mysqli.default_socket")
) : mysqli|false

Opens a connection to the MySQL Server.

Parameter-Liste

host

Can be either a host name or an IP address. The local host is assumed when passing the null value or the string "localhost" to this parameter. When possible, pipes will be used instead of the TCP/IP protocol. The TCP/IP protocol is used if a host name and port number are provided together e.g. localhost:3308.

Prepending host by p: opens a persistent connection. mysqli_change_user() is automatically called on connections opened from the connection pool.

username

The MySQL user name.

passwd

If not provided or null, the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password is provided or not).

dbname

If provided will specify the default database to be used when performing queries.

port

Specifies the port number to attempt to connect to the MySQL server.

socket

Specifies the socket or named pipe that should be used.

Hinweis:

Specifying the socket parameter will not explicitly determine the type of connection to be used when connecting to the MySQL server. How the connection is made to the MySQL database is determined by the host parameter.

Rückgabewerte

mysqli::__construct() always returns an object which represents the connection to a MySQL Server, regardless of it being successful or not.

mysqli_connect() returns an object which represents the connection to a MySQL Server, Im Fehlerfall wird false zurückgegeben..

mysqli::connect() returns null on successIm Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

If MYSQLI_REPORT_STRICT is enabled and the attempt to connect to the requested database fails, a mysqli_sql_exception is thrown.

Beispiele

Beispiel #1 mysqli::__construct() example

Objektorientierter Stil

<?php

/* You should enable error reporting for mysqli before attempting to make a connection */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

/* Set the desired charset after establishing a connection */
$mysqli->set_charset('utf8mb4');

printf("Success... %s\n", $mysqli->host_info);

Prozeduraler Stil

<?php

/* You should enable error reporting for mysqli before attempting to make a connection */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

/* Set the desired charset after establishing a connection */
mysqli_set_charset($mysqli, 'utf8mb4');

printf("Success... %s\n", mysqli_get_host_info($mysqli));

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

Success... localhost via TCP/IP

Beispiel #2 Extending mysqli class

<?php

class FooMysqli extends mysqli {
    public function __construct($host, $user, $pass, $db, $port, $socket, $charset) {
        mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
        parent::__construct($host, $user, $pass, $db, $port, $socket);
        $this->set_charset($charset);
    }
}

$db = new FooMysqli('localhost', 'my_user', 'my_password', 'my_db', 3306, null, 'utf8mb4');

Beispiel #3 Manual error handling

If error reporting is disabled, the developer is responsible for checking and handling failures

Objektorientierter Stil

<?php

error_reporting(0);
mysqli_report(MYSQLI_REPORT_OFF);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
if ($mysqli->connect_errno) {
    throw new RuntimeException('mysqli connection error: ' . $mysqli->connect_error);
}

/* Set the desired charset after establishing a connection */
$mysqli->set_charset('utf8mb4');
if ($mysqli->errno) {
    throw new RuntimeException('mysqli error: ' . $mysqli->error);
}

Prozeduraler Stil

<?php

error_reporting(0);
mysqli_report(MYSQLI_REPORT_OFF);
$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
if (mysqli_connect_errno()) {
    throw new RuntimeException('mysqli connection error: ' . mysqli_connect_error());
}

/* Set the desired charset after establishing a connection */
mysqli_set_charset($mysqli, 'utf8mb4');
if (mysqli_errno($mysqli)) {
    throw new RuntimeException('mysqli error: ' . mysqli_error($mysqli));
}

Anmerkungen

Hinweis:

MySQLnd nimmt immer den Standardzeichensatz des Servers an. Dieser Zeichensatz wird während des Aufbaus der Verbindung bzw. der Authentifizierung übermittelt und danach von MySQLnd verwendet.

Libmysqlclient verwendet als Standardzeichensatz den, der in der Datei my.cnf angegeben oder durch einen Aufruf von mysqli_options() vor dem Aufruf von mysqli_real_connect() aber nach mysqli_init() gesetzt wurde.

Hinweis:

Objektorientierter Stil only: If the connection fails, an object is still returned. To check whether the connection failed, use either the mysqli_connect_error() function or the mysqli->connect_error property as in the preceding examples.

Hinweis:

If it is necessary to set options, such as the connection timeout, mysqli_real_connect() must be used instead.

Hinweis:

Calling the constructor with no parameters is the same as calling mysqli_init().

Hinweis:

Error "Can't create TCP/IP socket (10106)" usually means that the variables_order configure directive doesn't contain character E. On Windows, if the environment is not copied the SYSTEMROOT environment variable won't be available and PHP will have problems loading Winsock.

Siehe auch

  • mysqli_real_connect() - Opens a connection to a mysql server
  • mysqli_options() - Set options
  • mysqli_connect_errno() - Returns the error code from last connect call
  • mysqli_connect_error() - Returns a string description of the last connect error
  • mysqli_close() - Schließt die zuvor geöffnete Datenbankverbindung


Performs debugging operations

  • « mysqli::__construct
  • mysqli::dump_debug_info »
  • PHP Manual
  • mysqli
  • Performs debugging operations

mysqli::debug

mysqli_debug

(PHP 5, PHP 7)

mysqli::debug -- mysqli_debug — Performs debugging operations

Beschreibung

Objektorientierter Stil

public mysqli::debug ( string $message ) : bool

Prozeduraler Stil

mysqli_debug ( string $message ) : bool

Performs debugging operations using the Fred Fish debugging library.

Parameter-Liste

message

A string representing the debugging operation to perform

Rückgabewerte

Returns true.

Anmerkungen

Hinweis:

To use the mysqli_debug() function you must compile the MySQL client library to support debugging.

Beispiele

Beispiel #1 Generating a Trace File

<?php

/* Create a trace file in '/tmp/client.trace' on the local (client) machine: */
mysqli_debug("d:t:o,/tmp/client.trace");

?>

Siehe auch

  • mysqli_dump_debug_info() - Dump debugging information into the log
  • mysqli_report() - Alias von mysqli_driver->report_mode


Dump debugging information into the log

  • « mysqli::debug
  • mysqli::$errno »
  • PHP Manual
  • mysqli
  • Dump debugging information into the log

mysqli::dump_debug_info

mysqli_dump_debug_info

(PHP 5, PHP 7)

mysqli::dump_debug_info -- mysqli_dump_debug_info — Dump debugging information into the log

Beschreibung

Objektorientierter Stil

public mysqli::dump_debug_info ( ) : bool

Prozeduraler Stil

mysqli_dump_debug_info ( mysqli $link ) : bool

This function is designed to be executed by an user with the SUPER privilege and is used to dump debugging information into the log for the MySQL Server relating to the connection.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • mysqli_debug() - Performs debugging operations


Returns the error code for the most recent function call

  • « mysqli::dump_debug_info
  • mysqli::$error_list »
  • PHP Manual
  • mysqli
  • Returns the error code for the most recent function call

mysqli::$errno

mysqli_errno

(PHP 5, PHP 7)

mysqli::$errno -- mysqli_errno — Returns the error code for the most recent function call

Beschreibung

Objektorientierter Stil

int $mysqli->errno;

Prozeduraler Stil

mysqli_errno ( mysqli $link ) : int

Returns the last error code for the most recent MySQLi function call that can succeed or fail.

Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

An error code value for the last call, if it failed. zero means no error occurred.

Beispiele

Beispiel #1 $mysqli->errno example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Errorcode: %d\n", $mysqli->errno);
}

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errorcode: %d\n", mysqli_errno($link));
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Errorcode: 1193

Siehe auch

  • mysqli_connect_errno() - Returns the error code from last connect call
  • mysqli_connect_error() - Returns a string description of the last connect error
  • mysqli_error() - Returns a string description of the last error
  • mysqli_sqlstate() - Returns the SQLSTATE error from previous MySQL operation


Returns a list of errors from the last command executed

  • « mysqli::$errno
  • mysqli::$error »
  • PHP Manual
  • mysqli
  • Returns a list of errors from the last command executed

mysqli::$error_list

mysqli_error_list

(PHP 5 >= 5.4.0, PHP 7)

mysqli::$error_list -- mysqli_error_list — Returns a list of errors from the last command executed

Beschreibung

Objektorientierter Stil

array $mysqli->error_list;

Prozeduraler Stil

mysqli_error_list ( mysqli $link ) : array

Returns a array of errors for the most recent MySQLi function call that can succeed or fail.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

A list of errors, each as an associative array containing the errno, error, and sqlstate.

Beispiele

Beispiel #1 $mysqli->error_list example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "nobody", "");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    print_r($mysqli->error_list);
}

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    print_r(mysqli_error_list($link));
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Array
(
    [0] => Array
        (
            [errno] => 1193
            [sqlstate] => HY000
            [error] => Unknown system variable 'a'
        )

)

Siehe auch

  • mysqli_connect_errno() - Returns the error code from last connect call
  • mysqli_connect_error() - Returns a string description of the last connect error
  • mysqli_error() - Returns a string description of the last error
  • mysqli_sqlstate() - Returns the SQLSTATE error from previous MySQL operation


Returns a string description of the last error

  • « mysqli::$error_list
  • mysqli::$field_count »
  • PHP Manual
  • mysqli
  • Returns a string description of the last error

mysqli::$error

mysqli_error

(PHP 5, PHP 7)

mysqli::$error -- mysqli_error — Returns a string description of the last error

Beschreibung

Objektorientierter Stil

string $mysqli->error;

Prozeduraler Stil

mysqli_error ( mysqli $link ) : string

Returns the last error message for the most recent MySQLi function call that can succeed or fail.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

A string that describes the error. An empty string if no error occurred.

Beispiele

Beispiel #1 $mysqli->error example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Error message: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Error message: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Error message: Unknown system variable 'a'

Siehe auch

  • mysqli_connect_errno() - Returns the error code from last connect call
  • mysqli_connect_error() - Returns a string description of the last connect error
  • mysqli_errno() - Returns the error code for the most recent function call
  • mysqli_sqlstate() - Returns the SQLSTATE error from previous MySQL operation


Returns the number of columns for the most recent query

  • « mysqli::$error
  • mysqli::get_charset »
  • PHP Manual
  • mysqli
  • Returns the number of columns for the most recent query

mysqli::$field_count

mysqli_field_count

(PHP 5, PHP 7)

mysqli::$field_count -- mysqli_field_count — Returns the number of columns for the most recent query

Beschreibung

Objektorientierter Stil

int $mysqli->field_count;

Prozeduraler Stil

mysqli_field_count ( mysqli $link ) : int

Returns the number of columns for the most recent query on the connection represented by the link parameter. This function can be useful when using the mysqli_store_result() function to determine if the query should have produced a non-empty result set or not without knowing the nature of the query.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

An integer representing the number of fields in a result set.

Beispiele

Beispiel #1 $mysqli->field_count example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query( "DROP TABLE IF EXISTS friends");
$mysqli->query( "CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query( "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$mysqli->real_query("SELECT * FROM friends");

if ($mysqli->field_count) {
    /* this was a select/show or describe query */
    $result = $mysqli->store_result();

    /* process resultset */
    $row = $result->fetch_row();

    /* free resultset */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

mysqli_real_query($link, "SELECT * FROM friends");

if (mysqli_field_count($link)) {
    /* this was a select/show or describe query */
    $result = mysqli_store_result($link);

    /* process resultset */
    $row = mysqli_fetch_row($result);

    /* free resultset */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>


Returns a character set object

  • « mysqli::$field_count
  • mysqli::$client_info »
  • PHP Manual
  • mysqli
  • Returns a character set object

mysqli::get_charset

mysqli_get_charset

(PHP 5 >= 5.1.0, PHP 7)

mysqli::get_charset -- mysqli_get_charset — Returns a character set object

Beschreibung

Objektorientierter Stil

public mysqli::get_charset ( ) : object

Prozeduraler Stil

mysqli_get_charset ( mysqli $link ) : object

Returns a character set object providing several properties of the current active character set.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

The function returns a character set object with the following properties:

charset

Character set name

collation

Collation name

dir

Directory the charset description was fetched from (?) or "" for built-in character sets

min_length

Minimum character length in bytes

max_length

Maximum character length in bytes

number

Internal character set number

state

Character set status (?)

Beispiele

Beispiel #1 mysqli::get_charset() example

Objektorientierter Stil

<?php
  $db = mysqli_init();
  $db->real_connect("localhost","root","","test");
  var_dump($db->get_charset());
?>

Prozeduraler Stil

<?php
  $db = mysqli_init();
  mysqli_real_connect($db, "localhost","root","","test");
  var_dump(mysqli_get_charset($db));
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

object(stdClass)#2 (7) {
  ["charset"]=>
  string(6) "latin1"
  ["collation"]=>
  string(17) "latin1_swedish_ci"
  ["dir"]=>
  string(0) ""
  ["min_length"]=>
  int(1)
  ["max_length"]=>
  int(1)
  ["number"]=>
  int(8)
  ["state"]=>
  int(801)
}

Siehe auch

  • mysqli_character_set_name() - Returns the default character set for the database connection
  • mysqli_set_charset() - Sets the default client character set


Get MySQL client info

  • « mysqli::get_charset
  • mysqli::$client_version »
  • PHP Manual
  • mysqli
  • Get MySQL client info

mysqli::$client_info

mysqli::get_client_info

mysqli_get_client_info

(PHP 5, PHP 7)

mysqli::$client_info -- mysqli::get_client_info -- mysqli_get_client_info — Get MySQL client info

Beschreibung

Objektorientierter Stil

string $mysqli->client_info;
public mysqli::get_client_info ( ) : string

Prozeduraler Stil

mysqli_get_client_info ( mysqli $link = NULL ) : string

Returns a string that represents the MySQL client library version.

Rückgabewerte

A string that represents the MySQL client library version

Beispiele

Beispiel #1 mysqli_get_client_info

<?php

/* We don't need a connection to determine
   the version of mysql client library */

printf("Client library version: %s\n", mysqli_get_client_info());
?>

Siehe auch

  • mysqli_get_client_version() - Returns the MySQL client version as an integer
  • mysqli_get_server_info() - Returns the version of the MySQL server
  • mysqli_get_server_version() - Returns the version of the MySQL server as an integer


Returns the MySQL client version as an integer

  • « mysqli::$client_info
  • mysqli::get_connection_stats »
  • PHP Manual
  • mysqli
  • Returns the MySQL client version as an integer

mysqli::$client_version

mysqli_get_client_version

(PHP 5, PHP 7)

mysqli::$client_version -- mysqli_get_client_version — Returns the MySQL client version as an integer

Beschreibung

Objektorientierter Stil

int $mysqli->client_version;

Prozeduraler Stil

mysqli_get_client_version ( mysqli $link ) : int

Returns client version number as an integer.

Rückgabewerte

A number that represents the MySQL client library version in format: main_version*10000 + minor_version *100 + sub_version. For example, 4.1.0 is returned as 40100.

This is useful to quickly determine the version of the client library to know if some capability exists.

Beispiele

Beispiel #1 mysqli_get_client_version

<?php

/* We don't need a connection to determine
   the version of mysql client library */

printf("Client library version: %d\n", mysqli_get_client_version());
?>

Siehe auch

  • mysqli_get_client_info() - Get MySQL client info
  • mysqli_get_server_info() - Returns the version of the MySQL server
  • mysqli_get_server_version() - Returns the version of the MySQL server as an integer


Returns statistics about the client connection

  • « mysqli::$client_version
  • mysqli::$host_info »
  • PHP Manual
  • mysqli
  • Returns statistics about the client connection

mysqli::get_connection_stats

mysqli_get_connection_stats

(PHP 5 >= 5.3.0, PHP 7)

mysqli::get_connection_stats -- mysqli_get_connection_stats — Returns statistics about the client connection

Beschreibung

Objektorientierter Stil

public mysqli::get_connection_stats ( ) : bool

Prozeduraler Stil

mysqli_get_connection_stats ( mysqli $link ) : array

Returns statistics about the client connection. Nur in mysqlnd verfügbar.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Returns an array with connection stats if success, false otherwise.

Beispiele

Beispiel #1 A mysqli_get_connection_stats() example

<?php
$link = mysqli_connect();
print_r(mysqli_get_connection_stats($link));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

Siehe auch

  • Stats description


Returns a string representing the type of connection used

  • « mysqli::get_connection_stats
  • mysqli::$protocol_version »
  • PHP Manual
  • mysqli
  • Returns a string representing the type of connection used

mysqli::$host_info

mysqli_get_host_info

(PHP 5, PHP 7)

mysqli::$host_info -- mysqli_get_host_info — Returns a string representing the type of connection used

Beschreibung

Objektorientierter Stil

string $mysqli->host_info;

Prozeduraler Stil

mysqli_get_host_info ( mysqli $link ) : string

Returns a string describing the connection represented by the link parameter (including the server host name).

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

A character string representing the server hostname and the connection type.

Beispiele

Beispiel #1 $mysqli->host_info example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print host information */
printf("Host info: %s\n", $mysqli->host_info);

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print host information */
printf("Host info: %s\n", mysqli_get_host_info($link));

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Host info: Localhost via UNIX socket

Siehe auch

  • mysqli_get_proto_info() - Returns the version of the MySQL protocol used


Returns the version of the MySQL protocol used

  • « mysqli::$host_info
  • mysqli::$server_info »
  • PHP Manual
  • mysqli
  • Returns the version of the MySQL protocol used

mysqli::$protocol_version

mysqli_get_proto_info

(PHP 5, PHP 7)

mysqli::$protocol_version -- mysqli_get_proto_info — Returns the version of the MySQL protocol used

Beschreibung

Objektorientierter Stil

string $mysqli->protocol_version;

Prozeduraler Stil

mysqli_get_proto_info ( mysqli $link ) : int

Returns an integer representing the MySQL protocol version used by the connection represented by the link parameter.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Returns an integer representing the protocol version.

Beispiele

Beispiel #1 $mysqli->protocol_version example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print protocol version */
printf("Protocol version: %d\n", $mysqli->protocol_version);

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print protocol version */
printf("Protocol version: %d\n", mysqli_get_proto_info($link));

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Protocol version: 10

Siehe auch

  • mysqli_get_host_info() - Returns a string representing the type of connection used


Returns the version of the MySQL server

  • « mysqli::$protocol_version
  • mysqli::$server_version »
  • PHP Manual
  • mysqli
  • Returns the version of the MySQL server

mysqli::$server_info

mysqli::get_server_info

mysqli_get_server_info

(PHP 5, PHP 7)

mysqli::$server_info -- mysqli::get_server_info -- mysqli_get_server_info — Returns the version of the MySQL server

Beschreibung

Objektorientierter Stil

string $mysqli->server_info;
public mysqli::get_server_info ( ) : string

Prozeduraler Stil

mysqli_get_server_info ( mysqli $link ) : string

Returns a string representing the version of the MySQL server that the MySQLi extension is connected to.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

A character string representing the server version.

Beispiele

Beispiel #1 $mysqli->server_info example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %s\n", $mysqli->server_info);

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %s\n", mysqli_get_server_info($link));

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Server version: 4.1.2-alpha-debug

Siehe auch

  • mysqli_get_client_info() - Get MySQL client info
  • mysqli_get_client_version() - Returns the MySQL client version as an integer
  • mysqli_get_server_version() - Returns the version of the MySQL server as an integer


Returns the version of the MySQL server as an integer

  • « mysqli::$server_info
  • mysqli::get_warnings »
  • PHP Manual
  • mysqli
  • Returns the version of the MySQL server as an integer

mysqli::$server_version

mysqli_get_server_version

(PHP 5, PHP 7)

mysqli::$server_version -- mysqli_get_server_version — Returns the version of the MySQL server as an integer

Beschreibung

Objektorientierter Stil

int $mysqli->server_version;

Prozeduraler Stil

mysqli_get_server_version ( mysqli $link ) : int

The mysqli_get_server_version() function returns the version of the server connected to (represented by the link parameter) as an integer.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

An integer representing the server version.

The form of this version number is main_version * 10000 + minor_version * 100 + sub_version (i.e. version 4.1.0 is 40100).

Beispiele

Beispiel #1 $mysqli->server_version example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %d\n", $mysqli->server_version);

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %d\n", mysqli_get_server_version($link));

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Server version: 40102

Siehe auch

  • mysqli_get_client_info() - Get MySQL client info
  • mysqli_get_client_version() - Returns the MySQL client version as an integer
  • mysqli_get_server_info() - Returns the version of the MySQL server


Get result of SHOW WARNINGS

  • « mysqli::$server_version
  • mysqli::$info »
  • PHP Manual
  • mysqli
  • Get result of SHOW WARNINGS

mysqli::get_warnings

mysqli_get_warnings

(PHP 5 >= 5.1.0, PHP 7)

mysqli::get_warnings -- mysqli_get_warnings — Get result of SHOW WARNINGS

Beschreibung

Objektorientierter Stil

public mysqli::get_warnings ( ) : mysqli_warning

Prozeduraler Stil

mysqli_get_warnings ( mysqli $link ) : mysqli_warning
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Retrieves information about the most recently executed query

  • « mysqli::get_warnings
  • mysqli::init »
  • PHP Manual
  • mysqli
  • Retrieves information about the most recently executed query

mysqli::$info

mysqli_info

(PHP 5, PHP 7)

mysqli::$info -- mysqli_info — Retrieves information about the most recently executed query

Beschreibung

Objektorientierter Stil

string $mysqli->info;

Prozeduraler Stil

mysqli_info ( mysqli $link ) : string

The mysqli_info() function returns a string providing information about the last query executed. The nature of this string is provided below:

Possible mysqli_info return values
Query type | Example result string
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Hinweis:

Queries which do not fall into one of the preceding formats are not supported. In these situations, mysqli_info() will return an empty string.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

A character string representing additional information about the most recently executed query.

Beispiele

Beispiel #1 $mysqli->info example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO ... SELECT */
$mysqli->query("INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", $mysqli->info);

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO ... SELECT */
mysqli_query($link, "INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", mysqli_info($link));

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Records: 150  Duplicates: 0  Warnings: 0

Siehe auch

  • mysqli_affected_rows() - Ermittelt die Anzahl der betroffenen Zeilen in einem vorherigen MySQL Vorgang
  • mysqli_warning_count() - Gibt die Anzahl an Warnungen für den letzten Query der übergebenen Verbindung zurück.
  • mysqli_num_rows() - Gets the number of rows in a result


Initializes MySQLi and returns an object for use with mysqli_real_connect()

  • « mysqli::$info
  • mysqli::$insert_id »
  • PHP Manual
  • mysqli
  • Initializes MySQLi and returns an object for use with mysqli_real_connect()

mysqli::init

mysqli_init

(PHP 5, PHP 7)

mysqli::init -- mysqli_init — Initializes MySQLi and returns an object for use with mysqli_real_connect()

Beschreibung

Objektorientierter Stil

public mysqli::init ( ) : mysqli

Prozeduraler Stil

mysqli_init ( ) : mysqli

Allocates or initializes a MYSQL object suitable for mysqli_options() and mysqli_real_connect().

Hinweis:

Any subsequent calls to any mysqli function (except mysqli_options() and mysqli_ssl_set()) will fail until mysqli_real_connect() was called.

Rückgabewerte

Returns an object.

Beispiele

See mysqli_real_connect().

Siehe auch

  • mysqli_options() - Set options
  • mysqli_close() - Schließt die zuvor geöffnete Datenbankverbindung
  • mysqli_real_connect() - Opens a connection to a mysql server
  • mysqli_connect() - Alias von mysqli::__construct


Returns the auto generated id used in the latest query

  • « mysqli::init
  • mysqli::kill »
  • PHP Manual
  • mysqli
  • Returns the auto generated id used in the latest query

mysqli::$insert_id

mysqli_insert_id

(PHP 5, PHP 7)

mysqli::$insert_id -- mysqli_insert_id — Returns the auto generated id used in the latest query

Beschreibung

Objektorientierter Stil

mixed $mysqli->insert_id;

Prozeduraler Stil

mysqli_insert_id ( mysqli $link ) : mixed

The mysqli_insert_id() function returns the ID generated by a query (usually INSERT) on a table with a column having the AUTO_INCREMENT attribute. If no INSERT or UPDATE statements were sent via this connection, or if the modified table does not have a column with the AUTO_INCREMENT attribute, this function will return zero.

Hinweis:

Performing an INSERT or UPDATE statement using the LAST_INSERT_ID() function will also modify the value returned by the mysqli_insert_id() function.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

The value of the AUTO_INCREMENT field that was updated by the previous query. Returns zero if there was no previous query on the connection or if the query did not update an AUTO_INCREMENT value.

Hinweis:

If the number is greater than maximal int value, mysqli_insert_id() will return a string.

Beispiele

Beispiel #1 $mysqli->insert_id example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);

/* drop table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);

printf ("New Record has id %d.\n", mysqli_insert_id($link));

/* drop table */
mysqli_query($link, "DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

New Record has id 1.


Asks the server to kill a MySQL thread

  • « mysqli::$insert_id
  • mysqli::more_results »
  • PHP Manual
  • mysqli
  • Asks the server to kill a MySQL thread

mysqli::kill

mysqli_kill

(PHP 5, PHP 7)

mysqli::kill -- mysqli_kill — Asks the server to kill a MySQL thread

Beschreibung

Objektorientierter Stil

public mysqli::kill ( int $processid ) : bool

Prozeduraler Stil

mysqli_kill ( mysqli $link , int $processid ) : bool

This function is used to ask the server to kill a MySQL thread specified by the processid parameter. This value must be retrieved by calling the mysqli_thread_id() function.

To stop a running query you should use the SQL command KILL QUERY processid.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysqli::kill() example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", $mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link, $thread_id);

/* This should produce an error */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Error: MySQL server has gone away

Siehe auch

  • mysqli_thread_id() - Returns the thread ID for the current connection


Check if there are any more query results from a multi query

  • « mysqli::kill
  • mysqli::multi_query »
  • PHP Manual
  • mysqli
  • Check if there are any more query results from a multi query

mysqli::more_results

mysqli_more_results

(PHP 5, PHP 7)

mysqli::more_results -- mysqli_more_results — Check if there are any more query results from a multi query

Beschreibung

Objektorientierter Stil

public mysqli::more_results ( ) : bool

Prozeduraler Stil

mysqli_more_results ( mysqli $link ) : bool

Indicates if one or more result sets are available from a previous call to mysqli_multi_query().

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Returns true if one or more result sets (including errors) are available from a previous call to mysqli_multi_query(), otherwise false.

Beispiele

See mysqli_multi_query().

Siehe auch

  • mysqli_multi_query() - Performs a query on the database
  • mysqli_next_result() - Prepare next result from multi_query
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_use_result() - Initiate a result set retrieval


Performs a query on the database

  • « mysqli::more_results
  • mysqli::next_result »
  • PHP Manual
  • mysqli
  • Performs a query on the database

mysqli::multi_query

mysqli_multi_query

(PHP 5, PHP 7)

mysqli::multi_query -- mysqli_multi_query — Performs a query on the database

Beschreibung

Objektorientierter Stil

public mysqli::multi_query ( string $query ) : bool

Prozeduraler Stil

mysqli_multi_query ( mysqli $link , string $query ) : bool

Executes one or multiple queries which are concatenated by a semicolon.

To retrieve the resultset from the first query you can use mysqli_use_result() or mysqli_store_result(). All subsequent query results can be processed using mysqli_more_results() and mysqli_next_result().

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

query

The query, as a string.

Data inside the query should be properly escaped.

Rückgabewerte

Returns false if the first statement failed. To retrieve subsequent errors from other statements you have to call mysqli_next_result() first.

Beispiele

Beispiel #1 mysqli::multi_query() example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Siehe auch

  • mysqli_query() - Performs a query on the database
  • mysqli_use_result() - Initiate a result set retrieval
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_next_result() - Prepare next result from multi_query
  • mysqli_more_results() - Check if there are any more query results from a multi query


Prepare next result from multi_query

  • « mysqli::multi_query
  • mysqli::options »
  • PHP Manual
  • mysqli
  • Prepare next result from multi_query

mysqli::next_result

mysqli_next_result

(PHP 5, PHP 7)

mysqli::next_result -- mysqli_next_result — Prepare next result from multi_query

Beschreibung

Objektorientierter Stil

public mysqli::next_result ( ) : bool

Prozeduraler Stil

mysqli_next_result ( mysqli $link ) : bool

Prepares next result set from a previous call to
mysqli_multi_query() which can be retrieved by
mysqli_store_result() or
mysqli_use_result().

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Also returns false if the next statement resulted in an error, unlike mysqli_more_results().

Beispiele

See mysqli_multi_query().

Siehe auch

  • mysqli_multi_query() - Performs a query on the database
  • mysqli_more_results() - Check if there are any more query results from a multi query
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_use_result() - Initiate a result set retrieval


Set options

  • « mysqli::next_result
  • mysqli::ping »
  • PHP Manual
  • mysqli
  • Set options

mysqli::options

mysqli_options

(PHP 5, PHP 7)

mysqli::options -- mysqli_options — Set options

Beschreibung

Objektorientierter Stil

public mysqli::options ( int $option , mixed $value ) : bool

Prozeduraler Stil

mysqli_options ( mysqli $link , int $option , mixed $value ) : bool

Used to set extra connect options and affect behavior for a connection.

This function may be called multiple times to set several options.

mysqli_options() should be called after
mysqli_init() and before
mysqli_real_connect().

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

option

The option that you want to set. It can be one of the following values:

Valid options
Name | Description
MYSQLI_OPT_CONNECT_TIMEOUT | Connection timeout in seconds
MYSQLI_OPT_READ_TIMEOUT | Command execution result timeout in seconds. Available as of PHP 7.2.0.
MYSQLI_OPT_LOCAL_INFILE | Enable/disable use of LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND | Command to execute after when connecting to MySQL server
MYSQLI_SET_CHARSET_NAME | The charset to be set as default.
MYSQLI_READ_DEFAULT_FILE | Read options from named option file instead of my.cnf Not supported by mysqlnd.
MYSQLI_READ_DEFAULT_GROUP | Read options from the named group from my.cnf or the file specified with MYSQL_READ_DEFAULT_FILE. Not supported by mysqlnd.
MYSQLI_SERVER_PUBLIC_KEY | RSA public key file used with the SHA-256 based authentication.
MYSQLI_OPT_NET_CMD_BUFFER_SIZE | The size of the internal command/network buffer. Only valid for mysqlnd.
MYSQLI_OPT_NET_READ_BUFFER_SIZE | Maximum read chunk size in bytes when reading the body of a MySQL command packet. Only valid for mysqlnd.
MYSQLI_OPT_INT_AND_FLOAT_NATIVE | Convert integer and float columns back to PHP numbers. Only valid for mysqlnd.
MYSQLI_OPT_SSL_VERIFY_SERVER_CERT | Whether to verify server certificate or not.

value

The value for the option.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

See mysqli_real_connect().

Anmerkungen

Hinweis:

MySQLnd nimmt immer den Standardzeichensatz des Servers an. Dieser Zeichensatz wird während des Aufbaus der Verbindung bzw. der Authentifizierung übermittelt und danach von MySQLnd verwendet.

Libmysqlclient verwendet als Standardzeichensatz den, der in der Datei my.cnf angegeben oder durch einen Aufruf von mysqli_options() vor dem Aufruf von mysqli_real_connect() aber nach mysqli_init() gesetzt wurde.

Siehe auch

  • mysqli_init() - Initializes MySQLi and returns an object for use with mysqli_real_connect()
  • mysqli_real_connect() - Opens a connection to a mysql server


Pings a server connection, or tries to reconnect if the connection has gone down

  • « mysqli::options
  • mysqli::poll »
  • PHP Manual
  • mysqli
  • Pings a server connection, or tries to reconnect if the connection has gone down

mysqli::ping

mysqli_ping

(PHP 5, PHP 7)

mysqli::ping -- mysqli_ping — Pings a server connection, or tries to reconnect if the connection has gone down

Beschreibung

Objektorientierter Stil

public mysqli::ping ( ) : bool

Prozeduraler Stil

mysqli_ping ( mysqli $link ) : bool

Checks whether the connection to the server is working. If it has gone down and global option mysqli.reconnect is enabled, an automatic reconnection is attempted.

Hinweis: The php.ini setting mysqli.reconnect is ignored by the mysqlnd driver, so automatic reconnection is never attempted.

This function can be used by clients that remain idle for a long while, to check whether the server has closed the connection and reconnect if necessary.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysqli::ping() example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

/* check if server is alive */
if ($mysqli->ping()) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* check if server is alive */
if (mysqli_ping($link)) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Our connection is ok!


Poll connections

  • « mysqli::ping
  • mysqli::prepare »
  • PHP Manual
  • mysqli
  • Poll connections

mysqli::poll

mysqli_poll

(PHP 5 >= 5.3.0, PHP 7)

mysqli::poll -- mysqli_poll — Poll connections

Beschreibung

Objektorientierter Stil

public static mysqli::poll ( array &$read , array &$error , array &$reject , int $sec , int $usec = 0 ) : int

Prozeduraler Stil

mysqli_poll ( array &$read , array &$error , array &$reject , int $sec , int $usec = 0 ) : int

Poll connections. Nur in mysqlnd verfügbar. The method can be used as static.

Parameter-Liste

read

List of connections to check for outstanding results that can be read.

error

List of connections on which an error occurred, for example, query failure or lost connection.

reject

List of connections rejected because no asynchronous query has been run on for which the function could poll results.

sec

Maximum number of seconds to wait, must be non-negative.

usec

Maximum number of microseconds to wait, must be non-negative.

Rückgabewerte

Returns number of ready connections upon success, false otherwise.

Beispiele

Beispiel #1 A mysqli_poll() example

<?php
$link1 = mysqli_connect();
$link1->query("SELECT 'test'", MYSQLI_ASYNC);
$all_links = array($link1);
$processed = 0;
do {
    $links = $errors = $reject = array();
    foreach ($all_links as $link) {
        $links[] = $errors[] = $reject[] = $link;
    }
    if (!mysqli_poll($links, $errors, $reject, 1)) {
        continue;
    }
    foreach ($links as $link) {
        if ($result = $link->reap_async_query()) {
            print_r($result->fetch_row());
            if (is_object($result))
                mysqli_free_result($result);
        } else die(sprintf("MySQLi Error: %s", mysqli_error($link)));
        $processed++;
    }
} while ($processed < count($all_links));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => test
)

Siehe auch

  • mysqli_query() - Performs a query on the database
  • mysqli_reap_async_query() - Get result from async query


Prepare an SQL statement for execution

  • « mysqli::poll
  • mysqli::query »
  • PHP Manual
  • mysqli
  • Prepare an SQL statement for execution

mysqli::prepare

mysqli_prepare

(PHP 5, PHP 7)

mysqli::prepare -- mysqli_prepare — Prepare an SQL statement for execution

Beschreibung

Objektorientierter Stil

public mysqli::prepare ( string $query ) : mysqli_stmt

Prozeduraler Stil

mysqli_prepare ( mysqli $link , string $query ) : mysqli_stmt

Prepares the SQL query, and returns a statement handle to be used for further operations on the statement. The query must consist of a single SQL statement.

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

query

The query, as a string.

Hinweis:

You should not add a terminating semicolon or \g to the statement.

This parameter can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Hinweis:

The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement, or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. It's not allowed to compare marker with NULL by ? IS NULL too. In general, parameters are legal only in Data Manipulation Language (DML) statements, and not in Data Definition Language (DDL) statements.

Rückgabewerte

mysqli_prepare() returns a statement object or false if an error occurred.

Beispiele

Beispiel #1 mysqli::prepare() example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Amersfoort is in district Utrecht

Siehe auch

  • mysqli_stmt_execute() - Executes a prepared Query
  • mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • mysqli_stmt_bind_param() - Bindet Variablen als Parameter an eine vorbereitete Anweisung (prepared statement)
  • mysqli_stmt_bind_result() - Bindet Variablen an eine vorbereitete Anweisung (prepared statement), um das Ergebnis einer Abfrage abzulegen
  • mysqli_stmt_close() - Schließt eine vorbereitete Anweisung (prepared statement)


Performs a query on the database

  • « mysqli::prepare
  • mysqli::real_connect »
  • PHP Manual
  • mysqli
  • Performs a query on the database

mysqli::query

mysqli_query

(PHP 5, PHP 7)

mysqli::query -- mysqli_query — Performs a query on the database

Beschreibung

Objektorientierter Stil

public mysqli::query ( string $query , int $resultmode = MYSQLI_STORE_RESULT ) : mixed

Prozeduraler Stil

mysqli_query ( mysqli $link , string $query , int $resultmode = MYSQLI_STORE_RESULT ) : mixed

Performs a query against the database.

For non-DML queries (not INSERT, UPDATE or DELETE),
this function is similar to calling
mysqli_real_query() followed by either
mysqli_use_result() or
mysqli_store_result().

Hinweis:

In the case where you pass a statement to mysqli_query() that is longer than max_allowed_packet of the server, the returned error codes are different depending on whether you are using MySQL Native Driver (mysqlnd) or MySQL Client Library (libmysqlclient). The behavior is as follows:

  • mysqlnd on Linux returns an error code of 1153. The error message means got a packet bigger than max_allowed_packet bytes.

  • mysqlnd on Windows returns an error code 2006. This error message means server has gone away.

  • libmysqlclient on all platforms returns an error code 2006. This error message means server has gone away.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

query

The query string.

Data inside the query should be properly escaped.

resultmode

Either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, MYSQLI_STORE_RESULT is used.

If you use MYSQLI_USE_RESULT all subsequent calls will return error Commands out of sync unless you call mysqli_free_result()

With MYSQLI_ASYNC (available with mysqlnd), it is possible to perform query asynchronously. mysqli_poll() is then used to get results from such queries.

Rückgabewerte

Returns false on failure. For successful queries which produce a result set, such as SELECT, SHOW, DESCRIBE or EXPLAIN, mysqli_query() will return a mysqli_result object. For other successful queries, mysqli_query() will return true.

Beispiele

Beispiel #1 mysqli::query() example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

/* Create table doesn't return a resultset */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);

    /* free result set */
    $result->close();
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Error: %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Create table doesn't return a resultset */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", mysqli_num_rows($result));

    /* free result set */
    mysqli_free_result($result);
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!mysqli_query($link, "SET @a:='this will not work'")) {
        printf("Error: %s\n", mysqli_error($link));
    }
    mysqli_free_result($result);
}

mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Table myCity successfully created.
Select returned 10 rows.
Error: Commands out of sync;  You can't run this command now

Siehe auch

  • mysqli_real_query() - Execute an SQL query
  • mysqli_multi_query() - Performs a query on the database
  • mysqli_free_result() - Frees the memory associated with a result


Opens a connection to a mysql server

  • « mysqli::query
  • mysqli::real_escape_string »
  • PHP Manual
  • mysqli
  • Opens a connection to a mysql server

mysqli::real_connect

mysqli_real_connect

(PHP 5, PHP 7)

mysqli::real_connect -- mysqli_real_connect — Opens a connection to a mysql server

Beschreibung

Objektorientierter Stil

public mysqli::real_connect ( string $host = ? , string $username = ? , string $passwd = ? , string $dbname = ? , int $port = ? , string $socket = ? , int $flags = ? ) : bool

Prozeduraler Stil

mysqli_real_connect ( mysqli $link , string $host = ? , string $username = ? , string $passwd = ? , string $dbname = ? , int $port = ? , string $socket = ? , int $flags = ? ) : bool

Establish a connection to a MySQL database engine.

This function differs from mysqli_connect():

  • mysqli_real_connect() needs a valid object which has to be created by function mysqli_init().

  • With the mysqli_options() function you can set various options for connection.

  • There is a flags parameter.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

host

Can be either a host name or an IP address. Passing the null value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol.

username

The MySQL user name.

passwd

If provided or null, the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not).

dbname

If provided will specify the default database to be used when performing queries.

port

Specifies the port number to attempt to connect to the MySQL server.

socket

Specifies the socket or named pipe that should be used.

Hinweis:

Specifying the socket parameter will not explicitly determine the type of connection to be used when connecting to the MySQL server. How the connection is made to the MySQL database is determined by the host parameter.

flags

With the parameter flags you can set different connection options:

Supported flags
Name | Description
MYSQLI_CLIENT_COMPRESS | Use compression protocol
MYSQLI_CLIENT_FOUND_ROWS | return number of matched rows, not the number of affected rows
MYSQLI_CLIENT_IGNORE_SPACE | Allow spaces after function names. Makes all function names reserved words.
MYSQLI_CLIENT_INTERACTIVE | Allow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection
MYSQLI_CLIENT_SSL | Use SSL (encryption)
MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT | Like MYSQLI_CLIENT_SSL, but disables validation of the provided SSL certificate. This is only for installations using MySQL Native Driver and MySQL 5.6 or later.

Hinweis:

For security reasons the MULTI_STATEMENT flag is not supported in PHP. If you want to execute multiple queries use the mysqli_multi_query() function.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysqli::real_connect() example

Objektorientierter Stil

<?php

$mysqli = mysqli_init();
if (!$mysqli) {
    die('mysqli_init failed');
}

if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
    die('Setting MYSQLI_INIT_COMMAND failed');
}

if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
    die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}

if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db')) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Success... ' . $mysqli->host_info . "\n";

$mysqli->close();
?>

Objektorientierter Stil when extending mysqli class

<?php

class foo_mysqli extends mysqli {
    public function __construct($host, $user, $pass, $db) {
        parent::init();

        if (!parent::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
            die('Setting MYSQLI_INIT_COMMAND failed');
        }

        if (!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
            die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
        }

        if (!parent::real_connect($host, $user, $pass, $db)) {
            die('Connect Error (' . mysqli_connect_errno() . ') '
                    . mysqli_connect_error());
        }
    }
}

$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');

echo 'Success... ' . $db->host_info . "\n";

$db->close();
?>

Prozeduraler Stil

<?php

$link = mysqli_init();
if (!$link) {
    die('mysqli_init failed');
}

if (!mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
    die('Setting MYSQLI_INIT_COMMAND failed');
}

if (!mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
    die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}

if (!mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'my_db')) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Success... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Success... MySQL host info: localhost via TCP/IP

Anmerkungen

Hinweis:

MySQLnd nimmt immer den Standardzeichensatz des Servers an. Dieser Zeichensatz wird während des Aufbaus der Verbindung bzw. der Authentifizierung übermittelt und danach von MySQLnd verwendet.

Libmysqlclient verwendet als Standardzeichensatz den, der in der Datei my.cnf angegeben oder durch einen Aufruf von mysqli_options() vor dem Aufruf von mysqli_real_connect() aber nach mysqli_init() gesetzt wurde.

Siehe auch

  • mysqli_connect() - Alias von mysqli::__construct
  • mysqli_init() - Initializes MySQLi and returns an object for use with mysqli_real_connect()
  • mysqli_options() - Set options
  • mysqli_ssl_set() - Used for establishing secure connections using SSL
  • mysqli_close() - Schließt die zuvor geöffnete Datenbankverbindung


Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

  • « mysqli::real_connect
  • mysqli::real_query »
  • PHP Manual
  • mysqli
  • Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

mysqli::real_escape_string

mysqli::escape_string

mysqli_real_escape_string

(PHP 5, PHP 7)

mysqli::real_escape_string -- mysqli::escape_string -- mysqli_real_escape_string — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

Beschreibung

Objektorientierter Stil

public mysqli::escape_string ( string $escapestr ) : string
mysqli::real_escape_string ( string $escapestr ) : string

Prozeduraler Stil

mysqli_real_escape_string ( mysqli $link , string $escapestr ) : string

This function is used to create a legal SQL string that you can use in an SQL statement. The given string is encoded to an escaped SQL string, taking into account the current character set of the connection.

Achtung

Security: the default character set

The character set must be set either at the server level, or with the API function mysqli_set_charset() for it to affect mysqli_real_escape_string(). See the concepts section on character sets for more information.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

escapestr

The string to be escaped.

Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z.

Rückgabewerte

Returns an escaped string.

Fehler/Exceptions

Executing this function without a valid MySQLi connection passed in will return null and emit E_WARNING level errors.

Beispiele

Beispiel #1 mysqli::real_escape_string() example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", $mysqli->sqlstate);
}

$city = $mysqli->real_escape_string($city);

/* this query with escaped $city will work */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", $mysqli->affected_rows);
}

$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", mysqli_sqlstate($link));
}

$city = mysqli_real_escape_string($link, $city);

/* this query with escaped $city will work */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", mysqli_affected_rows($link));
}

mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Error: 42000
1 Row inserted.

Anmerkungen

Hinweis:

For those accustomed to using mysql_real_escape_string(),
note that the arguments of mysqli_real_escape_string()
differ from what mysql_real_escape_string() expects.
The link identifier comes first in
mysqli_real_escape_string(), whereas the string to be escaped
comes first in mysql_real_escape_string().

Siehe auch

  • mysqli_set_charset() - Sets the default client character set
  • mysqli_character_set_name() - Returns the default character set for the database connection


Execute an SQL query

  • « mysqli::real_escape_string
  • mysqli::reap_async_query »
  • PHP Manual
  • mysqli
  • Execute an SQL query

mysqli::real_query

mysqli_real_query

(PHP 5, PHP 7)

mysqli::real_query -- mysqli_real_query — Execute an SQL query

Beschreibung

Objektorientierter Stil

public mysqli::real_query ( string $query ) : bool

Prozeduraler Stil

mysqli_real_query ( mysqli $link , string $query ) : bool

Executes a single query against the database whose result can then be retrieved or stored using the mysqli_store_result() or mysqli_use_result() functions.

In order to determine if a given query should return a result set or not, see mysqli_field_count().

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

query

The query, as a string.

Data inside the query should be properly escaped.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • mysqli_query() - Performs a query on the database
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_use_result() - Initiate a result set retrieval


Get result from async query

  • « mysqli::real_query
  • mysqli::refresh »
  • PHP Manual
  • mysqli
  • Get result from async query

mysqli::reap_async_query

mysqli_reap_async_query

(PHP 5 >= 5.3.0, PHP 7)

mysqli::reap_async_query -- mysqli_reap_async_query — Get result from async query

Beschreibung

Objektorientierter Stil

public mysqli::reap_async_query ( ) : mysqli_result

Prozeduraler Stil

mysqli_reap_async_query ( mysqli $link ) : mysqli_result

Get result from async query. Nur in mysqlnd verfügbar.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Returns false on failure. For successful queries which produce a result set, such as SELECT, SHOW, DESCRIBE or EXPLAIN, mysqli_reap_async_query() will return a mysqli_result object. For other successful queries, mysqli_reap_async_query() will return true.

Siehe auch

  • mysqli_poll() - Poll connections


Refreshes

  • « mysqli::reap_async_query
  • mysqli::release_savepoint »
  • PHP Manual
  • mysqli
  • Refreshes

mysqli::refresh

mysqli_refresh

(PHP 5 >= 5.3.0, PHP 7)

mysqli::refresh -- mysqli_refresh — Refreshes

Beschreibung

Objektorientierter Stil

public mysqli::refresh ( int $options ) : bool

Prozeduraler Stil

mysqli_refresh ( mysqli $link , int $options ) : bool

Flushes tables or caches, or resets the replication server information.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

options

The options to refresh, using the MYSQLI_REFRESH_* constants as documented within the MySQLi constants documentation.

See also the official » MySQL Refresh documentation.

Rückgabewerte

true if the refresh was a success, otherwise false

Siehe auch

  • mysqli_poll() - Poll connections


Removes the named savepoint from the set of savepoints of the current transaction

  • « mysqli::refresh
  • mysqli::rollback »
  • PHP Manual
  • mysqli
  • Removes the named savepoint from the set of savepoints of the current transaction

mysqli::release_savepoint

mysqli_release_savepoint

(PHP 5 >= 5.5.0, PHP 7)

mysqli::release_savepoint -- mysqli_release_savepoint — Removes the named savepoint from the set of savepoints of the current transaction

Beschreibung

Objektorientierter Stil

public mysqli::release_savepoint ( string $name ) : bool

Prozeduraler Stil:

mysqli_release_savepoint ( mysqli $link , string $name ) : bool

This function is identical to executing $mysqli->query("RELEASE SAVEPOINT `$name`");. This function does not trigger commit or rollback.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

name

The identifier of the savepoint.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • mysqli_savepoint() - Set a named transaction savepoint


Rolls back current transaction

  • « mysqli::release_savepoint
  • mysqli::savepoint »
  • PHP Manual
  • mysqli
  • Rolls back current transaction

mysqli::rollback

mysqli_rollback

(PHP 5, PHP 7)

mysqli::rollback -- mysqli_rollback — Rolls back current transaction

Beschreibung

Objektorientierter Stil

public mysqli::rollback ( int $flags = 0 , string $name = ? ) : bool

Prozeduraler Stil

mysqli_rollback ( mysqli $link , int $flags = 0 , string $name = ? ) : bool

Rollbacks the current transaction for the database.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

flags

A bitmask of MYSQLI_TRANS_COR_* constants.

name

If provided then ROLLBACK/*name*/ is executed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

This function does not work with non transactional table types (like MyISAM or ISAM).

Beispiele

See the mysqli::begin_transaction() example.

Siehe auch

  • mysqli_begin_transaction() - Starts a transaction
  • mysqli_commit() - Commits the current transaction
  • mysqli_autocommit() - Aktiviert oder deaktiviert das automatische Übertragen von Datenbankänderungen
  • mysqli_release_savepoint() - Removes the named savepoint from the set of savepoints of the current transaction


Set a named transaction savepoint

  • « mysqli::rollback
  • mysqli::select_db »
  • PHP Manual
  • mysqli
  • Set a named transaction savepoint

mysqli::savepoint

mysqli_savepoint

(PHP 5 >= 5.5.0, PHP 7)

mysqli::savepoint -- mysqli_savepoint — Set a named transaction savepoint

Beschreibung

Objektorientierter Stil

public mysqli::savepoint ( string $name ) : bool

Prozeduraler Stil:

mysqli_savepoint ( mysqli $link , string $name ) : bool

This function is identical to executing $mysqli->query("SAVEPOINT `$name`");

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

name

The identifier of the savepoint.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • mysqli_release_savepoint() - Removes the named savepoint from the set of savepoints of the current transaction


Selects the default database for database queries

  • « mysqli::savepoint
  • mysqli::set_charset »
  • PHP Manual
  • mysqli
  • Selects the default database for database queries

mysqli::select_db

mysqli_select_db

(PHP 5, PHP 7)

mysqli::select_db -- mysqli_select_db — Selects the default database for database queries

Beschreibung

Objektorientierter Stil

public mysqli::select_db ( string $dbname ) : bool

Prozeduraler Stil

mysqli_select_db ( mysqli $link , string $dbname ) : bool

Selects the default database to be used when performing queries against the database connection.

Hinweis:

This function should only be used to change the default database for the connection. You can select the default database with 4th parameter in mysqli_connect().

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

dbname

The database name.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysqli::select_db() example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

/* change db to world db */
$mysqli->select_db("world");

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

/* change db to world db */
mysqli_select_db($link, "world");

/* return name of current default database */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Default database is test.
Default database is world.

Siehe auch

  • mysqli_connect() - Alias von mysqli::__construct
  • mysqli_real_connect() - Opens a connection to a mysql server


Sets the default client character set

  • « mysqli::select_db
  • mysqli::$sqlstate »
  • PHP Manual
  • mysqli
  • Sets the default client character set

mysqli::set_charset

mysqli_set_charset

(PHP 5 >= 5.0.5, PHP 7)

mysqli::set_charset -- mysqli_set_charset — Sets the default client character set

Beschreibung

Objektorientierter Stil

public mysqli::set_charset ( string $charset ) : bool

Prozeduraler Stil

mysqli_set_charset ( mysqli $link , string $charset ) : bool

Sets the default character set to be used when sending data from and to the database server.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

charset

The charset to be set as default.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

To use this function on a Windows platform you need MySQL client library version 4.1.11 or above (for MySQL 5.0 you need 5.0.6 or above).

Hinweis:

This is the preferred way to change the charset. Using mysqli_query() to set it (such as SET NAMES utf8) is not recommended. See the MySQL character set concepts section for more information.

Beispiele

Beispiel #1 mysqli::set_charset() example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("Initial character set: %s\n", $mysqli->character_set_name());

/* change character set to utf8mb4 */
if (!$mysqli->set_charset("utf8mb4")) {
    printf("Error loading character set utf8mb4: %s\n", $mysqli->error);
    exit();
} else {
    printf("Current character set: %s\n", $mysqli->character_set_name());
}

$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("Initial character set: %s\n", mysqli_character_set_name($link));

/* change character set to utf8mb4 */
if (!mysqli_set_charset($link, "utf8mb4")) {
    printf("Error loading character set utf8mb4: %s\n", mysqli_error($link));
    exit();
} else {
    printf("Current character set: %s\n", mysqli_character_set_name($link));
}

mysqli_close($link);
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

Initial character set: latin1
Current character set: utf8mb4

Siehe auch

  • mysqli_character_set_name() - Returns the default character set for the database connection
  • mysqli_real_escape_string() - Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
  • MySQL character set concepts
  • » List of character sets that MySQL supports


Returns the SQLSTATE error from previous MySQL operation

  • « mysqli::set_charset
  • mysqli::ssl_set »
  • PHP Manual
  • mysqli
  • Returns the SQLSTATE error from previous MySQL operation

mysqli::$sqlstate

mysqli_sqlstate

(PHP 5, PHP 7)

mysqli::$sqlstate -- mysqli_sqlstate — Returns the SQLSTATE error from previous MySQL operation

Beschreibung

Objektorientierter Stil

string $mysqli->sqlstate;

Prozeduraler Stil

mysqli_sqlstate ( mysqli $link ) : string

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Hinweis:

Note that not all MySQL errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

Beispiele

Beispiel #1 $mysqli->sqlstate example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Table City already exists, so we should get an error */
if (!$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Error - SQLSTATE %s.\n", $mysqli->sqlstate);
}

$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Table City already exists, so we should get an error */
if (!mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Error - SQLSTATE %s.\n", mysqli_sqlstate($link));
}

mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Error - SQLSTATE 42S01.

Siehe auch

  • mysqli_errno() - Returns the error code for the most recent function call
  • mysqli_error() - Returns a string description of the last error


Used for establishing secure connections using SSL

  • « mysqli::$sqlstate
  • mysqli::stat »
  • PHP Manual
  • mysqli
  • Used for establishing secure connections using SSL

mysqli::ssl_set

mysqli_ssl_set

(PHP 5, PHP 7)

mysqli::ssl_set -- mysqli_ssl_set — Used for establishing secure connections using SSL

Beschreibung

Objektorientierter Stil

public mysqli::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher ) : bool

Prozeduraler Stil

mysqli_ssl_set ( mysqli $link , string $key , string $cert , string $ca , string $capath , string $cipher ) : bool

Used for establishing secure connections using SSL. It must be called before mysqli_real_connect(). This function does nothing unless OpenSSL support is enabled.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

key

The path name to the key file.

cert

The path name to the certificate file.

ca

The path name to the certificate authority file.

capath

The pathname to a directory that contains trusted SSL CA certificates in PEM format.

cipher

A list of allowable ciphers to use for SSL encryption.

Rückgabewerte

This function always returns true value. If SSL setup is incorrect mysqli_real_connect() will return an error when you attempt to connect.

Siehe auch

  • mysqli_options() - Set options
  • mysqli_real_connect() - Opens a connection to a mysql server


Liefert den aktuellen Systemstatus

  • « mysqli::ssl_set
  • mysqli::stmt_init »
  • PHP Manual
  • mysqli
  • Liefert den aktuellen Systemstatus

mysqli::stat

mysqli_stat

(PHP 5, PHP 7)

mysqli::stat -- mysqli_stat — Liefert den aktuellen Systemstatus

Beschreibung

Objektorientierter Stil

public mysqli::stat ( ) : string

Prozeduraler Stil

mysqli_stat ( mysqli $link ) : string

mysqli_stat() gibt eine Zeichenkette zurück, welche ähnliche Informationen enthält, wie sie der Befehl 'mysqladmin status' liefert. Das beinhaltet die Uptime in Sekunden, die Anzahl der laufenden Prozesse, Anfragen, Reloads und geöffnete Tabellen.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Eine Zeichenkette, die den Status des Servers enthält. Im Fehlerfall false.

Beispiele

Beispiel #1 mysqli::stat()-Beispiel

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Verbindung überprüfen */
if (mysqli_connect_errno()) {
    printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
    exit();
}

printf ("Systemstatus: %s\n", $mysqli->stat());

$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Verbindung überprüfen */
if (mysqli_connect_errno()) {
    printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
    exit();
}

printf("Systemstatus: %s\n", mysqli_stat($link));

mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Systemstatus: Uptime: 272  Threads: 1  Questions: 5340  Slow queries: 0
Opens: 13  Flush tables: 1  Open tables: 0  Queries per second avg: 19.632
Memory in use: 8496K  Max memory used: 8560K

Siehe auch

  • mysqli_get_server_info() - Returns the version of the MySQL server


Initializes a statement and returns an object for use with mysqli_stmt_prepare

  • « mysqli::stat
  • mysqli::store_result »
  • PHP Manual
  • mysqli
  • Initializes a statement and returns an object for use with mysqli_stmt_prepare

mysqli::stmt_init

mysqli_stmt_init

(PHP 5, PHP 7)

mysqli::stmt_init -- mysqli_stmt_init — Initializes a statement and returns an object for use with mysqli_stmt_prepare

Beschreibung

Objektorientierter Stil

public mysqli::stmt_init ( ) : mysqli_stmt

Prozeduraler Stil

mysqli_stmt_init ( mysqli $link ) : mysqli_stmt

Allocates and initializes a statement object suitable for mysqli_stmt_prepare().

Hinweis:

Any subsequent calls to any mysqli_stmt function will fail until mysqli_stmt_prepare() was called.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Returns an object.

Siehe auch

  • mysqli_stmt_prepare() - Prepare an SQL statement for execution


Transfers a result set from the last query

  • « mysqli::stmt_init
  • mysqli::$thread_id »
  • PHP Manual
  • mysqli
  • Transfers a result set from the last query

mysqli::store_result

mysqli_store_result

(PHP 5, PHP 7)

mysqli::store_result -- mysqli_store_result — Transfers a result set from the last query

Beschreibung

Objektorientierter Stil

public mysqli::store_result ( int $option = ? ) : mysqli_result

Prozeduraler Stil

mysqli_store_result ( mysqli $link , int $option = ? ) : mysqli_result

Transfers the result set from the last query on the database connection represented by the link parameter to be used with the mysqli_data_seek() function.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

option

The option that you want to set. It can be one of the following values:

Valid options
Name | Description
MYSQLI_STORE_RESULT_COPY_DATA | Copy results from the internal mysqlnd buffer into the PHP variables fetched. By default, mysqlnd will use a reference logic to avoid copying and duplicating results held in memory. For certain result sets, for example, result sets with many small rows, the copy approach can reduce the overall memory usage because PHP variables holding results may be released earlier (available with mysqlnd only)

Rückgabewerte

Returns a buffered result object or false if an error occurred.

Hinweis:

mysqli_store_result() returns false in case the query didn't return a result set (if the query was, for example an INSERT statement). This function also returns false if the reading of the result set failed. You can check if you have got an error by checking if mysqli_error() doesn't return an empty string, if mysqli_errno() returns a non zero value, or if mysqli_field_count() returns a non zero value. Also possible reason for this function returning false after successful call to mysqli_query() can be too large result set (memory for it cannot be allocated). If mysqli_field_count() returns a non-zero value, the statement should have produced a non-empty result set.

Anmerkungen

Hinweis:

Although it is always good practice to free the memory used by the result of a query using the mysqli_free_result() function, when transferring large result sets using the mysqli_store_result() this becomes particularly important.

Beispiele

See mysqli_multi_query().

Siehe auch

  • mysqli_real_query() - Execute an SQL query
  • mysqli_use_result() - Initiate a result set retrieval


Returns the thread ID for the current connection

  • « mysqli::store_result
  • mysqli::thread_safe »
  • PHP Manual
  • mysqli
  • Returns the thread ID for the current connection

mysqli::$thread_id

mysqli_thread_id

(PHP 5, PHP 7)

mysqli::$thread_id -- mysqli_thread_id — Returns the thread ID for the current connection

Beschreibung

Objektorientierter Stil

int $mysqli->thread_id;

Prozeduraler Stil

mysqli_thread_id ( mysqli $link ) : int

The mysqli_thread_id() function returns the thread ID for the current connection which can then be killed using the mysqli_kill() function. If the connection is lost and you reconnect with mysqli_ping(), the thread ID will be other. Therefore you should get the thread ID only when you need it.

Hinweis:

The thread ID is assigned on a connection-by-connection basis. Hence, if the connection is broken and then re-established a new thread ID will be assigned.

To kill a running query you can use the SQL command KILL QUERY processid.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Returns the Thread ID for the current connection.

Beispiele

Beispiel #1 $mysqli->thread_id example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", $mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link, $thread_id);

/* This should produce an error */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Error: MySQL server has gone away

Siehe auch

  • mysqli_kill() - Asks the server to kill a MySQL thread


Returns whether thread safety is given or not

  • « mysqli::$thread_id
  • mysqli::use_result »
  • PHP Manual
  • mysqli
  • Returns whether thread safety is given or not

mysqli::thread_safe

mysqli_thread_safe

(PHP 5, PHP 7)

mysqli::thread_safe -- mysqli_thread_safe — Returns whether thread safety is given or not

Beschreibung

Objektorientierter Stil

public mysqli::thread_safe ( ) : void

Prozeduraler Stil

mysqli_thread_safe ( ) : bool

Tells whether the client library is compiled as thread-safe.

Rückgabewerte

true if the client library is thread-safe, otherwise false.


Initiate a result set retrieval

  • « mysqli::thread_safe
  • mysqli::$warning_count »
  • PHP Manual
  • mysqli
  • Initiate a result set retrieval

mysqli::use_result

mysqli_use_result

(PHP 5, PHP 7)

mysqli::use_result -- mysqli_use_result — Initiate a result set retrieval

Beschreibung

Objektorientierter Stil

public mysqli::use_result ( ) : mysqli_result

Prozeduraler Stil

mysqli_use_result ( mysqli $link ) : mysqli_result

Used to initiate the retrieval of a result set from the last query executed using the mysqli_real_query() function on the database connection.

Either this or the mysqli_store_result() function must be called before the results of a query can be retrieved, and one or the other must be called to prevent the next query on that database connection from failing.

Hinweis:

The mysqli_use_result() function does not transfer the entire result set from the database and hence cannot be used functions such as mysqli_data_seek() to move to a particular row within the set. To use this functionality, the result set must be stored using mysqli_store_result(). One should not use mysqli_use_result() if a lot of processing on the client side is performed, since this will tie up the server and prevent other threads from updating any tables from which the data is being fetched.

Rückgabewerte

Returns an unbuffered result object or false if an error occurred.

Beispiele

Beispiel #1 mysqli::use_result() example

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->use_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_use_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Siehe auch

  • mysqli_real_query() - Execute an SQL query
  • mysqli_store_result() - Transfers a result set from the last query


Gibt die Anzahl an Warnungen für den letzten Query der übergebenen Verbindung zurück.

  • « mysqli::use_result
  • mysqli_stmt »
  • PHP Manual
  • mysqli
  • Gibt die Anzahl an Warnungen für den letzten Query der übergebenen Verbindung zurück.

mysqli::$warning_count

mysqli_warning_count

(PHP 5, PHP 7)

mysqli::$warning_count -- mysqli_warning_count — Gibt die Anzahl an Warnungen für den letzten Query der übergebenen Verbindung zurück.

Beschreibung

Objektorientierter Stil

int $mysqli->warning_count;

Prozeduraler Stil

mysqli_warning_count ( mysqli $link ) : int

Gibt die Anzahl an Warnungen für den letzten Query der übergebenen Verbindung zurück.

Hinweis:

Für das ermitteln der Warnungen kann der SQL Befehl SHOW WARNINGS [limit row_count] benutzt werden.

Parameter-Liste

link

Nur bei prozeduralem Aufruf: Ein von mysqli_connect() oder mysqli_init() zurückgegebenes Verbindungsobjekt.

Rückgabewerte

Wenn keine Warnungen vorhanden sind ist der Wert 0.

Beispiele

Beispiel #1 $mysqli->warning_count Beispiel

Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* a remarkable city in Wales */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$mysqli->query($query);

if ($mysqli->warning_count) {
    if ($result = $mysqli->query("SHOW WARNINGS")) {
        $row = $result->fetch_row();
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        $result->close();
    }
}

/* close connection */
$mysqli->close();
?>

Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* a remarkable long city name in Wales */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

mysqli_query($link, $query);

if (mysqli_warning_count($link)) {
    if ($result = mysqli_query($link, "SHOW WARNINGS")) {
        $row = mysqli_fetch_row($result);
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        mysqli_free_result($result);
    }
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Warning (1264): Data truncated for column 'Name' at row 1

Siehe auch

  • mysqli_errno() - Returns the error code for the most recent function call
  • mysqli_error() - Returns a string description of the last error
  • mysqli_sqlstate() - Returns the SQLSTATE error from previous MySQL operation


Die mysqli_stmt Klasse

(PHP 5, PHP 7)

Einführung

Repräsentiert ein Prepared Statement.

Klassenbeschreibung

mysqli_stmt {
/* Eigenschaften */
int $affected_rows;
int $errno;
array $error_list;
string $error;
int $field_count;
int $insert_id;
int $num_rows;
int $param_count;
string $sqlstate;
/* Methoden */
public __construct ( mysqli $link , string $query = ? )
public attr_get ( int $attr ) : int
public attr_set ( int $attr , int $mode ) : bool
public bind_param ( string $types , mixed &$var , mixed &...$vars ) : bool
public bind_result ( mixed &$var , mixed &...$vars ) : bool
public close ( ) : bool
public data_seek ( int $offset ) : void
public execute ( ) : bool
public fetch ( ) : bool
public free_result ( ) : void
public get_result ( ) : mysqli_result
public get_warnings ( ) : object
public more_results ( ) : bool
public next_result ( ) : bool
public num_rows ( ) : int
public prepare ( string $query ) : mixed
public reset ( ) : bool
public result_metadata ( ) : mysqli_result
public send_long_data ( int $param_nr , string $data ) : bool
public store_result ( ) : bool
}

Inhaltsverzeichnis

  • mysqli_stmt::$affected_rows — gibt die gesamte Anzahl der Zeilen zurück, die bei der letzten ausgeführten Anweisung geändert, gelöscht oder eingefügt worden sind
  • mysqli_stmt::attr_get — Liefert den aktuellen Wert des Attributs einer Anweisung
  • mysqli_stmt::attr_set — Verändert das Verhalten einer vorbereiteten Anweisung (prepared statement)
  • mysqli_stmt::bind_param — Bindet Variablen als Parameter an eine vorbereitete Anweisung (prepared statement)
  • mysqli_stmt::bind_result — Bindet Variablen an eine vorbereitete Anweisung (prepared statement), um das Ergebnis einer Abfrage abzulegen
  • mysqli_stmt::close — Schließt eine vorbereitete Anweisung (prepared statement)
  • mysqli_stmt::__construct — Erzeugt ein neues mysqli_stmt-Objekt
  • mysqli_stmt::data_seek — Geht zu einer beliebigen Zeile in der Ergebnismenge einer Abfrage.
  • mysqli_stmt::$errno — Returns the error code for the most recent statement call
  • mysqli_stmt::$error_list — Returns a list of errors from the last statement executed
  • mysqli_stmt::$error — Returns a string description for last statement error
  • mysqli_stmt::execute — Executes a prepared Query
  • mysqli_stmt::fetch — Fetch results from a prepared statement into the bound variables
  • mysqli_stmt::$field_count — Returns the number of columns in the given statement
  • mysqli_stmt::free_result — Frees stored result memory for the given statement handle
  • mysqli_stmt::get_result — Gets a result set from a prepared statement
  • mysqli_stmt::get_warnings — Get result of SHOW WARNINGS
  • mysqli_stmt::$insert_id — Get the ID generated from the previous INSERT operation
  • mysqli_stmt::more_results — Prüft, ob es weitere Ergebnismengen bei einer Mehrfachabfrage gibt.
  • mysqli_stmt::next_result — Liest die nächste Ergebnismenge einer Mehrfachabfrage aus.
  • mysqli_stmt::$num_rows — gibt die Anzahl der Zeilen einer Ergebnismenge zurück
  • mysqli_stmt::$param_count — Liefert die Anzahl der Parameter einer Anweisung
  • mysqli_stmt::prepare — Prepare an SQL statement for execution
  • mysqli_stmt::reset — Resets a prepared statement
  • mysqli_stmt::result_metadata — Returns result set metadata from a prepared statement
  • mysqli_stmt::send_long_data — Sendet Daten blockweise
  • mysqli_stmt::$sqlstate — Gibt den SQL-Status von der vorangegangenen Ausführung der Anweisung zurück
  • mysqli_stmt::store_result — Holt die Ergebnismenge einer vorbereiteten Anweisung (Prepared Statement)


gibt die gesamte Anzahl der Zeilen zurück, die bei der letzten ausgeführten Anweisung geändert, gelöscht oder eingefügt worden sind

  • « mysqli_stmt
  • mysqli_stmt::attr_get »
  • PHP Manual
  • mysqli_stmt
  • gibt die gesamte Anzahl der Zeilen zurück, die bei der letzten ausgeführten Anweisung geändert, gelöscht oder eingefügt worden sind

mysqli_stmt::$affected_rows

mysqli_stmt_affected_rows

(PHP 5, PHP 7)

mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — gibt die gesamte Anzahl der Zeilen zurück, die bei der letzten ausgeführten Anweisung geändert, gelöscht oder eingefügt worden sind

Beschreibung

Objektorientierter Stil

int $mysqli_stmt->affected_rows;

Prozeduraler Stil

mysqli_stmt_affected_rows ( mysqli_stmt $stmt ) : int

Gibt die Anzahl der Zeilen zurück, die bei einer INSERT, UPDATE oder DELETE Abfrage beeinflusst worden sind.

Die Funktion arbeitet nur mit Abfragen, die eine Tabelle aktualisieren. Um die Anzahl der Zeilen einer SELECT-Abfrage zu bekommen, ist stattdessen mysqli_stmt_num_rows() zu verwenden.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Ein Integer-Wert größer als Null zeigt die Anzahl der beeinflussten Zeilen an. Null zeigt an, dass bei einer UPDATE/DELETE-Anweisung keine Datensätze beeinflusst worden sind, dass keine Zeilen die WHERE-Bedingung der Anweisung erfüllt haben, oder dass keine Anweisung ausgeführt wurde. -1 zeigt an, dass die Abfrage einen Fehler zurückgegeben hat. NULL zeigt an, dass die Abfrage mit einem ungültigen Argument aufgerufen wurde.

Hinweis:

Ist die Anzahl der beeinflussten Zeilen größer als der maximal erlaubte Wert eines PHP-Integers, wird die Anzahl der beeinflussten Zeilen als String-Wert zurück gegeben.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Verbindung prüfen */
if (mysqli_connect_errno()) {
    printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
    exit();
}

/* temporäre Tabelle erzeugen */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* Anweisung vorbereiten */
if ($stmt = $mysqli->prepare($query)) {

    /* Variable an Platzhalter binden */
    $code = 'A%';
    $stmt->bind_param("s", $code);

    /* Anweisung ausführen */
    $stmt->execute();

    printf("eingefügte Zeilen: %d\n", $stmt->affected_rows);

    /* Anweisung schließen */
    $stmt->close();
}

/* Verbindung schließen */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Verbindung prüfen */
if (mysqli_connect_errno()) {
    printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
    exit();
}

/* temporäre Tabelle erzeugen */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* Anweisung vorbereiten */
if ($stmt = mysqli_prepare($link, $query)) {

    /* Variable an Platzhalter binden */
    $code = 'A%';
    mysqli_stmt_bind_param($stmt, "s", $code);

    /* Anweisung ausführen */
    mysqli_stmt_execute($stmt);

    printf("eingefügte Zeilen: %d\n", mysqli_stmt_affected_rows($stmt));

    /* Anweisung schließen */
    mysqli_stmt_close($stmt);
}

/* Verbindung schließen */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

eingefügte Zeilen: 17

Siehe auch

  • mysqli_stmt_num_rows() - gibt die Anzahl der Zeilen einer Ergebnismenge zurück
  • mysqli_prepare() - Prepare an SQL statement for execution


Liefert den aktuellen Wert des Attributs einer Anweisung

  • « mysqli_stmt::$affected_rows
  • mysqli_stmt::attr_set »
  • PHP Manual
  • mysqli_stmt
  • Liefert den aktuellen Wert des Attributs einer Anweisung

mysqli_stmt::attr_get

mysqli_stmt_attr_get

(PHP 5, PHP 7)

mysqli_stmt::attr_get -- mysqli_stmt_attr_get — Liefert den aktuellen Wert des Attributs einer Anweisung

Beschreibung

Objektorientierter Stil

public mysqli_stmt::attr_get ( int $attr ) : int

Prozeduraler Stil

mysqli_stmt_attr_get ( mysqli_stmt $stmt , int $attr ) : int

Gibt den aktuellen Wert des Attributs einer Anweisung zurück.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

attr

Das Attribut, dessen Wert abgefragt werden soll.

Rückgabewerte

Gibt false zurück, wenn das Attribut nicht gefunden wird. Andernfalls gibt die Funktion den Wert des Attributs zurück.


Verändert das Verhalten einer vorbereiteten Anweisung (prepared statement)

  • « mysqli_stmt::attr_get
  • mysqli_stmt::bind_param »
  • PHP Manual
  • mysqli_stmt
  • Verändert das Verhalten einer vorbereiteten Anweisung (prepared statement)

mysqli_stmt::attr_set

mysqli_stmt_attr_set

(PHP 5, PHP 7)

mysqli_stmt::attr_set -- mysqli_stmt_attr_set — Verändert das Verhalten einer vorbereiteten Anweisung (prepared statement)

Beschreibung

Objektorientierter Stil

public mysqli_stmt::attr_set ( int $attr , int $mode ) : bool

Prozeduraler Stil

mysqli_stmt_attr_set ( mysqli_stmt $stmt , int $attr , int $mode ) : bool

Wird verwendet, um das Verhalten einer vorbereiteten Anweisung (prepared statement) zu verändern. Die Funktion kann mehrmals aufgerufen werden, um verschiedene Attribute zu setzen.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

attr

Das Attribut, das gesetzt werden soll. Es kann einen der folgenden Werte haben:

Attribut-Werte
Konstante | Beschreibung
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | Der Wert true veranlasst mysqli_stmt_store_result(), die Meta-Information MYSQL_FIELD->max_length zu aktualisieren.
MYSQLI_STMT_ATTR_CURSOR_TYPE | Der Typ des Cursors, der für die Anweisung geöffnet wird, wenn mysqli_stmt_execute() aufgerufen wird. mode kann MYSQLI_CURSOR_TYPE_NO_CURSOR (Voreinstellung) oder MYSQLI_CURSOR_TYPE_READ_ONLY sein.
MYSQLI_STMT_ATTR_PREFETCH_ROWS | Anzahl der Zeilen, die auf einmal vom Server geholt werden, wenn ein Cursor benutzt wird. mode kann zwischen 1 und dem Maximalwert von unsigned long (einschließlich) liegen. Die Voreinstellung ist 1.

Wenn die Option MYSQLI_STMT_ATTR_CURSOR_TYPE mit MYSQLI_CURSOR_TYPE_READ_ONLY verwendet wird, dann wird ein Cursor für die Anweisung geöffnet, sobald mysqli_stmt_execute() aufgerufen wird. Wenn es schon einen offenen Cursor von einem vorherigen Aufruf von mysqli_stmt_execute() gibt, dann wird der Cursor geschlossen, bevor der neue geöffnet wird. mysqli_stmt_reset() schließt ebenfalls einen offenen Cursor, bevor die Anweisung für die Wiederausführung vorbereitet wird. mysqli_stmt_free_result() schließt einen offenen Cursor.

Wenn ein Cursor für eine Anweisung geöffnet wird, dann ist mysqli_stmt_store_result() unnötig.

mode

Der Wert, der dem Attribut zugewiesen werden soll.

Siehe auch

  • » Connector/MySQL mysql_stmt_attr_set()


Bindet Variablen als Parameter an eine vorbereitete Anweisung (prepared statement)

  • « mysqli_stmt::attr_set
  • mysqli_stmt::bind_result »
  • PHP Manual
  • mysqli_stmt
  • Bindet Variablen als Parameter an eine vorbereitete Anweisung (prepared statement)

mysqli_stmt::bind_param

mysqli_stmt_bind_param

(PHP 5, PHP 7)

mysqli_stmt::bind_param -- mysqli_stmt_bind_param — Bindet Variablen als Parameter an eine vorbereitete Anweisung (prepared statement)

Beschreibung

Objektorientierter Stil

public mysqli_stmt::bind_param ( string $types , mixed &$var , mixed &...$vars ) : bool

Prozeduraler Stil

mysqli_stmt_bind_param ( mysqli_stmt $stmt , string $types , mixed &$var , mixed &...$vars ) : bool

Bindet Variablen an die Parameter-Platzhalter einer SQL-Anweisung, die an mysqli_prepare() übergeben wurde.

Hinweis:

Wenn die Größe des Inhalts einer Variablen die maximal erlaubte Paketgröße (max_allowed_packet) überschreitet, dann muss b in types angegeben werden und mysqli_stmt_send_long_data() verwendet werden, um die Daten paketweise zu verschicken.

Hinweis:

Vorsicht, wenn mysqli_stmt_bind_param() zusammen mit
call_user_func_array() verwendet werden soll.
mysqli_stmt_bind_param() erfordert, dass die Parameter
als Referenzvariablen übergeben werden, wohingegen
call_user_func_array() als Parameter eine Liste von
Variablen akzeptiert, die sowohl Referenzen als auch Werte sein können.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

types

Eine Zeichenkette, die ein oder mehrere Zeichen enthält, die die Typen der zu bindenden Variablen spezifizieren.

Zeichen für die Typangabe
Zeichen | Beschreibung
i | die entsprechende Variable hat den Typ integer
d | die entsprechende Variable hat den Typ double
s | die entsprechende Variable hat den Typ string
b | die entsprechende Variable ist ein BLOB und wird paketweise geschickt

var
vars

Die Anzahl der Variablen und die Länge der Zeichenkette types müssen zu den Parametern in der Anweisung passen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

/* prüfe Verbindung */
if (mysqli_connect_errno()) {
    printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
    exit();
}

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* führe Anweisung aus */
$stmt->execute();

printf("%d Zeile eingefügt.\n", $stmt->affected_rows);

/* schließe Anweisung  */
$stmt->close();

/* bereinige die Tabelle CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Zeile gelöscht.\n", $mysqli->affected_rows);

/* schließe Verbindung */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

/* prüfe Verbindung */
if (!$link) {
    printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
    exit();
}

$stmt = mysqli_prepare($link, "INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* führe Anweisung aus */
mysqli_stmt_execute($stmt);

printf("%d Zeile eingefügt.\n", mysqli_stmt_affected_rows($stmt));

/* schließe Anweisung */
mysqli_stmt_close($stmt);

/* bereinige die Tabelle CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Zeile gelöscht.\n", mysqli_affected_rows($link));

/* schließe Verbindung */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

1 Row inserted.
1 Row deleted.

Siehe auch

  • mysqli_stmt_bind_result() - Bindet Variablen an eine vorbereitete Anweisung (prepared statement), um das Ergebnis einer Abfrage abzulegen
  • mysqli_stmt_execute() - Executes a prepared Query
  • mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • mysqli_prepare() - Prepare an SQL statement for execution
  • mysqli_stmt_send_long_data() - Sendet Daten blockweise
  • mysqli_stmt_errno() - Returns the error code for the most recent statement call
  • mysqli_stmt_error() - Returns a string description for last statement error


Bindet Variablen an eine vorbereitete Anweisung (prepared statement), um das Ergebnis einer Abfrage abzulegen

  • « mysqli_stmt::bind_param
  • mysqli_stmt::close »
  • PHP Manual
  • mysqli_stmt
  • Bindet Variablen an eine vorbereitete Anweisung (prepared statement), um das Ergebnis einer Abfrage abzulegen

mysqli_stmt::bind_result

mysqli_stmt_bind_result

(PHP 5, PHP 7)

mysqli_stmt::bind_result -- mysqli_stmt_bind_result — Bindet Variablen an eine vorbereitete Anweisung (prepared statement), um das Ergebnis einer Abfrage abzulegen

Beschreibung

Objektorientierter Stil

public mysqli_stmt::bind_result ( mixed &$var , mixed &...$vars ) : bool

Prozeduraler Stil

mysqli_stmt_bind_result ( mysqli_stmt $stmt , mixed &$var , mixed &...$vars ) : bool

Bindet Spalten der Ergebnismenge an Variablen.

Wenn mysqli_stmt_fetch() aufgerufen wird um Daten abzurufen, dann legt das MySQL-Client/Server-Protokoll die Daten der gebundenen Spalten in den spezifizierten Variablen var/vars ab.

Hinweis:

Alle Spalten müssen nach dem Aufruf von mysqli_stmt_execute() und vor dem Aufruf von mysqli_stmt_fetch() gebunden werden. Abhängig vom Typ der Spalte können Variablen automatisch den entsprechenden PHP-Typ annehmen.

Eine Spalte kann jederzeit gebunden oder neu gebunden werden, auch dann, wenn ein Ergebnis schon teilweise abgerufen wurde. Die neue Bindung wird beim nächsten Aufruf von mysqli_stmt_fetch() aktiv.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

var

Die Variable, die gebunden werden soll.

vars

Weitere zu bindende Variablen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* bereite Abfrage vor */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    $stmt->execute();

    /* binde Variablen an die Ergebnismenge */
    $stmt->bind_result($col1, $col2);

    /* rufe die Ergebnisse ab */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* schließe Abfrage */
    $stmt->close();
}
/* schließe Verbindung */
$mysqli->close();

?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* prüfe die Verbindung */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* bereite Abfrage vor */
if ($stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    mysqli_stmt_execute($stmt);

    /* binde Variablen an die Ergebnismenge */
    mysqli_stmt_bind_result($stmt, $col1, $col2);

    /* rufe die Ergebnisse ab */
    while (mysqli_stmt_fetch($stmt)) {
        printf("%s %s\n", $col1, $col2);
    }

    /* schließe Abfrage */
    mysqli_stmt_close($stmt);
}

/* schließe Verbindung */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

Siehe auch

  • mysqli_stmt_get_result() - Gets a result set from a prepared statement
  • mysqli_stmt_bind_param() - Bindet Variablen als Parameter an eine vorbereitete Anweisung (prepared statement)
  • mysqli_stmt_execute() - Executes a prepared Query
  • mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • mysqli_prepare() - Prepare an SQL statement for execution
  • mysqli_stmt_prepare() - Prepare an SQL statement for execution
  • mysqli_stmt_init() - Initializes a statement and returns an object for use with mysqli_stmt_prepare
  • mysqli_stmt_errno() - Returns the error code for the most recent statement call
  • mysqli_stmt_error() - Returns a string description for last statement error


Schließt eine vorbereitete Anweisung (prepared statement)

  • « mysqli_stmt::bind_result
  • mysqli_stmt::__construct »
  • PHP Manual
  • mysqli_stmt
  • Schließt eine vorbereitete Anweisung (prepared statement)

mysqli_stmt::close

mysqli_stmt_close

(PHP 5, PHP 7)

mysqli_stmt::close -- mysqli_stmt_close — Schließt eine vorbereitete Anweisung (prepared statement)

Beschreibung

Objektorientierter Stil

public mysqli_stmt::close ( ) : bool

Prozeduraler Stil

mysqli_stmt_close ( mysqli_stmt $stmt ) : bool

Schließt eine vorbereitete Anweisung (prepared statement). mysqli_stmt_close() gibt ebenfalls das Handle der Anweisung frei. Wenn die gegebene Anweisung noch anhängige oder ungelesene Ergebnismengen hat, dann annulliert die Funktion diese, so dass die nächste Abfrage ausgeführt werden kann.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • mysqli_prepare() - Prepare an SQL statement for execution


Erzeugt ein neues mysqli_stmt-Objekt

  • « mysqli_stmt::close
  • mysqli_stmt::data_seek »
  • PHP Manual
  • mysqli_stmt
  • Erzeugt ein neues mysqli_stmt-Objekt

mysqli_stmt::__construct

(PHP 5, PHP 7)

mysqli_stmt::__construct — Erzeugt ein neues mysqli_stmt-Objekt

Beschreibung

public mysqli_stmt::__construct ( mysqli $link , string $query = ? )

Diese Methode erzeugt ein neues mysqli_stmt-Objekt.

Parameter-Liste

link

Ein gültiges mysqli-Objekt.

query

Die Abfrage als Zeichenkette. Wenn der Parameter fehlt, dann verhält sich der Konstruktor genau wie mysqli_stmt_init(). Wenn er angegeben wurde, dann verhält sich der Konstruktor wie bei mysqli_prepare().

Siehe auch

  • mysqli_prepare() - Prepare an SQL statement for execution
  • mysqli_stmt_init() - Initializes a statement and returns an object for use with mysqli_stmt_prepare


Geht zu einer beliebigen Zeile in der Ergebnismenge einer Abfrage.

  • « mysqli_stmt::__construct
  • mysqli_stmt::$errno »
  • PHP Manual
  • mysqli_stmt
  • Geht zu einer beliebigen Zeile in der Ergebnismenge einer Abfrage.

mysqli_stmt::data_seek

mysqli_stmt_data_seek

(PHP 5, PHP 7)

mysqli_stmt::data_seek -- mysqli_stmt_data_seek — Geht zu einer beliebigen Zeile in der Ergebnismenge einer Abfrage.

Beschreibung

Objektorientierter Stil

public mysqli_stmt::data_seek ( int $offset ) : void

Prozeduraler Stil

mysqli_stmt_data_seek ( mysqli_stmt $stmt , int $offset ) : void

Geht zu einer beliebigen Zeile in der Ergebnismenge einer Abfrage.

mysqli_stmt_store_result() muss vor mysqli_stmt_data_seek() aufgerufen werden.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

offset

Muss zwischen null und der Anzahl der Zeilen minus eins sein (0.. mysqli_stmt_num_rows() - 1).

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
/* öffne Verbindung */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* prüfe Verbindung */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* führe Abfrage aus */
    $stmt->execute();

    /* binde die Ergebnisvariablen an das Ergebnis */
    $stmt->bind_result($name, $code);

    /* hole Ergebnismenge */
    $stmt->store_result();

    /* gehe zu Zeile Nr. 400 */
    $stmt->data_seek(399);

    /* hole Ergebnisse */
    $stmt->fetch();

    printf ("City: %s  Countrycode: %s\n", $name, $code);

    /* schließe Abfrage */
    $stmt->close();
}

/* schließe Verbindung */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
/* öffne Verbindung */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* prüfe Verbindung */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* führe Abfrage aus */
    mysqli_stmt_execute($stmt);

    /* binde die Ergebnisvariablen an das Ergebnis */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* hole Ergebnismenge */
    mysqli_stmt_store_result($stmt);

    /* gehe zu Zeile Nr. 400 */
    mysqli_stmt_data_seek($stmt, 399);

    /* hole Ergebnisse */
    mysqli_stmt_fetch($stmt);

    printf ("City: %s  Countrycode: %s\n", $name, $code);

    /* schließe Abfrage */
    mysqli_stmt_close($stmt);
}

/* schließe Verbindung */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

City: Benin City  Countrycode: NGA

Siehe auch

  • mysqli_prepare() - Prepare an SQL statement for execution


Returns the error code for the most recent statement call

  • « mysqli_stmt::data_seek
  • mysqli_stmt::$error_list »
  • PHP Manual
  • mysqli_stmt
  • Returns the error code for the most recent statement call

mysqli_stmt::$errno

mysqli_stmt_errno

(PHP 5, PHP 7)

mysqli_stmt::$errno -- mysqli_stmt_errno — Returns the error code for the most recent statement call

Beschreibung

Objektorientierter Stil

int $mysqli_stmt->errno;

Prozeduraler Stil

mysqli_stmt_errno ( mysqli_stmt $stmt ) : int

Returns the error code for the most recently invoked statement function that can succeed or fail.

Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

An error code value. Zero means no error occurred.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %d.\n", $stmt->errno);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %d.\n", mysqli_stmt_errno($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Error: 1146.

Siehe auch

  • mysqli_stmt_error() - Returns a string description for last statement error
  • mysqli_stmt_sqlstate() - Gibt den SQL-Status von der vorangegangenen Ausführung der Anweisung zurück


Returns a list of errors from the last statement executed

  • « mysqli_stmt::$errno
  • mysqli_stmt::$error »
  • PHP Manual
  • mysqli_stmt
  • Returns a list of errors from the last statement executed

mysqli_stmt::$error_list

mysqli_stmt_error_list

(PHP 5 >= 5.4.0, PHP 7)

mysqli_stmt::$error_list -- mysqli_stmt_error_list — Returns a list of errors from the last statement executed

Beschreibung

Objektorientierter Stil

array $mysqli_stmt->error_list;

Prozeduraler Stil

mysqli_stmt_error_list ( mysqli_stmt $stmt ) : array

Returns an array of errors for the most recently invoked statement function that can succeed or fail.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

A list of errors, each as an associative array containing the errno, error, and sqlstate.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    echo "Error:\n";
    print_r($stmt->error_list);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    echo "Error:\n";
    print_r(mysql_stmt_error_list($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Array
(
    [0] => Array
        (
            [errno] => 1146
            [sqlstate] => 42S02
            [error] => Table 'world.myCountry' doesn't exist
        )

)

Siehe auch

  • mysqli_stmt_error() - Returns a string description for last statement error
  • mysqli_stmt_errno() - Returns the error code for the most recent statement call
  • mysqli_stmt_sqlstate() - Gibt den SQL-Status von der vorangegangenen Ausführung der Anweisung zurück


Returns a string description for last statement error

  • « mysqli_stmt::$error_list
  • mysqli_stmt::execute »
  • PHP Manual
  • mysqli_stmt
  • Returns a string description for last statement error

mysqli_stmt::$error

mysqli_stmt_error

(PHP 5, PHP 7)

mysqli_stmt::$error -- mysqli_stmt_error — Returns a string description for last statement error

Beschreibung

Objektorientierter Stil

string $mysqli_stmt->error;

Prozeduraler Stil

mysqli_stmt_error ( mysqli_stmt $stmt ) : string

Returns a string containing the error message for the most recently invoked statement function that can succeed or fail.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

A string that describes the error. An empty string if no error occurred.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %s.\n", $stmt->error);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %s.\n", mysqli_stmt_error($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Error: Table 'world.myCountry' doesn't exist.

Siehe auch

  • mysqli_stmt_errno() - Returns the error code for the most recent statement call
  • mysqli_stmt_sqlstate() - Gibt den SQL-Status von der vorangegangenen Ausführung der Anweisung zurück


Executes a prepared Query

  • « mysqli_stmt::$error
  • mysqli_stmt::fetch »
  • PHP Manual
  • mysqli_stmt
  • Executes a prepared Query

mysqli_stmt::execute

mysqli_stmt_execute

(PHP 5, PHP 7)

mysqli_stmt::execute -- mysqli_stmt_execute — Executes a prepared Query

Beschreibung

Objektorientierter Stil

public mysqli_stmt::execute ( ) : bool

Prozeduraler Stil

mysqli_stmt_execute ( mysqli_stmt $stmt ) : bool

Executes a query that has been previously prepared using the mysqli_prepare() function. When executed any parameter markers which exist will automatically be replaced with the appropriate data.

If the statement is UPDATE, DELETE, or INSERT, the total number of affected rows can be determined by using the mysqli_stmt_affected_rows() function. Likewise, if the query yields a result set the mysqli_stmt_fetch() function is used.

Hinweis:

When using mysqli_stmt_execute(), the mysqli_stmt_fetch() function must be used to fetch the data prior to performing any additional queries.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = $mysqli->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
$stmt->execute();

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Execute the statement */
$stmt->execute();

/* close statement */
$stmt->close();

/* retrieve all rows from myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* free result set */
    $result->close();
}

/* remove table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = mysqli_prepare($link, $query);

mysqli_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
mysqli_stmt_execute($stmt);

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Execute the statement */
mysqli_stmt_execute($stmt);

/* close statement */
mysqli_stmt_close($stmt);

/* retrieve all rows from myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = mysqli_query($link, $query)) {
    while ($row = mysqli_fetch_row($result)) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* free result set */
    mysqli_free_result($result);
}

/* remove table */
mysqli_query($link, "DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Siehe auch

  • mysqli_prepare() - Prepare an SQL statement for execution
  • mysqli_stmt_bind_param() - Bindet Variablen als Parameter an eine vorbereitete Anweisung (prepared statement)
  • mysqli_stmt_get_result() - Gets a result set from a prepared statement


Fetch results from a prepared statement into the bound variables

  • « mysqli_stmt::execute
  • mysqli_stmt::$field_count »
  • PHP Manual
  • mysqli_stmt
  • Fetch results from a prepared statement into the bound variables

mysqli_stmt::fetch

mysqli_stmt_fetch

(PHP 5, PHP 7)

mysqli_stmt::fetch -- mysqli_stmt_fetch — Fetch results from a prepared statement into the bound variables

Beschreibung

Objektorientierter Stil

public mysqli_stmt::fetch ( ) : bool

Prozeduraler Stil

mysqli_stmt_fetch ( mysqli_stmt $stmt ) : bool

Fetch the result from a prepared statement into the variables bound by mysqli_stmt_bind_result().

Hinweis:

Note that all columns must be bound by the application before calling mysqli_stmt_fetch().

Hinweis:

Data are transferred unbuffered without calling mysqli_stmt_store_result() which can decrease performance (but reduces memory cost).

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Rückgabewerte
Value | Description
true | Success. Data has been fetched
false | Error occurred
null | No more rows/data exists or data truncation occurred

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* execute statement */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* fetch values */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = mysqli_prepare($link, $query)) {

    /* execute statement */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* fetch values */
    while (mysqli_stmt_fetch($stmt)) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)

Siehe auch

  • mysqli_prepare() - Prepare an SQL statement for execution
  • mysqli_stmt_errno() - Returns the error code for the most recent statement call
  • mysqli_stmt_error() - Returns a string description for last statement error
  • mysqli_stmt_bind_result() - Bindet Variablen an eine vorbereitete Anweisung (prepared statement), um das Ergebnis einer Abfrage abzulegen


Returns the number of columns in the given statement

  • « mysqli_stmt::fetch
  • mysqli_stmt::free_result »
  • PHP Manual
  • mysqli_stmt
  • Returns the number of columns in the given statement

mysqli_stmt::$field_count

mysqli_stmt_field_count

(PHP 5, PHP 7)

mysqli_stmt::$field_count -- mysqli_stmt_field_count — Returns the number of columns in the given statement

Beschreibung

Objektorientierter Stil

int $mysqli_stmt->field_count;

Prozeduraler Stil

mysqli_stmt_field_count ( mysqli_stmt $stmt ) : int

Returns the number of columns in the prepared statement.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Returns an integer representing the number of columns.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$code = 'FR';

$stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Code=?");
$stmt->bind_param('s', $code);
$stmt->execute();
$row = $stmt->get_result()->fetch_row();
for ($i = 0; $i < $stmt->field_count; $i++) {
    printf("Value of column number %d is %s", $i, $row[$i]);
}

Beispiel #2 Prozeduraler Stil

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$code = 'FR';

$stmt = mysqli_prepare($mysqli, "SELECT Name FROM Country WHERE Code=?");
mysqli_stmt_bind_param($stmt, 's', $code);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$row = mysqli_fetch_row($result);
for ($i = 0; $i < mysqli_stmt_field_count($stmt); $i++) {
    printf("Value of column number %d is %s", $i, $row[$i]);
}

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

Value of column number 0 is France

Siehe auch

  • mysqli_stmt_num_rows() - gibt die Anzahl der Zeilen einer Ergebnismenge zurück


Frees stored result memory for the given statement handle

  • « mysqli_stmt::$field_count
  • mysqli_stmt::get_result »
  • PHP Manual
  • mysqli_stmt
  • Frees stored result memory for the given statement handle

mysqli_stmt::free_result

mysqli_stmt_free_result

(PHP 5, PHP 7)

mysqli_stmt::free_result -- mysqli_stmt_free_result — Frees stored result memory for the given statement handle

Beschreibung

Objektorientierter Stil

public mysqli_stmt::free_result ( ) : void

Prozeduraler Stil

mysqli_stmt_free_result ( mysqli_stmt $stmt ) : void

Frees the result memory associated with the statement, which was allocated by mysqli_stmt_store_result().

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • mysqli_stmt_store_result() - Holt die Ergebnismenge einer vorbereiteten Anweisung (Prepared Statement)


Gets a result set from a prepared statement

  • « mysqli_stmt::free_result
  • mysqli_stmt::get_warnings »
  • PHP Manual
  • mysqli_stmt
  • Gets a result set from a prepared statement

mysqli_stmt::get_result

mysqli_stmt_get_result

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::get_result -- mysqli_stmt_get_result — Gets a result set from a prepared statement

Beschreibung

Objektorientierter Stil

public mysqli_stmt::get_result ( ) : mysqli_result

Prozeduraler Stil

mysqli_stmt_get_result ( mysqli_stmt $stmt ) : mysqli_result

Call to return a result set from a prepared statement query.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Returns false on failure. For successful queries which produce a result set, such as SELECT, SHOW, DESCRIBE or EXPLAIN, mysqli_stmt_get_result() will return a mysqli_result object. For other successful queries, mysqli_stmt_get_result() will return false. The mysqli_stmt_errno() function can be used to distinguish between the two reasons for false; due to a bug, prior to PHP 7.4.13, mysqli_errno() had to be used for this purpose.

Ausschließlich native MySQL-Treiber

Nur in mysqlnd verfügbar.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php

$mysqli = new mysqli("127.0.0.1", "user", "password", "world");

if($mysqli->connect_error)
{
    die("$mysqli->connect_errno: $mysqli->connect_error");
}

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = $mysqli->stmt_init();
if(!$stmt->prepare($query))
{
    print "Failed to prepare statement\n";
}
else
{
    $stmt->bind_param("s", $continent);

    $continent_array = array('Europe','Africa','Asia','North America');

    foreach($continent_array as $continent)
    {
        $stmt->execute();
        $result = $stmt->get_result();
        while ($row = $result->fetch_array(MYSQLI_NUM))
        {
            foreach ($row as $r)
            {
                print "$r ";
            }
            print "\n";
        }
    }
}

$stmt->close();
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php

$link = mysqli_connect("127.0.0.1", "user", "password", "world");

if (!$link)
{
    $error = mysqli_connect_error();
    $errno = mysqli_connect_errno();
    print "$errno: $error\n";
    exit();
}

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = mysqli_stmt_init($link);
if(!mysqli_stmt_prepare($stmt, $query))
{
    print "Failed to prepare statement\n";
}
else
{
    mysqli_stmt_bind_param($stmt, "s", $continent);

    $continent_array = array('Europe','Africa','Asia','North America');

    foreach($continent_array as $continent)
    {
        mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        while ($row = mysqli_fetch_array($result, MYSQLI_NUM))
        {
            foreach ($row as $r)
            {
                print "$r ";
            }
            print "\n";
        }
    }
}
mysqli_stmt_close($stmt);
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Albania 3401200 Europe
Algeria 31471000 Africa
Afghanistan 22720000 Asia
Anguilla 8000 North America

Siehe auch

  • mysqli_prepare() - Prepare an SQL statement for execution
  • mysqli_stmt_result_metadata() - Returns result set metadata from a prepared statement
  • mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • mysqli_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • mysqli_stmt_store_result() - Holt die Ergebnismenge einer vorbereiteten Anweisung (Prepared Statement)
  • mysqli_errno() - Returns the error code for the most recent function call


Get result of SHOW WARNINGS

  • « mysqli_stmt::get_result
  • mysqli_stmt::$insert_id »
  • PHP Manual
  • mysqli_stmt
  • Get result of SHOW WARNINGS

mysqli_stmt::get_warnings

mysqli_stmt_get_warnings

(PHP 5 >= 5.1.0, PHP 7)

mysqli_stmt::get_warnings -- mysqli_stmt_get_warnings — Get result of SHOW WARNINGS

Beschreibung

Objektorientierter Stil

public mysqli_stmt::get_warnings ( ) : object

Prozeduraler Stil

mysqli_stmt_get_warnings ( mysqli_stmt $stmt ) : object
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Get the ID generated from the previous INSERT operation

  • « mysqli_stmt::get_warnings
  • mysqli_stmt::more_results »
  • PHP Manual
  • mysqli_stmt
  • Get the ID generated from the previous INSERT operation

mysqli_stmt::$insert_id

mysqli_stmt_insert_id

(PHP 5, PHP 7)

mysqli_stmt::$insert_id -- mysqli_stmt_insert_id — Get the ID generated from the previous INSERT operation

Beschreibung

Objektorientierter Stil

int $mysqli_stmt->insert_id;

Prozeduraler Stil

mysqli_stmt_insert_id ( mysqli_stmt $stmt ) : mixed
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Prüft, ob es weitere Ergebnismengen bei einer Mehrfachabfrage gibt.

  • « mysqli_stmt::$insert_id
  • mysqli_stmt::next_result »
  • PHP Manual
  • mysqli_stmt
  • Prüft, ob es weitere Ergebnismengen bei einer Mehrfachabfrage gibt.

mysqli_stmt::more_results

mysqli_stmt_more_results

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::more_results -- mysqli_stmt_more_results — Prüft, ob es weitere Ergebnismengen bei einer Mehrfachabfrage gibt.

Beschreibung

Objektorientierter Stil

public mysqli_stmt::more_results ( ) : bool

Prozeduraler Stil:

mysqli_stmt_more_results ( mysql_stmt $stmt ) : bool

Prüft, ob es weitere Ergebnismengen bei einer Mehrfachabfrage gibt.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Gibt true zurück wenn es weitere Ergebnismengen gibt, andernfalls false.

Ausschließlich native MySQL-Treiber

Nur in mysqlnd verfügbar.

Siehe auch

  • mysqli_stmt::next_result() - Liest die nächste Ergebnismenge einer Mehrfachabfrage aus.
  • mysqli::multi_query() - Performs a query on the database


Liest die nächste Ergebnismenge einer Mehrfachabfrage aus.

  • « mysqli_stmt::more_results
  • mysqli_stmt::$num_rows »
  • PHP Manual
  • mysqli_stmt
  • Liest die nächste Ergebnismenge einer Mehrfachabfrage aus.

mysqli_stmt::next_result

mysqli_stmt_next_result

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::next_result -- mysqli_stmt_next_result — Liest die nächste Ergebnismenge einer Mehrfachabfrage aus.

Beschreibung

Objektorientierter Stil

public mysqli_stmt::next_result ( ) : bool

Prozeduraler Stil:

mysqli_stmt_next_result ( mysql_stmt $stmt ) : bool

Liest die nächste Ergebnismenge einer Mehrfachabfrage aus.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Gibt einen Fehler der Stufe E_STRICT aus, wenn es kein weiteres Ergebnis gibt und schlägt den Gebrauch von mysqli_stmt::more_results() in diesen Fällen vor, bevor mysqli_stmt::next_result() aufgerufen wird.

Ausschließlich native MySQL-Treiber

Nur in mysqlnd verfügbar.

Siehe auch

  • mysqli_stmt::more_results() - Prüft, ob es weitere Ergebnismengen bei einer Mehrfachabfrage gibt.
  • mysqli::multi_query() - Performs a query on the database


gibt die Anzahl der Zeilen einer Ergebnismenge zurück

  • « mysqli_stmt::next_result
  • mysqli_stmt::$param_count »
  • PHP Manual
  • mysqli_stmt
  • gibt die Anzahl der Zeilen einer Ergebnismenge zurück

mysqli_stmt::$num_rows

mysqli_stmt::num_rows

mysqli_stmt_num_rows

(PHP 5, PHP 7)

mysqli_stmt::$num_rows -- mysqli_stmt::num_rows -- mysqli_stmt_num_rows — gibt die Anzahl der Zeilen einer Ergebnismenge zurück

Beschreibung

Objektorientierter Stil

int $mysqli_stmt->num_rows;
public mysqli_stmt::num_rows ( ) : int

Prozeduraler Stil

mysqli_stmt_num_rows ( mysqli_stmt $stmt ) : int

Gibt die Anzahl der Zeilen einer Ergebnismenge zurück. Die Verwendung von mysqli_stmt_num_rows() hängt davon ab, ob mysqli_stmt_store_result() verwendet wird oder nicht, um die gesamte Ergebnismenge einer Abfrage zwischenzuspeichern.

Wenn mysqli_stmt_store_result() verwendet wird, dann kann mysqli_stmt_num_rows() sofort danach aufgerufen werden.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Ein Integer-Wert, der die Anzahl der Zeilen in der Ergebnismenge angibt.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
/* Datenbankverbindung öffnen */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Datenbankverbindung prüfen */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* Abfrage ausführen */
    $stmt->execute();

    /* Ergebnis holen */
    $stmt->store_result();

    printf("Number of rows: %d.\n", $stmt->num_rows);

    /* Abfrage-Objekt schließen */
    $stmt->close();
}

/* Verbindung schließen */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
/* Datenbankverbindung öffnen */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Datenbankverbindung prüfen */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Abfrage ausführen */
    mysqli_stmt_execute($stmt);

    /* Ergebnis holen */
    mysqli_stmt_store_result($stmt);

    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

    /* Abfrage-Objekt schließen */
    mysqli_stmt_close($stmt);
}

/* Verbindung schließen */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Number of rows: 20.

Siehe auch

  • mysqli_stmt_affected_rows() - gibt die gesamte Anzahl der Zeilen zurück, die bei der letzten ausgeführten Anweisung geändert, gelöscht oder eingefügt worden sind
  • mysqli_prepare() - Prepare an SQL statement for execution
  • mysqli_stmt_store_result() - Holt die Ergebnismenge einer vorbereiteten Anweisung (Prepared Statement)


Liefert die Anzahl der Parameter einer Anweisung

  • « mysqli_stmt::$num_rows
  • mysqli_stmt::prepare »
  • PHP Manual
  • mysqli_stmt
  • Liefert die Anzahl der Parameter einer Anweisung

mysqli_stmt::$param_count

mysqli_stmt_param_count

(PHP 5, PHP 7)

mysqli_stmt::$param_count -- mysqli_stmt_param_count — Liefert die Anzahl der Parameter einer Anweisung

Beschreibung

Objektorientierter Stil

int $mysqli_stmt->param_count;

Prozeduraler Stil

mysqli_stmt_param_count ( mysqli_stmt $stmt ) : int

Gibt die Anzahl der Parameter-Platzhalter zurück, die in der vorbereiteten Anweisung (Prepared Statement) vorhanden sind.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Gibt einen Integer-Wert zurück, der die Anzahl der Parameter angibt.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Datenbankverbindung prüfen */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = $stmt->param_count;
    printf("Statement has %d markers.\n", $marker);

    /* Abfrage-Objekt schließen */
    $stmt->close();
}

/* Verbindung schließen */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Datenbankverbindung prüfen */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = mysqli_prepare($link, "SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = mysqli_stmt_param_count($stmt);
    printf("Statement has %d markers.\n", $marker);

    /* Abfrage-Objekt schließen */
    mysqli_stmt_close($stmt);
}

/* Verbindung schließen */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Statement has 2 markers.

Siehe auch

  • mysqli_prepare() - Prepare an SQL statement for execution


Prepare an SQL statement for execution

  • « mysqli_stmt::$param_count
  • mysqli_stmt::reset »
  • PHP Manual
  • mysqli_stmt
  • Prepare an SQL statement for execution

mysqli_stmt::prepare

mysqli_stmt_prepare

(PHP 5, PHP 7)

mysqli_stmt::prepare -- mysqli_stmt_prepare — Prepare an SQL statement for execution

Beschreibung

Objektorientierter Stil

public mysqli_stmt::prepare ( string $query ) : mixed

Prozeduraler Stil

mysqli_stmt_prepare ( mysqli_stmt $stmt , string $query ) : bool

Prepares the SQL query pointed to by the null-terminated string query.

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

Hinweis:

In the case where you pass a statement to mysqli_stmt_prepare() that is longer than max_allowed_packet of the server, the returned error codes are different depending on whether you are using MySQL Native Driver (mysqlnd) or MySQL Client Library (libmysqlclient). The behavior is as follows:

  • mysqlnd on Linux returns an error code of 1153. The error message means got a packet bigger than max_allowed_packet bytes.

  • mysqlnd on Windows returns an error code 2006. This error message means server has gone away.

  • libmysqlclient on all platforms returns an error code 2006. This error message means server has gone away.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

query

The query, as a string. It must consist of a single SQL statement.

You can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Hinweis:

You should not add a terminating semicolon or \g to the statement.

Hinweis:

The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Language (DML) statements, and not in Data Definition Language (DDL) statements.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
$stmt =  $mysqli->stmt_init();
if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
$stmt = mysqli_stmt_init($link);
if (mysqli_stmt_prepare($stmt, 'SELECT District FROM City WHERE Name=?')) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Amersfoort is in district Utrecht

Siehe auch

  • mysqli_stmt_init() - Initializes a statement and returns an object for use with mysqli_stmt_prepare
  • mysqli_stmt_execute() - Executes a prepared Query
  • mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • mysqli_stmt_bind_param() - Bindet Variablen als Parameter an eine vorbereitete Anweisung (prepared statement)
  • mysqli_stmt_bind_result() - Bindet Variablen an eine vorbereitete Anweisung (prepared statement), um das Ergebnis einer Abfrage abzulegen
  • mysqli_stmt_get_result() - Gets a result set from a prepared statement
  • mysqli_stmt_close() - Schließt eine vorbereitete Anweisung (prepared statement)


Resets a prepared statement

  • « mysqli_stmt::prepare
  • mysqli_stmt::result_metadata »
  • PHP Manual
  • mysqli_stmt
  • Resets a prepared statement

mysqli_stmt::reset

mysqli_stmt_reset

(PHP 5, PHP 7)

mysqli_stmt::reset -- mysqli_stmt_reset — Resets a prepared statement

Beschreibung

Objektorientierter Stil

public mysqli_stmt::reset ( ) : bool

Prozeduraler Stil

mysqli_stmt_reset ( mysqli_stmt $stmt ) : bool

Resets a prepared statement on client and server to state after prepare.

It resets the statement on the server, data sent using mysqli_stmt_send_long_data(), unbuffered result sets and current errors. It does not clear bindings or stored result sets. Stored result sets will be cleared when executing the prepared statement (or closing it).

To prepare a statement with another query use function mysqli_stmt_prepare().

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • mysqli_prepare() - Prepare an SQL statement for execution


Returns result set metadata from a prepared statement

  • « mysqli_stmt::reset
  • mysqli_stmt::send_long_data »
  • PHP Manual
  • mysqli_stmt
  • Returns result set metadata from a prepared statement

mysqli_stmt::result_metadata

mysqli_stmt_result_metadata

(PHP 5, PHP 7)

mysqli_stmt::result_metadata -- mysqli_stmt_result_metadata — Returns result set metadata from a prepared statement

Beschreibung

Objektorientierter Stil

public mysqli_stmt::result_metadata ( ) : mysqli_result

Prozeduraler Stil

mysqli_stmt_result_metadata ( mysqli_stmt $stmt ) : mysqli_result

If a statement passed to mysqli_prepare() is one that produces a result set, mysqli_stmt_result_metadata() returns the result object that can be used to process the meta information such as total number of fields and individual field information.

Hinweis:

This result set pointer can be passed as an argument to any of the field-based functions that process result set metadata, such as:

  • mysqli_num_fields()

  • mysqli_fetch_field()

  • mysqli_fetch_field_direct()

  • mysqli_fetch_fields()

  • mysqli_field_count()

  • mysqli_field_seek()

  • mysqli_field_tell()

  • mysqli_free_result()

The result set structure should be freed when you are done with it, which you can do by passing it to mysqli_free_result()

Hinweis:

The result set returned by mysqli_stmt_result_metadata() contains only metadata. It does not contain any row results. The rows are obtained by using the statement handle with mysqli_stmt_fetch().

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Returns a result object or false if an error occurred.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query("DROP TABLE IF EXISTS friends");
$mysqli->query("CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = $mysqli->prepare("SELECT id, name FROM friends");
$stmt->execute();

/* get resultset for metadata */
$result = $stmt->result_metadata();

/* retrieve field information from metadata result set */
$field = $result->fetch_field();

printf("Fieldname: %s\n", $field->name);

/* close resultset */
$result->close();

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = mysqli_prepare($link, "SELECT id, name FROM friends");
mysqli_stmt_execute($stmt);

/* get resultset for metadata */
$result = mysqli_stmt_result_metadata($stmt);

/* retrieve field information from metadata result set */
$field = mysqli_fetch_field($result);

printf("Fieldname: %s\n", $field->name);

/* close resultset */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);
?>

Siehe auch

  • mysqli_prepare() - Prepare an SQL statement for execution
  • mysqli_free_result() - Frees the memory associated with a result


Sendet Daten blockweise

  • « mysqli_stmt::result_metadata
  • mysqli_stmt::$sqlstate »
  • PHP Manual
  • mysqli_stmt
  • Sendet Daten blockweise

mysqli_stmt::send_long_data

mysqli_stmt_send_long_data

(PHP 5, PHP 7)

mysqli_stmt::send_long_data -- mysqli_stmt_send_long_data — Sendet Daten blockweise

Beschreibung

Objektorientierter Stil

public mysqli_stmt::send_long_data ( int $param_nr , string $data ) : bool

Prozeduraler Stil

mysqli_stmt_send_long_data ( mysqli_stmt $stmt , int $param_nr , string $data ) : bool

Damit werden Parameter blockweise zum Datenbank-Server geschickt, z. B. wenn die Größe eines BLOBs die Größe max_allowed_packet überschreitet. Die Funktion kann mehrmals aufgerufen werden, um Teile von Textdaten oder Binärdaten für eine Tabellenspalte zu verschicken. Die Tabellenspalte muss dabei den Typ TEXT oder BLOB haben.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

param_nr

Zeigt an, für welchen Parameter Daten geschickt werden. Die Parameter sind von null an durchnummeriert.

data

Eine Zeichenkette, die die Daten enthält, die gesendet werden sollen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$stmt = $mysqli->prepare("INSERT INTO messages (message) VALUES (?)");
$null = NULL;
$stmt->bind_param("b", $null);
$fp = fopen("messages.txt", "r");
while (!feof($fp)) {
    $stmt->send_long_data(0, fread($fp, 8192));
}
fclose($fp);
$stmt->execute();
?>

Siehe auch

  • mysqli_prepare() - Prepare an SQL statement for execution
  • mysqli_stmt_bind_param() - Bindet Variablen als Parameter an eine vorbereitete Anweisung (prepared statement)


Gibt den SQL-Status von der vorangegangenen Ausführung der Anweisung zurück

  • « mysqli_stmt::send_long_data
  • mysqli_stmt::store_result »
  • PHP Manual
  • mysqli_stmt
  • Gibt den SQL-Status von der vorangegangenen Ausführung der Anweisung zurück

mysqli_stmt::$sqlstate

mysqli_stmt_sqlstate

(PHP 5, PHP 7)

mysqli_stmt::$sqlstate -- mysqli_stmt_sqlstate — Gibt den SQL-Status von der vorangegangenen Ausführung der Anweisung zurück

Beschreibung

Objektorientierter Stil

string $mysqli_stmt->sqlstate;

Prozeduraler Stil

mysqli_stmt_sqlstate ( mysqli_stmt $stmt ) : string

Gibt einen String mit dem SQL-Status-Fehlercode zurück der zuletzt aufgerufenen Funktion (des Prepared Statements), die entweder erfolgreich oder fehlerhaft beendet werden konnte. Der Fehlercode besteht aus fünf Zeichen. '00000' bedeutet keinen Fehler. Die möglichen Werte sind durch ANSI SQL oder ODBC spezifiziert. Für eine Liste möglicher Werte siehe » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Gibt einen String mit dem SQL-Status-Fehlercode des letzten Fehlers zurück. Der Fehlercode besteht aus fünf Zeichen. '00000' bedeutet keinen Fehler.

Anmerkungen

Hinweis:

Anchtung! Nicht alle MySQL-Fehler können auf SQL-Status-Codes abgebildet werden. Der Wert HY000 (Allgemeiner Fehler) wird für nicht abgebildete MySQL-Fehler verwendet.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
/* Datenbankverbindung öffnen */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Datenbankverbindung prüfen */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* Tabelle löschen */
    $mysqli->query("DROP TABLE myCountry");

    /* Abfrage ausführen */
    $stmt->execute();

    printf("Error: %s.\n", $stmt->sqlstate);

    /* Abfrage-Objekt schließen */
    $stmt->close();
}

/* Verbindung schließen */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
/* Datenbankverbindung öffnen */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Datenbankverbindung prüfen */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Tabelle löschen */
    mysqli_query($link, "DROP TABLE myCountry");

    /* Abfrage ausführen */
    mysqli_stmt_execute($stmt);

    printf("Error: %s.\n", mysqli_stmt_sqlstate($stmt));

    /* Abfrage-Objekt schließen */
    mysqli_stmt_close($stmt);
}

/* Verbindung schließen */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Error: 42S02.

Siehe auch

  • mysqli_stmt_errno() - Returns the error code for the most recent statement call
  • mysqli_stmt_error() - Returns a string description for last statement error


Holt die Ergebnismenge einer vorbereiteten Anweisung (Prepared Statement)

  • « mysqli_stmt::$sqlstate
  • mysqli_result »
  • PHP Manual
  • mysqli_stmt
  • Holt die Ergebnismenge einer vorbereiteten Anweisung (Prepared Statement)

mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5, PHP 7)

mysqli_stmt::store_result -- mysqli_stmt_store_result — Holt die Ergebnismenge einer vorbereiteten Anweisung (Prepared Statement)

Beschreibung

Objektorientierter Stil

public mysqli_stmt::store_result ( ) : bool

Prozeduraler Stil

mysqli_stmt_store_result ( mysqli_stmt $stmt ) : bool

Für jede Abfrage, die eine Ergebnismenge zurück gibt (SELECT, SHOW, DESCRIBE, EXPLAIN), muss mysqli_stmt_store_result() aufgerufen werden, wenn die komplette Ergebnismenge im Client zwischengespeichert werden soll. Damit liefern nachfolgende Aufrufe von mysqli_stmt_fetch() die zwischengespeicherten Daten.

Hinweis:

Es ist unnötig, mysqli_stmt_store_result() für andere Abfragen aufzurufen. Aber in keinem Fall schadet es oder benötigt merkliche Laufzeit. Ob eine Abfrage eine Ergebnismenge zurück gibt, kann festgestellt werden, indem das Ergebnis von mysqli_stmt_result_metadata() auf false geprüft wird.

Parameter-Liste

stmt

Nur bei prozeduralem Aufruf: ein von mysqli_stmt_init() zurückgegebenes Statementobjekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
/* Datenbankverbindung öffnen */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Datenbankverbindung prüfen */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* Abfrage ausführen */
    $stmt->execute();

    /* Ergebnis holen */
    $stmt->store_result();

    printf("Number of rows: %d.\n", $stmt->num_rows);

    /* Ergebnis verwerfen */
    $stmt->free_result();

    /* Abfrage-Objekt schließen */
    $stmt->close();
}

/* Verbindung schließen */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
/* Datenbankverbindung öffnen */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Datenbankverbindung prüfen */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Abfrage ausführen */
    mysqli_stmt_execute($stmt);

    /* Ergebnis holen */
    mysqli_stmt_store_result($stmt);

    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

    /* Ergebnis verwerfen */
    mysqli_stmt_free_result($stmt);

    /* Abfrage-Objekt schließen */
    mysqli_stmt_close($stmt);
}

/* Verbindung schließen */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Number of rows: 20.

Siehe auch

  • mysqli_prepare() - Prepare an SQL statement for execution
  • mysqli_stmt_result_metadata() - Returns result set metadata from a prepared statement
  • mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables


Die MySQLi-Ergebnisklasse

(PHP 5, PHP 7)

Einführung

Stellt das Ergebnis einer Datenbankabfrage dar.

Klassenbeschreibung

mysqli_result implements Traversable {
/* Eigenschaften */
int $current_field ;
int $field_count;
array $lengths;
int $num_rows;
/* Methoden */
public data_seek ( int $offset ) : bool
public fetch_all ( int $resulttype = MYSQLI_NUM ) : mixed
public fetch_array ( int $resulttype = MYSQLI_BOTH ) : mixed
public fetch_assoc ( ) : array
public fetch_field_direct ( int $fieldnr ) : object
public fetch_field ( ) : object
public fetch_fields ( ) : array
public fetch_object ( string $class_name = "stdClass" , array $params = ? ) : object
public fetch_row ( ) : mixed
public field_seek ( int $fieldnr ) : bool
public free ( ) : void
public close ( ) : void
public free_result ( ) : void
}

Inhaltsverzeichnis

  • mysqli_result::$current_field — Get current field offset of a result pointer
  • mysqli_result::data_seek — Adjusts the result pointer to an arbitrary row in the result
  • mysqli_result::fetch_all — Fetches all result rows as an associative array, a numeric array, or both
  • mysqli_result::fetch_array — Fetch a result row as an associative, a numeric array, or both
  • mysqli_result::fetch_assoc — Fetch a result row as an associative array
  • mysqli_result::fetch_field_direct — Fetch meta-data for a single field
  • mysqli_result::fetch_field — Returns the next field in the result set
  • mysqli_result::fetch_fields — Returns an array of objects representing the fields in a result set
  • mysqli_result::fetch_object — Returns the current row of a result set as an object
  • mysqli_result::fetch_row — Get a result row as an enumerated array
  • mysqli_result::$field_count — Get the number of fields in a result
  • mysqli_result::field_seek — Set result pointer to a specified field offset
  • mysqli_result::free — Frees the memory associated with a result
  • mysqli_result::$lengths — Returns the lengths of the columns of the current row in the result set
  • mysqli_result::$num_rows — Gets the number of rows in a result


Get current field offset of a result pointer

  • « mysqli_result
  • mysqli_result::data_seek »
  • PHP Manual
  • mysqli_result
  • Get current field offset of a result pointer

mysqli_result::$current_field

mysqli_field_tell

(PHP 5, PHP 7)

mysqli_result::$current_field -- mysqli_field_tell — Get current field offset of a result pointer

Beschreibung

Objektorientierter Stil

int $mysqli_result->current_field ;

Prozeduraler Stil

mysqli_field_tell ( mysqli_result $result ) : int

Returns the position of the field cursor used for the last mysqli_fetch_field() call. This value can be used as an argument to mysqli_field_seek().

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

Rückgabewerte

Returns current offset of field cursor.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    while ($finfo = $result->fetch_field()) {

        /* get fieldpointer offset */
        $currentfield = $result->current_field;

        printf("Column %d:\n", $currentfield);
        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all fields */
    while ($finfo = mysqli_fetch_field($result)) {

        /* get fieldpointer offset */
        $currentfield = mysqli_field_tell($result);

        printf("Column %d:\n", $currentfield);
        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Column 1:
Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Column 2:
Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Siehe auch

  • mysqli_fetch_field() - Returns the next field in the result set
  • mysqli_field_seek() - Set result pointer to a specified field offset


Adjusts the result pointer to an arbitrary row in the result

  • « mysqli_result::$current_field
  • mysqli_result::fetch_all »
  • PHP Manual
  • mysqli_result
  • Adjusts the result pointer to an arbitrary row in the result

mysqli_result::data_seek

mysqli_data_seek

(PHP 5, PHP 7)

mysqli_result::data_seek -- mysqli_data_seek — Adjusts the result pointer to an arbitrary row in the result

Beschreibung

Objektorientierter Stil

public mysqli_result::data_seek ( int $offset ) : bool

Prozeduraler Stil

mysqli_data_seek ( mysqli_result $result , int $offset ) : bool

The mysqli_data_seek() function seeks to an arbitrary result pointer specified by the offset in the result set.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

offset

The field offset. Must be between zero and the total number of rows minus one (0..mysqli_num_rows() - 1).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

This function can only be used with buffered results attained from the use of the mysqli_store_result() or mysqli_query() functions.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($result = $mysqli->query($query)) {

    /* seek to row no. 400 */
    $result->data_seek(399);

    /* fetch row */
    $row = $result->fetch_row();

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

if ($result = mysqli_query($link, $query)) {

    /* seek to row no. 400 */
    mysqli_data_seek($result, 399);

    /* fetch row */
    $row = mysqli_fetch_row($result);

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

City: Benin City  Countrycode: NGA

Siehe auch

  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_fetch_row() - Get a result row as an enumerated array
  • mysqli_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • mysqli_fetch_assoc() - Fetch a result row as an associative array
  • mysqli_fetch_object() - Returns the current row of a result set as an object
  • mysqli_query() - Performs a query on the database
  • mysqli_num_rows() - Gets the number of rows in a result


Fetches all result rows as an associative array, a numeric array, or both

  • « mysqli_result::data_seek
  • mysqli_result::fetch_array »
  • PHP Manual
  • mysqli_result
  • Fetches all result rows as an associative array, a numeric array, or both

mysqli_result::fetch_all

mysqli_fetch_all

(PHP 5 >= 5.3.0, PHP 7)

mysqli_result::fetch_all -- mysqli_fetch_all — Fetches all result rows as an associative array, a numeric array, or both

Beschreibung

Objektorientierter Stil

public mysqli_result::fetch_all ( int $resulttype = MYSQLI_NUM ) : mixed

Prozeduraler Stil

mysqli_fetch_all ( mysqli_result $result , int $resulttype = MYSQLI_NUM ) : mixed

mysqli_fetch_all() fetches all result rows and returns the result set as an associative array, a numeric array, or both.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

resulttype

This optional parameter is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH.

Rückgabewerte

Returns an array of associative or numeric arrays holding result rows.

Ausschließlich native MySQL-Treiber

Nur in mysqlnd verfügbar.

As mysqli_fetch_all() returns all the rows as an array in a single step, it may consume more memory than some similar functions such as mysqli_fetch_array(), which only returns one row at a time from the result set. Further, if you need to iterate over the result set, you will need a looping construct that will further impact performance. For these reasons mysqli_fetch_all() should only be used in those situations where the fetched result set will be sent to another layer for processing.

Siehe auch

  • mysqli_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • mysqli_query() - Performs a query on the database


Fetch a result row as an associative, a numeric array, or both

  • « mysqli_result::fetch_all
  • mysqli_result::fetch_assoc »
  • PHP Manual
  • mysqli_result
  • Fetch a result row as an associative, a numeric array, or both

mysqli_result::fetch_array

mysqli_fetch_array

(PHP 5, PHP 7)

mysqli_result::fetch_array -- mysqli_fetch_array — Fetch a result row as an associative, a numeric array, or both

Beschreibung

Objektorientierter Stil

public mysqli_result::fetch_array ( int $resulttype = MYSQLI_BOTH ) : mixed

Prozeduraler Stil

mysqli_fetch_array ( mysqli_result $result , int $resulttype = MYSQLI_BOTH ) : mixed

Returns an array that corresponds to the fetched row or null if there are no more rows for the result set.

In addition to storing the data in the numeric indices of the result array, this function can also store the data in associative indices by using the field names of the result set as keys.

Hinweis: Feldnamen, die von dieser Funktion zurückgegeben werden, unterscheiden sich in der Groß-/Kleinschreibung.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

If two or more columns of the result have the same field names, the last column will take precedence and overwrite the earlier data. In order to access multiple columns with the same name, the numerically indexed version of the row must be used.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

resulttype

This optional parameter is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH.

By using the MYSQLI_ASSOC constant this function will behave identically to the mysqli_fetch_assoc(), while MYSQLI_NUM will behave identically to the mysqli_fetch_row() function. The final option MYSQLI_BOTH will create a single array with the attributes of both.

Rückgabewerte

Returns an array of values that corresponds to the fetched row or null if there are no more rows in result set.

Beispiele

Beispiel #1 mysqli_result::fetch_array() example

Objektorientierter Stil

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3";
$result = $mysqli->query($query);

/* numeric array */
$row = $result->fetch_array(MYSQLI_NUM);
printf("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = $result->fetch_array(MYSQLI_BOTH);
printf("%s (%s)\n", $row[0], $row["CountryCode"]);

Prozeduraler Stil

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($mysqli, $query);

/* numeric array */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf("%s (%s)\n", $row[0], $row["CountryCode"]);

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Siehe auch

  • mysqli_fetch_assoc() - Fetch a result row as an associative array
  • mysqli_fetch_row() - Get a result row as an enumerated array
  • mysqli_fetch_object() - Returns the current row of a result set as an object
  • mysqli_query() - Performs a query on the database
  • mysqli_data_seek() - Adjusts the result pointer to an arbitrary row in the result


Fetch a result row as an associative array

  • « mysqli_result::fetch_array
  • mysqli_result::fetch_field_direct »
  • PHP Manual
  • mysqli_result
  • Fetch a result row as an associative array

mysqli_result::fetch_assoc

mysqli_fetch_assoc

(PHP 5, PHP 7)

mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Fetch a result row as an associative array

Beschreibung

Objektorientierter Stil

public mysqli_result::fetch_assoc ( ) : array

Prozeduraler Stil

mysqli_fetch_assoc ( mysqli_result $result ) : array

Returns an associative array that corresponds to the fetched row or null if there are no more rows.

Hinweis: Feldnamen, die von dieser Funktion zurückgegeben werden, unterscheiden sich in der Groß-/Kleinschreibung.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

Rückgabewerte

Returns an associative array of values representing the fetched row in the result set, where each key in the array represents the name of one of the result set's columns or null if there are no more rows in result set.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using mysqli_fetch_row() or add alias names.

Beispiele

Beispiel #1 mysqli_result::fetch_assoc() example

Objektorientierter Stil

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

/* fetch associative array */
while ($row = $result->fetch_assoc()) {
    printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Prozeduraler Stil

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($mysqli, $query);

/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
    printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Beispiel #2 Comparison of mysqli_result iterator and mysqli_result::fetch_assoc() usage

mysqli_result can be iterated using foreach. The result set will always be iterated from the first row, regardless of the current position.

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = 'SELECT Name, CountryCode FROM City ORDER BY ID DESC';

// Using iterators
$result = $mysqli->query($query);
foreach ($result as $row) {
    printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

echo "\n==================\n";

// Not using iterators
$result = $mysqli->query($query);
while ($row = $result->fetch_assoc()) {
    printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

==================
Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Siehe auch

  • mysqli_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • mysqli_fetch_row() - Get a result row as an enumerated array
  • mysqli_fetch_object() - Returns the current row of a result set as an object
  • mysqli_query() - Performs a query on the database
  • mysqli_data_seek() - Adjusts the result pointer to an arbitrary row in the result


Fetch meta-data for a single field

  • « mysqli_result::fetch_assoc
  • mysqli_result::fetch_field »
  • PHP Manual
  • mysqli_result
  • Fetch meta-data for a single field

mysqli_result::fetch_field_direct

mysqli_fetch_field_direct

(PHP 5, PHP 7)

mysqli_result::fetch_field_direct -- mysqli_fetch_field_direct — Fetch meta-data for a single field

Beschreibung

Objektorientierter Stil

public mysqli_result::fetch_field_direct ( int $fieldnr ) : object

Prozeduraler Stil

mysqli_fetch_field_direct ( mysqli_result $result , int $fieldnr ) : object

Returns an object which contains field definition information from the specified result set.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

fieldnr

The field number. This value must be in the range from 0 to number of fields - 1.

Rückgabewerte

Returns an object which contains field definition information or false if no field information for specified fieldnr is available.

Object attributes
Attribute | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
length | The width of the field, as specified in the table definition.
charsetnr | The character set number for the field.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for numeric fields)

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for column 'SurfaceArea' */
    $finfo = $result->fetch_field_direct(1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for column 'SurfaceArea' */
    $finfo = mysqli_fetch_field_direct($result, 1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Siehe auch

  • mysqli_num_fields() - Get the number of fields in a result
  • mysqli_fetch_field() - Returns the next field in the result set
  • mysqli_fetch_fields() - Returns an array of objects representing the fields in a result set


Returns the next field in the result set

  • « mysqli_result::fetch_field_direct
  • mysqli_result::fetch_fields »
  • PHP Manual
  • mysqli_result
  • Returns the next field in the result set

mysqli_result::fetch_field

mysqli_fetch_field

(PHP 5, PHP 7)

mysqli_result::fetch_field -- mysqli_fetch_field — Returns the next field in the result set

Beschreibung

Objektorientierter Stil

public mysqli_result::fetch_field ( ) : object

Prozeduraler Stil

mysqli_fetch_field ( mysqli_result $result ) : object

Returns the definition of one column of a result set as an object. Call this function repeatedly to retrieve information about all columns in the result set.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

Rückgabewerte

Returns an object which contains field definition information or false if no field information is available.

Object properties
Property | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | Reserved for default value, currently always ""
db | The name of the database
catalog | The catalog name, always "def"
max_length | The maximum width of the field for the result set.
length | The width of the field, as specified in the table definition.
charsetnr | The character set number for the field.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    while ($finfo = $result->fetch_field()) {

        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all fields */
    while ($finfo = mysqli_fetch_field($result)) {

        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Siehe auch

  • mysqli_num_fields() - Get the number of fields in a result
  • mysqli_fetch_field_direct() - Fetch meta-data for a single field
  • mysqli_fetch_fields() - Returns an array of objects representing the fields in a result set
  • mysqli_field_seek() - Set result pointer to a specified field offset


Returns an array of objects representing the fields in a result set

  • « mysqli_result::fetch_field
  • mysqli_result::fetch_object »
  • PHP Manual
  • mysqli_result
  • Returns an array of objects representing the fields in a result set

mysqli_result::fetch_fields

mysqli_fetch_fields

(PHP 5, PHP 7)

mysqli_result::fetch_fields -- mysqli_fetch_fields — Returns an array of objects representing the fields in a result set

Beschreibung

Objektorientierter Stil

public mysqli_result::fetch_fields ( ) : array

Prozeduraler Stil

mysqli_fetch_fields ( mysqli_result $result ) : array

This function serves an identical purpose to the mysqli_fetch_field() function with the single difference that, instead of returning one object at a time for each field, the columns are returned as an array of objects.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

Rückgabewerte

Returns an array of objects which contains field definition information or false if no field information is available.

Object properties
Property | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
max_length | The maximum width of the field for the result set.
length | The width of the field, in bytes, as specified in the table definition. Note that this number (bytes) might differ from your table definition value (characters), depending on the character set you use. For example, the character set utf8 has 3 bytes per character, so varchar(10) will return a length of 30 for utf8 (10*3), but return 10 for latin1 (10*1).
charsetnr | The character set number (id) for the field.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("127.0.0.1", "root", "foofoo", "sakila");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

foreach (array('latin1', 'utf8') as $charset) {

    // Set character set, to show its impact on some values (e.g., length in bytes)
    $mysqli->set_charset($charset);

    $query = "SELECT actor_id, last_name from actor ORDER BY actor_id";

    echo "======================\n";
    echo "Character Set: $charset\n";
    echo "======================\n";

    if ($result = $mysqli->query($query)) {

        /* Get field information for all columns */
        $finfo = $result->fetch_fields();

        foreach ($finfo as $val) {
            printf("Name:      %s\n",   $val->name);
            printf("Table:     %s\n",   $val->table);
            printf("Max. Len:  %d\n",   $val->max_length);
            printf("Length:    %d\n",   $val->length);
            printf("charsetnr: %d\n",   $val->charsetnr);
            printf("Flags:     %d\n",   $val->flags);
            printf("Type:      %d\n\n", $val->type);
        }
        $result->free();
    }
}
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

foreach (array('latin1', 'utf8') as $charset) {

    // Set character set, to show its impact on some values (e.g., length in bytes)
    mysqli_set_charset($link, $charset);

    $query = "SELECT actor_id, last_name from actor ORDER BY actor_id";

    echo "======================\n";
    echo "Character Set: $charset\n";
    echo "======================\n";

    if ($result = mysqli_query($link, $query)) {

        /* Get field information for all columns */
        $finfo = mysqli_fetch_fields($result);

        foreach ($finfo as $val) {
            printf("Name:      %s\n",   $val->name);
            printf("Table:     %s\n",   $val->table);
            printf("Max. Len:  %d\n",   $val->max_length);
            printf("Length:    %d\n",   $val->length);
            printf("charsetnr: %d\n",   $val->charsetnr);
            printf("Flags:     %d\n",   $val->flags);
            printf("Type:      %d\n\n", $val->type);
        }
        mysqli_free_result($result);
    }
}

mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

======================
Character Set: latin1
======================
Name:      actor_id
Table:     actor
Max. Len:  3
Length:    5
charsetnr: 63
Flags:     49699
Type:      2

Name:      last_name
Table:     actor
Max. Len:  12
Length:    45
charsetnr: 8
Flags:     20489
Type:      253

======================
Character Set: utf8
======================
Name:      actor_id
Table:     actor
Max. Len:  3
Length:    5
charsetnr: 63
Flags:     49699
Type:      2

Name:      last_name
Table:     actor
Max. Len:  12
Length:    135
charsetnr: 33
Flags:     20489

Siehe auch

  • mysqli_num_fields() - Get the number of fields in a result
  • mysqli_fetch_field_direct() - Fetch meta-data for a single field
  • mysqli_fetch_field() - Returns the next field in the result set


Returns the current row of a result set as an object

  • « mysqli_result::fetch_fields
  • mysqli_result::fetch_row »
  • PHP Manual
  • mysqli_result
  • Returns the current row of a result set as an object

mysqli_result::fetch_object

mysqli_fetch_object

(PHP 5, PHP 7)

mysqli_result::fetch_object -- mysqli_fetch_object — Returns the current row of a result set as an object

Beschreibung

Objektorientierter Stil

public mysqli_result::fetch_object ( string $class_name = "stdClass" , array $params = ? ) : object

Prozeduraler Stil

mysqli_fetch_object ( mysqli_result $result , string $class_name = "stdClass" , array $params = ? ) : object

Returns the current row result set as an object where the attributes of the object represent the names of the fields found within the result set.

Hinweis: This function sets the properties of the object before calling the object constructor.

Hinweis: Feldnamen, die von dieser Funktion zurückgegeben werden, unterscheiden sich in der Groß-/Kleinschreibung.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

class_name

The name of the class to instantiate, set the properties of and return. If not specified, a stdClass object is returned.

params

An optional array of parameters to pass to the constructor for class_name objects.

Rückgabewerte

Returns an object that corresponds to the fetched row or null if there are no more rows in result set.

Beispiele

Beispiel #1 mysqli_result::fetch_object() example

Objektorientierter Stil

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

/* fetch object array */
while ($obj = $result->fetch_object()) {
    printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
}

Prozeduraler Stil

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($link, $query);

/* fetch associative array */
while ($obj = mysqli_fetch_object($result)) {
    printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
}

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Siehe auch

  • mysqli_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • mysqli_fetch_assoc() - Fetch a result row as an associative array
  • mysqli_fetch_row() - Get a result row as an enumerated array
  • mysqli_query() - Performs a query on the database
  • mysqli_data_seek() - Adjusts the result pointer to an arbitrary row in the result


Get a result row as an enumerated array

  • « mysqli_result::fetch_object
  • mysqli_result::$field_count »
  • PHP Manual
  • mysqli_result
  • Get a result row as an enumerated array

mysqli_result::fetch_row

mysqli_fetch_row

(PHP 5, PHP 7)

mysqli_result::fetch_row -- mysqli_fetch_row — Get a result row as an enumerated array

Beschreibung

Objektorientierter Stil

public mysqli_result::fetch_row ( ) : mixed

Prozeduraler Stil

mysqli_fetch_row ( mysqli_result $result ) : mixed

Fetches one row of data from the result set and returns it as an enumerated array, where each column is stored in an array offset starting from 0 (zero). Each subsequent call to this function will return the next row within the result set, or null if there are no more rows.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

Rückgabewerte

mysqli_fetch_row() returns an array of values that corresponds to the fetched row or null if there are no more rows in result set.

Beispiele

Beispiel #1 mysqli_result::fetch_row() example

Objektorientierter Stil

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

/* fetch object array */
while ($row = $result->fetch_row()) {
    printf("%s (%s)\n", $row[0], $row[1]);
}

Prozeduraler Stil

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($mysqli, $query);

/* fetch associative array */
while ($row = mysqli_fetch_row($result)) {
    printf("%s (%s)\n", $row[0], $row[1]);
}

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Siehe auch

  • mysqli_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • mysqli_fetch_assoc() - Fetch a result row as an associative array
  • mysqli_fetch_object() - Returns the current row of a result set as an object
  • mysqli_query() - Performs a query on the database
  • mysqli_data_seek() - Adjusts the result pointer to an arbitrary row in the result


Get the number of fields in a result

  • « mysqli_result::fetch_row
  • mysqli_result::field_seek »
  • PHP Manual
  • mysqli_result
  • Get the number of fields in a result

mysqli_result::$field_count

mysqli_num_fields

(PHP 5, PHP 7)

mysqli_result::$field_count -- mysqli_num_fields — Get the number of fields in a result

Beschreibung

Objektorientierter Stil

int $mysqli_result->field_count;

Prozeduraler Stil

mysqli_num_fields ( mysqli_result $result ) : int

Returns the number of fields from specified result set.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

Rückgabewerte

The number of fields from a result set.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* determine number of fields in result set */
    $field_cnt = $result->field_count;

    printf("Result set has %d fields.\n", $field_cnt);

    /* close result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* determine number of fields in result set */
    $field_cnt = mysqli_num_fields($result);

    printf("Result set has %d fields.\n", $field_cnt);

    /* close result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Result set has 5 fields.

Siehe auch

  • mysqli_fetch_field() - Returns the next field in the result set


Set result pointer to a specified field offset

  • « mysqli_result::$field_count
  • mysqli_result::free »
  • PHP Manual
  • mysqli_result
  • Set result pointer to a specified field offset

mysqli_result::field_seek

mysqli_field_seek

(PHP 5, PHP 7)

mysqli_result::field_seek -- mysqli_field_seek — Set result pointer to a specified field offset

Beschreibung

Objektorientierter Stil

public mysqli_result::field_seek ( int $fieldnr ) : bool

Prozeduraler Stil

mysqli_field_seek ( mysqli_result $result , int $fieldnr ) : bool

Sets the field cursor to the given offset. The next call to mysqli_fetch_field() will retrieve the field definition of the column associated with that offset.

Hinweis:

To seek to the beginning of a row, pass an offset value of zero.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

fieldnr

The field number. This value must be in the range from 0 to number of fields - 1.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for 2nd column */
    $result->field_seek(1);
    $finfo = $result->fetch_field();

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n\n", $finfo->type);

    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for 2nd column */
    mysqli_field_seek($result, 1);
    $finfo = mysqli_fetch_field($result);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n\n", $finfo->type);

    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Siehe auch

  • mysqli_fetch_field() - Returns the next field in the result set


Frees the memory associated with a result

  • « mysqli_result::field_seek
  • mysqli_result::$lengths »
  • PHP Manual
  • mysqli_result
  • Frees the memory associated with a result

mysqli_result::free

mysqli_result::close

mysqli_result::free_result

mysqli_free_result

(PHP 5, PHP 7)

mysqli_result::free -- mysqli_result::close -- mysqli_result::free_result -- mysqli_free_result — Frees the memory associated with a result

Beschreibung

Objektorientierter Stil

public mysqli_result::free ( ) : void
public mysqli_result::close ( ) : void
public mysqli_result::free_result ( ) : void

Prozeduraler Stil

mysqli_free_result ( mysqli_result $result ) : void

Frees the memory associated with the result.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • mysqli_query() - Performs a query on the database
  • mysqli_stmt_get_result() - Gets a result set from a prepared statement
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_use_result() - Initiate a result set retrieval


Returns the lengths of the columns of the current row in the result set

  • « mysqli_result::free
  • mysqli_result::$num_rows »
  • PHP Manual
  • mysqli_result
  • Returns the lengths of the columns of the current row in the result set

mysqli_result::$lengths

mysqli_fetch_lengths

(PHP 5, PHP 7)

mysqli_result::$lengths -- mysqli_fetch_lengths — Returns the lengths of the columns of the current row in the result set

Beschreibung

Objektorientierter Stil

array $mysqli_result->lengths;

Prozeduraler Stil

mysqli_fetch_lengths ( mysqli_result $result ) : array

The mysqli_fetch_lengths() function returns an array containing the lengths of every column of the current row within the result set.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

Rückgabewerte

An array of integers representing the size of each column (not including any terminating null characters). false if an error occurred.

mysqli_fetch_lengths() is valid only for the current row of the result set. It returns false if you call it before calling mysqli_fetch_row/array/object or after retrieving all rows in the result.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = $mysqli->query($query)) {

    $row = $result->fetch_row();

    /* display column lengths */
    foreach ($result->lengths as $i => $val) {
        printf("Field %2d has Length %2d\n", $i+1, $val);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = mysqli_query($link, $query)) {

    $row = mysqli_fetch_row($result);

    /* display column lengths */
    foreach (mysqli_fetch_lengths($result) as $i => $val) {
        printf("Field %2d has Length %2d\n", $i+1, $val);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Field  1 has Length  3
Field  2 has Length  5
Field  3 has Length 13
Field  4 has Length  9
Field  5 has Length  6
Field  6 has Length  1
Field  7 has Length  6
Field  8 has Length  4
Field  9 has Length  6
Field 10 has Length  6
Field 11 has Length  5
Field 12 has Length 44
Field 13 has Length  7
Field 14 has Length  3
Field 15 has Length  2


Gets the number of rows in a result

  • « mysqli_result::$lengths
  • mysqli_driver »
  • PHP Manual
  • mysqli_result
  • Gets the number of rows in a result

mysqli_result::$num_rows

mysqli_num_rows

(PHP 5, PHP 7)

mysqli_result::$num_rows -- mysqli_num_rows — Gets the number of rows in a result

Beschreibung

Objektorientierter Stil

int $mysqli_result->num_rows;

Prozeduraler Stil

mysqli_num_rows ( mysqli_result $result ) : int

Returns the number of rows in the result set.

The behaviour of mysqli_num_rows() depends on whether buffered or unbuffered result sets are being used. For unbuffered result sets, mysqli_num_rows() will not return the correct number of rows until all the rows in the result have been retrieved.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result() oder mysqli_use_result() zurückgegebenes Ergebnisobjekt.

Rückgabewerte

Returns number of rows in the result set.

Hinweis:

If the number of rows is greater than PHP_INT_MAX, the number will be returned as a string.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = $result->num_rows;

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Beispiel #2 Prozeduraler Stil

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = mysqli_num_rows($result);

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Result set has 239 rows.

Siehe auch

  • mysqli_affected_rows() - Ermittelt die Anzahl der betroffenen Zeilen in einem vorherigen MySQL Vorgang
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_use_result() - Initiate a result set retrieval
  • mysqli_query() - Performs a query on the database


Die mysqli_driver-Klasse

(PHP 5, PHP 7)

Einführung

Die mysqli_driver-Klasse ist eine Instanz des Monostate-Entwurfsmusters, d.h. es gibt nur einen Treiber, auf den durch eine beliebige Menge von mysqli_driver-Instanzen zugegriffen werden kann.

Klassenbeschreibung

mysqli_driver {
/* Eigenschaften */
public readonly string $client_info ;
public readonly string $client_version ;
public readonly string $driver_version ;
public readonly bool $embedded ;
public bool $reconnect ;
public int $report_mode ;
/* Methoden */
public embedded_server_end ( ) : void
public embedded_server_start ( int $start , array $arguments , array $groups ) : bool
}

Eigenschaften

client_info

Die Header-Version der Client-API.

client_version

Die Client-Version.

driver_version

Die Version des MySQLi-Treibers.

embedded

Ist der MySQLi-Embedded-Support aktiviert?

reconnect

Erlaubt oder verbietet das wiederverbinden (INI-Anweiung mysqli.reconnect).

report_mode

Wird auf MYSQLI_REPORT_OFF, MYSQLI_REPORT_ALL oder eine beliebige Kombination von MYSQLI_REPORT_STRICT (löst bei Fehlern Exceptions aus), MYSQLI_REPORT_ERROR (meldet Fehler) und MYSQLI_REPORT_INDEX (meldet Fehler bezüglich Indizes) gesetzt. Siehe auch mysqli_report().

Inhaltsverzeichnis

  • mysqli_driver::embedded_server_end — Stop embedded server
  • mysqli_driver::embedded_server_start — Initialize and start embedded server
  • mysqli_driver::$report_mode — Sets mysqli error reporting mode


Stop embedded server

  • « mysqli_driver
  • mysqli_driver::embedded_server_start »
  • PHP Manual
  • mysqli_driver
  • Stop embedded server

mysqli_driver::embedded_server_end

mysqli_embedded_server_end

(PHP 5 >= 5.1.0, PHP 7 < 7.4.0)

mysqli_driver::embedded_server_end -- mysqli_embedded_server_end — Stop embedded server

Warnung

Diese Funktion wurde mit PHP 7.4.0 ENTFERNT.

Beschreibung

Objektorientierter Stil

public mysqli_driver::embedded_server_end ( ) : void

Prozeduraler Stil

mysqli_embedded_server_end ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Initialize and start embedded server

  • « mysqli_driver::embedded_server_end
  • mysqli_driver::$report_mode »
  • PHP Manual
  • mysqli_driver
  • Initialize and start embedded server

mysqli_driver::embedded_server_start

mysqli_embedded_server_start

(PHP 5 >= 5.1.0, PHP 7 < 7.4.0)

mysqli_driver::embedded_server_start -- mysqli_embedded_server_start — Initialize and start embedded server

Warnung

Diese Funktion wurde mit PHP 7.4.0 ENTFERNT.

Beschreibung

Objektorientierter Stil

public mysqli_driver::embedded_server_start ( int $start , array $arguments , array $groups ) : bool

Prozeduraler Stil

mysqli_embedded_server_start ( int $start , array $arguments , array $groups ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Sets mysqli error reporting mode

  • « mysqli_driver::embedded_server_start
  • mysqli_warning »
  • PHP Manual
  • mysqli_driver
  • Sets mysqli error reporting mode

mysqli_driver::$report_mode

mysqli_report

(PHP 5, PHP 7)

mysqli_driver::$report_mode -- mysqli_report — Sets mysqli error reporting mode

Beschreibung

Objektorientierter Stil

int $mysqli_driver->report_mode ;

Prozeduraler Stil

mysqli_report ( int $flags ) : bool

Depending on the flags, it sets mysqli error reporting mode to exception, warning or none. When set to MYSQLI_REPORT_ALL or MYSQLI_REPORT_INDEX it will also inform about queries that don't use an index (or use a bad index).

The default setting is MYSQLI_REPORT_OFF.

Parameter-Liste

flags

Supported flags
Name | Description
MYSQLI_REPORT_OFF | Turns reporting off (the default)
MYSQLI_REPORT_ERROR | Report errors from mysqli function calls
MYSQLI_REPORT_STRICT | Throw mysqli_sql_exception for errors instead of warnings
MYSQLI_REPORT_INDEX | Report if no index or bad index was used in a query
MYSQLI_REPORT_ALL | Set all options (report all)

Rückgabewerte

Returns true.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php

/* activate reporting */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;

try {
    /* if the connection fails, a mysqli_sql_exception will be thrown */
    $mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");

    /* this query should report an error */
    $result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

    /* this query should report a bad index if the column population doesn't have an index */
    $result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
    error_log($e->__toString());
}

Beispiel #2 Prozeduraler Stil

<?php

/* activate reporting */
mysqli_report(MYSQLI_REPORT_ALL);

try {
    $link = mysqli_connect("localhost", "my_user", "my_password", "my_db");

    /* this query should report an error */
    $result = mysqli_query($link, "SELECT Name FROM Nonexistingtable WHERE population > 50000");

    /* this query should report a bad index if the column population doesn't have an index */
    $result = mysqli_query($link, "SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
    error_log($e->__toString());
}

Beispiel #3 Error reporting except bad index errors

<?php

/* activate reporting */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

try {
    /* if the connection fails, a mysqli_sql_exception will be thrown */
    $mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");

    /* this query should report an error */
    $result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

    /* this WILL NOT report any errors even if index is not available */
    $result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
    error_log($e->__toString());
}

Siehe auch

  • mysqli_sql_exception
  • set_exception_handler() - Installiert einen benutzerdefinierten Exceptionhandler
  • error_reporting() - Gibt an, welche PHP-Fehlermeldungen gemeldet werden


Die MySQLi-Warnungsklasse

(PHP 5, PHP 7)

Einführung

Stellt eine MySQL-Warnung dar.

Klassenbeschreibung

final mysqli_warning {
/* Eigenschaften */
public $message ;
public $sqlstate ;
public $errno ;
/* Methoden */
public next ( ) : bool
}

Eigenschaften

message

Die Nachrichten-Zeichenkette

sqlstate

Der SQL-Status

errno

Die Fehlernummer

Inhaltsverzeichnis

  • mysqli_warning::next — Fetch next warning


Fetch next warning

  • « mysqli_warning
  • mysqli_sql_exception »
  • PHP Manual
  • mysqli_warning
  • Fetch next warning

mysqli_warning::next

(PHP 5, PHP 7)

mysqli_warning::next — Fetch next warning

Beschreibung

public mysqli_warning::next ( ) : bool

Change warning information to the next warning if possible.

Once the warning has been set to the next warning, new values of properties message, sqlstate and errno of mysqli_warning are available.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if next warning was fetched successfully. If there are no more warnings, it will return false


Die MySQLi Fehlerbehandlungs-Klasse

(PHP 5, PHP 7)

Einführung

Die MySQLi Fehlerbehandlungs-Klasse

Klassenbeschreibung

mysqli_sql_exception extends RuntimeException {
/* Eigenschaften */
protected string $sqlstate ;
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}

Eigenschaften

sqlstate

Der SQL-Status mit dem Fehler.


Aliase und veraltete MySQLi Funktionen

Inhaltsverzeichnis

  • mysqli_connect — Alias von mysqli::__construct
  • mysqli_escape_string — Alias von mysqli_real_escape_string
  • mysqli_execute — Alias für mysqli_stmt_execute
  • mysqli_get_client_stats — Returns client per-process statistics
  • mysqli_get_links_stats — Return information about open and cached links
  • mysqli_report — Alias von mysqli_driver->report_mode
  • mysqli::set_opt — Alias für mysqli_options


Alias von mysqli::__construct

  • « Aliase und veraltete MySQLi Funktionen
  • mysqli_escape_string »
  • PHP Manual
  • Aliase und veraltete MySQLi Funktionen
  • Alias von mysqli::__construct

mysqli_connect

(PHP 5, PHP 7)

mysqli_connect — Alias von mysqli::__construct()

Beschreibung

Diese Funktion ist ein Alias für: mysqli::__construct()

Hinweis:

Wenn der Exception-Modus von mysqli nicht aktiviert ist und eine Verbindung fehlschlägt, dann gibt mysqli_connect() false anstelle eines Objekts zurück. Die Funktion mysqli_connect_error() kann verwendet werden, um den Verbindungsfehler zu liefern.


Alias von mysqli_real_escape_string

  • « mysqli_connect
  • mysqli_execute »
  • PHP Manual
  • Aliase und veraltete MySQLi Funktionen
  • Alias von mysqli_real_escape_string

mysqli_escape_string

(PHP 5, PHP 7)

mysqli_escape_string — Alias von mysqli_real_escape_string()

Beschreibung

Diese Funktion ist ein Alias für: mysqli_real_escape_string().


Alias für mysqli_stmt_execute

  • « mysqli_escape_string
  • mysqli_get_client_stats »
  • PHP Manual
  • Aliase und veraltete MySQLi Funktionen
  • Alias für mysqli_stmt_execute

mysqli_execute

(PHP 5, PHP 7)

mysqli_execute — Alias für mysqli_stmt_execute()

Beschreibung

Diese Funktion ist ein Alias für: mysqli_stmt_execute().

Anmerkungen

Hinweis:

mysqli_execute() ist deprecated und wird entfernt.

Siehe auch

  • mysqli_stmt_execute() - Executes a prepared Query


Returns client per-process statistics

  • « mysqli_execute
  • mysqli_get_links_stats »
  • PHP Manual
  • Aliase und veraltete MySQLi Funktionen
  • Returns client per-process statistics

mysqli_get_client_stats

(PHP 5 >= 5.3.0, PHP 7)

mysqli_get_client_stats — Returns client per-process statistics

Beschreibung

mysqli_get_client_stats ( ) : array

Returns client per-process statistics. Nur in mysqlnd verfügbar.

Parameter-Liste

Rückgabewerte

Returns an array with client stats if success, false otherwise.

Beispiele

Beispiel #1 A mysqli_get_client_stats() example

<?php
$link = mysqli_connect();
print_r(mysqli_get_client_stats());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

Siehe auch

  • Stats description


Return information about open and cached links

  • « mysqli_get_client_stats
  • mysqli_report »
  • PHP Manual
  • Aliase und veraltete MySQLi Funktionen
  • Return information about open and cached links

mysqli_get_links_stats

(PHP 5 >= 5.6.0, PHP 7)

mysqli_get_links_stats — Return information about open and cached links

Beschreibung

mysqli_get_links_stats ( ) : array

mysqli_get_links_stats() returns information about open and cached MySQL links.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

mysqli_get_links_stats() returns an associative array with three elements, keyed as follows:

total

An int indicating the total number of open links in any state.

active_plinks

An int representing the number of active persistent connections.

cached_plinks

An int representing the number of inactive persistent connections.


Alias von mysqli_driver->report_mode

  • « mysqli_get_links_stats
  • mysqli::set_opt »
  • PHP Manual
  • Aliase und veraltete MySQLi Funktionen
  • Alias von mysqli_driver->report_mode

mysqli_report

(PHP 5, PHP 7)

mysqli_report — Alias von mysqli_driver->report_mode

Beschreibung

Diese Funktion ist ein Alias für: mysqli_driver->report_mode


Alias für mysqli_options

  • « mysqli_report
  • Changelog »
  • PHP Manual
  • Aliase und veraltete MySQLi Funktionen
  • Alias für mysqli_options

mysqli::set_opt

mysqli_set_opt

(PHP 5, PHP 7)

mysqli::set_opt -- mysqli_set_opt — Alias für mysqli_options()

Beschreibung

Diese Funktion ist ein Alias für: mysqli_options().


Changelog

Folgende Änderungen wurden an den Klassen/Funktionen/Methoden dieser Extension vorgenommen.

Version Function Description


Mysql_xdevapi

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Building / Compiling From Source
  • Vordefinierte Konstanten
  • Beispiele
  • Mysql_xdevapi Funktionen
    • expression — Bind prepared statement variables as parameters
    • getSession — Connect to a MySQL server
  • mysql_xdevapi\BaseResult — BaseResult interface
    • BaseResult::getWarnings — Fetch warnings from last operation
    • BaseResult::getWarningsCount — Fetch warning count from last operation
  • mysql_xdevapi\Client — Client class
    • mysql_xdevapi\Client::close — Close client
    • Client::__construct — Client constructor
    • Client::getClient — Get client session
  • mysql_xdevapi\Collection — Collection class
    • Collection::add — Add collection document
    • Collection::addOrReplaceOne — Add or replace collection document
    • Collection::__construct — Collection constructor
    • Collection::count — Get document count
    • Collection::createIndex — Create collection index
    • Collection::dropIndex — Drop collection index
    • Collection::existsInDatabase — Check if collection exists in database
    • Collection::find — Search for document
    • Collection::getName — Get collection name
    • Collection::getOne — Get one document
    • Collection::getSchema — Get schema object
    • Collection::getSession — Get session object
    • Collection::modify — Modify collection documents
    • Collection::remove — Remove collection documents
    • Collection::removeOne — Remove one collection document
    • Collection::replaceOne — Replace one collection document
  • mysql_xdevapi\CollectionAdd — CollectionAdd class
    • CollectionAdd::__construct — CollectionAdd constructor
    • CollectionAdd::execute — Execute the statement
  • mysql_xdevapi\CollectionFind — CollectionFind class
    • CollectionFind::bind — Bind value to query placeholder
    • CollectionFind::__construct — CollectionFind constructor
    • CollectionFind::execute — Execute the statement
    • CollectionFind::fields — Set document field filter
    • CollectionFind::groupBy — Set grouping criteria
    • CollectionFind::having — Set condition for aggregate functions
    • CollectionFind::limit — Limit number of returned documents
    • CollectionFind::lockExclusive — Execute operation with EXCLUSIVE LOCK
    • CollectionFind::lockShared — Execute operation with SHARED LOCK
    • CollectionFind::offset — Skip given number of elements to be returned
    • CollectionFind::sort — Set the sorting criteria
  • mysql_xdevapi\CollectionModify — CollectionModify class
    • CollectionModify::arrayAppend — Append element to an array field
    • CollectionModify::arrayInsert — Insert element into an array field
    • CollectionModify::bind — Bind value to query placeholder
    • CollectionModify::__construct — CollectionModify constructor
    • CollectionModify::execute — Execute modify operation
    • CollectionModify::limit — Limit number of modified documents
    • CollectionModify::patch — Patch document
    • CollectionModify::replace — Replace document field
    • CollectionModify::set — Set document attribute
    • CollectionModify::skip — Skip elements
    • CollectionModify::sort — Set the sorting criteria
    • CollectionModify::unset — Unset the value of document fields
  • mysql_xdevapi\CollectionRemove — CollectionRemove class
    • CollectionRemove::bind — Bind value to placeholder
    • CollectionRemove::__construct — CollectionRemove constructor
    • CollectionRemove::execute — Execute remove operation
    • CollectionRemove::limit — Limit number of documents to remove
    • CollectionRemove::sort — Set the sorting criteria
  • mysql_xdevapi\ColumnResult — ColumnResult class
    • ColumnResult::__construct — ColumnResult constructor
    • ColumnResult::getCharacterSetName — Get character set
    • ColumnResult::getCollationName — Get collation name
    • ColumnResult::getColumnLabel — Get column label
    • ColumnResult::getColumnName — Get column name
    • ColumnResult::getFractionalDigits — Get fractional digit length
    • ColumnResult::getLength — Get column field length
    • ColumnResult::getSchemaName — Get schema name
    • ColumnResult::getTableLabel — Get table label
    • ColumnResult::getTableName — Get table name
    • ColumnResult::getType — Get column type
    • ColumnResult::isNumberSigned — Check if signed type
    • ColumnResult::isPadded — Check if padded
  • mysql_xdevapi\CrudOperationBindable — CrudOperationBindable interface
    • CrudOperationBindable::bind — Bind value to placeholder
  • mysql_xdevapi\CrudOperationLimitable — CrudOperationLimitable interface
    • CrudOperationLimitable::limit — Set result limit
  • mysql_xdevapi\CrudOperationSkippable — CrudOperationSkippable interface
    • CrudOperationSkippable::skip — Number of operations to skip
  • mysql_xdevapi\CrudOperationSortable — CrudOperationSortable interface
    • CrudOperationSortable::sort — Sort results
  • mysql_xdevapi\DatabaseObject — DatabaseObject interface
    • DatabaseObject::existsInDatabase — Check if object exists in database
    • DatabaseObject::getName — Get object name
    • DatabaseObject::getSession — Get session name
  • mysql_xdevapi\DocResult — DocResult class
    • DocResult::__construct — DocResult constructor
    • DocResult::fetchAll — Get all rows
    • DocResult::fetchOne — Get one row
    • DocResult::getWarnings — Get warnings from last operation
    • DocResult::getWarningsCount — Get warning count from last operation
  • mysql_xdevapi\Exception — Exception class
  • mysql_xdevapi\Executable — Executable interface
    • Executable::execute — Execute statement
  • mysql_xdevapi\ExecutionStatus — ExecutionStatus class
    • ExecutionStatus::__construct — ExecutionStatus constructor
  • mysql_xdevapi\Expression — Expression class
    • Expression::__construct — Expression constructor
  • mysql_xdevapi\Result — Result class
    • Result::__construct — Result constructor
    • Result::getAffectedItemsCount — Get affected row count
    • Result::getAutoIncrementValue — Get autoincremented value
    • Result::getGeneratedIds — Get generated ids
    • Result::getWarnings — Get warnings from last operation
    • Result::getWarningsCount — Get warning count from last operation
  • mysql_xdevapi\RowResult — RowResult class
    • RowResult::__construct — RowResult constructor
    • RowResult::fetchAll — Get all rows from result
    • RowResult::fetchOne — Get row from result
    • RowResult::getColumnsCount — Get column count
    • RowResult::getColumnNames — Get all column names
    • RowResult::getColumns — Get column metadata
    • RowResult::getWarnings — Get warnings from last operation
    • RowResult::getWarningsCount — Get warning count from last operation
  • mysql_xdevapi\Schema — Schema class
    • Schema::__construct — constructor
    • Schema::createCollection — Add collection to schema
    • Schema::dropCollection — Drop collection from schema
    • Schema::existsInDatabase — Check if exists in database
    • Schema::getCollection — Get collection from schema
    • Schema::getCollectionAsTable — Get collection table object
    • Schema::getCollections — Get all schema collections
    • Schema::getName — Get schema name
    • Schema::getSession — Get schema session
    • Schema::getTable — Get schema table
    • Schema::getTables — Get schema tables
  • mysql_xdevapi\SchemaObject — SchemaObject interface
    • SchemaObject::getSchema — Get schema object
  • mysql_xdevapi\Session — Session class
    • Session::close — Close session
    • Session::commit — Commit transaction
    • Session::__construct — Description constructor
    • Session::createSchema — Create new schema
    • Session::dropSchema — Drop a schema
    • Session::generateUUID — Get new UUID
    • Session::getDefaultSchema — Get default schema name
    • Session::getSchema — Get a new schema object
    • Session::getSchemas — Get the schemas
    • Session::getServerVersion — Get server version
    • Session::listClients — Get client list
    • Session::quoteName — Add quotes
    • Session::releaseSavepoint — Release set savepoint
    • Session::rollback — Rollback transaction
    • Session::rollbackTo — Rollback transaction to savepoint
    • Session::setSavepoint — Create savepoint
    • Session::sql — Execute SQL query
    • Session::startTransaction — Start transaction
  • mysql_xdevapi\SqlStatement — SqlStatement class
    • SqlStatement::bind — Bind statement parameters
    • SqlStatement::__construct — Description constructor
    • SqlStatement::execute — Execute the operation
    • SqlStatement::getNextResult — Get next result
    • SqlStatement::getResult — Get result
    • SqlStatement::hasMoreResults — Check for more results
  • mysql_xdevapi\SqlStatementResult — SqlStatementResult class
    • SqlStatementResult::__construct — Description constructor
    • SqlStatementResult::fetchAll — Get all rows from result
    • SqlStatementResult::fetchOne — Get single row
    • SqlStatementResult::getAffectedItemsCount — Get affected row count
    • SqlStatementResult::getColumnsCount — Get column count
    • SqlStatementResult::getColumnNames — Get column names
    • SqlStatementResult::getColumns — Get columns
    • SqlStatementResult::getGeneratedIds — Get generated ids
    • SqlStatementResult::getLastInsertId — Get last insert id
    • SqlStatementResult::getWarnings — Get warnings from last operation
    • SqlStatementResult::getWarningsCount — Get warning count from last operation
    • SqlStatementResult::hasData — Check if result has data
    • SqlStatementResult::nextResult — Get next result
  • mysql_xdevapi\Statement — Statement class
    • Statement::__construct — Description constructor
    • Statement::getNextResult — Get next result
    • Statement::getResult — Get result
    • Statement::hasMoreResults — Check if more results
  • mysql_xdevapi\Table — Table class
    • Table::__construct — Table constructor
    • Table::count — Get row count
    • Table::delete — Delete rows from table
    • Table::existsInDatabase — Check if table exists in database
    • Table::getName — Get table name
    • Table::getSchema — Get table schema
    • Table::getSession — Get table session
    • Table::insert — Insert table rows
    • Table::isView — Check if table is view
    • Table::select — Select rows from table
    • Table::update — Update rows in table
  • mysql_xdevapi\TableDelete — TableDelete class
    • TableDelete::bind — Bind delete query parameters
    • TableDelete::__construct — TableDelete constructor
    • TableDelete::execute — Execute delete query
    • TableDelete::limit — Limit deleted rows
    • TableDelete::orderby — Set delete sort criteria
    • TableDelete::where — Set delete search condition
  • mysql_xdevapi\TableInsert — TableInsert class
    • TableInsert::__construct — TableInsert constructor
    • TableInsert::execute — Execute insert query
    • TableInsert::values — Add insert row values
  • mysql_xdevapi\TableSelect — TableSelect class
    • TableSelect::bind — Bind select query parameters
    • TableSelect::__construct — TableSelect constructor
    • TableSelect::execute — Execute select statement
    • TableSelect::groupBy — Set select grouping criteria
    • TableSelect::having — Set select having condition
    • TableSelect::limit — Limit selected rows
    • TableSelect::lockExclusive — Execute EXCLUSIVE LOCK
    • TableSelect::lockShared — Execute SHARED LOCK
    • TableSelect::offset — Set limit offset
    • TableSelect::orderby — Set select sort criteria
    • TableSelect::where — Set select search condition
  • mysql_xdevapi\TableUpdate — TableUpdate class
    • TableUpdate::bind — Bind update query parameters
    • TableUpdate::__construct — TableUpdate constructor
    • TableUpdate::execute — Execute update query
    • TableUpdate::limit — Limit update row count
    • TableUpdate::orderby — Set sorting criteria
    • TableUpdate::set — Add field to be updated
    • TableUpdate::where — Set search filter
  • mysql_xdevapi\Warning — Warning class
    • Warning::__construct — Warning constructor


Einführung

This extension provides access to the MySQL Document Store via the X DevAPI. The X DevAPI is a common API provided by multiple MySQL Connectors providing easy access to relational tables as well as collections of documents, which are represented in JSON, from a API with CRUD-style operations.

The X DevAPI uses the X Protocol, the new generation client-server protocol of the MySQL 8.0 server.

For general information about the MySQL Document Store, please refer to the » MySQL Document Store chapter in the MySQL manual.


Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation
  • Laufzeit-Konfiguration
  • Building / Compiling From Source


Anforderungen

This extension requires a MySQL 8+ server with the X plugin enabled (default).

Prerequisite libraries for compiling this extension are: Boost (1.53.0 or higher), OpenSSL, and Protobuf.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

An example installation procedure on Ubuntu 18.04 with PHP 7.2:

// Dependencies
$ apt install build-essential libprotobuf-dev libboost-dev openssl protobuf-compiler liblz4-tool zstd

// PHP with the desired extensions; php7.2-dev is required to compile
$ apt install php7.2-cli php7.2-dev php7.2-mysql php7.2-pdo php7.2-xml

// Compile the extension
$ pecl install mysql_xdevapi

The pecl install command does not enable PHP extensions (by default) and enabling PHP extensions can be done in several ways. Another PHP 7.2 on Ubuntu 18.04 example:

// Create its own ini file
$ echo "extension=mysql_xdevapi.so" > /etc/php/7.2/mods-available/mysql_xdevapi.ini

// Use the 'phpenmod' command (note: it's Debian/Ubuntu specific)
$ phpenmod -v 7.2 -s ALL mysql_xdevapi

// A 'phpenmod' alternative is to manually symlink it
// $ ln -s /etc/php/7.2/mods-available/mysql_xdevapi.ini /etc/php/7.2/cli/conf.d/20-mysql_xdevapi.ini

// Let's see which MySQL extensions are enabled now
$ php -m |grep mysql

mysql_xdevapi
mysqli
mysqlnd
pdo_mysql

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/mysql_xdevapi.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Mysql_xdevapi Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
xmysqlnd.collect_memory_statistics | 0 | PHP_INI_SYSTEM |
xmysqlnd.collect_statistics | 1 | PHP_INI_ALL |
xmysqlnd.debug |  | PHP_INI_SYSTEM |
xmysqlnd.mempool_default_size | 16000 | PHP_INI_ALL |
xmysqlnd.net_read_timeout | 31536000 | PHP_INI_SYSTEM |
xmysqlnd.trace_alloc |  | PHP_INI_SYSTEM |

Hier eine kurze Erklärung der Konfigurationsoptionen:

xmysqlnd.collect_memory_statistics int

xmysqlnd.collect_statistics int

xmysqlnd.debug string

xmysqlnd.mempool_default_size int

xmysqlnd.net_read_timeout int

xmysqlnd.trace_alloc string


Building / Compiling From Source

Considerations for compiling this extension from source.

  • The extension name is 'mysql_xdevapi', so use --enable-mysql-xdevapi.

  • Boost: required, optionally use the --with-boost=DIR configure option or set the MYSQL_XDEVAPI_BOOST_ROOT environment variable. Only the boost header files are required; not the binaries.

  • Google Protocol Buffers (protobuf): required, optionally use the --with-protobuf=DIR configure option or set the MYSQL_XDEVAPI_PROTOBUF_ROOT environment variable.

    Optionally use make protobufs to generate protobuf files (*.pb.cc/.h), and make clean-protobufs to delete generate protobuf files.

    Windows specific protobuf note: depending on your environment, the static library with a multi-threaded DLL runtime may be needed. To prepare, use the following options: -Dprotobuf_MSVC_STATIC_RUNTIME=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF

  • Google Protocol Buffers / protocol compiler (protoc): required, ensure that proper 'protoc' is available in the PATH while building. It is especially important as Windows PHP SDK batch scripts may overwrite the environment.

  • Bison: required, and available from the PATH.

    Windows specific bison note: we strongly recommended that bison delivered with the chosen PHP SDKis used else an error similar to "zend_globals_macros.h(39): error C2375: 'zendparse': redefinition; different linkage Zend/zend_language_parser.h(214): note: see declaration of 'zendparse'" may be the result. Also, Windows PHP SDK batch scripts may overwrite the environment.

  • Windows Specific Notes: To prepare the environment, see the official Windows build documentation for » the current SDK.

    We recommend using the backslash '\\' instead of a slash '/' for all paths.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

MYSQLX_CLIENT_SSL (int)
MYSQLX_TYPE_DECIMAL (int)
MYSQLX_TYPE_TINY (int)
MYSQLX_TYPE_SHORT (int)
MYSQLX_TYPE_SMALLINT (int)
MYSQLX_TYPE_MEDIUMINT (int)
MYSQLX_TYPE_INT (int)
MYSQLX_TYPE_BIGINT (int)
MYSQLX_TYPE_LONG (int)
MYSQLX_TYPE_FLOAT (int)
MYSQLX_TYPE_DOUBLE (int)
MYSQLX_TYPE_NULL (int)
MYSQLX_TYPE_TIMESTAMP (int)
MYSQLX_TYPE_LONGLONG (int)
MYSQLX_TYPE_INT24 (int)
MYSQLX_TYPE_DATE (int)
MYSQLX_TYPE_TIME (int)
MYSQLX_TYPE_DATETIME (int)
MYSQLX_TYPE_YEAR (int)
MYSQLX_TYPE_NEWDATE (int)
MYSQLX_TYPE_ENUM (int)
MYSQLX_TYPE_SET (int)
MYSQLX_TYPE_TINY_BLOB (int)
MYSQLX_TYPE_MEDIUM_BLOB (int)
MYSQLX_TYPE_LONG_BLOB (int)
MYSQLX_TYPE_BLOB (int)
MYSQLX_TYPE_VAR_STRING (int)
MYSQLX_TYPE_STRING (int)
MYSQLX_TYPE_CHAR (int)
MYSQLX_TYPE_BYTES (int)
MYSQLX_TYPE_INTERVAL (int)
MYSQLX_TYPE_GEOMETRY (int)
MYSQLX_TYPE_JSON (int)
MYSQLX_TYPE_NEWDECIMAL (int)
MYSQLX_TYPE_BIT (int)
MYSQLX_LOCK_DEFAULT (int)
MYSQLX_LOCK_NOWAIT (int)
MYSQLX_LOCK_SKIP_LOCKED (int)


Beispiele

The central entry point to the X DevAPI is the mysql_xdevapi\getSession() function, which receives a URI to a MySQL 8.0 Server and returns a mysql_xdevap\Session object.

Beispiel #1 Connecting to a MySQL Server

<?php
try {
    $session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(Exception $e) {
    die("Connection could not be established: " . $e->getMessage());
}

// ... use $session
?>

The session provides full access to the API. For a new MySQL Server installation, the first step is to create a database schema with a collection to store data:

Beispiel #2 Creating a Schema and Collection on the MySQL Server

<?php
$schema = $session->createSchema("test");
$collection = $schema->createCollection("example");
?>

When storing data, typically json_encode() is used to encode the data into JSON, which can then be stored inside a collection.

The following example stores data into the collection we created earlier, and then retrieve parts of it again.

Beispiel #3 Storing and Retrieving Data

<?php
$marco = [
  "name" => "Marco",
  "age"  => 19,
  "job"  => "Programmer"
];
$mike = [
  "name" => "Mike",
  "age"  => 39,
  "job"  => "Manager"
];

$schema = $session->getSchema("test");
$collection = $schema->getCollection("example");

$collection->add($marco, $mike)->execute();

var_dump($collection->find("name = 'Mike'")->execute()->fetchOne());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(4) {
  ["_id"]=>
  string(28) "00005ad66aaf0000000000000003"
  ["age"]=>
  int(39)
  ["job"]=>
  string(7) "Manager"
  ["name"]=>
  string(4) "Mike"
}

The example demonstrates that the MySQL Server adds an extra field named _id, which serves as primary key to the document.

The example also demonstrates that retrieved data is sorted alphabetically. That specific order comes from the efficient binary storage inside the MySQL server, but it should not be relied upon. Refer to the MySQL JSON datatype documentation for details.

Optionally use PHP's iterators fetch multiple documents:

Beispiel #4 Fetching and Iterating Multiple Documents

<?php
$result = $collection->find()->execute();
foreach ($result as $doc) {
  echo "${doc["name"]} is a ${doc["job"]}.\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Marco is a Programmer.
Mike is a Manager.


Mysql_xdevapi Funktionen

Inhaltsverzeichnis

  • expression — Bind prepared statement variables as parameters
  • getSession — Connect to a MySQL server


Bind prepared statement variables as parameters

  • « Mysql_xdevapi Funktionen
  • getSession »
  • PHP Manual
  • Mysql_xdevapi Funktionen
  • Bind prepared statement variables as parameters

expression

(No version information available, might only be in Git)

expression — Bind prepared statement variables as parameters

Beschreibung

mysql_xdevapi\expression ( string $expression ) : object

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

expression

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\Expression() example

<?php
$expression = mysql_xdevapi\Expression("[age,job]");

$res  = $coll->find("age > 30")->fields($expression)->limit(3)->execute();
$data = $res->fetchAll();

print_r($data);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

<?php


Connect to a MySQL server

  • « expression
  • mysql_xdevapi\BaseResult »
  • PHP Manual
  • Mysql_xdevapi Funktionen
  • Connect to a MySQL server

getSession

(No version information available, might only be in Git)

getSession — Connect to a MySQL server

Beschreibung

mysql_xdevapi\getSession ( string $uri ) : mysql_xdevapi\Session

Connects to the MySQL server.

Parameter-Liste

uri

The URI to the MySQL server, such as mysqlx://user:password@host.

URI format:

scheme://[user[:[password]]@]target[:port][?attribute1=value1&attribute2=value2...

  • scheme: required, the connection protocol

    In mysql_xdevapi it is always 'mysqlx' (for X Protocol)

  • user: optional, the MySQL user account for authentication

  • password: optional, the MySQL user's password for authentication

  • target: required, the server instance the connection refers to:

    * TCP connection (host name, IPv4 address, or IPv6 address)

    * Unix socket path (local file path)

    * Windows named-pipe (local file path)

  • port: optional, network port of MySQL server.

    by default port for X Protocol is 33060

  • ?attribute=value: this element is optional and specifies a data dictionary that contains different options, including:

    • The auth (authentication mechanism) attribute as it relates to encrypted connections. For additional information, see » Command Options for Encrypted Connections. The following 'auth' values are supported: plain, mysql41, external, and sha256_mem.

    • The connect-timeout attribute affects the connection and not subsequent operations. It is set per connection whether on a single or multiple hosts.

      Pass in a positive integer to define the connection timeout in seconds, or pass in 0 (zero) to disable the timeout (infinite). Not defining connect-timeout uses the default value of 10.

      Related, the MYSQLX_CONNECTION_TIMEOUT (timeout in seconds) and MYSQLX_TEST_CONNECTION_TIMEOUT (used while running tests) environment variables can be set and used instead of connect-timeout in the URI. The connect-timeout URI option has precedence over these environment variables.

    • The optional compression attribute accepts these values: preferred (client negotiates with server to find a supported algorithm; connection is uncompressed if a mutually supported algorithm is not found), required (like "preferred", but connection is terminated if a mutually supported algorithm is not found), or disabled (connection is uncompressed). Defaults to preferred.

      This option was added in version 8.0.20.

    • The optional compression-algorithms attribute defines the desired compression algorithms (and their preferred usage order): zstd_stream (alias: zstd), lz4_message (alias: lz4), or deflate_stream (aliases: deflate or zlib). By default, the order used (depending on system availability) is lz4_message, zstd_stream, then deflate_stream. For example, passing in compression-algorithms=[lz4,zstd_stream] uses lz4 if it's available, otherwise zstd_stream is used. If both are unavailable then behavior depends on the compression value e.g., if compression=required then it'll fail with an error.

      This option was added in version 8.0.22.

Beispiel #1 URI examples

mysqlx://foobar
mysqlx://root@localhost?socket=%2Ftmp%2Fmysqld.sock%2F
mysqlx://foo:bar@localhost:33060
mysqlx://foo:bar@localhost:33160?ssl-mode=disabled
mysqlx://foo:bar@localhost:33260?ssl-mode=required
mysqlx://foo:bar@localhost:33360?ssl-mode=required&auth=mysql41
mysqlx://foo:bar@(/path/to/socket)
mysqlx://foo:bar@(/path/to/socket)?auth=sha256_mem
mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]
mysqlx://foobar?ssl-ca=(/path/to/ca.pem)&ssl-crl=(/path/to/crl.pem)
mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]?ssl-mode=disabled
mysqlx://foo:bar@localhost:33160/?connect-timeout=0
mysqlx://foo:bar@localhost:33160/?connect-timeout=10&compression=required
mysqlx://foo:bar@localhost:33160/?connect-timeout=10&compression=required&compression-algorithms=[lz4,zstd_stream]

For related information, see MySQL Shell's » Connecting using a URI String.

Rückgabewerte

A Session object.

Fehler/Exceptions

A connection failure throws an Exception.

Beispiele

Beispiel #2 mysql_xdevapi\getSession() example

<?php
try {
    $session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(Exception $e) {
    die("Connection could not be established: " . $e->getMessage());
}

$schemas = $session->getSchemas();
print_r($schemas);

$mysql_version = $session->getServerVersion();
print_r($mysql_version);

var_dump($collection->find("name = 'Alfred'")->execute()->fetchOne());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => mysql_xdevapi\Schema Object
        (
            [name] => helloworld
        )
    [1] => mysql_xdevapi\Schema Object
        (
            [name] => information_schema
        )
    [2] => mysql_xdevapi\Schema Object
        (
            [name] => mysql
        )
    [3] => mysql_xdevapi\Schema Object
        (
            [name] => performance_schema
        )
    [4] => mysql_xdevapi\Schema Object
        (
            [name] => sys
        )
)

80012

array(4) {
  ["_id"]=>
  string(28) "00005ad66abf0001000400000003"
  ["age"]=>
  int(42)
  ["job"]=>
  string(7) "Butler"
  ["name"]=>
  string(4) "Alfred"
}


BaseResult interface

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\BaseResult {
/* Methoden */
abstract public getWarnings ( ) : array
abstract public getWarningsCount ( ) : int
}

Inhaltsverzeichnis

  • BaseResult::getWarnings — Fetch warnings from last operation
  • BaseResult::getWarningsCount — Fetch warning count from last operation


Fetch warnings from last operation

  • « mysql_xdevapi\BaseResult
  • BaseResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\BaseResult
  • Fetch warnings from last operation

BaseResult::getWarnings

(No version information available, might only be in Git)

BaseResult::getWarnings — Fetch warnings from last operation

Beschreibung

abstract public mysql_xdevapi\BaseResult::getWarnings ( ) : array

Fetches warnings generated by MySQL server's last operation.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Beispiele

Beispiel #1 mysql_xdevapi\RowResult::getWarnings() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table  = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();
$warnings = $res->getWarnings();

print_r($warnings);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
)


Fetch warning count from last operation

  • « BaseResult::getWarnings
  • mysql_xdevapi\Client »
  • PHP Manual
  • mysql_xdevapi\BaseResult
  • Fetch warning count from last operation

BaseResult::getWarningsCount

(No version information available, might only be in Git)

BaseResult::getWarningsCount — Fetch warning count from last operation

Beschreibung

abstract public mysql_xdevapi\BaseResult::getWarningsCount ( ) : int

Returns the number of warnings raised by the last operation. Specifically, these warnings are raised by the MySQL server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of warnings from the last operation.

Beispiele

Beispiel #1 mysql_xdevapi\RowResult::getWarningsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS foo")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table  = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();

echo $res->getWarningsCount();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2


Client class

(No version information available, might only be in Git)

Einführung

Provides access to the connection pool.

Klassenbeschreibung

mysql_xdevapi\Client {
/* Methoden */
public close ( ) : bool
public getSession ( ) : mysql_xdevapi\Session
}

Inhaltsverzeichnis

  • mysql_xdevapi\Client::close — Close client
  • Client::__construct — Client constructor
  • Client::getClient — Get client session


Close client

  • « mysql_xdevapi\Client
  • Client::__construct »
  • PHP Manual
  • mysql_xdevapi\Client
  • Close client

mysql_xdevapi\Client::close

(No version information available, might only be in Git)

mysql_xdevapi\Client::close — Close client

Beschreibung

public mysql_xdevapi\Client::close ( ) : bool

Close all client connections with the server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if connections are closed.


Client constructor

  • « mysql_xdevapi\Client::close
  • Client::getClient »
  • PHP Manual
  • mysql_xdevapi\Client
  • Client constructor

Client::__construct

(No version information available, might only be in Git)

Client::__construct — Client constructor

Beschreibung

private mysql_xdevapi\Client::__construct ( )

Construct a client object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\Client::__construct() example

<?php
$pooling_options = '{
  "enabled": true,
    "maxSize": 10,
    "maxIdleTime": 3600,
    "queueTimeOut": 1000
}';
$client = mysql_xdevapi\getClient($connection_uri, $pooling_options);
$session = $client->getSession();


Get client session

  • « Client::__construct
  • mysql_xdevapi\Collection »
  • PHP Manual
  • mysql_xdevapi\Client
  • Get client session

Client::getClient

(No version information available, might only be in Git)

Client::getClient — Get client session

Beschreibung

public mysql_xdevapi\Client::getSession ( ) : mysql_xdevapi\Session

Get session associated with the client.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Session object.


Collection class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\Collection implements mysql_xdevapi\SchemaObject {
/* Eigenschaften */
public $name ;
/* Methoden */
public add ( mixed $document ) : mysql_xdevapi\CollectionAdd
public addOrReplaceOne ( string $id , string $doc ) : mysql_xdevapi\Result
public count ( ) : int
public createIndex ( string $index_name , string $index_desc_json ) : void
public dropIndex ( string $index_name ) : bool
public existsInDatabase ( ) : bool
public find ( string $search_condition = ? ) : mysql_xdevapi\CollectionFind
public getName ( ) : string
public getOne ( string $id ) : Document
public getSchema ( ) : Schema Object
public getSession ( ) : Session
public modify ( string $search_condition ) : mysql_xdevapi\CollectionModify
public remove ( string $search_condition ) : mysql_xdevapi\CollectionRemove
public removeOne ( string $id ) : mysql_xdevapi\Result
public replaceOne ( string $id , string $doc ) : mysql_xdevapi\Result
}

Eigenschaften

name

Inhaltsverzeichnis

  • Collection::add — Add collection document
  • Collection::addOrReplaceOne — Add or replace collection document
  • Collection::__construct — Collection constructor
  • Collection::count — Get document count
  • Collection::createIndex — Create collection index
  • Collection::dropIndex — Drop collection index
  • Collection::existsInDatabase — Check if collection exists in database
  • Collection::find — Search for document
  • Collection::getName — Get collection name
  • Collection::getOne — Get one document
  • Collection::getSchema — Get schema object
  • Collection::getSession — Get session object
  • Collection::modify — Modify collection documents
  • Collection::remove — Remove collection documents
  • Collection::removeOne — Remove one collection document
  • Collection::replaceOne — Replace one collection document


Add collection document

  • « mysql_xdevapi\Collection
  • Collection::addOrReplaceOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Add collection document

Collection::add

(No version information available, might only be in Git)

Collection::add — Add collection document

Beschreibung

public mysql_xdevapi\Collection::add ( mixed $document ) : mysql_xdevapi\CollectionAdd

Triggers the insertion of the given document(s) into the collection, and multiple variants of this method are supported. Options include:

  1. Add a single document as a JSON string.

  2. Add a single document as an array as: [ 'field' => 'value', 'field2' => 'value2' ... ]

  3. A mix of both, and multiple documents can be added in the same operation.

Parameter-Liste

document

One or multiple documents, and this can be either JSON or an array of fields with their associated values. This cannot be an empty array.

The MySQL server automatically generates unique _id values for each document (recommended), although this can be manually added as well. This value must be unique as otherwise the add operation will fail.

Rückgabewerte

A CollectionAdd object. Use execute() to return a Result that can be used to query the number of affected items, the number warnings generated by the operation, or to fetch a list of generated IDs for the inserted documents.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::add() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Add two documents
$collection->add('{"name": "Fred",  "age": 21, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

// Add two documents using a single JSON object
$result = $collection->add(
  '{"name": "Bernie",
    "jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
    "hobbies": ["Sports","Making cupcakes"]}',
  '{"name": "Jane",
    "jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
    "hobbies": ["Walking","Making pies"]}')->execute();

// Fetch a list of generated ID's from the last add()
$ids = $result->getGeneratedIds();
print_r($ids);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)

Anmerkungen

Hinweis:

A unique _id is generated by MySQL Server 8.0 or higher, as demonstrated in the example. The _id field must be manually defined if using MySQL Server 5.7.


Add or replace collection document

  • « Collection::add
  • Collection::__construct »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Add or replace collection document

Collection::addOrReplaceOne

(No version information available, might only be in Git)

Collection::addOrReplaceOne — Add or replace collection document

Beschreibung

public mysql_xdevapi\Collection::addOrReplaceOne ( string $id , string $doc ) : mysql_xdevapi\Result

Add a new document, or replace a document if it already exists.

Here are several scenarios for this method:

  • If neither the id or any unique key values conflict with any document in the collection, then the document is added.

  • If the id does not match any document but one or more unique key values conflict with a document in the collection, then an error is raised.

  • If id matches an existing document and no unique keys are defined for the collection, then the document is replaced.

  • If id matches an existing document, and either all unique keys in the replacement document match that same document or they don't conflict with any other documents in the collection, then the document is replaced.

  • If id matches an existing document and one or more unique keys match a different document from the collection, then an error is raised.

Parameter-Liste

id

This is the filter id. If this id or any other field that has a unique index already exists in the collection, then it will update the matching document instead.

By default, this id is automatically generated by MySQL Server when the record was added, and is referenced as a field named '_id'.

doc

This is the document to add or replace, which is a JSON string.

Rückgabewerte

A Result object.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::addOrReplaceOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Using add()
$result = $collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

// Using addOrReplaceOne()
// Note: we're passing in a known _id value here
$result = $collection->addOrReplaceOne('00005b6b53610000000000000056', '{"name": "Fred",  "age": 21, "job": "Construction"}');

?>


Collection constructor

  • « Collection::addOrReplaceOne
  • Collection::count »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Collection constructor

Collection::__construct

(No version information available, might only be in Git)

Collection::__construct — Collection constructor

Beschreibung

private mysql_xdevapi\Collection::__construct ( )

Construct a Collection object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::getOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 42, "job": "Butler"}')->execute();

// A unique _id is (by default, and recommended) generated by MySQL Server
// This retrieves the generated _id's; only one in this example, so $ids[0]
$ids        = $result->getGeneratedIds();
$alfreds_id = $ids[0];

// ...

print_r($alfreds_id);
print_r($collection->getOne($alfreds_id));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

00005b6b536100000000000000b1

Array
(
    [_id] => 00005b6b536100000000000000b1
    [age] => 42
    [job] => Butler
    [name] => Alfred
)


Get document count

  • « Collection::__construct
  • Collection::createIndex »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get document count

Collection::count

(No version information available, might only be in Git)

Collection::count — Get document count

Beschreibung

public mysql_xdevapi\Collection::count ( ) : int

This functionality is similar to a SELECT COUNT(*) SQL operation against the MySQL server for the current schema and collection. In other words, it counts the number of documents in the collection.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of documents in the collection.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::count() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

$result = $collection
  ->add(
  '{"name": "Bernie",
    "jobs": [
      {"title":"Cat Herder","Salary":42000},
      {"title":"Father","Salary":0}
    ],
    "hobbies": ["Sports","Making cupcakes"]}',
  '{"name": "Jane",
    "jobs": [
      {"title":"Scientist","Salary":18000},
      {"title":"Mother","Salary":0}
    ],
    "hobbies": ["Walking","Making pies"]}')
  ->execute();

var_dump($collection->count());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2)


Create collection index

  • « Collection::count
  • Collection::dropIndex »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Create collection index

Collection::createIndex

(No version information available, might only be in Git)

Collection::createIndex — Create collection index

Beschreibung

public mysql_xdevapi\Collection::createIndex ( string $index_name , string $index_desc_json ) : void

Creates an index on the collection.

An exception is thrown if an index with the same name already exists, or if index definition is not correctly formed.

Parameter-Liste

index_name

The name of the index that to create. This name must be a valid index name as accepted by the CREATE INDEX SQL query.

index_desc_json

Definition of the index to create. It contains an array of IndexField objects, and each object describes a single document member to include in the index, and an optional string for the type of index that might be INDEX (default) or SPATIAL.

A single IndexField description consists of the following fields:

  • field: string, the full document path to the document member or field to be indexed.

  • type: string, one of the supported SQL column types to map the field into. For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for indexing may be added.

  • required: bool, (optional) true if the field is required to exist in the document. Defaults to false, except for GEOJSON where it defaults to true.

  • options: integer, (optional) special option flags for use when decoding GEOJSON data.

  • srid: integer, (optional) srid value for use when decoding GEOJSON data.

It is an error to include other fields not described above in IndexDefinition or IndexField documents.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\Collection::createIndex() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

// Creating a text index
$collection->createIndex(
  'myindex1',
  '{"fields": [{
    "field": "$.name",
    "type": "TEXT(25)",
    "required": true}],
    "unique": false}'
);

// A spatial index
$collection->createIndex(
  'myindex2',
  '{"fields": [{
    "field": "$.home",
    "type": "GEOJSON",
    "required": true}],
    "type": "SPATIAL"}'
);

// Index with multiple fields
$collection->createIndex(
  'myindex3',
  '{"fields": [
    {
      "field": "$.name",
      "type": "TEXT(20)",
      "required": true
    },
    {
      "field": "$.age",
      "type": "INTEGER"
    },
    {
      "field": "$.job",
      "type": "TEXT(30)",
      "required": false
    }
  ],
  "unique": true
  }'
);


Drop collection index

  • « Collection::createIndex
  • Collection::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Drop collection index

Collection::dropIndex

(No version information available, might only be in Git)

Collection::dropIndex — Drop collection index

Beschreibung

public mysql_xdevapi\Collection::dropIndex ( string $index_name ) : bool

Drop a collection index.

This operation does not yield an error if the index does not exist, but false is returned in that case.

Parameter-Liste

index_name

Name of collection index to drop.

Rückgabewerte

true if the DROP INDEX operation succeeded, otherwise false.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::dropIndex() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

// ...

$collection = $schema->getCollection("people");

$collection->createIndex(
  'myindex',
  '{"fields": [{"field": "$.name", "type": "TEXT(25)", "required": true}], "unique": false}'
);

// ...

if ($collection->dropIndex('myindex')) {
    echo 'An index named 'myindex' was found, and dropped.';
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

An index named 'myindex' was found, and dropped.


Check if collection exists in database

  • « Collection::dropIndex
  • Collection::find »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Check if collection exists in database

Collection::existsInDatabase

(No version information available, might only be in Git)

Collection::existsInDatabase — Check if collection exists in database

Beschreibung

public mysql_xdevapi\Collection::existsInDatabase ( ) : bool

Checks if the Collection object refers to a collection in the database (schema).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if collection exists in the database, else false if it does not.

A table defined with two columns (doc and _id) is considered a collection, and a third _json_schema column as of MySQL 8.0.21. Adding an additional column means existsInDatabase() will no longer see it as a collection.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::existsInDatabase() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

// ...

$collection = $schema->getCollection("people");

// ...

if (!$collection->existsInDatabase()) {
    echo "The collection no longer exists in the database named addressbook. What happened?";
}
?>


Search for document

  • « Collection::existsInDatabase
  • Collection::getName »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Search for document

Collection::find

(No version information available, might only be in Git)

Collection::find — Search for document

Beschreibung

public mysql_xdevapi\Collection::find ( string $search_condition = ? ) : mysql_xdevapi\CollectionFind

Search a database collection for a document or set of documents. The found documents are returned as a CollectionFind object is to further modify or fetch results from.

Parameter-Liste

search_condition

Although optional, normally a condition is defined to limit the results to a subset of documents.

Multiple elements might build the condition and the syntax supports parameter binding. The expression used as search condition must be a valid SQL expression. If no search condition is provided (field empty) then find('true') is assumed.

Rückgabewerte

A CollectionFind object to verify the operation, or fetch the found documents.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::find() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred",     "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob",        "age": 19, "job": "Swimmer"}')->execute();
$collection->add('{"name": "Fred",       "age": 20, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma",      "age": 21, "job": "Teacher"}')->execute();
$collection->add('{"name": "Suki",       "age": 22, "job": "Teacher"}')->execute();

$find   = $collection->find('job LIKE :job AND age > :age');
$result = $find
  ->bind(['job' => 'Teacher', 'age' => 20])
  ->sort('age DESC')
  ->limit(2)
  ->execute();

print_r($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b536100000000000000a8
            [age] => 22
            [job] => Teacher
            [name] => Suki
        )
    [1] => Array
        (
            [_id] => 00005b6b536100000000000000a7
            [age] => 21
            [job] => Teacher
            [name] => Wilma
        )
)


Get collection name

  • « Collection::find
  • Collection::getOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get collection name

Collection::getName

(No version information available, might only be in Git)

Collection::getName — Get collection name

Beschreibung

public mysql_xdevapi\Collection::getName ( ) : string

Retrieve the collection's name.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The collection name, as a string.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::getName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

// ...

var_dump($collection->getName());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(6) "people"


Get one document

  • « Collection::getName
  • Collection::getSchema »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get one document

Collection::getOne

(No version information available, might only be in Git)

Collection::getOne — Get one document

Beschreibung

public mysql_xdevapi\Collection::getOne ( string $id ) : Document

Fetches one document from the collection.

This is a shortcut for: Collection.find("_id = :id").bind("id", id).execute().fetchOne();

Parameter-Liste

id

The document _id in the collection.

Rückgabewerte

The collection object, or null if the _id does not match a document.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::getOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 42, "job": "Butler"}')->execute();

// A unique _id is (by default, and recommended) generated by MySQL Server
// This retrieves the generated _id's; only one in this example, so $ids[0]
$ids        = $result->getGeneratedIds();
$alfreds_id = $ids[0];

// ...

print_r($alfreds_id);
print_r($collection->getOne($alfreds_id));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

00005b6b536100000000000000b1

Array
(
    [_id] => 00005b6b536100000000000000b1
    [age] => 42
    [job] => Butler
    [name] => Alfred
)


Get schema object

  • « Collection::getOne
  • Collection::getSession »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get schema object

Collection::getSchema

(No version information available, might only be in Git)

Collection::getSchema — Get schema object

Beschreibung

public mysql_xdevapi\Collection::getSchema ( ) : Schema Object

Retrieve the schema object that contains the collection.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The schema object on success, or null if the object cannot be retrieved for the given collection.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

var_dump($collection->getSchema());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(mysql_xdevapi\Schema)#9 (1) {
  ["name"]=>
  string(11) "addressbook"
}


Get session object

  • « Collection::getSchema
  • Collection::modify »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get session object

Collection::getSession

(No version information available, might only be in Git)

Collection::getSession — Get session object

Beschreibung

public mysql_xdevapi\Collection::getSession ( ) : Session

Get a new Session object from the Collection object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Session object.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::getSession() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

// ...

$newsession = $collection->getSession();

var_dump($session);
var_dump($newsession);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(mysql_xdevapi\Session)#1 (0) {
}
object(mysql_xdevapi\Session)#4 (0) {
}


Modify collection documents

  • « Collection::getSession
  • Collection::remove »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Modify collection documents

Collection::modify

(No version information available, might only be in Git)

Collection::modify — Modify collection documents

Beschreibung

public mysql_xdevapi\Collection::modify ( string $search_condition ) : mysql_xdevapi\CollectionModify

Modify collections that meet specific search conditions. Multiple operations are allowed, and parameter binding is supported.

Parameter-Liste

search_condition

Must be a valid SQL expression used to match the documents to modify. This expression might be as simple as true, which matches all documents, or it might use functions and operators such as 'CAST(_id AS SIGNED) >= 10', 'age MOD 2 = 0 OR age MOD 3 = 0', or '_id IN ["2","5","7","10"]'.

Rückgabewerte

If the operation is not executed, then the function will return a Modify object that can be used to add additional modify operations.

If the modify operation is executed, then the returned object will contain the result of the operation.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::modify() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob",    "age": 19, "job": "Painter"}')->execute();

// Add two new jobs for all Painters: Artist and Crafter
$collection
  ->modify("job in ('Butler', 'Painter')")
  ->arrayAppend('job', 'Artist')
  ->arrayAppend('job', 'Crafter')
  ->execute();

// Remove the 'beer' field from all documents with the age 21
$collection
  ->modify('age < 21')
  ->unset(['beer'])
  ->execute();
?>


Remove collection documents

  • « Collection::modify
  • Collection::removeOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Remove collection documents

Collection::remove

(No version information available, might only be in Git)

Collection::remove — Remove collection documents

Beschreibung

public mysql_xdevapi\Collection::remove ( string $search_condition ) : mysql_xdevapi\CollectionRemove

Remove collections that meet specific search conditions. Multiple operations are allowed, and parameter binding is supported.

Parameter-Liste

search_condition

Must be a valid SQL expression used to match the documents to modify. This expression might be as simple as true, which matches all documents, or it might use functions and operators such as 'CAST(_id AS SIGNED) >= 10', 'age MOD 2 = 0 OR age MOD 3 = 0', or '_id IN ["2","5","7","10"]'.

Rückgabewerte

If the operation is not executed, then the function will return a Remove object that can be used to add additional remove operations.

If the remove operation is executed, then the returned object will contain the result of the operation.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::remove() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob",    "age": 19, "job": "Painter"}')->execute();

// Remove all painters
$collection
  ->remove("job in ('Painter')")
  ->execute();

// Remove the oldest butler
$collection
  ->remove("job in ('Butler')")
  ->sort('age desc')
  ->limit(1)
  ->execute();

// Remove record with lowest age
$collection
  ->remove('true')
  ->sort('age desc')
  ->limit(1)
  ->execute();
?>


Remove one collection document

  • « Collection::remove
  • Collection::replaceOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Remove one collection document

Collection::removeOne

(No version information available, might only be in Git)

Collection::removeOne — Remove one collection document

Beschreibung

public mysql_xdevapi\Collection::removeOne ( string $id ) : mysql_xdevapi\Result

Remove one document from the collection with the correspending ID. This is a shortcut for Collection.remove("_id = :id").bind("id", id).execute().

Parameter-Liste

id

The ID of the collection document to remove. Typically this is the _id that was generated by MySQL Server when the record was added.

Rückgabewerte

A Result object that can be used to query the number of affected items or the number warnings generated by the operation.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::removeOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();

// Normally the _id is known by other means,
// but for this example let's fetch the generated id and use it
$ids       = $result->getGeneratedIds();
$alfred_id = $ids[0];

$result = $collection->removeOne($alfred_id);

if(!$result->getAffectedItemsCount()) {
    echo "Alfred with id $alfred_id was not removed.";
} else {
    echo "Goodbye, Alfred, you can take _id $alfred_id with you.";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Goodbye, Alfred, you can take _id 00005b6b536100000000000000cb with you.


Replace one collection document

  • « Collection::removeOne
  • mysql_xdevapi\CollectionAdd »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Replace one collection document

Collection::replaceOne

(No version information available, might only be in Git)

Collection::replaceOne — Replace one collection document

Beschreibung

public mysql_xdevapi\Collection::replaceOne ( string $id , string $doc ) : mysql_xdevapi\Result

Updates (or replaces) the document identified by ID, if it exists.

Parameter-Liste

id

ID of the document to replace or update. Typically this is the _id that was generated by MySQL Server when the record was added.

doc

Collection document to update or replace the document matching the id parameter.

This document can be either a document object or a valid JSON string describing the new document.

Rückgabewerte

A Result object that can be used to query the number of affected items and the number warnings generated by the operation.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::replaceOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();

// Normally the _id is known by other means,
// but for this example let's fetch the generated id and use it
$ids       = $result->getGeneratedIds();
$alfred_id = $ids[0];

// ...

$alfred = $collection->getOne($alfred_id);
$alfred['age'] = 81;
$alfred['job'] = 'Guru';

$collection->replaceOne($alfred_id, $alfred);

?>


CollectionAdd class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\CollectionAdd implements mysql_xdevapi\Executable {
/* Methoden */
public execute ( ) : mysql_xdevapi\Result
}

Inhaltsverzeichnis

  • CollectionAdd::__construct — CollectionAdd constructor
  • CollectionAdd::execute — Execute the statement


CollectionAdd constructor

  • « mysql_xdevapi\CollectionAdd
  • CollectionAdd::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionAdd
  • CollectionAdd constructor

CollectionAdd::__construct

(No version information available, might only be in Git)

CollectionAdd::__construct — CollectionAdd constructor

Beschreibung

private mysql_xdevapi\CollectionAdd::__construct ( )

Use to add a document to a collection; called from a Collection object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionAdd::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Add two documents
$collection
  ->add('{"name": "Fred",  "age": 21, "job": "Construction"}')
  ->execute();

$collection
  ->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')
  ->execute();

// Add two documents using a single JSON object
$result = $collection
  ->add(
    '{"name": "Bernie",
      "jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
      "hobbies": ["Sports","Making cupcakes"]}',
    '{"name": "Jane",
      "jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
      "hobbies": ["Walking","Making pies"]}')
  ->execute();

// Fetch a list of generated ID's from the last add()
$ids = $result->getGeneratedIds();
print_r($ids);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)

Anmerkungen

Hinweis:

A unique _id is generated by MySQL Server 8.0 or higher, as demonstrated in the example. The _id field must be manually defined if using MySQL Server 5.7.


Execute the statement

  • « CollectionAdd::__construct
  • mysql_xdevapi\CollectionFind »
  • PHP Manual
  • mysql_xdevapi\CollectionAdd
  • Execute the statement

CollectionAdd::execute

(No version information available, might only be in Git)

CollectionAdd::execute — Execute the statement

Beschreibung

public mysql_xdevapi\CollectionAdd::execute ( ) : mysql_xdevapi\Result

The execute method is required to send the CRUD operation request to the MySQL server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Result object that can be used to verify the status of the operation, such as the number of affected rows.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionAdd::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Add two documents
$collection
  ->add('{"name": "Fred",  "age": 21, "job": "Construction"}')
  ->execute();

$collection
  ->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')
  ->execute();

// Add two documents using a single JSON object
$result = $collection
  ->add(
    '{"name": "Bernie",
      "jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
      "hobbies": ["Sports","Making cupcakes"]}',
    '{"name": "Jane",
      "jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
      "hobbies": ["Walking","Making pies"]}')
  ->execute();

// Fetch a list of generated ID's from the last add()
$ids = $result->getGeneratedIds();
print_r($ids);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)


CollectionFind class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\CollectionFind implements mysql_xdevapi\Executable , mysql_xdevapi\CrudOperationBindable , mysql_xdevapi\CrudOperationLimitable , mysql_xdevapi\CrudOperationSortable {
/* Methoden */
public bind ( array $placeholder_values ) : mysql_xdevapi\CollectionFind
public execute ( ) : mysql_xdevapi\DocResult
public fields ( string $projection ) : mysql_xdevapi\CollectionFind
public groupBy ( string $sort_expr ) : mysql_xdevapi\CollectionFind
public having ( string $sort_expr ) : mysql_xdevapi\CollectionFind
public limit ( int $rows ) : mysql_xdevapi\CollectionFind
public lockExclusive ( int $lock_waiting_option = ? ) : mysql_xdevapi\CollectionFind
public lockShared ( int $lock_waiting_option = ? ) : mysql_xdevapi\CollectionFind
public offset ( int $position ) : mysql_xdevapi\CollectionFind
public sort ( string $sort_expr ) : mysql_xdevapi\CollectionFind
}

Inhaltsverzeichnis

  • CollectionFind::bind — Bind value to query placeholder
  • CollectionFind::__construct — CollectionFind constructor
  • CollectionFind::execute — Execute the statement
  • CollectionFind::fields — Set document field filter
  • CollectionFind::groupBy — Set grouping criteria
  • CollectionFind::having — Set condition for aggregate functions
  • CollectionFind::limit — Limit number of returned documents
  • CollectionFind::lockExclusive — Execute operation with EXCLUSIVE LOCK
  • CollectionFind::lockShared — Execute operation with SHARED LOCK
  • CollectionFind::offset — Skip given number of elements to be returned
  • CollectionFind::sort — Set the sorting criteria


Bind value to query placeholder

  • « mysql_xdevapi\CollectionFind
  • CollectionFind::__construct »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Bind value to query placeholder

CollectionFind::bind

(No version information available, might only be in Git)

CollectionFind::bind — Bind value to query placeholder

Beschreibung

public mysql_xdevapi\CollectionFind::bind ( array $placeholder_values ) : mysql_xdevapi\CollectionFind

It allows the user to bind a parameter to the placeholder in the search condition of the find operation. The placeholder has the form of :NAME where ':' is a common prefix that must always exists before any NAME, NAME is the actual name of the placeholder. The bind function accepts a list of placeholders if multiple entities have to be substituted in the search condition.

Parameter-Liste

placeholder_values

Values to substitute in the search condition; multiple values are allowed and are passed as an array where "PLACEHOLDER_NAME => PLACEHOLDER_VALUE".

Rückgabewerte

A CollectionFind object, or chain with execute() to return a Result object.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionFind::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$result = $create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->execute();

var_dump($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000cf"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
}


CollectionFind constructor

  • « CollectionFind::bind
  • CollectionFind::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • CollectionFind constructor

CollectionFind::__construct

(No version information available, might only be in Git)

CollectionFind::__construct — CollectionFind constructor

Beschreibung

private mysql_xdevapi\CollectionFind::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 CollectionFind example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$result = $create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->execute();

var_dump($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000cf"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
}


Execute the statement

  • « CollectionFind::__construct
  • CollectionFind::fields »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Execute the statement

CollectionFind::execute

(No version information available, might only be in Git)

CollectionFind::execute — Execute the statement

Beschreibung

public mysql_xdevapi\CollectionFind::execute ( ) : mysql_xdevapi\DocResult

Execute the find operation; this functionality allows for method chaining.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A DocResult object that to either fetch results from, or to query the status of the operation.

Beispiele

Beispiel #1 CollectionFind example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->execute();

var_dump($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000cf"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
}


Set document field filter

  • « CollectionFind::execute
  • CollectionFind::groupBy »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Set document field filter

CollectionFind::fields

(No version information available, might only be in Git)

CollectionFind::fields — Set document field filter

Beschreibung

public mysql_xdevapi\CollectionFind::fields ( string $projection ) : mysql_xdevapi\CollectionFind

Defined the columns for the query to return. If not defined then all columns are used.

Parameter-Liste

projection

Can either be a single string or an array of string, those strings are identifying the columns that have to be returned for each document that match the search condition.

Rückgabewerte

A CollectionFind object that can be used for further processing.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionFind::fields() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->fields('name')
  ->execute();

var_dump($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  array(1) {
    ["name"]=>
    string(6) "Alfred"
  }
}


Set grouping criteria

  • « CollectionFind::fields
  • CollectionFind::having »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Set grouping criteria

CollectionFind::groupBy

(No version information available, might only be in Git)

CollectionFind::groupBy — Set grouping criteria

Beschreibung

public mysql_xdevapi\CollectionFind::groupBy ( string $sort_expr ) : mysql_xdevapi\CollectionFind

This function can be used to group the result-set by one more columns, frequently this is used with aggregate functions like COUNT,MAX,MIN,SUM etc.

Parameter-Liste

sort_expr

The columns or columns that have to be used for the group operation, this can either be a single string or an array of string arguments, one for each column.

Rückgabewerte

A CollectionFind that can be used for further processing

Beispiele

Beispiel #1 mysql_xdevapi\CollectionFind::groupBy() example

<?php

//Assuming $coll is a valid Collection object

//Extract all the documents from the Collection and group the results by the 'name' field
$res = $coll->find()->groupBy('name')->execute();

?>


Set condition for aggregate functions

  • « CollectionFind::groupBy
  • CollectionFind::limit »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Set condition for aggregate functions

CollectionFind::having

(No version information available, might only be in Git)

CollectionFind::having — Set condition for aggregate functions

Beschreibung

public mysql_xdevapi\CollectionFind::having ( string $sort_expr ) : mysql_xdevapi\CollectionFind

This function can be used after the 'field' operation in order to make a selection on the documents to extract.

Parameter-Liste

sort_expr

This must be a valid SQL expression, the use of aggreate functions is allowed

Rückgabewerte

CollectionFind object that can be used for further processing

Beispiele

Beispiel #1 mysql_xdevapi\CollectionFind::having() example

<?php

//Assuming $coll is a valid Collection object

//Find all the documents for which the 'age' is greather than 40,
//Only the columns 'name' and 'age' are returned in the Result object
$res = $coll->find()->fields(['name','age'])->having('age > 40')->execute();

?>


Limit number of returned documents

  • « CollectionFind::having
  • CollectionFind::lockExclusive »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Limit number of returned documents

CollectionFind::limit

(No version information available, might only be in Git)

CollectionFind::limit — Limit number of returned documents

Beschreibung

public mysql_xdevapi\CollectionFind::limit ( int $rows ) : mysql_xdevapi\CollectionFind

Set the maximum number of documents to return.

Parameter-Liste

rows

Maximum number of documents.

Rückgabewerte

A CollectionFind object that can be used for additional processing; chain with the execute() method to return a DocResult object.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionFind::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();
$create
  ->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->sort('age desc')
  ->limit(1)
  ->execute();

var_dump($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000f3"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Execute operation with EXCLUSIVE LOCK

  • « CollectionFind::limit
  • CollectionFind::lockShared »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Execute operation with EXCLUSIVE LOCK

CollectionFind::lockExclusive

(No version information available, might only be in Git)

CollectionFind::lockExclusive — Execute operation with EXCLUSIVE LOCK

Beschreibung

public mysql_xdevapi\CollectionFind::lockExclusive ( int $lock_waiting_option = ? ) : mysql_xdevapi\CollectionFind

Lock exclusively the document, other transactions are blocked from updating the document until the document is locked While the document is locked, other transactions are blocked from updating those docs, from doing SELECT ... LOCK IN SHARE MODE, or from reading the data in certain transaction isolation levels. Consistent reads ignore any locks set on the records that exist in the read view.

This feature is directly useful with the modify() command, to avoid concurrency problems. Basically, it serializes access to a row through row locking

Parameter-Liste

lock_waiting_option

Optional waiting option. By default it is MYSQLX_LOCK_DEFAULT. Valid values are these constants:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Rückgabewerte

Returns a CollectionFind object that can be used for further processing

Beispiele

Beispiel #1 mysql_xdevapi\CollectionFind::lockExclusive() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$session->startTransaction();

$result = $collection
  ->find("age > 50")
  ->lockExclusive()
  ->execute();

// ... do an operation on the object

// Complete the transaction and unlock the document
$session->commit();
?>


Execute operation with SHARED LOCK

  • « CollectionFind::lockExclusive
  • CollectionFind::offset »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Execute operation with SHARED LOCK

CollectionFind::lockShared

(No version information available, might only be in Git)

CollectionFind::lockShared — Execute operation with SHARED LOCK

Beschreibung

public mysql_xdevapi\CollectionFind::lockShared ( int $lock_waiting_option = ? ) : mysql_xdevapi\CollectionFind

Allows to share the documents between multiple transactions which are locking in shared mode.

Other sessions can read the rows, but cannot modify them until your transaction commits.

If any of these rows were changed by another transaction that has not yet committed,

your query waits until that transaction ends and then uses the latest values.

Parameter-Liste

lock_waiting_option

Optional waiting option. By default it is MYSQLX_LOCK_DEFAULT. Valid values are these constants:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Rückgabewerte

A CollectionFind object that can be used for further processing

Beispiele

Beispiel #1 mysql_xdevapi\CollectionFind::lockShared() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$session->startTransaction();

$result = $collection
  ->find("age > 50")
  ->lockShared()
  ->execute();

// ... read the object in shared mode

// Complete the transaction and unlock the document
$session->commit();
?>


Skip given number of elements to be returned

  • « CollectionFind::lockShared
  • CollectionFind::sort »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Skip given number of elements to be returned

CollectionFind::offset

(No version information available, might only be in Git)

CollectionFind::offset — Skip given number of elements to be returned

Beschreibung

public mysql_xdevapi\CollectionFind::offset ( int $position ) : mysql_xdevapi\CollectionFind

Skip (offset) these number of elements that otherwise would be returned by the find operation. Use with the limit() method.

Defining an offset larger than the result set size results in an empty set.

Parameter-Liste

position

Number of elements to skip for the limit() operation.

Rückgabewerte

A CollectionFind object that can be used for additional processing.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionFind::offset() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();
$create
  ->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find()
  ->sort('age asc')
  ->offset(1)
  ->limit(1)
  ->execute();

var_dump($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000f3"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Set the sorting criteria

  • « CollectionFind::offset
  • mysql_xdevapi\CollectionModify »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Set the sorting criteria

CollectionFind::sort

(No version information available, might only be in Git)

CollectionFind::sort — Set the sorting criteria

Beschreibung

public mysql_xdevapi\CollectionFind::sort ( string $sort_expr ) : mysql_xdevapi\CollectionFind

Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Parameter-Liste

sort_expr

One or more sorting expressions can be provided. The evaluation is from left to right, and each expression is separated by a comma.

Rückgabewerte

A CollectionFind object that can be used to execute the command, or to add additional operations.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionFind::sort() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
  ->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
  ->execute();
$create
  ->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
  ->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
  ->find()
  ->sort('job desc', 'age asc')
  ->execute();

var_dump($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000106"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
  [1]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000107"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


CollectionModify class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\CollectionModify implements mysql_xdevapi\Executable , mysql_xdevapi\CrudOperationBindable , mysql_xdevapi\CrudOperationLimitable , mysql_xdevapi\CrudOperationSkippable , mysql_xdevapi\CrudOperationSortable {
/* Methoden */
public arrayAppend ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify
public arrayInsert ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify
public bind ( array $placeholder_values ) : mysql_xdevapi\CollectionModify
public execute ( ) : mysql_xdevapi\Result
public limit ( int $rows ) : mysql_xdevapi\CollectionModify
public patch ( string $document ) : mysql_xdevapi\CollectionModify
public replace ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify
public set ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify
public skip ( int $position ) : mysql_xdevapi\CollectionModify
public sort ( string $sort_expr ) : mysql_xdevapi\CollectionModify
public unset ( array $fields ) : mysql_xdevapi\CollectionModify
}

Inhaltsverzeichnis

  • CollectionModify::arrayAppend — Append element to an array field
  • CollectionModify::arrayInsert — Insert element into an array field
  • CollectionModify::bind — Bind value to query placeholder
  • CollectionModify::__construct — CollectionModify constructor
  • CollectionModify::execute — Execute modify operation
  • CollectionModify::limit — Limit number of modified documents
  • CollectionModify::patch — Patch document
  • CollectionModify::replace — Replace document field
  • CollectionModify::set — Set document attribute
  • CollectionModify::skip — Skip elements
  • CollectionModify::sort — Set the sorting criteria
  • CollectionModify::unset — Unset the value of document fields


Append element to an array field

  • « mysql_xdevapi\CollectionModify
  • CollectionModify::arrayInsert »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Append element to an array field

CollectionModify::arrayAppend

(No version information available, might only be in Git)

CollectionModify::arrayAppend — Append element to an array field

Beschreibung

public mysql_xdevapi\CollectionModify::arrayAppend ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify

Add an element to a document's field, as multiple elements of a field are represented as an array. Unlike arrayInsert(), arrayAppend() always appends the new element at the end of the array, whereas arrayInsert() can define the location.

Parameter-Liste

collection_field

The identifier of the field where the new element is inserted.

expression_or_literal

The new element to insert at the end of the document field array.

Rückgabewerte

A CollectionModify object that can be used to execute the command, or to add additional operations.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionModify::arrayAppend() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
  ->add(
  '{"name":   "Bernie",
    "traits": ["Friend", "Brother", "Human"]}')
  ->execute();

$collection
  ->modify("name in ('Bernie', 'Jane')")
  ->arrayAppend('traits', 'Happy')
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000010c
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                    [3] => Happy
                )
        )
)


Insert element into an array field

  • « CollectionModify::arrayAppend
  • CollectionModify::bind »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Insert element into an array field

CollectionModify::arrayInsert

(No version information available, might only be in Git)

CollectionModify::arrayInsert — Insert element into an array field

Beschreibung

public mysql_xdevapi\CollectionModify::arrayInsert ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify

Add an element to a document's field, as multiple elements of a field are represented as an array. Unlike arrayAppend(), arrayInsert() allows you to specify where the new element is inserted by defining which item it is after, whereas arrayAppend() always appends the new element at the end of the array.

Parameter-Liste

collection_field

Identify the item in the array that the new element is inserted after. The format of this parameter is FIELD_NAME[ INDEX ] where FIELD_NAME is the name of the document field to remove the element from, and INDEX is the INDEX of the element within the field.

The INDEX field is zero based, so the leftmost item from the array has an index of 0.

expression_or_literal

The new element to insert after FIELD_NAME[ INDEX ]

Rückgabewerte

A CollectionModify object that can be used to execute the command, or to add additional operations

Beispiele

Beispiel #1 mysql_xdevapi\CollectionModify::arrayInsert() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
  ->add(
  '{"name":   "Bernie",
    "traits": ["Friend", "Brother", "Human"]}')
  ->execute();

$collection
  ->modify("name in ('Bernie', 'Jane')")
  ->arrayInsert('traits[1]', 'Happy')
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000010d
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Happy
                    [2] => Brother
                    [3] => Human
                )
        )
)


Bind value to query placeholder

  • « CollectionModify::arrayInsert
  • CollectionModify::__construct »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Bind value to query placeholder

CollectionModify::bind

(No version information available, might only be in Git)

CollectionModify::bind — Bind value to query placeholder

Beschreibung

public mysql_xdevapi\CollectionModify::bind ( array $placeholder_values ) : mysql_xdevapi\CollectionModify

Bind a parameter to the placeholder in the search condition of the modify operation.

The placeholder has the form of :NAME where ':' is a common prefix that must always exists before any NAME where NAME is the name of the placeholder. The bind method accepts a list of placeholders if multiple entities have to be substituted in the search condition of the modify operation.

Parameter-Liste

placeholder_values

Placeholder values to substitute in the search condition. Multiple values are allowed and have to be passed as an array of mappings PLACEHOLDER_NAME->PLACEHOLDER_VALUE.

Rückgabewerte

A CollectionModify object that can be used to execute the command, or to add additional operations.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionModify::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
  ->add(
  '{"name":   "Bernie",
    "traits": ["Friend", "Brother", "Human"]}')
  ->execute();

$collection
  ->modify("name = :name")
  ->bind(['name' => 'Bernie'])
  ->arrayAppend('traits', 'Happy')
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b53610000000000000110
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                    [3] => Happy
                )
        )
)


CollectionModify constructor

  • « CollectionModify::bind
  • CollectionModify::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • CollectionModify constructor

CollectionModify::__construct

(No version information available, might only be in Git)

CollectionModify::__construct — CollectionModify constructor

Beschreibung

private mysql_xdevapi\CollectionModify::__construct ( )

Modify (update) a collection, and is instantiated by the Collection::modify() method.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionModify::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
  ->add(
  '{"name":   "Bernie",
    "traits": ["Friend", "Brother", "Human"]}')
  ->execute();

$collection
  ->modify("name in ('Bernie', 'Jane')")
  ->arrayAppend('traits', 'Happy')
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000010c
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                    [3] => Happy
                )
        )
)


Execute modify operation

  • « CollectionModify::__construct
  • CollectionModify::limit »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Execute modify operation

CollectionModify::execute

(No version information available, might only be in Git)

CollectionModify::execute — Execute modify operation

Beschreibung

public mysql_xdevapi\CollectionModify::execute ( ) : mysql_xdevapi\Result

The execute method is required to send the CRUD operation request to the MySQL server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Result object that can be used to verify the status of the operation, such as the number of affected rows.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionModify::execute() example

<?php

/* ... */

?>


Limit number of modified documents

  • « CollectionModify::execute
  • CollectionModify::patch »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Limit number of modified documents

CollectionModify::limit

(No version information available, might only be in Git)

CollectionModify::limit — Limit number of modified documents

Beschreibung

public mysql_xdevapi\CollectionModify::limit ( int $rows ) : mysql_xdevapi\CollectionModify

Limit the number of documents modified by this operation. Optionally combine with skip() to define an offset value.

Parameter-Liste

rows

The maximum number of documents to modify.

Rückgabewerte

A CollectionModify object.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionModify::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Fred",  "age": 21, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();
$collection->add('{"name": "Betty", "age": 24, "job": "Teacher"}')->execute();

$collection
  ->modify("job = :job")
  ->bind(['job' => 'Teacher'])
  ->set('job', 'Principal')
  ->limit(1)
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b53610000000000000118
            [age] => 21
            [job] => Construction
            [name] => Fred
        )
    [1] => Array
        (
            [_id] => 00005b6b53610000000000000119
            [age] => 23
            [job] => Principal
            [name] => Wilma
        )
    [2] => Array
        (
            [_id] => 00005b6b5361000000000000011a
            [age] => 24
            [job] => Teacher
            [name] => Betty
        )
)


Patch document

  • « CollectionModify::limit
  • CollectionModify::replace »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Patch document

CollectionModify::patch

(No version information available, might only be in Git)

CollectionModify::patch — Patch document

Beschreibung

public mysql_xdevapi\CollectionModify::patch ( string $document ) : mysql_xdevapi\CollectionModify

Takes a patch object and applies it on one or more documents, and can update multiple document properties.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

document

A document with the properties to apply to the matching documents.

Rückgabewerte

A CollectionModify object.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionModify::patch() example

<?php

$res = $coll->modify('"Programmatore" IN job')->patch('{"Hobby" : "Programmare"}')->execute();

?>


Replace document field

  • « CollectionModify::patch
  • CollectionModify::set »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Replace document field

CollectionModify::replace

(No version information available, might only be in Git)

CollectionModify::replace — Replace document field

Beschreibung

public mysql_xdevapi\CollectionModify::replace ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify

Replace (update) a given field value with a new one.

Parameter-Liste

collection_field

The document path of the item to set.

expression_or_literal

The value to set on the specified attribute.

Rückgabewerte

A CollectionModify object.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionModify::replace() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
  ->add(
  '{"name":   "Bernie",
    "traits": ["Friend", "Brother", "Human"]}')
  ->execute();

$collection
  ->modify("name = :name")
  ->bind(['name' => 'Bernie'])
  ->replace("name", "Bern")
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000011b
            [name] => Bern
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                )
        )
)


Set document attribute

  • « CollectionModify::replace
  • CollectionModify::skip »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Set document attribute

CollectionModify::set

(No version information available, might only be in Git)

CollectionModify::set — Set document attribute

Beschreibung

public mysql_xdevapi\CollectionModify::set ( string $collection_field , string $expression_or_literal ) : mysql_xdevapi\CollectionModify

Sets or updates attributes on documents in a collection.

Parameter-Liste

collection_field

The document path (name) of the item to set.

expression_or_literal

The value to set it to.

Rückgabewerte

A CollectionModify object.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionModify::set() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
  ->add(
  '{"name":   "Bernie",
    "traits": ["Friend", "Brother", "Human"]}')
  ->execute();

$collection
  ->modify("name = :name")
  ->bind(['name' => 'Bernie'])
  ->set("name", "Bern")
  ->execute();

$result = $collection
  ->find()
  ->execute();

print_r($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b53610000000000000111
            [name] => Bern
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                )
        )
)


Skip elements

  • « CollectionModify::set
  • CollectionModify::sort »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Skip elements

CollectionModify::skip

(No version information available, might only be in Git)

CollectionModify::skip — Skip elements

Beschreibung

public mysql_xdevapi\CollectionModify::skip ( int $position ) : mysql_xdevapi\CollectionModify

Skip the first N elements that would otherwise be returned by a find operation. If the number of elements skipped is larger than the size of the result set, then the find operation returns an empty set.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

position

Number of elements to skip.

Rückgabewerte

A CollectionModify object to use for further processing.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionModify::skip() example

<?php

$coll->modify('age > :age')->sort('age desc')->unset(['age'])->bind(['age' => 20])->limit(4)->skip(1)->execute();

?>


Set the sorting criteria

  • « CollectionModify::skip
  • CollectionModify::unset »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Set the sorting criteria

CollectionModify::sort

(No version information available, might only be in Git)

CollectionModify::sort — Set the sorting criteria

Beschreibung

public mysql_xdevapi\CollectionModify::sort ( string $sort_expr ) : mysql_xdevapi\CollectionModify

Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

sort_expr

One or more sorting expression can be provided, the evaluation of these will be from the leftmost to the rightmost, each expression must be separated by a comma.

Rückgabewerte

CollectionModify object that can be used for further processing.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionModify::sort() example

<?php

$res = $coll->modify('true')->sort('name desc', 'age asc')->limit(4)->set('Married', 'NO')->execute();

?>


Unset the value of document fields

  • « CollectionModify::sort
  • mysql_xdevapi\CollectionRemove »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Unset the value of document fields

CollectionModify::unset

(No version information available, might only be in Git)

CollectionModify::unset — Unset the value of document fields

Beschreibung

public mysql_xdevapi\CollectionModify::unset ( array $fields ) : mysql_xdevapi\CollectionModify

Removes attributes from documents in a collection.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

fields

The attributes to remove from documents in a collection.

Rückgabewerte

CollectionModify object that can be used for further processing.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionModify::unset() example

<?php

$res = $coll->modify('job like :job_name')->unset(["age", "name"])->bind(['job_name' => 'Plumber'])->execute();

?>


CollectionRemove class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\CollectionRemove implements mysql_xdevapi\Executable , mysql_xdevapi\CrudOperationBindable , mysql_xdevapi\CrudOperationLimitable , mysql_xdevapi\CrudOperationSortable {
/* Methoden */
public bind ( array $placeholder_values ) : mysql_xdevapi\CollectionRemove
public execute ( ) : mysql_xdevapi\Result
public limit ( int $rows ) : mysql_xdevapi\CollectionRemove
public sort ( string $sort_expr ) : mysql_xdevapi\CollectionRemove
}

Inhaltsverzeichnis

  • CollectionRemove::bind — Bind value to placeholder
  • CollectionRemove::__construct — CollectionRemove constructor
  • CollectionRemove::execute — Execute remove operation
  • CollectionRemove::limit — Limit number of documents to remove
  • CollectionRemove::sort — Set the sorting criteria


Bind value to placeholder

  • « mysql_xdevapi\CollectionRemove
  • CollectionRemove::__construct »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Bind value to placeholder

CollectionRemove::bind

(No version information available, might only be in Git)

CollectionRemove::bind — Bind value to placeholder

Beschreibung

public mysql_xdevapi\CollectionRemove::bind ( array $placeholder_values ) : mysql_xdevapi\CollectionRemove

Bind a parameter to the placeholder in the search condition of the remove operation.

The placeholder has the form of :NAME where ':' is a common prefix that must always exists before any NAME where NAME is the name of the placeholder. The bind method accepts a list of placeholders if multiple entities have to be substituted in the search condition of the remove operation.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

placeholder_values

Placeholder values to substitute in the search condition. Multiple values are allowed and have to be passed as an array of mappings PLACEHOLDER_NAME->PLACEHOLDER_VALUE.

Rückgabewerte

A CollectionRemove object that can be used to execute the command, or to add additional operations.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionRemove::bind() example

<?php

$res = $coll->remove('age > :age_from and age < :age_to')->bind(['age_from' => 20, 'age_to' => 50])->limit(7)->execute();

?>


CollectionRemove constructor

  • « CollectionRemove::bind
  • CollectionRemove::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • CollectionRemove constructor

CollectionRemove::__construct

(No version information available, might only be in Git)

CollectionRemove::__construct — CollectionRemove constructor

Beschreibung

private mysql_xdevapi\CollectionRemove::__construct ( )

Remove collection documents, and is instantiated by the Collection::remove() method.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\Collection::remove() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob",    "age": 19, "job": "Painter"}')->execute();

// Remove all painters
$collection
  ->remove("job in ('Painter')")
  ->execute();

// Remove the oldest butler
$collection
  ->remove("job in ('Butler')")
  ->sort('age desc')
  ->limit(1)
  ->execute();

// Remove record with lowest age
$collection
  ->remove('true')
  ->sort('age desc')
  ->limit(1)
  ->execute();
?>


Execute remove operation

  • « CollectionRemove::__construct
  • CollectionRemove::limit »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Execute remove operation

CollectionRemove::execute

(No version information available, might only be in Git)

CollectionRemove::execute — Execute remove operation

Beschreibung

public mysql_xdevapi\CollectionRemove::execute ( ) : mysql_xdevapi\Result

The execute function needs to be invoked in order to trigger the client to send the CRUD operation request to the server.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Result object.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionRemove::execute() example

<?php

$res = $coll->remove('true')->sort('age desc')->limit(2)->execute();

?>


Limit number of documents to remove

  • « CollectionRemove::execute
  • CollectionRemove::sort »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Limit number of documents to remove

CollectionRemove::limit

(No version information available, might only be in Git)

CollectionRemove::limit — Limit number of documents to remove

Beschreibung

public mysql_xdevapi\CollectionRemove::limit ( int $rows ) : mysql_xdevapi\CollectionRemove

Sets the maximum number of documents to remove.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

rows

The maximum number of documents to remove.

Rückgabewerte

Returns a CollectionRemove object that can be used to execute the command, or to add additional operations.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionRemove::limit() example

<?php

$res = $coll->remove('job in (\'Barista\', \'Programmatore\', \'Ballerino\', \'Programmatrice\')')->limit(5)->sort(['age desc', 'name asc'])->execute();

?>


Set the sorting criteria

  • « CollectionRemove::limit
  • mysql_xdevapi\ColumnResult »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Set the sorting criteria

CollectionRemove::sort

(No version information available, might only be in Git)

CollectionRemove::sort — Set the sorting criteria

Beschreibung

public mysql_xdevapi\CollectionRemove::sort ( string $sort_expr ) : mysql_xdevapi\CollectionRemove

Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

sort_expr

One or more sorting expressions can be provided. The evaluation is from left to right, and each expression is separated by a comma.

Rückgabewerte

A CollectionRemove object that can be used to execute the command, or to add additional operations.

Beispiele

Beispiel #1 mysql_xdevapi\CollectionRemove::sort() example

<?php

$res = $coll->remove('true')->sort('age desc')->limit(2)->execute();

?>


ColumnResult class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\ColumnResult {
/* Methoden */
public getCharacterSetName ( ) : string
public getCollationName ( ) : string
public getColumnLabel ( ) : string
public getColumnName ( ) : string
public getFractionalDigits ( ) : int
public getLength ( ) : int
public getSchemaName ( ) : string
public getTableLabel ( ) : string
public getTableName ( ) : string
public getType ( ) : int
public isNumberSigned ( ) : int
public isPadded ( ) : int
}

Inhaltsverzeichnis

  • ColumnResult::__construct — ColumnResult constructor
  • ColumnResult::getCharacterSetName — Get character set
  • ColumnResult::getCollationName — Get collation name
  • ColumnResult::getColumnLabel — Get column label
  • ColumnResult::getColumnName — Get column name
  • ColumnResult::getFractionalDigits — Get fractional digit length
  • ColumnResult::getLength — Get column field length
  • ColumnResult::getSchemaName — Get schema name
  • ColumnResult::getTableLabel — Get table label
  • ColumnResult::getTableName — Get table name
  • ColumnResult::getType — Get column type
  • ColumnResult::isNumberSigned — Check if signed type
  • ColumnResult::isPadded — Check if padded


ColumnResult constructor

  • « mysql_xdevapi\ColumnResult
  • ColumnResult::getCharacterSetName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • ColumnResult constructor

ColumnResult::__construct

(No version information available, might only be in Git)

ColumnResult::__construct — ColumnResult constructor

Beschreibung

private mysql_xdevapi\ColumnResult::__construct ( )

Retrieve column metadata, such as its character set; this is instantiated by the RowResult::getColumns() method.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS nonsense")->execute();
$session->sql("CREATE DATABASE nonsense")->execute();
$session->sql("CREATE TABLE nonsense.numbers (hello int, world float unsigned)")->execute();
$session->sql("INSERT INTO  nonsense.numbers values (42, 42)")->execute();

$schema = $session->getSchema("nonsense");
$table  = $schema->getTable("numbers");

$result1 = $table->select('hello','world')->execute();

// Returns an array of ColumnResult objects
$columns = $result1->getColumns();

foreach ($columns as $column) {
    echo "\nColumn label " , $column->getColumnLabel();
    echo " is type "       , $column->getType();
    echo " and is ", ($column->isNumberSigned() === 0) ? "Unsigned." : "Signed.";
}

// Alternatively
$result2 = $session->sql("SELECT * FROM nonsense.numbers")->execute();

// Returns an array of FieldMetadata objects
print_r($result2->getColumns());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Column label hello is type 19 and is Signed.
Column label world is type 4  and is Unsigned.

Array
(
    [0] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 1
            [type_name] => SINT
            [name] => hello
            [original_name] => hello
            [table] => numbers
            [original_table] => numbers
            [schema] => nonsense
            [catalog] => def
            [collation] => 0
            [fractional_digits] => 0
            [length] => 11
            [flags] => 0
            [content_type] => 0
        )
    [1] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 6
            [type_name] => FLOAT
            [name] => world
            [original_name] => world
            [table] => numbers
            [original_table] => numbers
            [schema] => nonsense
            [catalog] => def
            [collation] => 0
            [fractional_digits] => 31
            [length] => 12
            [flags] => 1
            [content_type] => 0
        )
)


Get character set

  • « ColumnResult::__construct
  • ColumnResult::getCollationName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get character set

ColumnResult::getCharacterSetName

(No version information available, might only be in Git)

ColumnResult::getCharacterSetName — Get character set

Beschreibung

public mysql_xdevapi\ColumnResult::getCharacterSetName ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::getCharacterSetName() example

<?php

/* ... */

?>


Get collation name

  • « ColumnResult::getCharacterSetName
  • ColumnResult::getColumnLabel »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get collation name

ColumnResult::getCollationName

(No version information available, might only be in Git)

ColumnResult::getCollationName — Get collation name

Beschreibung

public mysql_xdevapi\ColumnResult::getCollationName ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::getCollationName() example

<?php

/* ... */

?>


Get column label

  • « ColumnResult::getCollationName
  • ColumnResult::getColumnName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get column label

ColumnResult::getColumnLabel

(No version information available, might only be in Git)

ColumnResult::getColumnLabel — Get column label

Beschreibung

public mysql_xdevapi\ColumnResult::getColumnLabel ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::getColumnLabel() example

<?php

/* ... */

?>


Get column name

  • « ColumnResult::getColumnLabel
  • ColumnResult::getFractionalDigits »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get column name

ColumnResult::getColumnName

(No version information available, might only be in Git)

ColumnResult::getColumnName — Get column name

Beschreibung

public mysql_xdevapi\ColumnResult::getColumnName ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::getColumnName() example

<?php

/* ... */

?>


Get fractional digit length

  • « ColumnResult::getColumnName
  • ColumnResult::getLength »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get fractional digit length

ColumnResult::getFractionalDigits

(No version information available, might only be in Git)

ColumnResult::getFractionalDigits — Get fractional digit length

Beschreibung

public mysql_xdevapi\ColumnResult::getFractionalDigits ( ) : int

Fetch the number of fractional digits for column.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::getFractionalDigits() example

<?php

/* ... */

?>


Get column field length

  • « ColumnResult::getFractionalDigits
  • ColumnResult::getSchemaName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get column field length

ColumnResult::getLength

(No version information available, might only be in Git)

ColumnResult::getLength — Get column field length

Beschreibung

public mysql_xdevapi\ColumnResult::getLength ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::getLength() example

<?php

/* ... */

?>


Get schema name

  • « ColumnResult::getLength
  • ColumnResult::getTableLabel »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get schema name

ColumnResult::getSchemaName

(No version information available, might only be in Git)

ColumnResult::getSchemaName — Get schema name

Beschreibung

public mysql_xdevapi\ColumnResult::getSchemaName ( ) : string

Fetch the schema name where the column is stored.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::getSchemaName() example

<?php

/* ... */

?>


Get table label

  • « ColumnResult::getSchemaName
  • ColumnResult::getTableName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get table label

ColumnResult::getTableLabel

(No version information available, might only be in Git)

ColumnResult::getTableLabel — Get table label

Beschreibung

public mysql_xdevapi\ColumnResult::getTableLabel ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::getTableLabel() example

<?php

/* ... */

?>


Get table name

  • « ColumnResult::getTableLabel
  • ColumnResult::getType »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get table name

ColumnResult::getTableName

(No version information available, might only be in Git)

ColumnResult::getTableName — Get table name

Beschreibung

public mysql_xdevapi\ColumnResult::getTableName ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Name of the table for the column.

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::getTableName() example

<?php

/* ... */

?>


Get column type

  • « ColumnResult::getTableName
  • ColumnResult::isNumberSigned »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get column type

ColumnResult::getType

(No version information available, might only be in Git)

ColumnResult::getType — Get column type

Beschreibung

public mysql_xdevapi\ColumnResult::getType ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::getType() example

<?php

/* ... */

?>


Check if signed type

  • « ColumnResult::getType
  • ColumnResult::isPadded »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Check if signed type

ColumnResult::isNumberSigned

(No version information available, might only be in Git)

ColumnResult::isNumberSigned — Check if signed type

Beschreibung

public mysql_xdevapi\ColumnResult::isNumberSigned ( ) : int

Retrieve a table's column information, and is instantiated by the RowResult::getColumns() method.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if a given column as a signed type.

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::isNumberSigned() example

<?php

/* ... */

?>


Check if padded

  • « ColumnResult::isNumberSigned
  • mysql_xdevapi\CrudOperationBindable »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Check if padded

ColumnResult::isPadded

(No version information available, might only be in Git)

ColumnResult::isPadded — Check if padded

Beschreibung

public mysql_xdevapi\ColumnResult::isPadded ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if a given column is padded.

Beispiele

Beispiel #1 mysql_xdevapi\ColumnResult::isPadded() example

<?php

/* ... */

?>


CrudOperationBindable interface

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\CrudOperationBindable {
/* Methoden */
abstract public bind ( array $placeholder_values ) : mysql_xdevapi\CrudOperationBindable
}

Inhaltsverzeichnis

  • CrudOperationBindable::bind — Bind value to placeholder


Bind value to placeholder

  • « mysql_xdevapi\CrudOperationBindable
  • mysql_xdevapi\CrudOperationLimitable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationBindable
  • Bind value to placeholder

CrudOperationBindable::bind

(No version information available, might only be in Git)

CrudOperationBindable::bind — Bind value to placeholder

Beschreibung

abstract public mysql_xdevapi\CrudOperationBindable::bind ( array $placeholder_values ) : mysql_xdevapi\CrudOperationBindable

Binds a value to a specific placeholder.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

placeholder_values

The name of the placeholders and the values to bind.

Rückgabewerte

A CrudOperationBindable object.

Beispiele

Beispiel #1 mysql_xdevapi\CrudOperationBindable::bind() example

<?php

$res = $coll->modify('name like :name')->arrayInsert('job[0]', 'Calciatore')->bind(['name' => 'ENTITY'])->execute();
$res = $table->delete()->orderby('age desc')->where('age < 20 and age > 12 and name != :name')->bind(['name' => 'Tierney'])->limit(2)->execute();

?>


CrudOperationLimitable interface

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\CrudOperationLimitable {
/* Methoden */
abstract public limit ( int $rows ) : mysql_xdevapi\CrudOperationLimitable
}

Inhaltsverzeichnis

  • CrudOperationLimitable::limit — Set result limit


Set result limit

  • « mysql_xdevapi\CrudOperationLimitable
  • mysql_xdevapi\CrudOperationSkippable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationLimitable
  • Set result limit

CrudOperationLimitable::limit

(No version information available, might only be in Git)

CrudOperationLimitable::limit — Set result limit

Beschreibung

abstract public mysql_xdevapi\CrudOperationLimitable::limit ( int $rows ) : mysql_xdevapi\CrudOperationLimitable

Sets the maximum number of records or documents to return.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

rows

The maximum number of records or documents.

Rückgabewerte

A CrudOperationLimitable object.

Beispiele

Beispiel #1 mysql_xdevapi\CrudOperationLimitable::limit() example

<?php

$res = $coll->find()->fields(['name as n','age as a','job as j'])->groupBy('j')->limit(11)->execute();
$res = $table->update()->set('age',69)->where('age > 15 and age < 22')->limit(4)->orderby(['age asc','name desc'])->execute();

?>


CrudOperationSkippable interface

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\CrudOperationSkippable {
/* Methoden */
abstract public skip ( int $skip ) : mysql_xdevapi\CrudOperationSkippable
}

Inhaltsverzeichnis

  • CrudOperationSkippable::skip — Number of operations to skip


Number of operations to skip

  • « mysql_xdevapi\CrudOperationSkippable
  • mysql_xdevapi\CrudOperationSortable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationSkippable
  • Number of operations to skip

CrudOperationSkippable::skip

(No version information available, might only be in Git)

CrudOperationSkippable::skip — Number of operations to skip

Beschreibung

abstract public mysql_xdevapi\CrudOperationSkippable::skip ( int $skip ) : mysql_xdevapi\CrudOperationSkippable

Skip this number of records in the returned operation.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

skip

Number of elements to skip.

Rückgabewerte

A CrudOperationSkippable object.

Beispiele

Beispiel #1 mysql_xdevapi\CrudOperationSkippable::skip() example

<?php

$res = $coll->find('job like \'Programmatore\'')->limit(1)->skip(3)->sort('age asc')->execute();

?>


CrudOperationSortable interface

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\CrudOperationSortable {
/* Methoden */
abstract public sort ( string $sort_expr ) : mysql_xdevapi\CrudOperationSortable
}

Inhaltsverzeichnis

  • CrudOperationSortable::sort — Sort results


Sort results

  • « mysql_xdevapi\CrudOperationSortable
  • mysql_xdevapi\DatabaseObject »
  • PHP Manual
  • mysql_xdevapi\CrudOperationSortable
  • Sort results

CrudOperationSortable::sort

(No version information available, might only be in Git)

CrudOperationSortable::sort — Sort results

Beschreibung

abstract public mysql_xdevapi\CrudOperationSortable::sort ( string $sort_expr ) : mysql_xdevapi\CrudOperationSortable

Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

sort_expr

One or more sorting expressions can be provided. The evaluation is from left to right, and each expression is separated by a comma.

Rückgabewerte

A CrudOperationSortable object.

Beispiele

Beispiel #1 mysql_xdevapi\CrudOperationSortable::sort() example

<?php

$res = $coll->find('job like \'Cavia\'')->sort('age desc', '_id desc')->execute();

?>


DatabaseObject interface

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\DatabaseObject {
/* Methoden */
abstract public existsInDatabase ( ) : bool
abstract public getName ( ) : string
abstract public getSession ( ) : mysql_xdevapi\Session
}

Inhaltsverzeichnis

  • DatabaseObject::existsInDatabase — Check if object exists in database
  • DatabaseObject::getName — Get object name
  • DatabaseObject::getSession — Get session name


Check if object exists in database

  • « mysql_xdevapi\DatabaseObject
  • DatabaseObject::getName »
  • PHP Manual
  • mysql_xdevapi\DatabaseObject
  • Check if object exists in database

DatabaseObject::existsInDatabase

(No version information available, might only be in Git)

DatabaseObject::existsInDatabase — Check if object exists in database

Beschreibung

abstract public mysql_xdevapi\DatabaseObject::existsInDatabase ( ) : bool

Verifies if the database object refers to an object that exists in the database.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if object exists in the database, else false if it does not.

Beispiele

Beispiel #1 mysql_xdevapi\DatabaseObject::existsInDatabase() example

<?php

$existInDb = $dbObj->existsInDatabase();

?>


Get object name

  • « DatabaseObject::existsInDatabase
  • DatabaseObject::getSession »
  • PHP Manual
  • mysql_xdevapi\DatabaseObject
  • Get object name

DatabaseObject::getName

(No version information available, might only be in Git)

DatabaseObject::getName — Get object name

Beschreibung

abstract public mysql_xdevapi\DatabaseObject::getName ( ) : string

Fetch name of this database object.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The name of this database object.

Beispiele

Beispiel #1 mysql_xdevapi\DatabaseObject::getName() example

<?php

$dbObjName = $dbObj->getName();

?>


Get session name

  • « DatabaseObject::getName
  • mysql_xdevapi\DocResult »
  • PHP Manual
  • mysql_xdevapi\DatabaseObject
  • Get session name

DatabaseObject::getSession

(No version information available, might only be in Git)

DatabaseObject::getSession — Get session name

Beschreibung

abstract public mysql_xdevapi\DatabaseObject::getSession ( ) : mysql_xdevapi\Session

Fetch session associated to the database object.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The Session object.

Beispiele

Beispiel #1 mysql_xdevapi\DatabaseObject::getSession() example

<?php

$session = $dbObj->getSession();

?>


DocResult class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\DocResult implements mysql_xdevapi\BaseResult , Traversable {
/* Methoden */
public fetchAll ( ) : array
public fetchOne ( ) : array
public getWarnings ( ) : Array
public getWarningsCount ( ) : int
}

Inhaltsverzeichnis

  • DocResult::__construct — DocResult constructor
  • DocResult::fetchAll — Get all rows
  • DocResult::fetchOne — Get one row
  • DocResult::getWarnings — Get warnings from last operation
  • DocResult::getWarningsCount — Get warning count from last operation


DocResult constructor

  • « mysql_xdevapi\DocResult
  • DocResult::fetchAll »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • DocResult constructor

DocResult::__construct

(No version information available, might only be in Git)

DocResult::__construct — DocResult constructor

Beschreibung

private mysql_xdevapi\DocResult::__construct ( )

Fetch document results and warnings, and is instantiated by CollectionFind.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 A DocResult example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->sort('age desc')
  ->limit(1)
  ->execute();

var_dump($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000f3"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Get all rows

  • « DocResult::__construct
  • DocResult::fetchOne »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Get all rows

DocResult::fetchAll

(No version information available, might only be in Git)

DocResult::fetchAll — Get all rows

Beschreibung

public mysql_xdevapi\DocResult::fetchAll ( ) : array

Fetch all results from a result set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A numerical array with all results from the query; each result is an associative array. An empty array is returned if no rows are present.

Beispiele

Beispiel #1 mysql_xdevapi\DocResult::fetchAll() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->sort('age desc')
  ->execute();

var_dump($result->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {

  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000123"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }

  [1]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000122"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }

}


Get one row

  • « DocResult::fetchAll
  • DocResult::getWarnings »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Get one row

DocResult::fetchOne

(No version information available, might only be in Git)

DocResult::fetchOne — Get one row

Beschreibung

public mysql_xdevapi\DocResult::fetchOne ( ) : array

Fetch one result from a result set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The result, as an associative array or null if no results are present.

Beispiele

Beispiel #1 mysql_xdevapi\DocResult::fetchOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->sort('age desc')
  ->execute();

var_dump($result->fetchOne());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(4) {
  ["_id"]=>
  string(28) "00005b6b53610000000000000125"
  ["age"]=>
  int(42)
  ["job"]=>
  string(6) "Butler"
  ["name"]=>
  string(8) "Reginald"
}


Get warnings from last operation

  • « DocResult::fetchOne
  • DocResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Get warnings from last operation

DocResult::getWarnings

(No version information available, might only be in Git)

DocResult::getWarnings — Get warnings from last operation

Beschreibung

public mysql_xdevapi\DocResult::getWarnings ( ) : Array

Fetches warnings generated by MySQL server's last operation.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Beispiele

Beispiel #1 mysql_xdevapi\DocResult::getWarnings() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->sort('age desc')
  ->execute();

if (!$result->getWarningsCount()) {
    echo "There was an error:\n";
    print_r($result->getWarnings());
    exit;
}

var_dump($result->fetchOne());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

There was an error:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Something bad and so on
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Something bad and so on
            [level] => 2
            [code] => 1365
        )
)


Get warning count from last operation

  • « DocResult::getWarnings
  • mysql_xdevapi\Exception »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Get warning count from last operation

DocResult::getWarningsCount

(No version information available, might only be in Git)

DocResult::getWarningsCount — Get warning count from last operation

Beschreibung

public mysql_xdevapi\DocResult::getWarningsCount ( ) : int

Returns the number of warnings raised by the last operation. Specifically, these warnings are raised by the MySQL server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of warnings from the last operation.

Beispiele

Beispiel #1 mysql_xdevapi\DocResult::getWarningsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
  ->find('job like :job and age > :age')
  ->bind(['job' => 'Butler', 'age' => 16])
  ->sort('age desc')
  ->execute();

if (!$result->getWarningsCount()) {
    echo "There was an error:\n";
    print_r($result->getWarnings());
    exit;
}

var_dump($result->fetchOne());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(4) {
  ["_id"]=>
  string(28) "00005b6b53610000000000000135"
  ["age"]=>
  int(42)
  ["job"]=>
  string(6) "Butler"
  ["name"]=>
  string(8) "Reginald"
}


Exception class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\Exception extends RuntimeException implements Throwable {
}


Executable interface

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\Executable {
/* Methoden */
abstract public execute ( ) : mysql_xdevapi\Result
}

Inhaltsverzeichnis

  • Executable::execute — Execute statement


Execute statement

  • « mysql_xdevapi\Executable
  • mysql_xdevapi\ExecutionStatus »
  • PHP Manual
  • mysql_xdevapi\Executable
  • Execute statement

Executable::execute

(No version information available, might only be in Git)

Executable::execute — Execute statement

Beschreibung

abstract public mysql_xdevapi\Executable::execute ( ) : mysql_xdevapi\Result

Execute the statement from either a collection operation or a table query; this functionality allows for method chaining.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

One of the Result objects, such as Result or SqlStatementResult.

Beispiele

Beispiel #1 execute() examples

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$result_sql = $session->sql("CREATE DATABASE addressbook")->execute();

var_dump($result_sql);

$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("humans");

$result_collection = $collection->add(
  '{"name": "Jane",
    "jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
    "hobbies": ["Walking","Making pies"]}');

$result_collection_executed = $result_collection->execute();

var_dump($result_collection);
var_dump($result_collection_executed);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(mysql_xdevapi\SqlStatementResult)#3 (0) {
}

object(mysql_xdevapi\CollectionAdd)#5 (0) {
}

object(mysql_xdevapi\Result)#7 (0) {
}


ExecutionStatus class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\ExecutionStatus {
/* Eigenschaften */
public $affectedItems ;
public $matchedItems ;
public $foundItems ;
public $lastInsertId ;
public $lastDocumentId ;
/* Constructor */
private __construct ( )
}

Eigenschaften

affectedItems

matchedItems

foundItems

lastInsertId

lastDocumentId

Inhaltsverzeichnis

  • ExecutionStatus::__construct — ExecutionStatus constructor


ExecutionStatus constructor

  • « mysql_xdevapi\ExecutionStatus
  • mysql_xdevapi\Expression »
  • PHP Manual
  • mysql_xdevapi\ExecutionStatus
  • ExecutionStatus constructor

ExecutionStatus::__construct

(No version information available, might only be in Git)

ExecutionStatus::__construct — ExecutionStatus constructor

Beschreibung

private mysql_xdevapi\ExecutionStatus::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\ExecutionStatus::__construct() example

<?php

/* ... */

?>


Expression class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\Expression {
/* Eigenschaften */
public $name ;
/* Constructor */
public __construct ( string $expression )
}

Eigenschaften

name

Inhaltsverzeichnis

  • Expression::__construct — Expression constructor


Expression constructor

  • « mysql_xdevapi\Expression
  • mysql_xdevapi\Result »
  • PHP Manual
  • mysql_xdevapi\Expression
  • Expression constructor

Expression::__construct

(No version information available, might only be in Git)

Expression::__construct — Expression constructor

Beschreibung

public mysql_xdevapi\Expression::__construct ( string $expression )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

expression

Beispiele

Beispiel #1 mysql_xdevapi\Expression::__construct() example

<?php

/* ... */

?>


Result class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\Result implements mysql_xdevapi\BaseResult , Traversable {
/* Methoden */
public getAffectedItemsCount ( ) : int
public getAutoIncrementValue ( ) : int
public getGeneratedIds ( ) : array
public getWarnings ( ) : array
public getWarningsCount ( ) : int
}

Inhaltsverzeichnis

  • Result::__construct — Result constructor
  • Result::getAffectedItemsCount — Get affected row count
  • Result::getAutoIncrementValue — Get autoincremented value
  • Result::getGeneratedIds — Get generated ids
  • Result::getWarnings — Get warnings from last operation
  • Result::getWarningsCount — Get warning count from last operation


Result constructor

  • « mysql_xdevapi\Result
  • Result::getAffectedItemsCount »
  • PHP Manual
  • mysql_xdevapi\Result
  • Result constructor

Result::__construct

(No version information available, might only be in Git)

Result::__construct — Result constructor

Beschreibung

private mysql_xdevapi\Result::__construct ( )

An object that retrieves generated IDs, AUTO_INCREMENT values, and warnings, for a Result set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\Result::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("
  CREATE TABLE addressbook.names
    (id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30), age INT, PRIMARY KEY (id))
  ")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->insert("name", "age")->values(["Suzanne", 31],["Julie", 43])->execute();
$result = $table->insert("name", "age")->values(["Suki", 34])->execute();

$ai = $result->getAutoIncrementValue();
var_dump($ai);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(3)


Get affected row count

  • « Result::__construct
  • Result::getAutoIncrementValue »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get affected row count

Result::getAffectedItemsCount

(No version information available, might only be in Git)

Result::getAffectedItemsCount — Get affected row count

Beschreibung

public mysql_xdevapi\Result::getAffectedItemsCount ( ) : int

Get the number of affected rows by the previous operation.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number (as an integer) of affected rows.

Beispiele

Beispiel #1 mysql_xdevapi\Result::getAffectedItemsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

$result = $collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

var_dump( $res->getAffectedItemsCount() );
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)


Get autoincremented value

  • « Result::getAffectedItemsCount
  • Result::getGeneratedIds »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get autoincremented value

Result::getAutoIncrementValue

(No version information available, might only be in Git)

Result::getAutoIncrementValue — Get autoincremented value

Beschreibung

public mysql_xdevapi\Result::getAutoIncrementValue ( ) : int

Get the last AUTO_INCREMENT value (last insert id).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The last AUTO_INCREMENT value.

Beispiele

Beispiel #1 mysql_xdevapi\Result::getAutoIncrementValue() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("
  CREATE TABLE addressbook.names
    (id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30), age INT, PRIMARY KEY (id))
  ")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->insert("name", "age")->values(["Suzanne", 31],["Julie", 43])->execute();
$result = $table->insert("name", "age")->values(["Suki", 34])->execute();

$ai = $result->getAutoIncrementValue();
var_dump($ai);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(3)


Get generated ids

  • « Result::getAutoIncrementValue
  • Result::getWarnings »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get generated ids

Result::getGeneratedIds

(No version information available, might only be in Git)

Result::getGeneratedIds — Get generated ids

Beschreibung

public mysql_xdevapi\Result::getGeneratedIds ( ) : array

Fetch the generated _id values from the last operation. The unique _id field is generated by the MySQL server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of generated _id's from the last operation, or an empty array if there are none.

Beispiele

Beispiel #1 mysql_xdevapi\Result::getGeneratedIds() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

$result = $collection->add(
  '{"name": "Bernie",
    "jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
    "hobbies": ["Sports","Making cupcakes"]}',
  '{"name": "Jane",
    "jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
    "hobbies": ["Walking","Making pies"]}')->execute();

$ids = $result->getGeneratedIds();
var_dump($ids);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  [0]=>
  string(28) "00005b6b53610000000000000064"
  [1]=>
  string(28) "00005b6b53610000000000000065"
}


Get warnings from last operation

  • « Result::getGeneratedIds
  • Result::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get warnings from last operation

Result::getWarnings

(No version information available, might only be in Git)

Result::getWarnings — Get warnings from last operation

Beschreibung

public mysql_xdevapi\Result::getWarnings ( ) : array

Retrieve warnings from the last Result operation.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Beispiele

Beispiel #1 mysql_xdevapi\RowResult::getWarnings() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table  = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();
$warnings = $res->getWarnings();

print_r($warnings);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
)


Get warning count from last operation

  • « Result::getWarnings
  • mysql_xdevapi\RowResult »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get warning count from last operation

Result::getWarningsCount

(No version information available, might only be in Git)

Result::getWarningsCount — Get warning count from last operation

Beschreibung

public mysql_xdevapi\Result::getWarningsCount ( ) : int

Retrieve the number of warnings from the last Result operation.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of warnings generated by the last operation.

Beispiele

Beispiel #1 mysql_xdevapi\RowResult::getWarningsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS foo")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table  = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();

echo $res->getWarningsCount();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2


RowResult class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\RowResult implements mysql_xdevapi\BaseResult , Traversable {
/* Methoden */
public fetchAll ( ) : array
public fetchOne ( ) : array
public getColumnsCount ( ) : int
public getColumnNames ( ) : array
public getColumns ( ) : array
public getWarnings ( ) : array
public getWarningsCount ( ) : int
}

Inhaltsverzeichnis

  • RowResult::__construct — RowResult constructor
  • RowResult::fetchAll — Get all rows from result
  • RowResult::fetchOne — Get row from result
  • RowResult::getColumnsCount — Get column count
  • RowResult::getColumnNames — Get all column names
  • RowResult::getColumns — Get column metadata
  • RowResult::getWarnings — Get warnings from last operation
  • RowResult::getWarningsCount — Get warning count from last operation


RowResult constructor

  • « mysql_xdevapi\RowResult
  • RowResult::fetchAll »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • RowResult constructor

RowResult::__construct

(No version information available, might only be in Git)

RowResult::__construct — RowResult constructor

Beschreibung

private mysql_xdevapi\RowResult::__construct ( )

Represents the result set obtained from querying the database.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\RowResult::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$row = $table->select('name', 'age')->where('age > 18')->execute()->fetchAll();

print_r($row);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Get all rows from result

  • « RowResult::__construct
  • RowResult::fetchOne »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get all rows from result

RowResult::fetchAll

(No version information available, might only be in Git)

RowResult::fetchAll — Get all rows from result

Beschreibung

public mysql_xdevapi\RowResult::fetchAll ( ) : array

Fetch all the rows from the result set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A numerical array with all results from the query; each result is an associative array. An empty array is returned if no rows are present.

Beispiele

Beispiel #1 mysql_xdevapi\RowResult::fetchAll() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$row = $table->select('name', 'age')->execute()->fetchAll();

print_r($row);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Get row from result

  • « RowResult::fetchAll
  • RowResult::getColumnsCount »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get row from result

RowResult::fetchOne

(No version information available, might only be in Git)

RowResult::fetchOne — Get row from result

Beschreibung

public mysql_xdevapi\RowResult::fetchOne ( ) : array

Fetch one result from the result set.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The result, as an associative array or null if no results are present.

Beispiele

Beispiel #1 mysql_xdevapi\RowResult::fetchOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$row = $table->select('name', 'age')->where('age < 40')->execute()->fetchOne();

print_r($row);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [name] => Sam
    [age] => 33
)


Get column count

  • « RowResult::fetchOne
  • RowResult::getColumnNames »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get column count

RowResult::getColumnsCount

(No version information available, might only be in Git)

RowResult::getColumnsCount — Get column count

Beschreibung

public mysql_xdevapi\RowResult::getColumnsCount ( ) : int

Retrieve the column count for columns present in the result set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of columns; 0 if there are none.

Changelog

Version | Beschreibung
8.0.14 | Method renamed from getColumnCount() to getColumnsCount().

Beispiele

Beispiel #1 mysql_xdevapi\RowResult::getColumnsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$sql = $session->sql("SELECT * from addressbook.names")->execute();

echo $sql->getColumnsCount();

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2


Get all column names

  • « RowResult::getColumnsCount
  • RowResult::getColumns »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get all column names

RowResult::getColumnNames

(No version information available, might only be in Git)

RowResult::getColumnNames — Get all column names

Beschreibung

public mysql_xdevapi\RowResult::getColumnNames ( ) : array

Retrieve column names for columns present in the result set.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A numerical array of table columns names, or an empty array if the result set is empty.

Beispiele

Beispiel #1 mysql_xdevapi\RowResult::getColumnNames() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$sql = $session->sql("SELECT * from addressbook.names")->execute();

$colnames = $sql->getColumnNames();

print_r($colnames);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => name
    [1] => age
)


Get column metadata

  • « RowResult::getColumnNames
  • RowResult::getWarnings »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get column metadata

RowResult::getColumns

(No version information available, might only be in Git)

RowResult::getColumns — Get column metadata

Beschreibung

public mysql_xdevapi\RowResult::getColumns ( ) : array

Retrieve column metadata for columns present in the result set.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of FieldMetadata objects representing the columns in the result, or an empty array if the result set is empty.

Beispiele

Beispiel #1 mysql_xdevapi\RowResult::getColumns() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$sql = $session->sql("SELECT * from addressbook.names")->execute();

$cols = $sql->getColumns();

print_r($cols);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 7
            [type_name] => BYTES
            [name] => name
            [original_name] => name
            [table] => names
            [original_table] => names
            [schema] => addressbook
            [catalog] => def
            [collation] => 255
            [fractional_digits] => 0
            [length] => 65535
            [flags] => 0
            [content_type] => 0
        )
    [1] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 1
            [type_name] => SINT
            [name] => age
            [original_name] => age
            [table] => names
            [original_table] => names
            [schema] => addressbook
            [catalog] => def
            [collation] => 0
            [fractional_digits] => 0
            [length] => 11
            [flags] => 0
            [content_type] => 0
        )
)


Get warnings from last operation

  • « RowResult::getColumns
  • RowResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get warnings from last operation

RowResult::getWarnings

(No version information available, might only be in Git)

RowResult::getWarnings — Get warnings from last operation

Beschreibung

public mysql_xdevapi\RowResult::getWarnings ( ) : array

Retrieve warnings from the last RowResult operation.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Beispiele

Beispiel #1 mysql_xdevapi\RowResult::getWarnings() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table  = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();
$warnings = $res->getWarnings();

print_r($warnings);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
)


Get warning count from last operation

  • « RowResult::getWarnings
  • mysql_xdevapi\Schema »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get warning count from last operation

RowResult::getWarningsCount

(No version information available, might only be in Git)

RowResult::getWarningsCount — Get warning count from last operation

Beschreibung

public mysql_xdevapi\RowResult::getWarningsCount ( ) : int

Retrieve the number of warnings from the last RowResult operation.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of warnings generated by the last operation.

Beispiele

Beispiel #1 mysql_xdevapi\RowResult::getWarningsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS foo")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table  = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();

echo $res->getWarningsCount();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2


Schema class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\Schema implements mysql_xdevapi\DatabaseObject {
/* Eigenschaften */
public $name ;
/* Methoden */
public createCollection ( string $name ) : mysql_xdevapi\Collection
public dropCollection ( string $collection_name ) : bool
public existsInDatabase ( ) : bool
public getCollection ( string $name ) : mysql_xdevapi\Collection
public getCollectionAsTable ( string $name ) : mysql_xdevapi\Table
public getCollections ( ) : array
public getName ( ) : string
public getSession ( ) : mysql_xdevapi\Session
public getTable ( string $name ) : mysql_xdevapi\Table
public getTables ( ) : array
}

Eigenschaften

name

Inhaltsverzeichnis

  • Schema::__construct — constructor
  • Schema::createCollection — Add collection to schema
  • Schema::dropCollection — Drop collection from schema
  • Schema::existsInDatabase — Check if exists in database
  • Schema::getCollection — Get collection from schema
  • Schema::getCollectionAsTable — Get collection table object
  • Schema::getCollections — Get all schema collections
  • Schema::getName — Get schema name
  • Schema::getSession — Get schema session
  • Schema::getTable — Get schema table
  • Schema::getTables — Get schema tables


constructor

  • « mysql_xdevapi\Schema
  • Schema::createCollection »
  • PHP Manual
  • mysql_xdevapi\Schema
  • constructor

Schema::__construct

(No version information available, might only be in Git)

Schema::__construct — constructor

Beschreibung

private mysql_xdevapi\Schema::__construct ( )

The Schema object provides full access to the schema (database).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 Schema::__construct example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

print_r($schema->gettables());
print_r($schema->getcollections());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [fruit] => mysql_xdevapi\Table Object
        (
            [name] => fruit
        )
)
Array
(
    [trees] => mysql_xdevapi\Collection Object
        (
            [name] => trees
        )
)


Add collection to schema

  • « Schema::__construct
  • Schema::dropCollection »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Add collection to schema

Schema::createCollection

(No version information available, might only be in Git)

Schema::createCollection — Add collection to schema

Beschreibung

public mysql_xdevapi\Schema::createCollection ( string $name ) : mysql_xdevapi\Collection

Create a collection within the schema.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte

Beispiele

Beispiel #1 Schema::createCollection example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

print_r($schema->gettables());
print_r($schema->getcollections());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [fruit] => mysql_xdevapi\Table Object
        (
            [name] => fruit
        )
)
Array
(
    [trees] => mysql_xdevapi\Collection Object
        (
            [name] => trees
        )
)


Drop collection from schema

  • « Schema::createCollection
  • Schema::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Drop collection from schema

Schema::dropCollection

(No version information available, might only be in Git)

Schema::dropCollection — Drop collection from schema

Beschreibung

public mysql_xdevapi\Schema::dropCollection ( string $collection_name ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

collection_name

Rückgabewerte

Beispiele

Beispiel #1 Schema::dropCollection example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");

$schema->createCollection("trees");
$schema->dropCollection("trees");
$schema->createCollection("buildings");

print_r($schema->gettables());
print_r($schema->getcollections());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [fruit] => mysql_xdevapi\Table Object
        (
            [name] => fruit
        )
)
Array
(
    [buildings] => mysql_xdevapi\Collection Object
        (
            [name] => buildings
        )
)


Check if exists in database

  • « Schema::dropCollection
  • Schema::getCollection »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Check if exists in database

Schema::existsInDatabase

(No version information available, might only be in Git)

Schema::existsInDatabase — Check if exists in database

Beschreibung

public mysql_xdevapi\Schema::existsInDatabase ( ) : bool

Checks if the current object (schema, table, collection, or view) exists in the schema object.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the schema, table, collection, or view still exists in the schema, else false.

Beispiele

Beispiel #1 Schema::existsInDatabase example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

// ...

$trees = $schema->getCollection("trees");

// ...

// Is this collection still in the database (schema)?
if ($trees->existsInDatabase()) {
    echo "Yes, the 'trees' collection is still present.";
}

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Yes, the 'trees' collection is still present.


Get collection from schema

  • « Schema::existsInDatabase
  • Schema::getCollectionAsTable »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get collection from schema

Schema::getCollection

(No version information available, might only be in Git)

Schema::getCollection — Get collection from schema

Beschreibung

public mysql_xdevapi\Schema::getCollection ( string $name ) : mysql_xdevapi\Collection

Get a collection from the schema.

Parameter-Liste

name

Collection name to retrieve.

Rückgabewerte

The Collection object for the selected collection.

Beispiele

Beispiel #1 Schema::getCollection example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

// ...

$trees = $schema->getCollection("trees");

var_dump($trees);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(mysql_xdevapi\Collection)#3 (1) {
  ["name"]=>
  string(5) "trees"
}


Get collection table object

  • « Schema::getCollection
  • Schema::getCollections »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get collection table object

Schema::getCollectionAsTable

(No version information available, might only be in Git)

Schema::getCollectionAsTable — Get collection table object

Beschreibung

public mysql_xdevapi\Schema::getCollectionAsTable ( string $name ) : mysql_xdevapi\Table

Get a collection, but as a Table object instead of a Collection object.

Parameter-Liste

name

Name of the collection to instantiate a Table object from.

Rückgabewerte

A table object for the collection.

Beispiele

Beispiel #1 Schema::getCollectionAsTable example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema  = $session->getSchema("addressbook");
$collect = $schema->createCollection("people");
$collect->add('{"name": "Fred",  "age": 21, "job": "Construction"}')->execute();
$collect->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

$table      = $schema->getCollectionAsTable("people");
$collection = $schema->getCollection("people");

var_dump($table);
var_dump($collection);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(mysql_xdevapi\Table)#4 (1) {
  ["name"]=>
  string(6) "people"
}

object(mysql_xdevapi\Collection)#5 (1) {
  ["name"]=>
  string(6) "people"
}


Get all schema collections

  • « Schema::getCollectionAsTable
  • Schema::getName »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get all schema collections

Schema::getCollections

(No version information available, might only be in Git)

Schema::getCollections — Get all schema collections

Beschreibung

public mysql_xdevapi\Schema::getCollections ( ) : array

Fetch a list of collections for this schema.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Array of all collections in this schema, where each array element value is a Collection object with the collection name as the key.

Beispiele

Beispiel #1 mysql_xdevapi\Schema::getCollections() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema  = $session->getSchema("addressbook");
$collect = $schema->createCollection("people");
$collect->add('{"name": "Fred",  "age": 21, "job": "Construction"}')->execute();
$collect->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

$collections = $schema->getCollections();
var_dump($collections);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  ["people"]=>
  object(mysql_xdevapi\Collection)#4 (1) {
    ["name"]=>
    string(6) "people"
  }
}


Get schema name

  • « Schema::getCollections
  • Schema::getSession »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get schema name

Schema::getName

(No version information available, might only be in Git)

Schema::getName — Get schema name

Beschreibung

public mysql_xdevapi\Schema::getName ( ) : string

Get the name of the schema.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The name of the schema connected to the schema object, as a string.

Beispiele

Beispiel #1 mysql_xdevapi\Schema::getName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema  = $session->getSchema("addressbook");

// ...

var_dump($schema->getName());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(11) "addressbook"


Get schema session

  • « Schema::getName
  • Schema::getTable »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get schema session

Schema::getSession

(No version information available, might only be in Git)

Schema::getSession — Get schema session

Beschreibung

public mysql_xdevapi\Schema::getSession ( ) : mysql_xdevapi\Session

Get a new Session object from the Schema object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Session object.

Beispiele

Beispiel #1 mysql_xdevapi\Schema::getSession() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema  = $session->getSchema("addressbook");

// ...

$newsession = $schema->getSession();

var_dump($session);
var_dump($newsession);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(mysql_xdevapi\Session)#1 (0) {
}

object(mysql_xdevapi\Session)#3 (0) {
}


Get schema table

  • « Schema::getSession
  • Schema::getTables »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get schema table

Schema::getTable

(No version information available, might only be in Git)

Schema::getTable — Get schema table

Beschreibung

public mysql_xdevapi\Schema::getTable ( string $name ) : mysql_xdevapi\Table

Fetch a Table object for the provided table in the schema.

Parameter-Liste

name

Name of the table.

Rückgabewerte

A Table object.

Beispiele

Beispiel #1 mysql_xdevapi\Schema::getTable() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$row = $table->select('name', 'age')->execute()->fetchAll();

print_r($row);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Get schema tables

  • « Schema::getTable
  • mysql_xdevapi\SchemaObject »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get schema tables

Schema::getTables

(No version information available, might only be in Git)

Schema::getTables — Get schema tables

Beschreibung

public mysql_xdevapi\Schema::getTables ( ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Array of all tables in this schema, where each array element value is a Table object with the table name as the key.

Beispiele

Beispiel #1 mysql_xdevapi\Schema::getTables() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$session->sql("CREATE TABLE addressbook.cities(name text, population int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('Portland', 639863), ('Seattle', 704352)")->execute();

$schema = $session->getSchema("addressbook");
$tables = $schema->getTables();

var_dump($tables);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["cities"]=>
  object(mysql_xdevapi\Table)#3 (1) {
    ["name"]=>
    string(6) "cities"
  }

  ["names"]=>
  object(mysql_xdevapi\Table)#4 (1) {
    ["name"]=>
    string(5) "names"
  }
}


SchemaObject interface

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\SchemaObject implements mysql_xdevapi\DatabaseObject {
/* Methoden */
abstract getSchema ( ) : mysql_xdevapi\Schema
}

Inhaltsverzeichnis

  • SchemaObject::getSchema — Get schema object


Get schema object

  • « mysql_xdevapi\SchemaObject
  • mysql_xdevapi\Session »
  • PHP Manual
  • mysql_xdevapi\SchemaObject
  • Get schema object

SchemaObject::getSchema

(No version information available, might only be in Git)

SchemaObject::getSchema — Get schema object

Beschreibung

abstract mysql_xdevapi\SchemaObject::getSchema ( ) : mysql_xdevapi\Schema

Used by other objects to retrieve a schema object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current Schema object.

Beispiele

Beispiel #1 mysql_xdevapi\Session::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$schema  = $session->getSchema("addressbook");

print_r($schema);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

mysql_xdevapi\Schema Object
(
    [name] => addressbook
)


Session class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\Session {
/* Methoden */
public close ( ) : bool
public commit ( ) : Object
public createSchema ( string $schema_name ) : mysql_xdevapi\Schema
public dropSchema ( string $schema_name ) : bool
public generateUUID ( ) : string
public getDefaultSchema ( ) : string
public getSchema ( string $schema_name ) : mysql_xdevapi\Schema
public getSchemas ( ) : array
public getServerVersion ( ) : int
public listClients ( ) : array
public quoteName ( string $name ) : string
public releaseSavepoint ( string $name ) : void
public rollback ( ) : void
public rollbackTo ( string $name ) : void
public setSavepoint ( string $name = ? ) : string
public sql ( string $query ) : mysql_xdevapi\SqlStatement
public startTransaction ( ) : void
}

Inhaltsverzeichnis

  • Session::close — Close session
  • Session::commit — Commit transaction
  • Session::__construct — Description constructor
  • Session::createSchema — Create new schema
  • Session::dropSchema — Drop a schema
  • Session::generateUUID — Get new UUID
  • Session::getDefaultSchema — Get default schema name
  • Session::getSchema — Get a new schema object
  • Session::getSchemas — Get the schemas
  • Session::getServerVersion — Get server version
  • Session::listClients — Get client list
  • Session::quoteName — Add quotes
  • Session::releaseSavepoint — Release set savepoint
  • Session::rollback — Rollback transaction
  • Session::rollbackTo — Rollback transaction to savepoint
  • Session::setSavepoint — Create savepoint
  • Session::sql — Execute SQL query
  • Session::startTransaction — Start transaction


Close session

  • « mysql_xdevapi\Session
  • Session::commit »
  • PHP Manual
  • mysql_xdevapi\Session
  • Close session

Session::close

(No version information available, might only be in Git)

Session::close — Close session

Beschreibung

public mysql_xdevapi\Session::close ( ) : bool

Close the session with the server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the session closed.

Beispiele

Beispiel #1 mysql_xdevapi\Session::close() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$session->close();


Commit transaction

  • « Session::close
  • Session::__construct »
  • PHP Manual
  • mysql_xdevapi\Session
  • Commit transaction

Session::commit

(PHP 4 >= 4.4.0, PHP 5, PHP 7, PHP 8)

Session::commit — Commit transaction

Beschreibung

public mysql_xdevapi\Session::commit ( ) : Object

Commit the transaction.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An SqlStatementResult object.

Beispiele

Beispiel #1 mysql_xdevapi\Session::commit() example

<?php
$session    = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("friends");

$session->startTransaction();

$collection->add('{"John":42, "Sam":33}')->execute();
$savepoint = $session->setSavepoint();

$session->commit();
$session->close();


Description constructor

  • « Session::commit
  • Session::createSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Description constructor

Session::__construct

(No version information available, might only be in Git)

Session::__construct — Description constructor

Beschreibung

private mysql_xdevapi\Session::__construct ( )

A Session object, as initiated by getSession().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\Session::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->close();
?>


Create new schema

  • « Session::__construct
  • Session::dropSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Create new schema

Session::createSchema

(No version information available, might only be in Git)

Session::createSchema — Create new schema

Beschreibung

public mysql_xdevapi\Session::createSchema ( string $schema_name ) : mysql_xdevapi\Schema

Creates a new schema.

Parameter-Liste

schema_name

Name of the schema to create.

Rückgabewerte

A Schema object on success, and emits an exception on failure.

Beispiele

Beispiel #1 mysql_xdevapi\Session::createSchema() example

<?php
$uri  = 'mysqlx://happyuser:password@127.0.0.1:33060/';
$sess = mysql_xdevapi\getSession($uri);

try {

    if ($schema = $sess->createSchema('fruit')) {
        echo "Info: I created a schema named 'fruit'\n";
    }

} catch (Exception $e) {

   echo $e->getMessage();

}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Info: I created a schema named 'fruit'


Drop a schema

  • « Session::createSchema
  • Session::generateUUID »
  • PHP Manual
  • mysql_xdevapi\Session
  • Drop a schema

Session::dropSchema

(No version information available, might only be in Git)

Session::dropSchema — Drop a schema

Beschreibung

public mysql_xdevapi\Session::dropSchema ( string $schema_name ) : bool

Drop a schema (database).

Parameter-Liste

schema_name

Name of the schema to drop.

Rückgabewerte

true if the schema is dropped, or false if it does not exist or can't be dropped.

An E_WARNING level error is generated if the schema does not exist.

Beispiele

Beispiel #1 mysql_xdevapi\Session::dropSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->dropSchema("addressbook");

$session->close();
?>


Get new UUID

  • « Session::dropSchema
  • Session::getDefaultSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get new UUID

Session::generateUUID

(No version information available, might only be in Git)

Session::generateUUID — Get new UUID

Beschreibung

public mysql_xdevapi\Session::generateUUID ( ) : string

Generate a Universal Unique IDentifier (UUID) generated according to » RFC 4122.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The UUID; a string with a length of 32.

Beispiele

Beispiel #1 mysql_xdevapi\Session::generateUuid() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$uuid = $session->generateUuid();

var_dump($uuid);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(32) "484B18AC7980F8D4FE84613CDA5EE84B"


Get default schema name

  • « Session::generateUUID
  • Session::getSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get default schema name

Session::getDefaultSchema

(No version information available, might only be in Git)

Session::getDefaultSchema — Get default schema name

Beschreibung

public mysql_xdevapi\Session::getDefaultSchema ( ) : string

Retrieve name of the default schema that's typically set in the connection URI.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Name of the default schema defined by the connection, or null if one was not set.

Beispiele

Beispiel #1 mysql_xdevapi\Session::getSchema() example

<?php
$uri = "mysqlx://testuser:testpasswd@localhost:33160/testx?ssl-mode=disabled";
$session = mysql_xdevapi\getSession($uri);

$schema = $session->getDefaultSchema();
echo $schema;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

testx


Get a new schema object

  • « Session::getDefaultSchema
  • Session::getSchemas »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get a new schema object

Session::getSchema

(No version information available, might only be in Git)

Session::getSchema — Get a new schema object

Beschreibung

public mysql_xdevapi\Session::getSchema ( string $schema_name ) : mysql_xdevapi\Schema

A new Schema object for the provided schema name.

Parameter-Liste

schema_name

Name of the schema (database) to fetch a Schema object for.

Rückgabewerte

A Schema object.

Beispiele

Beispiel #1 mysql_xdevapi\Session::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$schema  = $session->getSchema("addressbook");

print_r($schema);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

mysql_xdevapi\Schema Object
(
    [name] => addressbook
)


Get the schemas

  • « Session::getSchema
  • Session::getServerVersion »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get the schemas

Session::getSchemas

(No version information available, might only be in Git)

Session::getSchemas — Get the schemas

Beschreibung

public mysql_xdevapi\Session::getSchemas ( ) : array

Get schema objects for all schemas available to the session.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array containing objects that represent all of the schemas available to the session.

Beispiele

Beispiel #1 mysql_xdevapi\Session::getSchemas() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$schemas  = $session->getSchemas();

print_r($schemas);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => mysql_xdevapi\Schema Object
        (
            [name] => addressbook
        )
    [1] => mysql_xdevapi\Schema Object
        (
            [name] => information_schema
        )
    ...


Get server version

  • « Session::getSchemas
  • Session::listClients »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get server version

Session::getServerVersion

(No version information available, might only be in Git)

Session::getServerVersion — Get server version

Beschreibung

public mysql_xdevapi\Session::getServerVersion ( ) : int

Retrieve the MySQL server version for the session.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The MySQL server version for the session, as an integer such as "80012".

Beispiele

Beispiel #1 mysql_xdevapi\Session::getServerVersion() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$version = $session->getServerVersion();

var_dump($version);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(80012)


Get client list

  • « Session::getServerVersion
  • Session::quoteName »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get client list

Session::listClients

(No version information available, might only be in Git)

Session::listClients — Get client list

Beschreibung

public mysql_xdevapi\Session::listClients ( ) : array

Get a list of client connections to the session's MySQL server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array containing the currently logged clients. The array elements are "client_id", "user", "host", and "sql_session".

Beispiele

Beispiel #1 mysql_xdevapi\Session::listClients() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$ids = $session->listClients();

var_dump($ids);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  array(4) {
    ["client_id"]=>
    int(61)
    ["user"]=>
    string(4) "root"
    ["host"]=>
    string(9) "localhost"
    ["sql_session"]=>
    int(72)
  }
}


Add quotes

  • « Session::listClients
  • Session::releaseSavepoint »
  • PHP Manual
  • mysql_xdevapi\Session
  • Add quotes

Session::quoteName

(No version information available, might only be in Git)

Session::quoteName — Add quotes

Beschreibung

public mysql_xdevapi\Session::quoteName ( string $name ) : string

A quoting function to escape SQL names and identifiers. It escapes the identifier given in accordance to the settings of the current connection. This escape function should not be used to escape values.

Parameter-Liste

name

The string to quote.

Rückgabewerte

The quoted string.

Beispiele

Beispiel #1 mysql_xdevapi\Session::quoteName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$first = "MySQL's test";
var_dump($first);
var_dump($session->quoteName($first));

$second = 'Another `test` "like" `this`';
var_dump($second);
var_dump($session->quoteName($second));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(12) "MySQL's test"
string(14) "`MySQL's test`"

string(28) "Another `test` "like" `this`"
string(34) "`Another ``test`` "like" ``this```"


Release set savepoint

  • « Session::quoteName
  • Session::rollback »
  • PHP Manual
  • mysql_xdevapi\Session
  • Release set savepoint

Session::releaseSavepoint

(No version information available, might only be in Git)

Session::releaseSavepoint — Release set savepoint

Beschreibung

public mysql_xdevapi\Session::releaseSavepoint ( string $name ) : void

Release a previously set savepoint.

Parameter-Liste

name

Name of the savepoint to release.

Rückgabewerte

An SqlStatementResult object.

Beispiele

Beispiel #1 mysql_xdevapi\Session::releaseSavepoint() example

<?php
$session    = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("friends");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Rollback transaction

  • « Session::releaseSavepoint
  • Session::rollbackTo »
  • PHP Manual
  • mysql_xdevapi\Session
  • Rollback transaction

Session::rollback

(No version information available, might only be in Git)

Session::rollback — Rollback transaction

Beschreibung

public mysql_xdevapi\Session::rollback ( ) : void

Rollback the transaction.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An SqlStatementResult object.

Beispiele

Beispiel #1 mysql_xdevapi\Session::rollback() example

<?php
$session    = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("names");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Rollback transaction to savepoint

  • « Session::rollback
  • Session::setSavepoint »
  • PHP Manual
  • mysql_xdevapi\Session
  • Rollback transaction to savepoint

Session::rollbackTo

(No version information available, might only be in Git)

Session::rollbackTo — Rollback transaction to savepoint

Beschreibung

public mysql_xdevapi\Session::rollbackTo ( string $name ) : void

Rollback the transaction back to the savepoint.

Parameter-Liste

name

Name of the savepoint to rollback to; case-insensitive.

Rückgabewerte

An SqlStatementResult object.

Beispiele

Beispiel #1 mysql_xdevapi\Session::rollbackTo() example

<?php
$session    = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("names");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint1 = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$savepoint2 = $session->setSavepoint();

$session->rollbackTo($savepoint1);
?>


Create savepoint

  • « Session::rollbackTo
  • Session::sql »
  • PHP Manual
  • mysql_xdevapi\Session
  • Create savepoint

Session::setSavepoint

(No version information available, might only be in Git)

Session::setSavepoint — Create savepoint

Beschreibung

public mysql_xdevapi\Session::setSavepoint ( string $name = ? ) : string

Create a new savepoint for the transaction.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

The name of the savepoint. The name is auto-generated if the optional name parameter is not defined as 'SAVEPOINT1', 'SAVEPOINT2', and so on.

Rückgabewerte

The name of the save point.

Beispiele

Beispiel #1 mysql_xdevapi\Session::setSavepoint() example

<?php
$session    = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("names");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Execute SQL query

  • « Session::setSavepoint
  • Session::startTransaction »
  • PHP Manual
  • mysql_xdevapi\Session
  • Execute SQL query

Session::sql

(No version information available, might only be in Git)

Session::sql — Execute SQL query

Beschreibung

public mysql_xdevapi\Session::sql ( string $query ) : mysql_xdevapi\SqlStatement

Create a native SQL statement. Placeholders are supported using the native "?" syntax. Use the execute method to execute the SQL statement.

Parameter-Liste

query

SQL statement to execute.

Rückgabewerte

An SqlStatement object.

Beispiele

Beispiel #1 mysql_xdevapi\Session::sql() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE addressbook")->execute();
?>


Start transaction

  • « Session::sql
  • mysql_xdevapi\SqlStatement »
  • PHP Manual
  • mysql_xdevapi\Session
  • Start transaction

Session::startTransaction

(No version information available, might only be in Git)

Session::startTransaction — Start transaction

Beschreibung

public mysql_xdevapi\Session::startTransaction ( ) : void

Start a new transaction.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An SqlStatementResult object.

Beispiele

Beispiel #1 mysql_xdevapi\Session::startTransaction() example

<?php
$session    = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("friends");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


SqlStatement class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\SqlStatement {
/* Constants */
const int EXECUTE_ASYNC = 1 ;
const int BUFFERED = 2 ;
/* Eigenschaften */
public $statement ;
/* Methoden */
public bind ( string $param ) : mysql_xdevapi\SqlStatement
public execute ( ) : mysql_xdevapi\Result
public getNextResult ( ) : mysql_xdevapi\Result
public getResult ( ) : mysql_xdevapi\Result
public hasMoreResults ( ) : bool
}

Eigenschaften

statement

Vordefinierte Konstanten

mysql_xdevapi\SqlStatement::EXECUTE_ASYNC

mysql_xdevapi\SqlStatement::BUFFERED

Inhaltsverzeichnis

  • SqlStatement::bind — Bind statement parameters
  • SqlStatement::__construct — Description constructor
  • SqlStatement::execute — Execute the operation
  • SqlStatement::getNextResult — Get next result
  • SqlStatement::getResult — Get result
  • SqlStatement::hasMoreResults — Check for more results


Bind statement parameters

  • « mysql_xdevapi\SqlStatement
  • SqlStatement::__construct »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Bind statement parameters

SqlStatement::bind

(No version information available, might only be in Git)

SqlStatement::bind — Bind statement parameters

Beschreibung

public mysql_xdevapi\SqlStatement::bind ( string $param ) : mysql_xdevapi\SqlStatement

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

param

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatement::bind() example

<?php

/* ... */

?>


Description constructor

  • « SqlStatement::bind
  • SqlStatement::execute »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Description constructor

SqlStatement::__construct

(No version information available, might only be in Git)

SqlStatement::__construct — Description constructor

Beschreibung

private mysql_xdevapi\SqlStatement::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatement::__construct() example

<?php

/* ... */

?>


Execute the operation

  • « SqlStatement::__construct
  • SqlStatement::getNextResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Execute the operation

SqlStatement::execute

(No version information available, might only be in Git)

SqlStatement::execute — Execute the operation

Beschreibung

public mysql_xdevapi\SqlStatement::execute ( ) : mysql_xdevapi\Result

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatement::execute() example

<?php

/* ... */

?>


Get next result

  • « SqlStatement::execute
  • SqlStatement::getResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Get next result

SqlStatement::getNextResult

(No version information available, might only be in Git)

SqlStatement::getNextResult — Get next result

Beschreibung

public mysql_xdevapi\SqlStatement::getNextResult ( ) : mysql_xdevapi\Result

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatement::getNextResult() example

<?php

/* ... */

?>


Get result

  • « SqlStatement::getNextResult
  • SqlStatement::hasMoreResults »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Get result

SqlStatement::getResult

(No version information available, might only be in Git)

SqlStatement::getResult — Get result

Beschreibung

public mysql_xdevapi\SqlStatement::getResult ( ) : mysql_xdevapi\Result

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatement::getResult() example

<?php

/* ... */

?>


Check for more results

  • « SqlStatement::getResult
  • mysql_xdevapi\SqlStatementResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Check for more results

SqlStatement::hasMoreResults

(No version information available, might only be in Git)

SqlStatement::hasMoreResults — Check for more results

Beschreibung

public mysql_xdevapi\SqlStatement::hasMoreResults ( ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the result set has more objects to fetch.

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatement::hasMoreResults() example

<?php

/* ... */

?>


SqlStatementResult class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\SqlStatementResult implements mysql_xdevapi\BaseResult , Traversable {
/* Methoden */
public fetchAll ( ) : array
public fetchOne ( ) : array
public getAffectedItemsCount ( ) : int
public getColumnsCount ( ) : int
public getColumnNames ( ) : array
public getColumns ( ) : Array
public getGeneratedIds ( ) : array
public getLastInsertId ( ) : String
public getWarnings ( ) : array
public getWarningCounts ( ) : int
public hasData ( ) : bool
public nextResult ( ) : mysql_xdevapi\Result
}

Inhaltsverzeichnis

  • SqlStatementResult::__construct — Description constructor
  • SqlStatementResult::fetchAll — Get all rows from result
  • SqlStatementResult::fetchOne — Get single row
  • SqlStatementResult::getAffectedItemsCount — Get affected row count
  • SqlStatementResult::getColumnsCount — Get column count
  • SqlStatementResult::getColumnNames — Get column names
  • SqlStatementResult::getColumns — Get columns
  • SqlStatementResult::getGeneratedIds — Get generated ids
  • SqlStatementResult::getLastInsertId — Get last insert id
  • SqlStatementResult::getWarnings — Get warnings from last operation
  • SqlStatementResult::getWarningsCount — Get warning count from last operation
  • SqlStatementResult::hasData — Check if result has data
  • SqlStatementResult::nextResult — Get next result


Description constructor

  • « mysql_xdevapi\SqlStatementResult
  • SqlStatementResult::fetchAll »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Description constructor

SqlStatementResult::__construct

(No version information available, might only be in Git)

SqlStatementResult::__construct — Description constructor

Beschreibung

private mysql_xdevapi\SqlStatementResult::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::__construct() example

<?php

/* ... */

?>


Get all rows from result

  • « SqlStatementResult::__construct
  • SqlStatementResult::fetchOne »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get all rows from result

SqlStatementResult::fetchAll

(No version information available, might only be in Git)

SqlStatementResult::fetchAll — Get all rows from result

Beschreibung

public mysql_xdevapi\SqlStatementResult::fetchAll ( ) : array

Fetch all the rows from the result set.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A numerical array with all results from the query; each result is an associative array. An empty array is returned if no rows are present.

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::fetchAll() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS dbtest")->execute();
$session->sql("CREATE DATABASE dbtest")->execute();
$session->sql("CREATE TABLE dbtest.workers(name text, age int, job text)")->execute();
$session->sql("INSERT INTO dbtest.workers values ('John', 42, 'bricklayer'), ('Sam', 33, 'carpenter')")->execute();

$schema = $session->getSchema("dbtest");
$table  = $schema->getTable("workers");

$rows = $session->sql("SELECT * FROM dbtest.workers")->execute()->fetchAll();

print_r($rows);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Get single row

  • « SqlStatementResult::fetchAll
  • SqlStatementResult::getAffectedItemsCount »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get single row

SqlStatementResult::fetchOne

(No version information available, might only be in Git)

SqlStatementResult::fetchOne — Get single row

Beschreibung

public mysql_xdevapi\SqlStatementResult::fetchOne ( ) : array

Fetch one row from the result set.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The result, as an associative array. In case there is not any result, null will be returned.

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::fetchOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS dbtest")->execute();
$session->sql("CREATE DATABASE dbtest")->execute();
$session->sql("CREATE TABLE dbtest.workers(name text, age int, job text)")->execute();
$session->sql("INSERT INTO dbtest.workers values ('John', 42, 'bricklayer'), ('Sam', 33, 'carpenter')")->execute();

$schema = $session->getSchema("dbtest");
$table  = $schema->getTable("workers");

$rows = $session->sql("SELECT * FROM dbtest.workers")->execute()->fetchOne();

print_r($rows);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [name] => John
    [age] => 42
    [job] => bricklayer
)


Get affected row count

  • « SqlStatementResult::fetchOne
  • SqlStatementResult::getColumnsCount »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get affected row count

SqlStatementResult::getAffectedItemsCount

(No version information available, might only be in Git)

SqlStatementResult::getAffectedItemsCount — Get affected row count

Beschreibung

public mysql_xdevapi\SqlStatementResult::getAffectedItemsCount ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::getAffectedItemsCount() example

<?php

/* ... */

?>


Get column count

  • « SqlStatementResult::getAffectedItemsCount
  • SqlStatementResult::getColumnNames »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get column count

SqlStatementResult::getColumnsCount

(No version information available, might only be in Git)

SqlStatementResult::getColumnsCount — Get column count

Beschreibung

public mysql_xdevapi\SqlStatementResult::getColumnsCount ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of columns; 0 if there are none.

Changelog

Version | Beschreibung
8.0.14 | Method renamed from getColumnCount() to getColumnsCount().

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::getColumnsCount() example

<?php

/* ... */

?>


Get column names

  • « SqlStatementResult::getColumnsCount
  • SqlStatementResult::getColumns »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get column names

SqlStatementResult::getColumnNames

(No version information available, might only be in Git)

SqlStatementResult::getColumnNames — Get column names

Beschreibung

public mysql_xdevapi\SqlStatementResult::getColumnNames ( ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::getColumnNames() example

<?php

/* ... */

?>


Get columns

  • « SqlStatementResult::getColumnNames
  • SqlStatementResult::getGeneratedIds »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get columns

SqlStatementResult::getColumns

(No version information available, might only be in Git)

SqlStatementResult::getColumns — Get columns

Beschreibung

public mysql_xdevapi\SqlStatementResult::getColumns ( ) : Array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::getColumns() example

<?php

/* ... */

?>


Get generated ids

  • « SqlStatementResult::getColumns
  • SqlStatementResult::getLastInsertId »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get generated ids

SqlStatementResult::getGeneratedIds

(No version information available, might only be in Git)

SqlStatementResult::getGeneratedIds — Get generated ids

Beschreibung

public mysql_xdevapi\SqlStatementResult::getGeneratedIds ( ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of generated _id's from the last operation, or an empty array if there are none.

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::getGeneratedIds() example

<?php

/* ... */

?>


Get last insert id

  • « SqlStatementResult::getGeneratedIds
  • SqlStatementResult::getWarnings »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get last insert id

SqlStatementResult::getLastInsertId

(No version information available, might only be in Git)

SqlStatementResult::getLastInsertId — Get last insert id

Beschreibung

public mysql_xdevapi\SqlStatementResult::getLastInsertId ( ) : String

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The ID for the last insert operation.

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::getLastInsertId() example

<?php

/* ... */

?>


Get warnings from last operation

  • « SqlStatementResult::getLastInsertId
  • SqlStatementResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get warnings from last operation

SqlStatementResult::getWarnings

(No version information available, might only be in Git)

SqlStatementResult::getWarnings — Get warnings from last operation

Beschreibung

public mysql_xdevapi\SqlStatementResult::getWarnings ( ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::getWarnings() example

<?php

/* ... */

?>


Get warning count from last operation

  • « SqlStatementResult::getWarnings
  • SqlStatementResult::hasData »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get warning count from last operation

SqlStatementResult::getWarningsCount

(No version information available, might only be in Git)

SqlStatementResult::getWarningsCount — Get warning count from last operation

Beschreibung

public mysql_xdevapi\SqlStatementResult::getWarningCounts ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of warnings raised during the last CRUD operation.

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::getWarningsCount() example

<?php

/* ... */

?>


Check if result has data

  • « SqlStatementResult::getWarningsCount
  • SqlStatementResult::nextResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Check if result has data

SqlStatementResult::hasData

(No version information available, might only be in Git)

SqlStatementResult::hasData — Check if result has data

Beschreibung

public mysql_xdevapi\SqlStatementResult::hasData ( ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the result set has data.

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::hasData() example

<?php

/* ... */

?>


Get next result

  • « SqlStatementResult::hasData
  • mysql_xdevapi\Statement »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get next result

SqlStatementResult::nextResult

(No version information available, might only be in Git)

SqlStatementResult::nextResult — Get next result

Beschreibung

public mysql_xdevapi\SqlStatementResult::nextResult ( ) : mysql_xdevapi\Result

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The next Result object from the result set.

Beispiele

Beispiel #1 mysql_xdevapi\SqlStatementResult::nextResult() example

<?php

/* ... */

?>


Statement class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\Statement {
/* Constants */
const int EXECUTE_ASYNC = 1 ;
const int BUFFERED = 2 ;
/* Methoden */
public getNextResult ( ) : mysql_xdevapi\Result
public getResult ( ) : mysql_xdevapi\Result
public hasMoreResults ( ) : bool
}

Vordefinierte Konstanten

mysql_xdevapi\Statement::EXECUTE_ASYNC

mysql_xdevapi\Statement::BUFFERED

Inhaltsverzeichnis

  • Statement::__construct — Description constructor
  • Statement::getNextResult — Get next result
  • Statement::getResult — Get result
  • Statement::hasMoreResults — Check if more results


Description constructor

  • « mysql_xdevapi\Statement
  • Statement::getNextResult »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Description constructor

Statement::__construct

(No version information available, might only be in Git)

Statement::__construct — Description constructor

Beschreibung

private mysql_xdevapi\Statement::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\Statement::__construct() example

<?php

/* ... */

?>


Get next result

  • « Statement::__construct
  • Statement::getResult »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Get next result

Statement::getNextResult

(No version information available, might only be in Git)

Statement::getNextResult — Get next result

Beschreibung

public mysql_xdevapi\Statement::getNextResult ( ) : mysql_xdevapi\Result

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\Statement::getNextResult() example

<?php

/* ... */

?>


Get result

  • « Statement::getNextResult
  • Statement::hasMoreResults »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Get result

Statement::getResult

(No version information available, might only be in Git)

Statement::getResult — Get result

Beschreibung

public mysql_xdevapi\Statement::getResult ( ) : mysql_xdevapi\Result

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\Statement::getResult() example

<?php

/* ... */

?>


Check if more results

  • « Statement::getResult
  • mysql_xdevapi\Table »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Check if more results

Statement::hasMoreResults

(No version information available, might only be in Git)

Statement::hasMoreResults — Check if more results

Beschreibung

public mysql_xdevapi\Statement::hasMoreResults ( ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 mysql_xdevapi\Statement::hasMoreResults() example

<?php

/* ... */

?>


Table class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Provides access to the table through INSERT/SELECT/UPDATE/DELETE statements.

Klassenbeschreibung

mysql_xdevapi\Table implements mysql_xdevapi\SchemaObject {
/* Eigenschaften */
public $name ;
/* Methoden */
public count ( ) : int
public delete ( ) : mysql_xdevapi\TableDelete
public existsInDatabase ( ) : bool
public getName ( ) : string
public getSchema ( ) : mysql_xdevapi\Schema
public getSession ( ) : mysql_xdevapi\Session
public insert ( mixed $columns , mixed ...$more_columns ) : mysql_xdevapi\TableInsert
public isView ( ) : bool
public select ( mixed $columns , mixed ...$more_columns ) : mysql_xdevapi\TableSelect
public update ( ) : mysql_xdevapi\TableUpdate
}

Eigenschaften

name

Inhaltsverzeichnis

  • Table::__construct — Table constructor
  • Table::count — Get row count
  • Table::delete — Delete rows from table
  • Table::existsInDatabase — Check if table exists in database
  • Table::getName — Get table name
  • Table::getSchema — Get table schema
  • Table::getSession — Get table session
  • Table::insert — Insert table rows
  • Table::isView — Check if table is view
  • Table::select — Select rows from table
  • Table::update — Update rows in table


Table constructor

  • « mysql_xdevapi\Table
  • Table::count »
  • PHP Manual
  • mysql_xdevapi\Table
  • Table constructor

Table::__construct

(No version information available, might only be in Git)

Table::__construct — Table constructor

Beschreibung

private mysql_xdevapi\Table::__construct ( )

Construct a table object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\Table::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");
?>


Get row count

  • « Table::__construct
  • Table::delete »
  • PHP Manual
  • mysql_xdevapi\Table
  • Get row count

Table::count

(No version information available, might only be in Git)

Table::count — Get row count

Beschreibung

public mysql_xdevapi\Table::count ( ) : int

Fetch the number of rows in the table.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The total number of rows in the table.

Beispiele

Beispiel #1 mysql_xdevapi\Table::count() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

var_dump($table->count());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2)


Delete rows from table

  • « Table::count
  • Table::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Table
  • Delete rows from table

Table::delete

(No version information available, might only be in Git)

Table::delete — Delete rows from table

Beschreibung

public mysql_xdevapi\Table::delete ( ) : mysql_xdevapi\TableDelete

Deletes rows from a table.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A TableDelete object; use the execute() method to execute the delete query.

Beispiele

Beispiel #1 mysql_xdevapi\Table::delete() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()->where("name = :name")->orderby("age DESC")->limit(1)->bind(['name' => 'John'])->execute();
?>


Check if table exists in database

  • « Table::delete
  • Table::getName »
  • PHP Manual
  • mysql_xdevapi\Table
  • Check if table exists in database

Table::existsInDatabase

(No version information available, might only be in Git)

Table::existsInDatabase — Check if table exists in database

Beschreibung

public mysql_xdevapi\Table::existsInDatabase ( ) : bool

Verifies if this table exists in the database.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if table exists in the database, else false if it does not.

Beispiele

Beispiel #1 mysql_xdevapi\Table::existsInDatabase() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

if ($table->existsInDatabase()) {
  echo "Yes, this table still exists in the session's schema.";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Yes, this table still exists in the session's schema.


Get table name

  • « Table::existsInDatabase
  • Table::getSchema »
  • PHP Manual
  • mysql_xdevapi\Table
  • Get table name

Table::getName

(No version information available, might only be in Git)

Table::getName — Get table name

Beschreibung

public mysql_xdevapi\Table::getName ( ) : string

Returns the name of this database object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The name of this database object.

Beispiele

Beispiel #1 mysql_xdevapi\Table::getName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

var_dump($table->getName());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(5) "names"


Get table schema

  • « Table::getName
  • Table::getSession »
  • PHP Manual
  • mysql_xdevapi\Table
  • Get table schema

Table::getSchema

(No version information available, might only be in Git)

Table::getSchema — Get table schema

Beschreibung

public mysql_xdevapi\Table::getSchema ( ) : mysql_xdevapi\Schema

Fetch the schema associated with the table.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Schema object.

Beispiele

Beispiel #1 mysql_xdevapi\Table::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

var_dump($table->getSchema());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(mysql_xdevapi\Schema)#9 (1) {
  ["name"]=>
  string(11) "addressbook"
}


Get table session

  • « Table::getSchema
  • Table::insert »
  • PHP Manual
  • mysql_xdevapi\Table
  • Get table session

Table::getSession

(No version information available, might only be in Git)

Table::getSession — Get table session

Beschreibung

public mysql_xdevapi\Table::getSession ( ) : mysql_xdevapi\Session

Get session associated with the table.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Session object.

Beispiele

Beispiel #1 mysql_xdevapi\Table::getSession() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

var_dump($table->getSession());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(mysql_xdevapi\Session)#9 (0) {
}


Insert table rows

  • « Table::getSession
  • Table::isView »
  • PHP Manual
  • mysql_xdevapi\Table
  • Insert table rows

Table::insert

(No version information available, might only be in Git)

Table::insert — Insert table rows

Beschreibung

public mysql_xdevapi\Table::insert ( mixed $columns , mixed ...$more_columns ) : mysql_xdevapi\TableInsert

Inserts rows into a table.

Parameter-Liste

columns

The columns to insert data into. Can be an array with one or more values, or a string.

more_columns

Additional columns definitions.

Rückgabewerte

A TableInsert object; use the execute() method to execute the insert statement.

Beispiele

Beispiel #1 mysql_xdevapi\Table::insert() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table ->insert("name", "age")
  ->values(["Suzanne", 31],["Julie", 43])
  ->execute();
?>


Check if table is view

  • « Table::insert
  • Table::select »
  • PHP Manual
  • mysql_xdevapi\Table
  • Check if table is view

Table::isView

(No version information available, might only be in Git)

Table::isView — Check if table is view

Beschreibung

public mysql_xdevapi\Table::isView ( ) : bool

Determine if the underlying object is a view or not.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the underlying object is a view, otherwise false.

Beispiele

Beispiel #1 mysql_xdevapi\Table::isView() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names

if ($table->isView()) {
    echo "This is a view.";
} else {
    echo "This is not a view.";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2)


Select rows from table

  • « Table::isView
  • Table::update »
  • PHP Manual
  • mysql_xdevapi\Table
  • Select rows from table

Table::select

(No version information available, might only be in Git)

Table::select — Select rows from table

Beschreibung

public mysql_xdevapi\Table::select ( mixed $columns , mixed ...$more_columns ) : mysql_xdevapi\TableSelect

Fetches data from a table.

Parameter-Liste

columns

The columns to select data from. Can be an array with one or more values, or a string.

more_columns

Additional columns parameter definitions.

Rückgabewerte

A TableSelect object; use the execute() method to execute the select and return a RowResult object.

Beispiele

Beispiel #1 mysql_xdevapi\Table::count() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$row = $table->select('name', 'age')->execute()->fetchAll();

print_r($row);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Update rows in table

  • « Table::select
  • mysql_xdevapi\TableDelete »
  • PHP Manual
  • mysql_xdevapi\Table
  • Update rows in table

Table::update

(No version information available, might only be in Git)

Table::update — Update rows in table

Beschreibung

public mysql_xdevapi\Table::update ( ) : mysql_xdevapi\TableUpdate

Updates columns in a table.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A TableUpdate object; use the execute() method to execute the update statement.

Beispiele

Beispiel #1 mysql_xdevapi\Table::update() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->update()->set('age',34)->where('name = "Sam"')->limit(1)->execute();
?>


TableDelete class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

A statement for delete operations on Table.

Klassenbeschreibung

mysql_xdevapi\TableDelete implements mysql_xdevapi\Executable {
/* Methoden */
public bind ( array $placeholder_values ) : mysql_xdevapi\TableDelete
public execute ( ) : mysql_xdevapi\Result
public limit ( int $rows ) : mysql_xdevapi\TableDelete
public orderby ( string $orderby_expr ) : mysql_xdevapi\TableDelete
public where ( string $where_expr ) : mysql_xdevapi\TableDelete
}

Inhaltsverzeichnis

  • TableDelete::bind — Bind delete query parameters
  • TableDelete::__construct — TableDelete constructor
  • TableDelete::execute — Execute delete query
  • TableDelete::limit — Limit deleted rows
  • TableDelete::orderby — Set delete sort criteria
  • TableDelete::where — Set delete search condition


Bind delete query parameters

  • « mysql_xdevapi\TableDelete
  • TableDelete::__construct »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Bind delete query parameters

TableDelete::bind

(No version information available, might only be in Git)

TableDelete::bind — Bind delete query parameters

Beschreibung

public mysql_xdevapi\TableDelete::bind ( array $placeholder_values ) : mysql_xdevapi\TableDelete

Binds a value to a specific placeholder.

Parameter-Liste

placeholder_values

The name of the placeholder and the value to bind.

Rückgabewerte

A TableDelete object.

Beispiele

Beispiel #1 mysql_xdevapi\TableDelete::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()
  ->where("name = :name")
  ->bind(['name' => 'John'])
  ->orderby("age DESC")
  ->limit(1)
  ->execute();

?>


TableDelete constructor

  • « TableDelete::bind
  • TableDelete::execute »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • TableDelete constructor

TableDelete::__construct

(No version information available, might only be in Git)

TableDelete::__construct — TableDelete constructor

Beschreibung

private mysql_xdevapi\TableDelete::__construct ( )

Initiated by using the delete() method.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\TableDelete::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()
  ->where("name = :name")
  ->bind(['name' => 'John'])
  ->orderby("age DESC")
  ->limit(1)
  ->execute();

?>


Execute delete query

  • « TableDelete::__construct
  • TableDelete::limit »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Execute delete query

TableDelete::execute

(No version information available, might only be in Git)

TableDelete::execute — Execute delete query

Beschreibung

public mysql_xdevapi\TableDelete::execute ( ) : mysql_xdevapi\Result

Execute the delete query.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Result object.

Beispiele

Beispiel #1 mysql_xdevapi\TableDelete::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()
  ->where("name = :name")
  ->bind(['name' => 'John'])
  ->orderby("age DESC")
  ->limit(1)
  ->execute();

?>


Limit deleted rows

  • « TableDelete::execute
  • TableDelete::orderby »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Limit deleted rows

TableDelete::limit

(No version information available, might only be in Git)

TableDelete::limit — Limit deleted rows

Beschreibung

public mysql_xdevapi\TableDelete::limit ( int $rows ) : mysql_xdevapi\TableDelete

Sets the maximum number of records or documents to delete.

Parameter-Liste

rows

The maximum number of records or documents to delete.

Rückgabewerte

TableDelete object.

Beispiele

Beispiel #1 mysql_xdevapi\TableDelete::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()
  ->where("name = :name")
  ->bind(['name' => 'John'])
  ->orderby("age DESC")
  ->limit(1)
  ->execute();

?>


Set delete sort criteria

  • « TableDelete::limit
  • TableDelete::where »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Set delete sort criteria

TableDelete::orderby

(No version information available, might only be in Git)

TableDelete::orderby — Set delete sort criteria

Beschreibung

public mysql_xdevapi\TableDelete::orderby ( string $orderby_expr ) : mysql_xdevapi\TableDelete

Set the order options for a result set.

Parameter-Liste

orderby_expr

The sort definition.

Rückgabewerte

A TableDelete object.

Beispiele

Beispiel #1 mysql_xdevapi\TableDelete::orderBy() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()
  ->where("age = :age")
  ->bind(['age' => 42])
  ->orderby("name DESC")
  ->limit(1)
  ->execute();

?>


Set delete search condition

  • « TableDelete::orderby
  • mysql_xdevapi\TableInsert »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Set delete search condition

TableDelete::where

(No version information available, might only be in Git)

TableDelete::where — Set delete search condition

Beschreibung

public mysql_xdevapi\TableDelete::where ( string $where_expr ) : mysql_xdevapi\TableDelete

Sets the search condition to filter.

Parameter-Liste

where_expr

Define the search condition to filter documents or records.

Rückgabewerte

TableDelete object.

Beispiele

Beispiel #1 mysql_xdevapi\TableDelete::where() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->delete()
  ->where("id = :id")
  ->bind(['id' => 42])
  ->limit(1)
  ->execute();

?>


TableInsert class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

A statement for insert operations on Table.

Klassenbeschreibung

mysql_xdevapi\TableInsert implements mysql_xdevapi\Executable {
/* Methoden */
public execute ( ) : mysql_xdevapi\Result
public values ( array $row_values ) : mysql_xdevapi\TableInsert
}

Inhaltsverzeichnis

  • TableInsert::__construct — TableInsert constructor
  • TableInsert::execute — Execute insert query
  • TableInsert::values — Add insert row values


TableInsert constructor

  • « mysql_xdevapi\TableInsert
  • TableInsert::execute »
  • PHP Manual
  • mysql_xdevapi\TableInsert
  • TableInsert constructor

TableInsert::__construct

(No version information available, might only be in Git)

TableInsert::__construct — TableInsert constructor

Beschreibung

private mysql_xdevapi\TableInsert::__construct ( )

Initiated by using the insert() method.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\TableInsert::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table
  ->insert("name", "age")
  ->values(["Suzanne", 31],["Julie", 43])
  ->execute();
?>


Execute insert query

  • « TableInsert::__construct
  • TableInsert::values »
  • PHP Manual
  • mysql_xdevapi\TableInsert
  • Execute insert query

TableInsert::execute

(No version information available, might only be in Git)

TableInsert::execute — Execute insert query

Beschreibung

public mysql_xdevapi\TableInsert::execute ( ) : mysql_xdevapi\Result

Execute the statement.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Result object.

Beispiele

Beispiel #1 mysql_xdevapi\TableInsert::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table
  ->insert("name", "age")
  ->values(["Suzanne", 31],["Julie", 43])
  ->execute();
?>


Add insert row values

  • « TableInsert::execute
  • mysql_xdevapi\TableSelect »
  • PHP Manual
  • mysql_xdevapi\TableInsert
  • Add insert row values

TableInsert::values

(No version information available, might only be in Git)

TableInsert::values — Add insert row values

Beschreibung

public mysql_xdevapi\TableInsert::values ( array $row_values ) : mysql_xdevapi\TableInsert

Set the values to be inserted.

Parameter-Liste

row_values

Values (an array) of columns to insert.

Rückgabewerte

A TableInsert object.

Beispiele

Beispiel #1 mysql_xdevapi\TableInsert::values() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table
  ->insert("name", "age")
  ->values(["Suzanne", 31],["Julie", 43])
  ->execute();
?>


TableSelect class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

A statement for record retrieval operations on a Table.

Klassenbeschreibung

mysql_xdevapi\TableSelect implements mysql_xdevapi\Executable {
/* Methoden */
public bind ( array $placeholder_values ) : mysql_xdevapi\TableSelect
public execute ( ) : mysql_xdevapi\RowResult
public groupBy ( mixed $sort_expr ) : mysql_xdevapi\TableSelect
public having ( string $sort_expr ) : mysql_xdevapi\TableSelect
public limit ( int $rows ) : mysql_xdevapi\TableSelect
public lockExclusive ( int $lock_waiting_option = ? ) : mysql_xdevapi\TableSelect
public lockShared ( int $lock_waiting_option = ? ) : mysql_xdevapi\TableSelect
public offset ( int $position ) : mysql_xdevapi\TableSelect
public orderby ( mixed $sort_expr , mixed ...$sort_exprs ) : mysql_xdevapi\TableSelect
public where ( string $where_expr ) : mysql_xdevapi\TableSelect
}

Inhaltsverzeichnis

  • TableSelect::bind — Bind select query parameters
  • TableSelect::__construct — TableSelect constructor
  • TableSelect::execute — Execute select statement
  • TableSelect::groupBy — Set select grouping criteria
  • TableSelect::having — Set select having condition
  • TableSelect::limit — Limit selected rows
  • TableSelect::lockExclusive — Execute EXCLUSIVE LOCK
  • TableSelect::lockShared — Execute SHARED LOCK
  • TableSelect::offset — Set limit offset
  • TableSelect::orderby — Set select sort criteria
  • TableSelect::where — Set select search condition


Bind select query parameters

  • « mysql_xdevapi\TableSelect
  • TableSelect::__construct »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Bind select query parameters

TableSelect::bind

(No version information available, might only be in Git)

TableSelect::bind — Bind select query parameters

Beschreibung

public mysql_xdevapi\TableSelect::bind ( array $placeholder_values ) : mysql_xdevapi\TableSelect

Binds a value to a specific placeholder.

Parameter-Liste

placeholder_values

The name of the placeholder, and the value to bind.

Rückgabewerte

A TableSelect object.

Beispiele

Beispiel #1 mysql_xdevapi\TableSelect::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name','age')
  ->where('name like :name and age > :age')
  ->bind(['name' => 'John', 'age' => 42])
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


TableSelect constructor

  • « TableSelect::bind
  • TableSelect::execute »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • TableSelect constructor

TableSelect::__construct

(No version information available, might only be in Git)

TableSelect::__construct — TableSelect constructor

Beschreibung

private mysql_xdevapi\TableSelect::__construct ( )

An object returned by the select() method; use execute() to execute the query.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\TableSelect::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name','age')
  ->where('name like :name and age > :age')
  ->bind(['name' => 'John', 'age' => 42])
  ->orderBy('age desc')
  ->execute();

$row = $result->fetchAll();
print_r($row);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Execute select statement

  • « TableSelect::__construct
  • TableSelect::groupBy »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Execute select statement

TableSelect::execute

(No version information available, might only be in Git)

TableSelect::execute — Execute select statement

Beschreibung

public mysql_xdevapi\TableSelect::execute ( ) : mysql_xdevapi\RowResult

Execute the select statement by chaining it with the execute() method.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A RowResult object.

Beispiele

Beispiel #1 mysql_xdevapi\TableSelect::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name','age')
  ->where('name like :name and age > :age')
  ->bind(['name' => 'John', 'age' => 42])
  ->orderBy('age desc')
  ->execute();

$row = $result->fetchAll();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Set select grouping criteria

  • « TableSelect::execute
  • TableSelect::having »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set select grouping criteria

TableSelect::groupBy

(No version information available, might only be in Git)

TableSelect::groupBy — Set select grouping criteria

Beschreibung

public mysql_xdevapi\TableSelect::groupBy ( mixed $sort_expr ) : mysql_xdevapi\TableSelect

Sets a grouping criteria for the result set.

Parameter-Liste

sort_expr

The grouping criteria.

Rückgabewerte

A TableSelect object.

Beispiele

Beispiel #1 mysql_xdevapi\TableSelect::groupBy() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 42)")->execute();
$session->sql("INSERT INTO addressbook.names values ('Suki', 31)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('count(*) as count', 'age')
  ->groupBy('age')->orderBy('age asc')
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [count] => 1
            [age] => 31
        )
    [1] => Array
        (
            [count] => 2
            [age] => 42
        )
)


Set select having condition

  • « TableSelect::groupBy
  • TableSelect::limit »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set select having condition

TableSelect::having

(No version information available, might only be in Git)

TableSelect::having — Set select having condition

Beschreibung

public mysql_xdevapi\TableSelect::having ( string $sort_expr ) : mysql_xdevapi\TableSelect

Sets a condition for records to consider in aggregate function operations.

Parameter-Liste

sort_expr

A condition on the aggregate functions used on the grouping criteria.

Rückgabewerte

A TableSelect object.

Beispiele

Beispiel #1 mysql_xdevapi\TableSelect::having() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 42)")->execute();
$session->sql("INSERT INTO addressbook.names values ('Suki', 31)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('count(*) as count', 'age')
  ->groupBy('age')->orderBy('age asc')
  ->having('count > 1')
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [count] => 2
            [age] => 42
        )
)


Limit selected rows

  • « TableSelect::having
  • TableSelect::lockExclusive »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Limit selected rows

TableSelect::limit

(No version information available, might only be in Git)

TableSelect::limit — Limit selected rows

Beschreibung

public mysql_xdevapi\TableSelect::limit ( int $rows ) : mysql_xdevapi\TableSelect

Sets the maximum number of records or documents to return.

Parameter-Liste

rows

The maximum number of records or documents.

Rückgabewerte

A TableSelect object.

Beispiele

Beispiel #1 mysql_xdevapi\TableSelect::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name', 'age')
  ->limit(1)
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Execute EXCLUSIVE LOCK

  • « TableSelect::limit
  • TableSelect::lockShared »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Execute EXCLUSIVE LOCK

TableSelect::lockExclusive

(No version information available, might only be in Git)

TableSelect::lockExclusive — Execute EXCLUSIVE LOCK

Beschreibung

public mysql_xdevapi\TableSelect::lockExclusive ( int $lock_waiting_option = ? ) : mysql_xdevapi\TableSelect

Execute a read operation with EXCLUSIVE LOCK. Only one lock can be active at a time.

Parameter-Liste

lock_waiting_option

The optional waiting option that defaults to MYSQLX_LOCK_DEFAULT. Valid values are:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Rückgabewerte

TableSelect object.

Beispiele

Beispiel #1 mysql_xdevapi\TableSelect::lockExclusive() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$session->startTransaction();

$result = $table->select('name', 'age')
  ->lockExclusive(MYSQLX_LOCK_NOWAIT)
  ->execute();

$session->commit();

$row = $result->fetchAll();
print_r($row);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 42
        )
)


Execute SHARED LOCK

  • « TableSelect::lockExclusive
  • TableSelect::offset »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Execute SHARED LOCK

TableSelect::lockShared

(No version information available, might only be in Git)

TableSelect::lockShared — Execute SHARED LOCK

Beschreibung

public mysql_xdevapi\TableSelect::lockShared ( int $lock_waiting_option = ? ) : mysql_xdevapi\TableSelect

Execute a read operation with SHARED LOCK. Only one lock can be active at a time.

Parameter-Liste

lock_waiting_option

The optional waiting option that defaults to MYSQLX_LOCK_DEFAULT. Valid values are:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Rückgabewerte

A TableSelect object.

Beispiele

Beispiel #1 mysql_xdevapi\TableSelect::lockShared() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$session->startTransaction();

$result = $table->select('name', 'age')
  ->lockShared(MYSQLX_LOCK_NOWAIT)
  ->execute();

$session->commit();

$row = $result->fetchAll();
print_r($row);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 42
        )
)


Set limit offset

  • « TableSelect::lockShared
  • TableSelect::orderby »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set limit offset

TableSelect::offset

(No version information available, might only be in Git)

TableSelect::offset — Set limit offset

Beschreibung

public mysql_xdevapi\TableSelect::offset ( int $position ) : mysql_xdevapi\TableSelect

Skip given number of rows in result.

Parameter-Liste

position

The limit offset.

Rückgabewerte

A TableSelect object.

Beispiele

Beispiel #1 mysql_xdevapi\TableSelect::offset() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 42)")->execute();

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name', 'age')
  ->limit(1)
  ->offset(1)
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => Sam
            [age] => 42
        )
)


Set select sort criteria

  • « TableSelect::offset
  • TableSelect::where »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set select sort criteria

TableSelect::orderby

(No version information available, might only be in Git)

TableSelect::orderby — Set select sort criteria

Beschreibung

public mysql_xdevapi\TableSelect::orderby ( mixed $sort_expr , mixed ...$sort_exprs ) : mysql_xdevapi\TableSelect

Sets the order by criteria.

Parameter-Liste

sort_expr

The expressions that define the order by criteria. Can be an array with one or more expressions, or a string.

sort_exprs

Additional sort_expr parameters.

Rückgabewerte

A TableSelect object.

Beispiele

Beispiel #1 mysql_xdevapi\TableSelect::orderBy() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name', 'age')
  ->orderBy('name desc')
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => Sam
            [age] => 42
        )
    [1] => Array
        (
            [name] => John
            [age] => 42
        )
)


Set select search condition

  • « TableSelect::orderby
  • mysql_xdevapi\TableUpdate »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set select search condition

TableSelect::where

(No version information available, might only be in Git)

TableSelect::where — Set select search condition

Beschreibung

public mysql_xdevapi\TableSelect::where ( string $where_expr ) : mysql_xdevapi\TableSelect

Sets the search condition to filter.

Parameter-Liste

where_expr

Define the search condition to filter documents or records.

Rückgabewerte

A TableSelect object.

Beispiele

Beispiel #1 mysql_xdevapi\TableSelect::where() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$result = $table->select('name','age')
  ->where('name like :name and age > :age')
  ->bind(['name' => 'John', 'age' => 42])
  ->execute();

$row = $result->fetchAll();
print_r($row);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


TableUpdate class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

A statement for record update operations on a Table.

Klassenbeschreibung

mysql_xdevapi\TableUpdate implements mysql_xdevapi\Executable {
/* Methoden */
public bind ( array $placeholder_values ) : mysql_xdevapi\TableUpdate
public execute ( ) : mysql_xdevapi\TableUpdate
public limit ( int $rows ) : mysql_xdevapi\TableUpdate
public orderby ( mixed $orderby_expr , mixed ...$orderby_exprs ) : mysql_xdevapi\TableUpdate
public set ( string $table_field , string $expression_or_literal ) : mysql_xdevapi\TableUpdate
public where ( string $where_expr ) : mysql_xdevapi\TableUpdate
}

Inhaltsverzeichnis

  • TableUpdate::bind — Bind update query parameters
  • TableUpdate::__construct — TableUpdate constructor
  • TableUpdate::execute — Execute update query
  • TableUpdate::limit — Limit update row count
  • TableUpdate::orderby — Set sorting criteria
  • TableUpdate::set — Add field to be updated
  • TableUpdate::where — Set search filter


Bind update query parameters

  • « mysql_xdevapi\TableUpdate
  • TableUpdate::__construct »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Bind update query parameters

TableUpdate::bind

(No version information available, might only be in Git)

TableUpdate::bind — Bind update query parameters

Beschreibung

public mysql_xdevapi\TableUpdate::bind ( array $placeholder_values ) : mysql_xdevapi\TableUpdate

Binds a value to a specific placeholder.

Parameter-Liste

placeholder_values

The name of the placeholder, and the value to bind, defined as a JSON array.

Rückgabewerte

A TableUpdate object.

Beispiele

Beispiel #1 mysql_xdevapi\TableUpdate::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$table->update()
  ->set('status', 'admin')
  ->where('name = :name and age > :age')
  ->bind(['name' => 'Bernie', 'age' => 2000])
  ->execute();

?>


TableUpdate constructor

  • « TableUpdate::bind
  • TableUpdate::execute »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • TableUpdate constructor

TableUpdate::__construct

(No version information available, might only be in Git)

TableUpdate::__construct — TableUpdate constructor

Beschreibung

private mysql_xdevapi\TableUpdate::__construct ( )

Initiated by using the update() method.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\TableUpdate::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$res = $table->update()
  ->set('level', 3)
  ->where('age > 15 and age < 22')
  ->limit(4)
  ->orderby(['age asc','name desc'])
  ->execute();

?>


Execute update query

  • « TableUpdate::__construct
  • TableUpdate::limit »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Execute update query

TableUpdate::execute

(No version information available, might only be in Git)

TableUpdate::execute — Execute update query

Beschreibung

public mysql_xdevapi\TableUpdate::execute ( ) : mysql_xdevapi\TableUpdate

Executes the update statement.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A TableUpdate object.

Beispiele

Beispiel #1 mysql_xdevapi\TableUpdate::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$res = $table->update()
  ->set('level', 3)
  ->where('age > 15 and age < 22')
  ->limit(4)
  ->orderby(['age asc','name desc'])
  ->execute();

?>


Limit update row count

  • « TableUpdate::execute
  • TableUpdate::orderby »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Limit update row count

TableUpdate::limit

(No version information available, might only be in Git)

TableUpdate::limit — Limit update row count

Beschreibung

public mysql_xdevapi\TableUpdate::limit ( int $rows ) : mysql_xdevapi\TableUpdate

Set the maximum number of records or documents update.

Parameter-Liste

rows

The maximum number of records or documents to update.

Rückgabewerte

A TableUpdate object.

Beispiele

Beispiel #1 mysql_xdevapi\TableUpdate::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$res = $table->update()
  ->set('level', 3)
  ->where('age > 15 and age < 22')
  ->limit(4)
  ->orderby(['age asc','name desc'])
  ->execute();

?>


Set sorting criteria

  • « TableUpdate::limit
  • TableUpdate::set »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Set sorting criteria

TableUpdate::orderby

(No version information available, might only be in Git)

TableUpdate::orderby — Set sorting criteria

Beschreibung

public mysql_xdevapi\TableUpdate::orderby ( mixed $orderby_expr , mixed ...$orderby_exprs ) : mysql_xdevapi\TableUpdate

Sets the sorting criteria.

Parameter-Liste

orderby_expr

The expressions that define the order by criteria. Can be an array with one or more expressions, or a string.

orderby_exprs

Additional sort_expr parameters.

Rückgabewerte

TableUpdate object.

Beispiele

Beispiel #1 mysql_xdevapi\TableUpdate::orderby() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$res = $table->update()
  ->set('level', 3)
  ->where('age > 15 and age < 22')
  ->limit(4)
  ->orderby(['age asc','name desc'])
  ->execute();
?>


Add field to be updated

  • « TableUpdate::orderby
  • TableUpdate::where »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Add field to be updated

TableUpdate::set

(No version information available, might only be in Git)

TableUpdate::set — Add field to be updated

Beschreibung

public mysql_xdevapi\TableUpdate::set ( string $table_field , string $expression_or_literal ) : mysql_xdevapi\TableUpdate

Updates the column value on records in a table.

Parameter-Liste

table_field

The column name to be updated.

expression_or_literal

The value to be set on the specified column.

Rückgabewerte

TableUpdate object.

Beispiele

Beispiel #1 mysql_xdevapi\TableUpdate::set() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$res = $table->update()
  ->set('level', 3)
  ->where('age > 15 and age < 22')
  ->limit(4)
  ->orderby(['age asc','name desc'])
  ->execute();

?>


Set search filter

  • « TableUpdate::set
  • mysql_xdevapi\Warning »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Set search filter

TableUpdate::where

(No version information available, might only be in Git)

TableUpdate::where — Set search filter

Beschreibung

public mysql_xdevapi\TableUpdate::where ( string $where_expr ) : mysql_xdevapi\TableUpdate

Set the search condition to filter.

Parameter-Liste

where_expr

The search condition to filter documents or records.

Rückgabewerte

A TableUpdate object.

Beispiele

Beispiel #1 mysql_xdevapi\TableUpdate::where() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table  = $schema->getTable("names");

$res = $table->update()
  ->set('level', 3)
  ->where('age > 15 and age < 22')
  ->limit(4)
  ->orderby(['age asc','name desc'])
  ->execute();

?>


Warning class

(PECL mysql-xdevapi >= 8.0.11)

Einführung

Klassenbeschreibung

mysql_xdevapi\Warning {
/* Eigenschaften */
public $message ;
public $level ;
public $code ;
/* Constructor */
private __construct ( )
}

Eigenschaften

message

level

code

Inhaltsverzeichnis

  • Warning::__construct — Warning constructor


Warning constructor

  • « mysql_xdevapi\Warning
  • MySQL (Original) »
  • PHP Manual
  • mysql_xdevapi\Warning
  • Warning constructor

Warning::__construct

(No version information available, might only be in Git)

Warning::__construct — Warning constructor

Beschreibung

private mysql_xdevapi\Warning::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 mysql_xdevapi\Warning::__construct() example

<?php

/* ... */

?>


Ursprüngliche MySQL API

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Changelog
  • Vordefinierte Konstanten
  • Beispiele
    • MySQL Extension Übersichtsbeispiel
  • MySQL Funktionen
    • mysql_affected_rows — Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL-Operation
    • mysql_client_encoding — Liefert den Namen des Zeichensatzes
    • mysql_close — Schließt eine Verbindung zu MySQL
    • mysql_connect — Öffnet eine Verbindung zu einem MySQL-Server
    • mysql_create_db — Legt eine MySQL-Datenbank an
    • mysql_data_seek — Bewegt den internen Ergebnis-Zeiger
    • mysql_db_name — Liefert den Namen einer Datenbank vom mysql_list_dbs-Aufruf
    • mysql_db_query — Wählt eine Datenbank aus und führt darauf eine Abfrage aus
    • mysql_drop_db — Löscht eine Datenbank
    • mysql_errno — Liefert die Nummer einer Fehlermeldung einer zuvor ausgeführten MySQL-Operation
    • mysql_error — Liefert den Fehlertext der zuvor ausgeführten MySQL-Operation
    • mysql_escape_string — Maskiert eine Zeichenkette zur Verwendung in einer MySQL-Abfrage
    • mysql_fetch_array — Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
    • mysql_fetch_assoc — Liefert einen Datensatz als assoziatives Array
    • mysql_fetch_field — Liefert ein Objekt mit Spalteninformationen aus einem Abfrageergebnis
    • mysql_fetch_lengths — Liefert die Längen aller Felder aus einem Ergebnis
    • mysql_fetch_object — Liefert eine Ergebniszeile als Objekt
    • mysql_fetch_row — Liefert einen Datensatz als indiziertes Array
    • mysql_field_flags — Liefert die Flags des angegebenen Feldes aus einem Abfrageergebnis
    • mysql_field_len — Liefert die Länge des angegebenen Feldes
    • mysql_field_name — Liefert den Namen des angegebenen Feldes aus einem Ergebnis
    • mysql_field_seek — Setzt den Ergebniszeiger auf einen bestimmten Feldoffset
    • mysql_field_table — Liefert den Namen der Tabelle, die das genannte Feld enthält
    • mysql_field_type — Liefert den Typ des spezifizierten Feldes aus einem Ergebnis
    • mysql_free_result — Gibt belegten Speicher wieder frei
    • mysql_get_client_info — Liefert MySQL-Clientinformationen
    • mysql_get_host_info — Liefert Informationen zum MySQL-Host
    • mysql_get_proto_info — Liefert MySQL-Protokollinformationen
    • mysql_get_server_info — Liefert Informationen zum MySQL-Server
    • mysql_info — Liefert Informationen über die zuletzt ausgeführte Anfrage
    • mysql_insert_id — Liefert die ID, die in der vorherigen Abfrage erzeugt wurde
    • mysql_list_dbs — Listet die verfügbaren Datenbanken (Schemata) auf einem MySQL-Server auf
    • mysql_list_fields — Listet MySQL-Tabellenfelder auf
    • mysql_list_processes — Zeigt die MySQL-Prozesse an
    • mysql_list_tables — Listet Tabellen einer MySQL-Datenbank auf
    • mysql_num_fields — Liefert die Anzahl der Felder in einem Ergebnis
    • mysql_num_rows — Liefert die Anzahl der Zeilen in einem Ergebnis
    • mysql_pconnect — Öffnet eine persistente Verbindung zum MySQL-Server
    • mysql_ping — Pingt eine Serververbindung an und verbindet erneut, wenn keine Verbindung besteht
    • mysql_query — Sendet eine Abfrage an MySQL
    • mysql_real_escape_string — Maskiert spezielle Zeichen innerhalb einer Zeichenkette für die Verwendung in einer SQL-Anweisung
    • mysql_result — Liefert eine Spalte aus einem MySQL-Ergebnis
    • mysql_select_db — Wählt eine MySQL-Datenbank aus
    • mysql_set_charset — Setzt den Verbindungszeichensatz
    • mysql_stat — Zeigt den momentanen Serverstatus an
    • mysql_tablename — Liefert den Namen einer Tabelle
    • mysql_thread_id — Zeigt die aktuelle Thread-ID an
    • mysql_unbuffered_query — Sendet eine SQL-Anfrage an MySQL, ohne Ergebniszeilen abzuholen und zu puffern


Einführung

Diese Erweiterung ist seit PHP 5.5.0 veraltet und wurde in PHP 7.0.0 entfernt. Stattdessen sollten entweder die mysqli oder PDO_MySQL Erweiterungen genutzt werden. Siehe auch die Übersicht der MySQL APIs , um weitere Hilfe bei der Auswahl der MySQL API zu erhalten.

Diese Funktionen erlauben den Zugriff auf einen MySQL Datenbank-Server. Weitere Information zu MySQL sind unter » http://www.mysql.com/ erhältlich.

Die Dokumentation zu MySQL ist unter » http://dev.mysql.com/doc/ zu finden.


Anforderungen

Um diese Funktionen nutzen zu können, müssen Sie PHP mit MySQL-Unterstützung übersetzen.

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:


Installation

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

Verwenden Sie die Konfigurationsoption --with-mysql[=DIR], um diese Erweiterung zu kompilieren. Der optionale Parameter [DIR] sollte dabei das Verzeichnis angeben, in dem Sie MySQL installiert haben.

Die MySQL-Erweiterung ist zwar kompatibel mit aktuellen MySQL-Versionen, sie unterstützt aber nicht mehr alle zusätzlichen Funktionalitäten die seit MySQL 4.1.0 hinzugekommen sind. Wenn Sie diese benötigen, so verwenden Sie stattdessen die neuere MySQLi-Erweiterung.

Wenn Sie beide MySQL-Erweiterungen gleichzeitig verwenden wollen, so sollten Sie diese mit der gleichen MySQL-Client-Bibliotheksversion erstellen, um mögliche Versionskonflikte zu vermeiden.

Installation auf Linux-Systemen

Beachten sie: [DIR] ist der Pfad zu den MySQL-Client-Bibliotheksdateien (Header-Dateien und Bibliotheken), die von » MySQL heruntergeladen werden können.

Matrix der ext/mysql-Kompilierungsoptionen
PHP Version | Standard | Konfigurationsoptionen: mysqlnd | Konfigurationsoptionen: libmysqlclient | Changelog
4.x.x | libmysqlclient | Nicht verfügbar | --without-mysql zum Deaktivieren | MySQL ist standardmäßig aktiviert und die MySQL-Client-Bibliotheken sind gebündelt.
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Nicht verfügbar | --with-mysql=[DIR] | MySQL ist nicht mehr standardmäßig aktiviert und die MySQL-Client-Bibliotheken sind nicht mehr gebündelt.
5.3.x | libmysqlclient | --with-mysql=mysqlnd | --with-mysql=[DIR] | mysqlnd ist nun verügbar
5.4.x | mysqlnd | --with-mysql | --with-mysql=[DIR] | mysqlnd ist nun der Standard

Installation auf Windows-Systemen

PHP 5.0.x, 5.1.x, 5.2.x

MySQL ist nicht mehr automatisch aktiviert, Sie müssen die DLL php_mysql.dll in Ihrer php.ini selbst einbinden. PHP benötigt darüber hinaus Zugriff auf die MySQL-Client-Bibliothek. Eine Datei mit Namen libmysql.dll ist in der PHP-Distribution für Windows enthalten. Diese muss für Ihr Windows-System über PATH zu finden sein, damit Sie MySQL-Datenbanken aus PHP heraus verwenden können. Der FAQ-Eintrag "Wie füge ich unter Windows mein PHP-Verzeichnis zu PATH hinzu?" bietet nähere Informationen zu diesem Thema. Sie können libmysql.dll zwar auch direkt in Ihr Windows-Systemverzeichnis kopieren (da dieses immer im PATH-Suchpfad enthalten ist), von diesem Vorgehen wird aber abgeraten.

Die PHP-Direktive extension_dir sollte, wie bei jeder anderen Erweiterung auch, auf das Verzeichnis zeigen, in dem die PHP-Erweiterungen (wie php_mysql.dll) zu finden sind. Siehe hierzu auch Manuelle PHP-Installation auf Windows. Ein typischer Wert für ein PHP 5 extension_dir ist c:\php\ext.

Hinweis:

Erscheint beim Start des Webservers eine Fehlermelding in der Art von "Unable to load dynamic library './php_mysql.dll'", so liegt das daran, dass php_mysql.dll und/oder libmysql.dll vom System nicht gefunden werden konnten.

PHP 5.3.0+

Der MySQL Native Treiber ist standardmäßig aktiviert. Binden sie php_mysql.dll ein, libmysql.dll wird jedoch nicht mehr benötigt oder verwendet.

MySQL-Installationshinweise

Warnung

Initialisierungsprobleme und Abstürze können vorkommen, wenn Sie diese Erweiterung zusammen mit der Erweiterung recode verwenden. Nähere Informationen hierzu finden Sie im Handbuch-Abschnitt zu recode.

Hinweis:

Wenn Sie andere Zeichensätze als den Standardzeichensatz latin verwenden sollen, so müssen Sie zum Erstellen der Erweiterung eine externe libmysqlclient verwenden die mit voller Zeichensatzunterstützung erstellt wurde. Die mit PHP 4 mitgelieferte libmysql bietet dies nicht.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

MySQL-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
mysql.allow_local_infile | "1" | PHP_INI_SYSTEM |
mysql.allow_persistent | "1" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "0" | PHP_INI_ALL |
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL |
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_user | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.connect_timeout | "60" | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

mysql.allow_local_infile int

Erlaubt den Zugriff auf (aus PHPs Sicht) lokale Dateien mit LOAD DATA Anweisungen

mysql.allow_persistent bool

Gibt an, ob persistente Verbindungen zu MySQL gestattet werden sollen.

mysql.max_persistent int

Die maximale Anzahl von persistenten MySQL-Verbindungen pro Prozess.

mysql.max_links int

Die maximale Anzahl von MySQL-Verbindungen einschließlich persistenter, pro Prozess.

mysql.trace_mode bool

Falls mysql.trace_mode aktiviert ist, werden Warnungen für Tabellen/Index-Scans, nicht freigegebene Ergebnismengen und SQL-Fehler angezeigt. (Eingeführt in PHP 4.3.0)

mysql.default_port string

Gibt die Portnummer an, über den die Verbindung zum MySQL-Server aufgebaut werden soll, wenn kein Port als Verbindungsparameter übergeben wurde. Wird die Portnummer nicht angegeben, wird der Port über die Umgebungsvariable MYSQL_TCP_PORT, dem Eintrag mysql-tcp aus der Datei /etc/services oder der compile-time-Konstanten MYSQL_PORT in genau dieser Reihenfolge festgelegt. Win32-Systeme verwenden nur die Konstante. MYSQL_PORT.

mysql.default_socket string

Legt den Socketnamen fest, der bei der Verbindung zu einem lokalen Datenbankserver verwendet werden soll, wenn kein anderer Name angegeben wurde.

mysql.default_host string

Legt den Datenbankserver fest, zu dem eine Verbindung aufgebaut werden soll, wenn kein Server angegeben wurde. Diese Option hat im SQL safe mode keine Auswirkungen.

mysql.default_user string

Legt den Benutzernamen fest, der bei einer Verbindung zu einer Datenbank verwendet werden soll, wenn kein Benutzer angegeben wurde. Diese Option hat im SQL safe mode keine Auswirkungen.

mysql.default_password string

Legt das Passwort fest, das bei einer Verbindung zu einer Datenbank verwendet werden soll, wenn kein Passwort angegeben wurde. Diese Option hat im SQL safe mode keine Auswirkungen.

mysql.connect_timeout int

Verbindungstimeout in Sekunden. Auf Linux-Systemen wird dieser Timeout auch für die erste Antwort des Servers verwendet.


Ressource-Typen

Innerhalb des MySQL-Moduls werden zwei Resourcetypen benutzt. Der erste ist die Verbindungskennung für eine Verbindung zum Datenbankserver, der zweite Typ ist eine Resource die auf das Ergebnis einer Anfrage/Abfrage verweist.


Changelog

Folgende Änderungen wurden an den Klassen/Funktionen/Methoden dieser Extension vorgenommen.

General Changelog for the ext/mysql extension

This changelog references the ext/mysql extension.

Global ext/mysql changes

The following is a list of changes to the entire ext/mysql extension.

Version | Beschreibung
7.0.0 | This extension was removed from PHP. For details, see Choosing an API.
5.5.0 | This extension has been deprecated. Connecting to a MySQL database via mysql_connect(), mysql_pconnect() or an implicit connection via any other mysql_* function will generate an E_DEPRECATED error.
5.5.0 | All of the old deprecated functions and aliases now emit E_DEPRECATED errors. These functions are: mysql(), mysql_fieldname(), mysql_fieldtable(), mysql_fieldlen(), mysql_fieldtype(), mysql_fieldflags(), mysql_selectdb(), mysql_createdb(), mysql_dropdb(), mysql_freeresult(), mysql_numfields(), mysql_numrows(), mysql_listdbs(), mysql_listtables(), mysql_listfields(), mysql_db_name(), mysql_dbname(), mysql_tablename(), and mysql_table_name().

Changes to existing functions

The following list is a compilation of changelog entries from the ext/mysql functions.

Version Function Description


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Es ist möglich, zusätzliche Client-Flags bei den Funktionen mysql_connect() und mysql_pconnect() anzugeben. Die folgenden Konstanten sind definiert:

MySQL-Client-Konstanten
Konstante | Beschreibung
MYSQL_CLIENT_COMPRESS | Verwende das Kompressionsprotokoll
MYSQL_CLIENT_IGNORE_SPACE | Erlaubt Leerzeichen nach Funktionsnamen
MYSQL_CLIENT_INTERACTIVE | Erlaubt Inaktivität von interactive_timeout Sekunden (anstatt wait_timeout), bevor die Verbindung geschlossen wird.
MYSQL_CLIENT_SSL | Verwende SSL-Verschlüsselung. Dieses Flag kann nur mit Version 4.x der MySQL-Client-Bibliothek oder neuer verwendet werden. Mit PHP 4 und den Windows Binaries für PHP 5 wird nur Version 3.23.x mitgeliefert.

Die Funktion mysql_fetch_array() verwendet eine Konstante für die verschiedenen Arten der Ergebnisarrays. Die folgenden Konstanten sind definiert:

MySQL-fetch-Konstanten
Konstante | Beschreibung
MYSQL_ASSOC | Spalten werden in einem assoziativen Array zurückgegeben.
MYSQL_BOTH | Spalten werden sowohl als assoziatives als auch als numerisches Array zurückgegeben.
MYSQL_NUM | Spalten werden als numerisches Array zurückgegeben. Der Index beginnt bei 0, dieser entspricht dem ersten Feld des Ergebnisses.


  • « Vordefinierte Konstanten
  • MySQL Extension Übersichtsbeispiel »
  • PHP Manual
  • MySQL (Original)
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • MySQL Extension Übersichtsbeispiel


MySQL Extension Übersichtsbeispiel

Folgendes einfache Beispiel zeigt Ihnen, wie Sie sich mit einer MySQL-Datenbank verbinden, eine Anfrage ausführen, die Ergebnisse ausgeben und die Verbindung wieder trennen.

Beispiel #1 MySQL-Erweiterung: ein Überblicks-Beispiel

<?php
// Verbindung aufbauen, auswählen einer Datenbank
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
    or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich";
mysql_select_db("Meine_Datenbank") or die("Auswahl der Datenbank fehlgeschlagen");

// Ausführen einer SQL-Anfrage
$query = "SELECT * FROM Meine_Tabelle";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

// Ausgabe der Ergebnisse in HTML
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

// Freigeben des Resultsets
mysql_free_result($result);

// Schließen der Verbinung
mysql_close($link);
?>


MySQL Funktionen

Anmerkungen

Hinweis:

Der Großeil der MySQL Funktionen unterstützen einen link_identifier als optionalen letzten Parameter. Wird keiner übergeben so wird die zuletzt geöffnete Verbindung benutzt. Existiert auch diese nicht so wird versucht eine Verbindung mit den Defaultparametern aus php.ini zu öffnen. Schlägt auch dies fehl so wird false zurückgegeben.

Inhaltsverzeichnis

  • mysql_affected_rows — Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL-Operation
  • mysql_client_encoding — Liefert den Namen des Zeichensatzes
  • mysql_close — Schließt eine Verbindung zu MySQL
  • mysql_connect — Öffnet eine Verbindung zu einem MySQL-Server
  • mysql_create_db — Legt eine MySQL-Datenbank an
  • mysql_data_seek — Bewegt den internen Ergebnis-Zeiger
  • mysql_db_name — Liefert den Namen einer Datenbank vom mysql_list_dbs-Aufruf
  • mysql_db_query — Wählt eine Datenbank aus und führt darauf eine Abfrage aus
  • mysql_drop_db — Löscht eine Datenbank
  • mysql_errno — Liefert die Nummer einer Fehlermeldung einer zuvor ausgeführten MySQL-Operation
  • mysql_error — Liefert den Fehlertext der zuvor ausgeführten MySQL-Operation
  • mysql_escape_string — Maskiert eine Zeichenkette zur Verwendung in einer MySQL-Abfrage
  • mysql_fetch_array — Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
  • mysql_fetch_assoc — Liefert einen Datensatz als assoziatives Array
  • mysql_fetch_field — Liefert ein Objekt mit Spalteninformationen aus einem Abfrageergebnis
  • mysql_fetch_lengths — Liefert die Längen aller Felder aus einem Ergebnis
  • mysql_fetch_object — Liefert eine Ergebniszeile als Objekt
  • mysql_fetch_row — Liefert einen Datensatz als indiziertes Array
  • mysql_field_flags — Liefert die Flags des angegebenen Feldes aus einem Abfrageergebnis
  • mysql_field_len — Liefert die Länge des angegebenen Feldes
  • mysql_field_name — Liefert den Namen des angegebenen Feldes aus einem Ergebnis
  • mysql_field_seek — Setzt den Ergebniszeiger auf einen bestimmten Feldoffset
  • mysql_field_table — Liefert den Namen der Tabelle, die das genannte Feld enthält
  • mysql_field_type — Liefert den Typ des spezifizierten Feldes aus einem Ergebnis
  • mysql_free_result — Gibt belegten Speicher wieder frei
  • mysql_get_client_info — Liefert MySQL-Clientinformationen
  • mysql_get_host_info — Liefert Informationen zum MySQL-Host
  • mysql_get_proto_info — Liefert MySQL-Protokollinformationen
  • mysql_get_server_info — Liefert Informationen zum MySQL-Server
  • mysql_info — Liefert Informationen über die zuletzt ausgeführte Anfrage
  • mysql_insert_id — Liefert die ID, die in der vorherigen Abfrage erzeugt wurde
  • mysql_list_dbs — Listet die verfügbaren Datenbanken (Schemata) auf einem MySQL-Server auf
  • mysql_list_fields — Listet MySQL-Tabellenfelder auf
  • mysql_list_processes — Zeigt die MySQL-Prozesse an
  • mysql_list_tables — Listet Tabellen einer MySQL-Datenbank auf
  • mysql_num_fields — Liefert die Anzahl der Felder in einem Ergebnis
  • mysql_num_rows — Liefert die Anzahl der Zeilen in einem Ergebnis
  • mysql_pconnect — Öffnet eine persistente Verbindung zum MySQL-Server
  • mysql_ping — Pingt eine Serververbindung an und verbindet erneut, wenn keine Verbindung besteht
  • mysql_query — Sendet eine Abfrage an MySQL
  • mysql_real_escape_string — Maskiert spezielle Zeichen innerhalb einer Zeichenkette für die Verwendung in einer SQL-Anweisung
  • mysql_result — Liefert eine Spalte aus einem MySQL-Ergebnis
  • mysql_select_db — Wählt eine MySQL-Datenbank aus
  • mysql_set_charset — Setzt den Verbindungszeichensatz
  • mysql_stat — Zeigt den momentanen Serverstatus an
  • mysql_tablename — Liefert den Namen einer Tabelle
  • mysql_thread_id — Zeigt die aktuelle Thread-ID an
  • mysql_unbuffered_query — Sendet eine SQL-Anfrage an MySQL, ohne Ergebniszeilen abzuholen und zu puffern


Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL-Operation

  • « MySQL Funktionen
  • mysql_client_encoding »
  • PHP Manual
  • MySQL Funktionen
  • Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL-Operation

mysql_affected_rows

(PHP 4, PHP 5)

mysql_affected_rows — Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL-Operation

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_affected_rows()
  • PDOStatement::rowCount()

Beschreibung

mysql_affected_rows ( resource $link_identifier = NULL ) : int

Gibt die Anzahl der Datensätze zurück, die von der letzten INSERT- UPDATE-, REPLACE- oder DELETE-Abfrage in Verbindung mit link_identifier betroffen waren.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg die Anzahl betroffener Datensätze und zurück -1 falls die letzte Abfrage fehlschlug.

War die letzte Abfrage ein DELETE-Anweisung ohne WHERE-Bedingung, wurden alle Datensätze aus der Tabelle gelöscht. Für MySQL-Versionen vor 4.1.2 wird diese Funktion hier aber Null (0) zurückgeben.

Verwenden Sie UPDATE, wird MySQL keine Spalten aktualisieren, bei denen der neue Wert dem alten entspricht. Das kann dazu führen, dass mysql_affected_rows() nicht die tatsächliche Anzahl der betroffenen Zeilen zurückgibt, sondern nur die, die tatsächlich von der Abfrage betroffen sind.

REPLACE-Anfragen löschen zunächst den Eintrag mit dem gleichen Primärschlüssel und fügen dann den neuen Eintrag ein. Diese Funktion gibt in diesem Fall die Summe aus gelöschten und eingefügten Einträgen zurück.

Im Falle von "INSERT ... ON DUPLICATE KEY UPDATE"-Anweisungen ist der Rückgabewert 1, wenn eine Einfügung vorgenommen wurde oder 2, wenn eine bestehende Zeile aktualisiert wurde.

Beispiele

Beispiel #1 mysql_affected_rows()-Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Keine Verbindung möglich: ' . mysql_error());
}
mysql_select_db('mydb');

/* dies sollte die korrekte Anzahl gelöschter Datensätze zurückgeben */
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Gelöschte Datensätze: %d\n", mysql_affected_rows());

/* mit einer WHERE Bedingung, die niemals wahr ist, sollte 0 zurückgegeben
   werden */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Gelöschte Datensätze: %d\n", mysql_affected_rows());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Gelöschte Datensätze: 10
Gelöschte Datensätze: 0

Beispiel #2 mysql_affected_rows()-Beispiel mit Transaktionen

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('keine Verbindung möglich: ' . mysql_error());
}
mysql_select_db('mydb');

/* Update der Datensätze */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Aktualisierte Datensätze: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Aktualisierte Datensätze: 10

Anmerkungen

Hinweis: Transaktionen

Falls Sie Transaktionen verwenden, müssen Sie mysql_affected_rows() unmittelbar nach Ihrer INSERT-, UPDATE-, oder DELETE-Abfrage aufrufen, nicht nach dem Commit.

Hinweis: SELECT Anweisungen

Um die Anzahl der gelieferten Datensätze einer SELECT-Abfrage zu erhalten, verwenden Sie stattdessen die Funktion mysql_num_rows().

Hinweis: Kaskadierende Fremdschlüssel-Beziehungen

mysql_affected_rows() zählt keine Zeilen, die implizit durch die Verwendung von ON DELETE CASCADE und/oder ON UPDATE CASCADE in Fremdschlüssel-Bedingungen betroffen sind.

Siehe auch

  • mysql_num_rows() - Liefert die Anzahl der Zeilen in einem Ergebnis
  • mysql_info() - Liefert Informationen über die zuletzt ausgeführte Anfrage


Liefert den Namen des Zeichensatzes

  • « mysql_affected_rows
  • mysql_close »
  • PHP Manual
  • MySQL Funktionen
  • Liefert den Namen des Zeichensatzes

mysql_client_encoding

(PHP 4 >= 4.3.0, PHP 5)

mysql_client_encoding — Liefert den Namen des Zeichensatzes

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_character_set_name()

Beschreibung

mysql_client_encoding ( resource $link_identifier = NULL ) : string

Gibt die Variable character_set von MySQL zurück.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt den Standard-Zeichensatz (character set) für die aktuelle Verbindung zurück.

Beispiele

Beispiel #1 mysql_client_encoding()-Beispiel

<?php
$link    = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$charset = mysql_client_encoding($link);

echo "Der aktuelle Zeichensatz ist: $charset\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Der aktuelle Zeichensatz ist: latin1

Siehe auch

  • mysql_set_charset() - Setzt den Verbindungszeichensatz
  • mysql_real_escape_string() - Maskiert spezielle Zeichen innerhalb einer Zeichenkette für die Verwendung in einer SQL-Anweisung


Schließt eine Verbindung zu MySQL

  • « mysql_client_encoding
  • mysql_connect »
  • PHP Manual
  • MySQL Funktionen
  • Schließt eine Verbindung zu MySQL

mysql_close

(PHP 4, PHP 5)

mysql_close — Schließt eine Verbindung zu MySQL

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_close()
  • PDO: Zuweisung des Wertes null zum PDO-Objekt

Beschreibung

mysql_close ( resource $link_identifier = NULL ) : bool

mysql_close() schließt die nicht persistente Verbindung zum MySQL-Server, die mit der angegebenen Verbindungskennung verknüpft ist. Wird link_identifier nicht angegeben, wird die zuletzt geöffnete Verbindung geschlossen.

Offene nicht-persistente MySQL Verbindungen und Ergebnismengen werden bei der Beendigung der PHP-Skipt-Ausführung automatisch zerstört. Obwohl also das explizite Schließen von offenen Verbindungen und das Freigeben von Ergebnismengen optional ist, wird es dennoch empfohlen. Dadurch werden unmittelbar Ressourcen an PHP und MySQL zurückgeben, was die Performance verbessern kann. Weitere Information ist unter Freigeben von Ressourcen zu finden.

Parameter-Liste

Verbindungs-Kennung

Die MySQL Verbindung. Wenn nicht angegeben, wird die letzte mit mysql_connect() geöffnete Verbindung verwendet. Wenn noch keine Verbindung hergestellt wurde wird ein E_WARNING Fehler geworfen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_close()-Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Keine Verbindung möglich: ' . mysql_error());
}
echo 'Erfolgreich verbunden';
mysql_close($link);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Erfolgreich verbunden

Anmerkungen

Hinweis:

mysql_close() schließt keine persistenten Verbindungen, die mit mysql_pconnect() geöffnet wurden. Weitere Details sind der Manpage über Persistente Verbindungen zu entnehmen.

Siehe auch

  • mysql_connect() - Öffnet eine Verbindung zu einem MySQL-Server
  • mysql_free_result() - Gibt belegten Speicher wieder frei


Öffnet eine Verbindung zu einem MySQL-Server

  • « mysql_close
  • mysql_create_db »
  • PHP Manual
  • MySQL Funktionen
  • Öffnet eine Verbindung zu einem MySQL-Server

mysql_connect

(PHP 4, PHP 5)

mysql_connect — Öffnet eine Verbindung zu einem MySQL-Server

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_connect()
  • PDO::__construct()

Beschreibung

mysql_connect ( string $server = ini_get("mysql.default_host") , string $username = ini_get("mysql.default_user") , string $password = ini_get("mysql.default_password") , bool $new_link = false , int $client_flags = 0 ) : resource|false

Öffnet eine neue Verbindung zu einem MySQL-Server oder verwendet eine bestehende.

Parameter-Liste

server

Der MySQL-Server. Er kann zudem eine Portnummer enthalten, z.B. "hostname:port" oder den Pfad zu einem lokalen Socket z.B. ":/pfad/zum/socket" für Zugriffe auf dem lokalen Rechner (localhost).

Wenn die PHP-Direktive mysql.default_host nicht definiert ist (Standard), ist der Vorgabewert 'localhost:3306'. Bei SQL safe mode wird dieser Paramter ignoriert und immer der Wert 'localhost:3306' verwendet.

username

Der Benutzername. Der Standardwert ist durch mysql.default_user definiert. Bei SQL safe mode wird dieser Parameter ignoriert und der Name des Benutzers verwendet, dem der Prozess gehört.

password

Das Passwort. Der Standardwert ist durch mysql.default_password definiert. Bei SQL safe mode wird dieser Parameter ignoriert und ein leeres Passwort verwendet.

new_link

Für den Fall, dass ein zweiter Aufruf von mysql_connect() mit den gleichen Argumenten erfolgt, wird keine neue Verbindung aufgebaut, sondern die Verbindungskennung der schon bestehenden Verbindung zurückgegeben. Der Parameter new_link beeinflusst dieses Verhalten und mysql_connect() öffnet immer eine neue Verbindung, sogar dann, wenn mysql_connect() zu einem früheren Zeitpunkt mit den gleichen Parametern aufgerufen wurde. Bei SQL safe mode wird dieser Parameter ignoriert.

client_flags

Der Parameter client_flags kann eine Kombination der folgenden Konstanten sein: 128 (aktiviert die Verwendung von LOAD DATA LOCAL), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE und MYSQL_CLIENT_INTERACTIVE. Lesen sie den Abschnitt über MySQL-Client-Konstanten für weitergehende Informationen. Bei SQL safe mode wird dieser Parameter ignoriert.

Rückgabewerte

Gibt im Erfolgsfall eine MySQL-Verbindungskennung zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.5.0 | Die Funktion erzeugt einen Fehler der Stufe E_DEPRECATED.

Beispiele

Beispiel #1 mysql_connect()-Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Verbindung schlug fehl: ' . mysql_error());
}
echo 'Erfolgreich verbunden';
mysql_close($link);
?>

Beispiel #2 mysql_connect()-Beispiel unter Verwendung der hostname:port-Syntax

<?php
// Verbindung zu example.com auf Port 3307
$link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Verbindung schlug fehl: ' . mysql_error());
}
echo 'Erfolgreich verbunden';
mysql_close($link);

// Verbindung zu localhost auf Port 3307
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Verbindung schlug fehl: ' . mysql_error());
}
echo 'Erfolgreich verbunden';
mysql_close($link);
?>

Beispiel #3 mysql_connect()-Beispiel unter Verwendung der ":/path/to/socket"-Syntax

<?php
// Verbing zu localhost und Socket z.B. /tmp/mysql.sock

// Variante 1: localhost weglassen
$link = mysql_connect(':/tmp/mysql', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Verbindung schlug fehl: ' . mysql_error());
}
echo 'Erfolgreich verbunden';
mysql_close($link);

// Variante 2: mit localhost
$link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Verbindung schlug fehl: ' . mysql_error());
}
echo 'Erfolgreich verbunden';
mysql_close($link);
?>

Anmerkungen

Hinweis:

Immer wenn Sie "localhost" oder "localhost:port" als Server angeben, wird die MySQL-Client-Bibliothek dies überschreiben und versuchen, sich mit einem lokalen Socket (named pipe unter Windows) zu verbinden. Wenn Sie TCP/IP verwenden möchten, verwenden sie "127.0.0.1" statt "localhost". Wenn die MySQL-Client-Bibliothek versucht, sich mit dem falschen lokalen Socket zu verbinden, sollten Sie den korrekten Pfad als in ihrer PHP-Konfiguration setzen und das Server-Feld leer lassen.

Hinweis:

Die Verbindung zum Server wird geschlossen, sobald die Ausführung des Skripts endet, außer sie wurde zuvor explizit durch den Aufruf von mysql_close() geschlossen.

Hinweis:

Error "Can't create TCP/IP socket (10106)" deutet meist darauf hin, dass die Konfigurationsanweisung variables_order das Zeichen E nicht enthält. Wird unter Windows die Umgebung nicht kopiert, ist die Umgebungsvariable SYSTEMROOT nicht verfügbar und PHP wird Schwierigkeiten haben, Winsock zu laden.

Siehe auch

  • mysql_pconnect() - Öffnet eine persistente Verbindung zum MySQL-Server
  • mysql_close() - Schließt eine Verbindung zu MySQL


Legt eine MySQL-Datenbank an

  • « mysql_connect
  • mysql_data_seek »
  • PHP Manual
  • MySQL Funktionen
  • Legt eine MySQL-Datenbank an

mysql_create_db

(PHP 4, PHP 5)

mysql_create_db — Legt eine MySQL-Datenbank an

Warnung

Diese Funktion wurde in PHP 4.3.0 als veraltet gekennzeichnet und wurde in PHP 7.0.0 zusammen mit der gesamten ursprünglichen MySQL-Erweiterung entfernt. Stattdessen sollten die aktiv entwickelten Erweiterungen MySQLi oder PDO_MySQL verwendet werden. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ-Eintrag. Alternativen zu dieser Funktion umfassen:

  • mysqli_query()
  • PDO::query()

Beschreibung

mysql_create_db ( string $database_name , resource $link_identifier = NULL ) : bool

mysql_create_db() versucht, eine neue Datenbank auf dem Server anzulegen, der mit der angegebenen Verbindungskennung verknüpft ist.

Parameter-Liste

database_name

Der Name der zu erstellenden Datenbank.

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_create_db()-Alternativbeispiel

Die Funktion mysql_create_db() ist veraltet. Es ist besser, stattdessen mysql_query() zu verwenden, um eine CREATE DATABASE-SQL-Anweisung auszuführen.

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Verbindung fehlgeschlagen: ' . mysql_error());
}

$sql = 'CREATE DATABASE my_db';
if (mysql_query($sql, $link)) {
    echo "Datenbank my_db erfolgreich erzeugt\n";
} else {
    echo 'Erzeugung der Datenbank fehlgeschlagen:: ' . mysql_error() . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Datenbank my_db erfolgreich erzeugt

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_createdb()

Hinweis:

Diese Funktion steht nicht zur Verfügung, wenn das MySQL-Modul gegen eine MySQL 4.x Client-Bibliothek gelinkt wurde.

Siehe auch

  • mysql_query() - Sendet eine Abfrage an MySQL
  • mysql_select_db() - Wählt eine MySQL-Datenbank aus


Bewegt den internen Ergebnis-Zeiger

  • « mysql_create_db
  • mysql_db_name »
  • PHP Manual
  • MySQL Funktionen
  • Bewegt den internen Ergebnis-Zeiger

mysql_data_seek

(PHP 4, PHP 5)

mysql_data_seek — Bewegt den internen Ergebnis-Zeiger

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_data_seek()
  • PDO::FETCH_ORI_ABS

Beschreibung

mysql_data_seek ( resource $result , int $row_number ) : bool

mysql_data_seek() bewegt den internen Datensatz-Zeiger eines Abfrageergebnisses, das mit der übergebenen Resultkennung verknüpft ist, zu dem Datensatz mit der übergebenen Zeilennummer. Der nächste Aufruf einer MySQL-fetch-Funktion, wie etwa mysql_fetch_row() gibt die entsprechende Zeile zurück.

Die Zeilennummer row_number beginnt bei 0. row_number sollte ein Wert im Bereich zwischen 0 und mysql_num_rows() - 1 sein. Falls die Ergebnismenge jedoch leer sein sollte (mysql_num_rows() == 0), wird eine Suche nach der Zeilennummer 0 mit einem E_WARNING fehlschlagen und mysql_data_seek() gibt false zurück.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

row_number

Die gewünschte Zeilennummer des neuen Ergebnis-Zeigers.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_data_seek()-Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Keine Verbindung möglich: ' . mysql_error());
}
$db_selected = mysql_select_db('sample_db');
if (!$db_selected) {
    die('Konnte Datenbank nicht auswählen: ' . mysql_error());
}
$query = 'SELECT last_name, first_name FROM friends';
$result = mysql_query($query);
if (!$result) {
    die('Anfrage fehlgeschlagen: ' . mysql_error());
}
/* Hole Zeilen in umgekehrter Reihenfolge */
for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
    if (!mysql_data_seek($result, $i)) {
        echo "Kann nicht zu Zeile $i gehen (seek): " . mysql_error() . "\n";
        continue;
    }

    if (!($row = mysql_fetch_assoc($result))) {
        continue;
    }

    echo $row['last_name'] . ' ' . $row['first_name'] . "<br />\n";
}

mysql_free_result($result);
?>

Anmerkungen

Hinweis:

Die Funktion mysql_data_seek() kann nur zusammen mit mysql_query() verwendet werden und nicht mit mysql_unbuffered_query().

Siehe auch

  • mysql_query() - Sendet eine Abfrage an MySQL
  • mysql_num_rows() - Liefert die Anzahl der Zeilen in einem Ergebnis
  • mysql_fetch_row() - Liefert einen Datensatz als indiziertes Array
  • mysql_fetch_assoc() - Liefert einen Datensatz als assoziatives Array
  • mysql_fetch_array() - Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
  • mysql_fetch_object() - Liefert eine Ergebniszeile als Objekt


Liefert den Namen einer Datenbank vom mysql_list_dbs-Aufruf

  • « mysql_data_seek
  • mysql_db_query »
  • PHP Manual
  • MySQL Funktionen
  • Liefert den Namen einer Datenbank vom mysql_list_dbs-Aufruf

mysql_db_name

(PHP 4, PHP 5)

mysql_db_name — Liefert den Namen einer Datenbank vom mysql_list_dbs()-Aufruf

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • SQL-Abfrage: SELECT DATABASE()

Beschreibung

mysql_db_name ( resource $result , int $row , mixed $field = NULL ) : string

Gibt den Namen einer Datenbank vom Aufruf von mysql_list_dbs() zurück.

Parameter-Liste

result

Der Ergebniszeiger von einem Aufruf von mysql_list_dbs().

row

Der Index in der Ergebnismenge.

field

Der Feldname (Spaltenname).

Rückgabewerte

Gibt bei Erfolg den Namen einer Datenbank zurück und false bei Fehlern. Falls false zurückgegeben wird, verwenden sie mysql_error(), um die Art des Fehlers zu ermitteln.

Changelog

Version | Beschreibung
5.5.0 | Die Funktion mysql_list_dbs() ist veraltet und gibt einen Fehler der Stufe E_DEPRECATED aus.

Beispiele

Beispiel #1 mysql_db_name()-Beispiel

<?php
error_reporting(E_ALL);

$link = mysql_connect('dbhost', 'username', 'password');
$db_list = mysql_list_dbs($link);

$i = 0;
$cnt = mysql_num_rows($db_list);
while ($i < $cnt) {
    echo mysql_db_name($db_list, $i) . "\n";
    $i++;
}
?>

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_dbname()

Siehe auch

  • mysql_list_dbs() - Listet die verfügbaren Datenbanken (Schemata) auf einem MySQL-Server auf
  • mysql_tablename() - Liefert den Namen einer Tabelle


Wählt eine Datenbank aus und führt darauf eine Abfrage aus

  • « mysql_db_name
  • mysql_drop_db »
  • PHP Manual
  • MySQL Funktionen
  • Wählt eine Datenbank aus und führt darauf eine Abfrage aus

mysql_db_query

(PHP 4, PHP 5)

mysql_db_query — Wählt eine Datenbank aus und führt darauf eine Abfrage aus

Warnung

Diese Funktion wurde in PHP 5.3.0 als veraltet gekennzeichnet und wurde in PHP 7.0.0 zusammen mit der gesamten ursprünglichen MySQL-Erweiterung entfernt. Stattdessen sollten die aktiv entwickelten Erweiterungen MySQLi oder PDO_MySQL verwendet werden. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ-Eintrag. Alternativen zu dieser Funktion umfassen:

  • mysqli_select_db() then the query
  • PDO::__construct()

Beschreibung

mysql_db_query ( string $database , string $query , resource $link_identifier = NULL ) : resource|bool

mysql_db_query() wählt eine Datenbank aus und führt eine Abfrage darauf aus.

Parameter-Liste

database

Der Name der auszuwählenden Datenbank.

query

Die MySQL-Abfrage.

Die Daten innerhalb der Abfrage sollten korrekt maskiert sein.

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt eine positive MySQL-Ergebnisressource für das Abfrageergebnis zurück oder false im Fehlerfall. Diese Funktion gibt für INSERT-, UPDATE- und DELETE-Abfragen ebenfalls true/false zurück, um Erfolg/Misserfolg anzuzeigen.

Beispiele

Beispiel #1 mysql_db_query()-Alternativbeispiel

<?php

if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    echo 'Keine Verbindung zu mysql';
    exit;
}

if (!mysql_select_db('mysql_dbname', $link)) {
    echo 'Konnte die Datenbank nicht auswählen';
    exit;
}

$sql    = 'SELECT foo FROM bar WHERE id = 42';
$result = mysql_query($sql, $link);

if (!$result) {
    echo "DB-Fehler, konnte die Datenbank nicht abfragen\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_assoc($result)) {
    echo $row['foo'];
}

mysql_free_result($result);

?>

Anmerkungen

Hinweis:

Beachten Sie, dass diese Funktion NICHT zu der Datenbank zurückwechselt, mit der Sie sich zuvor verbunden hatten. Mit anderen Worten ausgedrückt: Sie können diese Funktion nicht verwenden, um temporär eine SQL-Abfrage auf einer anderen Datenbank auszuführen. Sie müssen selbst (manuell) sicherstellen, dass Sie wieder Ihre vorherige Datenbank verwenden. Sie sollten sich angewöhnen, statt dieser Funktion in Ihren SQL-Abfragen die Schreibweise datenbank.tabelle oder die Funktion mysql_select_db() zu verwenden.

Siehe auch

  • mysql_query() - Sendet eine Abfrage an MySQL
  • mysql_select_db() - Wählt eine MySQL-Datenbank aus


Löscht eine Datenbank

  • « mysql_db_query
  • mysql_errno »
  • PHP Manual
  • MySQL Funktionen
  • Löscht eine Datenbank

mysql_drop_db

(PHP 4, PHP 5)

mysql_drop_db — Löscht eine Datenbank

Warnung

Diese Funktion wurde in PHP 4.3.0 als veraltet gekennzeichnet und wurde in PHP 7.0.0 zusammen mit der gesamten ursprünglichen MySQL-Erweiterung entfernt. Stattdessen sollten die aktiv entwickelten Erweiterungen MySQLi oder PDO_MySQL verwendet werden. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ-Eintrag. Alternativen zu dieser Funktion umfassen:

  • Eine DROP DATABASE-Anweisung ausführen

Beschreibung

mysql_drop_db ( string $database_name , resource $link_identifier = NULL ) : bool

mysql_drop_db() versucht eine komplette Datenbank vom Server, der mit der übergebenen Verbindungskennung link_identifier verknüpft ist, zu löschen. Diese Funktion ist veraltet. Stattdessen sollte mit der Funktion mysql_query() der SQL-Befehl DROP DATABASE ausgeführt werden.

Parameter-Liste

database_name

Der Name der zu löschenden Datenbank.

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_drop_db()-Alternativbeispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Verbindung nicht möglich: ' . mysql_error());
}

$sql = 'DROP DATABASE my_db';
if (mysql_query($sql, $link)) {
    echo "Datenbank my_db wurde erfolgreich gelöscht\n";
} else {
    echo 'Fehler beim Löschen der Datenbank: ' . mysql_error() . "\n";
}
?>

Anmerkungen

Warnung

Diese Funktion steht nicht zur Verfügung, wenn das MySQL-Modul gegen eine MySQL 4.x Client-Bibliothek gelinkt wurde.

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_dropdb()

Siehe auch

  • mysql_query() - Sendet eine Abfrage an MySQL


Liefert die Nummer einer Fehlermeldung einer zuvor ausgeführten MySQL-Operation

  • « mysql_drop_db
  • mysql_error »
  • PHP Manual
  • MySQL Funktionen
  • Liefert die Nummer einer Fehlermeldung einer zuvor ausgeführten MySQL-Operation

mysql_errno

(PHP 4, PHP 5)

mysql_errno — Liefert die Nummer einer Fehlermeldung einer zuvor ausgeführten MySQL-Operation

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_errno()
  • PDO::errorCode()

Beschreibung

mysql_errno ( resource $link_identifier = NULL ) : int

Gibt die Fehlernummer der letzten MySQL-Funktion zurück.

Fehler, die vom MySQL-Server kommen, geben keine Warnungen mehr aus. Verwenden Sie stattdessen die Funktion mysql_errno(), um die Fehlernummer zu erhalten. Beachten Sie, dass diese Funktion nur die Fehlernummer der zuletzt ausgeführten MySQL-Funktion (ohne die Funktionen mysql_error() und mysql_errno()) zurückgibt. Wenn Sie diese Funktion also verwenden wollen, stellen Sie sicher, dass Sie den Wert überprüfen, bevor Sie eine andere MySQL-Funktion aufrufen.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt die Fehlernummer der letzten MySQL-Funktion zurück oder 0 (Null), wenn kein Fehler auftrat.

Beispiele

Beispiel #1 mysql_errno()-Beispiel

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!mysql_select_db("nicht_vorhandene_datenbank", $link)) {
    echo mysql_errno($link) . ": " . mysql_error($link). "\n";
}

mysql_select_db("kossu", $link);
if (!mysql_query("SELECT * FROM nicht_vorhandene_tabelle", $link)) {
    echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1049: Unknown database 'nicht_vorhandene_datenbank'
1146: Table 'kossu.nicht_vorhandene_tabelle' doesn't exist

Siehe auch

  • mysql_error() - Liefert den Fehlertext der zuvor ausgeführten MySQL-Operation
  • » MySQL error codes


Liefert den Fehlertext der zuvor ausgeführten MySQL-Operation

  • « mysql_errno
  • mysql_escape_string »
  • PHP Manual
  • MySQL Funktionen
  • Liefert den Fehlertext der zuvor ausgeführten MySQL-Operation

mysql_error

(PHP 4, PHP 5)

mysql_error — Liefert den Fehlertext der zuvor ausgeführten MySQL-Operation

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_error()
  • PDO::errorInfo()

Beschreibung

mysql_error ( resource $link_identifier = NULL ) : string

Gibt den Fehlertext der letzten MySQL-Funktion zurück. Fehler, die vom MySQL-Server kommen, geben keine Warnungen mehr aus. Verwenden Sie stattdessen die Funktion mysql_error(), um den Fehlertext zu erhalten. Beachten Sie, dass diese Funktion nur den Fehlertext der zuletzt ausgeführten MySQL-Funktion (ohne die Funktionen mysql_error() und mysql_errno()) zurückgibt. Wenn Sie diese Funktion also verwenden wollen, stellen Sie sicher, dass Sie den Wert überprüfen, bevor Sie eine andere MySQL-Funktion aufrufen.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt den Fehlertext der letzten MySQL-Funktion zurück oder '' (eine leere Zeichenkette), falls kein Fehler aufgetreten ist.

Beispiele

Beispiel #1 mysql_error()-Beispiel

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

mysql_select_db("nicht_vorhandene_datenbank", $link);
echo mysql_errno($link) . ": " . mysql_error($link). "\n";

mysql_select_db("kossu", $link);
mysql_query("SELECT * FROM nicht_vorhandene_tabelle", $link);
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1049: Unknown database 'nicht_vorhandene_datenbank'
1146: Table 'kossu.nicht_vorhandene_tabelle' doesn't exist

Siehe auch

  • mysql_errno() - Liefert die Nummer einer Fehlermeldung einer zuvor ausgeführten MySQL-Operation
  • » MySQL error codes


Maskiert eine Zeichenkette zur Verwendung in einer MySQL-Abfrage

  • « mysql_error
  • mysql_fetch_array »
  • PHP Manual
  • MySQL Funktionen
  • Maskiert eine Zeichenkette zur Verwendung in einer MySQL-Abfrage

mysql_escape_string

(PHP 4 >= 4.0.3, PHP 5)

mysql_escape_string — Maskiert eine Zeichenkette zur Verwendung in einer MySQL-Abfrage

Warnung

Diese Funktion wurde in PHP 4.3.0 als veraltet gekennzeichnet und wurde in PHP 7.0.0 zusammen mit der gesamten ursprünglichen MySQL-Erweiterung entfernt. Stattdessen sollten die aktiv entwickelten Erweiterungen MySQLi oder PDO_MySQL verwendet werden. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ-Eintrag. Alternativen zu dieser Funktion umfassen:

  • mysqli_escape_string()
  • PDO::quote()

Beschreibung

mysql_escape_string ( string $unescaped_string ) : string

Diese Funktion maskiert unescaped_string zur sicheren Verwendung in mysql_query().

Diese Funktion ist identisch mit der Funktion mysql_real_escape_string(), davon abgesehen, dass mysql_real_escape_string() eine Verbindungskennung benötigt und die Zeichenkette entsprechend zum aktuellen Zeichensatz maskiert. Der Funktion mysql_escape_string() kann keine Verbindungskennung übergeben werden und der aktuelle Zeichensatz wird nicht berücksichtigt.

Parameter-Liste

unescaped_string

Die zu maskierende Zeichenkette.

Rückgabewerte

Gibt die maskierte Zeichenkette zurück.

Beispiele

Beispiel #1 mysql_escape_string()-Beispiel

<?php
$item = "Zak's Laptop";
$escaped_item = mysql_escape_string($item);
printf("Die maskierte Zeichenkette: %s\n", $escaped_item);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Die maskierte Zeichenkette: Zak\'s Laptop

Anmerkungen

Hinweis:

mysql_escape_string() maskiert nicht % und _.

Siehe auch

  • mysql_real_escape_string() - Maskiert spezielle Zeichen innerhalb einer Zeichenkette für die Verwendung in einer SQL-Anweisung
  • addslashes() - Stellt bestimmten Zeichen eines Strings ein "\" voran
  • Die Direktive magic_quotes_gpc.


Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides

  • « mysql_escape_string
  • mysql_fetch_assoc »
  • PHP Manual
  • MySQL Funktionen
  • Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides

mysql_fetch_array

(PHP 4, PHP 5)

mysql_fetch_array — Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_fetch_array()
  • PDOStatement::fetch()

Beschreibung

mysql_fetch_array ( resource $result , int $result_type = MYSQL_BOTH ) : array

Gibt ein Array zurück, das dem gelesenen Datensatz entspricht und bewegt den internen Datenzeiger um einen Schritt vorwärts.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

result_type

Der Typ des Arrays, das gelesen werden soll. Er ist eine Konstante, die folgende Werte haben kann: MYSQL_ASSOC, MYSQL_NUM und MYSQL_BOTH.

Rückgabewerte

Gibt ein Array von Zeichenketten zurück, das dem gelesenen Datensatz entspricht oder false falls keine weiteren Datensätze vorhanden sind. Der Typ des zurückgegebenen Arrays hängt davon ab, wie result_type definiert ist. Verwenden sie MYSQL_BOTH (Standard), erhalten sie ein Array mit sowohl assoziativen als auch numerischen Indizes. Verwenden sie MYSQL_ASSOC erhalten sie nur assoziative Indizes (wie bei der Funktion mysql_fetch_assoc()), mit MYSQL_NUM erhalten sie nur numerische Indizes (wie bei der Funktion mysql_fetch_row()).

Falls zwei oder mehrere Spalten des Ergebnisses den gleichen Feldnamen haben, dann wird nur der Wert der letzten Spalte im Array unter diesem Feldnamen abgelegt. Um auch auf die anderen gleichnamigen Spalten zugreifen zu können, müssen Sie den numerischen Index der Spalte verwenden oder einen Alias für die Spalte vergeben. Falls Sie Aliase für Spalten verwenden, können Sie auf die Inhalte dieser Spalten nicht über ihren ursprünglichen Namen zugreifen.

Beispiele

Beispiel #1 Abfrage mit alias für identische Feldnamen

SELECT table1.field AS foo, table2.field AS bar FROM table1, table2

Beispiel #2 mysql_fetch_array() mit MYSQL_NUM

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    printf("ID: %s  Name: %s", $row[0], $row[1]);
}

mysql_free_result($result);
?>

Beispiel #3 mysql_fetch_array() mit MYSQL_ASSOC

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    printf("ID: %s  Name: %s", $row["id"], $row["name"]);
}

mysql_free_result($result);
?>

Beispiel #4 mysql_fetch_array() mit MYSQL_BOTH

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
    printf ("ID: %s  Name: %s", $row[0], $row["name"]);
}

mysql_free_result($result);
?>

Anmerkungen

Hinweis: Performance

Zu betonen ist, dass die Verwendung von mysql_fetch_array() nicht signifikant langsamer ist als mysql_fetch_row(), obwohl die Funktion einen sichtlichen Mehrwert bietet.

Hinweis: Feldnamen, die von dieser Funktion zurückgegeben werden, unterscheiden sich in der Groß-/Kleinschreibung.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

Siehe auch

  • mysql_fetch_row() - Liefert einen Datensatz als indiziertes Array
  • mysql_fetch_assoc() - Liefert einen Datensatz als assoziatives Array
  • mysql_data_seek() - Bewegt den internen Ergebnis-Zeiger
  • mysql_query() - Sendet eine Abfrage an MySQL


Liefert einen Datensatz als assoziatives Array

  • « mysql_fetch_array
  • mysql_fetch_field »
  • PHP Manual
  • MySQL Funktionen
  • Liefert einen Datensatz als assoziatives Array

mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc — Liefert einen Datensatz als assoziatives Array

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_fetch_assoc()
  • PDOStatement::fetch(PDO::FETCH_ASSOC)

Beschreibung

mysql_fetch_assoc ( resource $result ) : array

Gibt ein assoziatives Array zurück, das dem geholten Datensatz entspricht und bewegt den internen Datenzeiger vorwärts. mysql_fetch_assoc() entspricht in der Funktionsweise exakt dem Aufruf von mysql_fetch_array() mit Angabe von MYSQL_ASSOC als optionalen zweiten Parameter. Sie gibt nur ein assoziatives Array zurück.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Rückgabewerte

Gibt ein Array von Zeichenketten zurück, das dem gelesenen Datensatz entspricht oder false falls keine weiteren Datensätze vorhanden sind.

Falls zwei oder mehrere Felder des Ergebnisses den gleichen Feldnamen haben, dann wird nur der Wert des letzten Felds im Array unter diesem Feldnamen abgelegt. Um auch auf die anderen, gleichnamigen, Felder zugreifen zu können, müssen Sie entweder numerische Indizes und damit mysql_fetch_row() verwenden, oder Aliase für Ihre Felder anlegen. Zur Verwendung von Aliasen schauen Sie sich das Beispiel unter der Beschreibung von mysql_fetch_array() an.

Beispiele

Beispiel #1 Ein ausführliches mysql_fetch_assoc()-Beispiel

<?php

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!$conn) {
    echo "Keine Verbindung zu DB möglich: " . mysql_error();
    exit;
}

if (!mysql_select_db("mydbname")) {
    echo "Konnte mydbname nicht auswählen: " . mysql_error();
    exit;
}

$sql = "SELECT id as userid, fullname, userstatus
        FROM   sometable
        WHERE  userstatus = 1";

$result = mysql_query($sql);

if (!$result) {
    echo "Konnte Abfrage ($sql) aus DB nicht erfolgreich ausführen: " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "Keine Zeilen gefunden, nichts auszugeben, also Ende";
    exit;
}

// Solange eine Zeile mit Daten vorhanden ist, schreibe diese Zeile in $row
// als assoziatives Array
// Hinweis: Wenn Sie nur eine Ergebniszeile erwarten, benötigen Sie keine Schleife
// Hinweis: Wenn Sie extract($row) innerhalb dieser Schleife schreiben,
//          erzeugen Sie $userid, $fullname und $userstatus
while ($row = mysql_fetch_assoc($result)) {
    echo $row["userid"];
    echo $row["fullname"];
    echo $row["userstatus"];
}

mysql_free_result($result);

?>

Anmerkungen

Hinweis: Performance

Zu betonen ist, dass die Verwendung von mysql_fetch_array() nicht signifikant langsamer ist als mysql_fetch_row(), obwohl die Funktion einen sichtlichen Mehrwert bietet.

Hinweis: Feldnamen, die von dieser Funktion zurückgegeben werden, unterscheiden sich in der Groß-/Kleinschreibung.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

Siehe auch

  • mysql_fetch_row() - Liefert einen Datensatz als indiziertes Array
  • mysql_fetch_array() - Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
  • mysql_data_seek() - Bewegt den internen Ergebnis-Zeiger
  • mysql_query() - Sendet eine Abfrage an MySQL
  • mysql_error() - Liefert den Fehlertext der zuvor ausgeführten MySQL-Operation


Liefert ein Objekt mit Spalteninformationen aus einem Abfrageergebnis

  • « mysql_fetch_assoc
  • mysql_fetch_lengths »
  • PHP Manual
  • MySQL Funktionen
  • Liefert ein Objekt mit Spalteninformationen aus einem Abfrageergebnis

mysql_fetch_field

(PHP 4, PHP 5)

mysql_fetch_field — Liefert ein Objekt mit Spalteninformationen aus einem Abfrageergebnis

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_fetch_field()
  • PDOStatement::getColumnMeta()

Beschreibung

mysql_fetch_field ( resource $result , int $field_offset = 0 ) : object

Gibt ein Objekt zurück, das Feldinformationen enthält. Diese Funktion kann verwendet werden, um Informationen über Felder im übergebenen Abfrageergebnis zu erhalten.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

field_offset

Der numerische Feldoffset. Wird dieser nicht angegeben, so werden die Informationen über das nächste bisher noch nicht von dieser Funktion gelesene Feld zurückgegeben. Der Feldoffset startet bei 0.

Rückgabewerte

Gibt ein Objekt mit Feldinformationen zurück. Die Eigenschaften des Objekts sind:

  • name - Spaltenname
  • table - der Name der Tabelle, zu der die Spalte gehört, wobei dies der Aliasname ist falls, einer definiert wurde
  • max_length - die maximale Länge der Spalte
  • not_null - 1, wenn die Spalte nicht null sein kann
  • primary_key - 1, wenn die Spalte ein Primärschlüssel ist
  • unique_key - 1, wenn die Spalte ein eindeutiger Schlüssel ist
  • multiple_key - 1, wenn die Spalte ein nicht eindeutiger Schlüssel ist
  • numeric - 1, wenn die Spalte vom Typ 'numeric' ist
  • blob - 1, wenn die Saplte vom Typ 'BLOB' ist
  • type - der Typ der Spalte
  • unsigned - 1, wenn die Spalte vorzeichenlos ist
  • zerofill - 1, wenn die Spalte mit Nullen aufgefüllt wird (zero-filled)

Beispiele

Beispiel #1 mysql_fetch_field()-Beispiel

<?php
$conn = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$conn) {
    die('Keine Verbindung möglich: ' . mysql_error());
}
mysql_select_db('database');
$result = mysql_query('select * from table');
if (!$result) {
    die('Anfrage fehlgeschlagen: ' . mysql_error());
}
/* Metadaten der Spalten holen */
$i = 0;
while ($i < mysql_num_fields($result)) {
    echo "Informationen für Spalte $i:<br />\n";
    $meta = mysql_fetch_field($result, $i);
    if (!$meta) {
        echo "Keine Informationen vorhanden<br />\n";
    }
    echo "<pre>
blob:         $meta->blob
max_length:   $meta->max_length
multiple_key: $meta->multiple_key
name:         $meta->name
not_null:     $meta->not_null
numeric:      $meta->numeric
primary_key:  $meta->primary_key
table:        $meta->table
type:         $meta->type
unique_key:   $meta->unique_key
unsigned:     $meta->unsigned
zerofill:     $meta->zerofill
</pre>";
    $i++;
}
mysql_free_result($result);
?>

Anmerkungen

Hinweis: Feldnamen, die von dieser Funktion zurückgegeben werden, unterscheiden sich in der Groß-/Kleinschreibung.

Hinweis:

Falls Feld- oder Tabellennamen in der SQL-Abfrage mit einem Alias versehen wurden, so wird dieser zurückgegeben. Der ursprüngliche Name kann beispielsweise durch die Verwendung von mysqli_result::fetch_field() in Erfahrung gebracht werden.

Siehe auch

  • mysql_field_seek() - Setzt den Ergebniszeiger auf einen bestimmten Feldoffset


Liefert die Längen aller Felder aus einem Ergebnis

  • « mysql_fetch_field
  • mysql_fetch_object »
  • PHP Manual
  • MySQL Funktionen
  • Liefert die Längen aller Felder aus einem Ergebnis

mysql_fetch_lengths

(PHP 4, PHP 5)

mysql_fetch_lengths — Liefert die Längen aller Felder aus einem Ergebnis

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_fetch_lengths()
  • PDOStatement::getColumnMeta()

Beschreibung

mysql_fetch_lengths ( resource $result ) : array|false

Gibt ein Array zurück, das die Länge eines jeden Feldes in dem zuletzt von MySQL geholten Datensatz enthält.

mysql_fetch_lengths() speichert die Länge jeder Ergebnisspalte in der letzten Ergebniszeile, erhalten von mysql_fetch_row(), mysql_fetch_assoc(), mysql_fetch_array() und mysql_fetch_object() in einem Array, dessen Offset bei 0 beginnt.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Rückgabewerte

Gibt bei Erfolg ein array mit Längenwerten zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ein mysql_fetch_lengths()-Beispiel

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Konnte die Abfrage nicht ausführen: ' . mysql_error();
    exit;
}
$row     = mysql_fetch_assoc($result);
$lengths = mysql_fetch_lengths($result);

print_r($row);
print_r($lengths);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [id] => 42
    [email] => user@example.com
)
Array
(
    [0] => 2
    [1] => 16
)

Siehe auch

  • mysql_field_len() - Liefert die Länge des angegebenen Feldes
  • mysql_fetch_row() - Liefert einen Datensatz als indiziertes Array
  • strlen() - Ermitteln der String-Länge


Liefert eine Ergebniszeile als Objekt

  • « mysql_fetch_lengths
  • mysql_fetch_row »
  • PHP Manual
  • MySQL Funktionen
  • Liefert eine Ergebniszeile als Objekt

mysql_fetch_object

(PHP 4, PHP 5)

mysql_fetch_object — Liefert eine Ergebniszeile als Objekt

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_fetch_object()
  • PDOStatement::fetch(PDO::FETCH_OBJ)

Beschreibung

mysql_fetch_object ( resource $result , string $class_name = ? , array $params = ? ) : object

Gibt ein Objekt mit Eigenschaften zurück, die mit der angeforderten Zeile korrespondieren, und bewegt den internen Datenzeiger vorwärts.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

class_name

Der Name der Klasse, die instanziiert, mit Eigenschaften versehen und zurückgegeben werden soll. Wenn nicht angegeben, wird ein stdClass-Objekt zurückgegeben.

params

Ein optionales Array von Parametern, die dem Konstruktor von class_name-Objekten übergeben werden sollen.

Rückgabewerte

Gibt ein Objekt mit Eigenschaften zurück, die mit der angeforderten Zeile korrespondieren, oder false wenn es keine weiteren Zeilen mehr gibt.

Beispiele

Beispiel #1 mysql_fetch_object()-Beispiel

<?php
mysql_connect("hostname", "benutzer", "passwort");
mysql_select_db("meinedatenbank");
$result = mysql_query("select * from meinetabelle");
while ($row = mysql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->vollername;
}
mysql_free_result($result);
?>

Beispiel #2 mysql_fetch_object()-Beispiel

<?php
class foo {
    public $name;
}

mysql_connect("hostname", "benutzer", "passwort");
mysql_select_db("meinedatenbank");

$result = mysql_query("select name from meinetabelle limit 1");
$obj = mysql_fetch_object($result, 'foo');
var_dump($obj);
?>

Anmerkungen

Hinweis: Performanz

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).

Hinweis:

mysql_fetch_object() ist vergleichbar mit mysql_fetch_array(), mit dem Unterschied, dass ein Objekt statt eines Arrays zurückgegeben wird. Indirekt bedeutet das, dass Sie auf die Daten nur über die Feldnamen zugreifen können und nicht über die Offsets (da Zahlen keine erlaubten Namen für Eigenschaften sind).

Hinweis: Feldnamen, die von dieser Funktion zurückgegeben werden, unterscheiden sich in der Groß-/Kleinschreibung.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

Siehe auch

  • mysql_fetch_array() - Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
  • mysql_fetch_assoc() - Liefert einen Datensatz als assoziatives Array
  • mysql_fetch_row() - Liefert einen Datensatz als indiziertes Array
  • mysql_data_seek() - Bewegt den internen Ergebnis-Zeiger
  • mysql_query() - Sendet eine Abfrage an MySQL


Liefert einen Datensatz als indiziertes Array

  • « mysql_fetch_object
  • mysql_field_flags »
  • PHP Manual
  • MySQL Funktionen
  • Liefert einen Datensatz als indiziertes Array

mysql_fetch_row

(PHP 4, PHP 5)

mysql_fetch_row — Liefert einen Datensatz als indiziertes Array

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_fetch_row()
  • PDOStatement::fetch(PDO::FETCH_NUM)

Beschreibung

mysql_fetch_row ( resource $result ) : array

Gibt ein numerisch indizertes Array zurück, das dem geholten Datensatz entspricht, und bewegt den internen Datensatzzeiger vorwärts.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Rückgabewerte

Gibt ein numerisches Array von Zeichenketten zurück, das dem gelesenen Datensatz entspricht, oder false, falls keine weiteren Zeilen vorhanden sind.

mysql_fetch_row() gibt einen Datensatz aus dem Abfrageergebnis mit der übergebenen Kennung zurück. Der Datensatz wird als Array zurückgegeben. Jedes Feld wird in einem Array-Offset abgelegt, der bei Offset 0 beginnt.

Beispiele

Beispiel #1 Einen Datensatz mit mysql_fetch_row() holen

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Konnte Abfrage nicht ausführen: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);

echo $row[0]; // 42
echo $row[1]; // der email-Wert
?>

Anmerkungen

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

Siehe auch

  • mysql_fetch_array() - Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
  • mysql_fetch_assoc() - Liefert einen Datensatz als assoziatives Array
  • mysql_fetch_object() - Liefert eine Ergebniszeile als Objekt
  • mysql_data_seek() - Bewegt den internen Ergebnis-Zeiger
  • mysql_fetch_lengths() - Liefert die Längen aller Felder aus einem Ergebnis
  • mysql_result() - Liefert eine Spalte aus einem MySQL-Ergebnis


Liefert die Flags des angegebenen Feldes aus einem Abfrageergebnis

  • « mysql_fetch_row
  • mysql_field_len »
  • PHP Manual
  • MySQL Funktionen
  • Liefert die Flags des angegebenen Feldes aus einem Abfrageergebnis

mysql_field_flags

(PHP 4, PHP 5)

mysql_field_flags — Liefert die Flags des angegebenen Feldes aus einem Abfrageergebnis

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_fetch_field_direct() [flags]
  • PDOStatement::getColumnMeta() [flags]

Beschreibung

mysql_field_flags ( resource $result , int $field_offset ) : string|false

mysql_field_flags() gibt die Flags des Feldes am übergebenen Offset zurück. Die Flags werden als einzelne Worte pro Flag und durch ein einziges Leerzeichen getrennt zurückgegeben, sodass sie einfach mit explode() getrennt werden können.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Feldoffset

Der numerische Offset des Feldes. Der Feldoffset beginnt bei 0. Falls Feldoffset nicht existiert, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt eine Zeichenkette aus Flags zurück, die mit dem Ergebnis assoziiert sind. Im Fehlerfall wird false zurückgegeben.

Die folgenden Flags werden zurückgegeben, wenn Ihre Version von MySQL aktuell genug ist, diese zu unterstützen: "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment" und "timestamp".

Beispiele

Beispiel #1 Ein mysql_field_flags()-Beispiel

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Konnte die Abfrage nicht ausführen: ' . mysql_error();
    exit;
}
$flags = mysql_field_flags($result, 0);

echo $flags;
print_r(explode(' ', $flags));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

not_null primary_key auto_increment
Array
(
    [0] => not_null
    [1] => primary_key
    [2] => auto_increment
)

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_fieldflags()

Siehe auch

  • mysql_field_type() - Liefert den Typ des spezifizierten Feldes aus einem Ergebnis
  • mysql_field_len() - Liefert die Länge des angegebenen Feldes


Liefert die Länge des angegebenen Feldes

  • « mysql_field_flags
  • mysql_field_name »
  • PHP Manual
  • MySQL Funktionen
  • Liefert die Länge des angegebenen Feldes

mysql_field_len

(PHP 4, PHP 5)

mysql_field_len — Liefert die Länge des angegebenen Feldes

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_fetch_field_direct() [length]
  • PDOStatement::getColumnMeta() [len]

Beschreibung

mysql_field_len ( resource $result , int $field_offset ) : int|false

mysql_field_len() gibt die Länge des angegebenen Feldes zurück.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Feldoffset

Der numerische Offset des Feldes. Der Feldoffset beginnt bei 0. Falls Feldoffset nicht existiert, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt die Länge des Feldes zurück, das dem übergebenen Index entspricht. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_field_len()-Beispiel

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Konnte die Abfrage nicht ausführen: ' . mysql_error();
    exit;
}

// Gibt die Länge der Spalte id zurück, wie im Datenbankschema definiert
$length = mysql_field_len($result, 0);
echo $length;
?>

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_fieldlen()

Siehe auch

  • mysql_fetch_lengths() - Liefert die Längen aller Felder aus einem Ergebnis
  • strlen() - Ermitteln der String-Länge


Liefert den Namen des angegebenen Feldes aus einem Ergebnis

  • « mysql_field_len
  • mysql_field_seek »
  • PHP Manual
  • MySQL Funktionen
  • Liefert den Namen des angegebenen Feldes aus einem Ergebnis

mysql_field_name

(PHP 4, PHP 5)

mysql_field_name — Liefert den Namen des angegebenen Feldes aus einem Ergebnis

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_fetch_field_direct() [name] oder [orgname]
  • PDOStatement::getColumnMeta() [name]

Beschreibung

mysql_field_name ( resource $result , int $field_offset ) : string|false

mysql_field_name() gibt den Namen des Feldes zurück, das dem angegeben Feldindex entspricht.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Feldoffset

Der numerische Offset des Feldes. Der Feldoffset beginnt bei 0. Falls Feldoffset nicht existiert, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt den Namen des Feldes zurück, das dem übergebenen Index entspricht. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_field_name()-Beispiel

<?php
/* Die Benutzertabelle besteht aus 3 Feldern
 *   user_id
 *   username
 *   password.
 */
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Keine Verbindung zum MySQL-Server: ' . mysql_error());
}
$dbname = 'mydb';
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
    die("Konnte $dbname nicht auswählen: " . mysql_error());
}
$res = mysql_query('select * from users', $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

user_id
password

Anmerkungen

Hinweis: Feldnamen, die von dieser Funktion zurückgegeben werden, unterscheiden sich in der Groß-/Kleinschreibung.

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_fieldname()

Siehe auch

  • mysql_field_type() - Liefert den Typ des spezifizierten Feldes aus einem Ergebnis
  • mysql_field_len() - Liefert die Länge des angegebenen Feldes


Setzt den Ergebniszeiger auf einen bestimmten Feldoffset

  • « mysql_field_name
  • mysql_field_table »
  • PHP Manual
  • MySQL Funktionen
  • Setzt den Ergebniszeiger auf einen bestimmten Feldoffset

mysql_field_seek

(PHP 4, PHP 5)

mysql_field_seek — Setzt den Ergebniszeiger auf einen bestimmten Feldoffset

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_field_seek()
  • PDOStatement::fetch() unter Verwendung der Parameter cursor_orientation und offset

Beschreibung

mysql_field_seek ( resource $result , int $field_offset ) : bool

Setzt den Feldzeiger auf den angegeben Feldoffset. Wird beim nächsten Aufruf von mysql_fetch_field() kein Feldoffset übergeben, wird der Feldoffset zurückgegeben, der bei mysql_field_seek() angegeben wurde.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Feldoffset

Der numerische Offset des Feldes. Der Feldoffset beginnt bei 0. Falls Feldoffset nicht existiert, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • mysql_fetch_field() - Liefert ein Objekt mit Spalteninformationen aus einem Abfrageergebnis


Liefert den Namen der Tabelle, die das genannte Feld enthält

  • « mysql_field_seek
  • mysql_field_type »
  • PHP Manual
  • MySQL Funktionen
  • Liefert den Namen der Tabelle, die das genannte Feld enthält

mysql_field_table

(PHP 4, PHP 5)

mysql_field_table — Liefert den Namen der Tabelle, die das genannte Feld enthält

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_fetch_field_direct() [table] oder [orgtable]
  • PDOStatement::getColumnMeta() [table]

Beschreibung

mysql_field_table ( resource $result , int $field_offset ) : string

Gibt den Namen der Tabelle zurück, die das genannte Feld enthält.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Feldoffset

Der numerische Offset des Feldes. Der Feldoffset beginnt bei 0. Falls Feldoffset nicht existiert, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg den Namen der Tabelle zurück.

Beispiele

Beispiel #1 Ein mysql_field_table()-Beispiel

<?php

$query = "SELECT account.*, country.* FROM account, country WHERE country.name = 'Portugal' AND account.country_id = country.id";

// Erhalte Resultat von der DB
$result = mysql_query($query);

// Listet den Tabellennamen und danach den Spaltennamen auf
for ($i = 0; $i < mysql_num_fields($result); ++$i) {
    $table = mysql_field_table($result, $i);
    $field = mysql_field_name($result, $i);

    echo  "$table: $field\n";
}

?>

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_fieldtable()

Siehe auch

  • mysql_list_tables() - Listet Tabellen einer MySQL-Datenbank auf


Liefert den Typ des spezifizierten Feldes aus einem Ergebnis

  • « mysql_field_table
  • mysql_free_result »
  • PHP Manual
  • MySQL Funktionen
  • Liefert den Typ des spezifizierten Feldes aus einem Ergebnis

mysql_field_type

(PHP 4, PHP 5)

mysql_field_type — Liefert den Typ des spezifizierten Feldes aus einem Ergebnis

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_fetch_field_direct() [type]
  • PDOStatement::getColumnMeta() [driver:decl_type] or [pdo_type]

Beschreibung

mysql_field_type ( resource $result , int $field_offset ) : string

mysql_field_type() ist ähnlich wie die Funktion mysql_field_name(). Die Argumente sind identisch, aber stattdessen wird der Typ des Feldes zurückgegeben.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Feldoffset

Der numerische Offset des Feldes. Der Feldoffset beginnt bei 0. Falls Feldoffset nicht existiert, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Der zurückgegebene Feldtyp ist einer von "int", "real", "string", "blob" und anderen, wie in der » MySQL-Dokumentation weiter ausgeführt.

Beispiele

Beispiel #1 mysql_field_type()-Beispiel

<?php
mysql_connect("localhost", "mysql_username", "mysql_password");
mysql_select_db("mysql");
$result = mysql_query("SELECT * FROM func");
$fields = mysql_num_fields($result);
$rows   = mysql_num_rows($result);
$table  = mysql_field_table($result, 0);
echo "Die '" . $table . "' Tabelle hat " . $fields . " Felder und " . $rows . " Datensätze\n";
echo "Die Tabelle hat folgende Felder:\n";
for ($i=0; $i < $fields; $i++) {
    $type  = mysql_field_type($result, $i);
    $name  = mysql_field_name($result, $i);
    $len   = mysql_field_len($result, $i);
    $flags = mysql_field_flags($result, $i);
    echo $type . " " . $name . " " . $len . " " . $flags . "\n";
}
mysql_free_result($result);
mysql_close();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Die Tabelle 'func' hat 4 Felder und 1 Datensätze
Die Tabelle hat folgende Felder:
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_fieldtype()

Siehe auch

  • mysql_field_name() - Liefert den Namen des angegebenen Feldes aus einem Ergebnis
  • mysql_field_len() - Liefert die Länge des angegebenen Feldes


Gibt belegten Speicher wieder frei

  • « mysql_field_type
  • mysql_get_client_info »
  • PHP Manual
  • MySQL Funktionen
  • Gibt belegten Speicher wieder frei

mysql_free_result

(PHP 4, PHP 5)

mysql_free_result — Gibt belegten Speicher wieder frei

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_free_result()
  • Den Wert null dem PDO-Objekt zuweisen oder PDOStatement::closeCursor()

Beschreibung

mysql_free_result ( resource $result ) : bool

mysql_free_result() gibt den Speicher frei, der mit result (Ergebniskennung) verknüpft ist.

Die Funktion muss nur dann aufgerufen werden, wenn Sie sich bei Anfragen, die große Ergebnismengen liefern, Sorgen über den Speicherverbrauch zur Laufzeit des PHP-Skripts machen. Nach Ablauf des Skripts wird der Speicher ohnehin freigegeben.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Wird für den Parameter result ein Wert angegeben, der nicht vom Typ resource ist, wird ein Fehler der Stufe E_WARNING ausgegeben. Beachten Sie, dass mysql_query() nur eine Ressource für SELECT-, SHOW-, EXPLAIN- und DESCRIBE-Abfragen zurückgibt.

Beispiele

Beispiel #1 Ein mysql_free_result()-Beispiel

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
    exit;
}
/* Verwende result, unter der Annahme wir sind hinterher damit fertig */
$row = mysql_fetch_assoc($result);

/* Nun geben wir den Speicher für result frei und fahren in unserem Skript fort */
mysql_free_result($result);

echo $row['id'];
echo $row['email'];
?>

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_freeresult()

Siehe auch

  • mysql_query() - Sendet eine Abfrage an MySQL
  • is_resource() - Prüft, ob eine Variable vom Typ resource ist


Liefert MySQL-Clientinformationen

  • « mysql_free_result
  • mysql_get_host_info »
  • PHP Manual
  • MySQL Funktionen
  • Liefert MySQL-Clientinformationen

mysql_get_client_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_client_info — Liefert MySQL-Clientinformationen

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_get_client_info()
  • PDO::getAttribute(PDO::ATTR_CLIENT_VERSION)

Beschreibung

mysql_get_client_info ( ) : string

mysql_get_client_info() gibt eine Zeichenkette mit der Version der Client-Bibliothek zurück.

Rückgabewerte

Gibt die Version der MySQL-Client-Bibliothek zurück.

Beispiele

Beispiel #1 mysql_get_client_info()-Beispiel

<?php
printf("MySQL-Client-Info: %s\n", mysql_get_client_info());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

MySQL-Client-Info: 3.23.39

Siehe auch

  • mysql_get_host_info() - Liefert Informationen zum MySQL-Host
  • mysql_get_proto_info() - Liefert MySQL-Protokollinformationen
  • mysql_get_server_info() - Liefert Informationen zum MySQL-Server


Liefert Informationen zum MySQL-Host

  • « mysql_get_client_info
  • mysql_get_proto_info »
  • PHP Manual
  • MySQL Funktionen
  • Liefert Informationen zum MySQL-Host

mysql_get_host_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_host_info — Liefert Informationen zum MySQL-Host

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_get_host_info()
  • PDO::getAttribute(PDO::ATTR_CONNECTION_STATUS)

Beschreibung

mysql_get_host_info ( resource $link_identifier = NULL ) : string|false

Beschreibt den Typ der aktuell verwendeten Verbindung inklusive dem Hostnamen des Servers.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt eine Zeichenkette zurück, die den Typ der aktuell verwendeten MySQL-Verbindung beschreibt. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_get_host_info()-Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Keine Verbindung möglich: ' . mysql_error());
}
printf("MySQL-Host-Info: %s\n", mysql_get_host_info());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

MySQL-Host-Info: Localhost via UNIX socket

Siehe auch

  • mysql_get_client_info() - Liefert MySQL-Clientinformationen
  • mysql_get_proto_info() - Liefert MySQL-Protokollinformationen
  • mysql_get_server_info() - Liefert Informationen zum MySQL-Server


Liefert MySQL-Protokollinformationen

  • « mysql_get_host_info
  • mysql_get_server_info »
  • PHP Manual
  • MySQL Funktionen
  • Liefert MySQL-Protokollinformationen

mysql_get_proto_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_proto_info — Liefert MySQL-Protokollinformationen

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_get_proto_info()

Beschreibung

mysql_get_proto_info ( resource $link_identifier = NULL ) : int|false

Liefert die MySQL-Protokollversion.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg die Version des MySQL-Protokolls zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_get_proto_info()-Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Keine Verbindung möglich: ' . mysql_error());
}
printf("Die MySQL-Protokollversion: %s\n", mysql_get_proto_info());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Die MySQL-Protokollversion: 10

Siehe auch

  • mysql_get_client_info() - Liefert MySQL-Clientinformationen
  • mysql_get_host_info() - Liefert Informationen zum MySQL-Host
  • mysql_get_server_info() - Liefert Informationen zum MySQL-Server


Liefert Informationen zum MySQL-Server

  • « mysql_get_proto_info
  • mysql_info »
  • PHP Manual
  • MySQL Funktionen
  • Liefert Informationen zum MySQL-Server

mysql_get_server_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_server_info — Liefert Informationen zum MySQL-Server

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_get_server_info()
  • PDO::getAttribute(PDO::ATTR_SERVER_VERSION)

Beschreibung

mysql_get_server_info ( resource $link_identifier = NULL ) : string|false

Gibt die Version des MySQL-Servers zurück.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg die Version des MySQL-Servers zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_get_server_info()-Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Keine Verbindung möglich: ' . mysql_error());
}
printf("Die MySQL-Server-Version: %s\n", mysql_get_server_info());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Die MySQL-Server Version: 4.0.1-alpha

Siehe auch

  • mysql_get_client_info() - Liefert MySQL-Clientinformationen
  • mysql_get_host_info() - Liefert Informationen zum MySQL-Host
  • mysql_get_proto_info() - Liefert MySQL-Protokollinformationen
  • phpversion() - Liefert die aktuelle PHP-Version


Liefert Informationen über die zuletzt ausgeführte Anfrage

  • « mysql_get_server_info
  • mysql_insert_id »
  • PHP Manual
  • MySQL Funktionen
  • Liefert Informationen über die zuletzt ausgeführte Anfrage

mysql_info

(PHP 4 >= 4.3.0, PHP 5)

mysql_info — Liefert Informationen über die zuletzt ausgeführte Anfrage

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_info()

Beschreibung

mysql_info ( resource $link_identifier = NULL ) : string

Gibt ausführliche Informationen zur letzten Abfrage zurück.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg Informationen über die Anweisung zurück oder false bei einem Fehler. Im Beispiel unten sehen Sie, welche Anweisungen Informationen liefern, und wie der zurückgegebene Wert aussehen kann. Anweisungen, die nicht aufgeführt sind, geben false zurück.

Beispiele

Beispiel #1 Relevante MySQL-Anweisungen

Anweisungen, die Zeichenketten zurückgeben. Die Nummern dienen nur zur Illustration; die tatsächlichen Werte entsprechen der jeweiligen Abfrage.

INSERT INTO ... SELECT ...
String format: Records: 23 Duplicates: 0 Warnings: 0
INSERT INTO ... VALUES (...),(...),(...)...
String format: Records: 37 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ...
String format: Records: 42 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE
String format: Records: 60 Duplicates: 0 Warnings: 0
UPDATE
String format: Rows matched: 65 Changed: 65 Warnings: 0

Anmerkungen

Hinweis:

mysql_info() liefert bei INSERT...VALUES-Befehlen nur dann einen gültigen (nicht-false) Wert, wenn mehrfache Werte angegeben wurden.

Siehe auch

  • mysql_affected_rows() - Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL-Operation
  • mysql_insert_id() - Liefert die ID, die in der vorherigen Abfrage erzeugt wurde
  • mysql_stat() - Zeigt den momentanen Serverstatus an


Liefert die ID, die in der vorherigen Abfrage erzeugt wurde

  • « mysql_info
  • mysql_list_dbs »
  • PHP Manual
  • MySQL Funktionen
  • Liefert die ID, die in der vorherigen Abfrage erzeugt wurde

mysql_insert_id

(PHP 4, PHP 5)

mysql_insert_id — Liefert die ID, die in der vorherigen Abfrage erzeugt wurde

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_insert_id()
  • PDO::lastInsertId()

Beschreibung

mysql_insert_id ( resource $link_identifier = NULL ) : int

Gibt die ID zurück, die für eine AUTO_INCREMENT-Spalte durch die vorherige Abfrage (meist INSERT) erzeugt wurde.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg die ID zurück, die durch die vorherige Abfrage für eine AUTO_INCREMENT-Spalte erzeugt wurde, 0, falls die vorherige Abfrage keinen AUTO_INCREMENT Wert erzeugt hatte, oder false, falls keine MySQL-Verbindung existierte.

Beispiele

Beispiel #1 mysql_insert_id()-Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Keine Verbindung möglich: ' . mysql_error());
}
mysql_select_db('mydb');

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Der letze eingefügte Datensatz hat die ID %d\n", mysql_insert_id());
?>

Anmerkungen

Achtung

mysql_insert_id() konvertiert den Typ der Rückgabe der nativen MySQL C API-Funktion mysql_insert_id() in den Typ long (in PHP als int bezeichnet). Falls Ihre AUTO_INCREMENT-Spalte vom Typ BIGINT (64 Bit) ist, ist der Wert, den mysql_insert_id() zurückgibt, nicht korrekt. Verwenden Sie in einer SQL-Abfrage in diesem Fall stattdessen die MySQL-interne SQL-Funktion LAST_INSERT_ID(). Für weitergehende Informationen bezüglich PHPs maximaler Integer-Werte, lesen Sie bitte die Integer-Dokumenation.

Hinweis:

Da mysql_insert_id() mit der zuletzt durchgeführten Abfrage arbeitet, sollten Sie mysql_insert_id() unmittelbar nach der Abfrage aufrufen, die den Wert erzeugt.

Hinweis:

Der Wert der MySQL-SQL-Funktion LAST_INSERT_ID() gibt immer den zuletzt erzeugten AUTO_INCREMENT-Wert zurück. Dieser wird zwischen Abfragen nicht zurückgesetzt.

Siehe auch

  • mysql_query() - Sendet eine Abfrage an MySQL
  • mysql_info() - Liefert Informationen über die zuletzt ausgeführte Anfrage


Listet die verfügbaren Datenbanken (Schemata) auf einem MySQL-Server auf

  • « mysql_insert_id
  • mysql_list_fields »
  • PHP Manual
  • MySQL Funktionen
  • Listet die verfügbaren Datenbanken (Schemata) auf einem MySQL-Server auf

mysql_list_dbs

(PHP 4, PHP 5)

mysql_list_dbs — Listet die verfügbaren Datenbanken (Schemata) auf einem MySQL-Server auf

Warnung

Diese Funktion wurde in PHP 5.4.0 als veraltet gekennzeichnet und wurde in PHP 7.0.0 zusammen mit der gesamten ursprünglichen MySQL-Erweiterung entfernt. Stattdessen sollten die aktiv entwickelten Erweiterungen MySQLi oder PDO_MySQL verwendet werden. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ-Eintrag. Alternativen zu dieser Funktion umfassen:

  • SQL Query: SHOW DATABASES

Beschreibung

mysql_list_dbs ( resource $link_identifier = NULL ) : resource

Gibt eine Ergebniskennung zurück, die alle Datenbanken auf dem Datenbank-Server enthält.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg eine Ergebniszeiger-Ressource zurück oder false bei einem Fehler. Verwenden sie die Funktion mysql_tablename(), um dieses Ergebnis zu durchlaufen oder irgendeine der Funktionen, die mit Ergebnistabellen umgehen können, wie etwa mysql_fetch_array().

Beispiele

Beispiel #1 mysql_list_dbs()-Beispiel

<?php
// Verwendung ohne mysql_list_dbs()
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$res = mysql_query("SHOW DATABASES");

while ($row = mysql_fetch_assoc($res)) {
    echo $row['Database'] . "\n";
}

// Veraltet seit PHP 5.4.0
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
     echo $row->Database . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

database1
database2
database3

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_listdbs()

Siehe auch

  • mysql_db_name() - Liefert den Namen einer Datenbank vom mysql_list_dbs-Aufruf
  • mysql_select_db() - Wählt eine MySQL-Datenbank aus


Listet MySQL-Tabellenfelder auf

  • « mysql_list_dbs
  • mysql_list_processes »
  • PHP Manual
  • MySQL Funktionen
  • Listet MySQL-Tabellenfelder auf

mysql_list_fields

(PHP 4, PHP 5)

mysql_list_fields — Listet MySQL-Tabellenfelder auf

Warnung

Diese Funktion wurde in PHP 5.4.0 als veraltet gekennzeichnet und wurde in PHP 7.0.0 zusammen mit der gesamten ursprünglichen MySQL-Erweiterung entfernt. Stattdessen sollten die aktiv entwickelten Erweiterungen MySQLi oder PDO_MySQL verwendet werden. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ-Eintrag. Alternativen zu dieser Funktion umfassen:

  • SQL Query: SHOW COLUMNS FROM tabelle

Beschreibung

mysql_list_fields ( string $database_name , string $table_name , resource $link_identifier = NULL ) : resource

Gibt Informationen über den übergebenen Tabellennamen zurück.

Diese Funktion ist veraltet. Stattdessen ist es vorzuziehen, den SQL-Befehl SHOW COLUMNS FROM table [LIKE 'name'] mit der Funktion mysql_query() auszuführen.

Parameter-Liste

database_name

Der Name der abgefragten Datenbank.

table_name

Der Name der abgefragten Tabelle.

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg eine Ergebniszeiger-Ressource zurück oder false bei einem Fehler.

Das zurückgegebene Resultat kann mit
mysql_field_flags(),
mysql_field_len(),
mysql_field_name() und
mysql_field_type() verwendet werden,

Beispiele

Beispiel #1 Alternative zum veraltetenmysql_list_fields()

<?php
$result = mysql_query("SHOW COLUMNS FROM sometable");
if (!$result) {
    echo 'Konnte Abfrage nicht ausführen: ' . mysql_error();
    exit;
}
if (mysql_num_rows($result) > 0) {
    while ($row = mysql_fetch_assoc($result)) {
        print_r($row);
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [Field] => id
    [Type] => int(7)
    [Null] =>
    [Key] => PRI
    [Default] =>
    [Extra] => auto_increment
)
Array
(
    [Field] => email
    [Type] => varchar(100)
    [Null] =>
    [Key] =>
    [Default] =>
    [Extra] =>
)

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_listfields()

Siehe auch

  • mysql_field_flags() - Liefert die Flags des angegebenen Feldes aus einem Abfrageergebnis
  • mysql_info() - Liefert Informationen über die zuletzt ausgeführte Anfrage


Zeigt die MySQL-Prozesse an

  • « mysql_list_fields
  • mysql_list_tables »
  • PHP Manual
  • MySQL Funktionen
  • Zeigt die MySQL-Prozesse an

mysql_list_processes

(PHP 4 >= 4.3.0, PHP 5)

mysql_list_processes — Zeigt die MySQL-Prozesse an

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_thread_id()

Beschreibung

mysql_list_processes ( resource $link_identifier = NULL ) : resource|false

Gibt die aktuellen Prozesse des MySQL-Servers zurück.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg einen Ergebniszeiger vom Typ resource zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_list_processes()-Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$result = mysql_list_processes($link);
while ($row = mysql_fetch_assoc($result)){
    printf("%s %s %s %s %s\n", $row["Id"], $row["Host"], $row["db"],
        $row["Command"], $row["Time"]);
}
mysql_free_result($result);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1 localhost test Processlist 0
4 localhost mysql sleep 5

Siehe auch

  • mysql_thread_id() - Zeigt die aktuelle Thread-ID an
  • mysql_stat() - Zeigt den momentanen Serverstatus an


Listet Tabellen einer MySQL-Datenbank auf

  • « mysql_list_processes
  • mysql_num_fields »
  • PHP Manual
  • MySQL Funktionen
  • Listet Tabellen einer MySQL-Datenbank auf

mysql_list_tables

(PHP 4, PHP 5)

mysql_list_tables — Listet Tabellen einer MySQL-Datenbank auf

Warnung

Diese Funktion wurde in PHP 4.3.0 als veraltet gekennzeichnet und wurde in PHP 7.0.0 zusammen mit der gesamten ursprünglichen MySQL-Erweiterung entfernt. Stattdessen sollten die aktiv entwickelten Erweiterungen MySQLi oder PDO_MySQL verwendet werden. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ-Eintrag. Alternativen zu dieser Funktion umfassen:

  • SQL-Abfrage: SHOW TABLES FROM dbname

Beschreibung

mysql_list_tables ( string $database , resource $link_identifier = NULL ) : resource|false

Gibt eine Liste der Tabellennamen einer MySQL-Datenbank zurück.

Diese Funktion ist veraltet. Stattdessen ist es vorzuziehen, mysql_query() mit dem SQL-Befehl SHOW TABLES [FROM db_name] [LIKE 'pattern'] zu verwenden.

Parameter-Liste

database

Der Name der Datenbank.

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg einen Ergebniszeiger vom Typ resource zurück. Im Fehlerfall wird false zurückgegeben.

Verwenden sie die Funktion mysql_tablename(), um dieses Resultat zu durchlaufen oder irgendeine andere Funktion, die mit Ergebnistabellen umgehen kann, wie zum Beispiel mysql_fetch_array().

Changelog

Version | Beschreibung
4.3.7 | Diese Funktion gilt als veraltet.

Beispiele

Beispiel #1 mysql_list_tables()-Alternativbeispiel

<?php
$dbname = 'mysql_dbname';

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    echo 'Konnte nicht mit mysql verbinden';
    exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
    echo "DB-Fehler, konnte die Tabellen nicht auflisten\n";
    echo 'MySQL-Fehler: ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_row($result)) {
    echo "Tabelle: {$row[0]}\n";
}

mysql_free_result($result);
?>

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_listtables()

Siehe auch

  • mysql_list_dbs() - Listet die verfügbaren Datenbanken (Schemata) auf einem MySQL-Server auf
  • mysql_tablename() - Liefert den Namen einer Tabelle


Liefert die Anzahl der Felder in einem Ergebnis

  • « mysql_list_tables
  • mysql_num_rows »
  • PHP Manual
  • MySQL Funktionen
  • Liefert die Anzahl der Felder in einem Ergebnis

mysql_num_fields

(PHP 4, PHP 5)

mysql_num_fields — Liefert die Anzahl der Felder in einem Ergebnis

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_num_fields()
  • PDOStatement::columnCount()

Beschreibung

mysql_num_fields ( resource $result ) : int|false

Gibt die Anzahl der Felder in einem Abfrageergebnis zurück.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Rückgabewerte

Gibt bei Erfolg die Anzahl der Felder in der Ergebnisressource zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ein mysql_num_fields()-Beispiel

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Konnte die Abfrage nicht ausführen: ' . mysql_error();
    exit;
}

/* Gibt 2 zurück, da id,email === zwei Felder */
echo mysql_num_fields($result);
?>

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_numfields()

Siehe auch

  • mysql_select_db() - Wählt eine MySQL-Datenbank aus
  • mysql_query() - Sendet eine Abfrage an MySQL
  • mysql_fetch_field() - Liefert ein Objekt mit Spalteninformationen aus einem Abfrageergebnis
  • mysql_num_rows() - Liefert die Anzahl der Zeilen in einem Ergebnis


Liefert die Anzahl der Zeilen in einem Ergebnis

  • « mysql_num_fields
  • mysql_pconnect »
  • PHP Manual
  • MySQL Funktionen
  • Liefert die Anzahl der Zeilen in einem Ergebnis

mysql_num_rows

(PHP 4, PHP 5)

mysql_num_rows — Liefert die Anzahl der Zeilen in einem Ergebnis

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_num_rows()
  • mysqli_stmt_num_rows()
  • PDOStatement::rowCount()

Beschreibung

mysql_num_rows ( resource $result ) : int|false

Gibt die Anzahl der Zeilen einer Ergebnismenge zurück. Diese Funktion ist nur gültig für Befehle wie SELECT oder SHOW, die eine tatsächliche Ergebnismenge zurückgeben. Haben Sie eine INSERT-, UPDATE- oder DELETE-Abfrage ausgeführt und möchten die Anzahl der betroffenen Datensätze ermitteln, verwenden Sie die Funktion mysql_affected_rows().

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

Rückgabewerte

Gibt bei Erfolg die Anzahl der Zeilen in einer Ergebnismenge zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_num_rows()-Beispiel

<?php

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows Zeilen\n";

?>

Anmerkungen

Hinweis:

Wenn Sie mysql_unbuffered_query() verwenden, gibt mysql_num_rows() solange nicht den korrekten Wert zurück, bis Sie alle Zeilen der Ergebnismenge erhalten haben.

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_numrows()

Siehe auch

  • mysql_affected_rows() - Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL-Operation
  • mysql_connect() - Öffnet eine Verbindung zu einem MySQL-Server
  • mysql_data_seek() - Bewegt den internen Ergebnis-Zeiger
  • mysql_select_db() - Wählt eine MySQL-Datenbank aus
  • mysql_query() - Sendet eine Abfrage an MySQL


Öffnet eine persistente Verbindung zum MySQL-Server

  • « mysql_num_rows
  • mysql_ping »
  • PHP Manual
  • MySQL Funktionen
  • Öffnet eine persistente Verbindung zum MySQL-Server

mysql_pconnect

(PHP 4, PHP 5)

mysql_pconnect — Öffnet eine persistente Verbindung zum MySQL-Server

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_connect() mit p: Host-Präfix
  • PDO::__construct() mit PDO::ATTR_PERSISTENT als Treiberoption

Beschreibung

mysql_pconnect ( string $server = ini_get("mysql.default_host") , string $username = ini_get("mysql.default_user") , string $password = ini_get("mysql.default_password") , int $client_flags = 0 ) : resource

Baut eine persistente Verbindung zu einem MySQL-Server auf.

mysql_pconnect() verhält sich weitgehend wie mysql_connect() mit zwei großen Unterschieden.

Erstens: Vor dem Verbindungsaufbau wird zunächst versucht eine offene (persistente) Verbindung zum gleichen Host, mit dem gleichen Benutzernamen und Benutzerkennwort zu finden. Wenn das gelingt, wird die Verbindungskennung dieser Verbindung zurückgegeben statt eine neue Verbindung aufzubauen.

Zweitens: Die Verbindung zum SQL-Server wird beim Beenden des PHP-Skripts nicht geschlossen. Sie bleibt zur zukünftigen Verwendung bestehen. (mysql_close() schließt keine von mysql_pconnect() geöffneten Verbindungen).

Deshalb wird dieser Verbindungstyp "persistent" genannt.

Parameter-Liste

server

Der MySQL-Server. Er kann zudem eine Portnummer enthalten, z.B. "hostname:port" oder den Pfad zu einem lokalen Socket z.B. ":/pfad/zum/socket" für Zugriffe auf dem lokalen Rechner (localhost).

Wenn die PHP-Direktive mysql.default_host nicht definiert ist (Standard), ist der Vorgabewert "localhost:3306".

username

Der Benutzername. Der Standardwert ist der Name des Benutzers, dem der Prozess gehört.

password

Das Passwort. Der Standardwert ist ein leeres Passwort.

client_flags

Der Parameter client_flags kann eine Kombination der folgenden Konstanten sein: 128 (aktiviert die Verwendung von LOAD DATA LOCAL), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE und MYSQL_CLIENT_INTERACTIVE.

Rückgabewerte

Gibt im Erfolgsfall eine persitente MySQL-Verbindungskennung zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.5.0 | Die Funktion erzeugt einen Fehler der Stufe E_DEPRECATED.

Anmerkungen

Hinweis:

Beachten Sie, dass diese Art der Verbindung nur funktioniert. wenn Sie PHP als Modul-Version verwenden. Für mehr Informationen schauen Sie unter Persistente Datenbankverbindungen nach.

Warnung

Die Verwendung von persistenten Verbindungen verlangt unter Umständen eine feinere Abstimmung der Konfiguration von Apache und MySQL. Dadurch sollten Sie sicherstellen, dass Sie die Anzahl der Verbindungen, die MySQL maximal erlaubt, nicht überschreiten.

Siehe auch

  • mysql_connect() - Öffnet eine Verbindung zu einem MySQL-Server
  • Persistente Datenbankverbindungen


Pingt eine Serververbindung an und verbindet erneut, wenn keine Verbindung besteht

  • « mysql_pconnect
  • mysql_query »
  • PHP Manual
  • MySQL Funktionen
  • Pingt eine Serververbindung an und verbindet erneut, wenn keine Verbindung besteht

mysql_ping

(PHP 4 >= 4.3.0, PHP 5)

mysql_ping — Pingt eine Serververbindung an und verbindet erneut, wenn keine Verbindung besteht

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_ping()

Beschreibung

mysql_ping ( resource $link_identifier = NULL ) : bool

Überprüft, ob die Verbindung zum Server funktioniert oder nicht. Ist die Verbindung abgebrochen, wird ein automatischer Reconnect versucht. Diese Funktion können Sie in PHP-Skripts verwenden, die längere Zeit untätig bleiben, um zu prüfen, ob der Server die Verbindung abgebaut hat oder nicht, und im Bedarfsfall wird versucht, die Verbindung wieder herzustellen. Rückgabewert: mysql_ping() gibt true zurück, wenn die Verbindung zum Server funktioniert, ansonsten false.

Hinweis:

Die automatische Wiederherstellung der Verbindung ist standardmäßig in MySQL >= 5.0.3 deaktiviert.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt true zurück, wenn die Verbindung zum MySQL-Server noch besteht, ansonsten false.

Beispiele

Beispiel #1 mysql_ping()-Beispiel

<?php
set_time_limit(0);

$conn = mysql_connect('localhost', 'mysqluser', 'mypass');
$db   = mysql_select_db('mydb');

/* Annahme: diese Abfrage dauert sehr lange */
$result = mysql_query($sql);
if (!$result) {
    echo 'Abfrage #1 fehlgeschlagen, aussteigen.';
    exit;
}

/*
Sicherstellen, dass die Verbindung immer noch besteht, falls nicht,
versuchen diese wieder aufzubauen
*/
if (!mysql_ping($conn)) {
    echo 'Verbindung verloren, Ausstieg nach Abfrage #1';
    exit;
}
mysql_free_result($result);

/* Verbindung besteht noch, absetzen eine einer weiteren Abfrage */
$result2 = mysql_query($sql2);
?>

Siehe auch

  • mysql_thread_id() - Zeigt die aktuelle Thread-ID an
  • mysql_list_processes() - Zeigt die MySQL-Prozesse an


Sendet eine Abfrage an MySQL

  • « mysql_ping
  • mysql_real_escape_string »
  • PHP Manual
  • MySQL Funktionen
  • Sendet eine Abfrage an MySQL

mysql_query

(PHP 4, PHP 5)

mysql_query — Sendet eine Abfrage an MySQL

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_query()
  • PDO::query()

Beschreibung

mysql_query ( string $query , resource $link_identifier = NULL ) : mixed

mysql_query() sendet eine einzelne Abfrage (mehrere Abfragen werden nicht unterstützt) zur momentan aktiven Datenbank auf dem Server, die mit der übergebenen Verbindungskennung link_identifier verknüpft ist.

Parameter-Liste

query

Eine SQL-Anweisung.

Die Anweisung sollte nicht mit einem Semikolon abgeschlossen werden. Werte innerhalb der Abfrage sollten korrekt maskiert werden.

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Für SELECT, SHOW, DESCRIBE, EXPLAIN und andere Anweisungen, die eine Ergebnismenge zurückgeben, gibt mysql_query() bei Erfolg eine Ressource zurück, oder false bei einem Fehler.

Für alle anderen von SQL-Anweisungen wie INSERT, UPDATE, DELETE, DROP, etc, gibt mysql_query() bei Erfolg true zurück oder false bei einem Fehler.

Die zurückgegebene Ergebnisressource sollte an mysql_fetch_array() oder andere Funktionen, die mit Ergebnis Tabellen umgehen, übergeben werden, um auf die erhaltenen Daten zuzugreifen.

Verwenden sie mysql_num_rows() um zu erfahren, wieviele Datensätze für eine SELECT-Anweisung zurückgegeben wurden, oder mysql_affected_rows() um zu erfahren, wieviele Datensätze von einer DELETE-, INSERT-, REPLACE- oder UPDATE-Anweisung betroffen waren.

mysql_query() wird ebenfalls fehlschlagen und false zurückgeben, wenn der Benutzer nicht die Rechte hat, auf die Tabellen, die in der Anweisung referenziert wurden, zuzugreifen.

Beispiele

Beispiel #1 Ungültige Anfrage

Die folgende Abfrage ist syntaktisch falsch, deshalb gibt mysql_query() false zurück:

<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
    die('Ungültige Abfrage: ' . mysql_error());
}

?>

Beispiel #2 Gültige Anfrage

Die folgende Abfrage ist gültig, daher gibt mysql_query() eine Ressource zurück.

<?php
// Dies könnte z.B. durch einen Benutzer angegeben werden
$firstname = 'fred';
$lastname  = 'fox';

// Formuliere Abfrage
// Dies ist die beste Art, eine SQL-Abfrage durchzuführen
// Für weitere Beispiele siehe: mysql_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends
    WHERE firstname='%s' AND lastname='%s'",
    mysql_real_escape_string($firstname),
    mysql_real_escape_string($lastname));

// Führe Abfrage aus
$result = mysql_query($query);

// Prüfe Ergebnis
// Dies zeigt die tatsächliche Abfrage, die an MySQL gesandt wurde und den
// Fehler. Nützlich bei der Fehlersuche
if (!$result) {
    $message  = 'Ungültige Abfrage: ' . mysql_error() . "\n";
    $message .= 'Gesamte Abfrage: ' . $query;
    die($message);
}

// Verwende Ergebnis
// Der Versuch $result auszugeben, erlaubt keine Zugriff auf die Informationen
// der Ressource.
// Eine der MySQL-result-Funktionen muss verwendet werden
// Siehe auch: mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ($row = mysql_fetch_assoc($result)) {
    echo $row['firstname'];
    echo $row['lastname'];
    echo $row['address'];
    echo $row['age'];
}

// Gebe Ressourcen, die mit der Ergebnismenge assoziiert sind, frei
// Dies geschieht am Ende eines Skripts automatisch
mysql_free_result($result);
?>

Siehe auch

  • mysql_connect() - Öffnet eine Verbindung zu einem MySQL-Server
  • mysql_error() - Liefert den Fehlertext der zuvor ausgeführten MySQL-Operation
  • mysql_real_escape_string() - Maskiert spezielle Zeichen innerhalb einer Zeichenkette für die Verwendung in einer SQL-Anweisung
  • mysql_result() - Liefert eine Spalte aus einem MySQL-Ergebnis
  • mysql_fetch_assoc() - Liefert einen Datensatz als assoziatives Array
  • mysql_unbuffered_query() - Sendet eine SQL-Anfrage an MySQL, ohne Ergebniszeilen abzuholen und zu puffern


Maskiert spezielle Zeichen innerhalb einer Zeichenkette für die Verwendung in einer SQL-Anweisung

  • « mysql_query
  • mysql_result »
  • PHP Manual
  • MySQL Funktionen
  • Maskiert spezielle Zeichen innerhalb einer Zeichenkette für die Verwendung in einer SQL-Anweisung

mysql_real_escape_string

(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_string — Maskiert spezielle Zeichen innerhalb einer Zeichenkette für die Verwendung in einer SQL-Anweisung

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_real_escape_string()
  • PDO::quote()

Beschreibung

mysql_real_escape_string ( string $unescaped_string , resource $link_identifier = NULL ) : string

Maskiert spezielle Zeichen in unescaped_string unter Berücksichtigung des aktuellen Zeichensatzes der Verbindung, so dass das Ergebnis ohne Probleme in mysql_query() verwendet werden kann. Wenn Sie Binärdaten einfügen wollen, müssen Sie die Funktion auf jeden Fall verwenden.

mysql_real_escape_string() ruft die Funktion mysql_real_escape_string der MySQL-Bibliothek auf, die folgende Zeichen mit einem Backslash ('\') versieht: \x00, \n, \r, \, ', " und \x1a.

Die Funktion muss (mit wenigen Ausnahmen) immer verwendet werden, um Daten abzusichern, bevor sie per Abrage an MySQL übermittelt werden.

Achtung

Sicherheit: Der Standardzeichensatz

Der Zeichensatz muss entweder auf Ebene des Servers oder mittels der API-Funktion mysql_set_charset() gesetzt werden, damit dieser mysql_real_escape_string() beeinflusst. Siehe das Grundlagenkapitel zum Thema Zeichensätze für mehr Informationen.

Parameter-Liste

unescaped_string

Die zu maskierende Zeichenkette.

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt eine maskierte Zeichenkette zurück oder im Fehlerfall false.

Fehler/Exceptions

Wird diese Funktion ohne MySQL-Verbindung ausgeführt, werden ebenfalls PHP-Fehler der Stufe E_WARNUNG ausgelöst. Diese Funktion sollte nur mit einer gültigen MySQL-Verbindung verwendet werden.

Beispiele

Beispiel #1 Einfaches mysql_real_escape_string()-Beispiel

<?php
// Verbindung herstellen
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Abfrage erstellen
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>

Beispiel #2 mysql_real_escape_string() benötigt eine Verbindung

Diese Beispiel verdeutlicht, was geschieht, wenn beim Aufruf dieser Funktion keine MySQL-Verbindung vorhanden ist.

<?php
// Wir sind nicht mit MySQL verbunden

$lastname  = "O'Reilly";
$_lastname = mysql_real_escape_string($lastname);

$query = "SELECT * FROM actors WHERE last_name = '$_lastname'";

var_dump($_lastname);
var_dump($query);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Warning: mysql_real_escape_string(): No such file or directory in /this/test/script.php on line 5
Warning: mysql_real_escape_string(): A link to the server could not be established in /this/test/script.php on line 5

bool(false)
string(41) "SELECT * FROM actors WHERE last_name = ''"

Beispiel #3 Ein beispielhafter SQL-Injection-Angriff

<?php
// Wir haben $_POST['password'] nicht überprüft, es könnte
// jeder beliebiger Wert sein, den der Benutzer will!
$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";

// Datenbankabfrage zur Ueberpruefung der Logindaten
$query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($query);

// Das bedeutet, der an MySQL gesendete Query wuerde sein:
echo $query;
?>

Die Abfrage, die an MySQL übermittelt wird:

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''

Dies würde jedem erlauben, sich ohne valides Passwort einzuloggen.

Anmerkungen

Hinweis:

Sie müssen eine Verbindung zu MySQL geöffnet haben, bevor Sie mysql_real_escape_string() verwenden, ansonsten erhalten Sie einen Fehler vom Typ E_WARNING und der Rückgabewert wird zu false. Ist link_identifier nicht angegeben, wird die letzte MySQL-Verbindung verwendet.

Hinweis:

Ist magic_quotes_gpc aktiviert, wenden Sie zuerst stripslashes() auf die Daten an. Das Bearbeiten bereits in irgend einer Form maskierter Daten durch mysql_real_escape_string führt ansonsten dazu, dass bereits Maskiertes doppelt maskiert wird.

Hinweis:

Wenn die Funktion nicht verwendet wird, um die Daten zu maskieren, ist die Abfrage anfällig für SQL-Injection-Angriffe.

Hinweis: mysql_real_escape_string() maskiert weder % noch _. Diese Zeichen werden in MySQL als Platzhalter interpretiert, wenn sie mit LIKE, GRANT oder REVOKE kombiniert werden.

Siehe auch

  • mysql_set_charset() - Setzt den Verbindungszeichensatz
  • mysql_client_encoding() - Liefert den Namen des Zeichensatzes
  • addslashes() - Stellt bestimmten Zeichen eines Strings ein "\" voran
  • stripslashes() - Entfernt Maskierungszeichen aus einem String
  • Die magic_quotes_gpc-Direktive
  • Die magic_quotes_runtime-Direktive


Liefert eine Spalte aus einem MySQL-Ergebnis

  • « mysql_real_escape_string
  • mysql_select_db »
  • PHP Manual
  • MySQL Funktionen
  • Liefert eine Spalte aus einem MySQL-Ergebnis

mysql_result

(PHP 4, PHP 5)

mysql_result — Liefert eine Spalte aus einem MySQL-Ergebnis

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_data_seek() zusammen mit
mysqli_field_seek() und
mysqli_fetch_field()
  • PDOStatement::fetchColumn()

Beschreibung

mysql_result ( resource $result , int $row , mixed $field = 0 ) : string

Gibt den Inhalt einer Spalte aus einer MySQL-Ergebnismenge zurück.

Wenn auf Abfrageergebnisse mit vielen Datensätzen zugegriffen werden soll, sollten Sie Funktionen in Betracht ziehen, die auf ganze Datensätze zugreifen (siehe unten). Diese Funktionen liefern bei einem einzigen Aufruf den Inhalt mehrerer Spalten und sind aus diesem Grund SEHR viel schneller als mysql_result(). Beachten Sie auch, dass die Angabe eines numerischen Offsets für eine Spalte sehr viel schneller ist als die Angabe eines Spaltennamens oder tabellenname.spaltenname.

Parameter-Liste

Ergebnis

Das Ergebnis Ressource, das ausgewertet wird. Dieses Ergebnis kommt von einem Aufruf von mysql_query().

row

Die Zeilennummer des erhaltenen Ergebnisses. Zeilennummern beginnen mit 0.

field

Der Name oder der Offset der abzurufenden Spalte (Feld).

Dies kann der Offset der Spalte sein, der Name der Spalte oder ein Bezeichner in der Form Tabellenname.Spaltenname. Wurde ein Alias für den Spaltennamen verwendet ('select foo as bar from...'), verwenden Sie stattdessen den Alias. Ist der Wert nicht definiert, wird die erste Spalte zurückgegeben.

Rückgabewerte

Gibt bei Erfolg die Inhalte einer Spalte einer MySQL-Ergebnismenge zurück oder false bei Fehlern.

Beispiele

Beispiel #1 mysql_result()-Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Keine Verbindung möglich: ' . mysql_error());
}
if (!mysql_select_db('database_name')) {
    die('Konnte Datenbank nicht auswählen: ' . mysql_error());
}
$result = mysql_query('SELECT name FROM work.employee');
if (!$result) {
    die('Konnte Abfrage nicht ausführen:' . mysql_error());
}
echo mysql_result($result, 2); // gibt den Namen des dritten Angestellten aus

mysql_close($link);
?>

Anmerkungen

Hinweis:

Aufrufe von mysql_result() sollten nicht mit Aufrufen anderer Funktionen verschachtelt werden, die auch auf das Ergebnis zugreifen.

Siehe auch

  • mysql_fetch_row() - Liefert einen Datensatz als indiziertes Array
  • mysql_fetch_array() - Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
  • mysql_fetch_assoc() - Liefert einen Datensatz als assoziatives Array
  • mysql_fetch_object() - Liefert eine Ergebniszeile als Objekt


Wählt eine MySQL-Datenbank aus

  • « mysql_result
  • mysql_set_charset »
  • PHP Manual
  • MySQL Funktionen
  • Wählt eine MySQL-Datenbank aus

mysql_select_db

(PHP 4, PHP 5)

mysql_select_db — Wählt eine MySQL-Datenbank aus

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_select_db()
  • PDO::__construct() (Teil des DSN)

Beschreibung

mysql_select_db ( string $database_name , resource $link_identifier = NULL ) : bool

Setzt die aktive Datenbank auf dem Server, die mit der angegebenen Verbindung verknüpft ist. Jeder nachfolgende Aufruf von mysql_query() operiert auf dieser aktiven Datenbank.

Parameter-Liste

database_name

Der Name der auszuwählenden Datenbank.

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_select_db()-Beispiel

<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Verbindung nicht möglich : ' . mysql_error());
}

// Verwende Datenbank foo
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Kann foo nicht verwenden : ' . mysql_error());
}
?>

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_selectdb()

Siehe auch

  • mysql_connect() - Öffnet eine Verbindung zu einem MySQL-Server
  • mysql_pconnect() - Öffnet eine persistente Verbindung zum MySQL-Server
  • mysql_query() - Sendet eine Abfrage an MySQL


Setzt den Verbindungszeichensatz

  • « mysql_select_db
  • mysql_stat »
  • PHP Manual
  • MySQL Funktionen
  • Setzt den Verbindungszeichensatz

mysql_set_charset

(PHP 5 >= 5.2.3)

mysql_set_charset — Setzt den Verbindungszeichensatz

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_set_charset()
  • PDO: charset zur Verbindungszeichenkette hinzufügen, beispielsweisecharset=utf8

Beschreibung

mysql_set_charset ( string $charset , resource $link_identifier = NULL ) : bool

Setzt den Standardzeichensatz für die angegebene Verbindung.

Parameter-Liste

charset

Ein gültiger Zeichensatzname.

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

Diese Funktion benötigt MySQL 5.0.7 oder später.

Hinweis:

Dies ist die bevorzugte Methode zur Änderung des Zeichensatzes. Dafür mysql_query() (z.B. SET NAMES utf8) zu verwenden, wird nicht empfohlen. Siehe den Abschnitt MySQL-Zeichensatzkonzepte für nähere Informationen.

Siehe auch

  • Setzen des Zeichensatzes in MySQL
  • » Liste der von MySQL unterstützten Zeichensätze
  • mysql_client_encoding() - Liefert den Namen des Zeichensatzes


Zeigt den momentanen Serverstatus an

  • « mysql_set_charset
  • mysql_tablename »
  • PHP Manual
  • MySQL Funktionen
  • Zeigt den momentanen Serverstatus an

mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_stat — Zeigt den momentanen Serverstatus an

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_stat()
  • PDO::getAttribute(PDO::ATTR_SERVER_INFO)

Beschreibung

mysql_stat ( resource $link_identifier = NULL ) : string

mysql_stat() gibt den momentanen Server-Status zurück.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt eine Zeichenkette mit dem Status für uptime, threads, queries, open tables, flush tables und queries per second zurück. Für eine komplette Liste der anderen Status-Variablen müssen sie die SQL-Anweisung SHOW STATUS verwenden. Wenn die Verbindungskennung Verbindungskennung ungültig ist, wird null zurückgegeben.

Beispiele

Beispiel #1 mysql_stat()-Beispiel

<?php
$link   = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$status = explode('  ', mysql_stat($link));
print_r($status);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Uptime: 5380
    [1] => Threads: 2
    [2] => Questions: 1321299
    [3] => Slow queries: 0
    [4] => Opens: 26
    [5] => Flush tables: 1
    [6] => Open tables: 17
    [7] => Queries per second avg: 245.595
)

Beispiel #2 Alternatives mysql_stat()-Beispiel

<?php
$link   = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query('SHOW STATUS', $link);
while ($row = mysql_fetch_assoc($result)) {
    echo $row['Variable_name'] . ' = ' . $row['Value'] . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

back_log = 50
basedir = /usr/local/
bdb_cache_size = 8388600
bdb_log_buffer_size = 32768
bdb_home = /var/db/mysql/
bdb_max_lock = 10000
bdb_logdir =
bdb_shared_data = OFF
bdb_tmpdir = /var/tmp/
...

Siehe auch

  • mysql_get_server_info() - Liefert Informationen zum MySQL-Server
  • mysql_list_processes() - Zeigt die MySQL-Prozesse an


Liefert den Namen einer Tabelle

  • « mysql_stat
  • mysql_thread_id »
  • PHP Manual
  • MySQL Funktionen
  • Liefert den Namen einer Tabelle

mysql_tablename

(PHP 4, PHP 5)

mysql_tablename — Liefert den Namen einer Tabelle

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • SQL-Abfrage: SHOW TABLES

Beschreibung

mysql_tablename ( resource $result , int $i ) : string|false

Liest den Tabellennamen aus einem Ergebnis (result).

Diese Funktion ist veraltet. Es wird empfohlen, stattdessen eine SQL-Abfrage wie SHOW TABLES [FROM db_name] [LIKE 'pattern'] zu verwenden.

Parameter-Liste

result

Ein Ergebniszeiger vom Typ resource, der von mysql_list_tables() zurückgegeben wird.

i

Der Integer-Index (Zeilen-/Tabellennummer).

Rückgabewerte

Gibt bei Erfolg den Tabellennamen zurück. Im Fehlerfall wird false zurückgegeben.

Verwenden Sie die Funktion mysql_tablename(), um den Ergebniszeiger zu durchlaufen, oder verwenden Sie eine andere Ergebnisfunktion wie mysql_fetch_array().

Changelog

Version | Beschreibung
5.5.0 | Die Funktion mysql_tablename() ist veraltet und ruft einen Fehler der Stufe E_DEPRECATED hervor.

Beispiele

Beispiel #1 mysql_tablename()-Beispiel

<?php
mysql_connect("localhost", "mysql_user", "mysql_password");
$result = mysql_list_tables("mydb");
$num_rows = mysql_num_rows($result);
for ($i = 0; $i < $num_rows; $i++) {
    echo "Tabelle: ", mysql_tablename($result, $i), "\n";
}

mysql_free_result($result);
?>

Anmerkungen

Hinweis:

Die Funktion mysql_num_rows() kann verwendet werden, um die Anzahl der Tabellen im Ergebniszeiger zu bestimmen.

Siehe auch

  • mysql_list_tables() - Listet Tabellen einer MySQL-Datenbank auf
  • mysql_field_table() - Liefert den Namen der Tabelle, die das genannte Feld enthält
  • mysql_db_name() - Liefert den Namen einer Datenbank vom mysql_list_dbs-Aufruf


Zeigt die aktuelle Thread-ID an

  • « mysql_tablename
  • mysql_unbuffered_query »
  • PHP Manual
  • MySQL Funktionen
  • Zeigt die aktuelle Thread-ID an

mysql_thread_id

(PHP 4 >= 4.3.0, PHP 5)

mysql_thread_id — Zeigt die aktuelle Thread-ID an

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • mysqli_thread_id()

Beschreibung

mysql_thread_id ( resource $link_identifier = NULL ) : int|false

Gibt die aktuelle Thread-ID zurück. Ist die Verbindung abgerissen und Sie bauen diese mit mysql_ping() wieder auf, wechselt die Thread-ID. Das bedeutet, dass sie die Thread-ID nur abfragen, wenn sie sie benötigen.

Parameter-Liste

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Gibt bei Erfolg die Thread-ID zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysql_thread_id()-Beispiel

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$thread_id = mysql_thread_id($link);
if ($thread_id){
    printf("Die aktuelle Thread-ID ist %d\n", $thread_id);
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Die aktuelle Thread-ID ist 73

Siehe auch

  • mysql_ping() - Pingt eine Serververbindung an und verbindet erneut, wenn keine Verbindung besteht
  • mysql_list_processes() - Zeigt die MySQL-Prozesse an


Sendet eine SQL-Anfrage an MySQL, ohne Ergebniszeilen abzuholen und zu puffern

  • « mysql_thread_id
  • Mysqlnd »
  • PHP Manual
  • MySQL Funktionen
  • Sendet eine SQL-Anfrage an MySQL, ohne Ergebniszeilen abzuholen und zu puffern

mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query — Sendet eine SQL-Anfrage an MySQL, ohne Ergebniszeilen abzuholen und zu puffern

Warnung

Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wurde in PHP 7.0.0 entfernt. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO_MySQL. Weitere Informationen finden Sie im Ratgeber MySQL: Auswahl einer API und den zugehörigen FAQ. Alternativen zu dieser Funktion umfassen:

  • Siehe: Gepufferte und ungepufferte Queries

Beschreibung

mysql_unbuffered_query ( string $query , resource $link_identifier = NULL ) : resource

mysql_unbuffered_query() sendet die SQL-Abfrage query an MySQL, ohne dass die Datensätze des Ergebnisses automatisch geholt und gepuffert werden, wie es bei der Verwendung von mysql_query() der Fall ist. Dies spart eine erhebliche Menge an Speicher bei SQL-Abfragen ein, die große Ergebnismengen zurückgeben und Sie können unmittelbar mit dem Abfrageergebnis arbeiten, sobald der erste Datensatz gefunden wurde: Sie müssen nicht darauf warten, bis die gesamte SQL-Abfrage abgeschlossen ist. Um mysql_unbuffered_query() verwenden zu können während mehrere Datenbankverbindungen geöffnet sind, müssen Sie den optionalen Parameter link_identifier angeben, um zu identifizieren, welche Verbindung Sie verwenden möchten.

Parameter-Liste

query

Die auszuführende SQL-Abfrage.

Werte innerhalb der Abfrage sollten mit korrekt maskiert sein.

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Für SELECT-, SHOW-, DESCRIBE- oder EXPLAIN-Anweisungen gibt mysql_unbuffered_query() bei Erfolg eine Ressource zurück oder false bei einem Fehler.

Für alle anderen von SQL-Anweisungen wie INSERT, UPDATE, DELETE, DROP, etc, gibt mysql_unbuffered_query() bei Erfolg true zurück oder false bei Fehlern.

Anmerkungen

Hinweis:

Die Vorteile von mysql_unbuffered_query() haben ihren Preis: Auf ein Ergebnis von mysql_unbuffered_query() können die Funktionen mysql_num_rows() und mysql_data_seek() nicht angewendet werden. Ausserdem müssen Sie sicherstellen, dass Sie alle Datensätze des Ergebnisses einer ungepufferten SQL-Abfrage abgeholt haben. Erst dann können Sie eine neue SQL-Abfrage bei Verwendung derselben Verbindung link_identifier an MySQL absetzen.

Siehe auch

  • mysql_query() - Sendet eine Abfrage an MySQL


MySQL Native Driver

  • Einführung
  • Overview
  • Installation
  • Laufzeit-Konfiguration
  • Incompatibilities
  • Persistent Connections
  • Statistics
  • Notes
  • Memory management
  • MySQL Native Driver Plugin API
    • A comparison of mysqlnd plugins with MySQL Proxy
    • Obtaining the mysqlnd plugin API
    • MySQL Native Driver Plugin Architecture
    • The mysqlnd plugin API
    • Getting started building a mysqlnd plugin


Einführung

MySQL Native Driver is a replacement for the MySQL Client Library (libmysqlclient). MySQL Native Driver is part of the official PHP sources as of PHP 5.3.0.

The MySQL database extensions MySQL extension, mysqli and PDO MYSQL all communicate with the MySQL server. In the past, this was done by the extension using the services provided by the MySQL Client Library. The extensions were compiled against the MySQL Client Library in order to use its client-server protocol.

With MySQL Native Driver there is now an alternative, as the MySQL database extensions can be compiled to use MySQL Native Driver instead of the MySQL Client Library.

MySQL Native Driver is written in C as a PHP extension.


Overview

What it is not

Although MySQL Native Driver is written as a PHP extension, it is important to note that it does not provide a new API to the PHP programmer. The programmer APIs for MySQL database connectivity are provided by the MySQL extension, mysqli and PDO MYSQL. These extensions can now use the services of MySQL Native Driver to communicate with the MySQL Server. Therefore, you should not think of MySQL Native Driver as an API.

Why use it?

Using the MySQL Native Driver offers a number of advantages over using the MySQL Client Library.

The older MySQL Client Library was written by MySQL AB (now Oracle Corporation) and so was released under the MySQL license. This ultimately led to MySQL support being disabled by default in PHP. However, the MySQL Native Driver has been developed as part of the PHP project, and is therefore released under the PHP license. This removes licensing issues that have been problematic in the past.

Also, in the past, you needed to build the MySQL database extensions against a copy of the MySQL Client Library. This typically meant you needed to have MySQL installed on a machine where you were building the PHP source code. Also, when your PHP application was running, the MySQL database extensions would call down to the MySQL Client library file at run time, so the file needed to be installed on your system. With MySQL Native Driver that is no longer the case as it is included as part of the standard distribution. So you do not need MySQL installed in order to build PHP or run PHP database applications.

Because MySQL Native Driver is written as a PHP extension, it is tightly coupled to the workings of PHP. This leads to gains in efficiency, especially when it comes to memory usage, as the driver uses the PHP memory management system. It also supports the PHP memory limit. Using MySQL Native Driver leads to comparable or better performance than using MySQL Client Library, it always ensures the most efficient use of memory. One example of the memory efficiency is the fact that when using the MySQL Client Library, each row is stored in memory twice, whereas with the MySQL Native Driver each row is only stored once in memory.

Hinweis: Reporting memory usage

Because MySQL Native Driver uses the PHP memory management system, its memory usage can be tracked with memory_get_usage(). This is not possible with libmysqlclient because it uses the C function malloc() instead.

Special features

MySQL Native Driver also provides some special features not available when the MySQL database extensions use MySQL Client Library. These special features are listed below:

  • Improved persistent connections

  • The special function mysqli_fetch_all()

  • Performance statistics calls: mysqli_get_client_stats(), mysqli_get_connection_stats()

The performance statistics facility can prove to be very useful in identifying performance bottlenecks.

MySQL Native Driver also allows for persistent connections when used with the mysqli extension.

SSL Support

MySQL Native Driver supports SSL.

Compressed Protocol Support

MySQL Native Driver supports the compressed client server protocol. Extension ext/mysqli, if configured to use MySQL Native Driver, can also take advantage of this feature. Note that PDO_MYSQL does NOT support compression when used together with mysqlnd.

Named Pipes Support

Named pipes can be used to connect on Windows environments.


Installation

Installation on Unix

The MySQL database extensions must be configured to use the MySQL Client Library. In order to use the MySQL Native Driver, PHP needs to be built specifying that the MySQL database extensions are compiled with MySQL Native Driver support. This is done through configuration options prior to building the PHP source code.

For example, to build the MySQL extension, mysqli and PDO MYSQL using the MySQL Native Driver, the following command would be given:

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
[other options]

Installation on Windows

In the official PHP Windows distributions, MySQL Native Driver is enabled by default, so no additional configuration is required to use it. All MySQL database extensions will use MySQL Native Driver in this case.

SHA-256 Authentication Plugin support

The MySQL Native Driver requires the OpenSSL functionality of PHP to be loaded and enabled to connect to MySQL through accounts that use the MySQL SHA-256 Authentication Plugin. For example, PHP could be configured using:

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl
[other options]


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

MySQL Native Driver Configuration Options
Name | Standard | Veränderbar | Changelog
mysqlnd.collect_statistics | "1" | PHP_INI_SYSTEM |
mysqlnd.collect_memory_statistics | "0" | PHP_INI_SYSTEM |
mysqlnd.debug | "" | PHP_INI_SYSTEM |
mysqlnd.log_mask | 0 | PHP_INI_ALL |
mysqlnd.mempool_default_size | 16000 | PHP_INI_ALL |
mysqlnd.net_read_timeout | "86400" | PHP_INI_ALL | Before PHP 7.2.0 the default value was "31536000" and the changeability was PHP_INI_SYSTEM
mysqlnd.net_cmd_buffer_size | "4096" | PHP_INI_SYSTEM |
mysqlnd.net_read_buffer_size | "32768" | PHP_INI_SYSTEM |
mysqlnd.sha256_server_public_key | "" | PHP_INI_PERDIR |
mysqlnd.trace_alloc | "" | PHP_INI_SYSTEM |
mysqlnd.fetch_data_copy | 0 | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

mysqlnd.collect_statistics bool

Enables the collection of various client statistics which can be accessed through mysqli_get_client_stats(), mysqli_get_connection_stats(), and are shown in mysqlnd section of the output of the phpinfo() function as well.

This configuration setting enables all MySQL Native Driver statistics except those relating to memory management.

mysqlnd.collect_memory_statistics bool

Enable the collection of various memory statistics which can be accessed through mysqli_get_client_stats(), mysqli_get_connection_stats(), and are shown in mysqlnd section of the output of the phpinfo() function as well.

This configuration setting enables the memory management statistics within the overall set of MySQL Native Driver statistics.

mysqlnd.debug string

Records communication from all extensions using mysqlnd to the specified log file.

The format of the directive is mysqlnd.debug = "option1[,parameter_option1][:option2[,parameter_option2]]".

The options for the format string are as follows:

  • A[,file] - Appends trace output to specified file. Also ensures that data is written after each write. This is done by closing and reopening the trace file (this is slow). It helps ensure a complete log file should the application crash.

  • a[,file] - Appends trace output to the specified file.

  • d - Enables output from DBUG_<N> macros for the current state. May be followed by a list of keywords which selects output only for the DBUG macros with that keyword. An empty list of keywords implies output for all macros.

  • f[,functions] - Limits debugger actions to the specified list of functions. An empty list of functions implies that all functions are selected.

  • F - Marks each debugger output line with the name of the source file containing the macro causing the output.

  • i - Marks each debugger output line with the PID of the current process.

  • L - Marks each debugger output line with the name of the source file line number of the macro causing the output.

  • n - Marks each debugger output line with the current function nesting depth

  • o[,file] - Similar to a[,file] but overwrites old file, and does not append.

  • O[,file] - Similar to A[,file] but overwrites old file, and does not append.

  • t[,N] - Enables function control flow tracing. The maximum nesting depth is specified by N, and defaults to 200.

  • x - This option activates profiling.

  • m - Trace memory allocation and deallocation related calls.

Example:

d:t:x:O,/tmp/mysqlnd.trace

Hinweis:

This feature is only available with a debug build of PHP. Works on Microsoft Windows if using a debug build of PHP and PHP was built using Microsoft Visual C version 9 and above.

mysqlnd.log_mask int

Defines which queries will be logged. The default 0, which disables logging. Define using an integer, and not with PHP constants. For example, a value of 48 (16 + 32) will log slow queries which either use 'no good index' (SERVER_QUERY_NO_GOOD_INDEX_USED = 16) or no index at all (SERVER_QUERY_NO_INDEX_USED = 32). A value of 2043 (1 + 2 + 8 + ... + 1024) will log all slow query types.

The types are as follows: SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2,
SERVER_MORE_RESULTS_EXISTS=8, SERVER_QUERY_NO_GOOD_INDEX_USED=16, SERVER_QUERY_NO_INDEX_USED=32,
SERVER_STATUS_CURSOR_EXISTS=64, SERVER_STATUS_LAST_ROW_SENT=128, SERVER_STATUS_DB_DROPPED=256,
SERVER_STATUS_NO_BACKSLASH_ESCAPES=512, and SERVER_QUERY_WAS_SLOW=1024.

mysqlnd.mempool_default_size int

Default size of the mysqlnd memory pool, which is used by result sets.

mysqlnd.net_read_timeout int

mysqlnd and the MySQL Client Library, libmysqlclient use different networking APIs. mysqlnd uses PHP streams, whereas libmysqlclient uses its own wrapper around the operating level network calls. PHP, by default, sets a read timeout of 60s for streams. This is set via php.ini, default_socket_timeout. This default applies to all streams that set no other timeout value. mysqlnd does not set any other value and therefore connections of long running queries can be disconnected after default_socket_timeout seconds resulting in an error message 2006 - MySQL Server has gone away. The MySQL Client Library sets a default timeout of 24 * 3600 seconds (1 day) and waits for other timeouts to occur, such as TCP/IP timeouts. mysqlnd now uses the same very long timeout. The value is configurable through a new php.ini setting: mysqlnd.net_read_timeout. mysqlnd.net_read_timeout gets used by any extension (ext/mysql, ext/mysqli, PDO_MySQL) that uses mysqlnd. mysqlnd tells PHP Streams to use mysqlnd.net_read_timeout. Please note that there may be subtle differences between MYSQL_OPT_READ_TIMEOUT from the MySQL Client Library and PHP Streams, for example MYSQL_OPT_READ_TIMEOUT is documented to work only for TCP/IP connections and, prior to MySQL 5.1.2, only for Windows. PHP streams may not have this limitation. Please check the streams documentation, if in doubt.

mysqlnd.net_cmd_buffer_size int

mysqlnd allocates an internal command/network buffer of mysqlnd.net_cmd_buffer_size (in php.ini) bytes for every connection. If a MySQL Client Server protocol command, for example, COM_QUERY (normal query), does not fit into the buffer, mysqlnd will grow the buffer to the size required for sending the command. Whenever the buffer gets extended for one connection, command_buffer_too_small will be incremented by one.

If mysqlnd has to grow the buffer beyond its initial size of mysqlnd.net_cmd_buffer_size bytes for almost every connection, you should consider increasing the default size to avoid re-allocations.

The default buffer size is 4096 bytes, which is the smallest value possible.

The value can also be set using mysqli_options(link, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size).

mysqlnd.net_read_buffer_size int

Maximum read chunk size in bytes when reading the body of a MySQL command packet. The MySQL client server protocol encapsulates all its commands in packets. The packets consist of a small header and a body with the actual payload. The size of the body is encoded in the header. mysqlnd reads the body in chunks of MIN(header.size, mysqlnd.net_read_buffer_size) bytes. If a packet body is larger than mysqlnd.net_read_buffer_size bytes, mysqlnd has to call read() multiple times.

The value can also be set using mysqli_options(link, MYSQLI_OPT_NET_READ_BUFFER_SIZE, size).

mysqlnd.sha256_server_public_key string

SHA-256 Authentication Plugin related. File with the MySQL server public RSA key.

Clients can either omit setting a public RSA key, specify the key through this PHP configuration setting or set the key at runtime using mysqli_options(). If not public RSA key file is given by the client, then the key will be exchanged as part of the standard SHA-256 Authentication Plugin authentication procedure.

mysqlnd.trace_alloc string

mysqlnd.fetch_data_copy int

Enforce copying result sets from the internal result set buffers into PHP variables instead of using the default reference and copy-on-write logic. Please, see the memory management implementation notes for further details.

Copying result sets instead of having PHP variables reference them allows releasing the memory occupied for the PHP variables earlier. Depending on the user API code, the actual database quries and the size of their result sets this may reduce the memory footprint of mysqlnd.

Do not set if using PDO_MySQL. PDO_MySQL has not yet been updated to support the new fetch mode.


Incompatibilities

MySQL Native Driver is in most cases compatible with MySQL Client Library (libmysql). This section documents incompatibilities between these libraries.

  • Values of bit data type are returned as binary strings (e.g. "\0" or "\x1F") with libmysql and as decimal strings (e.g. "0" or "31") with mysqlnd. If you want the code to be compatible with both libraries then always return bit fields as numbers from MySQL with a query like this: SELECT bit + 0 FROM table.


Persistent Connections

Using Persistent Connections

If mysqli is used with mysqlnd, when a persistent connection is created it generates a COM_CHANGE_USER (mysql_change_user()) call on the server. This ensures that re-authentication of the connection takes place.

As there is some overhead associated with the COM_CHANGE_USER call, it is possible to switch this off at compile time. Reusing a persistent connection will then generate a COM_PING (mysql_ping) call to simply test the connection is reusable.

Generation of COM_CHANGE_USER can be switched off with the compile flag MYSQLI_NO_CHANGE_USER_ON_PCONNECT. For example:

shell# CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" ./configure --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --enable-debug && make clean && make -j6

Or alternatively:

shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT"
shell# configure --whatever-option
shell# make clean
shell# make

Note that only mysqli on mysqlnd uses COM_CHANGE_USER. Other extension-driver combinations use COM_PING on initial use of a persistent connection.


Statistics

Using Statistical Data

MySQL Native Driver contains support for gathering statistics on the communication between the client and the server. The statistics gathered are of two main types:

  • Client statistics

  • Connection statistics

If you are using the mysqli extension, these statistics can be obtained through two API calls:

  • mysqli_get_client_stats()

  • mysqli_get_connection_stats()

Hinweis:

Statistics are aggregated among all extensions that use MySQL Native Driver. For example, when compiling both ext/mysql and ext/mysqli against MySQL Native Driver, both function calls of ext/mysql and ext/mysqli will change the statistics. There is no way to find out how much a certain API call of any extension that has been compiled against MySQL Native Driver has impacted a certain statistic. You can configure the PDO MySQL Driver, ext/mysql and ext/mysqli to optionally use the MySQL Native Driver. When doing so, all three extensions will change the statistics.

Accessing Client Statistics

To access client statistics, you need to call mysqli_get_client_stats(). The function call does not require any parameters.

The function returns an associative array that contains the name of the statistic as the key and the statistical data as the value.

Client statistics can also be accessed by calling the phpinfo() function.

Accessing Connection Statistics

To access connection statistics call mysqli_get_connection_stats(). This takes the database connection handle as the parameter.

The function returns an associative array that contains the name of the statistic as the key and the statistical data as the value.

Buffered and Unbuffered Result Sets

Result sets can be buffered or unbuffered. Using default settings, ext/mysql and ext/mysqli work with buffered result sets for normal (non prepared statement) queries. Buffered result sets are cached on the client. After the query execution all results are fetched from the MySQL Server and stored in a cache on the client. The big advantage of buffered result sets is that they allow the server to free all resources allocated to a result set, once the results have been fetched by the client.

Unbuffered result sets on the other hand are kept much longer on the server. If you want to reduce memory consumption on the client, but increase load on the server, use unbuffered results. If you experience a high server load and the figures for unbuffered result sets are high, you should consider moving the load to the clients. Clients typically scale better than servers. Load does not only refer to memory buffers - the server also needs to keep other resources open, for example file handles and threads, before a result set can be freed.

Prepared Statements use unbuffered result sets by default. However, you can use mysqli_stmt_store_result() to enable buffered result sets.

Statistics returned by MySQL Native Driver

The following tables show a list of statistics returned by the mysqli_get_client_stats() and mysqli_get_connection_stats() functions.

Returned mysqlnd statistics: Network
Statistic | Scope | Description | Notes
bytes_sent | Connection | Number of bytes sent from PHP to the MySQL server | Can be used to check the efficiency of the compression protocol
bytes_received | Connection | Number of bytes received from MySQL server | Can be used to check the efficiency of the compression protocol
packets_sent | Connection | Number of MySQL Client Server protocol packets sent | Used for debugging Client Server protocol implementation
packets_received | Connection | Number of MySQL Client Server protocol packets received | Used for debugging Client Server protocol implementation
protocol_overhead_in | Connection | MySQL Client Server protocol overhead in bytes for incoming traffic. Currently only the Packet Header (4 bytes) is considered as overhead. protocol_overhead_in = packets_received * 4 | Used for debugging Client Server protocol implementation
protocol_overhead_out | Connection | MySQL Client Server protocol overhead in bytes for outgoing traffic. Currently only the Packet Header (4 bytes) is considered as overhead. protocol_overhead_out = packets_sent * 4 | Used for debugging Client Server protocol implementation
bytes_received_ok_packet | Connection | Total size of bytes of MySQL Client Server protocol OK packets received. OK packets can contain a status message. The length of the status message can vary and thus the size of an OK packet is not fixed. | Used for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_ok | Connection | Number of MySQL Client Server protocol OK packets received. | Used for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
bytes_received_eof_packet | Connection | Total size in bytes of MySQL Client Server protocol EOF packets received. EOF can vary in size depending on the server version. Also, EOF can transport an error message. | Used for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_eof | Connection | Number of MySQL Client Server protocol EOF packets. Like with other packet statistics the number of packets will be increased even if PHP does not receive the expected packet but, for example, an error message. | Used for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
bytes_received_rset_header_packet | Connection | Total size in bytes of MySQL Client Server protocol result set header packets. The size of the packets varies depending on the payload (LOAD LOCAL INFILE, INSERT, UPDATE, SELECT, error message). | Used for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_rset_header | Connection | Number of MySQL Client Server protocol result set header packets. | Used for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
bytes_received_rset_field_meta_packet | Connection | Total size in bytes of MySQL Client Server protocol result set meta data (field information) packets. Of course the size varies with the fields in the result set. The packet may also transport an error or an EOF packet in case of COM_LIST_FIELDS. | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_rset_field_meta | Connection | Number of MySQL Client Server protocol result set meta data (field information) packets. | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
bytes_received_rset_row_packet | Connection | Total size in bytes of MySQL Client Server protocol result set row data packets. The packet may also transport an error or an EOF packet. You can reverse engineer the number of error and EOF packets by subtracting rows_fetched_from_server_normal and rows_fetched_from_server_ps from bytes_received_rset_row_packet. | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_rset_row | Connection | Number of MySQL Client Server protocol result set row data packets and their total size in bytes. | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
bytes_received_prepare_response_packet | Connection | Total size in bytes of MySQL Client Server protocol OK for Prepared Statement Initialization packets (prepared statement init packets). The packet may also transport an error. The packet size depends on the MySQL version: 9 bytes with MySQL 4.1 and 12 bytes from MySQL 5.0 on. There is no safe way to know how many errors happened. You may be able to guess that an error has occurred if, for example, you always connect to MySQL 5.0 or newer and, bytes_received_prepare_response_packet != packets_received_prepare_response * 12. See also ps_prepared_never_executed, ps_prepared_once_executed. | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_prepare_response | Connection | Number of MySQL Client Server protocol OK for Prepared Statement Initialization packets (prepared statement init packets). | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
bytes_received_change_user_packet | Connection | Total size in bytes of MySQL Client Server protocol COM_CHANGE_USER packets. The packet may also transport an error or EOF. | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_change_user | Connection | Number of MySQL Client Server protocol COM_CHANGE_USER packets | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_sent_command | Connection | Number of MySQL Client Server protocol commands sent from PHP to MySQL. There is no way to know which specific commands and how many of them have been sent. At its best you can use it to check if PHP has sent any commands to MySQL to know if you can consider to disable MySQL support in your PHP binary. There is also no way to reverse engineer the number of errors that may have occurred while sending data to MySQL. The only error that is recorded is command_buffer_too_small (see below). | Only useful for debugging CS protocol implementation.
bytes_received_real_data_normal Connection Number of bytes of payload fetched by the PHP client from mysqlnd using the text protocol. This is the size of the actual data contained in result sets that do not originate from prepared statements and which have been fetched by the PHP client. Note that although a full result set may have been pulled from MySQL by mysqlnd, this statistic only counts actual data pulled from mysqlnd by the PHP client. An example of a code sequence that will increase the value is as follows:
$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->fetch_assoc();
$res->close();

Every fetch operation will increase the value.

The statistic will not be increased if the result set is only buffered on the client, but not fetched, such as in the following example:

$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->close();
bytes_received_real_data_ps | Connection | Number of bytes of the payload fetched by the PHP client from mysqlnd using the prepared statement protocol. | This is the size of the actual data contained in result sets that originate from prepared statements and which has been fetched by the PHP client. The value will not be increased if the result set is not subsequently read by the PHP client. Note that although a full result set may have been pulled from MySQL by mysqlnd, this statistic only counts actual data pulled from mysqlnd by the PHP client. See also bytes_received_real_data_normal.

Result Set

Returned mysqlnd statistics: Result Set
Statistic | Scope | Description | Notes
result_set_queries | Connection | Number of queries that have generated a result set. Examples of queries that generate a result set: SELECT, SHOW. The statistic will not be incremented if there is an error reading the result set header packet from the line. | You may use it as an indirect measure for the number of queries PHP has sent to MySQL, for example, to identify a client that causes a high database load.
non_result_set_queries | Connection | Number of queries that did not generate a result set. Examples of queries that do not generate a result set: INSERT, UPDATE, LOAD DATA. The statistic will not be incremented if there is an error reading the result set header packet from the line. | You may use it as an indirect measure for the number of queries PHP has sent to MySQL, for example, to identify a client that causes a high database load.
no_index_used | Connection | Number of queries that have generated a result set but did not use an index (see also mysqld start option –log-queries-not-using-indexes). If you want these queries to be reported you can use mysqli_report(MYSQLI_REPORT_INDEX) to make ext/mysqli throw an exception. If you prefer a warning instead of an exception use mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT).
bad_index_used | Connection | Number of queries that have generated a result set and did not use a good index (see also mysqld start option –log-slow-queries). | If you want these queries to be reported you can use mysqli_report(MYSQLI_REPORT_INDEX) to make ext/mysqli throw an exception. If you prefer a warning instead of an exception use mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT)
slow_queries | Connection | SQL statements that took more than long_query_time seconds to execute and required at least min_examined_row_limit rows to be examined. | Not reported through mysqli_report()
buffered_sets | Connection | Number of buffered result sets returned by normal queries. Normal means not prepared statement in the following notes. | Examples of API calls that will buffer result sets on the client: mysql_query(), mysqli_query(), mysqli_store_result(), mysqli_stmt_get_result(). Buffering result sets on the client ensures that server resources are freed as soon as possible and it makes result set scrolling easier. The downside is the additional memory consumption on the client for buffering data. Note that mysqlnd (unlike the MySQL Client Library) respects the PHP memory limit because it uses PHP internal memory management functions to allocate memory. This is also the reason why memory_get_usage() reports a higher memory consumption when using mysqlnd instead of the MySQL Client Library. memory_get_usage() does not measure the memory consumption of the MySQL Client Library at all because the MySQL Client Library does not use PHP internal memory management functions monitored by the function!
unbuffered_sets | Connection | Number of unbuffered result sets returned by normal (non prepared statement) queries. | Examples of API calls that will not buffer result sets on the client: mysqli_use_result()
ps_buffered_sets | Connection | Number of buffered result sets returned by prepared statements. By default prepared statements are unbuffered. | Examples of API calls that will buffer result sets on the client: mysqli_stmt_store_result
ps_unbuffered_sets | Connection | Number of unbuffered result sets returned by prepared statements. | By default prepared statements are unbuffered.
flushed_normal_sets Connection Number of result sets from normal (non prepared statement) queries with unread data which have been flushed silently for you. Flushing happens only with unbuffered result sets. Unbuffered result sets must be fetched completely before a new query can be run on the connection otherwise MySQL will throw an error. If the application does not fetch all rows from an unbuffered result set, mysqlnd does implicitly fetch the result set to clear the line. See also rows_skipped_normal, rows_skipped_ps. Some possible causes for an implicit flush:

  • Faulty client application

  • Client stopped reading after it found what it was looking for but has made MySQL calculate more records than needed

  • Client application has stopped unexpectedly

flushed_ps_sets Connection Number of result sets from prepared statements with unread data which have been flushed silently for you. Flushing happens only with unbuffered result sets. Unbuffered result sets must be fetched completely before a new query can be run on the connection otherwise MySQL will throw an error. If the application does not fetch all rows from an unbuffered result set, mysqlnd does implicitly fetch the result set to clear the line. See also rows_skipped_normal, rows_skipped_ps. Some possible causes for an implicit flush:

  • Faulty client application

  • Client stopped reading after it found what it was looking for but has made MySQL calculate more records than needed

  • Client application has stopped unexpectedly

ps_prepared_never_executed | Connection | Number of statements prepared but never executed. | Prepared statements occupy server resources. You should not prepare a statement if you do not plan to execute it.
ps_prepared_once_executed | Connection | Number of prepared statements executed only one. | One of the ideas behind prepared statements is that the same query gets executed over and over again (with different parameters) and some parsing and other preparation work can be saved, if statement execution is split up in separate prepare and execute stages. The idea is to prepare once and cache results, for example, the parse tree to be reused during multiple statement executions. If you execute a prepared statement only once the two stage processing can be inefficient compared to normal queries because all the caching means extra work and it takes (limited) server resources to hold the cached information. Consequently, prepared statements that are executed only once may cause performance hurts.
rows_fetched_from_server_normal, rows_fetched_from_server_ps | Connection | Total number of result set rows successfully fetched from MySQL regardless if the client application has consumed them or not. Some of the rows may not have been fetched by the client application but have been flushed implicitly. | See also packets_received_rset_row
rows_buffered_from_client_normal, rows_buffered_from_client_ps | Connection | Total number of successfully buffered rows originating from a "normal" query or a prepared statement. This is the number of rows that have been fetched from MySQL and buffered on client. Note that there are two distinct statistics on rows that have been buffered (MySQL to mysqlnd internal buffer) and buffered rows that have been fetched by the client application (mysqlnd internal buffer to client application). If the number of buffered rows is higher than the number of fetched buffered rows it can mean that the client application runs queries that cause larger result sets than needed resulting in rows not read by the client. | Examples of queries that will buffer results: mysqli_query(), mysqli_store_result()
rows_fetched_from_client_normal_buffered, rows_fetched_from_client_ps_buffered | Connection | Total number of rows fetched by the client from a buffered result set created by a normal query or a prepared statement.
rows_fetched_from_client_normal_unbuffered, rows_fetched_from_client_ps_unbuffered | Connection | Total number of rows fetched by the client from a unbuffered result set created by a "normal" query or a prepared statement.
rows_fetched_from_client_ps_cursor | Connection | Total number of rows fetch by the client from a cursor created by a prepared statement.
rows_skipped_normal, rows_skipped_ps | Connection | Reserved for future use (currently not supported)
copy_on_write_saved, copy_on_write_performed | Process | With mysqlnd, variables returned by the extensions point into mysqlnd internal network result buffers. If you do not change the variables, fetched data will be kept only once in memory. If you change the variables, mysqlnd has to perform a copy-on-write to protect the internal network result buffers from being changed. With the MySQL Client Library you always hold fetched data twice in memory. Once in the internal MySQL Client Library buffers and once in the variables returned by the extensions. In theory mysqlnd can save up to 40% memory. However, note that the memory saving cannot be measured using memory_get_usage().
explicit_free_result, implicit_free_result | Connection, Process (only during prepared statement cleanup) | Total number of freed result sets. | The free is always considered explicit but for result sets created by an init command, for example, mysqli_options(MYSQLI_INIT_COMMAND , ...)
proto_text_fetched_null, proto_text_fetched_bit, proto_text_fetched_tinyint proto_text_fetched_short, proto_text_fetched_int24, proto_text_fetched_int proto_text_fetched_bigint, proto_text_fetched_decimal, proto_text_fetched_float proto_text_fetched_double, proto_text_fetched_date, proto_text_fetched_year proto_text_fetched_time, proto_text_fetched_datetime, proto_text_fetched_timestamp proto_text_fetched_string, proto_text_fetched_blob, proto_text_fetched_enum proto_text_fetched_set, proto_text_fetched_geometry, proto_text_fetched_other Connection Total number of columns of a certain type fetched from a normal query (MySQL text protocol). Mapping from C API / MySQL meta data type to statistics name:

  • MYSQL_TYPE_NULL - proto_text_fetched_null

  • MYSQL_TYPE_BIT - proto_text_fetched_bit

  • MYSQL_TYPE_TINY - proto_text_fetched_tinyint

  • MYSQL_TYPE_SHORT - proto_text_fetched_short

  • MYSQL_TYPE_INT24 - proto_text_fetched_int24

  • MYSQL_TYPE_LONG - proto_text_fetched_int

  • MYSQL_TYPE_LONGLONG - proto_text_fetched_bigint

  • MYSQL_TYPE_DECIMAL, MYSQL_TYPE_NEWDECIMAL - proto_text_fetched_decimal

  • MYSQL_TYPE_FLOAT - proto_text_fetched_float

  • MYSQL_TYPE_DOUBLE - proto_text_fetched_double

  • MYSQL_TYPE_DATE, MYSQL_TYPE_NEWDATE - proto_text_fetched_date

  • MYSQL_TYPE_YEAR - proto_text_fetched_year

  • MYSQL_TYPE_TIME - proto_text_fetched_time

  • MYSQL_TYPE_DATETIME - proto_text_fetched_datetime

  • MYSQL_TYPE_TIMESTAMP - proto_text_fetched_timestamp

  • MYSQL_TYPE_STRING, MYSQL_TYPE_VARSTRING, MYSQL_TYPE_VARCHAR - proto_text_fetched_string

  • MYSQL_TYPE_TINY_BLOB, MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, MYSQL_TYPE_BLOB - proto_text_fetched_blob

  • MYSQL_TYPE_ENUM - proto_text_fetched_enum

  • MYSQL_TYPE_SET - proto_text_fetched_set

  • MYSQL_TYPE_GEOMETRY - proto_text_fetched_geometry

  • Any MYSQL_TYPE_* not listed before (there should be none) - proto_text_fetched_other

Note that the MYSQL_*-type constants may not be associated with the very same SQL column types in every version of MySQL.

proto_binary_fetched_null, proto_binary_fetched_bit, proto_binary_fetched_tinyint proto_binary_fetched_short, proto_binary_fetched_int24, proto_binary_fetched_int, proto_binary_fetched_bigint, proto_binary_fetched_decimal, proto_binary_fetched_float, proto_binary_fetched_double, proto_binary_fetched_date, proto_binary_fetched_year, proto_binary_fetched_time, proto_binary_fetched_datetime, proto_binary_fetched_timestamp, proto_binary_fetched_string, proto_binary_fetched_blob, proto_binary_fetched_enum, proto_binary_fetched_set, proto_binary_fetched_geometry, proto_binary_fetched_other | Connection | Total number of columns of a certain type fetched from a prepared statement (MySQL binary protocol). | For type mapping see proto_text_* described in the preceding text.
Returned mysqlnd statistics: Connection
Statistic | Scope | Description | Notes
connect_success, connect_failure | Connection | Total number of successful / failed connection attempt. | Reused connections and all other kinds of connections are included.
reconnect | Process | Total number of (real_)connect attempts made on an already opened connection handle. | The code sequence $link = new mysqli(...); $link->real_connect(...) will cause a reconnect. But $link = new mysqli(...); $link->connect(...) will not because $link->connect(...) will explicitly close the existing connection before a new connection is established.
pconnect_success | Connection | Total number of successful persistent connection attempts. | Note that connect_success holds the sum of successful persistent and non-persistent connection attempts. The number of successful non-persistent connection attempts is connect_success - pconnect_success.
active_connections | Connection | Total number of active persistent and non-persistent connections.
active_persistent_connections | Connection | Total number of active persistent connections. | The total number of active non-persistent connections is active_connections - active_persistent_connections.
explicit_close Connection Total number of explicitly closed connections (ext/mysqli only). Examples of code snippets that cause an explicit close :
$link = new mysqli(...); $link->close(...)
$link = new mysqli(...); $link->connect(...)
implicit_close Connection Total number of implicitly closed connections (ext/mysqli only). Examples of code snippets that cause an implicit close :

  • $link = new mysqli(...); $link->real_connect(...)

  • unset($link)

  • Persistent connection: pooled connection has been created with real_connect and there may be unknown options set - close implicitly to avoid returning a connection with unknown options

  • Persistent connection: ping/change_user fails and ext/mysqli closes the connection

  • end of script execution: close connections that have not been closed by the user

disconnect_close | Connection | Connection failures indicated by the C API call mysql_real_connect() during an attempt to establish a connection. | It is called disconnect_close because the connection handle passed to the C API call will be closed.
in_middle_of_command_close | Process | A connection has been closed in the middle of a command execution (outstanding result sets not fetched, after sending a query and before retrieving an answer, while fetching data, while transferring data with LOAD DATA). | Unless you use asynchronous queries this should only happen if your script stops unexpectedly and PHP shuts down the connections for you.
init_command_executed_count | Connection | Total number of init command executions, for example, mysqli_options(MYSQLI_INIT_COMMAND , ...). | The number of successful executions is init_command_executed_count - init_command_failed_count.
init_command_failed_count | Connection | Total number of failed init commands.
Returned mysqlnd statistics: COM_* Command
Statistic Scope Description Notes
com_quit, com_init_db, com_query, com_field_list, com_create_db, com_drop_db, com_refresh, com_shutdown, com_statistics, com_process_info, com_connect, com_process_kill, com_debug, com_ping, com_time, com_delayed_insert, com_change_user, com_binlog_dump, com_table_dump, com_connect_out, com_register_slave, com_stmt_prepare, com_stmt_execute, com_stmt_send_long_data, com_stmt_close, com_stmt_reset, com_stmt_set_option, com_stmt_fetch, com_daemon Connection Total number of attempts to send a certain COM_* command from PHP to MySQL.

The statistics are incremented after checking the line and immediately before sending the corresponding MySQL client server protocol packet. If mysqlnd fails to send the packet over the wire the statistics will not be decremented. In case of a failure mysqlnd emits a PHP warning Error while sending %s packet. PID=%d.

Usage examples:

  • Check if PHP sends certain commands to MySQL, for example, check if a client sends COM_PROCESS_KILL

  • Calculate the average number of prepared statement executions by comparing COM_EXECUTE with COM_PREPARE

  • Check if PHP has run any non-prepared SQL statements by checking if COM_QUERY is zero

  • Identify PHP scripts that run an excessive number of SQL statements by checking COM_QUERY and COM_EXECUTE

Miscellaneous

Returned mysqlnd statistics: Miscellaneous
Statistic | Scope | Description | Notes
explicit_stmt_close, implicit_stmt_close | Process | Total number of close prepared statements. | A close is always considered explicit but for a failed prepare.
mem_emalloc_count, mem_emalloc_ammount, mem_ecalloc_count, mem_ecalloc_ammount, mem_erealloc_count, mem_erealloc_ammount, mem_efree_count, mem_malloc_count, mem_malloc_ammount, mem_calloc_count, mem_calloc_ammount, mem_realloc_count, mem_realloc_ammount, mem_free_count | Process | Memory management calls. | Development only.
command_buffer_too_small Connection Number of network command buffer extensions while sending commands from PHP to MySQL.

mysqlnd allocates an internal command/network buffer of mysqlnd.net_cmd_buffer_size (php.ini) bytes for every connection. If a MySQL Client Server protocol command, for example, COM_QUERY (normal query), does not fit into the buffer, mysqlnd will grow the buffer to what is needed for sending the command. Whenever the buffer gets extended for one connection command_buffer_too_small will be incremented by one.

If mysqlnd has to grow the buffer beyond its initial size of mysqlnd.net_cmd_buffer_size (php.ini) bytes for almost every connection, you should consider to increase the default size to avoid re-allocations.

The default buffer size is 4096 bytes, which is the smallest value possible. The default can changed either through the php.ini setting mysqlnd.net_cmd_buffer_size or using mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size).

connection_reused


Notes

This section provides a collection of miscellaneous notes on MySQL Native Driver usage.

  • Using mysqlnd means using PHP streams for underlying connectivity. For mysqlnd, the PHP streams documentation (Streams) should be consulted on such details as timeout settings, not the documentation for the MySQL Client Library.


Memory management

Introduction

The MySQL Native Driver manages memory different than the MySQL Client Library. The libraries differ in the way memory is allocated and released, how memory is allocated in chunks while reading results from MySQL, which debug and development options exist, and how results read from MySQL are linked to PHP user variables.

The following notes are intended as an introduction and summary to users interested at understanding the MySQL Native Driver at the C code level.

Memory management functions used

All memory allocation and deallocation is done using the PHP memory management functions. Therefore, the memory consumption of mysqlnd can be tracked using PHP API calls, such as memory_get_usage(). Because memory is allocated and released using the PHP memory management, the changes may not immediately become visible at the operating system level. The PHP memory management acts as a proxy which may delay releasing memory towards the system. Due to this, comparing the memory usage of the MySQL Native Driver and the MySQL Client Library is difficult. The MySQL Client Library is using the operating system memory management calls directly, hence the effects can be observed immediately at the operating system level.

Any memory limit enforced by PHP also affects the MySQL Native Driver. This may cause out of memory errors when fetching large result sets that exceed the size of the remaining memory made available by PHP. Because the MySQL Client Library is not using PHP memory management functions, it does not comply to any PHP memory limit set. If using the MySQL Client Library, depending on the deployment model, the memory footprint of the PHP process may grow beyond the PHP memory limit. But also PHP scripts may be able to process larger result sets as parts of the memory allocated to hold the result sets are beyond the control of the PHP engine.

PHP memory management functions are invoked by the MySQL Native Driver through a lightweight wrapper. Among others, the wrapper makes debugging easier.

Handling of result sets

The various MySQL Server and the various client APIs differentiate between buffered and unbuffered result sets. Unbuffered result sets are transferred row-by-row from MySQL to the client as the client iterates over the results. Buffered results are fetched in their entirety by the client library before passing them on to the client.

The MySQL Native Driver is using PHP Streams for the network communication with the MySQL Server. Results sent by MySQL are fetched from the PHP Streams network buffers into the result buffer of mysqlnd. The result buffer is made of zvals. In a second step the results are made available to the PHP script. This final transfer from the result buffer into PHP variables impacts the memory consumption and is mostly noticeable when using buffered result sets.

By default the MySQL Native Driver tries to avoid holding buffered results twice in memory. Results are kept only once in the internal result buffers and their zvals. When results are fetched into PHP variables by the PHP script, the variables will reference the internal result buffers. Database query results are not copied and kept in memory only once. Should the user modify the contents of a variable holding the database results a copy-on-write must be performed to avoid changing the referenced internal result buffer. The contents of the buffer must not be modified because the user may decide to read the result set a second time. The copy-on-write mechanism is implemented using an additional reference management list and the use of standard zval reference counters. Copy-on-write must also be done if the user reads a result set into PHP variables and frees a result set before the variables are unset.

Generally speaking, this pattern works well for scripts that read a result set once and do not modify variables holding results. Its major drawback is the memory overhead caused by the additional reference management which comes primarily from the fact that user variables holding results cannot be entirely released until the mysqlnd reference management stops referencing them. The MySQL Native driver removes the reference to the user variables when the result set is freed or a copy-on-write is performed. An observer will see the total memory consumption grow until the result set is released. Use the statistics to check whether a script does release result sets explicitly or the driver is does implicit releases and thus memory is used for a time longer than necessary. Statistics also help to see how many copy-on-write operations happened.

A PHP script reading many small rows of a buffered result set using a code snippet equal or equivalent to while ($row = $res->fetch_assoc()) { ... } may optimize memory consumption by requesting copies instead of references. Albeit requesting copies means keeping results twice in memory, it allows PHP to free the copy contained in $row as the result set is being iterated and prior to releasing the result set itself. On a loaded server optimizing peak memory usage may help improving the overall system performance although for an individual script the copy approach may be slower due to additional allocations and memory copy operations.

The copy mode can be enforced by setting mysqlnd.fetch_data_copy=1.

Monitoring and debugging

There are multiple ways of tracking the memory usage of the MySQL Native Driver. If the goal is to get a quick high level overview or to verify the memory efficiency of PHP scripts, then check the statistics collected by the library. The statistics allow you, for example, to catch SQL statements which generate more results than are processed by a PHP script.

The debug trace log can be configured to record memory management calls. This helps to see when memory is allocated or free'd. However, the size of the requested memory chunks may not be listed.

Some, recent versions of the MySQL Native Driver feature the emulation of random out of memory situations. This feature is meant to be used by the C developers of the library or mysqlnd plugin authors only. Please, search the source code for corresponding PHP configuration settings and further details. The feature is considered private and may be modified at any time without prior notice.


MySQL Native Driver Plugin API

Inhaltsverzeichnis

  • A comparison of mysqlnd plugins with MySQL Proxy
  • Obtaining the mysqlnd plugin API
  • MySQL Native Driver Plugin Architecture
  • The mysqlnd plugin API
  • Getting started building a mysqlnd plugin

The MySQL Native Driver Plugin API is a feature of MySQL Native Driver, or mysqlnd. Mysqlnd plugins operate in the layer between PHP applications and the MySQL server. This is comparable to MySQL Proxy. MySQL Proxy operates on a layer between any MySQL client application, for example, a PHP application and, the MySQL server. Mysqlnd plugins can undertake typical MySQL Proxy tasks such as load balancing, monitoring and performance optimizations. Due to the different architecture and location, mysqlnd plugins do not have some of MySQL Proxy's disadvantages. For example, with plugins, there is no single point of failure, no dedicated proxy server to deploy, and no new programming language to learn (Lua).

A mysqlnd plugin can be thought of as an extension to mysqlnd. Plugins can intercept the majority of mysqlnd functions. The mysqlnd functions are called by the PHP MySQL extensions such as ext/mysql, ext/mysqli, and PDO_MYSQL. As a result, it is possible for a mysqlnd plugin to intercept all calls made to these extensions from the client application.

Internal mysqlnd function calls can also be intercepted, or replaced. There are no restrictions on manipulating mysqlnd internal function tables. It is possible to set things up so that when certain mysqlnd functions are called by the extensions that use mysqlnd, the call is directed to the appropriate function in the mysqlnd plugin. The ability to manipulate mysqlnd internal function tables in this way allows maximum flexibility for plugins.

Mysqlnd plugins are in fact PHP Extensions, written in C, that use the mysqlnd plugin API (which is built into MySQL Native Driver, mysqlnd). Plugins can be made 100% transparent to PHP applications. No application changes are needed because plugins operate on a different layer. The mysqlnd plugin can be thought of as operating in a layer below mysqlnd.

The following list represents some possible applications of mysqlnd plugins.

  • Load Balancing

    • Read/Write Splitting. An example of this is the PECL/mysqlnd_ms (Master Slave) extension. This extension splits read/write queries for a replication setup.

    • Failover

    • Round-Robin, least loaded

  • Monitoring

    • Query Logging

    • Query Analysis

    • Query Auditing. An example of this is the PECL/mysqlnd_sip (SQL Injection Protection) extension. This extension inspects queries and executes only those that are allowed according to a ruleset.

  • Performance

    • Caching. An example of this is the PECL/mysqlnd_qc (Query Cache) extension.

    • Throttling

    • Sharding. An example of this is the PECL/mysqlnd_mc (Multi Connect) extension. This extension will attempt to split a SELECT statement into n-parts, using SELECT ... LIMIT part_1, SELECT LIMIT part_n. It sends the queries to distinct MySQL servers and merges the result at the client.

MySQL Native Driver Plugins Available

There are a number of mysqlnd plugins already available. These include:

  • PECL/mysqlnd_mc - Multi Connect plugin.

  • PECL/mysqlnd_ms - Master Slave plugin.

  • PECL/mysqlnd_qc - Query Cache plugin.

  • PECL/mysqlnd_pscache - Prepared Statement Handle Cache plugin.

  • PECL/mysqlnd_sip - SQL Injection Protection plugin.

  • PECL/mysqlnd_uh - User Handler plugin.


A comparison of mysqlnd plugins with MySQL Proxy

Mysqlnd plugins and MySQL Proxy are different technologies using different approaches. Both are valid tools for solving a variety of common tasks such as load balancing, monitoring, and performance enhancements. An important difference is that MySQL Proxy works with all MySQL clients, whereas mysqlnd plugins are specific to PHP applications.

As a PHP Extension, a mysqlnd plugin gets installed on the PHP application server, along with the rest of PHP. MySQL Proxy can either be run on the PHP application server or can be installed on a dedicated machine to handle multiple PHP application servers.

Deploying MySQL Proxy on the application server has two advantages:

  1. No single point of failure

  2. Easy to scale out (horizontal scale out, scale by client)

MySQL Proxy (and mysqlnd plugins) can solve problems easily which otherwise would have required changes to existing applications.

However, MySQL Proxy does have some disadvantages:

  • MySQL Proxy is a new component and technology to master and deploy.

  • MySQL Proxy requires knowledge of the Lua scripting language.

MySQL Proxy can be customized with C and Lua programming. Lua is the preferred scripting language of MySQL Proxy. For most PHP experts Lua is a new language to learn. A mysqlnd plugin can be written in C. It is also possible to write plugins in PHP using » PECL/mysqlnd_uh.

MySQL Proxy runs as a daemon - a background process. MySQL Proxy can recall earlier decisions, as all state can be retained. However, a mysqlnd plugin is bound to the request-based lifecycle of PHP. MySQL Proxy can also share one-time computed results among multiple application servers. A mysqlnd plugin would need to store data in a persistent medium to be able to do this. Another daemon would need to be used for this purpose, such as Memcache. This gives MySQL Proxy an advantage in this case.

MySQL Proxy works on top of the wire protocol. With MySQL Proxy you have to parse and reverse engineer the MySQL Client Server Protocol. Actions are limited to those that can be achieved by manipulating the communication protocol. If the wire protocol changes (which happens very rarely) MySQL Proxy scripts would need to be changed as well.

Mysqlnd plugins work on top of the C API, which mirrors the libmysqlclient client. This C API is basically a wrapper around the MySQL Client Server protocol, or wire protocol, as it is sometimes called. You can intercept all C API calls. PHP makes use of the C API, therefore you can hook all PHP calls, without the need to program at the level of the wire protocol.

Mysqlnd implements the wire protocol. Plugins can therefore parse, reverse engineer, manipulate and even replace the communication protocol. However, this is usually not required.

As plugins allow you to create implementations that use two levels (C API and wire protocol), they have greater flexibility than MySQL Proxy. If a mysqlnd plugin is implemented using the C API, any subsequent changes to the wire protocol do not require changes to the plugin itself.


Obtaining the mysqlnd plugin API

The mysqlnd plugin API is simply part of the MySQL Native Driver PHP extension, ext/mysqlnd. Development started on the mysqlnd plugin API in December 2009. It is developed as part of the PHP source repository, and as such is available to the public either via Git, or through source snapshot downloads.

Plugin developers can determine the mysqlnd version through accessing MYSQLND_VERSION, which is a string of the format mysqlnd 5.0.7-dev - 091210 - $Revision: 300535, or through MYSQLND_VERSION_ID, which is an integer such as 50007. Developers can calculate the version number as follows:

MYSQLND_VERSION_ID calculation table
Version (part) | Example
Major*10000 | 5*10000 = 50000
Minor*100 | 0*100 = 0
Patch | 7 = 7
MYSQLND_VERSION_ID | 50007

During development, developers should refer to the mysqlnd version number for compatibility and version tests, as several iterations of mysqlnd could occur during the lifetime of a PHP development branch with a single PHP version number.


MySQL Native Driver Plugin Architecture

This section provides an overview of the mysqlnd plugin architecture.

MySQL Native Driver Overview

Before developing mysqlnd plugins, it is useful to know a little of how mysqlnd itself is organized. Mysqlnd consists of the following modules:

The mysqlnd organization chart, per module
Modules Statistics | mysqlnd_statistics.c
Connection | mysqlnd.c
Resultset | mysqlnd_result.c
Resultset Metadata | mysqlnd_result_meta.c
Statement | mysqlnd_ps.c
Network | mysqlnd_net.c
Wire protocol | mysqlnd_wireprotocol.c

C Object Oriented Paradigm

At the code level, mysqlnd uses a C pattern for implementing object orientation.

In C you use a struct to represent an object. Members of the struct represent object properties. Struct members pointing to functions represent methods.

Unlike with other languages such as C++ or Java, there are no fixed rules on inheritance in the C object oriented paradigm. However, there are some conventions that need to be followed that will be discussed later.

The PHP Life Cycle

When considering the PHP life cycle there are two basic cycles:

  • PHP engine startup and shutdown cycle

  • Request cycle

When the PHP engine starts up it will call the module initialization (MINIT) function of each registered extension. This allows each module to setup variables and allocate resources that will exist for the lifetime of the PHP engine process. When the PHP engine shuts down it will call the module shutdown (MSHUTDOWN) function of each extension.

During the lifetime of the PHP engine it will receive a number of requests. Each request constitutes another life cycle. On each request the PHP engine will call the request initialization function of each extension. The extension can perform any variable setup and resource allocation required for request processing. As the request cycle ends the engine calls the request shutdown (RSHUTDOWN) function of each extension so the extension can perform any cleanup required.

How a plugin works

A mysqlnd plugin works by intercepting calls made to mysqlnd by extensions that use mysqlnd. This is achieved by obtaining the mysqlnd function table, backing it up, and replacing it by a custom function table, which calls the functions of the plugin as required.

The following code shows how the mysqlnd function table is replaced:

/* a place to store original function table */
struct st_mysqlnd_conn_methods org_methods;

void minit_register_hooks(TSRMLS_D) {
  /* active function table */
  struct st_mysqlnd_conn_methods * current_methods
    = mysqlnd_conn_get_methods();

  /* backup original function table */
  memcpy(&org_methods, current_methods,
    sizeof(struct st_mysqlnd_conn_methods);

  /* install new methods */
  current_methods->query = MYSQLND_METHOD(my_conn_class, query);
}

Connection function table manipulations must be done during Module Initialization (MINIT). The function table is a global shared resource. In an multi-threaded environment, with a TSRM build, the manipulation of a global shared resource during the request processing will almost certainly result in conflicts.

Hinweis:

Do not use any fixed-size logic when manipulating the mysqlnd function table: new methods may be added at the end of the function table. The function table may change at any time in the future.

Calling parent methods

If the original function table entries are backed up, it is still possible to call the original function table entries - the parent methods.

In some cases, such as for Connection::stmt_init(), it is vital to call the parent method prior to any other activity in the derived method.

MYSQLND_METHOD(my_conn_class, query)(MYSQLND *conn,
  const char *query, unsigned int query_len TSRMLS_DC) {

  php_printf("my_conn_class::query(query = %s)\n", query);

  query = "SELECT 'query rewritten' FROM DUAL";
  query_len = strlen(query);

  return org_methods.query(conn, query, query_len); /* return with call to parent */
}

Extending properties

A mysqlnd object is represented by a C struct. It is not possible to add a member to a C struct at run time. Users of mysqlnd objects cannot simply add properties to the objects.

Arbitrary data (properties) can be added to a mysqlnd objects using an appropriate function of the mysqlnd_plugin_get_plugin_<object>_data() family. When allocating an object mysqlnd reserves space at the end of the object to hold a void * pointer to arbitrary data. mysqlnd reserves space for one void * pointer per plugin.

The following table shows how to calculate the position of the pointer for a specific plugin:

Pointer calculations for mysqlnd
Memory address | Contents
0 | Beginning of the mysqlnd object C struct
n | End of the mysqlnd object C struct
n + (m x sizeof(void*)) | void* to object data of the m-th plugin

If you plan to subclass any of the mysqlnd object constructors, which is allowed, you must keep this in mind!

The following code shows extending properties:

/* any data we want to associate */
typedef struct my_conn_properties {
  unsigned long query_counter;
} MY_CONN_PROPERTIES;

/* plugin id */
unsigned int my_plugin_id;

void minit_register_hooks(TSRMLS_D) {
  /* obtain unique plugin ID */
  my_plugin_id = mysqlnd_plugin_register();
  /* snip - see Extending Connection: methods */
}

static MY_CONN_PROPERTIES** get_conn_properties(const MYSQLND *conn TSRMLS_DC) {
  MY_CONN_PROPERTIES** props;
  props = (MY_CONN_PROPERTIES**)mysqlnd_plugin_get_plugin_connection_data(
    conn, my_plugin_id);
  if (!props || !(*props)) {
    *props = mnd_pecalloc(1, sizeof(MY_CONN_PROPERTIES), conn->persistent);
    (*props)->query_counter = 0;
  }
  return props;
}

The plugin developer is responsible for the management of plugin data memory.

Use of the mysqlnd memory allocator is recommended for plugin data. These functions are named using the convention: mnd_*loc(). The mysqlnd allocator has some useful features, such as the ability to use a debug allocator in a non-debug build.

When and how to subclass
 | When to subclass? | Each instance has its own private function table? | How to subclass?
Connection (MYSQLND) | MINIT | No | mysqlnd_conn_get_methods()
Resultset (MYSQLND_RES) | MINIT or later | Yes | mysqlnd_result_get_methods() or object method function table manipulation
Resultset Meta (MYSQLND_RES_METADATA) | MINIT | No | mysqlnd_result_metadata_get_methods()
Statement (MYSQLND_STMT) | MINIT | No | mysqlnd_stmt_get_methods()
Network (MYSQLND_NET) | MINIT or later | Yes | mysqlnd_net_get_methods() or object method function table manipulation
Wire protocol (MYSQLND_PROTOCOL) | MINIT or later | Yes | mysqlnd_protocol_get_methods() or object method function table manipulation

You must not manipulate function tables at any time later than MINIT if it is not allowed according to the above table.

Some classes contain a pointer to the method function table. All instances of such a class will share the same function table. To avoid chaos, in particular in threaded environments, such function tables must only be manipulated during MINIT.

Other classes use copies of a globally shared function table. The class function table copy is created together with the object. Each object uses its own function table. This gives you two options: you can manipulate the default function table of an object at MINIT, and you can additionally refine methods of an object without impacting other instances of the same class.

The advantage of the shared function table approach is performance. There is no need to copy a function table for each and every object.

Constructor status
Type | Allocation, construction, reset | Can be modified? | Caller
Connection (MYSQLND) | mysqlnd_init() | No | mysqlnd_connect()
Resultset(MYSQLND_RES)

Allocation:

  • Connection::result_init()

Reset and re-initialized during:

  • Result::use_result()

  • Result::store_result

Yes, but call parent!

  • Connection::list_fields()

  • Statement::get_result()

  • Statement::prepare() (Metadata only)

  • Statement::resultMetaData()

Resultset Meta (MYSQLND_RES_METADATA) | Connection::result_meta_init() | Yes, but call parent! | Result::read_result_metadata()
Statement (MYSQLND_STMT) | Connection::stmt_init() | Yes, but call parent! | Connection::stmt_init()
Network (MYSQLND_NET) | mysqlnd_net_init() | No | Connection::init()
Wire protocol (MYSQLND_PROTOCOL) | mysqlnd_protocol_init() | No | Connection::init()

It is strongly recommended that you do not entirely replace a constructor. The constructors perform memory allocations. The memory allocations are vital for the mysqlnd plugin API and the object logic of mysqlnd. If you do not care about warnings and insist on hooking the constructors, you should at least call the parent constructor before doing anything in your constructor.

Regardless of all warnings, it can be useful to subclass constructors. Constructors are the perfect place for modifying the function tables of objects with non-shared object tables, such as Resultset, Network, Wire Protocol.

Destruction status
Type | Derived method must call parent? | Destructor
Connection | yes, after method execution | free_contents(), end_psession()
Resultset | yes, after method execution | free_result()
Resultset Meta | yes, after method execution | free()
Statement | yes, after method execution | dtor(), free_stmt_content()
Network | yes, after method execution | free()
Wire protocol | yes, after method execution | free()

The destructors are the appropriate place to free properties, mysqlnd_plugin_get_plugin_<object>_data().

The listed destructors may not be equivalent to the actual mysqlnd method freeing the object itself. However, they are the best possible place for you to hook in and free your plugin data. As with constructors you may replace the methods entirely but this is not recommended. If multiple methods are listed in the above table you will need to hook all of the listed methods and free your plugin data in whichever method is called first by mysqlnd.

The recommended method for plugins is to simply hook the methods, free your memory and call the parent implementation immediately following this.


The mysqlnd plugin API

The following is a list of functions provided in the mysqlnd plugin API:

  • mysqlnd_plugin_register()

  • mysqlnd_plugin_count()

  • mysqlnd_plugin_get_plugin_connection_data()

  • mysqlnd_plugin_get_plugin_result_data()

  • mysqlnd_plugin_get_plugin_stmt_data()

  • mysqlnd_plugin_get_plugin_net_data()

  • mysqlnd_plugin_get_plugin_protocol_data()

  • mysqlnd_conn_get_methods()

  • mysqlnd_result_get_methods()

  • mysqlnd_result_meta_get_methods()

  • mysqlnd_stmt_get_methods()

  • mysqlnd_net_get_methods()

  • mysqlnd_protocol_get_methods()

There is no formal definition of what a plugin is and how a plugin mechanism works.

Components often found in plugins mechanisms are:

  • A plugin manager

  • A plugin API

  • Application services (or modules)

  • Application service APIs (or module APIs)

The mysqlnd plugin concept employs these features, and additionally enjoys an open architecture.

No Restrictions

A plugin has full access to the inner workings of mysqlnd. There are no security limits or restrictions. Everything can be overwritten to implement friendly or hostile algorithms. It is recommended you only deploy plugins from a trusted source.

As discussed previously, plugins can use pointers freely. These pointers are not restricted in any way, and can point into another plugin's data. Simple offset arithmetic can be used to read another plugin's data.

It is recommended that you write cooperative plugins, and that you always call the parent method. The plugins should always cooperate with mysqlnd itself.

Issues: an example of chaining and cooperation
Extension | mysqlnd.query() pointer | call stack if calling parent
ext/mysqlnd | mysqlnd.query() | mysqlnd.query
ext/mysqlnd_cache mysqlnd_cache.query()

  1. mysqlnd_cache.query()

  2. mysqlnd.query

ext/mysqlnd_monitor mysqlnd_monitor.query()

  1. mysqlnd_monitor.query()

  2. mysqlnd_cache.query()

  3. mysqlnd.query

In this scenario, a cache (ext/mysqlnd_cache) and a monitor (ext/mysqlnd_monitor) plugin are loaded. Both subclass Connection::query(). Plugin registration happens at MINIT using the logic shown previously. PHP calls extensions in alphabetical order by default. Plugins are not aware of each other and do not set extension dependencies.

By default the plugins call the parent implementation of the query method in their derived version of the method.

PHP Extension Recap

This is a recap of what happens when using an example plugin, ext/mysqlnd_plugin, which exposes the mysqlnd C plugin API to PHP:

  • Any PHP MySQL application tries to establish a connection to 192.168.2.29

  • The PHP application will either use ext/mysql, ext/mysqli or PDO_MYSQL. All three PHP MySQL extensions use mysqlnd to establish the connection to 192.168.2.29.

  • Mysqlnd calls its connect method, which has been subclassed by ext/mysqlnd_plugin.

  • ext/mysqlnd_plugin calls the userspace hook proxy::connect() registered by the user.

  • The userspace hook changes the connection host IP from 192.168.2.29 to 127.0.0.1 and returns the connection established by parent::connect().

  • ext/mysqlnd_plugin performs the equivalent of parent::connect(127.0.0.1) by calling the original mysqlnd method for establishing a connection.

  • ext/mysqlnd establishes a connection and returns to ext/mysqlnd_plugin. ext/mysqlnd_plugin returns as well.

  • Whatever PHP MySQL extension had been used by the application, it receives a connection to 127.0.0.1. The PHP MySQL extension itself returns to the PHP application. The circle is closed.


Getting started building a mysqlnd plugin

It is important to remember that a mysqlnd plugin is itself a PHP extension.

The following code shows the basic structure of the MINIT function that will be used in the typical mysqlnd plugin:

/* my_php_mysqlnd_plugin.c */

 static PHP_MINIT_FUNCTION(mysqlnd_plugin) {
  /* globals, ini entries, resources, classes */

  /* register mysqlnd plugin */
  mysqlnd_plugin_id = mysqlnd_plugin_register();

  conn_m = mysqlnd_get_conn_methods();
  memcpy(org_conn_m, conn_m,
    sizeof(struct st_mysqlnd_conn_methods));

  conn_m->query = MYSQLND_METHOD(mysqlnd_plugin_conn, query);
  conn_m->connect = MYSQLND_METHOD(mysqlnd_plugin_conn, connect);
}

/* my_mysqlnd_plugin.c */

 enum_func_status MYSQLND_METHOD(mysqlnd_plugin_conn, query)(/* ... */) {
  /* ... */
}
enum_func_status MYSQLND_METHOD(mysqlnd_plugin_conn, connect)(/* ... */) {
  /* ... */
}

Task analysis: from C to userspace

 class proxy extends mysqlnd_plugin_connection {
  public function connect($host, ...) { .. }
}
mysqlnd_plugin_set_conn_proxy(new proxy());

Process:

  1. PHP: user registers plugin callback

  2. PHP: user calls any PHP MySQL API to connect to MySQL

  3. C: ext/*mysql* calls mysqlnd method

  4. C: mysqlnd ends up in ext/mysqlnd_plugin

  5. C: ext/mysqlnd_plugin

    1. Calls userspace callback

    2. Or original mysqlnd method, if userspace callback not set

You need to carry out the following:

  1. Write a class "mysqlnd_plugin_connection" in C

  2. Accept and register proxy object through "mysqlnd_plugin_set_conn_proxy()"

  3. Call userspace proxy methods from C (optimization - zend_interfaces.h)

Userspace object methods can either be called using call_user_function() or you can operate at a level closer to the Zend Engine and use zend_call_method().

Optimization: calling methods from C using zend_call_method

The following code snippet shows the prototype for the zend_call_method function, taken from zend_interfaces.h.

 ZEND_API zval* zend_call_method(
  zval **object_pp, zend_class_entry *obj_ce,
  zend_function **fn_proxy, char *function_name,
  int function_name_len, zval **retval_ptr_ptr,
  int param_count, zval* arg1, zval* arg2 TSRMLS_DC
);

Zend API supports only two arguments. You may need more, for example:

 enum_func_status (*func_mysqlnd_conn__connect)(
  MYSQLND *conn, const char *host,
  const char * user, const char * passwd,
  unsigned int passwd_len, const char * db,
  unsigned int db_len, unsigned int port,
  const char * socket, unsigned int mysql_flags TSRMLS_DC
);

To get around this problem you will need to make a copy of zend_call_method() and add a facility for additional parameters. You can do this by creating a set of MY_ZEND_CALL_METHOD_WRAPPER macros.

Calling PHP userspace

This code snippet shows the optimized method for calling a userspace function from C:

/* my_mysqlnd_plugin.c */

MYSQLND_METHOD(my_conn_class,connect)(
  MYSQLND *conn, const char *host /* ... */ TSRMLS_DC) {
  enum_func_status ret = FAIL;
  zval * global_user_conn_proxy = fetch_userspace_proxy();
  if (global_user_conn_proxy) {
    /* call userspace proxy */
    ret = MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, host, /*...*/);
  } else {
    /* or original mysqlnd method = do nothing, be transparent */
    ret = org_methods.connect(conn, host, user, passwd,
          passwd_len, db, db_len, port,
          socket, mysql_flags TSRMLS_CC);
  }
  return ret;
}

Calling userspace: simple arguments

/* my_mysqlnd_plugin.c */

 MYSQLND_METHOD(my_conn_class,connect)(
  /* ... */, const char *host, /* ...*/) {
  /* ... */
  if (global_user_conn_proxy) {
    /* ... */
    zval* zv_host;
    MAKE_STD_ZVAL(zv_host);
    ZVAL_STRING(zv_host, host, 1);
    MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, zv_retval, zv_host /*, ...*/);
    zval_ptr_dtor(&zv_host);
    /* ... */
  }
  /* ... */
}

Calling userspace: structs as arguments

/* my_mysqlnd_plugin.c */

MYSQLND_METHOD(my_conn_class, connect)(
  MYSQLND *conn, /* ...*/) {
  /* ... */
  if (global_user_conn_proxy) {
    /* ... */
    zval* zv_conn;
    ZEND_REGISTER_RESOURCE(zv_conn, (void *)conn, le_mysqlnd_plugin_conn);
    MY_ZEND_CALL_METHOD_WRAPPER(global_user_conn_proxy, zv_retval, zv_conn, zv_host /*, ...*/);
    zval_ptr_dtor(&zv_conn);
    /* ... */
  }
  /* ... */
}

The first argument of many mysqlnd methods is a C "object". For example, the first argument of the connect() method is a pointer to MYSQLND. The struct MYSQLND represents a mysqlnd connection object.

The mysqlnd connection object pointer can be compared to a standard I/O file handle. Like a standard I/O file handle a mysqlnd connection object shall be linked to the userspace using the PHP resource variable type.

From C to userspace and back

 class proxy extends mysqlnd_plugin_connection {
  public function connect($conn, $host, ...) {
    /* "pre" hook */
    printf("Connecting to host = '%s'\n", $host);
    debug_print_backtrace();
    return parent::connect($conn);
  }

  public function query($conn, $query) {
    /* "post" hook */
    $ret = parent::query($conn, $query);
    printf("Query = '%s'\n", $query);
    return $ret;
  }
}
mysqlnd_plugin_set_conn_proxy(new proxy());

PHP users must be able to call the parent implementation of an overwritten method.

As a result of subclassing it is possible to refine only selected methods and you can choose to have "pre" or "post" hooks.

Buildin class: mysqlnd_plugin_connection::connect()

/*  my_mysqlnd_plugin_classes.c */

 PHP_METHOD("mysqlnd_plugin_connection", connect) {
  /* ... simplified! ... */
  zval* mysqlnd_rsrc;
  MYSQLND* conn;
  char* host; int host_len;
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs",
    &mysqlnd_rsrc, &host, &host_len) == FAILURE) {
    RETURN_NULL();
  }
  ZEND_FETCH_RESOURCE(conn, MYSQLND* conn, &mysqlnd_rsrc, -1,
    "Mysqlnd Connection", le_mysqlnd_plugin_conn);
  if (PASS == org_methods.connect(conn, host, /* simplified! */ TSRMLS_CC))
    RETVAL_TRUE;
  else
    RETVAL_FALSE;
}


Mysqlnd replication and load balancing plugin

  • Einführung
  • Quickstart and Examples
    • Setup
    • Running statements
    • Connection state
    • SQL Hints
    • Local transactions
    • XA/Distributed Transactions
    • Service level and consistency
    • Global transaction IDs
    • Cache integration
    • Failover
    • Partitioning and Sharding
    • MySQL Fabric
  • Concepts
    • Architecture
    • Connection pooling and switching
    • Local transaction handling
    • Error handling
    • Transient errors
    • Failover
    • Load balancing
    • Read-write splitting
    • Filter
    • Service level and consistency
    • Global transaction IDs
    • Cache integration
    • Supported clusters
    • XA/Distributed transactions
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Plugin configuration file (>=1.1.x)
  • Vordefinierte Konstanten
  • Mysqlnd_ms Funktionen
    • mysqlnd_ms_dump_servers — Returns a list of currently configured servers
    • mysqlnd_ms_fabric_select_global — Switch to global sharding server for a given table
    • mysqlnd_ms_fabric_select_shard — Switch to shard
    • mysqlnd_ms_get_last_gtid — Returns the latest global transaction ID
    • mysqlnd_ms_get_last_used_connection — Returns an array which describes the last used connection
    • mysqlnd_ms_get_stats — Returns query distribution and connection statistics
    • mysqlnd_ms_match_wild — Finds whether a table name matches a wildcard pattern or not
    • mysqlnd_ms_query_is_select — Find whether to send the query to the master, the slave or the last used MySQL server
    • mysqlnd_ms_set_qos — Sets the quality of service needed from the cluster
    • mysqlnd_ms_set_user_pick_server — Sets a callback for user-defined read/write splitting
    • mysqlnd_ms_xa_begin — Starts a distributed/XA transaction among MySQL servers
    • mysqlnd_ms_xa_commit — Commits a distributed/XA transaction among MySQL servers
    • mysqlnd_ms_xa_gc — Garbage collects unfinished XA transactions after severe errors
    • mysqlnd_ms_xa_rollback — Rolls back a distributed/XA transaction among MySQL servers
  • Change History
    • PECL/mysqlnd_ms 1.6 series
    • PECL/mysqlnd_ms 1.5 series
    • PECL/mysqlnd_ms 1.4 series
    • PECL/mysqlnd_ms 1.3 series
    • PECL/mysqlnd_ms 1.2 series
    • PECL/mysqlnd_ms 1.1 series
    • PECL/mysqlnd_ms 1.0 series


Einführung

The mysqlnd replication and load balancing plugin (mysqlnd_ms) adds easy to use MySQL replication support to all PHP MySQL extensions that use mysqlnd.

As of version PHP 5.3.3 the MySQL native driver for PHP (mysqlnd) features an internal plugin C API. C plugins, such as the replication and load balancing plugin, can extend the functionality of mysqlnd.

The MySQL native driver for PHP is a C library that ships together with PHP. It serves as a drop-in replacement for the MySQL Client Library (libmysqlclient). Using mysqlnd has several advantages: no extra downloads are required because it's bundled with PHP, it's under the PHP license, there is lower memory consumption in certain cases, and it contains new functionality such as asynchronous queries.

Mysqlnd plugins like mysqlnd_ms operate, for the most part, transparently from a user perspective. The replication and load balancing plugin supports all PHP applications, and all MySQL PHP extensions. It does not change existing APIs. Therefore, it can easily be used with existing PHP applications.

Key Features

The key features of PECL/mysqlnd_ms are as follows.

  • Transparent and therefore easy to use.

    • Supports all of the PHP MySQL extensions.

    • SSL support.

    • A consistent API.

    • Little to no application changes required, dependent on the required usage scenario.

    • Lazy connections: connections to master and slave servers are not opened before a SQL statement is executed.

    • Optional: automatic use of master after the first write in a web request, to lower the possible impact of replication lag.

  • Can be used with any MySQL clustering solution.

    • MySQL Replication: Read-write splitting is done by the plugin. Primary focus of the plugin.

    • MySQL Cluster: Read-write splitting can be disabled. Configuration of multiple masters possible

    • Third-party solutions: the plugin is optimized for MySQL Replication but can be used with any other kind of MySQL clustering solution.

  • Featured read-write split strategies

    • Automatic detection of SELECT.

    • Supports SQL hints to overrule automatism.

    • User-defined.

    • Can be disabled for, for example, when using synchronous clusters such as MySQL Cluster.

  • Featured load balancing strategies

    • Round Robin: choose a different slave in round-robin fashion for every slave request.

    • Random: choose a random slave for every slave request.

    • Random once (sticky): choose a random slave once to run all slave requests for the duration of a web request.

    • User-defined. The application can register callbacks with mysqlnd_ms.

    • PHP 5.4.0 or newer: transaction aware when using API calls only to control transactions.

    • Weighted load balancing: servers can be assigned different priorities, for example, to direct more requests to a powerful machine than to another less powerful machine. Or, to prefer nearby machines to reduce latency.

  • Global transaction ID

    • Client-side emulation. Makes manual master server failover and slave promotion easier with asynchronous clusters, such as MySQL Replication.

    • Support for built-in global transaction identifier feature of MySQL 5.6.5 or newer.

    • Supports using transaction ids to identify up-to-date asynchronous slaves for reading when session consistency is required. Please, note the restrictions mentioned in the manual.

    • Throttling: optionally, the plugin can wait for a slave to become "synchronous" before continuing.

  • Service and consistency levels

    • Applications can request eventual, session and strong consistency service levels for connections. Appropriate cluster nodes will be searched automatically.

    • Eventual consistent MySQL Replication slave accesses can be replaced with fast local cache accesses transparently to reduce server load.

  • Partitioning and sharding

    • Servers of a replication cluster can be organized into groups. SQL hints can be used to manually direct queries to a specific group. Grouping can be used to partition (shard) the data, or to cure the issue of hotspots with updates.

    • MySQL Replication filters are supported through the table filter.

  • MySQL Fabric

    • Experimental support for MySQL Fabric is included.

Limitations

The built-in read-write-split mechanism is very basic. Every query which starts with SELECT is considered a read request to be sent to a MySQL slave server. All other queries (such as SHOW statements) are considered as write requests that are sent to the MySQL master server. The build-in behavior can be overruled using SQL hints, or a user-defined callback function.

The read-write splitter is not aware of multi-statements. Multi-statements are considered as one statement. The decision of where to run the statement will be based on the beginning of the statement string. For example, if using mysqli_multi_query() to execute the multi-statement SELECT id FROM test ; INSERT INTO test(id) VALUES (1), the statement will be redirected to a slave server because it begins with SELECT. The INSERT statement, which is also part of the multi-statement, will not be redirected to a master server.

Hinweis:

Applications must be aware of the consequences of connection switches that are performed for load balancing purposes. Please check the documentation on connection pooling and switching, transaction handling, failover load balancing und read-write splitting.

On the name

The shortcut mysqlnd_ms stands for mysqlnd master slave plugin. The name was chosen for a quick-and-dirty proof-of-concept. In the beginning the developers did not expect to continue using the code base.


Quickstart and Examples

Inhaltsverzeichnis

  • Setup
  • Running statements
  • Connection state
  • SQL Hints
  • Local transactions
  • XA/Distributed Transactions
  • Service level and consistency
  • Global transaction IDs
  • Cache integration
  • Failover
  • Partitioning and Sharding
  • MySQL Fabric

The mysqlnd replication load balancing plugin is easy to use. This quickstart will demo typical use-cases, and provide practical advice on getting started.

It is strongly recommended to read the reference sections in addition to the quickstart. The quickstart tries to avoid discussing theoretical concepts and limitations. Instead, it will link to the reference sections. It is safe to begin with the quickstart. However, before using the plugin in mission critical environments we urge you to read additionally the background information from the reference sections.

The focus is on using PECL mysqlnd_ms for work with an asynchronous MySQL cluster, namely MySQL replication. Generally speaking an asynchronous cluster is more difficult to use than a synchronous one. Thus, users of, for example, MySQL Cluster will find more information than needed.


Setup

The plugin is implemented as a PHP extension. See also the installation instructions to install the » PECL/mysqlnd_ms extension.

Compile or configure the PHP MySQL extension (API) (mysqli, PDO_MYSQL, mysql) that you plan to use with support for the mysqlnd library. PECL/mysqlnd_ms is a plugin for the mysqlnd library. To use the plugin with any of the PHP MySQL extensions, the extension has to use the mysqlnd library.

Then, load the extension into PHP and activate the plugin in the PHP configuration file using the PHP configuration directive named mysqlnd_ms.enable.

Beispiel #1 Enabling the plugin (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini

The plugin uses its own configuration file. Use the PHP configuration directive mysqlnd_ms.config_file to set the full file path to the plugin-specific configuration file. This file must be readable by PHP (e.g., the web server user). Please note, the configuration directive mysqlnd_ms.config_file superseeds mysqlnd_ms.ini_file since 1.4.0. It is a common pitfall to use the old, no longer available configuration directive.

Create a plugin-specific configuration file. Save the file to the path set by the PHP configuration directive mysqlnd_ms.config_file.

The plugins configuration file is JSON based. It is divided into one or more sections. Each section has a name, for example, myapp. Every section makes its own set of configuration settings.

A section must, at a minimum, list the MySQL replication master server, and set a list of slaves. The plugin supports using only one master server per section. Multi-master MySQL replication setups are not yet fully supported. Use the configuration setting master to set the hostname, and the port or socket of the MySQL master server. MySQL slave servers are configured using the slave keyword.

Beispiel #2 Minimal plugin-specific configuration file (mysqlnd_ms_plugin.ini)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": [

        ]
    }
}

Configuring a MySQL slave server list is required, although it may contain an empty list. It is recommended to always configure at least one slave server.

Server lists can use anonymous or non-anonymous syntax. Non-anonymous lists include alias names for the servers, such as master_0 for the master in the above example. The quickstart uses the more verbose non-anonymous syntax.

Beispiel #3 Recommended minimal plugin-specific config (mysqlnd_ms_plugin.ini)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

If there are at least two servers in total, the plugin can start to load balance and switch connections. Switching connections is not always transparent and can cause issues in certain cases. The reference sections about connection pooling and switching, transaction handling, fail over load balancing and read-write splitting all provide more details. And potential pitfalls are described later in this guide.

It is the responsibility of the application to handle potential issues caused by connection switches, by configuring a master with at least one slave server, which allows switching to work therefore related problems can be found.

The MySQL master and MySQL slave servers, which you configure, do not need to be part of MySQL replication setup. For testing purpose you can use single MySQL server and make it known to the plugin as a master and slave server as shown below. This could help you to detect many potential issues with connection switches. However, such a setup will not be prone to the issues caused by replication lag.

Beispiel #4 Using one server as a master and as a slave (testing only!)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        }
    }
}

The plugin attempts to notify you of invalid configurations. Since 1.5.0 it will throw a warning during PHP startup if the configuration file cannot be read, is empty or parsing the JSON failed. Depending on your PHP settings those errors may appear in some log files only. Further validation is done when a connection is to be established and the configuration file is searched for valid sections. Setting mysqlnd_ms.force_config_usage may help debugging a faulty setup. Please, see also configuration file debugging notes.


Running statements

The plugin can be used with any PHP MySQL extension (mysqli, mysql, and PDO_MYSQL) that is compiled to use the mysqlnd library. PECL/mysqlnd_ms plugs into the mysqlnd library. It does not change the API or behavior of those extensions.

Whenever a connection to MySQL is being opened, the plugin compares the host parameter value of the connect call, with the section names from the plugin specific configuration file. If, for example, the plugin specific configuration file has a section myapp then the section should be referenced by opening a MySQL connection to the host myapp

Beispiel #1 Plugin specific configuration file (mysqlnd_ms_plugin.ini)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Beispiel #2 Opening a load balanced connection

<?php
/* Load balanced following "myapp" section rules from the plugins config file */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");
?>

The connection examples above will be load balanced. The plugin will send read-only statements to the MySQL slave server with the IP 192.168.2.27 and will listen on port 3306 for the MySQL client connection. All other statements will be directed to the MySQL master server running on the host localhost. If on Unix like operating systems, the master on localhost will be accepting MySQL client connections on the Unix domain socket /tmp/mysql.sock, while TCP/IP is the default port on Windows. The plugin will use the user name username and the password password to connect to any of the MySQL servers listed in the section myapp of the plugins configuration file. Upon connect, the plugin will select database as the current schemata.

The username, password and schema name are taken from the connect API calls and used for all servers. In other words: you must use the same username and password for every MySQL server listed in a plugin configuration file section. The is not a general limitation. As of PECL/mysqlnd_ms 1.1.0, it is possible to set the username and password for any server in the plugins configuration file, to be used instead of the credentials passed to the API call.

The plugin does not change the API for running statements. Read-write splitting works out of the box. The following example assumes that there is no significant replication lag between the master and the slave.

Beispiel #3 Executing statements

<?php
/* Load balanced following "myapp" section rules from the plugins config file */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno()) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Statements will be run on the master */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
if (!$mysqli->query("CREATE TABLE test(id INT)")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
if (!$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* read-only: statement will be run on a slave */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
    $row = $res->fetch_assoc();
    $res->close();
    printf("Slave returns id = '%s'\n", $row['id']);
}
$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Slave returns id = '1'


Connection state

The plugin changes the semantics of a PHP MySQL connection handle. A new connection handle represents a connection pool, instead of a single MySQL client-server network connection. The connection pool consists of a master connection, and optionally any number of slave connections.

Every connection from the connection pool has its own state. For example, SQL user variables, temporary tables and transactions are part of the state. For a complete list of items that belong to the state of a connection, see the connection pooling and switching concepts documentation. If the plugin decides to switch connections for load balancing, the application could be given a connection which has a different state. Applications must be made aware of this.

Beispiel #1 Plugin config with one slave and one master

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Beispiel #2 Pitfall: connection state and SQL user variables

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connection 2, run on slave because SELECT */
if (!($res = $mysqli->query("SELECT @myrole AS _role"))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
    $row = $res->fetch_assoc();
    $res->close();
    printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

@myrole = ''

The example opens a load balanced connection and executes two statements. The first statement SET @myrole='master' does not begin with the string SELECT. Therefore the plugin does not recognize it as a read-only query which shall be run on a slave. The plugin runs the statement on the connection to the master. The statement sets a SQL user variable which is bound to the master connection. The state of the master connection has been changed.

The next statement is SELECT @myrole AS _role. The plugin does recognize it as a read-only query and sends it to the slave. The statement is run on a connection to the slave. This second connection does not have any SQL user variables bound to it. It has a different state than the first connection to the master. The requested SQL user variable is not set. The example script prints @myrole = ''.

It is the responsibility of the application developer to take care of the connection state. The plugin does not monitor all connection state changing activities. Monitoring all possible cases would be a very CPU intensive task, if it could be done at all.

The pitfalls can easily be worked around using SQL hints.


SQL Hints

SQL hints can force a query to choose a specific server from the connection pool. It gives the plugin a hint to use a designated server, which can solve issues caused by connection switches and connection state.

SQL hints are standard compliant SQL comments. Because SQL comments are supposed to be ignored by SQL processing systems, they do not interfere with other programs such as the MySQL Server, the MySQL Proxy, or a firewall.

Three SQL hints are supported by the plugin: The MYSQLND_MS_MASTER_SWITCH hint makes the plugin run a statement on the master, MYSQLND_MS_SLAVE_SWITCH enforces the use of the slave, and MYSQLND_MS_LAST_USED_SWITCH will run a statement on the same server that was used for the previous statement.

The plugin scans the beginning of a statement for the existence of an SQL hint. SQL hints are only recognized if they appear at the beginning of the statement.

Beispiel #1 Plugin config with one slave and one master

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Beispiel #2 SQL hints to prevent connection switches

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno()) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connection 1, run on master because of SQL hint */
if (!($res = $mysqli->query(sprintf("/*%s*/SELECT @myrole AS _role", MYSQLND_MS_LAST_USED_SWITCH)))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
    $row = $res->fetch_assoc();
    $res->close();
    printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

@myrole = 'master'

In the above example, using MYSQLND_MS_LAST_USED_SWITCH prevents session switching from the master to a slave when running the SELECT statement.

SQL hints can also be used to run SELECT statements on the MySQL master server. This may be desired if the MySQL slave servers are typically behind the master, but you need current data from the cluster.

In version 1.2.0 the concept of a service level has been introduced to address cases when current data is required. Using a service level requires less attention and removes the need of using SQL hints for this use case. Please, find more information below in the service level and consistency section.

Beispiel #3 Fighting replication lag

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Force use of master, master has always fresh and current data */
if (!$mysqli->query(sprintf("/*%s*/SELECT critical_data FROM important_table", MYSQLND_MS_MASTER_SWITCH))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
?>

A use case may include the creation of tables on a slave. If an SQL hint is not given, then the plugin will send CREATE and INSERT statements to the master. Use the SQL hint MYSQLND_MS_SLAVE_SWITCH if you want to run any such statement on a slave, for example, to build temporary reporting tables.

Beispiel #4 Table creation on a slave

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Force use of slave */
if (!$mysqli->query(sprintf("/*%s*/CREATE TABLE slave_reporting(id INT)", MYSQLND_MS_SLAVE_SWITCH))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
/* Continue using this particular slave connection */
if (!$mysqli->query(sprintf("/*%s*/INSERT INTO slave_reporting(id) VALUES (1), (2), (3)", MYSQLND_MS_LAST_USED_SWITCH))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
/* Don't use MYSQLND_MS_SLAVE_SWITCH which would allow switching to another slave! */
if ($res = $mysqli->query(sprintf("/*%s*/SELECT COUNT(*) AS _num FROM slave_reporting", MYSQLND_MS_LAST_USED_SWITCH))) {
    $row = $res->fetch_assoc();
    $res->close();
    printf("There are %d rows in the table 'slave_reporting'", $row['_num']);
} else {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
$mysqli->close();
?>

The SQL hint MYSQLND_MS_LAST_USED forbids switching a connection, and forces use of the previously used connection.


Local transactions

The current version of the plugin is not transaction safe by default, because it is not aware of running transactions in all cases. SQL transactions are units of work to be run on a single server. The plugin does not always know when the unit of work starts and when it ends. Therefore, the plugin may decide to switch connections in the middle of a transaction.

No kind of MySQL load balancer can detect transaction boundaries without any kind of hint from the application.

You can either use SQL hints to work around this limitation. Alternatively, you can activate transaction API call monitoring. In the latter case you must use API calls only to control transactions, see below.

Beispiel #1 Plugin config with one slave and one master

[myapp]
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Beispiel #2 Using SQL hints for transactions

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Not a SELECT, will use master */
if (!$mysqli->query("START TRANSACTION")) {
    /* Please use better error handling in your code */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Prevent connection switch! */
if (!$mysqli->query(sprintf("/*%s*/INSERT INTO test(id) VALUES (1)", MYSQLND_MS_LAST_USED_SWITCH))) {
    /* Please do proper ROLLBACK in your code, don't just die */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if ($res = $mysqli->query(sprintf("/*%s*/SELECT COUNT(*) AS _num FROM test", MYSQLND_MS_LAST_USED_SWITCH))) {
    $row = $res->fetch_assoc();
    $res->close();
    if ($row['_num'] > 1000) {
        if (!$mysqli->query(sprintf("/*%s*/INSERT INTO events(task) VALUES ('cleanup')", MYSQLND_MS_LAST_USED_SWITCH))) {
            die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
        }
    }
} else {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->query(sprintf("/*%s*/UPDATE log SET last_update = NOW()", MYSQLND_MS_LAST_USED_SWITCH))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->query(sprintf("/*%s*/COMMIT", MYSQLND_MS_LAST_USED_SWITCH))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

$mysqli->close();
?>

Starting with PHP 5.4.0, the mysqlnd library allows the plugin to monitor the status of the autocommit mode, if the mode is set by API calls instead of using SQL statements such as SET AUTOCOMMIT=0. This makes it possible for the plugin to become transaction aware. In this case, you do not need to use SQL hints.

If using PHP 5.4.0 or newer, API calls that enable autocommit mode, and when setting the plugin configuration option trx_stickiness=master, the plugin can automatically disable load balancing and connection switches for SQL transactions. In this configuration, the plugin stops load balancing if autocommit is disabled and directs all statements to the master. This prevents connection switches in the middle of a transaction. Once autocommit is re-enabled, the plugin starts to load balance statements again.

API based transaction boundary detection has been improved with PHP 5.5.0 and PECL/mysqlnd_ms 1.5.0 to cover not only calls to mysqli_autocommit() but also mysqli_begin(), mysqli_commit() and mysqli_rollback().

Beispiel #3 Transaction aware load balancing: trx_stickiness setting

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "trx_stickiness": "master"
    }
}

Beispiel #4 Transaction aware

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Disable autocommit, plugin will run all statements on the master */
$mysqli->autocommit(false);

if (!$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    /* Please do proper ROLLBACK in your code, don't just die */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if ($res = $mysqli->query("SELECT COUNT(*) AS _num FROM test")) {
    $row = $res->fetch_assoc();
    $res->close();
    if ($row['_num'] > 1000) {
        if (!$mysqli->query("INSERT INTO events(task) VALUES ('cleanup')")) {
            die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
        }
    }
} else {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->query("UPDATE log SET last_update = NOW()")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->commit()) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin assumes that the transaction has ended and starts load balancing again */
$mysqli->autocommit(true);
$mysqli->close();
?>

Hinweis: Version requirement

The plugin configuration option trx_stickiness=master requires PHP 5.4.0 or newer.

Please note the restrictions outlined in the transaction handling concepts section.


XA/Distributed Transactions

Hinweis: Version requirement

XA related functions have been introduced in PECL mysqlnd_ms version 1.6.0-alpha.

Hinweis: Early adaptors wanted

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments, although early lab tests indicate reasonable quality.

Please, contact the development team if you are interested in this feature. We are looking for real life feedback to complement the feature.

XA transactions are a standardized method for executing transactions across multiple resources. Those resources can be databases or other transactional systems. The MySQL server supports XA SQL statements which allows users to carry out a distributed SQL transaction that spawns multiple database servers or any kind as long as they support the SQL statements too. In such a scenario it is in the responsibility of the user to coordinate the participating servers.

PECL/mysqlnd_ms can act as a transaction coordinator for a global (distributed, XA) transaction carried out on MySQL servers only. As a transaction coordinator, the plugin tracks all servers involved in a global transaction and transparently issues appropriate SQL statements on the participants. The global transactions are controlled with mysqlnd_ms_xa_begin(), mysqlnd_ms_xa_commit() and mysqlnd_ms_xa_rollback(). SQL details are mostly hidden from the application as is the need to track and coordinate participants.

Beispiel #1 General pattern for XA transactions

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* start a global transaction */
$gtrid_id = "12345";
if (!mysqlnd_ms_xa_begin($mysqli, $gtrid_id)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* run queries as usual: XA BEGIN will be injected upon running a query */
if (!$mysqli->query("INSERT INTO orders(order_id, item) VALUES (1, 'christmas tree, 1.8m')")) {
    /* Either INSERT failed or the injected XA BEGIN failed */
    if ('XA' == substr($mysqli->sqlstate, 0, 2)) {
        printf("Global transaction/XA related failure, [%d] %s\n", $mysqli->errno, $mysqli->error);
    } else {
        printf("INSERT failed, [%d] %s\n", $mysqli->errno, $mysqli->error);
    }
    /* rollback global transaction */
    mysqlnd_ms_xa_rollback($mysqli, $xid);
    die("Stopping.");
}

/* continue carrying out queries on other servers, e.g. other shards */

/* commit the global transaction */
if (!mysqlnd_ms_xa_commit($mysqli, $xa_id)) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
?>

Unlike with local transactions, which are carried out on a single server, XA transactions have an identifier (xid) associated with them. The XA transaction identifier is composed of a global transaction identifier (gtrid), a branch qualifier (bqual) a format identifier (formatID). Only the global transaction identifier can and must be given when calling any of the plugins XA functions.

Once a global transaction has been started, the plugin begins tracking servers until the global transaction ends. When a server is picked for query execution, the plugin injects the SQL statement XA BEGIN prior to executing the actual SQL statement on the server. XA BEGIN makes the server participate in the global transaction. If the injected SQL statement fails, the plugin will report the issue in reply to the query execution function that was used. In the above example, $mysqli->query("INSERT INTO orders(order_id, item) VALUES (1, 'christmas tree, 1.8m')") would indicate such an error. You may want to check the errors SQL state code to determine whether the actual query (here: INSERT) has failed or the error is related to the global transaction. It is up to you to ignore the failure to start the global transaction on a server and continue execution without having the server participate in the global transaction.

Beispiel #2 Local and global transactions are mutually exclusive

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* start a local transaction */
if (!$mysqli->begin_transaction()) {
    die(sprintf("[%d/%s] %s\n", $mysqli->errno, $mysqli->sqlstate, $mysqli->error));
}

/* cannot start global transaction now - must end local transaction first */
$gtrid_id = "12345";
if (!mysqlnd_ms_xa_begin($mysqli, $gtrid_id)) {
    die(sprintf("[%d/%s] %s\n", $mysqli->errno, $mysqli->sqlstate, $mysqli->error));
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Warning: mysqlnd_ms_xa_begin(): (mysqlnd_ms) Some work is done outside global transaction. You must end the active local transaction first in ... on line ...
[1400/XAE09] (mysqlnd_ms) Some work is done outside global transaction. You must end the active local transaction first

A global transaction cannot be started when a local transaction is active. The plugin tries to detect this situation as early as possible, that is when mysqlnd_ms_xa_begin() is called. If using API calls only to control transactions, the plugin will know that a local transaction is open and return an error for mysqlnd_ms_xa_begin(). However, note the plugins limitations on detecting transaction boundaries.. In the worst case, if using direct SQL for local transactions (BEGIN, COMMIT, ...), it may happen that an error is delayed until some SQL is executed on a server.

To end a global transaction invoke mysqlnd_ms_xa_commit() or mysqlnd_ms_xa_rollback(). When a global transaction is ended all participants must be informed of the end. Therefore, PECL/mysqlnd_ms transparently issues appropriate XA related SQL statements on some or all of them. Any failure during this phase will cause an implicit rollback. The XA related API is intentionally kept simple here. A more complex API that gave more control would bare few, if any, advantages over a user implementation that issues all lower level XA SQL statements itself.

XA transactions use the two-phase commit protocol. The two-phase commit protocol is a blocking protocol. There are cases when no progress can be made, not even when using timeouts. Transaction coordinators should survive their own failure, be able to detect blockades and break ties. PECL/mysqlnd_ms takes the role of a transaction coordinator and can be configured to survive its own crash to avoid issues with blocked MySQL servers. Therefore, the plugin can and should be configured to use a persistent and crash-safe state to allow garbage collection of unfinished, aborted global transactions. A global transaction can be aborted in an open state if either the plugin fails (crashes) or a connection from the plugin to a global transaction participant fails.

Beispiel #3 Transaction coordinator state store

{
    "myapp": {
        "xa": {
            "state_store": {
                "participant_localhost_ip": "192.168.2.12",
                "mysql": {
                    "host": "192.168.2.13",
                    "user": "root",
                    "password": "",
                    "db": "test",
                    "port": "3312",
                    "socket": null
                }
            }
        },
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.14",
                "port": "3306"
            }
        }
    }
}

Currently, PECL/mysqlnd_ms supports only using MySQL database tables as a state store. The SQL definitions of the tables are given in the plugin configuration section. Please, make sure to use a transactional and crash-safe storage engine for the tables, such as InnoDB. InnoDB is the default table engine in recent versions of the MySQL server. Make also sure the database server itself is highly available.

If a state store has been configured, the plugin can perform a garbage collection. During garbage collection it may be necessary to connect to a participant of a failed global transaction. Thus, the state store holds a list of participants and, among others, their host names. If the garbage collection is run on another host but the one that has written a participant entry with the host name localhost, then localhost resolves to different machines. There are two solutions to the problem. Either you do not configure any servers with the host name localhost but configure an IP address (and port) or, you hint the garbage collection. In the above example, localhost is used for master_0, hence it may not resolve to the correct host during garbage collection. However, participant_localhost_ip is also set to hint the garbage collection that localhost stands for the IP 192.168.2.12.


Service level and consistency

Hinweis: Version requirement

Service levels have been introduced in PECL mysqlnd_ms version 1.2.0-alpha. mysqlnd_ms_set_qos() is available with PHP 5.4.0 or newer.

Different types of MySQL cluster solutions offer different service and data consistency levels to their users. An asynchronous MySQL replication cluster offers eventual consistency by default. A read executed on an asynchronous slave may return current, stale or no data at all, depending on whether the slave has replayed all changesets from the master or not.

Applications using an MySQL replication cluster need to be designed to work correctly with eventual consistent data. In some cases, however, stale data is not acceptable. In those cases only certain slaves or even only master accesses are allowed to achieve the required quality of service from the cluster.

As of PECL mysqlnd_ms 1.2.0 the plugin is capable of selecting MySQL replication nodes automatically that deliver session consistency or strong consistency. Session consistency means that one client can read its writes. Other clients may or may not see the clients' write. Strong consistency means that all clients will see all writes from the client.

Beispiel #1 Session consistency: read your writes

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        }
    }
}

Beispiel #2 Requesting session consistency

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* read-write splitting: master used */
if (!$mysqli->query("INSERT INTO orders(order_id, item) VALUES (1, 'christmas tree, 1.8m')")) {
    /* Please use better error handling in your code */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Request session consistency: read your writes */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin picks a node which has the changes, here: master */
if (!$res = $mysqli->query("SELECT item FROM orders WHERE order_id = 1")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

var_dump($res->fetch_assoc());

/* Back to eventual consistency: stale data allowed */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin picks any slave, stale data is allowed */
if (!$res = $mysqli->query("SELECT item, price FROM specials")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

Service levels can be set in the plugins configuration file and at runtime using mysqlnd_ms_set_qos(). In the example the function is used to enforce session consistency (read your writes) for all future statements until further notice. The SELECT statement on the orders table is run on the master to ensure the previous write can be seen by the client. Read-write splitting logic has been adapted to fulfill the service level.

After the application has read its changes from the orders table it returns to the default service level, which is eventual consistency. Eventual consistency puts no restrictions on choosing a node for statement execution. Thus, the SELECT statement on the specials table is executed on a slave.

The new functionality supersedes the use of SQL hints and the master_on_write configuration option. In many cases mysqlnd_ms_set_qos() is easier to use, more powerful improves portability.

Beispiel #3 Maximum age/slave lag

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "failover" : "master"
    }
}

Beispiel #4 Limiting slave lag

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Read from slaves lagging no more than four seconds */
$ret = mysqlnd_ms_set_qos(
    $mysqli,
    MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL,
    MYSQLND_MS_QOS_OPTION_AGE,
    4
);

if (!$ret) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin picks any slave, which may or may not have the changes */
if (!$res = $mysqli->query("SELECT item, price FROM daytrade")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Back to default: use of all slaves and masters permitted */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

The eventual consistency service level can be used with an optional parameter to set a maximum slave lag for choosing slaves. If set, the plugin checks SHOW SLAVE STATUS for all configured slaves. In case of the example, only slaves for which Slave_IO_Running=Yes, Slave_SQL_Running=Yes and Seconds_Behind_Master <= 4 is true are considered for executing the statement SELECT item, price FROM daytrade.

Checking SHOW SLAVE STATUS is done transparently from an applications perspective. Errors, if any, are reported as warnings. No error will be set on the connection handle. Even if all SHOW SLAVE STATUS SQL statements executed by the plugin fail, the execution of the users statement is not stopped, given that master fail over is enabled. Thus, no application changes are required.

Hinweis: Expensive and slow operation

Checking SHOW SLAVE STATUS for all slaves adds overhead to the application. It is an expensive and slow background operation. Try to minimize the use of it. Unfortunately, a MySQL replication cluster does not give clients the possibility to request a list of candidates from a central instance. Thus, a more efficient way of checking the slaves lag is not available.

Please, note the limitations and properties of SHOW SLAVE STATUS as explained in the MySQL reference manual.

To prevent mysqlnd_ms from emitting a warning if no slaves can be found that lag no more than the defined number of seconds behind the master, it is necessary to enable master fail over in the plugins configuration file. If no slaves can be found and fail over is turned on, the plugin picks a master for executing the statement.

If no slave can be found and fail over is turned off, the plugin emits a warning, it does not execute the statement and it sets an error on the connection.

Beispiel #5 Fail over not set

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        }
    }
}

Beispiel #6 No slave within time limit

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Read from slaves lagging no more than four seconds */
$ret = mysqlnd_ms_set_qos(
    $mysqli,
    MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL,
    MYSQLND_MS_QOS_OPTION_AGE,
    4
);

if (!$ret) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin picks any slave, which may or may not have the changes */
if (!$res = $mysqli->query("SELECT item, price FROM daytrade")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Back to default: use of all slaves and masters permitted */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

PHP Warning:  mysqli::query(): (mysqlnd_ms) Couldn't find the appropriate slave connection. 0 slaves to choose from. Something is wrong in %s on line %d
PHP Warning:  mysqli::query(): (mysqlnd_ms) No connection selected by the last filter in %s on line %d
[2000] (mysqlnd_ms) No connection selected by the last filter


Global transaction IDs

Hinweis: Version requirement

A client-side global transaction ID injection has been introduced in mysqlnd_ms version 1.2.0-alpha. The feature is not required for synchronous clusters, such as MySQL Cluster. Use it with asynchronous clusters such as classical MySQL replication.

As of MySQL 5.6.5-m8 release candidate the MySQL server features built-in global transaction identifiers. The MySQL built-in global transaction ID feature is supported by PECL/mysqlnd_ms 1.3.0-alpha or later. However, the final feature set found in MySQL 5.6 production releases to date is not sufficient to support the ideas discussed below in all cases. Please, see also the concepts section.

PECL/mysqlnd_ms can either use its own global transaction ID emulation or the global transaction ID feature built-in to MySQL 5.6.5-m8 or later. From a developer perspective the client-side and server-side approach offer the same features with regards to service levels provided by PECL/mysqlnd_ms. Their differences are discussed in the concepts section.

The quickstart first demonstrates the use of the client-side global transaction ID emulation built-in to PECL/mysqlnd_ms before its show how to use the server-side counterpart. The order ensures that the underlying idea is discussed first.

Idea and client-side emulation

In its most basic form a global transaction ID (GTID) is a counter in a table on the master. The counter is incremented whenever a transaction is committed on the master. Slaves replicate the table. The counter serves two purposes. In case of a master failure, it helps the database administrator to identify the most recent slave for promoting it to the new master. The most recent slave is the one with the highest counter value. Applications can use the global transaction ID to search for slaves which have replicated a certain write (identified by a global transaction ID) already.

PECL/mysqlnd_ms can inject SQL for every committed transaction to increment a GTID counter. The so created GTID is accessible by the application to identify an applications write operation. This enables the plugin to deliver session consistency (read your writes) service level by not only querying masters but also slaves which have replicated the change already. Read load is taken away from the master.

Client-side global transaction ID emulation has some limitations. Please, read the concepts section carefully to fully understand the principles and ideas behind it, before using in production environments. The background knowledge is not required to continue with the quickstart.

First, create a counter table on your master server and insert a record into it. The plugin does not assist creating the table. Database administrators must make sure it exists. Depending on the error reporting mode, the plugin will silently ignore the lack of the table or bail out.

Beispiel #1 Create counter table on master

CREATE TABLE `trx` (
  `trx_id` int(11) DEFAULT NULL,
  `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1
INSERT INTO `trx`(`trx_id`) VALUES (1);

In the plugins configuration file set the SQL to update the global transaction ID table using on_commit from the global_transaction_id_injection section. Make sure the table name used for the UPDATE statement is fully qualified. In the example, test.trx is used to refer to table trx in the schema (database) test. Use the table that was created in the previous step. It is important to set the fully qualified table name because the connection on which the injection is done may use a different default database. Make sure the user that opens the connection is allowed to execute the UPDATE.

Enable reporting of errors that may occur when mysqlnd_ms does global transaction ID injection.

Beispiel #2 Plugin config: SQL for client-side GTID injection

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
            "report_error":true
        }
    }
}

Beispiel #3 Transparent global transaction ID injection

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("CREATE TABLE test(id INT)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* auto commit mode, read on slave, no increment */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

var_dump($res->fetch_assoc());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["id"]=>
  string(1) "1"
}

The example runs three statements in auto commit mode on the master, causing three transactions on the master. For every such statement, the plugin will inject the configured UPDATE transparently before executing the users SQL statement. When the script ends the global transaction ID counter on the master has been incremented by three.

The fourth SQL statement executed in the example, a SELECT, does not trigger an increment. Only transactions (writes) executed on a master shall increment the GTID counter.

Hinweis: SQL for global transaction ID: efficient solution wanted!

The SQL used for the client-side global transaction ID emulation is inefficient. It is optimized for clearity not for performance. Do not use it for production environments. Please, help finding an efficient solution for inclusion in the manual. We appreciate your input.

Beispiel #4 Plugin config: SQL for fetching GTID

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
            "fetch_last_gtid" : "SELECT MAX(trx_id) FROM test.trx",
            "report_error":true
        }
    }
}

Beispiel #5 Obtaining GTID after injection

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("CREATE TABLE test(id INT)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

GTID after transaction 7
GTID after transaction 8

Applications can ask PECL mysqlnd_ms for a global transaction ID which belongs to the last write operation performed by the application. The function mysqlnd_ms_get_last_gtid() returns the GTID obtained when executing the SQL statement from the fetch_last_gtid entry of the global_transaction_id_injection section from the plugins configuration file. The function may be called after the GTID has been incremented.

Applications are adviced not to run the SQL statement themselves as this bares the risk of accidentally causing an implicit GTID increment. Also, if the function is used, it is easy to migrate an application from one SQL statement for fetching a transaction ID to another, for example, if any MySQL server ever features built-in global transaction ID support.

The quickstart shows a SQL statement which will return a GTID equal or greater to that created for the previous statement. It is exactly the GTID created for the previous statement if no other clients have incremented the GTID in the time span between the statement execution and the SELECT to fetch the GTID. Otherwise, it is greater.

Beispiel #6 Plugin config: Checking for a certain GTID

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
            "fetch_last_gtid" : "SELECT MAX(trx_id) FROM test.trx",
            "check_for_gtid" : "SELECT trx_id FROM test.trx WHERE trx_id >= #GTID",
            "report_error":true
        }
    }
}

Beispiel #7 Session consistency service level and GTID combined

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (   !$mysqli->query("DROP TABLE IF EXISTS test")
    || !$mysqli->query("CREATE TABLE test(id INT)")
    || !$mysqli->query("INSERT INTO test(id) VALUES (1)")
) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* GTID as an identifier for the last write */
$gtid = mysqlnd_ms_get_last_gtid($mysqli);

/* Session consistency (read your writes): try to read from slaves not only master */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION, MYSQLND_MS_QOS_OPTION_GTID, $gtid)) {
    die(sprintf("[006] [%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Either run on master or a slave which has replicated the INSERT */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

var_dump($res->fetch_assoc());
?>

A GTID returned from mysqlnd_ms_get_last_gtid() can be used as an option for the session consistency service level. Session consistency delivers read your writes. Session consistency can be requested by calling mysqlnd_ms_set_qos(). In the example, the plugin will execute the SELECT statement either on the master or on a slave which has replicated the previous INSERT already.

PECL mysqlnd_ms will transparently check every configured slave if it has replicated the INSERT by checking the slaves GTID table. The check is done running the SQL set with the check_for_gtid option from the global_transaction_id_injection section of the plugins configuration file. Please note, that this is a slow and expensive procedure. Applications should try to use it sparsely and only if read load on the master becomes to high otherwise.

Use of the server-side global transaction ID feature

Hinweis: Insufficient server support in MySQL 5.6

The plugin has been developed against a pre-production version of MySQL 5.6. It turns out that all released production versions of MySQL 5.6 do not provide clients with enough information to enforce session consistency based on GTIDs. Please, read the concepts section for details.

Starting with MySQL 5.6.5-m8 the MySQL Replication system features server-side global transaction IDs. Transaction identifiers are automatically generated and maintained by the server. Users do not need to take care of maintaining them. There is no need to setup any tables in advance, or for setting on_commit. A client-side emulation is no longer needed.

Clients can continue to use global transaction identifier to achieve session consistency when reading from MySQL Replication slaves in some cases but not all! The algorithm works as described above. Different SQL statements must be configured for fetch_last_gtid and check_for_gtid. The statements are given below. Please note, MySQL 5.6.5-m8 is a development version. Details of the server implementation may change in the future and require adoption of the SQL statements shown.

Using the following configuration any of the above described functionality can be used together with the server-side global transaction ID feature. mysqlnd_ms_get_last_gtid() and mysqlnd_ms_set_qos() continue to work as described above. The only difference is that the server does not use a simple sequence number but a string containing of a server identifier and a sequence number. Thus, users cannot easily derive an order from GTIDs returned by mysqlnd_ms_get_last_gtid().

Beispiel #8 Plugin config: using MySQL 5.6.5-m8 built-in GTID feature

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "fetch_last_gtid" : "SELECT @@GLOBAL.GTID_DONE AS trx_id FROM DUAL",
            "check_for_gtid" : "SELECT GTID_SUBSET('#GTID', @@GLOBAL.GTID_DONE) AS trx_id FROM DUAL",
            "report_error":true
        }
    }
}


Cache integration

Hinweis: Version requirement, dependencies and status

Please, find more about version requirements, extension load order dependencies and the current status in the concepts section!

Databases clusters can deliver different levels of consistency. As of PECL/mysqlnd_ms 1.2.0 it is possible to advice the plugin to consider only cluster nodes that can deliver the consistency level requested. For example, if using asynchronous MySQL Replication with its cluster-wide eventual consistency, it is possible to request session consistency (read your writes) at any time using mysqlnd_ms_set_quos(). Please, see also the service level and consistency introduction.

Beispiel #1 Recap: quality of service to request read your writes

/* Request session consistency: read your writes */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

Assuming PECL/mysqlnd has been explicitly told to deliver no consistency level higher than eventual consistency, it is possible to replace a database node read access with a client-side cache using time-to-live (TTL) as its invalidation strategy. Both the database node and the cache may or may not serve current data as this is what eventual consistency defines.

Replacing a database node read access with a local cache access can improve overall performance and lower the database load. If the cache entry is every reused by other clients than the one creating the cache entry, a database access is saved and thus database load is lowered. Furthermore, system performance can become better if computation and delivery of a database query is slower than a local cache access.

Beispiel #2 Plugin config: no special entries for caching

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
    }
}

Beispiel #3 Caching a slave request

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

if (   !$mysqli->query("DROP TABLE IF EXISTS test")
    || !$mysqli->query("CREATE TABLE test(id INT)")
    || !$mysqli->query("INSERT INTO test(id) VALUES (1)")
) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Explicitly allow eventual consistency and caching (TTL <= 60 seconds) */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL, MYSQLND_MS_QOS_OPTION_CACHE, 60)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* To make this example work, we must wait for a slave to catch up. Brute force style. */
$attempts = 0;
do {
    /* check if slave has the table */
    if ($res = $mysqli->query("SELECT id FROM test")) {
        break;
    } else if ($mysqli->errno) {
        die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
    }
    /* wait for slave to catch up */
    usleep(200000);
} while ($attempts++ < 10);

/* Query has been run on a slave, result is in the cache */
assert($res);
var_dump($res->fetch_assoc());

/* Served from cache */
$res = $mysqli->query("SELECT id FROM test");
?>

The example shows how to use the cache feature. First, you have to set the quality of service to eventual consistency and explicitly allow for caching. This is done by calling mysqlnd_ms_set_qos(). Then, the result set of every read-only statement is cached for upto that many seconds as allowed with mysqlnd_ms_set_qos().

The actual TTL is lower or equal to the value set with mysqlnd_ms_set_qos(). The value passed to the function sets the maximum age (seconds) of the data delivered. To calculate the actual TTL value the replication lag on a slave is checked and subtracted from the given value. If, for example, the maximum age is set to 60 seconds and the slave reports a lag of 10 seconds the resulting TTL is 50 seconds. The TTL is calculated individually for every cached query.

Beispiel #4 Read your writes and caching combined

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

if (   !$mysqli->query("DROP TABLE IF EXISTS test")
    || !$mysqli->query("CREATE TABLE test(id INT)")
    || !$mysqli->query("INSERT INTO test(id) VALUES (1)")
) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Explicitly allow eventual consistency and caching (TTL <= 60 seconds) */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL, MYSQLND_MS_QOS_OPTION_CACHE, 60)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* To make this example work, we must wait for a slave to catch up. Brute force style. */
$attempts = 0;
do {
    /* check if slave has the table */
    if ($res = $mysqli->query("SELECT id FROM test")) {
        break;
    } else if ($mysqli->errno) {
        die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
    }
    /* wait for slave to catch up */
    usleep(200000);
} while ($attempts++ < 10);

assert($res);

/* Query has been run on a slave, result is in the cache */
var_dump($res->fetch_assoc());

/* Served from cache */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
var_dump($res->fetch_assoc());

/* Update on master */
if (!$mysqli->query("UPDATE test SET id = 2")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Read your writes */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Fetch latest data */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
var_dump($res->fetch_assoc());
?>

The quality of service can be changed at any time to avoid further cache usage. If needed, you can switch to read your writes (session consistency). In that case, the cache will not be used and fresh data is read.


Failover

By default, the plugin does not attempt to fail over if connecting to a host fails. This prevents pitfalls related to connection state. It is recommended to manually handle connection errors in a way similar to a failed transaction. You should catch the error, rebuild the connection state and rerun your query as shown below.

If connection state is no issue to you, you can alternatively enable automatic and silent failover. Depending on the configuration, the automatic and silent failover will either attempt to fail over to the master before issuing and error or, try to connect to other slaves, given the query allowes for it, before attempting to connect to a master. Because automatic failover is not fool-proof, it is not discussed in the quickstart. Instead, details are given in the concepts section below.

Beispiel #1 Manual failover, automatic optional

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "simulate_slave_failure",
                "port": "0"
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
       "filters": { "roundrobin": [] }
    }
 }

Beispiel #2 Manual failover

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

$sql = "SELECT 1 FROM DUAL";

/* error handling as it should be done regardless of the plugin */
if (!($res = $link->query($sql))) {
    /* plugin specific: check for connection error */
    switch ($link->errno) {
    case 2002:
    case 2003:
    case 2005:
        printf("Connection error - trying next slave!\n");
        /* load balancer will pick next slave */
        $res = $link->query($sql);
        break;
    default:
        /* no connection error, failover is unlikely to help */
        die(sprintf("SQL error: [%d] %s", $link->errno, $link->error));
        break;
    }
}
if ($res) {
    var_dump($res->fetch_assoc());
}
?>


Partitioning and Sharding

Database clustering is done for various reasons. Clusters can improve availability, fault tolerance, and increase performance by applying a divide and conquer approach as work is distributed over many machines. Clustering is sometimes combined with partitioning and sharding to further break up a large complex task into smaller, more manageable units.

The mysqlnd_ms plugin aims to support a wide variety of MySQL database clusters. Some flavors of MySQL database clusters have built-in methods for partitioning and sharding, which could be transparent to use. The plugin supports the two most common approaches: MySQL Replication table filtering, and Sharding (application based partitioning).

MySQL Replication supports partitioning as filters that allow you to create slaves that replicate all or specific databases of the master, or tables. It is then in the responsibility of the application to choose a slave according to the filter rules. You can either use the mysqlnd_ms node_groups filter to manually support this, or use the experimental table filter.

Manual partitioning or sharding is supported through the node grouping filter, and SQL hints as of 1.5.0. The node_groups filter lets you assign a symbolic name to a group of master and slave servers. In the example, the master master_0 and slave_0 form a group with the name Partition_A. It is entirely up to you to decide what makes up a group. For example, you may use node groups for sharding, and use the group names to address shards like Shard_A_Range_0_100.

Beispiel #1 Cluster node groups

{
  "myapp": {
       "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "simulate_slave_failure",
                "port": "0"
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
        "filters": {
            "node_groups": {
                "Partition_A" : {
                    "master": ["master_0"],
                    "slave": ["slave_0"]
                }
            },
           "roundrobin": []
        }
    }
}

Beispiel #2 Manual partitioning using SQL hints

<?php
function select($mysqli, $msg, $hint = '')
{
    /* Note: weak test, two connections to two servers may have the same thread id */
    $sql = sprintf("SELECT CONNECTION_ID() AS _thread, '%s' AS _hint FROM DUAL", $msg);
    if ($hint) {
        $sql = $hint . $sql;
    }
    if (!($res = $mysqli->query($sql))) {
        printf("[%d] %s", $mysqli->errno, $mysqli->error);
        return false;
    }
    $row =  $res->fetch_assoc();
    printf("%d - %s - %s\n", $row['_thread'], $row['_hint'], $sql);
    return true;
}

$mysqli = new mysqli("myapp", "user", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* All slaves allowed */
select($mysqli, "slave_0");
select($mysqli, "slave_1");

/* only servers of node group "Partition_A" allowed */
select($mysqli, "slave_1", "/*Partition_A*/");
select($mysqli, "slave_1", "/*Partition_A*/");
?>
6804 - slave_0 - SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL
2442 - slave_1 - SELECT CONNECTION_ID() AS _thread, 'slave2' AS _hint FROM DUAL
6804 - slave_0 - /*Partition_A*/SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL
6804 - slave_0 - /*Partition_A*/SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL

By default, the plugin will use all configured master and slave servers for query execution. But if a query begins with a SQL hint like /*node_group*/, the plugin will only consider the servers listed in the node_group for query execution. Thus, SELECT queries prefixed with /*Partition_A*/ will only be executed on slave_0.


MySQL Fabric

Hinweis: Version requirement and status

Work on supporting MySQL Fabric started in version 1.6. Please, consider the support to be of pre-alpha quality. The manual may not list all features or feature limitations. This is work in progress.

Sharding is the only use case supported by the plugin to date.

Hinweis: MySQL Fabric concepts

Please, check the MySQL reference manual for more information about MySQL Fabric and how to set it up. The PHP manual assumes that you are familiar with the basic concepts and ideas of MySQL Fabric.

MySQL Fabric is a system for managing farms of MySQL servers to achive High Availability and optionally support sharding. Technically, it is a middleware to manage and monitor MySQL servers.

Clients query MySQL Fabric to obtain lists of MySQL servers, their state and their roles. For example, clients can request a list of slaves for a MySQL Replication group and whether they are ready to handle SQL requests. Another example is a cluster of sharded MySQL servers where the client seeks to know which shard to query for a given table and shard key. If configured to use Fabric, the plugin uses XML RCP over HTTP to obtain the list at runtime from a MySQL Fabric host. The XML remote procedure call itself is done in the background and transparent from a developers point of view.

Instead of listing MySQL servers directly in the plugins configuration file it contains a list of one or more MySQL Fabric hosts

Beispiel #1 Plugin config: Fabric hosts instead of MySQL servers

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ]
        }
    }
}

Users utilize the new functions mysqlnd_ms_fabric_select_shard() and mysqlnd_ms_fabric_select_global() to switch to the set of servers responsible for a given shard key. Then, the plugin picks an appropriate server for running queries on. When doing so, the plugin takes care of additional load balancing rules set.

The below example assumes that MySQL Fabric has been setup to shard the table test.fabrictest using the id column of the table as a shard key.

Beispiel #2 Manual partitioning using SQL hints

<?php
$mysqli = new mysqli("myapp", "user", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Create a global table - a table available on all shards */
mysqlnd_ms_fabric_select_global($mysqli, "test.fabrictest");
if (!$mysqli->query("CREATE TABLE test.fabrictest(id INT NOT NULL PRIMARY KEY)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Switch connection to appropriate shard and insert record */
mysqlnd_ms_fabric_select_shard($mysqli, "test.fabrictest", 10);
if (!($res = $mysqli->query("INSERT INTO fabrictest(id) VALUES (10)"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Try to read newly inserted record */
mysqlnd_ms_fabric_select_shard($mysqli, "test.fabrictest", 10);
if (!($res = $mysqli->query("SELECT id FROM test WHERE id = 10"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

The example creates the sharded table, inserts a record and reads the record thereafter. All SQL data definition language (DDL) operations on a sharded table must be applied to the so called global server group. Prior to creating or altering a sharded table, mysqlnd_ms_fabric_select_global() is called to switch the given connection to the corresponding servers of the global group. Data manipulation (DML) SQL statements must be sent to the shards directly. The mysqlnd_ms_fabric_select_shard() switches a connection to shards handling a certain shard key.


Concepts

Inhaltsverzeichnis

  • Architecture
  • Connection pooling and switching
  • Local transaction handling
  • Error handling
  • Transient errors
  • Failover
  • Load balancing
  • Read-write splitting
  • Filter
  • Service level and consistency
  • Global transaction IDs
  • Cache integration
  • Supported clusters
  • XA/Distributed transactions

This explains the architecture and related concepts for this plugin, and describes the impact that MySQL replication and this plugin have on developmental tasks while using a database cluster. Reading and understanding these concepts is required, in order to use this plugin with success.


Architecture

The mysqlnd replication and load balancing plugin is implemented as a PHP extension. It is written in C and operates under the hood of PHP. During the startup of the PHP interpreter, in the module init phase of the PHP engine, it gets registered as a mysqlnd plugin to replace selected mysqlnd C methods.

At PHP runtime, it inspects queries sent from mysqlnd (PHP) to the MySQL server. If a query is recognized as read-only, it will be sent to one of the configured slave servers. Statements are considered read-only if they either start with SELECT, the SQL hint /*ms=slave*/ or a slave had been chosen for running the previous query, and the query started with the SQL hint /*ms=last_used*/. In all other cases, the query will be sent to the MySQL replication master server.

For better portability, applications should use the MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH, and MYSQLND_MS_LAST_USED_SWITCH predefined mysqlnd_ms constants, instead of their literal values, such as /*ms=slave*/.

The plugin handles the opening and closing of database connections to both master and slave servers. From an application point of view, there continues to be only one connection handle. However, internally, this one public connection handle represents a pool of network connections that are managed by the plugin. The plugin proxies queries to the master server, and to the slaves using multiple connections.

Database connections have a state consisting of, for example, transaction status, transaction settings, character set settings, and temporary tables. The plugin will try to maintain the same state among all internal connections, whenever this can be done in an automatic and transparent way. In cases where it is not easily possible to maintain state among all connections, such as when using BEGIN TRANSACTION, the plugin leaves it to the user to handle.


Connection pooling and switching

The replication and load balancing plugin changes the semantics of a PHP MySQL connection handle. The existing API of the PHP MySQL extensions (mysqli, mysql, and PDO_MYSQL) are not changed in a way that functions are added or removed. But their behavior changes when using the plugin. Existing applications do not need to be adapted to a new API, but they may need to be modified because of the behavior changes.

The plugin breaks the one-by-one relationship between a mysqli, mysql, and PDO_MYSQL connection handle and a MySQL network connection. And a mysqli, mysql, and PDO_MYSQL connection handle represents a local pool of connections to the configured MySQL replication master and MySQL replication slave servers. The plugin redirects queries to the master and slave servers. At some point in time one and the same PHP connection handle may point to the MySQL master server. Later on, it may point to one of the slave servers or still the master. Manipulating and replacing the network connection referenced by a PHP MySQL connection handle is not a transparent operation.

Every MySQL connection has a state. The state of the connections in the connection pool of the plugin can differ. Whenever the plugin switches from one wire connection to another, the current state of the user connection may change. The applications must be aware of this.

The following list shows what the connection state consists of. The list may not be complete.

  • Transaction status
  • Temporary tables
  • Table locks
  • Session system variables and session user variables
  • The current database set using USE and other state chaining SQL commands
  • Prepared statements
  • HANDLER variables
  • Locks acquired with GET_LOCK()

Connection switches happen right before queries are executed. The plugin does not switch the current connection until the next statement is executed.

Hinweis: Replication issues

See also the MySQL reference manual chapter about » replication features and related issues. Some restrictions may not be related to the PHP plugin, but are properties of the MySQL replication system.

Broadcasted messages

The plugins philosophy is to align the state of connections in the pool only if the state is under full control of the plugin, or if it is necessary for security reasons. Just a few actions that change the state of the connection fall into this category.

The following is a list of connection client library calls that change state, and are broadcasted to all open connections in the connection pool.

If any of the listed calls below are to be executed, the plugin loops over all open master and slave connections. The loop continues until all servers have been contacted, and the loop does not break if a server indicates a failure. If possible, the failure will propagate to the called user API function, which may be detected depending on which underlying library function was triggered.

Library call | Notes | Version
change_user() | Called by the mysqli_change_user() user API call. Also triggered upon reuse of a persistent mysqli connection. | Since 1.0.0.
select_db | Called by the following user API calls: mysql_select_db(), mysql_list_tables(), mysql_db_query(), mysql_list_fields(), mysqli_select_db(). Note, that SQL USE is not monitored. | Since 1.0.0.
set_charset() | Called by the following user API calls: mysql_set_charset(). mysqli_set_charset(). Note, that SQL SET NAMES is not monitored. | Since 1.0.0.
set_server_option() | Called by the following user API calls: mysqli_multi_query(), mysqli_real_query(), mysqli_query(), mysql_query(). | Since 1.0.0.
set_client_option() | Called by the following user API calls: mysqli_options(), mysqli_ssl_set(), mysqli_connect(), mysql_connect(), mysql_pconnect(). | Since 1.0.0.
set_autocommit() | Called by the following user API calls: mysqli_autocommit(), PDO::setAttribute(PDO::ATTR_AUTOCOMMIT). | Since 1.0.0. PHP >= 5.4.0.
ssl_set() | Called by the following user API calls: mysqli_ssl_set(). | Since 1.1.0.

Broadcasting and lazy connections

The plugin does not proxy or remember all settings to apply them on connections opened in the future. This is important to remember, if using lazy connections. Lazy connections are connections which are not opened before the client sends the first connection. Use of lazy connections is the default plugin action.

The following connection library calls each changed state, and their execution is recorded for later use when lazy connections are opened. This helps ensure that the connection state of all connections in the connection pool are comparable.

Library call | Notes | Version
change_user() | User, password and database recorded for future use. | Since 1.1.0.
select_db | Database recorded for future use. | Since 1.1.0.
set_charset() | Calls set_client_option(MYSQL_SET_CHARSET_NAME, charset) on lazy connection to ensure charset will be used upon opening the lazy connection. | Since 1.1.0.
set_autocommit() | Adds SET AUTOCOMMIT=0|1 to the list of init commands of a lazy connection using set_client_option(MYSQL_INIT_COMMAND, "SET AUTOCOMMIT=...%quot;). | Since 1.1.0. PHP >= 5.4.0.
Achtung

Connection state

The connection state is not only changed by API calls. Thus, even if PECL mysqlnd_ms monitors all API calls, the application must still be aware. Ultimately, it is the applications responsibility to maintain the connection state, if needed.

Charsets and string escaping

Due to the use of lazy connections, which are a default, it can happen that an application tries to escape a string for use within SQL statements before a connection has been established. In this case string escaping is not possible. The string escape function does not know what charset to use before a connection has been established.

To overcome the problem a new configuration setting server_charset has been introduced in version 1.4.0.

Attention has to be paid on escaping strings with a certain charset but using the result on a connection that uses a different charset. Please note, that PECL/mysqlnd_ms manipulates connections and one application level connection represents a pool of multiple connections that all may have different default charsets. It is recommended to configure the servers involved to use the same default charsets. The configuration setting server_charset does help with this situation as well. If using server_charset, the plugin will set the given charset on all newly opened connections.


Local transaction handling

Transaction handling is fundamentally changed. An SQL transaction is a unit of work that is run on one database server. The unit of work consists of one or more SQL statements.

By default the plugin is not aware of SQL transactions. The plugin may switch connections for load balancing at any point in time. Connection switches may happen in the middle of a transaction. This is against the nature of an SQL transaction. By default, the plugin is not transaction safe.

Any kind of MySQL load balancer must be hinted about the begin and end of a transaction. Hinting can either be done implicitly by monitoring API calls or using SQL hints. Both options are supported by the plugin, depending on your PHP version. API monitoring requires PHP 5.4.0 or newer. The plugin, like any other MySQL load balancer, cannot detect transaction boundaries based on the MySQL Client Server Protocol. Thus, entirely transparent transaction aware load balancing is not possible. The least intrusive option is API monitoring, which requires little to no application changes, depending on your application.

Please, find examples of using SQL hints or the API monitoring in the examples section. The details behind the API monitoring, which makes the plugin transaction aware, are described below.

Beginning with PHP 5.4.0, the mysqlnd library allows this plugin to subclass the library C API call set_autocommit(), to detect the status of autocommit mode.

The PHP MySQL extensions either issue a query (such as SET AUTOCOMMIT=0|1), or use the mysqlnd library call set_autocommit() to control the autocommit setting. If an extension makes use of set_autocommit(), the plugin can be made transaction aware. Transaction awareness cannot be achieved if using SQL to set the autocommit mode. The library function set_autocommit() is called by the mysqli_autocommit() and PDO::setAttribute(PDO::ATTR_AUTOCOMMIT) user API calls.

The plugin configuration option trx_stickiness=master can be used to make the plugin transactional aware. In this mode, the plugin stops load balancing if autocommit becomes disabled, and directs all statements to the master until autocommit gets enabled.

An application that does not want to set SQL hints for transactions but wants to use the transparent API monitoring to avoid application changes must make sure that the autocommit settings is changed exclusively through the listed API calls.

API based transaction boundary detection has been improved with PHP 5.5.0 and PECL/mysqlnd_ms 1.5.0 to cover not only calls to mysqli_autocommit() but also mysqli_begin(), mysqli_commit() and mysqli_rollback().


Error handling

Applications using PECL/mysqlnd_ms should implement proper error handling for all user API calls. And because the plugin changes the semantics of a connection handle, API calls may return unexpected errors. If using the plugin on a connection handle that no longer represents an individual network connection, but a connection pool, an error code and error message will be set on the connection handle whenever an error occurs on any of the network connections behind.

If using lazy connections, which is the default, connections are not opened until they are needed for query execution. Therefore, an API call for a statement execution may return a connection error. In the example below, an error is provoked when trying to run a statement on a slave. Opening a slave connection fails because the plugin configuration file lists an invalid host name for the slave.

Beispiel #1 Provoking a connection error

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "invalid_host_name",
            }
        },
        "lazy_connections": 1
    }
}

The explicit activation of lazy connections is for demonstration purpose only.

Beispiel #2 Connection error on query execution

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connection 2, run on slave because SELECT, provoke connection error */
if (!($res = $mysqli->query("SELECT @myrole AS _role"))) {
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
 $row = $res->fetch_assoc();
 $res->close();
 printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

PHP Warning:  mysqli::query(): php_network_getaddresses: getaddrinfo failed: Name or service not known in %s on line %d
PHP Warning:  mysqli::query(): [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (trying to connect via tcp://invalid_host_name:3306) in %s on line %d
[2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

Applications are expected to handle possible connection errors by implementing proper error handling.

Depending on the use case, applications may want to handle connection errors differently from other errors. Typical connection errors are 2002 (CR_CONNECTION_ERROR) - Can't connect to local MySQL server through socket '%s' (%d), 2003 (CR_CONN_HOST_ERROR) - Can't connect to MySQL server on '%s' (%d) and 2005 (CR_UNKNOWN_HOST) - Unknown MySQL server host '%s' (%d). For example, the application may test for the error codes and manually perform a fail over. The plugins philosophy is not to offer automatic fail over, beyond master fail over, because fail over is not a transparent operation.

Beispiel #3 Provoking a connection error

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "invalid_host_name"
            },
            "slave_1": {
                "host": "192.168.78.136"
            }
        },
        "lazy_connections": 1,
        "filters": {
            "roundrobin": [

            ]
        }
    }
}

Explicitly activating lazy connections is done for demonstration purposes, as is round robin load balancing as opposed to the default random once type.

Beispiel #4 Most basic failover

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connection 2, first slave */
$res = $mysqli->query("SELECT VERSION() AS _version");
/* Hackish manual fail over */
if (2002 == $mysqli->errno || 2003 == $mysqli->errno || 2004 == $mysqli->errno) {
  /* Connection 3, first slave connection failed, trying next slave */
  $res = $mysqli->query("SELECT VERSION() AS _version");
}

if (!$res) {
  printf("ERROR, [%d] '%s'\n", $mysqli->errno, $mysqli->error);
} else {
 /* Error messages are taken from connection 3, thus no error */
 printf("SUCCESS, [%d] '%s'\n", $mysqli->errno, $mysqli->error);
 $row = $res->fetch_assoc();
 $res->close();
 printf("version = %s\n", $row['_version']);
}
$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

[1045] Access denied for user 'username'@'localhost' (using password: YES)
PHP Warning:  mysqli::query(): php_network_getaddresses: getaddrinfo failed: Name or service not known in %s on line %d
PHP Warning:  mysqli::query(): [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (trying to connect via tcp://invalid_host_name:3306) in %s on line %d
SUCCESS, [0] ''
version = 5.6.2-m5-log

In some cases, it may not be easily possible to retrieve all errors that occur on all network connections through a connection handle. For example, let's assume a connection handle represents a pool of three open connections. One connection to a master and two connections to the slaves. The application changes the current database using the user API call mysqli_select_db(), which then calls the mysqlnd library function to change the schemata. mysqlnd_ms monitors the function, and tries to change the current database on all connections to harmonize their state. Now, assume the master succeeds in changing the database, and both slaves fail. Upon the initial error from the first slave, the plugin will set an appropriate error on the connection handle. The same is done when the second slave fails to change the database. The error message from the first slave is lost.

Such cases can be debugged by either checking for errors of the type E_WARNING (see above) or, if no other option, investigation of the mysqlnd_ms debug and trace log.


Transient errors

Some distributed database clusters make use of transient errors. A transient error is a temporary error that is likely to disappear soon. By definition it is safe for a client to ignore a transient error and retry the failed operation on the same database server. The retry is free of side effects. Clients are not forced to abort their work or to fail over to another database server immediately. They may enter a retry loop before to wait for the error to disappear before giving up on the database server. Transient errors can be seen, for example, when using MySQL Cluster. But they are not bound to any specific clustering solution per se.

PECL/mysqlnd_ms can perform an automatic retry loop in case of a transient error. This increases distribution transparency and thus makes it easier to migrate an application running on a single database server to run on a cluster of database servers without having to change the source of the application.

The automatic retry loop will repeat the requested operation up to a user configurable number of times and pause between the attempts for a configurable amount of time. If the error disappears during the loop, the application will never see it. If not, the error is forwarded to the application for handling.

In the example below a duplicate key error is provoked to make the plugin retry the failing query two times before the error is passed to the application. Between the two attempts the plugin sleeps for 100 milliseconds.

Beispiel #1 Provoking a transient error

mysqlnd_ms.enable=1
mysqlnd_ms.collect_statistics=1
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
       },
       "transient_error": {
          "mysql_error_codes": [
            1062
          ],
          "max_retries": 2,
          "usleep_retry": 100
       }
    }
}

Beispiel #2 Transient error retry loop

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT PRIMARY KEY)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1))")) {
  printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Retry loop is completely transparent. Checking statistics is
 the only way to know about implicit retries */
$stats = mysqlnd_ms_get_stats();
printf("Transient error retries before error: %d\n", $stats['transient_error_retries']);

/* Provoking duplicate key error to see statistics change */
if (!$mysqli->query("INSERT INTO test(id) VALUES (1))")) {
  printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

$stats = mysqlnd_ms_get_stats();
printf("Transient error retries after error: %d\n", $stats['transient_error_retries']);

$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Transient error retries before error: 0
[1062] Duplicate entry '1' for key 'PRIMARY'
Transient error retries before error: 2

Because the execution of the retry loop is transparent from a users point of view, the example checks the statistics provided by the plugin to learn about it.

As the example shows, the plugin can be instructed to consider any error transient regardless of the database servers error semantics. The only error that a stock MySQL server considers temporary has the error code 1297. When configuring other error codes but 1297 make sure your configuration reflects the semantics of your clusters error codes.

The following mysqlnd C API calls are monitored by the plugin to check
for transient errors: query(),
change_user(), select_db(),
set_charset(), set_server_option()
prepare(), execute(),
set_autocommit(),
tx_begin(), tx_commit(),
tx_rollback(), tx_commit_or_rollback().
The corresponding user API calls have similar names.

The maximum time the plugin may sleep during the retry loop depends on the function in question. The a retry loop for query(), prepare() or execute() will sleep for up to max_retries * usleep_retry milliseconds.

However, functions that control connection state are dispatched to all connections. The retry loop settings are applied to every connection on which the command is to be run. Thus, such a function may interrupt program execution for longer than a function that is run on one server only. For example, set_autocommit() is dispatched to connections and may sleep up to (max_retries * usleep_retry) * number_of_open_connections) milliseconds. Please, keep this in mind when setting long sleep times and large retry numbers. Using the default settings of max_retries=1, usleep_retry=100 and lazy_connections=1 it is unlikely that you will ever see a delay of more than 1 second.


Failover

By default, connection failover handling is left to the user. The application is responsible for checking return values of the database functions it calls and reacting to possible errors. If, for example, the plugin recognizes a query as a read-only query to be sent to the slave servers, and the slave server selected by the plugin is not available, the plugin will raise an error after not executing the statement.

Default: manual failover

It is up to the application to handle the error and, if required, re-issue the query to trigger the selection of another slave server for statement execution. The plugin will make no attempts to failover automatically, because the plugin cannot ensure that an automatic failover will not change the state of the connection. For example, the application may have issued a query which depends on SQL user variables which are bound to a specific connection. Such a query might return incorrect results if the plugin would switch the connection implicitly as part of automatic failover. To ensure correct results, the application must take care of the failover, and rebuild the required connection state. Therefore, by default, no automatic failover is performed by the plugin.

A user that does not change the connection state after opening a connection may activate automatic failover. Please note, that automatic failover logic is limited to connection attempts. Automatic failover is not used for already established connections. There is no way to instruct the plugin to attempt failover on a connection that has been connected to MySQL already in the past.

Automatic failover

The failover policy is configured in the plugins configuration file, by using the failover configuration directive.

Automatic and silent failover can be enabled through the failover configuration directive. Automatic failover can either be configured to try exactly one master after a slave failure or, alternatively, loop over slaves and masters before returning an error to the user. The number of connection attempts can be limited and failed hosts can be excluded from future load balancing attempts. Limiting the number of retries and remembering failed hosts are considered experimental features, albeit being reasonable stable. Syntax and semantics may change in future versions.

Please note, since version 1.5.0 automatic failover is disabled for the duration of a transaction if transaction stickiness is enabled and transaction boundaries have been detected. The plugin will not switch connections for the duration of a transaction. It will also not perform automatic and silent failover. Instead an error will be thrown. It is then left to the user to handle the failure of the transaction. Please check, the trx_stickiness documentation how to do this.

A basic manual failover example is provided within the error handling section.

Standby servers

Using weighted load balancing, introduced in PECL/mysqlnd 1.4.0, it is possible to configure standby servers that are sparsely used during normal operations. A standby server that is primarily used as a worst-case standby failover target can be assigned a very low weight/priority in relation to all other servers. As long as all servers are up and running the majority of the workload is assigned to the servers which have hight weight values. Few requests will be directed to the standby system which has a very low weight value.

Upon failure of the servers with a high priority, you can still failover to the standby, which has been given a low load balancing priority by assigning a low weight to it. Failover can be some manually or automatically. If done automatically, you may want to combine it with the remember_failed option.

At this point, it is not possible to instruct the load balancer to direct no requests at all to a standby. This may not be much of a limitation given that the highest weight you can assign to a server is 65535. Given two slaves, of which one shall act as a standby and has been assigned a weight of 1, the standby will have to handle far less than one percent of the overall workload.

Failover and primary copy

Please note, if using a primary copy cluster, such as MySQL Replication, it is difficult to do connection failover in case of a master failure. At any time there is only one master in the cluster for a given dataset. The master is a single point of failure. If the master fails, clients have no target to fail over write requests. In case of a master outage the database administrator must take care of the situation and update the client configurations, if need be.


Load balancing

Four load balancing strategies are supported to distribute statements over the configured MySQL slave servers:

random

Chooses a random server whenever a statement is executed.

random once (default)

Chooses a random server after the first statement is executed, and uses the decision for the rest of the PHP request.

It is the default, and the lowest impact on the connection state.

round robin

Iterates over the list of configured servers.

user-defined via callback

Is used to implement any other strategy.

The load balancing policy is configured in the plugins configuration file using the random, roundrobin, and user filters.

Servers can be prioritized assigning a weight. A server that has been given a weight of two will get twice as many requests as a server that has been given the default weight of one. Prioritization can be handy in heterogenous environments. For example, you may want to assign more requests to a powerful machine than to a less powerful. Or, you may have configured servers that are close or far from the client, thus expose different latencies.


Read-write splitting

The plugin executes read-only statements on the configured MySQL slaves, and all other queries on the MySQL master. Statements are considered read-only if they either start with SELECT, the SQL hint /*ms=slave*/, or if a slave had been chosen for running the previous query and the query starts with the SQL hint /*ms=last_used*/. In all other cases, the query will be sent to the MySQL replication master server. It is recommended to use the constants MYSQLND_MS_SLAVE_SWITCH, MYSQLND_MS_MASTER_SWITCH and MYSQLND_MS_LAST_USED_SWITCH instead of /*ms=slave*/. See also the list of mysqlnd_ms constants.

SQL hints are a special kind of standard compliant SQL comments. The plugin does check every statement for certain SQL hints. The SQL hints are described within the mysqlnd_ms constants documentation, constants that are exported by the extension. Other systems involved with the statement processing, such as the MySQL server, SQL firewalls, and SQL proxies, are unaffected by the SQL hints, because those systems are designed to ignore SQL comments.

The built-in read-write splitter can be replaced by a user-defined filter, see also the user filter documentation.

A user-defined read-write splitter can request the built-in logic to send a statement to a specific location, by invoking mysqlnd_ms_is_select().

Hinweis:

The built-in read-write splitter is not aware of multi-statements. Multi-statements are seen as one statement. The splitter will check the beginning of the statement to decide where to run the statement. If, for example, a multi-statement begins with SELECT 1 FROM DUAL; INSERT INTO test(id) VALUES (1); ... the plugin will run it on a slave although the statement is not read-only.


Filter

Hinweis: Version requirement

Filters exist as of mysqlnd_ms version 1.1.0-beta.

filters. PHP applications that implement a MySQL replication cluster must first identify a group of servers in the cluster which could execute a statement before the statement is executed by one of the candidates. In other words: a defined list of servers must be filtered until only one server is available.

The process of filtering may include using one or more filters, and filters can be chained. And they are executed in the order they are defined in the plugins configuration file.

Hinweis: Explanation: comparing filter chaining to pipes

The concept of chained filters can be compared to using pipes to connect command line utilities on an operating system command shell. For example, an input stream is passed to a processor, filtered, and then transferred to be output. Then, the output is passed as input to the next command, which is connected to the previous using the pipe operator.

Available filters:

  • Load balancing filters: random and roundrobin.
  • Selection filter: user, user_multi, quality_of_service.

The random filter implements the 'random' and 'random once' load balancing policies. The 'round robin' load balancing can be configured through the roundrobin filter. Setting a 'user defined callback' for server selection is possible with the user filter. The quality_of_service filter finds cluster nodes capable of delivering a certain service, for example, read-your-writes or, not lagging more seconds behind the master than allowed.

Filters can accept parameters to change their behavior. The random filter accepts an optional sticky parameter. If set to true, the filter changes load balancing from random to random once. Random picks a random server every time a statement is to be executed. Random once picks a random server when the first statement is to be executed and uses the same server for the rest of the PHP request.

One of the biggest strength of the filter concept is the possibility to chain filters. This strength does not become immediately visible because the random, roundrobin and user filters are supposed to output no more than one server. If a filter reduces the list of candidates for running a statement to only one server, it makes little sense to use that one server as input for another filter for further reduction of the list of candidates.

An example filter sequence that will fail:

  • Statement to be executed: SELECT 1 FROM DUAL. Passed to all filters.
  • All configured nodes are passed as input to the first filter. Master nodes: master_0. Slave nodes:slave_0, slave_1
  • Filter: random, argument sticky=1. Picks a random slave once to be used for the rest of the PHP request. Output: slave_0.
  • Output of slave_0 and the statement to be executed is passed as input to the next filter. Here: roundrobin, server list passed to filter is: slave_0.
  • Filter: roundrobin. Server list consists of one server only, round robin will always return the same server.
If trying to use such a filter sequence, the plugin may emit a warning like (mysqlnd_ms) Error while creating filter '%s' . Non-multi filter '%s' already created. Stopping in %s on line %d. Furthermore, an appropriate error on the connection handle may be set.

A second type of filter exists: multi filter. A multi filter emits zero, one or multiple servers after processing. The quality_of_service filter is an example. If the service quality requested sets an upper limit for the slave lag and more than one slave is lagging behind less than the allowed number of seconds, the filter returns more than one cluster node. A multi filter must be followed by other to further reduce the list of candidates for statement execution until a candidate is found.

A filter sequence with the quality_of_service multi filter followed by a load balancing filter.

  • Statement to be executed: SELECT sum(price) FROM orders WHERE order_id = 1. Passed to all filters.
  • All configured nodes are passed as input to the first filter. Master nodes: master_0. Slave nodes: slave_0, slave_1, slave_2, slave_3
  • Filter: quality_of_service, rule set: session_consistency (read-your-writes) Output: master_0
  • Output of master_0 and the statement to be executed is passed as input to the next filter, which is roundrobin.
  • Filter: roundrobin. Server list consists of one server. Round robin selects master_0.

A filter sequence must not end with a multi filter. If trying to use a filter sequence which ends with a multi filter the plugin may emit a warning like (mysqlnd_ms) Error in configuration. Last filter is multi filter. Needs to be non-multi one. Stopping in %s on line %d. Furthermore, an appropriate error on the connection handle may be set.

Hinweis: Speculation towards the future: MySQL replication filtering

In future versions, there may be additional multi filters. For example, there may be a table filter to support MySQL replication filtering. This would allow you to define rules for which database or table is to be replicated to which node of a replication cluster. Assume your replication cluster consists of four slaves (slave_0, slave_1, slave_2, slave_3) two of which replicate a database named sales (slave_0, slave_1). If the application queries the database slaves, the hypothetical table filter reduces the list of possible servers to slave_0 and slave_1. Because the output and list of candidates consists of more than one server, it is necessary and possible to add additional filters to the candidate list, for example, using a load balancing filter to identify a server for statement execution.


Service level and consistency

Hinweis: Version requirement

Service levels have been introduced in mysqlnd_ms version 1.2.0-alpha. mysqlnd_ms_set_qos() requires PHP 5.4.0 or newer.

The plugin can be used with different kinds of MySQL database clusters. Different clusters can deliver different levels of service to applications. The service levels can be grouped by the data consistency levels that can be achieved. The plugin knows about:

  • eventual consistency
  • session consistency
  • strong consistency

Depending how a cluster is used it may be possible to achieve higher service levels than the default one. For example, a read from an asynchronous MySQL replication slave is eventual consistent. Thus, one may say the default consistency level of a MySQL replication cluster is eventual consistency. However, if the master only is used by a client for reading and writing during a session, session consistency (read your writes) is given. PECL mysqlnd 1.2.0 abstracts the details of choosing an appropriate node for any of the above service levels from the user.

Service levels can be set through the qualify-of-service filter in the plugins configuration file and at runtime using the function mysqlnd_ms_set_qos().

The plugin defines the different service levels as follows.

Eventual consistency is the default service provided by an asynchronous cluster, such as classical MySQL replication. A read operation executed on an arbitrary node may or may not return stale data. The applications view of the data is eventual consistent.

Session consistency is given if a client can always read its own writes. An asynchronous MySQL replication cluster can deliver session consistency if clients always use the master after the first write or never query a slave which has not yet replicated the clients write operation.

The plugins understanding of strong consistency is that all clients always see the committed writes of all other clients. This is the default when using MySQL Cluster or any other cluster offering synchronous data distribution.

Service level parameters

Eventual consistency and session consistency service level accept parameters.

Eventual consistency is the service provided by classical MySQL replication. By default, all nodes qualify for read requests. An optional age parameter can be given to filter out nodes which lag more than a certain number of seconds behind the master. The plugin is using SHOW SLAVE STATUS to measure the lag. Please, see the MySQL reference manual to learn about accuracy and reliability of the SHOW SLAVE STATUS command.

Session consistency (read your writes) accepts an optional GTID parameter to consider reading not only from the master but also from slaves which already have replicated a certain write described by its transaction identifier. This way, when using asynchronous MySQL replication, read requests may be load balanced over slaves while still ensuring session consistency.

The latter requires the use of client-side global transaction id injection.

Advantages of the new approach

The new approach supersedes the use of SQL hints and the configuration option master_on_write in some respects. If an application running on top of an asynchronous MySQL replication cluster cannot accept stale data for certain reads, it is easier to tell the plugin to choose appropriate nodes than prefixing all read statements in question with the SQL hint to enforce the use of the master. Furthermore, the plugin may be able to use selected slaves for reading.

The master_on_write configuration option makes the plugin use the master after the first write (session consistency, read your writes). In some cases, session consistency may not be needed for the rest of the session but only for some, few read operations. Thus, master_on_write may result in more read load on the master than necessary. In those cases it is better to request a higher than default service level only for those reads that actually need it. Once the reads are done, the application can return to default service level. Switching between service levels is only possible using mysqlnd_ms_set_qos().

Performance considerations

A MySQL replication cluster cannot tell clients which slaves are capable of delivering which level of service. Thus, in some cases, clients need to query the slaves to check their status. PECL mysqlnd_ms transparently runs the necessary SQL in the background. However, this is an expensive and slow operation. SQL statements are run if eventual consistency is combined with an age (slave lag) limit and if session consistency is combined with a global transaction ID.

If eventual consistency is combined with an maximum age (slave lag), the plugin selects candidates for statement execution and load balancing for each statement as follows. If the statement is a write all masters are considered as candidates. Slaves are not checked and not considered as candidates. If the statement is a read, the plugin transparently executes SHOW SLAVE STATUS on every slaves connection. It will loop over all connections, send the statement and then start checking for results. Usually, this is slightly faster than a loop over all connections in which for every connection a query is send and the plugin waits for its results. A slave is considered a candidate if SHOW SLAVE STATUS reports Slave_IO_Running=Yes, Slave_SQL_Running=Yes and Seconds_Behind_Master is less or equal than the allowed maximum age. In case of an SQL error, the plugin emits a warning but does not set an error on the connection. The error is not set to make it possible to use the plugin as a drop-in.

If session consistency is combined with a global transaction ID, the plugin executes the SQL statement set with the fetch_last_gtid entry of the global_transaction_id_injection section from the plugins configuration file. Further details are identical to those described above.

In version 1.2.0 no additional optimizations are done for executing background queries. Future versions may contain optimizations, depending on user demand.

If no parameters and options are set, no SQL is needed. In that case, the plugin consider all nodes of the type shown below.

  • eventual consistency, no further options set: all masters, all slaves
  • session consistency, no further options set: all masters
  • strong consistency (no options allowed): all masters

Throttling

The quality of service filter can be combined with Global transaction IDs to throttle clients. Throttling does reduce the write load on the master by slowing down clients. If session consistency is requested and global transactions identifier are used to check the status of a slave, the check can be done in two ways. By default a slave is checked and skipped immediately if it does not match the criteria for session consistency. Alternatively, the plugin can wait for a slave to catch up to the master until session consistency is possible. To enable the throttling, you have to set wait_for_gtid_timeout configuration option.


Global transaction IDs

Hinweis: Version requirement

Client side global transaction ID injection exists as of mysqlnd_ms version 1.2.0-alpha. Transaction boundaries are detected by monitoring API calls. This is possible as of PHP 5.4.0. Please, see also Transaction handling.

As of MySQL 5.6.5-m8 the MySQL server features built-in global transaction identifiers. The MySQL built-in global transaction ID feature is supported by PECL/mysqlnd_ms 1.3.0-alpha or later. Neither are client-side transaction boundary monitoring nor any setup activities required if using the server feature.

Please note, all MySQL 5.6 production versions do not provide clients with enough information to use GTIDs for enforcing session consistency. In the worst case, the plugin will choose the master only.

Idea and client-side emulation

PECL/mysqlnd_ms can do client-side transparent global transaction ID injection. In its most basic form, a global transaction identifier is a counter which is incremented for every transaction executed on the master. The counter is held in a table on the master. Slaves replicate the counter table.

In case of a master failure a database administrator can easily identify the most recent slave for promoting it as a new master. The most recent slave has the highest transaction identifier.

Application developers can ask the plugin for the global transaction identifier (GTID) for their last successful write operation. The plugin will return an identifier that refers to an transaction no older than that of the clients last write operation. Then, the GTID can be passed as a parameter to the quality of service (QoS) filter as an option for session consistency. Session consistency ensures read your writes. The filter ensures that all reads are either directed to a master or a slave which has replicated the write referenced by the GTID.

When injection is done

The plugin transparently maintains the GTID table on the master. In autocommit mode the plugin injects an UPDATE statement before executing the users statement for every master use. In manual transaction mode, the injection is done before the application calls commit() to close a transaction. The configuration option report_error of the GTID section in the plugins configuration file is used to control whether a failed injection shall abort the current operation or be ignored silently (default).

Please note, the PHP version requirements for transaction boundary monitoring and their limits.

Limitations

Client-side global transaction ID injection has shortcomings. The potential issues are not specific to PECL/mysqlnd_ms but are rather of general nature.

  • Global transaction ID tables must be deployed on all masters and replicas.
  • The GTID can have holes. Only PHP clients using the plugin will maintain the table. Other clients will not.
  • Client-side transaction boundary detection is based on API calls only.
  • Client-side transaction boundary detection does not take implicit commit into account. Some MySQL SQL statements cause an implicit commit and cannot be rolled back.

Using server-side global transaction identifier

Starting with PECL/mysqlnd_ms 1.3.0-alpha the MySQL 5.6.5-m8 or newer built-in global transaction identifier feature is supported. Use of the server feature lifts all of the above listed limitations. Please, see the MySQL Reference Manual for limitations and preconditions for using server built-in global transaction identifiers.

Whether to use the client-side emulation or the server built-in functionality is a question not directly related to the plugin, thus it is not discussed in depth. There are no plans to remove the client-side emulation and you can continue to use it, if the server-side solution is no option. This may be the case in heterogenous environments with old MySQL server or, if any of the server-side solution limitations is not acceptable.

From an applications perspective there is hardly a difference in using one or the other approach. The following properties differ.

  • Client-side emulation, as shown in the manual, is using an easy to compare sequence number for global transactions. Multi-master is not handled to keep the manual examples easy. Server-side built-in feature is using a combination of a server identifier and a sequence number as a global transaction identifier. Comparison cannot use numeric algebra. Instead a SQL function must be used. Please, see the MySQL Reference Manual for details. Server-side built-in feature of MySQL 5.6 cannot be used to ensure session consistency under all circumstances. Do not use it for the quality-of-service feature. Here is a simple example why it will not give reliable results. There are more edge cases that cannot be covered with limited functionality exported by the server. Currently, clients can ask a MySQL replication master for a list of all executed global transaction IDs only. If a slave is configured not to replicate all transactions, for example, because replication filters are set, then the slave will never show the same set of executed global transaction IDs. Albeit the slave may have replicated a clients writes and it may be a candidate for a consistent read, it will never be considered by the plugin. Upon write the plugin learns from the master that the servers complete transaction history consists of GTID=1..3. There is no way for the plugin to ask for the GTID of the write transaction itself, say GTID=3. Assume that a slave does not replicate the transactions GTID=1..2 but only GTID=3 because of a replication feature. Then, the slaves transaction history is GTID=3. However, the plugin tries to find a node which has a transaction history of GITD=1...3. Albeit the slave has replicated the clients write and session consistency may be achieved when reading from the slave, it will not be considered by the plugin. This is not a fault of the plugin implementation but a feature gap on the server side. Please note, this is a trivial case to illustrate the issue there are other issues. In sum you are asked not to attempt using MySQL 5.6 built-in GTIDs for enforcing session consistency. Sooner or later the load balancing will stop working properly and the plugin will direct all session consistency requests to the master.
  • Plugin global transaction ID statistics are only available with client-side emulation because they monitor the emulation.

Hinweis: Global transaction identifiers in distributed systems

Global transaction identifiers can serve multiple purposes in the context of distributed systems, such as a database cluster. Global transaction identifiers can be used for, for example, system wide identification of transactions, global ordering of transactions, heartbeat mechanism and for checking the replication status of replicas. PECL/mysqlnd_ms, a clientside driver based software, does focus on using GTIDs for tasks that can be handled at the client, such as checking the replication status of replicas for asynchronous replication setups.


Cache integration

Hinweis: Version requirement

The feature requires use of PECL/mysqlnd_ms 1.3.0-beta or later, and PECL/mysqlnd_qc 1.1.0-alpha or newer. PECL/mysqlnd_ms must be compiled to support the feature. PHP 5.4.0 or newer is required.

Hinweis: Setup: extension load order

PECL/mysqlnd_ms must be loaded before PECL/mysqlnd_qc, when using shared extensions.

Hinweis: Feature stability

The cache integration is of beta quality.

Hinweis: Suitable MySQL clusters

The feature is targeted for use with MySQL Replication (primary copy). Currently, no other kinds of MySQL clusters are supported. Users of such cluster must control PECL/mysqlnd_qc manually if they are interested in client-side query caching.

Support for MySQL replication clusters (asynchronous primary copy) is the main focus of PECL/mysqlnd_ms. The slaves of a MySQL replication cluster may or may not reflect the latest updates from the master. Slaves are asynchronous and can lag behind the master. A read from a slave is eventual consistent from a cluster-wide perspective.

The same level of consistency is offered by a local cache using time-to-live (TTL) invalidation strategy. Current data or stale data may be served. Eventually, data searched for in the cache is not available and the source of the cache needs to be accessed.

Given that both a MySQL Replication slave (asynchronous secondary) and a local TTL-driven cache deliver the same level of service it is possible to transparently replace a remote database access with a local cache access to gain better possibility.

As of PECL/mysqlnd_ms 1.3.0-beta the plugin is capable of transparently controlling PECL/mysqlnd_ms 1.1.0-alpha or newer to cache a read-only query if explicitly allowed by setting an appropriate quality of service through mysqlnd_ms_set_qos(). P lease, see the quickstart for a code example. Both plugins must be installed, PECL/mysqlnd_ms must be compiled to support the cache feature and PHP 5.4.0 or newer has to be used.

Applications have full control of cache usage and can request fresh data at any time, if need be. The cache usage can be enabled and disabled time during the execution of a script. The cache will be used if mysqlnd_ms_set_qos() sets the quality of service to eventual consistency and enables cache usage. Cache usage is disabled by requesting higher consistency levels, for example, session consistency (read your writes). Once the quality of service has been relaxed to eventual consistency the cache can be used again.

If caching is enabled for a read-only statement, PECL/mysqlnd_ms may inject SQL hints to control caching by PECL/mysqlnd_qc. It may modify the SQL statement it got from the application. Subsequent SQL processors are supposed to ignore the SQL hints. A SQL hint is a SQL comment. Comments must not be ignored, for example, by the database server.

The TTL of a cache entry is computed on a per statement basis. Applications set an maximum age for the data they want to retrieve using mysqlnd_ms_set_qos(). The age sets an approximate upper limit of how many seconds the data returned may lag behind the master.

The following logic is used to compute the actual TTL if caching is enabled. The logic takes the estimated slave lag into account for choosing a TTL. If, for example, there are two slaves lagging 5 and 10 seconds behind and the maximum age allowed is 60 seconds, the TTL is set to 50 seconds. Please note, the age setting is no more than an estimated guess.

  • Check whether the statement is read-only. If not, don't cache.
  • If caching is enabled, check the slave lag of all configured slaves. Establish slave connections if none exist so far and lazy connections are used.
  • Send SHOW SLAVE STATUS to all slaves. Do not wait for the first slave to reply before sending to the second slave. Clients often wait long for replies, thus we send out all requests in a burst before fetching in a second stage.
  • Loop over all slaves. For every slave wait for its reply. Do not start checking another slave before the currently waited for slave has replied. Check for Slave_IO_Running=Yes and Slave_SQL_Running=Yes. If both conditions hold true, fetch the value of Seconds_Behind_Master. In case of any errors or if conditions fail, set an error on the slave connection. Skip any such slave connection for the rest of connection filtering.
  • Search for the maximum value of Seconds_Behind_Master from all slaves that passed the previous conditions. Subtract the value from the maximum age provided by the user with mysqlnd_ms_set_qos(). Use the result as a TTL.
  • The filtering may sort out all slaves. If so, the maximum age is used as TTL, because the maximum lag found equals zero. It is perfectly valid to sort out all slaves. In the following it is up to subsequent filter to decide what to do. The built-in load balancing filter will pick the master.
  • Inject the appropriate SQL hints to enable caching by PECL/mysqlnd_qc.
  • Proceed with the connection filtering, e.g. apply load balancing rules to pick a slave.
  • PECL/mysqlnd_qc is loaded after PECL/mysqlnd_ms by PHP. Thus, it will see all query modifications of PECL/mysqlnd_ms and cache the query if instructed to do so.

The algorithm may seem expensive. SHOW SLAVE STATUS is a very fast operation. Given a sufficient number of requests and cache hits per second the cost of checking the slaves lag can easily outweigh the costs of the cache decision.

Suggestions on a better algorithm are always welcome.


Supported clusters

Any application using any kind of MySQL cluster is faced with the same tasks:

  • Identify nodes capable of executing a given statement with the required service level
  • Load balance requests within the list of candidates
  • Automatic fail over within candidates, if needed

The plugin is optimized for fulfilling these tasks in the context of a classical asynchronous MySQL replication cluster consisting of a single master and many slaves (primary copy). When using classical, asynchronous MySQL replication all of the above listed tasks need to be mastered at the client side.

Other types of MySQL cluster may have lower requirements on the application side. For example, if all nodes in the cluster can answer read and write requests, no read-write splitting needs to be done (multi-master, update-all). If all nodes in the cluster are synchronous, they automatically provide the highest possible quality of service which makes choosing a node easier. In this case, the plugin may serve the application after some reconfiguration to disable certain features, such as built-in read-write splitting.

Hinweis: Documentation focus

The documentation focusses describing the use of the plugin with classical asynchronous MySQL replication clusters (primary copy). Support for this kind of cluster has been the original development goal. Use of other clusters is briefly described below. Please note, that this is still work in progress.

Primary copy (MySQL Replication)

This is the primary use case of the plugin. Follow the hints given in the descriptions of each feature.

  • Configure one master and one or more slaves. Server configuration details are given in the setup section.
  • Use random load balancing policy together with the sticky flag.
  • If you do not plan to use the service level API calls, add the master on write flag.
  • Please, make yourself aware of the properties of automatic failover before adding a failover directive.
  • Consider the use of trx_stickiness to execute transactions on the primary only. Please, read carefully how it works before you rely on it.

Beispiel #1 Enabling the plugin (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini

Beispiel #2 Basic plugin configuration (mysqlnd_ms_plugin.ini) for MySQL Replication

{
  "myapp": {
    "master": {
      "master_1": {
        "host": "localhost",
        "socket": "\/tmp\/mysql57.sock"
      }
    },
    "slave": {
      "slave_0": {
        "host": "127.0.0.1",
        "port": 3308
      },
      "slave_1": {
        "host": "192.168.2.28",
        "port": 3306
      }
    },
    "filters": {
      "random": {
        "sticky": "1"
      }
    }
  }
}

Primary copy with multi primaries (MMM - MySQL Multi Master)

MySQL Replication allows you to create cluster topologies with multiple masters (primaries). Write-write conflicts are not handled by the replication system. This is no update anywhere setup. Thus, data must be partitioned manually and clients must redirected in accordance to the partitioning rules. The recommended setup is equal to the sharding setup below.

Manual sharding, possibly combined with primary copy and multiple primaries

Use SQL hints and the node group filter for clusters that use data partitioning but leave query redirection to the client. The example configuration shows a multi master setup with two shards.

Beispiel #3 Multiple primaries - multi master (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini
mysqlnd_ms.multi_master=1

Beispiel #4 Primary copy with multiple primaries and paritioning

{
  "myapp": {
    "master": {
      "master_1": {
        "host": "localhost",
        "socket": "\/tmp\/mysql57.sock"
      }
      "master_2": {
        "host": "192.168.2.27",
        "socket": "3306"
      }
    },
    "slave": {
      "slave_1": {
        "host": "127.0.0.1",
        "port": 3308
      },
      "slave_2": {
        "host": "192.168.2.28",
        "port": 3306
      }
    },
    "filters": {
      "node_groups": {
        "Partition_A" : {
          "master": ["master_1"],
          "slave": ["slave_1"]
        },
        "Partition_B" : {
          "master": ["master_2"],
          "slave": ["slave_2"]
        }
      },
      "roundrobin": []
    }
  }
}

The plugin can also be used with a loose collection of unrelated shards. For such a cluster, configure masters only and disable read write splitting. The nodes of such a cluster are called masters in the plugin configuration as they accept both reads and writes for their partition.

Using synchronous update everywhere clusters such as MySQL Cluster

MySQL Cluster is a synchronous cluster solution. All cluster nodes accept read and write requests. In the context of the plugin, all nodes shall be considered as masters.

Use the load balancing and fail over features only.

  • Disable the plugins built-in read-write splitting.
  • Configure masters only.
  • Consider random once load balancing strategy, which is the plugins default. If random once is used, only masters are configured and no SQL hints are used to force using a certain node, no connection switches will happen for the duration of a web request. Thus, no special handling is required for transactions. The plugin will pick one master at the beginning of the PHP script and use it until the script terminates.
  • Do not set the quality of service. All nodes have all the data. This automatically gives you the highest possible service quality (strong consistency).
  • Do not enable client-side global transaction injection. It is neither required to help with server-side fail over nor to assist the quality of service filter choosing an appropriate node.

Disabling built-in read-write splitting.

  • Set mysqlnd_ms.disable_rw_split=1
  • Do not use SQL hints to enforce the use of slaves

Configure masters only.

  • Set mysqlnd_ms.multi_master=1.
  • Do not configure any slaves.
  • Set failover=loop_before_master in the plugins configuration file to avoid warnings about the empty slave list and to make the failover logic loop over all configured masters before emitting an error. Please, note the warnings about automatic failover given in the previous sections.

Beispiel #5 Multiple primaries - multi master (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini
mysqlnd_ms.multi_master=1
mysqlnd_ms.disable_rw_split=1

Beispiel #6 Synchronous update anywhere cluster

"myapp": {
    "master": {
      "master_1": {
        "host": "localhost",
        "socket": "\/tmp\/mysql57.sock"
      },
      "master_2": {
        "host": "192.168.2.28",
        "port": 3306
      }
    },
    "slave": {
    },
    "filters": {
      "roundrobin": {
      }
    },
    "failover": {
      "strategy": "loop_before_master",
      "remember_failed": true
    }
  }
}

If running an update everywhere cluster that has no built-in partitioning to avoid hot spots and high collision rates, consider using the node groups filter to keep updates on a frequently accessed table on one of the nodes. This may help to reduce collision rates and thus improve performance.


XA/Distributed transactions

Hinweis: Version requirement

XA related functions have been introduced in PECL/mysqlnd_ms version 1.6.0-alpha.

Hinweis: Early adaptors wanted

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments, although early lab tests indicate reasonable quality.

Please, contact the development team if you are interested in this feature. We are looking for real life feedback to complement the feature.

Below is a list of some feature restrictions.

  • The feature is not yet compatible with the MySQL Fabric support . This limitation is soon to be lifted.

    XA transaction identifier are currently restricted to numbers. This limitation will be lifted upon request, it is a simplification used during the initial implementation.

Hinweis: MySQL server restrictions

The XA support by the MySQL server has some restrictions. Most noteably, the servers binary log may lack changes made by XA transactions in case of certain errors. Please, see the MySQL manual for details.

XA/Distributed transactions can spawn multiple MySQL servers. Thus, they may seem like a perfect tool for sharded MySQL clusters, for example, clusters managed with MySQL Fabric. PECL/mysqlnd_ms hides most of the SQL commands to control XA transactions and performs automatic administrative tasks in cases of errors, to provide the user with a comprehensive API. Users should setup the plugin carefully and be well aware of server restrictions prior to using the feature.

Beispiel #1 General pattern for XA transactions

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");

/* BEGIN */
mysqlnd_ms_xa_begin($mysqli, 1 /* xa id */);

/* run queries on various servers */
$mysqli->query("UPDATE some_table SET col_a = 1");
...

/* COMMIT */
mysqlnd_ms_xa_commit($link, 1);
?>

XA transactions use the two-phase commit protocol. The two-phase commit protocol is a blocking protocol. During the first phase participating servers begin a transaction and the client carries out its work. This phase is followed by a second voting phase. During voting, the servers first make a firm promise that they are ready to commit the work even in case of their possible unexpected failure. Should a server crash in this phase, it will still recall the aborted transaction after recover and wait for the client to decide on whether it shall be committed or rolled back.

Should a client that has initiated a global transaction crash after all the participating servers gave their promise to be ready to commit, then the servers must wait for a decision. The servers are not allowed to unilaterally decide on the transaction.

A client crash or disconnect from a participant, a server crash or server error during the fist phase of the protocol is uncritical. In most cases, the server will forget about the XA transaction and its work is rolled back. Additionally, the plugin tries to reach out to as many participants as it can to instruct the server to roll back the work immediately. It is not possible to disable this implicit rollback carried out by PECL/mysqlnd_ms in case of errors during the first phase of the protocol. This design decision has been made to keep the implementation simple.

An error during the second phase of the commit protocol can develop into a more severe situation. The servers will not forget about prepared but unfinished transactions in all cases. The plugin will not attempt to solve these cases immediately but waits for optional background garbage collection to ensure progress of the commit protocol. It is assumed that a solution will take significant time as it may include waiting for a participating server to recover from a crash. This time span may be longer than a developer and end user expects when trying to commit a global transaction with mysqlnd_ms_xa_commit(). Thus, the function returns with the unfinished global transaction still requiring attention. Please, be warned that at this point, it is not yet clear whether the global transaction will be committed or rolled back later on.

Errors during the second phase can be ignored, handled by yourself or solved by the build-int garbage collection logic. Ignoring them is not recommended as you may experience unfinished global transactions on your servers that block resources virtually indefinitely. Handling the errors requires knowing the participants, checking their state and issuing appropriate SQL commands on them. There are no user API calls to expose this very information. You will have to configure a state store and make the plugin record its actions in it to receive the desired facts.

Please, see the quickstart and related plugin configuration file settings for an example how to configure a state. In addition to configuring a state store, you have to setup some SQL tables. The table definitions are given in the description of the plugin configuration settings.

Setting up and configuring a state store is also a precondition for using the built-in garbage collection for XA transactions that fail during the second commit phase. Recording information about ongoing XA transactions is an unavoidable extra task. The extra task consists of updating the state store after each and every operation that changes the state of the global transaction itself (started, committed, rolled back, errors and aborts), the addition of participants (host, optionally user and password required to connect) and any changes to a participants state. Please note, depending on configuration and your security policies, these recordings may be considered sensitive. It is therefore recommended to restrict access to the state store. Unless the state store itself becomes overloaded, writing the state information may contribute noteworthy to the runtime but should overall be only a minor factor.

It is possible that the effort it takes to implement your own routines for handling XA transactions that failed during the second commit phase exceeds the benefits of using the XA feature of PECL/mysqlnd_ms in the first place. Thus, the manual focussed on using the built-on garbage collection only.

Garbage collection can be triggered manually or automatically in the background. You may want to call mysqlnd_ms_xa_gc() immediately after a commit failure to attempt to solve any failed but still open global transactions as soon as possible. You may also decide to disable the automatic background garbage collection, implement your own rule set for invoking the built-in garbage collection and trigger it when desired.

By default the plugin will start the garbage collection with a certain probability in the extensions internal RSHUTDOWN method. The request shutdown is called after your script finished. Whether the garbage collection will be triggered is determined by computing a random value between 1...1000 and comparing it with the configuration setting probability (default: 5). If the setting is greater or equal to the random value, the garbage collection will be triggered.

Once started, the garbage collection acts upon up to max_transactions_per_run (default: 100) global transactions recorded. Records include successfully finished but also unfinished XA transactions. Records for successful transactions are removed and unfinished transactions are attempted to be solved. There are no statistics that help you finding the right balance between keeping garbage collection runs short by limiting the number of transactions considered per run and preventing the garbage collection to fall behind, resulting in many records.

For each failed XA transaction the garbage collection makes max_retries (default: 5) attempts to finish it. After that PECL/mysqlnd_ms gives up. There are two possible reasons for this. Either a participating server crashed and has not become accessible again within max_retries invocations of the garbage collection, or there is a situation that the built-in garbage collection cannot cope with. Likely, the latter would be considered a bug. However, you can manually force more garbage collection runs calling mysqlnd_ms_xa_gc() with the appropriate parameter set. Should even those function runs fail to solve the situation, then the problem must be solved by an operator.

The function mysqlnd_ms_get_stats() provides some statistics on how many XA transactions have been started, committed, failed or rolled back.


Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation
  • Laufzeit-Konfiguration
  • Plugin configuration file (>=1.1.x)


Anforderungen

PHP 5.3.6 or newer. Some advanced functionality requires PHP 5.4.0 or newer.

The mysqlnd_ms replication and load balancing plugin supports all PHP applications and all available PHP MySQL extensions (mysqli, mysql, PDO_MYSQL). The PHP MySQL extension must be configured to use mysqlnd in order to be able to use the mysqlnd_ms plugin for mysqlnd.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/mysqlnd_ms

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Mysqlnd_ms Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
mysqlnd_ms.enable | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.force_config_usage | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.ini_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.config_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.collect_statistics | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.multi_master | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.disable_rw_split | 0 | PHP_INI_SYSTEM |

Hier eine kurze Erklärung der Konfigurationsoptionen:

mysqlnd_ms.enable int

Enables or disables the plugin. If disabled, the extension will not plug into mysqlnd to proxy internal mysqlnd C API calls.

mysqlnd_ms.force_config_usage int

If enabled, the plugin checks if the host (server) parameters value of any MySQL connection attempt, matches a section name from the plugin configuration file. If not, the connection attempt is blocked.

This setting is not only useful to restrict PHP to certain servers but also to debug configuration file problems. The configuration file validity is checked at two different stages. The first check is performed when PHP begins to handle a web request. At this point the plugin reads and decodes the configuration file. Errors thrown at this early stage in an extensions life cycle may not be shown properly to the user. Thus, the plugin buffers the errors, if any, and additionally displays them when establishing a connection to MySQL. By default a buffered startup error will emit an error of type E_WARNING. If force_config_usage is set, the error type used is E_RECOVERABLE_ERROR.

Please, see also configuration file debugging notes.

mysqlnd_ms.ini_file string

Plugin specific configuration file. This setting has been renamed to mysqlnd_ms.config_file in version 1.4.0.

mysqlnd_ms.config_file string

Plugin specific configuration file. This setting superseeds mysqlnd_ms.ini_file since 1.4.0.

mysqlnd_ms.collect_statistics int

Enables or disables the collection of statistics. The collection of statistics is disabled by default for performance reasons. Statistics are returned by the function mysqlnd_ms_get_stats().

mysqlnd_ms.multi_master int

Enables or disables support of MySQL multi master replication setups. Please, see also supported clusters.

mysqlnd_ms.disable_rw_split int

Enables or disables built-in read write splitting.

Controls whether load balancing and lazy connection functionality can be used independently of read write splitting. If read write splitting is disabled, only servers from the master list will be used for statement execution. All configured slave servers will be ignored.

The SQL hint MYSQLND_MS_USE_SLAVE will not be recognized. If found, the statement will be redirected to a master.

Disabling read write splitting impacts the return value of mysqlnd_ms_query_is_select(). The function will no longer propose query execution on slave servers.

Hinweis: Multiple master servers

Setting mysqlnd_ms.multi_master=1 allows the plugin to use multiple master servers, instead of only the first master server of the master list.

Please, see also supported clusters.


Plugin configuration file (>=1.1.x)

The following documentation applies to PECL/mysqlnd_ms >= 1.1.0-beta. It is not valid for prior versions. For documentation covering earlier versions, see the configuration documentation for mysqlnd_ms 1.0.x and below.

Introduction

Hinweis: Changelog: Feature was added in PECL/mysqlnd_ms 1.1.0-beta

The below description applies to PECL/mysqlnd_ms >= 1.1.0-beta. It is not valid for prior versions.

The plugin uses its own configuration file. The configuration file holds information about the MySQL replication master server, the MySQL replication slave servers, the server pick (load balancing) policy, the failover strategy, and the use of lazy connections.

The plugin loads its configuration file at the beginning of a web request. It is then cached in memory and used for the duration of the web request. This way, there is no need to restart PHP after deploying the configuration file. Configuration file changes will become active almost instantly.

The PHP configuration directive mysqlnd_ms.config_file is used to set the plugins configuration file. Please note, that the PHP configuration directive may not be evaluated for every web request. Therefore, changing the plugins configuration file name or location may require a PHP restart. However, no restart is required to read changes if an already existing plugin configuration file is updated.

Using and parsing JSON is efficient, and using JSON makes it easier to express hierarchical data structures than the standard php.ini format.

Beispiel #1 Converting a PHP array (hash) into JSON format

Or alternatively, a developer may be more familiar with the PHP array syntax, and prefer it. This example demonstrates how a developer might convert a PHP array to JSON.

<?php
$config = array(
  "myapp" => array(
    "master" => array(
      "master_0" => array(
        "host"   => "localhost",
        "socket" => "/tmp/mysql.sock",
      ),
    ),
    "slave" => array(),
  ),
);

file_put_contents("mysqlnd_ms.ini", json_encode($config, JSON_PRETTY_PRINT));
printf("mysqlnd_ms.ini file created...\n");
printf("Dumping file contents...\n");
printf("%s\n", str_repeat("-", 80));
echo file_get_contents("mysqlnd_ms.ini");
printf("\n%s\n", str_repeat("-", 80));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

mysqlnd_ms.ini file created...
Dumping file contents...
--------------------------------------------------------------------------------
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": [

        ]
    }
}
--------------------------------------------------------------------------------

A plugin configuration file consists of one or more sections. Sections are represented by the top-level object properties of the object encoded in the JSON file. Sections could also be called configuration names.

Applications reference sections by their name. Applications use section names as the host (server) parameter to the various connect methods of the mysqli, mysql and PDO_MYSQL extensions. Upon connect, the mysqlnd plugin compares the hostname with all of the section names from the plugin configuration file. If the hostname and section name match, then the plugin will load the settings for that section.

Beispiel #2 Using section names example

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27"
            },
            "slave_1": {
                "host": "192.168.2.27",
                "port": 3306
            }
        }
    },
    "localhost": {
        "master": [
            {
                "host": "localhost",
                "socket": "\/path\/to\/mysql.sock"
            }
        ],
        "slave": [
            {
                "host": "192.168.3.24",
                "port": "3305"
            },
            {
                "host": "192.168.3.65",
                "port": "3309"
            }
        ]
    }
}
<?php
/* All of the following connections will be load balanced */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");

$mysqli = new mysqli("localhost", "username", "password", "database");
?>

Section names are strings. It is valid to use a section name such as 192.168.2.1, 127.0.0.1 or localhost. If, for example, an application connects to localhost and a plugin configuration section localhost exists, the semantics of the connect operation are changed. The application will no longer only use the MySQL server running on the host localhost, but the plugin will start to load balance MySQL queries following the rules from the localhost configuration section. This way you can load balance queries from an application without changing the applications source code. Please keep in mind, that such a configuration may not contribute to overall readability of your applications source code. Using section names that can be mixed up with host names should be seen as a last resort.

Each configuration section contains, at a minimum, a list of master servers and a list of slave servers. The master list is configured with the keyword master, while the slave list is configured with the slave keyword. Failing to provide a slave list will result in a fatal E_ERROR level error, although a slave list may be empty. It is possible to allow no slaves. However, this is only recommended with synchronous clusters, please see also supported clusters. The main part of the documentation focusses on the use of asynchronous MySQL replication clusters.

The master and slave server lists can be optionally indexed by symbolic names for the servers they describe. Alternatively, an array of descriptions for slave and master servers may be used.

Beispiel #3 List of anonymous slaves

"slave": [
    {
        "host": "192.168.3.24",
        "port": "3305"
    },
    {
        "host": "192.168.3.65",
        "port": "3309"
    }
]

An anonymous server list is encoded by the JSON array type. Optionally, symbolic names may be used for indexing the slave or master servers of a server list, and done so using the JSON object type.

Beispiel #4 Master list using symbolic names

"master": {
    "master_0": {
        "host": "localhost"
    }
}

It is recommended to index the server lists with symbolic server names. The alias names will be shown in error messages.

The order of servers is preserved and taken into account by mysqlnd_ms. If, for example, you configure round robin load balancing strategy, the first SELECT statement will be executed on the slave that appears first in the slave server list.

A configured server can be described with the host, port, socket, db, user, password and connect_flags. It is mandatory to set the database server host using the host keyword. All other settings are optional.

Beispiel #5 Keywords to configure a server

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "db_server_host",
                "port": "db_server_port",
                "socket": "db_server_socket",
                "db": "database_resp_schema",
                "user": "user",
                "password": "password",
                "connect_flags": 0
            }
        },
        "slave": {
            "slave_0": {
                "host": "db_server_host",
                "port": "db_server_port",
                "socket": "db_server_socket"
            }
        }
    }
}

If a setting is omitted, the plugin will use the value provided by the user API call used to open a connection. Please, see the using section names example above.

The configuration file format has been changed in version 1.1.0-beta to allow for chained filters. Filters are responsible for filtering the configured list of servers to identify a server for execution of a given statement. Filters are configured with the filter keyword. Filters are executed by mysqlnd_ms in the order of their appearance. Defining filters is optional. A configuration section in the plugins configuration file does not need to have a filters entry.

Filters replace the pick[] setting from prior versions. The new random and roundrobin provide the same functionality.

Beispiel #6 New roundrobin filter, old functionality

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.137",
                "port": "3306"
            }
        },
        "filters": {
            "roundrobin": [

            ]
        }
    }
}

The function mysqlnd_ms_set_user_pick_server() has been removed. Setting a callback is now done with the user filter. Some filters accept parameters. The user filter requires and accepts a mandatory callback parameter to set the callback previously set through the function mysqlnd_ms_set_user_pick_server().

Beispiel #7 The user filter replaces mysqlnd_ms_set_user_pick_server()

"filters": {
    "user": {
        "callback": "pick_server"
    }
}

The validity of the configuration file is checked both when reading the configuration file and later when establishing a connection. The configuration file is read during PHP request startup. At this early stage a PHP extension may not display error messages properly. In the worst case, no error is shown and a connection attempt fails without an adequate error message. This problem has been cured in version 1.5.0.

Beispiel #8 Common error message in case of configuration file issues (upto version 1.5.0)

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Warning: mysqli::mysqli(): (mysqlnd_ms) (mysqlnd_ms) Failed to parse config file [s1.json]. Please, verify the JSON in Command line code

Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in Command line code on line 1

Warning: mysqli::query(): Couldn't fetch mysqli in Command line code on line 1

Fatal error: Call to a member function fetch_assoc() on a non-object in Command line code on line 1

Since version 1.5.0 startup errors are additionally buffered and emitted when a connection attempt is made. Use the configuration directive mysqlnd_ms.force_config_usage to set the error type used to display buffered errors. By default an error of type E_WARNING will be emitted.

Beispiel #9 Improved configuration file validation since 1.5.0

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Warning: mysqli::mysqli(): (mysqlnd_ms) (mysqlnd_ms) Failed to parse config file [s1.json]. Please, verify the JSON in Command line code on line 1

It can be useful to set mysqlnd_ms.force_config_usage = 1 when debugging potential configuration file errors. This will not only turn the type of buffered startup errors into E_RECOVERABLE_ERROR but also help detecting misspelled section names.

Beispiel #10 Possibly more precise error due to mysqlnd_ms.force_config_usage=1

mysqlnd_ms.force_config_usage=1
<?php
$mysqli = new mysqli("invalid_section", "username", "password", "database");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Warning: mysqli::mysqli(): (mysqlnd_ms) Exclusive usage of configuration enforced but did not find the correct INI file section (invalid_section) in Command line code on line 1 line 1

Configuration Directives

Here is a short explanation of the configuration directives that can be used.

master array or object

List of MySQL replication master servers. The list of either of the JSON type array to declare an anonymous list of servers or of the JSON type object. Please, see above for examples.

Setting at least one master server is mandatory. The plugin will issue an error of type E_ERROR if the user has failed to provide a master server list for a configuration section. The fatal error may read (mysqlnd_ms) Section [master] doesn't exist for host [name_of_a_config_section] in %s on line %d.

A server is described with the host, port, socket, db, user, password and connect_flags. It is mandatory to provide at a value for host. If any of the other values is not given, it will be taken from the user API connect call, please, see also: using section names example.

Table of server configuration keywords.

Keyword Description Version
host

Database server host. This is a mandatory setting. Failing to provide, will cause an error of type E_RECOVERABLE_ERROR when the plugin tries to connect to the server. The error message may read (mysqlnd_ms) Cannot find [host] in [%s] section in config in %s on line %d.

Since 1.1.0.
port

Database server TCP/IP port.

Since 1.1.0.
socket

Database server Unix domain socket.

Since 1.1.0.
db

Database (schemata).

Since 1.1.0.
user

MySQL database user.

Since 1.1.0.
password

MySQL database user password.

Since 1.1.0.
connect_flags

Connection flags.

Since 1.1.0.

The plugin supports using only one master server. An experimental setting exists to enable multi-master support. The details are not documented. The setting is meant for development only.

slave array or object

List of one or more MySQL replication slave servers. The syntax is identical to setting master servers, please, see master above for details.

The plugin supports using one or more slave servers.

Setting a list of slave servers is mandatory. The plugin will report an error of the type E_ERROR if slave is not given for a configuration section. The fatal error message may read (mysqlnd_ms) Section [slave] doesn't exist for host [%s] in %s on line %d. Note, that it is valid to use an empty slave server list. The error has been introduced to prevent accidentally setting no slaves by forgetting about the slave setting. A master-only setup is still possible using an empty slave server list.

If an empty slave list is configured and an attempt is made to execute a statement on a slave the plugin may emit a warning like mysqlnd_ms) Couldn't find the appropriate slave connection. 0 slaves to choose from. upon statement execution. It is possible that another warning follows such as (mysqlnd_ms) No connection selected by the last filter.

global_transaction_id_injection array or object

Global transaction identifier configuration related to both the use of the server built-in global transaction ID feature and the client-side emulation.

Keyword Description Version
fetch_last_gtid

SQL statement for accessing the latest global transaction identifier. The SQL statement is run if the plugin needs to know the most recent global transaction identifier. This can be the case, for example, when checking MySQL Replication slave status. Also used with mysqlnd_ms_get_last_gtid().

Since 1.2.0.
check_for_gtid

SQL statement for checking if a replica has replicated all transactions up to and including ones searched for. The SQL statement is run when searching for replicas which can offer a higher level of consistency than eventual consistency. The statement must contain a placeholder #GTID which is to be replaced with the global transaction identifier searched for by the plugin. Please, check the quickstart for examples.

Since 1.2.0.
report_errors

Whether to emit an error of type warning if an issue occurs while executing any of the configured SQL statements.

Since 1.2.0.
on_commit

Client-side global transaction ID emulation only. SQL statement to run when a transaction finished to update the global transaction identifier sequence number on the master. Please, see the quickstart for examples.

Since 1.2.0.
wait_for_gtid_timeout

Instructs the plugin to wait up to wait_for_gtid_timeout seconds for a slave to catch up when searching for slaves that can deliver session consistency. The setting limits the time spend for polling the slave status. If polling the status takes very long, the total clock time spend waiting may exceed wait_for_gtid_timeout. The plugin calls sleep(1) to sleep one second between each two polls.

The setting can be used both with the plugins client-side emulation and the server-side global transaction identifier feature of MySQL 5.6.

Waiting for a slave to replicate a certain GTID needed for session consistency also means throttling the client. By throttling the client the write load on the master is reduced indirectly. A primary copy based replication system, such as MySQL Replication, is given more time to reach a consistent state. This can be desired, for example, to increase the number of data copies for high availability considerations or to prevent the master from being overloaded.

Since 1.4.0.
fabric object

MySQL Fabric related settings. If the plugin is used together with MySQL Fabric, then the plugins configuration file no longer contains lists of MySQL servers. Instead, the plugin will ask MySQL Fabric which list of servers to use to perform a certain task.

A minimum plugin configuration for use with MySQL Fabric contains a list of one or more MySQL Fabric hosts that the plugin can query. If more than one MySQL Fabric host is configured, the plugin will use a roundrobin strategy to choose among them. Other strategies are currently not available.

Beispiel #11 Minimum pluging configuration for use with MySQL Fabric

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ]
        }
    }
}

Each MySQL Fabric host is described using a JSON object with the following members.

Keyword Description Version
host

Host name of the MySQL Fabric host.

Since 1.6.0.
port

The TCP/IP port on which the MySQL Fabric host listens for remote procedure calls sent by clients such as the plugin.

Since 1.6.0.

The plugin is using PHP streams to communicate with MySQL Fabric through XML RPC over HTTP. By default no timeouts are set for the network communication. Thus, the plugin defaults to PHP stream default timeouts. Those defaults are out of control of the plugin itself.

An optional timeout value can be set to overrule the PHP streams default timeout setting. Setting the timeout in the plugins configuration file has the same effect as setting a timeout for a PHP user space HTTP connection established through PHP streams.

The plugins Fabric timeout value unit is seconds. The allowed value range is from 0 to 65535. The setting exists since version 1.6.

Beispiel #12 Optional timeout for communication with Fabric

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ],
            "timeout": 2
        }
    }
}

Transaction stickiness and MySQL Fabric logic can collide. The stickiness option disables switching between servers for the duration of a transaction. When using Fabric and sharding the user may (erroneously) start a local transaction on one share and then attempt to switch to a different shard using either mysqlnd_ms_fabric_select_shard() or mysqlnd_ms_fabric_select_global(). In this case, the plugin will not reject the request to switch servers in the middle of a transaction but allow the user to switch to another server regardless of the transaction stickiness setting used. It is clearly a user error to write such code.

If transaction stickiness is enabled and you would like to get an error of type warning when calling mysqlnd_ms_fabric_select_shard() or mysqlnd_ms_fabric_select_global(), set the boolean flag trx_warn_server_list_changes.

Beispiel #13 Warnings about the violation of transaction boundaries

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ],
            "trx_warn_serverlist_changes": 1
        },
        "trx_stickiness": "on"
    }
}
<?php
$link = new mysqli("myapp", "root", "", "test");
/*
  For the demo the call may fail.
  Failed or not we get into the state
  needed for the example.
*/
@mysqlnd_ms_fabric_select_global($link, 1);
$link->begin_transaction();
@$link->query("DROP TABLE IF EXISTS test");
/*
  Switching servers/shards is a mistake due to open
  local transaction!
*/
mysqlnd_ms_select_global($link, 1);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

PHP Warning: mysqlnd_ms_fabric_select_global(): (mysqlnd_ms) Fabric server exchange in the middle of a transaction in %s on line %d

Please, consider the feature experimental. Changes to syntax and semantics may happen.

filters object

List of filters. A filter is responsible to filter the list of available servers for executing a given statement. Filters can be chained. The random and roundrobin filter replace the pick[] directive used in prior version to select a load balancing policy. The user filter replaces the mysqlnd_ms_set_user_pick_server() function.

Filters may accept parameters to refine their actions.

If no load balancing policy is set, the plugin will default to random_once. The random_once policy picks a random slave server when running the first read-only statement. The slave server will be used for all read-only statements until the PHP script execution ends. No load balancing policy is set and thus, defaulting takes place, if neither the random nor the roundrobin are part of a configuration section.

If a filter chain is configured so that a filter which output no more than once server is used as input for a filter which should be given more than one server as input, the plugin may emit a warning upon opening a connection. The warning may read: (mysqlnd_ms) Error while creating filter '%s' . Non-multi filter '%s' already created. Stopping in %s on line %d. Furthermore, an error of the error code 2000, the sql state HY000 and an error message similar to the warning may be set on the connection handle.

Beispiel #14 Invalid filter sequence

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": [
            "roundrobin",
            "random"
        ]
    }
}
<?php
$link = new mysqli("myapp", "root", "", "test");
printf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
$link->query("SELECT 1 FROM DUAL");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

PHP Warning:  mysqli::mysqli(): (HY000/2000): (mysqlnd_ms) Error while creating filter 'random' . Non-multi filter 'roundrobin' already created. Stopping in filter_warning.php on line 1
[2000] (mysqlnd_ms) Error while creating filter 'random' . Non-multi filter 'roundrobin' already created. Stopping
PHP Warning:  mysqli::query(): Couldn't fetch mysqli in filter_warning.php on line 3

Filter: random object

The random filter features the random and random once load balancing policies, set through the pick[] directive in older versions.

The random policy will pick a random server whenever a read-only statement is to be executed. The random once strategy picks a random slave server once and continues using the slave for the rest of the PHP web request. Random once is a default, if load balancing is not configured through a filter.

If the random filter is not given any arguments, it stands for random load balancing policy.

Beispiel #15 Random load balancing with random filter

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.137",
                "port": "3306"
            }
        },
        "filters": [
            "random"
        ]
    }
}

Optionally, the sticky argument can be passed to the filter. If the parameter sticky is set to the string 1, the filter follows the random once load balancing strategy.

Beispiel #16 Random once load balancing with random filter

{
    "filters": {
        "random": {
            "sticky": "1"
        }
    }
}

Both the random and roundrobin filters support setting a priority, a weight for a server, since PECL/mysqlnd_ms 1.4.0. If the weight argument is passed to the filter, it must assign a weight for all servers. Servers must be given an alias name in the slave respectively master server lists. The alias must be used to reference servers for assigning a priority with weight.

Beispiel #17 Referencing error

[E_RECOVERABLE_ERROR] mysqli_real_connect(): (mysqlnd_ms) Unknown server 'slave3' in 'random' filter configuration. Stopping in %s on line %d

Using a wrong alias name with weight may result in an error similar to the shown above.

If weight is omitted, the default weight of all servers is one.

Beispiel #18 Assigning a weight for load balancing

{
   "myapp": {
       "master": {
           "master1":{
               "host":"localhost",
               "socket":"\/var\/run\/mysql\/mysql.sock"
           }
       },
       "slave": {
           "slave1": {
               "host":"192.168.2.28",
               "port":3306
           },
           "slave2": {
               "host":"192.168.2.29",
               "port":3306
           },
           "slave3": {
               "host":"192.0.43.10",
               "port":3306
           },
       },
       "filters": {
           "random": {
               "weights": {
                   "slave1":8,
                   "slave2":4,
                   "slave3":1,
                   "master1":1
               }
           }
       }
   }
}

At the average a server assigned a weight of two will be selected twice as often as a server assigned a weight of one. Different weights can be assigned to reflect differently sized machines, to prefer co-located slaves which have a low network latency or, to configure a standby failover server. In the latter case, you may want to assign the standby server a very low weight in relation to the other servers. For example, given the configuration above slave3 will get only some eight percent of the requests in the average. As long as slave1 and slave2 are running, it will be used sparsely, similar to a standby failover server. Upon failure of slave1 and slave2, the usage of slave3 increases. Please, check the notes on failover before using weight this way.

Valid weight values range from 1 to 65535.

Unknown arguments are ignored by the filter. No warning or error is given.

The filter expects one or more servers as input. Outputs one server. A filter sequence such as random, roundrobin may cause a warning and an error message to be set on the connection handle when executing a statement.

List of filter arguments.

Keyword Description Version
sticky

Enables or disabled random once load balancing policy. See above.

Since 1.2.0.
weight

Assigns a load balancing weight/priority to a server. Please, see above for a description.

Since 1.4.0.
Filter: roundrobin object

If using the roundrobin filter, the plugin iterates over the list of configured slave servers to pick a server for statement execution. If the plugin reaches the end of the list, it wraps around to the beginning of the list and picks the first configured slave server.

Beispiel #19 roundrobin filter

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": [
            "roundrobin"
        ]
    }
}

Expects one or more servers as input. Outputs one server. A filter sequence such as roundrobin, random may cause a warning and an error message to be set on the connection handle when executing a statement.

List of filter arguments.

Keyword Description Version
weight

Assigns a load balancing weight/priority to a server. Please, find a description above.

Since 1.4.0.
Filter: user object

The user replaces mysqlnd_ms_set_user_pick_server() function, which was removed in 1.1.0-beta. The filter sets a callback for user-defined read/write splitting and server selection.

The plugins built-in read/write query split mechanism decisions can be overwritten in two ways. The easiest way is to prepend a query string with the SQL hints MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH or MYSQLND_MS_LAST_USED_SWITCH. Using SQL hints one can control, for example, whether a query shall be send to the MySQL replication master server or one of the slave servers. By help of SQL hints it is not possible to pick a certain slave server for query execution.

Full control on server selection can be gained using a callback function. Use of a callback is recommended to expert users only because the callback has to cover all cases otherwise handled by the plugin.

The plugin will invoke the callback function for selecting a server from the lists of configured master and slave servers. The callback function inspects the query to run and picks a server for query execution by returning the hosts URI, as found in the master and slave list.

If the lazy connections are enabled and the callback chooses a slave server for which no connection has been established so far and establishing the connection to the slave fails, the plugin will return an error upon the next action on the failed connection, for example, when running a query. It is the responsibility of the application developer to handle the error. For example, the application can re-run the query to trigger a new server selection and callback invocation. If so, the callback must make sure to select a different slave, or check slave availability, before returning to the plugin to prevent an endless loop.

Beispiel #20 Setting a callback

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": {
            "user": {
                "callback": "pick_server"
            }
        }
    }
}

The callback is supposed to return a host to run the query on. The host URI is to be taken from the master and slave connection lists passed to the callback function. If callback returns a value neither found in the master nor in the slave connection lists the plugin will emit an error of the type E_RECOVERABLE_ERROR The error may read like (mysqlnd_ms) User filter callback has returned an unknown server. The server 'server that is not in master or slave list' can neither be found in the master list nor in the slave list. If the application catches the error to ignore it, follow up errors may be set on the connection handle, for example, (mysqlnd_ms) No connection selected by the last filter with the error code 2000 and the sqlstate HY000. Furthermore a warning may be emitted.

Referencing a non-existing function as a callback will result in any error of the type E_RECOVERABLE_ERROR whenever the plugin tries to callback function. The error message may reads like: (mysqlnd_ms) Specified callback (pick_server) is not a valid callback. If the application catches the error to ignore it, follow up errors may be set on the connection handle, for example, (mysqlnd_ms) Specified callback (pick_server) is not a valid callback with the error code 2000 and the sqlstate HY000. Furthermore a warning may be emitted.

The following parameters are passed from the plugin to the callback.

Parameter Description Version
connected_host

URI of the currently connected database server.

Since 1.1.0.
query

Query string of the statement for which a server needs to be picked.

Since 1.1.0.
masters

List of master servers to choose from. Note, that the list of master servers may not be identical to the list of configured master servers if the filter is not the first in the filter chain. Previously run filters may have reduced the master list already.

Since 1.1.0.
slaves

List of slave servers to choose from. Note, that the list of slave servers may not be identical to the list of configured slave servers if the filter is not the first in the filter chain. Previously run filters may have reduced the slave list already.

Since 1.1.0.
last_used_connection

URI of the server of the connection used to execute the previous statement on.

Since 1.1.0.
in_transaction

Boolean flag indicating whether the statement is part of an open transaction. If autocommit mode is turned off, this will be set to true. Otherwise it is set to false.

Transaction detection is based on monitoring the mysqlnd library call set_autocommit. Monitoring is not possible before PHP 5.4.0. Please, see connection pooling and switching concepts discussion for further details.

Since 1.1.0.

Beispiel #21 Using a callback

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": {
            "user": {
                "callback": "pick_server"
            }
        }
    }
}
<?php
function pick_server($connected, $query, $masters, $slaves, $last_used_connection, $in_transaction)
{
 static $slave_idx = 0;
 static $num_slaves = NULL;
 if (is_null($num_slaves))
  $num_slaves = count($slaves);

 /* default: fallback to the plugins build-in logic */
 $ret = NULL;

 printf("User has connected to '%s'...\n", $connected);
 printf("... deciding where to run '%s'\n", $query);

 $where = mysqlnd_ms_query_is_select($query);
 switch ($where)
 {
  case MYSQLND_MS_QUERY_USE_MASTER:
   printf("... using master\n");
   $ret = $masters[0];
   break;
  case MYSQLND_MS_QUERY_USE_SLAVE:
   /* SELECT or SQL hint for using slave */
   if (stristr($query, "FROM table_on_slave_a_only"))
   {
    /* a table which is only on the first configured slave  */
    printf("... access to table available only on slave A detected\n");
    $ret = $slaves[0];
   }
   else
   {
    /* round robin */
    printf("... some read-only query for a slave\n");
    $ret = $slaves[$slave_idx++ % $num_slaves];
   }
   break;
  case MYSQLND_MS_QUERY_LAST_USED:
   printf("... using last used server\n");
   $ret = $last_used_connection;
   break;
 }

 printf("... ret = '%s'\n", $ret);
 return $ret;
}

$mysqli = new mysqli("myapp", "root", "", "test");

if (!($res = $mysqli->query("SELECT 1 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT 2 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT * FROM table_on_slave_a_only")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

User has connected to 'myapp'...
... deciding where to run 'SELECT 1 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.2.27:3306'
User has connected to 'myapp'...
... deciding where to run 'SELECT 2 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.78.136:3306'
User has connected to 'myapp'...
... deciding where to run 'SELECT * FROM table_on_slave_a_only'
... access to table available only on slave A detected
... ret = 'tcp://192.168.2.27:3306'

Filter: user_multi object

The user_multi differs from the user only in one aspect. Otherwise, their syntax is identical. The user filter must pick and return exactly one node for statement execution. A filter chain usually ends with a filter that emits only one node. The filter chain shall reduce the list of candidates for statement execution down to one. This, only one node left, is the case after the user filter has been run.

The user_multi filter is a multi filter. It returns a list of slave and a list of master servers. This list needs further filtering to identify exactly one node for statement execution. A multi filter is typically placed at the top of the filter chain. The quality_of_service filter is another example of a multi filter.

The return value of the callback set for user_multi must be an array with two elements. The first element holds a list of selected master servers. The second element contains a list of selected slave servers. The lists shall contain the keys of the slave and master servers as found in the slave and master lists passed to the callback. The below example returns random master and slave lists extracted from the functions input.

Beispiel #22 Returning random masters and slaves

<?php
function pick_server($connected, $query, $masters, $slaves, $last_used_connection, $in_transaction)
{
  $picked_masters = array()
  foreach ($masters as $key => $value) {
    if (mt_rand(0, 2) > 1)
      $picked_masters[] = $key;
  }
  $picked_slaves = array()
  foreach ($slaves as $key => $value) {
    if (mt_rand(0, 2) > 1)
      $picked_slaves[] = $key;
  }
  return array($picked_masters, $picked_slaves);
}
?>

The plugin will issue an error of type E_RECOVERABLE if the callback fails to return a server list. The error may read (mysqlnd_ms) User multi filter callback has not returned a list of servers to use. The callback must return an array in %s on line %d. In case the server list is not empty but has invalid servers key/ids in it, an error of type E_RECOVERABLE will the thrown with an error message like (mysqlnd_ms) User multi filter callback has returned an invalid list of servers to use. Server id is negative in %s on line %d, or similar.

Whether an error is emitted in case of an empty slave or master list depends on the configuration. If an empty master list is returned for a write operation, it is likely that the plugin will emit a warning that may read (mysqlnd_ms) Couldn't find the appropriate master connection. 0 masters to choose from. Something is wrong in %s on line %d. Typically a follow up error of type E_ERROR will happen. In case of a read operation and an empty slave list the behavior depends on the fail over configuration. If fail over to master is enabled, no error should appear. If fail over to master is deactivated the plugin will emit a warning that may read (mysqlnd_ms) Couldn't find the appropriate slave connection. 0 slaves to choose from. Something is wrong in %s on line %d.

Filter: node_groups object

The node_groups filter lets you group cluster nodes and query selected groups, for example, to support data partitioning. Data partitioning can be required for manual sharding, primary copy based clusters running multiple masters, or to avoid hot spots in update everywhere clusters that have no built-in partitioning. The filter is a multi filter which returns zero, one or multiple of its input servers. Thus, it must be followed by other filters to reduce the number of candidates down to one for statement execution.

Keyword Description Version
user defined node group name

One or more node groups must be defined. A node group can have an arbitrary user defined name. The name is used in combination with a SQL hint to restrict query execution to the nodes listed for the node group. To run a query on any of the servers of a node group, the query must begin with the SQL hint /*user defined node group name*/. Please note, no white space is allowed around user defined node group name. Because user defined node group name is used as-is as part of a SQL hint, you should choose the name that is compliant with the SQL language.

Each node group entry must contain a list of master servers. Additional slave servers are allowed. Failing to provide a list of master for a node group name_of_group may cause an error of type E_RECOVERABLE_ERROR like (mysqlnd_ms) No masters configured in node group 'name_of_group' for 'node_groups' filter.

The list of master and slave servers must reference corresponding entries in the global master respectively slave server list. Referencing an unknown server in either of the both server lists may cause an E_RECOVERABLE_ERROR error like (mysqlnd_ms) Unknown master 'server_alias_name' (section 'name_of_group') in 'node_groups' filter configuration.

Beispiel #23 Manual partitioning

{
  "myapp": {
       "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.28",
                "port": 3306
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
        "filters": {
            "node_groups": {
                "Partition_A" : {
                    "master": ["master_0"],
                    "slave": ["slave_0"]
                }
            },
           "roundrobin": []
        }
    }
}

Please note, if a filter chain generates an empty slave list and the PHP configuration directive mysqlnd_ms.multi_master=0 is used, the plugin may emit a warning.

Since 1.5.0.
Filter: quality_of_service object

The quality_of_service identifies cluster nodes capable of delivering a certain quality of service. It is a multi filter which returns zero, one or multiple of its input servers. Thus, it must be followed by other filters to reduce the number of candidates down to one for statement execution.

The quality_of_service filter has been introduced in 1.2.0-alpha. In the 1.2 series the filters focus is on the consistency aspect of service quality. Different types of clusters offer different default data consistencies. For example, an asynchronous MySQL replication slave offers eventual consistency. The slave may not be able to deliver requested data because it has not replicated the write, it may serve stale database because its lagging behind or it may serve current information. Often, this is acceptable. In some cases higher consistency levels are needed for the application to work correct. In those cases, the quality_of_service can filter out cluster nodes which cannot deliver the necessary quality of service.

The quality_of_service filter can be replaced or created at runtime. A successful call to mysqlnd_ms_set_qos() removes all existing qos filter entries from the filter list and installs a new one at the very beginning. All settings that can be made through mysqlnd_ms_set_qos() can also be in the plugins configuration file. However, use of the function is by far the most common use case. Instead of setting session consistency and strong consistency service levels in the plugins configuration file it is recommended to define only masters and no slaves. Both service levels will force the use of masters only. Using an empty slave list shortens the configuration file, thus improving readability. The only service level for which there is a case of defining in the plugins configuration file is the combination of eventual consistency and maximum slave lag.

Keyword Description Version
eventual_consistency

Request eventual consistency. Allows the use of all master and slave servers. Data returned may or may not be current.

Eventual consistency accepts an optional age parameter. If age is given the plugin considers only slaves for reading for which MySQL replication reports a slave lag less or equal to age. The replication lag is measure using SHOW SLAVE STATUS. If the plugin fails to fetch the replication lag, the slave tested is skipped. Implementation details and tips are given in the quality of service concepts section.

Please note, if a filter chain generates an empty slave list and the PHP configuration directive mysqlnd_ms.multi_master=0 is used, the plugin may emit a warning.

Beispiel #24 Global limit on slave lag

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": {
            "quality_of_service": {
                "eventual_consistency": {
                    "age":123
                }
            }
        }
    }
}

 Since 1.2.0.
session_consistency

Request session consistency (read your writes). Allows use of all masters and all slaves which are in sync with the master. If no further parameters are given slaves are filtered out as there is no reliable way to test if a slave has caught up to the master or is lagging behind. Please note, if a filter chain generates an empty slave list and the PHP configuration directive mysqlnd_ms.multi_master=0 is used, the plugin may emit a warning.

Session consistency temporarily requested using mysqlnd_ms_set_qos() is a valuable alternative to using master_on_write. master_on_write is likely to send more statements to the master than needed. The application may be able to continue operation at a lower consistency level after it has done some critical reads.

Since 1.1.0.
strong_consistency

Request strong consistency. Only masters will be used.

Since 1.2.0.
failover Up to and including 1.3.x: string. Since 1.4.0: object.

Failover policy. Supported policies: disabled (default), master, loop_before_master (Since 1.4.0).

If no failover policy is set, the plugin will not do any automatic failover (failover=disabled). Whenever the plugin fails to connect a server it will emit a warning and set the connections error code and message. Thereafter it is up to the application to handle the error and, for example, resent the last statement to trigger the selection of another server.

Please note, the automatic failover logic is applied when opening connections only. Once a connection has been opened no automatic attempts are made to reopen it in case of an error. If, for example, the server a connection is connected to is shut down and the user attempts to run a statement on the connection, no automatic failover will be tried. Instead, an error will be reported.

If using failover=master the plugin will implicitly failover to a master, if available. Please check the concepts documentation to learn about potential pitfalls and risks of using failover=master.

Beispiel #25 Optional master failover when failing to connect to slave (PECL/mysqlnd_ms < 1.4.0)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "failover": "master"
    }
}

Since PECL/mysqlnd_ms 1.4.0 the failover configuration keyword refers to an object.

Beispiel #26 New syntax since 1.4.0

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "failover": {"strategy": "master" }
    }
}

Keyword Description Version
strategy

Failover policy. Possible values: disabled (default), master, loop_before_master

A value of disabled disables automatic failover.

Setting master instructs the plugin to try to connect to a master in case of a slave connection error. If the master connection attempt fails, the plugin exists the failover loop and returns an error to the user.

If using loop_before_master and a slave request is made, the plugin tries to connect to other slaves before failing over to a master. If multiple master are given and multi master is enabled, the plugin also loops over the list of masters and attempts to connect before returning an error to the user.

Since 1.4.0.
remember_failed

Remember failures for the duration of a web request. Default: false.

If set to true the plugin will remember failed hosts and skip the hosts in all future load balancing made for the duration of the current web request.

Since 1.4.0. The feature is only available together with the random and roundrobin load balancing filter. Use of the setting is recommended.
max_retries

Maximum number of connection attempts before skipping host. Default: 0 (no limit).

The setting is used to prevent hosts from being dropped of the host list upon the first failure. If set to n > 0, the plugin will keep the node in the node list even after a failed connection attempt. The node will not be removed immediately from the slave respectively master lists after the first connection failure but instead be tried to connect to up to n times in future load balancing rounds before being removed.

Since 1.4.0. The feature is only available together with the random and roundrobin load balancing filter.

Setting failover to any other value but disabled, master or loop_before_master will not emit any warning or error.

lazy_connections bool

Controls the use of lazy connections. Lazy connections are connections which are not opened before the client sends the first connection. Lazy connections are a default.

It is strongly recommended to use lazy connections. Lazy connections help to keep the number of open connections low. If you disable lazy connections and, for example, configure one MySQL replication master server and two MySQL replication slaves, the plugin will open three connections upon the first call to a connect function although the application might use the master connection only.

Lazy connections bare a risk if you make heavy use of actions which change the state of a connection. The plugin does not dispatch all state changing actions to all connections from the connection pool. The few dispatched actions are applied to already opened connections only. Lazy connections opened in the future are not affected. Only some settings are "remembered" and applied when lazy connections are opened.

Beispiel #27 Disabling lazy connection

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "lazy_connections": 0
    }
}

Please, see also server_charset to overcome potential problems with string escaping and servers using different default charsets.

server_charset string

The setting has been introduced in 1.4.0. It is recommended to set it if using lazy connections.

The server_charset setting serves two purposes. It acts as a fallback charset to be used for string escaping done before a connection has been established and it helps to avoid escaping pitfalls in heterogeneous environments which servers using different default charsets.

String escaping takes a connections charset into account. String escaping is not possible before a connection has been opened and the connections charset is known. The use of lazy connections delays the actual opening of connections until a statement is send.

An application using lazy connections may attempt to escape a string before sending a statement. In fact, this should be a common case as the statement string may contain the string that is to be escaped. However, due to the lazy connection feature no connection has been opened yet and escaping fails. The plugin may report an error of the type E_WARNING and a message like (mysqlnd_ms) string escaping doesn't work without established connection. Possible solution is to add server_charset to your configuration to inform you of the pitfall.

Setting server_charset makes the plugin use the given charset for string escaping done on lazy connection handles before establishing a network connection to MySQL. Furthermore, the plugin will enforce the use of the charset when the connection is established.

Enforcing the use of the configured charset used for escaping is done to prevent tapping into the pitfall of using a different charset for escaping than used later for the connection. This has the additional benefit of removing the need to align the charset configuration of all servers used. No matter what the default charset on any of the servers is, the plugin will set the configured one as a default.

The plugin does not stop the user from changing the charset at any time using the set_charset() call or corresponding SQL statements. Please, note that the use of SQL is not recommended as it cannot be monitored by the plugin. The user can, for example, change the charset on a lazy connection handle after escaping a string and before the actual connection is opened. The charset set by the user will be used for any subsequent escaping before the connection is established. The connection will be established using the configured charset, no matter what the server charset is or what the user has set before. Once a connection has been opened, set_charset is of no meaning anymore.

Beispiel #28 String escaping on a lazy connection handle

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "lazy_connections": 1,
        "server_charset" : "utf8mb4"
    }
}
<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
$mysqli->real_escape("this will be escaped using the server_charset setting - utf8mb4");
$mysqli->set_charset("latin1");
$mysqli->real_escape("this will be escaped using latin1");
/* server_charset implicitly set - utf8mb4 connection */
$mysqli->query("SELECT 'This connection will be set to server_charset upon establishing' AS _msg FROM DUAL");
/* latin1 used from now on */
$mysqli->set_charset("latin1");
?>

master_on_write bool

If set, the plugin will use the master server only after the first statement has been executed on the master. Applications can still send statements to the slaves using SQL hints to overrule the automatic decision.

The setting may help with replication lag. If an application runs an INSERT the plugin will, by default, use the master to execute all following statements, including SELECT statements. This helps to avoid problems with reads from slaves which have not replicated the INSERT yet.

Beispiel #29 Master on write for consistent reads

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "master_on_write": 1
    }
}

Please, note the quality_of_service filter introduced in version 1.2.0-alpha. It gives finer control, for example, for achieving read-your-writes and, it offers additional functionality introducing service levels.

All transaction stickiness settings, including trx_stickiness=on, are overruled by master_on_write=1.

trx_stickiness string

Transaction stickiness policy. Supported policies: disabled (default), master.

The setting requires 5.4.0 or newer. If used with PHP older than 5.4.0, the plugin will emit a warning like (mysqlnd_ms) trx_stickiness strategy is not supported before PHP 5.3.99.

If no transaction stickiness policy is set or, if setting trx_stickiness=disabled, the plugin is not transaction aware. Thus, the plugin may load balance connections and switch connections in the middle of a transaction. The plugin is not transaction safe. SQL hints must be used avoid connection switches during a transaction.

As of PHP 5.4.0 the mysqlnd library allows the plugin to monitor the autocommit mode set by calls to the libraries set_autocommit() function. If setting set_stickiness=master and autocommit gets disabled by a PHP MySQL extension invoking the mysqlnd library internal function call set_autocommit(), the plugin is made aware of the begin of a transaction. Then, the plugin stops load balancing and directs all statements to the master server until autocommit is enabled. Thus, no SQL hints are required.

An example of a PHP MySQL API function calling the mysqlnd library internal function call set_autocommit() is mysqli_autocommit().

Although setting trx_stickiness=master, the plugin cannot be made aware of autocommit mode changes caused by SQL statements such as SET AUTOCOMMIT=0 or BEGIN.

As of PHP 5.5.0, the mysqlnd library features additional C API calls to control transactions. The level of control matches the one offered by SQL statements. The mysqli API has been modified to use these calls. Since version 1.5.0, PECL/mysqlnd_ms can monitor not only mysqli_autocommit(), but also mysqli_begin(), mysqli_commit() and mysqli_rollback() to detect transaction boundaries and stop load balancing for the duration of a transaction.

Beispiel #30 Using master to execute transactions

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "trx_stickiness": "master"
    }
}

Since version 1.5.0 automatic and silent failover is disabled for the duration of a transaction. If the boundaries of a transaction have been properly detected, transaction stickiness is enabled and a server fails, the plugin will not attempt to fail over to the next server, if any, regardless of the failover policy configured. The user must handle the error manually. Depending on the configuration, the plugin may emit an error of type E_WARNING reading like (mysqlnd_ms) Automatic failover is not permitted in the middle of a transaction. This error may then be overwritten by follow up errors such as (mysqlnd_ms) No connection selected by the last filter. Those errors will be generated by the failing query function.

Beispiel #31 No automatic failover, error handling pitfall

<?php
/* assumption: automatic failover configured */
$mysqli = new mysqli("myapp", "username", "password", "database");

/* sets plugin internal state in_trx = 1 */
$mysqli->autocommit(false);

/* assumption: server fails */
if (!($res = $mysqli->query("SELECT 'Assume this query fails' AS _msg FROM DUAL"))) {
 /* handle failure of transaction, plugin internal state is still in_trx = 1 */
 printf("[%d] %s", $mysqli->errno, $mysqli->error);
 /*
  If using autocommit() based transaction detection it is a
  MUST to call autocommit(true). Otherwise the plugin assumes
  the current transaction continues and connection
  changes remain forbidden.
 */
 $mysqli->autocommit(true);
 /* Likewise, you'll want to start a new transaction */
 $mysqli->autocommit(false);
}
/* latin1 used from now on */
$mysqli->set_charset("latin1");
?>

If a server fails in the middle of a transaction the plugin continues to refuse to switch connections until the current transaction has been finished. Recall that the plugin monitors API calls to detect transaction boundaries. Thus, you have to, for example, enable auto commit mode to end the current transaction before the plugin continues load balancing and switches the server. Likewise, you will want to start a new transaction immediately thereafter and disable auto commit mode again.

Not handling failed queries and not ending a failed transaction using API calls may cause all following commands emit errors such as Commands out of sync; you can't run this command now. Thus, it is important to handle all errors.

transient_error object

The setting has been introduced in 1.6.0.

A database cluster node may reply a transient error to a client. The client can then repeat the operation on the same node, fail over to a different node or abort the operation. Per definition is it safe for a client to retry the same operation on the same node before giving up.

PECL/mysqlnd_ms can perform the retry loop on behalf of the application. By configuring transient_error the plugin can be instructed to repeat operations failing with a certain error code for a certain maximum number of times with a pause between the retries. If the transient error disappears during loop execution, it is hidden from the application. Otherwise, the error is forwarded to the application by the end of the loop.

Beispiel #32 Retry loop for transient errors

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
       },
       "transient_error": {
          "mysql_error_codes": [
            1297
          ],
          "max_retries": 2,
          "usleep_retry": 100
       }
    }
}

Keyword Description Version
mysql_error_codes

List of transient error codes. You may add any MySQL error code to the list. It is possible to consider any error as transient not only 1297 (HY000 (ER_GET_TEMPORARY_ERRMSG), Message: Got temporary error %d '%s' from %s). Before adding other codes but 1297 to the list, make sure your cluster supports a new attempt without impacting the state of your application.

Since 1.6.0.
max_retries

How often to retry an operation which fails with a transient error before forwarding the failure to the user.

Default: 1

Since 1.6.0.
usleep_retry

Milliseconds to sleep between transient error retries. The value is passed to the C function usleep(), hence the name.

Default: 100

Since 1.6.0.
xa object

The setting has been introduced in 1.6.0.

Hinweis: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

state_store
record_participant_credentials

Whether to store the username and password of a global transaction participant in the participants table. If disabled, the garbage collection will use the default username and password when connecting to the participants. Unless you are using a different username and password for each of your MySQL servers, you can use the default and avoid storing the sensible information in state store.

Please note, username and password are stored in clear text when using the MySQL state store, which is the only one available. It is in your responsibility to protect this sensible information.

Default: false

participant_localhost_ip

During XA garbage collection the plugin may find a participant server for which the host localhost has been recorded. If the garbage collection takes place on another host but the host that has written the participant record to the state store, the host name localhost now resolves to a different host. Therefore, when recording a participant servers host name in the state store, a value of localhost must be replaced with the actual IP address of localhost.

Setting participant_localhost_ip should be considered only if using localhost cannot be avoided. From a garbage collection point of view only, it is preferrable not to configure any socket connection but to provide an IP address and port for a node.

mysql

The MySQL state store is the only state store available.

global_trx_table

Name of the MySQL table used to store the state of an ongoing or aborted global transaction. Use the below SQL statement to create the table. Make sure to edit the table name to match your configuration.

Default: mysqlnd_ms_xa_trx

Beispiel #33 SQL definition for the MySQL state store transaction table

CREATE TABLE mysqlnd_ms_xa_trx (
  store_trx_id int(11) NOT NULL AUTO_INCREMENT,
  gtrid int(11) NOT NULL,
  format_id int(10) unsigned NOT NULL DEFAULT '1',
  state enum('XA_NON_EXISTING','XA_ACTIVE','XA_IDLE','XA_PREPARED','XA_COMMIT','XA_ROLLBACK') NOT NULL DEFAULT 'XA_NON_EXISTING',
  intend enum('XA_NON_EXISTING','XA_ACTIVE','XA_IDLE','XA_PREPARED','XA_COMMIT','XA_ROLLBACK') DEFAULT 'XA_NON_EXISTING',
  finished enum('NO','SUCCESS','FAILURE') NOT NULL DEFAULT 'NO',
  modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  started datetime DEFAULT NULL,
  timeout datetime DEFAULT NULL,
  PRIMARY KEY (store_trx_id),
  KEY idx_xa_id (gtrid,format_id,finished),
  KEY idx_state (state)
) ENGINE=InnoDB

participant_table

Name of the MySQL table used to store participants of an ongoing or aborted global transaction. Use the below SQL statement to create the table. Make sure to edit the table name to match your configuration.

Storing credentials can be enabled and disabled using record_participant_credentials

Default: mysqlnd_ms_xa_participants

Beispiel #34 SQL definition for the MySQL state store transaction table

CREATE TABLE mysqlnd_ms_xa_participants (
  fk_store_trx_id int(11) NOT NULL,
  bqual varbinary(64) NOT NULL DEFAULT '',
  participant_id int(10) unsigned NOT NULL AUTO_INCREMENT,
  server_uuid varchar(127) DEFAULT NULL,
  scheme varchar(1024) NOT NULL,
  host varchar(127) DEFAULT NULL,
  port smallint(5) unsigned DEFAULT NULL,
  socket varchar(127) DEFAULT NULL,
  user varchar(127) DEFAULT NULL,
  password varchar(127) DEFAULT NULL,
  state enum('XA_NON_EXISTING','XA_ACTIVE','XA_IDLE','XA_PREPARED','XA_COMMIT','XA_ROLLBACK')
   NOT NULL DEFAULT 'XA_NON_EXISTING',
  health enum('OK','GC_DONE','CLIENT ERROR','SERVER ERROR') NOT NULL DEFAULT 'OK',
  connection_id int(10) unsigned DEFAULT NULL,
  client_errno smallint(5) unsigned DEFAULT NULL,
  client_error varchar(1024) DEFAULT NULL,
  modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (participant_id),
  KEY idx_xa_bqual (bqual),
  KEY idx_store_trx (fk_store_trx_id),
  CONSTRAINT mysqlnd_ms_xa_participants_ibfk_1 FOREIGN KEY (fk_store_trx_id)
    REFERENCES mysqlnd_ms_xa_trx (store_trx_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB
garbage_collection_table

Name of the MySQL table used to track and synchronize garbage collection runs. Use the below SQL statement to create the table. Make sure to edit the table name to match your configuration.

Default: mysqlnd_ms_xa_gc

Beispiel #35 SQL definition for the MySQL state store garbage collection table

CREATE TABLE mysqlnd_ms_xa_gc (
  gc_id int(10) unsigned NOT NULL AUTO_INCREMENT,
  gtrid int(11) NOT NULL,
  format_id int(10) unsigned NOT NULL DEFAULT '1',
  fk_store_trx_id int(11) DEFAULT NULL,
  modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  attempts smallint(5) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (gc_id),
  KEY idx_store_trx (gtrid,format_id,fk_store_trx_id)
) ENGINE=InnoDB
host

Host name of the MySQL server.

user

Name of the user used to connect to the MySQL server.

password

Password for the MySQL server user.

db

Database that holds the garbage collection tables. Please note, you have to create the garbage collection tables prior to using the plugin. The tables will not be created implicitly during runtime but garbage collection will fail if the tables to not exist.

port

Port of the MySQL server.

socket

Unix domain socket of the MySQL server. Please note, if you have multiple PHP servers each of them will try to carry out garbage collection and need to be able to connect to the state store. In this case, you may prefer configuring an IP address and a port for the MySQL state store server to ensure all PHP servers can reach it.

rollback_on_close

Whether to automatically rollback an open global transaction when a connection is closed. If enabled, it mimics the default behaviour of local transactions. Should a client disconnect, the server rolls back any open and unfinished transactions.

Default: true

garbage_collection
max_retries

Maximum number of garbage collection runs before giving up. Allowed values are from 0 to 100. A setting of 0 means no limit, unless the state store enforces a limit. Should the state store enforce a limit, it can be supposed to be significantly higher than 100. Available since 1.6.0.

Please note, it is important to end failed XA transactions within reasonable time to make participating servers free resources bound to the transaction. The built-in garbage collection is not expected to fail for a long period as long as crashed servers become available again quickly. Still, a situation may arise where a human is required to act because the built-in garbage collection stopped or failed. In this case, you may first want to check if the transaction still cannot be fixed by forcing mysqlnd_ms_xa_gc() to ignore the setting, prior to handling it manually.

Default: 5

probability

Garbage collection probability. Allowed values are from 0 to 1000. A setting of 0 disables automatic background garbage collection. Despite a setting of 0 it is still possible to trigger garbage collection by calling mysqlnd_ms_gc(). Available since 1.6.0.

The automatic garbage collection of stalled XA transaction is only available if a state store have been configured. The state store is responsible to keep track of XA transactions. Based on its recordings it can find blocked XA transactions where the client has crashed, connect to the participants and rollback the unfinished transactions.

The garbage collection is triggered as part of PHP's request shutdown procedure at the end of a web request. That is after your PHP script has finished working. Do decide whether to run the garbage collection a random value between 0 and 1000 is computed. If the probability value is higher or equal to the random value, the state stores garbage collection routines are invoked.

Default: 5

max_transactions_per_run

Maximum number of unfinished XA transactions considered by the garbage collection during one run. Allowed values are from 1 to 32768. Available since 1.6.0.

Cleaning up an unfinished XA transaction takes considerable amounts of time and resources. The garbage collection routine may have to connect to several participants of a failed global transaction to issue the SQL commands for rolling back the unfinished tranaction.

Default: 100

Plugin configuration file (<= 1.0.x)

Hinweis:

The below description applies to PECL/mysqlnd_ms < 1.1.0-beta. It is not valid for later versions.

The plugin is using its own configuration file. The configuration file holds information on the MySQL replication master server, the MySQL replication slave servers, the server pick (load balancing) policy, the failover strategy and the use of lazy connections.

The PHP configuration directive mysqlnd_ms.ini_file is used to set the plugins configuration file.

The configuration file mimics standard the php.ini format. It consists of one or more sections. Every section defines its own unit of settings. There is no global section for setting defaults.

Applications reference sections by their name. Applications use section names as the host (server) parameter to the various connect methods of the mysqli, mysql and PDO_MYSQL extensions. Upon connect the mysqlnd plugin compares the hostname with all section names from the plugin configuration file. If hostname and section name match, the plugin will load the sections settings.

Beispiel #36 Using section names example

[myapp]
master[] = localhost
slave[] = 192.168.2.27
slave[] = 192.168.2.28:3306
[localhost]
master[] = localhost:/tmp/mysql/mysql.sock
slave[] = 192.168.3.24:3305
slave[] = 192.168.3.65:3309
<?php
/* All of the following connections will be load balanced */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");

$mysqli = new mysqli("localhost", "username", "password", "database");
?>

Section names are strings. It is valid to use a section name such as 192.168.2.1, 127.0.0.1 or localhost. If, for example, an application connects to localhost and a plugin configuration section [localhost] exists, the semantics of the connect operation are changed. The application will no longer only use the MySQL server running on the host localhost but the plugin will start to load balance MySQL queries following the rules from the [localhost] configuration section. This way you can load balance queries from an application without changing the applications source code.

The master[], slave[] and pick[] configuration directives use a list-like syntax. Configuration directives supporting list-like syntax may appear multiple times in a configuration section. The plugin maintains the order in which entries appear when interpreting them. For example, the below example shows two slave[] configuration directives in the configuration section [myapp]. If doing round-robin load balancing for read-only queries, the plugin will send the first read-only query to the MySQL server mysql_slave_1 because it is the first in the list. The second read-only query will be send to the MySQL server mysql_slave_2 because it is the second in the list. Configuration directives supporting list-like syntax result are ordered from top to bottom in accordance to their appearance within a configuration section.

Beispiel #37 List-like syntax

[myapp]
master[] = mysql_master_server
slave[] = mysql_slave_1
slave[] = mysql_slave_2

Here is a short explanation of the configuration directives that can be used.

master[] string

URI of a MySQL replication master server. The URI follows the syntax hostname[:port|unix_domain_socket].

The plugin supports using only one master server.

Setting a master server is mandatory. The plugin will report a warning upon connect if the user has failed to provide a master server for a configuration section. The warning may read (mysqlnd_ms) Cannot find master section in config. Furthermore the plugin may set an error code for the connection handle such as HY000/2000 (CR_UNKNOWN_ERROR). The corresponding error message depends on your language settings.

slave[] string

URI of one or more MySQL replication slave servers. The URI follows the syntax hostname[:port|unix_domain_socket].

The plugin supports using one or more slave servers.

Setting a slave server is mandatory. The plugin will report a warning upon connect if the user has failed to provide at least one slave server for a configuration section. The warning may read (mysqlnd_ms) Cannot find slaves section in config. Furthermore the plugin may set an error code for the connection handle such as HY000/2000 (CR_UNKNOWN_ERROR). The corresponding error message depends on your language settings.

pick[] string

Load balancing (server picking) policy. Supported policies: random, random_once (default), roundrobin, user.

If no load balancing policy is set, the plugin will default to random_once. The random_once policy picks a random slave server when running the first read-only statement. The slave server will be used for all read-only statements until the PHP script execution ends.

The random policy will pick a random server whenever a read-only statement is to be executed.

If using roundrobin the plugin iterates over the list of configured slave servers to pick a server for statement execution. If the plugin reaches the end of the list, it wraps around to the beginning of the list and picks the first configured slave server.

Setting more than one load balancing policy for a configuration section makes only sense in conjunction with user and mysqlnd_ms_set_user_pick_server(). If the user defined callback fails to pick a server, the plugin falls back to the second configured load balancing policy.

failover string

Failover policy. Supported policies: disabled (default), master.

If no failover policy is set, the plugin will not do any automatic failover (failover=disabled). Whenever the plugin fails to connect a server it will emit a warning and set the connections error code and message. Thereafter it is up to the application to handle the error and, for example, resent the last statement to trigger the selection of another server.

If using failover=master the plugin will implicitly failover to a slave, if available. Please check the concepts documentation to learn about potential pitfalls and risks of using failover=master.

lazy_connections bool

Controls the use of lazy connections. Lazy connections are connections which are not opened before the client sends the first connection.

It is strongly recommended to use lazy connections. Lazy connections help to keep the number of open connections low. If you disable lazy connections and, for example, configure one MySQL replication master server and two MySQL replication slaves, the plugin will open three connections upon the first call to a connect function although the application might use the master connection only.

Lazy connections bare a risk if you make heavy use of actions which change the state of a connection. The plugin does not dispatch all state changing actions to all connections from the connection pool. The few dispatched actions are applied to already opened connections only. Lazy connections opened in the future are not affected. If, for example, the connection character set is changed using a PHP MySQL API call, the plugin will change the character set of all currently opened connection. It will not remember the character set change to apply it on lazy connections opened in the future. As a result the internal connection pool would hold connections using different character sets. This is not desired. Remember that character sets are taken into account for escaping.

master_on_write bool

If set, the plugin will use the master server only after the first statement has been executed on the master. Applications can still send statements to the slaves using SQL hints to overrule the automatic decision.

The setting may help with replication lag. If an application runs an INSERT the plugin will, by default, use the master to execute all following statements, including SELECT statements. This helps to avoid problems with reads from slaves which have not replicated the INSERT yet.

trx_stickiness string

Transaction stickiness policy. Supported policies: disabled (default), master.

Experimental feature.

The setting requires 5.4.0 or newer. If used with PHP older than 5.4.0, the plugin will emit a warning like (mysqlnd_ms) trx_stickiness strategy is not supported before PHP 5.3.99.

If no transaction stickiness policy is set or, if setting trx_stickiness=disabled, the plugin is not transaction aware. Thus, the plugin may load balance connections and switch connections in the middle of a transaction. The plugin is not transaction safe. SQL hints must be used avoid connection switches during a transaction.

As of PHP 5.4.0 the mysqlnd library allows the plugin to monitor the autocommit mode set by calls to the libraries trx_autocommit() function. If setting trx_stickiness=master and autocommit gets disabled by a PHP MySQL extension invoking the mysqlnd library internal function call trx_autocommit(), the plugin is made aware of the begin of a transaction. Then, the plugin stops load balancing and directs all statements to the master server until autocommit is enabled. Thus, no SQL hints are required.

An example of a PHP MySQL API function calling the mysqlnd library internal function call trx_autocommit() is mysqli_autocommit().

Although setting trx_stickiness=master, the plugin cannot be made aware of autocommit mode changes caused by SQL statements such as SET AUTOCOMMIT=0.

Testing

Hinweis:

The section applies to mysqlnd_ms 1.1.0 or newer, not the 1.0 series.

The PECL/mysqlnd_ms test suite is in the tests/ directory of the source distribution. The test suite consists of standard phpt tests, which are described on the PHP Quality Assurance Teams website.

Running the tests requires setting up one to four MySQL servers. Some tests don't connect to MySQL at all. Others require one server for testing. Some require two distinct servers. In some cases two servers are used to emulate a replication setup. In other cases a master and a slave of an existing MySQL replication setup are required for testing. The tests will try to detect how many servers and what kind of servers are given. If the required servers are not found, the test will be skipped automatically.

Before running the tests, edit tests/config.inc to configure the MySQL servers to be used for testing.

The most basic configuration is as follows.

 putenv("MYSQL_TEST_HOST=localhost");
 putenv("MYSQL_TEST_PORT=3306");
 putenv("MYSQL_TEST_USER=root");
 putenv("MYSQL_TEST_PASSWD=");
 putenv("MYSQL_TEST_DB=test");
 putenv("MYSQL_TEST_ENGINE=MyISAM");
 putenv("MYSQL_TEST_SOCKET=");

 putenv("MYSQL_TEST_SKIP_CONNECT_FAILURE=1");
 putenv("MYSQL_TEST_CONNECT_FLAGS=0");
 putenv("MYSQL_TEST_EXPERIMENTAL=0");

 /* replication cluster emulation */
 putenv("MYSQL_TEST_EMULATED_MASTER_HOST=". getenv("MYSQL_TEST_HOST"));
 putenv("MYSQL_TEST_EMULATED_SLAVE_HOST=". getenv("MYSQL_TEST_HOST"));

 /* real replication cluster */
 putenv("MYSQL_TEST_MASTER_HOST=". getenv("MYSQL_TEST_EMULATED_MASTER_HOST"));
 putenv("MYSQL_TEST_SLAVE_HOST=". getenv("MYSQL_TEST_EMULATED_SLAVE_HOST"));

MYSQL_TEST_HOST, MYSQL_TEST_PORT and MYSQL_TEST_SOCKET define the hostname, TCP/IP port and Unix domain socket of the default database server. MYSQL_TEST_USER and MYSQL_TEST_PASSWD contain the user and password needed to connect to the database/schema configured with MYSQL_TEST_DB. All configured servers must have the same database user configured to give access to the test database.

Using host, host:port or host:/path/to/socket syntax one can set an alternate host, host and port or host and socket for any of the servers.

putenv("MYSQL_TEST_SLAVE_HOST=192.168.78.136:3307"));
putenv("MYSQL_TEST_MASTER_HOST=myserver_hostname:/path/to/socket"));

Debugging and Tracing

The mysqlnd debug log can be used to debug and trace the actitivities of PECL/mysqlnd_ms. As a mysqlnd PECL/mysqlnd_ms adds trace information to the mysqlnd library debug file. Please, see the mysqlnd.debug PHP configuration directive documentation for a detailed description on how to configure the debug log.

Configuration setting example to activate the debug log:

mysqlnd.debug=d:t:x:O,/tmp/mysqlnd.trace

Hinweis:

This feature is only available with a debug build of PHP. Works on Microsoft Windows if using a debug build of PHP and PHP was built using Microsoft Visual C version 9 and above.

The debug log shows mysqlnd library and PECL/mysqlnd_ms plugin function calls, similar to a trace log. Mysqlnd library calls are usually prefixed with mysqlnd_. PECL/mysqlnd internal calls begin with mysqlnd_ms.

Example excerpt from the debug log (connect):

[...]
>mysqlnd_connect
| info : host=myapp user=root db=test port=3306 flags=131072
| >mysqlnd_ms::connect
| | >mysqlnd_ms_config_json_section_exists
| | | info : section=[myapp] len=[5]
| | | >mysqlnd_ms_config_json_sub_section_exists
| | | | info : section=[myapp] len=[5]
| | | | info : ret=1
| | | <mysqlnd_ms_config_json_sub_section_exists
| | | info : ret=1
| | <mysqlnd_ms_config_json_section_exists
[...]

The debug log is not only useful for plugin developers but also to find the cause of user errors. For example, if your application does not do proper error handling and fails to record error messages, checking the debug and trace log may help finding the cause. Use of the debug log to debug application issues should be considered only if no other option is available. Writing the debug log to disk is a slow operation and may have negative impact on the application performance.

Example excerpt from the debug log (connection failure):

[...]
| | | | | | | info : adding error [Access denied for user 'root'@'localhost' (using password: YES)] to the list
| | | | | | | info : PACKET_FREE(0)
| | | | | | | info : PACKET_FREE(0x7f3ef6323f50)
| | | | | | | info : PACKET_FREE(0x7f3ef6324080)
| | | | | | <mysqlnd_auth_handshake
| | | | | | info : switch_to_auth_protocol=n/a
| | | | | | info : conn->error_info.error_no = 1045
| | | | | <mysqlnd_connect_run_authentication
| | | | | info : PACKET_FREE(0x7f3ef63236d8)
| | | | | >mysqlnd_conn::free_contents
| | | | | | >mysqlnd_net::free_contents
| | | | | | <mysqlnd_net::free_contents
| | | | | | info : Freeing memory of members
| | | | | | info : scheme=unix:///tmp/mysql.sock
| | | | | | >mysqlnd_error_list_pdtor
| | | | | | <mysqlnd_error_list_pdtor
| | | | | <mysqlnd_conn::free_contents
| | | | <mysqlnd_conn::connect
[...]

The trace log can also be used to verify correct behaviour of PECL/mysqlnd_ms itself, for example, to check which server has been selected for query execution and why.

Example excerpt from the debug log (plugin decision):

[...]
>mysqlnd_ms::query
| info : query=DROP TABLE IF EXISTS test
| >_mysqlnd_plugin_get_plugin_connection_data
| | info : plugin_id=5
| <_mysqlnd_plugin_get_plugin_connection_data
| >mysqlnd_ms_pick_server_ex
| | info : conn_data=0x7fb6a7d3e5a0 *conn_data=0x7fb6a7d410d0
| | >mysqlnd_ms_select_servers_all
| | <mysqlnd_ms_select_servers_all
| | >mysqlnd_ms_choose_connection_rr
| | | >mysqlnd_ms_query_is_select
[...]
| | | <mysqlnd_ms_query_is_select
[...]
| | | info : Init the master context
| | | info : list(0x7fb6a7d3f598) has 1
| | | info : Using master connection
| | | >mysqlnd_ms_advanced_connect
| | | | >mysqlnd_conn::connect
| | | | | info : host=localhost user=root db=test port=3306 flags=131072 persistent=0 state=0

In this case the statement DROP TABLE IF EXISTS test has been executed. Note that the statement string is shown in the log file. You may want to take measures to restrict access to the log for security considerations.

The statement has been load balanced using round robin policy, as you can easily guess from the functions name >mysqlnd_ms_choose_connection_rr. It has been sent to a master server running on host=localhost user=root db=test port=3306 flags=131072 persistent=0 state=0.

Monitoring

Plugin activity can be monitored using the mysqlnd trace log, mysqlnd statistics, mysqlnd_ms plugin statistics and external PHP debugging tools. Use of the trace log should be limited to debugging. It is recommended to use the plugins statistics for monitoring.

Writing a trace log is a slow operation. If using an external PHP debugging tool, please refer to the vendors manual about its performance impact and the type of information collected. In many cases, external debugging tools will provide call stacks. Often, a call stack or a trace log is more difficult to interpret than the statistics provided by the plugin.

Plugin statistics tell how often which kind of cluster node has been used (slave or master), why the node was used, if lazy connections have been used and if global transaction ID injection has been performed. The monitoring information provided enables user to verify plugin decisions and to plan their cluster resources based on usage pattern. The function mysqlnd_ms_get_stats() is used to access the statistics. Please, see the functions description for a list of available statistics.

Statistics are collected on a per PHP process basis. Their scope is a PHP process. Depending on the PHP deployment model a process may serve one or multiple web requests. If using CGI model, a PHP process serves one web request. If using FastCGI or pre-fork web server models, a PHP process usually serves multiple web requests. The same is the case with a threaded web server. Please, note that threads running in parallel can update the statistics in parallel. Thus, if using a threaded PHP deployment model, statistics can be changed by more than one script at a time. A script cannot rely on the fact that it sees only its own changes to statistics.

Beispiel #38 Verify plugin activity in a non-threaded deployment model

mysqlnd_ms.enable=1
mysqlnd_ms.collect_statistics=1
<?php
/* Load balanced following "myapp" section rules from the plugins config file (not shown) */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

$stats_before = mysqlnd_ms_get_stats();
if ($res = $mysqli->query("SELECT 'Read request' FROM DUAL")) {
  var_dump($res->fetch_all());
}
$stats_after = mysqlnd_ms_get_stats();
if ($stats_after['use_slave'] <= $stats_before['use_slave']) {
  echo "According to the statistics the read request has not been run on a slave!";
}
?>

Statistics are aggregated for all plugin activities and all connections handled by the plugin. It is not possible to tell how much a certain connection handle has contributed to the overall statistics.

Utilizing PHPs register_shutdown_function() function or the auto_append_file PHP configuration directive it is easily possible to dump statistics into, for example, a log file when a script finishes. Instead of using a log file it is also possible to send the statistics to an external monitoring tool for recording and display.

Beispiel #39 Recording statistics during shutdown

mysqlnd_ms.enable=1
mysqlnd_ms.collect_statistics=1
error_log=/tmp/php_errors.log
<?php
function check_stats() {
  $msg = str_repeat("-", 80) . "\n";
  $msg .= var_export(mysqlnd_ms_get_stats(), true) . "\n";
  $msg .= str_repeat("-", 80) . "\n";
  error_log($msg);
}
register_shutdown_function("check_stats");
?>


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SQL hint related

Beispiel #1 Example demonstrating the usage of mysqlnd_ms constants

The mysqlnd replication and load balancing plugin (mysqlnd_ms) performs read/write splitting. This directs write queries to a MySQL master server, and read-only queries to the MySQL slave servers. The plugin has a built-in read/write split logic. All queries which start with SELECT are considered read-only queries, which are then sent to a MySQL slave server that is listed in the plugin configuration file. All other queries are directed to the MySQL master server that is also specified in the plugin configuration file.

User supplied SQL hints can be used to overrule automatic read/write splitting, to gain full control on the process. SQL hints are standards compliant SQL comments. The plugin will scan the beginning of a query string for an SQL comment for certain commands, which then control query redirection. Other systems involved in the query processing are unaffected by the SQL hints because other systems will ignore the SQL comments.

The plugin supports three SQL hints to direct queries to either the MySQL slave servers, the MySQL master server, or the last used MySQL server. SQL hints must be placed at the beginning of a query to be recognized by the plugin.

For better portability, it is recommended to use the string constants MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH and MYSQLND_MS_LAST_USED_SWITCH instead of their literal values.

<?php
/* Use constants for maximum portability */
$master_query = "/*" . MYSQLND_MS_MASTER_SWITCH . "*/SELECT id FROM test";

/* Valid but less portable: using literal instead of constant */
$slave_query = "/*ms=slave*/SHOW TABLES";

printf("master_query = '%s'\n", $master_query);
printf("slave_query = '%s'\n", $slave_query);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

master_query = /*ms=master*/SELECT id FROM test
slave_query = /*ms=slave*/SHOW TABLES

MYSQLND_MS_MASTER_SWITCH (string)
SQL hint used to send a query to the MySQL replication master server.
MYSQLND_MS_SLAVE_SWITCH (string)
SQL hint used to send a query to one of the MySQL replication slave servers.
MYSQLND_MS_LAST_USED_SWITCH (string)
SQL hint used to send a query to the last used MySQL server. The last used MySQL server can either be a master or a slave server in a MySQL replication setup.

mysqlnd_ms_query_is_select() related

MYSQLND_MS_QUERY_USE_MASTER (int)
If mysqlnd_ms_is_select() returns MYSQLND_MS_QUERY_USE_MASTER for a given query, the built-in read/write split mechanism recommends sending the query to a MySQL replication master server.
MYSQLND_MS_QUERY_USE_SLAVE (int)
If mysqlnd_ms_is_select() returns MYSQLND_MS_QUERY_USE_SLAVE for a given query, the built-in read/write split mechanism recommends sending the query to a MySQL replication slave server.
MYSQLND_MS_QUERY_USE_LAST_USED (int)
If mysqlnd_ms_is_select() returns MYSQLND_MS_QUERY_USE_LAST_USED for a given query, the built-in read/write split mechanism recommends sending the query to the last used server.

mysqlnd_ms_set_qos(), quality of service filter and service level related

MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL (int)
Use to request the service level eventual consistency from the mysqlnd_ms_set_qos(). Eventual consistency is the default quality of service when reading from an asynchronous MySQL replication slave. Data returned in this service level may or may not be stale, depending on whether the selected slaves happen to have replicated the latest changes from the MySQL replication master or not.
MYSQLND_MS_QOS_CONSISTENCY_SESSION (int)
Use to request the service level session consistency from the mysqlnd_ms_set_qos(). Session consistency is defined as read your writes. The client is guaranteed to see his latest changes.
MYSQLND_MS_QOS_CONSISTENCY_STRONG (int)
Use to request the service level strong consistency from the mysqlnd_ms_set_qos(). Strong consistency is used to ensure all clients see each others changes.
MYSQLND_MS_QOS_OPTION_GTID (int)
Used as a service level option with mysqlnd_ms_set_qos() to parameterize session consistency.
MYSQLND_MS_QOS_OPTION_AGE (int)
Used as a service level option with mysqlnd_ms_set_qos() to parameterize eventual consistency.

Other

The plugins version number can be obtained using MYSQLND_MS_VERSION or MYSQLND_MS_VERSION_ID. MYSQLND_MS_VERSION is the string representation of the numerical version number MYSQLND_MS_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_MS_VERSION_ID | 10000

MYSQLND_MS_VERSION (string)
Plugin version string, for example, 1.0.0-prototype.
MYSQLND_MS_VERSION_ID (int)
Plugin version number, for example, 10000.


Mysqlnd_ms Funktionen

Inhaltsverzeichnis

  • mysqlnd_ms_dump_servers — Returns a list of currently configured servers
  • mysqlnd_ms_fabric_select_global — Switch to global sharding server for a given table
  • mysqlnd_ms_fabric_select_shard — Switch to shard
  • mysqlnd_ms_get_last_gtid — Returns the latest global transaction ID
  • mysqlnd_ms_get_last_used_connection — Returns an array which describes the last used connection
  • mysqlnd_ms_get_stats — Returns query distribution and connection statistics
  • mysqlnd_ms_match_wild — Finds whether a table name matches a wildcard pattern or not
  • mysqlnd_ms_query_is_select — Find whether to send the query to the master, the slave or the last used MySQL server
  • mysqlnd_ms_set_qos — Sets the quality of service needed from the cluster
  • mysqlnd_ms_set_user_pick_server — Sets a callback for user-defined read/write splitting
  • mysqlnd_ms_xa_begin — Starts a distributed/XA transaction among MySQL servers
  • mysqlnd_ms_xa_commit — Commits a distributed/XA transaction among MySQL servers
  • mysqlnd_ms_xa_gc — Garbage collects unfinished XA transactions after severe errors
  • mysqlnd_ms_xa_rollback — Rolls back a distributed/XA transaction among MySQL servers


Returns a list of currently configured servers

  • « Mysqlnd_ms Funktionen
  • mysqlnd_ms_fabric_select_global »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Returns a list of currently configured servers

mysqlnd_ms_dump_servers

(No version information available, might only be in Git)

mysqlnd_ms_dump_servers — Returns a list of currently configured servers

Beschreibung

mysqlnd_ms_dump_servers ( mixed $connection ) : array

Returns a list of currently configured servers.

Parameter-Liste

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

Rückgabewerte

false on error. Otherwise, returns an array with two entries masters and slaves each of which contains an array listing all corresponding servers.

The function can be used to check and debug the list of servers currently used by the plugin. It is mostly useful when the list of servers changes at runtime, for example, when using MySQL Fabric.

masters and slaves server entries

Key | Description | Version
name_from_config | Server entry name from config, if appliciable. NULL if no configuration name is available. | Since 1.6.0.
hostname | Host name of the server. | Since 1.6.0.
user | Database user used to authenticate against the server. | Since 1.6.0.
port | TCP/IP port of the server. | Since 1.6.0.
socket | Unix domain socket of the server. | Since 1.6.0.

Anmerkungen

Hinweis:

mysqlnd_ms_dump_servers() requires PECL mysqlnd_ms >> 1.6.0.

Beispiele

Beispiel #1 mysqlnd_ms_dump_servers() example

{
    "myapp": {
        "master": {
            "master1": {
                "host":"master1_host",
                "port":"master1_port",
                "socket":"master1_socket",
                "db":"master1_db",
                "user":"master1_user",
                "password":"master1_pw"
            }
        },
        "slave": {
             "slave_0": {
                 "host":"slave0_host",
                 "port":"slave0_port",
                 "socket":"slave0_socket",
                 "db":"slave0_db",
                 "user":"slave0_user",
                 "password":"slave0_pw"
             },
             "slave_1": {
                 "host":"slave1_host"
             }
        }
    }
}
<?php
$link = mysqli_connect("myapp", "global_user", "global_pass", "global_db", 1234, "global_socket");
var_dump(mysqlnd_ms_dump_servers($link);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["masters"]=>
  array(1) {
    [0]=>
    array(5) {
      ["name_from_config"]=>
      string(7) "master1"
      ["hostname"]=>
      string(12) "master1_host"
      ["user"]=>
      string(12) "master1_user"
      ["port"]=>
      int(3306)
      ["socket"]=>
      string(14) "master1_socket"
    }
  }
  ["slaves"]=>
  array(2) {
    [0]=>
    array(5) {
      ["name_from_config"]=>
      string(7) "slave_0"
      ["hostname"]=>
      string(11) "slave0_host"
      ["user"]=>
      string(11) "slave0_user"
      ["port"]=>
      int(3306)
      ["socket"]=>
      string(13) "slave0_socket"
    }
    [1]=>
    array(5) {
      ["name_from_config"]=>
      string(7) "slave_1"
      ["hostname"]=>
      string(11) "slave1_host"
      ["user"]=>
      string(12) "gloabal_user"
      ["port"]=>
      int(1234)
      ["socket"]=>
      string(13) "global_socket"
    }
  }
}


Switch to global sharding server for a given table

  • « mysqlnd_ms_dump_servers
  • mysqlnd_ms_fabric_select_shard »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Switch to global sharding server for a given table

mysqlnd_ms_fabric_select_global

(No version information available, might only be in Git)

mysqlnd_ms_fabric_select_global — Switch to global sharding server for a given table

Beschreibung

mysqlnd_ms_fabric_select_global ( mixed $connection , mixed $table_name ) : array
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

MySQL Fabric related.

Switch the connection to the nodes handling global sharding queries for the given table name.

Parameter-Liste

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

table_name

The table name to ask Fabric about.

Rückgabewerte

false on error. Otherwise, true

Anmerkungen

Hinweis:

mysqlnd_ms_fabric_select_global() requires PECL mysqlnd_ms >> 1.6.0.


Switch to shard

  • « mysqlnd_ms_fabric_select_global
  • mysqlnd_ms_get_last_gtid »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Switch to shard

mysqlnd_ms_fabric_select_shard

(No version information available, might only be in Git)

mysqlnd_ms_fabric_select_shard — Switch to shard

Beschreibung

mysqlnd_ms_fabric_select_shard ( mixed $connection , mixed $table_name , mixed $shard_key ) : array
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

MySQL Fabric related.

Switch the connection to the shards responsible for the given table name and shard key.

Parameter-Liste

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

table_name

The table name to ask Fabric about.

shard_key

The shard key to ask Fabric about.

Rückgabewerte

false on error. Otherwise, true

Anmerkungen

Hinweis:

mysqlnd_ms_fabric_select_shard() requires PECL mysqlnd_ms >> 1.6.0.


Returns the latest global transaction ID

  • « mysqlnd_ms_fabric_select_shard
  • mysqlnd_ms_get_last_used_connection »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Returns the latest global transaction ID

mysqlnd_ms_get_last_gtid

(PECL mysqlnd_ms >= 1.2.0)

mysqlnd_ms_get_last_gtid — Returns the latest global transaction ID

Beschreibung

mysqlnd_ms_get_last_gtid ( mixed $connection ) : string

Returns a global transaction identifier which belongs to a write operation no older than the last write performed by the client. It is not guaranteed that the global transaction identifier is identical to that one created for the last write transaction performed by the client.

Parameter-Liste

connection

A PECL/mysqlnd_ms connection handle to a MySQL server of the type PDO_MYSQL, mysqli> or ext/mysql. The connection handle is obtained when opening a connection with a host name that matches a mysqlnd_ms configuration file entry using any of the above three MySQL driver extensions.

Rückgabewerte

Returns a global transaction ID (GTID) on success. Otherwise, returns false.

The function mysqlnd_ms_get_last_gtid() returns the GTID obtained when executing the SQL statement from the fetch_last_gtid entry of the global_transaction_id_injection section from the plugins configuration file.

The function may be called after the GTID has been incremented.

Anmerkungen

Hinweis:

mysqlnd_ms_get_last_gtid() requires PHP >= 5.4.0 and PECL mysqlnd_ms >= 1.2.0. Internally, it is using a mysqlnd library C functionality not available with PHP 5.3.

Please note, all MySQL 5.6 production versions do not provide clients with enough information to use GTIDs for enforcing session consistency. In the worst case, the plugin will choose the master only.

Beispiele

Beispiel #1 mysqlnd_ms_get_last_gtid() example

<?php
/* Open mysqlnd_ms connection using mysqli, PDO_MySQL or mysql extension */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli)
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("DROP TABLE IF EXISTS test"))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("CREATE TABLE test(id INT)"))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));
?>

Siehe auch

  • Global Transaction IDs


Returns an array which describes the last used connection

  • « mysqlnd_ms_get_last_gtid
  • mysqlnd_ms_get_stats »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Returns an array which describes the last used connection

mysqlnd_ms_get_last_used_connection

(PECL mysqlnd_ms >= 1.1.0)

mysqlnd_ms_get_last_used_connection — Returns an array which describes the last used connection

Beschreibung

mysqlnd_ms_get_last_used_connection ( mixed $connection ) : array

Returns an array which describes the last used connection from the plugins connection pool currently pointed to by the user connection handle. If using the plugin, a user connection handle represents a pool of database connections. It is not possible to tell from the user connection handles properties to which database server from the pool the user connection handle points.

The function can be used to debug or monitor PECL mysqlnd_ms.

Parameter-Liste

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

Rückgabewerte

false on error. Otherwise, an array which describes the connection used to execute the last statement on.

Array which describes the connection.

Property | Description | Version
scheme | Connection scheme. Either tcp://host:port or unix://host:socket. If you want to distinguish connections from each other use a combination of scheme and thread_id as a unique key. Neither scheme nor thread_id alone are sufficient to distinguish two connections from each other. Two servers may assign the same thread_id to two different connections. Thus, connections in the pool may have the same thread_id. Also, do not rely on uniqueness of scheme in a pool. Your QA engineers may use the same MySQL server instance for two distinct logical roles and add it multiple times to the pool. This hack is used, for example, in the test suite. | Since 1.1.0.
host | Database server host used with the connection. The host is only set with TCP/IP connections. It is empty with Unix domain or Windows named pipe connections, | Since 1.1.0.
host_info | A character string representing the server hostname and the connection type. | Since 1.1.2.
port | Database server port used with the connection. | Since 1.1.0.
socket_or_pipe | Unix domain socket or Windows named pipe used with the connection. The value is empty for TCP/IP connections. | Since 1.1.2.
thread_id | Connection thread id. | Since 1.1.0.
last_message | Info message obtained from the MySQL C API function mysql_info(). Please, see mysqli_info() for a description. | Since 1.1.0.
errno | Error code. | Since 1.1.0.
error | Error message. | Since 1.1.0.
sqlstate | Error SQLstate code. | Since 1.1.0.

Anmerkungen

Hinweis:

mysqlnd_ms_get_last_used_connection() requires PHP >= 5.4.0 and PECL mysqlnd_ms >> 1.1.0. Internally, it is using a mysqlnd library C call not available with PHP 5.3.

Beispiele

The example assumes that myapp refers to a plugin configuration file section and represents a connection pool.

Beispiel #1 mysqlnd_ms_get_last_used_connection() example

<?php
$link = new mysqli("myapp", "user", "password", "database");
$res = $link->query("SELECT 1 FROM DUAL");
var_dump(mysqlnd_ms_get_last_used_connection($link));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(10) {
  ["scheme"]=>
  string(22) "unix:///tmp/mysql.sock"
  ["host_info"]=>
  string(25) "Localhost via UNIX socket"
  ["host"]=>
  string(0) ""
  ["port"]=>
  int(3306)
  ["socket_or_pipe"]=>
  string(15) "/tmp/mysql.sock"
  ["thread_id"]=>
  int(46253)
  ["last_message"]=>
  string(0) ""
  ["errno"]=>
  int(0)
  ["error"]=>
  string(0) ""
  ["sqlstate"]=>
  string(5) "00000"
}


Returns query distribution and connection statistics

  • « mysqlnd_ms_get_last_used_connection
  • mysqlnd_ms_match_wild »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Returns query distribution and connection statistics

mysqlnd_ms_get_stats

(PECL mysqlnd_ms >= 1.0.0)

mysqlnd_ms_get_stats — Returns query distribution and connection statistics

Beschreibung

mysqlnd_ms_get_stats ( ) : array

Returns an array of statistics collected by the replication and load balancing plugin.

The PHP configuration setting mysqlnd_ms.collect_statistics controls the collection of statistics. The collection of statistics is disabled by default for performance reasons.

The scope of the statistics is the PHP process. Depending on your deployment model a PHP process may handle one or multiple requests.

Statistics are aggregated for all connections and all storage handler. It is not possible to tell how much queries originating from mysqli, PDO_MySQL or mysql API calls have contributed to the aggregated data values.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns null if the PHP configuration directive mysqlnd_ms.enable has disabled the plugin. Otherwise, returns array of statistics.

Array of statistics

Statistic | Description | Version
use_slave

The semantics of this statistic has changed between 1.0.1 - 1.1.0.

The meaning for version 1.0.1 is as follows. Number of statements considered as read-only by the built-in query analyzer. Neither statements which begin with a SQL hint to force use of slave nor statements directed to a slave by an user-defined callback are included. The total number of statements sent to the slaves is use_slave + use_slave_sql_hint + use_slave_callback.

PECL/mysqlnd_ms 1.1.0 introduces a new concept of chained filters. The statistics is now set by the internal load balancing filter. With version 1.1.0 the load balancing filter is always the last in the filter chain, if used. In future versions a load balancing filter may be followed by other filters causing another change in the meaning of the statistic. If, in the future, a load balancing filter is followed by another filter it is no longer guaranteed that the statement, which increments use_slave, will be executed on the slaves.

The meaning for version 1.1.0 is as follows. Number of statements sent to the slaves. Statements directed to a slave by the user filter (an user-defined callback) are not included. The latter are counted by use_slave_callback.

Since 1.0.0.
use_master

The semantics of this statistic has changed between 1.0.1 - 1.1.0.

The meaning for version 1.0.1 is as follows. Number of statements not considered as read-only by the built-in query analyzer. Neither statements which begin with a SQL hint to force use of master nor statements directed to a master by an user-defined callback are included. The total number of statements sent to the master is use_master + use_master_sql_hint + use_master_callback.

PECL/mysqlnd_ms 1.1.0 introduces a new concept of chained filters. The statictics is now set by the internal load balancing filter. With version 1.1.0 the load balancing filter is always the last in the filter chain, if used. In future versions a load balancing filter may be followed by other filters causing another change in the meaning of the statistic. If, in the future, a load balancing filter is followed by another filter it is no longer guaranteed that the statement, which increments use_master, will be executed on the slaves.

The meaning for version 1.1.0 is as follows. Number of statements sent to the masters. Statements directed to a master by the user filter (an user-defined callback) are not included. The latter are counted by use_master_callback.

Since 1.0.0.
use_slave_guess | Number of statements the built-in query analyzer recommends sending to a slave because they contain no SQL hint to force use of a certain server. The recommendation may be overruled in the following. It is not guaranteed whether the statement will be executed on a slave or not. This is how often the internal is_select function has guessed that a slave shall be used. Please, see also the user space function mysqlnd_ms_query_is_select(). | Since 1.1.0.
use_master_guess | Number of statements the built-in query analyzer recommends sending to a master because they contain no SQL hint to force use of a certain server. The recommendation may be overruled in the following. It is not guaranteed whether the statement will be executed on a slave or not. This is how often the internal is_select function has guessed that a master shall be used. Please, see also the user space function mysqlnd_ms_query_is_select(). | Since 1.1.0.
use_slave_sql_hint | Number of statements sent to a slave because statement begins with the SQL hint to force use of slave. | Since 1.0.0.
use_master_sql_hint | Number of statements sent to a master because statement begins with the SQL hint to force use of master. | Since 1.0.0.
use_last_used_sql_hint | Number of statements sent to server which has run the previous statement, because statement begins with the SQL hint to force use of previously used server. | Since 1.0.0.
use_slave_callback | Number of statements sent to a slave because an user-defined callback has chosen a slave server for statement execution. | Since 1.0.0.
use_master_callback | Number of statements sent to a master because an user-defined callback has chosen a master server for statement execution. | Since 1.0.0.
non_lazy_connections_slave_success | Number of successfully opened slave connections from configurations not using lazy connections. The total number of successfully opened slave connections is non_lazy_connections_slave_success + lazy_connections_slave_success | Since 1.0.0.
non_lazy_connections_slave_failure | Number of failed slave connection attempts from configurations not using lazy connections. The total number of failed slave connection attempts is non_lazy_connections_slave_failure + lazy_connections_slave_failure | Since 1.0.0.
non_lazy_connections_master_success | Number of successfully opened master connections from configurations not using lazy connections. The total number of successfully opened master connections is non_lazy_connections_master_success + lazy_connections_master_success | Since 1.0.0.
non_lazy_connections_master_failure | Number of failed master connection attempts from configurations not using lazy connections. The total number of failed master connection attempts is non_lazy_connections_master_failure + lazy_connections_master_failure | Since 1.0.0.
lazy_connections_slave_success | Number of successfully opened slave connections from configurations using lazy connections. | Since 1.0.0.
lazy_connections_slave_failure | Number of failed slave connection attempts from configurations using lazy connections. | Since 1.0.0.
lazy_connections_master_success | Number of successfully opened master connections from configurations using lazy connections. | Since 1.0.0.
lazy_connections_master_failure | Number of failed master connection attempts from configurations using lazy connections. | Since 1.0.0.
trx_autocommit_on | Number of autocommit mode activations via API calls. This figure may be used to monitor activity related to the plugin configuration setting trx_stickiness. If, for example, you want to know if a certain API call invokes the mysqlnd library function trx_autocommit(), which is a requirement for trx_stickiness, you may call the user API function in question and check if the statistic has changed. The statistic is modified only by the plugins internal subclassed trx_autocommit() method. | Since 1.0.0.
trx_autocommit_off | Number of autocommit mode deactivations via API calls. | Since 1.0.0.
trx_master_forced | Number of statements redirected to the master while trx_stickiness=master and autocommit mode is disabled. | Since 1.0.0.
gtid_autocommit_injections_success | Number of successful SQL injections in autocommit mode as part of the plugins client-side global transaction id emulation. | Since 1.2.0.
gtid_autocommit_injections_failure | Number of failed SQL injections in autocommit mode as part of the plugins client-side global transaction id emulation. | Since 1.2.0.
gtid_commit_injections_success | Number of successful SQL injections in commit mode as part of the plugins client-side global transaction id emulation. | Since 1.2.0.
gtid_commit_injections_failure | Number of failed SQL injections in commit mode as part of the plugins client-side global transaction id emulation. | Since 1.2.0.
gtid_implicit_commit_injections_success | Number of successful SQL injections when implicit commit is detected as part of the plugins client-side global transaction id emulation. Implicit commit happens, for example, when autocommit has been turned off, a query is executed and autocommit is enabled again. In that case, the statement will be committed by the server and SQL to maintain is injected before the autocommit is re-enabled. Another sequence causing an implicit commit is begin(), query(), begin(). The second call to begin() will implicitly commit the transaction started by the first call to begin(). begin() refers to internal library calls not actual PHP user API calls. | Since 1.2.0.
gtid_implicit_commit_injections_failure | Number of failed SQL injections when implicit commit is detected as part of the plugins client-side global transaction id emulation. Implicit commit happens, for example, when autocommit has been turned off, a query is executed and autocommit is enabled again. In that case, the statement will be committed by the server and SQL to maintain is injected before the autocommit is re-enabled. | Since 1.2.0.
transient_error_retries | How often an operation has been retried when a transient error was detected. See also, transient_error plugin configuration file setting. | Since 1.6.0.
fabric_sharding_lookup_servers_success | Number of successful sharding.lookup_servers remote procedure calls to MySQL Fabric. A call is considered successful if the plugin could reach MySQL Fabric and got any reply. The reply itself may or may not be understood by the plugin. Success refers to the network transport only. If the reply was not understood or indicates a valid error condition, fabric_sharding_lookup_servers_xml_failure gets incremented. | Since 1.6.0.
fabric_sharding_lookup_servers_failure | Number of failed sharding.lookup_servers remote procedure calls to MySQL Fabric. A remote procedure call is considered failed if there was a network error in connecting to, writing to or reading from MySQL Fabric. | Since 1.6.0.
fabric_sharding_lookup_servers_time_total | Time spent connecting to,writing to and reading from MySQL Fabrich during the sharding.lookup_servers remote procedure call. The value is aggregated for all calls. Time is measured in microseconds. | Since 1.6.0.
fabric_sharding_lookup_servers_bytes_total | Total number of bytes received from MySQL Fabric in reply to sharding.lookup_servers calls. | Since 1.6.0.
fabric_sharding_lookup_servers_xml_failure | How often a reply from MySQL Fabric to sharding.lookup_servers calls was not understood. Please note, the current experimental implementation does not distinguish between valid errors returned and malformed replies. | Since 1.6.0.
xa_begin | How many XA/distributed transactions have been started using mysqlnd_ms_xa_begin(). | Since 1.6.0.
xa_commit_success | How many XA/distributed transactions have been successfully committed using mysqlnd_ms_xa_commit(). | Since 1.6.0.
xa_commit_failure | How many XA/distributed transactions failed to commit during mysqlnd_ms_xa_commit(). | Since 1.6.0.
xa_rollback_success | How many XA/distributed transactions have been successfully rolled back using mysqlnd_ms_xa_rollback(). The figure does not include implict rollbacks performed as a result of mysqlnd_ms_xa_commit() failure. | Since 1.6.0.
xa_rollback_failure | How many XA/distributed transactions could not be rolled back. This includes failures of mysqlnd_ms_xa_rollback() but also failured during rollback when closing a connection, if rollback_on_close is set. Please, see also xa_rollback_on_close below. | Since 1.6.0.
xa_participants | Total number of participants in any XA transaction started with mysqlnd_ms_xa_begin(). | Since 1.6.0.
xa_rollback_on_close | How many XA transactions have been rolled back implicitly when a connection was close and rollback_on_close is set. Depending on your coding policies, this may hint a flaw in your code as you may prefer to explicitly clean up resources. | Since 1.6.0.
pool_masters_total | Number of master servers (connections) in the internal connection pool. | Since 1.6.0.
pool_slaves_total | Number of slave servers (connections) in the internal connection pool. | Since 1.6.0.
pool_masters_active | Number of master servers (connections) from the internal connection pool which are currently used for picking a connection. | Since 1.6.0.
pool_slaves_active | Number of slave servers (connections) from the internal connection pool which are currently used for picking a connection. | Since 1.6.0.
pool_updates | How often the active connection list has been replaced and a new set of master and slave servers had been installed. | Since 1.6.0.
pool_master_reactivated | How often a master connection has been reused after being flushed from the active list. | Since 1.6.0.
pool_slave_reactivated | How often a slave connection has been reused after being flushed from the active list. | Since 1.6.0.

Beispiele

Beispiel #1 mysqlnd_ms_get_stats() example

<?php
printf("mysqlnd_ms.enable = %d\n", ini_get("mysqlnd_ms.enable"));
printf("mysqlnd_ms.collect_statistics = %d\n", ini_get("mysqlnd_ms.collect_statistics"));
var_dump(mysqlnd_ms_get_stats());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

mysqlnd_ms.enable = 1
mysqlnd_ms.collect_statistics = 1
array(26) {
  ["use_slave"]=>
  string(1) "0"
  ["use_master"]=>
  string(1) "0"
  ["use_slave_guess"]=>
  string(1) "0"
  ["use_master_guess"]=>
  string(1) "0"
  ["use_slave_sql_hint"]=>
  string(1) "0"
  ["use_master_sql_hint"]=>
  string(1) "0"
  ["use_last_used_sql_hint"]=>
  string(1) "0"
  ["use_slave_callback"]=>
  string(1) "0"
  ["use_master_callback"]=>
  string(1) "0"
  ["non_lazy_connections_slave_success"]=>
  string(1) "0"
  ["non_lazy_connections_slave_failure"]=>
  string(1) "0"
  ["non_lazy_connections_master_success"]=>
  string(1) "0"
  ["non_lazy_connections_master_failure"]=>
  string(1) "0"
  ["lazy_connections_slave_success"]=>
  string(1) "0"
  ["lazy_connections_slave_failure"]=>
  string(1) "0"
  ["lazy_connections_master_success"]=>
  string(1) "0"
  ["lazy_connections_master_failure"]=>
  string(1) "0"
  ["trx_autocommit_on"]=>
  string(1) "0"
  ["trx_autocommit_off"]=>
  string(1) "0"
  ["trx_master_forced"]=>
  string(1) "0"
  ["gtid_autocommit_injections_success"]=>
  string(1) "0"
  ["gtid_autocommit_injections_failure"]=>
  string(1) "0"
  ["gtid_commit_injections_success"]=>
  string(1) "0"
  ["gtid_commit_injections_failure"]=>
  string(1) "0"
  ["gtid_implicit_commit_injections_success"]=>
  string(1) "0"
  ["gtid_implicit_commit_injections_failure"]=>
  string(1) "0"
  ["transient_error_retries"]=>
  string(1) "0"
}

Siehe auch

  • Runtime configuration
  • mysqlnd_ms.collect_statistics
  • mysqlnd_ms.enable
  • Monitoring


Finds whether a table name matches a wildcard pattern or not

  • « mysqlnd_ms_get_stats
  • mysqlnd_ms_query_is_select »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Finds whether a table name matches a wildcard pattern or not

mysqlnd_ms_match_wild

(PECL mysqlnd_ms >= 1.1.0)

mysqlnd_ms_match_wild — Finds whether a table name matches a wildcard pattern or not

Beschreibung

mysqlnd_ms_match_wild ( string $table_name , string $wildcard ) : bool

Finds whether a table name matches a wildcard pattern or not.

This function is not of much practical relevance with PECL mysqlnd_ms 1.1.0 because the plugin does not support MySQL replication table filtering yet.

Parameter-Liste

table_name

The table name to check if it is matched by the wildcard.

wildcard

The wildcard pattern to check against the table name. The wildcard pattern supports the same placeholders as MySQL replication filters do.

MySQL replication filters can be configured by using the MySQL Server configuration options --replicate-wild-do-table and --replicate-wild-do-db. Please, consult the MySQL Reference Manual to learn more about this MySQL Server feature.

The supported placeholders are:

  • % - zero or more literals
  • _ - one literal

Placeholders can be escaped using \.

Rückgabewerte

Returns true table_name is matched by wildcard. Otherwise, returns false

Beispiele

Beispiel #1 mysqlnd_ms_match_wild() example

<?php
var_dump(mysqlnd_ms_match_wild("schema_name.table_name", "schema%"));
var_dump(mysqlnd_ms_match_wild("abc", "_"));
var_dump(mysqlnd_ms_match_wild("table1", "table_"));
var_dump(mysqlnd_ms_match_wild("asia_customers", "%customers"));
var_dump(mysqlnd_ms_match_wild("funny%table","funny\%table"));
var_dump(mysqlnd_ms_match_wild("funnytable", "funny%table"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)


Find whether to send the query to the master, the slave or the last used MySQL server

  • « mysqlnd_ms_match_wild
  • mysqlnd_ms_set_qos »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Find whether to send the query to the master, the slave or the last used MySQL server

mysqlnd_ms_query_is_select

(PECL mysqlnd_ms >= 1.0.0)

mysqlnd_ms_query_is_select — Find whether to send the query to the master, the slave or the last used MySQL server

Beschreibung

mysqlnd_ms_query_is_select ( string $query ) : int

Finds whether to send the query to the master, the slave or the last used MySQL server.

The plugins built-in read/write split mechanism will be used to analyze the query string to make a recommendation where to send the query. The built-in read/write split mechanism is very basic and simple. The plugin will recommend sending all queries to the MySQL replication master server but those which begin with SELECT, or begin with a SQL hint which enforces sending the query to a slave server. Due to the basic but fast algorithm the plugin may propose to run some read-only statements such as SHOW TABLES on the replication master.

Parameter-Liste

query

Query string to test.

Rückgabewerte

A return value of MYSQLND_MS_QUERY_USE_MASTER indicates that the query should be send to the MySQL replication master server. The function returns a value of MYSQLND_MS_QUERY_USE_SLAVE if the query can be run on a slave because it is considered read-only. A value of MYSQLND_MS_QUERY_USE_LAST_USED is returned to recommend running the query on the last used server. This can either be a MySQL replication master server or a MySQL replication slave server.

If read write splitting has been disabled by setting mysqlnd_ms.disable_rw_split, the function will always return MYSQLND_MS_QUERY_USE_MASTER or MYSQLND_MS_QUERY_USE_LAST_USED.

Beispiele

Beispiel #1 mysqlnd_ms_query_is_select() example

<?php
function is_select($query)
{
 switch (mysqlnd_ms_query_is_select($query))
 {
  case MYSQLND_MS_QUERY_USE_MASTER:
   printf("'%s' should be run on the master.\n", $query);
   break;
  case MYSQLND_MS_QUERY_USE_SLAVE:
   printf("'%s' should be run on a slave.\n", $query);
   break;
  case MYSQLND_MS_QUERY_USE_LAST_USED:
   printf("'%s' should be run on the server that has run the previous query\n", $query);
   break;
  default:
   printf("No suggestion where to run the '%s', fallback to master recommended\n", $query);
   break;
 }
}

is_select("INSERT INTO test(id) VALUES (1)");
is_select("SELECT 1 FROM DUAL");
is_select("/*" . MYSQLND_MS_LAST_USED_SWITCH . "*/SELECT 2 FROM DUAL");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

INSERT INTO test(id) VALUES (1) should be run on the master.
SELECT 1 FROM DUAL should be run on a slave.
/*ms=last_used*/SELECT 2 FROM DUAL should be run on the server that has run the previous query

Siehe auch

  • Predefined Constants
  • user filter
  • Runtime configuration
  • mysqlnd_ms.disable_rw_split
  • mysqlnd_ms.enable


Sets the quality of service needed from the cluster

  • « mysqlnd_ms_query_is_select
  • mysqlnd_ms_set_user_pick_server »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Sets the quality of service needed from the cluster

mysqlnd_ms_set_qos

(PECL mysqlnd_ms < 1.2.0)

mysqlnd_ms_set_qos — Sets the quality of service needed from the cluster

Beschreibung

mysqlnd_ms_set_qos ( mixed $connection , int $service_level , int $service_level_option = ? , mixed $option_value = ? ) : bool

Sets the quality of service needed from the cluster. A database cluster delivers a certain quality of service to the user depending on its architecture. A major aspect of the quality of service is the consistency level the cluster can offer. An asynchronous MySQL replication cluster defaults to eventual consistency for slave reads: a slave may serve stale data, current data, or it may have not the requested data at all, because it is not synchronous to the master. In a MySQL replication cluster, only master accesses can give strong consistency, which promises that all clients see each others changes.

PECL/mysqlnd_ms hides the complexity of choosing appropriate nodes to achieve a certain level of service from the cluster. The "Quality of Service" filter implements the necessary logic. The filter can either be configured in the plugins configuration file, or at runtime using mysqlnd_ms_set_qos().

Similar results can be achieved with PECL mysqlnd_ms < 1.2.0, if using SQL hints to force the use of a certain type of node or using the master_on_write plugin configuration option. The first requires more code and causes more work on the application side. The latter is less refined than using the quality of service filter. Settings made through the function call can be reversed, as shown in the example below. The example temporarily switches to a higher service level (session consistency, read your writes) and returns back to the clusters default after it has performed all operations that require the better service. This way, read load on the master can be minimized compared to using master_on_write, which would continue using the master after the first write.

Since 1.5.0 calls will fail when done in the middle of a transaction if transaction stickiness is enabled and transaction boundaries have been detected. properly.

Parameter-Liste

connection

A PECL/mysqlnd_ms connection handle to a MySQL server of the type PDO_MYSQL, mysqli or ext/mysql for which a service level is to be set. The connection handle is obtained when opening a connection with a host name that matches a mysqlnd_ms configuration file entry using any of the above three MySQL driver extensions.

service_level

The requested service level: MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL, MYSQLND_MS_QOS_CONSISTENCY_SESSION or MYSQLND_MS_QOS_CONSISTENCY_STRONG.

service_level_option

An option to parameterize the requested service level. The option can either be MYSQLND_MS_QOS_OPTION_GTID or MYSQLND_MS_QOS_OPTION_AGE.

The option MYSQLND_MS_QOS_OPTION_GTID can be used to refine the service level MYSQLND_MS_QOS_CONSISTENCY_SESSION. It must be combined with a fourth function parameter, the option_value. The option_value shall be a global transaction ID obtained from mysqlnd_ms_get_last_gtid(). If set, the plugin considers both master servers and asynchronous slaves for session consistency (read your writes). Otherwise, only masters are used to achieve session consistency. A slave is considered up-to-date and checked if it has already replicated the global transaction ID from option_value. Please note, searching appropriate slaves is an expensive and slow operation. Use the feature sparsely, if the master cannot handle the read load alone.

The MYSQLND_MS_QOS_OPTION_AGE option can be combined with the MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL service level, to filter out asynchronous slaves that lag more seconds behind the master than option_value. If set, the plugin will only consider slaves for reading if SHOW SLAVE STATUS reports Slave_IO_Running=Yes, Slave_SQL_Running=Yes and Seconds_Behind_Master <= option_value. Please note, searching appropriate slaves is an expensive and slow operation. Use the feature sparsely in version 1.2.0. Future versions may improve the algorithm used to identify candidates. Please, see the MySQL reference manual about the precision, accuracy and limitations of the MySQL administrative command SHOW SLAVE STATUS.

option_value

Parameter value for the service level option. See also the service_level_option parameter.

Rückgabewerte

Returns true if the connections service level has been switched to the requested. Otherwise, returns false

Anmerkungen

Hinweis:

mysqlnd_ms_set_qos() requires PHP >= 5.4.0 and PECL mysqlnd_ms >= 1.2.0. Internally, it is using a mysqlnd library C functionality not available with PHP 5.3.

Please note, all MySQL 5.6 production versions do not provide clients with enough information to use GTIDs for enforcing session consistency. In the worst case, the plugin will choose the master only.

Beispiele

Beispiel #1 mysqlnd_ms_set_qos() example

<?php
/* Open mysqlnd_ms connection using mysqli, PDO_MySQL or mysql extension */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli)
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* Session consistency: read your writes */
$ret = mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION);
if (!$ret)
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

/* Will use master and return fresh data, client can see his last write */
if (!$res = $mysqli->query("SELECT item, price FROM orders WHERE order_id = 1"))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

/* Back to default: use of all slaves and masters permitted, stale data can happen */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
?>

Siehe auch

  • mysqlnd_ms_get_last_gtid() - Returns the latest global transaction ID
  • Service level and consistency concept
  • Filter concept


Sets a callback for user-defined read/write splitting

  • « mysqlnd_ms_set_qos
  • mysqlnd_ms_xa_begin »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Sets a callback for user-defined read/write splitting

mysqlnd_ms_set_user_pick_server

(PECL mysqlnd_ms < 1.1.0)

mysqlnd_ms_set_user_pick_server — Sets a callback for user-defined read/write splitting

Beschreibung

mysqlnd_ms_set_user_pick_server ( string $function ) : bool

Sets a callback for user-defined read/write splitting. The plugin will call the callback only if pick[]=user is the default rule for server picking in the relevant section of the plugins configuration file.

The plugins built-in read/write query split mechanism decisions can be overwritten in two ways. The easiest way is to prepend the query string with the SQL hints MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH or MYSQLND_MS_LAST_USED_SWITCH. Using SQL hints one can control, for example, whether a query shall be send to the MySQL replication master server or one of the slave servers. By help of SQL hints it is not possible to pick a certain slave server for query execution.

Full control on server selection can be gained using a callback function. Use of a callback is recommended to expert users only because the callback has to cover all cases otherwise handled by the plugin.

The plugin will invoke the callback function for selecting a server from the lists of configured master and slave servers. The callback function inspects the query to run and picks a server for query execution by returning the hosts URI, as found in the master and slave list.

If the lazy connections are enabled and the callback chooses a slave server for which no connection has been established so far and establishing the connection to the slave fails, the plugin will return an error upon the next action on the failed connection, for example, when running a query. It is the responsibility of the application developer to handle the error. For example, the application can re-run the query to trigger a new server selection and callback invocation. If so, the callback must make sure to select a different slave, or check slave availability, before returning to the plugin to prevent an endless loop.

Parameter-Liste

function

The function to be called. Class methods may also be invoked statically using this function by passing array($classname, $methodname) to this parameter. Additionally class methods of an object instance may be called by passing array($objectinstance, $methodname) to this parameter.

Rückgabewerte

Host to run the query on. The host URI is to be taken from the master and slave connection lists passed to the callback function. If callback returns a value neither found in the master nor in the slave connection lists the plugin will fallback to the second pick method configured via the pick[] setting in the plugin configuration file. If not second pick method is given, the plugin falls back to the build-in default pick method for server selection.

Anmerkungen

Hinweis:

mysqlnd_ms_set_user_pick_server() is available with PECL mysqlnd_ms < 1.1.0. It has been replaced by the user filter. Please, check the Change History for upgrade notes.

Beispiele

Beispiel #1 mysqlnd_ms_set_user_pick_server() example

[myapp]
master[] = localhost
slave[] = 192.168.2.27:3306
slave[] = 192.168.78.136:3306
pick[] = user
<?php

function pick_server($connected, $query, $master, $slaves, $last_used)
{
 static $slave_idx = 0;
 static $num_slaves = NULL;
 if (is_null($num_slaves))
  $num_slaves = count($slaves);

 /* default: fallback to the plugins build-in logic */
 $ret = NULL;

 printf("User has connected to '%s'...\n", $connected);
 printf("... deciding where to run '%s'\n", $query);

 $where = mysqlnd_ms_query_is_select($query);
 switch ($where)
 {
  case MYSQLND_MS_QUERY_USE_MASTER:
   printf("... using master\n");
   $ret = $master[0];
   break;
  case MYSQLND_MS_QUERY_USE_SLAVE:
   /* SELECT or SQL hint for using slave */
   if (stristr($query, "FROM table_on_slave_a_only"))
   {
    /* a table which is only on the first configured slave  */
    printf("... access to table available only on slave A detected\n");
    $ret = $slaves[0];
   }
   else
   {
    /* round robin */
    printf("... some read-only query for a slave\n");
    $ret = $slaves[$slave_idx++ % $num_slaves];
   }
   break;
  case MYSQLND_MS_QUERY_LAST_USED:
   printf("... using last used server\n");
   $ret = $last_used;
   break;
 }

 printf("... ret = '%s'\n", $ret);
 return $ret;
}

mysqlnd_ms_set_user_pick_server("pick_server");

$mysqli = new mysqli("myapp", "root", "root", "test");

if (!($res = $mysqli->query("SELECT 1 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT 2 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT * FROM table_on_slave_a_only")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

User has connected to 'myapp'...
... deciding where to run 'SELECT 1 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.2.27:3306'
User has connected to 'myapp'...
... deciding where to run 'SELECT 2 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.78.136:3306'
User has connected to 'myapp'...
... deciding where to run 'SELECT * FROM table_on_slave_a_only'
... access to table available only on slave A detected
... ret = 'tcp://192.168.2.27:3306'

Siehe auch

  • mysqlnd_ms_query_is_select() - Find whether to send the query to the master, the slave or the last used MySQL server
  • Filter concept
  • user filter


Starts a distributed/XA transaction among MySQL servers

  • « mysqlnd_ms_set_user_pick_server
  • mysqlnd_ms_xa_commit »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Starts a distributed/XA transaction among MySQL servers

mysqlnd_ms_xa_begin

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_begin — Starts a distributed/XA transaction among MySQL servers

Beschreibung

mysqlnd_ms_xa_begin ( mixed $connection , string $gtrid , int $timeout = ? ) : int

Starts a XA transaction among MySQL servers. PECL/mysqlnd_ms acts as a transaction coordinator the distributed transaction.

Once a global transaction has been started, the plugin injects appropriate XA BEGIN SQL statements on all MySQL servers used in the following. The global transaction is either ended by calling mysqlnd_ms_xa_commit(), mysqlnd_ms_xa_rollback() or by an implicit rollback in case of an error.

During a global transaction, the plugin tracks all server switches, for example, when switching from one MySQL shard to another MySQL shard. Immediately before a query is run on a server that has not been participating in the global transaction yet, XA BEGIN is executed on the server. From a users perspective the injection happens during a call to a query execution function such as mysqli_query(). Should the injection fail an error is reported to the caller of the query execution function. The failing server does not become a participant in the global transaction. The user may retry executing a query on the server and hereby retry injecting XA BEGIN, abort the global transaction because not all required servers can participate, or ignore and continue the global without the failed server.

Reasons to fail executing XA BEGIN include but are not limited to a server being unreachable or the server having an open, concurrent XA transaction using the same xid.

Please note, global and local transactions are mutually exclusive. You cannot start a XA transaction when you have a local transaction open. The local transaction must be ended first. The plugin tries to detect this conflict as early as possible. It monitors API calls for controlling local transactions to learn about the current state. However, if using SQL statements for local transactions such as BEGIN, the plugin may not know the current state and the conflict is not detected before XA BEGIN is injected and executed.

The use of other XA resources but MySQL servers is not supported by the function. To carry out a global transaction among, for example, a MySQL server and another vendors database system, you should issue the systems SQL commands yourself.

Hinweis: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

Parameter-Liste

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

gtrid

Global transaction identifier (gtrid). The gtrid is a binary string up to 64 bytes long. Please note, depending on your character set settings, 64 characters may require more than 64 bytes to store.

In accordance with the MySQL SQL syntax, XA transactions use identifiers made of three parts. An xid consists of a global transaction identifier (gtrid), a branch qualifier (bqual) and a format identifier (formatID). Only the global transaction identifier can and needs to be set.

The branch qualifier and format identifier are set automatically. The details should be considered implementation dependent, which may change without prior notice. In version 1.6 the branch qualifier is consecutive number which is incremented whenever a participant joins the global transaction.

timeout

Timeout in seconds. The default value is 60 seconds.

The timeout is a hint to the garbage collection. If a transaction is recorded to take longer than expected, the garbage collection begins checking the transactions status.

Setting a low value may make the garbage collection check the progress too often. Please note, checking the status of a global transaction may involve connecting to all recorded participants and possibly issuing queries on the servers.

Rückgabewerte

Returns true if there is no open local or global transaction and a new global transaction can be started. Otherwise, returns false

Siehe auch

  • Quickstart XA/Distributed transactions
  • Runtime configuration
  • mysqlnd_ms_get_stats() - Returns query distribution and connection statistics


Commits a distributed/XA transaction among MySQL servers

  • « mysqlnd_ms_xa_begin
  • mysqlnd_ms_xa_gc »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Commits a distributed/XA transaction among MySQL servers

mysqlnd_ms_xa_commit

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_commit — Commits a distributed/XA transaction among MySQL servers

Beschreibung

mysqlnd_ms_xa_commit ( mixed $connection , string $gtrid ) : bool

Commits a global transaction among MySQL servers started by mysqlnd_ms_xa_begin().

If any of the global transaction participants fails to commit an implicit rollback is performed. It may happen that not all cases can be handled during the rollback. For example, no attempts will be made to reconnect to a participant after the connection to the participant has been lost. Solving cases that cannot easily be rolled back is left to the garbage collection.

Hinweis: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

Parameter-Liste

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

gtrid

Global transaction identifier (gtrid).

Rückgabewerte

Returns true if the global transaction has been committed. Otherwise, returns false

Siehe auch

  • Quickstart XA/Distributed transactions
  • Runtime configuration
  • mysqlnd_ms_get_stats() - Returns query distribution and connection statistics


Garbage collects unfinished XA transactions after severe errors

  • « mysqlnd_ms_xa_commit
  • mysqlnd_ms_xa_rollback »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Garbage collects unfinished XA transactions after severe errors

mysqlnd_ms_xa_gc

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_gc — Garbage collects unfinished XA transactions after severe errors

Beschreibung

mysqlnd_ms_xa_gc ( mixed $connection , string $gtrid = ? , bool $ignore_max_retries = ? ) : int

Garbage collects unfinished XA transactions.

The XA protocol is a blocking protocol. There exist cases when servers participating in a global transaction cannot make progress when the transaction coordinator crashes or disconnects. In such a case, the MySQL servers keep waiting for instructions to finish the XA transaction in question. Because transactions occupy resources, transactions should always be terminated properly.

Garbage collection requires configuring a state store to track global transactions. Should a PHP client crash in the middle of a transaction and a new PHP client be started, then the built-in garbage collection can learn about the aborted global transaction and terminate it. If you do not configure a state store, the garbage collection cannot perform any cleanup tasks.

The state store should be crash-safe and be highly available to survive its own crash. Currently, only MySQL is supported as a state store.

Garbage collection can also be performed automatically in the background. See the plugin configuration directive garbage_collection for details.

Hinweis: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

Parameter-Liste

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

gtrid

Global transaction identifier (gtrid). If given, the garbage collection considers the transaction only. Otherwise, the state store is scanned for any unfinished transaction.

ignore_max_retries

Whether to ignore the plugin configuration max_retries setting. If garbage collection continuously fails and the max_retries limit is reached prior to finishing the failed global transaction, you can attempt further runs prior to investigating the cause and solving the issue manually by issuing appropriate SQL statements on the participants. Setting the parameter has the same effect as temporarily setting max_retries = 0.

Rückgabewerte

Returns true if garbage collection was successful. Otherwise, returns false

Siehe auch

  • Quickstart XA/Distributed transactions
  • Runtime configuration
  • State store configuration
  • mysqlnd_ms_get_stats() - Returns query distribution and connection statistics


Rolls back a distributed/XA transaction among MySQL servers

  • « mysqlnd_ms_xa_gc
  • Change History »
  • PHP Manual
  • Mysqlnd_ms Funktionen
  • Rolls back a distributed/XA transaction among MySQL servers

mysqlnd_ms_xa_rollback

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_rollback — Rolls back a distributed/XA transaction among MySQL servers

Beschreibung

mysqlnd_ms_xa_rollback ( mixed $connection , string $gtrid ) : int

Rolls back a global transaction among MySQL servers started by mysqlnd_ms_xa_begin().

If any of the global transaction participants fails to rollback the situation is left to be solved by the garbage collection.

Hinweis: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

Parameter-Liste

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

gtrid

Global transaction identifier (gtrid).

Rückgabewerte

Returns true if the global transaction has been rolled back. Otherwise, returns false

Siehe auch

  • Quickstart XA/Distributed transactions
  • Runtime configuration
  • mysqlnd_ms_get_stats() - Returns query distribution and connection statistics


Change History

Inhaltsverzeichnis

  • PECL/mysqlnd_ms 1.6 series
  • PECL/mysqlnd_ms 1.5 series
  • PECL/mysqlnd_ms 1.4 series
  • PECL/mysqlnd_ms 1.3 series
  • PECL/mysqlnd_ms 1.2 series
  • PECL/mysqlnd_ms 1.1 series
  • PECL/mysqlnd_ms 1.0 series

This change history is a high level summary of selected changes that may impact applications and/or break backwards compatibility.

See also the CHANGES file in the source distribution for a complete list of changes.


PECL/mysqlnd_ms 1.6 series

1.6.0-alpha

  • Release date: TBD
  • Motto/theme: Maintenance and initial MySQL Fabric support

Hinweis:

This is the current development series. All features are at an early stage. Changes may happen at any time without prior notice. Please, do not use this version in production environments.

The documentation may not reflect all changes yet.

Bug fixes

  • Won't fix: #66616 R/W split fails: QOS with mysqlnd_get_last_gtid with built-in MySQL GTID

    This is not a bug in the plugins implementation but a server side feature limitation not considered and documented before. MySQL 5.6 built-in GTIDs cannot be used to ensure session consistency when reading from slaves in all cases. In the worst case the plugin will not consider using the slaves and fallback to using the master. There will be no wrong results but no benefit from doing GTID checks either.

  • Fixed #66064 - Random once load balancer ignoring weights

    Due to a config parsing bug random load balancing has ignored node weights if, and only if, the sticky flag was set (random once).

  • Fixed #65496 - Wrong check for slave delay

    The quality of service filter has erroneously ignored slaves that lag for zero (0) seconds if a any maximum lag had been set. Although a slave was not lagging behind, it was excluded from the load balancing list if a maximum age was set by the QoS filter. This was due to using the wrong comparison operator in the source of the filter.

  • Fixed #65408 - Compile failure with -Werror=format-security

Feature changes

  • Introduced an internal connection pool. When using Fabric and switching from shard group A to shard group B, we are replacing the entire list of masters and slaves. This troubles the connections state alignment logic and some filters. Some filters cache information on the master and slave lists. The new internal connection pool abstraction allows us to inform the filters of changes, hence they can update their caches.

    Later on, the pool can also be used to reduce connection overhead. Assume you are switching from a shard group to another and back again. Whenever the switch is done, the pool's active server (and connection) lists are replaced. However, no longer used connections are not necessarily closed immediately but can be kept in the pool for later reuse.

    Please note, the connection pool is internalat this point. There are some new statistics to monitor it. However, you cannot yet configure pool size of behaviour.

  • Added a basic distributed transaction abstraction. XA transactions can are supported ever since using standard SQL calls. This is inconvenient as XA participants must be managed manually. PECL/mysqlnd_ms introduces API calls to control XA transaction among MySQL servers. When using the new functions, PECL/mysqlnd_ms acts as a transaction coordinator. After starting a distributed transaction, the plugin tracks all servers involved until the transaction is ended and issues appropriate SQL statements on the XA participants.

    This is useful, for example, when using Fabric and sharding. When using Fabric the actual shard servers involved in a business transaction may not be known in advance. Thus, manually controlling a transaction that spawns multiple shards becomes difficult. Please, be warned about current limitations.

  • Introduced automatic retry loop for transient errors and corresponding statistic to count the number of implicit retries. Some distributed database clusters use transient errors to hint a client to retry its operation in a bit. Most often, the client is then supposed to halt execution (sleep) for a short moment before retrying the desired operation. Immediately failing over to another node is not necessary in response to the error. Instead, a retry loop can be performed. Common situation when using MySQL Cluster.

  • Introduced automatic retry loop for transient errors and corresponding statistic to count the number of implicit retries. Some distributed database clusters use transient errors to hint a client to retry its operation in a bit. Most often, the client is then supposed to halt execution (sleep) for a short moment before retrying the desired operation. Immediately failing over to another node is not necessary in response to the error. Instead, a retry loop can be performed. Common situation when using MySQL Cluster.

  • Introduced most basic support for the MySQL Fabric High Availability and sharding framework.

    Please, consider this pre-alpha quality. Both the server side framework and the client side code is supposed to work flawless considering the MySQL Fabric quickstart examples only. However, testing has not been performed to the level of prior plugin alpha releases. Either sides are moving targets, API changes may happen at any time without prior warning.

    As this is work in progress, the manual may not yet reflect allow feature limitations and known bugs.

  • New statistics to monitor the Fabric XML RPC call sharding.lookup_servers: fabric_sharding_lookup_servers_success, fabric_sharding_lookup_servers_failure, fabric_sharding_lookup_servers_time_total, fabric_sharding_lookup_servers_bytes_total, fabric_sharding_lookup_servers_xml_failure.

  • New functions related to MySQL Fabric:
mysqlnd_ms_fabric_select_shard(),
mysqlnd_ms_fabric_select_global(),
mysqlnd_ms_dump_servers().


PECL/mysqlnd_ms 1.5 series

1.5.1-stable

  • Release date: 06/2013
  • Motto/theme: Sharding support, improved transaction support

Hinweis:

This is the current stable series. Use this version in production environments.

The documentation is complete.

1.5.0-alpha

  • Release date: 03/2013
  • Motto/theme: Sharding support, improved transaction support

Bug fixes

  • Fixed #60605 PHP segmentation fault when mysqlnd_ms is enabled.

  • Setting transaction stickiness disables all load balancing, including automatic failover, for the duration of a transaction. So far connection switches could have happened in the middle of a transaction in multi-master configurations and during automatic failover although transaction monitoring had detected transaction boundaries properly.

  • BC break and bug fix. SQL hints enforcing the use of a specific kind of server (MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH, MYSQLND_MS_LAST_USED_SWITCH) are ignored for the duration of a transaction of transaction stickiness is enabled and transaction boundaries have been detected properly.

    This is a change in behaviour. However, it is also a bug fix and a step to align behaviour. If, in previous versions, transaction stickiness, one of the above listed SQL hints and the quality of service filtering was combined it could happened that the SQL hints got ignored. In some case the SQL hints did work, in other cases they did not. The new behaviour is more consistent. SQL hints will always be ignore for the duration of a transaction, if transaction stickiness is enabled.

    Please note, transaction boundary detection continues to be based on API call monitoring. SQL commands controlling transactions are not monitored.

  • BC break and bug fix. Calls to mysqlnd_ms_set_qos() will fail when done in the middle of a transaction if transaction stickiness is enabled. Connection switches are not allowed for the duration of a transaction. Changing the quality of service likely results on a different set of servers qualifying for query execution, possibly making it necessary to switch connections. Thus, the call is not allowed in during an active transaction. The quality of server can, however, be changed in between transactions.

Feature changes

  • Introduced the node_group filter. The filter lets you organize servers (master and slaves) into groups. Queries can be directed to a certain group of servers by prefixing the query statement with a SQL hint/comment that contains the groups configured name. Grouping can be used for partitioning and sharding, and also to optimize for local caching. In the case of sharding, a group name can be thought of like a shard key. All queries for a given shard key will be executed on the configured shard. Note: both the client and server must support sharding for sharding to function with mysqlnd_ms.

  • Extended configuration file validation during PHP startup (RINIT). An E_WARNING level error will be thrown if the configuration file can not be read (permissions), is empty, or the file (JSON) could not be parsed. Warnings may appear in log files, which depending on how PHP is configured.

    Distributions that aim to provide a pre-configured setup, including a configuration file stub, are asked to put {} into the configuration file to prevent this warning about an invalid configuration file.

    Further configuration file validation is done when parsing sections upon opening a connection. Please, note that there may still be situations when an invalid plugin configuration file does not lead to proper error messages but a failure to connect.

  • As of PHP 5.5.0, improved support for transaction boundaries detection was added for mysqli. The mysqli extension has been modified to use the new C API calls of the mysqlnd library to begin, commit, and rollback a transaction or savepoint. If trx_stickiness is used to enable transaction aware load balancing, the mysqli_begin(), mysqli_commit() and mysqli_rollback() functions will now be monitered by the plugin, to go along with the mysqli_autocommit() function that was already supported. All SQL features to control transactions are also available through the improved mysqli transaction control related functions. This means that it is not required to issue SQL statements instead of using API calls. Applications using the appropriate API calls can be load balanced by PECL/mysqlnd_ms in a completely transaction-aware way.

    Please note, PDO_MySQL has not been updated yet to utilize the new mysqlnd API calls. Thus, transaction boundary detection with PDO_MySQL continues to be limited to the monitoring by passing in PDO::ATTR_AUTOCOMMIT to PDO::setAttribute().

  • Introduced trx_stickiness=on. This trx_stickiness option differs from trx_stickiness=master as it tries to execute a read-only transaction on a slave, if quality of service (consistency level) allows the use of a slave. Read-only transactions were introduced in MySQL 5.6, and they offer performance gains.

  • Query cache support is considered beta if used with the mysqli API. It should work fine with primary copy based clusters. For all other APIs, this feature continues to be called experimental.

  • The code examples in the mysqlnd_ms source were updated.


PECL/mysqlnd_ms 1.4 series

1.4.2-stable

  • Release date: 08/2012
  • Motto/theme: Tweaking based on user feedback

1.4.1-beta

  • Release date: 08/2012
  • Motto/theme: Tweaking based on user feedback

Bug fixes

  • Fixed build with PHP 5.5

1.4.0-alpha

  • Release date: 07/2012
  • Motto/theme: Tweaking based on user feedback

Feature changes

  • BC break: Renamed plugin configuration setting ini_file to config_file. In early versions the plugin configuration file used ini style. Back then the configuration setting was named accordingly. It has now been renamed to reflect the newer file format and to distinguish it from PHP's own ini file (configuration directives file).

  • Introduced new default charset setting server_charset to allow proper escaping before a connection is opened. This is most useful when using lazy connections, which are a default.

  • Introduced wait_for_gtid_timeout setting to throttle slave reads that need session consistency. If global transaction identifier are used and the service level is set to session consistency, the plugin tries to find up-to-date slaves. The slave status check is done by a SQL statement. If nothing else is set, the slave status is checked only one can the search for more up-to-date slaves continues immediately thereafter. Setting wait_for_gtid_timeout instructs the plugin to poll a slaves status for wait_for_gtid_timeout seconds if the first execution of the SQL statement has shown that the slave is not up-to-date yet. The poll will be done once per second. This way, the plugin will wait for slaves to catch up and throttle the client.

  • New failover strategy loop_before_master. By default the plugin does no failover. It is possible to enable automatic failover if a connection attempt fails. Upto version 1.3 only master strategy existed to failover to a master if a slave connection fails. loop_before_master is similar but tries all other slaves before attempting to connect to the master if a slave connection fails.

    The number of attempts can be limited using the max_retries option. Failed hosts can be remembered and skipped in load balancing for the rest of the web request. max_retries and remember_failed are considered experimental although decent stability is given. Syntax and semantics may change in the future without prior notice.


PECL/mysqlnd_ms 1.3 series

1.3.2-stable

  • Release date: 04/2012
  • Motto/theme: see 1.3.0-alpha

Bug fixes

  • Fixed problem with multi-master where although in a transaction the queries to the master weren't sticky and were spread all over the masters (RR). Still not sticky for Random. Random_once is not affected.

1.3.1-beta

  • Release date: 04/2012
  • Motto/theme: see 1.3.0-alpha

Bug fixes

  • Fixed problem with building together with QC.

1.3.0-alpha

  • Release date: 04/2012
  • Motto/theme: Query caching through quality-of-service concept

The 1.3 series aims to improve the performance of applications and the overall load of an asynchronous MySQL cluster, for example, a MySQL cluster using MySQL Replication. This is done by transparently replacing a slave access with a local cache access, if the application allows it by setting an appropriate quality of service flag. When using MySQL replication a slave can serve stale data. An application using MySQL replication must continue to work correctly with stale data. Given that the application is know to work correctly with stale data, the slave access can transparently be replace with a local cache access.

PECL/mysqlnd_qc serves as a cache backend. PECL/mysqlnd_qc supports use of various storage locations, among others main memory, APC and MEMCACHE.

Feature changes

  • Added cache option to quality-of-service (QoS) filter.

    • New configure option enable-mysqlnd-ms-cache-support
    • New constant MYSQLND_MS_HAVE_CACHE_SUPPORT.
    • New constant MYSQLND_MS_QOS_OPTION_CACHE to be used with mysqlnd_ms_set_qos().

  • Support for built-in global transaction identifier feature of MySQL 5.6.5-m8 or newer.


PECL/mysqlnd_ms 1.2 series

1.2.1-beta

  • Release date: 01/2012
  • Motto/theme: see 1.2.0-alpha

Minor test changes.

1.2.0-alpha

  • Release date: 11/2011
  • Motto/theme: Global Transaction ID injection and quality-of-service concept

In version 1.2 the focus continues to be on supporting MySQL database clusters with asynchronous replication. The plugin tries to make using the cluster introducing a quality-of-service filter which applications can use to define what service quality they need from the cluster. Service levels provided are eventual consistency with optional maximum age/slave slag, session consistency and strong consistency.

Additionally the plugin can do client-side global transaction id injection to make manual master failover easier.

Feature changes

  • Introduced quality-of-service (QoS) filter. Service levels provided by QoS filter:

    • eventual consistency, optional option slave lag
    • session consistency, optional option GTID
    • strong consistency

  • Added the mysqlnd_ms_set_qos() function to set the required connection quality at runtime. The new constants related to mysqlnd_ms_set_qos() are:

    • MYSQLND_MS_QOS_CONSISTENCY_STRONG
    • MYSQLND_MS_QOS_CONSISTENCY_SESSION
    • MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL
    • MYSQLND_MS_QOS_OPTION_GTID
    • MYSQLND_MS_QOS_OPTION_AGE

  • Added client-side global transaction id injection (GTID).

  • New statistics related to GTID:

    • gtid_autocommit_injections_success
    • gtid_autocommit_injections_failure
    • gtid_commit_injections_success
    • gtid_commit_injections_failure
    • gtid_implicit_commit_injections_success
    • gtid_implicit_commit_injections_failure

  • Added mysqlnd_ms_get_last_gtid() to fetch the last global transaction id.

  • Enabled support for multi master without slaves.


PECL/mysqlnd_ms 1.1 series

1.1.0

  • Release date: 09/2011
  • Motto/theme: Cover replication basics with production quality

The 1.1 and 1.0 series expose a similar feature set. Internally, the 1.1 series has been refactored to plan for future feature additions. A new configuration file format has been introduced, and limitations have been lifted. And the code quality and quality assurance has been improved.

Feature changes

  • Added the (chainable) filter concept:

    • BC break: mysqlnd_ms_set_user_pick_server() has been removed. Thehttp://svn.php.net/viewvc/pecl/mysqlnd_ms/trunk/ user filter has been introduced to replace it. The filter offers similar functionality, but see below for an explanation of the differences.

  • New powerful JSON based configuration syntax.
  • Lazy connections improved: security relevant, and state changing commands are covered.
  • Support for (native) prepared statements.

  • New statistics: use_master_guess, use_slave_guess.

    • BC break: Semantics of statistics changed for use_slave, use_master. Future changes are likely. Please see, mysqlnd_ms_get_stats().

  • List of broadcasted messages extended by ssl_set.
  • Library calls now monitored to remember settings for lazy connections: change_user, select_db, set_charset, set_autocommit.
  • Introduced mysqlnd_ms.disable_rw_split. The configuration setting allows using the load balancing and lazy connection functionality independently of read write splitting.

Bug fixes

  • Fixed PECL #22724 - Server switching (mysqlnd_ms_query_is_select() case sensitive)
  • Fixed PECL #22784 - Using mysql_connect and mysql_select_db did not work
  • Fixed PECL #59982 - Unusable extension with --enable-mysqlnd-ms-table-filter. Use of the option is NOT supported. You must not used it. Added note to m4.
  • Fixed Bug #60119 - host="localhost" lost in mysqlnd_ms_get_last_used_connection()

The mysqlnd_ms_set_user_pick_server() function was removed, and replaced in favor of a new user filter. You can no longer set a callback function using mysqlnd_ms_set_user_pick_server() at runtime, but instead have to configure it in the plugins configuration file. The user filter will pass the same arguments to the callback as before. Therefore, you can continue to use the same procedural function as a callback.callback It is no longer possible to use static class methods, or class methods of an object instance, as a callback. Doing so will cause the function executing a statement handled by the plugin to emit an E_RECOVERABLE_ERROR level error, which might look like: "(mysqlnd_ms) Specified callback (picker) is not a valid callback." Note: this may halt your application.


PECL/mysqlnd_ms 1.0 series

1.0.1-alpha

  • Release date: 04/2011
  • Motto/theme: bug fix release

1.0.0-alpha

  • Release date: 04/2011
  • Motto/theme: Cover replication basics to test user feedback

The first release of practical use. It features basic automatic read-write splitting, SQL hints to overrule automatic redirection, load balancing of slave requests, lazy connections, and optional, automatic use of the master after the first write.

The public feature set is close to that of the 1.1 release.

1.0.0-pre-alpha

  • Release date: 09/2010
  • Motto/theme: Proof of concept

Initial check-in. Essentially a demo of the mysqlnd plugin API.


Mysqlnd query result cache plugin

  • Einführung
  • Quickstart and Examples
    • Architecture and Concepts
    • Setup
    • Caching queries
    • Setting the TTL
    • Pattern based caching
    • Slam defense
    • Finding cache candidates
    • Measuring cache efficiency
    • Beyond TTL: user-defined storage
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
  • Vordefinierte Konstanten
  • mysqlnd_qc Funktionen
    • mysqlnd_qc_clear_cache — Flush all cache contents
    • mysqlnd_qc_get_available_handlers — Returns a list of available storage handler
    • mysqlnd_qc_get_cache_info — Returns information on the current handler, the number of cache entries and cache entries, if available
    • mysqlnd_qc_get_core_stats — Statistics collected by the core of the query cache
    • mysqlnd_qc_get_normalized_query_trace_log — Returns a normalized query trace log for each query inspected by the query cache
    • mysqlnd_qc_get_query_trace_log — Returns a backtrace for each query inspected by the query cache
    • mysqlnd_qc_set_cache_condition — Set conditions for automatic caching
    • mysqlnd_qc_set_is_select — Installs a callback which decides whether a statement is cached
    • mysqlnd_qc_set_storage_handler — Change current storage handler
    • mysqlnd_qc_set_user_handlers — Sets the callback functions for a user-defined procedural storage handler
  • Change History
    • PECL/mysqlnd_qc 1.2 series
    • PECL/mysqlnd_qc 1.1 series
    • PECL/mysqlnd_qc 1.0 series


Einführung

The mysqlnd query result cache plugin adds easy to use client-side query caching to all PHP MySQL extensions using mysqlnd.

As of version PHP 5.3.3 the MySQL native driver for PHP ( mysqlnd) features an internal plugin C API. C plugins, such as the query cache plugin, can extend the functionality of mysqlnd.

Mysqlnd plugins such as the query cache plugin operate transparent from a user perspective. The cache plugin supports all PHP applications and all PHP MySQL extensions ( mysqli, mysql, PDO_MYSQL). It does not change existing APIs.

No significant application changes are required to cache a query. The cache has two operation modes. It will either cache all queries (not recommended) or only those queries marked with a certain SQL hint (recommended).

Key Features

  • Transparent and therefore easy to use

    • supports all PHP MySQL extensions

    • no API changes

    • very little application changes required

  • Flexible invalidation strategy

    • Time-to-Live (TTL)

    • user-defined

  • Storage with different scope and life-span

    • Default (Hash, process memory)

    • APC

    • MEMCACHE

    • sqlite

    • user-defined

  • Built-in slam defense to prevent cache stampeding.

Limitations

The current 1.0.1 release of PECL mysqlnd_qc does not support PHP 5.4. Version 1.1.0-alpha lifts this limitation.

Prepared statements and unbuffered queries are fully supported. Thus, the plugin is capable of caching all statements issued with mysqli or PDO_MySQL, which are the only two PHP MySQL APIs to offer prepared statement support.

On the name

The shortcut mysqlnd_qc stands for mysqlnd query cache plugin. The name was chosen for a quick-and-dirty proof-of-concept. In the beginning the developers did not expect to continue using the code base. Sometimes PECL/mysqlnd_qc has also been called client-side query result set cache.


Quickstart and Examples

Inhaltsverzeichnis

  • Architecture and Concepts
  • Setup
  • Caching queries
  • Setting the TTL
  • Pattern based caching
  • Slam defense
  • Finding cache candidates
  • Measuring cache efficiency
  • Beyond TTL: user-defined storage

The mysqlnd query cache plugin is easy to use. This quickstart will demo typical use-cases, and provide practical advice on getting started.

It is strongly recommended to read the reference sections in addition to the quickstart. It is safe to begin with the quickstart. However, before using the plugin in mission critical environments we urge you to read additionally the background information from the reference sections.

Most of the examples use the mysqli extension because it is the most feature complete PHP MySQL extension. However, the plugin can be used with any PHP MySQL extension that is using the mysqlnd library.


Architecture and Concepts

The query cache plugin is implemented as a PHP extension. It is written in C and operates under the hood of PHP. During the startup of the PHP interpreter, it gets registered as a mysqlnd plugin to replace selected mysqlnd C methods. Hereby, it can change the behaviour of any PHP MySQL extension (mysqli, PDO_MYSQL, mysql) compiled to use the mysqlnd library without changing the extensions API. This makes the plugin compatible with each and every PHP MySQL application. Because existing APIs are not changed, it is almost transparent to use. Please, see the mysqlnd plugin API description for a discussion of the advantages of the plugin architecture and a comparison with proxy based solutions.

Transparent to use

At PHP run time PECL/mysqlnd_qc can proxy queries send from PHP (mysqlnd) to the MySQL server. It then inspects the statement string to find whether it shall cache its results. If so, result set is cached using a storage handler and further executions of the statement are served from the cache for a user-defined period. The Time to Live (TTL) of the cache entry can either be set globally or on a per statement basis.

A statement is either cached if the plugin is instructed to cache all statements globally using a or, if the query string starts with the SQL hint (/*qc=on*/). The plugin is capable of caching any query issued by calling appropriate API calls of any of the existing PHP MySQL extensions.

Flexible storage: various storage handler

Various storage handler are supported to offer different scopes for cache entries. Different scopes allow for different degrees in sharing cache entries among clients.

  • default (built-in): process memory, scope: process, one or more web requests depending on PHP deployment model used

  • APC: shared memory, scope: single server, multiple web requests

  • SQLite: memory or file, scope: single server, multiple web requests

  • MEMCACHE: main memory, scope: single or multiple server, multiple web requests

  • user (built-in): user-defined - any, scope: user-defined - any

Support for the APC, SQLite and MEMCACHE storage handler has to be enabled at compile time. The default and user handler are built-in. It is possible to switch between compiled-in storage handlers on a per query basis at run time. However, it is recommended to pick one storage handler and use it for all cache entries.

Built-in slam defense to avoid overloading

To avoid overload situations the cache plugin has a built-in slam defense mechanism. If a popular cache entries expires many clients using the cache entries will try to refresh the cache entry. For the duration of the refresh many clients may access the database server concurrently. In the worst case, the database server becomes overloaded and it takes more and more time to refresh the cache entry, which in turn lets more and more clients try to refresh the cache entry. To prevent this from happening the plugin has a slam defense mechanism. If slam defense is enabled and the plugin detects an expired cache entry it extends the life time of the cache entry before it refreshes the cache entry. This way other concurrent accesses to the expired cache entry are still served from the cache for a certain time. The other concurrent accesses to not trigger a concurrent refresh. Ideally, the cache entry gets refreshed by the client which extended the cache entries lifespan before other clients try to refresh the cache and potentially cause an overload situation.

Unique approach to caching

PECL/mysqlnd_qc has a unique approach to caching result sets that is superior to application based cache solutions. Application based solutions first fetch a result set into PHP variables. Then, the PHP variables are serialized for storage in a persistent cache, and then unserialized when fetching. The mysqlnd query cache stores the raw wire protocol data sent from MySQL to PHP in its cache and replays it, if still valid, on a cache hit. This way, it saves an extra serialization step for a cache put that all application based solutions have to do. It can store the raw wire protocol data in the cache without having to serialize into a PHP variable first and deserializing the PHP variable for storing in the cache again.


Setup

The plugin is implemented as a PHP extension. See also the installation instructions to install the » PECL/mysqlnd_qc extension.

Compile or configure the PHP MySQL extension (mysqli, PDO_MYSQL, mysql) that you plan to use with support for the mysqlnd library. PECL/mysqlnd_qc is a plugin for the mysqlnd library. To use the plugin with any of the existing PHP MySQL extensions (APIs), the extension has to use the mysqlnd library.

Then, load the extension into PHP and activate the plugin in the PHP configuration file using the PHP configuration directive named mysqlnd_qc.enable_qc.

Beispiel #1 Enabling the plugin (php.ini)

mysqlnd_qc.enable_qc=1


Caching queries

There are four ways to trigger caching of a query.

  • Use of SQL hints on a per query basis
  • User supplied callbacks to decide on a per query basis, for example, using mysqlnd_qc_is_select()
  • mysqlnd_set_cache_condition() for rule based automatic per query decisions
  • mysqlnd_qc.cache_by_default = 1 to cache all queries blindly

Use of SQL hints and mysqlnd_qc.cache_by_default = 1 are explained below. Please, refer to the function reference on mysqlnd_qc_is_select() for a description of using a callback and, mysqlnd_qc_set_cache_condition() on how to set rules for automatic caching.

A SQL hint is a SQL standards compliant comment. As a SQL comment it is ignored by the database. A statement is considered eligible for caching if it either begins with the SQL hint enabling caching or it is a SELECT statement.

An individual query which shall be cached must begin with the SQL hint /*qc=on*/. It is recommended to use the PHP constant MYSQLND_QC_ENABLE_SWITCH instead of using the string value.

  • not eligible for caching and not cached: INSERT INTO test(id) VALUES (1)

  • not eligible for caching and not cached: SHOW ENGINES

  • eligible for caching but uncached: SELECT id FROM test

  • eligible for caching and cached: /*qc=on*/SELECT id FROM test

The examples SELECT statement string is prefixed with the MYSQLND_QC_ENABLE_SWITCH SQL hint to enable caching of the statement. The SQL hint must be given at the very beginning of the statement string to enable caching.

Beispiel #1 Using the MYSQLND_QC_ENABLE_SWITCH SQL hint

mysqlnd_qc.enable_qc=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* Will be cached because of the SQL hint */
$start = microtime(true);
$res   = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 1");

var_dump($res->fetch_assoc());
$res->free();

printf("Total time uncached query: %.6fs\n", microtime(true) - $start);

/* Cache hit */
$start = microtime(true);
$res   = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 1");

var_dump($res->fetch_assoc());
$res->free();

printf("Total time cached query: %.6fs\n", microtime(true) - $start);
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

array(1) {
  ["id"]=>
  string(1) "1"
}
Total time uncached query: 0.000740s
array(1) {
  ["id"]=>
  string(1) "1"
}
Total time cached query: 0.000098s

If nothing else is configured, as it is the case in the quickstart example, the plugin will use the built-in default storage handler. The default storage handler uses process memory to hold a cache entry. Depending on the PHP deployment model, a PHP process may serve one or more web requests. Please, consult the web server manual for details. Details make no difference for the examples given in the quickstart.

The query cache plugin will cache all queries regardless if the query string begins with the SQL hint which enables caching or not, if the PHP configuration directive mysqlnd_qc.cache_by_default is set to 1. The setting mysqlnd_qc.cache_by_default is evaluated by the core of the query cache plugins. Neither the built-in nor user-defined storage handler can overrule the setting.

The SQL hint /*qc=off*/ can be used to disable caching of individual queries if mysqlnd_qc.cache_by_default = 1 It is recommended to use the PHP constant MYSQLND_QC_DISABLE_SWITCH instead of using the string value.

Beispiel #2 Using the MYSQLND_QC_DISABLE_SWITCH SQL hint

mysqlnd_qc.enable_qc=1
mysqlnd_qc.cache_by_default=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* Will be cached although no SQL hint is present because of mysqlnd_qc.cache_by_default = 1*/
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

$mysqli->query("DELETE FROM test WHERE id = 1");

/* Cache hit - no automatic invalidation and still valid! */
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Cache miss - query must not be cached because of the SQL hint */
$res = $mysqli->query("/*" . MYSQLND_QC_DISABLE_SWITCH . "*/SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "1"
}
NULL

PECL/mysqlnd_qc forbids caching of statements for which at least one column from the statements result set shows no table name in its meta data by default. This is usually the case for columns originating from SQL functions such as NOW() or LAST_INSERT_ID(). The policy aims to prevent pitfalls if caching by default is used.

Beispiel #3 Example showing which type of statements are not cached

mysqlnd_qc.enable_qc=1
mysqlnd_qc.cache_by_default=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1)");

for ($i = 0; $i < 3; $i++) {

    $start = microtime(true);

    /* Note: statement will not be cached because of NOW() use */
    $res = $mysqli->query("SELECT id, NOW() AS _time FROM test");
    $row = $res->fetch_assoc();

    /* dump results */
    var_dump($row);

    printf("Total time: %.6fs\n", microtime(true) - $start);

    /* pause one second */
    sleep(1);
}
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:43:10"
}
Total time: 0.000540s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:43:11"
}
Total time: 0.000555s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:43:12"
}
Total time: 0.000549s

It is possible to enable caching for all statements including those which has columns in their result set for which MySQL reports no table, such as the statement from the example. Set mysqlnd_qc.cache_no_table = 1 to enable caching of such statements. Please, note the difference in the measured times for the above and below examples.

Beispiel #4 Enabling caching for all statements using the mysqlnd_qc.cache_no_table ini setting

mysqlnd_qc.enable_qc=1
mysqlnd_qc.cache_by_default=1
mysqlnd_qc.cache_no_table=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1)");

for ($i = 0; $i < 3; $i++) {

    $start = microtime(true);

    /* Note: statement will not be cached because of NOW() use */
    $res = $mysqli->query("SELECT id, NOW() AS _time FROM test");
    $row = $res->fetch_assoc();

    /* dump results */
    var_dump($row);

    printf("Total time: %.6fs\n", microtime(true) - $start);

    /* pause one second */
    sleep(1);
}
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:47:45"
}
Total time: 0.000546s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:47:45"
}
Total time: 0.000187s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:47:45"
}
Total time: 0.000167s

Hinweis:

Although mysqlnd_qc.cache_no_table = 1 has been created for use with mysqlnd_qc.cache_by_default = 1 it is bound it. The plugin will evaluate the mysqlnd_qc.cache_no_table whenever a query is to be cached, no matter whether caching has been enabled using a SQL hint or any other measure.


Setting the TTL

The default invalidation strategy of the query cache plugin is Time to Live (TTL). The built-in storage handlers will use the default TTL defined by the PHP configuration value mysqlnd_qc.ttl unless the query string contains a hint for setting a different TTL. The TTL is specified in seconds. By default cache entries expire after 30 seconds

The example sets mysqlnd_qc.ttl=3 to cache statements for three seconds by default. Every second it updates a database table record to hold the current time and executes a SELECT statement to fetch the record from the database. The SELECT statement is cached for three seconds because it is prefixed with the SQL hint enabling caching. The output verifies that the query results are taken from the cache for the duration of three seconds before they are refreshed.

Beispiel #1 Setting the TTL with the mysqlnd_qc.ttl ini setting

mysqlnd_qc.enable_qc=1
mysqlnd_qc.ttl=3
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id VARCHAR(255))");

for ($i = 0; $i < 7; $i++) {

    /* update DB row  */
    if (!$mysqli->query("DELETE FROM test") ||
        !$mysqli->query("INSERT INTO test(id) VALUES (NOW())"))
      /* Of course, a real-life script should do better error handling */
      die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

    /* select latest row but cache results */
    $query  = "/*" . MYSQLND_QC_ENABLE_SWITCH . "*/";
    $query .= "SELECT id AS _time FROM test";
    if (!($res = $mysqli->query($query)) ||
        !($row = $res->fetch_assoc()))
    {
      printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
    }
    $res->free();
    printf("Wall time %s - DB row time %s\n", date("H:i:s"), $row['_time']);

    /* pause one second */
    sleep(1);
}
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

Wall time 14:55:59 - DB row time 2012-01-11 14:55:59
Wall time 14:56:00 - DB row time 2012-01-11 14:55:59
Wall time 14:56:01 - DB row time 2012-01-11 14:55:59
Wall time 14:56:02 - DB row time 2012-01-11 14:56:02
Wall time 14:56:03 - DB row time 2012-01-11 14:56:02
Wall time 14:56:04 - DB row time 2012-01-11 14:56:02
Wall time 14:56:05 - DB row time 2012-01-11 14:56:05

As can be seen from the example, any TTL based cache can serve stale data. Cache entries are not automatically invalidated, if underlying data changes. Applications using the default TTL invalidation strategy must be able to work correctly with stale data.

A user-defined cache storage handler can implement any invalidation strategy to work around this limitation.

The default TTL can be overruled using the SQL hint /*qc_tt=seconds*/. The SQL hint must be appear immediately after the SQL hint which enables caching. It is recommended to use the PHP constant MYSQLND_QC_TTL_SWITCH instead of using the string value.

Beispiel #2 Setting TTL with SQL hints

<?php
$start = microtime(true);

/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

printf("Default TTL\t: %d seconds\n", ini_get("mysqlnd_qc.ttl"));

/* Will be cached for 2 seconds */
$sql = sprintf("/*%s*//*%s%d*/SELECT id FROM test WHERE id = 1", MYSQLND_QC_ENABLE_SWITCH, MYSQLND_QC_TTL_SWITCH, 2);
$res = $mysqli->query($sql);

var_dump($res->fetch_assoc());
$res->free();

$mysqli->query("DELETE FROM test WHERE id = 1");
sleep(1);

/* Cache hit - no automatic invalidation and still valid! */
$res = $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();

sleep(2);

/* Cache miss - cache entry has expired */
$res = $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();

printf("Script runtime\t: %d seconds\n", microtime(true) - $start);
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

Default TTL     : 30 seconds
array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "1"
}
NULL
Script runtime  : 3 seconds


Pattern based caching

An application has three options for telling PECL/mysqlnd_qc whether a particular statement shall be used. The most basic approach is to cache all statements by setting mysqlnd_qc.cache_by_default = 1. This approach is often of little practical value. But it enables users to make a quick estimation about the maximum performance gains from caching. An application designed to use a cache may be able to prefix selected statements with the appropriate SQL hints. However, altering an applications source code may not always be possible or desired, for example, to avoid problems with software updates. Therefore, PECL/mysqlnd_qc allows setting a callback which decides if a query is to be cached.

The callback is installed with the mysqlnd_qc_set_is_select() function. The callback is given the statement string of every statement inspected by the plugin. Then, the callback can decide whether to cache the function. The callback is supposed to return false if the statement shall not be cached. A return value of true makes the plugin try to add the statement into the cache. The cache entry will be given the default TTL ( mysqlnd_qc.ttl). If the callback returns a numerical value it is used as the TTL instead of the global default.

Beispiel #1 Setting a callback with mysqlnd_qc_set_is_select()

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_statistics=1
<?php
/* callback which decides if query is cached */
function is_select($query) {
    static $patterns = array(
      /* true - use default from mysqlnd_qc.ttl */
      "@SELECT\s+.*\s+FROM\s+test@ismU" => true,
      /* 3 - use TTL = 3 seconds */
      "@SELECT\s+.*\s+FROM\s+news@ismU" => 3
    );

    /* check if query does match pattern */
    foreach ($patterns as $pattern => $ttl) {
        if (preg_match($pattern, $query)) {
            printf("is_select(%45s): cache\n", $query);
            return $ttl;
        }
    }
    printf("is_select(%45s): do not cache\n", $query);
    return false;
}
/* install callback */
mysqlnd_qc_set_is_select("is_select");

/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* cache put */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* cache hit */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* cache put */
$mysqli->query("SELECT * FROM test");

$stats = mysqlnd_qc_get_core_stats();
printf("Cache put: %d\n", $stats['cache_put']);
printf("Cache hit: %d\n", $stats['cache_hit']);
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

is_select(                    DROP TABLE IF EXISTS test): do not cache
is_select(                    CREATE TABLE test(id INT)): do not cache
is_select(    INSERT INTO test(id) VALUES (1), (2), (3)): do not cache
is_select(             SELECT id FROM test WHERE id = 1): cache
is_select(             SELECT id FROM test WHERE id = 1): cache
is_select(                           SELECT * FROM test): cache
Cache put: 2
Cache hit: 1

The examples callback tests if a statement string matches a pattern. If this is the case, it either returns true to cache the statement using the global default TTL or an alternative TTL.

To minimize application changes the callback can put into and registered in an auto prepend file.


Slam defense

A badly designed cache can do more harm than good. In the worst case a cache can increase database server load instead of minimizing it. An overload situation can occur if a highly shared cache entry expires (cache stampeding).

Cache entries are shared and reused to a different degree depending on the storage used. The default storage handler stores cache entries in process memory. Thus, a cache entry can be reused for the life-span of a process. Other PHP processes cannot access it. If Memcache is used, a cache entry can be shared among multiple PHP processes and even among multiple machines, depending on the set up being used.

If a highly shared cache entry stored, for example, in Memcache expires, many clients gets a cache miss. Many client requests can no longer be served from the cache but try to run the underlying query on the database server. Until the cache entry is refreshed, more and more clients contact the database server. In the worst case, a total lost of service is the result.

The overload can be avoided using a storage handler which limits the reuse of cache entries to few clients. Then, at the average, its likely that only a limited number of clients will try to refresh a cache entry concurrently.

Additionally, the built-in slam defense mechanism can and should be used. If slam defense is activated an expired cache entry is given an extended life time. The first client getting a cache miss for the expired cache entry tries to refresh the cache entry within the extended life time. All other clients requesting the cache entry are temporarily served from the cache although the original TTL of the cache entry has expired. The other clients will not experience a cache miss before the extended life time is over.

Beispiel #1 Enabling the slam defense mechanism

mysqlnd_qc.slam_defense=1
mysqlnd_qc.slam_defense_ttl=1

The slam defense mechanism is enabled with the PHP configuration directive mysqlnd_qc.slam_defense. The extended life time of a cache entry is set with mysqlnd_qc.slam_defense_ttl.

The function mysqlnd_qc_get_core_stats() returns an array of statistics. The statistics slam_stale_refresh and slam_stale_hit are incremented if slam defense takes place.

It is not possible to give a one-fits-all recommendation on the slam defense configuration. Users are advised to monitor and test their setup and derive settings accordingly.


Finding cache candidates

A statement should be considered for caching if it is executed often and has a long run time. Cache candidates are found by creating a list of statements sorted by the product of the number of executions multiplied by the statements run time. The function mysqlnd_qc_get_query_trace_log() returns a query log which help with the task.

Collecting a query trace is a slow operation. Thus, it is disabled by default. The PHP configuration directive mysqlnd_qc.collect_query_trace is used to enable it. The functions trace contains one entry for every query issued before the function is called.

Beispiel #1 Collecting a query trace

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_query_trace=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");

/* dummy queries to fill the query trace */
for ($i = 0; $i < 2; $i++) {
    $res = $mysqli->query("SELECT 1 AS _one FROM DUAL");
    $res->free();
}

/* dump trace */
var_dump(mysqlnd_qc_get_query_trace_log());
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

array(2) {
  [0]=>
  array(8) {
    ["query"]=>
    string(26) "SELECT 1 AS _one FROM DUAL"
    ["origin"]=>
    string(102) "#0 qc.php(7): mysqli->query('SELECT 1 AS _on...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(25)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [1]=>
  array(8) {
    ["query"]=>
    string(26) "SELECT 1 AS _one FROM DUAL"
    ["origin"]=>
    string(102) "#0 qc.php(7): mysqli->query('SELECT 1 AS _on...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(8)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
}

Assorted information is given in the trace. Among them timings and the origin of the query call. The origin property holds a code backtrace to identify the source of the query. The depth of the backtrace can be limited with the PHP configuration directive mysqlnd_qc.query_trace_bt_depth. The default depth is 3.

Beispiel #2 Setting the backtrace depth with the mysqlnd_qc.query_trace_bt_depth ini setting

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_query_trace=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* dummy queries to fill the query trace */
for ($i = 0; $i < 3; $i++) {
    $res = $mysqli->query("SELECT id FROM test WHERE id = " . $mysqli->real_escape_string($i));
    $res->free();
}

$trace = mysqlnd_qc_get_query_trace_log();
$summary = array();
foreach ($trace as $entry) {
    if (!isset($summary[$entry['query']])) {
        $summary[$entry['query']] = array(
            "executions" => 1,
            "time"       => $entry['run_time'] + $entry['store_time'],
        );
    } else {
        $summary[$entry['query']]['executions']++;
        $summary[$entry['query']]['time'] += $entry['run_time'] + $entry['store_time'];
    }
}

foreach ($summary as $query => $details) {
    printf("%45s: %5dms (%dx)\n",
    $query, $details['time'], $details['executions']);
}
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

                    DROP TABLE IF EXISTS test:     0ms (1x)
                    CREATE TABLE test(id INT):     0ms (1x)
    INSERT INTO test(id) VALUES (1), (2), (3):     0ms (1x)
             SELECT id FROM test WHERE id = 0:    25ms (1x)
             SELECT id FROM test WHERE id = 1:    10ms (1x)
             SELECT id FROM test WHERE id = 2:     9ms (1x)


Measuring cache efficiency

PECL/mysqlnd_qc offers three ways to measure the cache efficiency. The function mysqlnd_qc_get_normalized_query_trace_log() returns statistics aggregated by the normalized query string, mysqlnd_qc_get_cache_info() gives storage handler specific information which includes a list of all cached items, depending on the storage handler. Additionally, the core of PECL/mysqlnd_qc collects high-level summary statistics aggregated per PHP process. The high-level statistics are returned by mysqlnd_qc_get_core_stats().

The functions mysqlnd_qc_get_normalized_query_trace_log() and mysqlnd_qc_get_core_stats() will not collect data unless data collection has been enabled through their corresponding PHP configuration directives. Data collection is disabled by default for performance considerations. It is configurable with the mysqlnd_qc.time_statistics option, which determines if timing information should be collected. Collection of time statistics is enabled by default but only performed if data collection as such has been enabled. Recording time statistics causes extra system calls. In most cases, the benefit of the monitoring outweighs any potential performance penalty of the additional system calls.

Beispiel #1 Collecting statistics data with the mysqlnd_qc.time_statistics ini setting

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_statistics=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* dummy queries */
for ($i = 1; $i <= 4; $i++) {
    $query = sprintf("/*%s*/SELECT id FROM test WHERE id = %d", MYSQLND_QC_ENABLE_SWITCH, $i % 2);
    $res   = $mysqli->query($query);

    $res->free();
}

var_dump(mysqlnd_qc_get_core_stats());
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

array(26) {
  ["cache_hit"]=>
  string(1) "2"
  ["cache_miss"]=>
  string(1) "2"
  ["cache_put"]=>
  string(1) "2"
  ["query_should_cache"]=>
  string(1) "4"
  ["query_should_not_cache"]=>
  string(1) "3"
  ["query_not_cached"]=>
  string(1) "3"
  ["query_could_cache"]=>
  string(1) "4"
  ["query_found_in_cache"]=>
  string(1) "2"
  ["query_uncached_other"]=>
  string(1) "0"
  ["query_uncached_no_table"]=>
  string(1) "0"
  ["query_uncached_no_result"]=>
  string(1) "0"
  ["query_uncached_use_result"]=>
  string(1) "0"
  ["query_aggr_run_time_cache_hit"]=>
  string(2) "28"
  ["query_aggr_run_time_cache_put"]=>
  string(3) "900"
  ["query_aggr_run_time_total"]=>
  string(3) "928"
  ["query_aggr_store_time_cache_hit"]=>
  string(2) "14"
  ["query_aggr_store_time_cache_put"]=>
  string(2) "40"
  ["query_aggr_store_time_total"]=>
  string(2) "54"
  ["receive_bytes_recorded"]=>
  string(3) "136"
  ["receive_bytes_replayed"]=>
  string(3) "136"
  ["send_bytes_recorded"]=>
  string(2) "84"
  ["send_bytes_replayed"]=>
  string(2) "84"
  ["slam_stale_refresh"]=>
  string(1) "0"
  ["slam_stale_hit"]=>
  string(1) "0"
  ["request_counter"]=>
  int(1)
  ["process_hash"]=>
  int(1929695233)
}

For a quick overview, call mysqlnd_qc_get_core_stats(). It delivers cache usage, cache timing and traffic related statistics. Values are aggregated on a per process basis for all queries issued by any PHP MySQL API call.

Some storage handler, such as the default handler, can report cache entries, statistics related to the entries and meta data for the underlying query through the mysqlnd_qc_get_cache_info() function. Please note, that the information returned depends on the storage handler. Values are aggregated on a per process basis.

Beispiel #2 Example mysqlnd_qc_get_cache_info() usage

mysqlnd_qc.enable_qc=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* dummy queries to fill the query trace */
for ($i = 1; $i <= 4; $i++) {
    $query = sprintf("/*%s*/SELECT id FROM test WHERE id = %d", MYSQLND_QC_ENABLE_SWITCH, $i % 2);
    $res   = $mysqli->query($query);

    $res->free();
}

var_dump(mysqlnd_qc_get_cache_info());
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

array(4) {
  ["num_entries"]=>
  int(2)
  ["handler"]=>
  string(7) "default"
  ["handler_version"]=>
  string(5) "1.0.0"
  ["data"]=>
  array(2) {
    ["Localhost via UNIX socket
3306
root
test|/*qc=on*/SELECT id FROM test WHERE id = 1"]=>
    array(2) {
      ["statistics"]=>
      array(11) {
        ["rows"]=>
        int(1)
        ["stored_size"]=>
        int(71)
        ["cache_hits"]=>
        int(1)
        ["run_time"]=>
        int(391)
        ["store_time"]=>
        int(27)
        ["min_run_time"]=>
        int(16)
        ["max_run_time"]=>
        int(16)
        ["min_store_time"]=>
        int(8)
        ["max_store_time"]=>
        int(8)
        ["avg_run_time"]=>
        int(8)
        ["avg_store_time"]=>
        int(4)
      }
      ["metadata"]=>
      array(1) {
        [0]=>
        array(8) {
          ["name"]=>
          string(2) "id"
          ["orig_name"]=>
          string(2) "id"
          ["table"]=>
          string(4) "test"
          ["orig_table"]=>
          string(4) "test"
          ["db"]=>
          string(4) "test"
          ["max_length"]=>
          int(1)
          ["length"]=>
          int(11)
          ["type"]=>
          int(3)
        }
      }
    }
    ["Localhost via UNIX socket
3306
root
test|/*qc=on*/SELECT id FROM test WHERE id = 0"]=>
    array(2) {
      ["statistics"]=>
      array(11) {
        ["rows"]=>
        int(0)
        ["stored_size"]=>
        int(65)
        ["cache_hits"]=>
        int(1)
        ["run_time"]=>
        int(299)
        ["store_time"]=>
        int(13)
        ["min_run_time"]=>
        int(11)
        ["max_run_time"]=>
        int(11)
        ["min_store_time"]=>
        int(6)
        ["max_store_time"]=>
        int(6)
        ["avg_run_time"]=>
        int(5)
        ["avg_store_time"]=>
        int(3)
      }
      ["metadata"]=>
      array(1) {
        [0]=>
        array(8) {
          ["name"]=>
          string(2) "id"
          ["orig_name"]=>
          string(2) "id"
          ["table"]=>
          string(4) "test"
          ["orig_table"]=>
          string(4) "test"
          ["db"]=>
          string(4) "test"
          ["max_length"]=>
          int(0)
          ["length"]=>
          int(11)
          ["type"]=>
          int(3)
        }
      }
    }
  }
}

It is possible to further break down the granularity of statistics to the level of the normalized statement string. The normalized statement string is the statements string with all parameters replaced with question marks. For example, the two statements SELECT id FROM test WHERE id = 0 and SELECT id FROM test WHERE id = 1 are normalized into SELECT id FROM test WHERE id = ?. Their both statistics are aggregated into one entry for SELECT id FROM test WHERE id = ?.

Beispiel #3 Example mysqlnd_qc_get_normalized_query_trace_log() usage

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_normalized_query_trace=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* dummy queries to fill the query trace */
for ($i = 1; $i <= 4; $i++) {
    $query = sprintf("/*%s*/SELECT id FROM test WHERE id = %d", MYSQLND_QC_ENABLE_SWITCH, $i % 2);
    $res   = $mysqli->query($query);

    $res->free();
}

var_dump(mysqlnd_qc_get_normalized_query_trace_log());
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

array(4) {
  [0]=>
  array(9) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [1]=>
  array(9) {
    ["query"]=>
    string(27) "CREATE TABLE test (id INT )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [2]=>
  array(9) {
    ["query"]=>
    string(46) "INSERT INTO test (id ) VALUES (? ), (? ), (? )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [3]=>
  array(9) {
    ["query"]=>
    string(31) "SELECT id FROM test WHERE id =?"
    ["occurences"]=>
    int(4)
    ["eligible_for_caching"]=>
    bool(true)
    ["avg_run_time"]=>
    int(179)
    ["min_run_time"]=>
    int(11)
    ["max_run_time"]=>
    int(393)
    ["avg_store_time"]=>
    int(12)
    ["min_store_time"]=>
    int(7)
    ["max_store_time"]=>
    int(25)
  }
}

The source distribution of PECL/mysqlnd_qc contains a directory web/ in which web based monitoring scripts can be found which give an example how to write a cache monitor. Please, follow the instructions given in the source.

Since PECL/mysqlnd_qc 1.1.0 it is possible to write statistics into a log file. Please, see mysqlnd_qc.collect_statistics_log_file.


Beyond TTL: user-defined storage

The query cache plugin supports the use of user-defined storage handler. User-defined storage handler can use arbitrarily complex invalidation algorithms and support arbitrary storage media.

All user-defined storage handlers have to provide a certain interface. The functions of the user-defined storage handler will be called by the core of the cache plugin. The necessary interface consists of seven public functions. Both procedural and object oriented user-defined storage handler must implement the same set of functions.

Beispiel #1 Using a user-defined storage handler

<?php
/* Enable default caching of all statements */
ini_set("mysqlnd_qc.cache_by_default", 1);

/* Procedural user defined storage handler functions */

$__cache = array();

function get_hash($host_info, $port, $user, $db, $query) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    return md5(sprintf("%s%s%s%s%s", $host_info, $port, $user, $db, $query));
}

function find_query_in_cache($key) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    if (isset($__cache[$key])) {
        $tmp = $__cache[$key];
        if ($tmp["valid_until"] < time()) {
            unset($__cache[$key]);
            $ret = NULL;
        } else {
            $ret = $__cache[$key]["data"];
        }
    } else {
        $ret = NULL;
    }

    return $ret;
}

function return_to_cache($key) {
    /*
     Called on cache hit after cached data has been processed,
     may be used for reference counting
    */
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());
}

function add_query_to_cache_if_not_exists($key, $data, $ttl, $run_time, $store_time, $row_count) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    $__cache[$key] = array(
        "data"               => $data,
        "row_count"          => $row_count,
        "valid_until"        => time() + $ttl,
        "hits"               => 0,
        "run_time"           => $run_time,
        "store_time"         => $store_time,
        "cached_run_times"   => array(),
        "cached_store_times" => array(),
    );

    return TRUE;
}

function query_is_select($query) {
    printf("\t%s('%s'): ", __FUNCTION__, $query);

    $ret = FALSE;
    if (stristr($query, "SELECT") !== FALSE) {
        /* cache for 5 seconds */
        $ret = 5;
    }

    printf("%s\n", (FALSE === $ret) ? "FALSE" : $ret);
    return $ret;
}

function update_query_run_time_stats($key, $run_time, $store_time) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    if (isset($__cache[$key])) {
        $__cache[$key]['hits']++;
        $__cache[$key]["cached_run_times"][] = $run_time;
        $__cache[$key]["cached_store_times"][] = $store_time;
    }
}

function get_stats($key = NULL) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    if ($key && isset($__cache[$key])) {
        $stats = $__cache[$key];
    } else {
        $stats = array();
        foreach ($__cache as $key => $details) {
            $stats[$key] = array(
               'hits'              => $details['hits'],
               'bytes'             => strlen($details['data']),
               'uncached_run_time' => $details['run_time'],
               'cached_run_time'   => (count($details['cached_run_times']))
                                      ? array_sum($details['cached_run_times']) / count($details['cached_run_times'])
                                      : 0,
            );
        }
    }

    return $stats;
}

function clear_cache() {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    $__cache = array();
    return TRUE;
}

/* Install procedural user-defined storage handler */
if (!mysqlnd_qc_set_user_handlers("get_hash", "find_query_in_cache",
    "return_to_cache", "add_query_to_cache_if_not_exists",
    "query_is_select", "update_query_run_time_stats", "get_stats", "clear_cache")) {

        printf("Failed to install user-defined storage handler\n");
}

/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

printf("\nCache put/cache miss\n");

$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Delete record to verify we get our data from the cache */
$mysqli->query("DELETE FROM test WHERE id = 1");

printf("\nCache hit\n");

$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

printf("\nDisplay cache statistics\n");
var_dump(mysqlnd_qc_get_cache_info());

printf("\nFlushing cache, cache put/cache miss");
var_dump(mysqlnd_qc_clear_cache());

$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

        query_is_select('DROP TABLE IF EXISTS test'): FALSE
        query_is_select('CREATE TABLE test(id INT)'): FALSE
        query_is_select('INSERT INTO test(id) VALUES (1), (2)'): FALSE

Cache put/cache miss
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        add_query_to_cache_if_not_exists(6)
array(1) {
  ["id"]=>
  string(1) "1"
}
        query_is_select('DELETE FROM test WHERE id = 1'): FALSE

Cache hit
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        return_to_cache(1)
        update_query_run_time_stats(3)
array(1) {
  ["id"]=>
  string(1) "1"
}

Display cache statistics
        get_stats(0)
array(4) {
  ["num_entries"]=>
  int(1)
  ["handler"]=>
  string(4) "user"
  ["handler_version"]=>
  string(5) "1.0.0"
  ["data"]=>
  array(1) {
    ["18683c177dc89bb352b29965d112fdaa"]=>
    array(4) {
      ["hits"]=>
      int(1)
      ["bytes"]=>
      int(71)
      ["uncached_run_time"]=>
      int(398)
      ["cached_run_time"]=>
      int(4)
    }
  }
}

Flushing cache, cache put/cache miss    clear_cache(0)
bool(true)
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        add_query_to_cache_if_not_exists(6)
NULL


  • « Beyond TTL: user-defined storage
  • Anforderungen »
  • PHP Manual
  • mysqlnd_qc
  • Installation/Konfiguration

Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation
  • Laufzeit-Konfiguration


Anforderungen

PHP 5.3.3 or a newer version of PHP.

PECL/mysqlnd_qc is a mysqlnd plugin. It plugs into the mysqlnd library. To use you this plugin with a PHP MySQL extension, the extension (mysqli, mysql, or PDO_MYSQL) must enable the mysqlnd library.

For using MEMCACHE storage handler: Use libmemcache 0.38 or newer. PECL/mysqlnd_qc 1.2 has been tested with libmemcache 1.4.0.

For using sqlite storage handler: Use the sqlite3 extension that bundled with PHP.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/mysqlnd_qc

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

mysqlnd_qc Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
mysqlnd_qc.enable_qc | 1 | PHP_INI_SYSTEM |
mysqlnd_qc.ttl | 30 | PHP_INI_ALL |
mysqlnd_qc.cache_by_default | 0 | PHP_INI_ALL |
mysqlnd_qc.cache_no_table | 0 | PHP_INI_ALL |
mysqlnd_qc.use_request_time | 0 | PHP_INI_ALL |
mysqlnd_qc.time_statistics | 1 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics | 0 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics_log_file | /tmp/mysqlnd_qc.stats | PHP_INI_SYSTEM |
mysqlnd_qc.collect_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.query_trace_bt_depth | 3 | PHP_INI_SYSTEM |
mysqlnd_qc.collect_normalized_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.ignore_sql_comments | 1 | PHP_INI_ALL |
mysqlnd_qc.slam_defense | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.slam_defense_ttl | 30 | PHP_INI_SYSTEM |
mysqlnd_qc.std_data_copy | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.apc_prefix | qc_ | PHP_INI_ALL |
mysqlnd_qc.memc_server | 127.0.0.1 | PHP_INI_ALL |
mysqlnd_qc.memc_port | 11211 | PHP_INI_ALL |
mysqlnd_qc.sqlite_data_file | :memory: | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

mysqlnd_qc.enable_qc int

Enables or disables the plugin. If disabled the extension will not plug into mysqlnd to proxy internal mysqlnd C API calls.

mysqlnd_qc.ttl int

Default Time-to-Live (TTL) for cache entries in seconds.

mysqlnd_qc.cache_by_default int

Cache all queries regardless if they begin with the SQL hint that enables caching of a query or not. Storage handler cannot overrule the setting. It is evaluated by the core of the plugin.

mysqlnd_qc.cache_no_table int

Whether to cache queries with no table name in any of columns meta data of their result set, for example, SELECT SLEEP(1), SELECT NOW(), SELECT SUBSTRING().

mysqlnd_qc.use_request_time int

Use PHP global request time to avoid gettimeofday() system calls? If using APC storage handler it should be set to the value of apc.use_request_time, if not warnings will be generated.

mysqlnd_qc.time_statistics int

Collect run time and store time statistics using gettimeofday() system call? Data will be collected only if you also set mysqlnd_qc.collect_statistics = 1,

mysqlnd_qc.collect_statistics int

Collect statistics for mysqlnd_qc_get_core_stats()? Does not influence storage handler statistics! Handler statistics can be an integral part of the handler internal storage format. Therefore, collection of some handler statistics cannot be disabled.

mysqlnd_qc.collect_statistics-log-file int

If mysqlnd_qc.collect_statistics and mysqlnd_qc.collect_statistics_log_file are set, the plugin will dump statistics into the specified log file at every 10th web request during PHP request shutdown. The log file needs to be writable by the web server user.

Since 1.1.0.

mysqlnd_qc.collect_query_trace int

Collect query back traces?

mysqlnd_qc.query_trace_bt_depth int

Maximum depth/level of a query code backtrace.

mysqlnd_qc.ignore_sql_comments int

Whether to remove SQL comments from a query string before hashing it to generate a cache key. Disable if you do not want two statemts such as SELECT /*my_source_ip=123*/ id FROM test and SELECT /*my_source_ip=456*/ id FROM test to refer to the same cache entry.

Since 1.1.0.

mysqlnd_qc.slam_defense int

Activates handler based slam defense (cache stampeding protection) if available. Supported by Default and APC storage handler

mysqlnd_qc.slam_defense_ttl int

TTL for stale cache entries which are served while another client updates the entries. Supported by APC storage handler.

mysqlnd_qc.collect_normalized_query_trace int

Collect aggregated normalized query traces? The setting has no effect by default. You compile the extension using the define NORM_QUERY_TRACE_LOG to make use of the setting.

mysqlnd_qc.std_data_copy int

Default storage handler: copy cached wire data? EXPERIMENTAL – use default setting!

mysqlnd_qc.apc_prefix string

The APC storage handler stores data in the APC user cache. The setting sets a prefix to be used for cache entries.

mysqlnd_qc.memc_server string

MEMCACHE storage handler: memcache server host.

mysqlnd_qc.memc_port int

MEMCACHE storage handler: memcached server port.

mysqlnd_qc.sqlite_data_file string

sqlite storage handler: data file. Any setting but :memory: may be of little practical value.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SQL hint related

Beispiel #1 Using SQL hint constants

The query cache is controlled by SQL hints. SQL hints are used to enable and disable caching. SQL hints can be used to set the TTL of a query.

The SQL hints recognized by the query cache can be manually changed at compile time. This makes it possible to use mysqlnd_qc in environments in which the default SQL hints are already taken and interpreted by other systems. Therefore it is recommended to use the SQL hint string constants instead of manually adding the default SQL hints to the query string.

<?php
/* Use constants for maximum portability */
$query = "/*" . MYSQLND_QC_ENABLE_SWITCH . "*/SELECT id FROM test";

/* Valid but less portable: default TTL */
$query = "/*qc=on*/SELECT id FROM test";

/* Valid but less portable: per statement TTL */
$query = "/*qc=on*//*qc_ttl=5*/SELECT id FROM test";

printf("MYSQLND_QC_ENABLE_SWITCH: %s\n", MYSQLND_QC_ENABLE_SWITCH);
printf("MYSQLND_QC_DISABLE_SWITCH: %s\n", MYSQLND_QC_DISABLE_SWITCH);
printf("MYSQLND_QC_TTL_SWITCH: %s\n", MYSQLND_QC_TTL_SWITCH);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

MYSQLND_QC_ENABLE_SWITCH: qc=on
MYSQLND_QC_DISABLE_SWITCH: qc=off
MYSQLND_QC_TTL_SWITCH: qc_ttl=

MYSQLND_QC_ENABLE_SWITCH (string)
SQL hint used to enable caching of a query.
MYSQLND_QC_DISABLE_SWITCH (string)
SQL hint used to disable caching of a query if mysqlnd_qc.cache_by_default = 1.
MYSQLND_QC_TTL_SWITCH (string)
SQL hint used to set the TTL of a result set.
MYSQLND_QC_SERVER_ID_SWITCH (string)
This SQL hint should not be used in general. It is needed by PECL/mysqlnd_ms to group cache entries for one statement but originating from different physical connections. If the hint is used connection settings such as user, hostname and charset are not considered for generating a cache key of a query. Instead the given value and the query string are used as input to the hashing function that generates the key. PECL/mysqlnd_ms may, if instructed, cache results from MySQL Replication slaves. Because it can hold many connections to the slave the cache key shall not be formed from the user, hostname or other settings that may vary for the various slave connections. Instead, PECL/mysqlnd_ms provides an identifier which refers to the group of slave connections that shall be enabled to share cache entries no matter which physical slave connection was to generate the cache entry. Use of this feature outside of PECL/mysqlnd_ms is not recommended.

mysqlnd_qc_set_cache_condition() related

Beispiel #2 Example mysqlnd_qc_set_cache_condition() usage

The function mysqlnd_qc_set_cache_condition() allows setting conditions for automatic caching of statements which don't begin with the SQL hints necessary to manually enable caching.

<?php
/* Cache all accesses to tables with the name "new%" in schema/database "db_example" for 1 second */
if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, "db_example.new%", 1)) {
  die("Failed to set cache condition!");
}

$mysqli = new mysqli("host", "user", "password", "db_example", "port");
/* cached although no SQL hint given  */
$mysqli->query("SELECT id, title FROM news");

$pdo_mysql = new PDO("mysql:host=host;dbname=db_example;port=port", "user", "password");
/* not cached: no SQL hint, no pattern match */
$pdo_mysql->query("SELECT id, title FROM latest_news");
/* cached: TTL 1 second, pattern match */
$pdo_mysql->query("SELECT id, title FROM news");
?>

MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN (int)
Used as a parameter of mysqlnd_qc_set_cache_condition() to set conditions for schema based automatic caching.

Other

The plugin version number can be obtained using either MYSQLND_QC_VERSION, which is the string representation of the numerical version number, or MYSQLND_QC_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_QC_VERSION_ID | 10000

MYSQLND_QC_VERSION (string)
Plugin version string, for example, 1.0.0-prototype.

MYSQLND_QC_VERSION_ID (int)
Plugin version number, for example, 10000.


mysqlnd_qc Funktionen

Inhaltsverzeichnis

  • mysqlnd_qc_clear_cache — Flush all cache contents
  • mysqlnd_qc_get_available_handlers — Returns a list of available storage handler
  • mysqlnd_qc_get_cache_info — Returns information on the current handler, the number of cache entries and cache entries, if available
  • mysqlnd_qc_get_core_stats — Statistics collected by the core of the query cache
  • mysqlnd_qc_get_normalized_query_trace_log — Returns a normalized query trace log for each query inspected by the query cache
  • mysqlnd_qc_get_query_trace_log — Returns a backtrace for each query inspected by the query cache
  • mysqlnd_qc_set_cache_condition — Set conditions for automatic caching
  • mysqlnd_qc_set_is_select — Installs a callback which decides whether a statement is cached
  • mysqlnd_qc_set_storage_handler — Change current storage handler
  • mysqlnd_qc_set_user_handlers — Sets the callback functions for a user-defined procedural storage handler


Flush all cache contents

  • « mysqlnd_qc Funktionen
  • mysqlnd_qc_get_available_handlers »
  • PHP Manual
  • mysqlnd_qc Funktionen
  • Flush all cache contents

mysqlnd_qc_clear_cache

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_clear_cache — Flush all cache contents

Beschreibung

mysqlnd_qc_clear_cache ( ) : bool

Flush all cache contents.

Flushing the cache is a storage handler responsibility. All built-in storage handler but the memcache storage handler support flushing the cache. The memcache storage handler cannot flush its cache contents.

User-defined storage handler may or may not support the operation.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

A return value of false indicates that flushing all cache contents has failed or the operation is not supported by the active storage handler. Applications must not expect that calling the function will always flush the cache.


Returns a list of available storage handler

  • « mysqlnd_qc_clear_cache
  • mysqlnd_qc_get_cache_info »
  • PHP Manual
  • mysqlnd_qc Funktionen
  • Returns a list of available storage handler

mysqlnd_qc_get_available_handlers

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_available_handlers — Returns a list of available storage handler

Beschreibung

mysqlnd_qc_get_available_handlers ( ) : array

Which storage are available depends on the compile time configuration of the query cache plugin. The default storage handler is always available. All other storage handler must be enabled explicitly when building the extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array of available built-in storage handler. For each storage handler the version number and version string is given.

Beispiele

Beispiel #1 mysqlnd_qc_get_available_handlers() example

<?php
var_dump(mysqlnd_qc_get_available_handlers());
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

array(5) {
  ["default"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["user"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["APC"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["MEMCACHE"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["sqlite"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
}

Siehe auch

  • Installation
  • mysqlnd_qc_set_storage_handler() - Change current storage handler


Returns information on the current handler, the number of cache entries and cache entries, if available

  • « mysqlnd_qc_get_available_handlers
  • mysqlnd_qc_get_core_stats »
  • PHP Manual
  • mysqlnd_qc Funktionen
  • Returns information on the current handler, the number of cache entries and cache entries, if available

mysqlnd_qc_get_cache_info

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_cache_info — Returns information on the current handler, the number of cache entries and cache entries, if available

Beschreibung

mysqlnd_qc_get_cache_info ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns information on the current handler, the number of cache entries and cache entries, if available. If and what data will be returned for the cache entries is subject to the active storage handler. Storage handler are free to return any data. Storage handler are recommended to return at least the data provided by the default handler, if technically possible.

The scope of the information is the PHP process. Depending on the PHP deployment model a process may serve one or more web requests.

Values are aggregated for all cache activities on a per storage handler basis. It is not possible to tell how much queries originating from mysqli, PDO_MySQL or mysql.API calls have contributed to the aggregated data values. Use mysqlnd_qc_get_core_stats() to get timing data aggregated for all storage handlers.

Array of cache information

handler string

The active storage handler.

All storage handler. Since 1.0.0.

handler_version string

The version of the active storage handler.

All storage handler. Since 1.0.0.

num_entries int

The number of cache entries. The value depends on the storage handler in use.

The default, APC and SQLite storage handler provide the actual number of cache entries.

The MEMCACHE storage handler always returns 0. MEMCACHE does not support counting the number of cache entries.

If a user defined handler is used, the number of entries of the data property is reported.

Since 1.0.0.

data array

The version of the active storage handler.

Additional storage handler dependent data on the cache entries. Storage handler are requested to provide similar and comparable information. A user defined storage handler is free to return any data.

Since 1.0.0.

The following information is provided by the default storage handler for the data property.

The data property holds a hash. The hash is indexed by the internal cache entry identifier of the storage handler. The cache entry identifier is human-readable and contains the query string leading to the cache entry. Please, see also the example below. The following data is given for every cache entry.

statistics array

Statistics of the cache entry.

Since 1.0.0.

Property | Description | Version
rows | Number of rows of the cached result set. | Since 1.0.0.
stored_size | The size of the cached result set in bytes. This is the size of the payload. The value is not suited for calculating the total memory consumption of all cache entries including the administrative overhead of the cache entries. | Since 1.0.0.
cache_hits | How often the cached entry has been returned. | Since 1.0.0.
run_time | Run time of the statement to which the cache entry belongs. This is the run time of the uncached statement. It is the time between sending the statement to MySQL receiving a reply from MySQL. Run time saved by using the query cache plugin can be calculated like this: cache_hits * ((run_time - avg_run_time) + (store_time - avg_store_time)). | Since 1.0.0.
store_time | Store time of the statements result set to which the cache entry belongs. This is the time it took to fetch and store the results of the uncached statement. | Since 1.0.0.
min_run_time | Minimum run time of the cached statement. How long it took to find the statement in the cache. | Since 1.0.0.
min_store_time | Minimum store time of the cached statement. The time taken for fetching the cached result set from the storage medium and decoding | Since 1.0.0.
avg_run_time | Average run time of the cached statement. | Since 1.0.0.
avg_store_time | Average store time of the cached statement. | Since 1.0.0.
max_run_time | Average run time of the cached statement. | Since 1.0.0.
max_store_time | Average store time of the cached statement. | Since 1.0.0.
valid_until | Timestamp when the cache entry expires. | Since 1.1.0.
metadata array

Metadata of the cache entry. This is the metadata provided by MySQL together with the result set of the statement in question. Different versions of the MySQL server may return different metadata. Unlike with some of the PHP MySQL extensions no attempt is made to hide MySQL server version dependencies and version details from the caller. Please, refer to the MySQL C API documentation that belongs to the MySQL server in use for further details.

The metadata list contains one entry for every column.

Since 1.0.0.

Property | Description | Version
name | The field name. Depending on the MySQL version this may be the fields alias name. | Since 1.0.0.
org_name | The field name. | Since 1.0.0.
table | The table name. If an alias name was used for the table, this usually holds the alias name. | Since 1.0.0.
org_table | The table name. | Since 1.0.0.
db | The database/schema name. | Since 1.0.0.
max_length | The maximum width of the field. Details may vary by MySQL server version. | Since 1.0.0.
length | The width of the field. Details may vary by MySQL server version. | Since 1.0.0.
type | The data type of the field. Details may vary by the MySQL server in use. This is the MySQL C API type constants value. It is recommended to use type constants provided by the mysqli extension to test for its meaning. You should not test for certain type values by comparing with certain numbers. | Since 1.0.0.

The APC storage handler returns the same information for the data property but no metadata. The metadata of a cache entry is set to NULL.

The MEMCACHE storage handler does not fill the data property. Statistics are not available on a per cache entry basis with the MEMCACHE storage handler.

A user defined storage handler is free to provide any data.

Beispiele

Beispiel #1 mysqlnd_qc_get_cache_info() example

The example shows the output from the built-in default storage handler. Other storage handler may report different data.

<?php
/* Populate the cache, e.g. using mysqli */
$mysqli = new mysqli("host", "user", "password", "schema");
$mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/SELECT id FROM test");

/* Display cache information */
var_dump(mysqlnd_qc_get_cache_info());
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

array(4) {
 ["num_entries"]=>
 int(1)
 ["handler"]=>
 string(7) "default"
 ["handler_version"]=>
 string(5) "1.0.0"
 ["data"]=>
 array(1) {
   ["Localhost via UNIX socket 3306 user schema|/*qc=on*/SELECT id FROM test"]=>
   array(2) {
     ["statistics"]=>
     array(11) {
       ["rows"]=>
       int(6)
       ["stored_size"]=>
       int(101)
       ["cache_hits"]=>
       int(0)
       ["run_time"]=>
       int(471)
       ["store_time"]=>
       int(27)
       ["min_run_time"]=>
       int(0)
       ["max_run_time"]=>
       int(0)
       ["min_store_time"]=>
       int(0)
       ["max_store_time"]=>
       int(0)
       ["avg_run_time"]=>
       int(0)
       ["avg_store_time"]=>
       int(0)
     }
     ["metadata"]=>
     array(1) {
       [0]=>
       array(8) {
         ["name"]=>
         string(2) "id"
         ["orig_name"]=>
         string(2) "id"
         ["table"]=>
         string(4) "test"
         ["orig_table"]=>
         string(4) "test"
         ["db"]=>
         string(4) "schema"
         ["max_length"]=>
         int(1)
         ["length"]=>
         int(11)
         ["type"]=>
         int(3)
       }
     }
   }
 }
}

Siehe auch

  • mysqlnd_qc_get_core_stats() - Statistics collected by the core of the query cache


Statistics collected by the core of the query cache

  • « mysqlnd_qc_get_cache_info
  • mysqlnd_qc_get_normalized_query_trace_log »
  • PHP Manual
  • mysqlnd_qc Funktionen
  • Statistics collected by the core of the query cache

mysqlnd_qc_get_core_stats

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_core_stats — Statistics collected by the core of the query cache

Beschreibung

mysqlnd_qc_get_core_stats ( ) : array

Returns an array of statistics collected by the core of the cache plugin. The same data fields will be reported for any storage handler because the data is collected by the core.

The PHP configuration setting mysqlnd_qc.collect_statistics controls the collection of statistics. The collection of statistics is disabled by default for performance reasons. Disabling the collection of statistics will also disable the collection of time related statistics.

The PHP configuration setting mysqlnd_qc.collect_time_statistics controls the collection of time related statistics.

The scope of the core statistics is the PHP process. Depending on your deployment model a PHP process may handle one or multiple requests.

Statistics are aggregated for all cache entries and all storage handler. It is not possible to tell how much queries originating from mysqli, PDO_MySQL or mysql API calls have contributed to the aggregated data values.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Array of core statistics

Statistic | Description | Version
cache_hit | Statement is considered cacheable and cached data has been reused. Statement is considered cacheable and a cache miss happened but the statement got cached by someone else while we process it and thus we can fetch the result from the refreshed cache. | Since 1.0.0.
cache_miss Statement is considered cacheable...

  • ... and has been added to the cache

  • ... but the PHP configuration directive setting of mysqlnd_qc.cache_no_table = 1 has prevented caching.

  • ... but an unbuffered result set is requested.

  • ... but a buffered result set was empty.

Since 1.0.0.
cache_put | Statement is considered cacheable and has been added to the cache. Take care when calculating derived statistics. Storage handler with a storage life time beyond process scope may report cache_put = 0 together with cache_hit > 0, if another process has filled the cache. You may want to use num_entries from mysqlnd_qc_get_cache_info() if the handler supports it ( default, APC). | Since 1.0.0.
query_should_cache | Statement is considered cacheable based on query string analysis. The statement may or may not be added to the cache. See also cache_put. | Since 1.0.0.
query_should_not_cache | Statement is considered not cacheable based on query string analysis. | Since 1.0.0.
query_not_cached | Statement is considered not cacheable or it is considered cachable but the storage handler has not returned a hash key for it. | Since 1.0.0.
query_could_cache Statement is considered cacheable...

  • ... and statement has been run without errors

  • ... and meta data shows at least one column in the result set

The statement may or may not be in the cache already. It may or may not be added to the cache later on. 		Since 1.0.0.
query_found_in_cache | Statement is considered cacheable and we have found it in the cache but we have not replayed the cached data yet and we have not send the result set to the client yet. This is not considered a cache hit because the client might not fetch the result or the cached data may be faulty. | Since 1.0.0.
query_uncached_other | Statement is considered cacheable and it may or may not be in the cache already but either replaying cached data has failed, no result set is available or some other error has happened.
query_uncached_no_table | Statement has not been cached because the result set has at least one column which has no table name in its meta data. An example of such a query is SELECT SLEEP(1). To cache those statements you have to change default value of the PHP configuration directive mysqlnd_qc.cache_no_table and set mysqlnd_qc.cache_no_table = 1. Often, it is not desired to cache such statements. | Since 1.0.0.
query_uncached_use_result | Statement would have been cached if a buffered result set had been used. The situation is also considered as a cache miss and cache_miss will be incremented as well. | Since 1.0.0.
query_aggr_run_time_cache_hit | Aggregated run time (ms) of all cached queries. Cached queries are those which have incremented cache_hit. | Since 1.0.0.
query_aggr_run_time_cache_put | Aggregated run time (ms) of all uncached queries that have been put into the cache. See also cache_put. | Since 1.0.0.
query_aggr_run_time_total | Aggregated run time (ms) of all uncached and cached queries that have been inspected and executed by the query cache. | Since 1.0.0.
query_aggr_store_time_cache_hit | Aggregated store time (ms) of all cached queries. Cached queries are those which have incremented cache_hit. | Since 1.0.0.
query_aggr_store_time_cache_put | Aggregated store time ( ms) of all uncached queries that have been put into the cache. See also cache_put. | Since 1.0.0.
query_aggr_store_time_total | Aggregated store time (ms) of all uncached and cached queries that have been inspected and executed by the query cache. | Since 1.0.0.
receive_bytes_recorded | Recorded incoming network traffic ( bytes) send from MySQL to PHP. The traffic may or may not have been added to the cache. The traffic is the total for all queries regardless if cached or not. | Since 1.0.0.
receive_bytes_replayed | Network traffic replayed during cache. This is the total amount of incoming traffic saved because of the usage of the query cache plugin. | Since 1.0.0.
send_bytes_recorded | Recorded outgoing network traffic ( bytes) send from MySQL to PHP. The traffic may or may not have been added to the cache. The traffic is the total for all queries regardless if cached or not. | Since 1.0.0.
send_bytes_replayed | Network traffic replayed during cache. This is the total amount of outgoing traffic saved because of the usage of the query cache plugin. | Since 1.0.0.
slam_stale_refresh | Number of cache misses which triggered serving stale data until the client causing the cache miss has refreshed the cache entry. | Since 1.0.0.
slam_stale_hit | Number of cache hits while a stale cache entry gets refreshed. | Since 1.0.0.

Beispiele

Beispiel #1 mysqlnd_qc_get_core_stats() example

<?php
/* Enable collection of statistics - default: disabled */
ini_set("mysqlnd_qc.collect_statistics", 1);

/* Enable collection of all timing related statistics -
default: enabled but overruled by mysqlnd_qc.collect_statistics = 0 */
ini_set("mysqlnd_qc.collect_time_statistics", 1);

/* Populate the cache, e.g. using mysqli */
$mysqli = new mysqli('host', 'user', 'password', 'schema');

/* Cache miss and cache put */
$mysqli->query("/*qc=on*/SELECT id FROM test");
/* Cache hit */
$mysqli->query("/*qc=on*/SELECT id FROM test");

/* Display core statistics */
var_dump(mysqlnd_qc_get_core_stats());
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

array(26) {
  ["cache_hit"]=>
  string(1) "1"
  ["cache_miss"]=>
  string(1) "1"
  ["cache_put"]=>
  string(1) "1"
  ["query_should_cache"]=>
  string(1) "2"
  ["query_should_not_cache"]=>
  string(1) "0"
  ["query_not_cached"]=>
  string(1) "0"
  ["query_could_cache"]=>
  string(1) "2"
  ["query_found_in_cache"]=>
  string(1) "1"
  ["query_uncached_other"]=>
  string(1) "0"
  ["query_uncached_no_table"]=>
  string(1) "0"
  ["query_uncached_no_result"]=>
  string(1) "0"
  ["query_uncached_use_result"]=>
  string(1) "0"
  ["query_aggr_run_time_cache_hit"]=>
  string(1) "4"
  ["query_aggr_run_time_cache_put"]=>
  string(3) "395"
  ["query_aggr_run_time_total"]=>
  string(3) "399"
  ["query_aggr_store_time_cache_hit"]=>
  string(1) "2"
  ["query_aggr_store_time_cache_put"]=>
  string(1) "8"
  ["query_aggr_store_time_total"]=>
  string(2) "10"
  ["receive_bytes_recorded"]=>
  string(2) "65"
  ["receive_bytes_replayed"]=>
  string(2) "65"
  ["send_bytes_recorded"]=>
  string(2) "29"
  ["send_bytes_replayed"]=>
  string(2) "29"
  ["slam_stale_refresh"]=>
  string(1) "0"
  ["slam_stale_hit"]=>
  string(1) "0"
  ["request_counter"]=>
  int(1)
  ["process_hash"]=>
  int(3547549858)
}

Siehe auch

  • Runtime configuration
  • mysqlnd_qc.collect_statistics
  • mysqlnd_qc.time_statistics
  • mysqlnd_qc_get_cache_info() - Returns information on the current handler, the number of cache entries and cache entries, if available


Returns a normalized query trace log for each query inspected by the query cache

  • « mysqlnd_qc_get_core_stats
  • mysqlnd_qc_get_query_trace_log »
  • PHP Manual
  • mysqlnd_qc Funktionen
  • Returns a normalized query trace log for each query inspected by the query cache

mysqlnd_qc_get_normalized_query_trace_log

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_normalized_query_trace_log — Returns a normalized query trace log for each query inspected by the query cache

Beschreibung

mysqlnd_qc_get_normalized_query_trace_log ( ) : array

Returns a normalized query trace log for each query inspected by the query cache. The collection of the trace log is disabled by default. To collect the trace log you have to set the PHP configuration directive mysqlnd_qc.collect_normalized_query_trace to 1

Entries in the trace log are grouped by the normalized query statement. The normalized query statement is the query statement with all statement parameter values being replaced with a question mark. For example, the two statements SELECT id FROM test WHERE id = 1 and SELECT id FROM test WHERE id = 2 are normalized as SELECT id FROM test WHERE id = ?. Whenever a statement is inspected by the query cache which matches the normalized statement pattern, its statistics are grouped by the normalized statement string.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of query log. Every list entry contains the normalized query stringand further detail information.

Key | Description
query | Normalized statement string.
occurences | How many statements have matched the normalized statement string in addition to the one which has created the log entry. The value is zero if a statement has been normalized, its normalized representation has been added to the log but no further queries inspected by PECL/mysqlnd_qc have the same normalized statement string.
eligible_for_caching | Whether the statement could be cached. An statement eligible for caching has not necessarily been cached. It not possible to tell for sure if or how many cached statement have contributed to the aggregated normalized statement log entry. However, comparing the minimum and average run time one can make an educated guess.
avg_run_time | The average run time of all queries contributing to the query log entry. The run time is the time between sending the query statement to MySQL and receiving an answer from MySQL.
avg_store_time | The average store time of all queries contributing to the query log entry. The store time is the time needed to fetch a statements result set from the server to the client and, storing it on the client.
min_run_time | The minimum run time of all queries contributing to the query log entry.
min_store_time | The minimum store time of all queries contributing to the query log entry.
max_run_time | The maximum run time of all queries contributing to the query log entry.
max_store_time | The maximum store time of all queries contributing to the query log entry.

Beispiele

Beispiel #1 mysqlnd_qc_get_normalized_query_trace_log() example

mysqlnd_qc.collect_normalized_query_trace=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* not cached */
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* cache put */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

/* cache hit */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

var_dump(mysqlnd_qc_get_normalized_query_trace_log());
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(4) {
  [0]=>
  array(9) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [1]=>
  array(9) {
    ["query"]=>
    string(27) "CREATE TABLE test (id INT )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [2]=>
  array(9) {
    ["query"]=>
    string(40) "INSERT INTO test (id ) VALUES (? ), (? )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [3]=>
  array(9) {
    ["query"]=>
    string(31) "SELECT id FROM test WHERE id =?"
    ["occurences"]=>
    int(2)
    ["eligible_for_caching"]=>
    bool(true)
    ["avg_run_time"]=>
    int(159)
    ["min_run_time"]=>
    int(12)
    ["max_run_time"]=>
    int(307)
    ["avg_store_time"]=>
    int(10)
    ["min_store_time"]=>
    int(8)
    ["max_store_time"]=>
    int(13)
  }
}

Siehe auch

  • Runtime configuration
  • mysqlnd_qc.collect_normalized_query_trace
  • mysqlnd_qc.time_statistics
  • mysqlnd_qc_get_query_trace_log() - Returns a backtrace for each query inspected by the query cache


Returns a backtrace for each query inspected by the query cache

  • « mysqlnd_qc_get_normalized_query_trace_log
  • mysqlnd_qc_set_cache_condition »
  • PHP Manual
  • mysqlnd_qc Funktionen
  • Returns a backtrace for each query inspected by the query cache

mysqlnd_qc_get_query_trace_log

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_query_trace_log — Returns a backtrace for each query inspected by the query cache

Beschreibung

mysqlnd_qc_get_query_trace_log ( ) : array

Returns a backtrace for each query inspected by the query cache. The collection of the backtrace is disabled by default. To collect the backtrace you have to set the PHP configuration directive mysqlnd_qc.collect_query_trace to 1

The maximum depth of the backtrace is limited to the depth set with the PHP configuration directive mysqlnd_qc.query_trace_bt_depth.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of query backtrace. Every list entry contains the query string, a backtrace and further detail information.

Key | Description
query | Query string.
origin | Code backtrace.
run_time | Query run time in milliseconds. The collection of all times and the necessary gettimeofday system calls can be disabled by setting the PHP configuration directive mysqlnd_qc.time_statistics to 0
store_time | Query result set store time in milliseconds. The collection of all times and the necessary gettimeofday system calls can be disabled by setting the PHP configuration directive mysqlnd_qc.time_statistics to 0
eligible_for_caching | true if query is cacheable otherwise false.
no_table | true if the query has generated a result set and at least one column from the result set has no table name set in its metadata. This is usually the case with queries which one probably do not want to cache such as SELECT SLEEP(1). By default any such query will not be added to the cache. See also PHP configuration directive mysqlnd_qc.cache_no_table.
was_added | true if the query result has been put into the cache, otherwise false.
was_already_in_cache | true if the query result would have been added to the cache if it was not already in the cache (cache hit). Otherwise false.

Beispiele

Beispiel #1 mysqlnd_qc_get_query_trace_log() example

mysqlnd_qc.collect_query_trace=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* not cached */
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* cache put */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

/* cache hit */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

var_dump(mysqlnd_qc_get_query_trace_log());
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(6) {
  [0]=>
  array(8) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["origin"]=>
    string(102) "#0 qc.php(4): mysqli->query('DROP TABLE IF E...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [1]=>
  array(8) {
    ["query"]=>
    string(25) "CREATE TABLE test(id INT)"
    ["origin"]=>
    string(102) "#0 qc.php(5): mysqli->query('CREATE TABLE te...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [2]=>
  array(8) {
    ["query"]=>
    string(36) "INSERT INTO test(id) VALUES (1), (2)"
    ["origin"]=>
    string(102) "#0 qc.php(6): mysqli->query('INSERT INTO tes...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [3]=>
  array(8) {
    ["query"]=>
    string(32) "SELECT id FROM test WHERE id = 1"
    ["origin"]=>
    string(102) "#0 qc.php(9): mysqli->query('SELECT id FROM ...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(25)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [4]=>
  array(8) {
    ["query"]=>
    string(41) "/*qc=on*/SELECT id FROM test WHERE id = 2"
    ["origin"]=>
    string(103) "#0 qc.php(14): mysqli->query('/*qc=on*/SELECT...')
#1 {main}"
    ["run_time"]=>
    int(311)
    ["store_time"]=>
    int(13)
    ["eligible_for_caching"]=>
    bool(true)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(true)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [5]=>
  array(8) {
    ["query"]=>
    string(41) "/*qc=on*/SELECT id FROM test WHERE id = 2"
    ["origin"]=>
    string(103) "#0 qc.php(19): mysqli->query('/*qc=on*/SELECT...')
#1 {main}"
    ["run_time"]=>
    int(13)
    ["store_time"]=>
    int(8)
    ["eligible_for_caching"]=>
    bool(true)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(true)
  }
}

Siehe auch

  • Runtime configuration
  • mysqlnd_qc.collect_query_trace
  • mysqlnd_qc.query_trace_bt_depth
  • mysqlnd_qc.time_statistics
  • mysqlnd_qc.cache_no_table
  • mysqlnd_qc_get_normalized_query_trace_log() - Returns a normalized query trace log for each query inspected by the query cache


Set conditions for automatic caching

  • « mysqlnd_qc_get_query_trace_log
  • mysqlnd_qc_set_is_select »
  • PHP Manual
  • mysqlnd_qc Funktionen
  • Set conditions for automatic caching

mysqlnd_qc_set_cache_condition

(PECL mysqlnd_qc >= 1.1.0)

mysqlnd_qc_set_cache_condition — Set conditions for automatic caching

Beschreibung

mysqlnd_qc_set_cache_condition ( int $condition_type , mixed $condition , mixed $condition_option ) : bool

Sets a condition for automatic caching of statements which do not contain the necessary SQL hints to enable caching of them.

Parameter-Liste

condition_type

Type of the condition. The only allowed value is MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN.

condition

Parameter for the condition set with condition_type. Parameter type and structure depend on condition_type

If condition_type equals MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN condition must be a string. The string sets a pattern. Statements are cached if table and database meta data entry of their result sets match the pattern. The pattern is checked for a match with the db and org_table meta data entries provided by the underlying MySQL client server library. Please, check the MySQL Reference manual for details about the two entries. The db and org_table values are concatenated with a dot (.) before matched against condition. Pattern matching supports the wildcards % and _. The wildcard % will match one or many arbitrary characters. _ will match one arbitrary character. The escape symbol is backslash.

condition_option

Option for condition. Type and structure depend on condition_type.

If condition_type equals MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN condition_options is the TTL to be used.

Beispiele

Beispiel #1 mysqlnd_qc_set_cache_condition() example

<?php
/* Cache all accesses to tables with the name "new%" in schema/database "db_example" for 1 second */
if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, "db_example.new%", 1)) {
  die("Failed to set cache condition!");
}

$mysqli = new mysqli("host", "user", "password", "db_example", "port");
/* cached although no SQL hint given  */
$mysqli->query("SELECT id, title FROM news");

$pdo_mysql = new PDO("mysql:host=host;dbname=db_example;port=port", "user", "password");
/* not cached: no SQL hint, no pattern match */
$pdo_mysql->query("SELECT id, title FROM latest_news");
/* cached: TTL 1 second, pattern match */
$pdo_mysql->query("SELECT id, title FROM news");
?>

Rückgabewerte

Returns TRUE on success or FALSE on FAILURE.

Siehe auch

  • Quickstart: pattern based caching


Installs a callback which decides whether a statement is cached

  • « mysqlnd_qc_set_cache_condition
  • mysqlnd_qc_set_storage_handler »
  • PHP Manual
  • mysqlnd_qc Funktionen
  • Installs a callback which decides whether a statement is cached

mysqlnd_qc_set_is_select

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_set_is_select — Installs a callback which decides whether a statement is cached

Beschreibung

mysqlnd_qc_set_is_select ( string $callback ) : mixed

Installs a callback which decides whether a statement is cached.

There are several ways of hinting PELC/mysqlnd_qc to cache a query. By default, PECL/mysqlnd_qc attempts to cache a if caching of all statements is enabled or the query string begins with a certain SQL hint. The plugin internally calls a function named is_select() to find out. This internal function can be replaced with a user-defined callback. Then, the user-defined callback is responsible to decide whether the plugin attempts to cache a statement. Because the internal function is replaced with the callback, the callback gains full control. The callback is free to ignore the configuration setting mysqlnd_qc.cache_by_default and SQL hints.

The callback is invoked for every statement inspected by the plugin. It is given the statements string as a parameter. The callback returns false if the statement shall not be cached. It returns true to make the plugin attempt to cache the statements result set, if any. A so-created cache entry is given the default TTL set with the PHP configuration directive mysqlnd_qc.ttl. If a different TTL shall be used, the callback returns a numeric value to be used as the TTL.

The internal is_select function is part of the internal cache storage handler interface. Thus, a user-defined storage handler offers the same capabilities.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mysqlnd_qc_set_is_select() example

<?php
/* callback which decides if query is cached */
function is_select($query) {
  static $patterns = array(
   /* true - use default from mysqlnd_qc.ttl */
   "@SELECT\s+.*\s+FROM\s+test@ismU" => true,
   /* 3 - use TTL = 3 seconds */
   "@SELECT\s+.*\s+FROM\s+news@ismU" => 3
  );
  /* check if query does match pattern */
  foreach ($patterns as $pattern => $ttl) {
    if (preg_match($pattern, $query)) {
      printf("is_select(%45s): cache\n", $query);
      return $ttl;
    }
  }
  printf("is_select(%45s): do not cache\n", $query);
  return false;
}
mysqlnd_qc_set_is_select("is_select");

/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* cache put */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* cache hit */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* cache put */
$mysqli->query("SELECT * FROM test");
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

is_select(                    DROP TABLE IF EXISTS test): do not cache
is_select(                    CREATE TABLE test(id INT)): do not cache
is_select(    INSERT INTO test(id) VALUES (1), (2), (3)): do not cache
is_select(             SELECT id FROM test WHERE id = 1): cache
is_select(             SELECT id FROM test WHERE id = 1): cache
is_select(                           SELECT * FROM test): cache

Siehe auch

  • Runtime configuration
  • mysqlnd_qc.ttl
  • mysqlnd_qc.cache_by_default
  • mysqlnd_qc_set_user_handlers() - Sets the callback functions for a user-defined procedural storage handler


Change current storage handler

  • « mysqlnd_qc_set_is_select
  • mysqlnd_qc_set_user_handlers »
  • PHP Manual
  • mysqlnd_qc Funktionen
  • Change current storage handler

mysqlnd_qc_set_storage_handler

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_set_storage_handler — Change current storage handler

Beschreibung

mysqlnd_qc_set_storage_handler ( string $handler ) : bool

Sets the storage handler used by the query cache. A list of available storage handler can be obtained from mysqlnd_qc_get_available_handlers(). Which storage are available depends on the compile time configuration of the query cache plugin. The default storage handler is always available. All other storage handler must be enabled explicitly when building the extension.

Parameter-Liste

handler

Handler can be of type string representing the name of a built-in storage handler or an object of type mysqlnd_qc_handler_default. The names of the built-in storage handler are default, APC, MEMCACHE, sqlite.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

If changing the storage handler fails a catchable fatal error will be thrown. The query cache cannot operate if the previous storage handler has been shutdown but no new storage handler has been installed.

Beispiele

Beispiel #1 mysqlnd_qc_set_storage_handler() example

The example shows the output from the built-in default storage handler. Other storage handler may report different data.

<?php
var_dump(mysqlnd_qc_set_storage_handler("memcache"));

if (true === mysqlnd_qc_set_storage_handler("default"))
  printf("Default storage handler activated");

/* Catchable fatal error */
var_dump(mysqlnd_qc_set_storage_handler("unknown"));
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

bool(true)
Default storage handler activated
Catchable fatal error: mysqlnd_qc_set_storage_handler(): Unknown handler 'unknown' in (file) on line (line)

Siehe auch

  • Installation
  • mysqlnd_qc_get_available_handlers() - Returns a list of available storage handler


Sets the callback functions for a user-defined procedural storage handler

  • « mysqlnd_qc_set_storage_handler
  • Change History »
  • PHP Manual
  • mysqlnd_qc Funktionen
  • Sets the callback functions for a user-defined procedural storage handler

mysqlnd_qc_set_user_handlers

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_set_user_handlers — Sets the callback functions for a user-defined procedural storage handler

Beschreibung

mysqlnd_qc_set_user_handlers ( string $get_hash , string $find_query_in_cache , string $return_to_cache , string $add_query_to_cache_if_not_exists , string $query_is_select , string $update_query_run_time_stats , string $get_stats , string $clear_cache ) : bool

Sets the callback functions for a user-defined procedural storage handler.

Parameter-Liste

get_hash

Name of the user function implementing the storage handler get_hash functionality.

find_query_in_cache

Name of the user function implementing the storage handler find_in_cache functionality.

return_to_cache

Name of the user function implementing the storage handler return_to_cache functionality.

add_query_to_cache_if_not_exists

Name of the user function implementing the storage handler add_query_to_cache_if_not_exists functionality.

query_is_select

Name of the user function implementing the storage handler query_is_select functionality.

update_query_run_time_stats

Name of the user function implementing the storage handler update_query_run_time_stats functionality.

get_stats

Name of the user function implementing the storage handler get_stats functionality.

clear_cache

Name of the user function implementing the storage handler clear_cache functionality.

Rückgabewerte

Returns TRUE on success or FALSE on FAILURE.

Siehe auch

  • Procedural user-defined storage handler example


Change History

Inhaltsverzeichnis

  • PECL/mysqlnd_qc 1.2 series
  • PECL/mysqlnd_qc 1.1 series
  • PECL/mysqlnd_qc 1.0 series

This change history is a high level summary of selected changes that may impact applications and/or break backwards compatibility.

See also the CHANGES file in the source distribution for a complete list of changes.


PECL/mysqlnd_qc 1.2 series

1.2.0 - alpha

  • Release date: 03/2013
  • Motto/theme: PHP 5.5 compatibility

Feature changes

  • Update build for PHP 5.5 (Credits: Remi Collet)

  • APC storage handler update

    • Fix build for APC 3.1.13-beta and trunk

  • Introduced MYSQLND_QC_VERSION and MYSQLND_QC_VERSION_ID.


PECL/mysqlnd_qc 1.1 series

1.1.0 - stable

  • Release date: 04/2012
  • Motto/theme: PHP 5.4 compatibility, schema pattern based caching and mysqlnd_ms support

1.1.0 - beta

  • Release date: 04/2012
  • Motto/theme: PHP 5.4 compatibility, schema pattern based caching and mysqlnd_ms support

1.1.0 - alpha

  • Release date: 04/2012
  • Motto/theme: PHP 5.4 compatibility, schema pattern based caching and mysqlnd_ms support

Feature changes

  • APC storage handler update

    • Fix build for APC 3.1.9+
    • Note: Use of the APC storage handler is currently not recommended due to stability issues of APC itself.

  • New PHP configuration directives

    • mysqlnd_qc.collect_statistics_log_file. Aggregated cache statistics log file written after every 10th request served by the PHP process.
    • mysqlnd_qc.ignore_sql_comments. Control whether SQL comments are ignored for cache key hash generation.

  • New constants and SQL hints

    • MYSQLND_QC_SERVER_ID_SWITCH allows grouping of cache entries from different physical connections. This is needed by PECL/mysqlnd_ms.
    • MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN to be used with mysqlnd_qc_set_cache_condition().

  • New function mysqlnd_qc_set_cache_condition() for built-in schema pattern based caching. Likely to support a wider range of conditions in the future.

  • Report valid_until timestamp for cache entries of the default handler through mysqlnd_qc_get_cache_info().

  • Include charset number for cache entry hashing. This should prevent serving result sets which have the wrong charset.

    API change: get_hash_key expects new "charsetnr" (int) parameter after "port".

  • API change: changing is_select() signature from bool is_select() to mixed is_select(). Mixed can be either boolean or array(long ttl, string server_id). This is needed by PECL/mysqlnd_ms.

Other

  • Support acting as a cache backend for PECL/mysqlnd_ms 1.3.0-beta or later to transparently replace MySQL Replication slave reads with cache accesses, if the user explicitly allows.

Bug fixes

  • Fixed Bug #59959 (config.m4, wrong library - 64bit memcached handler builds) (Credits: Remi Collet)


PECL/mysqlnd_qc 1.0 series

1.0.1-stable

  • Release date: 12/2010
  • Motto/theme: Prepared statement support

Added support for Prepared statements and unbuffered queries.

1.0.0-beta

  • Release date: 07/2010
  • Motto/theme: TTL-based cache with various storage options (Memcache, APC, SQLite, user-defined)

Initial public release of the transparent TTL-based query result cache. Flexible storage of cached results. Various storage media supported.


Mysqlnd user handler plugin

  • Einführung
  • Quickstart and Examples
    • Setup
    • How it works
    • Installing a proxy
    • Basic query monitoring
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • MysqlndUhConnection — The MysqlndUhConnection class
    • MysqlndUhConnection::changeUser — Changes the user of the specified mysqlnd database connection
    • MysqlndUhConnection::charsetName — Returns the default character set for the database connection
    • MysqlndUhConnection::close — Closes a previously opened database connection
    • MysqlndUhConnection::connect — Open a new connection to the MySQL server
    • MysqlndUhConnection::__construct — The __construct purpose
    • MysqlndUhConnection::endPSession — End a persistent connection
    • MysqlndUhConnection::escapeString — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
    • MysqlndUhConnection::getAffectedRows — Gets the number of affected rows in a previous MySQL operation
    • MysqlndUhConnection::getErrorNumber — Returns the error code for the most recent function call
    • MysqlndUhConnection::getErrorString — Returns a string description of the last error
    • MysqlndUhConnection::getFieldCount — Returns the number of columns for the most recent query
    • MysqlndUhConnection::getHostInformation — Returns a string representing the type of connection used
    • MysqlndUhConnection::getLastInsertId — Returns the auto generated id used in the last query
    • MysqlndUhConnection::getLastMessage — Retrieves information about the most recently executed query
    • MysqlndUhConnection::getProtocolInformation — Returns the version of the MySQL protocol used
    • MysqlndUhConnection::getServerInformation — Returns the version of the MySQL server
    • MysqlndUhConnection::getServerStatistics — Gets the current system status
    • MysqlndUhConnection::getServerVersion — Returns the version of the MySQL server as an integer
    • MysqlndUhConnection::getSqlstate — Returns the SQLSTATE error from previous MySQL operation
    • MysqlndUhConnection::getStatistics — Returns statistics about the client connection
    • MysqlndUhConnection::getThreadId — Returns the thread ID for the current connection
    • MysqlndUhConnection::getWarningCount — Returns the number of warnings from the last query for the given link
    • MysqlndUhConnection::init — Initialize mysqlnd connection
    • MysqlndUhConnection::killConnection — Asks the server to kill a MySQL thread
    • MysqlndUhConnection::listFields — List MySQL table fields
    • MysqlndUhConnection::listMethod — Wrapper for assorted list commands
    • MysqlndUhConnection::moreResults — Check if there are any more query results from a multi query
    • MysqlndUhConnection::nextResult — Prepare next result from multi_query
    • MysqlndUhConnection::ping — Pings a server connection, or tries to reconnect if the connection has gone down
    • MysqlndUhConnection::query — Performs a query on the database
    • MysqlndUhConnection::queryReadResultsetHeader — Read a result set header
    • MysqlndUhConnection::reapQuery — Get result from async query
    • MysqlndUhConnection::refreshServer — Flush or reset tables and caches
    • MysqlndUhConnection::restartPSession — Restart a persistent mysqlnd connection
    • MysqlndUhConnection::selectDb — Selects the default database for database queries
    • MysqlndUhConnection::sendClose — Sends a close command to MySQL
    • MysqlndUhConnection::sendQuery — Sends a query to MySQL
    • MysqlndUhConnection::serverDumpDebugInformation — Dump debugging information into the log for the MySQL server
    • MysqlndUhConnection::setAutocommit — Turns on or off auto-committing database modifications
    • MysqlndUhConnection::setCharset — Sets the default client character set
    • MysqlndUhConnection::setClientOption — Sets a client option
    • MysqlndUhConnection::setServerOption — Sets a server option
    • MysqlndUhConnection::shutdownServer — The shutdownServer purpose
    • MysqlndUhConnection::simpleCommand — Sends a basic COM_* command
    • MysqlndUhConnection::simpleCommandHandleResponse — Process a response for a basic COM_* command send to the client
    • MysqlndUhConnection::sslSet — Used for establishing secure connections using SSL
    • MysqlndUhConnection::stmtInit — Initializes a statement and returns a resource for use with mysqli_statement::prepare
    • MysqlndUhConnection::storeResult — Transfers a result set from the last query
    • MysqlndUhConnection::txCommit — Commits the current transaction
    • MysqlndUhConnection::txRollback — Rolls back current transaction
    • MysqlndUhConnection::useResult — Initiate a result set retrieval
  • MysqlndUhPreparedStatement — The MysqlndUhPreparedStatement class
    • MysqlndUhPreparedStatement::__construct — The __construct purpose
    • MysqlndUhPreparedStatement::execute — Executes a prepared Query
    • MysqlndUhPreparedStatement::prepare — Prepare an SQL statement for execution
  • Mysqlnd_uh Funktionen
    • mysqlnd_uh_convert_to_mysqlnd — Converts a MySQL connection handle into a mysqlnd connection handle
    • mysqlnd_uh_set_connection_proxy — Installs a proxy for mysqlnd connections
    • mysqlnd_uh_set_statement_proxy — Installs a proxy for mysqlnd statements
  • Change History
    • PECL/mysqlnd_uh 1.0 series


Einführung

The mysqlnd user handler plugin (mysqlnd_uh) allows users to set hooks for most internal calls of the MySQL native driver for PHP (mysqlnd). Mysqlnd and its plugins, including PECL/mysqlnd_uh, operate on a layer beneath the PHP MySQL extensions. A mysqlnd plugin can be considered as a proxy between the PHP MySQL extensions and the MySQL server as part of the PHP executable on the client-side. Because the plugins operates on their own layer below the PHP MySQL extensions, they can monitor and change application actions without requiring application changes. If the PHP MySQL extensions (mysqli, mysql, PDO_MYSQL) are compiled to use mysqlnd this can be used for:

  • Monitoring

    • Queries executed by any of the PHP MySQL extensions

    • Prepared statements executing by any of the PHP MySQL extensions

  • Auditing

    • Detection of database usage

    • SQL injection protection using black and white lists

  • Assorted

    • Load Balancing connections

The MySQL native driver for PHP (mysqlnd) features an internal plugin C API. C plugins, such as the mysqlnd user handler plugin, can extend the functionality of mysqlnd. PECL/mysqlnd_uh makes parts of the internal plugin C API available to the PHP user for plugin development with PHP.

Hinweis: Status

The mysqlnd user handler plugin is in alpha status. Take appropriate care before using it in production environments.

Security considerations

PECL/mysqlnd_uh gives users access to MySQL user names, MySQL password used by any of the PHP MySQL extensions to connect to MySQL. It allows monitoring of all queries and prepared statements exposing the statement string to the user. Therefore, the extension should be installed with care. The PHP_INI_SYSTEM configuration setting mysqlnd_uh.enable can be used to prevent users from hooking mysqlnd calls.

Code obfuscators and similar technologies are not suitable to prevent monitoring of mysqlnd library activities if PECL/mysqlnd_uh is made available and the user can install a proxy, for example, using auto_prepend_file.

Documentation note

Many of the mysqlnd_uh functions are briefly described because the mysqli extension is a thin abstraction layer on top of the MySQL C API that the mysqlnd library provides. Therefore, the corresponding mysqli documentation (along with the MySQL reference manual) can be consulted to receive more information about a particular function.

On the name

The shortcut mysqlnd_uh stands for mysqlnd user handler, and has been the name since early development.


Quickstart and Examples

Inhaltsverzeichnis

  • Setup
  • How it works
  • Installing a proxy
  • Basic query monitoring

The mysqlnd user handler plugin can be understood as a client-side proxy for all PHP MySQL extensions (mysqli, mysql, PDO_MYSQL), if they are compiled to use the mysqlnd library. The extensions use the mysqlnd library internally, at the C level, to communicate with the MySQL server. PECL/mysqlnd_uh allows it to hook many mysqlnd calls. Therefore, most activities of the PHP MySQL extensions can be monitored.

Because monitoring happens at the level of the library, at a layer below the application, it is possible to monitor applications without changing them.

On the C level, the mysqlnd library is structured in modules or classes. The extension hooks almost all methods of the mysqlnd internal connection class and exposes them through the user space class MysqlndUhConnection. Some few methods of the mysqlnd internal statement class are made available to the PHP user with the class MysqlndUhPreparedStatement. By subclassing the classes MysqlndUhConnection and MysqlndUhPreparedStatement users get access to mysqlnd internal function calls.

Hinweis:

The internal mysqlnd function calls are not designed to be exposed to the PHP user. Manipulating their activities may cause PHP to crash or leak memory. Often, this is not considered a bug. Please, keep in mind that you are accessing C library functions through PHP which are expected to take certain actions, which you may not be able to emulate in user space. Therefore, it is strongly recommended to always call the parent method implementation when subclassing MysqlndUhConnection or MysqlndUhPreparedStatement. To prevent the worst case, the extension performs some sanity checks. Please, see also the Mysqlnd_uh Konfigurationsoptionen.


Setup

The plugin is implemented as a PHP extension. See the installation instructions to install the » PECL/mysqlnd_uh extension. Then, load the extension into PHP and activate the plugin in the PHP configuration file using the PHP configuration directive named mysqlnd_uh.enable. The below example shows the default settings of the extension.

Beispiel #1 Enabling the plugin (php.ini)

mysqlnd_uh.enable=1
mysqlnd_uh.report_wrong_types=1


How it works

This describes the background and inner workings of the mysqlnd_uh extension.

Two classes are provided by the extension: MysqlndUhConnection and MysqlndUhPreparedStatement. MysqlndUhConnection lets you access almost all methods of the mysqlnd internal connection class. The latter exposes some selected methods of the mysqlnd internal statement class. For example, MysqlndUhConnection::connect() maps to the mysqlnd library C function mysqlnd_conn__connect.

As a mysqlnd plugin, the PECL/mysqlnd_uh extension replaces mysqlnd library C functions with its own functions. Whenever a PHP MySQL extension compiled to use mysqlnd calls a mysqlnd function, the functions installed by the plugin are executed instead of the original mysqlnd ones. For example, mysqli_connect() invokes mysqlnd_conn__connect, so the connect function installed by PECL/mysqlnd_uh will be called. The functions installed by PECL/mysqlnd_uh are the methods of the built-in classes.

The built-in PHP classes and their methods do nothing but call their mysqlnd C library counterparts, to behave exactly like the original mysqlnd function they replace. The code below illustrates in pseudo-code what the extension does.

Beispiel #1 Pseudo-code: what a built-in class does

class MysqlndUhConnection {
  public function connect(($conn, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
    MYSQLND* c_mysqlnd_connection = convert_from_php_to_c($conn);
    ...
    return call_c_function(mysqlnd_conn__connect(c_mysqlnd_connection, ...));
  }
}

The build-in classes behave like a transparent proxy. It is possible for you to replace the proxy with your own. This is done by subclassing MysqlndUhConnection or MysqlndUhPreparedStatement to extend the functionality of the proxy, followed by registering a new proxy object. Proxy objects are installed by mysqlnd_uh_set_connection_proxy() and mysqlnd_uh_set_statement_proxy().

Beispiel #2 Installing a proxy

<?php
class proxy extends MysqlndUhConnection {
 public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::connect(array (
  0 => NULL,
  1 => 'localhost',
  2 => 'root',
  3 => '',
  4 => 'test',
  5 => 3306,
  6 => NULL,
  7 => 131072,
))
proxy::connect returns true


Installing a proxy

The extension provides two built-in classes: MysqlndUhConnection and MysqlndUhPreparedStatement. The classes are used for hooking mysqlnd library calls. Their methods correspond to mysqlnd internal functions. By default they act like a transparent proxy and do nothing but call their mysqlnd counterparts. By subclassing the classes you can install your own proxy to monitor mysqlnd.

See also the How it works guide to learn about the inner workings of this extension.

Connection proxies are objects of the type MysqlndUhConnection. Connection proxy objects are installed by mysqlnd_uh_set_connection_proxy(). If you install the built-in class MysqlndUhConnection as a proxy, nothing happens. It behaves like a transparent proxy.

Beispiel #1 Proxy registration, mysqlnd_uh.enable=1

<?php
mysqlnd_uh_set_connection_proxy(new MysqlndUhConnection());
$mysqli = new mysqli("localhost", "root", "", "test");
?>

The PHP_INI_SYSTEM configuration setting mysqlnd_uh.enable controls whether a proxy may be set. If disabled, the extension will throw errors of type E_WARNING

Beispiel #2 Proxy installation disabled

mysqlnd_uh.enable=0
<?php
mysqlnd_uh_set_connection_proxy(new MysqlndUhConnection());
$mysqli = new mysqli("localhost", "root", "", "test");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

PHP Warning:  MysqlndUhConnection::__construct(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enabled = false.  You must not use any of the base classes in %s on line %d
PHP Warning:  mysqlnd_uh_set_connection_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed  in %s on line %d

To monitor mysqlnd, you have to write your own proxy object subclassing MysqlndUhConnection. Please, see the function reference for a the list of methods that can be subclassed. Alternatively, you can use reflection to inspect the built-in MysqlndUhConnection.

Create a new class proxy. Derive it from the built-in class MysqlndUhConnection. Replace the MysqlndUhConnection::connect(). method. Print out the host parameter value passed to the method. Make sure that you call the parent implementation of the connect method. Failing to do so may give unexpected and undesired results, including memory leaks and crashes.

Register your proxy and open three connections using the PHP MySQL extensions mysqli, mysql, PDO_MYSQL. If the extensions have been compiled to use the mysqlnd library, the proxy::connect method will be called three times, once for each connection opened.

Beispiel #3 Connection proxy

<?php
class proxy extends MysqlndUhConnection {
  public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
   printf("Connection opened to '%s'\n", $host);
   /* Always call the parent implementation! */
   return parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
  }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysql = mysql_connect("localhost", "root", "");
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Connection opened to 'localhost'
Connection opened to 'localhost'
Connection opened to 'localhost'

The use of prepared statement proxies follows the same pattern: create a proxy object of the type MysqlndUhPreparedStatement and install the proxy using mysqlnd_uh_set_statement_proxy().

Beispiel #4 Prepared statement proxy

<?php
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function prepare($res, $query) {
  printf("%s(%s)\n", __METHOD__, $query);
  return parent::prepare($res, $query);
 }
}
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 'mysqlnd hacking made easy' AS _msg FROM DUAL");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

stmt_proxy::prepare(SELECT 'mysqlnd hacking made easy' AS _msg FROM DUAL)


Basic query monitoring

Basic monitoring of a query statement is easy with PECL/mysqlnd_uh. Combined with debug_print_backtrace() it can become a powerful tool, for example, to find the origin of certain statement. This may be desired when searching for slow queries but also after database refactoring to find code still accessing deprecated databases or tables. The latter may be a complicated matter to do otherwise, especially if the application uses auto-generated queries.

Beispiel #1 Basic Monitoring

<?php
class conn_proxy extends MysqlndUhConnection {
 public function query($res, $query) {
  debug_print_backtrace();
  return parent::query($res, $query);
 }
}
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function prepare($res, $query) {
  debug_print_backtrace();
  return parent::prepare($res, $query);
 }
}
mysqlnd_uh_set_connection_proxy(new conn_proxy());
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

printf("Proxies installed...\n");
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
var_dump($pdo->query("SELECT 1 AS _one FROM DUAL")->fetchAll(PDO::FETCH_ASSOC));

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->prepare("SELECT 1 AS _two FROM DUAL");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

#0  conn_proxy->query(Resource id #19, SELECT 1 AS _one FROM DUAL)
#1  PDO->query(SELECT 1 AS _one FROM DUAL) called at [example.php:19]
array(1) {
  [0]=>
  array(1) {
    ["_one"]=>
    string(1) "1"
  }
}
#0  stmt_proxy->prepare(Resource id #753, SELECT 1 AS _two FROM DUAL)
#1  mysqli->prepare(SELECT 1 AS _two FROM DUAL) called at [example.php:22]

For basic query monitoring you should install a connection and a prepared statement proxy. The connection proxy should subclass MysqlndUhConnection::query(). All database queries not using native prepared statements will call this method. In the example the query function is invoked by a PDO call. By default, PDO_MySQL is using prepared statement emulation.

All native prepared statements are prepared with the prepare method of mysqlnd exported through MysqlndUhPreparedStatement::prepare(). Subclass MysqlndUhPreparedStatement and overwrite prepare for native prepared statement monitoring.


Anforderungen

PHP 5.3.3 or later. It is recommended to use PHP 5.4.0 or later to get access to the latest mysqlnd features.

The mysqlnd_uh user handler plugin supports all PHP applications and all available PHP MySQL extensions (mysqli, mysql, PDO_MYSQL). The PHP MySQL extension must be configured to use mysqlnd in order to be able to use the mysqlnd_uh plugin for mysqlnd.

The alpha versions makes use of some mysqli features. You must enable mysqli to compile the plugin. This requirement may be removed in the future. Note, that this requirement does not restrict you to use the plugin only with mysqli. You can use the plugin to monitor mysql, mysqli and PDO_MYSQL.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/mysqlnd-uh

PECL/mysqlnd_uh is currently not available on Windows. The source code of the extension makes use of C99 constructs not allowed with PHP Windows builds.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Mysqlnd_uh Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
mysqlnd_uh.enable | 1 | PHP_INI_SYSTEM |
mysqlnd_uh.report_wrong_types | 1 | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

mysqlnd_uh.enable int

Enables or disables the plugin. If set to disabled, the extension will not allow users to plug into mysqlnd to hook mysqlnd calls.

mysqlnd_uh.report_wrong_types int

Whether to report wrong return value types of user hooks as E_WARNING level errors. This is recommended for detecting errors.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Most of the constants refer to details of the MySQL Client Server Protocol. Please, refer to the MySQL reference manual to learn about their meaning. To avoid content duplication, only short descriptions are given.

MysqlndUhConnection::simpleCommand() related

The following constants can be used to detect what command is to be send through MysqlndUhConnection::simpleCommand().

MYSQLND_UH_MYSQLND_COM_SLEEP (int)
MySQL Client Server protocol command: COM_SLEEP.
MYSQLND_UH_MYSQLND_COM_QUIT (int)
MySQL Client Server protocol command: COM_QUIT.
MYSQLND_UH_MYSQLND_COM_INIT_DB (int)
MySQL Client Server protocol command: COM_INIT_DB.
MYSQLND_UH_MYSQLND_COM_QUERY (int)
MySQL Client Server protocol command: COM_QUERY.
MYSQLND_UH_MYSQLND_COM_FIELD_LIST (int)
MySQL Client Server protocol command: COM_FIELD_LIST.
MYSQLND_UH_MYSQLND_COM_CREATE_DB (int)
MySQL Client Server protocol command: COM_CREATE_DB.
MYSQLND_UH_MYSQLND_COM_DROP_DB (int)
MySQL Client Server protocol command: COM_DROP_DB.
MYSQLND_UH_MYSQLND_COM_REFRESH (int)
MySQL Client Server protocol command: COM_REFRESH.
MYSQLND_UH_MYSQLND_COM_SHUTDOWN (int)
MySQL Client Server protocol command: COM_SHUTDOWN.
MYSQLND_UH_MYSQLND_COM_STATISTICS (int)
MySQL Client Server protocol command: COM_STATISTICS.
MYSQLND_UH_MYSQLND_COM_PROCESS_INFO (int)
MySQL Client Server protocol command: COM_PROCESS_INFO.
MYSQLND_UH_MYSQLND_COM_CONNECT (int)
MySQL Client Server protocol command: COM_CONNECT.
MYSQLND_UH_MYSQLND_COM_PROCESS_KILL (int)
MySQL Client Server protocol command: COM_PROCESS_KILL.
MYSQLND_UH_MYSQLND_COM_DEBUG (int)
MySQL Client Server protocol command: COM_DEBUG.
MYSQLND_UH_MYSQLND_COM_PING (int)
MySQL Client Server protocol command: COM_PING.
MYSQLND_UH_MYSQLND_COM_TIME (int)
MySQL Client Server protocol command: COM_TIME.
MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT (int)
MySQL Client Server protocol command: COM_DELAYED_INSERT.
MYSQLND_UH_MYSQLND_COM_CHANGE_USER (int)
MySQL Client Server protocol command: COM_CHANGE_USER.
MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP (int)
MySQL Client Server protocol command: COM_BINLOG_DUMP.
MYSQLND_UH_MYSQLND_COM_TABLE_DUMP (int)
MySQL Client Server protocol command: COM_TABLE_DUMP.
MYSQLND_UH_MYSQLND_COM_CONNECT_OUT (int)
MySQL Client Server protocol command: COM_CONNECT_OUT.
MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED (int)
MySQL Client Server protocol command: COM_REGISTER_SLAVED.
MYSQLND_UH_MYSQLND_COM_STMT_PREPARE (int)
MySQL Client Server protocol command: COM_STMT_PREPARE.
MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE (int)
MySQL Client Server protocol command: COM_STMT_EXECUTE.
MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA (int)
MySQL Client Server protocol command: COM_STMT_SEND_LONG_DATA.
MYSQLND_UH_MYSQLND_COM_STMT_CLOSE (int)
MySQL Client Server protocol command: COM_STMT_CLOSE.
MYSQLND_UH_MYSQLND_COM_STMT_RESET (int)
MySQL Client Server protocol command: COM_STMT_RESET.
MYSQLND_UH_MYSQLND_COM_SET_OPTION (int)
MySQL Client Server protocol command: COM_SET_OPTION.
MYSQLND_UH_MYSQLND_COM_STMT_FETCH (int)
MySQL Client Server protocol command: COM_STMT_FETCH.
MYSQLND_UH_MYSQLND_COM_DAEMON (int)
MySQL Client Server protocol command: COM_DAEMON.
MYSQLND_UH_MYSQLND_COM_END (int)
MySQL Client Server protocol command: COM_END.

The following constants can be used to analyze the ok_packet argument of MysqlndUhConnection::simpleCommand().

MYSQLND_UH_MYSQLND_PROT_GREET_PACKET (int)
MySQL Client Server protocol packet: greeting.
MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET (int)
MySQL Client Server protocol packet: authentication.
MYSQLND_UH_MYSQLND_PROT_OK_PACKET (int)
MySQL Client Server protocol packet: OK.
MYSQLND_UH_MYSQLND_PROT_EOF_PACKET (int)
MySQL Client Server protocol packet: EOF.
MYSQLND_UH_MYSQLND_PROT_CMD_PACKET (int)
MySQL Client Server protocol packet: command.
MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET (int)
MySQL Client Server protocol packet: result set header.
MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET (int)
MySQL Client Server protocol packet: resultset field.
MYSQLND_UH_MYSQLND_PROT_ROW_PACKET (int)
MySQL Client Server protocol packet: row.
MYSQLND_UH_MYSQLND_PROT_STATS_PACKET (int)
MySQL Client Server protocol packet: stats.
MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET (int)
MySQL Client Server protocol packet: prepare response.
MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET (int)
MySQL Client Server protocol packet: change user response.
MYSQLND_UH_MYSQLND_PROT_LAST (int)
No practical meaning. Last entry marker of internal C data structure list.

MysqlndUhConnection::close() related

The following constants can be used to detect why a connection has been closed through MysqlndUhConnection::close().

MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT (int)
User has called mysqlnd to close the connection.
MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT (int)
Implicitly closed, for example, during garbage connection.
MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED (int)
Connection error.
MYSQLND_UH_MYSQLND_CLOSE_LAST (int)
No practical meaning. Last entry marker of internal C data structure list.

MysqlndUhConnection::setServerOption() related

The following constants can be used to detect which option is set through MysqlndUhConnection::setServerOption().

MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON (int)
Option: enables multi statement support.
MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_OFF (int)
Option: disables multi statement support.

MysqlndUhConnection::setClientOption() related

The following constants can be used to detect which option is set through MysqlndUhConnection::setClientOption().

MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT (int)
Option: connection timeout.
MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS (int)
Option: whether the MySQL compressed protocol is to be used.
MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE (int)
Option: named pipe to use for connection (Windows).
MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND (int)
Option: init command to execute upon connect.
MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE (int)
Option: MySQL server default file to read upon connect.
MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP (int)
Option: MySQL server default file group to read upon connect.
MYSQLND_UH_MYSQLND_SET_CHARSET_DIR (int)
Option: charset description files directory.
MYSQLND_UH_MYSQLND_SET_CHARSET_NAME (int)
Option: charset name.
MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE (int)
Option: Whether to allow LOAD DATA LOCAL INFILE use.
MYSQLND_UH_MYSQLND_OPT_PROTOCOL (int)
Option: supported protocol version.
MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME (int)
Option: shared memory base name for shared memory connections.
MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT (int)
Option: connection read timeout.
MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT (int)
Option: connection write timeout.
MYSQLND_UH_MYSQLND_OPT_USE_RESULT (int)
Option: unbuffered result sets.
MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION (int)
Embedded server related.
MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION (int)
Embedded server related.
MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION (int)
TODO
MYSQLND_UH_MYSQLND_SET_CLIENT_IP (int)
TODO
MYSQLND_UH_MYSQLND_SECURE_AUTH (int)
TODO
MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION (int)
Option: Whether to report data truncation.
MYSQLND_UH_MYSQLND_OPT_RECONNECT (int)
Option: Whether to reconnect automatically.
MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT (int)
Option: TODO
MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE (int)
Option: mysqlnd network buffer size for commands.
MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE (int)
Option: mysqlnd network buffer size for reading from the server.
MYSQLND_UH_MYSQLND_OPT_SSL_KEY (int)
Option: SSL key.
MYSQLND_UH_MYSQLND_OPT_SSL_CERT (int)
Option: SSL certificate.
MYSQLND_UH_MYSQLND_OPT_SSL_CA (int)
Option: SSL CA.
MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH (int)
Option: Path to SSL CA.
MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER (int)
Option: SSL cipher.
MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE (int)
Option: SSL passphrase.
MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR (int)
Option: server plugin directory.
MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH (int)
Option: default authentication method.
MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP (int)
TODO
MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET (int)
Option: maximum allowed packet size. Available as of PHP 5.4.0.
MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL (int)
Option: TODO. Available as of PHP 5.4.0.
MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE (int)
Option: make mysqlnd return integer and float columns as long even when using the MySQL Client Server text protocol. Only available with a custom build of mysqlnd.

Other

The plugins version number can be obtained using MYSQLND_UH_VERSION or MYSQLND_UH_VERSION_ID. MYSQLND_UH_VERSION is the string representation of the numerical version number MYSQLND_UH_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_UH_VERSION_ID | 10000

MYSQLND_UH_VERSION (string)
Plugin version string, for example, 1.0.0-alpha.
MYSQLND_UH_VERSION_ID (int)
Plugin version number, for example, 10000.


The MysqlndUhConnection class

(PECL mysqlnd-uh >= 1.0.0-alpha)

Einführung

Klassenbeschreibung

MysqlndUhConnection {
/* Methoden */
public changeUser ( mysqlnd_connection $connection , string $user , string $password , string $database , bool $silent , int $passwd_len ) : bool
public charsetName ( mysqlnd_connection $connection ) : string
public close ( mysqlnd_connection $connection , int $close_type ) : bool
public connect ( mysqlnd_connection $connection , string $host , string $use" , string $password , string $database , int $port , string $socket , int $mysql_flags ) : bool
public __construct ( )
public endPSession ( mysqlnd_connection $connection ) : bool
public escapeString ( mysqlnd_connection $connection , string $escape_string ) : string
public getAffectedRows ( mysqlnd_connection $connection ) : int
public getErrorNumber ( mysqlnd_connection $connection ) : int
public getErrorString ( mysqlnd_connection $connection ) : string
public getFieldCount ( mysqlnd_connection $connection ) : int
public getHostInformation ( mysqlnd_connection $connection ) : string
public getLastInsertId ( mysqlnd_connection $connection ) : int
public getLastMessage ( mysqlnd_connection $connection ) : void
public getProtocolInformation ( mysqlnd_connection $connection ) : string
public getServerInformation ( mysqlnd_connection $connection ) : string
public getServerStatistics ( mysqlnd_connection $connection ) : string
public getServerVersion ( mysqlnd_connection $connection ) : int
public getSqlstate ( mysqlnd_connection $connection ) : string
public getStatistics ( mysqlnd_connection $connection ) : array
public getThreadId ( mysqlnd_connection $connection ) : int
public getWarningCount ( mysqlnd_connection $connection ) : int
public init ( mysqlnd_connection $connection ) : bool
public killConnection ( mysqlnd_connection $connection , int $pid ) : bool
public listFields ( mysqlnd_connection $connection , string $table , string $achtung_wild ) : array
public listMethod ( mysqlnd_connection $connection , string $query , string $achtung_wild , string $par1 ) : void
public moreResults ( mysqlnd_connection $connection ) : bool
public nextResult ( mysqlnd_connection $connection ) : bool
public ping ( mysqlnd_connection $connection ) : bool
public query ( mysqlnd_connection $connection , string $query ) : bool
public queryReadResultsetHeader ( mysqlnd_connection $connection , mysqlnd_statement $mysqlnd_stmt ) : bool
public reapQuery ( mysqlnd_connection $connection ) : bool
public refreshServer ( mysqlnd_connection $connection , int $options ) : bool
public restartPSession ( mysqlnd_connection $connection ) : bool
public selectDb ( mysqlnd_connection $connection , string $database ) : bool
public sendClose ( mysqlnd_connection $connection ) : bool
public sendQuery ( mysqlnd_connection $connection , string $query ) : bool
public serverDumpDebugInformation ( mysqlnd_connection $connection ) : bool
public setAutocommit ( mysqlnd_connection $connection , int $mode ) : bool
public setCharset ( mysqlnd_connection $connection , string $charset ) : bool
public setClientOption ( mysqlnd_connection $connection , int $option , int $value ) : bool
public setServerOption ( mysqlnd_connection $connection , int $option ) : void
public shutdownServer ( string $MYSQLND_UH_RES_MYSQLND_NAME , string $level ) : void
public simpleCommand ( mysqlnd_connection $connection , int $command , string $arg , int $ok_packet , bool $silent , bool $ignore_upsert_status ) : bool
public simpleCommandHandleResponse ( mysqlnd_connection $connection , int $ok_packet , bool $silent , int $command , bool $ignore_upsert_status ) : bool
public sslSet ( mysqlnd_connection $connection , string $key , string $cert , string $ca , string $capath , string $cipher ) : bool
public stmtInit ( mysqlnd_connection $connection ) : resource
public storeResult ( mysqlnd_connection $connection ) : resource
public txCommit ( mysqlnd_connection $connection ) : bool
public txRollback ( mysqlnd_connection $connection ) : bool
public useResult ( mysqlnd_connection $connection ) : resource
}

Inhaltsverzeichnis

  • MysqlndUhConnection::changeUser — Changes the user of the specified mysqlnd database connection
  • MysqlndUhConnection::charsetName — Returns the default character set for the database connection
  • MysqlndUhConnection::close — Closes a previously opened database connection
  • MysqlndUhConnection::connect — Open a new connection to the MySQL server
  • MysqlndUhConnection::__construct — The __construct purpose
  • MysqlndUhConnection::endPSession — End a persistent connection
  • MysqlndUhConnection::escapeString — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
  • MysqlndUhConnection::getAffectedRows — Gets the number of affected rows in a previous MySQL operation
  • MysqlndUhConnection::getErrorNumber — Returns the error code for the most recent function call
  • MysqlndUhConnection::getErrorString — Returns a string description of the last error
  • MysqlndUhConnection::getFieldCount — Returns the number of columns for the most recent query
  • MysqlndUhConnection::getHostInformation — Returns a string representing the type of connection used
  • MysqlndUhConnection::getLastInsertId — Returns the auto generated id used in the last query
  • MysqlndUhConnection::getLastMessage — Retrieves information about the most recently executed query
  • MysqlndUhConnection::getProtocolInformation — Returns the version of the MySQL protocol used
  • MysqlndUhConnection::getServerInformation — Returns the version of the MySQL server
  • MysqlndUhConnection::getServerStatistics — Gets the current system status
  • MysqlndUhConnection::getServerVersion — Returns the version of the MySQL server as an integer
  • MysqlndUhConnection::getSqlstate — Returns the SQLSTATE error from previous MySQL operation
  • MysqlndUhConnection::getStatistics — Returns statistics about the client connection
  • MysqlndUhConnection::getThreadId — Returns the thread ID for the current connection
  • MysqlndUhConnection::getWarningCount — Returns the number of warnings from the last query for the given link
  • MysqlndUhConnection::init — Initialize mysqlnd connection
  • MysqlndUhConnection::killConnection — Asks the server to kill a MySQL thread
  • MysqlndUhConnection::listFields — List MySQL table fields
  • MysqlndUhConnection::listMethod — Wrapper for assorted list commands
  • MysqlndUhConnection::moreResults — Check if there are any more query results from a multi query
  • MysqlndUhConnection::nextResult — Prepare next result from multi_query
  • MysqlndUhConnection::ping — Pings a server connection, or tries to reconnect if the connection has gone down
  • MysqlndUhConnection::query — Performs a query on the database
  • MysqlndUhConnection::queryReadResultsetHeader — Read a result set header
  • MysqlndUhConnection::reapQuery — Get result from async query
  • MysqlndUhConnection::refreshServer — Flush or reset tables and caches
  • MysqlndUhConnection::restartPSession — Restart a persistent mysqlnd connection
  • MysqlndUhConnection::selectDb — Selects the default database for database queries
  • MysqlndUhConnection::sendClose — Sends a close command to MySQL
  • MysqlndUhConnection::sendQuery — Sends a query to MySQL
  • MysqlndUhConnection::serverDumpDebugInformation — Dump debugging information into the log for the MySQL server
  • MysqlndUhConnection::setAutocommit — Turns on or off auto-committing database modifications
  • MysqlndUhConnection::setCharset — Sets the default client character set
  • MysqlndUhConnection::setClientOption — Sets a client option
  • MysqlndUhConnection::setServerOption — Sets a server option
  • MysqlndUhConnection::shutdownServer — The shutdownServer purpose
  • MysqlndUhConnection::simpleCommand — Sends a basic COM_* command
  • MysqlndUhConnection::simpleCommandHandleResponse — Process a response for a basic COM_* command send to the client
  • MysqlndUhConnection::sslSet — Used for establishing secure connections using SSL
  • MysqlndUhConnection::stmtInit — Initializes a statement and returns a resource for use with mysqli_statement::prepare
  • MysqlndUhConnection::storeResult — Transfers a result set from the last query
  • MysqlndUhConnection::txCommit — Commits the current transaction
  • MysqlndUhConnection::txRollback — Rolls back current transaction
  • MysqlndUhConnection::useResult — Initiate a result set retrieval


Changes the user of the specified mysqlnd database connection

  • « MysqlndUhConnection
  • MysqlndUhConnection::charsetName »
  • PHP Manual
  • MysqlndUhConnection
  • Changes the user of the specified mysqlnd database connection

MysqlndUhConnection::changeUser

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::changeUser — Changes the user of the specified mysqlnd database connection

Beschreibung

public MysqlndUhConnection::changeUser ( mysqlnd_connection $connection , string $user , string $password , string $database , bool $silent , int $passwd_len ) : bool

Changes the user of the specified mysqlnd database connection

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

user

The MySQL user name.

password

The MySQL password.

database

The MySQL database to change to.

silent

Controls if mysqlnd is allowed to emit errors or not.

passwd_len

Length of the MySQL password.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::changeUser() example

<?php
class proxy extends MysqlndUhConnection {
 /* Hook mysqlnd's connection::change_user call */
 public function changeUser($res, $user, $passwd, $db, $silent, $passwd_len) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::changeUser($res, $user, $passwd, $db, $silent, $passwd_len);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
/* Install proxy/hooks to be used with all future mysqlnd connection */
mysqlnd_uh_set_connection_proxy(new proxy());

/* Create mysqli connection which is using the mysqlnd library */
$mysqli = new mysqli("localhost", "root", "", "test");

/* Example of a user API call which triggers the hooked mysqlnd call */
var_dump($mysqli->change_user("root", "bar", "test"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::changeUser(array (
  0 => NULL,
  1 => 'root',
  2 => 'bar',
  3 => 'test',
  4 => false,
  5 => 3,
))
proxy::changeUser returns false
bool(false)

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_change_user() - Changes the user of the specified database connection


Returns the default character set for the database connection

  • « MysqlndUhConnection::changeUser
  • MysqlndUhConnection::close »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the default character set for the database connection

MysqlndUhConnection::charsetName

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::charsetName — Returns the default character set for the database connection

Beschreibung

public MysqlndUhConnection::charsetName ( mysqlnd_connection $connection ) : string

Returns the default character set for the database connection.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

The default character set.

Beispiele

Beispiel #1 MysqlndUhConnection::charsetName() example

<?php
class proxy extends MysqlndUhConnection {
  public function charsetName($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::charsetName($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump(mysqli_character_set_name($mysqli));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::charsetName(array (
  0 => NULL,
))
proxy::charsetName returns 'latin1'
string(6) "latin1"

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_character_set_name() - Returns the default character set for the database connection


Closes a previously opened database connection

  • « MysqlndUhConnection::charsetName
  • MysqlndUhConnection::connect »
  • PHP Manual
  • MysqlndUhConnection
  • Closes a previously opened database connection

MysqlndUhConnection::close

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::close — Closes a previously opened database connection

Beschreibung

public MysqlndUhConnection::close ( mysqlnd_connection $connection , int $close_type ) : bool

Closes a previously opened database connection.

Hinweis:

Failing to call the parent implementation may cause memory leaks or crash PHP. This is not considered a bug. Please, keep in mind that the mysqlnd library functions have never been designed to be exposed to the user space.

Parameter-Liste

connection

The connection to be closed. Do not modify!

close_type

Why the connection is to be closed. The value of close_type is one of MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT, MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT, MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED or MYSQLND_UH_MYSQLND_CLOSE_LAST. The latter should never be seen, unless the default behaviour of the mysqlnd library has been changed by a plugin.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::close() example

<?php
function close_type_to_string($close_type) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED => "MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED",
  MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT => "MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT",
  MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT => "MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT",
  MYSQLND_UH_MYSQLND_CLOSE_LAST => "MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT"
 );
 return (isset($mapping[$close_type])) ? $mapping[$close_type] : 'unknown';
}

class proxy extends MysqlndUhConnection {
  public function close($res, $close_type) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   printf("close_type = %s\n", close_type_to_string($close_type));
   /* WARNING: you must call the parent */
   $ret = parent::close($res, $close_type);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::close(array (
  0 => NULL,
  1 => 0,
))
close_type = MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT
proxy::close returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_close() - Schließt die zuvor geöffnete Datenbankverbindung
  • mysql_close() - Schließt eine Verbindung zu MySQL


Open a new connection to the MySQL server

  • « MysqlndUhConnection::close
  • MysqlndUhConnection::__construct »
  • PHP Manual
  • MysqlndUhConnection
  • Open a new connection to the MySQL server

MysqlndUhConnection::connect

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::connect — Open a new connection to the MySQL server

Beschreibung

public MysqlndUhConnection::connect ( mysqlnd_connection $connection , string $host , string $use" , string $password , string $database , int $port , string $socket , int $mysql_flags ) : bool

Open a new connection to the MySQL server.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

host

Can be either a host name or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol.

user

The MySQL user name.

password

If not provided or null, the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not).

database

If provided will specify the default database to be used when performing queries.

port

Specifies the port number to attempt to connect to the MySQL server.

socket

Specifies the socket or named pipe that should be used. If null, mysqlnd will default to /tmp/mysql.sock.

mysql_flags

Connection options.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::connect() example

<?php
class proxy extends MysqlndUhConnection {
 public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::connect(array (
  0 => NULL,
  1 => 'localhost',
  2 => 'root',
  3 => '',
  4 => 'test',
  5 => 3306,
  6 => NULL,
  7 => 131072,
))
proxy::connect returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_connect() - Alias von mysqli::__construct
  • mysql_connect() - Öffnet eine Verbindung zu einem MySQL-Server


The __construct purpose

  • « MysqlndUhConnection::connect
  • MysqlndUhConnection::endPSession »
  • PHP Manual
  • MysqlndUhConnection
  • The __construct purpose

MysqlndUhConnection::__construct

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::__construct — The __construct purpose

Beschreibung

public MysqlndUhConnection::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


End a persistent connection

  • « MysqlndUhConnection::__construct
  • MysqlndUhConnection::escapeString »
  • PHP Manual
  • MysqlndUhConnection
  • End a persistent connection

MysqlndUhConnection::endPSession

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::endPSession — End a persistent connection

Beschreibung

public MysqlndUhConnection::endPSession ( mysqlnd_connection $connection ) : bool

End a persistent connection

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::endPSession() example

<?php
class proxy extends MysqlndUhConnection {
 public function endPSession($conn) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::endPSession($conn);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("p:localhost", "root", "", "test");
$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::endPSession(array (
  0 => NULL,
))
proxy::endPSession returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

  • « MysqlndUhConnection::endPSession
  • MysqlndUhConnection::getAffectedRows »
  • PHP Manual
  • MysqlndUhConnection
  • Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

MysqlndUhConnection::escapeString

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::escapeString — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

Beschreibung

public MysqlndUhConnection::escapeString ( mysqlnd_connection $connection , string $escape_string ) : string

Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection.

Parameter-Liste

MYSQLND_UH_RES_MYSQLND_NAME

Mysqlnd connection handle. Do not modify!

escape_string

The string to be escaped.

Rückgabewerte

The escaped string.

Beispiele

Beispiel #1 MysqlndUhConnection::escapeString() example

<?php
class proxy extends MysqlndUhConnection {
 public function escapeString($res, $string) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::escapeString($res, $string);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->set_charset("latin1");
$mysqli->real_escape_string("test0'test");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::escapeString(array (
  0 => NULL,
  1 => 'test0\'test',
))
proxy::escapeString returns 'test0\\\'test'

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_escape_string() - Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
  • mysql_real_escape_string() - Maskiert spezielle Zeichen innerhalb einer Zeichenkette für die Verwendung in einer SQL-Anweisung


Gets the number of affected rows in a previous MySQL operation

  • « MysqlndUhConnection::escapeString
  • MysqlndUhConnection::getErrorNumber »
  • PHP Manual
  • MysqlndUhConnection
  • Gets the number of affected rows in a previous MySQL operation

MysqlndUhConnection::getAffectedRows

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getAffectedRows — Gets the number of affected rows in a previous MySQL operation

Beschreibung

public MysqlndUhConnection::getAffectedRows ( mysqlnd_connection $connection ) : int

Gets the number of affected rows in a previous MySQL operation.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Number of affected rows.

Beispiele

Beispiel #1 MysqlndUhConnection::getAffectedRows() example

<?php
class proxy extends MysqlndUhConnection {
 public function getAffectedRows($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getAffectedRows($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1)");
var_dump($mysqli->affected_rows);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getAffectedRows(array (
  0 => NULL,
))
proxy::getAffectedRows returns 1
int(1)

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_affected_rows() - Ermittelt die Anzahl der betroffenen Zeilen in einem vorherigen MySQL Vorgang
  • mysql_affected_rows() - Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL-Operation


Returns the error code for the most recent function call

  • « MysqlndUhConnection::getAffectedRows
  • MysqlndUhConnection::getErrorString »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the error code for the most recent function call

MysqlndUhConnection::getErrorNumber

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getErrorNumber — Returns the error code for the most recent function call

Beschreibung

public MysqlndUhConnection::getErrorNumber ( mysqlnd_connection $connection ) : int

Returns the error code for the most recent function call.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Error code for the most recent function call.

Beispiele

MysqlndUhConnection::getErrorNumber() is not only executed after the invocation of a user space API call which maps directly to it but also called internally.

Beispiel #1 MysqlndUhConnection::getErrorNumber() example

<?php
class proxy extends MysqlndUhConnection {
 public function getErrorNumber($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getErrorNumber($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

printf("connect...\n");
$mysqli = new mysqli("localhost", "root", "", "test");
printf("query...\n");
$mysqli->query("PLEASE_LET_THIS_BE_INVALID_SQL");
printf("errno...\n");
var_dump($mysqli->errno);
printf("close...\n");
$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

connect...
proxy::getErrorNumber(array (
  0 => NULL,
))
proxy::getErrorNumber returns 0
query...
errno...
proxy::getErrorNumber(array (
  0 => NULL,
))
proxy::getErrorNumber returns 1064
int(1064)
close...

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • MysqlndUhConnection::getErrorString() - Returns a string description of the last error
  • mysqli_errno() - Returns the error code for the most recent function call
  • mysql_errno() - Liefert die Nummer einer Fehlermeldung einer zuvor ausgeführten MySQL-Operation


Returns a string description of the last error

  • « MysqlndUhConnection::getErrorNumber
  • MysqlndUhConnection::getFieldCount »
  • PHP Manual
  • MysqlndUhConnection
  • Returns a string description of the last error

MysqlndUhConnection::getErrorString

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getErrorString — Returns a string description of the last error

Beschreibung

public MysqlndUhConnection::getErrorString ( mysqlnd_connection $connection ) : string

Returns a string description of the last error.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Error string for the most recent function call.

Beispiele

MysqlndUhConnection::getErrorString() is not only executed after the invocation of a user space API call which maps directly to it but also called internally.

Beispiel #1 MysqlndUhConnection::getErrorString() example

<?php
class proxy extends MysqlndUhConnection {
 public function getErrorString($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getErrorString($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

printf("connect...\n");
$mysqli = new mysqli("localhost", "root", "", "test");
printf("query...\n");
$mysqli->query("WILL_I_EVER_LEARN_SQL?");
printf("errno...\n");
var_dump($mysqli->error);
printf("close...\n");
$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

connect...
proxy::getErrorString(array (
  0 => NULL,
))
proxy::getErrorString returns ''
query...
errno...
proxy::getErrorString(array (
  0 => NULL,
))
proxy::getErrorString returns 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'WILL_I_EVER_LEARN_SQL?\' at line 1'
string(168) "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WILL_I_EVER_LEARN_SQL?' at line 1"
close...

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • MysqlndUhConnection::getErrorNumber() - Returns the error code for the most recent function call
  • mysqli_error() - Returns a string description of the last error
  • mysql_error() - Liefert den Fehlertext der zuvor ausgeführten MySQL-Operation


Returns the number of columns for the most recent query

  • « MysqlndUhConnection::getErrorString
  • MysqlndUhConnection::getHostInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the number of columns for the most recent query

MysqlndUhConnection::getFieldCount

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getFieldCount — Returns the number of columns for the most recent query

Beschreibung

public MysqlndUhConnection::getFieldCount ( mysqlnd_connection $connection ) : int

Returns the number of columns for the most recent query.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Number of columns.

Beispiele

MysqlndUhConnection::getFieldCount() is not only executed after the invocation of a user space API call which maps directly to it but also called internally.

Beispiel #1 MysqlndUhConnection::getFieldCount() example

<?php
class proxy extends MysqlndUhConnection {
 public function getFieldCount($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getFieldCount($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("WILL_I_EVER_LEARN_SQL?");
var_dump($mysqli->field_count);
$mysqli->query("SELECT 1, 2, 3 FROM DUAL");
var_dump($mysqli->field_count);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getFieldCount(array (
  0 => NULL,
))
proxy::getFieldCount returns 0
int(0)
proxy::getFieldCount(array (
  0 => NULL,
))
proxy::getFieldCount returns 3
proxy::getFieldCount(array (
  0 => NULL,
))
proxy::getFieldCount returns 3
int(3)

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_field_count() - Returns the number of columns for the most recent query


Returns a string representing the type of connection used

  • « MysqlndUhConnection::getFieldCount
  • MysqlndUhConnection::getLastInsertId »
  • PHP Manual
  • MysqlndUhConnection
  • Returns a string representing the type of connection used

MysqlndUhConnection::getHostInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getHostInformation — Returns a string representing the type of connection used

Beschreibung

public MysqlndUhConnection::getHostInformation ( mysqlnd_connection $connection ) : string

Returns a string representing the type of connection used.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Connection description.

Beispiele

Beispiel #1 MysqlndUhConnection::getHostInformation() example

<?php
class proxy extends MysqlndUhConnection {
 public function getHostInformation($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getHostInformation($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->host_info);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getHostInformation(array (
  0 => NULL,
))
proxy::getHostInformation returns 'Localhost via UNIX socket'
string(25) "Localhost via UNIX socket"

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_host_info() - Returns a string representing the type of connection used
  • mysql_get_host_info() - Liefert Informationen zum MySQL-Host


Returns the auto generated id used in the last query

  • « MysqlndUhConnection::getHostInformation
  • MysqlndUhConnection::getLastMessage »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the auto generated id used in the last query

MysqlndUhConnection::getLastInsertId

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getLastInsertId — Returns the auto generated id used in the last query

Beschreibung

public MysqlndUhConnection::getLastInsertId ( mysqlnd_connection $connection ) : int

Returns the auto generated id used in the last query.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Last insert id.

Beispiele

Beispiel #1 MysqlndUhConnection::getLastInsertId() example

<?php
class proxy extends MysqlndUhConnection {
 public function getLastInsertId($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getLastInsertId($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT AUTO_INCREMENT PRIMARY KEY, col VARCHAR(255))");
$mysqli->query("INSERT INTO test(col) VALUES ('a')");
var_dump($mysqli->insert_id);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getLastInsertId(array (
  0 => NULL,
))
proxy::getLastInsertId returns 1
int(1)

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_insert_id() - Returns the auto generated id used in the latest query
  • mysql_insert_id() - Liefert die ID, die in der vorherigen Abfrage erzeugt wurde


Retrieves information about the most recently executed query

  • « MysqlndUhConnection::getLastInsertId
  • MysqlndUhConnection::getProtocolInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Retrieves information about the most recently executed query

MysqlndUhConnection::getLastMessage

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getLastMessage — Retrieves information about the most recently executed query

Beschreibung

public MysqlndUhConnection::getLastMessage ( mysqlnd_connection $connection ) : void

Retrieves information about the most recently executed query.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Last message. Trying to return a string longer than 511 bytes will cause an error of the type E_WARNING and result in the string being truncated.

Beispiele

Beispiel #1 MysqlndUhConnection::getLastMessage() example

<?php
class proxy extends MysqlndUhConnection {
 public function getLastMessage($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getLastMessage($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->info);
$mysqli->query("DROP TABLE IF EXISTS test");
var_dump($mysqli->info);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getLastMessage(array (
  0 => NULL,
))
proxy::getLastMessage returns ''
string(0) ""
proxy::getLastMessage(array (
  0 => NULL,
))
proxy::getLastMessage returns ''
string(0) ""

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_info() - Retrieves information about the most recently executed query
  • mysql_info() - Liefert Informationen über die zuletzt ausgeführte Anfrage


Returns the version of the MySQL protocol used

  • « MysqlndUhConnection::getLastMessage
  • MysqlndUhConnection::getServerInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the version of the MySQL protocol used

MysqlndUhConnection::getProtocolInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getProtocolInformation — Returns the version of the MySQL protocol used

Beschreibung

public MysqlndUhConnection::getProtocolInformation ( mysqlnd_connection $connection ) : string

Returns the version of the MySQL protocol used.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

The protocol version.

Beispiele

Beispiel #1 MysqlndUhConnection::getProtocolInformation() example

<?php
class proxy extends MysqlndUhConnection {
 public function getProtocolInformation($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getProtocolInformation($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->protocol_version);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getProtocolInformation(array (
  0 => NULL,
))
proxy::getProtocolInformation returns 10
int(10)

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_proto_info() - Returns the version of the MySQL protocol used
  • mysql_get_proto_info() - Liefert MySQL-Protokollinformationen


Returns the version of the MySQL server

  • « MysqlndUhConnection::getProtocolInformation
  • MysqlndUhConnection::getServerStatistics »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the version of the MySQL server

MysqlndUhConnection::getServerInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getServerInformation — Returns the version of the MySQL server

Beschreibung

public MysqlndUhConnection::getServerInformation ( mysqlnd_connection $connection ) : string

Returns the version of the MySQL server.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

The server version.

Beispiele

Beispiel #1 MysqlndUhConnection::getServerInformation() example

<?php
class proxy extends MysqlndUhConnection {
 public function getServerInformation($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getServerInformation($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->server_info);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getServerInformation(array (
  0 => NULL,
))
proxy::getServerInformation returns '5.1.45-debug-log'
string(16) "5.1.45-debug-log"

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_server_info() - Returns the version of the MySQL server
  • mysql_get_server_info() - Liefert Informationen zum MySQL-Server


Gets the current system status

  • « MysqlndUhConnection::getServerInformation
  • MysqlndUhConnection::getServerVersion »
  • PHP Manual
  • MysqlndUhConnection
  • Gets the current system status

MysqlndUhConnection::getServerStatistics

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getServerStatistics — Gets the current system status

Beschreibung

public MysqlndUhConnection::getServerStatistics ( mysqlnd_connection $connection ) : string

Gets the current system status.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

The system status message.

Beispiele

Beispiel #1 MysqlndUhConnection::getServerStatistics() example

<?php
class proxy extends MysqlndUhConnection {
 public function getServerStatistics($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getServerStatistics($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump(mysqli_stat($mysqli));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getServerStatistics(array (
  0 => NULL,
))
proxy::getServerStatistics returns 'Uptime: 2059995  Threads: 1  Questions: 126157  Slow queries: 0  Opens: 6377  Flush tables: 1  Open tables: 18  Queries per second avg: 0.61'
string(140) "Uptime: 2059995  Threads: 1  Questions: 126157  Slow queries: 0  Opens: 6377  Flush tables: 1  Open tables: 18  Queries per second avg: 0.61"

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_stat() - Liefert den aktuellen Systemstatus
  • mysql_stat() - Zeigt den momentanen Serverstatus an


Returns the version of the MySQL server as an integer

  • « MysqlndUhConnection::getServerStatistics
  • MysqlndUhConnection::getSqlstate »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the version of the MySQL server as an integer

MysqlndUhConnection::getServerVersion

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getServerVersion — Returns the version of the MySQL server as an integer

Beschreibung

public MysqlndUhConnection::getServerVersion ( mysqlnd_connection $connection ) : int

Returns the version of the MySQL server as an integer.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

The MySQL version.

Beispiele

Beispiel #1 MysqlndUhConnection::getServerVersion() example

<?php
class proxy extends MysqlndUhConnection {
 public function getServerVersion($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getServerVersion($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->server_version);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getServerVersion(array (
  0 => NULL,
))
proxy::getServerVersion returns 50145
int(50145)

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_server_version() - Returns the version of the MySQL server as an integer
  • mysql_get_server_version()


Returns the SQLSTATE error from previous MySQL operation

  • « MysqlndUhConnection::getServerVersion
  • MysqlndUhConnection::getStatistics »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the SQLSTATE error from previous MySQL operation

MysqlndUhConnection::getSqlstate

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getSqlstate — Returns the SQLSTATE error from previous MySQL operation

Beschreibung

public MysqlndUhConnection::getSqlstate ( mysqlnd_connection $connection ) : string

Returns the SQLSTATE error from previous MySQL operation.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

The SQLSTATE code.

Beispiele

Beispiel #1 MysqlndUhConnection::getSqlstate() example

<?php
class proxy extends MysqlndUhConnection {
 public function getSqlstate($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getSqlstate($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->sqlstate);
$mysqli->query("AN_INVALID_REQUEST_TO_PROVOKE_AN_ERROR");
var_dump($mysqli->sqlstate);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getSqlstate(array (
  0 => NULL,
))
proxy::getSqlstate returns '00000'
string(5) "00000"
proxy::getSqlstate(array (
  0 => NULL,
))
proxy::getSqlstate returns '42000'
string(5) "42000"

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_sql_state()


Returns statistics about the client connection

  • « MysqlndUhConnection::getSqlstate
  • MysqlndUhConnection::getThreadId »
  • PHP Manual
  • MysqlndUhConnection
  • Returns statistics about the client connection

MysqlndUhConnection::getStatistics

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getStatistics — Returns statistics about the client connection

Beschreibung

public MysqlndUhConnection::getStatistics ( mysqlnd_connection $connection ) : array

Returns statistics about the client connection.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Connection statistics collected by mysqlnd.

Beispiele

Beispiel #1 MysqlndUhConnection::getStatistics() example

<?php
class proxy extends MysqlndUhConnection {
 public function getStatistics($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getStatistics($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->get_connection_stats());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getStatistics(array (
  0 => NULL,
))
proxy::getStatistics returns array (
  'bytes_sent' => '73',
  'bytes_received' => '77',
  'packets_sent' => '2',
  'packets_received' => '2',
  'protocol_overhead_in' => '8',
  'protocol_overhead_out' => '8',
  'bytes_received_ok_packet' => '0',
  'bytes_received_eof_packet' => '0',
  'bytes_received_rset_header_packet' => '0',
  'bytes_received_rset_field_meta_packet' => '0',
  'bytes_received_rset_row_packet' => '0',
  'bytes_received_prepare_response_packet' => '0',
  'bytes_received_change_user_packet' => '0',
  'packets_sent_command' => '0',
  'packets_received_ok' => '0',
  'packets_received_eof' => '0',
  'packets_received_rset_header' => '0',
  'packets_received_rset_field_meta' => '0',
  'packets_received_rset_row' => '0',
  'packets_received_prepare_response' => '0',
  'packets_received_change_user' => '0',
  'result_set_queries' => '0',
  'non_result_set_queries' => '0',
  'no_index_used' => '0',
  'bad_index_used' => '0',
  'slow_queries' => '0',
  'buffered_sets' => '0',
  'unbuffered_sets' => '0',
  'ps_buffered_sets' => '0',
  'ps_unbuffered_sets' => '0',
  'flushed_normal_sets' => '0',
  'flushed_ps_sets' => '0',
  'ps_prepared_never_executed' => '0',
  'ps_prepared_once_executed' => '0',
  'rows_fetched_from_server_normal' => '0',
  'rows_fetched_from_server_ps' => '0',
  'rows_buffered_from_client_normal' => '0',
  'rows_buffered_from_client_ps' => '0',
  'rows_fetched_from_client_normal_buffered' => '0',
  'rows_fetched_from_client_normal_unbuffered' => '0',
  'rows_fetched_from_client_ps_buffered' => '0',
  'rows_fetched_from_client_ps_unbuffered' => '0',
  'rows_fetched_from_client_ps_cursor' => '0',
  'rows_affected_normal' => '0',
  'rows_affected_ps' => '0',
  'rows_skipped_normal' => '0',
  'rows_skipped_ps' => '0',
  'copy_on_write_saved' => '0',
  'copy_on_write_performed' => '0',
  'command_buffer_too_small' => '0',
  'connect_success' => '1',
  'connect_failure' => '0',
  'connection_reused' => '0',
  'reconnect' => '0',
  'pconnect_success' => '0',
  'active_connections' => '1',
  'active_persistent_connections' => '0',
  'explicit_close' => '0',
  'implicit_close' => '0',
  'disconnect_close' => '0',
  'in_middle_of_command_close' => '0',
  'explicit_free_result' => '0',
  'implicit_free_result' => '0',
  'explicit_stmt_close' => '0',
  'implicit_stmt_close' => '0',
  'mem_emalloc_count' => '0',
  'mem_emalloc_amount' => '0',
  'mem_ecalloc_count' => '0',
  'mem_ecalloc_amount' => '0',
  'mem_erealloc_count' => '0',
  'mem_erealloc_amount' => '0',
  'mem_efree_count' => '0',
  'mem_efree_amount' => '0',
  'mem_malloc_count' => '0',
  'mem_malloc_amount' => '0',
  'mem_calloc_count' => '0',
  'mem_calloc_amount' => '0',
  'mem_realloc_count' => '0',
  'mem_realloc_amount' => '0',
  'mem_free_count' => '0',
  'mem_free_amount' => '0',
  'mem_estrndup_count' => '0',
  'mem_strndup_count' => '0',
  'mem_estndup_count' => '0',
  'mem_strdup_count' => '0',
  'proto_text_fetched_null' => '0',
  'proto_text_fetched_bit' => '0',
  'proto_text_fetched_tinyint' => '0',
  'proto_text_fetched_short' => '0',
  'proto_text_fetched_int24' => '0',
  'proto_text_fetched_int' => '0',
  'proto_text_fetched_bigint' => '0',
  'proto_text_fetched_decimal' => '0',
  'proto_text_fetched_float' => '0',
  'proto_text_fetched_double' => '0',
  'proto_text_fetched_date' => '0',
  'proto_text_fetched_year' => '0',
  'proto_text_fetched_time' => '0',
  'proto_text_fetched_datetime' => '0',
  'proto_text_fetched_timestamp' => '0',
  'proto_text_fetched_string' => '0',
  'proto_text_fetched_blob' => '0',
  'proto_text_fetched_enum' => '0',
  'proto_text_fetched_set' => '0',
  'proto_text_fetched_geometry' => '0',
  'proto_text_fetched_other' => '0',
  'proto_binary_fetched_null' => '0',
  'proto_binary_fetched_bit' => '0',
  'proto_binary_fetched_tinyint' => '0',
  'proto_binary_fetched_short' => '0',
  'proto_binary_fetched_int24' => '0',
  'proto_binary_fetched_int' => '0',
  'proto_binary_fetched_bigint' => '0',
  'proto_binary_fetched_decimal' => '0',
  'proto_binary_fetched_float' => '0',
  'proto_binary_fetched_double' => '0',
  'proto_binary_fetched_date' => '0',
  'proto_binary_fetched_year' => '0',
  'proto_binary_fetched_time' => '0',
  'proto_binary_fetched_datetime' => '0',
  'proto_binary_fetched_timestamp' => '0',
  'proto_binary_fetched_string' => '0',
  'proto_binary_fetched_blob' => '0',
  'proto_binary_fetched_enum' => '0',
  'proto_binary_fetched_set' => '0',
  'proto_binary_fetched_geometry' => '0',
  'proto_binary_fetched_other' => '0',
  'init_command_executed_count' => '0',
  'init_command_failed_count' => '0',
  'com_quit' => '0',
  'com_init_db' => '0',
  'com_query' => '0',
  'com_field_list' => '0',
  'com_create_db' => '0',
  'com_drop_db' => '0',
  'com_refresh' => '0',
  'com_shutdown' => '0',
  'com_statistics' => '0',
  'com_process_info' => '0',
  'com_connect' => '0',
  'com_process_kill' => '0',
  'com_debug' => '0',
  'com_ping' => '0',
  'com_time' => '0',
  'com_delayed_insert' => '0',
  'com_change_user' => '0',
  'com_binlog_dump' => '0',
  'com_table_dump' => '0',
  'com_connect_out' => '0',
  'com_register_slave' => '0',
  'com_stmt_prepare' => '0',
  'com_stmt_execute' => '0',
  'com_stmt_send_long_data' => '0',
  'com_stmt_close' => '0',
  'com_stmt_reset' => '0',
  'com_stmt_set_option' => '0',
  'com_stmt_fetch' => '0',
  'com_deamon' => '0',
  'bytes_received_real_data_normal' => '0',
  'bytes_received_real_data_ps' => '0',
)
array(160) {
  ["bytes_sent"]=>
  string(2) "73"
  ["bytes_received"]=>
  string(2) "77"
  ["packets_sent"]=>
  string(1) "2"
  ["packets_received"]=>
  string(1) "2"
  ["protocol_overhead_in"]=>
  string(1) "8"
  ["protocol_overhead_out"]=>
  string(1) "8"
  ["bytes_received_ok_packet"]=>
  string(1) "0"
  ["bytes_received_eof_packet"]=>
  string(1) "0"
  ["bytes_received_rset_header_packet"]=>
  string(1) "0"
  ["bytes_received_rset_field_meta_packet"]=>
  string(1) "0"
  ["bytes_received_rset_row_packet"]=>
  string(1) "0"
  ["bytes_received_prepare_response_packet"]=>
  string(1) "0"
  ["bytes_received_change_user_packet"]=>
  string(1) "0"
  ["packets_sent_command"]=>
  string(1) "0"
  ["packets_received_ok"]=>
  string(1) "0"
  ["packets_received_eof"]=>
  string(1) "0"
  ["packets_received_rset_header"]=>
  string(1) "0"
  ["packets_received_rset_field_meta"]=>
  string(1) "0"
  ["packets_received_rset_row"]=>
  string(1) "0"
  ["packets_received_prepare_response"]=>
  string(1) "0"
  ["packets_received_change_user"]=>
  string(1) "0"
  ["result_set_queries"]=>
  string(1) "0"
  ["non_result_set_queries"]=>
  string(1) "0"
  ["no_index_used"]=>
  string(1) "0"
  ["bad_index_used"]=>
  string(1) "0"
  ["slow_queries"]=>
  string(1) "0"
  ["buffered_sets"]=>
  string(1) "0"
  ["unbuffered_sets"]=>
  string(1) "0"
  ["ps_buffered_sets"]=>
  string(1) "0"
  ["ps_unbuffered_sets"]=>
  string(1) "0"
  ["flushed_normal_sets"]=>
  string(1) "0"
  ["flushed_ps_sets"]=>
  string(1) "0"
  ["ps_prepared_never_executed"]=>
  string(1) "0"
  ["ps_prepared_once_executed"]=>
  string(1) "0"
  ["rows_fetched_from_server_normal"]=>
  string(1) "0"
  ["rows_fetched_from_server_ps"]=>
  string(1) "0"
  ["rows_buffered_from_client_normal"]=>
  string(1) "0"
  ["rows_buffered_from_client_ps"]=>
  string(1) "0"
  ["rows_fetched_from_client_normal_buffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_normal_unbuffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_ps_buffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_ps_unbuffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_ps_cursor"]=>
  string(1) "0"
  ["rows_affected_normal"]=>
  string(1) "0"
  ["rows_affected_ps"]=>
  string(1) "0"
  ["rows_skipped_normal"]=>
  string(1) "0"
  ["rows_skipped_ps"]=>
  string(1) "0"
  ["copy_on_write_saved"]=>
  string(1) "0"
  ["copy_on_write_performed"]=>
  string(1) "0"
  ["command_buffer_too_small"]=>
  string(1) "0"
  ["connect_success"]=>
  string(1) "1"
  ["connect_failure"]=>
  string(1) "0"
  ["connection_reused"]=>
  string(1) "0"
  ["reconnect"]=>
  string(1) "0"
  ["pconnect_success"]=>
  string(1) "0"
  ["active_connections"]=>
  string(1) "1"
  ["active_persistent_connections"]=>
  string(1) "0"
  ["explicit_close"]=>
  string(1) "0"
  ["implicit_close"]=>
  string(1) "0"
  ["disconnect_close"]=>
  string(1) "0"
  ["in_middle_of_command_close"]=>
  string(1) "0"
  ["explicit_free_result"]=>
  string(1) "0"
  ["implicit_free_result"]=>
  string(1) "0"
  ["explicit_stmt_close"]=>
  string(1) "0"
  ["implicit_stmt_close"]=>
  string(1) "0"
  ["mem_emalloc_count"]=>
  string(1) "0"
  ["mem_emalloc_amount"]=>
  string(1) "0"
  ["mem_ecalloc_count"]=>
  string(1) "0"
  ["mem_ecalloc_amount"]=>
  string(1) "0"
  ["mem_erealloc_count"]=>
  string(1) "0"
  ["mem_erealloc_amount"]=>
  string(1) "0"
  ["mem_efree_count"]=>
  string(1) "0"
  ["mem_efree_amount"]=>
  string(1) "0"
  ["mem_malloc_count"]=>
  string(1) "0"
  ["mem_malloc_amount"]=>
  string(1) "0"
  ["mem_calloc_count"]=>
  string(1) "0"
  ["mem_calloc_amount"]=>
  string(1) "0"
  ["mem_realloc_count"]=>
  string(1) "0"
  ["mem_realloc_amount"]=>
  string(1) "0"
  ["mem_free_count"]=>
  string(1) "0"
  ["mem_free_amount"]=>
  string(1) "0"
  ["mem_estrndup_count"]=>
  string(1) "0"
  ["mem_strndup_count"]=>
  string(1) "0"
  ["mem_estndup_count"]=>
  string(1) "0"
  ["mem_strdup_count"]=>
  string(1) "0"
  ["proto_text_fetched_null"]=>
  string(1) "0"
  ["proto_text_fetched_bit"]=>
  string(1) "0"
  ["proto_text_fetched_tinyint"]=>
  string(1) "0"
  ["proto_text_fetched_short"]=>
  string(1) "0"
  ["proto_text_fetched_int24"]=>
  string(1) "0"
  ["proto_text_fetched_int"]=>
  string(1) "0"
  ["proto_text_fetched_bigint"]=>
  string(1) "0"
  ["proto_text_fetched_decimal"]=>
  string(1) "0"
  ["proto_text_fetched_float"]=>
  string(1) "0"
  ["proto_text_fetched_double"]=>
  string(1) "0"
  ["proto_text_fetched_date"]=>
  string(1) "0"
  ["proto_text_fetched_year"]=>
  string(1) "0"
  ["proto_text_fetched_time"]=>
  string(1) "0"
  ["proto_text_fetched_datetime"]=>
  string(1) "0"
  ["proto_text_fetched_timestamp"]=>
  string(1) "0"
  ["proto_text_fetched_string"]=>
  string(1) "0"
  ["proto_text_fetched_blob"]=>
  string(1) "0"
  ["proto_text_fetched_enum"]=>
  string(1) "0"
  ["proto_text_fetched_set"]=>
  string(1) "0"
  ["proto_text_fetched_geometry"]=>
  string(1) "0"
  ["proto_text_fetched_other"]=>
  string(1) "0"
  ["proto_binary_fetched_null"]=>
  string(1) "0"
  ["proto_binary_fetched_bit"]=>
  string(1) "0"
  ["proto_binary_fetched_tinyint"]=>
  string(1) "0"
  ["proto_binary_fetched_short"]=>
  string(1) "0"
  ["proto_binary_fetched_int24"]=>
  string(1) "0"
  ["proto_binary_fetched_int"]=>
  string(1) "0"
  ["proto_binary_fetched_bigint"]=>
  string(1) "0"
  ["proto_binary_fetched_decimal"]=>
  string(1) "0"
  ["proto_binary_fetched_float"]=>
  string(1) "0"
  ["proto_binary_fetched_double"]=>
  string(1) "0"
  ["proto_binary_fetched_date"]=>
  string(1) "0"
  ["proto_binary_fetched_year"]=>
  string(1) "0"
  ["proto_binary_fetched_time"]=>
  string(1) "0"
  ["proto_binary_fetched_datetime"]=>
  string(1) "0"
  ["proto_binary_fetched_timestamp"]=>
  string(1) "0"
  ["proto_binary_fetched_string"]=>
  string(1) "0"
  ["proto_binary_fetched_blob"]=>
  string(1) "0"
  ["proto_binary_fetched_enum"]=>
  string(1) "0"
  ["proto_binary_fetched_set"]=>
  string(1) "0"
  ["proto_binary_fetched_geometry"]=>
  string(1) "0"
  ["proto_binary_fetched_other"]=>
  string(1) "0"
  ["init_command_executed_count"]=>
  string(1) "0"
  ["init_command_failed_count"]=>
  string(1) "0"
  ["com_quit"]=>
  string(1) "0"
  ["com_init_db"]=>
  string(1) "0"
  ["com_query"]=>
  string(1) "0"
  ["com_field_list"]=>
  string(1) "0"
  ["com_create_db"]=>
  string(1) "0"
  ["com_drop_db"]=>
  string(1) "0"
  ["com_refresh"]=>
  string(1) "0"
  ["com_shutdown"]=>
  string(1) "0"
  ["com_statistics"]=>
  string(1) "0"
  ["com_process_info"]=>
  string(1) "0"
  ["com_connect"]=>
  string(1) "0"
  ["com_process_kill"]=>
  string(1) "0"
  ["com_debug"]=>
  string(1) "0"
  ["com_ping"]=>
  string(1) "0"
  ["com_time"]=>
  string(1) "0"
  ["com_delayed_insert"]=>
  string(1) "0"
  ["com_change_user"]=>
  string(1) "0"
  ["com_binlog_dump"]=>
  string(1) "0"
  ["com_table_dump"]=>
  string(1) "0"
  ["com_connect_out"]=>
  string(1) "0"
  ["com_register_slave"]=>
  string(1) "0"
  ["com_stmt_prepare"]=>
  string(1) "0"
  ["com_stmt_execute"]=>
  string(1) "0"
  ["com_stmt_send_long_data"]=>
  string(1) "0"
  ["com_stmt_close"]=>
  string(1) "0"
  ["com_stmt_reset"]=>
  string(1) "0"
  ["com_stmt_set_option"]=>
  string(1) "0"
  ["com_stmt_fetch"]=>
  string(1) "0"
  ["com_deamon"]=>
  string(1) "0"
  ["bytes_received_real_data_normal"]=>
  string(1) "0"
  ["bytes_received_real_data_ps"]=>
  string(1) "0"
}

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_connection_stats() - Returns statistics about the client connection


Returns the thread ID for the current connection

  • « MysqlndUhConnection::getStatistics
  • MysqlndUhConnection::getWarningCount »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the thread ID for the current connection

MysqlndUhConnection::getThreadId

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getThreadId — Returns the thread ID for the current connection

Beschreibung

public MysqlndUhConnection::getThreadId ( mysqlnd_connection $connection ) : int

Returns the thread ID for the current connection.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Connection thread id.

Beispiele

Beispiel #1 MysqlndUhConnection::getThreadId() example

<?php
class proxy extends MysqlndUhConnection {
 public function getThreadId($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getThreadId($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->thread_id);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getThreadId(array (
  0 => NULL,
))
proxy::getThreadId returns 27646
int(27646)

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_thread_id() - Returns the thread ID for the current connection
  • mysql_thread_id() - Zeigt die aktuelle Thread-ID an


Returns the number of warnings from the last query for the given link

  • « MysqlndUhConnection::getThreadId
  • MysqlndUhConnection::init »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the number of warnings from the last query for the given link

MysqlndUhConnection::getWarningCount

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getWarningCount — Returns the number of warnings from the last query for the given link

Beschreibung

public MysqlndUhConnection::getWarningCount ( mysqlnd_connection $connection ) : int

Returns the number of warnings from the last query for the given link.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Number of warnings.

Beispiele

Beispiel #1 MysqlndUhConnection::getWarningCount() example

<?php
class proxy extends MysqlndUhConnection {
 public function getWarningCount($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getWarningCount($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->warning_count);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::getWarningCount(array (
  0 => NULL,
))
proxy::getWarningCount returns 0
int(0)

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_warning_count() - Gibt die Anzahl an Warnungen für den letzten Query der übergebenen Verbindung zurück.


Initialize mysqlnd connection

  • « MysqlndUhConnection::getWarningCount
  • MysqlndUhConnection::killConnection »
  • PHP Manual
  • MysqlndUhConnection
  • Initialize mysqlnd connection

MysqlndUhConnection::init

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::init — Initialize mysqlnd connection

Beschreibung

public MysqlndUhConnection::init ( mysqlnd_connection $connection ) : bool

Initialize mysqlnd connection. This is an mysqlnd internal call to initialize the connection object.

Hinweis:

Failing to call the parent implementation may cause memory leaks or crash PHP. This is not considered a bug. Please, keep in mind that the mysqlnd library functions have never been designed to be exposed to the user space.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::init() example

<?php
class proxy extends MysqlndUhConnection {
 public function init($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::init($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::init(array (
  0 => NULL,
))
proxy::init returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Asks the server to kill a MySQL thread

  • « MysqlndUhConnection::init
  • MysqlndUhConnection::listFields »
  • PHP Manual
  • MysqlndUhConnection
  • Asks the server to kill a MySQL thread

MysqlndUhConnection::killConnection

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::killConnection — Asks the server to kill a MySQL thread

Beschreibung

public MysqlndUhConnection::killConnection ( mysqlnd_connection $connection , int $pid ) : bool

Asks the server to kill a MySQL thread.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

pid

Thread Id of the connection to be killed.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::kill() example

<?php
class proxy extends MysqlndUhConnection {
 public function killConnection($res, $pid) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::killConnection($res, $pid);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->kill($mysqli->thread_id);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::killConnection(array (
  0 => NULL,
  1 => 27650,
))
proxy::killConnection returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_kill() - Asks the server to kill a MySQL thread


List MySQL table fields

  • « MysqlndUhConnection::killConnection
  • MysqlndUhConnection::listMethod »
  • PHP Manual
  • MysqlndUhConnection
  • List MySQL table fields

MysqlndUhConnection::listFields

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::listFields — List MySQL table fields

Beschreibung

public MysqlndUhConnection::listFields ( mysqlnd_connection $connection , string $table , string $achtung_wild ) : array

List MySQL table fields.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

table

The name of the table that's being queried.

pattern

Name pattern.

Rückgabewerte

Beispiele

Beispiel #1 MysqlndUhConnection::listFields() example

<?php
class proxy extends MysqlndUhConnection {
 public function listFields($res, $table, $pattern) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::listFields($res, $table, $pattern);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysql = mysql_connect("localhost", "root", "");
mysql_select_db("test", $mysql);
mysql_query("DROP TABLE IF EXISTS test_a", $mysql);
mysql_query("CREATE TABLE test_a(id INT, col1 VARCHAR(255))", $mysql);
$res = mysql_list_fields("test", "test_a", $mysql);
printf("num_rows = %d\n", mysql_num_rows($res));
while ($row = mysql_fetch_assoc($res))
 var_dump($row);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::listFields(array (
  0 => NULL,
  1 => 'test_a',
  2 => '',
))
proxy::listFields returns NULL
num_rows = 0

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysql_list_fields() - Listet MySQL-Tabellenfelder auf


Wrapper for assorted list commands

  • « MysqlndUhConnection::listFields
  • MysqlndUhConnection::moreResults »
  • PHP Manual
  • MysqlndUhConnection
  • Wrapper for assorted list commands

MysqlndUhConnection::listMethod

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::listMethod — Wrapper for assorted list commands

Beschreibung

public MysqlndUhConnection::listMethod ( mysqlnd_connection $connection , string $query , string $achtung_wild , string $par1 ) : void

Wrapper for assorted list commands.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

query

SHOW command to be executed.

achtung_wild

par1

Rückgabewerte

Rückgabewerte

TODO

Beispiele

Beispiel #1 MysqlndUhConnection::listMethod() example

<?php
class proxy extends MysqlndUhConnection {
 public function listMethod($res, $query, $pattern, $par1) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::listMethod($res, $query, $pattern, $par1);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysql = mysql_connect("localhost", "root", "");
$res = mysql_list_dbs($mysql);
printf("num_rows = %d\n", mysql_num_rows($res));
while ($row = mysql_fetch_assoc($res))
 var_dump($row);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::listMethod(array (
  0 => NULL,
  1 => 'SHOW DATABASES',
  2 => '',
  3 => '',
))
proxy::listMethod returns NULL
num_rows = 6
array(1) {
  ["Database"]=>
  string(18) "information_schema"
}
array(1) {
  ["Database"]=>
  string(5) "mysql"
}
array(1) {
  ["Database"]=>
  string(8) "oxid_new"
}
array(1) {
  ["Database"]=>
  string(7) "phptest"
}
array(1) {
  ["Database"]=>
  string(7) "pushphp"
}
array(1) {
  ["Database"]=>
  string(4) "test"
}

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysql_list_dbs() - Listet die verfügbaren Datenbanken (Schemata) auf einem MySQL-Server auf


Check if there are any more query results from a multi query

  • « MysqlndUhConnection::listMethod
  • MysqlndUhConnection::nextResult »
  • PHP Manual
  • MysqlndUhConnection
  • Check if there are any more query results from a multi query

MysqlndUhConnection::moreResults

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::moreResults — Check if there are any more query results from a multi query

Beschreibung

public MysqlndUhConnection::moreResults ( mysqlnd_connection $connection ) : bool

Check if there are any more query results from a multi query.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::moreResults() example

<?php
class proxy extends MysqlndUhConnection {
 public function moreResults($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::moreResults($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->multi_query("SELECT 1 AS _one; SELECT 2 AS _two");
do {
  $res = $mysqli->store_result();
  var_dump($res->fetch_assoc());
  printf("%s\n", str_repeat("-", 40));
} while ($mysqli->more_results() && $mysqli->next_result());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["_one"]=>
  string(1) "1"
}
----------------------------------------
proxy::moreResults(array (
  0 => NULL,
))
proxy::moreResults returns true
proxy::moreResults(array (
  0 => NULL,
))
proxy::moreResults returns true
array(1) {
  ["_two"]=>
  string(1) "2"
}
----------------------------------------
proxy::moreResults(array (
  0 => NULL,
))
proxy::moreResults returns false

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_more_results() - Check if there are any more query results from a multi query


Prepare next result from multi_query

  • « MysqlndUhConnection::moreResults
  • MysqlndUhConnection::ping »
  • PHP Manual
  • MysqlndUhConnection
  • Prepare next result from multi_query

MysqlndUhConnection::nextResult

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::nextResult — Prepare next result from multi_query

Beschreibung

public MysqlndUhConnection::nextResult ( mysqlnd_connection $connection ) : bool

Prepare next result from multi_query.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::nextResult() example

<?php
class proxy extends MysqlndUhConnection {
 public function nextResult($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::nextResult($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->multi_query("SELECT 1 AS _one; SELECT 2 AS _two");
do {
  $res = $mysqli->store_result();
  var_dump($res->fetch_assoc());
  printf("%s\n", str_repeat("-", 40));
} while ($mysqli->more_results() && $mysqli->next_result());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["_one"]=>
  string(1) "1"
}
----------------------------------------
proxy::nextResult(array (
  0 => NULL,
))
proxy::nextResult returns true
array(1) {
  ["_two"]=>
  string(1) "2"
}
----------------------------------------

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_next_result() - Prepare next result from multi_query


Pings a server connection, or tries to reconnect if the connection has gone down

  • « MysqlndUhConnection::nextResult
  • MysqlndUhConnection::query »
  • PHP Manual
  • MysqlndUhConnection
  • Pings a server connection, or tries to reconnect if the connection has gone down

MysqlndUhConnection::ping

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::ping — Pings a server connection, or tries to reconnect if the connection has gone down

Beschreibung

public MysqlndUhConnection::ping ( mysqlnd_connection $connection ) : bool

Pings a server connection, or tries to reconnect if the connection has gone down.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::ping() example

<?php
class proxy extends MysqlndUhConnection {
 public function ping($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::ping($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->ping();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::ping(array (
  0 => NULL,
))
proxy::ping returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_ping() - Pings a server connection, or tries to reconnect if the connection has gone down
  • mysql_ping() - Pingt eine Serververbindung an und verbindet erneut, wenn keine Verbindung besteht


Performs a query on the database

  • « MysqlndUhConnection::ping
  • MysqlndUhConnection::queryReadResultsetHeader »
  • PHP Manual
  • MysqlndUhConnection
  • Performs a query on the database

MysqlndUhConnection::query

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::query — Performs a query on the database

Beschreibung

public MysqlndUhConnection::query ( mysqlnd_connection $connection , string $query ) : bool

Performs a query on the database (COM_QUERY).

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

query

The query string.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::query() example

<?php
class proxy extends MysqlndUhConnection {
 public function query($res, $query) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $query = "SELECT 'How about query rewriting?'";
  $ret = parent::query($res, $query);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$res = $mysqli->query("SELECT 'Welcome mysqlnd_uh!' FROM DUAL");
var_dump($res->fetch_assoc());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Welcome mysqlnd_uh!\' FROM DUAL',
))
proxy::query returns true
array(1) {
  ["How about query rewriting?"]=>
  string(26) "How about query rewriting?"
}

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_query() - Performs a query on the database
  • mysql_query() - Sendet eine Abfrage an MySQL


Read a result set header

  • « MysqlndUhConnection::query
  • MysqlndUhConnection::reapQuery »
  • PHP Manual
  • MysqlndUhConnection
  • Read a result set header

MysqlndUhConnection::queryReadResultsetHeader

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::queryReadResultsetHeader — Read a result set header

Beschreibung

public MysqlndUhConnection::queryReadResultsetHeader ( mysqlnd_connection $connection , mysqlnd_statement $mysqlnd_stmt ) : bool

Read a result set header.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

mysqlnd_stmt

Mysqlnd statement handle. Do not modify! Set to null, if function is not used in the context of a prepared statement.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::queryReadResultsetHeader() example

<?php
class proxy extends MysqlndUhConnection {
 public function queryReadResultsetHeader($res, $stmt) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::queryReadResultsetHeader($res, $stmt);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$res = $mysqli->query("SELECT 'Welcome mysqlnd_uh!' FROM DUAL");
var_dump($res->fetch_assoc());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::queryReadResultsetHeader(array (
  0 => NULL,
  1 => NULL,
))
proxy::queryReadResultsetHeader returns true
array(1) {
  ["Welcome mysqlnd_uh!"]=>
  string(19) "Welcome mysqlnd_uh!"
}

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Get result from async query

  • « MysqlndUhConnection::queryReadResultsetHeader
  • MysqlndUhConnection::refreshServer »
  • PHP Manual
  • MysqlndUhConnection
  • Get result from async query

MysqlndUhConnection::reapQuery

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::reapQuery — Get result from async query

Beschreibung

public MysqlndUhConnection::reapQuery ( mysqlnd_connection $connection ) : bool

Get result from async query.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::reapQuery() example

<?php
class proxy extends MysqlndUhConnection {
 public function reapQuery($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::reapQuery($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$conn1 = new mysqli("localhost", "root", "", "test");
$conn2 = new mysqli("localhost", "root", "", "test");

$conn1->query("SELECT 1 as 'one', SLEEP(1) AS _sleep FROM DUAL", MYSQLI_ASYNC |  MYSQLI_USE_RESULT);
$conn2->query("SELECT 1.1 as 'one dot one' FROM DUAL", MYSQLI_ASYNC |  MYSQLI_USE_RESULT);

$links = array(
 $conn1->thread_id => array('link' => $conn1, 'processed' => false),
 $conn2->thread_id => array('link' => $conn2, 'processed' => false)
);

$saved_errors = array();
do {
 $poll_links = $poll_errors = $poll_reject = array();
 foreach ($links as $thread_id => $link) {
  if (!$link['processed']) {
   $poll_links[] = $link['link'];
   $poll_errors[] = $link['link'];
   $poll_reject[] = $link['link'];
  }
 }
 if (0 == count($poll_links))
  break;

 if (0 == ($num_ready = mysqli_poll($poll_links, $poll_errors, $poll_reject, 0, 200000)))
  continue;

 if (!empty($poll_errors)) {
  die(var_dump($poll_errors));
 }

 foreach ($poll_links as $link) {
  $thread_id = mysqli_thread_id($link);
  $links[$thread_id]['processed'] = true;

  if (is_object($res = mysqli_reap_async_query($link))) {
   // result set object
   while ($row = mysqli_fetch_assoc($res)) {
    // eat up all results
    var_dump($row);
   }
   mysqli_free_result($res);
  } else {
   // either there is no result (no SELECT) or there is an error
   if (mysqli_errno($link) > 0) {
    $saved_errors[$thread_id] = mysqli_errno($link);
    printf("'%s' caused %d\n", $links[$thread_id]['query'],     mysqli_errno($link));
   }
  }
 }
} while (true);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::reapQuery(array (
  0 => NULL,
))
proxy::reapQuery returns true
array(1) {
  ["one dot one"]=>
  string(3) "1.1"
}
proxy::reapQuery(array (
  0 => NULL,
))
proxy::reapQuery returns true
array(2) {
  ["one"]=>
  string(1) "1"
  ["_sleep"]=>
  string(1) "0"
}

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_async_query()


Flush or reset tables and caches

  • « MysqlndUhConnection::reapQuery
  • MysqlndUhConnection::restartPSession »
  • PHP Manual
  • MysqlndUhConnection
  • Flush or reset tables and caches

MysqlndUhConnection::refreshServer

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::refreshServer — Flush or reset tables and caches

Beschreibung

public MysqlndUhConnection::refreshServer ( mysqlnd_connection $connection , int $options ) : bool

Flush or reset tables and caches.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

options

What to refresh.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::refreshServer() example

<?php
class proxy extends MysqlndUhConnection {
 public function refreshServer($res, $option) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::refreshServer($res, $option);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
mysqli_refresh($mysqli, 1);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::refreshServer(array (
  0 => NULL,
  1 => 1,
))
proxy::refreshServer returns false

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Restart a persistent mysqlnd connection

  • « MysqlndUhConnection::refreshServer
  • MysqlndUhConnection::selectDb »
  • PHP Manual
  • MysqlndUhConnection
  • Restart a persistent mysqlnd connection

MysqlndUhConnection::restartPSession

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::restartPSession — Restart a persistent mysqlnd connection

Beschreibung

public MysqlndUhConnection::restartPSession ( mysqlnd_connection $connection ) : bool

Restart a persistent mysqlnd connection.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::restartPSession() example

<?php
class proxy extends MysqlndUhConnection {
 public function ping($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::ping($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->ping();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::restartPSession(array (
  0 => NULL,
))
proxy::restartPSession returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Selects the default database for database queries

  • « MysqlndUhConnection::restartPSession
  • MysqlndUhConnection::sendClose »
  • PHP Manual
  • MysqlndUhConnection
  • Selects the default database for database queries

MysqlndUhConnection::selectDb

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::selectDb — Selects the default database for database queries

Beschreibung

public MysqlndUhConnection::selectDb ( mysqlnd_connection $connection , string $database ) : bool

Selects the default database for database queries.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

database

The database name.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::selectDb() example

<?php
class proxy extends MysqlndUhConnection {
 public function selectDb($res, $database) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::selectDb($res, $database);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->select_db("mysql");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::selectDb(array (
  0 => NULL,
  1 => 'mysql',
))
proxy::selectDb returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_select_db() - Selects the default database for database queries
  • mysql_select_db() - Wählt eine MySQL-Datenbank aus


Sends a close command to MySQL

  • « MysqlndUhConnection::selectDb
  • MysqlndUhConnection::sendQuery »
  • PHP Manual
  • MysqlndUhConnection
  • Sends a close command to MySQL

MysqlndUhConnection::sendClose

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::sendClose — Sends a close command to MySQL

Beschreibung

public MysqlndUhConnection::sendClose ( mysqlnd_connection $connection ) : bool

Sends a close command to MySQL.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::sendClose() example

<?php
class proxy extends MysqlndUhConnection {
 public function sendClose($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::sendClose($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->close();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::sendClose(array (
  0 => NULL,
))
proxy::sendClose returns true
proxy::sendClose(array (
  0 => NULL,
))
proxy::sendClose returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Sends a query to MySQL

  • « MysqlndUhConnection::sendClose
  • MysqlndUhConnection::serverDumpDebugInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Sends a query to MySQL

MysqlndUhConnection::sendQuery

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::sendQuery — Sends a query to MySQL

Beschreibung

public MysqlndUhConnection::sendQuery ( mysqlnd_connection $connection , string $query ) : bool

Sends a query to MySQL.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

query

The query string.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::sendQuery() example

<?php
class proxy extends MysqlndUhConnection {
 public function sendQuery($res, $query) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::sendQuery($res, $query);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("SELECT 1");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::sendQuery(array (
  0 => NULL,
  1 => 'SELECT 1',
))
proxy::sendQuery returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Dump debugging information into the log for the MySQL server

  • « MysqlndUhConnection::sendQuery
  • MysqlndUhConnection::setAutocommit »
  • PHP Manual
  • MysqlndUhConnection
  • Dump debugging information into the log for the MySQL server

MysqlndUhConnection::serverDumpDebugInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::serverDumpDebugInformation — Dump debugging information into the log for the MySQL server

Beschreibung

public MysqlndUhConnection::serverDumpDebugInformation ( mysqlnd_connection $connection ) : bool

Dump debugging information into the log for the MySQL server.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::serverDumpDebugInformation() example

<?php
class proxy extends MysqlndUhConnection {
 public function serverDumpDebugInformation($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::serverDumpDebugInformation($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->dump_debug_info();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::serverDumpDebugInformation(array (
  0 => NULL,
))
proxy::serverDumpDebugInformation returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_dump_debug_info() - Dump debugging information into the log


Turns on or off auto-committing database modifications

  • « MysqlndUhConnection::serverDumpDebugInformation
  • MysqlndUhConnection::setCharset »
  • PHP Manual
  • MysqlndUhConnection
  • Turns on or off auto-committing database modifications

MysqlndUhConnection::setAutocommit

(PECL mysqlnd-uh >= 1.0.1-alpha)

MysqlndUhConnection::setAutocommit — Turns on or off auto-committing database modifications

Beschreibung

public MysqlndUhConnection::setAutocommit ( mysqlnd_connection $connection , int $mode ) : bool

Turns on or off auto-committing database modifications

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

mode

Whether to turn on auto-commit or not.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::setAutocommit() example

<?php
class proxy extends MysqlndUhConnection {
 public function setAutocommit($res, $mode) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::setAutocommit($res, $mode);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->autocommit(false);
$mysqli->autocommit(true);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::setAutocommit(array (
  0 => NULL,
  1 => 0,
))
proxy::setAutocommit returns true
proxy::setAutocommit(array (
  0 => NULL,
  1 => 1,
))
proxy::setAutocommit returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_autocommit() - Aktiviert oder deaktiviert das automatische Übertragen von Datenbankänderungen


Sets the default client character set

  • « MysqlndUhConnection::setAutocommit
  • MysqlndUhConnection::setClientOption »
  • PHP Manual
  • MysqlndUhConnection
  • Sets the default client character set

MysqlndUhConnection::setCharset

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setCharset — Sets the default client character set

Beschreibung

public MysqlndUhConnection::setCharset ( mysqlnd_connection $connection , string $charset ) : bool

Sets the default client character set.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

charset

The charset to be set as default.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::setCharset() example

<?php
class proxy extends MysqlndUhConnection {
 public function setCharset($res, $charset) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::setCharset($res, $charset);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->set_charset("latin1");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::setCharset(array (
  0 => NULL,
  1 => 'latin1',
))
proxy::setCharset returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_set_charset() - Sets the default client character set


Sets a client option

  • « MysqlndUhConnection::setCharset
  • MysqlndUhConnection::setServerOption »
  • PHP Manual
  • MysqlndUhConnection
  • Sets a client option

MysqlndUhConnection::setClientOption

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setClientOption — Sets a client option

Beschreibung

public MysqlndUhConnection::setClientOption ( mysqlnd_connection $connection , int $option , int $value ) : bool

Sets a client option.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

option

The option to be set.

value

Optional option value, if required.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::setClientOption() example

<?php
function client_option_to_string($option) {
 static $mapping = array(
  MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT => "MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT",
  MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS => "MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS",
  MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE => "MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE",
  MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND => "MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND",
  MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE => "MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE",
  MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP => "MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP",
  MYSQLND_UH_MYSQLND_SET_CHARSET_DIR => "MYSQLND_UH_MYSQLND_SET_CHARSET_DIR",
  MYSQLND_UH_MYSQLND_SET_CHARSET_NAME => "MYSQLND_UH_MYSQLND_SET_CHARSET_NAME",
  MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE => "MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE",
  MYSQLND_UH_MYSQLND_OPT_PROTOCOL => "MYSQLND_UH_MYSQLND_OPT_PROTOCOL",
  MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME => "MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME",
  MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT => "MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT",
  MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT => "MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT",
  MYSQLND_UH_MYSQLND_OPT_USE_RESULT => "MYSQLND_UH_MYSQLND_OPT_USE_RESULT",
  MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION => "MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION",
  MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION => "MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION",
  MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION => "MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION",
  MYSQLND_UH_MYSQLND_SET_CLIENT_IP => "MYSQLND_UH_MYSQLND_SET_CLIENT_IP",
  MYSQLND_UH_MYSQLND_SECURE_AUTH => "MYSQLND_UH_MYSQLND_SECURE_AUTH",
  MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION => "MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION",
  MYSQLND_UH_MYSQLND_OPT_RECONNECT => "MYSQLND_UH_MYSQLND_OPT_RECONNECT",
  MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT => "MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT",
  MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE => "MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE",
  MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE => "MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE",
  MYSQLND_UH_MYSQLND_OPT_SSL_KEY => "MYSQLND_UH_MYSQLND_OPT_SSL_KEY",
  MYSQLND_UH_MYSQLND_OPT_SSL_CERT => "MYSQLND_UH_MYSQLND_OPT_SSL_CERT",
  MYSQLND_UH_MYSQLND_OPT_SSL_CA => "MYSQLND_UH_MYSQLND_OPT_SSL_CA",
  MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH => "MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH",
  MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER => "MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER",
  MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE => "MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE",
  MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR => "MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR",
  MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH => "MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH",
  MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP => "MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP"
 );
 if (version_compare(PHP_VERSION, '5.3.99-dev', '>')) {
  $mapping[MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET] = "MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET";
  $mapping[MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL] = "MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL";
 }
 if (defined("MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE")) {
  /* special mysqlnd build */
  $mapping["MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE"] = "MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE";
 }
 return (isset($mapping[$option])) ? $mapping[$option] : 'unknown';
}

class proxy extends MysqlndUhConnection {
 public function setClientOption($res, $option, $value) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Option '%s' set to %s\n", client_option_to_string($option), var_export($value, true));
  $ret = parent::setClientOption($res, $option, $value);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::setClientOption(array (
  0 => NULL,
  1 => 210,
  2 => 3221225472,
))
Option 'MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET' set to 3221225472
proxy::setClientOption returns true
proxy::setClientOption(array (
  0 => NULL,
  1 => 211,
  2 => 'mysql_native_password',
))
Option 'MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL' set to 'mysql_native_password'
proxy::setClientOption returns true
proxy::setClientOption(array (
  0 => NULL,
  1 => 8,
  2 => 1,
))
Option 'MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE' set to 1
proxy::setClientOption returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_connect() - Opens a connection to a mysql server
  • mysqli_options() - Set options


Sets a server option

  • « MysqlndUhConnection::setClientOption
  • MysqlndUhConnection::shutdownServer »
  • PHP Manual
  • MysqlndUhConnection
  • Sets a server option

MysqlndUhConnection::setServerOption

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setServerOption — Sets a server option

Beschreibung

public MysqlndUhConnection::setServerOption ( mysqlnd_connection $connection , int $option ) : void

Sets a server option.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

option

The option to be set.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::setServerOption() example

<?php
function server_option_to_string($option) {
 $ret = 'unknown';
 switch ($option) {
  case MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON:
   $ret = 'MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON';
   break;
  case MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_OFF:
   $ret = 'MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON';
   break;
 }
 return $ret;
}

class proxy extends MysqlndUhConnection {
 public function setServerOption($res, $option) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Option '%s' set\n", server_option_to_string($option));
  $ret = parent::setServerOption($res, $option);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->multi_query("SELECT 1; SELECT 2");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::setServerOption(array (
  0 => NULL,
  1 => 0,
))
Option 'MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON' set
proxy::setServerOption returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_connect() - Opens a connection to a mysql server
  • mysqli_options() - Set options
  • mysqli_multi_query() - Performs a query on the database


The shutdownServer purpose

  • « MysqlndUhConnection::setServerOption
  • MysqlndUhConnection::simpleCommand »
  • PHP Manual
  • MysqlndUhConnection
  • The shutdownServer purpose

MysqlndUhConnection::shutdownServer

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::shutdownServer — The shutdownServer purpose

Beschreibung

public MysqlndUhConnection::shutdownServer ( string $MYSQLND_UH_RES_MYSQLND_NAME , string $level ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

MYSQLND_UH_RES_MYSQLND_NAME

level

Rückgabewerte


Sends a basic COM_* command

  • « MysqlndUhConnection::shutdownServer
  • MysqlndUhConnection::simpleCommandHandleResponse »
  • PHP Manual
  • MysqlndUhConnection
  • Sends a basic COM_* command

MysqlndUhConnection::simpleCommand

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::simpleCommand — Sends a basic COM_* command

Beschreibung

public MysqlndUhConnection::simpleCommand ( mysqlnd_connection $connection , int $command , string $arg , int $ok_packet , bool $silent , bool $ignore_upsert_status ) : bool

Sends a basic COM_* command to MySQL.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

command

The COM command to be send.

arg

Optional COM command arguments.

ok_packet

The OK packet type.

silent

Whether mysqlnd may emit errors.

ignore_upsert_status

Whether to ignore UPDATE/INSERT status.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::simpleCommand() example

<?php
function server_cmd_2_string($command) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_COM_SLEEP => "MYSQLND_UH_MYSQLND_COM_SLEEP",
  MYSQLND_UH_MYSQLND_COM_QUIT => "MYSQLND_UH_MYSQLND_COM_QUIT",
  MYSQLND_UH_MYSQLND_COM_INIT_DB => "MYSQLND_UH_MYSQLND_COM_INIT_DB",
  MYSQLND_UH_MYSQLND_COM_QUERY => "MYSQLND_UH_MYSQLND_COM_QUERY",
  MYSQLND_UH_MYSQLND_COM_FIELD_LIST => "MYSQLND_UH_MYSQLND_COM_FIELD_LIST",
  MYSQLND_UH_MYSQLND_COM_CREATE_DB => "MYSQLND_UH_MYSQLND_COM_CREATE_DB",
  MYSQLND_UH_MYSQLND_COM_DROP_DB => "MYSQLND_UH_MYSQLND_COM_DROP_DB",
  MYSQLND_UH_MYSQLND_COM_REFRESH => "MYSQLND_UH_MYSQLND_COM_REFRESH",
  MYSQLND_UH_MYSQLND_COM_SHUTDOWN => "MYSQLND_UH_MYSQLND_COM_SHUTDOWN",
  MYSQLND_UH_MYSQLND_COM_STATISTICS => "MYSQLND_UH_MYSQLND_COM_STATISTICS",
  MYSQLND_UH_MYSQLND_COM_PROCESS_INFO => "MYSQLND_UH_MYSQLND_COM_PROCESS_INFO",
  MYSQLND_UH_MYSQLND_COM_CONNECT => "MYSQLND_UH_MYSQLND_COM_CONNECT",
  MYSQLND_UH_MYSQLND_COM_PROCESS_KILL => "MYSQLND_UH_MYSQLND_COM_PROCESS_KILL",
  MYSQLND_UH_MYSQLND_COM_DEBUG => "MYSQLND_UH_MYSQLND_COM_DEBUG",
  MYSQLND_UH_MYSQLND_COM_PING => "MYSQLND_UH_MYSQLND_COM_PING",
  MYSQLND_UH_MYSQLND_COM_TIME => "MYSQLND_UH_MYSQLND_COM_TIME",
  MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT => "MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT",
  MYSQLND_UH_MYSQLND_COM_CHANGE_USER => "MYSQLND_UH_MYSQLND_COM_CHANGE_USER",
  MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP => "MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP",
  MYSQLND_UH_MYSQLND_COM_TABLE_DUMP => "MYSQLND_UH_MYSQLND_COM_TABLE_DUMP",
  MYSQLND_UH_MYSQLND_COM_CONNECT_OUT => "MYSQLND_UH_MYSQLND_COM_CONNECT_OUT",
  MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED => "MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED",
  MYSQLND_UH_MYSQLND_COM_STMT_PREPARE => "MYSQLND_UH_MYSQLND_COM_STMT_PREPARE",
  MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE => "MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE",
  MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA => "MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA",
  MYSQLND_UH_MYSQLND_COM_STMT_CLOSE => "MYSQLND_UH_MYSQLND_COM_STMT_CLOSE",
  MYSQLND_UH_MYSQLND_COM_STMT_RESET => "MYSQLND_UH_MYSQLND_COM_STMT_RESET",
  MYSQLND_UH_MYSQLND_COM_SET_OPTION => "MYSQLND_UH_MYSQLND_COM_SET_OPTION",
  MYSQLND_UH_MYSQLND_COM_STMT_FETCH => "MYSQLND_UH_MYSQLND_COM_STMT_FETCH",
  MYSQLND_UH_MYSQLND_COM_DAEMON => "MYSQLND_UH_MYSQLND_COM_DAEMON",
  MYSQLND_UH_MYSQLND_COM_END => "MYSQLND_UH_MYSQLND_COM_END",
 );
 return (isset($mapping[$command])) ? $mapping[$command] : 'unknown';
}

function ok_packet_2_string($ok_packet) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_PROT_GREET_PACKET => "MYSQLND_UH_MYSQLND_PROT_GREET_PACKET",
  MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET => "MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET",
  MYSQLND_UH_MYSQLND_PROT_OK_PACKET => "MYSQLND_UH_MYSQLND_PROT_OK_PACKET",
  MYSQLND_UH_MYSQLND_PROT_EOF_PACKET => "MYSQLND_UH_MYSQLND_PROT_EOF_PACKET",
  MYSQLND_UH_MYSQLND_PROT_CMD_PACKET => "MYSQLND_UH_MYSQLND_PROT_CMD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_ROW_PACKET => "MYSQLND_UH_MYSQLND_PROT_ROW_PACKET",
  MYSQLND_UH_MYSQLND_PROT_STATS_PACKET => "MYSQLND_UH_MYSQLND_PROT_STATS_PACKET",
  MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET => "MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET",
  MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET => "MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET",
  MYSQLND_UH_MYSQLND_PROT_LAST => "MYSQLND_UH_MYSQLND_PROT_LAST",
 );
 return (isset($mapping[$ok_packet])) ? $mapping[$ok_packet] : 'unknown';
}

class proxy extends MysqlndUhConnection {
 public function simpleCommand($conn, $command, $arg, $ok_packet, $silent, $ignore_upsert_status) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Command '%s'\n", server_cmd_2_string($command));
  printf("OK packet '%s'\n",  ok_packet_2_string($ok_packet));
  $ret = parent::simpleCommand($conn, $command, $arg, $ok_packet, $silent, $ignore_upsert_status);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("SELECT 1");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::simpleCommand(array (
  0 => NULL,
  1 => 3,
  2 => 'SELECT 1',
  3 => 13,
  4 => false,
  5 => false,
))
Command 'MYSQLND_UH_MYSQLND_COM_QUERY'
OK packet 'MYSQLND_UH_MYSQLND_PROT_LAST'
proxy::simpleCommand returns true
:)proxy::simpleCommand(array (
  0 => NULL,
  1 => 1,
  2 => '',
  3 => 13,
  4 => true,
  5 => true,
))
Command 'MYSQLND_UH_MYSQLND_COM_QUIT'
OK packet 'MYSQLND_UH_MYSQLND_PROT_LAST'
proxy::simpleCommand returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Process a response for a basic COM_* command send to the client

  • « MysqlndUhConnection::simpleCommand
  • MysqlndUhConnection::sslSet »
  • PHP Manual
  • MysqlndUhConnection
  • Process a response for a basic COM_* command send to the client

MysqlndUhConnection::simpleCommandHandleResponse

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::simpleCommandHandleResponse — Process a response for a basic COM_* command send to the client

Beschreibung

public MysqlndUhConnection::simpleCommandHandleResponse ( mysqlnd_connection $connection , int $ok_packet , bool $silent , int $command , bool $ignore_upsert_status ) : bool

Process a response for a basic COM_* command send to the client.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

ok_packet

The OK packet type.

silent

Whether mysqlnd may emit errors.

command

The COM command to process results from.

ignore_upsert_status

Whether to ignore UPDATE/INSERT status.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::simpleCommandHandleResponse() example

<?php
function server_cmd_2_string($command) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_COM_SLEEP => "MYSQLND_UH_MYSQLND_COM_SLEEP",
  MYSQLND_UH_MYSQLND_COM_QUIT => "MYSQLND_UH_MYSQLND_COM_QUIT",
  MYSQLND_UH_MYSQLND_COM_INIT_DB => "MYSQLND_UH_MYSQLND_COM_INIT_DB",
  MYSQLND_UH_MYSQLND_COM_QUERY => "MYSQLND_UH_MYSQLND_COM_QUERY",
  MYSQLND_UH_MYSQLND_COM_FIELD_LIST => "MYSQLND_UH_MYSQLND_COM_FIELD_LIST",
  MYSQLND_UH_MYSQLND_COM_CREATE_DB => "MYSQLND_UH_MYSQLND_COM_CREATE_DB",
  MYSQLND_UH_MYSQLND_COM_DROP_DB => "MYSQLND_UH_MYSQLND_COM_DROP_DB",
  MYSQLND_UH_MYSQLND_COM_REFRESH => "MYSQLND_UH_MYSQLND_COM_REFRESH",
  MYSQLND_UH_MYSQLND_COM_SHUTDOWN => "MYSQLND_UH_MYSQLND_COM_SHUTDOWN",
  MYSQLND_UH_MYSQLND_COM_STATISTICS => "MYSQLND_UH_MYSQLND_COM_STATISTICS",
  MYSQLND_UH_MYSQLND_COM_PROCESS_INFO => "MYSQLND_UH_MYSQLND_COM_PROCESS_INFO",
  MYSQLND_UH_MYSQLND_COM_CONNECT => "MYSQLND_UH_MYSQLND_COM_CONNECT",
  MYSQLND_UH_MYSQLND_COM_PROCESS_KILL => "MYSQLND_UH_MYSQLND_COM_PROCESS_KILL",
  MYSQLND_UH_MYSQLND_COM_DEBUG => "MYSQLND_UH_MYSQLND_COM_DEBUG",
  MYSQLND_UH_MYSQLND_COM_PING => "MYSQLND_UH_MYSQLND_COM_PING",
  MYSQLND_UH_MYSQLND_COM_TIME => "MYSQLND_UH_MYSQLND_COM_TIME",
  MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT => "MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT",
  MYSQLND_UH_MYSQLND_COM_CHANGE_USER => "MYSQLND_UH_MYSQLND_COM_CHANGE_USER",
  MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP => "MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP",
  MYSQLND_UH_MYSQLND_COM_TABLE_DUMP => "MYSQLND_UH_MYSQLND_COM_TABLE_DUMP",
  MYSQLND_UH_MYSQLND_COM_CONNECT_OUT => "MYSQLND_UH_MYSQLND_COM_CONNECT_OUT",
  MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED => "MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED",
  MYSQLND_UH_MYSQLND_COM_STMT_PREPARE => "MYSQLND_UH_MYSQLND_COM_STMT_PREPARE",
  MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE => "MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE",
  MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA => "MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA",
  MYSQLND_UH_MYSQLND_COM_STMT_CLOSE => "MYSQLND_UH_MYSQLND_COM_STMT_CLOSE",
  MYSQLND_UH_MYSQLND_COM_STMT_RESET => "MYSQLND_UH_MYSQLND_COM_STMT_RESET",
  MYSQLND_UH_MYSQLND_COM_SET_OPTION => "MYSQLND_UH_MYSQLND_COM_SET_OPTION",
  MYSQLND_UH_MYSQLND_COM_STMT_FETCH => "MYSQLND_UH_MYSQLND_COM_STMT_FETCH",
  MYSQLND_UH_MYSQLND_COM_DAEMON => "MYSQLND_UH_MYSQLND_COM_DAEMON",
  MYSQLND_UH_MYSQLND_COM_END => "MYSQLND_UH_MYSQLND_COM_END",
 );
 return (isset($mapping[$command])) ? $mapping[$command] : 'unknown';
}

function ok_packet_2_string($ok_packet) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_PROT_GREET_PACKET => "MYSQLND_UH_MYSQLND_PROT_GREET_PACKET",
  MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET => "MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET",
  MYSQLND_UH_MYSQLND_PROT_OK_PACKET => "MYSQLND_UH_MYSQLND_PROT_OK_PACKET",
  MYSQLND_UH_MYSQLND_PROT_EOF_PACKET => "MYSQLND_UH_MYSQLND_PROT_EOF_PACKET",
  MYSQLND_UH_MYSQLND_PROT_CMD_PACKET => "MYSQLND_UH_MYSQLND_PROT_CMD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_ROW_PACKET => "MYSQLND_UH_MYSQLND_PROT_ROW_PACKET",
  MYSQLND_UH_MYSQLND_PROT_STATS_PACKET => "MYSQLND_UH_MYSQLND_PROT_STATS_PACKET",
  MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET => "MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET",
  MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET => "MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET",
  MYSQLND_UH_MYSQLND_PROT_LAST => "MYSQLND_UH_MYSQLND_PROT_LAST",
 );
 return (isset($mapping[$ok_packet])) ? $mapping[$ok_packet] : 'unknown';
}

class proxy extends MysqlndUhConnection {
 public function simpleCommandHandleResponse($conn, $ok_packet, $silent, $command, $ignore_upsert_status) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Command '%s'\n", server_cmd_2_string($command));
  printf("OK packet '%s'\n",  ok_packet_2_string($ok_packet));
  $ret = parent::simpleCommandHandleResponse($conn, $ok_packet, $silent, $command, $ignore_upsert_status);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysql = mysql_connect("localhost", "root", "");
mysql_query("SELECT 1 FROM DUAL", $mysql);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::simpleCommandHandleResponse(array (
  0 => NULL,
  1 => 5,
  2 => false,
  3 => 27,
  4 => true,
))
Command 'MYSQLND_UH_MYSQLND_COM_SET_OPTION'
OK packet 'MYSQLND_UH_MYSQLND_PROT_EOF_PACKET'
proxy::simpleCommandHandleResponse returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Used for establishing secure connections using SSL

  • « MysqlndUhConnection::simpleCommandHandleResponse
  • MysqlndUhConnection::stmtInit »
  • PHP Manual
  • MysqlndUhConnection
  • Used for establishing secure connections using SSL

MysqlndUhConnection::sslSet

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::sslSet — Used for establishing secure connections using SSL

Beschreibung

public MysqlndUhConnection::sslSet ( mysqlnd_connection $connection , string $key , string $cert , string $ca , string $capath , string $cipher ) : bool

Used for establishing secure connections using SSL.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

key

The path name to the key file.

cert

The path name to the certificate file.

ca

The path name to the certificate authority file.

capath

The pathname to a directory that contains trusted SSL CA certificates in PEM format.

cipher

A list of allowable ciphers to use for SSL encryption.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::sslSet() example

<?php
class proxy extends MysqlndUhConnection {
 public function sslSet($conn, $key, $cert, $ca, $capath, $cipher) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::sslSet($conn, $key, $cert, $ca, $capath, $cipher);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->ssl_set("key", "cert", "ca", "capath", "cipher");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::sslSet(array (
  0 => NULL,
  1 => 'key',
  2 => 'cert',
  3 => 'ca',
  4 => 'capath',
  5 => 'cipher',
))
proxy::sslSet returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_ssl_set() - Used for establishing secure connections using SSL


Initializes a statement and returns a resource for use with mysqli_statement::prepare

  • « MysqlndUhConnection::sslSet
  • MysqlndUhConnection::storeResult »
  • PHP Manual
  • MysqlndUhConnection
  • Initializes a statement and returns a resource for use with mysqli_statement::prepare

MysqlndUhConnection::stmtInit

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::stmtInit — Initializes a statement and returns a resource for use with mysqli_statement::prepare

Beschreibung

public MysqlndUhConnection::stmtInit ( mysqlnd_connection $connection ) : resource

Initializes a statement and returns a resource for use with mysqli_statement::prepare.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Resource of type Mysqlnd Prepared Statement (internal only - you must not modify it!). The documentation may also refer to such resources using the alias name mysqlnd_prepared_statement.

Beispiele

Beispiel #1 MysqlndUhConnection::stmtInit() example

<?php
class proxy extends MysqlndUhConnection {
 public function stmtInit($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  var_dump($res);
  $ret = parent::stmtInit($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 1 AS _one FROM DUAL");
$stmt->execute();
$one = NULL;
$stmt->bind_result($one);
$stmt->fetch();
var_dump($one);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::stmtInit(array (
  0 => NULL,
))
resource(19) of type (Mysqlnd Connection)
proxy::stmtInit returns NULL
resource(246) of type (Mysqlnd Prepared Statement (internal only - you must not modify it!))
int(1)

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_stmt_init() - Initializes a statement and returns an object for use with mysqli_stmt_prepare


Transfers a result set from the last query

  • « MysqlndUhConnection::stmtInit
  • MysqlndUhConnection::txCommit »
  • PHP Manual
  • MysqlndUhConnection
  • Transfers a result set from the last query

MysqlndUhConnection::storeResult

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::storeResult — Transfers a result set from the last query

Beschreibung

public MysqlndUhConnection::storeResult ( mysqlnd_connection $connection ) : resource

Transfers a result set from the last query.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Resource of type Mysqlnd Resultset (internal only - you must not modify it!). The documentation may also refer to such resources using the alias name mysqlnd_resultset.

Beispiele

Beispiel #1 MysqlndUhConnection::storeResult() example

<?php
class proxy extends MysqlndUhConnection {
 public function storeResult($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::storeResult($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$res = $mysqli->query("SELECT 'Also called buffered result' AS _msg FROM DUAL");
var_dump($res->fetch_assoc());

$mysqli->real_query("SELECT 'Good morning!' AS _msg FROM DUAL");
$res = $mysqli->store_result();
var_dump($res->fetch_assoc());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::storeResult(array (
  0 => NULL,
))
proxy::storeResult returns NULL
resource(475) of type (Mysqlnd Resultset (internal only - you must not modify it!))
array(1) {
  ["_msg"]=>
  string(27) "Also called buffered result"
}
proxy::storeResult(array (
  0 => NULL,
))
proxy::storeResult returns NULL
resource(730) of type (Mysqlnd Resultset (internal only - you must not modify it!))
array(1) {
  ["_msg"]=>
  string(13) "Good morning!"
}

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_store_result() - Transfers a result set from the last query
  • mysqli_real_query() - Execute an SQL query


Commits the current transaction

  • « MysqlndUhConnection::storeResult
  • MysqlndUhConnection::txRollback »
  • PHP Manual
  • MysqlndUhConnection
  • Commits the current transaction

MysqlndUhConnection::txCommit

(PECL mysqlnd-uh >= 1.0.1-alpha)

MysqlndUhConnection::txCommit — Commits the current transaction

Beschreibung

public MysqlndUhConnection::txCommit ( mysqlnd_connection $connection ) : bool

Commits the current transaction.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::txCommit() example

<?php
class proxy extends MysqlndUhConnection {
 public function txCommit($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::txCommit($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->commit();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::txCommit(array (
  0 => NULL,
))
proxy::txCommit returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_commit() - Commits the current transaction


Rolls back current transaction

  • « MysqlndUhConnection::txCommit
  • MysqlndUhConnection::useResult »
  • PHP Manual
  • MysqlndUhConnection
  • Rolls back current transaction

MysqlndUhConnection::txRollback

(PECL mysqlnd-uh >= 1.0.1-alpha)

MysqlndUhConnection::txRollback — Rolls back current transaction

Beschreibung

public MysqlndUhConnection::txRollback ( mysqlnd_connection $connection ) : bool

Rolls back current transaction.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhConnection::txRollback() example

<?php
class proxy extends MysqlndUhConnection {
 public function txRollback($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::txRollback($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->rollback();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::txRollback(array (
  0 => NULL,
))
proxy::txRollback returns true

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_commit() - Commits the current transaction


Initiate a result set retrieval

  • « MysqlndUhConnection::txRollback
  • MysqlndUhPreparedStatement »
  • PHP Manual
  • MysqlndUhConnection
  • Initiate a result set retrieval

MysqlndUhConnection::useResult

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::useResult — Initiate a result set retrieval

Beschreibung

public MysqlndUhConnection::useResult ( mysqlnd_connection $connection ) : resource

Initiate a result set retrieval.

Parameter-Liste

connection

Mysqlnd connection handle. Do not modify!

Rückgabewerte

Resource of type Mysqlnd Resultset (internal only - you must not modify it!). The documentation may also refer to such resources using the alias name mysqlnd_resultset.

Beispiele

Beispiel #1 MysqlndUhConnection::useResult() example

<?php
class proxy extends MysqlndUhConnection {
 public function useResult($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::useResult($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->real_query("SELECT 'Good morning!' AS _msg FROM DUAL");
$res = $mysqli->use_result();
var_dump($res->fetch_assoc());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::useResult(array (
  0 => NULL,
))
proxy::useResult returns NULL
resource(425) of type (Mysqlnd Resultset (internal only - you must not modify it!))
array(1) {
  ["_msg"]=>
  string(13) "Good morning!"
}

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_use_result() - Initiate a result set retrieval
  • mysqli_real_query() - Execute an SQL query


The MysqlndUhPreparedStatement class

(PECL mysqlnd-uh >= 1.0.0-alpha)

Einführung

Klassenbeschreibung

MysqlndUhPreparedStatement {
/* Methoden */
public __construct ( )
public execute ( mysqlnd_prepared_statement $statement ) : bool
public prepare ( mysqlnd_prepared_statement $statement , string $query ) : bool
}

Inhaltsverzeichnis

  • MysqlndUhPreparedStatement::__construct — The __construct purpose
  • MysqlndUhPreparedStatement::execute — Executes a prepared Query
  • MysqlndUhPreparedStatement::prepare — Prepare an SQL statement for execution


The __construct purpose

  • « MysqlndUhPreparedStatement
  • MysqlndUhPreparedStatement::execute »
  • PHP Manual
  • MysqlndUhPreparedStatement
  • The __construct purpose

MysqlndUhPreparedStatement::__construct

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhPreparedStatement::__construct — The __construct purpose

Beschreibung

public MysqlndUhPreparedStatement::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Executes a prepared Query

  • « MysqlndUhPreparedStatement::__construct
  • MysqlndUhPreparedStatement::prepare »
  • PHP Manual
  • MysqlndUhPreparedStatement
  • Executes a prepared Query

MysqlndUhPreparedStatement::execute

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhPreparedStatement::execute — Executes a prepared Query

Beschreibung

public MysqlndUhPreparedStatement::execute ( mysqlnd_prepared_statement $statement ) : bool

Executes a prepared Query.

Parameter-Liste

statement

Mysqlnd prepared statement handle. Do not modify! Resource of type Mysqlnd Prepared Statement (internal only - you must not modify it!).

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhPreparedStatement::execute() example

<?php
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function execute($res) {
  printf("%s(", __METHOD__);
  var_dump($res);
  printf(")\n");
  $ret = parent::execute($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 'Labskaus' AS _msg FROM DUAL");
$stmt->execute();
$msg = NULL;
$stmt->bind_result($msg);
$stmt->fetch();
var_dump($msg);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

stmt_proxy::execute(resource(256) of type (Mysqlnd Prepared Statement (internal only - you must not modify it!))
)
stmt_proxy::execute returns true
bool(true)
string(8) "Labskaus"

Siehe auch

  • mysqlnd_uh_set_statement_proxy() - Installs a proxy for mysqlnd statements
  • mysqli_stmt_execute() - Executes a prepared Query


Prepare an SQL statement for execution

  • « MysqlndUhPreparedStatement::execute
  • Mysqlnd_uh Funktionen »
  • PHP Manual
  • MysqlndUhPreparedStatement
  • Prepare an SQL statement for execution

MysqlndUhPreparedStatement::prepare

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhPreparedStatement::prepare — Prepare an SQL statement for execution

Beschreibung

public MysqlndUhPreparedStatement::prepare ( mysqlnd_prepared_statement $statement , string $query ) : bool

Prepare an SQL statement for execution.

Parameter-Liste

statement

Mysqlnd prepared statement handle. Do not modify! Resource of type Mysqlnd Prepared Statement (internal only - you must not modify it!).

query

The query to be prepared.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 MysqlndUhPreparedStatement::prepare() example

<?php
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function prepare($res, $query) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $query = "SELECT 'No more you-know-what-I-mean for lunch, please' AS _msg FROM DUAL";
  $ret = parent::prepare($res, $query);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 'Labskaus' AS _msg FROM DUAL");
$stmt->execute();
$msg = NULL;
$stmt->bind_result($msg);
$stmt->fetch();
var_dump($msg);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

stmt_proxy::prepare(array (
  0 => NULL,
  1 => 'SELECT \'Labskaus\' AS _msg FROM DUAL',
))
stmt_proxy::prepare returns true
bool(true)
string(46) "No more you-know-what-I-mean for lunch, please"

Siehe auch

  • mysqlnd_uh_set_statement_proxy() - Installs a proxy for mysqlnd statements
  • mysqli_stmt_prepare() - Prepare an SQL statement for execution
  • mysqli_prepare() - Prepare an SQL statement for execution


Mysqlnd_uh Funktionen

Inhaltsverzeichnis

  • mysqlnd_uh_convert_to_mysqlnd — Converts a MySQL connection handle into a mysqlnd connection handle
  • mysqlnd_uh_set_connection_proxy — Installs a proxy for mysqlnd connections
  • mysqlnd_uh_set_statement_proxy — Installs a proxy for mysqlnd statements


Converts a MySQL connection handle into a mysqlnd connection handle

  • « Mysqlnd_uh Funktionen
  • mysqlnd_uh_set_connection_proxy »
  • PHP Manual
  • Mysqlnd_uh Funktionen
  • Converts a MySQL connection handle into a mysqlnd connection handle

mysqlnd_uh_convert_to_mysqlnd

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_convert_to_mysqlnd — Converts a MySQL connection handle into a mysqlnd connection handle

Beschreibung

mysqlnd_uh_convert_to_mysqlnd ( mysqli &$mysql_connection ) : resource

Converts a MySQL connection handle into a mysqlnd connection handle. After conversion you can execute mysqlnd library calls on the connection handle. This can be used to access mysqlnd functionality not made available through user space API calls.

The function can be disabled with mysqlnd_uh.enable. If mysqlnd_uh.enable is set to false the function will not install the proxy and always return true. Additionally, an error of the type E_WARNING may be emitted. The error message may read like PHP Warning: mysqlnd_uh_convert_to_mysqlnd(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. You are not allowed to call this function [...].

Parameter-Liste

MySQL connection handle

A MySQL connection handle of type mysql, mysqli or PDO_MySQL.

Rückgabewerte

A mysqlnd connection handle.

Changelog

Version | Beschreibung
5.4.0 | The mysql_connection parameter can now be of type mysql, PDO_MySQL, or mysqli. Before, only the mysqli type was allowed.

Beispiele

Beispiel #1 mysqlnd_uh_convert_to_mysqlnd() example

<?php
/* PDO user API gives no access to connection thread id */
$mysql_connection = new PDO("mysql:host=localhost;dbname=test", "root", "");

/* Convert PDO MySQL handle to mysqlnd handle */
$mysqlnd = mysqlnd_uh_convert_to_mysqlnd($mysql_connection);

/* Create Proxy to call mysqlnd connection class methods */
$obj = new MySQLndUHConnection();
/* Call mysqlnd_conn::get_thread_id */
var_dump($obj->getThreadId($mysqlnd));

/* Use SQL to fetch connection thread id */
var_dump($mysql_connection->query("SELECT CONNECTION_ID()")->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(27054)
array(1) {
  [0]=>
  array(2) {
    ["CONNECTION_ID()"]=>
    string(5) "27054"
    [0]=>
    string(5) "27054"
  }
}

Siehe auch

  • mysqlnd_uh.enable


Installs a proxy for mysqlnd connections

  • « mysqlnd_uh_convert_to_mysqlnd
  • mysqlnd_uh_set_statement_proxy »
  • PHP Manual
  • Mysqlnd_uh Funktionen
  • Installs a proxy for mysqlnd connections

mysqlnd_uh_set_connection_proxy

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_set_connection_proxy — Installs a proxy for mysqlnd connections

Beschreibung

mysqlnd_uh_set_connection_proxy ( MysqlndUhConnection &$connection_proxy , mysqli &$mysqli_connection = ? ) : bool

Installs a proxy object to hook mysqlnd's connection objects methods. Once installed, the proxy will be used for all MySQL connections opened with mysqli, mysql or PDO_MYSQL, assuming that the listed extensions are compiled to use the mysqlnd library.

The function can be disabled with mysqlnd_uh.enable. If mysqlnd_uh.enable is set to false the function will not install the proxy and always return true. Additionally, an error of the type E_WARNING may be emitted. The error message may read like PHP Warning: mysqlnd_uh_set_connection_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed [...].

Parameter-Liste

connection_proxy

A proxy object of type MysqlndUhConnection.

mysqli_connection

Object of type mysqli. If given, the proxy will be set for this particular connection only.

Rückgabewerte

Returns true on success. Otherwise, returns false

Beispiele

Beispiel #1 mysqlnd_uh_set_connection_proxy() example

<?php
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("SELECT 'No proxy installed, yet'");

class proxy extends MysqlndUhConnection {
 public function query($res, $query) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::query($res, $query);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli->query("SELECT 'mysqlnd rocks!'");

$mysql = mysql_connect("localhost", "root", "", "test");
mysql_query("SELECT 'Ahoy Andrey!'", $mysql);

$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
$pdo->query("SELECT 'Moin Johannes!'");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'mysqlnd rocks!\'',
))
proxy::query returns true
proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Ahoy Andrey!\'',
))
proxy::query returns true
proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Moin Johannes!\'',
))
proxy::query returns true

Siehe auch

  • mysqlnd_uh_set_statement_proxy() - Installs a proxy for mysqlnd statements
  • mysqlnd_uh.enable


Installs a proxy for mysqlnd statements

  • « mysqlnd_uh_set_connection_proxy
  • Change History »
  • PHP Manual
  • Mysqlnd_uh Funktionen
  • Installs a proxy for mysqlnd statements

mysqlnd_uh_set_statement_proxy

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_set_statement_proxy — Installs a proxy for mysqlnd statements

Beschreibung

mysqlnd_uh_set_statement_proxy ( MysqlndUhStatement &$statement_proxy ) : bool

Installs a proxy for mysqlnd statements. The proxy object will be used for all mysqlnd prepared statement objects, regardless which PHP MySQL extension (mysqli, mysql, PDO_MYSQL) has created them as long as the extension is compiled to use the mysqlnd library.

The function can be disabled with mysqlnd_uh.enable. If mysqlnd_uh.enable is set to false the function will not install the proxy and always return true. Additionally, an error of the type E_WARNING may be emitted. The error message may read like PHP Warning: mysqlnd_uh_set_statement_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed [...].

Parameter-Liste

statement_proxy

The mysqlnd statement proxy object of type MysqlndUhStatement

Rückgabewerte

Returns true on success. Otherwise, returns false

Siehe auch

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqlnd_uh.enable


Change History

Inhaltsverzeichnis

  • PECL/mysqlnd_uh 1.0 series

The Change History lists major changes users need to be aware if upgrading from one version to another. It is a high level summary of selected changes that may impact applications or might even break backwards compatibility. See also the CHANGES file contained in the source for additional changelog information. The commit history is also available.


PECL/mysqlnd_uh 1.0 series

1.0.1-alpha

  • Release date: TBD
  • Motto/theme: bug fix release

Feature changes

  • Support of PHP 5.4.0 or later.
  • BC break: MysqlndUhConnection::changeUser() requires additional passwd_len parameter.
  • BC break: MYSQLND_UH_VERSION_STR renamed to MYSQLND_UH_VERSION. MYSQLND_UH_VERSION renamed to MYSQLND_UH_VERSION_ID.
  • BC break: mysqlnd_uh.enabled configuration setting renamed to mysqlnd_uh.enable.

1.0.0-alpha

  • Release date: 08/2010
  • Motto/theme: Initial release


Mysqlnd connection multiplexing plugin

  • Einführung
  • Concepts
    • Architecture
    • Connection pool
    • Sharing connections
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
  • Vordefinierte Konstanten
  • Change History
    • PECL/mysqlnd_mux 1.0 series


Einführung

The mysqlnd multiplexing plugin (mysqlnd_mux) multiplexes MySQL connections established by all PHP MySQL extensions that use the MySQL native driver (mysqlnd) for PHP.

The MySQL native driver for PHP features an internal C API for plugins, such as the connection multiplexing plugin, which can extend the functionality of mysqlnd. See the mysqlnd for additional details about its benefits over the MySQL Client Library libmysqlclient.

Mysqlnd plugins like mysqlnd_mux operate, for the most part, transparently from a user perspective. The connection multiplexing plugin supports all PHP applications, and all MySQL PHP extensions. It does not change existing APIs. Therefore, it can easily be used with existing PHP applications.

Hinweis:

This is a proof-of-concept. All features are at an early stage. Not all kinds of queries are handled by the plugin yet. Thus, it cannot be used in a drop-in fashion at the moment.

Please, do not use this version in production environments.

Key Features

The key features of mysqlnd_mux are as follows:

  • Transparent and therefore easy to use:

    • Supports all of the PHP MySQL extensions.

    • Little to no application changes are required, dependent on the required usage scenario.

  • Reduces server load and connection establishment latency:

    • Opens less connections to the MySQL server.

    • Less connections to MySQL mean less work for the MySQL server. In a client-server environment scaling the server is often more difficult than scaling the client. Multiplexing helps with horizontal scale-out (scale-by-client).

    • Pooling saves connection time.

    • Multiplexed connection: multiple user handles share the same network connection. Once opened, a network connection is cached and shared among multiple user handles. There is a 1:n relationship between internal network connection and user connection handles.

    • Persistent connection: a network connection is kept open at the end of the web request, if the PHP deployment model allows. Thus, subsequently web requests can reuse a previously opened connection. Like other resources, network connections are bound to the scope of a process. Thus, they can be reused for all web requests served by a process.

Limitations

The proof-of-concept does not support unbuffered queries, prepared statements, and asynchronous queries.

The connection pool is using a combination of the transport method and hostname as keys. As a consequence, two connections to the same host using the same transport method (TCP/IP, Unix socket, Windows named pipe) will be linked to the same pooled connection even if username and password differ. Be aware of the possible security implications.

The proof-of-concept is transaction agnostic. It does not know about SQL transactions.

Hinweis:

Applications must be aware of the consequences of connection sharing connections.

About the name mysqlnd_mux

The shortcut mysqlnd_mux stands for mysqlnd connection multiplexing plugin.


Concepts

Inhaltsverzeichnis

  • Architecture
  • Connection pool
  • Sharing connections

This explains the architecture and related concepts for this plugin. Reading and understanding these concepts is required to successfully use this plugin.


Architecture

The mysqlnd connection multiplexing plugin is implemented as a PHP extension. It is written in C and operates under the hood of PHP. During the startup of the PHP interpreter, in the module initialization phase of the PHP engine, it gets registered as a mysqlnd plugin to replace specific mysqlnd C methods.

The mysqlnd library uses PHP streams to communicate with the MySQL server. PHP streams are accessed by the mysqlnd library through its net module. The mysqlnd connection multiplexing plugin proxies methods of the mysqlnd library net module to control opening and closing of network streams.

Upon opening a user connection to MySQL using the appropriate connection functions of either mysqli, PDO_MYSQL or ext/mysql, the plugin will search its connection pool for an open network connection. If the pool contains a network connection to the host specified by the connect function using the transport method requested (TCP/IP, Unix domain socket, Windows named pipe), the pooled connection is linked to the user handle. Otherwise, a new network connection is opened, put into the poolm and associated with the user connection handle. This way, multiple user handles can be linked to the same network connection.


Connection pool

The plugins connection pool is created when PHP initializes its modules (MINIT) and free'd when PHP shuts down the modules (MSHUTDOWN). This is the same as for persistent MySQL connections.

Depending on the deployment model, the pool is used for the duration of one or multiple web requests. Network connections are bound to the lifespan of an operating system level process. If the PHP process serves multiple web requests as it is the case for Fast-CGI or threaded web server deployments, then the pooled connections can be reused over multiple connections. Because multiplexing means sharing connections, it can even happen with a threaded deployment that two threads or two distinct web requests are linked to one pooled network connections.

A pooled connection is explicitly closed once the last reference to it is released. An implicit close happens when PHP shuts down its modules.


Sharing connections

The PHP mysqlnd connection multiplexing plugin changes the relationship between a users connection handle and the underlying MySQL connection. Without the plugin, every MySQL connection belongs to exactly one user connection at a time. The multiplexing plugin changes. A MySQL connection is shared among multiple user handles. There no one-to-one relation if using the plugin.

Sharing pooled connections has an impact on the connection state. State changing operations from multiple user handles pointing to one MySQL connection are not isolated from each other. If, for example, a session variable is set through one user connection handle, the session variable becomes visible to all other user handles that reference the same underlying MySQL connection.

This is similar in concept to connection state related phenomens described for the PHP mysqlnd replication and load balancing plugin. Please, check the PECL/mysqlnd_ms documentation for more details on the state of a connection.

The proof-of-concept takes no measures to isolate multiplexed connections from each other.


  • « Sharing connections
  • Anforderungen »
  • PHP Manual
  • mysqlnd_mux
  • Installation/Konfiguration

Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation
  • Laufzeit-Konfiguration


Anforderungen

PHP 5.5.0 or newer. Some advanced functionality requires PHP 5.5.0 or newer.

The mysqlnd_mux replication and load balancing plugin supports all PHP applications and all available PHP MySQL extensions (mysqli, mysql, PDO_MYSQL). The PHP MySQL extension must be configured to use mysqlnd in order to be able to use the mysqlnd_mux plugin for mysqlnd.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/mysqlnd_mux


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Mysqlnd_mux Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
mysqlnd_mux.enable | 0 | PHP_INI_SYSTEM |

Hier eine kurze Erklärung der Konfigurationsoptionen:

mysqlnd_mux.enable int

Enables or disables the plugin. If disabled, the extension will not plug into mysqlnd to proxy internal mysqlnd C API calls.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Other

The plugins version number can be obtained using MYSQLND_MUX_VERSION or MYSQLND_MUX_VERSION_ID. MYSQLND_MUX_VERSION is the string representation of the numerical version number MYSQLND_MUX_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_MUX_VERSION_ID | 10000

MYSQLND_MUX_VERSION (string)
Plugin version string, for example, 1.0.0-prototype.
MYSQLND_MUX_VERSION_ID (int)
Plugin version number, for example, 10000.


Change History

Inhaltsverzeichnis

  • PECL/mysqlnd_mux 1.0 series

This change history is a high level summary of selected changes that may impact applications and/or break backwards compatibility.

See also the CHANGES file in the source distribution for a complete list of changes.


PECL/mysqlnd_mux 1.0 series

1.0.0-pre-alpha

  • Release date: no package released, initial check-in 09/2012
  • Motto/theme: Proof of concept

Initial check-in. Essentially a demo of the mysqlnd plugin API.

Hinweis:

This is the current development series. All features are at an early stage. Changes may happen at any time without prior notice. Please, do not use this version in production environments.

The documentation may not reflect all changes yet.


Mysqlnd Memcache plugin

  • Einführung
  • Quickstart and Examples
    • Setup
    • Usage
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
  • Vordefinierte Konstanten
  • Mysqlnd_memcache Funktionen
    • mysqlnd_memcache_get_config — Returns information about the plugin configuration
    • mysqlnd_memcache_set — Associate a MySQL connection with a Memcache connection
  • Change History
    • PECL/mysqlnd_memcache 1.0 series


Einführung

The mysqlnd memcache plugin (mysqlnd_memcache) is an PHP extension for transparently translating SQL into requests for the MySQL InnoDB Memcached Daemon Plugin (server plugin). It includes experimental support for the MySQL Cluster Memcached Daemon. The server plugin provides access to data stored inside MySQL InnoDB (respectively MySQL Cluster NDB) tables using the Memcache protocol. This PHP extension, which supports all PHP MySQL extensions that use mysqlnd, will identify tables exported in this way and will translate specific SELECT queries into Memcache requests.

mysqlnd_memcache data flow

Hinweis:

This plugin depends on the MySQL InnoDB Memcached Daemon Plugin. It is not provided to be used with a stand-alone Memcached. For a generic query cache using Memcached look at the mysqlnd query cache plugin. For direct Memcache access look at the memcache and memcached extensions.

The MySQL native driver for PHP is a C library that ships together with PHP. It serves as a drop-in replacement for the MySQL Client Library (libmysqlclient). Using mysqlnd has several advantages: no extra downloads are required because it's bundled with PHP, it's under the PHP license, there is lower memory consumption in certain cases, and it contains new functionality such as asynchronous queries.

The mysqlnd_mmemcache operates, for the most part, transparently from a user perspective. The mysqlnd memcache plugin supports all PHP applications, and all MySQL PHP extensions. It does not change existing APIs. Therefore, it can easily be used with existing PHP applications.

The MySQL Memcache plugins add key-value style access method for data stored in InnoDB resp. NDB (MySQL Cluster) SQL tables through the Memcache protocol. This type of key-value access if often faster than using SQL.

Key Features

The key features of PECL/mysqlnd_memcache are as follows.

  • Possible performance benefits

    • Client-side: light-weight protocol.

    • Server-side: no SQL parsing, direct access to the storage.

    • Please, run your own benchmarks! Actual performance results are highly dependent on setup and hardware used.

Limitations

The initial version is not binary safe. Due to the way the MySQL Memcache plugins works there are restrictions related to separators.

Prepared statements and asynchronous queries are not supported. Result set meta data support is limited.

The mapping information for tables accessible via Memcache is not cached in the plugin between requests but fetched from the MySQL server each time a MySQL connection is associated with a Memcache connection. See mysqlnd_memcache_set() for details.

On the name

The shortcut mysqlnd_memcache stands for mysqlnd memcache plugin. Memcache refers to support of the MySQL Memcache plugins for InnoDB and NDB (MySQL Cluster). The plugin is not related to the Memcached cache server.


Quickstart and Examples

Inhaltsverzeichnis

  • Setup
  • Usage

The mysqlnd memcache plugin is easy to use. This quickstart will demo typical use-cases, and provide practical advice on getting started.

It is strongly recommended to read the reference sections in addition to the quickstart. The quickstart tries to avoid discussing theoretical concepts and limitations. Instead, it will link to the reference sections. It is safe to begin with the quickstart. However, before using the plugin in mission critical environments we urge you to read additionally the background information from the reference sections.


Setup

The plugin is implemented as a PHP extension. See also the installation instructions to install this extension.

Compile or configure the PHP MySQL extension (API) (mysqli, PDO_MYSQL, mysql). That extension must use the mysqlnd library as because mysqlnd_memcache is a plugin for the mysqlnd library. For additional information, refer to the mysqlnd_memcache installation instructions.

Then, load this extension into PHP and activate the plugin in the PHP configuration file using the PHP configuration directive named mysqlnd_memcache.enable.

Beispiel #1 Enabling the plugin (php.ini)

; On Windows the filename is php_mysqnd_memcache.dll
; Load the extension
extension=mysqlnd_memcache.so
; Enable it
mysqlnd_memcache.enable=1

Follow the instructions given in the » MySQL Reference Manual on installing the Memcache plugins for the MySQL server. Activate the plugins and configure Memcache access for SQL tables.

The examples in this quickguide assume that the following table exists, and that Memcache is configured with access to it.

Beispiel #2 SQL table used for the Quickstart

CREATE TABLE test(
  id CHAR(16),
  f1 VARCHAR(255),
  f2 VARCHAR(255),
  f3 VARCHAR(255),
  flags INT NOT NULL,
  cas_column INT,
  expire_time_column INT,
  PRIMARY KEY(id)
  ) ENGINE=InnoDB;

INSERT INTO test (id, f1, f2, f3) VALUES (1, 'Hello', 'World', '!');
INSERT INTO test (id, f1, f2, f3) VALUES (2, 'Lady', 'and', 'the tramp');

INSERT INTO innodb_memcache.containers(
  name, db_schema, db_table, key_columns, value_columns,
  flags, cas_column, expire_time_column, unique_idx_name_on_key)
VALUES (
  'plugin_test', 'test', 'test', 'id', 'f1,f2,f3',
  'flags', 'cas_column', 'expire_time_column', 'PRIMARY KEY');


Usage

After associating a MySQL connection with a Memcache connection using mysqnd_memcache_set() the plugin attempts to transparently replace SQL SELECT statements by a memcache access. For that purpose the plugin monitors all SQL statements executed and tries to match the statement string against MYSQLND_MEMCACHE_DEFAULT_REGEXP. In case of a match, the mysqlnd memcache plugin checks whether the SELECT is accessing only columns of a mapped table and the WHERE clause is limited to a single key lookup.

In case of the example SQL table, the plugin will use the Memcache interface of the MySQL server to fetch results for a SQL query like SELECT f1, f2, f3 WHERE id = n.

Beispiel #1 Basic example.

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc);

/*
   This is a query which queries table test using id as key in the WHERE part
   and is accessing fields f1, f2 and f3. Therefore, mysqlnd_memcache
   will intercept it and route it via memcache.
*/
$result = $mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");
while ($row = $result->fetch_row()) {
    print_r($row);
}

/*
   This is a query which queries table test but using f1 in the WHERE clause.
   Therefore, mysqlnd_memcache can't intercept it. This will be executed
   using the MySQL protocol
*/
$mysqli->query("SELECT id FROM test WHERE f1 = 'Lady'");
while ($row = $result->fetch_row()) {
    print_r($row);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(
    [f1] => Hello
    [f2] => World
    [f3] => !
)
array(
    [id] => 2
)


Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation
  • Laufzeit-Konfiguration


Anforderungen

PHP: this extension requires PHP 5.4+, version PHP 5.4.4 or never. The required PHP extensions are PCRE (enabled by default), and the memcached extension version 2.0.x.

The mysqlnd_memcache Memcache plugin supports all PHP applications and all available PHP MySQL extensions (mysqli, mysql, PDO_MYSQL). The PHP MySQL extension must be configured with mysqlnd support.

For accessing InnoDB tables, this PHP extension requires MySQL Server 5.6.6 or newer with the InnoDB Memcache Daemon Plugin enabled.

For accessing MySQL Cluster NDB tables, this PHP extension requires MySQL Cluster 7.2 or newer with the NDB Memcache API nodes enabled.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/mysqlnd_memcache

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Mysqlnd_memcache Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
mysqlnd_memcache.enable | 1 | PHP_INI_SYSTEM | Available since 1.0.0

Hier eine kurze Erklärung der Konfigurationsoptionen:

mysqlnd_memcache.enable int

Enables or disables the plugin. If disabled, the extension will not plug into mysqlnd to proxy internal mysqlnd C API calls.

Hinweis:

This option is mainly used by developers to build this extension statically into PHP. General users are encouraged to build this extension as a shared object, and to unload it completely when it is not needed.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

MySQL Memcache Plugin related

MYSQLND_MEMCACHE_DEFAULT_REGEXP (string)
Default regular expression (PCRE style) used for matching SELECT statements that will be mapped into a MySQL Memcache Plugin access point, if possible. It is also possible to use mysqlnd_memcache_set(), but the default approach is using this regular expression for pattern matching.

Assorted

The version number of this plugin can be obtained by using MYSQLND_MEMCACHE_VERSION or MYSQLND_MEMCACHE_VERSION_ID. MYSQLND_MEMCACHE_VERSION is the string representation of the numerical version number MYSQLND_MEMCACHE_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_MEMCACHE_VERSION_ID | 10000

MYSQLND_MEMCACHE_VERSION (string)
Plugin version string, for example, 1.0.0-alpha.
MYSQLND_MEMCACHE_VERSION_ID (int)
Plugin version number, for example, 10000.


Mysqlnd_memcache Funktionen

Inhaltsverzeichnis

  • mysqlnd_memcache_get_config — Returns information about the plugin configuration
  • mysqlnd_memcache_set — Associate a MySQL connection with a Memcache connection


Returns information about the plugin configuration

  • « Mysqlnd_memcache Funktionen
  • mysqlnd_memcache_set »
  • PHP Manual
  • Mysqlnd_memcache Funktionen
  • Returns information about the plugin configuration

mysqlnd_memcache_get_config

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_get_config — Returns information about the plugin configuration

Beschreibung

mysqlnd_memcache_get_config ( mixed $connection ) : array

This function returns an array of all mysqlnd_memcache related configuration information that is attached to the MySQL connection. This includes MySQL, the Memcache object provided via mysqlnd_memcache_set(), and the table mapping configuration that was automatically collected from the MySQL Server.

Parameter-Liste

connection

A handle to a MySQL Server using one of the MySQL API extensions for PHP, which are PDO_MYSQL, mysqli or ext/mysql.

Rückgabewerte

An array of mysqlnd_memcache configuration information on success, otherwise false.

The returned array has these elements:

mysqlnd_memcache_get_config() array structure
Array Key | Description
memcached | Instance of Memcached associated to this MySQL connection by mysqlnd_memcache_set(). You can use this to change settings of the memcache connection, or directly by querying the server on this connection.
pattern | The PCRE regular expression used to match the SQL query sent to the server. Queries matching this pattern will be further analyzed to decide whether the query can be intercepted and sent via the memcache interface or whether the query is sent using the general MySQL protocol to the server. The pattern is either the default pattern (MYSQLND_MEMCACHE_DEFAULT_REGEXP) or it is set via mysqlnd_memcache_set().
mappings | An associative array with a list of all configured containers as they were discovered by this plugin. The key for these elements is the name of the container in the MySQL configuration. The value is described below. The contents of this field is created by querying the MySQL Server during association to MySQL and a memcache connection using mysqlnd_memcache_set().
mapping_query | An SQL query used during mysqlnd_memcache_set() to identify the available containers and mappings. The result of that query is provided in the mappings element.
Mapping entry structure
Array Key | Description
prefix | A prefix used while accessing data via memcache. With the MySQL InnoDB Memcache Deamon plugin, this usually begins with @@ and ends with a configurable separator. This prefix is placed in front of the key value while using the memcache protocol.
schema_name | Name of the schema (database) which contains the table being accessed.
table_name | Name of the table which contains the data accessible via memcache protocol.
id_field_name | Name of the database field (column) with the id used as key when accessing the table via memcache. Often this is the database field having a primary key.
separator The separator used to split the different field values. This is needed as memcache only provides access to a single value while MySQL can map multiple columns to this value.

Hinweis:

The separator, which can be set in the MySQL Server configuration, should not be part of any value retrieved via memcache because proper mapping can't be guaranteed.

fields | An array with the name of all fields available for this mapping.

Beispiele

Beispiel #1 mysqlnd_memcache_get_config() example

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc);

var_dump(mysqlnd_memcache_get_config($mysqli));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  ["memcached"]=>
  object(Memcached)#2 (0) {
  }
  ["pattern"]=>
  string(125) "/^\s*SELECT\s*(.+?)\s*FROM\s*`?([a-z0-9_]+)`?\s*WHERE\s*`?([a-z0-9_]+)`?\s*=\s*(?(?=["'])["']([^"']*)["']|([0-9e\.]*))\s*$/is"
  ["mappings"]=>
  array(1) {
    ["mymem_test"]=>
    array(6) {
      ["prefix"]=>
      string(13) "@@mymem_test."
      ["schema_name"]=>
      string(4) "test"
      ["table_name"]=>
      string(10) "mymem_test"
      ["id_field_name"]=>
      string(2) "id"
      ["separator"]=>
      string(1) "|"
      ["fields"]=>
      array(3) {
        [0]=>
        string(2) "f1"
        [1]=>
        string(2) "f2"
        [2]=>
        string(2) "f3"
      }
    }
  }
  ["mapping_query"]=>
  string(209) "    SELECT c.name,
                          CONCAT('@@', c.name, (SELECT value FROM innodb_memcache.config_options WHERE name = 'table_map_delimiter')) AS key_prefix,
                          c.db_schema,
                          c.db_table,
                          c.key_columns,
                          c.value_columns,
                          (SELECT value FROM innodb_memcache.config_options WHERE name = 'separator') AS sep
                     FROM innodb_memcache.containers c"
}

Siehe auch

  • mysqlnd_memcache_set() - Associate a MySQL connection with a Memcache connection


Associate a MySQL connection with a Memcache connection

  • « mysqlnd_memcache_get_config
  • Change History »
  • PHP Manual
  • Mysqlnd_memcache Funktionen
  • Associate a MySQL connection with a Memcache connection

mysqlnd_memcache_set

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_set — Associate a MySQL connection with a Memcache connection

Beschreibung

mysqlnd_memcache_set ( mixed $mysql_connection , Memcached $memcache_connection = ? , string $pattern = ? , callable $callback = ? ) : bool

Associate mysql_connection with memcache_connection using pattern as a PCRE regular expression, and callback as a notification callback or to unset the association of mysql_connection.

While associating a MySQL connection with a Memcache connection, this function will query the MySQL Server for its configuration. It will automatically detect whether the server is configured to use the InnoDB Memcache Daemon Plugin or MySQL Cluster NDB Memcache support. It will also query the server to automatically identify exported tables and other configuration options. The results of this automatic configuration can be retrieved using mysqlnd_memcache_get_config().

Parameter-Liste

mysql_connection

A handle to a MySQL Server using one of the MySQL API extensions for PHP, which are PDO_MYSQL, mysqli or ext/mysql.

memcache_connection

A Memcached instance with a connection to the MySQL Memcache Daemon plugin. If this parameter is omitted, then mysql_connection will be unassociated from any memcache connection. And if a previous association exists, then it will be replaced.

pattern

A regular expression in Perl Compatible Regular Expression syntax used to identify potential Memcache-queries. The query should have three sub patterns. The first subpattern contains the requested field list, the second the name of the ID column from the query and the third the requested value. If this parameter is omitted or os set to null, then a default pattern will be used.

callback

A callback which will be used whenever a query is being sent to MySQL. The callback will receive a single Boolean parameter telling if a query was sent via Memcache.

Rückgabewerte

true if the association or disassociation is successful, otherwise false if there is an error.

Beispiele

Beispiel #1 mysqlnd_memcache_set() example with var_dump() as a simple debugging callback.

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc, NULL, 'var_dump');

/* This query will be intercepted and executed via Memcache protocol */
echo "Sending query for id via Memcache: ";
$mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");

/* f1 is not configured as valid key field, this won't be sent via Memcache */
echo "Sending query for f1 via Memcache: ";
$mysqli->query("SELECT id FROM test WHERE f1 = 1");

mysqlnd_memcache_set($mysqli);

/* Now the regular MySQL protocol will be used */
echo "var_dump won't be invoked: ";
$mysqli->query("SELECT f1, f2, f3 WHERE id = 1");

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Sending query for id via Memcache: bool(true)
Sending query for f1 via Memcache: bool(false)
var_dump won't be invoked:

Siehe auch

  • mysqlnd_memcache_get_config() - Returns information about the plugin configuration


Change History

Inhaltsverzeichnis

  • PECL/mysqlnd_memcache 1.0 series

This change history is a high level summary of selected changes that may impact applications and/or break backwards compatibility.

See also the CHANGES file in the source distribution for a complete list of changes.


PECL/mysqlnd_memcache 1.0 series

1.0.0-alpha

  • Release date: TBD
  • Motto/theme: Basic mapping of SQL SELECT to a MySQL Memcache plugin access.

The initial release does map basic SQL SELECT statements to a MySQL Memcache plugin access. This bares potential performance benefits as the direct key-value access to MySQL storage using the Memcache protocol is usually faster than using SQL access.


Oracle OCI8

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Testing
    • Laufzeit-Konfiguration
  • Vordefinierte Konstanten
  • Beispiele
  • OCI8 Connection Handling and Connection Pooling
  • OCI8 Fast Application Notification (FAN) Support
  • OCI8 Transparent Application Failover (TAF) Support
  • OCI8 and DTrace Dynamic Tracing
  • Supported Datatypes
  • OCI8 Funktionen
    • oci_bind_array_by_name — Bindet ein PHP-Array an einen Oracle-PL/SQL-Arrayparameter
    • oci_bind_by_name — Binds a PHP variable to an Oracle placeholder
    • oci_cancel — Bricht das Lesen eines Zeigers ab
    • oci_client_version — Returns the Oracle client library version
    • oci_close — Schließt eine Oracle-Verbindung
    • oci_commit — Commits the outstanding database transaction
    • oci_connect — Connect to an Oracle database
    • oci_define_by_name — Associates a PHP variable with a column for query fetches
    • oci_error — Liefert den letzten Fehler
    • oci_execute — Executes a statement
    • oci_fetch_all — Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab
    • oci_fetch_array — Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array
    • oci_fetch_assoc — Liefert die nächste Zeile einer Abfrage als assoziatives Array
    • oci_fetch_object — Liefert die nächste Zeile einer Abfrage als Objekt
    • oci_fetch_row — Liefert die nächste Zeile einer Abfrage als numerisches Array
    • oci_fetch — Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab
    • oci_field_is_null — Checks if a field in the currently fetched row is null
    • oci_field_name — Returns the name of a field from the statement
    • oci_field_precision — Tell the precision of a field
    • oci_field_scale — Tell the scale of the field
    • oci_field_size — Returns field's size
    • oci_field_type_raw — Tell the raw Oracle data type of the field
    • oci_field_type — Returns a field's data type name
    • oci_free_descriptor — Frees a descriptor
    • oci_free_statement — Gibt alle verknüpften Ressourcen eines Statements oder Zeigers frei.
    • oci_get_implicit_resultset — Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets
    • oci_lob_copy — Copies large object
    • oci_lob_is_equal — Compares two LOB/FILE locators for equality
    • oci_new_collection — Allocates new collection object
    • oci_new_connect — Connect to the Oracle server using a unique connection
    • oci_new_cursor — Allocates and returns a new cursor (statement handle)
    • oci_new_descriptor — Initializes a new empty LOB or FILE descriptor
    • oci_num_fields — Returns the number of result columns in a statement
    • oci_num_rows — Returns number of rows affected during statement execution
    • oci_parse — Prepares an Oracle statement for execution
    • oci_password_change — Changes password of Oracle's user
    • oci_pconnect — Connect to an Oracle database using a persistent connection
    • oci_register_taf_callback — Register a user-defined callback function for Oracle Database TAF
    • oci_result — Returns field's value from the fetched row
    • oci_rollback — Rolls back the outstanding database transaction
    • oci_server_version — Returns the Oracle Database version
    • oci_set_action — Sets the action name
    • oci_set_call_timeout — Sets a millisecond timeout for database calls
    • oci_set_client_identifier — Sets the client identifier
    • oci_set_client_info — Sets the client information
    • oci_set_db_operation — Sets the database operation
    • oci_set_edition — Sets the database edition
    • oci_set_module_name — Sets the module name
    • oci_set_prefetch — Sets number of rows to be prefetched by queries
    • oci_statement_type — Returns the type of a statement
    • oci_unregister_taf_callback — Unregister a user-defined callback function for Oracle Database TAF
  • OCICollection — The OCICollection class
    • OCICollection::append — Hängt ein Element an eine Sammlung
    • OCICollection::assign — Weist einer Sammlung einen Wert aus einer anderen Sammlung zu
    • OCICollection::assignElem — Weist einem Element einer Sammlung einen Wert zu
    • OCICollection::free — Gibt die mit einem Sammelobjekt verknüpften Ressourcen frei
    • OCICollection::getElem — Liefert den Wert eines Elements
    • OCICollection::max — Liefert die maximale Anzahl der Elemente in einer Sammlung
    • OCICollection::size — Liefert die Größe der Sammlung
    • OCICollection::trim — Entfernt Elemente vom Ende einer Sammlung
  • OCILob — The OCILob class
    • OCILob::append — Appends data from the large object to another large object
    • OCILob::close — Closes LOB descriptor
    • OCILob::eof — Tests for end-of-file on a large object's descriptor
    • OCILob::erase — Erases a specified portion of the internal LOB data
    • OCILob::export — Exports LOB's contents to a file
    • OCILob::flush — Flushes/writes buffer of the LOB to the server
    • OCILob::free — Frees resources associated with the LOB descriptor
    • OCILob::getBuffering — Returns current state of buffering for the large object
    • OCILob::import — Imports file data to the LOB
    • OCILob::load — Returns large object's contents
    • OCILob::read — Reads part of the large object
    • OCILob::rewind — Moves the internal pointer to the beginning of the large object
    • OCILob::save — Saves data to the large object
    • OCILob::saveFile — Alias von OCILob::import
    • OCILob::seek — Sets the internal pointer of the large object
    • OCILob::setBuffering — Changes current state of buffering for the large object
    • OCILob::size — Returns size of large object
    • OCILob::tell — Returns the current position of internal pointer of large object
    • OCILob::truncate — Truncates large object
    • OCILob::write — Writes data to the large object
    • OCILob::writeTemporary — Writes a temporary large object
    • OCILob::writeToFile — Alias von OCILob::export
  • OCI8 - Veraltete Aliase und Funktionen
    • oci_internal_debug — Enables or disables internal debug output
    • ocibindbyname — Alias von oci_bind_by_name
    • ocicancel — Alias von oci_cancel
    • ocicloselob — Alias von OCI-Lob::close
    • ocicollappend — Alias von OCICollection::append
    • ocicollassign — Alias von OCICollection::assign
    • ocicollassignelem — Alias von OCICollection::assignElem
    • ocicollgetelem — Alias von OCICollection::getElem
    • ocicollmax — Alias von OCICollection::max
    • ocicollsize — Alias von OCICollection::size
    • ocicolltrim — Alias von OCICollection::trim
    • ocicolumnisnull — Alias von oci_field_is_null
    • ocicolumnname — Alias von oci_field_name
    • ocicolumnprecision — Alias von oci_field_precision
    • ocicolumnscale — Alias von oci_field_scale
    • ocicolumnsize — Alias von oci_field_size
    • ocicolumntype — Alias von oci_field_type
    • ocicolumntyperaw — Alias von oci_field_type_raw
    • ocicommit — Alias von oci_commit
    • ocidefinebyname — Alias von oci_define_by_name
    • ocierror — Alias von oci_error
    • ociexecute — Alias von oci_execute
    • ocifetch — Alias von oci_fetch
    • ocifetchinto — Veraltete Variante von oci_fetch_array, oci_fetch_object, oci_fetch_assoc und oci_fetch_row
    • ocifetchstatement — Alias von oci_fetch_all
    • ocifreecollection — Alias von OCICollection::free
    • ocifreecursor — Alias von oci_free_statement
    • ocifreedesc — Alias von OCI-Lob::free
    • ocifreestatement — Alias von oci_free_statement
    • ociinternaldebug — Alias von oci_internal_debug
    • ociloadlob — Alias von OCI-Lob::load
    • ocilogoff — Alias von oci_close
    • ocilogon — Alias von oci_connect
    • ocinewcollection — Alias von oci_new_collection
    • ocinewcursor — Alias von oci_new_cursor
    • ocinewdescriptor — Alias von oci_new_descriptor
    • ocinlogon — Alias von oci_new_connect
    • ocinumcols — Alias von oci_num_fields
    • ociparse — Alias von oci_parse
    • ociplogon — Alias von oci_pconnect
    • ociresult — Alias von oci_result
    • ocirollback — Alias von oci_rollback
    • ocirowcount — Alias von oci_num_rows
    • ocisavelob — Alias von OCI-Lob::save
    • ocisavelobfile — Alias von OCI-Lob::import
    • ociserverversion — Alias von oci_server_version
    • ocisetprefetch — Alias von oci_set_prefetch
    • ocistatementtype — Alias von oci_statement_type
    • ociwritelobtofile — Alias von OCI-Lob::export
    • ociwritetemporarylob — Alias von OCI-Lob::writeTemporary


Einführung

Diese Funktionen ermöglichen den Zugriff auf Oracle-Datenbanken. Sie unterstützen SQL- und PL/SQL-Anweisungen. Zu den grundlegenden Funktionen gehören die Transaktionskontrolle, die Bindung von PHP-Variablen an Oracle-Platzhalter und die Unterstützung für Large Object Typen (LOB) und Sammlungen. Die Skalierbarkeitsfunktionen von Oracle wie Database Resident Connection Pooling (DRCP) und Ergebnis-Caching werden ebenfalls unterstützt.


Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation
  • Testing
  • Laufzeit-Konfiguration


Anforderungen

OCI8 3.0 is included with PHP 8. It is also available from » PECL. For PHP 7, use OCI8 2.2 from » PECL. OCI8 requires Oracle 10g or later Oracle client libraries.

If the Oracle Database is on the same machine as PHP, the database software already contains the necessary libraries and header files. When PHP is on a different machine, use the free » Oracle Instant Client libraries.

To use Oracle Instant Client, install the Basic or Basic Light Oracle Instant Client ZIP file, RPM package, or DMG package. When building OCI8 from source code, also install the Instant Client SDK.

You must run PHP with the same, or a more recent, version of the Oracle libraries that OCI8 was built with.

Hinweis:

Oracle's standard client-server network interoperability allows connections between different versions of Oracle Client and Oracle Database. For certified configurations see Oracle Support's Doc ID 207303.1. In summary, Oracle Client 19, 18 and 12.2 can connect to Oracle Database 11.2 or greater. Oracle Client 12.1 can connect to Oracle Database 10.2 or greater. Oracle Client 11.2 can connect to Oracle Database 9.2 or greater.

Hinweis:

Full OCI8 feature support is only available when using the most recent versions of the Oracle client libraries and database.


Installation

Configuring PHP with OCI8

Review the previous Requirements section before configuring OCI8.

Before starting the web server, OCI8 typically requires several Oracle environment variables (see below) to locate libraries, point to configuration files, and set some basic properties such as the character set used by Oracle libraries. The variables must be set before any PHP process starts.

The PHP binary must link with the same, or more recent, major version of Oracle libraries as it was configured with. For example, if you build OCI8 with Oracle 19 libraries, then PHP should also be deployed and run with Oracle 19 libraries. PHP applications can connect to other versions of Oracle Database, since Oracle has client-server cross-version compatibility.

Installing OCI8 from PECL Using the pecl Command

The OCI8 extension can be added to an existing PHP installation by using the » PECL repository.

  • If you are behind a firewall, set PEAR's proxy, for example:

    pear config-set http_proxy http://my-proxy.example.com:80/

  • Run

    pecl install oci8

    For PHP 7, use pecl install oci8-2.2.0

  • When prompted, enter either the value of $ORACLE_HOME, or instantclient,/path/to/instant/client/lib.

    Note: Do not enter variable names like $ORACLE_HOME or $HOME because pecl will not expand them. Instead, enter an expanded path, for example /opt/oracle/product/19c/dbhome_1 or instantclient,/Users/myname/Downloads/instantclient_19_8

  • If you get an error oci8_dtrace_gen.h: No such file or directory, it means PHP was built with DTrace Dynamic Tracing enabled. Install using:

    $ export PHP_DTRACE=yes
$ pecl install oci8

  • Edit your php.ini file and add the line:

    extension=oci8.so

    Make sure the php.ini directive extension_dir is set to the directory that oci8.so was installed in.

Installing OCI8 from PECL Using phpize

To install OCI8 on an existing PHP installation when the pecl command is not available, manually download the » PECL OCI8 package, e.g. oci8-3.0.0.tgz.

  • Extract the package:

    tar -zxf oci8-3.0.0.tgz
cd oci8-3.0.0

  • Prepare the package:

    phpize

  • Configure the package, either using $ORACLE_HOME or Instant Client

    ./configure -with-oci8=shared,$ORACLE_HOME

    or

    ./configure -with-oci8=shared,instantclient,/path/to/instant/client/lib

  • Install the package:

    make install

  • If you get an error oci8_dtrace_gen.h: No such file or directory, it means PHP was built with DTrace Dynamic Tracing enabled. Re-run the configure and make commands after setting this environment variable:

    $ export PHP_DTRACE=yes

  • Edit your php.ini file and add the line:

    extension=oci8.so

    Make sure the php.ini directive extension_dir is set to the directory that oci8.so was installed in.

Installing OCI8 as a Shared Extension when Building PHP

If you are building PHP from source code, the configuration shared option can be used to build OCI8 as a shared library that can be dynamically loaded into PHP. Building a shared extension allows OCI8 to be upgraded easily without impacting the rest of PHP.

Configure OCI8 using one of the following configure options.

  • If using the free » Oracle Instant Client libraries, then do:

    ./configure --with-oci8=shared,instantclient,/path/to/instant/client/lib

    If Instant Client 12.2 (or earlier) is installed from ZIP files, make sure to create the library symbolic link first, for example ln -s libclntsh.so.12.1 libclntsh.so.

    If using an RPM-based installation of Oracle Instant Client, the configure line will look like this:

    ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/<version>/client/lib

    For example, --with-oci8=shared,instantclient,/usr/lib/oracle/19.9/client/lib

    Note that Oracle Instant Client support first appeared in PHP 4.3.11 and 5.0.4 and originally used the option --with-oci8-instant-client to configure PHP.

  • If using an Oracle database or full Oracle Client installation then do:

    ./configure --with-oci8=shared,$ORACLE_HOME

    Make sure the web server user (nobody, www) has access to the libraries, initialization files and tnsnames.ora (if used) under the $ORACLE_HOME directory. With Oracle 10gR2, you may need to run the $ORACLE_HOME/install/changePerm.sh utility to give directory access.

After configuration, follow the usual PHP building procedure, e.g. make install. The OCI8 shared extension oci8.so library will be created. It may need to be manually moved to the PHP extension directory, specified by the extension_dir option in your php.ini file.

To complete installation of OCI8, edit php.ini and add the line:

extension=oci8.so

Installing OCI8 as a Statically Compiled Extension when Building PHP

If you are building PHP from source code, you can configure PHP to include OCI8 as a static extension using one of the following configure options.

  • If using Oracle Instant Client, then do:

    ./configure --with-oci8=instantclient,/path/to/instant/client/lib

  • If using an Oracle database or full Oracle Client installation then do:

    ./configure --with-oci8=$ORACLE_HOME

After configuration, follow the usual PHP building procedure, e.g. make install. After successful compilation, you do not need to add oci8.so to php.ini. No additional build steps are required.

Installing OCI8 on Windows

The OCI8 extension can be added to an existing PHP installation by using the DLLs from » PECL repository or the libraries in your PHP installation's ext directory.

With Oracle 12c (or later) libraries, uncomment one of the php.ini lines extension=php_oci8_12c.dll or extension=php_oci8_11g.dll or extension=php_oci8.dll. Only one of these DLLs may be enabled at a time. DLLs with higher versions may contain more functionality. Not all DLLs may be available for all versions of PHP. Make sure extension_dir is set to the directory containing the PHP extension DLLs.

If using Instant Client, set the system PATH environment variable to the Oracle library directory.

Setting the Oracle Environment

Before using this extension, make sure that the Oracle environment variables are properly set for the web daemon user. If your web server is automatically started at boot time then make sure that the boot-time environment is also configured correctly.

Hinweis:

Do not set Oracle environment variables using putenv() in a PHP script because Oracle libraries may be loaded and initialized before your script runs. Variables set with putenv() may then cause conflicts, crashes, or unpredictable behavior. Some functions may work but others might give subtle errors. The variables should be set up before the web server is started.

On Red Hat Linux and variants, export variables at the end of /etc/sysconfig/httpd. Other systems with Apache 2 may use an envvars script in the Apache bin directory. A third option, the Apache SetEnv directive in httpd.conf, may work in some systems but is known to be insufficient in others.

To check that environment variables are set correctly, use phpinfo() and check the Environment (not the Apache Environment) section contains the expected variables.

The variables that might be needed are included in the following table. Refer to the Oracle documentation for more information on all the available variables.

Common Oracle Environment Variables
Name | Purpose
ORACLE_HOME | Contains the directory of the full Oracle Database software. Do not set this when using Oracle Instant Client as it is unnecessary and may cause installation problems.
ORACLE_SID | Contains the name of the database on the local machine to be connected to. There is no need to set this if you using Oracle Instant Client, or always pass the connection parameter to oci_connect().
LD_LIBRARY_PATH | Set this (or its platform equivalent, such as LIBPATH, or SHLIB_PATH) to the location of the Oracle libraries, for example $ORACLE_HOME/lib or /usr/lib/oracle/18.5/client/lib. Note with Instant Client ZIP files on Linux it is more reliable to use ldconfig instead, see the Instant Client installation instructions. With Instant Client 19 (or later) RPM files, ldconfig is automatically run for you. Some users use LD_PRELOAD instead of LD_LIBRARY_PATH.
NLS_LANG | This is the primary variable for setting the character set and globalization information used by the Oracle libraries.
ORA_SDTZ | Sets the Oracle session timezone.
TNS_ADMIN | Contains the directory where the Oracle Net Services configuration files such as tnsnames.ora and sqlnet.ora are kept. Not needed if the oci_connect() connection string uses the Easy Connect naming syntax such as localhost/XE. Not needed if the network configuration files are in one of the default locations such as /usr/lib/oracle/VERSION/client/lib/network/admin, $ORACLE_HOME/network/admin or /etc.
Less frequently used Oracle environment variables include TWO_TASK, ORA_TZFILE, and the various Oracle globalization settings like NLS* and the ORA_NLS_* variables.

Troubleshooting

The most common problem with installing OCI8 is not having the Oracle environment correctly set. This typically appears as a problem using oci_connect() or oci_pconnect(). The error may be a PHP error such as Call to undefined function oci_connect(), an Oracle error such as ORA-12705, or even an Apache crash. Check the Apache log files for startup errors and see the sections above to resolve this problem.

While network errors like ORA-12154 or ORA-12514 indicate an Oracle network naming or configuration issue, the root cause may be because the PHP environment is incorrectly set up and Oracle libraries are unable to locate the tnsnames.ora configuration file.

On Windows, having multiple versions of Oracle on the one machine can easily cause library clashes unless care is taken to make sure PHP only uses the correct version of Oracle.

A utility to examine what libraries are being looked for and loaded can help resolve missing or clashing library issues, particularly on Windows.

Hinweis: If the web server doesn't start or crashes at startup

Check that Apache is linked with the pthread library:

# ldd /www/apache/bin/httpd
  libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000)
  libm.so.6 => /lib/libm.so.6 (0x4002f000)
  libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000)
  libdl.so.2 => /lib/libdl.so.2 (0x4007a000)
  libc.so.6 => /lib/libc.so.6 (0x4007e000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

If the libpthread is not listed, then reinstall Apache:

# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

Please note that on some systems like UnixWare, it is libthread instead of libpthread. PHP and Apache have to be configured with EXTRA_LIBS=-lthread.


Testing

The OCI8 test suite is in ext/oci8/tests. After OCI8 tests are run this directory will also contain logs of any failures.

Before running PHP's tests, edit details.inc and set $user, $password and the $dbase connection string. The OCI8 test suite has been developed using the SYSTEM account. Some tests will fail if the test user does not have equivalent permissions.

If Oracle Database Resident Connection Pooling is being tested, set $test_drcp to true and ensure the connection string uses an appropriate DRCP pooled server.

An alternative to editing details.inc is the set environment variables, for example:

    $ export PHP_OCI8_TEST_USER=system
    $ export PHP_OCI8_TEST_PASS=oracle
    $ export PHP_OCI8_TEST_DB=localhost/XE
    $ export PHP_OCI8_TEST_DRCP=FALSE
Note in some shells these variables are not propagated correctly to the PHP process and tests will fail to connect if this method is used.

Next, set any necessary environment for the Oracle database. If you are running PHP on the same machines as Oracle Database, you can run:

    $ . /usr/local/bin/oraenv

With Oracle 11gR2 XE do:

    $ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

Some shells require that php.ini has E in the variables_order parameter, for example:

    variables_order = "EGPCS"

Run all the PHP tests with:

    $ cd your_php_src_directory
    $ make test
or run only the OCI8 tests with
    $ cd your_php_src_directory
    $ make test TESTS=ext/oci8

When the tests have completed, review any test failures. On slow systems, some tests may take longer than the default test timeout in run-tests.php. To correct this, set the environment variable TEST_TIMEOUT to a larger number of seconds.

On fast machines with a local database configured for light load (e.g. Oracle 11gR2 XE) some tests might fail with ORA-12516 or ORA-12520 errors. To prevent this, increase the database PROCESSES parameter using the following steps:

Connect as the oracle software owner:

    $ su - oracle

Set the necessary Oracle environment with oracle_env.sh or oraenv, as described above.

Start the SQL*Plus command line tool and increase PROCESSES

    $ sqlplus / as sysdba
    SQL> alter system set processes=100 scope=spfile

Restart the database:

    SQL> startup force


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

OCI8-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
oci8.connection_class | "" | PHP_INI_ALL | Verfügbar seit PHP 5.3 (PECL OCI8 1.3).
oci8.default_prefetch | "100" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
oci8.events | Off | PHP_INI_SYSTEM | Verfügbar seit PHP 5.3 (PECL OCI8 1.3).
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
oci8.old_oci_close_semantics | Off | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
oci8.ping_interval | "60" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
oci8.privileged_connect | Off | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).

Hier eine kurze Erklärung der Konfigurationsoptionen:

oci8.connection_class string

Dieser benutzerdefinierte Text sollte immer festgelegt werden, wenn Oracle Database Resident Connection Pooling (DRCP) verwendet wird. Er ermöglicht die Partitionierung des DRCP-Verbindungspools, sodass persistente OCI8-Verbindungen aus einer Anwendung Datenbanksessions aus einem vorherigen PHP-Skript wiederverwenden können, was eine bessere Skalierbarkeit ermöglicht. Wenn eine Anwendung einen Datenbankpool-Prozess verwendet, der zuvor mit einer anderen Verbindungsklasse verwendet wurde, werden die Session-Einstellungen, wie z.B. das standardmäßige Oracle-Datumsformat, zurückgesetzt. Dies verhindert eine versehentliche gemeinsame Nutzung von Informationen zwischen verschiedenen Anwendungen.

Der Wert kann zur Laufzeit vor dem Aufbau der Verbindung mit ini_set() gesetzt werden.

Um DRCP zu verwenden, muss OCI8 gegen Bibliotheken von Oracle 11g (oder höher) gelinkt sein und die Datenbank muss Oracle 11g (oder höher) sein. Der DRCP-Verbindungspool muss in der Datenbank aktiviert sein, die oci8.connection_class muss für alle Webserver, auf denen dieselbe Anwendung läuft, auf dieselbe Zeichenkette gesetzt werden und die OCI8-Verbindungszeichenkette muss angeben, dass ein Server mit einem Pool verwendet werden soll. Die Anwendung sollte persistente Verbindungen verwenden.

oci8.default_prefetch int

Diese Option legt die Standard-Anzahl der zusätzlichen Zeilen fest, die automatisch abgerufen und zwischengespeichert werden, wenn eine Low-Level-Anforderung von Daten aus der Datenbank erfolgt. Das Setzen des Wertes 0 deaktiviert das Prefetching.

Der Prefetch-Wert ändert nicht die Anzahl der Zeilen, die Funktionen wie oci_fetch_array() an den Benutzer zurückgeben; das Prefetching und Caching von Zeilen wird intern in OCI8 verwaltet.

Der Wert kann pro Anweisung mit oci_set_prefetch() vor der Ausführung der Anweisung gesetzt werden.

In PHP 5.3 (PECL OCI8 1.3.4) wurde der Standardwert von 10 auf 100 erhöht.

In PHP 5.3.2 (PECL OCI8 1.4) wurde der einstellbare Mindestwert von 1 auf 0 reduziert, wodurch das Prefetching abgeschaltet werden kann.

Bei Verwendung von Oracle Database 12c (oder höher) kann der von PHP festgelegte Prefetch-Wert von Oracles Client-Konfigurationsdatei oraaccess.xml überschrieben werden. Siehe in der Oracle-Dokumentation für weitere Details.

Hinweis: Ein größerer Prefetch kann zu einer verbesserten Leistung führen, allerdings auf Kosten eines erhöhten Speicherverbrauchs. Bei Abfragen, die große Datenmengen zurückgeben, kann der Leistungsvorteil deutlich sein.

oci8.events bool

Wenn diese Option aktiv ist (On), kann PHP über FAN- (Fast Application Notification) Datenbankereignisse benachrichtigt werden.

Ohne FAN kann es bei einem plötzlichen Ausfall einer Datenbankinstanz oder eines Rechnerknotens dazu kommen, dass PHP-Anwendungen beim Warten auf eine Datenbankantwort hängen bleiben, bis der TCP-Timeout abgelaufen ist. Mit FAN-Ereignissen werden PHP-Anwendungen schnell über Fehler informiert, die Datenbankverbindungen betreffen. Die OCI8-Erweiterung entfernt unbrauchbare Verbindungen aus dem persistenten Verbindungscache.

Wenn diese Option verwendet wird (On), muss die Datenbank auch konfiguriert werden, FAN-Ereignisse zu melden.

Die FAN-Unterstützung ist verfügbar, wenn OCI8 gegen Bibliotheken von Oracle 10gR2 (oder höher) gelinkt ist und mit einer Oracle-Datenbank 10gR2 (oder höher) verbunden ist.

oci8.max_persistent int

Die maximale Anzahl persistenter OCI8-Verbindungen pro PHP-Prozess. Wenn diese Option auf -1 gesetzt ist, ist die Anzahl der Verbindungen nicht limitiert.

oci8.old_oci_close_semantics bool

Diese Option kontrolliert das Verhalten der Funktion oci_close(). Wenn sie aktiviert wird, zeigt der Aufruf von oci_close() keine Reaktion; die Verbindung wird nicht vor dem Ende des Skripts beendet. Die Funktion existiert nur aus Gründen der Abwärtskompatibilität. Wenn Sie in eine Situation kommen, in der Sie diese Option aktivieren müssen, sei Ihnen dringend empfohlen, stattdessen alle oci_close()-Aufrufe aus Ihrer Anwendung zu entfernen.

oci8.persistent_timeout int

Die maximale Dauer (in Sekunden), über die der angegebene Prozess eine ungenutzte persistente Verbindung aufrechterhalten darf. Ist diese Option auf -1 gesetzt, werden ungenutzte persistente Verbindungen aufrecht erhalten, bis der PHP-Prozess endet oder die Verbindung mittels oci_close() ausdrücklich geschlossen wird.

Hinweis: In PHP ist das Ablaufen ungenutzter Ressourcen nicht alarmgesteuert. Es erfolgt, wenn PHP die Verarbeitung eines Skripts beendet und den Zeitstempel der zuletzt verwendeten Ressourcen überprüft. Dies führt zu dem Paradoxon, dass ungenutzte Verbindungen nur geschlossen werden können, wenn es im PHP-Prozess irgendeine Aktivität gibt (wenn auch nicht unbedingt OCI8-bezogen). Wenn es mehr als einen PHP-Prozess gibt, muss jeder Prozess einzeln aktiviert werden, um den Ablauf der seiner ungenutzten Ressourcen auszulösen. Die Einführung von Database Resident Connection Pooling (DRCP) in Oracle 11g behebt die Speicher- und Ressourcenprobleme, die oci8.max_persistent und oci8.persistent_timeout zuvor versuchten, zu beheben.

Hinweis: In PHP 5.3 (PECL OCI8 1.3) können persistente Verbindungen mit oci_close() geschlossen werden.

oci8.ping_interval int

Die Dauer (in Sekunden), die vergehen muss, bevor ein Ping während eines oci_pconnect() abgeschickt wird. Ein Ping versichert, dass die Datenbankverbindung gültig ist. Wenn dies auf 0 gesetzt ist, werden persistente Verbindungen bei jeder Verwendung von oci_pconnect() gepingt. Um Pings völlig zu deaktivieren, muss die Option auf -1 gesetzt werden.

Hinweis: Das Deaktivieren von Pings lässt oci_pconnect() mit höchster Effizienz arbeiten, kann aber dazu führen, dass PHP unbrauchbare Verbindungen nicht bemerkt, die z.B. entstehen können, wenn das Netzwerk unterbrochen wird oder der Oracle-Server bei bestehender Verbindung heruntergefahren wird. Konsultieren Sie die Dokumentation zu oci_pconnect(), um weitere Informationen zu erhalten.

oci8.privileged_connect bool

Diese Option aktiviert privilegierte Verbindungen unter Verwendung externer Berechtigungen (OCI_SYSOPER, OCI_SYSDBA).

Hinweis: Wenn diese Option auf On gesetzt ist, können Webserver-Skripte, die über die entsprechenden Systembenutzerrechte verfügen, eine Verbindung zur Datenbank mit diesen Rechten herstellen, ohne ein Passwort für die Datenbank angeben zu müssen. Dies kann ein Sicherheitsrisiko darstellen.

oci8.statement_cache_size int

Diese Option aktiviert den Anweisungs-Cache und definiert, wie viele Anweisungen gecacht werden. Um das Caching zu deaktivieren, muss die Option auf 0 gesetzt werden.

Durch das Anweisungs-Caching entfällt die Notwendigkeit, den Anweisungstext an die Datenbank zu übermitteln, und es müssen auch keine Metadaten über die Anweisung zurück an PHP übertragen werden. Dies kann die Gesamtleistung des Systems in Anwendungen, die Anweisungen während der Lebensdauer einer Verbindung wiederverwenden, deutlich verbessern. Einige zusätzliche Datenbank-"Cursor" werden möglicherweise unter der Annahme offen gehalten werden, dass Anweisungen wiederverwendet werden.

Setzen Sie diesen Wert auf die Größe der aktuellen Menge an Anweisungen, die von Ihrer Anwendung verwendet wird. Die Einstellung eines zu kleinen Wertes kann dazu führen, dass Anweisungen aus dem Cache entfernt werden, bevor sie wiederverwendet werden.

Diese Option ist vor allem bei persistenten Verbindungen von Nutzen.

Wenn Sie Oracle Database 12c (oder höher) verwenden, kann dieser Wert von Oracles Client-Datei oraaccess.xml überschrieben und automatisch eingestellt werden. Siehe die Oracle-Dokumentation für weitere Details.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

OCI8 Function and Method Modes
Constant | Description
OCI_ASSOC | Used with oci_fetch_all() and oci_fetch_array() to get results as an associative array.
OCI_BOTH | Used with oci_fetch_all() and oci_fetch_array() to get results as an array with both associative and number indices.
OCI_COMMIT_ON_SUCCESS | Statement execution mode for oci_execute() call. Automatically commit changes when the statement has succeeded.
OCI_CRED_EXT | Used with oci_connect() for using Oracles' External or OS authentication. Introduced in PHP 5.3 and PECL OCI8 1.3.4.
OCI_DEFAULT | See OCI_NO_AUTO_COMMIT.
OCI_DESCRIBE_ONLY | Statement execution mode for oci_execute(). Use this mode if you want meta data such as the column names but don't want to fetch rows from the query.
OCI_EXACT_FETCH | Obsolete. Statement fetch mode. Used when the application knows in advance exactly how many rows it will be fetching. This mode turns prefetching off for Oracle release 8 or later mode. The cursor is canceled after the desired rows are fetched which may result in reduced server-side resource usage.
OCI_FETCHSTATEMENT_BY_COLUMN | Default mode of oci_fetch_all().
OCI_FETCHSTATEMENT_BY_ROW | Alternative mode of oci_fetch_all().
OCI_LOB_BUFFER_FREE | Used with OCILob::flush to free buffers used.
OCI_NO_AUTO_COMMIT | Statement execution mode for oci_execute(). The transaction is not automatically committed when using this mode. For readability in new code, use this value instead of the older, equivalent OCI_DEFAULT constant. Introduced in PHP 5.3.2 (PECL OCI8 1.4).
OCI_NUM | Used with oci_fetch_all() and oci_fetch_array() to get results as an enumerated array.
OCI_RETURN_LOBS | Used with oci_fetch_array() to get the data value of the LOB instead of the descriptor.
OCI_RETURN_NULLS | Used with oci_fetch_array() to get empty array elements if the row items value is null.
OCI_SEEK_CUR | Used with OCILob::seek to set the seek position.
OCI_SEEK_END | Used with OCILob::seek to set the seek position.
OCI_SEEK_SET | Used with OCILob::seek to set the seek position.
OCI_SYSDATE | Obsolete.
OCI_SYSDBA | Used with oci_connect() to connect with the SYSDBA privilege. The php.ini setting oci8.privileged_connect should be enabled to use this.
OCI_SYSOPER | Used with oci_connect() to connect with the SYSOPER privilege. The php.ini setting oci8.privileged_connect should be enabled to use this.
OCI_TEMP_BLOB | Used with OCILob::writeTemporary to indicate that a temporary BLOB should be created.
OCI_TEMP_CLOB | Used with OCILob::writeTemporary to indicate that a temporary CLOB should be created.
OCI8 Bind and Define Types
Constant | Description
OCI_B_BFILE | Used with oci_bind_by_name() when binding BFILEs.
OCI_B_BIN | Used with oci_bind_by_name() to bind RAW values.
OCI_B_BLOB | Used with oci_bind_by_name() when binding BLOBs.
OCI_B_BOL | Used with oci_bind_by_name() to bind a PL/SQL BOOLEAN variable.
OCI_B_CFILEE | Used with oci_bind_by_name() when binding CFILEs.
OCI_B_CLOB | Used with oci_bind_by_name() when binding CLOBs.
OCI_B_CURSOR | Used with oci_bind_by_name() when binding cursors, previously allocated with oci_new_descriptor().
OCI_B_INT | Used with oci_bind_array_by_name() to bind arrays of INTEGER.
OCI_B_NTY | Used with oci_bind_by_name() when binding named data types. Note: in PHP < 5.0 it was called OCI_B_SQLT_NTY.
OCI_B_NUM | Used with oci_bind_array_by_name() to bind arrays of NUMBER.
OCI_B_ROWID | Used with oci_bind_by_name() when binding ROWIDs.
SQLT_AFC | Used with oci_bind_array_by_name() to bind arrays of CHAR.
SQLT_AVC | Used with oci_bind_array_by_name() to bind arrays of VARCHAR2.
SQLT_BDOUBLE | Not supported.
SQLT_BFILEE | The same as OCI_B_BFILE.
SQLT_BFLOAT | Not supported.
SQLT_BIN | The same as OCI_B_BIN.
SQLT_BLOB | The same as OCI_B_BLOB.
SQLT_BOL | The same as OCI_B_BOL.
SQLT_CFILEE | The same as OCI_B_CFILEE.
SQLT_CHR | Used with oci_bind_array_by_name() to bind arrays of VARCHAR2. Also used with oci_bind_by_name().
SQLT_CLOB | The same as OCI_B_CLOB.
SQLT_FLT | Used with oci_bind_array_by_name() to bind arrays of FLOAT.
SQLT_INT | The same as OCI_B_INT.
SQLT_LBI | Used with oci_bind_by_name() to bind LONG RAW values.
SQLT_LNG | Used with oci_bind_by_name() to bind LONG values.
SQLT_LVC | Used with oci_bind_array_by_name() to bind arrays of LONG VARCHAR.
SQLT_NTY | The same as OCI_B_NTY.
SQLT_NUM | The same as OCI_B_NUM.
SQLT_ODT | Used with oci_bind_array_by_name() to bind arrays of LONG.
SQLT_RDD | The same as OCI_B_ROWID.
SQLT_RSET | The same as OCI_B_CURSOR.
SQLT_STR | Used with oci_bind_array_by_name() to bind arrays of STRING.
SQLT_UIN | Not supported.
SQLT_VCS | Used with oci_bind_array_by_name() to bind arrays of VARCHAR.
OCI8 Descriptor Types
Constant | Description
OCI_DTYPE_FILE | This flag tells oci_new_descriptor() to initialize a new FILE descriptor.
OCI_DTYPE_LOB | This flag tells oci_new_descriptor() to initialize a new LOB descriptor.
OCI_DTYPE_ROWID | This flag tells oci_new_descriptor() to initialize a new ROWID descriptor.
OCI_D_FILE | The same as OCI_DTYPE_FILE.
OCI_D_LOB | The same as OCI_DTYPE_LOB.
OCI_D_ROWID | The same as OCI_DTYPE_ROWID.


Beispiele

These examples connect as the HR user, which is the sample "Human Resources" schema supplied with the Oracle database. The account may need to be unlocked and the password reset before you can use it.

The examples connect to the XE database on your machine. Change the connect string to your database before running the examples.

Beispiel #1 Basic query

This shows querying and displaying results. Statements in OCI8 use a prepare-execute-fetch sequence of steps.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Prepare the statement
$stid = oci_parse($conn, 'SELECT * FROM departments');
if (!$stid) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Perform the logic of the query
$r = oci_execute($stid);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Fetch the results of the query
print "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    print "<tr>\n";
    foreach ($row as $item) {
        print "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
    }
    print "</tr>\n";
}
print "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #2 Inserting with bind variables

Bind variables improve performance by allowing reuse of execution contexts and caches. Bind variables improve security by preventing some kinds of SQL Injection problems.

<?php

// Before running, create the table:
//   CREATE TABLE MYTABLE (mid NUMBER, myd VARCHAR2(20));

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO MYTABLE (mid, myd) VALUES(:myid, :mydata)');

$id = 60;
$data = 'Some data';

oci_bind_by_name($stid, ':myid', $id);
oci_bind_by_name($stid, ':mydata', $data);

$r = oci_execute($stid);  // executes and commits

if ($r) {
    print "One row inserted";
}

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #3 Binding in the WHERE clause of a query

This shows a single scalar bind.

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE department_id = :didbv ORDER BY last_name';
$stid = oci_parse($conn, $sql);
$didbv = 60;
oci_bind_by_name($stid, ':didbv', $didbv);
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
    echo $row['LAST_NAME'] ."<br>\n";
}

// Output is
//    Austin
//    Ernst
//    Hunold
//    Lorentz
//    Pataballa

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #4 Inserting and fetching a CLOB

For large data use binary long object (BLOB) or character long object (CLOB) types. This example uses CLOB.

<?php

// Before running, create the table:
//     CREATE TABLE MYTABLE (mykey NUMBER, myclob CLOB);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$mykey = 12343;  // arbitrary key for this example;

$sql = "INSERT INTO mytable (mykey, myclob)
        VALUES (:mykey, EMPTY_CLOB())
        RETURNING myclob INTO :myclob";

$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_NO_AUTO_COMMIT); // use OCI_DEFAULT for PHP <= 5.3.1
$clob->save("A very long string");

oci_commit($conn);

// Fetching CLOB data

$query = 'SELECT myclob FROM mytable WHERE mykey = :mykey';

$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid);

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) {
    print '<tr><td>'.$row['MYCLOB'].'</td></tr>';
    // In a loop, freeing the large variable before the 2nd fetch reduces PHP's peak memory usage
    unset($row);
}
print '</table>';

?>

Beispiel #5 Using a PL/SQL stored function

You must bind a variable for the return value and optionally for any PL/SQL function arguments.

<?php

/*
  Before running the PHP program, create a stored function in
  SQL*Plus or SQL Developer:

  CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
  BEGIN
      RETURN p * 3;
  END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p = 8;

$stid = oci_parse($conn, 'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid, ':p', $p);
oci_bind_by_name($stid, ':r', $r, 40);

oci_execute($stid);

print "$r\n";   // prints 24

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #6 Using a PL/SQL stored procedure

With stored procedures, you should bind variables for any arguments.

<?php

/*
  Before running the PHP program, create a stored procedure in
  SQL*Plus or SQL Developer:

  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
  BEGIN
      p2 := p1 * 2;
  END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p1 = 8;

$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n";   // prints 16

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #7 Calling a PL/SQL function that returns a REF CURSOR

Each returned value from the query is a REF CURSOR that can be fetched from.

<?php
/*
  Create the PL/SQL stored function as:

  CREATE OR REPLACE FUNCTION myfunc(p1 IN NUMBER) RETURN SYS_REFCURSOR AS
      rc SYS_REFCURSOR;
  BEGIN
      OPEN rc FOR SELECT city FROM locations WHERE ROWNUM < p1;
      RETURN rc;
  END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT myfunc(5) AS mfrc FROM dual');
oci_execute($stid);

echo "<table border='1'>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC))) {
    echo "<tr>\n";
    $rc = $row['MFRC'];
    oci_execute($rc);  // returned column value from the query is a ref cursor
    while (($rc_row = oci_fetch_array($rc, OCI_ASSOC))) {
        echo "    <td>" . $rc_row['CITY'] . "</td>\n";
    }
    oci_free_statement($rc);
    echo "</tr>\n";
}
echo "</table>\n";

// Output is:
//   Beijing
//   Bern
//   Bombay
//   Geneva

oci_free_statement($stid);
oci_close($conn);

?>


OCI8 Connection Handling and Connection Pooling

Connection Functions

The OCI8 extension provides three different functions for connecting to Oracle. The standard connection function is oci_connect(). This creates a connection to an Oracle database and returns a resource used by subsequent database calls.

Connecting to an Oracle server is a reasonably expensive operation in terms of the time that it takes to complete. The oci_pconnect() function uses a persistent cache of connections that can be re-used across different script requests. This means that the connection overhead will typically only occur once per PHP process (or Apache child).

If the application connects to Oracle using a different set of database credentials for each web user, the persistent cache employed by oci_pconnect() will become less useful as the number of concurrent users increases, to the point where it may start to adversely affect the overall performance of the Oracle server due to maintaining too many idle connections. If the application is structured in this way, it is recommended to either tune the application using the oci8.max_persistent and oci8.persistent_timeout configuration settings (these will give control over the persistent connection cache size and lifetime), use Oracle Database Resident Connection Pooling (in Oracle Database 11g or later), or use oci_connect() instead.

Both oci_connect() and oci_pconnect() employ a connection cache; if multiple calls to oci_connect() use the same parameters in a given script, the second and subsequent calls return the existing connection handle. The cache used by oci_connect() is cleaned up at the end of the script run, or when the connection handle is explicitly closed. The function oci_pconnect() has similar behavior, although its cache is maintained separately and survives between HTTP requests.

This caching feature means the two handles are not transactionally isolated (they are in fact the same connection handle, so there is no isolation of any kind). If the application needs two separate, transactionally isolated connections, then use oci_new_connect().

The oci_pconnect() cache is cleared and any database connections closed when the PHP process terminates, so effective use of persistent connections requires that PHP be an Apache module or used with FPM, or similar. Persistent connections will not have any benefits over oci_connect() when PHP is used with CGI or via the command-line.

The function oci_new_connect() always creates a new connection to the Oracle server, regardless of what other connections might already exist. High traffic web applications should avoid using oci_new_connect(), especially in the busiest sections of the application.

From OCI8 1.3, persistent connections can be closed by the user, allowing greater control over connection resource usage. Persistent connections will now also be closed automatically when there is no PHP variable referencing them, such as at the end of scope of a PHP user function. This will rollback any uncommitted transaction. These changes to persistent connections make them behave similarly to non-persistent connections, simplifying the interface, allowing for greater application consistency and predictability. Use oci8.old_oci_close_semantics set to On to retain the historical behavior.

The automatic re-establishment of PHP persistent connections after an Apache or FPM process respawns means Oracle Database LOGON triggers are only recommended for setting session attributes and not for per-application user connection requests.

DRCP Connection Pooling

PHP from 5.3 (PECL OCI8 1.3) supports Oracle Database Resident Connection Pooling (DRCP). DRCP allows more efficient use of database machine memory and provides high scalability. No, or minimal, application changes are needed to use DRCP.

DRCP is suited for applications that connect using few database schemas and hold database connections open for a short period of time. Other applications should use Oracle's default Dedicated database server processes, or use Shared servers.

DRCP benefits all three connection functions, but gives the highest scalability when connections are created with oci_pconnect().

For DRCP to be available in OCI8, Oracle client libraries used by PHP and the version of the Oracle Database must both be 11g or greater.

Documentation on DRCP is found in several Oracle manuals. For example, see » Configuring Database Resident Connection Pooling in the Oracle documentation for usage information. A » DRCP white paper contains background information on DRCP.

To use DRCP, install the OCI8 1.3 (or later) extension and Oracle 11g (or later) libraries and then follow these steps:

  • As a privileged database administrator, use a program like SQL*Plus to start the connection pool in the database:

        SQL> execute dbms_connection_pool.start_pool;

  • Optionally use dbms_connection_pool.alter_param() to configure DRCP settings. The current pool settings can be queried from the DBA_CPOOL_INFO view.

  • Update the connection strings used. For PHP applications that currently connect using a Network Connect Name like MYDB:

        $c = oci_pconnect("myuser", "mypassword", "MYDB");

    modify the tnsnames.ora file and add a (SERVER=POOLED) clause, for example:

        MYDB = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=myhost.dom.com)
           (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales)
           (SERVER=POOLED)))

    Alternatively, modify the Easy Connect syntax in PHP and add :POOLED after the service name:

        $c = oci_pconnect("myuser", "mypassword", "myhost.dom.com:1521/sales:POOLED");

  • Edit php.ini and choose a connection class name. This name indicates a logical division of the connection pool and can be used to isolate pooling for separate applications. Any PHP applications with the same user name and connection class value will be able to share connections in the pool, giving greater scalability.

        oci8.connection_class = "MY_APPLICATION_NAME"

  • Run the application, connecting to the 11g (or later) database.

Hinweis:

Applications using Oracle Client libraries 10g that require the performance of persistent connections can reduce the amount of database server memory needed by using Oracle Shared servers (previously known as Multi Threaded Servers). Refer to Oracle documentation for information.

Hinweis:

Changing a password over DRCP connections will fail with the error ORA-56609: Usage not supported with DRCP. This is a documented restriction of Oracle Database 11g.


OCI8 Fast Application Notification (FAN) Support

FAN support gives fast connection failover, an Oracle Database high availability feature. This allows PHP OCI8 scripts to be notified when a database machine or database instance becomes unavailable. Without FAN, OCI8 can hang until a TCP timeout occurs and an error is returned, which might be several minutes. Enabling FAN in OCI8 can allow applications to detect errors and re-connect to an available database instance without the web user being aware of an outage.

FAN support is available when the Oracle client libraries that PHP links with and the Oracle Database are either version 10gR2 or later.

FAN benefits users of Oracle's clustering technology (RAC) because connections to surviving database instances can be immediately made. Users of Oracle's Data Guard with a broker will see the FAN events generated when the standby database goes online. Standalone databases will send FAN events when the database restarts.

For active connections, when a machine or database instance becomes unavailable, a connection failure error will be returned by the OCI8 extension function currently being called. On a subsequent PHP script re-connect, a connection to a surviving database instance will be established. The OCI8 extension also transparently cleans up any idle connections affected by a database machine or instance failure so PHP connect calls will establish a fresh connection without the script being aware of any service disruption.

When oci8.events is On, it is suggested to set oci8.ping_interval to -1 to disable pinging, since enabling FAN events provide pro-active connection management of idle connections made invalid by a service disruption.

To enable FAN support in PHP OCI8, build PHP OCI8 with Oracle 10gR2 or later libraries and then follow these steps:

  • As a privileged database administrator, use a program like SQL*Plus to enable the database service to post FAN events, for example:

        SQL> execute dbms_service.modify_service(
                   SERVICE_NAME        => 'sales',
                   AQ_HA_NOTIFICATIONS => TRUE);

  • Edit php.ini and add

        oci8.events = On

  • If the application does not already handle OCI8 error conditions, modify it to detect failures and take appropriate action. This may include re-connecting and re-executing statements.
  • Run the application, connecting to Oracle Database 10gR2 or later.


OCI8 Transparent Application Failover (TAF) Support

TAF is an Oracle Database feature that provides high availability. It enables PHP OCI8 applications to automatically reconnect to a preconfigured database when database connectivity fails due to instance or network failure.

In a configured Oracle Database system, TAF occurs when the PHP application detects that the database instance is down or unreachable. It establishes a connection to another node in an Oracle » RAC configuration, a hot standby database, or the same database instance itself. See » Oracle Call Interface Programmer's Guide for more information about OCI TAF.

An application callback can be registered with oci_register_taf_callback(). During failover, normal application processing stops and the registered callback is invoked. The callback notifies the application of the failover events. If the failover succeeds, normal processing will be resumed. If the failover aborts, any following database operations in the application will fail due to no connection being available.

When a connection fails over to another database, the callback can reset any necessary connection state, for example replaying any necessary ALTER SESSION commands if the database service did not have -failover_restore enabled.

An application callback can be removed by calling oci_unregister_taf_callback().

Configuring Transparent Application Failover

TAF can be configured on the PHP OCI8 side or in the database configuration. If both are configured, database-side settings take precedence.

Configure TAF in PHP OCI8 (the client side) by including the FAILOVER_MODE parameter in the CONNECT_DATA portion of a connect descriptor. See Configuring Transparent Application Failover in » Oracle Database Net Services Administrator's Guide for more information about client side configuration of TAF.

An example tnsnames.ora to configure TAF reconnecting to the same database instance:

    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = orclpdb1)
          (FAILOVER_MODE =
            (TYPE = SELECT)
            (METHOD = BASIC)
            (RETRIES = 20)
            (DELAY = 15))))

Alternatively configure TAF on the database side by modifying the target service with » srvctl (for RAC) or the » DBMS_SERVICE.MODIFY_SERVICE packaged procedure (for single instance databases).

Using TAF Callbacks in OCI8

A TAF callback is an application function that can be registered to be called during failover. It is called several times while re-establishing the application's connection.

Callback first occurs when a loss of connection is detected. This allows the application to act accordingly for the upcoming delay of the failover. If the failover is successful, the callback is invoked after connection is re-established and usable. At this time, the application can resynchronize session settings and take actions such as informing the user that failover occurred. If failover is unsuccessful, a callback occurs to inform the application that a failover did not take place and the connection is unusable.

The interface of a TAF user-defined callback function is as follows:

userCallbackFn ( resource $connection , int $event , int $type ) : int

connection

The Oracle connection on which the TAF callback was registered via oci_register_taf_callback(). The connection is not valid until the failover completes successfully.

event

The failover event indicates the current status of the failover.

  • OCI_FO_BEGIN indicates that failover has detected a lost connection and failover is starting.

  • OCI_FO_END indicates successful completion of failover.

  • OCI_FO_ABORT indicates that failover was unsuccessful, and there is no option of retrying.

  • OCI_FO_ERROR also indicates that failover was unsuccessful, but it gives the application the opportunity to handle the error and return OCI_FO_RETRY to retry failover.

  • OCI_FO_REAUTH indicates that an Oracle user has been re-authenticated.

type

The failover type. This lets the callback know what type of failover the application has requested. The usual values are as follows:

  • OCI_FO_SESSION indicates that the user has requested only session failover. For example, if a user's connection is lost, then a new session is automatically created for the user on the backup. This type of failover does not attempt to recover SELECTs.

  • OCI_FO_SELECT indicates that the user has requested SELECT failover as well. It allows users with open cursors to continue fetching from them after failure.

return value

  • 0 indicates the failover steps should continue normally.

  • OCI_FO_RETRY indicates that the failover should be attempted again by Oracle. In case of an error while failing over to a new connection, TAF is able to retry the failover. Typically, the application code should sleep for a while before returning OCI_FO_RETRY.

The following example registers a TAF callback

<?php

// Define userspace callback
class MyClass {
    public static $retry_count;
    public static function TAFCallback($conn, $event, $type)
    {
        switch ($event) {
            case OCI_FO_BEGIN:
                printf(" Failing Over ... Please stand by\n");
                printf(" Failover type was found to be %s \n",
                       (($type==OCI_FO_SESSION) ? "SESSION"
                        :(($type==OCI_FO_SELECT) ? "SELECT" : "UNKNOWN!")));
                self::$retry_count = 0;
                break;
            case OCI_FO_ABORT:
                // The application cannot continue using the database
                printf(" Failover aborted. Failover will not take place.\n");
                break;
            case OCI_FO_END:
                // Failover completes successfully. Inform users a failover occurs.
                printf(" Failover ended ... resuming services\n");
                break;
            case OCI_FO_REAUTH:
                printf(" Failed over user ... resuming services\n");
                // Replay any ALTER SESSION commands associated with this connection
                // eg. oci_parse($conn, ‘ALTER SESSION …’) ;
                break;
            case OCI_FO_ERROR:
                // Stop retrying if we have already attempted for 20 times.
                if (self::$retry_count >= 20)
                    return 0;
                printf(" Failover error received. Sleeping...\n");
                sleep(10);
                self::$retry_count++;
                return OCI_FO_RETRY; // retry failover
                break;
            default:
                printf("Bad Failover Event: %d.\n", $event);
                break;
        }
        return 0;
    }
}

$fn_name = 'MyClass::TAFCallback';

$conn = oci_connect('hr', 'welcome', 'orcl');
$sysconn = oci_connect('system', 'oracle', 'orcl');

// Use a privileged connection to construct a SQL statement that will initiate failover
$sql = <<< 'END'
select unique 'alter system disconnect session '''||sid||','||serial#||''''
from v$session_connect_info
where sid = sys_context('USERENV', 'SID')
END;

$s = oci_parse($conn, $sql);
oci_execute($s);
$r = oci_fetch_array($s);
$disconnectssql = $r[0];

oci_register_taf_callback($conn, $fn_name); // Register TAFCallback to Oracle TAF

print("Parsing user query\n");
$sql = "select systimestamp from dual";
$stmt = oci_parse($conn, $sql);

// For example, if a connection loss occurs at this point, oci_execute() will
// detect the loss and failover begins. During failover, oci_execute() will
// invoke the TAF callback function several times. If the failover is successful,
// a new connection is transparently created and oci_execute() will continue as
// usual. The connection session settings can be reset in the TAF callback
// function. If the failover is aborted, oci_execute() will return an error
// because a valid connection is not available.

// Disconnect the user, which initiates failover
print("Disconnecting the user\n");
$discsql = oci_parse($sysconn, $disconnectssql);
oci_execute($discsql);

print("Executing user query\n");
$e = oci_execute($stmt);
if (!$e) {
    $m = oci_error($stmt);
    trigger_error("Could not execute statement: ". $m['message'], E_USER_ERROR);
}
$row = oci_fetch_array($stmt);
print($row[0] . "\n");

// do other SQL statements with the new connection, if it is valid
// $stmt = oci_parse($conn,  . . .);

?>

See Also

  • oci_register_taf_callback()
  • oci_unregister_taf_callback()


OCI8 and DTrace Dynamic Tracing

OCI8 2.0 introduced static DTrace probes that can be used on operating systems that support DTrace. See DTrace Dynamic Tracing for an overview of PHP and DTrace.

Installing OCI8 with DTrace Support

To enable DTrace support in PHP OCI8, build OCI8 as a shared extension after setting PHP_DTRACE.

$ export PHP_DTRACE=yes
$ pecl install oci8

Edit php.ini, set extension_dir to the directory with the created oci8.so and also enable the extension by adding:

extension=oci8.so

If you install PHP OCI8 from PECL using phpize and configure (instead of pecl), you will still need to set PHP_DTRACE=yes. This is because the --enable-dtrace option will be ignored by the limited configure script of a PECL bundle.

See Installation of PECL extensions for general PECL installation instructions.

DTrace Static Probes in PHP OCI8

The following static probes are available in PHP OCI8
Probe Name | Probe Description | Probe Arguments
oci8-connect-entry | Initiated by oci_connect(), oci_pconnect() and oci_new_connect(). Fires before database connection is established. | char *username, char *dbname, char *charset, long session_mode, int persistent, int exclusive
oci8-connect-return | Fires at the end of connection. | void *connection
oci8-check-connection | Fires if an Oracle error might have caused the connection to become invalid. | void *connection, char *client_id, int is_open, long errcode, unsigned long server_status
oci8-sqltext | Fires when oci_parse() is executed. | void *connection, char *client_id, void *statement, char *sql
oci8-connection-close | Fires when the connection to the database is completely destroyed. | void *connection
oci8-error | Fires if an Oracle error occurs. | int status, long errcode
oci8-execute-mode | Fires at oci_execute() to show the execution mode. | void *connection, char *client_id, void *statement, unsigned int mode

These probes are useful for tracing OCI8 scripts.

The connection and statement are the pointers to internal structures used for tracking PHP connections and executed statements.

The client_id is the value set by oci_set_client_identifier().

Core PHP also has static probes. See DTrace Static Probes in Core PHP.

Internal Debugging DTrace Probes in OCI8
Probe Name
oci8-connect-expiry
oci8-connect-lookup
oci8-connect-p-dtor-close
oci8-connect-p-dtor-release
oci8-connect-type
oci8-sesspool-create
oci8-sesspool-stats
oci8-sesspool-type

These probes are useful for OCI8 maintainers. Refer to the OCI8 source code for arguments and to see when the will fire.

Listing DTrace Static Probes in PHP OCI8

To list available probes, start a PHP process and then run:

# dtrace -l

The output will be similar to:

   ID   PROVIDER            MODULE                          FUNCTION NAME
   [ . . . ]
   17 phpoci22116           oci8.so   php_oci_dtrace_check_connection oci8-check-connection
   18 phpoci22116           oci8.so                php_oci_do_connect oci8-connect-entry
   19 phpoci22116           oci8.so         php_oci_persistent_helper oci8-connect-expiry
   20 phpoci22116           oci8.so             php_oci_do_connect_ex oci8-connect-lookup
   21 phpoci22116           oci8.so  php_oci_pconnection_list_np_dtor oci8-connect-p-dtor-close
   22 phpoci22116           oci8.so  php_oci_pconnection_list_np_dtor oci8-connect-p-dtor-release
   23 phpoci22116           oci8.so                php_oci_do_connect oci8-connect-return
   24 phpoci22116           oci8.so             php_oci_do_connect_ex oci8-connect-type
   25 phpoci22116           oci8.so          php_oci_connection_close oci8-connection-close
   26 phpoci22116           oci8.so                     php_oci_error oci8-error
   27 phpoci22116           oci8.so         php_oci_statement_execute oci8-execute-mode
   28 phpoci22116           oci8.so              php_oci_create_spool oci8-sesspool-create
   29 phpoci22116           oci8.so            php_oci_create_session oci8-sesspool-stats
   30 phpoci22116           oci8.so            php_oci_create_session oci8-sesspool-type
   31 phpoci22116           oci8.so          php_oci_statement_create oci8-sqltext

The Provider column values consist of phpoci and the process id of the currently running PHP process.

The Function column refers to PHP's internal C implementation function names where each provider is located.

If a PHP process is not running, then no PHP probes will be shown.

DTrace with PHP OCI8 Example

This example shows the basics of the DTrace D scripting language.

Beispiel #1 user_oci8_probes.d for tracing all user-level PHP OCI8 Static Probes with DTrace

#!/usr/sbin/dtrace -Zs

#pragma D option quiet

php*:::oci8-connect-entry
{
    printf("%lld: PHP connect-entry\n", walltimestamp);
    printf("  credentials=\"%s@%s\"\n", arg0 ? copyinstr(arg0) : "", arg1 ? copyinstr(arg1) : "");
    printf("  charset=\"%s\"\n", arg2 ? copyinstr(arg2) : "");
    printf("  session_mode=%ld\n", (long)arg3);
    printf("  persistent=%d\n", (int)arg4);
    printf("  exclusive=%d\n", (int)arg5);
}

php*:::oci8-connect-return
{
    printf("%lld: PHP oci8-connect-return\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
}

php*:::oci8-connection-close
{
    printf("%lld: PHP oci8-connect-close\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
}

php*:::oci8-error
{
    printf("%lld: PHP oci8-error\n", walltimestamp);
    printf("  status=%d\n", (int)arg0);
    printf("  errcode=%ld\n", (long)arg1);
}

php*:::oci8-check-connection
{
    printf("%lld: PHP oci8-check-connection\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
    printf("  client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
    printf("  is_open=%d\n", arg2);
    printf("  errcode=%ld\n", (long)arg3);
    printf("  server_status=%lu\n", (unsigned long)arg4);
}

php*:::oci8-sqltext
{
    printf("%lld: PHP oci8-sqltext\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
    printf("  client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
    printf("  statement=0x%p\n", (void *)arg2);
    printf("  sql=\"%s\"\n", arg3 ? copyinstr(arg3) : "");
}

php*:::oci8-execute-mode
{
    printf("%lld: PHP oci8-execute-mode\n", walltimestamp);
    printf("  connection=0x%p\n", (void *)arg0);
    printf("  client_id=\"%s\"\n", arg1 ? copyinstr(arg1) : "");
    printf("  statement=0x%p\n", (void *)arg2);
    printf("  mode=0x%x\n", arg3);
}

This script uses the -Z option to dtrace, allowing it to be run when there is no PHP process executing. If this option were omitted the script would immediately terminate when no PHP executable was running because it knows none of the probes to be monitored are in existence.

On multi-CPU machines the probe ordering might not appear to be sequential. This depends on which CPU was processing the probes, and how threads migrate across CPUs. Displaying probe time stamps helps reduce confusion.

The script traces all user-level PHP OCI8 static probe points throughout the duration of a running PHP script. Run the D script:

# ./user_oci8_probes.d

Run a PHP script or application. The monitoring D script will output each probe's arguments as it fires. For example, a simple PHP script that queries a table might produce the following trace output:

1381794982092854582: PHP connect-entry
  credentials="hr@localhost/pdborcl"
  charset=""
  session_mode=0
  persistent=0
  exclusive=0
1381794982183158766: PHP oci8-connect-return
  connection=0x7f4a7907bfb8
1381794982183594576: PHP oci8-sqltext
  connection=0x7f4a7907bfb8
  client_id="Chris"
  statement=0x7f4a7907c2a0
  sql="select * from employees"
1381794982183783706: PHP oci8-execute-mode
  connection=0x7f4a7907bfb8
  client_id="Chris"
  statement=0x7f4a7907c2a0
  mode=0x20
1381794982444344390: PHP oci8-connect-close
  connection=0x7f4a7907bfb8

When monitoring is complete, the D script can be terminated with a ^C.

See Also

  • DTrace Dynamic Tracing


Supported Datatypes

The driver supports the following types when binding parameters using the oci_bind_by_name() function:
Type | Mapping
SQLT_NTY | Maps a native collection type from a PHP collection object, such as those created by oci_new_collection().
SQLT_BFILEE | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_CFILEE | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_CLOB | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_BLOB | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_RDD | Maps a native descriptor, such as those created by oci_new_descriptor().
SQLT_NUM | Converts the PHP parameter to a 'C' long type, and binds to that value.
SQLT_RSET | Maps a native statement handle, such as those created by oci_parse() or those retrieved from other OCI queries.
SQLT_BOL | Bind the PHP parameter to a PL/SQL BOOLEAN
SQLT_CHR and any other type | Converts the PHP parameter to a string type and binds as a string.
The following types are supported when retrieving columns from a result set:
Type | Mapping
SQLT_RSET | Creates an oci statement resource to represent the cursor.
SQLT_RDD | Creates a ROWID object.
SQLT_BLOB | Creates a LOB object.
SQLT_CLOB | Creates a LOB object.
SQLT_BFILE | Creates a LOB object.
SQLT_LNG | Bound as SQLT_CHR, returned as a string
SQLT_LBI | Bound as SQLT_BIN, returned as a string
Any other type | Bound as SQLT_CHR, returned as a string


OCI8 Funktionen

Inhaltsverzeichnis

  • oci_bind_array_by_name — Bindet ein PHP-Array an einen Oracle-PL/SQL-Arrayparameter
  • oci_bind_by_name — Binds a PHP variable to an Oracle placeholder
  • oci_cancel — Bricht das Lesen eines Zeigers ab
  • oci_client_version — Returns the Oracle client library version
  • oci_close — Schließt eine Oracle-Verbindung
  • oci_commit — Commits the outstanding database transaction
  • oci_connect — Connect to an Oracle database
  • oci_define_by_name — Associates a PHP variable with a column for query fetches
  • oci_error — Liefert den letzten Fehler
  • oci_execute — Executes a statement
  • oci_fetch_all — Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab
  • oci_fetch_array — Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array
  • oci_fetch_assoc — Liefert die nächste Zeile einer Abfrage als assoziatives Array
  • oci_fetch_object — Liefert die nächste Zeile einer Abfrage als Objekt
  • oci_fetch_row — Liefert die nächste Zeile einer Abfrage als numerisches Array
  • oci_fetch — Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab
  • oci_field_is_null — Checks if a field in the currently fetched row is null
  • oci_field_name — Returns the name of a field from the statement
  • oci_field_precision — Tell the precision of a field
  • oci_field_scale — Tell the scale of the field
  • oci_field_size — Returns field's size
  • oci_field_type_raw — Tell the raw Oracle data type of the field
  • oci_field_type — Returns a field's data type name
  • oci_free_descriptor — Frees a descriptor
  • oci_free_statement — Gibt alle verknüpften Ressourcen eines Statements oder Zeigers frei.
  • oci_get_implicit_resultset — Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets
  • oci_lob_copy — Copies large object
  • oci_lob_is_equal — Compares two LOB/FILE locators for equality
  • oci_new_collection — Allocates new collection object
  • oci_new_connect — Connect to the Oracle server using a unique connection
  • oci_new_cursor — Allocates and returns a new cursor (statement handle)
  • oci_new_descriptor — Initializes a new empty LOB or FILE descriptor
  • oci_num_fields — Returns the number of result columns in a statement
  • oci_num_rows — Returns number of rows affected during statement execution
  • oci_parse — Prepares an Oracle statement for execution
  • oci_password_change — Changes password of Oracle's user
  • oci_pconnect — Connect to an Oracle database using a persistent connection
  • oci_register_taf_callback — Register a user-defined callback function for Oracle Database TAF
  • oci_result — Returns field's value from the fetched row
  • oci_rollback — Rolls back the outstanding database transaction
  • oci_server_version — Returns the Oracle Database version
  • oci_set_action — Sets the action name
  • oci_set_call_timeout — Sets a millisecond timeout for database calls
  • oci_set_client_identifier — Sets the client identifier
  • oci_set_client_info — Sets the client information
  • oci_set_db_operation — Sets the database operation
  • oci_set_edition — Sets the database edition
  • oci_set_module_name — Sets the module name
  • oci_set_prefetch — Sets number of rows to be prefetched by queries
  • oci_statement_type — Returns the type of a statement
  • oci_unregister_taf_callback — Unregister a user-defined callback function for Oracle Database TAF


Bindet ein PHP-Array an einen Oracle-PL/SQL-Arrayparameter

  • « OCI8 Funktionen
  • oci_bind_by_name »
  • PHP Manual
  • OCI8 Funktionen
  • Bindet ein PHP-Array an einen Oracle-PL/SQL-Arrayparameter

oci_bind_array_by_name

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL OCI8 >= 1.2.0)

oci_bind_array_by_name — Bindet ein PHP-Array an einen Oracle-PL/SQL-Arrayparameter

Beschreibung

oci_bind_array_by_name ( resource $statement , string $name , array &$var_array , int $max_table_length , int $max_item_length = -1 , int $type = SQLT_AFC ) : bool

Bindet die PHP-Variable var_array an den Oracle-Platzhalter name, der auf ein Oracle-PL/SQL-Array zeigt. Ob dieser zur Ein- oder Ausgabe genutzt wird, wird zur Laufzeit ermittelt.

Parameter-Liste

statement

Ein gültiger Zeiger auf ein OCI-Statement.

name

Der Oracle-Platzhalter.

var_array

Ein Array.

max_table_length

Setzt die maximale Länge sowohl für die Eingabe- als auch die Ergebnis-Arrays.

max_item_length

Setzt die maximale Länge für Array-Elemente. Wenn dieser nicht spezifiziert oder gleich -1 ist, sucht oci_bind_array_by_name() das längste Element im Eingabe-Array und nutzt dieses als maximale Länge der Array-Elemente.

type

Sollte benutzt werden, um den Typ der PL/SQL-Array-Elemente zu bestimmen. Siehe untenstehende Liste verfügbarer Typen.

  • SQLT_NUM - für NUMBER-Arrays.

  • SQLT_INT - für INTEGER-Arrays (beachte: INTEGER ist ein Synonym für NUMBER(38), aber der SQLT_NUM-Typ wird nicht funktionieren, obwohl es Synonyme sind).

  • SQLT_FLT - für FLOAT-Arrays.

  • SQLT_AFC - für CHAR-Arrays.

  • SQLT_CHR - für VARCHAR2-Arrays.

  • SQLT_VCS - für VARCHAR-Arrays.

  • SQLT_AVC - für CHARZ-Arrays.

  • SQLT_STR - für STRING-Arrays.

  • SQLT_LVC - für LONG-VARCHAR-Arrays.

  • SQLT_ODT - für DATE-Arrays.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 oci_bind_array_by_name() Beispiel

<?php
$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$create = "CREATE TABLE bind_example(name VARCHAR(20))";
$stid = oci_parse($conn, $create);
oci_execute($stid);

$create_pkg = "
CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS
  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
  PROCEDURE iobind(c1 IN OUT ARRTYPE);
END ARRAYBINDPKG1;";
$stid = oci_parse($conn, $create_pkg);
oci_execute($stid);

$create_pkg_body = "
CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS
  CURSOR CUR IS SELECT name FROM bind_example;
  PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
    BEGIN
    -- Masseneinfügung
    FORALL i IN INDICES OF c1
      INSERT INTO bind_example VALUES (c1(i));

    -- Abrufen und umkehren
    IF NOT CUR%ISOPEN THEN
      OPEN CUR;
    END IF;
    FOR i IN REVERSE 1..5 LOOP
      FETCH CUR INTO c1(i);
      IF CUR%NOTFOUND THEN
        CLOSE CUR;
        EXIT;
      END IF;
    END LOOP;
  END iobind;
END ARRAYBINDPKG1;";
$stid = oci_parse($conn, $create_pkg_body);
oci_execute($stid);

$stid = oci_parse($conn, "BEGIN arraybindpkg1.iobind(:c1); END;");
$array = array("one", "two", "three", "four", "five");
oci_bind_array_by_name($stid, ":c1", $array, 5, -1, SQLT_CHR);
oci_execute($stid);

var_dump($array);

?>


Binds a PHP variable to an Oracle placeholder

  • « oci_bind_array_by_name
  • oci_cancel »
  • PHP Manual
  • OCI8 Funktionen
  • Binds a PHP variable to an Oracle placeholder

oci_bind_by_name

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_bind_by_name — Binds a PHP variable to an Oracle placeholder

Beschreibung

oci_bind_by_name ( resource $statement , string $bv_name , mixed &$variable , int $maxlength = -1 , int $type = SQLT_CHR ) : bool

Binds a PHP variable variable to the Oracle bind variable placeholder bv_name. Binding is important for Oracle database performance and also as a way to avoid SQL Injection security issues.

Binding allows the database to reuse the statement context and caches from previous executions of the statement, even if another user or process originally executed it. Binding reduces SQL Injection concerns because the data associated with a bind variable is never treated as part of the SQL statement. It does not need quoting or escaping.

PHP variables that have been bound can be changed and the statement re-executed without needing to re-parse the statement or re-bind.

In Oracle, bind variables are commonly divided into IN binds for values that are passed into the database, and OUT binds for values that are returned to PHP. A bind variable may be both IN and OUT. Whether a bind variable will be used for input or output is determined at run-time.

You must specify maxlength when using an OUT bind so that PHP allocates enough memory to hold the returned value.

For IN binds it is recommended to set the maxlength length if the statement is re-executed multiple times with different values for the PHP variable. Otherwise Oracle may truncate data to the length of the initial PHP variable value. If you don't know what the maximum length will be, then re-call oci_bind_by_name() with the current data size prior to each oci_execute() call. Binding an unnecessarily large length will have an impact on process memory in the database.

A bind call tells Oracle which memory address to read data from. For IN binds that address needs to contain valid data when oci_execute() is called. This means that the variable bound must remain in scope until execution. If it doesn't, unexpected results or errors such as "ORA-01460: unimplemented or unreasonable conversion requested" may occur. For OUT binds one symptom is no value being set in the PHP variable.

For a statement that is repeatedly executed, binding values that never change may reduce the ability of the Oracle optimizer to choose the best statement execution plan. Long running statements that are rarely re-executed may not benefit from binding. However in both cases, binding might be safer than joining strings into a SQL statement, as this can be a security risk if unfiltered user text is concatenated.

Parameter-Liste

statement

A valid OCI8 statement identifer.

bv_name

The colon-prefixed bind variable placeholder used in the statement. The colon is optional in bv_name. Oracle does not use question marks for placeholders.

variable

The PHP variable to be associated with bv_name

maxlength

Sets the maximum length for the data. If you set it to -1, this function will use the current length of variable to set the maximum length. In this case the variable must exist and contain data when oci_bind_by_name() is called.

type

The datatype that Oracle will treat the data as. The default type used is SQLT_CHR. Oracle will convert the data between this type and the database column (or PL/SQL variable type), when possible.

If you need to bind an abstract datatype (LOB/ROWID/BFILE) you need to allocate it first using the oci_new_descriptor() function. The length is not used for abstract datatypes and should be set to -1.

Possible values for type are:

  • SQLT_BFILEE or OCI_B_BFILE - for BFILEs;

  • SQLT_CFILEE or OCI_B_CFILEE - for CFILEs;

  • SQLT_CLOB or OCI_B_CLOB - for CLOBs;

  • SQLT_BLOB or OCI_B_BLOB - for BLOBs;

  • SQLT_RDD or OCI_B_ROWID - for ROWIDs;

  • SQLT_NTY or OCI_B_NTY - for named datatypes;

  • SQLT_INT or OCI_B_INT - for integers;

  • SQLT_CHR - for VARCHARs;

  • SQLT_BIN or OCI_B_BIN - for RAW columns;

  • SQLT_LNG - for LONG columns;

  • SQLT_LBI - for LONG RAW columns;

  • SQLT_RSET - for cursors created with oci_new_cursor();

  • SQLT_BOL or OCI_B_BOL - for PL/SQL BOOLEANs (Requires OCI8 2.0.7 and Oracle Database 12c)

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Inserting data with oci_bind_by_name()

<?php

// Create the table with:
//   CREATE TABLE mytab (id NUMBER, text VARCHAR2(40));

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn,"INSERT INTO mytab (id, text) VALUES(:id_bv, :text_bv)");

$id = 1;
$text = "Data to insert     ";
oci_bind_by_name($stid, ":id_bv", $id);
oci_bind_by_name($stid, ":text_bv", $text);
oci_execute($stid);

// Table now contains: 1, 'Data to insert     '

?>

Beispiel #2 Binding once for multiple executions

<?php

// Create the table with:
//   CREATE TABLE mytab (id NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$a = array(1,3,5,7,11);  // data to insert

$stid = oci_parse($conn, 'INSERT INTO mytab (id) VALUES (:bv)');
oci_bind_by_name($stid, ':bv', $v, 20);
foreach ($a as $v) {
    $r = oci_execute($stid, OCI_DEFAULT);  // don't auto commit
}
oci_commit($conn); // commit everything at once

// Table contains five rows: 1, 3, 5, 7, 11

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #3 Binding with a foreach() loop

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT * FROM departments WHERE department_name = :dname AND location_id = :loc';
$stid = oci_parse($conn, $sql);

$ba = array(':dname' => 'IT Support', ':loc' => 1700);

foreach ($ba as $key => $val) {

    // oci_bind_by_name($stid, $key, $val) does not work
    // because it binds each placeholder to the same location: $val
    // instead use the actual location of the data: $ba[$key]
    oci_bind_by_name($stid, $key, $ba[$key]);
}

oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
foreach ($row as $item) {
    print $item."<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #4 Binding in a WHERE clause

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE department_id = :didbv ORDER BY last_name';
$stid = oci_parse($conn, $sql);
$didbv = 60;
oci_bind_by_name($stid, ':didbv', $didbv);
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
    echo $row['LAST_NAME'] ."<br>\n";
}

// Output is
//    Austin
//    Ernst
//    Hunold
//    Lorentz
//    Pataballa

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #5 Binding with a LIKE clause

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

// Find all cities that begin with 'South'
$stid = oci_parse($conn, "SELECT city FROM locations WHERE city LIKE :bv");
$city = 'South%';  // '%' is a wildcard in SQL
oci_bind_by_name($stid, ":bv", $city);
oci_execute($stid);
oci_fetch_all($stid, $res);

foreach ($res['CITY'] as $c) {
    print $c . "<br>\n";
}
// Output is
//   South Brunswick
//   South San Francisco
//   Southlake

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #6 Binding with REGEXP_LIKE

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

// Find all cities that contain 'ing'
$stid = oci_parse($conn, "SELECT city FROM locations WHERE REGEXP_LIKE(city, :bv)");
$city = '.*ing.*';
oci_bind_by_name($stid, ":bv", $city);
oci_execute($stid);
oci_fetch_all($stid, $res);

foreach ($res['CITY'] as $c) {
    print $c . "<br>\n";
}
// Output is
//   Beijing
//   Singapore

oci_free_statement($stid);
oci_close($conn);

?>

For a small, fixed number of IN clause conditions, use individual bind variables. Values unknown at run time can be set to NULL. This allows a single statement to be used by all application users, maximizing Oracle DB cache efficiency.

Beispiel #7 Binding Multiple Values in an IN Clause

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE employee_id in (:e1, :e2, :e3)';
$stid = oci_parse($conn, $sql);
$mye1 = 103;
$mye2 = 104;
$mye3 = NULL; // pretend we were not given this value
oci_bind_by_name($stid, ':e1', $mye1);
oci_bind_by_name($stid, ':e2', $mye2);
oci_bind_by_name($stid, ':e3', $mye3);
oci_execute($stid);
oci_fetch_all($stid, $res);
foreach ($res['LAST_NAME'] as $name) {
    print $name ."<br>\n";
}

// Output is
//   Ernst
//   Hunold

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #8 Binding a ROWID returned by a query

<?php

// Create the table with:
//   CREATE TABLE mytab (id NUMBER, salary NUMBER, name VARCHAR2(40));
//   INSERT INTO mytab (id, salary, name) VALUES (1, 100, 'Chris');
//   COMMIT;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT ROWID, name FROM mytab WHERE id = :id_bv FOR UPDATE');
$id = 1;
oci_bind_by_name($stid, ':id_bv', $id);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
$rid = $row['ROWID'];
$name = $row['NAME'];

// Change name to upper case & save the changes
$name = strtoupper($name);
$stid = oci_parse($conn, 'UPDATE mytab SET name = :n_bv WHERE ROWID = :r_bv');
oci_bind_by_name($stid, ':n_bv', $name);
oci_bind_by_name($stid, ':r_bv', $rid, -1, OCI_B_ROWID);
oci_execute($stid);

// The table now contains 1, 100, CHRIS

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #9 Binding a ROWID on INSERT

<?php

// This example inserts an id & name, and then updates the salary
// Create the table with:
//   CREATE TABLE mytab (id NUMBER, salary NUMBER, name VARCHAR2(40));
//
// Based on original ROWID example by thies at thieso dot net (980221)

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = "INSERT INTO mytab (id, name) VALUES(:id_bv, :name_bv)
        RETURNING ROWID INTO :rid";

$ins_stid = oci_parse($conn, $sql);

$rowid = oci_new_descriptor($conn, OCI_D_ROWID);
oci_bind_by_name($ins_stid, ":id_bv",   $id,    10);
oci_bind_by_name($ins_stid, ":name_bv", $name,  32);
oci_bind_by_name($ins_stid, ":rid",     $rowid, -1, OCI_B_ROWID);

$sql = "UPDATE mytab SET salary = :salary WHERE ROWID = :rid";
$upd_stid = oci_parse($conn, $sql);
oci_bind_by_name($upd_stid, ":rid", $rowid, -1, OCI_B_ROWID);
oci_bind_by_name($upd_stid, ":salary", $salary,   32);

// ids and names to insert
$data = array(1111 => "Larry",
              2222 => "Bill",
              3333 => "Jim");

// Salary of each person
$salary = 10000;

// Insert and immediately update each row
foreach ($data as $id => $name) {
    oci_execute($ins_stid);
    oci_execute($upd_stid);
}

$rowid->free();
oci_free_statement($upd_stid);
oci_free_statement($ins_stid);

// Show the new rows
$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid);
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    var_dump($row);
}

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #10 Binding for a PL/SQL stored function

<?php

//  Before running the PHP program, create a stored function in
//  SQL*Plus or SQL Developer:
//
//  CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
//  BEGIN
//      RETURN p * 3;
//  END;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$p = 8;

$stid = oci_parse($conn, 'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid, ':p', $p);

// The return value is an OUT bind. The default type will be a string
// type so binding a length 40 means that at most 40 digits will be
// returned.
oci_bind_by_name($stid, ':r', $r, 40);

oci_execute($stid);

print "$r\n";   // prints 24

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #11 Binding parameters for a PL/SQL stored procedure

<?php

//  Before running the PHP program, create a stored procedure in
//  SQL*Plus or SQL Developer:
//
//  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
//  BEGIN
//      p2 := p1 * 2;
//  END;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$p1 = 8;

$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);

// The second procedure parameter is an OUT bind. The default type
// will be a string type so binding a length 40 means that at most 40
// digits will be returned.
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n";   // prints 16

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #12 Binding a CLOB column

<?php

// Before running, create the table:
//     CREATE TABLE mytab (mykey NUMBER, myclob CLOB);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$mykey = 12343;  // arbitrary key for this example;

$sql = "INSERT INTO mytab (mykey, myclob)
        VALUES (:mykey, EMPTY_CLOB())
        RETURNING myclob INTO :myclob";

$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_DEFAULT);
$clob->save("A very long string");

oci_commit($conn);

// Fetching CLOB data

$query = 'SELECT myclob FROM mytab WHERE mykey = :mykey';

$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid);

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) {
    print '<tr><td>'.$row['MYCLOB'].'</td></tr>';
    // In a loop, freeing the large variable before the 2nd fetch reduces PHP's peak memory usage
    unset($row);
}
print '</table>';

?>

Beispiel #13 Binding a PL/SQL BOOLEAN

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$plsql =
  "begin
    :output1 := true;
    :output2 := false;
   end;";

$s = oci_parse($c, $plsql);
oci_bind_by_name($s, ':output1', $output1, -1, OCI_B_BOL);
oci_bind_by_name($s, ':output2', $output2, -1, OCI_B_BOL);
oci_execute($s);
var_dump($output1);  // true
var_dump($output2);  // false

?>

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Warnung

Do not use magic_quotes_gpc or addslashes() and oci_bind_by_name() simultaneously as no quoting is needed. Any magically applied quotes will be written into your database because oci_bind_by_name() inserts data verbatim and does not remove quotes or escape characters.

Hinweis:

If you bind a string to a CHAR column in a WHERE clause, remember that Oracle uses blank-padded comparison semantics for CHAR columns. Your PHP variable should be blank padded to the same width as the column for the WHERE clause to succeed.

Hinweis:

The PHP variable argument is a reference. Some forms of loops do not work as expected:

<?php
foreach ($myarray as $key => $value)  {
    oci_bind_by_name($stid, $key, $value);
}
?>

This binds each key to the location of $value, so all bound variables end up pointing to the last loop iteration's value. Instead use the following:

<?php
foreach ($myarray as $key => $value) {
    oci_bind_by_name($stid, $key, $myarray[$key]);
}
?>

Siehe auch

  • oci_bind_array_by_name() - Bindet ein PHP-Array an einen Oracle-PL/SQL-Arrayparameter
  • oci_parse() - Prepares an Oracle statement for execution


Bricht das Lesen eines Zeigers ab

  • « oci_bind_by_name
  • oci_client_version »
  • PHP Manual
  • OCI8 Funktionen
  • Bricht das Lesen eines Zeigers ab

oci_cancel

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_cancel — Bricht das Lesen eines Zeigers ab

Beschreibung

oci_cancel ( resource $statement ) : bool

Annulliert einen Zeiger, gibt alle verknüpften Ressourcen frei und beendet die Möglichkeit von dem Zeiger zu lesen.

Parameter-Liste

statement

Ein OCI-Statement.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Returns the Oracle client library version

  • « oci_cancel
  • oci_close »
  • PHP Manual
  • OCI8 Funktionen
  • Returns the Oracle client library version

oci_client_version

(PHP 5 >= 5.3.7, PHP 7, PHP 8, PECL OCI8 >= 1.4.6)

oci_client_version — Returns the Oracle client library version

Beschreibung

oci_client_version ( ) : string

Returns a string containing the version number of the Oracle C client library that PHP is linked with.

Parameter-Liste

None

Rückgabewerte

Returns the version number as a string.

Beispiele

Beispiel #1 oci_client_version() example

<?php
    echo "Client Version: " . oci_client_version(); // Client version: 19.9.0.0.0
?>

Anmerkungen

Hinweis:

Oracle libraries before 10gR2 do not have the underlying functionality to get the client library version number. The string "Unknown" will be returned in this case.

Siehe auch

  • oci_server_version() - Returns the Oracle Database version


Schließt eine Oracle-Verbindung

  • « oci_client_version
  • oci_commit »
  • PHP Manual
  • OCI8 Funktionen
  • Schließt eine Oracle-Verbindung

oci_close

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_close — Schließt eine Oracle-Verbindung

Beschreibung

oci_close ( resource $connection ) : bool

Hebt die connection auf. Die unterliegende Datenbank-Verbindung wird geschlossen, wenn sie von keinen anderen Ressourcen verwendet wird, und wenn sie mit oci_connect() oder oci_new_connect() erzeugt wurde.

Es wird empfohlen nicht mehr benötigte Verbindungen zu schließen, da dies Datenbankressourcen für andere Nutzer frei gibt.

Parameter-Liste

connection

Ein Zeiger auf eine Oracle-Verbindung, die durch oci_connect(), oci_pconnect() oder oci_new_connect() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Schließen einer Verbindung

Ressourcen, die mit einer Verbindung assoziiert sind, sollten geschlossen werden, um sicher zu stellen, dass die unterliegende Datenbankverbindung ordnungsgemäß beendet wird, und die Datenbankressourcen frei gegeben werden.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM departments');
$r = oci_execute($stid);
oci_fetch_all($stid, $res);
var_dump($res);

// Freigeben des Anweisungsbezeichners, wenn die Verbindung geschlossen wird
oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #2 Datenbankverbindungen werden nicht geschlossen, bevor alle Referenzen geschlossen wurden

Der interne Referenzzähler eines Verbindungsbezeichners muss null (0) sein, bevor die unterliegende Verbindung zur Datenbank geschlossen wird.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM departments');  // dies erhöht den Referenzzähler von $conn
oci_execute($stid);
oci_fetch_all($stid, $res);
var_dump($res);

oci_close($conn);

// $conn ist im Script nicht länger verwendbar, aber die unterliegende
// Datenbankverbindung wird solange offen gehalten bis $stid frei gegeben wird.
var_dump($conn);  // gibt NULL aus

// Während PHP schläft, zeigt das Abfragen der Oracle V$SESSION Ansicht in einem
// Terminal-Fenster, dass der Datenbanknutzer immer noch verbunden ist.
sleep(10);

// Wenn $stid frei gegegben wird, wird die Datenbankverbindung physikalisch geschlossen
oci_free_statement($stid);

// Während PHP schläft, zeigt das Abfragen der Oracle V$SESSION Ansicht in einem
// Terminal-Fenster, dass der Datenbanknutzer getrennt wurde
sleep(10);

?>

Beispiel #3 Schließen einer Verbindung, die mehr als einmal geöffnet wurde

Wenn Datenbankanmeldedaten wiederverwendet werden, müssen beide Verbindungen geschlossen werden, bevor die unterliegende Datenbankverbindung geschlossen wird.

<?php

$conn1 = oci_connect('hr', 'welcome', 'localhost/XE');

// Die Verwendung der selben Anmeldedaten benutzt die selbe unterliegende Datenbankverbindung nochmals
// Jegliche unbestätigten Änderungen, die auf $conn1 durchgeführt wurden, sind in $conn2 sichtbar
$conn2 = oci_connect('hr', 'welcome', 'localhost/XE');

// Während PHP schläft, zeigt das Abfragen der Oracle V$SESSION Ansicht in einem
// Terminal-Fenster, dass nur ein Datenbanknutzer verbunden ist.
sleep(10);

oci_close($conn1); // schließt nicht die unterliegende Datenbankverbindung
var_dump($conn1);  // gibt NULL aus, weil die Variable $conn1 nicht länger verwendbar ist
var_dump($conn2);  // zeigt an, dass $conn2 noch immer eine gültige Verbindungsressource ist

?>

Beispiel #4 Verbindungen werden geschlossen, wenn die Variablen den Geltungsbereich verlassen

Wenn alle Variablen, die eine Verbindung referenzieren, den Geltungsbereich verlassen und von PHP frei gegeben werden, erfolgt ein Rollback (falls nötig) und die unterliegende Verbindung zur Datenbank wird geschlossen.

<?php

function myfunc() {
    $conn = oci_connect('hr', 'hrpwd', 'localhost/XE');
    if (!$conn) {
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }

    $stid = oci_parse($conn, 'UPDATE mytab SET id = 100');
    oci_execute($stid, OCI_NO_AUTO_COMMIT);
    return "Beendet";
}

$r = myfunc();
// In diesem Moment erfolgte ein Rollback und die unterliegende Datenbankverbindung wurde frei gegeben.

print $r;  // zeigt den Funktionsrückgabewert "Beendet" an

?>

Anmerkungen

Hinweis:

Variablen, die eine Abhängigkeit vom Verbindungsbezeichner haben, wie von oci_parse() zurückgegebene Anweisungsbezeichner, müssen ebenfalls frei gegeben werden, bevor die unterliegende Datenbankverbindung geschlossen wird.

Hinweis:

Vor Version PHP 5.1.2 (PECL OCI8 1.1) hatte oci_close() keine Wirkung. In neueren Version schließt es korrekt die Oracle-Verbindung. oci8.old_oci_close_semantics kann verwendet werden, um das alte Verhalten dieser Funktion wieder herzustellen.

Hinweis:

Die oci_close() Funktion schließt nicht unterliegende Datenbankverbindungen, die mit oci_pconnect() erzeugt wurden.

Siehe auch

  • oci_connect() - Connect to an Oracle database
  • oci_free_statement() - Gibt alle verknüpften Ressourcen eines Statements oder Zeigers frei.


Commits the outstanding database transaction

  • « oci_close
  • oci_connect »
  • PHP Manual
  • OCI8 Funktionen
  • Commits the outstanding database transaction

oci_commit

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_commit — Commits the outstanding database transaction

Beschreibung

oci_commit ( resource $connection ) : bool

Commits the outstanding transaction for the Oracle connection. A commit ends the current transaction and makes permanent all changes. It releases all locks held.

A transaction begins when the first SQL statement that changes data is executed with oci_execute() using the OCI_NO_AUTO_COMMIT flag. Further data changes made by other statements become part of the same transaction. Data changes made in a transaction are temporary until the transaction is committed or rolled back. Other users of the database will not see the changes until they are committed.

When inserting or updating data, using transactions is recommended for relational data consistency and for performance reasons.

Parameter-Liste

connection

An Oracle connection identifier, returned by oci_connect(), oci_pconnect(), or oci_new_connect().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 oci_commit() example

<?php

// Insert into several tables, rolling back the changes if an error occurs

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");

// The OCI_NO_AUTO_COMMIT flag tells Oracle not to commit the INSERT immediately
// Use OCI_DEFAULT as the flag for PHP <= 5.3.1.  The two flags are equivalent
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    oci_rollback($conn);  // rollback changes to both tables
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// Commit the changes to both tables
$r = oci_commit($conn);
if (!$r) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

?>

Anmerkungen

Hinweis:

Transactions are automatically rolled back when you close the connection, or when the script ends, whichever is soonest. You need to explicitly call oci_commit() to commit the transaction.

Any call to oci_execute() that uses OCI_COMMIT_ON_SUCCESS mode explicitly or by default will commit any previous uncommitted transaction.

Any Oracle DDL statement such as CREATE or DROP will automatically commit any uncommitted transaction.

Siehe auch

  • oci_execute() - Executes a statement
  • oci_rollback() - Rolls back the outstanding database transaction


Connect to an Oracle database

  • « oci_commit
  • oci_define_by_name »
  • PHP Manual
  • OCI8 Funktionen
  • Connect to an Oracle database

oci_connect

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_connect — Connect to an Oracle database

Beschreibung

oci_connect ( string $username , string $password , string $connection_string = ? , string $character_set = ? , int $session_mode = ? ) : resource

Returns a connection identifier needed for most other OCI8 operations.

For performance, most applications should use persistent connections with oci_pconnect() instead of oci_connect(). See Connection Handling for general information on connection management and connection pooling.

From PHP 5.1.2 (PECL OCI8 1.1) oci_close() can be used to close the connection.

The second and subsequent calls to oci_connect() with the same parameters will return the connection handle returned from the first call. This means that transactions in one handle are also in the other handles, because they use the same underlying database connection. If two handles need to be transactionally isolated from each other, use oci_new_connect() instead.

Parameter-Liste

username

The Oracle user name.

password

The password for username.

connection_string

Beinhaltet die Oracle-Instanz, mit der verbunden werden soll. Dies kann eine » Easy-Connect-Zeichenkette, ein Connect-Name aus der Datei tnsnames.ora oder der Name einer lokalen Oracle-Instanz sein.

Wenn dies nicht angegebe wird, verwendet PHP Umgebungsvariablen wie TWO_TASK (unter Linux), LOCAL (unter Windows) oder ORACLE_SID um die Oracle-Instanz zu ermitteln, mit der verbunden werden soll.

Um die benannte Easy Connect Methode zu verwenden, muss PHP gegen die Clientbibliotheken von Oracle 10g oder höher gelinkt sein. Die Easy-Connect-Zeichenkette für Oracle 10g hat den Aufbau: [//]host_name[:port][/service_name]. Für Oracle 11g ist die Syntax: [//]host_name[:port][/service_name][:server_type][/instance_name]. Weitere Optionen wurden mit Oracle 19c eingeführt, darunter die timeout- und die keep-alive-Einstellungen. Siehe dazu die Oracle-Dokumentation. Die Servicenamen können ermittelt werden, indem man das Oracle-Hilfswerkzeug lsnrctl status auf dem Datenbankserver ausführt.

Die Datei tnsnames.ora kann sich im Oracle Net Suchpfad befinden, welcher /der/pfad/zu/instantclient/network/admin, $ORACLE_HOME/network/admin sowie /etc beinhaltet. Alternativ kann TNS_ADMIN so gesetzt werden, dass $TNS_ADMIN/tnsnames.ora gelesen wird. Es muss sichergestellt sein, dass der Webserver eine Leseberechtigung für die Datei besitzt.

character_set

Bestimmt den Zeichensatz, der von den Oracle Client Bibliotheken verwendet wird. Dieser Zeichensatz muss nicht dem von der Datenbank verwendeten Zeichensatz entsprechen. Wenn diese nicht übereinstimmen, wird Oracle bestmöglich versuchen, die Daten in den Datenbankzeichensatz zu übersetzen. Abhängig von den Zeichensätzen kann dies zu unbrauchbaren Ergebnissen führen. Diese Konvertierung führt auch zu einem erhöhten Zeitbedarf.

Falls nicht angegeben, werden die Oracle Client Bibliotheken versuchen, den Zeichensatz aus der Umgebungsvariablen NLS_LANG auszulesen.

Die Übergabe dieses Parameters verringert die Zeit für den Verbindungsaufbau.

session_mode

Dieser Parameter ist seit PHP 5 (PECL OCI8 1.1) verfügbar und akzeptiert die folgenden Werte: OCI_DEFAULT, OCI_SYSOPER und OCI_SYSDBA. Falls entweder OCI_SYSOPER oder OCI_SYSDBA angegeben wurden wird diese Funktion versuchen die priviligierte Verbindung mit externen Credentials aufzubauen. Um diese einzuschalten muss man oci8.privileged_connect auf On setzen.

PHP 5.3 (PECL OCI8 1.3.4) hat den Wert OCI_CRED_EXT eingeführt. Dies konfiguriert Oracle dazu eine externe oder Os-Authentifizierung vorzunehmen, welche in der Datenbank konfiguriert werden muss. Der Schalter OCI_CRED_EXT kann nur mit dem Benutzernamen "/" und einem leeren Passwort verwendet werden. oci8.privileged_connect kann entweder On oder Off sein.

OCI_CRED_EXT kann mit OCI_SYSOPER oder OCI_SYSDBA kombiniert werden.

OCI_CRED_EXT ist auf Windows-Systemen aus sicherheitsgründen nicht unterstützt.

Rückgabewerte

Returns a connection identifier or false on error.

Beispiele

Beispiel #1 Basic oci_connect() using Easy Connect syntax

<?php

// Connects to the XE service (i.e. database) on the "localhost" machine
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Beispiel #2 Basic oci_connect() using a Network Connect name

<?php

// Connects to the MYDB database described in tnsnames.ora file,
// One example tnsnames.ora entry for MYDB could be:
//   MYDB =
//     (DESCRIPTION =
//       (ADDRESS = (PROTOCOL = TCP)(HOST = mymachine.oracle.com)(PORT = 1521))
//       (CONNECT_DATA =
//         (SERVER = DEDICATED)
//         (SERVICE_NAME = XE)
//       )
//     )

$conn = oci_connect('hr', 'welcome', 'MYDB');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Beispiel #3 oci_connect() with an explicit character set

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE', 'AL32UTF8');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Beispiel #4 Using multiple calls to oci_connect()

<?php

$c1 = oci_connect("hr", "welcome", 'localhost/XE');
$c2 = oci_connect("hr", "welcome", 'localhost/XE');

// Both $c1 and $c2 show the same PHP resource id meaning they use the
// same underlying database connection
echo "c1 is $c1<br>\n";
echo "c2 is $c2<br>\n";

function create_table($conn)
{
    $stmt = oci_parse($conn, "create table hallo (test varchar2(64))");
    oci_execute($stmt);
    echo "Created table<br>\n";
}

function drop_table($conn)
{
    $stmt = oci_parse($conn, "drop table hallo");
    oci_execute($stmt);
    echo "Dropped table<br>\n";
}

function insert_data($connname, $conn)
{
    $stmt = oci_parse($conn, "insert into hallo
              values(to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
    oci_execute($stmt, OCI_DEFAULT);
    echo "$connname inserted row without committing<br>\n";
}

function rollback($connname, $conn)
{
    oci_rollback($conn);
    echo "$connname rollback<br>\n";
}

function select_data($connname, $conn)
{
    $stmt = oci_parse($conn, "select * from hallo");
    oci_execute($stmt, OCI_DEFAULT);
    echo "$connname ----selecting<br>\n";
    while (oci_fetch($stmt)) {
        echo "    " . oci_result($stmt, "TEST") . "<br>\n";
    }
    echo "$connname ----done<br>\n";
}

create_table($c1);

insert_data('c1', $c1);   // Insert a row using c1
sleep(2);                 // sleep to show a different timestamp for the 2nd row
insert_data('c2', $c2);   // Insert a row using c2

select_data('c1', $c1);   // Results of both inserts are returned
select_data('c2', $c2);   // Results of both inserts are returned

rollback('c1', $c1);      // Rollback using c1

select_data('c1', $c1);   // Both inserts have been rolled back
select_data('c2', $c2);

drop_table($c1);

// Closing one of the connections makes the PHP variable unusable, but
// the other could be used
oci_close($c1);
echo "c1 is $c1<br>\n";
echo "c2 is $c2<br>\n";

// Output is:
//    c1 is Resource id #5
//    c2 is Resource id #5
//    Created table
//    c1 inserted row without committing
//    c2 inserted row without committing
//    c1 ----selecting
//        09-DEC-09 12:14:43
//        09-DEC-09 12:14:45
//    c1 ----done
//    c2 ----selecting
//        09-DEC-09 12:14:43
//        09-DEC-09 12:14:45
//    c2 ----done
//    c1 rollback
//    c1 ----selecting
//    c1 ----done
//    c2 ----selecting
//    c2 ----done
//    Dropped table
//    c1 is
//    c2 is Resource id #5

?>

Anmerkungen

Hinweis:

An incorrectly installed or configured OCI8 extension will often manifest itself as a connection problem or error. See Installing/Configuring for troubleshooting information.

Siehe auch

  • oci_pconnect() - Connect to an Oracle database using a persistent connection
  • oci_new_connect() - Connect to the Oracle server using a unique connection
  • oci_close() - Schließt eine Oracle-Verbindung


Associates a PHP variable with a column for query fetches

  • « oci_connect
  • oci_error »
  • PHP Manual
  • OCI8 Funktionen
  • Associates a PHP variable with a column for query fetches

oci_define_by_name

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_define_by_name — Associates a PHP variable with a column for query fetches

Beschreibung

oci_define_by_name ( resource $statement , string $column_name , mixed &$variable , int $type = SQLT_CHR ) : bool

Associates a PHP variable with a column for query fetches using oci_fetch().

The oci_define_by_name() call must occur before executing oci_execute().

Parameter-Liste

statement

Der Identifizierer eines gültigen OCI8-Ausdrucks, der von oci_parse() erzeugt und von oci_execute() oder einem REF CURSOR-Ausdruck verwendet wird.

column_name

The column name used in the query.

Use uppercase for Oracle's default, non-case sensitive column names. Use the exact column name case for case-sensitive column names.

variable

The PHP variable that will contain the returned column value.

type

The data type to be returned. Generally not needed. Note that Oracle-style data conversions are not performed. For example, SQLT_INT will be ignored and the returned data type will still be SQLT_CHR.

You can optionally use oci_new_descriptor() to allocate LOB/ROWID/BFILE descriptors.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 oci_define_by_name() example

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);

// The defines MUST be done before executing
oci_define_by_name($stid, 'LOCATION_ID', $locid);
oci_define_by_name($stid, 'CITY', $city);

oci_execute($stid);

// Each fetch populates the previously defined variables with the next row's data
while (oci_fetch($stid)) {
    echo "Location id $locid is $city<br>\n";
}

// Displays:
//   Location id 1000 is Roma
//   Location id 1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #2 oci_define_by_name() with case sensitive column names

<?php

/*
  Before running, create the table with a case sensitive column name:
    CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
    INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// Use uppercase for non case-sensitive column names
oci_define_by_name($stid, 'ID', $id);

// Use the exact case for case-sensitive column names
oci_define_by_name($stid, 'MyDescription', $mydesc);

oci_execute($stid);

while (oci_fetch($stid)) {
    echo "id $id is $mydesc<br>\n";
}

// Displays:
//   id 1 is Iced Coffee

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #3 oci_define_by_name() with LOB columns

<?php

/*
  Before running, create the table:
    CREATE TABLE mytab (id NUMBER, fruit CLOB);
    INSERT INTO mytab (id, fruit) values (1, 'apple');
    INSERT INTO mytab (id, fruit) values (2, 'orange');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// The defines MUST be done before executing
oci_define_by_name($stid, 'ID', $id);
oci_define_by_name($stid, 'FRUIT', $fruit);  // $fruit will become a LOB descriptor

oci_execute($stid);

while (oci_fetch($stid)) {
    echo $id . " is " . $fruit->load(100) . "<br>\n";
}

// Displays:
//   1 is apple
//   2 is orange

$fruit->free();
oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #4 oci_define_by_name() with an explicit type

<?php

/*
  Before running, create the table:
    CREATE TABLE mytab (id NUMBER, fruit CLOB);
    INSERT INTO mytab (id, fruit) values (1, 'apple');
    INSERT INTO mytab (id, fruit) values (2, 'orange');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// The defines MUST be done before executing
oci_define_by_name($stid, 'ID', $id);

$fruit = oci_new_descriptor($conn, OCI_D_LOB);
oci_define_by_name($stid, 'FRUIT', $fruit, OCI_D_CLOB);

oci_execute($stid);

while (oci_fetch($stid)) {
    echo $id . " is " . $fruit->load(100) . "<br>\n";
}

// Displays:
//   1 is apple
//   2 is orange

$fruit->free();
oci_free_statement($stid);
oci_close($conn);

?>

Siehe auch

  • oci_fetch() - Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab
  • oci_new_descriptor() - Initializes a new empty LOB or FILE descriptor


Liefert den letzten Fehler

  • « oci_define_by_name
  • oci_execute »
  • PHP Manual
  • OCI8 Funktionen
  • Liefert den letzten Fehler

oci_error

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_error — Liefert den letzten Fehler

Beschreibung

oci_error ( resource $resource = ? ) : array

Gibt den zuletzt gefundenen Fehler zurück.

Die Funktion sollte unmittelbar nach dem Auftreten eines Fehlers aufgerufen werden. Fehler werden durch eine erfolgreiche Anweisung gelöscht.

Parameter-Liste

resource

Bei den meisten Fehlern ist resource die Ressourcen-Kennung, die an den fehlschlagenden Funktionsaufruf übergeben wurde. Bei Verbindungsfehlern mit oci_connect(), oci_new_connect() oder oci_pconnect() sollte resource nicht angegeben werden.

Rückgabewerte

Wenn kein Fehler gefunden wurde, gibt oci_error() false zurück. Andernfalls gibt oci_error() die Fehlerinformationen als assoziatives Array zurück.

Beschreibung des oci_error()-Arrays
Schlüssel | Typ | Beschreibung
code | int | Die Oracle-Fehlernummer.
message | string | Die Oracle-Fehlermeldung.
offset | int | Die Byteposition des Fehlers in einer SQL-Anweisung. Gab es keine Anweisung, dann ist dies 0.
sqltext | string | Der Text der SQL-Anweisung. Gab es keine Anweisung, dann ist dies eine leere Zeichenkette.

Beispiele

Beispiel #1 Zeigt die Oracle-Fehlermeldung nach einem Verbindungsfehler an

<?php
$conn = oci_connect("hr", "welcome", "localhost/XE");
if (!$conn) {
    $e = oci_error();   // bei oci_connect-Fehlern keine Kennung übergeben
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Beispiel #2 Zeigt die Oracle-Fehlermeldung nach einem Parse-Error an

<?php
$stid = oci_parse($conn, "select ' from dual");  // fehlerhaftes Anführungszeichen
if (!$stid) {
    $e = oci_error($conn);  // bei oci_parse-Fehlern Verbindungskennung übergeben
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Beispiel #3 Anzeigen der Oracle-Fehlermeldung, der problematischen Anweisung und der Position des Problems nach einem Ausführungsfehler

<?php
$stid = oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!$r) {
    $e = oci_error($stid); // bei oci_execute-Fehlern die Anweisungskennung übergeben
    print htmlentities($e['message']);
    print "\n<pre>\n";
    print htmlentities($e['sqltext']);
    printf("\n%".($e['offset']+1)."s", "^");
    print  "\n</pre>\n";
}
?>


Executes a statement

  • « oci_error
  • oci_fetch_all »
  • PHP Manual
  • OCI8 Funktionen
  • Executes a statement

oci_execute

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_execute — Executes a statement

Beschreibung

oci_execute ( resource $statement , int $mode = OCI_COMMIT_ON_SUCCESS ) : bool

Executes a statement previously returned from oci_parse().

After execution, statements like INSERT will have data committed to the database by default. For statements like SELECT, execution performs the logic of the query. Query results can subsequently be fetched in PHP with functions like oci_fetch_array().

Each parsed statement may be executed multiple times, saving the cost of re-parsing. This is commonly used for INSERT statements when data is bound with oci_bind_by_name().

Parameter-Liste

statement

A valid OCI statement identifier.

mode

An optional second parameter can be one of the following constants:

Execution Modes
Constant | Description
OCI_COMMIT_ON_SUCCESS | Automatically commit all outstanding changes for this connection when the statement has succeeded. This is the default.
OCI_DESCRIBE_ONLY | Make query meta data available to functions like oci_field_name() but do not create a result set. Any subsequent fetch call such as oci_fetch_array() will fail.
OCI_NO_AUTO_COMMIT | Do not automatically commit changes. Prior to PHP 5.3.2 (PECL OCI8 1.4) use OCI_DEFAULT which is equivalent to OCI_NO_AUTO_COMMIT.

Using OCI_NO_AUTO_COMMIT mode starts or continues a transaction. Transactions are automatically rolled back when the connection is closed, or when the script ends. Explicitly call oci_commit() to commit a transaction, or oci_rollback() to abort it.

When inserting or updating data, using transactions is recommended for relational data consistency and for performance reasons.

If OCI_NO_AUTO_COMMIT mode is used for any statement including queries, and oci_commit() or oci_rollback() is not subsequently called, then OCI8 will perform a rollback at the end of the script even if no data was changed. To avoid an unnecessary rollback, many scripts do not use OCI_NO_AUTO_COMMIT mode for queries or PL/SQL. Be careful to ensure the appropriate transactional consistency for the application when using oci_execute() with different modes in the same script.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 oci_execute() for queries

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Beispiel #2 oci_execute() without specifying a mode example

<?php

// Before running, create the table:
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');

oci_execute($stid); // The row is committed and immediately visible to other users

?>

Beispiel #3 oci_execute() with OCI_NO_AUTO_COMMIT example

<?php

// Before running, create the table:
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (:bv)');
oci_bind_by_name($stid, ':bv', $i, 10);
for ($i = 1; $i <= 5; ++$i) {
    oci_execute($stid, OCI_NO_AUTO_COMMIT);  // use OCI_DEFAULT for PHP <= 5.3.1
}
oci_commit($conn);  // commits all new values: 1, 2, 3, 4, 5

?>

Beispiel #4 oci_execute() with different commit modes example

<?php

// Before running, create the table:
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');
oci_execute($stid, OCI_NO_AUTO_COMMIT);  // data not committed

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (456)');
oci_execute($stid);  // commits both 123 and 456 values

?>

Beispiel #5 oci_execute() with OCI_DESCRIBE_ONLY example

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM locations');
oci_execute($s, OCI_DESCRIBE_ONLY);
for ($i = 1; $i <= oci_num_fields($stid); ++$i) {
    echo oci_field_name($stid, $i) . "<br>\n";
}

?>

Anmerkungen

Hinweis:

Transactions are automatically rolled back when connections are closed, or when the script ends, whichever is soonest. Explicitly call oci_commit() to commit a transaction.

Any call to oci_execute() that uses OCI_COMMIT_ON_SUCCESS mode explicitly or by default will commit any previous uncommitted transaction.

Any Oracle DDL statement such as CREATE or DROP will automatically commit any uncommitted transaction.

Hinweis:

Because the oci_execute() function generally sends the statement to the database, oci_execute() can identify some statement syntax errors that the lightweight, local oci_parse() function does not.

Siehe auch

  • oci_parse() - Prepares an Oracle statement for execution


Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab

  • « oci_execute
  • oci_fetch_array »
  • PHP Manual
  • OCI8 Funktionen
  • Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab

oci_fetch_all

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_all — Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab

Beschreibung

oci_fetch_all ( resource $statement , array &$output , int $skip = 0 , int $maxrows = -1 , int $flags = OCI_FETCHSTATEMENT_BY_COLUMN + OCI_ASSOC ) : int|false

Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab. Standardmäßig werden alle Zeilen zurückgeliefert.

Diese Funktion kann nur einmal für jede Abfrage, die mit oci_execute() ausgeführt wurde, aufgerufen werden.

Parameter-Liste

statement

Der Identifizierer eines gültigen OCI8-Ausdrucks, der von oci_parse() erzeugt und von oci_execute() oder einem REF CURSOR-Ausdruck verwendet wird.

output

Die Variable, die die zurückgegebenen Zeilen enthalten wird.

LOB-Spalten werden als Zeichenketten zurückgegeben, sofern Oracle die Umwandlung unterstützt.

Informationen, wie Daten und Typen abgerufen werden, sind der Dokumentation von oci_fetch_array() zu entnehmen.

skip

Die Anzahl der zu verwerfenden Anfangszeilen beim Abrufen des Ergebnisses. Standardwert ist 0, so dass von der ersten Zeile an zurückgegeben wird.

maxrows

Die Anzahl der zurückzugebenden Zeilen. Der Standardwert ist -1, was bedeutet dass alle Zeilen von skip + 1 an zurückgegeben werden.

flags

Der Parameter flags legt die Array-Struktur fest, und ob assoziative Arrays verwendet werden sollen.

Struktur-Modi für das oci_fetch_all()-Array
Konstante | Beschreibung
OCI_FETCHSTATEMENT_BY_ROW | Das äußere Array wird ein Unterarray pro Abfragezeile enthalten.
OCI_FETCHSTATEMENT_BY_COLUMN | Das äußere Array wird ein Unterarray pro Abfragespalte enthalten. Das ist der Standardwert.

Arrays können entweder nach Spaltennamen oder numerisch indexiert werden. Nur ein Index-Modus wird zurückgegeben.

Index-Modi für das oci_fetch_all()-Array
Konstante | Beschreibung
OCI_NUM | Numerische Indizes werden für das Array jeder Spalte verwendet.
OCI_ASSOC | Assoziative Indizes werden für das Array jeder Spalte verwendet. Das ist der Standardwert.

Der Additionsoperator "+" ist zu verwenden, um eine Kombination von Array-Struktur- und Index-Modi zu wählen.

Für Spaltennamen, die Groß- und Kleinschreibung nicht unterscheiden, was bei Oracle der Standard ist, werden Arrayschlüssel in Großschreibung verwendet. Spalten, die Groß- und Kleinschreibung unterscheiden, verwenden die genaue Schreibweise. var_dump() kann auf output angewendet werden, um die richtige Schreibweise für jede Abfrage zu prüfen.

Abfragen, die mehr als eine Spalte mit demselben Namen haben, sollten Spaltenaliase verwenden. Andernfalls wird nur eine der Spalten in einem assoziativen Array auftauchen.

Rückgabewerte

Gibt die Anzahl der Zeilen in output zurück, die 0 oder mehr sein kann. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 oci_fetch_all()-Beispiel

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res);

echo "$nrows Zeilen abgerufen<br>\n";
var_dump($res);

// die var_dump Ausgabe ist:
//    2 Zeilen abgerufen
//    array(2) {
//      ["POSTAL_CODE"]=>
//      array(2) {
//        [0]=>
//        string(6) "00989x"
//        [1]=>
//        string(6) "10934x"
//      }
//      ["CITY"]=>
//      array(2) {
//        [0]=>
//        string(4) "Rom"
//        [1]=>
//        string(6) "Venedig"
//      }
//    }

// ordentliche Ausgabe der Ergebnisse
echo "<table border='1'>\n";
foreach ($res as $col) {
    echo "<tr>\n";
    foreach ($col as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #2 oci_fetch_all()-Beispiel mit OCI_FETCHSTATEMENT_BY_ROW

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW);

echo "$nrows Zeilen abgerufen<br>\n";
var_dump($res);

// die Ausgabe ist:
//    2 Zeilen abgerufen
//    array(2) {
//      [0]=>
//      array(2) {
//        ["POSTAL_CODE"]=>
//        string(6) "00989x"
//        ["CITY"]=>
//        string(4) "Rom"
//      }
//      [1]=>
//      array(2) {
//        ["POSTAL_CODE"]=>
//        string(6) "10934x"
//        ["CITY"]=>
//        string(6) "Venedig"
//      }
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #3 oci_fetch_all() mit OCI_NUM

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW + OCI_NUM);

echo "$nrows Zeilen abgerufen<br>\n";
var_dump($res);

// die Ausgabe ist:
//    2 Zeilen abgerufen
//    array(2) {
//      [0]=>
//      array(2) {
//        [0]=>
//        string(6) "00989x"
//        [1]=>
//        string(4) "Rom"
//      }
//      [1]=>
//      array(2) {
//        [0]=>
//        string(6) "10934x"
//        [1]=>
//        string(6) "Venedig"
//      }
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

Die Verwendung von skip ist sehr ineffizient. All die zu überspringenden Zeilen sind in der Ergebnismenge, die von der Datenbank an PHP zurückgegeben wird. Dann werden sie verworfen. Es ist effizienter SQL zu nutzen, um den Offset und den Bereich der Zeilen in der Abfrage zu beschränken. Ein Beispiel kann der Dokumentation von oci_fetch_array() entnommen werden.

Hinweis:

Abfragen, die eine große Anzahl von Zeilen liefern, sind speichereffizienter, wenn eine Funktion wie oci_fetch_array(), die nur einzelne Zeilen abruft, verwendet wird.

Hinweis:

Bei Queries, die eine große Anzahl an Zeilen zurückliefern, kann die Laufzeit beträchtlich verbessert werden, indem man oci8.default_prefetch erhöht oder oci_set_prefetch() verwendet.

Hinweis:

Diese Funktion gibt keine Zeilen aus einer impliziten Ergebnismenge einer Oracle 12c-Datenbank zurück. Verwenden Sie stattdessen die Funktion oci_fetch_array().

Siehe auch

  • oci_fetch() - Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab
  • oci_fetch_array() - Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array
  • oci_fetch_assoc() - Liefert die nächste Zeile einer Abfrage als assoziatives Array
  • oci_fetch_object() - Liefert die nächste Zeile einer Abfrage als Objekt
  • oci_fetch_row() - Liefert die nächste Zeile einer Abfrage als numerisches Array
  • oci_set_prefetch() - Sets number of rows to be prefetched by queries


Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array

  • « oci_fetch_all
  • oci_fetch_assoc »
  • PHP Manual
  • OCI8 Funktionen
  • Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array

oci_fetch_array

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_array — Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array

Beschreibung

oci_fetch_array ( resource $statement , int $mode = ? ) : array

Gibt ein Array zurück, das die nächste Zeile der Ergebnismenge einer Abfrage enthält. Jedes Array-Element entspricht einer Spalte der Zeile. Diese Funktion wird üblicherweise in einer Schleife aufgerufen, bis sie false zurückgibt, was anzeigt, dass es keine weiteren Zeilen gibt.

Bezieht sich statement auf einen PL/SQL-Block, der implizite Ergebnismengen einer Oracle-Datenbank zurückgibt, dann werden Zeilen aller Mengen nacheinander abgerufen. Wurde statement von oci_get_implicit_resultset() zurückgegeben, dann wird nur die Untermenge der Zeilen für eine Kindabfrage zurückgegeben.

Für Details zur vom OCI8-Treiber durchgeführten Umsetzung von Datentypen siehe die vom Treiber unterstützen Datentypen.

Parameter-Liste

statement

Der Identifizierer eines gültigen OCI8-Ausdrucks, der von oci_parse() erzeugt und von oci_execute() oder einem REF CURSOR-Ausdruck verwendet wird.

Kann ebenfalls eine Anweisungskennung sein, die von oci_get_implicit_resultset() zurückgegeben wurde.

mode

Der optionale zweite Parameter kann eine beliebige Kombination aus dem folgenden Konstanten sein:

oci_fetch_array()-Modi
Konstante | Beschreibung
OCI_BOTH | Gibt ein Array mit sowohl assoziativen als auch numerischen Indizes zurück. Das ist dasselbe wie OCI_ASSOC + OCI_NUM, und ist das Standardverhalten.
OCI_ASSOC | Gibt ein assoziatives Array zurück.
OCI_NUM | Gibt ein numerisches Array zurück.
OCI_RETURN_NULLS | Erzeugt Elemente für null-Felder. Die Elementwerte sind PHP-null-Werte.
OCI_RETURN_LOBS | Gibt den Inhalt von LOBs statt der LOB-Kennungen zurück.

Der Standard-mode ist OCI_BOTH.

Der Additionsoperator "+" ist zu verwenden, um mehr als einen Modus auf einmal anzugeben.

Rückgabewerte

Gibt ein Array mit assoziativen und/oder numerischen Indizes zurück. Gibt es keine weiteren Zeilen in statement, wird false zurückgegeben.

Standardmäßig werden LOB-Spalten als LOB-Kennungen zurückgegeben.

DATE-Spalten werden als gemäß des aktuellen Datumsformats formatierte Zeichenketten zurückgegeben. Das Standardformat kann mit Oracle-Umgebungsvariablen wie NLS_LANG geändert werden, oder auch durch den zuvor ausgeführten Befehl ALTER SESSION SET NLS_DATE_FORMAT.

Die standardmäßigen Oracle-Spaltennamen, die nicht zwischen Groß- und Kleinschreibung unterscheiden, erzeugen Arrayschlüssel in Großbuchstaben. Spaltennamen, die zwischen Groß- und Kleinschreibung unterscheiden, verwenden die genaue Schreibweise. var_dump() kann auf das Ergebnisarray angewendet werden, um die richtige Schreibweise für jede Abfrage zu prüfen.

Der Tabellenname ist nicht im Arrayschlüssel enthalten. Enthält die Abfrage zwei unterschiedliche Spalten mit demselben Namen ist OCI_NUM zu verwenden, oder ein Spaltenalias sollte in der Abfrage definiert werden, um die Eindeutigkeit der Namen sicherzustellen; siehe Beispiel #7. Andernfalls wird nur eine der Spalten von PHP zurückgegeben.

Beispiele

Beispiel #1 oci_fetch_array() mit OCI_BOTH

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_BOTH)) != false) {
    // verwende Spaltennamen in Großschreibung für die assoziativen Arrayschlüssel
    echo $row[0] . " und " . $row['DEPARTMENT_ID']   . " sind dasselbe<br>\n";
    echo $row[1] . " und " . $row['DEPARTMENT_NAME'] . " sind dasselbe<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #2 oci_fetch_array() mit OCI_NUM

<?php

/*
  Vor der Ausführung ist die Tabelle zu erstellen:
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'Eine sehr lange Zeichenkette');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_NUM)) != false) {
    echo $row[0] . "<br>\n";
    echo $row[1]->read(15) . "<br>\n"; // dies gibt die ersten 15 Bytes von DESCRIPTION aus
}

// die Ausgabe ist:
//    1
//    Eine sehr lange

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #3 oci_fetch_array() mit OCI_ASSOC

<?php

/*
  Vor der Ausführung ist die Tabelle zu erstellen:
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'Eine sehr lange Zeichenkette');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
    echo $row['ID'] . "<br>\n";
    echo $row['DESCRIPTION']->read(15) . "<br>\n"; // dies gibt die ersten 15 Bytes von DESCRIPTION aus
}

// die Ausgabe ist:
//    1
//    Eine sehr lange

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #4 oci_fetch_array() mit OCI_RETURN_NULLS

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT 1, null FROM dual');
oci_execute($stid);
while (($row = oci_fetch_array ($stid, OCI_ASSOC)) != false) { // ignoriere NULL-Werte
    var_dump($row);
}

/*
Der obige Code gibt aus:
  array(1) {
    [1]=>
    string(1) "1"
  }
*/

$stid = oci_parse($conn, 'SELECT 1, null FROM dual');
oci_execute($stid);
while (($row = oci_fetch_array ($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) { // hole NULL-Werte
    var_dump($row);
}

/*
Der obige Code gibt aus:
  array(2) {
    [1]=>
    string(1) "1"
    ["NULL"]=>
    NULL
  }
*/

?>

Beispiel #5 oci_fetch_array() mit OCI_RETURN_LOBS

<?php

/*
  Vor der Ausführung ist die Tabelle zu erstellen:
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'Eine sehr lange Zeichenkette');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) != false) {
    echo $row['ID'] . "<br>\n";
    echo $row['DESCRIPTION'] . "<br>\n"; // dies enthält die gesamte DESCRIPTION
    // das Freigeben der großen Variable in einer Schleife vor dem zweiten Fetch
    // verringert die Spitzenspeicherbelegung von PHP
    unset($row);
}

// die Ausgabe ist:
//    1
//    Eine sehr lange Zeichenkette

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #6 oci_fetch_array() mit Spaltennamen, die zwischen Groß- und Kleinschreibung unterscheiden

<?php

/*
   Vor der Ausführung ist die Tabelle zu erstellen:
      CREATE TABLE mytab ("Name" VARCHAR2(20), city VARCHAR2(20));
      INSERT INTO mytab ("Name", city) values ('Chris', 'Melbourne');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'select * from mytab');
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);

// Da 'Name' als Spalte erstellt wurde, die zwischen Groß- und Kleinschreibung
// unterscheidet, muss genau dieselbe Schreibweise für den Arrayschlüssel
// verwendet werden. Allerding muss das groß geschriebene 'CITY' für den
// Spaltenschlüssel verwendet werden, der nicht zwischen Groß- und
// Kleinschreibung unterscheidet.
print $row['Name'] . "<br>\n";   //  gibt Chris aus
print $row['CITY'] . "<br>\n";   //  gibt Melbourne aus

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #7 oci_fetch_array() mit Spalten, die doppelte Namen haben

<?php

/*
  Vor der Ausführung ist die Tabelle zu erstellen:
      CREATE TABLE mycity (id NUMBER, name VARCHAR2(20));
      INSERT INTO mycity (id, name) values (1, 'Melbourne');
      CREATE TABLE mycountry (id NUMBER, name VARCHAR2(20));
      INSERT INTO mycountry (id, name) values (1, 'Australien');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT mycity.name, mycountry.name
        FROM mycity, mycountry
        WHERE mycity.id = mycountry.id';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
var_dump($row);

// die Ausgabe enthält nur ein "NAME"-Element:
//    array(1) {
//      ["NAME"]=>
//      string(9) "Australien"
//    }

// um einen sich wiederholenden Spaltennamen abzufragen, ist ein SQL-Spaltenalias
// wie "AS ctnm" zu verwenden:
$sql = 'SELECT mycity.name AS ctnm, mycountry.name
        FROM mycity, mycountry
        WHERE mycity.id = mycountry.id';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
var_dump($row);

// die Ausgabe enthält nun die beiden gewählten Spalten:
//    array(2) {
//      ["CTNM"]=>
//      string(9) "Melbourne"
//      ["NAME"]=>
//      string(9) "Australien"
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #8 oci_fetch_array() mit DATE-Spalten

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Lege das Datumsformat für diese Verbindung fest.
// Aus Effizienzgründen ist zu erwägen, das Format stattdessen in einem Trigger
// oder mit Umgebungsvariablen zu ändern.
$stid = oci_parse($conn, "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'");
oci_execute($stid);

$stid = oci_parse($conn, 'SELECT hire_date FROM employees WHERE employee_id = 188');
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
echo $row['HIRE_DATE'] . "<br>\n";  // gibt 1997-06-14 aus

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #9 oci_fetch_array() mit REF CURSOR

<?php
/*
  Erzeuge die PL/SQL gespeicherte Prozedur mit:

  CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
  BEGIN
    OPEN p1 FOR SELECT * FROM all_objects WHERE ROWNUM < 5000;
  END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'BEGIN myproc(:rc); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// führe den zurückgegebenen REF CURSOR aus, und lies
// von ihm wie mit einer Anweisungskennung
oci_execute($refcur);
echo "<table border='1'>\n";
while (($row = oci_fetch_array($refcur, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #10 Seitenweise Darstellung mit oci_fetch_array() unter Verwendung einer LIMIT-Klausel

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// ermittle die Datenbankversion
preg_match('/Release ([0-9]+)\./', oci_server_version($conn), $matches);
$oracleversion = $matches[1];

// dies ist die Abfrage, durch die seitenweise geblättert werden soll
$sql = 'SELECT city, postal_code FROM locations ORDER BY city';

if ($oracleversion >= 12) {
    // verwende die OFFSET / FETCH NEXT-Syntax von Oracle 12c
    $sql = $sql . ' OFFSET :offset ROWS FETCH NEXT :numrows ROWS ONLY';
} else {
    // Ältere Oracle-Versionen benötigten eine verschachtelte Abfrage, die eine
    // Untermenge von $sql auswählt. Oder, wenn die SQL-Anweisung während der
    // Programmentwicklung bekannt ist, ist die Verwendung einer row_number()
    // Funktion in Betracht zu ziehen. In Produktionsumgebungen ist Sorge zu
    // tragen, dass SQL-Injection-Probleme durch Zeichenkettenverknüpfung
    // vermieden werden.
    $sql = "SELECT * FROM (SELECT a.*, ROWNUM AS my_rnum
                           FROM ($sql) a
                           WHERE ROWNUM <= :offset + :numrows)
            WHERE my_rnum > :offset";
}

$offset  = 0;  // lasse so viele Zeilen aus
$numrows = 5;  // gib 5 Zeilen zurück
$stid = oci_parse($conn, $sql);
oci_bind_by_name($stid, ':numrows', $numrows);
oci_bind_by_name($stid, ':offset', $offset);
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) != false) {
    echo $row['CITY'] . " " . $row['POSTAL_CODE'] . "<br>\n";
}

// die Ausgabe ist:
//    Beijing 190518
//    Bern 3095
//    Bombay 490231
//    Geneva 1730
//    Hiroshima 6823

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #11 oci_fetch_array() mit impliziten Ergebnismengen einer Oracle-Datenbank

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Benötigt OCI8 2.0 (oder höher) und Oracle Database 12c (oder höher)
// siehe auch oci_get_implicit_resultset()
$sql = 'DECLARE
           c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

// Beachte: oci_fetch_all und oci_fetch() können so nicht verwendet werden
echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

// die Ausgabe ist:
//    Beijing 190518
//    Bern    3095
//    Bombay  490231
//    CN
//    CH
//    IN

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

Assoziative Arrayschlüssel müssen für Standard-Oracle-Spalten, die mit Namen ohne Berücksichtigung der Groß- und Kleinschreibung erstellt wurden, in Großbuchstaben sein.

Hinweis:

Bei Queries, die eine große Anzahl an Zeilen zurückliefern, kann die Laufzeit beträchtlich verbessert werden, indem man oci8.default_prefetch erhöht oder oci_set_prefetch() verwendet.

Hinweis:

Die Funktion oci_fetch_array() ist unwesentlich langsamer als oci_fetch_assoc() oder oci_fetch_row(), ist aber flexibler.

Siehe auch

  • oci_fetch() - Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab
  • oci_fetch_all() - Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab
  • oci_fetch_assoc() - Liefert die nächste Zeile einer Abfrage als assoziatives Array
  • oci_fetch_object() - Liefert die nächste Zeile einer Abfrage als Objekt
  • oci_fetch_row() - Liefert die nächste Zeile einer Abfrage als numerisches Array
  • oci_set_prefetch() - Sets number of rows to be prefetched by queries


Liefert die nächste Zeile einer Abfrage als assoziatives Array

  • « oci_fetch_array
  • oci_fetch_object »
  • PHP Manual
  • OCI8 Funktionen
  • Liefert die nächste Zeile einer Abfrage als assoziatives Array

oci_fetch_assoc

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_assoc — Liefert die nächste Zeile einer Abfrage als assoziatives Array

Beschreibung

oci_fetch_assoc ( resource $statement ) : array

Gibt ein assoziatives Array zurück, das die nächste Zeile der Ergebnismenge einer Abfrage enthält. Jedes Array-Element entspricht einer Spalte der Zeile. Diese Funktion wird üblicherweise in einer Schleife aufgerufen bis sie false zurückgibt, was anzeigt, dass es keine weitere Zeilen gibt.

Ein oci_fetch_assoc()-Aufruf ist identisch mit einem oci_fetch_array()-Aufruf und OCI_ASSOC + OCI_RETURN_NULLS.

Parameter-Liste

statement

Der Identifizierer eines gültigen OCI8-Ausdrucks, der von oci_parse() erzeugt und von oci_execute() oder einem REF CURSOR-Ausdruck verwendet wird.

Rückgabewerte

Gibt ein assoziatives Array zurück. Gibt es keine weiteren Zeilen für das statement, dann wird false zurückgegeben.

Beispiele

Beispiel #1 oci_fetch_assoc()-Beispiel

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_assoc($stid)) != false) {
    echo $row['DEPARTMENT_ID'] . " " . $row['DEPARTMENT_NAME'] . "<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

Weitere Beispiele für das Abrufen von Zeilen sind der Dokumentation von oci_fetch_array() zu entnehmen.

Siehe auch

  • oci_fetch() - Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab
  • oci_fetch_all() - Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab
  • oci_fetch_array() - Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array
  • oci_fetch_object() - Liefert die nächste Zeile einer Abfrage als Objekt
  • oci_fetch_row() - Liefert die nächste Zeile einer Abfrage als numerisches Array


Liefert die nächste Zeile einer Abfrage als Objekt

  • « oci_fetch_assoc
  • oci_fetch_row »
  • PHP Manual
  • OCI8 Funktionen
  • Liefert die nächste Zeile einer Abfrage als Objekt

oci_fetch_object

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_object — Liefert die nächste Zeile einer Abfrage als Objekt

Beschreibung

oci_fetch_object ( resource $statement ) : object

Gibt ein Objekt zurück, das die nächste Zeile der Ergebnismenge einer Abfrage enthält. Jede Eigenschaft des Objekts entspricht einer Spalte der Zeile. Diese Funktion wird üblicherweise in einer Schleife aufgerufen bis sie false zurückgibt, was anzeigt, dass es keine weitere Zeilen gibt.

Für Details zur vom OCI8-Treiber durchgeführten Umsetzung von Datentypen siehe die vom Treiber unterstützen Datentypen.

Parameter-Liste

statement

Der Identifizierer eines gültigen OCI8-Ausdrucks, der von oci_parse() erzeugt und von oci_execute() oder einem REF CURSOR-Ausdruck verwendet wird.

Rückgabewerte

Gibt ein Objekt zurück. Jede Eigenschaft des Objekts entspricht einer Spalte der Zeile. Gibt es keine weiteren Zeilen in statement, dann wird false zurückgegeben.

Jegliche LOB-Spalten werden als LOB-Kennungen zurückgegeben.

DATE-Spalten werden als gemäß des aktuellen Datumsformats formatierte Zeichenketten zurückgegeben. Das Standardformat kann mit Oracle-Umgebungsvariablen wie NLS_LANG geändert werden, oder auch durch den zuvor ausgeführten Befehl ALTER SESSION SET NLS_DATE_FORMAT.

Die standardmäßigen Oracle-Spaltennamen, die nicht zwischen Groß- und Kleinschreibung unterscheiden, erzeugen Eigenschaftsnamen in Großbuchstaben. Spaltennamen, die zwischen Groß- und Kleinschreibung unterscheiden, verwenden die genaue Schreibweise. var_dump() kann auf das Ergebnisobjekt angewendet werden, um die richtige Schreibweise für den Eigenschaftszugriff zu prüfen.

Die Eigenschaftswerte sind null für jeglche NULL-Datenfelder.

Beispiele

Beispiel #1 oci_fetch_object()-Beispiel

<?php

/*
  Vor der Ausführung ist die Tabelle zu erstellen:
    CREATE TABLE mytab (id NUMBER, description VARCHAR2(30));
    INSERT INTO mytab (id, description) values (1, 'Currywurst mit Pommes');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
    // verwende Eigenschaftsnamen in Großschrift für jede Standard-Oracle-Spalte
    echo $row->ID . "<br>\n";
    echo $row->DESCRIPTION . "<br>\n";
}

// Ausgabe:
//    1
//    Currywurst mit Pommes

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #2 oci_fetch_object() mit Spaltennamen, die zwischen Groß- und Kleinschreibung unterscheiden.

<?php

/*
  Vor der Ausführung ist die Tabelle mit Spaltennamen, die zwischen Groß- und
  Kleinschreibung unterscheiden, zu erstellen:
    CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
    INSERT INTO mytab (id, "MyDescription") values (1, 'Eiskaffee');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, "MyDescription" FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
    // verwende Eigenschaftsnamen in Großschrift für jede Standard-Oracle-Spalte
    echo $row->ID . "<br>\n";
    // verwende die genaue Schreibweise für Spaltennamen, die zwischen Groß-
    // und Kleinschreibung unterscheiden
    echo $row->MyDescription . "<br>\n";
}

// Ausgabe:
//    1
//    Eiskaffee

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #3 oci_fetch_object() mit LOBs

<?php

/*
  Vor der Ausführung ist die Tabelle zu erstellen:
    CREATE TABLE mytab (id NUMBER, description CLOB);
    INSERT INTO mytab (id, description) values (1, 'Eine sehr lange Zeichenkette');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
    echo $row->ID . "<br>\n";
    // das folgende gibt die ersten 15 Bytes von DESCRIPTION aus
    echo $row->DESCRIPTION->read(15) . "<br>\n";
}

// Ausgabe:
//    1
//    Eine sehr lange

oci_free_statement($stid);
oci_close($conn);

?>

Siehe auch

  • oci_fetch() - Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab
  • oci_fetch_all() - Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab
  • oci_fetch_assoc() - Liefert die nächste Zeile einer Abfrage als assoziatives Array
  • oci_fetch_array() - Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array
  • oci_fetch_row() - Liefert die nächste Zeile einer Abfrage als numerisches Array


Liefert die nächste Zeile einer Abfrage als numerisches Array

  • « oci_fetch_object
  • oci_fetch »
  • PHP Manual
  • OCI8 Funktionen
  • Liefert die nächste Zeile einer Abfrage als numerisches Array

oci_fetch_row

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_row — Liefert die nächste Zeile einer Abfrage als numerisches Array

Beschreibung

oci_fetch_row ( resource $statement ) : array

Gibt ein numerisch indexiertes Array zurück, das die nächste Zeile der Ergebnismenge einer Abfrage enthält. Jedes Array-Element entspricht einer Spalte der Zeile. Diese Funktion wird üblicherweise in einer Schleife aufgerufen bis sie false zurückgibt, was anzeigt, dass es keine weitere Zeilen gibt.

Ein oci_fetch_row()-Aufruf ist identisch mit einem oci_fetch_array()-Aufruf und OCI_NUM + OCI_RETURN_NULLS.

Parameter-Liste

statement

Der Identifizierer eines gültigen OCI8-Ausdrucks, der von oci_parse() erzeugt und von oci_execute() oder einem REF CURSOR-Ausdruck verwendet wird.

Rückgabewerte

Gibt ein numerisch indexiertes Array zurück. Gibt es keine weiteren Zeilen für das statement, dann wird false zurückgegeben.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

Beispiele

Beispiel #1 oci_fetch_row()-Beispiel

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_row($stid)) != false) {
    echo $row[0] . " " . $row[1] . "<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

Weitere Beispiele für das Abrufen von Zeilen sind der Dokumentation von oci_fetch_array() zu entnehmen.

Siehe auch

  • oci_fetch() - Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab
  • oci_fetch_all() - Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab
  • oci_fetch_array() - Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array
  • oci_fetch_assoc() - Liefert die nächste Zeile einer Abfrage als assoziatives Array
  • oci_fetch_object() - Liefert die nächste Zeile einer Abfrage als Objekt


Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab

  • « oci_fetch_row
  • oci_field_is_null »
  • PHP Manual
  • OCI8 Funktionen
  • Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab

oci_fetch

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch — Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab

Beschreibung

oci_fetch ( resource $statement ) : bool

Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab, auf den entweder mit oci_result() zugegriffen werden kann, oder unter Verwendung von Variablen, die zuvor mit oci_define_by_name() definiert wurden.

Allgemeine Information zum Abrufen von Daten sind der Dokumentation von oci_fetch_array() zu entnehmen.

Parameter-Liste

statement

Der Identifizierer eines gültigen OCI8-Ausdrucks, der von oci_parse() erzeugt und von oci_execute() oder einem REF CURSOR-Ausdruck verwendet wird.

Rückgabewerte

Gibt im Erfolgsfall true zurück, false wird zurückgegeben, wenn keine weiteren Zeilen mehr in statement vorhanden sind.

Beispiele

Beispiel #1 oci_fetch() mit definierten Variablen

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);

// Die Definitionen MÜSSEN vor der Ausführung erfolgen
oci_define_by_name($stid, 'LOCATION_ID', $locid);
oci_define_by_name($stid, 'CITY', $city);

oci_execute($stid);

// Jedes Abrufen füllt die zuvor definierten Variablen mit den Daten der
// nächsten Zeile
while (oci_fetch($stid)) {
    echo "Standort-ID $locid ist $city<br>\n";
}

// Ausgabe:
//   Standort-ID 1000 ist Rom
//   Standort-ID 1100 ist Venedig

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #2 oci_fetch() mit oci_result()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (oci_fetch($stid)) {
    echo oci_result($stid, 'LOCATION_ID') . " ist ";
    echo oci_result($stid, 'CITY') . "<br>\n";
}

// Ausgabe:
//   1000 ist Rom
//   1100 ist Venedig

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

Diese Funktion gibt keine Zeilen aus einer impliziten Ergebnismenge einer Oracle-Datenbank zurück. Verwenden Sie stattdessen die Funktion oci_fetch_array().

Siehe auch

  • oci_define_by_name() - Associates a PHP variable with a column for query fetches
  • oci_fetch_all() - Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab
  • oci_fetch_array() - Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array
  • oci_fetch_assoc() - Liefert die nächste Zeile einer Abfrage als assoziatives Array
  • oci_fetch_object() - Liefert die nächste Zeile einer Abfrage als Objekt
  • oci_fetch_row() - Liefert die nächste Zeile einer Abfrage als numerisches Array
  • oci_result() - Returns field's value from the fetched row


Checks if a field in the currently fetched row is null

  • « oci_fetch
  • oci_field_name »
  • PHP Manual
  • OCI8 Funktionen
  • Checks if a field in the currently fetched row is null

oci_field_is_null

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_is_null — Checks if a field in the currently fetched row is null

Beschreibung

oci_field_is_null ( resource $statement , mixed $field ) : bool

Checks if the given field from the current row of statement is null.

Parameter-Liste

statement

A valid OCI statement identifier.

field

Can be the field's index (1-based) or name.

Rückgabewerte

Returns true if field is null, false otherwise.

Beispiele

Beispiel #1 oci_field_name() example

<?php

// Create the table with:
//   CREATE TABLE mytab (c1 NUMBER);
//   INSERT INTO mytab VALUES (1);
//   INSERT INTO mytab VALUES (NULL);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) != false) {
    $ncols = oci_num_fields($stid);
    for ($col = 1; $col <= $ncols; $col++) {
        var_dump(oci_field_is_null($stid, $col));
    }
}

// Outputs:
//    bool(false)
//    bool(true)

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

In PHP versions before 5.0.0 you must use ocicolumnisnull() instead. This name still can be used, it was left as alias of oci_field_is_null() for downwards compatability. This, however, is deprecated and not recommended.


Returns the name of a field from the statement

  • « oci_field_is_null
  • oci_field_precision »
  • PHP Manual
  • OCI8 Funktionen
  • Returns the name of a field from the statement

oci_field_name

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_name — Returns the name of a field from the statement

Beschreibung

oci_field_name ( resource $statement , mixed $field ) : string

Returns the name of the field.

Parameter-Liste

statement

A valid OCI statement identifier.

field

Can be the field's index (1-based) or name.

Rückgabewerte

Returns the name as a string, or false on errors.

Beispiele

Beispiel #1 oci_field_name() example

<?php

// Create the table with:
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
//                       clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stid, $i);
    $column_type  = oci_field_type($stid, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "</tr>\n";
}

echo "</table>\n";

// Outputs:
//    Name           Type
//    NUMBER_COL    NUMBER
//    VARCHAR2_COL  VARCHAR2
//    CLOB_COL      CLOB
//    DATE_COL      DATE

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

In PHP versions before 5.0.0 you must use ocicolumnname() instead. This name still can be used, it was left as alias of oci_field_name() for downwards compatability. This, however, is deprecated and not recommended.

Siehe auch

  • oci_num_fields() - Returns the number of result columns in a statement
  • oci_field_type() - Returns a field's data type name
  • oci_field_size() - Returns field's size


Tell the precision of a field

  • « oci_field_name
  • oci_field_scale »
  • PHP Manual
  • OCI8 Funktionen
  • Tell the precision of a field

oci_field_precision

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_precision — Tell the precision of a field

Beschreibung

oci_field_precision ( resource $statement , mixed $field ) : int

Returns precision of the field.

For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is NUMBER. Else it's NUMBER(precision, scale).

Parameter-Liste

statement

A valid OCI statement identifier.

field

Can be the field's index (1-based) or name.

Rückgabewerte

Returns the precision as an integer, or false on errors.

Beispiele

Beispiel #1 oci_field_precision() Example

<?php

// Create the table with:
//   CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3));

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
    echo oci_field_name($stid, $i) . " "
        . oci_field_precision($stid, $i) . " "
        . oci_field_scale($stid, $i) . "<br>\n";
}

// Outputs:
//   C1    0 -127
//   C2  126 -127
//   C3    4    0
//   C4    5    3

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

In PHP versions before 5.0.0 you must use ocicolumnprecision() instead. This name still can be used, it was left as alias of oci_field_precision() for downwards compatability. This, however, is deprecated and not recommended.

Siehe auch

  • oci_field_scale() - Tell the scale of the field
  • oci_field_type() - Returns a field's data type name


Tell the scale of the field

  • « oci_field_precision
  • oci_field_size »
  • PHP Manual
  • OCI8 Funktionen
  • Tell the scale of the field

oci_field_scale

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_scale — Tell the scale of the field

Beschreibung

oci_field_scale ( resource $statement , mixed $field ) : int

Returns the scale of the column with field index.

For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is NUMBER. Else it's NUMBER(precision, scale).

Parameter-Liste

statement

A valid OCI statement identifier.

field

Can be the field's index (1-based) or name.

Rückgabewerte

Returns the scale as an integer, or false on errors.

Beispiele

Beispiel #1 oci_field_scale() Example

<?php

// Create the table with:
//   CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3));

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
    echo oci_field_name($stid, $i) . " "
        . oci_field_precision($stid, $i) . " "
        . oci_field_scale($stid, $i) . "<br>\n";
}

// Outputs:
//   C1    0 -127
//   C2  126 -127
//   C3    4    0
//   C4    5    3

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

In PHP versions before 5.0.0 you must use ocicolumnscale() instead. This name still can be used, it was left as alias of oci_field_scale() for downwards compatability. This, however, is deprecated and not recommended.

Siehe auch

  • oci_field_precision() - Tell the precision of a field
  • oci_field_type() - Returns a field's data type name


Returns field's size

  • « oci_field_scale
  • oci_field_type_raw »
  • PHP Manual
  • OCI8 Funktionen
  • Returns field's size

oci_field_size

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_size — Returns field's size

Beschreibung

oci_field_size ( resource $statement , mixed $field ) : int

Returns the size of a field.

Parameter-Liste

statement

A valid OCI statement identifier.

field

Can be the field's index (1-based) or name.

Rückgabewerte

Returns the size of a field in bytes, or false on errors.

Beispiele

Beispiel #1 oci_field_size() example

<?php

// Create the table with:
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
//                       clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stid, $i);
    $column_type  = oci_field_type($stid, $i);
    $column_size  = oci_field_size($stid, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "<td>$column_size</td>";
    echo "</tr>\n";
}

echo "</table>\n";

// Outputs:
//    Name           Type       Length
//    NUMBER_COL    NUMBER        22
//    VARCHAR2_COL  VARCHAR2       1
//    CLOB_COL      CLOB        4000
//    DATE_COL      DATE           7

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

In PHP versions before 5.0.0 you must use ocicolumnsize() instead. This name still can be used, it was left as alias of oci_field_size() for downwards compatability. This, however, is deprecated and not recommended.

Siehe auch

  • oci_num_fields() - Returns the number of result columns in a statement
  • oci_field_name() - Returns the name of a field from the statement


Tell the raw Oracle data type of the field

  • « oci_field_size
  • oci_field_type »
  • PHP Manual
  • OCI8 Funktionen
  • Tell the raw Oracle data type of the field

oci_field_type_raw

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_type_raw — Tell the raw Oracle data type of the field

Beschreibung

oci_field_type_raw ( resource $statement , mixed $field ) : int

Returns Oracle's raw "SQLT" data type of the field.

If you want a field's type name, then use oci_field_type() instead.

Parameter-Liste

statement

A valid OCI statement identifier.

field

Can be the field's index (1-based) or name.

Rückgabewerte

Returns Oracle's raw data type as a number, or false on errors.

Beispiele

Beispiel #1 oci_field_type_raw() Example

<?php

// Create the table with:
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1), clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'select * from mytab');
oci_execute($stid, OCI_DESCRIBE_ONLY);  // Use OCI_DESCRIBE_ONLY if not fetching rows
$n = oci_num_fields($stid);
for ($i = 1; $i <= $n; ++$i) {
    echo oci_field_name($stid, $i) . " is raw type: " . oci_field_type_raw($stid, $i) . "<br>\n";
}

// Output is:
//    NUMBER_COL is raw type: 2
//    VARCHAR2_COL is raw type: 1
//    CLOB_COL is raw type: 112
//    DATE_COL is raw type: 12

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

In PHP versions before 5.0.0 you must use ocicolumntyperaw() instead. This name still can be used, it was left as alias of oci_field_type_raw() for downwards compatability. This, however, is deprecated and not recommended.


Returns a field's data type name

  • « oci_field_type_raw
  • oci_free_descriptor »
  • PHP Manual
  • OCI8 Funktionen
  • Returns a field's data type name

oci_field_type

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_type — Returns a field's data type name

Beschreibung

oci_field_type ( resource $statement , mixed $field ) : mixed

Returns a field's data type name.

Parameter-Liste

statement

A valid OCI statement identifier.

field

Can be the field's index (1-based) or name.

Rückgabewerte

Returns the field data type as a string, or false on errors.

Beispiele

Beispiel #1 oci_field_type() example

<?php

// Create the table with:
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
//                       clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stid, $i);
    $column_type  = oci_field_type($stid, $i);
    $column_size  = oci_field_size($stid, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "<td>$column_size</td>";
    echo "</tr>\n";
}

echo "</table>\n";

// Outputs:
//    Name           Type       Length
//    NUMBER_COL    NUMBER        22
//    VARCHAR2_COL  VARCHAR2       1
//    CLOB_COL      CLOB        4000
//    DATE_COL      DATE           7

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

In PHP versions before 5.0.0 you must use ocicolumntype() instead. This name still can be used, it was left as alias of oci_field_type() for downwards compatability. This, however, is deprecated and not recommended.

Siehe auch

  • oci_num_fields() - Returns the number of result columns in a statement
  • oci_field_name() - Returns the name of a field from the statement
  • oci_field_size() - Returns field's size


Frees a descriptor

  • « oci_field_type
  • oci_free_statement »
  • PHP Manual
  • OCI8 Funktionen
  • Frees a descriptor

oci_free_descriptor

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_free_descriptor — Frees a descriptor

Beschreibung

oci_free_descriptor ( resource $descriptor ) : bool

Frees a descriptor allocated by oci_new_descriptor().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

This function is commonly used as a method OCILOB::free.

Siehe auch

  • OCILOB::free


Gibt alle verknüpften Ressourcen eines Statements oder Zeigers frei.

  • « oci_free_descriptor
  • oci_get_implicit_resultset »
  • PHP Manual
  • OCI8 Funktionen
  • Gibt alle verknüpften Ressourcen eines Statements oder Zeigers frei.

oci_free_statement

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_free_statement — Gibt alle verknüpften Ressourcen eines Statements oder Zeigers frei.

Beschreibung

oci_free_statement ( resource $statement ) : bool

Gibt alle verknüpften Ressourcen eines Oracle-Statements oder -Zeigers frei, die durch das Ergebnis von oci_parse() zugewiesen oder von Oracle eingeholt wurden.

Parameter-Liste

statement

Ein gültiger Zeiger auf ein OCI-Statement.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets

  • « oci_free_statement
  • oci_lob_copy »
  • PHP Manual
  • OCI8 Funktionen
  • Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets

oci_get_implicit_resultset

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL OCI8 >= 2.0.0)

oci_get_implicit_resultset — Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets

Beschreibung

oci_get_implicit_resultset ( resource $statement ) : resource

Used to fetch consectutive sets of query results after the execution of a stored or anonymous Oracle PL/SQL block where that block returns query results with the Oracle Database 12 (or later) DBMS_SQL.RETURN_RESULT PL/SQL function. This allows PL/SQL blocks to easily return query results.

The child statement can be used with any of the OCI8 fetching
functions: oci_fetch(), oci_fetch_all(),
oci_fetch_array(), oci_fetch_object(),
oci_fetch_assoc() or oci_fetch_row()

Child statements inherit their parent statement's prefetch value, or it can be explicitly set with oci_set_prefetch().

Parameter-Liste

statement

A valid OCI8 statement identifier created by oci_parse() and executed by oci_execute(). The statement identifier may or may not be associated with a SQL statement that returns Implicit Result Sets.

Rückgabewerte

Returns a statement handle for the next child statement available on statement. Returns false when child statements do not exist, or all child statements have been returned by previous calls to oci_get_implicit_resultset().

Beispiele

Beispiel #1 Fetching Implicit Result Sets in a loop

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
            c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (($stid_c = oci_get_implicit_resultset($stid))) {
    echo "<h2>New Implicit Result Set:</h2>\n";
    echo "<table>\n";
    while (($row = oci_fetch_array($stid_c, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
        echo "<tr>\n";
        foreach ($row as $item) {
            echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;")."</td>\n";
        }
        echo "</tr>\n";
    }
    echo "</table>\n";
}

// Output is:
//    New Implicit Result Set:
//     Beijing 190518
//     Bern    3095
//     Bombay  490231
//    New Implicit Result Set:
//     CN
//     CH
//     IN

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #2 Getting child statement handles individually

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
            c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

$stid_1 = oci_get_implicit_resultset($stid);
$stid_2 = oci_get_implicit_resultset($stid);

$row = oci_fetch_array($stid_1, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
$row = oci_fetch_array($stid_2, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
$row = oci_fetch_array($stid_1, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
$row = oci_fetch_array($stid_2, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);

// Output is:
//    array(2) {
//      ["CITY"]=>
//      string(7) "Beijing"
//      ["POSTAL_CODE"]=>
//      string(6) "190518"
//    }
//    array(1) {
//      ["COUNTRY_ID"]=>
//      string(2) "CN"
//    }
//    array(2) {
//      ["CITY"]=>
//      string(4) "Bern"
//      ["POSTAL_CODE"]=>
//      string(4) "3095"
//    }
//    array(1) {
//      ["COUNTRY_ID"]=>
//      string(2) "CH"
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #3 Explicitly setting the Prefetch Count

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
            c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

$stid_c = oci_get_implicit_resultset($stid);
oci_set_prefetch($stid_c, 200);   // Set the prefetch before fetching from the child statement
echo "<table>\n";
while (($row = oci_fetch_array($stid_c, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #4 Implicit Result Set example without using oci_get_implicit_resultset()

All results from all queries are returned consecutively.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'DECLARE
            c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

// Note: oci_fetch_all and oci_fetch() cannot be used in this manner
echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

// Output is:
//    Beijing 190518
//    Bern 3095
//    Bombay 490231
//    CN
//    CH
//    IN

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

Bei Queries, die eine große Anzahl an Zeilen zurückliefern, kann die Laufzeit beträchtlich verbessert werden, indem man oci8.default_prefetch erhöht oder oci_set_prefetch() verwendet.


Copies large object

  • « oci_get_implicit_resultset
  • oci_lob_is_equal »
  • PHP Manual
  • OCI8 Funktionen
  • Copies large object

oci_lob_copy

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_lob_copy — Copies large object

Beschreibung

oci_lob_copy ( OCILob $lob_to , OCILob $lob_from , int $length = 0 ) : bool

Copies a large object or a part of a large object to another large object. Old LOB-recipient data will be overwritten.

If you need to copy a particular part of a LOB to a particular position of a LOB, use OCILob::seek() to move LOB internal pointers.

Parameter-Liste

lob_to

The destination LOB.

lob_from

The copied LOB.

length

Indicates the length of data to be copied.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

The OCILob class was called OCI-Lob prior to PHP 8 and PECL OCI8 3.0.0.


Compares two LOB/FILE locators for equality

  • « oci_lob_copy
  • oci_new_collection »
  • PHP Manual
  • OCI8 Funktionen
  • Compares two LOB/FILE locators for equality

oci_lob_is_equal

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_lob_is_equal — Compares two LOB/FILE locators for equality

Beschreibung

oci_lob_is_equal ( OCI-Lob $lob1 , OCI-Lob $lob2 ) : bool

Compares two LOB/FILE locators.

Parameter-Liste

lob1

A LOB identifier.

lob2

A LOB identifier.

Rückgabewerte

Returns true if these objects are equal, false otherwise.

Anmerkungen

Hinweis:

The OCILob class was called OCI-Lob prior to PHP 8 and PECL OCI8 3.0.0.


Allocates new collection object

  • « oci_lob_is_equal
  • oci_new_connect »
  • PHP Manual
  • OCI8 Funktionen
  • Allocates new collection object

oci_new_collection

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_collection — Allocates new collection object

Beschreibung

oci_new_collection ( resource $connection , string $tdo , string $schema = null ) : OCICollection

Allocates a new collection object.

Parameter-Liste

connection

An Oracle connection identifier, returned by oci_connect() or oci_pconnect().

tdo

Should be a valid named type (uppercase).

schema

Should point to the scheme, where the named type was created. The name of the current user is the default value.

Rückgabewerte

Returns a new OCICollection object or false on error.

Anmerkungen

Hinweis:

The OCICollection class was called OCI-Collection prior to PHP 8 and OCI8 3.0.0.

Hinweis:

In PHP versions before 5.0.0 you must use ocinewcollection() instead. This name still can be used, it was left as alias of oci_new_collection() for downwards compatability. This, however, is deprecated and not recommended.


Connect to the Oracle server using a unique connection

  • « oci_new_collection
  • oci_new_cursor »
  • PHP Manual
  • OCI8 Funktionen
  • Connect to the Oracle server using a unique connection

oci_new_connect

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_connect — Connect to the Oracle server using a unique connection

Beschreibung

oci_new_connect ( string $username , string $password , string $connection_string = ? , string $character_set = ? , int $session_mode = ? ) : resource

Establishes a new connection to an Oracle server and logs on.

Unlike oci_connect() and oci_pconnect(), oci_new_connect() does not cache connections and will always return a brand-new freshly opened connection handle. This is useful if your application needs transactional isolation between two sets of queries.

Parameter-Liste

username

The Oracle user name.

password

The password for username.

connection_string

Beinhaltet die Oracle-Instanz, mit der verbunden werden soll. Dies kann eine » Easy-Connect-Zeichenkette, ein Connect-Name aus der Datei tnsnames.ora oder der Name einer lokalen Oracle-Instanz sein.

Wenn dies nicht angegebe wird, verwendet PHP Umgebungsvariablen wie TWO_TASK (unter Linux), LOCAL (unter Windows) oder ORACLE_SID um die Oracle-Instanz zu ermitteln, mit der verbunden werden soll.

Um die benannte Easy Connect Methode zu verwenden, muss PHP gegen die Clientbibliotheken von Oracle 10g oder höher gelinkt sein. Die Easy-Connect-Zeichenkette für Oracle 10g hat den Aufbau: [//]host_name[:port][/service_name]. Für Oracle 11g ist die Syntax: [//]host_name[:port][/service_name][:server_type][/instance_name]. Weitere Optionen wurden mit Oracle 19c eingeführt, darunter die timeout- und die keep-alive-Einstellungen. Siehe dazu die Oracle-Dokumentation. Die Servicenamen können ermittelt werden, indem man das Oracle-Hilfswerkzeug lsnrctl status auf dem Datenbankserver ausführt.

Die Datei tnsnames.ora kann sich im Oracle Net Suchpfad befinden, welcher /der/pfad/zu/instantclient/network/admin, $ORACLE_HOME/network/admin sowie /etc beinhaltet. Alternativ kann TNS_ADMIN so gesetzt werden, dass $TNS_ADMIN/tnsnames.ora gelesen wird. Es muss sichergestellt sein, dass der Webserver eine Leseberechtigung für die Datei besitzt.

character_set

Bestimmt den Zeichensatz, der von den Oracle Client Bibliotheken verwendet wird. Dieser Zeichensatz muss nicht dem von der Datenbank verwendeten Zeichensatz entsprechen. Wenn diese nicht übereinstimmen, wird Oracle bestmöglich versuchen, die Daten in den Datenbankzeichensatz zu übersetzen. Abhängig von den Zeichensätzen kann dies zu unbrauchbaren Ergebnissen führen. Diese Konvertierung führt auch zu einem erhöhten Zeitbedarf.

Falls nicht angegeben, werden die Oracle Client Bibliotheken versuchen, den Zeichensatz aus der Umgebungsvariablen NLS_LANG auszulesen.

Die Übergabe dieses Parameters verringert die Zeit für den Verbindungsaufbau.

session_mode

Dieser Parameter ist seit PHP 5 (PECL OCI8 1.1) verfügbar und akzeptiert die folgenden Werte: OCI_DEFAULT, OCI_SYSOPER und OCI_SYSDBA. Falls entweder OCI_SYSOPER oder OCI_SYSDBA angegeben wurden wird diese Funktion versuchen die priviligierte Verbindung mit externen Credentials aufzubauen. Um diese einzuschalten muss man oci8.privileged_connect auf On setzen.

PHP 5.3 (PECL OCI8 1.3.4) hat den Wert OCI_CRED_EXT eingeführt. Dies konfiguriert Oracle dazu eine externe oder Os-Authentifizierung vorzunehmen, welche in der Datenbank konfiguriert werden muss. Der Schalter OCI_CRED_EXT kann nur mit dem Benutzernamen "/" und einem leeren Passwort verwendet werden. oci8.privileged_connect kann entweder On oder Off sein.

OCI_CRED_EXT kann mit OCI_SYSOPER oder OCI_SYSDBA kombiniert werden.

OCI_CRED_EXT ist auf Windows-Systemen aus sicherheitsgründen nicht unterstützt.

Rückgabewerte

Returns a connection identifier or false on error.

Beispiele

The following demonstrates how you can separate connections.

Beispiel #1 oci_new_connect() example

<?php

// create table mytab (mycol number);

function query($name, $c)
{
    echo "Querying $name\n";
    $s = oci_parse($c, "select * from mytab");
    oci_execute($s, OCI_NO_AUTO_COMMIT);
    $row = oci_fetch_array($s, OCI_ASSOC);
    if (!$row) {
        echo "No rows\n";
    } else {
        do {
            foreach ($row as $item)
                echo $item . " ";
            echo "\n";
        } while (($row = oci_fetch_array($s, OCI_ASSOC)) != false);
    }
}

$c1 = oci_connect("hr", "welcome", "localhost/orcl");
$c2 = oci_new_connect("hr", "welcome", "localhost/orcl");

$s = oci_parse($c1, "insert into mytab values(1234)");
oci_execute($s, OCI_NO_AUTO_COMMIT);

query("basic connection", $c1);
query("new connection", $c2);
oci_commit($c1);
query("new connection after commit", $c2);

// Output is:
//   Querying basic connection
//   1234
//   Querying new connection
//   No rows
//   Querying new connection after commit
//   1234

?>

See oci_connect() for further examples of parameter usage.

Siehe auch

  • oci_connect() - Connect to an Oracle database
  • oci_pconnect() - Connect to an Oracle database using a persistent connection


Allocates and returns a new cursor (statement handle)

  • « oci_new_connect
  • oci_new_descriptor »
  • PHP Manual
  • OCI8 Funktionen
  • Allocates and returns a new cursor (statement handle)

oci_new_cursor

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_cursor — Allocates and returns a new cursor (statement handle)

Beschreibung

oci_new_cursor ( resource $connection ) : resource

Allocates a new statement handle on the specified connection.

Parameter-Liste

connection

An Oracle connection identifier, returned by oci_connect() or oci_pconnect().

Rückgabewerte

Returns a new statement handle, or false on error.

Beispiele

Beispiel #1 Binding a REF CURSOR in an Oracle stored procedure call

<?php

// Precreate:
//   create or replace procedure myproc(myrc out sys_refcursor) as
//   begin
//     open myrc for select first_name from employees;
//   end;

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$curs = oci_new_cursor($conn);
$stid = oci_parse($conn, "begin myproc(:cursbv); end;");
oci_bind_by_name($stid, ":cursbv", $curs, -1, OCI_B_CURSOR);
oci_execute($stid);

oci_execute($curs);  // Execute the REF CURSOR like a normal statement id
while (($row = oci_fetch_array($curs, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo $row['FIRST_NAME'] . "<br />\n";
}

oci_free_statement($stid);
oci_free_statement($curs);
oci_close($conn);

?>

Anmerkungen

Hinweis:

In PHP versions before 5.0.0 you must use ocinewcursor() instead. This name still can be used, it was left as alias of oci_new_cursor() for downwards compatability. This, however, is deprecated and not recommended.


Initializes a new empty LOB or FILE descriptor

  • « oci_new_cursor
  • oci_num_fields »
  • PHP Manual
  • OCI8 Funktionen
  • Initializes a new empty LOB or FILE descriptor

oci_new_descriptor

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_descriptor — Initializes a new empty LOB or FILE descriptor

Beschreibung

oci_new_descriptor ( resource $connection , int $type = OCI_DTYPE_LOB ) : OCI-Lob

Allocates resources to hold descriptor or LOB locator.

Parameter-Liste

connection

An Oracle connection identifier, returned by oci_connect() or oci_pconnect().

type

Valid values for type are: OCI_DTYPE_FILE, OCI_DTYPE_LOB and OCI_DTYPE_ROWID.

Rückgabewerte

Returns a new LOB or FILE descriptor on success, false on error.

Beispiele

Beispiel #1 oci_new_descriptor() example

<?php
/* This script is designed to be called from a HTML form.
 * It expects $user, $password, $table, $where, and $commitsize
 * to be passed in from the form.  The script then deletes
 * the selected rows using the ROWID and commits after each
 * set of $commitsize rows. (Use with care, there is no rollback)
 */
$conn = oci_connect($user, $password);
$stmt = oci_parse($conn, "select rowid from $table $where");
$rowid = oci_new_descriptor($conn, OCI_D_ROWID);
oci_define_by_name($stmt, "ROWID", $rowid);
oci_execute($stmt);
while (oci_fetch($stmt)) {
    $nrows = oci_num_rows($stmt);
    $delete = oci_parse($conn, "delete from $table where ROWID = :rid");
    oci_bind_by_name($delete, ":rid", $rowid, -1, OCI_B_ROWID);
    oci_execute($delete);
    echo "$nrows\n";
    if (($nrows % $commitsize) == 0) {
        oci_commit($conn);
    }
}
$nrows = oci_num_rows($stmt);
echo "$nrows deleted...\n";
oci_free_statement($stmt);
oci_close($conn);
?>
<?php
    /* This script demonstrates file upload to LOB columns
     * The formfield used for this example looks like this
     * <form action="upload.php" method="post" enctype="multipart/form-data">
     * <input type="file" name="lob_upload" />
     * ...
     */
  if (!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload" /><br />
<input type="submit" value="Upload" /> - <input type="reset" value="Reset" />
</form>
<?php
  } else {

     // $lob_upload contains the temporary filename of the uploaded file

     // see also the features section on file upload,
     // if you would like to use secure uploads

     $conn = oci_connect($user, $password);
     $lob = oci_new_descriptor($conn, OCI_D_LOB);
     $stmt = oci_parse($conn, "insert into $table (id, the_blob)
               values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
     oci_bind_by_name($stmt, ':the_blob', $lob, -1, OCI_B_BLOB);
     oci_execute($stmt, OCI_DEFAULT);
     if ($lob->savefile($lob_upload)){
        oci_commit($conn);
        echo "Blob successfully uploaded\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     $lob->free();
     oci_free_statement($stmt);
     oci_close($conn);
  }
?>

Beispiel #2 oci_new_descriptor() example

<?php
/* Calling PL/SQL stored procedures which contain clobs as input
 * parameters.
 * Example PL/SQL stored procedure signature is:
 *
 * PROCEDURE save_data
 *   Argument Name                  Type                    In/Out Default?
 *   ------------------------------ ----------------------- ------ --------
 *   KEY                            NUMBER(38)              IN
 *   DATA                           CLOB                    IN
 *
 */

$conn = oci_connect($user, $password);
$stmt = oci_parse($conn, "begin save_data(:key, :data); end;");
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stmt, ':key', $key);
oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
$clob->write($data);
oci_execute($stmt, OCI_DEFAULT);
oci_commit($conn);
$clob->free();
oci_free_statement($stmt);
?>

Anmerkungen

Hinweis:

In PHP versions before 5.0.0 you must use ocinewdescriptor() instead. This name still can be used, it was left as alias of oci_new_descriptor() for downwards compatability. This, however, is deprecated and not recommended.

Siehe auch

  • oci_bind_by_name() - Binds a PHP variable to an Oracle placeholder


Returns the number of result columns in a statement

  • « oci_new_descriptor
  • oci_num_rows »
  • PHP Manual
  • OCI8 Funktionen
  • Returns the number of result columns in a statement

oci_num_fields

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_num_fields — Returns the number of result columns in a statement

Beschreibung

oci_num_fields ( resource $statement ) : int

Gets the number of columns in the given statement.

Parameter-Liste

statement

A valid OCI statement identifier.

Rückgabewerte

Returns the number of columns as an integer, or false on errors.

Beispiele

Beispiel #1 oci_num_fields() example

<?php

// Create the table with:
//   CREATE TABLE mytab (id NUMBER, quantity NUMBER);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
    echo oci_field_name($stid, $i) . " " . oci_field_type($stid, $i) . "<br>\n";
}

// Outputs:
//    ID NUMBER
//    QUANTITY NUMBER

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

In PHP versions before 5.0.0 you must use ocinumcols() instead. This name still can be used, it was left as alias of oci_num_fields() for downwards compatability. This, however, is deprecated and not recommended.


Returns number of rows affected during statement execution

  • « oci_num_fields
  • oci_parse »
  • PHP Manual
  • OCI8 Funktionen
  • Returns number of rows affected during statement execution

oci_num_rows

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_num_rows — Returns number of rows affected during statement execution

Beschreibung

oci_num_rows ( resource $statement ) : int

Gets the number of rows affected during statement execution.

Parameter-Liste

statement

A valid OCI statement identifier.

Rückgabewerte

Returns the number of rows affected as an integer, or false on errors.

Beispiele

Beispiel #1 oci_num_rows() example

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "create table emp2 as select * from employees");
oci_execute($stid);
echo oci_num_rows($stid) . " rows inserted.<br />\n";
oci_free_statement($stid);

$stid = oci_parse($conn, "delete from emp2");
oci_execute($stid, OCI_DEFAULT);
echo oci_num_rows($stid) . " rows deleted.<br />\n";
oci_commit($conn);
oci_free_statement($stid);

$stid = oci_parse($conn, "drop table emp2");
oci_execute($stid);
oci_free_statement($stid);

oci_close($conn);

?>

Anmerkungen

Hinweis:

This function does not return number of rows selected! For SELECT statements this function will return the number of rows, that were fetched to the buffer with oci_fetch*() functions.

Hinweis:

In PHP versions before 5.0.0 you must use ocirowcount() instead. This name still can be used, it was left as alias of oci_num_rows() for downwards compatability. This, however, is deprecated and not recommended.


Prepares an Oracle statement for execution

  • « oci_num_rows
  • oci_password_change »
  • PHP Manual
  • OCI8 Funktionen
  • Prepares an Oracle statement for execution

oci_parse

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_parse — Prepares an Oracle statement for execution

Beschreibung

oci_parse ( resource $connection , string $sql_text ) : resource

Prepares sql_text using connection and returns the statement identifier, which can be used with oci_bind_by_name(), oci_execute() and other functions.

Statement identifiers can be freed with oci_free_statement() or by setting the variable to null.

Parameter-Liste

connection

An Oracle connection identifier, returned by oci_connect(), oci_pconnect(), or oci_new_connect().

sql_text

The SQL or PL/SQL statement.

SQL statements should not end with a semi-colon (";"). PL/SQL statements should end with a semi-colon (";").

Rückgabewerte

Returns a statement handle on success, or false on error.

Beispiele

Beispiel #1 oci_parse() example for SQL statements

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

// Parse the statement. Note there is no final semi-colon in the SQL statement
$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Beispiel #2 oci_parse() example for PL/SQL statements

<?php

/*
  Before running the PHP program, create a stored procedure in
  SQL*Plus or SQL Developer:

  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
  BEGIN
      p2 := p1 * 2;
  END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p1 = 8;

// When parsing PL/SQL programs, there should be a final semi-colon in the string
$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n";   // prints 16

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

This function does not validate sql_text. The only way to find out if sql_text is a valid SQL or PL/SQL statement is to execute it.

Siehe auch

  • oci_execute() - Executes a statement
  • oci_free_statement() - Gibt alle verknüpften Ressourcen eines Statements oder Zeigers frei.


Changes password of Oracle's user

  • « oci_parse
  • oci_pconnect »
  • PHP Manual
  • OCI8 Funktionen
  • Changes password of Oracle's user

oci_password_change

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_password_change — Changes password of Oracle's user

Beschreibung

oci_password_change ( resource $connection , string $username , string $old_password , string $new_password ) : bool
oci_password_change ( string $dbname , string $username , string $old_password , string $new_password ) : resource

Changes password for user with username.

The oci_password_change() function is most useful for PHP command-line scripts, or when non-persistent connections are used throughout the PHP application.

Parameter-Liste

connection

An Oracle connection identifier, returned by oci_connect() or oci_pconnect().

username

The Oracle user name.

old_password

The old password.

new_password

The new password to be set.

dbname

The database name.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 oci_password_change() example changing the password of an already connected user

<?php

$dbase      = 'localhost/orcl';
$user       = 'cj';
$current_pw = 'welcome';
$new_pw     = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
oci_password_change($c, $user, $current_pw, $new_pw);
echo "New password is : " . $new_pw . "\n";

?>

Beispiel #2 oci_password_change() example of connecting and changing the password in one step

<?php

$dbase      = 'localhost/orcl';
$user       = 'cj';
$current_pw = 'welcome';
$new_pw     = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
if (!$c) {
    $m = oci_error();
    if ($m['code'] == 28001) { // "ORA-28001: the password has expired"
        // Login and reset password at the same time
        $c = oci_password_change($dbase, $user, $current_pw, $new_pw);
        if ($c) {
            echo "New password is : " . $new_pw . "\n";
        }
    }
}

if (!$c) {  // The original error wasn't 28001, or the password change failed
    $m = oci_error();
    trigger_error('Could not connect to database: '. $m['message'], E_USER_ERROR);
}

// Use the connection $c
...

?>

Anmerkungen

Hinweis:

Changing the password either with this function or directly in Oracle should be done carefully. This is because PHP applications may continue to successfully reuse persistent connections by authenticating with the old password. The best practice is to restart all web servers whenever the user password is changed.

Hinweis:

If upgrading the Oracle client libraries or the database from a release prior to 11.2.0.3 to version 11.2.0.3 or higher, oci_password_change() may give the error "ORA-1017: invalid username/password" unless both client and server versions are upgraded at the same time.

Hinweis:

The second oci_password_change() syntax is available since OCI8 version 1.1.

Hinweis:

In PHP versions before 5.0.0 you must use ocipasswordchange() instead. This name still can be used, it was left as alias of oci_password_change() for downwards compatability. This, however, is deprecated and not recommended.


Connect to an Oracle database using a persistent connection

  • « oci_password_change
  • oci_register_taf_callback »
  • PHP Manual
  • OCI8 Funktionen
  • Connect to an Oracle database using a persistent connection

oci_pconnect

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_pconnect — Connect to an Oracle database using a persistent connection

Beschreibung

oci_pconnect ( string $username , string $password , string $connection_string = ? , string $character_set = ? , int $session_mode = ? ) : resource

Creates a persistent connection to an Oracle server and logs on.

Persistent connections are cached and re-used between requests, resulting in reduced overhead on each page load; a typical PHP application will have a single persistent connection open against an Oracle server per Apache child process (or PHP FPM process). See the OCI8 Connection Handling and Connection Pooling section for more information.

Parameter-Liste

username

The Oracle user name.

password

The password for username.

connection_string

Beinhaltet die Oracle-Instanz, mit der verbunden werden soll. Dies kann eine » Easy-Connect-Zeichenkette, ein Connect-Name aus der Datei tnsnames.ora oder der Name einer lokalen Oracle-Instanz sein.

Wenn dies nicht angegebe wird, verwendet PHP Umgebungsvariablen wie TWO_TASK (unter Linux), LOCAL (unter Windows) oder ORACLE_SID um die Oracle-Instanz zu ermitteln, mit der verbunden werden soll.

Um die benannte Easy Connect Methode zu verwenden, muss PHP gegen die Clientbibliotheken von Oracle 10g oder höher gelinkt sein. Die Easy-Connect-Zeichenkette für Oracle 10g hat den Aufbau: [//]host_name[:port][/service_name]. Für Oracle 11g ist die Syntax: [//]host_name[:port][/service_name][:server_type][/instance_name]. Weitere Optionen wurden mit Oracle 19c eingeführt, darunter die timeout- und die keep-alive-Einstellungen. Siehe dazu die Oracle-Dokumentation. Die Servicenamen können ermittelt werden, indem man das Oracle-Hilfswerkzeug lsnrctl status auf dem Datenbankserver ausführt.

Die Datei tnsnames.ora kann sich im Oracle Net Suchpfad befinden, welcher /der/pfad/zu/instantclient/network/admin, $ORACLE_HOME/network/admin sowie /etc beinhaltet. Alternativ kann TNS_ADMIN so gesetzt werden, dass $TNS_ADMIN/tnsnames.ora gelesen wird. Es muss sichergestellt sein, dass der Webserver eine Leseberechtigung für die Datei besitzt.

character_set

Bestimmt den Zeichensatz, der von den Oracle Client Bibliotheken verwendet wird. Dieser Zeichensatz muss nicht dem von der Datenbank verwendeten Zeichensatz entsprechen. Wenn diese nicht übereinstimmen, wird Oracle bestmöglich versuchen, die Daten in den Datenbankzeichensatz zu übersetzen. Abhängig von den Zeichensätzen kann dies zu unbrauchbaren Ergebnissen führen. Diese Konvertierung führt auch zu einem erhöhten Zeitbedarf.

Falls nicht angegeben, werden die Oracle Client Bibliotheken versuchen, den Zeichensatz aus der Umgebungsvariablen NLS_LANG auszulesen.

Die Übergabe dieses Parameters verringert die Zeit für den Verbindungsaufbau.

session_mode

Dieser Parameter ist seit PHP 5 (PECL OCI8 1.1) verfügbar und akzeptiert die folgenden Werte: OCI_DEFAULT, OCI_SYSOPER und OCI_SYSDBA. Falls entweder OCI_SYSOPER oder OCI_SYSDBA angegeben wurden wird diese Funktion versuchen die priviligierte Verbindung mit externen Credentials aufzubauen. Um diese einzuschalten muss man oci8.privileged_connect auf On setzen.

PHP 5.3 (PECL OCI8 1.3.4) hat den Wert OCI_CRED_EXT eingeführt. Dies konfiguriert Oracle dazu eine externe oder Os-Authentifizierung vorzunehmen, welche in der Datenbank konfiguriert werden muss. Der Schalter OCI_CRED_EXT kann nur mit dem Benutzernamen "/" und einem leeren Passwort verwendet werden. oci8.privileged_connect kann entweder On oder Off sein.

OCI_CRED_EXT kann mit OCI_SYSOPER oder OCI_SYSDBA kombiniert werden.

OCI_CRED_EXT ist auf Windows-Systemen aus sicherheitsgründen nicht unterstützt.

Rückgabewerte

Returns a connection identifier or false on error.

Beispiele

Beispiel #1 Basic oci_pconnect() Example using Easy Connect syntax

<?php

// Connects to the XE service (i.e. database) on the "localhost" machine
$conn = oci_pconnect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

See oci_connect() for further examples of parameter usage.

Anmerkungen

Hinweis: Starting with PHP 5.1.2 and PECL OCI8 1.1, the lifetime and maximum number of persistent Oracle connections per PHP process can be tuned by setting the following configuration values: oci8.persistent_timeout, oci8.ping_interval and oci8.max_persistent.

Siehe auch

  • oci_connect() - Connect to an Oracle database
  • oci_new_connect() - Connect to the Oracle server using a unique connection


Register a user-defined callback function for Oracle Database TAF

  • « oci_pconnect
  • oci_result »
  • PHP Manual
  • OCI8 Funktionen
  • Register a user-defined callback function for Oracle Database TAF

oci_register_taf_callback

(PHP 7.0 >= 7.0.21, PHP 8, PHP 7 >= 7.1.7, PHP 8, PECL OCI8 >= 2.1.7)

oci_register_taf_callback — Register a user-defined callback function for Oracle Database TAF

Beschreibung

oci_register_taf_callback ( resource $connection , mixed $callbackFn = ? ) : bool

Registers a user-defined callback function to connection. If connection fails due to instance or network failure, the registered callback function will be invoked for several times during failover. See OCI8 Transparent Application Failover (TAF) Support for information.

When oci_register_taf_callback() is called multiple times, each registration overwrites the previous one.

Use oci_unregister_taf_callback() to explicitly unregister a user-defined callback.

TAF callback registration will NOT be saved across persistent connections, therefore the callback needs to be re-registered for a new persistent connection.

Parameter-Liste

connection

An Oracle connection identifier.

callbackFn

A user-defined callback to register for Oracle TAF. It can be a string of the function name or a Closure (anonymous function).

The interface of a TAF user-defined callback function is as follows:

userCallbackFn ( resource $connection , int $event , int $type ) : int

See the parameter description and an example on OCI8 Transparent Application Failover (TAF) Support page.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • oci_unregister_taf_callback() - Unregister a user-defined callback function for Oracle Database TAF


Returns field's value from the fetched row

  • « oci_register_taf_callback
  • oci_rollback »
  • PHP Manual
  • OCI8 Funktionen
  • Returns field's value from the fetched row

oci_result

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_result — Returns field's value from the fetched row

Beschreibung

oci_result ( resource $statement , mixed $field ) : mixed

Returns the data from field in the current row, fetched by oci_fetch().

Für Details zur vom OCI8-Treiber durchgeführten Umsetzung von Datentypen siehe die vom Treiber unterstützen Datentypen.

Parameter-Liste

statement

field

Can be either use the column number (1-based) or the column name. The case of the column name must be the case that Oracle meta data describes the column as, which is uppercase for columns created case insensitively.

Rückgabewerte

Returns everything as strings except for abstract types (ROWIDs, LOBs and FILEs). Returns false on error.

Beispiele

Beispiel #1 oci_fetch() with oci_result()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (oci_fetch($stid)) {
    echo oci_result($stid, 'LOCATION_ID') . " is ";
    echo oci_result($stid, 'CITY') . "<br>\n";
}

// Displays:
//   1000 is Roma
//   1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Anmerkungen

Hinweis:

In PHP versions before 5.0.0 you must use ociresult() instead. This name still can be used, it was left as alias of oci_result() for downwards compatability. This, however, is deprecated and not recommended.

Siehe auch

  • oci_fetch_array() - Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array
  • oci_fetch_assoc() - Liefert die nächste Zeile einer Abfrage als assoziatives Array
  • oci_fetch_object() - Liefert die nächste Zeile einer Abfrage als Objekt
  • oci_fetch_row() - Liefert die nächste Zeile einer Abfrage als numerisches Array
  • oci_fetch_all() - Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab


Rolls back the outstanding database transaction

  • « oci_result
  • oci_server_version »
  • PHP Manual
  • OCI8 Funktionen
  • Rolls back the outstanding database transaction

oci_rollback

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_rollback — Rolls back the outstanding database transaction

Beschreibung

oci_rollback ( resource $connection ) : bool

Reverts all uncommitted changes for the Oracle connection and ends the transaction. It releases all locks held. All Oracle SAVEPOINTS are erased.

A transaction begins when the first SQL statement that changes data is executed with oci_execute() using the OCI_NO_AUTO_COMMIT flag. Further data changes made by other statements become part of the same transaction. Data changes made in a transaction are temporary until the transaction is committed or rolled back. Other users of the database will not see the changes until they are committed.

When inserting or updating data, using transactions is recommended for relational data consistency and for performance reasons.

Parameter-Liste

connection

An Oracle connection identifier, returned by oci_connect(), oci_pconnect() or oci_new_connect().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 oci_rollback() example

<?php

// Insert into several tables, rolling back the changes if an error occurs

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");

// The OCI_NO_AUTO_COMMIT flag tells Oracle not to commit the INSERT immediately
// Use OCI_DEFAULT as the flag for PHP <= 5.3.1.  The two flags are equivalent
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    oci_rollback($conn);  // rollback changes to both tables
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// Commit the changes to both tables
$r = oci_commit($conn);
if (!r) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

?>

Beispiel #2 Rolling back to a SAVEPOINT example

<?php
$stid = oci_parse($conn, 'UPDATE mytab SET id = 1111');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

// Create the savepoint
$stid = oci_parse($conn, 'SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

$stid = oci_parse($conn, 'UPDATE mytab SET id = 2222');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

// Use an explicit SQL statement to rollback to the savepoint
$stid = oci_parse($conn, 'ROLLBACK TO SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

oci_commit($conn);  // mytab now has id of 1111
?>

Anmerkungen

Hinweis:

Transactions are automatically rolled back when you close the connection, or when the script ends, whichever is soonest. You need to explicitly call oci_commit() to commit the transaction.

Any call to oci_execute() that uses OCI_COMMIT_ON_SUCCESS mode explicitly or by default will commit any previous uncommitted transaction.

Any Oracle DDL statement such as CREATE or DROP will automatically commit any uncommitted transaction.

Siehe auch

  • oci_commit() - Commits the outstanding database transaction
  • oci_execute() - Executes a statement


Returns the Oracle Database version

  • « oci_rollback
  • oci_set_action »
  • PHP Manual
  • OCI8 Funktionen
  • Returns the Oracle Database version

oci_server_version

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_server_version — Returns the Oracle Database version

Beschreibung

oci_server_version ( resource $connection ) : string

Returns a string with the Oracle Database version and available options

Parameter-Liste

connection

Rückgabewerte

Returns the version information as a string or false on error.

Beispiele

Beispiel #1 oci_server_version() example

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
echo "Server Version: " . oci_server_version($conn);

// Displays:
// Server Version: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
// With the Partitioning, OLAP, Data Mining and Real Application Testing option

oci_close($conn);

?>

Anmerkungen

Hinweis:

In PHP versions before 5.0.0 you must use ociserverversion() instead. This old name still can be used. However it is deprecated and not recommended.

Siehe auch

  • oci_client_version() - Returns the Oracle client library version


Sets the action name

  • « oci_server_version
  • oci_set_call_timeout »
  • PHP Manual
  • OCI8 Funktionen
  • Sets the action name

oci_set_action

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_action — Sets the action name

Beschreibung

oci_set_action ( resource $connection , string $action_name ) : bool

Sets the action name for Oracle tracing.

The action name is registered with the database when the next 'round-trip' from PHP to the database occurs, typically when an SQL statement is executed.

The action name can subsequently be queried from database administration views such as V$SESSION. It can be used for tracing and monitoring such as with V$SQLAREA and DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

The value may be retained across persistent connections.

Parameter-Liste

connection

Ein Oracle-Verbindungs-Identifiierer, der von oci_connect(), oci_pconnect(), oder oci_new_connect() zurückgegeben wurde.

action_name

User chosen string up to 32 bytes long.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Setting the action

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Record the action
oci_set_action($c, 'Friend Lookup');

// Code that causes a round-trip, for example a query:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// While the script is running, the administrator can see the actions
// being performed:

sqlplus system/welcome
SQL> select action from v$session;

Anmerkungen

Hinweis: Oracle Versionsanforderungen

Diese Funktion ist verfügbar, wenn PHP gegen die Bibliotheken der Oracle-Datenbank in Version 10g und höher gelinkt ist.

Tipp

Performance

Bei älteren Versionen von OCI8 oder der Oracle-Datenbank können die Client- Informationen mit einem DBMS_APPLICATION_INFO-Paket gesetzt werden. Dies ist weniger effizient als die Verwendung von oci_set_client_info().

Achtung

Roundtrip Hinweis

Einige, aber nicht alle OCI8-Funktionen verursachen Roundtrips. Roundtrips zur Datenbank dürfen nicht für Queries auftreten, wenn der Ergebniscache aktiviert ist.

Siehe auch

  • oci_set_module_name() - Sets the module name
  • oci_set_client_info() - Sets the client information
  • oci_set_client_identifier() - Sets the client identifier
  • oci_set_db_operation() - Sets the database operation


Sets a millisecond timeout for database calls

  • « oci_set_action
  • oci_set_client_identifier »
  • PHP Manual
  • OCI8 Funktionen
  • Sets a millisecond timeout for database calls

oci_set_call_timeout

(PHP 7.2 >= 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)

oci_set_call_timeout — Sets a millisecond timeout for database calls

Beschreibung

oci_set_call_timeout ( resource $connection , int $time_out ) : bool

Sets a timeout limiting the maxium time a database round-trip using this connection may take.

Each OCI8 operation may make zero or more calls to Oracle's client library. These internal calls may then may make zero or more round-trips to Oracle Database. If any one of those round-trips takes more than time_out milliseconds, then the operation is cancelled and an error is returned to the application.

The time_out value applies to each round-trip individually, not to the sum of all round-trips. Time spent processing in PHP OCI8 before or after the completion of each round-trip is not counted.

When a call is interrupted, Oracle will attempt to clean up the connection for reuse. This operation is allowed to run for another time_out period. Depending on the outcome of the cleanup, the connection may or may not be reusable.

When persistent connections are used, the timeout value will be retained across PHP requests.

The oci_set_call_timeout() function is available when OCI8 uses Oracle 18 (or later) Client libraries.

Parameter-Liste

connection

Ein Oracle-Verbindungs-Identifiierer, der von oci_connect(), oci_pconnect(), oder oci_new_connect() zurückgegeben wurde.

time_out

The maximum time in milliseconds that any single round-trip between PHP and Oracle Database may take.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Setting the timeout

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
oci_set_call_timeout($conn, 5000);

?>


Sets the client identifier

  • « oci_set_call_timeout
  • oci_set_client_info »
  • PHP Manual
  • OCI8 Funktionen
  • Sets the client identifier

oci_set_client_identifier

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_client_identifier — Sets the client identifier

Beschreibung

oci_set_client_identifier ( resource $connection , string $client_identifier ) : bool

Sets the client identifier used by various database components to identify lightweight application users who authenticate as the same database user.

The client identifier is registered with the database when the next 'round-trip' from PHP to the database occurs, typically when an SQL statement is executed.

The identifier can subsequently be queried, for example with SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL. Database administration views such as V$SESSION will also contain the value. It can be used with DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE for tracing and can also be used for auditing.

The value may be retained across page requests that use the same persistent connection.

Parameter-Liste

connection

Ein Oracle-Verbindungs-Identifiierer, der von oci_connect(), oci_pconnect(), oder oci_new_connect() zurückgegeben wurde.

client_identifier

User chosen string up to 64 bytes long.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Setting the client identifier to the application user

<?php

// Find the application user's login name
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');

// Tell Oracle who that user is
oci_set_client_identifier($c, $un);

// The next round-trip to the database will piggyback the identifier
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);

// ...

?>

Anmerkungen

Achtung

Roundtrip Hinweis

Einige, aber nicht alle OCI8-Funktionen verursachen Roundtrips. Roundtrips zur Datenbank dürfen nicht für Queries auftreten, wenn der Ergebniscache aktiviert ist.

Siehe auch

  • oci_set_module_name() - Sets the module name
  • oci_set_action() - Sets the action name
  • oci_set_client_info() - Sets the client information
  • oci_set_db_operation() - Sets the database operation


Sets the client information

  • « oci_set_client_identifier
  • oci_set_db_operation »
  • PHP Manual
  • OCI8 Funktionen
  • Sets the client information

oci_set_client_info

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_client_info — Sets the client information

Beschreibung

oci_set_client_info ( resource $connection , string $client_info ) : bool

Sets the client information for Oracle tracing.

The client information is registered with the database when the next 'round-trip' from PHP to the database occurs, typically when an SQL statement is executed.

The client information can subsequently be queried from database administration views such as V$SESSION.

The value may be retained across persistent connections.

Parameter-Liste

connection

Ein Oracle-Verbindungs-Identifiierer, der von oci_connect(), oci_pconnect(), oder oci_new_connect() zurückgegeben wurde.

client_info

User chosen string up to 64 bytes long.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Setting the client information

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Record the client information
oci_set_client_info($c, 'My Application Version 2');

// Code that causes a round-trip, for example a query:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// While the script is running, the administrator can see the client
// information:

sqlplus system/welcome
SQL> select client_info from v$session;

Anmerkungen

Hinweis: Oracle Versionsanforderungen

Diese Funktion ist verfügbar, wenn PHP gegen die Bibliotheken der Oracle-Datenbank in Version 10g und höher gelinkt ist.

Tipp

Performance

Bei älteren Versionen von OCI8 oder der Oracle-Datenbank können die Client- Informationen mit einem DBMS_APPLICATION_INFO-Paket gesetzt werden. Dies ist weniger effizient als die Verwendung von oci_set_client_info().

Achtung

Roundtrip Hinweis

Einige, aber nicht alle OCI8-Funktionen verursachen Roundtrips. Roundtrips zur Datenbank dürfen nicht für Queries auftreten, wenn der Ergebniscache aktiviert ist.

Siehe auch

  • oci_set_module_name() - Sets the module name
  • oci_set_action() - Sets the action name
  • oci_set_client_identifier() - Sets the client identifier
  • oci_set_db_operation() - Sets the database operation


Sets the database operation

  • « oci_set_client_info
  • oci_set_edition »
  • PHP Manual
  • OCI8 Funktionen
  • Sets the database operation

oci_set_db_operation

(PHP 7 >= 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)

oci_set_db_operation — Sets the database operation

Beschreibung

oci_set_db_operation ( resource $connection , string $dbop ) : bool

Sets the DBOP for Oracle tracing.

The database operation name is registered with the database when the next 'round-trip' from PHP to the database occurs, typically when a SQL statement is executed.

The database operation can subsequently be queried from database administration views such as V$SQL_MONITOR.

The oci_set_db_operation() function is available when OCI8 uses Oracle 12 (or later) Client libraries and Oracle Database 12 (or later).

Parameter-Liste

connection

Ein Oracle-Verbindungs-Identifiierer, der von oci_connect(), oci_pconnect(), oder oci_new_connect() zurückgegeben wurde.

dbop

User chosen string.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Setting the DBOP

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Record the operation
oci_set_db_operation($c, 'main query');

// Code that causes a round-trip, for example a query:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// While the script is running, the administrator can see the database operations
// being performed:

sqlplus system/welcome
SQL> select dbop_name from v$sql_monitor;

Anmerkungen

Achtung

Roundtrip Hinweis

Einige, aber nicht alle OCI8-Funktionen verursachen Roundtrips. Roundtrips zur Datenbank dürfen nicht für Queries auftreten, wenn der Ergebniscache aktiviert ist.

Siehe auch

  • oci_set_action() - Sets the action name
  • oci_set_module_name() - Sets the module name
  • oci_set_client_info() - Sets the client information
  • oci_set_client_identifier() - Sets the client identifier


Sets the database edition

  • « oci_set_db_operation
  • oci_set_module_name »
  • PHP Manual
  • OCI8 Funktionen
  • Sets the database edition

oci_set_edition

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_edition — Sets the database edition

Beschreibung

oci_set_edition ( string $edition ) : bool

Sets the database "edition" of objects to be used by a subsequent connections.

Oracle Editions allow concurrent versions of applications to run using the same schema and object names. This is useful for upgrading live systems.

Call oci_set_edition() before calling
oci_connect(), oci_pconnect()
or oci_new_connect().

If an edition is set that is not valid in the database, connection will fail even if oci_set_edition() returns success.

When using persistent connections, if a connection with the requested edition setting already exists, it is reused. Otherwise, a different persistent connection is created

Parameter-Liste

edition

Oracle Database edition name previously created with the SQL "CREATE EDITION" command.

Anmerkungen

Hinweis: Oracle version requirement

This function is available from Oracle 11gR2 onwards.

Achtung

Persistent connections

To avoid inconsistencies and unexpected errors, do not use ALTER SESSION SET EDITION to change the edition on persistent connections.

Achtung

DRCP Connection Pooling

To avoid inconsistencies and unexpected errors when using editions and DRCP with Oracle 11.2.0.1, keep a one-to-one correspondence between the oci8.connection_class and the edition name used by applications. Each pooled server of a given connection class should only be used with one edition. This restriction has been removed with Oracle 11.2.0.2.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Two scripts can use different versions of myfunc() at the same time

<?php

// File 1

echo "Version 1 of application\n";

oci_set_edition('ORA$BASE');
$c = oci_connect('hr', 'welcome', 'localhost/XE');

$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "The result is $r\n";

?>
<?php

// File 2

echo "Version 2 of application\n";

oci_set_edition('E1');
$c = oci_connect('hr', 'welcome', 'localhost/XE');

$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "The result is $r\n";

?>


Sets the module name

  • « oci_set_edition
  • oci_set_prefetch »
  • PHP Manual
  • OCI8 Funktionen
  • Sets the module name

oci_set_module_name

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_module_name — Sets the module name

Beschreibung

oci_set_module_name ( resource $connection , string $module_name ) : bool

Sets the module name for Oracle tracing.

The module name is registered with the database when the next 'round-trip' from PHP to the database occurs, typically when an SQL statement is executed.

The name can subsequently be queried from database administration views such as V$SESSION. It can be used for tracing and monitoring such as with V$SQLAREA and DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

The value may be retained across persistent connections.

Parameter-Liste

connection

Ein Oracle-Verbindungs-Identifiierer, der von oci_connect(), oci_pconnect(), oder oci_new_connect() zurückgegeben wurde.

module_name

User chosen string up to 48 bytes long.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis: Oracle Versionsanforderungen

Diese Funktion ist verfügbar, wenn PHP gegen die Bibliotheken der Oracle-Datenbank in Version 10g und höher gelinkt ist.

Tipp

Performance

Bei älteren Versionen von OCI8 oder der Oracle-Datenbank können die Client- Informationen mit einem DBMS_APPLICATION_INFO-Paket gesetzt werden. Dies ist weniger effizient als die Verwendung von oci_set_client_info().

Achtung

Roundtrip Hinweis

Einige, aber nicht alle OCI8-Funktionen verursachen Roundtrips. Roundtrips zur Datenbank dürfen nicht für Queries auftreten, wenn der Ergebniscache aktiviert ist.

Beispiele

Beispiel #1 Setting the module name

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Record the module
oci_set_module_name($c, 'Home Page');

// Code that causes a round-trip, for example a query:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);
?>
// While the script is running, the administrator can see the
// modules in use:

sqlplus system/welcome
SQL> select module from v$session;

Siehe auch

  • oci_set_action() - Sets the action name
  • oci_set_client_info() - Sets the client information
  • oci_set_client_identifier() - Sets the client identifier
  • oci_set_db_operation() - Sets the database operation


Sets number of rows to be prefetched by queries

  • « oci_set_module_name
  • oci_statement_type »
  • PHP Manual
  • OCI8 Funktionen
  • Sets number of rows to be prefetched by queries

oci_set_prefetch

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_set_prefetch — Sets number of rows to be prefetched by queries

Beschreibung

oci_set_prefetch ( resource $statement , int $rows ) : bool

Sets the number of rows to be buffered by the Oracle Client libraries after a successful query call to oci_execute() and for each subsequent internal fetch request to the database. For queries returning a large number of rows, performance can be significantly improved by increasing the prefetch count above the default oci8.default_prefetch value.

Prefetching is Oracle's efficient way of returning more than one data row from the database in each network request. This can result in better network and CPU utilization. The buffering of rows is internal to OCI8 and the behavior of OCI8 fetching functions is unchanged regardless of the prefetch count. For example, oci_fetch_row() will always return one row. The prefetch buffer is per-statement and is not used by re-executed statements or by other connections.

Call oci_set_prefetch() before calling oci_execute().

A tuning goal is to set the prefetch value to a reasonable size for the network and database to handle. For queries returning a very large number of rows, overall system efficiency might be better if rows are retrieved from the database in several chunks (i.e set the prefetch value smaller than the number of rows). This allows the database to handle other users' statements while the PHP script is processing the current set of rows.

Query prefetching was introduced in Oracle 8i. REF CURSOR prefetching was introduced in Oracle 11gR2 and occurs when PHP is linked with Oracle 11gR2 (or later) Client libraries. Nested cursor prefetching was introduced in Oracle 11gR2 and requires both the Oracle Client libraries and the database to be version 11gR2 or greater.

Prefetching is not supported when queries contain LONG or LOB columns. The prefetch value is ignored and single-row fetches will be used in all the situations when prefetching is not supported.

When using Oracle Database 12c, the prefetch value set by PHP can be overridden by Oracle's client oraaccess.xml configuration file. Refer to Oracle documentation for more detail.

Parameter-Liste

statement

Der Identifizierer eines gültigen OCI8-Ausdrucks, der von oci_parse() erzeugt und von oci_execute() oder einem REF CURSOR-Ausdruck verwendet wird.

rows

The number of rows to be prefetched, >= 0

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
PECL OCI8 1.4 | Before this release, rows must be >= 1.
PECL OCI8 1.3.4 | Before this release, prefetching was limited to the lesser of rows rows and 1024 * rows bytes. The byte size restriction has now been removed.

Beispiele

Beispiel #1 Changing the default prefetch value for a query

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM myverybigtable');
oci_set_prefetch($stid, 300);  // Set before calling oci_execute()
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Beispiel #2 Changing the default prefetch for a REF CURSOR fetch

<?php
/*
  Create the PL/SQL stored procedure as:

  CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
  BEGIN
    OPEN p1 FOR SELECT * FROM all_objects WHERE ROWNUM < 5000;
  END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'BEGIN myproc(:rc); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Change the prefetch before executing the cursor.
// REF CURSOR prefetching works when PHP is linked with Oracle 11gR2 or later Client libraries
oci_set_prefetch($refcur, 200);
oci_execute($refcur);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($refcur, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);

?>

If PHP OCI8 fetches from a REF CURSOR and then passes the REF CURSOR back to a second PL/SQL procedure for further processing, then set the REF CURSOR prefetch count to 0 to avoid rows being "lost" from the result set. The prefetch value is the number of extra rows fetched in each OCI8 internal request to the database, so setting it to 0 means only fetch one row at a time.

Beispiel #3 Setting the prefetch value when passing a REF CURSOR back to Oracle

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/orcl');

// get the REF CURSOR
$stid = oci_parse($conn, 'BEGIN myproc(:rc_out); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc_out', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Display two rows, but don't prefetch any extra rows otherwise
// those extra rows would not be passed back to myproc_use_rc().
// A prefetch value of 0 is allowed in PHP 5.3.2 and PECL OCI8 1.4
oci_set_prefetch($refcur, 0);
oci_execute($refcur);
$row = oci_fetch_array($refcur);
var_dump($row);
$row = oci_fetch_array($refcur);
var_dump($row);

// pass the REF CURSOR to myproc_use_rc() to do more data processing
// with the result set
$stid = oci_parse($conn, 'begin myproc_use_rc(:rc_in); end;');
oci_bind_by_name($stid, ':rc_in', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

?>

Siehe auch

  • oci8.default_prefetch ini option


Returns the type of a statement

  • « oci_set_prefetch
  • oci_unregister_taf_callback »
  • PHP Manual
  • OCI8 Funktionen
  • Returns the type of a statement

oci_statement_type

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_statement_type — Returns the type of a statement

Beschreibung

oci_statement_type ( resource $statement ) : string

Returns a keyword identifying the type of the OCI8 statement.

Parameter-Liste

statement

A valid OCI8 statement identifier from oci_parse().

Rückgabewerte

Returns the type of statement as one of the following strings.

Statement type
Return String | Notes
ALTER |
BEGIN |
CALL | Introduced in PHP 5.2.1 (PECL OCI8 1.2.3)
CREATE |
DECLARE |
DELETE |
DROP |
INSERT |
SELECT |
UPDATE |
UNKNOWN |

Returns false on error.

Beispiele

Beispiel #1 oci_statement_type() example

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'DELETE FROM departments WHERE department_id = 130;');
if (oci_statement_type($stid) == "DELETE") {
    trigger_error('You are not allowed to delete from this table', E_USER_ERROR);
}
else {
    oci_execute($stid);  // delete the row
}

oci_free_statement($stid);
oci_close($conn);

?>


Unregister a user-defined callback function for Oracle Database TAF

  • « oci_statement_type
  • OCICollection »
  • PHP Manual
  • OCI8 Funktionen
  • Unregister a user-defined callback function for Oracle Database TAF

oci_unregister_taf_callback

(PHP 7.0 >= 7.0.23, PHP 8, PHP 7 >= 7.1.9, PHP 8, PECL OCI8 >= 2.1.7)

oci_unregister_taf_callback — Unregister a user-defined callback function for Oracle Database TAF

Beschreibung

oci_unregister_taf_callback ( resource $connection ) : bool

Unregister the user-defined callback function registered to connection by oci_register_taf_callback(). See OCI8 Transparent Application Failover (TAF) Support for information.

Parameter-Liste

connection

An Oracle connection identifier.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • oci_register_taf_callback() - Register a user-defined callback function for Oracle Database TAF


The OCICollection class

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

Einführung

OCI8 Collection functionality.

Hinweis:

The OCI-Collection class was renamed to OCICollection in PHP 8 OCI8 3.0.0 to align with PHP naming standards.

Klassenbeschreibung

OCICollection {
/* Methoden */
append ( mixed $value ) : bool
assign ( OCICollection $from ) : bool
assignElem ( int $index , mixed $value ) : bool
free ( ) : bool
getElem ( int $index ) : mixed
max ( ) : int
size ( ) : int
trim ( int $num ) : bool
}

Inhaltsverzeichnis

  • OCICollection::append — Hängt ein Element an eine Sammlung
  • OCICollection::assign — Weist einer Sammlung einen Wert aus einer anderen Sammlung zu
  • OCICollection::assignElem — Weist einem Element einer Sammlung einen Wert zu
  • OCICollection::free — Gibt die mit einem Sammelobjekt verknüpften Ressourcen frei
  • OCICollection::getElem — Liefert den Wert eines Elements
  • OCICollection::max — Liefert die maximale Anzahl der Elemente in einer Sammlung
  • OCICollection::size — Liefert die Größe der Sammlung
  • OCICollection::trim — Entfernt Elemente vom Ende einer Sammlung


Hängt ein Element an eine Sammlung

  • « OCICollection
  • OCICollection::assign »
  • PHP Manual
  • OCICollection
  • Hängt ein Element an eine Sammlung

OCICollection::append

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::append — Hängt ein Element an eine Sammlung

Beschreibung

OCICollection::append ( mixed $value ) : bool

Hängt ein Element ans Ende einer Sammlung.

Parameter-Liste

value

Der Wert, der der Sammlung hinzugefügt werden soll. Kann eine Zeichenkette oder eine Zahl sein.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.

Siehe auch

  • OCICollection::assign


Weist einer Sammlung einen Wert aus einer anderen Sammlung zu

  • « OCICollection::append
  • OCICollection::assignElem »
  • PHP Manual
  • OCICollection
  • Weist einer Sammlung einen Wert aus einer anderen Sammlung zu

OCICollection::assign

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::assign — Weist einer Sammlung einen Wert aus einer anderen Sammlung zu

Beschreibung

OCICollection::assign ( OCICollection $from ) : bool

Weist einer Sammlung den Wert einer vorher erstellten Sammlung zu. Beide Sammlungen müssen mit oci_new_collection() erstellt worden sein, bevor sie verwendet werden.

Parameter-Liste

from

Eine Instanz einer OCI-Sammlung.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.

Siehe auch

  • OCICollection::append


Weist einem Element einer Sammlung einen Wert zu

  • « OCICollection::assign
  • OCICollection::free »
  • PHP Manual
  • OCICollection
  • Weist einem Element einer Sammlung einen Wert zu

OCICollection::assignElem

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::assignElem — Weist einem Element einer Sammlung einen Wert zu

Beschreibung

OCICollection::assignElem ( int $index , mixed $value ) : bool

Weist dem Element mit dem Index index einen Wert zu.

Parameter-Liste

index

Der Index des Elements. Der erste Index ist 0.

value

Kann eine Zeichenkette oder eine Zahl sein.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.

Siehe auch

  • OCICollection::getElem


Gibt die mit einem Sammelobjekt verknüpften Ressourcen frei

  • « OCICollection::assignElem
  • OCICollection::getElem »
  • PHP Manual
  • OCICollection
  • Gibt die mit einem Sammelobjekt verknüpften Ressourcen frei

OCICollection::free

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::free — Gibt die mit einem Sammelobjekt verknüpften Ressourcen frei

Beschreibung

OCICollection::free ( ) : bool

Gibt die mit einem Sammelobjekt verknüpften Ressourcen frei.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.

Siehe auch

  • oci_new_collection


Liefert den Wert eines Elements

  • « OCICollection::free
  • OCICollection::max »
  • PHP Manual
  • OCICollection
  • Liefert den Wert eines Elements

OCICollection::getElem

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::getElem — Liefert den Wert eines Elements

Beschreibung

OCICollection::getElem ( int $index ) : mixed

Gibt den Wert des Elements mit dem Index index (beginnend bei 0) zurück.

Parameter-Liste

index

Der Index des Elements. Der erste Index ist 0.

Rückgabewerte

Gibt false zurück, wenn ein solches Element nicht existiert, null, wenn das Element null ist, eine Zeichenkette, wenn das Element zu einer Spalte vom Datentyp Zeichenkette gehört und eine Nummer, wenn das Element ein numerisches Feld ist.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.

Siehe auch

  • OCICollection::assignElem


Liefert die maximale Anzahl der Elemente in einer Sammlung

  • « OCICollection::getElem
  • OCICollection::size »
  • PHP Manual
  • OCICollection
  • Liefert die maximale Anzahl der Elemente in einer Sammlung

OCICollection::max

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::max — Liefert die maximale Anzahl der Elemente in einer Sammlung

Beschreibung

OCICollection::max ( ) : int

Gibt die maximale Anzahl der Elemente in einer Sammlung zurück.

Rückgabewerte

Gibt die maximale Anzahl als Integer zurück oder false bei Fehlern.

Wenn der zurückgegebene Wert 0 ist, ist die Anzahl der Elemente nicht begrenzt.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.

Siehe auch

  • OCICollection::size


Liefert die Größe der Sammlung

  • « OCICollection::max
  • OCICollection::trim »
  • PHP Manual
  • OCICollection
  • Liefert die Größe der Sammlung

OCICollection::size

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::size — Liefert die Größe der Sammlung

Beschreibung

OCICollection::size ( ) : int

Gibt die Größe der Sammlung zurück.

Rückgabewerte

Gibt die Anzahl Elemente der Sammlung zurück oder false bei einem Fehler.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.

Siehe auch

  • OCICollection::max


Entfernt Elemente vom Ende einer Sammlung

  • « OCICollection::size
  • OCILob »
  • PHP Manual
  • OCICollection
  • Entfernt Elemente vom Ende einer Sammlung

OCICollection::trim

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::trim — Entfernt Elemente vom Ende einer Sammlung

Beschreibung

OCICollection::trim ( int $num ) : bool

Entfernt num Elemente vom Ende einer Sammlung.

Parameter-Liste

num

Die zu entfernende Anzahl Elemente.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.

Siehe auch

  • OCICollection::size


The OCILob class

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

Einführung

OCI8 LOB functionality for large binary (BLOB) and character (CLOB) objects.

Hinweis:

The OCI-Lob class was renamed to OCILob in PHP 8 and PECL OCI8 3.0.0 to align with PHP naming standards.

Klassenbeschreibung

OCILob {
/* Methoden */
append ( OCILob $lob_from ) : bool
close ( ) : bool
eof ( ) : bool
erase ( int $offset = ? , int $length = ? ) : int|false
export ( string $filename , int $start = ? , int $length = ? ) : bool
flush ( int $flag = ? ) : bool
free ( ) : bool
getBuffering ( ) : bool
import ( string $filename ) : bool
load ( ) : string
read ( int $length ) : string|false
rewind ( ) : bool
save ( string $data , int $offset = ? ) : bool
seek ( int $offset , int $whence = OCI_SEEK_SET ) : bool
setBuffering ( bool $on_off ) : bool
size ( ) : int|false
tell ( ) : int
Lob::truncate ( int $length = 0 ) : bool
write ( string $data , int $length = ? ) : int|false
writeTemporary ( string $data , int $lob_type = OCI_TEMP_CLOB ) : bool
}

Inhaltsverzeichnis

  • OCILob::append — Appends data from the large object to another large object
  • OCILob::close — Closes LOB descriptor
  • OCILob::eof — Tests for end-of-file on a large object's descriptor
  • OCILob::erase — Erases a specified portion of the internal LOB data
  • OCILob::export — Exports LOB's contents to a file
  • OCILob::flush — Flushes/writes buffer of the LOB to the server
  • OCILob::free — Frees resources associated with the LOB descriptor
  • OCILob::getBuffering — Returns current state of buffering for the large object
  • OCILob::import — Imports file data to the LOB
  • OCILob::load — Returns large object's contents
  • OCILob::read — Reads part of the large object
  • OCILob::rewind — Moves the internal pointer to the beginning of the large object
  • OCILob::save — Saves data to the large object
  • OCILob::saveFile — Alias von OCILob::import
  • OCILob::seek — Sets the internal pointer of the large object
  • OCILob::setBuffering — Changes current state of buffering for the large object
  • OCILob::size — Returns size of large object
  • OCILob::tell — Returns the current position of internal pointer of large object
  • OCILob::truncate — Truncates large object
  • OCILob::write — Writes data to the large object
  • OCILob::writeTemporary — Writes a temporary large object
  • OCILob::writeToFile — Alias von OCILob::export


Appends data from the large object to another large object

  • « OCILob
  • OCILob::close »
  • PHP Manual
  • OCILob
  • Appends data from the large object to another large object

OCILob::append

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::append — Appends data from the large object to another large object

Beschreibung

OCILob::append ( OCILob $lob_from ) : bool

Appends data from the large object to the end of another large object.

Writing to the large object with this method will fail if buffering was previously enabled. You must disable buffering before appending. You may need to flush buffers with OCILob::flush before disabling buffering.

Parameter-Liste

lob_from

The copied LOB.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::flush
  • OCILob::setBuffering
  • OCILob::getBuffering


Closes LOB descriptor

  • « OCILob::append
  • OCILob::eof »
  • PHP Manual
  • OCILob
  • Closes LOB descriptor

OCILob::close

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::close — Closes LOB descriptor

Beschreibung

OCILob::close ( ) : bool

Closes descriptor of LOB or FILE. This function should be used only with OCILob::writeTemporary.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::writeTemporary


Tests for end-of-file on a large object's descriptor

  • « OCILob::close
  • OCILob::erase »
  • PHP Manual
  • OCILob
  • Tests for end-of-file on a large object's descriptor

OCILob::eof

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::eof — Tests for end-of-file on a large object's descriptor

Beschreibung

OCILob::eof ( ) : bool

Tells whether the internal pointer of large object is at the end of LOB.

Rückgabewerte

Returns true if internal pointer of large object is at the end of LOB. Otherwise returns false.

Anmerkungen

Hinweis:

This function will return an Oracle error if OCILob::setBuffering is enabled on the LOB.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::size


Erases a specified portion of the internal LOB data

  • « OCILob::eof
  • OCILob::export »
  • PHP Manual
  • OCILob
  • Erases a specified portion of the internal LOB data

OCILob::erase

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::erase — Erases a specified portion of the internal LOB data

Beschreibung

OCILob::erase ( int $offset = ? , int $length = ? ) : int|false

Erases a specified portion of the internal LOB data starting at a specified offset. If called without parameters, it erases all LOB data.

For BLOBs, erasing means that the existing LOB value is overwritten with zero-bytes. For CLOBs, the existing LOB value is overwritten with spaces.

Parameter-Liste

offset

length

Rückgabewerte

Returns the actual number of characters/bytes erased Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::truncate


Exports LOB's contents to a file

  • « OCILob::erase
  • OCILob::flush »
  • PHP Manual
  • OCILob
  • Exports LOB's contents to a file

OCILob::export

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::export — Exports LOB's contents to a file

Beschreibung

OCILob::export ( string $filename , int $start = ? , int $length = ? ) : bool

Exports LOB contents to a file.

Parameter-Liste

filename

Path to the file.

start

Indicates from where to start exporting.

length

Indicates the length of data to be exported.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::import


Flushes/writes buffer of the LOB to the server

  • « OCILob::export
  • OCILob::free »
  • PHP Manual
  • OCILob
  • Flushes/writes buffer of the LOB to the server

OCILob::flush

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::flush — Flushes/writes buffer of the LOB to the server

Beschreibung

OCILob::flush ( int $flag = ? ) : bool

OCILob::flush() actually writes data to the server.

Parameter-Liste

flag

By default, resources are not freed, but using flag OCI_LOB_BUFFER_FREE you can do it explicitly. Be sure you know what you're doing - next read/write operation to the same part of LOB will involve a round-trip to the server and initialize new buffer resources. It is recommended to use OCI_LOB_BUFFER_FREE flag only when you are not going to work with the LOB anymore.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Returns false if buffering was not enabled or an error occurred.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::getBuffering
  • OCILob::setBuffering


Frees resources associated with the LOB descriptor

  • « OCILob::flush
  • OCILob::getBuffering »
  • PHP Manual
  • OCILob
  • Frees resources associated with the LOB descriptor

OCILob::free

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::free — Frees resources associated with the LOB descriptor

Beschreibung

OCILob::free ( ) : bool

Frees resources associated with the descriptor, previously allocated with oci_new_descriptor().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.


Returns current state of buffering for the large object

  • « OCILob::free
  • OCILob::import »
  • PHP Manual
  • OCILob
  • Returns current state of buffering for the large object

OCILob::getBuffering

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::getBuffering — Returns current state of buffering for the large object

Beschreibung

OCILob::getBuffering ( ) : bool

Tells whether the buffering for the large object is on or off.

Rückgabewerte

Returns false if buffering for the large object is off and true if buffering is used.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::setBuffering


Imports file data to the LOB

  • « OCILob::getBuffering
  • OCILob::load »
  • PHP Manual
  • OCILob
  • Imports file data to the LOB

OCILob::import

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::import — Imports file data to the LOB

Beschreibung

OCILob::import ( string $filename ) : bool

Writes data from the filename in to the current position of large object.

Parameter-Liste

filename

Path to the file.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::export
  • OCILob::write


Returns large object's contents

  • « OCILob::import
  • OCILob::read »
  • PHP Manual
  • OCILob
  • Returns large object's contents

OCILob::load

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::load — Returns large object's contents

Beschreibung

OCILob::load ( ) : string

Returns large object's contents. As script execution is terminated when the memory_limit is reached, ensure that the LOB does not exceed this limit. In most cases it's recommended to use OCILob::read instead.

Rückgabewerte

Returns the contents of the object, or false on errors.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::read


Reads part of the large object

  • « OCILob::load
  • OCILob::rewind »
  • PHP Manual
  • OCILob
  • Reads part of the large object

OCILob::read

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::read — Reads part of the large object

Beschreibung

OCILob::read ( int $length ) : string|false

Reads length bytes from the current position of LOB's internal pointer.

Reading stops when length bytes have been read or end of the large object is reached. Internal pointer of the large object will be shifted on the amount of bytes read.

Parameter-Liste

length

The length of data to read, in bytes. Large values will be rounded down to 1 MB.

Rückgabewerte

Returns the contents as a string, Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::load
  • OCILob::write


Moves the internal pointer to the beginning of the large object

  • « OCILob::read
  • OCILob::save »
  • PHP Manual
  • OCILob
  • Moves the internal pointer to the beginning of the large object

OCILob::rewind

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::rewind — Moves the internal pointer to the beginning of the large object

Beschreibung

OCILob::rewind ( ) : bool

Sets the internal pointer to the beginning of the large object.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::seek
  • OCILob::tell


Saves data to the large object

  • « OCILob::rewind
  • OCILob::saveFile »
  • PHP Manual
  • OCILob
  • Saves data to the large object

OCILob::save

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::save — Saves data to the large object

Beschreibung

OCILob::save ( string $data , int $offset = ? ) : bool

Saves data to the large object.

Parameter-Liste

data

The data to be saved.

offset

Can be used to indicate offset from the beginning of the large object.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::write
  • OCILob::import


Alias von OCILob::import

  • « OCILob::save
  • OCILob::seek »
  • PHP Manual
  • OCILob
  • Alias von OCILob::import

OCILob::saveFile

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::saveFile — Alias von OCILob::import()

Beschreibung

Diese Funktion ist ein Alias für: OCILob::import().

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | Die Klasse OCI-Lob wurde in OCILob umbenannt, um den PHP-Namensstandards zu entsprechen.


Sets the internal pointer of the large object

  • « OCILob::saveFile
  • OCILob::setBuffering »
  • PHP Manual
  • OCILob
  • Sets the internal pointer of the large object

OCILob::seek

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::seek — Sets the internal pointer of the large object

Beschreibung

OCILob::seek ( int $offset , int $whence = OCI_SEEK_SET ) : bool

Sets the internal pointer of the large object.

Parameter-Liste

offset

Indicates the amount of bytes, on which internal pointer should be moved from the position, pointed by whence.

whence

May be one of:

  • OCI_SEEK_SET - sets the position equal to offset
  • OCI_SEEK_CUR - adds offset bytes to the current position
  • OCI_SEEK_END - adds offset bytes to the end of large object (use negative value to move to a position before the end of large object)

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::rewind
  • OCILob::tell
  • OCILob::eof


Changes current state of buffering for the large object

  • « OCILob::seek
  • OCILob::size »
  • PHP Manual
  • OCILob
  • Changes current state of buffering for the large object

OCILob::setBuffering

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::setBuffering — Changes current state of buffering for the large object

Beschreibung

OCILob::setBuffering ( bool $on_off ) : bool

Sets the buffering for the large object, depending on the value of the on_off parameter.

Use of this function may provide performance improvements by buffering small reads and writes of LOBs by reducing the number of network round-trips and LOB versions. OCILob::flush() should be used to flush buffers, when you have finished working with the large object.

Parameter-Liste

on_off

true for on and false for off.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Repeated calls to this method with the same flag will return true.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::getBuffering


Returns size of large object

  • « OCILob::setBuffering
  • OCILob::tell »
  • PHP Manual
  • OCILob
  • Returns size of large object

OCILob::size

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::size — Returns size of large object

Beschreibung

OCILob::size ( ) : int|false

Gets the size of the large object.

Rückgabewerte

Returns length of large object value Im Fehlerfall wird false zurückgegeben.. Empty objects have zero length.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.


Returns the current position of internal pointer of large object

  • « OCILob::size
  • OCILob::truncate »
  • PHP Manual
  • OCILob
  • Returns the current position of internal pointer of large object

OCILob::tell

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::tell — Returns the current position of internal pointer of large object

Beschreibung

OCILob::tell ( ) : int

Gets the current position of a LOB's internal pointer.

Rückgabewerte

Returns current position of a LOB's internal pointer or false if an error occurred.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::rewind
  • OCILob::size
  • OCILob::eof


Truncates large object

  • « OCILob::tell
  • OCILob::write »
  • PHP Manual
  • OCILob
  • Truncates large object

OCILob::truncate

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::truncate — Truncates large object

Beschreibung

Lob::truncate ( int $length = 0 ) : bool

Truncates the LOB.

Parameter-Liste

length

If provided, this method will truncate the LOB to length bytes. Otherwise, it will completely purge the LOB.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::erase


Writes data to the large object

  • « OCILob::truncate
  • OCILob::writeTemporary »
  • PHP Manual
  • OCILob
  • Writes data to the large object

OCILob::write

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::write — Writes data to the large object

Beschreibung

OCILob::write ( string $data , int $length = ? ) : int|false

Writes data from the parameter data into the current position of LOB's internal pointer.

Parameter-Liste

data

The data to write in the LOB.

length

If this parameter is given, writing will stop after length bytes have been written or the end of data is reached, whichever comes first.

Rückgabewerte

Returns the number of bytes written Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::read


Writes a temporary large object

  • « OCILob::write
  • OCILob::writeToFile »
  • PHP Manual
  • OCILob
  • Writes a temporary large object

OCILob::writeTemporary

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::writeTemporary — Writes a temporary large object

Beschreibung

OCILob::writeTemporary ( string $data , int $lob_type = OCI_TEMP_CLOB ) : bool

Creates a temporary large object and writes data to it.

You should use OCILob::close when you are done with this object.

Parameter-Liste

data

The data to write.

lob_type

Can be one of the following:

  • OCI_TEMP_BLOB is used to create temporary BLOBs
  • OCI_TEMP_CLOB is used to create temporary CLOBs

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.

Siehe auch

  • OCILob::close


Alias von OCILob::export

  • « OCILob::writeTemporary
  • OCI8 - Veraltete Aliase und Funktionen »
  • PHP Manual
  • OCILob
  • Alias von OCILob::export

OCILob::writeToFile

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::writeToFile — Alias von OCILob::export()

Beschreibung

Diese Funktion ist ein Alias für: OCILob::export().

Changelog

Version | Beschreibung
8.0.0, PECL OCI8 3.0.0 | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.


OCI8 - Veraltete Aliase und Funktionen

Inhaltsverzeichnis

  • oci_internal_debug — Enables or disables internal debug output
  • ocibindbyname — Alias von oci_bind_by_name
  • ocicancel — Alias von oci_cancel
  • ocicloselob — Alias von OCI-Lob::close
  • ocicollappend — Alias von OCICollection::append
  • ocicollassign — Alias von OCICollection::assign
  • ocicollassignelem — Alias von OCICollection::assignElem
  • ocicollgetelem — Alias von OCICollection::getElem
  • ocicollmax — Alias von OCICollection::max
  • ocicollsize — Alias von OCICollection::size
  • ocicolltrim — Alias von OCICollection::trim
  • ocicolumnisnull — Alias von oci_field_is_null
  • ocicolumnname — Alias von oci_field_name
  • ocicolumnprecision — Alias von oci_field_precision
  • ocicolumnscale — Alias von oci_field_scale
  • ocicolumnsize — Alias von oci_field_size
  • ocicolumntype — Alias von oci_field_type
  • ocicolumntyperaw — Alias von oci_field_type_raw
  • ocicommit — Alias von oci_commit
  • ocidefinebyname — Alias von oci_define_by_name
  • ocierror — Alias von oci_error
  • ociexecute — Alias von oci_execute
  • ocifetch — Alias von oci_fetch
  • ocifetchinto — Veraltete Variante von oci_fetch_array, oci_fetch_object, oci_fetch_assoc und oci_fetch_row
  • ocifetchstatement — Alias von oci_fetch_all
  • ocifreecollection — Alias von OCICollection::free
  • ocifreecursor — Alias von oci_free_statement
  • ocifreedesc — Alias von OCI-Lob::free
  • ocifreestatement — Alias von oci_free_statement
  • ociinternaldebug — Alias von oci_internal_debug
  • ociloadlob — Alias von OCI-Lob::load
  • ocilogoff — Alias von oci_close
  • ocilogon — Alias von oci_connect
  • ocinewcollection — Alias von oci_new_collection
  • ocinewcursor — Alias von oci_new_cursor
  • ocinewdescriptor — Alias von oci_new_descriptor
  • ocinlogon — Alias von oci_new_connect
  • ocinumcols — Alias von oci_num_fields
  • ociparse — Alias von oci_parse
  • ociplogon — Alias von oci_pconnect
  • ociresult — Alias von oci_result
  • ocirollback — Alias von oci_rollback
  • ocirowcount — Alias von oci_num_rows
  • ocisavelob — Alias von OCI-Lob::save
  • ocisavelobfile — Alias von OCI-Lob::import
  • ociserverversion — Alias von oci_server_version
  • ocisetprefetch — Alias von oci_set_prefetch
  • ocistatementtype — Alias von oci_statement_type
  • ociwritelobtofile — Alias von OCI-Lob::export
  • ociwritetemporarylob — Alias von OCI-Lob::writeTemporary


Enables or disables internal debug output

  • « OCI8 - Veraltete Aliase und Funktionen
  • ocibindbyname »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Enables or disables internal debug output

oci_internal_debug

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0, PECL OCI8 <= 2.2.0)

oci_internal_debug — Enables or disables internal debug output

Beschreibung

oci_internal_debug ( bool $onoff ) : void

Enables or disables internal debug output.

Parameter-Liste

onoff

Set this to false to turn debug output off or true to turn it on.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Anmerkungen

Hinweis:

This function was removed in PHP 8 and PECL OCI8 3.0.

Hinweis:

This function is a no-op in PHP 5.6 and PECL OCI8 2.0. Use DTrace instead.

Hinweis:

In PHP versions before 5.0.0 you must use ociinternaldebug() instead. This name still can be used, it was left as alias of oci_internal_debug() for downwards compatability. This, however, is deprecated and not recommended.


Alias von oci_bind_by_name

  • « oci_internal_debug
  • ocicancel »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_bind_by_name

ocibindbyname

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocibindbyname — Alias von oci_bind_by_name()

Beschreibung

Alias von oci_bind_by_name()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_cancel

  • « ocibindbyname
  • ocicloselob »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_cancel

ocicancel

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicancel — Alias von oci_cancel()

Beschreibung

Alias von oci_cancel()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCI-Lob::close

  • « ocicancel
  • ocicollappend »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCI-Lob::close

ocicloselob

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 1.0)

ocicloselob — Alias von OCI-Lob::close()

Beschreibung

Alias von OCI-Lob::close()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCICollection::append

  • « ocicloselob
  • ocicollassign »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCICollection::append

ocicollappend

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollappend — Alias von OCICollection::append()

Beschreibung

Alias von OCICollection::append()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCICollection::assign

  • « ocicollappend
  • ocicollassignelem »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCICollection::assign

ocicollassign

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollassign — Alias von OCICollection::assign()

Beschreibung

Alias von OCICollection::assign()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCICollection::assignElem

  • « ocicollassign
  • ocicollgetelem »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCICollection::assignElem

ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollassignelem — Alias von OCICollection::assignElem()

Beschreibung

Alias von OCICollection::assignElem()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCICollection::getElem

  • « ocicollassignelem
  • ocicollmax »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCICollection::getElem

ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollgetelem — Alias von OCICollection::getElem()

Beschreibung

Alias von OCICollection::getElem()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCICollection::max

  • « ocicollgetelem
  • ocicollsize »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCICollection::max

ocicollmax

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollmax — Alias von OCICollection::max()

Beschreibung

Alias von OCICollection::max()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCICollection::size

  • « ocicollmax
  • ocicolltrim »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCICollection::size

ocicollsize

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollsize — Alias von OCICollection::size()

Beschreibung

Alias von OCICollection::size()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCICollection::trim

  • « ocicollsize
  • ocicolumnisnull »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCICollection::trim

ocicolltrim

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolltrim — Alias von OCICollection::trim()

Beschreibung

Alias von OCICollection::trim()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_field_is_null

  • « ocicolltrim
  • ocicolumnname »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_field_is_null

ocicolumnisnull

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnisnull — Alias von oci_field_is_null()

Beschreibung

Alias von oci_field_is_null()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_field_name

  • « ocicolumnisnull
  • ocicolumnprecision »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_field_name

ocicolumnname

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnname — Alias von oci_field_name()

Beschreibung

Alias von oci_field_name()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_field_precision

  • « ocicolumnname
  • ocicolumnscale »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_field_precision

ocicolumnprecision

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnprecision — Alias von oci_field_precision()

Beschreibung

Alias von oci_field_precision()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_field_scale

  • « ocicolumnprecision
  • ocicolumnsize »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_field_scale

ocicolumnscale

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnscale — Alias von oci_field_scale()

Beschreibung

Alias von oci_field_scale()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_field_size

  • « ocicolumnscale
  • ocicolumntype »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_field_size

ocicolumnsize

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnsize — Alias von oci_field_size()

Beschreibung

Alias von oci_field_size()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_field_type

  • « ocicolumnsize
  • ocicolumntyperaw »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_field_type

ocicolumntype

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumntype — Alias von oci_field_type()

Beschreibung

Alias von oci_field_type()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_field_type_raw

  • « ocicolumntype
  • ocicommit »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_field_type_raw

ocicolumntyperaw

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumntyperaw — Alias von oci_field_type_raw()

Beschreibung

Alias von oci_field_type_raw()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_commit

  • « ocicolumntyperaw
  • ocidefinebyname »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_commit

ocicommit

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicommit — Alias von oci_commit()

Beschreibung

Alias von oci_commit()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_define_by_name

  • « ocicommit
  • ocierror »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_define_by_name

ocidefinebyname

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocidefinebyname — Alias von oci_define_by_name()

Beschreibung

Alias von oci_define_by_name()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_error

  • « ocidefinebyname
  • ociexecute »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_error

ocierror

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocierror — Alias von oci_error()

Beschreibung

Alias von oci_error()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_execute

  • « ocierror
  • ocifetch »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_execute

ociexecute

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociexecute — Alias von oci_execute()

Beschreibung

Alias von oci_execute()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_fetch

  • « ociexecute
  • ocifetchinto »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_fetch

ocifetch

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifetch — Alias von oci_fetch()

Beschreibung

Alias von oci_fetch()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Veraltete Variante von oci_fetch_array, oci_fetch_object, oci_fetch_assoc und oci_fetch_row

  • « ocifetch
  • ocifetchstatement »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Veraltete Variante von oci_fetch_array, oci_fetch_object, oci_fetch_assoc und oci_fetch_row

ocifetchinto

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifetchinto —
   Veraltete Variante von oci_fetch_array(),
   oci_fetch_object(), oci_fetch_assoc()
   und oci_fetch_row()

Beschreibung

Veraltete Variante von oci_fetch_array(),
oci_fetch_object(), oci_fetch_assoc()
und oci_fetch_row().

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_fetch_all

  • « ocifetchinto
  • ocifreecollection »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_fetch_all

ocifetchstatement

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifetchstatement — Alias von oci_fetch_all()

Beschreibung

Alias von oci_fetch_all()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCICollection::free

  • « ocifetchstatement
  • ocifreecursor »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCICollection::free

ocifreecollection

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreecollection — Alias von OCICollection::free()

Beschreibung

Alias von OCICollection::free()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_free_statement

  • « ocifreecollection
  • ocifreedesc »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_free_statement

ocifreecursor

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreecursor — Alias von oci_free_statement()

Beschreibung

Alias von oci_free_statement()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCI-Lob::free

  • « ocifreecursor
  • ocifreestatement »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCI-Lob::free

ocifreedesc

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreedesc — Alias von OCI-Lob::free()

Beschreibung

Alias von OCI-Lob::free()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_free_statement

  • « ocifreedesc
  • ociinternaldebug »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_free_statement

ocifreestatement

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreestatement — Alias von oci_free_statement()

Beschreibung

Alias von oci_free_statement()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_internal_debug

  • « ocifreestatement
  • ociloadlob »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_internal_debug

ociinternaldebug

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0, PECL OCI8 <= 2.2.0)

ociinternaldebug — Alias von oci_internal_debug()

Beschreibung

Alias von oci_internal_debug()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCI-Lob::load

  • « ociinternaldebug
  • ocilogoff »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCI-Lob::load

ociloadlob

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociloadlob — Alias von OCI-Lob::load()

Beschreibung

Alias von OCI-Lob::load()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_close

  • « ociloadlob
  • ocilogon »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_close

ocilogoff

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocilogoff — Alias von oci_close()

Beschreibung

Alias von oci_close()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_connect

  • « ocilogoff
  • ocinewcollection »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_connect

ocilogon

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocilogon — Alias von oci_connect()

Beschreibung

Alias von oci_connect()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_new_collection

  • « ocilogon
  • ocinewcursor »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_new_collection

ocinewcollection

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocinewcollection — Alias von oci_new_collection()

Beschreibung

Alias von oci_new_collection()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_new_cursor

  • « ocinewcollection
  • ocinewdescriptor »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_new_cursor

ocinewcursor

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocinewcursor — Alias von oci_new_cursor()

Beschreibung

Alias von oci_new_cursor()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_new_descriptor

  • « ocinewcursor
  • ocinlogon »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_new_descriptor

ocinewdescriptor

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocinewdescriptor — Alias von oci_new_descriptor()

Beschreibung

Alias von oci_new_descriptor()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_new_connect

  • « ocinewdescriptor
  • ocinumcols »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_new_connect

ocinlogon

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocinlogon — Alias von oci_new_connect()

Beschreibung

Alias von oci_new_connect()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_num_fields

  • « ocinlogon
  • ociparse »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_num_fields

ocinumcols

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocinumcols — Alias von oci_num_fields()

Beschreibung

Alias von oci_num_fields()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_parse

  • « ocinumcols
  • ociplogon »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_parse

ociparse

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociparse — Alias von oci_parse()

Beschreibung

Alias von oci_parse()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_pconnect

  • « ociparse
  • ociresult »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_pconnect

ociplogon

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociplogon — Alias von oci_pconnect()

Beschreibung

Alias von oci_pconnect()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_result

  • « ociplogon
  • ocirollback »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_result

ociresult

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociresult — Alias von oci_result()

Beschreibung

Alias von oci_result()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_rollback

  • « ociresult
  • ocirowcount »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_rollback

ocirollback

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocirollback — Alias von oci_rollback()

Beschreibung

Alias von oci_rollback()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_num_rows

  • « ocirollback
  • ocisavelob »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_num_rows

ocirowcount

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocirowcount — Alias von oci_num_rows()

Beschreibung

Alias von oci_num_rows()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCI-Lob::save

  • « ocirowcount
  • ocisavelobfile »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCI-Lob::save

ocisavelob

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocisavelob — Alias von OCI-Lob::save()

Beschreibung

Alias von OCI-Lob::save()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCI-Lob::import

  • « ocisavelob
  • ociserverversion »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCI-Lob::import

ocisavelobfile

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocisavelobfile — Alias von OCI-Lob::import()

Beschreibung

Alias von OCI-Lob::import()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_server_version

  • « ocisavelobfile
  • ocisetprefetch »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_server_version

ociserverversion

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociserverversion — Alias von oci_server_version()

Beschreibung

Alias von oci_server_version()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_set_prefetch

  • « ociserverversion
  • ocistatementtype »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_set_prefetch

ocisetprefetch

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocisetprefetch — Alias von oci_set_prefetch()

Beschreibung

Alias von oci_set_prefetch()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von oci_statement_type

  • « ocisetprefetch
  • ociwritelobtofile »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von oci_statement_type

ocistatementtype

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocistatementtype — Alias von oci_statement_type()

Beschreibung

Alias von oci_statement_type()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCI-Lob::export

  • « ocistatementtype
  • ociwritetemporarylob »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCI-Lob::export

ociwritelobtofile

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociwritelobtofile — Alias von OCI-Lob::export()

Beschreibung

Alias von OCI-Lob::export()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Alias von OCI-Lob::writeTemporary

  • « ociwritelobtofile
  • Paradox »
  • PHP Manual
  • OCI8 - Veraltete Aliase und Funktionen
  • Alias von OCI-Lob::writeTemporary

ociwritetemporarylob

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 1.0)

ociwritetemporarylob — Alias von OCI-Lob::writeTemporary()

Beschreibung

Alias von OCI-Lob::writeTemporary()

Warnung

Dieser Alias wurde mit PHP 5.4.0 als DEPRECATED (veraltet) markiert. Sich auf diesen Alias zu verlassen ist in keiner Weise empfehlenswert.


Paradox File Access

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Paradox Funktionen
    • px_close — Closes a paradox database
    • px_create_fp — Create a new paradox database
    • px_date2string — Converts a date into a string
    • px_delete_record — Deletes record from paradox database
    • px_delete — Deletes resource of paradox database
    • px_get_field — Returns the specification of a single field
    • px_get_info — Return lots of information about a paradox file
    • px_get_parameter — Gets a parameter
    • px_get_record — Returns record of paradox database
    • px_get_schema — Returns the database schema
    • px_get_value — Gets a value
    • px_insert_record — Inserts record into paradox database
    • px_new — Create a new paradox object
    • px_numfields — Returns number of fields in a database
    • px_numrecords — Returns number of records in a database
    • px_open_fp — Open paradox database
    • px_put_record — Stores record into paradox database
    • px_retrieve_record — Returns record of paradox database
    • px_set_blob_file — Sets the file where blobs are read from
    • px_set_parameter — Sets a parameter
    • px_set_tablename — Sets the name of a table (deprecated)
    • px_set_targetencoding — Sets the encoding for character fields (deprecated)
    • px_set_value — Sets a value
    • px_timestamp2string — Converts the timestamp into a string
    • px_update_record — Updates record in paradox database


Einführung

This module allows to read and write Paradox databases, primary index files and blob files. Write support has been proven to be quite reliable, though due to lack of documentation the produced files may not in any case be readable by other applications. Encrypted databases can be read without specifying a password if pxlib >= 0.5.0 is used.

Hinweis:

This module is also in development and may change, though major changes to the API are not expected.

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.


Anforderungen

You need at least PHP 5.0.0 and pxlib >= 0.4.4 for the basic set of functions. Some newer functions are only available with pxlib >= 0.6.0. Reading and writing of encrypted databases requires at least pxlib >= 0.5.0. The paradox library (pxlib) is available at » http://pxlib.sourceforge.net.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/paradox

Make sure you have pxlib installed before. If you install pxlib from an rpm or debian package, do not forget to install the development package as well.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

px_new() creates a new Paradox object required by all Paradox functions.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

The following two tables lists all constants defined by the paradox extension.

Contants for field types
Name | Meaning
PX_FIELD_ALPHA | Character data with fixed length
PX_FIELD_DATE | Date, number of days since 1.1.0000
PX_FIELD_SHORT | Short integer (2 Bytes)
PX_FIELD_LONG | Long integer (4 Bytes)
PX_FIELD_CURRENCY | same as PX_FIELD_NUMBER
PX_FIELD_NUMBER | Double
PX_FIELD_LOGICAL | Boolean
PX_FIELD_MEMOBLOB | Binary large object
PX_FIELD_BLOB | Binary large object (not supported)
PX_FIELD_FMTMEMOBLOB | Binary large object
PX_FIELD_OLE | OLE object (basically a blob, not supported)
PX_FIELD_GRAPHIC | Graphic (basically a blob, not supported)
PX_FIELD_TIME | time, number of milli seconds since midnight
PX_FIELD_TIMESTAMP | timestamp, number of milli seconds since 1.1.0000
PX_FIELD_AUTOINC | Auto incrementing interger (like PX_FIELD_LONG)
PX_FIELD_BCD | Decimal number stored in bcd format (not supported)
PX_FIELD_BYTES | Array of Bytes with not more than 255 bytes (not supported)
PX_KEYTOLOWER | Turn all field names into lower case
PX_KEYTOUPPER | Turn all field names into upper case
Contants for file types
Name | Meaning
PX_FILE_INDEX_DB | Indexed database
PX_FILE_PRIM_INDEX | Primary index
PX_FILE_NON_INDEX_DB | None indexed database
PX_FILE_NON_INC_SEC_INDEX | None incremental secondary index
PX_FILE_SEC_INDEX | Secondary index
PX_FILE_INC_SEC_INDEX | Incremental secondary index
PX_FILE_NON_INC_SEC_INDEX_G | Non incremental secondary index
PX_FILE_SEC_INDEX_G | Secondary index
PX_FILE_INC_SEC_INDEX_G | Non incremental secondary index


Paradox Funktionen

Object oriented API

The paradox extension provides also an object oriented API. It consists of only one class called paradox_db. Its methods only differ from the functions in its name and of course the missing first parameter. The following table will list all methods and its equivalent functions.

Methods of class paradox_db
Name of method | Equivalent function
Constructor | px_new()
Destructor | px_delete()
open_fp() | px_open_fp()
create_fp() | px_create_fp()
close() | px_close()
numrecords() | px_numrecords()
numfields() | px_numfields()
get_record() | px_get_record()
put_record() | px_put_record()
retrieve_record() | px_retrieve_record()
delete_record() | px_delete_record()
insert_record() | px_insert_record()
update_record() | px_update_record()
get_field() | px_get_field()
get_schema() | px_get_schema()
get_info() | px_get_info()
set_parameter() | px_set_parameter()
get_parameter() | px_get_parameter()
set_value() | px_set_value()
get_value() | px_get_value()
get_info() | px_get_info()
set_targetencoding() | px_set_targetencoding()
set_tablename() | px_set_tablename()
set_blob_file() | px_set_blob_file()
date2string() | px_date2string()
timestamp2string() | px_timestamp2string()

Inhaltsverzeichnis

  • px_close — Closes a paradox database
  • px_create_fp — Create a new paradox database
  • px_date2string — Converts a date into a string
  • px_delete_record — Deletes record from paradox database
  • px_delete — Deletes resource of paradox database
  • px_get_field — Returns the specification of a single field
  • px_get_info — Return lots of information about a paradox file
  • px_get_parameter — Gets a parameter
  • px_get_record — Returns record of paradox database
  • px_get_schema — Returns the database schema
  • px_get_value — Gets a value
  • px_insert_record — Inserts record into paradox database
  • px_new — Create a new paradox object
  • px_numfields — Returns number of fields in a database
  • px_numrecords — Returns number of records in a database
  • px_open_fp — Open paradox database
  • px_put_record — Stores record into paradox database
  • px_retrieve_record — Returns record of paradox database
  • px_set_blob_file — Sets the file where blobs are read from
  • px_set_parameter — Sets a parameter
  • px_set_tablename — Sets the name of a table (deprecated)
  • px_set_targetencoding — Sets the encoding for character fields (deprecated)
  • px_set_value — Sets a value
  • px_timestamp2string — Converts the timestamp into a string
  • px_update_record — Updates record in paradox database


Closes a paradox database

  • « Paradox Funktionen
  • px_create_fp »
  • PHP Manual
  • Paradox Funktionen
  • Closes a paradox database

px_close

(PECL paradox >= 1.0.0)

px_close — Closes a paradox database

Beschreibung

px_close ( resource $pxdoc ) : bool

Closes the paradox database. This function will not close the file. You will have to call fclose() afterwards.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • px_open_fp() - Open paradox database
  • The example at px_new() - Create a new paradox object


Create a new paradox database

  • « px_close
  • px_date2string »
  • PHP Manual
  • Paradox Funktionen
  • Create a new paradox database

px_create_fp

(PECL paradox >= 1.0.0)

px_create_fp — Create a new paradox database

Beschreibung

px_create_fp ( resource $pxdoc , resource $file , array $fielddesc ) : bool

Create a new paradox database file. The actual file has to be opened before with fopen(). Make sure the file is writable.

Hinweis:

Calling this functions issues a warning about an empty tablename which can be safely ignored. Just set the tablename afterwards with px_set_parameter().

Hinweis:

This function is highly experimental, due to insufficient documentation of the paradox file format. Database files created with this function can be opened by px_open_fp() and has been successfully opened by the Paradox software, but your milage may vary.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

file

File handle as returned by fopen().

fielddesc

fielddesc is an array containing one element for each field specification. A field specification is an array itself with either two or three elements.The first element is always a string value used as the name of the field. It may not be larger than ten characters. The second element contains the field type which is one of the constants listed in the table Constants for field types. In the case of a character field or bcd field, you will have to provide a third element specifying the length respectively the precesion of the field. If your field specification contains blob fields, you will have to make sure to either make the field large enough for all field values to fit or specify a blob file with px_set_blob_file() for storing the blobs. If this is not done the field data is truncated.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Creating a Paradox database with two fields

<?php
if(!$pxdoc = px_new()) {
  /* Error handling */
}
$fp = fopen("test.db", "w+");
$fields = array(array("col1", "S"), array("col2", "I"));
if(!px_create_fp($pxdoc, $fp, $fields)) {
  /* Error handling */
}
px_set_parameter($pxdoc, "tablename", "testtable");
for($i=-50; $i<50; $i++) {
  $rec = array($i, -$i);
  px_put_record($pxdoc, $rec);
}
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

Siehe auch

  • px_new() - Create a new paradox object
  • px_put_record() - Stores record into paradox database
  • fopen() - Öffnet eine Datei oder URL


Converts a date into a string

  • « px_create_fp
  • px_delete_record »
  • PHP Manual
  • Paradox Funktionen
  • Converts a date into a string

px_date2string

(PECL paradox >= 1.4.0)

px_date2string — Converts a date into a string

Beschreibung

px_date2string ( resource $pxdoc , int $value , string $format ) : string

Turns a date as it stored in the paradox file into human readable format. Paradox dates are the number of days since 1.1.0000. This function is just for convenience. It can be easily replaced by some math and the calendar functions as demonstrated in the example below.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

value

Value as stored in paradox database field of type PX_FIELD_DATE.

format

String format similar to the format used by date(). The placeholders support by this function is a subset of those supported by date() (Y, y, m, n, d, j, L).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Turn a paradox date into a human readable form

<?php
$px = px_new();

/* make up a date as it could be stored in */
/* a date field of a paradox db. */
/* 700000 days since 1.1.0000. */
$days = 700000;

/* Use the calendar functions to print a */
/* human readable format of the date */
echo jdtogregorian($days+1721425)."\n";
/* px_date2string() outputs the same */
echo px_date2string($px, $days, "n/d/Y")."\n";

px_delete($px);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

7/15/1917
7/15/1917

Siehe auch

  • px_timestamp2string() - Converts the timestamp into a string
  • jdtogregorian() - Wandelt eine julianische Tageszahl in ein gregorianischen Datum um


Deletes record from paradox database

  • « px_date2string
  • px_delete »
  • PHP Manual
  • Paradox Funktionen
  • Deletes record from paradox database

px_delete_record

(PECL paradox >= 1.4.0)

px_delete_record — Deletes record from paradox database

Beschreibung

px_delete_record ( resource $pxdoc , int $num ) : bool

This function deletes a record from the database. It does not free the space in the database file but just marks it as deleted. Inserting a new record afterwards will reuse the space.

Hinweis:

This function is only available if pxlib >= 0.6.0 is used.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Deletes resource of paradox database

  • « px_delete_record
  • px_get_field »
  • PHP Manual
  • Paradox Funktionen
  • Deletes resource of paradox database

px_delete

(PECL paradox >= 1.0.0)

px_delete — Deletes resource of paradox database

Beschreibung

px_delete ( resource $pxdoc ) : bool

Deletes the resource of the paradox file and frees all memory.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Returns the specification of a single field

  • « px_delete
  • px_get_info »
  • PHP Manual
  • Paradox Funktionen
  • Returns the specification of a single field

px_get_field

(PECL paradox >= 1.0.0)

px_get_field — Returns the specification of a single field

Beschreibung

px_get_field ( resource $pxdoc , int $fieldno ) : array

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

fieldno

Number of the field. The first field has number 0. Specifying a field number less than 0 and greater or equal the number of fields will trigger an error.

Rückgabewerte

Returns the specification of the fieldno'th database field as an associated array. The array contains three fields named name, type, and size.


Return lots of information about a paradox file

  • « px_get_field
  • px_get_parameter »
  • PHP Manual
  • Paradox Funktionen
  • Return lots of information about a paradox file

px_get_info

(PECL paradox >= 1.0.0)

px_get_info — Return lots of information about a paradox file

Beschreibung

px_get_info ( resource $pxdoc ) : array

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

Rückgabewerte

Returns an associated array with lots of information about a paradox file. This array is likely to be extended in the future.

fileversion

Version of file multiplied by 10, e.g. 70.

tablename

Name of table as stored in the file. If the database was created by pxlib, then this will be the name of the file without the extension.

numrecords

Number of records in this table.

numfields

Number of fields in this table.

headersize

Number of bytes used for the header. This is usually 0x800.

recordsize

Number of bytes used for each record. This is the sum of all field sizes (available since version 1.4.2).

maxtablesize

This value multiplied by 0x400 is the size of a data block in bytes. The maximum number of records in a datablock is the integer part of (maxtablesize * 0x400 - 8) / recordsize.

numdatablocks

The number of data blocks in the file. Each data block contains a certain number of records which depends on the record size and the data block size (maxtablesize). Data blocks may not necessarily be completely filled.

numindexfields

Number of fields used for the primary index. The fields do always start with field number 1.

codepage

The DOS codepage which was used for encoding fields with character data. If the target encoding is not set with px_set_targetencoding() this will be the encoding for character fields when records are being accessed with px_get_record() or px_retrieve_record().

Siehe auch

  • px_numfields() - Returns number of fields in a database
  • px_numrecords() - Returns number of records in a database


Gets a parameter

  • « px_get_info
  • px_get_record »
  • PHP Manual
  • Paradox Funktionen
  • Gets a parameter

px_get_parameter

(PECL paradox >= 1.1.0)

px_get_parameter — Gets a parameter

Beschreibung

px_get_parameter ( resource $pxdoc , string $name ) : string|false

Gets various parameters.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

name

The name can be one of the following:

tablename

The name of the table as it will be stored in the database header.

targetencoding

The encoding for the output. Data which is being read from character fields with px_get_record() or px_retrieve_record() is recoded into the targetencoding. If it is not set, then the data will be delivered as stored in the database file.

inputencoding

The encoding of the input data which is to be stored into the database. When storing data of character fields in the database, the data is expected to be delivered in this encoding.

Rückgabewerte

Returns the value of the parameterIm Fehlerfall wird false zurückgegeben..


Returns record of paradox database

  • « px_get_parameter
  • px_get_schema »
  • PHP Manual
  • Paradox Funktionen
  • Returns record of paradox database

px_get_record

(PECL paradox >= 1.0.0)

px_get_record — Returns record of paradox database

Beschreibung

px_get_record ( resource $pxdoc , int $num , int $mode = 0 ) : array

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

mode

The optional mode can be PX_KEYTOLOWER or PX_KEYTOUPPER in order to convert the keys of the returned array into lower or upper case. If mode is not passed or is 0, then the key will be exactly like the field name. The element values will contain the field values. NULL values will be retained and are different from 0.0, 0 or the empty string. Fields of type PX_FIELD_TIME will be returned as an integer counting the number of milliseconds starting at midnight. A timestamp (PX_FIELD_TIMESTAMP) and date (PX_FIELD_DATE) are floating point respectively int values counting milliseconds respectively days starting at the beginning of julian calendar. Use the functions px-timestamp2string() and px-date2string() to convert them into a character representation.

Rückgabewerte

Returns the num'th record from the paradox database. The record is returned as an associated array with its keys being the field names.

Siehe auch

  • px_retrieve_record() - Returns record of paradox database


Returns the database schema

  • « px_get_record
  • px_get_value »
  • PHP Manual
  • Paradox Funktionen
  • Returns the database schema

px_get_schema

(PECL paradox >= 1.0.0)

px_get_schema — Returns the database schema

Beschreibung

px_get_schema ( resource $pxdoc , int $mode = 0 ) : array

px_get_schema() returns the database schema.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

mode

If the optional mode is PX_KEYTOLOWER or PX_KEYTOUPPER the keys of the returned array will be converted to lower or upper case. If mode is 0 or not passed at all, then the key name will be identical to the field name.

Rückgabewerte

Returns the schema of a database file as an associated array. The key name is equal to the field name. Each array element is itself an associated array containing the two fields type and size. type is one of the constants in table Constants for field types. size is the number of bytes this field consumes in the record. The total of all field sizes is equal to the record size as it can be retrieved with px-get-info().


Gets a value

  • « px_get_schema
  • px_insert_record »
  • PHP Manual
  • Paradox Funktionen
  • Gets a value

px_get_value

(PECL paradox >= 1.1.0)

px_get_value — Gets a value

Beschreibung

px_get_value ( resource $pxdoc , string $name ) : float|false

Gets various values.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

name

name can be one of the following.

numprimkeys

The number of primary keys. Paradox databases always use the first numprimkeys fields for the primary index.

Rückgabewerte

Returns the value of the parameterIm Fehlerfall wird false zurückgegeben..


Inserts record into paradox database

  • « px_get_value
  • px_new »
  • PHP Manual
  • Paradox Funktionen
  • Inserts record into paradox database

px_insert_record

(PECL paradox >= 1.4.0)

px_insert_record — Inserts record into paradox database

Beschreibung

px_insert_record ( resource $pxdoc , array $data ) : int

Inserts a new record into the database. The record is not necessarily inserted at the end of the database, but may be inserted at any position depending on where the first free slot is found.

The record data is passed as an array of field values. The elements in the array must correspond to the fields in the database. If the array has less elements than fields in the database, the remaining fields will be set to null.

Most field values can be passed as its equivalent php type e.g. a long value is used for fields of type PX_FIELD_LONG, PX_FIELD_SHORT and PX_FIELD_AUTOINC, a double values is used for fields of type PX_FIELD_CURRENCY and PX_FIELD_NUMBER. Field values for blob and alpha fields are passed as strings.

Fields of type PX_FIELD_TIME and PX_FIELD_DATE both require a long value. In the first case this is the number of milliseconds since midnight. In the second case this is the number of days since 1.1.0000. Below there are two examples to convert the current date or timestamp into a value suitable for one of paradox's date/time fields.

Hinweis:

This function is only available if pxlib >= 0.6.0 is used.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

data

Associated or indexed array containing the field values as e.g. returned by px_retrieve_record().

Rückgabewerte

Returns false on failure or the record number in case of success.

Beispiele

Beispiel #1 Set the date/time fields in a paradox database to the current date/time

<?php
$px = px_new();
$fp = fopen("test.db", "w+");
px_create_fp($px, $fp, array(array("timestamp", "@"), array("time", "T"), array("date", "D")));

$curdate = getdate();
$jd = gregoriantojd($curdate["mon"], $curdate["mday"], $curdate["year"]);
$days = $jd - 1721425; /* Number of days between 1.1.4714 b.c. and 1.1.0000 */
$secs = $curdate["hours"]*3600 + $curdate["minutes"]*60 + $curdate["seconds"];
px_insert_record($px, array($days*86400000.0 + $secs*1000.0, $secs*1000.0, $days));

$curtimestamp = microtime(true);
$days = (int) ($curtimestamp/86400);
$secs = $curtimestamp - ($days * 86400.0);
$days += 2440588; /* Number of days between 1.1.4714 b.c. and 1.1.1970 */
$days -= 1721425; /* Number of days between 1.1.4714 b.c. and 1.1.0000 */
px_insert_record($px, array($days*86400000.0 + $secs*1000.0, $secs*1000.0, $days));
for($i=0; $i<2; $i++) {
    $rec = px_retrieve_record($px, $i);
    echo px_timestamp2string($px, $rec["timestamp"], "n/d/Y H:i:s")."\n";
    echo px_date2string($px, $rec["date"], "n/d/Y")."\n";
}
px_close($px);
px_delete($px);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2/21/2006 21:42:30
2/21/2006
2/21/2006 20:42:30
2/21/2006

The Julian day count as passed to jdtogregorian() has a different base of 1.1.4714 b.c. and must therefore be calculated by adding 1721425 to the day count used in the paradox file. Turning the day count into a timestamp is easily done by multiplying with 86400000.0 to obtain milli seconds.

Siehe auch

px_update_record() - Updates record in paradox database


Create a new paradox object

  • « px_insert_record
  • px_numfields »
  • PHP Manual
  • Paradox Funktionen
  • Create a new paradox object

px_new

(PECL paradox >= 1.0.0)

px_new — Create a new paradox object

Beschreibung

px_new ( ) : resource

Create a new paradox object. You will have to call this function before any further functions. px_new() does not create any file on the disk, it just creates an instance of a paradox object. This function must not be called if the object oriented interface is used. Use new paradox_db() instead.

Rückgabewerte

Returns false on failure.

Beispiele

Beispiel #1 Opening a Paradox database

<?php
if(!$pxdoc = px_new()) {
  /* Error handling */
}
$fp = fopen("test.db", "r");
if(!px_open_fp($pxdoc, $fp)) {
  /* Error handling */
}
// ...
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

If you prefer the object oriented API, then the above example will look like the following.

Beispiel #2 Opening a Paradox database

<?php
$fp = fopen("test.db", "r");
$pxdoc = new paradox_db();
if(!$pxdoc->open_fp($fp)) {
  /* Error handling */
}
// ...
$pxdoc->close();
fclose($fp);
?>

Siehe auch

  • px_delete() - Deletes resource of paradox database
  • px_open_fp() - Open paradox database


Returns number of fields in a database

  • « px_new
  • px_numrecords »
  • PHP Manual
  • Paradox Funktionen
  • Returns number of fields in a database

px_numfields

(PECL paradox >= 1.0.0)

px_numfields — Returns number of fields in a database

Beschreibung

px_numfields ( resource $pxdoc ) : int

Get the number of fields in a database file.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

Rückgabewerte

Returns the number of fields in a database file. The return value of this function is identical to the element numfields in the array returned by px_get_info().


Returns number of records in a database

  • « px_numfields
  • px_open_fp »
  • PHP Manual
  • Paradox Funktionen
  • Returns number of records in a database

px_numrecords

(PECL paradox >= 1.0.0)

px_numrecords — Returns number of records in a database

Beschreibung

px_numrecords ( resource $pxdoc ) : int

Get the number of records in a database file.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

Rückgabewerte

Returns the number of records in a database file. The return value of this function is identical to the element numrecords in the array returned by px_get_info().


Open paradox database

  • « px_numrecords
  • px_put_record »
  • PHP Manual
  • Paradox Funktionen
  • Open paradox database

px_open_fp

(PECL paradox >= 1.0.0)

px_open_fp — Open paradox database

Beschreibung

px_open_fp ( resource $pxdoc , resource $file ) : bool

Open an existing paradox database file. The actual file has to be opened before with fopen(). This function can also be used to open primary index files and tread them like a paradox database. This is supported for those who would like to investigate a primary index. It cannot be used to accelerate access to a database file.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

file

file is the return value from fopen() with the actual database file as parameter. Make sure the database is writable if you plan to update or insert records.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fopen() - Öffnet eine Datei oder URL
  • The example at px_new() - Create a new paradox object


Stores record into paradox database

  • « px_open_fp
  • px_retrieve_record »
  • PHP Manual
  • Paradox Funktionen
  • Stores record into paradox database

px_put_record

(PECL paradox >= 1.0.0)

px_put_record — Stores record into paradox database

Beschreibung

px_put_record ( resource $pxdoc , array $record , int $recpos = -1 ) : bool

Stores a record into a paradox database. The record is always added at the end of the database, regardless of any free slots. Use px_insert_record() to add a new record into the first free slot found in the database.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

record

Associated or indexed array containing the field values as e.g. returned by px_retrieve_record().

recpos

This optional parameter may be used to specify a record number greater than the current number of records in the database. The function will add as many empty records as needed. There is hardly any need for this parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Returns record of paradox database

  • « px_put_record
  • px_set_blob_file »
  • PHP Manual
  • Paradox Funktionen
  • Returns record of paradox database

px_retrieve_record

(PECL paradox >= 1.4.0)

px_retrieve_record — Returns record of paradox database

Beschreibung

px_retrieve_record ( resource $pxdoc , int $num , int $mode = 0 ) : array

This function is very similar to px_get_record() but uses internally a different approach to retrieve the data. It relies on pxlib for reading each single field value, which usually results in support for more field types.

Hinweis:

This function is only available if pxlib >= 0.6.0 is used.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

mode

The optional mode can be PX_KEYTOLOWER or PX_KEYTOUPPER in order to convert the keys into lower or upper case. If mode is not passed or is 0, then the key will be exactly like the field name. The element values will contain the field values. NULL values will be retained and are different from 0.0, 0 or the empty string. Fields of type PX_FIELD_TIME will be returned as an integer counting the number of milliseconds starting at midnight. A timestamp is a floating point value also counting milliseconds starting at the beginning of julian calendar.

Rückgabewerte

Returns the num'th record from the paradox database. The record is returned as an associated array with its keys being the field names.

Siehe auch

  • px_get_record() - Returns record of paradox database


Sets the file where blobs are read from

  • « px_retrieve_record
  • px_set_parameter »
  • PHP Manual
  • Paradox Funktionen
  • Sets the file where blobs are read from

px_set_blob_file

(PECL paradox >= 1.3.0)

px_set_blob_file — Sets the file where blobs are read from

Beschreibung

px_set_blob_file ( resource $pxdoc , string $filename ) : bool

Sets the name of the file where blobs are going to be read from or written into. Without calling this function, px_get_record() or px_retrieve_record() will only return data in blob fields if the data is part of the record and not stored in the blob file. Blob data is stored in the record if it is small enough to fit in the size of the blob field.

Calling px_put_record(),
px_insert_record(), or
px_update_record() without calling
px_set_blob_file() will result in truncated blob fields
unless the data fits into the database file.

Calling this function twice will close the first blob file and open the new one.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

filename

The name of the file. Its extension should be .MB.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Sets a parameter

  • « px_set_blob_file
  • px_set_tablename »
  • PHP Manual
  • Paradox Funktionen
  • Sets a parameter

px_set_parameter

(PECL paradox >= 1.1.0)

px_set_parameter — Sets a parameter

Beschreibung

px_set_parameter ( resource $pxdoc , string $name , string $value ) : bool

Sets various parameters.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

name

Depending on the parameter you want to set, name can be one of the following.

tablename

The name of the table as it will be stored in the database header.

targetencoding

The encoding for the output. Data which is being read from character fields is recoded into the targetencoding.

inputencoding

The encoding of the input data which is to be stored into the database.

value

The value of parameter to set. For inputencoding and targetencoding this must be the name of the encoding as understood by iconv or recode, e.g. iso-8859-1, utf-8, cp850.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • px_get_info() - Return lots of information about a paradox file to determine the DOS code page.


Sets the name of a table (deprecated)

  • « px_set_parameter
  • px_set_targetencoding »
  • PHP Manual
  • Paradox Funktionen
  • Sets the name of a table (deprecated)

px_set_tablename

(PECL paradox >= 1.0.0)

px_set_tablename — Sets the name of a table (deprecated)

Beschreibung

px_set_tablename ( resource $pxdoc , string $name ) : void|false

Sets the table name of a paradox database, which was created with px_create_fp(). This function is deprecated use px_set_parameter() instead.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

tablename

The name of the table. If it is not set explicitly it will be set to the name of the database file.

Rückgabewerte

Returns null on successIm Fehlerfall wird false zurückgegeben..

Siehe auch

px_set_parameter() - Sets a parameter


Sets the encoding for character fields (deprecated)

  • « px_set_tablename
  • px_set_value »
  • PHP Manual
  • Paradox Funktionen
  • Sets the encoding for character fields (deprecated)

px_set_targetencoding

(PECL paradox >= 1.0.0)

px_set_targetencoding — Sets the encoding for character fields (deprecated)

Beschreibung

px_set_targetencoding ( resource $pxdoc , string $encoding ) : bool

Set the encoding for data retrieved from a character field. All character fields will be recoded to the encoding set by this function. If the encoding is not set, the character data will be returned in the DOS code page encoding as specified in the database file. The encoding can be any string identifier known to iconv or recode. On Unix systems run iconv -l for a list of available encodings.

This function is deprecated and should be replaced by calling px_set_parameter().

See also px_get_info() to determine the DOS code page as stored in the database file.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

encoding

The encoding for the output. Data which is being read from character fields is recoded into the targetencoding.

Rückgabewerte

Returns false if the encoding could not be set, e.g. the encoding is unknown, or pxlib does not support recoding at all. In the second case a warning will be issued.

Siehe auch

px_set_parameter() - Sets a parameter


Sets a value

  • « px_set_targetencoding
  • px_timestamp2string »
  • PHP Manual
  • Paradox Funktionen
  • Sets a value

px_set_value

(PECL paradox >= 1.1.0)

px_set_value — Sets a value

Beschreibung

px_set_value ( resource $pxdoc , string $name , float $value ) : bool

Sets various values.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

name

name can be one of the following.

numprimkeys

The number of primary keys. Paradox databases always use the first numprimkeys fields for the primary index.

value

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

px_set_parameter() - Sets a parameter


Converts the timestamp into a string

  • « px_set_value
  • px_update_record »
  • PHP Manual
  • Paradox Funktionen
  • Converts the timestamp into a string

px_timestamp2string

(PECL paradox >= 1.4.0)

px_timestamp2string — Converts the timestamp into a string

Beschreibung

px_timestamp2string ( resource $pxdoc , float $value , string $format ) : string

Turns a timestamp as it stored in the paradox file into human readable format. Paradox timestamps are the number of miliseconds since 0001-01-02. This function is just for convenience. It can be easily replaced by some math and the calendar functions as demonstrated in the following example.

Parameter-Liste

pxdoc

Resource identifier of the paradox database.

value

Value as stored in paradox database field of type PX_FIELD_TIME, or PX_FIELD_TIMESTAMP.

format

String format similar to the format used by date(). The placeholders support by this function is a subset of those supported by date() (Y, y, m, n, d, j, H, h, G, g, i, s, A, a, L).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Turn a paradox timestamp into a human readable form

<?php
$px = px_new();

/* make up a date as it could be stored in */
/* a date field of a paradox db. */
/* 700000 days since 1.1.0000. */
$days = 700000;

/* Use the calendar functions to print a */
/* human readable format of the date */
echo jdtogregorian($days+1721425)."\n";

/* Turn it into a timestamp as it stored in a paradox database */
/* Timestamps are stored in miliseconds since 0001-01-02 */
$stamp = $days * 86400.0 * 1000.0;
/* Add one hour */
$stamp += 3600000.0;
/* The following will output '7/15/1917 01:00:00'. */
echo px_timestamp2string($px, $stamp, "n/d/Y H:i:s")."\n";

px_delete($px);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

7/15/1917
7/15/1917 01:00:00

The Julian day count as passed to jdtogregorian() has a different base of 1.1.4714 b.c. and must therefore be calculated by adding 1721425 to the day count used in the paradox file. Turning the day count into a timestamp is easily done by multiplying with 86400000.0 to obtain miliseconds.

Siehe auch

  • px_date2string() - Converts a date into a string
  • jdtogregorian() - Wandelt eine julianische Tageszahl in ein gregorianischen Datum um


Updates record in paradox database

  • « px_timestamp2string
  • PostgreSQL »
  • PHP Manual
  • Paradox Funktionen
  • Updates record in paradox database

px_update_record

(PECL paradox >= 1.4.0)

px_update_record — Updates record in paradox database

Beschreibung

px_update_record ( resource $pxdoc , array $data , int $num ) : bool

Updates an exiting record in the database. The record starts at 0.

The record data is passed as an array of field values. The elements in the array must correspond to the fields in the database. If the array has less elements than fields in the database, the remaining fields will be set to null.

Hinweis:

This function is only available if pxlib >= 0.6.0 is used.

Parameter-Liste

pxdoc

Resource identifier of the paradox database as returned by px_new().

data

Associated array containing the field values as returned by px_retrieve_record().

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

px_insert_record() - Inserts record into paradox database


PostgreSQL

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Grundlegende Nutzung
    • Grundlegende Verwendung
  • PostgreSQL-Funktionen
    • pg_affected_rows — Gibt die Anzahl betroffener Datensätze (Tupel) zurück
    • pg_cancel_query — Löscht eine asynchrone Abfrage
    • pg_client_encoding — Liefert die Kodierung des Clients
    • pg_close — Schließt eine PostgreSQL-Verbindung
    • pg_connect_poll — Poll the status of an in-progress asynchronous PostgreSQL connection attempt
    • pg_connect — Öffnet eine PostgreSQL-Verbindung
    • pg_connection_busy — Gibt den Status der Verbindung zurück (busy/not busy)
    • pg_connection_reset — Setzt die Verbindung zurück und verbindet neu
    • pg_connection_status — Gibt den Verbindungsstatus zurück
    • pg_consume_input — Reads input on the connection
    • pg_convert — Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form
    • pg_copy_from — Fügt Datensätze aus einem Array in eine Tabelle ein
    • pg_copy_to — Kopiert eine Tabelle in ein Array
    • pg_dbname — Liefert den Namen der Datenbank
    • pg_delete — Löscht Datensätze
    • pg_end_copy — Synchronisation mit dem PostgreSQL-Server
    • pg_escape_bytea — Maskiert Zeichenketten zum Einfügen in ein Feld vom Typ bytea
    • pg_escape_identifier — Escape a identifier for insertion into a text field
    • pg_escape_literal — Escape a literal for insertion into a text field
    • pg_escape_string — Maskiert einen String für Abfragen
    • pg_execute — Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis
    • pg_fetch_all_columns — Gibt alle Werte einer bestimmten Spalte eines Abfrageergebnisses in einem Array zurück
    • pg_fetch_all — Liefert alle Zeilen eines Abfrageergebnisses als Array
    • pg_fetch_array — Liefert eine Zeile als Array
    • pg_fetch_assoc — Liefert eine Zeile als assoziatives Array
    • pg_fetch_object — Liefert einen Datensatz als Objekt
    • pg_fetch_result — Liefert Werte aus einer Ergebnismenge
    • pg_fetch_row — Liefert einen Datensatz als numerisches Array
    • pg_field_is_null — Prüft, ob ein Feld einen SQL-NULL-Wert enthält
    • pg_field_name — Liefert den Namen eines Feldes
    • pg_field_num — Gibt die Feldnummer des angegebenen Feldes zurück
    • pg_field_prtlen — Liefert die Länge des Feldes
    • pg_field_size — Liefert die interne Größe des belegten Speichers für ein Feld
    • pg_field_table — Gibt zu einem Feldnamen den Namen der Tabelle oder deren oid zurück, in der das Feld definiert ist
    • pg_field_type_oid — Liefert die ID des PostgreSQL-Datentyps (OID) eines Feldes
    • pg_field_type — Liefert den Datentyp eines Feldes
    • pg_flush — Flush outbound query data on the connection
    • pg_free_result — Gibt den durch Ergebnisse belegten Speicher frei
    • pg_get_notify — Liefert eine SQL-NOTIFY-Nachricht
    • pg_get_pid — Prüft die Datenbankverbindung
    • pg_get_result — Liefert asynchrone Abfrageergebnisse
    • pg_host — Liefert den Namen des Host, zu dem verbunden wurde
    • pg_insert — Überträgt Werte aus einem Array in eine Tabelle
    • pg_last_error — Liefert die letzte Fehlermeldung einer Verbindung
    • pg_last_notice — Liefert die letzte NOTICE-Meldung des PostgreSQL-Servers
    • pg_last_oid — Liefert den Objektbezeichner (OID) des zuletzt eingefügten Datensatzes
    • pg_lo_close — Schließt ein Large Object
    • pg_lo_create — Erzeugt ein Large Object
    • pg_lo_export — Exportiert ein Large Object in eine Datei
    • pg_lo_import — Importiert ein Large Object aus einer Datei
    • pg_lo_open — Öffnet ein Large Object
    • pg_lo_read_all — Liest ein ganzes Large Object und reicht es direkt an den Browser weiter
    • pg_lo_read — Liest ein Large Object
    • pg_lo_seek — Setzt die Lese- oder Schreibposition in einem Large Object
    • pg_lo_tell — Gibt die aktuelle Lese- oder Schreibposition in einem Large Object zurück
    • pg_lo_truncate — Truncates a large object
    • pg_lo_unlink — Löscht ein Large Object
    • pg_lo_write — Schreibt in ein Large Object
    • pg_meta_data — Liefert die Metadaten einer Tabelle als Array
    • pg_num_fields — Gibt die Anzahl der Felder in einem Abfrageergebnis zurück
    • pg_num_rows — Gibt die Anzahl der Zeilen in einem Abfrageergebnis zurück
    • pg_options — Liefert die Verbindungsoptionen der aktuellen Verbindung
    • pg_parameter_status — Liefert den aktuellen Wert eines Parameters des Servers
    • pg_pconnect — Öffnet eine persistente PostgreSQL-Verbindung
    • pg_ping — Prüft die Datenbankverbindung
    • pg_port — Liefert die Portnummer, über die die Verbindung aufgebaut wurde
    • pg_prepare — Sendet eine Aufforderung an den Server, eine vorbereitete Anfrage mit den übergebenen Parametern zu erzeugen und wartet auf ihre Beendigung
    • pg_put_line — Sendet eine NULL-terminierte Zeichenkette zum PostgreSQL-Server
    • pg_query_params — Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden
    • pg_query — Führt eine Abfrage aus
    • pg_result_error_field — Liefert den Inhalt eines bestimmtes Feldes zu einer Fehlermeldung
    • pg_result_error — Liefert die mit der Ergebniskennung verknüpfte Fehlermeldung
    • pg_result_seek — Setzt den internen Datensatzzeiger auf die angegebene Position in einem Abfrageergebnis
    • pg_result_status — Gibt den Status eines Abfrageergebnisses zurück
    • pg_select — Wählt Datensätze aus
    • pg_send_execute — Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern auszuführen, ohne auf die Ergebnisse zu warten
    • pg_send_prepare — Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern zu erzeugen, ohne auf ihre Beendigung zu warten
    • pg_send_query_params — Sendet ein Kommando und separate Parameter zum Server, ohne auf die Rückgabe der Ergebnisse zu warten
    • pg_send_query — Sendet eine asynchrone Abfrage
    • pg_set_client_encoding — Setzt die Kodierung des Clients
    • pg_set_error_verbosity — Bestimmt den Detaillierungsgrad von Fehlermeldungen, die von pg_last_error und pg_result_error zurückgegeben werden
    • pg_socket — Get a read only handle to the socket underlying a PostgreSQL connection
    • pg_trace — Ermöglicht die Ablaufverfolgung einer Verbindung
    • pg_transaction_status — Gibt den aktuellen Transaktionsstatus des Servers zurück
    • pg_tty — Liefert den TTY-Namen für die Verbindung
    • pg_unescape_bytea — Entfernt Maskierungen für den Typ bytea
    • pg_untrace — Beendet die Ablaufverfolgung einer PostgreSQL-Verbindung
    • pg_update — Aktualisiert eine Tabelle
    • pg_version — Liefert ein Array, das die Versionen von Client, Protokoll und Server enthält (falls verfügbar).


Einführung

PostgreSQL ist ein kostenloses Open-Source-Datenbanksystem. Es wurde ursprünglich im UC Berkeley Computer Science Department entwickelt und hat Pionierarbeit bei objektrelationalen Datenbankkonzepten geleistet, die jetzt Einzug in einige kommerzielle Datenbanken halten. PostgreSQL bietet SQL92/SQL99 Sprachunterstützung, Transaktionen, referentielle Integrität, benutzerdefinierte Funktionen und ein erweiterbares Typkonzept. PostgreSQL ist eine Weiterentwicklung des ursprünglichen Berkeley-Codes.


Anforderungen

Um PostgreSQL benutzen zu können, brauchen Sie mindestens eine Version 6.5 oder neuer. Um alle Leistungsmerkmale des PostgreSQL-Moduls nutzen zu können, müssen Sie eine Version ab 8.0 haben. PostgreSQL unterstützt viele Zeichenkodierungen, einschließlich Multibyte-Character-Encoding. Die aktuelle Version sowie weitere Informationen über PostgreSQL sind auf den Seiten » http://www.postgresql.org/ erhältlich und die ausführliche Dokumentation finden Sie unter » PostgreSQL-Documentation.


Installation

Um die PostgreSQL-Unterstützung zu aktivieren, müssen Sie PHP mit der Option --with-pgsql[=DIR] kompilieren. DIR ist das Basis-Installationsverzeichnis von PostgreSQL, normalerweise /usr/local/pgsql. Falls das shared-object-Modul verfügbar ist, kann PostgreSQL mit der extension-Directive in der php.ini oder der Funktion dl() geladen werden.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

PostgreSQL-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | Verfügbar seit PHP 4.2.0.
pgsql.ignore_notice | "0" | PHP_INI_ALL | Verfügbar seit PHP 4.3.0.
pgsql.log_notice | "0" | PHP_INI_ALL | Verfügbar seit PHP 4.3.0.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

pgsql.allow_persistent bool

Bestimmt, ob persistente PostgreSQL-Verbindungen zulässig sind.

pgsql.max_persistent int

Legt die maximale Anzahl persistenter PostgreSQL-Verbindungen pro Prozess fest.

pgsql.max_links int

Legt die maximale Anzahl aller PostgreSQL-Verbindungen, einschließlich der persistenten Verbindungen, pro Prozess fest.

pgsql.auto_reset_persistent int

Findet ungültige persistente Verbindungen, die mit der Funktion pg_pconnect() geöffnet wurden. Erfordert ein wenig Mehraufwand.

pgsql.ignore_notice int

Bestimmt, ob Notice-Meldungen vom PostgreSQL-Server ignoriert werden sollen.

pgsql.log_notice int

Bestimmt, ob Notice-Meldungen vom PostgreSQL-Server protokolliert werden sollen. Die PHP-Direktive pgsql.ignore_notice muss deaktiviert sein, um die Meldungen zu protokollieren.


Ressource-Typen

Im PostgreSQL-Modul werden zwei Ressource-Typen verwendet: Der erste ist die Verbindungskennung für Datenbankverbindungen, die zweite Ressource ist die Ergebniskennung, die auf ein Abfrageergebnis verweist.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

PGSQL_LIBPQ_VERSION (string)
Kurze libpq-Version, die nur Zahlen und Punkte enthält.
PGSQL_LIBPQ_VERSION_STR (string)
Vor PHP 8.0.0 die lange libpq-Version, die Compiler-Informationen enthält. Ab PHP 8.0.0 ist der Wert identisch mit PGSQL_LIBPQ_VERSION und die Verwendung von PGSQL_LIBPQ_VERSION_STR ist veraltet.
PGSQL_ASSOC (int)
Wird an die Funktion pg_fetch_array() übergeben. Gibt ein assoziatives Array zurück, mit den Feldnamen als Indizes und den entsprechenden Werten.
PGSQL_NUM (int)
Wird an die Funktion pg_fetch_array() übergeben. Gibt ein numerisches Array zurück, mit den Feldnummern als Indizes und den entsprechenden Werten.
PGSQL_BOTH (int)
Wird an die Funktion pg_fetch_array() übergeben. Gibt ein Array zurück, das sowohl assoziativ (mit den Feldnamen) als auch numerisch (mit den Feldnummern) indiziert ist, und den entsprechenden Werten.
PGSQL_CONNECT_FORCE_NEW (int)
Wird an die Funktion pg_connect() übergeben, um eine neue Verbindung zu erzwingen, anstatt eine identische, bereits geöffnete Verbindung wieder zu benutzen.
PGSQL_CONNECT_ASYNC (int)
Wird an pg_connect() übergeben, um eine asynchrone Verbindung zu erzeugen. In PHP 5.6.0 hinzugefügt.
PGSQL_CONNECTION_AUTH_OK (int)
Verfügbar seit PHP 5.6.0.
PGSQL_CONNECTION_AWAITING_RESPONSE (int)
Verfügbar seit PHP 5.6.0.
PGSQL_CONNECTION_BAD (int)
Wird von der Funktion pg_connection_status() zurückgegeben und zeigt an, dass der Status der Datenbankverbindung ungültig ist.
PGSQL_CONNECTION_MADE (int)
Verfügbar seit PHP 5.6.0.
PGSQL_CONNECTION_OK (int)
Wird von der Funktion pg_connection_status() zurückgegeben und zeigt an, dass der Status der Datenbankverbindung gültig ist.
PGSQL_CONNECTION_SETENV (int)
Verfügbar seit PHP 5.6.0.
PGSQL_CONNECTION_SSL_STARTUP (int)
Verfügbar seit PHP 5.6.0.
PGSQL_CONNECTION_STARTED (int)
Verfügbar seit PHP 5.6.0.
PGSQL_SEEK_SET (int)
Wird an die Funktion pg_lo_seek() übergeben. Das Objekt wird von Beginn an durchsucht.
PGSQL_SEEK_CUR (int)
Wird an die Funktion pg_lo_seek() übergeben. Das Objekt wird ab der aktuellen Position durchsucht.
PGSQL_SEEK_END (int)
Wird an die Funktion pg_lo_seek() übergeben. Das Objekt wird, ausgehend vom Ende, durchsucht.
PGSQL_EMPTY_QUERY (int)
Wird von der Funktion pg_result_status() zurückgegeben, wenn der an den Server gesendete String leer war.
PGSQL_COMMAND_OK (int)
Wird von der Funktion pg_result_status() zurückgegeben. Ein Kommando wurde erfolgreich ausgeführt, aber es wurden keine Daten zurückgegeben.
PGSQL_TUPLES_OK (int)
Wird von der Funktion pg_result_status() zurückgegeben. Ein Kommando wurde erfolgreich ausgeführt und es wurden Daten (wie etwa ein SELECT oder SHOW) zurückgegeben.
PGSQL_COPY_OUT (int)
Wird von der Funktion pg_result_status() zurückgegeben. Ein Datentransfer vom Server wurde gestartet.
PGSQL_COPY_IN (int)
Wird von der Funktion pg_result_status() zurückgegeben. Ein Datentransfer zum Server wurde gestartet.
PGSQL_BAD_RESPONSE (int)
Wird von der Funktion pg_result_status() zurückgegeben. Die Serverantwort wurde nicht verstanden.
PGSQL_NONFATAL_ERROR (int)
Wird von der Funktion pg_result_status() zurückgegeben. Ein nicht-fataler Fehler (eine Notiz oder Warnung) ist aufgetreten.
PGSQL_FATAL_ERROR (int)
Wird von der Funktion pg_result_status() zurückgegeben. Ein fataler Fehler ist aufgetreten.
PGSQL_TRANSACTION_IDLE (int)
Wird von der Funktion pg_transaction_status() zurückgegeben. Die Verbindung wird momentan nicht benutzt, es findet aktuell keine Transaktion statt.
PGSQL_TRANSACTION_ACTIVE (int)
Wird von der Funktion pg_transaction_status() zurückgegeben. Die Verbindung wird momentan benutzt. Es wird eine Abfrage ausgeführt, die noch nicht beendet ist.
PGSQL_TRANSACTION_INTRANS (int)
Wird von der Funktion pg_transaction_status() zurückgegeben. Die Verbindung wird von einer Transaktion benutzt, ist aber momentan nicht aktiv.
PGSQL_TRANSACTION_INERROR (int)
Wird von der Funktion pg_transaction_status() zurückgegeben. Die Verbindung wurde von einer abgebrochenen Transaktion benutzt und ist momentan nicht aktiv.
PGSQL_TRANSACTION_UNKNOWN (int)
Wird von der Funktion pg_transaction_status() zurückgegeben. Die Verbindung ist ungültig.
PGSQL_DIAG_SEVERITY (int)
Wird an die Funktion pg_result_error_field() übergeben. Gibt den Schweregrad des Fehlers zurück. Die Feldinhalte sind ERROR, FATAL oder PANIC (in einer Fehlermeldung) oder WARNING, NOTICE, DEBUG, INFO oder LOG (in einer Notice-Meldung) oder eine lokalisierte Übersetzung davon. Dieses Feld ist immer verfügbar.
PGSQL_DIAG_SQLSTATE (int)
Wird an die Funktion pg_result_error_field() übergeben. Gibt den SQLSTATE-Code des Fehlers zurück. Der SQLSTATE-Code identifiziert den Typ des aufgetretenen Fehlers. Dieser kann von Anwendungen ausgewertet werden, um entsprechende Operationen auszuführen (beispielsweise Fehlerbehandlungsroutinen), als Reaktion auf einen bestimmten Datenbankfehler. dieses Feld kann nicht lokalisiert werden und ist immer verfügbar.
PGSQL_DIAG_MESSAGE_PRIMARY (int)
Wird an die Funktion pg_result_error_field() übergeben. Dies ist die primäre, für Menschen lesbare Fehlermeldung (normalerweise in einer Zeile) und ist immer verfügbar.
PGSQL_DIAG_MESSAGE_DETAIL (int)
Wird an die Funktion pg_result_error_field() übergeben. Detail: eine optionale untergeordnete Fehlermeldung, in der das Problem genauer beschrieben wird. Diese Meldung kann mehrere Zeilen lang sein.
PGSQL_DIAG_MESSAGE_HINT (int)
Wird an die Funktion pg_result_error_field() übergeben. Hint: ein optionaler Hinweis, wie mit dem Problem umzugehen ist. Dies wurde eingeführt, um (möglicherweise unpassende) Lösungen zur Verfügung zu stellen, anstatt harte Fakten, wie bei Details. Diese Meldung kann mehrere Zeilen lang sein.
PGSQL_DIAG_STATEMENT_POSITION (int)
Wird an die Funktion pg_result_error_field() übergeben. Dies ist ein String, der eine dezimale Integerzahl enthält, die die Cursorposition des originalen SQL-Strings angibt, an der ein Fehler auftrat. Das erste Zeichen hat die Position 1 und zur Bestimmung der Positionen werden Zeichen zugrundegelegt und nicht Bytes.
PGSQL_DIAG_INTERNAL_POSITION (int)
Wird an die Funktion pg_result_error_field() übergeben. Per Definition ist das dasselbe wie das Feld PG_DIAG_STATEMENT_POSITION, es wird aber benutzt, wenn die Cursorposition auf ein intern generiertes Kommando verweist und nicht auf eines, das vom Benutzer eingegeben wurde. Das Feld PG_DIAG_INTERNAL_QUERY wird immer gesetzt, wenn dieses Feld gesetzt ist.
PGSQL_DIAG_INTERNAL_QUERY (int)
Wird an die Funktion pg_result_error_field() übergeben. Dies ist der Text eines fehlgeschlagenen, intern generierten Kommandos. Das kann beispielsweise eine SQL-Abfrage sein, die von einer PL/pgSQL-Funktion gesendet wurde.
PGSQL_DIAG_CONTEXT (int)
Wird an die Funktion pg_result_error_field() übergeben. Dies gibt einen Hinweis auf den Kontext, in dem ein Fehler auftrat. Gegenwärtig sind Zurückverfolgungen des Aufrufstacks von Funktionen aktivierter prozeduraler Sprachen darin enthalten, sowie intern generierte Abfragen. Die Ablaufverfolgung enthält einen Eintrag pro Zeile, die neuesten Einträge zuerst.
PGSQL_DIAG_SOURCE_FILE (int)
Wird an die Funktion pg_result_error_field() übergeben. Dies ist der Name der Datei im PostgreSQL-Quellcode, bei der der Fehler gemeldet wurde.
PGSQL_DIAG_SOURCE_LINE (int)
Wird an die Funktion pg_result_error_field() übergeben. Die Zeilennummer in der Datei im PostgreSQL-Quellcode, bei der der Fehler gemeldet wurde.
PGSQL_DIAG_SOURCE_FUNCTION (int)
Wird an die Funktion pg_result_error_field() übergeben. Der Name der Funktion im PostgreSQL-Quellcode, bei der der Fehler gemeldet wurde.
PGSQL_DIAG_SCHEMA_NAME (string)
Verfügbar seit PHP 7.3.0.
PGSQL_DIAG_TABLE_NAME (string)
Verfügbar seit PHP 7.3.0.
PGSQL_DIAG_COLUMN_NAME (string)
Verfügbar seit PHP 7.3.0.
PGSQL_DIAG_DATATYPE_NAME (string)
Verfügbar seit PHP 7.3.0.
PGSQL_DIAG_CONSTRAINT_NAME (string)
Verfügbar seit PHP 7.3.0.
PGSQL_ERRORS_TERSE (int)
Wird an die Funktion pg_set_error_verbosity() übergeben. Damit wird festgelegt, dass Fehlermeldungen die Felder severity, primary text und position enthalten. Normalerweise passt das alles in eine Zeile.
PGSQL_ERRORS_DEFAULT (int)
Wird an die Funktion pg_set_error_verbosity() übergeben. Die Standardeinstellung gibt Meldungen mit den oben beschriebenen Inhalten zurück, zuzüglich aller Details, Hinweise und Kontext-Informationen (dies kann mehrere Zeilen umfassen).
PGSQL_ERRORS_VERBOSE (int)
Wird an die Funktion pg_set_error_verbosity() übergeben. In diesem Modus werden alle verfügbaren Felder zurückgegeben.
PGSQL_NOTICE_LAST (int)
Verwendet von pg_last_notice(). Verfügbar seit PHP 7.1.0.
PGSQL_NOTICE_ALL (int)
Verwendet von pg_last_notice(). Verfügbar seit PHP 7.1.0.
PGSQL_NOTICE_CLEAR (int)
Verwendet von pg_last_notice(). Verfügbar seit PHP 7.1.0.
PGSQL_STATUS_LONG (int)
Wird an die Funktion pg_result_status() übergeben. Zeigt an, dass ein numerischer Ergebniscode gewünscht ist.
PGSQL_STATUS_STRING (int)
Wird an die Funktion pg_result_status() übergeben. Zeigt an, dass eine textuelles Ergebnis gewünscht ist.
PGSQL_CONV_IGNORE_DEFAULT (int)
Wird an die Funktion pg_convert() übergeben. Während der Konversion werden Standardwerte in der Tabelle ignoriert.
PGSQL_CONV_FORCE_NULL (int)
Wird an die Funktion pg_convert() übergeben. Anstelle eines leeren Strings string wird der SQL-Nullwert NULL benutzt.
PGSQL_CONV_IGNORE_NOT_NULL (int)
Wird an die Funktion pg_convert() übergeben. Die Konversion von null in SQL NOT NULL-Spalten wird ignoriert.
PGSQL_DML_NO_CONV (int)
Wird an pg_insert(), pg_select(), pg_update() und pg_delete() übergeben. Alle Parameter werden übergeben wie sie sind. Manuelles Maskieren ist erforderlich, wenn Parameter Anwenderdaten enthalten. Dafür ist pg_escape_string() zu verwenden.
PGSQL_DML_EXEC (int)
Wird an pg_insert(), pg_select(), pg_update() und pg_delete() übergeben. Führt eine Abfrage durch diese Funktionen aus.
PGSQL_DML_ASYNC (int)
Wird an pg_insert(), pg_select(), pg_update() und pg_delete() übergeben. Führt eine asynchrone Abfrage durch diese Funktionen aus.
PGSQL_DML_STRING (int)
Wird an pg_insert(), pg_select(), pg_update() und pg_delete() übergeben. Gibt den ausgeführten Abfragestring zurück.
PGSQL_DML_ESCAPE (int)
Wird an pg_insert(), pg_select(), pg_update() und pg_delete() übergeben. Maskiert alle Parameter anstatt pg_convert() intern aufzurufen. Diese Option verzichtet auf das Nachschlagen von Meta-Daten. Die Abfrage kann so schnell sein wie pg_query() und pg_send_query().
PGSQL_POLLING_FAILED (int)
Wird von pg_connect_poll() zurückgegeben, um anzuzeigen, dass der Verbindungsversuch fehlschlug.
PGSQL_POLLING_READING (int)
Wird von pg_connect_poll() zurückgegeben, um anzuzeigen, dass die Verbindung auf Lesebereitschaft des PostgreSQL-Socket wartet.
PGSQL_POLLING_WRITING (int)
Wird von pg_connect_poll() zurückgegeben, um anzuzeigen, dass die Verbindung auf Schreibbereitschaft des PostgreSQL-Socket wartet.
PGSQL_POLLING_OK (int)
Wird von pg_connect_poll() zurückgegeben, um anzuzeigen, dass die Verbindung bereit zur Verwendung ist.
PGSQL_POLLING_ACTIVE (int)
Wird von pg_connect_poll() zurückgegeben, um anzuzeigen, dass die Verbindung zur Zeit aktiv ist.
PGSQL_DIAG_SEVERITY_NONLOCALIZED (int)
Der Schweregrad. Das Feld enthält ERROR, FATAL oder PANIC (in einer Fehlermeldung), oder WARNING, NOTICE, DEBUG, INFO oder LOG (in einer Hinweismeldung). Dies ist identisch zum PG_DIAG_SEVERITY Feld, außer dass der Inhalt nie lokalisiert ist. Es ist nur ab Version 9.6 vorhanden.


  • « Vordefinierte Konstanten
  • Grundlegende Nutzung »
  • PHP Manual
  • PostgreSQL
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Grundlegende Nutzung
  • Grundlegende Verwendung


Grundlegende Nutzung

Dieses einfache Beispiel zeigt den Verbindungsaufbau, die Ausführung einer einfachen Abfrage, die Ausgabe der Abfrageergebnisse und, wie eine Verbindung wieder geschlossen wird.

Beispiel #1 Beispiel für die Benutzung der PostgreSQL-Erweiterung

<?php
// Verbindungsaufbau und Auswahl der Datenbank
$dbconn = pg_connect("host=localhost dbname=publishing user=www password=foo")
    or die('Verbindungsaufbau fehlgeschlagen: ' . pg_last_error());

// Eine SQL-Abfrage ausführen
$query = 'SELECT * FROM authors';
$result = pg_query($query) or die('Abfrage fehlgeschlagen: ' . pg_last_error());

// Ergebnisse in HTML ausgeben
echo "<table>\n";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

// Speicher freigeben
pg_free_result($result);

// Verbindung schließen
pg_close($dbconn);
?>


Grundlegende Verwendung

Diese Beispiele enthalten benutzerdefinierte Funktion, ähnlich veralteten MySQL-Funktionen.

Beispiel #1 benutzerdefinierte PostgreSQL Funktionen Beispiel

<?php
// Diese Funktion sollte benötigt werden, da PostgreSQL-Verbindung die Datenbank anbinden.
function pg_list_dbs($db)
{
    assert(is_resource($db));
    $query = '
SELECT
 d.datname as "Name",
 u.usename as "Owner",
 pg_encoding_to_char(d.encoding) as "Encoding"
FROM
 pg_database d LEFT JOIN pg_user u ON d.datdba = u.usesysid
ORDER BY 1;
';
    return pg_query($db, $query);
}

// Tabellen auflisten.
function pg_list_tables($db)
{
    assert(is_resource($db));
    $query = "
SELECT
 c.relname as \"Name\",
 CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as \"Type\",
  u.usename as \"Owner\"
FROM
 pg_class c LEFT JOIN pg_user u ON c.relowner = u.usesysid
WHERE
 c.relkind IN ('r','v','S','')
 AND c.relname !~ '^pg_'
ORDER BY 1;
";
    return pg_query($db, $query);
}

// Siehe auch pg_meta_data(). Felddefinitionen werden als Array zurückgegeben.
function pg_list_fields($db, $table)
{
    assert(is_resource($db));
    $query = "
SELECT
 a.attname,
 format_type(a.atttypid, a.atttypmod),
 a.attnotnull,
 a.atthasdef,
 a.attnum
FROM
 pg_class c,
 pg_attribute a
WHERE
 c.relname = '".$table."'
 AND a.attnum > 0 AND a.attrelid = c.oid
ORDER BY a.attnum;
";
    return pg_query($db, $query);
}
?>


PostgreSQL-Funktionen

Anmerkungen

Hinweis:

Nicht alle Funktionen sind in allen Versionen verfügbar. Es hängt davon ab, welche libpq-Version (die PostgreSQL-C-Client-Bibliothek) auf Ihrem Rechner verfügbar ist und wie libpq kompiliert wurde. Falls eine Funktion nicht verfügbar ist, liegt es daran, dass libpq die nötigen Routinen nicht unterstützt, die diese Funktion braucht.

Hinweis:

Die meisten PostgreSQL-Funktionen nehmen den Parameter connection als optionalen ersten Parameter entgegen. Falls er nicht angegeben wurde, wird die zuletzt geöffnete Verbindung benutzt. Wenn keine geöffnete Verbindung existiert, geben die Funktionen false zurück.

Hinweis:

PostgreSQL wandelt automatisch alle Bezeichner (beispielsweise Tabellen- oder Spaltennamen) in Kleinbuchstaben um, und zwar sowohl bei der Erzeugung der Objekte als auch in Abfragen. Um Namen in Groß- und Kleinschreibung oder in Großbuchstaben zu erzwingen, müssen diese in doppelte Anführungszeichen ("") eingeschlossen werden.

Hinweis:

PostgreSQL stellt keine speziellen Kommandos zur Verfügung, um Informationen über ein Datenbank-Schema (z.B. alle Tabellen in der aktuellen Datenbank) zu erhalten. Stattdessen gibt es ab der Version 7.4 und höher ein Standard-Schema, das information_schema, in dem alle notwendigen Informationen in System-Views enthalten und die einfach abzufragen sind. Ausführliche Informationen darüber gibt es in der » PostgreSQL-Dokumentation.

Inhaltsverzeichnis

  • pg_affected_rows — Gibt die Anzahl betroffener Datensätze (Tupel) zurück
  • pg_cancel_query — Löscht eine asynchrone Abfrage
  • pg_client_encoding — Liefert die Kodierung des Clients
  • pg_close — Schließt eine PostgreSQL-Verbindung
  • pg_connect_poll — Poll the status of an in-progress asynchronous PostgreSQL connection attempt
  • pg_connect — Öffnet eine PostgreSQL-Verbindung
  • pg_connection_busy — Gibt den Status der Verbindung zurück (busy/not busy)
  • pg_connection_reset — Setzt die Verbindung zurück und verbindet neu
  • pg_connection_status — Gibt den Verbindungsstatus zurück
  • pg_consume_input — Reads input on the connection
  • pg_convert — Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form
  • pg_copy_from — Fügt Datensätze aus einem Array in eine Tabelle ein
  • pg_copy_to — Kopiert eine Tabelle in ein Array
  • pg_dbname — Liefert den Namen der Datenbank
  • pg_delete — Löscht Datensätze
  • pg_end_copy — Synchronisation mit dem PostgreSQL-Server
  • pg_escape_bytea — Maskiert Zeichenketten zum Einfügen in ein Feld vom Typ bytea
  • pg_escape_identifier — Escape a identifier for insertion into a text field
  • pg_escape_literal — Escape a literal for insertion into a text field
  • pg_escape_string — Maskiert einen String für Abfragen
  • pg_execute — Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis
  • pg_fetch_all_columns — Gibt alle Werte einer bestimmten Spalte eines Abfrageergebnisses in einem Array zurück
  • pg_fetch_all — Liefert alle Zeilen eines Abfrageergebnisses als Array
  • pg_fetch_array — Liefert eine Zeile als Array
  • pg_fetch_assoc — Liefert eine Zeile als assoziatives Array
  • pg_fetch_object — Liefert einen Datensatz als Objekt
  • pg_fetch_result — Liefert Werte aus einer Ergebnismenge
  • pg_fetch_row — Liefert einen Datensatz als numerisches Array
  • pg_field_is_null — Prüft, ob ein Feld einen SQL-NULL-Wert enthält
  • pg_field_name — Liefert den Namen eines Feldes
  • pg_field_num — Gibt die Feldnummer des angegebenen Feldes zurück
  • pg_field_prtlen — Liefert die Länge des Feldes
  • pg_field_size — Liefert die interne Größe des belegten Speichers für ein Feld
  • pg_field_table — Gibt zu einem Feldnamen den Namen der Tabelle oder deren oid zurück, in der das Feld definiert ist
  • pg_field_type_oid — Liefert die ID des PostgreSQL-Datentyps (OID) eines Feldes
  • pg_field_type — Liefert den Datentyp eines Feldes
  • pg_flush — Flush outbound query data on the connection
  • pg_free_result — Gibt den durch Ergebnisse belegten Speicher frei
  • pg_get_notify — Liefert eine SQL-NOTIFY-Nachricht
  • pg_get_pid — Prüft die Datenbankverbindung
  • pg_get_result — Liefert asynchrone Abfrageergebnisse
  • pg_host — Liefert den Namen des Host, zu dem verbunden wurde
  • pg_insert — Überträgt Werte aus einem Array in eine Tabelle
  • pg_last_error — Liefert die letzte Fehlermeldung einer Verbindung
  • pg_last_notice — Liefert die letzte NOTICE-Meldung des PostgreSQL-Servers
  • pg_last_oid — Liefert den Objektbezeichner (OID) des zuletzt eingefügten Datensatzes
  • pg_lo_close — Schließt ein Large Object
  • pg_lo_create — Erzeugt ein Large Object
  • pg_lo_export — Exportiert ein Large Object in eine Datei
  • pg_lo_import — Importiert ein Large Object aus einer Datei
  • pg_lo_open — Öffnet ein Large Object
  • pg_lo_read_all — Liest ein ganzes Large Object und reicht es direkt an den Browser weiter
  • pg_lo_read — Liest ein Large Object
  • pg_lo_seek — Setzt die Lese- oder Schreibposition in einem Large Object
  • pg_lo_tell — Gibt die aktuelle Lese- oder Schreibposition in einem Large Object zurück
  • pg_lo_truncate — Truncates a large object
  • pg_lo_unlink — Löscht ein Large Object
  • pg_lo_write — Schreibt in ein Large Object
  • pg_meta_data — Liefert die Metadaten einer Tabelle als Array
  • pg_num_fields — Gibt die Anzahl der Felder in einem Abfrageergebnis zurück
  • pg_num_rows — Gibt die Anzahl der Zeilen in einem Abfrageergebnis zurück
  • pg_options — Liefert die Verbindungsoptionen der aktuellen Verbindung
  • pg_parameter_status — Liefert den aktuellen Wert eines Parameters des Servers
  • pg_pconnect — Öffnet eine persistente PostgreSQL-Verbindung
  • pg_ping — Prüft die Datenbankverbindung
  • pg_port — Liefert die Portnummer, über die die Verbindung aufgebaut wurde
  • pg_prepare — Sendet eine Aufforderung an den Server, eine vorbereitete Anfrage mit den übergebenen Parametern zu erzeugen und wartet auf ihre Beendigung
  • pg_put_line — Sendet eine NULL-terminierte Zeichenkette zum PostgreSQL-Server
  • pg_query_params — Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden
  • pg_query — Führt eine Abfrage aus
  • pg_result_error_field — Liefert den Inhalt eines bestimmtes Feldes zu einer Fehlermeldung
  • pg_result_error — Liefert die mit der Ergebniskennung verknüpfte Fehlermeldung
  • pg_result_seek — Setzt den internen Datensatzzeiger auf die angegebene Position in einem Abfrageergebnis
  • pg_result_status — Gibt den Status eines Abfrageergebnisses zurück
  • pg_select — Wählt Datensätze aus
  • pg_send_execute — Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern auszuführen, ohne auf die Ergebnisse zu warten
  • pg_send_prepare — Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern zu erzeugen, ohne auf ihre Beendigung zu warten
  • pg_send_query_params — Sendet ein Kommando und separate Parameter zum Server, ohne auf die Rückgabe der Ergebnisse zu warten
  • pg_send_query — Sendet eine asynchrone Abfrage
  • pg_set_client_encoding — Setzt die Kodierung des Clients
  • pg_set_error_verbosity — Bestimmt den Detaillierungsgrad von Fehlermeldungen, die von pg_last_error und pg_result_error zurückgegeben werden
  • pg_socket — Get a read only handle to the socket underlying a PostgreSQL connection
  • pg_trace — Ermöglicht die Ablaufverfolgung einer Verbindung
  • pg_transaction_status — Gibt den aktuellen Transaktionsstatus des Servers zurück
  • pg_tty — Liefert den TTY-Namen für die Verbindung
  • pg_unescape_bytea — Entfernt Maskierungen für den Typ bytea
  • pg_untrace — Beendet die Ablaufverfolgung einer PostgreSQL-Verbindung
  • pg_update — Aktualisiert eine Tabelle
  • pg_version — Liefert ein Array, das die Versionen von Client, Protokoll und Server enthält (falls verfügbar).


Gibt die Anzahl betroffener Datensätze (Tupel) zurück

  • « PostgreSQL-Funktionen
  • pg_cancel_query »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Gibt die Anzahl betroffener Datensätze (Tupel) zurück

pg_affected_rows

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_affected_rows — Gibt die Anzahl betroffener Datensätze (Tupel) zurück

Beschreibung

pg_affected_rows ( resource $result ) : int

pg_affected_rows() gibt die Anzahl der Tupels (Instanzen/Datensätze/Zeilen) zurück, die von einer ausgeführten INSERT-, UPDATE- oder DELETE-Abfrage betroffen sind.

Ab PostgreSQL 9.0 und neuer gibt der Server die Anzahl von per SELECT gewählten Zeilen zurück. Ältere PostgreSQL Versionen geben 0 für SELECT zurück.

Hinweis:

Diese Funktion hieß vormals pg_cmdtuples().

Parameter-Liste

result

PostgreSQL Ergebniskennung, die (unter anderem) von den Funktionen pg_query(), pg_query_params() oder pg_execute() zurückgegeben wird.

Rückgabewerte

Die Anzahl der Zeilen, die von der Abfrage betroffen wurden. Wurde keine Zeile betroffen, wird 0 zurückgegeben.

Beispiele

Beispiel #1 pg_affected_rows()-Beispiel

<?php
$result = pg_query($conn, "INSERT INTO authors VALUES ('Orwell', 2002, 'Animal Farm')");

$cmdtuples = pg_affected_rows($result);

echo $cmdtuples . " Zeile(n) wurden betroffen.\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1 Zeile(n) wurden betroffen.

Siehe auch

  • pg_query() - Führt eine Abfrage aus
  • pg_query_params() - Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden
  • pg_execute() - Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis
  • pg_num_rows() - Gibt die Anzahl der Zeilen in einem Abfrageergebnis zurück


Löscht eine asynchrone Abfrage

  • « pg_affected_rows
  • pg_client_encoding »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Löscht eine asynchrone Abfrage

pg_cancel_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_cancel_query — Löscht eine asynchrone Abfrage

Beschreibung

pg_cancel_query ( resource $connection ) : bool

pg_cancel_query() löscht eine asynchrone Abfrage,
die mit pg_send_query(), pg_send_query_params()
oder pg_send_execute() an den Datenbankserver
gesendet wurde. Eine Abfrage, die mit pg_query()
gesendet wurde, kann nicht gelöscht werden.

Parameter-Liste

connection

PostgreSQL Verbindungskennung.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_cancel_query() Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Keine Verbindung möglich");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Erster Aufruf von pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 hat $rows1 Zeilen.\n\n";

  // Die aktuell ausgeführte Abfrage löschen. Falls die
  // erste Abfrage abgeschlossen ist, wird die zweite
  // gelöscht,sofern sie noch nicht beendet ist.
  pg_cancel_query($dbconn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Erster Aufruf von pg_get_result(): Resource id #3
Resource id #3 hat 3 Zeilen.

Siehe auch

  • pg_send_query() - Sendet eine asynchrone Abfrage
  • pg_connection_busy() - Gibt den Status der Verbindung zurück (busy/not busy)


Liefert die Kodierung des Clients

  • « pg_cancel_query
  • pg_close »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert die Kodierung des Clients

pg_client_encoding

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pg_client_encoding — Liefert die Kodierung des Clients

Beschreibung

pg_client_encoding ( resource $connection = ? ) : string

PostgreSQL unterstützt die automatische Konvertierung von Zeichensätzen zwischen Server und Client für bestimmte Zeichensätze. pg_client_encoding() gibt die Kodierung des Clients in einem String zurück, der den Namen einer PostgreSQL-Standardkodierung enthält.

Hinweis:

Diese Funktion setzt PHP 4.0.3 oder höher und PostgreSQL 7.0 oder höher voraus. Wenn die libpq ohne multibyte-Unterstützung kompiliert wurde, gibt pg_set_client_encoding() immer SQL_ASCII zurück. Die unterstützten Kodierungen sind von der PostgreSQL-Version abhängig. Weitere Informationen entnehmen Sie bitte der PostgreSQL-Dokumentation.

Diese Funktion ersetzt die Funktion pg_clientencoding().

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

Rückgabewerte

Die Kodierung des Clients oder false bei einem Fehler.

Beispiele

Beispiel #1 pg_client_encoding()-Beispiel

<?php
// Angenommen, $conn sei eine Verbindung zu einer ISO-8859-1 Datenbank
$encoding = pg_client_encoding($conn);

echo "Der Client benutzt die Kodierung: ", $encoding, "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der Client benutzt die Kodierung: ISO-8859-1

Siehe auch

  • pg_set_client_encoding() - Setzt die Kodierung des Clients


Schließt eine PostgreSQL-Verbindung

  • « pg_client_encoding
  • pg_connect_poll »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Schließt eine PostgreSQL-Verbindung

pg_close

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_close — Schließt eine PostgreSQL-Verbindung

Beschreibung

pg_close ( resource $connection = ? ) : bool

pg_close() schließt die nicht-persistente Verbindung, die durch die Kennung connection bezeichnet wird.

Hinweis:

Die Verwendung von pg_close() ist normalerweise nicht notwendig, da geöffnete, nicht-persistente Verbindungen automatisch geschlossen werden, wenn das Skript beendet wird.

Falls es auf dieser Verbindung geöffnete Large Objects gibt, sollten Sie diese schließen, bevor Sie die Verbindung schließen.

Parameter-Liste

connection

PostgreSQL-Verbindungkennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_close()-Beispiel

<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=mary")
   or die("Keine Verbindung möglich");
echo "Verbindung hergestellt";
pg_close($dbconn);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Verbindung hergestellt

Siehe auch

  • pg_connect() - Öffnet eine PostgreSQL-Verbindung


Poll the status of an in-progress asynchronous PostgreSQL connection attempt

  • « pg_close
  • pg_connect »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Poll the status of an in-progress asynchronous PostgreSQL connection attempt

pg_connect_poll

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

pg_connect_poll — Poll the status of an in-progress asynchronous PostgreSQL connection attempt

Beschreibung

pg_connect_poll ( resource $connection ) : int

pg_connect_poll() polls the status of a PostgreSQL connection created by calling pg_connect() with the PGSQL_CONNECT_ASYNC option.

Parameter-Liste

connection

PostgreSQL database connection resource.

Rückgabewerte

Returns PGSQL_POLLING_FAILED, PGSQL_POLLING_READING, PGSQL_POLLING_WRITING, PGSQL_POLLING_OK, or PGSQL_POLLING_ACTIVE.


Öffnet eine PostgreSQL-Verbindung

  • « pg_connect_poll
  • pg_connection_busy »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Öffnet eine PostgreSQL-Verbindung

pg_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_connect — Öffnet eine PostgreSQL-Verbindung

Beschreibung

pg_connect ( string $connection_string , int $connect_type = ? ) : resource

pg_connect() öffnet eine Verbindung zu der PostgreSQL-Datenbank, die durch den connection_string bezeichnet wird.

Falls ein zweiter Aufruf von pg_connect() mit demselben connection_string gemacht wird, wird die Verbindungskennung der bereits geöffneten Verbindung zurückgegeben, es sei denn, Sie übergeben die Konstante PGSQL_CONNECT_FORCE_NEW im Parameter connect_type.

Die alte Syntax $conn = pg_connect ("host", "port", "options", "tty", "dbname") sollte nicht mehr benutzt werden.

Parameter-Liste

connection_string

Der connection_string darf leer sein. Dann werden Standard-Parameter benutzt. Er kann auch einen oder mehrere Parameter, durch Leerzeichen getrennt, enthalten. Jeder Parameter muss in der Form keyword = value angegeben werden, wobei das Gleichheitszeichen optional ist. Um einen leeren Wert oder einen Wert, der Leerzeichen enthält, zu übergeben, muss dieser in einfache Anführungszeichen eingeschlossen sein, etwa so: keyword = 'ein Wert'. Einfache Anführungszeichen oder Backslashes innerhalb von Werten müssen mit einem Backslash maskiert werden: \' und \\.

Diese Schlüsselwörter für die Parameter werden aktuell erkannt: host, hostaddr, port, dbname (standardmäßig der Wert von user), user, password, connect_timeout, options, tty (wird ignoriert), sslmode, requiressl (zugunsten von sslmode ausgemustert) und service. Welche dieser Parameter zur Verfügung stehen, ist von Ihrer PostgreSQL-Version abhängig.

Der Parameter options kann verwendet werden, um vom Server auszuführende Kommandozeilenparameter zu setzen.

connect_type

Wenn PGSQL_CONNECT_FORCE_NEW übergeben wird, wird eine neue Verbindung aufgebaut, auch wenn der connection_string identisch zu der aktuell geöffneten Verbindung ist.

Ist PGSQL_CONNECT_ASYNC angegeben, dann wird die Verbindung asynchron hergestellt. Der Zustand der Verbindung kann dann per pg_connect_poll() oder pg_connection_status() überprüft werden.

Rückgabewerte

Bei Erfolg wird eine PostgreSQL-Verbindungskennung zurückgegeben oder false bei einem Fehler.

Changelog

Version | Beschreibung
5.6.0 | Unterstützung für die Übergabe der Konstante PGSQL_CONNECT_ASYNC als connect_type wurde hinzugefügt.

Beispiele

Beispiel #1 pg_connect() benutzen

<?php
$dbconn = pg_connect("dbname=mary");
//Verbindungsaufbau zu einer Datenbank namens "mary"

$dbconn2 = pg_connect("host=localhost port=5432 dbname=mary");
// Verbindungsaufbau zu einer Datenbank namens "mary" auf dem
// Host "localhost" über den (Standard-)Port "5432"

$dbconn3 = pg_connect("host=sheep port=5432 dbname=mary user=lamb password=foo");
//Verbindungsaufbau zu einer Datenbank namens "mary" auf dem Host
//"sheep" mit dem Benutzernamen "lamb" und dem Passwort "foo"

$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_connect($conn_string);
//Verbindungsaufbau zu einer Datenbank namens "test" auf dem Host
//"sheep" mit dem Benutzernamen "lamb" und dem Passwort "bar"
?>

$dbconn5 = pg_connect("host=localhost options='--client_encoding=UTF8'");
// Verbindungsaufbau zu einer Datenbank auf dem Host "localhost" mit Setzen
// des Kommandozeilenparameters, der die Zeichenkodierung UTF-8 angibt
?>

Siehe auch

  • pg_pconnect() - Öffnet eine persistente PostgreSQL-Verbindung
  • pg_close() - Schließt eine PostgreSQL-Verbindung
  • pg_host() - Liefert den Namen des Host, zu dem verbunden wurde
  • pg_port() - Liefert die Portnummer, über die die Verbindung aufgebaut wurde
  • pg_tty() - Liefert den TTY-Namen für die Verbindung
  • pg_options() - Liefert die Verbindungsoptionen der aktuellen Verbindung
  • pg_dbname() - Liefert den Namen der Datenbank


Gibt den Status der Verbindung zurück (busy/not busy)

  • « pg_connect
  • pg_connection_reset »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Gibt den Status der Verbindung zurück (busy/not busy)

pg_connection_busy

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_connection_busy — Gibt den Status der Verbindung zurück (busy/not busy)

Beschreibung

pg_connection_busy ( resource $connection ) : bool

pg_connection_busy() stellt fest, ob eine Verbindung gerade benutzt wird. Falls ja, wird eine zuvor gesendete Abfrage noch bearbeitet. Falls die Funktion pg_get_result() aufgerufen wird, wird sie blockiert.

Parameter-Liste

connection

PostgreSQL Verbindungskennung.

Rückgabewerte

Gibt true zurück, falls die Verbindung gerade benutzt wird, ansonsten false.

Beispiele

Beispiel #1 pg_connection_busy() Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Konnte keine Verbindung aufbauen.");
  $bs = pg_connection_busy($dbconn);
  if ($bs) {
      echo 'Die Verbindung wird gerade benutzt.';
  } else {
     echo 'Die Verbindung ist frei.';
  }
?>

Siehe auch

  • pg_connection_status() - Gibt den Verbindungsstatus zurück
  • pg_get_result() - Liefert asynchrone Abfrageergebnisse


Setzt die Verbindung zurück und verbindet neu

  • « pg_connection_busy
  • pg_connection_status »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Setzt die Verbindung zurück und verbindet neu

pg_connection_reset

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_connection_reset — Setzt die Verbindung zurück und verbindet neu

Beschreibung

pg_connection_reset ( resource $connection ) : bool

pg_connection_reset() setzt die Verbindung zurück. Dies ist nützlich bei der Fehlerbehandlung.

Parameter-Liste

connection

PostgreSQL Verbindungskennung.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_connection_reset() Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Konnte keine Verbindung aufbauen.");
  $dbconn2 = pg_connection_reset($dbconn);
  if ($dbconn2) {
      echo "Verbindung erfolgreich zurückgesetzt\n";
  } else {
      echo "Konnte die Verbindung nicht zurücksetzen\n";
  }
?>

Siehe auch

  • pg_connect() - Öffnet eine PostgreSQL-Verbindung
  • pg_pconnect() - Öffnet eine persistente PostgreSQL-Verbindung
  • pg_connection_status() - Gibt den Verbindungsstatus zurück


Gibt den Verbindungsstatus zurück

  • « pg_connection_reset
  • pg_consume_input »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Gibt den Verbindungsstatus zurück

pg_connection_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_connection_status — Gibt den Verbindungsstatus zurück

Beschreibung

pg_connection_status ( resource $connection ) : int

pg_connection_status() gibt den Status der angegebenen connection zurück.

Parameter-Liste

connection

PostgreSQL Verbindungskennung.

Rückgabewerte

PGSQL_CONNECTION_OK oder PGSQL_CONNECTION_BAD.

Beispiele

Beispiel #1 pg_connection_status() Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Konnte keine Verbindung aufbauen");
  $stat = pg_connection_status($dbconn);
  if ($stat === PGSQL_CONNECTION_OK) {
      echo 'Verbindungsstatus ok';
  } else {
      echo 'Verbindungsstatus bad';
  }
?>

Siehe auch

  • pg_connection_busy() - Gibt den Status der Verbindung zurück (busy/not busy)


Reads input on the connection

  • « pg_connection_status
  • pg_convert »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Reads input on the connection

pg_consume_input

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

pg_consume_input — Reads input on the connection

Beschreibung

pg_consume_input ( resource $connection ) : bool

pg_consume_input() consumes any input waiting to be read from the database server.

Parameter-Liste

connection

PostgreSQL database connection resource.

Rückgabewerte

true if no error occurred, or false if there was an error. Note that true does not necessarily indicate that input was waiting to be read.


Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form

  • « pg_consume_input
  • pg_copy_from »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form

pg_convert

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_convert — Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form

Beschreibung

pg_convert ( resource $connection , string $table_name , array $assoc_array , int $options = 0 ) : array

pg_convert() prüft und konvertiert die Werte in assoc_array in passende Werte für ein SQL-Kommando. Voraussetzung für pg_convert() ist die Existenz einer Tabelle table_name, die mindestens so viele Spalten hat, wie assoc_array Elemente. Die Feldnamen in table_name müssen mit den Schlüsseln von assoc_array übereinstimmen und die entsprechenden Datentypen müssen kompatibel sein. Zurückgegeben wird bei Erfolg ein Array mit den konvertierten Werten oder false, falls ein Fehler auftrat.

Hinweis:

Ab PHP 5.6.0 werden boolesche Werte akzeptiert, die zu booleschen PostgreSQL-Werten konvertiert werden. Zeichenkettendarstellungen von booleschen Werten werden ebenfalls unterstützt. null wird in PostgreSQL-NULL konvertiert.

Vor PHP 5.6.0 gilt: falls die Tabelle table_name boolesche Felder enthält, dürfen Sie die Konstante true nicht als Wert im Array assoc_array verwenden. Sie wird zum String 'TRUE' konvertiert, der kein gültiger Wert für boolesche Felder in PostgreSQL ist. Benutzen Sie stattdessen "t", "true", 1, "y" oder "yes".

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung.

table_name

Der Name der Tabelle, für die die Arrayelemente konvertiert werden.

assoc_array

Die Daten, die konvertiert werden.

options

Eie beliebige Kombination der Konstanten PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL und PGSQL_CONV_IGNORE_NOT_NULL.

Rückgabewerte

Ein array mit den konvertierten Werten oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_convert()-Beispiel

<?php
  $dbconn = pg_connect('dbname=foo');

  $tmp = array(
      'author' => 'Joe Thackery',
      'year' => 2005,
      'title' => 'My Life, von Joe Thackery'
  );

  $vals = pg_convert($dbconn, 'authors', $tmp);
?>

Changelog

Version | Beschreibung
5.6.0 | Nicht länger experimentell. Boolesche/NULL Datentypen werden unterstützt. Unbekannte/nicht unterstützte Datentypen werden ohne Gültigkeitsprüfung maskiert. pg_convert() kann mit jedem Datentypen verwendet werden.

Siehe auch

  • pg_meta_data() - Liefert die Metadaten einer Tabelle als Array
  • pg_insert() - Überträgt Werte aus einem Array in eine Tabelle
  • pg_select() - Wählt Datensätze aus
  • pg_update() - Aktualisiert eine Tabelle
  • pg_delete() - Löscht Datensätze


Fügt Datensätze aus einem Array in eine Tabelle ein

  • « pg_convert
  • pg_copy_to »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Fügt Datensätze aus einem Array in eine Tabelle ein

pg_copy_from

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_copy_from — Fügt Datensätze aus einem Array in eine Tabelle ein

Beschreibung

pg_copy_from ( resource $connection , string $table_name , array $rows , string $delimiter = ? , string $null_as = ? ) : bool

pg_copy_from() fügt Datensätze aus einem Array in eine Tabelle ein. Intern wird der COPY-Befehl aufgerufen, um die Datensätze einzufügen. Bei Erfolg gibt die Funktion true zurück, false sonst.

Parameter-Liste

connection

PostgreSQL Verbindungskennung.

table_name

Name der Tabelle, in die die rows eingefügt werden.

rows

Ein array mit Werten, die in die table_name eingefügt werden. Jedes Element von rows wird zu einer Zeile in table_name. Die Elemente in rows müssen Strings mit Feldbegrenzern sein, und mit einem Zeilenvorschub abgeschlossen sein.

delimiter

Der Feldbegrenzer, mit dem die Werte in den Elementen von rows separiert werden. Der Vorgabewert ist TAB.

null_as

Bestimmt, wie SQL NULL Werte in rows dargestellt werden. Der Standardwert ist \N ("\\N").

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_copy_from() Beispiel

<?php
   $db = pg_connect("dbname=publisher") or die("Konnte keine Verbindung aufbauen");

   $rows = pg_copy_to($db, $table_name);

   pg_query($db, "DELETE FROM $table_name");

   pg_copy_from($db, $table_name, $rows);
?>

Siehe auch

  • pg_copy_to() - Kopiert eine Tabelle in ein Array


Kopiert eine Tabelle in ein Array

  • « pg_copy_from
  • pg_dbname »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Kopiert eine Tabelle in ein Array

pg_copy_to

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_copy_to — Kopiert eine Tabelle in ein Array

Beschreibung

pg_copy_to ( resource $connection , string $table_name , string $delimiter = ? , string $null_as = ? ) : array

pg_copy_to() kopiert eine Tabelle in ein Array. Intern wird das SQL-Kommando COPY TO aufgerufen, um die Datensätze einzufügen.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung.

table_name

Der Name der Tabelle, aus der die Daten in das Array rows kopiert werden.

delimiter

Der Feldbegrenzer, mit dem die Werte in den Elementen von rows separiert werden. Der Vorgabewert ist TAB.

null_as

Bestimmt, wie SQL NULL-Werte in rows dargestellt werden. Der Standardwert ist \N ("\\N").

Rückgabewerte

Die Funktion gibt ein array zurück, in dem jedes Element eine Zeile der mit COPY erzeugten Daten enthält. Falls ein Fehler auftritt, wird false zurückgegeben.

Beispiele

Beispiel #1 pg_copy_to()-Beispiel

<?php
   $db = pg_connect("dbname=publisher") or die("Konnte keine Verbindung aufbauen");

   $rows = pg_copy_to($db, $table_name);

   pg_query($db, "DELETE FROM $table_name");

   pg_copy_from($db, $table_name, $rows);
?>

Siehe auch

  • pg_copy_from() - Fügt Datensätze aus einem Array in eine Tabelle ein


Liefert den Namen der Datenbank

  • « pg_copy_to
  • pg_delete »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert den Namen der Datenbank

pg_dbname

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_dbname — Liefert den Namen der Datenbank

Beschreibung

pg_dbname ( resource $connection = ? ) : string

pg_dbname() gibt den Namen der Datenbank zurück, deren connection-Kennung übergeben wurde.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Wenn connection fehlt, wird die Standardverbindung angenommen. Dies ist die Verbindung, die zuletzt mit den Funktionen pg_connect() oder pg_pconnect() geöffnet wurde.

Rückgabewerte

Ein string mit dem Namen der Datenbank, zu der eine connection besteht, oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_dbname()-Beispiel

<?php
  error_reporting(E_ALL);

  pg_connect("host=localhost port=5432 dbname=mary");
  echo pg_dbname(); // mary
?>


Löscht Datensätze

  • « pg_dbname
  • pg_end_copy »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Löscht Datensätze

pg_delete

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_delete — Löscht Datensätze

Beschreibung

pg_delete ( resource $connection , string $table_name , array $assoc_array , int $options = PGSQL_DML_EXEC ) : mixed

pg_delete() löscht die Datensätze aus table_name, deren Feldnamen und Werte im Array assoc_array angegeben wurden. Falls options angegeben wurde, wird pg_convert() mit den angegebenen Optionen auf assoc_array angewendet.

Falls options angegeben wurde, wird pg_convert() mit den angegebenen Flags auf das Array assoc_array angewendet.

Standardmäßig übergibt pg_delete() Rohwerte. Die Werte müssen entweder maskiert werden oder es muss die Option PGSQL_DML_ESCAPE angegeben werden. PGSQL_DML_ESCAPE maskiert Parameter und Bezeichner und setzt sie in Anführungszeichen. Daher muss bei Tabellen- und Spaltennamen zwischen Groß- und Kleinschreibung unterschieden werden.

Es ist zu beachten, dass weder die Maskierung noch eine vorbereitete Abfrage LIKE-Abfragen, JSON, Array, Regex usw. schützen können. Diese Parameter sollten im Kontext behandelt werden, d.h. Werte maskieren und validieren.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung.

table_name

Der Name der Tabelle, aus der Zeilen gelöscht werden.

assoc_array

Ein array dessen Schlüssel den Feldnamen der Tabelle table_name entsprechen und dessen Werte den zu löschenden Spaltenwerten entsprechen.

options

Jede Kombination aus PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC und PGSQL_DML_STRING. Falls PGSQL_DML_STRING in den options enthalten ist, wird der Abfragestring zurückgegeben. Werden PGSQL_DML_NO_CONV oder PGSQL_DML_ESCAPE angegeben, wird pg_convert() intern nicht aufgerufen.

Rückgabewerte

Gibt bei Erfolg true zurück oder einen string, falls die Konstante PGSQL_DML_STRING im Parameter options übergeben wurde. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_delete()-Beispiel

<?php
  $db = pg_connect('dbname=foo');
  // Das ist einigermaßen sicher, da alle Werte maskiert werden.
  // Allerdings unterstützt PostgreSQL JSON/Array. Diese sind nicht
  // sicher, da sie Abfragen weder maskieren noch vorbereiten.
  $res = pg_delete($db, 'post_log', $_POST, PG_DML_ESCAPE);
  if ($res) {
      echo "POST-Daten wurden gelöscht: $res\n";
  } else {
      echo "Aufruf erfolgte mit falschen Angaben\n";
  }
?>

Siehe auch

  • pg_convert() - Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form


Synchronisation mit dem PostgreSQL-Server

  • « pg_delete
  • pg_escape_bytea »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Synchronisation mit dem PostgreSQL-Server

pg_end_copy

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pg_end_copy — Synchronisation mit dem PostgreSQL-Server

Beschreibung

pg_end_copy ( resource $connection = ? ) : bool

pg_end_copy() synchronisiert das PostgreSQL-Frontend (normalerweise ein Prozess des Webservers) mit dem PostgreSQL-Server nach einer Kopier-Operation, die von der Funktion pg_put_line() durchgeführt wurde. pg_end_copy() muss aufgerufen werden, da sonst der PostgreSQL-Server einen "out of sync" Fehler mit dem Frontend meldet. Die Funktion gibt bei Erfolg true zurück, und bei Misserfolg einen Fehler.

Parameter-Liste

connection

PostgreSQL Verbindungkennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_end_copy() Beispiel

<?php
  $conn = pg_pconnect("dbname=foo");
  pg_query($conn, "create table bar (a int4, b char(16), d float8)");
  pg_query($conn, "copy bar from stdin");
  pg_put_line($conn, "3\thello world\t4.5\n");
  pg_put_line($conn, "4\tgoodbye world\t7.11\n");
  pg_put_line($conn, "\\.\n");
  pg_end_copy($conn);
?>

Siehe auch

  • pg_put_line() - Sendet eine NULL-terminierte Zeichenkette zum PostgreSQL-Server


Maskiert Zeichenketten zum Einfügen in ein Feld vom Typ bytea

  • « pg_end_copy
  • pg_escape_identifier »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Maskiert Zeichenketten zum Einfügen in ein Feld vom Typ bytea

pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_escape_bytea — Maskiert Zeichenketten zum Einfügen in ein Feld vom Typ bytea

Beschreibung

pg_escape_bytea ( resource $connection = ? , string $data ) : string

pg_escape_bytea() maskiert data für den Datentyp bytea und gibt den maskierten String zurück.

Hinweis:

Wenn Daten vom Typ bytea mit SELECT abgefragt werden, gibt PostgreSQL die Oktalwerte der einzelnen Datenbytes zurück, denen ein Backslash vorangestellt ist (z.B. \032). Diese Werte müssen vom Benutzer in das Binärformat zurückkonvertiert werden.

Diese Funktion setzt PostgreSQL 7.2 oder höher voraus. Bei PostgreSQL 7.2.0 und 7.2.1 muss der Typ bytea konvertiert werden, falls die multi-byte-Unterstützung benutzt wird, z.B. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);. Ab PostgreSQL 7.2.2 und höher, muss keine Typkonvertierung mehr durchgeführt werden. Es sei denn, die Codierungen von Client und Server passen nicht zusammen, was zu einem multi-byte Streamfehler führen kann. Um diesen Fehler zu vermeiden, muss der Stream in den Typ bytea konvertiert werden.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Wenn der Parameter connection nicht angegeben ist, wird die Standardverbindung benutzt. Das ist die Verbindung, die zuletzt von pg_connect() oder pg_pconnect() geöffnet wurde.

data

Ein string, der Text oder Binärdaten enthält, die in eine Spalte vom Typ bytea eingefügt werden sollen.

Rückgabewerte

Ein string mit den maskierten Daten.

Beispiele

Beispiel #1 pg_escape_bytea()-Beispiel

<?php
  // Zur Datenbank verbinden
  $dbconn = pg_connect('dbname=foo');

  // eine Binärdatei auslesen
  $data = file_get_contents('image1.jpg');

  // Die Binärdaten maskieren
  $escaped = pg_escape_bytea($data);

  // und in die Datenbank einfügen
  pg_query("INSERT INTO gallery (name, data) VALUES ('Pine trees', '{$escaped}')");
?>

Siehe auch

  • pg_unescape_bytea() - Entfernt Maskierungen für den Typ bytea
  • pg_escape_string() - Maskiert einen String für Abfragen


Escape a identifier for insertion into a text field

  • « pg_escape_bytea
  • pg_escape_literal »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Escape a identifier for insertion into a text field

pg_escape_identifier

(PHP 5 >= 5.4.4, PHP 7, PHP 8)

pg_escape_identifier — Escape a identifier for insertion into a text field

Beschreibung

pg_escape_identifier ( resource $connection = ? , string $data ) : string

pg_escape_identifier() escapes a identifier (e.g. table, field names) for querying the database. It returns an escaped identifier string for PostgreSQL server. pg_escape_identifier() adds double quotes before and after data. Users should not add double quotes. Use of this function is recommended for identifier parameters in query. For SQL literals (i.e. parameters except bytea), pg_escape_literal() or pg_escape_string() must be used. For bytea type fields, pg_escape_bytea() must be used instead.

Hinweis:

This function has internal escape code and can also be used with PostgreSQL 8.4 or less.

Parameter-Liste

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

data

A string containing text to be escaped.

Rückgabewerte

A string containing the escaped data.

Beispiele

Beispiel #1 pg_escape_identifier() example

<?php
  // Connect to the database
  $dbconn = pg_connect('dbname=foo');

  // Escape the table name data
  $escaped = pg_escape_identifier($table_name);

  // Select rows from $table_name
  pg_query("SELECT * FROM {$escaped};");
?>

Siehe auch

  • pg_escape_literal() - Escape a literal for insertion into a text field
  • pg_escape_bytea() - Maskiert Zeichenketten zum Einfügen in ein Feld vom Typ bytea
  • pg_escape_string() - Maskiert einen String für Abfragen


Escape a literal for insertion into a text field

  • « pg_escape_identifier
  • pg_escape_string »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Escape a literal for insertion into a text field

pg_escape_literal

(PHP 5 >= 5.4.4, PHP 7, PHP 8)

pg_escape_literal — Escape a literal for insertion into a text field

Beschreibung

pg_escape_literal ( resource $connection = ? , string $data ) : string

pg_escape_literal() escapes a literal for querying the PostgreSQL database. It returns an escaped literal in the PostgreSQL format. pg_escape_literal() adds quotes before and after data. Users should not add quotes. Use of this function is recommended instead of pg_escape_string(). If the type of the column is bytea, pg_escape_bytea() must be used instead. For escaping identifiers (e.g. table, field names), pg_escape_identifier() must be used.

Hinweis:

This function has internal escape code and can also be used with PostgreSQL 8.4 or less.

Parameter-Liste

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect(). When there is no default connection, it raises E_WARNING and returns false.

data

A string containing text to be escaped.

Rückgabewerte

A string containing the escaped data.

Beispiele

Beispiel #1 pg_escape_literal() example

<?php
  // Connect to the database
  $dbconn = pg_connect('dbname=foo');

  // Read in a text file (containing apostrophes and backslashes)
  $data = file_get_contents('letter.txt');

  // Escape the text data
  $escaped = pg_escape_literal($data);

  // Insert it into the database. Note that no quotes around {$escaped}
  pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', {$escaped})");
?>

Siehe auch

  • pg_escape_identifier() - Escape a identifier for insertion into a text field
  • pg_escape_bytea() - Maskiert Zeichenketten zum Einfügen in ein Feld vom Typ bytea
  • pg_escape_string() - Maskiert einen String für Abfragen


Maskiert einen String für Abfragen

  • « pg_escape_literal
  • pg_execute »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Maskiert einen String für Abfragen

pg_escape_string

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_escape_string — Maskiert einen String für Abfragen

Beschreibung

pg_escape_string ( resource $connection = ? , string $data ) : string

pg_escape_string() maskiert einen String für Datenbankabfragen. Der Rückgabewert ist der maskierte String im PostgreSQL-Format ohne Anführungszeichen. pg_escape_literal() ist die bevorzugte Weise um SQL-Paramter für PostgreSQL zu maskieren. addslashes() darf nicht mit PostgreSQL verwendet werden. Falls der Datentyp der Spalte bytea ist, müssen Sie stattdessen pg_escape_bytea() verwenden. pg_escape_identifier() muss verwendet werden, um Bezeichner (z.B. Tabellenamen, Feldnamen) zu maskieren.

Hinweis:

Diese Funktion setzt PostgreSQL 7.2 oder höher voraus.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Wenn der Parameter connection nicht angegeben ist, wird die Standardverbindung benutzt. Das ist die Verbindung, die zuletzt von pg_connect() oder pg_pconnect() geöffnet wurde.

data

Ein string mit den Daten, die maskiert werden müssen.

Rückgabewerte

Ein string mit den maskierten Daten.

Beispiele

Beispiel #1 pg_escape_string()-Beispiel

<?php
  // Datenbankverbindung öffnen
  $dbconn = pg_connect('dbname=foo');

  // Eine Textdatei (mit Hochkommas und Backslashes) auslesen
  $data = file_get_contents('letter.txt');

  // Die Textdaten maskieren
  $escaped = pg_escape_string($data);

  // und in die Datenbank einfügen
  pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', '{$escaped}')");
?>

Siehe auch

  • pg_escape_bytea() - Maskiert Zeichenketten zum Einfügen in ein Feld vom Typ bytea


Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis

  • « pg_escape_string
  • pg_fetch_all_columns »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis

pg_execute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_execute — Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis

Beschreibung

pg_execute ( resource $connection = ? , string $stmtname , array $params ) : resource|false

Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis.

pg_execute() ist ähnlich wie pg_query_params(), mit dem Unterschied, dass das auszuführende Kommando zuvor als vorbereitete Abfrage definiert wurde und kein SQL-String ist. Damit werden Abfragen, die wiederholt verwendet werden, nur ein einziges Mal geparst und geplant und nicht jedesmal, wenn sie ausgeführt werden. Das Kommando muss zuvor in der aktuellen Datenbanksitzung vorbereitet worden sein. pg_execute() wird von PostgreSQL ab der Version 7.4 unterstützt und wird in allen früheren Versionen fehlschlagen.

Die Parameter sind identisch zu denen in pg_query_params(), außer dass der Name eines vorbereiteten Kommandos anstatt einer SQL-Abfrage übergeben wird.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Wenn connection fehlt, wird die Standardverbindung angenommen. Dies ist die Verbindung, die zuletzt mit den Funktionen pg_connect() oder pg_pconnect() geöffnet wurde.

stmtname

Der Name der vorbereiteten Abfrage, die ausgeführt werden soll. Falls "" angegeben wurde, wird die unbenannte Abfrage ausgeführt. Dieser Name muss zuvor mit pg_prepare(), pg_send_prepare() oder dem SQL-Kommando PREPARE vorbereitet worden sein.

params

Ein Array, das die Parameter enthält, mit denen die Platzhalter $1, $2 usw. im originalen Abfragestring ersetzt werden. Die Anzahl der Arrayelemente muss mit der Anzahl der Platzhalter übereinstimmen.

Warnung

Beim Aufruf dieser Funktion werden die Elemente in Strings konvertiert.

Rückgabewerte

Bei Erfolg wird eine Ergebniskennung zurückgegeben. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_execute() benutzen:

<?php
// Zu der Datenbank "mary" verbinden
$dbconn = pg_connect("dbname=mary");

// Eine Abfrage zur Ausführung vorbereiten
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// Die vorbereitete Abfrage ausführen. Es ist nicht notwendig,
// den String "Joe's Widgets" zu maskieren
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Dieselbe vorbereitete Abfrage nochmal ausführen,
// diesmal mit einem anderen Parameter
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

Siehe auch

  • pg_prepare() - Sendet eine Aufforderung an den Server, eine vorbereitete Anfrage mit den übergebenen Parametern zu erzeugen und wartet auf ihre Beendigung
  • pg_send_prepare() - Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern zu erzeugen, ohne auf ihre Beendigung zu warten
  • pg_query_params() - Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden


Gibt alle Werte einer bestimmten Spalte eines Abfrageergebnisses in einem Array zurück

  • « pg_execute
  • pg_fetch_all »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Gibt alle Werte einer bestimmten Spalte eines Abfrageergebnisses in einem Array zurück

pg_fetch_all_columns

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_fetch_all_columns — Gibt alle Werte einer bestimmten Spalte eines Abfrageergebnisses in einem Array zurück

Beschreibung

pg_fetch_all_columns ( resource $result , int $column = 0 ) : array

pg_fetch_all_columns() gibt ein Array zurück, das alle Werte einer bestimmten Spalte eines Abfrageergebnisses enthält.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

Parameter-Liste

result

Das PostgreSQL-Abfrageergebnis, das (unter anderem) von pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.

column

Die Nummer der Spalte (beginnend bei 0), die aus dem Abfrageergebnis extrahiert werden soll. Falls nichts angegeben wurde, wird die erste Spalte ausgelesen.

Rückgabewerte

Ein array, in dem alle Werte der Ergebnisspalte gespeichert sind.

Falls die Spaltennummer column größer ist, als das Abfrageergebnis Spalten hat, oder wenn ein anderer Fehler auftritt, wird false zurckgegeben.

Beispiele

Beispiel #1 pg_fetch_all_columns()-Beispiel

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Ein Fehler ist aufgetreten.\n";
  exit;
}

$result = pg_query($conn, "SELECT title, name, address FROM authors");
if (!$result) {
  echo "Ein Fehler ist aufgetreten.\n";
  exit;
}

// Die Namen aller Autoren in einem Array holen
$arr = pg_fetch_all_columns($result, 1);

var_dump($arr);

?>

Siehe auch

  • pg_fetch_all() - Liefert alle Zeilen eines Abfrageergebnisses als Array


Liefert alle Zeilen eines Abfrageergebnisses als Array

  • « pg_fetch_all_columns
  • pg_fetch_array »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert alle Zeilen eines Abfrageergebnisses als Array

pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_fetch_all — Liefert alle Zeilen eines Abfrageergebnisses als Array

Beschreibung

pg_fetch_all ( resource $result , int $result_type = PGSQL_ASSOC ) : array

pg_fetch_all() gibt ein Array zurück, das alle Zeilen eines Abfrageergebnisses enthält.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

Parameter-Liste

result

Die PostgreSQL-Verbindungskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

Rückgabewerte

Ein array mit allen Zeilen des Abfrageergebnisses. Jede Zeile ist ein assoziatives Array mit den Feldnamen als Indizes und den Werten der Tabellenspalte als Werte.

Falls ein Fehler auftritt oder falls das Abfrageergebnis leer ist, wird false zurückgegeben.

Beispiele

Beispiel #1 PostgreSQL fetch all

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Konnte keine Verbindung aufbauen.\n";
  exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
  echo "Ein Fehler ist aufgetreten.\n";
  exit;
}

$arr = pg_fetch_all($result);

print_r($arr);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Fred
        )

    [1] => Array
        (
            [id] => 2
            [name] => Bob
        )

)

Changelog

Version | Beschreibung
7.1.0 | Der Parameter result_type wurde hinzugefügt.

Siehe auch

  • pg_fetch_row() - Liefert einen Datensatz als numerisches Array
  • pg_fetch_array() - Liefert eine Zeile als Array
  • pg_fetch_object() - Liefert einen Datensatz als Objekt
  • pg_fetch_result() - Liefert Werte aus einer Ergebnismenge


Liefert eine Zeile als Array

  • « pg_fetch_all
  • pg_fetch_assoc »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert eine Zeile als Array

pg_fetch_array

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_fetch_array — Liefert eine Zeile als Array

Beschreibung

pg_fetch_array ( resource $result , int $row = ? , int $result_type = PGSQL_BOTH ) : array

pg_fetch_array() gibt ein Array zurück, das die gelesene Zeile (Tupel, Datensatz) enthält.

pg_fetch_array() ist eine erweiterte Version von pg_fetch_row(). Zusätzlich zur Speicherung der Daten in einem numerischen Array (mit den Feldindizes) speichert diese Funktion die Daten auch in einem assoziativen Array, mit den Feldnamen als Indizes. In der Standardeinstellung wird ein Array mit beiden Indextypen zurückgegeben.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

pg_fetch_array() ist NICHT wesentlich langsamer als pg_fetch_row() oder pg_fetch_assoc(), ist aber viel einfacher zu benutzen.

Parameter-Liste

result

Die PostgreSQL-Verbindungskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

row

Die Nummer der Zeile des Abfrageergebnisses, die geholt werden soll. Die Nummerierung beginnt bei 0. Fehlt dieser Parameter oder ist er null, so wird jeweils die nächste Zeile geholt.

result_type

Ein optionaler Parameter, mit dem bestimmt werden kann, wie das array indiziert sein soll. result_type ist eine Konstante, die die Werte PGSQL_ASSOC, PGSQL_NUM oder PGSQL_BOTH annehmen kann. Mit der Konstanten PGSQL_NUM gibt pg_fetch_array() ein numerisch indiziertes Array zurück, mit der Konstanten PGSQL_ASSOC ein assoziatives Array. Die Standardeinstellung ist PGSQL_BOTH, mit der ein Array sowohl mit numerischen als auch assoziativen Indizes zurückgegeben wird.

Rückgabewerte

Ein array, das entweder numerisch (bei 0 beginnend) oder assoziativ indiziert ist oder beides. Jeder Wert im array wird als string repräsentiert. Nullwerte der Datenbank (NULL) werden als null zurückgegeben.

Bei einem Fehler oder wenn der Parameter row größer als die Anzahl der Zeilen im Abfrageergebnis ist oder wenn kein Datensatz mehr gelesen werden kann, wird false zurückgegeben. Der Versuch, das Ergebnis einer anderen Abfrage als SELECT abzurufen, gibt ebenfalls false zurück.

Beispiele

Beispiel #1 pg_fetch_array()-Beispiel

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Konnte keine Verbindung aufbauen.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "Ein Fehler ist aufgetreten.\n";
  exit;
}

$arr = pg_fetch_array($result, 0, PGSQL_NUM);
echo $arr[0] . " <- Zeile 1 Autor\n";
echo $arr[1] . " <- Zeile 1 E-mail\n";

// Der Parameter row ist optional. Stattdessen kann
// NULL übergeben werden. Aufeinanderfolgende Aufrufe von
// pg_fetch_array liefern jeweils den nächsten Datensatz.
$arr = pg_fetch_array($result, NULL, PGSQL_ASSOC);
echo $arr["author"] . " <- Zeile 2 Autor\n";
echo $arr["email"] . " <- Zeile 2 E-mail\n";

$arr = pg_fetch_array($result);
echo $arr["author"] . " <- Zeile 3 Autor\n";
echo $arr[1] . " <- Zeile 3 E-mail\n";

?>

Siehe auch

  • pg_fetch_row() - Liefert einen Datensatz als numerisches Array
  • pg_fetch_object() - Liefert einen Datensatz als Objekt
  • pg_fetch_result() - Liefert Werte aus einer Ergebnismenge


Liefert eine Zeile als assoziatives Array

  • « pg_fetch_array
  • pg_fetch_object »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert eine Zeile als assoziatives Array

pg_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_fetch_assoc — Liefert eine Zeile als assoziatives Array

Beschreibung

pg_fetch_assoc ( resource $result , int $row = ? ) : array

pg_fetch_assoc() gibt eine Zeile eines Abfrageergebnisses als assoziatives Array zurück.

pg_fetch_assoc() ist äquivalent zu pg_fetch_array() mit PGSQL_ASSOC als optionalem dritten Parameter. Zurückgegeben wird nur ein assoziatives Array. Falls Sie ein numerisches Array brauchen, müssen Sie die Funktion pg_fetch_row() benutzen.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

pg_fetch_assoc() ist nur unwesentlich langsamer als pg_fetch_row(), aber wesentlich einfacher zu benutzen.

Parameter-Liste

result

Die PostgreSQL-Verbindungskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

row

Die Nummer der Zeile des Abfrageergebnisses, die geholt werden soll. Die Nummerierung beginnt bei 0. Fehlt dieser Parameter oder ist er null, so wird jeweils die nächste Zeile geholt.

Rückgabewerte

Ein array, das mit den Feldnamen des Abfrageergebnisses indiziert ist. Jeder Wert im array wird als string repräsentiert. Nullwerte der Datenbank (NULL) werden als null zurückgegeben.

Bei einem Fehler oder wenn der Parameter row größer als die Anzahl der Zeilen im Abfrageergebnis ist oder wenn kein Datensatz mehr gelesen werden kann, wird false zurückgegeben.

Beispiele

Beispiel #1 pg_fetch_assoc()-Beispiel

<?php
$conn = pg_connect("dbname=publisher");
if (!$conn) {
  echo "Konnte keine Verbindung aufbauen.\n";
  exit;
}

$result = pg_query($conn, "SELECT id, author, email FROM authors");
if (!$result) {
  echo "Ein Fehler ist aufgetreten.\n";
  exit;
}

while ($row = pg_fetch_assoc($result)) {
  echo $row['id'];
  echo $row['author'];
  echo $row['email'];
}
?>

Siehe auch

  • pg_fetch_row() - Liefert einen Datensatz als numerisches Array
  • pg_fetch_array() - Liefert eine Zeile als Array
  • pg_fetch_object() - Liefert einen Datensatz als Objekt
  • pg_fetch_result() - Liefert Werte aus einer Ergebnismenge


Liefert einen Datensatz als Objekt

  • « pg_fetch_assoc
  • pg_fetch_result »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert einen Datensatz als Objekt

pg_fetch_object

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_fetch_object — Liefert einen Datensatz als Objekt

Beschreibung

pg_fetch_object ( resource $result , int $row = ? , int $result_type = PGSQL_ASSOC ) : object
pg_fetch_object ( resource $result , int $row = ? , string $class_name = ? , array $params = ? ) : object

pg_fetch_object() gibt ein Objekt zurück, dessen Eigenschaften mit den Feldern des geholten Datensatzes übereinstimmen. Optional kann pg_fetch_object() ein Objekt der angegebenen Klasse instantiieren und Parameter an den Konstruktor dieser Klasse übergeben.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

Von der Geschwindigkeit her ist die Funktion mit pg_fetch_array() identisch und fast so schnell wie pg_fetch_row() (der Unterschied ist unwesentlich).

Parameter-Liste

result

Die PostgreSQL-Verbindungskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

row

Die Nummer der Zeile des Abfrageergebnisses, die geholt werden soll. Die Nummerierung beginnt bei 0. Fehlt dieser Parameter oder ist er null, so wird jeweils die nächste Zeile geholt.

result_type

Ist veraltet und wird ignoriert.

class_name

Der Name der Klasse, die instantiiert werden soll. Ein Objekt dieser Klasse mit den gesetzten Eigenschaften wird zurückgegeben. Fehlt dieser Parameter, wird eine Objekt der Klasse stdClass zurückgegeben.

params

Ein optionales array mit Parametern, die an den Konstruktor von class_name übergeben werden.

Rückgabewerte

Ein object, das für jeden Feldnamen des geholten Datensatzes eine Eigenschaft enthält. NULL-Werte der Datenbank werden als null zurückgegeben.

Bei einem Fehler oder wenn der Parameter row größer als die Anzahl der Zeilen im Abfrageergebnis ist oder wenn kein Datensatz mehr gelesen werden kann, wird false zurückgegeben.

Beispiele

Beispiel #1 pg_fetch_object()-Beispiel

<?php

$database = "store";

$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!$db_conn) {
  echo "Konnte keine Verbindung zu $database aufbauen.\n";
  exit;
}

$qu = pg_query($db_conn, "SELECT * FROM books ORDER BY author");

while ($data = pg_fetch_object($qu)) {
  echo $data->author . " (";
  echo $data->year . "): ";
  echo $data->title . "<br />";
}

pg_free_result($qu);
pg_close($db_conn);

?>

Siehe auch

  • pg_query() - Führt eine Abfrage aus
  • pg_fetch_array() - Liefert eine Zeile als Array
  • pg_fetch_assoc() - Liefert eine Zeile als assoziatives Array
  • pg_fetch_row() - Liefert einen Datensatz als numerisches Array
  • pg_fetch_result() - Liefert Werte aus einer Ergebnismenge


Liefert Werte aus einer Ergebnismenge

  • « pg_fetch_object
  • pg_fetch_row »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert Werte aus einer Ergebnismenge

pg_fetch_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_fetch_result — Liefert Werte aus einer Ergebnismenge

Beschreibung

pg_fetch_result ( resource $result , int $row , mixed $field ) : string|false|null
pg_fetch_result ( resource $result , mixed $field ) : string|false|null

pg_fetch_result() liefert den Wert einer bestimmten Zeile und Spalte eines PostgreSQL-Abfrageergebnisses.

Hinweis:

Diese Funktion ersetzt die Funktion pg_result().

Parameter-Liste

result

Die PostgreSQL-Verbindungskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

row

Die Nummer der Zeile des Abfrageergebnisses, die geholt werden soll. Die Nummerierung beginnt bei 0. Fehlt dieser Parameter, so wird jeweils die nächste Zeile geholt.

field

Ein string, der den Feldnamen des gewünschten Feldes enthält oder dessen numerischen Feldindex (beginnend bei 0).

Rückgabewerte

Boolesche Werte werden als "t" oder "f" zurückgegeben. Alle anderen Typen, einschließlich Arrays, werden als Strings in der vom psql-Befehl bekannten PostgreSQL-Standardformatierung zurückgegeben,. Nullwerte der Datenbank NULL werden als null zurückgegeben.

Bei einem Fehler oder wenn der Parameter row größer als die Anzahl der Zeilen im Abfrageergebnis ist, wird false zurückgegeben.

Beispiele

Beispiel #1 pg_fetch_result()-Beispiel

<?php
$db = pg_connect("dbname=users user=me") || die();

$res = pg_query($db, "SELECT 1 UNION ALL SELECT 2");

$val = pg_fetch_result($res, 1, 0);

echo "Das erste Feld in der zweiten Zeile enthält: ", $val, "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Das erste Feld in der zweiten Zeile enthält: 2

Siehe auch

  • pg_query() - Führt eine Abfrage aus
  • pg_fetch_array() - Liefert eine Zeile als Array


Liefert einen Datensatz als numerisches Array

  • « pg_fetch_result
  • pg_field_is_null »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert einen Datensatz als numerisches Array

pg_fetch_row

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_fetch_row — Liefert einen Datensatz als numerisches Array

Beschreibung

pg_fetch_row ( resource $result , int $row = ? ) : array

pg_fetch_row() holt einen Datensatz der Ergebnismenge, die durch die Ergebniskennung result bezeichnet wird.

Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-null.

Parameter-Liste

result

Die PostgreSQL-Verbindungskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

row

Die Nummer der Zeile des Abfrageergebnisses, die geholt werden soll. Die Nummerierung beginnt bei 0. Fehlt dieser Parameter oder ist er null, so wird jeweils die nächste Zeile geholt.

Rückgabewerte

Ein array, beginnend bei Index 0, bei dem jeder Wert als string dargestellt wird. Nullwerte der Datenbank (NULL) werden als null zurückgegeben.

Bei einem Fehler oder wenn der Parameter row größer als die Anzahl der Zeilen im Abfrageergebnis ist oder wenn kein Datensatz mehr gelesen werden kann, wird false zurückgegeben.

Beispiele

Beispiel #1 pg_fetch_row()-Beispiel

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Konnte keine Verbindung aufbauen.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "Ein Fehler ist aufgetreten.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Autor: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Siehe auch

  • pg_query() - Führt eine Abfrage aus
  • pg_fetch_array() - Liefert eine Zeile als Array
  • pg_fetch_object() - Liefert einen Datensatz als Objekt
  • pg_fetch_result() - Liefert Werte aus einer Ergebnismenge


Prüft, ob ein Feld einen SQL-NULL-Wert enthält

  • « pg_fetch_row
  • pg_field_name »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Prüft, ob ein Feld einen SQL-NULL-Wert enthält

pg_field_is_null

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_is_null — Prüft, ob ein Feld einen SQL-NULL-Wert enthält

Beschreibung

pg_field_is_null ( resource $result , int $row , mixed $field ) : int
pg_field_is_null ( resource $result , mixed $field ) : int

pg_field_is_null() prüft, ob ein Feld eines PostgreSQL-Abfrageergebnisses einen SQL-NULL-Wert enthält.

Hinweis:

Diese Funktion ersetzt die Funktion pg_fieldisnull().

Parameter-Liste

result

Die PostgreSQL-Verbindungskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

row

Die Nummer der Zeile im Abfrageergebnis. Die Nummerierung beginnt bei 0. Fehlt dieser Parameter, wird die aktuelle Zeile geholt.

field

Die Nummer des Feldes (beginnend bei 0) als int oder der Feldname als string.

Rückgabewerte

Gibt 1 zurück, falls das Feld in der übergebenen Zeile einen SQL-NULL-Wert enthält und 0, falls nicht. Bei einem Fehler oder wenn der Parameter row größer als die Anzahl der Zeilen im Abfrageergebnis ist, wird false zurückgegeben.

Beispiele

Beispiel #1 pg_field_is_null()-Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die
            ("Konnte keine Verbindung aufbauen");
  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  if ($res) {
      if (pg_field_is_null($res, 0, "year") == 1) {
          echo "Der Wert im Feld year ist NULL.\n";
      }
      if (pg_field_is_null($res, 0, "year") == 0) {
          echo "Der Wert im Feld year ist nicht NULL.\n";
    }
 }
?>


Liefert den Namen eines Feldes

  • « pg_field_is_null
  • pg_field_num »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert den Namen eines Feldes

pg_field_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_name — Liefert den Namen eines Feldes

Beschreibung

pg_field_name ( resource $result , int $field_number ) : string

pg_field_name() gibt den Feldnamen mit der übergebenen field_number aus der durch result bezeichneten PostgreSQL-Ergebnismenge zurück. Die Feldnummerierung beginnt bei 0.

Hinweis:

Diese Funktion ersetzt die Funktion pg_fieldname().

Parameter-Liste

result

Die PostgreSQL-Verbindungskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

field_number

Die Feldnummer, beginnend bei 0.

Rückgabewerte

Den Feldnamen oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 Informationen über Felder abfragen

<?php
  $dbconn = pg_connect("dbname=publisher") or die
           ("Konnte keine Verbindung aufbauen.");

  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "Spalte $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "Feldname: $fieldname\n";
      echo "Feldlänge in Zeichen: " . pg_field_prtlen($res, $fieldname) . " Zeichen\n";
      echo "Feldlänge in Bytes: " . pg_field_size($res, $j) . " Bytes\n";
      echo "Feldtyp: " . pg_field_type($res, $j) . " \n\n";
  }
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Spalte 0
Feldname: author
Feldlänge in Zeichen: 6 Zeichen
Feldlänge in Bytes: -1 Bytes
Feldtyp: varchar

Spalte 1
Feldname: year
Feldlänge in Zeichen: 4 Zeichen
Feldlänge in Bytes: 2 Bytes
Feldtyp: int2

Spalte 2
Feldname: title
Feldlänge in Zeichen: 24 Zeichen
Feldlänge in Bytesr: -1 Bytes
Feldtyp: varchar

Siehe auch

  • pg_field_num() - Gibt die Feldnummer des angegebenen Feldes zurück


Gibt die Feldnummer des angegebenen Feldes zurück

  • « pg_field_name
  • pg_field_prtlen »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Gibt die Feldnummer des angegebenen Feldes zurück

pg_field_num

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_num — Gibt die Feldnummer des angegebenen Feldes zurück

Beschreibung

pg_field_num ( resource $result , string $field_name ) : int

pg_field_num() gibt die Nummer der Spalte (Feld) aus, die zu dem übergebenen field_name in dem durch result bezeichneten PostgreSQL Abfrageergebnis gehört.

Hinweis:

Diese Funktion ersetzt die Funktion pg_fieldnum().

Parameter-Liste

result

PostgreSQL Verbindungskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

field_name

Der Feldname

Rückgabewerte

Die Feldnummer (beginnend bei 0) oder -1, falls ein Fehler auftrat.

Beispiele

Beispiel #1 Die Nummer eines Feldes ermitteln

<?php
  $dbconn = pg_connect("dbname=publisher") or die
            ("Konnte keine Verbindung aufbauen.");

  $res = pg_query($dbconn, "select author, year, title from authors where author = 'Orwell'");

  echo "Die Spalte 'title' hat die Feldnummer: ", pg_field_num($res, 'title');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Die Spalte 'title' hat die Feldnummer: 2

Siehe auch

  • pg_field_name() - Liefert den Namen eines Feldes


Liefert die Länge des Feldes

  • « pg_field_num
  • pg_field_size »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert die Länge des Feldes

pg_field_prtlen

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_prtlen — Liefert die Länge des Feldes

Beschreibung

pg_field_prtlen ( resource $result , int $row_number , mixed $field_name_or_number ) : int
pg_field_prtlen ( resource $result , mixed $field_name_or_number ) : int

pg_field_prtlen() gibt die aktuelle Länge (Anzahl der Zeichen) eines bestimmten Wertes in einem PostgreSQL-result zurück. Die Feldnummerierung beginnt bei 0. Die Funktion gibt bei einem Fehler false zurück.

field_name_or_number kann als int oder als string übergeben werden. Ein int wird von PHP als Feldnummer interpretiert, ein string als Feldname.

Sehen Sie sich dazu das Beispiel bei pg_field_name() an.

Hinweis:

Diese Funktion ersetzt die Funktion pg_fieldprtlen().

Parameter-Liste

result

PostgreSQL Verbindungskennung, die (unter anderem) von den Funktionen pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.

row

Die Nummer der Zeile im Abfrageergebnis. Die Nummerierung beginnt bei 0. Fehlt dieser Parameter, so wird jeweils die nächste Zeile geholt.

Rückgabewerte

Die Anzahl der Zeichen in dem Feld oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 Informationen über Spalten ermitteln

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Verbindungsaufbau fehlgeschlagen");

  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "Spalte $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "Spaltenname: $fieldname\n";
      echo "Anzahl Druckzeichen: " . pg_field_prtlen($res, $fieldname) . " characters\n";
      echo "Anzahl Bytes im speicher: " . pg_field_size($res, $j) . " bytes\n";
      echo "Spaltentyp: " . pg_field_type($res, $j) . " \n\n";
  }
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Spalte 0
Spaltenname: author
Anzahl Druckzeichen: 6 characters
Anzahl Bytes im speicher: -1 bytes
Spaltentyp: varchar

Spalte 1
Spaltenname: year
Anzahl Druckzeichen: 4 characters
Anzahl Bytes im speicher: 2 bytes
Spaltentyp: int2

Spalte 2
Spaltenname: title
Anzahl Druckzeichen: 24 characters
Anzahl Bytes im speicher: -1 bytes
Spaltentyp: varchar

Siehe auch

  • pg_field_size() - Liefert die interne Größe des belegten Speichers für ein Feld


Liefert die interne Größe des belegten Speichers für ein Feld

  • « pg_field_prtlen
  • pg_field_table »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert die interne Größe des belegten Speichers für ein Feld

pg_field_size

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_size — Liefert die interne Größe des belegten Speichers für ein Feld

Beschreibung

pg_field_size ( resource $result , int $field_number ) : int

pg_field_size() gibt die interne Größe (in Bytes) des Feldes mit der Nummer field_number im PostgreSQL-Abfrageergebnis result zurück.

Hinweis:

Diese Funktion ersetzt die Funktion pg_fieldsize().

Parameter-Liste

result

Die PostgreSQL-Verbindungskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

field_number

Die Feldnummer, beginnend bei 0.

Rückgabewerte

Die interne Größe des Feldes in Byte. Eine Feldgröße von -1 beschreibt ein Feld mit variabler Länge. Bei einem Fehler wird false zurückgegeben.

Beispiele

Beispiel #1 Informationen über Felder abfragen

<?php
  $dbconn = pg_connect("dbname=publisher") or die
           ("Konnte keine Verbindung aufbauen.");

  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "Spalte $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "Feldname: $fieldname\n";
      echo "Feldlänge in Zeichen: " . pg_field_prtlen($res, $fieldname) . " Zeichen\n";
      echo "Feldlänge in Bytes: " . pg_field_size($res, $j) . " Bytes\n";
      echo "Feldtyp: " . pg_field_type($res, $j) . " \n\n";
  }
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Spalte 0
Feldname: author
Feldlänge in Zeichen: 6 Zeichen
Feldlänge in Bytes: -1 Bytes
Feldtyp: varchar

Spalte 1
Feldname: year
Feldlänge in Zeichen: 4 Zeichen
Feldlänge in Bytes: 2 Bytes
Feldtyp: int2

Spalte 2
Feldname: title
Feldlänge in Zeichen: 24 Zeichen
Feldlänge in Bytesr: -1 Bytes
Feldtyp: varchar

Siehe auch

  • pg_field_prtlen() - Liefert die Länge des Feldes
  • pg_field_type() - Liefert den Datentyp eines Feldes


Gibt zu einem Feldnamen den Namen der Tabelle oder deren oid zurück, in der das Feld definiert ist

  • « pg_field_size
  • pg_field_type_oid »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Gibt zu einem Feldnamen den Namen der Tabelle oder deren oid zurück, in der das Feld definiert ist

pg_field_table

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

pg_field_table — Gibt zu einem Feldnamen den Namen der Tabelle oder deren oid zurück, in der das Feld definiert ist

Beschreibung

pg_field_table ( resource $result , int $field_number , bool $oid_only = false ) : mixed

pg_field_table() gibt den Namen der Tabelle zurück, in der das Feld definiert ist, oder den oid (Object Identifier) der Tabelle, falls der Parameter oid_only true ist.

Parameter-Liste

result

PostgreSQL-Verbindungskennung, die (unter anderem) von den Funktionen pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.

field_number

Index des Feldes, beginnend bei 0.

oid_only

In der Standardeinstellung wird der Name der Tabelle zurückgegeben, zu der dieses Feld gehört. Wenn der Parameter oid_only den Wert true hat, wird stattdessen der oid der Tabelle zurückgegeben.

Rückgabewerte

Bei Erfolg wird entweder der Name oder der oid der Tabelle zurückgegeben.

Beispiele

Beispiel #1 Informationen über Felder abfragen

<?php
$dbconn = pg_connect("dbname=publisher")
          or die("Konnte keine Verbindung aufbauen.");

$res = pg_query($dbconn, "SELECT bar FROM foo");

echo pg_field_table($res, 0);
echo pg_field_table($res, 0, true);

$res = pg_query($dbconn, "SELECT version()");
var_dump(pg_field_table($res, 0));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

foo
14379580

bool(false)

Anmerkungen

Hinweis:

Die Funktion ist viel schneller, wenn man sich den oid zurückgeben lässt, weil zur Ermittlung des Tabellennamens die Systemkataloge der Datenbank abgefragt werden müssen.

Siehe auch

  • pg_field_name() - Liefert den Namen eines Feldes
  • pg_field_type() - Liefert den Datentyp eines Feldes


Liefert die ID des PostgreSQL-Datentyps (OID) eines Feldes

  • « pg_field_table
  • pg_field_type »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert die ID des PostgreSQL-Datentyps (OID) eines Feldes

pg_field_type_oid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_field_type_oid — Liefert die ID des PostgreSQL-Datentyps (OID) eines Feldes

Beschreibung

pg_field_type_oid ( resource $result , int $field_number ) : int

pg_field_type_oid() gibt einen Integer zurück, der die OID des Datentyps für das Feld mit der Nummer field_number im PostgreSQL-Abfrageergebnis result enthält.

Mehr Informationen über Feldtypen erhalten Sie, wenn Sie den PostgreSQL-Systemkatalog pg_type mit der OID, die von dieser Funktion zurückgegeben wird, abfragen. Die PostgreSQL-Funktion format_type() konvertiert diesen OID in einen Standard-SQL-Typnamen.

Hinweis:

Wenn das Feld anstatt eines Basis-Datentyps einen Typ einer PostgreSQL-Domain besitzt, wird der Name des Datentyps zurückgegeben, auf dem die Domain definiert ist und nicht der Name der Domain.

Parameter-Liste

result

Die PostgreSQL-Verbindungskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

field_number

Die Feldnummer, beginnend bei 0.

Rückgabewerte

Den OID (Object Identifier) des Basistyps dieses Feldes oder false, falls ein Fehler auftritt.

Beispiele

Beispiel #1 Informationen über Felder holen

<?php
  $dbconn = pg_connect("dbname=publisher") or die
            ("Konnte keine Verbindung aufbauen");

  // Angenommen 'title' ist vom Typ varchar
  $res = pg_query($dbconn, "select title from authors where author = 'Orwell'");

  echo "Der OID des Feldes title ist: ", pg_field_type_oid($res, 0);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der OID des Feldes title ist: 1043

Siehe auch

  • pg_field_type() - Liefert den Datentyp eines Feldes
  • pg_field_prtlen() - Liefert die Länge des Feldes
  • pg_field_name() - Liefert den Namen eines Feldes


Liefert den Datentyp eines Feldes

  • « pg_field_type_oid
  • pg_flush »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert den Datentyp eines Feldes

pg_field_type

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_type — Liefert den Datentyp eines Feldes

Beschreibung

pg_field_type ( resource $result , int $field_number ) : string

pg_field_type() gibt den Basistyp des Feldes mit der Nummer field_number im PostgreSQL-Abfrageergebnis result zurück.

Hinweis:

Wenn das Feld anstatt eines Basis-Datentyps einen Typ einer PostgreSQL-Domain besitzt, wird der Name des Datentyps zurückgegeben, auf dem die Domain definiert ist und nicht der Name der Domain.

Hinweis:

Diese Funktion ersetzt die Funktion pg_fieldtype().

Parameter-Liste

result

Die PostgreSQL-Verbindungskennung, die (unter anderenm) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

field_number

Die Feldnummer, beginnend bei 0.

Rückgabewerte

Ein string, der den Datentyp des Feldes enthält, oder false;, falls ein Fehler auftrat.

Beispiele

Beispiel #1 Informationen über Felder holen

<?php
  $dbconn = pg_connect("dbname=publisher") or die
            ("Konnte keine Verbindung aufbauen");

  // Angenommen 'title' hat den Typ varchar
  $res = pg_query($dbconn, "select title from authors where author = 'Orwell'");

  echo "Der Datentyp von title ist: ", pg_field_type($res, 0);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der Datentyp von title ist: varchar

Siehe auch

  • pg_field_prtlen() - Liefert die Länge des Feldes
  • pg_field_name() - Liefert den Namen eines Feldes
  • pg_field_type_oid() - Liefert die ID des PostgreSQL-Datentyps (OID) eines Feldes


Flush outbound query data on the connection

  • « pg_field_type
  • pg_free_result »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Flush outbound query data on the connection

pg_flush

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

pg_flush — Flush outbound query data on the connection

Beschreibung

pg_flush ( resource $connection ) : mixed

pg_flush() flushes any outbound query data waiting to be sent on the connection.

Parameter-Liste

connection

PostgreSQL database connection resource.

Rückgabewerte

Returns true if the flush was successful or no data was waiting to be flushed, 0 if part of the pending data was flushed but more remainsIm Fehlerfall wird false zurückgegeben..


Gibt den durch Ergebnisse belegten Speicher frei

  • « pg_flush
  • pg_get_notify »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Gibt den durch Ergebnisse belegten Speicher frei

pg_free_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_free_result — Gibt den durch Ergebnisse belegten Speicher frei

Beschreibung

pg_free_result ( resource $result ) : bool

pg_free_result() gibt den Speicher und die Daten, die mit der angegebenen PostgreSQL-Query-Resultressource assoziiert sind, frei.

Die Funktion braucht nur aufgerufen zu werden, wenn man befürchten muss, dass während der Ausführung des Skripts zu viel Speicher verbraucht wird. Ansonsten wird der Speicherplatz, den Ergebnisse belegen, automatisch nach Beendigung des Skriptes freigegeben.

Hinweis:

Diese Funktion ersetzt die Funktion pg_freeresult().

Parameter-Liste

result

PostgreSQL-Verbindungskennung, die (unter anderem) von den Funktionen pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_free_result()-Beispiel

<?php
$db = pg_connect("dbname=users user=me") || die();

$res = pg_query($db, "SELECT 1 UNION ALL SELECT 2");

$val = pg_fetch_result($res, 1, 0);

echo "Das erste Feld in der zweiten Zeile enthält: ", $val, "\n";

pg_free_result($res);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Das erste Feld in der zweiten Zeile enthält: 2

Siehe auch

  • pg_query() - Führt eine Abfrage aus
  • pg_query_params() - Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden
  • pg_execute() - Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis


Liefert eine SQL-NOTIFY-Nachricht

  • « pg_free_result
  • pg_get_pid »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert eine SQL-NOTIFY-Nachricht

pg_get_notify

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_get_notify — Liefert eine SQL-NOTIFY-Nachricht

Beschreibung

pg_get_notify ( resource $connection , int $result_type = ? ) : array

pg_get_notify() gibt eine NOTIFY-Nachricht zurück, die vom SQL-Kommando NOTIFY gesendet wurde. Um diese Nachrichten zu erhalten, muss zuvor das SQL-Kommando LISTEN ausgeführt worden sein.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung.

result_type

Ein optionaler Parameter bestimmt, wie das zurückgegebene array indiziert werden soll. result_type ist eine Konstante, die einen der folgenden Werte annehmen kann: PGSQL_ASSOC, PGSQL_NUM oder PGSQL_BOTH. Wenn pg_get_notify() mit PGSQL_NUM aufgerufen wird, wird ein numerisches Array zurückgegeben, mit PGSQL_ASSOC wird ein assoziatives Array zurückgegeben, während der Standardwert PGSQL_BOTH ein Array mit beiden Indizes zurückgibt.

Rückgabewerte

Ein array, das die NOTIFY-Nachricht und die PID des Datenbankprozesses enthält. Von PHP 5.4.0 an, falls vom Server unterstützt, enthält das Array ebenfalls die Serverversion und die Nutzdaten. Existiert kein NOTIFY, wird false zurückgegeben.

Beispiele

Beispiel #1 PostgreSQL-NOTIFY-Nachricht

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Konnte keine Verbindung aufbauen.\n";
  exit;
}

// Listen-Kommando 'author_updated', um Benachrichtigungen
// von anderen Prozessen zu erhalten
pg_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!$notify) {
  echo "Keine Nachrichten\n";
} else {
  print_r($notify);
}
?>

Siehe auch

  • pg_get_pid() - Prüft die Datenbankverbindung


Prüft die Datenbankverbindung

  • « pg_get_notify
  • pg_get_result »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Prüft die Datenbankverbindung

pg_get_pid

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_get_pid — Prüft die Datenbankverbindung

Beschreibung

pg_get_pid ( resource $connection ) : int

pg_get_pid() gibt die Prozess-ID (PID) des Datenbankservers zurück. Diese ist nützlich, wenn man mit pg_get_notify() feststellen möchte, ob ein anderer Prozess eine NOTIFY-Benachrichtigung gesendet hat.

Parameter-Liste

connection

PostgreSQL Verbindungskennung.

Rückgabewerte

Die Prozess-ID des Datenbankservers.

Beispiele

Beispiel #1 PostgreSQL Prozess-ID

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Konnte keine Verbindung aufbauen.\n";
  exit;
}

// Holt die Prozess-ID (zur Weiterverwendung in pg_get_notify())
$pid = pg_get_pid($conn);
?>

Siehe auch

  • pg_get_notify() - Liefert eine SQL-NOTIFY-Nachricht


Liefert asynchrone Abfrageergebnisse

  • « pg_get_pid
  • pg_host »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert asynchrone Abfrageergebnisse

pg_get_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_get_result — Liefert asynchrone Abfrageergebnisse

Beschreibung

pg_get_result ( resource $connection = ? ) : resource

pg_get_result() gibt die Ergebniskennung einer
asynchronen Abfrage zurück, die mit pg_send_query(),
pg_send_query_params() oder
pg_send_execute() an den Datenbankserver gesendet wurde.

Mit pg_send_query() und auch den anderen asynchronen Abfragefunktionen können mehrere Abfragen an den Server geschickt werden. Deren Ergebnisse können mit pg_get_result() nacheinander abgefragt werden.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung.

Rückgabewerte

Die Ergebniskennung als resource oder false, falls es keine Ergebnisse gibt.

Beispiele

Beispiel #1 pg_get_result()-Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Verbindungsaufbau fehlgeschlagen");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Der erste Aufruf von pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 hat $rows1 Zeilen\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Der zweite Aufruf von pg_get_result(): $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 hat $rows2 Zeilen\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der erste Aufruf von pg_get_result(): Resource id #3
Resource id #3 hat 3 Zeilen

Der zweite Aufruf von pg_get_result(): Resource id #4
Resource id #4 hat 1 Zeilen

Siehe auch

  • pg_send_query() - Sendet eine asynchrone Abfrage


Liefert den Namen des Host, zu dem verbunden wurde

  • « pg_get_result
  • pg_insert »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert den Namen des Host, zu dem verbunden wurde

pg_host

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_host — Liefert den Namen des Host, zu dem verbunden wurde

Beschreibung

pg_host ( resource $connection = ? ) : string

pg_host() gibt den Namen des Hosts zurück, zu dem mit der angegebenen PostgreSQL-Verbindungskennung connection verbunden wurde.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

Rückgabewerte

Ein string, der den Namen des Hosts enthält, zu dem die connection besteht oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_host()-Beispiel

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Sie sind verbunden mit: " . pg_host($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Siehe auch

  • pg_connect() - Öffnet eine PostgreSQL-Verbindung
  • pg_pconnect() - Öffnet eine persistente PostgreSQL-Verbindung


Überträgt Werte aus einem Array in eine Tabelle

  • « pg_host
  • pg_last_error »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Überträgt Werte aus einem Array in eine Tabelle

pg_insert

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_insert — Überträgt Werte aus einem Array in eine Tabelle

Beschreibung

pg_insert ( resource $connection , string $table_name , array $assoc_array , int $options = PGSQL_DML_EXEC ) : mixed

pg_insert() fügt die Werte des assoc_array in die Tabelle table_name ein. Falls options angegeben wurde, wird pg_insert() auf assoc_array mit den angegebenen Optionnen angewendet.

Falls options angegeben wurde, wird pg_convert() mit den angegebenen Flags auf das Array assoc_array angewendet.

Standardmäßig übergibt pg_insert() Rohwerte. Die Werte müssen entweder maskiert werden oder es muss die Option PGSQL_DML_ESCAPE angegeben werden. PGSQL_DML_ESCAPE maskiert Parameter und Bezeichner und setzt sie in Anführungszeichen. Daher muss bei Tabellen- und Spaltennamen zwischen Groß- und Kleinschreibung unterschieden werden.

Es ist zu beachten, dass weder die Maskierung noch eine vorbereitete Abfrage LIKE-Abfragen, JSON, Array, Regex usw. schützen können. Diese Parameter sollten im Kontext behandelt werden, d.h. Werte maskieren und validieren.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung.

table_name

Der Name der Tabelle, in die die Zeilen eingefügt werden sollen. table_name muss mindestens soviele Spalten haben, wie das assoc_array Elemente.

assoc_array

Ein array, dessen Indizes die Feldnamen der Tabelle table_name sind und dessen Werte die Werte sind, die in die entprechenden Spalten eingefügt werden sollen.

options

Jede Kombination aus PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC und PGSQL_DML_STRING. Falls PGSQL_DML_STRING bei den options angegeben wurde, wird der Abfrage-String zurückgegeben. Werden PGSQL_DML_NO_CONV oder PGSQL_DML_ESCAPE angegeben, wird pg_convert() intern nicht aufgerufen.

Rückgabewerte

Gibt bei Erfolg die Verbindungskennung zurück. Im Fehlerfall wird false zurückgegeben. Falls die Konstante PGSQL_DML_STRING in den options übergeben wurde, wird ein string zurückgegeben.

Beispiele

Beispiel #1 pg_insert()-Beispiel

<?php
  $dbconn = pg_connect('dbname=foo');
  // Das ist einigermaßen sicher, da alle Werte maskiert werden.
  // Allerdings unterstützt PostgreSQL JSON/Array. Diese sind nicht
  // sicher, da sie Abfragen weder maskieren noch vorbereiten.
  $res = pg_insert($dbconn, 'post_log', $_POST, PG_DML_ESCAPE);
  if ($res) {
      echo "Der Inhalt von $_POST wurde protokolliert\n";
  } else {
      echo "Vermutlich wurden falsche Eingabedaten gesendet\n";
  }
?>

Changelog

Version | Beschreibung
5.6.0 | Außer wenn PGSQL_DML_STRING übergeben wird, liefert die Funktion nun im Erfolgsfall die Verbindungsressource anstelle von true zurück.
5.6.0 | Nicht länger experimentell. Die PGSQL_DML_ESCAPE Konstante wurde hinzugefügt, wie auch Unterstützung für true/false und null Datentypen.
5.5.3/5.4.19 | Direkte SQL-Injection in table_name und indirekte SQL-Injection in Bezeichner wurden behoben.

Siehe auch

  • pg_convert() - Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form


Liefert die letzte Fehlermeldung einer Verbindung

  • « pg_insert
  • pg_last_notice »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert die letzte Fehlermeldung einer Verbindung

pg_last_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_last_error — Liefert die letzte Fehlermeldung einer Verbindung

Beschreibung

pg_last_error ( resource $connection = ? ) : string

pg_last_error() gibt die letzte Fehlermeldung der durch connection gegebenen Verbindung als String zurück.

Fehlermeldungen können durch interne PostgreSQL- (libpq) Funktionsaufrufe überschrieben werden. Falls mehrere Fehler innerhalb einer internen PostgreSQL-Funktion auftreten, wird möglicherweise keine passende Fehlermeldung angezeigt.

Verwenden Sie pg_result_error(),
pg_result_error_field(),
pg_result_status() und
pg_connection_status() um genauere Fehlermeldungen zu
erhalten.

Hinweis:

Diese Funktion ersetzt die Funktion pg_errormessage().

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

Rückgabewerte

Ein string, der die letzte Fehlermeldung der aktuellen connection enthält, oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_last_error()-Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("konnte nicht verbinden");

  // Eine Abfrage, die fehlschlägt
  $res = pg_query($dbconn, "select * from doesnotexist");

  echo pg_last_error($dbconn);
?>

Siehe auch

  • pg_result_error() - Liefert die mit der Ergebniskennung verknüpfte Fehlermeldung
  • pg_result_error_field() - Liefert den Inhalt eines bestimmtes Feldes zu einer Fehlermeldung


Liefert die letzte NOTICE-Meldung des PostgreSQL-Servers

  • « pg_last_error
  • pg_last_oid »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert die letzte NOTICE-Meldung des PostgreSQL-Servers

pg_last_notice

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

pg_last_notice — Liefert die letzte NOTICE-Meldung des PostgreSQL-Servers

Beschreibung

pg_last_notice ( resource $connection , int $option = PGSQL_NOTICE_LAST ) : mixed

pg_last_notice() gibt die letzte NOTICE-Meldung des PostgreSQL-Servers für die angegebene connection zurück. Der PostgreSQL-Server sendet zu unterschiedlichen Anlässen NOTICE-Meldungen an den Client, beispielsweise, wenn in einer Tabelle eine Spalte vom Typ SERIAL erzeugt wurde.

Mit pg_last_notice() kann das Senden überflüssiger Abfragen vermieden werden, indem man prüft, ob eine NOTICE-Meldung sich auf die aktuelle Transaktion bezieht oder nicht.

Die Verfolgung von NOTICE-Benachrichtigungen kann auf optional gesetzt werden, indem die Direktive pgsql.ignore_notice in php.ini den Wert 1 erhält.

Die Protokollierung von Notice-Benachrichtigungen kann auf optional gesetzt werden, indem die Direktive pgsql.log_notice in php.ini den Wert 0 erhält. Nur wenn die Direktive pgsql.ignore_notice den Wert 0 hat, können Notice-Benachrichtigungen protokolliert werden.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung.

option

Entweder PGSQL_NOTICE_LAST (um die letzte Notice zu erhalten), PGSQL_NOTICE_ALL (um alle Notices zu erhalten) oder PGSQL_NOTICE_CLEAR (um die Notices zu löschen).

Rückgabewerte

Ein string, der die letzte NOTICE-Meldung für die übergebene connection enthält bei PGSQL_NOTICE_LAST, ein array bei PGSQL_NOTICE_ALL, ein bool bei PGSQL_NOTICE_CLEAR oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_last_notice()-Beispiel

<?php
  $pgsql_conn = pg_connect("dbname=mark host=localhost");

  $res = pg_query("CREATE TABLE test (id SERIAL)");

  $notice = pg_last_notice($pgsql_conn);

  echo $notice;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CREATE TABLE will create implicit sequence "test_id_seq" for "serial" column "test.id"

Changelog

Version | Beschreibung
7.1.0 | Der option-Parameter wurde hinzugefügt.

Siehe auch

  • pg_query() - Führt eine Abfrage aus
  • pg_last_error() - Liefert die letzte Fehlermeldung einer Verbindung


Liefert den Objektbezeichner (OID) des zuletzt eingefügten Datensatzes

  • « pg_last_notice
  • pg_lo_close »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert den Objektbezeichner (OID) des zuletzt eingefügten Datensatzes

pg_last_oid

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_last_oid — Liefert den Objektbezeichner (OID) des zuletzt eingefügten Datensatzes

Beschreibung

pg_last_oid ( resource $result ) : string

pg_last_oid() wird benutzt, um den Object-Identifier OID des zuletzt eingefügten Datensatzes zu ermitteln.

Ab PostgreSQL 7.2 ist das Feld OID optional und ab der Version 8.1 wird es nicht mehr standardmäßig in den Tabellen enthalten sein. Falls eine Tabelle ohne OID definiert wurde, muss mit der Funktion pg_result_status() geprüft werden, ob ein Datensatz korrekt eingefügt wurde.

Um den Wert eines SERIAL-Feldes in einem gerade eingefügten Datensatz zu erhalten, ist der Aufruf der PostgreSQL-Funktion CURRVAL notwendig. Dem Aufruf muss der Name der in dieser Datenbanksitzung zuletzt benutzten Sequenz übergeben werden. Ist der Name dieser Sequenz unbekannt, muss er ab PostgreSQL 8.0 mittels der Funktion pg_get_serial_sequence ermittelt werden.

PostgreSQL enthält eine Funktion LASTVAL, die den Wert der zuletzt benutzten Sequenz der aktuellen Datenbanksitzung zurückgibt. Sie macht die Angabe von Sequenz, Tabelle und Spalte überflüssig.

Hinweis:

Diese Funktion ersetzt die Funktion pg_getlastoid().

Parameter-Liste

result

Das PostgreSQL-Abfrageergebnis, das (unter anderem) von pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.

Rückgabewerte

Ein string mit der OID des zuletzt eingefügten Datensatzes für die angegebene connection oder false, falls ein Fehler auftrat oder falls es keine OID gibt.

Beispiele

Beispiel #1 pg_last_oid()-Beispiel

<?php
  // Mit der Datenbank verbinden
  pg_connect("dbname=mark host=localhost");

  // Beispieltabelle erzeugen
  pg_query("CREATE TABLE test (a INTEGER) WITH OIDS");

  // Daten einfügen
  $res = pg_query("INSERT INTO test VALUES (1)");

  $oid = pg_last_oid($res);
?>

Siehe auch

  • pg_query() - Führt eine Abfrage aus
  • pg_result_status() - Gibt den Status eines Abfrageergebnisses zurück


Schließt ein Large Object

  • « pg_last_oid
  • pg_lo_create »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Schließt ein Large Object

pg_lo_close

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_close — Schließt ein Large Object

Beschreibung

pg_lo_close ( resource $large_object ) : bool

pg_lo_close() schließt ein Large Object. large_object ist eine Ressource für ein Large Object, das mit pg_lo_open() geöffnet wurde.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Hinweis:

Diese Funktion ersetzt die Funktion pg_loclose().

Parameter-Liste

result

PostgreSQL Large Object (LOB) Ressource, die von pg_lo_open() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_lo_close() Beispiel

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "Daten fuer das Large Object");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>

Siehe auch

  • pg_lo_open() - Öffnet ein Large Object
  • pg_lo_create() - Erzeugt ein Large Object
  • pg_lo_import() - Importiert ein Large Object aus einer Datei


Erzeugt ein Large Object

  • « pg_lo_close
  • pg_lo_export »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Erzeugt ein Large Object

pg_lo_create

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_create — Erzeugt ein Large Object

Beschreibung

pg_lo_create ( resource $connection = ? , mixed $object_id = ? ) : int
pg_lo_create ( mixed $object_id ) : int

pg_lo_create() erzeugt ein Large Object und gibt dessen OID zurück. Die INV_READ-, INV_WRITE- und INV_ARCHIVE-Zugriffsmodi von PostgreSQL werden nicht unterstützt. Ein Large Object wird immer mit Lese- und Schreibzugriff erzeugt. INV_ARCHIVE wurde aus PostgreSQL (ab Version 6.3 und höher) entfernt.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Anstelle der Large-Object-Schnittstelle (für die es keine Zugriffssteuerung gibt und deren Benutzung etwas schwerfällig ist) können Sie den PostgreSQL-Datentyp bytea und die Funktion pg_escape_bytea() benutzen.

Hinweis:

Diese Funktion ersetzt die Funktion pg_locreate().

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die Standardverbindung benutzt. Das ist die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung.

object_id

Wenn es einen Parameter object_id gibt, wird diese Funktion versuchen, ein Large Object mit dieser ID zu erzeugen. Anderenfalls wird dem Large Object vom Server eine freie ID zugewiesen. Dieser Parameter steht seit PHP 5.3 zur Verfügung und basiert auf Funktionalitäten, die seit PostgreSQL 8.1 implementiert sind.

Rückgabewerte

Ein Large Object OID oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_lo_create()-Beispiel

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "Daten fuer das Large Object");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>


Exportiert ein Large Object in eine Datei

  • « pg_lo_create
  • pg_lo_import »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Exportiert ein Large Object in eine Datei

pg_lo_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_export — Exportiert ein Large Object in eine Datei

Beschreibung

pg_lo_export ( resource $connection = ? , int $oid , string $pathname ) : bool

pg_lo_export() liest die Inhalte eines Large Objects aus einer PostgreSQL Datenbank aus und speichert sie in einer Datei im lokalen Dateisystem.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Hinweis:

Diese Funktion ersetzt die Funktion pg_loexport().

Parameter-Liste

connection

PostgreSQL Verbindungskennung, die (unter anderem) von den Funktionen pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.

oid

Der OID des Large Objects in der Datenbank.

pathname

Der vollständige Pfad und Dateiname der Datei, in der die Inhalte des Large Objects im lokalen Dateisystem gespeichert werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_lo_export() Beispiel

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   $handle = pg_lo_open($database, $oid, "w");
   pg_lo_write($handle, "Die Daten des Large Objects");
   pg_lo_close($handle);
   pg_lo_export($database, $oid, '/tmp/lob.dat');
   pg_query($database, "commit");
?>

Siehe auch

  • pg_lo_import() - Importiert ein Large Object aus einer Datei


Importiert ein Large Object aus einer Datei

  • « pg_lo_export
  • pg_lo_open »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Importiert ein Large Object aus einer Datei

pg_lo_import

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_import — Importiert ein Large Object aus einer Datei

Beschreibung

pg_lo_import ( resource $connection = ? , string $pathname , mixed $object_id = ? ) : int

pg_lo_import() erzeugt aus einer Datei im Dateisystem als Datenquelle ein neues Large Object in der Datenbank.

Um die Large Object- (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Hinweis:

Diese Funktion ersetzt die Funktion pg_loimport().

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Wenn connection nicht angegeben ist, wird die zuletzt von pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

pathname

Der vollständige Pfad- und Dateiname der Datei im lokalen Dateisystem des Clients, aus der die Daten des Large Objects gelesen werden.

object_id

Wenn es einen Parameter object_id gibt, wird diese Funktion versuchen, ein Large Object mit dieser ID zu erzeugen. Anderenfalls wird dem Large Object vom Server eine freie ID zugewiesen. Dieser Parameter steht seit PHP 5.3 zur Verfügung und basiert auf Funktionalitäten, die seit PostgreSQL 8.1 implementiert sind.

Rückgabewerte

Die OID des neu erzeugten Large Objects oder false, wenn ein Fehler auftrat.

Beispiele

Beispiel #1 pg_lo_import()-Beispiel

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_import($database, '/tmp/lob.dat');
   pg_query($database, "commit");
?>

Siehe auch

  • pg_lo_export() - Exportiert ein Large Object in eine Datei
  • pg_lo_open() - Öffnet ein Large Object


Öffnet ein Large Object

  • « pg_lo_import
  • pg_lo_read_all »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Öffnet ein Large Object

pg_lo_open

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_open — Öffnet ein Large Object

Beschreibung

pg_lo_open ( resource $connection , int $oid , string $mode ) : resource

pg_lo_open() öffnet ein Large Object in einer Datenbank und gibt einen Handler (eine Ressource) zurück, über den das Large Object modifiziert werden kann.

Warnung

Bevor die Datenbankverbindung geschlossen wird, muss das Large Object wieder geschlossen werden.

Um die Large Object- (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Hinweis:

Diese Funktion ersetzt die Funktion pg_loopen().

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

oid

Die OID des Large Objects in der Datenbank.

mode

Dies kann entweder "r" für nur lesen, "w" für nur schreiben oder "rw" für lesen und schreiben sein.

Rückgabewerte

Eine Large Object Ressource oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_lo_open()-Beispiel

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "Daten des Large Objects");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>

Siehe auch

  • pg_lo_close() - Schließt ein Large Object
  • pg_lo_create() - Erzeugt ein Large Object


Liest ein ganzes Large Object und reicht es direkt an den Browser weiter

  • « pg_lo_open
  • pg_lo_read »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liest ein ganzes Large Object und reicht es direkt an den Browser weiter

pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_read_all — Liest ein ganzes Large Object und reicht es direkt an den Browser weiter

Beschreibung

pg_lo_read_all ( resource $large_object ) : int

pg_lo_read_all() liest ein ganzes Large Object und übergibt es direkt an den Browser, nachdem alle entsprechenden Header gesendet wurden. Die Funktion wird hauptsächlich für Binärdaten wie Bilder oder Audiodaten genutzt.

Um die Large Object-Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Hinweis:

Diese Funktion ersetzt die Funktion pg_loreadall().

Parameter-Liste

large_object

Die PostgreSQL-Large-Object-Ressource (LOB), die von der Funktion pg_lo_open() zurückgegeben wurde.

Rückgabewerte

Die Anzahl der gelesenen Bytes oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_lo_read_all()-Beispiel

<?php
   header('Content-type: image/jpeg');
   $image_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $image_oid, "r");
   pg_lo_read_all($handle);
   pg_query($database, "commit");
?>

Siehe auch

  • pg_lo_read() - Liest ein Large Object


Liest ein Large Object

  • « pg_lo_read_all
  • pg_lo_seek »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liest ein Large Object

pg_lo_read

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_read — Liest ein Large Object

Beschreibung

pg_lo_read ( resource $large_object , int $len = 8192 ) : string

pg_lo_read() liest höchstens len Bytes eines Large Objects und gibt die gelesenen Daten als String zurück.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Hinweis:

Diese Funktion ersetzt die Funktion pg_loread().

Parameter-Liste

large_object

Die PostgreSQL-Large-Object-Ressource (LOB), die von der Funktion pg_lo_open() zurückgegeben wurde.

len

Die (optionale) maximale Anzahl der zu lesenden Bytes.

Rückgabewerte

Ein string, der len Bytes aus dem Large Object enthält, oder false, falls ein Fehler auftritt.

Beispiele

Beispiel #1 pg_lo_read()-Beispiel

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   $data = pg_lo_read($handle, 50000);
   pg_query($database, "commit");
   echo $data;
?>

Siehe auch

  • pg_lo_read_all() - Liest ein ganzes Large Object und reicht es direkt an den Browser weiter


Setzt die Lese- oder Schreibposition in einem Large Object

  • « pg_lo_read
  • pg_lo_tell »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Setzt die Lese- oder Schreibposition in einem Large Object

pg_lo_seek

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_seek — Setzt die Lese- oder Schreibposition in einem Large Object

Beschreibung

pg_lo_seek ( resource $large_object , int $offset , int $whence = PGSQL_SEEK_CUR ) : bool

pg_lo_seek() setzt den internen Zeiger einer Large Object Ressource auf die angegebenen Position.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Parameter-Liste

large_object

PostgreSQL Large Object Ressource (LOB), die von der Funktion pg_lo_open() zurückgegeben wurde.

offset

Die Anzahl der Bytes, hinter die der interne Zeiger gesetzt wird.

whence

Eine der Konstanten PGSQL_SEEK_SET (bewegt den internen Zeiger vom Anfang ausgehend), PGSQL_SEEK_CUR (bewegt den internen Zeiger ab der aktuellen Position) oder PGSQL_SEEK_END (bewegt den internen Zeiger vom Ende ausgehend).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_lo_seek() Beispiel

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Die ersten 50000 Bytes ueberspringen
   pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
   // Die naechsten 10000 Bytes lesen
   $data = pg_lo_read($handle, 10000);
   pg_query($database, "commit");
   echo $data;
?>

Changelog

Version | Beschreibung
5.6.0 | Unterstützung für 64bit große Objekte von PostgreSQL 9.3 wurde hinzugefügt. Sowohl Client als auch Server müssen PostgreSQL 9.3 unterstützen, und PHP muss ein 64bit Build sein, um 64bit große Objekte verwenden zu können.

Siehe auch

  • pg_lo_tell() - Gibt die aktuelle Lese- oder Schreibposition in einem Large Object zurück


Gibt die aktuelle Lese- oder Schreibposition in einem Large Object zurück

  • « pg_lo_seek
  • pg_lo_truncate »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Gibt die aktuelle Lese- oder Schreibposition in einem Large Object zurück

pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_tell — Gibt die aktuelle Lese- oder Schreibposition in einem Large Object zurück

Beschreibung

pg_lo_tell ( resource $large_object ) : int

pg_lo_tell() gibt die aktuelle Position (Offset vom Anfang des Large Objects aus) des internen Zeigers zurück.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Parameter-Liste

large_object

PostgreSQL Large Object Ressource (LOB), die von der Funktion pg_lo_open() zurückgegeben wurde.

Rückgabewerte

Die aktuelle Lese- oder Schreibposition in einem (in Bytes) vom Anfang des Large Objects aus. Falls ein Fehler auftritt, ist der Rückgabewert negativ.

Beispiele

Beispiel #1 pg_lo_tell() Beispiel

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Überspringe die ersten 50000 Bytes
   pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
   // Test, wieviele Bytes übersprungen wurden
   $offset = pg_lo_tell($handle);
   echo "Die aktuelle Position ist: $offset";
   pg_query($database, "commit");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Die aktuelle Position ist: 50000

Changelog

Version | Beschreibung
5.6.0 | Unterstützung für 64bit große Objekte von PostgreSQL 9.3 wurde hinzugefügt. Sowohl Client als auch Server müssen PostgreSQL 9.3 unterstützen, und PHP muss ein 64bit Build sein, um 64bit große Objekte verwenden zu können.

Siehe auch

  • pg_lo_seek() - Setzt die Lese- oder Schreibposition in einem Large Object


Truncates a large object

  • « pg_lo_tell
  • pg_lo_unlink »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Truncates a large object

pg_lo_truncate

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

pg_lo_truncate — Truncates a large object

Beschreibung

pg_lo_truncate ( resource $large_object , int $size ) : bool

pg_lo_truncate() truncates a large object resource.

To use the large object interface, it is necessary to enclose it within a transaction block.

Parameter-Liste

large_object

PostgreSQL large object (LOB) resource, returned by pg_lo_open().

size

The number of bytes to truncate.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_lo_truncate() example

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Truncate to 0
   pg_lo_truncate($handle, 0);
   pg_query($database, "commit");
   echo $data;
?>

Changelog

Version | Beschreibung
5.6.0 | Added truncate function. It supports PostgreSQL 9.3's 64bit large object. Both client and server must support PostgreSQL 9.3 and PHP must be 64bit build to use 64bit large object.

Siehe auch

  • pg_lo_tell() - Gibt die aktuelle Lese- oder Schreibposition in einem Large Object zurück


Löscht ein Large Object

  • « pg_lo_truncate
  • pg_lo_write »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Löscht ein Large Object

pg_lo_unlink

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_unlink — Löscht ein Large Object

Beschreibung

pg_lo_unlink ( resource $connection , int $oid ) : bool

pg_lo_unlink() löscht das Large Object mit dem Objektbezeichner oid. Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Um die Large Object (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Hinweis:

Diese Funktion ersetzt die Funktion pg_lounlink()().

Parameter-Liste

connection

PostgreSQL Verbindungkennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

oid

Der OID des Large Objects in der Datenbank.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_lo_unlink() Beispiel

<?php
   // OID des Large Objects, das gelöscht werden soll
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   pg_lo_unlink($database, $doc_oid);
   pg_query($database, "commit");
?>

Siehe auch

  • pg_lo_create() - Erzeugt ein Large Object
  • pg_lo_import() - Importiert ein Large Object aus einer Datei


Schreibt in ein Large Object

  • « pg_lo_unlink
  • pg_meta_data »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Schreibt in ein Large Object

pg_lo_write

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_write — Schreibt in ein Large Object

Beschreibung

pg_lo_write ( resource $large_object , string $data , int $len = ? ) : int

pg_lo_write() schreibt Daten ab der aktuellen Position der internen Schreib-Lese-Marke in ein Large Object.

Um die Large Object- (lo) Schnittstelle benutzen zu können, müssen die Kommandos innerhalb einer Transaktion ausgeführt werden.

Hinweis:

Diese Funktion ersetzt die Funktion pg_lowrite().

Parameter-Liste

large_object

Die PostgreSQL-Large-Object-Ressource (LOB), die von der Funktion pg_lo_open() zurückgegeben wurde.

data

Die Daten, die in das Large Object geschrieben werden. Falls len angegeben wurde und kleiner als die Länge von data ist, werden nur len Bytes geschrieben.

len

Die maximale Anzahl der Bytes, die geschrieben werden. Die Anzahl muss größer als 0 und kleiner als die Länge von data sein. Der Vorgabewert ist die Länge von data. Diese Angabe ist optional.

Rückgabewerte

Die Anzahl der Bytes, die in das Large Object geschrieben wurden, oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_lo_write()-Beispiel

<?php
   $doc_oid = 189762345;
   $data = "Hiermit wird der Anfang des Large Objects überschrieben.";
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "w");
   $data = pg_lo_write($handle, $data);
   pg_query($database, "commit");
?>

Siehe auch

  • pg_lo_create() - Erzeugt ein Large Object
  • pg_lo_open() - Öffnet ein Large Object


Liefert die Metadaten einer Tabelle als Array

  • « pg_lo_write
  • pg_num_fields »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert die Metadaten einer Tabelle als Array

pg_meta_data

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_meta_data — Liefert die Metadaten einer Tabelle als Array

Beschreibung

pg_meta_data ( resource $connection , string $table_name , bool $extended = false ) : array

pg_meta_data() gibt die Tabellendefinition für table_name in einem Array zurück.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung.

table_name

Der Tabellenname.

extended

Das Flag, um erweiterte Metadaten zurückzugeben. Vorgabewert ist false.

Rückgabewerte

Ein array, das die Tabellendefinition enthält, oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 Metadaten für eine Tabelle ermitteln

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Verbindungsaufbau fehlgeschlagen");

  $meta = pg_meta_data($dbconn, 'authors');
  if (is_array($meta)) {
      echo '<pre>';
      var_dump($meta);
      echo '</pre>';
  }
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
["author"]=>
array(5) {
  ["num"]=>
  int(1)
  ["type"]=>
  string(7) "varchar"
  ["len"]=>
  int(-1)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
["year"]=>
array(5) {
  ["num"]=>
  int(2)
  ["type"]=>
  string(4) "int2"
  ["len"]=>
  int(2)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
["title"]=>
array(5) {
  ["num"]=>
  int(3)
  ["type"]=>
  string(7) "varchar"
  ["len"]=>
  int(-1)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
}

Changelog

Version | Beschreibung
5.6.0 | Nicht länger experimentell. "is enum" wurde als Standardattribut hinzugefügt. extended Flag wurde hinzugefügt.

Siehe auch

  • pg_convert() - Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form


Gibt die Anzahl der Felder in einem Abfrageergebnis zurück

  • « pg_meta_data
  • pg_num_rows »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Gibt die Anzahl der Felder in einem Abfrageergebnis zurück

pg_num_fields

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_num_fields — Gibt die Anzahl der Felder in einem Abfrageergebnis zurück

Beschreibung

pg_num_fields ( resource $result ) : int

pg_num_fields() gibt die Anzahl der Felder (Spalten) in einem PostgreSQL Abfrageergebnis zurück.

Hinweis:

Diese Funktion ersetzt die Funktion pg_numfields().

Parameter-Liste

result

PostgreSQL Ergebniskennung für eine Abfrage, die (unter anderem) von pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.

Rückgabewerte

Die Anzahl der Felder (Spalten) in einem Abfrageergebnis. Tritt ein Fehler auf, wird -1 zurückgegeben.

Beispiele

Beispiel #1 pg_num_fields() Beispiel

<?php
$result = pg_query($conn, "SELECT 1, 2");

$num = pg_num_fields($result);

echo $num . " Feld(er) gefunden.\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2 Feld(er) gefunden.

Siehe auch

  • pg_num_rows() - Gibt die Anzahl der Zeilen in einem Abfrageergebnis zurück
  • pg_affected_rows() - Gibt die Anzahl betroffener Datensätze (Tupel) zurück


Gibt die Anzahl der Zeilen in einem Abfrageergebnis zurück

  • « pg_num_fields
  • pg_options »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Gibt die Anzahl der Zeilen in einem Abfrageergebnis zurück

pg_num_rows

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_num_rows — Gibt die Anzahl der Zeilen in einem Abfrageergebnis zurück

Beschreibung

pg_num_rows ( resource $result ) : int

pg_num_rows() gibt die Anzahl der Zeilen in einem PostgreSQL Abfrageergebnis zurück.

Hinweis:

Diese Funktion ersetzt die Funktion pg_numrows().

Parameter-Liste

result

PostgreSQL Ergebniskennung für eine Abfrage, die (unter anderem) von pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.

Rückgabewerte

Die Anzahl der Zeilen in einem Abfrageergebnis. Tritt ein Fehler auf, wird -1 zurückgegeben.

Beispiele

Beispiel #1 pg_num_rows() Beispiel

<?php
$result = pg_query($conn, "SELECT 1");

$rows = pg_num_rows($result);

echo $rows . " Zeile(n) gefunden.\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1 Zeile(n) gefunden.

Siehe auch

  • pg_num_fields() - Gibt die Anzahl der Felder in einem Abfrageergebnis zurück
  • pg_affected_rows() - Gibt die Anzahl betroffener Datensätze (Tupel) zurück


Liefert die Verbindungsoptionen der aktuellen Verbindung

  • « pg_num_rows
  • pg_parameter_status »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert die Verbindungsoptionen der aktuellen Verbindung

pg_options

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_options — Liefert die Verbindungsoptionen der aktuellen Verbindung

Beschreibung

pg_options ( resource $connection = ? ) : string

pg_options() gibt einen string zurück, der die Verbindungsoptionen der angegebenen PostgreSQL-Verbindungskennung connection enthält.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

Rückgabewerte

Ein string, der die Verbindungsoptionen von connection enthält, oder false, falls ein Fehler auftritt.

Beispiele

Beispiel #1 pg_options()-Beispiel

<?php
   $pgsql_conn = pg_connect("dbname=mark host=localhost");
   echo pg_options($pgsql_conn);
?>

Siehe auch

  • pg_connect() - Öffnet eine PostgreSQL-Verbindung


Liefert den aktuellen Wert eines Parameters des Servers

  • « pg_options
  • pg_pconnect »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert den aktuellen Wert eines Parameters des Servers

pg_parameter_status

(PHP 5, PHP 7, PHP 8)

pg_parameter_status — Liefert den aktuellen Wert eines Parameters des Servers

Beschreibung

pg_parameter_status ( resource $connection = ? , string $param_name ) : string

Ermittelt die aktuelle Einstellung eines Parameters des Servers.

Bestimmte Servereinstellungen (Parameter) werden beim Verbindungsaufbau oder, wenn sich ihr Wert ändert, automatich vom Server gemeldet. Mit pg_parameter_status() können Sie diese Einstellungen abfragen. Zurückgegeben wird der aktuelle Wert des Parameters, falls dieser bekannt ist, anderenfalls false.

In PostgreSQL 8.0 werden die Werte für folgende Parameter zurückgegeben: server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone und integer_datetimes. (server_encoding, TimeZone und integer_datetimes werden von PostgreSQL vor 8.0 nicht zurückgegeben.) Beachten Sie, dass server_version, server_encoding und integer_datetimes nach dem Start von PostgreSQL nicht mehr verändert werden können.

PostgreSQL 7.3 oder darunter geben gar keine Servereinstellungen zurück. pg_parameter_status() kann trotzdem benutzt werden, um die Werte von server_version und client_encoding zu ermitteln. Es wird empfohlen, in Anwendungen pg_parameter_status() zu verwenden, anstatt speziellen Code zu schreiben, um diese Werte zu erhalten.

Achtung

In PostgreSQL-Versionen vor 7.4 wird ein nachträgliches (nach dem Start des Servers) Ändern von client_encoding mit dem Kommando SET von pg_parameter_status() ignoriert.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

param_name

Mögliche Werte für param_name sind: server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone und integer_datetimes. Es ist zu beachten, dass bei diesem Wert zwischen Groß- und Kleinschreibung unterschieden wird.

Rückgabewerte

Ein string, der den Wert des Parameters enthält, oder false, falls ein Fehler auftrat oder der Parameter param_name ungültig ist.

Beispiele

Beispiel #1 pg_parameter_status()-Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Verbindungsaufbau fehlgeschlagen");

  echo "Server encoding: ", pg_parameter_status($dbconn, "server_encoding");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Server encoding: SQL_ASCII


Öffnet eine persistente PostgreSQL-Verbindung

  • « pg_parameter_status
  • pg_ping »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Öffnet eine persistente PostgreSQL-Verbindung

pg_pconnect

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_pconnect — Öffnet eine persistente PostgreSQL-Verbindung

Beschreibung

pg_pconnect ( string $connection_string , int $connect_type = ? ) : resource

pg_pconnect() öffnet eine persistente Verbindung zu einer PostgreSQL-Datenbank. Zurückgegeben wird eine Verbindungskennung, die von anderen PostgreSQL-Funktionen benötigt wird.

Falls pg_pconnect() ein zweites Mal mit demselben connection_string einer bereits existierenden Verbindung aufgerufen wird, wird die Verbindungskennung dieser existierenden Verbindung zurückgegeben, es sei denn, die Konstante PGSQL_CONNECT_FORCE_NEW wird als connect_type übergeben.

Um persistente Verbindungen zu ermöglichen, muss die pgsql.allow_persistent-Direktive in php.ini auf den Wert "On" gesetzt sein (was der Standardeinstellung entspricht). Die maximale Anzahl geöffneter persistenter Verbindungen kann mit der Direktive pgsql.max_persistent in php.ini definiert werden (der Standardwert ist -1, der für unbegrenzt steht). Die Gesamtanzahl der Verbindungen kann mit der pgsql.max_links-Direktive in php.ini gesetzt werden.

pg_close() schließt keine persistenten Verbindungen, die mit pg_pconnect() erzeugt wurden.

Parameter-Liste

connection_string

Der connection_string kann leer sein, um die Standardwerte für die Parameter zu benutzen. Er kann auch einen oder mehrere durch Whitespace-Zeichen getrennte Parameter enthalten. Jeder Parameter wird in der Form keyword = Wert angegeben, Leerzeichen vor und nach dem Gleichheitszeichen sind optional. Um einen leeren Wert oder einen Wert, der Leerzeichen enthält, anzugeben, müssen Sie den Wert in einfache Anführungszeichen einschließen, zum Beispiel keyword = 'ein Wert'. Einfache Anführungszeichen und Backslashes innerhalb des Wertes müssen mit einem Backslash maskiert werden, beispielsweise \' und \\.

Gegenwärtig werden die folgenden Schlüsselwörter als Parameter erkannt: host, hostaddr, port, dbname, user, password, connect_timeout, options, tty (wird ignoriert), sslmode, requiressl (veraltet zugunsten von sslmode) und service. Welche dieser Parameter zur Verfügung stehen, hängt von Ihrer PostgreSQL-Version ab.

connect_type

Falls PGSQL_CONNECT_FORCE_NEW übergeben wurde, wird eine neue Verbindung aufgebaut, auch wenn der connection_string identisch zu dem einer existierenden Verbindung ist.

Rückgabewerte

Bei Erfolg wird eine PostgreSQL-Verbindungskennung zurückgegeben oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_pconnect() benutzen:

<?php
$dbconn = pg_pconnect("dbname=mary");
//Verbindungsaufbau zu einer Datenbank namens "mary"

$dbconn2 = pg_pconnect("host=localhost port=5432 dbname=mary");
// Verbindungsaufbau zu einer Datenbank namens "mary" auf "localhost" und port "5432"

$dbconn3 = pg_pconnect("host=sheep port=5432 dbname=mary user=lamb password=foo");
// Verbindungsaufbau zu einer Datenbank namens "mary" auf dem Host
// "sheep" mit Benutzername und Passwort

$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_pconnect($conn_string);
// Verbindungsaufbau zu einer Datenbank namens "test" auf dem Host
// "sheep" mit Benutzername und Passwort
?>

Siehe auch

  • pg_connect() - Öffnet eine PostgreSQL-Verbindung
  • Persistente Datenbankverbindungen


Prüft die Datenbankverbindung

  • « pg_pconnect
  • pg_port »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Prüft die Datenbankverbindung

pg_ping

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_ping — Prüft die Datenbankverbindung

Beschreibung

pg_ping ( resource $connection = ? ) : bool

pg_ping() prüft eine Datenbankverbindung und versucht einen erneuten Verbindungsaufbau, falls die Verbindung abbricht.

Parameter-Liste

connection

PostgreSQL Verbindungkennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_ping() Beispiel

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Ein Fehler ist aufgetreten.\n";
  exit;
}

if (!pg_ping($conn))
  die("Die Verbindung ist unterbrochen\n");
?>

Siehe auch

  • pg_connection_status() - Gibt den Verbindungsstatus zurück
  • pg_connection_reset() - Setzt die Verbindung zurück und verbindet neu


Liefert die Portnummer, über die die Verbindung aufgebaut wurde

  • « pg_ping
  • pg_prepare »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert die Portnummer, über die die Verbindung aufgebaut wurde

pg_port

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_port — Liefert die Portnummer, über die die Verbindung aufgebaut wurde

Beschreibung

pg_port ( resource $connection = ? ) : int

pg_port() gibt die Nummer des Ports zurück, über die die angegebene connection zum PostgreSQL-Datenbankserver aufgebaut wurde.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

Rückgabewerte

Ein ganzzahliger Wert vom Typ int, der die Portnummer angibt, über die die connection zum PostgreSQL-Datenbankserver aufgebaut wurde oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_port()-Beispiel

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Verbindungsaufbau über Port " . pg_port($pgsql_conn) . " erfolgreich<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>


Sendet eine Aufforderung an den Server, eine vorbereitete Anfrage mit den übergebenen Parametern zu erzeugen und wartet auf ihre Beendigung

  • « pg_port
  • pg_put_line »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Sendet eine Aufforderung an den Server, eine vorbereitete Anfrage mit den übergebenen Parametern zu erzeugen und wartet auf ihre Beendigung

pg_prepare

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_prepare — Sendet eine Aufforderung an den Server, eine vorbereitete Anfrage mit den übergebenen Parametern zu erzeugen und wartet auf ihre Beendigung

Beschreibung

pg_prepare ( resource $connection = ? , string $stmtname , string $query ) : resource|false

pg_prepare() erzeugt eine vorbereitete Abfrage, die später mit pg_execute() oder pg_send_execute() ausgeführt werden kann. Dank dieser Eigenschaft brauchen wiederholt ausgeführte Abfragen nur ein einziges Mal geparst und geplant werden, anstatt bei jeder Ausführung. pg_prepare() wird nur für Verbindungen zu PostgreSQL ab der Version 7.4 unterstützt und schlägt bei allen niedrigeren Versionen fehl.

Diese Funktion erzeugt aus der Abfrage query eine vorbereitete Abfrage mit dem Namen stmtname. query darf nur ein einzelnes SQL-Kommando enthalten. stmtname kann "" sein, um eine unbenannte Abfrage zu erzeugen, wobei zuvor definierte unbenannte Abfragen automatisch überschrieben werden. Falls der Name der vorbereiteten Abfrage in der aktuellen Datenbanksitzung schon vergeben ist, wird ein Fehler zurückgegeben. Falls irgendwelche Parameter übergeben wurden, werden diese in query als $1, $2 usw. referenziert.

Vorbereitete Abfragen, die mit pg_prepare() erzeugt wurden, können ebenso mit dem SQL-Kommando PREPARE erzeugt werden (allerdings ist pg_prepare() flexibler, weil Parametertypen nicht vorab deklariert werden müssen). Obwohl es keine PHP-Funktion zum Löschen vorbereiteter Anfragen gibt, können diese mit dem SQL-Kommando DEALLOCATE gelöscht werden.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

stmtname

Der Name, unter dem die vorbereitete Abfrage gespeichert wird. Dieser muss für jede Verbindung eindeutig sein. Falls "" angegeben wurde, wird eine unbenannte Abfrage erzeugt, die alle zuvor definierten unbenannten Abfragen überschreibt.

query

Die parametrisierte vorbereitete Abfrage. Diese darf nur ein einziges SQL-Kommando enthalten (mehrere Kommandos, durch Semikolon getrennt, sind nicht zulässig). Falls Parameter übergeben werden, werden sie als $1, $2, ... referenziert.

Rückgabewerte

Bei Erfolg wird eine Ergebniskennung zurückgegeben. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_prepare()-Beispiel

<?php
// Verbindung zu einer Datenbank namens "mary" aufbauen
$dbconn = pg_connect("dbname=mary");

// Abfrage vorbereiten
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// die vorbereitete Abfrage ausführen. Beachten Sie, dass es
// nicht nötig ist, den String "Joe's Widgets" zu maskieren.
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Dieselbe Abfrage mit einem anderen Parameter nochmal ausführen
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

Siehe auch

  • pg_execute() - Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis
  • pg_send_execute() - Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern auszuführen, ohne auf die Ergebnisse zu warten


Sendet eine NULL-terminierte Zeichenkette zum PostgreSQL-Server

  • « pg_prepare
  • pg_query_params »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Sendet eine NULL-terminierte Zeichenkette zum PostgreSQL-Server

pg_put_line

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pg_put_line — Sendet eine NULL-terminierte Zeichenkette zum PostgreSQL-Server

Beschreibung

pg_put_line ( resource $connection = ? , string $data ) : bool

pg_put_line() sendet eine NULL-terminierte Zeichenkette an den PostgreSQL-Server. Das ist in Verbindung mit dem PostgreSQL-Befehl COPY FROM notwendig.

COPY ist eine PostgreSQL-Anweisung, mit der Daten mit hoher Geschwindigkeit in eine Tabelle eingefügt werden können. Die Daten werden ungeparst und in einer einzigen Transaktion übertragen.

Alternativ zu pg_put_line() kann pg_copy_from() verwendet werden. Dies ist weitaus einfacher.

Hinweis:

Eine Anwendung muss explizit die beiden Zeichen "\." in der letzten Zeile an PostgreSQL übertragen, um anzuzeigen, dass die Datenübertragung beendet ist, bevor pg_end_copy() aufgerufen wird.

Warnung

Die Verwendung von pg_put_line() führt bei den meisten Operationen mit Large Objects zu Fehlern. So etwa bei pg_lo_read() und pg_lo_tell(). Stattdessen sollten Sie pg_copy_from() und pg_copy_to() benutzen.

Parameter-Liste

connection

PostgreSQL Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

data

Eine Textzeile, die direkt an den PostgreSQL Datenbankserver gesendet wird. Dabei wird automatisch ein NULL an das Zeilenende angehängt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_put_line() Beispiel

<?php
  $conn = pg_pconnect("dbname=foo");
  pg_query($conn, "create table bar (a int4, b char(16), d float8)");
  pg_query($conn, "copy bar from stdin");
  pg_put_line($conn, "3\thello world\t4.5\n");
  pg_put_line($conn, "4\tgoodbye world\t7.11\n");
  pg_put_line($conn, "\\.\n");
  pg_end_copy($conn);
?>

Siehe auch

  • pg_end_copy() - Synchronisation mit dem PostgreSQL-Server


Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden

  • « pg_put_line
  • pg_query »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden

pg_query_params

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_query_params — Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden

Beschreibung

pg_query_params ( resource $connection = ? , string $query , array $params ) : resource|false

Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden.

pg_query_params() ist ähnlich wie pg_query(), bietet aber zusätzlich die Möglichkeit, Parameterwerte ausserhalb des SQL-Kommandos separat zu übergeben. pg_query_params() wird nur für Verbindungen zu PostgreSQL ab der Version 7.4 unterstützt und schlägt bei allen niedrigeren Versionen fehl.

Falls irgendwelche Parameter übergeben wurden, werden diese in query als $1, $2 usw. referenziert. Der gleiche Parameter darf mehrmals in query auftauchen; in diesem Fall wird der selbe Wert verwendet. Im Array params werden die aktuellen Parameterwerte übergeben. Der Wert null in diesem Array repräsentiert den SQL-Wert NULL.

Der Hauptvorteil von pg_query_params() gegenüber pg_query() liegt darin, dass Parameterwerte vom SQL-Kommando getrennt übergeben werden können und damit das fehlerträchtige und lästige Maskieren und Setzen von Anführungszeichen vermieden werden kann. Im Unterschied zu pg_query() ist bei pg_query_params() nur ein einziges SQL-Kommando erlaubt. (Es können auch Semikolons enthalten sein, aber nicht mehr als ein nichtleeres Kommando.)

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

query

Die parametrisierte Abfrage. Diese darf nur ein einziges SQL-Kommando enthalten (mehrere Kommandos, durch Semikolon getrennt, sind nicht zulässig). Falls Parameter übergeben werden, werden sie als $1, $2, ... referenziert.

Anwenderdaten sollten immer als Parameter übergeben werden, und nicht in die Abfragezeichenkette interpoliert werden, wo sie mögliche SQL-Injection-Angriffsvektoren bilden und Bugs einführen, wenn die zu behandelnden Daten Anführungszeichen enthalten. Wenn aus irgendeinem Grund Parameter nicht verwendet werden können, ist sicherzustellen, dass Werte ordnungsgemäß maskiert sind.

params

Ein Array mit Parameterwerten, mit denen die Platzhalter $1, $2 usw. in der ursprünglichen vorbereiteten Abfrage ersetzt werden. Die Anzahl der Elemente dieses Arrays muss mit der Anzahl der Platzhalter übereinstimmen.

Werte, die für bytea Felder vorgesehen sind, werden nicht als Parameter unterstützt. Statt dessen sind pg_escape_bytea() oder die Funktionen für große Objekte zu verwenden.

Rückgabewerte

Bei Erfolg wird eine Ergebniskennung zurückgegeben. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_query_params()-Beispiel

<?php
// Verbindung zu einer Datenbank namens "mary" aufbauen
$dbconn = pg_connect("dbname=mary");

// Alle Shops mit dem Namen Joe's Widgets finden. Beachten Sie, dass es
// nicht nötig ist, den String "Joe's Widgets" zu maskieren.
$result = pg_query_params($dbconn, 'SELECT * FROM shops WHERE name = $1', array("Joe's Widgets"));

// Vergleich mit pg_query
$str = pg_escape_string("Joe's Widgets");
$result = pg_query($dbconn, "SELECT * FROM shops WHERE name = '{$str}'");

?>

Siehe auch

  • pg_query() - Führt eine Abfrage aus


Führt eine Abfrage aus

  • « pg_query_params
  • pg_result_error_field »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Führt eine Abfrage aus

pg_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_query — Führt eine Abfrage aus

Beschreibung

pg_query ( resource $connection = ? , string $query ) : resource|false

pg_query() führt die query auf der angegebenen Datenbank-Verbindung connection aus. In der Regel sollte pg_query_params() bevorzugt werden.

Falls ein Fehler auftritt und false zurückgegeben wird, können Sie Details zu diesem Fehler mit pg_last_error() anzeigen, vorausgesetzt, die Verbindungskennung ist gültig.

Hinweis: Obwohl der Parameter connection weggelassen werden kann, ist dies nicht empfehlenswert, da es die Fehlersuche in Skripten erschweren kann.

Hinweis:

Diese Funktion ersetzt die Funktion pg_exec(). pg_exec() wird aus Gründen der Kompatibilität immer noch unterstützt, es wird jedoch empfohlen, den neuen Funktionsnamen zu verwenden.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

query

Die auszuführende(n) SQL-Anweisung(en). Werden mehrere Anweisungen an pg_query() übergeben, werden sie automatisch in einer einzigen Transaktion ausgeführt, es sei denn, die Anweisungsfolge enthält explizite BEGIN/COMMIT-Anweisungen. Von der Ausführung mehrerer Transaktionen innerhalb eines Funktionsaufrufs wird abgeraten.

Warnung

String-Interpolation von Anwenderdaten ist sehr gefährlich, und führt wahrscheinlich zu SQL-Injection-Sicherheistlücken. In der Regel sollte pg_query_params() bevorzugt werden, wobei Anwenderdaten als Parameter übergeben werden anstatt sie in der Abfragezeichenkette zu ersetzen.

Jegliche Anwenderdaten, die direkt in eine Abfragezeichenkette interpoliert werden, sollten ordnungsgemäß maskiert werden.

Rückgabewerte

Bei Erfolg wird eine Ergebniskennung für die Abfrage zurückgegeben. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_query()-Beispiel

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Ein Fehler ist aufgetreten.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "Ein Fehler ist aufgetreten.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Autor: $row[0]  E-Mail: $row[1]";
  echo "<br />\n";
}

?>

Beispiel #2 pg_query() mit mehreren Anweisungen

<?php

$conn = pg_pconnect("dbname=publisher");

// diese Anweisungen werden in einer einzigen Transaktion ausgeführt.

$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
$query .= "UPDATE authors SET author=NULL WHERE id=3;";

pg_query($conn, $query);

?>

Siehe auch

  • pg_connect() - Öffnet eine PostgreSQL-Verbindung
  • pg_pconnect() - Öffnet eine persistente PostgreSQL-Verbindung
  • pg_fetch_array() - Liefert eine Zeile als Array
  • pg_fetch_object() - Liefert einen Datensatz als Objekt
  • pg_num_rows() - Gibt die Anzahl der Zeilen in einem Abfrageergebnis zurück
  • pg_affected_rows() - Gibt die Anzahl betroffener Datensätze (Tupel) zurück


Liefert den Inhalt eines bestimmtes Feldes zu einer Fehlermeldung

  • « pg_query
  • pg_result_error »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert den Inhalt eines bestimmtes Feldes zu einer Fehlermeldung

pg_result_error_field

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_result_error_field — Liefert den Inhalt eines bestimmtes Feldes zu einer Fehlermeldung

Beschreibung

pg_result_error_field ( resource $result , int $fieldcode ) : string

pg_result_error_field() gibt ein Feld der ausführlichen Fehlerbeschreibung zurück, die mit der Ergebniskennung result verbunden ist. Die Funktion wird nur für Verbindungen zu PostgreSQL ab der Version 7.4 unterstützt. Das gewünschte Feld wird im Parameter fieldcode übergeben.

Da pg_query() und pg_query_params() false zurückgeben, wenn eine Abfrage fehlschlägt, müssen Sie pg_send_query() und pg_get_result() benutzen, um eine Ergebniskennung zu erhalten.

Falls Sie weitergehende Informationen über einen aufgetretenen Fehler bei
pg_query() brauchen, können Sie
pg_set_error_verbosity() oder
pg_last_error() aufrufen und deren Ergebnisse
analysieren.

Parameter-Liste

result

Die Ergebniskennung einer vorhergehenden PostgreSQL-Abfrage.

fieldcode

Mögliche Werte von fieldcode sind: PGSQL_DIAG_SEVERITY, PGSQL_DIAG_SQLSTATE, PGSQL_DIAG_MESSAGE_PRIMARY, PGSQL_DIAG_MESSAGE_DETAIL, PGSQL_DIAG_MESSAGE_HINT, PGSQL_DIAG_STATEMENT_POSITION, PGSQL_DIAG_INTERNAL_POSITION (nur PostgreSQL ab Version 8.0), PGSQL_DIAG_INTERNAL_QUERY (nur PostgreSQL ab Version 8.0), PGSQL_DIAG_CONTEXT, PGSQL_DIAG_SOURCE_FILE, PGSQL_DIAG_SOURCE_LINE und PGSQL_DIAG_SOURCE_FUNCTION.

Rückgabewerte

Ein string, der den Inhalt des Fehlerfeldes enthält, oder null, falls das Feld nicht existiert. Bei einem Fehler wird false zurückgegeben.

Beispiele

Beispiel #1 pg_result_error_field()-Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Konnte nicht verbinden.");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from doesnotexist;");
  }

  $res1 = pg_get_result($dbconn);
  echo pg_result_error_field($res1, PGSQL_DIAG_SQLSTATE);
?>

Siehe auch

  • pg_result_error() - Liefert die mit der Ergebniskennung verknüpfte Fehlermeldung


Liefert die mit der Ergebniskennung verknüpfte Fehlermeldung

  • « pg_result_error_field
  • pg_result_seek »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert die mit der Ergebniskennung verknüpfte Fehlermeldung

pg_result_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_result_error — Liefert die mit der Ergebniskennung verknüpfte Fehlermeldung

Beschreibung

pg_result_error ( resource $result ) : string

pg_result_error() gibt alle Fehlermeldungen zurück, die mit der Ergebniskennung result verknüpft ist. Aus diesem Grund bekommt man mit pg_result_error() viel eher eine korrekte Fehlermeldung als mit pg_last_error().

Mit pg_result_error_field() bekommt man weitaus genauere Informationen über Fehler als mit pg_result_error().

Weil pg_query() bei einem Fehlschlag nur false zurückgibt, muss man pg_send_query() und pg_get_result() benutzen, um die Ergebniskennung zu erhalten.

Parameter-Liste

result

Die PostgreSQL-Eergebniskennung, die (unter anderem) von pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.

Rückgabewerte

Gibt einen string zurück. Ist kein Fehler aufgetreten, ist dies eine leere Zeichenkette. Falls ein Fehler mit dem Parameter result verknüpft ist wird false zurückgegeben.

Beispiele

Beispiel #1 pg_result_error()-Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Konnte nicht verbinden");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from doesnotexist;");
  }

  $res1 = pg_get_result($dbconn);
  echo pg_result_error($res1);
?>

Siehe auch

  • pg_result_error_field() - Liefert den Inhalt eines bestimmtes Feldes zu einer Fehlermeldung
  • pg_query() - Führt eine Abfrage aus
  • pg_send_query() - Sendet eine asynchrone Abfrage
  • pg_get_result() - Liefert asynchrone Abfrageergebnisse
  • pg_last_error() - Liefert die letzte Fehlermeldung einer Verbindung
  • pg_last_notice() - Liefert die letzte NOTICE-Meldung des PostgreSQL-Servers


Setzt den internen Datensatzzeiger auf die angegebene Position in einem Abfrageergebnis

  • « pg_result_error
  • pg_result_status »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Setzt den internen Datensatzzeiger auf die angegebene Position in einem Abfrageergebnis

pg_result_seek

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_result_seek — Setzt den internen Datensatzzeiger auf die angegebene Position in einem Abfrageergebnis

Beschreibung

pg_result_seek ( resource $result , int $offset ) : bool

pg_result_seek() setzt den internen Datensatzzeiger auf die angegebene Zeile in einem Abfrageergebnis.

Parameter-Liste

result

PostgreSQL Ergebniskennung, die (unter anderem) von pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.

offset

Zeile in result, auf die der interne Datensatzzeiger gesetzt werden soll. Die Zeilennummern beginnen bei null.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_result_seek() Beispiel

<?php

// Zur Datenbank verbinden
$conn = pg_pconnect("dbname=publisher");

// Eine Abfrage ausführen
$result = pg_query($conn, "SELECT author, email FROM authors");

// Den Zeiger auf die dritte Zeile setzen (vorausgesetzt, es gibt 3 Zeilen)
pg_result_seek($result, 2);

// Die dritte Zeile lesen
$row = pg_fetch_row($result);

?>

Siehe auch

  • pg_fetch_row() - Liefert einen Datensatz als numerisches Array
  • pg_fetch_assoc() - Liefert eine Zeile als assoziatives Array
  • pg_fetch_array() - Liefert eine Zeile als Array
  • pg_fetch_object() - Liefert einen Datensatz als Objekt
  • pg_fetch_result() - Liefert Werte aus einer Ergebnismenge


Gibt den Status eines Abfrageergebnisses zurück

  • « pg_result_seek
  • pg_select »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Gibt den Status eines Abfrageergebnisses zurück

pg_result_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_result_status — Gibt den Status eines Abfrageergebnisses zurück

Beschreibung

pg_result_status ( resource $result , int $type = PGSQL_STATUS_LONG ) : mixed

pg_result_status() gibt den Status eines Abfrageergebnisses zurück oder das mit dem Ergebnis verknüpfte PostgreSQL Kommando-Tag, wenn die Abfrage erfolgreich war.

Parameter-Liste

result

PostgreSQL Ergebniskennung, die (unter anderem) von den
Funktionen pg_query(),
pg_query_params() oder
pg_execute() zurückgegeben wurde.

type

Entweder PGSQL_STATUS_LONG, um die Statusnummer von result zu erhalten, oder PGSQL_STATUS_STRING, um das PostgreSQL Kommando-Tag für das result zu erhalten. Falls nichts angegeben wurde, wird der Vorgabewert PGSQL_STATUS_LONG zurückgegeben.

Rückgabewerte

Mögliche Rückgabewerte sind PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_OUT, PGSQL_COPY_IN, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR und PGSQL_FATAL_ERROR, falls PGSQL_STATUS_LONG angegeben wurde. Anderenfalls wird ein string zurückgegeben, der das PostgreSQL Kommando-Tag enthält.

Beispiele

Beispiel #1 pg_result_status() Beispiel

<?php

// Zur Datenbank verbinden
$conn = pg_pconnect("dbname=publisher");

// Eine Abfrage ausführen
$result = pg_query($conn, "COPY authors FROM STDIN;");

// Den Status des Abfrageergebnisses holen
$status = pg_result_status($result);

// Den Status ermitteln
if ($status == PGSQL_COPY_IN)
   echo "Copy begonnen.";
else
   echo "Copy fehlgeschlagen.";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Copy begonnen.

Siehe auch

  • pg_connection_status() - Gibt den Verbindungsstatus zurück


Wählt Datensätze aus

  • « pg_result_status
  • pg_send_execute »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Wählt Datensätze aus

pg_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_select — Wählt Datensätze aus

Beschreibung

pg_select ( resource $connection , string $table_name , array $assoc_array , int $options = PGSQL_DML_EXEC , int $result_type = PGSQL_ASSOC ) : mixed

pg_select() wählt die Datensätze aus der Tabelle table_name aus, die den Elementen (field=>value) in assoc_array entsprechen. Wenn die Abfrage erfolgreich war, wird ein assoziatives Array mit allen Zeilen und Werten aus table_name zurückgegeben, die mit den Zeilen und Werten in assoc_array identisch sind.

Falls options angegeben wurde, wird pg_convert() mit den angegebenen Flags auf assoc_array angewendet.

Standardmäßig übergibt pg_select() Rohwerte. Die Werte müssen entweder maskiert werden oder es muss die Option PGSQL_DML_ESCAPE angegeben werden. PGSQL_DML_ESCAPE maskiert Parameter und Bezeichner und setzt sie in Anführungszeichen. Daher muss bei Tabellen- und Spaltennamen zwischen Groß- und Kleinschreibung unterschieden werden.

Es ist zu beachten, dass weder die Maskierung noch eine vorbereitete Abfrage LIKE-Abfragen, JSON, Array, Regex usw. schützen können. Diese Parameter sollten im Kontext behandelt werden, d.h. Werte maskieren und validieren.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung.

table_name

Der Name der Tabelle, aus der die Zeilen ausgewählt werden.

assoc_array

Ein array, dessen Schlüssel Feldnamen von table_name sind und dessen Werte mit den entsprechenden Werten in table_name übereinstimmen müssen, damit die Zeile zurückgegeben werden kann.

options

Eine beliebige Kombination aus PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC und PGSQL_DML_STRING. Falls PGSQL_DML_STRING in den options enthalten ist, wird der Abfragestring zurückgegeben. Werden PGSQL_DML_NO_CONV oder PGSQL_DML_ESCAPE angegeben, wird pg_convert() intern nicht aufgerufen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Gibt einen string zurück, falls PGSQL_DML_STRING im Parameter options übergeben wurde.

Beispiele

Beispiel #1 pg_select()-Beispiel

<?php
  $db = pg_connect('dbname=foo');
  // Das ist einigermaßen sicher, da alle Werte maskiert werden.
  // Allerdings unterstützt PostgreSQL JSON/Array. Diese sind nicht
  // sicher, da sie Abfragen weder maskieren noch vorbereiten.
  $rec = pg_select($db, 'post_log', $_POST, PG_DML_ESCAPE);
  if ($rec) {
      echo "Datensätze ausgewählt\n";
      var_dump($rec);
  } else {
      echo "Falsche Eingabe\n";
  }
?>

Changelog

Version | Beschreibung
7.1.0 | Der result_type-Parameter wurde hinzugefügt.
5.6.0 | Nicht länger experimentell. Die PGSQL_DML_ESCAPE Konstante wurde hinzugefügt, wie auch Unterstützung für true/false und null Datentypen.
5.5.3/5.4.19 | Direkte SQL-Injection in table_name und indirekte SQL-Injection in Bezeichner wurden behoben.

Siehe auch

  • pg_convert() - Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form


Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern auszuführen, ohne auf die Ergebnisse zu warten

  • « pg_select
  • pg_send_prepare »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern auszuführen, ohne auf die Ergebnisse zu warten

pg_send_execute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_send_execute — Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern auszuführen, ohne auf die Ergebnisse zu warten

Beschreibung

pg_send_execute ( resource $connection , string $stmtname , array $params ) : bool

Sendet eine Aufforderung an den Server, eine vorbereitete Anfrage mit den übergebenen Parametern auszuführen, ohne auf die Ergebnisse zu warten.

Dies ist ähnlich, wie die Funktion pg_send_query_params(), nur dass das auszuführende Kommando eine zuvor benannte vorbereitete Abfrage ist und kein Abfragestring. Die Parameter der Funktion werden genauso verarbeitet, wie bei der Funktion pg_execute() beschrieben und genau wie diese kann pg_send_execute() nicht mit PostgreSQL Versionen vor 7.4 benutzet werden.

Parameter-Liste

connection

PostgreSQL Verbindungkennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

stmtname

Der Name der auszuführenden vorbereiteten Abfrage. Falls "" angegeben wird, wird eine unbenannte Abfrage ausgeführt. Der Name muss zuvor mit pg_prepare(), pg_send_prepare() oder dem SQL-Kommando PREPARE definiert worden sein.

params

Ein Array mit Parameterwerten, mit denen die Platzhalter $1, $2 usw. in der ursprünglichen vorbereiteten Abfrage ersetzt werden. Die Anzahl der Elemente dieses Arrays muss mit der Anzahl der Platzhalter übereinstimmen.

Rückgabewerte

Gibt bei Erfolg true zurück oder false, falls ein Fehler auftrat. Verwenden Sie pg_get_result(), um das Abfrageergebnis zu erhalten.

Beispiele

Beispiel #1 pg_send_execute() benutzen:

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Konnte nicht verbinden");

  // Abfrage vorbereiten
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Die vorbereitete Abfrage ausführen. Beachten Sie, dass es
  // nicht nötig ist, den String "Joe's Widgets" zu maskieren
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Dieselbe vorbereitete Abfrage, diesmal mit einem anderen Parameter.
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
    $res3 = pg_get_result($dbconn);
  }

?>

Siehe auch

  • pg_prepare() - Sendet eine Aufforderung an den Server, eine vorbereitete Anfrage mit den übergebenen Parametern zu erzeugen und wartet auf ihre Beendigung
  • pg_send_prepare() - Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern zu erzeugen, ohne auf ihre Beendigung zu warten
  • pg_execute() - Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis


Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern zu erzeugen, ohne auf ihre Beendigung zu warten

  • « pg_send_execute
  • pg_send_query_params »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern zu erzeugen, ohne auf ihre Beendigung zu warten

pg_send_prepare

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_send_prepare — Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern zu erzeugen, ohne auf ihre Beendigung zu warten

Beschreibung

pg_send_prepare ( resource $connection , string $stmtname , string $query ) : bool

Sendet eine Aufforderung an den Server, eine vorbereitete Anfrage mit den übergebenen Parametern zu erzeugen, ohne auf ihre Beendigung zu warten.

Dies ist eine asynchrone Version von pg_prepare(): Sie gibt true zurück, falls es möglich war, die Aufforderung abzusenden, ansonsten false. Nach einem erfolgreichen Absenden rufen Sie pg_get_result() auf, um festzustellen, ob der Server die vorbereitete Abfrage erfolgreich erzeugt hat. Die Parameter der Funktion werden genauso verarbeitet, wie bei der Funktion pg_prepare() beschrieben und genau wie diese kann pg_send_prepare() nicht mit PostgreSQL Versionen vor 7.4 benutzet werden.

Parameter-Liste

connection

PostgreSQL Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

stmtname

Der Name der vorbereiteten Abfrage. Dieser Name muss in der aktuellen Datenbanksitzung eindeutig sein. Falls "" angegeben wird, wird eine unbenannte Abfrage erzeugt, die alle zuvor definierten unbenannten Abfragen überschreibt.

query

Die parametrisierte Abfrage. Diese darf nur ein einziges SQL-Kommando enthalten (mehrere Kommandos, durch Semikolon getrennt, sind nicht zulässig). Falls Parameter übergeben werden, werden sie als $1, $2, ... referenziert.

Rückgabewerte

Gibt bei Erfolg true zurück, und false, falls ein Fehler auftrat. Benutzen Sie pg_get_result(), um das Abfrageergebnis zu erhalten.

Beispiele

Beispiel #1 pg_send_prepare() Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Konnte nicht verbinden");

  // Eine Abfrage vorbereiten
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
    $res1 = pg_get_result($dbconn);
  }

  // die vorbereitete Abfrage ausführen. Beachten Sie, dass es
  // nicht nötig ist, den String "Joe's Widgets" zu maskieren
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Dieselbe vorbereitete Abfrage, diesmal mit einem anderen Parameter.
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
    $res3 = pg_get_result($dbconn);
  }

?>

Siehe auch

  • pg_connect() - Öffnet eine PostgreSQL-Verbindung
  • pg_pconnect() - Öffnet eine persistente PostgreSQL-Verbindung
  • pg_execute() - Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis
  • pg_send_execute() - Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern auszuführen, ohne auf die Ergebnisse zu warten
  • pg_send_query_params() - Sendet ein Kommando und separate Parameter zum Server, ohne auf die Rückgabe der Ergebnisse zu warten


Sendet ein Kommando und separate Parameter zum Server, ohne auf die Rückgabe der Ergebnisse zu warten

  • « pg_send_prepare
  • pg_send_query »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Sendet ein Kommando und separate Parameter zum Server, ohne auf die Rückgabe der Ergebnisse zu warten

pg_send_query_params

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_send_query_params — Sendet ein Kommando und separate Parameter zum Server, ohne auf die Rückgabe der Ergebnisse zu warten

Beschreibung

pg_send_query_params ( resource $connection , string $query , array $params ) : bool

Sendet ein Kommando und separate Parameter zum Server ohne auf die Rückgabe der Ergebnisse zu warten.

Diese Funktion ist gleichwertig zu pg_send_query() mit dem Unterschied, dass Parameter für die Abfrage außerhalb des query-Strings übergeben werden können. Diese Parameter werden genauso verarbeitet, wie bei pg_query_params() beschrieben. Genau wie pg_query_params() kann diese Funktion nur mit PostgreSQL ab der Version 7.4 verwendet werden und es darf nur ein einziges Kommando im Abfragestring enthalten sein.

Parameter-Liste

connection

PostgreSQL-Verbindungskennung.

query

Die parametrisierte Abfrage. Diese darf nur ein einziges SQL-Kommando enthalten (mehrere Kommandos, durch Semikolon getrennt, sind nicht zulässig). Falls Parameter übergeben werden, werden sie als $1, $2, ... referenziert.

params

Ein Array mit Parameterwerten, mit denen die Platzhalter $1, $2 usw. in der ursprünglichen vorbereiteten Abfrage ersetzt werden. Die Anzahl der Elemente dieses Arrays muss mit der Anzahl der Platzhalter übereinstimmen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Benutzen Sie pg_get_result(), um das Abfrageergebnis zu erhalten.

Beispiele

Beispiel #1 pg_send_query_params()-Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Konnte nicht verbinden");

  // Die Parameter benutzen: Beachten Sie, dass es
  // nicht nötig ist, diese zu maskieren.
  pg_send_query_params($dbconn, 'select count(*) from authors where city = $1', array('Perth'));

  // Zum Vergleich: die Funktion pg_send_query
  $str = pg_escape_string('Perth');
  pg_send_query($dbconn, "select count(*) from authors where city = '${str}'");
?>

Siehe auch

  • pg_send_query() - Sendet eine asynchrone Abfrage


Sendet eine asynchrone Abfrage

  • « pg_send_query_params
  • pg_set_client_encoding »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Sendet eine asynchrone Abfrage

pg_send_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_send_query — Sendet eine asynchrone Abfrage

Beschreibung

pg_send_query ( resource $connection , string $query ) : bool

pg_send_query() sendet eine oder mehrere asynchrone Abfragen über die Verbindung connection. Im Unterschied zu pg_query() können hier mehrere Abfragen auf einmal an PostgreSQL gesendet und die Ergebnisse nacheinander mit pg_get_result() geholt werden.

Die Ausführung eines Skripts wird während der Abarbeitung der Anfragen nicht blockiert. Benutzen Sie die Funktion pg_connection_busy() um zu prüfen, ob die Verbindung gerade benutzt wird (z.B. ob gerade eine Abfrage ausgeführt wird). Mit der Funktion pg_cancel_query() können Abfragen gelöscht werden.

Obwohl man mehrere Abfragen auf einmal an den Server senden kann, können die Abfragen nicht über eine gerade benutzte Verbindung geschickt werden. Falls eine Abfrage gesendet wird, während die Verbindung benutzt wird, wird abgewartet, bis die letzte Abfrage fertig ist und alle Ergebnisse werden verworfen.

Parameter-Liste

connection

PostgreSQL Verbindungkennung.

query

Das oder die SQL-Anweisung(en), die ausgeführt werden sollen.

Daten innerhalb der Abfrage sollten ordnungsgemäß maskiert sein.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Benutzen Sie pg_get_result() um die Abfrageergebnisse zu ermitteln.

Beispiele

Beispiel #1 pg_send_query() Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Verbindungsaufbau fehlgeschlagen");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Der erste Aufruf von pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 hat $rows1 Zeilen\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Der zweite Aufruf von pg_get_result(): $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 hat $rows2 Zeilen\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der erste Aufruf von pg_get_result(): Resource id #3
Resource id #3 hat 3 Zeilen

Der zweite Aufruf von pg_get_result(): Resource id #4
Resource id #4 hat 1 Zeilen

Siehe auch

  • pg_query() - Führt eine Abfrage aus
  • pg_cancel_query() - Löscht eine asynchrone Abfrage
  • pg_get_result() - Liefert asynchrone Abfrageergebnisse
  • pg_connection_busy() - Gibt den Status der Verbindung zurück (busy/not busy)


Setzt die Kodierung des Clients

  • « pg_send_query
  • pg_set_error_verbosity »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Setzt die Kodierung des Clients

pg_set_client_encoding

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pg_set_client_encoding — Setzt die Kodierung des Clients

Beschreibung

pg_set_client_encoding ( resource $connection = ? , string $encoding ) : int

pg_set_client_encoding() setzt die Kodierung des Clients und gibt bei Erfolg 0 zurück, anderenfalls -1.

PostgreSQL konvertiert Daten automatisch aus der Kodierung des Backends in die des Frontends.

Hinweis:

Diese Funktion ersetzt die Funktion pg_setclientencoding().

Parameter-Liste

connection

PostgreSQL Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

encoding

Die gewünschte Kodierung des Clients. Sie können aus den folgenden Kodierungen wählen: SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5 or WIN1250.

Welche Kodierungen genau verfügbar sind, hängt von der verwendeten PostgreSQL-Version ab. Schauen Sie daher im PostgreSQL-Handbuch, welche Kodierungen unterstützt werden.

Rückgabewerte

Gibt bei Erfolg 0 zurück oder -1 bei einem Fehler.

Beispiele

Beispiel #1 pg_set_client_encoding() Beispiel

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Ein Fehler ist aufgetreten.\n";
  exit;
}

// Die Kodierung des Clients wird auf UNICODE gesetzt. Die Daten werden
// automatisch aus der Kodierung des Backends nach UNICODE konvertiert.
pg_set_client_encoding($conn, UNICODE);

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "Ein Fehler ist aufgetreten.\n";
  exit;
}

// UTF-8 Daten ausgeben
while ($row = pg_fetch_row($result)) {
  echo "Autor: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Siehe auch

  • pg_client_encoding() - Liefert die Kodierung des Clients


Bestimmt den Detaillierungsgrad von Fehlermeldungen, die von pg_last_error und pg_result_error zurückgegeben werden

  • « pg_set_client_encoding
  • pg_socket »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Bestimmt den Detaillierungsgrad von Fehlermeldungen, die von pg_last_error und pg_result_error zurückgegeben werden

pg_set_error_verbosity

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_set_error_verbosity — Bestimmt den Detaillierungsgrad von Fehlermeldungen, die von pg_last_error() und pg_result_error() zurückgegeben werden

Beschreibung

pg_set_error_verbosity ( resource $connection = ? , int $verbosity ) : int

Bestimmt den Detaillierungsgrad von Fehlermeldungen, die von pg_last_error() und pg_result_error() zurückgegeben werden.

pg_set_error_verbosity() setzt einen neuen Modus für Fehlermeldungen und gibt die zuvor gesetzte Einstellung zurück. Im Modus PGSQL_ERRORS_TERSE enthalten die Meldungen nur Angaben über den Detaillierungsgrad, einen Kurztext, sowie die Position des Fehlers. Dies passt normalerweise in eine Zeile. Im Standard-Modus, PGSQL_ERRORS_DEFAULT, wird das obige samt aller Einzelheiten, Hinweise oder Kontextfelder des Fehlers ausgegeben (was mehrere Zeilen in Anspruch nehmen kann). Der Modus PGSQL_ERRORS_VERBOSE schließt alle verfügbaren Felder ein. Eine Änderung des Detaillierungsgrads hat keine Auswirkung auf Meldungen bereits existierender Ergebnisse, sondern nur auf die, die danach erzeugt wurden.

Parameter-Liste

connection

PostgreSQL Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

verbosity

Der gewünschte Detaillierungsgrad: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT oder PGSQL_ERRORS_VERBOSE.

Rückgabewerte

Der vorher eingestellte Detaillierungsgrad: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT oder PGSQL_ERRORS_VERBOSE.

Beispiele

Beispiel #1 pg_set_error_verbosity() Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Konnte nicht verbinden");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from doesnotexist;");
  }

  pg_set_error_verbosity($dbconn, PGSQL_ERRORS_VERBOSE);
  $res1 = pg_get_result($dbconn);
  echo pg_result_error($res1);
?>

Siehe auch

  • pg_last_error() - Liefert die letzte Fehlermeldung einer Verbindung
  • pg_result_error() - Liefert die mit der Ergebniskennung verknüpfte Fehlermeldung


Get a read only handle to the socket underlying a PostgreSQL connection

  • « pg_set_error_verbosity
  • pg_trace »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Get a read only handle to the socket underlying a PostgreSQL connection

pg_socket

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

pg_socket — Get a read only handle to the socket underlying a PostgreSQL connection

Beschreibung

pg_socket ( resource $connection ) : resource|false

pg_socket() returns a read only resource corresponding to the socket underlying the given PostgreSQL connection.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

connection

PostgreSQL database connection resource.

Rückgabewerte

A socket resource on successIm Fehlerfall wird false zurückgegeben..


Ermöglicht die Ablaufverfolgung einer Verbindung

  • « pg_socket
  • pg_transaction_status »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Ermöglicht die Ablaufverfolgung einer Verbindung

pg_trace

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

pg_trace — Ermöglicht die Ablaufverfolgung einer Verbindung

Beschreibung

pg_trace ( string $pathname , string $mode = "w" , resource $connection = ? ) : bool

pg_trace() ermöglicht die Protokollierung der frontend/backend Kommunikation in eine Datei, die durch den Pfadnamen pathname bestimmt wurde. Um die Ergebnisse ganz zu verstehen, sollte man sich mit den Interna des PostgreSQL-Kommunikationsprotokolls auskennen.

Für diejenigen, die sich damit nicht auskennen kann es trotzdem hilfreich sein, um Fehler in Abfragen zu finden, die an den Server gesendet wurden. Beispielsweise können Sie das Kommando grep '^To backend' trace.log eingeben und schauen, welche Abfrage gerade an den PostgreSQL Server geschickt wurde. Weitere Informationen finden Sie in der » PostgreSQL Documentation.

Parameter-Liste

pathname

Der vollständige Pfad- und Dateiname der Datei, in die das Ablauf-Protokoll geschrieben werden soll. Genau wie bei fopen().

mode

Optional kann ein Zugriffsmodus übergeben werden, genauso wie bei fopen().

connection

PostgreSQL Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pg_trace() Beispiel

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
   pg_query("SELECT 1");
   pg_untrace($pgsql_conn);
   // Jetzt enthält  /tmp/trace.log die Kommunikation mit dem Server
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Siehe auch

  • fopen() - Öffnet eine Datei oder URL
  • pg_untrace() - Beendet die Ablaufverfolgung einer PostgreSQL-Verbindung


Gibt den aktuellen Transaktionsstatus des Servers zurück

  • « pg_trace
  • pg_tty »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Gibt den aktuellen Transaktionsstatus des Servers zurück

pg_transaction_status

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_transaction_status — Gibt den aktuellen Transaktionsstatus des Servers zurück

Beschreibung

pg_transaction_status ( resource $connection ) : int

Gibt den aktuellen Transaktionsstatus des Servers zurück.

Achtung

Die Funktion pg_transaction_status() gibt ungültige Ergebnisse zurück, wenn sie für einen PostgreSQL-Server der Version 7.3 aufgerufen wird, bei dem der Parameter autocommit auf off gesetzt ist. Die serverseitige Eigenschaft autocommit ist veraltet und existiert in den neueren PostgreSQL-Versionen nicht mehr.

Parameter-Liste

connection

PostgreSQL-Verbindungskennung.

Rückgabewerte

Mögliche Stati sind: PGSQL_TRANSACTION_IDLE (zur Zeit untätig), PGSQL_TRANSACTION_ACTIVE (ein Kommando wird abgearbeitet), PGSQL_TRANSACTION_INTRANS (untätig, aber innerhalb eines gültigen Transaktionsblocks) oder PGSQL_TRANSACTION_INERROR (untätig, innerhalb einer fehlgeschlagenen Transaktion). PGSQL_TRANSACTION_UNKNOWN wird zurückgegeben, falls eine Transaktion ungültig ist. PGSQL_TRANSACTION_ACTIVE wird nur dann zurückgegeben, wenn eine Abfrage zum Server gesendet wurde und noch nicht fertig abgearbeitet ist.

Beispiele

Beispiel #1 pg_transaction_status()-Beispiel

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Konnte nicht verbinden");
  $stat = pg_transaction_status($dbconn);
  if ($stat === PGSQL_TRANSACTION_UNKNOWN) {
      echo 'Verbindung ist ungültig';
  } else if ($stat === PGSQL_TRANSACTION_IDLE) {
      echo 'Verbindung ist zur Zeit untätig';
  } else {
      echo 'Verbindung meldet eine Transaktion';
  }
?>


Liefert den TTY-Namen für die Verbindung

  • « pg_transaction_status
  • pg_unescape_bytea »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert den TTY-Namen für die Verbindung

pg_tty

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_tty — Liefert den TTY-Namen für die Verbindung

Beschreibung

pg_tty ( resource $connection = ? ) : string

pg_tty() gibt den TTY-Namen zurück, an den Debug-Meldungen der übergebenen connection gesendet werden.

Hinweis:

pg_tty() ist überflüssig geworden, da der Server TTY-Einstellungen ignoriert. Wegen der Abwärtskompatibilität bleibt die Funktion dennoch erhalten.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

Rückgabewerte

Ein string, der die TTY-Debugmeldungen für die connection enthält, oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pg_tty()-Beispiel

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "TTY Debugmeldung des Servers: " . pg_tty($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>


Entfernt Maskierungen für den Typ bytea

  • « pg_tty
  • pg_untrace »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Entfernt Maskierungen für den Typ bytea

pg_unescape_bytea

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_unescape_bytea — Entfernt Maskierungen für den Typ bytea

Beschreibung

pg_unescape_bytea ( string $data ) : string

pg_unescape_bytea() entfernt Maskierungen von Daten des PostgreSQL-Typs bytea. Zurückgegeben wird ein String ohne Maskierungen, der möglicherweise Binärdaten enthält.

Hinweis:

Wenn Daten vom Typ bytea mit SELECT ausgewählt werden, gibt PostgreSQL Bytewerte als Oktalzahlen zurück, denen ein '\' vorangestellt ist (z. B. \032). Benutzer müssen diese Werte manuell in ein binäres Format konvertieren.

Diese Funktion setzt PostgreSQL ab der Version 7.2 voraus. Bei PostgreSQ; 7.2.0 und 7.2.1 müssen bytea-Werte konvertiert werden, falls die Multibyte-Unterstützung aktiviert ist, z. B. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);. Ab PostgreSQL 7.2.2 müssen die Daten nicht mehr konvertiert werden. Eine Ausnahme gibt es allerdings: wenn die Codierung des Clients und des Datenbankservers einander nicht entsprechen, kann es zu Multibyte-Fehlern kommen. Um diesen Fehler zu vermeiden, muss der Anwender einen Typecast zu bytea machen.

Parameter-Liste

data

Ein string, der Daten vom PostgreSQL Typ bytea enthält, die in einen PHP-Binärstring konvertiert werden.

Rückgabewerte

Ein string, der die unmaskierten Daten enthält.

Beispiele

Beispiel #1 pg_unescape_bytea() Beispiel

<?php
  // Zur Datenbank verbinden
  $dbconn = pg_connect('dbname=foo');

  // Die Daten vom Typ  bytea holen
  $res = pg_query("SELECT data FROM gallery WHERE name='Pine trees'");
  $raw = pg_fetch_result($res, 'data');

  // In Binärdaten konvertieren und an den Browser senden
  header('Content-type: image/jpeg');
  echo pg_unescape_bytea($raw);
?>

Changelog

Version | Beschreibung
5.5.1 | Eine Warnung wird erzeugt, wenn die Eingabezeichenkette ungültig ist.

Siehe auch

  • pg_escape_bytea() - Maskiert Zeichenketten zum Einfügen in ein Feld vom Typ bytea
  • pg_escape_string() - Maskiert einen String für Abfragen


Beendet die Ablaufverfolgung einer PostgreSQL-Verbindung

  • « pg_unescape_bytea
  • pg_update »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Beendet die Ablaufverfolgung einer PostgreSQL-Verbindung

pg_untrace

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

pg_untrace — Beendet die Ablaufverfolgung einer PostgreSQL-Verbindung

Beschreibung

pg_untrace ( resource $connection = ? ) : bool

Beendet die Ablaufverfolgung, die mit pg_trace() aktiviert wurde.

Parameter-Liste

connection

PostgreSQL Verbindungkennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

Rückgabewerte

Always returns true.

Beispiele

Beispiel #1 pg_untrace() Beipiel

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
   pg_query("SELECT 1");
   pg_untrace($pgsql_conn);
   // Jetzt ist die Ablaufverfolgung beendet
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Siehe auch

  • pg_trace() - Ermöglicht die Ablaufverfolgung einer Verbindung


Aktualisiert eine Tabelle

  • « pg_untrace
  • pg_version »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Aktualisiert eine Tabelle

pg_update

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_update — Aktualisiert eine Tabelle

Beschreibung

pg_update ( resource $connection , string $table_name , array $data , array $condition , int $options = PGSQL_DML_EXEC ) : mixed

pg_update() überschreibt alle Datensätze in table_name, deren Werte denen in condition entsprechen, mit den Werten aus data. Falls options angegeben sind, wird pg_convert() mit den angegebenen Flags auf data angewendet.

pg_update() aktualisiert Datensätze, die in assoc_array durch field=>value angegeben wurden.

Falls options angegeben wurde, wird pg_convert() mit den angegebenen Flags auf assoc_array angewendet.

Standardmäßig übergibt pg_update() Rohwerte. Die Werte müssen entweder maskiert werden oder es muss die Option PGSQL_DML_ESCAPE angegeben werden. PGSQL_DML_ESCAPE maskiert Parameter und Bezeichner und setzt sie in Anführungszeichen. Daher muss bei Tabellen- und Spaltennamen zwischen Groß- und Kleinschreibung unterschieden werden.

Es ist zu beachten, dass weder die Maskierung noch eine vorbereitete Abfrage LIKE-Abfragen, JSON, Array, Regex usw. schützen können. Diese Parameter sollten im Kontext behandelt werden, d.h. Werte maskieren und validieren.

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung.

table_name

Name der Tabelle, die aktualisiert werden soll.

data

Ein array, dessen Schlüssel Feldnamen von table_name sind und mit dessen Werten die Tabelle aktualisiert wird.

condition

Ein array, dessen Schlüssel Feldnamen von table_name sind und dessen Werte die Bedingungen sind, die eine Zeile erfüllen muss, um aktualisiert zu werden.

options

Jede Kombination aus PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC und PGSQL_DML_STRING. Falls PGSQL_DML_STRING in den options enthalten ist, wird der Abfragestring zurückgegeben. Werden PGSQL_DML_NO_CONV oder PGSQL_DML_ESCAPE angegeben, wird pg_convert() intern nicht aufgerufen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Gibt einen string zurück, falls PGSQL_DML_STRING mit dem Parameter options übergeben wurde.

Beispiele

Beispiel #1 pg_update()-Beispiel

<?php
  $db = pg_connect('dbname=foo');
  $data = array('field1'=>'AA', 'field2'=>'BB');
  // Das ist einigermaßen sicher, da alle Werte maskiert werden.
  // Allerdings unterstützt PostgreSQL JSON/Array. Diese sind nicht
  // sicher, da sie Abfragen weder maskieren noch vorbereiten.
  $res = pg_update($db, 'post_log', $_POST, $data);
  if ($res) {
      echo "Daten wurden aktualisiert: $res\n";
  } else {
      echo "Falsche Eingabe\n";
  }
?>

Changelog

Version | Beschreibung
5.6.0 | Nicht länger experimentell. Die PGSQL_DML_ESCAPE Konstante wurde hinzugefügt, wie auch Unterstützung für true/false und null Datentypen.
5.5.3/5.4.19 | Direkte SQL-Injection in table_name und indirekte SQL-Injection in Bezeichner wurden behoben.

Siehe auch

  • pg_convert() - Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form


Liefert ein Array, das die Versionen von Client, Protokoll und Server enthält (falls verfügbar).

  • « pg_update
  • SQLite3 »
  • PHP Manual
  • PostgreSQL-Funktionen
  • Liefert ein Array, das die Versionen von Client, Protokoll und Server enthält (falls verfügbar).

pg_version

(PHP 5, PHP 7, PHP 8)

pg_version — Liefert ein Array, das die Versionen von Client, Protokoll und Server enthält (falls verfügbar).

Beschreibung

pg_version ( resource $connection = ? ) : array

pg_version() Gibt ein Array zurück, das die Versionen von Client, Protokoll und Server enthält. Protokoll- und Serverversion sind nur verfügbar, wenn PHP mit PostgreSQL 7.4 und neuer kompiliert wurde.

Um genauere Informationen über den Server zu erhalten, verwenden Sie pg_parameter_status().

Parameter-Liste

connection

Die PostgreSQL-Verbindungskennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

Rückgabewerte

Gibt ein Array mit den Schlüsseln client, protocol und server zurück, in dem die entsprechenden Werte gespeichert sind, falls sie verfügbar sind. Bei einem Fehler oder einer ungültigen Verbindung wird false zurückgegeben.

Beispiele

Beispiel #1 pg_version()-Beispiel

<?php
  $dbconn = pg_connect("host=localhost port=5432 dbname=mary")
     or die("Verbindungsaufbau fehlgeschlagen");

  $v = pg_version($dbconn);

  echo $v['client'];
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

7.4

Siehe auch

  • pg_parameter_status() - Liefert den aktuellen Wert eines Parameters des Servers


SQLite3

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • SQLite3 — Die SQLite3-Klasse
    • SQLite3::backup — Backup one database to another database
    • SQLite3::busyTimeout — Sets the busy connection handler
    • SQLite3::changes — Gibt die Anzahl der Datenbankreihen zurück, die durch die letzte SQL-Anfrage verändert, gelöscht oder hinzugefügt wurden.
    • SQLite3::close — Beendet eine Datenbankverbindung
    • SQLite3::__construct — Instanziiert ein SQLite3-Objekt und öffnet eine SQLite3-Datenbank
    • SQLite3::createAggregate — Registriert eine PHP-Funktion zum Gebrauch als SQL-Aggregat-Funktion
    • SQLite3::createCollation — Registers a PHP function for use as an SQL collating function
    • SQLite3::createFunction — Registriert eine PHP-Funktion, die als SQL-Skalar-Funktion genutzt werden kann
    • SQLite3::enableExceptions — Enable throwing exceptions
    • SQLite3::escapeString — Gibt eine passend maskierte Zeichenkette zurück
    • SQLite3::exec — Führt eine ergebnislose Abfrage gegen den Datenbank-Server aus
    • SQLite3::lastErrorCode — Gibt den numerischen Ergebniscode der letzten fehlgeschlagenen SQLite-Anweisung zurück
    • SQLite3::lastErrorMsg — Gibt einen englischen Text zurück, der die letzten fehlgeschlagenen SQLite-Anfrage beschreibt.
    • SQLite3::lastInsertRowID — Gibt die Datensatz-Id des zuletzt getätigten INSERT in die Datenbank zurück
    • SQLite3::loadExtension — Versucht eine SQLite-Erweiterungsbibliothek zu laden.
    • SQLite3::open — Öffnet eine SQlite-Datenbank
    • SQLite3::openBlob — Opens a stream resource to read a BLOB
    • SQLite3::prepare — Bereitet eine SQL-Anweisung für die Ausführung vor
    • SQLite3::query — Führt eine SQL-Anfrage aus
    • SQLite3::querySingle — Executes a query and returns a single result
    • SQLite3::setAuthorizer — Configures a callback to be used as an authorizer to limit what a statement can do
    • SQLite3::version — Returns the SQLite3 library version as a string constant and as a number
  • SQLite3Stmt — Die SQLite3Stmt Klasse
    • SQLite3Stmt::bindParam — Binds a parameter to a statement variable
    • SQLite3Stmt::bindValue — Binds the value of a parameter to a statement variable
    • SQLite3Stmt::clear — Clears all current bound parameters
    • SQLite3Stmt::close — Closes the prepared statement
    • SQLite3Stmt::execute — Executes a prepared statement and returns a result set object
    • SQLite3Stmt::getSQL — Get the SQL of the statement
    • SQLite3Stmt::paramCount — Returns the number of parameters within the prepared statement
    • SQLite3Stmt::readOnly — Returns whether a statement is definitely read only
    • SQLite3Stmt::reset — Resets the prepared statement
  • SQLite3Result — Die SQLite3Result Klasse
    • SQLite3Result::columnName — Returns the name of the nth column
    • SQLite3Result::columnType — Returns the type of the nth column
    • SQLite3Result::fetchArray — Fetches a result row as an associative or numerically indexed array or both
    • SQLite3Result::finalize — Closes the result set
    • SQLite3Result::numColumns — Returns the number of columns in the result set
    • SQLite3Result::reset — Resets the result set back to the first row


  • « SQLite3
  • Installation/Konfiguration »
  • PHP Manual
  • SQLite3
  • Einführung

Einführung

Unterstützung für SQLite3-Datenbanken.


Anforderungen

Von PHP 7.4.0 an wird » libsqlite = 3.7.4 benötigt. Zuvor konnte statt dessen das gebündelte libsqlite verwendet werden.


Installation

Die SQLite3-Erweiterung ist in PHP 5.3.0 standardmäßig aktiviert. Es ist möglich, sie durch die Angabe von --without-sqlite3 zur Kompilierzeit, zu deaktivieren.

Windows-Nutzer müssen php_sqlite3.dll aktivieren, wenn sie diese Erweiterung nutzen wollen. Die DLL-Datei wird mit den Windows-Distributionen von PHP (seit PHP 5.3.0) ausgeliefert.

Hinweis: Zusätzliche Einrichtung für Windows von PHP 7.4.0 an

Diese Extension benötigt DLL-Dateien. die für Windows verfügbar seien müssen. Der FAQ-Eintrag " Wie füge ich unter Windows PATH mein PHP-Verzeichnis hinzu?" gibt hierzu weitere Informationen. Obwohl ein einfaches Kopieren der DLL-Dateien vom PHP-Verzeichnis in den Windows-Systemordner auch funktioniert (weil der Systemordner immer im PATH enthalten ist), ist dieses Vorgehen nicht empfehlenswert. Diese Extension benötigt die folgenden Dateien im PATH: libsqlite3.dll.

Hinweis:

Diese Erweiterung war kurzzeitig eine PECL-Erweiterung, aber diese Version ist nur für den experimentellen Einsatz.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

SQLite3-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
sqlite3.extension_dir | "" | PHP_INI_SYSTEM | Verfügbar von PHP 5.3.11 an.
sqlite3.defensive | 1 | PHP_INI_SYSTEM | Verfügbar von PHP 7.2.17 und 7.3.4 an für libsqlite = 3.26.0.

Hier eine kurze Erklärung der Konfigurationsoptionen:

sqlite3.extension_dir string

Pfad zu dem Verzeichnis, welches die ladbare Erweiterung für SQLite beinhaltet.

sqlite3.defensive bool

Ist das defensive-Flag aktiviert, dann sind Sprachfeatures, die es gewöhnlichem SQL ermöglichen, absichtlich die Datenbankdatei zu beschädigen, deaktiviert. Dies verbietet das direkte Schreiben des Schemas, von Schattentabellen (z.B. FTS Datentabellen), oder der virtuellen sqlite_dbpage Tabelle. Diese php.ini-Direktive wirkt nur für libsqlite = 3.26.0.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SQLITE3_ASSOC (int)
Legt fest, dass die Sqlite3Result::fetchArray()-Methode eine assoziative Liste zurückgeben soll. Die Liste wird durch den Spaltennamen indiziert, wie er in dem Anfrageergebnis zurückgegeben wurde.
SQLITE3_NUM (int)
Legt fest, dass die Sqlite3Result::fetchArray()-Methode eine Liste zurückgeben soll, die durch die Spaltennummer indiziert wird, wie sie in dem Anfrageergebnis zurückgegeben wurde, beginnend mit Spalte 0.
SQLITE3_BOTH (int)
Legt fest, dass die Sqlite3Result::fetchArray()-Methode eine Liste zurückgeben soll, die sowohl durch den Spaltennamen, als auch durch die Spaltennummer indiziert wird. Die geschieht analog dazu, wie es im Anfrageergebnis zurückgegeben wurde, beginnend mit Spalte 0.
SQLITE3_INTEGER (int)
Repräsentiert die SQLite3 'INTEGER'-Speicherklasse.
SQLITE3_FLOAT (int)
Repräsentiert die SQLite3 'REAL (FLOAT)'-Speicherklasse.
SQLITE3_TEXT (int)
Repräsentiert die SQLite3 'TEXT'-Speicherklasse.
SQLITE3_BLOB (int)
Repräsentiert die SQLite3 'BLOB'-Speicherklasse.
SQLITE3_NULL (int)
Repräsentiert die SQLite3 'NULL'-Speicherklasse.
SQLITE3_OPEN_READONLY (int)
Legt fest, dass die SQLite3-Datenbank nur für den lesenden Zugriff geöffnet wird.
SQLITE3_OPEN_READWRITE (int)
Legt fest, dass die SQLite3 Datenbank für den Lese- und Schreibzugriff geöffnet wird.
SQLITE3_OPEN_CREATE (int)
Legt fest, dass die SQLite3 Datenbank vor dem Öffnen angelegt wird, wenn diese noch nicht existiert.
SQLITE3_DETERMINISTIC (int)
Gibt an, dass eine Funktion, die mit SQLite3::createFunction() erzeugt wurde, deterministisch ist, d.h. dass sie in einer einzelnen SQL-Anweisung immer dasselbe Ergebnis für dieselben Eingaben liefert. (Verfügbar von PHP 7.1.4 an.)


Die SQLite3-Klasse

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Einführung

Eine Klasse, die eine Verbindung zu SQLite3-Datenbanken zur Verfügung stellt.

Klassenbeschreibung

SQLite3 {
/* Methoden */
public __construct ( string $filename , int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE , string $encryptionKey = "" )
public backup ( SQLite3 $destination , string $sourceDatabase = "main" , string $destinationDatabase = "main" ) : bool
public busyTimeout ( int $milliseconds ) : bool
public changes ( ) : int
public close ( ) : bool
public createAggregate ( string $name , callable $stepCallback , callable $finalCallback , int $argCount = -1 ) : bool
public createCollation ( string $name , callable $callback ) : bool
public createFunction ( string $name , callable $callback , int $argCount = -1 , int $flags = 0 ) : bool
public enableExceptions ( bool $enable = false ) : bool
public static escapeString ( string $string ) : string
public exec ( string $query ) : bool
public lastErrorCode ( ) : int
public lastErrorMsg ( ) : string
public lastInsertRowID ( ) : int
public loadExtension ( string $name ) : bool
public open ( string $filename , int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE , string $encryptionKey = "" ) : void
public openBlob ( string $table , string $column , int $rowid , string $database = "main" , int $flags = SQLITE3_OPEN_READONLY ) : resource|false
public prepare ( string $query ) : SQLite3Stmt|false
public query ( string $query ) : SQLite3Result|false
public querySingle ( string $query , bool $entireRow = false ) : mixed
public setAuthorizer ( callable|null $callback ) : bool
public static version ( ) : array
}

Inhaltsverzeichnis

  • SQLite3::backup — Backup one database to another database
  • SQLite3::busyTimeout — Sets the busy connection handler
  • SQLite3::changes — Gibt die Anzahl der Datenbankreihen zurück, die durch die letzte SQL-Anfrage verändert, gelöscht oder hinzugefügt wurden.
  • SQLite3::close — Beendet eine Datenbankverbindung
  • SQLite3::__construct — Instanziiert ein SQLite3-Objekt und öffnet eine SQLite3-Datenbank
  • SQLite3::createAggregate — Registriert eine PHP-Funktion zum Gebrauch als SQL-Aggregat-Funktion
  • SQLite3::createCollation — Registers a PHP function for use as an SQL collating function
  • SQLite3::createFunction — Registriert eine PHP-Funktion, die als SQL-Skalar-Funktion genutzt werden kann
  • SQLite3::enableExceptions — Enable throwing exceptions
  • SQLite3::escapeString — Gibt eine passend maskierte Zeichenkette zurück
  • SQLite3::exec — Führt eine ergebnislose Abfrage gegen den Datenbank-Server aus
  • SQLite3::lastErrorCode — Gibt den numerischen Ergebniscode der letzten fehlgeschlagenen SQLite-Anweisung zurück
  • SQLite3::lastErrorMsg — Gibt einen englischen Text zurück, der die letzten fehlgeschlagenen SQLite-Anfrage beschreibt.
  • SQLite3::lastInsertRowID — Gibt die Datensatz-Id des zuletzt getätigten INSERT in die Datenbank zurück
  • SQLite3::loadExtension — Versucht eine SQLite-Erweiterungsbibliothek zu laden.
  • SQLite3::open — Öffnet eine SQlite-Datenbank
  • SQLite3::openBlob — Opens a stream resource to read a BLOB
  • SQLite3::prepare — Bereitet eine SQL-Anweisung für die Ausführung vor
  • SQLite3::query — Führt eine SQL-Anfrage aus
  • SQLite3::querySingle — Executes a query and returns a single result
  • SQLite3::setAuthorizer — Configures a callback to be used as an authorizer to limit what a statement can do
  • SQLite3::version — Returns the SQLite3 library version as a string constant and as a number


Backup one database to another database

  • « SQLite3
  • SQLite3::busyTimeout »
  • PHP Manual
  • SQLite3
  • Backup one database to another database

SQLite3::backup

(PHP 7 >= 7.4.0, PHP 8)

SQLite3::backup — Backup one database to another database

Beschreibung

public SQLite3::backup ( SQLite3 $destination , string $sourceDatabase = "main" , string $destinationDatabase = "main" ) : bool

SQLite3::backup() copies the contents of one database into another, overwriting the contents of the destination database. It is useful either for creating backups of databases or for copying in-memory databases to or from persistent files.

Parameter-Liste

destination

A database connection opened with SQLite3::open().

sourceDatabase

The database name is "main" for the main database, "temp" for the temporary database, or the name specified after the AS keyword in an ATTACH statement for an attached database.

destinationDatabase

Analogous to sourceDatabase but for the destination.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Backup an existing database

<?php
// $conn is a connection to an already opened sqlite3 database

$backup = new SQLite3('backup.sqlite');
$conn->backup($backup);
?>


Sets the busy connection handler

  • « SQLite3::backup
  • SQLite3::changes »
  • PHP Manual
  • SQLite3
  • Sets the busy connection handler

SQLite3::busyTimeout

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

SQLite3::busyTimeout — Sets the busy connection handler

Beschreibung

public SQLite3::busyTimeout ( int $milliseconds ) : bool

Sets a busy handler that will sleep until the database is not locked or the timeout is reached.

Parameter-Liste

milliseconds

The milliseconds to sleep. Setting this value to a value less than or equal to zero, will turn off an already set timeout handler.

Rückgabewerte

Returns true on success, Im Fehlerfall wird false zurückgegeben..


Gibt die Anzahl der Datenbankreihen zurück, die durch die letzte SQL-Anfrage verändert, gelöscht oder hinzugefügt wurden.

  • « SQLite3::busyTimeout
  • SQLite3::close »
  • PHP Manual
  • SQLite3
  • Gibt die Anzahl der Datenbankreihen zurück, die durch die letzte SQL-Anfrage verändert, gelöscht oder hinzugefügt wurden.

SQLite3::changes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::changes — Gibt die Anzahl der Datenbankreihen zurück, die durch die letzte SQL-Anfrage verändert, gelöscht oder hinzugefügt wurden.

Beschreibung

public SQLite3::changes ( ) : int

Gibt die Anzahl der Datenbankreihen zurück, die durch die letzte SQL-Anfrage verändert, gelöscht oder hinzugefügt wurden.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt einen int-Wert zurück, der der Anzahl an geänderten, gelöschten oder hinzugefügten Datenbankreihen der letzten SQL-Anfrage widerspiegelt.

Beispiele

Beispiel #1 SQLite3::changes()-Beispiel

<?php
$db = new SQLite3('mysqlitedb.db');

$query = $db->exec('UPDATE counter SET views=0 WHERE page="test"');
if ($query) {
    echo 'Anzahl der modifizierten Reihen: ', $db->changes();
}
?>


Beendet eine Datenbankverbindung

  • « SQLite3::changes
  • SQLite3::__construct »
  • PHP Manual
  • SQLite3
  • Beendet eine Datenbankverbindung

SQLite3::close

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::close — Beendet eine Datenbankverbindung

Beschreibung

public SQLite3::close ( ) : bool

Beendet eine Datenbankverbindung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 SQLite3::close() Beispiel

<?php
$db = new SQLite3('mysqlitedb.db');
$db->close();
?>


Instanziiert ein SQLite3-Objekt und öffnet eine SQLite3-Datenbank

  • « SQLite3::close
  • SQLite3::createAggregate »
  • PHP Manual
  • SQLite3
  • Instanziiert ein SQLite3-Objekt und öffnet eine SQLite3-Datenbank

SQLite3::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::__construct — Instanziiert ein SQLite3-Objekt und öffnet eine SQLite3-Datenbank

Beschreibung

public SQLite3::__construct ( string $filename , int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE , string $encryptionKey = "" )

Instanziiert ein SQLite3-Objekt und öffnet eine Verbindung zu einer SQLite3-Datenbank. Wurde libsqlite3 mit Verschlüsselungunterstützung kompiliert, wird versucht den angegebenen Schlüssel zu nutzen.

Parameter-Liste

filename

Pfad zur SQLite-Datenbank oder :memory:, um eine im Speicher befindliche Datenbank zu nutzen. Ist filename eine leere Zeichenkette, dann wird eine private, temporäre Datenbank auf der Festplatte erzeugt. Diese private Datenbank wird automatisch gelöscht, sobald die Datenbankverbindung geschlossen wird.

flags

Optionale Schalter, die die Art bestimmen, wie die SQLite-Datenbank geöffnet wird. Standardmäßig wird SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE zum Öffnen genutzt.

  • SQLITE3_OPEN_READONLY: Öffnet die Datenbank im "nur lese"-Modus.

  • SQLITE3_OPEN_READWRITE: Öffnet die Datenbank zum Lesen und Schreiben.

  • SQLITE3_OPEN_CREATE: erzeugt die Datenbank, sollte diese nicht existieren.

encryptionKey

Eine optionale Verschlüsselungs-Phrase, die zur Ver- und Entschlüsselung der Datenbank genutzt wird. Ist das SQLite-Verschlüsselungsmodul nicht installiert, dann hat dieser Parameter keine Wirkung.

Rückgabewerte

Gibt im Erfolgsfall das SQLite-Datenbank-Objekt zurück.

Fehler/Exceptions

Wirft im Fehlerfall eine Exception.

Changelog

Version | Beschreibung
7.0.10 | Der Parameter filename kann nun leer sein, um eine private, temporäre Datenbank auf der Festplatte zu verwenden.

Beispiele

Beispiel #1 SQLite3::__construct()-Beispiel

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (bar TEXT)');
$db->exec("INSERT INTO foo (bar) VALUES ('Dies ist ein Test')");

$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>


Registriert eine PHP-Funktion zum Gebrauch als SQL-Aggregat-Funktion

  • « SQLite3::__construct
  • SQLite3::createCollation »
  • PHP Manual
  • SQLite3
  • Registriert eine PHP-Funktion zum Gebrauch als SQL-Aggregat-Funktion

SQLite3::createAggregate

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::createAggregate — Registriert eine PHP-Funktion zum Gebrauch als SQL-Aggregat-Funktion

Beschreibung

public SQLite3::createAggregate ( string $name , callable $stepCallback , callable $finalCallback , int $argCount = -1 ) : bool

Registriert eine PHP-Funktion zum Gebrauch als SQL-Aggregat-Funktion.

Parameter-Liste

name

Name des erstellten oder neu definierten SQL-Aggregates.

stepCallback

'Callback'-Funktion, welche für jede Reihe des Abfrageergebnisses ausgeführt wird. Ihr PHP sollte das Ergebnis akkumulieren und es im Aggregations-Kontext speichern.

Es ist notwendig, diese Funktion wie folgt zu definieren:

step ( mixed $context , int $rownumber , mixed $value , mixed ...$values ) : mixed
context

null für die erste Reihe. Folgende Reihen werden den zuvor zurückgegebenen Wert haben. Sie sollten diesen nutzen, um den Status der Aggregation zu pflegen.

rownumber

Die Nummer der aktuellen Reihe.

value

Das erste Argument, das an das Aggregat übergeben wurde.

values

Weitere Argumente, die an das Aggregat übergeben wurden.

Der Rückgabewert dieser Funktion wird als context Argument im nächsten Aufruf der step oder finalize Funktion verwendet.

finalCallback

'Callback'-Funktion, die die Informationen aller Reihen aggregiert. Sind alle Reihen abgearbeitet, wird diese Funktion aufgerufen. Diese sollte dann die Daten der Aggregation 'context' auswerten und das Ergebnis zurückgeben. 'Callback'-Funktionen sollten einen Variablentyp liefern, der von SQLite erwartet wird (z.B. scalar type).

Diese Funktion ist wie folgt zu definieren:

fini ( mixed $context , int $rownumber ) : mixed
context

Enthält den Rückgabewert des letzten Aufrufs der Schritt-Funktion.

rownumber

Immer 0.

Der Rückgabewert dieser Funktion wird als Rückgabewert für die Aggregation genutzt.

argCount

Anzahl der Argumente, welche das SQL-Aggregat erwartet. Ist dieser Parameter negativ, wird das SQL-Aggregat jedwede Zahl von Argumenten erkennen.

Rückgabewerte

Gibt true zurück, wenn die Aggregierung erfolgreich war. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Beispiel für eine 'max_length'-Aggregierungs-Funktion

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = new SQLite3(':memory:');
$db->exec("CREATE TABLE strings(a)");
$insert = $db->prepare('INSERT INTO strings VALUES (?)');
foreach ($data as $str) {
    $insert->bindValue(1, $str);
    $insert->execute();
}
$insert = null;

function max_len_step($context, $rownumber, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
    return $context;
}

function max_len_finalize($context, $rownumber)
{
    return $context === null ? 0 : $context;
}

$db->createAggregate('max_len', 'max_len_step', 'max_len_finalize');

var_dump($db->querySingle('SELECT max_len(a) from strings'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(5)

In diesem Beispiel erzeugen wir eine Aggregat-Funktion, die die Länge der längsten Zeichenkette innerhalb einer der Tabellenspalten ermittelt. Die max_len_step-Funktion wird für jede durchlaufene Reihe mit dem Parameter $context aufgerufen. Der Parameter 'context' ist eine normal PHP Variable, welche Listen oder Objektinhalte beinhalten kann. In diesem Beispiel benötigen wir sie als Speicher für die größte bisher gefundene Länge der geprüften Zeichenketten. Wenn also die die Zeichenkette in $string länger ist, als die aktuell Längste, wird der Inhalt von 'context' mit der neuen Länge überschrieben.

Nachdem alle Reihen abgearbeitet wurden, ruft SQLite die max_len_finalize-Funktion auf, um das Endergebnis zu ermitteln. Hier können wir nun jede Art von Berechnungen, basierend auf den in $context gesammelten Daten, durchführen. In unserem Beispiel haben wir die Berechgungen bereits bei der Datenerhebung getätigt, dass wir nun nur noch das Ergebnis - den Inhalt von 'context' - zurückgeben brauchen.

Tipp

Es ist nicht ratsam, eine Kopie der Inhalte in 'context' zu speichern, um diese dann am Ende auszuwerten. Das würde dazu führen, dass SQLite eine große Menge an Speicher benötigt, um die Abfrage abzuarbeiten. Überlegen Sie nur mal, wieviel Speicher eine Abfrage braucht, die 1 Millionen Reihen mit je 32 Byte Inhalt aus der Datenbank liest.

Tipp

SQLite3::createAggregate() kann verwendet werden, um native SQL-Funktionen von SQLite zu übersteuern.


Registers a PHP function for use as an SQL collating function

  • « SQLite3::createAggregate
  • SQLite3::createFunction »
  • PHP Manual
  • SQLite3
  • Registers a PHP function for use as an SQL collating function

SQLite3::createCollation

(PHP 5 >= 5.3.11, PHP 7, PHP 8)

SQLite3::createCollation — Registers a PHP function for use as an SQL collating function

Beschreibung

public SQLite3::createCollation ( string $name , callable $callback ) : bool

Registers a PHP function or user-defined function for use as a collating function within SQL statements.

Parameter-Liste

name

Name of the SQL collating function to be created or redefined

callback

The name of a PHP function or user-defined function to apply as a callback, defining the behavior of the collation. It should accept two values and return as strcmp() does, i.e. it should return -1, 1, or 0 if the first string sorts before, sorts after, or is equal to the second.

This function need to be defined as:

collation ( mixed $value1 , mixed $value2 ) : int

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 SQLite3::createCollation() example

Register the PHP function strnatcmp() as a collating sequence in the SQLite3 database.

<?php

$db = new SQLite3(":memory:");
$db->exec("CREATE TABLE test (col1 string)");
$db->exec("INSERT INTO test VALUES ('a1')");
$db->exec("INSERT INTO test VALUES ('a10')");
$db->exec("INSERT INTO test VALUES ('a2')");

$db->createCollation('NATURAL_CMP', 'strnatcmp');

$defaultSort = $db->query("SELECT col1 FROM test ORDER BY col1");
$naturalSort = $db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP");

echo "default:\n";
while ($row = $defaultSort->fetchArray()){
    echo $row['col1'], "\n";
}

echo "\nnatural:\n";
while ($row = $naturalSort->fetchArray()){
    echo $row['col1'], "\n";
}

$db->close();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

default:
a1
a10
a2

natural:
a1
a2
a10

Siehe auch

  • The SQLite collation documentation: » http://sqlite.org/datatype3.html#collation


Registriert eine PHP-Funktion, die als SQL-Skalar-Funktion genutzt werden kann

  • « SQLite3::createCollation
  • SQLite3::enableExceptions »
  • PHP Manual
  • SQLite3
  • Registriert eine PHP-Funktion, die als SQL-Skalar-Funktion genutzt werden kann

SQLite3::createFunction

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::createFunction — Registriert eine PHP-Funktion, die als SQL-Skalar-Funktion genutzt werden kann

Beschreibung

public SQLite3::createFunction ( string $name , callable $callback , int $argCount = -1 , int $flags = 0 ) : bool

Registriert eine PHP- oder benutzerdefinierte Funktion, die als SQL-Skalar-Funktion innerhalb einer SQL-Anweisung genutzt werden kann.

Parameter-Liste

name

Name der SQL-Funktion, die erstellt oder neu definiert werden soll.

callback

Der Name der PHP- oder benutzerdefinierten Funktion, welche als Callback-Funktion agieren soll und das Verhalten der SQL-Funktion definiert.

Diese Funktion muss wie folgt definiert werden:

callback ( mixed $value , mixed ...$values ) : mixed
value

Das erste Argument, dass an die SQL-Funktion übergeben wurde.

values

Weitere Argumente, die an die SQL-Funktion übergeben wurden.

argCount

Die Anzahl an Argumenten, die die SQL-Funktion entgegen nimmt. Ist der Parameter gleich -1, ist die SQL-Funktion nicht auf eine Parameteranzahl eingeschränkt.

flags

Ein bitweise Oder-Verknüpfung von Flags. Zurzeit wird nur SQLITE3_DETERMINISTIC unterstützt, das angibt, dass die Funktion in einer einzelnen SQL-Anweisung immer dasselbe Ergebnis für dieselben Eingaben liefert.

Rückgabewerte

Gibt true zurück, wenn die Funktion erfolgreich erstellt wurde. Anderenfalls wird false zurückgegeben.

Changelog

Version | Beschreibung
7.1.4 | Der flags-Parameter wurde hinzugefügt.

Beispiele

Beispiel #1 SQLite3::createFunction()-Beispiel

<?php
function my_udf_md5($string) {
    return md5($string);
}

$db = new SQLite3('mysqlitedb.db');
$db->createFunction('my_udf_md5', 'my_udf_md5');

var_dump($db->querySingle('SELECT my_udf_md5("test")'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(32) "098f6bcd4621d373cade4e832627b4f6"


Enable throwing exceptions

  • « SQLite3::createFunction
  • SQLite3::escapeString »
  • PHP Manual
  • SQLite3
  • Enable throwing exceptions

SQLite3::enableExceptions

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::enableExceptions — Enable throwing exceptions

Beschreibung

public SQLite3::enableExceptions ( bool $enable = false ) : bool

Controls whether the SQLite3 instance will throw exceptions or warnings on error.

Parameter-Liste

enable

When true, the SQLite3 instance, and SQLite3Stmt and SQLite3Result instances derived from it, will throw exceptions on error.

When false, the SQLite3 instance, and SQLite3Stmt and SQLite3Result instances derived from it, will raise warnings on error.

For either mode, the error code and message, if any, will be available via SQLite3::lastErrorCode() and SQLite3::lastErrorMsg() respectively.

Rückgabewerte

Returns the old value; true if exceptions were enabled, false otherwise.

Beispiele

Beispiel #1 SQLite3::enableExceptions() example

<?php
$sqlite = new SQLite3(':memory:');
try {
    $sqlite->exec('create table foo');
    $sqlite->enableExceptions(true);
    $sqlite->exec('create table bar');
} catch (Exception $e) {
    echo 'Caught exception: ' . $e->getMessage();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Warning: SQLite3::exec(): near "foo": syntax error in example.php on line 4
Caught exception: near "bar": syntax error


Gibt eine passend maskierte Zeichenkette zurück

  • « SQLite3::enableExceptions
  • SQLite3::exec »
  • PHP Manual
  • SQLite3
  • Gibt eine passend maskierte Zeichenkette zurück

SQLite3::escapeString

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::escapeString — Gibt eine passend maskierte Zeichenkette zurück

Beschreibung

public static SQLite3::escapeString ( string $string ) : string

Gibt eine Zeichenkette zurück, die für eine sichere Einbindung in die SQL-Anfrage passend maskiert wurde.

Warnung

Diese Funktion ist (bis jetzt) nicht binary safe!

Um BLOB-Felder, die ein NUL-Zeichen enthalten können, verlässlich zu behandeln, sollte stattdessen SQLITE3Stmt::bindParam() verwendet werden.

Parameter-Liste

string

Die maskierte Zeichenkette.

Rückgabewerte

Gibt eine passend maskierte Zeichenkette zurück, welche ohne Bedenken in einer SQL-Anfrage benutzt werden kann.

Anmerkungen

Warnung

Die Funktion addslashes() sollte NICHT genutzt werden, um eine Zeichenkette für den Gebrauch in einer SQL-Anfrage zu maskieren; dies kann bei der Datenabfrage zu unvorhersehbaren Resultaten führen.


Führt eine ergebnislose Abfrage gegen den Datenbank-Server aus

  • « SQLite3::escapeString
  • SQLite3::lastErrorCode »
  • PHP Manual
  • SQLite3
  • Führt eine ergebnislose Abfrage gegen den Datenbank-Server aus

SQLite3::exec

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::exec — Führt eine ergebnislose Abfrage gegen den Datenbank-Server aus

Beschreibung

public SQLite3::exec ( string $query ) : bool

Führt eine ergebnislose Abfrage gegen den Datenbank-Server aus.

Hinweis: SQLite3 muss möglicherweise während der Ausführung von Abfragen » temporäre Dateien erzeugen, so dass die entsprechenden Verzeichnisse beschreibbar sein müssen.

Parameter-Liste

query

Die auszuführende SQL-Anfrage (normalerweise eine INSERT-, UPDATE- oder DELETE-Anweisung)

Rückgabewerte

Gibt true zurück, wenn die Anfrage erfolgreich war; anderenfalls false

Beispiele

Beispiel #1 SQLite3::exec()-Beispiel

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE bar (bar STRING)');
?>


Gibt den numerischen Ergebniscode der letzten fehlgeschlagenen SQLite-Anweisung zurück

  • « SQLite3::exec
  • SQLite3::lastErrorMsg »
  • PHP Manual
  • SQLite3
  • Gibt den numerischen Ergebniscode der letzten fehlgeschlagenen SQLite-Anweisung zurück

SQLite3::lastErrorCode

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::lastErrorCode — Gibt den numerischen Ergebniscode der letzten fehlgeschlagenen SQLite-Anweisung zurück

Beschreibung

public SQLite3::lastErrorCode ( ) : int

Gibt den numerischen Ergebniscode der letzten fehlgeschlagenen SQLite-Anweisung zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Liefert einen Integerwert, der das numerische Ergebnis der letzten fehlgeschlagenen SQLite-Anweisung repräsentiert.


Gibt einen englischen Text zurück, der die letzten fehlgeschlagenen SQLite-Anfrage beschreibt.

  • « SQLite3::lastErrorCode
  • SQLite3::lastInsertRowID »
  • PHP Manual
  • SQLite3
  • Gibt einen englischen Text zurück, der die letzten fehlgeschlagenen SQLite-Anfrage beschreibt.

SQLite3::lastErrorMsg

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::lastErrorMsg — Gibt einen englischen Text zurück, der die letzten fehlgeschlagenen SQLite-Anfrage beschreibt.

Beschreibung

public SQLite3::lastErrorMsg ( ) : string

Gibt einen englischen Text zurück, der die letzten fehlgeschlagenen SQLite-Anfrage beschreibt.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt einen englischen Text zurück, der die letzten fehlgeschlagenen SQLite-Anfrage beschreibt.


Gibt die Datensatz-Id des zuletzt getätigten INSERT in die Datenbank zurück

  • « SQLite3::lastErrorMsg
  • SQLite3::loadExtension »
  • PHP Manual
  • SQLite3
  • Gibt die Datensatz-Id des zuletzt getätigten INSERT in die Datenbank zurück

SQLite3::lastInsertRowID

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::lastInsertRowID — Gibt die Datensatz-Id des zuletzt getätigten INSERT in die Datenbank zurück

Beschreibung

public SQLite3::lastInsertRowID ( ) : int

Gibt die Datensatz-Id des zuletzt getätigten INSERT in die Datenbank zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt die Datensatz-Id des zuletzt getätigten INSERT in die Datenbank zurück.


Versucht eine SQLite-Erweiterungsbibliothek zu laden.

  • « SQLite3::lastInsertRowID
  • SQLite3::open »
  • PHP Manual
  • SQLite3
  • Versucht eine SQLite-Erweiterungsbibliothek zu laden.

SQLite3::loadExtension

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::loadExtension — Versucht eine SQLite-Erweiterungsbibliothek zu laden.

Beschreibung

public SQLite3::loadExtension ( string $name ) : bool

Versucht eine SQLite-Erweiterungsbibliothek zu laden.

Parameter-Liste

name

Name der zu ladenden Bibliothek. Die Bibliothek muss in dem Verzeichnis existieren, das in der Konfigurationsoption sqlite3.extension_dir spezifiziert wurde.

Rückgabewerte

Gibt true zurück, wenn die Erweiterung erfolgreich geladen wurde und false im Fehlerfall.

Beispiele

Beispiel #1 SQLite3::loadExtension()-Beispiel

<?php
$db = new SQLite3('mysqlitedb.db');
$db->loadExtension('libagg.so');
?>


Öffnet eine SQlite-Datenbank

  • « SQLite3::loadExtension
  • SQLite3::openBlob »
  • PHP Manual
  • SQLite3
  • Öffnet eine SQlite-Datenbank

SQLite3::open

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::open — Öffnet eine SQlite-Datenbank

Beschreibung

public SQLite3::open ( string $filename , int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE , string $encryptionKey = "" ) : void

Öffnet eine SQLite3-Datenbank. Sollte diese verschlüsselt sein, wird unter Anwendung des Schlüssels versucht, diese zu entschlüsseln.

Parameter-Liste

filename

Pfad zu der SQLite-Datenbank oder :memory:, um eine im Arbeitsspeicher liegende Datenbank zu erstellen.

flags

Optionale Parameter zur Bestimmung, wie die SQLite-Datenbank geöffnet werden soll. Im Normalfall wird open SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE nutzen.

  • SQLITE3_OPEN_READONLY: Öffnet die Datenbank ausschließlich für lesende Zugriffe.

  • SQLITE3_OPEN_READWRITE: Öffnet die Datenbank für lesende und schreibende Zugriffe.

  • SQLITE3_OPEN_CREATE: Erzeugt eine Datenbank, wenn diese nicht existiert.

encryptionKey

Ein optionaler Schlüssel zur Verschlüsselung der Datenbank. Dieser wird zum Ent- und Verschlüsseln einer SQLite Datenbank genutzt. Wenn das SQlite Encryption-Modul nicht installiert ist, wird dieser Parameter ignoriert.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SQLite3::open()-Beispiel

<?php
/**
 * Ein einfaches Beispiel, wie man die SQLite3-Klasse erweitert, die Parameter
 * des Konstruktors (__construct) verändert und mit Hilfe der open-Methode dann
 * die Datenbank initialisiert.
 */
class MyDB extends SQLite3
{
    function __construct()
    {
        $this->open('mysqlitedb.db');
    }
}

$db = new MyDB();

$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");

$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>


Opens a stream resource to read a BLOB

  • « SQLite3::open
  • SQLite3::prepare »
  • PHP Manual
  • SQLite3
  • Opens a stream resource to read a BLOB

SQLite3::openBlob

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::openBlob — Opens a stream resource to read a BLOB

Beschreibung

public SQLite3::openBlob ( string $table , string $column , int $rowid , string $database = "main" , int $flags = SQLITE3_OPEN_READONLY ) : resource|false

Opens a stream resource to read or write a BLOB, which would be selected by:

SELECT column FROM database.table WHERE rowid = rowid

Hinweis: It is not possible to change the size of a BLOB by writing to the stream. Instead, an UPDATE statement has to be executed, possibly using SQLite's zeroblob() function to set the desired BLOB size.

Parameter-Liste

table

The table name.

column

The column name.

rowid

The row ID.

database

The symbolic name of the DB

flags

Either SQLITE3_OPEN_READONLY or SQLITE3_OPEN_READWRITE to open the stream for reading only, or for reading and writing, respectively.

Rückgabewerte

Returns a stream resource, Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
7.2.0 | The flags parameter has been added, allowing to write BLOBs; formerly only reading was supported.

Beispiele

Beispiel #1 SQLite3::openBlob() example

<?php
$conn = new SQLite3(':memory:');
$conn->exec('CREATE TABLE test (text text)');
$conn->exec("INSERT INTO test VALUES ('Lorem ipsum')");
$stream = $conn->openBlob('test', 'text', 1);
echo stream_get_contents($stream);
fclose($stream); // mandatory, otherwise the next line would fail
$conn->close();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Lorem ipsum

Beispiel #2 Incrementally writing a BLOB

<?php
$conn = new SQLite3(':memory:');
$conn->exec('CREATE TABLE test (text text)');
$conn->exec("INSERT INTO test VALUES (zeroblob(36))");
$stream = $conn->openBlob('test', 'text', 1, 'main', SQLITE3_OPEN_READWRITE);
for ($i = 0; $i < 3; $i++) {
    fwrite($stream,  "Lorem ipsum\n");
}
fclose($stream);
echo $conn->querySingle("SELECT text FROM test");
$conn->close();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Lorem ipsum
Lorem ipsum
Lorem ipsum


Bereitet eine SQL-Anweisung für die Ausführung vor

  • « SQLite3::openBlob
  • SQLite3::query »
  • PHP Manual
  • SQLite3
  • Bereitet eine SQL-Anweisung für die Ausführung vor

SQLite3::prepare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::prepare — Bereitet eine SQL-Anweisung für die Ausführung vor

Beschreibung

public SQLite3::prepare ( string $query ) : SQLite3Stmt|false

Bereitet eine SQL-Anweisung für die Ausführung vor und gibt ein SQLite3Stmt zurück.

Parameter-Liste

query

Die vorzubereitende SQL-Anfrage.

Rückgabewerte

Gibt im Erfolgsfall ein SQLite3Stmt-Objekt zurück. Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 SQLite3::prepare()-Beispiel

<?php
unlink('mysqlitedb.db');
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'This is a test')");

$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);

$result = $stmt->execute();
var_dump($result->fetchArray());
?>

Siehe auch

  • SQLite3Stmt::paramCount() - Returns the number of parameters within the prepared statement
  • SQLite3Stmt::bindValue() - Binds the value of a parameter to a statement variable
  • SQLite3Stmt::bindParam() - Binds a parameter to a statement variable


Führt eine SQL-Anfrage aus

  • « SQLite3::prepare
  • SQLite3::querySingle »
  • PHP Manual
  • SQLite3
  • Führt eine SQL-Anfrage aus

SQLite3::query

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::query — Führt eine SQL-Anfrage aus

Beschreibung

public SQLite3::query ( string $query ) : SQLite3Result|false

Führt eine SQL-Anfrage aus, welche ein SQLite3Result-Objekt zurück gibt. Liefert die Abfrage kein Ergebnis (so wie DML Anweisungen), dann ist das zürckgelieferte SQLite3Result-Objekt nicht wirklich nutzbar. Statt dessen sollte für solche Abfragen SQLite3::exec() verwendet werden.

Parameter-Liste

query

Die auszuführende SQL-Anfrage.

Rückgabewerte

Liefert ein SQLite3Result-Objekt. Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 SQLite3::query()-Beispiel

<?php
$db = new SQLite3('mysqlitedb.db');

$results = $db->query('SELECT bar FROM foo');
while ($row = $results->fetchArray()) {
    var_dump($row);
}
?>


Executes a query and returns a single result

  • « SQLite3::query
  • SQLite3::setAuthorizer »
  • PHP Manual
  • SQLite3
  • Executes a query and returns a single result

SQLite3::querySingle

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::querySingle — Executes a query and returns a single result

Beschreibung

public SQLite3::querySingle ( string $query , bool $entireRow = false ) : mixed

Executes a query and returns a single result.

Parameter-Liste

query

The SQL query to execute.

entireRow

By default, querySingle() returns the value of the first column returned by the query. If entireRow is true, then it returns an array of the entire first row.

Rückgabewerte

Returns the value of the first column of results or an array of the entire first row (if entireRow is true).

If the query is valid but no results are returned, then null will be returned if entireRow is false, otherwise an empty array is returned.

Invalid or failing queries will return false.

Beispiele

Beispiel #1 SQLite3::querySingle() example

<?php
$db = new SQLite3('mysqlitedb.db');

var_dump($db->querySingle('SELECT username FROM user WHERE userid=1'));
print_r($db->querySingle('SELECT username, email FROM user WHERE userid=1', true));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(5) "Scott"
Array
(
    [username] => Scott
    [email] => scott@example.com
)


Configures a callback to be used as an authorizer to limit what a statement can do

  • « SQLite3::querySingle
  • SQLite3::version »
  • PHP Manual
  • SQLite3
  • Configures a callback to be used as an authorizer to limit what a statement can do

SQLite3::setAuthorizer

(PHP 8)

SQLite3::setAuthorizer — Configures a callback to be used as an authorizer to limit what a statement can do

Beschreibung

public SQLite3::setAuthorizer ( callable|null $callback ) : bool

Sets a callback that will be called by SQLite every time an action is performed (reading, deleting, updating, etc.). This is used when preparing a SQL statement from an untrusted source to ensure that the SQL statements do not try to access data they are not allowed to see, or that they do not try to execute malicious statements that damage the database. For example, an application may allow a user to enter arbitrary SQL queries for evaluation by a database. But the application does not want the user to be able to make arbitrary changes to the database. An authorizer could then be put in place while the user-entered SQL is being prepared that disallows everything except SELECT statements.

The authorizer callback may be called multiple times for each statement prepared by SQLite. A SELECT or UPDATE query will call the authorizer for every column that would be read or updated.

The authorizer is called with up to five parameters. The first parameter is always given, and is an int (action code) matching a constant from SQLite3. The other parameters are only passed for some actions. The following table describes the second and third parameters according to the action:

List of action codes and parameters
Action | Second parameter | Third parameter
SQLite3::CREATE_INDEX | Index Name | Table Name
SQLite3::CREATE_TABLE | Table Name | null
SQLite3::CREATE_TEMP_INDEX | Index Name | Table Name
SQLite3::CREATE_TEMP_TABLE | Table Name | null
SQLite3::CREATE_TEMP_TRIGGER | Trigger Name | Table Name
SQLite3::CREATE_TEMP_VIEW | View Name | null
SQLite3::CREATE_TRIGGER | Trigger Name | Table Name
SQLite3::CREATE_VIEW | View Name | null
SQLite3::DELETE | Table Name | null
SQLite3::DROP_INDEX | Index Name | Table Name
SQLite3::DROP_TABLE | Table Name | null
SQLite3::DROP_TEMP_INDEX | Index Name | Table Name
SQLite3::DROP_TEMP_TABLE | Table Name | null
SQLite3::DROP_TEMP_TRIGGER | Trigger Name | Table Name
SQLite3::DROP_TEMP_VIEW | View Name | null
SQLite3::DROP_TRIGGER | Trigger Name | Table Name
SQLite3::DROP_VIEW | View Name | null
SQLite3::INSERT | Table Name | null
SQLite3::PRAGMA | Pragma Name | First argument passed to the pragma, or null
SQLite3::READ | Table Name | Column Name
SQLite3::SELECT | null | null
SQLite3::TRANSACTION | Operation | null
SQLite3::UPDATE | Table Name | Column Name
SQLite3::ATTACH | Filename | null
SQLite3::DETACH | Database Name | null
SQLite3::ALTER_TABLE | Database Name | Table Name
SQLite3::REINDEX | Index Name | null
SQLite3::ANALYZE | Table Name | null
SQLite3::CREATE_VTABLE | Table Name | Module Name
SQLite3::DROP_VTABLE | Table Name | Module Name
SQLite3::FUNCTION | null | Function Name
SQLite3::SAVEPOINT | Operation | Savepoint Name
SQLite3::RECURSIVE | null | null

The 5th parameter will be the name of the database ("main", "temp", etc.) if applicable.

The 6th parameter to the authorizer callback is the name of the inner-most trigger or view that is responsible for the access attempt or null if this access attempt is directly from top-level SQL code.

When the callback returns SQLite3::OK, that means the operation requested is accepted. When the callback returns SQLite3::DENY, the call that triggered the authorizer will fail with an error message explaining that access is denied.

If the action code is SQLite3::READ and the callback returns SQLite3::IGNORE then the prepared statement statement is constructed to substitute a null value in place of the table column that would have been read if SQLite3::OK had been returned. The SQLite3::IGNORE return can be used to deny an untrusted user access to individual columns of a table.

When a table is referenced by a SELECT but no column values are extracted from that table (for example in a query like "SELECT count(*) FROM table") then the SQLite3::READ authorizer callback is invoked once for that table with a column name that is an empty string.

If the action code is SQLite3::DELETE and the callback returns SQLite3::IGNORE then the DELETE operation proceeds but the truncate optimization is disabled and all rows are deleted individually.

Only a single authorizer can be in place on a database connection at a time. Each call to SQLite3::setAuthorizer() overrides the previous call. Disable the authorizer by installing a null callback. The authorizer is disabled by default.

The authorizer callback must not do anything that will modify the database connection that invoked the authorizer callback.

Note that the authorizer is only called when a statement is prepared, not when it's executed.

More details can be found in the » SQLite3 documentation.

Parameter-Liste

callback

The callable to be called.

If null is passed instead, this will disable the current authorizer callback.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

This method doesn't throw any error, but if an authorizer is enabled and returns an invalid value, the statement preparation will throw an error (or exception, depending on the use of the SQLite3::enableExceptions() method).

Beispiele

Beispiel #1 SQLite3::setAuthorizer() example

This only allows access to reading, and only some columns of the users table will be returned. Other columns will be replaced with null.

<?php
$db = new SQLite3('data.sqlite');
$db->exec('CREATE TABLE users (id, name, password);');
$db->exec('INSERT INTO users VALUES (1, \'Pauline\', \'Snails4eva\');');

$allowed_columns = ['id', 'name'];

$db->setAuthorizer(function (int $action, ...$args) use ($allowed_columns) {
    if ($action === SQLite3::READ) {
        list($table, $column) = $args;

        if ($table === 'users' && in_array($column, $allowed_columns) {
            return SQLite3::OK;
        }

        return SQLite3::IGNORE;
    }

    return SQLite3::DENY;
});

print_r($db->querySingle('SELECT * FROM users WHERE id = 1;'));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [id] => 1
    [name] => Pauline
    [password] =>
)


Returns the SQLite3 library version as a string constant and as a number

  • « SQLite3::setAuthorizer
  • SQLite3Stmt »
  • PHP Manual
  • SQLite3
  • Returns the SQLite3 library version as a string constant and as a number

SQLite3::version

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::version — Returns the SQLite3 library version as a string constant and as a number

Beschreibung

public static SQLite3::version ( ) : array

Returns the SQLite3 library version as a string constant and as a number.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an associative array with the keys "versionString" and "versionNumber".

Beispiele

Beispiel #1 SQLite3::version() example

<?php
print_r(SQLite3::version());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [versionString] => 3.5.9
    [versionNumber] => 3005009
)


Die SQLite3Stmt Klasse

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Einführung

Ein Klasse, die vorbereitete Anweisungen für die SQLite-3-Erweiterung abwickelt.

Klassenbeschreibung

SQLite3Stmt {
/* Methoden */
public bindParam ( string|int $param , mixed &$var , int $type = SQLITE3_TEXT ) : bool
public bindValue ( string|int $param , mixed $value , int $type = SQLITE3_TEXT ) : bool
public clear ( ) : bool
public close ( ) : bool
public execute ( ) : SQLite3Result|false
public getSQL ( bool $expand = false ) : string|false
public paramCount ( ) : int
public readOnly ( ) : bool
public reset ( ) : bool
}

Inhaltsverzeichnis

  • SQLite3Stmt::bindParam — Binds a parameter to a statement variable
  • SQLite3Stmt::bindValue — Binds the value of a parameter to a statement variable
  • SQLite3Stmt::clear — Clears all current bound parameters
  • SQLite3Stmt::close — Closes the prepared statement
  • SQLite3Stmt::execute — Executes a prepared statement and returns a result set object
  • SQLite3Stmt::getSQL — Get the SQL of the statement
  • SQLite3Stmt::paramCount — Returns the number of parameters within the prepared statement
  • SQLite3Stmt::readOnly — Returns whether a statement is definitely read only
  • SQLite3Stmt::reset — Resets the prepared statement


Binds a parameter to a statement variable

  • « SQLite3Stmt
  • SQLite3Stmt::bindValue »
  • PHP Manual
  • SQLite3Stmt
  • Binds a parameter to a statement variable

SQLite3Stmt::bindParam

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::bindParam — Binds a parameter to a statement variable

Beschreibung

public SQLite3Stmt::bindParam ( string|int $param , mixed &$var , int $type = SQLITE3_TEXT ) : bool

Binds a parameter to a statement variable.

Achtung

Before PHP 7.2.14 and 7.3.0, respectively, SQLite3Stmt::reset() must be called after the first call to SQLite3Stmt::execute() if the bound value should be properly updated on following calls to SQLite3Stmt::execute(). If SQLite3Stmt::reset() is not called, the bound value will not change, even if the value assigned to the variable passed to SQLite3Stmt::bindParam() has changed, or SQLite3Stmt::bindParam() has been called again.

Parameter-Liste

param

Either a string (for named parameters) or an int (for positional parameters) identifying the statement variable to which the value should be bound. If a named parameter does not start with a colon (:) or an at sign (@), a colon (:) is automatically preprended. Positional parameters start with 1.

var

The parameter to bind to a statement variable.

type

The data type of the parameter to bind.

  • SQLITE3_INTEGER: The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.

  • SQLITE3_FLOAT: The value is a floating point value, stored as an 8-byte IEEE floating point number.

  • SQLITE3_TEXT: The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16-LE).

  • SQLITE3_BLOB: The value is a blob of data, stored exactly as it was input.

  • SQLITE3_NULL: The value is a NULL value.

As of PHP 7.0.7, if type is omitted, it is automatically detected from the type of the var: bool and int are treated as SQLITE3_INTEGER, float as SQLITE3_FLOAT, null as SQLITE3_NULL and all others as SQLITE3_TEXT. Formerly, if type has been omitted, it has defaulted to SQLITE3_TEXT.

Hinweis:

If var is null, it is always treated as SQLITE3_NULL, regardless of the given type.

Rückgabewerte

Returns true if the parameter is bound to the statement variable, false on failure.

Changelog

Version | Beschreibung
7.4.0 | param now also supports the @param notation.

Beispiele

Beispiel #1 SQLite3Stmt::bindParam() Usage

This example shows how a single prepared statement with a single parameter binding can be used to insert multiple rows with different values.

<?php
$db = new SQLite3(':memory:');
$db->exec("CREATE TABLE foo (bar TEXT)");

$stmt = $db->prepare("INSERT INTO foo VALUES (:bar)");
$stmt->bindParam(':bar', $bar, SQLITE3_TEXT);

$bar = 'baz';
$stmt->execute();

$bar = 42;
$stmt->execute();

$res = $db->query("SELECT * FROM foo");
while (($row = $res->fetchArray(SQLITE3_ASSOC))) {
    var_dump($row);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["bar"]=>
  string(3) "baz"
}
array(1) {
  ["bar"]=>
  string(2) "42"
}

Siehe auch

  • SQLite3Stmt::bindValue() - Binds the value of a parameter to a statement variable
  • SQLite3::prepare() - Bereitet eine SQL-Anweisung für die Ausführung vor


Binds the value of a parameter to a statement variable

  • « SQLite3Stmt::bindParam
  • SQLite3Stmt::clear »
  • PHP Manual
  • SQLite3Stmt
  • Binds the value of a parameter to a statement variable

SQLite3Stmt::bindValue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::bindValue — Binds the value of a parameter to a statement variable

Beschreibung

public SQLite3Stmt::bindValue ( string|int $param , mixed $value , int $type = SQLITE3_TEXT ) : bool

Binds the value of a parameter to a statement variable.

Achtung

Before PHP 7.2.14 and 7.3.0, respectively, once the statement has been executed, SQLite3Stmt::reset() needs to be called to be able to change the value of bound parameters.

Parameter-Liste

param

Either a string (for named parameters) or an int (for positional parameters) identifying the statement variable to which the value should be bound. If a named parameter does not start with a colon (:) or an at sign (@), a colon (:) is automatically preprended. Positional parameters start with 1.

value

The value to bind to a statement variable.

type

The data type of the value to bind.

  • SQLITE3_INTEGER: The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.

  • SQLITE3_FLOAT: The value is a floating point value, stored as an 8-byte IEEE floating point number.

  • SQLITE3_TEXT: The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16-LE).

  • SQLITE3_BLOB: The value is a blob of data, stored exactly as it was input.

  • SQLITE3_NULL: The value is a NULL value.

As of PHP 7.0.7, if type is omitted, it is automatically detected from the type of the value: bool and int are treated as SQLITE3_INTEGER, float as SQLITE3_FLOAT, null as SQLITE3_NULL and all others as SQLITE3_TEXT. Formerly, if type has been omitted, it has defaulted to SQLITE3_TEXT.

Hinweis:

If value is null, it is always treated as SQLITE3_NULL, regardless of the given type.

Rückgabewerte

Returns true if the value is bound to the statement variable, Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
7.4.0 | param now also supports the @param notation.

Beispiele

Beispiel #1 SQLite3Stmt::bindValue() example

<?php
$db = new SQLite3(':memory:');

$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'This is a test')");

$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);

$result = $stmt->execute();
var_dump($result->fetchArray(SQLITE3_ASSOC));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["bar"]=>
  string(14) "This is a test"
}

Siehe auch

  • SQLite3Stmt::bindParam() - Binds a parameter to a statement variable
  • SQLite3::prepare() - Bereitet eine SQL-Anweisung für die Ausführung vor


Clears all current bound parameters

  • « SQLite3Stmt::bindValue
  • SQLite3Stmt::close »
  • PHP Manual
  • SQLite3Stmt
  • Clears all current bound parameters

SQLite3Stmt::clear

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::clear — Clears all current bound parameters

Beschreibung

public SQLite3Stmt::clear ( ) : bool

Clears all current bound parameters (sets them to null).

Achtung

This method needs to be used with SQLite3Stmt::reset(). If used alone, any call to SQLite3Stmt::bindValue() or SQLite3Stmt::bindParam() will be of no effect and all bound parameters will have the null value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true on successful clearing of bound parameters, false on failure.


Closes the prepared statement

  • « SQLite3Stmt::clear
  • SQLite3Stmt::execute »
  • PHP Manual
  • SQLite3Stmt
  • Closes the prepared statement

SQLite3Stmt::close

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::close — Closes the prepared statement

Beschreibung

public SQLite3Stmt::close ( ) : bool

Closes the prepared statement.

Hinweis: Note that all SQLite3Results that have been retrieved by executing this statement will be invalidated when the statement is closed.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true


Executes a prepared statement and returns a result set object

  • « SQLite3Stmt::close
  • SQLite3Stmt::getSQL »
  • PHP Manual
  • SQLite3Stmt
  • Executes a prepared statement and returns a result set object

SQLite3Stmt::execute

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::execute — Executes a prepared statement and returns a result set object

Beschreibung

public SQLite3Stmt::execute ( ) : SQLite3Result|false

Executes a prepared statement and returns a result set object.

Achtung

Result set objects retrieved by calling this method on the same statement object are not independent, but rather share the same underlying structure. Therefore it is recommended to call SQLite3Result::finalize(), before calling SQLite3Stmt::execute() on the same statement object again.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an SQLite3Result object on successful execution of the prepared statement, false on failure.

Siehe auch

  • SQLite3::prepare() - Bereitet eine SQL-Anweisung für die Ausführung vor
  • SQLite3Stmt::bindValue() - Binds the value of a parameter to a statement variable
  • SQLite3Stmt::bindParam() - Binds a parameter to a statement variable


Get the SQL of the statement

  • « SQLite3Stmt::execute
  • SQLite3Stmt::paramCount »
  • PHP Manual
  • SQLite3Stmt
  • Get the SQL of the statement

SQLite3Stmt::getSQL

(PHP 7 >= 7.4.0, PHP 8)

SQLite3Stmt::getSQL — Get the SQL of the statement

Beschreibung

public SQLite3Stmt::getSQL ( bool $expand = false ) : string|false

Retrieves the SQL of the prepared statement. If expand is false, the unmodified SQL is retrieved. If expand is true, all query parameters are replaced with their bound values, or with an SQL NULL, if not already bound.

Parameter-Liste

expand

Whether to retrieve the expanded SQL. Passing true is only supported as of libsqlite 3.14.

Rückgabewerte

Returns the SQL of the prepared statement, Im Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

If expand is true, but the libsqlite version is less than 3.14, an error of level E_WARNING or an Exception is issued, according to SQLite3::enableExceptions().

Beispiele

Beispiel #1 Inspecting the expanded SQL

<?php
$db = new SQLite3(':memory:');
$stmt = $db->prepare("SELECT :a, ?, :c");
$stmt->bindValue(':a', 'foo');
$answer = 42;
$stmt->bindParam(2, $answer);
var_dump($stmt->getSQL(true));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(24) "SELECT 'foo', '42', NULL"


Returns the number of parameters within the prepared statement

  • « SQLite3Stmt::getSQL
  • SQLite3Stmt::readOnly »
  • PHP Manual
  • SQLite3Stmt
  • Returns the number of parameters within the prepared statement

SQLite3Stmt::paramCount

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::paramCount — Returns the number of parameters within the prepared statement

Beschreibung

public SQLite3Stmt::paramCount ( ) : int

Returns the number of parameters within the prepared statement.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of parameters within the prepared statement.

Siehe auch

  • SQLite3::prepare() - Bereitet eine SQL-Anweisung für die Ausführung vor


Returns whether a statement is definitely read only

  • « SQLite3Stmt::paramCount
  • SQLite3Stmt::reset »
  • PHP Manual
  • SQLite3Stmt
  • Returns whether a statement is definitely read only

SQLite3Stmt::readOnly

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

SQLite3Stmt::readOnly — Returns whether a statement is definitely read only

Beschreibung

public SQLite3Stmt::readOnly ( ) : bool

Returns whether a statement is definitely read only. A statement is considered read only, if it makes no direct changes to the content of the database file. Note that user defined SQL functions might change the database indirectly as a side effect.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if a statement is definitely read only, false otherwise.


Resets the prepared statement

  • « SQLite3Stmt::readOnly
  • SQLite3Result »
  • PHP Manual
  • SQLite3Stmt
  • Resets the prepared statement

SQLite3Stmt::reset

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::reset — Resets the prepared statement

Beschreibung

public SQLite3Stmt::reset ( ) : bool

Resets the prepared statement to its state prior to execution. All bindings remain intact after reset.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the statement is successfully reset, Im Fehlerfall wird false zurückgegeben..


Die SQLite3Result Klasse

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Einführung

Eine Klasse, die Ergebnismengen der SQLite-3-Erweiterung behandelt.

Klassenbeschreibung

SQLite3Result {
/* Methoden */
public columnName ( int $column ) : string|false
public columnType ( int $column ) : int|false
public fetchArray ( int $mode = SQLITE3_BOTH ) : array|false
public finalize ( ) : bool
public numColumns ( ) : int
public reset ( ) : bool
}

Inhaltsverzeichnis

  • SQLite3Result::columnName — Returns the name of the nth column
  • SQLite3Result::columnType — Returns the type of the nth column
  • SQLite3Result::fetchArray — Fetches a result row as an associative or numerically indexed array or both
  • SQLite3Result::finalize — Closes the result set
  • SQLite3Result::numColumns — Returns the number of columns in the result set
  • SQLite3Result::reset — Resets the result set back to the first row


Returns the name of the nth column

  • « SQLite3Result
  • SQLite3Result::columnType »
  • PHP Manual
  • SQLite3Result
  • Returns the name of the nth column

SQLite3Result::columnName

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::columnName — Returns the name of the nth column

Beschreibung

public SQLite3Result::columnName ( int $column ) : string|false

Returns the name of the column specified by the column. Note that the name of a result column is the value of the AS clause for that column, if there is an AS clause. If there is no AS clause then the name of the column is unspecified and may change from one release of libsqlite3 to the next.

Parameter-Liste

column

The numeric zero-based index of the column.

Rückgabewerte

Returns the string name of the column identified by column, or false if the column does not exist.


Returns the type of the nth column

  • « SQLite3Result::columnName
  • SQLite3Result::fetchArray »
  • PHP Manual
  • SQLite3Result
  • Returns the type of the nth column

SQLite3Result::columnType

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::columnType — Returns the type of the nth column

Beschreibung

public SQLite3Result::columnType ( int $column ) : int|false

Returns the type of the column identified by column.

Parameter-Liste

column

The numeric zero-based index of the column.

Rückgabewerte

Returns the data type index of the column identified by column (one of SQLITE3_INTEGER, SQLITE3_FLOAT, SQLITE3_TEXT, SQLITE3_BLOB, or SQLITE3_NULL), or false if the column does not exist.


Fetches a result row as an associative or numerically indexed array or both

  • « SQLite3Result::columnType
  • SQLite3Result::finalize »
  • PHP Manual
  • SQLite3Result
  • Fetches a result row as an associative or numerically indexed array or both

SQLite3Result::fetchArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::fetchArray — Fetches a result row as an associative or numerically indexed array or both

Beschreibung

public SQLite3Result::fetchArray ( int $mode = SQLITE3_BOTH ) : array|false

Fetches a result row as an associative or numerically indexed array or both. By default, fetches as both.

Parameter-Liste

mode

Controls how the next row will be returned to the caller. This value must be one of either SQLITE3_ASSOC, SQLITE3_NUM, or SQLITE3_BOTH.

  • SQLITE3_ASSOC: returns an array indexed by column name as returned in the corresponding result set

  • SQLITE3_NUM: returns an array indexed by column number as returned in the corresponding result set, starting at column 0

  • SQLITE3_BOTH: returns an array indexed by both column name and number as returned in the corresponding result set, starting at column 0

Rückgabewerte

Returns a result row as an associatively or numerically indexed array or both. Alternately will return false if there are no more rows.

The types of the values of the returned array are mapped from SQLite3 types as follows: integers are mapped to int if they fit into the range PHP_INT_MIN..PHP_INT_MAX, and to string otherwise. Floats are mapped to float, NULL values are mapped to null, and strings and blobs are mapped to string.


Closes the result set

  • « SQLite3Result::fetchArray
  • SQLite3Result::numColumns »
  • PHP Manual
  • SQLite3Result
  • Closes the result set

SQLite3Result::finalize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::finalize — Closes the result set

Beschreibung

public SQLite3Result::finalize ( ) : bool

Closes the result set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true.


Returns the number of columns in the result set

  • « SQLite3Result::finalize
  • SQLite3Result::reset »
  • PHP Manual
  • SQLite3Result
  • Returns the number of columns in the result set

SQLite3Result::numColumns

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::numColumns — Returns the number of columns in the result set

Beschreibung

public SQLite3Result::numColumns ( ) : int

Returns the number of columns in the result set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of columns in the result set.


Resets the result set back to the first row

  • « SQLite3Result::numColumns
  • SQLSRV »
  • PHP Manual
  • SQLite3Result
  • Resets the result set back to the first row

SQLite3Result::reset

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::reset — Resets the result set back to the first row

Beschreibung

public SQLite3Result::reset ( ) : bool

Resets the result set back to the first row.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the result set is successfully reset back to the first row, false on failure.


Microsoft SQL Server Driver for PHP

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • SQLSRV Funktionen
    • sqlsrv_begin_transaction — Begins a database transaction
    • sqlsrv_cancel — Cancels a statement
    • sqlsrv_client_info — Returns information about the client and specified connection
    • sqlsrv_close — Closes an open connection and releases resourses associated with the connection
    • sqlsrv_commit — Commits a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_configure — Changes the driver error handling and logging configurations
    • sqlsrv_connect — Opens a connection to a Microsoft SQL Server database
    • sqlsrv_errors — Returns error and warning information about the last SQLSRV operation performed
    • sqlsrv_execute — Executes a statement prepared with sqlsrv_prepare
    • sqlsrv_fetch_array — Returns a row as an array
    • sqlsrv_fetch_object — Retrieves the next row of data in a result set as an object
    • sqlsrv_fetch — Makes the next row in a result set available for reading
    • sqlsrv_field_metadata — Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
    • sqlsrv_free_stmt — Frees all resources for the specified statement
    • sqlsrv_get_config — Returns the value of the specified configuration setting
    • sqlsrv_get_field — Gets field data from the currently selected row
    • sqlsrv_has_rows — Indicates whether the specified statement has rows
    • sqlsrv_next_result — Makes the next result of the specified statement active
    • sqlsrv_num_fields — Retrieves the number of fields (columns) on a statement
    • sqlsrv_num_rows — Retrieves the number of rows in a result set
    • sqlsrv_prepare — Prepares a query for execution
    • sqlsrv_query — Prepares and executes a query
    • sqlsrv_rollback — Rolls back a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_rows_affected — Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed
    • sqlsrv_send_stream_data — Sends data from parameter streams to the server
    • sqlsrv_server_info — Returns information about the server


Einführung

The SQLSRV extension allows you to access Microsoft SQL Server and SQL Azure databases. The 3.0 release of the driver supports SQL Server, beginning with SQL Server 2005, including SQL Server 2012 and SQL Server 2012 LocalDB. (For more information about LocalDB, see » PHP Driver for SQL Server Support for LocalDB and » SQL Server 2012 Express LocalDB.)

The SQLSRV extension is supported by Microsoft and available for download here: » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx. SQL Server 2012 LocalDB can be downloaded here: » http://go.microsoft.com/fwlink/?LinkID=237665.


Anforderungen

The SQLSRV extension can be used on the following operating systems:

  • Windows Vista Service Pack 2 or later
  • Windows Server 2008 Service Pack 2 or later
  • Windows Server 2008 R2
  • Windows 7

The SQLSRV extension requires that the Microsoft SQL Server 2012 Native Client be installed on the same computer that is running PHP. If the Microsoft SQL Server 2012 Native Client is not already installed, click the appropriate link below to download it:

  • » Download the x86 package
  • » Download the x64 package

The SQLSRV download comes 8 driver files, four of which are for PDO support. If you are running non-thread-safe PHP (PHP 5.3), use the php_sqlsrv_53_nts.dll file. (You should use a non-thread-safe version if you are using IIS as your web server). If you are running thread-safe PHP, use the php_sqlsrv_53_ts.dll file. Similarly for PHP 5.4, use the php_sqlsrv_54_nts.dll or php_sqlsrv_54_ts.dll depending on whether your PHP installation is non-thread-safe or thread-safe.

The most recent version of the driver is available for download here: » SQLSRV 4.0 download. If you need support for PHP 5.2 and/or PHP compiled with VC6, use the 2.0 release of the driver: » SQLSRV 2.0 download.

For more information about SQLSRV requirements, see » SQLSRV System Requirements.


Installation

The SQLSRV extension is enabled by adding appropriate DLL file to your PHP extension directory and the corresponding entry to the php.ini file. The SQLSRV download comes 8 driver files, four of which are for PDO support. If you are running non-thread-safe PHP (PHP 5.3), use the php_sqlsrv_53_nts.dll file. (You should use a non-thread-safe version if you are using IIS as your web server). If you are running thread-safe PHP, use the php_sqlsrv_53_ts.dll file. Similarly for PHP 5.4, use the php_sqlsrv_54_nts.dll or php_sqlsrv_54_ts.dll depending on whether your PHP installation is non-thread-safe or thread-safe.

The most recent version of the driver is available for download here: » SQLSRV 4.0 download. If you need support for PHP 5.2 and/or PHP compiled with VC6, use the 2.0 release of the driver: » SQLSRV 2.0 download.

For more information about SQLSRV requirements, see » SQLSRV System Requirements.

The SQLSRV extension is only compatible with PHP 5 running on Windows. Since version 4.0 the SQLSRV extension is compatilbe only with PHP 7.0 running on Linux or Windows.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

The following table lists the configuration options available in the SQLSRV extension. For more information about these options, see » Handling SQLSRV Warnings and Errors.

SQLSRV Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
sqlsrv.WarningsReturnAsErrors | 1 (true) | PHP_INI_ALL | Available since SQLSRV 1.0
sqlsrv.LogSubsystems | 0 | PHP_INI_ALL | Available since SQLSRV 1.0
sqlsrv.LogSeverity | 1 | PHP_INI_ALL | Available since SQLSRV 1.0


Ressource-Typen

Connection resource

A connection resource returned by sqlsrv_connect().

Statement resource

A statement resource returned by sqlsrv_query() or by sqlsrv_prepare().


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SQLSRV_FETCH_ASSOC (int)
Forces sqlsrv_fetch_array() to return an associative array when passed as a parameter.
SQLSRV_FETCH_NUMERIC (int)
Forces sqlsrv_fetch_array() to return an array with numeric when passed as a parameter.
SQLSRV_FETCH_BOTH (int)
Forces sqlsrv_fetch_array() to return an array with both associative and numeric keys when passed as a parameter (the default behavior).
SQLSRV_ERR_ALL (int)
Forces sqlsrv_errors() to return both errors and warings when passed as a parameter (the default behavior).
SQLSRV_ERR_ERRORS (int)
Forces sqlsrv_errors() to return errors only (no warnings) when passed as a parameter.
SQLSRV_ERR_WARNINGS (int)
Forces sqlsrv_errors() to return warnings only (no errors) when passed as a parameter.
SQLSRV_LOG_SYSTEM_ALL (int)
Turns on logging of all subsystems when passed to sqlsrv_configure() as a parameter.
SQLSRV_LOG_SYSTEM_CONN (int)
Turns on logging of connection activity when passed to sqlsrv_configure() as a parameter.
SQLSRV_LOG_SYSTEM_INIT (int)
Turns on logging of initialization activity when passed to sqlsrv_configure() as a parameter.
SQLSRV_LOG_SYSTEM_OFF (int)
Turns off logging of all subsystems when passed to sqlsrv_configure() as a parameter.
SQLSRV_LOG_SYSTEM_STMT (int)
Turns on logging of statement activity when passed to sqlsrv_configure() as a parameter.
SQLSRV_LOG_SYSTEM_UTIL (int)
Turns on logging of error function activity when passed to sqlsrv_configure() as a parameter.
SQLSRV_LOG_SEVERITY_ALL (int)
Specifies that errors, warnings, and notices will be logged when passed to sqlsrv_configure() as a parameter.
SQLSRV_LOG_SEVERITY_ERROR (int)
Specifies that errors will be logged when passed to sqlsrv_configure() as a parameter.
SQLSRV_LOG_SEVERITY_NOTICE (int)
Specifies that notices will be logged when passed to sqlsrv_configure() as a parameter.
SQLSRV_LOG_SEVERITY_WARNING (int)
Specifies that warnings will be logged when passed to sqlsrv_configure() as a parameter.
SQLSRV_NULLABLE_YES (int)
Indicates that a column is nullable.
SQLSRV_NULLABLE_NO (int)
Indicates that a column is not nullable.
SQLSRV_NULLABLE_UNKNOWN (int)
Indicates that it is not known if a column is nullable.
SQLSRV_PARAM_IN (int)
Indicates an input parameter when passed to sqlsrv_query() or sqlsrv_prepare().
SQLSRV_PARAM_INOUT (int)
Indicates a bidirectional parameter when passed to sqlsrv_query() or sqlsrv_prepare().
SQLSRV_PARAM_OUT (int)
Indicates an output parameter when passed to sqlsrv_query() or sqlsrv_prepare().
SQLSRV_PHPTYPE_INT (int)
Specifies an integer PHP data type. For usage information, see » How to: Specify PHP Types.
SQLSRV_PHPTYPE_DATETIME (int)
Specifies a datetime PHP data type. For usage information, see » How to: Specify PHP Types.
SQLSRV_PHPTYPE_FLOAT (int)
Specifies a float PHP data type. For usage information, see » How to: Specify PHP Types.
SQLSRV_PHPTYPE_STREAM (int)
Specifies a PHP stream. This constant works like a function and accepts an encoding constant. See the SQLSRV_ENC_* constants. For usage information, see » How to: Specify PHP Types.
SQLSRV_PHPTYPE_STRING (int)
Specifies a string PHP data type. This constant works like a function and accepts an encoding constant. See the SQLSRV_ENC_* constants. For usage information, see » How to: Specify PHP Types.
SQLSRV_ENC_BINARY (int)
Specifies that data is returned as a raw byte stream from the server without performing encoding or translation. For usage information, see » How to: Specify PHP Types.
SQLSRV_ENC_CHAR (int)
Data is returned in 8-bit characters as specified in the code page of the Windows locale that is set on the system. Any multi-byte characters or characters that do not map into this code page are substituted with a single byte question mark (?) character. This is the default encoding. For usage information, see » How to: Specify PHP Types.
UTF-8 (int)
Specifies that data is returned with UTF-8 encoding. For usage information, see » How to: Specify PHP Types.
SQLSRV_SQLTYPE_BIGINT (int)
Describes the bigint SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_BINARY (int)
Describes the binary SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_BIT (int)
Describes the bit SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_CHAR (int)
Describes the char SQL Server data type. This constant works like a function and accepts a parameter indicating the number characters. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_DATE (int)
Describes the date SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_DATETIME (int)
Describes the datetime SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_DATETIME2 (int)
Describes the datetime2 SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_DATETIMEOFFSET (int)
Describes the datetimeoffset SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_DECIMAL (int)
Describes the decimal SQL Server data type. This constant works like a function and accepts two parameters indicating (in order) precision and scale. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_FLOAT (int)
Describes the float SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_IMAGE (int)
Describes the image SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_INT (int)
Describes the int SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_MONEY (int)
Describes the money SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_NCHAR (int)
Describes the nchar SQL Server data type. This constant works like a function and accepts a single parameter indicating the character count. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_NUMERIC (int)
Describes the numeric SQL Server data type. This constant works like a function and accepts two parameter indicating (in order) precision and scale. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_NVARCHAR (int)
Describes the nvarchar SQL Server data type. This constant works like a function and accepts a single parameter indicating the character count. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_NVARCHAR('max') (int)
Describes the nvarchar(MAX) SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_NTEXT (int)
Describes the ntext SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_REAL (int)
Describes the real SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_SMALLDATETIME (int)
Describes the smalldatetime SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_SMALLINT (int)
Describes the smallint SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_SMALLMONEY (int)
Describes the smallmoney SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_TEXT (int)
Describes the text SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_TIME (int)
Describes the time SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_TIMESTAMP (int)
Describes the timestamp SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_TINYINT (int)
Describes the tinyint SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_UNIQUEIDENTIFIER (int)
Describes the uniqueidentifier SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_UDT (int)
Describes the UDT SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_VARBINARY (int)
Describes the varbinary SQL Server data type. This constant works like a function and accepts a single parameter indicating the byte count. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_VARBINARY('max') (int)
Describes the varbinary(MAX) SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_VARCHAR (int)
Describes the varchar SQL Server data type. This constant works like a function and accepts a single parameter indicating the character count. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_VARCHAR('max') (int)
Describes the varchar(MAX) SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_SQLTYPE_XML (int)
Describes the XML SQL Server data type. For usage information, see » How to: Specify SQL Types.
SQLSRV_TXN_READ_UNCOMMITTED (int)
Indicates a transaction isolation level of READ UNCOMMITTED. This value is used to set the TransactionIsolation level in the $connectionOptions array passed to sqlsrv_connect().
SQLSRV_TXN_READ_COMMITTED (int)
Indicates a transaction isolation level of READ COMMITTED. This value is used to set the TransactionIsolation level in the $connectionOptions array passed to sqlsrv_connect().
SQLSRV_TXN_REPEATABLE_READ (int)
Indicates a transaction isolation level of REPEATABLE READ. This value is used to set the TransactionIsolation level in the $connectionOptions array passed to sqlsrv_connect().
SQLSRV_TXN_SNAPSHOT (int)
Indicates a transaction isolation level of SNAPSHOT. This value is used to set the TransactionIsolation level in the $connectionOptions array passed to sqlsrv_connect().
SQLSRV_TXN_READ_SERIALIZABLE (int)
Indicates a transaction isolation level of SERIALIZABLE. This value is used to set the TransactionIsolation level in the $connectionOptions array passed to sqlsrv_connect().
SQLSRV_CURSOR_FORWARD (int)
Indicates a forward-only cursor. For usage information, see » Specifying a Cursor Type and Selecting Rows.
SQLSRV_CURSOR_STATIC (int)
Indicates a static cursor. For usage information, see » Specifying a Cursor Type and Selecting Rows.
SQLSRV_CURSOR_DYNAMIC (int)
Indicates a dynamic cursor. For usage information, see » Specifying a Cursor Type and Selecting Rows.
SQLSRV_CURSOR_KEYSET (int)
Indicates a keyset cursor. For usage information, see » Specifying a Cursor Type and Selecting Rows.
SQLSRV_CURSOR_BUFFERED (int)
Creates a client-side cursor query. Lets you access rows in any order. For usage information, see » Specifying a Cursor Type and Selecting Rows.
SQLSRV_SCROLL_NEXT (int)
Specifies which row to select in a result set. For usage information, see » Specifying a Cursor Type and Selecting Rows.
SQLSRV_SCROLL_PRIOR (int)
Specifies which row to select in a result set. For usage information, see » Specifying a Cursor Type and Selecting Rows.
SQLSRV_SCROLL_FIRST (int)
Specifies which row to select in a result set. For usage information, see » Specifying a Cursor Type and Selecting Rows.
SQLSRV_SCROLL_LAST (int)
Specifies which row to select in a result set. For usage information, see » Specifying a Cursor Type and Selecting Rows.
SQLSRV_SCROLL_ABSOLUTE (int)
Specifies which row to select in a result set. For usage information, see » Specifying a Cursor Type and Selecting Rows.
SQLSRV_SCROLL_RELATIVE (int)
Specifies which row to select in a result set. For usage information, see » Specifying a Cursor Type and Selecting Rows.


SQLSRV Funktionen

Inhaltsverzeichnis

  • sqlsrv_begin_transaction — Begins a database transaction
  • sqlsrv_cancel — Cancels a statement
  • sqlsrv_client_info — Returns information about the client and specified connection
  • sqlsrv_close — Closes an open connection and releases resourses associated with the connection
  • sqlsrv_commit — Commits a transaction that was begun with sqlsrv_begin_transaction
  • sqlsrv_configure — Changes the driver error handling and logging configurations
  • sqlsrv_connect — Opens a connection to a Microsoft SQL Server database
  • sqlsrv_errors — Returns error and warning information about the last SQLSRV operation performed
  • sqlsrv_execute — Executes a statement prepared with sqlsrv_prepare
  • sqlsrv_fetch_array — Returns a row as an array
  • sqlsrv_fetch_object — Retrieves the next row of data in a result set as an object
  • sqlsrv_fetch — Makes the next row in a result set available for reading
  • sqlsrv_field_metadata — Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
  • sqlsrv_free_stmt — Frees all resources for the specified statement
  • sqlsrv_get_config — Returns the value of the specified configuration setting
  • sqlsrv_get_field — Gets field data from the currently selected row
  • sqlsrv_has_rows — Indicates whether the specified statement has rows
  • sqlsrv_next_result — Makes the next result of the specified statement active
  • sqlsrv_num_fields — Retrieves the number of fields (columns) on a statement
  • sqlsrv_num_rows — Retrieves the number of rows in a result set
  • sqlsrv_prepare — Prepares a query for execution
  • sqlsrv_query — Prepares and executes a query
  • sqlsrv_rollback — Rolls back a transaction that was begun with sqlsrv_begin_transaction
  • sqlsrv_rows_affected — Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed
  • sqlsrv_send_stream_data — Sends data from parameter streams to the server
  • sqlsrv_server_info — Returns information about the server


Begins a database transaction

  • « SQLSRV Funktionen
  • sqlsrv_cancel »
  • PHP Manual
  • SQLSRV Funktionen
  • Begins a database transaction

sqlsrv_begin_transaction

(No version information available, might only be in Git)

sqlsrv_begin_transaction — Begins a database transaction

Beschreibung

sqlsrv_begin_transaction ( resource $conn ) : bool

The transaction begun by sqlsrv_begin_transaction() includes all statements that were executed after the call to sqlsrv_begin_transaction() and before calls to sqlsrv_rollback() or sqlsrv_commit(). Explicit transactions should be started and committed or rolled back using these functions instead of executing SQL statements that begin and commit/roll back transactions. For more information, see » SQLSRV Transactions.

Parameter-Liste

conn

The connection resource returned by a call to sqlsrv_connect().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 sqlsrv_begin_transaction() example

The following example demonstrates how to use sqlsrv_begin_transaction() together with sqlsrv_commit() and sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}

/* Begin the transaction. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* Initialize parameter values. */
$orderId = 1; $qty = 10; $productId = 100;

/* Set up and execute the first query. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
          VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Set up and execute the second query. */
$sql2 = "UPDATE InventoryTable
          SET Quantity = (Quantity - ?)
          WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* If both queries were successful, commit the transaction. */
/* Otherwise, rollback the transaction. */
if( $stmt1 && $stmt2 ) {
     sqlsrv_commit( $conn );
     echo "Transaction committed.<br />";
} else {
     sqlsrv_rollback( $conn );
     echo "Transaction rolled back.<br />";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Siehe auch

  • sqlsrv_commit() - Commits a transaction that was begun with sqlsrv_begin_transaction
  • sqlsrv_rollback() - Rolls back a transaction that was begun with sqlsrv_begin_transaction


Cancels a statement

  • « sqlsrv_begin_transaction
  • sqlsrv_client_info »
  • PHP Manual
  • SQLSRV Funktionen
  • Cancels a statement

sqlsrv_cancel

(No version information available, might only be in Git)

sqlsrv_cancel — Cancels a statement

Beschreibung

sqlsrv_cancel ( resource $stmt ) : bool

Cancels a statement. Any results associated with the statement that have not been consumed are deleted. After sqlsrv_cancel() has been called, the specified statement can be re-executed if it was created with sqlsrv_prepare(). Calling sqlsrv_cancel() is not necessary if all the results associated with the statement have been consumed.

Parameter-Liste

stmt

The statement resource to be cancelled.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 sqlsrv_cancel() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Sales FROM Table_1";

$stmt = sqlsrv_prepare( $conn, $sql);

if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

if( sqlsrv_execute( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

$salesTotal = 0;
$count = 0;

while( ($row = sqlsrv_fetch_array( $stmt)) && $salesTotal <=100000)
{
     $qty = $row[0];
     $price = $row[1];
     $salesTotal += ( $price * $qty);
     $count++;
}

echo "$count sales accounted for the first $$salesTotal in revenue.<br />";

// Cancel the pending results. The statement can be reused.
sqlsrv_cancel( $stmt);
?>

Anmerkungen

The main difference between sqlsrv_cancel() and sqlsrv_free_stmt() is that a statement resource cancelled with sqlsrv_cancel() can be re-executed if it was created with sqlsrv_prepare(). A statement resource cancelled with sqlsrv_free_statement() cannot be re-executed.

Siehe auch

  • sqlsrv_free_stmt() - Frees all resources for the specified statement
  • sqlsrv_prepare() - Prepares a query for execution


Returns information about the client and specified connection

  • « sqlsrv_cancel
  • sqlsrv_close »
  • PHP Manual
  • SQLSRV Funktionen
  • Returns information about the client and specified connection

sqlsrv_client_info

(No version information available, might only be in Git)

sqlsrv_client_info — Returns information about the client and specified connection

Beschreibung

sqlsrv_client_info ( resource $conn ) : array

Returns information about the client and specified connection

Parameter-Liste

conn

The connection about which information is returned.

Rückgabewerte

Returns an associative array with keys described in the table below. Returns false otherwise.

Array returned by sqlsrv_client_info
Key | Description
DriverDllName | SQLNCLI10.DLL
DriverODBCVer | ODBC version (xx.yy)
DriverVer | SQL Server Native Client DLL version (10.5.xxx)
ExtensionVer | php_sqlsrv.dll version (2.0.xxx.x)

Beispiele

Beispiel #1 sqlsrv_client_info() example

<?php
$serverName = "serverName\sqlexpress";
$connOptions = array("UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connOptions );

if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

if( $client_info = sqlsrv_client_info( $conn)) {
    foreach( $client_info as $key => $value) {
        echo $key.": ".$value."<br />";
    }
} else {
    echo "Error in retrieving client info.<br />";
}
?>

Siehe auch

  • sqlsrv_server_info() - Returns information about the server


Closes an open connection and releases resourses associated with the connection

  • « sqlsrv_client_info
  • sqlsrv_commit »
  • PHP Manual
  • SQLSRV Funktionen
  • Closes an open connection and releases resourses associated with the connection

sqlsrv_close

(No version information available, might only be in Git)

sqlsrv_close — Closes an open connection and releases resourses associated with the connection

Beschreibung

sqlsrv_close ( resource $conn ) : bool

Closes an open connection and releases resourses associated with the connection.

Parameter-Liste

conn

The connection to be closed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 sqlsrv_close() example

<?php
$serverName = "serverName\sqlexpres";
$connOptions = array("UID"=>"username", "PWD"=>"password", "Database"=>"dbname");
$conn = sqlsrv_connect( $serverName, $connOptions );
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

//-------------------------------------
// Perform database operations here.
//-------------------------------------

// Close the connection.
sqlsrv_close( $conn );
?>

Siehe auch

  • sqlsrv_connect() - Opens a connection to a Microsoft SQL Server database


Commits a transaction that was begun with sqlsrv_begin_transaction

  • « sqlsrv_close
  • sqlsrv_configure »
  • PHP Manual
  • SQLSRV Funktionen
  • Commits a transaction that was begun with sqlsrv_begin_transaction

sqlsrv_commit

(No version information available, might only be in Git)

sqlsrv_commit — Commits a transaction that was begun with sqlsrv_begin_transaction()

Beschreibung

sqlsrv_commit ( resource $conn ) : bool

Commits a transaction that was begun with sqlsrv_begin_transaction(). The connection is returned to auto-commit mode after sqlsrv_commit() is called. The transaction that is committed includes all statements that were executed after the call to sqlsrv_begin_transaction(). Explicit transactions should be started and committed or rolled back using these functions instead of executing SQL statements that begin and commit/roll back transactions. For more information, see » SQLSRV Transactions.

Parameter-Liste

conn

The connection on which the transaction is to be committed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 sqlsrv_commit() example

The following example demonstrates how to use sqlsrv_commit() together with sqlsrv_begin_transaction() and sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}

/* Begin the transaction. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* Initialize parameter values. */
$orderId = 1; $qty = 10; $productId = 100;

/* Set up and execute the first query. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
         VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Set up and execute the second query. */
$sql2 = "UPDATE InventoryTable
         SET Quantity = (Quantity - ?)
         WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* If both queries were successful, commit the transaction. */
/* Otherwise, rollback the transaction. */
if( $stmt1 && $stmt2 ) {
     sqlsrv_commit( $conn );
     echo "Transaction committed.<br />";
} else {
     sqlsrv_rollback( $conn );
     echo "Transaction rolled back.<br />";
}
?>

Siehe auch

  • sqlsrv_begin_transaction() - Begins a database transaction
  • sqlsrv_rollback() - Rolls back a transaction that was begun with sqlsrv_begin_transaction


Changes the driver error handling and logging configurations

  • « sqlsrv_commit
  • sqlsrv_connect »
  • PHP Manual
  • SQLSRV Funktionen
  • Changes the driver error handling and logging configurations

sqlsrv_configure

(No version information available, might only be in Git)

sqlsrv_configure — Changes the driver error handling and logging configurations

Beschreibung

sqlsrv_configure ( string $setting , mixed $value ) : bool

Changes the driver error handling and logging configurations.

Parameter-Liste

setting

The name of the setting to set. The possible values are "WarningsReturnAsErrors", "LogSubsystems", and "LogSeverity".

value

The value of the specified setting. The following table shows possible values:

Error and Logging Setting Options
Setting | Options
WarningsReturnAsErrors | 1 (true) or 0 (false)
LogSubsystems | SQLSRV_LOG_SYSTEM_ALL (-1) SQLSRV_LOG_SYSTEM_CONN (2) SQLSRV_LOG_SYSTEM_INIT (1) SQLSRV_LOG_SYSTEM_OFF (0) SQLSRV_LOG_SYSTEM_STMT (4) SQLSRV_LOG_SYSTEM_UTIL (8)
LogSeverity | SQLSRV_LOG_SEVERITY_ALL (-1) SQLSRV_LOG_SEVERITY_ERROR (1) SQLSRV_LOG_SEVERITY_NOTICE (4) SQLSRV_LOG_SEVERITY_WARNING (2)

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • » SQLSRV Error Handling.
  • » Logging SQLSRV Activity.


Opens a connection to a Microsoft SQL Server database

  • « sqlsrv_configure
  • sqlsrv_errors »
  • PHP Manual
  • SQLSRV Funktionen
  • Opens a connection to a Microsoft SQL Server database

sqlsrv_connect

(No version information available, might only be in Git)

sqlsrv_connect — Opens a connection to a Microsoft SQL Server database

Beschreibung

sqlsrv_connect ( string $serverName , array $connectionInfo = ? ) : resource

Opens a connection to a Microsoft SQL Server database. By default, the connection is attempted using Windows Authentication. To connect using SQL Server Authentication, include "UID" and "PWD" in the connection options array.

Parameter-Liste

serverName

The name of the server to which a connection is established. To connect to a specific instance, follow the server name with a backward slash and the instance name (e.g. serverName\sqlexpress).

connectionInfo

An associative array that specifies options for connecting to the server. If values for the UID and PWD keys are not specified, the connection will be attempted using Windows Authentication. For a complete list of supported keys, see » SQLSRV Connection Options.

Rückgabewerte

A connection resource. If a connection cannot be successfully opened, false is returned.

Beispiele

Beispiel #1 Connect using Windows Authentication.

<?php
$serverName = "serverName\\sqlexpress"; //serverName\instanceName

// Since UID and PWD are not specified in the $connectionInfo array,
// The connection will be attempted using Windows Authentication.
$connectionInfo = array( "Database"=>"dbName");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

Beispiel #2 Connect by specifying a user name and password.

<?php
$serverName = "serverName\\sqlexpress"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

Beispiel #3 Connect on a specified port.

<?php
$serverName = "serverName\\sqlexpress, 1542"; //serverName\instanceName, portNumber (default is 1433)
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

Anmerkungen

By default, the sqlsrv_connect() uses connection pooling to improve connection performance. To turn off connection pooling (i.e. force a new connection on each call), set the "ConnectionPooling" option in the $connectionOptions array to 0 (or false). For more information, see » SQLSRV Connection Pooling.

The SQLSRV extension does not have a dedicated function for changing which database is connected to. The target database is specified in the $connectionOptions array that is passed to sqlsrv_connect. To change the database on an open connection, execute the following query "USE dbName" (e.g. sqlsrv_query($conn, "USE dbName")).

Siehe auch

  • sqlsrv_close() - Closes an open connection and releases resourses associated with the connection
  • sqlsrv_errors() - Returns error and warning information about the last SQLSRV operation performed
  • sqlsrv_query() - Prepares and executes a query


Returns error and warning information about the last SQLSRV operation performed

  • « sqlsrv_connect
  • sqlsrv_execute »
  • PHP Manual
  • SQLSRV Funktionen
  • Returns error and warning information about the last SQLSRV operation performed

sqlsrv_errors

(No version information available, might only be in Git)

sqlsrv_errors — Returns error and warning information about the last SQLSRV operation performed

Beschreibung

sqlsrv_errors ( int $errorsOrWarnings = ? ) : mixed

Returns error and warning information about the last SQLSRV operation performed.

Parameter-Liste

errorsOrWarnings

Determines whether error information, warning information, or both are returned. If this parameter is not supplied, both error information and warning information are returned. The following are the supported values for this parameter: SQLSRV_ERR_ALL, SQLSRV_ERR_ERRORS, SQLSRV_ERR_WARNINGS.

Rückgabewerte

If errors and/or warnings occurred on the last sqlsrv operation, an array of arrays containing error information is returned. If no errors and/or warnings occurred on the last sqlsrv operation, null is returned. The following table describes the structure of the returned arrays:

Array returned by sqlsrv_errors
Key | Description
SQLSTATE | For errors that originate from the ODBC driver, the SQLSTATE returned by ODBC. For errors that originate from the Microsoft Drivers for PHP for SQL Server, a SQLSTATE of IMSSP. For warnings that originate from the Microsoft Drivers for PHP for SQL Server, a SQLSTATE of 01SSP.
code | For errors that originate from SQL Server, the native SQL Server error code. For errors that originate from the ODBC driver, the error code returned by ODBC. For errors that originate from the Microsoft Drivers for PHP for SQL Server, the Microsoft Drivers for PHP for SQL Server error code.
message | A description of the error.

Beispiele

Beispiel #1 functionname() example

<?php
$serverName = "serverName/sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

/* Set up a query to select an invalid column name. */
$sql = "SELECT BadColumnName FROM Table_1";

/* Execution of the query will fail because of the bad column name. */
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false ) {
    if( ($errors = sqlsrv_errors() ) != null) {
        foreach( $errors as $error ) {
            echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
            echo "code: ".$error[ 'code']."<br />";
            echo "message: ".$error[ 'message']."<br />";
        }
    }
}
?>

Anmerkungen

By default, warnings generated on a call to any SQLSRV function are treated as errors. This means that if a warning occurs on a call to a SQLSRV function, the function returns false. However, warnings that correspond to SQLSTATE values 01000, 01001, 01003, and 01S02 are never treated as errors. For information about changing this behavior, see sqlsrv_configure() and the WarningsReturnAsErrors setting.

Siehe auch

  • sqlsrv_configure() - Changes the driver error handling and logging configurations


Executes a statement prepared with sqlsrv_prepare

  • « sqlsrv_errors
  • sqlsrv_fetch_array »
  • PHP Manual
  • SQLSRV Funktionen
  • Executes a statement prepared with sqlsrv_prepare

sqlsrv_execute

(No version information available, might only be in Git)

sqlsrv_execute — Executes a statement prepared with sqlsrv_prepare()

Beschreibung

sqlsrv_execute ( resource $stmt ) : bool

Executes a statement prepared with sqlsrv_prepare(). This function is ideal for executing a prepared statement multiple times with different parameter values.

Parameter-Liste

stmt

A statement resource returned by sqlsrv_prepare().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 sqlsrv_execute() example

This example demonstrates how to prepare a statement with sqlsrv_prepare() and re-execute it multiple times (with different parameter values) using sqlsrv_execute().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1
        SET OrderQty = ?
        WHERE SalesOrderID = ?";

// Initialize parameters and prepare the statement.
// Variables $qty and $id are bound to the statement, $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
    die( print_r( sqlsrv_errors(), true));
}

// Set up the SalesOrderDetailID and OrderQty information.
// This array maps the order ID to order quantity in key=>value pairs.
$orders = array( 1=>10, 2=>20, 3=>30);

// Execute the statement for each order.
foreach( $orders as $id => $qty) {
    // Because $id and $qty are bound to $stmt1, their updated
    // values are used with each execution of the statement.
    if( sqlsrv_execute( $stmt ) === false ) {
          die( print_r( sqlsrv_errors(), true));
    }
}
?>

Anmerkungen

When you prepare a statement that uses variables as parameters, the variables are bound to the statement. This means that if you update the values of the variables, the next time you execute the statement it will run with updated parameter values. For statements that you plan to execute only once, use sqlsrv_query().

Siehe auch

  • sqlsrv_prepare() - Prepares a query for execution
  • sqlsrv_query() - Prepares and executes a query


Returns a row as an array

  • « sqlsrv_execute
  • sqlsrv_fetch_object »
  • PHP Manual
  • SQLSRV Funktionen
  • Returns a row as an array

sqlsrv_fetch_array

(No version information available, might only be in Git)

sqlsrv_fetch_array — Returns a row as an array

Beschreibung

sqlsrv_fetch_array ( resource $stmt , int $fetchType = ? , int $row = ? , int $offset = ? ) : array

Returns the next available row of data as an associative array, a numeric array, or both (the default).

Parameter-Liste

stmt

A statement resource returned by sqlsrv_query or sqlsrv_prepare.

fetchType

A predefined constant specifying the type of array to return. Possible values are SQLSRV_FETCH_ASSOC, SQLSRV_FETCH_NUMERIC, and SQLSRV_FETCH_BOTH (the default).

A fetch type of SQLSRV_FETCH_ASSOC should not be used when consuming a result set with multiple columns of the same name.

row

Specifies the row to access in a result set that uses a scrollable cursor. Possible values are SQLSRV_SCROLL_NEXT, SQLSRV_SCROLL_PRIOR, SQLSRV_SCROLL_FIRST, SQLSRV_SCROLL_LAST, SQLSRV_SCROLL_ABSOLUTE and, SQLSRV_SCROLL_RELATIVE (the default). When this parameter is specified, the fetchType must be explicitly defined.

offset

Specifies the row to be accessed if the row parameter is set to SQLSRV_SCROLL_ABSOLUTE or SQLSRV_SCROLL_RELATIVE. Note that the first row in a result set has index 0.

Rückgabewerte

Returns an array on success, null if there are no more rows to return, and false if an error occurs.

Beispiele

Beispiel #1 Retrieving an associative array.

<?php
$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
      echo $row['LastName'].", ".$row['FirstName']."<br />";
}

sqlsrv_free_stmt( $stmt);
?>

Beispiel #2 Retrieving a numeric array.

<?php
$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
      echo $row[0].", ".$row[1]."<br />";
}

sqlsrv_free_stmt( $stmt);
?>

Anmerkungen

Not specifying the fetchType or explicitly using the SQLSRV_FETCH_TYPE constant in the examples above will return an array that has both associative and numeric keys.

If more than one column is returned with the same name, the last column will take precedence. To avoid field name collisions, use aliases.

If a column with no name is returned, the associative key for the array element will be an empty string ("").

Siehe auch

  • sqlsrv_connect() - Opens a connection to a Microsoft SQL Server database
  • sqlsrv_query() - Prepares and executes a query
  • sqlsrv_errors() - Returns error and warning information about the last SQLSRV operation performed
  • sqlsrv_fetch() - Makes the next row in a result set available for reading


Retrieves the next row of data in a result set as an object

  • « sqlsrv_fetch_array
  • sqlsrv_fetch »
  • PHP Manual
  • SQLSRV Funktionen
  • Retrieves the next row of data in a result set as an object

sqlsrv_fetch_object

(No version information available, might only be in Git)

sqlsrv_fetch_object — Retrieves the next row of data in a result set as an object

Beschreibung

sqlsrv_fetch_object ( resource $stmt , string $className = ? , array $ctorParams = ? , int $row = ? , int $offset = ? ) : mixed

Retrieves the next row of data in a result set as an instance of the specified class with properties that match the row field names and values that correspond to the row field values.

Parameter-Liste

stmt

A statement resource created by sqlsrv_query() or sqlsrv_execute().

className

The name of the class to instantiate. If no class name is specified, stdClass is instantiated.

ctorParams

Values passed to the constructor of the specified class. If the constructor of the specified class takes parameters, the ctorParams array must be supplied.

row

The row to be accessed. This parameter can only be used if the specified statement was prepared with a scrollable cursor. In that case, this parameter can take on one of the following values:

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Specifies the row to be accessed if the row parameter is set to SQLSRV_SCROLL_ABSOLUTE or SQLSRV_SCROLL_RELATIVE. Note that the first row in a result set has index 0.

Rückgabewerte

Returns an object on success, null if there are no more rows to return, and false if an error occurs or if the specified class does not exist.

Beispiele

Beispiel #1 sqlsrv_fetch_object() example

The following example demonstrates how to retrieve a row as a stdClass object.

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT fName, lName FROM Table_1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Retrieve each row as an object.
// Because no class is specified, each row will be retrieved as a stdClass object.
// Property names correspond to field names.
while( $obj = sqlsrv_fetch_object( $stmt)) {
      echo $obj->fName.", ".$obj->lName."<br />";
}
?>

Anmerkungen

If a class name is specified with the optional $className parameter and the class has properties whose names match the result set field names, the corresponding result set values are applied to the properties. If a result set field name does not match a class property, a property with the result set field name is added to the object and the result set value is applied to the property. The following rules apply when using the $className parameter:

  • Field-property name matching is case-sensitive.
  • Field-property matching occurs regardless of access modifiers.
  • Class property data types are ignored when applying a field value to a property.
  • If the class does not exist, the function returns false and adds an error to the error collection.
Regardless of whether the $className parameter is supplied, if a field with no name is returned, the field value will be ignored and a warning will be added to the error collection.

When consuming a result set that has multiple columns with the same name, it may be better to use sqlsrv_fetch_array() or the combination of sqlsrv_fetch() and sqlsrv_get_field().

Siehe auch

  • sqlsrv_fetch() - Makes the next row in a result set available for reading
  • sqlsrv_fetch_array() - Returns a row as an array


Makes the next row in a result set available for reading

  • « sqlsrv_fetch_object
  • sqlsrv_field_metadata »
  • PHP Manual
  • SQLSRV Funktionen
  • Makes the next row in a result set available for reading

sqlsrv_fetch

(No version information available, might only be in Git)

sqlsrv_fetch — Makes the next row in a result set available for reading

Beschreibung

sqlsrv_fetch ( resource $stmt , int $row = ? , int $offset = ? ) : mixed

Makes the next row in a result set available for reading. Use sqlsrv_get_field() to read the fields of the row.

Parameter-Liste

stmt

A statement resource created by executing sqlsrv_query() or sqlsrv_execute().

row

The row to be accessed. This parameter can only be used if the specified statement was prepared with a scrollable cursor. In that case, this parameter can take on one of the following values:

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Specifies the row to be accessed if the row parameter is set to SQLSRV_SCROLL_ABSOLUTE or SQLSRV_SCROLL_RELATIVE. Note that the first row in a result set has index 0.

Rückgabewerte

Returns true if the next row of a result set was successfully retrieved, false if an error occurs, and null if there are no more rows in the result set.

Beispiele

Beispiel #1 sqlsrv_fetch() example

The following example demonstrates how to retrieve a row with sqlsrv_fetch() and get the row fields with sqlsrv_get_field().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Name, Comment
        FROM Table_1
        WHERE ReviewID=1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Make the first (and in this case, only) row of the result set available for reading.
if( sqlsrv_fetch( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

// Get the row fields. Field indices start at 0 and must be retrieved in order.
// Retrieving row fields by name is not supported by sqlsrv_get_field.
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

$comment = sqlsrv_get_field( $stmt, 1);
echo $comment;
?>

Siehe auch

  • sqlsrv_get_field() - Gets field data from the currently selected row
  • sqlsrv_fetch_array() - Returns a row as an array
  • sqlsrv_fetch_object() - Retrieves the next row of data in a result set as an object


Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query

  • « sqlsrv_fetch
  • sqlsrv_free_stmt »
  • PHP Manual
  • SQLSRV Funktionen
  • Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query

sqlsrv_field_metadata

(No version information available, might only be in Git)

sqlsrv_field_metadata — Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare() or sqlsrv_query()

Beschreibung

sqlsrv_field_metadata ( resource $stmt ) : mixed

Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare() or sqlsrv_query(). sqlsrv_field_metadata() can be called on a statement before or after statement execution.

Parameter-Liste

stmt

The statement resource for which metadata is returned.

Rückgabewerte

Returns an array of arrays on success. Otherwise, false is returned. Each returned array is described by the following table:

Array returned by sqlsrv_field_metadata
Key | Description
Name | The name of the field.
Type | The numeric value for the SQL type.
Size | The number of characters for fields of character type, the number of bytes for fields of binary type, or null for other types.
Precision | The precision for types of variable precision, null for other types.
Scale | The scale for types of variable scale, null for other types.
Nullable | An enumeration indicating whether the column is nullable, not nullable, or if it is not known.
For more information, see » sqlsrv_field_metadata in the Microsoft SQLSRV documentation.

Beispiele

Beispiel #1 sqlsrv_field_metadata() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"AdventureWorks", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
   die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT * FROM Table_1";
$stmt = sqlsrv_prepare( $conn, $sql );

foreach( sqlsrv_field_metadata( $stmt ) as $fieldMetadata ) {
    foreach( $fieldMetadata as $name => $value) {
       echo "$name: $value<br />";
    }
      echo "<br />";
}
?>

Siehe auch

  • sqlsrv_client_info() - Returns information about the client and specified connection


Frees all resources for the specified statement

  • « sqlsrv_field_metadata
  • sqlsrv_get_config »
  • PHP Manual
  • SQLSRV Funktionen
  • Frees all resources for the specified statement

sqlsrv_free_stmt

(No version information available, might only be in Git)

sqlsrv_free_stmt — Frees all resources for the specified statement

Beschreibung

sqlsrv_free_stmt ( resource $stmt ) : bool

Frees all resources for the specified statement. The statement cannot be used after sqlsrv_free_stmt() has been called on it. If sqlsrv_free_stmt() is called on an in-progress statement that alters server state, statement execution is terminated and the statement is rolled back.

Parameter-Liste

stmt

The statement for which resources are freed. Note that null is a valid parameter value. This allows the function to be called multiple times in a script.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 sqlsrv_free_stmt() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$stmt = sqlsrv_query( $conn, "SELECT * FROM Table_1");
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

/*-------------------------------
     Process query results here.
-------------------------------*/

/* Free the statement resources. */
sqlsrv_free_stmt( $stmt);

?>

Anmerkungen

The main difference between sqlsrv_free_stmt() and sqlsrv_cancel() is that a statement resource cancelled with sqlsrv_cancel() can be re-executed if it was created with sqlsrv_prepare(). A statement resource cancelled with sqlsrv_free_statement() cannot be re-executed.

Siehe auch

  • sqlsrv_cancel() - Cancels a statement


Returns the value of the specified configuration setting

  • « sqlsrv_free_stmt
  • sqlsrv_get_field »
  • PHP Manual
  • SQLSRV Funktionen
  • Returns the value of the specified configuration setting

sqlsrv_get_config

(No version information available, might only be in Git)

sqlsrv_get_config — Returns the value of the specified configuration setting

Beschreibung

sqlsrv_get_config ( string $setting ) : mixed

Returns the value of the specified configuration setting.

Parameter-Liste

setting

The name of the setting for which the value is returned. For a list of configurable settings, see sqlsrv_configure().

Rückgabewerte

Returns the value of the specified setting. If an invalid setting is specified, false is returned.

Siehe auch

  • sqlsrv_configure() - Changes the driver error handling and logging configurations


Gets field data from the currently selected row

  • « sqlsrv_get_config
  • sqlsrv_has_rows »
  • PHP Manual
  • SQLSRV Funktionen
  • Gets field data from the currently selected row

sqlsrv_get_field

(No version information available, might only be in Git)

sqlsrv_get_field — Gets field data from the currently selected row

Beschreibung

sqlsrv_get_field ( resource $stmt , int $fieldIndex , int $getAsType = ? ) : mixed

Gets field data from the currently selected row. Fields must be accessed in order. Field indices start at 0.

Parameter-Liste

stmt

A statement resource returned by sqlsrv_query() or sqlsrv_execute().

fieldIndex

The index of the field to be retrieved. Field indices start at 0. Fields must be accessed in order. i.e. If you access field index 1, then field index 0 will not be available.

getAsType

The PHP data type for the returned field data. If this parameter is not set, the field data will be returned as its default PHP data type. For information about default PHP data types, see » Default PHP Data Types in the Microsoft SQLSRV documentation.

Rückgabewerte

Returns data from the specified field on success. Returns false otherwise.

Beispiele

Beispiel #1 sqlsrv_get_field() example

The following example demonstrates how to retrieve a row with sqlsrv_fetch() and get the row fields with sqlsrv_get_field().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Name, Comment
        FROM Table_1
        WHERE ReviewID=1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Make the first (and in this case, only) row of the result set available for reading.
if( sqlsrv_fetch( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

// Get the row fields. Field indices start at 0 and must be retrieved in order.
// Retrieving row fields by name is not supported by sqlsrv_get_field.
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

$comment = sqlsrv_get_field( $stmt, 1);
echo $comment;
?>

Siehe auch

  • sqlsrv_fetch() - Makes the next row in a result set available for reading
  • sqlsrv_fetch_array() - Returns a row as an array
  • sqlsrv_fetch_object() - Retrieves the next row of data in a result set as an object


Indicates whether the specified statement has rows

  • « sqlsrv_get_field
  • sqlsrv_next_result »
  • PHP Manual
  • SQLSRV Funktionen
  • Indicates whether the specified statement has rows

sqlsrv_has_rows

(No version information available, might only be in Git)

sqlsrv_has_rows — Indicates whether the specified statement has rows

Beschreibung

sqlsrv_has_rows ( resource $stmt ) : bool

Indicates whether the specified statement has rows.

Parameter-Liste

stmt

A statement resource returned by sqlsrv_query() or sqlsrv_execute().

Rückgabewerte

Returns true if the specified statement has rows and false if the statement does not have rows or if an error occurred.

Beispiele

Beispiel #1 sqlsrv_has_rows() example

<?php
$server = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" )
$conn = sqlsrv_connect( $server, $connectionInfo );

$stmt = sqlsrv_query( $conn, "SELECT * FROM Table_1");

if ($stmt) {
   $rows = sqlsrv_has_rows( $stmt );
   if ($rows === true)
      echo "There are rows. <br />";
   else
      echo "There are no rows. <br />";
}
?>

Siehe auch

  • sqlsrv_num_rows() - Retrieves the number of rows in a result set
  • sqlsrv_query() - Prepares and executes a query


Makes the next result of the specified statement active

  • « sqlsrv_has_rows
  • sqlsrv_num_fields »
  • PHP Manual
  • SQLSRV Funktionen
  • Makes the next result of the specified statement active

sqlsrv_next_result

(No version information available, might only be in Git)

sqlsrv_next_result — Makes the next result of the specified statement active

Beschreibung

sqlsrv_next_result ( resource $stmt ) : mixed

Makes the next result of the specified statement active. Results include result sets, row counts, and output parameters.

Parameter-Liste

stmt

The statement on which the next result is being called.

Rückgabewerte

Returns true if the next result was successfully retrieved, false if an error occurred, and null if there are no more results to retrieve.

Beispiele

Beispiel #1 sqlsrv_next_result() example

The following example executes a batch query that inserts into a table and then selects from the table. This produces two results on the statement: one for the rows affected by the INSERT and one for the rows returned by the SELECT. To get to the rows returned by the SELECT, sqlsrv_next_result() must be called to move past the first result.

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array("Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

$query = "INSERT INTO Table_1 (id, data) VALUES (?,?); SELECT * FROM TABLE_1;";
$params = array(1, "some data");
$stmt = sqlsrv_query($conn, $query, $params);

// Consume the first result (rows affected by INSERT) without calling sqlsrv_next_result.
echo "Rows affected: ".sqlsrv_rows_affected($stmt)."<br />";

// Move to the next result and display results.
$next_result = sqlsrv_next_result($stmt);
if( $next_result ) {
   while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)){
      echo $row['id'].": ".$row['data']."<br />";
   }
} elseif( is_null($next_result)) {
     echo "No more results.<br />";
} else {
     die(print_r(sqlsrv_errors(), true));
}
?>

Siehe auch

  • sqlsrv_query() - Prepares and executes a query
  • sqlsrv_fetch_array() - Returns a row as an array
  • sqlsrv_rows_affected() - Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed


Retrieves the number of fields (columns) on a statement

  • « sqlsrv_next_result
  • sqlsrv_num_rows »
  • PHP Manual
  • SQLSRV Funktionen
  • Retrieves the number of fields (columns) on a statement

sqlsrv_num_fields

(No version information available, might only be in Git)

sqlsrv_num_fields — Retrieves the number of fields (columns) on a statement

Beschreibung

sqlsrv_num_fields ( resource $stmt ) : mixed

Retrieves the number of fields (columns) on a statement.

Parameter-Liste

stmt

The statement for which the number of fields is returned. sqlsrv_num_fields() can be called on a statement before or after statement execution.

Rückgabewerte

Returns the number of fields on success. Returns false otherwise.

Beispiele

Beispiel #1 sqlsrv_num_fields() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
   die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT * FROM Table_1";
$stmt = sqlsrv_query($conn, $sql);
if( $stmt === false) {
   die( print_r( sqlsrv_errors(), true));
}

$numFields = sqlsrv_num_fields( $stmt );

while( sqlsrv_fetch( $stmt )) {
   // Iterate through the fields of each row.
   for($i = 0; $i < $numFields; $i++) {
      echo sqlsrv_get_field($stmt, $i)." ";
   }
   echo "<br />";
}
?>

Siehe auch

  • sqlsrv_field_metadata() - Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
  • sqlsrv_fetch() - Makes the next row in a result set available for reading
  • sqlsrv_get_field() - Gets field data from the currently selected row


Retrieves the number of rows in a result set

  • « sqlsrv_num_fields
  • sqlsrv_prepare »
  • PHP Manual
  • SQLSRV Funktionen
  • Retrieves the number of rows in a result set

sqlsrv_num_rows

(No version information available, might only be in Git)

sqlsrv_num_rows — Retrieves the number of rows in a result set

Beschreibung

sqlsrv_num_rows ( resource $stmt ) : mixed

Retrieves the number of rows in a result set. This function requires that the statement resource be created with a static or keyset cursor. For more information, see sqlsrv_query(), sqlsrv_prepare(), or » Specifying a Cursor Type and Selecting Rows in the Microsoft SQLSRV documentation.

Parameter-Liste

stmt

The statement for which the row count is returned. The statement resource must be created with a static or keyset cursor. For more information, see sqlsrv_query(), sqlsrv_prepare(), or » Specifying a Cursor Type and Selecting Rows in the Microsoft SQLSRV documentation.

Rückgabewerte

Returns the number of rows retrieved on success and false if an error occurred. If a forward cursor (the default) or dynamic cursor is used, false is returned.

Beispiele

Beispiel #1 sqlsrv_num_rows() example

<?php
$server = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $server, $connectionInfo );

$sql = "SELECT * FROM Table_1";
$params = array();
$options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmt = sqlsrv_query( $conn, $sql , $params, $options );

$row_count = sqlsrv_num_rows( $stmt );

if ($row_count === false)
   echo "Error in retrieveing row count.";
else
   echo $row_count;
?>

Siehe auch

  • sqlsrv_has_rows() - Indicates whether the specified statement has rows
  • sqlsrv_rows_affected() - Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed


Prepares a query for execution

  • « sqlsrv_num_rows
  • sqlsrv_query »
  • PHP Manual
  • SQLSRV Funktionen
  • Prepares a query for execution

sqlsrv_prepare

(No version information available, might only be in Git)

sqlsrv_prepare — Prepares a query for execution

Beschreibung

sqlsrv_prepare ( resource $conn , string $sql , array $params = ? , array $options = ? ) : mixed

Prepares a query for execution. This function is ideal for preparing a query that will be executed multiple times with different parameter values.

Parameter-Liste

conn

A connection resource returned by sqlsrv_connect().

sql

The string that defines the query to be prepared and executed.

params

An array specifying parameter information when executing a parameterized query. Array elements can be any of the following:

  • A literal value
  • A PHP variable
  • An array with this structure: array($value [, $direction [, $phpType [, $sqlType]]])
The following table describes the elements in the array structure above:

Array structure
Element | Description
$value | A literal value, a PHP variable, or a PHP by-reference variable.
$direction (optional) | One of the following SQLSRV constants used to indicate the parameter direction: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. The default value is SQLSRV_PARAM_IN.
$phpType (optional) | A SQLSRV_PHPTYPE_* constant that specifies PHP data type of the returned value.
$sqlType (optional) | A SQLSRV_SQLTYPE_* constant that specifies the SQL Server data type of the input value.
options

An array specifying query property options. The supported keys are described in the following table:

Query Options
Key | Values | Description
QueryTimeout | A positive integer value. | Sets the query timeout in seconds. By default, the driver will wait indefinitely for results.
SendStreamParamsAtExec | true or false (the default is true) | Configures the driver to send all stream data at execution (true), or to send stream data in chunks (false). By default, the value is set to true. For more information, see sqlsrv_send_stream_data().
Scrollable | SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_STATIC, SQLSRV_CURSOR_DYNAMIC, or SQLSRV_CURSOR_KEYSET | See » Specifying a Cursor Type and Selecting Rows in the Microsoft SQLSRV documentation.

Rückgabewerte

Returns a statement resource on success and false if an error occurred.

Beispiele

Beispiel #1 sqlsrv_prepare() example

This example demonstrates how to prepare a statement with sqlsrv_prepare() and re-execute it multiple times (with different parameter values) using sqlsrv_execute().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1
        SET OrderQty = ?
        WHERE SalesOrderID = ?";

// Initialize parameters and prepare the statement.
// Variables $qty and $id are bound to the statement, $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
    die( print_r( sqlsrv_errors(), true));
}

// Set up the SalesOrderDetailID and OrderQty information.
// This array maps the order ID to order quantity in key=>value pairs.
$orders = array( 1=>10, 2=>20, 3=>30);

// Execute the statement for each order.
foreach( $orders as $id => $qty) {
    // Because $id and $qty are bound to $stmt1, their updated
    // values are used with each execution of the statement.
    if( sqlsrv_execute( $stmt ) === false ) {
          die( print_r( sqlsrv_errors(), true));
    }
}
?>

Anmerkungen

When you prepare a statement that uses variables as parameters, the variables are bound to the statement. This means that if you update the values of the variables, the next time you execute the statement it will run with updated parameter values. For statements that you plan to execute only once, use sqlsrv_query().

Siehe auch

  • sqlsrv_execute() - Executes a statement prepared with sqlsrv_prepare
  • sqlsrv_query() - Prepares and executes a query


Prepares and executes a query

  • « sqlsrv_prepare
  • sqlsrv_rollback »
  • PHP Manual
  • SQLSRV Funktionen
  • Prepares and executes a query

sqlsrv_query

(No version information available, might only be in Git)

sqlsrv_query — Prepares and executes a query

Beschreibung

sqlsrv_query ( resource $conn , string $sql , array $params = ? , array $options = ? ) : mixed

Prepares and executes a query.

Parameter-Liste

conn

A connection resource returned by sqlsrv_connect().

sql

The string that defines the query to be prepared and executed.

params

An array specifying parameter information when executing a parameterized query. Array elements can be any of the following:

  • A literal value
  • A PHP variable
  • An array with this structure: array($value [, $direction [, $phpType [, $sqlType]]])
The following table describes the elements in the array structure above:

Array structure
Element | Description
$value | A literal value, a PHP variable, or a PHP by-reference variable.
$direction (optional) | One of the following SQLSRV constants used to indicate the parameter direction: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. The default value is SQLSRV_PARAM_IN.
$phpType (optional) | A SQLSRV_PHPTYPE_* constant that specifies PHP data type of the returned value.
$sqlType (optional) | A SQLSRV_SQLTYPE_* constant that specifies the SQL Server data type of the input value.
options

An array specifying query property options. The supported keys are described in the following table:

Query Options
Key | Values | Description
QueryTimeout | A positive integer value. | Sets the query timeout in seconds. By default, the driver will wait indefinitely for results.
SendStreamParamsAtExec | true or false (the default is true) | Configures the driver to send all stream data at execution (true), or to send stream data in chunks (false). By default, the value is set to true. For more information, see sqlsrv_send_stream_data().
Scrollable | SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_STATIC, SQLSRV_CURSOR_DYNAMIC, or SQLSRV_CURSOR_KEYSET | See » Specifying a Cursor Type and Selecting Rows in the Microsoft SQLSRV documentation.

Rückgabewerte

Returns a statement resource on success and false if an error occurred.

Beispiele

Beispiel #1 sqlsrv_query() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "INSERT INTO Table_1 (id, data) VALUES (?, ?)";
$params = array(1, "some data");

$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}
?>

Anmerkungen

For statements that you plan to execute only once, use sqlsrv_query(). If you intend to re-execute a statement with different parameter values, use the combination of sqlsrv_prepare() and sqlsrv_execute().

Siehe auch

  • sqlsrv_prepare() - Prepares a query for execution
  • sqlsrv_execute() - Executes a statement prepared with sqlsrv_prepare


Rolls back a transaction that was begun with sqlsrv_begin_transaction

  • « sqlsrv_query
  • sqlsrv_rows_affected »
  • PHP Manual
  • SQLSRV Funktionen
  • Rolls back a transaction that was begun with sqlsrv_begin_transaction

sqlsrv_rollback

(No version information available, might only be in Git)

sqlsrv_rollback — Rolls back a transaction that was begun with sqlsrv_begin_transaction()

Beschreibung

sqlsrv_rollback ( resource $conn ) : bool

Rolls back a transaction that was begun with sqlsrv_begin_transaction() and returns the connection to auto-commit mode.

Parameter-Liste

conn

The connection resource returned by a call to sqlsrv_connect().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 sqlsrv_rollback() example

The following example demonstrates how to use sqlsrv_begin_transaction() together with sqlsrv_commit() and sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}

/* Begin the transaction. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* Initialize parameter values. */
$orderId = 1; $qty = 10; $productId = 100;

/* Set up and execute the first query. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
         VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Set up and execute the second query. */
$sql2 = "UPDATE InventoryTable
         SET Quantity = (Quantity - ?)
         WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* If both queries were successful, commit the transaction. */
/* Otherwise, rollback the transaction. */
if( $stmt1 && $stmt2 ) {
     sqlsrv_commit( $conn );
     echo "Transaction committed.<br />";
} else {
     sqlsrv_rollback( $conn );
     echo "Transaction rolled back.<br />";
}
?>

Siehe auch

  • sqlsrv_begin_transaction() - Begins a database transaction
  • sqlsrv_commit() - Commits a transaction that was begun with sqlsrv_begin_transaction


Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed

  • « sqlsrv_rollback
  • sqlsrv_send_stream_data »
  • PHP Manual
  • SQLSRV Funktionen
  • Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed

sqlsrv_rows_affected

(No version information available, might only be in Git)

sqlsrv_rows_affected — Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed

Beschreibung

sqlsrv_rows_affected ( resource $stmt ) : int

Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed. For information about the number of rows returned by a SELECT query, see sqlsrv_num_rows().

Parameter-Liste

stmt

The executed statement resource for which the number of affected rows is returned.

Rückgabewerte

Returns the number of rows affected by the last INSERT, UPDATE, or DELETE query. If no rows were affected, 0 is returned. If the number of affected rows cannot be determined, -1 is returned. If an error occurred, false is returned.

Beispiele

Beispiel #1 sqlsrv_rows_affected() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1 SET data = ? WHERE id = ?";

$params = array("updated data", 1);

$stmt = sqlsrv_query( $conn, $sql, $params);

$rows_affected = sqlsrv_rows_affected( $stmt);
if( $rows_affected === false) {
     die( print_r( sqlsrv_errors(), true));
} elseif( $rows_affected == -1) {
      echo "No information available.<br />";
} else {
      echo $rows_affected." rows were updated.<br />";
}
?>

Siehe auch

  • sqlsrv_num_rows() - Retrieves the number of rows in a result set


Sends data from parameter streams to the server

  • « sqlsrv_rows_affected
  • sqlsrv_server_info »
  • PHP Manual
  • SQLSRV Funktionen
  • Sends data from parameter streams to the server

sqlsrv_send_stream_data

(No version information available, might only be in Git)

sqlsrv_send_stream_data — Sends data from parameter streams to the server

Beschreibung

sqlsrv_send_stream_data ( resource $stmt ) : bool

Send data from parameter streams to the server. Up to 8 KB of data is sent with each call.

Parameter-Liste

stmt

A statement resource returned by sqlsrv_query() or sqlsrv_execute().

Rückgabewerte

Returns true if there is more data to send and false if there is not.

Beispiele

Beispiel #1 sqlsrv_send_stream_data() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1 SET data = ( ?) WHERE id = 100";

// Open parameter data as a stream and put it in the $params array.
$data = fopen( "data://text/plain,[ Lengthy content here. ]", "r");
$params = array( &$data);

// Prepare the statement. Use the $options array to turn off the
// default behavior, which is to send all stream data at the time of query
// execution.
$options = array("SendStreamParamsAtExec"=>0);
$stmt = sqlsrv_prepare( $conn, $sql, $params, $options);

sqlsrv_execute( $stmt);

// Send up to 8K of parameter data to the server
// with each call to sqlsrv_send_stream_data.
$i = 1;
while( sqlsrv_send_stream_data( $stmt)) {
      $i++;
}
echo "$i calls were made.";
?>

Siehe auch

  • sqlsrv_prepare() - Prepares a query for execution
  • sqlsrv_query() - Prepares and executes a query


Returns information about the server

  • « sqlsrv_send_stream_data
  • tokyo_tyrant »
  • PHP Manual
  • SQLSRV Funktionen
  • Returns information about the server

sqlsrv_server_info

(No version information available, might only be in Git)

sqlsrv_server_info — Returns information about the server

Beschreibung

sqlsrv_server_info ( resource $conn ) : array

Returns information about the server.

Parameter-Liste

conn

The connection resource that connects the client and the server.

Rückgabewerte

Returns an array as described in the following table:

Returned Array
CurrentDatabase | The connected-to database.
SQLServerVersion | The SQL Server version.
SQLServerName | The name of the server.

Beispiele

Beispiel #1 sqlsrv_server_info() example

<?php
$serverName = "serverName\sqlexpress";
$conn = sqlsrv_connect( $serverName);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$server_info = sqlsrv_server_info( $conn);
if( $server_info )
{
    foreach( $server_info as $key => $value) {
       echo $key.": ".$value."<br />";
    }
} else {
      die( print_r( sqlsrv_errors(), true));
}
?>

Siehe auch

  • sqlsrv_client_info() - Returns information about the client and specified connection


tokyo_tyrant

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • TokyoTyrant — The TokyoTyrant class
    • TokyoTyrant::add — Adds to a numeric key
    • TokyoTyrant::connect — Connect to a database
    • TokyoTyrant::connectUri — Connects to a database
    • TokyoTyrant::__construct — Construct a new TokyoTyrant object
    • TokyoTyrant::copy — Copies the database
    • TokyoTyrant::ext — Execute a remote script
    • TokyoTyrant::fwmKeys — Returns the forward matching keys
    • TokyoTyrant::get — The get purpose
    • TokyoTyrant::getIterator — Get an iterator
    • TokyoTyrant::num — Number of records in the database
    • TokyoTyrant::out — Removes records
    • TokyoTyrant::put — Puts values
    • TokyoTyrant::putCat — Concatenates to a record
    • TokyoTyrant::putKeep — Puts a record
    • TokyoTyrant::putNr — Puts value
    • TokyoTyrant::putShl — Concatenates to a record
    • TokyoTyrant::restore — Restore the database
    • TokyoTyrant::setMaster — Set the replication master
    • TokyoTyrant::size — Returns the size of the value
    • TokyoTyrant::stat — Get statistics
    • TokyoTyrant::sync — Synchronize the database
    • TokyoTyrant::tune — Tunes connection values
    • TokyoTyrant::vanish — Empties the database
  • TokyoTyrantTable — The TokyoTyrantTable class
    • TokyoTyrantTable::add — Adds a record
    • TokyoTyrantTable::genUid — Generate unique id
    • TokyoTyrantTable::get — Get a row
    • TokyoTyrantTable::getIterator — Get an iterator
    • TokyoTyrantTable::getQuery — Get a query object
    • TokyoTyrantTable::out — Remove records
    • TokyoTyrantTable::put — Store a row
    • TokyoTyrantTable::putCat — Concatenates to a row
    • TokyoTyrantTable::putKeep — Put a new record
    • TokyoTyrantTable::putNr — Puts value
    • TokyoTyrantTable::putShl — Concatenates to a record
    • TokyoTyrantTable::setIndex — Sets index
  • TokyoTyrantQuery — The TokyoTyrantQuery class
    • TokyoTyrantQuery::addCond — Adds a condition to the query
    • TokyoTyrantQuery::__construct — Construct a new query
    • TokyoTyrantQuery::count — Counts records
    • TokyoTyrantQuery::current — Returns the current element
    • TokyoTyrantQuery::hint — Get the hint string of the query
    • TokyoTyrantQuery::key — Returns the current key
    • TokyoTyrantQuery::metaSearch — Retrieve records with multiple queries
    • TokyoTyrantQuery::next — Moves the iterator to next entry
    • TokyoTyrantQuery::out — Removes records based on query
    • TokyoTyrantQuery::rewind — Rewinds the iterator
    • TokyoTyrantQuery::search — Searches records
    • TokyoTyrantQuery::setLimit — Limit results
    • TokyoTyrantQuery::setOrder — Orders results
    • TokyoTyrantQuery::valid — Checks the validity of current item
  • TokyoTyrantIterator — The TokyoTyrantIterator class
    • TokyoTyrantIterator::__construct — Construct an iterator
    • TokyoTyrantIterator::current — Get the current value
    • TokyoTyrantIterator::key — Returns the current key
    • TokyoTyrantIterator::next — Move to next key
    • TokyoTyrantIterator::rewind — Rewinds the iterator
    • TokyoTyrantIterator::valid — Rewinds the iterator
  • TokyoTyrantException — The TokyoTyrantException class


Einführung

tokyo_tyrant extension provides a wrapper for Tokyo Tyrant client libraries. The extension contains the normal key-value API and the table API.

"Tokyo Tyrant is a package of network interface to the DBM called Tokyo Cabinet. Though the DBM has high performance, you might bother in case that multiple processes share the same database, or remote processes access the database. Thus, Tokyo Tyrant is provided for concurrent and remote connections to Tokyo Cabinet. It is composed of the server process managing a database and its access library for client applications." --Tokyo Tyrant documentation

Tokyo Tyrant is written by Mikio Hirabayashi and is licensed under GNU Lesser General Public License.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

Before using this extension Tokyo Cabinet and Tokyo Tyrant must be installed.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/tokyo_tyrant

Configure options

  • --with-tokyo-tyrant[=DIR] DIR is the prefix to the Tokyo Tyrant installation
  • --with-tokyo-cabinet-dir[=DIR] DIR is the prefix to the Tokyo Cabinet installation
  • --disable-tokyo-tyrant-session Disable Tokyo Tyrant session handler support

Enabling the extension

The extension can be enabled by adding extension=tokyo_tyrant.so to the INI-configuration

Running Tokyo Tyrant for the session handler

ttserver -port 2000 -ext /path/to/expire.lua -extpc expire 30.0 '/tmp/sessions.tct#idx=ts:dec'

Hinweis: expire.lua is included in the tokyo_tyrant extension source distribution

Configuring session handler

  • tokyo_tyrant.session_salt="randomlongstring"
  • session.save_handler=tokyo_tyrant
  • session.save_path="tcp://hostname1:2000,tcp://hostname2:2000"

Hinweis: It is important to make sure that tokyo_tyrant.session_salt matches on all servers.

How it works?

The session handler creates a session id like the following: 8b0e27a823fa4a6cf7246945b82c1d51-a5eadbbed1f2075952900628456bfd6830541629-0-5460

The parts from left to right:

  • Session id - Generated session id
  • Checksum - Checksum of session salt, session id, node id and primary key
  • Node id - The id of the node where the session maps to
  • Primary key - The primary key of the row where the session is stored

The checksum contains SHA1 sum of the node id, primary key, session id and the salt which is known only on the server side. This allows quick mapping of session id to node and primary key since there is no need to do an additional search. During session id regeneration only the parts 1 and 2 change but the mapping to the node and primary key stays constant.

In case some of the nodes fail tokyo_tyrant.allow_failover, tokyo_tyrant.fail_threshold and tokyo_tyrant.health_check_divisor INI-settings control the behavior during failover. If failover is allowed the session handler will map the session to a healthy node and creates a new empty session.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

tokyo_tyrant Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
tokyo_tyrant.default_timeout | 2.0 | PHP_INI_ALL |
tokyo_tyrant.session_salt | null | PHP_INI_ALL |
tokyo_tyrant.key_prefix | null | PHP_INI_ALL |
tokyo_tyrant.allow_failover | 1 | PHP_INI_ALL |
tokyo_tyrant.fail_threshold | 5 | PHP_INI_ALL |
tokyo_tyrant.health_check_divisor | 1000 | PHP_INI_ALL |
tokyo_tyrant.php_expiration | 0 | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

tokyo_tyrant.default_timeout int

Default timeout when connecting to databases

tokyo_tyrant.session_salt string

The secret that is used to salt session id

tokyo_tyrant.key_prefix string

Prefix all keys with this string. The prefix is transparent to the developer but helps making sure that keys won't collide if multiple applications are using the same database.

tokyo_tyrant.allow_failover int

Whether to allow session failover in case a server dies.

tokyo_tyrant.fail_threshold int

How many read/write or connection failures is allowed before server is marked as failed.

tokyo_tyrant.health_check_divisor int

Defines the divisor for the health check probability. If there are failed servers and the probability matches, the servers are health checked and in case the server seems healthy, it will be added back to the pool.

tokyo_tyrant.php_expiration int

Whether to use built in session expiration mechanism or delegate the expiration to a lua-script on the server-side.


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • tokyo_tyrant
  • Vordefinierte Konstanten

Vordefinierte Konstanten

TokyoTyrant constants


Beispiele

Basic usage

Beispiel #1 Putting and getting a key-value pair

<?php
$tt = new TokyoTyrant("localhost");
$tt->put("key", "value");
echo $tt->get("key");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

value


The TokyoTyrant class

(PECL tokyo_tyrant >= 0.1.0)

Einführung

The main Tokyo Tyrant class

Klassenbeschreibung

TokyoTyrant {
/* Konstanten */
const int RDBDEF_PORT = 1978 ;
const int RDBQC_STREQ = 0 ;
const int RDBQC_STRINC = 1 ;
const int RDBQC_STRBW = 2 ;
const int RDBQC_STREW = 3 ;
const int RDBQC_STRAND = 4 ;
const int RDBQC_STROR = 5 ;
const int RDBQC_STROREQ = 6 ;
const int RDBQC_STRRX = 7 ;
const int RDBQC_NUMEQ = 8 ;
const int RDBQC_NUMGT = 9 ;
const int RDBQC_NUMGE = 10 ;
const int RDBQC_NUMLT = 11 ;
const int RDBQC_NUMLE = 12 ;
const int RDBQC_NUMBT = 13 ;
const int RDBQC_NUMOREQ = 14 ;
const int RDBQC_NEGATE = 16777216 ;
const int RDBQC_NOIDX = 33554432 ;
const int RDBQO_STRASC = 0 ;
const int RDBQO_STRDESC = 1 ;
const int RDBQO_NUMASC = 2 ;
const int RDBQO_NUMDESC = 3 ;
const int RDBIT_LEXICAL = 0 ;
const int RDBIT_DECIMAL = 1 ;
const int RDBIT_TOKEN = 2 ;
const int RDBIT_QGRAM = 3 ;
const int RDBIT_OPT = 9998 ;
const int RDBIT_VOID = 9999 ;
const int RDBIT_KEEP = 16777216 ;
const int RDBQCFTS_PH = 15 ;
const int RDBQCFTS_AND = 16 ;
const int RDBQCFTS_OR = 17 ;
const int RDBQCFTS_EX = 18 ;
const int RDBXO_LCKREC = 1 ;
const int RDBXOLCK_GLB = 2 ;
const int RDBREC_INT = 1 ;
const int RDBREC_DBL = 2 ;
const int RDBMS_UNION = 0 ;
const int RDBMS_ISECT = 1 ;
const int RDBMS_DIFF = 2 ;
const int RDBT_RECON = 1 ;
/* Methoden */
public add ( string $key , int|float $increment , int $type = 0 ) : int|float
public connect ( string $host , int $port = TokyoTyrant::RDBDEF_PORT , array $options = ? ) : TokyoTyrant
public connectUri ( string $uri ) : TokyoTyrant
public __construct ( string $host = ? , int $port = TokyoTyrant::RDBDEF_PORT , array $options = ? )
public copy ( string $path ) : TokyoTyrant
public ext ( string $name , int $options , string $key , string $value ) : string
public fwmKeys ( string $prefix , int $max_recs ) : array
public get ( mixed $keys ) : mixed
public getIterator ( ) : TokyoTyrantIterator
public num ( ) : int
public out ( mixed $keys ) : TokyoTyrant
public put ( mixed $keys , string $value = NULL ) : TokyoTyrant
public putCat ( mixed $keys , string $value = ? ) : TokyoTyrant
public putKeep ( mixed $keys , string $value = ? ) : TokyoTyrant
public putNr ( mixed $keys , string $value = NULL ) : TokyoTyrant
public putShl ( string $key , string $value , int $width ) : mixed
public restore ( string $log_dir , int $timestamp , bool $check_consistency = true ) : mixed
public setMaster ( string $host , int $port , int $timestamp , bool $check_consistency = true ) : mixed
public size ( string $key ) : int
public stat ( ) : array
public sync ( ) : mixed
public tune ( float $timeout , int $options = TokyoTyrant::RDBT_RECON ) : TokyoTyrant
public vanish ( ) : mixed
}

Vordefinierte Konstanten

TokyoTyrant Constants

TokyoTyrant::RDBDEF_PORT

The default port of the Tokyo Tyrant database

TokyoTyrant::RDBQC_STREQ

string is equal to

TokyoTyrant::RDBQC_STRINC

string is included in

TokyoTyrant::RDBQC_STRBW

string begins with

TokyoTyrant::RDBQC_STREW

string ends with

TokyoTyrant::RDBQC_STRAND

string includes all tokens in

TokyoTyrant::RDBQC_STROR

string includes at least one token in

TokyoTyrant::RDBQC_STROREQ

string is equal to at least one token in

TokyoTyrant::RDBQC_STRRX

string matches regular expressions of

TokyoTyrant::RDBQC_NUMEQ

number is equal to

TokyoTyrant::RDBQC_NUMGT

number is greater than

TokyoTyrant::RDBQC_NUMGE

number is greater than or equal to

TokyoTyrant::RDBQC_NUMLT

number is less than

TokyoTyrant::RDBQC_NUMLE

number is less than or equal to

TokyoTyrant::RDBQC_NUMBT

number is between two tokens of

TokyoTyrant::RDBQC_NUMOREQ

number is equal to at least one token in

TokyoTyrant::RDBQC_NEGATE

negation flag

TokyoTyrant::RDBQC_NOIDX

no index flag

TokyoTyrant::RDBQO_STRASC

string ascending

TokyoTyrant::RDBQO_STRDESC

string descending

TokyoTyrant::RDBQO_NUMASC

number ascending

TokyoTyrant::RDBQO_NUMDESC

number descending

TokyoTyrant::RDBIT_LEXICAL

lexical string

TokyoTyrant::RDBIT_DECIMAL

decimal string

TokyoTyrant::RDBIT_TOKEN

token inverted index (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBIT_QGRAM

QGRAM inverted index (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBIT_OPT

optimize

TokyoTyrant::RDBIT_VOID

void

TokyoTyrant::RDBIT_KEEP

keep existing index

TokyoTyrant::RDBQCFTS_PH

full-text search with the phrase of (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_AND

full-text search with all tokens in (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_OR

full-text search with at least one token in (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_EX

full-text search with the compound expression of (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_AND

Metasearch union between records (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBQCFTS_OR

Metasearch intersection between records (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBQCFTS_EX

Metasearch difference between records (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBT_RECON

Whether to reconnect on connection failure. It is recommended to have this parameter on for persistent connections

TokyoTyrant::RDBXOLCK_REC

record locking

TokyoTyrant::RDBXOLCK_GLB

global locking

TokyoTyrant::RDBREC_INT

record type int

TokyoTyrant::RDBREC_DBL

record type float (double)

TokyoTyrant::TTE_SUCCESS

success

TokyoTyrant::TTE_INVALID

invalid operation

TokyoTyrant::TTE_NOHOST

host not found

TokyoTyrant::TTE_REFUSED

connection refused

TokyoTyrant::TTE_SEND

send error

TokyoTyrant::TTE_RECV

recv error

TokyoTyrant::TTE_KEEP

record exist

TokyoTyrant::TTE_NOREC

no record found

TokyoTyrant::TTE_MISC

miscellaneous error

Inhaltsverzeichnis

  • TokyoTyrant::add — Adds to a numeric key
  • TokyoTyrant::connect — Connect to a database
  • TokyoTyrant::connectUri — Connects to a database
  • TokyoTyrant::__construct — Construct a new TokyoTyrant object
  • TokyoTyrant::copy — Copies the database
  • TokyoTyrant::ext — Execute a remote script
  • TokyoTyrant::fwmKeys — Returns the forward matching keys
  • TokyoTyrant::get — The get purpose
  • TokyoTyrant::getIterator — Get an iterator
  • TokyoTyrant::num — Number of records in the database
  • TokyoTyrant::out — Removes records
  • TokyoTyrant::put — Puts values
  • TokyoTyrant::putCat — Concatenates to a record
  • TokyoTyrant::putKeep — Puts a record
  • TokyoTyrant::putNr — Puts value
  • TokyoTyrant::putShl — Concatenates to a record
  • TokyoTyrant::restore — Restore the database
  • TokyoTyrant::setMaster — Set the replication master
  • TokyoTyrant::size — Returns the size of the value
  • TokyoTyrant::stat — Get statistics
  • TokyoTyrant::sync — Synchronize the database
  • TokyoTyrant::tune — Tunes connection values
  • TokyoTyrant::vanish — Empties the database


Adds to a numeric key

  • « TokyoTyrant
  • TokyoTyrant::connect »
  • PHP Manual
  • TokyoTyrant
  • Adds to a numeric key

TokyoTyrant::add

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::add — Adds to a numeric key

Beschreibung

public TokyoTyrant::add ( string $key , int|float $increment , int $type = 0 ) : int|float

Adds to an int or double value. This increments the value by the given amount and returns the new value. If the key does not exist a new key is created with initial value of the increment parameter.

Parameter-Liste

key

The string key

increment

The amount to increment

type

TokyoTyrant::RDBREC_INT or TokyoTyrant::RDBREC_DBL constant. If this parameter is omitted the type is guessed from the increment parameters type.

Rückgabewerte

Returns the new value on success

Beispiele

Beispiel #1 TokyoTyrant::add() example

<?php
$tt = new TokyoTyrant("localhost", TokyoTyrant::RDBDEF_PORT);
/* Adds integer 3 to key and creates a new key */
$tt->add("test", 3);

/* String value is converted to double */
echo $tt->add("test", "3.5", TokyoTyrant::RDBREC_DBL);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

6.5

Siehe auch

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putcat() - Concatenates to a record
  • TokyoTyrant::putkeep() - Puts a record


Connect to a database

  • « TokyoTyrant::add
  • TokyoTyrant::connectUri »
  • PHP Manual
  • TokyoTyrant
  • Connect to a database

TokyoTyrant::connect

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::connect — Connect to a database

Beschreibung

public TokyoTyrant::connect ( string $host , int $port = TokyoTyrant::RDBDEF_PORT , array $options = ? ) : TokyoTyrant

Connects to a remote database

Parameter-Liste

host

The hostname

port

The port. Default: 1978

options

Connection options: timeout (default: 5.0), reconnect (default: true) and persistent (default: true)

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrant::connect() example

<?php
$tt = new TokyoTyrant();
$tt->connect("localhost", TokyoTyrant::RDBDEF_PORT)->put("test", "value");
?>

Siehe auch

  • TokyoTyrant::connectUri() - Connects to a database


Connects to a database

  • « TokyoTyrant::connect
  • TokyoTyrant::__construct »
  • PHP Manual
  • TokyoTyrant
  • Connects to a database

TokyoTyrant::connectUri

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::connectUri — Connects to a database

Beschreibung

public TokyoTyrant::connectUri ( string $uri ) : TokyoTyrant

Connects to a database using an uri

Parameter-Liste

uri

An URI to the database. For example tcp://localhost:1979/

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrant::connectUri() example

<?php
$tt = new TokyoTyrant();
$tt->connectUri("tcp://localhost:1978/")->put("test", "hi");
?>

Siehe auch

  • TokyoTyrant::connect() - Connect to a database


Construct a new TokyoTyrant object

  • « TokyoTyrant::connectUri
  • TokyoTyrant::copy »
  • PHP Manual
  • TokyoTyrant
  • Construct a new TokyoTyrant object

TokyoTyrant::__construct

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::__construct — Construct a new TokyoTyrant object

Beschreibung

public TokyoTyrant::__construct ( string $host = ? , int $port = TokyoTyrant::RDBDEF_PORT , array $options = ? )

Constructs a new TokyoTyrant object and optionally connects to the database

Parameter-Liste

host

The hostname. Default: null

port

port number. Default: 1978

options

Connection options: timeout (default: 5.0), reconnect (default: true) and persistent (default: true)

Rückgabewerte

Throws TokyoTyrantException if connection to database fails

Siehe auch

  • TokyoTyrant::connect() - Connect to a database
  • TokyoTyrant::connectUri() - Connects to a database


Copies the database

  • « TokyoTyrant::__construct
  • TokyoTyrant::ext »
  • PHP Manual
  • TokyoTyrant
  • Copies the database

TokyoTyrant::copy

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::copy — Copies the database

Beschreibung

public TokyoTyrant::copy ( string $path ) : TokyoTyrant

Makes a copy of the current database

Parameter-Liste

path

Path to where to copy the database. The user running the remote database must have a write access to the directory.

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrant::copy() example

<?php
$tt = new TokyoTyrant("localhost", 1978);
$tt->copy("/tmp/foobar.tct");
?>

Siehe auch

  • TokyoTyrant::restore() - Restore the database


Execute a remote script

  • « TokyoTyrant::copy
  • TokyoTyrant::fwmKeys »
  • PHP Manual
  • TokyoTyrant
  • Execute a remote script

TokyoTyrant::ext

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::ext — Execute a remote script

Beschreibung

public TokyoTyrant::ext ( string $name , int $options , string $key , string $value ) : string

Executes a remote script extension.

Parameter-Liste

name

Name of the function to execute

options

Either TokyoTyrant::RDBXO_LCKREC for record locking and TokyoTyrant::RDBXO_LCKGLB for global locking.

key

The key to pass to the function

value

The value to pass to the function

Rückgabewerte

Returns the result of the script function

Beispiele

Beispiel #1 TokyoTyrant::ext() example

<?php
$tt = new TokyoTyrant("localhost", 1978);
echo $tt->ext("somefunc", TokyoTyrant::RDBXO_LCKREC, "some_key", "some_value");
?>


Returns the forward matching keys

  • « TokyoTyrant::ext
  • TokyoTyrant::get »
  • PHP Manual
  • TokyoTyrant
  • Returns the forward matching keys

TokyoTyrant::fwmKeys

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::fwmKeys — Returns the forward matching keys

Beschreibung

public TokyoTyrant::fwmKeys ( string $prefix , int $max_recs ) : array

Returns the forward matching keys from the database

Parameter-Liste

prefix

Prefix of the keys

max_recs

Maximum records to return

Rückgabewerte

Returns an array of matching keys. The values are not returned

Beispiele

Beispiel #1 TokyoTyrant::fwmKeys() example

<?php

$tt = new TokyoTyrant("localhost");

/* Create 20 macthing keys */
for ($i = 0; $i < 20; $i++) {
    $tt->put("key_" . $i, "value_" . $i);
}

/* Create 20 non-macthing keys */
for ($i = 0; $i < 20; $i++) {
    $tt->put("something_" . $i, "data_" . $i);
}

/* Get five matching keys */
var_dump($tt->fwmKeys("key_", 5));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(5) {
  [0]=>
  string(5) "key_5"
  [1]=>
  string(6) "key_14"
  [2]=>
  string(5) "key_6"
  [3]=>
  string(6) "key_15"
  [4]=>
  string(5) "key_7"
}


The get purpose

  • « TokyoTyrant::fwmKeys
  • TokyoTyrant::getIterator »
  • PHP Manual
  • TokyoTyrant
  • The get purpose

TokyoTyrant::get

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::get — The get purpose

Beschreibung

public TokyoTyrant::get ( mixed $keys ) : mixed

This method is used to return a value or multiple values. This method accepts a string or an array as a value.

Parameter-Liste

keys

A string key or an array of string keys

Rückgabewerte

Returns a string or an array based on the given parameters. Throws a TokyoTyrantException on error. If string is passed null is returned if the key is not found. In case an array is given as an parameter only existing keys will be returned. It is not an error to pass a key that does not exist.

Beispiele

Beispiel #1 TokyoTyrant::get() example

<?php
$tt = new TokyoTyrant("localhost", 1978);
$tt->put("key1", "value1");
$tt->put("key2", "value2");
var_dump($tt->get(array("key1", "key2")));
var_dump($tt->get("key1"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key2"]=>
  string(6) "value2"
}
string(6) "value1"

Siehe auch

  • TokyoTyrant::put() - Puts values


Get an iterator

  • « TokyoTyrant::get
  • TokyoTyrant::num »
  • PHP Manual
  • TokyoTyrant
  • Get an iterator

TokyoTyrant::getIterator

(No version information available, might only be in Git)

TokyoTyrant::getIterator — Get an iterator

Beschreibung

public TokyoTyrant::getIterator ( ) : TokyoTyrantIterator

Gets an iterator for iterating all keys / values in the database.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This method returns TokyoTyrantIterator object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrant::getIterator() example

<?php
$tt = new TokyoTyrant("localhost");
$it = $tt->getIterator();

foreach ($it as $k => $v) {

}
?>

Siehe auch

  • TokyoTyrantTable::getQuery() - Get a query object
  • TokyoTyrantTable::getIterator() - Get an iterator


Number of records in the database

  • « TokyoTyrant::getIterator
  • TokyoTyrant::out »
  • PHP Manual
  • TokyoTyrant
  • Number of records in the database

TokyoTyrant::num

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::num — Number of records in the database

Beschreibung

public TokyoTyrant::num ( ) : int

Returns the number of records in the database

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns number of records in the database

Beispiele

Beispiel #1 TokyoTyrant::num() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Echo the number of records */
echo $tt->num();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1234

Siehe auch

  • TokyoTyrant::stat() - Get statistics


Removes records

  • « TokyoTyrant::num
  • TokyoTyrant::put »
  • PHP Manual
  • TokyoTyrant
  • Removes records

TokyoTyrant::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::out — Removes records

Beschreibung

public TokyoTyrant::out ( mixed $keys ) : TokyoTyrant

Removes a record or multiple records. This method accepts a string for a single key or an array of keys for multiple records.

Parameter-Liste

keys

A string key or an array of string keys

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrant::out() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

$tt->put("test1", "value1");
$tt->put("test2", "value2");

$tt->out(array("test1", "test2"));
?>

Siehe auch

  • TokyoTyrant::put() - Puts values


Puts values

  • « TokyoTyrant::out
  • TokyoTyrant::putCat »
  • PHP Manual
  • TokyoTyrant
  • Puts values

TokyoTyrant::put

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::put — Puts values

Beschreibung

public TokyoTyrant::put ( mixed $keys , string $value = NULL ) : TokyoTyrant

Puts a key-value pair into the database or multiple key-value pairs. If keys is string then the second parameter value defines the value. The second parameter is mandatory if keys is a string. If the key exists the value will be replaced with new value.

Parameter-Liste

keys

A string key or an array of key-value pairs

value

The value in case a string key is used

Rückgabewerte

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrant::put() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Put single key-value pair */
$tt->put("key", "value");

/* Put key-value pairs, new value overwrites the old */
$tt->put(array("key1" => "value1", "key" => "value2"));

/* Get back one key */
echo $tt->get("key");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

value2

Siehe auch

  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record


Concatenates to a record

  • « TokyoTyrant::put
  • TokyoTyrant::putKeep »
  • PHP Manual
  • TokyoTyrant
  • Concatenates to a record

TokyoTyrant::putCat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putCat — Concatenates to a record

Beschreibung

public TokyoTyrant::putCat ( mixed $keys , string $value = ? ) : TokyoTyrant

Appends a value into existing key or multiple values if keys is an array. The second parameter is mandatory if keys is a string. If the record does not exist a new record is created.

Parameter-Liste

keys

A string key or an array of key-value pairs

value

The value in case a string key is used

Rückgabewerte

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrant::putCat() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Create a new key */
$tt->put("key", "value");

/* Concatenate single key-value pair */
$tt->putCat("key", " has more data");

/* Echo the key */
echo $tt->get("key");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

value has more data

Siehe auch

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putKeep() - Puts a record


Puts a record

  • « TokyoTyrant::putCat
  • TokyoTyrant::putNr »
  • PHP Manual
  • TokyoTyrant
  • Puts a record

TokyoTyrant::putKeep

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putKeep — Puts a record

Beschreibung

public TokyoTyrant::putKeep ( mixed $keys , string $value = ? ) : TokyoTyrant

Puts a key-value pair into the database or multiple key-value pairs. If keys is string then the second parameter value defines the value. The second parameter is mandatory if keys is a string. If the key already exists this method throws an exception indicating that the records exists.

Parameter-Liste

keys

A string key or an array of key-value pairs

value

The string value

Rückgabewerte

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 tokyotyrant::putKeep() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Create a new key */
$tt->put("key", "value");

try {
    $tt->putKeep("key", "new value");
} catch (TokyoTyrantException $e) {
    if ($e->getCode() === TokyoTyrant::TTE_KEEP) {
        echo "Existing record! Not modified\n";
    } else {
        echo "Error: " , $e->getMessage() , "\n";
    }
}
echo $tt->get("key");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Existing record! Not modified
value

Siehe auch

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putCat() - Concatenates to a record


Puts value

  • « TokyoTyrant::putKeep
  • TokyoTyrant::putShl »
  • PHP Manual
  • TokyoTyrant
  • Puts value

TokyoTyrant::putNr

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putNr — Puts value

Beschreibung

public TokyoTyrant::putNr ( mixed $keys , string $value = NULL ) : TokyoTyrant

Puts a key-value pair into the database or multiple key-value pairs. If keys is string then the second parameter value defines the value. The second parameter is mandatory if keys is a string. This method does not wait for the response from the server.

Parameter-Liste

keys

A string key or an array of key-value pairs

value

The value in case a string key is used

Rückgabewerte

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrant::putNr() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Put single key-value pair */
$tt->putNr("key", "value");

/* Put key-value pairs */
$tt->putNr(array("key1" => "value1", "key2" => "value2"));

/* Get back one key */
echo $tt->get("key1");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

value1

Siehe auch

  • TokyoTyrant::putNr()
  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record


Concatenates to a record

  • « TokyoTyrant::putNr
  • TokyoTyrant::restore »
  • PHP Manual
  • TokyoTyrant
  • Concatenates to a record

TokyoTyrant::putShl

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putShl — Concatenates to a record

Beschreibung

public TokyoTyrant::putShl ( string $key , string $value , int $width ) : mixed

Concatenate to a record and shift to left.

Parameter-Liste

key

A string key

value

The value to concatenate

width

The width of the record

Rückgabewerte

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrant::putShl() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Create a new key */
$tt->put("key", "just a long piece of data");

/* Concatenate and shift to left */
$tt->putShl("key", " and string", 15);

/* Echo the key */
echo $tt->get("key");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

data and string

Siehe auch

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record


Restore the database

  • « TokyoTyrant::putShl
  • TokyoTyrant::setMaster »
  • PHP Manual
  • TokyoTyrant
  • Restore the database

TokyoTyrant::restore

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::restore — Restore the database

Beschreibung

public TokyoTyrant::restore ( string $log_dir , int $timestamp , bool $check_consistency = true ) : mixed

Restore the database from the update log.

Warnung

This method is not supported on 32bit platforms.

Parameter-Liste

log_dir

Directory where the log is

timestamp

Beginning timestamp with microseconds

check_consistency

Whether to check consistency: Default: true

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.


Set the replication master

  • « TokyoTyrant::restore
  • TokyoTyrant::size »
  • PHP Manual
  • TokyoTyrant
  • Set the replication master

TokyoTyrant::setMaster

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::setMaster — Set the replication master

Beschreibung

public TokyoTyrant::setMaster ( string $host , int $port , int $timestamp , bool $check_consistency = true ) : mixed

Sets the replication master of the database

Warnung

This method is not supported on 32bit platforms.

Parameter-Liste

host

Hostname of the replication master. If null the replication is disabled.

port

Port of the replication master

timestamp

Beginning timestamp with microseconds

check_consistency

Whether to check consistency.

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrant::setMaster() example

<?php
/* Connect to a database */
$tt = new TokyoTyrant("tokyotyrant.example.com");

/* Disable the replication */
$tt->setMaster(NULL, 0, 0);
?>

Siehe auch

  • Classname::Method()


Returns the size of the value

  • « TokyoTyrant::setMaster
  • TokyoTyrant::stat »
  • PHP Manual
  • TokyoTyrant
  • Returns the size of the value

TokyoTyrant::size

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::size — Returns the size of the value

Beschreibung

public TokyoTyrant::size ( string $key ) : int

Returns the size of a value by key

Parameter-Liste

key

The key of which size to fetch

Rückgabewerte

Returns the size of the key or throw TokyoTyrantException on error

Beispiele

Beispiel #1 TokyoTyrant::size() example

<?php
$tt = new TokyoTyrant("localhost");

$tt->put("test_key", "12345");

echo $tt->size("test_key");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

5


Get statistics

  • « TokyoTyrant::size
  • TokyoTyrant::sync »
  • PHP Manual
  • TokyoTyrant
  • Get statistics

TokyoTyrant::stat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::stat — Get statistics

Beschreibung

public TokyoTyrant::stat ( ) : array

Returns statistics of the remote database

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array of key value pairs describing the statistics

Beispiele

Beispiel #1 TokyoTyrant::stat() example

<?php
$tt = new TokyoTyrant("localhost");

var_dump($tt->stat());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(19) {
  ["version"]=>
  string(6) "1.1.28"
  ["libver"]=>
  string(3) "311"
  ["protver"]=>
  string(4) "0.91"
  ["os"]=>
  string(5) "Linux"
  ["time"]=>
  string(17) "1247358357.665630"
  ["pid"]=>
  string(5) "14348"
  ["sid"]=>
  string(8) "59025947"
  ["type"]=>
  string(9) "on-memory"
  ["path"]=>
  string(1) "*"
  ["rnum"]=>
  string(1) "4"
  ["size"]=>
  string(6) "262856"
  ["bigend"]=>
  string(1) "0"
  ["fd"]=>
  string(1) "5"
  ["loadavg"]=>
  string(8) "0.000000"
  ["memsize"]=>
  string(8) "77328384"
  ["memrss"]=>
  string(7) "1183744"
  ["ru_real"]=>
  string(13) "162776.042152"
  ["ru_user"]=>
  string(8) "0.476029"
  ["ru_sys"]=>
  string(8) "8.652540"
}

Siehe auch

  • Classname::Method()


Synchronize the database

  • « TokyoTyrant::stat
  • TokyoTyrant::tune »
  • PHP Manual
  • TokyoTyrant
  • Synchronize the database

TokyoTyrant::sync

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::sync — Synchronize the database

Beschreibung

public TokyoTyrant::sync ( ) : mixed

Synchronizes the database on to the physical device

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.


Tunes connection values

  • « TokyoTyrant::sync
  • TokyoTyrant::vanish »
  • PHP Manual
  • TokyoTyrant
  • Tunes connection values

TokyoTyrant::tune

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrant::tune — Tunes connection values

Beschreibung

public TokyoTyrant::tune ( float $timeout , int $options = TokyoTyrant::RDBT_RECON ) : TokyoTyrant

Tunes database connection options.

Parameter-Liste

timeout

The objects timeout value (default: 5.0)

options

Bitmask of options to tune. This can be either 0 or TokyoTyrant::RDBT_RECON. It is recommended not to change the second parameter.

Rückgabewerte

This method returns a reference to the current object and throws TokyoTyrantException on failure.


Empties the database

  • « TokyoTyrant::tune
  • TokyoTyrantTable »
  • PHP Manual
  • TokyoTyrant
  • Empties the database

TokyoTyrant::vanish

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::vanish — Empties the database

Beschreibung

public TokyoTyrant::vanish ( ) : mixed

Empties a remote database

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrant::vanish() example

<?php
$tt = new TokyoTyrant("localhost");
$tt->vanish();
?>

Siehe auch

  • TokyoTyrant::out() - Removes records


The TokyoTyrantTable class

(PECL tokyo_tyrant >= 0.1.0)

Einführung

Provides an API to the table databases. A table database can be create using the following command: ttserver -port 1979 /tmp/tt_table.tct. In Tokyo Tyrant the table API is a schemaless database which can store arbitrary amount of key-value pairs under a single primary key.

Klassenbeschreibung

TokyoTyrantTable extends TokyoTyrant {
/* Methoden */
public add ( string $key , mixed $increment , string $type = ? ) : void
public genUid ( ) : int
public get ( mixed $keys ) : array
public getIterator ( ) : TokyoTyrantIterator
public getQuery ( ) : TokyoTyrantQuery
public out ( mixed $keys ) : void
public put ( string $key , array $columns ) : int
public putCat ( string $key , array $columns ) : void
public putKeep ( string $key , array $columns ) : void
public putNr ( mixed $keys , string $value = ? ) : void
public putShl ( string $key , string $value , int $width ) : void
public setIndex ( string $column , int $type ) : mixed
/* Geerbte Methoden */
public TokyoTyrant::add ( string $key , int|float $increment , int $type = 0 ) : int|float
public TokyoTyrant::connect ( string $host , int $port = TokyoTyrant::RDBDEF_PORT , array $options = ? ) : TokyoTyrant
public TokyoTyrant::connectUri ( string $uri ) : TokyoTyrant
public TokyoTyrant::__construct ( string $host = ? , int $port = TokyoTyrant::RDBDEF_PORT , array $options = ? )
public TokyoTyrant::copy ( string $path ) : TokyoTyrant
public TokyoTyrant::ext ( string $name , int $options , string $key , string $value ) : string
public TokyoTyrant::fwmKeys ( string $prefix , int $max_recs ) : array
public TokyoTyrant::get ( mixed $keys ) : mixed
public TokyoTyrant::getIterator ( ) : TokyoTyrantIterator
public TokyoTyrant::num ( ) : int
public TokyoTyrant::out ( mixed $keys ) : TokyoTyrant
public TokyoTyrant::put ( mixed $keys , string $value = NULL ) : TokyoTyrant
public TokyoTyrant::putCat ( mixed $keys , string $value = ? ) : TokyoTyrant
public TokyoTyrant::putKeep ( mixed $keys , string $value = ? ) : TokyoTyrant
public TokyoTyrant::putNr ( mixed $keys , string $value = NULL ) : TokyoTyrant
public TokyoTyrant::putShl ( string $key , string $value , int $width ) : mixed
public TokyoTyrant::restore ( string $log_dir , int $timestamp , bool $check_consistency = true ) : mixed
public TokyoTyrant::setMaster ( string $host , int $port , int $timestamp , bool $check_consistency = true ) : mixed
public TokyoTyrant::size ( string $key ) : int
public TokyoTyrant::stat ( ) : array
public TokyoTyrant::sync ( ) : mixed
public TokyoTyrant::tune ( float $timeout , int $options = TokyoTyrant::RDBT_RECON ) : TokyoTyrant
public TokyoTyrant::vanish ( ) : mixed
}

Inhaltsverzeichnis

  • TokyoTyrantTable::add — Adds a record
  • TokyoTyrantTable::genUid — Generate unique id
  • TokyoTyrantTable::get — Get a row
  • TokyoTyrantTable::getIterator — Get an iterator
  • TokyoTyrantTable::getQuery — Get a query object
  • TokyoTyrantTable::out — Remove records
  • TokyoTyrantTable::put — Store a row
  • TokyoTyrantTable::putCat — Concatenates to a row
  • TokyoTyrantTable::putKeep — Put a new record
  • TokyoTyrantTable::putNr — Puts value
  • TokyoTyrantTable::putShl — Concatenates to a record
  • TokyoTyrantTable::setIndex — Sets index


Adds a record

  • « TokyoTyrantTable
  • TokyoTyrantTable::genUid »
  • PHP Manual
  • TokyoTyrantTable
  • Adds a record

TokyoTyrantTable::add

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::add — Adds a record

Beschreibung

public TokyoTyrantTable::add ( string $key , mixed $increment , string $type = ? ) : void

This method is not supported with table databases.

Parameter-Liste

key

The string key

increment

The amount to increment

type

TokyoTyrant::RDB_RECINT or TokyoTyrant::RDB_RECDBL constant. If this parameter is omitted the type is guessed from the increment parameters type.

Rückgabewerte

This method throws an TokyoTyrantException if used through this class.

Siehe auch

  • TokyoTyrant::add() - Adds to a numeric key


Generate unique id

  • « TokyoTyrantTable::add
  • TokyoTyrantTable::get »
  • PHP Manual
  • TokyoTyrantTable
  • Generate unique id

TokyoTyrantTable::genUid

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::genUid — Generate unique id

Beschreibung

public TokyoTyrantTable::genUid ( ) : int

Generates an unique id inside the table database. In table databases rows are referenced using a numeric primary key.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an unique id or throws TokyoTyrantException on error

Beispiele

Beispiel #1 TokyoTyrantTable::genUid() example

<?php
$tt = new TokyoTyrantTable("localhost", 1122);

echo $tt->genUid();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

4

Siehe auch

  • TokyoTyrantTable::put() - Store a row


Get a row

  • « TokyoTyrantTable::genUid
  • TokyoTyrantTable::getIterator »
  • PHP Manual
  • TokyoTyrantTable
  • Get a row

TokyoTyrantTable::get

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::get — Get a row

Beschreibung

public TokyoTyrantTable::get ( mixed $keys ) : array

Gets a row from table database. keys is a single integer for the primary key of the row or an array of integers for multiple rows.

Parameter-Liste

keys

The primary key, can be a string or an integer

Rückgabewerte

Returns the row as an array

Beispiele

Beispiel #1 TokyoTyrantTable::get() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Get the row back */
var_dump($tt->get($index));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Anmerkungen

Hinweis:

Starting from version 0.3.0 this method accepts array as parameter. Please note that multi-get on tables is not binary-safe.

Siehe auch

  • TokyoTyrantTable::put() - Store a row


Get an iterator

  • « TokyoTyrantTable::get
  • TokyoTyrantTable::getQuery »
  • PHP Manual
  • TokyoTyrantTable
  • Get an iterator

TokyoTyrantTable::getIterator

(No version information available, might only be in Git)

TokyoTyrantTable::getIterator — Get an iterator

Beschreibung

public TokyoTyrantTable::getIterator ( ) : TokyoTyrantIterator

Gets an iterator for iterating all keys / values in the database.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This method returns TokyoTyrantIterator object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrantTable::getIterator() example

<?php
$tt = new TokyoTyrantTable("localhost");
$it = $tt->getIterator();

foreach ($it as $k => $v) {
  var_dump($k, $v);
}
?>

Siehe auch

  • TokyoTyrantTable::getQuery() - Get a query object
  • TokyoTyrant::getIterator() - Get an iterator


Get a query object

  • « TokyoTyrantTable::getIterator
  • TokyoTyrantTable::out »
  • PHP Manual
  • TokyoTyrantTable
  • Get a query object

TokyoTyrantTable::getQuery

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::getQuery — Get a query object

Beschreibung

public TokyoTyrantTable::getQuery ( ) : TokyoTyrantQuery

Get a query object to execute searches on the database

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns TokyoTyrantQuery on success and throws TokyoTyrantException on error

Beispiele

Beispiel #1 TokyoTyrantTable::getQuery() example

<?php
/* Connect to a table database */
$table = new TokyoTyrantTable("localhost", 1979);

/* Put a few rows */
$table->put(null, array("column1" => "some data", "column2" => "more data"));
$table->put(null, array("something" => "value", "data" => "good data"));

/* Get query object */
$query = $table->getQuery();

/* Add condition to query */
$query->addCond('data', TokyoTyrant::RDBQC_STREQ, 'good data');

/* Get matching rows */
var_dump($query->search());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [11]=>
  array(2) {
    ["something"]=>
    string(5) "value"
    ["data"]=>
    string(9) "good data"
  }
}

Siehe auch

  • TokyoTyrantQuery::search() - Searches records
  • TokyoTyrantQuery::out() - Removes records based on query


Remove records

  • « TokyoTyrantTable::getQuery
  • TokyoTyrantTable::put »
  • PHP Manual
  • TokyoTyrantTable
  • Remove records

TokyoTyrantTable::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::out — Remove records

Beschreibung

public TokyoTyrantTable::out ( mixed $keys ) : void

Removes records from a table database.

Parameter-Liste

keys

A single integer key or an array of integers

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrantTable::out() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Delete the row */
$tt->out($index);
?>

Siehe auch

  • TokyoTyrantTable::put() - Store a row


Store a row

  • « TokyoTyrantTable::out
  • TokyoTyrantTable::putCat »
  • PHP Manual
  • TokyoTyrantTable
  • Store a row

TokyoTyrantTable::put

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::put — Store a row

Beschreibung

public TokyoTyrantTable::put ( string $key , array $columns ) : int

Puts a new row into the database. This method parameters are key which is the primary key of the row, passing null will generate a new unique id. value is an array containing the row contents which is usually key value pairs.

Parameter-Liste

key

The primary key of the row

columns

The row contents

Rückgabewerte

Returns the primary key on success and throws TokyoTyrantException on error

Beispiele

Beispiel #1 TokyoTyrantTable::put() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Get the row back */
var_dump($tt->get($index));

/* Modify an existing row */
$tt->put($index, array("column1" => "other data", "column2" => "better data"));

/* Get the row back */
var_dump($tt->get($index));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
array(2) {
  ["column1"]=>
  string(10) "other data"
  ["column2"]=>
  string(11) "better data"
}

Siehe auch

  • TokyoTyrantTable::get() - Get a row


Concatenates to a row

  • « TokyoTyrantTable::put
  • TokyoTyrantTable::putKeep »
  • PHP Manual
  • TokyoTyrantTable
  • Concatenates to a row

TokyoTyrantTable::putCat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putCat — Concatenates to a row

Beschreibung

public TokyoTyrantTable::putCat ( string $key , array $columns ) : void

This method can be used to add new columns to existing records. Existing keys will be left unmodified but any new columns will be appended to the row. Passing null as key will generate a new row.

Parameter-Liste

key

The primary key of the row or null

columns

Array of row contents

Rückgabewerte

Returns the primary key and throws TokyoTyrantException on error.

Beispiele

Beispiel #1 TokyoTyrantTable::putCat() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Get the row back */
var_dump($tt->get($index));

/* Modify an existing row */
$tt->putcat($index, array("column1" => "something new", "new_column" => "other data"));

/* Get the row back */
var_dump($tt->get($index));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
array(3) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
  ["new_column"]=>
  string(10) "other data"
}

Siehe auch

  • TokyoTyrantTable::put() - Store a row


Put a new record

  • « TokyoTyrantTable::putCat
  • TokyoTyrantTable::putNr »
  • PHP Manual
  • TokyoTyrantTable
  • Put a new record

TokyoTyrantTable::putKeep

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putKeep — Put a new record

Beschreibung

public TokyoTyrantTable::putKeep ( string $key , array $columns ) : void

Puts a new record into the database. If the key already exists this method throws an exception indicating that the records exists.

Parameter-Liste

key

The primary key of the row or null

columns

Array of the row contents

Rückgabewerte

Returns the primary key and throws TokyoTyrantException on error.

Beispiele

Beispiel #1 TokyoTyrantTable::putKeep() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Get the row back */
var_dump($tt->get($index));

try {
    $tt->putKeep($index, array("column1" => "something new", "new_column" => "other data"));
} catch (TokyoTyrantException $e) {
    if ($e->getCode() === TokyoTyrant::TTE_KEEP) {
        echo "Existing record! Not modified\n";
    } else {
        echo "Error: " , $e->getMessage() , "\n";
    }
}

/* Get the row back */
var_dump($tt->get($index));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
Existing record! Not modified
array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Siehe auch

  • TokyoTyrantTable::put() - Store a row


Puts value

  • « TokyoTyrantTable::putKeep
  • TokyoTyrantTable::putShl »
  • PHP Manual
  • TokyoTyrantTable
  • Puts value

TokyoTyrantTable::putNr

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putNr — Puts value

Beschreibung

public TokyoTyrantTable::putNr ( mixed $keys , string $value = ? ) : void

This method is not supported on table databases. Calling this method through TokyoTyrantTable is considered an error and an TokyoTyrantException will be thrown.

Parameter-Liste

keys

A string key or an array of key-value pairs

value

The value in case a string key is used

Rückgabewerte

This method is not supported on table databases. Calling this method through TokyoTyrantTable is considered an error and an TokyoTyrantException will be thrown.

Siehe auch

  • TokyoTyrant::putNr() - Puts value
  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record


Concatenates to a record

  • « TokyoTyrantTable::putNr
  • TokyoTyrantTable::setIndex »
  • PHP Manual
  • TokyoTyrantTable
  • Concatenates to a record

TokyoTyrantTable::putShl

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putShl — Concatenates to a record

Beschreibung

public TokyoTyrantTable::putShl ( string $key , string $value , int $width ) : void

This method is not supported on table databases. Calling this method through TokyoTyrantTable is considered an error and an TokyoTyrantException will be thrown.

Parameter-Liste

key

A string key

value

The value to concatenate

width

The width of the record

Rückgabewerte

This method is not supported on table databases.

Siehe auch

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record
  • TokyoTyrantTable::put() - Store a row
  • TokyoTyrantTable::putKeep() - Put a new record
  • TokyoTyrantTable::putCat() - Concatenates to a row


Sets index

  • « TokyoTyrantTable::putShl
  • TokyoTyrantQuery »
  • PHP Manual
  • TokyoTyrantTable
  • Sets index

TokyoTyrantTable::setIndex

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::setIndex — Sets index

Beschreibung

public TokyoTyrantTable::setIndex ( string $column , int $type ) : mixed

Sets an index on a specified column. The index type is one of the TokyoTyrant::RDBIT_* constants. Passing TokyoTyrant::RDBIT_VOID removes the index.

Parameter-Liste

column

The name of the column

type

The index type

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.


The TokyoTyrantQuery class

(PECL tokyo_tyrant >= 0.1.0)

Einführung

This class is used to query the table databases

Klassenbeschreibung

TokyoTyrantQuery implements Iterator {
/* Methoden */
public addCond ( string $name , int $op , string $expr ) : mixed
public __construct ( TokyoTyrantTable $table )
public count ( ) : int
public current ( ) : array
public hint ( ) : string
public key ( ) : string
public metaSearch ( array $queries , int $type ) : array
public next ( ) : array
public out ( ) : TokyoTyrantQuery
public rewind ( ) : bool
public search ( ) : array
public setLimit ( int $max = ? , int $skip = ? ) : mixed
public setOrder ( string $name , int $type ) : mixed
public valid ( ) : bool
}

Inhaltsverzeichnis

  • TokyoTyrantQuery::addCond — Adds a condition to the query
  • TokyoTyrantQuery::__construct — Construct a new query
  • TokyoTyrantQuery::count — Counts records
  • TokyoTyrantQuery::current — Returns the current element
  • TokyoTyrantQuery::hint — Get the hint string of the query
  • TokyoTyrantQuery::key — Returns the current key
  • TokyoTyrantQuery::metaSearch — Retrieve records with multiple queries
  • TokyoTyrantQuery::next — Moves the iterator to next entry
  • TokyoTyrantQuery::out — Removes records based on query
  • TokyoTyrantQuery::rewind — Rewinds the iterator
  • TokyoTyrantQuery::search — Searches records
  • TokyoTyrantQuery::setLimit — Limit results
  • TokyoTyrantQuery::setOrder — Orders results
  • TokyoTyrantQuery::valid — Checks the validity of current item


Adds a condition to the query

  • « TokyoTyrantQuery
  • TokyoTyrantQuery::__construct »
  • PHP Manual
  • TokyoTyrantQuery
  • Adds a condition to the query

TokyoTyrantQuery::addCond

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::addCond — Adds a condition to the query

Beschreibung

public TokyoTyrantQuery::addCond ( string $name , int $op , string $expr ) : mixed

Adds a condition to the query. Condition can be something like: get all keys which value matches expr.

Parameter-Liste

name

Name of the column in the condition

op

The operator. One of the TokyoTyrant::RDBQC_* constants

expr

The expression

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrantQuery::addCond() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "not here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Dump the search results */
var_dump($query->search());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [1]=>
  array(2) {
    ["column1"]=>
    string(9) "some data"
    ["column2"]=>
    string(14) "something here"
  }
  [4]=>
  array(2) {
    ["column45"]=>
    string(11) "random data"
    ["column2"]=>
    string(25) "something along the lines"
  }
}

Siehe auch

  • Classname::Method()


Construct a new query

  • « TokyoTyrantQuery::addCond
  • TokyoTyrantQuery::count »
  • PHP Manual
  • TokyoTyrantQuery
  • Construct a new query

TokyoTyrantQuery::__construct

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::__construct — Construct a new query

Beschreibung

public TokyoTyrantQuery::__construct ( TokyoTyrantTable $table )

Construct a new query object

Parameter-Liste

table

TokyoTyrantTable object with active database connection

Rückgabewerte

Returns a new TokyoTyrantQuery object and throws TokyoTyrantException on error

Beispiele

Beispiel #1 TokyoTyrantQuery::__construct() example

<?php
$tt = new TokyoTyrantTable("localhost", 1979);

$query = new TokyoTyrantQuery($tt);

/* Work with $query */
?>

Siehe auch

  • TokyoTyrantTable::getQuery() - Get a query object


Counts records

  • « TokyoTyrantQuery::__construct
  • TokyoTyrantQuery::current »
  • PHP Manual
  • TokyoTyrantQuery
  • Counts records

TokyoTyrantQuery::count

(No version information available, might only be in Git)

TokyoTyrantQuery::count — Counts records

Beschreibung

public TokyoTyrantQuery::count ( ) : int

Returns a count of how many records a query returns.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a count of matching rows and throws TokyoTyrantException on error

Beispiele

Beispiel #1 TokyoTyrantQuery::count() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "not here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Count the results */
var_dump($query->count());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2)

Siehe auch

  • TokyoTyrantQuery::out() - Removes records based on query
  • TokyoTyrantQuery::search() - Searches records
  • TokyoTyrantQuery::metaSearch() - Retrieve records with multiple queries


Returns the current element

  • « TokyoTyrantQuery::count
  • TokyoTyrantQuery::hint »
  • PHP Manual
  • TokyoTyrantQuery
  • Returns the current element

TokyoTyrantQuery::current

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::current — Returns the current element

Beschreibung

public TokyoTyrantQuery::current ( ) : array

Returns the current element. Part of Iterator interface

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current row

Beispiele

Beispiel #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

pk: 1, columns: 2
pk: 4, columns: 2

Siehe auch

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Get the hint string of the query

  • « TokyoTyrantQuery::current
  • TokyoTyrantQuery::key »
  • PHP Manual
  • TokyoTyrantQuery
  • Get the hint string of the query

TokyoTyrantQuery::hint

(No version information available, might only be in Git)

TokyoTyrantQuery::hint — Get the hint string of the query

Beschreibung

public TokyoTyrantQuery::hint ( ) : string

Get the hint string of the query. The hint string contains information about an executed query and it could be compared to for example MySQL EXPLAIN statement.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This method always returns a string

Beispiele

Beispiel #1 TokyoTyrantQuery::hint example

<?php
$tt = new TokyoTyrantTable("localhost", 1979);
$tt->vanish();

for ($i = 0; $i < 11; $i++) {
     $tt->put(null, array('a_col' => 'a' . $i, 'b_col' => 'b' . $i));
}

$query = $tt->getQuery();
$query->addCond('a_col', TokyoTyrant::RDBQC_STRBW, 'a');

$query->search();
var_dump($query->hint());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(72) "
scanning the whole table
result set size: 11
leaving the natural order
"

Siehe auch

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Returns the current key

  • « TokyoTyrantQuery::hint
  • TokyoTyrantQuery::metaSearch »
  • PHP Manual
  • TokyoTyrantQuery
  • Returns the current key

TokyoTyrantQuery::key

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::key — Returns the current key

Beschreibung

public TokyoTyrantQuery::key ( ) : string

Returns the current key. Part of the Iterator interface

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current key and throws TokyoTyrantException on error

Beispiele

Beispiel #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

pk: 1, columns: 2
pk: 4, columns: 2

Siehe auch

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Retrieve records with multiple queries

  • « TokyoTyrantQuery::key
  • TokyoTyrantQuery::next »
  • PHP Manual
  • TokyoTyrantQuery
  • Retrieve records with multiple queries

TokyoTyrantQuery::metaSearch

(No version information available, might only be in Git)

TokyoTyrantQuery::metaSearch — Retrieve records with multiple queries

Beschreibung

public TokyoTyrantQuery::metaSearch ( array $queries , int $type ) : array

Executes multiple queries on a database and returns matching records. The current object is always the left most object in the search.

Parameter-Liste

queries

Array of TokyoTyrantQuery objects

type

One of the TokyoTyrant::RDBMS_* constants

Rückgabewerte

Returns the matching rows and throws TokyoTyrantException on error

Beispiele

Beispiel #1 TokyoTyrantQuery::metaSearch() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add test data */
$tt->put('cherry',     array('color' => 'red'));
$tt->put('strawberry', array('color' => 'red'));
$tt->put('apple',      array('color' => 'green'));
$tt->put('lemon',      array('color' => 'yellow'));

/* First query */
$query = $tt->getQuery();
$query->addCond('color', TokyoTyrant::RDBQC_STREQ, 'red')->setOrder('color', TokyoTyrant::RDBQO_STRASC);

/* Second query */
$query1 = $tt->getQuery();
$query1->addCond('color', TokyoTyrant::RDBQC_STREQ, 'yellow');

/* Get union between the queries */
var_dump($query->metaSearch(array($query1), TokyoTyrant::RDBMS_UNION));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  ["cherry"]=>
  array(1) {
    ["color"]=>
    string(3) "red"
  }
  ["strawberry"]=>
  array(1) {
    ["color"]=>
    string(3) "red"
  }
  ["lemon"]=>
  array(1) {
    ["color"]=>
    string(6) "yellow"
  }
}

Siehe auch

  • TokyoTyrantQuery::search() - Searches records


Moves the iterator to next entry

  • « TokyoTyrantQuery::metaSearch
  • TokyoTyrantQuery::out »
  • PHP Manual
  • TokyoTyrantQuery
  • Moves the iterator to next entry

TokyoTyrantQuery::next

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::next — Moves the iterator to next entry

Beschreibung

public TokyoTyrantQuery::next ( ) : array

Returns the next result in the resultset. Part of the Iterator interface.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the next row and throws TokyoTyrantException on error.

Beispiele

Beispiel #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

pk: 1, columns: 2
pk: 4, columns: 2

Siehe auch

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Removes records based on query

  • « TokyoTyrantQuery::next
  • TokyoTyrantQuery::rewind »
  • PHP Manual
  • TokyoTyrantQuery
  • Removes records based on query

TokyoTyrantQuery::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::out — Removes records based on query

Beschreibung

public TokyoTyrantQuery::out ( ) : TokyoTyrantQuery

Removes all records that match the query. Works exactly like search but removes the records instead of returning them.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.

Beispiele

Beispiel #1 TokyoTyrantQuery::out() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Remove matching records */
$query->out();
?>

Siehe auch

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Rewinds the iterator

  • « TokyoTyrantQuery::out
  • TokyoTyrantQuery::search »
  • PHP Manual
  • TokyoTyrantQuery
  • Rewinds the iterator

TokyoTyrantQuery::rewind

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::rewind — Rewinds the iterator

Beschreibung

public TokyoTyrantQuery::rewind ( ) : bool

Rewind the resultset and executes the query if it has not been executed. Part of the Iterator interface.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true

Beispiele

Beispiel #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

pk: 1, columns: 2
pk: 4, columns: 2

Siehe auch

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Searches records

  • « TokyoTyrantQuery::rewind
  • TokyoTyrantQuery::setLimit »
  • PHP Manual
  • TokyoTyrantQuery
  • Searches records

TokyoTyrantQuery::search

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::search — Searches records

Beschreibung

public TokyoTyrantQuery::search ( ) : array

Executes a search on the table database. Returns an array of arrays containing the matching records. In the returned array the first level is the primary key of the data and the second level is the row data.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the matching rows and throws TokyoTyrantException on error

Beispiele

Beispiel #1 TokyoTyrantQuery::search() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "not here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Dump the search results */
var_dump($query->search());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [1]=>
  array(2) {
    ["column1"]=>
    string(9) "some data"
    ["column2"]=>
    string(14) "something here"
  }
  [4]=>
  array(2) {
    ["column45"]=>
    string(11) "random data"
    ["column2"]=>
    string(25) "something along the lines"
  }
}

Siehe auch

  • TokyoTyrantQuery::out() - Removes records based on query
  • TokyoTyrantQuery::metaSearch() - Retrieve records with multiple queries


Limit results

  • « TokyoTyrantQuery::search
  • TokyoTyrantQuery::setOrder »
  • PHP Manual
  • TokyoTyrantQuery
  • Limit results

TokyoTyrantQuery::setLimit

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::setLimit — Limit results

Beschreibung

public TokyoTyrantQuery::setLimit ( int $max = ? , int $skip = ? ) : mixed

Set the maximum amount of records to return on a query.

Parameter-Liste

max

Maximum amount of records. Default: -1

skip

How many records to skip from the start. Default: -1

Rückgabewerte

This method returns the current object and throws TokyoTyrantException on failure.


Orders results

  • « TokyoTyrantQuery::setLimit
  • TokyoTyrantQuery::valid »
  • PHP Manual
  • TokyoTyrantQuery
  • Orders results

TokyoTyrantQuery::setOrder

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::setOrder — Orders results

Beschreibung

public TokyoTyrantQuery::setOrder ( string $name , int $type ) : mixed

Sets the order of a query

Parameter-Liste

name

The column name to apply the ordering on.

type

The type can be one of the following constants:

  • TokyoTyrant::RDBQO_STRASC - String ascending
  • TokyoTyrant::RDBQO_STRDESC - String descending
  • TokyoTyrant::RDBQO_NUMASC - Numberic ascending
  • TokyoTyrant::RDBQO_NUMDESC - String descending

Rückgabewerte

This method returns the current object.


Checks the validity of current item

  • « TokyoTyrantQuery::setOrder
  • TokyoTyrantIterator »
  • PHP Manual
  • TokyoTyrantQuery
  • Checks the validity of current item

TokyoTyrantQuery::valid

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::valid — Checks the validity of current item

Beschreibung

public TokyoTyrantQuery::valid ( ) : bool

Checks if the current item is valid. Part of the Iterator interface

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the current item is valid and false if not.

Beispiele

Beispiel #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

pk: 1, columns: 2
pk: 4, columns: 2

Siehe auch

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


The TokyoTyrantIterator class

(PECL tokyo_tyrant >= 0.2.0)

Einführung

Provides an iterator for TokyoTyrant and TokyoTyrantTable objects. The iterator iterates over all keys and values in the database. TokyoTyrantIterator was added in version 0.2.0.

Klassenbeschreibung

TokyoTyrantIterator implements Iterator {
/* Methods */
public __construct ( mixed $object )
public current ( ) : mixed
public key ( ) : mixed
public next ( ) : mixed
public rewind ( ) : void
public valid ( ) : bool
/* Inherited methods */
public TokyoTyrant::add ( string $key , int|float $increment , int $type = 0 ) : int|float
public TokyoTyrant::connect ( string $host , int $port = TokyoTyrant::RDBDEF_PORT , array $options = ? ) : TokyoTyrant
public TokyoTyrant::connectUri ( string $uri ) : TokyoTyrant
public TokyoTyrant::__construct ( string $host = ? , int $port = TokyoTyrant::RDBDEF_PORT , array $options = ? )
public TokyoTyrant::copy ( string $path ) : TokyoTyrant
public TokyoTyrant::ext ( string $name , int $options , string $key , string $value ) : string
public TokyoTyrant::fwmKeys ( string $prefix , int $max_recs ) : array
public TokyoTyrant::get ( mixed $keys ) : mixed
public TokyoTyrant::getIterator ( ) : TokyoTyrantIterator
public TokyoTyrant::num ( ) : int
public TokyoTyrant::out ( mixed $keys ) : TokyoTyrant
public TokyoTyrant::put ( mixed $keys , string $value = NULL ) : TokyoTyrant
public TokyoTyrant::putCat ( mixed $keys , string $value = ? ) : TokyoTyrant
public TokyoTyrant::putKeep ( mixed $keys , string $value = ? ) : TokyoTyrant
public TokyoTyrant::putNr ( mixed $keys , string $value = NULL ) : TokyoTyrant
public TokyoTyrant::putShl ( string $key , string $value , int $width ) : mixed
public TokyoTyrant::restore ( string $log_dir , int $timestamp , bool $check_consistency = true ) : mixed
public TokyoTyrant::setMaster ( string $host , int $port , int $timestamp , bool $check_consistency = true ) : mixed
public TokyoTyrant::size ( string $key ) : int
public TokyoTyrant::stat ( ) : array
public TokyoTyrant::sync ( ) : mixed
public TokyoTyrant::tune ( float $timeout , int $options = TokyoTyrant::RDBT_RECON ) : TokyoTyrant
public TokyoTyrant::vanish ( ) : mixed
}

Inhaltsverzeichnis

  • TokyoTyrantIterator::__construct — Construct an iterator
  • TokyoTyrantIterator::current — Get the current value
  • TokyoTyrantIterator::key — Returns the current key
  • TokyoTyrantIterator::next — Move to next key
  • TokyoTyrantIterator::rewind — Rewinds the iterator
  • TokyoTyrantIterator::valid — Rewinds the iterator


Construct an iterator

  • « TokyoTyrantIterator
  • TokyoTyrantIterator::current »
  • PHP Manual
  • TokyoTyrantIterator
  • Construct an iterator

TokyoTyrantIterator::__construct

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::__construct — Construct an iterator

Beschreibung

public TokyoTyrantIterator::__construct ( mixed $object )

Construct a new TokyoTyrantIterator object. One connection can have multiple iterators but it is not quaranteed that all items are traversed in that case. object parameter can be either an of instance TokyoTyrant or TokyoTyrantTable.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Throws an exception if iterator initialization fails.

Beispiele

Beispiel #1 TokyoTyrantIterator::__construct() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Construct an iterator */
$it = new TokyoTyrantIterator($tt);

foreach ($it as $value) {
    var_dump($value);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Siehe auch

  • TokyoTyrantIterator::key() - Returns the current key
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind() - Rewinds the iterator
  • TokyoTyrantIterator::key() - Returns the current key


Get the current value

  • « TokyoTyrantIterator::__construct
  • TokyoTyrantIterator::key »
  • PHP Manual
  • TokyoTyrantIterator
  • Get the current value

TokyoTyrantIterator::current

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::current — Get the current value

Beschreibung

public TokyoTyrantIterator::current ( ) : mixed

Returns the current value during iteration.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current value on success and false on failure.

Siehe auch

  • TokyoTyrantIterator::valid() - Rewinds the iterator
  • TokyoTyrantIterator::key() - Returns the current key
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind() - Rewinds the iterator


Returns the current key

  • « TokyoTyrantIterator::current
  • TokyoTyrantIterator::next »
  • PHP Manual
  • TokyoTyrantIterator
  • Returns the current key

TokyoTyrantIterator::key

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::key — Returns the current key

Beschreibung

public TokyoTyrantIterator::key ( ) : mixed

Returns the current key.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current key on success and false on failure.

Siehe auch

  • TokyoTyrantIterator::valid() - Rewinds the iterator
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind() - Rewinds the iterator


Move to next key

  • « TokyoTyrantIterator::key
  • TokyoTyrantIterator::rewind »
  • PHP Manual
  • TokyoTyrantIterator
  • Move to next key

TokyoTyrantIterator::next

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::next — Move to next key

Beschreibung

public TokyoTyrantIterator::next ( ) : mixed

Move to next key during iteration and return it's value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the next value on success and false on failure.

Siehe auch

  • TokyoTyrantIterator::valid() - Rewinds the iterator
  • TokyoTyrantIterator::key() - Returns the current key
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::rewind() - Rewinds the iterator


Rewinds the iterator

  • « TokyoTyrantIterator::next
  • TokyoTyrantIterator::valid »
  • PHP Manual
  • TokyoTyrantIterator
  • Rewinds the iterator

TokyoTyrantIterator::rewind

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::rewind — Rewinds the iterator

Beschreibung

public TokyoTyrantIterator::rewind ( ) : void

Rewinds the iterator for new iteration. Called automatically at the beginning of foreach.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Throws TokyoTyrantException if iterator initialization fails.

Siehe auch

  • TokyoTyrantIterator::valid() - Rewinds the iterator
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind()


Rewinds the iterator

  • « TokyoTyrantIterator::rewind
  • TokyoTyrantException »
  • PHP Manual
  • TokyoTyrantIterator
  • Rewinds the iterator

TokyoTyrantIterator::valid

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::valid — Rewinds the iterator

Beschreibung

public TokyoTyrantIterator::valid ( ) : bool

Checks whether the internal pointer points to valid element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the current item is valid and false if not.

Siehe auch

  • TokyoTyrantIterator::key() - Returns the current key
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind() - Rewinds the iterator


The TokyoTyrantException class

(PECL tokyo_tyrant >= 0.1.0)

Einführung

TokyoTyrantException

Klassenbeschreibung

tokyotyrantexception extends Exception {
/* Eigenschaften */
protected int $code ;
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

code

The exception code. This can be compared to TokyoTyrant::TTE_* constants


Datums- und zeitrelevante Erweiterungen

  • Kalender
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Calendar Funktionen
  • Datum/Uhrzeit — Datum und Uhrzeit
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • DateTime — Die DateTime Klasse
    • DateTimeImmutable — Die DateTimeImmutable Klasse
    • DateTimeInterface — Das DateTimeInterface Interface
    • DateTimeZone — Die DateTimeZone Klasse
    • DateInterval — Die DateInterval Klasse
    • DatePeriod — Die DatePeriod Klasse
    • Datum/Uhrzeit Funktionen
    • Supported Date and Time Formats
    • Liste unterstützter Zeitzonen
  • HRTime — High resolution timing
    • Einführung
    • Installation/Konfiguration
    • Beispiele
    • HRTime\PerformanceCounter — The HRTime\PerformanceCounter class
    • HRTime\StopWatch — The HRTime\StopWatch class
    • HRTime\Unit — The HRTime\Unit class


Kalender

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Calendar Funktionen
    • cal_days_in_month — Gibt die Anzahl der Tage eines bestimmten Monats in einem bestimmten Jahr in einem bestimmten Kalender zurück
    • cal_from_jd — Konvertiert von Julian Day Count zu einem unterstützten Kalender
    • cal_info — Gibt Informationen zu einem bestimmten Kalender zurück
    • cal_to_jd — Konvertiert von einem unterstützten Kalenderformat in Julian-Format
    • easter_date — Zeitpunkt des Osterfestes (0 Uhr) als Unix-Timestamp
    • easter_days — Anzahl der Tage zwischen dem 21. März und Ostersonntag
    • frenchtojd — Konvertiert ein Datum des Französischen Revolutionskalenders zu einer julianischen Tageszahl
    • gregoriantojd — Konvertierung vom Gregorianischen Kalender zum Julianischen Datum
    • jddayofweek — Bestimmt den Wochentag aus einem Julianischen Datum
    • jdmonthname — Liefert den Monatsnamen
    • jdtofrench — Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution
    • jdtogregorian — Wandelt eine julianische Tageszahl in ein gregorianischen Datum um
    • jdtojewish — Konvertierung vom Julianischen Datum zum Jüdischen Kalender
    • jdtojulian — Wandelt eine julianische Tageszahl in ein julianisches Kalenderdatum um
    • jdtounix — Konvertiert Julianisches Datum in Unix-Timestamp
    • jewishtojd — Konvertiert vom Jüdischen Kalender zum Julianischen Datum
    • juliantojd — Konvertierung vom Julianischen Kalender zum Julianischen Datum
    • unixtojd — Konvertiert Unix-Timestamp in Julianisches Datum


Einführung

Die Kalender-Extension enthält eine Reihe von Funktionen, mit denen die Umwandlung zwischen verschiedenen Kalenderformaten vereinfacht wird. Die Umwandlung basiert dabei auf einer zwischengeschalteten Umrechnung in das Julianische Datum (J.D.). Das Julianische Datum zählt die seit dem ersten Januar 4713 vor Christus vergangenen Tage. Um ein Datum von einem Kalender in einen anderen umzurechnen, müssen Sie es zunächst in das entsprechende Julianische Datum konvertieren und von da aus weiter in den gewünschten Kalender. Beachten Sie das das Julianische Datum und der Julianische Kalender zwei komplett unterschiedliche Dinge sind. Nähere Informationen zum Julianischen Datum finden Sie unter » http://www.hermetic.ch/cal_stud/jdn.htm. Weitere Informationen zu verschiedenen Kalendersystemen finden Sie unter » http://www.fourmilab.ch/documents/calendar/. Auszüge aus dieser Seite sind in die folgende Dokumentation eingearbeitet und als Zitat markiert.


Installation

Um diese Funktionen nutzen zu können müssen sie PHP mit --enable-calendar kompilieren.

Die Windowsversion von PHP enthält diese Erweiterung. Um diese Funktionen zu verwenden, müssen Sie keine zusätzlichen Erweiterungen aktivieren.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

CAL_EASTER_DEFAULT (integer)
Für easter_days(): berechne Ostern für Jahre vor 1753 gemäß dem julianischen Kalender, und für spätere Jahre gemäß dem gregorianischen Kalender.
CAL_EASTER_ROMAN (integer)
Für easter_days(): berechne Ostern für Jahre vor 1583 gemäß dem julianischen Kalender, und für spätere Jahre gemäß dem gregorianischen Kalender.
CAL_EASTER_ALWAYS_GREGORIAN (integer)
Für easter_days(): berechne Ostern gemäß dem proleptischen gregorianischen Kalender.
CAL_EASTER_ALWAYS_JULIAN (integer)
Für easter_days(): berechne Ostern gemäß dem julianischen Kalender.
CAL_GREGORIAN (integer)
Für cal_days_in_month(),
cal_from_jd(), cal_info() und
cal_to_jd(): verwende den proleptischen gregorianischen
Kalender.
CAL_JULIAN (integer)
Für cal_days_in_month(),
cal_from_jd(), cal_info() und
cal_to_jd(): verwende den julianischen Kalender.
CAL_JEWISH (integer)
Für cal_days_in_month(),
cal_from_jd(), cal_info() und
cal_to_jd(): verwende den jüdischen Kalender.
CAL_FRENCH (integer)
Für cal_days_in_month(),
cal_from_jd(), cal_info() und
cal_to_jd(): verwende den französischen
Revolutionskalender.
CAL_JEWISH_ADD_ALAFIM_GERESH (integer)
Für jdtojewish(): fügt ein geresh Symbol (das einem einfachen Anführungszeichen ähnelt) als Tausender-Trenner zur Jahreszahl hinzu.
CAL_JEWISH_ADD_ALAFIM (integer)
Für jdtojewish(): fügt das Wort alafim als Tausender-Trenner zur Jahreszahl hinzu.
CAL_JEWISH_ADD_GERESHAYIM (integer)
Für jdtojewish(): fügt ein gershayim Symbol (das einem doppelten Anführungszeichen ähnelt) vor dem letzten Buchstaben des Tages und der Jahreszahl hinzu.
CAL_NUM_CALS (integer)
Die Anzahl verfügbarer Kalender.
CAL_DOW_DAYNO (integer)
Für jddayofweek(): der Wochentag als integer, wobei 0 Sonntag bedeutet, und 6 Samstag.
CAL_DOW_SHORT (integer)
Für jddayofweek(): der abgekürzte englische Name des Wochentages.
CAL_DOW_LONG (integer)
Für jddayofweek(): der englische Name des Wochentages.
CAL_MONTH_GREGORIAN_SHORT (integer)
Für jdmonthname(): der abgekürzte gregorianische Monatsname.
CAL_MONTH_GREGORIAN_LONG (integer)
Für jdmonthname(): der gregorianische Monatsname.
CAL_MONTH_JULIAN_SHORT (integer)
Für jdmonthname(): der abgekürzte julianische Monatsname.
CAL_MONTH_JULIAN_LONG (integer)
Für jdmonthname(): der julianische Monatsname.
CAL_MONTH_JEWISH (integer)
Für jdmonthname(): der jüdische Monatsname.
CAL_MONTH_FRENCH (integer)
Für jdmonthname(): der Monatsname des französische Revolutionskalenders.


Calendar Funktionen

Inhaltsverzeichnis

  • cal_days_in_month — Gibt die Anzahl der Tage eines bestimmten Monats in einem bestimmten Jahr in einem bestimmten Kalender zurück
  • cal_from_jd — Konvertiert von Julian Day Count zu einem unterstützten Kalender
  • cal_info — Gibt Informationen zu einem bestimmten Kalender zurück
  • cal_to_jd — Konvertiert von einem unterstützten Kalenderformat in Julian-Format
  • easter_date — Zeitpunkt des Osterfestes (0 Uhr) als Unix-Timestamp
  • easter_days — Anzahl der Tage zwischen dem 21. März und Ostersonntag
  • frenchtojd — Konvertiert ein Datum des Französischen Revolutionskalenders zu einer julianischen Tageszahl
  • gregoriantojd — Konvertierung vom Gregorianischen Kalender zum Julianischen Datum
  • jddayofweek — Bestimmt den Wochentag aus einem Julianischen Datum
  • jdmonthname — Liefert den Monatsnamen
  • jdtofrench — Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution
  • jdtogregorian — Wandelt eine julianische Tageszahl in ein gregorianischen Datum um
  • jdtojewish — Konvertierung vom Julianischen Datum zum Jüdischen Kalender
  • jdtojulian — Wandelt eine julianische Tageszahl in ein julianisches Kalenderdatum um
  • jdtounix — Konvertiert Julianisches Datum in Unix-Timestamp
  • jewishtojd — Konvertiert vom Jüdischen Kalender zum Julianischen Datum
  • juliantojd — Konvertierung vom Julianischen Kalender zum Julianischen Datum
  • unixtojd — Konvertiert Unix-Timestamp in Julianisches Datum


Gibt die Anzahl der Tage eines bestimmten Monats in einem bestimmten Jahr in einem bestimmten Kalender zurück

  • « Calendar Funktionen
  • cal_from_jd »
  • PHP Manual
  • Calendar Funktionen
  • Gibt die Anzahl der Tage eines bestimmten Monats in einem bestimmten Jahr in einem bestimmten Kalender zurück

cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

cal_days_in_month — Gibt die Anzahl der Tage eines bestimmten Monats in einem bestimmten Jahr in einem bestimmten Kalender zurück

Beschreibung

cal_days_in_month ( int $calendar , int $month , int $year ) : int

Diese Funktion gibt die Anzahl der Tage in einem Monat eines Jahres für den angegebenen Kalender zurück.

Parameter-Liste

calendar

Der zu benutzende Kalender

month

Der Monat im gewünschten Kalender

year

Das Jahr im gewünschten Kalender

Rückgabewerte

Die Länge des Monats im gewünschten Kalender in Tagen

Beispiele

Beispiel #1 cal_days_in_month() Beispiel

<?php
$number = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "August 2003 hatte {$number} Tage";
?>


Konvertiert von Julian Day Count zu einem unterstützten Kalender

  • « cal_days_in_month
  • cal_info »
  • PHP Manual
  • Calendar Funktionen
  • Konvertiert von Julian Day Count zu einem unterstützten Kalender

cal_from_jd

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

cal_from_jd — Konvertiert von Julian Day Count zu einem unterstützten Kalender

Beschreibung

cal_from_jd ( int $jd , int $calendar ) : array

cal_from_jd() Konvertiert den Julian-Tag gegeben in jd in ein Datum des calendar. Unterstützte calendar Werte sind CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH und CAL_FRENCH.

Parameter-Liste

jd

Julian Tag als Integer(Ganzzahl)

calendar

Zu konvertierender Kalender.

Rückgabewerte

Gibt ein Array zurück, das Kalenderinformationen enthält, wie z.B. Monat, Tag, Jahr, Wochentag (dow), abgekürzter und ausgeschriebener Wochentag und Monat und das Datum in einer String-Form wie "month/day/year". Der Wochentag liegt im Bereich von 0 (Sonntag) bis 6 (Samstag).

Beispiele

Beispiel #1 cal_from_jd() Beispiel

<?php
$today = unixtojd(mktime(0, 0, 0, 8, 16, 2003));
print_r(cal_from_jd($today, CAL_GREGORIAN));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [date] => 8/16/2003
    [month] => 8
    [day] => 16
    [year] => 2003
    [dow] => 6
    [abbrevdayname] => Sat
    [dayname] => Saturday
    [abbrevmonth] => Aug
    [monthname] => August
)

Siehe auch

  • cal_to_jd() - Konvertiert von einem unterstützten Kalenderformat in Julian-Format
  • jdtofrench() - Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution
  • jdtogregorian() - Wandelt eine julianische Tageszahl in ein gregorianischen Datum um
  • jdtojewish() - Konvertierung vom Julianischen Datum zum Jüdischen Kalender
  • jdtojulian() - Wandelt eine julianische Tageszahl in ein julianisches Kalenderdatum um
  • jdtounix() - Konvertiert Julianisches Datum in Unix-Timestamp


Gibt Informationen zu einem bestimmten Kalender zurück

  • « cal_from_jd
  • cal_to_jd »
  • PHP Manual
  • Calendar Funktionen
  • Gibt Informationen zu einem bestimmten Kalender zurück

cal_info

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

cal_info — Gibt Informationen zu einem bestimmten Kalender zurück

Beschreibung

cal_info ( int $calendar = -1 ) : array

cal_info() liefert Informationen zum angegebenen Kalender calendar.

Kalenderinformationen werden als ein Array mit den Elementen calname, calsymbol, month, abbrevmonth und maxdaysinmonth zurückgegeben. Als Parameter calendar können folgende Konstanten benutzt werden:

  • 0 oder CAL_GREGORIAN - Gregorianischer Kalender
  • 1 oder CAL_JULIAN - Julianischer Kalender
  • 2 oder CAL_JEWISH - Jüdischer Kalender
  • 3 oder CAL_FRENCH - Kalender der französischen Revolution

Wird kein calendar spezifiziert so werden Informationen über alle unterstützten Kalender als Array zurückgegeben. Diese Funktionalität existiert seit PHP 5.

Parameter-Liste

calendar

Der Kalender für den Informationen zurückgegeben werden sollen. Wird kein Kalender angegeben so werden Informationen für alle Kalender zurckgegeben.

Rückgabewerte

Beispiele

Beispiel #1 cal_info() Beispiel

<?php
$info = cal_info(0);
print_r($info);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [months] => Array
        (
            [1] => January
            [2] => February
            [3] => March
            [4] => April
            [5] => May
            [6] => June
            [7] => July
            [8] => August
            [9] => September
            [10] => October
            [11] => November
            [12] => December
        )

    [abbrevmonths] => Array
        (
            [1] => Jan
            [2] => Feb
            [3] => Mar
            [4] => Apr
            [5] => May
            [6] => Jun
            [7] => Jul
            [8] => Aug
            [9] => Sep
            [10] => Oct
            [11] => Nov
            [12] => Dec
        )

    [maxdaysinmonth] => 31
    [calname] => Gregorian
    [calsymbol] => CAL_GREGORIAN
)


Konvertiert von einem unterstützten Kalenderformat in Julian-Format

  • « cal_info
  • easter_date »
  • PHP Manual
  • Calendar Funktionen
  • Konvertiert von einem unterstützten Kalenderformat in Julian-Format

cal_to_jd

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

cal_to_jd — Konvertiert von einem unterstützten Kalenderformat in Julian-Format

Beschreibung

cal_to_jd ( int $calendar , int $month , int $day , int $year ) : int

cal_to_jd() errechnet den Julian-Tag für ein Datum in calendar. Unterstützte calendar sind CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH und CAL_FRENCH.

Parameter-Liste

calendar

Der zu konvertierende Kalender, einer aus CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH oder CAL_FRENCH.

month

Der Monat als Nummer, die gültige Begrenzung ist abhängig von calendar.

day

Der Tag als Nummer, die gültige Begrenzung ist abhängig von calendar.

year

Jahr als Nummer, die gültige Begrenzung hängt ab von calendar.

Rückgabewerte

Die Julian Tag-Nummer

Siehe auch

  • cal_from_jd() - Konvertiert von Julian Day Count zu einem unterstützten Kalender
  • frenchtojd() - Konvertiert ein Datum des Französischen Revolutionskalenders zu einer julianischen Tageszahl
  • gregoriantojd() - Konvertierung vom Gregorianischen Kalender zum Julianischen Datum
  • jewishtojd() - Konvertiert vom Jüdischen Kalender zum Julianischen Datum
  • juliantojd() - Konvertierung vom Julianischen Kalender zum Julianischen Datum
  • unixtojd() - Konvertiert Unix-Timestamp in Julianisches Datum


Zeitpunkt des Osterfestes (0 Uhr) als Unix-Timestamp

  • « cal_to_jd
  • easter_days »
  • PHP Manual
  • Calendar Funktionen
  • Zeitpunkt des Osterfestes (0 Uhr) als Unix-Timestamp

easter_date

(PHP 4, PHP 5, PHP 7, PHP 8)

easter_date — Zeitpunkt des Osterfestes (0 Uhr) als Unix-Timestamp

Beschreibung

easter_date ( int $year = date("Y") , int $method = CAL_EASTER_DEFAULT ) : int

Diese Funktion liefert den Unix-Timestamp (in Sekunden seit 1970) zurück, der dem Begin des Ostersonntag im durch year spezifizierten Jahr entspricht.

Warnung

Diese Funktion erzeugt eine Warnung, wenn das Jahr außerhalb des Bereichs für Unix-Zeitstempel liegt (d.h. typischer Weise vor 1970 oder nach 2037 auf 32-bit-Systemen).

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.

Parameter-Liste

year

Das Jahr als Zahl zwischen 1970 und 2037. Wenn nicht angegeben, wird das aktuelle Jahr gemäß der lokalen Zeit verwendet.

method

Ermöglicht die Berechnung des Osterdatums basierend auf dem Julianischen Kalender, wenn auf CAL_EASTER_ALWAYS_JULIAN gesetzt. Siehe auch calendar constants.

Rückgabewerte

Das Osterdatum als Unix Timestamp.

Beispiele

Beispiel #1 easter_date() Beispiel

<?php

echo date("M-d-Y", easter_date(1999));        // Apr-04-1999
echo date("M-d-Y", easter_date(2000));        // Apr-23-2000
echo date("M-d-Y", easter_date(2001));        // Apr-15-2001

?>

Anmerkungen

Hinweis:

easter_date() verlässt sich auf die Zeitfunktionen der C Bibliothek des Systems anstatt die internen Datums- und Zeitfunktionen von PHP zu verwenden. Infolgedessen verwendet easter_date() die TZ Umgebungsvariable um die Zeitzone zu bestimmen, in der sie arbeiten soll, anstatt PHPs default time zone zu verwenden, was unerwartetes Verhalten zur Folge haben kann, wenn diese Funktion in Verbindung mit anderen Datumsfunktionen in PHP verwendet wird.

Als Workaround kann easter_days() mit DateTime und DateInterval verwendet werden, um den Beginn von Ostern in Ihrer PHP Zeitzone wie folgt zu berechnen:

<?php
function get_easter_datetime($year) {
    $base = new DateTime("$year-03-21");
    $days = easter_days($year);

    return $base->add(new DateInterval("P{$days}D"));
}

foreach (range(2012, 2015) as $year) {
    printf("Ostern %d ist am %s\n",
           $year,
           get_easter_datetime($year)->format('j.n.'));
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ostern 2012 ist am 8.4.
Ostern 2013 ist am 31.3.
Ostern 2014 ist am 20.4.
Ostern 2015 ist am 5.4.

Siehe auch

  • easter_days() - Anzahl der Tage zwischen dem 21. März und Ostersonntag zur Berechnung des Osterdatums vor 1970 oder nach 2037


Anzahl der Tage zwischen dem 21. März und Ostersonntag

  • « easter_date
  • frenchtojd »
  • PHP Manual
  • Calendar Funktionen
  • Anzahl der Tage zwischen dem 21. März und Ostersonntag

easter_days

(PHP 4, PHP 5, PHP 7, PHP 8)

easter_days — Anzahl der Tage zwischen dem 21. März und Ostersonntag

Beschreibung

easter_days ( int $year = date("Y") , int $method = CAL_EASTER_DEFAULT ) : int

Berechnet die Anzahl der Tage zwischen dem 21. März und Ostersonntag für das Jahr year.

Die Funktion kann an Stelle von easter_date() genutzt werden um auch für Jahre außerhalb des Wertebereichs von Unix Timestamps (also vor 1970 bzw. nach 2037) das Osterdatum zu bestimmen.

Das Osterdatum wurde von dem Konzil von Nicea im Jahr 325 auf den ersten Sonntag nach dem ersten Frühlingsvollmond nach der Tag- und Nachtgleiche festgelegt. Es wird dabei angenommen das die Tag- und Nachtgleiche immer auf den 21. März fällt so daß sich die Berechnung auf die Bestimmung des nächsten Vollmonds und des darauf folgenden Sonntags reduziert. Die dazu benutzten Algorithmen wurden um das Jahr 532 von Dionysius Exiguus eingeführt. Innerhalb des Julianischen Kalenders (für Jahre vor 1753) wird der Bestimmung der Mondphasen ein einfacher Zyklus von 19 Jahren zugrunde gelegt. Im Gregorianischen Kalender (für Jahre nach 1753 - erdacht von Clavius und Lilius, zuerst eingeführt von Papst Gregor XIII im Oktober 1582 und im September 1752 auch von Britanien und seinen Kolonien übernommen) wurden zwei zusätzliche Korrekturfaktoren eingeführt um die Genauigkeit der Berechnungen zu erhöhen.

Parameter-Liste

year

Das Jahr als eine Zahl größer 0. Wenn nicht angegeben, wird das aktuelle Jahr gemäß der lokalen Zeit verwendet.

method

Ermöglicht die Berechnung auf Basis des Gregorianischen Kalenders für den Zeitraum von 1582 bis 1752 wenn CAL_EASTER_ROMAN übergeben wird. Eine vollständige Liste der Kalenderkonstanten finden Sie unter calendar constants.

Rückgabewerte

Die Anzahl der Tage die der Ostersonntag im gegebenen Jahr hinter dem 21ten März liegt.

Beispiele

Beispiel #1 easter_days() Beispiel

<?php

echo easter_days(1999);        // 14, also April 4
echo easter_days(1492);        // 32, also April 22
echo easter_days(1913);        //  2, also March 23

?>

Siehe auch

  • easter_date() - Zeitpunkt des Osterfestes (0 Uhr) als Unix-Timestamp


Konvertiert ein Datum des Französischen Revolutionskalenders zu einer julianischen Tageszahl

  • « easter_days
  • gregoriantojd »
  • PHP Manual
  • Calendar Funktionen
  • Konvertiert ein Datum des Französischen Revolutionskalenders zu einer julianischen Tageszahl

frenchtojd

(PHP 4, PHP 5, PHP 7, PHP 8)

frenchtojd — Konvertiert ein Datum des Französischen Revolutionskalenders zu einer julianischen Tageszahl

Beschreibung

frenchtojd ( int $month , int $day , int $year ) : int

Konvertiert ein Datum des Französischen Revolutionskalenders zu einer julianischen Tageszahl.

Diese Routinen verarbeiten 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.

Parameter-Liste

month

Der Monat als Zahl von 1 (für Vendémiaire) bis 13 (für den Zeitraum von 5-6 Tagen am Ende jeden Jahres)

day

Der Tag als Zahl von 1 bis 30

year

Das Jahr als Zahl von 1 bis 14

Rückgabewerte

Der Julianische Tag für das übergebene Französische Revolutionsdatum als Integer.

Siehe auch

  • jdtofrench() - Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution
  • cal_to_jd() - Konvertiert von einem unterstützten Kalenderformat in Julian-Format


Konvertierung vom Gregorianischen Kalender zum Julianischen Datum

  • « frenchtojd
  • jddayofweek »
  • PHP Manual
  • Calendar Funktionen
  • Konvertierung vom Gregorianischen Kalender zum Julianischen Datum

gregoriantojd

(PHP 4, PHP 5, PHP 7, PHP 8)

gregoriantojd — Konvertierung vom Gregorianischen Kalender zum Julianischen Datum

Beschreibung

gregoriantojd ( int $month , int $day , int $year ) : int

Diese Funktion konvertiert das in month, day und year übergebene Datum im Gregorianischen Kalender in einen Tag im Julianischen Datum.

Der gültige Zeitraum für den gregorianischen Kalender ist vom 25. November 4714 v. Chr. bis mindestens zum 31. Dezember 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.

Parameter-Liste

month

Der Monat als Zahl zwischen 1 (für Januar) und 12 (für Dezember)

day

Der Tag als Zahl zwischen 1 und 31. Hat der Monat weniger Tage als angegeben, tritt ein Überlauf auf; siehe das Beispiel weiter unten.

year

Das Jahr als Zahl zwischen -4714 und 9999. Negative Zahlen bedeuten v. Chr., positive Zahlen bedeuten n.Chr. Es ist zu beachten, dass es kein Jahr 0 gibt; auf den 31. Dezember 1 v.Chr. folgt direkt der 1. Januar 1 n. Chr.

Rückgabewerte

Der Julianische Tag für das gegebene Gregorianische Datum als Integer. Für Daten außerhalb des gültigen Bereichs wird 0 zurückgegeben.

Beispiele

Beispiel #1 Caledar Funktionen

<?php
$jd = gregoriantojd(10, 11, 1970);
echo "$jd\n";
$gregorian = jdtogregorian($jd);
echo "$gregorian\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2440871
10/11/1970

Beispiel #2 Überlaufverhalten

<?php
echo gregoriantojd(2, 31, 2018), PHP_EOL,
     gregoriantojd(3,  3, 2018), PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2458181
2458181

Siehe auch

  • jdtogregorian() - Wandelt eine julianische Tageszahl in ein gregorianischen Datum um
  • cal_to_jd() - Konvertiert von einem unterstützten Kalenderformat in Julian-Format


Bestimmt den Wochentag aus einem Julianischen Datum

  • « gregoriantojd
  • jdmonthname »
  • PHP Manual
  • Calendar Funktionen
  • Bestimmt den Wochentag aus einem Julianischen Datum

jddayofweek

(PHP 4, PHP 5, PHP 7, PHP 8)

jddayofweek — Bestimmt den Wochentag aus einem Julianischen Datum

Beschreibung

jddayofweek ( int $julianday , int $mode = CAL_DOW_DAYNO ) : mixed

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.

Parameter-Liste

julianday

Ein Julianischer Tag als Integer

mode
Calendar Wochenmodi
Modus | Bedeutung
0 (Default) | Rückgabe des Wochentages als Zahl (0=Sonntag, 1=Montag, etc.)
1 | Rückgabe des Wochentages als String (in Englisch) (English-Gregorian)
2 | Rückgabe des Wochentages als abgekürzter String (in Englisch)

Rückgabewerte

Der Gregorianische Wochentag als Integer oder String.


Liefert den Monatsnamen

  • « jddayofweek
  • jdtofrench »
  • PHP Manual
  • Calendar Funktionen
  • Liefert den Monatsnamen

jdmonthname

(PHP 4, PHP 5, PHP 7, PHP 8)

jdmonthname — Liefert den Monatsnamen

Beschreibung

jdmonthname ( int $julianday , int $mode ) : string

Gibt eine Zeichenkette zurück, die einen Monatsnamen enthält. mode teilt dieser Funktion mit, in welchen Kalender die julianische Tageszahl umgewandelt werden soll, und welche Art von Monatsnamen zurückgegeben werden sollen.

Mögliche mode-Werte
Modus | Bedeutung | Werte
CAL_MONTH_GREGORIAN_SHORT | Gregorianisch (Abk.) | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
CAL_MONTH_GREGORIAN_LONG | Gregorianisch | January, February, March, April, May, June, July, August, September, October, November, December
CAL_MONTH_JULIAN_SHORT | Julianisch - (Abk.) | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
CAL_MONTH_JULIAN_LONG | Julianisch | January, February, March, April, May, June, July, August, September, October, November, December
CAL_MONTH_JEWISH | Jüdisch | Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
CAL_MONTH_FRENCH | Französisch revolutionär | Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial, Messidor, Thermidor, Fructidor, Extra

Parameter-Liste

jday

Ein Julianischer Tag als Integer.

mode

Der Kalender-Modus (siehe Tabelle weiter oben).

Rückgabewerte

Der Monatsname für den gegebene julianischen Tag im gewünschten mode.


Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution

  • « jdmonthname
  • jdtogregorian »
  • PHP Manual
  • Calendar Funktionen
  • Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution

jdtofrench

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtofrench — Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution

Beschreibung

jdtofrench ( int $juliandaycount ) : string

Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution

Parameter-Liste

julianday

Ein Julianischer Tag als Integer

Rückgabewerte

Ein Französisches Revolutionsdatum als String in der Form "Monat/Tag/Yahr"

Siehe auch

  • frenchtojd() - Konvertiert ein Datum des Französischen Revolutionskalenders zu einer julianischen Tageszahl
  • cal_from_jd() - Konvertiert von Julian Day Count zu einem unterstützten Kalender


Wandelt eine julianische Tageszahl in ein gregorianischen Datum um

  • « jdtofrench
  • jdtojewish »
  • PHP Manual
  • Calendar Funktionen
  • Wandelt eine julianische Tageszahl in ein gregorianischen Datum um

jdtogregorian

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtogregorian — Wandelt eine julianische Tageszahl in ein gregorianischen Datum um

Beschreibung

jdtogregorian ( int $julianday ) : string

Wandelt eine julianische Tageszahl in eine Zeichenkette um, die das gregorianische Datum im Format "Monat/Tag/Jahr" enthält.

Parameter-Liste

julianday

Eine julianischer Tageszahl als Integer.

Rückgabewerte

Das gregorianische Datum als Zeichenkette der Form "Monat/Tag/Jahr".

Siehe auch

  • gregoriantojd() - Konvertierung vom Gregorianischen Kalender zum Julianischen Datum
  • cal_from_jd() - Konvertiert von Julian Day Count zu einem unterstützten Kalender


Konvertierung vom Julianischen Datum zum Jüdischen Kalender

  • « jdtogregorian
  • jdtojulian »
  • PHP Manual
  • Calendar Funktionen
  • Konvertierung vom Julianischen Datum zum Jüdischen Kalender

jdtojewish

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtojewish — Konvertierung vom Julianischen Datum zum Jüdischen Kalender

Beschreibung

jdtojewish ( int $juliandaycount , bool $hebrew = false , int $fl = 0 ) : string

Diese Funktion konvertiert den in julianday angegebenen Tag im Julianischen Datum in den Jüdischen Kalender.

Parameter-Liste

julianday

Ein Julianischer Tag als Integer

hebrew

Wird dieser Parameter auf true gesetzt, so wird das Jüdische Datum als hebräischer ISO-8859-8 kodierter String gemäß dem im Parameter fl festgelegten Format zurückgegeben.

fl

Eine Bitmaske bestehend aus CAL_JEWISH_ADD_ALAFIM_GERESH, CAL_JEWISH_ADD_ALAFIM und CAL_JEWISH_ADD_GERESHAYIM.

Rückgabewerte

Das jüdische Datum als String in der Form "Monat/Tag/Jahr", oder eine ISO-8859-8 kodierte hebräische Datumszeichenkette gemäß dem hebrew Parameter.

Beispiele

Beispiel #1 jdtojewish()-Beispiel

<?php
$jd = gregoriantojd(10, 8, 2002);
echo jdtojewish($jd, true), PHP_EOL,
     jdtojewish($jd, true, CAL_JEWISH_ADD_GERESHAYIM), PHP_EOL,
     jdtojewish($jd, true, CAL_JEWISH_ADD_ALAFIM), PHP_EOL,
     jdtojewish($jd, true,CAL_JEWISH_ADD_ALAFIM_GERESH), PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

? ???? ?????
?' ???? ????"?
? ???? ? ????? ????
? ???? ?'????

Siehe auch

  • jewishtojd() - Konvertiert vom Jüdischen Kalender zum Julianischen Datum
  • cal_from_jd() - Konvertiert von Julian Day Count zu einem unterstützten Kalender


Wandelt eine julianische Tageszahl in ein julianisches Kalenderdatum um

  • « jdtojewish
  • jdtounix »
  • PHP Manual
  • Calendar Funktionen
  • Wandelt eine julianische Tageszahl in ein julianisches Kalenderdatum um

jdtojulian

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtojulian — Wandelt eine julianische Tageszahl in ein julianisches Kalenderdatum um

Beschreibung

jdtojulian ( int $julianday ) : string

Wandelt eine julianische Tageszahl in eine Zeichenkette um, die das julianische Kalenderdatum im Form "Monat/Tag/Year" enthält.

Parameter-Liste

julianday

Eine julianische Tageszahl als Integer.

Rückgabewerte

Ein julianisches Kalenderdatum als Zeichenkette in der Form "Monat/Tag/Jahr".

Siehe auch

  • juliantojd() - Konvertierung vom Julianischen Kalender zum Julianischen Datum
  • cal_from_jd() - Konvertiert von Julian Day Count zu einem unterstützten Kalender


Konvertiert Julianisches Datum in Unix-Timestamp

  • « jdtojulian
  • jewishtojd »
  • PHP Manual
  • Calendar Funktionen
  • Konvertiert Julianisches Datum in Unix-Timestamp

jdtounix

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtounix — Konvertiert Julianisches Datum in Unix-Timestamp

Beschreibung

jdtounix ( int $jday ) : int

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. Die zurückgelieferte Zeit ist UTC.

Parameter-Liste

jday

Ein Julianischer Tag zwischen 2440588 and 2465342.

Rückgabewerte

Der Unix-Timestamp für den Anfang (Mitternacht, nicht Mittag) des gegebenen Julianischen Tages.

Siehe auch

  • unixtojd() - Konvertiert Unix-Timestamp in Julianisches Datum


Konvertiert vom Jüdischen Kalender zum Julianischen Datum

  • « jdtounix
  • juliantojd »
  • PHP Manual
  • Calendar Funktionen
  • Konvertiert vom Jüdischen Kalender zum Julianischen Datum

jewishtojd

(PHP 4, PHP 5, PHP 7, PHP 8)

jewishtojd — Konvertiert vom Jüdischen Kalender zum Julianischen Datum

Beschreibung

jewishtojd ( int $month , int $day , int $year ) : int

Obwohl diese Funktion mit Werten bis zurück zum Jahr 1 (3761 v.Chr.) arbeiten kann, wird eine solche Nutzen nicht empfohlen. Der Jüdische Kalender wurde mehrere tausend Jahre lang benutzt, aber in den frühen Tagen existierte keine Formel, um den Monatsanfang zu bestimmen. Ein neuer Monat begann, wenn der Neumond beobachtet wurde.

Parameter-Liste

month

Der Monat als Zahl zwischen 1 und 13, wobei 1 für Tishri, 13 für Elul, und 6 und 7 für Adar in regulären Jahren steht, aber für Adar I bzw. Adar II in Schaltjahren.

day

Der Tag als Zahl zwischen 1 und 30. Hat der Monat nur 29 Tage, wird der erste Tag des folgenden Monats angenommen.

year

Das Jahr als Zahl zwischen 1 und 9999

Rückgabewerte

Der Julianische Tag für das gegebene Jüdische Datum als Integer.

Siehe auch

  • jdtojewish() - Konvertierung vom Julianischen Datum zum Jüdischen Kalender
  • cal_to_jd() - Konvertiert von einem unterstützten Kalenderformat in Julian-Format


Konvertierung vom Julianischen Kalender zum Julianischen Datum

  • « jewishtojd
  • unixtojd »
  • PHP Manual
  • Calendar Funktionen
  • Konvertierung vom Julianischen Kalender zum Julianischen Datum

juliantojd

(PHP 4, PHP 5, PHP 7, PHP 8)

juliantojd — Konvertierung vom Julianischen Kalender zum Julianischen Datum

Beschreibung

juliantojd ( int $month , int $day , int $year ) : int

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.

Achtung

Bitte beachten Sie, dass der weltweit genutzte Kalender der Gregorianische und nicht der Julianische Kalender ist. Für diesen Kalender kann die Funktion gregoriantojd() genutzt werden.

Parameter-Liste

month

Der Monat als Zahl von 1 (für Januar) bis 12 (für Dezember)

day

Der Tag als Zahl von 1 bis 31

year

Das Jahr als Zahl zwischen -4713 und 9999

Rückgabewerte

Der Julianische Tag für das angegebene Julianische Datum als Integer.

Siehe auch

  • jdtojulian() - Wandelt eine julianische Tageszahl in ein julianisches Kalenderdatum um
  • cal_to_jd() - Konvertiert von einem unterstützten Kalenderformat in Julian-Format


Konvertiert Unix-Timestamp in Julianisches Datum

  • « juliantojd
  • Datum/Uhrzeit »
  • PHP Manual
  • Calendar Funktionen
  • Konvertiert Unix-Timestamp in Julianisches Datum

unixtojd

(PHP 4, PHP 5, PHP 7, PHP 8)

unixtojd — Konvertiert Unix-Timestamp in Julianisches Datum

Beschreibung

unixtojd ( int $timestamp = time() ) : int

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. In beiden Fällen wird die Zeit als lokale Zeit (nicht UTC) angesehen.

Parameter-Liste

timestamp

Ein zu konvertierender Unix Timestamp.

Rückgabewerte

Ein Julianischer Tag als Integer.

Siehe auch

  • jdtounix() - Konvertiert Julianisches Datum in Unix-Timestamp


Datum und Uhrzeit

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Date/Time Arithmetic
  • DateTime — Die DateTime Klasse
    • DateTime::add — Addiert einen Wert von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden zu einem DateTime-Objekt
    • DateTime::__construct — Gibt ein neues DateTime Objekt zurück
    • DateTime::createFromFormat — Parses a time string according to a specified format
    • DateTime::createFromImmutable — Returns new DateTime object encapsulating the given DateTimeImmutable object
    • DateTime::createFromInterface — Returns new DateTime object encapsulating the given DateTimeInterface object
    • DateTime::getLastErrors — Gibt die Warnungen und Fehler zurück
    • DateTime::modify — Ändert den Zeitstempel
    • DateTime::__set_state — Der __set_state Handler
    • DateTime::setDate — Sets the date
    • DateTime::setISODate — Sets the ISO date
    • DateTime::setTime — Sets the time
    • DateTime::setTimestamp — Legt Datum und Zeit basierend auf einem Unix-Zeitstempel fest
    • DateTime::setTimezone — Legt die Zeitzone für ein DateTime Objekt fest
    • DateTime::sub — Subtrahiert eine Anzahl von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden von einem DateTime-Objekt.
  • DateTimeImmutable — Die DateTimeImmutable Klasse
    • DateTimeImmutable::add — Adds an amount of days, months, years, hours, minutes and seconds
    • DateTimeImmutable::__construct — Returns new DateTimeImmutable object
    • DateTimeImmutable::createFromFormat — Parses a time string according to a specified format
    • DateTimeImmutable::createFromInterface — Returns new DateTimeImmutable object encapsulating the given DateTimeInterface object
    • DateTimeImmutable::createFromMutable — Returns new DateTimeImmutable object encapsulating the given DateTime object
    • DateTimeImmutable::getLastErrors — Returns the warnings and errors
    • DateTimeImmutable::modify — Creates a new object with modified timestamp
    • DateTimeImmutable::__set_state — The __set_state handler
    • DateTimeImmutable::setDate — Sets the date
    • DateTimeImmutable::setISODate — Sets the ISO date
    • DateTimeImmutable::setTime — Sets the time
    • DateTimeImmutable::setTimestamp — Sets the date and time based on a Unix timestamp
    • DateTimeImmutable::setTimezone — Sets the time zone
    • DateTimeImmutable::sub — Subtracts an amount of days, months, years, hours, minutes and seconds
  • DateTimeInterface — Das DateTimeInterface Interface
    • DateTime::diff — Returns the difference between two DateTime objects
    • DateTime::format — Returns date formatted according to given format
    • DateTime::getOffset — Returns the timezone offset
    • DateTime::getTimestamp — Gets the Unix timestamp
    • DateTime::getTimezone — Return time zone relative to given DateTime
    • DateTime::__wakeup — The __wakeup handler
  • DateTimeZone — Die DateTimeZone Klasse
    • DateTimeZone::__construct — Erstellt neues DateTimeZone Objekt
    • DateTimeZone::getLocation — Returns location information for a timezone
    • DateTimeZone::getName — Returns the name of the timezone
    • DateTimeZone::getOffset — Returns the timezone offset from GMT
    • DateTimeZone::getTransitions — Returns all transitions for the timezone
    • DateTimeZone::listAbbreviations — Returns associative array containing dst, offset and the timezone name
    • DateTimeZone::listIdentifiers — Returns a numerically indexed array containing all defined timezone identifiers
  • DateInterval — Die DateInterval Klasse
    • DateInterval::__construct — Erstellt ein neues DateInterval Objekt
    • DateInterval::createFromDateString — Bildet ein DateInterval aus relativen Teilen des Strings
    • DateInterval::format — Formats the interval
  • DatePeriod — Die DatePeriod Klasse
    • DatePeriod::__construct — Erstellt ein neues DatePeriod Objekt
    • DatePeriod::getDateInterval — Gets the interval
    • DatePeriod::getEndDate — Gets the end date
    • DatePeriod::getRecurrences — Gets the number of recurrences
    • DatePeriod::getStartDate — Gets the start date
  • Datum/Uhrzeit Funktionen
    • checkdate — Prüft ein Gregorianisches Datum auf Gültigkeit
    • date_add — Alias von DateTime::add
    • date_create_from_format — Alias von DateTime::createFromFormat
    • date_create_immutable_from_format — Alias von DateTimeImmutable::createFromFormat
    • date_create_immutable — Alias von DateTimeImmutable::__construct
    • date_create — Alias von DateTime::__construct
    • date_date_set — Alias von DateTime::setDate
    • date_default_timezone_get — Gets the default timezone used by all date/time functions in a script
    • date_default_timezone_set — Setzt die Standardzeitzone, die von allen Datums- und Zeitfunktionen benutzt wird.
    • date_diff — Alias von DateTime::diff
    • date_format — Alias von DateTime::format
    • date_get_last_errors — Alias von DateTime::getLastErrors
    • date_interval_create_from_date_string — Alias von DateInterval::createFromDateString
    • date_interval_format — Alias von DateInterval::format
    • date_isodate_set — Alias von DateTime::setISODate
    • date_modify — Alias von DateTime::modify
    • date_offset_get — Alias von DateTime::getOffset
    • date_parse_from_format — Get info about given date formatted according to the specified format
    • date_parse — Returns associative array with detailed info about given date/time
    • date_sub — Alias von DateTime::sub
    • date_sun_info — Returns an array with information about sunset/sunrise and twilight begin/end
    • date_sunrise — Returns time of sunrise for a given day and location
    • date_sunset — Returns time of sunset for a given day and location
    • date_time_set — Alias von DateTime::setTime
    • date_timestamp_get — Alias von DateTime::getTimestamp
    • date_timestamp_set — Alias von DateTime::setTimestamp
    • date_timezone_get — Alias von DateTime::getTimezone
    • date_timezone_set — Alias von DateTime::setTimezone
    • date — Formatiert ein(e) angegebene(s) Ortszeit/Datum
    • getdate — Gibt Datums- und Zeitinformationen zurück
    • gettimeofday — Ermittelt die aktuelle Zeit
    • gmdate — Formatiert eine GMT/UTC Zeit-/Datumsangabe
    • gmmktime — Gibt einen Unix-Timestamp (Zeitstempel) für ein GMT Datum zurück
    • gmstrftime — Formatiert eine Datum-/Zeitangabe in GMT/UTC-Format entsprechend den lokalen Einstellungen
    • idate — Format a local time/date as integer
    • localtime — Ermittelt die lokale Zeit
    • microtime — Gibt den aktuellen Unix-Timestamp/Zeitstempel mit Mikrosekunden zurück
    • mktime — Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück
    • strftime — Formatiere eine Zeit-/Datumsangabe gemäß dem Gebietsschema
    • strptime — Parse a time/date generated with strftime
    • strtotime — Wandelt ein beliebiges in englischer Textform angegebenes Datum in einen UNIX-Zeitstempel (Timestamp) um
    • time — Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück
    • timezone_abbreviations_list — Alias von DateTimeZone::listAbbreviations
    • timezone_identifiers_list — Alias von DateTimeZone::listIdentifiers
    • timezone_location_get — Alias von DateTimeZone::getLocation
    • timezone_name_from_abbr — Gibt den Namen der Zeitzonenabkürzung zurück
    • timezone_name_get — Alias von DateTimeZone::getName
    • timezone_offset_get — Alias von DateTimeZone::getOffset
    • timezone_open — Alias von DateTimeZone::__construct
    • timezone_transitions_get — Alias von DateTimeZone::getTransitions
    • timezone_version_get — Gets the version of the timezonedb
  • Supported Date and Time Formats
    • Time Formats
    • Date Formats
    • Compound Formats
    • Relative Formats
  • Liste unterstützter Zeitzonen
    • Afrika
    • Amerika
    • Antarktis
    • Arktis
    • Asien
    • Atlantisch
    • Australien
    • Europa
    • Indisch
    • Pazifisch
    • Andere


Einführung

Diese Funktionen ermöglichen es Ihnen, Datums- und Zeitangaben vom Server, auf dem PHP läuft, abzufragen. Die Ausgabe von Datums- und Zeitangaben kann mit Hilfe dieser Funktionen in unterschiedlichster Weise formatiert werden.

Die Datums und Zeit Information wird intern in einem 64-Bit Integer gespeichert, also werden alle sinvoll denkbaren Daten unterstützt (unter anderem negative Jahre). Der darstellbare Bereich liegt zwischen etwa bei 292 Milliarden Jahren in die Vergangenheit und genauso viel in die Zukunft.

Hinweis: Beachten Sie bitte, dass diese Funktionen von den lokalen Systemeinstellungen Ihres Servers abhängen. Ein besonderes Augenmerk sollten Sie auf Sommer- und Winterzeit (nutzen Sie z.B. $date = $date->modify('+7 days') und nicht $date += 7*24*60*60) und Schaltjahre haben.

Hinweis: Die in diesem Abschnitt referenzierten Zeitzonen können in Liste unterstützter Zeitzonen gefunden werden.


Installation

Für diese Funktionen ist keine Installation erforderlich, diese gehören zum Grundbestand von PHP.

Hinweis: Aktualisieren der Zeitzonen-Datenbank

Die jeweils aktuellste Version der Zeitzonen-Datenbank kann über das PECL-Paket » timezonedb installiert werden.

Hinweis: Experimentelle DateTime-Unterstützung in PHP 5.1.x

Obwohl die Klasse DateTime (und damit zusammenhängende Funktionen) erst seit PHP 5.2.0 standardmäßig aktiviert sind, ist es möglich experimentellen Support hierfür bereits in PHP 5.1.x mit Hilfe des folgenden Flags vor configure/compile zu aktivieren: CFLAGS=-DEXPERIMENTAL_DATE_SUPPORT=1


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Datums/Zeit-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
date.default_latitude | "31.7667" | PHP_INI_ALL |
date.default_longitude | "35.2333" | PHP_INI_ALL |
date.sunrise_zenith | "90.583333" | PHP_INI_ALL |
date.sunset_zenith | "90.583333" | PHP_INI_ALL |
date.timezone | "" | PHP_INI_ALL | Verfügbar von PHP 5.1.0 an.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

date.default_latitude float

Vorgabe-Breitengrad.

date.default_longitude float

Vorgabe-Längengrad.

date.sunrise_zenith float

Vorgabe-Sonnenaufgangszenit.

date.sunset_zenith float

Vorgabe-Sonnenuntergangszenit.

date.timezone string

Die Vorgabe-Zeitzone, die von allen Datums- und Zeitfunktionen genutzt wird. Vor PHP 5.4.0 funktionierte dies nur, wenn die Umgebungsvariable TZ nicht gesetzt war. Die Rangfolge, welche Zeitzone verwendet wird, wenn keine explizit angegeben ist, wird auf der Seite date_default_timezone_get() beschrieben. Siehe Liste unterstützter Zeitzonen für eine Liste der unterstützten Zeitzonen.

Hinweis: Die ersten vier Konfigurationsoptionen werden zur Zeit nur von den Funktionen date_sunrise() und date_sunset() genutzt.


Vordefinierte Konstanten

Die DATE_-Konstanten sind ab PHP 5.1.1 definiert und bieten vorbereitetet Standard-Datenformate, diese können zusammen mit den Datumsfunktionen (wie date()) eingesetzt werden.

Die folgenden Konstanten existieren seit PHP 5.1.2, sie spezifizieren Rückgabeformate für die Funktionen date_sunrise() und date_sunset().

SUNFUNCS_RET_TIMESTAMP (integer)
Timestamp
SUNFUNCS_RET_STRING (integer)
Stunde:Minute (z.B. 08:02)
SUNFUNCS_RET_DOUBLE (integer)
Stunden als Fließkommawert (z.B. 8.75)


  • « Vordefinierte Konstanten
  • Date/Time Arithmetic »
  • PHP Manual
  • Datum/Uhrzeit
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Date/Time Arithmetic


Date/Time Arithmetic

The following examples show some pitfalls of Date/Time arithmetic with regard to DST transitions and months having different numbers of days.

Beispiel #1 DateTimeImmutable::add/sub add intervals which cover elapsed time

Adding PT24H over a DST transition will appear to add 23/25 hours (for most timezones).

<?php
$dt = new DateTimeImmutable("2015-11-01 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->add(new DateInterval("PT3H"));
echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Start: 2015-11-01 00:00:00 -04:00
End:   2015-11-01 02:00:00 -05:00

Beispiel #2 DateTimeImmutable::modify and strtotime increment or decrement individual component values

Adding +24 hours over a DST transition will add exactly 24 hours as seen in the date/time string (unless the start or end time is on a transition point).

<?php
$dt = new DateTimeImmutable("2015-11-01 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("+24 hours");
echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Start: 2015-11-01 00:00:00 -04:00
End:   2015-11-02 00:00:00 -05:00

Beispiel #3 Adding or subtracting times can over- or underflow dates

Like where January 31st + 1 month will result in March 2nd (leap year) or 3rd (normal year).

<?php
echo "Normal year:\n"; // February has 28 days
$dt = new DateTimeImmutable("2015-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("+1 month");
echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;

echo "Leap year:\n"; // February has 29 days
$dt = new DateTimeImmutable("2016-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("+1 month");
echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Normal year:
Start: 2015-01-31 00:00:00 -05:00
End:   2015-03-03 00:00:00 -05:00
Leap year:
Start: 2016-01-31 00:00:00 -05:00
End:   2016-03-02 00:00:00 -05:00

To get the last day of the next month (i.e. to prevent the overflow), the last day of format is available as of PHP 5.3.0.

<?php
echo "Normal year:\n"; // February has 28 days
$dt = new DateTimeImmutable("2015-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("last day of next month");
echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;

echo "Leap year:\n"; // February has 29 days
$dt = new DateTimeImmutable("2016-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("last day of next month");
echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Normal year:
Start: 2015-01-31 00:00:00 -05:00
End:   2015-02-28 00:00:00 -05:00
Leap year:
Start: 2016-01-31 00:00:00 -05:00
End:   2016-02-29 00:00:00 -05:00


Die DateTime Klasse

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Einführung

Diese Klasse verhält sich wie die Klasse DateTimeImmutable, außer dass die Objekte selbst verändert werden, wenn Modifizierungsmethoden wie DateTime::modify() aufgerufen werden.

Klassenbeschreibung

DateTime implements DateTimeInterface {
/* Geerbte Konstanten */
const string DateTimeInterface::ATOM = "Y-m-d\TH:i:sP" ;
const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T" ;
const string DateTimeInterface::ISO8601 = "Y-m-d\TH:i:sO" ;
const string DateTimeInterface::RFC822 = "D, d M y H:i:s O" ;
const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T" ;
const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O" ;
const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O" ;
const string DateTimeInterface::RFC7231 = "D, d M Y H:i:s \G\M\T" ;
const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O" ;
const string DateTimeInterface::RFC3339 = "Y-m-d\TH:i:sP" ;
const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\TH:i:s.vP" ;
const string DateTimeInterface::RSS = "D, d M Y H:i:s O" ;
const string DateTimeInterface::W3C = "Y-m-d\TH:i:sP" ;
/* Methoden */
public __construct ( string $datetime = "now" , DateTimeZone $timezone = null )
public add ( DateInterval $interval ) : DateTime
public static createFromFormat ( string $format , string $datetime , DateTimeZone|null $timezone = null ) : DateTime|false
public static createFromImmutable ( DateTimeImmutable $object ) : DateTime
public static createFromInterface ( DateTimeInterface $object ) : DateTime
public static getLastErrors ( ) : array
public modify ( string $modifier ) : DateTime
public static __set_state ( array $array ) : DateTime
public setDate ( int $year , int $month , int $day ) : DateTime
public setISODate ( int $year , int $week , int $dayOfWeek = 1 ) : DateTime
public setTime ( int $hour , int $minute , int $second = 0 , int $microsecond = 0 ) : DateTime
public setTimestamp ( int $timestamp ) : DateTime
public setTimezone ( DateTimeZone $timezone ) : DateTime
public sub ( DateInterval $interval ) : DateTime
public diff ( DateTimeInterface $targetObject , bool $absolute = false ) : DateInterval
public format ( string $format ) : string
public getOffset ( ) : int
public getTimestamp ( ) : int
public getTimezone ( ) : DateTimeZone|false
public __wakeup ( ) : void
}

Changelog

Version | Beschreibung
7.2.0 | Die Klassenkonstanten von DateTime sind nun in DateTimeInterface definiert.
7.0.0 | Die Konstanten DATE_RFC3339_EXTENDED und DateTime::RFC3339_EXTENDED wurden hinzugefügt.
5.5.0 | Die Klasse implementiert nun DateTimeInterface.
5.4.24 | Die Konstante COOKIE verwendet nun vier Ziffern für das Jahr gemäß RFC 1036 statt wie zuvor zwei Ziffern (RFC 850).
5.2.2 | DateTime-Objekt im Vergleich mit den Vergleichs-Operatoren funktioniert nun so wie erwartet. Zuvor wurden alle DateTime-Objekte als gleich betrachtet (unter Verwendung von ==).

Inhaltsverzeichnis

  • DateTime::add — Addiert einen Wert von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden zu einem DateTime-Objekt
  • DateTime::__construct — Gibt ein neues DateTime Objekt zurück
  • DateTime::createFromFormat — Parses a time string according to a specified format
  • DateTime::createFromImmutable — Returns new DateTime object encapsulating the given DateTimeImmutable object
  • DateTime::createFromInterface — Returns new DateTime object encapsulating the given DateTimeInterface object
  • DateTime::getLastErrors — Gibt die Warnungen und Fehler zurück
  • DateTime::modify — Ändert den Zeitstempel
  • DateTime::__set_state — Der __set_state Handler
  • DateTime::setDate — Sets the date
  • DateTime::setISODate — Sets the ISO date
  • DateTime::setTime — Sets the time
  • DateTime::setTimestamp — Legt Datum und Zeit basierend auf einem Unix-Zeitstempel fest
  • DateTime::setTimezone — Legt die Zeitzone für ein DateTime Objekt fest
  • DateTime::sub — Subtrahiert eine Anzahl von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden von einem DateTime-Objekt.


Addiert einen Wert von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden zu einem DateTime-Objekt

  • « DateTime
  • DateTime::__construct »
  • PHP Manual
  • DateTime
  • Addiert einen Wert von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden zu einem DateTime-Objekt

DateTime::add

date_add

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::add -- date_add — Addiert einen Wert von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden zu einem DateTime-Objekt

Beschreibung

Objektorientierter Stil

public DateTime::add ( DateInterval $interval ) : DateTime

Prozeduraler Stil

date_add ( DateTime $object , DateInterval $interval ) : DateTime

Addiert das gegebene DateInterval Objekt zu dem angegebenen DateTime Objekt.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebenes DateTime-Objekt. Diese Funktion verändert dieses Objekt.

interval

Ein DateInterval Objekt

Rückgabewerte

Gibt das DateTime-Objekt für die Verkettung von Methoden zurück Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 DateTime::add() Beispiel

Objektorientierter Stil

<?php
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>

Prozeduraler Stil

<?php
$date = date_create('2000-01-01');
date_add($date, date_interval_create_from_date_string('10 days'));
echo date_format($date, 'Y-m-d');
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

2000-01-11

Beispiel #2 Weitere DateTime::add() Beispiele

<?php
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('PT10H30S'));
echo $date->format('Y-m-d H:i:s') . "\n";

$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P7Y5M4DT4H3M2S'));
echo $date->format('Y-m-d H:i:s') . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2000-01-01 10:00:30
2007-06-05 04:03:02

Beispiel #3 Vorsicht beim Addieren von Monaten

<?php
$date = new DateTime('2000-12-31');
$interval = new DateInterval('P1M');

$date->add($interval);
echo $date->format('Y-m-d') . "\n";

$date->add($interval);
echo $date->format('Y-m-d') . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2001-01-31
2001-03-03

Anmerkungen

DateTime::modify() ist eine Alternative für PHP 5.2.

Siehe auch

  • DateTime::sub() - Subtrahiert eine Anzahl von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden von einem DateTime-Objekt.
  • DateTime::diff() - Returns the difference between two DateTime objects
  • DateTime::modify() - Ändert den Zeitstempel


Gibt ein neues DateTime Objekt zurück

  • « DateTime::add
  • DateTime::createFromFormat »
  • PHP Manual
  • DateTime
  • Gibt ein neues DateTime Objekt zurück

DateTime::__construct

date_create

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::__construct -- date_create — Gibt ein neues DateTime Objekt zurück

Beschreibung

Objektorientierter Stil

public DateTime::__construct ( string $datetime = "now" , DateTimeZone $timezone = null )

Prozeduraler Stil

date_create ( string $datetime = "now" , DateTimeZone $timezone = null ) : DateTime

Gibt ein neues DateTime Objekt zurück.

Parameter-Liste

datetime

Ein Datums/Zeit Zeichenkette. Gültige Formate werden unter Datums- und Zeitformate erläutert.

Wird "now" übergeben, so wird die aktuelle Uhrzeit verwendet, wenn $timezone übergeben wird.

timezone

Ein DateTimeZone Objekt, welches die Zeitzone von $datetime repräsentiert.

Wenn $timezone nicht übergeben wird, wird die aktuelle Zeitzone verwendet.

Hinweis:

Der $timezone Parameter und die aktuelle Zeitzone werden ignoriert, wenn der $datetime Parameter entweder ein UNIX-Zeitstempel (z.B: @946684800) ist, oder wenn in ihm eine Zeitzone spezifiziert wird (z.B: 2010-01-28T15:00:00+02:00).

Rückgabewerte

Gibt eine neue Instanz von DateTime zurück. Prozeduraler Stil Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Gibt eine Exception im Fehlerfall zurück.

Changelog

Version | Beschreibung
7.1.0 | Von nun an werden die Mikrosekunden mit dem tatsächlichen Wert belegt, nicht mehr mit '00000'.

Beispiele

Beispiel #1 DateTime::__construct() example

Objektorientierter Stil

<?php
try {
    $date = new DateTime('2000-01-01');
} catch (Exception $e) {
    echo $e->getMessage();
    exit(1);
}

echo $date->format('Y-m-d');
?>

Prozeduraler Stil

<?php
$date = date_create('2000-01-01');
if (!$date) {
    $e = date_get_last_errors();
    foreach ($e['errors'] as $error) {
        echo "$error\n";
    }
    exit(1);
}

echo date_format($date, 'Y-m-d');
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

2000-01-01

Beispiel #2 Intricacies of DateTime::__construct()

<?php
// Specified date/time in your computer's time zone.
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Specified date/time in the specified time zone.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in your computer's time zone.
$date = new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in the specified time zone.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Using a UNIX timestamp.  Notice the result is in the UTC time zone.
$date = new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Non-existent values roll over.
$date = new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2000-01-01 00:00:00-05:00
2000-01-01 00:00:00+12:00
2010-04-24 10:24:16-04:00
2010-04-25 02:24:16+12:00
2000-01-01 00:00:00+00:00
2000-03-01 00:00:00-05:00

Siehe auch

  • DateTime::createFromFormat() - Parses a time string according to a specified format
  • DateTimeZone::__construct() - Erstellt neues DateTimeZone Objekt
  • Date and Time Formats
  • date.timezone ini setting
  • date_default_timezone_set() - Setzt die Standardzeitzone, die von allen Datums- und Zeitfunktionen benutzt wird.
  • DateTime::getLastErrors() - Gibt die Warnungen und Fehler zurück
  • checkdate() - Prüft ein Gregorianisches Datum auf Gültigkeit


Parses a time string according to a specified format

  • « DateTime::__construct
  • DateTime::createFromImmutable »
  • PHP Manual
  • DateTime
  • Parses a time string according to a specified format

DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::createFromFormat -- date_create_from_format — Parses a time string according to a specified format

Beschreibung

Objektorientierter Stil

public static DateTime::createFromFormat ( string $format , string $datetime , DateTimeZone|null $timezone = null ) : DateTime|false

Prozeduraler Stil

date_create_from_format ( string $format , string $datetime , DateTimeZone|null $timezone = null ) : DateTime|false

Returns a new DateTime object representing the date and time specified by the datetime string, which was formatted in the given format.

Parameter-Liste

format

The format that the passed in string should be in. See the formatting options below. In most cases, the same letters as for the date() can be used.

The following characters are recognized in the format parameter string
format character | Description | Example parsable values
Day --- ---
d and j | Day of the month, 2 digits with or without leading zeros | 01 to 31 or 1 to 31
D and l | A textual representation of a day | Mon through Sun or Sunday through Saturday
S | English ordinal suffix for the day of the month, 2 characters. It's ignored while processing. | st, nd, rd or th.
z | The day of the year (starting from 0) | 0 through 365
Month --- ---
F and M | A textual representation of a month, such as January or Sept | January through December or Jan through Dec
m and n | Numeric representation of a month, with or without leading zeros | 01 through 12 or 1 through 12
Year --- ---
Y | A full numeric representation of a year, 4 digits | Examples: 1999 or 2003
y | A two digit representation of a year (which is assumed to be in the range 1970-2069, inclusive) | Examples: 99 or 03 (which will be interpreted as 1999 and 2003, respectively)
Time --- ---
a and A | Ante meridiem and Post meridiem | am or pm
g and h | 12-hour format of an hour with or without leading zero | 1 through 12 or 01 through 12
G and H | 24-hour format of an hour with or without leading zeros | 0 through 23 or 00 through 23
i | Minutes with leading zeros | 00 to 59
s | Seconds, with leading zeros | 00 through 59
v | Milliseconds (up to three digits) | Example: 12, 345
u | Microseconds (up to six digits) | Example: 45, 654321
Timezone --- ---
e, O, P and T | Timezone identifier, or difference to UTC in hours, or difference to UTC with colon between hours and minutes, or timezone abbreviation | Examples: UTC, GMT, Atlantic/Azores or +0200 or +02:00 or EST, MDT
Full Date/Time --- ---
U | Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) | Example: 1292177455
Whitespace and Separators --- ---
(space) | One space or one tab | Example:
# One of the following separation symbol: ;, :, /, ., ,, -, ( or ) Example: /
;, :, /, ., ,, -, ( or ) | The specified character. | Example: -
? A random byte Example: ^ (Be aware that for UTF-8 characters you might need more than one ?. In this case, using * is probably what you want instead)
* Random bytes until the next separator or digit Example: * in Y-*-d with the string 2009-aWord-08 will match aWord
! Resets all fields (year, month, day, hour, minute, second, fraction and timezone information) to the Unix Epoch Without !, all fields will be set to the current date and time.
| Resets all fields (year, month, day, hour, minute, second, fraction and timezone information) to the Unix Epoch if they have not been parsed yet Y-m-d| will set the year, month and day to the information found in the string to parse, and sets the hour, minute and second to 0.
+ If this format specifier is present, trailing data in the string will not cause an error, but a warning instead Use DateTime::getLastErrors() to find out whether trailing data was present.

Unrecognized characters in the format string will cause the parsing to fail and an error message is appended to the returned structure. You can query error messages with DateTime::getLastErrors().

To include literal characters in format, you have to escape them with a backslash (\).

If format does not contain the character ! then portions of the generated time which are not specified in format will be set to the current system time.

If format contains the character !, then portions of the generated time not provided in format, as well as values to the left-hand side of the !, will be set to corresponding values from the Unix epoch.

The Unix epoch is 1970-01-01 00:00:00 UTC.

datetime

String representing the time.

timezone

A DateTimeZone object representing the desired time zone.

If timezone is omitted or null and datetime contains no timezone, the current timezone will be used.

Hinweis:

The timezone parameter and the current timezone are ignored when the datetime parameter either contains a UNIX timestamp (e.g. 946684800) or specifies a timezone (e.g. 2010-01-28T15:00:00+02:00).

Rückgabewerte

Returns a new DateTime instanceIm Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
7.3.0 | The v format specifier has been added.

Beispiele

Beispiel #1 DateTime::createFromFormat() example

Objektorientierter Stil

<?php
$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
echo $date->format('Y-m-d');
?>

Prozeduraler Stil

<?php
$date = date_create_from_format('j-M-Y', '15-Feb-2009');
echo date_format($date, 'Y-m-d');
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

2009-02-15

Beispiel #2 Intricacies of DateTime::createFromFormat()

<?php
echo 'Current time: ' . date('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d';
$date = DateTime::createFromFormat($format, '2009-02-15');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-!d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = '!d';
$date = DateTime::createFromFormat($format, '15');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Current time: 2010-04-23 10:29:35
Format: Y-m-d; 2009-02-15 10:29:35
Format: Y-m-d H:i:s; 2009-02-15 15:16:17
Format: Y-m-!d H:i:s; 1970-01-15 15:16:17
Format: !d; 1970-01-15 00:00:00

Beispiel #3 Format string with literal characters

<?php
echo DateTime::createFromFormat('H\h i\m s\s','23h 15m 03s')->format('H:i:s');
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

23:15:03

Siehe auch

  • DateTime::__construct() - Gibt ein neues DateTime Objekt zurück
  • DateTime::getLastErrors() - Gibt die Warnungen und Fehler zurück
  • checkdate() - Prüft ein Gregorianisches Datum auf Gültigkeit
  • strptime() - Parse a time/date generated with strftime


Returns new DateTime object encapsulating the given DateTimeImmutable object

  • « DateTime::createFromFormat
  • DateTime::createFromInterface »
  • PHP Manual
  • DateTime
  • Returns new DateTime object encapsulating the given DateTimeImmutable object

DateTime::createFromImmutable

(PHP 7 >= 7.3.0, PHP 8)

DateTime::createFromImmutable — Returns new DateTime object encapsulating the given DateTimeImmutable object

Beschreibung

public static DateTime::createFromImmutable ( DateTimeImmutable $object ) : DateTime

Parameter-Liste

object

The immutable DateTimeImmutable object that needs to be converted to a mutable version. This object is not modified, but instead a new DateTime object is created containing the same date, time, and timezone information.

Beispiele

Beispiel #1 Creating a mutable date time object

<?php
$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");

$mutable = DateTime::createFromImmutable( $date );
?>

Rückgabewerte

Returns a new DateTime instance.


Returns new DateTime object encapsulating the given DateTimeInterface object

  • « DateTime::createFromImmutable
  • DateTime::getLastErrors »
  • PHP Manual
  • DateTime
  • Returns new DateTime object encapsulating the given DateTimeInterface object

DateTime::createFromInterface

(PHP 8)

DateTime::createFromInterface — Returns new DateTime object encapsulating the given DateTimeInterface object

Beschreibung

public static DateTime::createFromInterface ( DateTimeInterface $object ) : DateTime

Parameter-Liste

object

The DateTimeInterface object that needs to be converted to a mutable version. This object is not modified, but instead a new DateTime object is created containing the same date, time, and timezone information.

Rückgabewerte

Returns a new DateTime instance.

Beispiele

Beispiel #1 Creating a mutable date time object

<?php
$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");

$mutable = DateTime::createFromInterface($date);

$date = new DateTime("2014-06-20 11:45 Europe/London");
$also_mutable = DateTime::createFromInterface($date);
?>


Gibt die Warnungen und Fehler zurück

  • « DateTime::createFromInterface
  • DateTime::modify »
  • PHP Manual
  • DateTime
  • Gibt die Warnungen und Fehler zurück

DateTime::getLastErrors

date_get_last_errors

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::getLastErrors -- date_get_last_errors — Gibt die Warnungen und Fehler zurück

Beschreibung

Objektorientierter Stil

public static DateTime::getLastErrors ( ) : array

Prozeduraler Stil

date_get_last_errors ( ) : array

Gibt ein Array mit Warnungen und Fehlern zurück, die bei der Analyse eines Datums/Zeit-Strings gefunden wurden.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt ein Array mit Warnungen und Fehlern zurück.

Beispiele

Beispiel #1 DateTime::getLastErrors() Beispiel

Objektorientierter Stil

<?php
try {
    $date = new DateTime('asdfasdf');
} catch (Exception $e) {
    // Nur zu Demonstrationszwecken...
    print_r(DateTime::getLastErrors());

    // Die wahre objektorientierte Weise, um dies zu tun ist
    // echo $e->getMessage();
}
?>

Prozeduraler Stil

<?php
$date = date_create('asdfasdf');
print_r(date_get_last_errors());
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Array
(
   [warning_count] => 1
   [warnings] => Array
       (
           [6] => Double timezone specification
       )

   [error_count] => 1
   [errors] => Array
       (
           [0] => The timezone could not be found in the database
       )

)

Die Indizes 6 und 0 in der Ausgabe des obigen Beispiels beziehen sich auf den Buchstaben in dem String bei dem der Fehler auftrat.


Ändert den Zeitstempel

  • « DateTime::getLastErrors
  • DateTime::__set_state »
  • PHP Manual
  • DateTime
  • Ändert den Zeitstempel

DateTime::modify

date_modify

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::modify -- date_modify — Ändert den Zeitstempel

Beschreibung

Objektorientierter Stil

public DateTime::modify ( string $modifier ) : DateTime

Prozeduraler Stil

date_modify ( DateTime $object , string $modifier ) : DateTime

Ändert den Zeitstempel eines DateTime Objektes durch Erhöhen oder Erniedrigen in einem von DateTimeImmutable::__construct() aktzeptierten Format.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebenes DateTime-Objekt. Diese Funktion verändert dieses Objekt.

modifier

Ein Datums/Zeit Zeichenkette. Gültige Formate werden unter Datums- und Zeitformate erläutert.

Rückgabewerte

Gibt das DateTime-Objekt für die Verkettung von Methoden zurück Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 DateTime::modify() Beispiel

Objektorientierter Stil

<?php
$date = new DateTime('2006-12-12');
$date->modify('+1 day');
echo $date->format('Y-m-d');
?>

Prozeduraler Stil

<?php
$date = date_create('2006-12-12');
date_modify($date, '+1 day');
echo date_format($date, 'Y-m-d');
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

2006-12-13

Beispiel #2 Vorsicht beim Addieren oder Subtrahieren von Monaten

<?php
$date = new DateTime('2000-12-31');

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2001-01-31
2001-03-03

Siehe auch

  • strtotime() - Wandelt ein beliebiges in englischer Textform angegebenes Datum in einen UNIX-Zeitstempel (Timestamp) um
  • DateTime::add() - Addiert einen Wert von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden zu einem DateTime-Objekt
  • DateTime::sub() - Subtrahiert eine Anzahl von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden von einem DateTime-Objekt.
  • DateTime::setDate() - Sets the date
  • DateTime::setISODate() - Sets the ISO date
  • DateTime::setTime() - Sets the time
  • DateTime::setTimestamp() - Legt Datum und Zeit basierend auf einem Unix-Zeitstempel fest


Der __set_state Handler

  • « DateTime::modify
  • DateTime::setDate »
  • PHP Manual
  • DateTime
  • Der __set_state Handler

DateTime::__set_state

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::__set_state — Der __set_state Handler

Beschreibung

public static DateTime::__set_state ( array $array ) : DateTime

Der __set_state() Handler.

Parameter-Liste

array

Array zur Initialisierung.

Rückgabewerte

Gibt ein neues Exemplar eines DateTime Objekts zurück.


Sets the date

  • « DateTime::__set_state
  • DateTime::setISODate »
  • PHP Manual
  • DateTime
  • Sets the date

DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::setDate -- date_date_set — Sets the date

Beschreibung

Objektorientierter Stil

public DateTime::setDate ( int $year , int $month , int $day ) : DateTime

Prozeduraler Stil

date_date_set ( DateTime $object , int $year , int $month , int $day ) : DateTime

Resets the current date of the DateTime object to a different date.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebenes DateTime-Objekt. Diese Funktion verändert dieses Objekt.

year

Year of the date.

month

Month of the date.

day

Day of the date.

Rückgabewerte

Gibt das DateTime-Objekt für die Verkettung von Methoden zurück Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 DateTime::setDate() example

Objektorientierter Stil

<?php
$date = new DateTime();
$date->setDate(2001, 2, 3);
echo $date->format('Y-m-d');
?>

Prozeduraler Stil

<?php
$date = date_create();
date_date_set($date, 2001, 2, 3);
echo date_format($date, 'Y-m-d');
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

2001-02-03

Beispiel #2 Values exceeding ranges are added to their parent values

<?php
$date = new DateTime();

$date->setDate(2001, 2, 28);
echo $date->format('Y-m-d') . "\n";

$date->setDate(2001, 2, 29);
echo $date->format('Y-m-d') . "\n";

$date->setDate(2001, 14, 3);
echo $date->format('Y-m-d') . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2001-02-28
2001-03-01
2002-02-03

Siehe auch

  • DateTime::setISODate() - Sets the ISO date
  • DateTime::setTime() - Sets the time


Sets the ISO date

  • « DateTime::setDate
  • DateTime::setTime »
  • PHP Manual
  • DateTime
  • Sets the ISO date

DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::setISODate -- date_isodate_set — Sets the ISO date

Beschreibung

Objektorientierter Stil

public DateTime::setISODate ( int $year , int $week , int $dayOfWeek = 1 ) : DateTime

Prozeduraler Stil

date_isodate_set ( DateTime $object , int $year , int $week , int $dayOfWeek = 1 ) : DateTime

Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific dates.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebenes DateTime-Objekt. Diese Funktion verändert dieses Objekt.

year

Year of the date.

week

Week of the date.

dayOfWeek

Offset from the first day of the week.

Rückgabewerte

Gibt das DateTime-Objekt für die Verkettung von Methoden zurück Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 DateTime::setISODate() example

Objektorientierter Stil

<?php
$date = new DateTime();

$date->setISODate(2008, 2);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 2, 7);
echo $date->format('Y-m-d') . "\n";
?>

Prozeduraler Stil

<?php
$date = date_create();

date_isodate_set($date, 2008, 2);
echo date_format($date, 'Y-m-d') . "\n";

date_isodate_set($date, 2008, 2, 7);
echo date_format($date, 'Y-m-d') . "\n";
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

2008-01-07
2008-01-13

Beispiel #2 Values exceeding ranges are added to their parent values

<?php
$date = new DateTime();

$date->setISODate(2008, 2, 7);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 2, 8);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 53, 7);
echo $date->format('Y-m-d') . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2008-01-13
2008-01-14
2009-01-04

Beispiel #3 Finding the month a week is in

<?php
$date = new DateTime();
$date->setISODate(2008, 14);
echo $date->format('n');
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

3

Siehe auch

  • DateTime::setDate() - Sets the date
  • DateTime::setTime() - Sets the time


Sets the time

  • « DateTime::setISODate
  • DateTime::setTimestamp »
  • PHP Manual
  • DateTime
  • Sets the time

DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::setTime -- date_time_set — Sets the time

Beschreibung

Objektorientierter Stil

public DateTime::setTime ( int $hour , int $minute , int $second = 0 , int $microsecond = 0 ) : DateTime

Prozeduraler Stil

date_time_set ( DateTime $object , int $hour , int $minute , int $second = 0 , int $microsecond = 0 ) : DateTime

Resets the current time of the DateTime object to a different time.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebenes DateTime-Objekt. Diese Funktion verändert dieses Objekt.

hour

Hour of the time.

minute

Minute of the time.

second

Second of the time.

microsecond

Microsecond of the time.

Rückgabewerte

Gibt das DateTime-Objekt für die Verkettung von Methoden zurück Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | The microsecond parameter was added.

Beispiele

Beispiel #1 DateTime::setTime() example

Objektorientierter Stil

<?php
$date = new DateTime('2001-01-01');

$date->setTime(14, 55);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(14, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";
?>

Prozeduraler Stil

<?php
$date = date_create('2001-01-01');

date_time_set($date, 14, 55);
echo date_format($date, 'Y-m-d H:i:s') . "\n";

date_time_set($date, 14, 55, 24);
echo date_format($date, 'Y-m-d H:i:s') . "\n";
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

2001-01-01 14:55:00
2001-01-01 14:55:24

Beispiel #2 Values exceeding ranges are added to their parent values

<?php
$date = new DateTime('2001-01-01');

$date->setTime(14, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(14, 55, 65);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(14, 65, 24);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(25, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2001-01-01 14:55:24
2001-01-01 14:56:05
2001-01-01 15:05:24
2001-01-02 01:55:24

Siehe auch

  • DateTime::setDate() - Sets the date
  • DateTime::setISODate() - Sets the ISO date


Legt Datum und Zeit basierend auf einem Unix-Zeitstempel fest

  • « DateTime::setTime
  • DateTime::setTimezone »
  • PHP Manual
  • DateTime
  • Legt Datum und Zeit basierend auf einem Unix-Zeitstempel fest

DateTime::setTimestamp

date_timestamp_set

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::setTimestamp -- date_timestamp_set — Legt Datum und Zeit basierend auf einem Unix-Zeitstempel fest

Beschreibung

Objektorientierter Stil

public DateTime::setTimestamp ( int $timestamp ) : DateTime

Prozeduraler Stil

date_timestamp_set ( DateTime $object , int $timestamp ) : DateTime

Legt Datum und Zeit basierend auf einem Unix-Zeitstempel fest.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebenes DateTime-Objekt. Diese Funktion verändert dieses Objekt.

timestamp

Ein Unix-Zeitstempel, der das Datum angibt.

Rückgabewerte

Gibt das DateTime-Objekt für die Verkettung von Methoden zurück Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 DateTime::setTimestamp() Beispiel

Objektorientierter Stil

<?php
$date = new DateTime();
echo $date->format('U = Y-m-d H:i:s') . "\n";

$date->setTimestamp(1171502725);
echo $date->format('U = Y-m-d H:i:s') . "\n";
?>

Prozeduraler Stil

<?php
$date = date_create();
echo date_format($date, 'U = Y-m-d H:i:s') . "\n";

date_timestamp_set($date, 1171502725);
echo date_format($date, 'U = Y-m-d H:i:s') . "\n";
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

1272508903 = 2010-04-28 22:41:43
1171502725 = 2007-02-14 20:25:25

Anmerkungen

Die Verwendung des Unix-Zeitstempel-Formats, um ein neues DateTime Objekt zu erzeugen, ist eine Alternative wenn PHP 5.2 benutzt wird, wie im nachfolgenden Beispiel gezeigt:

Beispiel #2 DateTime::setTimestamp() Alternative in PHP 5.2

<?php
$ts = 1171502725;
$date = new DateTime("@$ts");
echo $date->format('U = Y-m-d H:i:s') . "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1171502725 = 2007-02-14 20:25:25

Siehe auch

  • DateTime::getTimestamp() - Gets the Unix timestamp


Legt die Zeitzone für ein DateTime Objekt fest

  • « DateTime::setTimestamp
  • DateTime::sub »
  • PHP Manual
  • DateTime
  • Legt die Zeitzone für ein DateTime Objekt fest

DateTime::setTimezone

date_timezone_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::setTimezone -- date_timezone_set — Legt die Zeitzone für ein DateTime Objekt fest

Beschreibung

Objektorientierter Stil

public DateTime::setTimezone ( DateTimeZone $timezone ) : DateTime

Prozeduraler Stil

date_timezone_set ( DateTime $object , DateTimeZone $timezone ) : DateTime

Legt eine neue Zeitzone für ein DateTime Objekt fest.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebenes DateTime-Objekt. Diese Funktion verändert dieses Objekt.

timezone

Ein DateTimeZone Objekt, das die gewünschte Zeitzone repräsentiert.

Rückgabewerte

Gibt das DateTime-Objekt für die Verkettung von Methoden zurück Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 DateTime::setTimeZone() Beispiel

Objektorientierter Stil

<?php
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

Prozeduraler Stil

<?php
$date = date_create('2000-01-01', timezone_open('Pacific/Nauru'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";

date_timezone_set($date, timezone_open('Pacific/Chatham'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45

Siehe auch

  • DateTime::getTimezone() - Return time zone relative to given DateTime
  • DateTimeZone::__construct() - Erstellt neues DateTimeZone Objekt


Subtrahiert eine Anzahl von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden von einem DateTime-Objekt.

  • « DateTime::setTimezone
  • DateTimeImmutable »
  • PHP Manual
  • DateTime
  • Subtrahiert eine Anzahl von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden von einem DateTime-Objekt.

DateTime::sub

date_sub

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::sub -- date_sub — Subtrahiert eine Anzahl von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden von einem DateTime-Objekt.

Beschreibung

Objektorientierter Stil

public DateTime::sub ( DateInterval $interval ) : DateTime

Prozeduraler Stil

date_sub ( DateTime $object , DateInterval $interval ) : DateTime

Subtrahiert das gegebene DateInterval Objekt vom angegebenen DateTime Objekt.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebenes DateTime-Objekt. Diese Funktion verändert dieses Objekt.

interval

Ein DateInterval Objekt

Rückgabewerte

Gibt das DateTime-Objekt für die Verkettung von Methoden zurück Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 DateTime::sub() Beispiel

Objektorientierter Stil

<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>

Prozeduraler Stil

<?php
$date = date_create('2000-01-20');
date_sub($date, date_interval_create_from_date_string('10 days'));
echo date_format($date, 'Y-m-d');
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

2000-01-10

Beispiel #2 Weitere DateTime::sub() Beispiele

<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('PT10H30S'));
echo $date->format('Y-m-d H:i:s') . "\n";

$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P7Y5M4DT4H3M2S'));
echo $date->format('Y-m-d H:i:s') . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2000-01-19 13:59:30
1992-08-15 19:56:58

Beispiel #3 Vorsicht beim Subtrahieren von Monaten

<?php
$date = new DateTime('2001-04-30');
$interval = new DateInterval('P1M');

$date->sub($interval);
echo $date->format('Y-m-d') . "\n";

$date->sub($interval);
echo $date->format('Y-m-d') . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2001-03-30
2001-03-02

Anmerkungen

DateTime::modify() ist eine Alternative für PHP 5.2.

Siehe auch

  • DateTime::add() - Addiert einen Wert von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden zu einem DateTime-Objekt
  • DateTime::diff() - Returns the difference between two DateTime objects
  • DateTime::modify() - Ändert den Zeitstempel


Die DateTimeImmutable Klasse

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Einführung

Repräsentation von Datum und Zeit.

Klassenbeschreibung

DateTimeImmutable implements DateTimeInterface {
/* Geerbte Konstanten */
const string DateTimeInterface::ATOM = "Y-m-d\TH:i:sP" ;
const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T" ;
const string DateTimeInterface::ISO8601 = "Y-m-d\TH:i:sO" ;
const string DateTimeInterface::RFC822 = "D, d M y H:i:s O" ;
const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T" ;
const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O" ;
const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O" ;
const string DateTimeInterface::RFC7231 = "D, d M Y H:i:s \G\M\T" ;
const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O" ;
const string DateTimeInterface::RFC3339 = "Y-m-d\TH:i:sP" ;
const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\TH:i:s.vP" ;
const string DateTimeInterface::RSS = "D, d M Y H:i:s O" ;
const string DateTimeInterface::W3C = "Y-m-d\TH:i:sP" ;
/* Methoden */
public __construct ( string $datetime = "now" , DateTimeZone|null $timezone = null )
public add ( DateInterval $interval ) : DateTimeImmutable
public static createFromFormat ( string $format , string $datetime , DateTimeZone|null $timezone = null ) : DateTimeImmutable|false
public static createFromInterface ( DateTimeInterface $object ) : DateTimeImmutable
public static createFromMutable ( DateTime $object ) : DateTimeImmutable
public static getLastErrors ( ) : array|false
public modify ( string $modifier ) : DateTimeImmutable|false
public static __set_state ( array $array ) : DateTimeImmutable
public setDate ( int $year , int $month , int $day ) : DateTimeImmutable
public setISODate ( int $year , int $week , int $dayOfWeek = 1 ) : DateTimeImmutable
public setTime ( int $hour , int $minute , int $second = 0 , int $microsecond = 0 ) : DateTimeImmutable
public setTimestamp ( int $timestamp ) : DateTimeImmutable
public setTimezone ( DateTimeZone $timezone ) : DateTimeImmutable
public sub ( DateInterval $interval ) : DateTimeImmutable
public diff ( DateTimeInterface $targetObject , bool $absolute = false ) : DateInterval
public format ( string $format ) : string
public getOffset ( ) : int
public getTimestamp ( ) : int
public getTimezone ( ) : DateTimeZone|false
public __wakeup ( ) : void
}

Inhaltsverzeichnis

  • DateTimeImmutable::add — Adds an amount of days, months, years, hours, minutes and seconds
  • DateTimeImmutable::__construct — Returns new DateTimeImmutable object
  • DateTimeImmutable::createFromFormat — Parses a time string according to a specified format
  • DateTimeImmutable::createFromInterface — Returns new DateTimeImmutable object encapsulating the given DateTimeInterface object
  • DateTimeImmutable::createFromMutable — Returns new DateTimeImmutable object encapsulating the given DateTime object
  • DateTimeImmutable::getLastErrors — Returns the warnings and errors
  • DateTimeImmutable::modify — Creates a new object with modified timestamp
  • DateTimeImmutable::__set_state — The __set_state handler
  • DateTimeImmutable::setDate — Sets the date
  • DateTimeImmutable::setISODate — Sets the ISO date
  • DateTimeImmutable::setTime — Sets the time
  • DateTimeImmutable::setTimestamp — Sets the date and time based on a Unix timestamp
  • DateTimeImmutable::setTimezone — Sets the time zone
  • DateTimeImmutable::sub — Subtracts an amount of days, months, years, hours, minutes and seconds


Adds an amount of days, months, years, hours, minutes and seconds

  • « DateTimeImmutable
  • DateTimeImmutable::__construct »
  • PHP Manual
  • DateTimeImmutable
  • Adds an amount of days, months, years, hours, minutes and seconds

DateTimeImmutable::add

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::add — Adds an amount of days, months, years, hours, minutes and seconds

Beschreibung

public DateTimeImmutable::add ( DateInterval $interval ) : DateTimeImmutable

Like DateTime::add() but works with DateTimeImmutable.


Returns new DateTimeImmutable object

  • « DateTimeImmutable::add
  • DateTimeImmutable::createFromFormat »
  • PHP Manual
  • DateTimeImmutable
  • Returns new DateTimeImmutable object

DateTimeImmutable::__construct

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::__construct -- date_create_immutable — Returns new DateTimeImmutable object

Beschreibung

Objektorientierter Stil

public DateTimeImmutable::__construct ( string $datetime = "now" , DateTimeZone|null $timezone = null )

Prozeduraler Stil

date_create_immutable ( string $datetime = "now" , DateTimeZone|null $timezone = null ) : DateTimeImmutable|false

Like DateTime::__construct() but works with DateTimeImmutable.


Parses a time string according to a specified format

  • « DateTimeImmutable::__construct
  • DateTimeImmutable::createFromInterface »
  • PHP Manual
  • DateTimeImmutable
  • Parses a time string according to a specified format

DateTimeImmutable::createFromFormat

date_create_immutable_from_format

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::createFromFormat -- date_create_immutable_from_format — Parses a time string according to a specified format

Beschreibung

Objektorientierter Stil

public static DateTimeImmutable::createFromFormat ( string $format , string $datetime , DateTimeZone|null $timezone = null ) : DateTimeImmutable|false

Prozeduraler Stil

date_create_immutable_from_format ( string $format , string $datetime , DateTimeZone|null $timezone = null ) : DateTimeImmutable|false

Like DateTime::createFromFormat() but works with DateTimeImmutable.


Returns new DateTimeImmutable object encapsulating the given DateTimeInterface object

  • « DateTimeImmutable::createFromFormat
  • DateTimeImmutable::createFromMutable »
  • PHP Manual
  • DateTimeImmutable
  • Returns new DateTimeImmutable object encapsulating the given DateTimeInterface object

DateTimeImmutable::createFromInterface

(PHP 8)

DateTimeImmutable::createFromInterface — Returns new DateTimeImmutable object encapsulating the given DateTimeInterface object

Beschreibung

public static DateTimeImmutable::createFromInterface ( DateTimeInterface $object ) : DateTimeImmutable

Parameter-Liste

object

The DateTimeInterface object that needs to be converted to an immutable version. This object is not modified, but instead a new DateTimeImmutable object is created containing the same date, time, and timezone information.

Rückgabewerte

Returns a new DateTimeImmutable instance.

Beispiele

Beispiel #1 Creating an immutable date time object

<?php
$date = new DateTime("2014-06-20 11:45 Europe/London");

$immutable = DateTimeImmutable::createFromInterface($date);

$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");
$also_immutable = DateTimeImmutable::createFromInterface($date);
?>


Returns new DateTimeImmutable object encapsulating the given DateTime object

  • « DateTimeImmutable::createFromInterface
  • DateTimeImmutable::getLastErrors »
  • PHP Manual
  • DateTimeImmutable
  • Returns new DateTimeImmutable object encapsulating the given DateTime object

DateTimeImmutable::createFromMutable

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

DateTimeImmutable::createFromMutable — Returns new DateTimeImmutable object encapsulating the given DateTime object

Beschreibung

public static DateTimeImmutable::createFromMutable ( DateTime $object ) : DateTimeImmutable

Parameter-Liste

object

The mutable DateTime object that you want to convert to an immutable version. This object is not modified, but instead a new DateTimeImmutable object is created containing the same date time and timezone information.

Beispiele

Beispiel #1 Creating an immutable date time object

<?php
$date = new DateTime("2014-06-20 11:45 Europe/London");

$immutable = DateTimeImmutable::createFromMutable( $date );
?>

Rückgabewerte

Returns a new DateTimeImmutable instance.


Returns the warnings and errors

  • « DateTimeImmutable::createFromMutable
  • DateTimeImmutable::modify »
  • PHP Manual
  • DateTimeImmutable
  • Returns the warnings and errors

DateTimeImmutable::getLastErrors

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::getLastErrors — Returns the warnings and errors

Beschreibung

public static DateTimeImmutable::getLastErrors ( ) : array|false

Like DateTime::getLastErrors() but works with DateTimeImmutable.


Creates a new object with modified timestamp

  • « DateTimeImmutable::getLastErrors
  • DateTimeImmutable::__set_state »
  • PHP Manual
  • DateTimeImmutable
  • Creates a new object with modified timestamp

DateTimeImmutable::modify

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::modify — Creates a new object with modified timestamp

Beschreibung

public DateTimeImmutable::modify ( string $modifier ) : DateTimeImmutable|false

Creates a new DateTimeImmutable object with modified timestamp. The original object is not modified.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebenes DateTime-Objekt. Diese Funktion verändert dieses Objekt.

modifier

Ein Datums/Zeit Zeichenkette. Gültige Formate werden unter Datums- und Zeitformate erläutert.

Rückgabewerte

Returns the newly created objectIm Fehlerfall wird false zurückgegeben..


The __set_state handler

  • « DateTimeImmutable::modify
  • DateTimeImmutable::setDate »
  • PHP Manual
  • DateTimeImmutable
  • The __set_state handler

DateTimeImmutable::__set_state

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::__set_state — The __set_state handler

Beschreibung

public static DateTimeImmutable::__set_state ( array $array ) : DateTimeImmutable

Like DateTime::__set_state() but works with DateTimeImmutable.


Sets the date

  • « DateTimeImmutable::__set_state
  • DateTimeImmutable::setISODate »
  • PHP Manual
  • DateTimeImmutable
  • Sets the date

DateTimeImmutable::setDate

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setDate — Sets the date

Beschreibung

public DateTimeImmutable::setDate ( int $year , int $month , int $day ) : DateTimeImmutable

Like DateTime::setDate() but works with DateTimeImmutable.


Sets the ISO date

  • « DateTimeImmutable::setDate
  • DateTimeImmutable::setTime »
  • PHP Manual
  • DateTimeImmutable
  • Sets the ISO date

DateTimeImmutable::setISODate

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setISODate — Sets the ISO date

Beschreibung

public DateTimeImmutable::setISODate ( int $year , int $week , int $dayOfWeek = 1 ) : DateTimeImmutable

Like DateTime::setISODate() but works with DateTimeImmutable.


Sets the time

  • « DateTimeImmutable::setISODate
  • DateTimeImmutable::setTimestamp »
  • PHP Manual
  • DateTimeImmutable
  • Sets the time

DateTimeImmutable::setTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTime — Sets the time

Beschreibung

public DateTimeImmutable::setTime ( int $hour , int $minute , int $second = 0 , int $microsecond = 0 ) : DateTimeImmutable

Like DateTime::setTime() but works with DateTimeImmutable.


Sets the date and time based on a Unix timestamp

  • « DateTimeImmutable::setTime
  • DateTimeImmutable::setTimezone »
  • PHP Manual
  • DateTimeImmutable
  • Sets the date and time based on a Unix timestamp

DateTimeImmutable::setTimestamp

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTimestamp — Sets the date and time based on a Unix timestamp

Beschreibung

public DateTimeImmutable::setTimestamp ( int $timestamp ) : DateTimeImmutable

Like DateTime::setTimestamp() but works with DateTimeImmutable.


Sets the time zone

  • « DateTimeImmutable::setTimestamp
  • DateTimeImmutable::sub »
  • PHP Manual
  • DateTimeImmutable
  • Sets the time zone

DateTimeImmutable::setTimezone

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTimezone — Sets the time zone

Beschreibung

public DateTimeImmutable::setTimezone ( DateTimeZone $timezone ) : DateTimeImmutable

Like DateTime::setTimezone() but works with DateTimeImmutable.


Subtracts an amount of days, months, years, hours, minutes and seconds

  • « DateTimeImmutable::setTimezone
  • DateTimeInterface »
  • PHP Manual
  • DateTimeImmutable
  • Subtracts an amount of days, months, years, hours, minutes and seconds

DateTimeImmutable::sub

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::sub — Subtracts an amount of days, months, years, hours, minutes and seconds

Beschreibung

public DateTimeImmutable::sub ( DateInterval $interval ) : DateTimeImmutable

Like DateTime::sub() but works with DateTimeImmutable.


Das DateTimeInterface Interface

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Einführung

DateTimeInterface ist dazu gedacht, einen gemeinsamen Typehint für DateTime und DateTimeImmutable zu ermöglichen. Es ist nicht möglich, dieses Interface durch Userland Klassen zu implementieren.

Klassenbeschreibung

DateTimeInterface {
/* Konstanten */
const string ATOM = "Y-m-d\TH:i:sP" ;
const string COOKIE = "l, d-M-Y H:i:s T" ;
const string ISO8601 = "Y-m-d\TH:i:sO" ;
const string RFC822 = "D, d M y H:i:s O" ;
const string RFC850 = "l, d-M-y H:i:s T" ;
const string RFC1036 = "D, d M y H:i:s O" ;
const string RFC1123 = "D, d M Y H:i:s O" ;
const string RFC7231 = "D, d M Y H:i:s \G\M\T" ;
const string RFC2822 = "D, d M Y H:i:s O" ;
const string RFC3339 = "Y-m-d\TH:i:sP" ;
const string RFC3339_EXTENDED = "Y-m-d\TH:i:s.vP" ;
const string RSS = "D, d M Y H:i:s O" ;
const string W3C = "Y-m-d\TH:i:sP" ;
/* Methoden */
public diff ( DateTimeInterface $targetObject , bool $absolute = false ) : DateInterval
public format ( string $format ) : string
public getOffset ( ) : int
public getTimestamp ( ) : int
public getTimezone ( ) : DateTimeZone|false
public __wakeup ( ) : void
}

Vordefinierte Konstanten

DateTime::ATOM
DATE_ATOM
Atom (Beispiel: 2005-08-15T15:52:01+00:00)
DateTime::COOKIE
DATE_COOKIE
HTTP Cookies (Beispiel: Monday, 15-Aug-05 15:52:01 UTC)
DateTime::ISO8601
DATE_ISO8601
ISO-8601 (Beispiel: 2005-08-15T15:52:01+0000)

Hinweis: Dieses Format ist nicht kompatibel zu ISO-8601, wird aber aus Gründen der Abwärtskompatibilität so belassen. Verwenden Sie statt dessen DateTime::ATOM oder DATE_ATOM für ISO-8601 Kompatibilität.

DateTime::RFC822
DATE_RFC822
RFC 822 (Beispiel: Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC850
DATE_RFC850
RFC 850 (Beispiel: Monday, 15-Aug-05 15:52:01 UTC)
DateTime::RFC1036
DATE_RFC1036
RFC 1036 (Beispiel: Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC1123
DATE_RFC1123
RFC 1123 (Beispiel: Mon, 15 Aug 2005 15:52:01 +0000)
DateTimeInterface::RFC7231
DATE_RFC7231
RFC 7231 (seit PHP 7.0.19 und 7.1.5) (Beispiel: Sat, 30 Apr 2016 17:52:13 GMT)
DateTime::RFC2822
DATE_RFC2822
RFC 2822 (Beispiel: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC3339
DATE_RFC3339
Genau wie DATE_ATOM (seit PHP 5.1.3)
DateTime::RFC3339_EXTENDED
DATE_RFC3339_EXTENDED
RFC 3339 EXTENDED Format (seit PHP 7.0.0) (Beispiel: 2005-08-15T15:52:01.000+00:00)
DateTime::RSS
DATE_RSS
RSS (Beispiel: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::W3C
DATE_W3C
World Wide Web Consortium (Beispiel: 2005-08-15T15:52:01+00:00)

Changelog

Version | Beschreibung
7.2.0 | Die Klassenkonstanten von DateTime sind nun in DateTimeInterface definiert.
5.5.8 | Der Versuch DateTimeInterface zu implementieren, erzeugt nun einen fatalen Fehler. Zuvor wurde kein Fehler erzeugt, aber das Verhalten war fehlerhaft.

Inhaltsverzeichnis

  • DateTime::diff — Returns the difference between two DateTime objects
  • DateTime::format — Returns date formatted according to given format
  • DateTime::getOffset — Returns the timezone offset
  • DateTime::getTimestamp — Gets the Unix timestamp
  • DateTime::getTimezone — Return time zone relative to given DateTime
  • DateTime::__wakeup — The __wakeup handler


Returns the difference between two DateTime objects

  • « DateTimeInterface
  • DateTime::format »
  • PHP Manual
  • DateTimeInterface
  • Returns the difference between two DateTime objects

DateTime::diff

DateTimeImmutable::diff

DateTimeInterface::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::diff -- DateTimeImmutable::diff -- DateTimeInterface::diff -- date_diff — Returns the difference between two DateTime objects

Beschreibung

Objektorientierter Stil

public DateTime::diff ( DateTimeInterface $targetObject , bool $absolute = false ) : DateInterval
public DateTimeImmutable::diff ( DateTimeInterface $targetObject , bool $absolute = false ) : DateInterval
public DateTimeInterface::diff ( DateTimeInterface $targetObject , bool $absolute = false ) : DateInterval

Prozeduraler Stil

date_diff ( DateTimeInterface $baseObject , DateTimeInterface $targetObject , bool $absolute = false ) : DateInterval

Returns the difference between two DateTimeInterface objects.

Parameter-Liste

datetime

The date to compare to.

absolute

Should the interval be forced to be positive?

Rückgabewerte

The DateInterval object represents the difference between the two datesIm Fehlerfall wird false zurückgegeben..

The return value more specifically represents the interval to apply to the original object ($this or $originObject) to arrive at the $targetObject. This process is not always reversible.

Beispiele

Beispiel #1 DateTime::diff() example

Objektorientierter Stil

<?php
$origin = new DateTime('2009-10-11');
$target = new DateTime('2009-10-13');
$interval = $origin->diff($target);
echo $interval->format('%R%a days');
?>

Prozeduraler Stil

<?php
$origin = date_create('2009-10-11');
$target = date_create('2009-10-13');
$interval = date_diff($origin, $target);
echo $interval->format('%R%a days');
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

+2 days

Beispiel #2 DateTime object comparison

Hinweis:

As of PHP 5.2.2, DateTime objects can be compared using comparison operators.

<?php
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(false)

Siehe auch

  • DateInterval::format() - Formats the interval
  • DateTime::add() - Addiert einen Wert von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden zu einem DateTime-Objekt
  • DateTime::sub() - Subtrahiert eine Anzahl von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden von einem DateTime-Objekt.


Returns date formatted according to given format

  • « DateTime::diff
  • DateTime::getOffset »
  • PHP Manual
  • DateTimeInterface
  • Returns date formatted according to given format

DateTime::format

DateTimeImmutable::format

DateTimeInterface::format

date_format

(PHP 5 >= 5.2.1, PHP 7, PHP 8)

DateTime::format -- DateTimeImmutable::format -- DateTimeInterface::format -- date_format — Returns date formatted according to given format

Beschreibung

Objektorientierter Stil

public DateTime::format ( string $format ) : string
public DateTimeImmutable::format ( string $format ) : string
public DateTimeInterface::format ( string $format ) : string

Prozeduraler Stil

date_format ( DateTimeInterface $object , string $format ) : string

Returns date formatted according to given format.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebens DateTime Objekt.

format

The format of the outputted date string. See the formatting options below. There are also several predefined date constants that may be used instead, so for example DATE_RSS contains the format string 'D, d M Y H:i:s'.

The following characters are recognized in the format parameter string
format character | Description | Example returned values
Day --- ---
d | Day of the month, 2 digits with leading zeros | 01 to 31
D | A textual representation of a day, three letters | Mon through Sun
j | Day of the month without leading zeros | 1 to 31
l (lowercase 'L') | A full textual representation of the day of the week | Sunday through Saturday
N | ISO-8601 numeric representation of the day of the week | 1 (for Monday) through 7 (for Sunday)
S | English ordinal suffix for the day of the month, 2 characters | st, nd, rd or th. Works well with j
w | Numeric representation of the day of the week | 0 (for Sunday) through 6 (for Saturday)
z | The day of the year (starting from 0) | 0 through 365
Week --- ---
W | ISO-8601 week number of year, weeks starting on Monday | Example: 42 (the 42nd week in the year)
Month --- ---
F | A full textual representation of a month, such as January or March | January through December
m | Numeric representation of a month, with leading zeros | 01 through 12
M | A short textual representation of a month, three letters | Jan through Dec
n | Numeric representation of a month, without leading zeros | 1 through 12
t | Number of days in the given month | 28 through 31
Year --- ---
L | Whether it's a leap year | 1 if it is a leap year, 0 otherwise.
o | ISO-8601 week-numbering year. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. | Examples: 1999 or 2003
Y | A full numeric representation of a year, 4 digits | Examples: 1999 or 2003
y | A two digit representation of a year | Examples: 99 or 03
Time --- ---
a | Lowercase Ante meridiem and Post meridiem | am or pm
A | Uppercase Ante meridiem and Post meridiem | AM or PM
B | Swatch Internet time | 000 through 999
g | 12-hour format of an hour without leading zeros | 1 through 12
G | 24-hour format of an hour without leading zeros | 0 through 23
h | 12-hour format of an hour with leading zeros | 01 through 12
H | 24-hour format of an hour with leading zeros | 00 through 23
i | Minutes with leading zeros | 00 to 59
s | Seconds with leading zeros | 00 through 59
u | Microseconds. Note that date() will always generate 000000 since it takes an int parameter, whereas DateTime::format() does support microseconds if DateTime was created with microseconds. | Example: 654321
v | Milliseconds (added in PHP 7.0.0). Same note applies as for u. | Example: 654
Timezone --- ---
e | Timezone identifier | Examples: UTC, GMT, Atlantic/Azores
I (capital i) | Whether or not the date is in daylight saving time | 1 if Daylight Saving Time, 0 otherwise.
O | Difference to Greenwich time (GMT) without colon between hours and minutes | Example: +0200
P | Difference to Greenwich time (GMT) with colon between hours and minutes | Example: +02:00
p | The same as P, but returns Z instead of +00:00 | Example: +02:00
T | Timezone abbreviation | Examples: EST, MDT ...
Z | Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. | -43200 through 50400
Full Date/Time --- ---
c | ISO 8601 date | 2004-02-12T15:19:21+00:00
r | » RFC 2822 formatted date | Example: Thu, 21 Dec 2000 16:01:07 +0200
U | Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) | See also time()

Unrecognized characters in the format string will be printed as-is. The Z format will always return 0 when using gmdate().

Hinweis:

Since this function only accepts int timestamps the u format character is only useful when using the date_format() function with user based timestamps created with date_create().

Rückgabewerte

Returns the formatted date string on success.

Changelog

Version | Beschreibung
8.0.0 | Prior to this version, false was returned on failure.
8.0.0 | The format character p has been added.

Beispiele

Beispiel #1 DateTime::format() example

Objektorientierter Stil

<?php
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:s');
?>

Prozeduraler Stil

<?php
$date = date_create('2000-01-01');
echo date_format($date, 'Y-m-d H:i:s');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2000-01-01 00:00:00

Anmerkungen

This method does not use locales. All output is in English.

Siehe auch

  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum


Returns the timezone offset

  • « DateTime::format
  • DateTime::getTimestamp »
  • PHP Manual
  • DateTimeInterface
  • Returns the timezone offset

DateTime::getOffset

DateTimeImmutable::getOffset

DateTimeInterface::getOffset

date_offset_get

(PHP 5 >= 5.2.1, PHP 7, PHP 8)

DateTime::getOffset -- DateTimeImmutable::getOffset -- DateTimeInterface::getOffset -- date_offset_get — Returns the timezone offset

Beschreibung

Objektorientierter Stil

public DateTime::getOffset ( ) : int
public DateTimeImmutable::getOffset ( ) : int
public DateTimeInterface::getOffset ( ) : int

Prozeduraler Stil

date_offset_get ( DateTimeInterface $object ) : int

Returns the timezone offset.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebens DateTime Objekt.

Rückgabewerte

Returns the timezone offset in seconds from UTC on success.

Changelog

Version | Beschreibung
8.0.0 | Prior to this version, false was returned on failure.

Beispiele

Beispiel #1 DateTime::getOffset() example

Objektorientierter Stil

<?php
$winter = new DateTime('2010-12-21', new DateTimeZone('America/New_York'));
$summer = new DateTime('2008-06-21', new DateTimeZone('America/New_York'));

echo $winter->getOffset() . "\n";
echo $summer->getOffset() . "\n";
?>

Prozeduraler Stil

<?php
$winter = date_create('2010-12-21', timezone_open('America/New_York'));
$summer = date_create('2008-06-21', timezone_open('America/New_York'));

echo date_offset_get($winter) . "\n";
echo date_offset_get($summer) . "\n";
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

-18000
-14400

Note: -18000 = -5 hours, -14400 = -4 hours.


Gets the Unix timestamp

  • « DateTime::getOffset
  • DateTime::getTimezone »
  • PHP Manual
  • DateTimeInterface
  • Gets the Unix timestamp

DateTime::getTimestamp

DateTimeImmutable::getTimestamp

DateTimeInterface::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::getTimestamp -- DateTimeImmutable::getTimestamp -- DateTimeInterface::getTimestamp -- date_timestamp_get — Gets the Unix timestamp

Beschreibung

Objektorientierter Stil

public DateTime::getTimestamp ( ) : int
public DateTimeImmutable::getTimestamp ( ) : int
public DateTimeInterface::getTimestamp ( ) : int

Prozeduraler Stil

date_timestamp_get ( DateTimeInterface $object ) : int

Gets the Unix timestamp.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the Unix timestamp representing the date.

Changelog

Version | Beschreibung
8.0.0 | These functions no longer return false on failure.

Beispiele

Beispiel #1 DateTime::getTimestamp() example

Objektorientierter Stil

<?php
$date = new DateTime();
echo $date->getTimestamp();
?>

Prozeduraler Stil

<?php
$date = date_create();
echo date_timestamp_get($date);
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

1272509157

Anmerkungen

Using U as the parameter to DateTime::format() is an alternative when using PHP 5.2.

Siehe auch

  • DateTime::setTimestamp() - Legt Datum und Zeit basierend auf einem Unix-Zeitstempel fest
  • DateTime::format() - Returns date formatted according to given format


Return time zone relative to given DateTime

  • « DateTime::getTimestamp
  • DateTime::__wakeup »
  • PHP Manual
  • DateTimeInterface
  • Return time zone relative to given DateTime

DateTime::getTimezone

DateTimeImmutable::getTimezone

DateTimeInterface::getTimezone

date_timezone_get

(PHP 5 >= 5.2.1, PHP 7, PHP 8)

DateTime::getTimezone -- DateTimeImmutable::getTimezone -- DateTimeInterface::getTimezone -- date_timezone_get — Return time zone relative to given DateTime

Beschreibung

Objektorientierter Stil

public DateTime::getTimezone ( ) : DateTimeZone|false
public DateTimeImmutable::getTimezone ( ) : DateTimeZone|false
public DateTimeInterface::getTimezone ( ) : DateTimeZone|false

Prozeduraler Stil

date_timezone_get ( DateTimeInterface $object ) : DateTimeZone|false

Return time zone relative to given DateTime.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebens DateTime Objekt.

Rückgabewerte

Returns a DateTimeZone object on success Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 DateTime::getTimezone() example

Objektorientierter Stil

<?php
$date = new DateTime(null, new DateTimeZone('Europe/London'));
$tz = $date->getTimezone();
echo $tz->getName();
?>

Prozeduraler Stil

<?php
$date = date_create(null, timezone_open('Europe/London'));
$tz = date_timezone_get($date);
echo timezone_name_get($tz);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

Europe/London

Siehe auch

  • DateTime::setTimezone() - Legt die Zeitzone für ein DateTime Objekt fest


The __wakeup handler

  • « DateTime::getTimezone
  • DateTimeZone »
  • PHP Manual
  • DateTimeInterface
  • The __wakeup handler

DateTime::__wakeup

DateTimeImmutable::__wakeup

DateTimeInterface::__wakeup

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::__wakeup -- DateTimeImmutable::__wakeup -- DateTimeInterface::__wakeup — The __wakeup handler

Beschreibung

public DateTime::__wakeup ( ) : void
public DateTimeImmutable::__wakeup ( ) : void
public DateTimeInterface::__wakeup ( ) : void

The __wakeup() handler.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Initializes a DateTime object.


Die DateTimeZone Klasse

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Einführung

Abbildung der Zeitzone.

Klassenbeschreibung

DateTimeZone {
/* Konstanten */
const integer AFRICA = 1 ;
const integer AMERICA = 2 ;
const integer ANTARCTICA = 4 ;
const integer ARCTIC = 8 ;
const integer ASIA = 16 ;
const integer ATLANTIC = 32 ;
const integer AUSTRALIA = 64 ;
const integer EUROPE = 128 ;
const integer INDIAN = 256 ;
const integer PACIFIC = 512 ;
const integer UTC = 1024 ;
const integer ALL = 2047 ;
const integer ALL_WITH_BC = 4095 ;
const integer PER_COUNTRY = 4096 ;
/* Methoden */
public __construct ( string $timezone )
public getLocation ( ) : array|false
public getName ( ) : string
public getOffset ( DateTimeInterface $datetime ) : int
public getTransitions ( int $timestampBegin = PHP_INT_MIN , int $timestampEnd = PHP_INT_MAX ) : array|false
public static listAbbreviations ( ) : array
public static listIdentifiers ( int $timezoneGroup = DateTimeZone::ALL , string|null $countryCode = null ) : array
}

Vordefinierte Konstanten

DateTimeZone::AFRICA

Afrikanische Zeitzone

DateTimeZone::AMERICA

Amerikanische Zeitzone

DateTimeZone::ANTARCTICA

Antarktische Zeitzone

DateTimeZone::ARCTIC

Arktische Zeitzone.

DateTimeZone::ASIA

Asiatische Zeitzone

DateTimeZone::ATLANTIC

Atlantische Zeitzone.

DateTimeZone::AUSTRALIA

Australische Zeitzone.

DateTimeZone::EUROPE

Europäische Zeitzone.

DateTimeZone::INDIAN

Indische Zeitzone.

DateTimeZone::PACIFIC

Pazifische Zeitzonen

DateTimeZone::UTC

UTC Zeitzonen

DateTimeZone::ALL

Alle Zeitzonen

DateTimeZone::ALL_WITH_BC

Alle Zeitzonen mit Abwärtskompabilität.

DateTimeZone::PER_COUNTRY

Zeitzonen pro Land

Inhaltsverzeichnis

  • DateTimeZone::__construct — Erstellt neues DateTimeZone Objekt
  • DateTimeZone::getLocation — Returns location information for a timezone
  • DateTimeZone::getName — Returns the name of the timezone
  • DateTimeZone::getOffset — Returns the timezone offset from GMT
  • DateTimeZone::getTransitions — Returns all transitions for the timezone
  • DateTimeZone::listAbbreviations — Returns associative array containing dst, offset and the timezone name
  • DateTimeZone::listIdentifiers — Returns a numerically indexed array containing all defined timezone identifiers


Erstellt neues DateTimeZone Objekt

  • « DateTimeZone
  • DateTimeZone::getLocation »
  • PHP Manual
  • DateTimeZone
  • Erstellt neues DateTimeZone Objekt

DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::__construct -- timezone_open — Erstellt neues DateTimeZone Objekt

Beschreibung

Objektorientierter Stil

public DateTimeZone::__construct ( string $timezone )

Prozeduraler Stil

timezone_open ( string $timezone ) : DateTimeZone

Erstellt neues DateTimeZone Objekt.

Parameter-Liste

timezone

Eine der unterstützten Zeitzonen oder ein Offset-Wert (+0200).

Rückgabewerte

Gibt bei Erfolg DateTimeZone zurück. Prozeduraler Stil Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Diese Methode wirft Exception, wenn die gegebene Zeitzone als nicht korrekt eingestuft wurde.

Changelog

Version | Beschreibung
5.5.10 | Der timezone Parameter akzeptiert Offset-Werte.

Beispiele

Beispiel #1 Fehler beim Initialisieren von DateTimeZone abfangen

<?php
// Fehlerbehandlung durch Abfangen von Exceptions
$timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');

foreach ($timezones as $tz) {
    try {
        $mars = new DateTimeZone($tz);
    } catch(Exception $e) {
        echo $e->getMessage() . '<br />';
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos)
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)


Returns location information for a timezone

  • « DateTimeZone::__construct
  • DateTimeZone::getName »
  • PHP Manual
  • DateTimeZone
  • Returns location information for a timezone

DateTimeZone::getLocation

timezone_location_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTimeZone::getLocation -- timezone_location_get — Returns location information for a timezone

Beschreibung

Objektorientierter Stil

public DateTimeZone::getLocation ( ) : array|false

Prozeduraler Stil

timezone_location_get ( DateTimeZone $object ) : array|false

Returns location information for a timezone, including country code, latitude/longitude and comments.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebens DateTimeZone Objekt.

Rückgabewerte

Array containing location information about timezoneIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 DateTimeZone::getLocation() example

<?php
$tz = new DateTimeZone("Europe/Prague");
print_r($tz->getLocation());
print_r(timezone_location_get($tz));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] =>
)
Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] =>
)


Returns the name of the timezone

  • « DateTimeZone::getLocation
  • DateTimeZone::getOffset »
  • PHP Manual
  • DateTimeZone
  • Returns the name of the timezone

DateTimeZone::getName

timezone_name_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::getName -- timezone_name_get — Returns the name of the timezone

Beschreibung

Objektorientierter Stil

public DateTimeZone::getName ( ) : string

Prozeduraler Stil

timezone_name_get ( DateTimeZone $object ) : string

Returns the name of the timezone.

Parameter-Liste

object

The DateTimeZone for which to get a name.

Rückgabewerte

One of the timezone names in the list of timezones.


Returns the timezone offset from GMT

  • « DateTimeZone::getName
  • DateTimeZone::getTransitions »
  • PHP Manual
  • DateTimeZone
  • Returns the timezone offset from GMT

DateTimeZone::getOffset

timezone_offset_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::getOffset -- timezone_offset_get — Returns the timezone offset from GMT

Beschreibung

Objektorientierter Stil

public DateTimeZone::getOffset ( DateTimeInterface $datetime ) : int

Prozeduraler Stil

timezone_offset_get ( DateTimeZone $object , DateTimeInterface $datetime ) : int

This function returns the offset to GMT for the date/time specified in the datetime parameter. The GMT offset is calculated with the timezone information contained in the DateTimeZone object being used.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebens DateTimeZone Objekt.

datetime

DateTime that contains the date/time to compute the offset from.

Rückgabewerte

Returns time zone offset in seconds.

Changelog

Version | Beschreibung
8.0.0 | Prior to this version, false was returned on failure.
5.5.19, 5.6.3 | datetime type changed to DateTimeInterface. Previously, DateTime.

Beispiele

Beispiel #1 DateTimeZone::getOffset() examples

<?php
// Create two timezone objects, one for Taipei (Taiwan) and one for
// Tokyo (Japan)
$dateTimeZoneTaipei = new DateTimeZone("Asia/Taipei");
$dateTimeZoneJapan = new DateTimeZone("Asia/Tokyo");

// Create two DateTime objects that will contain the same Unix timestamp, but
// have different timezones attached to them.
$dateTimeTaipei = new DateTime("now", $dateTimeZoneTaipei);
$dateTimeJapan = new DateTime("now", $dateTimeZoneJapan);

// Calculate the GMT offset for the date/time contained in the $dateTimeTaipei
// object, but using the timezone rules as defined for Tokyo
// ($dateTimeZoneJapan).
$timeOffset = $dateTimeZoneJapan->getOffset($dateTimeTaipei);

// Should show int(32400) (for dates after Sat Sep 8 01:00:00 1951 JST).
var_dump($timeOffset);
?>


Returns all transitions for the timezone

  • « DateTimeZone::getOffset
  • DateTimeZone::listAbbreviations »
  • PHP Manual
  • DateTimeZone
  • Returns all transitions for the timezone

DateTimeZone::getTransitions

timezone_transitions_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::getTransitions -- timezone_transitions_get — Returns all transitions for the timezone

Beschreibung

Objektorientierter Stil

public DateTimeZone::getTransitions ( int $timestampBegin = PHP_INT_MIN , int $timestampEnd = PHP_INT_MAX ) : array|false

Prozeduraler Stil

timezone_transitions_get ( DateTimeZone $object , int $timestampBegin = PHP_INT_MIN , int $timestampEnd = PHP_INT_MAX ) : array|false

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebens DateTimeZone Objekt.

timestampBegin

Begin timestamp.

timestampEnd

End timestamp.

Rückgabewerte

Returns a numerically indexed array of transition arrays on success, Im Fehlerfall wird false zurückgegeben..

Transition Array Structure
Key | Type | Description
ts | int | Unix timestamp
time | string | DateTimeInterface::ISO8601 time string
offset | int | Offset to UTC in seconds
isdst | bool | Whether daylight saving time is active
abbr | string | Timezone abbreviation

Beispiele

Beispiel #1 A timezone_transitions_get() example

<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions();
print_r(array_slice($transitions, 0, 3));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [ts] => -9223372036854775808
            [time] => -292277022657-01-27T08:29:52+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

    [1] => Array
        (
            [ts] => -1691964000
            [time] => 1916-05-21T02:00:00+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

    [2] => Array
        (
            [ts] => -1680472800
            [time] => 1916-10-01T02:00:00+0000
            [offset] => 0
            [isdst] =>
            [abbr] => GMT
        )

)


Returns associative array containing dst, offset and the timezone name

  • « DateTimeZone::getTransitions
  • DateTimeZone::listIdentifiers »
  • PHP Manual
  • DateTimeZone
  • Returns associative array containing dst, offset and the timezone name

DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::listAbbreviations -- timezone_abbreviations_list — Returns associative array containing dst, offset and the timezone name

Beschreibung

Objektorientierter Stil

public static DateTimeZone::listAbbreviations ( ) : array

Prozeduraler Stil

timezone_abbreviations_list ( ) : array

Hinweis:

The data for this function are precompiled for performance reasons, and are not updated when using a newer » timezonedb.

Rückgabewerte

Returns the array of timezone abbreviations.

Beispiele

Beispiel #1 A timezone_abbreviations_list() example

<?php
$timezone_abbreviations = DateTimeZone::listAbbreviations();
print_r($timezone_abbreviations["acst"]);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Porto_Acre
        )

    [1] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Eirunepe
        )

    [2] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Rio_Branco
        )

    [3] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => Brazil/Acre
        )

)

Siehe auch

  • timezone_identifiers_list() - Alias von DateTimeZone::listIdentifiers


Returns a numerically indexed array containing all defined timezone identifiers

  • « DateTimeZone::listAbbreviations
  • DateInterval »
  • PHP Manual
  • DateTimeZone
  • Returns a numerically indexed array containing all defined timezone identifiers

DateTimeZone::listIdentifiers

timezone_identifiers_list

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::listIdentifiers -- timezone_identifiers_list — Returns a numerically indexed array containing all defined timezone identifiers

Beschreibung

Objektorientierter Stil

public static DateTimeZone::listIdentifiers ( int $timezoneGroup = DateTimeZone::ALL , string|null $countryCode = null ) : array

Prozeduraler Stil

timezone_identifiers_list ( int $timezoneGroup = DateTimeZone::ALL , string|null $countryCode = null ) : array

Parameter-Liste

timezoneGroup

One of the DateTimeZone class constants (or a combination).

countryCode

A two-letter ISO 3166-1 compatible country code.

Hinweis: This option is only used when timezoneGroup is set to DateTimeZone::PER_COUNTRY.

Rückgabewerte

Returns the array of timezone identifiers.

Changelog

Version | Beschreibung
8.0.0 | Prior to this version, false was returned on failure.
7.1.0 | countryCode is nullable now.

Beispiele

Beispiel #1 A timezone_identifiers_list() example

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers();
for ($i=0; $i < 5; $i++) {
    echo "$timezone_identifiers[$i]\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara

Siehe auch

  • timezone_abbreviations_list() - Alias von DateTimeZone::listAbbreviations


Die DateInterval Klasse

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Einführung

Repräsentiert eine Zeitspanne.

Eine Zeitspanne wird entweder als feste Zeit (in Jahren, Monaten, Tagen, Stunden etc.) oder als String in einem Format, das vom Konstruktor der DateTime Klasse unterstützt wird, dargestellt.

Genauer gesagt ist die Information in einem Objekt der DateInterval Klasse eine Anweisung um von einem Datum/Zeit-Wert zu einem anderen Datum/Zeit-Wert zu kommen. Dieser Prozess ist nicht immer umkehrbar.

Eine übliche Methode um ein DateInterval Objekt zu erzeugen, ist die Berechnung des Unterschieds zwischen zwei Datum/Zeit Objekten durch DateTimeInterface::diff().

Klassenbeschreibung

DateInterval {
/* Eigenschaften */
public integer $y ;
public integer $m ;
public integer $d ;
public integer $h ;
public integer $i ;
public integer $s ;
public float $f ;
public integer $invert ;
public mixed $days ;
/* Methoden */
public __construct ( string $duration )
public static createFromDateString ( string $datetime ) : DateInterval
public format ( string $format ) : string
}

Eigenschaften

y

Anzahl der Jahre.

m

Anzahl der Monate.

d

Anzahl der Tage.

h

Anzahl der Stunden.

i

Anzahl der Minuten.

s

Anzahl der Sekunden.

f

Anzahl der Mikrosekunden als Bruchteil einer Sekunde.

invert

Ist 1, wenn die Zeitspanne negativ ist, und sonst 0. Siehe DateInterval::format().

days

Wenn das DateInterval Objekt durch DateTime::diff() erstellt wurde, dann enthält diese Eigenschaft die Gesamtanzahl der Tage zwischen dem Start und Enddatum. Ansonsten enthält days den Wert false.

Vor PHP 5.4.20/5.5.4 ist der Wert -99999 anstelle von false

Changelog

Version | Beschreibung
7.1.0 | Die f Eigenschaft wurde hinzugefügt.

Inhaltsverzeichnis

  • DateInterval::__construct — Erstellt ein neues DateInterval Objekt
  • DateInterval::createFromDateString — Bildet ein DateInterval aus relativen Teilen des Strings
  • DateInterval::format — Formats the interval


Erstellt ein neues DateInterval Objekt

  • « DateInterval
  • DateInterval::createFromDateString »
  • PHP Manual
  • DateInterval
  • Erstellt ein neues DateInterval Objekt

DateInterval::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateInterval::__construct — Erstellt ein neues DateInterval Objekt

Beschreibung

public DateInterval::__construct ( string $duration )

Erstellt ein neues DateInterval Objekt.

Parameter-Liste

duration

Eine Intervall Spezifikation

Das Format beginnt mit dem Buchstaben P für period. Jede Periodendauer wird als Integer-Wert, gefolgt von einem Perioden-Bezeichner, repräsentiert. Enthält die Dauer Zeitelemente, steht diesem Teil der Spezifikation der Buchstabe T voran.

duration Perioden Bezeichner
Perioden Bezeichner | Beschreibung
Y | Jahre
M | Monate
D | Tage
W | Wochen. Diese werden in Tage umgerechnet und können daher nicht mit D kombiniert werden.
H | Stunden
M | Minuten
S | Sekunden

Hier sind ein paar einfache Beispiele. Zwei Tage sind P2D. Zwei Sekunden sind PT2S. Sechs Jahre und fünf Minuten ist P6YT5M.

Hinweis:

Die Einheitstypen müssen von der größten Einheit von Links zur kleinsten Einheit nach rechts angegeben werden. Also Jahre vor Monate, Monate vor Tage, Tage vor Minuten etc. Also muss ein Jahr und vier Tage als P1Y4D dargestellt werden, nicht als P4D1Y.

Die Spezifikation kann aber auch als Zeitstempel angegeben werden. Ein Beispiel für ein Jahr und vier Tage wäre also P0001-00-04T00:00:00. Die Werte in diesem Format können allerdings den jeweiligen Übersprungspunkt der Periode nicht überschreiten (z.B. ist 25 Stunden ungültig).

Diese Formate basieren auf der » ISO 8601 Dauer-Spezifikation.

Fehler/Exceptions

Wirft eine Exception, wenn duration nicht als Intervall geparst werden kann.

Beispiele

Beispiel #1 DateInterval Beispiel

<?php

$interval = new DateInterval('P2Y4DT6H8M');
var_dump($interval);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(DateInterval)#1 (8) {
  ["y"]=>
  int(2)
  ["m"]=>
  int(0)
  ["d"]=>
  int(4)
  ["h"]=>
  int(6)
  ["i"]=>
  int(8)
  ["s"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
}

Siehe auch

  • DateInterval::format() - Formats the interval
  • DateTime::add() - Addiert einen Wert von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden zu einem DateTime-Objekt
  • DateTime::sub() - Subtrahiert eine Anzahl von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden von einem DateTime-Objekt.
  • DateTime::diff() - Returns the difference between two DateTime objects


Bildet ein DateInterval aus relativen Teilen des Strings

  • « DateInterval::__construct
  • DateInterval::format »
  • PHP Manual
  • DateInterval
  • Bildet ein DateInterval aus relativen Teilen des Strings

DateInterval::createFromDateString

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateInterval::createFromDateString — Bildet ein DateInterval aus relativen Teilen des Strings

Beschreibung

public static DateInterval::createFromDateString ( string $datetime ) : DateInterval

Verwendet die normalen Datenparser und bildet ein DateInterval aus den relativen Teilen des geparsten Strings.

Parameter-Liste

datetime

Ein Datum mit relativen Teilen. Insbesondere werden die relativen Formate, die vom Parser, der für strtotime() und DateTime verwendet wird, unterstützt werden, verwendet, um das DateInterval zu konstruieren.

Beispiele

Beispiel #1 Parsen von gültigen Datum-Intervallen

<?php
// Jede Gruppe von Intervallen ist gleich.
$i = new DateInterval('P1D');
$i = DateInterval::createFromDateString('1 day');

$i = new DateInterval('P2W');
$i = DateInterval::createFromDateString('2 weeks');

$i = new DateInterval('P3M');
$i = DateInterval::createFromDateString('3 months');

$i = new DateInterval('P4Y');
$i = DateInterval::createFromDateString('4 years');

$i = new DateInterval('P1Y1D');
$i = DateInterval::createFromDateString('1 year + 1 day');

$i = new DateInterval('P1DT12H');
$i = DateInterval::createFromDateString('1 day + 12 hours');

$i = new DateInterval('PT3600S');
$i = DateInterval::createFromDateString('3600 seconds');
?>

Rückgabewerte

Gibt ein neues DateInterval Exemplar zurück.


Formats the interval

  • « DateInterval::createFromDateString
  • DatePeriod »
  • PHP Manual
  • DateInterval
  • Formats the interval

DateInterval::format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateInterval::format — Formats the interval

Beschreibung

public DateInterval::format ( string $format ) : string

Formats the interval.

Parameter-Liste

format

The following characters are recognized in the format parameter string. Each format character must be prefixed by a percent sign (%).
format character | Description | Example values
% Literal % %
Y | Years, numeric, at least 2 digits with leading 0 | 01, 03
y | Years, numeric | 1, 3
M | Months, numeric, at least 2 digits with leading 0 | 01, 03, 12
m | Months, numeric | 1, 3, 12
D | Days, numeric, at least 2 digits with leading 0 | 01, 03, 31
d | Days, numeric | 1, 3, 31
a | Total number of days as a result of a DateTime::diff() or (unknown) otherwise | 4, 18, 8123
H | Hours, numeric, at least 2 digits with leading 0 | 01, 03, 23
h | Hours, numeric | 1, 3, 23
I | Minutes, numeric, at least 2 digits with leading 0 | 01, 03, 59
i | Minutes, numeric | 1, 3, 59
S | Seconds, numeric, at least 2 digits with leading 0 | 01, 03, 57
s | Seconds, numeric | 1, 3, 57
F | Microseconds, numeric, at least 6 digits with leading 0 | 007701, 052738, 428291
f | Microseconds, numeric | 7701, 52738, 428291
R Sign "-" when negative, "+" when positive -, +
r Sign "-" when negative, empty when positive -,

Rückgabewerte

Returns the formatted interval.

Anmerkungen

Hinweis:

The DateInterval::format() method does not recalculate carry over points in time strings nor in date segments. This is expected because it is not possible to overflow values like "32 days" which could be interpreted as anything from "1 month and 4 days" to "1 month and 1 day".

Changelog

Version | Beschreibung
7.1.0 | The F and f format characters were added.

Beispiele

Beispiel #1 DateInterval example

<?php

$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d days');

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

4 days

Beispiel #2 DateInterval and carry over points

<?php

$interval = new DateInterval('P32D');
echo $interval->format('%d days');

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

32 days

Beispiel #3 DateInterval and DateTime::diff() with the %a and %d modifiers

<?php

$january = new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval = $february->diff($january);

// %a will output the total number of days.
echo $interval->format('%a total days')."\n";

// While %d will only output the number of days not already covered by the
// month.
echo $interval->format('%m month, %d days');

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

31 total days
1 month, 0 days

Siehe auch

  • DateTime::diff() - Returns the difference between two DateTime objects


Die DatePeriod Klasse

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Einführung

Stellt einen Datumsbereich dar.

Ein Datumsbereich ermöglicht die Iteration über eine Reihe von Datumsangaben und Uhrzeiten, die sich in regelmäßigen Intervallen wiederholen, über einen bestimmten Zeitraum.

Klassenbeschreibung

DatePeriod implements Traversable {
/* Konstanten */
const integer EXCLUDE_START_DATE = 1 ;
/* Eigenschaften */
public integer $recurrences ;
public boolean $include_start_date ;
public DateTimeInterface $start ;
public DateTimeInterface $current ;
public DateTimeInterface $end ;
public DateInterval $interval ;
/* Methoden */
public __construct ( DateTimeInterface $start , DateInterval $interval , int $recurrences , int $options = ? )
public __construct ( DateTimeInterface $start , DateInterval $interval , DateTimeInterface $end , int $options = ? )
public __construct ( string $isostr , int $options = ? )
public getDateInterval ( ) : DateInterval
public getEndDate ( ) : DateTimeInterface|null
public getRecurrences ( ) : int|null
public getStartDate ( ) : DateTimeInterface
}

Vordefinierte Konstanten

DatePeriod::EXCLUDE_START_DATE

Anfangsdatum ausschließen; verwendet mit DatePeriod::__construct().

Eigenschaften

recurrences

Die Anzahl der Wiederholungen, wenn das DatePeriod-Exemplar durch explizite Übergabe von $recurrences erzeugt wurde. Siehe auch DatePeriod::getRecurrences().

include_start_date

Ob das Anfangsdatum in der Menge der wiederkehrenden Daten enthalten sein soll, oder nicht.

start

Das Anfangsdatum des Zeitraums.

current

Während einer Iteration enthält diese Eigenschaft das aktuelle Datum innerhalb des Zeitraums.

end

Das Enddatum des Zeitraums.

interval

Eine ISO-8601 konforme Angabe eines sich wiederholenden Intervalls.

Changelog

Version | Beschreibung
5.3.27, 5.4.17 | Die öffentlichen Eigenschaften recurrences, include_start_date, start, current, end und interval wurden verfügbar gemacht.

Inhaltsverzeichnis

  • DatePeriod::__construct — Erstellt ein neues DatePeriod Objekt
  • DatePeriod::getDateInterval — Gets the interval
  • DatePeriod::getEndDate — Gets the end date
  • DatePeriod::getRecurrences — Gets the number of recurrences
  • DatePeriod::getStartDate — Gets the start date


Erstellt ein neues DatePeriod Objekt

  • « DatePeriod
  • DatePeriod::getDateInterval »
  • PHP Manual
  • DatePeriod
  • Erstellt ein neues DatePeriod Objekt

DatePeriod::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DatePeriod::__construct — Erstellt ein neues DatePeriod Objekt

Beschreibung

public DatePeriod::__construct ( DateTimeInterface $start , DateInterval $interval , int $recurrences , int $options = ? )
public DatePeriod::__construct ( DateTimeInterface $start , DateInterval $interval , DateTimeInterface $end , int $options = ? )
public DatePeriod::__construct ( string $isostr , int $options = ? )

Erstellt ein neues DatePeriod Objekt.

Parameter-Liste

start

Das Startdatum der Periode.

interval

Das Intervall zwischen den Wiederholungen in der Periode.

recurrences

Die Anzahl der Wiederholungen.

end

Das Enddatum der Periode.

isostr

Eine ISO 8601 Spezifikation für sich wiederholende Intervalle.

options

Kann auf den Wert DatePeriod::EXCLUDE_START_DATE gesetzt werden, um das Startdatum aus den wiederkehrenden Terminen innnerhalb der Periode auszuschließen.

Changelog

Version | Beschreibung
5.5.8 | end Typ zu DateTimeInterface geändert. Zuvor war es DateTime.
5.5.0 | start Typ zu DateTimeInterface geändert. Zuvor war es DateTime.

Beispiele

Beispiel #1 DatePeriod Beispiel

<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$recurrences = 4;
$iso = 'R4/2012-07-01T00:00:00Z/P7D';

// Alle diese Perioden sind gleichwertig.
$period = new DatePeriod($start, $interval, $recurrences);
$period = new DatePeriod($start, $interval, $end);
$period = new DatePeriod($iso);

// Durch Iterieren über das DatePeriod Objekt, werden alle sich
// wiederholenden Termine innerhalb der Periode ausgegeben.
foreach ($period as $date) {
    echo $date->format('Y-m-d')."\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2012-07-01
2012-07-08
2012-07-15
2012-07-22
2012-07-29

Beispiel #2 DatePeriod Beispiel mit DatePeriod::EXCLUDE_START_DATE

<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');

$period = new DatePeriod($start, $interval, $end,
                         DatePeriod::EXCLUDE_START_DATE);

// Durch Iterieren über das DatePeriod Objekt, werden alle sich
// wiederholenden Termine innerhalb der Periode ausgegeben.
// Es ist zu beachten, dass in diesem Fall 2012-07-01 nicht ausgegeben wird.
foreach ($period as $date) {
    echo $date->format('Y-m-d')."\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2012-07-08
2012-07-15
2012-07-22
2012-07-29

Anmerkungen

Offene Anzahl von Wiederholungen, wie von ISO 8601, Abschnitt 4.5 "Recurring time interval" spezifiziert, werden nicht unterstützt, d.h. weder die Übergabe von "R/..." an isostr, noch die Übergabe von null an end funktioniert.


Gets the interval

  • « DatePeriod::__construct
  • DatePeriod::getEndDate »
  • PHP Manual
  • DatePeriod
  • Gets the interval

DatePeriod::getDateInterval

(PHP 5 >= 5.6.5, PHP 7, PHP 8)

DatePeriod::getDateInterval — Gets the interval

Beschreibung

Objektorientierter Stil

public DatePeriod::getDateInterval ( ) : DateInterval

Gets a DateInterval object representing the interval used for the period.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a DateInterval object

Beispiele

Beispiel #1 DatePeriod::getDateInterval() example

<?php
$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
$interval = $period->getDateInterval();
echo $interval->format('%d day');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1 day

Siehe auch

  • DatePeriod::getStartDate() - Gets the start date
  • DatePeriod::getEndDate() - Gets the end date


Gets the end date

  • « DatePeriod::getDateInterval
  • DatePeriod::getRecurrences »
  • PHP Manual
  • DatePeriod
  • Gets the end date

DatePeriod::getEndDate

(PHP 5 >= 5.6.5, PHP 7, PHP 8)

DatePeriod::getEndDate — Gets the end date

Beschreibung

Objektorientierter Stil

public DatePeriod::getEndDate ( ) : DateTimeInterface|null

Gets the end date of the period.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns null if the DatePeriod does not have an end date. For example, when initialized with the recurrences parameter, or the isostr parameter without an end date.

Returns a DateTimeImmutable object when the DatePeriod is initialized with a DateTimeImmutable object as the end parameter.

Returns a DateTime object otherwise.

Beispiele

Beispiel #1 DatePeriod::getEndDate() example

<?php
$period = new DatePeriod(
    new DateTime('2016-05-16T00:00:00Z'),
    new DateInterval('P1D'),
    new DateTime('2016-05-20T00:00:00Z')
);
$start = $period->getEndDate();
echo $start->format(DateTime::ISO8601);
?>

Die obigen Bespiele erzeugen folgende Ausgabe:

2016-05-20T00:00:00+0000

Beispiel #2 DatePeriod::getEndDate() without an end date

<?php
$period = new DatePeriod(
    new DateTime('2016-05-16T00:00:00Z'),
    new DateInterval('P1D'),
    7
);
var_dump($period->getEndDate());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL

Siehe auch

  • DatePeriod::getStartDate() - Gets the start date
  • DatePeriod::getDateInterval() - Gets the interval


Gets the number of recurrences

  • « DatePeriod::getEndDate
  • DatePeriod::getStartDate »
  • PHP Manual
  • DatePeriod
  • Gets the number of recurrences

DatePeriod::getRecurrences

(PHP 7 >= 7.2.17/7.3.4, PHP 8)

DatePeriod::getRecurrences — Gets the number of recurrences

Beschreibung

Objektorientierter Stil

public DatePeriod::getRecurrences ( ) : int|null

Get the number of recurrences.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of recurrences.

Siehe auch

  • DatePeriod::$recurrences


Gets the start date

  • « DatePeriod::getRecurrences
  • Datum/Uhrzeit Funktionen »
  • PHP Manual
  • DatePeriod
  • Gets the start date

DatePeriod::getStartDate

(PHP 5 >= 5.6.5, PHP 7, PHP 8)

DatePeriod::getStartDate — Gets the start date

Beschreibung

Objektorientierter Stil

public DatePeriod::getStartDate ( ) : DateTimeInterface

Gets the start date of the period.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a DateTimeImmutable object when the DatePeriod is initialized with a DateTimeImmutable object as the start parameter.

Returns a DateTime object otherwise.

Beispiele

Beispiel #1 DatePeriod::getStartDate() example

<?php
$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
$start = $period->getStartDate();
echo $start->format(DateTime::ISO8601);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2016-05-16T00:00:00+0000

Siehe auch

  • DatePeriod::getEndDate() - Gets the end date
  • DatePeriod::getDateInterval() - Gets the interval


Datum/Uhrzeit Funktionen

Inhaltsverzeichnis

  • checkdate — Prüft ein Gregorianisches Datum auf Gültigkeit
  • date_add — Alias von DateTime::add
  • date_create_from_format — Alias von DateTime::createFromFormat
  • date_create_immutable_from_format — Alias von DateTimeImmutable::createFromFormat
  • date_create_immutable — Alias von DateTimeImmutable::__construct
  • date_create — Alias von DateTime::__construct
  • date_date_set — Alias von DateTime::setDate
  • date_default_timezone_get — Gets the default timezone used by all date/time functions in a script
  • date_default_timezone_set — Setzt die Standardzeitzone, die von allen Datums- und Zeitfunktionen benutzt wird.
  • date_diff — Alias von DateTime::diff
  • date_format — Alias von DateTime::format
  • date_get_last_errors — Alias von DateTime::getLastErrors
  • date_interval_create_from_date_string — Alias von DateInterval::createFromDateString
  • date_interval_format — Alias von DateInterval::format
  • date_isodate_set — Alias von DateTime::setISODate
  • date_modify — Alias von DateTime::modify
  • date_offset_get — Alias von DateTime::getOffset
  • date_parse_from_format — Get info about given date formatted according to the specified format
  • date_parse — Returns associative array with detailed info about given date/time
  • date_sub — Alias von DateTime::sub
  • date_sun_info — Returns an array with information about sunset/sunrise and twilight begin/end
  • date_sunrise — Returns time of sunrise for a given day and location
  • date_sunset — Returns time of sunset for a given day and location
  • date_time_set — Alias von DateTime::setTime
  • date_timestamp_get — Alias von DateTime::getTimestamp
  • date_timestamp_set — Alias von DateTime::setTimestamp
  • date_timezone_get — Alias von DateTime::getTimezone
  • date_timezone_set — Alias von DateTime::setTimezone
  • date — Formatiert ein(e) angegebene(s) Ortszeit/Datum
  • getdate — Gibt Datums- und Zeitinformationen zurück
  • gettimeofday — Ermittelt die aktuelle Zeit
  • gmdate — Formatiert eine GMT/UTC Zeit-/Datumsangabe
  • gmmktime — Gibt einen Unix-Timestamp (Zeitstempel) für ein GMT Datum zurück
  • gmstrftime — Formatiert eine Datum-/Zeitangabe in GMT/UTC-Format entsprechend den lokalen Einstellungen
  • idate — Format a local time/date as integer
  • localtime — Ermittelt die lokale Zeit
  • microtime — Gibt den aktuellen Unix-Timestamp/Zeitstempel mit Mikrosekunden zurück
  • mktime — Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück
  • strftime — Formatiere eine Zeit-/Datumsangabe gemäß dem Gebietsschema
  • strptime — Parse a time/date generated with strftime
  • strtotime — Wandelt ein beliebiges in englischer Textform angegebenes Datum in einen UNIX-Zeitstempel (Timestamp) um
  • time — Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück
  • timezone_abbreviations_list — Alias von DateTimeZone::listAbbreviations
  • timezone_identifiers_list — Alias von DateTimeZone::listIdentifiers
  • timezone_location_get — Alias von DateTimeZone::getLocation
  • timezone_name_from_abbr — Gibt den Namen der Zeitzonenabkürzung zurück
  • timezone_name_get — Alias von DateTimeZone::getName
  • timezone_offset_get — Alias von DateTimeZone::getOffset
  • timezone_open — Alias von DateTimeZone::__construct
  • timezone_transitions_get — Alias von DateTimeZone::getTransitions
  • timezone_version_get — Gets the version of the timezonedb


Prüft ein Gregorianisches Datum auf Gültigkeit

  • « Datum/Uhrzeit Funktionen
  • date_add »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Prüft ein Gregorianisches Datum auf Gültigkeit

checkdate

(PHP 4, PHP 5, PHP 7, PHP 8)

checkdate — Prüft ein Gregorianisches Datum auf Gültigkeit

Beschreibung

checkdate ( int $month , int $day , int $year ) : bool

Prüft die Gültigkeit des durch die Funktionsargumente beschriebenen Datums. Ein Datum wird als gültig betrachtet, wenn jeder Parameter korrekt definiert wurde.

Parameter-Liste

month

Die Monatsangabe umfasst Werte von 1 bis 12 (inklusive).

day

Der Tag ist in der erlaubten Anzahl von Tagen für den angegebenen Monat month. Schaltjahre werden entsprechend berücksichtigt.

year

Die Jahresangabe ist eine Zahl zwischen 1 und 32767 (inklusive).

Rückgabewerte

Gibt true zurück, wenn das übergebene Datum gültig ist, andernfalls false.

Beispiele

Beispiel #1 checkdate()-Beispiel

<?php
var_dump(checkdate(12, 31, 2000));
var_dump(checkdate(2, 29, 2001));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)

Siehe auch

  • mktime() - Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück
  • strtotime() - Wandelt ein beliebiges in englischer Textform angegebenes Datum in einen UNIX-Zeitstempel (Timestamp) um


Alias von DateTime::add

  • « checkdate
  • date_create_from_format »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::add

date_add

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_add — Alias von DateTime::add()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::add()


Alias von DateTime::createFromFormat

  • « date_add
  • date_create_immutable_from_format »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_create_from_format — Alias von DateTime::createFromFormat()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::createFromFormat()


Alias von DateTimeImmutable::createFromFormat

  • « date_create_from_format
  • date_create_immutable »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTimeImmutable::createFromFormat

date_create_immutable_from_format

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

date_create_immutable_from_format — Alias von DateTimeImmutable::createFromFormat()

Beschreibung

Diese Funktion ist ein Alias für: DateTimeImmutable::createFromFormat()


Alias von DateTimeImmutable::__construct

  • « date_create_immutable_from_format
  • date_create »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTimeImmutable::__construct

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

date_create_immutable — Alias von DateTimeImmutable::__construct()

Beschreibung

Diese Funktion ist ein Alias für: DateTimeImmutable::__construct()


Alias von DateTime::__construct

  • « date_create_immutable
  • date_date_set »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::__construct

date_create

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_create — Alias von DateTime::__construct()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::__construct()


Alias von DateTime::setDate

  • « date_create
  • date_default_timezone_get »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_date_set — Alias von DateTime::setDate()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::setDate()


Gets the default timezone used by all date/time functions in a script

  • « date_date_set
  • date_default_timezone_set »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Gets the default timezone used by all date/time functions in a script

date_default_timezone_get

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

date_default_timezone_get — Gets the default timezone used by all date/time functions in a script

Beschreibung

date_default_timezone_get ( ) : string

In order of preference, this function returns the default timezone by:

  • Reading the timezone set using the date_default_timezone_set() function (if any)

  • Prior to PHP 5.4.0 only: Reading the TZ environment variable (if non empty)

  • Reading the value of the date.timezone ini option (if set)

  • Prior to PHP 5.4.0 only: Querying the host operating system (if supported and allowed by the OS). This uses an algorithm that has to guess the timezone. This is by no means going to work correctly for every situation. A warning is shown when this stage is reached. Do not rely on it to be guessed correctly, and set date.timezone to the correct timezone instead.

If none of the above succeed, date_default_timezone_get() will return a default timezone of UTC.

Rückgabewerte

Returns a string.

Beispiele

Beispiel #1 Getting the default timezone

<?php
date_default_timezone_set('Europe/London');

if (date_default_timezone_get()) {
    echo 'date_default_timezone_set: ' . date_default_timezone_get() . '<br />';
}

if (ini_get('date.timezone')) {
    echo 'date.timezone: ' . ini_get('date.timezone');
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

date_default_timezone_set: Europe/London
date.timezone: Europe/London

Beispiel #2 Getting the abbreviation of a timezone

<?php
date_default_timezone_set('America/Los_Angeles');
echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

America/Los_Angeles => America/Los_Angeles => PST

Siehe auch

  • date_default_timezone_set() - Setzt die Standardzeitzone, die von allen Datums- und Zeitfunktionen benutzt wird.
  • Liste unterstützter Zeitzonen


Setzt die Standardzeitzone, die von allen Datums- und Zeitfunktionen benutzt wird.

  • « date_default_timezone_get
  • date_diff »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Setzt die Standardzeitzone, die von allen Datums- und Zeitfunktionen benutzt wird.

date_default_timezone_set

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

date_default_timezone_set — Setzt die Standardzeitzone, die von allen Datums- und Zeitfunktionen benutzt wird.

Beschreibung

date_default_timezone_set ( string $timezoneID ) : bool

date_default_timezone_set() setzt die Standardzeitzone, die von allen Datums- und Zeitfunktionen benutzt wird.

Hinweis:

Seit PHP 5.1.0 (als die Datums- und Zeitfunktionen neu geschrieben wurden) generiert jeder Aufruf einer Datums- und Zeitfunktion eine E_NOTICE, wenn die Zeitzone nicht gültig ist und/oder eine E_WARNING, wenn die Systemeinstellungen oder die TZ-Umgebungsvariable benutzt werden.

Anstatt diese Funktion zu benutzen um die Zeitzone im Script zu setzen, kann man auch die INI-Einstellung date.timezone verwenden, um die Standardzeitzone setzen.

Parameter-Liste

timezoneID

Der Zeitzonenbezeichner wie UTC oder Africa/Lagos, Asia/Hong_Kong oder Europe/Lisbon. Eine Liste von gültigen Bezeichnern ist unter Liste unterstützter Zeitzonen zu finden.

Rückgabewerte

Die Funktion gibt false zurück, wenn der timezoneID ungültig ist, ansonsten true.

Beispiele

Beispiel #1 Ermittlung der Standard-Zeitzone

<?php
date_default_timezone_set('America/Los_Angeles');

$script_tz = date_default_timezone_get();

if (strcmp($script_tz, ini_get('date.timezone'))){
    echo 'Die Script-Zeitzone unterscheidet sich von der ini-set Zeitzone.';
} else {
    echo 'Die Script-Zeitzone und die ini-set Zeitzone stimmen überein.';
}
?>

Siehe auch

  • date_default_timezone_get() - Gets the default timezone used by all date/time functions in a script
  • Liste unterstützter Zeitzonen


Alias von DateTime::diff

  • « date_default_timezone_set
  • date_format »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_diff — Alias von DateTime::diff()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::diff()


Alias von DateTime::format

  • « date_diff
  • date_get_last_errors »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::format

date_format

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_format — Alias von DateTime::format()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::format()


Alias von DateTime::getLastErrors

  • « date_format
  • date_interval_create_from_date_string »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::getLastErrors

date_get_last_errors

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_get_last_errors — Alias von DateTime::getLastErrors()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::getLastErrors()


Alias von DateInterval::createFromDateString

  • « date_get_last_errors
  • date_interval_format »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateInterval::createFromDateString

date_interval_create_from_date_string

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_interval_create_from_date_string — Alias von DateInterval::createFromDateString()

Beschreibung

Diese Funktion ist ein Alias für: DateInterval::createFromDateString()


Alias von DateInterval::format

  • « date_interval_create_from_date_string
  • date_isodate_set »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateInterval::format

date_interval_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_interval_format — Alias von DateInterval::format()

Beschreibung

Diese Funktion ist ein Alias für: DateInterval::format()


Alias von DateTime::setISODate

  • « date_interval_format
  • date_modify »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_isodate_set — Alias von DateTime::setISODate()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::setISODate()


Alias von DateTime::modify

  • « date_isodate_set
  • date_offset_get »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::modify

date_modify

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_modify — Alias von DateTime::modify()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::modify()


Alias von DateTime::getOffset

  • « date_modify
  • date_parse_from_format »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::getOffset

date_offset_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_offset_get — Alias von DateTime::getOffset()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::getOffset()


Get info about given date formatted according to the specified format

  • « date_offset_get
  • date_parse »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Get info about given date formatted according to the specified format

date_parse_from_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_parse_from_format — Get info about given date formatted according to the specified format

Beschreibung

date_parse_from_format ( string $format , string $datetime ) : array

Returns associative array with detailed info about given date/time.

Parameter-Liste

format

Format accepted by DateTime::createFromFormat().

datetime

String representing the date/time.

Rückgabewerte

Returns associative array with detailed info about given date/time.

Changelog

Version | Beschreibung
7.2.0 | The zone element of the returned array represents seconds instead of minutes now, and its sign is inverted. For instance -120 is now 7200.

Beispiele

Beispiel #1 date_parse_from_format() example

<?php
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [year] => 2009
    [month] => 1
    [day] => 6
    [hour] => 13
    [minute] => 0
    [second] => 0
    [fraction] =>
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] => 1
    [zone_type] => 1
    [zone] => 3600
    [is_dst] =>
)

Siehe auch

  • DateTime::createFromFormat() - Parses a time string according to a specified format
  • checkdate() - Prüft ein Gregorianisches Datum auf Gültigkeit


Returns associative array with detailed info about given date/time

  • « date_parse_from_format
  • date_sub »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Returns associative array with detailed info about given date/time

date_parse

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_parse — Returns associative array with detailed info about given date/time

Beschreibung

date_parse ( string $datetime ) : array

Parameter-Liste

datetime

Date/time in format accepted by DateTimeImmutable::__construct().

Rückgabewerte

Returns array with information about the parsed date/time on successIm Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

In case the date/time format has an error, the element 'errors' will contains the error messages.

Changelog

Version | Beschreibung
7.2.0 | The zone element of the returned array represents seconds instead of minutes now, and its sign is inverted. For instance -120 is now 7200.

Beispiele

Beispiel #1 A date_parse() example

<?php
print_r(date_parse("2006-12-12 10:00:00.5"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array()
    [error_count] => 0
    [errors] => Array()
    [is_localtime] =>
)

Relative formats do not influence the values parsed from absolute formats, but are parsed into the "relative" element.

Beispiel #2 date_parse() with relative formats

<?php
print_r(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] =>
    [relative] => Array
        (
            [year] => 0
            [month] => 0
            [day] => 7
            [hour] => 1
            [minute] => 0
            [second] => 0
        )

)

Siehe auch

  • checkdate() - Prüft ein Gregorianisches Datum auf Gültigkeit
  • getdate() - Gibt Datums- und Zeitinformationen zurück


Alias von DateTime::sub

  • « date_parse
  • date_sun_info »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::sub

date_sub

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_sub — Alias von DateTime::sub()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::sub()


Returns an array with information about sunset/sunrise and twilight begin/end

  • « date_sub
  • date_sunrise »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Returns an array with information about sunset/sunrise and twilight begin/end

date_sun_info

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

date_sun_info — Returns an array with information about sunset/sunrise and twilight begin/end

Beschreibung

date_sun_info ( int $timestamp , float $latitude , float $longitude ) : array

Parameter-Liste

timestamp

Unix timestamp.

latitude

Latitude in degrees.

longitude

Longitude in degrees.

Rückgabewerte

Returns array on successIm Fehlerfall wird false zurückgegeben.. The structure of the array is detailed in the following list:

sunrise
The timestamp of the sunrise (zenith angle = 90°35').
sunset
The timestamp of the sunset (zenith angle = 90°35').
transit
The timestamp when the sun is at its zenith, i.e. has reached its topmost point.
civil_twilight_begin
The start of the civil dawn (zenith angle = 96°). It ends at sunrise.
civil_twilight_end
The end of the civil dusk (zenith angle = 96°). It starts at sunset.
nautical_twilight_begin
The start of the nautical dawn (zenith angle = 102°). It ends at civil_twilight_begin.
nautical_twilight_end
The end of the nautical dusk (zenith angle = 102°). It starts at civil_twilight_end.
astronomical_twilight_begin
The start of the astronomical dawn (zenith angle = 108°). It ends at nautical_twilight_begin.
astronomical_twilight_end
The end of the astronomical dusk (zenith angle = 108°). It starts at nautical_twilight_end.

The values of the array elements are either UNIX timestamps, false if the sun is below the respective zenith for the whole day, or true if the sun is above the respective zenith for the whole day.

Beispiele

Beispiel #1 A date_sun_info() example

<?php
$sun_info = date_sun_info(strtotime("2006-12-12"), 31.7667, 35.2333);
foreach ($sun_info as $key => $val) {
    echo "$key: " . date("H:i:s", $val) . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

sunrise: 05:52:11
sunset: 15:41:21
transit: 10:46:46
civil_twilight_begin: 05:24:08
civil_twilight_end: 16:09:24
nautical_twilight_begin: 04:52:25
nautical_twilight_end: 16:41:06
astronomical_twilight_begin: 04:21:32
astronomical_twilight_end: 17:12:00

Beispiel #2 Polar night

<?php
var_dump(date_sun_info(strtotime("2017-12-21"), 90, 0));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(9) {
  ["sunrise"]=>
  bool(false)
  ["sunset"]=>
  bool(false)
  ["transit"]=>
  int(1513857490)
  ["civil_twilight_begin"]=>
  bool(false)
  ["civil_twilight_end"]=>
  bool(false)
  ["nautical_twilight_begin"]=>
  bool(false)
  ["nautical_twilight_end"]=>
  bool(false)
  ["astronomical_twilight_begin"]=>
  bool(false)
  ["astronomical_twilight_end"]=>
  bool(false)
}

Beispiel #3 Midnight sun

<?php
var_dump(date_sun_info(strtotime("2017-06-21"), 90, 0));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(9) {
  ["sunrise"]=>
  bool(true)
  ["sunset"]=>
  bool(true)
  ["transit"]=>
  int(1498046510)
  ["civil_twilight_begin"]=>
  bool(true)
  ["civil_twilight_end"]=>
  bool(true)
  ["nautical_twilight_begin"]=>
  bool(true)
  ["nautical_twilight_end"]=>
  bool(true)
  ["astronomical_twilight_begin"]=>
  bool(true)
  ["astronomical_twilight_end"]=>
  bool(true)
}

Siehe auch

  • date_sunrise() - Returns time of sunrise for a given day and location
  • date_sunset() - Returns time of sunset for a given day and location


Returns time of sunrise for a given day and location

  • « date_sun_info
  • date_sunset »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Returns time of sunrise for a given day and location

date_sunrise

(PHP 5, PHP 7, PHP 8)

date_sunrise — Returns time of sunrise for a given day and location

Beschreibung

date_sunrise ( int $timestamp , int $returnFormat = SUNFUNCS_RET_STRING , float|null $latitude = null , float|null $longitude = null , float|null $zenith = null , float|null $utcOffset = null ) : string|int|float|false

date_sunrise() returns the sunrise time for a given day (specified as a timestamp) and location.

Parameter-Liste

timestamp

The timestamp of the day from which the sunrise time is taken.

returnFormat

returnFormat constants
constant | description | example
SUNFUNCS_RET_STRING | returns the result as string | 16:46
SUNFUNCS_RET_DOUBLE | returns the result as float | 16.78243132
SUNFUNCS_RET_TIMESTAMP | returns the result as int (timestamp) | 1095034606

latitude

Defaults to North, pass in a negative value for South. See also: date.default_latitude

longitude

Defaults to East, pass in a negative value for West. See also: date.default_longitude

zenith

zenith is the angle between the center of the sun and a line perpendicular to earth's surface. It defaults to date.sunrise_zenith

Common zenith angles
Angle | Description
90°50' | Sunrise: the point where the sun becomes visible.
96° | Civil twilight: conventionally used to signify the start of dawn.
102° | Nautical twilight: the point at which the horizon starts being visible at sea.
108° | Astronomical twilight: the point at which the sun starts being the source of any illumination.

utcOffset

Specified in hours. The utcOffset is ignored, if returnFormat is SUNFUNCS_RET_TIMESTAMP.

Rückgabewerte

Returns the sunrise time in a specified returnFormat on successIm Fehlerfall wird false zurückgegeben.. One potential reason for failure is that the sun does not rise at all, which happens inside the polar circles for part of the year.

Fehler/Exceptions

Jeder Aufruf der Datums- und Zeitfunktionen generiert eine E_NOTICE-Warnung, wenn die Zeitzone ungültig ist und eine E_STRICT-Nachricht oder eine E_WARNING-Warnung, wenn die Systemeinstellung oder die TZ-Umgebungsvariable genutzt wird. Siehe auch date_default_timezone_set()

Changelog

Version | Beschreibung
8.0.0 | latitude, longitude, zenith and utcOffset are nullable now.

Beispiele

Beispiel #1 date_sunrise() example

<?php

/* calculate the sunrise time for Lisbon, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunrise time : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Mon Dec 20 2004, sunrise time : 08:54

Beispiel #2 No sunrise

<?php
$solstice = strtotime('2017-12-21');
var_dump(date_sunrise($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)

Siehe auch

  • date_sunset() - Returns time of sunset for a given day and location
  • date_sun_info() - Returns an array with information about sunset/sunrise and twilight begin/end


Returns time of sunset for a given day and location

  • « date_sunrise
  • date_time_set »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Returns time of sunset for a given day and location

date_sunset

(PHP 5, PHP 7, PHP 8)

date_sunset — Returns time of sunset for a given day and location

Beschreibung

date_sunset ( int $timestamp , int $returnFormat = SUNFUNCS_RET_STRING , float|null $latitude = null , float|null $longitude = null , float|null $zenith = null , float|null $utcOffset = null ) : string|int|float|false

date_sunset() returns the sunset time for a given day (specified as a timestamp) and location.

Parameter-Liste

timestamp

The timestamp of the day from which the sunset time is taken.

returnFormat

returnFormat constants
constant | description | example
SUNFUNCS_RET_STRING | returns the result as string | 16:46
SUNFUNCS_RET_DOUBLE | returns the result as float | 16.78243132
SUNFUNCS_RET_TIMESTAMP | returns the result as int (timestamp) | 1095034606

latitude

Defaults to North, pass in a negative value for South. See also: date.default_latitude

longitude

Defaults to East, pass in a negative value for West. See also: date.default_longitude

zenith

zenith is the angle between the center of the sun and a line perpendicular to earth's surface. It defaults to date.sunset_zenith

Common zenith angles
Angle | Description
90°50' | Sunset: the point where the sun becomes invisible.
96° | Civil twilight: conventionally used to signify the end of dusk.
102° | Nautical twilight: the point at which the horizon ends being visible at sea.
108° | Astronomical twilight: the point at which the sun ends being the source of any illumination.

utcOffset

Specified in hours. The utcOffset is ignored, if returnFormat is SUNFUNCS_RET_TIMESTAMP.

Fehler/Exceptions

Jeder Aufruf der Datums- und Zeitfunktionen generiert eine E_NOTICE-Warnung, wenn die Zeitzone ungültig ist und eine E_STRICT-Nachricht oder eine E_WARNING-Warnung, wenn die Systemeinstellung oder die TZ-Umgebungsvariable genutzt wird. Siehe auch date_default_timezone_set()

Rückgabewerte

Returns the sunset time in a specified returnFormat on successIm Fehlerfall wird false zurückgegeben.. One potential reason for failure is that the sun does not set at all, which happens inside the polar circles for part of the year.

Changelog

Version | Beschreibung
8.0.0 | latitude, longitude, zenith and utcOffset are nullable now.

Beispiele

Beispiel #1 date_sunset() example

<?php

/* calculate the sunset time for Lisbon, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunset time : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Mon Dec 20 2004, sunset time : 18:13

Beispiel #2 No sunset

<?php
$solstice = strtotime('2017-12-21');
var_dump(date_sunset($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)

Siehe auch

  • date_sunrise() - Returns time of sunrise for a given day and location
  • date_sun_info() - Returns an array with information about sunset/sunrise and twilight begin/end


Alias von DateTime::setTime

  • « date_sunset
  • date_timestamp_get »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_time_set — Alias von DateTime::setTime()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::setTime()


Alias von DateTime::getTimestamp

  • « date_time_set
  • date_timestamp_set »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_timestamp_get — Alias von DateTime::getTimestamp()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::getTimestamp()


Alias von DateTime::setTimestamp

  • « date_timestamp_get
  • date_timezone_get »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::setTimestamp

date_timestamp_set

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_timestamp_set — Alias von DateTime::setTimestamp()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::setTimestamp()


Alias von DateTime::getTimezone

  • « date_timestamp_set
  • date_timezone_set »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::getTimezone

date_timezone_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_timezone_get — Alias von DateTime::getTimezone()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::getTimezone()


Alias von DateTime::setTimezone

  • « date_timezone_get
  • date »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTime::setTimezone

date_timezone_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_timezone_set — Alias von DateTime::setTimezone()

Beschreibung

Diese Funktion ist ein Alias für: DateTime::setTimezone()


Formatiert ein(e) angegebene(s) Ortszeit/Datum

  • « date_timezone_set
  • getdate »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Formatiert ein(e) angegebene(s) Ortszeit/Datum

date

(PHP 4, PHP 5, PHP 7, PHP 8)

date — Formatiert ein(e) angegebene(s) Ortszeit/Datum

Beschreibung

date ( string $format , int $timestamp = time() ) : string

Gibt einen formatierten String anhand eines vorzugebenden Musters zurück. Dabei wird entweder der angegebene Timestamp oder die gegenwärtige Zeit berücksichtigt, wenn kein Timestamp angegegeben wird. Mit anderen Worten ausgedrückt: der Parameter Timestamp ist optional und falls dieser nicht angegeben wird, wird der Wert der Funktion time() angenommen.

Parameter-Liste

format

Das Muster des auszugebenden Datums-/Zeit-String. Unten sind die verfügbaren Formatierungsoptionen angegeben. Es gibt auch verschiedene vordefinierte Konstanten, die verwendet werden können, z.B. enthält DATE_RSS das Formatierungsmuster 'D, d M Y H:i:s'.

Die folgenden Zeichen werden im Parameter Format erkannt
Format-Zeichen | Beschreibung | Beispiel für Rückgabewerte
Tag --- ---
d | Tag des Monats, 2-stellig mit führender Null | 01 bis 31
D | Wochentag, gekürzt auf drei Buchstaben | Mon bis Sun
j | Tag des Monats ohne führende Nullen | 1 bis 31
l (kleines 'L') | Ausgeschriebener Wochentag | Sunday bis Saturday
N | Numerische Repräsentation des Wochentages gemäß ISO-8601 (in PHP 5.1.0 hinzugefügt) | 1 (für Montag) bis 7 (für Sonntag)
S | Anhang der englischen Aufzählung für einen Monatstag, zwei Zeichen | st, nd, rd oder th. Zur Verwendung mit j empfohlen.
w | Numerischer Tag einer Woche | 0 (für Sonntag) bis 6 (für Samstag)
z | Der Tag des Jahres (von 0 beginnend) | 0 bis 365
Woche --- ---
W | ISO-8601 Wochennummer des Jahres, die Woche beginnt am Montag | Beispiel: 42 (die 42. Woche im Jahr)
Monat --- ---
F | Monat als ganzes Wort, wie January oder March | January bis December
m | Monat als Zahl, mit führenden Nullen | 01 bis 12
M | Monatsname mit drei Buchstaben | Jan bis Dec
n | Monatszahl, ohne führende Nullen | 1 bis 12
t | Anzahl der Tage des angegebenen Monats | 28 bis 31
Jahr --- ---
L | Schaltjahr oder nicht | 1 für ein Schaltjahr, ansonsten 0
o | Jahreszahl der Kalenderwoche gemäß ISO-8601. Dies ergibt den gleichen Wert wie Y, außer wenn die ISO-Kalenderwoche (W) zum vorhergehenden oder nächsten Jahr gehört, wobei dann jenes Jahr verwendet wird (in PHP 5.1.0 hinzugefügt). | Beispiele: 1999 oder 2003
Y | Vierstellige Jahreszahl | Beispiele: 1999 oder 2003
y | Jahreszahl, zweistellig | Beispiele: 99 oder 03
Uhrzeit --- ---
a | Kleingeschrieben: Ante meridiem (Vormittag) und Post meridiem (Nachmittag) | am oder pm
A | Großgeschrieben: Ante meridiem (Vormittag) und Post meridiem (Nachmittag) | AM oder PM
B | Swatch-Internet-Zeit | 000 bis 999
g | Stunde im 12-Stunden-Format, ohne führende Nullen | 1 bis 12
G | Stunde im 24-Stunden-Format, ohne führende Nullen | 0 bis 23
h | Stunde im 12-Stunden-Format, mit führenden Nullen | 01 bis 12
H | Stunde im 24-Stunden-Format, mit führenden Nullen | 00 bis 23
i | Minuten, mit führenden Nullen | 00 bis 59
s | Sekunden mit führenden Nullen | 00 bis 59
u | Mikrosekunden (hinzugefügt in PHP 5.2.2). Beachten Sie, dass date() immer die Ausgabe 000000 erzeugen wird, da es einen Integer als Parameter erhält, wohingegen DateTime::format() Mikrosekunden unterstützt, wenn DateTime mit Mikrosekunden erzeugt wurde. | Beispiel: 654321
v | Millisekunden (hinzugefügt in PHP 7.0.0). Es gelten die selben Anmerkungen wie für u. | Example: 654
Zeitzone --- ---
e | Zeitzonen-Bezeichner (hinzugefügt in PHP 5.1.0) | Beispiele: UTC, GMT, Atlantic/Azores
I (großes 'i') | Fällt ein Datum in die Sommerzeit | 1 bei Sommerzeit, ansonsten 0.
O | Zeitunterschied zur Greenwich time (GMT) in Stunden ohne Doppelpunkt zwischen Stunden und Minuten | Beispiel: +0200
P | Zeitunterschied zur Greenwich time (GMT) in Stunden mit Doppelpunkt zwischen Stunden und Minuten (hinzugefügt in PHP 5.1.3) | Beispiel: +02:00
T | Abkürzung der Zeitzone | Beispiele: EST, MDT ...
Z | Offset der Zeitzone in Sekunden. Der Offset für Zeitzonen westlich von UTC ist immer negativ und für Zeitzonen östlich von UTC immer positiv. | -43200 bis 50400
z | Gibt den Tag des Jahres zurück, ohne führende Null
Vollständige(s) Datum/Uhrzeit --- ---
c | ISO 8601 Datum (hinzugefügt in PHP 5) | 2004-02-12T15:19:21+00:00
r | Gemäß » RFC 2822 formatiertes Datum | Beispiel: Thu, 21 Dec 2000 16:01:07 +0200
U | Sekunden seit Beginn der UNIX-Epoche (January 1 1970 00:00:00 GMT) | Siehe auch time()

Nicht erkannte Zeichen werden unverändert ausgegeben. Das Z-Format gibt beim Gebrauch von gmdate() immer 0 zurück.

Hinweis:

Weil diese Funktion nur Integer-Zeitstempel akzeptiert, ist die Formatanweisung u nur nützlich, wenn man die Funktion date_format() mit von Benutzern angegebenen Timestamps aus der Funktion date_create() verwendet.

timestamp

Der optionale Parameter timestamp ist ein Unix-Timestamp als int oder die aktuelle lokale Zeit, wenn timestamp nicht übergeben wurde oder null ist. Er entspricht dann also dem Ergebnis der Funktion time().

Rückgabewerte

Gibt eine formatierte Datums-Zeichenkette zurück. Falls ein nicht numerischer Wert als timestamp übergeben wird, wird false zurückgegeben und ein Fehler der Stufe E_WARNING erzeugt.

Fehler/Exceptions

Jeder Aufruf der Datums- und Zeitfunktionen generiert eine E_NOTICE-Warnung, wenn die Zeitzone ungültig ist und eine E_STRICT-Nachricht oder eine E_WARNING-Warnung, wenn die Systemeinstellung oder die TZ-Umgebungsvariable genutzt wird. Siehe auch date_default_timezone_set()

Changelog

Version | Beschreibung
5.1.1 | Es gibt nützliche Konstanten von üblichen Datums-/Zeitformaten, die als Format-Parameter übergeben werden können.
5.1.0 | Der gültige Bereich eines Timestamp liegt typischerweise zwischen Fri, 13 Dec 1901 20:45:54 GMT und Tue, 19 Jan 2038 03:14:07 GMT. (Das entspricht den minimalen und maximalen Werten für einen vorzeichenbehafteten 32-Bit Integer). Vor PHP 5.1.0 war dieser Bereich auf manchen Systemen (z.B. Windows) eingeschränkt auf 01.01.1971 bis 19.01.2038.
5.1.0 | Erzeugt nun E_STRICT- und E_NOTICE-Zeitzonenfehler.

Beispiele

Beispiel #1 date()-Beispiele

<?php
// Die Standard-Zeitzone, die verwendet werden soll, setzen.
// Verfügbar seit PHP 5.1
date_default_timezone_set('UTC');

// Gibt etwas aus wie: 'Monday'
echo date("l");

// Gibt etwas aus wie: 'Monday 8th of August 2005 03:12:46 PM'
echo date('l jS \of F Y h:i:s A');

// Gibt aus: 'July 1, 2000 ist ein Saturday'
echo "July 1, 2000 ist ein " . date("l", mktime(0, 0, 0, 7, 1, 2000));

/* Verwende die Konstanten im Format-Parameter */
// Gibt etwas aus wie: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC822);

// Gibt etwas aus wie '2000-07-01T00:00:00+00:00'
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>

Möchten Sie verhindern, dass ein erkanntes Zeichen im Formatstring ersetzt wird, sollten Sie dieses Zeichen mit einem vorangestellten Backslash escapen. Ist das Zeichen mit dem Backslash bereits eine spezielle Zeichenfolge, müssen Sie diesen Backslash ebenso escapen.

Beispiel #2 Escaping von Zeichen in date()

<?php
// Gibt etwas ähnliches aus wie 'Wednesday the 15th'
echo date('l \t\h\e jS');
?>

Es ist möglich, date() und mktime() gleichzeitig zu verwenden, um Datumsangaben in der Zukunft oder Vergangenheit zu bestimmen.

Beispiel #3 date() und mktime()-Beispiele

<?php
$morgen        = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$letztermonat  = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$naechstesjahr = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
?>

Hinweis:

Dieses Vorgehen kann zu verlässlicheren Ergebnissen führen, als simples addieren oder subtrahieren der Anzahl von Sekunden in Tagen oder Monaten zu einem Timestamp, da Sommer- und Winterzeit berücksichtigt werden.

Es folgen einige Beispiele zur date()-Formatierung. Beachten Sie, dass Sie alle anderen Zeichen escapen sollten, da alle Zeichen, die im Augenblick eine spezielle Bedeutung haben, unerwünschte Resultate liefern. Bei allen weiteren Zeichen kann es durchaus möglich sein, dass diesen in zukünftigen PHP-Versionen eine Bedeutung zukommt. Beim Escapen sollten Sie darauf achten, einfache Anführungszeichen zu benutzen, damit Zeichenfolgen wie zum Beispiel \n zu keinem Zeilenumbruch führen.

Beispiel #4 date()-Formatierungen

<?php
// Angenommen, heute ist der 10. März 2001, 17:16:18 Uhr und wir
// befinden uns in der Zeitzone Mountain Standard Time (MST)

$heute = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$heute = date("m.d.y");                         // 03.10.01
$heute = date("j, n, Y");                       // 10, 3, 2001
$heute = date("Ymd");                           // 20010310
$heute = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$heute = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$heute = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$heute = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$heute = date("H:i:s");                         // 17:16:18
$heute = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (Das MySQL DATETIME Format)
?>

Um Datumsangaben in anderen Sprachen auszugeben,
sollten Sie die Funktionen setlocale()
und strftime() statt
date() verwendet werden.

Anmerkungen

Hinweis:

Um einen Zeitstempel aus einer Textrepräsentation eines Datums zu erzeugen, kann die Funktion strtotime() verwendet werden. Einige Datenbanken haben außerdem Funktionen, mit denen ihre Datumsformate in Zeitstempel konvertiert werden können (wie z.B. die Funktion » UNIX_TIMESTAMP von MySQL).

Tipp

Der Zeitstempel des Verarbeitungsbeginns der HTTP-Anfrage wird seit PHP 5.1 in $_SERVER['REQUEST_TIME'] bereitgestellt.

Siehe auch

  • gmdate() - Formatiert eine GMT/UTC Zeit-/Datumsangabe
  • idate() - Format a local time/date as integer
  • getdate() - Gibt Datums- und Zeitinformationen zurück
  • getlastmod() - Uhrzeit der letzten Änderung eines Scripts
  • mktime() - Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück
  • strftime() - Formatiere eine Zeit-/Datumsangabe gemäß dem Gebietsschema
  • time() - Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück
  • strtotime() - Wandelt ein beliebiges in englischer Textform angegebenes Datum in einen UNIX-Zeitstempel (Timestamp) um
  • Vordefinierte DateTime-Konstanten


Gibt Datums- und Zeitinformationen zurück

  • « date
  • gettimeofday »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Gibt Datums- und Zeitinformationen zurück

getdate

(PHP 4, PHP 5, PHP 7, PHP 8)

getdate — Gibt Datums- und Zeitinformationen zurück

Beschreibung

getdate ( int $timestamp = time() ) : array

Gibt ein assoziatives array mit Datums- und Zeitangaben des angegebenen timestamp zurück. Ist kein Timestamp angegeben, wird die lokal gültige Zeit verwendet.

Parameter-Liste

timestamp

Der optionale Parameter timestamp ist ein Unix-Timestamp als int oder die aktuelle lokale Zeit, wenn timestamp nicht übergeben wurde oder null ist. Er entspricht dann also dem Ergebnis der Funktion time().

Rückgabewerte

Gibt ein assoziatives Array mit Informationen zum timestamp zurück. Die Elemente des zurückgegebenen assoziativen Arrays sind folgende:

Schlüsselelemente des zurückgegebenen assoziativen Arrays
Key | Beschreibung | Beispiel für Rückgabewerte
"seconds" | Numerische Repräsentation der Sekunden | zwischen 0 und 59
"minutes" | Numerische Repräsentation der Minuten | zwischen 0 und 59
"hours" | Numerische Repräsentation der Stunden | zwischen 0 und 23
"mday" | Numerische Repräsentation des Monatstags | zwischen 1 und 31
"wday" | Numerische Repräsentation des Wochentags | zwischen 0 (für Sonntag) und 6 (für Sonnabend)
"mon" | Numerische Repräsentation des Monats | zwischen 1 und 12
"year" | Eine vollständige numerische Repräsentation der Jahreszahl (vierstellig) | Beispiele: 1999 oder 2003
"yday" | Numerische Repräsentation des Tages des Jahres | zwischen 0 und 365
"weekday" | Eine vollständige textuelle Repräsentation des Wochentags | zwischen Sonntag und Sonnabend
"month" | Eine vollständige textuelle Repräsentation des Monatsnamens, wie Januar oder März | zwischen Januar und Dezember
0 | Sekunden seit der Unix Epoche, ähnlich den Werten, die von der Funktion time() zurückgegeben und von der Funktion date() verwendet werden. | Abhängig vom System, typischerweise ein Wert zwischen -2147483648 und 2147483647.

Beispiele

Beispiel #1 getdate()-Beispiel

<?php
$heute = getdate();
print_r($heute);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [seconds] => 40
    [minutes] => 58
    [hours]   => 21
    [mday]    => 17
    [wday]    => 2
    [mon]     => 6
    [year]    => 2003
    [yday]    => 167
    [weekday] => Tuesday
    [month]   => June
    [0]       => 1055901520
)

Siehe auch

  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum
  • idate() - Format a local time/date as integer
  • localtime() - Ermittelt die lokale Zeit
  • time() - Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück
  • setlocale() - Legt regionale (locale) Einstellungen fest


Ermittelt die aktuelle Zeit

  • « getdate
  • gmdate »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Ermittelt die aktuelle Zeit

gettimeofday

(PHP 4, PHP 5, PHP 7, PHP 8)

gettimeofday — Ermittelt die aktuelle Zeit

Beschreibung

gettimeofday ( bool $returnFloat = false ) : mixed

Es handelt sich um eine Schnittstelle zum Systemaufruf von gettimeofday(2). Die Funktion gibt ein assoziatives Array zurück, das die Daten enthält, die der Systemaufruf produziert hat.

Parameter-Liste

returnFloat>

Sofern auf true gesetzt, wird eine Fließkommazahl anstelle des Arrays zurückgegeben.

Rückgabewerte

Standardmäßig wird ein Array zurückgegeben. Wenn der Parameter returnFloat angegeben wurde, ist der Rückgabewert vom Typ float.

Array-Schlüssel:

  • "sec" - Sekunden seit der Unix-Epoche
  • "usec" - Microsekunden
  • "minuteswest" - Minuten westlich von Greenwich
  • "dsttime" - Art der Korrektur der Sommerzeit

Beispiele

Beispiel #1 gettimeofday()-Beispiel

<?php
print_r(gettimeofday());

echo gettimeofday(true);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [sec] => 1073504408
    [usec] => 238215
    [minuteswest] => 0
    [dsttime] => 1
)

1073504408.23910


Formatiert eine GMT/UTC Zeit-/Datumsangabe

  • « gettimeofday
  • gmmktime »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Formatiert eine GMT/UTC Zeit-/Datumsangabe

gmdate

(PHP 4, PHP 5, PHP 7, PHP 8)

gmdate — Formatiert eine GMT/UTC Zeit-/Datumsangabe

Beschreibung

gmdate ( string $format , int $timestamp = time() ) : string

Identisch zur Funktion date(), ausgenommen dass die zurückgegebene Zeitangabe Greenwich Mean Time (GMT) entspricht.

Parameter-Liste

format

Das Format des ausgegebenen Datumsstrings. Siehe auch die Formatierungsoptionen der date()-Funktion.

timestamp

Der optionale Parameter timestamp ist ein Unix-Timestamp als int oder die aktuelle lokale Zeit, wenn timestamp nicht übergeben wurde oder null ist. Er entspricht dann also dem Ergebnis der Funktion time().

Rückgabewerte

Gibt einen formatierten Datumsstring zurück. Wenn ein nichtnumerischer Wert für timestamp verwendet wird, wird false zurückgegeben und eine Fehlermeldung vom Typ E_WARNING erzeugt.

Beispiele

Beispiel #1 gmdate()-Beispiel

Wenn das Skript in Finnland (GMT +0200) ausgeführt wird, gibt die erste Zeile "Jan 01 1998 00:00:00" aus, während die zweite Zeile "Dec 31 1997 22:00:00" zurückgibt.

<?php
echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>

Siehe auch

  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum
  • mktime() - Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück
  • gmmktime() - Gibt einen Unix-Timestamp (Zeitstempel) für ein GMT Datum zurück
  • strftime() - Formatiere eine Zeit-/Datumsangabe gemäß dem Gebietsschema


Gibt einen Unix-Timestamp (Zeitstempel) für ein GMT Datum zurück

  • « gmdate
  • gmstrftime »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Gibt einen Unix-Timestamp (Zeitstempel) für ein GMT Datum zurück

gmmktime

(PHP 4, PHP 5, PHP 7, PHP 8)

gmmktime — Gibt einen Unix-Timestamp (Zeitstempel) für ein GMT Datum zurück

Beschreibung

gmmktime
 ( int $hour = gmdate("H")
, int $minute = gmdate("i")
, int $second = gmdate("s")
, int $month = gmdate("n")
, int $day = gmdate("j")
, int $year = gmdate("Y")
, int $isDST = -1
) : int

Identisch zu mktime() mit der Ausnahme, dass die übergebenen Parameter ein GMT-Datum repräsentieren. gmmktime() greift intern auf mktime() zurück, so dass nur Zeitangaben valide sind, die in der ausgewählten lokalen Zeitzone genutzt werden können.

Wie bei mktime() können Argumente von rechts nach links weggelassen werden, wobei jedes fehlende Argument auf den gegenwärtigen entsprechenden GMT-Wert gesetzt wird.

Parameter-Liste

hour

Die Zahl der Stunden relativ zum Beginn des Tages, der durch month, day und year bestimmt ist. Negative Werte beziehen sich auf die Stunde vor Mitternacht des jeweiligen Tages. Werte größer als 23 beziehen sich auf die entsprechende Stunde des/der folgenden Tags/Tage.

minute

Die Zahl der Minuten relativ zum Beginn der hour. Negative Werte beziehen sich auf die Minute in der vorherigen Stunde. Werte größer als 59 beziehen sich auf die entsprechende Minute der folgenden Stunde(n).

second

Die Zahl der Sekunden relativ zum Beginn der minute. Negative Werte beziehen sich auf die Sekunde der vorherigen Minute. Werte größer als 59 beziehen sich auf die entsprechende Minute der folgenden Minute(n).

month

Die Zahl des Monats relativ zum Ende des vorherigen Jahres. Die Werte 1 bis 12 beziehen sich auf normale Kalendermonate des jeweiligen Jahres. Werte kleiner als 1 (einschließlich negativer Werte) beziehen sich auf die Monate des vorherigen Jahres in umgekehrter Reihenfolge, so dass 0 Dezember ist, -1 November, usw. Werte größer als 12 beziehen sich auf den entsprechenden Monat des/der folgenden Jahrs/Jahre.

day

Die Zahl des Tages relativ zum Ende des vorherigen Monats. Die Werte 1 bis 28, 29, 30 oder 31 (in Abhängigkeit vom Monat) beziehen sich auf normale Tage im aktuellen Monat. Werte kleiner als 1 (einschließlich negativer Werte) beziehen sich auf die Tage im vorherigen Monat, so dass 0 der letzte Tag des vorherigen Monats ist, -1 der vorletzte, usw. Werte größer als die Anzahl von Tagen im aktuellen Monat beziehen sich auf den entsprechenden Tag in dem/den folgenden Monat(en).

year

Das Jahr

isDST

Parameter repräsentieren immer ein GMT-Datum, so dass isDST keinen Einfluss auf das Ergebnis nimmt.

Hinweis:

Dieser Parameter wurde in PHP 7.0.0 entfernt.

Rückgabewerte

Gibt einen Unix Timestamp im integer-Format zurück.

Beispiele

Beispiel #1 Grundlegendes gmmktime() Beispiel

<?php
// Ausgabe: July 1, 2000 ist an einem Saturday
echo "July 1, 2000 ist an einem " . date("l", gmmktime(0, 0, 0, 7, 1, 2000));
?>

Siehe auch

  • mktime() - Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück
  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum
  • time() - Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück


Formatiert eine Datum-/Zeitangabe in GMT/UTC-Format entsprechend den lokalen Einstellungen

  • « gmmktime
  • idate »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Formatiert eine Datum-/Zeitangabe in GMT/UTC-Format entsprechend den lokalen Einstellungen

gmstrftime

(PHP 4, PHP 5, PHP 7, PHP 8)

gmstrftime — Formatiert eine Datum-/Zeitangabe in GMT/UTC-Format entsprechend den lokalen Einstellungen

Beschreibung

gmstrftime ( string $format , int $timestamp = time() ) : string

Bewirkt das gleiche wie strftime() mit dem Unterschied, dass die Zeit nach Greenwich Mean Time (GMT) zurückgegeben wird. Wenn das Skript beispielsweise unter Eastern Standard Time (GMT -0500) läuft, gibt die erste Zeile unten "Dec 31 1998 20:00:00" aus, während die zweite "Jan 01 1999 01:00:00" ausgibt.

Parameter-Liste

format

Siehe die Beschreibung bei strftime().

timestamp

Der optionale Parameter timestamp ist ein Unix-Timestamp als int oder die aktuelle lokale Zeit, wenn timestamp nicht übergeben wurde oder null ist. Er entspricht dann also dem Ergebnis der Funktion time().

Rückgabewerte

Gibt eine entsprechend dem übergebenen Formatstring formatierte Zeichenkette zurück. Die verwendete Zeitangabe wird durch den übergebenen timestamp oder die aktuelle lokale Zeit festgelegt, wenn kein Timestamp angegeben wurde. Monats- und Wochentagsnamen sowie andere sprachabhängige Zeichenketten beziehen sich auf die via setlocale() festgelegte aktuelle Locale-Angabe.

Beispiele

Beispiel #1 gmstrftime()-Beispiel

<?php
setlocale(LC_TIME, 'en_US');
echo strftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
?>

Siehe auch

  • strftime() - Formatiere eine Zeit-/Datumsangabe gemäß dem Gebietsschema


Format a local time/date as integer

  • « gmstrftime
  • localtime »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Format a local time/date as integer

idate

(PHP 5, PHP 7, PHP 8)

idate — Format a local time/date as integer

Beschreibung

idate ( string $format , int|null $timestamp = null ) : int|false

Returns a number formatted according to the given format string using the given integer timestamp or the current local time if no timestamp is given. In other words, timestamp is optional and defaults to the value of time().

Unlike the function date(), idate() accepts just one char in the format parameter.

Parameter-Liste

format

The following characters are recognized in the format parameter string
format character | Description
B | Swatch Beat/Internet Time
d | Day of the month
h | Hour (12 hour format)
H | Hour (24 hour format)
i | Minutes
I (uppercase i) | returns 1 if DST is activated, 0 otherwise
L (uppercase l) | returns 1 for leap year, 0 otherwise
m | Month number
s | Seconds
t | Days in current month
U | Seconds since the Unix Epoch - January 1 1970 00:00:00 UTC - this is the same as time()
w | Day of the week (0 on Sunday)
W | ISO-8601 week number of year, weeks starting on Monday
y | Year (1 or 2 digits - check note below)
Y | Year (4 digits)
z | Day of the year
Z | Timezone offset in seconds

timestamp

Der optionale Parameter timestamp ist ein Unix-Timestamp als int oder die aktuelle lokale Zeit, wenn timestamp nicht übergeben wurde oder null ist. Er entspricht dann also dem Ergebnis der Funktion time().

Rückgabewerte

Returns an int on success, Im Fehlerfall wird false zurückgegeben..

As idate() always returns an int and as they can't start with a "0", idate() may return fewer digits than you would expect. See the example below.

Fehler/Exceptions

Jeder Aufruf der Datums- und Zeitfunktionen generiert eine E_NOTICE-Warnung, wenn die Zeitzone ungültig ist und eine E_STRICT-Nachricht oder eine E_WARNING-Warnung, wenn die Systemeinstellung oder die TZ-Umgebungsvariable genutzt wird. Siehe auch date_default_timezone_set()

Changelog

Version | Beschreibung
8.0.0 | timestamp is nullable now.

Beispiele

Beispiel #1 idate() example

<?php
$timestamp = strtotime('1st January 2004'); //1072915200

// this prints the year in a two digit format
// however, as this would start with a "0", it
// only prints "4"
echo idate('y', $timestamp);
?>

Siehe auch

  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum
  • getdate() - Gibt Datums- und Zeitinformationen zurück
  • time() - Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück


Ermittelt die lokale Zeit

  • « idate
  • microtime »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Ermittelt die lokale Zeit

localtime

(PHP 4, PHP 5, PHP 7, PHP 8)

localtime — Ermittelt die lokale Zeit

Beschreibung

localtime ( int $timestamp = time() , bool $associative = false ) : array

Die localtime()-Funktion gibt ein Array zurück, welches hinsichtlich seiner Struktur identisch ist mit der des Funktionsaufrufs in C.

Parameter-Liste

timestamp

Der optionale Parameter timestamp ist ein Unix-Timestamp als int oder die aktuelle lokale Zeit, wenn timestamp nicht übergeben wurde oder null ist. Er entspricht dann also dem Ergebnis der Funktion time().

associative

Ist der Wert nicht angegeben oder false, ist das zurückgegebene Array ein normales numerisch indiziertes Array. Hat das Argument den Wert true, gibt localtime() ein assoziatives Array zurück, das alle unterschiedlichen Strukturelemente enthält, die vom Aufruf der C-Funktion localtime zurückgegeben werden. Die Namen der unterschiedlichen Schlüssel des assoziativen Arrays lauten:

  • "tm_sec" - Sekunden, 0 bis 59
  • "tm_min" - Minuten, 0 bis 59
  • "tm_hour" - Stunde, 0 bis 23
  • "tm_mday" - Tag des Monats, 1 bis 31
  • "tm_mon" - Monat des Jahres, 0 (Jan) bis 11 (Dez)
  • "tm_year" - Jahre seit 1900
  • "tm_wday" - Tag der Woche, 0 (Son) bis 6 (Sam)
  • "tm_yday" - Tag des Jahres, 0 bis 365
  • "tm_isdst" - Ob für das Datum die Sommerzeit zu berücksichtigen ist Positiv wenn Ja, 0 wenn Nein, negativ wenn unbekannt.

Fehler/Exceptions

Jeder Aufruf der Datums- und Zeitfunktionen generiert eine E_NOTICE-Warnung, wenn die Zeitzone ungültig ist und eine E_STRICT-Nachricht oder eine E_WARNING-Warnung, wenn die Systemeinstellung oder die TZ-Umgebungsvariable genutzt wird. Siehe auch date_default_timezone_set()

Beispiele

Beispiel #1 localtime()-Beispiel

<?php
$localtime = localtime();
$localtime_assoc = localtime(time(), true);
print_r($localtime);
print_r($localtime_assoc);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => 24
    [1] => 3
    [2] => 19
    [3] => 3
    [4] => 3
    [5] => 105
    [6] => 0
    [7] => 92
    [8] => 1
)

Array
(
    [tm_sec] => 24
    [tm_min] => 3
    [tm_hour] => 19
    [tm_mday] => 3
    [tm_mon] => 3
    [tm_year] => 105
    [tm_wday] => 0
    [tm_yday] => 92
    [tm_isdst] => 1
)

Siehe auch

  • getdate() - Gibt Datums- und Zeitinformationen zurück


Gibt den aktuellen Unix-Timestamp/Zeitstempel mit Mikrosekunden zurück

  • « localtime
  • mktime »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Gibt den aktuellen Unix-Timestamp/Zeitstempel mit Mikrosekunden zurück

microtime

(PHP 4, PHP 5, PHP 7, PHP 8)

microtime — Gibt den aktuellen Unix-Timestamp/Zeitstempel mit Mikrosekunden zurück

Beschreibung

microtime ( bool $getAsFloat = false ) : mixed

microtime() gibt den aktuellen Unix-Timestamp mit Mikrosekunden zurück. Diese Funktion steht nur auf Systemen zur Verfügung, die den Systemaufruf gettimeofday() unterstützen.

Für Leistungsfähigkeitsmessungen wird die Verwendung von hrtime() empfohlen.

Parameter-Liste

getAsFloat

Wenn auf true gesetzt, gibt microtime() einen float anstatt einem string zurück, wie in der Rückgabewert-Sektion unten genauer erläutert wird.

Rückgabewerte

Standardmäßig gibt microtime() einen string im Format "Mikrosekunden Sekunden" zurück, wobei Sekunden die Sekunden seit Beginn der Unix Epoche (01. Januar 1970 00:00:00 GMT) sind und Mikrosekunden die Anzahl an Mikrosekunden misst, die seit Sekunden vergangen sind, was ebenso in Sekunden ausgedrückt wird.

Wenn getAsFloat true ist, gibt microtime() stattdessen einen float zurück, welcher die aktuelle Zeit in Sekunden seit Beginn der Unix Epoche angibt (die Nachkommastellen geben die Mikrosekunden an).

Beispiele

Beispiel #1 Zeitmessung einer Skriptausführung mit microtime()

<?php
/**
 * Einfache Funktion zum Replizieren des PHP 5-Verhaltens
 */
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

// Die Skriptverarbeitung fuer einen bestimmten Zeitraum unterbrechen
usleep(100);

$time_end = microtime_float();
$time = $time_end - $time_start;

echo "In $time Sekunden nichts getan\n";
?>

Beispiel #2 Zeitmessung einer Skriptausführung in PHP 5

<?php
$time_start = microtime(true);

// Die Skriptverarbeitung fuer einen bestimmten Zeitraum unterbrechen
usleep(100);

$time_end = microtime(true);
$time = $time_end - $time_start;

echo "In $time Sekunden nichts getan\n";
?>

Beispiel #3 microtime() und REQUEST_TIME_FLOAT (ab PHP 5.4.0)

<?php
// zufällige Pausendauer
usleep(mt_rand(100, 10000));

// Ab PHP 5.4.0 ist REQUEST_TIME_FLOAT im superglobale $_SERVER Array verfügbar.
// Es enthält den Zeitstempel des Beginns des Request in Mikrosekunden-Auflösung.
$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];

echo "Nichts getan in $time Sekunden\n";
?>

Siehe auch

  • time() - Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück
  • hrtime() - Get the system's high resolution time


Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück

  • « microtime
  • strftime »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück

mktime

(PHP 4, PHP 5, PHP 7, PHP 8)

mktime — Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück

Beschreibung

mktime
 ( int $hour = date("H")
, int $minute = date("i")
, int $second = date("s")
, int $month = date("n")
, int $day = date("j")
, int $year = date("Y")
, int $isDst = -1
) : int

Gibt den Unix-Timestamp entsprechend der gegebenen Argumente zurück. Dieser Timestamp ist ein Long Integer, der die Anzahl der Sekunden zwischen der Unix-Epoche (01. Januar 1970 00:00:00 GMT) und dem angegebenen Zeitpunkt enthält.

Einzelne Argumente können von rechts nach links weggelassen werden. Sie werden dann mit den Werten der lokalen Systemzeit bzw. des lokalen Systemdatums ersetzt.

Anmerkungen

Hinweis:

Seit PHP 5.1 wirft mktime() eine E_STRICT-Notice, wenn die Funktion ohne Argumente aufgerufen wird. Verwenden Sie in diesem Fall stattdessen die time()-Funktion.

Parameter-Liste

hour

Die Zahl der Stunden relativ zum Beginn des Tages, der durch month, day und year bestimmt ist. Negative Werte beziehen sich auf die Stunde vor Mitternacht des jeweiligen Tages. Werte größer als 23 beziehen sich auf die entsprechende Stunde des/der folgenden Tags/Tage.

minute

Die Zahl der Minuten relativ zum Beginn der hour. Negative Werte beziehen sich auf die Minute in der vorherigen Stunde. Werte größer als 59 beziehen sich auf die entsprechende Minute der folgenden Stunde(n).

second

Die Zahl der Sekunden relativ zum Beginn der minute. Negative Werte beziehen sich auf die Sekunde der vorherigen Minute. Werte größer als 59 beziehen sich auf die entsprechende Minute der folgenden Minute(n).

month

Die Zahl des Monats relativ zum Ende des vorherigen Jahres. Die Werte 1 bis 12 beziehen sich auf normale Kalendermonate des jeweiligen Jahres. Werte kleiner als 1 (einschließlich negativer Werte) beziehen sich auf die Monate des vorherigen Jahres in umgekehrter Reihenfolge, so dass 0 Dezember ist, -1 November, usw. Werte größer als 12 beziehen sich auf den entsprechenden Monat des/der folgenden Jahrs/Jahre.

day

Die Zahl des Tages relativ zum Ende des vorherigen Monats. Die Werte 1 bis 28, 29, 30 oder 31 (in Abhängigkeit vom Monat) beziehen sich auf normale Tage im aktuellen Monat. Werte kleiner als 1 (einschließlich negativer Werte) beziehen sich auf die Tage im vorherigen Monat, so dass 0 der letzte Tag des vorherigen Monats ist, -1 der vorletzte, usw. Werte größer als die Anzahl von Tagen im aktuellen Monat beziehen sich auf den entsprechenden Tag in dem/den folgenden Monat(en).

year

Die Jahreszahl, die zwei- oder vierstellig angegeben werden kann. Werte von 0 bis 69 werden auf 2000-2069 gemappt, Werte von 70 bis 100 auf 1970-2000. Auf Systemen, auf denen time_t ein 32-Bit Signed Integer ist (das sind die meisten der heutigen Systeme), beginnt der gültige Wertebereich für year bei 1901 und endet bei 2038. Allerdings begrenzen PHP-Versionen vor 5.1.0 den Bereich auf einigen Systemen (z.B. Windows) auf 1970-2038.

isDst

isDst kann bei Sommerzeit (DST) auf 1 gesetzt werden, der Wert 0 steht für Winter-/Normalzeit und -1 (Standardwert) heißt, dass unbekannt ist, ob gerade Sommer- oder Winterzeit herrscht. Sofern unbekannt, versucht PHP, dies selbst herauszufinden. Das kann zu unerwarteten (aber dennoch korrekten) Ergebnissen führen. Einige Zeitangaben sind ungültig, wenn die automatische Zeitumstellung auf dem System aktiviert ist, auf dem PHP läuft, oder auf dem der Parameter isDst den Wert 1 hat. Wenn die Sommerzeit (DST) z.B. um 02:00 Uhr aktiviert wird, sind alle Zeitangaben zwischen 02:00 Uhr und 03:00 Uhr ungültig und mktime() gibt einen undefinierten (meist negativen) Wert zurück. Einige Betriebssyteme (z.B. Solaris 8) nehmen die Zeitumstellung um Mitternacht vor, so dass die Zeitangabe 0:30 als 23:30 des vorherigen Tages interpretiert wird.

Hinweis:

Seit PHP 5.1.0 gilt dieses Parameter als veraltet und wird nicht mehr zur Verwendung empfohlen. Verwenden Sie daher die neuen Features zum Handling von Zeitzonen.

Hinweis:

Dieser Parameter wurde in PHP 7.0.0 entfernt.

Rückgabewerte

mktime() gibt den zu den übergebenen Argumenten passenden Unix-Timestamp zurück. Wenn die Argumente ungültig sind, gibt die Funktion false zurück (vor PHP 5.1 wurde dann -1 zurückgegeben).

Fehler/Exceptions

Jeder Aufruf der Datums- und Zeitfunktionen generiert eine E_NOTICE-Warnung, wenn die Zeitzone ungültig ist und eine E_STRICT-Nachricht oder eine E_WARNING-Warnung, wenn die Systemeinstellung oder die TZ-Umgebungsvariable genutzt wird. Siehe auch date_default_timezone_set()

Beispiele

Beispiel #1 Einfaches mktime()-Beispiel

<?php
// Setzt die zu verwendende Standardzeitzone. Verfügbar seit PHP 5.1
date_default_timezone_set('UTC');

// Gibt aus: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

// Gibt etwas aus wie: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>

Beispiel #2 mktime()-Beispiel

mktime() ist hilfreich bei Datumsberechnungen und -prüfungen, da automatisch das korrekte Datum für Werte außerhalb der gültigen Bereiche berechnet wird. So wird in den folgenden Beispielen immer die Zeichenkette "Jan-01-1998" ausgegeben.

<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>

Beispiel #3 Letzter Tag eines Monats

Der letzte Tag eines gegebenen Monats kann als Tag "0" des folgenden Monats ausgedrückt werden, nicht jedoch als Tag "-1". Beide folgenden Beispiele ergeben die Zeichenkette "Letzter Tag im Februar 2000 ist der 29."

<?php
$letzterTag = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("Letzter Tag im Februar 2000 ist der %d.", $letzterTag);
$letzterTag = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("Letzter Tag im Februar 2000 ist der %d.", $letzterTag);
?>

Anmerkungen

Achtung

Vor PHP 5.1.0 wurden negative Timestamps von keiner bekannten Windowsversion oder anderen Betriebssystemen unterstützt. Daher war der Bereich gültiger Jahresangaben auf Werte zwischen 1970 und 2038 beschränkt.

Siehe auch

  • checkdate() - Prüft ein Gregorianisches Datum auf Gültigkeit
  • gmmktime() - Gibt einen Unix-Timestamp (Zeitstempel) für ein GMT Datum zurück
  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum
  • time() - Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück


Formatiere eine Zeit-/Datumsangabe gemäß dem Gebietsschema

  • « mktime
  • strptime »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Formatiere eine Zeit-/Datumsangabe gemäß dem Gebietsschema

strftime

(PHP 4, PHP 5, PHP 7, PHP 8)

strftime — Formatiere eine Zeit-/Datumsangabe gemäß dem Gebietsschema

Beschreibung

strftime ( string $format , int $timestamp = time() ) : string

Formatiere eine Zeit-/Datumsangabe gemäß dem Gebietsschema. Monats- und Wochentagsnamen sowie andere sprachabhängige Zeichenketten werden entsprechend des per setlocale() eingestellten Wertes dargestellt.

Es ist durchaus möglich, dass Ihre C-Bibliothek nicht alle angegebenen Formatierungszeichen erkennt. In diesem Fall werden diese Zeichen von der PHP-Funktion strftime() nicht unterstützt. Zusätzlich unterstützen nicht alle Plattformen negative Werte eines Timestamps, deshalb könnte der Wertebereich eines Datums durch den Beginn der Unix Epoche begrenzt sein. Das bedeutet, dass z.B. %e, %T, %R und %D (und vielleicht noch weitere) und Zeitangaben vor dem Jan 1, 1970 auf Windowssystemen, einigen Linuxdistributionen und einigen anderen Betriebssytemen nicht funktionieren. Für Windowsbetriebssysteme finden Sie eine komplette Übersicht der gültigen Platzhalter im Formatierungsstring im » MSDN.

Parameter-Liste

format

Folgende Zeichen werden in der format Parameterzeichenkette erkannt
format | Beschreibung | Wertebeispiel
Tag --- ---
%a | Abgekürzter Name des Wochentages | So bis Sa
%A | Ausgeschriebener Name des Wochentages | Sonntag bis Samstag
%d | Tag des Monats als zweistellige Zahl (ggf. mit vorangestellten Nullen) | 01 bis 31
%e | Tag des Monats als Dezimal-Wert; einstelligen Werten wird ein Leerzeichen voran gestellt. Unter Windows nicht wie beschrieben implementiert; siehe weiter unten für weitere Informationen. | 1 bis 31
%j | Tag des Jahres als dreistellige Zahl, ggf. mit vorangestellten Nullen | 001 bis 366
%u | ISO-8601 numerische Darstellung des Wochentages | 1 (für Montag) bis 7 (für Sonntag)
%w | Numerische Darstellung des Wochentags | 0 (für Sonntag) bis 6 (für Samstag)
Woche --- ---
%U | Nummer der Kalenderwoche des gegebenen Jahres, beginnend mit dem ersten Sonntag als erste Woche | 13 (für die 13. Kalenderwoche des Jahres)
%V | ISO-8601:1988 Kalenderwochennummer des gegebenen Jahres, beginnend mit der ersten Woche des Jahres mit wenigstens 4 Wochentagen, wobei Montag der Start der Kalenderwoche ist | 01 bis 53 (wobei 53 eine überlappende Woche repräsentiert)
%W | Numerische Darstellung der Kalenderwoche, beginnend mit dem ersten Montag als erste Woche | 46 (für die 46. Woche des Jahres, die mit einem Montag beginnt)
Monat --- ---
%b | Abgekürzter Monatsname gemäß dem Gebietsschema | Jan bis Dez
%B | Vollständiger Monatsname gemäß dem Gebietsschema | Januar bis Dezember
%h | Abgekürzter Monatsname gemäß dem Gebietsschema (ein Alias von %b) | Jan bis Dez
%m | Zweistellige numerische Darstellung des Monats | 01 (für Januar) bis 12 (für Dezember)
Jahr --- ---
%C | Zweistellige numerische Darstellung des Jahrhunders (Jahr geteilt durch 100, abgerundet zu einer Ganzzahl) | 19 für das 20. Jahrhundert
%g | Zweistellige numerische Darstellung des Jahres gemäß dem ISO-8601:1988 Standard (siehe %V) | Beispiel: 09 für die Woche des 6. Januar 2009
%G | Die vollständige vierstellige numerische Version von %g | Beispiel: 2008 für die Woche des 3. Januar 2009
%y | Zweistellige numerische Darstellung des Jahres | Beispiel: 09 für 2009, 79 für 1979
%Y | Vierstellige numerische Darstellung des Jahres | Beispiel: 2038
Zeit --- ---
%H | Zweistellige numerische Darstellung der Stunde im 24-Stunden-Format | 00 bis 23
%k | Stunde im 24-Stunden-Format mit einem Leerzeichen vor einstelligen Stunden | 0 bis 23
%I | Zweistellige numerische Darstellung der Stunde im 12-Stunden-Format | 01 bis 12
%l (kleines 'L') | Stunde im 12-Stunden-Format mit einem Leerzeichen vor einstelligen Stunden | 1 bis 12
%M | Zweistellige numerische Darstellung der Minute | 00 bis 59
%p | 'AM' oder 'PM' in Großbuchstaben, basierend auf der gegebenen Zeit | Beispiel: AM für 00:31, PM für 22:23
%P | 'am' oder 'pm' in Kleinbuchstaben, basierend auf der gegebenen Zeit | Beispiel: am für 00:31, pm für 22:23
%r | Das gleiche wie "%I:%M:%S %p" | Beispiel: 09:34:17 PM für 21:34:17
%R | Das gleiche wie "%H:%M" | Beispiel: 00:35 für 12:35 AM, 16:44 für 4:44 PM
%S | Zweistellige numerische Darstellung der Sekunde | 00 bis 59
%T | Das gleiche wie "%H:%M:%S" | Beispiel: 21:34:17 für 09:34:17 PM
%X | Bevorzugte Zeitdarstellung gemäß dem Gebietsschema, ohne Datumsangabe | Beispiel: 03:59:16 oder 15:59:16
%z | Der Zeitzonen-Versatz. Unter Windows nicht wie beschrieben implementiert; siehe weiter unten für weitere Informationen. | Beispiel: -0500 für US Eastern Time
%Z | Das Zeitzonenkürzel. Unter Windows nicht wie beschrieben implementiert; siehe weiter unten für weitere Informationen. | Beispiel: EST für Eastern Time
Datums- und Zeitstempel --- ---
%c | Bevorzugter Datums- und Zeitstempel gemäß dem Gebietsschema | Beispiel: 05.02.2009 00:45:10 für den 5. Februar 2009 um 00:45:10
%D | Das gleiche wie "%m/%d/%y" | Example: 02/05/09 für den 5. Februar 2009
%F | Same as "%Y-%m-%d" (oft verwendet für Datenbankzeitstempel) | Example: 2009-02-05 für den 5. Februar 2009
%s | Zeitstempel der Unix-Epochenzeit (das gleiche wie die time() Funktion) | Beispiel: 305815200 für den 10. September 1979, 08:40:00
%x | Bevorzugte Datumsdarstellung gemäß dem Gebietsschema, ohne Zeitangabe | Beispiel: 02/05/09 für den 5. Februar 2009
Verschiedenes --- ---
%n Ein Zeilenvorschubzeichen ("\n") ---
%t Ein Tabulatorzeichen ("\t") ---
%% Ein buchstäbliches Prozentzeichen ("%") ---

Die Höchstlänge dieses Parameters sind 1023 Zeichen.

Warnung

Im Gegensatz zu ISO-9899:1999 beginnt Sun Solaris mit Sonntag als 1. Daraus folgt, dass %u nicht wie in diesem Handbuch beschrieben funktionieren kann.

Warnung

Nur für Windows:

Der %e Platzhalter wird nicht in der Windows Implementierung dieser Funktion unterstützt. Um diesen Wert zu erhalten, kann der %#d Platzhalter statt dessen verwendet werden. Das Beispiel weiter unten zeigt wie eine Plattform übergreifende kompatible Funktion geschrieben werden kann.

Die %z und %Z Platzhalter geben beide den Namen der Zeitzone anstelle des Versatzes oder des Kürzels zurück.

Warnung

Nur für macOS: Der %P Platzhalter wird nicht in der macOS Implementierung dieser Funktion unterstüzt.

timestamp

Der optionale Parameter timestamp ist ein Unix-Timestamp als int oder die aktuelle lokale Zeit, wenn timestamp nicht übergeben wurde oder null ist. Er entspricht dann also dem Ergebnis der Funktion time().

Rückgabewerte

Gibt eine Zeichenkette zurück, die gemäß format unter Verwendung des angegebenen timestamp oder der aktuellen Ortszeit, falls kein Zeitstempel angegeben wurde, formatiert ist. Monats- und Wochentagsnamen sowie andere sprachabhängige Zeichenketten werden entsprechend des per setlocale() eingestellten Wertes dargestellt.

Fehler/Exceptions

Jeder Aufruf der Datums- und Zeitfunktionen generiert eine E_NOTICE-Warnung, wenn die Zeitzone ungültig ist und eine E_STRICT-Nachricht oder eine E_WARNING-Warnung, wenn die Systemeinstellung oder die TZ-Umgebungsvariable genutzt wird. Siehe auch date_default_timezone_set()

Da die Ausgabe von der unterliegenden C-Bibliothek abhängt, werden einige Konversionsangaben nicht unterstützt. Unter Window führt die Angabe von Konversionsangaben zu 5 E_WARNING Meldungen, und die Funktion gibt false zurück. Unter anderen Betriebssystemen werden unter Umständen keine E_WARNING Meldungen erzeugt, und die Ausgabe kann die Konversionsangaben unverändert enthalten.

Beispiele

Dieses Beispiel funktioniert nur, wenn auf Ihrem System die entsprechenden Locales installiert sind.

Beispiel #1 strftime() locale Beispiel

<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" in Finnish is %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" in French %A and");
setlocale(LC_TIME, "de_DE");
echo strftime(" in German %A.\n");
?>

Beispiel #2 ISO 8601:1988 Wochennummer Beispiel

<?php
/*     Dezember 2002 / Januar 2003
ISOWk  Mo  Di  Mi  Do  Fr  Sa  So
----- ----------------------------
51     16  17  18  19  20  21  22
52     23  24  25  26  27  28  29
1      30  31   1   2   3   4   5
2       6   7   8   9  10  11  12
3      13  14  15  16  17  18  19   */

// Ausgabe: 28.12.2002 - %V,%G,%Y = 52,2002,2002
echo "28.12.2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n";

// Ausgabe: 30.12.2002 - %V,%G,%Y = 1,2003,2002
echo "30.12.2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n";

// Ausgabe: 03.01.2003 - %V,%G,%Y = 1,2003,2003
echo "03.01.2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";

// Ausgabe: 10.01.2003 - %V,%G,%Y = 2,2003,2003
echo "10.01.2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";

/*     Dezember 2004 / Januar 2005
ISOWk  Mo  Di  Mi  Do  Fr  Sa  So
----- ----------------------------
51     13  14  15  16  17  18  19
52     20  21  22  23  24  25  26
53     27  28  29  30  31   1   2
1       3   4   5   6   7   8   9
2      10  11  12  13  14  15  16   */

// Ausgabe: 23.12.2004 - %V,%G,%Y = 52,2004,2004
echo "23.12.2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";

// Ausgabe: 31.12.2004 - %V,%G,%Y = 53,2004,2004
echo "31.12.2004- %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";

// Ausgabe: 02.01.2005 - %V,%G,%Y = 53,2004,2005
echo "02.01.2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";

// Ausgabe: 03.01.2005 - %V,%G,%Y = 1,2005,2005
echo "03.01.2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";

?>

Beispiel #3 Plattform übergreifendes Beispiel unter Verwendung des %e Platzhalters

<?php

// 1. Januar ergibt: '%e%1%' (%%, e, %%, %e, %%)
$format = '%%e%%%e%%';

// Prüfe auf Windows, um den %e Platzhalter korrekt zu ersetzen
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
    $format = preg_replace('#(?<!%)((?:%%)*)%e#', '\1%#d', $format);
}

echo strftime($format);
?>

Beispiel #4 Zeige alle bekannten und unbekannten Formate an.

<?php
// Beschreibe die Formate.
$strftimeFormats = array(
    'A' => 'Ausgeschriebener Name des Wochentages',
    'B' => 'Vollständiger Monatsname gemäß dem Gebietsschema',
    'C' => 'Zweistellige numerische Darstellung des Jahrhunders (Jahr geteilt durch 100, abgerundet zu einer Ganzzahl)',
    'D' => 'Das gleiche wie "%m/%d/%y"',
    'E' => '',
    'F' => 'Same as "%Y-%m-%d"',
    'G' => 'Die vollständige vierstellige numerische Version von %g',
    'H' => 'Zweistellige numerische Darstellung der Stunde im 24-Stunden-Format',
    'I' => 'Zweistellige numerische Darstellung der Stunde im 12-Stunden-Format',
    'J' => '',
    'K' => '',
    'L' => '',
    'M' => 'Zweistellige numerische Darstellung der Minute',
    'N' => '',
    'O' => '',
    'P' => '"am" oder "pm" in Kleinbuchstaben, basierend auf der gegebenen Zeit',
    'Q' => '',
    'R' => 'Das gleiche wie "%H:%M"',
    'S' => 'Zweistellige numerische Darstellung der Sekunde',
    'T' => 'Das gleiche wie "%H:%M:%S"',
    'U' => 'Nummer der Kalenderwoche des gegebenen Jahres, beginnend mit dem ersten Sonntag als erste Woche',
    'V' => 'ISO-8601:1988 Kalenderwochennummer des gegebenen Jahres, beginnend mit der ersten Woche des Jahres mit wenigstens 4 Wochentagen, wobei Montag der Start der Kalenderwoche ist',
    'W' => 'Numerische Darstellung der Kalenderwoche, beginnend mit dem ersten Montag als erste Woche',
    'X' => 'Bevorzugte Zeitdarstellung gemäß dem Gebietsschema, ohne Datumsangabe',
    'Y' => 'Vierstellige numerische Darstellung des Jahres',
    'Z' => 'Das Zeitzonenkürzel oder die Zeitzone (abhängig vom Betriebssystem)',
    'a' => 'Abgekürzter Name des Wochentages',
    'b' => 'Abgekürzter Monatsname gemäß dem Gebietsschema',
    'c' => 'Bevorzugter Datums- und Zeitstempel gemäß dem Gebietsschema',
    'd' => 'Tag des Monats als zweistellige Zahl (ggf. mit vorangestellten Nullen)',
    'e' => 'Tag des Monats als Dezimal-Wert; einstelligen Werten wird ein Leerzeichen voran gestellt',
    'f' => '',
    'g' => 'Zweistellige numerische Darstellung  des Jahres gemäß dem ISO-8601:1988 Standard (siehe %V)',
    'h' => 'Abgekürzter Monatsname gemäß dem Gebietsschema (ein Alias von %b)',
    'i' => '',
    'j' => 'Tag des Jahres als dreistellige Zahl, ggf. mit vorangestellten Nullen',
    'k' => 'Stunde im 24-Stunden-Format mit einem Leerzeichen vor einstelligen Stunden',
    'l' => 'Stunde im 12-Stunden-Format mit einem Leerzeichen vor einstelligen Stunden',
    'm' => 'Zweistellige numerische Darstellung des Monats',
    'n' => 'Ein Zeilenvorschubzeichen ("\n")',
    'o' => '',
    'p' => '"AM" oder "PM" in Großbuchstaben, basierend auf der gegebenen Zeit',
    'q' => '',
    'r' => 'Das gleiche wie "%I:%M:%S %p"',
    's' => 'Zeitstempel der Unix-Epochenzeit',
    't' => 'Ein Tabulatorzeichen ("\t")',
    'u' => 'ISO-8601 numerische Darstellung des Wochentages',
    'v' => '',
    'w' => 'Numerische Darstellung des Wochentags',
    'x' => 'Bevorzugte Datumsdarstellung gemäß dem Gebietsschema, ohne Zeitangabe',
    'y' => 'Zweistellige numerische Darstellung des Jahres',
    'z' => 'Entweder der Zeitzonenversatz zu UTC oder das Zeitzonenkürzel (depends on operating system)',
    '%' => 'Ein buchstäbliches Prozentzeichen ("%")',
);

// Ergebnisse.
$strftimeValues = array();

// Werte die Formate aus während jegliche Fehler unterdrückt werden.
foreach($strftimeFormats as $format => $description){
    if (False !== ($value = @strftime("%{$format}"))){
        $strftimeValues[$format] = $value;
    }
}

// Ermittle den längsten Wert.
$maxValueLength = 2 + max(array_map('strlen', $strftimeValues));

// Berichte bekannte Formate.
foreach($strftimeValues as $format => $value){
    echo "Bekanntes Format   : '{$format}' = ", str_pad("'{$value}'", $maxValueLength), " ( {$strftimeFormats[$format]} )\n";
}

// Berichte unbekannte Formate.
foreach(array_diff_key($strftimeFormats, $strftimeValues) as $format => $description){
    echo "Unbekanntes Format : '{$format}'   ", str_pad(' ', $maxValueLength), ($description ? " ( {$description} )" : ''), "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Bekanntes Format   : 'A' = 'Freitag'                ( Ausgeschriebener Name des Wochentages )
Bekanntes Format   : 'B' = 'Dezember'               ( Vollständiger Monatsname gemäß dem Gebietsschema )
Bekanntes Format   : 'C' = '20'                     ( Zweistellige numerische Darstellung des Jahrhunders (Jahr geteilt durch 100, abgerundet zu einer Ganzzahl) )
Bekanntes Format   : 'D' = '12/03/10'               ( Das gleiche wie "%m/%d/%y" )
Bekanntes Format   : 'F' = '2010-12-03'             ( Same as "%Y-%m-%d" )
Bekanntes Format   : 'G' = '2010'                   ( Die vollständige vierstellige numerische Version von %g )
Bekanntes Format   : 'H' = '11'                     ( Zweistellige numerische Darstellung der Stunde im 24-Stunden-Format )
Bekanntes Format   : 'I' = '11'                     ( Zweistellige numerische Darstellung der Stunde im 12-Stunden-Format )
Bekanntes Format   : 'M' = '24'                     ( Zweistellige numerische Darstellung der Minute )
Bekanntes Format   : 'R' = '11:24'                  ( Das gleiche wie "%H:%M" )
Bekanntes Format   : 'S' = '44'                     ( Zweistellige numerische Darstellung der Sekunde )
Bekanntes Format   : 'T' = '11:24:44'               ( Das gleiche wie "%H:%M:%S" )
Bekanntes Format   : 'U' = '48'                     ( Nummer der Kalenderwoche des gegebenen Jahres, beginnend mit dem ersten Sonntag als erste Woche )
Bekanntes Format   : 'V' = '48'                     ( ISO-8601:1988 Kalenderwochennummer des gegebenen Jahres, beginnend mit der ersten Woche des Jahres mit wenigstens 4 Wochentagen, wobei Montag der Start der Kalenderwoche ist )
Bekanntes Format   : 'W' = '48'                     ( Numerische Darstellung der Kalenderwoche, beginnend mit dem ersten Montag als erste Woche )
Bekanntes Format   : 'X' = '11:24:44'               ( Bevorzugte Zeitdarstellung gemäß dem Gebietsschema, ohne Datumsangabe )
Bekanntes Format   : 'Y' = '2010'                   ( Vierstellige numerische Darstellung des Jahres )
Bekanntes Format   : 'Z' = 'Mitteleuropäische Zeit' ( Das Zeitzonenkürzel oder die Zeitzone (abhängig vom Betriebssystem) )
Bekanntes Format   : 'a' = 'Fr'                     ( Abgekürzter Name des Wochentages )
Bekanntes Format   : 'b' = 'Dez'                    ( Abgekürzter Monatsname gemäß dem Gebietsschema )
Bekanntes Format   : 'c' = '03.12.2010 11:24:44'    ( Bevorzugter Datums- und Zeitstempel gemäß dem Gebietsschema )
Bekanntes Format   : 'd' = '03'                     ( Tag des Monats als zweistellige Zahl (ggf. mit vorangestellten Nullen) )
Bekanntes Format   : 'e' = ' 3'                     ( Tag des Monats als Dezimal-Wert; einstelligen Werten wird ein Leerzeichen voran gestellt )
Bekanntes Format   : 'g' = '10'                     ( Zweistellige numerische Darstellung  des Jahres gemäß dem ISO-8601:1988 Standard (siehe %V) )
Bekanntes Format   : 'h' = 'Dez'                    ( Abgekürzter Monatsname gemäß dem Gebietsschema (ein Alias von %b) )
Bekanntes Format   : 'j' = '337'                    ( Tag des Jahres als dreistellige Zahl, ggf. mit vorangestellten Nullen )
Bekanntes Format   : 'm' = '12'                     ( Zweistellige numerische Darstellung des Monats )
Bekanntes Format   : 'n' = '
'                      ( Ein Zeilenvorschubzeichen ("\n") )
Bekanntes Format   : 'r' = '11:24:44'               ( Das gleiche wie "%I:%M:%S %p" )
Bekanntes Format   : 't' = '	'                   ( Ein Tabulatorzeichen ("\t") )
Bekanntes Format   : 'u' = '5'                      ( ISO-8601 numerische Darstellung des Wochentages )
Bekanntes Format   : 'w' = '5'                      ( Numerische Darstellung des Wochentags )
Bekanntes Format   : 'x' = '03.12.2010'             ( Bevorzugte Datumsdarstellung gemäß dem Gebietsschema, ohne Zeitangabe )
Bekanntes Format   : 'y' = '10'                     ( Zweistellige numerische Darstellung des Jahres )
Bekanntes Format   : 'z' = '+0100'                  ( Entweder der Zeitzonenversatz zu UTC oder das Zeitzonenkürzel (depends on operating system) )
Bekanntes Format   : '%' = '%'                      ( Ein buchstäbliches Prozentzeichen ("%") )
Unbekanntes Format : 'E'
Unbekanntes Format : 'J'
Unbekanntes Format : 'K'
Unbekanntes Format : 'L'
Unbekanntes Format : 'N'
Unbekanntes Format : 'O'
Unbekanntes Format : 'P'                            ( "am" oder "pm" in Kleinbuchstaben, basierend auf der gegebenen Zeit )
Unbekanntes Format : 'Q'
Unbekanntes Format : 'f'
Unbekanntes Format : 'i'
Unbekanntes Format : 'k'                            ( Stunde im 24-Stunden-Format mit einem Leerzeichen vor einstelligen Stunden )
Unbekanntes Format : 'l'                            ( Stunde im 12-Stunden-Format mit einem Leerzeichen vor einstelligen Stunden )
Unbekanntes Format : 'o'
Unbekanntes Format : 'p'                            ( "AM" oder "PM" in Großbuchstaben, basierend auf der gegebenen Zeit )
Unbekanntes Format : 'q'
Unbekanntes Format : 's'                            ( Zeitstempel der Unix-Epochenzeit )
Unbekanntes Format : 'v'

Anmerkungen

Hinweis: %G und %V, die auf ISO 8601:1988 Wochennummern basieren, können unerwartete (obgleich richtige) Ergebnisse ergeben, wenn das Nummernsystem nicht gründlich verstanden wird. Siehe die %V Beispiele auf dieser Handbuchseite.

Siehe auch

  • » Online strftime() Format-Erstellungstool
  • setlocale() - Legt regionale (locale) Einstellungen fest
  • mktime() - Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück
  • strptime() - Parse a time/date generated with strftime
  • gmstrftime() - Formatiert eine Datum-/Zeitangabe in GMT/UTC-Format entsprechend den lokalen Einstellungen
  • » Open Group Spezifikation von strftime()


Parse a time/date generated with strftime

  • « strftime
  • strtotime »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Parse a time/date generated with strftime

strptime

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

strptime — Parse a time/date generated with strftime()

Beschreibung

strptime ( string $timestamp , string $format ) : array|false

strptime() returns an array with the timestamp parsed, or false on error.

Month and weekday names and other language dependent strings respect the current locale set with setlocale() (LC_TIME).

Parameter-Liste

timestamp (string)

The string to parse (e.g. returned from strftime()).

format (string)

The format used in timestamp (e.g. the same as used in strftime()). Note that some of the format options available to strftime() may not have any effect within strptime(); the exact subset that are supported will vary based on the operating system and C library in use.

For more information about the format options, read the strftime() page.

Rückgabewerte

Returns an arrayIm Fehlerfall wird false zurückgegeben..

The following parameters are returned in the array
parameters | Description
"tm_sec" | Seconds after the minute (0-61)
"tm_min" | Minutes after the hour (0-59)
"tm_hour" | Hour since midnight (0-23)
"tm_mday" | Day of the month (1-31)
"tm_mon" | Months since January (0-11)
"tm_year" | Years since 1900
"tm_wday" | Days since Sunday (0-6)
"tm_yday" | Days since January 1 (0-365)
"unparsed" | the timestamp part which was not recognized using the specified format

Beispiele

Beispiel #1 strptime() example

<?php
$format = '%d/%m/%Y %H:%M:%S';
$strf = strftime($format);

echo "$strf\n";

print_r(strptime($strf, $format));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

03/10/2004 15:54:19

Array
(
    [tm_sec] => 19
    [tm_min] => 54
    [tm_hour] => 15
    [tm_mday] => 3
    [tm_mon] => 9
    [tm_year] => 104
    [tm_wday] => 0
    [tm_yday] => 276
    [unparsed] =>
)

Anmerkungen

Hinweis: Diese Funktion ist auf Windows-Plattformen nicht verfügbar.

Hinweis:

Internally, this function calls the strptime() function provided by the system's C library. This function can exhibit noticeably different behaviour across different operating systems. The use of date_parse_from_format(), which does not suffer from these issues, is recommended on PHP 5.3.0 and later.

Hinweis:

"tm_sec" includes any leap seconds (currently upto 2 a year). For more information on leap seconds, see the » Wikipedia article on leap seconds.

Hinweis:

Prior to PHP 5.2.0, this function could return undefined behaviour. Notably, the "tm_sec", "tm_min" and "tm_hour" entries would return undefined values.

Siehe auch

  • checkdate() - Prüft ein Gregorianisches Datum auf Gültigkeit
  • strftime() - Formatiere eine Zeit-/Datumsangabe gemäß dem Gebietsschema
  • date_parse_from_format() - Get info about given date formatted according to the specified format
  • DateTime::createFromFormat() - Parses a time string according to a specified format


Wandelt ein beliebiges in englischer Textform angegebenes Datum in einen UNIX-Zeitstempel (Timestamp) um

  • « strptime
  • time »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Wandelt ein beliebiges in englischer Textform angegebenes Datum in einen UNIX-Zeitstempel (Timestamp) um

strtotime

(PHP 4, PHP 5, PHP 7, PHP 8)

strtotime — Wandelt ein beliebiges in englischer Textform angegebenes Datum in einen UNIX-Zeitstempel (Timestamp) um

Beschreibung

strtotime ( string $datetime , int $now = time() ) : int

Diese Funktion erwartet einen String mit einem Datum im Englischen Datumsformat und versucht, dieses Format in einen Unix-Timestamp (die Anzahl der Sekunden seit dem 01. Januar 1970 00:00:00 UTC) zu übersetzen. Die Angabe wird relativ zum im now-Parameter übergebenen Timestamp oder der aktuellen Zeit, sofern now nicht übergeben wurde, ausgewertet.

Warnung

Der Unix-Zeitstempel, den diese Funktion zurückgibt, enthält keine Informationen über Zeitzonen. Um Berechnungen mit Datum/Zeit-Werten durchzuführen, sollte das leistungsfähigere DateTimeImmutable verwendet werden.

Jeder Parameter dieser Funktion verwendet die Standard-Zeitzone, es sei denn eine Zeitzone wird in diesem Parameter angegeben. Es ist darauf zu achten, nicht etwa verschiedene Zeitzonen je Parameter zu verwenden, außer wenn das beabsichtigt ist. Die verschiedenen Möglichkeiten die Standard-Zeitzone zu definieren sind date_default_timezone_get() zu entnehmen.

Parameter-Liste

datetime

Ein Datums/Zeit Zeichenkette. Gültige Formate werden unter Datums- und Zeitformate erläutert.

now

Der Timestamp, der als Basis zur Berechnung relativer Daten verwendet wird.

Rückgabewerte

Gibt im Erfolgsfall einen Timestamp, andernfalls false zurück. Vor PHP 5.1.0 gab die Funktion -1 im Fehlerfall zurück.

Fehler/Exceptions

Jeder Aufruf der Datums- und Zeitfunktionen generiert eine E_NOTICE-Warnung, wenn die Zeitzone ungültig ist und eine E_STRICT-Nachricht oder eine E_WARNING-Warnung, wenn die Systemeinstellung oder die TZ-Umgebungsvariable genutzt wird. Siehe auch date_default_timezone_set()

Beispiele

Beispiel #1 Ein strtotime()-Beispiel

<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

Beispiel #2 Test auf Fehler

<?php
$str = 'Not Good';

// vor PHP 5.1.0 wuerden Sie -1 statt false als Rueckgabewert erhalten
if (($timestamp = strtotime($str)) === false) {
    echo "Die Zeichenkette ($str) ist nicht parsebar.";
} else {
    echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
}
?>

Anmerkungen

Hinweis:

Wenn die Jahreszahlenangabe zweistellig erfolgt, werden Werte zwischen 00 und 69 auf die Jahre 2000 bis 2069 gemappt, die Werte 70-99 ergeben die Jahreszahlen 1970-1999. Beachten Sie die folgenden Anmerkungen bezüglich der Unterschiede auf 32-Bit-Systemen (das Datum endet möglicherweise am 2038-01-19 03:14:07).

Hinweis:

Der gültige Bereich eines Timestamp liegt typischerweise zwischen Fri, 13 Dec 1901 20:45:54 UTC und Tue, 19 Jan 2038 03:14:07 UTC. (Das sind die Datumsangaben, die dem minimalen und maximalen Wert eines vorzeichenbehafteten 32-bit Integer entsprechen.)

Vor PHP 5.1.0 unterstützen nicht alle Plattformen negative Werte eines Timestamps, deshalb könnte der Wertebereich eines Datums durch den Beginn der Unix Epoche begrenzt sein. Das bedeutet, dass z.B. Zeitangaben vor dem 1. Januar 1970 auf Windowssystemen, einigen Linuxdistributionen und einigen anderen Betriebssytemen nicht funktionieren.

Für 64 Bit Versionen von PHP ist der gültige Bereich für Timestamps praktisch unendlich groß, da 64 Bit etwa 293 Milliarden Jahre in beide Richtungen darstellen können.

Hinweis:

Daten im Format m/d/y oder d-m-y werden unterschieden anhand des genutzten Trennzeichens: Wenn ein Slash (/) genutzt wird, wird das Amerikanische Format m/d/y angenommen; wird stattdessen ein Minus (-) oder ein Punkt (.) genutzt, wird das Europäische Format d-m-y angenommen. Wird das Jahr allerdings in einem zweistelligen Format angegeben und das Trennzeichen ist ein Minus (-), dann wird das Datum als y-m-d geparst.

Um Mehrdeutigkeiten zu vermeiden sollten am besten ISO 8601 Daten (YYYY-MM-DD) genutzt werden oder aber die Methode DateTime::createFromFormat() verwendet werden.

Hinweis:

Die Verwendung dieser Funktion für mathematische Berechnungen ist nicht zu empfehlen. Es ist besser DateTime::add() und DateTime::sub() in PHP 5.3 und neuer, oder DateTime::modify() in PHP 5.2 zu verwenden.

Siehe auch

  • Date and Time Formats
  • DateTime::createFromFormat() - Parses a time string according to a specified format
  • checkdate() - Prüft ein Gregorianisches Datum auf Gültigkeit
  • strptime() - Parse a time/date generated with strftime


Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück

  • « strtotime
  • timezone_abbreviations_list »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück

time

(PHP 4, PHP 5, PHP 7, PHP 8)

time — Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück

Beschreibung

time ( ) : int

Gibt die seit Beginn der Unix-Epoche (Januar 1 1970 00:00:00 GMT) bis jetzt vergangenen Sekunden zurück.

Beispiele

Beispiel #1 time()-Beispiel

<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
                   // 7 Tage; 24 Stunden; 60 Minuten; 60 Sekunden
echo 'Jetzt:          '. date('Y-m-d') ."\n";
echo 'Naechste Woche: '. date('Y-m-d', $nextWeek) ."\n";
// oder strtotime() verwenden:
echo 'Naechste Woche: '. date('Y-m-d', strtotime('+1 week')) ."\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Jetzt:          2005-03-30
Naechste Woche: 2005-04-06
Naechste Woche: 2005-04-06

Anmerkungen

Tipp

Der Timestamp des Beginns der aktuellen Anfrage steht seit PHP 5.1 in der Variablen $_SERVER['REQUEST_TIME'] zur Verfügung.

Siehe auch

  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum
  • microtime() - Gibt den aktuellen Unix-Timestamp/Zeitstempel mit Mikrosekunden zurück


Alias von DateTimeZone::listAbbreviations

  • « time
  • timezone_identifiers_list »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

timezone_abbreviations_list — Alias von DateTimeZone::listAbbreviations()

Beschreibung

Diese Funktion ist ein Alias für: DateTimeZone::listAbbreviations()


Alias von DateTimeZone::listIdentifiers

  • « timezone_abbreviations_list
  • timezone_location_get »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTimeZone::listIdentifiers

timezone_identifiers_list

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

timezone_identifiers_list — Alias von DateTimeZone::listIdentifiers()

Beschreibung

Diese Funktion ist ein Alias für: DateTimeZone::listIdentifiers()


Alias von DateTimeZone::getLocation

  • « timezone_identifiers_list
  • timezone_name_from_abbr »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTimeZone::getLocation

timezone_location_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

timezone_location_get — Alias von DateTimeZone::getLocation()

Beschreibung

Diese Funktion ist ein Alias für: DateTimeZone::getLocation()


Gibt den Namen der Zeitzonenabkürzung zurück

  • « timezone_location_get
  • timezone_name_get »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Gibt den Namen der Zeitzonenabkürzung zurück

timezone_name_from_abbr

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

timezone_name_from_abbr — Gibt den Namen der Zeitzonenabkürzung zurück

Beschreibung

timezone_name_from_abbr ( string $abbr , int $utcOffset = -1 , int $isDST = -1 ) : string

Parameter-Liste

abbr

Zeitzonenabkürzung.

utcOffset

Offset zu GMT in Sekunden. Standardwert ist -1, das bedeutet, dass die erste gefundene Zeitzone, die abbr entspricht, zurückgegeben wird. Andernfalls wird der exakte Offset gesucht und nur, wenn dieser nicht gefunden wird, wird die erste Zeitzone mit einem Offset zurückgegeben.

isDST

Sommerzeit-Indikator. Voreinstellung ist -1, was bedeutet, dass bei der Suche nicht berücksichtigt wird, ob die Zeitzone Sommerzeit hat oder nicht. Wenn dies auf 1 gesetzt ist, dann wird angenommen, dass utcOffset ein Offset mit Sommerzeit ist; wenn 0, dann wird angenommen, dass utcOffset ein Offset ohne Sommerzeit ist. Wenn abbr nicht existiert, wird die Zeitzone ausschließlich anhand von utcOffset und isDST gesucht.

Rückgabewerte

Gibt im Erfolgsfall den Namen der Zeitzone zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ein timezone_name_from_abbr()-Beispiel

<?php
echo timezone_name_from_abbr("CET") . "\n";
echo timezone_name_from_abbr("", 3600, 0) . "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Europe/Berlin
Europe/Paris

Siehe auch

  • timezone_abbreviations_list() - Alias von DateTimeZone::listAbbreviations


Alias von DateTimeZone::getName

  • « timezone_name_from_abbr
  • timezone_offset_get »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTimeZone::getName

timezone_name_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

timezone_name_get — Alias von DateTimeZone::getName()

Beschreibung

Diese Funktion ist ein Alias für: DateTimeZone::getName()


Alias von DateTimeZone::getOffset

  • « timezone_name_get
  • timezone_open »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTimeZone::getOffset

timezone_offset_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

timezone_offset_get — Alias von DateTimeZone::getOffset()

Beschreibung

Diese Funktion ist ein Alias für: DateTimeZone::getOffset()


Alias von DateTimeZone::__construct

  • « timezone_offset_get
  • timezone_transitions_get »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

timezone_open — Alias von DateTimeZone::__construct()

Beschreibung

Diese Funktion ist ein Alias für: DateTimeZone::__construct()


Alias von DateTimeZone::getTransitions

  • « timezone_open
  • timezone_version_get »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Alias von DateTimeZone::getTransitions

timezone_transitions_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

timezone_transitions_get — Alias von DateTimeZone::getTransitions()

Beschreibung

Diese Funktion ist ein Alias für: DateTimeZone::getTransitions()


Gets the version of the timezonedb

  • « timezone_transitions_get
  • Supported Date and Time Formats »
  • PHP Manual
  • Datum/Uhrzeit Funktionen
  • Gets the version of the timezonedb

timezone_version_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

timezone_version_get — Gets the version of the timezonedb

Beschreibung

timezone_version_get ( ) : string

Returns the current version of the timezonedb.

Rückgabewerte

Returns a string.

Beispiele

Beispiel #1 Getting the timezonedb version

<?php
echo timezone_version_get();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2009.7

Siehe auch

  • List of Supported Timezones


Supported Date and Time Formats

Inhaltsverzeichnis

  • Time Formats
  • Date Formats
  • Compound Formats
  • Relative Formats

This section describes all the different formats that the DateTimeImmutable, DateTime, date_create(), date_create_immutable(), and strtotime() parser understands. The formats are grouped by section. In most cases formats from different sections, separated by whitespace, comma or dot, can be used in the same date/time string. For each of the supported formats, one or more examples are given, as well as a description for the format. Characters in single quotes in the formats are case-insensitive ('t' could be t or T), characters in double quotes are case-sensitive ("T" is only T).


Time Formats

 This page describes the different date/time formats that the
 DateTimeImmutable, DateTime,
date_create(),
date_create_immutable(), and
strtotime() parser understands.

Used Symbols
Description | Formats | Examples
frac | . [0-9]+ | ".21342", ".85"
hh | "0"?[1-9] | "1"[0-2] | "04", "7", "12"
HH | [01][0-9] | "2"[0-4] | "04", "07", "19"
meridian | [AaPp] .? [Mm] .? [\0\t ] | "A.m.", "pM", "am."
MM | [0-5][0-9] | "00", "12", "59"
II | [0-5][0-9] | "00", "12", "59"
space | [ \t] |
tz | "("? [A-Za-z]{1,6} ")"? | [A-Z][a-z]+([_/][A-Z][a-z]+)+ | "CEST", "Europe/Amsterdam", "America/Indiana/Knox"
tzcorrection | "GMT"? [+-] hh ":"? MM? | "+0400", "GMT-07:00", "-07:00"
12 Hour Notation
Description | Format | Examples
Hour only, with meridian | hh space? meridian | "4 am", "5PM"
Hour and minutes, with meridian | hh [.:] MM space? meridian | "4:08 am", "7:19P.M."
Hour, minutes and seconds, with meridian | hh [.:] MM [.:] II space? meridian | "4:08:37 am", "7:19:19P.M."
MS SQL (Hour, minutes, seconds and fraction with meridian) | hh ":" MM ":" II [.:] [0-9]+ meridian | "4:08:39:12313am"
24 Hour Notation
Description | Format | Examples
Hour and minutes | 't'? HH [.:] MM | "04:08", "19.19", "T23:43"
Hour and minutes, no colon | 't'? HH MM | "0408", "t1919", "T2343"
Hour, minutes and seconds | 't'? HH [.:] MM [.:] II | "04.08.37", "t19:19:19"
Hour, minutes and seconds, no colon | 't'? HH MM II | "040837", "T191919"
Hour, minutes, seconds and timezone | 't'? HH [.:] MM [.:] II space? ( tzcorrection | tz ) | "040837CEST", "T191919-0700"
Hour, minutes, seconds and fraction | 't'? HH [.:] MM [.:] II frac | "04.08.37.81412", "19:19:19.532453"
Time zone information | tz | tzcorrection | "CEST", "Europe/Amsterdam", "+0430", "GMT-06:00"


Date Formats

This page describes the different date formats that the strtotime(), DateTime and date_create() parser understands.

Used Symbols
Description | Format | Examples
daysuf | "st" | "nd" | "rd" | "th" |
dd | ([0-2]?[0-9] | "3"[01]) daysuf? | "7th", "22nd", "31"
DD | "0" [0-9] | [1-2][0-9] | "3" [01] | "07", "31"
m | 'january' | 'february' | 'march' | 'april' | 'may' | 'june' | 'july' | 'august' | 'september' | 'october' | 'november' | 'december' | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' | "I" | "II" | "III" | "IV" | "V" | "VI" | "VII" | "VIII" | "IX" | "X" | "XI" | "XII" |
M | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' |
mm | "0"? [0-9] | "1"[0-2] | "0", "04", "7", "12"
MM | "0" [0-9] | "1"[0-2] | "00", "04", "07", "12"
y | [0-9]{1,4} | "00", "78", "08", "8", "2008"
yy | [0-9]{2} | "00", "08", "78"
YY | [0-9]{4} | "2000", "2008", "1978"
Localized Notations
Description | Format | Examples
American month and day | mm "/" dd | "5/12", "10/27"
American month, day and year | mm "/" dd "/" y | "12/22/78", "1/17/2006", "1/17/6"
Four digit year, month and day with slashes | YY "/" mm "/" dd | "2008/6/30", "1978/12/22"
Four digit year and month (GNU) | YY "-" mm | "2008-6", "2008-06", "1978-12"
Year, month and day with dashes | y "-" mm "-" dd | "2008-6-30", "78-12-22", "8-6-21"
Day, month and four digit year, with dots, tabs or dashes | dd [.\t-] mm [.-] YY | "30-6-2008", "22.12.1978"
Day, month and two digit year, with dots or tabs | dd [.\t] mm "." yy | "30.6.08", "22\t12.78"
Day, textual month and year | dd ([ \t.-])* m ([ \t.-])* y | "30-June 2008", "22DEC78", "14 III 1879"
Textual month and four digit year (Day reset to 1) | m ([ \t.-])* YY | "June 2008", "DEC1978", "March 1879"
Four digit year and textual month (Day reset to 1) | YY ([ \t.-])* m | "2008 June", "1978-XII", "1879.MArCH"
Textual month, day and year | m ([ .\t-])* dd [,.stndrh\t ]+ y | "July 1st, 2008", "April 17, 1790", "May.9,78"
Textual month and day | m ([ .\t-])* dd [,.stndrh\t ]* | "July 1st,", "Apr 17", "May.9"
Day and textual month | d ([ .\t-])* m | "1 July", "17 Apr", "9.May"
Month abbreviation, day and year | M "-" DD "-" y | "May-09-78", "Apr-17-1790"
Year, month abbreviation and day | y "-" M "-" DD | "78-Dec-22", "1814-MAY-17"
Year (and just the year) | YY | "1978", "2008"
Textual month (and just the month) | m | "March", "jun", "DEC"
ISO8601 Notations
Description | Format | Examples
Eight digit year, month and day | YY MM DD | "15810726", "19780417", "18140517"
Four digit year, month and day with slashes | YY "/" MM "/" DD | "2008/06/30", "1978/12/22"
Two digit year, month and day with dashes | yy "-" MM "-" DD | "08-06-30", "78-12-22"
Four digit year with optional sign, month and day | [+-]? YY "-" MM "-" DD | "-0002-07-26", "+1978-04-17", "1814-05-17"

Hinweis:

For the y and yy formats, years below 100 are handled in a special way when the y or yy symbol is used. If the year falls in the range 0 (inclusive) to 69 (inclusive), 2000 is added. If the year falls in the range 70 (inclusive) to 99 (inclusive) then 1900 is added. This means that "00-01-01" is interpreted as "2000-01-01".

Hinweis:

The "Day, month and two digit year, with dots or tabs" format (dd [.\t] mm "." yy) only works for the year values 61 (inclusive) to 99 (inclusive) - outside those years the time format "HH [.:] MM [.:] SS" has precedence.

Hinweis:

The "Year (and just the year)" format only works if a time string has already been found -- otherwise this format is recognised as HH MM.

Achtung

It is possible to over- and underflow the dd and DD format. Day 0 means the last day of previous month, whereas overflows count into the next month. This makes "2008-08-00" equivalent to "2008-07-31" and "2008-06-31" equivalent to "2008-07-01" (June only has 30 days).

Note that the day range is restricted to 0-31 as indicated by the regular expression above. Thus "2008-06-32" is not a valid date string, for instance.

It is also possible to underflow the mm and MM formats with the value 0. A month value of 0 means December of the previous year. As example "2008-00-22" is equivalent to "2007-12-22".

If you combine the previous two facts and underflow both the day and the month, the following happens: "2008-00-00" first gets converted to "2007-12-00" which then gets converted to "2007-11-30". This also happens with the string "0000-00-00", which gets transformed into "-0001-11-30" (the year -1 in the ISO 8601 calendar, which is 2 BC in the proleptic Gregorian calendar).


Compound Formats

This page describes the different compound date/time formats that the strtotime(), DateTime and date_create() parser understands.

Used Symbols
Description | Formats | Examples
DD | "0" [0-9] | [1-2][0-9] | "3" [01] | "02", "12", "31"
doy | "00"[1-9] | "0"[1-9][0-9] | [1-2][0-9][0-9] | "3"[0-5][0-9] | "36"[0-6] | "001", "012", "180", "350", "366"
frac | . [0-9]+ | ".21342", ".85"
hh | "0"?[1-9] | "1"[0-2] | "04", "7", "12"
HH | [01][0-9] | "2"[0-4] | "04", "07", "19"
meridian | [AaPp] .? [Mm] .? [\0\t ] | "A.m.", "pM", "am."
ii | [0-5]?[0-9] | "04", "8", "59"
II | [0-5][0-9] | "04", "08", "59"
M | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' |
MM | [0-1][0-9] | "00", "12"
space | [ \t] |
ss | ([0-5]?[0-9])|60 | "04", "8", "59", "60" (leap second)
SS | [0-5][0-9] | "04", "08", "59"
W | "0"[1-9] | [1-4][0-9] | "5"[0-3] | "05", "17", "53"
tzcorrection | "GMT"? [+-] hh ":"? II? | "+0400", "GMT-07:00", "-07:00"
YY | [0-9]{4} | "2000", "2008", "1978"
Localized Notations
Description | Format | Examples
Common Log Format | dd "/" M "/" YY : HH ":" II ":" SS space tzcorrection | "10/Oct/2000:13:55:36 -0700"
EXIF | YY ":" MM ":" DD " " HH ":" II ":" SS | "2008:08:07 18:11:31"
ISO year with ISO week | YY "-"? "W" W | "2008W27", "2008-W28"
ISO year with ISO week and day | YY "-"? "W" W "-"? [0-7] | "2008W273", "2008-W28-3"
MySQL | YY "-" MM "-" DD " " HH ":" II ":" SS | "2008-08-07 18:11:31"
PostgreSQL: Year with day-of-year | YY "."? doy | "2008.197", "2008197"
SOAP | YY "-" MM "-" DD "T" HH ":" II ":" SS frac tzcorrection? | "2008-07-01T22:35:17.02", "2008-07-01T22:35:17.03+08:00"
Unix Timestamp | "@" "-"? [0-9]+ | "@1215282385"
XMLRPC | YY MM DD "T" hh ":" II ":" SS | "20080701T22:38:07", "20080701T9:38:07"
XMLRPC (Compact) | YY MM DD 't' hh II SS | "20080701t223807", "20080701T093807"
WDDX | YY "-" mm "-" dd "T" hh ":" ii ":" ss | "2008-7-1T9:3:37"

Hinweis:

The "W" in the "ISO year with ISO week" and "ISO year with ISO week and day" formats is case-sensitive, you can only use the upper case "W".

The "T" in the SOAP, XMRPC and WDDX formats is case-sensitive, you can only use the upper case "T".

The "Unix Timestamp" format sets the timezone to UTC.


Relative Formats

This page describes the different relative date/time formats that the strtotime(), DateTime and date_create() parser understands.

Used Symbols
Description | Format
dayname | 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat'
daytext | 'weekday' | 'weekdays'
number | [+-]?[0-9]+
ordinal | 'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' | 'seventh' | 'eighth' | 'ninth' | 'tenth' | 'eleventh' | 'twelfth' | 'next' | 'last' | 'previous' | 'this'
reltext | 'next' | 'last' | 'previous' | 'this'
space | [ \t]+
unit | (('sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' | 'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' | daytext
Day-based Notations
Format | Description | Examples
'yesterday' | Midnight of yesterday | "yesterday 14:00"
'midnight' | The time is set to 00:00:00 |
'today' | The time is set to 00:00:00 |
'now' | Now - this is simply ignored |
'noon' | The time is set to 12:00:00 | "yesterday noon"
'tomorrow' | Midnight of tomorrow |
'back of' hour | 15 minutes past the specified hour | "back of 7pm", "back of 15"
'front of' hour | 15 minutes before the specified hour | "front of 5am", "front of 23"
'first day of' | Sets the day of the first of the current month. This phrase is best used together with a month name following it. | "first day of January 2008"
'last day of' | Sets the day to the last day of the current month. This phrase is best used together with a month name following it. | "last day of next month"
ordinal space dayname space 'of' | Calculates the x-th week day of the current month. | "first sat of July 2008"
'last' space dayname space 'of' | Calculates the last week day of the current month. | "last sat of July 2008"
number space? (unit | 'week') | Handles relative time items where the value is a number. | "+5 weeks", "12 day", "-7 weekdays"
ordinal space unit | Handles relative time items where the value is text. | "fifth day", "second month"
'ago' | Negates all the values of previously found relative time items. | "2 days ago", "8 days ago 14:00", "2 months 5 days ago", "2 months ago 5 days", "2 days ago"
dayname | Moves to the next day of this name. | "Monday"
reltext space 'week' | Handles the special format "weekday + last/this/next week". | "Monday next week"

Hinweis:

Relative statements are always processed after non-relative statements. This makes "+1 week july 2008" and "july 2008 +1 week" equivalent.

Exceptions to this rule are: "yesterday", "midnight", "today", "noon" and "tomorrow". Note that "tomorrow 11:00" and "11:00 tomorrow" are different. Considering today's date of "July 23rd, 2008" the first one produces "2008-07-24 11:00" where as the second one produces "2008-07-24 00:00". The reason for this is that those five statements directly influence the current time.

Hinweis:

Observe the following remarks when the current day-of-week is the same as the day-of-week used in the date/time string. The current day-of-week could have been (re-)calculated by non-relative parts of the date/time string however.

  1. "dayname" does not advance to another day. (Example: "Wed July 23rd, 2008" means "2008-07-23").
  2. "number dayname" does not advance to another day. (Example: "1 wednesday july 23rd, 2008" means "2008-07-23").
  3. "number week dayname" will first add the number of weeks, but does not advance to another day. In this case "number week" and "dayname" are two distinct blocks. (Example: "+1 week wednesday july 23rd, 2008" means "2008-07-30").
  4. "ordinal dayname" does advance to another day. (Example "first wednesday july 23rd, 2008" means "2008-07-30").
  5. "number week ordinal dayname" will first add the number of weeks, and then advances to another day. In this case "number week" and "ordinal dayname" are two distinct blocks. (Example: "+1 week first wednesday july 23rd, 2008" means "2008-08-06").
  6. "ordinal dayname 'of' " does not advance to another day. (Example: "first wednesday of july 23rd, 2008" means "2008-07-02" because the specific phrase with 'of' resets the day-of-month to '1' and the '23rd' is ignored here).

Also observe that the "of" in "ordinal space dayname space 'of' " and "'last' space dayname space 'of' " does something special.

  1. It sets the day-of-month to 1.
  2. "ordinal dayname 'of' " does not advance to another day. (Example: "first tuesday of july 2008" means "2008-07-01").
  3. "ordinal dayname " does advance to another day. (Example: "first tuesday july 2008" means "2008-07-08", see also point 4 in the list above).
  4. "'last' dayname 'of' " takes the last dayname of the current month. (Example: "last wed of july 2008" means "2008-07-30")
  5. "'last' dayname" takes the last dayname from the current day. (Example: "last wed july 2008" means "2008-06-25"; "july 2008" first sets the current date to "2008-07-01" and then "last wed" moves to the previous Wednesday which is "2008-06-25").

Hinweis:

Relative month values are calculated based on the length of months that they pass through. An example would be "+2 month 2011-11-30", which would produce "2012-01-30". This is due to November being 30 days in length, and December being 31 days in length, producing a total of 61 days.

Hinweis:

number is an integer number; if a decimal number is given, the dot (or comma) is likely interpreted as delimiter. For instance, '+1.5 hours' is parsed like '+1 5 hours', not as '+1 hour +30 minutes'.

Changelog

Version | Beschreibung
5.6.23, 7.0.8 | Weeks always start on monday. Formerly, sunday would also be considered to start a week.
5.3.3 | "first day" and "last day" changed to behave has "+1 day" and "-1 day", respectively. Previously, the behaviour was as "first day of" and "last day of".


Liste unterstützter Zeitzonen

Inhaltsverzeichnis

  • Afrika
  • Amerika
  • Antarktis
  • Arktis
  • Asien
  • Atlantisch
  • Australien
  • Europa
  • Indisch
  • Pazifisch
  • Andere

Hier finden Sie die vollständige Liste aller von PHP unterstützen Zeitzonen, wie sie z.b mit date_default_timezone_set() genutzt werden können.

Hinweis: Die jeweils aktuellste Version der Zeitzonendatenbank kann über das » timezonedb-Paket in PECL installiert werden. Für Windows existiert eine vorkompilierte DLL auf der PECL4Win-Seite: php_timezonedb.dll.

Hinweis: Diese Liste basiert auf der Version der Zeitzonen-Datenbank 2021.1.


Afrika

Afrika
Africa/Abidjan | Africa/Accra | Africa/Addis_Ababa | Africa/Algiers
Africa/Asmara | Africa/Bamako | Africa/Bangui | Africa/Banjul
Africa/Bissau | Africa/Blantyre | Africa/Brazzaville | Africa/Bujumbura
Africa/Cairo | Africa/Casablanca | Africa/Ceuta | Africa/Conakry
Africa/Dakar | Africa/Dar_es_Salaam | Africa/Djibouti | Africa/Douala
Africa/El_Aaiun | Africa/Freetown | Africa/Gaborone | Africa/Harare
Africa/Johannesburg | Africa/Juba | Africa/Kampala | Africa/Khartoum
Africa/Kigali | Africa/Kinshasa | Africa/Lagos | Africa/Libreville
Africa/Lome | Africa/Luanda | Africa/Lubumbashi | Africa/Lusaka
Africa/Malabo | Africa/Maputo | Africa/Maseru | Africa/Mbabane
Africa/Mogadishu | Africa/Monrovia | Africa/Nairobi | Africa/Ndjamena
Africa/Niamey | Africa/Nouakchott | Africa/Ouagadougou | Africa/Porto-Novo
Africa/Sao_Tome | Africa/Tripoli | Africa/Tunis | Africa/Windhoek


Amerika

Amerika
America/Adak | America/Anchorage | America/Anguilla | America/Antigua
America/Araguaina | America/Argentina/Buenos_Aires | America/Argentina/Catamarca | America/Argentina/Cordoba
America/Argentina/Jujuy | America/Argentina/La_Rioja | America/Argentina/Mendoza | America/Argentina/Rio_Gallegos
America/Argentina/Salta | America/Argentina/San_Juan | America/Argentina/San_Luis | America/Argentina/Tucuman
America/Argentina/Ushuaia | America/Aruba | America/Asuncion | America/Atikokan
America/Bahia | America/Bahia_Banderas | America/Barbados | America/Belem
America/Belize | America/Blanc-Sablon | America/Boa_Vista | America/Bogota
America/Boise | America/Cambridge_Bay | America/Campo_Grande | America/Cancun
America/Caracas | America/Cayenne | America/Cayman | America/Chicago
America/Chihuahua | America/Costa_Rica | America/Creston | America/Cuiaba
America/Curacao | America/Danmarkshavn | America/Dawson | America/Dawson_Creek
America/Denver | America/Detroit | America/Dominica | America/Edmonton
America/Eirunepe | America/El_Salvador | America/Fort_Nelson | America/Fortaleza
America/Glace_Bay | America/Goose_Bay | America/Grand_Turk | America/Grenada
America/Guadeloupe | America/Guatemala | America/Guayaquil | America/Guyana
America/Halifax | America/Havana | America/Hermosillo | America/Indiana/Indianapolis
America/Indiana/Knox | America/Indiana/Marengo | America/Indiana/Petersburg | America/Indiana/Tell_City
America/Indiana/Vevay | America/Indiana/Vincennes | America/Indiana/Winamac | America/Inuvik
America/Iqaluit | America/Jamaica | America/Juneau | America/Kentucky/Louisville
America/Kentucky/Monticello | America/Kralendijk | America/La_Paz | America/Lima
America/Los_Angeles | America/Lower_Princes | America/Maceio | America/Managua
America/Manaus | America/Marigot | America/Martinique | America/Matamoros
America/Mazatlan | America/Menominee | America/Merida | America/Metlakatla
America/Mexico_City | America/Miquelon | America/Moncton | America/Monterrey
America/Montevideo | America/Montserrat | America/Nassau | America/New_York
America/Nipigon | America/Nome | America/Noronha | America/North_Dakota/Beulah
America/North_Dakota/Center | America/North_Dakota/New_Salem | America/Nuuk | America/Ojinaga
America/Panama | America/Pangnirtung | America/Paramaribo | America/Phoenix
America/Port-au-Prince | America/Port_of_Spain | America/Porto_Velho | America/Puerto_Rico
America/Punta_Arenas | America/Rainy_River | America/Rankin_Inlet | America/Recife
America/Regina | America/Resolute | America/Rio_Branco | America/Santarem
America/Santiago | America/Santo_Domingo | America/Sao_Paulo | America/Scoresbysund
America/Sitka | America/St_Barthelemy | America/St_Johns | America/St_Kitts
America/St_Lucia | America/St_Thomas | America/St_Vincent | America/Swift_Current
America/Tegucigalpa | America/Thule | America/Thunder_Bay | America/Tijuana
America/Toronto | America/Tortola | America/Vancouver | America/Whitehorse
America/Winnipeg | America/Yakutat | America/Yellowknife |


Antarktis

Antarktis
Antarctica/Casey | Antarctica/Davis | Antarctica/DumontDUrville | Antarctica/Macquarie
Antarctica/Mawson | Antarctica/McMurdo | Antarctica/Palmer | Antarctica/Rothera
Antarctica/Syowa | Antarctica/Troll | Antarctica/Vostok |


  • « Antarktis
  • Asien »
  • PHP Manual
  • Liste unterstützter Zeitzonen
  • Arktis

Arktis

Arktis
Arctic/Longyearbyen


Asien

Asien
Asia/Aden | Asia/Almaty | Asia/Amman | Asia/Anadyr
Asia/Aqtau | Asia/Aqtobe | Asia/Ashgabat | Asia/Atyrau
Asia/Baghdad | Asia/Bahrain | Asia/Baku | Asia/Bangkok
Asia/Barnaul | Asia/Beirut | Asia/Bishkek | Asia/Brunei
Asia/Chita | Asia/Choibalsan | Asia/Colombo | Asia/Damascus
Asia/Dhaka | Asia/Dili | Asia/Dubai | Asia/Dushanbe
Asia/Famagusta | Asia/Gaza | Asia/Hebron | Asia/Ho_Chi_Minh
Asia/Hong_Kong | Asia/Hovd | Asia/Irkutsk | Asia/Jakarta
Asia/Jayapura | Asia/Jerusalem | Asia/Kabul | Asia/Kamchatka
Asia/Karachi | Asia/Kathmandu | Asia/Khandyga | Asia/Kolkata
Asia/Krasnoyarsk | Asia/Kuala_Lumpur | Asia/Kuching | Asia/Kuwait
Asia/Macau | Asia/Magadan | Asia/Makassar | Asia/Manila
Asia/Muscat | Asia/Nicosia | Asia/Novokuznetsk | Asia/Novosibirsk
Asia/Omsk | Asia/Oral | Asia/Phnom_Penh | Asia/Pontianak
Asia/Pyongyang | Asia/Qatar | Asia/Qostanay | Asia/Qyzylorda
Asia/Riyadh | Asia/Sakhalin | Asia/Samarkand | Asia/Seoul
Asia/Shanghai | Asia/Singapore | Asia/Srednekolymsk | Asia/Taipei
Asia/Tashkent | Asia/Tbilisi | Asia/Tehran | Asia/Thimphu
Asia/Tokyo | Asia/Tomsk | Asia/Ulaanbaatar | Asia/Urumqi
Asia/Ust-Nera | Asia/Vientiane | Asia/Vladivostok | Asia/Yakutsk
Asia/Yangon | Asia/Yekaterinburg | Asia/Yerevan |


Atlantisch

Atlantisch
Atlantic/Azores | Atlantic/Bermuda | Atlantic/Canary | Atlantic/Cape_Verde
Atlantic/Faroe | Atlantic/Madeira | Atlantic/Reykjavik | Atlantic/South_Georgia
Atlantic/St_Helena | Atlantic/Stanley |  |


Australien

Australien
Australia/Adelaide | Australia/Brisbane | Australia/Broken_Hill | Australia/Darwin
Australia/Eucla | Australia/Hobart | Australia/Lindeman | Australia/Lord_Howe
Australia/Melbourne | Australia/Perth | Australia/Sydney |


Europa

Europa
Europe/Amsterdam | Europe/Andorra | Europe/Astrakhan | Europe/Athens
Europe/Belgrade | Europe/Berlin | Europe/Bratislava | Europe/Brussels
Europe/Bucharest | Europe/Budapest | Europe/Busingen | Europe/Chisinau
Europe/Copenhagen | Europe/Dublin | Europe/Gibraltar | Europe/Guernsey
Europe/Helsinki | Europe/Isle_of_Man | Europe/Istanbul | Europe/Jersey
Europe/Kaliningrad | Europe/Kiev | Europe/Kirov | Europe/Lisbon
Europe/Ljubljana | Europe/London | Europe/Luxembourg | Europe/Madrid
Europe/Malta | Europe/Mariehamn | Europe/Minsk | Europe/Monaco
Europe/Moscow | Europe/Oslo | Europe/Paris | Europe/Podgorica
Europe/Prague | Europe/Riga | Europe/Rome | Europe/Samara
Europe/San_Marino | Europe/Sarajevo | Europe/Saratov | Europe/Simferopol
Europe/Skopje | Europe/Sofia | Europe/Stockholm | Europe/Tallinn
Europe/Tirane | Europe/Ulyanovsk | Europe/Uzhgorod | Europe/Vaduz
Europe/Vatican | Europe/Vienna | Europe/Vilnius | Europe/Volgograd
Europe/Warsaw | Europe/Zagreb | Europe/Zaporozhye | Europe/Zurich


Indisch

Indisch
Indian/Antananarivo | Indian/Chagos | Indian/Christmas | Indian/Cocos
Indian/Comoro | Indian/Kerguelen | Indian/Mahe | Indian/Maldives
Indian/Mauritius | Indian/Mayotte | Indian/Reunion |


Pazifisch

Pazifisch
Pacific/Apia | Pacific/Auckland | Pacific/Bougainville | Pacific/Chatham
Pacific/Chuuk | Pacific/Easter | Pacific/Efate | Pacific/Enderbury
Pacific/Fakaofo | Pacific/Fiji | Pacific/Funafuti | Pacific/Galapagos
Pacific/Gambier | Pacific/Guadalcanal | Pacific/Guam | Pacific/Honolulu
Pacific/Kiritimati | Pacific/Kosrae | Pacific/Kwajalein | Pacific/Majuro
Pacific/Marquesas | Pacific/Midway | Pacific/Nauru | Pacific/Niue
Pacific/Norfolk | Pacific/Noumea | Pacific/Pago_Pago | Pacific/Palau
Pacific/Pitcairn | Pacific/Pohnpei | Pacific/Port_Moresby | Pacific/Rarotonga
Pacific/Saipan | Pacific/Tahiti | Pacific/Tarawa | Pacific/Tongatapu
Pacific/Wake | Pacific/Wallis |  |


Andere

Warnung

Die folgenden Zeitzonen (mit Ausnahme von UTC) existieren nur aus Gründen der Rückwärtskompatibilität und sollten nicht mehr benutzt werden, da sie sich fehlerhaft verhalten können.

Warnung

Falls Sie die obige Warnung außer Acht lassen beachten Sie bitte, dass die IANA-Datenbank, die die Unterstützung für Zeitzonen für PHP bereitstellt, die Vorzeichen in POSIX-Stil verwendet. Dies kann dazu führen, dass die Angaben von Zeitzonen als Etc/GMT+n und Etc/GMT-n umgekehrt zur geläufigen Angabe ist.

Die Zeitzone 8 Stunden vor GMT, welche unter anderem in China und Westaustralien verwendet wird, ist beispielsweise Etc/GMT-8 in dieser Datenbank statt Etc/GMT+8 die man üblicherweise erwarten würde.

Es wird daher nochmals empfohlen die für den jeweiligen Standort korrekte Zeitzone zu verwenden, beispielsweise Asia/Shanghai oder Australia/Perth für das obige Beispiel.

Andere
Africa/Asmera | Africa/Timbuktu | America/Argentina/ComodRivadavia | America/Atka
America/Buenos_Aires | America/Catamarca | America/Coral_Harbour | America/Cordoba
America/Ensenada | America/Fort_Wayne | America/Godthab | America/Indianapolis
America/Jujuy | America/Knox_IN | America/Louisville | America/Mendoza
America/Montreal | America/Porto_Acre | America/Rosario | America/Santa_Isabel
America/Shiprock | America/Virgin | Antarctica/South_Pole | Asia/Ashkhabad
Asia/Calcutta | Asia/Chongqing | Asia/Chungking | Asia/Dacca
Asia/Harbin | Asia/Istanbul | Asia/Kashgar | Asia/Katmandu
Asia/Macao | Asia/Rangoon | Asia/Saigon | Asia/Tel_Aviv
Asia/Thimbu | Asia/Ujung_Pandang | Asia/Ulan_Bator | Atlantic/Faeroe
Atlantic/Jan_Mayen | Australia/ACT | Australia/Canberra | Australia/Currie
Australia/LHI | Australia/North | Australia/NSW | Australia/Queensland
Australia/South | Australia/Tasmania | Australia/Victoria | Australia/West
Australia/Yancowinna | Brazil/Acre | Brazil/DeNoronha | Brazil/East
Brazil/West | Canada/Atlantic | Canada/Central | Canada/Eastern
Canada/Mountain | Canada/Newfoundland | Canada/Pacific | Canada/Saskatchewan
Canada/Yukon | CET | Chile/Continental | Chile/EasterIsland
CST6CDT | Cuba | EET | Egypt
Eire | EST | EST5EDT | Etc/GMT
Etc/GMT+0 | Etc/GMT+1 | Etc/GMT+10 | Etc/GMT+11
Etc/GMT+12 | Etc/GMT+2 | Etc/GMT+3 | Etc/GMT+4
Etc/GMT+5 | Etc/GMT+6 | Etc/GMT+7 | Etc/GMT+8
Etc/GMT+9 | Etc/GMT-0 | Etc/GMT-1 | Etc/GMT-10
Etc/GMT-11 | Etc/GMT-12 | Etc/GMT-13 | Etc/GMT-14
Etc/GMT-2 | Etc/GMT-3 | Etc/GMT-4 | Etc/GMT-5
Etc/GMT-6 | Etc/GMT-7 | Etc/GMT-8 | Etc/GMT-9
Etc/GMT0 | Etc/Greenwich | Etc/UCT | Etc/Universal
Etc/UTC | Etc/Zulu | Europe/Belfast | Europe/Nicosia
Europe/Tiraspol | Factory | GB | GB-Eire
GMT | GMT+0 | GMT-0 | GMT0
Greenwich | Hongkong | HST | Iceland
Iran | Israel | Jamaica | Japan
Kwajalein | Libya | MET | Mexico/BajaNorte
Mexico/BajaSur | Mexico/General | MST | MST7MDT
Navajo | NZ | NZ-CHAT | Pacific/Johnston
Pacific/Ponape | Pacific/Samoa | Pacific/Truk | Pacific/Yap
Poland | Portugal | PRC | PST8PDT
ROC | ROK | Singapore | Turkey
UCT | Universal | US/Alaska | US/Aleutian
US/Arizona | US/Central | US/East-Indiana | US/Eastern
US/Hawaii | US/Indiana-Starke | US/Michigan | US/Mountain
US/Pacific | US/Samoa | UTC | W-SU
WET | Zulu |  |


High resolution timing

  • Einführung
  • Installation/Konfiguration
    • Installation
  • Beispiele
    • Basic usage
  • HRTime\PerformanceCounter — The HRTime\PerformanceCounter class
    • HRTime\PerformanceCounter::getFrequency — Timer frequency in ticks per second
    • HRTime\PerformanceCounter::getTicks — Current ticks from the system
    • HRTime\PerformanceCounter::getTicksSince — Ticks elapsed since the given value
  • HRTime\StopWatch — The HRTime\StopWatch class
    • HRTime\StopWatch::getElapsedTicks — Get elapsed ticks for all intervals
    • HRTime\StopWatch::getElapsedTime — Get elapsed time for all intervals
    • HRTime\StopWatch::getLastElapsedTicks — Get elapsed ticks for the last interval
    • HRTime\StopWatch::getLastElapsedTime — Get elapsed time for the last interval
    • HRTime\StopWatch::isRunning — Whether the measurement is running
    • HRTime\StopWatch::start — Start time measurement
    • HRTime\StopWatch::stop — Stop time measurement
  • HRTime\Unit — The HRTime\Unit class


Einführung

The HRTime extension implements a high resolution StopWatch class. It uses the best possible APIs on different platforms which brings resolution up to nanoseconds. It also makes possible to implement a custom stopwatch using low level ticks delivered by the underlaying APIs.

Hinweis: As of PHP 7.3.0 the related function hrtime() is part of the core.


  • « Einführung
  • Installation »
  • PHP Manual
  • HRTime
  • Installation/Konfiguration

Installation/Konfiguration

Inhaltsverzeichnis

  • Installation


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/hrtime.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/hrtime/.


  • « Installation
  • Basic usage »
  • PHP Manual
  • HRTime
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Basic usage


Basic usage

The example illustrates the basic StopWatch class usage

Beispiel #1 Measure several code blocks execution and get the total

<?php

$c = new HRTime\StopWatch;

$c->start();
/* measure this code block execution */
for ($i = 0; $i < 1024*1024; $i++);
$c->stop();
$elapsed0 = $c->getLastElapsedTime(HRTime\Unit::NANOSECOND);

/* measurement is not running here*/
for ($i = 0; $i < 1024*1024; $i++);

$c->start();
/* measure this code block execution */
for ($i = 0; $i < 1024*1024; $i++);
$c->stop();
$elapsed1 = $c->getLastElapsedTime(HRTime\Unit::NANOSECOND);

$elapsed_total = $c->getElapsedTime(HRTime\Unit::NANOSECOND);

?>


The HRTime\PerformanceCounter class

(PECL hrtime >= 0.4.3)

Einführung

Klassenbeschreibung

HRTime\PerformanceCounter {
/* Methoden */
public static getFrequency ( ) : int
public static getTicks ( ) : int
public static getTicksSince ( int $start ) : int
}

Inhaltsverzeichnis

  • HRTime\PerformanceCounter::getFrequency — Timer frequency in ticks per second
  • HRTime\PerformanceCounter::getTicks — Current ticks from the system
  • HRTime\PerformanceCounter::getTicksSince — Ticks elapsed since the given value


Timer frequency in ticks per second

  • « HRTime\PerformanceCounter
  • HRTime\PerformanceCounter::getTicks »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Timer frequency in ticks per second

HRTime\PerformanceCounter::getFrequency

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::getFrequency — Timer frequency in ticks per second

Beschreibung

public static HRTime\PerformanceCounter::getFrequency ( ) : int

Returns the timer frequency in ticks per second. This value is constant after the system start on almost any operating system.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns Integer indicating the timer frequency.


Current ticks from the system

  • « HRTime\PerformanceCounter::getFrequency
  • HRTime\PerformanceCounter::getTicksSince »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Current ticks from the system

HRTime\PerformanceCounter::getTicks

(PECL hrtime >= 0.6.0)

HRTime\PerformanceCounter::getTicks — Current ticks from the system

Beschreibung

public static HRTime\PerformanceCounter::getTicks ( ) : int

Returns the ticks count.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns Integer indicating the ticks count.


Ticks elapsed since the given value

  • « HRTime\PerformanceCounter::getTicks
  • HRTime\StopWatch »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Ticks elapsed since the given value

HRTime\PerformanceCounter::getTicksSince

(PECL hrtime >= 0.6.0)

HRTime\PerformanceCounter::getTicksSince — Ticks elapsed since the given value

Beschreibung

public static HRTime\PerformanceCounter::getTicksSince ( int $start ) : int

Returns the ticks count elapsed since the given start value.

Parameter-Liste

start

Starting ticks value.

Rückgabewerte

Returns Integer indicating the ticks count.


The HRTime\StopWatch class

(PECL hrtime >= 0.4.3)

Einführung

Klassenbeschreibung

HRTime\StopWatch extends HRTime\PerformanceCounter {
/* Methoden */
public getElapsedTicks ( ) : int
public getElapsedTime ( int $unit = ? ) : float
public getLastElapsedTicks ( ) : int
public getLastElapsedTime ( int $unit = ? ) : float
public isRunning ( ) : bool
public start ( ) : void
public stop ( ) : void
/* Geerbte Methoden */
public static HRTime\PerformanceCounter::getFrequency ( ) : int
public static HRTime\PerformanceCounter::getTicks ( ) : int
public static HRTime\PerformanceCounter::getTicksSince ( int $start ) : int
}

Inhaltsverzeichnis

  • HRTime\StopWatch::getElapsedTicks — Get elapsed ticks for all intervals
  • HRTime\StopWatch::getElapsedTime — Get elapsed time for all intervals
  • HRTime\StopWatch::getLastElapsedTicks — Get elapsed ticks for the last interval
  • HRTime\StopWatch::getLastElapsedTime — Get elapsed time for the last interval
  • HRTime\StopWatch::isRunning — Whether the measurement is running
  • HRTime\StopWatch::start — Start time measurement
  • HRTime\StopWatch::stop — Stop time measurement


Get elapsed ticks for all intervals

  • « HRTime\StopWatch
  • HRTime\StopWatch::getElapsedTime »
  • PHP Manual
  • HRTime\StopWatch
  • Get elapsed ticks for all intervals

HRTime\StopWatch::getElapsedTicks

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getElapsedTicks — Get elapsed ticks for all intervals

Beschreibung

public HRTime\StopWatch::getElapsedTicks ( ) : int

Get elapsed ticks for all the previously closed intervals.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns Integer indicating elapsed ticks.


Get elapsed time for all intervals

  • « HRTime\StopWatch::getElapsedTicks
  • HRTime\StopWatch::getLastElapsedTicks »
  • PHP Manual
  • HRTime\StopWatch
  • Get elapsed time for all intervals

HRTime\StopWatch::getElapsedTime

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getElapsedTime — Get elapsed time for all intervals

Beschreibung

public HRTime\StopWatch::getElapsedTime ( int $unit = ? ) : float

Get elapsed time for all the previously closed intervals.

Parameter-Liste

unit

Time unit represented by a HRTime\Unit constant. Default is HRTime\Unit::SECOND.

Rückgabewerte

Returns Float indicating elapsed time.


Get elapsed ticks for the last interval

  • « HRTime\StopWatch::getElapsedTime
  • HRTime\StopWatch::getLastElapsedTime »
  • PHP Manual
  • HRTime\StopWatch
  • Get elapsed ticks for the last interval

HRTime\StopWatch::getLastElapsedTicks

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getLastElapsedTicks — Get elapsed ticks for the last interval

Beschreibung

public HRTime\StopWatch::getLastElapsedTicks ( ) : int

Get elapsed ticks for the previously closed interval.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns Integer indicating elapsed ticks.


Get elapsed time for the last interval

  • « HRTime\StopWatch::getLastElapsedTicks
  • HRTime\StopWatch::isRunning »
  • PHP Manual
  • HRTime\StopWatch
  • Get elapsed time for the last interval

HRTime\StopWatch::getLastElapsedTime

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getLastElapsedTime — Get elapsed time for the last interval

Beschreibung

public HRTime\StopWatch::getLastElapsedTime ( int $unit = ? ) : float

Get elapsed time for the previously closed interval.

Parameter-Liste

unit

Time unit represented by a HRTime\Unit constant. Default is HRTime\Unit::SECOND.

Rückgabewerte

Returns Float indicating elapsed time.


Whether the measurement is running

  • « HRTime\StopWatch::getLastElapsedTime
  • HRTime\StopWatch::start »
  • PHP Manual
  • HRTime\StopWatch
  • Whether the measurement is running

HRTime\StopWatch::isRunning

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::isRunning — Whether the measurement is running

Beschreibung

public HRTime\StopWatch::isRunning ( ) : bool

Reveals whether the measurement was started.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns Boolean indicating whetehr the measurement is running.


Start time measurement

  • « HRTime\StopWatch::isRunning
  • HRTime\StopWatch::stop »
  • PHP Manual
  • HRTime\StopWatch
  • Start time measurement

HRTime\StopWatch::start

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::start — Start time measurement

Beschreibung

public HRTime\StopWatch::start ( ) : void

Starts the time measurement. It has no effect if the measurement was already started. The measurement will be continued if it was previously stopped.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns void.


Stop time measurement

  • « HRTime\StopWatch::start
  • HRTime\Unit »
  • PHP Manual
  • HRTime\StopWatch
  • Stop time measurement

HRTime\StopWatch::stop

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::stop — Stop time measurement

Beschreibung

public HRTime\StopWatch::stop ( ) : void

Stop the time measurement for the previously started interval.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns void.


The HRTime\Unit class

(PECL hrtime >= 0.4.3)

Einführung

Klassenbeschreibung

HRTime\Unit {
/* Constants */
const int SECOND = 0 ;
const int MILLISECOND = 1 ;
const int MICROSECOND = 2 ;
const int NANOSECOND = 3 ;
/* Methoden */
}

Vordefinierte Konstanten

HRTime\Unit::SECOND

HRTime\Unit::MILLISECOND

HRTime\Unit::MICROSECOND

HRTime\Unit::NANOSECOND


Dateisystemrelevante Erweiterungen

  • Direct-IO
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Direct-IO-Funktionen
  • Verzeichnis-Funktionen
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Verzeichnisse — Die Directory-Klasse
    • Verzeichnis-Funktionen
  • Fileinfo — Dateiinformation
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Fileinfo Funktionen
    • finfo — The finfo class
  • Dateisystem
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Dateisystem — Dateisystem-Funktionen
  • Inotify
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Inotify Funktionen
  • Proctitle
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Proctitle Funktionen
  • xattr
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • xattr Funktionen
  • xdiff
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • xdiff Funktionen


Direct-IO

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Direct-IO-Funktionen
    • dio_close — Schließt eine Datei
    • dio_fcntl — Modifiziert einen Dateideskriptor
    • dio_open — Öffnet eine Datei (falls nötig, wird diese erzeugt) auf einem niedrigeren Level als es die C-Bibliotheks Ein-/Ausgabe-Stream-Funktionen erlauben
    • dio_read — Liest von einem Dateideskriptor
    • dio_seek — Setzt den Dateizeiger
    • dio_stat — Liefert Statusinformationen über einen Dateideskriptor
    • dio_tcsetattr — Sets terminal attributes and baud rate for a serial port
    • dio_truncate — Schneidet eine Datei ab
    • dio_write — Schreibt Daten in eine Datei


Einführung

PHP unterstützt die direkten Ein-/Ausgabe-Funktionen, beschrieben im Posix-Standard (Kapitel 6) für die Ein- und Ausgabe auf einer niederen Ebene als die standardmäßig verwendeten C-Funktionen (fopen(), fread(), ...). Die Verwendung der DIO-Funktionen sollten Sie nur in Erwägung ziehen, wenn Sie die direkte Kontrolle über ein Gerät benötigen. In allen anderen Fällen sind die Standard-filesystem-Funktionen mehr als ausreichend.

Hinweis:

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 5.1.0.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/dio.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


Ressource-Typen

Der einzige von dieser Extension definierte Ressourcentyp ist der von dio_open() zurückgegebene Datei-Deskriptor.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

F_DUPFD (integer)

F_GETFD (integer)

F_GETFL (integer)

F_GETLK (integer)

F_GETOWN (integer)

F_RDLCK (integer)

F_SETFL (integer)

F_SETLK (integer)

F_SETLKW (integer)

F_SETOWN (integer)

F_UNLCK (integer)

F_WRLCK (integer)

O_APPEND (integer)

O_ASYNC (integer)

O_CREAT (integer)

O_EXCL (integer)

O_NDELAY (integer)

O_NOCTTY (integer)

O_NONBLOCK (integer)

O_RDONLY (integer)

O_RDWR (integer)

O_SYNC (integer)

O_TRUNC (integer)

O_WRONLY (integer)

S_IRGRP (integer)

S_IROTH (integer)

S_IRUSR (integer)

S_IRWXG (integer)

S_IRWXO (integer)

S_IRWXU (integer)

S_IWGRP (integer)

S_IWOTH (integer)

S_IWUSR (integer)

S_IXGRP (integer)

S_IXOTH (integer)

S_IXUSR (integer)


Direct-IO-Funktionen

Inhaltsverzeichnis

  • dio_close — Schließt eine Datei
  • dio_fcntl — Modifiziert einen Dateideskriptor
  • dio_open — Öffnet eine Datei (falls nötig, wird diese erzeugt) auf einem niedrigeren Level als es die C-Bibliotheks Ein-/Ausgabe-Stream-Funktionen erlauben
  • dio_read — Liest von einem Dateideskriptor
  • dio_seek — Setzt den Dateizeiger
  • dio_stat — Liefert Statusinformationen über einen Dateideskriptor
  • dio_tcsetattr — Sets terminal attributes and baud rate for a serial port
  • dio_truncate — Schneidet eine Datei ab
  • dio_write — Schreibt Daten in eine Datei


Schließt eine Datei

  • « Direct-IO-Funktionen
  • dio_fcntl »
  • PHP Manual
  • Direct-IO-Funktionen
  • Schließt eine Datei

dio_close

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_close — Schließt eine Datei

Beschreibung

dio_close ( resource $fd ) : void

Die Funktion dio_close() schließt die Datei fd.

Parameter-Liste

fd

Eine von dio_open() zurückgegebene Dateideskriptorresource.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Schließen eines geöffneten Dateideskriptors

<?php
$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_close($fd);
?>

Siehe auch

  • dio_open() - Öffnet eine Datei (falls nötig, wird diese erzeugt) auf einem niedrigeren Level als es die C-Bibliotheks Ein-/Ausgabe-Stream-Funktionen erlauben


Modifiziert einen Dateideskriptor

  • « dio_close
  • dio_open »
  • PHP Manual
  • Direct-IO-Funktionen
  • Modifiziert einen Dateideskriptor

dio_fcntl

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_fcntl — Modifiziert einen Dateideskriptor

Beschreibung

dio_fcntl ( resource $fd , int $cmd , mixed $args = ? ) : mixed

Die Funktion dio_fcntl() führt die mit cmd festgelegte Operation auf dem Dateideskriptor fd aus. Für einige dieser Operationen müssen zusätzliche Argumente im Parameter args übergeben werden.

Parameter-Liste

fd

Ein von dio_open() zurückgegebener Dateideskriptor.

cmd

Eine der folgenden Operationen:

  • F_SETLK - Setzt oder löscht eine Dateisperre. Wenn diese Sperre bereits von jemand anderem gehalten wird, gibt dio_fcntl() -1 zurück.

  • F_SETLKW - ähnlich F_SETLK, hier wird aber in dem Fall, dass bereits jemand anderes die Sperre hält, gewartet bis diese wieder freigegeben wird.

  • F_GETLK - dio_fcntl() gibt ein assoziatives Array mit Informationen (wie weiter unten beschrieben) zurück, wenn jemand anderes bereits eine Sperre hält. Existiert keine andere Sperre, wird das Element "type" auf F_UNLCK gesetzt.

  • F_DUPFD - Findet den kleinsten verfügbaren Dateideskriptor >= args und gibt diesen zurück.

  • F_SETFL - Setzt die Flags des Dateideskriptors auf den in args angegebenen Wert. Die verfügbaren Flags sind O_APPEND, O_NONBLOCK und O_ASYNC. Um O_ASYNC setzen zu können, benötigen Sie die PCNTL-Extension.

args

Die cmd-Operationen F_SETLK und F_SETLLW erwarten ein Array mit den folgenden Elementen:

  • start - Offset an dem die Sperre beginnt

  • length - Länge des gesperrten Bereichs, 0 bedeutet dabei "bis zum Dateiende"

  • whence - Die Position, auf die sich start bezieht, dabei steht SEEK_SET für den Dateianfang, SEEK_END für das Dateiende und SEEK_CUR für die aktuelle Schreib-/Leseposition.

  • type - Art der Sperre: F_RDLCK (Lesesperre), F_WRLCK (Schreibsperre) oder F_UNLCK (Sperre aufheben)

Rückgabewerte

Gibt das Ergebnis des entsprechenden C-Aufrufs zurück.

Beispiele

Beispiel #1 Setzen und Löschen einer Sperre

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR);

if (dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
    // Die Datei ist anscheinend schon anderweitig gesperrt
    echo "Sperrung fehlgeschlagen, die Datei wird schon von jemand anderem gesperrt.";
} else {
    echo "Sperrung erfolgreich durchgeführt";
}

dio_close($fd);
?>

Anmerkungen

Hinweis: Diese Funktion ist auf Windows-Plattformen nicht verfügbar.


Öffnet eine Datei (falls nötig, wird diese erzeugt) auf einem niedrigeren Level als es die C-Bibliotheks Ein-/Ausgabe-Stream-Funktionen erlauben

  • « dio_fcntl
  • dio_read »
  • PHP Manual
  • Direct-IO-Funktionen
  • Öffnet eine Datei (falls nötig, wird diese erzeugt) auf einem niedrigeren Level als es die C-Bibliotheks Ein-/Ausgabe-Stream-Funktionen erlauben

dio_open

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_open — Öffnet eine Datei (falls nötig, wird diese erzeugt) auf einem niedrigeren Level als es die C-Bibliotheks Ein-/Ausgabe-Stream-Funktionen erlauben

Beschreibung

dio_open ( string $filename , int $flags , int $mode = 0 ) : resource

dio_open() öffnet eine Datei und liefert einen Dateideskriptor zurück.

Parameter-Liste

filename

Der Pfadname der zu öffnenden Datei.

flags

Der Parameter flags ist ein bitweise ODER verknüpfter Wert bestehend aus Flags der folgende Liste. Dieser Wert muss entweder O_RDONLY, O_WRONLY, oder O_RDWR enthalten. Zusätzlich kann er eine beliebige Kombination der anderen Flags dieser Liste enthalten.

  • O_RDONLY - öffnet die Datei zum Lesezugriff.

  • O_WRONLY - öffnet die Datei zum Schreibzugriff.

  • O_RDWR - öffnet die Datei zum Lesen und Schreiben.

  • O_CREAT - erzeugt die Datei, falls diese nicht existiert

  • O_EXCL - wird sowohl O_CREAT als auch O_EXCL angegeben und die Datei existiert bereits, schlägt dio_open() fehl.

  • O_TRUNC - falls die Datei bereits existiert, und sie für Schreibzugriff geöffnet wird, wird diese auf die Grösse 0 zurückgesetzt

  • O_APPEND - setzt den Zeiger für Schreiboperationen an das Ende der Datei

  • O_NONBLOCK - Setzt den Modus auf "nonblocking"

  • O_NOCTTY - hält das Betriebssystem davon ab, die geöffnete Datei als Prozess steuerndes Terminal zuzuweisen, wenn eine TTY Gerätedatei geöffnet wird.

mode

Wenn flags das Flag O_CREAT enthält, setzt mode die Dateizugriffsrechte. mode wird für die korrekte Ausführung benötigt, wenn O_CREAT in flags angegeben wird, und wird ansonsten ignoriert.

Die tatsächlichen Dateizugriffsrechte, die der erzeugten Datei zugewiesen werden, werden von der umask Einstellung des Prozesses wie üblich beeinflusst.

Rückgabewerte

Ein Dateideskriptor oder false bei Fehlern.

Beispiele

Beispiel #1 Öffnen eines Dateideskriptors

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_close($fd);
?>

Siehe auch

  • dio_close() - Schließt eine Datei


Liest von einem Dateideskriptor

  • « dio_open
  • dio_seek »
  • PHP Manual
  • Direct-IO-Funktionen
  • Liest von einem Dateideskriptor

dio_read

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_read — Liest von einem Dateideskriptor

Beschreibung

dio_read ( resource $fd , int $len = 1024 ) : string

Die Funktion dio_read() liest len Bytes aus der Datei fd.

Parameter-Liste

fd

Ein von dio_open() zurückgegebener Dateideskriptor.

len

Die Anzahl zu lesender Bytes. Wird diese nicht angegeben so wird in 1KB-Blöcken gelesen.

Rückgabewerte

Die vom Deskriptor fd gelesenen Daten.

Siehe auch

  • dio_write() - Schreibt Daten in eine Datei


Setzt den Dateizeiger

  • « dio_read
  • dio_stat »
  • PHP Manual
  • Direct-IO-Funktionen
  • Setzt den Dateizeiger

dio_seek

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_seek — Setzt den Dateizeiger

dio_seek ( resource $fd , int $pos , int $whence = SEEK_SET ) : int

Die Funktion dio_seek() setzt den Dateizeiger des angegebenen Dateideskriptors.

Parameter-Liste

fd

Der von dio_open() zurückgegebene Dateideskriptor.

pos

Die neue Position.

whence

Gibt an, wie die Position pos interpretiert werden soll:

  • SEEK_SET (Standardwert) - gibt an, dass pos die Position vom Anfang der Datei ist

  • SEEK_CUR - gibt an, dass pos die Position relativ von der momentanen Dateizeigerposition ist. Die Position kann positiv oder negativ sein.

  • SEEK_END - gibt an, dass pos die Position relativ zum Dateiende ist. Eine negative Zahl setzt den Dateizeiger innerhalb der Datei, ein positiver Wert bewirkt, dass die Datei vom Ende bis zur neuen Position mit Nullen aufgefüllt wird, sobald tatsächlich weitere Daten geschrieben werden.

Rückgabewerte

Beispiele

Beispiel #1 Positionieren in einer Datei

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_seek($fd, 10, SEEK_SET);
// Position ist jetzt beim 10. Zeichen vom Anfang der Datei

dio_seek($fd, -2, SEEK_CUR);
// Position ist jetzt beim 8. Zeichen vom Anfang der Datei

dio_seek($fd, -5, SEEK_END);
// Position ist jetzt beim 5. Zeichen vom Ende der Datei

dio_seek($fd, 10, SEEK_END);
// Position ist jetzt beim 10. Zeichen hinter dem Ende der Datei.
// Die 10 Zeichen zwischen dem Ende der Datei und der aktuellen Position
// werden mit Nullen gefüllt.

dio_close($fd);
?>


Liefert Statusinformationen über einen Dateideskriptor

  • « dio_seek
  • dio_tcsetattr »
  • PHP Manual
  • Direct-IO-Funktionen
  • Liefert Statusinformationen über einen Dateideskriptor

dio_stat

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_stat — Liefert Statusinformationen über einen Dateideskriptor

Beschreibung

dio_stat ( resource $fd ) : array

Die Funktion dio_stat() gibt Informationen zum gegebenen Dateideskriptor zurück.

Parameter-Liste

fd

Ein von dio_open() zurückgegebener Dateideskriptor.

Rückgabewerte

Gibt ein Array mit den folgenden Elementen zurück:

  • "device" - Device

  • "inode" - Inode

  • "mode" - Modus

  • "nlink" - Anzahl Links

  • "uid" - Benutzer Id

  • "gid" - Gruppentyp

  • "device_type" - Device-Typ

  • "size" - Größe in Bytes

  • "blocksize" - Blockgröße

  • "blocks" - Anzahl allozierter Blöcke

  • "atime" - Letzter Zugriff

  • "mtime" - Letze Modifikation

  • "ctime" - Letzte Änderung

Im Fehlerfall liefert dio_stat() null zurück.


Sets terminal attributes and baud rate for a serial port

  • « dio_stat
  • dio_truncate »
  • PHP Manual
  • Direct-IO-Funktionen
  • Sets terminal attributes and baud rate for a serial port

dio_tcsetattr

(PHP 4 >= 4.3.0, PHP 5 < 5.1.0)

dio_tcsetattr — Sets terminal attributes and baud rate for a serial port

Beschreibung

dio_tcsetattr ( resource $fd , array $options ) : bool

dio_tcsetattr() sets the terminal attributes and baud rate of the open fd.

Parameter-Liste

fd

The file descriptor returned by dio_open().

options

The currently available options are:

  • 'baud' - baud rate of the port - can be 38400,19200,9600,4800,2400,1800, 1200,600,300,200,150,134,110,75 or 50, default value is 9600.

  • 'bits' - data bits - can be 8,7,6 or 5. Default value is 8.

  • 'stop' - stop bits - can be 1 or 2. Default value is 1.

  • 'parity' - can be 0,1 or 2. Default value is 0.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Setting the baud rate on a serial port

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_fcntl($fd, F_SETFL, O_SYNC);

dio_tcsetattr($fd, array(
  'baud' => 9600,
  'bits' => 8,
  'stop'  => 1,
  'parity' => 0
));

while (1) {

  $data = dio_read($fd, 256);

  if ($data) {
      echo $data;
  }
}

?>

Anmerkungen

Hinweis: Diese Funktion ist auf Windows-Plattformen nicht verfügbar.


Schneidet eine Datei ab

  • « dio_tcsetattr
  • dio_write »
  • PHP Manual
  • Direct-IO-Funktionen
  • Schneidet eine Datei ab

dio_truncate

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_truncate — Schneidet eine Datei ab

Beschreibung

dio_truncate ( resource $fd , int $offset ) : bool

dio_truncate() schneidet eine Datei nach maximal offset ab.

War die Datei ursprünglich größer, so gehen die Daten verloren. War sie kleiner, ist nicht definiert, ob die Datei nicht geändert wird oder ob sie erweitert wird. Im letzteren Fall wird der erweiterte Teil mit Nullen aufgefüllt.

Parameter-Liste

fd

Ein von dio_open() zurückgegebener Dateideskriptor.

offset

Der Offset in Bytes.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis: Diese Funktion ist auf Windows-Plattformen nicht verfügbar.


Schreibt Daten in eine Datei

  • « dio_truncate
  • Verzeichnis-Funktionen »
  • PHP Manual
  • Direct-IO-Funktionen
  • Schreibt Daten in eine Datei

dio_write

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_write — Schreibt Daten in eine Datei

Beschreibung

dio_write ( resource $fd , string $data , int $len = 0 ) : int

Die Funktion dio_write() schreibt bis zu len Bytes data auf den Dateideskriptor fd.

Parameter-Liste

fd

Ein von dio_open() zurückgegebener Dateideskriptor.

data

Die zu schreibenden Daten.

len

Die Anzahl der zu schreibenden Bytes. Wenn nicht angegeben, werden die vollständigen Daten in die angegebene Datei geschrieben.

Rückgabewerte

Gibt die Anzahl der tatsächlich geschriebenen Bytes zurück.

Siehe auch

  • dio_read() - Liest von einem Dateideskriptor


Verzeichnis-Funktionen

  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Verzeichnisse — Die Directory-Klasse
    • Directory::close — Schließt das Verzeichnis-Handle
    • Directory::read — Liest einen Eintrag vom Verzeichnis-Handle
    • Directory::rewind — Setzt das Verzeichnis-Handle zurück
  • Verzeichnis-Funktionen
    • chdir — Wechseln des Verzeichnisses
    • chroot — Wechselt das Root-Verzeichnis
    • closedir — Schließen eines Verzeichnis-Handles
    • dir — Gibt eine Instanz der Directory Klasse zurück
    • getcwd — Ermittelt das aktuelle Arbeitsverzeichnis
    • opendir — Öffnen eines Verzeichnis-Handles
    • readdir — Liest einen Eintrag aus einem Verzeichnis-Handle
    • rewinddir — Zurücksetzen des Verzeichnis-Handles
    • scandir — Listet Dateien und Verzeichnisse innerhalb eines angegebenen Pfades auf


Vordefinierte Konstanten

DIRECTORY_SEPARATOR (string)
PATH_SEPARATOR (string)
Strichpunkt bei Windows Systemen, Doppelpunkt bei UNIX basierten.
SCANDIR_SORT_ASCENDING (integer)
Verfügbar seit PHP 5.4.0.
SCANDIR_SORT_DESCENDING (integer)
Verfügbar seit PHP 5.4.0.
SCANDIR_SORT_NONE (integer)
Verfügbar seit PHP 5.4.0.


Die Directory-Klasse

(No version information available, might only be in Git)

Einführung

Instanzen von Directory werden mithilfe der dir() Funktion, und nicht mit dem new Operator erstellt.

Klassenbeschreibung

Directory {
/* Eigenschaften */
public string $path ;
public resource $handle ;
/* Methoden */
public close ( resource $dir_handle = ? ) : void
public read ( resource $dir_handle = ? ) : string
public rewind ( resource $dir_handle = ? ) : void
}

Eigenschaften

path

Das Verzeichnis, das geöffnet wurde.

handle

Kann zusammen mit anderen Funktionen wie zum Beispiel readdir(), rewinddir() und closedir() benutzt werden.

Inhaltsverzeichnis

  • Directory::close — Schließt das Verzeichnis-Handle
  • Directory::read — Liest einen Eintrag vom Verzeichnis-Handle
  • Directory::rewind — Setzt das Verzeichnis-Handle zurück


Schließt das Verzeichnis-Handle

  • « Verzeichnisse
  • Directory::read »
  • PHP Manual
  • Verzeichnisse
  • Schließt das Verzeichnis-Handle

Directory::close

(PHP 4, PHP 5, PHP 7, PHP 8)

Directory::close — Schließt das Verzeichnis-Handle

Beschreibung

public Directory::close ( resource $dir_handle = ? ) : void

Genau wie closedir(), nur ist dir_handle standardmäßig $this->handle.


Liest einen Eintrag vom Verzeichnis-Handle

  • « Directory::close
  • Directory::rewind »
  • PHP Manual
  • Verzeichnisse
  • Liest einen Eintrag vom Verzeichnis-Handle

Directory::read

(PHP 4, PHP 5, PHP 7, PHP 8)

Directory::read — Liest einen Eintrag vom Verzeichnis-Handle

Beschreibung

public Directory::read ( resource $dir_handle = ? ) : string

Genau wie readdir(), nur ist dir_handle standardmäßig $this->handle.


Setzt das Verzeichnis-Handle zurück

  • « Directory::read
  • Verzeichnis-Funktionen »
  • PHP Manual
  • Verzeichnisse
  • Setzt das Verzeichnis-Handle zurück

Directory::rewind

(PHP 4, PHP 5, PHP 7, PHP 8)

Directory::rewind — Setzt das Verzeichnis-Handle zurück

Beschreibung

public Directory::rewind ( resource $dir_handle = ? ) : void

Das gleiche wie rewinddir(), nur ist dir_handle standardmäßig $this->handle.


Verzeichnis-Funktionen

Siehe auch

Für verwandte Funktionen wie zum Beispiel dirname(), is_dir(), mkdir() und rmdir(), lesen Sie auch das Filesystem-Kapitel.

Inhaltsverzeichnis

  • chdir — Wechseln des Verzeichnisses
  • chroot — Wechselt das Root-Verzeichnis
  • closedir — Schließen eines Verzeichnis-Handles
  • dir — Gibt eine Instanz der Directory Klasse zurück
  • getcwd — Ermittelt das aktuelle Arbeitsverzeichnis
  • opendir — Öffnen eines Verzeichnis-Handles
  • readdir — Liest einen Eintrag aus einem Verzeichnis-Handle
  • rewinddir — Zurücksetzen des Verzeichnis-Handles
  • scandir — Listet Dateien und Verzeichnisse innerhalb eines angegebenen Pfades auf


Wechseln des Verzeichnisses

  • « Verzeichnis-Funktionen
  • chroot »
  • PHP Manual
  • Verzeichnis-Funktionen
  • Wechseln des Verzeichnisses

chdir

(PHP 4, PHP 5, PHP 7, PHP 8)

chdir — Wechseln des Verzeichnisses

Beschreibung

chdir ( string $directory ) : bool

Wechselt das aktuelle Verzeichnis von PHP zu directory.

Parameter-Liste

directory

Das neue aktuelle Verzeichnis

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Erzeugt einen Fehler des Levels E_WARNING bei Misserfolg.

Beispiele

Beispiel #1 chdir() Beispiel

<?php

// aktuelles Verzeichnis
echo getcwd() . "\n";

chdir('public_html');

// aktuelles Verzeichnis
echo getcwd() . "\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/home/vincent
/home/vincent/public_html

Anmerkungen

Achtung

Wurde der PHP-Interpreter mit ZTS (Zend Thread Safety) kompiliert, sind Änderungen des aktuellen Arbeitsverzeichnisses durch chdir() für das Betriebssystem unsichtbar. Alle eingebauten PHP Funktionen berücksichtigen die Änderung des aktuellen Verzeichnisses, aber externe Bibliotheksfunktionen, die unter Verwendung von FFI aufgerufen werden, nicht. Um festzustellen, ob das verwendete PHP mit ZTS kompiliert wurde, kann php -i oder die eingebaute Konstante PHP_ZTS verwendet werden.

Siehe auch

  • getcwd() - Ermittelt das aktuelle Arbeitsverzeichnis


Wechselt das Root-Verzeichnis

  • « chdir
  • closedir »
  • PHP Manual
  • Verzeichnis-Funktionen
  • Wechselt das Root-Verzeichnis

chroot

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

chroot — Wechselt das Root-Verzeichnis

Beschreibung

chroot ( string $directory ) : bool

Wechselt das Root-Verzeichnis des aktuellen Prozesses zu directory, und wechselt das aktuelle Arbeitsverzeichnis zu "/".

Diese Funktion ist nur unter GNU und BSD Systemen verfügbar und nur bei Verwendung der CLI, CGI oder Embed SAPI. Zusätzlich benötigt die Funktion Root-Rechte.

Parameter-Liste

directory

Der Pfad zu dem das Wurzelverzeichnis geändert werden soll.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 chroot() Beispiel

<?php
chroot("/pfad/zu/ihrem/chroot/");
echo getcwd();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

/

Anmerkungen

Hinweis: Diese Funktion ist auf Windows-Plattformen nicht verfügbar.

Hinweis: Diese Funktion ist in PHP-Interpretern, die mit ZTS (Zend Thread Safety) kompiliert wurden, nicht verfügbar. Ob das verwendete PHP mit ZTS kompiliert wurde, kann durch Aufruf von php -i, oder unter Verwendung der eingebauten PHP_ZTS Konstante geprüft werden.


Schließen eines Verzeichnis-Handles

  • « chroot
  • dir »
  • PHP Manual
  • Verzeichnis-Funktionen
  • Schließen eines Verzeichnis-Handles

closedir

(PHP 4, PHP 5, PHP 7, PHP 8)

closedir — Schließen eines Verzeichnis-Handles

Beschreibung

closedir ( resource $dir_handle = ? ) : void

Schließt den in dir_handle angegebenen Verzeichnis-Stream. Der Stream muss zuvor mittels opendir() geöffnet worden sein.

Parameter-Liste

dir_handle

Das Verzeichnis-Handle resource, das zuvor mit opendir() geöffnet wurde. Wenn das Verzeichnis-Handle nicht angegeben ist, wird dasjenige verwendet, das auf das zuletzt mittels opendir() geöffnete Verzeichnis zeigt.

Beispiele

Beispiel #1 closedir() Beispiel

<?php
$dir = "/etc/php5/";

// Öffnet ein bekanntes Verzeichnis, liest das Verzeichnis in eine Variable
// ein und schließt es danach
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        $directory = readdir($dh);
        closedir($dh);
    }
}
?>


Gibt eine Instanz der Directory Klasse zurück

  • « closedir
  • getcwd »
  • PHP Manual
  • Verzeichnis-Funktionen
  • Gibt eine Instanz der Directory Klasse zurück

dir

(PHP 4, PHP 5, PHP 7, PHP 8)

dir — Gibt eine Instanz der Directory Klasse zurück

Beschreibung

dir ( string $directory , resource $context = ? ) : Directory

Ein pseudo-objektorientierter Mechanismus zum Lesen eines Verzeichnisses. Das in directory angegebene Verzeichnis wird geöffnet.

Parameter-Liste

directory

Das zu öffnende Verzeichnis.

context

Hinweis: Die Kontext-Unterstützung gibt es seit PHP 5.0.0. Eine Beschreibung von Kontexten finden Sie unter Streams.

Rückgabewerte

Gibt eine Instanz der Directory Klasse zurück, oder null bei falschen Parametern, oder false im Falle eines anderen Fehlers.

Beispiele

Beispiel #1 dir() Beispiel

Beachten Sie im nachfolgenden Beispiel, wie der Rückgabewert der Funktion Directory::read() überprüft wird. Es wird explizit getestet, ob der Rückgabewert identisch (den gleichen Wert und Datentyp hat, siehe Vergleichs-0peratoren) mit false ist, weil sonst jeder Verzeichniseintrag, der zu false ausgewertet wird, die Schleife abbricht.

<?php
$d = dir("/etc/php5");
echo "Handle: " . $d->handle . "\n";
echo "Path: " . $d->path . "\n";
while (false !== ($entry = $d->read())) {
   echo $entry."\n";
}
$d->close();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Handle: Resource id #2
Path: /etc/php5
.
..
apache
cgi
cli

Anmerkungen

Hinweis:

Die Reihenfolge der Verzeichniseinträge, die von der read-Methode zurückgegeben werden, ist systemabhängig.


Ermittelt das aktuelle Arbeitsverzeichnis

  • « dir
  • opendir »
  • PHP Manual
  • Verzeichnis-Funktionen
  • Ermittelt das aktuelle Arbeitsverzeichnis

getcwd

(PHP 4, PHP 5, PHP 7, PHP 8)

getcwd — Ermittelt das aktuelle Arbeitsverzeichnis

Beschreibung

getcwd ( ) : string

Gibt das aktuelle Arbeitsverzeichnis zurück.

Rückgabewerte

Gibt bei Erfolg das aktuelle Arbeitsverzeichnis zurück, im Fehlerfall false.

Auf einigen Unix-Varianten gibt getcwd() false zurück, wenn eines der darüber liegenden Verzeichnisse keine Lese- oder Suchrechte haben, auch wenn das aktuelle Verzeichnis diese hat. Lesen Sie chmod() für weitergehende Informationen über Modi und Zugriffsrechte.

Achtung

Wurde der PHP-Interpreter mit ZTS (Zend Thread Safety) kompiliert, kann sich das aktuelle Arbeitsverzeichnis, das von getcwd() zurückgegeben wird, von dem was von Betriebssystemschnittstellen zurückgegeben wird, unterscheiden. Externe Bibliotheken (die durch FFI aufgerufen werden), die sich nach dem aktuellen Arbeitsverzeichnis richten, sind davon betroffen.

Beispiele

Beispiel #1 getcwd() Beispiel

<?php

// aktuelles Verzeichnis
echo getcwd() . "\n";

chdir('cvs');

// aktuelles Verzeichnis
echo getcwd() . "\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/home/didou
/home/didou/cvs

Siehe auch

  • chdir() - Wechseln des Verzeichnisses
  • chmod() - Ändert die Zugriffsrechte einer Datei


Öffnen eines Verzeichnis-Handles

  • « getcwd
  • readdir »
  • PHP Manual
  • Verzeichnis-Funktionen
  • Öffnen eines Verzeichnis-Handles

opendir

(PHP 4, PHP 5, PHP 7, PHP 8)

opendir — Öffnen eines Verzeichnis-Handles

Beschreibung

opendir ( string $path , resource $context = ? ) : resource

Öffnet ein Verzeichnis-Handle zur Verwendung in nachfolgenden Aufrufen von closedir(), readdir() und rewinddir().

Parameter-Liste

path

Der zu öffnende Verzeichnis-Pfad.

context

Für die Beschreibung des context-Parameters konsultieren Sie bitte das Kapitel Streams des Manuals.

Rückgabewerte

Gibt bei Erfolg ein Verzeichnis-handle resource zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Dies kann passieren, wenn path kein valides Verzeichnis ist oder das Verzeichnis auf Grund von Zugriffsbeschränkungen oder Filesystem-Problemen nicht geöffnet werden kann.

Beispiele

Beispiel #1 opendir() Beispiel

<?php
$dir = "/etc/php5/";

// Öffnen eines bekannten Verzeichnisses und danach seinen Inhalt einlesen
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

filename: . : filetype: dir
filename: .. : filetype: dir
filename: apache : filetype: dir
filename: cgi : filetype: dir
filename: cli : filetype: dir

Siehe auch

  • is_dir() - Prüft, ob der angegebene Dateiname ein Verzeichnis ist
  • readdir() - Liest einen Eintrag aus einem Verzeichnis-Handle
  • dir() - Gibt eine Instanz der Directory Klasse zurück


Liest einen Eintrag aus einem Verzeichnis-Handle

  • « opendir
  • rewinddir »
  • PHP Manual
  • Verzeichnis-Funktionen
  • Liest einen Eintrag aus einem Verzeichnis-Handle

readdir

(PHP 4, PHP 5, PHP 7, PHP 8)

readdir — Liest einen Eintrag aus einem Verzeichnis-Handle

Beschreibung

readdir ( resource $dir_handle = ? ) : string

Gibt den Namen des nächsten Eintrags des Verzeichnisses zurück. Die Einträge werden in der Reihenfolge zurück gegeben, in der sie innerhalb des Filesystems angelegt wurden.

Parameter-Liste

dir_handle

Das Verzeichnis-Handle resource, das zuvor mit opendir() geöffnet wurde. Wenn das Verzeichnis-Handle nicht angegeben ist, wird dasjenige verwendet, das auf das zuletzt mittels opendir() geöffnete Verzeichnis zeigt.

Rückgabewerte

Gibt bei Erfolg den Namen des Eintrags zurück. Im Fehlerfall wird false zurückgegeben.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 Alle Einträge eines Verzeichnisses auflisten

Bitte beachten Sie die Art und Weise, in der die Rückgabewerte von readdir() in untenstehenden Beispielen geprüft werden. Wir testen explizit, ob der Rückgabewert identisch (also inhaltlich und typgleich -- siehe Kapitel Vergleichs-Operatoren für weitere Informationen) zu false ist, andernfalls würde jeder Verzeichnis-Eintrag, dessen Name als false ausgewertet wird, das Durchlaufen der Schleife beenden (z.B. ein Verzeichnis namens "0").

<?php

if ($handle = opendir('/path/to/files')) {
    echo "Verzeichnis-Handle: $handle\n";
    echo "Einträge:\n";

    /* Das ist der korrekte Weg, ein Verzeichnis zu durchlaufen. */
    while (false !== ($entry = readdir($handle))) {
        echo "$entry\n";
    }

    /* Dies ist der FALSCHE Weg, ein Verzeichnis zu durchlaufen. */
    while ($entry = readdir($handle)) {
        echo "$entry\n";
    }

    closedir($handle);
}
?>

Beispiel #2 Listet alle Einträge des aktuellen Verzeichnisses auf und blendet dabei . und .. aus.

<?php
if ($handle = opendir('.')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            echo "$entry\n";
        }
    }
    closedir($handle);
}
?>

Siehe auch

  • is_dir() - Prüft, ob der angegebene Dateiname ein Verzeichnis ist
  • glob() - Findet Dateinamen, die mit einem Muster übereinstimmen
  • opendir() - Öffnen eines Verzeichnis-Handles
  • scandir() - Listet Dateien und Verzeichnisse innerhalb eines angegebenen Pfades auf


Zurücksetzen des Verzeichnis-Handles

  • « readdir
  • scandir »
  • PHP Manual
  • Verzeichnis-Funktionen
  • Zurücksetzen des Verzeichnis-Handles

rewinddir

(PHP 4, PHP 5, PHP 7, PHP 8)

rewinddir — Zurücksetzen des Verzeichnis-Handles

Beschreibung

rewinddir ( resource $dir_handle = ? ) : void

Setzt den mit dir_handle angegebenen Verzeichnis-Stream auf den Anfang des Verzeichnisses zurück (Reset).

Parameter-Liste

dir_handle

Das Verzeichnis-Handle resource, das zuvor mit opendir() geöffnet wurde. Wenn das Verzeichnis-Handle nicht angegeben ist, wird dasjenige verwendet, das auf das zuletzt mittels opendir() geöffnete Verzeichnis zeigt.

Rückgabewerte

Returns null on successIm Fehlerfall wird false zurückgegeben..


Listet Dateien und Verzeichnisse innerhalb eines angegebenen Pfades auf

  • « rewinddir
  • Fileinfo »
  • PHP Manual
  • Verzeichnis-Funktionen
  • Listet Dateien und Verzeichnisse innerhalb eines angegebenen Pfades auf

scandir

(PHP 5, PHP 7, PHP 8)

scandir — Listet Dateien und Verzeichnisse innerhalb eines angegebenen Pfades auf

Beschreibung

scandir ( string $directory , int $sorting_order = SCANDIR_SORT_ASCENDING , resource $context = ? ) : array

Gibt ein Array aus Dateien und Verzeichnissen des aktuellen directory wieder.

Parameter-Liste

directory

Das zu untersuchende Verzeichnis.

sorting_order

Standardmäßig ist die Sortierreihenfolge alphabetisch in aufsteigender Reihenfolge. Wenn der optionale Parameter sorting_order auf SCANDIR_SORT_DESCENDING gesetzt wird, ist die Sortierreihenfolge alphabetisch absteigend. Wenn er auf SCANDIR_SORT_NONE gesetzt wird, ist das Ergebnis unsortiert.

context

Für die Beschreibung des context-Parameters konsultieren Sie bitte das Kapitel Streams des Manuals.

Rückgabewerte

Gibt bei Erfolg ein Array von Dateinamen zurück, im Fehlerfall false. Wenn directory kein Verzeichnis ist, wird der boolsche Wert false zurück gegeben und ein Fehler vom Type E_WARNING erzeugt.

Changelog

Version | Beschreibung
5.4.0 | sorting_order Konstanten wurden hinzugefügt. Jeder Wert ungleich 0 bewirkte absteigende Reihenfolge in vorherigen Versionen. Also verwenden Sie 0 für aufsteigende und 1 für absteigende Reihenfolge für alle PHP Versionen. Eine Möglichkeit für das SCANDIR_SORT_NONE Verhalten gab es vor PHP 5.4.0 nicht.

Beispiele

Beispiel #1 Ein einfaches scandir()-Beispiel

<?php
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Anmerkungen

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Siehe auch

  • opendir() - Öffnen eines Verzeichnis-Handles
  • readdir() - Liest einen Eintrag aus einem Verzeichnis-Handle
  • glob() - Findet Dateinamen, die mit einem Muster übereinstimmen
  • is_dir() - Prüft, ob der angegebene Dateiname ein Verzeichnis ist
  • sort() - Sortiert ein Array


Dateiinformation

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Fileinfo Funktionen
    • finfo_buffer — Return information about a string buffer
    • finfo_close — Schließt eine fileinfo Ressource
    • finfo_file — Gibt Informationen über eine Datei zurück
    • finfo_open — Erstellt eine neue fileinfo Ressource
    • finfo_set_flags — Setzt libmagic Konfigurationsoptionen
    • mime_content_type — Ermittelt den MIME-Typ des Inhalts einer Datei
  • finfo — The finfo class
    • finfo::buffer — Alias von finfo_buffer()
    • finfo::__construct — Alias von finfo_open
    • finfo::file — Alias von finfo_file()
    • finfo::set_flags — Alias von finfo_set_flags()


Einführung

Die Funktionen in diesem Modul versuchen den Typ und die Codierung des Inhaltes einer Datei durch untersuchen bestimmter magischen Byte-Sequenzen an spezifischen Stellen innerhalb der Datei. Obwohl dies kein "kugelsicherer" Ansatz ist machen sie dennoch gute Arbeit.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

Vor PHP 5.3.0 wird die magic_open Bibliothek benötigt.


Installation

Diese Erweiterung ist standardmäßig aktiviert seit PHP 5.3.0. Davor war fileinfo eine PECL-Erweiterung, wird dort aber nicht länger entwickelt.Versionen unter 5.3+ können die » eingestellte PECL Erweiterung benutzen.

Windows-Benutzer müssen für die Aktivierung der Erweiterung die gebündelte php_fileinfo.dll DLL-Datei in die php.ini einbinden.

Die libmagic-Bibliothek ist mit PHP gebündelt, aber bindet PHP-spezifische änderungen ein. Ein Patch für libmagic, genannt libmagic.patch, wird entwickelt und kann eventuell in den Quelladateien der fileinfio-Erweiterung gefunden werden.

Versionsverlauf der gebündelten libmagic Bibliothek
PHP Version | Aktualisierte libmagic Version | Notitzen
5.3.2 | 5.03 |
5.3.0 | 5.02 |


Ressource-Typen

Eine Ressource wird von der Fileinfo-Erweiterung verwendet: einen magischen Datenbankbeschreiber, der von der Funktion finfo_open() zurückgegeben wird.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

FILEINFO_NONE (integer)
Keine spezielle Fehlerbehandlung.
FILEINFO_SYMLINK (integer)
Folge symlinks.
FILEINFO_MIME_TYPE (integer)
Gibt den MIME-Typ zurück. Verfügbar seit PHP 5.3.0.
FILEINFO_MIME_ENCODING (integer)
Gibt die MIME-Kodierung der Datei zurück. Verfügbar seit PHP 5.3.0.
FILEINFO_MIME (integer)
Gibt den MIME-Typ und die MIME-Kodierung gemäß RFC 2045 zurück.
FILEINFO_COMPRESS (integer)
Dekomprimiert komprimierte Dateien. Deaktiviert seit PHP 5.3.0 aufgrund von Fragen bei der Thread-Sicherheit.
FILEINFO_DEVICES (integer)
Schaut auf Inhalte von Blöcken oder Chatacter-Spezialgeräte.
FILEINFO_CONTINUE (integer)
Gibt alle Übereinstimmungen zurück; nicht bloß die erste.
FILEINFO_PRESERVE_ATIME (integer)
Falls möglich bewahre die originale Zugriffszeit.
FILEINFO_RAW (integer)
Übersetze nicht unschreibbare Buchstaben zu einer \ooo Oktalumschreibeung.
FILEINFO_EXTENSION (integer)
Liefert die passende Dateierweiterung zum erkannten MIME-Typen der Datei. Für Typen, die üblicherweise mehrere Dateierweiterungen haben, wie JPEG-Bilder, enthält der Rückgabewert mehrere durch Schrägstriche getrennte Erweiterungen, z.B.: "jpeg/jpg/jpe/jfif". Für unbekannte Typen, die nicht in der magic.mime Datenbank verfügbar sind, ist der Rückgabewert "???". Verfügbar seit PHP 7.2.0.


Fileinfo Funktionen

Inhaltsverzeichnis

  • finfo_buffer — Return information about a string buffer
  • finfo_close — Schließt eine fileinfo Ressource
  • finfo_file — Gibt Informationen über eine Datei zurück
  • finfo_open — Erstellt eine neue fileinfo Ressource
  • finfo_set_flags — Setzt libmagic Konfigurationsoptionen
  • mime_content_type — Ermittelt den MIME-Typ des Inhalts einer Datei


Return information about a string buffer

  • « Fileinfo Funktionen
  • finfo_close »
  • PHP Manual
  • Fileinfo Funktionen
  • Return information about a string buffer

finfo_buffer

finfo::buffer

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_buffer -- finfo::buffer — Return information about a string buffer

Beschreibung

Prozeduraler Stil

finfo_buffer ( resource $finfo , string $string , int $flags = FILEINFO_NONE , resource|null $context = null ) : string|false

Objektorientierter Stil

public finfo::buffer ( string $string , int $flags = FILEINFO_NONE , resource|null $context = null ) : string|false

This function is used to get information about binary data in a string.

Parameter-Liste

finfo

Fileinfo resource returned by finfo_open().

string

Content of a file to be checked.

flags

One or disjunction of more Fileinfo constants.

context

Rückgabewerte

Returns a textual description of the string argument, or false if an error occurred.

Changelog

Version | Beschreibung
8.0.0 | context is nullable now.

Beispiele

Beispiel #1 A finfo_buffer() example

<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

application/x-sh; charset=us-ascii

Siehe auch

  • finfo_file() - Alias von finfo_file()


Schließt eine fileinfo Ressource

  • « finfo_buffer
  • finfo_file »
  • PHP Manual
  • Fileinfo Funktionen
  • Schließt eine fileinfo Ressource

finfo_close

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_close — Schließt eine fileinfo Ressource

Beschreibung

finfo_close ( resource $finfo ) : bool

Diese Funktion schließt die mit finfo_open() geöffnete Ressource.

Parameter-Liste

finfo

Die von finfo_open() zurückgegebene fileinfo-Ressource.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Gibt Informationen über eine Datei zurück

  • « finfo_close
  • finfo_open »
  • PHP Manual
  • Fileinfo Funktionen
  • Gibt Informationen über eine Datei zurück

finfo_file

finfo::file

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_file -- finfo::file — Gibt Informationen über eine Datei zurück

Beschreibung

Prozeduraler Stil

finfo_file ( resource $finfo , string $file_name , int $options = FILEINFO_NONE , resource $context = ? ) : string

Objektorientierter Stil

public finfo::file ( string $file_name , int $options = FILEINFO_NONE , resource $context = ? ) : string

Diese Funktion wird benutzt, um Informationen über eine Datei zu erhalten.

Parameter-Liste

finfo

Fileinfo Ressource von finfo_open() zurückgegeben.

file_name

Name einer zu prüfenden Datei.

options

Eine oder eine Disjunktion von mehreren Fileinfo Konstanten.

context

Für eine Beschreibung von context konsultieren Sie Stream Funktionen.

Rückgabewerte

Gibt eine textliche Beschreibung des Inhalts des filename Arguments oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 Ein finfo_file() Beispiel

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // gib den MIME-Typ nach Art der mimetype Extension zurück
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

text/html
image/gif
application/vnd.ms-excel

Siehe auch

  • finfo_buffer() - Alias von finfo_buffer()


Erstellt eine neue fileinfo Ressource

  • « finfo_file
  • finfo_set_flags »
  • PHP Manual
  • Fileinfo Funktionen
  • Erstellt eine neue fileinfo Ressource

finfo_open

finfo::__construct

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_open -- finfo::__construct — Erstellt eine neue fileinfo Ressource

Beschreibung

Prozeduraler Stil

finfo_open ( int $options = FILEINFO_NONE , string $magic_file = ? ) : resource

Objektorientierter Stil (constructor):

public finfo::__construct ( int $options = FILEINFO_NONE , string $magic_file = ? )

Diese Funktion öffnet eine magische Datenbank und gibt ihre Ressource zurück.

Parameter-Liste

options

Eine oder eine Trennung verschiedener Fileinfo- Konstanten

magic_file

Name einer magischen Datenbankdatei, gewöhnlich ungefähr so: /path/to/magic.mime. Falls nicht spezifiziert, wird die MAGIC-Umgebungsvariable verwendet. Falls die Umgebungsvariable nicht gesetzt ist, wird die PHP-eigene magische Datenbank benutzt.

Übergibt null oder eine leere Zeichenfolge gleichbedeutend mit dem Standardwert.

Rückgabewerte

Gibt bei Erfolg eine magische Datenbank-Ressource zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Warnung

Das Format der erwarteten magischen Datenbankressource änderte sich in PHP 5.3.11 und 5.4.1. Infolge dessen wurde die interne magische Datenbank aufgerüstet. Dieser Code ist am effektivsten, wenn eine externe Datenbank benutzt wird: Das Lesen aus einer älteren magischen Datenbank wird nun fehlschlagen. Auch einige Textdarstellungen der MIME-Typen wurden geändert. Für PHP würde zum Beispiel "PHP script, ASCII text" statt "PHP script text" zurück gegeben.

Hinweis:

Das Benutzen der eingebundenen magischen Datenbank wird generell empfohlen (magic_file und die MAGIC- Umgebungsvariable nicht gesetzt), sofern keine benutzerdefinierte magische Datenbank benötigt wird.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php
/*
 Setup für die Rückgabe von MIME-Typ und Encoding
 unter Verwendung der angegebenen Datenbank /usr/share/misc/magic
 */
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic");

/* Pfad zu einer Datei */
$filename = "/usr/local/something.txt";

/*
 Ermittelt den MIME-Typ der Datei, beispielsweise
 text/plain; charset=us-ascii
 */
echo $finfo->file($filename);

?>

Beispiel #2 Prozeduraler Stil

<?php
/*
 Setup für die Rückgabe von MIME-Typ und Encoding
 unter Verwendung der angegebenen Datenbank /usr/share/misc/magic
 */
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic");

if (!$finfo) {
    echo "Öffnen der fileinfo-Datenbank fehlgeschlagen";
    exit();
}

/* Pfad zu einer Datei */
$filename = "/usr/local/something.txt";

/*
 Ermittelt den MIME-Typ der Datei, beispielsweise
 text/plain; charset=us-ascii
 */
echo finfo_file($finfo, $filename);

/* Verbindung schließen */
finfo_close($finfo);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

text/plain; charset=us-ascii

Siehe auch

  • finfo_close() - Schließt eine fileinfo Ressource


Setzt libmagic Konfigurationsoptionen

  • « finfo_open
  • mime_content_type »
  • PHP Manual
  • Fileinfo Funktionen
  • Setzt libmagic Konfigurationsoptionen

finfo_set_flags

finfo::set_flags

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_set_flags -- finfo::set_flags — Setzt libmagic Konfigurationsoptionen

Beschreibung

Prozeduraler Stil

finfo_set_flags ( resource $finfo , int $options ) : bool

Objektorientierter Stil

public finfo::set_flags ( int $options ) : bool

Diese Funktion setzt verschiedene Fileinfo Optionen. Optionen können auch direkt in finfo_open() oder anderen Fileinfo-Funktionen gesetzt werden.

Parameter-Liste

finfo

Die von der Funktion finfo_open() zurückgegebene Fileinfo-Ressource.

options

Eine oder eine Verbindung von mehreren Fileinfo -Konstanten.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Ermittelt den MIME-Typ des Inhalts einer Datei

  • « finfo_set_flags
  • finfo »
  • PHP Manual
  • Fileinfo Funktionen
  • Ermittelt den MIME-Typ des Inhalts einer Datei

mime_content_type

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mime_content_type — Ermittelt den MIME-Typ des Inhalts einer Datei

Beschreibung

mime_content_type ( string $filename ) : string

Gibt den MIME-Inhaltstyp für eine Datei unter verwendung von Informationen von der magic.mime-Datei.

Parameter-Liste

filename

Pfad zur zu testenden Datei

Rückgabewerte

Gibt den Inhaltstxp im MIME-Format zurück, wie z.B. text/plain oder application/octet-stream. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Beispiele

Beispiel #1 mime_content_type() Example

<?php
echo mime_content_type('php.gif') . "\n";
echo mime_content_type('test.php');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

image/gif
text/plain

Siehe auch

  • finfo_file() - Alias von finfo_file()
  • finfo_buffer() - Alias von finfo_buffer()


The finfo class

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

Einführung

This class provides an object oriented interface into the fileinfo functions.

Klassenbeschreibung

finfo {
public __construct ( int $flags = FILEINFO_NONE , string $magic_database = "" )
public buffer ( string $string , int $flags = FILEINFO_NONE , resource|null $context = null ) : string|false
public file ( string $filename , int $flags = FILEINFO_NONE , resource|null $context = null ) : string|false
public set_flags ( int $flags ) : bool
}

Inhaltsverzeichnis

  • finfo::buffer — Alias von finfo_buffer()
  • finfo::__construct — Alias von finfo_open
  • finfo::file — Alias von finfo_file()
  • finfo::set_flags — Alias von finfo_set_flags()


Alias von finfo_buffer()

  • « finfo
  • finfo::__construct »
  • PHP Manual
  • finfo
  • Alias von finfo_buffer()

finfo::buffer

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::buffer — Alias von finfo_buffer()

Beschreibung

public finfo::buffer ( string $string , int $flags = FILEINFO_NONE , resource|null $context = null ) : string|false

Diese Funktion ist ein Alias für: finfo_buffer()


Alias von finfo_open

  • « finfo::buffer
  • finfo::file »
  • PHP Manual
  • finfo
  • Alias von finfo_open

finfo::__construct

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::__construct — Alias von finfo_open()

Beschreibung

public finfo::__construct ( int $flags = FILEINFO_NONE , string $magic_database = "" )

Diese Funktion ist ein Alias für: finfo_open()


Alias von finfo_file()

  • « finfo::__construct
  • finfo::set_flags »
  • PHP Manual
  • finfo
  • Alias von finfo_file()

finfo::file

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::file — Alias von finfo_file()

Beschreibung

public finfo::file ( string $filename , int $flags = FILEINFO_NONE , resource|null $context = null ) : string|false

Diese Funktion ist ein Alias für: finfo_file()


Alias von finfo_set_flags()

  • « finfo::file
  • Dateisystem »
  • PHP Manual
  • finfo
  • Alias von finfo_set_flags()

finfo::set_flags

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::set_flags — Alias von finfo_set_flags()

Beschreibung

public finfo::set_flags ( int $flags ) : bool

Diese Funktion ist ein Alias für: finfo_set_flags()


Dateisystem

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Dateisystem — Dateisystem-Funktionen
    • basename — Gibt letzten Namensteil einer 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 — Siehe unlink oder unset
    • dirname — Gibt den Pfad des übergeordneten Verzeichnisses zurück
    • disk_free_space — Gibt verfügbaren Platz auf Dateisystem oder Partition zurück
    • disk_total_space — Gibt die Gesamtgröße eines Dateisystemes oder einer Partition zurück
    • diskfreespace — Alias von disk_free_space
    • fclose — Schließt einen offenen Dateizeiger
    • feof — Prüft, ob ein Dateizeiger am Ende der Datei steht
    • fflush — Schreibt den Ausgabepuffer in eine Datei
    • fgetc — Liest das Zeichen, auf welches der Dateizeiger zeigt
    • fgetcsv — Liest eine Zeile von der Position des Dateizeigers und prüft diese auf Komma-Separierte-Werte (CSV)
    • fgets — Liest eine Zeile von der Position des Dateizeigers
    • fgetss — Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
    • file_exists — Prüft, ob eine Datei oder ein Verzeichnis existiert
    • file_get_contents — Liest die gesamte Datei in einen String
    • file_put_contents — Schreibt Daten in eine Datei
    • file — Liest eine komplette Datei in ein Array
    • fileatime — Liefert Datum und Uhrzeit des letzten Zugriffs auf eine Datei
    • filectime — Liefert Datum und Uhrzeit der letzten Änderung des Datei Inode
    • filegroup — Liefert die Gruppenzugehörigkeit einer Datei
    • fileinode — Liefert die Inode-Nummer einer Datei
    • filemtime — Liefert Datum und Uhrzeit der letzten Dateiänderung
    • fileowner — Liefert den Dateieigentümer
    • fileperms — Liefert die Zugriffsrechte einer Datei
    • filesize — Liefert die Größe einer Datei
    • filetype — Liefert den Typ einer Datei
    • flock — Portables Datei-Sperr-Verfahren (advisory locking)
    • fnmatch — Match filename against a pattern
    • fopen — Öffnet eine Datei oder URL
    • fpassthru — Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.
    • fputcsv — Format line as CSV and write to file pointer
    • fputs — Alias von fwrite
    • fread — Liest Binärdaten aus einer Datei
    • fscanf — Interpretiert den Input einer Datei entsprechend einem angegebenen Format
    • fseek — Positioniert den Dateizeiger
    • fstat — Sammelt Informationen über eine Datei mittels eines offenen Dateizeigers
    • ftell — Ermittelt die aktuelle Position des Dateizeigers
    • ftruncate — Kürzt eine Datei auf die angegebene Länge
    • fwrite — Binär-sicheres Dateischreiben
    • glob — Findet Dateinamen, die mit einem Muster übereinstimmen
    • is_dir — Prüft, ob der angegebene Dateiname ein Verzeichnis ist
    • is_executable — Prüft, ob der Dateiname ausführbar ist
    • is_file — Prüft, ob der Dateiname eine reguläre Datei ist
    • is_link — Prüft, ob der Dateiname ein symbolischer Link ist
    • is_readable — Prüft, ob eine Datei existiert und lesbar ist
    • is_uploaded_file — Prüft, ob die Datei mittels HTTP-POST upgeloadet wurde
    • is_writable — Prüft, ob in eine Datei geschrieben werden kann
    • is_writeable — Alias von is_writable
    • lchgrp — Changes group ownership of symlink
    • lchown — Changes user ownership of symlink
    • link — Erzeugt einen harten Link
    • linkinfo — Liefert Informationen über einen Link
    • lstat — Sammelt Informationen über eine Datei oder einen symbolischen Link
    • mkdir — Erstellt ein Verzeichnis
    • move_uploaded_file — Verschiebt eine hochgeladene Datei an einen neuen Ort
    • parse_ini_file — Parst eine Konfigurationsdatei
    • parse_ini_string — Analysiert einen Konfigurations-String
    • pathinfo — Liefert Informationen über einen Dateipfad
    • pclose — Schließt einen Prozess-Dateizeiger
    • popen — Öffnet einen Prozesszeiger
    • readfile — Gibt eine Datei aus
    • readlink — Liefert das Ziel eines symbolischen Links
    • realpath_cache_get — Get realpath cache entries
    • realpath_cache_size — Get realpath cache size
    • realpath — Löst einen Pfad in einen absoluten und eindeutigen auf
    • rename — Benennt eine Datei oder ein Verzeichnis um
    • rewind — Setzt die Position eines Dateizeigers auf den Anfang
    • rmdir — Löscht ein Verzeichnis
    • set_file_buffer — Alias von stream_set_write_buffer
    • stat — Sammelt Informationen über eine Datei
    • symlink — Erzeugt einen symbolischen Link
    • tempnam — Erzeugt eine Datei mit eindeutigem Dateinamen
    • tmpfile — Erstellt eine temporäre Datei
    • touch — Setzt die Zugriffs- und Modifikationszeit einer Datei
    • umask — Changes the current umask
    • unlink — Löscht eine Datei


Einführung

Diese Extension benötigt keine externen Bibliotheken. Wenn Sie PHP allerdings mit Large File System (LFS) Unterstützung kompilieren wollen, müssen Sie zusätzlich die folgende Compilerflags angeben: -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Dateisystem- und Stream-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
allow_url_fopen | "1" | PHP_INI_SYSTEM |
allow_url_include | "0" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.2.0. Missbilligt von PHP 7.4.0 an.
user_agent | NULL | PHP_INI_ALL |
default_socket_timeout | "60" | PHP_INI_ALL | V
from | "" | PHP_INI_ALL |
auto_detect_line_endings | "0" | PHP_INI_ALL |
sys_temp_dir | "" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.5.0.

Hier eine kurze Erklärung der Konfigurationsoptionen:

allow_url_fopen boolean

Diese Option aktiviert URL-unterstützende fopen()-Wrapper, die es ermöglichen, auf URL-Objekte wie normale Dateien zuzugreifen. Standardwrapper werden für den Zugriff auf entfernte Dateien über das FTP- und HTTP-Protokoll mitgeliefert, einige Extensions wie zlib registrieren eventuell weitere Wrapper.

allow_url_include boolean

Diese Option ermöglicht die Verwendung von URL-Wrappern mit folgenden Funktionen: include, include_once, require, require_once.

Hinweis:

Diese Einstellung funktioniert nur, wenn auch allow_url_fopen aktiviert ist.

user_agent string

Definiert die von PHP verwendete HTTP-Useragent-Kennung.

default_socket_timeout integer

Standardzeitbeschränkung für Socket-basierende Streams in Sekunden. Ein negativer Wert bedeutet eine unendliche Zeitbeschränkung.

from string

Bei Nutzung der FTP- bzw. HTTP-Wrapper: E-Mail-Adresse für nicht-authentifizierte FTP-Verbindungen bzw. From-Header in HTTP-Verbindungen.

auto_detect_line_endings boolean

Wenn diese Option aktiviert ist, prüft PHP die von den Funktionen fgets() und file() gelesenen Daten, um festzustellen, ob diese Unix-, MS-DOS- oder Macintosh-Zeilenenden verwenden.

Dies ermöglicht es PHP, mit Macintosh-Systemen zusammenzuarbeiten, ist aber standardmäßig nicht aktiviert, da es zu einem geringfügigen Performanceverlust beim Einlesen der ersten Zeile führt. Weiterhin würden Anwender, die Carriage-Return-Zeichen unter Unix als Feldtrenner benutzen, ein nicht abwärtskompatibles Verhalten feststellen.

sys_temp_dir string


Ressource-Typen

Das Dateisystem nutzt Streams als Ressourcentyp. Streams sind in einem eigenen Kapitel dokumentiert: Streams.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SEEK_SET (integer)
SEEK_CUR (integer)
SEEK_END (integer)
LOCK_SH (integer)
LOCK_EX (integer)
LOCK_UN (integer)
LOCK_NB (integer)
GLOB_BRACE (integer)
GLOB_ONLYDIR (integer)
GLOB_MARK (integer)
GLOB_NOSORT (integer)
GLOB_NOCHECK (integer)
GLOB_NOESCAPE (integer)
GLOB_AVAILABLE_FLAGS (integer)
PATHINFO_DIRNAME (integer)
PATHINFO_BASENAME (integer)
PATHINFO_EXTENSION (integer)
PATHINFO_FILENAME (integer)
Seit PHP 5.2.0.
FILE_USE_INCLUDE_PATH (integer)
Suche den Dateinamen filename im include_path
FILE_NO_DEFAULT_CONTEXT (integer)
FILE_APPEND (integer)
An vorhandene Datei anfügen.
FILE_IGNORE_NEW_LINES (integer)
EOL-Zeichen entfernen.
FILE_SKIP_EMPTY_LINES (integer)
Leerzeilen überspringen.
FILE_BINARY (integer)

Binärmodus (seit PHP 5.2.7).

Hinweis:

Diese Konstante hat keine Auswirkung. Sie existiert nur zur Vorwärtskompatibilität.

FILE_TEXT (integer)

Binärmodus (seit PHP 5.2.7).

Hinweis:

Diese Konstante hat keine Auswirkung. Sie existiert nur zur Vorwärtskompatibilität.

INI_SCANNER_NORMAL (integer)
Normaler INI-Scanner-Modus (seit PHP 5.3).
INI_SCANNER_RAW (integer)
Unverarbeiteter INI-Scanner-Modus (seit PHP 5.3).
INI_SCANNER_TYPED (integer)
Typisierter INI-Scanner-Modus (seit PHP 5.6.1).
FNM_NOESCAPE (integer)
Deaktivieren des Escapens des Backslash-Zeichens.
FNM_PATHNAME (integer)
Ein Slash in einer Zeichenkette matcht nur den Slash im übergebenen Muster.
FNM_PERIOD (integer)
Ein führender Punkt in einer Zeichenkette muss von einem Punkt im übergebenen Muster gematcht werden.
FNM_CASEFOLD (integer)
Match, der unabhängig von der Groß-/Kleinschreibung ist. Teil der GNU-Extension.


Dateisystem-Funktionen

Siehe auch

Verwandte Funktionen finden Sie in den Abschnitten Verzeichnis-Funktionen und Funktionen zur Programmausführung.

Eine Liste mit Erklärungen der verschiedenen URL-Wrapper, welche Sie auch als entfernte Dateien nutzen können, finden Sie unter Unterstützte Protokolle und Wrapper.

Inhaltsverzeichnis

  • basename — Gibt letzten Namensteil einer 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 — Siehe unlink oder unset
  • dirname — Gibt den Pfad des übergeordneten Verzeichnisses zurück
  • disk_free_space — Gibt verfügbaren Platz auf Dateisystem oder Partition zurück
  • disk_total_space — Gibt die Gesamtgröße eines Dateisystemes oder einer Partition zurück
  • diskfreespace — Alias von disk_free_space
  • fclose — Schließt einen offenen Dateizeiger
  • feof — Prüft, ob ein Dateizeiger am Ende der Datei steht
  • fflush — Schreibt den Ausgabepuffer in eine Datei
  • fgetc — Liest das Zeichen, auf welches der Dateizeiger zeigt
  • fgetcsv — Liest eine Zeile von der Position des Dateizeigers und prüft diese auf Komma-Separierte-Werte (CSV)
  • fgets — Liest eine Zeile von der Position des Dateizeigers
  • fgetss — Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
  • file_exists — Prüft, ob eine Datei oder ein Verzeichnis existiert
  • file_get_contents — Liest die gesamte Datei in einen String
  • file_put_contents — Schreibt Daten in eine Datei
  • file — Liest eine komplette Datei in ein Array
  • fileatime — Liefert Datum und Uhrzeit des letzten Zugriffs auf eine Datei
  • filectime — Liefert Datum und Uhrzeit der letzten Änderung des Datei Inode
  • filegroup — Liefert die Gruppenzugehörigkeit einer Datei
  • fileinode — Liefert die Inode-Nummer einer Datei
  • filemtime — Liefert Datum und Uhrzeit der letzten Dateiänderung
  • fileowner — Liefert den Dateieigentümer
  • fileperms — Liefert die Zugriffsrechte einer Datei
  • filesize — Liefert die Größe einer Datei
  • filetype — Liefert den Typ einer Datei
  • flock — Portables Datei-Sperr-Verfahren (advisory locking)
  • fnmatch — Match filename against a pattern
  • fopen — Öffnet eine Datei oder URL
  • fpassthru — Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.
  • fputcsv — Format line as CSV and write to file pointer
  • fputs — Alias von fwrite
  • fread — Liest Binärdaten aus einer Datei
  • fscanf — Interpretiert den Input einer Datei entsprechend einem angegebenen Format
  • fseek — Positioniert den Dateizeiger
  • fstat — Sammelt Informationen über eine Datei mittels eines offenen Dateizeigers
  • ftell — Ermittelt die aktuelle Position des Dateizeigers
  • ftruncate — Kürzt eine Datei auf die angegebene Länge
  • fwrite — Binär-sicheres Dateischreiben
  • glob — Findet Dateinamen, die mit einem Muster übereinstimmen
  • is_dir — Prüft, ob der angegebene Dateiname ein Verzeichnis ist
  • is_executable — Prüft, ob der Dateiname ausführbar ist
  • is_file — Prüft, ob der Dateiname eine reguläre Datei ist
  • is_link — Prüft, ob der Dateiname ein symbolischer Link ist
  • is_readable — Prüft, ob eine Datei existiert und lesbar ist
  • is_uploaded_file — Prüft, ob die Datei mittels HTTP-POST upgeloadet wurde
  • is_writable — Prüft, ob in eine Datei geschrieben werden kann
  • is_writeable — Alias von is_writable
  • lchgrp — Changes group ownership of symlink
  • lchown — Changes user ownership of symlink
  • link — Erzeugt einen harten Link
  • linkinfo — Liefert Informationen über einen Link
  • lstat — Sammelt Informationen über eine Datei oder einen symbolischen Link
  • mkdir — Erstellt ein Verzeichnis
  • move_uploaded_file — Verschiebt eine hochgeladene Datei an einen neuen Ort
  • parse_ini_file — Parst eine Konfigurationsdatei
  • parse_ini_string — Analysiert einen Konfigurations-String
  • pathinfo — Liefert Informationen über einen Dateipfad
  • pclose — Schließt einen Prozess-Dateizeiger
  • popen — Öffnet einen Prozesszeiger
  • readfile — Gibt eine Datei aus
  • readlink — Liefert das Ziel eines symbolischen Links
  • realpath_cache_get — Get realpath cache entries
  • realpath_cache_size — Get realpath cache size
  • realpath — Löst einen Pfad in einen absoluten und eindeutigen auf
  • rename — Benennt eine Datei oder ein Verzeichnis um
  • rewind — Setzt die Position eines Dateizeigers auf den Anfang
  • rmdir — Löscht ein Verzeichnis
  • set_file_buffer — Alias von stream_set_write_buffer
  • stat — Sammelt Informationen über eine Datei
  • symlink — Erzeugt einen symbolischen Link
  • tempnam — Erzeugt eine Datei mit eindeutigem Dateinamen
  • tmpfile — Erstellt eine temporäre Datei
  • touch — Setzt die Zugriffs- und Modifikationszeit einer Datei
  • umask — Changes the current umask
  • unlink — Löscht eine Datei


Gibt letzten Namensteil einer Pfadangabe zurück

  • « Dateisystem
  • chgrp »
  • PHP Manual
  • Dateisystem
  • Gibt letzten Namensteil einer Pfadangabe zurück

basename

(PHP 4, PHP 5, PHP 7, PHP 8)

basename — Gibt letzten Namensteil einer Pfadangabe zurück

Beschreibung

basename ( string $path , string $suffix = ? ) : string

Aus einer übergebenen Zeichenkette, die den Pfad zu einer Datei oder einem Verzeichnis enthält, gibt diese Funktion den letzten Namensteil zurück.

Hinweis:

basename() arbeitet nur mit der Eingabe Zeichenkette und beachtet nicht das eigentliche Dateisystem oder Pfadbestandteile wie etwa "..".

Achtung

basename() beachtet die Spracheinstellungen (locale); soll sie daher die korrekte Namensbasis in Pfaden mit einem Mehrbytezeichensatz erkennen, muss die passende Spracheinstellung (locale) mit der setlocale() Funktion gesetzt werden.

Parameter-Liste

path

Ein Pfad.

Unter Windows wird sowohl der Slash (/) als auch der Backslash (\) als Trennzeichen bei Pfadangaben benutzt. Unter anderen Betriebssystemen hingegen nur der Slash (/).

suffix

Wenn der Namensteil mit suffix endet, wird dieser ebenfalls abgetrennt.

Rückgabewerte

Gibt den abschließenden Namen des übergebenen path zurück.

Beispiele

Beispiel #1 basename() Beispiel

<?php
echo "1) ".basename("/etc/sudoers.d", ".d").PHP_EOL;
echo "2) ".basename("/etc/sudoers.d").PHP_EOL;
echo "3) ".basename("/etc/passwd").PHP_EOL;
echo "4) ".basename("/etc/").PHP_EOL;
echo "5) ".basename(".").PHP_EOL;
echo "6) ".basename("/");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1) sudoers
2) sudoers.d
3) passwd
4) etc
5) .
6)

Siehe auch

  • dirname() - Gibt den Pfad des übergeordneten Verzeichnisses zurück
  • pathinfo() - Liefert Informationen über einen Dateipfad


Wechselt die Gruppenzugehörigkeit einer Datei

  • « basename
  • chmod »
  • PHP Manual
  • Dateisystem
  • Wechselt die Gruppenzugehörigkeit einer Datei

chgrp

(PHP 4, PHP 5, PHP 7, PHP 8)

chgrp — Wechselt die Gruppenzugehörigkeit einer Datei

Beschreibung

chgrp ( string $filename , mixed $group ) : bool

Versucht, die Gruppenzugehörigkeit der Datei filename zu group zu ändern.

Nur der Superuser kann die Gruppe einer Date beliebig ändern; andere Benutzer können die Gruppenzugehörigkeit einer Datei in jede Gruppe ändern, der sie angehören.

Parameter-Liste

filename

Pfad zu einer Datei.

group

Ein Gruppenname oder eine Gruppennummer.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Gruppe einer Datei ändern

<?php
$filename = 'shared_file.txt';
$format = "%s's Group ID @ %s: %d\n";
printf($format, $filename, date('r'), filegroup($filename));
chgrp($filename, 8);
clearstatcache(); // do not cache filegroup() results
printf($format, $filename, date('r'), filegroup($filename));
?>

Anmerkungen

Hinweis: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.

Hinweis: Unter Windows schlägt diese Funktion ohne stillschweigend fehl, wenn sie auf eine reguläre Datei angewendet wird.

Siehe auch

  • chown() - Ändert den Eigentümer einer Datei
  • chmod() - Ändert die Zugriffsrechte einer Datei


Ändert die Zugriffsrechte einer Datei

  • « chgrp
  • chown »
  • PHP Manual
  • Dateisystem
  • Ändert die Zugriffsrechte einer Datei

chmod

(PHP 4, PHP 5, PHP 7, PHP 8)

chmod — Ändert die Zugriffsrechte einer Datei

Beschreibung

chmod ( string $filename , int $mode ) : bool

Versucht die Zugriffsrechte der angegebenen Datei zu denen in mode definierten zu ändern.

Parameter-Liste

filename

Pfad zu der Datei.

mode

Beachten Sie, dass mode nicht automatisch für einen Oktalwert gehalten wird, so dass Sie, um sicher zu gehen, dass die Operation wie erwartet verläuft, mode mit dem Prefix Null (0) versehen sollten. Zeichenketten wie etwa "g+w" funktionieren nicht korrekt.

<?php
chmod("/einverzeichnis/einedatei", 755);   // decimal; probably incorrect
chmod("/einverzeichnis/einedatei", "u+rwx,go+rx"); // string; incorrect
chmod("/einverzeichnis/einedatei", 0755);  // octal; correct value of mode
?>

Der mode Parameter besteht aus drei Oktal Ziffer Komponenten, die Zugriffsberechtigungen für den Besitzer, für die Gruppe in der der Zugreifende ist und für alle anderen in dieser Reihenfolge festlegen. Eine Komponete kann durch Addition der benötigten Rechte für das jeweilige Ziel berechnet werden. Ziffer 1 bedeutet, dass man Ausführrechte gewährt, Ziffer 2 bedeuet, dass die Datei beschreibbar ist, Ziffer 4 bedeute, dass die Datei lesbar ist. Addieren sie diese Zahlen, um die benötigten Rechte anzugeben. Sie können mehr über diese Modi in unixoiden Betriebssystemen mit 'man 1 chmod' und 'man 2 chmod' lesen.

<?php
// Lese und Schreibrechte für den Besitzer, keine für alle anderen
chmod("/somedir/somefile", 0600);

// Lese und Schreibrechte für den Besitzer, Leserechte für alle anderen
chmod("/somedir/somefile", 0644);

// Alle Rechte für den Besitzer, Lese- und Ausführrechte für andere
chmod("/somedir/somefile", 0755);

// Alle Rechte für den Besitzer, Lese- und Ausführrechte für die Gruppe
chmod("/somedir/somefile", 0750);
?>

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

Der aktuelle Nutzer ist der Nutzer mit dem PHP läuft. Dies ist möglicherweise nicht der gleiche Nutzer wie der, den sie für den Shell oder FTP Zugang nutzen. Auf den meisten Betriebssystemen können die Zugriffsrechte nur durch den Besitzer der Datei geändert werden.

Hinweis: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.

Siehe auch

  • chown() - Ändert den Eigentümer einer Datei
  • chgrp() - Wechselt die Gruppenzugehörigkeit einer Datei
  • fileperms() - Liefert die Zugriffsrechte einer Datei
  • stat() - Sammelt Informationen über eine Datei


Ändert den Eigentümer einer Datei

  • « chmod
  • clearstatcache »
  • PHP Manual
  • Dateisystem
  • Ändert den Eigentümer einer Datei

chown

(PHP 4, PHP 5, PHP 7, PHP 8)

chown — Ändert den Eigentümer einer Datei

Beschreibung

chown ( string $filename , mixed $user ) : bool

Ändert den Eigentümer der Datei filename in Benutzer user. Nur der Superuser kann den Eigentümer einer Datei ändern.

Parameter-Liste

filename

Pfad zur Zieldatei.

user

Ein Benutzername oder eine numerische Benutzer-ID.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Einfache chown()-Benutzung

<?php

// Datei- und Benutzernamen setzen
$file_name= "foo.php";
$path = "/home/sites/php.net/public_html/sandbox/" . $file_name ;
$user_name = "root";

// Benutzer setzen
chown($path, $user_name);

// Ergebnis prüfen
$stat = stat($path);
print_r(posix_getpwuid($stat['uid']));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [name] => root
    [passwd] => x
    [uid] => 0
    [gid] => 0
    [gecos] => root
    [dir] => /root
    [shell] => /bin/bash
)

Anmerkungen

Hinweis: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.

Hinweis: Unter Windows schlägt diese Funktion stillschweigend fehl, wenn sie auf eine reguläre Datei angewendet wird.

Siehe auch

  • chmod() - Ändert die Zugriffsrechte einer Datei
  • chgrp() - Wechselt die Gruppenzugehörigkeit einer Datei


Löscht den Status Cache

  • « chown
  • copy »
  • PHP Manual
  • Dateisystem
  • Löscht den Status Cache

clearstatcache

(PHP 4, PHP 5, PHP 7, PHP 8)

clearstatcache — Löscht den Status Cache

Beschreibung

clearstatcache ( bool $clear_realpath_cache = false , string $filename = ? ) : void

Wenn Sie stat(), lstat() oder eine andere in der nachstehenden Liste der betroffenen Funktionen verwenden, speichert (cached) PHP die von diesen Funktionen zurückgeggebenen Informationen temporär, um eine bessere Performance zu bieten. In manchen Fällen könnten Sie jedoch wollen, dass diese zwischengespeicherten Informationen gelöscht werden. Wird z.B. die selbe Datei innerhalb eines Skriptes mehrmals geprüft und ist es wahrscheinlich, dass diese Datei während der Ausführung des Skriptes gelöscht oder verändert wird, könnten Sie sich dafür entscheiden, den Status Cache zu löschen. In solchen Fällen empfiehlt es sich, die von PHP zwischengespeicherten Informationen über eine Datei mittels clearstatcache() zu löschen.

Beachten sie auch, dass PHP Information über nicht existente Dateien nicht zwischenspeichert. Rufen sie daher file_exists() für eine Datei auf, die nicht existiert, gibt sie false zurück, bis sie die Datei erzeugen. Erzeugen sie die Datei, wird sie true zurückgeben, auch wenn sie danach die Datei löschen. unlink() leert den Zwischenspeicher jedoch automatisch.

Hinweis:

Diese Funktion speichert Informationen über bestimmte Dateinamen, weshalb Sie clearstatcache() nur aufrufen müssen, wenn Sie mehrere Operationen an dem selben Dateinamen durchführen, und die Informationen über genau diese Datei nicht gespeichert werden sollen.

Betroffene Funktionen sind stat(),
lstat(),
file_exists(),
is_writable(),
is_readable(),
is_executable(),
is_file(),
is_dir(),
is_link(),
filectime(),
fileatime(),
filemtime(),
fileinode(),
filegroup(),
fileowner(),
filesize(),
filetype() und
fileperms().

Parameter-Liste

clear_realpath_cache

Ob der realpath Zwischenspeicher geleert werden soll.

filename

Leere den realpath und den Stat Zwischenspeicher nur für einen bestimmten Dateinamen; wird nur genutzt, wenn clear_realpath_cache true ist.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
5.3.0 | Added optional clear_realpath_cache and filename parameters.

Beispiele

Beispiel #1 clearstatcache() Beispiel

<?php
$file = 'output_log.txt';

function get_owner($file)
{
    $stat = stat($file);
    $user = posix_getpwuid($stat['uid']);
    return $user['name'];
}

$format = "UID @ %s: %s\n";

printf($format, date('r'), get_owner($file));

chown($file, 'ross');
printf($format, date('r'), get_owner($file));

clearstatcache();
printf($format, date('r'), get_owner($file));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: ross


Kopiert eine Datei

  • « clearstatcache
  • delete »
  • PHP Manual
  • Dateisystem
  • Kopiert eine Datei

copy

(PHP 4, PHP 5, PHP 7, PHP 8)

copy — Kopiert eine Datei

Beschreibung

copy ( string $source , string $dest , resource $context = ? ) : bool

Kopiert Datei source nach dest.

Wenn sie eine Datei verschieben möchten, nutzen sie die rename() Funktion.

Parameter-Liste

source

Pfad zu der Quelldatei.

dest

Der Zielpfad. Wenn dest ein URL ist, kann der Kopiervorgang fehlschlagen, wenn der Wrapper nicht das Überschreiben existierender Dateien unterstützt.

Warnung

Wenn die Zieldatei schon existiert, wird sie überschrieben.

context

Eine gültige Context Ressource, die mit stream_context_create() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.3.4 | Der context Parameter wurde geändert, so dass er nun auch wirkt. Zuvor wurde jeglicher context ignoriert.
5.3.0 | Context Unterstützung wurde hinzugefügt.

Beispiele

Beispiel #1 copy() Beispiel

<?php
$file = 'example.txt';
$newfile = 'example.txt.bak';

if (!copy($file, $newfile)) {
    echo "copy $file schlug fehl...\n";
}
?>

Siehe auch

  • move_uploaded_file() - Verschiebt eine hochgeladene Datei an einen neuen Ort
  • rename() - Benennt eine Datei oder ein Verzeichnis um
  • Der Abschnitt des Handbuches über den Umgang mit Datei Uploads.


Siehe unlink oder unset

  • « copy
  • dirname »
  • PHP Manual
  • Dateisystem
  • Siehe unlink oder unset

delete

delete — Siehe unlink() oder unset()

Beschreibung

Es gibt kein delete Schlüsselwort in der PHP Sprache. Um eine Datei zu löschen, kann unlink() verwendet werden. Um eine Variable im lokalen Geltungsbereich zu löschen, kann unset() verwendet werden.

Siehe auch

  • unlink() - Löscht eine Datei
  • unset() - Löschen einer angegebenen Variablen


Gibt den Pfad des übergeordneten Verzeichnisses zurück

  • « delete
  • disk_free_space »
  • PHP Manual
  • Dateisystem
  • Gibt den Pfad des übergeordneten Verzeichnisses zurück

dirname

(PHP 4, PHP 5, PHP 7, PHP 8)

dirname — Gibt den Pfad des übergeordneten Verzeichnisses zurück

Beschreibung

dirname ( string $path , int $levels = 1 ) : string

Aus einer übergebenen Zeichenkette, die den Pfad zu einer Datei oder einem Verzeichnis enthält, gibt diese Funktion den Pfad des Verzeichnisses zurück, welches levels Ebenen über dem angegebenen liegt.

Hinweis:

dirname() arbeitet nur mit der Eingabe Zeichenkette und beachtet nicht das eigentliche Dateisystem oder Pfadbestandteile wie etwa "..".

Achtung

dirname() beachtet die Spracheinstellungen (locale); soll sie daher die korrekte Namensbasis in Pfaden mit einem Mehrbytezeichensatz erkennen, muss die passende Spracheinstellung (locale) mit der setlocale() Funktion gesetzt werden.

Parameter-Liste

path

Ein Pfad.

Unter Windows wird sowohl der Slash (/) als auch der Backslash (\) als Trennzeichen bei Pfadangaben benutzt. Unter anderen Betriebssystemen hingegen nur der Slash (/).

levels

Die Anzahl an übergeordneten Ebenen

Dies muss eine Zahl größer 0 sein.

Rückgabewerte

Gibt den Pfad eines übergeordneten Verzeichnisses zurück. Sind keine Pfadtrenner in path, wird ein Punkt ('.') zurückgegeben, das aktuelle Verzeichnis kennzeichnend. Ansonsten ist die zurückgegebene Zeichenkette der path mit dem abschließenden /component entfernt.

Changelog

Version | Beschreibung
7.0.0 | Der optionale Parameter levels wurde hinzugefügt.

Beispiele

Beispiel #1 dirname() Beispiel

<?php
echo dirname("/etc/passwd") . PHP_EOL;
echo dirname("/etc/") . PHP_EOL;
echo dirname(".") . PHP_EOL;
echo dirname("C:\\") . PHP_EOL;
echo dirname("/usr/local/lib", 2);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/etc
/ (or \ on Windows)
.
C:\
/usr

Siehe auch

  • basename() - Gibt letzten Namensteil einer Pfadangabe zurück
  • pathinfo() - Liefert Informationen über einen Dateipfad
  • realpath() - Löst einen Pfad in einen absoluten und eindeutigen auf


Gibt verfügbaren Platz auf Dateisystem oder Partition zurück

  • « dirname
  • disk_total_space »
  • PHP Manual
  • Dateisystem
  • Gibt verfügbaren Platz auf Dateisystem oder Partition zurück

disk_free_space

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

disk_free_space — Gibt verfügbaren Platz auf Dateisystem oder Partition zurück

Beschreibung

disk_free_space ( string $directory ) : float

Wird eine Zeichenkette, die einen Verzeichnispfad enthält übergeben, gibt diese Funktion die Anzahl verfügbarer (freier) Bytes auf dem entsprechenden Dateisystem oder der Platten-Partition zurück.

Parameter-Liste

directory

Ein Verzeichnis des Dateisystemes oder der Platten-Partition.

Hinweis:

Wird ein Dateiname anstatt eines Verzeichnisses übergeben, ist das Verhalten der Funktion unspezifiziert und kann sich zwischen Betriebssystemen und PHP Versionen unterscheiden.

Rückgabewerte

Gibt der die Anzahl der freien Bytes als Gleitkommazahl (float) zurück. Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 disk_free_space() Beispiel

<?php
// $df enthält die Anzahl freier Bytes auf "/"
$df = disk_free_space("/");

// Unter Windows:
$df_c = disk_free_space("C:");
$df_d = disk_free_space("D:");
?>

Anmerkungen

Hinweis: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.

Siehe auch

  • disk_total_space() - Gibt die Gesamtgröße eines Dateisystemes oder einer Partition zurück


Gibt die Gesamtgröße eines Dateisystemes oder einer Partition zurück

  • « disk_free_space
  • diskfreespace »
  • PHP Manual
  • Dateisystem
  • Gibt die Gesamtgröße eines Dateisystemes oder einer Partition zurück

disk_total_space

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

disk_total_space — Gibt die Gesamtgröße eines Dateisystemes oder einer Partition zurück

Beschreibung

disk_total_space ( string $directory ) : float

Wird eine Zeichenkette, die einen Verzeichnispfad enthält übergeben, wird diese Funktion, die Gesamtanzahl Bytes auf dem entsprechenden Dateisystem oder der Platten-Partition zurückgeben.

Parameter-Liste

directory

Ein Verzeichnis des Dateisystemes oder der Platten-Partition.

Rückgabewerte

Gibt die Gesamtanzahl Bytes als Gleitkommazahl (float) zurück. Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 disk_total_space() Beispiel

<?php
// $ds enthält die Gesamtanzahl verfügbarer Bytes auf "/"
$ds = disk_total_space("/");

// On Windows:
$ds = disk_total_space("C:");
$ds = disk_total_space("D:");
?>

Anmerkungen

Hinweis: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.

Siehe auch

  • disk_free_space() - Gibt verfügbaren Platz auf Dateisystem oder Partition zurück


Alias von disk_free_space

  • « disk_total_space
  • fclose »
  • PHP Manual
  • Dateisystem
  • Alias von disk_free_space

diskfreespace

(PHP 4, PHP 5, PHP 7, PHP 8)

diskfreespace — Alias von disk_free_space()

Beschreibung

Diese Funktion ist ein Alias für: disk_free_space().


Schließt einen offenen Dateizeiger

  • « diskfreespace
  • feof »
  • PHP Manual
  • Dateisystem
  • Schließt einen offenen Dateizeiger

fclose

(PHP 4, PHP 5, PHP 7, PHP 8)

fclose — Schließt einen offenen Dateizeiger

Beschreibung

fclose ( resource $handle ) : bool

Die Datei, auf die handle zeigt, wird geschlossen.

Parameter-Liste

handle

Der Datei-Zeiger muss gültig sein, d.h. die Datei, auf die gezeigt wird muss zuvor mit fopen() oder fsockopen() geöffnet worden sein.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ein einfaches fclose() Beispiel

<?php

$handle = fopen('somefile.txt', 'r');

fclose($handle);

?>

Siehe auch

  • fopen() - Öffnet eine Datei oder URL
  • fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her


Prüft, ob ein Dateizeiger am Ende der Datei steht

  • « fclose
  • fflush »
  • PHP Manual
  • Dateisystem
  • Prüft, ob ein Dateizeiger am Ende der Datei steht

feof

(PHP 4, PHP 5, PHP 7, PHP 8)

feof — Prüft, ob ein Dateizeiger am Ende der Datei steht

Beschreibung

feof ( resource $handle ) : bool

Prüft, ob ein Dateizeiger am Ende der Datei steht.

Parameter-Liste

handle

Der Zeiger auf eine Datei muss gültig sein und auf eine Datei verweisen, die vorher erfolgreich mit fopen() oder fsockopen() geöffnet (und nicht bereits von fclose() geschlossen) wurde.

Rückgabewerte

Gibt true zurück, wenn der Dateizeiger an EOF (Dateiende) steht oder ein Fehler auftritt (inklusive Socket Zeitüberschreitung); ansonsten wird false zurückgegeben.

Anmerkungen

Warnung

Wenn eine mit fsockopen() geöffnete Verbindung nicht durch den Server geschlossen wurde, wird feof() hängen. Um dies zu umgehen, beachten sie folgendes Beispiel:

Beispiel #1 Zeitüberschreitungen mit feof() abhandeln

<?php
function safe_feof($fp, &$start = NULL) {
 $start = microtime(true);

 return feof($fp);
}

/* Annahme: $fp wurde zuvor mit fsockopen() geöffnet */

$start = NULL;
$timeout = ini_get('default_socket_timeout');

while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
 /* Abhandeln */
}
?>

Warnung

Wenn der übergebene Dateizeiger nicht gültig ist, können sie eine Endlosschleife erhalten, denn feof() gibt nicht true zurück.

Beispiel #2 feof() Beispiel mit einem ungültigen Dateizeiger

<?php
// Wenn Datei nicht gelsen werden kann oder nicht existiert fopen gibt FALSE zurück
$file = @fopen("no_such_file", "r");

// FALSE von fopen wird eine Warnung  auslösen und hier in einer
// Endlosschleife resultieren
while (!feof($file)) {
}

fclose($file);
?>


Schreibt den Ausgabepuffer in eine Datei

  • « feof
  • fgetc »
  • PHP Manual
  • Dateisystem
  • Schreibt den Ausgabepuffer in eine Datei

fflush

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

fflush — Schreibt den Ausgabepuffer in eine Datei

Beschreibung

fflush ( resource $handle ) : bool

Diese Funktion erzwingt das Schreiben des gesamten Ausgabepuffers in die von dem Dateizeiger handle angegebene Datei.

Parameter-Liste

handle

Der Zeiger auf eine Datei muss gültig sein und auf eine Datei verweisen, die vorher erfolgreich mit fopen() oder fsockopen() geöffnet (und nicht bereits von fclose() geschlossen) wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 File write example using fflush()

<?php
$filename = 'bar.txt';

$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
?>

Siehe auch

  • clearstatcache() - Löscht den Status Cache
  • fwrite() - Binär-sicheres Dateischreiben


Liest das Zeichen, auf welches der Dateizeiger zeigt

  • « fflush
  • fgetcsv »
  • PHP Manual
  • Dateisystem
  • Liest das Zeichen, auf welches der Dateizeiger zeigt

fgetc

(PHP 4, PHP 5, PHP 7, PHP 8)

fgetc — Liest das Zeichen, auf welches der Dateizeiger zeigt

Beschreibung

fgetc ( resource $handle ) : string

Liest ein Zeichen von dem übergebenen Dateizeiger.

Parameter-Liste

handle

Der Zeiger auf eine Datei muss gültig sein und auf eine Datei verweisen, die vorher erfolgreich mit fopen() oder fsockopen() geöffnet (und nicht bereits von fclose() geschlossen) wurde.

Rückgabewerte

Gibt einen String zurück, welcher ein einzelnes Zeichen von der aktuellen Position des Dateizeigers handle enthält. Gibt false zurück, wenn der Dateizeiger am Ende der Datei steht (EOF).

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 Ein fgetc() Beispiel

<?php
$fp = fopen('somefile.txt', 'r');
if (!$fp) {
    echo 'Konnte Datei somefile.txt nicht öffnen';
}
while (false !== ($char = fgetc($fp))) {
    echo "$char\n";
}
?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • fread() - Liest Binärdaten aus einer Datei
  • fopen() - Öffnet eine Datei oder URL
  • popen() - Öffnet einen Prozesszeiger
  • fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
  • fgets() - Liest eine Zeile von der Position des Dateizeigers


Liest eine Zeile von der Position des Dateizeigers und prüft diese auf Komma-Separierte-Werte (CSV)

  • « fgetc
  • fgets »
  • PHP Manual
  • Dateisystem
  • Liest eine Zeile von der Position des Dateizeigers und prüft diese auf Komma-Separierte-Werte (CSV)

fgetcsv

(PHP 4, PHP 5, PHP 7, PHP 8)

fgetcsv — Liest eine Zeile von der Position des Dateizeigers und prüft diese auf Komma-Separierte-Werte (CSV)

Beschreibung

fgetcsv ( resource $handle , int $length = 0 , string $delimiter = "," , string $enclosure = '"' , string $escape = "\\" ) : array

Die Funktion fgetcsv() ist ähnlich der Funktion fgets(), nur dass fgetcsv() die eingelesene Zeile auf Felder im CSV Format (kommaseparierte Felder) hin überprüft, und ein Array mit den gelesenen Feldern zurückgibt.

Hinweis:

Die Spracheinstellung (locale) wird von dieser Funktion beachtet. Wenn LC_CTYPE z.B. den Wert en_US.UTF-8 hat, können Dateien in Ein-byte-Kodierung von dieser Funktion falsch gelesen werden.

Parameter-Liste

handle

Ein gültiger Dateizeiger auf eine Datei, die zuvor mit fopen(), popen() oder fsockopen() geöffnet wurde.

length

Muss größer als die längste Zeile (in Zeichen), die in der CSV Datei vorhanden ist, sein (dies erlaubt die Erkennung abschließender Zeilenende Zeichen). Andernfalls wird die Zeile in Blöcke von length Zeichen aufgeteilt, es sei denn, die Aufteilung würde innerhalb einer Feldbegrenzung erfolgen.

Wird dieser Paramter ausgelassen (oder in PHP 5.1.0 und später auf 0 gesetzt), ist die maximale Zeilenlänge nicht begrenzt, was ein wenig langsamer ist.

delimiter

Der optionale Parameter delimiter setzt das Feld-Trennzeichen (nur ein Zeichen).

enclosure

Der optionale Parameter enclosure setzt das Feld-Begrenzungs Zeichen (nur ein Zeichen).

escape

Der optionale Parameter escape setzt das Maskierungs-Zeichen (höchstens ein Zeichen). Eine leere Zeichenkette ("") deaktiviert den proprietären Maskierungsmechanismus.

Hinweis: Normalerweise wird ein enclosure Zeichen in einem Feld maskiert, indem es verdoppelt wird; allerdings kann das escape Zeichen alternativ dazu verwendet werden. So haben standardmäßig die Werte "" und \" die selbe Bedeutung. Außer der Möglichkeit, das enclosure Zeichen durch das escape Zeichen maskieren zu können, hat letzteres keine besondere Bedeutung; es ist nicht einmal dazu geeignet, sich selbst zu maskieren.

Rückgabewerte

Gibt ein numerisch indexiertes Array zurück, das die gelesenen Felder enthält.

Hinweis:

Ein leere Zeile in einer CSV Datei wird als ein Array zurückgegeben, das ein einzelnes null Feld enthält und wird nicht als Fehler behandelt.

Hinweis: Wenn Sie Probleme damit haben, dass PHP Zeilenendezeichen nicht erkennt, entweder beim Lesen von Dateien auf einem Macintosh oder bei Dateien, die auf einem Macintosh erstellt wurden, können Sie die Option auto_detect_line_endings aktivieren.

fgetcsv() gibt null zurück, wenn ein ungültiger handle übergeben wurde oder false bei anderen Fehlern einschließlich Dateiende.

Changelog

Version | Beschreibung
7.4.0 | Der escape Parameter akzeptiert nun auch eine leere Zeichenkette, um den proprietären Maskierungsmechanismus zu deaktivieren.

Beispiele

Beispiel #1 Lies und gib den gesamten Inhalt einer CSV Datei aus

<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num Felder in Zeile $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}
?>

Siehe auch

  • str_getcsv() - Parst einen CSV-String in ein Array
  • explode() - Teilt eine Zeichenkette anhand einer Zeichenkette
  • file() - Liest eine komplette Datei in ein Array
  • pack() - Packt Daten in eine binäre Zeichenkette
  • fputcsv() - Format line as CSV and write to file pointer


Liest eine Zeile von der Position des Dateizeigers

  • « fgetcsv
  • fgetss »
  • PHP Manual
  • Dateisystem
  • Liest eine Zeile von der Position des Dateizeigers

fgets

(PHP 4, PHP 5, PHP 7, PHP 8)

fgets — Liest eine Zeile von der Position des Dateizeigers

Beschreibung

fgets ( resource $handle , int $length = ? ) : string

Liest eine Zeile von der Position des Dateizeigers.

Parameter-Liste

handle

Der Zeiger auf eine Datei muss gültig sein und auf eine Datei verweisen, die vorher erfolgreich mit fopen() oder fsockopen() geöffnet (und nicht bereits von fclose() geschlossen) wurde.

length

Lesen endet, wenn length - 1 bytes gelesen wurden, bei einem Zeilenumbruch (der im Rückgabewert enthalten ist) oder bei Dateiende (EOF) (was immer zuerst kommt). Wurde keine Länge übergeben wird aus dem Stream gelesen, bis das Zeilenende erreicht wird.

Rückgabewerte

Gibt eine Zeichenkette zurück, die bis zu length - 1 Bytes lang ist, die aus der Datei gelesen wurde, auf die handle zeigt. Wenn keine Daten mehr aus dem Dateizeiger zu lesen sind, wird false zurückgegeben.

Wenn ein Fehler auftritt, wird false zurückgegeben.

Beispiele

Beispiel #1 Eine Datei Zeile für Zeile lesen

<?php
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        echo $buffer;
    }
    if (!feof($handle)) {
        echo "Fehler: unerwarteter fgets() Fehlschlag\n";
    }
    fclose($handle);
}
?>

Anmerkungen

Hinweis: Wenn Sie Probleme damit haben, dass PHP Zeilenendezeichen nicht erkennt, entweder beim Lesen von Dateien auf einem Macintosh oder bei Dateien, die auf einem Macintosh erstellt wurden, können Sie die Option auto_detect_line_endings aktivieren.

Hinweis:

Alle, die die 'C' Semantik von fgets() gewohnt sind, sollten den Unterschied beachten, wie das Dateiendezeichen (EOF) zurückgegeben wird.

Siehe auch

  • fgetss() - Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
  • fread() - Liest Binärdaten aus einer Datei
  • fgetc() - Liest das Zeichen, auf welches der Dateizeiger zeigt
  • stream_get_line() - Gets line from stream resource up to a given delimiter
  • fopen() - Öffnet eine Datei oder URL
  • popen() - Öffnet einen Prozesszeiger
  • fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
  • stream_set_timeout() - Set timeout period on a stream


Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.

  • « fgets
  • file_exists »
  • PHP Manual
  • Dateisystem
  • Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.

fgetss

(PHP 4, PHP 5, PHP 7)

fgetss — Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.

Warnung

Diese Funktion ist seit PHP 7.3.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

fgetss ( resource $handle , int $length = ? , string $allowable_tags = ? ) : string

Diese Funktion ist identisch mit der Funktion fgets(), außer dass fgetss() versucht, vorhandene NUL-Bytes sowie HTML und PHP-Tags aus dem gelesenen Text zu entfernen. Die Funktion erhält den Parse-Zustand von Aufruf zu Aufruf, und ist daher nicht gleichwertig zum Aufruf von strip_tags() auf den Rückgabewert von fgets().

Parameter-Liste

handle

Der Zeiger auf eine Datei muss gültig sein und auf eine Datei verweisen, die vorher erfolgreich mit fopen() oder fsockopen() geöffnet (und nicht bereits von fclose() geschlossen) wurde.

length

Länge der zu lesende Eingabe.

allowable_tags

Über den optionalen dritten Parameter können Tags angegeben werden die nicht entfernt werden sollen. Siehe strip_tags() zu Details bezüglich allowable_tags.

Rückgabewerte

Returns a string of up to length - 1 bytes read from the file pointed to by handle, with all HTML and PHP code striped.

Falls ein Fehler auftritt wird false zurückgegeben.

Beispiele

Beispiel #1 Reading a PHP file line-by-line

<?php
$str = <<<EOD
<html><body>
 <p>Welcome! Today is the <?php echo(date('jS')); ?> of <?= date('F'); ?>.</p>
</body></html>
Text outside of the HTML block.
EOD;
file_put_contents('sample.php', $str);

$handle = @fopen("sample.php", "r");
if ($handle) {
  while (!feof($handle)) {
    $buffer = fgetss($handle, 4096);
    echo $buffer;
  }
  fclose($handle);
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Welcome! Today is the of .

Text outside of the HTML block.

Anmerkungen

Hinweis: Wenn Sie Probleme damit haben, dass PHP Zeilenendezeichen nicht erkennt, entweder beim Lesen von Dateien auf einem Macintosh oder bei Dateien, die auf einem Macintosh erstellt wurden, können Sie die Option auto_detect_line_endings aktivieren.

Siehe auch

  • fgets() - Liest eine Zeile von der Position des Dateizeigers
  • fopen() - Öffnet eine Datei oder URL
  • popen() - Öffnet einen Prozesszeiger
  • fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
  • strip_tags() - Entfernt HTML- und PHP-Tags aus einem String
  • SplFileObject::fgetss() - Gets line from file and strip HTML tags
  • Den string.strip_tags Filter


Prüft, ob eine Datei oder ein Verzeichnis existiert

  • « fgetss
  • file_get_contents »
  • PHP Manual
  • Dateisystem
  • Prüft, ob eine Datei oder ein Verzeichnis existiert

file_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

file_exists — Prüft, ob eine Datei oder ein Verzeichnis existiert

Beschreibung

file_exists ( string $filename ) : bool

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

Parameter-Liste

filename

Pfad zu der Datei oder dem Verzeichnis

Zum Prüfen von Dateien auf Windows network shares verwenden Sie bitte //computername/share/filename oder \\computername\share\filename.

Rückgabewerte

Gibt true zurück, wenn die Datei oder das Verzeichnis, die durch filename spezifiziert sind, existieren; ansonsten false.

Hinweis:

Diese Funktion gibt false für symbolische Links zurück, die auf nicht existierende Dateien verweisen.

Hinweis:

Die Prüfung wird mit der realen UID/GID anstelle der effektiven durchgeführt.

Hinweis: Weil PHPs Integer Typ vorzeichenbehaftet ist und viele Platformen 32bit Integer verwenden, können einige Dateisystem-Funktionen für Dateien größer als 2GB unerwartete Ergebnisse liefern.

Beispiele

Beispiel #1 Prüfung, ob eine Datei existiert

<?php
$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
    echo "Die Datei $filename existiert";
} else {
    echo "Die Datei $filename existiert nicht";
}
?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • is_readable() - Prüft, ob eine Datei existiert und lesbar ist
  • is_writable() - Prüft, ob in eine Datei geschrieben werden kann
  • is_file() - Prüft, ob der Dateiname eine reguläre Datei ist
  • file() - Liest eine komplette Datei in ein Array


Liest die gesamte Datei in einen String

  • « file_exists
  • file_put_contents »
  • PHP Manual
  • Dateisystem
  • Liest die gesamte Datei in einen String

file_get_contents

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

file_get_contents — Liest die gesamte Datei in einen String

Beschreibung

file_get_contents ( string $filename , bool $use_include_path = false , resource $context = ? , int $offset = 0 , int $maxlen = ? ) : string|false

Diese Funktion ist mit file() identisch, außer dass file_get_contents() die Datei in einem String zurückgibt, beginnend am angebenen offset über bis zu maxlen Bytes. Im Fehlerfall gibt file_get_contents() false zurück.

file_get_contents() ist der empfohlene Weg, um den Inhalt einer Datei in einen String zu lesen. Es werden Techniken zur Speicherabbildung genutzt, um die Performance zu erhöhen, falls das Betriebssystem dies unterstützt.

Hinweis:

Falls Sie einen URI mit speziellen Zeichen, wie z.B. Leerzeichen, öffnen, müssen Sie den URI mittels urlencode() enkodieren.

Parameter-Liste

filename

Name der zu lesenden Datei.

use_include_path

Hinweis:

Die Konstante FILE_USE_INCLUDE_PATH kann genutzt werden, um eine Suche im include path auszulösen. Dies ist nicht möglich, wenn strenge Typisierung aktiviert wurde, da FILE_USE_INCLUDE_PATH ein int ist. Statt dessen ist true zu verwenden.

context

Eine gültige Context-Ressource, die mit stream_context_create() erstellt wurde. Falls Sie keinen eigenen Context benötigen, können Sie diesen Parameter mit null überspringen.

offset

Die Position, an der das Lesen im Originalstream beginnt. Negative Offsets zählen vom Ende des Streams an.

Das Springen an bestimmte Positionen (offset) wird nicht für entfernte Dateien unterstützt. Für kleine Offsets kann der Sprung funktionieren, allerdings ist dies nicht vorhersagbar, weil hierbei auf dem gepufferten Stream gearbeitet wird.

maxlen

Maximale Länge der zu lesenden Daten. Standardmäßig wird solange gelesen bis das Ende der Datei erreicht wird. Beachten Sie, dass dieser Parameter auf den Stream angewendet wird, der durch die Filter verarbeitet wird.

Rückgabewerte

Die Funktion gibt die gelesenen Daten zurück. Im Fehlerfall wird false zurückgegeben.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Fehler/Exceptions

Ein Fehler der Stufe E_WARNING wird generiert, wenn filename nicht gefunden werden kann, maxlength kleiner als Null ist oder wenn das Aufsuchen des angegebenen offset im Streams fehlschlägt.

Beispiele

Beispiel #1 Holen und Ausgeben des Quelltextes der Startseite einer Webseite

<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

Beispiel #2 Suche im include_path

<?php
// Wenn strikte Typisierung aktiviert wurde, d.h. declare(strict_types=1);
$file = file_get_contents('./leute.txt', true);
// Andernfalls
$file = file_get_contents('./leute.txt', FILE_USE_INCLUDE_PATH);
?>

Beispiel #3 Lesen einen Abschnitts einer Datei

<?php
// Lese 14 Zeichen, beginnend mit dem 21. Zeichen
$section = file_get_contents('./leute.txt', FALSE, NULL, 20, 14);
var_dump($section);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(14) "lle Bjori Ro"

Beispiel #4 Nutzung von Stream-Contexten

<?php
// Erzeugen eines Streams
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

// Öffnen der Datei mit den oben definierten HTTP-Headern
$file = file_get_contents('http://www.example.com/', false, $context);
?>

Changelog

Version | Beschreibung
7.1.0 | Unterstützung für negative offsets wurde hinzugefügt.

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Warnung

Bei SSL-Verbindungen zusammen mit Microsoft IIS hält sich dieser Webserver nicht an das Protokoll und schließt die Verbindung ohne ein close_notify zu senden. PHP quittiert dieses Fehlverhalten mit "SSL: Fatal Protocol Error", wenn das Ende der Daten erreicht ist. Eine mögliche Lösung besteht darin, den Level von error_reporting herabzusetzten und Warnings auszuschließen. PHP kann fehlerhafte IIS-Serversoftware erkennen, wenn Sie einen Stream mit dem https://-Wrapper öffnen, und unterdrückt die Warnung für Sie. Falls Sie fsockopen() benutzen, um einen ssl://-Socket zu öffnen, müssen Sie selbst dafür Sorge tragen, die Warnung zu erkennen und diese zu unterdrücken.

Siehe auch

  • file() - Liest eine komplette Datei in ein Array
  • fgets() - Liest eine Zeile von der Position des Dateizeigers
  • fread() - Liest Binärdaten aus einer Datei
  • readfile() - Gibt eine Datei aus
  • file_put_contents() - Schreibt Daten in eine Datei
  • stream_get_contents() - Reads remainder of a stream into a string
  • stream_context_create() - Creates a stream context
  • $http_response_header


Schreibt Daten in eine Datei

  • « file_get_contents
  • file »
  • PHP Manual
  • Dateisystem
  • Schreibt Daten in eine Datei

file_put_contents

(PHP 5, PHP 7, PHP 8)

file_put_contents — Schreibt Daten in eine Datei

Beschreibung

file_put_contents ( string $filename , mixed $data , int $flags = 0 , resource $context = ? ) : int

Diese Funktion entspricht fopen(), fwrite() und fclose(), um Daten in eine Datei zu schreiben.

Wenn filename nicht existiert, wird die Datei erstellt. Sonst wird die existierende Datei überschrieben, es sei denn FILE_APPEND ist gesetzt.

Parameter-Liste

filename

Pfad zur Datei in die die Daten geschrieben werden sollen.

data

Die zu schreibenden Daten. Kann entweder string, oder array sowie stream sein.

Wenn data eine stream-Quelle ist, wird der verbleibende Puffer des Streams in die festgelegte Datei kopiert. Dies ähnelt der Funktion stream_copy_to_stream().

Sie können auch den Parameter data als eindimensionales Array angeben. Dies ist äquivalent zu file_put_contents($filename, implode('', $array)).

flags

Der Wert von flags kann eine Kombination der folgenden Flags sein, verbunden mit dem binären OR(|) -Operator.

verfügbare Flags
Flag | Beschreibung
FILE_USE_INCLUDE_PATH | Sucht nach filename im enthaltenen Verzeichnis. Siehe include_path für mehr Information.
FILE_APPEND | Falls die Datei filename bereits existiert, füge die Daten an die Datei an anstatt diese zu überschreiben.
LOCK_EX | Erwirbt exklusive Schreibrechte auf die Datei während mit dem Schreiben fortgefahren wird. Anders ausgedrückt erfolgt ein flock() Aufruf zwischen dem fopen() Aufruf und dem fwrite() Aufruf. Das ist nicht das gleiche wie ein fopen() Aufruf mit Modus "x".

context

Eine gültige Kontakt-Ressource erstellt mit der Funktion stream_context_create().

Rückgabewerte

Diese Funktion gibt die Anzahl der geschriebenen Bytes oder false bei einem Fehler zurück.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 Einfaches Verwendungsbeispiel

<?php
$file = 'people.txt';
// Öffnet die Datei, um den vorhandenen Inhalt zu laden
$current = file_get_contents($file);
// Fügt eine neue Person zur Datei hinzu
$current .= "John Smith\n";
// Schreibt den Inhalt in die Datei zurück
file_put_contents($file, $current);
?>

Beispiel #2 Verwendung der Flags

<?php
$file = 'people.txt';
//Die neue Person, die zur Datei hinzugefügt werden soll
$person = "John Smith\n";
// Schreibt den Inhalt in die Datei
// unter Verwendung des Flags FILE_APPEND, um den Inhalt an das Ende der Datei anzufügen
// und das Flag LOCK_EX, um ein Schreiben in die selbe Datei zur gleichen Zeit zu verhindern
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
?>

Changelog

Version | Beschreibung
5.1.0 | Unterstützung für LOCK_EX hinzugefügt und die Möglichkeit,eine Stream-Quelle als data-Parameter zu übergeben

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Siehe auch

  • fopen() - Öffnet eine Datei oder URL
  • fwrite() - Binär-sicheres Dateischreiben
  • file_get_contents() - Liest die gesamte Datei in einen String
  • stream_context_create() - Creates a stream context


Liest eine komplette Datei in ein Array

  • « file_put_contents
  • fileatime »
  • PHP Manual
  • Dateisystem
  • Liest eine komplette Datei in ein Array

file

(PHP 4, PHP 5, PHP 7, PHP 8)

file — Liest eine komplette Datei in ein Array

Beschreibung

file ( string $filename , int $flags = 0 , resource $context = ? ) : array

Liest eine komplette Datei in ein Array

Hinweis:

Sie können file_get_contents() benutzen, um den Inhalt einer Datei als String zurückgeliefert zu bekommen.

Parameter-Liste

filename

Pfad zur Datei.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

flags

Der optionale Parameter flags kann aus einer oder mehreren der folgenden Konstanten bestehen:

FILE_USE_INCLUDE_PATH
Suche nach der Datei im include_path
FILE_IGNORE_NEW_LINES
Entferne Zeilenende am Ende jedes Array-Elements
FILE_SKIP_EMPTY_LINES
Leere Zeilen überspringen

context

Eine Context-Ressource, die mit der stream_context_create()-Funktion erstellt wurde.

Hinweis: Die Kontext-Unterstützung gibt es seit PHP 5.0.0. Eine Beschreibung von Kontexten finden Sie unter Streams.

Rückgabewerte

Gibt die Datei in einem Array zurück. Jedes Element des Arrays entspricht einer Zeile in der Datei, ohne dass das Zeilenende entfernt wird. Im Fehlerfall gibt file() false zurück.

Hinweis:

Jede Zeile in dem resultierenden Array enthält das Zeilenende, außer es wird FILE_IGNORE_NEW_LINES verwendet.

Hinweis: Wenn Sie Probleme damit haben, dass PHP Zeilenendezeichen nicht erkennt, entweder beim Lesen von Dateien auf einem Macintosh oder bei Dateien, die auf einem Macintosh erstellt wurden, können Sie die Option auto_detect_line_endings aktivieren.

Fehler/Exceptions

Erzeugt einen Fehler der Stufe E_WARNING, wenn die Datei nicht existiert.

Beispiele

Beispiel #1 file()-Beispiel

<?php
// Liest eine Datei in ein Array. Hier gehen wir über HTTP, um den
// HTML-Quelltext einer URL zu bekommen
$lines = file('http://www.example.com/');

// Durchgehen des Arrays und Anzeigen des HTML-Quelltexts inkl. Zeilennummern
foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n";
}

// Ein weiteres Beispiel: Einlesen einer Webseite in einen String.
// Siehe auch file_get_contents().
$html = implode ('', file ('http://www.example.com/'));

// Benutzung des optionalen flags-Parameters seit PHP 5
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>

Anmerkungen

Warnung

Bei SSL-Verbindungen zusammen mit Microsoft IIS hält sich dieser Webserver nicht an das Protokoll und schließt die Verbindung ohne ein close_notify zu senden. PHP quittiert dieses Fehlverhalten mit "SSL: Fatal Protocol Error", wenn das Ende der Daten erreicht ist. Eine mögliche Lösung besteht darin, den Level von error_reporting herabzusetzten und Warnings auszuschließen. PHP kann fehlerhafte IIS-Serversoftware erkennen, wenn Sie einen Stream mit dem https://-Wrapper öffnen, und unterdrückt die Warnung für Sie. Falls Sie fsockopen() benutzen, um einen ssl://-Socket zu öffnen, müssen Sie selbst dafür Sorge tragen, die Warnung zu erkennen und diese zu unterdrücken.

Siehe auch

  • readfile() - Gibt eine Datei aus
  • fopen() - Öffnet eine Datei oder URL
  • fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
  • popen() - Öffnet einen Prozesszeiger
  • file_get_contents() - Liest die gesamte Datei in einen String
  • include - include
  • stream_context_create() - Creates a stream context


Liefert Datum und Uhrzeit des letzten Zugriffs auf eine Datei

  • « file
  • filectime »
  • PHP Manual
  • Dateisystem
  • Liefert Datum und Uhrzeit des letzten Zugriffs auf eine Datei

fileatime

(PHP 4, PHP 5, PHP 7, PHP 8)

fileatime — Liefert Datum und Uhrzeit des letzten Zugriffs auf eine Datei

Beschreibung

fileatime ( string $filename ) : int

Liefert Datum und Uhrzeit des letzten Zugriffs auf die übergebene Datei

Parameter-Liste

filename

Pfad zu der Datei.

Rückgabewerte

Gibt Datum und Uhrzeit des letzten Zugriffs auf eine Datei zurück, Im Fehlerfall wird false zurückgegeben.. Das Datum wird als UNIX-Timestamp zurückgegeben.

Beispiele

Beispiel #1 fileatime() Beispiel

<?php

// gibt z.B. aus  Letzer Zugriff auf somefile.txt: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "Letzer Zugriff auf $filename: " . date("F d Y H:i:s.", fileatime($filename));
}

?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis:

Der atime Wert einer Datei soll sich immer dann ändern, wenn die Dateiblöcke einer Datei gelesen werden. Dies kann in Bezug auf Performance teuer sein, falls eine Anwendung regelmäßig auf eine sehr große Anzahl an Dateien oder Verzeichnissen zugreift.

Einige Unix Dateisysteme können so eingebunden werden, dass atime Änderungen ausgeschaltet sind, um die Performace solcher Anwendungen zu steigern. USENET news spools sind ein bekanntes Beispiel. Auf solchen Dateisystemen ist diese Funktion nutzlos.

Hinweis:

Beachten Sie, dass die zeitliche Auflösung bei verschiedenen Dateisystemen unterschiedlich sein kann.

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • filemtime() - Liefert Datum und Uhrzeit der letzten Dateiänderung
  • fileinode() - Liefert die Inode-Nummer einer Datei
  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum


Liefert Datum und Uhrzeit der letzten Änderung des Datei Inode

  • « fileatime
  • filegroup »
  • PHP Manual
  • Dateisystem
  • Liefert Datum und Uhrzeit der letzten Änderung des Datei Inode

filectime

(PHP 4, PHP 5, PHP 7, PHP 8)

filectime — Liefert Datum und Uhrzeit der letzten Änderung des Datei Inode

Beschreibung

filectime ( string $filename ) : int

Liefert Datum und Uhrzeit der letzten Änderung des Datei Inode.

Parameter-Liste

filename

Pfad zu der Datei.

Rückgabewerte

Gibt Datum und Uhrzeit der letzten Änderung einer Datei zurück, Im Fehlerfall wird false zurückgegeben.. Das Datum wird als UNIX-Timestamp zurückgegeben.

Beispiele

Beispiel #1 Ein filectime() Beispiel

<?php

// Rückgabe z.B.  somefile.txt wurde zuletzt geändert: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename wurde zuletzt geändert: " . date("F d Y H:i:s.", filectime($filename));
}

?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis:

Anmerkung: Bei den meisten Unix Dateisystemen gilt eine Datei als geändert, sobald ihre Inode-Daten geändert wurden; d.h. wenn die Rechte, Eigentümer, Gruppe, oder andere Metadaten des Inodes aktualisiert werden. Siehe auch filemtime() (das ist was Sie suchen, wenn Sie Fußzeilen mit "Zuletzt Aktualisiert" für Webseiten erstellen möchten) und fileatime().

Hinweis:

Beachten Sie auch, dass in einigen Unix-Texten ctime als die Zeit der Erstellung der Datei beschrieben wird. Das ist falsch. Bei den meisten Unix Dateisystemen gibt es keine Zeitangabe für die Erstellung von Unix Dateien.

Hinweis:

Beachten Sie, dass die zeitliche Auflösung bei verschiedenen Dateisystemen unterschiedlich sein kann.

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • filemtime() - Liefert Datum und Uhrzeit der letzten Dateiänderung


Liefert die Gruppenzugehörigkeit einer Datei

  • « filectime
  • fileinode »
  • PHP Manual
  • Dateisystem
  • Liefert die Gruppenzugehörigkeit einer Datei

filegroup

(PHP 4, PHP 5, PHP 7, PHP 8)

filegroup — Liefert die Gruppenzugehörigkeit einer Datei

Beschreibung

filegroup ( string $filename ) : int

Ermittelt die Gruppenzugehörigkeit einer Datei. Die Gruppen-ID wird in numerischer Form zurückgegeben, der zugehörige Gruppenname kann mit posix_getgrgid() ermittelt werden.

Parameter-Liste

filename

Path to the file.

Rückgabewerte

Gibt die Gruppen ID einer Datei zurück, oder false wenn ein Fehler aufgetreten ist. Die Gruppen ID wird im numerischen Format zurückgegeben. Mit der Funktion posix_getgrgid() können Sie diese zu ihrem Gruppennamen auflösen.

Beispiele

Beispiel #1 Finding the group of a file

<?php
$filename = 'index.php';
print_r(posix_getgrgid(filegroup($filename)));
?>

Fehler/Exceptions

Im Fehlerfall wird ein E_WARNING Fehler gemeldet.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • fileowner() - Liefert den Dateieigentümer
  • posix_getgrgid() - Liefert zu einer Gruppen-ID Informationen über diese Gruppe


Liefert die Inode-Nummer einer Datei

  • « filegroup
  • filemtime »
  • PHP Manual
  • Dateisystem
  • Liefert die Inode-Nummer einer Datei

fileinode

(PHP 4, PHP 5, PHP 7, PHP 8)

fileinode — Liefert die Inode-Nummer einer Datei

Beschreibung

fileinode ( string $filename ) : int

Liefert den Datei Inode.

Parameter-Liste

filename

Pfad zu der Datei.

Rückgabewerte

Gibt die Inode Nummer der Datei zurück, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Vergleich des Inode einer Datei mit dem der derzeitigen Datei

<?php
$filename = 'index.php';
if (getmyinode() == fileinode($filename)) {
    echo 'Sie prüfen die derzeitige Datei.';
}
?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • getmyinode() - Ermittelt den Inode des aktuellen Skripts
  • stat() - Sammelt Informationen über eine Datei


Liefert Datum und Uhrzeit der letzten Dateiänderung

  • « fileinode
  • fileowner »
  • PHP Manual
  • Dateisystem
  • Liefert Datum und Uhrzeit der letzten Dateiänderung

filemtime

(PHP 4, PHP 5, PHP 7, PHP 8)

filemtime — Liefert Datum und Uhrzeit der letzten Dateiänderung

Beschreibung

filemtime ( string $filename ) : int

Diese Funktion gibt Datum und Uhrzeit zurück, wann die Datenblöcke einer Datei beschrieben wurden, das heisst, der Zeitpunkt, wann der Inhalt der Datei zuletzt geändert wurde.

Parameter-Liste

filename

Pfad zu der Datei.

Rückgabewerte

Gibt Datum und Uhrzeit zurück, wann die Datei das letzte mal modifiziert wurde, Im Fehlerfall wird false zurückgegeben.. Das Datum wird als UNIX-Timestamp zurückgegeben, was für die Funktion date() passend ist.

Beispiele

Beispiel #1 filemtime() Beispiel

<?php
// Ausgabe z.B.  somefile.txt wurde zuletzt modifiziert: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename wurde zuletzt modifiziert: " . date ("F d Y H:i:s.", filemtime($filename));
}
?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis:

Beachten Sie, dass die zeitliche Auflösung bei verschiedenen Dateisystemen unterschiedlich sein kann.

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • filectime() - Liefert Datum und Uhrzeit der letzten Änderung des Datei Inode
  • stat() - Sammelt Informationen über eine Datei
  • touch() - Setzt die Zugriffs- und Modifikationszeit einer Datei
  • getlastmod() - Uhrzeit der letzten Änderung eines Scripts


Liefert den Dateieigentümer

  • « filemtime
  • fileperms »
  • PHP Manual
  • Dateisystem
  • Liefert den Dateieigentümer

fileowner

(PHP 4, PHP 5, PHP 7, PHP 8)

fileowner — Liefert den Dateieigentümer

Beschreibung

fileowner ( string $filename ) : int

Liefert den Dateieigentümer.

Parameter-Liste

filename

Pfad zu der Datei.

Rückgabewerte

Gibt die Benutzer ID des Eigentümers einer Datei zurück, Im Fehlerfall wird false zurückgegeben.. Die Benutzer ID wird in numerischem Format zurückgegeben und kann mit der Funktion posix_getpwuid() zum Benutzernamen aufgelöst werden.

Beispiele

Beispiel #1 Den besitzer einer Datei finden

<?php
$filename = 'index.php';
print_r(posix_getpwuid(fileowner($filename)));
?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • filegroup() - Liefert die Gruppenzugehörigkeit einer Datei
  • stat() - Sammelt Informationen über eine Datei
  • posix_getpwuid() - Liefert zu einer Benutzer-ID Informationen über diesen Benutzer


Liefert die Zugriffsrechte einer Datei

  • « fileowner
  • filesize »
  • PHP Manual
  • Dateisystem
  • Liefert die Zugriffsrechte einer Datei

fileperms

(PHP 4, PHP 5, PHP 7, PHP 8)

fileperms — Liefert die Zugriffsrechte einer Datei

Beschreibung

fileperms ( string $filename ) : int

Liefert Zugriffsrechte für die übergebene Datei.

Parameter-Liste

filename

Pfad zu der Datei.

Rückgabewerte

Gibt die Zugriffsrechte einer Datei als numerischen Modus zurück. Die niedrigen Bits dieses Modus sind die gleichen wie die Zugriffsrechte, die chmod() erwartet, allerdings beinhaltet der Rückgabewert auf den meisten Plattformen ebenfalls Informationen über den Typ der Datei, die als filename angegeben wurde. Die Beispiele weiter unten demonstrieren wie der Rückgabewert auf spezifische Zugriffsrechte und Datei-Typen auf POSIX Systemen einschließlich Linux und macOS geprüft werden kann.

Beispiele

Beispiel #1 Zeige Rechte als Oktal-Wert an

<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1777
0644

Beispiel #2 Zeige komplette Rechte an

<?php
$perms = fileperms('/etc/passwd');

switch ($perms & 0xF000) {
    case 0xC000: // Socket
        $info = 's';
        break;
    case 0xA000: // Symbolischer Link
        $info = 'l';
        break;
    case 0x8000: // Regulär
        $info = 'r';
        break;
    case 0x6000: // Block special
        $info = 'b';
        break;
    case 0x4000: // Verzeichnis
        $info = 'd';
        break;
    case 0x2000: // Character special
        $info = 'c';
        break;
    case 0x1000: // FIFO pipe
        $info = 'p';
        break;
    default: // unbekannt
        $info = 'u';
}

// Besitzer
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
            (($perms & 0x0800) ? 's' : 'x' ) :
            (($perms & 0x0800) ? 'S' : '-'));

// Gruppe
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
            (($perms & 0x0400) ? 's' : 'x' ) :
            (($perms & 0x0400) ? 'S' : '-'));

// Andere
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
            (($perms & 0x0200) ? 't' : 'x' ) :
            (($perms & 0x0200) ? 'T' : '-'));

echo $info;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

-rw-r--r--

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • chmod() - Ändert die Zugriffsrechte einer Datei
  • is_readable() - Prüft, ob eine Datei existiert und lesbar ist
  • stat() - Sammelt Informationen über eine Datei


Liefert die Größe einer Datei

  • « fileperms
  • filetype »
  • PHP Manual
  • Dateisystem
  • Liefert die Größe einer Datei

filesize

(PHP 4, PHP 5, PHP 7, PHP 8)

filesize — Liefert die Größe einer Datei

Beschreibung

filesize ( string $filename ) : int

Liefert die Größe der übergebenen Datei.

Parameter-Liste

filename

Pfad zu der Datei.

Rückgabewerte

Gibt die Größe einer Datei in Bytes zurück, oder false (und erzeugt einen Fehler der Stufe E_WARNING) wenn ein Fehler auftrat.

Hinweis: Weil PHPs Integer Typ vorzeichenbehaftet ist und viele Platformen 32bit Integer verwenden, können einige Dateisystem-Funktionen für Dateien größer als 2GB unerwartete Ergebnisse liefern.

Beispiele

Beispiel #1 filesize() Beispiel

<?php

// Ausgabe z.B  somefile.txt: 1024 Byte

$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' Byte';

?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • file_exists() - Prüft, ob eine Datei oder ein Verzeichnis existiert


Liefert den Typ einer Datei

  • « filesize
  • flock »
  • PHP Manual
  • Dateisystem
  • Liefert den Typ einer Datei

filetype

(PHP 4, PHP 5, PHP 7, PHP 8)

filetype — Liefert den Typ einer Datei

Beschreibung

filetype ( string $filename ) : string

Liefert den Typ der übergebenen Datei.

Parameter-Liste

filename

Pfad zu der Datei.

Rückgabewerte

Gibt den Typ einer Datei zurück. Mögliche Werte sind fifo, char, dir, block, link, file, socket und unknown.

Gibt false zurück, wenn ein Fehler auftrat. filetype() erzeugt auch eine E_NOTICE Meldung, wenn der stat-Aufruf fehlschlägt oder der Dateityp unbekannt ist.

Beispiele

Beispiel #1 filetype() Beispiel

<?php

echo filetype('/etc/passwd');  // file
echo filetype('/etc/');        // dir

?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • is_dir() - Prüft, ob der angegebene Dateiname ein Verzeichnis ist
  • is_file() - Prüft, ob der Dateiname eine reguläre Datei ist
  • is_link() - Prüft, ob der Dateiname ein symbolischer Link ist
  • file_exists() - Prüft, ob eine Datei oder ein Verzeichnis existiert
  • mime_content_type() - Ermittelt den MIME-Typ des Inhalts einer Datei
  • pathinfo() - Liefert Informationen über einen Dateipfad
  • stat() - Sammelt Informationen über eine Datei


Portables Datei-Sperr-Verfahren (advisory locking)

  • « filetype
  • fnmatch »
  • PHP Manual
  • Dateisystem
  • Portables Datei-Sperr-Verfahren (advisory locking)

flock

(PHP 4, PHP 5, PHP 7, PHP 8)

flock — Portables Datei-Sperr-Verfahren (advisory locking)

Beschreibung

flock ( resource $handle , int $operation , int &$wouldblock = ? ) : bool

flock() erlaubt ihnen, ein einfaches Leser-/Schreiber-Modell umzusetzen, was auf nahezu jeder Platform (inklusive der meisten Unix Abkömmlinge und sogar Windows) genutzt werden kann.

Unter PHP-Versionen vor 5.3.2, wurde die Sperre auch von fclose() gelöst (was auch automatisch aufgerufen wird, wenn das Skript endet).

PHP unterstützt eine portable Art komplette Dateien "beratend" zu sperren (was bedeutet, dass alle zugreifenden Programme das gleiche Sperrverfahren nutzen müssen, oder die Sperre wird nicht wirken). Standardmäßig wird diese Funktion blockieren, bis die angefragte Sperre erlangt wurde; dies kann mit der Option LOCK_NB, dokumentiert unten, gesteuert werden.

Parameter-Liste

handle

Eine Dateisystemressource (resource), wie sie in der Regel von fopen() zurückgegeben wird.

operation

operation ist einer der Folgenden Werte:

  • LOCK_SH um eine geteilte Sperre (Leser) zu erhalten.
  • LOCK_EX um eine exklusive Sperre (Schreiber) zu erhalten.
  • LOCK_UN um eine Sperre zu lösen (geteilt oder exklusiv).

Man kann auch LOCK_NB als Bitmaske zu einer der obigen Operationen hinzufügen, wenn flock() während des Sperrversuchs nicht blockieren soll.

wouldblock

Das optionale dritte Argument ist auf 1 gesetzt, falls das Sperren blockierte (EWOULDBLOCK-Fehlernummer).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.5.22, 5.6.6 | Unterstützung für den wouldblock-Parameter unter Windows hinzugefügt.
5.3.2 | Das automatische Entsperren, wenn das Ressourcen-Handle der Datei geschlossen wurde, wurde entfernt. Entsperren muss nun immer manuell ausgeführt werden.

Beispiele

Beispiel #1 Einfache, exklusive Sperre

<?php

$fp = fopen("/tmp/lock.txt", "r+");

if (flock($fp, LOCK_EX)) { // exklusive Sperre
    ftruncate($fp, 0); // kürze Datei
    fwrite($fp, "Write something here\n");
    fflush($fp); // leere Ausgabepuffer bevor die Sperre frei gegeben wird
    flock($fp, LOCK_UN); // Gib Sperre frei
} else {
    echo "Konnte Sperre nicht erhalten!";
}

fclose($fp);

?>

Beispiel #2 Verwendung von LOCK_NB

<?php
$fp = fopen('/tmp/lock.txt', 'r+');

/* Aktiviere die LOCK_NB-Option bei einer LOCK_EX-Operation */
if(!flock($fp, LOCK_EX | LOCK_NB)) {
    echo 'Kann Sperre nicht erhalten';
    exit(-1);
}

/* ... */

fclose($fp);
?>

Anmerkungen

Hinweis:

flock() nutzt "verbindliche" (mandatory) anstatt "beratende" (advisory) Sperren unter Windows. "Verbindliches" Sperren wird auch unter Linux und System-V-basierten Betriebssystemen, durch den üblichen Mechanismus, der von dem fcntl()-Systemaufruf geliefert wird, unterstützt: das heißt, falls bei der fraglichen Datei das setgid-Zugriffs-Bit gesetzt ist und das Ausführungs-Bit für Gruppen null ist. Unter Linux muss das Dateisystem zusätzlich mit der Mount-Option mand eingebunden sein, damit dies Auswirkungen hat.

Hinweis:

Da flock() einen Dateizeiger benötigt, müssen Sie unter Umständen eine spezielle Sperrdatei benutzen, um den Zugriff auf eine Datei zu schützen, welche Sie mittels Öffnen im Schreibmodus (mit dem Argument "w" or "w+" von fopen()) kürzen wollen.

Hinweis:

Kann nur mit Dateizeigern verwendet werden, die von fopen() für lokale Dateien zurückgegeben wurden oder mit Dateizeigern, die auf Nutzer-Modus Streams zeigen, die die streamWrapper::stream_lock() Methode implementieren.

Warnung

Weist man dem handle Argument einen anderen Wert zu, wird nachfolgender Code die Sperre lösen.

Warnung

Bei einigen Betriebssystemen ist flock() auf dem Prozesslevel implementiert. Wenn Sie ein Multithreaded-Server-API wie ISAPI benutzen, können Sie sich nicht auf flock() verlassen, um Dateien vor anderen PHP-Skripten zu schützen, welche in parallelen Threads der gleichen Server-Instanz laufen!

flock() wird von antiquierten Dateisystemen wie FAT und dessen Derivaten nicht unterstützt, und gibt deshalb in solchen Umgebungen immer false zurück.


Match filename against a pattern

  • « flock
  • fopen »
  • PHP Manual
  • Dateisystem
  • Match filename against a pattern

fnmatch

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

fnmatch — Match filename against a pattern

Beschreibung

fnmatch ( string $pattern , string $filename , int $flags = 0 ) : bool

fnmatch() checks if the passed filename would match the given shell wildcard pattern.

Parameter-Liste

pattern

The shell wildcard pattern.

filename

The tested string. This function is especially useful for filenames, but may also be used on regular strings.

The average user may be used to shell patterns or at least in their simplest form to '?' and '*' wildcards so using fnmatch() instead of preg_match() for frontend search expression input may be way more convenient for non-programming users.

flags

The value of flags can be any combination of the following flags, joined with the binary OR (|) operator.

A list of possible flags for fnmatch()
Flag | Description
FNM_NOESCAPE | Disable backslash escaping.
FNM_PATHNAME | Slash in string only matches slash in the given pattern.
FNM_PERIOD | Leading period in string must be exactly matched by period in the given pattern.
FNM_CASEFOLD | Caseless match. Part of the GNU extension.

Rückgabewerte

Returns true if there is a match, false otherwise.

Beispiele

Beispiel #1 Checking a color name against a shell wildcard pattern

<?php
if (fnmatch("*gr[ae]y", $color)) {
  echo "some form of gray ...";
}
?>

Anmerkungen

Warnung

For now, this function is not available on non-POSIX compliant systems except Windows.

Siehe auch

  • glob() - Findet Dateinamen, die mit einem Muster übereinstimmen
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • sscanf() - Überträgt einen String in ein angegebenes Format
  • printf() - Gibt einen formatierten String aus
  • sprintf() - Gibt einen formatierten String zurück


Öffnet eine Datei oder URL

  • « fnmatch
  • fpassthru »
  • PHP Manual
  • Dateisystem
  • Öffnet eine Datei oder URL

fopen

(PHP 4, PHP 5, PHP 7, PHP 8)

fopen — Öffnet eine Datei oder URL

Beschreibung

fopen ( string $filename , string $mode , bool $use_include_path = false , resource $context = ? ) : resource

fopen() bindet eine benannte Ressource, die durch filename spezifiziert wurde, an einen Stream.

Parameter-Liste

filename

Hat filename die Form "schema://..." wird angenommen, dass es sich hier um einen URL handelt und PHP sucht nach einem Protokollhandler (auch als Wrapper bekannt) für dieses Schema. Sind keine Wrapper für dieses Protokoll registriert, gibt PHP als Hilfe zum Verfolgen potentieller Probleme in Ihrem Skript einen Hinweis aus und setzt dann weiter fort, als wenn filename eine reguläre Datei spezifiziert.

Ist PHP zu dem Schluss gekommen, dass filename eine lokale Datei spezifiziert, wird es versuchen, einen Stream an dieser Datei zu öffnen. Die Datei muss für PHP zugreifbar sein, weshalb Sie sicherstellen müssen, dass die Dateirechte diesen Zugriff ermöglichen. Wenn Sie open_basedir aktiviert haben, können weitere Einschränkungen zutreffen.

Kam PHP zum Schluss, dass es sich bei filename um ein registriertes Protokoll handelt, und ist dieses Protokoll als ein Netzwerk URL registriert, prüft PHP, ob allow_url_fopen aktiviert ist. Ist es nicht aktiviert, gibt PHP eine Warnung aus, und der Aufruf von fopen wird scheitern.

Hinweis:

Die Liste der unterstützten Protokolle ist unter Unterstützte Protokolle und Wrapper zu finden. Einige Protokolle (auch als Wrapper bezeichnet) unterstützen context und/oder php.ini Optionen. Auf der jeweiligen Seite für das genutzte Potokoll ist eine Liste der Optionen, die gesetzt werden können, aufgeführt (z.B. php.ini Wert user_agent genutzt vom http Wrapper).

Es ist darauf zu achten, unter Windows alle Backslash-Zeichen, die in Pfaden genutzt werden, zu maskieren oder Schrägstriche (Slash) zu nutzen.

<?php
$handle = fopen("c:\\verzeichnis\\ressource.txt", "r");
?>

mode

Der mode Parameter spezifiziert den Zugriffstyp, der vom Stream gefordert wird. Es kann einer der folgenden sein:

Eine Liste der möglichen Modi von fopen() mittels mode
mode | Beschreibung
'r' | Nur zum Lesen geöffnet; platziere Dateizeiger auf Dateianfang.
'r+' | Zum Lesen und Schreiben geöffnet; platziere Dateizeiger auf Dateianfang.
'w' | Nur zum Schreiben geöffnet; platziere Dateizeiger auf Dateianfang und kürze die Datei auf eine Länge von 0. Existiert die Datei nicht, versuche, diese zu erzeugen.
'w+' | Zum Schreiben und Lesen geöffnet; platziere Dateizeiger auf Dateianfang und kürze die Datei auf eine Länge von 0. Existiert die Datei nicht, versuche, diese zu erzeugen.
'a' | Nur zum Schreiben geöffnet; platziere Dateizeiger auf Dateiende. Existiert die Datei nicht, versuche, diese zu erzeugen. In diesem Modus ist fseek() wirkungslos; beim Schreiben wird immer angehängt.
'a+' | Zum Schreiben und Lesen geöffnet; platziere Dateizeiger auf Dateiende. Existiert die Datei nicht, versuche, diese zu erzeugen. In diesem Modus wirkt sich fseek() nur auf die Leseposition aus; beim Schreiben wird immer angehängt.
'x' | Erzeuge und Öffne nur zum Schreiben; platziere Dateizeiger auf Dateianfang. Falls die Datei schon existiert, wird der fopen() Aufruf fehlschlagen durch Rückgabe von false und dem Auslösen eines Fehlers der Stufe E_WARNING. Existiert die Datei nicht, versuche, diese zu erzeugen. Dies ist zur Angabe der O_EXCL|O_CREAT Flags für den darunterliegenden open(2) System Aufruf äquivalent.
'x+' | Erzeuge und Öffne zum Schreiben und Lesen; ansonsten ist das Verhalten gleich wie bei 'x'.
'c' | Öffne Datei nur zum Schreiben. Wenn die Datei nicht existiert, wird diese erzeugt. Wenn sie existiert, wird sie weder gekürzt (im Gegensatz zu 'w'), noch schlägt der Aufruf dieser Funktion fehl (wie dies mit 'x' der Fall ist). Der Dateizeiger wird auf den Dateianfang platziert. Dies kann nützlich sein, wenn man eine "beratende" (kooperative) Sperre erhalten möchte (siehe flock()) bevor man versucht, die Datei zu ändern, da die Nutzung von 'w' die Datei kürzen könnte, bevor die Sperre erhalten wurde (falls Kürzen gewünscht ist, kann ftruncate() genutzt werden, nachdem die Sperre angefragt wurde).
'c+' | Öffne Datei zum Lesen und Schreiben; ansonsten ist das Verhalten gleich wie bei 'c'.
'e' | Setzt das close-on-exec Flag für den geöffneten Datei-Descriptor. Nur verfügbar, wenn PHP auf POSIX.1-2008 konformen System kompiliert wurde.

Hinweis:

Verschiedene Betriebssysteme haben unterschiedliche Konventionen für das Zeilenende. Wenn Sie eine Textdatei schreiben und einen Zeilenumbruch einfügen möchten, müssen Sie das/die korrekte(n) Zeilenendszeichen für Ihr Betriebssystem nutzen. Unix-basierte Systeme nutzen \n als Zeilenendszeichen, Windows-basierte Systeme nutzen \r\n als Zeilenendszeichen und Macintosh-basierte Systeme (Mac OS Classic) nutzten \r als Zeilenendszeichen.

Wenn Sie die falschen Zeilenendszeichen beim Schreiben Ihrer Dateien nutzen, kann es sein, dass andere Anwendungen, die diese Dateien öffnen, "seltsam aussehen".

Windows bietet einen Text-Mode translations Flag ('t') an, der transparent \n zu \r\n übersetzt, wenn mit der Datei gearbeitet wird. Andererseits kann auch 'b' genutzt werden, um Binärmode zu erzwingen, der die Daten nicht übersetzt. Um diese Flags zu nutzen, wird entweder 'b' oder 't' als das letzte Zeichen des mode Parameters angegeben.

Der Standard Übersetzungsmodus ist 'b'. Es kann der 't' Modus genutzt werden, wenn mit Textdateien gearbeitet wird, und \n verwendet wird, um die Zeilenenden im Skript zu begrenzen, aber erwartet wird, dass die Dateien mit Anwendungen wie etwa alten Versionen von Notepad lesbar sind. Ansonsten sollte 'b' genutzt werden.

Wird beim Arbeiten mit binären Dateien das 't' Flag angegeben, können seltsame Probleme mit den Daten auftreten, einschließlich zerstörter Bild Dateien und merkwürdiger Probleme mit \r\n Zeichen.

Hinweis:

Aus Portabilitätsgründen wird ebenfalls dringend empfohlen, dass Code umgeschrieben wird, der den 't' Modus nutzt oder sich darauf verlässt, so dass die korrekten Zeilenendungen und der 'b' Modus stattdessen genutzt werden.

use_include_path

Der optionale dritte Parameter use_include_path kann auf '1' oder true gesetzt werden, wenn sie wollen, dass nach der Datei auch im include_path gesucht wird.

context

Hinweis: Die Kontext-Unterstützung gibt es seit PHP 5.0.0. Eine Beschreibung von Kontexten finden Sie unter Streams.

Rückgabewerte

Gibt bei Erfolg eine Dateizeiger Ressource zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Changelog

Version | Beschreibung
7.0.16, 7.1.2 | Die 'e' Option wurde hinzugefügt.

Beispiele

Beispiel #1 fopen() Beispiele

<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>

Anmerkungen

Warnung

Bei SSL-Verbindungen zusammen mit Microsoft IIS hält sich dieser Webserver nicht an das Protokoll und schließt die Verbindung ohne ein close_notify zu senden. PHP quittiert dieses Fehlverhalten mit "SSL: Fatal Protocol Error", wenn das Ende der Daten erreicht ist. Eine mögliche Lösung besteht darin, den Level von error_reporting herabzusetzten und Warnings auszuschließen. PHP kann fehlerhafte IIS-Serversoftware erkennen, wenn Sie einen Stream mit dem https://-Wrapper öffnen, und unterdrückt die Warnung für Sie. Falls Sie fsockopen() benutzen, um einen ssl://-Socket zu öffnen, müssen Sie selbst dafür Sorge tragen, die Warnung zu erkennen und diese zu unterdrücken.

Hinweis:

Treten beim Lesen und Schreiben von Dateien Probleme auf, und die die Server Modul Version von PHP wird verwendet, ist sicherzustellen, dass die Dateien und Verzeichnisse, die genutzt werden, für den Server Prozess zugänglich sind.

Hinweis:

Diese Funktion kann ebenfalls gelingen, wenn filename ein Verzeichnis ist. Im Zweifelsfall sollte vor dem Aufruf von fopen() mit is_dir() geprüft werden, ob filename eine Datei oder ein Verzeichnis ist.

Siehe auch

  • Unterstützte Protokolle und Wrapper
  • fclose() - Schließt einen offenen Dateizeiger
  • fgets() - Liest eine Zeile von der Position des Dateizeigers
  • fread() - Liest Binärdaten aus einer Datei
  • fwrite() - Binär-sicheres Dateischreiben
  • fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
  • file() - Liest eine komplette Datei in ein Array
  • file_exists() - Prüft, ob eine Datei oder ein Verzeichnis existiert
  • is_readable() - Prüft, ob eine Datei existiert und lesbar ist
  • stream_set_timeout() - Set timeout period on a stream
  • popen() - Öffnet einen Prozesszeiger
  • stream_context_create() - Creates a stream context
  • umask() - Changes the current umask
  • SplFileObject


Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.

  • « fopen
  • fputcsv »
  • PHP Manual
  • Dateisystem
  • Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.

fpassthru

(PHP 4, PHP 5, PHP 7, PHP 8)

fpassthru — Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.

Beschreibung

fpassthru ( resource $handle ) : int

Die Funktion liest alle Daten von der aktuellen Position des Dateizeigers bis EOF aus und schreibt die Daten in den Ausgabepuffer.

Eventuell müssen Sie rewind() aufrufen, um den Dateizeiger auf den Beginn der Datei zurückzusetzen, wenn Sie bereits Daten in die Datei geschrieben haben.

Wenn Sie den Inhalt einer Datei nur in den Ausgabepuffer schreiben wollen ohne diese ändern bzw. an eine bestimmte Stelle gehen wollen, sollten Sie besser readfile() benutzen, bei der Sie sich den Aufruf von fopen() ersparen.

Parameter-Liste

handle

Der Zeiger auf eine Datei muss gültig sein und auf eine Datei verweisen, die vorher erfolgreich mit fopen() oder fsockopen() geöffnet (und nicht bereits von fclose() geschlossen) wurde.

Rückgabewerte

Wenn ein Fehler auftritt, gibt fpassthru() false zurück. Andernfalls gibt fpassthru() die Anzahl der von handle gelesenen und zur Ausgabe weitergeleiteten Zeichen zurück.

Beispiele

Beispiel #1 Nutzung von fpassthru() mit binären Dateien

<?php

// Öffne Datei im binären Modus
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// Schicke passende Header Einträge
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// Gib Bild aus und stoppe Skript
fpassthru($fp);
exit;

?>

Anmerkungen

Hinweis:

Wenn Sie fpassthru() auf eine binäre Datei unter Windows anwenden, sollten Sie sicherstellen, dass die Datei im Binärmodus geöffnet wurde, indem Sie ein b an den Mode-Parameter von fopen() anhängen.

Auch wenn es Ihr System nicht verlangt, sollten Sie den b Flag bei Binärdateien verwenden, um die Portabilität Ihrer Skripte zu erhöhen.

Siehe auch

  • readfile() - Gibt eine Datei aus
  • fopen() - Öffnet eine Datei oder URL
  • popen() - Öffnet einen Prozesszeiger
  • fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her


Format line as CSV and write to file pointer

  • « fpassthru
  • fputs »
  • PHP Manual
  • Dateisystem
  • Format line as CSV and write to file pointer

fputcsv

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

fputcsv — Format line as CSV and write to file pointer

Beschreibung

fputcsv ( resource $handle , array $fields , string $delimiter = "," , string $enclosure = '"' , string $escape_char = "\\" ) : int|false

fputcsv() formats a line (passed as a fields array) as CSV and writes it (terminated by a newline) to the specified file handle.

Parameter-Liste

handle

Der Zeiger auf eine Datei muss gültig sein und auf eine Datei verweisen, die vorher erfolgreich mit fopen() oder fsockopen() geöffnet (und nicht bereits von fclose() geschlossen) wurde.

fields

An array of strings.

delimiter

The optional delimiter parameter sets the field delimiter (one character only).

enclosure

The optional enclosure parameter sets the field enclosure (one character only).

escape_char

The optional escape_char parameter sets the escape character (at most one character). An empty string ("") disables the proprietary escape mechanism.

Hinweis:

If an enclosure character is contained in a field, it will be escaped by doubling it, unless it is immediately preceded by an escape_char.

Rückgabewerte

Returns the length of the written string Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
7.4.0 | The escape_char parameter now also accepts an empty string to disable the proprietary escape mechanism.
5.5.4 | The escape_char parameter was added

Beispiele

Beispiel #1 fputcsv() example

<?php

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$fp = fopen('file.csv', 'w');

foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);
?>

The above example will write the following to file.csv:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Anmerkungen

Hinweis: Wenn Sie Probleme damit haben, dass PHP Zeilenendezeichen nicht erkennt, entweder beim Lesen von Dateien auf einem Macintosh oder bei Dateien, die auf einem Macintosh erstellt wurden, können Sie die Option auto_detect_line_endings aktivieren.

Siehe auch

  • fgetcsv() - Liest eine Zeile von der Position des Dateizeigers und prüft diese auf Komma-Separierte-Werte (CSV)


Alias von fwrite

  • « fputcsv
  • fread »
  • PHP Manual
  • Dateisystem
  • Alias von fwrite

fputs

(PHP 4, PHP 5, PHP 7, PHP 8)

fputs — Alias von fwrite()

Beschreibung

Diese Funktion ist ein Alias für: fwrite().


Liest Binärdaten aus einer Datei

  • « fputs
  • fscanf »
  • PHP Manual
  • Dateisystem
  • Liest Binärdaten aus einer Datei

fread

(PHP 4, PHP 5, PHP 7, PHP 8)

fread — Liest Binärdaten aus einer Datei

Beschreibung

fread ( resource $handle , int $length ) : string

fread() liest bis zu length Bytes vom Dateizeiger handle. Das Lesen wird beendet, sobald eine der folgenden Bedingungen eintritt:

  • length Bytes wurden gelesen
  • Das Dateiende (EOF, end of file) wurde erreicht
  • Ein Paket wird verfügbar oder eine Socket-Zeitüberschreitung tritt auf (Bei Netzwerk-Streams)
  • Falls dieser Stream beim Lesen gepuffert wird und keine reguläre Datei repräsentiert, wird maximal einmal ein Stück bis zur maximalen Chunkgröße (normalerweise 8192 Bytes) gelesen. Abhängig von den bisher gepufferten Daten können die zurückgelieferten Daten größer als die Chunkgröße sein.

Parameter-Liste

handle

Eine Dateisystemressource (resource), wie sie in der Regel von fopen() zurückgegeben wird.

length

Bis zu length Bytes lesen.

Rückgabewerte

Gibt die ausgelesene Zeichenkette zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ein einfaches fread()-Beispiel

<?php
// liest den Inhalt einer Datei in einen String
$filename = "/usr/local/etwas.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

Beispiel #2 Ein fread()-Beispiel mit einer Binärdatei

Warnung

Auf Systemen, welche zwischen Binär- und Textdateien (z.B. Windows) unterscheiden, muss die Datei mit 'b' im fopen() Mode-Parameter geöffnet werden.

<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

Beispiel #3 fread()-Beispiele für entfernte Dateien

Warnung

Wenn aus etwas gelesen werden soll, was keine normale lokale Datei ist, wie etwa Streams von entfernten Dateien oder von popen() und fsockopen(), so wird das Lesen beendet sobald ein Paket verfügbar ist. Das bedeutet, dass man die Daten in Stücken sammeln muss. Dies wird im unteren Beispiel gezeigt.

<?php
// Für PHP5 und höher
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>
<?php
$handle = fopen("http://www.example.com/", "rb");
if (FALSE === $handle) {
    exit("Konnte Stream von URL nicht öffnen");
}

$contents = '';

while (!feof($handle)) {
  $contents .= fread($handle, 8192);
}
fclose($handle);
?>

Anmerkungen

Hinweis:

Wenn man nur den Inhalt einer Datei in eine Zeichenkette lesen will, so sollte man file_get_contents() verwenden, da dies eine bessere Performance hat als der obige Code.

Hinweis:

Beachten Sie, dass fread() an der aktuellen Position im Dateizeiger zu lesen beginnt. Verwenden Sie ftell(), um herauszufinden wo dieser Zeiger steht und die Funktion rewind(), um den Zeiger zurückzustellen.

Siehe auch

  • fwrite() - Binär-sicheres Dateischreiben
  • fopen() - Öffnet eine Datei oder URL
  • fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
  • popen() - Öffnet einen Prozesszeiger
  • fgets() - Liest eine Zeile von der Position des Dateizeigers
  • fgetss() - Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
  • fscanf() - Interpretiert den Input einer Datei entsprechend einem angegebenen Format
  • file() - Liest eine komplette Datei in ein Array
  • fpassthru() - Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.
  • ftell() - Ermittelt die aktuelle Position des Dateizeigers
  • rewind() - Setzt die Position eines Dateizeigers auf den Anfang
  • unpack() - Entpackt die Daten einer binäre Zeichenkette


Interpretiert den Input einer Datei entsprechend einem angegebenen Format

  • « fread
  • fseek »
  • PHP Manual
  • Dateisystem
  • Interpretiert den Input einer Datei entsprechend einem angegebenen Format

fscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

fscanf — Interpretiert den Input einer Datei entsprechend einem angegebenen Format

Beschreibung

fscanf ( resource $handle , string $format , mixed &$... = ? ) : mixed

Die Funktion fscanf() ist ähnlich zu sscanf(), wobei sie ihren Input aus der mit handle angegebenen Datei liest, und entsprechend dem angegebenen format interpretiert. Der format Parameter is unter der sprintf() Funktion näher dokumentiert.

Beliebige Whitespace-Zeichen (z.B. Leerzeichen, Tabulator, etc.) im Format String gelten mit beliebigen Whitespace-Zeichen des Input-Streams als übereinstimmend. Das heißt, dass auch ein Tabulator \t im Format String mit einem einzigen Leerzeichen im Input-Stream als übereinstimmend gelten kann.

Jeder fscanf() Aufruf liest eine Zeile aus der Datei aus.

Parameter-Liste

handle

Eine Dateisystemressource (resource), wie sie in der Regel von fopen() zurückgegeben wird.

format

Der Formatstring setzt sich aus keiner oder mehreren Anweisungen zusammen: Normale Zeichen (abgesehen von %), die direkt in das Ergebnis kopiert werden und Konvertierungsanweisungen, die jeweils ihre eigenen Parameter abrufen.

Eine Konvertierungsanweisung folgt diesem Prototypen: %[ArgNum$][Flags][Weite][.Präzision]Spezifizierer.

ArgNum

Eine Ganzzahl gefolgt von einem Dollarzeichen $, die die Nummer des Arguments angibt, das für die Konversion verwendet werden soll.

Flags
Flag | Beschreibung
- Linksbündig innerhalb der angegebenen Feldbreite; Rechtsbündig ist der Standard
+ Positive Zahlen mit einem Pluszeichen +; Standardmäßig werden nur negative Zahlen mit negativen Vorzeichen ausgegeben
(Leerzeichen) | Füllt das Ergebnis mit Leerzeichen auf. Dies ist der Standard.
0 | Füllt nach Links mit Nullen auf. Mit dem s-Spezifizierer kann dies auch nach rechts mit Nullen auffüllen.
'(Zeichen) | Füllt das Ergebnis mit dem angegebenen Zeichen auf.

Weite

Eine Ganzzahle die angibt, wie viele Zeichen (Minimum) das Konvertierungsergebnis haben soll.

Präzision

Die Bedeutung eines Punkts . gefolgt von einer Ganzzahl hängt vom Spezifizierer ab:

  • Für die Spezifizierer e, E, f und F: Dies stellt die Anzahl der Nachkommastellen an, die nach dem Dezimaltrennzeichen ausgegeben werden soll (Standradmäßig ist dies 6).
  • Für die Spezifizierer g und G: Die maximale Anzahl der auszugebenenden signifikanten Nachkommastellen.
  • Für den s Spezifizierer: Verhält sich wie ein Abschneidepunkt, der eine maximale Anzahl an Zeichen in der Zeichenkette angibt.

Hinweis: Wenn der Punkt ohne einen expliziten Wert für die Präzision angegeben wird, wird 0 angenommen.

Hinweis: Wird ein Spezifizierer angegeben, der größer ist als PHP_INT_MAX, so wird eine Warnung ausgegeben.

Spezifizierer
Spezifizierer | Beschreibung
% Ein Prozentzeichen. Kein Parameter nötig.
b | Der Parameter wird als Ganzzahl behandelt und als Binärzahl ausgegeben.
c | Der Parameter wird als Ganzzahl behandelt und als Zeichen aus dem ASCII-Zeichensatz ausgegeben.
d | Der Parameter wird als Ganzzahl behandelt und als (vorzeichenbehaftete) Dezimalzahl ausgegeben.
e | Der Parameter wird als Zahl in wissenschaftlicher Schreibweise (z.B. 1.2e+2) behandelt. Die Angabe der Präzision steht seit PHP 5.2.1 für die Anzahl Zeichen nach dem Dezimalpunkt. In früheren Versionen wurde dies als die Anzahl signifikanter Dezimalstellen betrachtet (eins weniger).
E | Wie der Spezifizierer e, aber schreibt einen Großbuchstaben (z.B. 1.2E+2).
f | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl ausgegeben (abhängig von der Locale).
F | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl (unabhängig von der Locale) ausgegeben. Verfügbar seit PHP 5.0.3.
g

Generelles Format.

Sei P die Präzision wenn nicht Null, 6 wenn die Präzision nicht angegeben ist oder 1 wenn die Präzision Null ist. Dann, wenn eine Konvertierung mittels E einen Exponenten von X hätte:

Wenn P > X = -4 ist die Konvertierung mit Spezifizierer f und Präzision P - (X + 1). Andernfalls wie mit Spezifizierer e und Präzision P - 1.

G | Wie der Spezifizierer g, aber es wird E und f verwendet.
h | Wie der Spezifizierer g, aber es werden F verwendet. Verfügbar ab PHP 8.0.0.
H | Wie der Spezifizierer g, aber es werden E und F verwendet. Verfügbar ab PHP 8.0.0.
o | Der Parameter wird als Ganzzahl betrachtet und als Oktalzahl ausgegeben.
s | Der Parameter wird als Zeichenkette betrachtet und ausgegeben.
u | Der Parameter wird als Ganzzahl betrachtet und als vorzeichenlose Dezimalzahl ausgegeben.
x | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Kleinbuchstaben) ausgegeben.
X | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Großbuchstaben) ausgegeben.

Warnung

Der Spezifizierer c ignoriert Auffüllung und Weite.

Warnung

Der Versuch, die Kombination aus Zeichenketten mit Weite-Spezifizierern und Zeichensätzen die mehr als ein Byte pro zeichen erwarten zu verwenden, führt zu unvorhersehbaren Ergebnissen.

Variablen werden auf einen für den Spezifizier passenden Typen umgewandelt:

Typ-Behandlung
Typ | Spezifizierer
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

...

Optionale als Referenz übergebene Variablen, in welche die geparsten Werte geschrieben werden sollen.

Rückgabewerte

Wenn nur zwei Parameter an die Funktion übergeben wurden, werden die geparseten Werte in einem Array zurückgegeben. Andernfalls gibt die Funktion die anzahl der zugewiesenen Werte zurück. Die optionalen Parameter müssen per Referenz übergeben werden.

Beispiele

Beispiel #1 fscanf() Beispiel

<?php
$handle = fopen("users.txt", "r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
    list ($name, $profession, $countrycode) = $userinfo;
    // Tue etwas mit den Werten ...
}
fclose($handle);
?>

Beispiel #2 Inhalt der users.txt Datei

javier  argonaut        pe
hiroshi sculptor        jp
robert  slacker us
luigi   florist it

Siehe auch

  • fread() - Liest Binärdaten aus einer Datei
  • fgets() - Liest eine Zeile von der Position des Dateizeigers
  • fgetss() - Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
  • sscanf() - Überträgt einen String in ein angegebenes Format
  • printf() - Gibt einen formatierten String aus
  • sprintf() - Gibt einen formatierten String zurück


Positioniert den Dateizeiger

  • « fscanf
  • fstat »
  • PHP Manual
  • Dateisystem
  • Positioniert den Dateizeiger

fseek

(PHP 4, PHP 5, PHP 7, PHP 8)

fseek — Positioniert den Dateizeiger

Beschreibung

fseek ( resource $handle , int $offset , int $whence = SEEK_SET ) : int

Setzt den Dateizeiger einer mit handle angegebenen Datei auf eine neue Position. Diese neue Position, angegeben in Bytes vom Beginn der Datei an, wird definiert durch Hinzufügen von offset zu der Position spezifiziert durch whence.

Im Allgemeinen ist es erlaubt hinter das Ende der Datei (EOF) zu positionieren; wenn dann Daten geschrieben werden, ergeben Leseoperation in einer unbeschriebenen Region zwischen dem EOF und der gesetzten Position Bytes mit dem Wert 0. Allerdings unterstützen bestimmte Streams dieses Verhalten möglicherweise nicht, besonders wenn sie einen unterliegenden Speicher fester Größe haben.

Parameter-Liste

handle

Eine Dateisystemressource (resource), wie sie in der Regel von fopen() zurückgegeben wird.

offset

Der Offset.

Um zu einer Position vor EOF zu gelangen, übergeben Sie in offset einen negativen Wert und setzen Sie whence auf SEEK_END.

whence

whence Werte 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.

Rückgabewerte

Bei Erfolg wird 0 zurückgegeben, andernfalls -1.

Beispiele

Beispiel #1 fseek() Beispiel

<?php

$fp = fopen('somefile.txt', 'r');

// lies einige Daten
$data = fgets($fp, 4096);

// gehe zurück an den Anfang der Datei
// das selbe wie rewind($fp);
fseek($fp, 0);

?>

Anmerkungen

Hinweis:

Wenn Sie die Datei im Anfügemodus (a oder a+) geöffnet haben, werden jegliche Daten, die sie in die Datei schreiben, immer angehängt, unabhängig vom Dateizeiger, und das Ergebnis des Aufrufs von seek() ist undefiniert.

Hinweis:

Nicht alle Streams unterstützen Positionierung. Für jene, die Positionierung nicht unterstützen, kann Vorwärtspositionierung durch Lesen und Verwerfen von Daten erreicht werden; andere Formen der Positionierung schlagen fehl.

Siehe auch

  • ftell() - Ermittelt die aktuelle Position des Dateizeigers
  • rewind() - Setzt die Position eines Dateizeigers auf den Anfang


Sammelt Informationen über eine Datei mittels eines offenen Dateizeigers

  • « fseek
  • ftell »
  • PHP Manual
  • Dateisystem
  • Sammelt Informationen über eine Datei mittels eines offenen Dateizeigers

fstat

(PHP 4, PHP 5, PHP 7, PHP 8)

fstat — Sammelt Informationen über eine Datei mittels eines offenen Dateizeigers

Beschreibung

fstat ( resource $handle ) : array

Sammelt die Statistiken der Datei, die durch den Dateizeiger handle geöffnet wurde. Diese Funktion ist ähnlich zur Funktion stat(), mit dem Unterschied, dass sie mit einem offenen Dateizeiger anstatt eines Dateinamens arbeitet.

Parameter-Liste

handle

Eine Dateisystemressource (resource), wie sie in der Regel von fopen() zurückgegeben wird.

Rückgabewerte

Gibt ein Array mit den Statistiken der Datei zurück. Das Format des Arrays wird auf der stat()-Handbuchseite im Detail beschrieben.

Beispiele

Beispiel #1 fstat()-Beispiel

<?php

// öffne eine Datei
$fp = fopen("/etc/passwd", "r");

// sammle Statistiken
$fstat = fstat($fp);

// schließe die Datei
fclose($fp);

// gebe nur den assoziativen Teil aus
print_r(array_slice($fstat, 13));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Anmerkungen

Hinweis: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.


Ermittelt die aktuelle Position des Dateizeigers

  • « fstat
  • ftruncate »
  • PHP Manual
  • Dateisystem
  • Ermittelt die aktuelle Position des Dateizeigers

ftell

(PHP 4, PHP 5, PHP 7, PHP 8)

ftell — Ermittelt die aktuelle Position des Dateizeigers

Beschreibung

ftell ( resource $handle ) : int

Gibt die aktuelle Position des Dateizeigers, der durch handle referenziert wird, zurück.

Parameter-Liste

handle

Der Dateizeiger muss gültig sein und auf eine erfolgreich durch fopen() oder popen() geöffnete Datei zeigen. ftell() liefert undefinierte Ergebnisse für reine Anfüge-Streams (geöffnet mit einem "a" Flag).

Rückgabewerte

Gibt die aktuelle Position des Dateizeigers, der durch handle referenziert wird, als Integerzahl zurück, d.h. den Offset im Dateistream.

Wenn ein Fehler auftritt, wird false zurückgegeben.

Hinweis: Weil PHPs Integer Typ vorzeichenbehaftet ist und viele Platformen 32bit Integer verwenden, können einige Dateisystem-Funktionen für Dateien größer als 2GB unerwartete Ergebnisse liefern.

Beispiele

Beispiel #1 ftell() Beispiel

<?php

// öffnet eine Datei und liest einige Daten
$fp = fopen("/etc/passwd", "r");
$data = fgets($fp, 12);

// wo sind wir?
echo ftell($fp); // 11

fclose($fp);

?>

Siehe auch

  • fopen() - Öffnet eine Datei oder URL
  • popen() - Öffnet einen Prozesszeiger
  • fseek() - Positioniert den Dateizeiger
  • rewind() - Setzt die Position eines Dateizeigers auf den Anfang


Kürzt eine Datei auf die angegebene Länge

  • « ftell
  • fwrite »
  • PHP Manual
  • Dateisystem
  • Kürzt eine Datei auf die angegebene Länge

ftruncate

(PHP 4, PHP 5, PHP 7, PHP 8)

ftruncate — Kürzt eine Datei auf die angegebene Länge

Beschreibung

ftruncate ( resource $handle , int $size ) : bool

Nimmt den Dateizeiger handle, und verkürzt die Datei auf die Länge size.

Parameter-Liste

handle

Der Dateizeiger.

Hinweis:

handle muss zum Schreiben geöffnet sein.

size

Die Länge, auf die gekürzt werden soll.

Hinweis:

Ist size größer als die Datei, wird die Datei mit Null-Bytes aufgefüllt.

Ist size kleiner als die Datei, wird die Datei auf diese Größe gekürzt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Dateikürzungsbeispiel

<?php
$filename = 'lorem_ipsum.txt';

$handle = fopen($filename, 'r+');
ftruncate($handle, rand(1, filesize($filename)));
rewind($handle);
echo fread($handle, filesize($filename));
fclose($handle);
?>

Anmerkungen

Hinweis:

Der Dateizeiger wird nicht geändert.

Siehe auch

  • fopen() - Öffnet eine Datei oder URL
  • fseek() - Positioniert den Dateizeiger


Binär-sicheres Dateischreiben

  • « ftruncate
  • glob »
  • PHP Manual
  • Dateisystem
  • Binär-sicheres Dateischreiben

fwrite

(PHP 4, PHP 5, PHP 7, PHP 8)

fwrite — Binär-sicheres Dateischreiben

Beschreibung

fwrite ( resource $handle , string $string , int $length = ? ) : int

fwrite() schreibt den Inhalt der Zeichenkette string in die Datei, auf welche der Dateizeiger handle zeigt.

Parameter-Liste

handle

Eine Dateisystemressource (resource), wie sie in der Regel von fopen() zurückgegeben wird.

string

Die zu schreibende Zeichenkette.

length

Wenn der length Parameter angegeben wird, wird das Schreiben nach length Bytes beendet, oder wenn das Ende von string erreicht ist, je nachdem was eher eintritt.

Sollte der length Parameter gesetzt sein, so ist zu beachten, dass die magic_quotes_runtime Konfigurations-Option ignoriert wird und somit keine Schrägstriche mehr von der Zeichenkette string entfernt werden.

Rückgabewerte

fwrite() gibt die Anzahl der geschriebenen Bytes zurück, oder false bei einem Fehler.

Anmerkungen

Hinweis:

Das Schreiben in einen Netzwerkstream kann enden, bevor die gesamte Zeichenkette geschrieben wurde. Der Rückgabewert von fwrite() kann wie folgt überprüft werden:

<?php
function fwrite_stream($fp, $string) {
    for ($written = 0; $written < strlen($string); $written += $fwrite) {
        $fwrite = fwrite($fp, substr($string, $written));
        if ($fwrite === false) {
            return $written;
        }
    }
    return $written;
}
?>

Hinweis:

Auf Systemen, welche zwischen Binär- und Textdateien (z.B. Windows) unterscheiden, muss die Datei mit 'b' im fopen() Mode-Parameter geöffnet werden.

Hinweis:

Wurde handle mit fopen() im Anfügemodus geöffnet, ist das Schreiben mit fwrite() atomar (außer wenn die Länge von string die Blockgröße des Dateisystems auf manchen Systemen überschreitet, und so lange sich die Datei in einem lokalen Dateisystem befindet). D.h. es besteht keine Notwendigkeit eine Ressource mit flock() vor dem Aufruf von fwrite() zu sperren; alle Daten werden ohne Unterbrechung geschrieben.

Hinweis:

Wird zweimalig in den Dateizeiger geschrieben, werden die Daten an das Ende des Dateiinhalts angehängt:

<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);

// der Inhalt von 'data.txt' ist nun 123 und nicht 23!
?>

Beispiele

Beispiel #1 Ein einfaches Beispiel für fwrite

<?php
$filename = 'test.txt';
$somecontent = "Füge dies der Datei hinzu\n";

// Sichergehen, dass die Datei existiert und beschreibbar ist.
if (is_writable($filename)) {

    // Wir öffnen $filename im "Anhänge" - Modus.
    // Der Dateizeiger befindet sich am Ende der Datei, und
    // dort wird $somecontent später mit fwrite() geschrieben.
    if (!$handle = fopen($filename, "a")) {
         print "Kann die Datei $filename nicht öffnen";
         exit;
    }

    // Schreibe $somecontent in die geöffnete Datei.
    if (!fwrite($handle, $somecontent)) {
        print "Kann in die Datei $filename nicht schreiben";
        exit;
    }

    print "Fertig, in Datei $filename wurde $somecontent geschrieben";

    fclose($handle);

} else {
    print "Die Datei $filename ist nicht schreibbar";
}
?>

Siehe auch

  • fread() - Liest Binärdaten aus einer Datei
  • fopen() - Öffnet eine Datei oder URL
  • fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
  • popen() - Öffnet einen Prozesszeiger
  • file_get_contents() - Liest die gesamte Datei in einen String
  • pack() - Packt Daten in eine binäre Zeichenkette


Findet Dateinamen, die mit einem Muster übereinstimmen

  • « fwrite
  • is_dir »
  • PHP Manual
  • Dateisystem
  • Findet Dateinamen, die mit einem Muster übereinstimmen

glob

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

glob — Findet Dateinamen, die mit einem Muster übereinstimmen

Beschreibung

glob ( string $pattern , int $flags = 0 ) : array

glob() findet Dateipfade, die mit dem angegebenen Muster pattern übereinstimmen. Die Übereinstimmung wird nach den gleichen Regeln geprüft, wie in der glob()-Funktion der C-Bibliothek und entspricht weitgehend den Regeln in den üblichen Kommandozeilen-Shells.

Parameter-Liste

pattern

Das Suchmuster. Parameter- und Tilde-Ersetzung findet nicht statt.

Sonderzeichen:

  • * - kein oder mehrere Zeichen.
  • ? - genau ein Zeichen (irgendein Zeichen).
  • [...] - ein Zeichen einer Gruppe von Zeichen. Ist erste Zeichen ein !, dann jedes Zeichen, das nicht in der Gruppe enthalten ist.
  • \ - maskiert das folgende Zeichen, es sei denn, das GLOB_NOESCAPE Flag wurde verwendet.

flags

Mögliche Flags:

  • GLOB_MARK - Fügt jedem zurückgegebenen Verzeichnis einen Schrägstrich (einen Rückwärtsschrägstrich unter Windows) hinzu
  • GLOB_NOSORT - Gibt Dateinamen unsortiert in der Reihenfolge ihrer Verzeichniseinträge zurück. Wenn dieses Flag nicht verwendet wird, werden die Pfadnamen alphabetisch sortiert
  • GLOB_NOCHECK - Gibt das Suchmuster zurück, wenn keine übereinstimmende Dateinamen gefunden wurden
  • GLOB_NOESCAPE - Backslashes maskieren keine Metazeichen
  • GLOB_BRACE - {a,b,c} prüft auf 'a', 'b', oder 'c'
  • GLOB_ONLYDIR - Gibt nur übereinstimmende Verzeichnisnamen zurück
  • GLOB_ERR - Anhalten bei Lesefehlern (wie nicht-lesbaren Verzeichnis), standardmäßig werden Fehler ignoriert

Rückgabewerte

Gibt ein Array mit den übereinstimmenden Datei- und Verzeichnisnamen zurück. Wenn keine Treffer gefunden wurden, wird ein leeres Array zurückgegeben und im Fehlerfall false.

Hinweis:

Auf manchen Systemen ist es nicht möglich, zwischen einer leeren Ergebnismenge und einem aufgetretenen Fehler zu unterscheiden.

Changelog

Version | Beschreibung
5.1.0 | GLOB_ERR wurde hinzugefügt

Beispiele

Beispiel #1 Einfacher Ersatz von opendir() etc.

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename - Größe: " . filesize($filename) . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

funclist.txt - Größe: 44686
funcsummary.txt - Größe: 267625
quickref.txt - Größe: 137820

Anmerkungen

Hinweis: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.

Hinweis: Diese Funktion ist nicht auf allen Systemen verfügbar (z.B. nicht auf alten Sun-OS-Versionen).

Hinweis: Das GLOB_BRACE-Flag ist auf einigen nicht-GNU-Systemen (wie Solaris) nicht verfügbar.

Siehe auch

  • opendir() - Öffnen eines Verzeichnis-Handles
  • readdir() - Liest einen Eintrag aus einem Verzeichnis-Handle
  • closedir() - Schließen eines Verzeichnis-Handles
  • fnmatch() - Match filename against a pattern


Prüft, ob der angegebene Dateiname ein Verzeichnis ist

  • « glob
  • is_executable »
  • PHP Manual
  • Dateisystem
  • Prüft, ob der angegebene Dateiname ein Verzeichnis ist

is_dir

(PHP 4, PHP 5, PHP 7, PHP 8)

is_dir — Prüft, ob der angegebene Dateiname ein Verzeichnis ist

Beschreibung

is_dir ( string $filename ) : bool

Prüft, ob der angegebene Dateiname ein Verzeichnis ist.

Parameter-Liste

filename

Pfad zur Datei. Wenn filename ein relativer Dateiname ist, so wird er auch relativ zu dem aktuellen Verzeichnis geprüft. Wenn filename ein symbolischer oder harter Link ist, so wird der Link aufgelöst und geprüft. Falls open_basedir aktiviert ist, können weitere Einschränkungen berücksichtigt werden.

Rückgabewerte

Gibt true zurück, wenn der Dateiname existiert und ein Verzeichnis ist, sonst false.

Beispiele

Beispiel #1 is_dir()-Beispiel

<?php
var_dump(is_dir('eine_datei.txt'));
var_dump(is_dir('kein_verzeichnis/abc'));

var_dump(is_dir('..')); //ein Verzeichnis hoch
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(false)
bool(true)

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • chdir() - Wechseln des Verzeichnisses
  • dir() - Gibt eine Instanz der Directory Klasse zurück
  • opendir() - Öffnen eines Verzeichnis-Handles
  • is_file() - Prüft, ob der Dateiname eine reguläre Datei ist
  • is_link() - Prüft, ob der Dateiname ein symbolischer Link ist


Prüft, ob der Dateiname ausführbar ist

  • « is_dir
  • is_file »
  • PHP Manual
  • Dateisystem
  • Prüft, ob der Dateiname ausführbar ist

is_executable

(PHP 4, PHP 5, PHP 7, PHP 8)

is_executable — Prüft, ob der Dateiname ausführbar ist

Beschreibung

is_executable ( string $filename ) : bool

Prüft, ob der Dateiname ausführbar ist.

Parameter-Liste

filename

Pfad zur Datei.

Rückgabewerte

Gibt true zurück, wenn der Dateiname existiert und ausführbar ist, oder false im Fehlerfall.

Beispiele

Beispiel #1 is_executable()-Beispiel

<?php

$file = '/home/vincent/somefile.sh';

if (is_executable($file)) {
    echo $file.' ist ausführbar';
} else {
    echo $file.' ist nicht ausführbar';
}

?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • is_file() - Prüft, ob der Dateiname eine reguläre Datei ist
  • is_link() - Prüft, ob der Dateiname ein symbolischer Link ist


Prüft, ob der Dateiname eine reguläre Datei ist

  • « is_executable
  • is_link »
  • PHP Manual
  • Dateisystem
  • Prüft, ob der Dateiname eine reguläre Datei ist

is_file

(PHP 4, PHP 5, PHP 7, PHP 8)

is_file — Prüft, ob der Dateiname eine reguläre Datei ist

Beschreibung

is_file ( string $filename ) : bool

Prüft, ob der Dateiname eine reguläre Datei ist.

Parameter-Liste

filename

Pfad zur Datei.

Rückgabewerte

Gibt true zurück, wenn der Dateiname existiert und eine reguläre Datei ist, sonst false.

Hinweis: Weil PHPs Integer Typ vorzeichenbehaftet ist und viele Platformen 32bit Integer verwenden, können einige Dateisystem-Funktionen für Dateien größer als 2GB unerwartete Ergebnisse liefern.

Beispiele

Beispiel #1 is_file()-Beispiel

<?php
var_dump(is_file('eine_datei.txt')) . "\n";
var_dump(is_file('/usr/bin/')) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • is_dir() - Prüft, ob der angegebene Dateiname ein Verzeichnis ist
  • is_link() - Prüft, ob der Dateiname ein symbolischer Link ist


Prüft, ob der Dateiname ein symbolischer Link ist

  • « is_file
  • is_readable »
  • PHP Manual
  • Dateisystem
  • Prüft, ob der Dateiname ein symbolischer Link ist

is_link

(PHP 4, PHP 5, PHP 7, PHP 8)

is_link — Prüft, ob der Dateiname ein symbolischer Link ist

Beschreibung

is_link ( string $filename ) : bool

Prüft, ob der angegebene Dateiname ein symbolischer Link ist.

Parameter-Liste

filename

Pfad zur Datei.

Rückgabewerte

Gibt true zurück, wenn der Dateiname existiert und es sich um einen symbolischen Link handelt, sonst false.

Beispiele

Beispiel #1 Erstelle und bestätige, dass eine Datei ein symbolischer Link ist

<?php
$link = 'uploads';

if (is_link($link)) {
    echo readlink($link);
} else {
    symlink('uploads.php', $link);
}
?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • is_dir() - Prüft, ob der angegebene Dateiname ein Verzeichnis ist
  • is_file() - Prüft, ob der Dateiname eine reguläre Datei ist
  • readlink() - Liefert das Ziel eines symbolischen Links


Prüft, ob eine Datei existiert und lesbar ist

  • « is_link
  • is_uploaded_file »
  • PHP Manual
  • Dateisystem
  • Prüft, ob eine Datei existiert und lesbar ist

is_readable

(PHP 4, PHP 5, PHP 7, PHP 8)

is_readable — Prüft, ob eine Datei existiert und lesbar ist

Beschreibung

is_readable ( string $filename ) : bool

Gibt true zurück, wenn die Datei existiert und lesbar ist.

Parameter-Liste

filename

Pfad zur Datei.

Rückgabewerte

Gibt true zurück, wenn die Datei oder das Verzeichnis (angegeben durch filename) existiert und lesbar ist, sonst false.

Beispiele

Beispiel #1 is_readable()-Beispiel

<?php
$filename = 'test.txt';
if (is_readable($filename)) {
    echo 'Die Datei ist lesbar';
} else {
    echo 'Die Datei ist nicht lesbar';
}
?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Bedenken Sie, dass PHP mit der Benutzer-ID auf die Datei zugreift, unter der der Webserver läuft (oftmals ist dies 'nobody'). Beschränkungen durch safe_mode werden vor PHP 5.1.5 nicht berücksichtigt.

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Hinweis:

Die Prüfung wird mit der echten UID/GID anstelle der effektiven ID ausgeführt.

Diese Funktion kann true für Verzeichnisse zurück liefern. Mittels is_dir() kann zwischen Dateien und Verzeichnissen unterschieden werden.

Siehe auch

  • is_writable() - Prüft, ob in eine Datei geschrieben werden kann
  • file_exists() - Prüft, ob eine Datei oder ein Verzeichnis existiert
  • fgets() - Liest eine Zeile von der Position des Dateizeigers


Prüft, ob die Datei mittels HTTP-POST upgeloadet wurde

  • « is_readable
  • is_writable »
  • PHP Manual
  • Dateisystem
  • Prüft, ob die Datei mittels HTTP-POST upgeloadet wurde

is_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

is_uploaded_file — Prüft, ob die Datei mittels HTTP-POST upgeloadet wurde

Beschreibung

is_uploaded_file ( string $filename ) : bool

Gibt true zurück, wenn die Datei filename mittels HTTP-POST hochgeladen wurde. Dies ist hilfreich, um sicherzustellen, dass kein böswilliger Nutzer versucht hat, das Skript zu überlisten, indem er es Dateien bearbeiten lässt, die es gar nicht bearbeiten sollte, zum Beispiel /etc/passwd.

Diese Prüfung ist insbesondere dort interessant, wo irgendeine Aktion mit upgeloadeten Dateien deren Inhalt dem Nutzer (oder sogar anderen Nutzern auf dem gleichen System) zugänglich machen könnte.

Um korrekt arbeiten zu können, benötigt die Funktion is_uploaded_file() einen Parameter wie $_FILES['userfile']['tmp_name']. Der Name der upgeloadeten Datei auf dem Anwenderrechner $_FILES['userfile']['name'] funktioniert nicht.

Parameter-Liste

filename

Der zu prüfende Dateiname.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 is_uploaded_file()-Beispiel

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo "Datei ". $_FILES['userfile']['name'] ." erfolgreich upgeloadet.\n";
   echo "Anzeige des Inhalts\n";
   readfile($_FILES['userfile']['tmp_name']);
} else {
   echo "Mögliche Dateiupload-Attacke: ";
   echo "Dateiname '". $_FILES['userfile']['tmp_name'] . "'.";
}

?>

Siehe auch

  • move_uploaded_file() - Verschiebt eine hochgeladene Datei an einen neuen Ort
  • $_FILES
  • Siehe Steuerung von Dateiuploads für ein einfaches Anwendungsbeispiel.


Prüft, ob in eine Datei geschrieben werden kann

  • « is_uploaded_file
  • is_writeable »
  • PHP Manual
  • Dateisystem
  • Prüft, ob in eine Datei geschrieben werden kann

is_writable

(PHP 4, PHP 5, PHP 7, PHP 8)

is_writable — Prüft, ob in eine Datei geschrieben werden kann

Beschreibung

is_writable ( string $filename ) : bool

Gibt true zurück, wenn filename existiert und schreibbar ist. Der Dateinamens-Parameter kann auch ein Verzeichnisname sein, um prüfen zu können, ob ein Verzeichnis schreibbar ist.

Bedenken Sie, dass PHP mit der Benutzer-ID auf die Datei zugreift, unter der der Webserver läuft (oftmals ist dies 'nobody'). Beschränkungen durch safe_mode werden nicht berücksichtigt.

Parameter-Liste

filename

Der zu prüfende Dateiname.

Rückgabewerte

Gibt true zurück, wenn filename existiert und schreibbar ist.

Beispiele

Beispiel #1 is_writable()-Beispiel

<?php
$filename = 'test.txt';
if (is_writable($filename)) {
    echo 'Die Datei kann geschrieben werden';
} else {
    echo 'Die Datei kann nicht geschrieben werden';
}
?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • is_readable() - Prüft, ob eine Datei existiert und lesbar ist
  • file_exists() - Prüft, ob eine Datei oder ein Verzeichnis existiert
  • fwrite() - Binär-sicheres Dateischreiben


Alias von is_writable

  • « is_writable
  • lchgrp »
  • PHP Manual
  • Dateisystem
  • Alias von is_writable

is_writeable

(PHP 4, PHP 5, PHP 7, PHP 8)

is_writeable — Alias von is_writable()

Beschreibung

Diese Funktion ist ein Alias für: is_writable().


Changes group ownership of symlink

  • « is_writeable
  • lchown »
  • PHP Manual
  • Dateisystem
  • Changes group ownership of symlink

lchgrp

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

lchgrp — Changes group ownership of symlink

Beschreibung

lchgrp ( string $filename , string|int $group ) : bool

Attempts to change the group of the symlink filename to group.

Only the superuser may change the group of a symlink arbitrarily; other users may change the group of a symlink to any group of which that user is a member.

Parameter-Liste

filename

Path to the symlink.

group

The group specified by name or number.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Changing the group of a symbolic link

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchgrp($link, 8);
?>

Anmerkungen

Hinweis: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.

Hinweis: Diese Funktion ist auf Windows-Plattformen nicht verfügbar.

Siehe auch

  • chgrp() - Wechselt die Gruppenzugehörigkeit einer Datei
  • lchown() - Changes user ownership of symlink
  • chown() - Ändert den Eigentümer einer Datei
  • chmod() - Ändert die Zugriffsrechte einer Datei


Changes user ownership of symlink

  • « lchgrp
  • link »
  • PHP Manual
  • Dateisystem
  • Changes user ownership of symlink

lchown

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

lchown — Changes user ownership of symlink

Beschreibung

lchown ( string $filename , string|int $user ) : bool

Attempts to change the owner of the symlink filename to user user.

Only the superuser may change the owner of a symlink.

Parameter-Liste

filename

Path to the file.

user

User name or number.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Changing the owner of a symbolic link

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchown($link, 8);
?>

Anmerkungen

Hinweis: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.

Hinweis: Diese Funktion ist auf Windows-Plattformen nicht verfügbar.

Siehe auch

  • chown() - Ändert den Eigentümer einer Datei
  • lchgrp() - Changes group ownership of symlink
  • chgrp() - Wechselt die Gruppenzugehörigkeit einer Datei
  • chmod() - Ändert die Zugriffsrechte einer Datei


Erzeugt einen harten Link

  • « lchown
  • linkinfo »
  • PHP Manual
  • Dateisystem
  • Erzeugt einen harten Link

link

(PHP 4, PHP 5, PHP 7, PHP 8)

link — Erzeugt einen harten Link

Beschreibung

link ( string $target , string $link ) : bool

link() erzeugt einen harten Link

Parameter-Liste

target

Das Ziel des Links.

link

Der Linkname.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.3.0 | Diese Funktion ist nun verfügbar unter Windows-Plattformen (Vista, Server 2008 or neuer).

Beispiele

Beispiel #1 Erstellen eines harten Links

<?php

$target = 'quelle.ext';    // Die ist die bereits existierende Datei
$link   = 'neuedatei.ext'; // Dies ist der Dateiname, auf den verlinkt
                           // werden soll

link($target, $link);
?>

Anmerkungen

Hinweis: Diese Funktion kann nicht mit entfernten Dateien arbeiten, da der Zugriff auf die Datei, die bearbeitet werden soll, über das Dateisystem des Servers möglich sein muss.

Hinweis: Nur für Windows: Diese Funktion setzt voraus, dass PHP in einem erhöhten Modus oder mit deaktivierter Benutzerkontensteuerung (UAC) läuft.

Siehe auch

  • symlink() - Erzeugt einen symbolischen Link
  • readlink() - Liefert das Ziel eines symbolischen Links
  • linkinfo() - Liefert Informationen über einen Link


Liefert Informationen über einen Link

  • « link
  • lstat »
  • PHP Manual
  • Dateisystem
  • Liefert Informationen über einen Link

linkinfo

(PHP 4, PHP 5, PHP 7, PHP 8)

linkinfo — Liefert Informationen über einen Link

Beschreibung

linkinfo ( string $path ) : int

Liefert Informationen über einen Link.

Diese Funktion wird benutzt, um zu verifizieren, ob ein Link (auf den mit path gezeigt wird) wirklich existiert. Dabei wird die gleiche Methode benutzt, die in dem S_ISLNK-Makro in stat.h definiert ist).

Parameter-Liste

path

Pfad zum Link.

Rückgabewerte

linkinfo() gibt das st_dev-Feld der Unix-C-Stat-Struktur, die vom lstat-Systemaufruf zurückgegeben wird, zurück. Gibt im Erfolgsfall eine nicht-negative Ganzzahl zurück; -1 im Fall, dass der Link nicht gefunden wurde, oder false falls ein open_base_dir Verstoß erfolgt.

Changelog

Version | Beschreibung
5.3.0 | Diese Funktion ist nun verfügbar unter Windows-Plattformen (Vista, Server 2008 or neuer).

Beispiele

Beispiel #1 linkinfo()-Beispiel

<?php

echo linkinfo('/vmlinuz'); // 835

?>

Siehe auch

  • symlink() - Erzeugt einen symbolischen Link
  • link() - Erzeugt einen harten Link
  • readlink() - Liefert das Ziel eines symbolischen Links


Sammelt Informationen über eine Datei oder einen symbolischen Link

  • « linkinfo
  • mkdir »
  • PHP Manual
  • Dateisystem
  • Sammelt Informationen über eine Datei oder einen symbolischen Link

lstat

(PHP 4, PHP 5, PHP 7, PHP 8)

lstat — Sammelt Informationen über eine Datei oder einen symbolischen Link

Beschreibung

lstat ( string $filename ) : array

Sammelt Statistiken über die Datei oder den symbolischen Link, die bzw. der in filename angegeben ist.

Parameter-Liste

filename

Pfad zur Datei oder zum symbolischen Link.

Rückgabewerte

Bitte lesen Sie die Handbuchseite zu stat() für Informationen über die Struktur des Arrays, das lstat() zurückgibt. Diese Funktion ist identisch zur stat()-Funktion, mit dem Unterschied, dass, falls filename ein symbolischer Link ist, dessen Statistik zurückgegeben wird und nicht der Status der Datei, auf die der symbolische Link zeigt.

Beispiele

Beispiel #1 Vergleich von stat() und lstat()

<?php
symlink('uploads.php', 'uploads');

// Vergleiche die Informationen von uploads.php und uploads
array_diff(stat('uploads'), lstat('uploads'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Unterschiede in den Informationen beider Dateien.

Array
(
    [ino] => 97236376
    [mode] => 33188
    [size] => 34
    [atime] => 1223580003
    [mtime] => 1223581848
    [ctime] => 1223581848
    [blocks] => 8
)

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • stat() - Sammelt Informationen über eine Datei


Erstellt ein Verzeichnis

  • « lstat
  • move_uploaded_file »
  • PHP Manual
  • Dateisystem
  • Erstellt ein Verzeichnis

mkdir

(PHP 4, PHP 5, PHP 7, PHP 8)

mkdir — Erstellt ein Verzeichnis

Beschreibung

mkdir ( string $pathname , int $mode = 0777 , bool $recursive = false , resource $context = ? ) : bool

Versucht ein Verzeichnis mit dem angegebenen Namen zu erstellen.

Parameter-Liste

pathname

Der Verzeichnispfad.

mode

Der Modus ist standardmäßig 0777, was den größtmöglichen Zugang umfasst. Für weitere Informationen lesen Sie bitte die Details auf der chmod()-Seite.

Hinweis:

mode wird unter Windows ignoriert.

Beachten Sie, dass Sie den Modus als oktalen Wert angeben sollten, d.h., dass er eine führende Null haben sollte. Der Modus wird auch durch die aktuelle umask geändert, die Sie mit umask() ändern können.

recursive

Erlaubt die Erstellung von im pathname angegebenen verschachtelten Verzeichnissen.

context

Hinweis: Die Kontext-Unterstützung gibt es seit PHP 5.0.0. Eine Beschreibung von Kontexten finden Sie unter Streams.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mkdir()-Beispiel

<?php
mkdir("/path/to/my/dir", 0700);
?>

Beispiel #2 mkdir() mit dem recursive-Parameter benutzen

<?php
// Gewünschte Verzeichnisstruktur
$structure = './stufe1/stufe2/stufe3/';

// Zur Erstellung der verschachtelten Struktur muss der $recursive-Parameter
// von mkdir() angegeben werden

if (!mkdir($structure, 0777, true)) {
    die('Erstellung der Verzeichnisse schlug fehl...');
}

// ...
?>

Fehler/Exceptions

Erzeugt einen Fehler der Stufe E_WARNING, falls das Verzeichnis bereits existiert.

Erzeugt einen Fehler der Stufe E_WARNING, wenn die relevanten Zugriffsrechte das Erstellen des Verzeichnisses verhindern.

Siehe auch

  • is_dir() - Prüft, ob der angegebene Dateiname ein Verzeichnis ist
  • rmdir() - Löscht ein Verzeichnis


Verschiebt eine hochgeladene Datei an einen neuen Ort

  • « mkdir
  • parse_ini_file »
  • PHP Manual
  • Dateisystem
  • Verschiebt eine hochgeladene Datei an einen neuen Ort

move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

move_uploaded_file — Verschiebt eine hochgeladene Datei an einen neuen Ort

Beschreibung

move_uploaded_file ( string $filename , string $destination ) : bool

Diese Funktion prüft, dass die mit filename bezeichnete Datei eine gültige Upload-Datei ist (d.h., dass sie mittels PHP's HTTP POST Upload-Mechanismus hochgeladen wurde). Ist die Datei gültig, wird sie zum in destination bezeichneten Dateinamen verschoben.

Diese Art der Prüfung ist besonders wichtig, wo irgendeine Aktion mit hochgeladenen Dateien deren Inhalt dem User zugänglich machen könnte, oder gar anderen Usern auf dem selben System.

Parameter-Liste

filename

Der Dateiname der hochgeladenen Datei.

destination

Das Ziel der zu verschiebenden Datei.

Rückgabewerte

Gibt bei Erfolg true zurück.

Ist filename keine gültige Datei, wird keine Aktion ausgeführt, und move_uploaded_file() gibt false zurück.

Ist filename eine gültige Datei, jedoch aus irgendeinem Grund nicht verschoben werden kann, wird keine Aktion ausgeführt, und move_uploaded_file() gibt false zurück. Zusätzlich wird eine Warnung ausgegeben.

Beispiele

Beispiel #1 Hochladen mehrerer Dateien

<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        // basename() kann Directory-Traversal-Angriffe verhindern;
        // weitere Validierung/Bereinigung des Dateinamens kann angebracht sein
        $name = basename($_FILES["pictures"]["name"][$key]);
        move_uploaded_file($tmp_name, "$uploads_dir/$name");
    }
}
?>

Anmerkungen

Hinweis:

move_uploaded_file() berücksichtigt open_basedir. Allerdings werden die Beschränkungen nur auf den destination Pfad angewandt, um das Verschieben von hochgeladenen Dateien zu erlauben, bei denen sich filename mit den Beschränkungen im Konflikt befinden könnte. move_uploaded_file() gewährleistet die Sicherheit dieser Operation dadurch, dass nur diejenigen Dateien verschoben werden dürfen, die mit PHP hochgeladen wurden.

Warnung

Existiert die Zieldatei bereits, wird sie überschrieben.

Siehe auch

  • is_uploaded_file() - Prüft, ob die Datei mittels HTTP-POST upgeloadet wurde
  • rename() - Benennt eine Datei oder ein Verzeichnis um
  • See Handling file uploads for a simple usage example


Parst eine Konfigurationsdatei

  • « move_uploaded_file
  • parse_ini_string »
  • PHP Manual
  • Dateisystem
  • Parst eine Konfigurationsdatei

parse_ini_file

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_ini_file — Parst eine Konfigurationsdatei

Beschreibung

parse_ini_file ( string $filename , bool $process_sections = false , int $scanner_mode = INI_SCANNER_NORMAL ) : array

parse_ini_file() lädt die in filename angegebene Datei, und gibt die darin enthaltenen Einstellungen in einem assoziativen Array zurück.

Die Struktur der Ini-Datei ist identisch zur php.ini.

Parameter-Liste

filename

Der Dateiname der zu ladenden ini-Datei.

process_sections

Setzt man den Parameter process_sections auf true, erhält man ein mehrdimensionales Array mit den Gruppennamen und Einstellungen. Der Standardwert für process_sections ist false

scanner_mode

Kann entweder INI_SCANNER_NORMAL (Standard) oder INI_SCANNER_RAW sein. Ist INI_SCANNER_RAW gesetzt, so werden die Werte der Optionen nicht geparst.

Seit PHP 5.6.1 kann auch INI_SCANNER_TYPED angegeben werden. In diesem Modus werden soweit möglich die Typen von Boolean-, Null- oder Integer-Werten beibehalten. Die Zeichenketten "true", "on" und "yes" werden zu true konvertiert. "false", "off", "no" und "none" werden als false angesehen. "null" wird in diesem Modus zu null. Soweit möglich werden alle numerischen Zeichenketten zu Integertypen umgewandelt.

Rückgabewerte

Im Erfolgsfall werden die Einstellungen als assoziatives Array zurückgegeben, ansonsten false.

Changelog

Version | Beschreibung
7.0.0 | Das Raute-Symbol (#) kann nicht mehr für Kommentare verwendet werden.
5.6.1 | Neuen Modus INI_SCANNER_TYPED hinzugefügt.
5.3.0 | Der optionale Parameter scanner_mode wurde hinzugefügt. Einfache Anführungszeichen können nun um Variablenzuordnungen herum verwendet werden. Rautezeichen (# können nicht länger für Kommentare verwendet werden und bei Verwendung wird eine Warnung zur veralteten Benutzung ausgegeben.
5.2.7 | Bei einem Syntaxfehler gibt die Funktion nun false statt eines leeren Array zurück.
5.2.4 | Schlüssel und Gruppennamen mit Ziffern werden nun als Integer von PHP ausgewertet, weshalb Zahlen, die mit einer 0 beginnen, als Oktalzahlen und Zahlen, die mit 0x beginnen, als Hexadezimalzahlen verstanden werden.

Beispiele

Beispiel #1 Inhalt der sample.ini

; Dies ist ein Beispiel für eine Konfigurationsdatei
; Kommentare beginnen wie in der php.ini mit ';'

[erste_gruppe]
eins = 1
fünf = 5
tier = VOGEL

[zweite_gruppe]
pfad = /usr/local/bin
URL = "http://www.example.com/~username"

[dritte_gruppe]
phpversion[] = "5.0"
phpversion[] = "5.1"
phpversion[] = "5.2"
phpversion[] = "5.3"

urls[svn] = "http://svn.php.net"
urls[git] = "http://git.php.net"

Beispiel #2 parse_ini_file()-Beispiel

Konstanten in einer Ini-Datei können ebenfalls geparst werden indem man eine Konstante als INI-Wert definiert, bevor parse_ini_file() aufgerufen wird. Dieser Wert wird in die Ergebnisse integriert, dabei werden nur INI-Werte ausgewertet. Zum Beispiel:

<?php

define ('VOGEL', 'Amsel');

// Ohne Gruppen analysieren
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);

// Mit Gruppen analysieren
$ini_array = parse_ini_file("sample.ini", TRUE);
print_r($ini_array);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [eins] => 1
    [fünf] => 5
    [tier] => Amsel
    [pfad] => /usr/local/bin
    [URL] => http://www.example.com/~username
    [phpversion] => Array
        (
            [0] => 5.0
            [1] => 5.1
            [2] => 5.2
            [3] => 5.3
        )

    [urls] => Array
        (
            [svn] => http://svn.php.net
            [git] => http://git.php.net
        )
)
Array
(
    [erste_gruppe] => Array
        (
            [eins] => 1
            [fünf] => 5
            [tier] => Amsel
        )

    [zweite_gruppe] => Array
        (
            [pfad] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

    [dritte_gruppe] => Array
        (
            [phpversion] => Array
                (
                    [0] => 5.0
                    [1] => 5.1
                    [2] => 5.2
                    [3] => 5.3
                )

            [urls] => Array
                (
                    [svn] => http://svn.php.net
                    [git] => http://git.php.net
                )

      )

)

Beispiel #3 parse_ini_file() parst eine php.ini

<?php
    // Eine einfache Funktion, um das Ergebnis zu vergleichen
    function janein($expression)
    {
        return($expression ? 'Ja' : 'Nein');
    }

    // Pfad der php.ini mittels der Funktion php_ini_loaded_file()
    // holen, die seit PHP 5.2.4 verfügbar ist
    $ini_path = php_ini_loaded_file();

    // Parsen der php.ini
    $ini = parse_ini_file($ini_path);

    // Werte ausgeben und vergleichen. Beachten Sie dass die Verwendung von
    // get_cfg_var() die gleichen Ergebnisse für geparste und geladene
    // Werte geben wird
    echo '(geparst) magic_quotes_gpc = ' . janein($ini['magic_quotes_gpc']) . PHP_EOL;
    echo '(geladen) magic_quotes_gpc = ' . janein(get_cfg_var('magic_quotes_gpc')) . PHP_EOL;
    ?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    (geparst) magic_quotes_gpc = Ja
    (geladen) magic_quotes_gpc = Nein

Anmerkungen

Hinweis:

Diese Funktion hat nichts mit dem Laden der php.ini-Datei zu tun. Diese ist zum Ausführungszeitpunkt Ihres Skriptes bereits vollständig verarbeitet. Diese Funktion kann verwendet werden, um die Konfigurationsdateien Ihrer eigenen Anwendung zu lesen.

Hinweis:

Falls ein Wert der Ini-Datei ein nicht alphanumerisches Zeichen enthält muss dieser Wert in doppelte Anführungszeichen (") eingeschlossen werden.

Hinweis: Es gibt reservierte Schlüsselwörter, welche nicht als Schlüssel in Ini-Dateien verwendet werden dürfen. Diese umfassen: null, yes, no, true, false, on, off, none. Die Werte null, off, no und false ergeben "" und die Werte on, yes and true ergeben "1", solange der Modus INI_SCANNER_TYPED nicht verwendet wird (seit PHP 5.6.1). Die Zeichen ?{}|&~!()^" dürfen in einem Schlüssel nicht verwendet werden und haben im Wert besondere Bedeutung.

Hinweis:

Einträge ohne Gleichheitszeichen werden ignoriert. Beispielsweise würde "foo" ignoriert werden, während "bar =" geparst und mit einem leeren Wert hinzugefügt würde. Beispielsweise hat MySQL eine Einstellung "no-auto-rehash" in der my.cnf welche keinen Wert enthält und somit ignoriert würde.

Siehe auch

  • parse_ini_string() - Analysiert einen Konfigurations-String


Analysiert einen Konfigurations-String

  • « parse_ini_file
  • pathinfo »
  • PHP Manual
  • Dateisystem
  • Analysiert einen Konfigurations-String

parse_ini_string

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

parse_ini_string — Analysiert einen Konfigurations-String

Beschreibung

parse_ini_string ( string $ini , bool $process_sections = false , int $scanner_mode = INI_SCANNER_NORMAL ) : array

parse_ini_string() Gibt die Konfiguration aus dem String ini in einem assoziativen Array zurück.

Die Struktur des ini-Strings ist die selbe wie die der php.ini

Parameter-Liste

ini

Der Inhalt der ini-Datei die analysiert wird.

process_sections

Ist der Parameter process_sections als true gesetzt, werden Sie ein mehrdimensionales Array zurückbekommen, welches die Abschnitte und Einstellungen enthält. Die Standardeinstellung process_sections ist false

scanner_mode

Kann entweder INI_SCANNER_NORMAL (normal) oder INI_SCANNER_RAW sein. Wenn INI_SCANNER_RAW angegeben ist, werden optionale Inhalte nicht analysiert.

Seit PHP 5.6.1 kann auch INI_SCANNER_TYPED angegeben werden. In diesem Modus werden soweit möglich die Typen von Boolean-, Null- oder Integer-Werten beibehalten. Die Zeichenketten "true", "on" und "yes" werden zu true konvertiert. "false", "off", "no" und "none" werden als false angesehen. "null" wird in diesem Modus zu null. Soweit möglich werden alle numerischen Zeichenketten zu Integertypen umgewandelt.

Rückgabewerte

Die Einstellungen werden als assoziatives Array bei Erfolg, und false bei einem Fehler zurückgegeben..

Anmerkungen

Hinweis: Es gibt reservierte Wörter die nicht als Keys für die ini-Dateien benutzt werden dürfen. Dies schließt null, yes, no, true, false, on, off und none ein. Die Werte null, off, no und false geben "" zurück, und die Werte on, yes und true "1", es sei denn der INI_SCANNER_TYPED-Modus wird verwendet. Die Buchstaben ?{}|&~![()^" dürfen nirgendwo inm Key benutzt werden und haben eine spezielle Bedeutung.

Siehe auch

  • parse_ini_file() - Parst eine Konfigurationsdatei


Liefert Informationen über einen Dateipfad

  • « parse_ini_string
  • pclose »
  • PHP Manual
  • Dateisystem
  • Liefert Informationen über einen Dateipfad

pathinfo

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pathinfo — Liefert Informationen über einen Dateipfad

Beschreibung

pathinfo ( string $path , int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ) : mixed

pathinfo() gibt Informationen über einen Dateipfad (path) zurück: entweder als assoziatives Array oder als String, abhängig vom options-Parameter.

Hinweis:

Informationen über das Wiederauffinden der aktuellen Pfadinformation finden Sie unter Vordefinierte Variablen.

Achtung

pathinfo() berücksichtigt die locale-Einstellung. Um einen Pfad, der Multibyte-Zeichen enthält, korrekt parsen zu können, muss die entsprechende locale mit der setlocale()-Funktion gesetzt werden.

Parameter-Liste

path

Der zu analysierende Dateipfad.

options

Falls angegeben, wird nur dieses eine Element zurückgegeben. Mögliche Werte: PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION oder PATHINFO_FILENAME.

Falls options nicht angegeben wird, werden alle verfügbaren Elemente zurückgegeben.

Rückgabewerte

Falls der options-Parameter nicht angegeben wird, wird ein assoziatives Array mit den folgenden Elementen zurückgegeben: dirname, basename, extension (falls vorhanden) und filename.

Hinweis:

Wenn der path mehr als eine Erweiterung hat, gibt PATHINFO_EXTENSION nur die letzte zurück, und PATHINFO_FILENAME entfernt nur die letzte. (Siehe auch das erste Beispiel weiter unten.)

Hinweis:

Falls path keine Erweiterung hat, wird das extension-Element nicht zurückgegeben (siehe das zweite Beispiel unten).

Hinweis:

Beginnt der basename des path mit einem Punkt, werden die folgenden Zeichen als extension interpretiert, und der filename ist leer (siehe das dritte Beispiel unten).

Falls options genutzt wird, gibt diese Funktion einen String mit dem gewünschten Element zurück.

Changelog

Version | Beschreibung
5.2.0 | Die PATHINFO_FILENAME-Konstante wurde hinzugefügt.

Beispiele

Beispiel #1 pathinfo()-Beispiel

<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // seit PHP 5.2.0
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

/www/htdocs/inc
lib.inc.php
php
lib.inc

Beispiel #2 pathinfo()-Beispiel für den Unterschied zwischen einer leeren und keiner Erweiterung

<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);

$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(0) ""

Notice: Undefined index: extension in /test.php on line 6
NULL

Beispiel #3 pathinfo()-Beispiel für eine Punktdatei

<?php
print_r(pathinfo('/some/path/.test'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [dirname] => /some/path
    [basename] => .test
    [extension] => test
    [filename] =>
)

Siehe auch

  • dirname() - Gibt den Pfad des übergeordneten Verzeichnisses zurück
  • basename() - Gibt letzten Namensteil einer Pfadangabe zurück
  • parse_url() - Analysiert eine URL und gibt ihre Bestandteile zurück
  • realpath() - Löst einen Pfad in einen absoluten und eindeutigen auf


Schließt einen Prozess-Dateizeiger

  • « pathinfo
  • popen »
  • PHP Manual
  • Dateisystem
  • Schließt einen Prozess-Dateizeiger

pclose

(PHP 4, PHP 5, PHP 7, PHP 8)

pclose — Schließt einen Prozess-Dateizeiger

Beschreibung

pclose ( resource $handle ) : int

Schließt einen Prozess-Dateizeiger, der durch einen Aufruf von popen() geöffnet wurde.

Parameter-Liste

handle

Der Dateizeiger muss gültig und durch einen erfolgreichen Funktionsaufruf von popen() zurückgegeben worden sein.

Rückgabewerte

Gibt den End-Status des ausgeführten Prozesses zurück. Im Fehlerfall wird -1 zurückgegeben.

Hinweis:

Falls PHP mit der Option --enable-sigchild kompiliert wurde, ist die Rückgabe dieser Funktion nicht definiert.

Beispiele

Beispiel #1 pclose() Beispiel

<?php
$handle = popen('/bin/ls', 'r');
pclose($handle);
?>

Anmerkungen

Hinweis: Nur unter Unix:

pclose() ist intern unter Verwendung des waitpid(3) Systemaufrufs implementiert. Um den wirklichen Exit-Statuscode zu erhalten, sollte die Funktion pcntl_wexitstatus() verwendet werden.

Siehe auch

  • popen() - Öffnet einen Prozesszeiger


Öffnet einen Prozesszeiger

  • « pclose
  • readfile »
  • PHP Manual
  • Dateisystem
  • Öffnet einen Prozesszeiger

popen

(PHP 4, PHP 5, PHP 7, PHP 8)

popen — Öffnet einen Prozesszeiger

Beschreibung

popen ( string $command , string $mode ) : resource

Öffnet eine Verbindung zu einem Prozess, der durch das Kommando command ausgeführt wurde.

Parameter-Liste

command

Das Kommando

mode

Der Modus

Rückgabewerte

Gibt einen Dateizeiger zurück, der identisch ist mit dem, der bei der Funktion fopen() zurückgegeben wird, außer dass dieser nur in eine Richtung funktioniert (entweder lesend oder schreibend) und mit der Funktion pclose() geschlossen werden muss. Dieser Zeiger kann mit den Funktionen fgets(), fgetss() und fwrite() benutzt werden. Ist der Modus 'r', ist der zurückgegebene Dateizeiger das STDOUT des Kommandos; ist der Modus 'w', ist der zurückgegebene Dateizeiger das STDIN des Kommandos.

Wenn ein Fehler auftritt, wird false zurückgegeben.

Beispiele

Beispiel #1 popen() Beispiel

<?php
$handle = popen("/bin/ls", "r");
?>

Wenn das auszuführende Kommando nicht gefunden werden konnte, wird eine gültige Ressource zurückgegeben. Das mag seltsam erscheinen, ist aber sinnvoll; es ermöglicht Ihnen, auf von der Konsole zurückgegebene Fehlermeldungen zuzugreifen:

Beispiel #2 popen() Beispiel

<?php
error_reporting(E_ALL);

/* Umleitung hinzufügen, sodass wir stderr erhalten können */
$handle = popen('/path/to/spooge 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

Anmerkungen

Hinweis:

Wenn Sie bidirektionale Unterstützung wünschen, verwenden Sie proc_open().

Siehe auch

  • pclose() - Schließt einen Prozess-Dateizeiger
  • fopen() - Öffnet eine Datei oder URL
  • proc_open() - Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe


Gibt eine Datei aus

  • « popen
  • readlink »
  • PHP Manual
  • Dateisystem
  • Gibt eine Datei aus

readfile

(PHP 4, PHP 5, PHP 7, PHP 8)

readfile — Gibt eine Datei aus

Beschreibung

readfile ( string $filename , bool $use_include_path = false , resource $context = ? ) : int

Liest den Inhalt einer Datei und schreibt ihn in den Ausgabepuffer.

Parameter-Liste

filename

Der Name der Datei, die gelesen werden soll.

use_include_path

Sie können optional den zweiten Parameter benutzen und diesen auf true setzen, wenn Sie auch im include_path nach der Datei suchen möchten.

context

Eine Stream-Kontext resource.

Rückgabewerte

Gibt bei Erfolg die Anzahl der gelesenen Bytes einer Datei zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Beispiele

Beispiel #1 Einen Download unter Verwendung von readfile() erzwingen

<?php
$file = 'monkey.gif';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Anmerkungen

Hinweis:

readfile() weist für sich allein keine Speicherprobleme auf, selbst wenn große Dateien gesendet werden. Wenn Sie auf einen out-of-memory Fehler treffen, stellen Sie mit ob_get_level() sicher, dass die Ausgabepufferung deaktiviert ist.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Hinweis: Die Kontext-Unterstützung gibt es seit PHP 5.0.0. Eine Beschreibung von Kontexten finden Sie unter Streams.

Siehe auch

  • fpassthru() - Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.
  • file() - Liest eine komplette Datei in ein Array
  • fopen() - Öffnet eine Datei oder URL
  • include - include
  • require - require
  • virtual() - Führt eine Apache-Unteranfrage durch
  • file_get_contents() - Liest die gesamte Datei in einen String
  • Unterstützte Protokolle und Wrapper


Liefert das Ziel eines symbolischen Links

  • « readfile
  • realpath_cache_get »
  • PHP Manual
  • Dateisystem
  • Liefert das Ziel eines symbolischen Links

readlink

(PHP 4, PHP 5, PHP 7, PHP 8)

readlink — Liefert das Ziel eines symbolischen Links

Beschreibung

readlink ( string $path ) : string

readlink() ist von der Funktionalität her identisch mit der C Funktion readlink.

Parameter-Liste

path

Der Pfad des symbolischen Links.

Rückgabewerte

Gibt den Inhalt des Pfades des symbolischen Links zurück oder false im Fehlerfall.

Hinweis: Die Funktion schlägt fehl, wenn path kein Symlink ist, außer unter Windows, wo der normalisierte Pfad zurückgegeben wird.

Changelog

Version | Beschreibung
5.3.0 | Diese Funktion ist nun auf Windows-Systemen (Vista, Server 2008 oder höher) verfügbar.

Beispiele

Beispiel #1 readlink() example

<?php

// gibt z.B. /boot/vmlinux-2.4.20-xfs aus
echo readlink('/vmlinuz');

?>

Siehe auch

  • is_link() - Prüft, ob der Dateiname ein symbolischer Link ist
  • symlink() - Erzeugt einen symbolischen Link
  • linkinfo() - Liefert Informationen über einen Link


Get realpath cache entries

  • « readlink
  • realpath_cache_size »
  • PHP Manual
  • Dateisystem
  • Get realpath cache entries

realpath_cache_get

(PHP 5 >= 5.3.2, PHP 7, PHP 8)

realpath_cache_get — Get realpath cache entries

Beschreibung

realpath_cache_get ( ) : array

Get the contents of the realpath cache.

Rückgabewerte

Returns an array of realpath cache entries. The keys are original path entries, and the values are arrays of data items, containing the resolved path, expiration date, and other options kept in the cache.

Beispiele

Beispiel #1 realpath_cache_get() example

<?php
var_dump(realpath_cache_get());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["/test"]=>
  array(4) {
    ["key"]=>
    int(123456789)
    ["is_dir"]=>
    bool(true)
    ["realpath"]=>
    string(5) "/test"
    ["expires"]=>
    int(1260318939)
  }
  ["/test/test.php"]=>
  array(4) {
    ["key"]=>
    int(987654321)
    ["is_dir"]=>
    bool(false)
    ["realpath"]=>
    string(12) "/root/test.php"
    ["expires"]=>
    int(1260318939)
  }
}

Siehe auch

  • realpath_cache_size() - Get realpath cache size


Get realpath cache size

  • « realpath_cache_get
  • realpath »
  • PHP Manual
  • Dateisystem
  • Get realpath cache size

realpath_cache_size

(PHP 5 >= 5.3.2, PHP 7, PHP 8)

realpath_cache_size — Get realpath cache size

Beschreibung

realpath_cache_size ( ) : int

Get the amount of memory used by the realpath cache.

Rückgabewerte

Returns how much memory realpath cache is using.

Beispiele

Beispiel #1 realpath_cache_size() example

<?php
var_dump(realpath_cache_size());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(412)

Siehe auch

  • realpath_cache_get() - Get realpath cache entries
  • The realpath_cache_size configuration option


Löst einen Pfad in einen absoluten und eindeutigen auf

  • « realpath_cache_size
  • rename »
  • PHP Manual
  • Dateisystem
  • Löst einen Pfad in einen absoluten und eindeutigen auf

realpath

(PHP 4, PHP 5, PHP 7, PHP 8)

realpath — Löst einen Pfad in einen absoluten und eindeutigen auf

Beschreibung

realpath ( string $path ) : string

realpath() löst alle symbolischen Verweise, /./, /../ und mehrere aufeinanderfolgende / Zeichen, die in path enthalten sind, auf und gibt den so entstehenden absoluten Pfad zurück.

Parameter-Liste

path

Der Pfad, der aufgelöst werden soll.

Hinweis:

Der Pfad muss angegeben werden, kann allerdings auch ein leerer String sein, in diesem Fall wird dann das aktuelle Verzeichnis benutzt.

Rückgabewerte

Gibt bei Erfolg den eindeutigen und absoluten Pfadnamen zurück. Dieser wird keine symbolischen Links, /./ oder /../ mehr enthalten. Abschließende Trennzeichen wie \ und / werden ebenfalls entfernt.

realpath() gibt false zurück, wenn ein Fehler auftritt, beispielsweise wenn die Datei nicht existiert.

Hinweis:

Das ausführende Script muss alle Verzeichnisse im Pfad öffnen können (auf unixoiden Systemen wäre das das "execute" Recht). Ist dies nicht der Fall, gibt realpath() false zurück.

Hinweis:

Bei Dateisystemen, bei denen Groß-/Kleinschreibung keine Rolle spielt, kann realpath() die Schreibweise kanonisieren, oder auch nicht.

Hinweis:

Die Funktion realpath() funktioniert nicht für Dateien in einem Phar, da solche Pfade virtuelle Pfade sind, aber keine realen Pfade.

Hinweis: Weil PHPs Integer Typ vorzeichenbehaftet ist und viele Platformen 32bit Integer verwenden, können einige Dateisystem-Funktionen für Dateien größer als 2GB unerwartete Ergebnisse liefern.

Changelog

Version | Beschreibung
5.3.0 | Vor dieser Version schlug realpath() auf BSD Systemen nicht fehl, wenn nur die letzte path Komponente nicht existierte. Jetzt schlägt realpath() auch in diesem Fall fehl.
5.2.1 | Vor dieser Version gab realpath() false zurück, wenn path eine leere Zeichenkette oder null ist.

Beispiele

Beispiel #1 realpath()

<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;

echo realpath('/tmp/') . PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

/etc/passwd
/tmp

Beispiel #2 realpath() auf Windows

Unter Windows wandelt realpath() Unix-artige Pfade in gültige Windows-Pfade um:

<?php
echo realpath('/windows/system32'), PHP_EOL;

echo realpath('C:\Program Files\\'), PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

C:\WINDOWS\System32
C:\Program Files

Siehe auch

  • basename() - Gibt letzten Namensteil einer Pfadangabe zurück
  • dirname() - Gibt den Pfad des übergeordneten Verzeichnisses zurück
  • pathinfo() - Liefert Informationen über einen Dateipfad


Benennt eine Datei oder ein Verzeichnis um

  • « realpath
  • rewind »
  • PHP Manual
  • Dateisystem
  • Benennt eine Datei oder ein Verzeichnis um

rename

(PHP 4, PHP 5, PHP 7, PHP 8)

rename — Benennt eine Datei oder ein Verzeichnis um

Beschreibung

rename ( string $oldname , string $newname , resource $context = ? ) : bool

Versucht oldname in newname umzubenennen, wobei bei Bedarf zwischen Verzeichnissen verschoben wird. Wird eine Datei umbenannt, und newname exisitiert bereits, wird es überschrieben. Wird ein Verzeichnis umbenannt, und newname exisitiert bereits, wird eine Warnung erzeugt.

Parameter-Liste

oldname

Der alte Name.

Hinweis:

Der Wrapper, der in oldname verwendet wird, muss mit dem Wrapper, der in newname verwendet wird, übereinstimmen.

newname

Der neue Name.

context

Hinweis: Die Kontext-Unterstützung gibt es seit PHP 5.0.0. Eine Beschreibung von Kontexten finden Sie unter Streams.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.3.1 | rename() kann nun unter Windows Dateien dateisystemübergreifend umbenennen.

Beispiele

Beispiel #1 Beispiel mit rename()

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

Siehe auch

  • copy() - Kopiert eine Datei
  • unlink() - Löscht eine Datei
  • move_uploaded_file() - Verschiebt eine hochgeladene Datei an einen neuen Ort


Setzt die Position eines Dateizeigers auf den Anfang

  • « rename
  • rmdir »
  • PHP Manual
  • Dateisystem
  • Setzt die Position eines Dateizeigers auf den Anfang

rewind

(PHP 4, PHP 5, PHP 7, PHP 8)

rewind — Setzt die Position eines Dateizeigers auf den Anfang

Beschreibung

rewind ( resource $handle ) : bool

Setzt den Datei-Positions-Indikator für handle an den Anfang des Dateistreams.

Hinweis:

Wurde die Datei im Anfüge-Modus ("a" oder "a+") geöffnet, werden unabhängig von der Position des Dateizeigers alle zu schreibenden Daten angehängt.

Parameter-Liste

handle

Der Dateizeiger muss gültig sein und auf eine Datei zeigen, die zuvor erfolgreich durch fopen() geöffnet wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Beispiel zum Überschreiben mit rewind()

<?php
$handle = fopen('output.txt', 'r+');

fwrite($handle, 'Wirklich langer Satz.');
rewind($handle);
fwrite($handle, 'Foo');
rewind($handle);

echo fread($handle, filesize('output.txt'));

fclose($handle);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Fooklich langer Satz.

Siehe auch

  • fread() - Liest Binärdaten aus einer Datei
  • fseek() - Positioniert den Dateizeiger
  • ftell() - Ermittelt die aktuelle Position des Dateizeigers
  • fwrite() - Binär-sicheres Dateischreiben


Löscht ein Verzeichnis

  • « rewind
  • set_file_buffer »
  • PHP Manual
  • Dateisystem
  • Löscht ein Verzeichnis

rmdir

(PHP 4, PHP 5, PHP 7, PHP 8)

rmdir — Löscht ein Verzeichnis

Beschreibung

rmdir ( string $dirname , resource $context = ? ) : bool

Versucht das durch dirname angegebene Verzeichnis zu löschen. Das Verzeichnis muss dafür leer sein und PHP muss die notwendigen Rechte besitzen. Ansonsten wird ein E_WARNING geworfen.

Parameter-Liste

dirname

Pfad zum Verzeichnis.

context

Hinweis: Die Kontext-Unterstützung gibt es seit PHP 5.0.0. Eine Beschreibung von Kontexten finden Sie unter Streams.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 rmdir() Beispiel

<?php
if (!is_dir('Verzeichnis')) {
    mkdir('Verzeichnis');
}

rmdir('Verzeichnis');
?>

Siehe auch

  • is_dir() - Prüft, ob der angegebene Dateiname ein Verzeichnis ist
  • mkdir() - Erstellt ein Verzeichnis
  • unlink() - Löscht eine Datei


Alias von stream_set_write_buffer

  • « rmdir
  • stat »
  • PHP Manual
  • Dateisystem
  • Alias von stream_set_write_buffer

set_file_buffer

(PHP 4, PHP 5, PHP 7, PHP 8)

set_file_buffer — Alias von stream_set_write_buffer()

Beschreibung

Diese Funktion ist ein Alias für: stream_set_write_buffer().


Sammelt Informationen über eine Datei

  • « set_file_buffer
  • symlink »
  • PHP Manual
  • Dateisystem
  • Sammelt Informationen über eine Datei

stat

(PHP 4, PHP 5, PHP 7, PHP 8)

stat — Sammelt Informationen über eine Datei

Beschreibung

stat ( string $filename ) : array

Sammelt Statistiken über die per filename angegebene Datei. Falls filename ein symbolischer Link ist, beziehen sich die Statistiken auf die Datei selbst, nicht auf den symbolischen Link. Unter Windows NTS-Builds vor PHP 7.4.0 bezogen sich in diesem Fall die size, atime, mtime und ctime Statistiken auf den symbolischen Link.

lstat() ist identisch zu stat(), mit dem Unterschied, dass es sich auf den Status des symbolischen Links bezieht.

Parameter-Liste

filename

Pfad zur Datei.

Rückgabewerte

stat()- und fstat()-Ergebnisformat
Numerisch | Assoziativ | Beschreibung
0 | dev | Gerätenummer ***
1 | ino | Inode-Nummer ****
2 | mode | Inode-Schutzmodus
3 | nlink | Anzahl der Links
4 | uid | userid des Besitzers *
5 | gid | groupid des Besitzers *
6 | rdev | Gerätetyp, falls Inode-Gerät
7 | size | Größe in Bytes
8 | atime | Zeitpunkt des letzten Zugriffs (Unix-Timestamp)
9 | mtime | Zeitpunkt der letzten Änderung (Unix-Timestamp)
10 | ctime | Zeitpunkt der letzten Inode-Änderung (Unix-Timestamp)
11 | blksize | Blockgröße des Dateisystem-I/O **
12 | blocks | Anzahl der zugewiesenen 512-Byte-Blöcke **

* Unter Windows wird dies immer 0 sein.

** Nur gültig unter Systemen, die den st_blksize-Typ unterstützen - andere Systeme (z.B. Windows) geben -1 zurück.

*** Unter Windows, von PHP 7.4.0 an, ist dies die Seriennummer des Laufwerks, das die Datei enhält, welches eine 64-bit Ganzzahl ohne Vorzeichen ist, so dass auf 32-bit-Systemen ein Überlauf erfolgen kann. Zuvor war es die numerische Darstellung des Laufwerksbuchstabens (z.B. 2 für C:) für stat(), und 0 für lstat().

**** Unter Windows, von PHP 7.4.0 an, ist dies die mit der Datei assozierte Kennung, welche eine 64-bit Ganzzahl ohne Vorzeichen ist, so dass ein Überlauf erfolgen kann. Zuvor war es immer 0.

Der Wert von mode enthält Informationen, die von mehreren Funktionen gelesen werden. Wenn als Oktalzahl dargestellt und von rechts betrachtet, werden die ersten drei Ziffern von chmod() zurückgegeben. Die nächste Ziffer wird von PHP ignoriert. Die nächsten beiden Ziffern geben den Dateityp an:

mode Dateitypen
mode als Oktalzahl | Bedeutung
0120000 | Verknüpfung
0100000 | reguläre Datei
0060000 | Block-Gerät
0040000 | Verzeichnis
0010000 | FIFO
So könnte beispielsweise eine reguläre Datei 0100644, und ein Verzeichnis 0040755 sein.

Im Fehlerfall gibt stat() false zurück.

Hinweis: Weil PHPs Integer Typ vorzeichenbehaftet ist und viele Platformen 32bit Integer verwenden, können einige Dateisystem-Funktionen für Dateien größer als 2GB unerwartete Ergebnisse liefern.

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING geworfen.

Changelog

Version | Beschreibung
7.4.0 | Unter Windows ist die Gerätenummer nun die Seriennummer des Laufwerks, das die Datei enthält, und die Inode-Nummer ist die mit der Datei assozierte Kennung.
7.4.0 | Die size, atime, mtime and ctime Statistiken symbolischer Links sind nun immer die des Ziels. Dies war zuvor nicht der Fall für NTS-Builds unter Windows.

Beispiele

Beispiel #1 stat()-Beispiel

<?php
/* Hole Datei-Statistik */
$stat = stat('C:\php\php.exe');

/*
 * Gebe den Zugriffszeitpunkt der Datei aus; dies entspricht dem
 * Aufruf von fileatime()
 */
echo 'Zugriffszeitpunkt: ' . $stat['atime'];

/*
 * Gebe den Änderungszeitpunkt der Datei aus; dies entspricht dem
 * Aufruf von filemtime()
 */
echo 'Änderungszeitpunkt: ' . $stat['mtime'];

/* Gebe die Gerätenummer aus */
echo 'Gerätenummer: ' . $stat['dev'];
?>

Beispiel #2 Nutzung von stat()-Informationen zusammen mit touch()

<?php
/* Hole Datei-Statistik */
$stat = stat('C:\php\php.exe');

/* Hat das Holen der Statistik-Informationen geklappt? */
if (!$stat) {
    echo 'stat()-Aufruf schlug fehl ...';
} else {
    /*
     * Wir wollen den Zugriffszeitpunkt auf eine Woche nach dem aktuellen
     * Zugriffszeitpunkt setzen.
     */
    $atime = $stat['atime'] + 604800;

    /* Ändere die Datei */
    if (!touch('eine_datei.txt', time(), $atime)) {
        echo 'Ändern der Datei schlug fehl ...';
    } else {
        echo 'touch()-Befehl war erfolgreich ...';
    }
}
?>

Anmerkungen

Hinweis:

Beachten Sie, dass die zeitliche Auflösung bei verschiedenen Dateisystemen unterschiedlich sein kann.

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle und Wrapper nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • lstat() - Sammelt Informationen über eine Datei oder einen symbolischen Link
  • fstat() - Sammelt Informationen über eine Datei mittels eines offenen Dateizeigers
  • filemtime() - Liefert Datum und Uhrzeit der letzten Dateiänderung
  • filegroup() - Liefert die Gruppenzugehörigkeit einer Datei


Erzeugt einen symbolischen Link

  • « stat
  • tempnam »
  • PHP Manual
  • Dateisystem
  • Erzeugt einen symbolischen Link

symlink

(PHP 4, PHP 5, PHP 7, PHP 8)

symlink — Erzeugt einen symbolischen Link

Beschreibung

symlink ( string $target , string $link ) : bool

symlink() erzeugt einen symbolischen Link auf das existierende Ziel (target) mit dem angegebenen Namen (link).

Parameter-Liste

target

Ziel des Links.

link

Der Linkname.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.3.0 | Diese Funktion ist nun verfügbar auf Windows-Plattformen (Vista, Server 2008 oder neuer).

Beispiele

Beispiel #1 Einen symbolischen Link erzeugen

<?php
$target = 'uploads.php';
$link = 'uploads';
symlink($target, $link);

echo readlink($link);
?>

Anmerkungen

Hinweis: Windows-Anwender sollten beachten, dass die Funktion nur funktionieren wird, falls das System, unter dem PHP ausgeführt wird, Windows Vista, Windows Server 2008 oder neuer ist. Frühere Windows-Versionen unterstützen keine symbolischen Links.

Siehe auch

  • link() - Erzeugt einen harten Link
  • readlink() - Liefert das Ziel eines symbolischen Links
  • linkinfo() - Liefert Informationen über einen Link


Erzeugt eine Datei mit eindeutigem Dateinamen

  • « symlink
  • tmpfile »
  • PHP Manual
  • Dateisystem
  • Erzeugt eine Datei mit eindeutigem Dateinamen

tempnam

(PHP 4, PHP 5, PHP 7, PHP 8)

tempnam — Erzeugt eine Datei mit eindeutigem Dateinamen

Beschreibung

tempnam ( string $dir , string $prefix ) : string

Erzeugt eine Datei mit einem eindeutigen Dateinamen in dem angegebenen Verzeichnis, wobei die Zugriffsberechtigungen auf 0600 gesetzt werden. Wenn das Verzeichnis nicht existiert oder nicht beschreibbar ist, erstellt tempnam() eine Datei im temporären Verzeichnis des Systems und gibt den vollständigen Pfad zu dieser Datei, der den Namen beinhaltet, zurück.

Parameter-Liste

dir

Das Verzeichnis, in dem die temporäre Datei erstellt werden soll.

prefix

Der Präfix des genererierten temporären Dateinamens.

Hinweis: Es werden nur die ersten 63 Zeichen des Präfixes verwendet. Windows nutzt sogar nur die ersten drei Zeichen des Präfixes.

Rückgabewerte

Gibt den neuen temporären Dateinamen (mit Pfad) zurück, oder im Fehlerfall false

Beispiele

Beispiel #1 tempnam()-Beispiel

<?php
$tmpfname = tempnam("/tmp", "FOO");

$handle = fopen($tmpfname, "w");
fwrite($handle, "schreiben in Temporärdatei");
fclose($handle);

// tue etwas

unlink($tmpfname);
?>

Anmerkungen

Hinweis: Wenn PHP die Datei nicht im angegebenen dir-Parameter erzeugen kann, fällt es auf den Systemstandardwert zurück. Unter NTFS geschieht dies auch, wenn dir mehr als 65534 Dateien enthält.

Siehe auch

  • tmpfile() - Erstellt eine temporäre Datei
  • sys_get_temp_dir() - Returns directory path used for temporary files
  • unlink() - Löscht eine Datei


Erstellt eine temporäre Datei

  • « tempnam
  • touch »
  • PHP Manual
  • Dateisystem
  • Erstellt eine temporäre Datei

tmpfile

(PHP 4, PHP 5, PHP 7, PHP 8)

tmpfile — Erstellt eine temporäre Datei

Beschreibung

tmpfile ( ) : resource

Erstellt eine temporäre Datei mit einem eindeutigen Dateinamen im Lese-Schreib-Modus (w+) und gibt einen Dateizeiger zurück.

Die Datei wird automatisch gelöscht, wenn sie geschlossen wird (zum Beispiel durch den Aufruf von fclose(), oder wenn es keine verbleibenden Referenzen zum von tmpfile() zurück gegebenen Datei-Handle mehr gibt), oder wenn das Skript beendet wird.

Achtung

Wird das Skript unerwartet beendet, wird die temporäre Datei möglicherweise nicht gelöscht.

Rückgabewerte

Gibt einen Dateizeiger für die neue Datei zurück, der ähnlich zu dem Zeiger ist, den fopen() zurückgibt. Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 tmpfile()-Beispiel

<?php
$temp = tmpfile();
fwrite($temp, "schreiben in Temporärdatei");
fseek($temp, 0);
echo fread($temp, 1024);
fclose($temp); // dies entfernt die Datei

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

schreiben in Temporärdatei

Siehe auch

  • tempnam() - Erzeugt eine Datei mit eindeutigem Dateinamen
  • sys_get_temp_dir() - Returns directory path used for temporary files


Setzt die Zugriffs- und Modifikationszeit einer Datei

  • « tmpfile
  • umask »
  • PHP Manual
  • Dateisystem
  • Setzt die Zugriffs- und Modifikationszeit einer Datei

touch

(PHP 4, PHP 5, PHP 7, PHP 8)

touch — Setzt die Zugriffs- und Modifikationszeit einer Datei

Beschreibung

touch ( string $filename , int $time = time() , int $atime = ? ) : bool

Versucht die Zugriffs- und Modifikationszeit der im filename-Parameter angegebenen Datei auf time zu setzen. Beachten Sie, dass die Zugriffszeit unabhängig von der Anzahl der Parameter immer geändert wird.

Wenn die Datei nicht existiert, wird sie erzeugt.

Parameter-Liste

filename

Der Name der zu ändernden Datei.

time

Die Modifikationszeit. Wenn time nicht angegeben ist, wird die aktuelle Systemzeit verwendet.

atime

Falls angegeben, wird die Zugriffszeit der angegebenen Datei auf atime gesetzt. Andernfalls wird sie auf den angegebenen time-Parameter gesetzt. Falls beide nicht angegeben wurden, wird die aktuelle Systemzeit verwendet.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.3.0 | Es wurde ermöglicht, die Modifikationszeit eines Verzeichnisses unter Windows zu ändern.

Beispiele

Beispiel #1 touch()-Beispiel

if (touch($filename)) {
    echo $filename . '-Modifikationszeit wurde auf die aktuelle Zeit gesetzt.';
} else {
    echo 'Entschuldigung, die Änderung der Modifikationszeit von ' . $filename
    ' war nicht möglich.';
}
?>

Beispiel #2 Nutzung von touch() mit dem time-Parameter

<?php
// Modifikationszeit (eine Stunde in der Vergangenheit)
$time = time() - 3600;

// Ändern der Datei
if (!touch('eine_datei.txt', $time)) {
    echo 'Ein Fehler ist aufgetreten ...';
} else {
    echo 'Änderung der Modifikationszeit war erfolgreich';
}
?>

Anmerkungen

Hinweis:

Beachten Sie, dass die zeitliche Auflösung bei verschiedenen Dateisystemen unterschiedlich sein kann.

Warnung

Vor PHP 5.3.0 war es nicht möglich, die Modifikationszeit eines Verzeichnisses mit dieser Funktion unter Windows zu ändern.


Changes the current umask

  • « touch
  • unlink »
  • PHP Manual
  • Dateisystem
  • Changes the current umask

umask

(PHP 4, PHP 5, PHP 7, PHP 8)

umask — Changes the current umask

Beschreibung

umask ( int $mask = ? ) : int

umask() setzt die umask von PHP auf mask & 0777 und gibt die alte umask zurück. Wird PHP als Servermodul benutzt, wird die umask wiederhergestellt, wenn die jeweilige Anfrage beendet ist.

Parameter-Liste

mask

Die neue umask.

Rückgabewerte

umask() ohne Parameter gibt nur die aktuelle umask zurück; andernfalls wird die alte umask zurückgegeben.

Beispiele

Beispiel #1 umask()-Beispiel

<?php
$old = umask(0);
chmod("/pfad/ein_verzeichnis/eine_datei.txt", 0755);
umask($old);

// Prüfung
if ($old != umask()) {
    die('Ein Fehler trat beim Wiederherstellen der umask auf');
}
?>

Anmerkungen

Hinweis:

Sie sollten diese Funktion nicht in Multithreaded-Webservern nutzen. Der bessere Weg ist, die Dateiberechtigungen mit chmod() zu ändern nachdem die Datei erstellt wurde. Die Nutzung von umask() kann zu unerwartetem Verhalten von gleichzeitig ausgeführten Skripten und des Webservers führen, weil die gleiche umask genutzt wird.


Löscht eine Datei

  • « umask
  • Inotify »
  • PHP Manual
  • Dateisystem
  • Löscht eine Datei

unlink

(PHP 4, PHP 5, PHP 7, PHP 8)

unlink — Löscht eine Datei

Beschreibung

unlink ( string $filename , resource $context = ? ) : bool

Löscht filename. Ähnlich der UNIX-C-unlink()-Funktion. Ein E_WARNING-Fehler wird im Fehlerfall generiert.

Parameter-Liste

filename

Pfad zur Datei.

context

Hinweis: Die Kontext-Unterstützung gibt es seit PHP 5.0.0. Eine Beschreibung von Kontexten finden Sie unter Streams.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.3.0 | Unter Windows ist es nun möglich, Dateien mit verwendeten Handles per unlink() zu löschen, während dies zuvor fehlschlug. Es ist allerdings noch immer nicht möglich, die gelöschte Datei neu zu erzeugen, bevor alle Handles geschlossen wurden.

Beispiele

Beispiel #1 Einfache Nutzung von unlink()

<?php
$fh = fopen('test.html', 'a');
fwrite($fh, '<h1>Hallo Welt!</h1>');
fclose($fh);

unlink('test.html');
?>

Siehe auch

  • rmdir() - Löscht ein Verzeichnis


Inotify

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation/Konfiguration
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Inotify Funktionen
    • inotify_add_watch — Add a watch to an initialized inotify instance
    • inotify_init — Initialize an inotify instance
    • inotify_queue_len — Return a number upper than zero if there are pending events
    • inotify_read — Read events from an inotify instance
    • inotify_rm_watch — Remove an existing watch from an inotify instance


Einführung

The inotify extension exposes the inotify functions inotify_init(), inotify_add_watch() and inotify_rm_watch().

As the C inotify_init() function returns a file descriptor, PHP's inotify_init() returns a stream resource, usable with standard stream functions, like stream_select(), stream_set_blocking() and fclose(). inotify_read() replaces the C way of reading inotify events.


Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation/Konfiguration
  • Laufzeit-Konfiguration
  • Ressource-Typen


  • « Installation/Konfiguration
  • Installation/Konfiguration »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

This extension requires Linux 2.6.13 or newer, and a recent libC.


Installation/Konfiguration

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/inotify.


  • « Installation/Konfiguration
  • Ressource-Typen »
  • PHP Manual
  • Installation/Konfiguration
  • Laufzeit-Konfiguration

Laufzeit-Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

This extension defines a stream resource returned by inotify_init().


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Inotify constants usable with inotify_add_watch() and/or returned by inotify_read()
IN_ACCESS (int)
File was accessed (read) (*)
IN_MODIFY (int)
File was modified (*)
IN_ATTRIB (int)
Metadata changed (e.g. permissions, mtime, etc.) (*)
IN_CLOSE_WRITE (int)
File opened for writing was closed (*)
IN_CLOSE_NOWRITE (int)
File not opened for writing was closed (*)
IN_OPEN (int)
File was opened (*)
IN_MOVED_TO (int)
File moved into watched directory (*)
IN_MOVED_FROM (int)
File moved out of watched directory (*)
IN_CREATE (int)
File or directory created in watched directory (*)
IN_DELETE (int)
File or directory deleted in watched directory (*)
IN_DELETE_SELF (int)
Watched file or directory was deleted
IN_MOVE_SELF (int)
Watch file or directory was moved
IN_CLOSE (int)
Equals to IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
IN_MOVE (int)
Equals to IN_MOVED_FROM | IN_MOVED_TO
IN_ALL_EVENTS (int)
Bitmask of all the above constants
IN_UNMOUNT (int)
File system containing watched object was unmounted
IN_Q_OVERFLOW (int)
Event queue overflowed (wd is -1 for this event)
IN_IGNORED (int)
Watch was removed (explicitly by inotify_rm_watch() or because file was removed or filesystem unmounted
IN_ISDIR (int)
Subject of this event is a directory
IN_ONLYDIR (int)
Only watch pathname if it is a directory (Since Linux 2.6.15)
IN_DONT_FOLLOW (int)
Do not dereference pathname if it is a symlink (Since Linux 2.6.15)
IN_MASK_ADD (int)
Add events to watch mask for this pathname if it already exists (instead of replacing mask).
IN_ONESHOT (int)
Monitor pathname for one event, then remove from watch list.

Hinweis: The events marked with an asterisk (*) above can occur for files in watched directories.


Inotify Funktionen

Inhaltsverzeichnis

  • inotify_add_watch — Add a watch to an initialized inotify instance
  • inotify_init — Initialize an inotify instance
  • inotify_queue_len — Return a number upper than zero if there are pending events
  • inotify_read — Read events from an inotify instance
  • inotify_rm_watch — Remove an existing watch from an inotify instance


Add a watch to an initialized inotify instance

  • « Inotify Funktionen
  • inotify_init »
  • PHP Manual
  • Inotify Funktionen
  • Add a watch to an initialized inotify instance

inotify_add_watch

(PECL inotify >= 0.1.2)

inotify_add_watch — Add a watch to an initialized inotify instance

Beschreibung

inotify_add_watch ( resource $inotify_instance , string $pathname , int $mask ) : int

inotify_add_watch() adds a new watch or modify an existing watch for the file or directory specified in pathname.

Using inotify_add_watch() on a watched object replaces the existing watch. Using the IN_MASK_ADD constant adds (OR) events to the existing watch.

Parameter-Liste

inotify_instance

Von inotify_init() zurückgegebene Ressource

pathname

File or directory to watch

mask

Events to watch for. See Vordefinierte Konstanten.

Rückgabewerte

The return value is a unique (inotify instance wide) watch descriptor.

Siehe auch

  • inotify_init() - Initialize an inotify instance


Initialize an inotify instance

  • « inotify_add_watch
  • inotify_queue_len »
  • PHP Manual
  • Inotify Funktionen
  • Initialize an inotify instance

inotify_init

(PECL inotify >= 0.1.2)

inotify_init — Initialize an inotify instance

Beschreibung

inotify_init ( ) : resource

Initialize an inotify instance for use with inotify_add_watch()

Rückgabewerte

A stream resource or false on error.

Beispiele

Beispiel #1 Example usage of inotify

<?php
// Open an inotify instance
$fd = inotify_init();

// Watch __FILE__ for metadata changes (e.g. mtime)
$watch_descriptor = inotify_add_watch($fd, __FILE__, IN_ATTRIB);

// generate an event
touch(__FILE__);

// Read events
$events = inotify_read($fd);
print_r($events);

// The following methods allows to use inotify functions without blocking on inotify_read():

// - Using stream_select() on $fd:
$read = array($fd);
$write = null;
$except = null;
stream_select($read,$write,$except,0);

// - Using stream_set_blocking() on $fd
stream_set_blocking($fd, 0);
inotify_read($fd); // Does no block, and return false if no events are pending

// - Using inotify_queue_len() to check if event queue is not empty
$queue_len = inotify_queue_len($fd); // If > 0, inotify_read() will not block

// Stop watching __FILE__ for metadata changes
inotify_rm_watch($fd, $watch_descriptor);

// Close the inotify instance
// This may have closed all watches if this was not already done
fclose($fd);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(
  array(
    'wd' => 1,     // Equals $watch_descriptor
    'mask' => 4,   // IN_ATTRIB bit is set
    'cookie' => 0, // unique id to connect related events (e.g.
                   // IN_MOVE_FROM and IN_MOVE_TO events)
    'name' => '',  // the name of a file (e.g. if we monitored changes
                   // in a directory)
  ),
);

Siehe auch

  • inotify_add_watch() - Add a watch to an initialized inotify instance
  • inotify_rm_watch() - Remove an existing watch from an inotify instance
  • inotify_queue_len() - Return a number upper than zero if there are pending events
  • inotify_read() - Read events from an inotify instance
  • fclose() - Schließt einen offenen Dateizeiger


Return a number upper than zero if there are pending events

  • « inotify_init
  • inotify_read »
  • PHP Manual
  • Inotify Funktionen
  • Return a number upper than zero if there are pending events

inotify_queue_len

(PECL inotify >= 0.1.2)

inotify_queue_len — Return a number upper than zero if there are pending events

Beschreibung

inotify_queue_len ( resource $inotify_instance ) : int

This function allows to know if inotify_read() will block or not. If a number upper than zero is returned, there are pending events and inotify_read() will not block.

Parameter-Liste

inotify_instance

Von inotify_init() zurückgegebene Ressource

Rückgabewerte

Returns a number upper than zero if there are pending events.

Siehe auch

  • inotify_init() - Initialize an inotify instance
  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
  • stream_set_blocking() - Set blocking/non-blocking mode on a stream


Read events from an inotify instance

  • « inotify_queue_len
  • inotify_rm_watch »
  • PHP Manual
  • Inotify Funktionen
  • Read events from an inotify instance

inotify_read

(PECL inotify >= 0.1.2)

inotify_read — Read events from an inotify instance

Beschreibung

inotify_read ( resource $inotify_instance ) : array

Read inotify events from an inotify instance.

Parameter-Liste

inotify_instance

Von inotify_init() zurückgegebene Ressource

Rückgabewerte

An array of inotify events or false if no events was pending and inotify_instance is non-blocking. Each event is an array with the following keys:

  • wd is a watch descriptor returned by inotify_add_watch()
  • mask is a bit mask of events
  • cookie is a unique id to connect related events (e.g. IN_MOVE_FROM and IN_MOVE_TO)
  • name is the name of a file (e.g. if a file was modified in a watched directory)

Siehe auch

  • inotify_init() - Initialize an inotify instance
  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
  • stream_set_blocking() - Set blocking/non-blocking mode on a stream
  • inotify_queue_len() - Return a number upper than zero if there are pending events


Remove an existing watch from an inotify instance

  • « inotify_read
  • Proctitle »
  • PHP Manual
  • Inotify Funktionen
  • Remove an existing watch from an inotify instance

inotify_rm_watch

(PECL inotify >= 0.1.2)

inotify_rm_watch — Remove an existing watch from an inotify instance

Beschreibung

inotify_rm_watch ( resource $inotify_instance , int $watch_descriptor ) : bool

inotify_rm_watch() removes the watch watch_descriptor from the inotify instance inotify_instance.

Parameter-Liste

inotify_instance

Von inotify_init() zurückgegebene Ressource

watch_descriptor

Watch to remove from the instance

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • inotify_init() - Initialize an inotify instance


Proctitle

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Proctitle Funktionen
    • setproctitle — Set the process title
    • setthreadtitle — Set the thread title


Einführung

This extension allows changing the current process', and thread, name on Linux and *BSD systems. This is useful when using pcntl_fork() to identify running processes in process list


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

Nothing special.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/proctitle.


  • « Ressource-Typen
  • Proctitle Funktionen »
  • PHP Manual
  • Proctitle
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Proctitle Funktionen

Inhaltsverzeichnis

  • setproctitle — Set the process title
  • setthreadtitle — Set the thread title


Set the process title

  • « Proctitle Funktionen
  • setthreadtitle »
  • PHP Manual
  • Proctitle Funktionen
  • Set the process title

setproctitle

(PECL proctitle >= 0.1.0)

setproctitle — Set the process title

Beschreibung

setproctitle ( string $title ) : void

Sets the process title of the current process.

Parameter-Liste

title

The title to use as the process title.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 setproctitle() example

Running the example below will change the process title (visible with ps a for example).

<?php
setproctitle("myscript");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

$ ps a
  PID TTY      STAT   TIME COMMAND
 1168 pts/3    S      0:00 myscript

Siehe auch

  • cli_set_process_title() - Sets the process title
  • pcntl_fork() - Verzweigt den laufenden Prozess
  • setthreadtitle() - Set the thread title


Set the thread title

  • « setproctitle
  • xattr »
  • PHP Manual
  • Proctitle Funktionen
  • Set the thread title

setthreadtitle

(PECL proctitle >= 0.1.2)

setthreadtitle — Set the thread title

Beschreibung

setthreadtitle ( string $title ) : bool

Sets the thread title.

Parameter-Liste

title

The title to use as the thread title.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 setthreadtitle() example

Running the example below will change the thread title (visible with ps c for example).

<?php
setthreadtitle("myscript");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

$ ps c
  PID TTY      STAT   TIME COMMAND
 1178 pts/3    S      0:00 myscript

Siehe auch

  • pcntl_fork() - Verzweigt den laufenden Prozess
  • setproctitle() - Set the process title


xattr

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • xattr Funktionen
    • xattr_get — Get an extended attribute
    • xattr_list — Get a list of extended attributes
    • xattr_remove — Remove an extended attribute
    • xattr_set — Set an extended attribute
    • xattr_supported — Check if filesystem supports extended attributes


Einführung

The xattr extension allows for the manipulation of extended attributes on a filesystem.


Anforderungen

To use xattr, you will need libattr installed. It is available at » http://savannah.nongnu.org/projects/attr/.

Hinweis:

These functions only work on filesystems that support extended attributes, and have them enabled at mount time. Some common filesystems that support extended attributes are ext2, ext3, reiserfs, jfs, and xfs.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/xattr.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

XATTR_ROOT (int)
Set attribute in root (trusted) namespace. Requires root privileges.
XATTR_DONTFOLLOW (int)
Do not follow the symbolic link but operate on symbolic link itself.
XATTR_CREATE (int)
Function will fail if extended attribute already exists.
XATTR_REPLACE (int)
Function will fail if extended attribute doesn't exist.


xattr Funktionen

Inhaltsverzeichnis

  • xattr_get — Get an extended attribute
  • xattr_list — Get a list of extended attributes
  • xattr_remove — Remove an extended attribute
  • xattr_set — Set an extended attribute
  • xattr_supported — Check if filesystem supports extended attributes


Get an extended attribute

  • « xattr Funktionen
  • xattr_list »
  • PHP Manual
  • xattr Funktionen
  • Get an extended attribute

xattr_get

(PECL xattr >= 0.9.0)

xattr_get — Get an extended attribute

Beschreibung

xattr_get ( string $filename , string $name , int $flags = 0 ) : string

This function gets the value of an extended attribute of a file.

Erweiterte Eigenschaften haben zwei verschiedene Namensräume: den User- und den Root-Namensraum. Der User-Namensraum steht allen Benutzern zur Verfügung, während der Root-Namensraum nur Benutzern mit Root-Rechten zur Verfügung steht. xattr operiert standardmäßig im User-Namensraum, aber das können Sie mit dem Parameter flags ändern.

Parameter-Liste

filename

The file from which we get the attribute.

name

The name of the attribute.

flags

Supported xattr flags
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

Rückgabewerte

Returns a string containing the value or false if the attribute doesn't exist.

Beispiele

Beispiel #1 Checks if system administrator has signed the file

<?php
$file = '/usr/local/sbin/some_binary';
$signature = xattr_get($file, 'Root signature', XATTR_ROOT);

/* ... check if $signature is valid ... */

?>

Siehe auch

  • xattr_list() - Get a list of extended attributes
  • xattr_set() - Set an extended attribute
  • xattr_remove() - Remove an extended attribute


Get a list of extended attributes

  • « xattr_get
  • xattr_remove »
  • PHP Manual
  • xattr Funktionen
  • Get a list of extended attributes

xattr_list

(PECL xattr >= 0.9.0)

xattr_list — Get a list of extended attributes

Beschreibung

xattr_list ( string $filename , int $flags = 0 ) : array

This functions gets a list of names of extended attributes of a file.

Erweiterte Eigenschaften haben zwei verschiedene Namensräume: den User- und den Root-Namensraum. Der User-Namensraum steht allen Benutzern zur Verfügung, während der Root-Namensraum nur Benutzern mit Root-Rechten zur Verfügung steht. xattr operiert standardmäßig im User-Namensraum, aber das können Sie mit dem Parameter flags ändern.

Parameter-Liste

filename

The path of the file.

flags

Supported xattr flags
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

Rückgabewerte

This function returns an array with names of extended attributes.

Beispiele

Beispiel #1 Prints names of all extended attributes of file

<?php
$file = 'some_file';
$root_attributes = xattr_list($file, XATTR_ROOT);
$user_attributes = xattr_list($file);

echo "Root attributes: \n";
foreach ($root_attributes as $attr_name) {
    printf("%s\n", $attr_name);
}

echo "\n User attributes: \n";
foreach ($attributes as $attr_name) {
    printf("%s\n", $attr_name);
}

?>

Siehe auch

  • xattr_get() - Get an extended attribute


Remove an extended attribute

  • « xattr_list
  • xattr_set »
  • PHP Manual
  • xattr Funktionen
  • Remove an extended attribute

xattr_remove

(PECL xattr >= 0.9.0)

xattr_remove — Remove an extended attribute

Beschreibung

xattr_remove ( string $filename , string $name , int $flags = 0 ) : bool

This function removes an extended attribute of a file.

Erweiterte Eigenschaften haben zwei verschiedene Namensräume: den User- und den Root-Namensraum. Der User-Namensraum steht allen Benutzern zur Verfügung, während der Root-Namensraum nur Benutzern mit Root-Rechten zur Verfügung steht. xattr operiert standardmäßig im User-Namensraum, aber das können Sie mit dem Parameter flags ändern.

Parameter-Liste

filename

The file from which we remove the attribute.

name

The name of the attribute to remove.

flags

Supported xattr flags
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Removes all extended attributes of a file

<?php
$file = 'some_file';
$attributes = xattr_list($file);

foreach ($attributes as $attr_name) {
    xattr_remove($file, $attr_name);
}
?>

Siehe auch

  • xattr_list() - Get a list of extended attributes
  • xattr_set() - Set an extended attribute
  • xattr_get() - Get an extended attribute


Set an extended attribute

  • « xattr_remove
  • xattr_supported »
  • PHP Manual
  • xattr Funktionen
  • Set an extended attribute

xattr_set

(PECL xattr >= 0.9.0)

xattr_set — Set an extended attribute

Beschreibung

xattr_set ( string $filename , string $name , string $value , int $flags = 0 ) : bool

This function sets the value of an extended attribute of a file.

Erweiterte Eigenschaften haben zwei verschiedene Namensräume: den User- und den Root-Namensraum. Der User-Namensraum steht allen Benutzern zur Verfügung, während der Root-Namensraum nur Benutzern mit Root-Rechten zur Verfügung steht. xattr operiert standardmäßig im User-Namensraum, aber das können Sie mit dem Parameter flags ändern.

Parameter-Liste

filename

The file in which we set the attribute.

name

The name of the extended attribute. This attribute will be created if it doesn't exist or replaced otherwise. You can change this behaviour by using the flags parameter.

value

The value of the attribute.

flags

Supported xattr flags
XATTR_CREATE | Function will fail if extended attribute already exists.
XATTR_REPLACE | Function will fail if extended attribute doesn't exist.
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Sets extended attributes on .wav file

<?php
$file = 'my_favourite_song.wav';
xattr_set($file, 'Artist', 'Someone');
xattr_set($file, 'My ranking', 'Good');
xattr_set($file, 'Listen count', '34');

/* ... other code ... */

printf("You've played this song %d times", xattr_get($file, 'Listen count'));
?>

Siehe auch

  • xattr_get() - Get an extended attribute
  • xattr_remove() - Remove an extended attribute


Check if filesystem supports extended attributes

  • « xattr_set
  • xdiff »
  • PHP Manual
  • xattr Funktionen
  • Check if filesystem supports extended attributes

xattr_supported

(PECL xattr >= 1.0.0)

xattr_supported — Check if filesystem supports extended attributes

Beschreibung

xattr_supported ( string $filename , int $flags = 0 ) : bool

This functions checks if the filesystem holding the given file supports extended attributes. Read access to the file is required.

Parameter-Liste

filename

The path of the tested file.

flags

Supported xattr flags
XATTR_DONTFOLLOW Do not follow the symbolic link but operate on symbolic link itself.

Rückgabewerte

This function returns true if filesystem supports extended attributes, false if it doesn't and null if it can't be determined (for example wrong path or lack of permissions to file).

Beispiele

Beispiel #1 xattr_supported() example

The following code checks if we can use extended attributes.

<?php
$file = 'some_file';

if (xattr_supported($file)) {
    /* ... make use of some xattr_* functions ... */
}

?>

Siehe auch

  • xattr_get() - Get an extended attribute
  • xattr_list() - Get a list of extended attributes


xdiff

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • xdiff Funktionen
    • xdiff_file_bdiff_size — Read a size of file created by applying a binary diff
    • xdiff_file_bdiff — Make binary diff of two files
    • xdiff_file_bpatch — Patch a file with a binary diff
    • xdiff_file_diff_binary — Alias of xdiff_file_bdiff
    • xdiff_file_diff — Make unified diff of two files
    • xdiff_file_merge3 — Merge 3 files into one
    • xdiff_file_patch_binary — Alias of xdiff_file_bpatch
    • xdiff_file_patch — Patch a file with an unified diff
    • xdiff_file_rabdiff — Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
    • xdiff_string_bdiff_size — Read a size of file created by applying a binary diff
    • xdiff_string_bdiff — Make binary diff of two strings
    • xdiff_string_bpatch — Patch a string with a binary diff
    • xdiff_string_diff_binary — Alias of xdiff_string_bdiff
    • xdiff_string_diff — Make unified diff of two strings
    • xdiff_string_merge3 — Merge 3 strings into one
    • xdiff_string_patch_binary — Alias of xdiff_string_bpatch
    • xdiff_string_patch — Patch a string with an unified diff
    • xdiff_string_rabdiff — Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm


Einführung

xdiff extension enables you to create and apply patch files containing differences between different revisions of files.

This extension supports two modes of operation - on strings and on files, as well as two different patch formats - unified and binary. Unified patches are excellent for text files as they are human-readable and easy to review. For binary files like archives or images, binary patches will be adequate choice as they are binary safe and handle non-printable characters well.

Starting from version 1.5.0 there are two different sets of functions for generating binary patches. New functions - xdiff_string_rabdiff() and xdiff_file_rabdiff() generate output compatible with older functions but are typically faster and generate smaller results. For more details about methods of generating binary patches and differences between them, please check » libxdiff website.

This extension uses libxdiff to implement these functions. Please see » http://www.xmailserver.org/xdiff-lib.html for more information.


Anforderungen

To use xdiff, you will need libxdiff installed, available on the libxdiff homepage » http://www.xmailserver.org/xdiff-lib.html.

Hinweis:

You'll need at least libxdiff 0.7 for these functions to be aware of memory_limit.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/xdiff.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

XDIFF_PATCH_NORMAL (int)
This flag indicates that xdiff_string_patch() and xdiff_file_patch() functions should create result by applying patch to original content thus creating newer version of file. This is the default mode of operation.
XDIFF_PATCH_REVERSE (int)
This flag indicated that xdiff_string_patch() and xdiff_file_patch() functions should create result by reversing patch changed from newer content thus creating original version.


xdiff Funktionen

Inhaltsverzeichnis

  • xdiff_file_bdiff_size — Read a size of file created by applying a binary diff
  • xdiff_file_bdiff — Make binary diff of two files
  • xdiff_file_bpatch — Patch a file with a binary diff
  • xdiff_file_diff_binary — Alias of xdiff_file_bdiff
  • xdiff_file_diff — Make unified diff of two files
  • xdiff_file_merge3 — Merge 3 files into one
  • xdiff_file_patch_binary — Alias of xdiff_file_bpatch
  • xdiff_file_patch — Patch a file with an unified diff
  • xdiff_file_rabdiff — Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
  • xdiff_string_bdiff_size — Read a size of file created by applying a binary diff
  • xdiff_string_bdiff — Make binary diff of two strings
  • xdiff_string_bpatch — Patch a string with a binary diff
  • xdiff_string_diff_binary — Alias of xdiff_string_bdiff
  • xdiff_string_diff — Make unified diff of two strings
  • xdiff_string_merge3 — Merge 3 strings into one
  • xdiff_string_patch_binary — Alias of xdiff_string_bpatch
  • xdiff_string_patch — Patch a string with an unified diff
  • xdiff_string_rabdiff — Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm


Read a size of file created by applying a binary diff

  • « xdiff Funktionen
  • xdiff_file_bdiff »
  • PHP Manual
  • xdiff Funktionen
  • Read a size of file created by applying a binary diff

xdiff_file_bdiff_size

(PECL xdiff >= 1.5.0)

xdiff_file_bdiff_size — Read a size of file created by applying a binary diff

Beschreibung

xdiff_file_bdiff_size ( string $file ) : int

Returns a size of a result file that would be created after applying binary patch from file file to the original file.

Parameter-Liste

file

The path to the binary patch created by xdiff_string_bdiff() or xdiff_string_rabdiff() function.

Rückgabewerte

Returns the size of file that would be created.

Beispiele

Beispiel #1 xdiff_file_bdiff_size() example

The following code applies reads a size of file that would be created after applying a binary diff.

<?php
$length = xdiff_string_bdiff_size('file.bdiff');
echo "Resulting file will be $length bytes long";
?>

Siehe auch

  • xdiff_file_bdiff() - Make binary diff of two files
  • xdiff_file_rabdiff() - Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
  • xdiff_file_bpatch() - Patch a file with a binary diff


Make binary diff of two files

  • « xdiff_file_bdiff_size
  • xdiff_file_bpatch »
  • PHP Manual
  • xdiff Funktionen
  • Make binary diff of two files

xdiff_file_bdiff

(PECL xdiff >= 1.5.0)

xdiff_file_bdiff — Make binary diff of two files

Beschreibung

xdiff_file_bdiff ( string $old_file , string $new_file , string $dest ) : bool

Makes a binary diff of two files and stores the result in a patch file. This function works with both text and binary files. Resulting patch file can be later applied using xdiff_file_bpatch()/xdiff_string_bpatch().

Parameter-Liste

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file. Resulting file contains differences between "old" and "new" files. It is in binary format and is human-unreadable.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 xdiff_file_bdiff() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_bdiff($old_version, $new_version, 'my_script.bdiff');
?>

Anmerkungen

Hinweis:

Both files will be loaded into memory so ensure that your memory_limit is set high enough.

Siehe auch

  • xdiff_file_bpatch() - Patch a file with a binary diff


Patch a file with a binary diff

  • « xdiff_file_bdiff
  • xdiff_file_diff_binary »
  • PHP Manual
  • xdiff Funktionen
  • Patch a file with a binary diff

xdiff_file_bpatch

(PECL xdiff >= 1.5.0)

xdiff_file_bpatch — Patch a file with a binary diff

Beschreibung

xdiff_file_bpatch ( string $file , string $patch , string $dest ) : bool

Patches a file with a binary patch and stores the result in a file dest. This function accepts patches created both via xdiff_file_bdiff() and xdiff_file_rabdiff() functions or their string counterparts.

Parameter-Liste

file

The original file.

patch

The binary patch file.

dest

Path of the resulting file.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 xdiff_file_bpatch() example

The following code applies binary diff to a file.

<?php
$old_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_bpatch($old_version, $patch, 'archive-1.1.tgz');
if ($result) {
   echo "File patched";
} else {
   echo "File couldn't be patched";
}

?>

Anmerkungen

Hinweis:

Both files (file and patch) will be loaded into memory so ensure that your memory_limit is set high enough.

Siehe auch

  • xdiff_file_bdiff() - Make binary diff of two files
  • xdiff_file_rabdiff() - Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm


Alias of xdiff_file_bdiff

  • « xdiff_file_bpatch
  • xdiff_file_diff »
  • PHP Manual
  • xdiff Funktionen
  • Alias of xdiff_file_bdiff

xdiff_file_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_file_diff_binary — Alias of xdiff_file_bdiff

Beschreibung

xdiff_file_diff_binary ( string $old_file , string $new_file , string $dest ) : bool

Makes a binary diff of two files and stores the result in a patch file. This function works with both text and binary files. Resulting patch file can be later applied using xdiff_file_bpatch().

Starting with version 1.5.0 this function is an alias of xdiff_file_bdiff().

Parameter-Liste

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file. Resulting file contains differences between "old" and "new" files. It is in binary format and is human-unreadable.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 xdiff_file_diff_binary() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_diff_binary($old_version, $new_version, 'my_script.bdiff');
?>

Anmerkungen

Hinweis:

Both files will be loaded into memory so ensure that your memory_limit is set high enough.

Siehe auch

  • xdiff_file_bdiff() - Make binary diff of two files
  • xdiff_file_bpatch() - Patch a file with a binary diff


Make unified diff of two files

  • « xdiff_file_diff_binary
  • xdiff_file_merge3 »
  • PHP Manual
  • xdiff Funktionen
  • Make unified diff of two files

xdiff_file_diff

(PECL xdiff >= 0.2.0)

xdiff_file_diff — Make unified diff of two files

Beschreibung

xdiff_file_diff ( string $old_file , string $new_file , string $dest , int $context = 3 , bool $minimal = false ) : bool

Makes an unified diff containing differences between old_file and new_file and stores it in dest file. The resulting file is human-readable. An optional context parameter specifies how many lines of context should be added around each change. Setting minimal parameter to true will result in outputting the shortest patch file possible (can take a long time).

Parameter-Liste

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file.

context

Indicates how many lines of context you want to include in diff result.

minimal

Set this parameter to true if you want to minimalize size of the result (can take a long time).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 xdiff_file_diff() example

The following code makes unified diff of two php files with context length of 2.

<?php
$old_version = 'my_script.php';
$new_version = 'my_new_script.php';

xdiff_file_diff($old_version, $new_version, 'my_script.diff', 2);
?>

Anmerkungen

Hinweis:

This function doesn't work well with binary files. To make diff of binary files use xdiff_file_bdiff()/xdiff_file_rabdiff() function.

Siehe auch

  • xdiff_file_patch() - Patch a file with an unified diff


Merge 3 files into one

  • « xdiff_file_diff
  • xdiff_file_patch_binary »
  • PHP Manual
  • xdiff Funktionen
  • Merge 3 files into one

xdiff_file_merge3

(PECL xdiff >= 0.2.0)

xdiff_file_merge3 — Merge 3 files into one

Beschreibung

xdiff_file_merge3 ( string $old_file , string $new_file1 , string $new_file2 , string $dest ) : mixed

Merges three files into one and stores the result in a file dest. The old_file is an original version while new_file1 and new_file2 are modified versions of an original.

Parameter-Liste

old_file

Path to the first file. It acts as "old" file.

new_file1

Path to the second file. It acts as modified version of old_file.

new_file2

Path to the third file. It acts as modified version of old_file.

dest

Path of the resulting file, containing merged changed from both new_file1 and new_file2.

Rückgabewerte

Returns true if merge was successful, string with rejected chunks if it was not or false if an internal error happened.

Beispiele

Beispiel #1 xdiff_file_merge3() example

The following code merges three files into one.

<?php
$old_version = 'original_script.php';
$fix1 = 'script_with_fix1.php';
$fix2 = 'script_with_fix2.php';

$errors = xdiff_file_merge3($old_version, $fix1, $fix2, 'fixed_script.php');
if (is_string($errors)) {
    echo "Rejects:\n";
    echo $errors;
}
?>

Siehe auch

  • xdiff_string_merge3() - Merge 3 strings into one


Alias of xdiff_file_bpatch

  • « xdiff_file_merge3
  • xdiff_file_patch »
  • PHP Manual
  • xdiff Funktionen
  • Alias of xdiff_file_bpatch

xdiff_file_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_file_patch_binary — Alias of xdiff_file_bpatch

Beschreibung

xdiff_file_patch_binary ( string $file , string $patch , string $dest ) : bool

Patches a file with a binary patch and stores the result in a file dest. This function accepts patches created both via xdiff_file_bdiff() or xdiff_file_rabdiff() functions or their string counterparts.

Starting with version 1.5.0 this function is an alias of xdiff_file_bpatch().

Parameter-Liste

file

The original file.

patch

The binary patch file.

dest

Path of the resulting file.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 xdiff_file_patch_binary() example

The following code applies binary diff to a file.

<?php
$old_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_patch_binary($old_version, $patch, 'archive-1.1.tgz');
if ($result) {
   echo "File patched";
} else {
   echo "File couldn't be patched";
}

?>

Anmerkungen

Hinweis:

Both files (file and patch) will be loaded into memory so ensure that your memory_limit is set high enough.

Siehe auch

  • xdiff_string_patch_binary() - Alias of xdiff_string_bpatch


Patch a file with an unified diff

  • « xdiff_file_patch_binary
  • xdiff_file_rabdiff »
  • PHP Manual
  • xdiff Funktionen
  • Patch a file with an unified diff

xdiff_file_patch

(PECL xdiff >= 0.2.0)

xdiff_file_patch — Patch a file with an unified diff

Beschreibung

xdiff_file_patch ( string $file , string $patch , string $dest , int $flags = DIFF_PATCH_NORMAL ) : mixed

Patches a file with a patch and stores the result in a file. patch has to be an unified diff created by xdiff_file_diff()/xdiff_string_diff() function. An optional flags parameter specifies mode of operation.

Parameter-Liste

file

The original file.

patch

The unified patch file. It has to be created using xdiff_string_diff(), xdiff_file_diff() functions or compatible tools.

dest

Path of the resulting file.

flags

Can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

Starting from version 1.5.0, you can also use binary OR to enable XDIFF_PATCH_IGNORESPACE flag.

Rückgabewerte

Returns false if an internal error happened, string with rejected chunks if patch couldn't be applied or true if patch has been successfully applied.

Beispiele

Beispiel #1 xdiff_file_patch() example

The following code applies unified diff to a file.

<?php
$old_version = 'my_script-1.0.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($old_version, $patch, 'my_script-1.1.php');
if (is_string($errors)) {
   echo "Rejects:\n";
   echo $errors;
}

?>

Beispiel #2 Patch reversing example

The following code reverses a patch.

<?php
$new_version = 'my_script-1.1.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($new_version, $patch, 'my_script-1.0.php', XDIFF_PATCH_REVERSE);
if (is_string($errors)) {
   echo "Rejects:\n";
   echo $errors;
}

?>

Siehe auch

  • xdiff_file_diff() - Make unified diff of two files


Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm

  • « xdiff_file_patch
  • xdiff_string_bdiff_size »
  • PHP Manual
  • xdiff Funktionen
  • Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm

xdiff_file_rabdiff

(PECL xdiff >= 1.5.0)

xdiff_file_rabdiff — Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm

Beschreibung

xdiff_file_rabdiff ( string $old_file , string $new_file , string $dest ) : bool

Makes a binary diff of two files and stores the result in a patch file. The difference between this function and xdiff_file_bdiff() is different algorithm used which should result in faster execution and smaller diff produced. This function works with both text and binary files. Resulting patch file can be later applied using xdiff_file_bpatch()/xdiff_string_bpatch().

For more details about differences between algorithm used please check » libxdiff website.

Parameter-Liste

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file. Resulting file contains differences between "old" and "new" files. It is in binary format and is human-unreadable.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 xdiff_file_rabdiff() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_rabdiff($old_version, $new_version, 'my_script.bdiff');
?>

Anmerkungen

Hinweis:

Both files will be loaded into memory so ensure that your memory_limit is set high enough.

Siehe auch

  • xdiff_file_bpatch() - Patch a file with a binary diff


Read a size of file created by applying a binary diff

  • « xdiff_file_rabdiff
  • xdiff_string_bdiff »
  • PHP Manual
  • xdiff Funktionen
  • Read a size of file created by applying a binary diff

xdiff_string_bdiff_size

(PECL xdiff >= 1.5.0)

xdiff_string_bdiff_size — Read a size of file created by applying a binary diff

Beschreibung

xdiff_string_bdiff_size ( string $patch ) : int

Returns a size of a result file that would be created after applying binary patch to the original file.

Parameter-Liste

patch

The binary patch created by xdiff_string_bdiff() or xdiff_string_rabdiff() function.

Rückgabewerte

Returns the size of file that would be created.

Beispiele

Beispiel #1 xdiff_string_bdiff_size() example

The following code applies reads a size of file that would be created after applying a binary diff.

<?php
$binary_patch = file_get_contents('file.bdiff');
$length = xdiff_string_bdiff_size($binary_patch);
echo "Resulting file will be $length bytes long";
?>

Siehe auch

  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_rabdiff() - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm
  • xdiff_string_bpatch() - Patch a string with a binary diff


Make binary diff of two strings

  • « xdiff_string_bdiff_size
  • xdiff_string_bpatch »
  • PHP Manual
  • xdiff Funktionen
  • Make binary diff of two strings

xdiff_string_bdiff

(PECL xdiff >= 1.5.0)

xdiff_string_bdiff — Make binary diff of two strings

Beschreibung

xdiff_string_bdiff ( string $old_data , string $new_data ) : string

Makes a binary diff of two strings and returns the result. This function works with both text and binary data. Resulting patch can be later applied using xdiff_string_bpatch()/xdiff_file_bpatch().

Parameter-Liste

old_data

First string with binary data. It acts as "old" data.

new_data

Second string with binary data. It acts as "new" data.

Rückgabewerte

Returns string with binary diff containing differences between "old" and "new" data or false if an internal error occurred.

Siehe auch

  • xdiff_string_bpatch() - Patch a string with a binary diff


Patch a string with a binary diff

  • « xdiff_string_bdiff
  • xdiff_string_diff_binary »
  • PHP Manual
  • xdiff Funktionen
  • Patch a string with a binary diff

xdiff_string_bpatch

(PECL xdiff >= 1.5.0)

xdiff_string_bpatch — Patch a string with a binary diff

Beschreibung

xdiff_string_bpatch ( string $str , string $patch ) : string

Patches a string str with a binary patch. This function accepts patches created both via xdiff_string_bdiff() and xdiff_string_rabdiff() functions or their file counterparts.

Parameter-Liste

str

The original binary string.

patch

The binary patch string.

Rückgabewerte

Returns the patched string, or false on error.

Siehe auch

  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_rabdiff() - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm


Alias of xdiff_string_bdiff

  • « xdiff_string_bpatch
  • xdiff_string_diff »
  • PHP Manual
  • xdiff Funktionen
  • Alias of xdiff_string_bdiff

xdiff_string_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_string_diff_binary — Alias of xdiff_string_bdiff

Beschreibung

xdiff_string_bdiff ( string $old_data , string $new_data ) : string

Makes a binary diff of two strings and returns the result. This function works with both text and binary data. Resulting patch can be later applied using xdiff_string_bpatch()/xdiff_file_bpatch().

Starting with version 1.5.0 this function is an alias of xdiff_string_bdiff().

Parameter-Liste

old_data

First string with binary data. It acts as "old" data.

new_data

Second string with binary data. It acts as "new" data.

Rückgabewerte

Returns string with result or false if an internal error happened.

Siehe auch

  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_bpatch() - Patch a string with a binary diff


Make unified diff of two strings

  • « xdiff_string_diff_binary
  • xdiff_string_merge3 »
  • PHP Manual
  • xdiff Funktionen
  • Make unified diff of two strings

xdiff_string_diff

(PECL xdiff >= 0.2.0)

xdiff_string_diff — Make unified diff of two strings

Beschreibung

xdiff_string_diff ( string $old_data , string $new_data , int $context = 3 , bool $minimal = false ) : string

Makes an unified diff containing differences between old_data string and new_data string and returns it. The resulting diff is human-readable. An optional context parameter specifies how many lines of context should be added around each change. Setting minimal parameter to true will result in outputting the shortest patch file possible (can take a long time).

Parameter-Liste

old_data

First string with data. It acts as "old" data.

new_data

Second string with data. It acts as "new" data.

context

Indicates how many lines of context you want to include in the diff result.

minimal

Set this parameter to true if you want to minimalize the size of the result (can take a long time).

Rückgabewerte

Returns string with resulting diff or false if an internal error happened.

Beispiele

Beispiel #1 xdiff_string_diff() example

The following code makes unified diff of two articles.

<?php
$old_article = file_get_contents('./old_article.txt');
$new_article = $_REQUEST['article']; /* Let's say that someone pasted a new article to html form */

$diff = xdiff_string_diff($old_article, $new_article, 1);
if (is_string($diff)) {
    echo "Differences between two articles:\n";
    echo $diff;
}

?>

Anmerkungen

Hinweis:

This function doesn't work well with binary strings. To make diff of binary strings use xdiff_string_bdiff()/xdiff_string_rabdiff().

Siehe auch

  • xdiff_string_patch() - Patch a string with an unified diff


Merge 3 strings into one

  • « xdiff_string_diff
  • xdiff_string_patch_binary »
  • PHP Manual
  • xdiff Funktionen
  • Merge 3 strings into one

xdiff_string_merge3

(PECL xdiff >= 0.2.0)

xdiff_string_merge3 — Merge 3 strings into one

Beschreibung

xdiff_string_merge3 ( string $old_data , string $new_data1 , string $new_data2 , string &$error = ? ) : mixed

Merges three strings into one and returns the result. The old_data is an original version of data while new_data1 and new_data2 are modified versions of an original. An optional error is used to pass any rejected parts during merging process.

Parameter-Liste

old_data

First string with data. It acts as "old" data.

new_data1

Second string with data. It acts as modified version of old_data.

new_data2

Third string with data. It acts as modified version of old_data.

error

If provided then rejected parts are stored inside this variable.

Rückgabewerte

Returns the merged string, false if an internal error happened, or true if merged string is empty.

Siehe auch

  • xdiff_file_merge3() - Merge 3 files into one


Alias of xdiff_string_bpatch

  • « xdiff_string_merge3
  • xdiff_string_patch »
  • PHP Manual
  • xdiff Funktionen
  • Alias of xdiff_string_bpatch

xdiff_string_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_string_patch_binary — Alias of xdiff_string_bpatch

Beschreibung

xdiff_string_patch_binary ( string $str , string $patch ) : string

Patches a string str with a binary patch. This function accepts patches created both via xdiff_string_bdiff() and xdiff_string_rabdiff() functions or their file counterparts.

Starting with version 1.5.0 this function is an alias of xdiff_string_bpatch().

Parameter-Liste

str

The original binary string.

patch

The binary patch string.

Rückgabewerte

Returns the patched string, or false on error.

Siehe auch

  • xdiff_string_bpatch() - Patch a string with a binary diff
  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_rabdiff() - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm


Patch a string with an unified diff

  • « xdiff_string_patch_binary
  • xdiff_string_rabdiff »
  • PHP Manual
  • xdiff Funktionen
  • Patch a string with an unified diff

xdiff_string_patch

(PECL xdiff >= 0.2.0)

xdiff_string_patch — Patch a string with an unified diff

Beschreibung

xdiff_string_patch ( string $str , string $patch , int $flags = ? , string &$error = ? ) : string

Patches a str string with an unified patch in patch parameter and returns the result. patch has to be an unified diff created by xdiff_file_diff()/xdiff_string_diff() function. An optional flags parameter specifies mode of operation. Any rejected parts of the patch will be stored inside error variable if it is provided.

Parameter-Liste

str

The original string.

patch

The unified patch string. It has to be created using xdiff_string_diff(), xdiff_file_diff() functions or compatible tools.

flags

flags can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

Starting from version 1.5.0, you can also use binary OR to enable XDIFF_PATCH_IGNORESPACE flag.

error

If provided then rejected parts are stored inside this variable.

Rückgabewerte

Returns the patched string, or false on error.

Beispiele

Beispiel #1 xdiff_string_patch() example

The following code applies changes to some article.

<?php
$old_article = file_get_contents('./old_article.txt');
$diff = $_SERVER['patch']; /* Let's say that someone pasted a patch to html form */

$errors = '';

$new_article = xdiff_string_patch($old_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($new_article)) {
    echo "New article:\n";
    echo $new_article;
}

if (strlen($errors)) {
    echo "Rejects: \n";
    echo $errors;
}

?>

Siehe auch

  • xdiff_string_diff() - Make unified diff of two strings


Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

  • « xdiff_string_patch
  • Unterstützung menschlicher Sprache und Zeichenkodierung »
  • PHP Manual
  • xdiff Funktionen
  • Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

xdiff_string_rabdiff

(PECL xdiff >= 1.5.0)

xdiff_string_rabdiff — Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

Beschreibung

xdiff_string_bdiff ( string $old_data , string $new_data ) : string

Makes a binary diff of two strings and returns the result. The difference between this function and xdiff_string_bdiff() is different algorithm used which should result in faster execution and smaller diff produced. This function works with both text and binary data. Resulting patch can be later applied using xdiff_string_bpatch()/xdiff_file_bpatch().

For more details about differences between algorithm used please check » libxdiff website.

Parameter-Liste

old_data

First string with binary data. It acts as "old" data.

new_data

Second string with binary data. It acts as "new" data.

Rückgabewerte

Returns string with binary diff containing differences between "old" and "new" data or false if an internal error occurred.

Siehe auch

  • xdiff_string_bpatch() - Patch a string with a binary diff


Unterstützung menschlicher Sprache und Zeichenkodierung

  • Enchant — Enchant spelling library
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Enchant Funktionen
    • EnchantBroker — The EnchantBroker class
    • EnchantDictionary — The EnchantDictionary class
  • Gender — Geschlecht aus Vornamen ermitteln
    • Einführung
    • Installation/Konfiguration
    • Beispiele
    • Gender\Gender — The Gender\Gender class
  • Gettext
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Gettext-Funktionen
  • iconv
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • iconv Funktionen
  • intl — Internationalization Functions
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Collator — The Collator class
    • NumberFormatter — The NumberFormatter class
    • Locale — The Locale class
    • Normalizer — The Normalizer class
    • MessageFormatter — The MessageFormatter class
    • IntlCalendar — The IntlCalendar class
    • IntlGregorianCalendar — The IntlGregorianCalendar class
    • IntlTimeZone — The IntlTimeZone class
    • IntlDateFormatter — The IntlDateFormatter class
    • ResourceBundle — The ResourceBundle class
    • Spoofchecker — The Spoofchecker class
    • Transliterator — The Transliterator class
    • IntlBreakIterator — The IntlBreakIterator class
    • IntlRuleBasedBreakIterator — The IntlRuleBasedBreakIterator class
    • IntlCodePointBreakIterator — The IntlCodePointBreakIterator class
    • IntlPartsIterator — The IntlPartsIterator class
    • UConverter — The UConverter class
    • Grapheme Funktionen
    • IDN Funktionen
    • IntlChar
    • IntlException — Exception class for intl errors
    • IntlIterator — The IntlIterator class
    • intl Funktionen
  • Multibyte String
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Summaries of supported encodings
    • Basics of Japanese multi-byte encodings
    • HTTP Input and Output
    • Supported Character Encodings
    • Function Overloading Feature
    • PHP Character Encoding Requirements
    • Multibyte String Funktionen
  • Pspell
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Pspell Funktionen
  • Recode — GNU Recode
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Recode-Funktionen


Enchant spelling library

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Enchant Funktionen
    • enchant_broker_describe — Enumerates the Enchant providers
    • enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag
    • enchant_broker_free_dict — Free a dictionary resource
    • enchant_broker_free — Free the broker resource and its dictionaries
    • enchant_broker_get_dict_path — Get the directory path for a given backend
    • enchant_broker_get_error — Returns the last error of the broker
    • enchant_broker_init — Create a new broker object capable of requesting
    • enchant_broker_list_dicts — Returns a list of available dictionaries
    • enchant_broker_request_dict — Create a new dictionary using a tag
    • enchant_broker_request_pwl_dict — Creates a dictionary using a PWL file
    • enchant_broker_set_dict_path — Set the directory path for a given backend
    • enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language
    • enchant_dict_add_to_personal — Alias von enchant_dict_add
    • enchant_dict_add_to_session — Add 'word' to this spell-checking session
    • enchant_dict_add — Add a word to personal word list
    • enchant_dict_check — Check whether a word is correctly spelled or not
    • enchant_dict_describe — Describes an individual dictionary
    • enchant_dict_get_error — Returns the last error of the current spelling-session
    • enchant_dict_is_added — Whether or not 'word' exists in this spelling-session
    • enchant_dict_is_in_session — Alias von enchant_dict_is_added
    • enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions
    • enchant_dict_store_replacement — Add a correction for a word
    • enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met
  • EnchantBroker — The EnchantBroker class
  • EnchantDictionary — The EnchantDictionary class


Einführung

Enchant is the PHP binding for the » Enchant library. Enchant steps in to provide uniformity and conformity on top of all spelling libraries, and implement certain features that may be lacking in any individual provider library. Everything should "just work" for any and every definition of "just working."

Enchant supports the following backends:

  • Aspell/Pspell (intends to replace Ispell)

  • Ispell (old as sin, could be interpreted as a defacto standard)

  • MySpell/Hunspell (an OOo projects, also used by Mozilla)

  • Uspell (primarily Yiddish, Hebrew, and Eastern European languages - hosted in AbiWord's CVS under the module "uspell")

  • Hspell (Hebrew)

  • AppleSpell (Mac OSX)


Anforderungen

This version uses the functions of the » Enchant library by Dom Lachowicz. You need Enchant 1.2.4 or later. Enchant 2.0.0 or later is only supported as of PHP 8.0.0.

Enchant also requires » Glib 2.6 or greater. Pre-compiled Windows libraries are available from » http://ftp.gnome.org/pub/gnome/binaries/win32/glib/.


Installation

This extension is bundled with PHP as of PHP 5.3.0. Before this time, enchant was a PECL extension. Users of versions prior to 5.3.0 may use the » PECL extension.

Provided the required libraries are installed, users of PHP 5.3.0 or later may enable enchant by adding the --with-enchant[=dir] option when compiling PHP.


Ressource-Typen

Prior to PHP 8.0.0, there are two types of resources in this extension. The first one is the broker (backends manager) and the second is for the dictionary.


Vordefinierte Konstanten

LIBENCHANT_VERSION (string)
The version of libenchant. Available as of PHP 8.0.0.
ENCHANT_MYSPELL (int)
Dictionary type for MySpell. Used with enchant_broker_get_dict_path() and enchant_broker_set_dict_path(). Deprecated as of PHP 8.0.0.
ENCHANT_ISPELL (int)
Dictionary type for Ispell. Used with enchant_broker_get_dict_path() and enchant_broker_set_dict_path(). Deprecated as of PHP 8.0.0.


Beispiele

Beispiel #1 Enchant Usage Example

<?php
$tag = 'en_US';
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Current broker provides the following backend(s):\n";
print_r($bprovides);

$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);
    $dprovides = enchant_dict_describe($d);
    echo "dictionary $tag provides:\n";
    $wordcorrect = enchant_dict_check($d, "soong");
    print_r($dprovides);
    if (!$wordcorrect) {
        $suggs = enchant_dict_suggest($d, "soong");
        echo "Suggestions for 'soong':";
        print_r($suggs);
    }
    enchant_broker_free_dict($d);
} else {
}
enchant_broker_free($r);
?>


Enchant Funktionen

Inhaltsverzeichnis

  • enchant_broker_describe — Enumerates the Enchant providers
  • enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag
  • enchant_broker_free_dict — Free a dictionary resource
  • enchant_broker_free — Free the broker resource and its dictionaries
  • enchant_broker_get_dict_path — Get the directory path for a given backend
  • enchant_broker_get_error — Returns the last error of the broker
  • enchant_broker_init — Create a new broker object capable of requesting
  • enchant_broker_list_dicts — Returns a list of available dictionaries
  • enchant_broker_request_dict — Create a new dictionary using a tag
  • enchant_broker_request_pwl_dict — Creates a dictionary using a PWL file
  • enchant_broker_set_dict_path — Set the directory path for a given backend
  • enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language
  • enchant_dict_add_to_personal — Alias von enchant_dict_add
  • enchant_dict_add_to_session — Add 'word' to this spell-checking session
  • enchant_dict_add — Add a word to personal word list
  • enchant_dict_check — Check whether a word is correctly spelled or not
  • enchant_dict_describe — Describes an individual dictionary
  • enchant_dict_get_error — Returns the last error of the current spelling-session
  • enchant_dict_is_added — Whether or not 'word' exists in this spelling-session
  • enchant_dict_is_in_session — Alias von enchant_dict_is_added
  • enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions
  • enchant_dict_store_replacement — Add a correction for a word
  • enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met


Enumerates the Enchant providers

  • « Enchant Funktionen
  • enchant_broker_dict_exists »
  • PHP Manual
  • Enchant Funktionen
  • Enumerates the Enchant providers

enchant_broker_describe

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0)

enchant_broker_describe — Enumerates the Enchant providers

Beschreibung

enchant_broker_describe ( EnchantBroker $broker ) : array

Enumerates the Enchant providers and tells you some rudimentary information about them. The same info is provided through phpinfo().

Parameter-Liste

broker

An Enchant broker returned by enchant_broker_init().

Rückgabewerte

Returns an Array of available Enchant providers with their details.

Changelog

Version | Beschreibung
8.0.0 | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
8.0.0 | Prior to this version, the function returned false on failure.

Beispiele

Beispiel #1 List the backends provided by the given broker

<?php
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Current broker provides the following backend(s):\n";
print_r($bprovides);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Current broker provides the following backend(s):
Array
(
    [0] => Array
        (
            [name] => aspell
            [desc] => Aspell Provider
            [file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [name] => hspell
            [desc] => Hspell Provider
            [file] => /usr/lib/enchant/libenchant_hspell.so
        )

    [2] => Array
        (
            [name] => ispell
            [desc] => Ispell Provider
            [file] => /usr/lib/enchant/libenchant_ispell.so
        )

    [3] => Array
        (
            [name] => myspell
            [desc] => Myspell Provider
            [file] => /usr/lib/enchant/libenchant_myspell.so
        )

)


Whether a dictionary exists or not. Using non-empty tag

  • « enchant_broker_describe
  • enchant_broker_free_dict »
  • PHP Manual
  • Enchant Funktionen
  • Whether a dictionary exists or not. Using non-empty tag

enchant_broker_dict_exists

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag

Beschreibung

enchant_broker_dict_exists ( EnchantBroker $broker , string $tag ) : bool

Tells if a dictionary exists or not, using a non-empty tags

Parameter-Liste

broker

An Enchant broker returned by enchant_broker_init().

tag

non-empty tag in the LOCALE format, ex: us_US, ch_DE, etc.

Rückgabewerte

Returns true when the tag exist or false when not.

Changelog

Version | Beschreibung
8.0.0 | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.

Beispiele

Beispiel #1 A enchant_broker_dict_exists() example

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
    echo $tag . " dictionary found.\n";
}
?>

Siehe auch

  • enchant_broker_describe() - Enumerates the Enchant providers


Free a dictionary resource

  • « enchant_broker_dict_exists
  • enchant_broker_free »
  • PHP Manual
  • Enchant Funktionen
  • Free a dictionary resource

enchant_broker_free_dict

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_free_dict — Free a dictionary resource

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

enchant_broker_free_dict ( EnchantDictionary $dictionary ) : bool

Free a dictionary. As of PHP 8.0.0, it is recommended to unset the object instead of calling this function.

Parameter-Liste

dictionary

An Enchant dictionary returned by enchant_broker_request_dict() or enchant_broker_request_pwl_dict().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | dictionary expects a EnchantDictionary now; previoulsy, a Ressource was expected.

Siehe auch

  • enchant_broker_request_dict() - Create a new dictionary using a tag
  • enchant_broker_request_pwl_dict() - Creates a dictionary using a PWL file


Free the broker resource and its dictionaries

  • « enchant_broker_free_dict
  • enchant_broker_get_dict_path »
  • PHP Manual
  • Enchant Funktionen
  • Free the broker resource and its dictionaries

enchant_broker_free

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_free — Free the broker resource and its dictionaries

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

enchant_broker_free ( EnchantBroker $broker ) : bool

Free a broker with all its dictionaries. As of PHP 8.0.0, it is recommended to unset the object instead of calling this function.

Parameter-Liste

broker

An Enchant broker returned by enchant_broker_init().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.

Siehe auch

  • enchant_broker_init() - Create a new broker object capable of requesting


Get the directory path for a given backend

  • « enchant_broker_free
  • enchant_broker_get_error »
  • PHP Manual
  • Enchant Funktionen
  • Get the directory path for a given backend

enchant_broker_get_dict_path

(PHP 5 >= 5.3.1, PHP 7, PHP 8, PECL enchant >= 1.0.1)

enchant_broker_get_dict_path — Get the directory path for a given backend

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

enchant_broker_get_dict_path ( EnchantBroker $broker , int $type ) : string|false

Get the directory path for a given backend.

Parameter-Liste

broker

An Enchant broker returned by enchant_broker_init().

type

The type of the dictionaries, i.e. ENCHANT_MYSPELL or ENCHANT_ISPELL.

Rückgabewerte

Returns the path of the dictionary directory on successIm Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.

Anmerkungen

Hinweis:

This function is only available if the extension has been compiled with Enchant v1.

Siehe auch

  • enchant_broker_set_dict_path() - Set the directory path for a given backend


Returns the last error of the broker

  • « enchant_broker_get_dict_path
  • enchant_broker_init »
  • PHP Manual
  • Enchant Funktionen
  • Returns the last error of the broker

enchant_broker_get_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_get_error — Returns the last error of the broker

Beschreibung

enchant_broker_get_error ( EnchantBroker $broker ) : string|false

Returns the last error which occurred in this broker.

Parameter-Liste

broker

An Enchant broker returned by enchant_broker_init().

Rückgabewerte

Return the msg string if an error was found or false

Changelog

Version | Beschreibung
8.0.0 | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.


Create a new broker object capable of requesting

  • « enchant_broker_get_error
  • enchant_broker_list_dicts »
  • PHP Manual
  • Enchant Funktionen
  • Create a new broker object capable of requesting

enchant_broker_init

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_init — Create a new broker object capable of requesting

Beschreibung

enchant_broker_init ( ) : EnchantBroker|false

Parameter-Liste

Rückgabewerte

Returns a broker resource on success or false.

Changelog

Version | Beschreibung
8.0.0 | On success, this function returns an EnchantBroker instance now; previoulsy, a Ressource was retured.

Siehe auch

  • enchant_broker_free() - Free the broker resource and its dictionaries


Returns a list of available dictionaries

  • « enchant_broker_init
  • enchant_broker_request_dict »
  • PHP Manual
  • Enchant Funktionen
  • Returns a list of available dictionaries

enchant_broker_list_dicts

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 1.0.1)

enchant_broker_list_dicts — Returns a list of available dictionaries

Beschreibung

enchant_broker_list_dicts ( EnchantBroker $broker ) : array

Returns a list of available dictionaries with their details.

Parameter-Liste

broker

An Enchant broker returned by enchant_broker_init().

Rückgabewerte

Returns an Array of available dictionaries with their details.

Changelog

Version | Beschreibung
8.0.0 | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
8.0.0 | Prior to this version, the function returned false on failure.

Beispiele

Beispiel #1 List all available dictionaries for one broker

<?php
$r = enchant_broker_init();
$dicts = enchant_broker_list_dicts($r);
print_r($dicts);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [lang_tag] => de
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [lang_tag] => de_DE
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [3] => Array
        (
            [lang_tag] => en
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [4] => Array
        (
            [lang_tag] => en_GB
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [5] => Array
        (
            [lang_tag] => en_US
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [6] => Array
        (
            [lang_tag] => hi_IN
            [provider_name] => myspell
            [provider_desc] => Myspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_myspell.so
        )

)

Siehe auch

  • enchant_broker_describe() - Enumerates the Enchant providers


Create a new dictionary using a tag

  • « enchant_broker_list_dicts
  • enchant_broker_request_pwl_dict »
  • PHP Manual
  • Enchant Funktionen
  • Create a new dictionary using a tag

enchant_broker_request_dict

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_request_dict — Create a new dictionary using a tag

Beschreibung

enchant_broker_request_dict ( EnchantBroker $broker , string $tag ) : EnchantDictionary|false

create a new dictionary using tag, the non-empty language tag you wish to request a dictionary for ("en_US", "de_DE", ...)

Parameter-Liste

broker

An Enchant broker returned by enchant_broker_init().

tag

A tag describing the locale, for example en_US, de_DE

Rückgabewerte

Returns a dictionary resource on successIm Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
8.0.0 | On success, this function returns an EnchantDictionary instance now; previoulsy, a Ressource was retured.

Beispiele

Beispiel #1 A enchant_broker_request_dict() example

Check if a dictionary exists using enchant_broker_dict_exists() and request it.

<?php
$tag = 'en_US';
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker,$tag)) {
    $dict = enchant_broker_request_dict($r, $tag);
}
?>

Siehe auch

  • enchant_dict_describe() - Describes an individual dictionary
  • enchant_broker_dict_exists() - Whether a dictionary exists or not. Using non-empty tag
  • enchant_broker_free_dict() - Free a dictionary resource


Creates a dictionary using a PWL file

  • « enchant_broker_request_dict
  • enchant_broker_set_dict_path »
  • PHP Manual
  • Enchant Funktionen
  • Creates a dictionary using a PWL file

enchant_broker_request_pwl_dict

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_request_pwl_dict — Creates a dictionary using a PWL file

Beschreibung

enchant_broker_request_pwl_dict ( EnchantBroker $broker , string $filename ) : EnchantDictionary|false

Creates a dictionary using a PWL file. A PWL file is personal word file one word per line.

Parameter-Liste

broker

An Enchant broker returned by enchant_broker_init().

filename

Path to the PWL file. If there is no such file, a new one will be created if possible.

Rückgabewerte

Returns a dictionary resource on successIm Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
8.0.0 | On success, this function returns an EnchantDictionary instance now; previoulsy, a Ressource was retured.

Siehe auch

  • enchant_dict_describe() - Describes an individual dictionary
  • enchant_broker_dict_exists() - Whether a dictionary exists or not. Using non-empty tag
  • enchant_broker_free_dict() - Free a dictionary resource


Set the directory path for a given backend

  • « enchant_broker_request_pwl_dict
  • enchant_broker_set_ordering »
  • PHP Manual
  • Enchant Funktionen
  • Set the directory path for a given backend

enchant_broker_set_dict_path

(PHP 5 >= 5.3.1, PHP 7, PHP 8, PECL enchant >= 1.0.1)

enchant_broker_set_dict_path — Set the directory path for a given backend

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

enchant_broker_set_dict_path ( EnchantBroker $broker , int $type , string $path ) : bool

Set the directory path for a given backend.

Parameter-Liste

broker

An Enchant broker returned by enchant_broker_init().

type

The type of the dictionaries, i.e. ENCHANT_MYSPELL or ENCHANT_ISPELL.

path

The path of the dictionary directory.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.

Anmerkungen

Hinweis:

This function is only available if the extension has been compiled with Enchant v1.

Siehe auch

  • enchant_broker_get_dict_path() - Get the directory path for a given backend


Declares a preference of dictionaries to use for the language

  • « enchant_broker_set_dict_path
  • enchant_dict_add_to_personal »
  • PHP Manual
  • Enchant Funktionen
  • Declares a preference of dictionaries to use for the language

enchant_broker_set_ordering

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language

Beschreibung

enchant_broker_set_ordering ( EnchantBroker $broker , string $tag , string $ordering ) : bool

Declares a preference of dictionaries to use for the language described/referred to by 'tag'. The ordering is a comma delimited list of provider names. As a special exception, the "*" tag can be used as a language tag to declare a default ordering for any language that does not explicitly declare an ordering.

Parameter-Liste

broker

An Enchant broker returned by enchant_broker_init().

tag

Language tag. The special "*" tag can be used as a language tag to declare a default ordering for any language that does not explicitly declare an ordering.

ordering

Comma delimited list of provider names

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.


Alias von enchant_dict_add

  • « enchant_broker_set_ordering
  • enchant_dict_add_to_session »
  • PHP Manual
  • Enchant Funktionen
  • Alias von enchant_dict_add

enchant_dict_add_to_personal

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_add_to_personal — Alias von enchant_dict_add()

Warnung

Dieser Alias ist seit PHP 8.0.0 VERALTET.

Beschreibung

Diese Funktion ist ein Alias für: enchant_dict_add().


Add 'word' to this spell-checking session

  • « enchant_dict_add_to_personal
  • enchant_dict_add »
  • PHP Manual
  • Enchant Funktionen
  • Add 'word' to this spell-checking session

enchant_dict_add_to_session

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_add_to_session — Add 'word' to this spell-checking session

Beschreibung

enchant_dict_add_to_session ( EnchantDictionary $dictionary , string $word ) : void

Add a word to the given dictionary. It will be added only for the active spell-checking session.

Parameter-Liste

dictionary

An Enchant dictionary returned by enchant_broker_request_dict() or enchant_broker_request_pwl_dict().

word

The word to add

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.

Siehe auch

  • enchant_broker_request_dict() - Create a new dictionary using a tag


Add a word to personal word list

  • « enchant_dict_add_to_session
  • enchant_dict_check »
  • PHP Manual
  • Enchant Funktionen
  • Add a word to personal word list

enchant_dict_add

(PHP 8)

enchant_dict_add — Add a word to personal word list

Beschreibung

enchant_dict_add ( EnchantDictionary $dictionary , string $word ) : void

Add a word to personal word list of the given dictionary.

Parameter-Liste

dictionary

An Enchant dictionary returned by enchant_broker_request_dict() or enchant_broker_request_pwl_dict().

word

The word to add

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.

Beispiel #1 Adding a word to a PWL

<?php

$filename = './my_word_list.pwl';
$word = 'Supercalifragilisticexpialidocious';

$broker = enchant_broker_init();
$dict = enchant_broker_request_pwl_dict($broker, $filename);

enchant_dict_add($dict, $word);

enchant_broker_free($broker);

?>

Siehe auch

  • enchant_broker_request_pwl_dict() - Creates a dictionary using a PWL file
  • enchant_broker_request_dict() - Create a new dictionary using a tag


Check whether a word is correctly spelled or not

  • « enchant_dict_add
  • enchant_dict_describe »
  • PHP Manual
  • Enchant Funktionen
  • Check whether a word is correctly spelled or not

enchant_dict_check

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_check — Check whether a word is correctly spelled or not

Beschreibung

enchant_dict_check ( EnchantDictionary $dictionary , string $word ) : bool

If the word is correctly spelled return true, otherwise return false

Parameter-Liste

dictionary

An Enchant dictionary returned by enchant_broker_request_dict() or enchant_broker_request_pwl_dict().

word

The word to check

Rückgabewerte

Returns true if the word is spelled correctly, false if not.

Changelog

Version | Beschreibung
8.0.0 | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.


Describes an individual dictionary

  • « enchant_dict_check
  • enchant_dict_get_error »
  • PHP Manual
  • Enchant Funktionen
  • Describes an individual dictionary

enchant_dict_describe

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_describe — Describes an individual dictionary

Beschreibung

enchant_dict_describe ( EnchantDictionary $dictionary ) : array

Returns the details of the dictionary.

Parameter-Liste

dictionary

An Enchant dictionary returned by enchant_broker_request_dict() or enchant_broker_request_pwl_dict().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.
8.0.0 | Prior to this version, the function returned false on failure.

Beispiele

Beispiel #1 A enchant_dict_describe() example

Check if a dictionary exists using enchant_broker_dict_exists() and show the detail of it.

<?php
$tag = 'en_US';
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker,$tag)) {
    $dict = enchant_broker_request_dict($r, $tag);
    $dict_details = enchant_dict_describe($dict);
    print_r($dict_details);
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [lang] => en_US
    [name] => aspell
    [desc] => Aspell Provider
    [file] => /usr/lib/enchant/libenchant_aspell.so
)


Returns the last error of the current spelling-session

  • « enchant_dict_describe
  • enchant_dict_is_added »
  • PHP Manual
  • Enchant Funktionen
  • Returns the last error of the current spelling-session

enchant_dict_get_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_get_error — Returns the last error of the current spelling-session

Beschreibung

enchant_dict_get_error ( EnchantDictionary $dictionary ) : string|false

Returns the last error of the current spelling-session

Parameter-Liste

dictionary

An Enchant dictionary returned by enchant_broker_request_dict() or enchant_broker_request_pwl_dict().

Rückgabewerte

Returns the error message as string or false if no error occurred.

Changelog

Version | Beschreibung
8.0.0 | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.


Whether or not 'word' exists in this spelling-session

  • « enchant_dict_get_error
  • enchant_dict_is_in_session »
  • PHP Manual
  • Enchant Funktionen
  • Whether or not 'word' exists in this spelling-session

enchant_dict_is_added

(PHP 8)

enchant_dict_is_added — Whether or not 'word' exists in this spelling-session

Beschreibung

enchant_dict_is_added ( EnchantDictionary $dictionary , string $word ) : bool

Tells whether or not a word already exists in the current session.

Parameter-Liste

dictionary

An Enchant dictionary returned by enchant_broker_request_dict() or enchant_broker_request_pwl_dict().

word

The word to lookup

Rückgabewerte

Returns true if the word exists or false

Changelog

Version | Beschreibung
8.0.0 | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.

Siehe auch

  • enchant_dict_add_to_session() - Add 'word' to this spell-checking session


Alias von enchant_dict_is_added

  • « enchant_dict_is_added
  • enchant_dict_quick_check »
  • PHP Manual
  • Enchant Funktionen
  • Alias von enchant_dict_is_added

enchant_dict_is_in_session

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_is_in_session — Alias von enchant_dict_is_added()

Warnung

Dieser Alias ist seit PHP 8.0.0 VERALTET.

Beschreibung

Diese Funktion ist ein Alias für: enchant_dict_is_added().


Check the word is correctly spelled and provide suggestions

  • « enchant_dict_is_in_session
  • enchant_dict_store_replacement »
  • PHP Manual
  • Enchant Funktionen
  • Check the word is correctly spelled and provide suggestions

enchant_dict_quick_check

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant:0.2.0-1.0.1)

enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions

Beschreibung

enchant_dict_quick_check ( EnchantDictionary $dictionary , string $word , array &$suggestions = null ) : bool

If the word is correctly spelled return true, otherwise return false, if suggestions variable is provided, fill it with spelling alternatives.

Parameter-Liste

dictionary

An Enchant dictionary returned by enchant_broker_request_dict() or enchant_broker_request_pwl_dict().

word

The word to check

suggestions

If the word is not correctly spelled, this variable will contain an array of suggestions.

Rückgabewerte

Returns true if the word is correctly spelled or false

Changelog

Version | Beschreibung
8.0.0 | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.

Beispiele

Beispiel #1 A enchant_dict_quick_check() example

<?php
$tag = 'en_US';
$r = enchant_broker_init();

if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);
    enchant_dict_quick_check($d, 'soong', $suggs);
    print_r($suggs);
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => song
    [1] => snog
    [2] => soon
    [3] => Sang
    [4] => Sung
    [5] => sang
    [6] => sung
    [7] => sponge
    [8] => spongy
    [9] => snag
    [10] => snug
    [11] => sonic
    [12] => sing
    [13] => songs
    [14] => Son
    [15] => Sonja
    [16] => Synge
    [17] => son
    [18] => Sejong
    [19] => sarong
    [20] => sooner
    [21] => Sony
    [22] => sown
    [23] => scone
    [24] => song's
)

Siehe auch

  • enchant_dict_check() - Check whether a word is correctly spelled or not
  • enchant_dict_suggest() - Will return a list of values if any of those pre-conditions are not met


Add a correction for a word

  • « enchant_dict_quick_check
  • enchant_dict_suggest »
  • PHP Manual
  • Enchant Funktionen
  • Add a correction for a word

enchant_dict_store_replacement

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_store_replacement — Add a correction for a word

Beschreibung

enchant_dict_store_replacement ( EnchantDictionary $dictionary , string $misspelled , string $correct ) : void

Add a correction for 'mis' using 'cor'. Notes that you replaced @mis with @cor, so it's possibly more likely that future occurrences of @mis will be replaced with @cor. So it might bump @cor up in the suggestion list.

Parameter-Liste

dictionary

An Enchant dictionary returned by enchant_broker_request_dict() or enchant_broker_request_pwl_dict().

misspelled

The work to fix

correct

The correct word

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.


Will return a list of values if any of those pre-conditions are not met

  • « enchant_dict_store_replacement
  • EnchantBroker »
  • PHP Manual
  • Enchant Funktionen
  • Will return a list of values if any of those pre-conditions are not met

enchant_dict_suggest

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met

Beschreibung

enchant_dict_suggest ( EnchantDictionary $dictionary , string $word ) : array

Parameter-Liste

dictionary

An Enchant dictionary returned by enchant_broker_request_dict() or enchant_broker_request_pwl_dict().

word

Word to use for the suggestions.

Rückgabewerte

Will returns an array of suggestions if the word is bad spelled.

Changelog

Version | Beschreibung
8.0.0 | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.

Beispiele

Beispiel #1 A enchant_dict_suggest() example

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);

    $wordcorrect = enchant_dict_check($d, "soong");
    if (!$wordcorrect) {
        $suggs = enchant_dict_suggest($d, "soong");
        echo "Suggestions for 'soong':";
        print_r($suggs);
    }
    enchant_broker_free_dict($d);
}
enchant_broker_free($r);
?>

Siehe auch

  • enchant_dict_check() - Check whether a word is correctly spelled or not
  • enchant_dict_quick_check() - Check the word is correctly spelled and provide suggestions


The EnchantBroker class

(PHP 8)

Einführung

A fully opaque class which replaces enchant_broker resources as of PHP 8.0.0.

Klassenbeschreibung

final EnchantBroker {
}


The EnchantDictionary class

(PHP 8)

Einführung

A fully opaque class which replaces enchant_dict resources as of PHP 8.0.0.

Klassenbeschreibung

final EnchantDictionary {
}


Geschlecht aus Vornamen ermitteln

  • Einführung
  • Installation/Konfiguration
    • Installation
  • Beispiele
    • Beispiel.
  • Gender\Gender — The Gender\Gender class
    • Gender\Gender::connect — Connect to an external name dictionary
    • Gender\Gender::__construct — Construct the Gender object
    • Gender\Gender::country — Get textual country representation
    • Gender\Gender::get — Get gender of a name
    • Gender\Gender::isNick — Check if the name0 is an alias of the name1
    • Gender\Gender::similarNames — Get similar names


Einführung

Die Gender PHP Erweiterung ist ein Port des gender.c Programms entwickelt von Joerg Michael. Der Zweck ist die Ermittlung des Geschlechts anhand des Vornamens. Die aktuelle Datenbank beinhaltet >40000 Vornamen aus 54 Ländern.


  • « Einführung
  • Installation »
  • PHP Manual
  • Gender
  • Installation/Konfiguration

Installation/Konfiguration

Inhaltsverzeichnis

  • Installation


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/gender.

Eine DLL für den Download dieser PECL Erweiterung ist hier verfügbar: » http://windows.php.net/downloads/pecl/releases/gender/.


  • « Installation
  • Beispiel. »
  • PHP Manual
  • Gender
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Beispiel.


Beispiel.

Gender Nutzungsbeispiel.

Beispiel #1 Beispiel.

<?php

namespace Gender;

$gender = new Gender;

$name = "Milene";
$country = Gender::GERMANY;

$result = $gender->get($name, $country);

$data = $gender->country($country);

switch($result) {
    case Gender::IS_FEMALE:
        printf("Der Name %s ist in %s weiblich\n", $name, $data['country']);
    break;

    case Gender::IS_MOSTLY_FEMALE:
        printf("Der Name %s ist in %s meistens weiblich\n", $name, $data['country']);
    break;

    case Gender::IS_MALE:
        printf("Der Name %s ist in %s männlich\n", $name, $data['country']);
    break;

    case Gender::IS_MOSTLY_MALE:
        printf("Der Name %s ist in %s meistens männlich\n", $name, $data['country']);
    break;

    case Gender::IS_UNISEX_NAME:
        printf("Der Name %s ist in %s geschlechtsneutral\n", $name, $data['country']);
    break;

    case Gender::IS_A_COUPLE:
        printf("Der Name %s ist in %s männlich und weiblich\n", $name, $data['country']);
    break;

    case Gender::NAME_NOT_FOUND:
        printf("Der Name %s wurde in %s nicht gefunden\n", $name, $data['country']);
    break;

    case Gender::ERROR_IN_NAME:
        echo "Der Name ist ungültig!\n";
    break;

    default:
        echo "Es ist ein Fehler aufgetreten!\n";
    break;

}


The Gender\Gender class

(PECL gender >= 0.6.0)

Einführung

Klassenbeschreibung

Gender\Gender {
/* Constants */
const int IS_FEMALE = 70 ;
const int IS_MOSTLY_FEMALE = 102 ;
const int IS_MALE = 77 ;
const int IS_MOSTLY_MALE = 109 ;
const int IS_UNISEX_NAME = 63 ;
const int IS_A_COUPLE = 67 ;
const int NAME_NOT_FOUND = 32 ;
const int ERROR_IN_NAME = 69 ;
const int ANY_COUNTRY = 0 ;
const int BRITAIN = 1 ;
const int IRELAND = 2 ;
const int USA = 3 ;
const int SPAIN = 4 ;
const int PORTUGAL = 5 ;
const int ITALY = 6 ;
const int MALTA = 7 ;
const int FRANCE = 8 ;
const int BELGIUM = 9 ;
const int LUXEMBOURG = 10 ;
const int NETHERLANDS = 11 ;
const int GERMANY = 12 ;
const int EAST_FRISIA = 13 ;
const int AUSTRIA = 14 ;
const int SWISS = 15 ;
const int ICELAND = 16 ;
const int DENMARK = 17 ;
const int NORWAY = 18 ;
const int SWEDEN = 19 ;
const int FINLAND = 20 ;
const int ESTONIA = 21 ;
const int LATVIA = 22 ;
const int LITHUANIA = 23 ;
const int POLAND = 24 ;
const int CZECH_REP = 25 ;
const int SLOVAKIA = 26 ;
const int HUNGARY = 27 ;
const int ROMANIA = 28 ;
const int BULGARIA = 29 ;
const int BOSNIA = 30 ;
const int CROATIA = 31 ;
const int KOSOVO = 32 ;
const int MACEDONIA = 33 ;
const int MONTENEGRO = 34 ;
const int SERBIA = 35 ;
const int SLOVENIA = 36 ;
const int ALBANIA = 37 ;
const int GREECE = 38 ;
const int RUSSIA = 39 ;
const int BELARUS = 40 ;
const int MOLDOVA = 41 ;
const int UKRAINE = 42 ;
const int ARMENIA = 43 ;
const int AZERBAIJAN = 44 ;
const int GEORGIA = 45 ;
const int KAZAKH_UZBEK = 46 ;
const int TURKEY = 47 ;
const int ARABIA = 48 ;
const int ISRAEL = 49 ;
const int CHINA = 50 ;
const int INDIA = 51 ;
const int JAPAN = 52 ;
const int KOREA = 53 ;
/* Methoden */
public connect ( string $dsn ) : bool
public __construct ( string $dsn = ? )
public country ( int $country ) : array|false
public get ( string $name , int $country = ? ) : int
public isNick ( string $name0 , string $name1 , int $country = ? ) : array
public similarNames ( string $name , int $country = ? ) : array
}

Vordefinierte Konstanten

Gender\Gender::IS_FEMALE

Gender\Gender::IS_MOSTLY_FEMALE

Gender\Gender::IS_MALE

Gender\Gender::IS_MOSTLY_MALE

Gender\Gender::IS_UNISEX_NAME

Gender\Gender::IS_A_COUPLE

Gender\Gender::NAME_NOT_FOUND

Gender\Gender::ERROR_IN_NAME

Gender\Gender::ANY_COUNTRY

Gender\Gender::BRITAIN

Gender\Gender::IRELAND

Gender\Gender::USA

Gender\Gender::SPAIN

Gender\Gender::PORTUGAL

Gender\Gender::ITALY

Gender\Gender::MALTA

Gender\Gender::FRANCE

Gender\Gender::BELGIUM

Gender\Gender::LUXEMBOURG

Gender\Gender::NETHERLANDS

Gender\Gender::GERMANY

Gender\Gender::EAST_FRISIA

Gender\Gender::AUSTRIA

Gender\Gender::SWISS

Gender\Gender::ICELAND

Gender\Gender::DENMARK

Gender\Gender::NORWAY

Gender\Gender::SWEDEN

Gender\Gender::FINLAND

Gender\Gender::ESTONIA

Gender\Gender::LATVIA

Gender\Gender::LITHUANIA

Gender\Gender::POLAND

Gender\Gender::CZECH_REP

Gender\Gender::SLOVAKIA

Gender\Gender::HUNGARY

Gender\Gender::ROMANIA

Gender\Gender::BULGARIA

Gender\Gender::BOSNIA

Gender\Gender::CROATIA

Gender\Gender::KOSOVO

Gender\Gender::MACEDONIA

Gender\Gender::MONTENEGRO

Gender\Gender::SERBIA

Gender\Gender::SLOVENIA

Gender\Gender::ALBANIA

Gender\Gender::GREECE

Gender\Gender::RUSSIA

Gender\Gender::BELARUS

Gender\Gender::MOLDOVA

Gender\Gender::UKRAINE

Gender\Gender::ARMENIA

Gender\Gender::AZERBAIJAN

Gender\Gender::GEORGIA

Gender\Gender::KAZAKH_UZBEK

Gender\Gender::TURKEY

Gender\Gender::ARABIA

Gender\Gender::ISRAEL

Gender\Gender::CHINA

Gender\Gender::INDIA

Gender\Gender::JAPAN

Gender\Gender::KOREA

Inhaltsverzeichnis

  • Gender\Gender::connect — Connect to an external name dictionary
  • Gender\Gender::__construct — Construct the Gender object
  • Gender\Gender::country — Get textual country representation
  • Gender\Gender::get — Get gender of a name
  • Gender\Gender::isNick — Check if the name0 is an alias of the name1
  • Gender\Gender::similarNames — Get similar names


Connect to an external name dictionary

  • « Gender\Gender
  • Gender\Gender::__construct »
  • PHP Manual
  • Gender\Gender
  • Connect to an external name dictionary

Gender\Gender::connect

(PECL gender >= 0.6.0)

Gender\Gender::connect — Connect to an external name dictionary

Beschreibung

public Gender\Gender::connect ( string $dsn ) : bool

Connect to an external name dictionary. Currently only streams are supported.

Parameter-Liste

dsn

DSN to open.

Rückgabewerte

Boolean as success of failure.


Construct the Gender object

  • « Gender\Gender::connect
  • Gender\Gender::country »
  • PHP Manual
  • Gender\Gender
  • Construct the Gender object

Gender\Gender::__construct

(PECL gender >= 0.6.0)

Gender\Gender::__construct — Construct the Gender object

Beschreibung

public Gender\Gender::__construct ( string $dsn = ? )

Create a Gender object optionally connecting to an external name dictionary. When no external database was given, compiled in data will be used.

Parameter-Liste

dsn

DSN to open.

Rückgabewerte


Get textual country representation

  • « Gender\Gender::__construct
  • Gender\Gender::get »
  • PHP Manual
  • Gender\Gender
  • Get textual country representation

Gender\Gender::country

(PECL gender >= 0.8.0)

Gender\Gender::country — Get textual country representation

Beschreibung

public Gender\Gender::country ( int $country ) : array|false

Returns the textual representation of a country from a Gender class constant.

Parameter-Liste

country

A country ID specified by a Gender\Gender class constant.

Rückgabewerte

Returns an array with the short and full names of the country on success Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Using Gender\Gender::country()

$gender = new Gender\Gender;
var_dump($gender->country(Gender\Gender::BRITAIN));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  'country_short' =>
  string(2) "UK"
  'country' =>
  string(13) "Great Britain"
}


Get gender of a name

  • « Gender\Gender::country
  • Gender\Gender::isNick »
  • PHP Manual
  • Gender\Gender
  • Get gender of a name

Gender\Gender::get

(PECL gender >= 0.6.0)

Gender\Gender::get — Get gender of a name

Beschreibung

public Gender\Gender::get ( string $name , int $country = ? ) : int

Get the gender of the name in a particular country.

Parameter-Liste

name

Name to check.

country

Country id identified by Gender class constant.

Rückgabewerte

Returns gender of the name.


Check if the name0 is an alias of the name1

  • « Gender\Gender::get
  • Gender\Gender::similarNames »
  • PHP Manual
  • Gender\Gender
  • Check if the name0 is an alias of the name1

Gender\Gender::isNick

(PECL gender >= 0.9.0)

Gender\Gender::isNick — Check if the name0 is an alias of the name1

Beschreibung

public Gender\Gender::isNick ( string $name0 , string $name1 , int $country = ? ) : array

Check whether the name0 is a nick of the name1.

Parameter-Liste

name0

Name to check.

name1

Name to check.

country

Country id identified by Gender class constant. If ommited ANY_COUNTRY is used.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Get similar names

  • « Gender\Gender::isNick
  • Gettext »
  • PHP Manual
  • Gender\Gender
  • Get similar names

Gender\Gender::similarNames

(PECL gender >= 0.9.0)

Gender\Gender::similarNames — Get similar names

Beschreibung

public Gender\Gender::similarNames ( string $name , int $country = ? ) : array

Get similar names for the given name and country.

Parameter-Liste

name

Name to check.

country

Country id identified by Gender class constant. If ommited ANY_COUNTRY is used.

Rückgabewerte

Returns an array with the similar names found.


Gettext

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Gettext-Funktionen
    • bind_textdomain_codeset — Gibt das Encoding an, in dem Texte aus der Übersetzungstabelle der DOMAIN zurückgegeben werden
    • bindtextdomain — Setzt den Pfad für eine Domain
    • dcgettext — Überschreibt die gesetzte Domain für eine einzelne Abfrage
    • dcngettext — Pluralversion von dcgettext
    • dgettext — Überschreibt die aktuelle Domain
    • dngettext — Pluralversion von dgettext
    • gettext — Sucht einen Text in der aktuellen Domain
    • ngettext — Pluralversion von gettext
    • textdomain — Setzt die Standarddomain


Einführung

Die gettext-Funktionen implementieren ein NLS (Native Language Support) API, das dazu verwendet werden kann, Ihre PHP-Applikationen zu internationalisieren. Bitte lesen Sie die gettext-Dokumentation für Ihr System, um eine ausführliche Erläuterung dieser Funktionen zu erhalten, oder werfen Sie einen Blick in die Dokumentation auf » http://www.gnu.org/software/gettext/manual/gettext.html.


Anforderungen

Um diese Funktionen zu verwenden, müssen Sie das GNU gettext Paket von » http://www.gnu.org/software/gettext/gettext.html herunterladen und installieren.


Installation

Um GNU gettext-Unterstützung in Ihrem PHP einzubinden, müssen Sie die Option --with-gettext[=DIR] Ihrer Build-Konfiguration hinzufügen. Dabei steht DIR für das gettext-Installationsverzeichnis, standardmäßig gesetzt auf /usr/local.


  • « Ressource-Typen
  • Gettext-Funktionen »
  • PHP Manual
  • Gettext
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Gettext-Funktionen

Inhaltsverzeichnis

  • bind_textdomain_codeset — Gibt das Encoding an, in dem Texte aus der Übersetzungstabelle der DOMAIN zurückgegeben werden
  • bindtextdomain — Setzt den Pfad für eine Domain
  • dcgettext — Überschreibt die gesetzte Domain für eine einzelne Abfrage
  • dcngettext — Pluralversion von dcgettext
  • dgettext — Überschreibt die aktuelle Domain
  • dngettext — Pluralversion von dgettext
  • gettext — Sucht einen Text in der aktuellen Domain
  • ngettext — Pluralversion von gettext
  • textdomain — Setzt die Standarddomain


Gibt das Encoding an, in dem Texte aus der Übersetzungstabelle der DOMAIN zurückgegeben werden

  • « Gettext-Funktionen
  • bindtextdomain »
  • PHP Manual
  • Gettext-Funktionen
  • Gibt das Encoding an, in dem Texte aus der Übersetzungstabelle der DOMAIN zurückgegeben werden

bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

bind_textdomain_codeset — Gibt das Encoding an, in dem Texte aus der Übersetzungstabelle der DOMAIN zurückgegeben werden

Beschreibung

bind_textdomain_codeset ( string $domain , string $codeset ) : string

Mit bind_textdomain_codeset() können Sie bestimmen, in welchem Encoding die Texte von domain von gettext() oder verwandten Funktionen zurückgegeben werden.

Parameter-Liste

domain

Die Domain

codeset

Das Codeset

Rückgabewerte

Bei Erfolg ein string.


Setzt den Pfad für eine Domain

  • « bind_textdomain_codeset
  • dcgettext »
  • PHP Manual
  • Gettext-Funktionen
  • Setzt den Pfad für eine Domain

bindtextdomain

(PHP 4, PHP 5, PHP 7, PHP 8)

bindtextdomain — Setzt den Pfad für eine Domain

Beschreibung

bindtextdomain ( string $domain , string $directory ) : string

Die Funktion bindtextdomain() setzt den Pfad für eine Domain. Sie gibt den vollständigen Pfad der Domain zurück, der gerade gesetzt wurde.

Parameter-Liste

domain

Die Domain

directory

Der Verzeichnispfad

Rückgabewerte

Der vollständige Pfadname für die aktuell gesetzte domain.

Beispiele

Beispiel #1 bindtextdomain()-Beispiel

<?php

$domain = 'MeineApplikation';
echo bindtextdomain($domain, '/usr/share/MeineApplikation/locale');

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

/usr/share/MeineApplikation/locale


Überschreibt die gesetzte Domain für eine einzelne Abfrage

  • « bindtextdomain
  • dcngettext »
  • PHP Manual
  • Gettext-Funktionen
  • Überschreibt die gesetzte Domain für eine einzelne Abfrage

dcgettext

(PHP 4, PHP 5, PHP 7, PHP 8)

dcgettext — Überschreibt die gesetzte Domain für eine einzelne Abfrage

Beschreibung

dcgettext ( string $domain , string $message , int $category ) : string

Die Funktion erlaubt es Ihnen, die aktuell gesetzte Domain für eine einzelne Abfrage zu überschreiben.

Parameter-Liste

domain

Die Domain

message

Die Mitteilung

category

Die Kategorie

Rückgabewerte

Bei Erfolg ein string.

Siehe auch

  • gettext() - Sucht einen Text in der aktuellen Domain


Pluralversion von dcgettext

  • « dcgettext
  • dgettext »
  • PHP Manual
  • Gettext-Funktionen
  • Pluralversion von dcgettext

dcngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

dcngettext — Pluralversion von dcgettext

Beschreibung

dcngettext ( string $domain , string $msgid1 , string $msgid2 , int $n , int $category ) : string

Die Funktion erlaubt es Ihnen, die aktuell gesetzte Domain für eine einzelne Plural-Abfrage zu überschreiben.

Parameter-Liste

domain

Die Domain

msgid1

msgid2

n

category

Rückgabewerte

Bei Erfolg ein string.

Siehe auch

  • ngettext() - Pluralversion von gettext


Überschreibt die aktuelle Domain

  • « dcngettext
  • dngettext »
  • PHP Manual
  • Gettext-Funktionen
  • Überschreibt die aktuelle Domain

dgettext

(PHP 4, PHP 5, PHP 7, PHP 8)

dgettext — Überschreibt die aktuelle Domain

Beschreibung

dgettext ( string $domain , string $message ) : string

Die Funktion dgettext() erlaubt Ihnen, die aktuelle domain für eine einzelne Textsuche zu überschreiben.

Parameter-Liste

domain

Die Domain

message

Die Mitteilung

Rückgabewerte

Bei Erfolg ein string.

Siehe auch

  • gettext() - Sucht einen Text in der aktuellen Domain


Pluralversion von dgettext

  • « dgettext
  • gettext »
  • PHP Manual
  • Gettext-Funktionen
  • Pluralversion von dgettext

dngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

dngettext — Pluralversion von dgettext

Beschreibung

dngettext ( string $domain , string $msgid1 , string $msgid2 , int $n ) : string

Die Funktion dngettext() erlaubt Ihnen, die aktuelle domain für eine einzelne Plural-Textsuche zu überschreiben.

Parameter-Liste

domain

Die Domain

msgid1

msgid2

n

Rückgabewerte

Bei Erfolg ein string.

Siehe auch

  • ngettext() - Pluralversion von gettext


Sucht einen Text in der aktuellen Domain

  • « dngettext
  • ngettext »
  • PHP Manual
  • Gettext-Funktionen
  • Sucht einen Text in der aktuellen Domain

gettext

(PHP 4, PHP 5, PHP 7, PHP 8)

gettext — Sucht einen Text in der aktuellen Domain

Beschreibung

gettext ( string $message ) : string

Sucht nach einer Mitteilung in der aktuellen Domain.

Parameter-Liste

message

Die zu übersetzende Mitteilung.

Rückgabewerte

Diese Funktion gibt einen übersetzten string zurück, falls einer in der Übersetzungstabelle gefunden wird, andernfalls den übergebenen Originalstring.

Beispiele

Beispiel #1 gettext()-Check

<?php
// Sprache auf Deutsch setzen
putenv('LC_ALL=de_DE');
setlocale(LC_ALL, 'de_DE');

// Angeben des Pfads der Übersetzungstabellen
bindtextdomain("meinePHPApp", "./locale");

// Domain auswählen
textdomain("meinePHPApp");

// Die Übersetzung wird nun in ./locale/de_DE/LC_MESSAGES/meinePHPApp.mo gesucht

// Ausgeben des Test-Textes
echo gettext("Willkommen in meiner PHP-Applikation");

// Oder verwenden Sie den Alias _() für gettext()
echo _("Einen schönen Tag noch");
?>

Anmerkungen

Hinweis:

Sie können einen Unterstrich '_' als Alias für diese Funktion verwenden.

Hinweis:

Das reine Setzen einer Sprachangabe reicht bei einigen Systemen nicht aus. Daher sollte putenv() verwendet werden, um die aktuelle lokale Umgebung zu definieren.

Siehe auch

  • setlocale() - Legt regionale (locale) Einstellungen fest


Pluralversion von gettext

  • « gettext
  • textdomain »
  • PHP Manual
  • Gettext-Funktionen
  • Pluralversion von gettext

ngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ngettext — Pluralversion von gettext

Beschreibung

ngettext ( string $msgid1 , string $msgid2 , int $n ) : string

Die Pluralversion von gettext(). Einige Sprachen haben abhängig von der Anzahl mehr als eine Form für den Plural.

Parameter-Liste

msgid1

Die Message-ID des Singular.

msgid2

Die Message-ID des Plural.

n

Die Anzahl (z.B. die Warenanzahl), die die Übersetzung für den entsprechenden grammatischen Numerus bestimmt.

Rückgabewerte

Gibt die korrekte Pluralform zurück, die mittels msgid1 und msgid2 für die Anzahl n bestimmt wurde.

Beispiele

Beispiel #1 ngettext()-Beispiel

<?php

setlocale(LC_ALL, 'cs_CZ');
printf(ngettext("%d window", "%d windows", 1), 1); // 1 okno
printf(ngettext("%d window", "%d windows", 2), 2); // 2 okna
printf(ngettext("%d window", "%d windows", 5), 5); // 5 oken

?>


Setzt die Standarddomain

  • « ngettext
  • iconv »
  • PHP Manual
  • Gettext-Funktionen
  • Setzt die Standarddomain

textdomain

(PHP 4, PHP 5, PHP 7, PHP 8)

textdomain — Setzt die Standarddomain

Beschreibung

textdomain ( string $text_domain = null ) : string

Diese Funktion setzt die Domain, in der bei einem gettext()-Aufruf gesucht werden soll; gewöhnlich wird die Domain nach einer Applikation benannt.

Parameter-Liste

text_domain

Die neue Text-Domain oder null, wenn die aktuellen Werte ohne Veränderung übernommen werden sollen.

Rückgabewerte

Im Erfolgsfall gibt die Funktion die aktuelle Text-Domain zurück, nachdem sie möglicherweise verändert wurde.


iconv

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • iconv Funktionen
    • iconv_get_encoding — Aktuelle Einstellung für Zeichensatz-Konvertierung auslesen
    • iconv_mime_decode_headers — Decodes multiple MIME header fields at once
    • iconv_mime_decode — Decodes a MIME header field
    • iconv_mime_encode — Composes a MIME header field
    • iconv_set_encoding — Einstellungen für die Zeichensatzkonvertierung setzen
    • iconv_strlen — Returns the character count of string
    • iconv_strpos — Finds position of first occurrence of a needle within a haystack
    • iconv_strrpos — Finds the last occurrence of a needle within a haystack
    • iconv_substr — Cut out part of a string
    • iconv — Konvertiert Zeichenketten in einen anderen Zeichensatz
    • ob_iconv_handler — Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer handler)


Einführung

This module contains an interface to iconv character set conversion facility. With this module, you can turn a string represented by a local character set into the one represented by another character set, which may be the Unicode character set. Supported character sets depend on the iconv implementation of your system. Note that the iconv function on some systems may not work as you expect. In such case, it'd be a good idea to install the » GNU libiconv library. It will most likely end up with more consistent results.

This extension comes with various utility functions that help you to write multilingual scripts. Let's have a look at the following sections to explore the new features.


Anforderungen

You will need nothing if the system you are using is one of the recent POSIX-compliant systems because standard C libraries that are supplied in them must provide iconv facility. Otherwise, you have to get the » libiconv library installed in your system.


Installation

This extension is enabled by default, although it may be disabled by compiling with --without-iconv.

The optional --with-iconv[=DIR] directive is used to specify the location of iconv on the system that PHP is being compiled on, otherwise only the default locations are scanned.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Iconv Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
iconv.input_encoding | "" | PHP_INI_ALL | Deprecated in PHP 5.6.0.
iconv.output_encoding | "" | PHP_INI_ALL | Deprecated in PHP 5.6.0.
iconv.internal_encoding | "" | PHP_INI_ALL | Deprecated in PHP 5.6.0.

Hier eine kurze Erklärung der Konfigurationsoptionen:

Warnung

Some systems (like IBM AIX) use "ISO8859-1" instead of "ISO-8859-1" so this value has to be used in configuration options and function parameters.

iconv.input_encoding string
Warnung

Diese Funktion ist seit PHP 5.6.0 DEPRECATED (veraltet). Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

PHP 5.6 and later users should leave this empty and set input_encoding instead.

iconv.output_encoding string
Warnung

Diese Funktion ist seit PHP 5.6.0 DEPRECATED (veraltet). Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

PHP 5.6 and later users should leave this empty and set output_encoding instead.

iconv.internal_encoding string
Warnung

Diese Funktion ist seit PHP 5.6.0 DEPRECATED (veraltet). Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

PHP 5.6 and later users should leave this empty and set default_charset instead.


Vordefinierte Konstanten

It is possible to identify at runtime which iconv implementation is adopted by this extension.

iconv implementation constants
Name | Type | Description
ICONV_IMPL | string | The implementation name
ICONV_VERSION | string | The implementation version

Hinweis:

Writing implementation-dependent scripts with these constants is strongly discouraged.

The following constants are also available:

Other iconv constants
Name | Type | Description
ICONV_MIME_DECODE_STRICT | int | A bitmask used for iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR | int | A bitmask used for iconv_mime_decode()


iconv Funktionen

Siehe auch

See also GNU Recode functions.

Inhaltsverzeichnis

  • iconv_get_encoding — Aktuelle Einstellung für Zeichensatz-Konvertierung auslesen
  • iconv_mime_decode_headers — Decodes multiple MIME header fields at once
  • iconv_mime_decode — Decodes a MIME header field
  • iconv_mime_encode — Composes a MIME header field
  • iconv_set_encoding — Einstellungen für die Zeichensatzkonvertierung setzen
  • iconv_strlen — Returns the character count of string
  • iconv_strpos — Finds position of first occurrence of a needle within a haystack
  • iconv_strrpos — Finds the last occurrence of a needle within a haystack
  • iconv_substr — Cut out part of a string
  • iconv — Konvertiert Zeichenketten in einen anderen Zeichensatz
  • ob_iconv_handler — Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer handler)


Aktuelle Einstellung für Zeichensatz-Konvertierung auslesen

  • « iconv Funktionen
  • iconv_mime_decode_headers »
  • PHP Manual
  • iconv Funktionen
  • Aktuelle Einstellung für Zeichensatz-Konvertierung auslesen

iconv_get_encoding

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

iconv_get_encoding — Aktuelle Einstellung für Zeichensatz-Konvertierung auslesen

Beschreibung

iconv_get_encoding ( string $type = "all" ) : mixed

Die Funktion gibt die internen Konfigurations-Variablen zurück

Parameter-Liste

type

Der Wert des optionalen Parameters type kann sein:

  • all
  • input_encoding
  • output_encoding
  • internal_encoding

Rückgabewerte

Returns the current value of the internal configuration variable if successful Gibt den aktuellen Wert der Konfigurations-Variable zurück. Im Fehlerfall wird false zurückgegeben.

Wenn type weggelassen oder auf "all" gesetzt ist, gibt iconv_get_encoding() ein Array mit allen Variablen zurück.

Beispiele

Beispiel #1 Beispiel für iconv_get_encoding()

<pre>
<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
var_dump(iconv_get_encoding('all'));
?>
</pre>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [input_encoding] => ISO-8859-1
    [output_encoding] => ISO-8859-1
    [internal_encoding] => UTF-8
)

Siehe auch

  • iconv_set_encoding() - Einstellungen für die Zeichensatzkonvertierung setzen
  • ob_iconv_handler() - Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer handler)


Decodes multiple MIME header fields at once

  • « iconv_get_encoding
  • iconv_mime_decode »
  • PHP Manual
  • iconv Funktionen
  • Decodes multiple MIME header fields at once

iconv_mime_decode_headers

(PHP 5, PHP 7, PHP 8)

iconv_mime_decode_headers — Decodes multiple MIME header fields at once

Beschreibung

iconv_mime_decode_headers ( string $headers , int $mode = 0 , string|null $encoding = null ) : array|false

Decodes multiple MIME header fields at once.

Parameter-Liste

headers

The encoded headers, as a string.

mode

mode determines the behaviour in the event iconv_mime_decode_headers() encounters a malformed MIME header field. You can specify any combination of the following bitmasks.

Bitmasks acceptable to iconv_mime_decode_headers()
Value | Constant | Description
1 | ICONV_MIME_DECODE_STRICT | If set, the given header is decoded in full conformance with the standards defined in » RFC2047. This option is disabled by default because there are a lot of broken mail user agents that don't follow the specification and don't produce correct MIME headers.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | If set, iconv_mime_decode_headers() attempts to ignore any grammatical errors and continue to process a given header.

encoding

The optional encoding parameter specifies the character set to represent the result by. If omitted or null, iconv.internal_encoding will be used.

Rückgabewerte

Returns an associative array that holds a whole set of MIME header fields specified by headers on success, or false if an error occurs during the decoding.

Each key of the return value represents an individual field name and the corresponding element represents a field value. If more than one field of the same name are present, iconv_mime_decode_headers() automatically incorporates them into a numerically indexed array in the order of occurrence.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Beispiele

Beispiel #1 iconv_mime_decode_headers() example

<?php
$headers_string = <<<EOF
Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=
To: example@example.com
Date: Thu, 1 Jan 1970 00:00:00 +0000
Message-Id: <example@example.com>
Received: from localhost (localhost [127.0.0.1]) by localhost
    with SMTP id example for <example@example.com>;
    Thu, 1 Jan 1970 00:00:00 +0000 (UTC)
    (envelope-from example-return-0000-example=example.com@example.com)
Received: (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000

EOF;

$headers =  iconv_mime_decode_headers($headers_string, 0, "ISO-8859-1");
print_r($headers);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [Subject] => Prüfung Prüfung
    [To] => example@example.com
    [Date] => Thu, 1 Jan 1970 00:00:00 +0000
    [Message-Id] => <example@example.com>
    [Received] => Array
        (
            [0] => from localhost (localhost [127.0.0.1]) by localhost with SMTP id example for <example@example.com>; Thu, 1 Jan 1970 00:00:00 +0000 (UTC) (envelope-from example-return-0000-example=example.com@example.com)
            [1] => (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000
        )

)

Siehe auch

  • iconv_mime_decode() - Decodes a MIME header field
  • mb_decode_mimeheader() - Decode string in MIME header field
  • imap_mime_header_decode() - Dekodiert MIME-kodierte Headerzeilen
  • imap_base64() - Dekodiert Base-64 kodierten Text
  • imap_qprint() - Konvertiert einen quoted-printable kodierten String in einen 8 Bit String


Decodes a MIME header field

  • « iconv_mime_decode_headers
  • iconv_mime_encode »
  • PHP Manual
  • iconv Funktionen
  • Decodes a MIME header field

iconv_mime_decode

(PHP 5, PHP 7, PHP 8)

iconv_mime_decode — Decodes a MIME header field

Beschreibung

iconv_mime_decode ( string $string , int $mode = 0 , string|null $encoding = null ) : string|false

Decodes a MIME header field.

Parameter-Liste

string

The encoded header, as a string.

mode

mode determines the behaviour in the event iconv_mime_decode() encounters a malformed MIME header field. You can specify any combination of the following bitmasks.

Bitmasks acceptable to iconv_mime_decode()
Value | Constant | Description
1 | ICONV_MIME_DECODE_STRICT | If set, the given header is decoded in full conformance with the standards defined in » RFC2047. This option is disabled by default because there are a lot of broken mail user agents that don't follow the specification and don't produce correct MIME headers.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | If set, iconv_mime_decode_headers() attempts to ignore any grammatical errors and continue to process a given header.

encoding

The optional encoding parameter specifies the character set to represent the result by. If omitted or null, iconv.internal_encoding will be used.

Rückgabewerte

Returns a decoded MIME field on success, or false if an error occurs during the decoding.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Beispiele

Beispiel #1 iconv_mime_decode() example

<?php
// This yields "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
                       0, "ISO-8859-1");
?>

Siehe auch

  • iconv_mime_decode_headers() - Decodes multiple MIME header fields at once
  • mb_decode_mimeheader() - Decode string in MIME header field
  • imap_mime_header_decode() - Dekodiert MIME-kodierte Headerzeilen
  • imap_base64() - Dekodiert Base-64 kodierten Text
  • imap_qprint() - Konvertiert einen quoted-printable kodierten String in einen 8 Bit String


Composes a MIME header field

  • « iconv_mime_decode
  • iconv_set_encoding »
  • PHP Manual
  • iconv Funktionen
  • Composes a MIME header field

iconv_mime_encode

(PHP 5, PHP 7, PHP 8)

iconv_mime_encode — Composes a MIME header field

Beschreibung

iconv_mime_encode ( string $field_name , string $field_value , array $options = [] ) : string|false

Composes and returns a string that represents a valid MIME header field, which looks like the following:

Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
In the above example, "Subject" is the field name and the portion that begins with "=?ISO-8859-1?..." is the field value.

Parameter-Liste

field_name

The field name.

field_value

The field value.

options

You can control the behaviour of iconv_mime_encode() by specifying an associative array that contains configuration items to the optional third parameter options. The items supported by iconv_mime_encode() are listed below. Note that item names are treated case-sensitive.

Configuration items supported by iconv_mime_encode()
Item | Type | Description | Default value | Example
scheme | string | Specifies the method to encode a field value by. The value of this item may be either "B" or "Q", where "B" stands for base64 encoding scheme and "Q" stands for quoted-printable encoding scheme. | B | B
input-charset | string | Specifies the character set in which the first parameter field_name and the second parameter field_value are presented. If not given, iconv_mime_encode() assumes those parameters are presented to it in the iconv.internal_encoding ini setting. | iconv.internal_encoding | ISO-8859-1
output-charset | string | Specifies the character set to use to compose the MIME header. | iconv.internal_encoding | UTF-8
line-length | int | Specifies the maximum length of the header lines. The resulting header is "folded" to a set of multiple lines in case the resulting header field would be longer than the value of this parameter, according to » RFC2822 - Internet Message Format. If not given, the length will be limited to 76 characters. | 76 | 996
line-break-chars | string | Specifies the sequence of characters to append to each line as an end-of-line sign when "folding" is performed on a long header field. If not given, this defaults to "\r\n" (CR LF). Note that this parameter is always treated as an ASCII string regardless of the value of input-charset. | \r\n | \n

Rückgabewerte

Returns an encoded MIME field on success, or false if an error occurs during the encoding.

Beispiele

Beispiel #1 iconv_mime_encode() example

<?php
$preferences = array(
    "input-charset" => "ISO-8859-1",
    "output-charset" => "UTF-8",
    "line-length" => 76,
    "line-break-chars" => "\n"
);
$preferences["scheme"] = "Q";
// This yields "Subject: =?UTF-8?Q?Pr=C3=BCfung=20Pr=C3=BCfung?="
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);

$preferences["scheme"] = "B";
// This yields "Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?="
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);
?>

Siehe auch

  • imap_binary() - Konvertiert einen 8 Bit String in einen Base64 codierten String
  • mb_encode_mimeheader() - Encode string for MIME header
  • imap_8bit() - Konvertiert einen 8bit String in einen quoted-printable String
  • quoted_printable_encode() - Wandelt einen 8Bit-String in sein 'Quoted Printable' Gegenstück


Einstellungen für die Zeichensatzkonvertierung setzen

  • « iconv_mime_encode
  • iconv_strlen »
  • PHP Manual
  • iconv Funktionen
  • Einstellungen für die Zeichensatzkonvertierung setzen

iconv_set_encoding

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

iconv_set_encoding — Einstellungen für die Zeichensatzkonvertierung setzen

Beschreibung

iconv_set_encoding ( string $type , string $charset ) : bool

Die Funktion ändert den Wert von type in charset.

Parameter-Liste

type

Der Wert von type kann einer der folgenden sein:

  • input_encoding
  • output_encoding
  • internal_encoding

charset

Der Zeichensatz.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 iconv_set_encoding() Beispiel:

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
?>

Siehe auch

  • iconv_get_encoding() - Aktuelle Einstellung für Zeichensatz-Konvertierung auslesen
  • ob_iconv_handler() - Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer handler)


Returns the character count of string

  • « iconv_set_encoding
  • iconv_strpos »
  • PHP Manual
  • iconv Funktionen
  • Returns the character count of string

iconv_strlen

(PHP 5, PHP 7, PHP 8)

iconv_strlen — Returns the character count of string

Beschreibung

iconv_strlen ( string $string , string|null $encoding = null ) : int|false

In contrast to strlen(), iconv_strlen() counts the occurrences of characters in the given byte sequence string on the basis of the specified character set, the result of which is not necessarily identical to the length of the string in byte.

Parameter-Liste

string

The string.

encoding

If encoding parameter is omitted or null, string is assumed to be encoded in iconv.internal_encoding.

Rückgabewerte

Returns the character count of string, as an integer, or false if an error occurs during the encoding.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • grapheme_strlen() - Get string length in grapheme units
  • mb_strlen() - Get string length
  • strlen() - Ermitteln der String-Länge


Finds position of first occurrence of a needle within a haystack

  • « iconv_strlen
  • iconv_strrpos »
  • PHP Manual
  • iconv Funktionen
  • Finds position of first occurrence of a needle within a haystack

iconv_strpos

(PHP 5, PHP 7, PHP 8)

iconv_strpos — Finds position of first occurrence of a needle within a haystack

Beschreibung

iconv_strpos ( string $haystack , string $needle , int $offset = 0 , string|null $encoding = null ) : int|false

Finds position of first occurrence of a needle within a haystack.

In contrast to strpos(), the return value of iconv_strpos() is the number of characters that appear before the needle, rather than the offset in bytes to the position where the needle has been found. The characters are counted on the basis of the specified character set encoding.

Parameter-Liste

haystack

The entire string.

needle

The searched substring.

offset

The optional offset parameter specifies the position from which the search should be performed. If the offset is negative, it is counted from the end of the string.

encoding

If encoding parameter is omitted or null, string are assumed to be encoded in iconv.internal_encoding.

If haystack or needle is not a string, it is converted to a string and applied as the ordinal value of a character.

Rückgabewerte

Returns the numeric position of the first occurrence of needle in haystack.

If needle is not found, iconv_strpos() will return false.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.
7.1.0 | Support for negative offsets has been added.

Siehe auch

  • strpos() - Sucht die Position des ersten Vorkommens des Suchstrings in einem String
  • iconv_strrpos() - Finds the last occurrence of a needle within a haystack
  • mb_strpos() - Find position of first occurrence of string in a string


Finds the last occurrence of a needle within a haystack

  • « iconv_strpos
  • iconv_substr »
  • PHP Manual
  • iconv Funktionen
  • Finds the last occurrence of a needle within a haystack

iconv_strrpos

(PHP 5, PHP 7, PHP 8)

iconv_strrpos — Finds the last occurrence of a needle within a haystack

Beschreibung

iconv_strrpos ( string $haystack , string $needle , string|null $encoding = null ) : int|false

Finds the last occurrence of a needle within a haystack.

In contrast to strrpos(), the return value of iconv_strrpos() is the number of characters that appear before the needle, rather than the offset in bytes to the position where the needle has been found. The characters are counted on the basis of the specified character set encoding.

Parameter-Liste

haystack

The entire string.

needle

The searched substring.

encoding

If encoding parameter is omitted or null, string are assumed to be encoded in iconv.internal_encoding.

If haystack or needle is not a string, it is converted to a string and applied as the ordinal value of a character.

Rückgabewerte

Returns the numeric position of the last occurrence of needle in haystack.

If needle is not found, iconv_strrpos() will return false.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • strrpos() - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
  • iconv_strpos() - Finds position of first occurrence of a needle within a haystack
  • mb_strrpos() - Find position of last occurrence of a string in a string


Cut out part of a string

  • « iconv_strrpos
  • iconv »
  • PHP Manual
  • iconv Funktionen
  • Cut out part of a string

iconv_substr

(PHP 5, PHP 7, PHP 8)

iconv_substr — Cut out part of a string

Beschreibung

iconv_substr ( string $string , int $offset , int|null $length = null , string|null $encoding = null ) : string|false

Cuts a portion of string specified by the offset and length parameters.

Parameter-Liste

string

The original string.

offset

If offset is non-negative, iconv_substr() cuts the portion out of string beginning at offset'th character, counting from zero.

If offset is negative, iconv_substr() cuts out the portion beginning at the position, offset characters away from the end of string.

length

If length is given and is positive, the return value will contain at most length characters of the portion that begins at offset (depending on the length of string).

If negative length is passed, iconv_substr() cuts the portion out of string from the offset'th character up to the character that is length characters away from the end of the string. In case offset is also negative, the start position is calculated beforehand according to the rule explained above.

encoding

If encoding parameter is omitted or null, string are assumed to be encoded in iconv.internal_encoding.

Note that offset and length parameters are always deemed to represent offsets that are calculated on the basis of the character set determined by encoding, whilst the counterpart substr() always takes these for byte offsets.

Rückgabewerte

Returns the portion of string specified by the offset and length parameters.

If string is shorter than offset characters long, false will be returned. If string is exactly offset characters long, an empty string will be returned.

Changelog

Version | Beschreibung
8.0.0 | length and encoding are nullable now.
7.0.11 | If string is equal to offset characters long, an empty string will be returned. Prior to this version, false was returned in this case.

Siehe auch

  • substr() - Gibt einen Teil eines Strings zurück
  • mb_substr() - Get part of string
  • mb_strcut() - Get part of string


Konvertiert Zeichenketten in einen anderen Zeichensatz

  • « iconv_substr
  • ob_iconv_handler »
  • PHP Manual
  • iconv Funktionen
  • Konvertiert Zeichenketten in einen anderen Zeichensatz

iconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

iconv — Konvertiert Zeichenketten in einen anderen Zeichensatz

Beschreibung

iconv ( string $in_charset , string $out_charset , string $str ) : string

Die Funktion konvertiert die in Zeichensatz in_charset kodierte Zeichenkette str in eine Zeichenkette mit Kodierung out_charset.

Parameter-Liste

in_charset

Der Eingabe-Zeichensatz.

out_charset

Der Ausgabe-Zeichensatz.

Wenn Sie die Zeichenkette //TRANSLIT an out_charset anhängen, wird die Transliteration aktiviert. Das bedeutet, dass ein Zeichen, das im Zielzeichensatz nicht dargestellt werden kann mit einem oder mehreren ähnlich aussehenden Zeichen annähernd dargestellt werden kann. Wenn Sie die Zeichenkette //IGNORE anhängen, werden diese nicht darstellbaren Zeichen ohne Warnung verworfen. Ansonsten wird eine E_NOTICE erzeugt und die Funktion gibt false zurück.

Achtung

Ob und wie //TRANSLIT genau funktioniert hängt von der iconv() Implementierung des Systems ab (vgl. ICONV_IMPL). Einige Implementierungen sind bekannt dafür, //TRANSLIT zu ignorieren, so dass die Umwandlung für Zeichen, die illegal für den out_charset sind, vermutlich fehlschlägt.

str

Die zu konvertierende Zeichenkette.

Rückgabewerte

Gibt die konvertierte Zeichenkette zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.4.0 | Seit dieser Version gibt die Funktion false bei nicht erlaubten Zeichen zurück, außer wenn //IGNORE im Ausgabe-Zeichensatz angegeben wurde. Vorher wurde eine partielle Ausgabezeichenkette zurück gegeben.

Beispiele

Beispiel #1 iconv()-Beispiel:

<?php
$text = "This is the Euro symbol '€'.";

echo 'Original : ', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo 'IGNORE   : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo 'Plain    : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Original : This is the Euro symbol '€'.
TRANSLIT : This is the Euro symbol 'EUR'.
IGNORE   : This is the Euro symbol ''.
Plain    :
Notice: iconv(): Detected an illegal character in input string in .\iconv-example.php on line 7


Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer handler)

  • « iconv
  • intl »
  • PHP Manual
  • iconv Funktionen
  • Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer handler)

ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ob_iconv_handler — Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer handler)

Beschreibung

ob_iconv_handler ( string $contents , int $status ) : string

Die Funktion konvertiert die in Zeichensatz internal_encoding kodierte Zeichenkette in output_encoding.

internal_encoding und output_encoding sollten über die Konfigurationsdatei php.ini oder über die Funktion iconv_set_encoding() definiert werden.

Parameter-Liste

ob_start() enthält Informationen über die Parameter.

Rückgabewerte

ob_start() enthält Informationen über die Rückgabewerte.

Beispiele

Beispiel #1 ob_iconv_handler()-Beispiel:

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
ob_start("ob_iconv_handler"); // start output buffering
?>

Siehe auch

  • iconv_get_encoding() - Aktuelle Einstellung für Zeichensatz-Konvertierung auslesen
  • iconv_set_encoding() - Einstellungen für die Zeichensatzkonvertierung setzen
  • output-control functions


Internationalization Functions

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Basic usage of this extension
  • Collator — The Collator class
    • Collator::asort — Sort array maintaining index association
    • Collator::compare — Compare two Unicode strings
    • Collator::__construct — Create a collator
    • Collator::create — Create a collator
    • Collator::getAttribute — Get collation attribute value
    • Collator::getErrorCode — Get collator's last error code
    • Collator::getErrorMessage — Get text for collator's last error code
    • Collator::getLocale — Get the locale name of the collator
    • Collator::getSortKey — Get sorting key for a string
    • Collator::getStrength — Get current collation strength
    • Collator::setAttribute — Set collation attribute
    • Collator::setStrength — Set collation strength
    • Collator::sortWithSortKeys — Sort array using specified collator and sort keys
    • Collator::sort — Sort array using specified collator
  • NumberFormatter — The NumberFormatter class
    • NumberFormatter::create — Create a number formatter
    • NumberFormatter::formatCurrency — Format a currency value
    • NumberFormatter::format — Format a number
    • NumberFormatter::getAttribute — Get an attribute
    • NumberFormatter::getErrorCode — Get formatter's last error code
    • NumberFormatter::getErrorMessage — Get formatter's last error message
    • NumberFormatter::getLocale — Get formatter locale
    • NumberFormatter::getPattern — Get formatter pattern
    • NumberFormatter::getSymbol — Get a symbol value
    • NumberFormatter::getTextAttribute — Get a text attribute
    • NumberFormatter::parseCurrency — Parse a currency number
    • NumberFormatter::parse — Parse a number
    • NumberFormatter::setAttribute — Set an attribute
    • NumberFormatter::setPattern — Set formatter pattern
    • NumberFormatter::setSymbol — Set a symbol value
    • NumberFormatter::setTextAttribute — Set a text attribute
  • Locale — The Locale class
    • Locale::acceptFromHttp — Tries to find out best available locale based on HTTP "Accept-Language" header
    • Locale::canonicalize — Canonicalize the locale string
    • Locale::composeLocale — Returns a correctly ordered and delimited locale ID
    • Locale::filterMatches — Checks if a language tag filter matches with locale
    • Locale::getAllVariants — Gets the variants for the input locale
    • Locale::getDefault — Gets the default locale value from the INTL global 'default_locale'
    • Locale::getDisplayLanguage — Returns an appropriately localized display name for language of the inputlocale
    • Locale::getDisplayName — Returns an appropriately localized display name for the input locale
    • Locale::getDisplayRegion — Returns an appropriately localized display name for region of the input locale
    • Locale::getDisplayScript — Returns an appropriately localized display name for script of the input locale
    • Locale::getDisplayVariant — Returns an appropriately localized display name for variants of the input locale
    • Locale::getKeywords — Gets the keywords for the input locale
    • Locale::getPrimaryLanguage — Gets the primary language for the input locale
    • Locale::getRegion — Gets the region for the input locale
    • Locale::getScript — Gets the script for the input locale
    • Locale::lookup — Searches the language tag list for the best match to the language
    • Locale::parseLocale — Returns a key-value array of locale ID subtag elements
    • Locale::setDefault — Sets the default runtime locale
  • Normalizer — The Normalizer class
    • Normalizer::getRawDecomposition — Gets the Decomposition_Mapping property for the given UTF-8 encoded code point
    • Normalizer::isNormalized — Checks if the provided string is already in the specified normalization form
    • Normalizer::normalize — Normalizes the input provided and returns the normalized string
  • MessageFormatter — The MessageFormatter class
    • MessageFormatter::create — Constructs a new Message Formatter
    • MessageFormatter::formatMessage — Quick format message
    • MessageFormatter::format — Format the message
    • MessageFormatter::getErrorCode — Get the error code from last operation
    • MessageFormatter::getErrorMessage — Get the error text from the last operation
    • MessageFormatter::getLocale — Get the locale for which the formatter was created
    • MessageFormatter::getPattern — Get the pattern used by the formatter
    • MessageFormatter::parseMessage — Quick parse input string
    • MessageFormatter::parse — Parse input string according to pattern
    • MessageFormatter::setPattern — Set the pattern used by the formatter
  • IntlCalendar — The IntlCalendar class
    • IntlCalendar::add — Add a (signed) amount of time to a field
    • IntlCalendar::after — Whether this object's time is after that of the passed object
    • IntlCalendar::before — Whether this object's time is before that of the passed object
    • IntlCalendar::clear — Clear a field or all fields
    • IntlCalendar::__construct — Private constructor for disallowing instantiation
    • IntlCalendar::createInstance — Create a new IntlCalendar
    • IntlCalendar::equals — Compare time of two IntlCalendar objects for equality
    • IntlCalendar::fieldDifference — Calculate difference between given time and this object's time
    • IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string
    • IntlCalendar::get — Get the value for a field
    • IntlCalendar::getActualMaximum — The maximum value for a field, considering the object's current time
    • IntlCalendar::getActualMinimum — The minimum value for a field, considering the object's current time
    • IntlCalendar::getAvailableLocales — Get array of locales for which there is data
    • IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two
    • IntlCalendar::getErrorCode — Get last error code on the object
    • IntlCalendar::getErrorMessage — Get last error message on the object
    • IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar's locale
    • IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field
    • IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values
    • IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field
    • IntlCalendar::getLocale — Get the locale associated with the object
    • IntlCalendar::getMaximum — Get the global maximum value for a field
    • IntlCalendar::getMinimalDaysInFirstWeek — Get minimal number of days the first week in a year or month can have
    • IntlCalendar::getMinimum — Get the global minimum value for a field
    • IntlCalendar::getNow — Get number representing the current time
    • IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time
    • IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time
    • IntlCalendar::getTime — Get time currently represented by the object
    • IntlCalendar::getTimeZone — Get the object's timezone
    • IntlCalendar::getType — Get the calendar type
    • IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends
    • IntlCalendar::inDaylightTime — Whether the object's time is in Daylight Savings Time
    • IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time
    • IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode
    • IntlCalendar::isSet — Whether a field is set
    • IntlCalendar::isWeekend — Whether a certain date/time is in the weekend
    • IntlCalendar::roll — Add value to field without carrying into more significant fields
    • IntlCalendar::set — Set a time field or several common fields at once
    • IntlCalendar::setFirstDayOfWeek — Set the day on which the week is deemed to start
    • IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient
    • IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have
    • IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions
    • IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions
    • IntlCalendar::setTime — Set the calendar time in milliseconds since the epoch
    • IntlCalendar::setTimeZone — Set the timezone used by this calendar
    • IntlCalendar::toDateTime — Convert an IntlCalendar into a DateTime object
  • IntlGregorianCalendar — The IntlGregorianCalendar class
    • IntlGregorianCalendar::__construct — Create the Gregorian Calendar class
    • IntlGregorianCalendar::getGregorianChange — Get the Gregorian Calendar change date
    • IntlGregorianCalendar::isLeapYear — Determine if the given year is a leap year
    • IntlGregorianCalendar::setGregorianChange — Set the Gregorian Calendar the change date
  • IntlTimeZone — The IntlTimeZone class
    • IntlTimeZone::countEquivalentIDs — Get the number of IDs in the equivalency group that includes the given ID
    • IntlTimeZone::createDefault — Create a new copy of the default timezone for this host
    • IntlTimeZone::createEnumeration — Get an enumeration over time zone IDs associated with the given country or offset
    • IntlTimeZone::createTimeZone — Create a timezone object for the given ID
    • IntlTimeZone::createTimeZoneIDEnumeration — Get an enumeration over system time zone IDs with the given filter conditions
    • IntlTimeZone::fromDateTimeZone — Create a timezone object from DateTimeZone
    • IntlTimeZone::getCanonicalID — Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID
    • IntlTimeZone::getDisplayName — Get a name of this time zone suitable for presentation to the user
    • IntlTimeZone::getDSTSavings — Get the amount of time to be added to local standard time to get local wall clock time
    • IntlTimeZone::getEquivalentID — Get an ID in the equivalency group that includes the given ID
    • IntlTimeZone::getErrorCode — Get last error code on the object
    • IntlTimeZone::getErrorMessage — Get last error message on the object
    • IntlTimeZone::getGMT — Create GMT (UTC) timezone
    • IntlTimeZone::getID — Get timezone ID
    • IntlTimeZone::getIDForWindowsID — Translate a Windows timezone into a system timezone
    • IntlTimeZone::getOffset — Get the time zone raw and GMT offset for the given moment in time
    • IntlTimeZone::getRawOffset — Get the raw GMT offset (before taking daylight savings time into account
    • IntlTimeZone::getRegion — Get the region code associated with the given system time zone ID
    • IntlTimeZone::getTZDataVersion — Get the timezone data version currently used by ICU
    • IntlTimeZone::getUnknown — Get the "unknown" time zone
    • IntlTimeZone::getWindowsID — Translate a system timezone into a Windows timezone
    • IntlTimeZone::hasSameRules — Check if this zone has the same rules and offset as another zone
    • IntlTimeZone::toDateTimeZone — Convert to DateTimeZone object
    • IntlTimeZone::useDaylightTime — Check if this time zone uses daylight savings time
  • IntlDateFormatter — The IntlDateFormatter class
    • IntlDateFormatter::create — Create a date formatter
    • IntlDateFormatter::format — Format the date/time value as a string
    • IntlDateFormatter::formatObject — Formats an object
    • IntlDateFormatter::getCalendar — Get the calendar type used for the IntlDateFormatter
    • IntlDateFormatter::getDateType — Get the datetype used for the IntlDateFormatter
    • IntlDateFormatter::getErrorCode — Get the error code from last operation
    • IntlDateFormatter::getErrorMessage — Get the error text from the last operation
    • IntlDateFormatter::getLocale — Get the locale used by formatter
    • IntlDateFormatter::getPattern — Get the pattern used for the IntlDateFormatter
    • IntlDateFormatter::getTimeType — Get the timetype used for the IntlDateFormatter
    • IntlDateFormatter::getTimeZoneId — Get the timezone-id used for the IntlDateFormatter
    • IntlDateFormatter::getCalendarObject — Get copy of formatter's calendar object
    • IntlDateFormatter::getTimeZone — Get formatter's timezone
    • IntlDateFormatter::isLenient — Get the lenient used for the IntlDateFormatter
    • IntlDateFormatter::localtime — Parse string to a field-based time value
    • IntlDateFormatter::parse — Parse string to a timestamp value
    • IntlDateFormatter::setCalendar — Sets the calendar type used by the formatter
    • IntlDateFormatter::setLenient — Set the leniency of the parser
    • IntlDateFormatter::setPattern — Set the pattern used for the IntlDateFormatter
    • IntlDateFormatter::setTimeZone — Sets formatter's timezone
  • ResourceBundle — The ResourceBundle class
    • ResourceBundle::count — Get number of elements in the bundle
    • ResourceBundle::create — Create a resource bundle
    • ResourceBundle::getErrorCode — Get bundle's last error code
    • ResourceBundle::getErrorMessage — Get bundle's last error message
    • ResourceBundle::get — Get data from the bundle
    • ResourceBundle::getLocales — Get supported locales
  • Spoofchecker — The Spoofchecker class
    • Spoofchecker::areConfusable — Checks if given strings can be confused
    • Spoofchecker::__construct — Constructor
    • Spoofchecker::isSuspicious — Checks if a given text contains any suspicious characters
    • Spoofchecker::setAllowedLocales — Locales to use when running checks
    • Spoofchecker::setChecks — Set the checks to run
  • Transliterator — The Transliterator class
    • Transliterator::__construct — Private constructor to deny instantiation
    • Transliterator::create — Create a transliterator
    • Transliterator::createFromRules — Create transliterator from rules
    • Transliterator::createInverse — Create an inverse transliterator
    • Transliterator::getErrorCode — Get last error code
    • Transliterator::getErrorMessage — Get last error message
    • Transliterator::listIDs — Get transliterator IDs
    • Transliterator::transliterate — Transliterate a string
  • IntlBreakIterator — The IntlBreakIterator class
    • IntlBreakIterator::__construct — Private constructor for disallowing instantiation
    • IntlBreakIterator::createCharacterInstance — Create break iterator for boundaries of combining character sequences
    • IntlBreakIterator::createCodePointInstance — Create break iterator for boundaries of code points
    • IntlBreakIterator::createLineInstance — Create break iterator for logically possible line breaks
    • IntlBreakIterator::createSentenceInstance — Create break iterator for sentence breaks
    • IntlBreakIterator::createTitleInstance — Create break iterator for title-casing breaks
    • IntlBreakIterator::createWordInstance — Create break iterator for word breaks
    • IntlBreakIterator::current — Get index of current position
    • IntlBreakIterator::first — Set position to the first character in the text
    • IntlBreakIterator::following — Advance the iterator to the first boundary following specified offset
    • IntlBreakIterator::getErrorCode — Get last error code on the object
    • IntlBreakIterator::getErrorMessage — Get last error message on the object
    • IntlBreakIterator::getLocale — Get the locale associated with the object
    • IntlBreakIterator::getPartsIterator — Create iterator for navigating fragments between boundaries
    • IntlBreakIterator::getText — Get the text being scanned
    • IntlBreakIterator::isBoundary — Tell whether an offset is a boundary's offset
    • IntlBreakIterator::last — Set the iterator position to index beyond the last character
    • IntlBreakIterator::next — Advance the iterator the next boundary
    • IntlBreakIterator::preceding — Set the iterator position to the first boundary before an offset
    • IntlBreakIterator::previous — Set the iterator position to the boundary immediately before the current
    • IntlBreakIterator::setText — Set the text being scanned
  • IntlRuleBasedBreakIterator — The IntlRuleBasedBreakIterator class
    • IntlRuleBasedBreakIterator::__construct — Create iterator from ruleset
    • IntlRuleBasedBreakIterator::getBinaryRules — Get the binary form of compiled rules
    • IntlRuleBasedBreakIterator::getRules — Get the rule set used to create this object
    • IntlRuleBasedBreakIterator::getRuleStatus — Get the largest status value from the break rules that determined the current break position
    • IntlRuleBasedBreakIterator::getRuleStatusVec — Get the status values from the break rules that determined the current break position
  • IntlCodePointBreakIterator — The IntlCodePointBreakIterator class
    • IntlCodePointBreakIterator::getLastCodePoint — Get last code point passed over after advancing or receding the iterator
  • IntlPartsIterator — The IntlPartsIterator class
    • IntlPartsIterator::getBreakIterator — Get IntlBreakIterator backing this parts iterator
  • UConverter — The UConverter class
    • UConverter::__construct — Create UConverter object
    • UConverter::convert — Convert string from one charset to another
    • UConverter::fromUCallback — Default "from" callback function
    • UConverter::getAliases — Get the aliases of the given name
    • UConverter::getAvailable — Get the available canonical converter names
    • UConverter::getDestinationEncoding — Get the destination encoding
    • UConverter::getDestinationType — Get the destination converter type
    • UConverter::getErrorCode — Get last error code on the object
    • UConverter::getErrorMessage — Get last error message on the object
    • UConverter::getSourceEncoding — Get the source encoding
    • UConverter::getSourceType — Get the source converter type
    • UConverter::getStandards — Get standards associated to converter names
    • UConverter::getSubstChars — Get substitution chars
    • UConverter::reasonText — Get string representation of the callback reason
    • UConverter::setDestinationEncoding — Set the destination encoding
    • UConverter::setSourceEncoding — Set the source encoding
    • UConverter::setSubstChars — Set the substitution chars
    • UConverter::toUCallback — Default "to" callback function
    • UConverter::transcode — Convert string from one charset to another
  • Grapheme Funktionen
    • grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8
    • grapheme_stripos — Find position (in grapheme units) of first occurrence of a case-insensitive string
    • grapheme_stristr — Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
    • grapheme_strlen — Get string length in grapheme units
    • grapheme_strpos — Find position (in grapheme units) of first occurrence of a string
    • grapheme_strripos — Find position (in grapheme units) of last occurrence of a case-insensitive string
    • grapheme_strrpos — Find position (in grapheme units) of last occurrence of a string
    • grapheme_strstr — Returns part of haystack string from the first occurrence of needle to the end of haystack
    • grapheme_substr — Return part of a string
  • IDN Funktionen
    • idn_to_ascii — Convert domain name to IDNA ASCII form
    • idn_to_utf8 — Convert domain name from IDNA ASCII to Unicode
  • IntlChar
    • IntlChar::charAge — Get the "age" of the code point
    • IntlChar::charDigitValue — Get the decimal digit value of a decimal digit character
    • IntlChar::charDirection — Get bidirectional category value for a code point
    • IntlChar::charFromName — Find Unicode character by name and return its code point value
    • IntlChar::charMirror — Get the "mirror-image" character for a code point
    • IntlChar::charName — Retrieve the name of a Unicode character
    • IntlChar::charType — Get the general category value for a code point
    • IntlChar::chr — Return Unicode character by code point value
    • IntlChar::digit — Get the decimal digit value of a code point for a given radix
    • IntlChar::enumCharNames — Enumerate all assigned Unicode characters within a range
    • IntlChar::enumCharTypes — Enumerate all code points with their Unicode general categories
    • IntlChar::foldCase — Perform case folding on a code point
    • IntlChar::forDigit — Get character representation for a given digit and radix
    • IntlChar::getBidiPairedBracket — Get the paired bracket character for a code point
    • IntlChar::getBlockCode — Get the Unicode allocation block containing a code point
    • IntlChar::getCombiningClass — Get the combining class of a code point
    • IntlChar::getFC_NFKC_Closure — Get the FC_NFKC_Closure property for a code point
    • IntlChar::getIntPropertyMaxValue — Get the max value for a Unicode property
    • IntlChar::getIntPropertyMinValue — Get the min value for a Unicode property
    • IntlChar::getIntPropertyValue — Get the value for a Unicode property for a code point
    • IntlChar::getNumericValue — Get the numeric value for a Unicode code point
    • IntlChar::getPropertyEnum — Get the property constant value for a given property name
    • IntlChar::getPropertyName — Get the Unicode name for a property
    • IntlChar::getPropertyValueEnum — Get the property value for a given value name
    • IntlChar::getPropertyValueName — Get the Unicode name for a property value
    • IntlChar::getUnicodeVersion — Get the Unicode version
    • IntlChar::hasBinaryProperty — Check a binary Unicode property for a code point
    • IntlChar::isalnum — Check if code point is an alphanumeric character
    • IntlChar::isalpha — Check if code point is a letter character
    • IntlChar::isbase — Check if code point is a base character
    • IntlChar::isblank — Check if code point is a "blank" or "horizontal space" character
    • IntlChar::iscntrl — Check if code point is a control character
    • IntlChar::isdefined — Check whether the code point is defined
    • IntlChar::isdigit — Check if code point is a digit character
    • IntlChar::isgraph — Check if code point is a graphic character
    • IntlChar::isIDIgnorable — Check if code point is an ignorable character
    • IntlChar::isIDPart — Check if code point is permissible in an identifier
    • IntlChar::isIDStart — Check if code point is permissible as the first character in an identifier
    • IntlChar::isISOControl — Check if code point is an ISO control code
    • IntlChar::isJavaIDPart — Check if code point is permissible in a Java identifier
    • IntlChar::isJavaIDStart — Check if code point is permissible as the first character in a Java identifier
    • IntlChar::isJavaSpaceChar — Check if code point is a space character according to Java
    • IntlChar::islower — Check if code point is a lowercase letter
    • IntlChar::isMirrored — Check if code point has the Bidi_Mirrored property
    • IntlChar::isprint — Check if code point is a printable character
    • IntlChar::ispunct — Check if code point is punctuation character
    • IntlChar::isspace — Check if code point is a space character
    • IntlChar::istitle — Check if code point is a titlecase letter
    • IntlChar::isUAlphabetic — Check if code point has the Alphabetic Unicode property
    • IntlChar::isULowercase — Check if code point has the Lowercase Unicode property
    • IntlChar::isupper — Check if code point has the general category "Lu" (uppercase letter)
    • IntlChar::isUUppercase — Check if code point has the Uppercase Unicode property
    • IntlChar::isUWhiteSpace — Check if code point has the White_Space Unicode property
    • IntlChar::isWhitespace — Check if code point is a whitespace character according to ICU
    • IntlChar::isxdigit — Check if code point is a hexadecimal digit
    • IntlChar::ord — Return Unicode code point value of character
    • IntlChar::tolower — Make Unicode character lowercase
    • IntlChar::totitle — Make Unicode character titlecase
    • IntlChar::toupper — Make Unicode character uppercase
  • IntlException — Exception class for intl errors
  • IntlIterator — The IntlIterator class
    • IntlIterator::current — Get the current element
    • IntlIterator::key — Get the current key
    • IntlIterator::next — Move forward to the next element
    • IntlIterator::rewind — Rewind the iterator to the first element
    • IntlIterator::valid — Check if current position is valid
  • intl Funktionen
    • intl_error_name — Get symbolic name for a given error code
    • intl_get_error_code — Get the last error code
    • intl_get_error_message — Get description of the last error
    • intl_is_failure — Check whether the given error code indicates failure


Einführung

Internationalization extension (further is referred as Intl) is a wrapper for » ICU library, enabling PHP programmers to perform various locale-aware operations including but not limited to formatting, transliteration, encoding conversion, calendar operations, » UCA-conformant collation, locating text boundaries and working with locale identifiers, timezones and graphemes,

It tends to closely follow ICU APIs, so that people having experience working with ICU in either C/C++ or Java could easily use the PHP API. Also, this way ICU documentation would be useful to understand various ICU functions.

Intl consists of several modules, each of them exposes the corresponding ICU API:

  • Collator: provides string comparison capability with support for appropriate locale-sensitive sort orderings.
  • Number Formatter: allows to display number according to the localized format or given pattern or set of rules, and to parse strings into numbers.
  • Message Formatter: allows to create messages incorporating data (such as numbers or dates) formatted according to given pattern and locale rules, and parse messages extracting data from them. It can handle plurals, locale-aware numbers, currencies, conditions and much more.
  • Normalizer: provides a function to transform text into one of the Unicode normalization forms, and provides a routine to test if a given string is already normalized.
  • Locale: provides interaction with locale identifiers in the form of functions to get subtags from locale identifier; parse, compose, match(lookup and filter) locale identifiers.
  • Calendar: provides a class which could be used for locale-aware calendar operations and getting various information such as timezone for locale chosen, first day of week or if it's daylight saving time now.
  • Timezone: provides a wrapper around the » "Olson" database which has information about all the timezones around the world.
  • Date formatter: allows to display date and time according to the localized format or given pattern or set of rules, and to parse strings into date and time.
  • Transliterator: allows getting latin representation of strings in various languages.

Links

  • » Miscellaneous ICU docs

  • » ICU User Guide

  • » Unicode Collation Algorithm


Anforderungen

To build the extension you need to install the » ICU library, version 4.0.0 or newer is required. As of PHP 7.4.0 ICU 50.1 or newer is required.

This extension is bundled with PHP as of PHP version 5.3.0. Alternatively, the PECL version of this extension may be used with all PHP versions greater than 5.2.0 (5.2.4+ recommended).


Installation

This extension may be installed using the bundled version as of PHP 5.3.0, or as a PECL extension as of PHP 5.2.0. In other words, there are two methods to install the intl extension.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/intl.

Alternatively, --enable-intl will enable the bundled version while compiling PHP.

If your ICU is installed to a non-standard directory then you might want to specify its location in LD_LIBRARY_PATH environment variable so that dynamic linker can find it:

$ export LD_LIBRARY_PATH=/opt/icu/lib

Otherwise, if PHP and ICU are installed to their default locations, then the additional options to `configure' are not needed.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Intl Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
intl.default_locale |  | PHP_INI_ALL |
intl.error_level | 0 | PHP_INI_ALL |
intl.use_exceptions | 0 | PHP_INI_ALL | Available since PHP 5.5 and PECL 3.0.0a1

Hier eine kurze Erklärung der Konfigurationsoptionen:

intl.default_locale string

The locale that will be used in intl functions when none is specified (either by omitting the corresponding argument or by passing NULL). These are ICU locales, not system locales. The built-in ICU locales and their data can be explored at » http://demo.icu-project.org/icu-bin/locexp.

The default value is empty, which forces the usage of ICU's default locale. Once set, the ini setting cannot be reset to this default value. It is not recommended that this default be relied on, as its effective value depends on the server's environment.

intl.error_level int

The level of the error messages generated when an error occurs in ICU functions. This is a PHP error level, such as E_WARNING. It can be set to 0 in order to inhibit the messages. This does not affect the return values indicating error or the values returned by intl_get_error_code() or by the class specific methods for retrieving error codes and messages. Choosing E_ERROR will terminate the script whenever an error condition is found on intl classes.

The default value is 0.

intl.use_exceptions int

If set to true, an exception will be raised whenever an error occurs in an intl function. The exception will be of type IntlException. This is possibly in addition to the error message generated due to intl.error_level.

The default value is false.


Vordefinierte Konstanten

INTL_ICU_VERSION (string)
The current ICU library version as a dotted-decimal string.
INTL_MAX_LOCALE_LEN (int)
Limit on locale length, set to 80 in PHP code. Locale names longer than this limit will not be accepted.
IDNA_DEFAULT (int)
Prohibit processing of unassigned codepoints in the input for IDN functions and do not check if the input conforms to domain name ASCII rules.
IDNA_ALLOW_UNASSIGNED (int)
Allow processing of unassigned codepoints in the input for IDN functions.
IDNA_USE_STD3_RULES (int)
Check if the input for IDN functions conforms to domain name ASCII rules.
IDNA_CHECK_BIDI (int)
Check whether the input conforms to the BiDi rules. Ignored by the IDNA2003 implementation, which always performs this check.
IDNA_CHECK_CONTEXTJ (int)
Check whether the input conforms to the CONTEXTJ rules. Ignored by the IDNA2003 implementation, as this check is new in IDNA2008.
IDNA_NONTRANSITIONAL_TO_ASCII (int)
Option for nontransitional processing in idn_to_ascii(). Transitional processing is activated by default. This option is ignored by the IDNA2003 implementation.
IDNA_NONTRANSITIONAL_TO_UNICODE (int)
Option for nontransitional processing in idn_to_utf8(). Transitional processing is activated by default. This option is ignored by the IDNA2003 implementation.
INTL_IDNA_VARIANT_2003 (int)
Use IDNA 2003 algorithm in idn_to_utf8() and idn_to_ascii(). This is the default. This constant and using the default has been deprecated as of PHP 7.2.0.
INTL_IDNA_VARIANT_UTS46 (int)
Use UTS #46 algorithm in idn_to_utf8() and idn_to_ascii(). Available as of ICU 4.6.
IDNA_ERROR_EMPTY_LABEL (int)
IDNA_ERROR_LABEL_TOO_LONG (int)
IDNA_ERROR_DOMAIN_NAME_TOO_LONG (int)
IDNA_ERROR_LEADING_HYPHEN (int)
IDNA_ERROR_TRAILING_HYPHEN (int)
IDNA_ERROR_HYPHEN_3_4 (int)
IDNA_ERROR_LEADING_COMBINING_MARK (int)
IDNA_ERROR_DISALLOWED (int)
IDNA_ERROR_PUNYCODE (int)
IDNA_ERROR_LABEL_HAS_DOT (int)
IDNA_ERROR_INVALID_ACE_LABEL (int)
IDNA_ERROR_BIDI (int)
IDNA_ERROR_CONTEXTJ (int)
Errors reported in a bitset returned by the UTS #46 algorithm in idn_to_utf8() and idn_to_ascii().


  • « Vordefinierte Konstanten
  • Basic usage of this extension »
  • PHP Manual
  • intl
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Basic usage of this extension


Basic usage of this extension

Each module provides two kind of APIs: a procedural one and an object oriented one. Both are actually identical and described in the corresponding document.

Hinweis:

All input strings must be in UTF-8 encoding. All output strings are also in UTF-8.

Beispiel #1 Example of using the procedural API

<?php
$coll  = collator_create('en_US');
$result = collator_compare($coll, "string#1", "string#2");
?>

Beispiel #2 Example of using the object-oriented API

<?php
$coll = new Collator('en_US');
$al   = $coll->getLocale(Locale::ACTUAL_LOCALE);
echo "Actual locale: $al\n";

$formatter = new NumberFormatter('en_US', NumberFormatter::DECIMAL);
echo $formatter->format(1234567);
?>


The Collator class

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Einführung

Provides string comparison capability with support for appropriate locale-sensitive sort orderings.

Klassenbeschreibung

Collator {
/* Methoden */
public __construct ( string $locale )
public asort ( array &$array , int $flags = Collator::SORT_REGULAR ) : bool
public compare ( string $string1 , string $string2 ) : int|false
public static create ( string $locale ) : Collator|null
public getAttribute ( int $attribute ) : int|false
public getErrorCode ( ) : int|false
public getErrorMessage ( ) : string|false
public getLocale ( int $type ) : string|false
public getSortKey ( string $string ) : string|false
public getStrength ( ) : int
public setAttribute ( int $attribute , int $value ) : bool
public setStrength ( int $strength ) : bool
public sortWithSortKeys ( array &$array ) : bool
public sort ( array &$array , int $flags = Collator::SORT_REGULAR ) : bool
}

Vordefinierte Konstanten

Collator::FRENCH_COLLATION (int)

Sort strings with different accents from the back of the string. This attribute is automatically set to On for the French locales and a few others. Users normally would not need to explicitly set this attribute. There is a string comparison performance cost when it is set On, but sort key length is unaffected. Possible values are:

  • Collator::ON
  • Collator::OFF(default)
  • Collator::DEFAULT_VALUE

Beispiel #1 FRENCH_COLLATION rules

  • F=OFF cote < coté < côte < côté
  • F=ON cote < côte < coté < côté

Collator::ALTERNATE_HANDLING (int)

The Alternate attribute is used to control the handling of the so called variable characters in the UCA: whitespace, punctuation and symbols. If Alternate is set to NonIgnorable (N), then differences among these characters are of the same importance as differences among letters. If Alternate is set to Shifted (S), then these characters are of only minor importance. The Shifted value is often used in combination with Strength set to Quaternary. In such a case, whitespace, punctuation, and symbols are considered when comparing strings, but only if all other aspects of the strings (base letters, accents, and case) are identical. If Alternate is not set to Shifted, then there is no difference between a Strength of 3 and a Strength of 4. For more information and examples, see Variable_Weighting in the » UCA. The reason the Alternate values are not simply On and Off is that additional Alternate values may be added in the future. The UCA option Blanked is expressed with Strength set to 3, and Alternate set to Shifted. The default for most locales is NonIgnorable. If Shifted is selected, it may be slower if there are many strings that are the same except for punctuation; sort key length will not be affected unless the strength level is also increased.

Possible values are:

  • Collator::NON_IGNORABLE(default)
  • Collator::SHIFTED
  • Collator::DEFAULT_VALUE

Beispiel #2 ALTERNATE_HANDLING rules

  • S=3, A=N di Silva < Di Silva < diSilva < U.S.A. < USA
  • S=3, A=S di Silva = diSilva < Di Silva < U.S.A. = USA
  • S=4, A=S di Silva < diSilva < Di Silva < U.S.A. < USA

Collator::CASE_FIRST (int)

The Case_First attribute is used to control whether uppercase letters come before lowercase letters or vice versa, in the absence of other differences in the strings. The possible values are Uppercase_First (U) and Lowercase_First (L), plus the standard Default and Off. There is almost no difference between the Off and Lowercase_First options in terms of results, so typically users will not use Lowercase_First: only Off or Uppercase_First. (People interested in the detailed differences between X and L should consult the Collation Customization). Specifying either L or U won't affect string comparison performance, but will affect the sort key length.

Possible values are:

  • Collator::OFF(default)
  • Collator::LOWER_FIRST
  • Collator::UPPER_FIRST
  • Collator:DEFAULT

Beispiel #3 CASE_FIRST rules

  • C=X or C=L "china" < "China" < "denmark" < "Denmark"
  • C=U "China" < "china" < "Denmark" < "denmark"

Collator::CASE_LEVEL (int)

The Case_Level attribute is used when ignoring accents but not case. In such a situation, set Strength to be Primary, and Case_Level to be On. In most locales, this setting is Off by default. There is a small string comparison performance and sort key impact if this attribute is set to be On.

Possible values are:

  • Collator::OFF(default)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Beispiel #4 CASE_LEVEL rules

  • S=1, E=X role = Role = rôle
  • S=1, E=O role = rôle < Role

Collator::NORMALIZATION_MODE (int)

The Normalization setting determines whether text is thoroughly normalized or not in comparison. Even if the setting is off (which is the default for many locales), text as represented in common usage will compare correctly (for details, see UTN #5). Only if the accent marks are in noncanonical order will there be a problem. If the setting is On, then the best results are guaranteed for all possible text input. There is a medium string comparison performance cost if this attribute is On, depending on the frequency of sequences that require normalization. There is no significant effect on sort key length. If the input text is known to be in NFD or NFKD normalization forms, there is no need to enable this Normalization option.

Possible values are:

  • Collator::OFF(default)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::STRENGTH (int)

The ICU Collation Service supports many levels of comparison (named "Levels", but also known as "Strengths"). Having these categories enables ICU to sort strings precisely according to local conventions. However, by allowing the levels to be selectively employed, searching for a string in text can be performed with various matching conditions. For more detailed information, see collator_set_strength() chapter.

Possible values are:

  • Collator::PRIMARY
  • Collator::SECONDARY
  • Collator::TERTIARY(default)
  • Collator::QUATERNARY
  • Collator::IDENTICAL
  • Collator::DEFAULT_VALUE

Collator::HIRAGANA_QUATERNARY_MODE (int)

Compatibility with JIS x 4061 requires the introduction of an additional level to distinguish Hiragana and Katakana characters. If compatibility with that standard is required, then this attribute should be set On, and the strength set to Quaternary. This will affect sort key length and string comparison string comparison performance.

Possible values are:

  • Collator::OFF(default)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::NUMERIC_COLLATION (int)

When turned on, this attribute generates a collation key for the numeric value of substrings of digits. This is a way to get '100' to sort AFTER '2'.

Possible values are:

  • Collator::OFF(default)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::DEFAULT_VALUE (int)
Collator::PRIMARY (int)
Collator::SECONDARY (int)
Collator::TERTIARY (int)
Collator::DEFAULT_STRENGTH (int)
Collator::QUATERNARY (int)
Collator::IDENTICAL (int)
Collator::OFF (int)
Collator::ON (int)
Collator::SHIFTED (int)
Collator::NON_IGNORABLE (int)
Collator::LOWER_FIRST (int)
Collator::UPPER_FIRST (int)

Inhaltsverzeichnis

  • Collator::asort — Sort array maintaining index association
  • Collator::compare — Compare two Unicode strings
  • Collator::__construct — Create a collator
  • Collator::create — Create a collator
  • Collator::getAttribute — Get collation attribute value
  • Collator::getErrorCode — Get collator's last error code
  • Collator::getErrorMessage — Get text for collator's last error code
  • Collator::getLocale — Get the locale name of the collator
  • Collator::getSortKey — Get sorting key for a string
  • Collator::getStrength — Get current collation strength
  • Collator::setAttribute — Set collation attribute
  • Collator::setStrength — Set collation strength
  • Collator::sortWithSortKeys — Sort array using specified collator and sort keys
  • Collator::sort — Sort array using specified collator


Sort array maintaining index association

  • « Collator
  • Collator::compare »
  • PHP Manual
  • Collator
  • Sort array maintaining index association

Collator::asort

collator_asort

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::asort -- collator_asort — Sort array maintaining index association

Beschreibung

Objektorientierter Stil

public Collator::asort ( array &$array , int $flags = Collator::SORT_REGULAR ) : bool

Prozeduraler Stil

collator_asort ( Collator $object , array &$array , int $flags = Collator::SORT_REGULAR ) : bool

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. Array elements will have sort order according to current locale rules.

Equivalent to standard PHP asort().

Parameter-Liste

object

Collator object.

array

Array of strings to sort.

flags

Optional sorting type, one of the following:

  • Collator::SORT_REGULAR - compare items normally (don't change types)

  • Collator::SORT_NUMERIC - compare items numerically

  • Collator::SORT_STRING - compare items as strings

Default $sort_flag value is Collator::SORT_REGULAR. It is also used if an invalid $sort_flag value has been specified.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 collator_asort()example

<?php
$coll = collator_create( 'en_US' );
$arr = array(
     'a' => '100',
     'b' => '50',
     'c' => '7'
);
collator_asort( $coll, $arr, Collator::SORT_NUMERIC );
var_export( $arr );

collator_asort( $coll, $arr, Collator::SORT_STRING );
var_export( $arr );
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array (
  'c' => '7',
  'b' => '50',
  'a' => '100',
)array (
  'a' => '100',
  'b' => '50',
  'c' => '7',
)

Siehe auch

  • Collator constants
  • collator_sort() - Sort array using specified collator
  • collator_sort_with_sort_keys() - Sort array using specified collator and sort keys


Compare two Unicode strings

  • « Collator::asort
  • Collator::__construct »
  • PHP Manual
  • Collator
  • Compare two Unicode strings

Collator::compare

collator_compare

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::compare -- collator_compare — Compare two Unicode strings

Beschreibung

Objektorientierter Stil

public Collator::compare ( string $string1 , string $string2 ) : int|false

Prozeduraler Stil

collator_compare ( Collator $object , string $string1 , string $string2 ) : int|false

Compare two Unicode strings according to collation rules.

Parameter-Liste

object

Collator object.

string1

The first string to compare.

string2

The second string to compare.

Rückgabewerte

Return comparison result:

  • 1 if string1 is greater than string2 ;

  • 0 if string1 is equal to string2;

  • -1 if string1 is less than string2 .

On error bool false is returned.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 collator_compare()example

<?php
$s1 = 'Hello';
$s2 = 'hello';

$coll = collator_create( 'en_US' );
$res  = collator_compare( $coll, $s1, $s2 );

if ($res === false) {
    echo collator_get_error_message( $coll );
} else if( $res > 0 ) {
    echo "s1 is greater than s2\n";
} else if( $res < 0 ) {
    echo "s1 is less than s2\n";
} else {
    echo "s1 is equal to s2\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

s1 is greater than s2

Siehe auch

  • collator_sort() - Sort array using specified collator


Create a collator

  • « Collator::compare
  • Collator::create »
  • PHP Manual
  • Collator
  • Create a collator

Collator::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::__construct — Create a collator

Beschreibung

public Collator::__construct ( string $locale )

Creates a new instance of Collator.

Parameter-Liste

locale

The locale whose collation rules should be used. Special values for locales can be passed in - if null is passed for the locale, the default locale's collation rules will be used. If "root" is passed, UCA rules will be used.

The Locale attribute is typically the most important attribute for correct sorting and matching, according to the user expectations in different countries and regions. The default » UCA ordering will only sort a few languages such as Dutch and Portuguese correctly ("correctly" meaning according to the normal expectations for users of the languages). Otherwise, you need to supply the locale to UCA in order to properly collate text for a given language. Thus a locale needs to be supplied so as to choose a collator that is correctly tailored for that locale. The choice of a locale will automatically preset the values for all of the attributes to something that is reasonable for that locale. Thus most of the time the other attributes do not need to be explicitly set. In some cases, the choice of locale will make a difference in string comparison performance and/or sort key length.

Rückgabewerte

Returns Collator instance.

Fehler/Exceptions

Returns an "empty" object on error. You can use intl_get_error_code() and/or intl_get_error_message() to know what happened.

Beispiele

Beispiel #1 Collator::__construct() example

<?php
$coll = new Collator( 'en_CA' );
?>

Siehe auch

  • Collator::create() - Create a collator
  • collator_create() - Create a collator


Create a collator

  • « Collator::__construct
  • Collator::getAttribute »
  • PHP Manual
  • Collator
  • Create a collator

Collator::create

collator_create

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::create -- collator_create — Create a collator

Beschreibung

Objektorientierter Stil

public static Collator::create ( string $locale ) : Collator|null

Prozeduraler Stil

collator_create ( string $locale ) : Collator|null

The strings will be compared using the options already specified.

Parameter-Liste

locale

The locale containing the required collation rules. Special values for locales can be passed in - if null is passed for the locale, the default locale collation rules will be used. If empty string ("") or "root" are passed, » UCA rules will be used.

Rückgabewerte

Return new instance of Collator object, or null on error.

Beispiele

Beispiel #1 collator_create() example

<?php
$coll = collator_create( 'en_US' );

if( !isset( $coll ) ) {
    printf( "Collator creation failed: %s\n", intl_get_error_message() );
    exit( 1 );
}
?>

Siehe auch

  • Collator::__construct() - Create a collator


Get collation attribute value

  • « Collator::create
  • Collator::getErrorCode »
  • PHP Manual
  • Collator
  • Get collation attribute value

Collator::getAttribute

collator_get_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getAttribute -- collator_get_attribute — Get collation attribute value

Beschreibung

Objektorientierter Stil

public Collator::getAttribute ( int $attribute ) : int|false

Prozeduraler Stil

collator_get_attribute ( Collator $object , int $attribute ) : int|false

Get a value of an integer collator attribute.

Parameter-Liste

object

Collator object.

attribute

Attribute to get value for.

Rückgabewerte

Attribute value, or bool false on error.

Beispiele

Beispiel #1 collator_get_attribute() example

<?php
$coll = collator_create( 'en_CA' );
$val = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if( $val === false )
{
    // Handle error.
}
?>

Siehe auch

  • Collator constants
  • collator_set_attribute() - Set collation attribute
  • collator_get_strength() - Get current collation strength


Get collator's last error code

  • « Collator::getAttribute
  • Collator::getErrorMessage »
  • PHP Manual
  • Collator
  • Get collator's last error code

Collator::getErrorCode

collator_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getErrorCode -- collator_get_error_code — Get collator's last error code

Beschreibung

Objektorientierter Stil

public Collator::getErrorCode ( ) : int|false

Prozeduraler Stil

collator_get_error_code ( Collator $object ) : int|false

Parameter-Liste

object

Collator object.

Rückgabewerte

Error code returned by the last Collator API function call, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 collator_get_error_code() example

<?php
$coll = collator_create( 'en_US' );
if( collator_get_attribute( $coll, Collator::FRENCH_COLLATION ) === false )
        handle_error( collator_get_error_code() );
?>

Siehe auch

  • collator_get_error_message() - Get text for collator's last error code


Get text for collator's last error code

  • « Collator::getErrorCode
  • Collator::getLocale »
  • PHP Manual
  • Collator
  • Get text for collator's last error code

Collator::getErrorMessage

collator_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getErrorMessage -- collator_get_error_message — Get text for collator's last error code

Beschreibung

Objektorientierter Stil

public Collator::getErrorMessage ( ) : string|false

Prozeduraler Stil

collator_get_error_message ( Collator $object ) : string|false

Retrieves the message for the last error.

Parameter-Liste

object

Collator object.

Rückgabewerte

Description of an error occurred in the last Collator API function call, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 collator_get_error_message() example

<?php
$coll = collator_create( 'lt' );
if( collator_compare( $coll, 'y', 'k' ) === false ) {
    echo collator_get_error_message( $coll );
}
?>

Siehe auch

  • collator_get_error_code() - Get collator's last error code


Get the locale name of the collator

  • « Collator::getErrorMessage
  • Collator::getSortKey »
  • PHP Manual
  • Collator
  • Get the locale name of the collator

Collator::getLocale

collator_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getLocale -- collator_get_locale — Get the locale name of the collator

Beschreibung

Objektorientierter Stil

public Collator::getLocale ( int $type ) : string|false

Prozeduraler Stil

collator_get_locale ( Collator $object , int $type ) : string|false

Get collector locale name.

Parameter-Liste

object

Collator object.

type

You can choose between valid and actual locale ( Locale::VALID_LOCALE and Locale::ACTUAL_LOCALE, respectively).

Rückgabewerte

Real locale name from which the collation data comes. If the collator was instantiated from rules or an error occurred, returns bool false.

Beispiele

Beispiel #1 collator_get_locale() example

<?php
$coll    = collator_create( 'en_US_California' );
$res_val = collator_get_locale( $coll, Locale::VALID_LOCALE );
$res_act = collator_get_locale( $coll, Locale::ACTUAL_LOCALE );
printf( "Valid locale name: %s\nActual locale name: %s\n",
         $res_val, $res_act );
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Requested locale name: en_US_California
Valid locale name: en_US
Actual locale name: en

Siehe auch

  • collator_create() - Create a collator


Get sorting key for a string

  • « Collator::getLocale
  • Collator::getStrength »
  • PHP Manual
  • Collator
  • Get sorting key for a string

Collator::getSortKey

collator_get_sort_key

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 1.0.3)

Collator::getSortKey -- collator_get_sort_key — Get sorting key for a string

Beschreibung

Objektorientierter Stil

public Collator::getSortKey ( string $string ) : string|false

Prozeduraler Stil

collator_get_sort_key ( Collator $object , string $string ) : string|false

Return collation key for a string. Collation keys can be compared directly instead of strings, though are implementation specific and may change between ICU library versions. Sort keys are generally only useful in databases or other circumstances where function calls are extremely expensive.

Parameter-Liste

object

Collator object.

string

The string to produce the key from.

Rückgabewerte

Returns the collation key for the string, Im Fehlerfall wird false zurückgegeben..

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Changelog

Version | Beschreibung
5.3.15, 5.4.5 | Sort keys do no longer contain any NUL bytes.

Beispiele

Beispiel #1 collator_get_sort_key()example

<?php
$s1 = 'Hello';

$coll = collator_create('en_US');
$res  = collator_get_sort_key($coll, $s1);

echo bin2hex($res);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

3832404046010901dc08

Siehe auch

  • collator_sort() - Sort array using specified collator
  • collator_sort_with_sort_keys() - Sort array using specified collator and sort keys


Get current collation strength

  • « Collator::getSortKey
  • Collator::setAttribute »
  • PHP Manual
  • Collator
  • Get current collation strength

Collator::getStrength

collator_get_strength

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getStrength -- collator_get_strength — Get current collation strength

Beschreibung

Objektorientierter Stil

public Collator::getStrength ( ) : int

Prozeduraler Stil

collator_get_strength ( Collator $object ) : int

Parameter-Liste

object

Collator object.

Rückgabewerte

Returns current collation strength, or bool false on error.

Beispiele

Beispiel #1 collator_get_strength() example

<?php
$coll     = collator_create( 'en_US' );
$strength = collator_get_strength( $coll );
?>

Siehe auch

  • Collator constants
  • collator_set_strength() - Set collation strength
  • collator_get_attribute() - Get collation attribute value


Set collation attribute

  • « Collator::getStrength
  • Collator::setStrength »
  • PHP Manual
  • Collator
  • Set collation attribute

Collator::setAttribute

collator_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::setAttribute -- collator_set_attribute — Set collation attribute

Beschreibung

Objektorientierter Stil

public Collator::setAttribute ( int $attribute , int $value ) : bool

Prozeduraler Stil

collator_set_attribute ( Collator $object , int $attribute , int $value ) : bool

Parameter-Liste

object

Collator object.

attribute

Attribute.

value

Attribute value.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 collator_set_attribute() example

<?php
$coll = collator_create( 'en_CA' );
$val  = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if ($val === false) {
    // Handle error.
} elseif ($val === Collator::ON) {
    // Do something useful.
}
?>

Siehe auch

  • Collator constants
  • collator_get_attribute() - Get collation attribute value
  • collator_set_strength() - Set collation strength


Set collation strength

  • « Collator::setAttribute
  • Collator::sortWithSortKeys »
  • PHP Manual
  • Collator
  • Set collation strength

Collator::setStrength

collator_set_strength

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::setStrength -- collator_set_strength — Set collation strength

Beschreibung

Objektorientierter Stil

public Collator::setStrength ( int $strength ) : bool

Prozeduraler Stil

collator_set_strength ( Collator $object , int $strength ) : bool

The » ICU Collation Service supports many levels of comparison (named "Levels", but also known as "Strengths"). Having these categories enables ICU to sort strings precisely according to local conventions. However, by allowing the levels to be selectively employed, searching for a string in text can be performed with various matching conditions.

  1. Primary Level: Typically, this is used to denote differences between base characters (for example, "a" < "b"). It is the strongest difference. For example, dictionaries are divided into different sections by base character. This is also called the level1 strength.

  2. Secondary Level: Accents in the characters are considered secondary differences (for example, "as" < "às" < "at"). Other differences between letters can also be considered secondary differences, depending on the language. A secondary difference is ignored when there is a primary difference anywhere in the strings. This is also called the level2 strength.

    Hinweis:

    Note: In some languages (such as Danish), certain accented letters are considered to be separate base characters. In most languages, however, an accented letter only has a secondary difference from the unaccented version of that letter.

  3. Tertiary Level: Upper and lower case differences in characters are distinguished at the tertiary level (for example, "ao" < "Ao" < "aò"). In addition, a variant of a letter differs from the base form on the tertiary level (such as "A" and " "). Another example is the difference between large and small Kana. A tertiary difference is ignored when there is a primary or secondary difference anywhere in the strings. This is also called the level3 strength.

  4. Quaternary Level: When punctuation is ignored (see Ignoring Punctuations ) at level 13, an additional level can be used to distinguish words with and without punctuation (for example, "ab" < "a-b" < "aB"). This difference is ignored when there is a primary, secondary or tertiary difference. This is also known as the level4 strength. The quaternary level should only be used if ignoring punctuation is required or when processing Japanese text (see Hiragana processing).

  5. Identical Level: When all other levels are equal, the identical level is used as a tiebreaker. The Unicode code point values of the NFD form of each string are compared at this level, just in case there is no difference at levels 14. For example, Hebrew cantillation marks are only distinguished at this level. This level should be used sparingly, as only code point values differences between two strings is an extremely rare occurrence. Using this level substantially decreases the performance for both incremental comparison and sort key generation (as well as increasing the sort key length). It is also known as level 5 strength.

For example, people may choose to ignore accents or ignore accents and case when searching for text. Almost all characters are distinguished by the first three levels, and in most locales the default value is thus Tertiary. However, if Alternate is set to be Shifted, then the Quaternary strength can be used to break ties among whitespace, punctuation, and symbols that would otherwise be ignored. If very fine distinctions among characters are required, then the Identical strength can be used (for example, Identical Strength distinguishes between the Mathematical Bold Small A and the Mathematical Italic Small A.). However, using levels higher than Tertiary the Identical strength result in significantly longer sort keys, and slower string comparison performance for equal strings.

Parameter-Liste

object

Collator object.

strength

Strength to set.

Possible values are:

  • Collator::PRIMARY

  • Collator::SECONDARY

  • Collator::TERTIARY

  • Collator::QUATERNARY

  • Collator::IDENTICAL

  • Collator::DEFAULT_STRENGTH

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 collator_set_strength() example

<?php
$arr  = array( 'aò', 'Ao', 'ao' );
$coll = collator_create( 'en_US' );

// Sort array using default strength.
collator_sort( $coll, $arr );
var_export( $arr );

// Sort array using primary strength.
collator_set_strength( $coll, Collator::PRIMARY );
collator_sort( $coll, $arr );
var_export( $arr );
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array (
  0 => 'ao',
  1 => 'Ao',
  2 => 'aò',
)
array (
  0 => 'aò',
  1 => 'Ao',
  2 => 'ao',
)

Siehe auch

  • Collator constants
  • collator_get_strength() - Get current collation strength


Sort array using specified collator and sort keys

  • « Collator::setStrength
  • Collator::sort »
  • PHP Manual
  • Collator
  • Sort array using specified collator and sort keys

Collator::sortWithSortKeys

collator_sort_with_sort_keys

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::sortWithSortKeys -- collator_sort_with_sort_keys — Sort array using specified collator and sort keys

Beschreibung

Objektorientierter Stil

public Collator::sortWithSortKeys ( array &$array ) : bool

Prozeduraler Stil

collator_sort_with_sort_keys ( Collator $object , array &$array ) : bool

Similar to collator_sort() but uses ICU sorting keys produced by ucol_getSortKey() to gain more speed on large arrays.

Parameter-Liste

object

Collator object.

array

Array of strings to sort

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 collator_sort_with_sort_keys() example

<?php
$arr  = array( 'Köpfe', 'Kypper', 'Kopfe' );
$coll = collator_create( 'sv' );

collator_sort_with_sort_keys( $coll, $arr );
var_export( $arr );
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array (
  0 => 'Kopfe',
  1 => 'Kypper',
  2 => 'Köpfe',
)

Siehe auch

  • Collator constants
  • collator_sort() - Sort array using specified collator
  • collator_asort() - Sort array maintaining index association


Sort array using specified collator

  • « Collator::sortWithSortKeys
  • NumberFormatter »
  • PHP Manual
  • Collator
  • Sort array using specified collator

Collator::sort

collator_sort

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::sort -- collator_sort — Sort array using specified collator

Beschreibung

Objektorientierter Stil

public Collator::sort ( array &$array , int $flags = Collator::SORT_REGULAR ) : bool

Prozeduraler Stil

collator_sort ( Collator $object , array &$array , int $flags = Collator::SORT_REGULAR ) : bool

This function sorts an array according to current locale rules.

Equivalent to standard PHP sort() .

Parameter-Liste

object

Collator object.

array

Array of strings to sort.

flags

Optional sorting type, one of the following:

  • Collator::SORT_REGULAR - compare items normally (don't change types)

  • Collator::SORT_NUMERIC - compare items numerically

  • Collator::SORT_STRING - compare items as strings

Default sorting type is Collator::SORT_REGULAR. It is also used if an invalid flags value has been specified.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 collator_sort() example

<?php
$coll = collator_create( 'en_US' );
$arr  = array( 'at', 'às', 'as' );

var_export( $arr );
collator_sort( $coll, $arr );
var_export( $arr );
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array (
  0 => 'at',
  1 => 'às',
  2 => 'as',
)array (
  0 => 'as',
  1 => 'às',
  2 => 'at',
)

Siehe auch

  • Collator constants
  • collator_asort() - Sort array maintaining index association
  • collator_sort_with_sort_keys() - Sort array using specified collator and sort keys


The NumberFormatter class

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Einführung

Programs store and operate on numbers using a locale-independent binary representation. When displaying or printing a number it is converted to a locale-specific string. For example, the number 12345.67 is "12,345.67" in the US, "12 345,67" in France and "12.345,67" in Germany.

By invoking the methods provided by the NumberFormatter class, you can format numbers, currencies, and percentages according to the specified or default locale. NumberFormatter is locale-sensitive so you need to create a new NumberFormatter for each locale. NumberFormatter methods format primitive-type numbers, such as double and output the number as a locale-specific string.

For currencies you can use currency format type to create a formatter that returns a string with the formatted number and the appropriate currency sign. Of course, the NumberFormatter class is unaware of exchange rates so, the number output is the same regardless of the specified currency. This means that the same number has different monetary values depending on the currency locale. If the number is 9988776.65 the results will be:

  • 9 988 776,65 € in France
  • 9.988.776,65 € in Germany
  • $9,988,776.65 in the United States

In order to format percentages, create a locale-specific formatter with percentage format type. With this formatter, a decimal fraction such as 0.75 is displayed as 75%.

For more complex formatting, like spelled-out numbers, the rule-based number formatters are used.

Klassenbeschreibung

NumberFormatter {
/* Methoden */
public __construct ( string $locale , int $style , string $pattern = ? )
public static create ( string $locale , int $style , string $pattern = ? ) : NumberFormatter
public formatCurrency ( float $value , string $currency ) : string|false
public format ( int|float $value , int $type = ? ) : string
public getAttribute ( int $attr ) : int
public getErrorCode ( ) : int
public getErrorMessage ( ) : string
public getLocale ( int $type = ? ) : string
public getPattern ( ) : string
public getSymbol ( int $attr ) : string
public getTextAttribute ( int $attr ) : string
public parseCurrency ( string $value , string &$currency , int &$position = ? ) : float
public parse ( string $value , int $type = ? , int &$position = ? ) : mixed
public setAttribute ( int $attr , int $value ) : bool
public setPattern ( string $pattern ) : bool
public setSymbol ( int $attr , string $value ) : bool
public setTextAttribute ( int $attr , string $value ) : bool
}

Vordefinierte Konstanten

These styles are used by the numfmt_create() to define the type of the formatter.

NumberFormatter::PATTERN_DECIMAL (int)
Decimal format defined by pattern
NumberFormatter::DECIMAL (int)
Decimal format
NumberFormatter::CURRENCY (int)
Currency format
NumberFormatter::PERCENT (int)
Percent format
NumberFormatter::SCIENTIFIC (int)
Scientific format
NumberFormatter::SPELLOUT (int)
Spellout rule-based format
NumberFormatter::ORDINAL (int)
Ordinal rule-based format
NumberFormatter::DURATION (int)
Duration rule-based format
NumberFormatter::PATTERN_RULEBASED (int)
Rule-based format defined by pattern
NumberFormatter::CURRENCY_ACCOUNTING (int)
Currency format for accounting, e.g., ($3.00) for negative currency amount instead of -$3.00. Available as of PHP 7.4.1 and ICU 53.
NumberFormatter::DEFAULT_STYLE (int)
Default format for the locale
NumberFormatter::IGNORE (int)
Alias for PATTERN_DECIMAL

These constants define how the numbers are parsed or formatted. They should be used as arguments to numfmt_format() and numfmt_parse().

NumberFormatter::TYPE_DEFAULT (int)
Derive the type from variable type
NumberFormatter::TYPE_INT32 (int)
Format/parse as 32-bit integer
NumberFormatter::TYPE_INT64 (int)
Format/parse as 64-bit integer
NumberFormatter::TYPE_DOUBLE (int)
Format/parse as floating point value
NumberFormatter::TYPE_CURRENCY (int)
Format/parse as currency value

Number format attribute used by numfmt_get_attribute() and numfmt_set_attribute().

NumberFormatter::PARSE_INT_ONLY (int)
Parse integers only.
NumberFormatter::GROUPING_USED (int)
Use grouping separator.
NumberFormatter::DECIMAL_ALWAYS_SHOWN (int)
Always show decimal point.
NumberFormatter::MAX_INTEGER_DIGITS (int)
Maximum integer digits.
NumberFormatter::MIN_INTEGER_DIGITS (int)
Minimum integer digits.
NumberFormatter::INTEGER_DIGITS (int)
Integer digits.
NumberFormatter::MAX_FRACTION_DIGITS (int)
Maximum fraction digits.
NumberFormatter::MIN_FRACTION_DIGITS (int)
Minimum fraction digits.
NumberFormatter::FRACTION_DIGITS (int)
Fraction digits.
NumberFormatter::MULTIPLIER (int)
Multiplier.
NumberFormatter::GROUPING_SIZE (int)
Grouping size.
NumberFormatter::ROUNDING_MODE (int)
Rounding Mode.
NumberFormatter::ROUNDING_INCREMENT (int)
Rounding increment.
NumberFormatter::FORMAT_WIDTH (int)
The width to which the output of format() is padded.
NumberFormatter::PADDING_POSITION (int)
The position at which padding will take place. See pad position constants for possible argument values.
NumberFormatter::SECONDARY_GROUPING_SIZE (int)
Secondary grouping size.
NumberFormatter::SIGNIFICANT_DIGITS_USED (int)
Use significant digits.
NumberFormatter::MIN_SIGNIFICANT_DIGITS (int)
Minimum significant digits.
NumberFormatter::MAX_SIGNIFICANT_DIGITS (int)
Maximum significant digits.
NumberFormatter::LENIENT_PARSE (int)
Lenient parse mode used by rule-based formats.

Number format text attribute used by numfmt_get_text_attribute() and numfmt_set_text_attribute().

NumberFormatter::POSITIVE_PREFIX (int)
Positive prefix.
NumberFormatter::POSITIVE_SUFFIX (int)
Positive suffix.
NumberFormatter::NEGATIVE_PREFIX (int)
Negative prefix.
NumberFormatter::NEGATIVE_SUFFIX (int)
Negative suffix.
NumberFormatter::PADDING_CHARACTER (int)
The character used to pad to the format width.
NumberFormatter::CURRENCY_CODE (int)
The ISO currency code.
NumberFormatter::DEFAULT_RULESET (int)
The default rule set. This is only available with rule-based formatters.
NumberFormatter::PUBLIC_RULESETS (int)
The public rule sets. This is only available with rule-based formatters. This is a read-only attribute. The public rulesets are returned as a single string, with each ruleset name delimited by ';' (semicolon).

Number format symbols used by numfmt_get_symbol() and numfmt_set_symbol().

NumberFormatter::DECIMAL_SEPARATOR_SYMBOL (int)
The decimal separator.
NumberFormatter::GROUPING_SEPARATOR_SYMBOL (int)
The grouping separator.
NumberFormatter::PATTERN_SEPARATOR_SYMBOL (int)
The pattern separator.
NumberFormatter::PERCENT_SYMBOL (int)
The percent sign.
NumberFormatter::ZERO_DIGIT_SYMBOL (int)
Zero.
NumberFormatter::DIGIT_SYMBOL (int)
Character representing a digit in the pattern.
NumberFormatter::MINUS_SIGN_SYMBOL (int)
The minus sign.
NumberFormatter::PLUS_SIGN_SYMBOL (int)
The plus sign.
NumberFormatter::CURRENCY_SYMBOL (int)
The currency symbol.
NumberFormatter::INTL_CURRENCY_SYMBOL (int)
The international currency symbol.
NumberFormatter::MONETARY_SEPARATOR_SYMBOL (int)
The monetary separator.
NumberFormatter::EXPONENTIAL_SYMBOL (int)
The exponential symbol.
NumberFormatter::PERMILL_SYMBOL (int)
Per mill symbol.
NumberFormatter::PAD_ESCAPE_SYMBOL (int)
Escape padding character.
NumberFormatter::INFINITY_SYMBOL (int)
Infinity symbol.
NumberFormatter::NAN_SYMBOL (int)
Not-a-number symbol.
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL (int)
Significant digit symbol.
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL (int)
The monetary grouping separator.

Rounding mode values used by numfmt_get_attribute()
and numfmt_set_attribute() with
NumberFormatter::ROUNDING_MODE attribute.

NumberFormatter::ROUND_CEILING (int)
Rounding mode to round towards positive infinity.
NumberFormatter::ROUND_DOWN (int)
Rounding mode to round towards zero.
NumberFormatter::ROUND_FLOOR (int)
Rounding mode to round towards negative infinity.
NumberFormatter::ROUND_HALFDOWN (int)
Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round down.
NumberFormatter::ROUND_HALFEVEN (int)
Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in which case, round towards the even neighbor.
NumberFormatter::ROUND_HALFUP (int)
Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up.
NumberFormatter::ROUND_UP (int)
Rounding mode to round away from zero.

Pad position values used by numfmt_get_attribute()
and numfmt_set_attribute() with
NumberFormatter::PADDING_POSITION attribute.

NumberFormatter::PAD_AFTER_PREFIX (int)
Pad characters inserted after the prefix.
NumberFormatter::PAD_AFTER_SUFFIX (int)
Pad characters inserted after the suffix.
NumberFormatter::PAD_BEFORE_PREFIX (int)
Pad characters inserted before the prefix.
NumberFormatter::PAD_BEFORE_SUFFIX (int)
Pad characters inserted before the suffix.

Siehe auch

  • » ICU formatting documentation
  • » ICU number formatters
  • » ICU decimal formatters
  • » ICU rule-based number formatters

Inhaltsverzeichnis

  • NumberFormatter::create — Create a number formatter
  • NumberFormatter::formatCurrency — Format a currency value
  • NumberFormatter::format — Format a number
  • NumberFormatter::getAttribute — Get an attribute
  • NumberFormatter::getErrorCode — Get formatter's last error code
  • NumberFormatter::getErrorMessage — Get formatter's last error message
  • NumberFormatter::getLocale — Get formatter locale
  • NumberFormatter::getPattern — Get formatter pattern
  • NumberFormatter::getSymbol — Get a symbol value
  • NumberFormatter::getTextAttribute — Get a text attribute
  • NumberFormatter::parseCurrency — Parse a currency number
  • NumberFormatter::parse — Parse a number
  • NumberFormatter::setAttribute — Set an attribute
  • NumberFormatter::setPattern — Set formatter pattern
  • NumberFormatter::setSymbol — Set a symbol value
  • NumberFormatter::setTextAttribute — Set a text attribute


Create a number formatter

  • « NumberFormatter
  • NumberFormatter::formatCurrency »
  • PHP Manual
  • NumberFormatter
  • Create a number formatter

NumberFormatter::create

numfmt_create

NumberFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::create -- numfmt_create -- NumberFormatter::__construct — Create a number formatter

Beschreibung

Objektorientierter Stil (method)

public static NumberFormatter::create ( string $locale , int $style , string $pattern = ? ) : NumberFormatter

Prozeduraler Stil

numfmt_create ( string $locale , int $style , string $pattern = ? ) : NumberFormatter

Objektorientierter Stil (constructor):

public NumberFormatter::__construct ( string $locale , int $style , string $pattern = ? )

Creates a number formatter.

Parameter-Liste

locale

Locale in which the number would be formatted (locale name, e.g. en_CA).

style

Style of the formatting, one of the format style constants. If NumberFormatter::PATTERN_DECIMAL or NumberFormatter::PATTERN_RULEBASED is passed then the number format is opened using the given pattern, which must conform to the syntax described in » ICU DecimalFormat documentation or » ICU RuleBasedNumberFormat documentation, respectively.

pattern

Pattern string if the chosen style requires a pattern.

Rückgabewerte

Returns NumberFormatter object or false on error.

Beispiele

Beispiel #1 numfmt_create() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
$fmt = numfmt_create( 'it', NumberFormatter::SPELLOUT );
echo numfmt_format($fmt, 1142)."\n";
?>

Beispiel #2 NumberFormatter::create() example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo $fmt->format(1234567.891234567890000)."\n";
$fmt = new NumberFormatter( 'it', NumberFormatter::SPELLOUT );
echo $fmt->format(1142)."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1.234.567,891
millicentoquarantadue

Siehe auch

  • numfmt_format() - Format a number
  • numfmt_parse() - Parse a number


Format a currency value

  • « NumberFormatter::create
  • NumberFormatter::format »
  • PHP Manual
  • NumberFormatter
  • Format a currency value

NumberFormatter::formatCurrency

numfmt_format_currency

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::formatCurrency -- numfmt_format_currency — Format a currency value

Beschreibung

Objektorientierter Stil

public NumberFormatter::formatCurrency ( float $value , string $currency ) : string|false

Prozeduraler Stil

numfmt_format_currency ( NumberFormatter $fmt , float $value , string $currency ) : string|false

Format the currency value according to the formatter rules.

Parameter-Liste

fmt

NumberFormatter object.

value

The numeric currency value.

currency

The 3-letter ISO 4217 currency code indicating the currency to use.

Rückgabewerte

String representing the formatted currency value, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 numfmt_format_currency() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89?.

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_format() - Format a number
  • numfmt_parse_currency() - Parse a currency number


Format a number

  • « NumberFormatter::formatCurrency
  • NumberFormatter::getAttribute »
  • PHP Manual
  • NumberFormatter
  • Format a number

NumberFormatter::format

numfmt_format

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::format -- numfmt_format — Format a number

Beschreibung

Objektorientierter Stil

public NumberFormatter::format ( int|float $value , int $type = ? ) : string

Prozeduraler Stil

numfmt_format ( NumberFormatter $fmt , int|float $value , int $type = ? ) : string

Format a numeric value according to the formatter rules.

Parameter-Liste

fmt

NumberFormatter object.

value

The value to format. Can be int or float, other values will be converted to a numeric value.

type

The formatting type to use.

Rückgabewerte

Returns the string containing formatted value, or false on error.

Beispiele

Beispiel #1 numfmt_format() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_format($fmt))) {
    report_error("Formatter error");
}
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
    report_error("Formatter error");
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1.234.567,891

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_format_currency() - Format a currency value
  • numfmt_parse() - Parse a number


Get an attribute

  • « NumberFormatter::format
  • NumberFormatter::getErrorCode »
  • PHP Manual
  • NumberFormatter
  • Get an attribute

NumberFormatter::getAttribute

numfmt_get_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getAttribute -- numfmt_get_attribute — Get an attribute

Beschreibung

Objektorientierter Stil

public NumberFormatter::getAttribute ( int $attr ) : int

Prozeduraler Stil

numfmt_get_attribute ( NumberFormatter $fmt , int $attr ) : int

Get a numeric attribute associated with the formatter. An example of a numeric attribute is the number of integer digits the formatter will produce.

Parameter-Liste

fmt

NumberFormatter object.

attr

Attribute specifier - one of the numeric attribute constants.

Rückgabewerte

Return attribute value on success, or false on error.

Beispiele

Beispiel #1 numfmt_get_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Digits: 3
1.234.567,891
Digits: 2
1.234.567,89

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_get_text_attribute() - Get a text attribute
  • numfmt_set_attribute() - Set an attribute


Get formatter's last error code

  • « NumberFormatter::getAttribute
  • NumberFormatter::getErrorMessage »
  • PHP Manual
  • NumberFormatter
  • Get formatter's last error code

NumberFormatter::getErrorCode

numfmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getErrorCode -- numfmt_get_error_code — Get formatter's last error code

Beschreibung

Objektorientierter Stil

public NumberFormatter::getErrorCode ( ) : int

Prozeduraler Stil

numfmt_get_error_code ( NumberFormatter $fmt ) : int

Get error code from the last function performed by the formatter.

Parameter-Liste

fmt

NumberFormatter object.

Rückgabewerte

Returns error code from last formatter call.

Beispiele

Beispiel #1 numfmt_get_error_code() example

<?php
$fmt  = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_get_error_code($fmt))) {
    report_error("Formatter error");
}
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
    report_error("Formatter error");
}
?>

Siehe auch

  • numfmt_get_error_message() - Get formatter's last error message
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure


Get formatter's last error message

  • « NumberFormatter::getErrorCode
  • NumberFormatter::getLocale »
  • PHP Manual
  • NumberFormatter
  • Get formatter's last error message

NumberFormatter::getErrorMessage

numfmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getErrorMessage -- numfmt_get_error_message — Get formatter's last error message

Beschreibung

Objektorientierter Stil

public NumberFormatter::getErrorMessage ( ) : string

Prozeduraler Stil

numfmt_get_error_message ( NumberFormatter $fmt ) : string

Get error message from the last function performed by the formatter.

Parameter-Liste

fmt

NumberFormatter object.

Rückgabewerte

Returns error message from last formatter call.

Beispiele

Beispiel #1 numfmt_get_error_message() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
var_dump(numfmt_get_error_message($fmt));
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
var_dump(numfmt_get_error_message($fmt));
?>

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure


Get formatter locale

  • « NumberFormatter::getErrorMessage
  • NumberFormatter::getPattern »
  • PHP Manual
  • NumberFormatter
  • Get formatter locale

NumberFormatter::getLocale

numfmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getLocale -- numfmt_get_locale — Get formatter locale

Beschreibung

Objektorientierter Stil

public NumberFormatter::getLocale ( int $type = ? ) : string

Prozeduraler Stil

numfmt_get_locale ( NumberFormatter $fmt , int $type = ? ) : string

Get formatter locale name.

Parameter-Liste

fmt

NumberFormatter object.

type

You can choose between valid and actual locale ( Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, respectively). The default is the actual locale.

Rückgabewerte

The locale name used to create the formatter.

Beispiele

Beispiel #1 numfmt_get_locale() example

<?php
$req     = 'fr_FR_PARIS';
$fmt     = numfmt_create( $req,  NumberFormatter::DECIMAL);
$res_val = numfmt_get_locale( $fmt, Locale::VALID_LOCALE );
$res_act = numfmt_get_locale( $fmt, Locale::ACTUAL_LOCALE );
printf( "Requested locale name: %s\nValid locale name: %s\nActual locale name: %s\n",
         $req, $res_val, $res_act );
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Requested locale name: fr_FR_PARIS
Valid locale name: fr_FR
Actual locale name: fr

Siehe auch

  • numfmt_create() - Create a number formatter
  • numfmt_get_error_code() - Get formatter's last error code


Get formatter pattern

  • « NumberFormatter::getLocale
  • NumberFormatter::getSymbol »
  • PHP Manual
  • NumberFormatter
  • Get formatter pattern

NumberFormatter::getPattern

numfmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getPattern -- numfmt_get_pattern — Get formatter pattern

Beschreibung

Objektorientierter Stil

public NumberFormatter::getPattern ( ) : string

Prozeduraler Stil

numfmt_get_pattern ( NumberFormatter $fmt ) : string

Extract pattern used by the formatter.

Parameter-Liste

fmt

NumberFormatter object.

Rückgabewerte

Pattern string that is used by the formatter, or false if an error happens.

Beispiele

Beispiel #1 numfmt_get_pattern() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Pattern: #,##0.###
1.234.567,891
Pattern: #0.# kg
1234567,9 kg

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_set_pattern() - Set formatter pattern
  • numfmt_create() - Create a number formatter


Get a symbol value

  • « NumberFormatter::getPattern
  • NumberFormatter::getTextAttribute »
  • PHP Manual
  • NumberFormatter
  • Get a symbol value

NumberFormatter::getSymbol

numfmt_get_symbol

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getSymbol -- numfmt_get_symbol — Get a symbol value

Beschreibung

Objektorientierter Stil

public NumberFormatter::getSymbol ( int $attr ) : string

Prozeduraler Stil

numfmt_get_symbol ( NumberFormatter $fmt , int $attr ) : string

Get a symbol associated with the formatter. The formatter uses symbols to represent the special locale-dependent characters in a number, for example the percent sign. This API is not supported for rule-based formatters.

Parameter-Liste

fmt

NumberFormatter object.

attr

Symbol specifier, one of the format symbol constants.

Rückgabewerte

The symbol string or false on error.

Beispiele

Beispiel #1 numfmt_get_symbol() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Sep: .
1.234.567,891
Sep: *
1*234*567,891

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_set_symbol() - Set a symbol value


Get a text attribute

  • « NumberFormatter::getSymbol
  • NumberFormatter::parseCurrency »
  • PHP Manual
  • NumberFormatter
  • Get a text attribute

NumberFormatter::getTextAttribute

numfmt_get_text_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getTextAttribute -- numfmt_get_text_attribute — Get a text attribute

Beschreibung

Objektorientierter Stil

public NumberFormatter::getTextAttribute ( int $attr ) : string

Prozeduraler Stil

numfmt_get_text_attribute ( NumberFormatter $fmt , int $attr ) : string

Get a text attribute associated with the formatter. An example of a text attribute is the suffix for positive numbers. If the formatter does not understand the attribute, U_UNSUPPORTED_ERROR error is produced. Rule-based formatters only understand NumberFormatter::DEFAULT_RULESET and NumberFormatter::PUBLIC_RULESETS.

Parameter-Liste

fmt

NumberFormatter object.

attr

Attribute specifier - one of the text attribute constants.

Rückgabewerte

Return attribute value on success, or false on error.

Beispiele

Beispiel #1 numfmt_get_text_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Prefix: -
-1.234.567,891
Prefix: MINUS
MINUS1.234.567,891

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_get_attribute() - Get an attribute
  • numfmt_set_text_attribute() - Set a text attribute


Parse a currency number

  • « NumberFormatter::getTextAttribute
  • NumberFormatter::parse »
  • PHP Manual
  • NumberFormatter
  • Parse a currency number

NumberFormatter::parseCurrency

numfmt_parse_currency

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::parseCurrency -- numfmt_parse_currency — Parse a currency number

Beschreibung

Objektorientierter Stil

public NumberFormatter::parseCurrency ( string $value , string &$currency , int &$position = ? ) : float

Prozeduraler Stil

numfmt_parse_currency ( NumberFormatter $fmt , string $value , string &$currency , int &$position = ? ) : float

Parse a string into a double and a currency using the current formatter.

Parameter-Liste

fmt

NumberFormatter object.

currency

Parameter to receive the currency name (3-letter ISO 4217 currency code).

position

Offset in the string at which to begin parsing. On return, this value will hold the offset at which parsing ended.

Rückgabewerte

The parsed numeric value or false on error.

Beispiele

Beispiel #1 numfmt_parse_currency() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89\xc2\xa0$";
echo "We have ".numfmt_parse_currency($fmt, $num, $curr)." in $curr\n";
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89\xc2\xa0$";
echo "We have ".$fmt->parseCurrency($num, $curr)." in $curr\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

We have 1234567.89 in USD

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_parse() - Parse a number
  • numfmt_format_currency() - Format a currency value


Parse a number

  • « NumberFormatter::parseCurrency
  • NumberFormatter::setAttribute »
  • PHP Manual
  • NumberFormatter
  • Parse a number

NumberFormatter::parse

numfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::parse -- numfmt_parse — Parse a number

Beschreibung

Objektorientierter Stil

public NumberFormatter::parse ( string $value , int $type = ? , int &$position = ? ) : mixed

Prozeduraler Stil

numfmt_parse ( NumberFormatter $fmt , string $value , int $type = ? , int &$position = ? ) : mixed

Parse a string into a number using the current formatter rules.

Parameter-Liste

fmt

NumberFormatter object.

type

The formatting type to use. By default, NumberFormatter::TYPE_DOUBLE is used.

position

Offset in the string at which to begin parsing. On return, this value will hold the offset at which parsing ended.

Rückgabewerte

The value of the parsed number or false on error.

Beispiele

Beispiel #1 numfmt_parse() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo numfmt_parse($fmt, $num)."\n";
echo numfmt_parse($fmt, $num, NumberFormatter::TYPE_INT32)."\n";
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo $fmt->parse($num)."\n";
echo $fmt->parse($num, NumberFormatter::TYPE_INT32)."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1234567.891
1234567

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_format() - Format a number
  • numfmt_parse_currency() - Parse a currency number


Set an attribute

  • « NumberFormatter::parse
  • NumberFormatter::setPattern »
  • PHP Manual
  • NumberFormatter
  • Set an attribute

NumberFormatter::setAttribute

numfmt_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setAttribute -- numfmt_set_attribute — Set an attribute

Beschreibung

Objektorientierter Stil

public NumberFormatter::setAttribute ( int $attr , int $value ) : bool

Prozeduraler Stil

numfmt_set_attribute ( NumberFormatter $fmt , int $attr , int $value ) : bool

Set a numeric attribute associated with the formatter. An example of a numeric attribute is the number of integer digits the formatter will produce.

Parameter-Liste

fmt

NumberFormatter object.

attr

Attribute specifier - one of the numeric attribute constants.

value

The attribute value.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 numfmt_set_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Digits: 3
1.234.567,891
Digits: 2
1.234.567,89

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_get_attribute() - Get an attribute
  • numfmt_set_text_attribute() - Set a text attribute


Set formatter pattern

  • « NumberFormatter::setAttribute
  • NumberFormatter::setSymbol »
  • PHP Manual
  • NumberFormatter
  • Set formatter pattern

NumberFormatter::setPattern

numfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setPattern -- numfmt_set_pattern — Set formatter pattern

Beschreibung

Objektorientierter Stil

public NumberFormatter::setPattern ( string $pattern ) : bool

Prozeduraler Stil

numfmt_set_pattern ( NumberFormatter $fmt , string $pattern ) : bool

Set the pattern used by the formatter. Can not be used on a rule-based formatter.

Parameter-Liste

fmt

NumberFormatter object.

pattern

Pattern in syntax described in » ICU DecimalFormat documentation.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 numfmt_set_pattern() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Pattern: #,##0.###
1.234.567,891
Pattern: #0.# kg
1234567,9 kg

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_create() - Create a number formatter
  • numfmt_get_pattern() - Get formatter pattern


Set a symbol value

  • « NumberFormatter::setPattern
  • NumberFormatter::setTextAttribute »
  • PHP Manual
  • NumberFormatter
  • Set a symbol value

NumberFormatter::setSymbol

numfmt_set_symbol

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setSymbol -- numfmt_set_symbol — Set a symbol value

Beschreibung

Objektorientierter Stil

public NumberFormatter::setSymbol ( int $attr , string $value ) : bool

Prozeduraler Stil

numfmt_set_symbol ( NumberFormatter $fmt , int $attr , string $value ) : bool

Set a symbol associated with the formatter. The formatter uses symbols to represent the special locale-dependent characters in a number, for example the percent sign. This API is not supported for rule-based formatters.

Parameter-Liste

fmt

NumberFormatter object.

attr

Symbol specifier, one of the format symbol constants.

value

Text for the symbol.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 numfmt_set_symbol() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Sep: .
1.234.567,891
Sep: *
1*234*567,891

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_get_symbol() - Get a symbol value


Set a text attribute

  • « NumberFormatter::setSymbol
  • Locale »
  • PHP Manual
  • NumberFormatter
  • Set a text attribute

NumberFormatter::setTextAttribute

numfmt_set_text_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setTextAttribute -- numfmt_set_text_attribute — Set a text attribute

Beschreibung

Objektorientierter Stil

public NumberFormatter::setTextAttribute ( int $attr , string $value ) : bool

Prozeduraler Stil

numfmt_set_text_attribute ( NumberFormatter $fmt , int $attr , string $value ) : bool

Set a text attribute associated with the formatter. An example of a text attribute is the suffix for positive numbers. If the formatter does not understand the attribute, U_UNSUPPORTED_ERROR error is produced. Rule-based formatters only understand NumberFormatter::DEFAULT_RULESET and NumberFormatter::PUBLIC_RULESETS.

Parameter-Liste

fmt

NumberFormatter object.

attr

Attribute specifier - one of the text attribute constants.

value

Text for the attribute value.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 numfmt_set_text_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Beispiel #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Prefix: -
-1.234.567,891
Prefix: MINUS
MINUS1.234.567,891

Siehe auch

  • numfmt_get_error_code() - Get formatter's last error code
  • numfmt_get_text_attribute() - Get a text attribute
  • numfmt_set_attribute() - Set an attribute


The Locale class

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Einführung

A "Locale" is an identifier used to get language, culture, or regionally-specific behavior from an API. PHP locales are organized and identified the same way that the CLDR locales used by ICU (and many vendors of Unix-like operating systems, the Mac, Java, and so forth) use. Locales are identified using RFC 4646 language tags (which use hyphen, not underscore) in addition to the more traditional underscore-using identifiers. Unless otherwise noted the functions in this class are tolerant of both formats.

Examples of identifiers include:

  • en-US (English, United States)
  • zh-Hant-TW (Chinese, Traditional Script, Taiwan)
  • fr-CA, fr-FR (French for Canada and France respectively)

The Locale class (and related procedural functions) are used to interact with locale identifiers--to verify that an ID is well-formed, valid, etc. The extensions used by CLDR in UAX #35 (and inherited by ICU) are valid and used wherever they would be in ICU normally.

Locales cannot be instantiated as objects. All of the functions/methods provided are static.

The null or empty string obtains the "root" locale. The "root" locale is equivalent to "en_US_POSIX" in CLDR. Language tags (and thus locale identifiers) are case insensitive. There exists a canonicalization function to make case match the specification.

Klassenbeschreibung

Locale {
/* Methoden */
public static acceptFromHttp ( string $header ) : string
public static canonicalize ( string $locale ) : string
public static composeLocale ( array $subtags ) : string
public static filterMatches ( string $langtag , string $locale , bool $canonicalize = false ) : bool
public static getAllVariants ( string $locale ) : array
public static getDefault ( ) : string
public static getDisplayLanguage ( string $locale , string $in_locale = ? ) : string
public static getDisplayName ( string $locale , string $in_locale = ? ) : string
public static getDisplayRegion ( string $locale , string $in_locale = ? ) : string
public static getDisplayScript ( string $locale , string $in_locale = ? ) : string
public static getDisplayVariant ( string $locale , string $in_locale = ? ) : string
public static getKeywords ( string $locale ) : array
public static getPrimaryLanguage ( string $locale ) : string
public static getRegion ( string $locale ) : string
public static getScript ( string $locale ) : string
public static lookup ( array $langtag , string $locale , bool $canonicalize = false , string $default = ? ) : string
public static parseLocale ( string $locale ) : array
public static setDefault ( string $locale ) : bool
}

Vordefinierte Konstanten

Locale::DEFAULT_LOCALE (null)
Used as locale parameter with the methods of the various locale affected classes, such as NumberFormatter. This constant would make the methods to use default locale.

These constants describe the choice of the locale for the getLocale method of different classes.

Locale::ACTUAL_LOCALE (string)
This is locale the data actually comes from.
Locale::VALID_LOCALE (string)
This is the most specific locale supported by ICU.

These constants define how the Locales are parsed or composed. They should be used as keys in the argument array to locale_compose() and are returned from locale_parse() as keys of the returned associative array.

Locale::LANG_TAG (string)
Language subtag
Locale::EXTLANG_TAG (string)
Extended language subtag
Locale::SCRIPT_TAG (string)
Script subtag
Locale::REGION_TAG (string)
Region subtag
Locale::VARIANT_TAG (string)
Variant subtag
Locale::GRANDFATHERED_LANG_TAG (string)
Grandfathered Language subtag
Locale::PRIVATE_TAG (string)
Private subtag

Siehe auch

  • » RFC 4646 - Tags for Identifying Languages
  • » RFC 4647 - Matching of Language Tags
  • » Unicode CLDR Project:Common Locale Data Repository
  • » IANA Language Subtags Registry
  • » ICU User Guide - Locale
  • » ICU Locale api

Inhaltsverzeichnis

  • Locale::acceptFromHttp — Tries to find out best available locale based on HTTP "Accept-Language" header
  • Locale::canonicalize — Canonicalize the locale string
  • Locale::composeLocale — Returns a correctly ordered and delimited locale ID
  • Locale::filterMatches — Checks if a language tag filter matches with locale
  • Locale::getAllVariants — Gets the variants for the input locale
  • Locale::getDefault — Gets the default locale value from the INTL global 'default_locale'
  • Locale::getDisplayLanguage — Returns an appropriately localized display name for language of the inputlocale
  • Locale::getDisplayName — Returns an appropriately localized display name for the input locale
  • Locale::getDisplayRegion — Returns an appropriately localized display name for region of the input locale
  • Locale::getDisplayScript — Returns an appropriately localized display name for script of the input locale
  • Locale::getDisplayVariant — Returns an appropriately localized display name for variants of the input locale
  • Locale::getKeywords — Gets the keywords for the input locale
  • Locale::getPrimaryLanguage — Gets the primary language for the input locale
  • Locale::getRegion — Gets the region for the input locale
  • Locale::getScript — Gets the script for the input locale
  • Locale::lookup — Searches the language tag list for the best match to the language
  • Locale::parseLocale — Returns a key-value array of locale ID subtag elements
  • Locale::setDefault — Sets the default runtime locale


Tries to find out best available locale based on HTTP "Accept-Language" header

  • « Locale
  • Locale::canonicalize »
  • PHP Manual
  • Locale
  • Tries to find out best available locale based on HTTP "Accept-Language" header

Locale::acceptFromHttp

locale_accept_from_http

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::acceptFromHttp -- locale_accept_from_http — Tries to find out best available locale based on HTTP "Accept-Language" header

Beschreibung

Objektorientierter Stil

public static Locale::acceptFromHttp ( string $header ) : string

Prozeduraler Stil

locale_accept_from_http ( string $header ) : string

Tries to find locale that can satisfy the language list that is requested by the HTTP "Accept-Language" header.

Parameter-Liste

header

The string containing the "Accept-Language" header according to format in RFC 2616.

Rückgabewerte

The corresponding locale identifier.

Beispiele

Beispiel #1 locale_accept_from_http() example

<?php
$locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo $locale;
?>

Beispiel #2 OO example

<?php
$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo $locale;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

en_US

Siehe auch

  • locale_lookup() - Searches the language tag list for the best match to the language


Canonicalize the locale string

  • « Locale::acceptFromHttp
  • Locale::composeLocale »
  • PHP Manual
  • Locale
  • Canonicalize the locale string

Locale::canonicalize

locale_canonicalize

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::canonicalize -- locale_canonicalize — Canonicalize the locale string

Beschreibung

public static Locale::canonicalize ( string $locale ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

locale

Rückgabewerte


Returns a correctly ordered and delimited locale ID

  • « Locale::canonicalize
  • Locale::filterMatches »
  • PHP Manual
  • Locale
  • Returns a correctly ordered and delimited locale ID

Locale::composeLocale

locale_compose

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::composeLocale -- locale_compose — Returns a correctly ordered and delimited locale ID

Beschreibung

Objektorientierter Stil

public static Locale::composeLocale ( array $subtags ) : string

Prozeduraler Stil

locale_compose ( array $subtags ) : string

Returns a correctly ordered and delimited locale ID the keys identify the particular locale ID subtags, and the values are the associated subtag values.

Parameter-Liste

subtags

an array containing a list of key-value pairs, where the keys identify the particular locale ID subtags, and the values are the associated subtag values.

Hinweis:

The 'variant' and 'private' subtags can take maximum 15 values whereas 'extlang' can take maximum 3 values.e.g. Variants are allowed with the suffix ranging from 0-14. Hence the keys for the input array can be variant0, variant1, ...,variant14. In the returned locale id, the subtag is ordered by suffix resulting in variant0 followed by variant1 followed by variant2 and so on.

The 'variant', 'private' and 'extlang' multiple values can be specified both as array under specific key (e.g. 'variant') and as multiple numbered keys (e.g. 'variant0', 'variant1', etc.).

Rückgabewerte

The corresponding locale identifier.

Beispiele

Beispiel #1 locale_compose() example

<?php
$arr = array(
    'language'=>'en' ,
    'script'  =>'Hans' ,
    'region'  =>'CN',
    'variant2'=>'rozaj' ,
    'variant1'=>'nedis' ,
    'private1'=>'prv1' ,
    'private2'=>'prv2'
);
echo locale_compose( $arr );
?>

Beispiel #2 OO example

<?php
$arr = array(
    'language'=>'en' ,
    'script'  =>'Hans' ,
    'region'  =>'CN',
    'variant2'=>'rozaj' ,
    'variant1'=>'nedis' ,
    'private1'=>'prv1' ,
    'private2'=>'prv2'
);
echo Locale::composeLocale( $arr );
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Locale: en_Hans_CN_nedis_rozaj_x_prv1_prv2

Siehe auch

  • locale_parse() - Returns a key-value array of locale ID subtag elements


Checks if a language tag filter matches with locale

  • « Locale::composeLocale
  • Locale::getAllVariants »
  • PHP Manual
  • Locale
  • Checks if a language tag filter matches with locale

Locale::filterMatches

locale_filter_matches

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::filterMatches -- locale_filter_matches — Checks if a language tag filter matches with locale

Beschreibung

Objektorientierter Stil

public static Locale::filterMatches ( string $langtag , string $locale , bool $canonicalize = false ) : bool

Prozeduraler Stil

locale_filter_matches ( string $langtag , string $locale , bool $canonicalize = false ) : bool

Checks if a $langtag filter matches with $locale according to RFC 4647's basic filtering algorithm

Parameter-Liste

langtag

The language tag to check

locale

The language range to check against

canonicalize

If true, the arguments will be converted to canonical form before matching.

Rückgabewerte

true if $locale matches $langtag false otherwise.

Beispiele

Beispiel #1 locale_filter_matches() example

<?php
echo (locale_filter_matches('de-DEVA','de-DE', false)) ? "Matches" : "Does not match";
echo '; ';
echo (locale_filter_matches('de-DE_1996','de-DE', false)) ? "Matches" : "Does not match";
?>

Beispiel #2 OO example

<?php
echo (Locale::filterMatches('de-DEVA','de-DE', false)) ? "Matches" : "Does not match";
echo '; ';
echo (Locale::filterMatches('de-DE-1996','de-DE', false)) ? "Matches" : "Does not match";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Does not match; Matches

Siehe auch

  • locale_lookup() - Searches the language tag list for the best match to the language


Gets the variants for the input locale

  • « Locale::filterMatches
  • Locale::getDefault »
  • PHP Manual
  • Locale
  • Gets the variants for the input locale

Locale::getAllVariants

locale_get_all_variants

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getAllVariants -- locale_get_all_variants — Gets the variants for the input locale

Beschreibung

Objektorientierter Stil

public static Locale::getAllVariants ( string $locale ) : array

Prozeduraler Stil

locale_get_all_variants ( string $locale ) : array

Gets the variants for the input locale

Parameter-Liste

locale

The locale to extract the variants from

Rückgabewerte

The array containing the list of all variants subtag for the locale or null if not present

Beispiele

Beispiel #1 locale_get_all_variants() example

<?php
$arr = locale_get_all_variants('sl_IT_NEDIS_ROJAZ_1901');
var_export( $arr );
?>

Beispiel #2 OO example

<?php
 $arr = Locale::getAllVariants('sl_IT_NEDIS_ROJAZ_1901');
 var_export( $arr );
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array (
    0 => 'NEDIS',
    1 => 'ROJAZ',
    2 => '1901',
)

Siehe auch

  • locale_get_primary_language() - Gets the primary language for the input locale
  • locale_get_script() - Gets the script for the input locale
  • locale_get_region() - Gets the region for the input locale


Gets the default locale value from the INTL global 'default_locale'

  • « Locale::getAllVariants
  • Locale::getDisplayLanguage »
  • PHP Manual
  • Locale
  • Gets the default locale value from the INTL global 'default_locale'

Locale::getDefault

locale_get_default

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDefault -- locale_get_default — Gets the default locale value from the INTL global 'default_locale'

Beschreibung

Objektorientierter Stil

public static Locale::getDefault ( ) : string

Prozeduraler Stil

locale_get_default ( ) : string

Gets the default locale value. At the PHP initialization this value is set to 'intl.default_locale' value from php.ini if that value exists or from ICU's function uloc_getDefault().

Parameter-Liste

Rückgabewerte

The current runtime locale

Beispiele

Beispiel #1 locale_get_default() example

<?php
ini_set('intl.default_locale', 'de-DE');
echo locale_get_default();
echo '; ';
locale_set_default('fr');
echo locale_get_default();
?>

Beispiel #2 OO example

<?php
ini_set('intl.default_locale', 'de-DE');
echo Locale::getDefault();
echo '; ';
Locale::setDefault('fr');
echo Locale::getDefault();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

de-DE; fr

Siehe auch

  • locale_set_default() - Sets the default runtime locale


Returns an appropriately localized display name for language of the inputlocale

  • « Locale::getDefault
  • Locale::getDisplayName »
  • PHP Manual
  • Locale
  • Returns an appropriately localized display name for language of the inputlocale

Locale::getDisplayLanguage

locale_get_display_language

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayLanguage -- locale_get_display_language — Returns an appropriately localized display name for language of the inputlocale

Beschreibung

Objektorientierter Stil

public static Locale::getDisplayLanguage ( string $locale , string $in_locale = ? ) : string

Prozeduraler Stil

locale_get_display_language ( string $locale , string $in_locale = ? ) : string

Returns an appropriately localized display name for language of the input locale. If is null then the default locale is used.

Parameter-Liste

locale

The locale to return a display language for

in_locale

Optional format locale to use to display the language name

Rückgabewerte

display name of the language for the $locale in the format appropriate for $in_locale.

Beispiele

Beispiel #1 locale_get_display_language() example

<?php
echo locale_get_display_language('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_language('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_language('sl-Latn-IT-nedis', 'de');
?>

Beispiel #2 OO example

<?php
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayLanguage('sl-Latn-IT-nedis', 'de');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Slovenian;
slov\xc3\xa8ne;
Slowenisch

Siehe auch

  • locale_get_display_name() - Returns an appropriately localized display name for the input locale
  • locale_get_display_script() - Returns an appropriately localized display name for script of the input locale
  • locale_get_display_region() - Returns an appropriately localized display name for region of the input locale
  • locale_get_display_variant() - Returns an appropriately localized display name for variants of the input locale


Returns an appropriately localized display name for the input locale

  • « Locale::getDisplayLanguage
  • Locale::getDisplayRegion »
  • PHP Manual
  • Locale
  • Returns an appropriately localized display name for the input locale

Locale::getDisplayName

locale_get_display_name

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayName -- locale_get_display_name — Returns an appropriately localized display name for the input locale

Beschreibung

Objektorientierter Stil

public static Locale::getDisplayName ( string $locale , string $in_locale = ? ) : string

Prozeduraler Stil

locale_get_display_name ( string $locale , string $in_locale = ? ) : string

Returns an appropriately localized display name for the input locale. If $locale is null then the default locale is used.

Parameter-Liste

locale

The locale to return a display name for.

in_locale

optional format locale

Rückgabewerte

Display name of the locale in the format appropriate for $in_locale.

Beispiele

Beispiel #1 locale_get_display_name() example

<?php
echo locale_get_display_name('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_name('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_name('sl-Latn-IT-nedis', 'de');
?>

Beispiel #2 OO example

<?php
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayName('sl-Latn-IT-nedis', 'de');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Slovenian (Latin, Italy, Natisone dialect);
slov\xc3\xa8ne (latin, Italie, dialecte de Natisone;
Slowenisch (Lateinisch, Italien, NEDIS)

Siehe auch

  • locale_get_display_language() - Returns an appropriately localized display name for language of the inputlocale
  • locale_get_display_script() - Returns an appropriately localized display name for script of the input locale
  • locale_get_display_region() - Returns an appropriately localized display name for region of the input locale
  • locale_get_display_variant() - Returns an appropriately localized display name for variants of the input locale


Returns an appropriately localized display name for region of the input locale

  • « Locale::getDisplayName
  • Locale::getDisplayScript »
  • PHP Manual
  • Locale
  • Returns an appropriately localized display name for region of the input locale

Locale::getDisplayRegion

locale_get_display_region

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayRegion -- locale_get_display_region — Returns an appropriately localized display name for region of the input locale

Beschreibung

Objektorientierter Stil

public static Locale::getDisplayRegion ( string $locale , string $in_locale = ? ) : string

Prozeduraler Stil

locale_get_display_region ( string $locale , string $in_locale = ? ) : string

Returns an appropriately localized display name for region of the input locale. If is null then the default locale is used.

Parameter-Liste

locale

The locale to return a display region for.

in_locale

Optional format locale to use to display the region name

Rückgabewerte

display name of the region for the $locale in the format appropriate for $in_locale.

Beispiele

Beispiel #1 locale_get_display_region() example

<?php
echo locale_get_display_region('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_region('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_region('sl-Latn-IT-nedis', 'de');
?>

Beispiel #2 OO example

<?php
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayRegion('sl-Latn-IT-nedis', 'de');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Italy;
Italie;
Italien

Siehe auch

  • locale_get_display_name() - Returns an appropriately localized display name for the input locale
  • locale_get_display_language() - Returns an appropriately localized display name for language of the inputlocale
  • locale_get_display_script() - Returns an appropriately localized display name for script of the input locale
  • locale_get_display_variant() - Returns an appropriately localized display name for variants of the input locale


Returns an appropriately localized display name for script of the input locale

  • « Locale::getDisplayRegion
  • Locale::getDisplayVariant »
  • PHP Manual
  • Locale
  • Returns an appropriately localized display name for script of the input locale

Locale::getDisplayScript

locale_get_display_script

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayScript -- locale_get_display_script — Returns an appropriately localized display name for script of the input locale

Beschreibung

Objektorientierter Stil

public static Locale::getDisplayScript ( string $locale , string $in_locale = ? ) : string

Prozeduraler Stil

locale_get_display_script ( string $locale , string $in_locale = ? ) : string

Returns an appropriately localized display name for script of the input locale. If is null then the default locale is used.

Parameter-Liste

locale

The locale to return a display script for

in_locale

Optional format locale to use to display the script name

Rückgabewerte

Display name of the script for the $locale in the format appropriate for $in_locale.

Beispiele

Beispiel #1 locale_get_display_script() example

<?php
echo locale_get_display_script('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_script('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_script('sl-Latn-IT-nedis', 'de');
?>

Beispiel #2 OO example

<?php
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayScript('sl-Latn-IT-nedis', 'de');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Latin;
latin;
Lateinisch

Siehe auch

  • locale_get_display_name() - Returns an appropriately localized display name for the input locale
  • locale_get_display_language() - Returns an appropriately localized display name for language of the inputlocale
  • locale_get_display_region() - Returns an appropriately localized display name for region of the input locale
  • locale_get_display_variant() - Returns an appropriately localized display name for variants of the input locale


Returns an appropriately localized display name for variants of the input locale

  • « Locale::getDisplayScript
  • Locale::getKeywords »
  • PHP Manual
  • Locale
  • Returns an appropriately localized display name for variants of the input locale

Locale::getDisplayVariant

locale_get_display_variant

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayVariant -- locale_get_display_variant — Returns an appropriately localized display name for variants of the input locale

Beschreibung

Objektorientierter Stil

public static Locale::getDisplayVariant ( string $locale , string $in_locale = ? ) : string

Prozeduraler Stil

locale_get_display_variant ( string $locale , string $in_locale = ? ) : string

Returns an appropriately localized display name for variants of the input locale. If is null then the default locale is used.

Parameter-Liste

locale

The locale to return a display variant for

in_locale

Optional format locale to use to display the variant name

Rückgabewerte

Display name of the variant for the $locale in the format appropriate for $in_locale.

Beispiele

Beispiel #1 locale_get_display_variant() example

<?php
echo locale_get_display_variant('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo locale_get_display_variant('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo locale_get_display_variant('sl-Latn-IT-nedis', 'de');
?>

Beispiel #2 OO example

<?php
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'en');
echo ";\n";
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'fr');
echo ";\n";
echo Locale::getDisplayVariant('sl-Latn-IT-nedis', 'de');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Natisone dialect;
dialecte de Natisone;
NEDIS

Siehe auch

  • locale_get_display_name() - Returns an appropriately localized display name for the input locale
  • locale_get_display_language() - Returns an appropriately localized display name for language of the inputlocale
  • locale_get_display_script() - Returns an appropriately localized display name for script of the input locale
  • locale_get_display_region() - Returns an appropriately localized display name for region of the input locale


Gets the keywords for the input locale

  • « Locale::getDisplayVariant
  • Locale::getPrimaryLanguage »
  • PHP Manual
  • Locale
  • Gets the keywords for the input locale

Locale::getKeywords

locale_get_keywords

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getKeywords -- locale_get_keywords — Gets the keywords for the input locale

Beschreibung

Objektorientierter Stil

public static Locale::getKeywords ( string $locale ) : array

Prozeduraler Stil

locale_get_keywords ( string $locale ) : array

Gets the keywords for the input locale.

Parameter-Liste

locale

The locale to extract the keywords from

Rückgabewerte

Associative array containing the keyword-value pairs for this locale

Beispiele

Beispiel #1 locale_get_keywords() example

<?php
$keywords_arr = locale_get_keywords('de_DE@currency=EUR;collation=PHONEBOOK');
if ($keywords_arr) {
    foreach ($keywords_arr as $key => $value) {
        echo "$key = $value\n";
    }
}
?>

Beispiel #2 OO example

<?php
$keywords_arr = Locale::getKeywords('de_DE@currency=EUR;collation=PHONEBOOK');
if ($keywords_arr) {
    foreach ($keywords_arr as $key => $value) {
        echo "$key = $value\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

collation = PHONEBOOK
currency = EUR

Siehe auch

  • locale_get_all_variants() - Gets the variants for the input locale


Gets the primary language for the input locale

  • « Locale::getKeywords
  • Locale::getRegion »
  • PHP Manual
  • Locale
  • Gets the primary language for the input locale

Locale::getPrimaryLanguage

locale_get_primary_language

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getPrimaryLanguage -- locale_get_primary_language — Gets the primary language for the input locale

Beschreibung

Objektorientierter Stil

public static Locale::getPrimaryLanguage ( string $locale ) : string

Prozeduraler Stil

locale_get_primary_language ( string $locale ) : string

Gets the primary language for the input locale

Parameter-Liste

locale

The locale to extract the primary language code from

Rückgabewerte

The language code associated with the language or null in case of error.

Beispiele

Beispiel #1 locale_get_primary_language() example

<?php
echo locale_get_primary_language('zh-Hant');
?>

Beispiel #2 OO example

<?php
echo Locale::getPrimaryLanguage('zh-Hant');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

zh

Siehe auch

  • locale_get_script() - Gets the script for the input locale
  • locale_get_region() - Gets the region for the input locale
  • locale_get_all_variants() - Gets the variants for the input locale


Gets the region for the input locale

  • « Locale::getPrimaryLanguage
  • Locale::getScript »
  • PHP Manual
  • Locale
  • Gets the region for the input locale

Locale::getRegion

locale_get_region

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getRegion -- locale_get_region — Gets the region for the input locale

Beschreibung

Objektorientierter Stil

public static Locale::getRegion ( string $locale ) : string

Prozeduraler Stil

locale_get_region ( string $locale ) : string

Gets the region for the input locale.

Parameter-Liste

locale

The locale to extract the region code from

Rückgabewerte

The region subtag for the locale or null if not present

Beispiele

Beispiel #1 locale_get_region() example

<?php
echo locale_get_region('de-CH-1901');
?>

Beispiel #2 OO example

<?php
echo Locale::getRegion('de-CH-1901');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

CH

Siehe auch

  • locale_get_primary_language() - Gets the primary language for the input locale
  • locale_get_script() - Gets the script for the input locale
  • locale_get_all_variants() - Gets the variants for the input locale


Gets the script for the input locale

  • « Locale::getRegion
  • Locale::lookup »
  • PHP Manual
  • Locale
  • Gets the script for the input locale

Locale::getScript

locale_get_script

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getScript -- locale_get_script — Gets the script for the input locale

Beschreibung

Objektorientierter Stil

public static Locale::getScript ( string $locale ) : string

Prozeduraler Stil

locale_get_script ( string $locale ) : string

Gets the script for the input locale.

Parameter-Liste

locale

The locale to extract the script code from

Rückgabewerte

The script subtag for the locale or null if not present

Beispiele

Beispiel #1 locale_get_script() example

<?php
echo locale_get_script('sr-Cyrl');
?>

Beispiel #2 OO example

<?php
echo Locale::getScript('sr-Cyrl');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Cyrl

Siehe auch

  • locale_get_primary_language() - Gets the primary language for the input locale
  • locale_get_region() - Gets the region for the input locale
  • locale_get_all_variants() - Gets the variants for the input locale


Searches the language tag list for the best match to the language

  • « Locale::getScript
  • Locale::parseLocale »
  • PHP Manual
  • Locale
  • Searches the language tag list for the best match to the language

Locale::lookup

locale_lookup

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::lookup -- locale_lookup — Searches the language tag list for the best match to the language

Beschreibung

Objektorientierter Stil

public static Locale::lookup ( array $langtag , string $locale , bool $canonicalize = false , string $default = ? ) : string

Prozeduraler Stil

locale_lookup ( array $langtag , string $locale , bool $canonicalize = false , string $default = ? ) : string

Searches the items in langtag for the best match to the language range specified in locale according to RFC 4647's lookup algorithm.

Parameter-Liste

langtag

An array containing a list of language tags to compare to locale. Maximum 100 items allowed.

locale

The locale to use as the language range when matching.

canonicalize

If true, the arguments will be converted to canonical form before matching.

default

The locale to use if no match is found.

Rückgabewerte

The closest matching language tag or default value.

Beispiele

Beispiel #1 locale_lookup() example

<?php
$arr = array(
    'de-DEVA',
    'de-DE-1996',
    'de',
    'de-De'
);
echo locale_lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>

Beispiel #2 OO example

<?php
$arr = array(
    'de-DEVA',
    'de-DE-1996',
    'de',
    'de-De'
);
echo Locale::lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

de_de_1996

Siehe auch

  • locale_filter_matches() - Checks if a language tag filter matches with locale


Returns a key-value array of locale ID subtag elements

  • « Locale::lookup
  • Locale::setDefault »
  • PHP Manual
  • Locale
  • Returns a key-value array of locale ID subtag elements

Locale::parseLocale

locale_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::parseLocale -- locale_parse — Returns a key-value array of locale ID subtag elements

Beschreibung

Objektorientierter Stil

public static Locale::parseLocale ( string $locale ) : array

Prozeduraler Stil

locale_parse ( string $locale ) : array

Returns a key-value array of locale ID subtag elements.

Parameter-Liste

locale

The locale to extract the subtag array from. Note: The 'variant' and 'private' subtags can take maximum 15 values whereas 'extlang' can take maximum 3 values.

Rückgabewerte

Returns an array containing a list of key-value pairs, where the keys identify the particular locale ID subtags, and the values are the associated subtag values. The array will be ordered as the locale id subtags e.g. in the locale id if variants are '-varX-varY-varZ' then the returned array will have variant0=>varX , variant1=>varY , variant2=>varZ

Returns null when the length of locale exceeds INTL_MAX_LOCALE_LEN.

Beispiele

Beispiel #1 locale_parse() example

<?php
$arr = locale_parse('sl-Latn-IT-nedis');
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}
?>

Beispiel #2 OO example

<?php
$arr = Locale::parseLocale('sl-Latn-IT-nedis');
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

language : sl , script : Latn , region : IT , variant0 : NEDIS ,

Siehe auch

  • locale_compose() - Returns a correctly ordered and delimited locale ID


Sets the default runtime locale

  • « Locale::parseLocale
  • Normalizer »
  • PHP Manual
  • Locale
  • Sets the default runtime locale

Locale::setDefault

locale_set_default

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::setDefault -- locale_set_default — Sets the default runtime locale

Beschreibung

Objektorientierter Stil

public static Locale::setDefault ( string $locale ) : bool

Prozeduraler Stil

locale_set_default ( string $locale ) : bool

Sets the default runtime locale to $locale. This changes the value of INTL global 'default_locale' locale identifier. UAX #35 extensions are accepted.

Parameter-Liste

locale

Is a BCP 47 compliant language tag.

Rückgabewerte

Returns true.

Beispiele

Beispiel #1 locale_set_default() example

<?php
locale_set_default('de-DE');
echo locale_get_default();
?>

Beispiel #2 OO example

<?php
Locale::setDefault('de-DE');
echo Locale::getDefault();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

de-DE

Siehe auch

  • locale_get_default() - Gets the default locale value from the INTL global 'default_locale'


The Normalizer class

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Einführung

Normalization is a process that involves transforming characters and sequences of characters into a formally-defined underlying representation. This process is most important when text needs to be compared for sorting and searching, but it is also used when storing text to ensure that the text is stored in a consistent representation.

The Unicode Consortium has defined a number of normalization forms reflecting the various needs of applications:

  • Normalization Form D (NFD) - Canonical Decomposition
  • Normalization Form C (NFC) - Canonical Decomposition followed by Canonical Composition
  • Normalization Form KD (NFKD) - Compatibility Decomposition
  • Normalization Form KC (NFKC) - Compatibility Decomposition followed by Canonical Composition
The different forms are defined in terms of a set of transformations on the text, transformations that are expressed by both an algorithm and a set of data files.

Klassenbeschreibung

Normalizer {
/* Methoden */
public static getRawDecomposition ( string $input ) : string
public static isNormalized ( string $input , int $form = Normalizer::FORM_C ) : bool
public static normalize ( string $input , int $form = Normalizer::FORM_C ) : string
}

Vordefinierte Konstanten

The following constants define the normalization form used by the normalizer:

Normalizer::FORM_C (int)
Normalization Form C (NFC) - Canonical Decomposition followed by Canonical Composition
Normalizer::FORM_D (int)
Normalization Form D (NFD) - Canonical Decomposition
Normalizer::FORM_KC (int)
Normalization Form KC (NFKC) - Compatibility Decomposition, followed by Canonical Composition
Normalizer::FORM_KD (int)
Normalization Form KD (NFKD) - Compatibility Decomposition
Normalizer::NONE (int)
No decomposition/composition
Normalizer::OPTION_DEFAULT (int)
Default normalization options

Siehe auch

  • » Unicode Normalization
  • » Unicode Normalization FAQ
  • » ICU User Guide - Normalization
  • » ICU API Reference - Normalization

Inhaltsverzeichnis

  • Normalizer::getRawDecomposition — Gets the Decomposition_Mapping property for the given UTF-8 encoded code point
  • Normalizer::isNormalized — Checks if the provided string is already in the specified normalization form
  • Normalizer::normalize — Normalizes the input provided and returns the normalized string


Gets the Decomposition_Mapping property for the given UTF-8 encoded code point

  • « Normalizer
  • Normalizer::isNormalized »
  • PHP Manual
  • Normalizer
  • Gets the Decomposition_Mapping property for the given UTF-8 encoded code point

Normalizer::getRawDecomposition

normalizer_get_raw_decomposition

(PHP 7 >= 7.3)

Normalizer::getRawDecomposition -- normalizer_get_raw_decomposition — Gets the Decomposition_Mapping property for the given UTF-8 encoded code point

Beschreibung

Objektorientierter Stil

public static Normalizer::getRawDecomposition ( string $input ) : string

Prozeduraler Stil

normalizer_get_raw_decomposition ( string $input ) : string

Gets the Decomposition_Mapping property, as specified in the Unicode Character Database (UCD), for the given UTF-8 encoded code point.

Parameter-Liste

input

The input string, which should be a single, UTF-8 encoded, code point.

Rückgabewerte

Returns a string containing the Decomposition_Mapping property, if present in the UCD.

Returns null if there is no Decomposition_Mapping property for the character.

Beispiele

Beispiel #1 Normalizer::getRawDecomposition() example

<?php

$result = "";
$strings = [
    "a",
    "\u{FFDA}",
    "\u{FDFA}",
    "",
    "aa",
    "\xF5",
];

foreach ($strings as $string) {
    $decomposition = Normalizer::getRawDecomposition($string);
    // $decomposition = normalizer_get_raw_decomposition($string); Procedural way

    $error_code = intl_get_error_code();
    $error_message = intl_get_error_message();

    $string_hex = bin2hex($string);
    $result .= "---------------------\n";

    if ($decomposition === null) {
        $result .= "'$string_hex' has no decomposition mapping\n" ;
    } else {
        $result .= "'$string_hex' has the decomposition mapping '" . bin2hex($decomposition) . "'\n" ;
    }

    $result .= "error info: '$error_message' ($error_code)\n";
}

echo $result;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

---------------------
'61' has no decomposition mapping
error info: 'U_ZERO_ERROR' (0)
---------------------
'efbf9a' has the decomposition mapping 'e385a1'
error info: 'U_ZERO_ERROR' (0)
---------------------
'efb7ba' has the decomposition mapping 'd8b5d984d98920d8a7d984d984d98720d8b9d984d98ad98720d988d8b3d984d985'
error info: 'U_ZERO_ERROR' (0)
---------------------
'' has no decomposition mapping
error info: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1)
---------------------
'6161' has no decomposition mapping
error info: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1)
---------------------
'f5' has no decomposition mapping
error info: 'Code point out of range: U_ILLEGAL_ARGUMENT_ERROR' (1)

Siehe auch

  • Normalizer::normalize() - Normalizes the input provided and returns the normalized string
  • Normalizer::isNormalized() - Checks if the provided string is already in the specified normalization form


Checks if the provided string is already in the specified normalization form

  • « Normalizer::getRawDecomposition
  • Normalizer::normalize »
  • PHP Manual
  • Normalizer
  • Checks if the provided string is already in the specified normalization form

Normalizer::isNormalized

normalizer_is_normalized

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Normalizer::isNormalized -- normalizer_is_normalized — Checks if the provided string is already in the specified normalization form

Beschreibung

Objektorientierter Stil

public static Normalizer::isNormalized ( string $input , int $form = Normalizer::FORM_C ) : bool

Prozeduraler Stil

normalizer_is_normalized ( string $input , int $form = Normalizer::FORM_C ) : bool

Checks if the provided string is already in the specified normalization form.

Parameter-Liste

input

The input string to normalize

form

One of the normalization forms.

Rückgabewerte

true if normalized, false otherwise or if there an error

Beispiele

Beispiel #1 normalizer_is_normalized() example

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_orig = 'A' . $char_combining_ring_above;
$char_norm = normalizer_normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo ( normalizer_is_normalized($char_orig, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
echo '; ';
echo ( normalizer_is_normalized($char_norm, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
?>

Beispiel #2 OO example

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_orig = 'A' . $char_combining_ring_above;
$char_norm = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo ( Normalizer::isNormalized($char_orig, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
echo '; ';
echo ( Normalizer::isNormalized($char_norm, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

not normalized; normalized

Siehe auch

  • normalizer_normalize() - Normalizes the input provided and returns the normalized string


Normalizes the input provided and returns the normalized string

  • « Normalizer::isNormalized
  • MessageFormatter »
  • PHP Manual
  • Normalizer
  • Normalizes the input provided and returns the normalized string

Normalizer::normalize

normalizer_normalize

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Normalizer::normalize -- normalizer_normalize — Normalizes the input provided and returns the normalized string

Beschreibung

Objektorientierter Stil

public static Normalizer::normalize ( string $input , int $form = Normalizer::FORM_C ) : string

Prozeduraler Stil

normalizer_normalize ( string $input , int $form = Normalizer::FORM_C ) : string

Normalizes the input provided and returns the normalized string

Parameter-Liste

input

The input string to normalize

form

One of the normalization forms.

Rückgabewerte

The normalized string or false if an error occurred.

Beispiele

Beispiel #1 normalizer_normalize() example

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_1 = normalizer_normalize( $char_A_ring, Normalizer::FORM_C );
$char_2 = normalizer_normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo urlencode($char_1);
echo ' ';
echo urlencode($char_2);
?>

Beispiel #2 OO example

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_1 = Normalizer::normalize( $char_A_ring, Normalizer::FORM_C );
$char_2 = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo urlencode($char_1);
echo ' ';
echo urlencode($char_2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

%C3%85 %C3%85

Siehe auch

  • normalizer_is_normalized() - Checks if the provided string is already in the specified normalization form


The MessageFormatter class

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Einführung

MessageFormatter is a concrete class that enables users to produce concatenated, language-neutral messages. The methods supplied in this class are used to build all the messages that are seen by end users.

The MessageFormatter class assembles messages from various fragments (such as text fragments, numbers, and dates) supplied by the program. Because of the MessageFormatter class, the program does not need to know the order of the fragments. The class uses the formatting specifications for the fragments to assemble them into a message that is contained in a single string within a resource bundle. For example, MessageFormatter enables you to print the phrase "Finished printing x out of y files..." in a manner that still allows for flexibility in translation.

Previously, an end user message was created as a sentence and handled as a string. This procedure created problems for localizers because the sentence structure, word order, number format and so on are very different from language to language. The language-neutral way to create messages keeps each part of the message separate and provides keys to the data. Using these keys, the MessageFormatter class can concatenate the parts of the message, localize them, and display a well-formed string to the end user.

MessageFormatter takes a set of objects, formats them, and then inserts the formatted strings into the pattern at the appropriate places. Choice formats can be used in conjunction with MessageFormatter to handle plurals, match numbers, and select from an array of items. Typically, the message format will come from resources and the arguments will be dynamically set at runtime.

Klassenbeschreibung

MessageFormatter {
/* Methoden */
public __construct ( string $locale , string $pattern )
public static create ( string $locale , string $pattern ) : MessageFormatter
public static formatMessage ( string $locale , string $pattern , array $args ) : string
public format ( array $args ) : string
public getErrorCode ( ) : int
public getErrorMessage ( ) : string
public getLocale ( ) : string
public getPattern ( ) : string
public static parseMessage ( string $locale , string $pattern , string $source ) : array
public parse ( string $value ) : array
public setPattern ( string $pattern ) : bool
}

Siehe auch

  • » ICU formatting documentation
  • » ICU message formatting description
  • » ICU message formatters
  • » ICU choice formatters

Inhaltsverzeichnis

  • MessageFormatter::create — Constructs a new Message Formatter
  • MessageFormatter::formatMessage — Quick format message
  • MessageFormatter::format — Format the message
  • MessageFormatter::getErrorCode — Get the error code from last operation
  • MessageFormatter::getErrorMessage — Get the error text from the last operation
  • MessageFormatter::getLocale — Get the locale for which the formatter was created
  • MessageFormatter::getPattern — Get the pattern used by the formatter
  • MessageFormatter::parseMessage — Quick parse input string
  • MessageFormatter::parse — Parse input string according to pattern
  • MessageFormatter::setPattern — Set the pattern used by the formatter


Constructs a new Message Formatter

  • « MessageFormatter
  • MessageFormatter::formatMessage »
  • PHP Manual
  • MessageFormatter
  • Constructs a new Message Formatter

MessageFormatter::create

MessageFormatter::__construct

msgfmt_create

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::create -- MessageFormatter::__construct -- msgfmt_create — Constructs a new Message Formatter

Beschreibung

Objektorientierter Stil (method)

public static MessageFormatter::create ( string $locale , string $pattern ) : MessageFormatter

Objektorientierter Stil (constructor):

public MessageFormatter::__construct ( string $locale , string $pattern )

Prozeduraler Stil

msgfmt_create ( string $locale , string $pattern ) : MessageFormatter

Constructs a new Message Formatter

Parameter-Liste

locale

The locale to use when formatting arguments

pattern

The pattern string to stick arguments into. The pattern uses an 'apostrophe-friendly' syntax; it is run through » umsg_autoQuoteApostrophe before being interpreted.

Rückgabewerte

The formatter object

Fehler/Exceptions

When invoked as constructor, on failure an IntlException is thrown.

Beispiele

Beispiel #1 msgfmt_create() example

<?php
$fmt = msgfmt_create("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Beispiel #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo $fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
echo $fmt->format(array(4560, 123, 4560/123));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum

Siehe auch

  • msgfmt_format() - Format the message
  • msgfmt_parse() - Parse input string according to pattern
  • msgfmt_get_error_code() - Get the error code from last operation
  • msgfmt_get_error_message() - Get the error text from the last operation


Quick format message

  • « MessageFormatter::create
  • MessageFormatter::format »
  • PHP Manual
  • MessageFormatter
  • Quick format message

MessageFormatter::formatMessage

msgfmt_format_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::formatMessage -- msgfmt_format_message — Quick format message

Beschreibung

Objektorientierter Stil

public static MessageFormatter::formatMessage ( string $locale , string $pattern , array $args ) : string

Prozeduraler Stil

msgfmt_format_message ( string $locale , string $pattern , array $args ) : string

Quick formatting function that formats the string without having to explicitly create the formatter object. Use this function when the format operation is done only once and does not need and parameters or state to be kept.

Parameter-Liste

locale

The locale to use for formatting locale-dependent parts

pattern

The pattern string to insert things into. The pattern uses an 'apostrophe-friendly' syntax; it is run through » umsg_autoQuoteApostrophe before being interpreted.

args

The array of values to insert into the format string

Rückgabewerte

The formatted pattern string or false if an error occurred

Beispiele

Beispiel #1 msgfmt_format_message() example

<?php
echo msgfmt_format_message("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo msgfmt_format_message("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
?>

Beispiel #2 OO example

<?php
echo MessageFormatter::formatMessage("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo MessageFormatter::formatMessage("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum

Siehe auch

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_parse() - Parse input string according to pattern
  • msgfmt_get_error_code() - Get the error code from last operation
  • msgfmt_get_error_message() - Get the error text from the last operation


Format the message

  • « MessageFormatter::formatMessage
  • MessageFormatter::getErrorCode »
  • PHP Manual
  • MessageFormatter
  • Format the message

MessageFormatter::format

msgfmt_format

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::format -- msgfmt_format — Format the message

Beschreibung

Objektorientierter Stil

public MessageFormatter::format ( array $args ) : string

Prozeduraler Stil

msgfmt_format ( MessageFormatter $fmt , array $args ) : string

Format the message by substituting the data into the format string according to the locale rules

Parameter-Liste

fmt

The message formatter

args

Arguments to insert into the format string

Rückgabewerte

The formatted string, or false if an error occurred

Beispiele

Beispiel #1 msgfmt_format() example

<?php
$fmt = msgfmt_create("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Beispiel #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo $fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
echo $fmt->format(array(4560, 123, 4560/123));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum

Siehe auch

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_parse() - Parse input string according to pattern
  • msgfmt_format_message() - Quick format message
  • msgfmt_get_error_code() - Get the error code from last operation
  • msgfmt_get_error_message() - Get the error text from the last operation


Get the error code from last operation

  • « MessageFormatter::format
  • MessageFormatter::getErrorMessage »
  • PHP Manual
  • MessageFormatter
  • Get the error code from last operation

MessageFormatter::getErrorCode

msgfmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getErrorCode -- msgfmt_get_error_code — Get the error code from last operation

Beschreibung

Objektorientierter Stil

public MessageFormatter::getErrorCode ( ) : int

Prozeduraler Stil

msgfmt_get_error_code ( MessageFormatter $fmt ) : int

Get the error code from last operation.

Parameter-Liste

fmt

The message formatter

Rückgabewerte

The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.

Siehe auch

  • msgfmt_get_error_message() - Get the error text from the last operation
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure


Get the error text from the last operation

  • « MessageFormatter::getErrorCode
  • MessageFormatter::getLocale »
  • PHP Manual
  • MessageFormatter
  • Get the error text from the last operation

MessageFormatter::getErrorMessage

msgfmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getErrorMessage -- msgfmt_get_error_message — Get the error text from the last operation

Beschreibung

Objektorientierter Stil

public MessageFormatter::getErrorMessage ( ) : string

Prozeduraler Stil

msgfmt_get_error_message ( MessageFormatter $fmt ) : string

Get the error text from the last operation.

Parameter-Liste

fmt

The message formatter

Rückgabewerte

Description of the last error.

Beispiele

Beispiel #1 msgfmt_get_error_message() example

<?php
$fmt = msgfmt_create("en_US", "{0, number} monkeys on {1, number} trees");
$str = msgfmt_format($fmt, array());
if(!$str) {
    echo "ERROR: ".msgfmt_get_error_message($fmt) . " (" . msgfmt_get_error_code($fmt) . ")\n";
}
?>

Beispiel #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0, number} monkeys on {1, number} trees");
$str = $fmt->format(array());
if(!$str) {
    echo "ERROR: ".$fmt->getErrorMessage() . " (" . $fmt->getErrorCode() . ")\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

ERROR: msgfmt_format: not enough parameters: U_ILLEGAL_ARGUMENT_ERROR (1)

Siehe auch

  • msgfmt_get_error_code() - Get the error code from last operation
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure


Get the locale for which the formatter was created

  • « MessageFormatter::getErrorMessage
  • MessageFormatter::getPattern »
  • PHP Manual
  • MessageFormatter
  • Get the locale for which the formatter was created

MessageFormatter::getLocale

msgfmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getLocale -- msgfmt_get_locale — Get the locale for which the formatter was created

Beschreibung

Objektorientierter Stil

public MessageFormatter::getLocale ( ) : string

Prozeduraler Stil

msgfmt_get_locale ( NumberFormatter $formatter ) : string

Get the locale for which the formatter was created.

Parameter-Liste

formatter

The formatter resource

Rückgabewerte

The locale name

Beispiele

Beispiel #1 msgfmt_get_locale() example

<?php
$fmt = msgfmt_create('en_US', "Number {0,number}");
echo msgfmt_get_locale($fmt);
?>

Beispiel #2 OO example

<?php
$fmt = new MessageFormatter('en_US', "Number {0,number}");
echo $fmt->getLocale();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

en_US

Siehe auch

  • msgfmt_create() - Constructs a new Message Formatter


Get the pattern used by the formatter

  • « MessageFormatter::getLocale
  • MessageFormatter::parseMessage »
  • PHP Manual
  • MessageFormatter
  • Get the pattern used by the formatter

MessageFormatter::getPattern

msgfmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getPattern -- msgfmt_get_pattern — Get the pattern used by the formatter

Beschreibung

Objektorientierter Stil

public MessageFormatter::getPattern ( ) : string

Prozeduraler Stil

msgfmt_get_pattern ( MessageFormatter $fmt ) : string

Get the pattern used by the formatter

Parameter-Liste

fmt

The message formatter

Rückgabewerte

The pattern string for this message formatter

Beispiele

Beispiel #1 msgfmt_get_pattern() example

<?php
$fmt = msgfmt_create( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatting result: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatted number: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

Beispiel #2 OO example

<?php
$fmt = new MessageFormatter( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatting result: " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatted number: " . $fmt->format(array(123, 456)) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Default pattern: '{0,number} monkeys on {1,number} trees'
Formatting result: 123 monkeys on 456 trees
New pattern: '{0,number} trees hosting {1,number} monkeys'
Formatted number: 123 trees hosting 456 monkeys

Siehe auch

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_set_pattern() - Set the pattern used by the formatter


Quick parse input string

  • « MessageFormatter::getPattern
  • MessageFormatter::parse »
  • PHP Manual
  • MessageFormatter
  • Quick parse input string

MessageFormatter::parseMessage

msgfmt_parse_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::parseMessage -- msgfmt_parse_message — Quick parse input string

Beschreibung

Objektorientierter Stil

public static MessageFormatter::parseMessage ( string $locale , string $pattern , string $source ) : array

Prozeduraler Stil

msgfmt_parse_message ( string $locale , string $pattern , string $value ) : array

Parses input string without explicitly creating the formatter object. Use this function when the format operation is done only once and does not need and parameters or state to be kept.

Parameter-Liste

locale

The locale to use for parsing locale-dependent parts

pattern

The pattern with which to parse the value.

source

The string to parse, conforming to the pattern.

Rückgabewerte

An array containing items extracted, or false on error

Beispiele

Beispiel #1 msgfmt_parse_message() example

<?php
$fmt = msgfmt_parse_message('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
                            "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($fmt);

$fmt = msgfmt_parse_message('de', "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum",
                            "4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum");
var_export($fmt);
?>

Beispiel #2 OO example

<?php
$fmt = MessageFormatter::parseMessage('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
                            "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($fmt);

$fmt = MessageFormatter::parseMessage('de', "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum",
                            "4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum");
var_export($fmt);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

Siehe auch

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_format_message() - Quick format message
  • msgfmt_parse() - Parse input string according to pattern


Parse input string according to pattern

  • « MessageFormatter::parseMessage
  • MessageFormatter::setPattern »
  • PHP Manual
  • MessageFormatter
  • Parse input string according to pattern

MessageFormatter::parse

msgfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::parse -- msgfmt_parse — Parse input string according to pattern

Beschreibung

Objektorientierter Stil

public MessageFormatter::parse ( string $value ) : array

Prozeduraler Stil

msgfmt_parse ( MessageFormatter $fmt , string $value ) : array

Parses input string and return any extracted items as an array.

Parameter-Liste

fmt

The message formatter

value

The string to parse

Rückgabewerte

An array containing the items extracted, or false on error

Beispiele

Beispiel #1 msgfmt_parse() example

<?php
$fmt = msgfmt_create('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
$res = msgfmt_parse($fmt, "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($res);

$fmt = msgfmt_create('de', "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
$res = msgfmt_parse($fmt, "4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum");
var_export($res);
?>

Beispiel #2 OO example

<?php
$fmt = new MessageFormatter('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
$res = $fmt->parse("4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($res);

$fmt = new MessageFormatter('de', "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum");
$res = $fmt->parse("4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum");
var_export($res);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

Siehe auch

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_format() - Format the message
  • msgfmt_parse_message() - Quick parse input string


Set the pattern used by the formatter

  • « MessageFormatter::parse
  • IntlCalendar »
  • PHP Manual
  • MessageFormatter
  • Set the pattern used by the formatter

MessageFormatter::setPattern

msgfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::setPattern -- msgfmt_set_pattern — Set the pattern used by the formatter

Beschreibung

Objektorientierter Stil

public MessageFormatter::setPattern ( string $pattern ) : bool

Prozeduraler Stil

msgfmt_set_pattern ( MessageFormatter $fmt , string $pattern ) : bool

Set the pattern used by the formatter

Parameter-Liste

fmt

The message formatter

pattern

The pattern string to use in this message formatter. The pattern uses an 'apostrophe-friendly' syntax; it is run through » umsg_autoQuoteApostrophe before being interpreted.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 msgfmt_set_pattern() example

<?php
$fmt = msgfmt_create( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatting result: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatted number: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

Beispiel #2 OO example

<?php
$fmt = new MessageFormatter( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatting result: " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatted number: " . $fmt->format(array(123, 456)) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Default pattern: '{0,number} monkeys on {1,number} trees'
Formatting result: 123 monkeys on 456 trees
New pattern: '{0,number} trees hosting {1,number} monkeys'
Formatted number: 123 trees hosting 456 monkeys

Siehe auch

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_get_pattern() - Get the pattern used by the formatter


The IntlCalendar class

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

Einführung

Klassenbeschreibung

IntlCalendar {
/* Konstanten */
const int FIELD_ERA = 0 ;
const int FIELD_YEAR = 1 ;
const int FIELD_MONTH = 2 ;
const int FIELD_WEEK_OF_YEAR = 3 ;
const int FIELD_WEEK_OF_MONTH = 4 ;
const int FIELD_DATE = 5 ;
const int FIELD_DAY_OF_YEAR = 6 ;
const int FIELD_DAY_OF_WEEK = 7 ;
const int FIELD_DAY_OF_WEEK_IN_MONTH = 8 ;
const int FIELD_AM_PM = 9 ;
const int FIELD_HOUR = 10 ;
const int FIELD_HOUR_OF_DAY = 11 ;
const int FIELD_MINUTE = 12 ;
const int FIELD_SECOND = 13 ;
const int FIELD_MILLISECOND = 14 ;
const int FIELD_ZONE_OFFSET = 15 ;
const int FIELD_DST_OFFSET = 16 ;
const int FIELD_YEAR_WOY = 17 ;
const int FIELD_DOW_LOCAL = 18 ;
const int FIELD_EXTENDED_YEAR = 19 ;
const int FIELD_JULIAN_DAY = 20 ;
const int FIELD_MILLISECONDS_IN_DAY = 21 ;
const int FIELD_IS_LEAP_MONTH = 22 ;
const int FIELD_FIELD_COUNT = 23 ;
const int FIELD_DAY_OF_MONTH = 5 ;
const int DOW_SUNDAY = 1 ;
const int DOW_MONDAY = 2 ;
const int DOW_TUESDAY = 3 ;
const int DOW_WEDNESDAY = 4 ;
const int DOW_THURSDAY = 5 ;
const int DOW_FRIDAY = 6 ;
const int DOW_SATURDAY = 7 ;
const int DOW_TYPE_WEEKDAY = 0 ;
const int DOW_TYPE_WEEKEND = 1 ;
const int DOW_TYPE_WEEKEND_OFFSET = 2 ;
const int DOW_TYPE_WEEKEND_CEASE = 3 ;
const int WALLTIME_FIRST = 1 ;
const int WALLTIME_LAST = 0 ;
const int WALLTIME_NEXT_VALID = 2 ;
/* Methoden */
public add ( int $field , int $amount ) : bool
public after ( IntlCalendar $other ) : bool
public before ( IntlCalendar $other ) : bool
public clear ( int $field = NULL ) : bool
private __construct ( )
public static createInstance ( mixed $timeZone = NULL , string $locale = "" ) : IntlCalendar
public equals ( IntlCalendar $other ) : bool
public fieldDifference ( float $when , int $field ) : int|false
public static fromDateTime ( mixed $dateTime ) : IntlCalendar
public get ( int $field ) : int
public getActualMaximum ( int $field ) : int|false
public getActualMinimum ( int $field ) : int|false
public static getAvailableLocales ( ) : array
public getDayOfWeekType ( int $dayOfWeek ) : int|false
public getErrorCode ( ) : int
public getErrorMessage ( ) : string
public getFirstDayOfWeek ( ) : int|false
public getGreatestMinimum ( int $field ) : int|false
public static getKeywordValuesForLocale ( string $key , string $locale , bool $commonlyUsed ) : Iterator|false
public getLeastMaximum ( int $field ) : int|false
public getLocale ( int $localeType ) : string|false
public getMaximum ( int $field ) : int|false
public getMinimalDaysInFirstWeek ( ) : int|false
public getMinimum ( int $field ) : int|false
public static getNow ( ) : float
public getRepeatedWallTimeOption ( ) : int
public getSkippedWallTimeOption ( ) : int
public getTime ( ) : float
public getTimeZone ( ) : IntlTimeZone
public getType ( ) : string
public getWeekendTransition ( string $dayOfWeek ) : int|false
public inDaylightTime ( ) : bool
public isEquivalentTo ( IntlCalendar $other ) : bool
public isLenient ( ) : bool
public isSet ( int $field ) : bool
public isWeekend ( float $date = NULL ) : bool
public roll ( int $field , mixed $amountOrUpOrDown ) : bool
public set ( int $field , int $value ) : bool
public set ( int $year , int $month , int $dayOfMonth = NULL , int $hour = NULL , int $minute = NULL , int $second = NULL ) : bool
public setFirstDayOfWeek ( int $dayOfWeek ) : bool
public setLenient ( bool $isLenient ) : bool
public setMinimalDaysInFirstWeek ( int $minimalDays ) : bool
public setRepeatedWallTimeOption ( int $wallTimeOption ) : bool
public setSkippedWallTimeOption ( int $wallTimeOption ) : bool
public setTime ( float $date ) : bool
public setTimeZone ( mixed $timeZone ) : bool
public toDateTime ( ) : DateTime
}

Vordefinierte Konstanten

IntlCalendar::FIELD_ERA

Calendar field numerically representing an era, for instance 1 for AD and 0 for BC in the Gregorian/Julian calendars and 235 for the Heisei (??) era in the Japanese calendar. Not all calendars have more than one era.

IntlCalendar::FIELD_YEAR

Calendar field for the year. This is not unique across eras. If the calendar type has more than one era, generally the minimum value for this field will be 1.

IntlCalendar::FIELD_MONTH

Calendar field for the month. The month sequence is zero-based, so January (here used to signify the first month of the calendar; this may be called another name, such as Muharram in the Islamic calendar) is represented by 0, February by 1, …, December by 11 and, for calendars that have it, the 13th or leap month by 12.

IntlCalendar::FIELD_WEEK_OF_YEAR

Calendar field for the number of the week of the year. This depends on which day of the week is deemed to start the week and the minimal number of days in a week.

IntlCalendar::FIELD_WEEK_OF_MONTH

Calendar field for the number of the week of the month. This depends on which day of the week is deemed to start the week and the minimal number of days in a week.

IntlCalendar::FIELD_DATE

Calendar field for the day of the month. The same as IntlCalendar::FIELD_DAY_OF_MONTH, which has a clearer name.

IntlCalendar::FIELD_DAY_OF_YEAR

Calendar field for the day of the year. For the Gregorian calendar, starts with 1 and ends with 365 or 366.

IntlCalendar::FIELD_DAY_OF_WEEK

Calendar field for the day of the week. Its values start with 1 (Sunday, see IntlCalendar::DOW_SUNDAY and subsequent constants) and the last valid value is 7 (Saturday).

IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH

Given a day of the week (Sunday, Monday, …), this calendar field assigns an ordinal to such a day of the week in a specific month. Thus, if the value of this field is 1 and the value of the day of the week is 2 (Monday), then the set day of the month is the 1st Monday of the month; the maximum value is 5.

Additionally, the value 0 and negative values are also allowed. The value 0 encompasses the seven days that occur immediately before the first seven days of a month (which therefore have a ‘day of week in month’ with value 1). Negative values starts counting from the end of the month – -1 points to the last occurrence of a day of the week in a month, -2 to the second last, and so on.

Unlike IntlCalendar::FIELD_WEEK_OF_MONTH and IntlCalendar::FIELD_WEEK_OF_YEAR, this value does not depend on IntlCalendar::getFirstDayOfWeek() or on IntlCalendar::getMinimalDaysInFirstWeek(). The first Monday is the first Monday, even if it occurs in a week that belongs to the previous month.

IntlCalendar::FIELD_AM_PM

Calendar field indicating whether a time is before noon (value 0, AM) or after (1). Midnight is AM, noon is PM.

IntlCalendar::FIELD_HOUR

Calendar field for the hour, without specifying whether it's in the morning or in the afternoon. Valid values are 0 to 11.

IntlCalendar::FIELD_HOUR_OF_DAY

Calendar field for the full (24h) hour of the day. Valid values are 0 to 23.

IntlCalendar::FIELD_MINUTE

Calendar field for the minutes component of the time.

IntlCalendar::FIELD_SECOND

Calendar field for the seconds component of the time.

IntlCalendar::FIELD_MILLISECOND

Calendar field the milliseconds component of the time.

IntlCalendar::FIELD_ZONE_OFFSET

Calendar field indicating the raw offset of the timezone, in milliseconds. The raw offset is the timezone offset, excluding any offset due to daylight saving time.

IntlCalendar::FIELD_DST_OFFSET

Calendar field for the daylight saving time offset of the calendar's timezone, in milliseconds, if active for calendar's time.

IntlCalendar::FIELD_YEAR_WOY

Calendar field representing the year for week of year purposes.

IntlCalendar::FIELD_DOW_LOCAL

Calendar field for the localized day of the week. This is a value between 1 and 7, 1 being used for the day of the week that matches the value returned by IntlCalendar::getFirstDayOfWeek().

IntlCalendar::FIELD_EXTENDED_YEAR

Calendar field for a year number representation that is continuous across eras. For the Gregorian calendar, the value of this field matches that of IntlCalendar::FIELD_YEAR for AD years; a BC year y is represented by -y + 1.

IntlCalendar::FIELD_JULIAN_DAY

Calendar field for a modified Julian day number. It is different from a conventional Julian day number in that its transitions occur at local zone midnight rather than at noon UTC. It uniquely identifies a date.

IntlCalendar::FIELD_MILLISECONDS_IN_DAY

Calendar field encompassing the information in IntlCalendar::FIELD_HOUR_OF_DAY, IntlCalendar::FIELD_MINUTE, IntlCalendar::FIELD_SECOND and IntlCalendar::FIELD_MILLISECOND. Range is from the 0 to 24 * 3600 * 1000 - 1. It is not the amount of milliseconds elapsed in the day since on DST transitions it will have discontinuities analog to those of the wall time.

IntlCalendar::FIELD_IS_LEAP_MONTH

Calendar field whose value is 1 for indicating a leap month and 0 otherwise.

IntlCalendar::FIELD_FIELD_COUNT

The total number of fields.

IntlCalendar::FIELD_DAY_OF_MONTH

Alias for IntlCalendar::FIELD_DATE.

IntlCalendar::DOW_SUNDAY

Sunday.

IntlCalendar::DOW_MONDAY

Monday.

IntlCalendar::DOW_TUESDAY

Tuesday.

IntlCalendar::DOW_WEDNESDAY

Wednesday.

IntlCalendar::DOW_THURSDAY

Thursday.

IntlCalendar::DOW_FRIDAY

Friday.

IntlCalendar::DOW_SATURDAY

Saturday.

IntlCalendar::DOW_TYPE_WEEKDAY

Output of IntlCalendar::getDayOfWeekType() indicating a day of week is a weekday.

IntlCalendar::DOW_TYPE_WEEKEND

Output of IntlCalendar::getDayOfWeekType() indicating a day of week belongs to the weekend.

IntlCalendar::DOW_TYPE_WEEKEND_OFFSET

Output of IntlCalendar::getDayOfWeekType() indicating the weekend begins during the given day of week.

IntlCalendar::DOW_TYPE_WEEKEND_CEASE

Output of IntlCalendar::getDayOfWeekType() indicating the weekend ends during the given day of week.

IntlCalendar::WALLTIME_FIRST

Output of IntlCalendar::getSkippedWallTimeOption() indicating that wall times in the skipped range should refer to the same instant as wall times with one hour less and of IntlCalendar::getRepeatedWallTimeOption() indicating the wall times in the repeated range should refer to the instant of the first occurrence of such wall time.

IntlCalendar::WALLTIME_LAST

Output of IntlCalendar::getSkippedWallTimeOption() indicating that wall times in the skipped range should refer to the same instant as wall times with one hour after and of IntlCalendar::getRepeatedWallTimeOption() indicating the wall times in the repeated range should refer to the instant of the second occurrence of such wall time.

IntlCalendar::WALLTIME_NEXT_VALID

Output of IntlCalendar::getSkippedWallTimeOption() indicating that wall times in the skipped range should refer to the instant when the daylight saving time transition occurs (begins).

Inhaltsverzeichnis

  • IntlCalendar::add — Add a (signed) amount of time to a field
  • IntlCalendar::after — Whether this object's time is after that of the passed object
  • IntlCalendar::before — Whether this object's time is before that of the passed object
  • IntlCalendar::clear — Clear a field or all fields
  • IntlCalendar::__construct — Private constructor for disallowing instantiation
  • IntlCalendar::createInstance — Create a new IntlCalendar
  • IntlCalendar::equals — Compare time of two IntlCalendar objects for equality
  • IntlCalendar::fieldDifference — Calculate difference between given time and this object's time
  • IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string
  • IntlCalendar::get — Get the value for a field
  • IntlCalendar::getActualMaximum — The maximum value for a field, considering the object's current time
  • IntlCalendar::getActualMinimum — The minimum value for a field, considering the object's current time
  • IntlCalendar::getAvailableLocales — Get array of locales for which there is data
  • IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two
  • IntlCalendar::getErrorCode — Get last error code on the object
  • IntlCalendar::getErrorMessage — Get last error message on the object
  • IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar's locale
  • IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field
  • IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values
  • IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field
  • IntlCalendar::getLocale — Get the locale associated with the object
  • IntlCalendar::getMaximum — Get the global maximum value for a field
  • IntlCalendar::getMinimalDaysInFirstWeek — Get minimal number of days the first week in a year or month can have
  • IntlCalendar::getMinimum — Get the global minimum value for a field
  • IntlCalendar::getNow — Get number representing the current time
  • IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time
  • IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time
  • IntlCalendar::getTime — Get time currently represented by the object
  • IntlCalendar::getTimeZone — Get the object's timezone
  • IntlCalendar::getType — Get the calendar type
  • IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends
  • IntlCalendar::inDaylightTime — Whether the object's time is in Daylight Savings Time
  • IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time
  • IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode
  • IntlCalendar::isSet — Whether a field is set
  • IntlCalendar::isWeekend — Whether a certain date/time is in the weekend
  • IntlCalendar::roll — Add value to field without carrying into more significant fields
  • IntlCalendar::set — Set a time field or several common fields at once
  • IntlCalendar::setFirstDayOfWeek — Set the day on which the week is deemed to start
  • IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient
  • IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have
  • IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions
  • IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setTime — Set the calendar time in milliseconds since the epoch
  • IntlCalendar::setTimeZone — Set the timezone used by this calendar
  • IntlCalendar::toDateTime — Convert an IntlCalendar into a DateTime object


Add a (signed) amount of time to a field

  • « IntlCalendar
  • IntlCalendar::after »
  • PHP Manual
  • IntlCalendar
  • Add a (signed) amount of time to a field

IntlCalendar::add

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::add — Add a (signed) amount of time to a field

Beschreibung

Objektorientierter Stil

public IntlCalendar::add ( int $field , int $amount ) : bool

Prozeduraler Stil

intlcal_add ( IntlCalendar $cal , int $field , int $amount ) : bool

Add a signed amount to a field. Adding a positive amount allows advances in time, even if the numeric value of the field decreases (e.g. when working with years in BC dates).

Other fields may need to adjusted – for instance, adding a month to the 31st of January will result in the 28th (or 29th) of February. Contrary to IntlCalendar::roll(), when a value wraps around, more significant fields may change. For instance, adding a day to the 31st of January will result in the 1st of February, not the 1st of January.

Parameter-Liste

cal

The IntlCalendar resource.

field

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

amount

The signed amount to add to the current field. If the amount is positive, the instant will be moved forward; if it is negative, the instant will be moved into the past. The unit is implicit to the field type. For instance, hours for IntlCalendar::FIELD_HOUR_OF_DAY.

Rückgabewerte

Returns true on successIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 IntlCalendar::add()

<?php
ini_set('intl.default_locale', 'fr_FR');
ini_set('date.timezone', 'UTC');

$cal = new IntlGregorianCalendar(2012, 0 /* January */, 31);
echo IntlDateFormatter::formatObject($cal), "\n";

$cal->add(IntlCalendar::FIELD_MONTH, 1);
echo IntlDateFormatter::formatObject($cal), "\n";

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
echo IntlDateFormatter::formatObject($cal), "\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

31 janv. 2012 00:00:00
29 févr. 2012 00:00:00
1 mars 2012 00:00:00


Whether this object's time is after that of the passed object

  • « IntlCalendar::add
  • IntlCalendar::before »
  • PHP Manual
  • IntlCalendar
  • Whether this object's time is after that of the passed object

IntlCalendar::after

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::after — Whether this object's time is after that of the passed object

Beschreibung

Objektorientierter Stil

public IntlCalendar::after ( IntlCalendar $other ) : bool

Prozeduraler Stil

intlcal_after ( IntlCalendar $cal , IntlCalendar $other ) : bool

Returns whether this object's time succeeds the argument's time.

Parameter-Liste

cal

The IntlCalendar resource.

other

The calendar whose time will be checked against the primary object's time.

Rückgabewerte

Returns true if this object's current time is after that of the calendar argument's time. Returns false otherwise. Also returns false on failure. You can use exceptions or intl_get_error_code() to detect error conditions.

Beispiele

Beispiel #1 IntlCalendar::after()

<?php
$cal1 = IntlCalendar::createInstance();
$cal2 = clone $cal1;

var_dump($cal1->after($cal2), //false
        $cal2->after($cal1)); //false

$cal1->roll(IntlCalendar::FIELD_MILLISECOND, true);

var_dump($cal1->after($cal2), //true
        $cal2->after($cal1)); //false


Whether this object's time is before that of the passed object

  • « IntlCalendar::after
  • IntlCalendar::clear »
  • PHP Manual
  • IntlCalendar
  • Whether this object's time is before that of the passed object

IntlCalendar::before

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::before — Whether this object's time is before that of the passed object

Beschreibung

Objektorientierter Stil

public IntlCalendar::before ( IntlCalendar $other ) : bool

Prozeduraler Stil

intlcal_before ( IntlCalendar $cal , IntlCalendar $other ) : bool

Returns whether this object's time precedes the argument's time.

Parameter-Liste

cal

The IntlCalendar resource.

other

The calendar whose time will be checked against the primary object's time.

Rückgabewerte

Returns true if this object's current time is before that of the calendar argument's time. Returns false otherwise. Also returns false on failure. You can use exceptions or intl_get_error_code() to detect error conditions.


Clear a field or all fields

  • « IntlCalendar::before
  • IntlCalendar::__construct »
  • PHP Manual
  • IntlCalendar
  • Clear a field or all fields

IntlCalendar::clear

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::clear — Clear a field or all fields

Beschreibung

Objektorientierter Stil

public IntlCalendar::clear ( int $field = NULL ) : bool

Prozeduraler Stil

intlcal_clear ( IntlCalendar $cal , int $field = NULL ) : bool

Clears either all of the fields or a specific field. A cleared field is marked as unset, giving it the lowest priority against overlapping fields or even default values when calculating the time. Additionally, its value is set to 0, though given the field's low priority, its value may have been internally set to another value by the time the field has finished been queried.

Parameter-Liste

cal

The IntlCalendar resource.

field

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

Rückgabewerte

Returns true on successIm Fehlerfall wird false zurückgegeben.. Failure can only occur is invalid arguments are provided.

Beispiele

Beispiel #1 IntlCalendar::clear() examples

<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'UTC');

$fields = array(
    'FIELD_ERA'                  => 0,
    'FIELD_YEAR'                 => 1,
    'FIELD_MONTH'                => 2,
    'FIELD_WEEK_OF_YEAR'         => 3,
    'FIELD_WEEK_OF_MONTH'        => 4,
    'FIELD_DATE'                 => 5,
    'FIELD_DAY_OF_YEAR'          => 6,
    'FIELD_DAY_OF_WEEK'          => 7,
    'FIELD_DAY_OF_WEEK_IN_MONTH' => 8,
    'FIELD_AM_PM'                => 9,
    'FIELD_HOUR'                 => 10,
    'FIELD_HOUR_OF_DAY'          => 11,
    'FIELD_MINUTE'               => 12,
    'FIELD_SECOND'               => 13,
    'FIELD_MILLISECOND'          => 14,
    'FIELD_ZONE_OFFSET'          => 15,
    'FIELD_DST_OFFSET'           => 16,
    'FIELD_YEAR_WOY'             => 17,
    'FIELD_DOW_LOCAL'            => 18,
    'FIELD_EXTENDED_YEAR'        => 19,
    'FIELD_JULIAN_DAY'           => 20,
    'FIELD_MILLISECONDS_IN_DAY'  => 21,
    'FIELD_IS_LEAP_MONTH'        => 22,
    'FIELD_FIELD_COUNT'          => 23,
);
function getSetFields(IntlCalendar $cal) {
    global $fields;
    $ret = array();
    foreach ($fields as $name => $value) {
        if ($cal->isSet($value)) {
            $ret[] = $name;
        }
    }
    return $ret;
}

$cal = new IntlGregorianCalendar(2013, 2 /* March */, 15);
echo "After GregorianCalendar creation\n";
print_r(getSetFields($cal));
echo "\n";

echo IntlDateFormatter::formatObject($cal), "\n";
echo "After the formatter requested the extended year\n";
print_r(getSetFields($cal));
echo "\n";

$cal->clear(IntlCalendar::FIELD_YEAR);
echo "After the year has been cleared, the date stays the same\n";
echo IntlDateFormatter::formatObject($cal), "\n";
echo "because FIELD_EXTENDED_YEAR is still set\n";
print_r(getSetFields($cal));
echo "\n";

var_dump($cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR));
echo "After the extended year has been cleared\n";
print_r(getSetFields($cal));
echo IntlDateFormatter::formatObject($cal), "\n";
echo "\n";

echo "After the fields are recalculated,\n"
        . " extended year is set again (to 1970)\n";
print_r(getSetFields($cal));
echo "\n";

$cal->clear();
echo "After calling variant with no arguments\n";
print_r(getSetFields($cal));
echo IntlDateFormatter::formatObject($cal), "\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

After GregorianCalendar creation
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
)

15/03/2013 00:00:00
After the formatter requested the extended year
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
    [4] => FIELD_EXTENDED_YEAR
)

After the year has been cleared, the date stays the same
15/03/2013 00:00:00
because FIELD_EXTENDED_YEAR is still set
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

bool(true)
After the extended year has been cleared
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
)
15/03/1970 00:00:00

After the fields are recalculated,
 extended year is set again (to 1970)
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

After calling variant with no arguments
Array
(
)
01/01/1970 00:00:00


Private constructor for disallowing instantiation

  • « IntlCalendar::clear
  • IntlCalendar::createInstance »
  • PHP Manual
  • IntlCalendar
  • Private constructor for disallowing instantiation

IntlCalendar::__construct

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::__construct — Private constructor for disallowing instantiation

Beschreibung

private IntlCalendar::__construct ( )

A private constructor for disallowing instantiation with the new operator.

Call IntlCalendar::createInstance() instead.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Create a new IntlCalendar

  • « IntlCalendar::__construct
  • IntlCalendar::equals »
  • PHP Manual
  • IntlCalendar
  • Create a new IntlCalendar

IntlCalendar::createInstance

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::createInstance — Create a new IntlCalendar

Beschreibung

Objektorientierter Stil

public static IntlCalendar::createInstance ( mixed $timeZone = NULL , string $locale = "" ) : IntlCalendar

Prozeduraler Stil

intlcal_create_instance ( mixed $timeZone = NULL , string $locale = "" ) : IntlCalendar

Given a timezone and locale, this method creates an IntlCalendar object. This factory method may return a subclass of IntlCalendar.

The calendar created will represent the time instance at which it was created, based on the system time. The fields can all be cleared by calling IntCalendar::clear() with no arguments. See also IntlGregorianCalendar::__construct().

Parameter-Liste

timeZone

The timezone to use.

  • null, in which case the default timezone will be used, as specified in the ini setting date.timezone or through the function date_default_timezone_set() and as returned by date_default_timezone_get().

  • An IntlTimeZone, which will be used directly.

  • A DateTimeZone. Its identifier will be extracted and an ICU timezone object will be created; the timezone will be backed by ICU's database, not PHP's.

  • A string, which should be a valid ICU timezone identifier. See IntlTimeZone::createTimeZoneIDEnumeration(). Raw offsets such as "GMT+08:30" are also accepted.

locale

A locale to use or null to use the default locale.

Rückgabewerte

The created IntlCalendar instance or null on failure.

Beispiele

Beispiel #1 IntlCalendar::createInstance()

<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'Europe/Madrid');

$cal = IntlCalendar::createInstance();
echo "No arguments\n";
var_dump(get_class($cal),
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";

echo "Explicit timezone\n";
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT());
var_dump(get_class($cal),
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";

echo "Explicit locale (with calendar)\n";
$cal = IntlCalendar::createInstance(NULL, 'es_ES@calendar=persian');
var_dump(get_class($cal),
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

No arguments
string(21) "IntlGregorianCalendar"
string(68) "martes 18 de junio de 2013 14:11:02 Hora de verano de Europa Central"

Explicit timezone
string(21) "IntlGregorianCalendar"
string(45) "martes 18 de junio de 2013 12:11:02 GMT+00:00"

Explicit locale (with calendar)
string(12) "IntlCalendar"
string(70) "martes 28 de Khordad de 1392 14:11:02 Hora de verano de Europa Central"

Siehe auch

  • IntlGregorianCalendar::__construct() - Create the Gregorian Calendar class


Compare time of two IntlCalendar objects for equality

  • « IntlCalendar::createInstance
  • IntlCalendar::fieldDifference »
  • PHP Manual
  • IntlCalendar
  • Compare time of two IntlCalendar objects for equality

IntlCalendar::equals

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::equals — Compare time of two IntlCalendar objects for equality

Beschreibung

Objektorientierter Stil

public IntlCalendar::equals ( IntlCalendar $other ) : bool

Prozeduraler Stil

intlcal_equals ( IntlCalendar $cal , IntlCalendar $other ) : bool

Returns true if this calendar and the given calendar have the same time. The settings, calendar types and field states do not have to be the same.

Parameter-Liste

cal

The IntlCalendar resource.

other

The calendar to compare with the primary object.

Rückgabewerte

Returns true if the current time of both this and the passed in IntlCalendar object are the same, or false otherwise. The value false can also be returned on failure. This can only happen if bad arguments are passed in. In any case, the two cases can be distinguished by calling intl_get_error_code().

Beispiele

Beispiel #1 IntlCalendar::equals()

<?php
ini_set('date.timezone', 'UTC');

$cal1 = IntlCalendar::createInstance(NULL, 'es_ES');
$cal2 = clone $cal1;

var_dump($cal1->equals($cal2)); //TRUE

//The locale is not included in the comparison
$cal2 = IntlCalendar::createInstance(NULL, 'pt_PT');
$cal2->setTime($cal1->getTime());
var_dump($cal1->equals($cal2)); //TRUE

//And set fields state is not included as well
$cal2->clear(IntlCalendar::FIELD_YEAR);
var_dump($cal1->isSet(IntlCalendar::FIELD_YEAR) ==
        $cal2->isSet(IntlCalendar::FIELD_YEAR)); //FALSE
var_dump($cal1->equals($cal2)); //TRUE

//Neither is the calendar type
$cal2 = IntlCalendar::createInstance(NULL, 'es_ES@calendar=islamic');
$cal2->setTime($cal1->getTime());
var_dump($cal1->equals($cal2)); //TRUE

//Only the time is
$cal2 = clone $cal1;
$cal2->setTime($cal1->getTime() + 1.);
var_dump($cal1->equals($cal2)); //FALSE


Calculate difference between given time and this object's time

  • « IntlCalendar::equals
  • IntlCalendar::fromDateTime »
  • PHP Manual
  • IntlCalendar
  • Calculate difference between given time and this object's time

IntlCalendar::fieldDifference

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::fieldDifference — Calculate difference between given time and this object's time

Beschreibung

Objektorientierter Stil

public IntlCalendar::fieldDifference ( float $when , int $field ) : int|false

Prozeduraler Stil

intlcal_field_difference ( IntlCalendar $cal , float $when , int $field ) : int|false

Return the difference between the given time and the time this object is set to, with respect to the quantity specified the field parameter.

This method is meant to be called successively, first with the most significant field of interest down to the least significant field. To this end, as a side effect, this calendar's value for the field specified is advanced by the amount returned.

Parameter-Liste

cal

The IntlCalendar resource.

when

The time against which to compare the quantity represented by the field. For the result to be positive, the time given for this parameter must be ahead of the time of the object the method is being invoked on.

field

The field that represents the quantity being compared.

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

Rückgabewerte

Returns a (signed) difference of time in the unit associated with the specified fieldIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 IntlCalendar::fieldDifference()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'fr_FR');

$cal1 = IntlCalendar::fromDateTime('2012-02-29 09:00:11');
$cal2 = IntlCalendar::fromDateTime('2013-03-01 09:19:29');
$time = $cal2->getTime();

echo "Time before: ", IntlDateFormatter::formatObject($cal1), "\n";

printf(
    "The difference in time is %d year(s), %d month(s), "
  . "%d day(s), %d hour(s) and %d minute(s)\n",
    $cal1->fieldDifference($time, IntlCalendar::FIELD_YEAR),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_MONTH),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_DAY_OF_MONTH),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_HOUR_OF_DAY),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_MINUTE)
);

//now it was advanced to the target time, exception for the seconds,
//for which we did not measure the difference
echo "Time after: ", IntlDateFormatter::formatObject($cal1), "\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Time before: 29 févr. 2012 09:00:11
The difference in time is 1 year(s), 0 month(s), 1 day(s), 0 hour(s) and 19 minute(s)
Time after: 1 mars 2013 09:19:11


Create an IntlCalendar from a DateTime object or string

  • « IntlCalendar::fieldDifference
  • IntlCalendar::get »
  • PHP Manual
  • IntlCalendar
  • Create an IntlCalendar from a DateTime object or string

IntlCalendar::fromDateTime

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a2)

IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string

Beschreibung

Objektorientierter Stil

public static IntlCalendar::fromDateTime ( mixed $dateTime ) : IntlCalendar

Prozeduraler Stil

intlcal_from_date_time ( mixed $dateTime ) : IntlCalendar

Creates an IntlCalendar object either from a DateTime object or from a string from which a DateTime object can be built.

The new calendar will represent not only the same instant as the given DateTime (subject to precision loss for dates very far into the past or future), but also the same timezone (subject to the caveat that different timezone databases will be used, and therefore the results may differ).

Parameter-Liste

dateTime

A DateTime object or a string that can be passed to DateTime::__construct().

Rückgabewerte

The created IntlCalendar object or null in case of failure. If a string is passed, any exception that occurs inside the DateTime constructor is propagated.

Beispiele

Beispiel #1 IntlCalendar::fromDateTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

//same as IntlCalendar::fromDateTime(new DateTime(...))
$cal1 = IntlCalendar::fromDateTime('2013-02-28 00:01:02 Europe/Berlin');

//Note the timezone is Europe/Berlin, not the default Europe/Lisbon
echo IntlDateFormatter::formatObject($cal1, 'yyyy MMMM d HH:mm:ss VVVV', 'de_DE'), "\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2013 Februar 28 00:01:02 Deutschland Zeit


Get the value for a field

  • « IntlCalendar::fromDateTime
  • IntlCalendar::getActualMaximum »
  • PHP Manual
  • IntlCalendar
  • Get the value for a field

IntlCalendar::get

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::get — Get the value for a field

Beschreibung

Objektorientierter Stil

public IntlCalendar::get ( int $field ) : int

Prozeduraler Stil

intlcal_get ( IntlCalendar $cal , int $field ) : int

Gets the value for a specific field.

Parameter-Liste

cal

The IntlCalendar resource.

field

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

Rückgabewerte

An integer with the value of the time field.

Beispiele

Beispiel #1 IntlCalendar::get()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$class = new ReflectionClass('IntlCalendar');
$fields = array();
foreach ($class->getConstants() as $name => $val) {
    if (strpos($name, 'FIELD_') !== 0 || $val > 22)
        continue;
    $fields[$val] = $name;
}

$cal = IntlCalendar::createInstance(); // current time
var_dump(IntlDateFormatter::formatObject($cal));
foreach ($fields as $val => $name) {
    echo "$val ($name)", "\n    ", $cal->get($val), "\n";
}

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(23) "Jul 1, 2013, 4:44:44 AM"
0 (FIELD_ERA)
    1
1 (FIELD_YEAR)
    2013
2 (FIELD_MONTH)
    6
3 (FIELD_WEEK_OF_YEAR)
    27
4 (FIELD_WEEK_OF_MONTH)
    1
5 (FIELD_DAY_OF_MONTH)
    1
6 (FIELD_DAY_OF_YEAR)
    182
7 (FIELD_DAY_OF_WEEK)
    2
8 (FIELD_DAY_OF_WEEK_IN_MONTH)
    1
9 (FIELD_AM_PM)
    0
10 (FIELD_HOUR)
    4
11 (FIELD_HOUR_OF_DAY)
    4
12 (FIELD_MINUTE)
    44
13 (FIELD_SECOND)
    44
14 (FIELD_MILLISECOND)
    551
15 (FIELD_ZONE_OFFSET)
    0
16 (FIELD_DST_OFFSET)
    3600000
17 (FIELD_YEAR_WOY)
    2013
18 (FIELD_DOW_LOCAL)
    2
19 (FIELD_EXTENDED_YEAR)
    2013
20 (FIELD_JULIAN_DAY)
    2456475
21 (FIELD_MILLISECONDS_IN_DAY)
    17084551
22 (FIELD_IS_LEAP_MONTH)
    0


The maximum value for a field, considering the object's current time

  • « IntlCalendar::get
  • IntlCalendar::getActualMinimum »
  • PHP Manual
  • IntlCalendar
  • The maximum value for a field, considering the object's current time

IntlCalendar::getActualMaximum

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getActualMaximum — The maximum value for a field, considering the object's current time

Beschreibung

Objektorientierter Stil

public IntlCalendar::getActualMaximum ( int $field ) : int|false

Prozeduraler Stil

intlcal_get_actual_maximum ( IntlCalendar $cal , int $field ) : int|false

Returns a field's relative maximum value around the current time. The exact semantics vary by field, but in the general case this is the value that would be obtained if one would set the field value into the smallest relative maximum for the field and would increment it until reaching the global maximum or the field value wraps around, in which the value returned would be the global maximum or the value before the wrapping, respectively.

For instance, in the gregorian calendar, the actual maximum value for the day of month would vary between 28 and 31, depending on the month and year of the current time.

Parameter-Liste

cal

The IntlCalendar resource.

field

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

Rückgabewerte

An int representing the maximum value in the units associated with the given fieldIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 IntlCalendar::getActualMaximum()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

$cal = IntlCalendar::fromDateTime('2013-02-15');
var_dump($cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)); //28

$cal->add(IntlCalendar::FIELD_EXTENDED_YEAR, -1);
var_dump($cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)); //29

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(28)
int(29)

Siehe auch

  • IntlCalendar::getMaximum() - Get the global maximum value for a field
  • IntlCalendar::getLeastMaximum() - Get the smallest local maximum for a field
  • IntlCalendar::getActualMinimum() - The minimum value for a field, considering the object's current time


The minimum value for a field, considering the object's current time

  • « IntlCalendar::getActualMaximum
  • IntlCalendar::getAvailableLocales »
  • PHP Manual
  • IntlCalendar
  • The minimum value for a field, considering the object's current time

IntlCalendar::getActualMinimum

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getActualMinimum — The minimum value for a field, considering the object's current time

Beschreibung

Objektorientierter Stil

public IntlCalendar::getActualMinimum ( int $field ) : int|false

Prozeduraler Stil

intlcal_get_actual_minimum ( IntlCalendar $cal , int $field ) : int|false

Returns a field's relative minimum value around the current time. The exact semantics vary by field, but in the general case this is the value that would be obtained if one would set the field value into the greatest relative minimum for the field and would decrement it until reaching the global minimum or the field value wraps around, in which the value returned would be the global minimum or the value before the wrapping, respectively.

For the Gregorian calendar, this is always the same as IntlCalendar::getMinimum().

Parameter-Liste

cal

The IntlCalendar resource.

field

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

Rückgabewerte

An int representing the minimum value in the field's unitIm Fehlerfall wird false zurückgegeben..

Siehe auch

  • IntlCalendar::getMinimum() - Get the global minimum value for a field
  • IntlCalendar::getGreatestMinimum() - Get the largest local minimum value for a field
  • IntlCalendar::getActualMaximum() - The maximum value for a field, considering the object's current time


Get array of locales for which there is data

  • « IntlCalendar::getActualMinimum
  • IntlCalendar::getDayOfWeekType »
  • PHP Manual
  • IntlCalendar
  • Get array of locales for which there is data

IntlCalendar::getAvailableLocales

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getAvailableLocales — Get array of locales for which there is data

Beschreibung

Objektorientierter Stil

public static IntlCalendar::getAvailableLocales ( ) : array

Prozeduraler Stil

intlcal_get_available_locales ( ) : array

Gives the list of locales for which calendars are installed. As of ICU 51, this is the list of all installed ICU locales.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of strings, one for which locale.

Beispiele

Beispiel #1 IntlCalendar::getAvailableLocales()

<?php
print_r(IntlCalendar::getAvailableLocales());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => af
    [1] => af_NA
    [2] => af_ZA
    [3] => agq
    [4] => agq_CM
    [5] => ak
    [6] => ak_GH
    [7] => am
    [8] => am_ET
    [9] => ar
    [10] => ar_001
    [11] => ar_AE
    [12] => ar_BH
    [13] => ar_DJ
    … output abbreviated …
    [595] => zh_Hant_HK
    [596] => zh_Hant_MO
    [597] => zh_Hant_TW
    [598] => zu
    [599] => zu_ZA
)


Tell whether a day is a weekday, weekend or a day that has a transition between the two

  • « IntlCalendar::getAvailableLocales
  • IntlCalendar::getErrorCode »
  • PHP Manual
  • IntlCalendar
  • Tell whether a day is a weekday, weekend or a day that has a transition between the two

IntlCalendar::getDayOfWeekType

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two

Beschreibung

Objektorientierter Stil

public IntlCalendar::getDayOfWeekType ( int $dayOfWeek ) : int|false

Prozeduraler Stil

intlcal_get_day_of_week_type ( IntlCalendar $cal , int $dayOfWeek ) : int|false

Returns whether the passed day is a weekday (IntlCalendar::DOW_TYPE_WEEKDAY), a weekend day (IntlCalendar::DOW_TYPE_WEEKEND), a day during which a transition occurs into the weekend (IntlCalendar::DOW_TYPE_WEEKEND_OFFSET) or a day during which the weekend ceases (IntlCalendar::DOW_TYPE_WEEKEND_CEASE).

If the return is either
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
IntlCalendar::DOW_TYPE_WEEKEND_CEASE, then
IntlCalendar::getWeekendTransition() can be called to
obtain the time of the transition.

This function requires ICU 4.4 or later.

Parameter-Liste

cal

The IntlCalendar resource.

dayOfWeek

One of the constants IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, …,
IntlCalendar::DOW_SATURDAY.

Rückgabewerte

Returns one of the constants
IntlCalendar::DOW_TYPE_WEEKDAY,
IntlCalendar::DOW_TYPE_WEEKEND,
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
IntlCalendar::DOW_TYPE_WEEKEND_CEASEIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 IntlCalendar::getDayOfWeekType()

<?php
foreach (array('en_US', 'ar_SA') as $locale) {
    echo "Locale: ", Locale::getDisplayName($locale, "en_US"), "\n";

    $cal = IntlCalendar::createInstance('UTC', $locale);

    for ($i = IntlCalendar::DOW_SUNDAY; $i <= IntlCalendar::DOW_SATURDAY; $i++) {
        $type = $cal->getDayOfWeekType($i);
        $transition = ($type !== IntlCalendar::DOW_TYPE_WEEKDAY)
            ? $cal->getWeekendTransition($i)
            : '';
        echo $i, " ", $type, " ", $transition, "\n";
    }
    echo "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Locale: English (United States)
1 1 86400000
2 0
3 0
4 0
5 0
6 0
7 1 0

Locale: Arabic (Saudi Arabia)
1 0
2 0
3 0
4 0
5 0
6 1 0
7 1 86400000


Get last error code on the object

  • « IntlCalendar::getDayOfWeekType
  • IntlCalendar::getErrorMessage »
  • PHP Manual
  • IntlCalendar
  • Get last error code on the object

IntlCalendar::getErrorCode

intlcal_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getErrorCode -- intlcal_get_error_code — Get last error code on the object

Beschreibung

Objektorientierter Stil (method):

public IntlCalendar::getErrorCode ( ) : int

Prozeduraler Stil:

intlcal_get_error_code ( IntlCalendar $calendar ) : int

Returns the numeric ICU error code for the last call on this object (including cloning) or the IntlCalendar given for the calendar parameter (in the procedural?style version). This may indicate only a warning (negative error code) or no error at all (U_ZERO_ERROR). The actual presence of an error can be tested with intl_is_failure().

Invalid arguments detected on the PHP side (before invoking functions of the ICU library) are not recorded for the purposes of this function.

The last error that occurred in any call to a function of the intl extension, including early argument errors, can be obtained with intl_get_error_code(). This function resets the global error code, but not the object's error code.

Parameter-Liste

calendar

The calendar object, on the procedural style interface.

Rückgabewerte

An ICU error code indicating either success, failure or a warning.

Beispiele

Beispiel #1 IntlCalendar::getErrorCode() and IntlCalendar::getErrorMessage()

<?php
ini_set("intl.error_level", E_WARNING);
ini_set("intl.default_locale", "nl");

$intlcal = new IntlGregorianCalendar(2012, 1, 29);
var_dump(
    $intlcal->getErrorCode(),
    $intlcal->getErrorMessage()
);
$intlcal->fieldDifference(-1e100, IntlCalendar::FIELD_SECOND);

var_dump(
    $intlcal->getErrorCode(),
    $intlcal->getErrorMessage()
);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)
string(12) "U_ZERO_ERROR"

Warning: IntlCalendar::fieldDifference(): intlcal_field_difference: Call to ICU method has failed in /home/glopes/php/ws/example.php on line 10
int(1)
string(81) "intlcal_field_difference: Call to ICU method has failed: U_ILLEGAL_ARGUMENT_ERROR"

Siehe auch

  • IntlCalendar::getErrorMessage() - Get last error message on the object
  • intl_is_failure() - Check whether the given error code indicates failure
  • intl_error_name() - Get symbolic name for a given error code
  • intl_get_error_code() - Get the last error code
  • intl_get_error_message() - Get description of the last error


Get last error message on the object

  • « IntlCalendar::getErrorCode
  • IntlCalendar::getFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Get last error message on the object

IntlCalendar::getErrorMessage

intlcal_get_error_message

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getErrorMessage -- intlcal_get_error_message — Get last error message on the object

Beschreibung

Objektorientierter Stil (method):

public IntlCalendar::getErrorMessage ( ) : string

Prozeduraler Stil:

intlcal_get_error_message ( IntlCalendar $calendar ) : string

Returns the error message (if any) associated with the error reported by IntlCalendar::getErrorCode() or intlcal_get_error_code(). If there is no associated error message, only the string representation of the name of the error constant will be returned. Otherwise, the message also includes a message set on the side of the PHP binding.

Parameter-Liste

calendar

The calendar object, on the procedural style interface.

Rückgabewerte

The error message associated with last error that occurred in a function call on this object, or a string indicating the non-existance of an error.

Beispiele

Beispiel #1 IntlCalendar::getErrorMessage()

<?php
$cal = IntlCalendar::createInstance('UTC', 'en_US');
var_dump($cal->getErrorMessage());

$cal->getWeekendTransition(IntlCalendar::DOW_WEDNESDAY);
var_dump($cal->getErrorMessage());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(12) "U_ZERO_ERROR"
string(82) "intlcal_get_weekend_transition: Error calling ICU method: U_ILLEGAL_ARGUMENT_ERROR"


Get the first day of the week for the calendar's locale

  • « IntlCalendar::getErrorMessage
  • IntlCalendar::getGreatestMinimum »
  • PHP Manual
  • IntlCalendar
  • Get the first day of the week for the calendar's locale

IntlCalendar::getFirstDayOfWeek

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar's locale

Beschreibung

Objektorientierter Stil

public IntlCalendar::getFirstDayOfWeek ( ) : int|false

Prozeduraler Stil

intlcal_get_first_day_of_week ( IntlCalendar $cal ) : int|false

The week day deemed to start a week, either the default value for this locale or the value set with IntlCalendar::setFirstDayOfWeek().

Parameter-Liste

cal

The IntlCalendar resource.

Rückgabewerte

One of the constants IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, …,
IntlCalendar::DOW_SATURDAYIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 IntlCalendar::getFirstDayOfWeek()

<?php
ini_set('date.timezone', 'UTC');

$cal1 = IntlCalendar::createInstance(NULL, 'es_ES');
var_dump($cal1->getFirstDayOfWeek()); // Monday
$cal1->set(2013, 1 /* February */, 3); // a Sunday
var_dump($cal1->get(IntlCalendar::FIELD_WEEK_OF_YEAR)); // 5

$cal2 = IntlCalendar::createInstance(NULL, 'en_US');
var_dump($cal2->getFirstDayOfWeek()); // Sunday
$cal2->set(2013, 1 /* February */, 3); // a Sunday
var_dump($cal2->get(IntlCalendar::FIELD_WEEK_OF_YEAR)); // 6

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2)
int(5)
int(1)
int(6)

Siehe auch

  • IntlCalendar::setFirstDayOfWeek() - Set the day on which the week is deemed to start


Get the largest local minimum value for a field

  • « IntlCalendar::getFirstDayOfWeek
  • IntlCalendar::getKeywordValuesForLocale »
  • PHP Manual
  • IntlCalendar
  • Get the largest local minimum value for a field

IntlCalendar::getGreatestMinimum

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field

Beschreibung

Objektorientierter Stil

public IntlCalendar::getGreatestMinimum ( int $field ) : int|false

Prozeduraler Stil

intlcal_get_greatest_minimum ( IntlCalendar $cal , int $field ) : int|false

Returns the largest local minimum for a field. This should be a value larger or equal to that returned by IntlCalendar::getActualMinimum(), which is in its turn larger or equal to that returned by IntlCalendar::getMinimum(). All these three functions return the same value for the Gregorian calendar.

Parameter-Liste

cal

The IntlCalendar resource.

field

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

Rückgabewerte

An int representing a field value, in the field's unit,Im Fehlerfall wird false zurückgegeben..


Get set of locale keyword values

  • « IntlCalendar::getGreatestMinimum
  • IntlCalendar::getLeastMaximum »
  • PHP Manual
  • IntlCalendar
  • Get set of locale keyword values

IntlCalendar::getKeywordValuesForLocale

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values

Beschreibung

Objektorientierter Stil

public static IntlCalendar::getKeywordValuesForLocale ( string $key , string $locale , bool $commonlyUsed ) : Iterator|false

Prozeduraler Stil

static intlcal_get_keyword_values_for_locale ( string $key , string $locale , bool $commonlyUsed ) : Iterator|false

For a given locale key, get the set of values for that key that would result in a different behavior. For now, only the 'calendar' keyword is supported.

This function requires ICU 4.2 or later.

Parameter-Liste

key

The locale keyword for which relevant values are to be queried. Only 'calendar' is supported.

locale

The locale onto which the keyword/value pair are to be appended.

commonlyUsed

Whether to show only the values commonly used for the specified locale.

Rückgabewerte

An iterator that yields strings with the locale keyword valuesIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 IntlCalendar::getKeyworkValuesForLocale()

<?php
print_r(
        iterator_to_array(
                IntlCalendar::getKeywordValuesForLocale(
                        'calendar', 'fa_IR', true)));
print_r(
        iterator_to_array(
                IntlCalendar::getKeywordValuesForLocale(
                        'calendar', 'fa_IR', false)));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => persian
    [1] => gregorian
    [2] => islamic
    [3] => islamic-civil
)
Array
(
    [0] => persian
    [1] => gregorian
    [2] => islamic
    [3] => islamic-civil
    [4] => japanese
    [5] => buddhist
    [6] => roc
    [7] => hebrew
    [8] => chinese
    [9] => indian
    [10] => coptic
    [11] => ethiopic
    [12] => ethiopic-amete-alem
)


Get the smallest local maximum for a field

  • « IntlCalendar::getKeywordValuesForLocale
  • IntlCalendar::getLocale »
  • PHP Manual
  • IntlCalendar
  • Get the smallest local maximum for a field

IntlCalendar::getLeastMaximum

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field

Beschreibung

Objektorientierter Stil

public IntlCalendar::getLeastMaximum ( int $field ) : int|false

Prozeduraler Stil

intlcal_get_least_maximum ( IntlCalendar $cal , int $field ) : int|false

Returns the smallest local maximumw for a field. This should be a value smaller or equal to that returned by IntlCalendar::getActualMaxmimum(), which is in its turn smaller or equal to that returned by IntlCalendar::getMaximum().

Parameter-Liste

cal

The IntlCalendar resource.

field

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

Rückgabewerte

An int representing a field value in the field's unitIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Maxima examples

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'it_IT');

$cal = new IntlGregorianCalendar(2013, 3 /* April */, 6);
var_dump(
    $cal->getLeastMaximum(IntlCalendar::FIELD_DAY_OF_MONTH),  // 28
    $cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH), // 30
    $cal->getMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)        // 31
);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(28)
int(30)
int(31)

Siehe auch

  • IntlCalendar::getActualMaximum() - The maximum value for a field, considering the object's current time
  • IntlCalendar::getMaximum() - Get the global maximum value for a field
  • IntlCalendar::getGreatestMinimum() - Get the largest local minimum value for a field


Get the locale associated with the object

  • « IntlCalendar::getLeastMaximum
  • IntlCalendar::getMaximum »
  • PHP Manual
  • IntlCalendar
  • Get the locale associated with the object

IntlCalendar::getLocale

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getLocale — Get the locale associated with the object

Beschreibung

Objektorientierter Stil

public IntlCalendar::getLocale ( int $localeType ) : string|false

Prozeduraler Stil

intlcal_get_locale ( IntlCalendar $cal , int $localeType ) : string|false

Returns the locale used by this calendar object.

Parameter-Liste

cal

The IntlCalendar resource.

localeType

Whether to fetch the actual locale (the locale from which the calendar data originates, with Locale::ACTUAL_LOCALE) or the valid locale, i.e., the most specific locale supported by ICU relatively to the requested locale – see Locale::VALID_LOCALE. From the most general to the most specific, the locales are ordered in this fashion – actual locale, valid locale, requested locale.

Rückgabewerte

A locale stringIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 IntlCalendar::getLocale()

<?php
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT(), 'en_US_CALIFORNIA');
var_dump(
    $cal->getLocale(Locale::ACTUAL_LOCALE),
    $cal->getLocale(Locale::VALID_LOCALE)
);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(2) "en"
string(5) "en_US"


Get the global maximum value for a field

  • « IntlCalendar::getLocale
  • IntlCalendar::getMinimalDaysInFirstWeek »
  • PHP Manual
  • IntlCalendar
  • Get the global maximum value for a field

IntlCalendar::getMaximum

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getMaximum — Get the global maximum value for a field

Beschreibung

Objektorientierter Stil

public IntlCalendar::getMaximum ( int $field ) : int|false

Prozeduraler Stil

intlcal_get_maximum ( IntlCalendar $cal , int $field ) : int|false

Gets the global maximum for a field, in this specific calendar. This value is larger or equal to that returned by IntlCalendar::getActualMaximum(), which is in its turn larger or equal to that returned by IntlCalendar::getLeastMaximum().

Parameter-Liste

cal

The IntlCalendar resource.

field

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

Rückgabewerte

An int representing a field value in the field's unitIm Fehlerfall wird false zurückgegeben..

Siehe auch

  • IntlCalendar::getActualMaximum() - The maximum value for a field, considering the object's current time
  • IntlCalendar::getLeastMaximum() - Get the smallest local maximum for a field
  • IntlCalendar::getMinimum() - Get the global minimum value for a field


Get minimal number of days the first week in a year or month can have

  • « IntlCalendar::getMaximum
  • IntlCalendar::getMinimum »
  • PHP Manual
  • IntlCalendar
  • Get minimal number of days the first week in a year or month can have

IntlCalendar::getMinimalDaysInFirstWeek

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getMinimalDaysInFirstWeek — Get minimal number of days the first week in a year or month can have

Beschreibung

Objektorientierter Stil

public IntlCalendar::getMinimalDaysInFirstWeek ( ) : int|false

Prozeduraler Stil

intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal ) : int|false

Returns the smallest number of days the first week of a year or month must have in the new year or month. For instance, in the Gregorian calendar, if this value is 1, then the first week of the year will necessarily include January 1st, while if this value is 7, then the week with January 1st will be the first week of the year only if the day of the week for January 1st matches the day of the week returned by IntlCalendar::getFirstDayOfWeek(); otherwise it will be the previous year's last week.

Parameter-Liste

cal

The IntlCalendar resource.

Rückgabewerte

An int representing a number of daysIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 IntlCalendar::getMinimalDaysInFirstWeek()

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'en_US');

$cal = new IntlGregorianCalendar(2013, 0 /* January */, 2);
var_dump(IntlDateFormatter::formatObject($cal, 'cccc')); // Wednesday

var_dump($cal->getMinimalDaysInFirstWeek(), // 1
$cal->getFirstDayofWeek()); // 1 (Sunday)

// Week 1 of 2013
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

$cal->setMinimalDaysInFirstWeek(4);
// Still Week 1 of 2013 (1st week has 5 days in the new year)
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

$cal->setMinimalDaysInFirstWeek(6);
// Week 53 of 2012
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(9) "Wednesday"
int(1)
int(1)
string(14) "Week 1 of 2013"
string(14) "Week 1 of 2013"
string(15) "Week 53 of 2012"


Get the global minimum value for a field

  • « IntlCalendar::getMinimalDaysInFirstWeek
  • IntlCalendar::getNow »
  • PHP Manual
  • IntlCalendar
  • Get the global minimum value for a field

IntlCalendar::getMinimum

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getMinimum — Get the global minimum value for a field

Beschreibung

Objektorientierter Stil

public IntlCalendar::getMinimum ( int $field ) : int|false

Prozeduraler Stil

intlcal_get_minimum ( IntlCalendar $cal , int $field ) : int|false

Gets the global minimum for a field, in this specific calendar. This value is smaller or equal to that returned by IntlCalendar::getActualMinimum(), which is in its turn smaller or equal to that returned by IntlCalendar::getGreatestMinimum(). For the Gregorian calendar, these three functions always return the same value (for each field).

Parameter-Liste

cal

The IntlCalendar resource.

field

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

Rückgabewerte

An int representing a value for the given field in the field's unitIm Fehlerfall wird false zurückgegeben..


Get number representing the current time

  • « IntlCalendar::getMinimum
  • IntlCalendar::getRepeatedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Get number representing the current time

IntlCalendar::getNow

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getNow — Get number representing the current time

Beschreibung

Objektorientierter Stil

public static IntlCalendar::getNow ( ) : float

Prozeduraler Stil

intlcal_get_now ( ) : float

The number of milliseconds that have passed since the reference date. This number is derived from the system time.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A float representing a number of milliseconds since the epoch, not counting leap seconds.

Beispiele

Beispiel #1 IntlCalendar::getNow()

<?php
$formatter = IntlDateFormatter::create('es_ES',
        IntlDateFormatter::FULL,
        IntlDateFormatter::FULL,
        'Europe/Madrid');

$val = IntlCalendar::getNow();

var_dump($val);
echo $formatter->format(IntlCalendar::getNow() / 1000.), "\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

float(1371425814666)
lunes, 17 de junio de 2013 01:36:54 Hora de verano de Europa central


Get behavior for handling repeating wall time

  • « IntlCalendar::getNow
  • IntlCalendar::getSkippedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Get behavior for handling repeating wall time

IntlCalendar::getRepeatedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time

Beschreibung

Objektorientierter Stil

public IntlCalendar::getRepeatedWallTimeOption ( ) : int

Prozeduraler Stil

intlcal_get_repeated_wall_time_option ( IntlCalendar $cal ) : int

Gets the current strategy for dealing with wall times that are repeated whenever the clock is set back during dailight saving time end transitions. The default value is IntlCalendar::WALLTIME_LAST.

This function requires ICU 4.9 or later.

Parameter-Liste

cal

The IntlCalendar resource.

Rückgabewerte

One of the constants IntlCalendar::WALLTIME_FIRST or IntlCalendar::WALLTIME_LAST.

Beispiele

Beispiel #1 IntlCalendar::getRepeatedWallTimeOption()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
ini_set('intl.error_level', E_WARNING);

//On October 27th at 0200, the clock goes back 1 hour and from GMT+01 to GMT+00
$cal = new IntlGregorianCalendar(2013, 9 /* October */, 27, 1, 30);

var_dump($cal->getRepeatedWalltimeOption()); // 0 WALLTIME_LAST

$formatter = IntlDateFormatter::create(
    NULL,
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'UTC'
);
var_dump($formatter->format($cal->getTime() / 1000.));

$cal->setRepeatedWalltimeOption(IntlCalendar::WALLTIME_FIRST);
var_dump($cal->getRepeatedWalltimeOption()); // 1 WALLTIME_FIRST
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000.));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)
string(42) "Sunday, October 27, 2013 at 1:30:00 AM GMT"
int(1)
string(43) "Sunday, October 27, 2013 at 12:30:00 AM GMT"

Siehe auch

  • IntlCalendar::getSkippedWallTimeOption() - Get behavior for handling skipped wall time
  • IntlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions


Get behavior for handling skipped wall time

  • « IntlCalendar::getRepeatedWallTimeOption
  • IntlCalendar::getTime »
  • PHP Manual
  • IntlCalendar
  • Get behavior for handling skipped wall time

IntlCalendar::getSkippedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time

Beschreibung

Objektorientierter Stil

public IntlCalendar::getSkippedWallTimeOption ( ) : int

Prozeduraler Stil

intlcal_get_skipped_wall_time_option ( IntlCalendar $cal ) : int

Gets the current strategy for dealing with wall times that are skipped whenever the clock is forwarded during dailight saving time start transitions. The default value is IntlCalendar::WALLTIME_LAST.

The calendar must be lenient for this option to have any effect, otherwise attempting to set a non-existing time will cause an error.

This function requires ICU 4.9 or later.

Parameter-Liste

cal

The IntlCalendar resource.

Rückgabewerte

One of the constants IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST or
IntlCalendar::WALLTIME_NEXT_VALID.

Beispiele

Beispiel #1 IntlCalendar::getSkippedWallTimeOption()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
ini_set('intl.error_level', E_WARNING);

//On March 31st at 0100, the clock goes forward 1 hour and from GMT+00 to GMT+01
$cal = new IntlGregorianCalendar(2013, 2 /* March */, 31, 1, 30);

var_dump(
    $cal->isLenient(),               // true
    $cal->getSkippedWalltimeOption() // 0 WALLTIME_LAST
);

$formatter = IntlDateFormatter::create(
    NULL,
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'UTC'
);
var_dump($formatter->format($cal->getTime() / 1000));

$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
var_dump($cal->getSkippedWalltimeOption()); // 1 WALLTIME_FIRST
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000));

$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_NEXT_VALID);
var_dump($cal->getSkippedWalltimeOption()); // 2 WALLTIME_NEXT_VALID
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
int(0)
string(40) "Sunday, March 31, 2013 at 1:30:00 AM GMT"
int(1)
string(41) "Sunday, March 31, 2013 at 12:30:00 AM GMT"
int(2)
string(40) "Sunday, March 31, 2013 at 1:00:00 AM GMT"

Siehe auch

  • IntlCalendar::getRepeatedWallTimeOption() - Get behavior for handling repeating wall time
  • IntlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions


Get time currently represented by the object

  • « IntlCalendar::getSkippedWallTimeOption
  • IntlCalendar::getTimeZone »
  • PHP Manual
  • IntlCalendar
  • Get time currently represented by the object

IntlCalendar::getTime

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getTime — Get time currently represented by the object

Beschreibung

Objektorientierter Stil

public IntlCalendar::getTime ( ) : float

Prozeduraler Stil

intlcal_get_time ( IntlCalendar $cal ) : float

Returns the time associated with this object, expressed as the number of milliseconds since the epoch.

Parameter-Liste

cal

The IntlCalendar resource.

Rückgabewerte

A float representing the number of milliseconds elapsed since the reference time (1 Jan 1970 00:00:00 UTC).

Beispiele

Beispiel #1 IntlCalendar::getTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = new IntlGregorianCalendar(2013, 4 /* May */, 1, 0, 0, 0);
$time = $cal->getTime();
var_dump($time, $time / 1000 == strtotime('2013-05-01 00:00:00')); //true

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

float(1367362800000)
bool(true)

Siehe auch

  • IntlCalendar::getNow() - Get number representing the current time


Get the object's timezone

  • « IntlCalendar::getTime
  • IntlCalendar::getType »
  • PHP Manual
  • IntlCalendar
  • Get the object's timezone

IntlCalendar::getTimeZone

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getTimeZone — Get the object's timezone

Beschreibung

Objektorientierter Stil

public IntlCalendar::getTimeZone ( ) : IntlTimeZone

Prozeduraler Stil

intlcal_get_time_zone ( IntlCalendar $cal ) : IntlTimeZone

Returns the IntlTimeZone object associated with this calendar.

Parameter-Liste

cal

The IntlCalendar resource.

Rückgabewerte

An IntlTimeZone object corresponding to the one used internally in this object.

Beispiele

Beispiel #1 IntlCalendar::getTimeZone()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = IntlCalendar::createInstance();
print_r($cal->getTimeZone());

$cal->setTimeZone('UTC');
print_r($cal->getTimeZone());

$cal = IntlCalendar::fromDateTime('2012-01-01 00:00:00 GMT+03:33');
print_r($cal->getTimeZone());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

IntlTimeZone Object
(
    [valid] => 1
    [id] => Europe/Lisbon
    [rawOffset] => 0
    [currentOffset] => 3600000
)
IntlTimeZone Object
(
    [valid] => 1
    [id] => UTC
    [rawOffset] => 0
    [currentOffset] => 0
)
IntlTimeZone Object
(
    [valid] => 1
    [id] => GMT+03:33
    [rawOffset] => 12780000
    [currentOffset] => 12780000
)

Siehe auch

  • IntlCalendar::setTimeZone() - Set the timezone used by this calendar
  • IntlCalendar::createInstance() - Create a new IntlCalendar
  • IntlGregorianCalendar::__construct() - Create the Gregorian Calendar class


Get the calendar type

  • « IntlCalendar::getTimeZone
  • IntlCalendar::getWeekendTransition »
  • PHP Manual
  • IntlCalendar
  • Get the calendar type

IntlCalendar::getType

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getType — Get the calendar type

Beschreibung

Objektorientierter Stil

public IntlCalendar::getType ( ) : string

Prozeduraler Stil

intlcal_get_type ( IntlCalendar $cal ) : string

A string describing the type of this calendar. This is one of the valid values for the calendar keyword value 'calendar'.

Parameter-Liste

cal

The IntlCalendar resource.

Rückgabewerte

A string representing the calendar type, such as 'gregorian', 'islamic', etc.

Beispiele

Beispiel #1 IntlCalendar::getType()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = IntlCalendar::createInstance(NULL, '@calendar=ethiopic-amete-alem');
var_dump($cal->getType());

$cal = new IntlGregorianCalendar();
var_dump($cal->getType());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(19) "ethiopic-amete-alem"
string(9) "gregorian"


Get time of the day at which weekend begins or ends

  • « IntlCalendar::getType
  • IntlCalendar::inDaylightTime »
  • PHP Manual
  • IntlCalendar
  • Get time of the day at which weekend begins or ends

IntlCalendar::getWeekendTransition

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends

Beschreibung

Objektorientierter Stil

public IntlCalendar::getWeekendTransition ( string $dayOfWeek ) : int|false

Prozeduraler Stil

intlcal_get_weekend_transition ( IntlCalendar $cal , string $dayOfWeek ) : int|false

Returns the number of milliseconds after midnight at which the weekend begins or ends.

This is only applicable for days of the week for which
IntlCalendar::getDayOfWeekType() returns either
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
IntlCalendar::DOW_TYPE_WEEKEND_CEASE. Calling this
function for other days of the week is an error condition.

This function requires ICU 4.4 or later.

Parameter-Liste

cal

The IntlCalendar resource.

dayOfWeek

One of the constants IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, …,
IntlCalendar::DOW_SATURDAY.

Rückgabewerte

The number of milliseconds into the day at which the weekend begins or endsIm Fehlerfall wird false zurückgegeben..

Beispiele

See example on IntlCalendar::getDayOfWeekType().


Whether the object's time is in Daylight Savings Time

  • « IntlCalendar::getWeekendTransition
  • IntlCalendar::isEquivalentTo »
  • PHP Manual
  • IntlCalendar
  • Whether the object's time is in Daylight Savings Time

IntlCalendar::inDaylightTime

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::inDaylightTime — Whether the object's time is in Daylight Savings Time

Beschreibung

Objektorientierter Stil

public IntlCalendar::inDaylightTime ( ) : bool

Prozeduraler Stil

intlcal_in_daylight_time ( IntlCalendar $cal ) : bool

Whether, for the instant represented by this object and for this object's timezone, daylight saving time is in place.

Parameter-Liste

cal

The IntlCalendar resource.

Rückgabewerte

Returns true if the date is in Daylight Savings Time, false otherwise. The value false may also be returned on failure, for instance after specifying invalid field values on non-lenient mode; use exceptions or query intl_get_error_code() to disambiguate.

Beispiele

Beispiel #1 IntlCalendar::inDaylightTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1, 4, 56, 31);
var_dump($cal->inDaylightTime()); // true
$cal->set(IntlCalendar::FIELD_MONTH, 11 /* December */);
var_dump($cal->inDaylightTime()); // false

//DST end transition on 2013-10-27 at 0200 (wall time back 1 hour)
$cal = new IntlGregorianCalendar(2013, 9 /* October */, 27, 1, 30, 0);

var_dump($cal->inDaylightTime()); // false (default WALLTIME_LAST)

$cal->setRepeatedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1); // force time recalculation
var_dump($cal->inDaylightTime()); // true


Whether another calendar is equal but for a different time

  • « IntlCalendar::inDaylightTime
  • IntlCalendar::isLenient »
  • PHP Manual
  • IntlCalendar
  • Whether another calendar is equal but for a different time

IntlCalendar::isEquivalentTo

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time

Beschreibung

Objektorientierter Stil

public IntlCalendar::isEquivalentTo ( IntlCalendar $other ) : bool

Prozeduraler Stil

intlcal_is_equivalent_to ( IntlCalendar $cal , IntlCalendar $other ) : bool

Returns whether this and the given object are equivalent for all purposes except as to the time they have set. The locales do not have to match, as long as no change in behavior results from such mismatch. This includes the timezone, whether the lenient mode is set, the repeated and skipped wall time settings, the days of the week when the weekend starts and ceases and the times where such transitions occur. It may also include other calendar specific settings, such as the Gregorian/Julian transition instant.

Parameter-Liste

cal

The IntlCalendar resource.

other

The other calendar against which the comparison is to be made.

Rückgabewerte

Assuming there are no argument errors, returns true if the calendars are equivalent except possibly for their set time.

Beispiele

Beispiel #1 IntlCalendar::isEquivalentTo()

<?php
$cal1 = IntlCalendar::createInstance('Europe/Lisbon', 'pt_PT');
$cal2 = IntlCalendar::createInstance('Europe/Lisbon', 'es_ES');
$cal2->clear();

var_dump($cal1->isEquivalentTo($cal2)); // true

$cal3 = IntlCalendar::createInstance('Europe/Lisbon', 'en_US');
var_dump($cal1->isEquivalentTo($cal3)); // false
var_dump($cal1->getFirstDayOfWeek(),    // 2 (Monday)
$cal3->getFirstDayOfWeek());            // 1 (Sunday)

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
int(2)
int(1)

Siehe auch

  • IntlCalendar::equals() - Compare time of two IntlCalendar objects for equality


Whether date/time interpretation is in lenient mode

  • « IntlCalendar::isEquivalentTo
  • IntlCalendar::isSet »
  • PHP Manual
  • IntlCalendar
  • Whether date/time interpretation is in lenient mode

IntlCalendar::isLenient

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode

Beschreibung

Objektorientierter Stil

public IntlCalendar::isLenient ( ) : bool

Prozeduraler Stil

intlcal_is_lenient ( IntlCalendar $cal ) : bool

Returns whether the current date/time interpretations is lenient (the default). If that is case, some out of range values for fields will be accepted instead of raising an error.

Parameter-Liste

cal

The IntlCalendar resource.

Rückgabewerte

A bool representing whether the calendar is set to lenient mode.

Beispiele

Beispiel #1 IntlCalendar::isLenient()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');
ini_set('intl.use_exceptions', '1');

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
var_dump(IntlDateFormatter::formatObject($cal), // 01/07/2013, 00:00:00
$cal->isLenient()); // true

$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 33);
var_dump(IntlDateFormatter::formatObject($cal)); // 02/08/2013, 00:00:00

$cal->setLenient(false);
var_dump($cal->isLenient()); // false
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 33);
var_dump(IntlDateFormatter::formatObject($cal)); // error

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(20) "01/07/2013, 00:00:00"
bool(true)
string(20) "02/08/2013, 00:00:00"
bool(false)

Fatal error: Uncaught exception 'IntlException' with message 'datefmt_format_object: error obtaining instant from IntlCalendar' in /home/foobar/example.php:16
Stack trace:
#0 /home/foobar/example.php(16): IntlDateFormatter::formatObject(Object(IntlGregorianCalendar))
#1 {main}
  thrown in /home/foobar/example.php on line 16


Whether a field is set

  • « IntlCalendar::isLenient
  • IntlCalendar::isWeekend »
  • PHP Manual
  • IntlCalendar
  • Whether a field is set

IntlCalendar::isSet

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isSet — Whether a field is set

Beschreibung

Objektorientierter Stil

public IntlCalendar::isSet ( int $field ) : bool

Prozeduraler Stil

intlcal_is_set ( IntlCalendar $cal , int $field ) : bool

Returns whether a field is set (as opposed to clear). Set fields take priority over unset fields and their default values when the date/time is being calculated. Fields set later take priority over fields set earlier.

Parameter-Liste

cal

The IntlCalendar resource.

field

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

Rückgabewerte

Assuming there are no argument errors, returns true if the field is set.

Beispiele

See the example on IntlCalendar::clear().

Siehe auch

  • IntlCalendar::clear() - Clear a field or all fields
  • IntlCalendar::set() - Set a time field or several common fields at once


Whether a certain date/time is in the weekend

  • « IntlCalendar::isSet
  • IntlCalendar::roll »
  • PHP Manual
  • IntlCalendar
  • Whether a certain date/time is in the weekend

IntlCalendar::isWeekend

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isWeekend — Whether a certain date/time is in the weekend

Beschreibung

Objektorientierter Stil

public IntlCalendar::isWeekend ( float $date = NULL ) : bool

Prozeduraler Stil

intlcal_is_weekend ( IntlCalendar $cal , float $date = NULL ) : bool

Returns whether either the obejct's current time or the provided timestamp occur during a weekend in this object's calendar system.

This function requires ICU 4.4 or later.

Parameter-Liste

cal

The IntlCalendar resource.

date

An optional timestamp representing the number of milliseconds since the epoch, excluding leap seconds. If null, this object's current time is used instead.

Rückgabewerte

A bool indicating whether the given or this object's time occurs in a weekend.

The value false may also be returned on failure, for instance after giving a date out of bounds on non-lenient mode; use exceptions or query intl_get_error_code() to disambiguate.

Beispiele

Beispiel #1 IntlCalendar::isWeekend()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

$cal = new IntlGregorianCalendar(NULL, 'en_US');
$cal->set(2013, 6 /* July */, 7); // a Sunday

var_dump($cal->isWeekend()); // true
var_dump($cal->isWeekend(strtotime('2013-07-01 00:00:00'))); // false, Monday

$cal = new IntlGregorianCalendar(NULL, 'ar_SA');
$cal->set(2013, 6 /* July */, 7); // a Sunday
var_dump($cal->isWeekend()); // false, Sunday not in weekend in this calendar

Siehe auch

  • IntlCalendar::getDayOfWeekType() - Tell whether a day is a weekday, weekend or a day that has a transition between the two
  • IntlCalendar::getWeekendTransition() - Get time of the day at which weekend begins or ends


Add value to field without carrying into more significant fields

  • « IntlCalendar::isWeekend
  • IntlCalendar::set »
  • PHP Manual
  • IntlCalendar
  • Add value to field without carrying into more significant fields

IntlCalendar::roll

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::roll — Add value to field without carrying into more significant fields

Beschreibung

Objektorientierter Stil

public IntlCalendar::roll ( int $field , mixed $amountOrUpOrDown ) : bool

Prozeduraler Stil

intlcal_roll ( IntlCalendar $cal , int $field , mixed $amountOrUpOrDown ) : bool

Adds a (signed) amount to a field. The difference with respect to IntlCalendar::add() is that when the field value overflows, it does not carry into more significant fields.

Parameter-Liste

cal

The IntlCalendar resource.

field

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

amountOrUpOrDown

The (signed) amount to add to the field, true for rolling up (adding 1), or false for rolling down (subtracting 1).

Rückgabewerte

Returns true on success or false on failure.

Beispiele

Beispiel #1 IntlCalendar::roll()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 5 /* June */, 30);

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
var_dump(IntlDateFormatter::formatObject($cal)); // "01/07/2013, 00:00:00"

$cal->set(2013, 5 /* June */, 30);
$cal->roll(IntlCalendar::FIELD_DAY_OF_MONTH, true); // roll up, same as rolling +1
var_dump(IntlDateFormatter::formatObject($cal)); // "01/06/2013, 00:00:00"

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(20) "01/07/2013, 00:00:00"
string(20) "01/06/2013, 00:00:00"

Siehe auch

  • IntlCalendar::add() - Add a (signed) amount of time to a field
  • IntlCalendar::set() - Set a time field or several common fields at once


Set a time field or several common fields at once

  • « IntlCalendar::roll
  • IntlCalendar::setFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Set a time field or several common fields at once

IntlCalendar::set

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::set — Set a time field or several common fields at once

Beschreibung

Objektorientierter Stil

public IntlCalendar::set ( int $field , int $value ) : bool
public IntlCalendar::set ( int $year , int $month , int $dayOfMonth = NULL , int $hour = NULL , int $minute = NULL , int $second = NULL ) : bool

Prozeduraler Stil

intlcal_set ( IntlCalendar $cal , int $field , int $value ) : bool
intlcal_set ( IntlCalendar $cal , int $year , int $month , int $dayOfMonth = NULL , int $hour = NULL , int $minute = NULL , int $second = NULL ) : bool

Sets either a specific field to the given value, or sets at once several common fields. The range of values that are accepted depend on whether the calendar is using the lenient mode.

For fields that conflict, the fields that are set later have priority.

This method cannot be called with exactly four arguments.

Parameter-Liste

cal

The IntlCalendar resource.

field

One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.

value

The new value of the given field.

year

The new value for IntlCalendar::FIELD_YEAR.

month

The new value for IntlCalendar::FIELD_MONTH. The month sequence is zero-based, i.e., January is represented by 0, February by 1, …, December is 11 and Undecember (if the calendar has it) is 12.

dayOfMonth

The new value for IntlCalendar::FIELD_DAY_OF_MONTH.

hour

The new value for IntlCalendar::FIELD_HOUR_OF_DAY.

minute

The new value for IntlCalendar::FIELD_MINUTE.

second

The new value for IntlCalendar::FIELD_SECOND.

Rückgabewerte

Returns true on success and false on failure.

Beispiele

Beispiel #1 IntlCalendar::set()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

//Calls made later have priority
$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
var_dump(IntlDateFormatter::formatObject($cal));

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
//the time has not been recalculated yet. If we clear the extended year,
//the year set before will be used
$cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR);
var_dump(IntlDateFormatter::formatObject($cal));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(20) "01/07/2011, 00:00:00"
string(20) "01/07/2012, 00:00:00"

Siehe auch

  • IntlCalendar::get() - Get the value for a field
  • IntlCalendar::add() - Add a (signed) amount of time to a field
  • IntlCalendar::roll() - Add value to field without carrying into more significant fields


Set the day on which the week is deemed to start

  • « IntlCalendar::set
  • IntlCalendar::setLenient »
  • PHP Manual
  • IntlCalendar
  • Set the day on which the week is deemed to start

IntlCalendar::setFirstDayOfWeek

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setFirstDayOfWeek — Set the day on which the week is deemed to start

Beschreibung

Objektorientierter Stil

public IntlCalendar::setFirstDayOfWeek ( int $dayOfWeek ) : bool

Prozeduraler Stil

intlcal_set_first_day_of_week ( IntlCalendar $cal , int $dayOfWeek ) : bool

Defines the day of week deemed to start the week. This affects the behavior of fields that depend on the concept of week start and end such as IntlCalendar::FIELD_WEEK_OF_YEAR and IntlCalendar::FIELD_YEAR_WOY.

Parameter-Liste

cal

The IntlCalendar resource.

dayOfWeek

One of the constants IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, …,
IntlCalendar::DOW_SATURDAY.

Rückgabewerte

Returns true on success. Failure can only happen due to invalid parameters.

Beispiele

Beispiel #1 IntlCalendar::setFirstDayOfWeek()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');

$cal = IntlCalendar::createInstance();
$cal->set(2013, 5 /* June */, 30); // A Sunday

var_dump($cal->getFirstDayOfWeek()); // 2 (Monday)

echo IntlDateFormatter::formatObject($cal, <<<EOD
'local day of week: 'cc'
week of month    : 'W'
week of year     : 'ww
EOD
), "\n";

$cal->setFirstDayOfWeek(IntlCalendar::DOW_SUNDAY);

echo IntlDateFormatter::formatObject($cal, <<<EOD
'local day of week: 'cc'
week of month    : 'W'
week of year     : 'ww
EOD
), "\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2)
local day of week: 7
week of month    : 4
week of year     : 26
local day of week: 1
week of month    : 5
week of year     : 27


Set whether date/time interpretation is to be lenient

  • « IntlCalendar::setFirstDayOfWeek
  • IntlCalendar::setMinimalDaysInFirstWeek »
  • PHP Manual
  • IntlCalendar
  • Set whether date/time interpretation is to be lenient

IntlCalendar::setLenient

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient

Beschreibung

Objektorientierter Stil

public IntlCalendar::setLenient ( bool $isLenient ) : bool

Prozeduraler Stil

intlcal_set_lenient ( IntlCalendar $cal , bool $isLenient ) : bool

Defines whether the calendar is ‘lenient mode’. In such a mode, some of out-of-bounds values for some fields are accepted, the behavior being similar to that of IntlCalendar::add() (i.e., the value wraps around, carrying into more significant fields each time). If the lenient mode is off, then such values will generate an error.

Parameter-Liste

cal

The IntlCalendar resource.

isLenient

Use true to activate the lenient mode; false otherwise.

Rückgabewerte

Returns true on success. Failure can only happen due to invalid parameters.

Beispiele

See the example in IntlCalendar::isLenient().


Set minimal number of days the first week in a year or month can have

  • « IntlCalendar::setLenient
  • IntlCalendar::setRepeatedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Set minimal number of days the first week in a year or month can have

IntlCalendar::setMinimalDaysInFirstWeek

(PHP 5 >= 5.5.1, PHP 7)

IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have

Beschreibung

Objektorientierter Stil

public IntlCalendar::setMinimalDaysInFirstWeek ( int $minimalDays ) : bool

Prozeduraler Stil

intlcal_set_minimal_days_in_first_week ( IntlCalendar $cal , int $minimalDays ) : bool

Sets the smallest number of days the first week of a year or month must have in the new year or month. For instance, in the Gregorian calendar, if this value is 1, then the first week of the year will necessarily include January 1st, while if this value is 7, then the week with January 1st will be the first week of the year only if the day of the week for January 1st matches the day of the week returned by IntlCalendar::getFirstDayOfWeek(); otherwise it will be the previous year's last week.

Parameter-Liste

cal

The IntlCalendar resource.

minimalDays

The number of minimal days to set.

Rückgabewerte

true on success, false on failure.


Set behavior for handling repeating wall times at negative timezone offset transitions

  • « IntlCalendar::setMinimalDaysInFirstWeek
  • IntlCalendar::setSkippedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Set behavior for handling repeating wall times at negative timezone offset transitions

IntlCalendar::setRepeatedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions

Beschreibung

Objektorientierter Stil

public IntlCalendar::setRepeatedWallTimeOption ( int $wallTimeOption ) : bool

Prozeduraler Stil

intlcal_set_repeated_wall_time_option ( IntlCalendar $cal , int $wallTimeOption ) : bool

Sets the current strategy for dealing with wall times that are repeated whenever the clock is set back during dailight saving time end transitions. The default value is IntlCalendar::WALLTIME_LAST (take the post-DST instant). The other possible value is IntlCalendar::WALLTIME_FIRST (take the instant that occurs during DST).

This function requires ICU 4.9 or later.

Parameter-Liste

cal

The IntlCalendar resource.

wallTimeOption

One of the constants IntlCalendar::WALLTIME_FIRST or IntlCalendar::WALLTIME_LAST.

Rückgabewerte

Returns true on success. Failure can only happen due to invalid parameters.

Beispiele

See the example on IntlCalendar::getRepeatedWallTimeOption().

Siehe auch

  • intlCalendar::getRepeatedWallTimeOption() - Get behavior for handling repeating wall time
  • intlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • intlCalendar::getSkippedWallTimeOption() - Get behavior for handling skipped wall time


Set behavior for handling skipped wall times at positive timezone offset transitions

  • « IntlCalendar::setRepeatedWallTimeOption
  • IntlCalendar::setTime »
  • PHP Manual
  • IntlCalendar
  • Set behavior for handling skipped wall times at positive timezone offset transitions

IntlCalendar::setSkippedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions

Beschreibung

Objektorientierter Stil

public IntlCalendar::setSkippedWallTimeOption ( int $wallTimeOption ) : bool

Prozeduraler Stil

intlcal_set_skipped_wall_time_option ( IntlCalendar $cal , int $wallTimeOption ) : bool

Sets the current strategy for dealing with wall times that are skipped whenever the clock is forwarded during dailight saving time start transitions. The default value is IntlCalendar::WALLTIME_LAST (take it as being the same instant as the one when the wall time is one hour more). Alternative values are IntlCalendar::WALLTIME_FIRST (same instant as the one with a wall time of one hour less) and IntlCalendar::WALLTIME_NEXT_VALID (same instant as when DST begins).

This affects only the instant represented by the calendar (as reported by IntlCalendar::getTime()), the field values will not be rewritten accordingly.

The calendar must be lenient for this option to have any effect, otherwise attempting to set a non-existing time will cause an error.

This function requires ICU 4.9 or later.

Parameter-Liste

cal

The IntlCalendar resource.

wallTimeOption

One of the constants IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST or
IntlCalendar::WALLTIME_NEXT_VALID.

Rückgabewerte

Returns true on success. Failure can only happen due to invalid parameters.

Beispiele

See the example on IntlCalendar::getSkippedWallTimeOption().

Siehe auch

  • intlCalendar::getSkippedWallTimeOption() - Get behavior for handling skipped wall time
  • intlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions
  • intlCalendar::getRepeatedWallTimeOption() - Get behavior for handling repeating wall time


Set the calendar time in milliseconds since the epoch

  • « IntlCalendar::setSkippedWallTimeOption
  • IntlCalendar::setTimeZone »
  • PHP Manual
  • IntlCalendar
  • Set the calendar time in milliseconds since the epoch

IntlCalendar::setTime

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setTime — Set the calendar time in milliseconds since the epoch

Beschreibung

Objektorientierter Stil

public IntlCalendar::setTime ( float $date ) : bool

Prozeduraler Stil

intlcal_set_time ( IntlCalendar $cal , float $date ) : bool

Sets the instant represented by this object. The instant is represented by a float whose value should be an integer number of milliseconds since the epoch (1 Jan 1970 00:00:00.000 UTC), ignoring leap seconds. All the field values will be recalculated accordingly.

Parameter-Liste

cal

The IntlCalendar resource.

date

An instant represented by the number of number of milliseconds between such instant and the epoch, ignoring leap seconds.

Rückgabewerte

Returns true on success and false on failure.

Beispiele

Beispiel #1 IntlCalendar::setTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'fr_FR');

$cal = new IntlGregorianCalendar(2013, 5 /* May */, 1, 12, 0, 0);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

/* In Europe/Lisbon, on 2013-10-27 at 0200, the clock goes back one hour and
   the timezone from UTC+01 to UTC+00 */

$cal->setTime(strtotime('2013-10-27 00:30:00 UTC') * 1000.);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

$cal->setTime(strtotime('2013-10-27 01:30:00 UTC') * 1000.);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

samedi 1 juin 2013 12:00:00 heure avancée d’Europe de l’Ouest
dimanche 27 octobre 2013 01:30:00 heure avancée d’Europe de l’Ouest
dimanche 27 octobre 2013 01:30:00 heure normale d’Europe de l’Ouest


Set the timezone used by this calendar

  • « IntlCalendar::setTime
  • IntlCalendar::toDateTime »
  • PHP Manual
  • IntlCalendar
  • Set the timezone used by this calendar

IntlCalendar::setTimeZone

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setTimeZone — Set the timezone used by this calendar

Beschreibung

Objektorientierter Stil

public IntlCalendar::setTimeZone ( mixed $timeZone ) : bool

Prozeduraler Stil

intlcal_set_time_zone ( IntlCalendar $cal , mixed $timeZone ) : bool

Defines a new timezone for this calendar. The time represented by the object is preserved to the detriment of the field values.

Parameter-Liste

cal

The IntlCalendar resource.

timeZone

The new timezone to be used by this calendar. It can be specified in the following ways:

  • null, in which case the default timezone will be used, as specified in the ini setting date.timezone or through the function date_default_timezone_set() and as returned by date_default_timezone_get().

  • An IntlTimeZone, which will be used directly.

  • A DateTimeZone. Its identifier will be extracted and an ICU timezone object will be created; the timezone will be backed by ICU's database, not PHP's.

  • A string, which should be a valid ICU timezone identifier. See IntlTimeZone::createTimeZoneIDEnumeration(). Raw offsets such as "GMT+08:30" are also accepted.

Rückgabewerte

Returns true on success and false on failure.

Beispiele

Beispiel #1 IntlCalendar::setTimeZone()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');

$cal = new IntlGregorianCalendar(2013, 5 /* May */, 1, 12, 0, 0);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

$cal->setTimeZone(IntlTimeZone::getGMT());
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

$cal->setTimeZone('GMT+03:33');
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

sábado, 1 de junio de 2013 12:00:00 Hora de verano de Europa occidental
(instant 1370084400000)
sábado, 1 de junio de 2013 11:00:00 GMT
(instant 1370084400000)
sábado, 1 de junio de 2013 14:33:00 GMT+03:33
(instant 1370084400000)


Convert an IntlCalendar into a DateTime object

  • « IntlCalendar::setTimeZone
  • IntlGregorianCalendar »
  • PHP Manual
  • IntlCalendar
  • Convert an IntlCalendar into a DateTime object

IntlCalendar::toDateTime

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a2)

IntlCalendar::toDateTime — Convert an IntlCalendar into a DateTime object

Beschreibung

Objektorientierter Stil

public IntlCalendar::toDateTime ( ) : DateTime

Prozeduraler Stil

intlcal_to_date_time ( IntlCalendar $cal ) : DateTime

Create a DateTime object that represents the same instant (up to second precision, with a rounding error of less than 1 second) and has an analog timezone to this object (the difference being DateTime's timezone will be backed by PHP's timezone while IntlCalendar's timezone is backed by ICU's).

Parameter-Liste

cal

The IntlCalendar resource.

Rückgabewerte

A DateTime object with the same timezone as this object (though using PHP's database instead of ICU's) and the same time, except for the smaller precision (second precision instead of millisecond). Returns false on failure.

Beispiele

Beispiel #1 IntlCalendar::toDateTime()

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'pt_PT');

$cal = IntlCalendar::createInstance('Europe/Lisbon'); //current time

$dt = $cal->toDateTime();
print_r($dt);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

DateTime Object
(
    [date] => 2013-07-02 00:29:13
    [timezone_type] => 3
    [timezone] => Europe/Lisbon
)

Siehe auch

  • IntlCalendar::fromDateTime() - Create an IntlCalendar from a DateTime object or string
  • IntlCalendar::getTime() - Get time currently represented by the object
  • IntlCalendar::createInstance() - Create a new IntlCalendar
  • DateTime:__construct()


The IntlGregorianCalendar class

(PHP 5 >= 5.5.0, PHP 7)

Einführung

Klassenbeschreibung

IntlGregorianCalendar extends IntlCalendar {
/* Geerbte Konstanten */
const int IntlCalendar::FIELD_ERA = 0 ;
const int IntlCalendar::FIELD_YEAR = 1 ;
const int IntlCalendar::FIELD_MONTH = 2 ;
const int IntlCalendar::FIELD_WEEK_OF_YEAR = 3 ;
const int IntlCalendar::FIELD_WEEK_OF_MONTH = 4 ;
const int IntlCalendar::FIELD_DATE = 5 ;
const int IntlCalendar::FIELD_DAY_OF_YEAR = 6 ;
const int IntlCalendar::FIELD_DAY_OF_WEEK = 7 ;
const int IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH = 8 ;
const int IntlCalendar::FIELD_AM_PM = 9 ;
const int IntlCalendar::FIELD_HOUR = 10 ;
const int IntlCalendar::FIELD_HOUR_OF_DAY = 11 ;
const int IntlCalendar::FIELD_MINUTE = 12 ;
const int IntlCalendar::FIELD_SECOND = 13 ;
const int IntlCalendar::FIELD_MILLISECOND = 14 ;
const int IntlCalendar::FIELD_ZONE_OFFSET = 15 ;
const int IntlCalendar::FIELD_DST_OFFSET = 16 ;
const int IntlCalendar::FIELD_YEAR_WOY = 17 ;
const int IntlCalendar::FIELD_DOW_LOCAL = 18 ;
const int IntlCalendar::FIELD_EXTENDED_YEAR = 19 ;
const int IntlCalendar::FIELD_JULIAN_DAY = 20 ;
const int IntlCalendar::FIELD_MILLISECONDS_IN_DAY = 21 ;
const int IntlCalendar::FIELD_IS_LEAP_MONTH = 22 ;
const int IntlCalendar::FIELD_FIELD_COUNT = 23 ;
const int IntlCalendar::FIELD_DAY_OF_MONTH = 5 ;
const int IntlCalendar::DOW_SUNDAY = 1 ;
const int IntlCalendar::DOW_MONDAY = 2 ;
const int IntlCalendar::DOW_TUESDAY = 3 ;
const int IntlCalendar::DOW_WEDNESDAY = 4 ;
const int IntlCalendar::DOW_THURSDAY = 5 ;
const int IntlCalendar::DOW_FRIDAY = 6 ;
const int IntlCalendar::DOW_SATURDAY = 7 ;
const int IntlCalendar::DOW_TYPE_WEEKDAY = 0 ;
const int IntlCalendar::DOW_TYPE_WEEKEND = 1 ;
const int IntlCalendar::DOW_TYPE_WEEKEND_OFFSET = 2 ;
const int IntlCalendar::DOW_TYPE_WEEKEND_CEASE = 3 ;
const int IntlCalendar::WALLTIME_FIRST = 1 ;
const int IntlCalendar::WALLTIME_LAST = 0 ;
const int IntlCalendar::WALLTIME_NEXT_VALID = 2 ;
/* Methoden */
public __construct ( IntlTimeZone $tz = ? , string $locale = ? )
public getGregorianChange ( ) : float|false
public isLeapYear ( int $year ) : bool
public setGregorianChange ( float $date ) : bool
/* Geerbte Methoden */
public IntlCalendar::add ( int $field , int $amount ) : bool
public IntlCalendar::after ( IntlCalendar $other ) : bool
public IntlCalendar::before ( IntlCalendar $other ) : bool
public IntlCalendar::clear ( int $field = NULL ) : bool
private IntlCalendar::__construct ( )
public static IntlCalendar::createInstance ( mixed $timeZone = NULL , string $locale = "" ) : IntlCalendar
public IntlCalendar::equals ( IntlCalendar $other ) : bool
public IntlCalendar::fieldDifference ( float $when , int $field ) : int|false
public static IntlCalendar::fromDateTime ( mixed $dateTime ) : IntlCalendar
public IntlCalendar::get ( int $field ) : int
public IntlCalendar::getActualMaximum ( int $field ) : int|false
public IntlCalendar::getActualMinimum ( int $field ) : int|false
public static IntlCalendar::getAvailableLocales ( ) : array
public IntlCalendar::getDayOfWeekType ( int $dayOfWeek ) : int|false
public IntlCalendar::getErrorCode ( ) : int
public IntlCalendar::getErrorMessage ( ) : string
public IntlCalendar::getFirstDayOfWeek ( ) : int|false
public IntlCalendar::getGreatestMinimum ( int $field ) : int|false
public static IntlCalendar::getKeywordValuesForLocale ( string $key , string $locale , bool $commonlyUsed ) : Iterator|false
public IntlCalendar::getLeastMaximum ( int $field ) : int|false
public IntlCalendar::getLocale ( int $localeType ) : string|false
public IntlCalendar::getMaximum ( int $field ) : int|false
public IntlCalendar::getMinimalDaysInFirstWeek ( ) : int|false
public IntlCalendar::getMinimum ( int $field ) : int|false
public static IntlCalendar::getNow ( ) : float
public IntlCalendar::getRepeatedWallTimeOption ( ) : int
public IntlCalendar::getSkippedWallTimeOption ( ) : int
public IntlCalendar::getTime ( ) : float
public IntlCalendar::getTimeZone ( ) : IntlTimeZone
public IntlCalendar::getType ( ) : string
public IntlCalendar::getWeekendTransition ( string $dayOfWeek ) : int|false
public IntlCalendar::inDaylightTime ( ) : bool
public IntlCalendar::isEquivalentTo ( IntlCalendar $other ) : bool
public IntlCalendar::isLenient ( ) : bool
public IntlCalendar::isSet ( int $field ) : bool
public IntlCalendar::isWeekend ( float $date = NULL ) : bool
public IntlCalendar::roll ( int $field , mixed $amountOrUpOrDown ) : bool
public IntlCalendar::set ( int $field , int $value ) : bool
public IntlCalendar::set ( int $year , int $month , int $dayOfMonth = NULL , int $hour = NULL , int $minute = NULL , int $second = NULL ) : bool
public IntlCalendar::setFirstDayOfWeek ( int $dayOfWeek ) : bool
public IntlCalendar::setLenient ( bool $isLenient ) : bool
public IntlCalendar::setMinimalDaysInFirstWeek ( int $minimalDays ) : bool
public IntlCalendar::setRepeatedWallTimeOption ( int $wallTimeOption ) : bool
public IntlCalendar::setSkippedWallTimeOption ( int $wallTimeOption ) : bool
public IntlCalendar::setTime ( float $date ) : bool
public IntlCalendar::setTimeZone ( mixed $timeZone ) : bool
public IntlCalendar::toDateTime ( ) : DateTime
}

Inhaltsverzeichnis

  • IntlGregorianCalendar::__construct — Create the Gregorian Calendar class
  • IntlGregorianCalendar::getGregorianChange — Get the Gregorian Calendar change date
  • IntlGregorianCalendar::isLeapYear — Determine if the given year is a leap year
  • IntlGregorianCalendar::setGregorianChange — Set the Gregorian Calendar the change date


Create the Gregorian Calendar class

  • « IntlGregorianCalendar
  • IntlGregorianCalendar::getGregorianChange »
  • PHP Manual
  • IntlGregorianCalendar
  • Create the Gregorian Calendar class

IntlGregorianCalendar::__construct

(PHP 5 >= 5.5.0, PHP 7)

IntlGregorianCalendar::__construct — Create the Gregorian Calendar class

Beschreibung

public IntlGregorianCalendar::__construct ( IntlTimeZone $tz = ? , string $locale = ? )
public IntlGregorianCalendar::__construct ( int $timeZoneOrYear , int $localeOrMonth , int $dayOfMonth )
public IntlGregorianCalendar::__construct ( int $timeZoneOrYear , int $localeOrMonth , int $dayOfMonth , int $hour , int $minute , int $second = ? )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

tz

locale

timeZoneOrYear

localeOrMonth

dayOfMonth

hour

minute

second


Get the Gregorian Calendar change date

  • « IntlGregorianCalendar::__construct
  • IntlGregorianCalendar::isLeapYear »
  • PHP Manual
  • IntlGregorianCalendar
  • Get the Gregorian Calendar change date

IntlGregorianCalendar::getGregorianChange

(PHP 5 >= 5.5.0, PHP 7)

IntlGregorianCalendar::getGregorianChange — Get the Gregorian Calendar change date

Beschreibung

public IntlGregorianCalendar::getGregorianChange ( ) : float|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the change dateIm Fehlerfall wird false zurückgegeben..


Determine if the given year is a leap year

  • « IntlGregorianCalendar::getGregorianChange
  • IntlGregorianCalendar::setGregorianChange »
  • PHP Manual
  • IntlGregorianCalendar
  • Determine if the given year is a leap year

IntlGregorianCalendar::isLeapYear

(PHP 5 >= 5.5.0, PHP 7)

IntlGregorianCalendar::isLeapYear — Determine if the given year is a leap year

Beschreibung

public IntlGregorianCalendar::isLeapYear ( int $year ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

year

Rückgabewerte

Returns true for leap years, false otherwise and on failure.


Set the Gregorian Calendar the change date

  • « IntlGregorianCalendar::isLeapYear
  • IntlTimeZone »
  • PHP Manual
  • IntlGregorianCalendar
  • Set the Gregorian Calendar the change date

IntlGregorianCalendar::setGregorianChange

(PHP 5 >= 5.5.0, PHP 7)

IntlGregorianCalendar::setGregorianChange — Set the Gregorian Calendar the change date

Beschreibung

public IntlGregorianCalendar::setGregorianChange ( float $date ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

date

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


The IntlTimeZone class

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

Einführung

Klassenbeschreibung

IntlTimeZone {
/* Constants */
const int DISPLAY_SHORT = 1 ;
const int DISPLAY_LONG = 2 ;
/* Methoden */
public static countEquivalentIDs ( string $zoneId ) : int
public static createDefault ( ) : IntlTimeZone
public static createEnumeration ( mixed $countryOrRawOffset = ? ) : IntlIterator
public static createTimeZone ( string $zoneId ) : IntlTimeZone
public static createTimeZoneIDEnumeration ( int $zoneType , string $region = ? , int $rawOffset = ? ) : IntlIterator|false
public static fromDateTimeZone ( DateTimeZone $zoneId ) : IntlTimeZone
public static getCanonicalID ( string $zoneId , bool &$isSystemID = ? ) : string
public getDisplayName ( bool $isDaylight = ? , int $style = ? , string $locale = ? ) : string
public getDSTSavings ( ) : int
public static getEquivalentID ( string $zoneId , int $index ) : string
public getErrorCode ( ) : int
public getErrorMessage ( ) : string
public static getGMT ( ) : IntlTimeZone
public getID ( ) : string
public static getIDForWindowsID ( string $timezone , string $region = ? ) : string|false
public getOffset ( float $date , bool $local , int &$rawOffset , int &$dstOffset ) : bool
public getRawOffset ( ) : int
public static getRegion ( string $zoneId ) : string|false
public static getTZDataVersion ( ) : string
public static getUnknown ( ) : IntlTimeZone
public static getWindowsID ( string $timezone ) : string|false
public hasSameRules ( IntlTimeZone $otherTimeZone ) : bool
public toDateTimeZone ( ) : DateTimeZone
public useDaylightTime ( ) : bool
}

Vordefinierte Konstanten

IntlTimeZone::DISPLAY_SHORT

IntlTimeZone::DISPLAY_LONG

Inhaltsverzeichnis

  • IntlTimeZone::countEquivalentIDs — Get the number of IDs in the equivalency group that includes the given ID
  • IntlTimeZone::createDefault — Create a new copy of the default timezone for this host
  • IntlTimeZone::createEnumeration — Get an enumeration over time zone IDs associated with the given country or offset
  • IntlTimeZone::createTimeZone — Create a timezone object for the given ID
  • IntlTimeZone::createTimeZoneIDEnumeration — Get an enumeration over system time zone IDs with the given filter conditions
  • IntlTimeZone::fromDateTimeZone — Create a timezone object from DateTimeZone
  • IntlTimeZone::getCanonicalID — Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID
  • IntlTimeZone::getDisplayName — Get a name of this time zone suitable for presentation to the user
  • IntlTimeZone::getDSTSavings — Get the amount of time to be added to local standard time to get local wall clock time
  • IntlTimeZone::getEquivalentID — Get an ID in the equivalency group that includes the given ID
  • IntlTimeZone::getErrorCode — Get last error code on the object
  • IntlTimeZone::getErrorMessage — Get last error message on the object
  • IntlTimeZone::getGMT — Create GMT (UTC) timezone
  • IntlTimeZone::getID — Get timezone ID
  • IntlTimeZone::getIDForWindowsID — Translate a Windows timezone into a system timezone
  • IntlTimeZone::getOffset — Get the time zone raw and GMT offset for the given moment in time
  • IntlTimeZone::getRawOffset — Get the raw GMT offset (before taking daylight savings time into account
  • IntlTimeZone::getRegion — Get the region code associated with the given system time zone ID
  • IntlTimeZone::getTZDataVersion — Get the timezone data version currently used by ICU
  • IntlTimeZone::getUnknown — Get the "unknown" time zone
  • IntlTimeZone::getWindowsID — Translate a system timezone into a Windows timezone
  • IntlTimeZone::hasSameRules — Check if this zone has the same rules and offset as another zone
  • IntlTimeZone::toDateTimeZone — Convert to DateTimeZone object
  • IntlTimeZone::useDaylightTime — Check if this time zone uses daylight savings time


Get the number of IDs in the equivalency group that includes the given ID

  • « IntlTimeZone
  • IntlTimeZone::createDefault »
  • PHP Manual
  • IntlTimeZone
  • Get the number of IDs in the equivalency group that includes the given ID

IntlTimeZone::countEquivalentIDs

intltz_count_equivalent_ids

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::countEquivalentIDs -- intltz_count_equivalent_ids — Get the number of IDs in the equivalency group that includes the given ID

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::countEquivalentIDs ( string $zoneId ) : int

Prozeduraler Stil:

intltz_count_equivalent_ids ( string $zoneId ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

zoneId

Rückgabewerte


Create a new copy of the default timezone for this host

  • « IntlTimeZone::countEquivalentIDs
  • IntlTimeZone::createEnumeration »
  • PHP Manual
  • IntlTimeZone
  • Create a new copy of the default timezone for this host

IntlTimeZone::createDefault

intltz_create_default

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::createDefault -- intltz_create_default — Create a new copy of the default timezone for this host

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::createDefault ( ) : IntlTimeZone

Prozeduraler Stil:

intltz_create_default ( ) : IntlTimeZone

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get an enumeration over time zone IDs associated with the given country or offset

  • « IntlTimeZone::createDefault
  • IntlTimeZone::createTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Get an enumeration over time zone IDs associated with the given country or offset

IntlTimeZone::createEnumeration

intltz_create_enumeration

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::createEnumeration -- intltz_create_enumeration — Get an enumeration over time zone IDs associated with the given country or offset

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::createEnumeration ( mixed $countryOrRawOffset = ? ) : IntlIterator

Prozeduraler Stil:

intltz_create_enumeration ( mixed $countryOrRawOffset = ? ) : IntlIterator

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

countryOrRawOffset

Rückgabewerte


Create a timezone object for the given ID

  • « IntlTimeZone::createEnumeration
  • IntlTimeZone::createTimeZoneIDEnumeration »
  • PHP Manual
  • IntlTimeZone
  • Create a timezone object for the given ID

IntlTimeZone::createTimeZone

intltz_create_time_zone

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::createTimeZone -- intltz_create_time_zone — Create a timezone object for the given ID

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::createTimeZone ( string $zoneId ) : IntlTimeZone

Prozeduraler Stil:

intltz_create_time_zone ( string $zoneId ) : IntlTimeZone

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

zoneId

Rückgabewerte


Get an enumeration over system time zone IDs with the given filter conditions

  • « IntlTimeZone::createTimeZone
  • IntlTimeZone::fromDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Get an enumeration over system time zone IDs with the given filter conditions

IntlTimeZone::createTimeZoneIDEnumeration

intltz_create_time_zone_id_enumeration

(PHP 5 >= 5.5.0, PHP 7)

IntlTimeZone::createTimeZoneIDEnumeration -- intltz_create_time_zone_id_enumeration — Get an enumeration over system time zone IDs with the given filter conditions

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::createTimeZoneIDEnumeration ( int $zoneType , string $region = ? , int $rawOffset = ? ) : IntlIterator|false

Prozeduraler Stil:

intltz_create_time_zone_id_enumeration ( int $zoneType , string $region = ? , int $rawOffset = ? ) : IntlIterator|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

zoneType

region

rawOffset

Rückgabewerte

Returns IntlIteratorIm Fehlerfall wird false zurückgegeben..


Create a timezone object from DateTimeZone

  • « IntlTimeZone::createTimeZoneIDEnumeration
  • IntlTimeZone::getCanonicalID »
  • PHP Manual
  • IntlTimeZone
  • Create a timezone object from DateTimeZone

IntlTimeZone::fromDateTimeZone

intltz_from_date_time_zone

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::fromDateTimeZone -- intltz_from_date_time_zone — Create a timezone object from DateTimeZone

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::fromDateTimeZone ( DateTimeZone $zoneId ) : IntlTimeZone

Prozeduraler Stil:

intltz_from_date_time_zone ( DateTimeZone $zoneId ) : IntlTimeZone

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

zoneId

Rückgabewerte


Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID

  • « IntlTimeZone::fromDateTimeZone
  • IntlTimeZone::getDisplayName »
  • PHP Manual
  • IntlTimeZone
  • Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID

IntlTimeZone::getCanonicalID

intltz_get_canonical_id

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getCanonicalID -- intltz_get_canonical_id — Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::getCanonicalID ( string $zoneId , bool &$isSystemID = ? ) : string

Prozeduraler Stil:

intltz_get_canonical_id ( string $zoneId , bool &$isSystemID = ? ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

zoneId

isSystemID

Rückgabewerte


Get a name of this time zone suitable for presentation to the user

  • « IntlTimeZone::getCanonicalID
  • IntlTimeZone::getDSTSavings »
  • PHP Manual
  • IntlTimeZone
  • Get a name of this time zone suitable for presentation to the user

IntlTimeZone::getDisplayName

intltz_get_display_name

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getDisplayName -- intltz_get_display_name — Get a name of this time zone suitable for presentation to the user

Beschreibung

Objektorientierter Stil (method):

public IntlTimeZone::getDisplayName ( bool $isDaylight = ? , int $style = ? , string $locale = ? ) : string

Prozeduraler Stil:

intltz_get_display_name ( IntlTimeZone $timezone , bool $isDaylight = ? , int $style = ? , string $locale = ? ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

isDaylight

style

locale

Rückgabewerte


Get the amount of time to be added to local standard time to get local wall clock time

  • « IntlTimeZone::getDisplayName
  • IntlTimeZone::getEquivalentID »
  • PHP Manual
  • IntlTimeZone
  • Get the amount of time to be added to local standard time to get local wall clock time

IntlTimeZone::getDSTSavings

intltz_get_dst_savings

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getDSTSavings -- intltz_get_dst_savings — Get the amount of time to be added to local standard time to get local wall clock time

Beschreibung

Objektorientierter Stil (method):

public IntlTimeZone::getDSTSavings ( ) : int

Prozeduraler Stil:

intltz_get_dst_savings ( IntlTimeZone $timezone ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get an ID in the equivalency group that includes the given ID

  • « IntlTimeZone::getDSTSavings
  • IntlTimeZone::getErrorCode »
  • PHP Manual
  • IntlTimeZone
  • Get an ID in the equivalency group that includes the given ID

IntlTimeZone::getEquivalentID

intltz_get_equivalent_id

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getEquivalentID -- intltz_get_equivalent_id — Get an ID in the equivalency group that includes the given ID

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::getEquivalentID ( string $zoneId , int $index ) : string

Prozeduraler Stil:

intltz_get_equivalent_id ( string $zoneId , int $index ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

zoneId

index

Rückgabewerte


Get last error code on the object

  • « IntlTimeZone::getEquivalentID
  • IntlTimeZone::getErrorMessage »
  • PHP Manual
  • IntlTimeZone
  • Get last error code on the object

IntlTimeZone::getErrorCode

intltz_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getErrorCode -- intltz_get_error_code — Get last error code on the object

Beschreibung

Objektorientierter Stil (method):

public IntlTimeZone::getErrorCode ( ) : int

Prozeduraler Stil:

intltz_get_error_code ( IntlTimeZone $timezone ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get last error message on the object

  • « IntlTimeZone::getErrorCode
  • IntlTimeZone::getGMT »
  • PHP Manual
  • IntlTimeZone
  • Get last error message on the object

IntlTimeZone::getErrorMessage

intltz_get_error_message

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getErrorMessage -- intltz_get_error_message — Get last error message on the object

Beschreibung

Objektorientierter Stil (method):

public IntlTimeZone::getErrorMessage ( ) : string

Prozeduraler Stil:

intltz_get_error_message ( IntlTimeZone $timezone ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Create GMT (UTC) timezone

  • « IntlTimeZone::getErrorMessage
  • IntlTimeZone::getID »
  • PHP Manual
  • IntlTimeZone
  • Create GMT (UTC) timezone

IntlTimeZone::getGMT

intltz_get_gmt

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getGMT -- intltz_get_gmt — Create GMT (UTC) timezone

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::getGMT ( ) : IntlTimeZone

Prozeduraler Stil:

intltz_get_gmt ( ) : IntlTimeZone

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get timezone ID

  • « IntlTimeZone::getGMT
  • IntlTimeZone::getIDForWindowsID »
  • PHP Manual
  • IntlTimeZone
  • Get timezone ID

IntlTimeZone::getID

intltz_get_id

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getID -- intltz_get_id — Get timezone ID

Beschreibung

Objektorientierter Stil (method):

public IntlTimeZone::getID ( ) : string

Prozeduraler Stil:

intltz_get_id ( IntlTimeZone $timezone ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Translate a Windows timezone into a system timezone

  • « IntlTimeZone::getID
  • IntlTimeZone::getOffset »
  • PHP Manual
  • IntlTimeZone
  • Translate a Windows timezone into a system timezone

IntlTimeZone::getIDForWindowsID

intltz_get_id_for_windows_id

(PHP 7 >= 7.1.0)

IntlTimeZone::getIDForWindowsID -- intltz_get_id_for_windows_id — Translate a Windows timezone into a system timezone

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::getIDForWindowsID ( string $timezone , string $region = ? ) : string|false

Prozeduraler Stil:

intltz_get_id_for_windows_id ( string $timezone , string $region = ? ) : string|false

Translates a Windows timezone (e.g. "Pacific Standard Time") into a system timezone (e.g. "America/Los_Angeles").

Hinweis: This function requires ICU version = 52.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

timezone

region

Rückgabewerte

Returns the system timezoneIm Fehlerfall wird false zurückgegeben..

Siehe auch

  • IntlTimeZone::getWindowsID() - Translate a system timezone into a Windows timezone


Get the time zone raw and GMT offset for the given moment in time

  • « IntlTimeZone::getIDForWindowsID
  • IntlTimeZone::getRawOffset »
  • PHP Manual
  • IntlTimeZone
  • Get the time zone raw and GMT offset for the given moment in time

IntlTimeZone::getOffset

intltz_get_offset

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getOffset -- intltz_get_offset — Get the time zone raw and GMT offset for the given moment in time

Beschreibung

Objektorientierter Stil (method):

public IntlTimeZone::getOffset ( float $date , bool $local , int &$rawOffset , int &$dstOffset ) : bool

Prozeduraler Stil:

intltz_get_offset ( IntlTimeZone $timezone , float $date , bool $local , int &$rawOffset , int &$dstOffset ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

date

local

rawOffset

dstOffset

Rückgabewerte


Get the raw GMT offset (before taking daylight savings time into account

  • « IntlTimeZone::getOffset
  • IntlTimeZone::getRegion »
  • PHP Manual
  • IntlTimeZone
  • Get the raw GMT offset (before taking daylight savings time into account

IntlTimeZone::getRawOffset

intltz_get_raw_offset

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getRawOffset -- intltz_get_raw_offset — Get the raw GMT offset (before taking daylight savings time into account

Beschreibung

Objektorientierter Stil (method):

public IntlTimeZone::getRawOffset ( ) : int

Prozeduraler Stil:

intltz_get_raw_offset ( IntlTimeZone $timezone ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the region code associated with the given system time zone ID

  • « IntlTimeZone::getRawOffset
  • IntlTimeZone::getTZDataVersion »
  • PHP Manual
  • IntlTimeZone
  • Get the region code associated with the given system time zone ID

IntlTimeZone::getRegion

intltz_get_region

(PHP 5 >= 5.5.0, PHP 7)

IntlTimeZone::getRegion -- intltz_get_region — Get the region code associated with the given system time zone ID

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::getRegion ( string $zoneId ) : string|false

Prozeduraler Stil:

intltz_get_region ( string $zoneId ) : string|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

zoneId

Rückgabewerte

Return regionIm Fehlerfall wird false zurückgegeben..


Get the timezone data version currently used by ICU

  • « IntlTimeZone::getRegion
  • IntlTimeZone::getUnknown »
  • PHP Manual
  • IntlTimeZone
  • Get the timezone data version currently used by ICU

IntlTimeZone::getTZDataVersion

intltz_get_tz_data_version

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getTZDataVersion -- intltz_get_tz_data_version — Get the timezone data version currently used by ICU

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::getTZDataVersion ( ) : string

Prozeduraler Stil:

intltz_get_tz_data_version ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the "unknown" time zone

  • « IntlTimeZone::getTZDataVersion
  • IntlTimeZone::getWindowsID »
  • PHP Manual
  • IntlTimeZone
  • Get the "unknown" time zone

IntlTimeZone::getUnknown

intltz_get_unknown

(PHP 5 >= 5.5.0, PHP 7)

IntlTimeZone::getUnknown -- intltz_get_unknown — Get the "unknown" time zone

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::getUnknown ( ) : IntlTimeZone

Prozeduraler Stil:

intltz_get_unknown ( ) : IntlTimeZone

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns IntlTimeZone or null on failure.


Translate a system timezone into a Windows timezone

  • « IntlTimeZone::getUnknown
  • IntlTimeZone::hasSameRules »
  • PHP Manual
  • IntlTimeZone
  • Translate a system timezone into a Windows timezone

IntlTimeZone::getWindowsID

intltz_get_windows_id

(PHP 7 >= 7.1.0)

IntlTimeZone::getWindowsID -- intltz_get_windows_id — Translate a system timezone into a Windows timezone

Beschreibung

Objektorientierter Stil (method):

public static IntlTimeZone::getWindowsID ( string $timezone ) : string|false

Prozeduraler Stil:

intltz_get_windows_id ( string $timezone ) : string|false

Translates a system timezone (e.g. "America/Los_Angeles") into a Windows timezone (e.g. "Pacific Standard Time").

Hinweis: This function requires ICU version = 52.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

timezone

Rückgabewerte

Returns the Windows timezoneIm Fehlerfall wird false zurückgegeben..

Siehe auch

  • IntlTimeZone::getIDForWindowsID() - Translate a Windows timezone into a system timezone


Check if this zone has the same rules and offset as another zone

  • « IntlTimeZone::getWindowsID
  • IntlTimeZone::toDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Check if this zone has the same rules and offset as another zone

IntlTimeZone::hasSameRules

intltz_has_same_rules

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::hasSameRules -- intltz_has_same_rules — Check if this zone has the same rules and offset as another zone

Beschreibung

Objektorientierter Stil (method):

public IntlTimeZone::hasSameRules ( IntlTimeZone $otherTimeZone ) : bool

Prozeduraler Stil:

intltz_has_same_rules ( IntlTimeZone $timezone , IntlTimeZone $otherTimeZone ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

otherTimeZone

Rückgabewerte


Convert to DateTimeZone object

  • « IntlTimeZone::hasSameRules
  • IntlTimeZone::useDaylightTime »
  • PHP Manual
  • IntlTimeZone
  • Convert to DateTimeZone object

IntlTimeZone::toDateTimeZone

intltz_to_date_time_zone

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::toDateTimeZone -- intltz_to_date_time_zone — Convert to DateTimeZone object

Beschreibung

Objektorientierter Stil (method):

public IntlTimeZone::toDateTimeZone ( ) : DateTimeZone

Prozeduraler Stil:

intltz_to_date_time_zone ( IntlTimeZone $timezone ) : DateTimeZone

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Check if this time zone uses daylight savings time

  • « IntlTimeZone::toDateTimeZone
  • IntlDateFormatter »
  • PHP Manual
  • IntlTimeZone
  • Check if this time zone uses daylight savings time

IntlTimeZone::useDaylightTime

intltz_use_daylight_time

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::useDaylightTime -- intltz_use_daylight_time — Check if this time zone uses daylight savings time

Beschreibung

Objektorientierter Stil (method):

public IntlTimeZone::useDaylightTime ( ) : bool

Prozeduraler Stil:

intltz_use_daylight_time ( IntlTimeZone $timezone ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The IntlDateFormatter class

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Einführung

Date Formatter is a concrete class that enables locale-dependent formatting/parsing of dates using pattern strings and/or canned patterns.

This class represents the ICU date formatting functionality. It allows users to display dates in a localized format or to parse strings into PHP date values using pattern strings and/or canned patterns.

Class synopsis

IntlDateFormatter {
/* Methoden */
public __construct ( string|null $locale , int $dateType , int $timeType , IntlTimeZone|DateTimeZone|string|null $timezone = null , IntlCalendar|int|null $calendar = null , string $pattern = "" )
public static create ( string|null $locale , int $dateType , int $timeType , IntlTimeZone|DateTimeZone|string|null $timezone = null , IntlCalendar|int|null $calendar = null , string $pattern = "" ) : IntlDateFormatter|null
public format ( IntlCalendar|DateTimeInterface|array|string|int|float $datetime ) : string|false
public static formatObject ( IntlCalendar|DateTime $datetime , array|int|string|null $format = null , string|null $locale = null ) : string|false
public getCalendar ( ) : int|false
public getDateType ( ) : int|false
public getErrorCode ( ) : int
public getErrorMessage ( ) : string
public getLocale ( int $type = ULOC_ACTUAL_LOCALE ) : string|false
public getPattern ( ) : string|false
public getTimeType ( ) : int|false
public getTimeZoneId ( ) : string|false
public getCalendarObject ( ) : IntlCalendar|false|null
public getTimeZone ( ) : IntlTimeZone|false
public isLenient ( ) : bool
public localtime ( string $string , int &$offset = null ) : array|false
public parse ( string $string , int &$offset = null ) : int|float|false
public setCalendar ( IntlCalendar|int|null $calendar ) : bool
public setLenient ( bool $lenient ) : void
public setPattern ( string $pattern ) : bool
public setTimeZone ( IntlTimeZone|DateTimeZone|string|null $timezone ) : bool|null
}

Siehe auch

  • » ICU Date formatter
  • » ICU Date formats

Vordefinierte Konstanten

These constants are used to specify different formats in the constructor for DateType and TimeType.

IntlDateFormatter::NONE (int)
Do not include this element
IntlDateFormatter::FULL (int)
Completely specified style (Tuesday, April 12, 1952 AD or 3:30:42pm PST)
IntlDateFormatter::LONG (int)
Long style (January 12, 1952 or 3:30:32pm)
IntlDateFormatter::MEDIUM (int)
Medium style (Jan 12, 1952)
IntlDateFormatter::SHORT (int)
Most abbreviated style, only essential data (12/13/52 or 3:30pm)
IntlDateFormatter::RELATIVE_FULL (int)
The same as IntlDateFormatter::FULL, but yesterday, today, and tomorrow show as yesterday, today, and tomorrow, respectively. Available as of PHP 8.0.0, for dateType only.
IntlDateFormatter::RELATIVE_LONG (int)
The same as IntlDateFormatter::LONG, but yesterday, today, and tomorrow show as yesterday, today, and tomorrow, respectively. Available as of PHP 8.0.0, for dateType only.
IntlDateFormatter::RELATIVE_MEDIUM (int)
The same as IntlDateFormatter::MEDIUM, but yesterday, today, and tomorrow show as yesterday, today, and tomorrow, respectively. Available as of PHP 8.0.0, for dateType only.
IntlDateFormatter::RELATIVE_SHORT (int)
The same as IntlDateFormatter::SHORT, but yesterday, today, and tomorrow show as yesterday, today, and tomorrow, respectively. Available as of PHP 8.0.0, for dateType only.

The following int constants are used to specify the calendar. These calendars are all based directly on the Gregorian calendar. Non-Gregorian calendars need to be specified in locale. Examples might include locale="hi@calendar=BUDDHIST".

IntlDateFormatter::TRADITIONAL (int)
Non-Gregorian Calendar
IntlDateFormatter::GREGORIAN (int)
Gregorian Calendar

Inhaltsverzeichnis

  • IntlDateFormatter::create — Create a date formatter
  • IntlDateFormatter::format — Format the date/time value as a string
  • IntlDateFormatter::formatObject — Formats an object
  • IntlDateFormatter::getCalendar — Get the calendar type used for the IntlDateFormatter
  • IntlDateFormatter::getDateType — Get the datetype used for the IntlDateFormatter
  • IntlDateFormatter::getErrorCode — Get the error code from last operation
  • IntlDateFormatter::getErrorMessage — Get the error text from the last operation
  • IntlDateFormatter::getLocale — Get the locale used by formatter
  • IntlDateFormatter::getPattern — Get the pattern used for the IntlDateFormatter
  • IntlDateFormatter::getTimeType — Get the timetype used for the IntlDateFormatter
  • IntlDateFormatter::getTimeZoneId — Get the timezone-id used for the IntlDateFormatter
  • IntlDateFormatter::getCalendarObject — Get copy of formatter's calendar object
  • IntlDateFormatter::getTimeZone — Get formatter's timezone
  • IntlDateFormatter::isLenient — Get the lenient used for the IntlDateFormatter
  • IntlDateFormatter::localtime — Parse string to a field-based time value
  • IntlDateFormatter::parse — Parse string to a timestamp value
  • IntlDateFormatter::setCalendar — Sets the calendar type used by the formatter
  • IntlDateFormatter::setLenient — Set the leniency of the parser
  • IntlDateFormatter::setPattern — Set the pattern used for the IntlDateFormatter
  • IntlDateFormatter::setTimeZone — Sets formatter's timezone


Create a date formatter

  • « IntlDateFormatter
  • IntlDateFormatter::format »
  • PHP Manual
  • IntlDateFormatter
  • Create a date formatter

IntlDateFormatter::create

datefmt_create

IntlDateFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__construct — Create a date formatter

Beschreibung

Objektorientierter Stil

public static IntlDateFormatter::create ( string|null $locale , int $dateType , int $timeType , IntlTimeZone|DateTimeZone|string|null $timezone = null , IntlCalendar|int|null $calendar = null , string $pattern = "" ) : IntlDateFormatter|null

Objektorientierter Stil (constructor)

public IntlDateFormatter::__construct ( string|null $locale , int $dateType , int $timeType , IntlTimeZone|DateTimeZone|string|null $timezone = null , IntlCalendar|int|null $calendar = null , string $pattern = "" )

Prozeduraler Stil

datefmt_create ( string|null $locale , int $dateType , int $timeType , IntlTimeZone|DateTimeZone|string|null $timezone = null , IntlCalendar|int|null $calendar = null , string $pattern = "" ) : IntlDateFormatter|null

Create a date formatter.

Parameter-Liste

locale

Locale to use when formatting or parsing or null to use the value specified in the ini setting intl.default_locale.

dateType

Date type to use (none, short, medium, long, full). This is one of the IntlDateFormatter constants. It can also be null, in which case ICU's default date type will be used.

timeType

Time type to use (none, short, medium, long, full). This is one of the IntlDateFormatter constants. It can also be null, in which case ICU's default time type will be used.

timezone

Time zone ID. The default (and the one used if null is given) is the one returned by date_default_timezone_get() or, if applicable, that of the IntlCalendar object passed for the calendar parameter. This ID must be a valid identifier on ICU's database or an ID representing an explicit offset, such as GMT-05:30.

This can also be an IntlTimeZone or a DateTimeZone object.

calendar

Calendar to use for formatting or parsing. The default value is null, which corresponds to IntlDateFormatter::GREGORIAN. This can either be one of the IntlDateFormatter calendar constants or an IntlCalendar. Any IntlCalendar object passed will be clone; it will not be changed by the IntlDateFormatter. This will determine the calendar type used (gregorian, islamic, persian, etc.) and, if null is given for the timezone parameter, also the timezone used.

pattern

Optional pattern to use when formatting or parsing. Possible patterns are documented at » https://unicode-org.github.io/icu/userguide/format_parse/datetime/.

Rückgabewerte

The created IntlDateFormatter or null in case of failure.

Changelog

Version | Beschreibung
5.5.0/PECL 3.0.0 | An IntlCalendar object is allowed for calendar. Objects of type IntlTimeZone and DateTimeZone are allowed for timezone. Invalid timezone identifiers (including empty strings) are no longer allowed for timezone. If null is given for timezone, the timezone identifier given by date_default_timezone_get() will be used instead of ICU's default.

Beispiele

Beispiel #1 datefmt_create() example

<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles', IntlDateFormatter::GREGORIAN  );
echo "First Formatted output is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second Formatted output is ".datefmt_format( $fmt , 0);

$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
     'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
     'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "Second Formatted output with pattern is ".datefmt_format( $fmt , 0);
?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "First Formatted output is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second Formatted output is ".$fmt->format(0);

$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
     'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
      'America/Los_Angeles',IntlDateFormatter::GREGORIAN , "MM/dd/yyyy");
echo "Second Formatted output with pattern is ".$fmt->format(0);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
First Formatted output with pattern is 12/31/1969
Second Formatted output with pattern is 12/31/1969

Siehe auch

  • datefmt_format() - Format the date/time value as a string
  • datefmt_parse() - Parse string to a timestamp value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation


Format the date/time value as a string

  • « IntlDateFormatter::create
  • IntlDateFormatter::formatObject »
  • PHP Manual
  • IntlDateFormatter
  • Format the date/time value as a string

IntlDateFormatter::format

datefmt_format

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::format -- datefmt_format — Format the date/time value as a string

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::format ( IntlCalendar|DateTimeInterface|array|string|int|float $datetime ) : string|false

Prozeduraler Stil

datefmt_format ( IntlDateFormatter $formatter , IntlCalendar|DateTimeInterface|array|string|int|float $datetime ) : string|false

Formats the time value as a string.

Parameter-Liste

formatter

The date formatter resource.

datetime

Value to format. This may be a DateTimeInterface object, an IntlCalendar object, a numeric type representing a (possibly fractional) number of seconds since epoch or an array in the format output by localtime().

If a DateTime or an IntlCalendar object is passed, its timezone is not considered. The object will be formatted using the formater's configured timezone. If one wants to use the timezone of the object to be formatted, IntlDateFormatter::setTimeZone() must be called before with the object's timezone. Alternatively, the static function IntlDateFormatter::formatObject() may be used instead.

Rückgabewerte

The formatted string or, if an error occurred, false.

Changelog

Version | Beschreibung
7.1.5 | Support for providing general DateTimeInterface objects to the datetime parameter was added. Formerly, only proper DateTime objects were supported.
PECL 3.0.0 | Support for providing IntlCalendar objects to the datetime parameter was added.

Beispiele

Beispiel #1 datefmt_format() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'First Formatted output is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Second Formatted output is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'First Formatted output with pattern is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo "Second Formatted output with pattern is " . datefmt_format($fmt, 0);
?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'First Formatted output is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Second Formatted output is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'First Formatted output with pattern is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'Second Formatted output with pattern is ' . $fmt->format(0);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
First Formatted output with pattern is 12/31/1969
Second Formatted output with pattern is 12/31/1969

Beispiel #3 With IntlCalendar object

<?php
$tz = reset(iterator_to_array(IntlTimeZone::createEnumeration('FR')));
$formatter = IntlDateFormatter::create(
    'fr_FR',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    $tz,
    IntlDateFormatter::GREGORIAN
);

$cal = IntlCalendar::createInstance($tz, '@calendar=islamic-civil');
$cal->set(IntlCalendar::FIELD_MONTH, 8); //9th month, Ramadan
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 1); //1st day
$cal->clear(IntlCalendar::FIELD_HOUR_OF_DAY);
$cal->clear(IntlCalendar::FIELD_MINUTE);
$cal->clear(IntlCalendar::FIELD_SECOND);
$cal->clear(IntlCalendar::FIELD_MILLISECOND);

echo "In this islamic year, Ramadan started/will start on:\n\t",
        $formatter->format($cal), "\n";

//It's the formatter's timezone that is used:
$formatter->setTimeZone('Asia/Tokyo');
echo "After changing timezone:\n\t",
        $formatter->format($cal), "\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

In this islamic year, Ramadan started/will start on:
    mardi 9 juillet 2013 19:00:00 heure avancée d’Europe centrale
After changing timezone:
    mercredi 10 juillet 2013 02:00:00 heure normale du Japon

Siehe auch

  • datefmt_create() - Create a date formatter
  • datefmt_parse() - Parse string to a timestamp value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation
  • datefmt_format_object() - Formats an object


Formats an object

  • « IntlDateFormatter::format
  • IntlDateFormatter::getCalendar »
  • PHP Manual
  • IntlDateFormatter
  • Formats an object

IntlDateFormatter::formatObject

datefmt_format_object

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::formatObject -- datefmt_format_object — Formats an object

Beschreibung

Objektorientierter Stil

public static IntlDateFormatter::formatObject ( IntlCalendar|DateTime $datetime , array|int|string|null $format = null , string|null $locale = null ) : string|false

Prozeduraler Stil

datefmt_format_object ( IntlCalendar|DateTimeInterface $datetime , array|int|string|null $format = null , string|null $locale = null ) : string|false

This function allows formatting an IntlCalendar or DateTime object without first explicitly creating a IntlDateFormatter object.

The temporary IntlDateFormatter that will be created will take the timezone from the passed in object. The timezone database bundled with PHP will not be used – ICU's will be used instead. The timezone identifier used in DateTime objects must therefore also exist in ICU's database.

Parameter-Liste

datetime

An object of type IntlCalendar or DateTime. The timezone information in the object will be used.

format

How to format the date/time. This can either be an array with two elements (first the date style, then the time style, these being one of the constants IntlDateFormatter::NONE, IntlDateFormatter::SHORT, IntlDateFormatter::MEDIUM, IntlDateFormatter::LONG, IntlDateFormatter::FULL), an int with the value of one of these constants (in which case it will be used both for the time and the date) or a string with the format described in » the ICU documentation. If null, the default style will be used.

locale

The locale to use, or null to use the default one.

Rückgabewerte

A string with resultIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 IntlDateFormatter::formatObject() examples

<?php
/* default timezone is irrelevant; timezone taken from the object */
ini_set('date.timezone', 'UTC');
/* default locale is taken from this ini setting */
ini_set('intl.default_locale', 'fr_FR');

$cal = IntlCalendar::fromDateTime("2013-06-06 17:05:06 Europe/Dublin");
echo "default:\n\t",
        IntlDateFormatter::formatObject($cal),
        "\n";

echo "long \$format (full):\n\t",
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL),
        "\n";

echo "array \$format (none, full):\n\t",
        IntlDateFormatter::formatObject($cal, array(
                IntlDateFormatter::NONE,
                IntlDateFormatter::FULL)),
        "\n";

echo "string \$format (d 'of' MMMM y):\n\t",
        IntlDateFormatter::formatObject($cal, "d 'of' MMMM y", 'en_US'),
        "\n";

echo "with DateTime:\n\t",
        IntlDateFormatter::formatObject(
                new DateTime("2013-09-09 09:09:09 Europe/Madrid"),
                IntlDateFormatter::FULL,
                'es_ES'),
        "\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

default:
    6 juin 2013 17:05:06
long $format (full):
    jeudi 6 juin 2013 17:05:06 heure d’été irlandaise
array $format (none, full):
    17:05:06 heure d’été irlandaise
string $format (d 'of' MMMM y):
    6 of June 2013
with DateTime:
    lunes, 9 de septiembre de 2013 09:09:09 Hora de verano de Europa central


Get the calendar type used for the IntlDateFormatter

  • « IntlDateFormatter::formatObject
  • IntlDateFormatter::getDateType »
  • PHP Manual
  • IntlDateFormatter
  • Get the calendar type used for the IntlDateFormatter

IntlDateFormatter::getCalendar

datefmt_get_calendar

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getCalendar -- datefmt_get_calendar — Get the calendar type used for the IntlDateFormatter

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::getCalendar ( ) : int|false

Prozeduraler Stil

datefmt_get_calendar ( IntlDateFormatter $formatter ) : int|false

Parameter-Liste

formatter

The formatter resource

Rückgabewerte

The calendar type being used by the formatter. Either IntlDateFormatter::TRADITIONAL or IntlDateFormatter::GREGORIAN. Returns false on failure.

Beispiele

Beispiel #1 datefmt_get_calendar() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . datefmt_get_calendar($fmt);
?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . $fmt->getCalendar();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

calendar of the formatter is : 1
Now calendar of the formatter is : 0

Siehe auch

  • datefmt_get_calendar_object() - Get copy of formatter's calendar object
  • datefmt_set_calendar() - Sets the calendar type used by the formatter
  • datefmt_create() - Create a date formatter


Get the datetype used for the IntlDateFormatter

  • « IntlDateFormatter::getCalendar
  • IntlDateFormatter::getErrorCode »
  • PHP Manual
  • IntlDateFormatter
  • Get the datetype used for the IntlDateFormatter

IntlDateFormatter::getDateType

datefmt_get_datetype

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getDateType -- datefmt_get_datetype — Get the datetype used for the IntlDateFormatter

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::getDateType ( ) : int|false

Prozeduraler Stil

datefmt_get_datetype ( IntlDateFormatter $formatter ) : int|false

Returns date type used by the formatter.

Parameter-Liste

formatter

The formatter resource.

Rückgabewerte

The current date type value of the formatter, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 datefmt_get_datetype() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'datetype of the formatter is : ' . datefmt_get_datetype($fmt);
echo 'First Formatted output with datetype is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::SHORT,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Now datetype of the formatter is : ' . datefmt_get_datetype($fmt);
echo 'Second Formatted output with datetype is ' . datefmt_format($fmt, 0);

?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'datetype of the formatter is : ' . $fmt->getDateType();
echo 'First Formatted output is ' . $fmt->format(0);
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::SHORT,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Now datetype of the formatter is : ' . $fmt->getDateType();
echo 'Second Formatted output is ' . $fmt->format(0);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

datetype of the formatter is : 0
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Now datetype of the formatter is : 2
Second Formatted output is 12/31/69 4:00:00 PM PT

Siehe auch

  • datefmt_get_timetype() - Get the timetype used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Get the error code from last operation

  • « IntlDateFormatter::getDateType
  • IntlDateFormatter::getErrorMessage »
  • PHP Manual
  • IntlDateFormatter
  • Get the error code from last operation

IntlDateFormatter::getErrorCode

datefmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorCode -- datefmt_get_error_code — Get the error code from last operation

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::getErrorCode ( ) : int

Prozeduraler Stil

datefmt_get_error_code ( IntlDateFormatter $formatter ) : int

Get the error code from last operation. Returns error code from the last number formatting operation.

Parameter-Liste

formatter

The formatter resource.

Rückgabewerte

The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.

Beispiele

Beispiel #1 datefmt_get_error_code() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = datefmt_format($fmt);
if (!$str) {
    printf(
        "ERROR: %s (%d)\n",
        datefmt_get_error_message($fmt),
        datefmt_get_error_code($fmt)
    );
}
?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = $fmt->format();
if (!$str) {
    printf(
        "ERROR: %s (%d)\n",
        $fmt->getErrorMessage(),
        $fmt->getErrorCode()
    );
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

ERROR: U_ZERO_ERROR (0)

Siehe auch

  • datefmt_get_error_message() - Get the error text from the last operation
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure


Get the error text from the last operation

  • « IntlDateFormatter::getErrorCode
  • IntlDateFormatter::getLocale »
  • PHP Manual
  • IntlDateFormatter
  • Get the error text from the last operation

IntlDateFormatter::getErrorMessage

datefmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorMessage -- datefmt_get_error_message — Get the error text from the last operation

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::getErrorMessage ( ) : string

Prozeduraler Stil

datefmt_get_error_message ( IntlDateFormatter $formatter ) : string

Get the error text from the last operation.

Parameter-Liste

formatter

The formatter resource.

Rückgabewerte

Description of the last error.

Beispiele

Beispiel #1 datefmt_get_error_message() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = datefmt_format($fmt);
if (!$str) {
    printf(
        "ERROR: %s (%d)\n",
        datefmt_get_error_message($fmt),
        datefmt_get_error_code($fmt)
    );
}
?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = $fmt->format();
if(!$str) {
    printf(
        "ERROR: %s (%d)\n",
        $fmt->getErrorMessage(),
        $fmt->getErrorCode()
    );
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

ERROR: U_ZERO_ERROR (0)

Siehe auch

  • datefmt_get_error_code() - Get the error code from last operation
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure


Get the locale used by formatter

  • « IntlDateFormatter::getErrorMessage
  • IntlDateFormatter::getPattern »
  • PHP Manual
  • IntlDateFormatter
  • Get the locale used by formatter

IntlDateFormatter::getLocale

datefmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getLocale -- datefmt_get_locale — Get the locale used by formatter

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::getLocale ( int $type = ULOC_ACTUAL_LOCALE ) : string|false

Prozeduraler Stil

datefmt_get_locale ( IntlDateFormatter $formatter , int $type = ULOC_ACTUAL_LOCALE ) : string|false

Get locale used by the formatter.

Parameter-Liste

formatter

The formatter resource

type

You can choose between valid and actual locale ( Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, respectively). The default is the actual locale.

Rückgabewerte

The locale of this formatter, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 datefmt_get_locale() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'locale of the formatter is : ' . datefmt_get_locale($fmt);
echo 'First Formatted output is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'locale of the formatter is : ' . datefmt_get_locale($fmt);
echo 'Second Formatted output is ' . datefmt_format($fmt, 0);

?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'locale of the formatter is : ' . $fmt->getLocale();
echo 'First Formatted output is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'locale of the formatter is : ' . $fmt->getLocale();
echo 'Second Formatted output is ' . $fmt->format(0);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

locale of the formatter is : en
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
locale of the formatter is : de
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00

Siehe auch

  • datefmt_create() - Create a date formatter


Get the pattern used for the IntlDateFormatter

  • « IntlDateFormatter::getLocale
  • IntlDateFormatter::getTimeType »
  • PHP Manual
  • IntlDateFormatter
  • Get the pattern used for the IntlDateFormatter

IntlDateFormatter::getPattern

datefmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getPattern -- datefmt_get_pattern — Get the pattern used for the IntlDateFormatter

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::getPattern ( ) : string|false

Prozeduraler Stil

datefmt_get_pattern ( IntlDateFormatter $formatter ) : string|false

Get pattern used by the formatter.

Parameter-Liste

formatter

The formatter resource.

Rückgabewerte

The pattern string being used to format/parse, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 datefmt_get_pattern() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . datefmt_get_pattern($fmt);
echo 'First Formatted output with pattern is ' . datefmt_format($fmt, 0);
datefmt_set_pattern($fmt,'yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . datefmt_get_pattern($fmt);
echo 'Second Formatted output with pattern is ' . datefmt_format($fmt, 0);

?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . $fmt->getPattern();
echo 'First Formatted output is ' . $fmt->format(0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . $fmt->getPattern();
echo 'Second Formatted output is ' . $fmt->format(0);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

pattern of the formatter is : MM/dd/yyyy
First Formatted output is 12/31/1969
Now pattern of the formatter is : yyyymmdd hh:mm:ss z
Second Formatted output is 19690031 04:00:00 PST

Siehe auch

  • datefmt_set_pattern() - Set the pattern used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Get the timetype used for the IntlDateFormatter

  • « IntlDateFormatter::getPattern
  • IntlDateFormatter::getTimeZoneId »
  • PHP Manual
  • IntlDateFormatter
  • Get the timetype used for the IntlDateFormatter

IntlDateFormatter::getTimeType

datefmt_get_timetype

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeType -- datefmt_get_timetype — Get the timetype used for the IntlDateFormatter

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::getTimeType ( ) : int|false

Prozeduraler Stil

datefmt_get_timetype ( IntlDateFormatter $formatter ) : int|false

Return time type used by the formatter.

Parameter-Liste

formatter

The formatter resource.

Rückgabewerte

The current date type value of the formatter, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 datefmt_get_timetype() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timetype of the formatter is : ' . datefmt_get_timetype($fmt);
echo 'First Formatted output with timetype is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::SHORT,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Now timetype of the formatter is : ' . datefmt_get_timetype($fmt);
echo 'Second Formatted output with timetype is ' . datefmt_format($fmt, 0);

?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timetype of the formatter is : ' . $fmt->getTimeType();
echo 'First Formatted output is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::SHORT,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Now timetype of the formatter is : ' . $fmt->getTimeType();
echo 'Second Formatted output is ' . $fmt->format(0);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

timetype of the formatter is : 0
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Now timetype of the formatter is : 3
Second Formatted output is Wednesday, December 31, 1969 4:00 PM

Siehe auch

  • datefmt_get_datetype() - Get the datetype used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Get the timezone-id used for the IntlDateFormatter

  • « IntlDateFormatter::getTimeType
  • IntlDateFormatter::getCalendarObject »
  • PHP Manual
  • IntlDateFormatter
  • Get the timezone-id used for the IntlDateFormatter

IntlDateFormatter::getTimeZoneId

datefmt_get_timezone_id

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeZoneId -- datefmt_get_timezone_id — Get the timezone-id used for the IntlDateFormatter

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::getTimeZoneId ( ) : string|false

Prozeduraler Stil

datefmt_get_timezone_id ( IntlDateFormatter $formatter ) : string|false

Get the timezone-id used for the IntlDateFormatter.

Parameter-Liste

formatter

The formatter resource.

Rückgabewerte

ID string for the time zone used by this formatter, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 datefmt_get_timezone_id() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timezone_id of the formatter is : ' . datefmt_get_timezone_id($fmt);
datefmt_set_timezone_id($fmt, 'CN');
echo 'Now timezone_id of the formatter is : ' . datefmt_get_timezone_id($fmt);

?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timezone_id of the formatter is : ' . $fmt->getTimezoneId();
$fmt->setTimezoneId('CN');
echo 'Now timezone_id of the formatter is : ' . $fmt->getTimezoneId();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

timezone_id of the formatter is : America/Los_Angeles
Now timezone_id of the formatter is : CN

Siehe auch

  • datefmt_set_timezone_id()
  • datefmt_create() - Create a date formatter


Get copy of formatter's calendar object

  • « IntlDateFormatter::getTimeZoneId
  • IntlDateFormatter::getTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Get copy of formatter's calendar object

IntlDateFormatter::getCalendarObject

datefmt_get_calendar_object

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::getCalendarObject -- datefmt_get_calendar_object — Get copy of formatter's calendar object

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::getCalendarObject ( ) : IntlCalendar|false|null

Prozeduraler Stil

datefmt_get_calendar_object ( IntlDateFormatter $formatter ) : IntlCalendar|false|null

Obtain a copy of the calendar object used internally by this formatter. This calendar will have a type (as in gregorian, japanese, buddhist, roc, persian, islamic, etc.) and a timezone that match the type and timezone used by the formatter. The date/time of the object is unspecified.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A copy of the internal calendar object used by this formatter, or null if none has been set, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 IntlDateFormatter::getCalendarObject() example

<?php
$formatter = IntlDateFormatter::create(
    "fr_FR@calendar=islamic",
    NULL,
    NULL,
    "GMT-01:00",
    IntlDateFormatter::TRADITIONAL
);

$cal = $formatter->getCalendarObject();

var_dump(
    $cal->getType(),
    $cal->getTimeZone(),
    $cal->getLocale(Locale::VALID_LOCALE)
);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(7) "islamic"
object(IntlTimeZone)#3 (4) {
  ["valid"]=>
  bool(true)
  ["id"]=>
  string(9) "GMT-01:00"
  ["rawOffset"]=>
  int(-3600000)
  ["currentOffset"]=>
  int(-3600000)
}
string(5) "fr_FR"

Siehe auch

  • IntlDateFormatter::getCalendar() - Get the calendar type used for the IntlDateFormatter
  • IntlDateFormatter::setCalendar() - Sets the calendar type used by the formatter
  • IntlCalendar


Get formatter's timezone

  • « IntlDateFormatter::getCalendarObject
  • IntlDateFormatter::isLenient »
  • PHP Manual
  • IntlDateFormatter
  • Get formatter's timezone

IntlDateFormatter::getTimeZone

datefmt_get_timezone

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::getTimeZone -- datefmt_get_timezone — Get formatter's timezone

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::getTimeZone ( ) : IntlTimeZone|false

Prozeduraler Stil

datefmt_get_timezone ( IntlDateFormatter $formatter ) : IntlTimeZone|false

Returns an IntlTimeZone object representing the timezone that will be used by this object to format dates and times. When formatting IntlCalendar and DateTime objects with this IntlDateFormatter, the timezone used will be the one returned by this method, not the one associated with the objects being formatted.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The associated IntlTimeZone objectIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 IntlDateFormatter::getTimeZone() examples

<?php

$madrid = IntlDateFormatter::create(NULL, NULL, NULL, 'Europe/Madrid');
$lisbon = IntlDateFormatter::create(NULL, NULL, NULL, 'Europe/Lisbon');

var_dump($madrid->getTimezone());
echo $madrid->getTimezone()->getDisplayName(
        false, IntlTimeZone::DISPLAY_GENERIC_LOCATION, "en_US"), "\n";
echo $lisbon->getTimeZone()->getId(), "\n";
//The id can also be retrieved with ->getTimezoneId()
echo $lisbon->getTimeZoneId(), "\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(IntlTimeZone)#4 (4) {
  ["valid"]=>
  bool(true)
  ["id"]=>
  string(13) "Europe/Madrid"
  ["rawOffset"]=>
  int(3600000)
  ["currentOffset"]=>
  int(7200000)
}
Spain Time
Europe/Lisbon
Europe/Lisbon

Siehe auch

  • IntlDateFormatter::getTimeZoneId() - Get the timezone-id used for the IntlDateFormatter
  • IntlDateFormatter::setTimeZone() - Sets formatter's timezone
  • IntlTimeZone


Get the lenient used for the IntlDateFormatter

  • « IntlDateFormatter::getTimeZone
  • IntlDateFormatter::localtime »
  • PHP Manual
  • IntlDateFormatter
  • Get the lenient used for the IntlDateFormatter

IntlDateFormatter::isLenient

datefmt_is_lenient

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::isLenient -- datefmt_is_lenient — Get the lenient used for the IntlDateFormatter

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::isLenient ( ) : bool

Prozeduraler Stil

datefmt_is_lenient ( IntlDateFormatter $formatter ) : bool

Check if the parser is strict or lenient in interpreting inputs that do not match the pattern exactly.

Parameter-Liste

formatter

The formatter resource.

Rückgabewerte

true if parser is lenient, false if parser is strict. By default the parser is lenient.

Beispiele

Beispiel #1 datefmt_is_lenient() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'dd/mm/yyyy'
);
echo 'lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo 'Now lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Trying to do parse('35/13/1971').Result is : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    "dd/mm/yyyy"
);
echo "lenient of the formatter is : ";
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0){
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo 'Now lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

lenient of the formatter is : TRUE
Trying to do parse('35/13/1971').
Result is : -2147483
Now lenient of the formatter is : FALSE
Trying to do parse('35/13/1971').
Result is :
Error_msg is : Date parsing failed: U_PARSE_ERROR
Error_code is : 9

Siehe auch

  • datefmt_set_lenient() - Set the leniency of the parser
  • datefmt_create() - Create a date formatter


Parse string to a field-based time value

  • « IntlDateFormatter::isLenient
  • IntlDateFormatter::parse »
  • PHP Manual
  • IntlDateFormatter
  • Parse string to a field-based time value

IntlDateFormatter::localtime

datefmt_localtime

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::localtime -- datefmt_localtime — Parse string to a field-based time value

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::localtime ( string $string , int &$offset = null ) : array|false

Prozeduraler Stil

datefmt_localtime ( IntlDateFormatter $formatter , string $string , int &$offset = null ) : array|false

Converts string $value to a field-based time value ( an array of various fields), starting at $parse_pos and consuming as much of the input value as possible.

Parameter-Liste

formatter

The formatter resource

string

string to convert to a time

offset

Position at which to start the parsing in $value (zero-based). If no error occurs before $value is consumed, $parse_pos will contain -1 otherwise it will contain the position at which parsing ended . If $parse_pos > strlen($value), the parse fails immediately.

Rückgabewerte

Localtime compatible array of integers : contains 24 hour clock value in tm_hour field, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 datefmt_localtime() example

<?php

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$arr = datefmt_localtime($fmt, 'Wednesday, December 31, 1969 4:00:00 PM PT', 0);
echo 'First parsed output is ';
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}

?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$arr = $fmt->localtime('Wednesday, December 31, 1969 4:00:00 PM PT', 0);
echo 'First parsed output is ';
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

First parsed output is tm_sec : 0 , tm_min : 0 , tm_hour : 16 , tm_year : 1969 ,
tm_mday : 31 , tm_wday : 4 , tm_yday : 365 , tm_mon : 11 , tm_isdst : 0 ,

Siehe auch

  • datefmt_create() - Create a date formatter
  • datefmt_format() - Format the date/time value as a string
  • datefmt_parse() - Parse string to a timestamp value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation


Parse string to a timestamp value

  • « IntlDateFormatter::localtime
  • IntlDateFormatter::setCalendar »
  • PHP Manual
  • IntlDateFormatter
  • Parse string to a timestamp value

IntlDateFormatter::parse

datefmt_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::parse -- datefmt_parse — Parse string to a timestamp value

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::parse ( string $string , int &$offset = null ) : int|float|false

Prozeduraler Stil

datefmt_parse ( IntlDateFormatter $formatter , string $string , int &$offset = null ) : int|float|false

Converts string to an incremental time value, starting at offset and consuming as much of the input value as possible.

Parameter-Liste

formatter

The formatter resource

string

string to convert to a time

offset

Position at which to start the parsing in string (zero-based). If no error occurs before string is consumed, offset will contain -1 otherwise it will contain the position at which parsing ended (and the error occurred). This variable will contain the end position if the parse fails. If offset > strlen($string), the parse fails immediately.

Rückgabewerte

Timestamp of parsed value, or false if value cannot be parsed.

Beispiele

Beispiel #1 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'First parsed output is ' . $fmt->parse('Wednesday, December 20, 1989 4:00:00 PM PT');
$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
?>

Beispiel #2 datefmt_parse() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'First parsed output is ' . datefmt_parse($fmt, 'Wednesday, December 20, 1989 4:00:00 PM PT');
$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Second parsed output is ' . datefmt_parse($fmt, 'Mittwoch, 20. Dezember 1989 16:00 Uhr GMT-08:00');
?

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

First parsed output is 630201600
Second parsed output is 630201600

Siehe auch

  • datefmt_create() - Create a date formatter
  • datefmt_format() - Format the date/time value as a string
  • datefmt_localtime() - Parse string to a field-based time value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation


Sets the calendar type used by the formatter

  • « IntlDateFormatter::parse
  • IntlDateFormatter::setLenient »
  • PHP Manual
  • IntlDateFormatter
  • Sets the calendar type used by the formatter

IntlDateFormatter::setCalendar

datefmt_set_calendar

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::setCalendar -- datefmt_set_calendar — Sets the calendar type used by the formatter

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::setCalendar ( IntlCalendar|int|null $calendar ) : bool

Prozeduraler Stil

datefmt_set_calendar ( IntlDateFormatter $formatter , IntlCalendar|int|null $calendar ) : bool

Sets the calendar or calendar type used by the formatter.

Parameter-Liste

formatter

The formatter resource.

calendar

This can either be: the calendar type to use (default is IntlDateFormatter::GREGORIAN, which is also used if null is specified) or an IntlCalendar object.

Any IntlCalendar object passed in will be cloned; no modifications will be made to the argument object.

The timezone of the formatter will only be kept if an IntlCalendar object is not passed, otherwise the new timezone will be that of the passed object.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.5.0/PECL 3.0.0 | It became possible to pass an IntlCalendar object.

Beispiele

Beispiel #1 datefmt_set_calendar() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . datefmt_get_calendar($fmt);
?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . $fmt->getCalendar();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

calendar of the formatter is : 1
Now calendar of the formatter is : 0

Beispiel #3 Example with IntlCalendar argument

<?php
$time = strtotime("2013-03-03 00:00:00 UTC");
$formatter = IntlDateFormatter::create("en_US", NULL, NULL, "Europe/Amsterdam");

echo "before: ", $formatter->format($time), "\n";

/* note that the calendar's locale is not used! */
$formatter->setCalendar(IntlCalendar::createInstance(
               "America/New_York", "pt_PT@calendar=islamic"));

echo "after:  ", $formatter->format($time), "\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

before: Sunday, March 3, 2013 at 1:00:00 AM Central European Standard Time
after:  Saturday, Rabi? II 20, 1434 at 7:00:00 PM Eastern Standard Time

Siehe auch

  • datefmt_get_calendar() - Get the calendar type used for the IntlDateFormatter
  • datefmt_get_calendar_object() - Get copy of formatter's calendar object
  • datefmt_create() - Create a date formatter


Set the leniency of the parser

  • « IntlDateFormatter::setCalendar
  • IntlDateFormatter::setPattern »
  • PHP Manual
  • IntlDateFormatter
  • Set the leniency of the parser

IntlDateFormatter::setLenient

datefmt_set_lenient

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::setLenient -- datefmt_set_lenient — Set the leniency of the parser

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::setLenient ( bool $lenient ) : void

Prozeduraler Stil

datefmt_set_lenient ( IntlDateFormatter $formatter , bool $lenient ) : void

Define if the parser is strict or lenient in interpreting inputs that do not match the pattern exactly. Enabling lenient parsing allows the parser to accept otherwise flawed date or time patterns, parsing as much as possible to obtain a value. Extra space, unrecognized tokens, or invalid values ("February 30th") are not accepted.

Parameter-Liste

formatter

The formatter resource

lenient

Sets whether the parser is lenient or not, default is true (lenient).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 datefmt_set_lenient() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'dd/MM/yyyy'
);
echo 'lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}
datefmt_set_lenient($fmt, false);
echo "\nNow lenient of the formatter is : ";
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nTrying to do parse('35/13/1971').\nResult is : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : ".intl_get_error_message();
    echo "\nError_code is : ".intl_get_error_code();
}

?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'dd/MM/yyyy'
);
echo 'lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo "\nNow lenient of the formatter is : ";
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

lenient of the formatter is : TRUE
Trying to do parse('35/13/1971').
Result is : 66038400
Now lenient of the formatter is : FALSE
Trying to do parse('35/13/1971').
Result is :
Error_msg is : Date parsing failed: U_PARSE_ERROR
Error_code is : 9

Siehe auch

  • datefmt_is_lenient() - Get the lenient used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Set the pattern used for the IntlDateFormatter

  • « IntlDateFormatter::setLenient
  • IntlDateFormatter::setTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Set the pattern used for the IntlDateFormatter

IntlDateFormatter::setPattern

datefmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::setPattern -- datefmt_set_pattern — Set the pattern used for the IntlDateFormatter

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::setPattern ( string $pattern ) : bool

Prozeduraler Stil

datefmt_set_pattern ( IntlDateFormatter $formatter , string $pattern ) : bool

Set the pattern used for the IntlDateFormatter.

Parameter-Liste

formatter

The formatter resource.

pattern

New pattern string to use. Possible patterns are documented at » https://unicode-org.github.io/icu/userguide/format_parse/datetime/.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Bad formatstrings are usually the cause of the failure.

Beispiele

Beispiel #1 datefmt_set_pattern() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . datefmt_get_pattern($fmt);
echo 'First Formatted output with pattern is ' . datefmt_format($fmt, 0);
datefmt_set_pattern($fmt, 'yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . datefmt_get_pattern($fmt);
echo 'Second Formatted output with pattern is ' . datefmt_format($fmt, 0);

?>

Beispiel #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . $fmt->getPattern();
echo 'First Formatted output is ' . $fmt->format(0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . $fmt->getPattern();
echo 'Second Formatted output is ' . $fmt->format(0);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

pattern of the formatter is : MM/dd/yyyy
First Formatted output with pattern is 12/31/1969
Now pattern of the formatter is : yyyymmdd hh:mm:ss z
Second Formatted output with pattern is 19690031 04:00:00 PST

Siehe auch

  • datefmt_get_pattern() - Get the pattern used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Sets formatter's timezone

  • « IntlDateFormatter::setPattern
  • ResourceBundle »
  • PHP Manual
  • IntlDateFormatter
  • Sets formatter's timezone

IntlDateFormatter::setTimeZone

datefmt_set_timezone

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::setTimeZone -- datefmt_set_timezone — Sets formatter's timezone

Beschreibung

Objektorientierter Stil

public IntlDateFormatter::setTimeZone ( IntlTimeZone|DateTimeZone|string|null $timezone ) : bool|null

Prozeduraler Stil

datefmt_set_timezone ( IntlDateFormatter $formatter , IntlTimeZone|DateTimeZone|string|null $timezone ) : bool|null

Sets the timezone used for the IntlDateFormatter. object.

Parameter-Liste

formatter

The formatter resource.

timezone

The timezone to use for this formatter. This can be specified in the following forms:

  • null, in which case the default timezone will be used, as specified in the ini setting date.timezone or through the function date_default_timezone_set() and as returned by date_default_timezone_get().

  • An IntlTimeZone, which will be used directly.

  • A DateTimeZone. Its identifier will be extracted and an ICU timezone object will be created; the timezone will be backed by ICU's database, not PHP's.

  • A string, which should be a valid ICU timezone identifier. See IntlTimeZone::createTimeZoneIDEnumeration(). Raw offsets such as "GMT+08:30" are also accepted.

Rückgabewerte

Returns null on success and false on failure.

Beispiele

Beispiel #1 IntlDateFormatter::setTimeZone() examples

<?php
ini_set('date.timezone', 'Europe/Amsterdam');

$formatter = IntlDateFormatter::create(NULL, NULL, NULL, "UTC");

$formatter->setTimeZone(NULL);
echo "NULL\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone(IntlTimeZone::createTimeZone('Europe/Lisbon'));
echo "IntlTimeZone\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone(new DateTimeZone('Europe/Paris'));
echo "DateTimeZone\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone('Europe/Rome');
echo "String\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone('GMT+00:30');
print_r($formatter->getTimeZone());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
    Europe/Amsterdam
IntlTimeZone
    Europe/Lisbon
DateTimeZone
    Europe/Paris
String
    Europe/Rome
IntlTimeZone Object
(
    [valid] => 1
    [id] => GMT+00:30
    [rawOffset] => 1800000
    [currentOffset] => 1800000
)

Siehe auch

  • IntlDateFormatter::getTimeZone() - Get formatter's timezone


The ResourceBundle class

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

Einführung

Localized software products often require sets of data that are to be customized depending on current locale, e.g.: messages, labels, formatting patterns. ICU resource mechanism allows to define sets of resources that the application can load on locale basis, while accessing them in unified locale-independent fashion.

This class implements access to ICU resource data files. These files are binary data arrays which ICU uses to store the localized data.

ICU resource bundle can hold simple resources and complex resources. Complex resources are containers which can be either integer-indexed or string-indexed (just like PHP arrays). Simple resources can be of the following types: string, integer, binary data field or integer array.

ResourceBundle supports direct access to the data through array access pattern and iteration via foreach, as well as access via class methods. The result will be PHP value for simple resources and ResourceBundle object for complex ones. All resources are read-only.

Klassenbeschreibung

ResourceBundle {
/* Methods */
public __construct ( string $locale , string $bundlename , bool $fallback = ? )
public count ( ) : int
public static create ( string $locale , string $bundlename , bool $fallback = ? ) : ResourceBundle
public getErrorCode ( ) : int
public getErrorMessage ( ) : string
public get ( string|int $index , bool $fallback = true ) : mixed
public getLocales ( string $bundlename ) : array
}

Siehe auch

  • » ICU Resource Management
  • » ICU Data

Inhaltsverzeichnis

  • ResourceBundle::count — Get number of elements in the bundle
  • ResourceBundle::create — Create a resource bundle
  • ResourceBundle::getErrorCode — Get bundle's last error code
  • ResourceBundle::getErrorMessage — Get bundle's last error message
  • ResourceBundle::get — Get data from the bundle
  • ResourceBundle::getLocales — Get supported locales


Get number of elements in the bundle

  • « ResourceBundle
  • ResourceBundle::create »
  • PHP Manual
  • ResourceBundle
  • Get number of elements in the bundle

ResourceBundle::count

resourcebundle_count

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

ResourceBundle::count -- resourcebundle_count — Get number of elements in the bundle

Beschreibung

Objektorientierter Stil

public ResourceBundle::count ( ) : int

Prozeduraler Stil

resourcebundle_count ( ResourceBundle $r ) : int

Get the number of elements in the bundle.

Parameter-Liste

r

ResourceBundle object.

Rückgabewerte

Returns number of elements in the bundle.

Beispiele

Beispiel #1 resourcebundle_count() example

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo resourcebundle_count($r);
?>

Beispiel #2 OO example

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r->count();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

42

Siehe auch

  • resourcebundle_get() - Get data from the bundle


Create a resource bundle

  • « ResourceBundle::count
  • ResourceBundle::getErrorCode »
  • PHP Manual
  • ResourceBundle
  • Create a resource bundle

ResourceBundle::create

resourcebundle_create

ResourceBundle::__construct

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

ResourceBundle::create -- resourcebundle_create -- ResourceBundle::__construct — Create a resource bundle

Beschreibung

Objektorientierter Stil (method)

public static ResourceBundle::create ( string $locale , string $bundlename , bool $fallback = ? ) : ResourceBundle

Prozeduraler Stil

resourcebundle_create ( string $locale , string $bundlename , bool $fallback = ? ) : ResourceBundle

Objektorientierter Stil (constructor):

public ResourceBundle::__construct ( string $locale , string $bundlename , bool $fallback = ? )

Creates a resource bundle.

Parameter-Liste

locale

Locale for which the resources should be loaded (locale name, e.g. en_CA).

bundlename

The directory where the data is stored or the name of the .dat file.

fallback

Whether locale should match exactly or fallback to parent locale is allowed.

Rückgabewerte

Returns ResourceBundle object or null on error.

Beispiele

Beispiel #1 resourcebundle_create() example

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['teststring'];
?>

Beispiel #2 ResourceBundle::create() example

<?php
$r = ResourceBundle::create( 'es', "/usr/share/data/myapp");
echo $r['teststring'];
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

¡Hola, mundo!

Siehe auch

  • resourcebundle_get() - Get data from the bundle


Get bundle's last error code

  • « ResourceBundle::create
  • ResourceBundle::getErrorMessage »
  • PHP Manual
  • ResourceBundle
  • Get bundle's last error code

ResourceBundle::getErrorCode

resourcebundle_get_error_code

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

ResourceBundle::getErrorCode -- resourcebundle_get_error_code — Get bundle's last error code

Beschreibung

Objektorientierter Stil

public ResourceBundle::getErrorCode ( ) : int

Prozeduraler Stil

resourcebundle_get_error_code ( ResourceBundle $r ) : int

Get error code from the last function performed by the bundle object.

Parameter-Liste

r

ResourceBundle object.

Rückgabewerte

Returns error code from last bundle object call.

Beispiele

Beispiel #1 resourcebundle_get_error_code() example

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(resourcebundle_get_error_code($r))) {
    report_error("Bundle error");
}
?>

Beispiel #2 OO example

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(ResourceBundle::getErrorCode($r))) {
    report_error("Bundle error");
}
?>

Siehe auch

  • resourcebundle_get_error_message() - Get bundle's last error message
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure


Get bundle's last error message

  • « ResourceBundle::getErrorCode
  • ResourceBundle::get »
  • PHP Manual
  • ResourceBundle
  • Get bundle's last error message

ResourceBundle::getErrorMessage

resourcebundle_get_error_message

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

ResourceBundle::getErrorMessage -- resourcebundle_get_error_message — Get bundle's last error message

Beschreibung

Objektorientierter Stil

public ResourceBundle::getErrorMessage ( ) : string

Prozeduraler Stil

resourcebundle_get_error_message ( ResourceBundle $r ) : string

Get error message from the last function performed by the bundle object.

Parameter-Liste

r

ResourceBundle object.

Rückgabewerte

Returns error message from last bundle object's call.

Beispiele

Beispiel #1 resourcebundle_get_error_message() example

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(resourcebundle_get_error_code($r))) {
    report_error("Bundle error: ".resourcebundle_get_error_message($r));
}
?>

Beispiel #2 OO example

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(ResourceBundle::getErrorCode($r))) {
    report_error("Bundle error: ".ResourceBundle::getErrorMessage($r));
}
?>

Siehe auch

  • resourcebundle_get_error_code() - Get bundle's last error code
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure


Get data from the bundle

  • « ResourceBundle::getErrorMessage
  • ResourceBundle::getLocales »
  • PHP Manual
  • ResourceBundle
  • Get data from the bundle

ResourceBundle::get

resourcebundle_get

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

ResourceBundle::get -- resourcebundle_get — Get data from the bundle

Beschreibung

Objektorientierter Stil

public ResourceBundle::get ( string|int $index , bool $fallback = true ) : mixed

Prozeduraler Stil

resourcebundle_get ( ResourceBundle $r , string|int $index , bool $fallback = true ) : mixed

Get the data from the bundle by index or string key.

Parameter-Liste

r

ResourceBundle object.

index

Data index, must be string or integer.

fallback

Whether locale should match exactly or fallback to parent locale is allowed.

Rückgabewerte

Returns the data located at the index or null on error. Strings, integers and binary data strings are returned as corresponding PHP types, integer array is returned as PHP array. Complex types are returned as ResourceBundle object.

Beispiele

Beispiel #1 resourcebundle_get() example

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo resourcebundle_get($r, 'somestring');
?>

Beispiel #2 OO example

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r->get('somestring');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

?Hola, mundo!

Siehe auch

  • resourcebundle_count() - Get number of elements in the bundle


Get supported locales

  • « ResourceBundle::get
  • Spoofchecker »
  • PHP Manual
  • ResourceBundle
  • Get supported locales

ResourceBundle::getLocales

resourcebundle_locales

(PHP 5 >= 5.3.2, PHP 7, PECL intl >= 2.0.0)

ResourceBundle::getLocales -- resourcebundle_locales — Get supported locales

Beschreibung

Objektorientierter Stil

public ResourceBundle::getLocales ( string $bundlename ) : array

Prozeduraler Stil

resourcebundle_locales ( string $bundlename ) : array

Get available locales from ResourceBundle name.

Parameter-Liste

bundlename

Path of ResourceBundle for which to get available locales, or empty string for default locales list.

Rückgabewerte

Returns the list of locales supported by the bundle.

Beispiele

Beispiel #1 resourcebundle_locales() example

<?php
$bundle = "/user/share/data/myapp";
echo join(PHP_EOL, resourcebundle_locales($bundle));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

es
root

Beispiel #2 OO example

<?php
$bundle = "/usr/share/data/myapp";
$r = new ResourceBundle( 'es', $bundle);
echo join("\n", $r->getLocales($bundle));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

es
root

Siehe auch

  • resourcebundle_get() - Get data from the bundle


The Spoofchecker class

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Einführung

This class is provided because Unicode contains large number of characters and incorporates the varied writing systems of the world and their incorrect usage can expose programs or systems to possible security attacks using characters similarity.

Provided methods allow to check whether an individual string is likely an attempt at confusing the reader (spoof detection), such as "p?yp?l" spelled with Cyrillic '?' characters.

Klassenbeschreibung

Spoofchecker {
/* Constants */
const int|float ASCII = 0x10000000 ;
const int|float HIGHLY_RESTRICTIVE = 0x30000000 ;
const int|float MODERATELY_RESTRICTIVE = 0x40000000 ;
const int|float MINIMALLY_RESTRICTIVE = 0x50000000 ;
const int|float UNRESTRICTIVE = 0x60000000 ;
const int|float SINGLE_SCRIPT_RESTRICTIVE = 0x20000000 ;
const int SINGLE_SCRIPT_CONFUSABLE = 1 ;
const int MIXED_SCRIPT_CONFUSABLE = 2 ;
const int WHOLE_SCRIPT_CONFUSABLE = 4 ;
const int ANY_CASE = 8 ;
const int SINGLE_SCRIPT = 16 ;
const int INVISIBLE = 32 ;
const int CHAR_LIMIT = 64 ;
/* Methoden */
public areConfusable ( string $str1 , string $str2 , string &$error = ? ) : bool
public __construct ( )
public isSuspicious ( string $text , string &$error = ? ) : bool
public setAllowedLocales ( string $locale_list ) : void
public setChecks ( int $checks ) : void
}

Vordefinierte Konstanten

Spoofchecker::ASCII

Spoofchecker::HIGHLY_RESTRICTIVE

Spoofchecker::MODERATELY_RESTRICTIVE

Spoofchecker::MINIMALLY_RESTRICTIVE

Spoofchecker::UNRESTRICTIVE

Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE

Spoofchecker::SINGLE_SCRIPT_CONFUSABLE

Spoofchecker::MIXED_SCRIPT_CONFUSABLE

Spoofchecker::WHOLE_SCRIPT_CONFUSABLE

Spoofchecker::ANY_CASE

Spoofchecker::SINGLE_SCRIPT

Spoofchecker::INVISIBLE

Spoofchecker::CHAR_LIMIT

Changelog

Version | Beschreibung
7.3.0 | Class constants used by Spoofchecker::setRestrictionLevel() such as Spoofchecker::ASCII, Spoofchecker::HIGHLY_RESTRICTIVE, Spoofchecker::MODERATELY_RESTRICTIVE, Spoofchecker::MINIMALLY_RESTRICTIVE, Spoofchecker::UNRESTRICTIVE, Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE has been added.

Inhaltsverzeichnis

  • Spoofchecker::areConfusable — Checks if given strings can be confused
  • Spoofchecker::__construct — Constructor
  • Spoofchecker::isSuspicious — Checks if a given text contains any suspicious characters
  • Spoofchecker::setAllowedLocales — Locales to use when running checks
  • Spoofchecker::setChecks — Set the checks to run


Checks if given strings can be confused

  • « Spoofchecker
  • Spoofchecker::__construct »
  • PHP Manual
  • Spoofchecker
  • Checks if given strings can be confused

Spoofchecker::areConfusable

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Spoofchecker::areConfusable — Checks if given strings can be confused

Beschreibung

public Spoofchecker::areConfusable ( string $str1 , string $str2 , string &$error = ? ) : bool

Checks whether two given strings can easily be mistaken.

Parameter-Liste

str1

First string to check.

str2

Second string to check.

error

This variable is set by-reference to string containing an error, if there were any.

Rückgabewerte

Returns true if two given strings can be confused, false otherwise.

Beispiele

Beispiel #1 Spoofchecker::areConfusable() example

<?php
$checker = new Spoofchecker();

$checker->areConfusable('google.com', 'goog1e.com'); // true
// Lower l can be confused with digit one

$checker->areConfusable('google.com', 'g00g1e.com'); // false
// Zero (0) cannot be easily confused with "o" letter


Constructor

  • « Spoofchecker::areConfusable
  • Spoofchecker::isSuspicious »
  • PHP Manual
  • Spoofchecker
  • Constructor

Spoofchecker::__construct

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Spoofchecker::__construct — Constructor

Beschreibung

public Spoofchecker::__construct ( )

Creates new instance of Spoofchecker.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns Spoofchecker instance.


Checks if a given text contains any suspicious characters

  • « Spoofchecker::__construct
  • Spoofchecker::setAllowedLocales »
  • PHP Manual
  • Spoofchecker
  • Checks if a given text contains any suspicious characters

Spoofchecker::isSuspicious

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Spoofchecker::isSuspicious — Checks if a given text contains any suspicious characters

Beschreibung

public Spoofchecker::isSuspicious ( string $text , string &$error = ? ) : bool

Checks if given string contains any suspicious characters like letters which are almost identical visually, but are Unicode characters from different sets.

Parameter-Liste

text

String to test.

error

This variable is set by-reference to string containing an error, if there were any.

Rückgabewerte

Returns true if there are suspicious characters, false otherwise.

Beispiele

Beispiel #1 Spoofchecker::isSuspicious() example

<?php
$checker = new Spoofchecker();

$checker->isSuspicious('google.com'); // FALSE: only ASCII characters

$checker->isSuspicious('?aypal.com'); // TRUE
// The first letter is from Cyrylic, not a regular latin "P"


Locales to use when running checks

  • « Spoofchecker::isSuspicious
  • Spoofchecker::setChecks »
  • PHP Manual
  • Spoofchecker
  • Locales to use when running checks

Spoofchecker::setAllowedLocales

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Spoofchecker::setAllowedLocales — Locales to use when running checks

Beschreibung

public Spoofchecker::setAllowedLocales ( string $locale_list ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

locale_list

Rückgabewerte


Set the checks to run

  • « Spoofchecker::setAllowedLocales
  • Transliterator »
  • PHP Manual
  • Spoofchecker
  • Set the checks to run

Spoofchecker::setChecks

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Spoofchecker::setChecks — Set the checks to run

Beschreibung

public Spoofchecker::setChecks ( int $checks ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

checks

Rückgabewerte


The Transliterator class

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Einführung

Transliterator provides transliteration of strings.

Klassenbeschreibung

Transliterator {
/* Konstanten */
const int FORWARD = 0 ;
const int REVERSE = 1 ;
/* Eigenschaften */
public $id ;
/* Methoden */
private __construct ( )
public static create ( string $id , int $direction = ? ) : Transliterator
public static createFromRules ( string $rules , string $direction = ? ) : Transliterator
public createInverse ( ) : Transliterator
public getErrorCode ( ) : int
public getErrorMessage ( ) : string
public static listIDs ( ) : array|false
public transliterate ( string $subject , int $start = ? , int $end = ? ) : string|false
}

Eigenschaften

id

Vordefinierte Konstanten

Transliterator::FORWARD

Transliterator::REVERSE

Inhaltsverzeichnis

  • Transliterator::__construct — Private constructor to deny instantiation
  • Transliterator::create — Create a transliterator
  • Transliterator::createFromRules — Create transliterator from rules
  • Transliterator::createInverse — Create an inverse transliterator
  • Transliterator::getErrorCode — Get last error code
  • Transliterator::getErrorMessage — Get last error message
  • Transliterator::listIDs — Get transliterator IDs
  • Transliterator::transliterate — Transliterate a string


Private constructor to deny instantiation

  • « Transliterator
  • Transliterator::create »
  • PHP Manual
  • Transliterator
  • Private constructor to deny instantiation

Transliterator::__construct

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::__construct — Private constructor to deny instantiation

Beschreibung

private Transliterator::__construct ( )

This method should not be called. Its only purpose is to deny instantiation with the new operator.

Use the factory methods Transliterator::create() or Transliterator::createFromRules() instead.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This method should not be executed. If it is (e.g. through reflection), then its return value is unspecified.

Siehe auch

  • Transliterator::create() - Create a transliterator
  • Transliterator::createFromRules() - Create transliterator from rules


Create a transliterator

  • « Transliterator::__construct
  • Transliterator::createFromRules »
  • PHP Manual
  • Transliterator
  • Create a transliterator

Transliterator::create

transliterator_create

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::create -- transliterator_create — Create a transliterator

Beschreibung

Objektorientierter Stil

public static Transliterator::create ( string $id , int $direction = ? ) : Transliterator

Prozeduraler Stil

transliterator_create ( string $id , int $direction = ? ) : Transliterator

Opens a Transliterator by ID.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

id

The ID. A list of all registered transliterator IDs can be retrieved by using Transliterator::listIDs().

direction

The direction, defaults to Transliterator::FORWARD. May also be set to Transliterator::REVERSE.

Rückgabewerte

Returns a Transliterator object on success, or null on failure.

Siehe auch

  • Transliterator::getErrorMessage() - Get last error message
  • Transliterator::__construct() - Private constructor to deny instantiation


Create transliterator from rules

  • « Transliterator::create
  • Transliterator::createInverse »
  • PHP Manual
  • Transliterator
  • Create transliterator from rules

Transliterator::createFromRules

transliterator_create_from_rules

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::createFromRules -- transliterator_create_from_rules — Create transliterator from rules

Beschreibung

Objektorientierter Stil

public static Transliterator::createFromRules ( string $rules , string $direction = ? ) : Transliterator

Prozeduraler Stil

transliterator_create_from_rules ( string $id , int $direction = ? ) : Transliterator

Creates a Transliterator from rules.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

rules

The rules as defined in Transform Rules Syntax of UTS #35: Unicode LDML.

direction

The direction, defaults to >Transliterator::FORWARD. May also be set to Transliterator::REVERSE.

Rückgabewerte

Returns a Transliterator object on success, or null on failure.

Siehe auch

  • Transliterator::getErrorMessage() - Get last error message
  • Transliterator::create() - Create a transliterator


Create an inverse transliterator

  • « Transliterator::createFromRules
  • Transliterator::getErrorCode »
  • PHP Manual
  • Transliterator
  • Create an inverse transliterator

Transliterator::createInverse

transliterator_create_inverse

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::createInverse -- transliterator_create_inverse — Create an inverse transliterator

Beschreibung

Objektorientierter Stil

public Transliterator::createInverse ( ) : Transliterator

Prozeduraler Stil

transliterator_create_inverse ( ) : Transliterator

Opens the inverse transliterator.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a Transliterator object on success, or null on failure

Siehe auch

  • Transliterator::getErrorMessage() - Get last error message
  • Transliterator::create() - Create a transliterator


Get last error code

  • « Transliterator::createInverse
  • Transliterator::getErrorMessage »
  • PHP Manual
  • Transliterator
  • Get last error code

Transliterator::getErrorCode

transliterator_get_error_code

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::getErrorCode -- transliterator_get_error_code — Get last error code

Beschreibung

Objektorientierter Stil

public Transliterator::getErrorCode ( ) : int

Prozeduraler Stil

transliterator_get_error_code ( Transliterator $trans ) : int

Gets the last error code for this transliterator.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

trans

Rückgabewerte

The error code on success, or false if none exists, or on failure.

Siehe auch

  • Transliterator::getErrorMessage() - Get last error message
  • Transliterator::listIDs() - Get transliterator IDs


Get last error message

  • « Transliterator::getErrorCode
  • Transliterator::listIDs »
  • PHP Manual
  • Transliterator
  • Get last error message

Transliterator::getErrorMessage

transliterator_get_error_message

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::getErrorMessage -- transliterator_get_error_message — Get last error message

Beschreibung

Objektorientierter Stil

public Transliterator::getErrorMessage ( ) : string

Prozeduraler Stil

transliterator_get_error_message ( Transliterator $trans ) : string

Gets the last error message for this transliterator.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

trans

Rückgabewerte

The error message on success, or false if none exists, or on failure.

Siehe auch

  • Transliterator::getErrorCode() - Get last error code
  • Transliterator::listIDs() - Get transliterator IDs


Get transliterator IDs

  • « Transliterator::getErrorMessage
  • Transliterator::transliterate »
  • PHP Manual
  • Transliterator
  • Get transliterator IDs

Transliterator::listIDs

transliterator_list_ids

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::listIDs -- transliterator_list_ids — Get transliterator IDs

Beschreibung

Objektorientierter Stil

public static Transliterator::listIDs ( ) : array|false

Prozeduraler Stil

transliterator_list_ids ( ) : array|false

Returns an array with the registered transliterator IDs.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of registered transliterator IDs on success, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Retrieving the registered transliterator IDs

<?php
print_r(Transliterator::listIDs());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => ASCII-Latin
    [1] => Accents-Any
    [2] => Amharic-Latin/BGN
    [3] => Any-Accents
    [4] => Any-Publishing
...
    [650] => Any-ps_Latn/BGN
    [651] => Any-tk/BGN
    [652] => Any-ch_FONIPA
    [653] => Any-cs_FONIPA
    [654] => Any-cy_FONIPA
)

Siehe auch

  • Transliterator::getErrorMessage() - Get last error message
  • Transliterator::transliterate() - Transliterate a string


Transliterate a string

  • « Transliterator::listIDs
  • IntlBreakIterator »
  • PHP Manual
  • Transliterator
  • Transliterate a string

Transliterator::transliterate

transliterator_transliterate

(PHP 5 >= 5.4.0, PHP 7, PECL intl >= 2.0.0)

Transliterator::transliterate -- transliterator_transliterate — Transliterate a string

Beschreibung

Objektorientierter Stil

public Transliterator::transliterate ( string $subject , int $start = ? , int $end = ? ) : string|false

Prozeduraler Stil

transliterator_transliterate ( mixed $transliterator , string $subject , int $start = ? , int $end = ? )

Transforms a string or part thereof using an ICU transliterator.

Parameter-Liste

transliterator

In the procedural version, either a Transliterator or a string from which a Transliterator can be built.

subject

The string to be transformed.

start

The start index (in UTF-16 code units) from which the string will start to be transformed, inclusive. Indexing starts at 0. The text before will be left as is.

end

The end index (in UTF-16 code units) until which the string will be transformed, exclusive. Indexing starts at 0. The text after will be left as is.

Rückgabewerte

The transformed string on success, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Converting escaped UTF-16 code units

<?php
$s = "\u304A\u65E9\u3046\u3054\u3056\u3044\u307E\u3059";
echo transliterator_transliterate("Hex-Any/Java", $s), "\n";

//now the reverse operation with a supplementary character
$supplChar = html_entity_decode('&#x1D11E;');
echo mb_strlen($supplChar, "UTF-8"), "\n";
$encSupplChar = transliterator_transliterate("Any-Hex/Java", $supplChar);
//echoes two encoded UTF-16 code units
echo $encSupplChar, "\n";
//and back
echo transliterator_transliterate("Hex-Any/Java", $encSupplChar), "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

????????
1
\uD834\uDD1E
??

Siehe auch

  • Transliterator::getErrorMessage() - Get last error message
  • Transliterator::__construct() - Private constructor to deny instantiation


The IntlBreakIterator class

(PHP 5 >= 5.5.0, PHP 7)

Einführung

A “break iterator” is an ICU object that exposes methods for locating boundaries in text (e.g. word or sentence boundaries). The PHP IntlBreakIterator serves as the base class for all types of ICU break iterators. Where extra functionality is available, the intl extension may expose the ICU break iterator with suitable subclasses, such as IntlRuleBasedBreakIterator or IntlCodePointBreakIterator.

This class implements Traversable. Traversing an IntlBreakIterator yields non-negative integer values representing the successive locations of the text boundaries, expressed as UTF-8 code units (byte) counts, taken from the beginning of the text (which has the location 0). The keys yielded by the iterator simply form the sequence of natural numbers {0, 1, 2, …}.

Klassenbeschreibung

IntlBreakIterator implements Traversable {
/* Konstanten */
const int DONE = -1 ;
const int WORD_NONE = 0 ;
const int WORD_NONE_LIMIT = 100 ;
const int WORD_NUMBER = 100 ;
const int WORD_NUMBER_LIMIT = 200 ;
const int WORD_LETTER = 200 ;
const int WORD_LETTER_LIMIT = 300 ;
const int WORD_KANA = 300 ;
const int WORD_KANA_LIMIT = 400 ;
const int WORD_IDEO = 400 ;
const int WORD_IDEO_LIMIT = 500 ;
const int LINE_SOFT = 0 ;
const int LINE_SOFT_LIMIT = 100 ;
const int LINE_HARD = 100 ;
const int LINE_HARD_LIMIT = 200 ;
const int SENTENCE_TERM = 0 ;
const int SENTENCE_TERM_LIMIT = 100 ;
const int SENTENCE_SEP = 100 ;
const int SENTENCE_SEP_LIMIT = 200 ;
/* Methoden */
private __construct ( )
public static createCharacterInstance ( string $locale = ? ) : IntlBreakIterator
public static createCodePointInstance ( ) : IntlBreakIterator
public static createLineInstance ( string $locale = ? ) : IntlBreakIterator
public static createSentenceInstance ( string $locale = ? ) : IntlBreakIterator
public static createTitleInstance ( string $locale = ? ) : IntlBreakIterator
public static createWordInstance ( string $locale = ? ) : IntlBreakIterator
public current ( ) : int
public first ( ) : int
public following ( int $offset ) : int
public getErrorCode ( ) : int
intl_get_error_code ( ) : int
public getErrorMessage ( ) : string
intl_get_error_message ( ) : string
public getLocale ( string $locale_type ) : string
public getPartsIterator ( int $key_type = IntlPartsIterator::KEY_SEQUENTIAL ) : IntlPartsIterator
public getText ( ) : string
public isBoundary ( int $offset ) : bool
public last ( ) : int
public next ( int $offset = ? ) : int
public preceding ( int $offset ) : int
public previous ( ) : int
public setText ( string $text ) : bool
}

Vordefinierte Konstanten

IntlBreakIterator::DONE

IntlBreakIterator::WORD_NONE

IntlBreakIterator::WORD_NONE_LIMIT

IntlBreakIterator::WORD_NUMBER

IntlBreakIterator::WORD_NUMBER_LIMIT

IntlBreakIterator::WORD_LETTER

IntlBreakIterator::WORD_LETTER_LIMIT

IntlBreakIterator::WORD_KANA

IntlBreakIterator::WORD_KANA_LIMIT

IntlBreakIterator::WORD_IDEO

IntlBreakIterator::WORD_IDEO_LIMIT

IntlBreakIterator::LINE_SOFT

IntlBreakIterator::LINE_SOFT_LIMIT

IntlBreakIterator::LINE_HARD

IntlBreakIterator::LINE_HARD_LIMIT

IntlBreakIterator::SENTENCE_TERM

IntlBreakIterator::SENTENCE_TERM_LIMIT

IntlBreakIterator::SENTENCE_SEP

IntlBreakIterator::SENTENCE_SEP_LIMIT

Inhaltsverzeichnis

  • IntlBreakIterator::__construct — Private constructor for disallowing instantiation
  • IntlBreakIterator::createCharacterInstance — Create break iterator for boundaries of combining character sequences
  • IntlBreakIterator::createCodePointInstance — Create break iterator for boundaries of code points
  • IntlBreakIterator::createLineInstance — Create break iterator for logically possible line breaks
  • IntlBreakIterator::createSentenceInstance — Create break iterator for sentence breaks
  • IntlBreakIterator::createTitleInstance — Create break iterator for title-casing breaks
  • IntlBreakIterator::createWordInstance — Create break iterator for word breaks
  • IntlBreakIterator::current — Get index of current position
  • IntlBreakIterator::first — Set position to the first character in the text
  • IntlBreakIterator::following — Advance the iterator to the first boundary following specified offset
  • IntlBreakIterator::getErrorCode — Get last error code on the object
  • IntlBreakIterator::getErrorMessage — Get last error message on the object
  • IntlBreakIterator::getLocale — Get the locale associated with the object
  • IntlBreakIterator::getPartsIterator — Create iterator for navigating fragments between boundaries
  • IntlBreakIterator::getText — Get the text being scanned
  • IntlBreakIterator::isBoundary — Tell whether an offset is a boundary's offset
  • IntlBreakIterator::last — Set the iterator position to index beyond the last character
  • IntlBreakIterator::next — Advance the iterator the next boundary
  • IntlBreakIterator::preceding — Set the iterator position to the first boundary before an offset
  • IntlBreakIterator::previous — Set the iterator position to the boundary immediately before the current
  • IntlBreakIterator::setText — Set the text being scanned


Private constructor for disallowing instantiation

  • « IntlBreakIterator
  • IntlBreakIterator::createCharacterInstance »
  • PHP Manual
  • IntlBreakIterator
  • Private constructor for disallowing instantiation

IntlBreakIterator::__construct

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::__construct — Private constructor for disallowing instantiation

Beschreibung

private IntlBreakIterator::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Create break iterator for boundaries of combining character sequences

  • « IntlBreakIterator::__construct
  • IntlBreakIterator::createCodePointInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for boundaries of combining character sequences

IntlBreakIterator::createCharacterInstance

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::createCharacterInstance — Create break iterator for boundaries of combining character sequences

Beschreibung

public static IntlBreakIterator::createCharacterInstance ( string $locale = ? ) : IntlBreakIterator

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

locale

Rückgabewerte


Create break iterator for boundaries of code points

  • « IntlBreakIterator::createCharacterInstance
  • IntlBreakIterator::createLineInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for boundaries of code points

IntlBreakIterator::createCodePointInstance

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::createCodePointInstance — Create break iterator for boundaries of code points

Beschreibung

public static IntlBreakIterator::createCodePointInstance ( ) : IntlBreakIterator

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Create break iterator for logically possible line breaks

  • « IntlBreakIterator::createCodePointInstance
  • IntlBreakIterator::createSentenceInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for logically possible line breaks

IntlBreakIterator::createLineInstance

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::createLineInstance — Create break iterator for logically possible line breaks

Beschreibung

public static IntlBreakIterator::createLineInstance ( string $locale = ? ) : IntlBreakIterator

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

locale

Rückgabewerte


Create break iterator for sentence breaks

  • « IntlBreakIterator::createLineInstance
  • IntlBreakIterator::createTitleInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for sentence breaks

IntlBreakIterator::createSentenceInstance

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::createSentenceInstance — Create break iterator for sentence breaks

Beschreibung

public static IntlBreakIterator::createSentenceInstance ( string $locale = ? ) : IntlBreakIterator

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

locale

Rückgabewerte


Create break iterator for title-casing breaks

  • « IntlBreakIterator::createSentenceInstance
  • IntlBreakIterator::createWordInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for title-casing breaks

IntlBreakIterator::createTitleInstance

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::createTitleInstance — Create break iterator for title-casing breaks

Beschreibung

public static IntlBreakIterator::createTitleInstance ( string $locale = ? ) : IntlBreakIterator

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

locale

Rückgabewerte


Create break iterator for word breaks

  • « IntlBreakIterator::createTitleInstance
  • IntlBreakIterator::current »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for word breaks

IntlBreakIterator::createWordInstance

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::createWordInstance — Create break iterator for word breaks

Beschreibung

public static IntlBreakIterator::createWordInstance ( string $locale = ? ) : IntlBreakIterator

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

locale

Rückgabewerte


Get index of current position

  • « IntlBreakIterator::createWordInstance
  • IntlBreakIterator::first »
  • PHP Manual
  • IntlBreakIterator
  • Get index of current position

IntlBreakIterator::current

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::current — Get index of current position

Beschreibung

public IntlBreakIterator::current ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Set position to the first character in the text

  • « IntlBreakIterator::current
  • IntlBreakIterator::following »
  • PHP Manual
  • IntlBreakIterator
  • Set position to the first character in the text

IntlBreakIterator::first

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::first — Set position to the first character in the text

Beschreibung

public IntlBreakIterator::first ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Advance the iterator to the first boundary following specified offset

  • « IntlBreakIterator::first
  • IntlBreakIterator::getErrorCode »
  • PHP Manual
  • IntlBreakIterator
  • Advance the iterator to the first boundary following specified offset

IntlBreakIterator::following

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::following — Advance the iterator to the first boundary following specified offset

Beschreibung

public IntlBreakIterator::following ( int $offset ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

offset

Rückgabewerte


Get last error code on the object

  • « IntlBreakIterator::following
  • IntlBreakIterator::getErrorMessage »
  • PHP Manual
  • IntlBreakIterator
  • Get last error code on the object

IntlBreakIterator::getErrorCode

intl_get_error_code

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::getErrorCode -- intl_get_error_code — Get last error code on the object

Beschreibung

Objektorientierter Stil (method):

public IntlBreakIterator::getErrorCode ( ) : int

Prozeduraler Stil:

intl_get_error_code ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get last error message on the object

  • « IntlBreakIterator::getErrorCode
  • IntlBreakIterator::getLocale »
  • PHP Manual
  • IntlBreakIterator
  • Get last error message on the object

IntlBreakIterator::getErrorMessage

intl_get_error_message

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::getErrorMessage -- intl_get_error_message — Get last error message on the object

Beschreibung

Objektorientierter Stil (method):

public IntlBreakIterator::getErrorMessage ( ) : string

Prozeduraler Stil:

intl_get_error_message ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the locale associated with the object

  • « IntlBreakIterator::getErrorMessage
  • IntlBreakIterator::getPartsIterator »
  • PHP Manual
  • IntlBreakIterator
  • Get the locale associated with the object

IntlBreakIterator::getLocale

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::getLocale — Get the locale associated with the object

Beschreibung

public IntlBreakIterator::getLocale ( string $locale_type ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

locale_type

Rückgabewerte


Create iterator for navigating fragments between boundaries

  • « IntlBreakIterator::getLocale
  • IntlBreakIterator::getText »
  • PHP Manual
  • IntlBreakIterator
  • Create iterator for navigating fragments between boundaries

IntlBreakIterator::getPartsIterator

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::getPartsIterator — Create iterator for navigating fragments between boundaries

Beschreibung

public IntlBreakIterator::getPartsIterator ( int $key_type = IntlPartsIterator::KEY_SEQUENTIAL ) : IntlPartsIterator

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

key_type

Optional key type. Possible values are:

  • IntlPartsIterator::KEY_SEQUENTIAL - The default. Sequentially increasing integers used as key.
  • IntlPartsIterator::KEY_LEFT - Byte offset left of current part used as key.
  • IntlPartsIterator::KEY_RIGHT - Byte offset right of current part used as key.

Rückgabewerte


Get the text being scanned

  • « IntlBreakIterator::getPartsIterator
  • IntlBreakIterator::isBoundary »
  • PHP Manual
  • IntlBreakIterator
  • Get the text being scanned

IntlBreakIterator::getText

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::getText — Get the text being scanned

Beschreibung

public IntlBreakIterator::getText ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Tell whether an offset is a boundary's offset

  • « IntlBreakIterator::getText
  • IntlBreakIterator::last »
  • PHP Manual
  • IntlBreakIterator
  • Tell whether an offset is a boundary's offset

IntlBreakIterator::isBoundary

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::isBoundary — Tell whether an offset is a boundary's offset

Beschreibung

public IntlBreakIterator::isBoundary ( int $offset ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

offset

Rückgabewerte


Set the iterator position to index beyond the last character

  • « IntlBreakIterator::isBoundary
  • IntlBreakIterator::next »
  • PHP Manual
  • IntlBreakIterator
  • Set the iterator position to index beyond the last character

IntlBreakIterator::last

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::last — Set the iterator position to index beyond the last character

Beschreibung

public IntlBreakIterator::last ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Advance the iterator the next boundary

  • « IntlBreakIterator::last
  • IntlBreakIterator::preceding »
  • PHP Manual
  • IntlBreakIterator
  • Advance the iterator the next boundary

IntlBreakIterator::next

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::next — Advance the iterator the next boundary

Beschreibung

public IntlBreakIterator::next ( int $offset = ? ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

offset

Rückgabewerte


Set the iterator position to the first boundary before an offset

  • « IntlBreakIterator::next
  • IntlBreakIterator::previous »
  • PHP Manual
  • IntlBreakIterator
  • Set the iterator position to the first boundary before an offset

IntlBreakIterator::preceding

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::preceding — Set the iterator position to the first boundary before an offset

Beschreibung

public IntlBreakIterator::preceding ( int $offset ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

offset

Rückgabewerte


Set the iterator position to the boundary immediately before the current

  • « IntlBreakIterator::preceding
  • IntlBreakIterator::setText »
  • PHP Manual
  • IntlBreakIterator
  • Set the iterator position to the boundary immediately before the current

IntlBreakIterator::previous

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::previous — Set the iterator position to the boundary immediately before the current

Beschreibung

public IntlBreakIterator::previous ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Set the text being scanned

  • « IntlBreakIterator::previous
  • IntlRuleBasedBreakIterator »
  • PHP Manual
  • IntlBreakIterator
  • Set the text being scanned

IntlBreakIterator::setText

(PHP 5 >= 5.5.0, PHP 7)

IntlBreakIterator::setText — Set the text being scanned

Beschreibung

public IntlBreakIterator::setText ( string $text ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

text

Rückgabewerte


The IntlRuleBasedBreakIterator class

(PHP 5 >= 5.5.0, PHP 7)

Einführung

A subclass of IntlBreakIterator that encapsulates ICU break iterators whose behavior is specified using a set of rules. This is the most common kind of break iterators.

These rules are described in the » ICU Boundary Analysis User Guide.

Klassenbeschreibung

IntlRuleBasedBreakIterator extends IntlBreakIterator implements Traversable {
/* Geerbte Konstanten */
const int IntlBreakIterator::DONE = -1 ;
const int IntlBreakIterator::WORD_NONE = 0 ;
const int IntlBreakIterator::WORD_NONE_LIMIT = 100 ;
const int IntlBreakIterator::WORD_NUMBER = 100 ;
const int IntlBreakIterator::WORD_NUMBER_LIMIT = 200 ;
const int IntlBreakIterator::WORD_LETTER = 200 ;
const int IntlBreakIterator::WORD_LETTER_LIMIT = 300 ;
const int IntlBreakIterator::WORD_KANA = 300 ;
const int IntlBreakIterator::WORD_KANA_LIMIT = 400 ;
const int IntlBreakIterator::WORD_IDEO = 400 ;
const int IntlBreakIterator::WORD_IDEO_LIMIT = 500 ;
const int IntlBreakIterator::LINE_SOFT = 0 ;
const int IntlBreakIterator::LINE_SOFT_LIMIT = 100 ;
const int IntlBreakIterator::LINE_HARD = 100 ;
const int IntlBreakIterator::LINE_HARD_LIMIT = 200 ;
const int IntlBreakIterator::SENTENCE_TERM = 0 ;
const int IntlBreakIterator::SENTENCE_TERM_LIMIT = 100 ;
const int IntlBreakIterator::SENTENCE_SEP = 100 ;
const int IntlBreakIterator::SENTENCE_SEP_LIMIT = 200 ;
/* Methoden */
public __construct ( string $rules , string $areCompiled = ? )
public getBinaryRules ( ) : string
public getRules ( ) : string
public getRuleStatus ( ) : int
public getRuleStatusVec ( ) : array
/* Geerbte Methoden */
private IntlBreakIterator::__construct ( )
public static IntlBreakIterator::createCharacterInstance ( string $locale = ? ) : IntlBreakIterator
public static IntlBreakIterator::createCodePointInstance ( ) : IntlBreakIterator
public static IntlBreakIterator::createLineInstance ( string $locale = ? ) : IntlBreakIterator
public static IntlBreakIterator::createSentenceInstance ( string $locale = ? ) : IntlBreakIterator
public static IntlBreakIterator::createTitleInstance ( string $locale = ? ) : IntlBreakIterator
public static IntlBreakIterator::createWordInstance ( string $locale = ? ) : IntlBreakIterator
public IntlBreakIterator::current ( ) : int
public IntlBreakIterator::first ( ) : int
public IntlBreakIterator::following ( int $offset ) : int
public IntlBreakIterator::getErrorCode ( ) : int
intl_get_error_code ( ) : int
public IntlBreakIterator::getErrorMessage ( ) : string
intl_get_error_message ( ) : string
public IntlBreakIterator::getLocale ( string $locale_type ) : string
public IntlBreakIterator::getPartsIterator ( int $key_type = IntlPartsIterator::KEY_SEQUENTIAL ) : IntlPartsIterator
public IntlBreakIterator::getText ( ) : string
public IntlBreakIterator::isBoundary ( int $offset ) : bool
public IntlBreakIterator::last ( ) : int
public IntlBreakIterator::next ( int $offset = ? ) : int
public IntlBreakIterator::preceding ( int $offset ) : int
public IntlBreakIterator::previous ( ) : int
public IntlBreakIterator::setText ( string $text ) : bool
}

Inhaltsverzeichnis

  • IntlRuleBasedBreakIterator::__construct — Create iterator from ruleset
  • IntlRuleBasedBreakIterator::getBinaryRules — Get the binary form of compiled rules
  • IntlRuleBasedBreakIterator::getRules — Get the rule set used to create this object
  • IntlRuleBasedBreakIterator::getRuleStatus — Get the largest status value from the break rules that determined the current break position
  • IntlRuleBasedBreakIterator::getRuleStatusVec — Get the status values from the break rules that determined the current break position


Create iterator from ruleset

  • « IntlRuleBasedBreakIterator
  • IntlRuleBasedBreakIterator::getBinaryRules »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Create iterator from ruleset

IntlRuleBasedBreakIterator::__construct

(PHP 5 >= 5.5.0, PHP 7)

IntlRuleBasedBreakIterator::__construct — Create iterator from ruleset

Beschreibung

public IntlRuleBasedBreakIterator::__construct ( string $rules , string $areCompiled = ? )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

rules

areCompiled

Rückgabewerte


Get the binary form of compiled rules

  • « IntlRuleBasedBreakIterator::__construct
  • IntlRuleBasedBreakIterator::getRules »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Get the binary form of compiled rules

IntlRuleBasedBreakIterator::getBinaryRules

(PHP 5 >= 5.5.0, PHP 7)

IntlRuleBasedBreakIterator::getBinaryRules — Get the binary form of compiled rules

Beschreibung

public IntlRuleBasedBreakIterator::getBinaryRules ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the rule set used to create this object

  • « IntlRuleBasedBreakIterator::getBinaryRules
  • IntlRuleBasedBreakIterator::getRuleStatus »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Get the rule set used to create this object

IntlRuleBasedBreakIterator::getRules

(PHP 5 >= 5.5.0, PHP 7)

IntlRuleBasedBreakIterator::getRules — Get the rule set used to create this object

Beschreibung

public IntlRuleBasedBreakIterator::getRules ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the largest status value from the break rules that determined the current break position

  • « IntlRuleBasedBreakIterator::getRules
  • IntlRuleBasedBreakIterator::getRuleStatusVec »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Get the largest status value from the break rules that determined the current break position

IntlRuleBasedBreakIterator::getRuleStatus

(PHP 5 >= 5.5.0, PHP 7)

IntlRuleBasedBreakIterator::getRuleStatus — Get the largest status value from the break rules that determined the current break position

Beschreibung

public IntlRuleBasedBreakIterator::getRuleStatus ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the status values from the break rules that determined the current break position

  • « IntlRuleBasedBreakIterator::getRuleStatus
  • IntlCodePointBreakIterator »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Get the status values from the break rules that determined the current break position

IntlRuleBasedBreakIterator::getRuleStatusVec

(PHP 5 >= 5.5.0, PHP 7)

IntlRuleBasedBreakIterator::getRuleStatusVec — Get the status values from the break rules that determined the current break position

Beschreibung

public IntlRuleBasedBreakIterator::getRuleStatusVec ( ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The IntlCodePointBreakIterator class

(PHP 5 >= 5.5.0, PHP 7)

Einführung

This break iterator identifies the boundaries between UTF-8 code points.

Klassenbeschreibung

IntlCodePointBreakIterator extends IntlBreakIterator implements Traversable {
/* Geerbte Konstanten */
const int IntlBreakIterator::DONE = -1 ;
const int IntlBreakIterator::WORD_NONE = 0 ;
const int IntlBreakIterator::WORD_NONE_LIMIT = 100 ;
const int IntlBreakIterator::WORD_NUMBER = 100 ;
const int IntlBreakIterator::WORD_NUMBER_LIMIT = 200 ;
const int IntlBreakIterator::WORD_LETTER = 200 ;
const int IntlBreakIterator::WORD_LETTER_LIMIT = 300 ;
const int IntlBreakIterator::WORD_KANA = 300 ;
const int IntlBreakIterator::WORD_KANA_LIMIT = 400 ;
const int IntlBreakIterator::WORD_IDEO = 400 ;
const int IntlBreakIterator::WORD_IDEO_LIMIT = 500 ;
const int IntlBreakIterator::LINE_SOFT = 0 ;
const int IntlBreakIterator::LINE_SOFT_LIMIT = 100 ;
const int IntlBreakIterator::LINE_HARD = 100 ;
const int IntlBreakIterator::LINE_HARD_LIMIT = 200 ;
const int IntlBreakIterator::SENTENCE_TERM = 0 ;
const int IntlBreakIterator::SENTENCE_TERM_LIMIT = 100 ;
const int IntlBreakIterator::SENTENCE_SEP = 100 ;
const int IntlBreakIterator::SENTENCE_SEP_LIMIT = 200 ;
/* Methoden */
public getLastCodePoint ( ) : int
/* Geerbte Methoden */
private IntlBreakIterator::__construct ( )
public static IntlBreakIterator::createCharacterInstance ( string $locale = ? ) : IntlBreakIterator
public static IntlBreakIterator::createCodePointInstance ( ) : IntlBreakIterator
public static IntlBreakIterator::createLineInstance ( string $locale = ? ) : IntlBreakIterator
public static IntlBreakIterator::createSentenceInstance ( string $locale = ? ) : IntlBreakIterator
public static IntlBreakIterator::createTitleInstance ( string $locale = ? ) : IntlBreakIterator
public static IntlBreakIterator::createWordInstance ( string $locale = ? ) : IntlBreakIterator
public IntlBreakIterator::current ( ) : int
public IntlBreakIterator::first ( ) : int
public IntlBreakIterator::following ( int $offset ) : int
public IntlBreakIterator::getErrorCode ( ) : int
intl_get_error_code ( ) : int
public IntlBreakIterator::getErrorMessage ( ) : string
intl_get_error_message ( ) : string
public IntlBreakIterator::getLocale ( string $locale_type ) : string
public IntlBreakIterator::getPartsIterator ( int $key_type = IntlPartsIterator::KEY_SEQUENTIAL ) : IntlPartsIterator
public IntlBreakIterator::getText ( ) : string
public IntlBreakIterator::isBoundary ( int $offset ) : bool
public IntlBreakIterator::last ( ) : int
public IntlBreakIterator::next ( int $offset = ? ) : int
public IntlBreakIterator::preceding ( int $offset ) : int
public IntlBreakIterator::previous ( ) : int
public IntlBreakIterator::setText ( string $text ) : bool
}

Inhaltsverzeichnis

  • IntlCodePointBreakIterator::getLastCodePoint — Get last code point passed over after advancing or receding the iterator


Get last code point passed over after advancing or receding the iterator

  • « IntlCodePointBreakIterator
  • IntlPartsIterator »
  • PHP Manual
  • IntlCodePointBreakIterator
  • Get last code point passed over after advancing or receding the iterator

IntlCodePointBreakIterator::getLastCodePoint

(PHP 5 >= 5.5.0, PHP 7)

IntlCodePointBreakIterator::getLastCodePoint — Get last code point passed over after advancing or receding the iterator

Beschreibung

public IntlCodePointBreakIterator::getLastCodePoint ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The IntlPartsIterator class

(PHP 5 >= 5.5.0, PHP 7)

Einführung

Objects of this class can be obtained from IntlBreakIterator objects. While the break iterators provide a sequence of boundary positions when iterated, IntlPartsIterator objects provide, as a convenience, the text fragments comprehended between two successive boundaries.

The keys may represent the offset of the left boundary, right boundary, or they may just the sequence of non-negative integers. See IntlBreakIterator::getPartsIterator().

Klassenbeschreibung

IntlPartsIterator extends IntlIterator implements Iterator {
/* Constants */
const int KEY_SEQUENTIAL = 0 ;
const int KEY_LEFT = 1 ;
const int KEY_RIGHT = 2 ;
/* Methoden */
public getBreakIterator ( ) : IntlBreakIterator
/* Geerbte Methoden */
public IntlIterator::current ( ) : mixed
public IntlIterator::key ( ) : string
public IntlIterator::next ( ) : void
public IntlIterator::rewind ( ) : void
public IntlIterator::valid ( ) : bool
}

Vordefinierte Konstanten

IntlPartsIterator::KEY_SEQUENTIAL

IntlPartsIterator::KEY_LEFT

IntlPartsIterator::KEY_RIGHT

Inhaltsverzeichnis

  • IntlPartsIterator::getBreakIterator — Get IntlBreakIterator backing this parts iterator


Get IntlBreakIterator backing this parts iterator

  • « IntlPartsIterator
  • UConverter »
  • PHP Manual
  • IntlPartsIterator
  • Get IntlBreakIterator backing this parts iterator

IntlPartsIterator::getBreakIterator

(PHP 5 >= 5.5.0, PHP 7)

IntlPartsIterator::getBreakIterator — Get IntlBreakIterator backing this parts iterator

Beschreibung

public IntlPartsIterator::getBreakIterator ( ) : IntlBreakIterator

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The UConverter class

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

Einführung

Klassenbeschreibung

UConverter {
/* Constants */
const int REASON_UNASSIGNED = 0 ;
const int REASON_ILLEGAL = 1 ;
const int REASON_IRREGULAR = 2 ;
const int REASON_RESET = 3 ;
const int REASON_CLOSE = 4 ;
const int REASON_CLONE = 5 ;
const int UNSUPPORTED_CONVERTER = -1 ;
const int SBCS = 0 ;
const int DBCS = 1 ;
const int MBCS = 2 ;
const int LATIN_1 = 3 ;
const int UTF8 = 4 ;
const int UTF16_BigEndian = 5 ;
const int UTF16_LittleEndian = 6 ;
const int UTF32_BigEndian = 7 ;
const int UTF32_LittleEndian = 8 ;
const int EBCDIC_STATEFUL = 9 ;
const int ISO_2022 = 10 ;
const int LMBCS_1 = 11 ;
const int LMBCS_2 = 12 ;
const int LMBCS_3 = 13 ;
const int LMBCS_4 = 14 ;
const int LMBCS_5 = 15 ;
const int LMBCS_6 = 16 ;
const int LMBCS_8 = 17 ;
const int LMBCS_11 = 18 ;
const int LMBCS_16 = 19 ;
const int LMBCS_17 = 20 ;
const int LMBCS_18 = 21 ;
const int LMBCS_19 = 22 ;
const int LMBCS_LAST = 22 ;
const int HZ = 23 ;
const int SCSU = 24 ;
const int ISCII = 25 ;
const int US_ASCII = 26 ;
const int UTF7 = 27 ;
const int BOCU1 = 28 ;
const int UTF16 = 29 ;
const int UTF32 = 30 ;
const int CESU8 = 31 ;
const int IMAP_MAILBOX = 32 ;
/* Methoden */
public __construct ( string $destination_encoding = ? , string $source_encoding = ? )
public convert ( string $str , bool $reverse = ? ) : string
public fromUCallback ( int $reason , string $source , string $codePoint , int &$error ) : mixed
public static getAliases ( string $name ) : array
public static getAvailable ( ) : array
public getDestinationEncoding ( ) : string
public getDestinationType ( ) : int
public getErrorCode ( ) : int
public getErrorMessage ( ) : string
public getSourceEncoding ( ) : string
public getSourceType ( ) : int
public static getStandards ( ) : array
public getSubstChars ( ) : string
public static reasonText ( int $reason = ? ) : string
public setDestinationEncoding ( string $encoding ) : void
public setSourceEncoding ( string $encoding ) : void
public setSubstChars ( string $chars ) : void
public toUCallback ( int $reason , string $source , string $codeUnits , int &$error ) : mixed
public static transcode ( string $str , string $toEncoding , string $fromEncoding , array $options = ? ) : string
}

Vordefinierte Konstanten

UConverter::REASON_UNASSIGNED

UConverter::REASON_ILLEGAL

UConverter::REASON_IRREGULAR

UConverter::REASON_RESET

UConverter::REASON_CLOSE

UConverter::REASON_CLONE

UConverter::UNSUPPORTED_CONVERTER

UConverter::SBCS

UConverter::DBCS

UConverter::MBCS

UConverter::LATIN_1

UConverter::UTF8

UConverter::UTF16_BigEndian

UConverter::UTF16_LittleEndian

UConverter::UTF32_BigEndian

UConverter::UTF32_LittleEndian

UConverter::EBCDIC_STATEFUL

UConverter::ISO_2022

UConverter::LMBCS_1

UConverter::LMBCS_2

UConverter::LMBCS_3

UConverter::LMBCS_4

UConverter::LMBCS_5

UConverter::LMBCS_6

UConverter::LMBCS_8

UConverter::LMBCS_11

UConverter::LMBCS_16

UConverter::LMBCS_17

UConverter::LMBCS_18

UConverter::LMBCS_19

UConverter::LMBCS_LAST

UConverter::HZ

UConverter::SCSU

UConverter::ISCII

UConverter::US_ASCII

UConverter::UTF7

UConverter::BOCU1

UConverter::UTF16

UConverter::UTF32

UConverter::CESU8

UConverter::IMAP_MAILBOX

Inhaltsverzeichnis

  • UConverter::__construct — Create UConverter object
  • UConverter::convert — Convert string from one charset to another
  • UConverter::fromUCallback — Default "from" callback function
  • UConverter::getAliases — Get the aliases of the given name
  • UConverter::getAvailable — Get the available canonical converter names
  • UConverter::getDestinationEncoding — Get the destination encoding
  • UConverter::getDestinationType — Get the destination converter type
  • UConverter::getErrorCode — Get last error code on the object
  • UConverter::getErrorMessage — Get last error message on the object
  • UConverter::getSourceEncoding — Get the source encoding
  • UConverter::getSourceType — Get the source converter type
  • UConverter::getStandards — Get standards associated to converter names
  • UConverter::getSubstChars — Get substitution chars
  • UConverter::reasonText — Get string representation of the callback reason
  • UConverter::setDestinationEncoding — Set the destination encoding
  • UConverter::setSourceEncoding — Set the source encoding
  • UConverter::setSubstChars — Set the substitution chars
  • UConverter::toUCallback — Default "to" callback function
  • UConverter::transcode — Convert string from one charset to another


Create UConverter object

  • « UConverter
  • UConverter::convert »
  • PHP Manual
  • UConverter
  • Create UConverter object

UConverter::__construct

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::__construct — Create UConverter object

Beschreibung

public UConverter::__construct ( string $destination_encoding = ? , string $source_encoding = ? )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

destination_encoding

source_encoding

Rückgabewerte


Convert string from one charset to another

  • « UConverter::__construct
  • UConverter::fromUCallback »
  • PHP Manual
  • UConverter
  • Convert string from one charset to another

UConverter::convert

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::convert — Convert string from one charset to another

Beschreibung

public UConverter::convert ( string $str , bool $reverse = ? ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

str

reverse

Rückgabewerte


Default "from" callback function

  • « UConverter::convert
  • UConverter::getAliases »
  • PHP Manual
  • UConverter
  • Default "from" callback function

UConverter::fromUCallback

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::fromUCallback — Default "from" callback function

Beschreibung

public UConverter::fromUCallback ( int $reason , string $source , string $codePoint , int &$error ) : mixed

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

reason

source

codePoint

error

Rückgabewerte


Get the aliases of the given name

  • « UConverter::fromUCallback
  • UConverter::getAvailable »
  • PHP Manual
  • UConverter
  • Get the aliases of the given name

UConverter::getAliases

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getAliases — Get the aliases of the given name

Beschreibung

public static UConverter::getAliases ( string $name ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


Get the available canonical converter names

  • « UConverter::getAliases
  • UConverter::getDestinationEncoding »
  • PHP Manual
  • UConverter
  • Get the available canonical converter names

UConverter::getAvailable

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getAvailable — Get the available canonical converter names

Beschreibung

public static UConverter::getAvailable ( ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the destination encoding

  • « UConverter::getAvailable
  • UConverter::getDestinationType »
  • PHP Manual
  • UConverter
  • Get the destination encoding

UConverter::getDestinationEncoding

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getDestinationEncoding — Get the destination encoding

Beschreibung

public UConverter::getDestinationEncoding ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the destination converter type

  • « UConverter::getDestinationEncoding
  • UConverter::getErrorCode »
  • PHP Manual
  • UConverter
  • Get the destination converter type

UConverter::getDestinationType

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getDestinationType — Get the destination converter type

Beschreibung

public UConverter::getDestinationType ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get last error code on the object

  • « UConverter::getDestinationType
  • UConverter::getErrorMessage »
  • PHP Manual
  • UConverter
  • Get last error code on the object

UConverter::getErrorCode

intl_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getErrorCode -- intl_get_error_code — Get last error code on the object

Beschreibung

public UConverter::getErrorCode ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get last error message on the object

  • « UConverter::getErrorCode
  • UConverter::getSourceEncoding »
  • PHP Manual
  • UConverter
  • Get last error message on the object

UConverter::getErrorMessage

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getErrorMessage — Get last error message on the object

Beschreibung

public UConverter::getErrorMessage ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the source encoding

  • « UConverter::getErrorMessage
  • UConverter::getSourceType »
  • PHP Manual
  • UConverter
  • Get the source encoding

UConverter::getSourceEncoding

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getSourceEncoding — Get the source encoding

Beschreibung

public UConverter::getSourceEncoding ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the source converter type

  • « UConverter::getSourceEncoding
  • UConverter::getStandards »
  • PHP Manual
  • UConverter
  • Get the source converter type

UConverter::getSourceType

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getSourceType — Get the source converter type

Beschreibung

public UConverter::getSourceType ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get standards associated to converter names

  • « UConverter::getSourceType
  • UConverter::getSubstChars »
  • PHP Manual
  • UConverter
  • Get standards associated to converter names

UConverter::getStandards

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getStandards — Get standards associated to converter names

Beschreibung

public static UConverter::getStandards ( ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get substitution chars

  • « UConverter::getStandards
  • UConverter::reasonText »
  • PHP Manual
  • UConverter
  • Get substitution chars

UConverter::getSubstChars

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getSubstChars — Get substitution chars

Beschreibung

public UConverter::getSubstChars ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get string representation of the callback reason

  • « UConverter::getSubstChars
  • UConverter::setDestinationEncoding »
  • PHP Manual
  • UConverter
  • Get string representation of the callback reason

UConverter::reasonText

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::reasonText — Get string representation of the callback reason

Beschreibung

public static UConverter::reasonText ( int $reason = ? ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

reason

Rückgabewerte


Set the destination encoding

  • « UConverter::reasonText
  • UConverter::setSourceEncoding »
  • PHP Manual
  • UConverter
  • Set the destination encoding

UConverter::setDestinationEncoding

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::setDestinationEncoding — Set the destination encoding

Beschreibung

public UConverter::setDestinationEncoding ( string $encoding ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

encoding

Rückgabewerte


Set the source encoding

  • « UConverter::setDestinationEncoding
  • UConverter::setSubstChars »
  • PHP Manual
  • UConverter
  • Set the source encoding

UConverter::setSourceEncoding

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::setSourceEncoding — Set the source encoding

Beschreibung

public UConverter::setSourceEncoding ( string $encoding ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

encoding

Rückgabewerte


Set the substitution chars

  • « UConverter::setSourceEncoding
  • UConverter::toUCallback »
  • PHP Manual
  • UConverter
  • Set the substitution chars

UConverter::setSubstChars

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::setSubstChars — Set the substitution chars

Beschreibung

public UConverter::setSubstChars ( string $chars ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

chars

Rückgabewerte


Default "to" callback function

  • « UConverter::setSubstChars
  • UConverter::transcode »
  • PHP Manual
  • UConverter
  • Default "to" callback function

UConverter::toUCallback

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::toUCallback — Default "to" callback function

Beschreibung

public UConverter::toUCallback ( int $reason , string $source , string $codeUnits , int &$error ) : mixed

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

reason

source

codeUnits

error

Rückgabewerte


Convert string from one charset to another

  • « UConverter::toUCallback
  • Grapheme Funktionen »
  • PHP Manual
  • UConverter
  • Convert string from one charset to another

UConverter::transcode

(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::transcode — Convert string from one charset to another

Beschreibung

public static UConverter::transcode ( string $str , string $toEncoding , string $fromEncoding , array $options = ? ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

str

toEncoding

fromEncoding

options

Rückgabewerte


Grapheme Funktionen

Inhaltsverzeichnis

  • grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8
  • grapheme_stripos — Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr — Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
  • grapheme_strlen — Get string length in grapheme units
  • grapheme_strpos — Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos — Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos — Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr — Returns part of haystack string from the first occurrence of needle to the end of haystack
  • grapheme_substr — Return part of a string


Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8

  • « Grapheme Funktionen
  • grapheme_stripos »
  • PHP Manual
  • Grapheme Funktionen
  • Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8

grapheme_extract

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8

Beschreibung

Prozeduraler Stil

grapheme_extract ( string $haystack , int $size , int $type = GRAPHEME_EXTR_COUNT , int $offset = 0 , int &$next = null ) : string|false

Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.

Parameter-Liste

haystack

String to search.

size

Maximum number items - based on the $extract_type - to return.

type

Defines the type of units referred to by the $size parameter:

  • GRAPHEME_EXTR_COUNT (default) - $size is the number of default grapheme clusters to extract.
  • GRAPHEME_EXTR_MAXBYTES - $size is the maximum number of bytes returned.
  • GRAPHEME_EXTR_MAXCHARS - $size is the maximum number of UTF-8 characters returned.

offset

Starting position in $haystack in bytes - if given, it must be zero or a positive value that is less than or equal to the length of $haystack in bytes, or a negative value that counts from the end of $haystack. If $start does not point to the first byte of a UTF-8 character, the start position is moved to the next character boundary.

next

Reference to a value that will be set to the next starting position. When the call returns, this may point to the first byte position past the end of the string.

Rückgabewerte

A string starting at offset $start and ending on a default grapheme cluster boundary that conforms to the $size and $extract_type specified, Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
7.1.0 | Support for negative offsets has been added.

Beispiele

Beispiel #1 grapheme_extract() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_extract( $char_a_ring_nfd . $char_o_diaeresis_nfd, 1, GRAPHEME_EXTR_COUNT, 2));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

o%CC%88

Siehe auch

  • grapheme_substr() - Return part of a string
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Find position (in grapheme units) of first occurrence of a case-insensitive string

  • « grapheme_extract
  • grapheme_stristr »
  • PHP Manual
  • Grapheme Funktionen
  • Find position (in grapheme units) of first occurrence of a case-insensitive string

grapheme_stripos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_stripos — Find position (in grapheme units) of first occurrence of a case-insensitive string

Beschreibung

Prozeduraler Stil

grapheme_stripos ( string $haystack , string $needle , int $offset = 0 ) : int|false

Find position (in grapheme units) of first occurrence of a case-insensitive string

Parameter-Liste

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in haystack to start searching as an offset in grapheme units (not bytes or characters). If the offset is negative, it is treated relative to the end of the string. The position returned is still relative to the beginning of haystack regardless of the value of $offset.

Rückgabewerte

Returns the position as an integer. If needle is not found, grapheme_stripos() will return false.

Changelog

Version | Beschreibung
7.1.0 | Support for negative offsets has been added.

Beispiele

Beispiel #1 grapheme_stripos() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print grapheme_stripos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2

Siehe auch

  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack

  • « grapheme_stripos
  • grapheme_strlen »
  • PHP Manual
  • Grapheme Funktionen
  • Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack

grapheme_stristr

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_stristr — Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack

Beschreibung

Prozeduraler Stil

grapheme_stristr ( string $haystack , string $needle , bool $beforeNeedle = false ) : string|false

Returns part of haystack string starting from and including the first occurrence of case-insensitive needle to the end of haystack.

Parameter-Liste

haystack

The input string. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

beforeNeedle

If true, grapheme_strstr() returns the part of the haystack before the first occurrence of the needle (excluding needle).

Rückgabewerte

Returns the portion of $haystack, or false if $needle is not found.

Beispiele

Beispiel #1 grapheme_stristr() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print urlencode(grapheme_stristr( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd, $char_O_diaeresis_nfd));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

o%CC%88a%CC%8A

Siehe auch

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Get string length in grapheme units

  • « grapheme_stristr
  • grapheme_strpos »
  • PHP Manual
  • Grapheme Funktionen
  • Get string length in grapheme units

grapheme_strlen

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strlen — Get string length in grapheme units

Beschreibung

Prozeduraler Stil

grapheme_strlen ( string $string ) : int|false|null

Get string length in grapheme units (not bytes or characters)

Parameter-Liste

string

The string being measured for length. It must be a valid UTF-8 string.

Rückgabewerte

The length of the string on success, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 grapheme_strlen() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print grapheme_strlen( 'abc' . $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

6

Siehe auch

  • » Unicode Text Segmentation: Grapheme Cluster Boundaries
  • iconv_strlen() - Returns the character count of string
  • mb_strlen() - Get string length
  • strlen() - Ermitteln der String-Länge


Find position (in grapheme units) of first occurrence of a string

  • « grapheme_strlen
  • grapheme_strripos »
  • PHP Manual
  • Grapheme Funktionen
  • Find position (in grapheme units) of first occurrence of a string

grapheme_strpos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strpos — Find position (in grapheme units) of first occurrence of a string

Beschreibung

Prozeduraler Stil

grapheme_strpos ( string $haystack , string $needle , int $offset = 0 ) : int|false

Find position (in grapheme units) of first occurrence of a string

Parameter-Liste

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in $haystack to start searching as an offset in grapheme units (not bytes or characters). If the offset is negative, it is treated relative to the end of the string. The position returned is still relative to the beginning of haystack regardless of the value of $offset.

Rückgabewerte

Returns the position as an integer. If needle is not found, grapheme_strpos() will return false.

Changelog

Version | Beschreibung
7.1.0 | Support for negative offsets has been added.

Beispiele

Beispiel #1 grapheme_strpos() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print grapheme_strpos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_o_diaeresis_nfd);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2

Siehe auch

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Find position (in grapheme units) of last occurrence of a case-insensitive string

  • « grapheme_strpos
  • grapheme_strrpos »
  • PHP Manual
  • Grapheme Funktionen
  • Find position (in grapheme units) of last occurrence of a case-insensitive string

grapheme_strripos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strripos — Find position (in grapheme units) of last occurrence of a case-insensitive string

Beschreibung

Prozeduraler Stil

grapheme_strripos ( string $haystack , string $needle , int $offset = 0 ) : int|false

Find position (in grapheme units) of last occurrence of a case-insensitive string

Parameter-Liste

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in $haystack to start searching as an offset in grapheme units (not bytes or characters). The position returned is still relative to the beginning of haystack regardless of the value of $offset.

Rückgabewerte

Returns the position as an integer. If needle is not found, grapheme_strripos() will return false.

Beispiele

Beispiel #1 grapheme_strripos() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print grapheme_strripos( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2

Siehe auch

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Find position (in grapheme units) of last occurrence of a string

  • « grapheme_strripos
  • grapheme_strstr »
  • PHP Manual
  • Grapheme Funktionen
  • Find position (in grapheme units) of last occurrence of a string

grapheme_strrpos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strrpos — Find position (in grapheme units) of last occurrence of a string

Beschreibung

Prozeduraler Stil

grapheme_strrpos ( string $haystack , string $needle , int $offset = 0 ) : int|false

Find position (in grapheme units) of last occurrence of a string

Parameter-Liste

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in $haystack to start searching as an offset in grapheme units (not bytes or characters). The position returned is still relative to the beginning of haystack regardless of the value of $offset.

Rückgabewerte

Returns the position as an integer. If needle is not found, grapheme_strrpos() will return false.

Beispiele

Beispiel #1 grapheme_strrpos() example

<?php
$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print grapheme_strrpos( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_o_diaeresis_nfd, $char_o_diaeresis_nfd);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2

Siehe auch

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Returns part of haystack string from the first occurrence of needle to the end of haystack

  • « grapheme_strrpos
  • grapheme_substr »
  • PHP Manual
  • Grapheme Funktionen
  • Returns part of haystack string from the first occurrence of needle to the end of haystack

grapheme_strstr

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strstr — Returns part of haystack string from the first occurrence of needle to the end of haystack

Beschreibung

Prozeduraler Stil

grapheme_strstr ( string $haystack , string $needle , bool $beforeNeedle = false ) : string|false

Returns part of haystack string from the first occurrence of needle to the end of haystack (including the needle).

Parameter-Liste

haystack

The input string. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

beforeNeedle

If true, grapheme_strstr() returns the part of the haystack before the first occurrence of the needle (excluding the needle).

Rückgabewerte

Returns the portion of string, or false if needle is not found.

Beispiele

Beispiel #1 grapheme_strstr() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_stristr( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd, $char_o_diaeresis_nfd));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

o%CC%88a%CC%8A

Siehe auch

  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Return part of a string

  • « grapheme_strstr
  • IDN Funktionen »
  • PHP Manual
  • Grapheme Funktionen
  • Return part of a string

grapheme_substr

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_substr — Return part of a string

Beschreibung

Prozeduraler Stil

grapheme_substr ( string $string , int $offset , int|null $length = null ) : string|false

Return part of a string

Parameter-Liste

string

The input string. Must be valid UTF-8.

offset

Start position in default grapheme units. If $start is non-negative, the returned string will start at the $start'th position in $string, counting from zero. If $start is negative, the returned string will start at the $start'th grapheme unit from the end of string.

length

Length in grapheme units. If $length is given and is positive, the string returned will contain at most $length grapheme units beginning from $start (depending on the length of string). If $length is given and is negative, then that many grapheme units will be omitted from the end of string (after the start position has been calculated when a start is negative). If $start denotes a position beyond this truncation, false will be returned.

Rückgabewerte

Returns the extracted part of string, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 grapheme_substr() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_substr( "ao" . $char_a_ring_nfd . "bc" . $char_o_diaeresis_nfd . "O", 2, -1 ));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a%CC%8Abco%CC%88

Siehe auch

  • grapheme_extract() - Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


IDN Funktionen

Inhaltsverzeichnis

  • idn_to_ascii — Convert domain name to IDNA ASCII form
  • idn_to_utf8 — Convert domain name from IDNA ASCII to Unicode


Convert domain name to IDNA ASCII form

  • « IDN Funktionen
  • idn_to_utf8 »
  • PHP Manual
  • IDN Funktionen
  • Convert domain name to IDNA ASCII form

idn_to_ascii

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_ascii — Convert domain name to IDNA ASCII form

Beschreibung

Prozeduraler Stil

idn_to_ascii ( string $domain , int $flags = IDNA_DEFAULT , int $variant = INTL_IDNA_VARIANT_UTS46 , array &$idna_info = null ) : string|false

This function converts a Unicode domain name to an IDNA ASCII-compatible format.

Parameter-Liste

domain

The domain to convert, which must be UTF-8 encoded.

flags

Conversion options - combination of IDNA_* constants (except IDNA_ERROR_* constants).

variant

Either INTL_IDNA_VARIANT_2003 (deprecated as of PHP 7.2.0) for IDNA 2003 or INTL_IDNA_VARIANT_UTS46 (only available as of ICU 4.6) for UTS #46.

idna_info

This parameter can be used only if INTL_IDNA_VARIANT_UTS46 was used for variant. In that case, it will be filled with an array with the keys 'result', the possibly illegal result of the transformation, 'isTransitionalDifferent', a boolean indicating whether the usage of the transitional mechanisms of UTS #46 either has or would have changed the result and 'errors', which is an int representing a bitset of the error constants IDNA_ERROR_*.

Rückgabewerte

The domain name encoded in ASCII-compatible form, Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.4.0 | The default value of variant is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003.
7.2.0 | INTL_IDNA_VARIANT_2003 has been deprecated; use INTL_IDNA_VARIANT_UTS46 instead.

Beispiele

Beispiel #1 idn_to_ascii() example

<?php

echo idn_to_ascii('täst.de');

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

xn--tst-qla.de

Siehe auch

  • idn_to_utf8() - Convert domain name from IDNA ASCII to Unicode


Convert domain name from IDNA ASCII to Unicode

  • « idn_to_ascii
  • IntlChar »
  • PHP Manual
  • IDN Funktionen
  • Convert domain name from IDNA ASCII to Unicode

idn_to_utf8

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_utf8 — Convert domain name from IDNA ASCII to Unicode

Beschreibung

Prozeduraler Stil

idn_to_utf8 ( string $domain , int $flags = 0 , int $variant = INTL_IDNA_VARIANT_UTS46 , array &$idna_info = null ) : string|false

This function converts a Unicode domain name from an IDNA ASCII-compatible format to plain Unicode, encoded in UTF-8.

Parameter-Liste

domain

Domain to convert in an IDNA ASCII-compatible format.

flags

Conversion options - combination of IDNA_* constants (except IDNA_ERROR_* constants).

variant

Either INTL_IDNA_VARIANT_2003 (deprecated as of PHP 7.2.0) for IDNA 2003 or INTL_IDNA_VARIANT_UTS46 (only available as of ICU 4.6) for UTS #46.

idna_info

This parameter can be used only if INTL_IDNA_VARIANT_UTS46 was used for variant. In that case, it will be filled with an array with the keys 'result', the possibly illegal result of the transformation, 'isTransitionalDifferent', a boolean indicating whether the usage of the transitional mechanisms of UTS #46 either has or would have changed the result and 'errors', which is an int representing a bitset of the error constants IDNA_ERROR_*.

Rückgabewerte

The domain name in Unicode, encoded in UTF-8, Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.4.0 | The default value of variant is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003.
7.2.0 | INTL_IDNA_VARIANT_2003 has been deprecated; use INTL_IDNA_VARIANT_UTS46 instead.

Beispiele

Beispiel #1 idn_to_utf8() example

<?php

echo idn_to_utf8('xn--tst-qla.de');

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

täst.de

Siehe auch

  • idn_to_ascii() - Convert domain name to IDNA ASCII form


IntlChar

(PHP 7)

Einführung

IntlChar provides access to a number of utility methods that can be used to access information about Unicode characters.

The methods and constants adhere closely to the names and behavior used by the underlying ICU library.

Klassenbeschreibung

IntlChar {
/* Constants */
const string UNICODE_VERSION = 6.3 ;
const int CODEPOINT_MIN = 0 ;
const int CODEPOINT_MAX = 1114111 ;
const float NO_NUMERIC_VALUE = -123456789 ;
const int PROPERTY_ALPHABETIC = 0 ;
const int PROPERTY_BINARY_START = 0 ;
const int PROPERTY_ASCII_HEX_DIGIT = 1 ;
const int PROPERTY_BIDI_CONTROL = 2 ;
const int PROPERTY_BIDI_MIRRORED = 3 ;
const int PROPERTY_DASH = 4 ;
const int PROPERTY_DEFAULT_IGNORABLE_CODE_POINT = 5 ;
const int PROPERTY_DEPRECATED = 6 ;
const int PROPERTY_DIACRITIC = 7 ;
const int PROPERTY_EXTENDER = 8 ;
const int PROPERTY_FULL_COMPOSITION_EXCLUSION = 9 ;
const int PROPERTY_GRAPHEME_BASE = 10 ;
const int PROPERTY_GRAPHEME_EXTEND = 11 ;
const int PROPERTY_GRAPHEME_LINK = 12 ;
const int PROPERTY_HEX_DIGIT = 13 ;
const int PROPERTY_HYPHEN = 14 ;
const int PROPERTY_ID_CONTINUE = 15 ;
const int PROPERTY_ID_START = 16 ;
const int PROPERTY_IDEOGRAPHIC = 17 ;
const int PROPERTY_IDS_BINARY_OPERATOR = 18 ;
const int PROPERTY_IDS_TRINARY_OPERATOR = 19 ;
const int PROPERTY_JOIN_CONTROL = 20 ;
const int PROPERTY_LOGICAL_ORDER_EXCEPTION = 21 ;
const int PROPERTY_LOWERCASE = 22 ;
const int PROPERTY_MATH = 23 ;
const int PROPERTY_NONCHARACTER_CODE_POINT = 24 ;
const int PROPERTY_QUOTATION_MARK = 25 ;
const int PROPERTY_RADICAL = 26 ;
const int PROPERTY_SOFT_DOTTED = 27 ;
const int PROPERTY_TERMINAL_PUNCTUATION = 28 ;
const int PROPERTY_UNIFIED_IDEOGRAPH = 29 ;
const int PROPERTY_UPPERCASE = 30 ;
const int PROPERTY_WHITE_SPACE = 31 ;
const int PROPERTY_XID_CONTINUE = 32 ;
const int PROPERTY_XID_START = 33 ;
const int PROPERTY_CASE_SENSITIVE = 34 ;
const int PROPERTY_S_TERM = 35 ;
const int PROPERTY_VARIATION_SELECTOR = 36 ;
const int PROPERTY_NFD_INERT = 37 ;
const int PROPERTY_NFKD_INERT = 38 ;
const int PROPERTY_NFC_INERT = 39 ;
const int PROPERTY_NFKC_INERT = 40 ;
const int PROPERTY_SEGMENT_STARTER = 41 ;
const int PROPERTY_PATTERN_SYNTAX = 42 ;
const int PROPERTY_PATTERN_WHITE_SPACE = 43 ;
const int PROPERTY_POSIX_ALNUM = 44 ;
const int PROPERTY_POSIX_BLANK = 45 ;
const int PROPERTY_POSIX_GRAPH = 46 ;
const int PROPERTY_POSIX_PRINT = 47 ;
const int PROPERTY_POSIX_XDIGIT = 48 ;
const int PROPERTY_CASED = 49 ;
const int PROPERTY_CASE_IGNORABLE = 50 ;
const int PROPERTY_CHANGES_WHEN_LOWERCASED = 51 ;
const int PROPERTY_CHANGES_WHEN_UPPERCASED = 52 ;
const int PROPERTY_CHANGES_WHEN_TITLECASED = 53 ;
const int PROPERTY_CHANGES_WHEN_CASEFOLDED = 54 ;
const int PROPERTY_CHANGES_WHEN_CASEMAPPED = 55 ;
const int PROPERTY_CHANGES_WHEN_NFKC_CASEFOLDED = 56 ;
const int PROPERTY_BINARY_LIMIT = 57 ;
const int PROPERTY_BIDI_CLASS = 4096 ;
const int PROPERTY_INT_START = 4096 ;
const int PROPERTY_BLOCK = 4097 ;
const int PROPERTY_CANONICAL_COMBINING_CLASS = 4098 ;
const int PROPERTY_DECOMPOSITION_TYPE = 4099 ;
const int PROPERTY_EAST_ASIAN_WIDTH = 4100 ;
const int PROPERTY_GENERAL_CATEGORY = 4101 ;
const int PROPERTY_JOINING_GROUP = 4102 ;
const int PROPERTY_JOINING_TYPE = 4103 ;
const int PROPERTY_LINE_BREAK = 4104 ;
const int PROPERTY_NUMERIC_TYPE = 4105 ;
const int PROPERTY_SCRIPT = 4106 ;
const int PROPERTY_HANGUL_SYLLABLE_TYPE = 4107 ;
const int PROPERTY_NFD_QUICK_CHECK = 4108 ;
const int PROPERTY_NFKD_QUICK_CHECK = 4109 ;
const int PROPERTY_NFC_QUICK_CHECK = 4110 ;
const int PROPERTY_NFKC_QUICK_CHECK = 4111 ;
const int PROPERTY_LEAD_CANONICAL_COMBINING_CLASS = 4112 ;
const int PROPERTY_TRAIL_CANONICAL_COMBINING_CLASS = 4113 ;
const int PROPERTY_GRAPHEME_CLUSTER_BREAK = 4114 ;
const int PROPERTY_SENTENCE_BREAK = 4115 ;
const int PROPERTY_WORD_BREAK = 4116 ;
const int PROPERTY_BIDI_PAIRED_BRACKET_TYPE = 4117 ;
const int PROPERTY_INT_LIMIT = 4118 ;
const int PROPERTY_GENERAL_CATEGORY_MASK = 8192 ;
const int PROPERTY_MASK_START = 8192 ;
const int PROPERTY_MASK_LIMIT = 8193 ;
const int PROPERTY_NUMERIC_VALUE = 12288 ;
const int PROPERTY_DOUBLE_START = 12288 ;
const int PROPERTY_DOUBLE_LIMIT = 12289 ;
const int PROPERTY_AGE = 16384 ;
const int PROPERTY_STRING_START = 16384 ;
const int PROPERTY_BIDI_MIRRORING_GLYPH = 16385 ;
const int PROPERTY_CASE_FOLDING = 16386 ;
const int PROPERTY_ISO_COMMENT = 16387 ;
const int PROPERTY_LOWERCASE_MAPPING = 16388 ;
const int PROPERTY_NAME = 16389 ;
const int PROPERTY_SIMPLE_CASE_FOLDING = 16390 ;
const int PROPERTY_SIMPLE_LOWERCASE_MAPPING = 16391 ;
const int PROPERTY_SIMPLE_TITLECASE_MAPPING = 16392 ;
const int PROPERTY_SIMPLE_UPPERCASE_MAPPING = 16393 ;
const int PROPERTY_TITLECASE_MAPPING = 16394 ;
const int PROPERTY_UNICODE_1_NAME = 16395 ;
const int PROPERTY_UPPERCASE_MAPPING = 16396 ;
const int PROPERTY_BIDI_PAIRED_BRACKET = 16397 ;
const int PROPERTY_STRING_LIMIT = 16398 ;
const int PROPERTY_SCRIPT_EXTENSIONS = 28672 ;
const int PROPERTY_OTHER_PROPERTY_START = 28672 ;
const int PROPERTY_OTHER_PROPERTY_LIMIT = 28673 ;
const int PROPERTY_INVALID_CODE = -1 ;
const int CHAR_CATEGORY_UNASSIGNED = 0 ;
const int CHAR_CATEGORY_GENERAL_OTHER_TYPES = 0 ;
const int CHAR_CATEGORY_UPPERCASE_LETTER = 1 ;
const int CHAR_CATEGORY_LOWERCASE_LETTER = 2 ;
const int CHAR_CATEGORY_TITLECASE_LETTER = 3 ;
const int CHAR_CATEGORY_MODIFIER_LETTER = 4 ;
const int CHAR_CATEGORY_OTHER_LETTER = 5 ;
const int CHAR_CATEGORY_NON_SPACING_MARK = 6 ;
const int CHAR_CATEGORY_ENCLOSING_MARK = 7 ;
const int CHAR_CATEGORY_COMBINING_SPACING_MARK = 8 ;
const int CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER = 9 ;
const int CHAR_CATEGORY_LETTER_NUMBER = 10 ;
const int CHAR_CATEGORY_OTHER_NUMBER = 11 ;
const int CHAR_CATEGORY_SPACE_SEPARATOR = 12 ;
const int CHAR_CATEGORY_LINE_SEPARATOR = 13 ;
const int CHAR_CATEGORY_PARAGRAPH_SEPARATOR = 14 ;
const int CHAR_CATEGORY_CONTROL_CHAR = 15 ;
const int CHAR_CATEGORY_FORMAT_CHAR = 16 ;
const int CHAR_CATEGORY_PRIVATE_USE_CHAR = 17 ;
const int CHAR_CATEGORY_SURROGATE = 18 ;
const int CHAR_CATEGORY_DASH_PUNCTUATION = 19 ;
const int CHAR_CATEGORY_START_PUNCTUATION = 20 ;
const int CHAR_CATEGORY_END_PUNCTUATION = 21 ;
const int CHAR_CATEGORY_CONNECTOR_PUNCTUATION = 22 ;
const int CHAR_CATEGORY_OTHER_PUNCTUATION = 23 ;
const int CHAR_CATEGORY_MATH_SYMBOL = 24 ;
const int CHAR_CATEGORY_CURRENCY_SYMBOL = 25 ;
const int CHAR_CATEGORY_MODIFIER_SYMBOL = 26 ;
const int CHAR_CATEGORY_OTHER_SYMBOL = 27 ;
const int CHAR_CATEGORY_INITIAL_PUNCTUATION = 28 ;
const int CHAR_CATEGORY_FINAL_PUNCTUATION = 29 ;
const int CHAR_CATEGORY_CHAR_CATEGORY_COUNT = 30 ;
const int CHAR_DIRECTION_LEFT_TO_RIGHT = 0 ;
const int CHAR_DIRECTION_RIGHT_TO_LEFT = 1 ;
const int CHAR_DIRECTION_EUROPEAN_NUMBER = 2 ;
const int CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR = 3 ;
const int CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR = 4 ;
const int CHAR_DIRECTION_ARABIC_NUMBER = 5 ;
const int CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR = 6 ;
const int CHAR_DIRECTION_BLOCK_SEPARATOR = 7 ;
const int CHAR_DIRECTION_SEGMENT_SEPARATOR = 8 ;
const int CHAR_DIRECTION_WHITE_SPACE_NEUTRAL = 9 ;
const int CHAR_DIRECTION_OTHER_NEUTRAL = 10 ;
const int CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING = 11 ;
const int CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE = 12 ;
const int CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC = 13 ;
const int CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING = 14 ;
const int CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE = 15 ;
const int CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT = 16 ;
const int CHAR_DIRECTION_DIR_NON_SPACING_MARK = 17 ;
const int CHAR_DIRECTION_BOUNDARY_NEUTRAL = 18 ;
const int CHAR_DIRECTION_FIRST_STRONG_ISOLATE = 19 ;
const int CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE = 20 ;
const int CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE = 21 ;
const int CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE = 22 ;
const int CHAR_DIRECTION_CHAR_DIRECTION_COUNT = 23 ;
const int BLOCK_CODE_NO_BLOCK = 0 ;
const int BLOCK_CODE_BASIC_LATIN = 1 ;
const int BLOCK_CODE_LATIN_1_SUPPLEMENT = 2 ;
const int BLOCK_CODE_LATIN_EXTENDED_A = 3 ;
const int BLOCK_CODE_LATIN_EXTENDED_B = 4 ;
const int BLOCK_CODE_IPA_EXTENSIONS = 5 ;
const int BLOCK_CODE_SPACING_MODIFIER_LETTERS = 6 ;
const int BLOCK_CODE_COMBINING_DIACRITICAL_MARKS = 7 ;
const int BLOCK_CODE_GREEK = 8 ;
const int BLOCK_CODE_CYRILLIC = 9 ;
const int BLOCK_CODE_ARMENIAN = 10 ;
const int BLOCK_CODE_HEBREW = 11 ;
const int BLOCK_CODE_ARABIC = 12 ;
const int BLOCK_CODE_SYRIAC = 13 ;
const int BLOCK_CODE_THAANA = 14 ;
const int BLOCK_CODE_DEVANAGARI = 15 ;
const int BLOCK_CODE_BENGALI = 16 ;
const int BLOCK_CODE_GURMUKHI = 17 ;
const int BLOCK_CODE_GUJARATI = 18 ;
const int BLOCK_CODE_ORIYA = 19 ;
const int BLOCK_CODE_TAMIL = 20 ;
const int BLOCK_CODE_TELUGU = 21 ;
const int BLOCK_CODE_KANNADA = 22 ;
const int BLOCK_CODE_MALAYALAM = 23 ;
const int BLOCK_CODE_SINHALA = 24 ;
const int BLOCK_CODE_THAI = 25 ;
const int BLOCK_CODE_LAO = 26 ;
const int BLOCK_CODE_TIBETAN = 27 ;
const int BLOCK_CODE_MYANMAR = 28 ;
const int BLOCK_CODE_GEORGIAN = 29 ;
const int BLOCK_CODE_HANGUL_JAMO = 30 ;
const int BLOCK_CODE_ETHIOPIC = 31 ;
const int BLOCK_CODE_CHEROKEE = 32 ;
const int BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS = 33 ;
const int BLOCK_CODE_OGHAM = 34 ;
const int BLOCK_CODE_RUNIC = 35 ;
const int BLOCK_CODE_KHMER = 36 ;
const int BLOCK_CODE_MONGOLIAN = 37 ;
const int BLOCK_CODE_LATIN_EXTENDED_ADDITIONAL = 38 ;
const int BLOCK_CODE_GREEK_EXTENDED = 39 ;
const int BLOCK_CODE_GENERAL_PUNCTUATION = 40 ;
const int BLOCK_CODE_SUPERSCRIPTS_AND_SUBSCRIPTS = 41 ;
const int BLOCK_CODE_CURRENCY_SYMBOLS = 42 ;
const int BLOCK_CODE_COMBINING_MARKS_FOR_SYMBOLS = 43 ;
const int BLOCK_CODE_LETTERLIKE_SYMBOLS = 44 ;
const int BLOCK_CODE_NUMBER_FORMS = 45 ;
const int BLOCK_CODE_ARROWS = 46 ;
const int BLOCK_CODE_MATHEMATICAL_OPERATORS = 47 ;
const int BLOCK_CODE_MISCELLANEOUS_TECHNICAL = 48 ;
const int BLOCK_CODE_CONTROL_PICTURES = 49 ;
const int BLOCK_CODE_OPTICAL_CHARACTER_RECOGNITION = 50 ;
const int BLOCK_CODE_ENCLOSED_ALPHANUMERICS = 51 ;
const int BLOCK_CODE_BOX_DRAWING = 52 ;
const int BLOCK_CODE_BLOCK_ELEMENTS = 53 ;
const int BLOCK_CODE_GEOMETRIC_SHAPES = 54 ;
const int BLOCK_CODE_MISCELLANEOUS_SYMBOLS = 55 ;
const int BLOCK_CODE_DINGBATS = 56 ;
const int BLOCK_CODE_BRAILLE_PATTERNS = 57 ;
const int BLOCK_CODE_CJK_RADICALS_SUPPLEMENT = 58 ;
const int BLOCK_CODE_KANGXI_RADICALS = 59 ;
const int BLOCK_CODE_IDEOGRAPHIC_DESCRIPTION_CHARACTERS = 60 ;
const int BLOCK_CODE_CJK_SYMBOLS_AND_PUNCTUATION = 61 ;
const int BLOCK_CODE_HIRAGANA = 62 ;
const int BLOCK_CODE_KATAKANA = 63 ;
const int BLOCK_CODE_BOPOMOFO = 64 ;
const int BLOCK_CODE_HANGUL_COMPATIBILITY_JAMO = 65 ;
const int BLOCK_CODE_KANBUN = 66 ;
const int BLOCK_CODE_BOPOMOFO_EXTENDED = 67 ;
const int BLOCK_CODE_ENCLOSED_CJK_LETTERS_AND_MONTHS = 68 ;
const int BLOCK_CODE_CJK_COMPATIBILITY = 69 ;
const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A = 70 ;
const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS = 71 ;
const int BLOCK_CODE_YI_SYLLABLES = 72 ;
const int BLOCK_CODE_YI_RADICALS = 73 ;
const int BLOCK_CODE_HANGUL_SYLLABLES = 74 ;
const int BLOCK_CODE_HIGH_SURROGATES = 75 ;
const int BLOCK_CODE_HIGH_PRIVATE_USE_SURROGATES = 76 ;
const int BLOCK_CODE_LOW_SURROGATES = 77 ;
const int BLOCK_CODE_PRIVATE_USE_AREA = 78 ;
const int BLOCK_CODE_PRIVATE_USE = 78 ;
const int BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS = 79 ;
const int BLOCK_CODE_ALPHABETIC_PRESENTATION_FORMS = 80 ;
const int BLOCK_CODE_ARABIC_PRESENTATION_FORMS_A = 81 ;
const int BLOCK_CODE_COMBINING_HALF_MARKS = 82 ;
const int BLOCK_CODE_CJK_COMPATIBILITY_FORMS = 83 ;
const int BLOCK_CODE_SMALL_FORM_VARIANTS = 84 ;
const int BLOCK_CODE_ARABIC_PRESENTATION_FORMS_B = 85 ;
const int BLOCK_CODE_SPECIALS = 86 ;
const int BLOCK_CODE_HALFWIDTH_AND_FULLWIDTH_FORMS = 87 ;
const int BLOCK_CODE_OLD_ITALIC = 88 ;
const int BLOCK_CODE_GOTHIC = 89 ;
const int BLOCK_CODE_DESERET = 90 ;
const int BLOCK_CODE_BYZANTINE_MUSICAL_SYMBOLS = 91 ;
const int BLOCK_CODE_MUSICAL_SYMBOLS = 92 ;
const int BLOCK_CODE_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93 ;
const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94 ;
const int BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 ;
const int BLOCK_CODE_TAGS = 96 ;
const int BLOCK_CODE_CYRILLIC_SUPPLEMENT = 97 ;
const int BLOCK_CODE_CYRILLIC_SUPPLEMENTARY = 97 ;
const int BLOCK_CODE_TAGALOG = 98 ;
const int BLOCK_CODE_HANUNOO = 99 ;
const int BLOCK_CODE_BUHID = 100 ;
const int BLOCK_CODE_TAGBANWA = 101 ;
const int BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102 ;
const int BLOCK_CODE_SUPPLEMENTAL_ARROWS_A = 103 ;
const int BLOCK_CODE_SUPPLEMENTAL_ARROWS_B = 104 ;
const int BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105 ;
const int BLOCK_CODE_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106 ;
const int BLOCK_CODE_KATAKANA_PHONETIC_EXTENSIONS = 107 ;
const int BLOCK_CODE_VARIATION_SELECTORS = 108 ;
const int BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109 ;
const int BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110 ;
const int BLOCK_CODE_LIMBU = 111 ;
const int BLOCK_CODE_TAI_LE = 112 ;
const int BLOCK_CODE_KHMER_SYMBOLS = 113 ;
const int BLOCK_CODE_PHONETIC_EXTENSIONS = 114 ;
const int BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115 ;
const int BLOCK_CODE_YIJING_HEXAGRAM_SYMBOLS = 116 ;
const int BLOCK_CODE_LINEAR_B_SYLLABARY = 117 ;
const int BLOCK_CODE_LINEAR_B_IDEOGRAMS = 118 ;
const int BLOCK_CODE_AEGEAN_NUMBERS = 119 ;
const int BLOCK_CODE_UGARITIC = 120 ;
const int BLOCK_CODE_SHAVIAN = 121 ;
const int BLOCK_CODE_OSMANYA = 122 ;
const int BLOCK_CODE_CYPRIOT_SYLLABARY = 123 ;
const int BLOCK_CODE_TAI_XUAN_JING_SYMBOLS = 124 ;
const int BLOCK_CODE_VARIATION_SELECTORS_SUPPLEMENT = 125 ;
const int BLOCK_CODE_ANCIENT_GREEK_MUSICAL_NOTATION = 126 ;
const int BLOCK_CODE_ANCIENT_GREEK_NUMBERS = 127 ;
const int BLOCK_CODE_ARABIC_SUPPLEMENT = 128 ;
const int BLOCK_CODE_BUGINESE = 129 ;
const int BLOCK_CODE_CJK_STROKES = 130 ;
const int BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131 ;
const int BLOCK_CODE_COPTIC = 132 ;
const int BLOCK_CODE_ETHIOPIC_EXTENDED = 133 ;
const int BLOCK_CODE_ETHIOPIC_SUPPLEMENT = 134 ;
const int BLOCK_CODE_GEORGIAN_SUPPLEMENT = 135 ;
const int BLOCK_CODE_GLAGOLITIC = 136 ;
const int BLOCK_CODE_KHAROSHTHI = 137 ;
const int BLOCK_CODE_MODIFIER_TONE_LETTERS = 138 ;
const int BLOCK_CODE_NEW_TAI_LUE = 139 ;
const int BLOCK_CODE_OLD_PERSIAN = 140 ;
const int BLOCK_CODE_PHONETIC_EXTENSIONS_SUPPLEMENT = 141 ;
const int BLOCK_CODE_SUPPLEMENTAL_PUNCTUATION = 142 ;
const int BLOCK_CODE_SYLOTI_NAGRI = 143 ;
const int BLOCK_CODE_TIFINAGH = 144 ;
const int BLOCK_CODE_VERTICAL_FORMS = 145 ;
const int BLOCK_CODE_NKO = 146 ;
const int BLOCK_CODE_BALINESE = 147 ;
const int BLOCK_CODE_LATIN_EXTENDED_C = 148 ;
const int BLOCK_CODE_LATIN_EXTENDED_D = 149 ;
const int BLOCK_CODE_PHAGS_PA = 150 ;
const int BLOCK_CODE_PHOENICIAN = 151 ;
const int BLOCK_CODE_CUNEIFORM = 152 ;
const int BLOCK_CODE_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153 ;
const int BLOCK_CODE_COUNTING_ROD_NUMERALS = 154 ;
const int BLOCK_CODE_SUNDANESE = 155 ;
const int BLOCK_CODE_LEPCHA = 156 ;
const int BLOCK_CODE_OL_CHIKI = 157 ;
const int BLOCK_CODE_CYRILLIC_EXTENDED_A = 158 ;
const int BLOCK_CODE_VAI = 159 ;
const int BLOCK_CODE_CYRILLIC_EXTENDED_B = 160 ;
const int BLOCK_CODE_SAURASHTRA = 161 ;
const int BLOCK_CODE_KAYAH_LI = 162 ;
const int BLOCK_CODE_REJANG = 163 ;
const int BLOCK_CODE_CHAM = 164 ;
const int BLOCK_CODE_ANCIENT_SYMBOLS = 165 ;
const int BLOCK_CODE_PHAISTOS_DISC = 166 ;
const int BLOCK_CODE_LYCIAN = 167 ;
const int BLOCK_CODE_CARIAN = 168 ;
const int BLOCK_CODE_LYDIAN = 169 ;
const int BLOCK_CODE_MAHJONG_TILES = 170 ;
const int BLOCK_CODE_DOMINO_TILES = 171 ;
const int BLOCK_CODE_SAMARITAN = 172 ;
const int BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173 ;
const int BLOCK_CODE_TAI_THAM = 174 ;
const int BLOCK_CODE_VEDIC_EXTENSIONS = 175 ;
const int BLOCK_CODE_LISU = 176 ;
const int BLOCK_CODE_BAMUM = 177 ;
const int BLOCK_CODE_COMMON_INDIC_NUMBER_FORMS = 178 ;
const int BLOCK_CODE_DEVANAGARI_EXTENDED = 179 ;
const int BLOCK_CODE_HANGUL_JAMO_EXTENDED_A = 180 ;
const int BLOCK_CODE_JAVANESE = 181 ;
const int BLOCK_CODE_MYANMAR_EXTENDED_A = 182 ;
const int BLOCK_CODE_TAI_VIET = 183 ;
const int BLOCK_CODE_MEETEI_MAYEK = 184 ;
const int BLOCK_CODE_HANGUL_JAMO_EXTENDED_B = 185 ;
const int BLOCK_CODE_IMPERIAL_ARAMAIC = 186 ;
const int BLOCK_CODE_OLD_SOUTH_ARABIAN = 187 ;
const int BLOCK_CODE_AVESTAN = 188 ;
const int BLOCK_CODE_INSCRIPTIONAL_PARTHIAN = 189 ;
const int BLOCK_CODE_INSCRIPTIONAL_PAHLAVI = 190 ;
const int BLOCK_CODE_OLD_TURKIC = 191 ;
const int BLOCK_CODE_RUMI_NUMERAL_SYMBOLS = 192 ;
const int BLOCK_CODE_KAITHI = 193 ;
const int BLOCK_CODE_EGYPTIAN_HIEROGLYPHS = 194 ;
const int BLOCK_CODE_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195 ;
const int BLOCK_CODE_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196 ;
const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197 ;
const int BLOCK_CODE_MANDAIC = 198 ;
const int BLOCK_CODE_BATAK = 199 ;
const int BLOCK_CODE_ETHIOPIC_EXTENDED_A = 200 ;
const int BLOCK_CODE_BRAHMI = 201 ;
const int BLOCK_CODE_BAMUM_SUPPLEMENT = 202 ;
const int BLOCK_CODE_KANA_SUPPLEMENT = 203 ;
const int BLOCK_CODE_PLAYING_CARDS = 204 ;
const int BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS = 205 ;
const int BLOCK_CODE_EMOTICONS = 206 ;
const int BLOCK_CODE_TRANSPORT_AND_MAP_SYMBOLS = 207 ;
const int BLOCK_CODE_ALCHEMICAL_SYMBOLS = 208 ;
const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D = 209 ;
const int BLOCK_CODE_ARABIC_EXTENDED_A = 210 ;
const int BLOCK_CODE_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS = 211 ;
const int BLOCK_CODE_CHAKMA = 212 ;
const int BLOCK_CODE_MEETEI_MAYEK_EXTENSIONS = 213 ;
const int BLOCK_CODE_MEROITIC_CURSIVE = 214 ;
const int BLOCK_CODE_MEROITIC_HIEROGLYPHS = 215 ;
const int BLOCK_CODE_MIAO = 216 ;
const int BLOCK_CODE_SHARADA = 217 ;
const int BLOCK_CODE_SORA_SOMPENG = 218 ;
const int BLOCK_CODE_SUNDANESE_SUPPLEMENT = 219 ;
const int BLOCK_CODE_TAKRI = 220 ;
const int BLOCK_CODE_COUNT = 221 ;
const int BLOCK_CODE_INVALID_CODE = -1 ;
const int BPT_NONE = 0 ;
const int BPT_OPEN = 1 ;
const int BPT_CLOSE = 2 ;
const int BPT_COUNT = 3 ;
const int EA_NEUTRAL = 0 ;
const int EA_AMBIGUOUS = 1 ;
const int EA_HALFWIDTH = 2 ;
const int EA_FULLWIDTH = 3 ;
const int EA_NARROW = 4 ;
const int EA_WIDE = 5 ;
const int EA_COUNT = 6 ;
const int UNICODE_CHAR_NAME = 0 ;
const int UNICODE_10_CHAR_NAME = 1 ;
const int EXTENDED_CHAR_NAME = 2 ;
const int CHAR_NAME_ALIAS = 3 ;
const int CHAR_NAME_CHOICE_COUNT = 4 ;
const int SHORT_PROPERTY_NAME = 0 ;
const int LONG_PROPERTY_NAME = 1 ;
const int PROPERTY_NAME_CHOICE_COUNT = 2 ;
const int DT_NONE = 0 ;
const int DT_CANONICAL = 1 ;
const int DT_COMPAT = 2 ;
const int DT_CIRCLE = 3 ;
const int DT_FINAL = 4 ;
const int DT_FONT = 5 ;
const int DT_FRACTION = 6 ;
const int DT_INITIAL = 7 ;
const int DT_ISOLATED = 8 ;
const int DT_MEDIAL = 9 ;
const int DT_NARROW = 10 ;
const int DT_NOBREAK = 11 ;
const int DT_SMALL = 12 ;
const int DT_SQUARE = 13 ;
const int DT_SUB = 14 ;
const int DT_SUPER = 15 ;
const int DT_VERTICAL = 16 ;
const int DT_WIDE = 17 ;
const int DT_COUNT = 18 ;
const int JT_NON_JOINING = 0 ;
const int JT_JOIN_CAUSING = 1 ;
const int JT_DUAL_JOINING = 2 ;
const int JT_LEFT_JOINING = 3 ;
const int JT_RIGHT_JOINING = 4 ;
const int JT_TRANSPARENT = 5 ;
const int JT_COUNT = 6 ;
const int JG_NO_JOINING_GROUP = 0 ;
const int JG_AIN = 1 ;
const int JG_ALAPH = 2 ;
const int JG_ALEF = 3 ;
const int JG_BEH = 4 ;
const int JG_BETH = 5 ;
const int JG_DAL = 6 ;
const int JG_DALATH_RISH = 7 ;
const int JG_E = 8 ;
const int JG_FEH = 9 ;
const int JG_FINAL_SEMKATH = 10 ;
const int JG_GAF = 11 ;
const int JG_GAMAL = 12 ;
const int JG_HAH = 13 ;
const int JG_TEH_MARBUTA_GOAL = 14 ;
const int JG_HAMZA_ON_HEH_GOAL = 14 ;
const int JG_HE = 15 ;
const int JG_HEH = 16 ;
const int JG_HEH_GOAL = 17 ;
const int JG_HETH = 18 ;
const int JG_KAF = 19 ;
const int JG_KAPH = 20 ;
const int JG_KNOTTED_HEH = 21 ;
const int JG_LAM = 22 ;
const int JG_LAMADH = 23 ;
const int JG_MEEM = 24 ;
const int JG_MIM = 25 ;
const int JG_NOON = 26 ;
const int JG_NUN = 27 ;
const int JG_PE = 28 ;
const int JG_QAF = 29 ;
const int JG_QAPH = 30 ;
const int JG_REH = 31 ;
const int JG_REVERSED_PE = 32 ;
const int JG_SAD = 33 ;
const int JG_SADHE = 34 ;
const int JG_SEEN = 35 ;
const int JG_SEMKATH = 36 ;
const int JG_SHIN = 37 ;
const int JG_SWASH_KAF = 38 ;
const int JG_SYRIAC_WAW = 39 ;
const int JG_TAH = 40 ;
const int JG_TAW = 41 ;
const int JG_TEH_MARBUTA = 42 ;
const int JG_TETH = 43 ;
const int JG_WAW = 44 ;
const int JG_YEH = 45 ;
const int JG_YEH_BARREE = 46 ;
const int JG_YEH_WITH_TAIL = 47 ;
const int JG_YUDH = 48 ;
const int JG_YUDH_HE = 49 ;
const int JG_ZAIN = 50 ;
const int JG_FE = 51 ;
const int JG_KHAPH = 52 ;
const int JG_ZHAIN = 53 ;
const int JG_BURUSHASKI_YEH_BARREE = 54 ;
const int JG_FARSI_YEH = 55 ;
const int JG_NYA = 56 ;
const int JG_ROHINGYA_YEH = 57 ;
const int JG_COUNT = 58 ;
const int GCB_OTHER = 0 ;
const int GCB_CONTROL = 1 ;
const int GCB_CR = 2 ;
const int GCB_EXTEND = 3 ;
const int GCB_L = 4 ;
const int GCB_LF = 5 ;
const int GCB_LV = 6 ;
const int GCB_LVT = 7 ;
const int GCB_T = 8 ;
const int GCB_V = 9 ;
const int GCB_SPACING_MARK = 10 ;
const int GCB_PREPEND = 11 ;
const int GCB_REGIONAL_INDICATOR = 12 ;
const int GCB_COUNT = 13 ;
const int WB_OTHER = 0 ;
const int WB_ALETTER = 1 ;
const int WB_FORMAT = 2 ;
const int WB_KATAKANA = 3 ;
const int WB_MIDLETTER = 4 ;
const int WB_MIDNUM = 5 ;
const int WB_NUMERIC = 6 ;
const int WB_EXTENDNUMLET = 7 ;
const int WB_CR = 8 ;
const int WB_EXTEND = 9 ;
const int WB_LF = 10 ;
const int WB_MIDNUMLET = 11 ;
const int WB_NEWLINE = 12 ;
const int WB_REGIONAL_INDICATOR = 13 ;
const int WB_HEBREW_LETTER = 14 ;
const int WB_SINGLE_QUOTE = 15 ;
const int WB_DOUBLE_QUOTE = 16 ;
const int WB_COUNT = 17 ;
const int SB_OTHER = 0 ;
const int SB_ATERM = 1 ;
const int SB_CLOSE = 2 ;
const int SB_FORMAT = 3 ;
const int SB_LOWER = 4 ;
const int SB_NUMERIC = 5 ;
const int SB_OLETTER = 6 ;
const int SB_SEP = 7 ;
const int SB_SP = 8 ;
const int SB_STERM = 9 ;
const int SB_UPPER = 10 ;
const int SB_CR = 11 ;
const int SB_EXTEND = 12 ;
const int SB_LF = 13 ;
const int SB_SCONTINUE = 14 ;
const int SB_COUNT = 15 ;
const int LB_UNKNOWN = 0 ;
const int LB_AMBIGUOUS = 1 ;
const int LB_ALPHABETIC = 2 ;
const int LB_BREAK_BOTH = 3 ;
const int LB_BREAK_AFTER = 4 ;
const int LB_BREAK_BEFORE = 5 ;
const int LB_MANDATORY_BREAK = 6 ;
const int LB_CONTINGENT_BREAK = 7 ;
const int LB_CLOSE_PUNCTUATION = 8 ;
const int LB_COMBINING_MARK = 9 ;
const int LB_CARRIAGE_RETURN = 10 ;
const int LB_EXCLAMATION = 11 ;
const int LB_GLUE = 12 ;
const int LB_HYPHEN = 13 ;
const int LB_IDEOGRAPHIC = 14 ;
const int LB_INSEPARABLE = 15 ;
const int LB_INSEPERABLE = 15 ;
const int LB_INFIX_NUMERIC = 16 ;
const int LB_LINE_FEED = 17 ;
const int LB_NONSTARTER = 18 ;
const int LB_NUMERIC = 19 ;
const int LB_OPEN_PUNCTUATION = 20 ;
const int LB_POSTFIX_NUMERIC = 21 ;
const int LB_PREFIX_NUMERIC = 22 ;
const int LB_QUOTATION = 23 ;
const int LB_COMPLEX_CONTEXT = 24 ;
const int LB_SURROGATE = 25 ;
const int LB_SPACE = 26 ;
const int LB_BREAK_SYMBOLS = 27 ;
const int LB_ZWSPACE = 28 ;
const int LB_NEXT_LINE = 29 ;
const int LB_WORD_JOINER = 30 ;
const int LB_H2 = 31 ;
const int LB_H3 = 32 ;
const int LB_JL = 33 ;
const int LB_JT = 34 ;
const int LB_JV = 35 ;
const int LB_CLOSE_PARENTHESIS = 36 ;
const int LB_CONDITIONAL_JAPANESE_STARTER = 37 ;
const int LB_HEBREW_LETTER = 38 ;
const int LB_REGIONAL_INDICATOR = 39 ;
const int LB_COUNT = 40 ;
const int NT_NONE = 0 ;
const int NT_DECIMAL = 1 ;
const int NT_DIGIT = 2 ;
const int NT_NUMERIC = 3 ;
const int NT_COUNT = 4 ;
const int HST_NOT_APPLICABLE = 0 ;
const int HST_LEADING_JAMO = 1 ;
const int HST_VOWEL_JAMO = 2 ;
const int HST_TRAILING_JAMO = 3 ;
const int HST_LV_SYLLABLE = 4 ;
const int HST_LVT_SYLLABLE = 5 ;
const int HST_COUNT = 6 ;
/* Methoden */
public static charAge ( mixed $codepoint ) : array
public static charDigitValue ( mixed $codepoint ) : int
public static charDirection ( mixed $codepoint ) : int
public static charFromName ( string $characterName , int $nameChoice = IntlChar::UNICODE_CHAR_NAME ) : int
public static charMirror ( mixed $codepoint ) : mixed
public static charName ( mixed $codepoint , int $nameChoice = IntlChar::UNICODE_CHAR_NAME ) : string
public static charType ( mixed $codepoint ) : int
public static chr ( mixed $codepoint ) : string
public static digit ( string $codepoint , int $radix = 10 ) : int
public static enumCharNames ( mixed $start , mixed $limit , callable $callback , int $nameChoice = IntlChar::UNICODE_CHAR_NAME ) : void
public static enumCharTypes ( callable $callback ) : void
public static foldCase ( mixed $codepoint , int $options = IntlChar::FOLD_CASE_DEFAULT ) : mixed
public static forDigit ( int $digit , int $radix = 10 ) : int
public static getBidiPairedBracket ( mixed $codepoint ) : mixed
public static getBlockCode ( mixed $codepoint ) : int
public static getCombiningClass ( mixed $codepoint ) : int
public static getFC_NFKC_Closure ( mixed $codepoint ) : string
public static getIntPropertyMaxValue ( int $property ) : int
public static getIntPropertyMinValue ( int $property ) : int
public static getIntPropertyValue ( mixed $codepoint , int $property ) : int
public static getNumericValue ( mixed $codepoint ) : float
public static getPropertyEnum ( string $alias ) : int
public static getPropertyName ( int $property , int $nameChoice = IntlChar::LONG_PROPERTY_NAME ) : string
public static getPropertyValueEnum ( int $property , string $name ) : int
public static getPropertyValueName ( int $property , int $value , int $nameChoice = IntlChar::LONG_PROPERTY_NAME ) : string
public static getUnicodeVersion ( ) : array
public static hasBinaryProperty ( mixed $codepoint , int $property ) : bool
public static isalnum ( mixed $codepoint ) : bool
public static isalpha ( mixed $codepoint ) : bool
public static isbase ( mixed $codepoint ) : bool
public static isblank ( mixed $codepoint ) : bool
public static iscntrl ( mixed $codepoint ) : bool
public static isdefined ( mixed $codepoint ) : bool
public static isdigit ( mixed $codepoint ) : bool
public static isgraph ( mixed $codepoint ) : bool
public static isIDIgnorable ( mixed $codepoint ) : bool
public static isIDPart ( mixed $codepoint ) : bool
public static isIDStart ( mixed $codepoint ) : bool
public static isISOControl ( mixed $codepoint ) : bool
public static isJavaIDPart ( mixed $codepoint ) : bool
public static isJavaIDStart ( mixed $codepoint ) : bool
public static isJavaSpaceChar ( mixed $codepoint ) : bool
public static islower ( mixed $codepoint ) : bool
public static isMirrored ( mixed $codepoint ) : bool
public static isprint ( mixed $codepoint ) : bool
public static ispunct ( mixed $codepoint ) : bool
public static isspace ( mixed $codepoint ) : bool
public static istitle ( mixed $codepoint ) : bool
public static isUAlphabetic ( mixed $codepoint ) : bool
public static isULowercase ( mixed $codepoint ) : bool
public static isupper ( mixed $codepoint ) : bool
public static isUUppercase ( mixed $codepoint ) : bool
public static isUWhiteSpace ( mixed $codepoint ) : bool
public static isWhitespace ( mixed $codepoint ) : bool
public static isxdigit ( mixed $codepoint ) : bool
public static ord ( mixed $character ) : int
public static tolower ( mixed $codepoint ) : mixed
public static totitle ( mixed $codepoint ) : mixed
public static toupper ( mixed $codepoint ) : mixed
}

Vordefinierte Konstanten

IntlChar::UNICODE_VERSION

IntlChar::CODEPOINT_MIN

IntlChar::CODEPOINT_MAX

IntlChar::NO_NUMERIC_VALUE

Special value that is returned by IntlChar::getNumericValue() when no numeric value is defined for a code point.

IntlChar::PROPERTY_ALPHABETIC

IntlChar::PROPERTY_BINARY_START

IntlChar::PROPERTY_ASCII_HEX_DIGIT

IntlChar::PROPERTY_BIDI_CONTROL

IntlChar::PROPERTY_BIDI_MIRRORED

IntlChar::PROPERTY_DASH

IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT

IntlChar::PROPERTY_DEPRECATED

IntlChar::PROPERTY_DIACRITIC

IntlChar::PROPERTY_EXTENDER

IntlChar::PROPERTY_FULL_COMPOSITION_EXCLUSION

IntlChar::PROPERTY_GRAPHEME_BASE

IntlChar::PROPERTY_GRAPHEME_EXTEND

IntlChar::PROPERTY_GRAPHEME_LINK

IntlChar::PROPERTY_HEX_DIGIT

IntlChar::PROPERTY_HYPHEN

IntlChar::PROPERTY_ID_CONTINUE

IntlChar::PROPERTY_ID_START

IntlChar::PROPERTY_IDEOGRAPHIC

IntlChar::PROPERTY_IDS_BINARY_OPERATOR

IntlChar::PROPERTY_IDS_TRINARY_OPERATOR

IntlChar::PROPERTY_JOIN_CONTROL

IntlChar::PROPERTY_LOGICAL_ORDER_EXCEPTION

IntlChar::PROPERTY_LOWERCASE

IntlChar::PROPERTY_MATH

IntlChar::PROPERTY_NONCHARACTER_CODE_POINT

IntlChar::PROPERTY_QUOTATION_MARK

IntlChar::PROPERTY_RADICAL

IntlChar::PROPERTY_SOFT_DOTTED

IntlChar::PROPERTY_TERMINAL_PUNCTUATION

IntlChar::PROPERTY_UNIFIED_IDEOGRAPH

IntlChar::PROPERTY_UPPERCASE

IntlChar::PROPERTY_WHITE_SPACE

IntlChar::PROPERTY_XID_CONTINUE

IntlChar::PROPERTY_XID_START

IntlChar::PROPERTY_CASE_SENSITIVE

IntlChar::PROPERTY_S_TERM

IntlChar::PROPERTY_VARIATION_SELECTOR

IntlChar::PROPERTY_NFD_INERT

IntlChar::PROPERTY_NFKD_INERT

IntlChar::PROPERTY_NFC_INERT

IntlChar::PROPERTY_NFKC_INERT

IntlChar::PROPERTY_SEGMENT_STARTER

IntlChar::PROPERTY_PATTERN_SYNTAX

IntlChar::PROPERTY_PATTERN_WHITE_SPACE

IntlChar::PROPERTY_POSIX_ALNUM

IntlChar::PROPERTY_POSIX_BLANK

IntlChar::PROPERTY_POSIX_GRAPH

IntlChar::PROPERTY_POSIX_PRINT

IntlChar::PROPERTY_POSIX_XDIGIT

IntlChar::PROPERTY_CASED

IntlChar::PROPERTY_CASE_IGNORABLE

IntlChar::PROPERTY_CHANGES_WHEN_LOWERCASED

IntlChar::PROPERTY_CHANGES_WHEN_UPPERCASED

IntlChar::PROPERTY_CHANGES_WHEN_TITLECASED

IntlChar::PROPERTY_CHANGES_WHEN_CASEFOLDED

IntlChar::PROPERTY_CHANGES_WHEN_CASEMAPPED

IntlChar::PROPERTY_CHANGES_WHEN_NFKC_CASEFOLDED

IntlChar::PROPERTY_BINARY_LIMIT

IntlChar::PROPERTY_BIDI_CLASS

IntlChar::PROPERTY_INT_START

IntlChar::PROPERTY_BLOCK

IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_DECOMPOSITION_TYPE

IntlChar::PROPERTY_EAST_ASIAN_WIDTH

IntlChar::PROPERTY_GENERAL_CATEGORY

IntlChar::PROPERTY_JOINING_GROUP

IntlChar::PROPERTY_JOINING_TYPE

IntlChar::PROPERTY_LINE_BREAK

IntlChar::PROPERTY_NUMERIC_TYPE

IntlChar::PROPERTY_SCRIPT

IntlChar::PROPERTY_HANGUL_SYLLABLE_TYPE

IntlChar::PROPERTY_NFD_QUICK_CHECK

IntlChar::PROPERTY_NFKD_QUICK_CHECK

IntlChar::PROPERTY_NFC_QUICK_CHECK

IntlChar::PROPERTY_NFKC_QUICK_CHECK

IntlChar::PROPERTY_LEAD_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_TRAIL_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_GRAPHEME_CLUSTER_BREAK

IntlChar::PROPERTY_SENTENCE_BREAK

IntlChar::PROPERTY_WORD_BREAK

IntlChar::PROPERTY_BIDI_PAIRED_BRACKET_TYPE

IntlChar::PROPERTY_INT_LIMIT

IntlChar::PROPERTY_GENERAL_CATEGORY_MASK

IntlChar::PROPERTY_MASK_START

IntlChar::PROPERTY_MASK_LIMIT

IntlChar::PROPERTY_NUMERIC_VALUE

IntlChar::PROPERTY_DOUBLE_START

IntlChar::PROPERTY_DOUBLE_LIMIT

IntlChar::PROPERTY_AGE

IntlChar::PROPERTY_STRING_START

IntlChar::PROPERTY_BIDI_MIRRORING_GLYPH

IntlChar::PROPERTY_CASE_FOLDING

IntlChar::PROPERTY_ISO_COMMENT

IntlChar::PROPERTY_LOWERCASE_MAPPING

IntlChar::PROPERTY_NAME

IntlChar::PROPERTY_SIMPLE_CASE_FOLDING

IntlChar::PROPERTY_SIMPLE_LOWERCASE_MAPPING

IntlChar::PROPERTY_SIMPLE_TITLECASE_MAPPING

IntlChar::PROPERTY_SIMPLE_UPPERCASE_MAPPING

IntlChar::PROPERTY_TITLECASE_MAPPING

IntlChar::PROPERTY_UNICODE_1_NAME

IntlChar::PROPERTY_UPPERCASE_MAPPING

IntlChar::PROPERTY_BIDI_PAIRED_BRACKET

IntlChar::PROPERTY_STRING_LIMIT

IntlChar::PROPERTY_SCRIPT_EXTENSIONS

IntlChar::PROPERTY_OTHER_PROPERTY_START

IntlChar::PROPERTY_OTHER_PROPERTY_LIMIT

IntlChar::PROPERTY_INVALID_CODE

IntlChar::CHAR_CATEGORY_UNASSIGNED

IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES

IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER

IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER

IntlChar::CHAR_CATEGORY_TITLECASE_LETTER

IntlChar::CHAR_CATEGORY_MODIFIER_LETTER

IntlChar::CHAR_CATEGORY_OTHER_LETTER

IntlChar::CHAR_CATEGORY_NON_SPACING_MARK

IntlChar::CHAR_CATEGORY_ENCLOSING_MARK

IntlChar::CHAR_CATEGORY_COMBINING_SPACING_MARK

IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER

IntlChar::CHAR_CATEGORY_LETTER_NUMBER

IntlChar::CHAR_CATEGORY_OTHER_NUMBER

IntlChar::CHAR_CATEGORY_SPACE_SEPARATOR

IntlChar::CHAR_CATEGORY_LINE_SEPARATOR

IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR

IntlChar::CHAR_CATEGORY_CONTROL_CHAR

IntlChar::CHAR_CATEGORY_FORMAT_CHAR

IntlChar::CHAR_CATEGORY_PRIVATE_USE_CHAR

IntlChar::CHAR_CATEGORY_SURROGATE

IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION

IntlChar::CHAR_CATEGORY_START_PUNCTUATION

IntlChar::CHAR_CATEGORY_END_PUNCTUATION

IntlChar::CHAR_CATEGORY_CONNECTOR_PUNCTUATION

IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION

IntlChar::CHAR_CATEGORY_MATH_SYMBOL

IntlChar::CHAR_CATEGORY_CURRENCY_SYMBOL

IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL

IntlChar::CHAR_CATEGORY_OTHER_SYMBOL

IntlChar::CHAR_CATEGORY_INITIAL_PUNCTUATION

IntlChar::CHAR_CATEGORY_FINAL_PUNCTUATION

IntlChar::CHAR_CATEGORY_CHAR_CATEGORY_COUNT

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR

IntlChar::CHAR_DIRECTION_ARABIC_NUMBER

IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR

IntlChar::CHAR_DIRECTION_BLOCK_SEPARATOR

IntlChar::CHAR_DIRECTION_SEGMENT_SEPARATOR

IntlChar::CHAR_DIRECTION_WHITE_SPACE_NEUTRAL

IntlChar::CHAR_DIRECTION_OTHER_NEUTRAL

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE

IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT

IntlChar::CHAR_DIRECTION_DIR_NON_SPACING_MARK

IntlChar::CHAR_DIRECTION_BOUNDARY_NEUTRAL

IntlChar::CHAR_DIRECTION_FIRST_STRONG_ISOLATE

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE

IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE

IntlChar::CHAR_DIRECTION_CHAR_DIRECTION_COUNT

IntlChar::BLOCK_CODE_NO_BLOCK

IntlChar::BLOCK_CODE_BASIC_LATIN

IntlChar::BLOCK_CODE_LATIN_1_SUPPLEMENT

IntlChar::BLOCK_CODE_LATIN_EXTENDED_A

IntlChar::BLOCK_CODE_LATIN_EXTENDED_B

IntlChar::BLOCK_CODE_IPA_EXTENSIONS

IntlChar::BLOCK_CODE_SPACING_MODIFIER_LETTERS

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS

IntlChar::BLOCK_CODE_GREEK

IntlChar::BLOCK_CODE_CYRILLIC

IntlChar::BLOCK_CODE_ARMENIAN

IntlChar::BLOCK_CODE_HEBREW

IntlChar::BLOCK_CODE_ARABIC

IntlChar::BLOCK_CODE_SYRIAC

IntlChar::BLOCK_CODE_THAANA

IntlChar::BLOCK_CODE_DEVANAGARI

IntlChar::BLOCK_CODE_BENGALI

IntlChar::BLOCK_CODE_GURMUKHI

IntlChar::BLOCK_CODE_GUJARATI

IntlChar::BLOCK_CODE_ORIYA

IntlChar::BLOCK_CODE_TAMIL

IntlChar::BLOCK_CODE_TELUGU

IntlChar::BLOCK_CODE_KANNADA

IntlChar::BLOCK_CODE_MALAYALAM

IntlChar::BLOCK_CODE_SINHALA

IntlChar::BLOCK_CODE_THAI

IntlChar::BLOCK_CODE_LAO

IntlChar::BLOCK_CODE_TIBETAN

IntlChar::BLOCK_CODE_MYANMAR

IntlChar::BLOCK_CODE_GEORGIAN

IntlChar::BLOCK_CODE_HANGUL_JAMO

IntlChar::BLOCK_CODE_ETHIOPIC

IntlChar::BLOCK_CODE_CHEROKEE

IntlChar::BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS

IntlChar::BLOCK_CODE_OGHAM

IntlChar::BLOCK_CODE_RUNIC

IntlChar::BLOCK_CODE_KHMER

IntlChar::BLOCK_CODE_MONGOLIAN

IntlChar::BLOCK_CODE_LATIN_EXTENDED_ADDITIONAL

IntlChar::BLOCK_CODE_GREEK_EXTENDED

IntlChar::BLOCK_CODE_GENERAL_PUNCTUATION

IntlChar::BLOCK_CODE_SUPERSCRIPTS_AND_SUBSCRIPTS

IntlChar::BLOCK_CODE_CURRENCY_SYMBOLS

IntlChar::BLOCK_CODE_COMBINING_MARKS_FOR_SYMBOLS

IntlChar::BLOCK_CODE_LETTERLIKE_SYMBOLS

IntlChar::BLOCK_CODE_NUMBER_FORMS

IntlChar::BLOCK_CODE_ARROWS

IntlChar::BLOCK_CODE_MATHEMATICAL_OPERATORS

IntlChar::BLOCK_CODE_MISCELLANEOUS_TECHNICAL

IntlChar::BLOCK_CODE_CONTROL_PICTURES

IntlChar::BLOCK_CODE_OPTICAL_CHARACTER_RECOGNITION

IntlChar::BLOCK_CODE_ENCLOSED_ALPHANUMERICS

IntlChar::BLOCK_CODE_BOX_DRAWING

IntlChar::BLOCK_CODE_BLOCK_ELEMENTS

IntlChar::BLOCK_CODE_GEOMETRIC_SHAPES

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS

IntlChar::BLOCK_CODE_DINGBATS

IntlChar::BLOCK_CODE_BRAILLE_PATTERNS

IntlChar::BLOCK_CODE_CJK_RADICALS_SUPPLEMENT

IntlChar::BLOCK_CODE_KANGXI_RADICALS

IntlChar::BLOCK_CODE_IDEOGRAPHIC_DESCRIPTION_CHARACTERS

IntlChar::BLOCK_CODE_CJK_SYMBOLS_AND_PUNCTUATION

IntlChar::BLOCK_CODE_HIRAGANA

IntlChar::BLOCK_CODE_KATAKANA

IntlChar::BLOCK_CODE_BOPOMOFO

IntlChar::BLOCK_CODE_HANGUL_COMPATIBILITY_JAMO

IntlChar::BLOCK_CODE_KANBUN

IntlChar::BLOCK_CODE_BOPOMOFO_EXTENDED

IntlChar::BLOCK_CODE_ENCLOSED_CJK_LETTERS_AND_MONTHS

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS

IntlChar::BLOCK_CODE_YI_SYLLABLES

IntlChar::BLOCK_CODE_YI_RADICALS

IntlChar::BLOCK_CODE_HANGUL_SYLLABLES

IntlChar::BLOCK_CODE_HIGH_SURROGATES

IntlChar::BLOCK_CODE_HIGH_PRIVATE_USE_SURROGATES

IntlChar::BLOCK_CODE_LOW_SURROGATES

IntlChar::BLOCK_CODE_PRIVATE_USE_AREA

IntlChar::BLOCK_CODE_PRIVATE_USE

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS

IntlChar::BLOCK_CODE_ALPHABETIC_PRESENTATION_FORMS

IntlChar::BLOCK_CODE_ARABIC_PRESENTATION_FORMS_A

IntlChar::BLOCK_CODE_COMBINING_HALF_MARKS

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_FORMS

IntlChar::BLOCK_CODE_SMALL_FORM_VARIANTS

IntlChar::BLOCK_CODE_ARABIC_PRESENTATION_FORMS_B

IntlChar::BLOCK_CODE_SPECIALS

IntlChar::BLOCK_CODE_HALFWIDTH_AND_FULLWIDTH_FORMS

IntlChar::BLOCK_CODE_OLD_ITALIC

IntlChar::BLOCK_CODE_GOTHIC

IntlChar::BLOCK_CODE_DESERET

IntlChar::BLOCK_CODE_BYZANTINE_MUSICAL_SYMBOLS

IntlChar::BLOCK_CODE_MUSICAL_SYMBOLS

IntlChar::BLOCK_CODE_MATHEMATICAL_ALPHANUMERIC_SYMBOLS

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT

IntlChar::BLOCK_CODE_TAGS

IntlChar::BLOCK_CODE_CYRILLIC_SUPPLEMENT

IntlChar::BLOCK_CODE_CYRILLIC_SUPPLEMENTARY

IntlChar::BLOCK_CODE_TAGALOG

IntlChar::BLOCK_CODE_HANUNOO

IntlChar::BLOCK_CODE_BUHID

IntlChar::BLOCK_CODE_TAGBANWA

IntlChar::BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_A

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_B

IntlChar::BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B

IntlChar::BLOCK_CODE_SUPPLEMENTAL_MATHEMATICAL_OPERATORS

IntlChar::BLOCK_CODE_KATAKANA_PHONETIC_EXTENSIONS

IntlChar::BLOCK_CODE_VARIATION_SELECTORS

IntlChar::BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_A

IntlChar::BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_B

IntlChar::BLOCK_CODE_LIMBU

IntlChar::BLOCK_CODE_TAI_LE

IntlChar::BLOCK_CODE_KHMER_SYMBOLS

IntlChar::BLOCK_CODE_PHONETIC_EXTENSIONS

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_ARROWS

IntlChar::BLOCK_CODE_YIJING_HEXAGRAM_SYMBOLS

IntlChar::BLOCK_CODE_LINEAR_B_SYLLABARY

IntlChar::BLOCK_CODE_LINEAR_B_IDEOGRAMS

IntlChar::BLOCK_CODE_AEGEAN_NUMBERS

IntlChar::BLOCK_CODE_UGARITIC

IntlChar::BLOCK_CODE_SHAVIAN

IntlChar::BLOCK_CODE_OSMANYA

IntlChar::BLOCK_CODE_CYPRIOT_SYLLABARY

IntlChar::BLOCK_CODE_TAI_XUAN_JING_SYMBOLS

IntlChar::BLOCK_CODE_VARIATION_SELECTORS_SUPPLEMENT

IntlChar::BLOCK_CODE_ANCIENT_GREEK_MUSICAL_NOTATION

IntlChar::BLOCK_CODE_ANCIENT_GREEK_NUMBERS

IntlChar::BLOCK_CODE_ARABIC_SUPPLEMENT

IntlChar::BLOCK_CODE_BUGINESE

IntlChar::BLOCK_CODE_CJK_STROKES

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT

IntlChar::BLOCK_CODE_COPTIC

IntlChar::BLOCK_CODE_ETHIOPIC_EXTENDED

IntlChar::BLOCK_CODE_ETHIOPIC_SUPPLEMENT

IntlChar::BLOCK_CODE_GEORGIAN_SUPPLEMENT

IntlChar::BLOCK_CODE_GLAGOLITIC

IntlChar::BLOCK_CODE_KHAROSHTHI

IntlChar::BLOCK_CODE_MODIFIER_TONE_LETTERS

IntlChar::BLOCK_CODE_NEW_TAI_LUE

IntlChar::BLOCK_CODE_OLD_PERSIAN

IntlChar::BLOCK_CODE_PHONETIC_EXTENSIONS_SUPPLEMENT

IntlChar::BLOCK_CODE_SUPPLEMENTAL_PUNCTUATION

IntlChar::BLOCK_CODE_SYLOTI_NAGRI

IntlChar::BLOCK_CODE_TIFINAGH

IntlChar::BLOCK_CODE_VERTICAL_FORMS

IntlChar::BLOCK_CODE_NKO

IntlChar::BLOCK_CODE_BALINESE

IntlChar::BLOCK_CODE_LATIN_EXTENDED_C

IntlChar::BLOCK_CODE_LATIN_EXTENDED_D

IntlChar::BLOCK_CODE_PHAGS_PA

IntlChar::BLOCK_CODE_PHOENICIAN

IntlChar::BLOCK_CODE_CUNEIFORM

IntlChar::BLOCK_CODE_CUNEIFORM_NUMBERS_AND_PUNCTUATION

IntlChar::BLOCK_CODE_COUNTING_ROD_NUMERALS

IntlChar::BLOCK_CODE_SUNDANESE

IntlChar::BLOCK_CODE_LEPCHA

IntlChar::BLOCK_CODE_OL_CHIKI

IntlChar::BLOCK_CODE_CYRILLIC_EXTENDED_A

IntlChar::BLOCK_CODE_VAI

IntlChar::BLOCK_CODE_CYRILLIC_EXTENDED_B

IntlChar::BLOCK_CODE_SAURASHTRA

IntlChar::BLOCK_CODE_KAYAH_LI

IntlChar::BLOCK_CODE_REJANG

IntlChar::BLOCK_CODE_CHAM

IntlChar::BLOCK_CODE_ANCIENT_SYMBOLS

IntlChar::BLOCK_CODE_PHAISTOS_DISC

IntlChar::BLOCK_CODE_LYCIAN

IntlChar::BLOCK_CODE_CARIAN

IntlChar::BLOCK_CODE_LYDIAN

IntlChar::BLOCK_CODE_MAHJONG_TILES

IntlChar::BLOCK_CODE_DOMINO_TILES

IntlChar::BLOCK_CODE_SAMARITAN

IntlChar::BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED

IntlChar::BLOCK_CODE_TAI_THAM

IntlChar::BLOCK_CODE_VEDIC_EXTENSIONS

IntlChar::BLOCK_CODE_LISU

IntlChar::BLOCK_CODE_BAMUM

IntlChar::BLOCK_CODE_COMMON_INDIC_NUMBER_FORMS

IntlChar::BLOCK_CODE_DEVANAGARI_EXTENDED

IntlChar::BLOCK_CODE_HANGUL_JAMO_EXTENDED_A

IntlChar::BLOCK_CODE_JAVANESE

IntlChar::BLOCK_CODE_MYANMAR_EXTENDED_A

IntlChar::BLOCK_CODE_TAI_VIET

IntlChar::BLOCK_CODE_MEETEI_MAYEK

IntlChar::BLOCK_CODE_HANGUL_JAMO_EXTENDED_B

IntlChar::BLOCK_CODE_IMPERIAL_ARAMAIC

IntlChar::BLOCK_CODE_OLD_SOUTH_ARABIAN

IntlChar::BLOCK_CODE_AVESTAN

IntlChar::BLOCK_CODE_INSCRIPTIONAL_PARTHIAN

IntlChar::BLOCK_CODE_INSCRIPTIONAL_PAHLAVI

IntlChar::BLOCK_CODE_OLD_TURKIC

IntlChar::BLOCK_CODE_RUMI_NUMERAL_SYMBOLS

IntlChar::BLOCK_CODE_KAITHI

IntlChar::BLOCK_CODE_EGYPTIAN_HIEROGLYPHS

IntlChar::BLOCK_CODE_ENCLOSED_ALPHANUMERIC_SUPPLEMENT

IntlChar::BLOCK_CODE_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C

IntlChar::BLOCK_CODE_MANDAIC

IntlChar::BLOCK_CODE_BATAK

IntlChar::BLOCK_CODE_ETHIOPIC_EXTENDED_A

IntlChar::BLOCK_CODE_BRAHMI

IntlChar::BLOCK_CODE_BAMUM_SUPPLEMENT

IntlChar::BLOCK_CODE_KANA_SUPPLEMENT

IntlChar::BLOCK_CODE_PLAYING_CARDS

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS

IntlChar::BLOCK_CODE_EMOTICONS

IntlChar::BLOCK_CODE_TRANSPORT_AND_MAP_SYMBOLS

IntlChar::BLOCK_CODE_ALCHEMICAL_SYMBOLS

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D

IntlChar::BLOCK_CODE_ARABIC_EXTENDED_A

IntlChar::BLOCK_CODE_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS

IntlChar::BLOCK_CODE_CHAKMA

IntlChar::BLOCK_CODE_MEETEI_MAYEK_EXTENSIONS

IntlChar::BLOCK_CODE_MEROITIC_CURSIVE

IntlChar::BLOCK_CODE_MEROITIC_HIEROGLYPHS

IntlChar::BLOCK_CODE_MIAO

IntlChar::BLOCK_CODE_SHARADA

IntlChar::BLOCK_CODE_SORA_SOMPENG

IntlChar::BLOCK_CODE_SUNDANESE_SUPPLEMENT

IntlChar::BLOCK_CODE_TAKRI

IntlChar::BLOCK_CODE_COUNT

IntlChar::BLOCK_CODE_INVALID_CODE

IntlChar::BPT_NONE

IntlChar::BPT_OPEN

IntlChar::BPT_CLOSE

IntlChar::BPT_COUNT

IntlChar::EA_NEUTRAL

IntlChar::EA_AMBIGUOUS

IntlChar::EA_HALFWIDTH

IntlChar::EA_FULLWIDTH

IntlChar::EA_NARROW

IntlChar::EA_WIDE

IntlChar::EA_COUNT

IntlChar::UNICODE_CHAR_NAME

IntlChar::UNICODE_10_CHAR_NAME

IntlChar::EXTENDED_CHAR_NAME

IntlChar::CHAR_NAME_ALIAS

IntlChar::CHAR_NAME_CHOICE_COUNT

IntlChar::SHORT_PROPERTY_NAME

IntlChar::LONG_PROPERTY_NAME

IntlChar::PROPERTY_NAME_CHOICE_COUNT

IntlChar::DT_NONE

IntlChar::DT_CANONICAL

IntlChar::DT_COMPAT

IntlChar::DT_CIRCLE

IntlChar::DT_FINAL

IntlChar::DT_FONT

IntlChar::DT_FRACTION

IntlChar::DT_INITIAL

IntlChar::DT_ISOLATED

IntlChar::DT_MEDIAL

IntlChar::DT_NARROW

IntlChar::DT_NOBREAK

IntlChar::DT_SMALL

IntlChar::DT_SQUARE

IntlChar::DT_SUB

IntlChar::DT_SUPER

IntlChar::DT_VERTICAL

IntlChar::DT_WIDE

IntlChar::DT_COUNT

IntlChar::JT_NON_JOINING

IntlChar::JT_JOIN_CAUSING

IntlChar::JT_DUAL_JOINING

IntlChar::JT_LEFT_JOINING

IntlChar::JT_RIGHT_JOINING

IntlChar::JT_TRANSPARENT

IntlChar::JT_COUNT

IntlChar::JG_NO_JOINING_GROUP

IntlChar::JG_AIN

IntlChar::JG_ALAPH

IntlChar::JG_ALEF

IntlChar::JG_BEH

IntlChar::JG_BETH

IntlChar::JG_DAL

IntlChar::JG_DALATH_RISH

IntlChar::JG_E

IntlChar::JG_FEH

IntlChar::JG_FINAL_SEMKATH

IntlChar::JG_GAF

IntlChar::JG_GAMAL

IntlChar::JG_HAH

IntlChar::JG_TEH_MARBUTA_GOAL

IntlChar::JG_HAMZA_ON_HEH_GOAL

IntlChar::JG_HE

IntlChar::JG_HEH

IntlChar::JG_HEH_GOAL

IntlChar::JG_HETH

IntlChar::JG_KAF

IntlChar::JG_KAPH

IntlChar::JG_KNOTTED_HEH

IntlChar::JG_LAM

IntlChar::JG_LAMADH

IntlChar::JG_MEEM

IntlChar::JG_MIM

IntlChar::JG_NOON

IntlChar::JG_NUN

IntlChar::JG_PE

IntlChar::JG_QAF

IntlChar::JG_QAPH

IntlChar::JG_REH

IntlChar::JG_REVERSED_PE

IntlChar::JG_SAD

IntlChar::JG_SADHE

IntlChar::JG_SEEN

IntlChar::JG_SEMKATH

IntlChar::JG_SHIN

IntlChar::JG_SWASH_KAF

IntlChar::JG_SYRIAC_WAW

IntlChar::JG_TAH

IntlChar::JG_TAW

IntlChar::JG_TEH_MARBUTA

IntlChar::JG_TETH

IntlChar::JG_WAW

IntlChar::JG_YEH

IntlChar::JG_YEH_BARREE

IntlChar::JG_YEH_WITH_TAIL

IntlChar::JG_YUDH

IntlChar::JG_YUDH_HE

IntlChar::JG_ZAIN

IntlChar::JG_FE

IntlChar::JG_KHAPH

IntlChar::JG_ZHAIN

IntlChar::JG_BURUSHASKI_YEH_BARREE

IntlChar::JG_FARSI_YEH

IntlChar::JG_NYA

IntlChar::JG_ROHINGYA_YEH

IntlChar::JG_COUNT

IntlChar::GCB_OTHER

IntlChar::GCB_CONTROL

IntlChar::GCB_CR

IntlChar::GCB_EXTEND

IntlChar::GCB_L

IntlChar::GCB_LF

IntlChar::GCB_LV

IntlChar::GCB_LVT

IntlChar::GCB_T

IntlChar::GCB_V

IntlChar::GCB_SPACING_MARK

IntlChar::GCB_PREPEND

IntlChar::GCB_REGIONAL_INDICATOR

IntlChar::GCB_COUNT

IntlChar::WB_OTHER

IntlChar::WB_ALETTER

IntlChar::WB_FORMAT

IntlChar::WB_KATAKANA

IntlChar::WB_MIDLETTER

IntlChar::WB_MIDNUM

IntlChar::WB_NUMERIC

IntlChar::WB_EXTENDNUMLET

IntlChar::WB_CR

IntlChar::WB_EXTEND

IntlChar::WB_LF

IntlChar::WB_MIDNUMLET

IntlChar::WB_NEWLINE

IntlChar::WB_REGIONAL_INDICATOR

IntlChar::WB_HEBREW_LETTER

IntlChar::WB_SINGLE_QUOTE

IntlChar::WB_DOUBLE_QUOTE

IntlChar::WB_COUNT

IntlChar::SB_OTHER

IntlChar::SB_ATERM

IntlChar::SB_CLOSE

IntlChar::SB_FORMAT

IntlChar::SB_LOWER

IntlChar::SB_NUMERIC

IntlChar::SB_OLETTER

IntlChar::SB_SEP

IntlChar::SB_SP

IntlChar::SB_STERM

IntlChar::SB_UPPER

IntlChar::SB_CR

IntlChar::SB_EXTEND

IntlChar::SB_LF

IntlChar::SB_SCONTINUE

IntlChar::SB_COUNT

IntlChar::LB_UNKNOWN

IntlChar::LB_AMBIGUOUS

IntlChar::LB_ALPHABETIC

IntlChar::LB_BREAK_BOTH

IntlChar::LB_BREAK_AFTER

IntlChar::LB_BREAK_BEFORE

IntlChar::LB_MANDATORY_BREAK

IntlChar::LB_CONTINGENT_BREAK

IntlChar::LB_CLOSE_PUNCTUATION

IntlChar::LB_COMBINING_MARK

IntlChar::LB_CARRIAGE_RETURN

IntlChar::LB_EXCLAMATION

IntlChar::LB_GLUE

IntlChar::LB_HYPHEN

IntlChar::LB_IDEOGRAPHIC

IntlChar::LB_INSEPARABLE

IntlChar::LB_INSEPERABLE

IntlChar::LB_INFIX_NUMERIC

IntlChar::LB_LINE_FEED

IntlChar::LB_NONSTARTER

IntlChar::LB_NUMERIC

IntlChar::LB_OPEN_PUNCTUATION

IntlChar::LB_POSTFIX_NUMERIC

IntlChar::LB_PREFIX_NUMERIC

IntlChar::LB_QUOTATION

IntlChar::LB_COMPLEX_CONTEXT

IntlChar::LB_SURROGATE

IntlChar::LB_SPACE

IntlChar::LB_BREAK_SYMBOLS

IntlChar::LB_ZWSPACE

IntlChar::LB_NEXT_LINE

IntlChar::LB_WORD_JOINER

IntlChar::LB_H2

IntlChar::LB_H3

IntlChar::LB_JL

IntlChar::LB_JT

IntlChar::LB_JV

IntlChar::LB_CLOSE_PARENTHESIS

IntlChar::LB_CONDITIONAL_JAPANESE_STARTER

IntlChar::LB_HEBREW_LETTER

IntlChar::LB_REGIONAL_INDICATOR

IntlChar::LB_COUNT

IntlChar::NT_NONE

IntlChar::NT_DECIMAL

IntlChar::NT_DIGIT

IntlChar::NT_NUMERIC

IntlChar::NT_COUNT

IntlChar::HST_NOT_APPLICABLE

IntlChar::HST_LEADING_JAMO

IntlChar::HST_VOWEL_JAMO

IntlChar::HST_TRAILING_JAMO

IntlChar::HST_LV_SYLLABLE

IntlChar::HST_LVT_SYLLABLE

IntlChar::HST_COUNT

IntlChar::FOLD_CASE_DEFAULT

IntlChar::FOLD_CASE_EXCLUDE_SPECIAL_I

Changelog

Version | Beschreibung
7.0.6 | The IntlChar::NO_NUMERIC_VALUE constant was added.

Inhaltsverzeichnis

  • IntlChar::charAge — Get the "age" of the code point
  • IntlChar::charDigitValue — Get the decimal digit value of a decimal digit character
  • IntlChar::charDirection — Get bidirectional category value for a code point
  • IntlChar::charFromName — Find Unicode character by name and return its code point value
  • IntlChar::charMirror — Get the "mirror-image" character for a code point
  • IntlChar::charName — Retrieve the name of a Unicode character
  • IntlChar::charType — Get the general category value for a code point
  • IntlChar::chr — Return Unicode character by code point value
  • IntlChar::digit — Get the decimal digit value of a code point for a given radix
  • IntlChar::enumCharNames — Enumerate all assigned Unicode characters within a range
  • IntlChar::enumCharTypes — Enumerate all code points with their Unicode general categories
  • IntlChar::foldCase — Perform case folding on a code point
  • IntlChar::forDigit — Get character representation for a given digit and radix
  • IntlChar::getBidiPairedBracket — Get the paired bracket character for a code point
  • IntlChar::getBlockCode — Get the Unicode allocation block containing a code point
  • IntlChar::getCombiningClass — Get the combining class of a code point
  • IntlChar::getFC_NFKC_Closure — Get the FC_NFKC_Closure property for a code point
  • IntlChar::getIntPropertyMaxValue — Get the max value for a Unicode property
  • IntlChar::getIntPropertyMinValue — Get the min value for a Unicode property
  • IntlChar::getIntPropertyValue — Get the value for a Unicode property for a code point
  • IntlChar::getNumericValue — Get the numeric value for a Unicode code point
  • IntlChar::getPropertyEnum — Get the property constant value for a given property name
  • IntlChar::getPropertyName — Get the Unicode name for a property
  • IntlChar::getPropertyValueEnum — Get the property value for a given value name
  • IntlChar::getPropertyValueName — Get the Unicode name for a property value
  • IntlChar::getUnicodeVersion — Get the Unicode version
  • IntlChar::hasBinaryProperty — Check a binary Unicode property for a code point
  • IntlChar::isalnum — Check if code point is an alphanumeric character
  • IntlChar::isalpha — Check if code point is a letter character
  • IntlChar::isbase — Check if code point is a base character
  • IntlChar::isblank — Check if code point is a "blank" or "horizontal space" character
  • IntlChar::iscntrl — Check if code point is a control character
  • IntlChar::isdefined — Check whether the code point is defined
  • IntlChar::isdigit — Check if code point is a digit character
  • IntlChar::isgraph — Check if code point is a graphic character
  • IntlChar::isIDIgnorable — Check if code point is an ignorable character
  • IntlChar::isIDPart — Check if code point is permissible in an identifier
  • IntlChar::isIDStart — Check if code point is permissible as the first character in an identifier
  • IntlChar::isISOControl — Check if code point is an ISO control code
  • IntlChar::isJavaIDPart — Check if code point is permissible in a Java identifier
  • IntlChar::isJavaIDStart — Check if code point is permissible as the first character in a Java identifier
  • IntlChar::isJavaSpaceChar — Check if code point is a space character according to Java
  • IntlChar::islower — Check if code point is a lowercase letter
  • IntlChar::isMirrored — Check if code point has the Bidi_Mirrored property
  • IntlChar::isprint — Check if code point is a printable character
  • IntlChar::ispunct — Check if code point is punctuation character
  • IntlChar::isspace — Check if code point is a space character
  • IntlChar::istitle — Check if code point is a titlecase letter
  • IntlChar::isUAlphabetic — Check if code point has the Alphabetic Unicode property
  • IntlChar::isULowercase — Check if code point has the Lowercase Unicode property
  • IntlChar::isupper — Check if code point has the general category "Lu" (uppercase letter)
  • IntlChar::isUUppercase — Check if code point has the Uppercase Unicode property
  • IntlChar::isUWhiteSpace — Check if code point has the White_Space Unicode property
  • IntlChar::isWhitespace — Check if code point is a whitespace character according to ICU
  • IntlChar::isxdigit — Check if code point is a hexadecimal digit
  • IntlChar::ord — Return Unicode code point value of character
  • IntlChar::tolower — Make Unicode character lowercase
  • IntlChar::totitle — Make Unicode character titlecase
  • IntlChar::toupper — Make Unicode character uppercase


Get the "age" of the code point

  • « IntlChar
  • IntlChar::charDigitValue »
  • PHP Manual
  • IntlChar
  • Get the "age" of the code point

IntlChar::charAge

(PHP 7)

IntlChar::charAge — Get the "age" of the code point

Beschreibung

public static IntlChar::charAge ( mixed $codepoint ) : array

Gets the "age" of the code point.

The "age" is the Unicode version when the code point was first designated (as a non-character or for Private Use) or assigned a character. This can be useful to avoid emitting code points to receiving processes that do not accept newer characters.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

The Unicode version number, as an array. For example, version 1.3.31.2 would be represented as [1, 3, 31, 2].

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::charage("\u{2603}"));
var_dump(IntlChar::charage("\u{1F576}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(1)
  [2]=>
  int(0)
  [3]=>
  int(0)
}
array(4) {
  [0]=>
  int(7)
  [1]=>
  int(0)
  [2]=>
  int(0)
  [3]=>
  int(0)
}

Siehe auch

  • IntlChar::getUnicodeVersion() - Get the Unicode version
  • IntlChar::getIntPropertyMinValue() - Get the min value for a Unicode property
  • IntlChar::getIntPropertyValue() - Get the value for a Unicode property for a code point


Get the decimal digit value of a decimal digit character

  • « IntlChar::charAge
  • IntlChar::charDirection »
  • PHP Manual
  • IntlChar
  • Get the decimal digit value of a decimal digit character

IntlChar::charDigitValue

(PHP 7)

IntlChar::charDigitValue — Get the decimal digit value of a decimal digit character

Beschreibung

public static IntlChar::charDigitValue ( mixed $codepoint ) : int

Returns the decimal digit value of a decimal digit character.

Such characters have the general category "Nd" (decimal digit numbers) and a Numeric_Type of Decimal.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

The decimal digit value of codepoint, or -1 if it is not a decimal digit character.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::charDigitValue("1"));
var_dump(IntlChar::charDigitValue("\u{0662}"));
var_dump(IntlChar::charDigitValue("\u{0E53}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)
int(2)
int(3)

Siehe auch

  • IntlChar::getNumericValue() - Get the numeric value for a Unicode code point


Get bidirectional category value for a code point

  • « IntlChar::charDigitValue
  • IntlChar::charFromName »
  • PHP Manual
  • IntlChar
  • Get bidirectional category value for a code point

IntlChar::charDirection

(PHP 7)

IntlChar::charDirection — Get bidirectional category value for a code point

Beschreibung

public static IntlChar::charDirection ( mixed $codepoint ) : int

Returns the bidirectional category value for the code point, which is used in the » Unicode bidirectional algorithm (UAX #9).

Hinweis:

Some unassigned code points have bidi values of R or AL because they are in blocks that are reserved for Right-To-Left scripts.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

The bidirectional category value; one of the following constants:

  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR
  • IntlChar::CHAR_DIRECTION_ARABIC_NUMBER
  • IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR
  • IntlChar::CHAR_DIRECTION_BLOCK_SEPARATOR
  • IntlChar::CHAR_DIRECTION_SEGMENT_SEPARATOR
  • IntlChar::CHAR_DIRECTION_WHITE_SPACE_NEUTRAL
  • IntlChar::CHAR_DIRECTION_OTHER_NEUTRAL
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE
  • IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT
  • IntlChar::CHAR_DIRECTION_DIR_NON_SPACING_MARK
  • IntlChar::CHAR_DIRECTION_BOUNDARY_NEUTRAL
  • IntlChar::CHAR_DIRECTION_FIRST_STRONG_ISOLATE
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE
  • IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE
  • IntlChar::CHAR_DIRECTION_CHAR_DIRECTION_COUNT

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::charDirection("A") === IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT);
var_dump(IntlChar::charDirection("\u{05E9}") === IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT);
var_dump(IntlChar::charDirection("+") === IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR);
var_dump(IntlChar::charDirection(".") === IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(true)
bool(true)


Find Unicode character by name and return its code point value

  • « IntlChar::charDirection
  • IntlChar::charMirror »
  • PHP Manual
  • IntlChar
  • Find Unicode character by name and return its code point value

IntlChar::charFromName

(PHP 7)

IntlChar::charFromName — Find Unicode character by name and return its code point value

Beschreibung

public static IntlChar::charFromName ( string $characterName , int $nameChoice = IntlChar::UNICODE_CHAR_NAME ) : int

Finds a Unicode character by its name and returns its code point value.

The name is matched exactly and completely. If the name does not correspond to a code point, null is returned.

A Unicode 1.0 name is matched only if it differs from the modern name. Unicode names are all uppercase. Extended names are lowercase followed by an uppercase hexadecimal number, and within angle brackets.

Parameter-Liste

characterName

Full name of the Unicode character.

nameChoice

Which set of names to use for the lookup. Can be any of these constants:

  • IntlChar::UNICODE_CHAR_NAME (default)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Rückgabewerte

The Unicode value of the code point with the given name (as an int), or null if there is no such code point.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::charFromName("LATIN CAPITAL LETTER A"));
var_dump(IntlChar::charFromName("SNOWMAN"));
var_dump(IntlChar::charFromName("RECYCLING SYMBOL FOR TYPE-1 PLASTICS"));
var_dump(IntlChar::charFromName("A RANDOM STRING WHICH DOESN'T CORRESPOND TO ANY UNICODE CHARACTER"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(65)
int(9731)
int(9843)
bool(false)

Siehe auch

  • IntlChar::charName() - Retrieve the name of a Unicode character
  • IntlChar::enumCharNames() - Enumerate all assigned Unicode characters within a range


Get the "mirror-image" character for a code point

  • « IntlChar::charFromName
  • IntlChar::charName »
  • PHP Manual
  • IntlChar
  • Get the "mirror-image" character for a code point

IntlChar::charMirror

(PHP 7)

IntlChar::charMirror — Get the "mirror-image" character for a code point

Beschreibung

public static IntlChar::charMirror ( mixed $codepoint ) : mixed

Maps the specified character to a "mirror-image" character.

For characters with the Bidi_Mirrored property, implementations sometimes need a "poor man's" mapping to another Unicode character (code point) such that the default glyph may serve as the mirror-image of the default glyph of the specified character. This is useful for text conversion to and from codepages with visual order, and for displays without glyph selection capabilities.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns another Unicode code point that may serve as a mirror-image substitute, or codepoint itself if there is no such mapping or codepoint does not have the Bidi_Mirrored property.

Der Rückgabetyp ist int, außer der Codepoint wurde als UTF-8-string übergeben, in welchem Fall ein string zurückgegeben wird.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::charMirror("A"));
var_dump(IntlChar::charMirror("<"));
var_dump(IntlChar::charMirror("("));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(1) "A"
string(1) ">"
string(2) ")"

Siehe auch

  • IntlChar::isMirrored() - Check if code point has the Bidi_Mirrored property
  • IntlChar::PROPERTY_BIDI_MIRRORED


Retrieve the name of a Unicode character

  • « IntlChar::charMirror
  • IntlChar::charType »
  • PHP Manual
  • IntlChar
  • Retrieve the name of a Unicode character

IntlChar::charName

(PHP 7)

IntlChar::charName — Retrieve the name of a Unicode character

Beschreibung

public static IntlChar::charName ( mixed $codepoint , int $nameChoice = IntlChar::UNICODE_CHAR_NAME ) : string

Retrieves the name of a Unicode character.

Depending on nameChoice, the resulting character name is the "modern" name or the name that was defined in Unicode version 1.0. The name contains only "invariant" characters like A-Z, 0-9, space, and '-'. Unicode 1.0 names are only retrieved if they are different from the modern names and if ICU contains the data for them.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

nameChoice

Which set of names to use for the lookup. Can be any of these constants:

  • IntlChar::UNICODE_CHAR_NAME (default)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Rückgabewerte

The corresponding name, or an empty string if there is no name for this character, or null if there is no such code point.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::charName("."));
var_dump(IntlChar::charName(".", IntlChar::UNICODE_CHAR_NAME));
var_dump(IntlChar::charName("\u{2603}"));
var_dump(IntlChar::charName("\u{0000}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(9) "FULL STOP"
string(9) "FULL STOP"
string(7) "SNOWMAN"
string(0) ""

Siehe auch

  • IntlChar::charFromName() - Find Unicode character by name and return its code point value
  • IntlChar::enumCharNames() - Enumerate all assigned Unicode characters within a range


Get the general category value for a code point

  • « IntlChar::charName
  • IntlChar::chr »
  • PHP Manual
  • IntlChar
  • Get the general category value for a code point

IntlChar::charType

(PHP 7)

IntlChar::charType — Get the general category value for a code point

Beschreibung

public static IntlChar::charType ( mixed $codepoint ) : int

Returns the general category value for the code point.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns the general category type, which may be one of the following constants:

  • IntlChar::CHAR_CATEGORY_UNASSIGNED
  • IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES
  • IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER
  • IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER
  • IntlChar::CHAR_CATEGORY_TITLECASE_LETTER
  • IntlChar::CHAR_CATEGORY_MODIFIER_LETTER
  • IntlChar::CHAR_CATEGORY_OTHER_LETTER
  • IntlChar::CHAR_CATEGORY_NON_SPACING_MARK
  • IntlChar::CHAR_CATEGORY_ENCLOSING_MARK
  • IntlChar::CHAR_CATEGORY_COMBINING_SPACING_MARK
  • IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER
  • IntlChar::CHAR_CATEGORY_LETTER_NUMBER
  • IntlChar::CHAR_CATEGORY_OTHER_NUMBER
  • IntlChar::CHAR_CATEGORY_SPACE_SEPARATOR
  • IntlChar::CHAR_CATEGORY_LINE_SEPARATOR
  • IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR
  • IntlChar::CHAR_CATEGORY_CONTROL_CHAR
  • IntlChar::CHAR_CATEGORY_FORMAT_CHAR
  • IntlChar::CHAR_CATEGORY_PRIVATE_USE_CHAR
  • IntlChar::CHAR_CATEGORY_SURROGATE
  • IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_START_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_END_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_CONNECTOR_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_MATH_SYMBOL
  • IntlChar::CHAR_CATEGORY_CURRENCY_SYMBOL
  • IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL
  • IntlChar::CHAR_CATEGORY_OTHER_SYMBOL
  • IntlChar::CHAR_CATEGORY_INITIAL_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_FINAL_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_CHAR_CATEGORY_COUNT

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::charType("A") === IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER);
var_dump(IntlChar::charType(".") === IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION);
var_dump(IntlChar::charType("\t") === IntlChar::CHAR_CATEGORY_CONTROL_CHAR);
var_dump(IntlChar::charType("\u{2603}") === IntlChar::CHAR_CATEGORY_OTHER_SYMBOL);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(true)
bool(true)


Return Unicode character by code point value

  • « IntlChar::charType
  • IntlChar::digit »
  • PHP Manual
  • IntlChar
  • Return Unicode character by code point value

IntlChar::chr

(PHP 7)

IntlChar::chr — Return Unicode character by code point value

Beschreibung

public static IntlChar::chr ( mixed $codepoint ) : string

Returns a string containing the character specified by the Unicode code point value.

This function compliments IntlChar::ord().

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

A string containing the single character specified by the Unicode code point value.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
$values = ["A", 63, 123, 9731];
foreach ($values as $value) {
    var_dump(IntlChar::chr($value));
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(1) "A"
string(1) "?"
string(1) "{"
string(3) "?"

Siehe auch

  • IntlChar::ord() - Return Unicode code point value of character
  • chr() - Erzeugt eine Ein-Byte-Zeichenkette aus einer Zahl


Get the decimal digit value of a code point for a given radix

  • « IntlChar::chr
  • IntlChar::enumCharNames »
  • PHP Manual
  • IntlChar
  • Get the decimal digit value of a code point for a given radix

IntlChar::digit

(PHP 7)

IntlChar::digit — Get the decimal digit value of a code point for a given radix

Beschreibung

public static IntlChar::digit ( string $codepoint , int $radix = 10 ) : int

Returns the decimal digit value of the code point in the specified radix.

If the radix is not in the range 2<=radix<=36 or if the value of codepoint is not a valid digit in the specified radix, false is returned. A character is a valid digit if at least one of the following is true:

  • The character has a decimal digit value. Such characters have the general category "Nd" (decimal digit numbers) and a Numeric_Type of Decimal. In this case the value is the character's decimal digit value.
  • The character is one of the uppercase Latin letters 'A' through 'Z'. In this case the value is c-'A'+10.
  • The character is one of the lowercase Latin letters 'a' through 'z'. In this case the value is ch-'a'+10.
  • Latin letters from both the ASCII range (0061..007A, 0041..005A) as well as from the Fullwidth ASCII range (FF41..FF5A, FF21..FF3A) are recognized.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

radix

The radix (defaults to 10).

Rückgabewerte

Returns the numeric value represented by the character in the specified radix, or false if there is no value or if the value exceeds the radix.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::digit("0"));
var_dump(IntlChar::digit("3"));
var_dump(IntlChar::digit("A"));
var_dump(IntlChar::digit("A", 16));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)
int(3)
bool(false)
int(10)

Siehe auch

  • IntlChar::forDigit() - Get character representation for a given digit and radix
  • IntlChar::charDigitValue() - Get the decimal digit value of a decimal digit character
  • IntlChar::isdigit() - Check if code point is a digit character
  • IntlChar::PROPERTY_NUMERIC_TYPE


Enumerate all assigned Unicode characters within a range

  • « IntlChar::digit
  • IntlChar::enumCharTypes »
  • PHP Manual
  • IntlChar
  • Enumerate all assigned Unicode characters within a range

IntlChar::enumCharNames

(PHP 7)

IntlChar::enumCharNames — Enumerate all assigned Unicode characters within a range

Beschreibung

public static IntlChar::enumCharNames ( mixed $start , mixed $limit , callable $callback , int $nameChoice = IntlChar::UNICODE_CHAR_NAME ) : void

Enumerate all assigned Unicode characters between the start and limit code points (start inclusive, limit exclusive) and call a function for each, passing the code point value and the character name.

For Unicode 1.0 names, only those are enumerated that differ from the modern names.

Parameter-Liste

start

The first code point in the enumeration range.

limit

One more than the last code point in the enumeration range (the first one after the range).

callback

The function that is to be called for each character name. The following three arguments will be passed into it:

  • int $codepoint - The numeric code point value
  • int $nameChoice - The same value as the nameChoice parameter below
  • string $name - The name of the character

nameChoice

Selector for which kind of names to enumerate. Can be any of these constants:

  • IntlChar::UNICODE_CHAR_NAME (default)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Enumerating over a sample range of code points

<?php
IntlChar::enumCharNames(0x2600, 0x2610, function($codepoint, $nameChoice, $name) {
    printf("U+%04x %s\n", $codepoint, $name);
});
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

U+2600 BLACK SUN WITH RAYS
U+2601 CLOUD
U+2602 UMBRELLA
U+2603 SNOWMAN
U+2604 COMET
U+2605 BLACK STAR
U+2606 WHITE STAR
U+2607 LIGHTNING
U+2608 THUNDERSTORM
U+2609 SUN
U+260a ASCENDING NODE
U+260b DESCENDING NODE
U+260c CONJUNCTION
U+260d OPPOSITION
U+260e BLACK TELEPHONE
U+260f WHITE TELEPHONE

Siehe auch

  • IntlChar::charName() - Retrieve the name of a Unicode character
  • IntlChar::charFromName() - Find Unicode character by name and return its code point value


Enumerate all code points with their Unicode general categories

  • « IntlChar::enumCharNames
  • IntlChar::foldCase »
  • PHP Manual
  • IntlChar
  • Enumerate all code points with their Unicode general categories

IntlChar::enumCharTypes

(PHP 7)

IntlChar::enumCharTypes — Enumerate all code points with their Unicode general categories

Beschreibung

public static IntlChar::enumCharTypes ( callable $callback ) : void

Enumerates efficiently all code points with their Unicode general categories. This is useful for building data structures, for enumerating all assigned code points, etc.

For each contiguous range of code points with a given general category ("character type"), the callback function is called. Adjacent ranges have different types. The Unicode Standard guarantees that the numeric value of the type is 0..31.

Parameter-Liste

callback

The function that is to be called for each contiguous range of code points with the same general category. The following three arguments will be passed into it:

  • int $start - The starting code point of the range
  • int $end - The ending code point of the range
  • int $name - The category type (one of the IntlChar::CHAR_CATEGORY_* constants)

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Enumerating over a sample range of code points

<?php
IntlChar::enumCharTypes(function($start, $end, $type) {
    printf("U+%04x through U+%04x are in category %d\n", $start, $end, $type);
});
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

U+0000 through U+0020 are in category 15
U+0020 through U+0021 are in category 12
U+0021 through U+0024 are in category 23
U+0024 through U+0025 are in category 25
U+0025 through U+0028 are in category 23
U+0028 through U+0029 are in category 20
U+0029 through U+002a are in category 21
U+002a through U+002b are in category 23
U+002b through U+002c are in category 24
U+002c through U+002d are in category 23
U+002d through U+002e are in category 19
U+002e through U+0030 are in category 23
U+0030 through U+003a are in category 9
...


Perform case folding on a code point

  • « IntlChar::enumCharTypes
  • IntlChar::forDigit »
  • PHP Manual
  • IntlChar
  • Perform case folding on a code point

IntlChar::foldCase

(PHP 7)

IntlChar::foldCase — Perform case folding on a code point

Beschreibung

public static IntlChar::foldCase ( mixed $codepoint , int $options = IntlChar::FOLD_CASE_DEFAULT ) : mixed

The given character is mapped to its case folding equivalent; if the character has no case folding equivalent, the character itself is returned.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

options

Either IntlChar::FOLD_CASE_DEFAULT (default) or IntlChar::FOLD_CASE_EXCLUDE_SPECIAL_I.

Rückgabewerte

Returns the Simple_Case_Folding of the code point, if any; otherwise the code point itself.


Get character representation for a given digit and radix

  • « IntlChar::foldCase
  • IntlChar::getBidiPairedBracket »
  • PHP Manual
  • IntlChar
  • Get character representation for a given digit and radix

IntlChar::forDigit

(PHP 7)

IntlChar::forDigit — Get character representation for a given digit and radix

Beschreibung

public static IntlChar::forDigit ( int $digit , int $radix = 10 ) : int

Determines the character representation for a specific digit in the specified radix.

If the value of radix is not a valid radix, or the value of digit is not a valid digit in the specified radix, the null character (U+0000) is returned.

The radix argument is valid if it is greater than or equal to 2 and less than or equal to 36. The digit argument is valid if 0 <= digit < radix.

If the digit is less than 10, then '0' + digit is returned. Otherwise, the value 'a' + digit - 10 is returned.

Parameter-Liste

digit

The number to convert to a character.

radix

The radix (defaults to 10).

Rückgabewerte

The character representation (as a string) of the specified digit in the specified radix.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::forDigit(0));
var_dump(IntlChar::forDigit(3));
var_dump(IntlChar::forDigit(3, 10));
var_dump(IntlChar::forDigit(10));
var_dump(IntlChar::forDigit(10, 16));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(48)
int(51)
int(51)
int(0)
int(97)

Siehe auch

  • IntlChar::digit() - Get the decimal digit value of a code point for a given radix
  • IntlChar::charDigitValue() - Get the decimal digit value of a decimal digit character
  • IntlChar::isdigit() - Check if code point is a digit character
  • IntlChar::PROPERTY_NUMERIC_TYPE


Get the paired bracket character for a code point

  • « IntlChar::forDigit
  • IntlChar::getBlockCode »
  • PHP Manual
  • IntlChar
  • Get the paired bracket character for a code point

IntlChar::getBidiPairedBracket

(PHP 7)

IntlChar::getBidiPairedBracket — Get the paired bracket character for a code point

Beschreibung

public static IntlChar::getBidiPairedBracket ( mixed $codepoint ) : mixed

Maps the specified character to its paired bracket character.

For Bidi_Paired_Bracket_Type!=None, this is the same as IntlChar::charMirror(). Otherwise codepoint itself is returned.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns the paired bracket code point, or codepoint itself if there is no such mapping.

Der Rückgabetyp ist int, außer der Codepoint wurde als UTF-8-string übergeben, in welchem Fall ein string zurückgegeben wird.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::getBidiPairedBracket(91));
var_dump(IntlChar::getBidiPairedBracket('['));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(93)
string(1) "]"

Siehe auch

  • IntlChar::charMirror() - Get the "mirror-image" character for a code point
  • IntlChar::PROPERTY_BIDI_PAIRED_BRACKET
  • IntlChar::PROPERTY_BIDI_PAIRED_BRACKET_TYPE


Get the Unicode allocation block containing a code point

  • « IntlChar::getBidiPairedBracket
  • IntlChar::getCombiningClass »
  • PHP Manual
  • IntlChar
  • Get the Unicode allocation block containing a code point

IntlChar::getBlockCode

(PHP 7)

IntlChar::getBlockCode — Get the Unicode allocation block containing a code point

Beschreibung

public static IntlChar::getBlockCode ( mixed $codepoint ) : int

Returns the Unicode allocation block that contains the character.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns the block value for codepoint. See the IntlChar::BLOCK_CODE_* constants for possible return values.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::getBlockCode("A") === IntlChar::BLOCK_CODE_BASIC_LATIN);
var_dump(IntlChar::getBlockCode("F") === IntlChar::BLOCK_CODE_GREEK);
var_dump(IntlChar::getBlockCode("\u{2603}") === IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(true)


Get the combining class of a code point

  • « IntlChar::getBlockCode
  • IntlChar::getFC_NFKC_Closure »
  • PHP Manual
  • IntlChar
  • Get the combining class of a code point

IntlChar::getCombiningClass

(PHP 7)

IntlChar::getCombiningClass — Get the combining class of a code point

Beschreibung

public static IntlChar::getCombiningClass ( mixed $codepoint ) : int

Returns the combining class of the code point.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns the combining class of the character.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::getCombiningClass("A"));
var_dump(IntlChar::getCombiningClass("\u{0334}"));
var_dump(IntlChar::getCombiningClass("\u{0358}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)
int(1)
int(232)


Get the FC_NFKC_Closure property for a code point

  • « IntlChar::getCombiningClass
  • IntlChar::getIntPropertyMaxValue »
  • PHP Manual
  • IntlChar
  • Get the FC_NFKC_Closure property for a code point

IntlChar::getFC_NFKC_Closure

(PHP 7)

IntlChar::getFC_NFKC_Closure — Get the FC_NFKC_Closure property for a code point

Beschreibung

public static IntlChar::getFC_NFKC_Closure ( mixed $codepoint ) : string

Gets the FC_NFKC_Closure property string for a character.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns the FC_NFKC_Closure property string for the codepoint, or an empty string if there is none.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::getFC_NFKC_Closure("\u{2121}"));
var_dump(IntlChar::getFC_NFKC_Closure("\u{1D2D}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "tel"
string(2) "æ"


Get the max value for a Unicode property

  • « IntlChar::getFC_NFKC_Closure
  • IntlChar::getIntPropertyMinValue »
  • PHP Manual
  • IntlChar
  • Get the max value for a Unicode property

IntlChar::getIntPropertyMaxValue

(PHP 7)

IntlChar::getIntPropertyMaxValue — Get the max value for a Unicode property

Beschreibung

public static IntlChar::getIntPropertyMaxValue ( int $property ) : int

Gets the maximum value for an enumerated/integer/binary Unicode property.

Parameter-Liste

property

Die Unicode-Eigenschaft, die gesucht werden soll (siehe die IntlChar::PROPERTY_* Konstanten).

Rückgabewerte

The maximum value returned by IntlChar::getIntPropertyValue() for a Unicode property. <=0 if the property selector is out of range.

Beispiele

Beispiel #1 Testen unterschiedlicher Eigenschaften

<?php
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_SCRIPT));
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_IDEOGRAPHIC));
var_dump(IntlChar::getIntPropertyMaxValue(999999999)); // Some made-up value
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(22)
int(166)
int(1)
int(-1)

Siehe auch

  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::getIntPropertyMinValue() - Get the min value for a Unicode property
  • IntlChar::getIntPropertyValue() - Get the value for a Unicode property for a code point
  • IntlChar::getUnicodeVersion() - Get the Unicode version


Get the min value for a Unicode property

  • « IntlChar::getIntPropertyMaxValue
  • IntlChar::getIntPropertyValue »
  • PHP Manual
  • IntlChar
  • Get the min value for a Unicode property

IntlChar::getIntPropertyMinValue

(PHP 7)

IntlChar::getIntPropertyMinValue — Get the min value for a Unicode property

Beschreibung

public static IntlChar::getIntPropertyMinValue ( int $property ) : int

Gets the minimum value for an enumerated/integer/binary Unicode property.

Parameter-Liste

property

Die Unicode-Eigenschaft, die gesucht werden soll (siehe die IntlChar::PROPERTY_* Konstanten).

Rückgabewerte

The minimum value returned by IntlChar::getIntPropertyValue() for a Unicode property. 0 if the property selector is out of range.

Beispiele

Beispiel #1 Testen unterschiedlicher Eigenschaften

<?php
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_SCRIPT));
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_IDEOGRAPHIC));
var_dump(IntlChar::getIntPropertyMinValue(999999999)); // Some made-up value
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)
int(0)
int(0)
int(0)

Siehe auch

  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::getIntPropertyMaxValue() - Get the max value for a Unicode property
  • IntlChar::getIntPropertyValue() - Get the value for a Unicode property for a code point
  • IntlChar::getUnicodeVersion() - Get the Unicode version


Get the value for a Unicode property for a code point

  • « IntlChar::getIntPropertyMinValue
  • IntlChar::getNumericValue »
  • PHP Manual
  • IntlChar
  • Get the value for a Unicode property for a code point

IntlChar::getIntPropertyValue

(PHP 7)

IntlChar::getIntPropertyValue — Get the value for a Unicode property for a code point

Beschreibung

public static IntlChar::getIntPropertyValue ( mixed $codepoint , int $property ) : int

Gets the property value for an enumerated or integer Unicode property for a code point. Also returns binary and mask property values.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

property

Die Unicode-Eigenschaft, die gesucht werden soll (siehe die IntlChar::PROPERTY_* Konstanten).

Rückgabewerte

Returns the numeric value that is directly the property value or, for enumerated properties, corresponds to the numeric value of the enumerated constant of the respective property value enumeration type.

Returns 0 or 1 (for false/true) for binary Unicode properties.

Returns a bit-mask for mask properties.

Returns 0 if property is out of bounds or if the Unicode version does not have data for the property at all, or not for this code point.

Beispiele

Beispiel #1 Testen unterschiedlicher Eigenschaften

<?php
var_dump(IntlChar::getIntPropertyValue("A", IntlChar::PROPERTY_ALPHABETIC) === 1);
var_dump(IntlChar::getIntPropertyValue("[", IntlChar::PROPERTY_BIDI_MIRRORED) === 1);
var_dump(IntlChar::getIntPropertyValue("F", IntlChar::PROPERTY_BLOCK) === IntlChar::BLOCK_CODE_GREEK);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(true)

Siehe auch

  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::getIntPropertyMinValue() - Get the min value for a Unicode property
  • IntlChar::getIntPropertyMaxValue() - Get the max value for a Unicode property
  • IntlChar::getUnicodeVersion() - Get the Unicode version


Get the numeric value for a Unicode code point

  • « IntlChar::getIntPropertyValue
  • IntlChar::getPropertyEnum »
  • PHP Manual
  • IntlChar
  • Get the numeric value for a Unicode code point

IntlChar::getNumericValue

(PHP 7)

IntlChar::getNumericValue — Get the numeric value for a Unicode code point

Beschreibung

public static IntlChar::getNumericValue ( mixed $codepoint ) : float

Gets the numeric value for a Unicode code point as defined in the Unicode Character Database.

For characters without any numeric values in the Unicode Character Database, this function will return IntlChar::NO_NUMERIC_VALUE.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Numeric value of codepoint, or IntlChar::NO_NUMERIC_VALUE if none is defined. This constant was added in PHP 7.0.6, prior to this version the literal value (float)-123456789 may be used instead.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::getNumericValue("4"));
var_dump(IntlChar::getNumericValue("x"));
var_dump(IntlChar::getNumericValue("\u{216C}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

float(4)
float(-123456789)
float(50)


Get the property constant value for a given property name

  • « IntlChar::getNumericValue
  • IntlChar::getPropertyName »
  • PHP Manual
  • IntlChar
  • Get the property constant value for a given property name

IntlChar::getPropertyEnum

(PHP 7)

IntlChar::getPropertyEnum — Get the property constant value for a given property name

Beschreibung

public static IntlChar::getPropertyEnum ( string $alias ) : int

Returns the property constant value for a given property name, as specified in the Unicode database file PropertyAliases.txt. Short, long, and any other variants are recognized.

In addition, this function maps the synthetic names "gcm" / "General_Category_Mask" to the property IntlChar::PROPERTY_GENERAL_CATEGORY_MASK. These names are not in PropertyAliases.txt.

This function compliments IntlChar::getPropertyName().

Parameter-Liste

alias

The property name to be matched. The name is compared using "loose matching" as described in PropertyAliases.txt.

Rückgabewerte

Returns an IntlChar::PROPERTY_ constant value, or IntlChar::PROPERTY_INVALID_CODE if the given name does not match any property.

Beispiele

Beispiel #1 Testen unterschiedlicher Eigenschaften

<?php
var_dump(IntlChar::getPropertyEnum('Bidi_Class') === IntlChar::PROPERTY_BIDI_CLASS);
var_dump(IntlChar::getPropertyEnum('script') === IntlChar::PROPERTY_SCRIPT);
var_dump(IntlChar::getPropertyEnum('IDEOGRAPHIC') === IntlChar::PROPERTY_IDEOGRAPHIC);
var_dump(IntlChar::getPropertyEnum('Some made-up string') === IntlChar::PROPERTY_INVALID_CODE);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(true)
bool(true)

Siehe auch

  • IntlChar::getPropertyName() - Get the Unicode name for a property


Get the Unicode name for a property

  • « IntlChar::getPropertyEnum
  • IntlChar::getPropertyValueEnum »
  • PHP Manual
  • IntlChar
  • Get the Unicode name for a property

IntlChar::getPropertyName

(PHP 7)

IntlChar::getPropertyName — Get the Unicode name for a property

Beschreibung

public static IntlChar::getPropertyName ( int $property , int $nameChoice = IntlChar::LONG_PROPERTY_NAME ) : string

Returns the Unicode name for a given property, as given in the Unicode database file PropertyAliases.txt.

In addition, this function maps the property IntlChar::PROPERTY_GENERAL_CATEGORY_MASK to the synthetic names "gcm" / "General_Category_Mask". These names are not in PropertyAliases.txt.

This function compliments IntlChar::getPropertyEnum().

Parameter-Liste

property

Die Unicode-Eigenschaft, die gesucht werden soll (siehe die IntlChar::PROPERTY_* Konstanten).

IntlChar::PROPERTY_INVALID_CODE should not be used. Also, if property is out of range, false is returned.

nameChoice

Selector for which name to get. If out of range, false is returned.

All properties have a long name. Most have a short name, but some do not. Unicode allows for additional names; if present these will be returned by adding 1, 2, etc. to IntlChar::LONG_PROPERTY_NAME.

Rückgabewerte

Returns the name, or false if either the property or the nameChoice is out of range.

If a given nameChoice returns false, then all larger values of nameChoice will return false, with one exception: if false is returned for IntlChar::SHORT_PROPERTY_NAME, then IntlChar::LONG_PROPERTY_NAME (and higher) may still return a non-false value.

Beispiele

Beispiel #1 Testen unterschiedlicher Eigenschaften

<?php
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::SHORT_PROPERTY_NAME));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::LONG_PROPERTY_NAME));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::LONG_PROPERTY_NAME + 1));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(10) "Bidi_Class"
string(2) "bc"
string(10) "Bidi_Class"
bool(false)

Siehe auch

  • IntlChar::getPropertyEnum() - Get the property constant value for a given property name


Get the property value for a given value name

  • « IntlChar::getPropertyName
  • IntlChar::getPropertyValueName »
  • PHP Manual
  • IntlChar
  • Get the property value for a given value name

IntlChar::getPropertyValueEnum

(PHP 7)

IntlChar::getPropertyValueEnum — Get the property value for a given value name

Beschreibung

public static IntlChar::getPropertyValueEnum ( int $property , string $name ) : int

Returns the property value integer for a given value name, as specified in the Unicode database file PropertyValueAliases.txt. Short, long, and any other variants are recognized.

Hinweis:

Some of the names in PropertyValueAliases.txt will only be recognized with IntlChar::PROPERTY_GENERAL_CATEGORY_MASK, not IntlChar::PROPERTY_GENERAL_CATEGORY. These include:

  • "C" / "Other"
  • "L" / "Letter"
  • "LC" / "Cased_Letter"
  • "M" / "Mark"
  • "N" / "Number"
  • "P" / "Punctuation"
  • "S" / "Symbol"
  • "Z" / "Separator"

Parameter-Liste

property

Die Unicode-Eigenschaft, die gesucht werden soll (siehe die IntlChar::PROPERTY_* Konstanten).

If out of range, or this method doesn't work with the given value, IntlChar::PROPERTY_INVALID_CODE is returned.

name

The value name to be matched. The name is compared using "loose matching" as described in PropertyValueAliases.txt.

Rückgabewerte

Returns the corresponding value integer, or IntlChar::PROPERTY_INVALID_CODE if the given name does not match any value of the given property, or if the property is invalid.

Beispiele

Beispiel #1 Testen unterschiedlicher Eigenschaften

<?php
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BLOCK, 'greek') === IntlChar::BLOCK_CODE_GREEK);
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BIDI_CLASS, 'RIGHT_TO_LEFT') === IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT);
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BIDI_CLASS, 'some made-up string') === IntlChar::PROPERTY_INVALID_CODE);
var_dump(IntlChar::getPropertyValueEnum(123456789, 'RIGHT_TO_LEFT') === IntlChar::PROPERTY_INVALID_CODE);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(true)
bool(true)


Get the Unicode name for a property value

  • « IntlChar::getPropertyValueEnum
  • IntlChar::getUnicodeVersion »
  • PHP Manual
  • IntlChar
  • Get the Unicode name for a property value

IntlChar::getPropertyValueName

(PHP 7)

IntlChar::getPropertyValueName — Get the Unicode name for a property value

Beschreibung

public static IntlChar::getPropertyValueName ( int $property , int $value , int $nameChoice = IntlChar::LONG_PROPERTY_NAME ) : string

Returns the Unicode name for a given property value, as given in the Unicode database file PropertyValueAliases.txt.

Hinweis:

Some of the names in PropertyValueAliases.txt can only be retrieved using IntlChar::PROPERTY_GENERAL_CATEGORY_MASK, not IntlChar::PROPERTY_GENERAL_CATEGORY. These include:

  • "C" / "Other"
  • "L" / "Letter"
  • "LC" / "Cased_Letter"
  • "M" / "Mark"
  • "N" / "Number"
  • "P" / "Punctuation"
  • "S" / "Symbol"
  • "Z" / "Separator"

Parameter-Liste

property

Die Unicode-Eigenschaft, die gesucht werden soll (siehe die IntlChar::PROPERTY_* Konstanten).

If out of range, or this method doesn't work with the given value, false is returned.

value

Selector for a value for the given property. If out of range, false is returned.

In general, valid values range from 0 up to some maximum. There are a couple exceptions:

  • IntlChar::PROPERTY_BLOCK values begin at the non-zero value IntlChar::BLOCK_CODE_BASIC_LATIN
  • IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS values are not contiguous and range from 0..240.

nameChoice

Selector for which name to get. If out of range, false is returned.

All values have a long name. Most have a short name, but some do not. Unicode allows for additional names; if present these will be returned by adding 1, 2, etc. to IntlChar::LONG_PROPERTY_NAME.

Rückgabewerte

Returns the name, or false if either the property or the nameChoice is out of range.

If a given nameChoice returns false, then all larger values of nameChoice will return false, with one exception: if false is returned for IntlChar::SHORT_PROPERTY_NAME, then IntlChar::LONG_PROPERTY_NAME (and higher) may still return a non-false value.

Beispiele

Beispiel #1 Testen unterschiedlicher Eigenschaften

<?php
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::SHORT_PROPERTY_NAME));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::LONG_PROPERTY_NAME));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::LONG_PROPERTY_NAME + 1));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(16) "Greek_And_Coptic"
string(5) "Greek"
string(16) "Greek_And_Coptic"
bool(false)


Get the Unicode version

  • « IntlChar::getPropertyValueName
  • IntlChar::hasBinaryProperty »
  • PHP Manual
  • IntlChar
  • Get the Unicode version

IntlChar::getUnicodeVersion

(PHP 7)

IntlChar::getUnicodeVersion — Get the Unicode version

Beschreibung

public static IntlChar::getUnicodeVersion ( ) : array

Gets the Unicode version information.

The version array is filled in with the version information for the Unicode standard that is currently used by ICU. For example, Unicode version 3.1.1 is represented as an array with the values [3, 1, 1, 0].

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array containing the Unicode version number.

Beispiele

Beispiel #1 Testen unterschiedlicher Eigenschaften

<?php
var_dump(IntlChar::getUnicodeVersion());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  [0]=>
  int(7)
  [1]=>
  int(0)
  [2]=>
  int(0)
  [3]=>
  int(0)
}

Siehe auch

  • IntlChar::charAge() - Get the "age" of the code point


Check a binary Unicode property for a code point

  • « IntlChar::getUnicodeVersion
  • IntlChar::isalnum »
  • PHP Manual
  • IntlChar
  • Check a binary Unicode property for a code point

IntlChar::hasBinaryProperty

(PHP 7)

IntlChar::hasBinaryProperty — Check a binary Unicode property for a code point

Beschreibung

public static IntlChar::hasBinaryProperty ( mixed $codepoint , int $property ) : bool

Checks a binary Unicode property for a code point.

Unicode, especially in version 3.2, defines many more properties than the original set in UnicodeData.txt.

The properties APIs are intended to reflect Unicode properties as defined in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR). For details about the properties see » http://www.unicode.org/ucd/. For names of Unicode properties see the UCD file PropertyAliases.txt.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

property

Die Unicode-Eigenschaft, die gesucht werden soll (siehe die IntlChar::PROPERTY_* Konstanten).

Rückgabewerte

Returns true or false according to the binary Unicode property value for codepoint. Also false if property is out of bounds or if the Unicode version does not have data for the property at all, or not for this code point.

Beispiele

Beispiel #1 Testen unterschiedlicher Eigenschaften

<?php
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_ALPHABETIC));
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_CASE_SENSITIVE));
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_BIDI_MIRRORED));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_ALPHABETIC));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_CASE_SENSITIVE));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_BIDI_MIRRORED));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)

Siehe auch

  • IntlChar::getIntPropertyValue() - Get the value for a Unicode property for a code point
  • IntlChar::getUnicodeVersion() - Get the Unicode version


Check if code point is an alphanumeric character

  • « IntlChar::hasBinaryProperty
  • IntlChar::isalpha »
  • PHP Manual
  • IntlChar
  • Check if code point is an alphanumeric character

IntlChar::isalnum

(PHP 7)

IntlChar::isalnum — Check if code point is an alphanumeric character

Beschreibung

public static IntlChar::isalnum ( mixed $codepoint ) : bool

Determines whether the specified code point is an alphanumeric character (letter or digit). true for characters with general categories "L" (letters) and "Nd" (decimal digit numbers).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is an alphanumeric character, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isalnum("A"));
var_dump(IntlChar::isalnum("1"));
var_dump(IntlChar::isalnum("\u{2603}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(false)

Siehe auch

  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::isdigit() - Check if code point is a digit character


Check if code point is a letter character

  • « IntlChar::isalnum
  • IntlChar::isbase »
  • PHP Manual
  • IntlChar
  • Check if code point is a letter character

IntlChar::isalpha

(PHP 7)

IntlChar::isalpha — Check if code point is a letter character

Beschreibung

public static IntlChar::isalpha ( mixed $codepoint ) : bool

Determines whether the specified code point is a letter character. true for general categories "L" (letters).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a letter character, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isalpha("A"));
var_dump(IntlChar::isalpha("1"));
var_dump(IntlChar::isalpha("\u{2603}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(false)

Siehe auch

  • IntlChar::isalnum() - Check if code point is an alphanumeric character
  • IntlChar::isdigit() - Check if code point is a digit character


Check if code point is a base character

  • « IntlChar::isalpha
  • IntlChar::isblank »
  • PHP Manual
  • IntlChar
  • Check if code point is a base character

IntlChar::isbase

(PHP 7)

IntlChar::isbase — Check if code point is a base character

Beschreibung

public static IntlChar::isbase ( mixed $codepoint ) : bool

Determines whether the specified code point is a base character. true for general categories "L" (letters), "N" (numbers), "Mc" (spacing combining marks), and "Me" (enclosing marks).

Hinweis:

This is different from the Unicode definition in chapter 3.5, conformance clause D13, which defines base characters to be all characters (not Cn) that do not graphically combine with preceding characters (M) and that are neither control (Cc) or format (Cf) characters.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a base character, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isbase("A"));
var_dump(IntlChar::isbase("1"));
var_dump(IntlChar::isbase("\u{2603}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(false)

Siehe auch

  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::isdigit() - Check if code point is a digit character


Check if code point is a "blank" or "horizontal space" character

  • « IntlChar::isbase
  • IntlChar::iscntrl »
  • PHP Manual
  • IntlChar
  • Check if code point is a "blank" or "horizontal space" character

IntlChar::isblank

(PHP 7)

IntlChar::isblank — Check if code point is a "blank" or "horizontal space" character

Beschreibung

public static IntlChar::isblank ( mixed $codepoint ) : bool

Determines whether the specified code point is a "blank" or "horizontal space", a character that visibly separates words on a line.

The following are equivalent definitions:

  • true for Unicode White_Space characters except for "vertical space controls" where "vertical space controls" are the following characters: U+000A (LF) U+000B (VT) U+000C (FF) U+000D (CR) U+0085 (NEL) U+2028 (LS) U+2029 (PS)
  • true for U+0009 (TAB) and characters with general category "Zs" (space separators) except Zero Width Space (ZWSP, U+200B).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is either a "blank" or "horizontal space" character, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isblank("A"));
var_dump(IntlChar::isblank(" "));
var_dump(IntlChar::isblank("\t"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(true)

Siehe auch

  • IntlChar::isspace() - Check if code point is a space character
  • IntlChar::isJavaSpaceChar() - Check if code point is a space character according to Java
  • IntlChar::isUWhiteSpace() - Check if code point has the White_Space Unicode property
  • IntlChar::isWhitespace() - Check if code point is a whitespace character according to ICU


Check if code point is a control character

  • « IntlChar::isblank
  • IntlChar::isdefined »
  • PHP Manual
  • IntlChar
  • Check if code point is a control character

IntlChar::iscntrl

(PHP 7)

IntlChar::iscntrl — Check if code point is a control character

Beschreibung

public static IntlChar::iscntrl ( mixed $codepoint ) : bool

Determines whether the specified code point is a control character.

A control character is one of the following:

  • ISO 8-bit control character (U+0000..U+001f and U+007f..U+009f)
  • IntlChar::CHAR_CATEGORY_CONTROL_CHAR (Cc)
  • IntlChar::CHAR_CATEGORY_FORMAT_CHAR (Cf)
  • IntlChar::CHAR_CATEGORY_LINE_SEPARATOR (Zl)
  • IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR (Zp)

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a control character, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::iscntrl("A"));
var_dump(IntlChar::iscntrl(" "));
var_dump(IntlChar::iscntrl("\n"));
var_dump(IntlChar::iscntrl("\u{200e}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(false)
bool(true)
bool(true)

Siehe auch

  • IntlChar::isprint() - Check if code point is a printable character
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT


Check whether the code point is defined

  • « IntlChar::iscntrl
  • IntlChar::isdigit »
  • PHP Manual
  • IntlChar
  • Check whether the code point is defined

IntlChar::isdefined

(PHP 7)

IntlChar::isdefined — Check whether the code point is defined

Beschreibung

public static IntlChar::isdefined ( mixed $codepoint ) : bool

Determines whether the specified code point is "defined", which usually means that it is assigned a character.

true for general categories other than "Cn" (other, not assigned).

Hinweis:

Note that non-character code points (e.g., U+FDD0) are not "defined" (they are Cn), but surrogate code points are "defined" (Cs).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a defined character, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isdefined("A"));
var_dump(IntlChar::isdefined(" "));
var_dump(IntlChar::isdefined("\u{FDD0}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(false)

Siehe auch

  • IntlChar::isdigit() - Check if code point is a digit character
  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::isalnum() - Check if code point is an alphanumeric character
  • IntlChar::isupper() - Check if code point has the general category "Lu" (uppercase letter)
  • IntlChar::islower() - Check if code point is a lowercase letter
  • IntlChar::istitle() - Check if code point is a titlecase letter


Check if code point is a digit character

  • « IntlChar::isdefined
  • IntlChar::isgraph »
  • PHP Manual
  • IntlChar
  • Check if code point is a digit character

IntlChar::isdigit

(PHP 7)

IntlChar::isdigit — Check if code point is a digit character

Beschreibung

public static IntlChar::isdigit ( mixed $codepoint ) : bool

Determines whether the specified code point is a digit character.

true for characters with general category "Nd" (decimal digit numbers). Beginning with Unicode 4, this is the same as testing for the Numeric_Type of Decimal.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a digit character, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isdigit("A"));
var_dump(IntlChar::isdigit("1"));
var_dump(IntlChar::isdigit("\t"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(false)

Siehe auch

  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::isalnum() - Check if code point is an alphanumeric character
  • IntlChar::isxdigit() - Check if code point is a hexadecimal digit


Check if code point is a graphic character

  • « IntlChar::isdigit
  • IntlChar::isIDIgnorable »
  • PHP Manual
  • IntlChar
  • Check if code point is a graphic character

IntlChar::isgraph

(PHP 7)

IntlChar::isgraph — Check if code point is a graphic character

Beschreibung

public static IntlChar::isgraph ( mixed $codepoint ) : bool

Determines whether the specified code point is a "graphic" character (printable, excluding spaces).

true for all characters except those with general categories "Cc" (control codes), "Cf" (format controls), "Cs" (surrogates), "Cn" (unassigned), and "Z" (separators).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a "graphic" character, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isgraph("A"));
var_dump(IntlChar::isgraph("1"));
var_dump(IntlChar::isgraph("\u{2603}"));
var_dump(IntlChar::isgraph("\n"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(true)
bool(false)


Check if code point is an ignorable character

  • « IntlChar::isgraph
  • IntlChar::isIDPart »
  • PHP Manual
  • IntlChar
  • Check if code point is an ignorable character

IntlChar::isIDIgnorable

(PHP 7)

IntlChar::isIDIgnorable — Check if code point is an ignorable character

Beschreibung

public static IntlChar::isIDIgnorable ( mixed $codepoint ) : bool

Determines if the specified character should be regarded as an ignorable character in an identifier.

true for characters with general category "Cf" (format controls) as well as non-whitespace ISO controls (U+0000..U+0008, U+000E..U+001B, U+007F..U+009F).

Hinweis:

Note that Unicode just recommends to ignore Cf (format controls).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is ignorable in identifiers, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isIDIgnorable("A"));
var_dump(IntlChar::isIDIgnorable(" "));
var_dump(IntlChar::isIDIgnorable("\u{007F}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(false)
bool(true)

Siehe auch

  • IntlChar::isIDStart() - Check if code point is permissible as the first character in an identifier
  • IntlChar::isIDPart() - Check if code point is permissible in an identifier
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT


Check if code point is permissible in an identifier

  • « IntlChar::isIDIgnorable
  • IntlChar::isIDStart »
  • PHP Manual
  • IntlChar
  • Check if code point is permissible in an identifier

IntlChar::isIDPart

(PHP 7)

IntlChar::isIDPart — Check if code point is permissible in an identifier

Beschreibung

public static IntlChar::isIDPart ( mixed $codepoint ) : bool

Determines if the specified character is permissible in an identifier.

true for characters with general categories "L" (letters), "Nl" (letter numbers), "Nd" (decimal digits), "Mc" and "Mn" (combining marks), "Pc" (connecting punctuation), and u_isIDIgnorable(c).

Hinweis:

This is almost the same as Unicode's ID_Continue (IntlChar::PROPERTY_ID_CONTINUE) except that Unicode recommends to ignore Cf which is less than IntlChar::isIDIgnorable().

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is the code point may occur in an identifier, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isIDPart("A"));
var_dump(IntlChar::isIDPart("$"));
var_dump(IntlChar::isIDPart("\n"));
var_dump(IntlChar::isIDPart("\u{2603}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(false)
bool(false)

Siehe auch

  • IntlChar::isIDIgnorable() - Check if code point is an ignorable character
  • IntlChar::isIDStart() - Check if code point is permissible as the first character in an identifier
  • IntlChar::PROPERTY_ID_CONTINUE


Check if code point is permissible as the first character in an identifier

  • « IntlChar::isIDPart
  • IntlChar::isISOControl »
  • PHP Manual
  • IntlChar
  • Check if code point is permissible as the first character in an identifier

IntlChar::isIDStart

(PHP 7)

IntlChar::isIDStart — Check if code point is permissible as the first character in an identifier

Beschreibung

public static IntlChar::isIDStart ( mixed $codepoint ) : bool

Determines if the specified character is permissible as the first character in an identifier according to Unicode (The Unicode Standard, Version 3.0, chapter 5.16 Identifiers).

true for characters with general categories "L" (letters) and "Nl" (letter numbers).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint may start an identifier, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isIDStart("A"));
var_dump(IntlChar::isIDStart("$"));
var_dump(IntlChar::isIDStart("\n"));
var_dump(IntlChar::isIDStart("\u{2603}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(false)
bool(false)

Siehe auch

  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::isIDPart() - Check if code point is permissible in an identifier
  • IntlChar::PROPERTY_ID_START


Check if code point is an ISO control code

  • « IntlChar::isIDStart
  • IntlChar::isJavaIDPart »
  • PHP Manual
  • IntlChar
  • Check if code point is an ISO control code

IntlChar::isISOControl

(PHP 7)

IntlChar::isISOControl — Check if code point is an ISO control code

Beschreibung

public static IntlChar::isISOControl ( mixed $codepoint ) : bool

Determines whether the specified code point is an ISO control code.

true for U+0000..U+001f and U+007f..U+009f (general category "Cc").

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is an ISO control code, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isISOControl(" "));
var_dump(IntlChar::isISOControl("\n"));
var_dump(IntlChar::isISOControl("\u{200e}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(false)

Siehe auch

  • IntlChar::iscntrl() - Check if code point is a control character


Check if code point is permissible in a Java identifier

  • « IntlChar::isISOControl
  • IntlChar::isJavaIDStart »
  • PHP Manual
  • IntlChar
  • Check if code point is permissible in a Java identifier

IntlChar::isJavaIDPart

(PHP 7)

IntlChar::isJavaIDPart — Check if code point is permissible in a Java identifier

Beschreibung

public static IntlChar::isJavaIDPart ( mixed $codepoint ) : bool

Determines if the specified character is permissible in a Java identifier.

In addition to IntlChar::isIDPart(), true for characters with general category "Sc" (currency symbols).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint may occur in a Java identifier, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isJavaIDPart("A"));
var_dump(IntlChar::isJavaIDPart("$"));
var_dump(IntlChar::isJavaIDPart("\n"));
var_dump(IntlChar::isJavaIDPart("\u{2603}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(false)
bool(false)

Siehe auch

  • IntlChar::isIDIgnorable() - Check if code point is an ignorable character
  • IntlChar::isIDPart() - Check if code point is permissible in an identifier
  • IntlChar::isJavaIDStart() - Check if code point is permissible as the first character in a Java identifier
  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::isdigit() - Check if code point is a digit character


Check if code point is permissible as the first character in a Java identifier

  • « IntlChar::isJavaIDPart
  • IntlChar::isJavaSpaceChar »
  • PHP Manual
  • IntlChar
  • Check if code point is permissible as the first character in a Java identifier

IntlChar::isJavaIDStart

(PHP 7)

IntlChar::isJavaIDStart — Check if code point is permissible as the first character in a Java identifier

Beschreibung

public static IntlChar::isJavaIDStart ( mixed $codepoint ) : bool

Determines if the specified character is permissible as the start of a Java identifier.

In addition to IntlChar::isIDStart(), true for characters with general categories "Sc" (currency symbols) and "Pc" (connecting punctuation).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint may start a Java identifier, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isJavaIDStart("A"));
var_dump(IntlChar::isJavaIDStart("$"));
var_dump(IntlChar::isJavaIDStart("\n"));
var_dump(IntlChar::isJavaIDStart("\u{2603}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(false)
bool(false)

Siehe auch

  • IntlChar::isIDStart() - Check if code point is permissible as the first character in an identifier
  • IntlChar::isJavaIDPart() - Check if code point is permissible in a Java identifier
  • IntlChar::isalpha() - Check if code point is a letter character


Check if code point is a space character according to Java

  • « IntlChar::isJavaIDStart
  • IntlChar::islower »
  • PHP Manual
  • IntlChar
  • Check if code point is a space character according to Java

IntlChar::isJavaSpaceChar

(PHP 7)

IntlChar::isJavaSpaceChar — Check if code point is a space character according to Java

Beschreibung

public static IntlChar::isJavaSpaceChar ( mixed $codepoint ) : bool

Determine if the specified code point is a space character according to Java.

true for characters with general categories "Z" (separators), which does not include control codes (e.g., TAB or Line Feed).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a space character according to Java, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isJavaSpaceChar("A"));
var_dump(IntlChar::isJavaSpaceChar(" "));
var_dump(IntlChar::isJavaSpaceChar("\n"));
var_dump(IntlChar::isJavaSpaceChar("\t"));
var_dump(IntlChar::isJavaSpaceChar("\u{00A0}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(false)
bool(false)
bool(true)

Siehe auch

  • IntlChar::isspace() - Check if code point is a space character
  • IntlChar::isWhitespace() - Check if code point is a whitespace character according to ICU
  • IntlChar::isUWhiteSpace() - Check if code point has the White_Space Unicode property


Check if code point is a lowercase letter

  • « IntlChar::isJavaSpaceChar
  • IntlChar::isMirrored »
  • PHP Manual
  • IntlChar
  • Check if code point is a lowercase letter

IntlChar::islower

(PHP 7)

IntlChar::islower — Check if code point is a lowercase letter

Beschreibung

public static IntlChar::islower ( mixed $codepoint ) : bool

Determines whether the specified code point has the general category "Ll" (lowercase letter).

Hinweis:

This misses some characters that are also lowercase but have a different general category value. In order to include those, use IntlChar::isULowercase().

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is an Ll lowercase letter, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::islower("A"));
var_dump(IntlChar::islower("a"));
var_dump(IntlChar::islower("F"));
var_dump(IntlChar::islower("f"));
var_dump(IntlChar::islower("1"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Siehe auch

  • IntlChar::isupper() - Check if code point has the general category "Lu" (uppercase letter)
  • IntlChar::istitle() - Check if code point is a titlecase letter
  • IntlChar::tolower() - Make Unicode character lowercase
  • IntlChar::toupper() - Make Unicode character uppercase
  • IntlChar::PROPERTY_LOWERCASE


Check if code point has the Bidi_Mirrored property

  • « IntlChar::islower
  • IntlChar::isprint »
  • PHP Manual
  • IntlChar
  • Check if code point has the Bidi_Mirrored property

IntlChar::isMirrored

(PHP 7)

IntlChar::isMirrored — Check if code point has the Bidi_Mirrored property

Beschreibung

public static IntlChar::isMirrored ( mixed $codepoint ) : bool

Determines whether the code point has the Bidi_Mirrored property.

This property is set for characters that are commonly used in Right-To-Left contexts and need to be displayed with a "mirrored" glyph.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint has the Bidi_Mirrored property, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isMirrored("A"));
var_dump(IntlChar::isMirrored("<"));
var_dump(IntlChar::isMirrored("("));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(true)

Siehe auch

  • IntlChar::charMirror() - Get the "mirror-image" character for a code point
  • IntlChar::PROPERTY_BIDI_MIRRORED


Check if code point is a printable character

  • « IntlChar::isMirrored
  • IntlChar::ispunct »
  • PHP Manual
  • IntlChar
  • Check if code point is a printable character

IntlChar::isprint

(PHP 7)

IntlChar::isprint — Check if code point is a printable character

Beschreibung

public static IntlChar::isprint ( mixed $codepoint ) : bool

Determines whether the specified code point is a printable character.

true for general categories other than "C" (controls).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a printable character, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isprint("A"));
var_dump(IntlChar::isprint(" "));
var_dump(IntlChar::isprint("\n"));
var_dump(IntlChar::isprint("\u{200e}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(false)
bool(false)

Siehe auch

  • IntlChar::iscntrl() - Check if code point is a control character
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT


Check if code point is punctuation character

  • « IntlChar::isprint
  • IntlChar::isspace »
  • PHP Manual
  • IntlChar
  • Check if code point is punctuation character

IntlChar::ispunct

(PHP 7)

IntlChar::ispunct — Check if code point is punctuation character

Beschreibung

public static IntlChar::ispunct ( mixed $codepoint ) : bool

Determines whether the specified code point is a punctuation character.

true for characters with general categories "P" (punctuation).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a punctuation character, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::ispunct("."));
var_dump(IntlChar::ispunct(","));
var_dump(IntlChar::ispunct("\n"));
var_dump(IntlChar::ispunct("$"));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(false)
bool(false)


Check if code point is a space character

  • « IntlChar::ispunct
  • IntlChar::istitle »
  • PHP Manual
  • IntlChar
  • Check if code point is a space character

IntlChar::isspace

(PHP 7)

IntlChar::isspace — Check if code point is a space character

Beschreibung

public static IntlChar::isspace ( mixed $codepoint ) : bool

Determines if the specified character is a space character or not.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a space character, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isspace("A"));
var_dump(IntlChar::isspace(" "));
var_dump(IntlChar::isspace("\n"));
var_dump(IntlChar::isspace("\t"));
var_dump(IntlChar::isspace("\u{00A0}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(true)
bool(true)
bool(true)

Siehe auch

  • IntlChar::isJavaSpaceChar() - Check if code point is a space character according to Java
  • IntlChar::isWhitespace() - Check if code point is a whitespace character according to ICU
  • IntlChar::isUWhiteSpace() - Check if code point has the White_Space Unicode property


Check if code point is a titlecase letter

  • « IntlChar::isspace
  • IntlChar::isUAlphabetic »
  • PHP Manual
  • IntlChar
  • Check if code point is a titlecase letter

IntlChar::istitle

(PHP 7)

IntlChar::istitle — Check if code point is a titlecase letter

Beschreibung

public static IntlChar::istitle ( mixed $codepoint ) : bool

Determines whether the specified code point is a titlecase letter.

true for general category "Lt" (titlecase letter).

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a titlecase letter, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::istitle("A"));
var_dump(IntlChar::istitle("a"));
var_dump(IntlChar::istitle("F"));
var_dump(IntlChar::istitle("f"));
var_dump(IntlChar::istitle("1"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Siehe auch

  • IntlChar::isupper() - Check if code point has the general category "Lu" (uppercase letter)
  • IntlChar::islower() - Check if code point is a lowercase letter
  • IntlChar::totitle() - Make Unicode character titlecase


Check if code point has the Alphabetic Unicode property

  • « IntlChar::istitle
  • IntlChar::isULowercase »
  • PHP Manual
  • IntlChar
  • Check if code point has the Alphabetic Unicode property

IntlChar::isUAlphabetic

(PHP 7)

IntlChar::isUAlphabetic — Check if code point has the Alphabetic Unicode property

Beschreibung

public static IntlChar::isUAlphabetic ( mixed $codepoint ) : bool

Check if a code point has the Alphabetic Unicode property.

This is the same as IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_ALPHABETIC)

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint has the Alphabetic Unicode property, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isUAlphabetic("A"));
var_dump(IntlChar::isUAlphabetic("1"));
var_dump(IntlChar::isUAlphabetic("\u{2603}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(false)

Siehe auch

  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::PROPERTY_ALPHABETIC


Check if code point has the Lowercase Unicode property

  • « IntlChar::isUAlphabetic
  • IntlChar::isupper »
  • PHP Manual
  • IntlChar
  • Check if code point has the Lowercase Unicode property

IntlChar::isULowercase

(PHP 7)

IntlChar::isULowercase — Check if code point has the Lowercase Unicode property

Beschreibung

public static IntlChar::isULowercase ( mixed $codepoint ) : bool

Check if a code point has the Lowercase Unicode property.

This is the same as IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_LOWERCASE)

Hinweis:

This is different than IntlChar::islower() and will return true for more characters.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint has the Lowercase Unicode property, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isULowercase("A"));
var_dump(IntlChar::isULowercase("a"));
var_dump(IntlChar::isULowercase("F"));
var_dump(IntlChar::isULowercase("f"));
var_dump(IntlChar::isULowercase("1"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Siehe auch

  • IntlChar::islower() - Check if code point is a lowercase letter
  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::PROPERTY_LOWERCASE


Check if code point has the general category "Lu" (uppercase letter)

  • « IntlChar::isULowercase
  • IntlChar::isUUppercase »
  • PHP Manual
  • IntlChar
  • Check if code point has the general category "Lu" (uppercase letter)

IntlChar::isupper

(PHP 7)

IntlChar::isupper — Check if code point has the general category "Lu" (uppercase letter)

Beschreibung

public static IntlChar::isupper ( mixed $codepoint ) : bool

Determines whether the specified code point has the general category "Lu" (uppercase letter).

Hinweis:

This misses some characters that are also uppercase but have a different general category value. In order to include those, use IntlChar::isUUppercase().

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is an Lu uppercase letter, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isupper("A"));
var_dump(IntlChar::isupper("a"));
var_dump(IntlChar::isupper("F"));
var_dump(IntlChar::isupper("f"));
var_dump(IntlChar::isupper("1"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Siehe auch

  • IntlChar::islower() - Check if code point is a lowercase letter
  • IntlChar::istitle() - Check if code point is a titlecase letter
  • IntlChar::tolower() - Make Unicode character lowercase
  • IntlChar::toupper() - Make Unicode character uppercase
  • IntlChar::PROPERTY_UPPERCASE


Check if code point has the Uppercase Unicode property

  • « IntlChar::isupper
  • IntlChar::isUWhiteSpace »
  • PHP Manual
  • IntlChar
  • Check if code point has the Uppercase Unicode property

IntlChar::isUUppercase

(PHP 7)

IntlChar::isUUppercase — Check if code point has the Uppercase Unicode property

Beschreibung

public static IntlChar::isUUppercase ( mixed $codepoint ) : bool

Check if a code point has the Uppercase Unicode property.

This is the same as IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_UPPERCASE)

Hinweis:

This is different than IntlChar::isupper() and will return true for more characters.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint has the Uppercase Unicode property, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isUUppercase("A"));
var_dump(IntlChar::isUUppercase("a"));
var_dump(IntlChar::isUUppercase("F"));
var_dump(IntlChar::isUUppercase("f"));
var_dump(IntlChar::isUUppercase("1"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Siehe auch

  • IntlChar::isupper() - Check if code point has the general category "Lu" (uppercase letter)
  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::PROPERTY_UPPERCASE


Check if code point has the White_Space Unicode property

  • « IntlChar::isUUppercase
  • IntlChar::isWhitespace »
  • PHP Manual
  • IntlChar
  • Check if code point has the White_Space Unicode property

IntlChar::isUWhiteSpace

(PHP 7)

IntlChar::isUWhiteSpace — Check if code point has the White_Space Unicode property

Beschreibung

public static IntlChar::isUWhiteSpace ( mixed $codepoint ) : bool

Check if a code point has the White_Space Unicode property.

This is the same as IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_WHITE_SPACE)

Hinweis:

This is different from both IntlChar::isspace() and IntlChar::isWhitespace().

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint has the White_Space Unicode property, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isUWhiteSpace("A"));
var_dump(IntlChar::isUWhiteSpace(" "));
var_dump(IntlChar::isUWhiteSpace("\n"));
var_dump(IntlChar::isUWhiteSpace("\t"));
var_dump(IntlChar::isUWhiteSpace("\u{00A0}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(true)
bool(true)
bool(true)

Siehe auch

  • IntlChar::isspace() - Check if code point is a space character
  • IntlChar::isWhitespace() - Check if code point is a whitespace character according to ICU
  • IntlChar::isJavaSpaceChar() - Check if code point is a space character according to Java
  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::PROPERTY_WHITE_SPACE


Check if code point is a whitespace character according to ICU

  • « IntlChar::isUWhiteSpace
  • IntlChar::isxdigit »
  • PHP Manual
  • IntlChar
  • Check if code point is a whitespace character according to ICU

IntlChar::isWhitespace

(PHP 7)

IntlChar::isWhitespace — Check if code point is a whitespace character according to ICU

Beschreibung

public static IntlChar::isWhitespace ( mixed $codepoint ) : bool

Determines if the specified code point is a whitespace character according to ICU.

A character is considered to be a ICU whitespace character if and only if it satisfies one of the following criteria:

  • It is a Unicode Separator character (categories "Z" = "Zs" or "Zl" or "Zp"), but is not also a non-breaking space (U+00A0 NBSP or U+2007 Figure Space or U+202F Narrow NBSP).
  • It is U+0009 HORIZONTAL TABULATION.
  • It is U+000A LINE FEED.
  • It is U+000B VERTICAL TABULATION.
  • It is U+000C FORM FEED.
  • It is U+000D CARRIAGE RETURN.
  • It is U+001C FILE SEPARATOR.
  • It is U+001D GROUP SEPARATOR.
  • It is U+001E RECORD SEPARATOR.
  • It is U+001F UNIT SEPARATOR.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a whitespace character according to ICU, false if not.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::iswhitespace("A"));
var_dump(IntlChar::iswhitespace(" "));
var_dump(IntlChar::iswhitespace("\n"));
var_dump(IntlChar::iswhitespace("\t"));
var_dump(IntlChar::iswhitespace("\u{00A0}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)

Siehe auch

  • IntlChar::isspace() - Check if code point is a space character
  • IntlChar::isJavaSpaceChar() - Check if code point is a space character according to Java
  • IntlChar::isUWhiteSpace() - Check if code point has the White_Space Unicode property


Check if code point is a hexadecimal digit

  • « IntlChar::isWhitespace
  • IntlChar::ord »
  • PHP Manual
  • IntlChar
  • Check if code point is a hexadecimal digit

IntlChar::isxdigit

(PHP 7)

IntlChar::isxdigit — Check if code point is a hexadecimal digit

Beschreibung

public static IntlChar::isxdigit ( mixed $codepoint ) : bool

Determines whether the specified code point is a hexadecimal digit.

true for characters with general category "Nd" (decimal digit numbers) as well as Latin letters a-f and A-F in both ASCII and Fullwidth ASCII. (That is, for letters with code points 0041..0046, 0061..0066, FF21..FF26, FF41..FF46.)

This is equivalent to IntlChar::digit($codepoint, 16) >= 0.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns true if codepoint is a hexadecimal character, false if not.

Anmerkungen

Hinweis:

In order to narrow the definition of hexadecimal digits to only ASCII characters use:

<?php
$isASCIIHexadecimal = IntlChar::ord($codepoint) <= 0x7F && IntlChar::isxdigit($codepoint);
?>

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::isxdigit("A"));
var_dump(IntlChar::isxdigit("1"));
var_dump(IntlChar::isxdigit("\u{2603}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(false)

Siehe auch

  • IntlChar::isdigit() - Check if code point is a digit character


Return Unicode code point value of character

  • « IntlChar::isxdigit
  • IntlChar::tolower »
  • PHP Manual
  • IntlChar
  • Return Unicode code point value of character

IntlChar::ord

(PHP 7)

IntlChar::ord — Return Unicode code point value of character

Beschreibung

public static IntlChar::ord ( mixed $character ) : int

Returns the Unicode code point value of the given character.

This function compliments IntlChar::chr().

Parameter-Liste

character

A Unicode character.

Rückgabewerte

Returns the Unicode code point value as an integer.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::ord("A"));
var_dump(IntlChar::ord(" "));
var_dump(IntlChar::ord("\u{2603}"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(65)
int(32)
int(9731)

Siehe auch

  • IntlChar::isalnum() - Check if code point is an alphanumeric character
  • IntlChar::isdigit() - Check if code point is a digit character
  • IntlChar::chr() - Return Unicode character by code point value
  • ord() - Konvertiert das erste Byte einer Zeichenkette in einen Wert zwischen 0 und 255


Make Unicode character lowercase

  • « IntlChar::ord
  • IntlChar::totitle »
  • PHP Manual
  • IntlChar
  • Make Unicode character lowercase

IntlChar::tolower

(PHP 7)

IntlChar::tolower — Make Unicode character lowercase

Beschreibung

public static IntlChar::tolower ( mixed $codepoint ) : mixed

The given character is mapped to its lowercase equivalent. If the character has no lowercase equivalent, the original character itself is returned.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns the Simple_Lowercase_Mapping of the code point, if any; otherwise the code point itself.

Der Rückgabetyp ist int, außer der Codepoint wurde als UTF-8-string übergeben, in welchem Fall ein string zurückgegeben wird.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::tolower("A"));
var_dump(IntlChar::tolower("a"));
var_dump(IntlChar::tolower("F"));
var_dump(IntlChar::tolower("f"));
var_dump(IntlChar::tolower("1"));
var_dump(IntlChar::tolower(ord("A")));
var_dump(IntlChar::tolower(ord("a")));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(1) "a"
string(1) "a"
string(2) "f"
string(2) "f"
string(1) "1"
int(97)
int(97)

Siehe auch

  • IntlChar::totitle() - Make Unicode character titlecase
  • IntlChar::toupper() - Make Unicode character uppercase
  • mb_strtolower() - Make a string lowercase


Make Unicode character titlecase

  • « IntlChar::tolower
  • IntlChar::toupper »
  • PHP Manual
  • IntlChar
  • Make Unicode character titlecase

IntlChar::totitle

(PHP 7)

IntlChar::totitle — Make Unicode character titlecase

Beschreibung

public static IntlChar::totitle ( mixed $codepoint ) : mixed

The given character is mapped to its titlecase equivalent. If the character has no titlecase equivalent, the original character itself is returned.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns the Simple_Titlecase_Mapping of the code point, if any; otherwise the code point itself.

Der Rückgabetyp ist int, außer der Codepoint wurde als UTF-8-string übergeben, in welchem Fall ein string zurückgegeben wird.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::totitle("A"));
var_dump(IntlChar::totitle("a"));
var_dump(IntlChar::totitle("F"));
var_dump(IntlChar::totitle("f"));
var_dump(IntlChar::totitle("1"));
var_dump(IntlChar::totitle(ord("A")));
var_dump(IntlChar::totitle(ord("a")));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(1) "A"
string(1) "A"
string(2) "F"
string(2) "F"
string(1) "1"
int(65)
int(65)

Siehe auch

  • IntlChar::tolower() - Make Unicode character lowercase
  • IntlChar::toupper() - Make Unicode character uppercase
  • mb_convert_case() - Perform case folding on a string


Make Unicode character uppercase

  • « IntlChar::totitle
  • IntlException »
  • PHP Manual
  • IntlChar
  • Make Unicode character uppercase

IntlChar::toupper

(PHP 7)

IntlChar::toupper — Make Unicode character uppercase

Beschreibung

public static IntlChar::toupper ( mixed $codepoint ) : mixed

The given character is mapped to its uppercase equivalent. If the character has no uppercase equivalent, the character itself is returned.

Parameter-Liste

codepoint

Der int-Wert des Codepoints (z.B. 0x2603 für U+2603 SNOWMAN) oder das Zeichen als UTF-8 string kodiert (z.B. "\u{2603}").

Rückgabewerte

Returns the Simple_Uppercase_Mapping of the code point, if any; otherwise the code point itself.

Der Rückgabetyp ist int, außer der Codepoint wurde als UTF-8-string übergeben, in welchem Fall ein string zurückgegeben wird.

Beispiele

Beispiel #1 Testen unterschiedlicher Codepoints

<?php
var_dump(IntlChar::toupper("A"));
var_dump(IntlChar::toupper("a"));
var_dump(IntlChar::toupper("F"));
var_dump(IntlChar::toupper("f"));
var_dump(IntlChar::toupper("1"));
var_dump(IntlChar::toupper(ord("A")));
var_dump(IntlChar::toupper(ord("a")));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(1) "A"
string(1) "A"
string(2) "F"
string(2) "F"
string(1) "1"
int(65)
int(65)

Siehe auch

  • IntlChar::tolower() - Make Unicode character lowercase
  • IntlChar::totitle() - Make Unicode character titlecase
  • mb_strtoupper() - Make a string uppercase


Exception class for intl errors

(PHP 5 > 5.5.0, PHP 7, PECL intl > 3.0.0a1)

Einführung

This class is used for generating exceptions when errors occur inside intl functions. Such exceptions are only generated when intl.use_exceptions is enabled.

Klassenbeschreibung

IntlException extends Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The IntlIterator class

(PHP 5 >= 5.5.0, PHP 7)

Einführung

This class represents iterator objects throughout the intl extension whenever the iterator cannot be identified with any other object provided by the extension. The distinct iterator object used internally by the foreach construct can only be obtained (in the relevant part here) from objects, so objects of this class serve the purpose of providing the hook through which this internal object can be obtained. As a convenience, this class also implements the Iterator interface, allowing the collection of values to be navigated using the methods defined in that interface. Both these methods and the internal iterator objects provided to foreach are backed by the same state (e.g. the position of the iterator and its current value).

Subclasses may provide richer functionality.

Klassenbeschreibung

IntlIterator implements Iterator {
/* Methoden */
public current ( ) : mixed
public key ( ) : string
public next ( ) : void
public rewind ( ) : void
public valid ( ) : bool
}

Inhaltsverzeichnis

  • IntlIterator::current — Get the current element
  • IntlIterator::key — Get the current key
  • IntlIterator::next — Move forward to the next element
  • IntlIterator::rewind — Rewind the iterator to the first element
  • IntlIterator::valid — Check if current position is valid


Get the current element

  • « IntlIterator
  • IntlIterator::key »
  • PHP Manual
  • IntlIterator
  • Get the current element

IntlIterator::current

(PHP 5 >= 5.5.0, PHP 7)

IntlIterator::current — Get the current element

Beschreibung

public IntlIterator::current ( ) : mixed

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the current key

  • « IntlIterator::current
  • IntlIterator::next »
  • PHP Manual
  • IntlIterator
  • Get the current key

IntlIterator::key

(PHP 5 >= 5.5.0, PHP 7)

IntlIterator::key — Get the current key

Beschreibung

public IntlIterator::key ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Move forward to the next element

  • « IntlIterator::key
  • IntlIterator::rewind »
  • PHP Manual
  • IntlIterator
  • Move forward to the next element

IntlIterator::next

(PHP 5 >= 5.5.0, PHP 7)

IntlIterator::next — Move forward to the next element

Beschreibung

public IntlIterator::next ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Rewind the iterator to the first element

  • « IntlIterator::next
  • IntlIterator::valid »
  • PHP Manual
  • IntlIterator
  • Rewind the iterator to the first element

IntlIterator::rewind

(PHP 5 >= 5.5.0, PHP 7)

IntlIterator::rewind — Rewind the iterator to the first element

Beschreibung

public IntlIterator::rewind ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Check if current position is valid

  • « IntlIterator::rewind
  • intl Funktionen »
  • PHP Manual
  • IntlIterator
  • Check if current position is valid

IntlIterator::valid

(PHP 5 >= 5.5.0, PHP 7)

IntlIterator::valid — Check if current position is valid

Beschreibung

public IntlIterator::valid ( ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


intl Funktionen

Inhaltsverzeichnis

  • intl_error_name — Get symbolic name for a given error code
  • intl_get_error_code — Get the last error code
  • intl_get_error_message — Get description of the last error
  • intl_is_failure — Check whether the given error code indicates failure


Get symbolic name for a given error code

  • « intl Funktionen
  • intl_get_error_code »
  • PHP Manual
  • intl Funktionen
  • Get symbolic name for a given error code

intl_error_name

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_error_name — Get symbolic name for a given error code

Beschreibung

intl_error_name ( int $errorCode ) : string

Return ICU error code name.

Parameter-Liste

errorCode

ICU error code.

Rückgabewerte

The returned string will be the same as the name of the error code constant.

Beispiele

Beispiel #1 intl_error_name() example

<?php
$coll     = collator_create( 'en_RU' );
$err_code = collator_get_error_code( $coll );

printf( "Symbolic name for %d is %s\n.", $err_code, intl_error_name( $err_code ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Symbolic name for -128 is U_USING_FALLBACK_WARNING.

Siehe auch

  • intl_is_failure() - Check whether the given error code indicates failure
  • intl_get_error_code() - Get the last error code
  • intl_get_error_message() - Get description of the last error


Get the last error code

  • « intl_error_name
  • intl_get_error_message »
  • PHP Manual
  • intl Funktionen
  • Get the last error code

intl_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_get_error_code — Get the last error code

Beschreibung

intl_get_error_code ( ) : int

Useful to handle errors occurred in static methods when there's no object to get error code from.

Rückgabewerte

Error code returned by the last API function call.

Beispiele

Beispiel #1 intl_get_error_code() example

<?php
$coll = collator_create( '<bad_param>' );
if( !$coll ) {
    handle_error( intl_get_error_code() );
}
?>

Siehe auch

  • intl_is_failure() - Check whether the given error code indicates failure
  • intl_error_name() - Get symbolic name for a given error code
  • intl_get_error_message() - Get description of the last error
  • collator_get_error_code() - Get collator's last error code
  • numfmt_get_error_code() - Get formatter's last error code


Get description of the last error

  • « intl_get_error_code
  • intl_is_failure »
  • PHP Manual
  • intl Funktionen
  • Get description of the last error

intl_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_get_error_message — Get description of the last error

Beschreibung

intl_get_error_message ( ) : string

Get error message from last internationalization function called.

Rückgabewerte

Description of an error occurred in the last API function call.

Beispiele

Beispiel #1 intl_get_error_message() example

<?php
if( Collator::getAvailableLocales() === false ) {
    show_error( intl_get_error_message() );
}
?>

Siehe auch

  • intl_error_name() - Get symbolic name for a given error code
  • intl_get_error_code() - Get the last error code
  • intl_is_failure() - Check whether the given error code indicates failure
  • collator_get_error_message() - Get text for collator's last error code
  • numfmt_get_error_message() - Get formatter's last error message


Check whether the given error code indicates failure

  • « intl_get_error_message
  • Multibyte String »
  • PHP Manual
  • intl Funktionen
  • Check whether the given error code indicates failure

intl_is_failure

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_is_failure — Check whether the given error code indicates failure

Beschreibung

intl_is_failure ( int $errorCode ) : bool

Parameter-Liste

errorCode

is a value that returned by functions: intl_get_error_code(), collator_get_error_code() .

Rückgabewerte

true if it the code indicates some failure, and false in case of success or a warning.

Beispiele

Beispiel #1 intl_is_failure() example

<?php
function check( $err_code )
{
    var_export( intl_is_failure( $err_code ) );
    echo "\n";
}

check( U_ZERO_ERROR );
check( U_USING_FALLBACK_WARNING );
check( U_ILLEGAL_ARGUMENT_ERROR );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

false
false
true

Siehe auch

  • intl_get_error_code() - Get the last error code
  • collator_get_error_code() - Get collator's last error code
  • Collator-getErrorCode() - Get collator's last error code


Multibyte String

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Summaries of supported encodings
  • Basics of Japanese multi-byte encodings
  • HTTP Input and Output
  • Supported Character Encodings
  • Function Overloading Feature
  • PHP Character Encoding Requirements
  • Multibyte String Funktionen
    • mb_check_encoding — Check if strings are valid for the specified encoding
    • mb_chr — Get a specific character
    • mb_convert_case — Perform case folding on a string
    • mb_convert_encoding — Convert character encoding
    • mb_convert_kana — Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
    • mb_convert_variables — Convert character code in variable(s)
    • mb_decode_mimeheader — Decode string in MIME header field
    • mb_decode_numericentity — Decode HTML numeric string reference to character
    • mb_detect_encoding — Detect character encoding
    • mb_detect_order — Set/Get character encoding detection order
    • mb_encode_mimeheader — Encode string for MIME header
    • mb_encode_numericentity — Encode character to HTML numeric string reference
    • mb_encoding_aliases — Get aliases of a known encoding type
    • mb_ereg_match — Regular expression match for multibyte string
    • mb_ereg_replace_callback — Perform a regular expression search and replace with multibyte support using a callback
    • mb_ereg_replace — Replace regular expression with multibyte support
    • mb_ereg_search_getpos — Returns start point for next regular expression match
    • mb_ereg_search_getregs — Retrieve the result from the last multibyte regular expression match
    • mb_ereg_search_init — Setup string and regular expression for a multibyte regular expression match
    • mb_ereg_search_pos — Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string
    • mb_ereg_search_regs — Returns the matched part of a multibyte regular expression
    • mb_ereg_search_setpos — Set start point of next regular expression match
    • mb_ereg_search — Multibyte regular expression match for predefined multibyte string
    • mb_ereg — Regular expression match with multibyte support
    • mb_eregi_replace — Replace regular expression with multibyte support ignoring case
    • mb_eregi — Regular expression match ignoring case with multibyte support
    • mb_get_info — Get internal settings of mbstring
    • mb_http_input — Detect HTTP input character encoding
    • mb_http_output — Set/Get HTTP output character encoding
    • mb_internal_encoding — Set/Get internal character encoding
    • mb_language — Set/Get current language
    • mb_list_encodings — Returns an array of all supported encodings
    • mb_ord — Get code point of character
    • mb_output_handler — Callback function converts character encoding in output buffer
    • mb_parse_str — Parse GET/POST/COOKIE data and set global variable
    • mb_preferred_mime_name — Get MIME charset string
    • mb_regex_encoding — Set/Get character encoding for multibyte regex
    • mb_regex_set_options — Set/Get the default options for mbregex functions
    • mb_scrub — Description
    • mb_send_mail — Send encoded mail
    • mb_split — Split multibyte string using regular expression
    • mb_str_split — Given a multibyte string, return an array of its characters
    • mb_strcut — Get part of string
    • mb_strimwidth — Get truncated string with specified width
    • mb_stripos — Finds position of first occurrence of a string within another, case insensitive
    • mb_stristr — Finds first occurrence of a string within another, case insensitive
    • mb_strlen — Get string length
    • mb_strpos — Find position of first occurrence of string in a string
    • mb_strrchr — Finds the last occurrence of a character in a string within another
    • mb_strrichr — Finds the last occurrence of a character in a string within another, case insensitive
    • mb_strripos — Finds position of last occurrence of a string within another, case insensitive
    • mb_strrpos — Find position of last occurrence of a string in a string
    • mb_strstr — Finds first occurrence of a string within another
    • mb_strtolower — Make a string lowercase
    • mb_strtoupper — Make a string uppercase
    • mb_strwidth — Return width of string
    • mb_substitute_character — Set/Get substitution character
    • mb_substr_count — Count the number of substring occurrences
    • mb_substr — Get part of string


Einführung

While there are many languages in which every necessary character can be represented by a one-to-one mapping to an 8-bit value, there are also several languages which require so many characters for written communication that they cannot be contained within the range a mere byte can code (A byte is made up of eight bits. Each bit can contain only two distinct values, one or zero. Because of this, a byte can only represent 256 unique values (two to the power of eight)). Multibyte character encoding schemes were developed to express more than 256 characters in the regular bytewise coding system.

When you manipulate (trim, split, splice, etc.) strings encoded in a multibyte encoding, you need to use special functions since two or more consecutive bytes may represent a single character in such encoding schemes. Otherwise, if you apply a non-multibyte-aware string function to the string, it probably fails to detect the beginning or ending of the multibyte character and ends up with a corrupted garbage string that most likely loses its original meaning.

mbstring provides multibyte specific string functions that help you deal with multibyte encodings in PHP. In addition to that, mbstring handles character encoding conversion between the possible encoding pairs. mbstring is designed to handle Unicode-based encodings such as UTF-8 and UCS-2 and many single-byte encodings for convenience (listed below).


Installation

mbstring is a non-default extension. This means it is not enabled by default. You must explicitly enable the module with the configure option. See the Install section for details.

The following configure options are related to the mbstring module.

  • --enable-mbstring: Enable mbstring functions. This option is required to use mbstring functions.

    libmbfl is necessary for mbstring. libmbfl is bundled with mbstring. Prior to PHP 7.3.0, if libmbfl is already installed on the system, --with-libmbfl[=DIR] can be specified to use the installed library.

  • --disable-mbregex: Disable regular expression functions with multibyte character support.

    Oniguruma is necessary for the regular expression functions with multibyte character support. As of PHP 7.4.0, pkg-config is used to detect the libonig library. Prior to PHP 7.4.0, Oniguruma was bundled with mbstring, but it was possible to build against an already installed libonig by passing --with-onig[=DIR].

    It is possible to disable the multibyte regex backtrack check by specifying --disable-mbregex-backtrack.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

mbstring configuration options
Name | Standard | Veränderbar | Changelog
mbstring.language | "neutral" | PHP_INI_ALL | PHP_INI_PERDIR in PHP <= 5.2.6.
mbstring.detect_order | NULL | PHP_INI_ALL |
mbstring.http_input | "pass" | PHP_INI_ALL | Deprecated in PHP 5.6.0.
mbstring.http_output | "pass" | PHP_INI_ALL | Deprecated in PHP 5.6.0.
mbstring.internal_encoding | NULL | PHP_INI_ALL | Deprecated in PHP 5.6.0.
mbstring.script_encoding | NULL | PHP_INI_ALL | Removed in PHP 5.4.0. Use zend.script_encoding instead.
mbstring.substitute_character | NULL | PHP_INI_ALL |
mbstring.func_overload | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR in PHP <= 5.2.6. Deprecated as of PHP 7.2.0; removed as of PHP 8.0.0.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | PHP_INI_ALL | Available as of PHP 5.3.0.
mbstring.strict_detection | "0" | PHP_INI_ALL | Available as of PHP 5.1.2.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

mbstring.language string

The default national language setting (NLS) used in mbstring. Note that this option automagically defines mbstring.internal_encoding and mbstring.internal_encoding should be placed after mbstring.language in php.ini

mbstring.encoding_translation bool

Enables the transparent character encoding filter for the incoming HTTP queries, which performs detection and conversion of the input encoding to the internal character encoding.

mbstring.internal_encoding string
Warnung

Diese Funktion ist seit PHP 5.6.0 DEPRECATED (veraltet). Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Defines the default internal character encoding.

PHP 5.6 and later users should leave this empty and set default_charset instead.

mbstring.http_input string
Warnung

Diese Funktion ist seit PHP 5.6.0 DEPRECATED (veraltet). Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Defines the default HTTP input character encoding.

PHP 5.6 and later users should leave this empty and set default_charset instead.

mbstring.http_output string
Warnung

Diese Funktion ist seit PHP 5.6.0 DEPRECATED (veraltet). Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Defines the default HTTP output character encoding (output will be converted from the internal encoding to the HTTP output encoding upon output).

PHP 5.6 and later users should leave this empty and set default_charset instead.

mbstring.detect_order string

Defines default character code detection order. See also mb_detect_order().

mbstring.substitute_character string

Defines character to substitute for invalid character encoding. See mb_substitute_character() for supported values.

mbstring.func_overload string
Warnung

Dieses Feature ist seit PHP 7.2.0 VERALTET und seit PHP 8.0.0 ENTFERNT. Von der Verwendung dieses Features wird dringend abgeraten.

Overloads a set of single byte functions by the mbstring counterparts. See Function overloading for more information.

This setting can only be changed from the php.ini file.

mbstring.http_output_conv_mimetypes string

mbstring.strict_detection bool

Enables the strict encoding detection.

According to the » HTML 4.01 specification, Web browsers are allowed to encode a form being submitted with a character encoding different from the one used for the page. See mb_http_input() to detect character encoding used by browsers.

Although popular browsers are capable of giving a reasonably accurate guess to the character encoding of a given HTML document, it would be better to set the charset parameter in the Content-Type HTTP header to the appropriate value by header() or default_charset ini setting.

Beispiel #1 php.ini setting examples

; Set default language
mbstring.language        = Neutral; Set default language to Neutral(UTF-8) (default)
mbstring.language        = English; Set default language to English
mbstring.language        = Japanese; Set default language to Japanese

;; Set default internal encoding
;; Note: Make sure to use character encoding works with PHP
mbstring.internal_encoding    = UTF-8  ; Set internal encoding to UTF-8

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set default HTTP input character encoding
;; Note: Script cannot change http_input setting.
mbstring.http_input           = pass    ; No conversion.
mbstring.http_input           = auto    ; Set HTTP input to auto
                                ; "auto" is expanded according to mbstring.language
mbstring.http_input           = SJIS    ; Set HTTP input to SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Specify order

;; Set default HTTP output character encoding
mbstring.http_output          = pass    ; No conversion
mbstring.http_output          = UTF-8   ; Set HTTP output encoding to UTF-8

;; Set default character encoding detection order
mbstring.detect_order         = auto    ; Set detect order to auto
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Specify order

;; Set default substitute character
mbstring.substitute_character = 12307   ; Specify Unicode value
mbstring.substitute_character = none    ; Do not print character
mbstring.substitute_character = long    ; Long Example: U+3000,JIS+7E7E

Beispiel #2 php.ini setting for EUC-JP users

;; Disable Output Buffering
output_buffering      = Off

;; Set HTTP header charset
default_charset       = EUC-JP

;; Set default language to Japanese
mbstring.language = Japanese

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set HTTP input encoding conversion to auto
mbstring.http_input   = auto

;; Convert HTTP output to EUC-JP
mbstring.http_output  = EUC-JP

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

Beispiel #3 php.ini setting for SJIS users

;; Enable Output Buffering
output_buffering     = On

;; Set mb_output_handler to enable output conversion
output_handler       = mb_output_handler

;; Set HTTP header charset
default_charset      = Shift_JIS

;; Set default language to Japanese
mbstring.language = Japanese

;; Set http input encoding conversion to auto
mbstring.http_input  = auto

;; Convert to SJIS
mbstring.http_output = SJIS

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

MB_OVERLOAD_MAIL (int)
Removed as of PHP 8.0.0.
MB_OVERLOAD_STRING (int)
Removed as of PHP 8.0.0.
MB_OVERLOAD_REGEX (int)
Removed as of PHP 8.0.0.
MB_CASE_UPPER (int)
Performs a full upper-case folding. This may change the length of the string. This is the mode used by mb_strtoupper().
MB_CASE_LOWER (int)
Performs a full lower-case folding. This may change the length of the string. This is the mode used by mb_strtolower().
MB_CASE_TITLE (int)
Performs a full title-case conversion based on the Cased and CaseIgnorable derived Unicode properties. In particular this improves handling of quotes and apostrophes. This may change the length of the string.
MB_CASE_FOLD (int)
Performs a full case fold conversion which removes case distinctions present in the string. This is used for caseless matching. This may change the length of the string. Available since PHP 7.3.
MB_CASE_LOWER_SIMPLE (int)
Performs a simple lower-case fold conversion. This does not change the length of the string. Available as of PHP 7.3.
MB_CASE_UPPER_SIMPLE (int)
Performs simple upper-case fold conversion. This does not change the length of the string. Available as of PHP 7.3.
MB_CASE_TITLE_SIMPLE (int)
Performs simple title-case fold conversion. This does not change the length of the string. Available as of PHP 7.3.
MB_CASE_FOLD_SIMPLE (int)
Performs a simple case fold conversion which removes case distinctions present in the string. This is used for caseless matching. This does not change the length of the string. Used by case-insensitive operations internally by the MBString extension. Available as of PHP 7.3.
MB_ONIGURUMA_VERSION (string)
The Oniguruma version, e.g. 6.9.4. Available as of PHP 7.4.


Summaries of supported encodings

Summaries of supported encodings
Name in the IANA character set registry | Underlying character set | Description | Additional note
ISO-10646-UCS-4 | ISO 10646 | The Universal Character Set with 31-bit code space, standardized as UCS-4 by ISO/IEC 10646. It is kept synchronized with the latest version of the Unicode code map. | If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.
ISO-10646-UCS-4 | UCS-4 | See above. | In contrast to UCS-4, strings are always assumed to be in big endian form.
ISO-10646-UCS-4 | UCS-4 | See above. | In contrast to UCS-4, strings are always assumed to be in little endian form.
ISO-10646-UCS-2 | UCS-2 | The Universal Character Set with 16-bit code space, standardized as UCS-2 by ISO/IEC 10646. It is kept synchronized with the latest version of the unicode code map. | If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.
ISO-10646-UCS-2 | UCS-2 | See above. | In contrast to UCS-2, strings are always assumed to be in big endian form.
ISO-10646-UCS-2 | UCS-2 | See above. | In contrast to UCS-2, strings are always assumed to be in little endian form.
UTF-32 | Unicode | Unicode Transformation Format of 32-bit unit width, whose encoding space refers to the Unicode's codeset standard. This encoding scheme wasn't identical to UCS-4 because the code space of Unicode were limited to a 21-bit value. | If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.
UTF-32BE | Unicode | See above | In contrast to UTF-32, strings are always assumed to be in big endian form.
UTF-32LE | Unicode | See above | In contrast to UTF-32, strings are always assumed to be in little endian form.
UTF-16 | Unicode | Unicode Transformation Format of 16-bit unit width. It's worth a note that UTF-16 is no longer the same specification as UCS-2 because the surrogate mechanism has been introduced since Unicode 2.0 and UTF-16 now refers to a 21-bit code space. | If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.
UTF-16BE | Unicode | See above. | In contrast to UTF-16, strings are always assumed to be in big endian form.
UTF-16LE | Unicode | See above. | In contrast to UTF-16, strings are always assumed to be in little endian form.
UTF-8 | Unicode / UCS | Unicode Transformation Format of 8-bit unit width. | none
UTF-7 | Unicode | A mail-safe transformation format of Unicode, specified in » RFC2152. | none
(none) | Unicode | A variant of UTF-7 which is specialized for use in the » IMAP protocol. | none
US-ASCII (preferred MIME name) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII | ASCII / ISO 646 | American Standard Code for Information Interchange is a commonly-used 7-bit encoding. Also standardized as an international standard, ISO 646. | (none)
EUC-JP (preferred MIME name) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese | Compound of US-ASCII / JIS X0201:1997 (hankaku kana part) / JIS X0208:1990 / JIS X0212:1990 | As you see the name is derived from an abbreviation of Extended UNIX Code Packed Format for Japanese, this encoding is mostly used on UNIX or alike platforms. The original encoding scheme, Extended UNIX Code, is designed on the basis of ISO 2022. | The character set referred to by EUC-JP is different to IBM932 / CP932, which are used by OS/2® and Microsoft® Windows®. For information interchange with those platforms, use EUCJP-WIN instead.
Shift_JIS (preferred MIME name) / MS_Kanji / csShift_JIS | Compound of JIS X0201:1997 / JIS X0208:1997 | Shift_JIS was developed in early 80's, at the time personal Japanese word processors were brought into the market, in order to maintain compatibilities with the legacy encoding scheme JIS X 0201:1976. According to the IANA definition the codeset of Shift_JIS is slightly different to IBM932 / CP932. However, the names "SJIS" / "Shift_JIS" are often wrongly used to refer to these codesets. | For the CP932 codemap, use SJIS-WIN instead.
(none) | Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions | While this "encoding" uses the same encoding scheme as EUC-JP, the underlying character set is different. That is, some code points map to different characters than EUC-JP. | none
Windows-31J / csWindows31J | Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions | While this "encoding" uses the same encoding scheme as Shift_JIS, the underlying character set is different. That means some code points map to different characters than Shift_JIS. | (none)
ISO-2022-JP (preferred MIME name) / csISO2022JP | US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983 | » RFC1468 | (none)
JIS |  |  |
ISO-8859-1 |  |  |
ISO-8859-2 |  |  |
ISO-8859-3 |  |  |
ISO-8859-4 |  |  |
ISO-8859-5 |  |  |
ISO-8859-6 |  |  |
ISO-8859-7 |  |  |
ISO-8859-8 |  |  |
ISO-8859-9 |  |  |
ISO-8859-10 |  |  |
ISO-8859-13 |  |  |
ISO-8859-14 |  |  |
ISO-8859-15 |  |  |
ISO-8859-16 |  |  |
byte2be |  |  |
byte2le |  |  |
byte4be |  |  |
byte4le |  |  |
BASE64 |  |  |
HTML-ENTITIES |  |  |
7bit |  |  |
8bit |  |  |
EUC-CN |  |  |
CP936 |  |  |
HZ |  |  |
EUC-TW |  |  |
CP950 |  |  |
BIG-5 |  |  |
EUC-KR |  |  |
UHC (CP949) |  |  |
ISO-2022-KR |  |  |
Windows-1251 (CP1251) |  |  |
Windows-1252 (CP1252) |  |  |
CP866 (IBM866) |  |  |
KOI8-R |  |  |
KOI8-U |  |  |


Basics of Japanese multi-byte encodings

Japanese characters can only be represented by multibyte encodings, and multiple encoding standards are used depending on platform and text purpose. To make matters worse, these encoding standards differ slightly from one another. In order to create a web application which would be usable in a Japanese environment, a developer has to keep these complexities in mind to ensure that the proper character encodings are used.

  • Storage for a character can be up to six bytes
  • Most Japanese multibyte characters appear twice as wide as single-byte characters. These characters are called "zen-kaku" in Japanese, which means "full width". Other, narrower, characters are called "han-kaku", which means "half width". The graphical properties of the characters, however, depends upon the type faces used to display them.
  • Some character encodings use shift(escape) sequences defined in ISO-2022 to switch the code map of the specific code area (00h to 7fh).
  • ISO-2022-JP should be used in SMTP/NNTP, and headers and entities should be reencoded as per RFC requirements. Although those are not requisites, it's still a good idea because several popular user agents cannot recognize any other encoding methods.
  • Web pages created for mobile phone services such as » i-mode or » EZweb are supposed to use Shift_JIS.
  • As of PHP 5.4.0, the pictogram characters used for mobile phone service such as » i-mode or » EZweb are supported.


HTTP Input and Output

HTTP input/output character encoding conversion may convert binary data also. Users are supposed to control character encoding conversion if binary data is used for HTTP input/output.

Hinweis:

If enctype for HTML form is set to multipart/form-data and mbstring.encoding_translation is set to On in php.ini the POST'ed variables and the names of uploaded files will be converted to the internal character encoding as well. However, the conversion isn't applied to the query keys.

  • HTTP Input

    There is no way to control HTTP input character conversion from a PHP script. To disable HTTP input character conversion, it has to be done in php.ini.

    Beispiel #1 Disable HTTP input conversion in php.ini

    ;; Disable HTTP Input conversion
mbstring.http_input = pass
;; Disable HTTP Input conversion
mbstring.encoding_translation = Off

    When using PHP as an Apache module, it is possible to override those settings in each Virtual Host directive in httpd.conf or per directory with .htaccess. Refer to the Configuration section and Apache Manual for details.

  • HTTP Output

    There are several ways to enable output character encoding conversion. One is using php.ini, another is using ob_start() with mb_output_handler() as the ob_start callback function.

Beispiel #2 php.ini setting example

;; Enable output character encoding conversion for all PHP pages

;; Enable Output Buffering
output_buffering    = On

;; Set mb_output_handler to enable output conversion
output_handler      = mb_output_handler

Beispiel #3 Script example

<?php

// Enable output character encoding conversion only for this page

// Set HTTP output character encoding to SJIS
mb_http_output('SJIS');

// Start buffering and specify "mb_output_handler" as
// callback function
ob_start('mb_output_handler');

?>


Supported Character Encodings

Currently the following character encodings are supported by the mbstring module. Any of those Character encodings can be specified in the encoding parameter of mbstring functions.

The following character encodings are supported in this PHP extension:

  • UCS-4*
  • UCS-4BE
  • UCS-4LE*
  • UCS-2
  • UCS-2BE
  • UCS-2LE
  • UTF-32*
  • UTF-32BE*
  • UTF-32LE*
  • UTF-16*
  • UTF-16BE*
  • UTF-16LE*
  • UTF-7
  • UTF7-IMAP
  • UTF-8*
  • ASCII*
  • EUC-JP*
  • SJIS*
  • eucJP-win*
  • SJIS-win*
  • ISO-2022-JP
  • ISO-2022-JP-MS
  • CP932
  • CP51932
  • SJIS-mac** (alias: MacJapanese)
  • SJIS-Mobile#DOCOMO** (alias: SJIS-DOCOMO)
  • SJIS-Mobile#KDDI** (alias: SJIS-KDDI)
  • SJIS-Mobile#SOFTBANK** (alias: SJIS-SOFTBANK)
  • UTF-8-Mobile#DOCOMO** (alias: UTF-8-DOCOMO)
  • UTF-8-Mobile#KDDI-A**
  • UTF-8-Mobile#KDDI-B** (alias: UTF-8-KDDI)
  • UTF-8-Mobile#SOFTBANK** (alias: UTF-8-SOFTBANK)
  • ISO-2022-JP-MOBILE#KDDI** (alias: ISO-2022-JP-KDDI)
  • JIS
  • JIS-ms
  • CP50220
  • CP50220raw
  • CP50221
  • CP50222
  • ISO-8859-1*
  • ISO-8859-2*
  • ISO-8859-3*
  • ISO-8859-4*
  • ISO-8859-5*
  • ISO-8859-6*
  • ISO-8859-7*
  • ISO-8859-8*
  • ISO-8859-9*
  • ISO-8859-10*
  • ISO-8859-13*
  • ISO-8859-14*
  • ISO-8859-15*
  • ISO-8859-16*
  • byte2be
  • byte2le
  • byte4be
  • byte4le
  • BASE64
  • HTML-ENTITIES (alias: HTML)
  • 7bit
  • 8bit
  • EUC-CN*
  • CP936
  • GB18030**
  • HZ
  • EUC-TW*
  • CP950
  • BIG-5*
  • EUC-KR*
  • UHC (alias: CP949)
  • ISO-2022-KR
  • Windows-1251 (alias: CP1251)
  • Windows-1252 (alias: CP1252)
  • CP866 (alias: IBM866)
  • KOI8-R*
  • KOI8-U*
  • ArmSCII-8 (alias: ArmSCII8)

* denotes encodings usable also in regular expressions.

** denotes encodings available since PHP 5.4.0.

Any php.ini entry which accepts an encoding name can also use the values "auto" and "pass". mbstring functions which accept an encoding name can also use the value "auto".

If "pass" is set, no character encoding conversion is performed.

If "auto" is set, it is expanded to the list of encodings defined per the NLS. For instance, if the NLS is set to Japanese, the value is assumed to be "ASCII,JIS,UTF-8,EUC-JP,SJIS".

See also mb_detect_order()


Function Overloading Feature

Warnung

Dieses Feature ist seit PHP 7.2.0 als DEPRECATED (veraltet) markiert. Sich auf dieses Feature zu verlassen ist in keiner Weise empfehlenswert.

You might often find it difficult to get an existing PHP application to work in a given multibyte environment. This happens because most PHP applications out there are written with the standard string functions such as substr(), which are known to not properly handle multibyte-encoded strings.

mbstring supports a 'function overloading' feature which enables you to add multibyte awareness to such an application without code modification by overloading multibyte counterparts on the standard string functions. For example, mb_substr() is called instead of substr() if function overloading is enabled. This feature makes it easy to port applications that only support single-byte encodings to a multibyte environment in many cases.

To use function overloading, set mbstring.func_overload in php.ini to a positive value that represents a combination of bitmasks specifying the categories of functions to be overloaded. It should be set to 1 to overload the mail() function. 2 for string functions, 4 for regular expression functions. For example, if it is set to 7, mail, strings and regular expression functions will be overloaded. The list of overloaded functions are shown below.

Functions to be overloaded
value of mbstring.func_overload | original function | overloaded function
1 | mail() | mb_send_mail()
2 | strlen() | mb_strlen()
2 | strpos() | mb_strpos()
2 | strrpos() | mb_strrpos()
2 | substr() | mb_substr()
2 | strtolower() | mb_strtolower()
2 | strtoupper() | mb_strtoupper()
2 | stripos() | mb_stripos()
2 | strripos() | mb_strripos()
2 | strstr() | mb_strstr()
2 | stristr() | mb_stristr()
2 | strrchr() | mb_strrchr()
2 | substr_count() | mb_substr_count()
4 | ereg() | mb_ereg()
4 | eregi() | mb_eregi()
4 | ereg_replace() | mb_ereg_replace()
4 | eregi_replace() | mb_eregi_replace()
4 | split() | mb_split()

Hinweis:

It is not recommended to use the function overloading option in the per-directory context, because it's not confirmed yet to be stable enough in a production environment and may lead to undefined behaviour.


PHP Character Encoding Requirements

Encodings of the following types are safely used with PHP.

  • A singlebyte encoding,

    • which has ASCII-compatible (ISO646 compatible) mappings for the characters in range of 00h to 7fh.

  • A multibyte encoding,

    • which has ASCII-compatible mappings for the characters in range of 00h to 7fh.
    • which don't use ISO2022 escape sequences.
    • which don't use a value from 00h to 7fh in any of the compounded bytes that represents a single character.

These are examples of character encodings that are unlikely to work with PHP.

JIS, SJIS, ISO-2022-JP, BIG-5

Although PHP scripts written in any of those encodings might not work, especially in the case where encoded strings appear as identifiers or literals in the script, you can almost avoid using these encodings by setting up the mbstring's transparent encoding filter function for incoming HTTP queries.

Hinweis:

It's highly discouraged to use SJIS, BIG5, CP936, CP949 and GB18030 for the internal encoding unless you are familiar with the parser, the scanner and the character encoding.

Hinweis:

If you are connecting to a database with PHP, it is recommended that you use the same character encoding for both the database and the internal encoding for ease of use and better performance.

If you are using PostgreSQL, the character encoding used in the database and the one used in PHP may differ as it supports automatic character set conversion between the backend and the frontend.


Multibyte String Funktionen

References

Multibyte character encoding schemes and their related issues are fairly complicated, and are beyond the scope of this documentation. Please refer to the following URLs and other resources for further information regarding these topics.

  • Unicode materials

    » http://www.unicode.org/

  • Japanese/Korean/Chinese character information

    » https://resources.oreilly.com/examples/9781565922242/blob/master/doc/cjk.inf

Inhaltsverzeichnis

  • mb_check_encoding — Check if strings are valid for the specified encoding
  • mb_chr — Get a specific character
  • mb_convert_case — Perform case folding on a string
  • mb_convert_encoding — Convert character encoding
  • mb_convert_kana — Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
  • mb_convert_variables — Convert character code in variable(s)
  • mb_decode_mimeheader — Decode string in MIME header field
  • mb_decode_numericentity — Decode HTML numeric string reference to character
  • mb_detect_encoding — Detect character encoding
  • mb_detect_order — Set/Get character encoding detection order
  • mb_encode_mimeheader — Encode string for MIME header
  • mb_encode_numericentity — Encode character to HTML numeric string reference
  • mb_encoding_aliases — Get aliases of a known encoding type
  • mb_ereg_match — Regular expression match for multibyte string
  • mb_ereg_replace_callback — Perform a regular expression search and replace with multibyte support using a callback
  • mb_ereg_replace — Replace regular expression with multibyte support
  • mb_ereg_search_getpos — Returns start point for next regular expression match
  • mb_ereg_search_getregs — Retrieve the result from the last multibyte regular expression match
  • mb_ereg_search_init — Setup string and regular expression for a multibyte regular expression match
  • mb_ereg_search_pos — Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string
  • mb_ereg_search_regs — Returns the matched part of a multibyte regular expression
  • mb_ereg_search_setpos — Set start point of next regular expression match
  • mb_ereg_search — Multibyte regular expression match for predefined multibyte string
  • mb_ereg — Regular expression match with multibyte support
  • mb_eregi_replace — Replace regular expression with multibyte support ignoring case
  • mb_eregi — Regular expression match ignoring case with multibyte support
  • mb_get_info — Get internal settings of mbstring
  • mb_http_input — Detect HTTP input character encoding
  • mb_http_output — Set/Get HTTP output character encoding
  • mb_internal_encoding — Set/Get internal character encoding
  • mb_language — Set/Get current language
  • mb_list_encodings — Returns an array of all supported encodings
  • mb_ord — Get code point of character
  • mb_output_handler — Callback function converts character encoding in output buffer
  • mb_parse_str — Parse GET/POST/COOKIE data and set global variable
  • mb_preferred_mime_name — Get MIME charset string
  • mb_regex_encoding — Set/Get character encoding for multibyte regex
  • mb_regex_set_options — Set/Get the default options for mbregex functions
  • mb_scrub — Description
  • mb_send_mail — Send encoded mail
  • mb_split — Split multibyte string using regular expression
  • mb_str_split — Given a multibyte string, return an array of its characters
  • mb_strcut — Get part of string
  • mb_strimwidth — Get truncated string with specified width
  • mb_stripos — Finds position of first occurrence of a string within another, case insensitive
  • mb_stristr — Finds first occurrence of a string within another, case insensitive
  • mb_strlen — Get string length
  • mb_strpos — Find position of first occurrence of string in a string
  • mb_strrchr — Finds the last occurrence of a character in a string within another
  • mb_strrichr — Finds the last occurrence of a character in a string within another, case insensitive
  • mb_strripos — Finds position of last occurrence of a string within another, case insensitive
  • mb_strrpos — Find position of last occurrence of a string in a string
  • mb_strstr — Finds first occurrence of a string within another
  • mb_strtolower — Make a string lowercase
  • mb_strtoupper — Make a string uppercase
  • mb_strwidth — Return width of string
  • mb_substitute_character — Set/Get substitution character
  • mb_substr_count — Count the number of substring occurrences
  • mb_substr — Get part of string


Check if strings are valid for the specified encoding

  • « Multibyte String Funktionen
  • mb_chr »
  • PHP Manual
  • Multibyte String Funktionen
  • Check if strings are valid for the specified encoding

mb_check_encoding

(PHP 4 >= 4.4.3, PHP 5 >= 5.1.3, PHP 7, PHP 8)

mb_check_encoding — Check if strings are valid for the specified encoding

Beschreibung

mb_check_encoding ( array|string|null $value = null , string|null $encoding = null ) : bool

Checks if the specified byte stream is valid for the specified encoding. If value is of type Array, all keys and values are validated recursively. It is useful to prevent so-called "Invalid Encoding Attack".

Parameter-Liste

value

The byte stream or Array to check. If it is omitted, this function checks all the input from the beginning of the request.

encoding

The expected encoding.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | value and encoding are nullable now.
7.2.0 | This function now also accepts an Array as value. Formerly, only Strings have been supported.


Get a specific character

  • « mb_check_encoding
  • mb_convert_case »
  • PHP Manual
  • Multibyte String Funktionen
  • Get a specific character

mb_chr

(PHP 7 >= 7.2.0, PHP 8)

mb_chr — Get a specific character

Beschreibung

mb_chr ( int $codepoint , string|null $encoding = null ) : string|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

codepoint

encoding

Rückgabewerte

Returns a specific characterIm Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • mb_ord() - Get code point of character
  • chr() - Erzeugt eine Ein-Byte-Zeichenkette aus einer Zahl


Perform case folding on a string

  • « mb_chr
  • mb_convert_encoding »
  • PHP Manual
  • Multibyte String Funktionen
  • Perform case folding on a string

mb_convert_case

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_convert_case — Perform case folding on a string

Beschreibung

mb_convert_case ( string $string , int $mode , string|null $encoding = null ) : string

Performs case folding on a string, converted in the way specified by mode.

Parameter-Liste

string

The string being converted.

mode

The mode of the conversion. It can be one of MB_CASE_UPPER, MB_CASE_LOWER, MB_CASE_TITLE, MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE, MB_CASE_FOLD_SIMPLE.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

A case folded version of string converted in the way specified by mode.

Unicode

By contrast to the standard case folding functions such as strtolower() and strtoupper(), case folding is performed on the basis of the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).

For more information about the Unicode properties, please see » http://www.unicode.org/reports/tr21/.

Changelog

Version | Beschreibung
7.3.0 | Added support for MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE, and MB_CASE_FOLD_SIMPLE as mode.

Beispiele

Beispiel #1 mb_convert_case() example

<?php
$str = "mary had a Little lamb and she loved it so";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Prints Mary Had A Little Lamb And She Loved It So
?>

Beispiel #2 mb_convert_case() example with non-Latin UTF-8 text

<?php
$str = "????st? a??p?? ßaf?? ??µ??? ??, d?as?e???e? ?p?? ?????? ?????";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Prints ????S?? ?????? ??F?S ?????? G?, ???S??????? ???? ?OT??? ????S
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Prints ????st? ???p?? ?af?s ??µ??? G?, ??as?e???e? ?p?? ?????? ????s
?>

Siehe auch

  • mb_strtolower() - Make a string lowercase
  • mb_strtoupper() - Make a string uppercase
  • strtolower() - Setzt einen String in Kleinbuchstaben um
  • strtoupper() - Wandelt alle Zeichen eines Strings in Großbuchstaben um
  • ucfirst() - Verwandelt das erste Zeichen eines Strings in einen Großbuchstaben
  • ucwords() - Wandelt jeden ersten Buchstaben eines Wortes innerhalb eines Strings in einen Großbuchstaben um


Convert character encoding

  • « mb_convert_case
  • mb_convert_kana »
  • PHP Manual
  • Multibyte String Funktionen
  • Convert character encoding

mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_encoding — Convert character encoding

Beschreibung

mb_convert_encoding ( array|string $string , string $to_encoding , array|string|null $from_encoding = null ) : array|string|false

Converts the character encoding of string to to_encoding from optionally from_encoding. If string is an Array, all its String values will be converted recursively.

Parameter-Liste

string

The String or Array being encoded.

to_encoding

The type of encoding that string is being converted to.

from_encoding

Is specified by character code names before conversion. It is either an array, or a comma separated enumerated list. If from_encoding is not specified, the internal encoding will be used.

See supported encodings.

Rückgabewerte

The encoded String or Array on success, Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | from_encoding is nullable now.
7.2.0 | This function now also accepts an Array as string. Formerly, only Strings have been supported.

Beispiele

Beispiel #1 mb_convert_encoding() example

<?php
/* Convert internal character encoding to SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* Convert EUC-JP to UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

Siehe auch

  • mb_detect_order() - Set/Get character encoding detection order


Convert "kana" one from another ("zen-kaku", "han-kaku" and more)

  • « mb_convert_encoding
  • mb_convert_variables »
  • PHP Manual
  • Multibyte String Funktionen
  • Convert "kana" one from another ("zen-kaku", "han-kaku" and more)

mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_kana — Convert "kana" one from another ("zen-kaku", "han-kaku" and more)

Beschreibung

mb_convert_kana ( string $string , string $mode = "KV" , string|null $encoding = null ) : string

Performs a "han-kaku" - "zen-kaku" conversion for string string. This function is only useful for Japanese.

Parameter-Liste

string

The string being converted.

mode

The conversion option.

Specify with a combination of following options.

Applicable Conversion Options
Option | Meaning
r | Convert "zen-kaku" alphabets to "han-kaku"
R | Convert "han-kaku" alphabets to "zen-kaku"
n | Convert "zen-kaku" numbers to "han-kaku"
N | Convert "han-kaku" numbers to "zen-kaku"
a | Convert "zen-kaku" alphabets and numbers to "han-kaku"
A | Convert "han-kaku" alphabets and numbers to "zen-kaku" (Characters included in "a", "A" options are U+0021 - U+007E excluding U+0022, U+0027, U+005C, U+007E)
s | Convert "zen-kaku" space to "han-kaku" (U+3000 -> U+0020)
S | Convert "han-kaku" space to "zen-kaku" (U+0020 -> U+3000)
k | Convert "zen-kaku kata-kana" to "han-kaku kata-kana"
K | Convert "han-kaku kata-kana" to "zen-kaku kata-kana"
h | Convert "zen-kaku hira-gana" to "han-kaku kata-kana"
H | Convert "han-kaku kata-kana" to "zen-kaku hira-gana"
c | Convert "zen-kaku kata-kana" to "zen-kaku hira-gana"
C | Convert "zen-kaku hira-gana" to "zen-kaku kata-kana"
V | Collapse voiced sound notation and convert them into a character. Use with "K","H"

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

The converted string.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Beispiele

Beispiel #1 mb_convert_kana() example

<?php
/* Convert all "kana" to "zen-kaku" "kata-kana" */
$str = mb_convert_kana($str, "KVC");

/* Convert "han-kaku" "kata-kana" to "zen-kaku" "kata-kana"
   and "zen-kaku" alphanumeric to "han-kaku" */
$str = mb_convert_kana($str, "KVa");
?>


Convert character code in variable(s)

  • « mb_convert_kana
  • mb_decode_mimeheader »
  • PHP Manual
  • Multibyte String Funktionen
  • Convert character code in variable(s)

mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_variables — Convert character code in variable(s)

Beschreibung

mb_convert_variables ( string $to_encoding , array|string $from_encoding , mixed &$var , mixed &...$vars ) : string|false

Converts character encoding of variables var and vars in encoding from_encoding to encoding to_encoding.

mb_convert_variables() join strings in Array or Object to detect encoding, since encoding detection tends to fail for short strings. Therefore, it is impossible to mix encoding in single array or object.

Parameter-Liste

to_encoding

The encoding that the string is being converted to.

from_encoding

from_encoding is specified as an array or comma separated string, it tries to detect encoding from from-coding. When from_encoding is omitted, detect_order is used.

var

var is the reference to the variable being converted. String, Array and Object are accepted. mb_convert_variables() assumes all parameters have the same encoding.

vars

Additional vars.

Rückgabewerte

The character encoding before conversion for success, or false for failure.

Beispiele

Beispiel #1 mb_convert_variables() example

<?php
/* Convert variables $post1, $post2 to internal encoding */
$interenc = mb_internal_encoding();
$inputenc = mb_convert_variables($interenc, "ASCII,UTF-8,SJIS-win", $post1, $post2);
?>


Decode string in MIME header field

  • « mb_convert_variables
  • mb_decode_numericentity »
  • PHP Manual
  • Multibyte String Funktionen
  • Decode string in MIME header field

mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_decode_mimeheader — Decode string in MIME header field

Beschreibung

mb_decode_mimeheader ( string $string ) : string

Decodes encoded-word string string in MIME header.

Parameter-Liste

string

The string being decoded.

Rückgabewerte

The decoded string in internal character encoding.

Siehe auch

  • mb_encode_mimeheader() - Encode string for MIME header


Decode HTML numeric string reference to character

  • « mb_decode_mimeheader
  • mb_detect_encoding »
  • PHP Manual
  • Multibyte String Funktionen
  • Decode HTML numeric string reference to character

mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_decode_numericentity — Decode HTML numeric string reference to character

Beschreibung

mb_decode_numericentity ( string $string , array $map , string|null $encoding = null ) : string

Convert numeric string reference of string string in a specified block to character.

Parameter-Liste

string

The string being decoded.

map

map is an array that specifies the code area to convert.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

is_hex

This parameter is not used.

Rückgabewerte

The converted string.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Beispiele

Beispiel #1 map example

<?php
$convmap = array (
   int start_code1, int end_code1, int offset1, int mask1,
   int start_code2, int end_code2, int offset2, int mask2,
   ........
   int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN,
// then convert value to numeric string reference.
?>

Beispiel #2 map example escapes JavaScript string

<?php
function escape_javascript_string($str) {
  $map = [
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,0,0, // 49
          0,0,0,0,0,0,0,0,1,1,
          1,1,1,1,1,0,0,0,0,0,
          0,0,0,0,0,0,0,0,0,0,
          0,0,0,0,0,0,0,0,0,0,
          0,1,1,1,1,1,1,0,0,0, // 99
          0,0,0,0,0,0,0,0,0,0,
          0,0,0,0,0,0,0,0,0,0,
          0,0,0,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1, // 149
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1, // 199
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1, // 249
          1,1,1,1,1,1,1, // 255
          ];
  // Char encoding is UTF-8
  $mblen = mb_strlen($str, 'UTF-8');
  $utf32 = bin2hex(mb_convert_encoding($str, 'UTF-32', 'UTF-8'));
  for ($i=0, $encoded=''; $i < $mblen; $i++) {
      $u = substr($utf32, $i*8, 8);
      $v = base_convert($u, 16, 10);
      if ($v < 256 && $map[$v]) {
        $encoded .= '\\x'.substr($u, 6,2);
      } else if ($v == 2028) {
        $encoded .= '\\u2028';
      } else if ($v == 2029) {
        $encoded .= '\\u2029';
      } else {
        $encoded .= mb_convert_encoding(hex2bin($u), 'UTF-8', 'UTF-32');
      }
   }
   return $encoded;
}

// Test data
$convmap = [ 0x0, 0xffff, 0, 0xffff ];
$msg = '';
for ($i=0; $i < 1000; $i++) {
  // chr() cannot generate correct UTF-8 data larger value than 128, use mb_decode_numericentity().
  $msg .= mb_decode_numericentity('&#'.$i.';', $convmap, 'UTF-8');
}

// var_dump($msg);
var_dump(escape_javascript_string($msg));

Siehe auch

  • mb_encode_numericentity() - Encode character to HTML numeric string reference


Detect character encoding

  • « mb_decode_numericentity
  • mb_detect_order »
  • PHP Manual
  • Multibyte String Funktionen
  • Detect character encoding

mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_detect_encoding — Detect character encoding

Beschreibung

mb_detect_encoding ( string $string , array|string|null $encodings = null , bool $strict = false ) : string|false

Detects character encoding in string string.

Parameter-Liste

string

The string being detected.

encodings

encodings is list of character encoding. Encoding order may be specified by array or comma separated list string.

If encodings is omitted or null, detect_order is used.

strict

strict specifies whether to use the strict encoding detection or not. Default is false.

Rückgabewerte

The detected character encoding or false if the encoding cannot be detected from the given string.

Beispiele

Beispiel #1 mb_detect_encoding() example

<?php
/* Detect character encoding with current detect_order */
echo mb_detect_encoding($str);

/* "auto" is expanded according to mbstring.language */
echo mb_detect_encoding($str, "auto");

/* Specify "encodings" parameter by list separated by comma */
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

/* Use array to specify "encodings" parameter  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str, $ary);
?>

Siehe auch

  • mb_detect_order() - Set/Get character encoding detection order


Set/Get character encoding detection order

  • « mb_detect_encoding
  • mb_encode_mimeheader »
  • PHP Manual
  • Multibyte String Funktionen
  • Set/Get character encoding detection order

mb_detect_order

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_detect_order — Set/Get character encoding detection order

Beschreibung

mb_detect_order ( array|string|null $encoding = null ) : array|bool

Sets the automatic character encoding detection order to encoding.

Parameter-Liste

encoding

encoding is an array or comma separated list of character encoding. See supported encodings.

If encoding is omitted or null, it returns the current character encoding detection order as array.

This setting affects mb_detect_encoding() and mb_send_mail().

mbstring currently implements the following encoding detection filters. If there is an invalid byte sequence for the following encodings, encoding detection will fail.

UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

For ISO-8859-*, mbstring always detects as ISO-8859-*.

For UTF-16, UTF-32, UCS2 and UCS4, encoding detection will fail always.

Rückgabewerte

When setting the encoding detection order, true is returned on success or false on failure.

When getting the encoding detection order, an ordered array of the encodings is returned.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Beispiele

Beispiel #1 mb_detect_order() examples

<?php
/* Set detection order by enumerated list */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Set detection order by array */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Display current detection order */
echo implode(", ", mb_detect_order());
?>

Beispiel #2 Example showing useless detect orders

; Always detect as ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Always detect as UTF-8, since ASCII/UTF-7 values are
; valid for UTF-8
detect_order = UTF-8, ASCII, UTF-7

Siehe auch

  • mb_internal_encoding() - Set/Get internal character encoding
  • mb_http_input() - Detect HTTP input character encoding
  • mb_http_output() - Set/Get HTTP output character encoding
  • mb_send_mail() - Send encoded mail


Encode string for MIME header

  • « mb_detect_order
  • mb_encode_numericentity »
  • PHP Manual
  • Multibyte String Funktionen
  • Encode string for MIME header

mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_encode_mimeheader — Encode string for MIME header

Beschreibung

mb_encode_mimeheader ( string $string , string|null $charset = null , string|null $transfer_encoding = null , string $newline = "\r\n" , int $indent = 0 ) : string

Encodes a given string string by the MIME header encoding scheme.

Parameter-Liste

string

The string being encoded. Its encoding should be same as mb_internal_encoding().

charset

charset specifies the name of the character set in which string is represented in. The default value is determined by the current NLS setting (mbstring.language).

transfer_encoding

transfer_encoding specifies the scheme of MIME encoding. It should be either "B" (Base64) or "Q" (Quoted-Printable). Falls back to "B" if not given.

newline

newline specifies the EOL (end-of-line) marker with which mb_encode_mimeheader() performs line-folding (a » RFC term, the act of breaking a line longer than a certain length into multiple lines. The length is currently hard-coded to 74 characters). Falls back to "\r\n" (CRLF) if not given.

indent

Indentation of the first line (number of characters in the header before string).

Rückgabewerte

A converted version of the string represented in ASCII.

Changelog

Version | Beschreibung
8.0.0 | charset and transfer_encoding are nullable now.

Beispiele

Beispiel #1 mb_encode_mimeheader() example

<?php
$name = ""; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = mb_encode_mimeheader($name, "UTF-7", "Q") . " <" . $mbox . "@" . $doma . ">";
echo $addr;
?>

Anmerkungen

Hinweis:

This function isn't designed to break lines at higher-level contextual break points (word boundaries, etc.). This behaviour may clutter up the original string with unexpected spaces.

Siehe auch

  • mb_decode_mimeheader() - Decode string in MIME header field


Encode character to HTML numeric string reference

  • « mb_encode_mimeheader
  • mb_encoding_aliases »
  • PHP Manual
  • Multibyte String Funktionen
  • Encode character to HTML numeric string reference

mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_encode_numericentity — Encode character to HTML numeric string reference

Beschreibung

mb_encode_numericentity ( string $string , array $map , string|null $encoding = null , bool $hex = false ) : string

Converts specified character codes in string string from character code to HTML numeric character reference.

Parameter-Liste

string

The string being encoded.

map

map is array specifies code area to convert.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

hex

Whether the returned entity reference should be in hexadecimal notation (otherwise it is in decimal notation).

Rückgabewerte

The converted string.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Beispiele

Beispiel #1 map example

<?php
$convmap = array (
 int start_code1, int end_code1, int offset1, int mask1,
 int start_code2, int end_code2, int offset2, int mask2,
 ........
 int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN, then
// it converts value to numeric string reference.
?>

Beispiel #2 mb_encode_numericentity() example

<?php
/* Convert Left side of ISO-8859-1 to HTML numeric character reference */
$convmap = array(0x80, 0xff, 0, 0xff);
$str = mb_encode_numericentity($str, $convmap, "ISO-8859-1");

/* Convert user defined SJIS-win code in block 95-104 to numeric
   string reference */
$convmap = array(
       0xe000, 0xe03e, 0x1040, 0xffff,
       0xe03f, 0xe0bb, 0x1041, 0xffff,
       0xe0bc, 0xe0fa, 0x1084, 0xffff,
       0xe0fb, 0xe177, 0x1085, 0xffff,
       0xe178, 0xe1b6, 0x10c8, 0xffff,
       0xe1b7, 0xe233, 0x10c9, 0xffff,
       0xe234, 0xe272, 0x110c, 0xffff,
       0xe273, 0xe2ef, 0x110d, 0xffff,
       0xe2f0, 0xe32e, 0x1150, 0xffff,
       0xe32f, 0xe3ab, 0x1151, 0xffff );
$str = mb_encode_numericentity($str, $convmap, "sjis-win");
?>

Siehe auch

  • mb_decode_numericentity() - Decode HTML numeric string reference to character


Get aliases of a known encoding type

  • « mb_encode_numericentity
  • mb_ereg_match »
  • PHP Manual
  • Multibyte String Funktionen
  • Get aliases of a known encoding type

mb_encoding_aliases

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mb_encoding_aliases — Get aliases of a known encoding type

Beschreibung

mb_encoding_aliases ( string $encoding ) : array

Returns an array of aliases for a known encoding type.

Parameter-Liste

encoding

The encoding type being checked, for aliases.

Rückgabewerte

Returns a numerically indexed array of encoding aliases on success, Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Emits an E_WARNING level error if encoding is unknown.

Beispiele

Beispiel #1 mb_encoding_aliases() example

<?php
$encoding        = 'ASCII';
$known_encodings = mb_list_encodings();

if (in_array($encoding, $known_encodings)) {

    $aliases = mb_encoding_aliases($encoding);
    print_r($aliases);

} else {

    echo "Unknown ($encoding) encoding.\n";

}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => ANSI_X3.4-1968
    [1] => iso-ir-6
    [2] => ANSI_X3.4-1986
    [3] => ISO_646.irv:1991
    [4] => US-ASCII
    [5] => ISO646-US
    [6] => us
    [7] => IBM367
    [8] => cp367
    [9] => csASCII
)

Siehe auch

  • mb_list_encodings() - Returns an array of all supported encodings


Regular expression match for multibyte string

  • « mb_encoding_aliases
  • mb_ereg_replace_callback »
  • PHP Manual
  • Multibyte String Funktionen
  • Regular expression match for multibyte string

mb_ereg_match

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_match — Regular expression match for multibyte string

Beschreibung

mb_ereg_match ( string $pattern , string $string , string|null $options = null ) : bool

A regular expression match for a multibyte string

Parameter-Liste

pattern

The regular expression pattern.

string

The string being evaluated.

options

The search option. See mb_regex_set_options() for explanation.

Rückgabewerte

Returns true if string matches the regular expression pattern, false if not.

Changelog

Version | Beschreibung
8.0.0 | options is nullable now.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg() - Regular expression match with multibyte support


Perform a regular expression search and replace with multibyte support using a callback

  • « mb_ereg_match
  • mb_ereg_replace »
  • PHP Manual
  • Multibyte String Funktionen
  • Perform a regular expression search and replace with multibyte support using a callback

mb_ereg_replace_callback

(PHP 5 >= 5.4.1, PHP 7, PHP 8)

mb_ereg_replace_callback — Perform a regular expression search and replace with multibyte support using a callback

Beschreibung

mb_ereg_replace_callback ( string $pattern , callable $callback , string $string , string|null $options = null ) : string|false|null

Scans string for matches to pattern, then replaces the matched text with the output of callback function.

The behavior of this function is almost identical to mb_ereg_replace(), except for the fact that instead of replacement parameter, one should specify a callback.

Parameter-Liste

pattern

The regular expression pattern.

Multibyte characters may be used in pattern.

callback

A callback that will be called and passed an array of matched elements in the subject string. The callback should return the replacement string.

You'll often need the callback function for a mb_ereg_replace_callback() in just one place. In this case you can use an anonymous function to declare the callback within the call to mb_ereg_replace_callback(). By doing it this way you have all information for the call in one place and do not clutter the function namespace with a callback function's name not used anywhere else.

string

The string being checked.

options

The search option. See mb_regex_set_options() for explanation.

Rückgabewerte

The resultant string on success, or false on error. If string is not valid for the current encoding, null is returned.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Changelog

Version | Beschreibung
8.0.0 | options is nullable now.
7.1.0 | The function checks whether string is valid for the current encoding.

Beispiele

Beispiel #1 mb_ereg_replace_callback() example

<?php
// this text was used in 2002
// we want to get this up to date for 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
// the callback function
function next_year($matches)
{
  // as usual: $matches[0] is the complete match
  // $matches[1] the match for the first subpattern
  // enclosed in '(...)' and so on
  return $matches[1].($matches[2]+1);
}
echo mb_ereg_replace_callback(
            "(\d{2}/\d{2}/)(\d{4})",
            "next_year",
            $text);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

April fools day is 04/01/2003
Last christmas was 12/24/2002

Beispiel #2 mb_ereg_replace_callback() using anonymous function supported in PHP 5.3.0 or later

<?php
// this text was used in 2002
// we want to get this up to date for 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";

echo mb_ereg_replace_callback(
            "(\d{2}/\d{2}/)(\d{4})",
            function ($matches) {
               return $matches[1].($matches[2]+1);
            },
            $text);
?>

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_replace() - Replace regular expression with multibyte support
  • Anonymous functions


Replace regular expression with multibyte support

  • « mb_ereg_replace_callback
  • mb_ereg_search_getpos »
  • PHP Manual
  • Multibyte String Funktionen
  • Replace regular expression with multibyte support

mb_ereg_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_replace — Replace regular expression with multibyte support

Beschreibung

mb_ereg_replace ( string $pattern , string $replacement , string $string , string|null $options = null ) : string|false|null

Scans string for matches to pattern, then replaces the matched text with replacement

Parameter-Liste

pattern

The regular expression pattern.

Multibyte characters may be used in pattern.

replacement

The replacement text.

string

The string being checked.

options
The search option. See mb_regex_set_options() for explanation.

Rückgabewerte

The resultant string on success, or false on error. If string is not valid for the current encoding, null is returned.

Changelog

Version | Beschreibung
8.0.0 | options is nullable now.
7.1.0 | The function checks whether string is valid for the current encoding.
7.1.0 | The e modifier has been deprecated.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Warnung

Nutzen sie niemals den e Modifikator, wenn sie mit ungesicherten Eingaben arbeiten. Es gibt keine automatische Maskierung wie man sie von preg_replace() kennt). Nichtbeachtung dessen, wird aller Wahrscheinlichkeit nach "remote code execution" Schwachstellen in ihrer Anwendung erzeugen.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_eregi_replace() - Replace regular expression with multibyte support ignoring case


Returns start point for next regular expression match

  • « mb_ereg_replace
  • mb_ereg_search_getregs »
  • PHP Manual
  • Multibyte String Funktionen
  • Returns start point for next regular expression match

mb_ereg_search_getpos

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_getpos — Returns start point for next regular expression match

Beschreibung

mb_ereg_search_getpos ( ) : int

Returns the start point for the next regular expression match.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

mb_ereg_search_getpos() returns
the point to start regular expression match for
mb_ereg_search(),
mb_ereg_search_pos(),
mb_ereg_search_regs(). The position is
represented by bytes from the head of string.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_setpos() - Set start point of next regular expression match


Retrieve the result from the last multibyte regular expression match

  • « mb_ereg_search_getpos
  • mb_ereg_search_init »
  • PHP Manual
  • Multibyte String Funktionen
  • Retrieve the result from the last multibyte regular expression match

mb_ereg_search_getregs

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_getregs — Retrieve the result from the last multibyte regular expression match

Beschreibung

mb_ereg_search_getregs ( ) : array|false

Retrieve the result from the last multibyte regular expression match

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array including the sub-string of matched part by last mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). If there are some matches, the first element will have the matched sub-string, the second element will have the first part grouped with brackets, the third element will have the second part grouped with brackets, and so on. It returns false on error.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_init() - Setup string and regular expression for a multibyte regular expression match


Setup string and regular expression for a multibyte regular expression match

  • « mb_ereg_search_getregs
  • mb_ereg_search_pos »
  • PHP Manual
  • Multibyte String Funktionen
  • Setup string and regular expression for a multibyte regular expression match

mb_ereg_search_init

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_init — Setup string and regular expression for a multibyte regular expression match

Beschreibung

mb_ereg_search_init ( string $string , string|null $pattern = null , string|null $options = null ) : bool

mb_ereg_search_init() sets
string and pattern
for a multibyte regular expression. These values are used for
mb_ereg_search(),
mb_ereg_search_pos(), and
mb_ereg_search_regs().

Parameter-Liste

string

The search string.

pattern

The search pattern.

options

The search option. See mb_regex_set_options() for explanation.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | pattern and options are nullable now.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_regs() - Returns the matched part of a multibyte regular expression


Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string

  • « mb_ereg_search_init
  • mb_ereg_search_regs »
  • PHP Manual
  • Multibyte String Funktionen
  • Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string

mb_ereg_search_pos

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_pos — Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string

Beschreibung

mb_ereg_search_pos ( string|null $pattern = null , string|null $options = null ) : array|false

Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string

The string for match is specified by mb_ereg_search_init(). If it is not specified, the previous one will be used.

Parameter-Liste

pattern

The search pattern.

options

The search option. See mb_regex_set_options() for explanation.

Rückgabewerte

An array containing two elements. The first element is the offset, in bytes, where the match begins relative to the start of the search string, and the second element is the length in bytes of the match.

If an error occurs, false is returned.

Changelog

Version | Beschreibung
8.0.0 | pattern and options are nullable now.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_init() - Setup string and regular expression for a multibyte regular expression match


Returns the matched part of a multibyte regular expression

  • « mb_ereg_search_pos
  • mb_ereg_search_setpos »
  • PHP Manual
  • Multibyte String Funktionen
  • Returns the matched part of a multibyte regular expression

mb_ereg_search_regs

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_regs — Returns the matched part of a multibyte regular expression

Beschreibung

mb_ereg_search_regs ( string|null $pattern = null , string|null $options = null ) : array|false

Returns the matched part of a multibyte regular expression.

Parameter-Liste

pattern

The search pattern.

options

The search option. See mb_regex_set_options() for explanation.

Rückgabewerte

mb_ereg_search_regs() executes the multibyte regular expression match, and if there are some matched part, it returns an array including substring of matched part as first element, the first grouped part with brackets as second element, the second grouped part as third element, and so on. It returns false on error.

Changelog

Version | Beschreibung
8.0.0 | pattern and options are nullable now.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_init() - Setup string and regular expression for a multibyte regular expression match


Set start point of next regular expression match

  • « mb_ereg_search_regs
  • mb_ereg_search »
  • PHP Manual
  • Multibyte String Funktionen
  • Set start point of next regular expression match

mb_ereg_search_setpos

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_setpos — Set start point of next regular expression match

Beschreibung

mb_ereg_search_setpos ( int $offset ) : bool

mb_ereg_search_setpos() sets the starting point of a match for mb_ereg_search().

Parameter-Liste

offset

The position to set. If it is negative, it counts from the end of the string.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | Support for negative offsets has been added.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_init() - Setup string and regular expression for a multibyte regular expression match


Multibyte regular expression match for predefined multibyte string

  • « mb_ereg_search_setpos
  • mb_ereg »
  • PHP Manual
  • Multibyte String Funktionen
  • Multibyte regular expression match for predefined multibyte string

mb_ereg_search

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search — Multibyte regular expression match for predefined multibyte string

Beschreibung

mb_ereg_search ( string|null $pattern = null , string|null $options = null ) : bool

Performs a multibyte regular expression match for a predefined multibyte string.

Parameter-Liste

pattern

The search pattern.

options

The search option. See mb_regex_set_options() for explanation.

Rückgabewerte

mb_ereg_search() returns true if the multibyte string matches with the regular expression, or false otherwise. The string for matching is set by mb_ereg_search_init(). If pattern is not specified, the previous one is used.

Changelog

Version | Beschreibung
8.0.0 | pattern and options are nullable now.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_init() - Setup string and regular expression for a multibyte regular expression match


Regular expression match with multibyte support

  • « mb_ereg_search
  • mb_eregi_replace »
  • PHP Manual
  • Multibyte String Funktionen
  • Regular expression match with multibyte support

mb_ereg

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg — Regular expression match with multibyte support

Beschreibung

mb_ereg ( string $pattern , string $string , array &$matches = null ) : bool

Executes the regular expression match with multibyte support.

Parameter-Liste

pattern

The search pattern.

string

The search string.

matches

If matches are found for parenthesized substrings of pattern and the function is called with the third argument matches, the matches will be stored in the elements of the array matches. If no matches are found, matches is set to an empty array.

$matches[1] will contain the substring which starts at the first left parenthesis; $matches[2] will contain the substring starting at the second, and so on. $matches[0] will contain a copy of the complete string matched.

Rückgabewerte

Returns whether pattern matches string.

Changelog

Version | Beschreibung
8.0.0 | This function returns true on success now. Previously, it returned the byte length of the matched string if a match for pattern was found in string and matches was passed. If the optional parameter matches was not passed or the length of the matched string was 0, this function returned 1.
7.1.0 | mb_ereg() will now set matches to an empty array, if nothing matched. Formerly, matches was not modified in that case.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_eregi() - Regular expression match ignoring case with multibyte support


Replace regular expression with multibyte support ignoring case

  • « mb_ereg
  • mb_eregi »
  • PHP Manual
  • Multibyte String Funktionen
  • Replace regular expression with multibyte support ignoring case

mb_eregi_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_eregi_replace — Replace regular expression with multibyte support ignoring case

Beschreibung

mb_eregi_replace ( string $pattern , string $replacement , string $string , string|null $options = null ) : string|false|null

Scans string for matches to pattern, then replaces the matched text with replacement.

Parameter-Liste

pattern

The regular expression pattern. Multibyte characters may be used. The case will be ignored.

replacement

The replacement text.

string

The searched string.

options
The search option. See mb_regex_set_options() for explanation.

Rückgabewerte

The resultant string or false on error. If string is not valid for the current encoding, null is returned.

Changelog

Version | Beschreibung
8.0.0 | options is nullable now.
7.1.0 | The function checks whether string is valid for the current encoding.
7.1.0 | The e modifier has been deprecated.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Warnung

Nutzen sie niemals den e Modifikator, wenn sie mit ungesicherten Eingaben arbeiten. Es gibt keine automatische Maskierung wie man sie von preg_replace() kennt). Nichtbeachtung dessen, wird aller Wahrscheinlichkeit nach "remote code execution" Schwachstellen in ihrer Anwendung erzeugen.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_replace() - Replace regular expression with multibyte support


Regular expression match ignoring case with multibyte support

  • « mb_eregi_replace
  • mb_get_info »
  • PHP Manual
  • Multibyte String Funktionen
  • Regular expression match ignoring case with multibyte support

mb_eregi

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_eregi — Regular expression match ignoring case with multibyte support

Beschreibung

mb_eregi ( string $pattern , string $string , array &$matches = null ) : bool

Executes the case insensitive regular expression match with multibyte support.

Parameter-Liste

pattern

The regular expression pattern.

string

The string being searched.

matches

If matches are found for parenthesized substrings of pattern and the function is called with the third argument matches, the matches will be stored in the elements of the array matches. If no matches are found, matches is set to an empty array.

$matches[1] will contain the substring which starts at the first left parenthesis; $matches[2] will contain the substring starting at the second, and so on. $matches[0] will contain a copy of the complete string matched.

Rückgabewerte

Returns whether pattern matches string.

Changelog

Version | Beschreibung
8.0.0 | This function returns true on success now. Previously, it returned the byte length of the matched string if a match for pattern was found in string and matches was passed. If the optional parameter matches was not passed or the length of the matched string was 0, this function returned 1.
7.1.0 | mb_eregi() will now set matches to an empty array, if nothing matched. Formerly, matches was not modified in that case.

Anmerkungen

Hinweis:

Die interne Kodierung oder die mit mb_regex_encoding() festgelegte Zeichenkodierung wird als Zeichenkodierung für diese Funktion genutzt.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg() - Regular expression match with multibyte support


Get internal settings of mbstring

  • « mb_eregi
  • mb_http_input »
  • PHP Manual
  • Multibyte String Funktionen
  • Get internal settings of mbstring

mb_get_info

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_get_info — Get internal settings of mbstring

Beschreibung

mb_get_info ( string $type = "all" ) : array|string|int|false

mb_get_info() returns the internal setting parameters of mbstring.

Parameter-Liste

type

If type is not specified or is specified as "all", "internal_encoding", "http_input", "http_output", "http_output_conv_mimetypes", "mail_charset", "mail_header_encoding", "mail_body_encoding", "illegal_chars", "encoding_translation", "language", "detect_order", "substitute_character" and "strict_detection" will be returned.

If type is specified as "internal_encoding", "http_input", "http_output", "http_output_conv_mimetypes", "mail_charset", "mail_header_encoding", "mail_body_encoding", "illegal_chars", "encoding_translation", "language", "detect_order", "substitute_character" or "strict_detection" the specified setting parameter will be returned.

Rückgabewerte

An array of type information if type is not specified, otherwise a specific type, Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | The types "func_overload" and "func_overload_list" are no longer supported.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_http_output() - Set/Get HTTP output character encoding


Detect HTTP input character encoding

  • « mb_get_info
  • mb_http_output »
  • PHP Manual
  • Multibyte String Funktionen
  • Detect HTTP input character encoding

mb_http_input

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_http_input — Detect HTTP input character encoding

Beschreibung

mb_http_input ( string|null $type = null ) : array|string|false

Detects the HTTP input character encoding.

Parameter-Liste

type

Input string specifies the input type. "G" for GET, "P" for POST, "C" for COOKIE, "S" for string, "L" for list, and "I" for the whole list (will return array). If type is omitted, it returns the last input type processed.

Rückgabewerte

The character encoding name, as per the type, or an array of character encoding names, if type is "I". If mb_http_input() does not process specified HTTP input, it returns false.

Changelog

Version | Beschreibung
8.0.0 | type is nullable now.

Siehe auch

  • mb_internal_encoding() - Set/Get internal character encoding
  • mb_http_output() - Set/Get HTTP output character encoding
  • mb_detect_order() - Set/Get character encoding detection order


Set/Get HTTP output character encoding

  • « mb_http_input
  • mb_internal_encoding »
  • PHP Manual
  • Multibyte String Funktionen
  • Set/Get HTTP output character encoding

mb_http_output

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_http_output — Set/Get HTTP output character encoding

Beschreibung

mb_http_output ( string|null $encoding = null ) : string|bool

Set/Get the HTTP output character encoding. Output after this function is called will be converted from the set internal encoding to encoding.

Parameter-Liste

encoding

If encoding is set, mb_http_output() sets the HTTP output character encoding to encoding.

If encoding is omitted, mb_http_output() returns the current HTTP output character encoding.

Rückgabewerte

If encoding is omitted, mb_http_output() returns the current HTTP output character encoding. Otherwise, Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • mb_internal_encoding() - Set/Get internal character encoding
  • mb_http_input() - Detect HTTP input character encoding
  • mb_detect_order() - Set/Get character encoding detection order


Set/Get internal character encoding

  • « mb_http_output
  • mb_language »
  • PHP Manual
  • Multibyte String Funktionen
  • Set/Get internal character encoding

mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_internal_encoding — Set/Get internal character encoding

Beschreibung

mb_internal_encoding ( string|null $encoding = null ) : string|bool

Set/Get the internal character encoding

Parameter-Liste

encoding

encoding is the character encoding name used for the HTTP input character encoding conversion, HTTP output character encoding conversion, and the default character encoding for string functions defined by the mbstring module. You should notice that the internal encoding is totally different from the one for multibyte regex.

Rückgabewerte

If encoding is set, then Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. In this case, the character encoding for multibyte regex is NOT changed. If encoding is omitted, then the current character encoding name is returned.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Beispiele

Beispiel #1 mb_internal_encoding() example

<?php
/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

/* Display current internal character encoding */
echo mb_internal_encoding();
?>

Siehe auch

  • mb_http_input() - Detect HTTP input character encoding
  • mb_http_output() - Set/Get HTTP output character encoding
  • mb_detect_order() - Set/Get character encoding detection order
  • mb_regex_encoding() - Set/Get character encoding for multibyte regex


Set/Get current language

  • « mb_internal_encoding
  • mb_list_encodings »
  • PHP Manual
  • Multibyte String Funktionen
  • Set/Get current language

mb_language

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_language — Set/Get current language

Beschreibung

mb_language ( string|null $language = null ) : string|bool

Set/Get the current language.

Parameter-Liste

language

Used for encoding e-mail messages. The valid languages are listed in the following table. mb_send_mail() uses this setting to encode e-mail.

Language | Charset | Encoding | Alias
German/de | ISO-8859-15 | Quoted-Printable | Deutsch
English/en | ISO-8859-1 | Quoted-Printable
Armenian/hy | ArmSCII-8 | Quoted-Printable
Japanese/ja | ISO-2022-JP | BASE64
Korean/ko | ISO-2022-KR | BASE64
neutral | UTF-8 | BASE64
Russian/ru | KOI8-R | Quoted-Printable
Turkish/tr | ISO-8859-9 | Quoted-Printable
Ukrainian/ua | KOI8-U | Quoted-Printable
uni | UTF-8 | BASE64 | universal
Simplified Chinese/zh-cn | HZ | BASE64
Traditional Chinese/zh-tw | BIG-5 | BASE64

Rückgabewerte

If language is set and language is valid, it returns true. Otherwise, it returns false. When language is omitted or null, it returns the language name as a string.

Changelog

Version | Beschreibung
8.0.0 | language is nullable now.

Siehe auch

  • mb_send_mail() - Send encoded mail


Returns an array of all supported encodings

  • « mb_language
  • mb_ord »
  • PHP Manual
  • Multibyte String Funktionen
  • Returns an array of all supported encodings

mb_list_encodings

(PHP 5, PHP 7, PHP 8)

mb_list_encodings — Returns an array of all supported encodings

Beschreibung

mb_list_encodings ( ) : array

Returns an array containing all supported encodings.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a numerically indexed array.

Fehler/Exceptions

This function does not emit any errors.

Beispiele

Beispiel #1 mb_list_encodings() example

<?php

print_r(mb_list_encodings());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => pass
    [1] => auto
    [2] => wchar
    [3] => byte2be
    [4] => byte2le
    [5] => byte4be
    [6] => byte4le
    [7] => BASE64
    [8] => UUENCODE
    [9] => HTML-ENTITIES
    [10] => Quoted-Printable
    [11] => 7bit
    [12] => 8bit
    [13] => UCS-4
    [14] => UCS-4BE
    [15] => UCS-4LE
    [16] => UCS-2
    [17] => UCS-2BE
    [18] => UCS-2LE
    [19] => UTF-32
    [20] => UTF-32BE
    [21] => UTF-32LE
    [22] => UTF-16
    [23] => UTF-16BE
    [24] => UTF-16LE
    [25] => UTF-8
    [26] => UTF-7
    [27] => UTF7-IMAP
    [28] => ASCII
    [29] => EUC-JP
    [30] => SJIS
    [31] => eucJP-win
    [32] => SJIS-win
    [33] => JIS
    [34] => ISO-2022-JP
    [35] => Windows-1252
    [36] => ISO-8859-1
    [37] => ISO-8859-2
    [38] => ISO-8859-3
    [39] => ISO-8859-4
    [40] => ISO-8859-5
    [41] => ISO-8859-6
    [42] => ISO-8859-7
    [43] => ISO-8859-8
    [44] => ISO-8859-9
    [45] => ISO-8859-10
    [46] => ISO-8859-13
    [47] => ISO-8859-14
    [48] => ISO-8859-15
    [49] => EUC-CN
    [50] => CP936
    [51] => HZ
    [52] => EUC-TW
    [53] => BIG-5
    [54] => EUC-KR
    [55] => UHC
    [56] => ISO-2022-KR
    [57] => Windows-1251
    [58] => CP866
    [59] => KOI8-R
)


Get code point of character

  • « mb_list_encodings
  • mb_output_handler »
  • PHP Manual
  • Multibyte String Funktionen
  • Get code point of character

mb_ord

(PHP 7 >= 7.2.0, PHP 8)

mb_ord — Get code point of character

Beschreibung

mb_ord ( string $string , string|null $encoding = null ) : int|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

string

encoding

Rückgabewerte

Returns a code point of characterIm Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • mb_chr() - Get a specific character
  • ord() - Konvertiert das erste Byte einer Zeichenkette in einen Wert zwischen 0 und 255


Callback function converts character encoding in output buffer

  • « mb_ord
  • mb_parse_str »
  • PHP Manual
  • Multibyte String Funktionen
  • Callback function converts character encoding in output buffer

mb_output_handler

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_output_handler — Callback function converts character encoding in output buffer

Beschreibung

mb_output_handler ( string $string , int $status ) : string

mb_output_handler() is
ob_start() callback
function. mb_output_handler() converts
characters in the output buffer from internal character encoding to
HTTP output character encoding.

Parameter-Liste

string

The contents of the output buffer.

status

The status of the output buffer.

Rückgabewerte

The converted string.

Beispiele

Beispiel #1 mb_output_handler() example

<?php
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>

Anmerkungen

Hinweis:

If you want to output binary data, such as an image, a Content-Type: header must be set using header() before any binary data is sent to the client (e.g. header("Content-Type: image/png")). If Content-Type: header is sent, output character encoding conversion will not be performed.

Note that if 'Content-Type: text/*' is sent, the content body is regarded as text; conversion will take place.

Siehe auch

  • ob_start() - Ausgabepufferung aktivieren


Parse GET/POST/COOKIE data and set global variable

  • « mb_output_handler
  • mb_preferred_mime_name »
  • PHP Manual
  • Multibyte String Funktionen
  • Parse GET/POST/COOKIE data and set global variable

mb_parse_str

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_parse_str — Parse GET/POST/COOKIE data and set global variable

Beschreibung

mb_parse_str ( string $string , array &$result ) : bool

Parses GET/POST/COOKIE data and sets global variables. Since PHP does not provide raw POST/COOKIE data, it can only be used for GET data for now. It parses URL encoded data, detects encoding, converts coding to internal encoding and set values to the result array or global variables.

Parameter-Liste

string

The URL encoded data.

result

An array containing decoded and character encoded converted values.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | The second parameter was no longer optional.
7.2.0 | Calling mb_parse_str() without the second parameter was deprecated.

Siehe auch

  • mb_detect_order() - Set/Get character encoding detection order
  • mb_internal_encoding() - Set/Get internal character encoding


Get MIME charset string

  • « mb_parse_str
  • mb_regex_encoding »
  • PHP Manual
  • Multibyte String Funktionen
  • Get MIME charset string

mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_preferred_mime_name — Get MIME charset string

Beschreibung

mb_preferred_mime_name ( string $encoding ) : string|false

Get a MIME charset string for a specific encoding.

Parameter-Liste

encoding

The encoding being checked.

Rückgabewerte

The MIME charset string for character encoding encoding, or false if no charset is preferred for the given encoding.

Beispiele

Beispiel #1 mb_preferred_mime_name() example

<?php
$outputenc = "sjis-win";
mb_http_output($outputenc);
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=" . mb_preferred_mime_name($outputenc));
?>


Set/Get character encoding for multibyte regex

  • « mb_preferred_mime_name
  • mb_regex_set_options »
  • PHP Manual
  • Multibyte String Funktionen
  • Set/Get character encoding for multibyte regex

mb_regex_encoding

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_regex_encoding — Set/Get character encoding for multibyte regex

Beschreibung

mb_regex_encoding ( string|null $encoding = null ) : string|bool

Set/Get character encoding for a multibyte regex.

Parameter-Liste

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

If encoding is set, then Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. In this case, the internal character encoding is NOT changed. If encoding is omitted, then the current character encoding name for a multibyte regex is returned.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.
5.6.0 | Default encoding is changed to UTF-8. It was EUC-JP Previously.

Siehe auch

  • mb_internal_encoding() - Set/Get internal character encoding
  • mb_ereg() - Regular expression match with multibyte support


Set/Get the default options for mbregex functions

  • « mb_regex_encoding
  • mb_scrub »
  • PHP Manual
  • Multibyte String Funktionen
  • Set/Get the default options for mbregex functions

mb_regex_set_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_regex_set_options — Set/Get the default options for mbregex functions

Beschreibung

mb_regex_set_options ( string|null $options = null ) : string

Sets the default options described by options for multibyte regex functions.

Parameter-Liste

options

The options to set. This is a string where each character is an option. To set a mode, the mode character must be the last one set, however there can only be set one mode but multiple options.

Regex options
Option | Meaning
i | Ambiguity match on
x | Enables extended pattern form
m | '.' matches with newlines
s | '^' -> '\A', '$' -> '\Z'
p | Same as both the m and s options
l | Finds longest matches
n | Ignores empty matches
e | eval() resulting code
Regex syntax modes
Mode | Meaning
j | Java (Sun java.util.regex)
u | GNU regex
g | grep
c | Emacs
r | Ruby
z | Perl
b | POSIX Basic regex
d | POSIX Extended regex

Rückgabewerte

The previous options. If options is omitted or null, it returns the string that describes the current options.

Changelog

Version | Beschreibung
8.0.0 | If the parameter options is given and not null, the previous options are returned. Formerly, the current options have been returned.
8.0.0 | options is nullable now.

Siehe auch

  • mb_split() - Split multibyte string using regular expression
  • mb_ereg() - Regular expression match with multibyte support
  • mb_eregi() - Regular expression match ignoring case with multibyte support


Description

  • « mb_regex_set_options
  • mb_send_mail »
  • PHP Manual
  • Multibyte String Funktionen
  • Description

mb_scrub

(PHP 7 >= 7.2.0, PHP 8)

mb_scrub — Description

Beschreibung

mb_scrub ( string $string , string|null $encoding = null ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

string

encoding

Rückgabewerte

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.


Send encoded mail

  • « mb_scrub
  • mb_split »
  • PHP Manual
  • Multibyte String Funktionen
  • Send encoded mail

mb_send_mail

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_send_mail — Send encoded mail

Beschreibung

mb_send_mail ( string $to , string $subject , string $message , array|string $additional_headers = [] , string|null $additional_params = null ) : bool

Sends email. Headers and messages are converted and encoded according to the mb_language() setting. It's a wrapper function for mail(), so see also mail() for details.

Parameter-Liste

to

The mail addresses being sent to. Multiple recipients may be specified by putting a comma between each address in to. This parameter is not automatically encoded.

subject

The subject of the mail.

message

The message of the mail.

additional_headers (optional)

String or array to be inserted at the end of the email header.

This is typically used to add extra headers (From, Cc, and Bcc). Multiple extra headers should be separated with a CRLF (\r\n). Validate parameter not to be injected unwanted headers by attackers.

If an array is passed, its keys are the header names and its values are the respective header values.

Hinweis:

When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini.

Failing to do this will result in an error message similar to Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. The From header sets also Return-Path under Windows.

Hinweis:

If messages are not received, try using a LF (\n) only. Some Unix mail transfer agents (most notably » qmail) replace LF by CRLF automatically (which leads to doubling CR if CRLF is used). This should be a last resort, as it does not comply with » RFC 2822.

additional_params

additional_params is a MTA command line parameter. It is useful when setting the correct Return-Path header when using sendmail.

This parameter is escaped by escapeshellcmd() internally to prevent command execution. escapeshellcmd() prevents command execution, but allows to add additional parameters. For security reason, this parameter should be validated.

Since escapeshellcmd() is applied automatically, some characters that are allowed as email addresses by internet RFCs cannot be used. Programs that are required to use these characters mail() cannot be used.

The user that the webserver runs as should be added as a trusted user to the sendmail configuration to prevent a 'X-Warning' header from being added to the message when the envelope sender (-f) is set using this method. For sendmail users, this file is /etc/mail/trusted-users.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | additional_params is nullable now.
7.2.0 | The additional_headers parameter now also accepts an array.

Siehe auch

  • mail() - Sendet eine E-Mail
  • mb_encode_mimeheader() - Encode string for MIME header
  • mb_language() - Set/Get current language


Split multibyte string using regular expression

  • « mb_send_mail
  • mb_str_split »
  • PHP Manual
  • Multibyte String Funktionen
  • Split multibyte string using regular expression

mb_split

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_split — Split multibyte string using regular expression

Beschreibung

mb_split ( string $pattern , string $string , int $limit = -1 ) : array|false

Split a multibyte string using regular expression pattern and returns the result as an array.

Parameter-Liste

pattern

The regular expression pattern.

string

The string being split.

limit
If optional parameter limit is specified, it will be split in limit elements as maximum.

Rückgabewerte

The result as an array, Im Fehlerfall wird false zurückgegeben..

Anmerkungen

Hinweis:

Die durch mb_regex_encoding() angegebene Zeichenkodierung wird von dieser Funktion als die Standardkodierung verwendet.

Siehe auch

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg() - Regular expression match with multibyte support


Given a multibyte string, return an array of its characters

  • « mb_split
  • mb_strcut »
  • PHP Manual
  • Multibyte String Funktionen
  • Given a multibyte string, return an array of its characters

mb_str_split

(PHP 7 >= 7.4.0, PHP 8)

mb_str_split — Given a multibyte string, return an array of its characters

Beschreibung

mb_str_split ( string $string , int $length = 1 , string|null $encoding = null ) : array

This function will return an array of strings, it is a version of str_split() with support for encodings of variable character size as well as fixed-size encodings of 1,2 or 4 byte characters. If the length parameter is specified, the string is broken down into chunks of the specified length in characters (not bytes). The encoding parameter can be optionally specified and it is good practice to do so.

Parameter-Liste

string

The String to split into characters or chunks.

length

If specified, each element of the returned array will be composed of multiple characters instead of a single character.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

A string specifying one of the supported encodings.

Rückgabewerte

mb_str_split() returns an array of strings.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.
8.0.0 | This function no longer returns false on failure.

Siehe auch

  • str_split() - Konvertiert einen String in ein Array


Get part of string

  • « mb_str_split
  • mb_strimwidth »
  • PHP Manual
  • Multibyte String Funktionen
  • Get part of string

mb_strcut

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strcut — Get part of string

Beschreibung

mb_strcut ( string $string , int $start , int|null $length = null , string|null $encoding = null ) : string

mb_strcut() extracts a substring from a string similarly to mb_substr(), but operates on bytes instead of characters. If the cut position happens to be between two bytes of a multi-byte character, the cut is performed starting from the first byte of that character. This is also the difference to the substr() function, which would simply cut the string between the bytes and thus result in a malformed byte sequence.

Parameter-Liste

string

The string being cut.

start

If start is non-negative, the returned string will start at the start'th byte position in string, counting from zero. For instance, in the string 'abcdef', the byte at position 0 is 'a', the byte at position 2 is 'c', and so forth.

If start is negative, the returned string will start at the start'th byte counting back from the end of string. However, if the magnitude of a negative start is greater than the length of the string, the returned portion will start from the beginning of string.

length

Length in bytes. If omitted or NULL is passed, extract all bytes to the end of the string.

If length is negative, the returned string will end at the length'th byte counting back from the end of string. However, if the magnitude of a negative length is greater than the number of characters after the start position, an empty string will be returned.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

mb_strcut() returns the portion of string specified by the start and length parameters.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • mb_substr() - Get part of string
  • mb_internal_encoding() - Set/Get internal character encoding


Get truncated string with specified width

  • « mb_strcut
  • mb_stripos »
  • PHP Manual
  • Multibyte String Funktionen
  • Get truncated string with specified width

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strimwidth — Get truncated string with specified width

Beschreibung

mb_strimwidth ( string $string , int $start , int $width , string $trim_marker = "" , string|null $encoding = null ) : string

Truncates string string to specified width, where halfwidth characters count as 1, and fullwidth characters count as 2. See » http://www.unicode.org/reports/tr11/ for details regarding East Asian character widths.

Parameter-Liste

string

The string being decoded.

start

The start position offset. Number of characters from the beginning of string (first character is 0), or if start is negative, number of characters from the end of the string.

width

The width of the desired trim. Negative widths count from the end of the string.

trim_marker

A string that is added to the end of string when string is truncated.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

The truncated string. If trim_marker is set, trim_marker replaces the last chars to match the width.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.
7.1.0 | Support for negative starts and widths has been added.

Beispiele

Beispiel #1 mb_strimwidth() example

<?php
echo mb_strimwidth("Hello World", 0, 10, "...");
// output: "Hello W..."
?>

Siehe auch

  • mb_strwidth() - Return width of string
  • mb_internal_encoding() - Set/Get internal character encoding


Finds position of first occurrence of a string within another, case insensitive

  • « mb_strimwidth
  • mb_stristr »
  • PHP Manual
  • Multibyte String Funktionen
  • Finds position of first occurrence of a string within another, case insensitive

mb_stripos

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_stripos — Finds position of first occurrence of a string within another, case insensitive

Beschreibung

mb_stripos ( string $haystack , string $needle , int $offset = 0 , string|null $encoding = null ) : int|false

mb_stripos() returns the numeric position of the first occurrence of needle in the haystack string. Unlike mb_strpos(), mb_stripos() is case-insensitive. If needle is not found, it returns false.

Parameter-Liste

haystack

The string from which to get the position of the first occurrence of needle

needle

The string to find in haystack

offset

The position in haystack to start searching. A negative offset counts from the end of the string.

encoding

Character encoding name to use. If it is omitted, internal character encoding is used.

Rückgabewerte

Return the numeric position of the first occurrence of needle in the haystack string, or false if needle is not found.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.
7.1.0 | Support for negative offsets has been added.

Siehe auch

  • stripos() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
  • strpos() - Sucht die Position des ersten Vorkommens des Suchstrings in einem String
  • mb_strpos() - Find position of first occurrence of string in a string


Finds first occurrence of a string within another, case insensitive

  • « mb_stripos
  • mb_strlen »
  • PHP Manual
  • Multibyte String Funktionen
  • Finds first occurrence of a string within another, case insensitive

mb_stristr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_stristr — Finds first occurrence of a string within another, case insensitive

Beschreibung

mb_stristr ( string $haystack , string $needle , bool $before_needle = false , string|null $encoding = null ) : string|false

mb_stristr() finds the first occurrence of needle in haystack and returns the portion of haystack. Unlike mb_strstr(), mb_stristr() is case-insensitive. If needle is not found, it returns false.

Parameter-Liste

haystack

The string from which to get the first occurrence of needle

needle

The string to find in haystack

before_needle

Determines which portion of haystack this function returns. If set to true, it returns all of haystack from the beginning to the first occurrence of needle (excluding needle). If set to false, it returns all of haystack from the first occurrence of needle to the end (including needle).

encoding

Character encoding name to use. If it is omitted, internal character encoding is used.

Rückgabewerte

Returns the portion of haystack, or false if needle is not found.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • strstr() - Findet das erste Vorkommen eines Strings
  • mb_strstr() - Finds first occurrence of a string within another


Get string length

  • « mb_stristr
  • mb_strpos »
  • PHP Manual
  • Multibyte String Funktionen
  • Get string length

mb_strlen

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strlen — Get string length

Beschreibung

mb_strlen ( string $string , string|null $encoding = null ) : int

Gets the length of a string.

Parameter-Liste

string

The string being checked for length.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

Returns the number of characters in string string having character encoding encoding. A multi-byte character is counted as 1.

Fehler/Exceptions

If the encoding is unknown, an error of level E_WARNING is generated.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • mb_internal_encoding() - Set/Get internal character encoding
  • grapheme_strlen() - Get string length in grapheme units
  • iconv_strlen() - Returns the character count of string
  • strlen() - Ermitteln der String-Länge


Find position of first occurrence of string in a string

  • « mb_strlen
  • mb_strrchr »
  • PHP Manual
  • Multibyte String Funktionen
  • Find position of first occurrence of string in a string

mb_strpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strpos — Find position of first occurrence of string in a string

Beschreibung

mb_strpos ( string $haystack , string $needle , int $offset = 0 , string|null $encoding = null ) : int|false

Finds position of the first occurrence of a string in a string.

Performs a multi-byte safe strpos() operation based on number of characters. The first character's position is 0, the second character position is 1, and so on.

Parameter-Liste

haystack

The string being checked.

needle

The string to find in haystack. In contrast with strpos(), numeric values are not applied as the ordinal value of a character.

offset

The search offset. If it is not specified, 0 is used. A negative offset counts from the end of the string.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

Returns the numeric position of the first occurrence of needle in the haystack string. If needle is not found, it returns false.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.
7.1.0 | Support for negative offsets has been added.

Siehe auch

  • mb_internal_encoding() - Set/Get internal character encoding
  • strpos() - Sucht die Position des ersten Vorkommens des Suchstrings in einem String


Finds the last occurrence of a character in a string within another

  • « mb_strpos
  • mb_strrichr »
  • PHP Manual
  • Multibyte String Funktionen
  • Finds the last occurrence of a character in a string within another

mb_strrchr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strrchr — Finds the last occurrence of a character in a string within another

Beschreibung

mb_strrchr ( string $haystack , string $needle , bool $before_needle = false , string|null $encoding = null ) : string|false

mb_strrchr() finds the last occurrence of needle in haystack and returns the portion of haystack. If needle is not found, it returns false.

Parameter-Liste

haystack

The string from which to get the last occurrence of needle

needle

The string to find in haystack

before_needle

Determines which portion of haystack this function returns. If set to true, it returns all of haystack from the beginning to the last occurrence of needle. If set to false, it returns all of haystack from the last occurrence of needle to the end,

encoding

Character encoding name to use. If it is omitted, internal character encoding is used.

Rückgabewerte

Returns the portion of haystack. or false if needle is not found.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • strrchr() - Sucht das letzte Vorkommen eines Zeichens in einem String
  • mb_strstr() - Finds first occurrence of a string within another
  • mb_strrichr() - Finds the last occurrence of a character in a string within another, case insensitive


Finds the last occurrence of a character in a string within another, case insensitive

  • « mb_strrchr
  • mb_strripos »
  • PHP Manual
  • Multibyte String Funktionen
  • Finds the last occurrence of a character in a string within another, case insensitive

mb_strrichr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strrichr — Finds the last occurrence of a character in a string within another, case insensitive

Beschreibung

mb_strrichr ( string $haystack , string $needle , bool $before_needle = false , string|null $encoding = null ) : string|false

mb_strrichr() finds the last occurrence of needle in haystack and returns the portion of haystack. Unlike mb_strrchr(), mb_strrichr() is case-insensitive. If needle is not found, it returns false.

Parameter-Liste

haystack

The string from which to get the last occurrence of needle

needle

The string to find in haystack

before_needle

Determines which portion of haystack this function returns. If set to true, it returns all of haystack from the beginning to the last occurrence of needle. If set to false, it returns all of haystack from the last occurrence of needle to the end,

encoding

Character encoding name to use. If it is omitted, internal character encoding is used.

Rückgabewerte

Returns the portion of haystack. or false if needle is not found.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • mb_stristr() - Finds first occurrence of a string within another, case insensitive
  • mb_strrchr() - Finds the last occurrence of a character in a string within another


Finds position of last occurrence of a string within another, case insensitive

  • « mb_strrichr
  • mb_strrpos »
  • PHP Manual
  • Multibyte String Funktionen
  • Finds position of last occurrence of a string within another, case insensitive

mb_strripos

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strripos — Finds position of last occurrence of a string within another, case insensitive

Beschreibung

mb_strripos ( string $haystack , string $needle , int $offset = 0 , string|null $encoding = null ) : int|false

mb_strripos() performs multi-byte safe strripos() operation based on number of characters. needle position is counted from the beginning of haystack. First character's position is 0. Second character position is 1. Unlike mb_strrpos(), mb_strripos() is case-insensitive.

Parameter-Liste

haystack

The string from which to get the position of the last occurrence of needle

needle

The string to find in haystack

offset

The position in haystack to start searching

encoding

Character encoding name to use. If it is omitted, internal character encoding is used.

Rückgabewerte

Return the numeric position of the last occurrence of needle in the haystack string, or false if needle is not found.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • strripos() - Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
  • strrpos() - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
  • mb_strrpos() - Find position of last occurrence of a string in a string


Find position of last occurrence of a string in a string

  • « mb_strripos
  • mb_strstr »
  • PHP Manual
  • Multibyte String Funktionen
  • Find position of last occurrence of a string in a string

mb_strrpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strrpos — Find position of last occurrence of a string in a string

Beschreibung

mb_strrpos ( string $haystack , string $needle , int $offset = 0 , string|null $encoding = null ) : int|false

Performs a multibyte safe strrpos() operation based on the number of characters. needle position is counted from the beginning of haystack. First character's position is 0. Second character position is 1.

Parameter-Liste

haystack

The string being checked, for the last occurrence of needle

needle

The string to find in haystack.

offset
May be specified to begin searching an arbitrary number of characters into the string. Negative values will stop searching at an arbitrary point prior to the end of the string.
encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

Returns the numeric position of the last occurrence of needle in the haystack string. If needle is not found, it returns false.

Anmerkungen

Hinweis: The encoding parameter was moved from the third position to the fourth in PHP 5.2.0. For backward compatibility, encoding can be specified as the third parameter, but doing so is deprecated and will be removed in the future.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • mb_strpos() - Find position of first occurrence of string in a string
  • mb_internal_encoding() - Set/Get internal character encoding
  • strrpos() - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette


Finds first occurrence of a string within another

  • « mb_strrpos
  • mb_strtolower »
  • PHP Manual
  • Multibyte String Funktionen
  • Finds first occurrence of a string within another

mb_strstr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strstr — Finds first occurrence of a string within another

Beschreibung

mb_strstr ( string $haystack , string $needle , bool $before_needle = false , string|null $encoding = null ) : string|false

mb_strstr() finds the first occurrence of needle in haystack and returns the portion of haystack. If needle is not found, it returns false.

Parameter-Liste

haystack

The string from which to get the first occurrence of needle

needle

The string to find in haystack

before_needle

Determines which portion of haystack this function returns. If set to true, it returns all of haystack from the beginning to the first occurrence of needle (excluding needle). If set to false, it returns all of haystack from the first occurrence of needle to the end (including needle).

encoding

Character encoding name to use. If it is omitted, internal character encoding is used.

Rückgabewerte

Returns the portion of haystack, or false if needle is not found.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • strstr() - Findet das erste Vorkommen eines Strings
  • mb_stristr() - Finds first occurrence of a string within another, case insensitive


Make a string lowercase

  • « mb_strstr
  • mb_strtoupper »
  • PHP Manual
  • Multibyte String Funktionen
  • Make a string lowercase

mb_strtolower

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_strtolower — Make a string lowercase

Beschreibung

mb_strtolower ( string $string , string|null $encoding = null ) : string

Returns string with all alphabetic characters converted to lowercase.

Parameter-Liste

string

The string being lowercased.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

string with all alphabetic characters converted to lowercase.

Unicode

For more information about the Unicode properties, please see » http://www.unicode.org/reports/tr21/.

By contrast to strtolower(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).

Beispiele

Beispiel #1 mb_strtolower() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtolower($str);
echo $str; // Prints mary had a little lamb and she loved it so
?>

Beispiel #2 mb_strtolower() example with non-Latin UTF-8 text

<?php
$str = "????st? a??p?? ßaf?? ??µ??? ??, d?as?e???e? ?p?? ?????? ?????";
$str = mb_strtolower($str, 'UTF-8');
echo $str; // Prints t???st? a??p?? ßaf?? ??µ??? ??, d?as?e???e? ?p?? ?????? ?????
?>

Siehe auch

  • mb_strtoupper() - Make a string uppercase
  • mb_convert_case() - Perform case folding on a string
  • strtolower() - Setzt einen String in Kleinbuchstaben um


Make a string uppercase

  • « mb_strtolower
  • mb_strwidth »
  • PHP Manual
  • Multibyte String Funktionen
  • Make a string uppercase

mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_strtoupper — Make a string uppercase

Beschreibung

mb_strtoupper ( string $string , string|null $encoding = null ) : string

Returns string with all alphabetic characters converted to uppercase.

Parameter-Liste

string

The string being uppercased.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

string with all alphabetic characters converted to uppercase.

Unicode

For more information about the Unicode properties, please see » http://www.unicode.org/reports/tr21/.

By contrast to strtoupper(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as a-umlaut (ä).

Beispiele

Beispiel #1 mb_strtoupper() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtoupper($str);
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

Beispiel #2 mb_strtoupper() example with non-Latin UTF-8 text

<?php
$str = "????st? a??p?? ßaf?? ??µ??? ??, d?as?e???e? ?p?? ?????? ?????";
$str = mb_strtoupper($str, 'UTF-8');
echo $str; // Prints ????S?? ?????? ??F?S ?????? G?, ???S??????? ???? ?OT??? ????S
?>

Siehe auch

  • mb_strtolower() - Make a string lowercase
  • mb_convert_case() - Perform case folding on a string
  • strtoupper() - Wandelt alle Zeichen eines Strings in Großbuchstaben um


Return width of string

  • « mb_strtoupper
  • mb_substitute_character »
  • PHP Manual
  • Multibyte String Funktionen
  • Return width of string

mb_strwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strwidth — Return width of string

Beschreibung

mb_strwidth ( string $string , string|null $encoding = null ) : int

Returns the width of string string, where halfwidth characters count as 1, and fullwidth characters count as 2. See » http://www.unicode.org/reports/tr11/ for details regarding East Asian character widths.

The fullwidth characters are: U+1100-U+115F, U+11A3-U+11A7, U+11FA-U+11FF, U+2329-U+232A, U+2E80-U+2E99, U+2E9B-U+2EF3, U+2F00-U+2FD5, U+2FF0-U+2FFB, U+3000-U+303E, U+3041-U+3096, U+3099-U+30FF, U+3105-U+312D, U+3131-U+318E, U+3190-U+31BA, U+31C0-U+31E3, U+31F0-U+321E, U+3220-U+3247, U+3250-U+32FE, U+3300-U+4DBF, U+4E00-U+A48C, U+A490-U+A4C6, U+A960-U+A97C, U+AC00-U+D7A3, U+D7B0-U+D7C6, U+D7CB-U+D7FB, U+F900-U+FAFF, U+FE10-U+FE19, U+FE30-U+FE52, U+FE54-U+FE66, U+FE68-U+FE6B, U+FF01-U+FF60, U+FFE0-U+FFE6, U+1B000-U+1B001, U+1F200-U+1F202, U+1F210-U+1F23A, U+1F240-U+1F248, U+1F250-U+1F251, U+20000-U+2FFFD, U+30000-U+3FFFD. All other characters are halfwidth characters.

Parameter-Liste

string

The string being decoded.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

The width of string string.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Beispiele

Beispiel #1 mb_strwidth() example

<?php
var_dump(
    mb_strwidth('a'),       // LATIN SMALL LETTER A
    mb_strwidth("\u{ff41}") // FULLWIDTH LATIN SMALL LETTER A
);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)
int(2)

Siehe auch

  • mb_strimwidth() - Get truncated string with specified width
  • mb_internal_encoding() - Set/Get internal character encoding


Set/Get substitution character

  • « mb_strwidth
  • mb_substr_count »
  • PHP Manual
  • Multibyte String Funktionen
  • Set/Get substitution character

mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_substitute_character — Set/Get substitution character

Beschreibung

mb_substitute_character ( string|int|null $substitute_character = null ) : string|int|bool

Specifies a substitution character when input character encoding is invalid or character code does not exist in output character encoding. Invalid characters may be substituted "none" (no output), string or int value (Unicode character code value).

This setting affects mb_convert_encoding(),
mb_convert_variables(),
mb_output_handler(),
and mb_send_mail().

Parameter-Liste

substitute_character

Specify the Unicode value as an int, or as one of the following strings:

  • "none": no output
  • "long": Output character code value (Example: U+3000, JIS+7E7E)
  • "entity": Output character entity (Example: &#x200;)

Rückgabewerte

If substitute_character is set, it returns true for success, otherwise returns false. If substitute_character is not set, it returns the current setting.

Changelog

Version | Beschreibung
8.0.0 | Passing an empty string to substitute_character is no longer supported; "none" should be passed instead.
8.0.0 | encoding is nullable now.

Beispiele

Beispiel #1 mb_substitute_character() example

<?php
/* Set with Unicode U+3013 (GETA MARK) */
mb_substitute_character(0x3013);

/* Set hex format */
mb_substitute_character("long");

/* Display current setting */
echo mb_substitute_character();
?>


Count the number of substring occurrences

  • « mb_substitute_character
  • mb_substr »
  • PHP Manual
  • Multibyte String Funktionen
  • Count the number of substring occurrences

mb_substr_count

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_substr_count — Count the number of substring occurrences

Beschreibung

mb_substr_count ( string $haystack , string $needle , string|null $encoding = null ) : int

Counts the number of times the needle substring occurs in the haystack string.

Parameter-Liste

haystack

The string being checked.

needle

The string being found.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

The number of times the needle substring occurs in the haystack string.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Beispiele

Beispiel #1 mb_substr_count() example

<?php
echo mb_substr_count("This is a test", "is"); // prints out 2
?>

Siehe auch

  • mb_strpos() - Find position of first occurrence of string in a string
  • mb_substr() - Get part of string
  • substr_count() - Ermittelt, wie oft eine Zeichenkette in einem String vorkommt


Get part of string

  • « mb_substr_count
  • Pspell »
  • PHP Manual
  • Multibyte String Funktionen
  • Get part of string

mb_substr

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_substr — Get part of string

Beschreibung

mb_substr ( string $string , int $start , int|null $length = null , string|null $encoding = null ) : string

Performs a multi-byte safe substr() operation based on number of characters. Position is counted from the beginning of string. First character's position is 0. Second character position is 1, and so on.

Parameter-Liste

string

The string to extract the substring from.

start

If start is non-negative, the returned string will start at the start'th position in string, counting from zero. For instance, in the string 'abcdef', the character at position 0 is 'a', the character at position 2 is 'c', and so forth.

If start is negative, the returned string will start at the start'th character from the end of string.

length

Maximum number of characters to use from string. If omitted or NULL is passed, extract all characters to the end of the string.

encoding

Der encoding Parameter legt das Zeichenencoding fest. Wird er nicht übergeben so wird die interne Zeichenkodierung genutzt.

Rückgabewerte

mb_substr() returns the portion of string specified by the start and length parameters.

Changelog

Version | Beschreibung
8.0.0 | encoding is nullable now.

Siehe auch

  • mb_strcut() - Get part of string
  • mb_internal_encoding() - Set/Get internal character encoding


Pspell

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Pspell Funktionen
    • pspell_add_to_personal — Fügt der persönlichen Wortliste ein Wort hinzu
    • pspell_add_to_session — Fügt der Wortliste der aktuellen Sitzung ein Wort hinzu
    • pspell_check — Überprüft ein Wort
    • pspell_clear_session — Löscht die aktuelle Sitzung
    • pspell_config_create — Erzeugt eine Konfiguration zum Öffnen eines Wörterbuchs
    • pspell_config_data_dir — Ort der Dateien mit den Daten für die Sprachen
    • pspell_config_dict_dir — Ort der Haupt-Wortliste
    • pspell_config_ignore — Ignoriert Wörter mit weniger als N Buchstaben
    • pspell_config_mode — Ändert den Modus für die Anzahl gelieferter Vorschläge
    • pspell_config_personal — Legt die Datei fest, die die persönliche Wortliste enthält
    • pspell_config_repl — Legt die Datei fest, welche die Ersetzen-Paare enthält
    • pspell_config_runtogether — Betrachtet zusammengesetzte Wörter als gültige Verbindungen
    • pspell_config_save_repl — Bestimmt, ob Ersetzen-Paare zusammen mit der Wortliste gespeichert werden
    • pspell_new_config — Lädt ein neues Wörterbuch mit den Einstellungen einer angegebenen Konfiguration
    • pspell_new_personal — Lädt ein neues Wörterbuch mit persönlicher Wortliste
    • pspell_new — Lädt ein neues Wörterbuch
    • pspell_save_wordlist — Speichert die persönliche Wortliste in einer Datei
    • pspell_store_replacement — Speichert das Ersetzen-Paar für ein Wort
    • pspell_suggest — Macht Vorschläge für die Schreibweise eines Wortes


Einführung

Diese Funktionen ermöglichen Ihnen, die Rechtschreibung eines Wortes zu prüfen und bieten Änderungsvorschläge an.


Anforderungen

Um PHP mit pspell-Unterstützung zu kompilieren, brauchen Sie die aspell-Bibliothek, die Sie unter » http://aspell.net/ bekommen.


Installation

Falls Sie die benötigten Bibliotheken haben, können Sie PHP mit der Option --with-pspell[=dir] übersetzen.

Hinweis: Anmerkung für Win32-Benutzer

Diese Extension benötigt DLL-Dateien. die für Windows verfügbar seien müssen. Der FAQ-Eintrag " Wie füge ich unter Windows PATH mein PHP-Verzeichnis hinzu?" gibt hierzu weitere Informationen. Obwohl ein einfaches Kopieren der DLL-Dateien vom PHP-Verzeichnis in den Windows-Systemordner auch funktioniert (weil der Systemordner immer im PATH enthalten ist), ist dieses Vorgehen nicht empfehlenswert. Diese Extension benötigt die folgenden Dateien im PATH: aspell-15.dll aus dem Verzeichnis bin der aspell-Installation.

Die Ünterstützung von Win32 benötigt aspell ab Version 0.50.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

PSPELL_FAST (int)
PSPELL_NORMAL (int)
PSPELL_BAD_SPELLERS (int)
PSPELL_RUN_TOGETHER (int)


Pspell Funktionen

Inhaltsverzeichnis

  • pspell_add_to_personal — Fügt der persönlichen Wortliste ein Wort hinzu
  • pspell_add_to_session — Fügt der Wortliste der aktuellen Sitzung ein Wort hinzu
  • pspell_check — Überprüft ein Wort
  • pspell_clear_session — Löscht die aktuelle Sitzung
  • pspell_config_create — Erzeugt eine Konfiguration zum Öffnen eines Wörterbuchs
  • pspell_config_data_dir — Ort der Dateien mit den Daten für die Sprachen
  • pspell_config_dict_dir — Ort der Haupt-Wortliste
  • pspell_config_ignore — Ignoriert Wörter mit weniger als N Buchstaben
  • pspell_config_mode — Ändert den Modus für die Anzahl gelieferter Vorschläge
  • pspell_config_personal — Legt die Datei fest, die die persönliche Wortliste enthält
  • pspell_config_repl — Legt die Datei fest, welche die Ersetzen-Paare enthält
  • pspell_config_runtogether — Betrachtet zusammengesetzte Wörter als gültige Verbindungen
  • pspell_config_save_repl — Bestimmt, ob Ersetzen-Paare zusammen mit der Wortliste gespeichert werden
  • pspell_new_config — Lädt ein neues Wörterbuch mit den Einstellungen einer angegebenen Konfiguration
  • pspell_new_personal — Lädt ein neues Wörterbuch mit persönlicher Wortliste
  • pspell_new — Lädt ein neues Wörterbuch
  • pspell_save_wordlist — Speichert die persönliche Wortliste in einer Datei
  • pspell_store_replacement — Speichert das Ersetzen-Paar für ein Wort
  • pspell_suggest — Macht Vorschläge für die Schreibweise eines Wortes


Fügt der persönlichen Wortliste ein Wort hinzu

  • « Pspell Funktionen
  • pspell_add_to_session »
  • PHP Manual
  • Pspell Funktionen
  • Fügt der persönlichen Wortliste ein Wort hinzu

pspell_add_to_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_add_to_personal — Fügt der persönlichen Wortliste ein Wort hinzu

Beschreibung

pspell_add_to_personal ( int $dictionary , string $word ) : bool

pspell_add_to_personal() fügt der persönlichen Wortliste ein Wort hinzu. Falls Sie pspell_new_config() mit pspell_config_personal() verwendet haben, um das Wörterbuch zu öffnen, können Sie die Wortliste später mit pspell_save_wordlist() speichern.

Parameter-Liste

dictionary

word

Das hinzugefügte Wort

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pspell_add_to_personal()-Beispiel

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Anmerkungen

Hinweis:

Diese Funktion funktioniert nur, wenn Sie pspell .11.2 und aspell .32.5 oder höher haben.


Fügt der Wortliste der aktuellen Sitzung ein Wort hinzu

  • « pspell_add_to_personal
  • pspell_check »
  • PHP Manual
  • Pspell Funktionen
  • Fügt der Wortliste der aktuellen Sitzung ein Wort hinzu

pspell_add_to_session

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_add_to_session — Fügt der Wortliste der aktuellen Sitzung ein Wort hinzu

Beschreibung

pspell_add_to_session ( int $dictionary , string $word ) : bool

pspell_add_to_session() fügt der Wortliste, die zur aktuellen Sitzung gehört, ein Wort hinzu. Diese Funktion ist der Funktion pspell_add_to_personal() sehr ähnlich.

Parameter-Liste

dictionary

word

Das hinzugefügte Wort

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Überprüft ein Wort

  • « pspell_add_to_session
  • pspell_clear_session »
  • PHP Manual
  • Pspell Funktionen
  • Überprüft ein Wort

pspell_check

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_check — Überprüft ein Wort

Beschreibung

pspell_check ( int $dictionary , string $word ) : bool

pspell_check() überprüft die Schreibweise eines Wortes.

Parameter-Liste

dictionary

word

Das überprüfte Wort

Rückgabewerte

Gibt true zurück, wenn die Schreibweise korrekt ist oder false, wenn nicht.

Beispiele

Beispiel #1 pspell_check()-Beispiel

<?php
$pspell_link = pspell_new("de");

if (pspell_check($pspell_link, "Testt")) {
    echo "Das ist eine gültige Schreibweise";
} else {
    echo "Sorry, falsche Schreibweise";
}
?>


Löscht die aktuelle Sitzung

  • « pspell_check
  • pspell_config_create »
  • PHP Manual
  • Pspell Funktionen
  • Löscht die aktuelle Sitzung

pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_clear_session — Löscht die aktuelle Sitzung

Beschreibung

pspell_clear_session ( int $dictionary ) : bool

pspell_clear_session() löscht die aktuelle Sitzung. Die aktuelle Wortliste wird geleert und wenn Sie zum Beispiel versuchen, sie mit pspell_save_wordlist() zu speichern, passiert gar nichts.

Parameter-Liste

dictionary

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pspell_add_to_personal()-Beispiel

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_clear_session($pspell_link);
pspell_save_wordlist($pspell_link);    //"Vlad" wird nicht gespeichert
?>


Erzeugt eine Konfiguration zum Öffnen eines Wörterbuchs

  • « pspell_clear_session
  • pspell_config_data_dir »
  • PHP Manual
  • Pspell Funktionen
  • Erzeugt eine Konfiguration zum Öffnen eines Wörterbuchs

pspell_config_create

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_create — Erzeugt eine Konfiguration zum Öffnen eines Wörterbuchs

Beschreibung

pspell_config_create ( string $language , string $spelling = "" , string $jargon = "" , string $encoding = "" ) : int

Erzeugt eine Konfiguration zum Öffnen eines Wörterbuchs.

pspell_config_create() hat eine sehr ähnliche Syntax wie pspell_new(). Wenn pspell_config_create() direkt gefolgt von pspell_new_config() verwendet wird, hat das in der Tat genau das gleiche Ergebnis. Sie können jedoch nach dem Erzeugen einer neuen Konfiguration die pspell_config_*()-Funktionen verwenden, bevor Sie pspell_new_config() aufrufen, um von einer erweiterten Funktionalität zu profitieren.

Schauen Sie sich für weitere Informationen und Beispiele das pspell-Handbuch (auf englisch) auf der Website » http://aspell.net/ an.

Parameter-Liste

language

Der Sprachencode, der aus dem zweibuchstabigen ISO 639-Sprachencode und, nach einem Binde- oder Unterstrich, einem optionalen zweibuchstabigen ISO 3166-Ländercode besteht.

spelling

Die angeforderte Schreibweise für Sprachen mit mehr als einer Schreibweise, wie zum Beispiel Englisch. Bekannte Werte sind 'american', 'british' und 'canadian'.

jargon

Enthält zusätzliche Informationen, um zwischen zwei Wortlisten mit der selben Sprache und den selben Parametern für die Schreibweise zu unterscheiden.

encoding

Die Kodierung, in der die Wörter voraussichtlich sind. Gültige Werte sind 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16' und 'machine unsigned 32'. Dieser Parameter ist weitgehend ungetestet, weshalb Sie bei dessen Verwendung vorsichtig sein sollten.

Rückgabewerte

Gibt eine pspell-Konfigurationskennung zurück, oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 pspell_config_create()-Beispiel

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_personal($pspell_config, "de");
?>


Ort der Dateien mit den Daten für die Sprachen

  • « pspell_config_create
  • pspell_config_dict_dir »
  • PHP Manual
  • Pspell Funktionen
  • Ort der Dateien mit den Daten für die Sprachen

pspell_config_data_dir

(PHP 5, PHP 7, PHP 8)

pspell_config_data_dir — Ort der Dateien mit den Daten für die Sprachen

Beschreibung

pspell_config_data_dir ( int $config , string $directory ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Ort der Haupt-Wortliste

  • « pspell_config_data_dir
  • pspell_config_ignore »
  • PHP Manual
  • Pspell Funktionen
  • Ort der Haupt-Wortliste

pspell_config_dict_dir

(PHP 5, PHP 7, PHP 8)

pspell_config_dict_dir — Ort der Haupt-Wortliste

Beschreibung

pspell_config_dict_dir ( int $config , string $directory ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Ignoriert Wörter mit weniger als N Buchstaben

  • « pspell_config_dict_dir
  • pspell_config_mode »
  • PHP Manual
  • Pspell Funktionen
  • Ignoriert Wörter mit weniger als N Buchstaben

pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_ignore — Ignoriert Wörter mit weniger als N Buchstaben

Beschreibung

pspell_config_ignore ( int $config , int $min_length ) : bool

pspell_config_ignore() sollte auf die Konfiguration angewendet werden, bevor pspell_new_config() aufgerufen wird. Diese Funktion erlaubt der Rechtschreibprüfung, kurze Wörter zu überspringen.

Parameter-Liste

config

min_length

Wörter mit weniger als min_length Buchstaben werden übersprungen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pspell_config_ignore()-Beispiel

<?php
$pspell_config = pspell_config_create("de");
pspell_config_ignore($pspell_config, 5);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "abcd");    // produziert keinen Fehler
?>


Ändert den Modus für die Anzahl gelieferter Vorschläge

  • « pspell_config_ignore
  • pspell_config_personal »
  • PHP Manual
  • Pspell Funktionen
  • Ändert den Modus für die Anzahl gelieferter Vorschläge

pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_mode — Ändert den Modus für die Anzahl gelieferter Vorschläge

Beschreibung

pspell_config_mode ( int $config , int $mode ) : bool

pspell_config_mode() sollte auf die Konfiguration angewendet werden, bevor pspell_new_config() aufgerufen wird. Diese Funktion bestimmt, wie viele Vorschläge von pspell_suggest() geliefert werden.

Parameter-Liste

config

mode

Der Modus, in dem die Rechtschreibprüfung arbeitet. Es stehen mehrere Modi zur Verfügung:

  • PSPELL_FAST - Schneller Modus (geringste Anzahl Vorschläge)
  • PSPELL_NORMAL - Normaler Modus (mehr Vorschläge)
  • PSPELL_BAD_SPELLERS - Langsamer Modus (viele Vorschläge)

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pspell_config_mode()-Beispiel

<?php
$pspell_config = pspell_config_create("de");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "dieSpinne");
?>


Legt die Datei fest, die die persönliche Wortliste enthält

  • « pspell_config_mode
  • pspell_config_repl »
  • PHP Manual
  • Pspell Funktionen
  • Legt die Datei fest, die die persönliche Wortliste enthält

pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_personal — Legt die Datei fest, die die persönliche Wortliste enthält

Beschreibung

pspell_config_personal ( int $config , string $filename ) : bool

Legt die Datei fest, die die persönliche Wortliste enthält. Die persönliche Wortliste wird geladen und zusätzlich zur standardmäßigen verwendet, nachdem Sie pspell_new_config() aufgerufen haben. Diese Datei ist auch der Ort, an dem pspell_save_wordlist() die persönliche Wortliste speichert.

pspell_config_personal() sollte auf die Konfiguration angewendet werden, bevor pspell_new_config() aufgerufen wird.

Parameter-Liste

config

filename

Die persönliche Wortliste. Falls die Datei nicht existiert, wird sie angelegt. Die Datei sollte für denjenigen, unter dem PHP läuft (z.B. nobody), schreibbar sein.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pspell_config_personal()-Beispiel

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "dieSpinne");
?>

Anmerkungen

Hinweis:

Diese Funktion funktioniert nur, wenn Sie pspell .11.2 und aspell .32.5 oder höher haben.


Legt die Datei fest, welche die Ersetzen-Paare enthält

  • « pspell_config_personal
  • pspell_config_runtogether »
  • PHP Manual
  • Pspell Funktionen
  • Legt die Datei fest, welche die Ersetzen-Paare enthält

pspell_config_repl

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_repl — Legt die Datei fest, welche die Ersetzen-Paare enthält

Beschreibung

pspell_config_repl ( int $config , string $filename ) : bool

Legt die Datei fest, welche die Ersetzen-Paare enthält.

Die Ersetzen-Paare verbessern die Qualität der Rechtschreibprüfung. Wenn ein Wort falsch geschrieben und in der Wortliste kein passender Vorschlag wurde, kann pspell_store_replacement() zum Speichern eines Ersetzen-Paares verwendet werden und dann pspell_save_wordlist() zum Speichern der Wortliste zusammen mit den Ersetzen-Paaren.

pspell_config_repl() sollte auf die Konfiguration angewendet werden, bevor pspell_new_config() aufgerufen wird.

Parameter-Liste

config

filename

Die Datei sollte für denjenigen, unter dem PHP läuft (z.B. nobody), eine Schreibberechtigung haben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pspell_config_repl()-Beispiel

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "dieSpinne");
?>

Anmerkungen

Hinweis:

Diese Funktion funktioniert nur, wenn Sie pspell .11.2 und aspell .32.5 oder höher haben.


Betrachtet zusammengesetzte Wörter als gültige Verbindungen

  • « pspell_config_repl
  • pspell_config_save_repl »
  • PHP Manual
  • Pspell Funktionen
  • Betrachtet zusammengesetzte Wörter als gültige Verbindungen

pspell_config_runtogether

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_runtogether — Betrachtet zusammengesetzte Wörter als gültige Verbindungen

Beschreibung

pspell_config_runtogether ( int $config , bool $allow ) : bool

Diese Funktion bestimmt, ob zusammengesetzte Wörter als erlaubte Verbindungen betrachtet werden. Das heißt, "dieSpinne" wäre dann eine erlaubte Verbindung, obwohl ein Leerzeichen zwischen den beiden Wörtern sein müsste. Eine Änderung dieser Einstellung wirkt sich nur auf das Ergebnis aus, das von pspell_check() zurückgegeben wird; pspell_suggest() liefert weiterhin Änderungsvorschläge.

pspell_config_runtogether() sollte auf die Konfiguration angewendet werden, bevor pspell_new_config() aufgerufen wird.

Parameter-Liste

config

allow

true, falls zusammengesetzte Wörter als gültige Verbindungen betrachtet werden sollen, andernfalls false.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pspell_config_runtogether()-Beispiel

<?php
$pspell_config = pspell_config_create("de");
pspell_config_runtogether($pspell_config, true);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "dieSpinne");
?>


Bestimmt, ob Ersetzen-Paare zusammen mit der Wortliste gespeichert werden

  • « pspell_config_runtogether
  • pspell_new_config »
  • PHP Manual
  • Pspell Funktionen
  • Bestimmt, ob Ersetzen-Paare zusammen mit der Wortliste gespeichert werden

pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_save_repl — Bestimmt, ob Ersetzen-Paare zusammen mit der Wortliste gespeichert werden

Beschreibung

pspell_config_save_repl ( int $config , bool $save ) : bool

Die Funktion pspell_config_save_repl() bestimmt, ob pspell_save_wordlist() Ersetzen-Paare zusammen mit der Wortliste speichert. Normalerweise wird sie nicht benötigt, denn wenn die Funktion pspell_config_repl() verwendet wird, werden die Ersetzen-Paare sowieso durch pspell_save_wordlist() gespeichert, und wenn sie nicht verwendet wird, werden die Ersetzen-Paare nicht gespeichert.

pspell_config_save_repl() sollte auf die Konfiguration angewendet werden, bevor pspell_new_config() aufgerufen wird.

Parameter-Liste

config

save

true, falls Ersetzen-Paare gespeichert werden sollen, andernfalls false.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

Diese Funktion funktioniert nur, wenn Sie pspell .11.2 und aspell .32.5 oder höher haben.


Lädt ein neues Wörterbuch mit den Einstellungen einer angegebenen Konfiguration

  • « pspell_config_save_repl
  • pspell_new_personal »
  • PHP Manual
  • Pspell Funktionen
  • Lädt ein neues Wörterbuch mit den Einstellungen einer angegebenen Konfiguration

pspell_new_config

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_new_config — Lädt ein neues Wörterbuch mit den Einstellungen einer angegebenen Konfiguration

Beschreibung

pspell_new_config ( int $config ) : int|false

pspell_new_config() öffnet ein neues Wörterbuch mit den Einstellungen, die in einer mittels pspell_config_create() erzeugten und den pspell_config_*()-Funktionen geänderten Konfiguration angegeben sind. Diese Methode bietet Ihnen die größte Flexibilität und hat die ganze Funktionalität, die pspell_new() und pspell_new_personal() bieten.

Parameter-Liste

config

config ist der Parameter, der von pspell_config_create() beim Erzeugen der Konfiguration zurückgegeben wird.

Rückgabewerte

Gibt bei Erfolg die Kennung eines Wörterbuch-Links zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pspell_new_config()-Beispiel

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
?>


Lädt ein neues Wörterbuch mit persönlicher Wortliste

  • « pspell_new_config
  • pspell_new »
  • PHP Manual
  • Pspell Funktionen
  • Lädt ein neues Wörterbuch mit persönlicher Wortliste

pspell_new_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_new_personal — Lädt ein neues Wörterbuch mit persönlicher Wortliste

Beschreibung

pspell_new_personal ( string $filename , string $language , string $spelling = "" , string $jargon = "" , string $encoding = "" , int $mode = 0 ) : int|false

pspell_new_personal() öffnet ein neues Wörterbuch mit
einer persönlichen Wortliste. Die Wortliste kann bei Bedarf mit
pspell_save_wordlist() geändert und gespeichert werden.
Die Ersetzen-Paare werden jedoch nicht gespeichert. Um diese zu speichern,
müssen Sie mittels pspell_config_create() eine
Konfiguration erzeugen, die persönliche Wortliste mit
pspell_config_personal() setzen, die Datei für die
Ersetzen-Paare mit pspell_config_repl() setzen und mit
pspell_new_config() ein neues Wörterbuch öffnen.

Schauen Sie sich für weitere Informationen und Beispiele das pspell-Handbuch (auf englisch) auf der Website » http://aspell.net/ an.

Parameter-Liste

filename

Die Datei, in der Wörter, die zur persönlichen Wortliste hinzugefügt wurden, gespeichert werden. Dieser Parameter sollte als absoluter Dateiname mit '/' beginnend angegeben werden, weil er andernfalls relativ zu $HOME wäre, was auf den meisten Systemen '/root' ist und es vermutlich nicht das ist, was sie wollen.

language

Der Sprachencode, der aus dem zweibuchstabigen ISO 639-Sprachencode und, nach einem Binde- oder Unterstrich, einem optionalen zweibuchstabigen ISO 3166-Ländercode besteht.

spelling

Die angeforderte Schreibweise für Sprachen mit mehr als einer Schreibweise, wie zum Beispiel Englisch. Bekannte Werte sind 'american', 'british' und 'canadian'.

jargon

Enthält zusätzliche Informationen, um zwischen zwei Wortlisten mit der selben Sprache und den selben Parametern für die Schreibweise zu unterscheiden.

encoding

Die Kodierung, in der die Wörter voraussichtlich sind. Gültige Werte sind utf-8, iso8859-*, koi8-r, viscii, cp1252, machine unsigned 16 und machine unsigned 32.

mode

Der Modus, in dem die Rechtschreibprüfung arbeitet. Es stehen mehrere Modi zur Verfügung:

  • PSPELL_FAST - Schneller Modus (geringste Anzahl Vorschläge)
  • PSPELL_NORMAL - Normaler Modus (mehr Vorschläge)
  • PSPELL_BAD_SPELLERS - Langsamer Modus (viele Vorschläge)
  • PSPELL_RUN_TOGETHER - Betrachtet zusammengesetzte Wörter als erlaubte Verbindungen. Das heißt, "dieSpinne" wäre dann eine erlaubte Verbindung, obwohl ein Leerzeichen zwischen den beiden Wörtern sein müsste. Eine Änderung dieser Einstellung wirkt sich nur auf das Ergebnis aus, das von pspell_check() zurückgegeben wird; pspell_suggest() liefert weiterhin Änderungsvorschläge.
mode ist eine Bitmask, die sich aus verschiedenden der oben aufgelisteten Konstanten zusammensetzt. PSPELL_FAST, PSPELL_NORMAL und PSPELL_BAD_SPELLERS schließen sich allerdings gegenseitig aus, weshalb Sie nur eine davon auswählen sollten.

Rückgabewerte

Gibt die Kennung eines Wörterbuch-Links für die Verwendung in anderen pspell-Funktionen zurück.

Beispiele

Beispiel #1 pspell_new_personal()-Beispiel

<?php
$pspell_link = pspell_new_personal ("/var/dictionaries/custom.pws",
        "de", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>


Lädt ein neues Wörterbuch

  • « pspell_new_personal
  • pspell_save_wordlist »
  • PHP Manual
  • Pspell Funktionen
  • Lädt ein neues Wörterbuch

pspell_new

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_new — Lädt ein neues Wörterbuch

Beschreibung

pspell_new ( string $language , string $spelling = "" , string $jargon = "" , string $encoding = "" , int $mode = 0 ) : int|false

pspell_new() öffnet ein neues Wörterbuch und gibt die Kennung des Wörterbuch-Links für die Verwendung in anderen pspell-Funktionen zurück.

Schauen Sie sich für weitere Informationen und Beispiele das pspell-Handbuch (auf englisch) auf der Website » http://aspell.net/ an.

Parameter-Liste

language

Der Sprachencode, der aus dem zweibuchstabigen ISO 639-Sprachencode und, nach einem Binde- oder Unterstrich, einem optionalen zweibuchstabigen ISO 3166-Ländercode besteht.

spelling

Die angeforderte Schreibweise für Sprachen mit mehr als einer Schreibweise, wie zum Beispiel Englisch. Bekannte Werte sind 'american', 'british' und 'canadian'.

jargon

Enthält zusätzliche Informationen, um zwischen zwei Wortlisten mit der selben Sprache und den selben Parametern für die Schreibweise zu unterscheiden.

encoding

Die Kodierung, in der die Wörter voraussichtlich sind. Gültige Werte sind 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16' und 'machine unsigned 32'. Dieser Parameter ist weitgehend ungetestet, weshalb Sie bei dessen Verwendung vorsichtig sein sollten.

mode

Der Modus, in dem die Rechtschreibprüfung arbeitet. Es stehen mehrere Modi zur Verfügung:

  • PSPELL_FAST - Schneller Modus (geringste Anzahl Vorschläge)
  • PSPELL_NORMAL - Normaler Modus (mehr Vorschläge)
  • PSPELL_BAD_SPELLERS - Langsamer Modus (viele Vorschläge)
  • PSPELL_RUN_TOGETHER - Betrachtet zusammengesetzte Wörter als erlaubte Verbindungen. Das heißt, "dieSpinne" wäre dann eine erlaubte Verbindung, obwohl ein Leerzeichen zwischen den beiden Wörtern sein müsste. Eine Änderung dieser Einstellung wirkt sich nur auf das Ergebnis aus, das von pspell_check() zurückgegeben wird; pspell_suggest() liefert weiterhin Änderungsvorschläge.
mode ist eine Bitmask, die sich aus verschiedenden der oben aufgelisteten Konstanten zusammensetzt. PSPELL_FAST, PSPELL_NORMAL und PSPELL_BAD_SPELLERS schließen sich allerdings gegenseitig aus, weshalb Sie nur eine davon auswählen sollten.

Rückgabewerte

Gibt bei Erfolg die Kennung eines Wörterbuch-Links zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pspell_new()-Beispiel

<?php
$pspell_link = pspell_new("de", "", "", "",
                           (PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>


Speichert die persönliche Wortliste in einer Datei

  • « pspell_new
  • pspell_store_replacement »
  • PHP Manual
  • Pspell Funktionen
  • Speichert die persönliche Wortliste in einer Datei

pspell_save_wordlist

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_save_wordlist — Speichert die persönliche Wortliste in einer Datei

Beschreibung

pspell_save_wordlist ( int $dictionary ) : bool

pspell_save_wordlist() speichert die persönliche Wortliste der aktuellen Sitzung. Die Stelle der zu speichernden Dateien muss mit pspell_config_personal() und (optional) pspell_config_repl() bestimmt werden.

Parameter-Liste

dictionary

Die Kennung eines Wörterbuch-Links, die mit pspell_new_personal() geöffnet wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pspell_add_to_personal()-Beispiel

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/tmp/dicts/newdict");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Anmerkungen

Hinweis:

Diese Funktion funktioniert nur, wenn Sie pspell .11.2 und aspell .32.5 oder höher haben.


Speichert das Ersetzen-Paar für ein Wort

  • « pspell_save_wordlist
  • pspell_suggest »
  • PHP Manual
  • Pspell Funktionen
  • Speichert das Ersetzen-Paar für ein Wort

pspell_store_replacement

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_store_replacement — Speichert das Ersetzen-Paar für ein Wort

Beschreibung

pspell_store_replacement ( int $dictionary , string $misspelled , string $correct ) : bool

pspell_store_replacement() speichert das Ersetzen-Paar für ein Wort, damit dieses Ersetzen-Paar später von pspell_suggest() zurückgegeben werden kann. Um von dieser Funktion profitieren zu können, müssen Sie pspell_new_personal() zum Öffnen des Wörterbuchs verwenden. Um das Ersetzen-Paar dauerhaft zu speichern, müssen Sie pspell_config_personal() und pspell_config_repl() verwenden, um den Pfad zu setzen, unter dem Ihre selbst erstellten Wortlisten gespeichert werden sollen und dann pspell_save_wordlist(), damit die Änderungen auf die Festplatte geschrieben werden.

Parameter-Liste

dictionary

Die Kennung eines Wörterbuch-Links, die mit pspell_new_personal() geöffnet wurde.

misspelled

Das falsch geschriebene Wort

correct

Die richtige Schreibweise für das misspelled geschriebene Wort.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pspell_store_replacement()-Beispiel

<?php
$pspell_config = pspell_config_create("de");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);

pspell_store_replacement($pspell_link, $falsch, $richtig);
pspell_save_wordlist($pspell_link);
?>

Anmerkungen

Hinweis:

Diese Funktion funktioniert nur, wenn Sie pspell .11.2 und aspell .32.5 oder höher haben.


Macht Vorschläge für die Schreibweise eines Wortes

  • « pspell_store_replacement
  • Recode »
  • PHP Manual
  • Pspell Funktionen
  • Macht Vorschläge für die Schreibweise eines Wortes

pspell_suggest

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_suggest — Macht Vorschläge für die Schreibweise eines Wortes

Beschreibung

pspell_suggest ( int $dictionary , string $word ) : array|false

pspell_suggest() gibt ein Array möglicher Schreibweisen für das angegebene Wort zurück.

Parameter-Liste

dictionary

word

Das überprüfte Wort

Rückgabewerte

Gibt ein Array möglicher Schreibweisen zurück.

Beispiele

Beispiel #1 pspell_suggest()-Beispiel

<?php
$pspell_link = pspell_new("de");

if (!pspell_check($pspell_link, "Testt")) {
    $vorschlaege = pspell_suggest($pspell_link, "Testt");

    foreach ($vorschlaege as $vorschlag) {
        echo "Mögliche Schreibweise: $vorschlag<br />";
    }
}
?>


GNU Recode

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Recode-Funktionen
    • recode_file — Umkodierung von Dateien entsprechend der Recode-Anweisung
    • recode_string — Kodiert einen Strings entsprechend einer Recode-Anweisung um
    • recode — Alias von recode_string


Einführung

Das Modul enthält ein Interface zur GNU Recode-Bibliothek. Die GNU Recode-Bibliothek konvertiert Dateien zwischen unterschiedlichen Zeichensätzen und Encodings. Wenn diese nicht exakt bestimmt werden können, kann es sein, dass die "fehlerhaften" Zeichen entfernt werden und eine Fallback-Ersetzung vorgenommen wird. Die Bibliothek erkennt und verarbeitet etwa 150 unterschiedliche Zeichensätze und ist dafür ausgelegt, Dateien zwischen jeder der damit möglichen Kombinationen zu konvertieren. Die meisten » RFC 1345-Zeichensätze werden unterstützt.

Hinweis: Diese Extension ist von PHP 7.4.0 an entbündelt und nach » PECL verschoben. Es ist zu erwägen statt dessen die Multibyte String oder iconv Extension zu verwenden.

Hinweis: Diese Erweiterung steht auf Windows-Betriebssystemen nicht zur Verfügung.


Anforderungen

Sie müssen GNU Recode 3.5 oder höher auf Ihrem System installiert haben. Das Paket können Sie von » http://directory.fsf.org/All_GNU_Packages/recode.html herunterladen.

Warnung

Die Recode Library 3.6 fügt an unter bestimmten Umständen an konvertierte Strings seltsame Zeichen an. Daher ist es sicherer, Recode v3.5 oder eine der verfügbaren Alternativen wie die iconv- oder mbstring-Extension zu verwenden.


Installation

PHP 7.4

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 7.4.0

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/recode.

PHP < 7.4

Um die von diesem Modul definierten Funktionen nutzbar zu machen, müssen Sie Ihr PHP mit der Option --with-recode[=DIR] kompilieren.

Warnung

Abstürze und Startprobleme von PHP können auftreten, wenn die Recode-Extension nach einer der beiden Extensions mysql oder imap geladen wird. Wenn die Recode-Extension vor den genannten anderen geladen wird, tritt das Problem nicht auf. Das Problem resultiert aus dem technischen Grund, dass die C-Clientlibrary, die von Imap und Recode genutzt wird, jeweils ihre eigenen hach_lookup()-Funktionalitäten mitbringt. Der Konflikt mit der MySQL-Extension entsteht durch unterschiedliche hash_insert-Funktionalitäten.

Warnung

Die IMAP , recode und YAZ Extensions können nicht zusammen verwendet werden. Diese Tatsache liegt darin begründet, dass alle diese Erweiterungen die gleichen internen Symbole benutzen. Hinweis: Yaz 2.0 und höher hat dieses Problem nicht.


  • « Ressource-Typen
  • Recode-Funktionen »
  • PHP Manual
  • Recode
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Recode-Funktionen

Inhaltsverzeichnis

  • recode_file — Umkodierung von Dateien entsprechend der Recode-Anweisung
  • recode_string — Kodiert einen Strings entsprechend einer Recode-Anweisung um
  • recode — Alias von recode_string


Umkodierung von Dateien entsprechend der Recode-Anweisung

  • « Recode-Funktionen
  • recode_string »
  • PHP Manual
  • Recode-Funktionen
  • Umkodierung von Dateien entsprechend der Recode-Anweisung

recode_file

(PHP 4, PHP 5, PHP 7 < 7.4.0)

recode_file — Umkodierung von Dateien entsprechend der Recode-Anweisung

Beschreibung

recode_file ( string $request , resource $input , resource $output ) : bool

Umkodierung der Datei, die durch den Dateizeiger input referenziert wird, in die Datei output, entsprechend der Recode-Anweisung request.

Parameter-Liste

request

Der gewünschte Recode-Requesttyp.

input

Ein lokaler Dateizeiger vom Typ resource für den input-Parameter.

output

Ein lokaler Dateizeiger vom Typ resource für den output-Parameter.

Rückgabewerte

Gibt false zurück, wenn es nicht möglich ist, die Anweisung durchzuführen, andernfalls true.

Beispiele

Beispiel #1 Einfaches recode_file()-Beispiel

<?php
$input = fopen('input.txt', 'r');
$output = fopen('output.txt', 'w');
recode_file("us..flat", $input, $output);
?>

Anmerkungen

Die Funktion verarbeitet derzeit keine Dateizeiger, die auf entfernte Dateien zeigen (URLs). Beide Dateizeiger müssen auf lokale Dateien zeigen.

Siehe auch

  • fopen() - Öffnet eine Datei oder URL


Kodiert einen Strings entsprechend einer Recode-Anweisung um

  • « recode_file
  • recode »
  • PHP Manual
  • Recode-Funktionen
  • Kodiert einen Strings entsprechend einer Recode-Anweisung um

recode_string

(PHP 4, PHP 5, PHP 7 < 7.4.0)

recode_string — Kodiert einen Strings entsprechend einer Recode-Anweisung um

Beschreibung

recode_string ( string $request , string $string ) : string

Der Parameter string wird entsprechend der Recode-Anweisung request umgewandelt.

Parameter-Liste

request

Der gewünschte Recode-Anweisungstyp.

string

Der umzukodierende string.

Rückgabewerte

Gibt den umkodierten string oder false zurück, wenn es nicht möglich ist, die Recode-Anweisung auszuführen.

Beispiele

Beispiel #1 Einfaches recode_string()-Beispiel:

<?php
echo recode_string("us..flat", "Der folgende Buchstabe hat ein diakritisches Zeichen: á");
?>

Anmerkungen

Eine einfache Recode-Anweisung könnte sein "lat1..iso646-de".

Siehe auch

  • Die GNU Recode-Dokumentation Ihrer lokalen Installation für detaillierte Anweisungen zur Gestaltung der Recode-Anfrage.


Alias von recode_string

  • « recode_string
  • Bildverarbeitung und -generierung »
  • PHP Manual
  • Recode-Funktionen
  • Alias von recode_string

recode

(PHP 4, PHP 5, PHP 7 < 7.4.0)

recode — Alias von recode_string()

Beschreibung

Diese Funktion ist ein Alias für: recode_string().


Bildverarbeitung und -generierung

  • Exif — Exchangable Image Information (EXIF)
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Exif-Funktionen
  • GD — Bildbearbeitung und GD
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • GD- und Image-Funktionen
  • Gmagick
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Gmagick — The Gmagick class
    • GmagickDraw — The GmagickDraw class
    • GmagickPixel — The GmagickPixel class
  • ImageMagick — Image Processing (ImageMagick)
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Imagick — The Imagick class
    • ImagickDraw — The ImagickDraw class
    • ImagickPixel — The ImagickPixel class
    • ImagickPixelIterator — The ImagickPixelIterator class
    • ImagickKernel — The ImagickKernel class


Exchangable Image Information (EXIF)

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Exif-Funktionen
    • exif_imagetype — Ermittelt den Bildtyp
    • exif_read_data — Liest die EXIF-Header einer Bilddatei aus
    • exif_tagname — Gibt den Header-Namen für einen Index zurück
    • exif_thumbnail — Liest das eingebettete Miniaturbild eines Bilds
    • read_exif_data — Alias von exif_read_data


Einführung

Die Exif-Erweiterung ermöglicht es mit Metadaten von Bildern zu arbeiten. Z.B. kann man die Exif-Funktionen nutzen, um die Metadaten von Bildern auszulesen, die mit Digitalkameras gemacht wurden, indem man die Header ausliest. Diese finden sich üblicherweise in JPEG und TIFF Bildern.


Anforderungen

PHP muss mit --enable-exif kompiliert werden. Um Multibyte-Unterstützung in EXIF-Tags zu aktivieren, muss die mbstring Extension durch Kompilieren von PHP mit --enable-mbstring aktiviert sein. PHP braucht keine weiteren Bibliotheken für das Exif-Modul.

Nur für Windows: die mbstring Extension muss immer aktiviert sein. Es ist zu beachten, dass die mbstring Extension in php.ini vor EXIF geladen werden muss.


Installation

Um PHP mit Exif-Unterstützung nutzen zu können, muss man PHP mit der Option --enable-exif kompilieren.

Windows-Nutzer müssen die DLLs php_mbstring.dll und php_exif.dll in der php.ini aktivieren. Die php_mbstring.dll muss vor der php_exif.dll geladen werden. Die php.ini muss entsprechend angepasst werden.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Exif unterstützt eine automatische Konvertierung von Unicode- und JIS-kodierten Zeichen von Nutzerkommentaren, wenn das Modul mbstring verfügbar ist. Dies wird gemacht, indem zuerst die spezifizierten Kommentare dekodiert werden. Das Ergebnis ist dann mit einem Zeichensatz kodiert, der mit der HTTP-Ausgabe übereinstimmen sollte.

Exif-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL |
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL |
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL |
exif.encode_jis | "" | PHP_INI_ALL |
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL |
exif.decode_jis_intel | "JIS" | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

exif.encode_unicode string

exif.encode_unicode definiert den Zeichensatz für UNICODE-Nutzerkommentare. Der Standardwert ist ISO-8859-15, welcher für die meisten nicht-asiatischen Länder funktionieren sollte. Der Wert darf leer sein oder muss eine Kodierung enthalten, die von mbstring unterstützt wird. Ist der Wert leer, wird die aktuelle, interne Kodierung von mbstring genutzt.

exif.decode_unicode_motorola string

exif.decode_unicode_motorola definiert den internen Zeichensatz des Bildes für Unicode-kodierte Nutzerkommentare, sollte das Bild in der Motorola-Bytefolge (big-endian) sein. Dieser Wert darf nicht leer sein, sondern kann mit einer Liste von Kodierungen gefüllt werden, die von mbstring unterstützt werden. Der Standard ist UCS-2BE.

exif.decode_unicode_intel string

exif.decode_unicode_intel definiert den internen Zeichensatz des Bildes für Unicode-kodierte Nutzerkommentare, sollte das Bild in der Intel-Bytefolge (little-endian) sein. Dieser Wert darf nicht leer sein, sondern kann mit einer Liste von Kodierungen gefüllt werden, die von mbstring unterstützt werden. Der Standard ist UCS-2LE.

exif.encode_jis string

exif.encode_jis definiert den Zeichensatz, mit dem JIS-Nutzerkommentare behandelt werden. Der Standard ist leer und zwingt die Funktionen dazu, die aktuelle interne Kodierung von mbstring zu nutzen.

exif.decode_jis_motorola string

exif.decode_jis_motorola definiert den internen Zeichensatz des Bildes für JIS-kodierte Nutzerkommentare, sollte das Bild in der Motorola-Bytefolge (big-endian) sein. Dieser Wert darf nicht leer sein, sondern kann mit einer Liste von Kodierungen gefüllt werden, die von mbstring unterstützt werden. Der Standard ist JIS.

exif.decode_jis_intel string

exif.decode_jis_intel definiert den internen Zeichensatz des Bildes für JIS-kodierte Nutzerkommentare, sollte das Bild in der Intel-Bytefolge (little-endian) sein. Dieser Wert darf nicht leer sein, sondern kann mit einer Liste von Kodierungen gefüllt werden, die von mbstring unterstützt werden. Der Standard ist JIS.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

EXIF_USE_MBSTRING (integer)
Diese Konstante hat den Wert 1, wenn mbstring aktiviert ist; anderfalls ist ihr Wert 0.

exif_imagetype() listet einige eingebaute Konstanten auf.


Exif-Funktionen

Inhaltsverzeichnis

  • exif_imagetype — Ermittelt den Bildtyp
  • exif_read_data — Liest die EXIF-Header einer Bilddatei aus
  • exif_tagname — Gibt den Header-Namen für einen Index zurück
  • exif_thumbnail — Liest das eingebettete Miniaturbild eines Bilds
  • read_exif_data — Alias von exif_read_data


Ermittelt den Bildtyp

  • « Exif-Funktionen
  • exif_read_data »
  • PHP Manual
  • Exif-Funktionen
  • Ermittelt den Bildtyp

exif_imagetype

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

exif_imagetype — Ermittelt den Bildtyp

Beschreibung

exif_imagetype ( string $filename ) : int

exif_imagetype() liest die ersten bytes des Bildes aus und überprüft dessen Signatur.

exif_imagetype() kann benutzt werden, um Aufrufe anderer exif-Funktionen bei nicht unterstützten Dateitypen zu vermeiden. Es kann auch in Verbindung mit $_SERVER['HTTP_ACCEPT'] dazu verwendet werden, ob der Betrachter ein bestimmtes Bild in seinem Browser sehen kann oder nicht.

Parameter-Liste

filename
Das zu überprüfende Bild.

Rückgabewerte

Bei einer richtigen Signatur wird die entsprechende Konstante als Wert zurückgegeben, andernfalls false. Der Rückgabewert ist derselbe, der auch von getimagesize() als Index 2 zurückgegeben wird, nur ist exif_imagetype() deutlich schneller.

Hinweis:

exif_imagetype() wirft einen Fehler vom Typ E_NOTICE und gibt false zurück, wenn die Funktion nicht genügend Bytes aus der Datei lesen konnte, um den Bildtyp zu bestimment.

Changelog

Version | Beschreibung
7.1.0 | Unterstützung für WebP hinzugefügt.
5.3.0 | Unterstützung für ICO hinzugefügt.

Vordefinierte Konstanten

Die folgenden Konstanten sind definiert und repräsentieren die möglichen Rückgabewerte von exif_imagetype():

Konstanten für Bildtypen
Wert | Konstante
1 | IMAGETYPE_GIF
2 | IMAGETYPE_JPEG
3 | IMAGETYPE_PNG
4 | IMAGETYPE_SWF
5 | IMAGETYPE_PSD
6 | IMAGETYPE_BMP
7 | IMAGETYPE_TIFF_II (intel-Bytefolge)
8 | IMAGETYPE_TIFF_MM (motorola-Bytefolge)
9 | IMAGETYPE_JPC
10 | IMAGETYPE_JP2
11 | IMAGETYPE_JPX
12 | IMAGETYPE_JB2
13 | IMAGETYPE_SWC
14 | IMAGETYPE_IFF
15 | IMAGETYPE_WBMP
16 | IMAGETYPE_XBM
17 | IMAGETYPE_ICO
18 | IMAGETYPE_WEBP

Beispiele

Beispiel #1 exif_imagetype()-Beispiel

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
    echo 'Das Bild ist kein gif';
}
?>

Siehe auch

  • image_type_to_mime_type() - Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
  • getimagesize() - Ermittelt die Größe einer Grafik


Liest die EXIF-Header einer Bilddatei aus

  • « exif_imagetype
  • exif_tagname »
  • PHP Manual
  • Exif-Funktionen
  • Liest die EXIF-Header einer Bilddatei aus

exif_read_data

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

exif_read_data — Liest die EXIF-Header einer Bilddatei aus

Beschreibung

exif_read_data ( mixed $stream , string $sections = null , bool $arrays = false , bool $thumbnail = false ) : array

exif_read_data() liest die EXIF-Header aus einer Bilddatei aus. Auf diese Weise können die Metadaten ausgelesen werden, die mit Digitalkameras erzeugt wurden.

EXIF-Header kommen normalerweise bei JPEG/TIFF-Bildern vor, die von Digitalkameras gemacht wurden. Leider hat jeder Kamerahersteller eine andere Vorstellung davon, wie man die Bilder beschreibt, so dass man sich also nicht darauf verlassen kann, das ein bestimmter Exif-Header vorhanden ist.

Height und Width werden genauso wie getimagesize() berechnet. Diese Werte dürfen also nicht Teil von irgendwelchen Headern sein, die zurückgegeben werden. Ferner ist html ein Höhen/Breiten-Textstring für den Gebrauch in normalem HTML.

Wenn ein Exif-Header einen Copyrightvermerk beinhaltet, kann dieser selbst aus zwei Werten bestehen. Da die Lösung im Exif-2.10 -Standard nicht konsistent ist, liefert der COMPUTED-Bereich die beiden Einträge Copyright.Photographer und Copyright.Editor, während der IFD-Bereich aus einem Byte-Array besteht, in dem die beiden Werte durch ein NULL-Zeichen getrennt sind. Wenn der Datentyp falsch ist, ist nur der erste Eintrag vorhanden (normales Verhalten von Exif). COMPUTED beinhaltet auch einen Copyright-Eintrag. Dieser entspricht entweder dem originalen Copyright-String oder er besteht aus einer kommaseparierten Liste von Foto- und Herausgeber-Copyright.

Der Tag UserComment hat das gleiche Problem, wie das Copyright-Tag. Er kann zwei Werte speichern. Als erstes die benutze Kodierung und als zweites den Wert selbst. Wenn dem so ist, enthält der IFD-Bereich nur die Kodierung oder ein Byte-Array. Der COMPUTED-Bereich speichert die beiden Einträge UserCommentEncoding und UserComment. Der Eintrag UserComment ist in beiden Fällen verfügbar. Er sollte also dem Eintrag im IFD0-Bereich vorgezogen werden.

exif_read_data() validiert auch EXIF-Datentags entsprechend der EXIF-Spezifikationen (» http://exif.org/Exif2-2.PDF, Seite 20).

Hinweis:

Windows ME/XP können beide beim Anschließen einer Kamera die Exif-Header verwerfen.>

Parameter-Liste

stream

Der Ort der Bilddatei. Dies kann entweder der Pfad der Datei (Stream-Wrapper werden wie üblich ebenso unterstützt) oder eine Stream-resource sein.

sections

Ist eine kommaseparierte List von Bereichen, die in der Datei vorhanden sein muss, um das Rückgabe-array zu erzeugen. Wenn keine der geforderten Bereiche gefunden werden kann, wird false zurückgegeben.

FILE | FileName, FileSize, FileDateTime, SectionsFound
COMPUTED | html, Width, Height, IsColor und andere, wenn vorhanden. Height und Width werden genauso wie getimagesize() berechnet. Diese Werte dürfen also nicht Teil von irgendwelchen Headern sein, die zurückgegeben werden. Ferner ist html ein Höhen/Breiten-Textstring für den Gebrauch in normalem HTML.
ANY_TAG | Jegliche Informationen, die ein Tag besitzen, wie z.B. IFD0, EXIF, ...
IFD0 | Alle IFD0-Daten mit Tag. In normalen Bilddateien beinhalten diese Bildgröße usw.
THUMBNAIL | Eine Datei sollte ein Miniaturbild enthalten, wenn es einen zweiten IFD besitzt. Alle Informationen mit Tags über das eingebettete Miniaturbild werden in diesem Bereich gespeichert.
COMMENT | Kommentarheader des JPEG-Bildes.
EXIF | Der EXIF-Bereich ist ein Unterbereich von IFD0. Er enthält detailliertere Information über das Bild. Die meisten dieser Einträge beziehen sich auf die Digitalkamera.

arrays

Definiert ob jeder Bereich ein Array wird oder nicht. Die sections COMPUTED, THUMBNAIL und COMMENT werden immer zu Arrays, da die Namen der Werte mit denen anderer Bereiche kollidieren können.

thumbnail

Bei true wird das Miniaturbild ausgelesen, ansonsten nur die Daten der Tags.

Rückgabewerte

Gibt ein assoziatives array zurück, bei dem der Arrayindex den Headernamen entspricht und der Arraywert die Werte enthält, die mit diesen Headern in Verbindung stehen. Wenn keine Daten zurückgeliefert werden können, liefert exif_read_data() false.

Changelog

Version | Beschreibung
7.2.0 | Der Parameter filename wurde in stream umbenannt, und unterstützt nun sowohl lokale Dateien als auch Stream-Ressourcen.
7.2.0 Unterstützung für folgende EXIF-Formate wurde hinzugefügt:
  • Samsung
  • DJI
  • Panasonic
  • Sony
  • Pentax
  • Minolta
  • Sigma/Foveon
  • AGFA
  • Kyocera
  • Ricoh
  • Epson

Beispiele

Beispiel #1 exif_read_data()-Beispiel

<?php
echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "Keine Headerdaten gefunden.<br />\n" : "Bild beinhaltet Header<br />\n";

$exif = exif_read_data('tests/test2.jpg', 0, true);
echo "test2.jpg:<br />\n";
foreach ($exif as $key => $section) {
    foreach ($section as $name => $val) {
        echo "$key.$name: $val<br />\n";
    }
}
?>

Der erste Aufruf schlägt fehl, da das Bild keine Headerinformationen hat.

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

test1.jpg:
Keine Headerdaten gefunden.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html: width="1" height="1"
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.Thumbnail.Height: 1
THUMBNAIL.Thumbnail.Height: 1

Beispiel #2 exif_read_data() mit Streams; verfügbar von PHP 7.2.0 an

<?php
// Öffne die Datei im Binärmodus
$fp = fopen('/path/to/image.jpg', 'rb');

if (!$fp) {
    echo 'Fehler: Konnte das Bild nicht fürs Lesen öffnen';
    exit;
}

// Versuche die Exif-Header zu lesen
$headers = exif_read_data($fp);

if (!$headers) {
    echo 'Fehler: Konnte die Exif-Header nicht lesen';
    exit;
}

// Gib die 'COMPUTED'-Header aus
echo 'EXIF Header:' . PHP_EOL;

foreach ($headers['COMPUTED'] as $header => $value) {
    printf(' %s => %s%s', $header, $value, PHP_EOL);
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

EXIF Header:
 Height => 576
 Width => 1024
 IsColor => 1
 ByteOrderMotorola => 0
 ApertureFNumber => f/5.6
 UserComment =>
 UserCommentEncoding => UNDEFINED
 Copyright => Denis
 Thumbnail.FileType => 2
 Thumbnail.MimeType => image/jpeg

Anmerkungen

Hinweis:

Ist mbstring aktiviert, wird exif versuchen den unicode zu verarbeiten, und einen Zeichensatz gemäß exif.decode_unicode_motorola und exif.decode_unicode_intel zu wählen. Die exif Erweiterung versucht nicht, die Kodierung selbst zu ermitteln, so dass es die Aufgabe des Benutzers ist, die gewünschte Kodierung durch Setzen einer der beiden ini Direktiven anzugeben, bevor exif_read_data() aufgerufen wird.

Hinweis:

Wird der Parameter stream verwendet, um einen Stream an diese Funktion zu übergeben, dann muss der Stream suchbar sein. Es ist zu beachten, dass die Position des Dateizeigers nach dem Aufruf dieser Funktion unverändert ist.

Siehe auch

  • exif_thumbnail() - Liest das eingebettete Miniaturbild eines Bilds
  • getimagesize() - Ermittelt die Größe einer Grafik
  • Unterstützte Protokolle und Wrapper


Gibt den Header-Namen für einen Index zurück

  • « exif_read_data
  • exif_thumbnail »
  • PHP Manual
  • Exif-Funktionen
  • Gibt den Header-Namen für einen Index zurück

exif_tagname

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

exif_tagname — Gibt den Header-Namen für einen Index zurück

Beschreibung

exif_tagname ( int $index ) : string

Parameter-Liste

index

Die Tag-ID für welche ein Tag-Name nachgeschlagen wird.

Rückgabewerte

Gibt den Header-Namen oder false zurück, wenn der index keine definierte EXIF-Tag-ID ist.

Beispiele

Beispiel #1 exif_tagname() Beispiel

<?php
echo "256: ".exif_tagname(256).PHP_EOL;
echo "257: ".exif_tagname(257).PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

256: ImageWidth
257: ImageLength

Siehe auch

  • exif_imagetype() - Ermittelt den Bildtyp
  • » EXIF Spezifikation
  • » EXIF Tags


Liest das eingebettete Miniaturbild eines Bilds

  • « exif_tagname
  • read_exif_data »
  • PHP Manual
  • Exif-Funktionen
  • Liest das eingebettete Miniaturbild eines Bilds

exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

exif_thumbnail — Liest das eingebettete Miniaturbild eines Bilds

Beschreibung

exif_thumbnail ( mixed $stream , int &$width = ? , int &$height = ? , int &$imagetype = ? ) : string

exif_thumbnail() liest das eingebettete Miniaturbild eines Bilds.

Wenn man das Miniaturbild mit dieser Funktion ausliefern möchte, sollte man den Mimetype mit Hilfe der Funktion header() mitschicken.

Es kann passieren, das exif_thumbnail() das Bild nicht erzeugen, aber dessen Größe bestimmen kann. In diesem Fall, ist der Rückgabewert false, obwohl width und height gesetzt sind.

Parameter-Liste

stream

Der Ort der Bilddatei. Dies kann entweder ein Dateipfad oder eine Stream resource sein.

width

Die Breite des gelieferten Miniaturbildes als Rückgabewert.

height

Die Höhe des gelieferten Miniaturbildes als Rückgabewert.

imagetype

Der Bildtyp des gelieferten Miniaturbildes als Rückgabewert. Dieser ist entweder TIFF oder JPEG.

Rückgabewerte

Liefert das eingebettete Miniaturbild oder false, wenn das Bild kein Miniaturbild enthält.

Beispiele

Beispiel #1 exif_thumbnail() Beispiel

<?php
$image = exif_thumbnail('/Pfad/zum/Bild.jpg', $width, $height, $type);
if ($image!==false) {
    header('Content-type: ' .image_type_to_mime_type($type));
    echo $image;
    exit;
} else {
    // kein Miniaturbild vorhanden. Fehler wird hier verarbeitet
    echo 'Kein Miniaturbild verfügbar';
}
?>

Changelog

Version | Beschreibung
7.2.0 | Der filename-Parameter wurde zu stream umbenannt, und unterstützt nun sowohl lokale Dateien als auch Stream-Ressourcen.

Anmerkungen

Hinweis:

Wird stream verwendet, um einen Stream an diese Funktion zu übergeben, dann muss der Stream durchsuchbar sein. Es ist zu beachten, dass sich die Position des Dateizeigers nicht ändert, nachdem diese Funktion aufgerufen wurde.

Siehe auch

  • exif_read_data() - Liest die EXIF-Header einer Bilddatei aus
  • image_type_to_mime_type() - Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype


Alias von exif_read_data

  • « exif_thumbnail
  • GD »
  • PHP Manual
  • Exif-Funktionen
  • Alias von exif_read_data

read_exif_data

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

read_exif_data — Alias von exif_read_data()

Beschreibung

Diese Funktion ist ein Alias für: exif_read_data().

Changelog

Version | Beschreibung
7.2.0 | Dieser Funktionsalias wurde missbilligt.


Bildbearbeitung und GD

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • PNG erzeugen mit PHP
    • Wasserzeichen mit Hilfe von Alpha-Kanälen zufügen
    • Erstellen eines transparenten Wasserzeichens mit imagecopymerge
  • GD- und Image-Funktionen
    • gd_info — Ruft Informationen über die aktuell verwendete GD-Bibliothek ab
    • getimagesize — Ermittelt die Größe einer Grafik
    • getimagesizefromstring — Ermittelt die Größe einer Grafik von einem String
    • image_type_to_extension — Get file extension for image type
    • image_type_to_mime_type — Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
    • image2wbmp — Gibt das Bild im Browser oder einer Datei aus.
    • imageaffine — Return an image containing the affine transformed src image, using an optional clipping area
    • imageaffinematrixconcat — Concatenate two affine transformation matrices
    • imageaffinematrixget — Get an affine transformation matrix
    • imagealphablending — Set the blending mode for an image
    • imageantialias — Should antialias functions be used or not
    • imagearc — Zeichnet einen Bogen
    • imagebmp — Output a BMP image to browser or file
    • imagechar — Stellt ein Zeichen horizontal dar
    • imagecharup — Zeichnet einen vertikal ausgerichteten Charakter
    • imagecolorallocate — Alloziert eine Farbe für eine Grafik
    • imagecolorallocatealpha — Allocate a color for an image
    • imagecolorat — Ermittelt den Farbwert eines Bildpunktes
    • imagecolorclosest — Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt
    • imagecolorclosestalpha — Get the index of the closest color to the specified color + alpha
    • imagecolorclosesthwb — Get the index of the color which has the hue, white and blackness
    • imagecolordeallocate — Löscht eine Farbdefinition
    • imagecolorexact — Ermittelt den Index-Wert der angegebenen Farbe
    • imagecolorexactalpha — Get the index of the specified color + alpha
    • imagecolormatch — Makes the colors of the palette version of an image more closely match the true color version
    • imagecolorresolve — Ermittelt den Index-Wert der angegebenen Farbe oder die nächst mögliche Alternative dazu
    • imagecolorresolvealpha — Get the index of the specified color + alpha or its closest possible alternative
    • imagecolorset — Setzt die Farbe für den angegebenen Paletten-Index
    • imagecolorsforindex — Ermittelt die Farbwerte eines Palettenindex
    • imagecolorstotal — Ermittelt die Anzahl der Farben in der Palette eines Bildes
    • imagecolortransparent — Definiert eine Farbe als transparent
    • imageconvolution — Apply a 3x3 convolution matrix, using coefficient and offset
    • imagecopy — Kopiert einen Bildausschnitt
    • imagecopymerge — Copy and merge part of an image
    • imagecopymergegray — Copy and merge part of an image with gray scale
    • imagecopyresampled — Copy and resize part of an image with resampling
    • imagecopyresized — Kopieren und Ändern der Größe eines Bild-Teiles
    • imagecreate — Erzeugt ein neues Paletten-Bild
    • imagecreatefrombmp — Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefromgd2 — Create a new image from GD2 file or URL
    • imagecreatefromgd2part — Create a new image from a given part of GD2 file or URL
    • imagecreatefromgd — Create a new image from GD file or URL
    • imagecreatefromgif — Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefromjpeg — Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefrompng — Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefromstring — Create a new image from the image stream in the string
    • imagecreatefromwbmp — Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefromwebp — Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefromxbm — Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefromxpm — Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatetruecolor — Create a new true color image
    • imagecrop — Crop an image to the given rectangle
    • imagecropauto — Crop an image automatically using one of the available modes
    • imagedashedline — Zeichne eine gestrichelte Linie
    • imagedestroy — Löscht ein Bild
    • imageellipse — Draw an ellipse
    • imagefill — Flutfüllung
    • imagefilledarc — Draw a partial arc and fill it
    • imagefilledellipse — Draw a filled ellipse
    • imagefilledpolygon — Zeichne ein gefülltes Polygon
    • imagefilledrectangle — Zeichne ein gefülltes Rechteck
    • imagefilltoborder — Flutfüllung bis zur angegebenen Farbe
    • imagefilter — Applies a filter to an image
    • imageflip — Flips an image using a given mode
    • imagefontheight — Ermittle die Höhe einer Schriftart
    • imagefontwidth — Ermittle die Breite einer Schriftart
    • imageftbbox — Give the bounding box of a text using fonts via freetype2
    • imagefttext — Write text to the image using fonts using FreeType 2
    • imagegammacorrect — Anwendung einer Gamma-Korrektur auf ein GD-Bild
    • imagegd2 — Output GD2 image to browser or file
    • imagegd — Output GD image to browser or file
    • imagegetclip — Get the clipping rectangle
    • imagegetinterpolation — Get the interpolation method
    • imagegif — Gibt das Bild im Browser oder einer Datei aus.
    • imagegrabscreen — Captures the whole screen
    • imagegrabwindow — Captures a window
    • imageinterlace — Aktiviere oder Deaktiviere Interlacing
    • imageistruecolor — Finds whether an image is a truecolor image
    • imagejpeg — Gibt das Bild im Browser oder einer Datei aus.
    • imagelayereffect — Set the alpha blending flag to use layering effects
    • imageline — Zeichne eine Linie
    • imageloadfont — Lädt eine neue Schriftart
    • imageopenpolygon — Draws an open polygon
    • imagepalettecopy — Copy the palette from one image to another
    • imagepalettetotruecolor — Converts a palette based image to true color
    • imagepng — Ausgabe eines Bildes im Browser oder als Datei im PNG-Format
    • imagepolygon — Zeichne eine Polygon
    • imagerectangle — Zeichne ein Rechteck
    • imageresolution — Get or set the resolution of the image
    • imagerotate — Rotate an image with a given angle
    • imagesavealpha — Ob beim Speichern von PNG-Bildern vollständige Alphakanal-Information erhalten wird
    • imagescale — Scale an image using the given new width and height
    • imagesetbrush — Set the brush image for line drawing
    • imagesetclip — Set the clipping rectangle
    • imagesetinterpolation — Set the interpolation method
    • imagesetpixel — Setze ein einzelnes Pixel
    • imagesetstyle — Set the style for line drawing
    • imagesetthickness — Set the thickness for line drawing
    • imagesettile — Set the tile image for filling
    • imagestring — Zeichne einen horizontalen String
    • imagestringup — Zeichne einen vertikalen String
    • imagesx — Ermittle die Bild-Breite
    • imagesy — Ermittle die Bild-Höhe
    • imagetruecolortopalette — Convert a true color image to a palette image
    • imagettfbbox — Ermittle das umgebende Rechteck eines Textes unter Verwendung von True-Type Schriftarten
    • imagettftext — Schreibe Text ins Bild unter Verwendung von True-Type-Schriftarten
    • imagetypes — Gib die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück
    • imagewbmp — Gibt das Bild im Browser oder einer Datei aus.
    • imagewebp — Output a WebP image to browser or file
    • imagexbm — Output an XBM image to browser or file
    • iptcembed — Embeds binary IPTC data into a JPEG image
    • iptcparse — Parse a binary IPTC block into single tags
    • jpeg2wbmp — Konvertiert eine JPEG-Bilddatei in eine WBMP-Bilddatei
    • png2wbmp — Convert PNG image file to WBMP image file


Einführung

Mit PHP können Sie nicht nur HTML ausgeben, sondern auch Grafiken in vielen Formaten - wie GIF, PNG, JPEG, WBMP und xpm - erzeugen und/oder manipulieren. Noch besser, Sie können Grafiken mit PHP direkt als Datenstrom ausgeben. Damit das funktioniert, müssen Sie PHP mit der GD-Bibliothek zur Grafikbearbeitung kompilieren. GD und PHP benötigen, je nachdem mit welchen Grafikformaten Sie arbeiten wollen, zusätzliche Bibliotheken.

Sie können die Grafikfunktionen in PHP auch verwenden, um die Größe von JPEG, GIF, PNG, SWF, TIFF und JPEG2000 Grafiken zu bestimmen.

Mittels der exif-Erweiterung können sie die in den Headern von JPEG- und TIFF-Grafiken enthaltenen Informationen verarbeiten. Auf diese Weise können von Digitalkameras erstellte Metadaten verarbeitet werden. Die Exif-Funktionen benötigen nicht die GD-Bibliothek.

Hinweis: Im Abschnitt über die Anforderungen können Sie nachlesen, wie Sie die Möglichkeiten zur Grafikbearbeitung erweitern können: lesen, schreiben und manipulieren von Grafiken, und auslesen von Metadaten bei Bildern die mit einer Digitalkamera aufgenommen wurden. Für letzteres wird die bereits erwähnte exif-Erweiterung benötigt.

Hinweis: Für die Funktion getimagesize() wird die GD-Bibliothek nicht benötigt.

Achtung

Während die gebündelte Version der GD-Bibliothek den Zend-Memory-Manager zur Allokation von Speicher verwendet, tun dies System-Versionen nicht, so dass memory_limit ignoriert wird.

GD unterstützt eine Reihe von Formaten, folgend eine Liste aller von GD unterstützten Formaten und Hinweise zu Verfügbarkeit und lese/schreib Unterstützung.

Von GD unterstützte Formate
Format | Lesen | Schreiben | Anmerkungen
JPEG | true | true |
PNG | true | true |
GIF | true | true | Ab GD 2.0.28 und PHP 5.0.1 verfügbar
XBM | true | true |
XPM | true | false | Lesen verfügbar unter Windows ab PHP 5.3.19.
WBMP | true | true |
WebP | true | true | PHP 5.4+
BMP | true | true | Verfügbar ab GD 2.1.0 und PHP 7.2.0

Während die meisten Formate sowohl zum lesen als auch schreiben verfügbar sind, bedeutet dies nicht, dass die Unterstützung in PHP einkompiliert ist. Welche Formate dies sind, und wie PHP mit Unterstützung für diese kompiliert werden kann zeigt die Funktion gd_info(). Weitere Informationen zu diesem Thema auch im Installations-Kapitel.


Anforderungen

Mit der GD-Bibliothek (verfügbar unter » http://www.libgd.org/) können Sie auch Grafiken erzeugen und manipulieren.

Die mittels dieser Funktionen veränderbaren Grafik-Formate hängen davon ab, welche Version von GD Sie installieren und welche zusätzlichen Bibliotheken GD benötigt, um mit diesen Formaten umgehen zu können. GIF wird ab gd-2.0.28 unterstützt.

Hinweis: libgd-2.0.4 oder höher wird benötigt. Ab PHP 5.5 wird libgd-2.1.0 oder höher benötigt. Alternativ kann die gebündelte GD-Bibliothek, die mit PHP ab 4.3 ausgeliefert wird, verwendet werden.

Sie können GD erweitern, um mehr Grafikformate zu verwenden.

Unterstützte Grafikformate
Grafikformat | Download der benötigten Bibliothek | Anmerkungen
gif |  | Wird nur von GD-Versionen neuer als gd-2.0.28 unterstützt. Schreiben von GIF wird ab PHP 5.0.1 unterstützt.
jpeg | » http://www.ijg.org/ | Wenn Sie die jpeg-Bibliothek übersetzen (vor dem Übersetzen von PHP), müssen Sie die Option --enable-sharedim configure-Schritt benutzen. Wenn Sie dies nicht tun, werden Sie den Fehler libjpeg.(a|so) not found beim configure-Schritt der PHP-Übersetzung erhalten.
png | » http://www.libpng.org/pub/png/libpng.html | Nur von GD-Versionen neuer als gd-1.6 unterstützt.
xpm | » ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html |

Sie können GD erweitern, um unterschiedliche Schriften zu verwenden. Die folgenden Schriftbibliotheken werden unterstützt.

Unterstützte Schriftbibliotheken
Schriftbibliothek | Download | Anmerkungen
FreeType 1.x | » http://www.freetype.org/ | Die Unterstützung von FreeType 1.x wurde ab PHP 5.3.0 entfernt.
FreeType 2 | » http://www.freetype.org/ |
T1lib | » ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) | Unterstützung für Type 1-Schriften. (Entfernt ab PHP 7.0.0).


Installation

To enable GD-support configure PHP --with-gd[=DIR], where DIR is the GD base install directory. To use the recommended bundled version of the GD library, use the configure option --with-gd. GD library requires libpng and libjpeg to compile. As of PHP 7.4.0, --with-gd becomes --enable-gd (whether to enable the extension at all) and --with-external-gd (to opt into using an external libgd, rather than the bundled one).

In Windows, you'll include the GD2 DLL php_gd2.dll as an extension in php.ini.

Enhance the capabilities of GD to handle more image formats by specifying the --with-XXXX configure switch to your PHP configure line.

Supported image formats
Image Format | Configure Switch
jpeg | To enable support for jpeg add --with-jpeg-dir=DIR. Jpeg 6b, 7 or 8 are supported. As of PHP 7.4.0, use --with-jpeg instead.
png | To enable support for png add --with-png-dir=DIR. Note, libpng requires the zlib library, therefore add --with-zlib-dir[=DIR] to your configure line. As of PHP 7.4.0, --with-png-dir and --with-zlib-dir have been removed. libpng and zlib are required.
xpm | To enable support for xpm add --with-xpm-dir=DIR. If configure is not able to find the required libraries, you may add the path to your X11 libraries. As of PHP 7.4.0, use --with-xpm instead.
webp | To enable support for webp add --with-webp-dir=DIR. As of PHP 7.4.0, use --with-webp instead.

Hinweis: When compiling PHP with libpng, you must use the same version that was linked with the GD library.

Enhance the capabilities of GD to deal with different fonts by specifying the --with-XXXX configure switch to your PHP configure line.

Supported font libraries
Font library | Configure Switch
FreeType 2 | To enable support for FreeType 2 add --with-freetype-dir=DIR. As of PHP 7.4.0 use --with-freetype instead, which relies on pkg-config.
Native TrueType string function | To enable support for native TrueType string function add --enable-gd-native-ttf. (This option has no effect and has been removed as of PHP 7.2.0.)


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Image-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
gd.jpeg_ignore_warning | "1" | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

gd.jpeg_ignore_warning bool

Ignoriert Warnungen (aber keine Fehler), die von libjpeg(-turbo) gemeldet werden.

Changelog für gd.jpeg_ignore_warning
Version | Beschreibung
7.1.0 | Der Standard-Wert von gd.jpeg_ignore_warning wurde von 0 zu 1 geändert.

Siehe auch die exif-Konfigurationsanweisungen.

Warnung

Die Image-Funktionen sind sehr ressourcenintensiv. Stellen Sie sicher, dass Sie memory_limit hoch genug setzen, falls Sie die gebündelte Version der GD-Bibliothek verwenden.


Ressource-Typen

Diese Extension definiert die folgenden Ressoure-Typen:

Liste von Ressource-Typen in GD
Name | Beschreibung | Bemerkungen
gd | Bild-Ressource, verwendet von Funktionen wie imagecreatefrompng() |
gd font | Schriftarten-Ressource die intern von imageloadfont() erzeugt wird |
gd PS font | PostScript Type 1 Schriftarten-Ressource wie von imagepsloadfont() zurückgegeben | Entfernt ab PHP 7.0.0.
gd PS encoding | PostScript Type 1 Kodierungs-Ressource wie von imagepsencodefont() zurückgegeben | Entfernt ab PHP 7.0.0.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

GD_VERSION (string)
The GD version PHP was compiled against.
GD_MAJOR_VERSION (int)
The GD major version PHP was compiled against.
GD_MINOR_VERSION (int)
The GD minor version PHP was compiled against.
GD_RELEASE_VERSION (int)
The GD release version PHP was compiled against.
GD_EXTRA_VERSION (string)
The GD "extra" version (beta/rc..) PHP was compiled against.
GD_BUNDLED (int)
When the bundled version of GD is used this is 1 otherwise its set to 0.
IMG_BMP (int)
Used as a return value by imagetypes()
IMG_GIF (int)
Used as a return value by imagetypes()
IMG_JPG (int)
Used as a return value by imagetypes()
IMG_JPEG (int)
Used as a return value by imagetypes()

Hinweis:

This constant has the same value as IMG_JPG

IMG_PNG (int)
Used as a return value by imagetypes()
IMG_WBMP (int)
Used as a return value by imagetypes()
IMG_XPM (int)
Used as a return value by imagetypes()
IMG_WEBP (int)
Used as a return value by imagetypes() Available as of PHP 7.0.10.
IMG_COLOR_TILED (int)
Special color option which can be used instead of a color allocated with imagecolorallocate() or imagecolorallocatealpha().
IMG_COLOR_STYLED (int)
Special color option which can be used instead of a color allocated with imagecolorallocate() or imagecolorallocatealpha().
IMG_COLOR_BRUSHED (int)
Special color option which can be used instead of a color allocated with imagecolorallocate() or imagecolorallocatealpha().
IMG_COLOR_STYLEDBRUSHED (int)
Special color option which can be used instead of a color allocated with imagecolorallocate() or imagecolorallocatealpha().
IMG_COLOR_TRANSPARENT (int)
Special color option which can be used instead of a color allocated with imagecolorallocate() or imagecolorallocatealpha().
IMG_AFFINE_TRANSLATE (int)
An affine transformation type constant used by the imageaffinematrixget() function.
IMG_AFFINE_SCALE (int)
An affine transformation type constant used by the imageaffinematrixget() function.
IMG_AFFINE_ROTATE (int)
An affine transformation type constant used by the imageaffinematrixget() function.
IMG_AFFINE_SHEAR_HORIZONTAL (int)
An affine transformation type constant used by the imageaffinematrixget() function.
IMG_AFFINE_SHEAR_VERTICAL (int)
An affine transformation type constant used by the imageaffinematrixget() function.
IMG_ARC_ROUNDED (int)
A style constant used by the imagefilledarc() function.

Hinweis:

This constant has the same value as IMG_ARC_PIE

IMG_ARC_PIE (int)
A style constant used by the imagefilledarc() function.
IMG_ARC_CHORD (int)
A style constant used by the imagefilledarc() function.
IMG_ARC_NOFILL (int)
A style constant used by the imagefilledarc() function.
IMG_ARC_EDGED (int)
A style constant used by the imagefilledarc() function.
IMG_GD2_RAW (int)
A type constant used by the imagegd2() function.
IMG_GD2_COMPRESSED (int)
A type constant used by the imagegd2() function.
IMG_EFFECT_REPLACE (int)
Alpha blending effect used by the imagelayereffect() function.
IMG_EFFECT_ALPHABLEND (int)
Alpha blending effect used by the imagelayereffect() function.
IMG_EFFECT_NORMAL (int)
Alpha blending effect used by the imagelayereffect() function.
IMG_EFFECT_OVERLAY (int)
Alpha blending effect used by the imagelayereffect() function.
IMG_EFFECT_MULTIPLY (int)
Alpha blending effect used by the imagelayereffect() function.
IMG_FILTER_NEGATE (int)
Special GD filter used by the imagefilter() function.
IMG_FILTER_GRAYSCALE (int)
Special GD filter used by the imagefilter() function.
IMG_FILTER_BRIGHTNESS (int)
Special GD filter used by the imagefilter() function.
IMG_FILTER_CONTRAST (int)
Special GD filter used by the imagefilter() function.
IMG_FILTER_COLORIZE (int)
Special GD filter used by the imagefilter() function.
IMG_FILTER_EDGEDETECT (int)
Special GD filter used by the imagefilter() function.
IMG_FILTER_GAUSSIAN_BLUR (int)
Special GD filter used by the imagefilter() function.
IMG_FILTER_SELECTIVE_BLUR (int)
Special GD filter used by the imagefilter() function.
IMG_FILTER_EMBOSS (int)
Special GD filter used by the imagefilter() function.
IMG_FILTER_MEAN_REMOVAL (int)
Special GD filter used by the imagefilter() function.
IMG_FILTER_SMOOTH (int)
Special GD filter used by the imagefilter() function.
IMG_FILTER_PIXELATE (int)
Special GD filter used by the imagefilter() function.
IMG_FILTER_SCATTER (int)
Special GD filter used by the imagefilter() function. (Available as of PHP 7.4.0)
IMAGETYPE_GIF (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_JPEG (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_JPEG2000 (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_PNG (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_SWF (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_PSD (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_BMP (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_WBMP (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_XBM (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_TIFF_II (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_TIFF_MM (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_IFF (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_JB2 (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_JPC (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_JP2 (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_JPX (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_SWC (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_ICO (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions.
IMAGETYPE_WEBP (int)
Image type constant used by the image_type_to_mime_type() and image_type_to_extension() functions. (Available as of PHP 7.1.0)
PNG_NO_FILTER (int)
A special PNG filter, used by the imagepng() function.
PNG_FILTER_NONE (int)
A special PNG filter, used by the imagepng() function.
PNG_FILTER_SUB (int)
A special PNG filter, used by the imagepng() function.
PNG_FILTER_UP (int)
A special PNG filter, used by the imagepng() function.
PNG_FILTER_AVG (int)
A special PNG filter, used by the imagepng() function.
PNG_FILTER_PAETH (int)
A special PNG filter, used by the imagepng() function.
PNG_ALL_FILTERS (int)
A special PNG filter, used by the imagepng() function.
IMG_FLIP_VERTICAL (int)
Used together with imageflip(), available as of PHP 5.5.0.
IMG_FLIP_HORIZONTAL (int)
Used together with imageflip(), available as of PHP 5.5.0.
IMG_FLIP_BOTH (int)
Used together with imageflip(), available as of PHP 5.5.0.
IMG_BELL (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_BESSEL (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_BILINEAR_FIXED (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_BICUBIC (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_BICUBIC_FIXED (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_BLACKMAN (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_BOX (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_BSPLINE (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_CATMULLROM (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_GAUSSIAN (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_GENERALIZED_CUBIC (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_HERMITE (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_HAMMING (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_HANNING (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_MITCHELL (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_POWER (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_QUADRATIC (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_SINC (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_NEAREST_NEIGHBOUR (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_WEIGHTED4 (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.
IMG_TRIANGLE (int)
Used together with imagesetinterpolation(), available as of PHP 5.5.0.


Beispiele

Inhaltsverzeichnis

  • PNG erzeugen mit PHP
  • Wasserzeichen mit Hilfe von Alpha-Kanälen zufügen
  • Erstellen eines transparenten Wasserzeichens mit imagecopymerge


PNG erzeugen mit PHP

Beispiel #1 PNG erzeugen mit PHP

<?php

header("Content-type: image/png");
$string = $_GET['text'];
$im     = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>
Dieses Beispiel würde von einer Seite über einen Link wie <img src="button.php?text=text"> aufgerufen. Das oben aufgezeigte Beispielskript button.php nimmt den Text "text" entgegen und legt diesen über ein vorhandenes Bild, in diesem Fall "images/button1.png" und gibt die resultierende Grafik aus. Diese Vorgehensweise ist sehr zweckmäßig, wenn Sie vermeiden wollen, dass Sie immer wieder neue Button-Grafiken erstellen müssen, falls Sie die Beschriftung eines Buttons ändern wollen. Mit der vorgestellten Methode werden Ihre Buttons, samt Beschriftung, dynamisch generiert.


Wasserzeichen mit Hilfe von Alpha-Kanälen zufügen

Beispiel #1 Wasserzeichen mit Hilfe von Alpha-Kanälen zufügen

<?php
// Wasserzeichen und Foto laden
$stamp = imagecreatefrompng('stamp.png');
$im = imagecreatefromjpeg('photo.jpeg');

// Ränder für Wasserzeichen festlegen, dessen Höhe und Breite bestimmen
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Wasserzeichen auf das Foto kopieren, die Position berechnet sich dabei aus
// den Rändern und der Bildbreite
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

// Ausgeben und aufräumen
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
Wasserzeichen mit Hilfe von Alpha-Kanälen zufügen
Dieses Beispiel zeigt eine übliche Vorgehensweise um ein Wasserzeichen auf Fotos oder urheberrechtlich geschützten Bildern anzubringen. Beachten Sie, daß die Wasserzeichen-Grafik einen Alphakanal enthält. Dieser wird beim Kopiervorgang beibehalten.


Erstellen eines transparenten Wasserzeichens mit imagecopymerge

  • « Wasserzeichen mit Hilfe von Alpha-Kanälen zufügen
  • GD- und Image-Funktionen »
  • PHP Manual
  • Beispiele
  • Erstellen eines transparenten Wasserzeichens mit imagecopymerge

Erstellen eines transparenten Wasserzeichens mit imagecopymerge()

Beispiel #1 Erstellen eines transparenten Wasserzeichens mit imagecopymerge()

<?php
// Foto laden
$im = imagecreatefromjpeg('photo.jpeg');

// wir erstellen ein Wasserzeichen mit GD
$stamp = imagecreatetruecolor(100, 70);
imagefilledrectangle($stamp, 0, 0, 99, 69, 0x0000FF);
imagefilledrectangle($stamp, 9, 9, 90, 60, 0xFFFFFF);
imagestring($stamp, 5, 20, 20, 'libGD', 0x0000FF);
imagestring($stamp, 3, 20, 40, '(c) 2007-9', 0x0000FF);

// Ränder setzen, Dimensionen ermitteln
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Wasserzeichen mit einer Transparenz von 50% über das Foto legen
imagecopymerge($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp), 50);

// Bild speichern, aufräumen
imagepng($im, 'photo_stamp.png');
imagedestroy($im);

?>
Erstellen eines transparenten Wasserzeichens mit imagecopymerge()
Dieses Beispiel nutzt imagecopymerge() um das Wasserzeichen über das Original-Bild zu legen. Dabei können wir die Transparenz des Wasserzeichens frei bestimmen - im Beispiel werden 50% gesetzt. In der Praxis wäre dies ein sinnvolles Vorgehen zum Urheberschutz, da halbtransparente Wasserzeichen schwierig zu entfernen sind, dem Betrachter aber trotzdem erlauben das Bild zu sehen.


GD- und Image-Funktionen

Inhaltsverzeichnis

  • gd_info — Ruft Informationen über die aktuell verwendete GD-Bibliothek ab
  • getimagesize — Ermittelt die Größe einer Grafik
  • getimagesizefromstring — Ermittelt die Größe einer Grafik von einem String
  • image_type_to_extension — Get file extension for image type
  • image_type_to_mime_type — Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
  • image2wbmp — Gibt das Bild im Browser oder einer Datei aus.
  • imageaffine — Return an image containing the affine transformed src image, using an optional clipping area
  • imageaffinematrixconcat — Concatenate two affine transformation matrices
  • imageaffinematrixget — Get an affine transformation matrix
  • imagealphablending — Set the blending mode for an image
  • imageantialias — Should antialias functions be used or not
  • imagearc — Zeichnet einen Bogen
  • imagebmp — Output a BMP image to browser or file
  • imagechar — Stellt ein Zeichen horizontal dar
  • imagecharup — Zeichnet einen vertikal ausgerichteten Charakter
  • imagecolorallocate — Alloziert eine Farbe für eine Grafik
  • imagecolorallocatealpha — Allocate a color for an image
  • imagecolorat — Ermittelt den Farbwert eines Bildpunktes
  • imagecolorclosest — Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt
  • imagecolorclosestalpha — Get the index of the closest color to the specified color + alpha
  • imagecolorclosesthwb — Get the index of the color which has the hue, white and blackness
  • imagecolordeallocate — Löscht eine Farbdefinition
  • imagecolorexact — Ermittelt den Index-Wert der angegebenen Farbe
  • imagecolorexactalpha — Get the index of the specified color + alpha
  • imagecolormatch — Makes the colors of the palette version of an image more closely match the true color version
  • imagecolorresolve — Ermittelt den Index-Wert der angegebenen Farbe oder die nächst mögliche Alternative dazu
  • imagecolorresolvealpha — Get the index of the specified color + alpha or its closest possible alternative
  • imagecolorset — Setzt die Farbe für den angegebenen Paletten-Index
  • imagecolorsforindex — Ermittelt die Farbwerte eines Palettenindex
  • imagecolorstotal — Ermittelt die Anzahl der Farben in der Palette eines Bildes
  • imagecolortransparent — Definiert eine Farbe als transparent
  • imageconvolution — Apply a 3x3 convolution matrix, using coefficient and offset
  • imagecopy — Kopiert einen Bildausschnitt
  • imagecopymerge — Copy and merge part of an image
  • imagecopymergegray — Copy and merge part of an image with gray scale
  • imagecopyresampled — Copy and resize part of an image with resampling
  • imagecopyresized — Kopieren und Ändern der Größe eines Bild-Teiles
  • imagecreate — Erzeugt ein neues Paletten-Bild
  • imagecreatefrombmp — Erzeugt ein neues Bild aus einer Datei oder URL
  • imagecreatefromgd2 — Create a new image from GD2 file or URL
  • imagecreatefromgd2part — Create a new image from a given part of GD2 file or URL
  • imagecreatefromgd — Create a new image from GD file or URL
  • imagecreatefromgif — Erzeugt ein neues Bild aus einer Datei oder URL
  • imagecreatefromjpeg — Erzeugt ein neues Bild aus einer Datei oder URL
  • imagecreatefrompng — Erzeugt ein neues Bild aus einer Datei oder URL
  • imagecreatefromstring — Create a new image from the image stream in the string
  • imagecreatefromwbmp — Erzeugt ein neues Bild aus einer Datei oder URL
  • imagecreatefromwebp — Erzeugt ein neues Bild aus einer Datei oder URL
  • imagecreatefromxbm — Erzeugt ein neues Bild aus einer Datei oder URL
  • imagecreatefromxpm — Erzeugt ein neues Bild aus einer Datei oder URL
  • imagecreatetruecolor — Create a new true color image
  • imagecrop — Crop an image to the given rectangle
  • imagecropauto — Crop an image automatically using one of the available modes
  • imagedashedline — Zeichne eine gestrichelte Linie
  • imagedestroy — Löscht ein Bild
  • imageellipse — Draw an ellipse
  • imagefill — Flutfüllung
  • imagefilledarc — Draw a partial arc and fill it
  • imagefilledellipse — Draw a filled ellipse
  • imagefilledpolygon — Zeichne ein gefülltes Polygon
  • imagefilledrectangle — Zeichne ein gefülltes Rechteck
  • imagefilltoborder — Flutfüllung bis zur angegebenen Farbe
  • imagefilter — Applies a filter to an image
  • imageflip — Flips an image using a given mode
  • imagefontheight — Ermittle die Höhe einer Schriftart
  • imagefontwidth — Ermittle die Breite einer Schriftart
  • imageftbbox — Give the bounding box of a text using fonts via freetype2
  • imagefttext — Write text to the image using fonts using FreeType 2
  • imagegammacorrect — Anwendung einer Gamma-Korrektur auf ein GD-Bild
  • imagegd2 — Output GD2 image to browser or file
  • imagegd — Output GD image to browser or file
  • imagegetclip — Get the clipping rectangle
  • imagegetinterpolation — Get the interpolation method
  • imagegif — Gibt das Bild im Browser oder einer Datei aus.
  • imagegrabscreen — Captures the whole screen
  • imagegrabwindow — Captures a window
  • imageinterlace — Aktiviere oder Deaktiviere Interlacing
  • imageistruecolor — Finds whether an image is a truecolor image
  • imagejpeg — Gibt das Bild im Browser oder einer Datei aus.
  • imagelayereffect — Set the alpha blending flag to use layering effects
  • imageline — Zeichne eine Linie
  • imageloadfont — Lädt eine neue Schriftart
  • imageopenpolygon — Draws an open polygon
  • imagepalettecopy — Copy the palette from one image to another
  • imagepalettetotruecolor — Converts a palette based image to true color
  • imagepng — Ausgabe eines Bildes im Browser oder als Datei im PNG-Format
  • imagepolygon — Zeichne eine Polygon
  • imagerectangle — Zeichne ein Rechteck
  • imageresolution — Get or set the resolution of the image
  • imagerotate — Rotate an image with a given angle
  • imagesavealpha — Ob beim Speichern von PNG-Bildern vollständige Alphakanal-Information erhalten wird
  • imagescale — Scale an image using the given new width and height
  • imagesetbrush — Set the brush image for line drawing
  • imagesetclip — Set the clipping rectangle
  • imagesetinterpolation — Set the interpolation method
  • imagesetpixel — Setze ein einzelnes Pixel
  • imagesetstyle — Set the style for line drawing
  • imagesetthickness — Set the thickness for line drawing
  • imagesettile — Set the tile image for filling
  • imagestring — Zeichne einen horizontalen String
  • imagestringup — Zeichne einen vertikalen String
  • imagesx — Ermittle die Bild-Breite
  • imagesy — Ermittle die Bild-Höhe
  • imagetruecolortopalette — Convert a true color image to a palette image
  • imagettfbbox — Ermittle das umgebende Rechteck eines Textes unter Verwendung von True-Type Schriftarten
  • imagettftext — Schreibe Text ins Bild unter Verwendung von True-Type-Schriftarten
  • imagetypes — Gib die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück
  • imagewbmp — Gibt das Bild im Browser oder einer Datei aus.
  • imagewebp — Output a WebP image to browser or file
  • imagexbm — Output an XBM image to browser or file
  • iptcembed — Embeds binary IPTC data into a JPEG image
  • iptcparse — Parse a binary IPTC block into single tags
  • jpeg2wbmp — Konvertiert eine JPEG-Bilddatei in eine WBMP-Bilddatei
  • png2wbmp — Convert PNG image file to WBMP image file


Ruft Informationen über die aktuell verwendete GD-Bibliothek ab

  • « GD- und Image-Funktionen
  • getimagesize »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ruft Informationen über die aktuell verwendete GD-Bibliothek ab

gd_info

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

gd_info — Ruft Informationen über die aktuell verwendete GD-Bibliothek ab

Beschreibung

gd_info ( ) : array

Ermittelt Informationen über die Version und die Funktionen der installierten GD- Bibliothek.

Rückgabewerte

Gibt ein assoziatives Array zurück.

Elemente des von gd_info() zurückgegebenen Arrays
Attribut | Bedeutung
GD Version | string Inhalt beschreibt die installierte libgd Version.
FreeType Support | boolean Inhalt. true wenn FreeType Unterstützung installiert ist.
FreeType Linkage | string Inhalt beschreibt, wie FreeType verknüpft wurde. Erwartete Inhalte: 'with freetype', 'with TTF library', und 'with unknown library'. Dieses element wird nur definiert wenn FreeType Support als true beurteilt wurde.
GIF Read Support | boolean Inhalt. true wenn leseunterstützung für GIF Bilder eingebunden ist.
GIF Create Support | boolean Inhalt. true wenn Unterstützung für das Erstellen von GIF -Bildern eingebunden ist.
JPEG Support | boolean Inhalt. true wenn JPEG-Unterstützung eingebunden ist.
PNG Support | boolean Inhalt. true wenn PNG-Unterstützung eingebunden ist.
WBMP Support | boolean Inhalt. true wenn WBMP-Unterstützung eingebunden ist.
XBM Support | boolean Inhalt. true wenn XBM-Unterstützung eingebunden ist.
WebP Support | boolean Inhalt. true wenn WebP-Unterstützung eingebunden ist.

Beispiele

Beispiel #1 Benutztung von gd_info()

<?php
var_dump(gd_info());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(10) {
  ["GD Version"]=>
  string(24) "bundled (2.1.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPEG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
  ["WebP Support"]=>
  bool(false)
}

Siehe auch

  • imagepng() - Ausgabe eines Bildes im Browser oder als Datei im PNG-Format
  • imagejpeg() - Gibt das Bild im Browser oder einer Datei aus.
  • imagegif() - Gibt das Bild im Browser oder einer Datei aus.
  • imagewbmp() - Gibt das Bild im Browser oder einer Datei aus.
  • imagewebp() - Output a WebP image to browser or file
  • imagetypes() - Gib die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück


Ermittelt die Größe einer Grafik

  • « gd_info
  • getimagesizefromstring »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittelt die Größe einer Grafik

getimagesize

(PHP 4, PHP 5, PHP 7, PHP 8)

getimagesize — Ermittelt die Größe einer Grafik

Beschreibung

getimagesize ( string $filename , array &$imageinfo = ? ) : array

Die Funktion getimagesize() ermittelt die Dimensionen der übergebenen Grafik-Datei, sofern das Format unterstützt wird, und gibt diese zusammen mit dem Dateityp und einem String aus Breite und Höhe zurück, der innerhalb eines regulären HTML IMG-Tags verwendet werden kann. Außerdem wird der entsprechende HTTP Content-Type zurückgegeben.

getimagesize() kann im Parameter imageinfo weitere Informationen liefern.

Achtung

Diese Funktion erwartet, dass filename eine gültige Bilddatei ist. Wird eine Datei angegeben, die kein Bild enthält, kann sie fälschlicherweise als Bild erkannt werden, und die Funktion wird erfolgreich ausgeführt, aber das Array kann unsinnige Werte enthalten.

getimagesize() sollte nicht verwendet werden, um zu überprüfen, ob eine gegebene Datei ein Bild enthält. Statt dessen sollte eine für diesen Zweck entwickelte Lösung wie die Fileinfo-Extension verwendet werden.

Hinweis: Beachten Sie, dass JPC und JP2 aus Komponenten mit verschiedener Farbtiefe bestehen können. In diesem Fall entspricht der Wert für "bits" dem höchsten gefundenen Wert. Des Weiteren können JP2-Dateien mehrere JPEG 2000 Codestreams enthalten. In diesem Fall gibt getimagesize() die Werte des ersten gefundenen Codestreams zurück.

Hinweis: Informationen über Icons werden für das Icon mit der höchsten Bitrate ermittelt.

Hinweis: GIF-Bilder bestehen aus einem oder mehreren Frames, wobei jeder Frame nur einen Teil des Bildes belegen kann. Die Größe des Bildes, die von getimagesize() gemeldet wird, ist die Gesamtgröße (ermittelt aus dem Logical Screen Descriptor).

Parameter-Liste

filename

Die zu überprüfende Datei. Dabei kann es sich um eine lokale Datei oder, eine entsprechende Konfiguration vorausgesetzt, um eine entfernte Datei handeln, die über einen unterstützten Stream gelesen wird.

imageinfo

Dieser optionale Parameter erlaubt es, erweiterte Informationen aus der Datei zu ermitteln. Momentan werden die verschiedenen JPG APP Markierungen als assoziatives Array zurückgegeben. Diese Markierungen werden von einigen Programmen verwendet um Textinformationen in Grafiken zu speichern. Gebräuchlich ist die Einbettung von IPTC » http://www.iptc.org/ Informationen in die APP13-Markierung. Sie können iptcparse() benutzen, um die binäre APP13-Markierung in ein lesbares Format zu übertragen.

Hinweis:

Der Parameter imageinfo unterstützt nur JFIF Dateien.

Rückgabewerte

Gibt ein Array mit bis zu sieben Elementen zurück. Nicht alle Bildtypen enthalten die Elemente channels und bits.

Index 0 und 1 enthalten Breite respektive Höhe der Grafik.

Hinweis:

Einige Formate enthalten keine oder mehrere Grafiken. In diesen Fällen ist getimagesize() möglicherweise nicht in der Lage, die Dimensionen zu ermitteln; der Rückgabewert für Breite und Höhe ist in diesen Fällen 0.

Index 2 ist eine der IMAGETYPE_XXX-Konstanten entsprechend des Typs der Grafik.

Index 3 ist eine Zeichenkette mit dem Attributen Breite und Höhe in der Form height="yyy" width="xxx" zur Verwendung in einem IMG-Tag.

mime entspricht dem MIME-Typ der Grafik. Diese Information kann zur Auslieferung von Grafiken mit dem entsprechenden HTTP Content-type-Header dienen.

Beispiel #1 getimagesize() und MIME-Typ

<?php
$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
    header("Content-type: {$size['mime']}");
    fpassthru($fp);
    exit;
} else {
    // Fehler
}
?>

channels hat für RGB-Grafiken den Wert 3, für CMYK den Wert 4.

bits entspricht der Anzahl der Bits pro Farbe.

Für einige Bildformate kann die Angebe von channels und bits irreführend sein. Beispielsweise nutzt GIF immer drei Kanäle pro Pixel, aber die Anzahl der Bits pro Pixel kann für ein animiertes GIF mit einer globalen Farbtabelle nicht errechnet werden.

Gibt im Falle eines Fehlers false zurück.

Fehler/Exceptions

Wenn ein Zugriff auf die mit filename angegebene Grafik nicht möglich ist, wird getimagesize() einen Fehler der Stufe E_WARNING generieren. Bei einem Lesefehler wird getimagesize() einen Fehler der Stufe E_NOTICE hervorrufen.

Changelog

Version | Beschreibung
7.1.0 | Unterstützung für WebP hinzugefügt.

Beispiele

Beispiel #2 getimagesize()-Beispiel

<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
?>

Beispiel #3 getimagesize (URL)

<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");

// if the file name has space in it, encode it properly
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

Beispiel #4 getimagesize() mit Rückgabe von IPTC

<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
    $iptc = iptcparse($info["APP13"]);
    var_dump($iptc);
}
?>

Anmerkungen

Hinweis:

Diese Funktion benötigt die GD-Bibliothek nicht.

Siehe auch

  • image_type_to_mime_type() - Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
  • exif_imagetype() - Ermittelt den Bildtyp
  • exif_read_data() - Liest die EXIF-Header einer Bilddatei aus
  • exif_thumbnail() - Liest das eingebettete Miniaturbild eines Bilds
  • imagesx() - Ermittle die Bild-Breite
  • imagesy() - Ermittle die Bild-Höhe


Ermittelt die Größe einer Grafik von einem String

  • « getimagesize
  • image_type_to_extension »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittelt die Größe einer Grafik von einem String

getimagesizefromstring

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

getimagesizefromstring — Ermittelt die Größe einer Grafik von einem String

Beschreibung

getimagesizefromstring ( string $imagedata , array &$imageinfo = ? ) : array

Identisch zu getimagesize(), außer dass getimagesizefromstring() als ersten Übergabeparameter einen String statt einem Dateinamen akzeptiert.

Siehe die getimagesize() Dokumentation um zu sehen wie die Funktion funktioniert.

Parameter-Liste

imagedata

Die Bilddaten als String.

imageinfo

Siehe getimagesize().

Rückgabewerte

Siehe getimagesize().

Beispiele

Beispiel #1 getimagesizefromstring() example

<?php
$img = '/path/to/test.png';

// als Datei öffnen
$size_info1 = getimagesize($img);

// oder als String öffnen
$data       = file_get_contents($img);
$size_info2 = getimagesizefromstring($data);
?>

Siehe auch

  • getimagesize() - Ermittelt die Größe einer Grafik


Get file extension for image type

  • « getimagesizefromstring
  • image_type_to_mime_type »
  • PHP Manual
  • GD- und Image-Funktionen
  • Get file extension for image type

image_type_to_extension

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

image_type_to_extension — Get file extension for image type

Beschreibung

image_type_to_extension ( int $image_type , bool $include_dot = true ) : string|false

Returns the extension for the given IMAGETYPE_XXX constant.

Parameter-Liste

image_type

One of the IMAGETYPE_XXX constant.

include_dot

Whether to prepend a dot to the extension or not. Default to true.

Rückgabewerte

A string with the extension corresponding to the given image type, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 image_type_to_extension() example

<?php
// Create image instance
$im = imagecreatetruecolor(100, 100);

// Save image
imagepng($im, './test' . image_type_to_extension(IMAGETYPE_PNG));
imagedestroy($im);
?>

Anmerkungen

Hinweis:

Diese Funktion benötigt die GD-Bibliothek nicht.


Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

  • « image_type_to_extension
  • image2wbmp »
  • PHP Manual
  • GD- und Image-Funktionen
  • Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

image_type_to_mime_type

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

image_type_to_mime_type — Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

Beschreibung

image_type_to_mime_type ( int $image_type ) : string

The image_type_to_mime_type() function will determine the Mime-Type for an IMAGETYPE constant.

Parameter-Liste

image_type

One of the IMAGETYPE_XXX constants.

Rückgabewerte

The returned values are as follows

Returned values Constants
image_type | Returned value
IMAGETYPE_GIF | image/gif
IMAGETYPE_JPEG | image/jpeg
IMAGETYPE_PNG | image/png
IMAGETYPE_SWF | application/x-shockwave-flash
IMAGETYPE_PSD | image/psd
IMAGETYPE_BMP | image/bmp
IMAGETYPE_TIFF_II (intel byte order) | image/tiff
IMAGETYPE_TIFF_MM (motorola byte order) | image/tiff
IMAGETYPE_JPC | application/octet-stream
IMAGETYPE_JP2 | image/jp2
IMAGETYPE_JPX | application/octet-stream
IMAGETYPE_JB2 | application/octet-stream
IMAGETYPE_SWC | application/x-shockwave-flash
IMAGETYPE_IFF | image/iff
IMAGETYPE_WBMP | image/vnd.wap.wbmp
IMAGETYPE_XBM | image/xbm
IMAGETYPE_ICO | image/vnd.microsoft.icon
IMAGETYPE_WEBP | image/webp

Beispiele

Beispiel #1 image_type_to_mime_type() example

<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

Anmerkungen

Hinweis:

Diese Funktion benötigt die GD-Bibliothek nicht.

Siehe auch

  • getimagesize() - Ermittelt die Größe einer Grafik
  • exif_imagetype() - Ermittelt den Bildtyp
  • exif_read_data() - Liest die EXIF-Header einer Bilddatei aus
  • exif_thumbnail() - Liest das eingebettete Miniaturbild eines Bilds


Gibt das Bild im Browser oder einer Datei aus.

  • « image_type_to_mime_type
  • imageaffine »
  • PHP Manual
  • GD- und Image-Funktionen
  • Gibt das Bild im Browser oder einer Datei aus.

image2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

image2wbmp — Gibt das Bild im Browser oder einer Datei aus.

Warnung

Diese Funktion ist seit PHP 7.3.0 VERALTET und seit PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

image2wbmp ( resource $image , string $filename = ? , int $foreground = ? ) : bool

image2wbmp() outputs or save a WBMP version of the given image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

filename

Path to the saved file. If not given, the raw image stream will be output directly.

foreground

You can set the foreground color with this parameter by setting an identifier obtained from imagecolorallocate(). The default foreground color is black.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Achtung

However, if libgd fails to output the image, this function returns true.

Beispiele

Beispiel #1 image2wbmp() example

<?php
$file = 'php.png';
$image = imagecreatefrompng($file);

header('Content-Type: ' . image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($image); // output the stream directly
imagedestroy($image);
?>

Siehe auch

  • imagewbmp() - Gibt das Bild im Browser oder einer Datei aus.


Return an image containing the affine transformed src image, using an optional clipping area

  • « image2wbmp
  • imageaffinematrixconcat »
  • PHP Manual
  • GD- und Image-Funktionen
  • Return an image containing the affine transformed src image, using an optional clipping area

imageaffine

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageaffine — Return an image containing the affine transformed src image, using an optional clipping area

Beschreibung

imageaffine ( resource $image , array $affine , array $clip = ? ) : resource|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

affine

Array with keys 0 to 5.

clip

Array with keys "x", "y", "width" and "height".

Rückgabewerte

Return affined image resource on successIm Fehlerfall wird false zurückgegeben..


Concatenate two affine transformation matrices

  • « imageaffine
  • imageaffinematrixget »
  • PHP Manual
  • GD- und Image-Funktionen
  • Concatenate two affine transformation matrices

imageaffinematrixconcat

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageaffinematrixconcat — Concatenate two affine transformation matrices

Beschreibung

imageaffinematrixconcat ( array $m1 , array $m2 ) : array|false

Returns the concatenation of two affine transformation matrices, what is useful if multiple transformations should be applied to the same image in one go.

Parameter-Liste

m1

An affine transformation matrix (an array with keys 0 to 5 and float values).

m2

An affine transformation matrix (an array with keys 0 to 5 and float values).

Rückgabewerte

An affine transformation matrix (an array with keys 0 to 5 and float values) Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 imageaffinematrixconcat() example

<?php
$m1 = imageaffinematrixget(IMG_AFFINE_TRANSLATE, array('x' = 2, 'y' => 3));
$m2 = imageaffinematrixget(IMG_AFFINE_SCALE, array('x' = 4, 'y' => 5));
$matrix = imageaffinematrixconcat($m1, $m2);
print_r($matrix);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => 4
    [1] => 0
    [2] => 0
    [3] => 5
    [4] => 8
    [5] => 15
)

Siehe auch

  • imageaffine() - Return an image containing the affine transformed src image, using an optional clipping area
  • imageaffinematrixget() - Get an affine transformation matrix


Get an affine transformation matrix

  • « imageaffinematrixconcat
  • imagealphablending »
  • PHP Manual
  • GD- und Image-Funktionen
  • Get an affine transformation matrix

imageaffinematrixget

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageaffinematrixget — Get an affine transformation matrix

Beschreibung

imageaffinematrixget ( int $type , mixed $options = ? ) : array|false

Returns an affine transformation matrix.

Parameter-Liste

type

One of the IMG_AFFINE_* constants.

options

If type is IMG_AFFINE_TRANSLATE or IMG_AFFINE_SCALE, options has to be an array with keys x and y, both having float values.

If type is IMG_AFFINE_ROTATE, IMG_AFFINE_SHEAR_HORIZONTAL or IMG_AFFINE_SHEAR_VERTICAL, options has to be a float specifying the angle.

Rückgabewerte

An affine transformation matrix (an array with keys 0 to 5 and float values) Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 imageaffinematrixget() example

<?php
$matrix = imageaffinematrixget(IMG_AFFINE_TRANSLATE, array('x' => 2, 'y' => 3));
print_r($matrix);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Siehe auch

  • imageaffine() - Return an image containing the affine transformed src image, using an optional clipping area
  • imageaffinematrixconcat() - Concatenate two affine transformation matrices


Set the blending mode for an image

  • « imageaffinematrixget
  • imageantialias »
  • PHP Manual
  • GD- und Image-Funktionen
  • Set the blending mode for an image

imagealphablending

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagealphablending — Set the blending mode for an image

Beschreibung

imagealphablending ( resource $image , bool $blendmode ) : bool

imagealphablending() allows for two different modes of drawing on truecolor images. In blending mode, the alpha channel component of the color supplied to all drawing function, such as imagesetpixel() determines how much of the underlying color should be allowed to shine through. As a result, gd automatically blends the existing color at that point with the drawing color, and stores the result in the image. The resulting pixel is opaque. In non-blending mode, the drawing color is copied literally with its alpha channel information, replacing the destination pixel. Blending mode is not available when drawing on palette images.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

blendmode

Whether to enable the blending mode or not. On true color images the default value is true otherwise the default value is false

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagealphablending() usage example

<?php
// Create image
$im = imagecreatetruecolor(100, 100);

// Set alphablending to on
imagealphablending($im, true);

// Draw a square
imagefilledrectangle($im, 30, 30, 70, 70, imagecolorallocate($im, 255, 0, 0));

// Output
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>


Should antialias functions be used or not

  • « imagealphablending
  • imagearc »
  • PHP Manual
  • GD- und Image-Funktionen
  • Should antialias functions be used or not

imageantialias

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

imageantialias — Should antialias functions be used or not

Beschreibung

imageantialias ( resource $image , bool $enabled ) : bool

Activate the fast drawing antialiased methods for lines and wired polygons. It does not support alpha components. It works using a direct blend operation. It works only with truecolor images.

Thickness and styled are not supported.

Using antialiased primitives with transparent background color can end with some unexpected results. The blend method uses the background color as any other colors. The lack of alpha component support does not allow an alpha based antialiasing method.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

enabled

Whether to enable antialiasing or not.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.2.0 | imageantialias() is now generally available. Formerly it was only available if PHP was compiled with the bundled version of the GD library.

Beispiele

Beispiel #1 A comparison of two lines, one with anti-aliasing switched on

<?php
// Setup an anti-aliased image and a normal image
$aa = imagecreatetruecolor(400, 100);
$normal = imagecreatetruecolor(200, 100);

// Switch antialiasing on for one image
imageantialias($aa, true);

// Allocate colors
$red = imagecolorallocate($normal, 255, 0, 0);
$red_aa = imagecolorallocate($aa, 255, 0, 0);

// Draw two lines, one with AA enabled
imageline($normal, 0, 0, 200, 100, $red);
imageline($aa, 0, 0, 200, 100, $red_aa);

// Merge the two images side by side for output (AA: left, Normal: Right)
imagecopymerge($aa, $normal, 200, 0, 0, 0, 200, 100, 100);

// Output image
header('Content-type: image/png');

imagepng($aa);
imagedestroy($aa);
imagedestroy($normal);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : A comparison of two lines, one with anti-aliasing switched on

Siehe auch

  • imagecreatetruecolor() - Create a new true color image


Zeichnet einen Bogen

  • « imageantialias
  • imagebmp »
  • PHP Manual
  • GD- und Image-Funktionen
  • Zeichnet einen Bogen

imagearc

(PHP 4, PHP 5, PHP 7, PHP 8)

imagearc — Zeichnet einen Bogen

Beschreibung

imagearc ( resource $image , int $cx , int $cy , int $width , int $height , int $start , int $end , int $color ) : bool

imagearc() zeichnet einen Kreisbogen um den angegebenen Mittelpunkt

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

cx

x-Koordinate des Mittelpunkts

cy

y-Koordinate des Mittelpunkts

width

Die Breite der Ellipse

height

Die Höhe der Ellipse

start

Der Startwinkel des Bogens, in Grad.

end

Der Endwinkel des Bogens, in Grad. 0° liegt in der Drei-Uhr-Position und der Bogen wird im Uhrzeigersinn gezeichnet.

color

Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Zeichnen eines Kreises mittels imagearc()

<?php

// eine 200*200-Grafik erstellen
$img = imagecreatetruecolor(200, 200);

// Farben vorbereiten
$white = imagecolorallocate($img, 255, 255, 255);
$red   = imagecolorallocate($img, 255,   0,   0);
$green = imagecolorallocate($img,   0, 255,   0);
$blue  = imagecolorallocate($img,   0,   0, 255);

// Kopf
imagearc($img, 100, 100, 200, 200,  0, 360, $white);
// Mund
imagearc($img, 100, 100, 150, 150, 25, 155, $red);
// Augen
imagearc($img,  60,  75,  50,  50,  0, 360, $green);
imagearc($img, 140,  75,  50,  50,  0, 360, $blue);

// Ausgabe im Browser
header("Content-type: image/png");
imagepng($img);

// Speicher freigeben
imagedestroy($img);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels: Zeichnen eines Kreises mittels imagearc()

Siehe auch

  • imagefilledarc() - Draw a partial arc and fill it
  • imageellipse() - Draw an ellipse
  • imagefilledellipse() - Draw a filled ellipse


Output a BMP image to browser or file

  • « imagearc
  • imagechar »
  • PHP Manual
  • GD- und Image-Funktionen
  • Output a BMP image to browser or file

imagebmp

(PHP 7 >= 7.2.0, PHP 8)

imagebmp — Output a BMP image to browser or file

Beschreibung

imagebmp ( resource $image , mixed $to = null , bool $compressed = true ) : bool

Outputs or saves a BMP version of the given image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

to

Der Pfad unter dem das Bild gespeichert werden soll. Ist dies nicht gesetzt oder null wird der rohe Bilddatenstrom direkt ausgegeben.

Hinweis:

null is invalid if the compressed arguments is not used.

compressed

Whether the BMP should be compressed with run-length encoding (RLE), or not.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Achtung

However, if libgd fails to output the image, this function returns true.

Beispiele

Beispiel #1 Saving a BMP file

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);

imagestring($im, 1, 5, 5,  'BMP with PHP', $text_color);

// Save the image
imagebmp($im, 'php.bmp');

// Free up memory
imagedestroy($im);
?>


Stellt ein Zeichen horizontal dar

  • « imagebmp
  • imagecharup »
  • PHP Manual
  • GD- und Image-Funktionen
  • Stellt ein Zeichen horizontal dar

imagechar

(PHP 4, PHP 5, PHP 7, PHP 8)

imagechar — Stellt ein Zeichen horizontal dar

Beschreibung

imagechar ( resource $image , int $font , int $x , int $y , string $c , int $color ) : bool

imagechar() stellt das erste in c enthaltene Zeichen in der mit image angegebenen Grafik dar. Das Zeichen wird mit seiner linken oberen Ecke in x, y positioniert (die linke obere Ecke der Grafik hat die Koordinaten 0,0), die Darstellung erfolgt in der Farbe color

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

font

Ein Wert zwischen 1 und 5 für eingebaute Schriftarten in Latin2-Kodierung (wobei größere Werte größeren Schriften entsprechen) oder einer Ihrer mit imageloadfont() selbst registrierten Schrifteinträge.

x

x-Koordinate des Startpunkts

y

y-Koordinate des Startpunkts

c

Das darzustellende Zeichen

color

Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagechar()-Beispiel

<?php

$im = imagecreate(100, 100);

$string = 'PHP';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// schreibe ein schwarzes "P" in die linke obere Ecke
imagechar($im, 1, 0, 0, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels: imagechar()

Siehe auch

  • imagecharup() - Zeichnet einen vertikal ausgerichteten Charakter
  • imageloadfont() - Lädt eine neue Schriftart


Zeichnet einen vertikal ausgerichteten Charakter

  • « imagechar
  • imagecolorallocate »
  • PHP Manual
  • GD- und Image-Funktionen
  • Zeichnet einen vertikal ausgerichteten Charakter

imagecharup

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecharup — Zeichnet einen vertikal ausgerichteten Charakter

Beschreibung

imagecharup ( resource $image , int $font , int $x , int $y , string $c , int $color ) : bool

Zeichnet den Buchstaben c vertikal an der angegebenen Koordinate auf dem angegebenen image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

font

Ein Wert zwischen 1 und 5 für eingebaute Schriftarten in Latin2-Kodierung (wobei größere Werte größeren Schriften entsprechen) oder einer Ihrer mit imageloadfont() selbst registrierten Schrifteinträge.

x

x-Koordinate des Anfangs.

y

y-Koordinate des Anfangs.

c

Der zu zeichnende Buchstabe.

color

Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagecharup() Beispiel

<?php

$im = imagecreate(100, 100);

$string = 'N wird aussehen wie ein Z';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// druckt ein schwarzes "Z" auf weißem Hintergrund
imagecharup($im, 3, 10, 10, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : imagecharup()

Siehe auch

  • imagechar() - Stellt ein Zeichen horizontal dar
  • imageloadfont() - Lädt eine neue Schriftart


Alloziert eine Farbe für eine Grafik

  • « imagecharup
  • imagecolorallocatealpha »
  • PHP Manual
  • GD- und Image-Funktionen
  • Alloziert eine Farbe für eine Grafik

imagecolorallocate

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorallocate — Alloziert eine Farbe für eine Grafik

Beschreibung

imagecolorallocate ( resource $image , int $red , int $green , int $blue ) : int

Liefert einen Farb-Kennzeichner zurück, der die Farbe, die aus den gegebenen RGB-Komponenten besteht, darstellt.

imagecolorallocate() muss aufgerufen werden, um jede Farbe zu erzeugen, die in dem Bild, das durch image angegeben wird, verwendet werden soll.

Hinweis:

Der erste Aufruf von imagecolorallocate() bestimmt die Hintergrundfarbe von palettenbasierten Bilder – also Bildern, die durch imagecreate() erzeugt wurden.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

red

Wert der Rotkomponente.

green

Wert der Grünkomponente.

blue

Wert der Blaukomponente.

Diese Parameter sind Ganzzahlen zwischen 0 und 255 oder Hexadezimalzahlen zwischen 0x00 und 0xFF.

Rückgabewerte

Ein Farb-Kennzeichner oder false falls die Farbe nicht alloziert werden konnte.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 imagecolorallocate() Beispiel

<?php

$im = imagecreate(100, 100);

// färbt den Hintergrund rot
$background = imagecolorallocate($im, 255, 0, 0);

// alloziert weitere Farben
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// hexadezimale Schreibweise
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

?>

Siehe auch

  • imagecolorallocatealpha() - Allocate a color for an image
  • imagecolordeallocate() - Löscht eine Farbdefinition


Allocate a color for an image

  • « imagecolorallocate
  • imagecolorat »
  • PHP Manual
  • GD- und Image-Funktionen
  • Allocate a color for an image

imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

imagecolorallocatealpha — Allocate a color for an image

Beschreibung

imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha ) : int

imagecolorallocatealpha() behaves identically to imagecolorallocate() with the addition of the transparency parameter alpha.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

red

Wert der Rotkomponente.

green

Wert der Grünkomponente.

blue

Wert der Blaukomponente.

alpha

A value between 0 and 127. 0 indicates completely opaque while 127 indicates completely transparent.

The red, green and blue parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF.

Rückgabewerte

A color identifier or false if the allocation failed.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 Example of using imagecolorallocatealpha()

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x    = 120;
$red_y    = 165;
$blue_x   = 187;
$blue_y   = 125;
$radius   = 150;

// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// don't forget to output a correct header!
header('Content-Type: image/png');

// and finally, output the result
imagepng($image);
imagedestroy($image);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Example of using imagecolorallocatealpha()

Beispiel #2 Convert typical alpha values for use with imagecolorallocatealpha()

Usually alpha values of 0 designate fully transparent pixels, and the alpha channel has 8 bits. To convert such alpha values to be compatible with imagecolorallocatealpha(), some simple arithmetic is sufficient:

<?php
$alpha8 = 0; // fully transparent
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // fully opaque
var_dump(127 - ($alpha8 >> 1));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(127)
int(0)

Siehe auch

  • imagecolorallocate() - Alloziert eine Farbe für eine Grafik
  • imagecolordeallocate() - Löscht eine Farbdefinition


Ermittelt den Farbwert eines Bildpunktes

  • « imagecolorallocatealpha
  • imagecolorclosest »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittelt den Farbwert eines Bildpunktes

imagecolorat

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorat — Ermittelt den Farbwert eines Bildpunktes

Beschreibung

imagecolorat ( resource $image , int $x , int $y ) : int

Liefert den Index der Farbe des Pixels am angegeben Ort im Bild, das durch image angegeben wurde, zurück.

Handelt es sich bei dem Bild um ein Echtfarben-Bild, liefert diese Funktion den RGB-Wert dieses Pixels als Integer zurück. Bitverschiebung und Maskierung kann verwendet werden, um auf die individuellen rot, grün und blau Komponentenwerte zuzugreifen.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

x

x-Kooordinate des Punkts.

y

y-Koordinate des Punkts.

Rückgabewerte

Liefert den Farbindex zurück Im Fehlerfall wird false zurückgegeben..

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 Zurgriff auf individuelle RGB-Werte

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

var_dump($r, $g, $b);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(119)
int(123)
int(180)

Beispiel #2 Menschenlesbare RGB-Werte unter Verwendung von imagecolorsforindex()

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);

$colors = imagecolorsforindex($im, $rgb);

var_dump($colors);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(4) {
  ["red"]=>
  int(119)
  ["green"]=>
  int(123)
  ["blue"]=>
  int(180)
  ["alpha"]=>
  int(127)
}

Siehe auch

  • imagecolorset() - Setzt die Farbe für den angegebenen Paletten-Index
  • imagecolorsforindex() - Ermittelt die Farbwerte eines Palettenindex
  • imagesetpixel() - Setze ein einzelnes Pixel


Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt

  • « imagecolorat
  • imagecolorclosestalpha »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt

imagecolorclosest

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorclosest — Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt

Beschreibung

imagecolorclosest ( resource $image , int $red , int $green , int $blue ) : int

Gibt den Index der Farbwert-Palette des Bildes 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.

Wenn Sie das Bild aus einer Datei erzeugt haben, so werden nur die Farben aufgelöst, die im Bild verwendet werden. Farben die nur in der Farbpalette enthalten sind werden nicht aufgelöst.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

red

Wert der Rotkomponente.

green

Wert der Grünkomponente.

blue

Wert der Blaukomponente.

Die Farbparameter sind Ganzzahlen zwischen 0 und 255 oder Hexadezimalzahlen zwischen 0x00 und 0xFF.

Rückgabewerte

Gibt den Index der Farbe in der Palette des Bildes zurück, die am nächsten an der angegebenen liegt.

Beispiele

Beispiel #1 Suche nach einem Satz von Farben in einem Bild

<?php
// Konvertiere zunächst ein Bild in ein palettenbasiertes
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);

// Such-Farben (RGB)
$colors = array(
    array(254, 145, 154),
    array(153, 145, 188),
    array(153, 90, 145),
    array(255, 137, 92)
);

// Durchlaufe die Such-Farben und finde die nächstgelegene Farbe in der Palette.
// Liefere die Suchnummer, die gesuchten und die gefundenen RGB-Farben zurück.
foreach($colors as $id => $rgb)
{
    $result = imagecolorclosest($im, $rgb[0], $rgb[1], $rgb[2]);
    $result = imagecolorsforindex($im, $result);
    $result = "({$result['red']}, {$result['green']}, {$result['blue']})";

    echo "#$id: Such-Farbe ($rgb[0], $rgb[1], $rgb[2]); Nächstgelegene Farbe: $result.\n";
}

imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

#0: Such-Farbe (254, 145, 154); Nächstgelegene Farbe: (252, 150, 148).
#1: Such-Farbe (153, 145, 188); Nächstgelegene Farbe: (148, 150, 196).
#2: Such-Farbe (153, 90, 145); Nächstgelegene Farbe: (148, 90, 156).
#3: Such-Farbe (255, 137, 92); Nächstgelegene Farbe: (252, 150, 92).

Siehe auch

  • imagecolorexact() - Ermittelt den Index-Wert der angegebenen Farbe
  • imagecolorclosestalpha() - Get the index of the closest color to the specified color + alpha
  • imagecolorclosesthwb() - Get the index of the color which has the hue, white and blackness


Get the index of the closest color to the specified color + alpha

  • « imagecolorclosest
  • imagecolorclosesthwb »
  • PHP Manual
  • GD- und Image-Funktionen
  • Get the index of the closest color to the specified color + alpha

imagecolorclosestalpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecolorclosestalpha — Get the index of the closest color to the specified color + alpha

Beschreibung

imagecolorclosestalpha ( resource $image , int $red , int $green , int $blue , int $alpha ) : int

Returns the index of the color in the palette of the image which is "closest" to the specified RGB value and alpha level.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

red

Wert der Rotkomponente.

green

Wert der Grünkomponente.

blue

Wert der Blaukomponente.

alpha

A value between 0 and 127. 0 indicates completely opaque while 127 indicates completely transparent.

The colors parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF.

Rückgabewerte

Returns the index of the closest color in the palette.

Beispiele

Beispiel #1 Search for a set of colors in an image

<?php
// Start with an image and convert it to a palette-based image
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);

// Search colors (RGB)
$colors = array(
    array(254, 145, 154, 50),
    array(153, 145, 188, 127),
    array(153, 90, 145, 0),
    array(255, 137, 92, 84)
);

// Loop through each search and find the closest color in the palette.
// Return the search number, the search RGB and the converted RGB match
foreach($colors as $id => $rgb)
{
    $result = imagecolorclosestalpha($im, $rgb[0], $rgb[1], $rgb[2], $rgb[3]);
    $result = imagecolorsforindex($im, $result);
    $result = "({$result['red']}, {$result['green']}, {$result['blue']}, {$result['alpha']})";

    echo "#$id: Search ($rgb[0], $rgb[1], $rgb[2], $rgb[3]); Closest match: $result.\n";
}

imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

#0: Search (254, 145, 154, 50); Closest match: (252, 150, 148, 0).
#1: Search (153, 145, 188, 127); Closest match: (148, 150, 196, 0).
#2: Search (153, 90, 145, 0); Closest match: (148, 90, 156, 0).
#3: Search (255, 137, 92, 84); Closest match: (252, 150, 92, 0).

Siehe auch

  • imagecolorexactalpha() - Get the index of the specified color + alpha
  • imagecolorclosest() - Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt
  • imagecolorclosesthwb() - Get the index of the color which has the hue, white and blackness


Get the index of the color which has the hue, white and blackness

  • « imagecolorclosestalpha
  • imagecolordeallocate »
  • PHP Manual
  • GD- und Image-Funktionen
  • Get the index of the color which has the hue, white and blackness

imagecolorclosesthwb

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagecolorclosesthwb — Get the index of the color which has the hue, white and blackness

Beschreibung

imagecolorclosesthwb ( resource $image , int $red , int $green , int $blue ) : int

Get the index of the color which has the hue, white and blackness nearest the given color.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

red

Wert der Rotkomponente.

green

Wert der Grünkomponente.

blue

Wert der Blaukomponente.

Rückgabewerte

Returns an integer with the index of the color which has the hue, white and blackness nearest the given color.

Beispiele

Beispiel #1 Example of using imagecolorclosesthwb()

<?php
$im = imagecreatefromgif('php.gif');

echo 'HWB: ' . imagecolorclosesthwb($im, 116, 115, 152);

imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

HWB: 33

Siehe auch

  • imagecolorclosest() - Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt


Löscht eine Farbdefinition

  • « imagecolorclosesthwb
  • imagecolorexact »
  • PHP Manual
  • GD- und Image-Funktionen
  • Löscht eine Farbdefinition

imagecolordeallocate

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolordeallocate — Löscht eine Farbdefinition

Beschreibung

imagecolordeallocate ( resource $image , int $color ) : int

Löscht eine zuvor mit imagecolorallocate() oder imagecolorallocatealpha() allozierte Farbe.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

color

Der Farbkennzeichner.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Verwendung von imagecolordeallocate()

<?php
$white = imagecolorallocate($im, 255, 255, 255);
imagecolordeallocate($im, $white);
?>

Siehe auch

  • imagecolorallocate() - Alloziert eine Farbe für eine Grafik
  • imagecolorallocatealpha() - Allocate a color for an image


Ermittelt den Index-Wert der angegebenen Farbe

  • « imagecolordeallocate
  • imagecolorexactalpha »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittelt den Index-Wert der angegebenen Farbe

imagecolorexact

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorexact — Ermittelt den Index-Wert der angegebenen Farbe

Beschreibung

imagecolorexact ( resource $image , int $red , int $green , int $blue ) : int

Gibt den Index der angegebenen Farbe in der Farb-Palette des Bildes zurück.

Wenn Sie das Bild aus einer Datei erzeugt haben, so werden nur die Farben aufgelöst, die im Bild verwendet werden. Farben die nur in der Farbpalette enthalten sind werden nicht aufgelöst.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

red

Wert der Rotkomponente.

green

Wert der Grünkomponente.

blue

Wert der Blaukomponente.

Rückgabewerte

Gibt den Paletten-Index der angegeben Farbe zurück, oder -1, falls die Farbe nicht existiert.

Beispiele

Beispiel #1 Ermittle Farben des GD-Logos

<?php
// Lade ein Bild
$im = imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexact($im, 255, 0, 0);
$colors[] = imagecolorexact($im, 0, 0, 0);
$colors[] = imagecolorexact($im, 255, 255, 255);
$colors[] = imagecolorexact($im, 100, 255, 52);

print_r($colors);

// Bild freigeben
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => 16711680
    [1] => 0
    [2] => 16777215
    [3] => 6618932
)

Siehe auch

  • imagecolorclosest() - Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt


Get the index of the specified color + alpha

  • « imagecolorexact
  • imagecolormatch »
  • PHP Manual
  • GD- und Image-Funktionen
  • Get the index of the specified color + alpha

imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecolorexactalpha — Get the index of the specified color + alpha

Beschreibung

imagecolorexactalpha ( resource $image , int $red , int $green , int $blue , int $alpha ) : int

Returns the index of the specified color+alpha in the palette of the image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

red

Wert der Rotkomponente.

green

Wert der Grünkomponente.

blue

Wert der Blaukomponente.

alpha

A value between 0 and 127. 0 indicates completely opaque while 127 indicates completely transparent.

The colors parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF.

Rückgabewerte

Returns the index of the specified color+alpha in the palette of the image, or -1 if the color does not exist in the image's palette.

Beispiele

Beispiel #1 Get colors from the GD logo

<?php

// Setup an image
$im = imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexactalpha($im, 255, 0, 0, 0);
$colors[] = imagecolorexactalpha($im, 0, 0, 0, 127);
$colors[] = imagecolorexactalpha($im, 255, 255, 255, 55);
$colors[] = imagecolorexactalpha($im, 100, 255, 52, 20);

print_r($colors);

// Free from memory
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => 16711680
    [1] => 2130706432
    [2] => 939524095
    [3] => 342163252
)

Siehe auch

  • imagecolorclosestalpha() - Get the index of the closest color to the specified color + alpha


Makes the colors of the palette version of an image more closely match the true color version

  • « imagecolorexactalpha
  • imagecolorresolve »
  • PHP Manual
  • GD- und Image-Funktionen
  • Makes the colors of the palette version of an image more closely match the true color version

imagecolormatch

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

imagecolormatch — Makes the colors of the palette version of an image more closely match the true color version

Beschreibung

imagecolormatch ( resource $image1 , resource $image2 ) : bool

Makes the colors of the palette version of an image more closely match the true color version.

Parameter-Liste

image1

A truecolor image resource.

image2

A palette image resource pointing to an image that has the same size as image1.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagecolormatch() example

<?php
// Setup the true color and palette images
$im1 = imagecreatefrompng('./gdlogo.png');
$im2 = imagecreate(imagesx($im1), imagesy($im1));

// Add some colors to $im2
$colors   = Array();
$colors[] = imagecolorallocate($im2, 255, 36, 74);
$colors[] = imagecolorallocate($im2, 40, 0, 240);
$colors[] = imagecolorallocate($im2, 82, 100, 255);
$colors[] = imagecolorallocate($im2, 84, 63, 44);

// Match these colors with the true color image
imagecolormatch($im1, $im2);

// Free from memory
imagedestroy($im1);
imagedestroy($im2);
?>

Siehe auch

  • imagecreatetruecolor() - Create a new true color image


Ermittelt den Index-Wert der angegebenen Farbe oder die nächst mögliche Alternative dazu

  • « imagecolormatch
  • imagecolorresolvealpha »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittelt den Index-Wert der angegebenen Farbe oder die nächst mögliche Alternative dazu

imagecolorresolve

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorresolve — Ermittelt den Index-Wert der angegebenen Farbe oder die nächst mögliche Alternative dazu

Beschreibung

imagecolorresolve ( resource $image , int $red , int $green , int $blue ) : int

Diese Funktion ermittelt garantiert einen Farb-Index zu der angegebenen Farbe, nämlich entweder den exakten oder den nächst möglichen Wert.

Wenn Sie das Bild aus einer Datei erzeugt haben, so werden nur die Farben aufgelöst, die im Bild verwendet werden. Farben die nur in der Farbpalette enthalten sind werden nicht aufgelöst.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

red

Wert der Rotkomponente.

green

Wert der Grünkomponente.

blue

Wert der Blaukomponente.

Rückgabewerte

Gibt einen Farbindex zurück.

Beispiele

Beispiel #1 Verwendung von imagecoloresolve() um Farben aus einem Bild auszulesen

<?php
// Lade ein Bild
$im = imagecreatefromgif('phplogo.gif');

// Ermittle die nächstgelegenen Farben des Bildes
$colors = array();
$colors[] = imagecolorresolve($im, 255, 255, 255);
$colors[] = imagecolorresolve($im, 0, 0, 200);

// Output
print_r($colors);

imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => 89
    [1] => 85
)

Siehe auch

  • imagecolorclosest() - Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt


Get the index of the specified color + alpha or its closest possible alternative

  • « imagecolorresolve
  • imagecolorset »
  • PHP Manual
  • GD- und Image-Funktionen
  • Get the index of the specified color + alpha or its closest possible alternative

imagecolorresolvealpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecolorresolvealpha — Get the index of the specified color + alpha or its closest possible alternative

Beschreibung

imagecolorresolvealpha ( resource $image , int $red , int $green , int $blue , int $alpha ) : int

This function is guaranteed to return a color index for a requested color, either the exact color or the closest possible alternative.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

red

Wert der Rotkomponente.

green

Wert der Grünkomponente.

blue

Wert der Blaukomponente.

alpha

A value between 0 and 127. 0 indicates completely opaque while 127 indicates completely transparent.

The colors parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF.

Rückgabewerte

Returns a color index.

Beispiele

Beispiel #1 Using imagecoloresolvealpha() to get colors from an image

<?php
// Load an image
$im = imagecreatefromgif('phplogo.gif');

// Get closest colors from the image
$colors = array();
$colors[] = imagecolorresolvealpha($im, 255, 255, 255, 0);
$colors[] = imagecolorresolvealpha($im, 0, 0, 200, 127);

// Output
print_r($colors);

imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => 89
    [1] => 85
)

Siehe auch

  • imagecolorclosestalpha() - Get the index of the closest color to the specified color + alpha


Setzt die Farbe für den angegebenen Paletten-Index

  • « imagecolorresolvealpha
  • imagecolorsforindex »
  • PHP Manual
  • GD- und Image-Funktionen
  • Setzt die Farbe für den angegebenen Paletten-Index

imagecolorset

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorset — Setzt die Farbe für den angegebenen Paletten-Index

Beschreibung

imagecolorset ( resource $image , int $index , int $red , int $green , int $blue , int $alpha = 0 ) : void

Hierdurch wird der Farbwert der Palette auf die angegebene Farbe gesetzt. 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.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

index

Ein Index der Palette.

red

Wert der Rotkomponente.

green

Wert der Grünkomponente.

blue

Wert der Blaukomponente.

alpha

Wert der Alpha-Komponente.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 imagecolorset() Beispiel

<?php
// Erzeuge ein 300x100 Bild
$im = imagecreate(300, 100);

// Setze den Hintergrund auf Rot
imagecolorallocate($im, 255, 0, 0);

// Ermittle den Farbindex des Hintergrunds
$bg = imagecolorat($im, 0, 0);

// Setze den Hintergrund auf Blau
imagecolorset($im, $bg, 0, 0, 255);

// Gib das Bild an den Browser aus
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Siehe auch

  • imagecolorat() - Ermittelt den Farbwert eines Bildpunktes


Ermittelt die Farbwerte eines Palettenindex

  • « imagecolorset
  • imagecolorstotal »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittelt die Farbwerte eines Palettenindex

imagecolorsforindex

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorsforindex — Ermittelt die Farbwerte eines Palettenindex

Beschreibung

imagecolorsforindex ( resource $image , int $index ) : array

Gibt die Farbwerte eines Palettenindex zurück.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

index

Der Palettenindex.

Rückgabewerte

Gibt ein assoziatives Array mit red, green, blue und alpha Schlüsseln zurück, das die entsprechenden Werte für den angegebenen Palettenindex enthält.

Beispiele

Beispiel #1 imagecolorsforindex() Beispiel

<?php

// Erzeuge ein Bild
$im = imagecreatefrompng('nexen.png');

// Ermittle eine Farbe
$start_x = 40;
$start_y = 50;
$color_index = imagecolorat($im, $start_x, $start_y);

// Bringe es in menschenlesbare Form
$color_tran = imagecolorsforindex($im, $color_index);

// Was ist es?
print_r($color_tran);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
   [red] => 226
   [green] => 222
   [blue] => 252
   [alpha] => 0
)

Siehe auch

  • imagecolorat() - Ermittelt den Farbwert eines Bildpunktes
  • imagecolorexact() - Ermittelt den Index-Wert der angegebenen Farbe


Ermittelt die Anzahl der Farben in der Palette eines Bildes

  • « imagecolorsforindex
  • imagecolortransparent »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittelt die Anzahl der Farben in der Palette eines Bildes

imagecolorstotal

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolorstotal — Ermittelt die Anzahl der Farben in der Palette eines Bildes

Beschreibung

imagecolorstotal ( resource $image ) : int

Gibt die Anzahl der Farben in der Palette eines Bildes zurück.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

Rückgabewerte

Gibt die Anzahl der Farben in der Palette des angegebenen Bildes, oder 0 für Echtfarbbilder zurück.

Beispiele

Beispiel #1 Ermitteln der Gesamtanzahl von Farben in einem Bild unter Verwendung von imagecolorstotal()

<?php
// Erzeuge ein Bild
$im = imagecreatefromgif('php.gif');

echo 'Zahl der Farben im Bild: ' . imagecolorstotal($im);

// Gib das Bild frei
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Zahl der Farben im Bild: 128

Siehe auch

  • imagecolorat() - Ermittelt den Farbwert eines Bildpunktes
  • imagecolorsforindex() - Ermittelt die Farbwerte eines Palettenindex
  • imageistruecolor() - Finds whether an image is a truecolor image


Definiert eine Farbe als transparent

  • « imagecolorstotal
  • imageconvolution »
  • PHP Manual
  • GD- und Image-Funktionen
  • Definiert eine Farbe als transparent

imagecolortransparent

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecolortransparent — Definiert eine Farbe als transparent

Beschreibung

imagecolortransparent ( resource $image ) : int
imagecolortransparent ( resource $image , int $color ) : int

Liest oder setzt die transparente Farbe des angegebenen image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

color

Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Die Kennung der neuen (oder der aktuellen, falls keine Farbe angegeben wurde) transparenten Farbe wird zurückgegeben. Wird color nicht angegeben, und das Bild hat keine transparente Farbe, ist die zurückgegebene Kennung -1.

Beispiele

Beispiel #1 imagecolortransparent() Beispiel

<?php
// Erzeuge ein 55x30 Bild
$im = imagecreatetruecolor(55, 30);
$red = imagecolorallocate($im, 255, 0, 0);
$black = imagecolorallocate($im, 0, 0, 0);

// Mache den Hintergrund transparent
imagecolortransparent($im, $black);

// Zeichne ein rotes Rechteck
imagefilledrectangle($im, 4, 4, 50, 25, $red);

// Speichere das Bild
imagepng($im, './imagecolortransparent.png');
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : imagecolortransparent()

Anmerkungen

Hinweis:

Transparenz wird nur mit imagecopymerge() und Echtfarbbildern kopiert, aber nicht mit imagecopy() oder Palettenbildern.

Hinweis:

Die transparente Farbe ist eine Eigenschaft des Bildes, nicht der Farbe. Sobald eine Farbe als transparente Farbe definiert wurde, werden alle Bereiche eines Bildes mit dieser Farbe, die zuvor gezeichnet wurden, transparent sein.


Apply a 3x3 convolution matrix, using coefficient and offset

  • « imagecolortransparent
  • imagecopy »
  • PHP Manual
  • GD- und Image-Funktionen
  • Apply a 3x3 convolution matrix, using coefficient and offset

imageconvolution

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

imageconvolution — Apply a 3x3 convolution matrix, using coefficient and offset

Beschreibung

imageconvolution ( resource $image , array $matrix , float $div , float $offset ) : bool

Applies a convolution matrix on the image, using the given coefficient and offset.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

matrix

A 3x3 matrix: an array of three arrays of three floats.

div

The divisor of the result of the convolution, used for normalization.

offset

Color offset.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Embossing the PHP.net logo

<?php
$image = imagecreatefromgif('http://www.php.net/images/php.gif');

$emboss = array(array(2, 0, 0), array(0, -1, 0), array(0, 0, -1));
imageconvolution($image, $emboss, 1, 127);

header('Content-Type: image/png');
imagepng($image, null, 9);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Output of example : Embossing the PHP.net logo

Beispiel #2 Gaussian blur

<?php
$image = imagecreatetruecolor(180,40);

// Writes the text and apply a gaussian blur on the image
imagestring($image, 5, 10, 8, 'Gaussian Blur Text', 0x00ff00);
$gaussian = array(array(1.0, 2.0, 1.0), array(2.0, 4.0, 2.0), array(1.0, 2.0, 1.0));
imageconvolution($image, $gaussian, 16, 0);

// Rewrites the text for comparison
imagestring($image, 5, 10, 18, 'Gaussian Blur Text', 0x00ff00);

header('Content-Type: image/png');
imagepng($image, null, 9);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Output of example : Gaussian blur

Anmerkungen

This function requires GD 2.1.0 or higher.

Siehe auch

  • imagefilter() - Applies a filter to an image


Kopiert einen Bildausschnitt

  • « imageconvolution
  • imagecopymerge »
  • PHP Manual
  • GD- und Image-Funktionen
  • Kopiert einen Bildausschnitt

imagecopy

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecopy — Kopiert einen Bildausschnitt

Beschreibung

ImageCopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h ) : int

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.

Parameter-Liste

dst_im

Resource des Zielbildes.

src_im

Resource des Quellbildes.

dst_x

x-Koordinate des Zielpunktes.

dst_y

y-Koordinate des Zielpunkts.

src_x

x-Koordinate des Quellpunkts.

src_y

y-Koordinate des Quellpunkts.

src_w

Breite der Quelle.

src_h

Höhe der Quelle.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Beschneiden des PHP.net Logos

<?php
// Erzeuge die Bilder
$src = imagecreatefromgif('php.gif');
$dest = imagecreatetruecolor(80, 40);

// Kopiere
imagecopy($dest, $src, 0, 0, 20, 13, 80, 40);

// Ausgeben und Speicher freigeben
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : Beschneiden des PHP.net Logos

Siehe auch

  • imagecrop() - Crop an image to the given rectangle


Copy and merge part of an image

  • « imagecopy
  • imagecopymergegray »
  • PHP Manual
  • GD- und Image-Funktionen
  • Copy and merge part of an image

imagecopymerge

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagecopymerge — Copy and merge part of an image

Beschreibung

imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct ) : bool

Copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y.

Parameter-Liste

dst_im

Resource des Zielbildes.

src_im

Resource des Quellbildes.

dst_x

x-coordinate of destination point.

dst_y

y-coordinate of destination point.

src_x

x-coordinate of source point.

src_y

y-coordinate of source point.

src_w

Breite der Quelle.

src_h

Höhe der Quelle.

pct

The two images will be merged according to pct which can range from 0 to 100. When pct = 0, no action is taken, when 100 this function behaves identically to imagecopy() for pallete images, except for ignoring alpha components, while it implements alpha transparency for true colour images.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Merging two copies of the PHP.net logo with 75% transparency

<?php
// Create image instances
$dest = imagecreatefromgif('php.gif');
$src = imagecreatefromgif('php.gif');

// Copy and merge
imagecopymerge($dest, $src, 10, 10, 0, 0, 100, 47, 75);

// Output and free from memory
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>


Copy and merge part of an image with gray scale

  • « imagecopymerge
  • imagecopyresampled »
  • PHP Manual
  • GD- und Image-Funktionen
  • Copy and merge part of an image with gray scale

imagecopymergegray

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecopymergegray — Copy and merge part of an image with gray scale

Beschreibung

imagecopymergegray ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct ) : bool

imagecopymergegray() copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y.

This function is identical to imagecopymerge() except that when merging it preserves the hue of the source by converting the destination pixels to gray scale before the copy operation.

Parameter-Liste

dst_im

Resource des Zielbildes.

src_im

Resource des Quellbildes.

dst_x

x-coordinate of destination point.

dst_y

y-coordinate of destination point.

src_x

x-coordinate of source point.

src_y

y-coordinate of source point.

src_w

Breite der Quelle.

src_h

Höhe der Quelle.

pct

The src_im will be changed to grayscale according to pct where 0 is fully grayscale and 100 is unchanged. When pct = 100 this function behaves identically to imagecopy() for pallete images, except for ignoring alpha components, while it implements alpha transparency for true colour images.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagecopymergegray() usage

<?php
// Create image instances
$dest = imagecreatefromgif('php.gif');
$src = imagecreatefromgif('php.gif');

// Copy and merge - Gray = 20%
imagecopymergegray($dest, $src, 10, 10, 0, 0, 100, 47, 20);

// Output and free from memory
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>


Copy and resize part of an image with resampling

  • « imagecopymergegray
  • imagecopyresized »
  • PHP Manual
  • GD- und Image-Funktionen
  • Copy and resize part of an image with resampling

imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecopyresampled — Copy and resize part of an image with resampling

Beschreibung

imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h ) : bool

imagecopyresampled() copies a rectangular portion of one image to another image, smoothly interpolating pixel values so that, in particular, reducing the size of an image still retains a great deal of clarity.

In other words, imagecopyresampled() will take a rectangular area from src_image of width src_w and height src_h at position (src_x,src_y) and place it in a rectangular area of dst_image of width dst_w and height dst_h at position (dst_x,dst_y).

If the source and destination coordinates and width and heights differ, appropriate stretching or shrinking of the image fragment will be performed. The coordinates refer to the upper left corner. This function can be used to copy regions within the same image (if dst_image is the same as src_image) but if the regions overlap the results will be unpredictable.

Parameter-Liste

dst_image

Resource des Zielbildes.

src_image

Resource des Quellbildes.

dst_x

x-coordinate of destination point.

dst_y

y-coordinate of destination point.

src_x

x-coordinate of source point.

src_y

y-coordinate of source point.

dst_w

Destination width.

dst_h

Destination height.

src_w

Breite der Quelle.

src_h

Höhe der Quelle.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Simple example

This example will resample an image to half its original size.

<?php
// The file
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-Type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, null, 100);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Simple example

Beispiel #2 Resampling an image proportionally

This example will display an image with the maximum width, or height, of 200 pixels.

<?php
// The file
$filename = 'test.jpg';

// Set a maximum height and width
$width = 200;
$height = 200;

// Content type
header('Content-Type: image/jpeg');

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
} else {
   $height = $width/$ratio_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, null, 100);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Resampling an image proportionally

Anmerkungen

Hinweis:

There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by imagecreatetruecolor().

Siehe auch

  • imagecopyresized() - Kopieren und Ändern der Größe eines Bild-Teiles
  • imagescale() - Scale an image using the given new width and height
  • imagecrop() - Crop an image to the given rectangle


Kopieren und Ändern der Größe eines Bild-Teiles

  • « imagecopyresampled
  • imagecreate »
  • PHP Manual
  • GD- und Image-Funktionen
  • Kopieren und Ändern der Größe eines Bild-Teiles

imagecopyresized

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecopyresized — Kopieren und Ändern der Größe eines Bild-Teiles

Beschreibung

imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h ) : bool

imagecopyresized() kopiert einen rechteckigen Ausschnitt eines Bildes in ein anderes Bild. dst_image gibt das Zielbild, src_image gibt die Bildquelle an.

Mit anderen Worten, imagecopyresized() nimmt einen rechteckigen Ausschnitt von src_image der Breite src_w and Höhe src_h von Position (src_x,src_y) und platziert diesen in einem rechteckigen Bereich in dst_image mit der Breite dst_w and Höhe dst_h an der Position (dst_x,dst_y).

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_image und src_image gleich sind. Falls sich dabei aber die kopierten Teile überlappen, führt das zu unvorhersehbaren Ergebnissen.

Parameter-Liste

dst_image

Resource des Zielbildes.

src_image

Resource des Quellbildes.

dst_x

x-Koordinate des Zielrechtecks.

dst_y

y-Koordinate des Zielrechtecks.

src_x

x-Koordinate des Quellrechtecks.

src_y

y-Koordinate des Quellrechtecks.

dst_w

Breite des Zielrechtecks.

dst_h

Höhe des Zielrechtecks.

src_w

Breite der Quelle.

src_h

Höhe der Quelle.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ein Bild skalieren

Dieses Beispiel zeigt ein Bild in halber Größe an.

<?php
// Datei und Faktor der Größenänderung
$filename = 'test.jpg';
$percent = 0.5;

// Typ der Ausgabe
header('Content-Type: image/jpeg');

// Neue Größe berechnen
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// Bild laden
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// Skalieren
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// Ausgabe
imagejpeg($thumb);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : Ein Bild skalieren

Das Bild wird in halber Größe ausgegeben, allerdings könnten mit Hilfe der Funktion imagecopyresampled() Ergebnisse besserer Qualität erzielt werden.

Anmerkungen

Hinweis:

Es gibt ein Problem bei Verwendung von limitierten Farbpaletten (255+1 Farben). Resampling und Filterung von Bildern benötigt in der Regel mehr als 255 Farben und eine Art der Annäherung wird zur Berechnung des neu resampleten Pixels und dessen Farbwertes verwendet. Bei einem palettenbasierten Bild wird zuerst versucht eine neue Farbe zu allokieren, wenn dies fehlschlägt wird der theoretisch nächst gelegene Farbwert aus der Palette verwendet. Dies ist aber nicht immer der Wert der farblich am nächsten ist. Dies kann zu eigenartigen Ergebnissen wie leeren (oder scheinbar leeren) Bildern führen. Um dieses Problem zu vermeiden, sollte ein Truecolor-Bild als Zielbild verwendet werden, welches z.B. mit der Funktion imagecreatetruecolor() erstellt werden kann.

Siehe auch

  • imagecopyresampled() - Copy and resize part of an image with resampling
  • imagescale() - Scale an image using the given new width and height
  • imagecrop() - Crop an image to the given rectangle


Erzeugt ein neues Paletten-Bild

  • « imagecopyresized
  • imagecreatefrombmp »
  • PHP Manual
  • GD- und Image-Funktionen
  • Erzeugt ein neues Paletten-Bild

imagecreate

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecreate — Erzeugt ein neues Paletten-Bild

Beschreibung

imagecreate ( int $width , int $height ) : resource

imagecreate() gibt eine Bildkennung zurück, die eine leeres Bild mit der angegebene Größe repräsentiert.

Im Allgemeinen wird empfohlen, die Funktion imagecreatetruecolor() anstelle von imagecreate() zu verwenden, so dass die Bildverarbeitung mit der bestmöglichen Qualität erfolgt. Sollen Palettenbilder ausgegeben werden, dann sollte imagetruecolortopalette() unmittelbar vor dem Speichern des Bildes mit imagepng() oder imagegif() aufgerufen werden.

Parameter-Liste

width

Die Breite des Bildes.

height

Die Höhe des Bildes.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

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, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "Ein Test-String", $text_color);
imagepng($im);
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : Erzeugung eines neuen GD-Bild-Streams und Ausgabe des Bildes.

Siehe auch

  • imagedestroy() - Löscht ein Bild
  • imagecreatetruecolor() - Create a new true color image


Erzeugt ein neues Bild aus einer Datei oder URL

  • « imagecreate
  • imagecreatefromgd2 »
  • PHP Manual
  • GD- und Image-Funktionen
  • Erzeugt ein neues Bild aus einer Datei oder URL

imagecreatefrombmp

(PHP 7 >= 7.2.0, PHP 8)

imagecreatefrombmp — Erzeugt ein neues Bild aus einer Datei oder URL

Beschreibung

imagecreatefrombmp ( string $filename ) : resource

imagecreatefrombmp() returns an image identifier representing the image obtained from the given filename.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Parameter-Liste

filename

Path to the BMP image.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

Beispiel #1 Convert an BMP image to a PNG image using imagecreatefrombmp()

<?php
// Load the BMP file
$im = imagecreatefrombmp('./example.bmp');

// Convert it to a PNG file with default settings
imagepng($im, './example.png');
imagedestroy($im);
?>


Create a new image from GD2 file or URL

  • « imagecreatefrombmp
  • imagecreatefromgd2part »
  • PHP Manual
  • GD- und Image-Funktionen
  • Create a new image from GD2 file or URL

imagecreatefromgd2

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagecreatefromgd2 — Create a new image from GD2 file or URL

Beschreibung

imagecreatefromgd2 ( string $filename ) : resource

Create a new image from GD2 file or URL.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Parameter-Liste

filename

Path to the GD2 image.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

Beispiel #1 imagecreatefromgd2() example

<?php
// Load the gd2 image
$im = imagecreatefromgd2('./test.gd2');

// Apply an effect on the image, in this
// case negate the image
if(function_exists('imagefilter'))
{
    imagefilter($im, IMG_FILTER_NEGATE);
}

// Save the image
imagegd2($im, './test_updated.gd2');
imagedestroy($im);
?>

Anmerkungen

Warnung

Die GD und GD2 Bildformate sind proprietäre Bildformate von libgd. Sie sind als veraltet anzusehen, und sollten nur zu Entwicklungs- und Testzwecken verwendet werden.


Create a new image from a given part of GD2 file or URL

  • « imagecreatefromgd2
  • imagecreatefromgd »
  • PHP Manual
  • GD- und Image-Funktionen
  • Create a new image from a given part of GD2 file or URL

imagecreatefromgd2part

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagecreatefromgd2part — Create a new image from a given part of GD2 file or URL

Beschreibung

imagecreatefromgd2part ( string $filename , int $srcX , int $srcY , int $width , int $height ) : resource

Create a new image from a given part of GD2 file or URL.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Parameter-Liste

filename

Path to the GD2 image.

srcX

x-coordinate of source point.

srcY

y-coordinate of source point.

width

Breite der Quelle.

height

Höhe der Quelle.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

Beispiel #1 imagecreatefromgd2part() example

<?php
// For this example we need the image size before
$image = getimagesize('./test.gd2');

// Create the image instance now we got the image
// sizes
$im = imagecreatefromgd2part('./test.gd2', 4, 4, ($image[0] / 2) - 6, ($image[1] / 2) - 6);

// Do an image operation, in this case we emboss the image
if(function_exists('imagefilter'))
{
    imagefilter($im, IMG_FILTER_EMBOSS);
}

// Save optimized image
imagegd2($im, './test_emboss.gd2');
imagedestroy($im);
?>

Anmerkungen

Warnung

Die GD und GD2 Bildformate sind proprietäre Bildformate von libgd. Sie sind als veraltet anzusehen, und sollten nur zu Entwicklungs- und Testzwecken verwendet werden.


Create a new image from GD file or URL

  • « imagecreatefromgd2part
  • imagecreatefromgif »
  • PHP Manual
  • GD- und Image-Funktionen
  • Create a new image from GD file or URL

imagecreatefromgd

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagecreatefromgd — Create a new image from GD file or URL

Beschreibung

imagecreatefromgd ( string $filename ) : resource

Create a new image from GD file or URL.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Parameter-Liste

filename

Path to the GD file.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

Beispiel #1 imagecreatefromgd() example

<?php
// Load the gd image
$im = @imagecreatefromgd('./test.gd');

// Test if the image was loaded
if(!is_resource($im))
{
     die('Unable to load gd image!');
}

// Do image operations here

// Save the image
imagegd($im, './test_updated.gd');
imagedestroy($im);
?>

Anmerkungen

Warnung

Die GD und GD2 Bildformate sind proprietäre Bildformate von libgd. Sie sind als veraltet anzusehen, und sollten nur zu Entwicklungs- und Testzwecken verwendet werden.


Erzeugt ein neues Bild aus einer Datei oder URL

  • « imagecreatefromgd
  • imagecreatefromjpeg »
  • PHP Manual
  • GD- und Image-Funktionen
  • Erzeugt ein neues Bild aus einer Datei oder URL

imagecreatefromgif

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecreatefromgif — Erzeugt ein neues Bild aus einer Datei oder URL

Beschreibung

imagecreatefromgif ( string $filename ) : resource

imagecreatefromgif() gibt den Bezeichner auf ein Bild zurück, der das aus der angegebenen Datei eingelesene Bild darstellt.

Achtung

Werden GIF-Dateien in den Speicher geladen, wird nur der erste Frame in der Bild-Ressource zurückgeliefert. Die Größe des Bildes ist nicht notwendigerweise diejenige, die von getimagesize() gemeldet wird.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Parameter-Liste

filename

Pfad zum GIF Bild.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

Beispiel #1 Beispiel zur Behandlung von Fehlern beim Einlesen einer GIF

<?php
function LoadGif($imgname) {
    /* Versuch Datei zu öffnen */
    $im = @imagecreatefromgif($imgname);

    /* Wenn Öffnen fehlgeschlagen ist */
    if (!$im) {
        /* Erzeuge ein leeres Bild */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* Gebe eine Fehlermeldung im Bild aus */
        imagestring($im, 1, 5, 5, 'Fehler beim Öffnen von ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/gif');

$img = LoadGif('bogus.image');

imagegif($img);
imagedestroy($img);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels zur Behandlung von Fehlern beim Einlesen einer GIF

Anmerkungen

Hinweis:

Ab Version 1.6 wurde die komplette GIF-Unterstützung aus der GD-Bibliothek entfernt und erst in Version 2.0.28 wieder hinzugefügt. Zwischen diesen Versionen ist diese Funktion daher nicht verfügbar.


Erzeugt ein neues Bild aus einer Datei oder URL

  • « imagecreatefromgif
  • imagecreatefrompng »
  • PHP Manual
  • GD- und Image-Funktionen
  • Erzeugt ein neues Bild aus einer Datei oder URL

imagecreatefromjpeg

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecreatefromjpeg — Erzeugt ein neues Bild aus einer Datei oder URL

Beschreibung

imagecreatefromjpeg ( string $filename ) : resource

imagecreatefromjpeg() gibt den Bezeichner auf ein Bild zurück, der das aus der angegebenen Datei eingelesene Bild darstellt.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Parameter-Liste

filename

Pfad des JPEG-Bilds.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

Beispiel #1 Beispiel für Fehlerbehandlung beim Laden eines JPEG

<?php
function LoadJpeg($imgname)
{
    /* Versuche zu öffnen */
    $im = @imagecreatefromjpeg($imgname);

    /* Prüfe, ob das fehlschlug */
    if(!$im)
    {
        /* Erzeuge ein schwarzes Bild */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* Gib eine Fehlermeldung aus */
        imagestring($im, 1, 5, 5, 'Fehler beim Laden von ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/jpeg');

$img = LoadJpeg('bogus.image');

imagejpeg($img);
imagedestroy($img);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : Beispiel für Fehlerbehandlung beim Laden eines JPEG


Erzeugt ein neues Bild aus einer Datei oder URL

  • « imagecreatefromjpeg
  • imagecreatefromstring »
  • PHP Manual
  • GD- und Image-Funktionen
  • Erzeugt ein neues Bild aus einer Datei oder URL

imagecreatefrompng

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecreatefrompng — Erzeugt ein neues Bild aus einer Datei oder URL

Beschreibung

imagecreatefrompng ( string $filename ) : resource

imagecreatefrompng() gibt den Bezeichner auf ein Bild zurück, der das aus der angegebenen Datei eingelesene Bild darstellt.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Parameter-Liste

filename

Pfad des PNG-Bilds.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

Beispiel #1 Beispiel für Fehlerbehandlung beim Laden eines PNG

<?php
function LoadPNG($imgname)
{
    /* Versuche zu öffnen */
    $im = @imagecreatefrompng($imgname);

    /* Prüfe, ob das fehlschlug */
    if(!$im)
    {
        /* Erzeuge ein schwarzes Bild */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* Gib eine Fehlermeldung aus */
        imagestring($im, 1, 5, 5, 'Fehler beim Laden von ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/png');

$img = LoadPNG('bogus.image');

imagepng($img);
imagedestroy($img);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:


Create a new image from the image stream in the string

  • « imagecreatefrompng
  • imagecreatefromwbmp »
  • PHP Manual
  • GD- und Image-Funktionen
  • Create a new image from the image stream in the string

imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

imagecreatefromstring — Create a new image from the image stream in the string

Beschreibung

imagecreatefromstring ( string $image ) : resource

imagecreatefromstring() returns an image identifier representing the image obtained from the given image. These types will be automatically detected if your build of PHP supports them: JPEG, PNG, GIF, BMP, WBMP, GD2, and WEBP.

Parameter-Liste

image

A string containing the image data.

Rückgabewerte

An image resource will be returned on success. false is returned if the image type is unsupported, the data is not in a recognised format, or the image is corrupt and cannot be loaded.

Changelog

Version | Beschreibung
7.3.0 | WEBP is supported now (if supported by the libgd in use).

Fehler/Exceptions

imagecreatefromstring() raises an E_WARNING level error, if the data is not in a recognized format.

Beispiele

Beispiel #1 imagecreatefromstring() example

<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

$im = imagecreatefromstring($data);
if ($im !== false) {
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
}
else {
    echo 'An error occurred.';
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : imagecreatefromstring()

Siehe auch

  • imagecreatefromjpeg() - Erzeugt ein neues Bild aus einer Datei oder URL
  • imagecreatefrompng() - Erzeugt ein neues Bild aus einer Datei oder URL
  • imagecreatefromgif() - Erzeugt ein neues Bild aus einer Datei oder URL
  • imagecreatetruecolor() - Create a new true color image


Erzeugt ein neues Bild aus einer Datei oder URL

  • « imagecreatefromstring
  • imagecreatefromwebp »
  • PHP Manual
  • GD- und Image-Funktionen
  • Erzeugt ein neues Bild aus einer Datei oder URL

imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagecreatefromwbmp — Erzeugt ein neues Bild aus einer Datei oder URL

Beschreibung

imagecreatefromwbmp ( string $filename ) : resource

imagecreatefromwbmp() returns an image identifier representing the image obtained from the given filename.

Hinweis: WBMP images are Wireless Bitmaps, not Windows Bitmaps. The latter can be loaded with imagecreatefrombmp().

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Parameter-Liste

filename

Path to the WBMP image.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

Beispiel #1 Example to handle an error during loading of a WBMP

<?php
function LoadWBMP($imgname)
{
    /* Attempt to open */
    $im = @imagecreatefromwbmp($imgname);

    /* See if it failed */
    if(!$im)
    {
        /* Create a blank image */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* Output an error message */
        imagestring($im, 1, 5, 5, 'Error loading ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/vnd.wap.wbmp');

$img = LoadWBMP('bogus.image');

imagewbmp($img);
imagedestroy($img);
?>


Erzeugt ein neues Bild aus einer Datei oder URL

  • « imagecreatefromwbmp
  • imagecreatefromxbm »
  • PHP Manual
  • GD- und Image-Funktionen
  • Erzeugt ein neues Bild aus einer Datei oder URL

imagecreatefromwebp

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

imagecreatefromwebp — Erzeugt ein neues Bild aus einer Datei oder URL

Beschreibung

imagecreatefromwebp ( string $filename ) : resource

imagecreatefromwebp() returns an image identifier representing the image obtained from the given filename.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Parameter-Liste

filename

Path to the WebP image.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

Beispiel #1 Convert an WebP image to a jpeg image using imagecreatefromwebp()

<?php
// Load the WebP file
$im = imagecreatefromwebp('./example.webp');

// Convert it to a jpeg file with 100% quality
imagejpeg($im, './example.jpeg', 100);
imagedestroy($im);
?>


Erzeugt ein neues Bild aus einer Datei oder URL

  • « imagecreatefromwebp
  • imagecreatefromxpm »
  • PHP Manual
  • GD- und Image-Funktionen
  • Erzeugt ein neues Bild aus einer Datei oder URL

imagecreatefromxbm

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagecreatefromxbm — Erzeugt ein neues Bild aus einer Datei oder URL

Beschreibung

imagecreatefromxbm ( string $filename ) : resource

imagecreatefromxbm() returns an image identifier representing the image obtained from the given filename.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Parameter-Liste

filename

Path to the XBM image.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

Beispiel #1 Convert an XBM image to a png image using imagecreatefromxbm()

<?php
// Load the xbm file
$xbm = imagecreatefromxbm('./example.xbm');

// Convert it to a png file
imagepng($xbm, './example.png');
imagedestroy($xbm);
?>


Erzeugt ein neues Bild aus einer Datei oder URL

  • « imagecreatefromxbm
  • imagecreatetruecolor »
  • PHP Manual
  • GD- und Image-Funktionen
  • Erzeugt ein neues Bild aus einer Datei oder URL

imagecreatefromxpm

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagecreatefromxpm — Erzeugt ein neues Bild aus einer Datei oder URL

Beschreibung

imagecreatefromxpm ( string $filename ) : resource

imagecreatefromxpm() returns an image identifier representing the image obtained from the given filename.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

Parameter-Liste

filename

Path to the XPM image.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

Beispiel #1 Creating an image instance using imagecreatefromxpm()

<?php
// Check for XPM support
if(!(imagetypes() & IMG_XPM))
{
    die('Support for xpm was not found!');
}

// Create the image instance
$xpm = imagecreatefromxpm('./example.xpm');

// Do image operations here

// PHP has no support for writing xpm images
// so in this case we save the image as a
// jpeg file with 100% quality
imagejpeg($xpm, './example.jpg', 100);
imagedestroy($xpm);
?>


Create a new true color image

  • « imagecreatefromxpm
  • imagecrop »
  • PHP Manual
  • GD- und Image-Funktionen
  • Create a new true color image

imagecreatetruecolor

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecreatetruecolor — Create a new true color image

Beschreibung

imagecreatetruecolor ( int $width , int $height ) : resource

imagecreatetruecolor() returns an image identifier representing a black image of the specified size.

Parameter-Liste

width

Image width.

height

Image height.

Rückgabewerte

Gibt im Erfolgsfall eine Bildresource zurück, im Fehlerfall false.

Beispiele

Beispiel #1 Creating a new GD image stream and outputting an image.

<?php
header ('Content-Type: image/png');
$im = @imagecreatetruecolor(120, 20)
      or die('Cannot Initialize new GD image stream');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);
imagepng($im);
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Creating a new GD image stream and outputting an image.

Siehe auch

  • imagedestroy() - Löscht ein Bild
  • imagecreate() - Erzeugt ein neues Paletten-Bild


Crop an image to the given rectangle

  • « imagecreatetruecolor
  • imagecropauto »
  • PHP Manual
  • GD- und Image-Funktionen
  • Crop an image to the given rectangle

imagecrop

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagecrop — Crop an image to the given rectangle

Beschreibung

imagecrop ( resource $image , array $rect ) : resource|false

Crops an image to the given rectangular area and returns the resulting image. The given image is not modified.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

rect

The cropping rectangle as array with keys x, y, width and height.

Rückgabewerte

Return cropped image resource on successIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 imagecrop() example

This example shows how to crop an image to a square area.

<?php
$im = imagecreatefrompng('example.png');
$size = min(imagesx($im), imagesy($im));
$im2 = imagecrop($im, ['x' => 0, 'y' => 0, 'width' => $size, 'height' => $size]);
if ($im2 !== FALSE) {
    imagepng($im2, 'example-cropped.png');
    imagedestroy($im2);
}
imagedestroy($im);
?>

Siehe auch

  • imagecropauto() - Crop an image automatically using one of the available modes


Crop an image automatically using one of the available modes

  • « imagecrop
  • imagedashedline »
  • PHP Manual
  • GD- und Image-Funktionen
  • Crop an image automatically using one of the available modes

imagecropauto

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagecropauto — Crop an image automatically using one of the available modes

Beschreibung

imagecropauto ( resource $image , int $mode = IMG_CROP_DEFAULT , float $threshold = .5 , int $color = -1 ) : resource|false

Automatically crops an image according to the given mode.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

mode

One of the following constants:

IMG_CROP_DEFAULT
Same as IMG_CROP_TRANSPARENT. Before PHP 7.4.0, the bundled libgd fell back to IMG_CROP_SIDES, if the image had no transparent color.
IMG_CROP_TRANSPARENT
Crops out a transparent background.
IMG_CROP_BLACK
Crops out a black background.
IMG_CROP_WHITE
Crops out a white background.
IMG_CROP_SIDES
Uses the 4 corners of the image to attempt to detect the background to crop.
IMG_CROP_THRESHOLD
Crops an image using the given threshold and color.
threshold

Specifies the tolerance in percent to be used while comparing the image color and the color to crop. The method used to calculate the color difference is based on the color distance in the RGB(a) cube.

Used only in IMG_CROP_THRESHOLD mode.

Hinweis: Before PHP 7.4.0, the bundled libgd used a somewhat different algorithm, so the same threshold yielded different results for system and bundled libgd.

color

Either an RGB color value or a palette index.

Used only in IMG_CROP_THRESHOLD mode.

Rückgabewerte

Returns a cropped image resource on successIm Fehlerfall wird false zurückgegeben.. If the complete image was cropped, imagecrop() returns false.

Changelog

Version | Beschreibung
7.4.0 | The behavior of imagecropauto() in the bundled libgd has been synced with that of system libgd: IMG_CROP_DEFAULT no longer falls back to IMG_CROP_SIDES and threshold-cropping now uses the same algorithm as system libgd.
7.4.0 | The default value of mode has been changed to IMG_CROP_AUTO. Formerly, the default value has been -1 which corresponds to IMG_CROP_DEFAULT, but passing -1 is now deprecated.

Beispiele

Beispiel #1 Proper handling of auto-cropping

As noted in the return value section, imagecropauto() returns false if the whole image was cropped. In this example we have an image resource $im which should be automatically cropped only if there is something to crop; otherwise we want to proceed with the original image.

<?php
$cropped = imagecropauto($im, IMG_CROP_DEFAULT);
if ($cropped !== false) { // in case a new image resource was returned
    imagedestroy($im);    // we destroy the original image
    $im = $cropped;       // and assign the cropped image to $im
}
?>

Siehe auch

  • imagecrop() - Crop an image to the given rectangle


Zeichne eine gestrichelte Linie

  • « imagecropauto
  • imagedestroy »
  • PHP Manual
  • GD- und Image-Funktionen
  • Zeichne eine gestrichelte Linie

imagedashedline

(PHP 4, PHP 5, PHP 7, PHP 8)

imagedashedline — Zeichne eine gestrichelte Linie

Beschreibung

imagedashedline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color ) : int

Diese Funktion ist missbilligt. Statt dessen sollte eine Kombination von imagesetstyle() und imageline() verwendet werden.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

x1

x-Koordinate des oberen linken Punktes.

y1

y-Koordinate des oberen linken Punktes. 0,0 ist die obere linke Ecke des Bildes.

x2

x-Koordinate des unteren rechtes Punktes.

y2

y-Koordinate des unteren rechten Punktes.

color

Die Füllfarbe. Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagedashedline() Beispiel

<?php
// Erzeuge ein 100x100 Bild
$im = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

// Zeichne die vertikale gestrichelte Linie
imagedashedline($im, 50, 25, 50, 75, $white);

// Speichere das Bild
imagepng($im, './dashedline.png');
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : imagedashedline()

Beispiel #2 Alternative zu imagedashedline()

<?php
// Erzeuge ein 100x100 Bild
$im = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

// Definiere den gewünschten Stil: die ersten 4 Pixel sind weiß, und die
// nächsten 4 sind transparent. Dies erzeugt den Strichel-Effekt
$style = Array(
                $white,
                $white,
                $white,
                $white,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT
                );

imagesetstyle($im, $style);

// Zeichne die vertikale gestrichelte Linie
imageline($im, 50, 25, 50, 75, IMG_COLOR_STYLED);

// Speichere das Bild
imagepng($im, './imageline.png');
imagedestroy($im);
?>

Siehe auch

  • imagesetstyle() - Set the style for line drawing
  • imageline() - Zeichne eine Linie


Löscht ein Bild

  • « imagedashedline
  • imageellipse »
  • PHP Manual
  • GD- und Image-Funktionen
  • Löscht ein Bild

imagedestroy

(PHP 4, PHP 5, PHP 7, PHP 8)

imagedestroy — Löscht ein Bild

Beschreibung

imagedestroy ( resource $image ) : bool

imagedestroy() gibt den durch das Bild image belegten Speicher wieder frei.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Verwendung von imagedestroy()

<?php
// erzeuge ein 100 x 100 Bild
$im = imagecreatetruecolor(100, 100);

// verändere oder speichere das Bild

// gibt den durch das Bild belegten Speicher frei
imagedestroy($im);
?>


Draw an ellipse

  • « imagedestroy
  • imagefill »
  • PHP Manual
  • GD- und Image-Funktionen
  • Draw an ellipse

imageellipse

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imageellipse — Draw an ellipse

Beschreibung

imageellipse ( resource $image , int $cx , int $cy , int $width , int $height , int $color ) : bool

Draws an ellipse centered at the specified coordinates.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

cx

x-coordinate of the center.

cy

y-coordinate of the center.

width

The ellipse width.

height

The ellipse height.

color

The color of the ellipse. Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imageellipse() example

<?php

// Create a blank image.
$image = imagecreatetruecolor(400, 300);

// Select the background color.
$bg = imagecolorallocate($image, 0, 0, 0);

// Fill the background with the color selected above.
imagefill($image, 0, 0, $bg);

// Choose a color for the ellipse.
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// Draw the ellipse.
imageellipse($image, 200, 150, 300, 200, $col_ellipse);

// Output the image.
header("Content-type: image/png");
imagepng($image);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : imageellipse()

Anmerkungen

Hinweis:

imageellipse() ignores imagesetthickness().

Siehe auch

  • imagefilledellipse() - Draw a filled ellipse
  • imagearc() - Zeichnet einen Bogen


Flutfüllung

  • « imageellipse
  • imagefilledarc »
  • PHP Manual
  • GD- und Image-Funktionen
  • Flutfüllung

imagefill

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefill — Flutfüllung

Beschreibung

imagefill ( resource $image , int $x , int $y , int $color ) : int

Führt eine Flutfüllung beginnend an der angegebenen Koordinate (oben links ist 0,0) mit der angegebenen color im image durch.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

x

x-Koordinate des Anfangspunkts.

y

y-Koordinate des Anfangspunkts.

color

Die Füllfarbe. Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagefill() Beispiel

<?php

$im = imagecreatetruecolor(100, 100);

// Färbt den Hintergrund rot
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : imagefill()

Siehe auch

  • imagecolorallocate() - Alloziert eine Farbe für eine Grafik


Draw a partial arc and fill it

  • « imagefill
  • imagefilledellipse »
  • PHP Manual
  • GD- und Image-Funktionen
  • Draw a partial arc and fill it

imagefilledarc

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagefilledarc — Draw a partial arc and fill it

Beschreibung

imagefilledarc ( resource $image , int $cx , int $cy , int $width , int $height , int $start , int $end , int $color , int $style ) : bool

Draws a partial arc centered at the specified coordinate in the given image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

cx

x-coordinate of the center.

cy

y-coordinate of the center.

width

The arc width.

height

The arc height.

start

The arc start angle, in degrees.

end

The arc end angle, in degrees. 0° is located at the three-o'clock position, and the arc is drawn clockwise.

color

Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

style

A bitwise OR of the following possibilities:

  1. IMG_ARC_PIE
  2. IMG_ARC_CHORD
  3. IMG_ARC_NOFILL
  4. IMG_ARC_EDGED
IMG_ARC_PIE and IMG_ARC_CHORD are mutually exclusive; IMG_ARC_CHORD just connects the starting and ending angles with a straight line, while IMG_ARC_PIE produces a rounded edge. IMG_ARC_NOFILL indicates that the arc or chord should be outlined, not filled. IMG_ARC_EDGED, used together with IMG_ARC_NOFILL, indicates that the beginning and ending angles should be connected to the center - this is a good way to outline (rather than fill) a 'pie slice'.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Creating a 3D looking pie

<?php

// create image
$image = imagecreatetruecolor(100, 100);

// allocate some colors
$white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray     = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy     = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);

// make the 3D effect
for ($i = 60; $i > 50; $i--) {
   imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
   imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
   imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}

imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);

// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Creating a 3D looking pie


Draw a filled ellipse

  • « imagefilledarc
  • imagefilledpolygon »
  • PHP Manual
  • GD- und Image-Funktionen
  • Draw a filled ellipse

imagefilledellipse

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagefilledellipse — Draw a filled ellipse

Beschreibung

imagefilledellipse ( resource $image , int $cx , int $cy , int $width , int $height , int $color ) : bool

Draws an ellipse centered at the specified coordinate on the given image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

cx

x-coordinate of the center.

cy

y-coordinate of the center.

width

The ellipse width.

height

The ellipse height.

color

The fill color. Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagefilledellipse() example

<?php

// create a blank image
$image = imagecreatetruecolor(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// draw the white ellipse
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : imagefilledellipse()

Anmerkungen

Hinweis:

imagefilledellipse() ignores imagesetthickness().

Siehe auch

  • imageellipse() - Draw an ellipse
  • imagefilledarc() - Draw a partial arc and fill it


Zeichne ein gefülltes Polygon

  • « imagefilledellipse
  • imagefilledrectangle »
  • PHP Manual
  • GD- und Image-Funktionen
  • Zeichne ein gefülltes Polygon

imagefilledpolygon

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefilledpolygon — Zeichne ein gefülltes Polygon

Beschreibung

imagefilledpolygon ( resource $image , array $points , int $num_points , int $color ) : bool

imagefilledpolygon() erzeugt ein gefülltes Polygon im angegebenen image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

points

Ein Array, das die x und y Koordinaten der aufeinanderfolgenden Polygon-Eckpunkte enthält.

num_points

Die Anzahl der Eckpunkte, die wenigstens 3 sein muss.

color

Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagefilledpolygon() Beispiel

<?php
// initialisiere das Array der Polygon-Punkte
$values = array(
            40,  50,  // Point 1 (x, y)
            20,  240, // Point 2 (x, y)
            60,  60,  // Point 3 (x, y)
            240, 20,  // Point 4 (x, y)
            50,  40,  // Point 5 (x, y)
            10,  10   // Point 6 (x, y)
            );

// Erzeuge das Bild
$image = imagecreatetruecolor(250, 250);

// Alloziere Farben
$bg   = imagecolorallocate($image, 0, 0, 0);
$blue = imagecolorallocate($image, 0, 0, 255);

// Fülle den Hintergrund
imagefilledrectangle($image, 0, 0, 249, 249, $bg);

// Zeichne ein Polygon
imagefilledpolygon($image, $values, 6, $blue);

// Gib das Bild aus
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : imagefilledpolygon()

Siehe auch

  • imagepolygon() - Zeichne eine Polygon


Zeichne ein gefülltes Rechteck

  • « imagefilledpolygon
  • imagefilltoborder »
  • PHP Manual
  • GD- und Image-Funktionen
  • Zeichne ein gefülltes Rechteck

imagefilledrectangle

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefilledrectangle — Zeichne ein gefülltes Rechteck

Beschreibung

imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color ) : int

Erzeugt ein mit der Farbe color gefülltes Rechteck im angegebenen image, das sich von Punkt 1 bis zu Punkt 2 erstreckt. 0,0 ist die obere linke Ecke des Bildes.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

x1

x-Koordinate von Punkt 1.

y1

y-Koordinate von Punkt 1.

x2

x-Koordinate von Punkt 2.

y2

y-Koordinate von Punkt 2.

color

Die Füllfarbe. Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagefilledrectangle() Verwendung

<?php
// Erzeuge ein 55x30 Bild
$im = imagecreatetruecolor(55, 30);
$white = imagecolorallocate($im, 255, 255, 255);

// Zeichne ein weißes Rechteck
imagefilledrectangle($im, 4, 4, 50, 25, $white);

// Speichere das Bild
imagepng($im, './imagefilledrectangle.png');
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : imagefilledrectangle()


Flutfüllung bis zur angegebenen Farbe

  • « imagefilledrectangle
  • imagefilter »
  • PHP Manual
  • GD- und Image-Funktionen
  • Flutfüllung bis zur angegebenen Farbe

imagefilltoborder

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefilltoborder — Flutfüllung bis zur angegebenen Farbe

Beschreibung

imagefilltoborder ( resource $image , int $x , int $y , int $border , int $color ) : int

imagefilltoborder() bewirkt eine Flutfü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 color.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

x

x-Koordinate des Anfangspunkts.

y

y-Koordinate des Anfangspunkts.

border

Die Grenzfarbe. Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

color

Die Füllfarbe. Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Füllen einer Ellipse mit einer Farbe

<?php
// Erzeuge die Bildressource; definiere den Hintergrund als weiß
$im = imagecreatetruecolor(100, 100);
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 255, 255, 255));

// Zeichne eine auszufüllende Ellipse mit einem schwarzen Rand
imageellipse($im, 50, 50, 50, 50, imagecolorallocate($im, 0, 0, 0));

// Definiere die Rand- und Füllfarbe
$border = imagecolorallocate($im, 0, 0, 0);
$fill = imagecolorallocate($im, 255, 0, 0);

// Fülle die Auswahl
imagefilltoborder($im, 50, 50, $border, $fill);

// Ausgeben und Speicher freigeben
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : Füllen einer Ellipse mit einer Farbe


Applies a filter to an image

  • « imagefilltoborder
  • imageflip »
  • PHP Manual
  • GD- und Image-Funktionen
  • Applies a filter to an image

imagefilter

(PHP 5, PHP 7, PHP 8)

imagefilter — Applies a filter to an image

Beschreibung

imagefilter ( resource $image , int $filtertype , int $arg1 = ? , int $arg2 = ? , int $arg3 = ? , int $arg4 = ? ) : bool

imagefilter() applies the given filter filtertype on the image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

filtertype

filtertype can be one of the following:

  • IMG_FILTER_NEGATE: Reverses all colors of the image.
  • IMG_FILTER_GRAYSCALE: Converts the image into grayscale by changing the red, green and blue components to their weighted sum using the same coefficients as the REC.601 luma (Y') calculation. The alpha components are retained. For palette images the result may differ due to palette limitations.
  • IMG_FILTER_BRIGHTNESS: Changes the brightness of the image. Use arg1 to set the level of brightness. The range for the brightness is -255 to 255.
  • IMG_FILTER_CONTRAST: Changes the contrast of the image. Use arg1 to set the level of contrast.
  • IMG_FILTER_COLORIZE: Like IMG_FILTER_GRAYSCALE, except you can specify the color. Use arg1, arg2 and arg3 in the form of red, green, blue and arg4 for the alpha channel. The range for each color is 0 to 255.
  • IMG_FILTER_EDGEDETECT: Uses edge detection to highlight the edges in the image.
  • IMG_FILTER_EMBOSS: Embosses the image.
  • IMG_FILTER_GAUSSIAN_BLUR: Blurs the image using the Gaussian method.
  • IMG_FILTER_SELECTIVE_BLUR: Blurs the image.
  • IMG_FILTER_MEAN_REMOVAL: Uses mean removal to achieve a "sketchy" effect.
  • IMG_FILTER_SMOOTH: Makes the image smoother. Use arg1 to set the level of smoothness.
  • IMG_FILTER_PIXELATE: Applies pixelation effect to the image, use arg1 to set the block size and arg2 to set the pixelation effect mode.
  • IMG_FILTER_SCATTER: Applies scatter effect to the image, use arg1 and arg2 to define the effect strength and additionally arg3 to only apply the on select pixel colors.

arg1

  • IMG_FILTER_BRIGHTNESS: Brightness level.
  • IMG_FILTER_CONTRAST: Contrast level.
  • IMG_FILTER_COLORIZE: Wert der Rotkomponente.
  • IMG_FILTER_SMOOTH: Smoothness level.
  • IMG_FILTER_PIXELATE: Block size in pixels.
  • IMG_FILTER_SCATTER: Effect substraction level. This must not be higher or equal to the addition level set with arg2.

arg2

  • IMG_FILTER_COLORIZE: Wert der Grünkomponente.
  • IMG_FILTER_PIXELATE: Whether to use advanced pixelation effect or not (defaults to false).
  • IMG_FILTER_SCATTER: Effect addition level.

arg3

  • IMG_FILTER_COLORIZE: Wert der Blaukomponente.
  • IMG_FILTER_SCATTER: Optional array indexed color values to apply effect at.

arg4

  • IMG_FILTER_COLORIZE: Alpha channel, A value between 0 and 127. 0 indicates completely opaque while 127 indicates completely transparent.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.4.0 | Scatter support (IMG_FILTER_SCATTER) was added.

Beispiele

Beispiel #1 imagefilter() grayscale example

<?php
$im = imagecreatefrompng('dave.png');

if($im && imagefilter($im, IMG_FILTER_GRAYSCALE))
{
    echo 'Image converted to grayscale.';

    imagepng($im, 'dave.png');
}
else
{
    echo 'Conversion to grayscale failed.';
}

imagedestroy($im);
?>

Beispiel #2 imagefilter() brightness example

<?php
$im = imagecreatefrompng('sean.png');

if($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20))
{
    echo 'Image brightness changed.';

    imagepng($im, 'sean.png');
    imagedestroy($im);
}
else
{
    echo 'Image brightness change failed.';
}
?>

Beispiel #3 imagefilter() colorize example

<?php
$im = imagecreatefrompng('philip.png');

/* R, G, B, so 0, 255, 0 is green */
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0))
{
    echo 'Image successfully shaded green.';

    imagepng($im, 'philip.png');
    imagedestroy($im);
}
else
{
    echo 'Green shading failed.';
}
?>

Beispiel #4 imagefilter() negate example

<?php
// Define our negate function so its portable for
// php versions without imagefilter()
function negate($im)
{
    if(function_exists('imagefilter'))
    {
        return imagefilter($im, IMG_FILTER_NEGATE);
    }

    for($x = 0; $x < imagesx($im); ++$x)
    {
        for($y = 0; $y < imagesy($im); ++$y)
        {
            $index = imagecolorat($im, $x, $y);
            $rgb = imagecolorsforindex($index);
            $color = imagecolorallocate($im, 255 - $rgb['red'], 255 - $rgb['green'], 255 - $rgb['blue']);

            imagesetpixel($im, $x, $y, $color);
        }
    }

    return(true);
}

$im = imagecreatefromjpeg('kalle.jpg');

if($im && negate($im))
{
    echo 'Image successfully converted to negative colors.';

    imagejpeg($im, 'kalle.jpg', 100);
    imagedestroy($im);
}
else
{
    echo 'Converting to negative colors failed.';
}
?>

Beispiel #5 imagefilter() pixelate example

<?php
// Load the PHP logo, we need to create two instances
// to show the differences
$logo1 = imagecreatefrompng('./php.png');
$logo2 = imagecreatefrompng('./php.png');

// Create the image instance we want to show the
// differences on
$output = imagecreatetruecolor(imagesx($logo1) * 2, imagesy($logo1));

// Apply pixelation to each instance, with a block
// size of 3
imagefilter($logo1, IMG_FILTER_PIXELATE, 3);
imagefilter($logo2, IMG_FILTER_PIXELATE, 3, true);

// Merge the differences onto the output image
imagecopy($output, $logo1, 0, 0, 0, 0, imagesx($logo1) - 1, imagesy($logo1) - 1);
imagecopy($output, $logo2, imagesx($logo2), 0, 0, 0, imagesx($logo2) - 1, imagesy($logo2) - 1);
imagedestroy($logo1);
imagedestroy($logo2);

// Output the differences
header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : imagefilter() pixelate

Beispiel #6 imagefilter() scatter example

<?php
// Load the image
$logo = imagecreatefrompng('./php.png');

// Apply a very soft scatter effect to the image
imagefilter($logo, IMG_FILTER_SCATTER, 3, 5);

// Output the image with the scatter effect
header('Content-Type: image/png');
imagepng($logo);
imagedestroy($logo);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : imagefilter() scatter

Anmerkungen

Hinweis: The result of IMG_FILTER_SCATTER is always random.

Siehe auch

  • imageconvolution() - Apply a 3x3 convolution matrix, using coefficient and offset


Flips an image using a given mode

  • « imagefilter
  • imagefontheight »
  • PHP Manual
  • GD- und Image-Funktionen
  • Flips an image using a given mode

imageflip

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageflip — Flips an image using a given mode

Beschreibung

imageflip ( resource $image , int $mode ) : bool

Flips the image image using the given mode.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

mode

Flip mode, this can be one of the IMG_FLIP_* constants:

Constant | Meaning
IMG_FLIP_HORIZONTAL | Flips the image horizontally.
IMG_FLIP_VERTICAL | Flips the image vertically.
IMG_FLIP_BOTH | Flips the image both horizontally and vertically.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Flips an image vertically

This example uses the IMG_FLIP_VERTICAL constant.

<?php
// File
$filename = 'phplogo.png';

// Content type
header('Content-type: image/png');

// Load
$im = imagecreatefrompng($filename);

// Flip it vertically
imageflip($im, IMG_FLIP_VERTICAL);

// Output
imagejpeg($im);
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example: Vertically flipped image

Beispiel #2 Flips the image horizontally

This example uses the IMG_FLIP_HORIZONTAL constant.

<?php
// File
$filename = 'phplogo.png';

// Content type
header('Content-type: image/png');

// Load
$im = imagecreatefrompng($filename);

// Flip it horizontally
imageflip($im, IMG_FLIP_HORIZONTAL);

// Output
imagejpeg($im);
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example: Horizontally flipped image


Ermittle die Höhe einer Schriftart

  • « imageflip
  • imagefontwidth »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittle die Höhe einer Schriftart

imagefontheight

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefontheight — Ermittle die Höhe einer Schriftart

Beschreibung

imagefontheight ( int $font ) : int

Gibt die Höhe eines Zeichens (in Pixel) in der angegebenen Schriftart zurück.

Parameter-Liste

font

Ein Wert zwischen 1 und 5 für eingebaute Schriftarten in Latin2-Kodierung (wobei größere Werte größeren Schriften entsprechen) oder einer Ihrer mit imageloadfont() selbst registrierten Schrifteinträge.

Rückgabewerte

Gibt die Höhe der Schriftart in Pixel zurück.

Beispiele

Beispiel #1 Verwendung von imagefontheight() mit integrierten Schriftarten

<?php
echo 'Höhe der Schriftart: ' . imagefontheight(4);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Höhe der Schriftart: 16

Beispiel #2 Verwendung von imagefontheight() mit imageloadfont()

<?php
// Lade eine .gdf Schriftart
$font = imageloadfont('anonymous.gdf');

echo 'Höhe der Schriftart: ' . imagefontheight($font);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Höhe der Schriftart: 43

Siehe auch

  • imagefontwidth() - Ermittle die Breite einer Schriftart
  • imageloadfont() - Lädt eine neue Schriftart


Ermittle die Breite einer Schriftart

  • « imagefontheight
  • imageftbbox »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittle die Breite einer Schriftart

imagefontwidth

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefontwidth — Ermittle die Breite einer Schriftart

Beschreibung

imagefontwidth ( int $font ) : int

Gibt die Breite eines Zeichens (in Pixel) in der angegebenen Schriftart zurück.

Parameter-Liste

font

Ein Wert zwischen 1 und 5 für eingebaute Schriftarten in Latin2-Kodierung (wobei größere Werte größeren Schriften entsprechen) oder einer Ihrer mit imageloadfont() selbst registrierten Schrifteinträge.

Rückgabewerte

Gibt die Breite der Schriftart in Pixel zurück.

Beispiele

Beispiel #1 Verwendung von imagefontwidth() mit integrierten Schriftarten

<?php
echo 'Breite der Schriftart: ' . imagefontwidth(4);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Breite der Schriftart: 8

Beispiel #2 Verwendung von imagefontwidth() mit imageloadfont()

<?php
// Lade eine .gdf Schriftart
$font = imageloadfont('anonymous.gdf');

echo 'Breite der Schriftart: ' . imagefontwidth($font);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Breite der Schriftart: 23

Siehe auch

  • imagefontheight() - Ermittle die Höhe einer Schriftart
  • imageloadfont() - Lädt eine neue Schriftart


Give the bounding box of a text using fonts via freetype2

  • « imagefontwidth
  • imagefttext »
  • PHP Manual
  • GD- und Image-Funktionen
  • Give the bounding box of a text using fonts via freetype2

imageftbbox

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imageftbbox — Give the bounding box of a text using fonts via freetype2

Beschreibung

imageftbbox ( float $size , float $angle , string $fontfile , string $text , array $extrainfo = ? ) : array

This function calculates and returns the bounding box in pixels for a FreeType text.

Hinweis:

imageftbbox() is an extended variant of imagettfbbox() which additionally supports the extrainfo.

Parameter-Liste

size

Die Schriftgröße in Punkten.

angle

Angle in degrees in which text will be measured.

fontfile

The name of the TrueType font file (can be a URL). Depending on which version of the GD library that PHP is using, it may attempt to search for files that do not begin with a leading '/' by appending '.ttf' to the filename and searching along a library-defined font path.

text

The string to be measured.

extrainfo

Possible array indexes for extrainfo
Key | Type | Meaning
linespacing | float | Defines drawing linespacing

Rückgabewerte

imageftbbox() returns an array with 8 elements representing four points making the bounding box of the text:

0 | lower left corner, X position
1 | lower left corner, Y position
2 | lower right corner, X position
3 | lower right corner, Y position
4 | upper right corner, X position
5 | upper right corner, Y position
6 | upper left corner, X position
7 | upper left corner, Y position

The points are relative to the text regardless of the angle, so "upper left" means in the top left-hand corner seeing the text horizontally.

Beispiele

Beispiel #1 imageftbbox() example

<?php
// Create a 300x150 image
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Set the background to be white
imagefilledrectangle($im, 0, 0, 299, 299, $white);

// Path to our font file
$font = './arial.ttf';

// First we create our bounding box
$bbox = imageftbbox(10, 0, $font, 'The PHP Documentation Group');

// This is our cordinates for X and Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 5;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

imagefttext($im, 10, 0, $x, $y, $black, $font, 'The PHP Documentation Group');

// Output to browser
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Anmerkungen

Hinweis: Diese Funktion ist nur verfügbar wenn PHP mit Freetype unterstützung (--with-freetype-dir=DIR) kompiliert wurde

Siehe auch

  • imagefttext() - Write text to the image using fonts using FreeType 2
  • imagettfbbox() - Ermittle das umgebende Rechteck eines Textes unter Verwendung von True-Type Schriftarten


Write text to the image using fonts using FreeType 2

  • « imageftbbox
  • imagegammacorrect »
  • PHP Manual
  • GD- und Image-Funktionen
  • Write text to the image using fonts using FreeType 2

imagefttext

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagefttext — Write text to the image using fonts using FreeType 2

Beschreibung

imagefttext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text , array $extrainfo = ? ) : array

Hinweis:

imagefttext() is an extended variant of imagettftext() which additionally supports the extrainfo.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

size

The font size to use in points.

angle

The angle in degrees, with 0 degrees being left-to-right reading text. Higher values represent a counter-clockwise rotation. For example, a value of 90 would result in bottom-to-top reading text.

x

The coordinates given by x and y will define the basepoint of the first character (roughly the lower-left corner of the character). This is different from the imagestring(), where x and y define the upper-left corner of the first character. For example, "top left" is 0, 0.

y

The y-ordinate. This sets the position of the fonts baseline, not the very bottom of the character.

color

The index of the desired color for the text, see imagecolorexact().

fontfile

The path to the TrueType font you wish to use.

Depending on which version of the GD library PHP is using, when fontfile does not begin with a leading / then .ttf will be appended to the filename and the library will attempt to search for that filename along a library-defined font path.

When using versions of the GD library lower than 2.0.18, a space character, rather than a semicolon, was used as the 'path separator' for different font files. Unintentional use of this feature will result in the warning message: Warning: Could not find/open font. For these affected versions, the only solution is moving the font to a path which does not contain spaces.

In many cases where a font resides in the same directory as the script using it the following trick will alleviate any include problems.

<?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>

text

Text to be inserted into image.

extrainfo

Possible array indexes for extrainfo
Key | Type | Meaning
linespacing | float | Defines drawing linespacing

Rückgabewerte

This function returns an array defining the four points of the box, starting in the lower left and moving counter-clockwise:

0 | lower left x-coordinate
1 | lower left y-coordinate
2 | lower right x-coordinate
3 | lower right y-coordinate
4 | upper right x-coordinate
5 | upper right y-coordinate
6 | upper left x-coordinate
7 | upper left y-coordinate

Beispiele

Beispiel #1 imagefttext() example

<?php
// Create a 300x100 image
$im = imagecreatetruecolor(300, 100);
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Make the background red
imagefilledrectangle($im, 0, 0, 299, 99, $red);

// Path to our ttf font file
$font_file = './arial.ttf';

// Draw the text 'PHP Manual' using font size 13
imagefttext($im, 13, 0, 105, 55, $black, $font_file, 'PHP Manual');

// Output image to the browser
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Anmerkungen

Hinweis: Diese Funktion ist nur verfügbar wenn PHP mit Freetype unterstützung (--with-freetype-dir=DIR) kompiliert wurde

Siehe auch

  • imageftbbox() - Give the bounding box of a text using fonts via freetype2
  • imagettftext() - Schreibe Text ins Bild unter Verwendung von True-Type-Schriftarten


Anwendung einer Gamma-Korrektur auf ein GD-Bild

  • « imagefttext
  • imagegd2 »
  • PHP Manual
  • GD- und Image-Funktionen
  • Anwendung einer Gamma-Korrektur auf ein GD-Bild

imagegammacorrect

(PHP 4, PHP 5, PHP 7, PHP 8)

imagegammacorrect — Anwendung einer Gamma-Korrektur auf ein GD-Bild

Beschreibung

imagegammacorrect ( resource $image , double $inputgamma , double $outputgamma ) : int

Wendet Gamma-Korrektur auf das angegebene image an, wobei Eingangs- und Ausgangsgamma angegeben werden.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

inputgamma

Das Eingangsgamma.

outputgamma

Das Ausgangsgamma.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagegammacorrect() Verwendung

<?php
// Erzeuge ein Bild
$im = imagecreatefromgif('php.gif');

// Korrigiere Gamma, aus = 1.537
imagegammacorrect($im, 1.0, 1.537);

// Speichere Bild und gib den Speicher frei
imagegif($im, './php_gamma_corrected.gif');
imagedestroy($im);
?>


Output GD2 image to browser or file

  • « imagegammacorrect
  • imagegd »
  • PHP Manual
  • GD- und Image-Funktionen
  • Output GD2 image to browser or file

imagegd2

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagegd2 — Output GD2 image to browser or file

Beschreibung

imagegd2 ( resource $image , mixed $to = NULL , int $chunk_size = 128 , int $type = IMG_GD2_RAW ) : bool

Outputs a GD2 image to the given to.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

to

Der Pfad unter dem das Bild gespeichert werden soll. Ist dies nicht gesetzt oder null wird der rohe Bilddatenstrom direkt ausgegeben.

chunk_size

Chunk size.

type

Either IMG_GD2_RAW or IMG_GD2_COMPRESSED. Default is IMG_GD2_RAW.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Achtung

However, if libgd fails to output the image, this function returns true.

Beispiele

Beispiel #1 Outputting a GD2 image

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);

// Output the image
imagegd2($im);

// Free up memory
imagedestroy($im);
?>

Beispiel #2 Saving a GD2 image

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);

// Save the gd2 image
// The file format for GD2 images is .gd2, see http://www.libgd.org/GdFileFormats
imagegd2($im, 'simple.gd2');

// Free up memory
imagedestroy($im);
?>

Anmerkungen

Hinweis:

The GD2 format is commonly used to allow fast loading of parts of images. Note that the GD2 format is only usable in GD2-compatible applications.

Warnung

Die GD und GD2 Bildformate sind proprietäre Bildformate von libgd. Sie sind als veraltet anzusehen, und sollten nur zu Entwicklungs- und Testzwecken verwendet werden.

Siehe auch

  • imagegd() - Output GD image to browser or file


Output GD image to browser or file

  • « imagegd2
  • imagegetclip »
  • PHP Manual
  • GD- und Image-Funktionen
  • Output GD image to browser or file

imagegd

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagegd — Output GD image to browser or file

Beschreibung

imagegd ( resource $image , mixed $to = NULL ) : bool

Outputs a GD image to the given to.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

to

Der Pfad unter dem das Bild gespeichert werden soll. Ist dies nicht gesetzt oder null wird der rohe Bilddatenstrom direkt ausgegeben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Achtung

However, if libgd fails to output the image, this function returns true.

Changelog

Version | Beschreibung
7.2.0 | imagegd() now allows to output truecolor images. Formerly, these have been implicitly converted to palette.

Beispiele

Beispiel #1 Outputting a GD image

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);

// Output the image
imagegd($im);

// Free up memory
imagedestroy($im);
?>

Beispiel #2 Saving a GD image

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);

// Save the gd image
// The file format for GD images is .gd, see http://www.libgd.org/GdFileFormats
imagegd($im, 'simple.gd');

// Free up memory
imagedestroy($im);
?>

Anmerkungen

Hinweis:

The GD format is commonly used to allow fast loading of parts of images. Note that the GD format is only usable in GD-compatible applications.

Warnung

Die GD und GD2 Bildformate sind proprietäre Bildformate von libgd. Sie sind als veraltet anzusehen, und sollten nur zu Entwicklungs- und Testzwecken verwendet werden.

Siehe auch

  • imagegd2() - Output GD2 image to browser or file


Get the clipping rectangle

  • « imagegd
  • imagegetinterpolation »
  • PHP Manual
  • GD- und Image-Funktionen
  • Get the clipping rectangle

imagegetclip

(PHP 7 >= 7.2.0, PHP 8)

imagegetclip — Get the clipping rectangle

Beschreibung

imagegetclip ( resource $im ) : array

imagegetclip() retrieves the current clipping rectangle, i.e. the area beyond which no pixels will be drawn.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

Rückgabewerte

The function returns an indexed array with the coordinates of the clipping rectangle which has the following entries:

  • x-coordinate of the upper left corner
  • y-coordinate of the upper left corner
  • x-coordinate of the lower right corner
  • y-coordinate of the lower right corner

Beispiele

Beispiel #1 imagegetclip() example

Setting and retrieving the clipping rectangle.

<?php
$im = imagecreate(100, 100);
imagesetclip($im, 10,10, 89,89);
print_r(imagegetclip($im));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Siehe auch

  • imagesetclip() - Set the clipping rectangle


Get the interpolation method

  • « imagegetclip
  • imagegif »
  • PHP Manual
  • GD- und Image-Funktionen
  • Get the interpolation method

imagegetinterpolation

(PHP 8)

imagegetinterpolation — Get the interpolation method

Beschreibung

imagegetinterpolation ( GdImage $image ) : int

Gets the currently set interpolation method of the image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

Rückgabewerte

Returns the interpolation method.

Siehe auch

  • imagesetinterpolation() - Set the interpolation method


Gibt das Bild im Browser oder einer Datei aus.

  • « imagegetinterpolation
  • imagegrabscreen »
  • PHP Manual
  • GD- und Image-Funktionen
  • Gibt das Bild im Browser oder einer Datei aus.

imagegif

(PHP 4, PHP 5, PHP 7, PHP 8)

imagegif — Gibt das Bild im Browser oder einer Datei aus.

Beschreibung

imagegif ( resource $image , mixed $to = null ) : bool

imagegif() erzeugt eine GIF-Datei gemäß to aus dem übergebenen image. Der Inhalt des Parameters image ist die Rückgabe der Funktionen imagecreate() oder imagecreatefrom*

Das Dateiformat wird GIF87a sein, es sei denn das Bild wurde mittels imagecolortransparent() transparent gemacht. In diesem Fall wird das Dateiformat GIF89a sein.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

to

Der Pfad unter dem das Bild gespeichert werden soll. Ist dies nicht gesetzt oder null wird der rohe Bilddatenstrom direkt ausgegeben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Achtung

However, if libgd fails to output the image, this function returns true.

Beispiele

Beispiel #1 Ein Bild mittels imagegif() ausgeben

<?php
// Erzeugt ein neues Bild
$im = imagecreatetruecolor(100, 100);

// Den Hintergrund weiß machen
imagefilledrectangle($im, 0, 0, 99, 99, 0xFFFFFF);

// Einen Text im Bild ausgeben
imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00);

// Das Bild an den Browser ausgeben
header('Content-Type: image/gif');

imagegif($im);
imagedestroy($im);
?>

Beispiel #2 Eine PNG-Datei mit imagegif() in GIF konvertieren

<?php

// Die PNG-Datei laden
$png = imagecreatefrompng('./php.png');

// Die Datei im GIF-Format speichern
imagegif($png, './php.gif');

// Den Speicher freigeben
imagedestroy($png);

// Wir sind fertig
echo 'Die PNG-Datei wurde erfolgreich nach GIF konvertiert!';
?>

Anmerkungen

Hinweis:

Die Unterstützung des GIF-Dateiformates wurde in der Version 1.6 der GD-Bibliothek entfernt und in der Version 2.0.28 wieder hinzugefügt. Nähere Angaben finden Sie auf der Webseite des » GD Projekts.

Der folgende Codeauszug erlaubt es Ihnen leichter umzuziehende PHP-Anwendungen zu schreiben, indem die von GD unterstützten Dateiformat automatisch erkannt werden. Ersetzen Sie den Abschnitt header ("Content-Type: image/gif"); imagegif ($im); durch den folgenden Abschnitt:

<?php
// Ein neues Bild erzeugen
$im = imagecreatetruecolor(100, 100);

// Hier wird das Bild bearbeitet

// Ausgabebehandlung
if(function_exists('imagegif'))
{
    // Für GIF
    header('Content-Type: image/gif');

    imagegif($im);
}
elseif(function_exists('imagejpeg'))
{
    // Für JPEG
    header('Content-Type: image/jpeg');

    imagejpeg($im, NULL, 100);
}
elseif(function_exists('imagepng'))
{
    // Für PNG
    header('Content-Type: image/png');

    imagepng($im);
}
elseif(function_exists('imagewbmp'))
{
    // Für WBMP
    header('Content-Type: image/vnd.wap.wbmp');

    imagewbmp($im);
}
else
{
    imagedestroy($im);

    die('Auf diesem Server gibt es keine unterstützten Bildformate');
}

// Falls Unterstützung für eines von diesen Formaten
// gefunden wurde, geben wir den Speicher frei
if($im)
{
    imagedestroy($im);
}
?>

Hinweis:

Die Funktion imagetypes() kann zur Prüfung der Unterstützung der verschiedenen Bildformate verwendet werden:

<?php
if(imagetypes() & IMG_GIF)
{
    header('Content-Type: image/gif');
    imagegif($im);
}
elseif(imagetypes() & IMG_JPG)
{
    /* ... etc. */
}
?>

Siehe auch

  • imagepng() - Ausgabe eines Bildes im Browser oder als Datei im PNG-Format
  • imagewbmp() - Gibt das Bild im Browser oder einer Datei aus.
  • imagejpeg() - Gibt das Bild im Browser oder einer Datei aus.
  • imagetypes() - Gib die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück


Captures the whole screen

  • « imagegif
  • imagegrabwindow »
  • PHP Manual
  • GD- und Image-Funktionen
  • Captures the whole screen

imagegrabscreen

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

imagegrabscreen — Captures the whole screen

Beschreibung

imagegrabscreen ( ) : resource

Grabs a screenshot of the whole screen.

Hinweis:

This function is only available on Windows.

Rückgabewerte

Returns an image resource identifier on success, false on failure.

Beispiele

Beispiel #1 imagegrabscreen() example

This example demonstrates how to take a screenshot of the current screen and save it as a png image.

<?php
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
imagedestroy($im);
?>

Siehe auch

  • imagegrabwindow() - Captures a window


Captures a window

  • « imagegrabscreen
  • imageinterlace »
  • PHP Manual
  • GD- und Image-Funktionen
  • Captures a window

imagegrabwindow

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

imagegrabwindow — Captures a window

Beschreibung

imagegrabwindow ( int $window_handle , int $client_area = 0 ) : resource

Grabs a window or its client area using a windows handle (HWND property in COM instance)

Hinweis:

This function is only available on Windows.

Parameter-Liste

window_handle

The HWND window ID.

client_area

Include the client area of the application window.

Rückgabewerte

Returns an image resource identifier on success, false on failure.

Fehler/Exceptions

E_NOTICE is issued if window_handle is invalid window handle. E_WARNING is issued if the Windows API is too old.

Beispiele

Beispiel #1 imagegrabwindow() example

Capture a window (IE for example)

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$im = imagegrabwindow($handle);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

Capture a window (IE for example) but with its content

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://www.libgd.org");

/* Still working? */
while ($browser->Busy) {
    com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

Siehe auch

  • imagegrabscreen() - Captures the whole screen


Aktiviere oder Deaktiviere Interlacing

  • « imagegrabwindow
  • imageistruecolor »
  • PHP Manual
  • GD- und Image-Funktionen
  • Aktiviere oder Deaktiviere Interlacing

imageinterlace

(PHP 4, PHP 5, PHP 7, PHP 8)

imageinterlace — Aktiviere oder Deaktiviere Interlacing

Beschreibung

imageinterlace ( resource $image , int $interlace = 0 ) : int

imageInterlace() schaltet das Interlace-Bit an oder aus.

Ist das Interlace-Bit gesetzt, und das Bild wird als JPEG Bild verwendet, dann wird das Bild als progressives JPEG erzeugt.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

interlace

Wenn ungleich 0, wird das Bild interlaced; andernfalls wird das Interlace-Bit ausgeschaltet.

Rückgabewerte

Gibt 1 zurück, wenn das Interlace-Bit des Bildes gesetzt ist, anderfalls 0.

Beispiele

Beispiel #1 Aktiviere Interlacing unter Verendung von imageinterlace()

<?php
// Erzeuge ein Bild
$im = imagecreatefromgif('php.gif');

// Aktiviere Interlacing
imageinterlace($im, true);

// Speichere das Bild interlaced
imagegif($im, './php_interlaced.gif');
imagedestroy($im);
?>


Finds whether an image is a truecolor image

  • « imageinterlace
  • imagejpeg »
  • PHP Manual
  • GD- und Image-Funktionen
  • Finds whether an image is a truecolor image

imageistruecolor

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

imageistruecolor — Finds whether an image is a truecolor image

Beschreibung

imageistruecolor ( resource $image ) : bool

imageistruecolor() finds whether the image image is a truecolor image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

Rückgabewerte

Returns true if the image is truecolor, false otherwise.

Beispiele

Beispiel #1 Simple detection of true color image instances using imageistruecolor()

<?php
// $im is an image instance

// Check if image is a true color image or not
if(!imageistruecolor($im))
{
    // Create a new true color image instance
    $tc = imagecreatetruecolor(imagesx($im), imagesy($im));

    // Copy over the pixels
    imagecopy($tc, $im, 0, 0, 0, 0, imagesx($im), imagesy($im));
    imagedestroy($im);

    $im = $tc;
    $tc = NULL;

    // OR use imagepalettetotruecolor()
}

// Continue working with image instance
?>

Siehe auch

  • imagecreatetruecolor() - Create a new true color image
  • imagepalettetotruecolor() - Converts a palette based image to true color


Gibt das Bild im Browser oder einer Datei aus.

  • « imageistruecolor
  • imagelayereffect »
  • PHP Manual
  • GD- und Image-Funktionen
  • Gibt das Bild im Browser oder einer Datei aus.

imagejpeg

(PHP 4, PHP 5, PHP 7, PHP 8)

imagejpeg — Gibt das Bild im Browser oder einer Datei aus.

Beschreibung

imagejpeg ( resource $image , mixed $to = null , int $quality = -1 ) : bool

imagejpeg() erzeugt eine JPEG-Datei aus dem übergebenen image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

to

Der Pfad unter dem das Bild gespeichert werden soll. Ist dies nicht gesetzt oder null wird der rohe Bilddatenstrom direkt ausgegeben.

quality

quality ist optional und es kann ein Wert zwischen 0 (schlechteste Qualität, kleine Datei) und 100 (beste Qualität, größte Datei) übergeben werden. Der Standardwert (-1) verwendet den standardmäßigen IJG-Qualitätswert (ungefähr 75).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Achtung

However, if libgd fails to output the image, this function returns true.

Beispiele

Beispiel #1 Ein Bild an den Browser ausgeben

<?php
// Erzeut ein leeres Bild und fügt ein wenig Text hinzu
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Die Content-Type-Kopfzeile senden, in diesem Fall image/jpeg
header('Content-Type: image/jpeg');

// Das Bild ausgeben
imagejpeg($im);

// Den Speicher freigeben
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels: Ein Bild ausgeben

Beispiel #2 Ein Bild in eine Datei speichern

<?php
// Erzeugt ein leeres Bild und fügt ein wenig Text hinzu
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Das Bild als 'simpletext.jpg' speichern
imagejpeg($im, 'simpletext.jpg');

// Den Speicher freigeben
imagedestroy($im);
?>

Beispiel #3 Das Bild mit 75% Qualität an den Browser ausgeben

<?php
// Erzeugt ein leeres Bild und fügt ein wenig Text hinzu
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Die Content-Type-Kopfzeile senden, in diesem Fall image/jpeg
header('Content-Type: image/jpeg');

// Der Dateiname wird übergangen, indem NULL verwendet wird
// dann wird die Qualität auf 75% gesetzt
imagejpeg($im, NULL, 75);

// Den Speicher freigeben
imagedestroy($im);
?>

Anmerkungen

Hinweis:

Falls Progessive JPEGs ausgegeben werden sollen, so muss Interlacing mittels imageinterlace() eingeschaltet werden.

Siehe auch

  • imagepng() - Ausgabe eines Bildes im Browser oder als Datei im PNG-Format
  • imagegif() - Gibt das Bild im Browser oder einer Datei aus.
  • imagewbmp() - Gibt das Bild im Browser oder einer Datei aus.
  • imageinterlace() - Aktiviere oder Deaktiviere Interlacing
  • imagetypes() - Gib die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück


Set the alpha blending flag to use layering effects

  • « imagejpeg
  • imageline »
  • PHP Manual
  • GD- und Image-Funktionen
  • Set the alpha blending flag to use layering effects

imagelayereffect

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

imagelayereffect — Set the alpha blending flag to use layering effects

Beschreibung

imagelayereffect ( resource $image , int $effect ) : bool

Set the alpha blending flag to use layering effects.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

effect

One of the following constants:

IMG_EFFECT_REPLACE
Use pixel replacement (equivalent of passing true to imagealphablending())
IMG_EFFECT_ALPHABLEND
Use normal pixel blending (equivalent of passing false to imagealphablending())
IMG_EFFECT_NORMAL
Same as IMG_EFFECT_ALPHABLEND.
IMG_EFFECT_OVERLAY
Overlay has the effect that black background pixels will remain black, white background pixels will remain white, but grey background pixels will take the colour of the foreground pixel.
IMG_EFFECT_MULTIPLY
Overlays with a multiply effect.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.2.0 | Added IMG_EFFECT_MULTIPLY (requires system libgd >= 2.1.1 or the bundled libgd).

Beispiele

Beispiel #1 imagelayereffect() example

<?php
// Setup an image
$im = imagecreatetruecolor(100, 100);

// Set a background
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 220, 220, 220));

// Apply the overlay alpha blending flag
imagelayereffect($im, IMG_EFFECT_OVERLAY);

// Draw two grey ellipses
imagefilledellipse($im, 50, 50, 40, 40, imagecolorallocate($im, 100, 255, 100));
imagefilledellipse($im, 50, 50, 50, 80, imagecolorallocate($im, 100, 100, 255));
imagefilledellipse($im, 50, 50, 80, 50, imagecolorallocate($im, 255, 100, 100));

// Output
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : imagelayereffect()


Zeichne eine Linie

  • « imagelayereffect
  • imageloadfont »
  • PHP Manual
  • GD- und Image-Funktionen
  • Zeichne eine Linie

imageline

(PHP 4, PHP 5, PHP 7, PHP 8)

imageline — Zeichne eine Linie

Beschreibung

imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color ) : int

Zeichnet eine Linie zwischen den beiden gegebenen Punkten.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

x1

x-Koordinate des ersten Punkts.

y1

y-Koordinate des ersten Punkts.

x2

x-Koordinate des zweiten Punkts.

y2

y-Koordinate des zweiten Punkts.

color

Die Linienfarbe. Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Zeichnen einer dicken Linie

<?php

function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
    /* so funktioniert es nur gut für orthogonale Linien
    imagesetthickness($image, $thick);
    return imageline($image, $x1, $y1, $x2, $y2, $color);
    */
    if ($thick == 1) {
        return imageline($image, $x1, $y1, $x2, $y2, $color);
    }
    $t = $thick / 2 - 0.5;
    if ($x1 == $x2 || $y1 == $y2) {
        return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);
    }
    $k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
    $a = $t / sqrt(1 + pow($k, 2));
    $points = array(
        round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
        round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
        round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
        round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
    );
    imagefilledpolygon($image, $points, 4, $color);
    return imagepolygon($image, $points, 4, $color);
}

?>

Siehe auch

  • imagecreatetruecolor() - Create a new true color image
  • imagecolorallocate() - Alloziert eine Farbe für eine Grafik


Lädt eine neue Schriftart

  • « imageline
  • imageopenpolygon »
  • PHP Manual
  • GD- und Image-Funktionen
  • Lädt eine neue Schriftart

imageloadfont

(PHP 4, PHP 5, PHP 7, PHP 8)

imageloadfont — Lädt eine neue Schriftart

Beschreibung

imageloadfont ( string $file ) : int

ImageLoadFont() lädt eine benutzerdefinierte Bitmap-Schriftart und gibt deren Kennung zurück.

Parameter-Liste

file

Das Scrhiftart-Dateiformat ist zurzeit ein architekturabhängiges, binäres Format. Das bedeutet, dass Schriftart-Dateien immer auf der selben Architektur erzeugen müssen, auf dem diese verwendet werden sollen.

Scrhiftart-Dateiformat
Byte-Position | C Daten-Typ | Beschreibung
Byte 0-3 | int | Anzahl der Zeichen der Schriftart
Byte 4-7 | int | Wert des ersten Zeichens der Schriftart (meist 32 für Leerzeichen)
Byte 8-11 | int | Pixel-Breite jedes Zeichens
Byte 12-15 | int | Pixel-Höhe jedes Zeichens
Byte 16- | char | Zeichen-Daten als Array, ein Byte je Pixel für jedes Zeichen; in der Summe also (Anzahl-Zeichen * Breite * Höhe)-Bytes.

Rückgabewerte

Die Schriftartkennung, die immer größer als 5 ist, um Konflikte mit den integrierten Schriftarten zu verhindern, oder false im Fehlerfall.

Beispiele

Beispiel #1 imageloadfont() Verwendungsbeispiel

<?php
// Erzeuge ein neues Bild
$im = imagecreatetruecolor(50, 20);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Färbe den Hintergrund weiß
imagefilledrectangle($im, 0, 0, 49, 19, $white);

// Lade die GD-Schriftart und schreibe 'Hallo'
$font = imageloadfont('./04b.gdf');
imagestring($im, $font, 0, 0, 'Hallo', $black);

// Ausgabe an Browser
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Siehe auch

  • imagefontwidth() - Ermittle die Breite einer Schriftart
  • imagefontheight() - Ermittle die Höhe einer Schriftart


Draws an open polygon

  • « imageloadfont
  • imagepalettecopy »
  • PHP Manual
  • GD- und Image-Funktionen
  • Draws an open polygon

imageopenpolygon

(PHP 7 >= 7.2.0, PHP 8)

imageopenpolygon — Draws an open polygon

Beschreibung

imageopenpolygon ( resource $image , array $points , int $num_points , int $color ) : bool

Alternative signature (as of PHP 8.0.0)

imageopenpolygon ( resource $image , array $points , int $color ) : bool

imageopenpolygon() draws an open polygon on the given image. Contrary to imagepolygon(), no line is drawn between the last and the first point.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

points

An array containing the polygon's vertices, e.g.:

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Total number of points (vertices), which must be at least 3.

If this parameter is omitted as per the second signature, points must have an even number of elements, and num_points is assumed to be count($points)/2.
color

Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imageopenpolygon() example

<?php
// Create a blank image
$image = imagecreatetruecolor(400, 300);

// Allocate a color for the polygon
$col_poly = imagecolorallocate($image, 255, 255, 255);

// Draw the polygon
imageopenpolygon($image, array(
        0,   0,
        100, 200,
        300, 200
    ),
    3,
    $col_poly);

// Output the picture to the browser
header('Content-type: image/png');

imagepng($image);
imagedestroy($image);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : imageopenpolygon()

Siehe auch

  • imagepolygon() - Zeichne eine Polygon


Copy the palette from one image to another

  • « imageopenpolygon
  • imagepalettetotruecolor »
  • PHP Manual
  • GD- und Image-Funktionen
  • Copy the palette from one image to another

imagepalettecopy

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagepalettecopy — Copy the palette from one image to another

Beschreibung

imagepalettecopy ( resource $destination , resource $source ) : void

imagepalettecopy() copies the palette from the source image to the destination image.

Parameter-Liste

destination

The destination image resource.

source

The source image resource.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 imagepalettecopy() example

<?php
// Create two palette images
$palette1 = imagecreate(100, 100);
$palette2 = imagecreate(100, 100);

// Allocate the background to be
// green in the first palette image
$green = imagecolorallocate($palette1, 0, 255, 0);

// Copy the palette from image 1 to image 2
imagepalettecopy($palette2, $palette1);

// Since the palette is now copied we can use the
// green color allocated to image 1 without using
// imagecolorallocate() twice
imagefilledrectangle($palette2, 0, 0, 99, 99, $green);

// Output image to the browser
header('Content-type: image/png');

imagepng($palette2);
imagedestroy($palette1);
imagedestroy($palette2);
?>


Converts a palette based image to true color

  • « imagepalettecopy
  • imagepng »
  • PHP Manual
  • GD- und Image-Funktionen
  • Converts a palette based image to true color

imagepalettetotruecolor

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagepalettetotruecolor — Converts a palette based image to true color

Beschreibung

imagepalettetotruecolor ( resource $src ) : bool

Converts a palette based image, created by functions like imagecreate() to a true color image, like imagecreatetruecolor().

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

Rückgabewerte

Returns true if the convertion was complete, or if the source image already is a true color image, otherwise false is returned.

Beispiele

Beispiel #1 Converts any image resource to true color

<?php
// Backwards compatiblity
if(!function_exists('imagepalettetotruecolor'))
{
    function imagepalettetotruecolor(&$src)
    {
        if(imageistruecolor($src))
        {
            return(true);
        }

        $dst = imagecreatetruecolor(imagesx($src), imagesy($src));

        imagecopy($dst, $src, 0, 0, 0, 0, imagesx($src), imagesy($src));
        imagedestroy($src);

        $src = $dst;

        return(true);
    }
}

// Helper closure
$typeof = function() use($im)
{
    echo 'typeof($im) = ' . (imageistruecolor($im) ? 'true color' : 'palette'), PHP_EOL;
};

// Create a palette based image
$im = imagecreate(100, 100);
$typeof();

// Convert it to true color
imagepalettetotruecolor($im);
$typeof();

// Free the memory
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

typeof($im) = palette
typeof($im) = true color

Siehe auch

  • imagecreatetruecolor() - Create a new true color image
  • imageistruecolor() - Finds whether an image is a truecolor image


Ausgabe eines Bildes im Browser oder als Datei im PNG-Format

  • « imagepalettetotruecolor
  • imagepolygon »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ausgabe eines Bildes im Browser oder als Datei im PNG-Format

imagepng

(PHP 4, PHP 5, PHP 7, PHP 8)

imagepng — Ausgabe eines Bildes im Browser oder als Datei im PNG-Format

Beschreibung

imagepng ( resource $image , mixed $to = null , int $quality = -1 , int $filters = -1 ) : bool

Erzeugt eine PNG-Datei aus dem übergebenen image oder gibt diese direkt aus.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

to

Der Pfad unter dem das Bild gespeichert werden soll. Ist dies nicht gesetzt oder null wird der rohe Bilddatenstrom direkt ausgegeben.

Hinweis:

null ist ungültig, wenn die Parameter quality und filters nicht übergeben werden.

quality

Kompressionsstufe: Von 0 (keine Kompression) bis 9. Die Voreinstellung (-1) verwendet die voreingestellte zlib Komprimierung. Die derzeitige Voreinstellung ist 6. Weitere Informationen sind dem » zlib Handbuch zu entnehmen.

filters

Erlaubt einer Verkleinerung der PNG-Dateigröße. Dies ist ein Bitfeld, welches beliebig aus den PNG_FILTER_XXX-Konstanten zusammengesetzt werden kann. PNG_NO_FILTER oder PNG_ALL_FILTERS können verwendet werden, um entweder alle Filter aus- oder einzuschalten. Der Vorgabewert (-1) deaktiviert die Filterung.

Achtung

Der filters Parameter wird von der System-libgd ignoriert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Achtung

However, if libgd fails to output the image, this function returns true.

Beispiele

<?php
$im = imagecreatefrompng("test.png");

header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Siehe auch

  • imagegif() - Gibt das Bild im Browser oder einer Datei aus.
  • imagewbmp() - Gibt das Bild im Browser oder einer Datei aus.
  • imagejpeg() - Gibt das Bild im Browser oder einer Datei aus.
  • imagetypes() - Gib die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück
  • imagesavealpha() - Ob beim Speichern von PNG-Bildern vollständige Alphakanal-Information erhalten wird


Zeichne eine Polygon

  • « imagepng
  • imagerectangle »
  • PHP Manual
  • GD- und Image-Funktionen
  • Zeichne eine Polygon

imagepolygon

(PHP 4, PHP 5, PHP 7, PHP 8)

imagepolygon — Zeichne eine Polygon

Beschreibung

imageopenpolygon ( resource $image , array $points , int $num_points , int $color ) : bool

imagepolygon() erzeugt ein Polygon in dem angegebenen image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

points

Ein Array, dass die Eckpunkte des Polygons enthält, z.B.:

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Die Anzahl der Eckpunkte, die wenigstens 3 sein muss.

color

Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagepolygon() example

<?php
// Create a blank image
$image = imagecreatetruecolor(400, 300);

// Allocate a color for the polygon
$col_poly = imagecolorallocate($image, 255, 255, 255);

// Draw the polygon
imagepolygon($image, array(
        0,   0,
        100, 200,
        300, 200
    ),
    3,
    $col_poly);

// Output the picture to the browser
header('Content-type: image/png');

imagepng($image);
imagedestroy($image);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : imagepolygon()

Siehe auch

  • imagefilledpolygon() - Zeichne ein gefülltes Polygon
  • imageopenpolygon() - Draws an open polygon
  • imagecreate() - Erzeugt ein neues Paletten-Bild
  • imagecreatetruecolor() - Create a new true color image


Zeichne ein Rechteck

  • « imagepolygon
  • imageresolution »
  • PHP Manual
  • GD- und Image-Funktionen
  • Zeichne ein Rechteck

imagerectangle

(PHP 4, PHP 5, PHP 7, PHP 8)

imagerectangle — Zeichne ein Rechteck

Beschreibung

imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color ) : bool

imagerectangle() erzeugt ein Rechteck mit den angegebenen Koordinaten.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

x1

Obere linke x-Koordinate.

y1

Obere linke y-Koordinate. 0,0 ist die obere linke Ecke des Bildes.

x2

Untere rechte x-Koordinate.

y2

Untere rechte y-Koordinate.

color

Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Einfaches imagerectangle() Beispiel

<?php
// Erzeuge ein 200 x 200 Bild
$canvas = imagecreatetruecolor(200, 200);

// Alloziere Farben
$pink = imagecolorallocate($canvas, 255, 105, 180);
$white = imagecolorallocate($canvas, 255, 255, 255);
$green = imagecolorallocate($canvas, 132, 135, 28);

// Zeichne drei Rechtecke mit unterschiedlicher Farbe
imagerectangle($canvas, 50, 50, 150, 150, $pink);
imagerectangle($canvas, 45, 60, 120, 100, $white);
imagerectangle($canvas, 100, 120, 75, 160, $green);

// Ausgabe und Speicherbereinigung
header('Content-Type: image/jpeg');

imagejpeg($canvas);
imagedestroy($canvas);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : Einfaches imagerectangle() Beispiel


Get or set the resolution of the image

  • « imagerectangle
  • imagerotate »
  • PHP Manual
  • GD- und Image-Funktionen
  • Get or set the resolution of the image

imageresolution

(PHP 7 >= 7.2.0, PHP 8)

imageresolution — Get or set the resolution of the image

Beschreibung

imageresolution ( resource $image ) : mixed
imageresolution ( resource $image , int $res_x , int $res_y = $res_x ) : mixed

imageresolution() allows to set and get the resolution of an image in DPI (dots per inch). If none of the optional parameters is given, the current resolution is returned as indexed array. If only res_x is given, the horizontal and vertical resolution are set to this value. If both optional parameters are given, the horizontal and vertical resolution are set to these values, respectively.

The resolution is only used as meta information when images are read from and written to formats supporting this kind of information (curently PNG and JPEG). It does not affect any drawing operations. The default resolution for new images is 96 DPI.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

res_x

The horizontal resolution in DPI.

res_y

The vertical resolution in DPI.

Rückgabewerte

When used as getter (first signature), it returns an indexed array of the horizontal and vertical resolution on success, Im Fehlerfall wird false zurückgegeben.. When used as setter (second signature), it returns true on success, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Setting and getting the resolution of an image

<?php
$im = imagecreatetruecolor(100, 100);
imageresolution($im, 200);
print_r(imageresolution($im));
imageresolution($im, 300, 72);
print_r(imageresolution($im));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => 200
    [1] => 200
)
Array
(
    [0] => 300
    [1] => 72
)


Rotate an image with a given angle

  • « imageresolution
  • imagesavealpha »
  • PHP Manual
  • GD- und Image-Funktionen
  • Rotate an image with a given angle

imagerotate

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

imagerotate — Rotate an image with a given angle

Beschreibung

imagerotate ( resource $image , float $angle , int $bgd_color , int $dummy = 0 ) : resource|false

Rotates the image image using the given angle in degrees.

The center of rotation is the center of the image, and the rotated image may have different dimensions than the original image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

angle

Rotation angle, in degrees. The rotation angle is interpreted as the number of degrees to rotate the image anticlockwise.

bgd_color

Specifies the color of the uncovered zone after the rotation

dummy

This parameter is unused.

Rückgabewerte

Returns an image resource for the rotated image, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Rotate an image 180 degrees

This example rotates an image 180 degrees - upside down.

<?php
// File and rotation
$filename = 'test.jpg';
$degrees = 180;

// Content type
header('Content-type: image/jpeg');

// Load
$source = imagecreatefromjpeg($filename);

// Rotate
$rotate = imagerotate($source, $degrees, 0);

// Output
imagejpeg($rotate);

// Free the memory
imagedestroy($source);
imagedestroy($rotate);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Rotate an image 180 degrees

Anmerkungen

Hinweis:

Diese Funktion wird von der mittels imagesetinterpolation() eingestellten Interpolationsmethode beeinflusst.

Siehe auch

  • imagesetinterpolation() - Set the interpolation method


Ob beim Speichern von PNG-Bildern vollständige Alphakanal-Information erhalten wird

  • « imagerotate
  • imagescale »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ob beim Speichern von PNG-Bildern vollständige Alphakanal-Information erhalten wird

imagesavealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

imagesavealpha — Ob beim Speichern von PNG-Bildern vollständige Alphakanal-Information erhalten wird

Beschreibung

imagesavealpha ( resource $image , bool $saveflag ) : bool

imagesavealpha() setzt das Flag, das bestimmt, ob beim Speichern von PNG-Bildern vollständige Alphakanal-Information (im Gegensatz zu Einfarb-Transparenz) erhalten wird.

Alphablending muss deaktiviert sein (imagealphablending($im, false)), um den Alphakanal überhaupt zu erhalten.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

saveflag

Ob der Alphakanal gespeichert werden soll, oder nicht. Die Voreinstellung ist false.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Grundlegende imagesavealpha() Verwendung

<?php
// Lade ein PNG-Bild mit Alphakanal
$png = imagecreatefrompng('./alphachannel_example.png');

// Deaktiviere das Alphablending
imagealphablending($png, false);

// Führe die gewünschten Operationen durch

// Setze das Alphakanal-Flag
imagesavealpha($png, true);

// Gibt das Bild zum Browser aus
header('Content-Type: image/png');

imagepng($png);
imagedestroy($png);
?>

Siehe auch

  • imagealphablending() - Set the blending mode for an image


Scale an image using the given new width and height

  • « imagesavealpha
  • imagesetbrush »
  • PHP Manual
  • GD- und Image-Funktionen
  • Scale an image using the given new width and height

imagescale

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagescale — Scale an image using the given new width and height

Beschreibung

imagescale ( resource $image , int $new_width , int $new_height = -1 , int $mode = IMG_BILINEAR_FIXED ) : resource|false

imagescale() scales an image using the given interpolation algorithm.

Hinweis:

Unlike many of other image functions, imagescale() does not modify the passed image; instead, a new image is returned.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

new_width

The width to scale the image to.

new_height

The height to scale the image to. If omitted or negative, the aspect ratio will be preserved.

mode

One of IMG_NEAREST_NEIGHBOUR, IMG_BILINEAR_FIXED, IMG_BICUBIC, IMG_BICUBIC_FIXED or anything else (will use two pass).

Hinweis: IMG_WEIGHTED4 is not yet supported.

Rückgabewerte

Return the scaled image resource on successIm Fehlerfall wird false zurückgegeben..

Siehe auch

  • imagecopyresized() - Kopieren und Ändern der Größe eines Bild-Teiles
  • imagecopyresampled() - Copy and resize part of an image with resampling


Set the brush image for line drawing

  • « imagescale
  • imagesetclip »
  • PHP Manual
  • GD- und Image-Funktionen
  • Set the brush image for line drawing

imagesetbrush

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagesetbrush — Set the brush image for line drawing

Beschreibung

imagesetbrush ( resource $image , resource $brush ) : bool

imagesetbrush() sets the brush image to be used by all line drawing functions (such as imageline() and imagepolygon()) when drawing with the special colors IMG_COLOR_BRUSHED or IMG_COLOR_STYLEDBRUSHED.

Achtung

You need not take special action when you are finished with a brush, but if you destroy the brush image (or let PHP destroy it), you must not use the IMG_COLOR_BRUSHED or IMG_COLOR_STYLEDBRUSHED colors until you have set a new brush image!

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

brush

An image resource.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagesetbrush() example

<?php
// Load a mini php logo
$php = imagecreatefrompng('./php.png');

// Create the main image, 100x100
$im = imagecreatetruecolor(100, 100);

// Fill the background with white
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 299, 99, $white);

// Set the brush
imagesetbrush($im, $php);

// Draw a couple of brushes, each overlaying each
imageline($im, 50, 50, 50, 60, IMG_COLOR_BRUSHED);

// Output image to the browser
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($php);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : imagesetbrush()


Set the clipping rectangle

  • « imagesetbrush
  • imagesetinterpolation »
  • PHP Manual
  • GD- und Image-Funktionen
  • Set the clipping rectangle

imagesetclip

(PHP 7 >= 7.2.0, PHP 8)

imagesetclip — Set the clipping rectangle

Beschreibung

imagesetclip ( resource $im , int $x1 , int $y1 , int $x2 , int $y2 ) : bool

imagesetclip() sets the current clipping rectangle, i.e. the area beyond which no pixels will be drawn.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

x1

The x-coordinate of the upper left corner.

y1

The y-coordinate of the upper left corner.

x2

The x-coordinate of the lower right corner.

y2

The y-coordinate of the lower right corner.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • imagegetclip() - Get the clipping rectangle


Set the interpolation method

  • « imagesetclip
  • imagesetpixel »
  • PHP Manual
  • GD- und Image-Funktionen
  • Set the interpolation method

imagesetinterpolation

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagesetinterpolation — Set the interpolation method

Beschreibung

imagesetinterpolation ( resource $image , int $method = IMG_BILINEAR_FIXED ) : bool

Sets the interpolation method, setting an interpolation method affects the rendering of various functions in GD, such as the imagerotate() function.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

method

The interpolation method, which can be one of the following:

  • IMG_BELL: Bell filter.
  • IMG_BESSEL: Bessel filter.
  • IMG_BICUBIC: Bicubic interpolation.
  • IMG_BICUBIC_FIXED: Fixed point implementation of the bicubic interpolation.
  • IMG_BILINEAR_FIXED: Fixed point implementation of the bilinear interpolation (default (also on image creation)).
  • IMG_BLACKMAN: Blackman window function.
  • IMG_BOX: Box blur filter.
  • IMG_BSPLINE: Spline interpolation.
  • IMG_CATMULLROM: Cubic Hermite spline interpolation.
  • IMG_GAUSSIAN: Gaussian function.
  • IMG_GENERALIZED_CUBIC: Generalized cubic spline fractal interpolation.
  • IMG_HERMITE: Hermite interpolation.
  • IMG_HAMMING: Hamming filter.
  • IMG_HANNING: Hanning filter.
  • IMG_MITCHELL: Mitchell filter.
  • IMG_POWER: Power interpolation.
  • IMG_QUADRATIC: Inverse quadratic interpolation.
  • IMG_SINC: Sinc function.
  • IMG_NEAREST_NEIGHBOUR: Nearest neighbour interpolation.
  • IMG_WEIGHTED4: Weighting filter.
  • IMG_TRIANGLE: Triangle interpolation.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagesetinterpolation() example

<?php
// Load an image
$im = imagecreate(500, 500);

// By default interpolation is IMG_BILINEAR_FIXED, switch
// to use the 'Mitchell' filter:
imagesetinterpolation($im, IMG_MITCHELL);

// Continue to work with $im ...
?>

Anmerkungen

Changing the interpolation method affects the following functions when rendering:

  • imageaffine()
  • imagerotate()

Siehe auch

  • imagegetinterpolation() - Get the interpolation method


Setze ein einzelnes Pixel

  • « imagesetinterpolation
  • imagesetstyle »
  • PHP Manual
  • GD- und Image-Funktionen
  • Setze ein einzelnes Pixel

imagesetpixel

(PHP 4, PHP 5, PHP 7, PHP 8)

imagesetpixel — Setze ein einzelnes Pixel

Beschreibung

imagesetpixel ( resource $image , int $x , int $y , int $color ) : bool

imagesetpixel() zeichnet ein Pixel an der angegebenen Koordinate.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

x

x-Koordinate.

y

y-Koordinate.

color

Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagesetpixel() Beispiel

Eine zufällige Zeichnung, die mit einem normalen Bild endet.

<?php

$x = 200;
$y = 200;

$gd = imagecreatetruecolor($x, $y);

$corners[0] = array('x' => 100, 'y' =>  10);
$corners[1] = array('x' =>   0, 'y' => 190);
$corners[2] = array('x' => 200, 'y' => 190);

$red = imagecolorallocate($gd, 255, 0, 0);

for ($i = 0; $i < 100000; $i++) {
  imagesetpixel($gd, round($x),round($y), $red);
  $a = rand(0, 2);
  $x = ($x + $corners[$a]['x']) / 2;
  $y = ($y + $corners[$a]['y']) / 2;
}

header('Content-Type: image/png');
imagepng($gd);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : imagesetpixel()

Siehe auch

  • imagecreatetruecolor() - Create a new true color image
  • imagecolorallocate() - Alloziert eine Farbe für eine Grafik
  • imagecolorat() - Ermittelt den Farbwert eines Bildpunktes


Set the style for line drawing

  • « imagesetpixel
  • imagesetthickness »
  • PHP Manual
  • GD- und Image-Funktionen
  • Set the style for line drawing

imagesetstyle

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagesetstyle — Set the style for line drawing

Beschreibung

imagesetstyle ( resource $image , array $style ) : bool

imagesetstyle() sets the style to be used by all line drawing functions (such as imageline() and imagepolygon()) when drawing with the special color IMG_COLOR_STYLED or lines of images with color IMG_COLOR_STYLEDBRUSHED.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

style

An array of pixel colors. You can use the IMG_COLOR_TRANSPARENT constant to add a transparent pixel. Note that style must not be an empty array.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Following example script draws a dashed line from upper left to lower right corner of the canvas:

Beispiel #1 imagesetstyle() example

<?php
header("Content-type: image/jpeg");
$im  = imagecreatetruecolor(100, 100);
$w   = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

/* Draw a dashed line, 5 red pixels, 5 white pixels */
$style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);
imagesetstyle($im, $style);
imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);

/* Draw a line of happy faces using imagesetbrush() with imagesetstyle */
$style = array($w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $red);
imagesetstyle($im, $style);

$brush = imagecreatefrompng("http://www.libpng.org/pub/png/images/smile.happy.png");
$w2 = imagecolorallocate($brush, 255, 255, 255);
imagecolortransparent($brush, $w2);
imagesetbrush($im, $brush);
imageline($im, 100, 0, 0, 100, IMG_COLOR_STYLEDBRUSHED);

imagejpeg($im);
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : imagesetstyle()

Siehe auch

  • imagesetbrush() - Set the brush image for line drawing
  • imageline() - Zeichne eine Linie


Set the thickness for line drawing

  • « imagesetstyle
  • imagesettile »
  • PHP Manual
  • GD- und Image-Funktionen
  • Set the thickness for line drawing

imagesetthickness

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagesetthickness — Set the thickness for line drawing

Beschreibung

imagesetthickness ( resource $image , int $thickness ) : bool

imagesetthickness() sets the thickness of the lines drawn when drawing rectangles, polygons, arcs etc. to thickness pixels.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

thickness

Thickness, in pixels.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagesetthickness() example

<?php
// Create a 200x100 image
$im = imagecreatetruecolor(200, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Set the background to be white
imagefilledrectangle($im, 0, 0, 299, 99, $white);

// Set the line thickness to 5
imagesetthickness($im, 5);

// Draw the rectangle
imagerectangle($im, 14, 14, 185, 85, $black);

// Output image to the browser
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : imagesetthickness()


Set the tile image for filling

  • « imagesetthickness
  • imagestring »
  • PHP Manual
  • GD- und Image-Funktionen
  • Set the tile image for filling

imagesettile

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagesettile — Set the tile image for filling

Beschreibung

imagesettile ( resource $image , resource $tile ) : bool

imagesettile() sets the tile image to be used by all region filling functions (such as imagefill() and imagefilledpolygon()) when filling with the special color IMG_COLOR_TILED.

A tile is an image used to fill an area with a repeated pattern. Any GD image can be used as a tile, and by setting the transparent color index of the tile image with imagecolortransparent(), a tile allows certain parts of the underlying area to shine through can be created.

Achtung

You need not take special action when you are finished with a tile, but if you destroy the tile image (or let PHP destroy it), you must not use the IMG_COLOR_TILED color until you have set a new tile image!

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

tile

The image resource to be used as a tile.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagesettile() example

<?php
// Load an external image
$zend = imagecreatefromgif('./zend.gif');

// Create a 200x200 image
$im = imagecreatetruecolor(200, 200);

// Set the tile
imagesettile($im, $zend);

// Make the image repeat
imagefilledrectangle($im, 0, 0, 199, 199, IMG_COLOR_TILED);

// Output image to the browser
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($zend);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : imagesettile()


Zeichne einen horizontalen String

  • « imagesettile
  • imagestringup »
  • PHP Manual
  • GD- und Image-Funktionen
  • Zeichne einen horizontalen String

imagestring

(PHP 4, PHP 5, PHP 7, PHP 8)

imagestring — Zeichne einen horizontalen String

Beschreibung

imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color ) : bool

Zeichnet einen string an den angegebenen Koordinaten.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

font

Ein Wert zwischen 1 und 5 für eingebaute Schriftarten in Latin2-Kodierung (wobei größere Werte größeren Schriften entsprechen) oder einer Ihrer mit imageloadfont() selbst registrierten Schrifteinträge.

x

x-Koordinate der oberen linke Ecke.

y

y-Koordinate der oberen linken Ecke.

string

Die zu schreibende Zeichenkette.

color

Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagestring() Beispiel

<?php
// Erzeuge ein 100*30 Bild
$im = imagecreate(100, 30);

// Weißer Hintergrund und blauer Text
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);

// Schreibe die Zeichenkette oben links
imagestring($im, 5, 0, 0, 'Hello world!', $textcolor);

// Gib das Bild aus
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : imagestring()

Siehe auch

  • imagestringup() - Zeichne einen vertikalen String
  • imageloadfont() - Lädt eine neue Schriftart
  • imagettftext() - Schreibe Text ins Bild unter Verwendung von True-Type-Schriftarten


Zeichne einen vertikalen String

  • « imagestring
  • imagesx »
  • PHP Manual
  • GD- und Image-Funktionen
  • Zeichne einen vertikalen String

imagestringup

(PHP 4, PHP 5, PHP 7, PHP 8)

imagestringup — Zeichne einen vertikalen String

Beschreibung

imagestringup ( resource $image , int $font , int $x , int $y , string $string , int $color ) : bool

Zeichnet einen string vertikal an den angegebene Koordinaten.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

font

Ein Wert zwischen 1 und 5 für eingebaute Schriftarten in Latin2-Kodierung (wobei größere Werte größeren Schriften entsprechen) oder einer Ihrer mit imageloadfont() selbst registrierten Schrifteinträge.

x

x-Koordinate der unteren linken Ecke.

y

y-Koordinate der unteren linken Ecke.

string

Die zu schreibende Zeichenkette.

color

Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagestringup() Beispiel

<?php
// Erzeuge ein 100*100 Bild
$im = imagecreatetruecolor(100, 100);

// Schreibe den Text
$textcolor = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
imagestringup($im, 3, 40, 80, 'gd library', $textcolor);

// Speichere das Bild
imagepng($im, './stringup.png');
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : imagestringup()

Siehe auch

  • imagestring() - Zeichne einen horizontalen String
  • imageloadfont() - Lädt eine neue Schriftart


Ermittle die Bild-Breite

  • « imagestringup
  • imagesy »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittle die Bild-Breite

imagesx

(PHP 4, PHP 5, PHP 7, PHP 8)

imagesx — Ermittle die Bild-Breite

Beschreibung

imagesx ( resource $image ) : int

Gibt die Breite der angegebenen image Ressource zurück.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

Rückgabewerte

Gibt die Breite des image zurück, oder false im Fehlerfall.

Beispiele

Beispiel #1 Verwenden von imagesx()

<?php

// Erzeuge ein 300*200 Bild
$img = imagecreatetruecolor(300, 200);

echo imagesx($img); // 300

?>

Siehe auch

  • imagecreatetruecolor() - Create a new true color image
  • getimagesize() - Ermittelt die Größe einer Grafik
  • imagesy() - Ermittle die Bild-Höhe


Ermittle die Bild-Höhe

  • « imagesx
  • imagetruecolortopalette »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittle die Bild-Höhe

imagesy

(PHP 4, PHP 5, PHP 7, PHP 8)

imagesy — Ermittle die Bild-Höhe

Beschreibung

imagesy ( resource $image ) : int

Gibt die Höhe der angegebenen image Ressource zurück.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

Rückgabewerte

Gibt die Höhe des image zurück, oder false im Fehlerfall.

Beispiele

Beispiel #1 Verwenden von imagesy()

<?php

// Erzeuge ein 300*200 Bild
$img = imagecreatetruecolor(300, 200);

echo imagesy($img); // 200

?>

Siehe auch

  • imagecreatetruecolor() - Create a new true color image
  • getimagesize() - Ermittelt die Größe einer Grafik
  • imagesx() - Ermittle die Bild-Breite


Convert a true color image to a palette image

  • « imagesy
  • imagettfbbox »
  • PHP Manual
  • GD- und Image-Funktionen
  • Convert a true color image to a palette image

imagetruecolortopalette

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagetruecolortopalette — Convert a true color image to a palette image

Beschreibung

imagetruecolortopalette ( resource $image , bool $dither , int $ncolors ) : bool

imagetruecolortopalette() converts a truecolor image to a palette image. The code for this function was originally drawn from the Independent JPEG Group library code, which is excellent. The code has been modified to preserve as much alpha channel information as possible in the resulting palette, in addition to preserving colors as well as possible. This does not work as well as might be hoped. It is usually best to simply produce a truecolor output image instead, which guarantees the highest output quality.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

dither

Indicates if the image should be dithered - if it is true then dithering will be used which will result in a more speckled image but with better color approximation.

ncolors

Sets the maximum number of colors that should be retained in the palette.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Converting a true color image to a palette-based image

<?php
// Create a new true color image
$im = imagecreatetruecolor(100, 100);

// Convert to palette-based with no dithering and 255 colors
imagetruecolortopalette($im, false, 255);

// Save the image
imagepng($im, './paletteimage.png');
imagedestroy($im);
?>


Ermittle das umgebende Rechteck eines Textes unter Verwendung von True-Type Schriftarten

  • « imagetruecolortopalette
  • imagettftext »
  • PHP Manual
  • GD- und Image-Funktionen
  • Ermittle das umgebende Rechteck eines Textes unter Verwendung von True-Type Schriftarten

imagettfbbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imagettfbbox — Ermittle das umgebende Rechteck eines Textes unter Verwendung von True-Type Schriftarten

Beschreibung

imagettfbbox ( float $size , float $angle , string $fontfile , string $text ) : array

Diese Funktion errechnet die Größe des Bereichs für eine True-Type-Textausgabe.

Hinweis:

imageftbbox() ist eine erweiterte Variante von imagettfbbox(), die zusätzlich den extrainfo Parameter unterstützt.

Parameter-Liste

size

Die Schriftgröße in Punkten.

angle

Der Winkel in Grad in dem text vermessen wird.

fontfile

The path to the TrueType font you wish to use.

Depending on which version of the GD library PHP is using, when fontfile does not begin with a leading / then .ttf will be appended to the filename and the library will attempt to search for that filename along a library-defined font path.

When using versions of the GD library lower than 2.0.18, a space character, rather than a semicolon, was used as the 'path separator' for different font files. Unintentional use of this feature will result in the warning message: Warning: Could not find/open font. For these affected versions, the only solution is moving the font to a path which does not contain spaces.

In many cases where a font resides in the same directory as the script using it the following trick will alleviate any include problems.

<?php
// Set the environment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>

Hinweis:

Note that open_basedir does not apply to fontfile.

text

Die zu vermessende Zeichenkette.

Rückgabewerte

imagettfbbox() gibt im Erfolgsfall ein Array mit 8 Elementen zurück, die die vier Punkte des umgebenden Rechtecks des Texts repräsentieren, und false im Fehlerfall.

Schlüssel | Wert
0 | untere linke Ecke, x-Koordinate
1 | untere linke Ecke, y-Koordinate
2 | untere rechte Ecke, x-Koordinate
3 | untere rechte Ecke, y-Koordinate
4 | obere rechte Ecke, x-Koordinate
5 | obere rechte Ecke, y-Koordinate
6 | obere linke Ecke, x-Koordinate
7 | obere linke Ecke, y-Koordinate

Die Punkt sind relativ zum Text, unabhängig vom angle, so dass "obere linke Ecke" bedeutet "in der oberen linken Ecke, wenn der Text horizontal gesehen wird".

Beispiele

Beispiel #1 imagettfbbox() Beispiel

<?php
// Erzeuge ein 300x150 Bild
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Weißer Hintergrund
imagefilledrectangle($im, 0, 0, 299, 299, $white);

// Pfad der Schriftartdatei
$font = './arial.ttf';

// Zunächst ermitteln wir das umgebende Rechteck für den ersten Text
$bbox = imagettfbbox(10, 45, $font, 'Powered by PHP ' . phpversion());

// Dies sind die x- und y-Koordinaten
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Schreibe
imagettftext($im, 10, 45, $x, $y, $black, $font, 'Powered by PHP ' . phpversion());

// Ermittle das umgebende Rechteck für den zweiten Text
$bbox = imagettfbbox(10, 45, $font, 'and Zend Engine ' . zend_version());

// Berechne die Koordinaten, so dass es neben dem ersten Text ist
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Schreibe
imagettftext($im, 10, 45, $x, $y, $black, $font, 'and Zend Engine ' . zend_version());

// Ausgabe an den Browser
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Anmerkungen

Hinweis: Diese Funktion ist nur verfügbar wenn PHP mit Freetype unterstützung (--with-freetype-dir=DIR) kompiliert wurde

Siehe auch

  • imagettftext() - Schreibe Text ins Bild unter Verwendung von True-Type-Schriftarten
  • imageftbbox() - Give the bounding box of a text using fonts via freetype2


Schreibe Text ins Bild unter Verwendung von True-Type-Schriftarten

  • « imagettfbbox
  • imagetypes »
  • PHP Manual
  • GD- und Image-Funktionen
  • Schreibe Text ins Bild unter Verwendung von True-Type-Schriftarten

imagettftext

(PHP 4, PHP 5, PHP 7, PHP 8)

imagettftext — Schreibe Text ins Bild unter Verwendung von True-Type-Schriftarten

Beschreibung

imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text ) : array

Schreibt den angegebenen text ins Bild unter Verwendung von True-Type-Schriftarten.

Hinweis:

imagefttext() ist eine erweiterte Variante von imagettftext(), die zusätzlich den extrainfo Parameter unterstützt.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

size

Die Schriftgröße in Punkten.

angle

Der Winkel in Grad, wobei 0 Grad von links nach rechts zu lesenden Text ergeben. Höhere Werte repräsentieren Rotation entgegen dem Uhrzeigersinn. Zum Beispiel resultiert ein Wert von 90 in von unten nach oben zu lesendem Text.

x

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. Zum Beispiel ist oben links 0, 0.

y

Die y-Koordinate. Diese legt die Position der Grundlinie der Schriftart fest, nicht den untersten Rand des Zeichens.

color

Der Farbindex. Die Verwendung des negativen Indexwerts schaltet das Antialiasing ab. Siehe imagecolorallocate().

fontfile

The path to the TrueType font you wish to use.

Depending on which version of the GD library PHP is using, when fontfile does not begin with a leading / then .ttf will be appended to the filename and the library will attempt to search for that filename along a library-defined font path.

When using versions of the GD library lower than 2.0.18, a space character, rather than a semicolon, was used as the 'path separator' for different font files. Unintentional use of this feature will result in the warning message: Warning: Could not find/open font. For these affected versions, the only solution is moving the font to a path which does not contain spaces.

In many cases where a font resides in the same directory as the script using it the following trick will alleviate any include problems.

<?php
// Set the environment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>

Hinweis:

Note that open_basedir does not apply to fontfile.

text

Die UTF8 kodierte Text-Zeichenkette.

Kann dezimale numerische Zeichen-Entity-Referenzen (in der Form &#8364;) enthalten, um Zeichen außerhalb des ASCII-Bereiches zu referenzieren. Das hexadizimale Format (wie &#xA9;) wird ebenfalls unterstützt. UTF-8 kodierte Zeichenkette können direkt übergeben werden.

Benannte Zeichen-Entity-Referenzen, wie &copy;, werden nicht unterstützt. html_entity_decode() kann verwendet werden, um diese Zeichen-Entity-Referenzen nach UTF-8 zu konvertieren.

Wird ein Zeichen in der Zeichenkette verwendet, das von der Schriftart nicht untersützt wird, wird es durch ein hohles Rechteck ersetzt.

Rückgabewerte

Gibt ein Array mit 8 Elementen zurück, die die vier Punkte des umgebenden Rechtecks des Textes repräsentieren. Die Reihenfolge der Punkte ist unten links, unten rechts, oben rechts und oben links. Die Punkt sind relativ zum Text, unabhängig vom Winkel, so dass "obere linke Ecke" bedeutet "in der oberen linken Ecke, wenn der Text horizontal gesehen wird". Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imagettftext() Beispiel

Dieses Beispielskript erzeugt ein weißes 400x30 Pixel großes PNG mit dem Text "Testing..." in schwarz (mit grauem Schatten) in der Schriftart Arial.

<?php
// Setze Content-Type
header('Content-Type: image/png');

// Erzeuge das Bild
$im = imagecreatetruecolor(400, 30);

// Erzeuge einige Farben
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// Der zu zeichnende Text
$text = 'Testing...';
// Bei Bedarf ist der Pfad anzupassen
$font = 'arial.ttf';

// Füge etwas Schatten zum Text hinzu
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Füge den Text hinzu
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Die Verwendung von imagepng() ergibt bessere Textqualität als imagejpeg()
imagepng($im);
imagedestroy($im);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ausgabe des Beispiels : imagettftext()

Anmerkungen

Hinweis: Diese Funktion ist nur verfügbar wenn PHP mit Freetype unterstützung (--with-freetype-dir=DIR) kompiliert wurde

Siehe auch

  • imagettfbbox() - Ermittle das umgebende Rechteck eines Textes unter Verwendung von True-Type Schriftarten
  • imagefttext() - Write text to the image using fonts using FreeType 2


Gib die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück

  • « imagettftext
  • imagewbmp »
  • PHP Manual
  • GD- und Image-Funktionen
  • Gib die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück

imagetypes

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

imagetypes — Gib die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück

Beschreibung

imagetypes ( ) : int

Gibt die Image-Formate, die von der aktuellen PHP-Installation unterstützt werden, zurück.

Rückgabewerte

Gibt ein Bitfeld zurück, das den von der verlinkten GD-Version unterstützten Image-Formaten entspricht. Die folgenden Bits werden zurückgegeben: IMG_BMP | IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM | IMG_WEBP.

Beispiele

Beispiel #1 Prüfe PNG-Unterstützung

<?php
if (imagetypes() & IMG_PNG) {
    echo "PNG wird unterstützt";
}
?>

Changelog

Version | Beschreibung
7.2.0 | IMG_BMP wurde hinzugefügt.
7.0.10 | IMG_WEBP wurde hinzugefügt.

Siehe auch

  • gd_info() - Ruft Informationen über die aktuell verwendete GD-Bibliothek ab


Gibt das Bild im Browser oder einer Datei aus.

  • « imagetypes
  • imagewebp »
  • PHP Manual
  • GD- und Image-Funktionen
  • Gibt das Bild im Browser oder einer Datei aus.

imagewbmp

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagewbmp — Gibt das Bild im Browser oder einer Datei aus.

Beschreibung

imagewbmp ( resource $image , mixed $to = null , int $foreground = ? ) : bool

imagewbmp() outputs or save a WBMP version of the given image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

to

Der Pfad unter dem das Bild gespeichert werden soll. Ist dies nicht gesetzt oder null wird der rohe Bilddatenstrom direkt ausgegeben.

foreground

You can set the foreground color with this parameter by setting an identifier obtained from imagecolorallocate(). The default foreground color is black.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Achtung

However, if libgd fails to output the image, this function returns true.

Beispiele

Beispiel #1 Outputting a WBMP image

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Set the content type header - in this case image/vnd.wap.wbmp
// Hint: see image_type_to_mime_type() for content-types
header('Content-Type: image/vnd.wap.wbmp');

// Output the image
imagewbmp($im);

// Free up memory
imagedestroy($im);
?>

Beispiel #2 Saving the WBMP image

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Save the image
imagewbmp($im, 'simpletext.wbmp');

// Free up memory
imagedestroy($im);
?>

Beispiel #3 Outputting the image with a different foreground

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Set the content type header - in this case image/vnd.wap.wbmp
// Hint: see image_type_to_mime_type() for content-types
header('Content-Type: image/vnd.wap.wbmp');

// Set a replacement foreground color
$foreground_color = imagecolorallocate($im, 255, 0, 0);

imagewbmp($im, NULL, $foreground_color);

// Free up memory
imagedestroy($im);
?>

Siehe auch

  • image2wbmp() - Gibt das Bild im Browser oder einer Datei aus.
  • imagepng() - Ausgabe eines Bildes im Browser oder als Datei im PNG-Format
  • imagegif() - Gibt das Bild im Browser oder einer Datei aus.
  • imagejpeg() - Gibt das Bild im Browser oder einer Datei aus.
  • imagetypes() - Gib die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück


Output a WebP image to browser or file

  • « imagewbmp
  • imagexbm »
  • PHP Manual
  • GD- und Image-Funktionen
  • Output a WebP image to browser or file

imagewebp

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

imagewebp — Output a WebP image to browser or file

Beschreibung

imagewebp ( resource $image , mixed $to = null , int $quality = 80 ) : bool

Outputs or saves a WebP version of the given image.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

to

Der Pfad unter dem das Bild gespeichert werden soll. Ist dies nicht gesetzt oder null wird der rohe Bilddatenstrom direkt ausgegeben.

quality

quality ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Achtung

However, if libgd fails to output the image, this function returns true.

Beispiele

Beispiel #1 Saving an WebP file

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);

imagestring($im, 1, 5, 5,  'WebP with PHP', $text_color);

// Save the image
imagewebp($im, 'php.webp');

// Free up memory
imagedestroy($im);
?>


Output an XBM image to browser or file

  • « imagewebp
  • iptcembed »
  • PHP Manual
  • GD- und Image-Funktionen
  • Output an XBM image to browser or file

imagexbm

(PHP 5, PHP 7, PHP 8)

imagexbm — Output an XBM image to browser or file

Beschreibung

imagexbm ( resource $image , mixed $filename , int $foreground = ? ) : bool

Outputs or save an XBM version of the given image.

Hinweis: imagexbm() doesn't apply any padding, so the image width has to be a multiple of 8. This restriction does no longer apply as of PHP 7.0.9.

Parameter-Liste

image

Eine von den verschiedenen Erzeugungsfunktionen wie imagecreatetruecolor() gelieferte Grafikressource.

filename

The path to save the file to, given as String. If null, the raw image stream will be output directly.

The filename (without the .xbm extension) is also used for the C identifiers of the XBM, whereby non alphanumeric characters of the current locale are substituted by underscores. If filename is set to null, image is used to build the C identifiers.

foreground

You can set the foreground color with this parameter by setting an identifier obtained from imagecolorallocate(). The default foreground color is black. All other colors are treated as background.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Achtung

However, if libgd fails to output the image, this function returns true.

Changelog

Version | Beschreibung
8.0.0 | The fourth parameter, which was unused, has been removed.

Beispiele

Beispiel #1 Saving an XBM file

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Save the image
imagexbm($im, 'simpletext.xbm');

// Free up memory
imagedestroy($im);
?>

Beispiel #2 Saving an XBM file with a different foreground color

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Set a replacement foreground color
$foreground_color = imagecolorallocate($im, 255, 0, 0);

// Save the image
imagexbm($im, NULL, $foreground_color);

// Free up memory
imagedestroy($im);
?>

Anmerkungen


Embeds binary IPTC data into a JPEG image

  • « imagexbm
  • iptcparse »
  • PHP Manual
  • GD- und Image-Funktionen
  • Embeds binary IPTC data into a JPEG image

iptcembed

(PHP 4, PHP 5, PHP 7, PHP 8)

iptcembed — Embeds binary IPTC data into a JPEG image

Beschreibung

iptcembed ( string $iptc_data , string $filename , int $spool = 0 ) : string|bool

Embeds binary IPTC data into a JPEG image.

Parameter-Liste

iptc_data

The data to be written.

filename

Path to the JPEG image.

spool

Spool flag. If the spool flag is less than 2 then the JPEG will be returned as a string. Otherwise the JPEG will be printed to STDOUT.

Rückgabewerte

If spool is less than 2, the JPEG will be returned, Im Fehlerfall wird false zurückgegeben.. Otherwise returns true on success Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Embedding IPTC data into a JPEG

<?php

// iptc_make_tag() function by Thies C. Arntzen
function iptc_make_tag($rec, $data, $value)
{
    $length = strlen($value);
    $retval = chr(0x1C) . chr($rec) . chr($data);

    if($length < 0x8000)
    {
        $retval .= chr($length >> 8) .  chr($length & 0xFF);
    }
    else
    {
        $retval .= chr(0x80) .
                   chr(0x04) .
                   chr(($length >> 24) & 0xFF) .
                   chr(($length >> 16) & 0xFF) .
                   chr(($length >> 8) & 0xFF) .
                   chr($length & 0xFF);
    }

    return $retval . $value;
}

// Path to jpeg file
$path = './phplogo.jpg';

// Set the IPTC tags
$iptc = array(
    '2#120' => 'Test image',
    '2#116' => 'Copyright 2008-2009, The PHP Group'
);

// Convert the IPTC tags into binary code
$data = '';

foreach($iptc as $tag => $string)
{
    $tag = substr($tag, 2);
    $data .= iptc_make_tag(2, $tag, $string);
}

// Embed the IPTC data
$content = iptcembed($data, $path);

// Write the new image data out to the file.
$fp = fopen($path, "wb");
fwrite($fp, $content);
fclose($fp);
?>

Anmerkungen

Hinweis:

Diese Funktion benötigt die GD-Bibliothek nicht.


Parse a binary IPTC block into single tags

  • « iptcembed
  • jpeg2wbmp »
  • PHP Manual
  • GD- und Image-Funktionen
  • Parse a binary IPTC block into single tags

iptcparse

(PHP 4, PHP 5, PHP 7, PHP 8)

iptcparse — Parse a binary IPTC block into single tags

Beschreibung

iptcparse ( string $iptc_block ) : array|false

Parses an » IPTC block into its single tags.

Parameter-Liste

iptc_block

A binary IPTC block.

Rückgabewerte

Returns an array using the tagmarker as an index and the value as the value. It returns false on error or if no IPTC data was found.

Beispiele

Beispiel #1 iptcparse() used together with getimagesize()

<?php
$size = getimagesize('./test.jpg', $info);
if(isset($info['APP13']))
{
    $iptc = iptcparse($info['APP13']);
    var_dump($iptc);
}
?>

Anmerkungen

Hinweis:

Diese Funktion benötigt die GD-Bibliothek nicht.


Konvertiert eine JPEG-Bilddatei in eine WBMP-Bilddatei

  • « iptcparse
  • png2wbmp »
  • PHP Manual
  • GD- und Image-Funktionen
  • Konvertiert eine JPEG-Bilddatei in eine WBMP-Bilddatei

jpeg2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

jpeg2wbmp — Konvertiert eine JPEG-Bilddatei in eine WBMP-Bilddatei

Warnung

jpeg2wbmp() wurde von PHP 7.2.0 an missbilligt, und wird von PHP 8.0.0 an entfernt. imagecreatefromjpeg() und imagewbmp() können statt dessen verwendet werden.

Beschreibung

jpeg2wbmp ( string $jpegname , string $wbmpname , int $dest_height , int $dest_width , int $threshold ) : bool

Konvertiert eine JPEG-Datei in eine WBMP-Datei.

Parameter-Liste

jpegname

Pfad zur JPEG-Datei.

wbmpname

Pfad zur WBMP-Datei.

dest_height

Höhe des Zielbildes.

dest_width

Breite des Zielbildes.

threshold

Schwellenwert, zwischen 0 und 8 (inklusive).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Achtung

However, if libgd fails to output the image, this function returns true.

Beispiele

Beispiel #1 jpeg2wbmp() example

<?php
// Pfad zur JPEG-Datei
$path = './test.jpg';

// Ermitteln der Bildgröße
$image = getimagesize($path);

// Bild konvertieren
jpeg2wbmp($path, './test.wbmp', $image[1], $image[0], 5);
?>

Siehe auch

  • png2wbmp() - Convert PNG image file to WBMP image file


Convert PNG image file to WBMP image file

  • « jpeg2wbmp
  • Gmagick »
  • PHP Manual
  • GD- und Image-Funktionen
  • Convert PNG image file to WBMP image file

png2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

png2wbmp — Convert PNG image file to WBMP image file

Warnung

Diese Funktion ist seit PHP 7.2.0 VERALTET und seit PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

png2wbmp ( string $pngname , string $wbmpname , int $dest_height , int $dest_width , int $threshold ) : bool

Converts a PNG file into a WBMP file.

Parameter-Liste

pngname

Path to PNG file.

wbmpname

Path to destination WBMP file.

dest_height

Destination image height.

dest_width

Destination image width.

threshold

Threshold value, between 0 and 8 (inclusive).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Achtung

However, if libgd fails to output the image, this function returns true.

Beispiele

Beispiel #1 png2wbmp() example

<?php
// Path to the target png
$path = './test.png';

// Get the image sizes
$image = getimagesize($path);

// Convert image
png2wbmp($path, './test.wbmp', $image[1], $image[0], 7);
?>

Siehe auch

  • jpeg2wbmp() - Konvertiert eine JPEG-Bilddatei in eine WBMP-Bilddatei


Gmagick

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
  • Vordefinierte Konstanten
  • Beispiele
  • Gmagick — The Gmagick class
    • Gmagick::addimage — Adds new image to Gmagick object image list
    • Gmagick::addnoiseimage — Adds random noise to the image
    • Gmagick::annotateimage — Annotates an image with text
    • Gmagick::blurimage — Adds blur filter to image
    • Gmagick::borderimage — Surrounds the image with a border
    • Gmagick::charcoalimage — Simulates a charcoal drawing
    • Gmagick::chopimage — Removes a region of an image and trims
    • Gmagick::clear — Clears all resources associated to Gmagick object
    • Gmagick::commentimage — Adds a comment to your image
    • Gmagick::compositeimage — Composite one image onto another
    • Gmagick::__construct — The Gmagick constructor
    • Gmagick::cropimage — Extracts a region of the image
    • Gmagick::cropthumbnailimage — Creates a crop thumbnail
    • Gmagick::current — The current purpose
    • Gmagick::cyclecolormapimage — Displaces an image's colormap
    • Gmagick::deconstructimages — Returns certain pixel differences between images
    • Gmagick::despeckleimage — The despeckleimage purpose
    • Gmagick::destroy — The destroy purpose
    • Gmagick::drawimage — Renders the GmagickDraw object on the current image
    • Gmagick::edgeimage — Enhance edges within the image
    • Gmagick::embossimage — Returns a grayscale image with a three-dimensional effect
    • Gmagick::enhanceimage — Improves the quality of a noisy image
    • Gmagick::equalizeimage — Equalizes the image histogram
    • Gmagick::flipimage — Creates a vertical mirror image
    • Gmagick::flopimage — The flopimage purpose
    • Gmagick::frameimage — Adds a simulated three-dimensional border
    • Gmagick::gammaimage — Gamma-corrects an image
    • Gmagick::getcopyright — Returns the GraphicsMagick API copyright as a string
    • Gmagick::getfilename — The filename associated with an image sequence
    • Gmagick::getimagebackgroundcolor — Returns the image background color
    • Gmagick::getimageblueprimary — Returns the chromaticy blue primary point
    • Gmagick::getimagebordercolor — Returns the image border color
    • Gmagick::getimagechanneldepth — Gets the depth for a particular image channel
    • Gmagick::getimagecolors — Returns the color of the specified colormap index
    • Gmagick::getimagecolorspace — Gets the image colorspace
    • Gmagick::getimagecompose — Returns the composite operator associated with the image
    • Gmagick::getimagedelay — Gets the image delay
    • Gmagick::getimagedepth — Gets the depth of the image
    • Gmagick::getimagedispose — Gets the image disposal method
    • Gmagick::getimageextrema — Gets the extrema for the image
    • Gmagick::getimagefilename — Returns the filename of a particular image in a sequence
    • Gmagick::getimageformat — Returns the format of a particular image in a sequence
    • Gmagick::getimagegamma — Gets the image gamma
    • Gmagick::getimagegreenprimary — Returns the chromaticy green primary point
    • Gmagick::getimageheight — Returns the image height
    • Gmagick::getimagehistogram — Gets the image histogram
    • Gmagick::getimageindex — Gets the index of the current active image
    • Gmagick::getimageinterlacescheme — Gets the image interlace scheme
    • Gmagick::getimageiterations — Gets the image iterations
    • Gmagick::getimagematte — Check if the image has a matte channel
    • Gmagick::getimagemattecolor — Returns the image matte color
    • Gmagick::getimageprofile — Returns the named image profile
    • Gmagick::getimageredprimary — Returns the chromaticity red primary point
    • Gmagick::getimagerenderingintent — Gets the image rendering intent
    • Gmagick::getimageresolution — Gets the image X and Y resolution
    • Gmagick::getimagescene — Gets the image scene
    • Gmagick::getimagesignature — Generates an SHA-256 message digest
    • Gmagick::getimagetype — Gets the potential image type
    • Gmagick::getimageunits — Gets the image units of resolution
    • Gmagick::getimagewhitepoint — Returns the chromaticity white point
    • Gmagick::getimagewidth — Returns the width of the image
    • Gmagick::getpackagename — Returns the GraphicsMagick package name
    • Gmagick::getquantumdepth — Returns the Gmagick quantum depth as a string
    • Gmagick::getreleasedate — Returns the GraphicsMagick release date as a string
    • Gmagick::getsamplingfactors — Gets the horizontal and vertical sampling factor
    • Gmagick::getsize — Returns the size associated with the Gmagick object
    • Gmagick::getversion — Returns the GraphicsMagick API version
    • Gmagick::hasnextimage — Checks if the object has more images
    • Gmagick::haspreviousimage — Checks if the object has a previous image
    • Gmagick::implodeimage — Creates a new image as a copy
    • Gmagick::labelimage — Adds a label to an image
    • Gmagick::levelimage — Adjusts the levels of an image
    • Gmagick::magnifyimage — Scales an image proportionally 2x
    • Gmagick::mapimage — Replaces the colors of an image with the closest color from a reference image
    • Gmagick::medianfilterimage — Applies a digital filter
    • Gmagick::minifyimage — Scales an image proportionally to half its size
    • Gmagick::modulateimage — Control the brightness, saturation, and hue
    • Gmagick::motionblurimage — Simulates motion blur
    • Gmagick::newimage — Creates a new image
    • Gmagick::nextimage — Moves to the next image
    • Gmagick::normalizeimage — Enhances the contrast of a color image
    • Gmagick::oilpaintimage — Simulates an oil painting
    • Gmagick::previousimage — Move to the previous image in the object
    • Gmagick::profileimage — Adds or removes a profile from an image
    • Gmagick::quantizeimage — Analyzes the colors within a reference image
    • Gmagick::quantizeimages — The quantizeimages purpose
    • Gmagick::queryfontmetrics — Returns an array representing the font metrics
    • Gmagick::queryfonts — Returns the configured fonts
    • Gmagick::queryformats — Returns formats supported by Gmagick
    • Gmagick::radialblurimage — Radial blurs an image
    • Gmagick::raiseimage — Creates a simulated 3d button-like effect
    • Gmagick::read — Reads image from filename
    • Gmagick::readimage — Reads image from filename
    • Gmagick::readimageblob — Reads image from a binary string
    • Gmagick::readimagefile — The readimagefile purpose
    • Gmagick::reducenoiseimage — Smooths the contours of an image
    • Gmagick::removeimage — Removes an image from the image list
    • Gmagick::removeimageprofile — Removes the named image profile and returns it
    • Gmagick::resampleimage — Resample image to desired resolution
    • Gmagick::resizeimage — Scales an image
    • Gmagick::rollimage — Offsets an image
    • Gmagick::rotateimage — Rotates an image
    • Gmagick::scaleimage — Scales the size of an image
    • Gmagick::separateimagechannel — Separates a channel from the image
    • Gmagick::setCompressionQuality — Sets the object's default compression quality
    • Gmagick::setfilename — Sets the filename before you read or write the image
    • Gmagick::setimagebackgroundcolor — Sets the image background color
    • Gmagick::setimageblueprimary — Sets the image chromaticity blue primary point
    • Gmagick::setimagebordercolor — Sets the image border color
    • Gmagick::setimagechanneldepth — Sets the depth of a particular image channel
    • Gmagick::setimagecolorspace — Sets the image colorspace
    • Gmagick::setimagecompose — Sets the image composite operator
    • Gmagick::setimagedelay — Sets the image delay
    • Gmagick::setimagedepth — Sets the image depth
    • Gmagick::setimagedispose — Sets the image disposal method
    • Gmagick::setimagefilename — Sets the filename of a particular image in a sequence
    • Gmagick::setimageformat — Sets the format of a particular image
    • Gmagick::setimagegamma — Sets the image gamma
    • Gmagick::setimagegreenprimary — Sets the image chromaticity green primary point
    • Gmagick::setimageindex — Set the iterator to the position in the image list specified with the index parameter
    • Gmagick::setimageinterlacescheme — Sets the interlace scheme of the image
    • Gmagick::setimageiterations — Sets the image iterations
    • Gmagick::setimageprofile — Adds a named profile to the Gmagick object
    • Gmagick::setimageredprimary — Sets the image chromaticity red primary point
    • Gmagick::setimagerenderingintent — Sets the image rendering intent
    • Gmagick::setimageresolution — Sets the image resolution
    • Gmagick::setimagescene — Sets the image scene
    • Gmagick::setimagetype — Sets the image type
    • Gmagick::setimageunits — Sets the image units of resolution
    • Gmagick::setimagewhitepoint — Sets the image chromaticity white point
    • Gmagick::setsamplingfactors — Sets the image sampling factors
    • Gmagick::setsize — Sets the size of the Gmagick object
    • Gmagick::shearimage — Creating a parallelogram
    • Gmagick::solarizeimage — Applies a solarizing effect to the image
    • Gmagick::spreadimage — Randomly displaces each pixel in a block
    • Gmagick::stripimage — Strips an image of all profiles and comments
    • Gmagick::swirlimage — Swirls the pixels about the center of the image
    • Gmagick::thumbnailimage — Changes the size of an image
    • Gmagick::trimimage — Remove edges from the image
    • Gmagick::write — Alias von Gmagick::writeimage
    • Gmagick::writeimage — Writes an image to the specified filename
  • GmagickDraw — The GmagickDraw class
    • GmagickDraw::annotate — Draws text on the image
    • GmagickDraw::arc — Draws an arc
    • GmagickDraw::bezier — Draws a bezier curve
    • GmagickDraw::ellipse — Draws an ellipse on the image
    • GmagickDraw::getfillcolor — Returns the fill color
    • GmagickDraw::getfillopacity — Returns the opacity used when drawing
    • GmagickDraw::getfont — Returns the font
    • GmagickDraw::getfontsize — Returns the font pointsize
    • GmagickDraw::getfontstyle — Returns the font style
    • GmagickDraw::getfontweight — Returns the font weight
    • GmagickDraw::getstrokecolor — Returns the color used for stroking object outlines
    • GmagickDraw::getstrokeopacity — Returns the opacity of stroked object outlines
    • GmagickDraw::getstrokewidth — Returns the width of the stroke used to draw object outlines
    • GmagickDraw::gettextdecoration — Returns the text decoration
    • GmagickDraw::gettextencoding — Returns the code set used for text annotations
    • GmagickDraw::line — The line purpose
    • GmagickDraw::point — Draws a point
    • GmagickDraw::polygon — Draws a polygon
    • GmagickDraw::polyline — Draws a polyline
    • GmagickDraw::rectangle — Draws a rectangle
    • GmagickDraw::rotate — Applies the specified rotation to the current coordinate space
    • GmagickDraw::roundrectangle — Draws a rounded rectangle
    • GmagickDraw::scale — Adjusts the scaling factor
    • GmagickDraw::setfillcolor — Sets the fill color to be used for drawing filled objects
    • GmagickDraw::setfillopacity — The setfillopacity purpose
    • GmagickDraw::setfont — Sets the fully-specified font to use when annotating with text
    • GmagickDraw::setfontsize — Sets the font pointsize to use when annotating with text
    • GmagickDraw::setfontstyle — Sets the font style to use when annotating with text
    • GmagickDraw::setfontweight — Sets the font weight
    • GmagickDraw::setstrokecolor — Sets the color used for stroking object outlines
    • GmagickDraw::setstrokeopacity — Specifies the opacity of stroked object outlines
    • GmagickDraw::setstrokewidth — Sets the width of the stroke used to draw object outlines
    • GmagickDraw::settextdecoration — Specifies a decoration
    • GmagickDraw::settextencoding — Specifies the text code set
  • GmagickPixel — The GmagickPixel class
    • GmagickPixel::__construct — Erstellt ein neues GmagickPixel Objekt
    • GmagickPixel::getcolor — Gibt die Farbe zurück
    • GmagickPixel::getcolorcount — Returns the color count associated with this color
    • GmagickPixel::getcolorvalue — Gets the normalized value of the provided color channel
    • GmagickPixel::setcolor — Sets the color
    • GmagickPixel::setcolorvalue — Sets the normalized value of one of the channels


Einführung

Gmagick is a php extension to create, modify and obtain meta information of images using the GraphicsMagick API.

GraphicsMagick prides itself as the swiss army knife of image processing. It works with over 88 major formats including important formats like DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM, and TIFF.

Gmagick consists of a main Gmagick class, a GmagickDraw class which is in effect a drawing wand and a GmagickPixel class of which instances represent a single pixel of an image (color, opacity).


Anforderungen

This extension works best with GraphicsMagick version 1.4+ and PHP 5.1.3+. Gmagick should work with earlier versions up to GraphicsMagick 1.2.6 but some features and formats are not supported for these versions. Windows version of GraphicsMagick is available from the GraphicsMagick website. To read about the difference between ImageMagick and GraphicsMagick, check this out: » FAQ .


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/gmagick.

Hinweis: The official name of this extension is gmagick.

For Windows, the build of the Gmagick extension is available » here


  • « Installation
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Laufzeit-Konfiguration

Laufzeit-Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Colortype constants
Gmagick::COLOR_BLACK (int)
Black
Gmagick::COLOR_BLUE (int)
Blue
Gmagick::COLOR_CYAN (int)
Cyan
Gmagick::COLOR_GREEN (int)
Green
Gmagick::COLOR_RED (int)
Red
Gmagick::COLOR_YELLOW (int)
Yellow
Gmagick::COLOR_MAGENTA (int)
Magenta
Gmagick::COLOR_OPACITY (int)
Opacity
Gmagick::COLOR_ALPHA (int)
Alpha
Gmagick::COLOR_FUZZ (int)
Fuzz
Composite Operator Constants
Gmagick::COMPOSITE_DEFAULT (int)
The default composite operator
Gmagick::COMPOSITE_UNDEFINED (int)
Undefined composite operator
Gmagick::COMPOSITE_NO (int)
No composite operator defined
Gmagick::COMPOSITE_ADD (int)
The result of image + image
Gmagick::COMPOSITE_ATOP (int)
The result is the same shape as image, with composite image obscuring image where the image shapes overlap
Gmagick::COMPOSITE_BLEND (int)
Blends the image
Gmagick::COMPOSITE_BUMPMAP (int)
The same as COMPOSITE_MULTIPLY, except the source is converted to grayscale first.
Gmagick::COMPOSITE_CLEAR (int)
Makes the target image transparent
Gmagick::COMPOSITE_COLORBURN (int)
Darkens the destination image to reflect the source image
Gmagick::COMPOSITE_COLORDODGE (int)
Brightens the destination image to reflect the source image
Gmagick::COMPOSITE_COLORIZE (int)
Colorizes the target image using the composite image
Gmagick::COMPOSITE_COPYBLACK (int)
Copies black from the source to target
Gmagick::COMPOSITE_COPYBLUE (int)
Copies blue from the source to target
Gmagick::COMPOSITE_COPY (int)
Copies the source image on the target image
Gmagick::COMPOSITE_COPYCYAN (int)
Copies cyan from the source to target
Gmagick::COMPOSITE_COPYGREEN (int)
Copies green from the source to target
Gmagick::COMPOSITE_COPYMAGENTA (int)
Copies magenta from the source to target
Gmagick::COMPOSITE_COPYOPACITY (int)
Copies opacity from the source to target
Gmagick::COMPOSITE_COPYRED (int)
Copies red from the source to target
Gmagick::COMPOSITE_COPYYELLOW (int)
Copies yellow from the source to target
Gmagick::COMPOSITE_DARKEN (int)
Darkens the target image
Gmagick::COMPOSITE_DSTATOP (int)
The part of the destination lying inside of the source is composited over the source and replaces the destination
Gmagick::COMPOSITE_DST (int)
The target is left untouched
Gmagick::COMPOSITE_DSTIN (int)
The parts inside the source replace the target
Gmagick::COMPOSITE_DSTOUT (int)
The parts outside the source replace the target
Gmagick::COMPOSITE_DSTOVER (int)
Target replaces the source
Gmagick::COMPOSITE_DIFFERENCE (int)
Subtracts the darker of the two constituent colors from the lighter
Gmagick::COMPOSITE_DISPLACE (int)
Shifts target image pixels as defined by the source
Gmagick::COMPOSITE_DISSOLVE (int)
Dissolves the source in to the target
Gmagick::COMPOSITE_EXCLUSION (int)
Produces an effect similar to that of Gmagick::COMPOSITE_DIFFERENCE, but appears as lower contrast
Gmagick::COMPOSITE_HARDLIGHT (int)
Multiplies or screens the colors, dependent on the source color value
Gmagick::COMPOSITE_HUE (int)
Modifies the hue of the target as defined by source
Gmagick::COMPOSITE_IN (int)
Composites source into the target
Gmagick::COMPOSITE_LIGHTEN (int)
Lightens the target as defined by source
Gmagick::COMPOSITE_LUMINIZE (int)
Luminizes the target as defined by source
Gmagick::COMPOSITE_MINUS (int)
Subtracts the source from the target
Gmagick::COMPOSITE_MODULATE (int)
Modulates the target brightness, saturation and hue as defined by source
Gmagick::COMPOSITE_MULTIPLY (int)
Multiplies the target to the source
Gmagick::COMPOSITE_OUT (int)
Composites outer parts of the source on the target
Gmagick::COMPOSITE_OVER (int)
Composites source over the target
Gmagick::COMPOSITE_OVERLAY (int)
Overlays the source on the target
Gmagick::COMPOSITE_PLUS (int)
Adds the source to the target
Gmagick::COMPOSITE_REPLACE (int)
Replaces the target with the source
Gmagick::COMPOSITE_SATURATE (int)
Saturates the target as defined by the source
Gmagick::COMPOSITE_SCREEN (int)
The source and destination are complemented and then multiplied and then replace the destination
Gmagick::COMPOSITE_SOFTLIGHT (int)
Darkens or lightens the colors, dependent on the source
Gmagick::COMPOSITE_SRCATOP (int)
The part of the source lying inside of the destination is composited onto the destination
Gmagick::COMPOSITE_SRC (int)
The source is copied to the destination
Gmagick::COMPOSITE_SRCIN (int)
The part of the source lying inside of the destination replaces the destination
Gmagick::COMPOSITE_SRCOUT (int)
The part of the source lying outside of the destination replaces the destination
Gmagick::COMPOSITE_SRCOVER (int)
The source replaces the destination
Gmagick::COMPOSITE_SUBTRACT (int)
Subtract the colors in the source image from the destination image
Gmagick::COMPOSITE_THRESHOLD (int)
The source is composited on the target as defined by source threshold
Gmagick::COMPOSITE_XOR (int)
The part of the source that lies outside of the destination is combined with the part of the destination that lies outside of the source
Montage Mode constants
Gmagick::MONTAGEMODE_FRAME (int)
Gmagick::MONTAGEMODE_UNFRAME (int)
Gmagick::MONTAGEMODE_CONCATENATE (int)
Style constants
Gmagick::STYLE_NORMAL (int)
Gmagick::STYLE_ITALIC (int)
Gmagick::STYLE_OBLIQUE (int)
Gmagick::STYLE_ANY (int)
Filter constants
Gmagick::FILTER_UNDEFINED (int)
Gmagick::FILTER_POINT (int)
Gmagick::FILTER_BOX (int)
Gmagick::FILTER_TRIANGLE (int)
Gmagick::FILTER_HERMITE (int)
Gmagick::FILTER_HANNING (int)
Gmagick::FILTER_HAMMING (int)
Gmagick::FILTER_BLACKMAN (int)
Gmagick::FILTER_GAUSSIAN (int)
Gmagick::FILTER_QUADRATIC (int)
Gmagick::FILTER_CUBIC (int)
Gmagick::FILTER_CATROM (int)
Gmagick::FILTER_MITCHELL (int)
Gmagick::FILTER_LANCZOS (int)
Gmagick::FILTER_BESSEL (int)
Gmagick::FILTER_SINC (int)
Image type constants
Gmagick::IMGTYPE_UNDEFINED (int)
Gmagick::IMGTYPE_BILEVEL (int)
Gmagick::IMGTYPE_GRAYSCALE (int)
Gmagick::IMGTYPE_GRAYSCALEMATTE (int)
Gmagick::IMGTYPE_PALETTE (int)
Gmagick::IMGTYPE_PALETTEMATTE (int)
Gmagick::IMGTYPE_TRUECOLOR (int)
Gmagick::IMGTYPE_TRUECOLORMATTE (int)
Gmagick::IMGTYPE_COLORSEPARATION (int)
Gmagick::IMGTYPE_COLORSEPARATIONMATTE (int)
Gmagick::IMGTYPE_OPTIMIZE (int)
Resolution constants
Gmagick::RESOLUTION_UNDEFINED (int)
Gmagick::RESOLUTION_PIXELSPERINCH (int)
Gmagick::RESOLUTION_PIXELSPERCENTIMETER (int)
Compression constants
Gmagick::COMPRESSION_UNDEFINED (int)
Gmagick::COMPRESSION_NO (int)
Gmagick::COMPRESSION_BZIP (int)
Gmagick::COMPRESSION_FAX (int)
Gmagick::COMPRESSION_GROUP4 (int)
Gmagick::COMPRESSION_JPEG (int)
Gmagick::COMPRESSION_JPEG2000 (int)
Gmagick::COMPRESSION_LOSSLESSJPEG (int)
Gmagick::COMPRESSION_LZW (int)
Gmagick::COMPRESSION_RLE (int)
Gmagick::COMPRESSION_ZIP (int)
Paint constants
Gmagick::PAINT_POINT (int)
Gmagick::PAINT_REPLACE (int)
Gmagick::PAINT_FLOODFILL (int)
Gmagick::PAINT_FILLTOBORDER (int)
Gmagick::PAINT_RESET (int)
Gravity constants
Gmagick::GRAVITY_NORTHWEST (int)
Gmagick::GRAVITY_NORTH (int)
Gmagick::GRAVITY_NORTHEAST (int)
Gmagick::GRAVITY_WEST (int)
Gmagick::GRAVITY_CENTER (int)
Gmagick::GRAVITY_EAST (int)
Gmagick::GRAVITY_SOUTHWEST (int)
Gmagick::GRAVITY_SOUTH (int)
Gmagick::GRAVITY_SOUTHEAST (int)
Stretch constants
Gmagick::STRETCH_NORMAL (int)
Gmagick::STRETCH_ULTRACONDENSED (int)
Gmagick::STRETCH_CONDENSED (int)
Gmagick::STRETCH_SEMICONDENSED (int)
Gmagick::STRETCH_SEMIEXPANDED (int)
Gmagick::STRETCH_EXPANDED (int)
Gmagick::STRETCH_EXTRAEXPANDED (int)
Gmagick::STRETCH_ULTRAEXPANDED (int)
Gmagick::STRETCH_ANY (int)
Align constants
Gmagick::ALIGN_UNDEFINED (int)
Gmagick::ALIGN_LEFT (int)
Gmagick::ALIGN_CENTER (int)
Gmagick::ALIGN_RIGHT (int)
Decoration constants
Gmagick::DECORATION_NO (int)
Gmagick::DECORATION_UNDERLINE (int)
Gmagick::DECORATION_OVERLINE (int)
Gmagick::DECORATION_LINETROUGH (int)
Noise constants
Gmagick::NOISE_UNIFORM (int)
Gmagick::NOISE_GAUSSIAN (int)
Gmagick::NOISE_MULTIPLICATIVEGAUSSIAN (int)
Gmagick::NOISE_IMPULSE (int)
Gmagick::NOISE_LAPLACIAN (int)
Gmagick::NOISE_POISSON (int)
Channel constants
Gmagick::CHANNEL_UNDEFINED (int)
Gmagick::CHANNEL_RED (int)
Gmagick::CHANNEL_GRAY (int)
Gmagick::CHANNEL_CYAN (int)
Gmagick::CHANNEL_GREEN (int)
Gmagick::CHANNEL_MAGENTA (int)
Gmagick::CHANNEL_BLUE (int)
Gmagick::CHANNEL_YELLOW (int)
Gmagick::CHANNEL_ALPHA (int)
Gmagick::CHANNEL_OPACITY (int)
Gmagick::CHANNEL_MATTE (int)
Gmagick::CHANNEL_BLACK (int)
Gmagick::CHANNEL_INDEX (int)
Gmagick::CHANNEL_ALL (int)
Metric constants
Gmagick::METRIC_UNDEFINED (int)
Gmagick::METRIC_MEANABSOLUTEERROR (int)
Gmagick::METRIC_MEANSQUAREERROR (int)
Gmagick::METRIC_PEAKABSOLUTEERROR (int)
Gmagick::METRIC_PEAKSIGNALTONOISERATIO (int)
Gmagick::METRIC_ROOTMEANSQUAREDERROR (int)
Pixel constants
Gmagick::PIXEL_CHAR (int)
Gmagick::PIXEL_DOUBLE (int)
Gmagick::PIXEL_FLOAT (int)
Gmagick::PIXEL_INTEGER (int)
Gmagick::PIXEL_LONG (int)
Gmagick::PIXEL_QUANTUM (int)
Gmagick::PIXEL_SHORT (int)
Colorspace constants
Gmagick::COLORSPACE_UNDEFINED (int)
Gmagick::COLORSPACE_RGB (int)
Gmagick::COLORSPACE_GRAY (int)
Gmagick::COLORSPACE_TRANSPARENT (int)
Gmagick::COLORSPACE_OHTA (int)
Gmagick::COLORSPACE_LAB (int)
Gmagick::COLORSPACE_XYZ (int)
Gmagick::COLORSPACE_YCBCR (int)
Gmagick::COLORSPACE_YCC (int)
Gmagick::COLORSPACE_YIQ (int)
Gmagick::COLORSPACE_YPBPR (int)
Gmagick::COLORSPACE_YUV (int)
Gmagick::COLORSPACE_CMYK (int)
Gmagick::COLORSPACE_SRGB (int)
Gmagick::COLORSPACE_HSB (int)
Gmagick::COLORSPACE_HSL (int)
Gmagick::COLORSPACE_HWB (int)
Gmagick::COLORSPACE_REC601LUMA (int)
Gmagick::COLORSPACE_REC709LUMA (int)
Gmagick::COLORSPACE_LOG (int)
Virtual Pixel Method constants
Gmagick::VIRTUALPIXELMETHOD_UNDEFINED (int)
Gmagick::VIRTUALPIXELMETHOD_BACKGROUND (int)
Gmagick::VIRTUALPIXELMETHOD_CONSTANT (int)
Gmagick::VIRTUALPIXELMETHOD_EDGE (int)
Gmagick::VIRTUALPIXELMETHOD_MIRROR (int)
Gmagick::VIRTUALPIXELMETHOD_TILE (int)
Gmagick::VIRTUALPIXELMETHOD_TRANSPARENT (int)
Preview constants
Gmagick::PREVIEW_UNDEFINED (int)
Gmagick::PREVIEW_ROTATE (int)
Gmagick::PREVIEW_SHEAR (int)
Gmagick::PREVIEW_ROLL (int)
Gmagick::PREVIEW_HUE (int)
Gmagick::PREVIEW_SATURATION (int)
Gmagick::PREVIEW_BRIGHTNESS (int)
Gmagick::PREVIEW_GAMMA (int)
Gmagick::PREVIEW_SPIFF (int)
Gmagick::PREVIEW_DULL (int)
Gmagick::PREVIEW_GRAYSCALE (int)
Gmagick::PREVIEW_QUANTIZE (int)
Gmagick::PREVIEW_DESPECKLE (int)
Gmagick::PREVIEW_REDUCENOISE (int)
Gmagick::PREVIEW_ADDNOISE (int)
Gmagick::PREVIEW_SHARPEN (int)
Gmagick::PREVIEW_BLUR (int)
Gmagick::PREVIEW_THRESHOLD (int)
Gmagick::PREVIEW_EDGEDETECT (int)
Gmagick::PREVIEW_SPREAD (int)
Gmagick::PREVIEW_SOLARIZE (int)
Gmagick::PREVIEW_SHADE (int)
Gmagick::PREVIEW_RAISE (int)
Gmagick::PREVIEW_SEGMENT (int)
Gmagick::PREVIEW_SWIRL (int)
Gmagick::PREVIEW_IMPLODE (int)
Gmagick::PREVIEW_WAVE (int)
Gmagick::PREVIEW_OILPAINT (int)
Gmagick::PREVIEW_CHARCOALDRAWING (int)
Gmagick::PREVIEW_JPEG (int)
Rendering Intent constants
Gmagick::RENDERINGINTENT_UNDEFINED (int)
Gmagick::RENDERINGINTENT_SATURATION (int)
Gmagick::RENDERINGINTENT_PERCEPTUAL (int)
Gmagick::RENDERINGINTENT_ABSOLUTE (int)
Gmagick::RENDERINGINTENT_RELATIVE (int)
Fillrule constants
Gmagick::FILLRULE_UNDEFINED (int)
Gmagick::FILLRULE_EVENODD (int)
Gmagick::FILLRULE_NONZERO (int)
Pathunit constants
Gmagick::PATHUNITS_UNDEFINED (int)
Gmagick::PATHUNITS_USERSPACE (int)
Gmagick::PATHUNITS_USERSPACEONUSE (int)
Gmagick::PATHUNITS_OBJECTBOUNDINGBOX (int)
Linecap constants
Gmagick::LINECAP_UNDEFINED (int)
Gmagick::LINECAP_BUTT (int)
Gmagick::LINECAP_ROUND (int)
Gmagick::LINECAP_SQUARE (int)
Line Join constants
Gmagick::LINEJOIN_UNDEFINED (int)
Gmagick::LINEJOIN_MITER (int)
Gmagick::LINEJOIN_ROUND (int)
Gmagick::LINEJOIN_BEVEL (int)
Resourcetype constants
Gmagick::RESOURCETYPE_UNDEFINED (int)
Gmagick::RESOURCETYPE_AREA (int)
Gmagick::RESOURCETYPE_DISK (int)
Gmagick::RESOURCETYPE_FILE (int)
Gmagick::RESOURCETYPE_MAP (int)
Gmagick::RESOURCETYPE_MEMORY (int)
Orientation constants
Gmagick::ORIENTATION_UNDEFINED (int)
Gmagick::ORIENTATION_TOPLEFT (int)
Gmagick::ORIENTATION_TOPRIGHT (int)
Gmagick::ORIENTATION_BOTTOMRIGHT (int)
Gmagick::ORIENTATION_BOTTOMLEFT (int)
Gmagick::ORIENTATION_LEFTTOP (int)
Gmagick::ORIENTATION_RIGHTTOP (int)
Gmagick::ORIENTATION_RIGHTBOTTOM (int)
Gmagick::ORIENTATION_LEFTBOTTOM (int)


Beispiele

The following shows some common Gmagick image operations.

Beispiel #1 Gmagick Example

<?php
//Instantiate a new Gmagick object
$image = new Gmagick('example.jpg');

//Make thumbnail from image loaded. 0 for either axes preserves aspect ratio
$image->thumbnailimage(100, 0);

//Create a border around the image, then simulate how the image will look like as an oil painting
//Notice the chaining of mutator methods which is supported in gmagick
$image->borderimage("yellow", 8, 8)->oilpaintimage(0.3);

//Write the current image at the current state to a file
$image->write('example_thumbnail.jpg');
?>


The Gmagick class

(PECL gmagick >= Unknown)

Einführung

Klassenbeschreibung

Gmagick {
/* Methoden */
public addimage ( Gmagick $source ) : Gmagick
public addnoiseimage ( int $noise_type ) : Gmagick
public annotateimage ( GmagickDraw $GmagickDraw , float $x , float $y , float $angle , string $text ) : Gmagick
public blurimage ( float $radius , float $sigma , int $channel = ? ) : Gmagick
public borderimage ( GmagickPixel $color , int $width , int $height ) : Gmagick
public charcoalimage ( float $radius , float $sigma ) : Gmagick
public chopimage ( int $width , int $height , int $x , int $y ) : Gmagick
public clear ( ) : Gmagick
public commentimage ( string $comment ) : Gmagick
public compositeimage ( Gmagick $source , int $COMPOSE , int $x , int $y ) : Gmagick
public __construct ( string $filename = ? )
public cropimage ( int $width , int $height , int $x , int $y ) : Gmagick
public cropthumbnailimage ( int $width , int $height ) : Gmagick
public current ( ) : Gmagick
public cyclecolormapimage ( int $displace ) : Gmagick
public deconstructimages ( ) : Gmagick
public despeckleimage ( ) : Gmagick
public destroy ( ) : bool
public drawimage ( GmagickDraw $GmagickDraw ) : Gmagick
public edgeimage ( float $radius ) : Gmagick
public embossimage ( float $radius , float $sigma ) : Gmagick
public enhanceimage ( ) : Gmagick
public equalizeimage ( ) : Gmagick
public flipimage ( ) : Gmagick
public flopimage ( ) : Gmagick
public frameimage ( GmagickPixel $color , int $width , int $height , int $inner_bevel , int $outer_bevel ) : Gmagick
public gammaimage ( float $gamma ) : Gmagick
public getcopyright ( ) : string
public getfilename ( ) : string
public getimagebackgroundcolor ( ) : GmagickPixel
public getimageblueprimary ( ) : array
public getimagebordercolor ( ) : GmagickPixel
public getimagechanneldepth ( int $channel_type ) : int
public getimagecolors ( ) : int
public getimagecolorspace ( ) : int
public getimagecompose ( ) : int
public getimagedelay ( ) : int
public getimagedepth ( ) : int
public getimagedispose ( ) : int
public getimageextrema ( ) : array
public getimagefilename ( ) : string
public getimageformat ( ) : string
public getimagegamma ( ) : float
public getimagegreenprimary ( ) : array
public getimageheight ( ) : int
public getimagehistogram ( ) : array
public getimageindex ( ) : int
public getimageinterlacescheme ( ) : int
public getimageiterations ( ) : int
public getimagematte ( ) : int
public getimagemattecolor ( ) : GmagickPixel
public getimageprofile ( string $name ) : string
public getimageredprimary ( ) : array
public getimagerenderingintent ( ) : int
public getimageresolution ( ) : array
public getimagescene ( ) : int
public getimagesignature ( ) : string
public getimagetype ( ) : int
public getimageunits ( ) : int
public getimagewhitepoint ( ) : array
public getimagewidth ( ) : int
public getpackagename ( ) : string
public getquantumdepth ( ) : array
public getreleasedate ( ) : string
public getsamplingfactors ( ) : array
public getsize ( ) : array
public getversion ( ) : array
public hasnextimage ( ) : mixed
public haspreviousimage ( ) : mixed
public implodeimage ( float $radius ) : mixed
public labelimage ( string $label ) : mixed
public levelimage ( float $blackPoint , float $gamma , float $whitePoint , int $channel = Gmagick::CHANNEL_DEFAULT ) : mixed
public magnifyimage ( ) : mixed
public mapimage ( gmagick $gmagick , bool $dither ) : Gmagick
public medianfilterimage ( float $radius ) : void
public minifyimage ( ) : Gmagick
public modulateimage ( float $brightness , float $saturation , float $hue ) : Gmagick
public motionblurimage ( float $radius , float $sigma , float $angle ) : Gmagick
public newimage ( int $width , int $height , string $background , string $format = ? ) : Gmagick
public nextimage ( ) : bool
public normalizeimage ( int $channel = ? ) : Gmagick
public oilpaintimage ( float $radius ) : Gmagick
public previousimage ( ) : bool
public profileimage ( string $name , string $profile ) : Gmagick
public quantizeimage ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError ) : Gmagick
public quantizeimages ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError ) : Gmagick
public queryfontmetrics ( GmagickDraw $draw , string $text ) : array
public queryfonts ( string $pattern = "*" ) : array
public queryformats ( string $pattern = "*" ) : array
public radialblurimage ( float $angle , int $channel = Gmagick::CHANNEL_DEFAULT ) : Gmagick
public raiseimage ( int $width , int $height , int $x , int $y , bool $raise ) : Gmagick
public read ( string $filename ) : Gmagick
public readimage ( string $filename ) : Gmagick
public readimageblob ( string $imageContents , string $filename = ? ) : Gmagick
public readimagefile ( resource $fp , string $filename = ? ) : Gmagick
public reducenoiseimage ( float $radius ) : Gmagick
public removeimage ( ) : Gmagick
public removeimageprofile ( string $name ) : string
public resampleimage ( float $xResolution , float $yResolution , int $filter , float $blur ) : Gmagick
public resizeimage ( int $width , int $height , int $filter , float $blur , bool $fit = false ) : Gmagick
public rollimage ( int $x , int $y ) : Gmagick
public rotateimage ( mixed $color , float $degrees ) : Gmagick
public scaleimage ( int $width , int $height , bool $fit = false ) : Gmagick
public separateimagechannel ( int $channel ) : Gmagick
setCompressionQuality ( int $quality = 75 ) : Gmagick
public setfilename ( string $filename ) : Gmagick
public setimagebackgroundcolor ( GmagickPixel $color ) : Gmagick
public setimageblueprimary ( float $x , float $y ) : Gmagick
public setimagebordercolor ( GmagickPixel $color ) : Gmagick
public setimagechanneldepth ( int $channel , int $depth ) : Gmagick
public setimagecolorspace ( int $colorspace ) : Gmagick
public setimagecompose ( int $composite ) : Gmagick
public setimagedelay ( int $delay ) : Gmagick
public setimagedepth ( int $depth ) : Gmagick
public setimagedispose ( int $disposeType ) : Gmagick
public setimagefilename ( string $filename ) : Gmagick
public setimageformat ( string $imageFormat ) : Gmagick
public setimagegamma ( float $gamma ) : Gmagick
public setimagegreenprimary ( float $x , float $y ) : Gmagick
public setimageindex ( int $index ) : Gmagick
public setimageinterlacescheme ( int $interlace ) : Gmagick
public setimageiterations ( int $iterations ) : Gmagick
public setimageprofile ( string $name , string $profile ) : Gmagick
public setimageredprimary ( float $x , float $y ) : Gmagick
public setimagerenderingintent ( int $rendering_intent ) : Gmagick
public setimageresolution ( float $xResolution , float $yResolution ) : Gmagick
public setimagescene ( int $scene ) : Gmagick
public setimagetype ( int $imgType ) : Gmagick
public setimageunits ( int $resolution ) : Gmagick
public setimagewhitepoint ( float $x , float $y ) : Gmagick
public setsamplingfactors ( array $factors ) : Gmagick
public setsize ( int $columns , int $rows ) : Gmagick
public shearimage ( mixed $color , float $xShear , float $yShear ) : Gmagick
public solarizeimage ( int $threshold ) : Gmagick
public spreadimage ( float $radius ) : Gmagick
public stripimage ( ) : Gmagick
public swirlimage ( float $degrees ) : Gmagick
public thumbnailimage ( int $width , int $height , bool $fit = false ) : Gmagick
public trimimage ( float $fuzz ) : Gmagick
public writeimage ( string $filename , bool $all_frames = false ) : Gmagick
}

Inhaltsverzeichnis

  • Gmagick::addimage — Adds new image to Gmagick object image list
  • Gmagick::addnoiseimage — Adds random noise to the image
  • Gmagick::annotateimage — Annotates an image with text
  • Gmagick::blurimage — Adds blur filter to image
  • Gmagick::borderimage — Surrounds the image with a border
  • Gmagick::charcoalimage — Simulates a charcoal drawing
  • Gmagick::chopimage — Removes a region of an image and trims
  • Gmagick::clear — Clears all resources associated to Gmagick object
  • Gmagick::commentimage — Adds a comment to your image
  • Gmagick::compositeimage — Composite one image onto another
  • Gmagick::__construct — The Gmagick constructor
  • Gmagick::cropimage — Extracts a region of the image
  • Gmagick::cropthumbnailimage — Creates a crop thumbnail
  • Gmagick::current — The current purpose
  • Gmagick::cyclecolormapimage — Displaces an image's colormap
  • Gmagick::deconstructimages — Returns certain pixel differences between images
  • Gmagick::despeckleimage — The despeckleimage purpose
  • Gmagick::destroy — The destroy purpose
  • Gmagick::drawimage — Renders the GmagickDraw object on the current image
  • Gmagick::edgeimage — Enhance edges within the image
  • Gmagick::embossimage — Returns a grayscale image with a three-dimensional effect
  • Gmagick::enhanceimage — Improves the quality of a noisy image
  • Gmagick::equalizeimage — Equalizes the image histogram
  • Gmagick::flipimage — Creates a vertical mirror image
  • Gmagick::flopimage — The flopimage purpose
  • Gmagick::frameimage — Adds a simulated three-dimensional border
  • Gmagick::gammaimage — Gamma-corrects an image
  • Gmagick::getcopyright — Returns the GraphicsMagick API copyright as a string
  • Gmagick::getfilename — The filename associated with an image sequence
  • Gmagick::getimagebackgroundcolor — Returns the image background color
  • Gmagick::getimageblueprimary — Returns the chromaticy blue primary point
  • Gmagick::getimagebordercolor — Returns the image border color
  • Gmagick::getimagechanneldepth — Gets the depth for a particular image channel
  • Gmagick::getimagecolors — Returns the color of the specified colormap index
  • Gmagick::getimagecolorspace — Gets the image colorspace
  • Gmagick::getimagecompose — Returns the composite operator associated with the image
  • Gmagick::getimagedelay — Gets the image delay
  • Gmagick::getimagedepth — Gets the depth of the image
  • Gmagick::getimagedispose — Gets the image disposal method
  • Gmagick::getimageextrema — Gets the extrema for the image
  • Gmagick::getimagefilename — Returns the filename of a particular image in a sequence
  • Gmagick::getimageformat — Returns the format of a particular image in a sequence
  • Gmagick::getimagegamma — Gets the image gamma
  • Gmagick::getimagegreenprimary — Returns the chromaticy green primary point
  • Gmagick::getimageheight — Returns the image height
  • Gmagick::getimagehistogram — Gets the image histogram
  • Gmagick::getimageindex — Gets the index of the current active image
  • Gmagick::getimageinterlacescheme — Gets the image interlace scheme
  • Gmagick::getimageiterations — Gets the image iterations
  • Gmagick::getimagematte — Check if the image has a matte channel
  • Gmagick::getimagemattecolor — Returns the image matte color
  • Gmagick::getimageprofile — Returns the named image profile
  • Gmagick::getimageredprimary — Returns the chromaticity red primary point
  • Gmagick::getimagerenderingintent — Gets the image rendering intent
  • Gmagick::getimageresolution — Gets the image X and Y resolution
  • Gmagick::getimagescene — Gets the image scene
  • Gmagick::getimagesignature — Generates an SHA-256 message digest
  • Gmagick::getimagetype — Gets the potential image type
  • Gmagick::getimageunits — Gets the image units of resolution
  • Gmagick::getimagewhitepoint — Returns the chromaticity white point
  • Gmagick::getimagewidth — Returns the width of the image
  • Gmagick::getpackagename — Returns the GraphicsMagick package name
  • Gmagick::getquantumdepth — Returns the Gmagick quantum depth as a string
  • Gmagick::getreleasedate — Returns the GraphicsMagick release date as a string
  • Gmagick::getsamplingfactors — Gets the horizontal and vertical sampling factor
  • Gmagick::getsize — Returns the size associated with the Gmagick object
  • Gmagick::getversion — Returns the GraphicsMagick API version
  • Gmagick::hasnextimage — Checks if the object has more images
  • Gmagick::haspreviousimage — Checks if the object has a previous image
  • Gmagick::implodeimage — Creates a new image as a copy
  • Gmagick::labelimage — Adds a label to an image
  • Gmagick::levelimage — Adjusts the levels of an image
  • Gmagick::magnifyimage — Scales an image proportionally 2x
  • Gmagick::mapimage — Replaces the colors of an image with the closest color from a reference image
  • Gmagick::medianfilterimage — Applies a digital filter
  • Gmagick::minifyimage — Scales an image proportionally to half its size
  • Gmagick::modulateimage — Control the brightness, saturation, and hue
  • Gmagick::motionblurimage — Simulates motion blur
  • Gmagick::newimage — Creates a new image
  • Gmagick::nextimage — Moves to the next image
  • Gmagick::normalizeimage — Enhances the contrast of a color image
  • Gmagick::oilpaintimage — Simulates an oil painting
  • Gmagick::previousimage — Move to the previous image in the object
  • Gmagick::profileimage — Adds or removes a profile from an image
  • Gmagick::quantizeimage — Analyzes the colors within a reference image
  • Gmagick::quantizeimages — The quantizeimages purpose
  • Gmagick::queryfontmetrics — Returns an array representing the font metrics
  • Gmagick::queryfonts — Returns the configured fonts
  • Gmagick::queryformats — Returns formats supported by Gmagick
  • Gmagick::radialblurimage — Radial blurs an image
  • Gmagick::raiseimage — Creates a simulated 3d button-like effect
  • Gmagick::read — Reads image from filename
  • Gmagick::readimage — Reads image from filename
  • Gmagick::readimageblob — Reads image from a binary string
  • Gmagick::readimagefile — The readimagefile purpose
  • Gmagick::reducenoiseimage — Smooths the contours of an image
  • Gmagick::removeimage — Removes an image from the image list
  • Gmagick::removeimageprofile — Removes the named image profile and returns it
  • Gmagick::resampleimage — Resample image to desired resolution
  • Gmagick::resizeimage — Scales an image
  • Gmagick::rollimage — Offsets an image
  • Gmagick::rotateimage — Rotates an image
  • Gmagick::scaleimage — Scales the size of an image
  • Gmagick::separateimagechannel — Separates a channel from the image
  • Gmagick::setCompressionQuality — Sets the object's default compression quality
  • Gmagick::setfilename — Sets the filename before you read or write the image
  • Gmagick::setimagebackgroundcolor — Sets the image background color
  • Gmagick::setimageblueprimary — Sets the image chromaticity blue primary point
  • Gmagick::setimagebordercolor — Sets the image border color
  • Gmagick::setimagechanneldepth — Sets the depth of a particular image channel
  • Gmagick::setimagecolorspace — Sets the image colorspace
  • Gmagick::setimagecompose — Sets the image composite operator
  • Gmagick::setimagedelay — Sets the image delay
  • Gmagick::setimagedepth — Sets the image depth
  • Gmagick::setimagedispose — Sets the image disposal method
  • Gmagick::setimagefilename — Sets the filename of a particular image in a sequence
  • Gmagick::setimageformat — Sets the format of a particular image
  • Gmagick::setimagegamma — Sets the image gamma
  • Gmagick::setimagegreenprimary — Sets the image chromaticity green primary point
  • Gmagick::setimageindex — Set the iterator to the position in the image list specified with the index parameter
  • Gmagick::setimageinterlacescheme — Sets the interlace scheme of the image
  • Gmagick::setimageiterations — Sets the image iterations
  • Gmagick::setimageprofile — Adds a named profile to the Gmagick object
  • Gmagick::setimageredprimary — Sets the image chromaticity red primary point
  • Gmagick::setimagerenderingintent — Sets the image rendering intent
  • Gmagick::setimageresolution — Sets the image resolution
  • Gmagick::setimagescene — Sets the image scene
  • Gmagick::setimagetype — Sets the image type
  • Gmagick::setimageunits — Sets the image units of resolution
  • Gmagick::setimagewhitepoint — Sets the image chromaticity white point
  • Gmagick::setsamplingfactors — Sets the image sampling factors
  • Gmagick::setsize — Sets the size of the Gmagick object
  • Gmagick::shearimage — Creating a parallelogram
  • Gmagick::solarizeimage — Applies a solarizing effect to the image
  • Gmagick::spreadimage — Randomly displaces each pixel in a block
  • Gmagick::stripimage — Strips an image of all profiles and comments
  • Gmagick::swirlimage — Swirls the pixels about the center of the image
  • Gmagick::thumbnailimage — Changes the size of an image
  • Gmagick::trimimage — Remove edges from the image
  • Gmagick::write — Alias von Gmagick::writeimage
  • Gmagick::writeimage — Writes an image to the specified filename


Adds new image to Gmagick object image list

  • « Gmagick
  • Gmagick::addnoiseimage »
  • PHP Manual
  • Gmagick
  • Adds new image to Gmagick object image list

Gmagick::addimage

(PECL gmagick >= Unknown)

Gmagick::addimage — Adds new image to Gmagick object image list

Beschreibung

public Gmagick::addimage ( Gmagick $source ) : Gmagick

Adds new image to Gmagick object from the current position of the source object. After the operation iterator position is moved at the end of the list.

Parameter-Liste

source

The source Gmagick object

Rückgabewerte

The Gmagick object with image added

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Adds random noise to the image

  • « Gmagick::addimage
  • Gmagick::annotateimage »
  • PHP Manual
  • Gmagick
  • Adds random noise to the image

Gmagick::addnoiseimage

(PECL gmagick >= Unknown)

Gmagick::addnoiseimage — Adds random noise to the image

Beschreibung

public Gmagick::addnoiseimage ( int $noise_type ) : Gmagick

Adds random noise to the image.

Parameter-Liste

noise_type

The type of the noise. Refer to this list of noise constants.

Rückgabewerte

The Gmagick object with noise added.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Annotates an image with text

  • « Gmagick::addnoiseimage
  • Gmagick::blurimage »
  • PHP Manual
  • Gmagick
  • Annotates an image with text

Gmagick::annotateimage

(PECL gmagick >= Unknown)

Gmagick::annotateimage — Annotates an image with text

Beschreibung

public Gmagick::annotateimage ( GmagickDraw $GmagickDraw , float $x , float $y , float $angle , string $text ) : Gmagick

Annotates an image with text.

Parameter-Liste

GmagickDraw

The GmagickDraw object that contains settings for drawing the text

x

Horizontal offset in pixels to the left of text

y

Vertical offset in pixels to the baseline of text

angle

The angle at which to write the text

text

The string to draw

Rückgabewerte

The Gmagick object with annotation made.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Adds blur filter to image

  • « Gmagick::annotateimage
  • Gmagick::borderimage »
  • PHP Manual
  • Gmagick
  • Adds blur filter to image

Gmagick::blurimage

(PECL gmagick >= Unknown)

Gmagick::blurimage — Adds blur filter to image

Beschreibung

public Gmagick::blurimage ( float $radius , float $sigma , int $channel = ? ) : Gmagick

Adds blur filter to image.

Parameter-Liste

radius

Blur radius

sigma

Standard deviation

Rückgabewerte

The blurred Gmagick object

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Surrounds the image with a border

  • « Gmagick::blurimage
  • Gmagick::charcoalimage »
  • PHP Manual
  • Gmagick
  • Surrounds the image with a border

Gmagick::borderimage

(PECL gmagick >= Unknown)

Gmagick::borderimage — Surrounds the image with a border

Beschreibung

public Gmagick::borderimage ( GmagickPixel $color , int $width , int $height ) : Gmagick

Surrounds the image with a border of the color defined by the bordercolor GmagickPixel object or a color string.

Parameter-Liste

color

GmagickPixel object or a string containing the border color

width

Border width

height

Border height

Rückgabewerte

The Gmagick object with border defined

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Simulates a charcoal drawing

  • « Gmagick::borderimage
  • Gmagick::chopimage »
  • PHP Manual
  • Gmagick
  • Simulates a charcoal drawing

Gmagick::charcoalimage

(PECL gmagick >= Unknown)

Gmagick::charcoalimage — Simulates a charcoal drawing

Beschreibung

public Gmagick::charcoalimage ( float $radius , float $sigma ) : Gmagick

Simulates a charcoal drawing.

Parameter-Liste

radius

The radius of the Gaussian, in pixels, not counting the center pixel

sigma

The standard deviation of the Gaussian, in pixels

Rückgabewerte

The Gmagick object with charcoal simulation

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Removes a region of an image and trims

  • « Gmagick::charcoalimage
  • Gmagick::clear »
  • PHP Manual
  • Gmagick
  • Removes a region of an image and trims

Gmagick::chopimage

(PECL gmagick >= Unknown)

Gmagick::chopimage — Removes a region of an image and trims

Beschreibung

public Gmagick::chopimage ( int $width , int $height , int $x , int $y ) : Gmagick

Removes a region of an image and collapses the image to occupy the removed portion.

Parameter-Liste

width

Width of the chopped area

height

Height of the chopped area

x

X origo of the chopped area

y

Y origo of the chopped area

Rückgabewerte

The chopped Gmagick object

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Clears all resources associated to Gmagick object

  • « Gmagick::chopimage
  • Gmagick::commentimage »
  • PHP Manual
  • Gmagick
  • Clears all resources associated to Gmagick object

Gmagick::clear

(PECL gmagick >= Unknown)

Gmagick::clear — Clears all resources associated to Gmagick object

Beschreibung

public Gmagick::clear ( ) : Gmagick

Clears all resources associated to Gmagick object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The cleared Gmagick object

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Adds a comment to your image

  • « Gmagick::clear
  • Gmagick::compositeimage »
  • PHP Manual
  • Gmagick
  • Adds a comment to your image

Gmagick::commentimage

(PECL gmagick >= Unknown)

Gmagick::commentimage — Adds a comment to your image

Beschreibung

public Gmagick::commentimage ( string $comment ) : Gmagick

Adds a comment to your image.

Parameter-Liste

comment

The comment to add

Rückgabewerte

The Gmagick object with comment added.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Composite one image onto another

  • « Gmagick::commentimage
  • Gmagick::__construct »
  • PHP Manual
  • Gmagick
  • Composite one image onto another

Gmagick::compositeimage

(PECL gmagick >= Unknown)

Gmagick::compositeimage — Composite one image onto another

Beschreibung

public Gmagick::compositeimage ( Gmagick $source , int $COMPOSE , int $x , int $y ) : Gmagick

Composite one image onto another at the specified offset.

Parameter-Liste

source

Gmagick object which holds the composite image

compose

Composite operator.

x

The column offset of the composited image

y

The row offset of the composited image

Rückgabewerte

The Gmagick object with compositions.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


The Gmagick constructor

  • « Gmagick::compositeimage
  • Gmagick::cropimage »
  • PHP Manual
  • Gmagick
  • The Gmagick constructor

Gmagick::__construct

(PECL gmagick >= Unknown)

Gmagick::__construct — The Gmagick constructor

Beschreibung

public Gmagick::__construct ( string $filename = ? )

The Gmagick constructor.

Parameter-Liste

filename

The path to an image to load or array of paths

Rückgabewerte

Returns a new Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Extracts a region of the image

  • « Gmagick::__construct
  • Gmagick::cropthumbnailimage »
  • PHP Manual
  • Gmagick
  • Extracts a region of the image

Gmagick::cropimage

(PECL gmagick >= Unknown)

Gmagick::cropimage — Extracts a region of the image

Beschreibung

public Gmagick::cropimage ( int $width , int $height , int $x , int $y ) : Gmagick

Extracts a region of the image.

Parameter-Liste

width

The width of the crop

height

The height of the crop

x

The X coordinate of the cropped region's top left corner

y

The Y coordinate of the cropped region's top left corner

Rückgabewerte

The cropped Gmagick object

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Creates a crop thumbnail

  • « Gmagick::cropimage
  • Gmagick::current »
  • PHP Manual
  • Gmagick
  • Creates a crop thumbnail

Gmagick::cropthumbnailimage

(PECL gmagick >= Unknown)

Gmagick::cropthumbnailimage — Creates a crop thumbnail

Beschreibung

public Gmagick::cropthumbnailimage ( int $width , int $height ) : Gmagick

Creates a fixed size thumbnail by first scaling the image down and cropping a specified area from the center.

Parameter-Liste

width

The width of the thumbnail

height

The Height of the thumbnail

Rückgabewerte

The cropped Gmagick object

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


The current purpose

  • « Gmagick::cropthumbnailimage
  • Gmagick::cyclecolormapimage »
  • PHP Manual
  • Gmagick
  • The current purpose

Gmagick::current

(PECL gmagick >= Unknown)

Gmagick::current — The current purpose

Beschreibung

public Gmagick::current ( ) : Gmagick

Returns reference to the current gmagick object with image pointer at the correct sequence.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns self on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Displaces an image's colormap

  • « Gmagick::current
  • Gmagick::deconstructimages »
  • PHP Manual
  • Gmagick
  • Displaces an image's colormap

Gmagick::cyclecolormapimage

(PECL gmagick >= Unknown)

Gmagick::cyclecolormapimage — Displaces an image's colormap

Beschreibung

public Gmagick::cyclecolormapimage ( int $displace ) : Gmagick

Displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychedelic effect.

Parameter-Liste

displace

The amount to displace the colormap.

Rückgabewerte

Returns self on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns certain pixel differences between images

  • « Gmagick::cyclecolormapimage
  • Gmagick::despeckleimage »
  • PHP Manual
  • Gmagick
  • Returns certain pixel differences between images

Gmagick::deconstructimages

(PECL gmagick >= Unknown)

Gmagick::deconstructimages — Returns certain pixel differences between images

Beschreibung

public Gmagick::deconstructimages ( ) : Gmagick

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a new Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


The despeckleimage purpose

  • « Gmagick::deconstructimages
  • Gmagick::destroy »
  • PHP Manual
  • Gmagick
  • The despeckleimage purpose

Gmagick::despeckleimage

(PECL gmagick >= Unknown)

Gmagick::despeckleimage — The despeckleimage purpose

Beschreibung

public Gmagick::despeckleimage ( ) : Gmagick

Reduces the speckle noise in an image while preserving the edges of the original image.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The despeckled Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.

Beispiele

Beispiel #1 Gmagick::despeckleimage() example

<?php
/* ... */
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

...

Siehe auch

  • Classname::Method()


The destroy purpose

  • « Gmagick::despeckleimage
  • Gmagick::drawimage »
  • PHP Manual
  • Gmagick
  • The destroy purpose

Gmagick::destroy

(PECL gmagick >= Unknown)

Gmagick::destroy — The destroy purpose

Beschreibung

public Gmagick::destroy ( ) : bool

Destroys the Gmagick object and frees all resources associated with it

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Renders the GmagickDraw object on the current image

  • « Gmagick::destroy
  • Gmagick::edgeimage »
  • PHP Manual
  • Gmagick
  • Renders the GmagickDraw object on the current image

Gmagick::drawimage

(PECL gmagick >= Unknown)

Gmagick::drawimage — Renders the GmagickDraw object on the current image

Beschreibung

public Gmagick::drawimage ( GmagickDraw $GmagickDraw ) : Gmagick

Renders the GmagickDraw object on the current image

Parameter-Liste

GmagickDraw

The drawing operations to render on the image.

Rückgabewerte

The drawn Gmagick object

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Enhance edges within the image

  • « Gmagick::drawimage
  • Gmagick::embossimage »
  • PHP Manual
  • Gmagick
  • Enhance edges within the image

Gmagick::edgeimage

(PECL gmagick >= Unknown)

Gmagick::edgeimage — Enhance edges within the image

Beschreibung

public Gmagick::edgeimage ( float $radius ) : Gmagick

Enhance edges within the image with a convolution filter of the given radius. Use radius 0 and it will be auto-selected.

Parameter-Liste

radius

The radius of the operation.

Rückgabewerte

The Gmagick object with edges enhanced.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns a grayscale image with a three-dimensional effect

  • « Gmagick::edgeimage
  • Gmagick::enhanceimage »
  • PHP Manual
  • Gmagick
  • Returns a grayscale image with a three-dimensional effect

Gmagick::embossimage

(PECL gmagick >= Unknown)

Gmagick::embossimage — Returns a grayscale image with a three-dimensional effect

Beschreibung

public Gmagick::embossimage ( float $radius , float $sigma ) : Gmagick

Returns a grayscale image with a three-dimensional effect. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and it will choose a suitable radius for you.

Parameter-Liste

radius

The radius of the effect

sigma

The sigma of the effect

Rückgabewerte

The embossed Gmagick object.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Improves the quality of a noisy image

  • « Gmagick::embossimage
  • Gmagick::equalizeimage »
  • PHP Manual
  • Gmagick
  • Improves the quality of a noisy image

Gmagick::enhanceimage

(PECL gmagick >= Unknown)

Gmagick::enhanceimage — Improves the quality of a noisy image

Beschreibung

public Gmagick::enhanceimage ( ) : Gmagick

Applies a digital filter that improves the quality of a noisy image.

Rückgabewerte

The enhanced Gmagick object.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Equalizes the image histogram

  • « Gmagick::enhanceimage
  • Gmagick::flipimage »
  • PHP Manual
  • Gmagick
  • Equalizes the image histogram

Gmagick::equalizeimage

(PECL gmagick >= Unknown)

Gmagick::equalizeimage — Equalizes the image histogram

Beschreibung

public Gmagick::equalizeimage ( ) : Gmagick

Equalizes the image histogram.

Rückgabewerte

The equalized Gmagick object.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Creates a vertical mirror image

  • « Gmagick::equalizeimage
  • Gmagick::flopimage »
  • PHP Manual
  • Gmagick
  • Creates a vertical mirror image

Gmagick::flipimage

(PECL gmagick >= Unknown)

Gmagick::flipimage — Creates a vertical mirror image

Beschreibung

public Gmagick::flipimage ( ) : Gmagick

Creates a vertical mirror image by reflecting the pixels around the central x-axis.

Rückgabewerte

The flipped Gmagick object.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.

Siehe auch

  • Imagick::flopimage() - Creates a vertical mirror image


The flopimage purpose

  • « Gmagick::flipimage
  • Gmagick::frameimage »
  • PHP Manual
  • Gmagick
  • The flopimage purpose

Gmagick::flopimage

(PECL gmagick >= Unknown)

Gmagick::flopimage — The flopimage purpose

Beschreibung

public Gmagick::flopimage ( ) : Gmagick

Creates a vertical mirror image by reflecting the pixels around the central y-axis.

Rückgabewerte

The flopped Gmagick object.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.

Siehe auch

  • Imagick::flipimage() - Creates a vertical mirror image


Adds a simulated three-dimensional border

  • « Gmagick::flopimage
  • Gmagick::gammaimage »
  • PHP Manual
  • Gmagick
  • Adds a simulated three-dimensional border

Gmagick::frameimage

(PECL gmagick >= Unknown)

Gmagick::frameimage — Adds a simulated three-dimensional border

Beschreibung

public Gmagick::frameimage ( GmagickPixel $color , int $width , int $height , int $inner_bevel , int $outer_bevel ) : Gmagick

Adds a simulated three-dimensional border around the image. The width and height specify the border width of the vertical and horizontal sides of the frame. The inner and outer bevels indicate the width of the inner and outer shadows of the frame.

Parameter-Liste

color

GmagickPixel object or a float representing the matte color

width

The width of the border

height

The height of the border

inner_bevel

The inner bevel width

outer_bevel

The outer bevel width

Rückgabewerte

The framed Gmagick object.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gamma-corrects an image

  • « Gmagick::frameimage
  • Gmagick::getcopyright »
  • PHP Manual
  • Gmagick
  • Gamma-corrects an image

Gmagick::gammaimage

(PECL gmagick >= Unknown)

Gmagick::gammaimage — Gamma-corrects an image

Beschreibung

public Gmagick::gammaimage ( float $gamma ) : Gmagick

Gamma-corrects an image. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

Parameter-Liste

gamma

The amount of gamma-correction.

Rückgabewerte

The gamma corrected Gmagick object.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the GraphicsMagick API copyright as a string

  • « Gmagick::gammaimage
  • Gmagick::getfilename »
  • PHP Manual
  • Gmagick
  • Returns the GraphicsMagick API copyright as a string

Gmagick::getcopyright

(PECL gmagick >= Unknown)

Gmagick::getcopyright — Returns the GraphicsMagick API copyright as a string

Beschreibung

public Gmagick::getcopyright ( ) : string

Returns the GraphicsMagick API copyright as a string.

Rückgabewerte

Returns a string containing the copyright notice of GraphicsMagick and Magickwand C API.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


The filename associated with an image sequence

  • « Gmagick::getcopyright
  • Gmagick::getimagebackgroundcolor »
  • PHP Manual
  • Gmagick
  • The filename associated with an image sequence

Gmagick::getfilename

(PECL gmagick >= Unknown)

Gmagick::getfilename — The filename associated with an image sequence

Beschreibung

public Gmagick::getfilename ( ) : string

Returns the filename associated with an image sequence.

Rückgabewerte

Returns a string on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the image background color

  • « Gmagick::getfilename
  • Gmagick::getimageblueprimary »
  • PHP Manual
  • Gmagick
  • Returns the image background color

Gmagick::getimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::getimagebackgroundcolor — Returns the image background color

Beschreibung

public Gmagick::getimagebackgroundcolor ( ) : GmagickPixel

Returns the image background color.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an GmagickPixel set to the background color of the image.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the chromaticy blue primary point

  • « Gmagick::getimagebackgroundcolor
  • Gmagick::getimagebordercolor »
  • PHP Manual
  • Gmagick
  • Returns the chromaticy blue primary point

Gmagick::getimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::getimageblueprimary — Returns the chromaticy blue primary point

Beschreibung

public Gmagick::getimageblueprimary ( ) : array

Returns the chromaticity blue primary point for the image.

Parameter-Liste

x

The chromaticity blue primary x-point.

y

The chromaticity blue primary y-point.

Rückgabewerte

Array consisting of "x" and "y" coordinates of point.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the image border color

  • « Gmagick::getimageblueprimary
  • Gmagick::getimagechanneldepth »
  • PHP Manual
  • Gmagick
  • Returns the image border color

Gmagick::getimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::getimagebordercolor — Returns the image border color

Beschreibung

public Gmagick::getimagebordercolor ( ) : GmagickPixel

Returns the image border color.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

GmagickPixel object representing the color of the border

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the depth for a particular image channel

  • « Gmagick::getimagebordercolor
  • Gmagick::getimagecolors »
  • PHP Manual
  • Gmagick
  • Gets the depth for a particular image channel

Gmagick::getimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::getimagechanneldepth — Gets the depth for a particular image channel

Beschreibung

public Gmagick::getimagechanneldepth ( int $channel_type ) : int

Gets the depth for a particular image channel.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Depth of image channel

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the color of the specified colormap index

  • « Gmagick::getimagechanneldepth
  • Gmagick::getimagecolorspace »
  • PHP Manual
  • Gmagick
  • Returns the color of the specified colormap index

Gmagick::getimagecolors

(PECL gmagick >= Unknown)

Gmagick::getimagecolors — Returns the color of the specified colormap index

Beschreibung

public Gmagick::getimagecolors ( ) : int

Returns the color of the specified colormap index.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of colors in image.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the image colorspace

  • « Gmagick::getimagecolors
  • Gmagick::getimagecompose »
  • PHP Manual
  • Gmagick
  • Gets the image colorspace

Gmagick::getimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::getimagecolorspace — Gets the image colorspace

Beschreibung

public Gmagick::getimagecolorspace ( ) : int

Gets the image colorspace.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Colorspace

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the composite operator associated with the image

  • « Gmagick::getimagecolorspace
  • Gmagick::getimagedelay »
  • PHP Manual
  • Gmagick
  • Returns the composite operator associated with the image

Gmagick::getimagecompose

(PECL gmagick >= Unknown)

Gmagick::getimagecompose — Returns the composite operator associated with the image

Beschreibung

public Gmagick::getimagecompose ( ) : int

Returns the composite operator associated with the image.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the composite operator associated with the image.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the image delay

  • « Gmagick::getimagecompose
  • Gmagick::getimagedepth »
  • PHP Manual
  • Gmagick
  • Gets the image delay

Gmagick::getimagedelay

(PECL gmagick >= Unknown)

Gmagick::getimagedelay — Gets the image delay

Beschreibung

public Gmagick::getimagedelay ( ) : int

Gets the image delay

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the composite operator associated with the image.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the depth of the image

  • « Gmagick::getimagedelay
  • Gmagick::getimagedispose »
  • PHP Manual
  • Gmagick
  • Gets the depth of the image

Gmagick::getimagedepth

(PECL gmagick >= Unknown)

Gmagick::getimagedepth — Gets the depth of the image

Beschreibung

public Gmagick::getimagedepth ( ) : int

Gets the depth of the image.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Image depth

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the image disposal method

  • « Gmagick::getimagedepth
  • Gmagick::getimageextrema »
  • PHP Manual
  • Gmagick
  • Gets the image disposal method

Gmagick::getimagedispose

(PECL gmagick >= Unknown)

Gmagick::getimagedispose — Gets the image disposal method

Beschreibung

public Gmagick::getimagedispose ( ) : int

Gets the image disposal method

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the dispose method on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the extrema for the image

  • « Gmagick::getimagedispose
  • Gmagick::getimagefilename »
  • PHP Manual
  • Gmagick
  • Gets the extrema for the image

Gmagick::getimageextrema

(PECL gmagick >= Unknown)

Gmagick::getimageextrema — Gets the extrema for the image

Beschreibung

public Gmagick::getimageextrema ( ) : array

Returns an associative array with the keys "min" and "max". Wirft bei einem Fehler eine GmagickException.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an associative array with the keys "min" and "max".

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the filename of a particular image in a sequence

  • « Gmagick::getimageextrema
  • Gmagick::getimageformat »
  • PHP Manual
  • Gmagick
  • Returns the filename of a particular image in a sequence

Gmagick::getimagefilename

(PECL gmagick >= Unknown)

Gmagick::getimagefilename — Returns the filename of a particular image in a sequence

Beschreibung

public Gmagick::getimagefilename ( ) : string

Returns the filename of a particular image in a sequence

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string with the filename of the image

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the format of a particular image in a sequence

  • « Gmagick::getimagefilename
  • Gmagick::getimagegamma »
  • PHP Manual
  • Gmagick
  • Returns the format of a particular image in a sequence

Gmagick::getimageformat

(PECL gmagick >= Unknown)

Gmagick::getimageformat — Returns the format of a particular image in a sequence

Beschreibung

public Gmagick::getimageformat ( ) : string

Returns the format of a particular image in a sequence.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string containing the image format on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the image gamma

  • « Gmagick::getimageformat
  • Gmagick::getimagegreenprimary »
  • PHP Manual
  • Gmagick
  • Gets the image gamma

Gmagick::getimagegamma

(PECL gmagick >= Unknown)

Gmagick::getimagegamma — Gets the image gamma

Beschreibung

public Gmagick::getimagegamma ( ) : float

Gets the image gamma

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the image gamma on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the chromaticy green primary point

  • « Gmagick::getimagegamma
  • Gmagick::getimageheight »
  • PHP Manual
  • Gmagick
  • Returns the chromaticy green primary point

Gmagick::getimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::getimagegreenprimary — Returns the chromaticy green primary point

Beschreibung

public Gmagick::getimagegreenprimary ( ) : array

Returns the chromaticity green primary point. Returns an array with the keys "x" and "y".

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array with the keys "x" and "y" on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the image height

  • « Gmagick::getimagegreenprimary
  • Gmagick::getimagehistogram »
  • PHP Manual
  • Gmagick
  • Returns the image height

Gmagick::getimageheight

(PECL gmagick >= Unknown)

Gmagick::getimageheight — Returns the image height

Beschreibung

public Gmagick::getimageheight ( ) : int

Returns the image height

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the image height in pixels.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the image histogram

  • « Gmagick::getimageheight
  • Gmagick::getimageindex »
  • PHP Manual
  • Gmagick
  • Gets the image histogram

Gmagick::getimagehistogram

(PECL gmagick >= Unknown)

Gmagick::getimagehistogram — Gets the image histogram

Beschreibung

public Gmagick::getimagehistogram ( ) : array

Returns the image histogram as an array of GmagickPixel objects. Throw an GmagickException on error.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the image histogram as an array of GmagickPixel objects.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the index of the current active image

  • « Gmagick::getimagehistogram
  • Gmagick::getimageinterlacescheme »
  • PHP Manual
  • Gmagick
  • Gets the index of the current active image

Gmagick::getimageindex

(PECL gmagick >= Unknown)

Gmagick::getimageindex — Gets the index of the current active image

Beschreibung

public Gmagick::getimageindex ( ) : int

Returns the index of the current active image within the Gmagick object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Index of current active image

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the image interlace scheme

  • « Gmagick::getimageindex
  • Gmagick::getimageiterations »
  • PHP Manual
  • Gmagick
  • Gets the image interlace scheme

Gmagick::getimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::getimageinterlacescheme — Gets the image interlace scheme

Beschreibung

public Gmagick::getimageinterlacescheme ( ) : int

Gets the image interlace scheme.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the interlace scheme as an integer on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the image iterations

  • « Gmagick::getimageinterlacescheme
  • Gmagick::getimagematte »
  • PHP Manual
  • Gmagick
  • Gets the image iterations

Gmagick::getimageiterations

(PECL gmagick >= Unknown)

Gmagick::getimageiterations — Gets the image iterations

Beschreibung

public Gmagick::getimageiterations ( ) : int

Gets the image iterations.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the image iterations as an integer.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Check if the image has a matte channel

  • « Gmagick::getimageiterations
  • Gmagick::getimagemattecolor »
  • PHP Manual
  • Gmagick
  • Check if the image has a matte channel

Gmagick::getimagematte

(PECL gmagick >= Unknown)

Gmagick::getimagematte — Check if the image has a matte channel

Beschreibung

public Gmagick::getimagematte ( ) : int

Returns true if the image has a matte channel, otherwise false.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the image has a matte channel, otherwise false.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the image matte color

  • « Gmagick::getimagematte
  • Gmagick::getimageprofile »
  • PHP Manual
  • Gmagick
  • Returns the image matte color

Gmagick::getimagemattecolor

(PECL gmagick >= Unknown)

Gmagick::getimagemattecolor — Returns the image matte color

Beschreibung

public Gmagick::getimagemattecolor ( ) : GmagickPixel

Returns GmagickPixel object on success. Throw an GmagickException on error.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns GmagickPixel object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the named image profile

  • « Gmagick::getimagemattecolor
  • Gmagick::getimageredprimary »
  • PHP Manual
  • Gmagick
  • Returns the named image profile

Gmagick::getimageprofile

(PECL gmagick >= Unknown)

Gmagick::getimageprofile — Returns the named image profile

Beschreibung

public Gmagick::getimageprofile ( string $name ) : string

Returns the named image profile.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string containing the image profile.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the chromaticity red primary point

  • « Gmagick::getimageprofile
  • Gmagick::getimagerenderingintent »
  • PHP Manual
  • Gmagick
  • Returns the chromaticity red primary point

Gmagick::getimageredprimary

(PECL gmagick >= Unknown)

Gmagick::getimageredprimary — Returns the chromaticity red primary point

Beschreibung

public Gmagick::getimageredprimary ( ) : array

Returns the chromaticity red primary point as an array with the keys "x" and "y".

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the chromaticity red primary point as an array with the keys "x" and "y".

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the image rendering intent

  • « Gmagick::getimageredprimary
  • Gmagick::getimageresolution »
  • PHP Manual
  • Gmagick
  • Gets the image rendering intent

Gmagick::getimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::getimagerenderingintent — Gets the image rendering intent

Beschreibung

public Gmagick::getimagerenderingintent ( ) : int

Gets the image rendering intent

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Extracts a region of the image and returns it as a new wand

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the image X and Y resolution

  • « Gmagick::getimagerenderingintent
  • Gmagick::getimagescene »
  • PHP Manual
  • Gmagick
  • Gets the image X and Y resolution

Gmagick::getimageresolution

(PECL gmagick >= Unknown)

Gmagick::getimageresolution — Gets the image X and Y resolution

Beschreibung

public Gmagick::getimageresolution ( ) : array

Returns the resolution as an array.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the resolution as an array.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the image scene

  • « Gmagick::getimageresolution
  • Gmagick::getimagesignature »
  • PHP Manual
  • Gmagick
  • Gets the image scene

Gmagick::getimagescene

(PECL gmagick >= Unknown)

Gmagick::getimagescene — Gets the image scene

Beschreibung

public Gmagick::getimagescene ( ) : int

Gets the image scene.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the image scene.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Generates an SHA-256 message digest

  • « Gmagick::getimagescene
  • Gmagick::getimagetype »
  • PHP Manual
  • Gmagick
  • Generates an SHA-256 message digest

Gmagick::getimagesignature

(PECL gmagick >= Unknown)

Gmagick::getimagesignature — Generates an SHA-256 message digest

Beschreibung

public Gmagick::getimagesignature ( ) : string

Generates an SHA-256 message digest for the image pixel stream.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string containing the SHA-256 hash of the file.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the potential image type

  • « Gmagick::getimagesignature
  • Gmagick::getimageunits »
  • PHP Manual
  • Gmagick
  • Gets the potential image type

Gmagick::getimagetype

(PECL gmagick >= Unknown)

Gmagick::getimagetype — Gets the potential image type

Beschreibung

public Gmagick::getimagetype ( ) : int

Gets the potential image type.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the potential image type.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the image units of resolution

  • « Gmagick::getimagetype
  • Gmagick::getimagewhitepoint »
  • PHP Manual
  • Gmagick
  • Gets the image units of resolution

Gmagick::getimageunits

(PECL gmagick >= Unknown)

Gmagick::getimageunits — Gets the image units of resolution

Beschreibung

public Gmagick::getimageunits ( ) : int

Gets the image units of resolution.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the image units of resolution.


Returns the chromaticity white point

  • « Gmagick::getimageunits
  • Gmagick::getimagewidth »
  • PHP Manual
  • Gmagick
  • Returns the chromaticity white point

Gmagick::getimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::getimagewhitepoint — Returns the chromaticity white point

Beschreibung

public Gmagick::getimagewhitepoint ( ) : array

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the width of the image

  • « Gmagick::getimagewhitepoint
  • Gmagick::getpackagename »
  • PHP Manual
  • Gmagick
  • Returns the width of the image

Gmagick::getimagewidth

(PECL gmagick >= Unknown)

Gmagick::getimagewidth — Returns the width of the image

Beschreibung

public Gmagick::getimagewidth ( ) : int

Returns the width of the image.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the image width.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the GraphicsMagick package name

  • « Gmagick::getimagewidth
  • Gmagick::getquantumdepth »
  • PHP Manual
  • Gmagick
  • Returns the GraphicsMagick package name

Gmagick::getpackagename

(PECL gmagick >= Unknown)

Gmagick::getpackagename — Returns the GraphicsMagick package name

Beschreibung

public Gmagick::getpackagename ( ) : string

Returns the GraphicsMagick package name.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the GraphicsMagick package name as a string.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the Gmagick quantum depth as a string

  • « Gmagick::getpackagename
  • Gmagick::getreleasedate »
  • PHP Manual
  • Gmagick
  • Returns the Gmagick quantum depth as a string

Gmagick::getquantumdepth

(PECL gmagick >= Unknown)

Gmagick::getquantumdepth — Returns the Gmagick quantum depth as a string

Beschreibung

public Gmagick::getquantumdepth ( ) : array

Returns the Gmagick quantum depth as a string.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the Gmagick quantum depth as a string.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the GraphicsMagick release date as a string

  • « Gmagick::getquantumdepth
  • Gmagick::getsamplingfactors »
  • PHP Manual
  • Gmagick
  • Returns the GraphicsMagick release date as a string

Gmagick::getreleasedate

(PECL gmagick >= Unknown)

Gmagick::getreleasedate — Returns the GraphicsMagick release date as a string

Beschreibung

public Gmagick::getreleasedate ( ) : string

Returns the GraphicsMagick release date as a string.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the GraphicsMagick release date as a string.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Gets the horizontal and vertical sampling factor

  • « Gmagick::getreleasedate
  • Gmagick::getsize »
  • PHP Manual
  • Gmagick
  • Gets the horizontal and vertical sampling factor

Gmagick::getsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::getsamplingfactors — Gets the horizontal and vertical sampling factor

Beschreibung

public Gmagick::getsamplingfactors ( ) : array

Gets the horizontal and vertical sampling factor.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an associative array with the horizontal and vertical sampling factors of the image.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the size associated with the Gmagick object

  • « Gmagick::getsamplingfactors
  • Gmagick::getversion »
  • PHP Manual
  • Gmagick
  • Returns the size associated with the Gmagick object

Gmagick::getsize

(PECL gmagick >= Unknown)

Gmagick::getsize — Returns the size associated with the Gmagick object

Beschreibung

public Gmagick::getsize ( ) : array

Returns the size associated with the Gmagick object as an array with the keys "columns" and "rows".

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the size associated with the Gmagick object as an array with the keys "columns" and "rows".

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the GraphicsMagick API version

  • « Gmagick::getsize
  • Gmagick::hasnextimage »
  • PHP Manual
  • Gmagick
  • Returns the GraphicsMagick API version

Gmagick::getversion

(PECL gmagick >= Unknown)

Gmagick::getversion — Returns the GraphicsMagick API version

Beschreibung

public Gmagick::getversion ( ) : array

Returns the GraphicsMagick API version as a string and as a number.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the GraphicsMagick API version as a string and as a number.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Checks if the object has more images

  • « Gmagick::getversion
  • Gmagick::haspreviousimage »
  • PHP Manual
  • Gmagick
  • Checks if the object has more images

Gmagick::hasnextimage

(PECL gmagick >= Unknown)

Gmagick::hasnextimage — Checks if the object has more images

Beschreibung

public Gmagick::hasnextimage ( ) : mixed

Returns TRUE if the object has more images when traversing the list in the forward direction.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns TRUE if the object has more images when traversing the list in the forward direction, returns FALSE if there are none.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Checks if the object has a previous image

  • « Gmagick::hasnextimage
  • Gmagick::implodeimage »
  • PHP Manual
  • Gmagick
  • Checks if the object has a previous image

Gmagick::haspreviousimage

(PECL gmagick >= Unknown)

Gmagick::haspreviousimage — Checks if the object has a previous image

Beschreibung

public Gmagick::haspreviousimage ( ) : mixed

Returns TRUE if the object has more images when traversing the list in the reverse direction

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns TRUE if the object has more images when traversing the list in the reverse direction, returns FALSE if there are none.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Creates a new image as a copy

  • « Gmagick::haspreviousimage
  • Gmagick::labelimage »
  • PHP Manual
  • Gmagick
  • Creates a new image as a copy

Gmagick::implodeimage

(PECL gmagick >= Unknown)

Gmagick::implodeimage — Creates a new image as a copy

Beschreibung

public Gmagick::implodeimage ( float $radius ) : mixed

Creates a new image that is a copy of an existing one with the image pixels "imploded" by the specified percentage.

Parameter-Liste

radius

The radius of the implode

Rückgabewerte

Returns imploded Gmagick object.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Adds a label to an image

  • « Gmagick::implodeimage
  • Gmagick::levelimage »
  • PHP Manual
  • Gmagick
  • Adds a label to an image

Gmagick::labelimage

(PECL gmagick >= Unknown)

Gmagick::labelimage — Adds a label to an image

Beschreibung

public Gmagick::labelimage ( string $label ) : mixed

Adds a label to an image.

Parameter-Liste

label

The label to add

Rückgabewerte

Gmagick with label.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Adjusts the levels of an image

  • « Gmagick::labelimage
  • Gmagick::magnifyimage »
  • PHP Manual
  • Gmagick
  • Adjusts the levels of an image

Gmagick::levelimage

(PECL gmagick >= Unknown)

Gmagick::levelimage — Adjusts the levels of an image

Beschreibung

public Gmagick::levelimage ( float $blackPoint , float $gamma , float $whitePoint , int $channel = Gmagick::CHANNEL_DEFAULT ) : mixed

Adjusts the levels of an image by scaling the colors falling between specified white and black points to the full available quantum range. The parameters provided represent the black, mid, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. Mid point specifies a gamma correction to apply to the image. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

Parameter-Liste

blackPoint

The image black point

gamma

The gamma value

whitePoint

The image white point

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Gmagick object with image levelled.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Scales an image proportionally 2x

  • « Gmagick::levelimage
  • Gmagick::mapimage »
  • PHP Manual
  • Gmagick
  • Scales an image proportionally 2x

Gmagick::magnifyimage

(PECL gmagick >= Unknown)

Gmagick::magnifyimage — Scales an image proportionally 2x

Beschreibung

public Gmagick::magnifyimage ( ) : mixed

Conveniently scales an image proportionally to twice its original size.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Magnified Gmagick object.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Replaces the colors of an image with the closest color from a reference image

  • « Gmagick::magnifyimage
  • Gmagick::medianfilterimage »
  • PHP Manual
  • Gmagick
  • Replaces the colors of an image with the closest color from a reference image

Gmagick::mapimage

(PECL gmagick >= Unknown)

Gmagick::mapimage — Replaces the colors of an image with the closest color from a reference image

Beschreibung

public Gmagick::mapimage ( gmagick $gmagick , bool $dither ) : Gmagick

Replaces the colors of an image with the closest color from a reference image.

Parameter-Liste

gmagick

The reference image

dither

Set this integer value to something other than zero to dither the mapped image

Rückgabewerte

Gmagick object

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Applies a digital filter

  • « Gmagick::mapimage
  • Gmagick::minifyimage »
  • PHP Manual
  • Gmagick
  • Applies a digital filter

Gmagick::medianfilterimage

(PECL gmagick >= Unknown)

Gmagick::medianfilterimage — Applies a digital filter

Beschreibung

public Gmagick::medianfilterimage ( float $radius ) : void

Applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.

Parameter-Liste

radius

The radius of the pixel neighborhood.

Rückgabewerte

Gmagick object with median filter applied.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Scales an image proportionally to half its size

  • « Gmagick::medianfilterimage
  • Gmagick::modulateimage »
  • PHP Manual
  • Gmagick
  • Scales an image proportionally to half its size

Gmagick::minifyimage

(PECL gmagick >= Unknown)

Gmagick::minifyimage — Scales an image proportionally to half its size

Beschreibung

public Gmagick::minifyimage ( ) : Gmagick

A convenient method that scales an image proportionally to one-half its original size

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Control the brightness, saturation, and hue

  • « Gmagick::minifyimage
  • Gmagick::motionblurimage »
  • PHP Manual
  • Gmagick
  • Control the brightness, saturation, and hue

Gmagick::modulateimage

(PECL gmagick >= Unknown)

Gmagick::modulateimage — Control the brightness, saturation, and hue

Beschreibung

public Gmagick::modulateimage ( float $brightness , float $saturation , float $hue ) : Gmagick

Lets you control the brightness, saturation, and hue of an image. Hue is the percentage of absolute rotation from the current position. For example 50 results in a counter-clockwise rotation of 90 degrees, 150 results in a clockwise rotation of 90 degrees, with 0 and 200 both resulting in a rotation of 180 degrees.

Parameter-Liste

brightness

The percent change in brighness (-100 thru +100).

saturation

The percent change in saturation (-100 thru +100)

hue

The percent change in hue (-100 thru +100)

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Simulates motion blur

  • « Gmagick::modulateimage
  • Gmagick::newimage »
  • PHP Manual
  • Gmagick
  • Simulates motion blur

Gmagick::motionblurimage

(PECL gmagick >= Unknown)

Gmagick::motionblurimage — Simulates motion blur

Beschreibung

public Gmagick::motionblurimage ( float $radius , float $sigma , float $angle ) : Gmagick

Simulates motion blur. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

Parameter-Liste

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Creates a new image

  • « Gmagick::motionblurimage
  • Gmagick::nextimage »
  • PHP Manual
  • Gmagick
  • Creates a new image

Gmagick::newimage

(PECL gmagick >= Unknown)

Gmagick::newimage — Creates a new image

Beschreibung

public Gmagick::newimage ( int $width , int $height , string $background , string $format = ? ) : Gmagick

Creates a new image with the specified background color

Parameter-Liste

width

Width of the new image

height

Height of the new image

background

The background color used for this image (as float)

format

Image format.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Moves to the next image

  • « Gmagick::newimage
  • Gmagick::normalizeimage »
  • PHP Manual
  • Gmagick
  • Moves to the next image

Gmagick::nextimage

(PECL gmagick >= Unknown)

Gmagick::nextimage — Moves to the next image

Beschreibung

public Gmagick::nextimage ( ) : bool

Associates the next image in the image list with an Gmagick object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Enhances the contrast of a color image

  • « Gmagick::nextimage
  • Gmagick::oilpaintimage »
  • PHP Manual
  • Gmagick
  • Enhances the contrast of a color image

Gmagick::normalizeimage

(PECL gmagick >= Unknown)

Gmagick::normalizeimage — Enhances the contrast of a color image

Beschreibung

public Gmagick::normalizeimage ( int $channel = ? ) : Gmagick

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available.

Parameter-Liste

channel

Identify which channel to normalize

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Simulates an oil painting

  • « Gmagick::normalizeimage
  • Gmagick::previousimage »
  • PHP Manual
  • Gmagick
  • Simulates an oil painting

Gmagick::oilpaintimage

(PECL gmagick >= Unknown)

Gmagick::oilpaintimage — Simulates an oil painting

Beschreibung

public Gmagick::oilpaintimage ( float $radius ) : Gmagick

Applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

Parameter-Liste

radius

The radius of the circular neighborhood.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Move to the previous image in the object

  • « Gmagick::oilpaintimage
  • Gmagick::profileimage »
  • PHP Manual
  • Gmagick
  • Move to the previous image in the object

Gmagick::previousimage

(PECL gmagick >= Unknown)

Gmagick::previousimage — Move to the previous image in the object

Beschreibung

public Gmagick::previousimage ( ) : bool

Associates the previous image in an image list with the Gmagick object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Adds or removes a profile from an image

  • « Gmagick::previousimage
  • Gmagick::quantizeimage »
  • PHP Manual
  • Gmagick
  • Adds or removes a profile from an image

Gmagick::profileimage

(PECL gmagick >= Unknown)

Gmagick::profileimage — Adds or removes a profile from an image

Beschreibung

public Gmagick::profileimage ( string $name , string $profile ) : Gmagick

Adds or removes a ICC, IPTC, or generic profile from an image. If the profile is NULL, it is removed from the image otherwise added. Use a name of '*' and a profile of NULL to remove all profiles from the image.

Parameter-Liste

name

Name of profile to add or remove: ICC, IPTC, or generic profile.

profile

The profile.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Analyzes the colors within a reference image

  • « Gmagick::profileimage
  • Gmagick::quantizeimages »
  • PHP Manual
  • Gmagick
  • Analyzes the colors within a reference image

Gmagick::quantizeimage

(PECL gmagick >= Unknown)

Gmagick::quantizeimage — Analyzes the colors within a reference image

Beschreibung

public Gmagick::quantizeimage ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError ) : Gmagick

Analyzes the colors within a reference image and chooses a fixed number of colors to represent the image. The goal of the algorithm is to minimize the color difference between the input and output image while minimizing the processing time.

Parameter-Liste

numColors

The number of colors.

colorspace

Perform color reduction in this colorspace, typically RGBColorspace.

treeDepth

Normally, this integer value is zero or one. A zero or one tells Quantize to choose a optimal tree depth of Log4(number_colors).% A tree of this depth generally allows the best representation of the reference image with the least amount of memory and the fastest computational speed. In some cases, such as an image with low color dispersion (a few number of colors), a value other than Log4(number_colors) is required. To expand the color tree completely, use a value of 8.

dither

A value other than zero distributes the difference between an original image and the corresponding color reduced algorithm to neighboring pixels along a Hilbert curve.

measureError

A value other than zero measures the difference between the original and quantized images. This difference is the total quantization error. The error is computed by summing over all pixels in an image the distance squared in RGB space between each reference pixel value and its quantized value.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


The quantizeimages purpose

  • « Gmagick::quantizeimage
  • Gmagick::queryfontmetrics »
  • PHP Manual
  • Gmagick
  • The quantizeimages purpose

Gmagick::quantizeimages

(PECL gmagick >= Unknown)

Gmagick::quantizeimages — The quantizeimages purpose

Beschreibung

public Gmagick::quantizeimages ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError ) : Gmagick

Analyzes the colors within a sequence of images and chooses a fixed number of colors to represent the image. The goal of the algorithm is to minimize the color difference between the input and output image while minimizing the processing time.

Parameter-Liste

numColors

The number of colors.

colorspace

Perform color reduction in this colorspace, typically RGBColorspace.

treeDepth

Normally, this integer value is zero or one. A zero or one tells Quantize to choose a optimal tree depth of Log4(number_colors).% A tree of this depth generally allows the best representation of the reference image with the least amount of memory and the fastest computational speed. In some cases, such as an image with low color dispersion (a few number of colors), a value other than Log4(number_colors) is required. To expand the color tree completely, use a value of 8.

dither

A value other than zero distributes the difference between an original image and the corresponding color reduced algorithm to neighboring pixels along a Hilbert curve.

measureError

A value other than zero measures the difference between the original and quantized images. This difference is the total quantization error. The error is computed by summing over all pixels in an image the distance squared in RGB space between each reference pixel value and its quantized value.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns an array representing the font metrics

  • « Gmagick::quantizeimages
  • Gmagick::queryfonts »
  • PHP Manual
  • Gmagick
  • Returns an array representing the font metrics

Gmagick::queryfontmetrics

(PECL gmagick >= Unknown)

Gmagick::queryfontmetrics — Returns an array representing the font metrics

Beschreibung

public Gmagick::queryfontmetrics ( GmagickDraw $draw , string $text ) : array

MagickQueryFontMetrics() returns an array representing the font metrics.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns the configured fonts

  • « Gmagick::queryfontmetrics
  • Gmagick::queryformats »
  • PHP Manual
  • Gmagick
  • Returns the configured fonts

Gmagick::queryfonts

(PECL gmagick >= Unknown)

Gmagick::queryfonts — Returns the configured fonts

Beschreibung

public Gmagick::queryfonts ( string $pattern = "*" ) : array

Returns fonts supported by Gmagick.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Returns formats supported by Gmagick

  • « Gmagick::queryfonts
  • Gmagick::radialblurimage »
  • PHP Manual
  • Gmagick
  • Returns formats supported by Gmagick

Gmagick::queryformats

(PECL gmagick >= Unknown)

Gmagick::queryformats — Returns formats supported by Gmagick

Beschreibung

public Gmagick::queryformats ( string $pattern = "*" ) : array

Returns formats supported by Gmagick.

Parameter-Liste

pattern

Specifies a string containing a pattern.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Radial blurs an image

  • « Gmagick::queryformats
  • Gmagick::raiseimage »
  • PHP Manual
  • Gmagick
  • Radial blurs an image

Gmagick::radialblurimage

(PECL gmagick >= Unknown)

Gmagick::radialblurimage — Radial blurs an image

Beschreibung

public Gmagick::radialblurimage ( float $angle , int $channel = Gmagick::CHANNEL_DEFAULT ) : Gmagick

Radial blurs an image.

Parameter-Liste

angle

The angle of the blur in degrees.

channel

Related channel

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Creates a simulated 3d button-like effect

  • « Gmagick::radialblurimage
  • Gmagick::read »
  • PHP Manual
  • Gmagick
  • Creates a simulated 3d button-like effect

Gmagick::raiseimage

(PECL gmagick >= Unknown)

Gmagick::raiseimage — Creates a simulated 3d button-like effect

Beschreibung

public Gmagick::raiseimage ( int $width , int $height , int $x , int $y , bool $raise ) : Gmagick

Creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

Parameter-Liste

width

Width of the area to raise.

height

Height of the area to raise.

x

X coordinate

y

Y coordinate

raise

A value other than zero creates a 3-D raise effect, otherwise it has a lowered effect.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Reads image from filename

  • « Gmagick::raiseimage
  • Gmagick::readimage »
  • PHP Manual
  • Gmagick
  • Reads image from filename

Gmagick::read

(PECL gmagick >= Unknown)

Gmagick::read — Reads image from filename

Beschreibung

public Gmagick::read ( string $filename ) : Gmagick

Reads image from filename.

Parameter-Liste

filename

The image filename.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Reads image from filename

  • « Gmagick::read
  • Gmagick::readimageblob »
  • PHP Manual
  • Gmagick
  • Reads image from filename

Gmagick::readimage

(PECL gmagick >= Unknown)

Gmagick::readimage — Reads image from filename

Beschreibung

public Gmagick::readimage ( string $filename ) : Gmagick

Reads image from filename.

Parameter-Liste

filename

The image filename.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Reads image from a binary string

  • « Gmagick::readimage
  • Gmagick::readimagefile »
  • PHP Manual
  • Gmagick
  • Reads image from a binary string

Gmagick::readimageblob

(PECL gmagick >= Unknown)

Gmagick::readimageblob — Reads image from a binary string

Beschreibung

public Gmagick::readimageblob ( string $imageContents , string $filename = ? ) : Gmagick

Reads image from a binary string.

Parameter-Liste

imageContents

Content of image

filename

The image filename.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


The readimagefile purpose

  • « Gmagick::readimageblob
  • Gmagick::reducenoiseimage »
  • PHP Manual
  • Gmagick
  • The readimagefile purpose

Gmagick::readimagefile

(PECL gmagick >= Unknown)

Gmagick::readimagefile — The readimagefile purpose

Beschreibung

public Gmagick::readimagefile ( resource $fp , string $filename = ? ) : Gmagick

Reads an image or image sequence from an open file descriptor.

Parameter-Liste

fp

The file descriptor.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Smooths the contours of an image

  • « Gmagick::readimagefile
  • Gmagick::removeimage »
  • PHP Manual
  • Gmagick
  • Smooths the contours of an image

Gmagick::reducenoiseimage

(PECL gmagick >= Unknown)

Gmagick::reducenoiseimage — Smooths the contours of an image

Beschreibung

public Gmagick::reducenoiseimage ( float $radius ) : Gmagick

Smooths the contours of an image while still preserving edge information. The algorithm works by replacing each pixel with its neighbor closest in value. A neighbor is defined by radius. Use a radius of 0 and Gmagick::reduceNoiseImage() selects a suitable radius for you.

Parameter-Liste

radius

The radius of the pixel neighborhood.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Removes an image from the image list

  • « Gmagick::reducenoiseimage
  • Gmagick::removeimageprofile »
  • PHP Manual
  • Gmagick
  • Removes an image from the image list

Gmagick::removeimage

(PECL gmagick >= Unknown)

Gmagick::removeimage — Removes an image from the image list

Beschreibung

public Gmagick::removeimage ( ) : Gmagick

Removes an image from the image list.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Removes the named image profile and returns it

  • « Gmagick::removeimage
  • Gmagick::resampleimage »
  • PHP Manual
  • Gmagick
  • Removes the named image profile and returns it

Gmagick::removeimageprofile

(PECL gmagick >= Unknown)

Gmagick::removeimageprofile — Removes the named image profile and returns it

Beschreibung

public Gmagick::removeimageprofile ( string $name ) : string

Removes the named image profile and returns it.

Parameter-Liste

name

Name of profile to return: ICC, IPTC, or generic profile.

Rückgabewerte

The named profile.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Resample image to desired resolution

  • « Gmagick::removeimageprofile
  • Gmagick::resizeimage »
  • PHP Manual
  • Gmagick
  • Resample image to desired resolution

Gmagick::resampleimage

(PECL gmagick >= Unknown)

Gmagick::resampleimage — Resample image to desired resolution

Beschreibung

public Gmagick::resampleimage ( float $xResolution , float $yResolution , int $filter , float $blur ) : Gmagick

Resample image to desired resolution.

Parameter-Liste

xResolution

The new image x resolution.

yResolution

The new image y resolution.

filter

Image filter to use.

blur

The blur factor where larger than 1 is blurry, smaller than 1 is sharp.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Scales an image

  • « Gmagick::resampleimage
  • Gmagick::rollimage »
  • PHP Manual
  • Gmagick
  • Scales an image

Gmagick::resizeimage

(PECL gmagick >= Unknown)

Gmagick::resizeimage — Scales an image

Beschreibung

public Gmagick::resizeimage ( int $width , int $height , int $filter , float $blur , bool $fit = false ) : Gmagick

Scales an image to the desired dimensions with a filter.

Parameter-Liste

width

The number of columns in the scaled image.

height

The number of rows in the scaled image.

filter

Image filter to use.

blur

The blur factor where larger than 1 is blurry, lesser than 1 is sharp.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Offsets an image

  • « Gmagick::resizeimage
  • Gmagick::rotateimage »
  • PHP Manual
  • Gmagick
  • Offsets an image

Gmagick::rollimage

(PECL gmagick >= Unknown)

Gmagick::rollimage — Offsets an image

Beschreibung

public Gmagick::rollimage ( int $x , int $y ) : Gmagick

Offsets an image as defined by x and y.

Parameter-Liste

x

The x offset.

y

The y offset.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Rotates an image

  • « Gmagick::rollimage
  • Gmagick::scaleimage »
  • PHP Manual
  • Gmagick
  • Rotates an image

Gmagick::rotateimage

(PECL gmagick >= Unknown)

Gmagick::rotateimage — Rotates an image

Beschreibung

public Gmagick::rotateimage ( mixed $color , float $degrees ) : Gmagick

Rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.

Parameter-Liste

color

The background pixel.

degrees

The number of degrees to rotate the image.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Scales the size of an image

  • « Gmagick::rotateimage
  • Gmagick::separateimagechannel »
  • PHP Manual
  • Gmagick
  • Scales the size of an image

Gmagick::scaleimage

(PECL gmagick >= Unknown)

Gmagick::scaleimage — Scales the size of an image

Beschreibung

public Gmagick::scaleimage ( int $width , int $height , bool $fit = false ) : Gmagick

Scales the size of an image to the given dimensions. The other parameter will be calculated if 0 is passed as either param.

Parameter-Liste

width

The number of columns in the scaled image.

height

The number of rows in the scaled image.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Separates a channel from the image

  • « Gmagick::scaleimage
  • Gmagick::setCompressionQuality »
  • PHP Manual
  • Gmagick
  • Separates a channel from the image

Gmagick::separateimagechannel

(PECL gmagick >= Unknown)

Gmagick::separateimagechannel — Separates a channel from the image

Beschreibung

public Gmagick::separateimagechannel ( int $channel ) : Gmagick

Separates a channel from the image and returns a grayscale image. A channel is a particular color component of each pixel in the image.

Parameter-Liste

channel

Identify which channel to extract: RedChannel, GreenChannel, BlueChannel, OpacityChannel, CyanChannel, MagentaChannel, YellowChannel, BlackChannel.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the object's default compression quality

  • « Gmagick::separateimagechannel
  • Gmagick::setfilename »
  • PHP Manual
  • Gmagick
  • Sets the object's default compression quality

Gmagick::setCompressionQuality

(No version information available, might only be in Git)

Gmagick::setCompressionQuality — Sets the object's default compression quality

Beschreibung

Gmagick::setCompressionQuality ( int $quality = 75 ) : Gmagick

Sets the object's default compression quality.

Parameter-Liste

quality

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.

Beispiele

Beispiel #1 Gmagick::setCompressionQuality()

<?php
$gm = new Gmagick();
$gm->read("magick:rose");
$gm->setCompressionQuality(2);
?>


Sets the filename before you read or write the image

  • « Gmagick::setCompressionQuality
  • Gmagick::setimagebackgroundcolor »
  • PHP Manual
  • Gmagick
  • Sets the filename before you read or write the image

Gmagick::setfilename

(PECL gmagick >= Unknown)

Gmagick::setfilename — Sets the filename before you read or write the image

Beschreibung

public Gmagick::setfilename ( string $filename ) : Gmagick

Sets the filename before you read or write an image file.

Parameter-Liste

filename

The image filename.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image background color

  • « Gmagick::setfilename
  • Gmagick::setimageblueprimary »
  • PHP Manual
  • Gmagick
  • Sets the image background color

Gmagick::setimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::setimagebackgroundcolor — Sets the image background color

Beschreibung

public Gmagick::setimagebackgroundcolor ( GmagickPixel $color ) : Gmagick

Sets the image background color.

Parameter-Liste

color

The background pixel wand.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image chromaticity blue primary point

  • « Gmagick::setimagebackgroundcolor
  • Gmagick::setimagebordercolor »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity blue primary point

Gmagick::setimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::setimageblueprimary — Sets the image chromaticity blue primary point

Beschreibung

public Gmagick::setimageblueprimary ( float $x , float $y ) : Gmagick

Sets the image chromaticity blue primary point.

Parameter-Liste

x

The blue primary x-point.

y

The blue primary y-point.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image border color

  • « Gmagick::setimageblueprimary
  • Gmagick::setimagechanneldepth »
  • PHP Manual
  • Gmagick
  • Sets the image border color

Gmagick::setimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::setimagebordercolor — Sets the image border color

Beschreibung

public Gmagick::setimagebordercolor ( GmagickPixel $color ) : Gmagick

Sets the image border color.

Parameter-Liste

color

The border pixel wand.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the depth of a particular image channel

  • « Gmagick::setimagebordercolor
  • Gmagick::setimagecolorspace »
  • PHP Manual
  • Gmagick
  • Sets the depth of a particular image channel

Gmagick::setimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::setimagechanneldepth — Sets the depth of a particular image channel

Beschreibung

public Gmagick::setimagechanneldepth ( int $channel , int $depth ) : Gmagick

Sets the depth of a particular image channel.

Parameter-Liste

channel

Identify which channel to extract: RedChannel, GreenChannel, BlueChannel, OpacityChannel, CyanChannel, MagentaChannel, YellowChannel, BlackChannel.

depth

The image depth in bits.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image colorspace

  • « Gmagick::setimagechanneldepth
  • Gmagick::setimagecompose »
  • PHP Manual
  • Gmagick
  • Sets the image colorspace

Gmagick::setimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::setimagecolorspace — Sets the image colorspace

Beschreibung

public Gmagick::setimagecolorspace ( int $colorspace ) : Gmagick

Sets the image colorspace.

Parameter-Liste

colorspace

The image colorspace: UndefinedColorspace, RGBColorspace, GRAYColorspace, TransparentColorspace, OHTAColorspace, XYZColorspace, YCbCrColorspace, YCCColorspace, YIQColorspace, YPbPrColorspace, YPbPrColorspace, YUVColorspace, CMYKColorspace, sRGBColorspace, HSLColorspace, or HWBColorspace.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image composite operator

  • « Gmagick::setimagecolorspace
  • Gmagick::setimagedelay »
  • PHP Manual
  • Gmagick
  • Sets the image composite operator

Gmagick::setimagecompose

(PECL gmagick >= Unknown)

Gmagick::setimagecompose — Sets the image composite operator

Beschreibung

public Gmagick::setimagecompose ( int $composite ) : Gmagick

Sets the image composite operator.

Parameter-Liste

composite

The image composite operator.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image delay

  • « Gmagick::setimagecompose
  • Gmagick::setimagedepth »
  • PHP Manual
  • Gmagick
  • Sets the image delay

Gmagick::setimagedelay

(PECL gmagick >= Unknown)

Gmagick::setimagedelay — Sets the image delay

Beschreibung

public Gmagick::setimagedelay ( int $delay ) : Gmagick

Sets the image delay

Parameter-Liste

delay

The image delay in 1/100th of a second.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image depth

  • « Gmagick::setimagedelay
  • Gmagick::setimagedispose »
  • PHP Manual
  • Gmagick
  • Sets the image depth

Gmagick::setimagedepth

(PECL gmagick >= Unknown)

Gmagick::setimagedepth — Sets the image depth

Beschreibung

public Gmagick::setimagedepth ( int $depth ) : Gmagick

Sets the image depth

Parameter-Liste

depth

The image depth in bits: 8, 16, or 32.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image disposal method

  • « Gmagick::setimagedepth
  • Gmagick::setimagefilename »
  • PHP Manual
  • Gmagick
  • Sets the image disposal method

Gmagick::setimagedispose

(PECL gmagick >= Unknown)

Gmagick::setimagedispose — Sets the image disposal method

Beschreibung

public Gmagick::setimagedispose ( int $disposeType ) : Gmagick

Sets the image disposal method.

Parameter-Liste

disposeType

The image disposal type.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the filename of a particular image in a sequence

  • « Gmagick::setimagedispose
  • Gmagick::setimageformat »
  • PHP Manual
  • Gmagick
  • Sets the filename of a particular image in a sequence

Gmagick::setimagefilename

(PECL gmagick >= Unknown)

Gmagick::setimagefilename — Sets the filename of a particular image in a sequence

Beschreibung

public Gmagick::setimagefilename ( string $filename ) : Gmagick

Sets the filename of a particular image in a sequence.

Parameter-Liste

filename

The image filename.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the format of a particular image

  • « Gmagick::setimagefilename
  • Gmagick::setimagegamma »
  • PHP Manual
  • Gmagick
  • Sets the format of a particular image

Gmagick::setimageformat

(PECL gmagick >= Unknown)

Gmagick::setimageformat — Sets the format of a particular image

Beschreibung

public Gmagick::setimageformat ( string $imageFormat ) : Gmagick

Sets the format of a particular image in a sequence.

Parameter-Liste

imageFormat

The image format.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image gamma

  • « Gmagick::setimageformat
  • Gmagick::setimagegreenprimary »
  • PHP Manual
  • Gmagick
  • Sets the image gamma

Gmagick::setimagegamma

(PECL gmagick >= Unknown)

Gmagick::setimagegamma — Sets the image gamma

Beschreibung

public Gmagick::setimagegamma ( float $gamma ) : Gmagick

Sets the image gamma.

Parameter-Liste

gamma

The image gamma.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image chromaticity green primary point

  • « Gmagick::setimagegamma
  • Gmagick::setimageindex »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity green primary point

Gmagick::setimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::setimagegreenprimary — Sets the image chromaticity green primary point

Beschreibung

public Gmagick::setimagegreenprimary ( float $x , float $y ) : Gmagick

Sets the image chromaticity green primary point.

Parameter-Liste

x

The chromaticity green primary x-point.

y

The chromaticity green primary y-point.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Set the iterator to the position in the image list specified with the index parameter

  • « Gmagick::setimagegreenprimary
  • Gmagick::setimageinterlacescheme »
  • PHP Manual
  • Gmagick
  • Set the iterator to the position in the image list specified with the index parameter

Gmagick::setimageindex

(PECL gmagick >= Unknown)

Gmagick::setimageindex — Set the iterator to the position in the image list specified with the index parameter

Beschreibung

public Gmagick::setimageindex ( int $index ) : Gmagick

Set the iterator to the position in the image list specified with the index parameter.

Parameter-Liste

index

The scene number.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the interlace scheme of the image

  • « Gmagick::setimageindex
  • Gmagick::setimageiterations »
  • PHP Manual
  • Gmagick
  • Sets the interlace scheme of the image

Gmagick::setimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::setimageinterlacescheme — Sets the interlace scheme of the image

Beschreibung

public Gmagick::setimageinterlacescheme ( int $interlace ) : Gmagick

Sets the interlace scheme of the image.

Parameter-Liste

interlace

The image interlace scheme: NoInterlace, LineInterlace, PlaneInterlace, PartitionInterlace.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image iterations

  • « Gmagick::setimageinterlacescheme
  • Gmagick::setimageprofile »
  • PHP Manual
  • Gmagick
  • Sets the image iterations

Gmagick::setimageiterations

(PECL gmagick >= Unknown)

Gmagick::setimageiterations — Sets the image iterations

Beschreibung

public Gmagick::setimageiterations ( int $iterations ) : Gmagick

Sets the image iterations.

Parameter-Liste

iterations

The image delay in 1/100th of a second.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Adds a named profile to the Gmagick object

  • « Gmagick::setimageiterations
  • Gmagick::setimageredprimary »
  • PHP Manual
  • Gmagick
  • Adds a named profile to the Gmagick object

Gmagick::setimageprofile

(PECL gmagick >= Unknown)

Gmagick::setimageprofile — Adds a named profile to the Gmagick object

Beschreibung

public Gmagick::setimageprofile ( string $name , string $profile ) : Gmagick

Adds a named profile to the Gmagick object. If a profile with the same name already exists, it is replaced. This method differs from the Gmagick::profileimage() method in that it does not apply any CMS color profiles.

Parameter-Liste

name

Name of profile to add or remove: ICC, IPTC, or generic profile.

profile

The profile.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image chromaticity red primary point

  • « Gmagick::setimageprofile
  • Gmagick::setimagerenderingintent »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity red primary point

Gmagick::setimageredprimary

(PECL gmagick >= Unknown)

Gmagick::setimageredprimary — Sets the image chromaticity red primary point

Beschreibung

public Gmagick::setimageredprimary ( float $x , float $y ) : Gmagick

Sets the image chromaticity red primary point.

Parameter-Liste

x

The red primary x-point.

y

The red primary y-point.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image rendering intent

  • « Gmagick::setimageredprimary
  • Gmagick::setimageresolution »
  • PHP Manual
  • Gmagick
  • Sets the image rendering intent

Gmagick::setimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::setimagerenderingintent — Sets the image rendering intent

Beschreibung

public Gmagick::setimagerenderingintent ( int $rendering_intent ) : Gmagick

Sets the image rendering intent.

Parameter-Liste

rendering_intent

The image rendering intent: UndefinedIntent, SaturationIntent, PerceptualIntent, AbsoluteIntent, or RelativeIntent.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image resolution

  • « Gmagick::setimagerenderingintent
  • Gmagick::setimagescene »
  • PHP Manual
  • Gmagick
  • Sets the image resolution

Gmagick::setimageresolution

(PECL gmagick >= Unknown)

Gmagick::setimageresolution — Sets the image resolution

Beschreibung

public Gmagick::setimageresolution ( float $xResolution , float $yResolution ) : Gmagick

Sets the image resolution.

Parameter-Liste

xResolution

The image x resolution.

yResolution

The image y resolution.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image scene

  • « Gmagick::setimageresolution
  • Gmagick::setimagetype »
  • PHP Manual
  • Gmagick
  • Sets the image scene

Gmagick::setimagescene

(PECL gmagick >= Unknown)

Gmagick::setimagescene — Sets the image scene

Beschreibung

public Gmagick::setimagescene ( int $scene ) : Gmagick

Sets the image scene.

Parameter-Liste

scene

The image scene number.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image type

  • « Gmagick::setimagescene
  • Gmagick::setimageunits »
  • PHP Manual
  • Gmagick
  • Sets the image type

Gmagick::setimagetype

(PECL gmagick >= Unknown)

Gmagick::setimagetype — Sets the image type

Beschreibung

public Gmagick::setimagetype ( int $imgType ) : Gmagick

Sets the image type.

Parameter-Liste

imgType

The image type: UndefinedType, BilevelType, GrayscaleType, GrayscaleMatteType, PaletteType, PaletteMatteType, TrueColorType, TrueColorMatteType, ColorSeparationType, ColorSeparationMatteType, or OptimizeType.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image units of resolution

  • « Gmagick::setimagetype
  • Gmagick::setimagewhitepoint »
  • PHP Manual
  • Gmagick
  • Sets the image units of resolution

Gmagick::setimageunits

(PECL gmagick >= Unknown)

Gmagick::setimageunits — Sets the image units of resolution

Beschreibung

public Gmagick::setimageunits ( int $resolution ) : Gmagick

Sets the image units of resolution.

Parameter-Liste

resolution

The image units of resolution : Undefinedresolution, PixelsPerInchResolution, or PixelsPerCentimeterResolution.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image chromaticity white point

  • « Gmagick::setimageunits
  • Gmagick::setsamplingfactors »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity white point

Gmagick::setimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::setimagewhitepoint — Sets the image chromaticity white point

Beschreibung

public Gmagick::setimagewhitepoint ( float $x , float $y ) : Gmagick

Sets the image chromaticity white point.

Parameter-Liste

x

The white x-point.

y

The white y-point.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the image sampling factors

  • « Gmagick::setimagewhitepoint
  • Gmagick::setsize »
  • PHP Manual
  • Gmagick
  • Sets the image sampling factors

Gmagick::setsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::setsamplingfactors — Sets the image sampling factors

Beschreibung

public Gmagick::setsamplingfactors ( array $factors ) : Gmagick

Sets the image sampling factors.

Parameter-Liste

factors

An array of doubles representing the sampling factor for each color component (in RGB order).

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Sets the size of the Gmagick object

  • « Gmagick::setsamplingfactors
  • Gmagick::shearimage »
  • PHP Manual
  • Gmagick
  • Sets the size of the Gmagick object

Gmagick::setsize

(PECL gmagick >= Unknown)

Gmagick::setsize — Sets the size of the Gmagick object

Beschreibung

public Gmagick::setsize ( int $columns , int $rows ) : Gmagick

Sets the size of the Gmagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

Parameter-Liste

columns

The width in pixels.

rows

The height in pixels.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Creating a parallelogram

  • « Gmagick::setsize
  • Gmagick::solarizeimage »
  • PHP Manual
  • Gmagick
  • Creating a parallelogram

Gmagick::shearimage

(PECL gmagick >= Unknown)

Gmagick::shearimage — Creating a parallelogram

Beschreibung

public Gmagick::shearimage ( mixed $color , float $xShear , float $yShear ) : Gmagick

Slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color.

Parameter-Liste

color

The background pixel wand.

xShear

The number of degrees to shear the image.

yShear

The number of degrees to shear the image.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Applies a solarizing effect to the image

  • « Gmagick::shearimage
  • Gmagick::spreadimage »
  • PHP Manual
  • Gmagick
  • Applies a solarizing effect to the image

Gmagick::solarizeimage

(PECL gmagick >= Unknown)

Gmagick::solarizeimage — Applies a solarizing effect to the image

Beschreibung

public Gmagick::solarizeimage ( int $threshold ) : Gmagick

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.

Parameter-Liste

threshold

Define the extent of the solarization.

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Randomly displaces each pixel in a block

  • « Gmagick::solarizeimage
  • Gmagick::stripimage »
  • PHP Manual
  • Gmagick
  • Randomly displaces each pixel in a block

Gmagick::spreadimage

(PECL gmagick >= Unknown)

Gmagick::spreadimage — Randomly displaces each pixel in a block

Beschreibung

public Gmagick::spreadimage ( float $radius ) : Gmagick

Special effects method that randomly displaces each pixel in a block defined by the radius parameter.

Parameter-Liste

radius

Choose a random pixel in a neighborhood of this extent.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Strips an image of all profiles and comments

  • « Gmagick::spreadimage
  • Gmagick::swirlimage »
  • PHP Manual
  • Gmagick
  • Strips an image of all profiles and comments

Gmagick::stripimage

(PECL gmagick >= Unknown)

Gmagick::stripimage — Strips an image of all profiles and comments

Beschreibung

public Gmagick::stripimage ( ) : Gmagick

Strips an image of all profiles and comments.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Swirls the pixels about the center of the image

  • « Gmagick::stripimage
  • Gmagick::thumbnailimage »
  • PHP Manual
  • Gmagick
  • Swirls the pixels about the center of the image

Gmagick::swirlimage

(PECL gmagick >= Unknown)

Gmagick::swirlimage — Swirls the pixels about the center of the image

Beschreibung

public Gmagick::swirlimage ( float $degrees ) : Gmagick

Swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.

Parameter-Liste

degrees

Define the tightness of the swirling effect.

Rückgabewerte

The Gmagick object on success

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Changes the size of an image

  • « Gmagick::swirlimage
  • Gmagick::trimimage »
  • PHP Manual
  • Gmagick
  • Changes the size of an image

Gmagick::thumbnailimage

(PECL gmagick >= Unknown)

Gmagick::thumbnailimage — Changes the size of an image

Beschreibung

public Gmagick::thumbnailimage ( int $width , int $height , bool $fit = false ) : Gmagick

Changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small low cost thumbnail images suited for display on the Web. If TRUE is given as a third parameter then columns and rows parameters are used as maximums for each side. Both sides will be scaled down until the match or are smaller than the parameter given for the side.

Parameter-Liste

width

Image width

height

Image height

Rückgabewerte

The Gmagick object on success.

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Remove edges from the image

  • « Gmagick::thumbnailimage
  • Gmagick::write »
  • PHP Manual
  • Gmagick
  • Remove edges from the image

Gmagick::trimimage

(PECL gmagick >= Unknown)

Gmagick::trimimage — Remove edges from the image

Beschreibung

public Gmagick::trimimage ( float $fuzz ) : Gmagick

Remove edges that are the background color from the image.

Parameter-Liste

fuzz

By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. This parameter represents the variation on the quantum range.

Rückgabewerte

The Gmagick object

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


Alias von Gmagick::writeimage

  • « Gmagick::trimimage
  • Gmagick::writeimage »
  • PHP Manual
  • Gmagick
  • Alias von Gmagick::writeimage

Gmagick::write

(PECL gmagick >= Unknown)

Gmagick::write — Alias von Gmagick::writeimage()

Beschreibung

Diese Methode ist ein Alias für: Gmagick::writeimage().


Writes an image to the specified filename

  • « Gmagick::write
  • GmagickDraw »
  • PHP Manual
  • Gmagick
  • Writes an image to the specified filename

Gmagick::writeimage

(PECL gmagick >= Unknown)

Gmagick::writeimage — Writes an image to the specified filename

Beschreibung

public Gmagick::writeimage ( string $filename , bool $all_frames = false ) : Gmagick

Writes an image to the specified filename. If the filename parameter is NULL, the image is written to the filename set by Gmagick::ReadImage() or Gmagick::SetImageFilename().

Parameter-Liste

filename

The image filename.

Rückgabewerte

The Gmagick object

Fehler/Exceptions

Wirft bei einem Fehler eine GmagickException.


The GmagickDraw class

(PECL gmagick >= Unknown)

Einführung

Klassenbeschreibung

GmagickDraw {
/* Methoden */
public annotate ( float $x , float $y , string $text ) : GmagickDraw
public arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed ) : GmagickDraw
public bezier ( array $coordinate_array ) : GmagickDraw
public ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end ) : GmagickDraw
public getfillcolor ( ) : GmagickPixel
public getfillopacity ( ) : float
public getfont ( ) : mixed
public getfontsize ( ) : float
public getfontstyle ( ) : int
public getfontweight ( ) : int
public getstrokecolor ( ) : GmagickPixel
public getstrokeopacity ( ) : float
public getstrokewidth ( ) : float
public gettextdecoration ( ) : int
public gettextencoding ( ) : mixed
public line ( float $sx , float $sy , float $ex , float $ey ) : GmagickDraw
public point ( float $x , float $y ) : GmagickDraw
public polygon ( array $coordinates ) : GmagickDraw
public polyline ( array $coordinate_array ) : GmagickDraw
public rectangle ( float $x1 , float $y1 , float $x2 , float $y2 ) : GmagickDraw
public rotate ( float $degrees ) : GmagickDraw
public roundrectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry ) : GmagickDraw
public scale ( float $x , float $y ) : GmagickDraw
public setfillcolor ( mixed $color ) : GmagickDraw
public setfillopacity ( float $fill_opacity ) : GmagickDraw
public setfont ( string $font ) : GmagickDraw
public setfontsize ( float $pointsize ) : GmagickDraw
public setfontstyle ( int $style ) : GmagickDraw
public setfontweight ( int $weight ) : GmagickDraw
public setstrokecolor ( mixed $color ) : GmagickDraw
public setstrokeopacity ( float $stroke_opacity ) : GmagickDraw
public setstrokewidth ( float $width ) : GmagickDraw
public settextdecoration ( int $decoration ) : GmagickDraw
public settextencoding ( string $encoding ) : GmagickDraw
}

Inhaltsverzeichnis

  • GmagickDraw::annotate — Draws text on the image
  • GmagickDraw::arc — Draws an arc
  • GmagickDraw::bezier — Draws a bezier curve
  • GmagickDraw::ellipse — Draws an ellipse on the image
  • GmagickDraw::getfillcolor — Returns the fill color
  • GmagickDraw::getfillopacity — Returns the opacity used when drawing
  • GmagickDraw::getfont — Returns the font
  • GmagickDraw::getfontsize — Returns the font pointsize
  • GmagickDraw::getfontstyle — Returns the font style
  • GmagickDraw::getfontweight — Returns the font weight
  • GmagickDraw::getstrokecolor — Returns the color used for stroking object outlines
  • GmagickDraw::getstrokeopacity — Returns the opacity of stroked object outlines
  • GmagickDraw::getstrokewidth — Returns the width of the stroke used to draw object outlines
  • GmagickDraw::gettextdecoration — Returns the text decoration
  • GmagickDraw::gettextencoding — Returns the code set used for text annotations
  • GmagickDraw::line — The line purpose
  • GmagickDraw::point — Draws a point
  • GmagickDraw::polygon — Draws a polygon
  • GmagickDraw::polyline — Draws a polyline
  • GmagickDraw::rectangle — Draws a rectangle
  • GmagickDraw::rotate — Applies the specified rotation to the current coordinate space
  • GmagickDraw::roundrectangle — Draws a rounded rectangle
  • GmagickDraw::scale — Adjusts the scaling factor
  • GmagickDraw::setfillcolor — Sets the fill color to be used for drawing filled objects
  • GmagickDraw::setfillopacity — The setfillopacity purpose
  • GmagickDraw::setfont — Sets the fully-specified font to use when annotating with text
  • GmagickDraw::setfontsize — Sets the font pointsize to use when annotating with text
  • GmagickDraw::setfontstyle — Sets the font style to use when annotating with text
  • GmagickDraw::setfontweight — Sets the font weight
  • GmagickDraw::setstrokecolor — Sets the color used for stroking object outlines
  • GmagickDraw::setstrokeopacity — Specifies the opacity of stroked object outlines
  • GmagickDraw::setstrokewidth — Sets the width of the stroke used to draw object outlines
  • GmagickDraw::settextdecoration — Specifies a decoration
  • GmagickDraw::settextencoding — Specifies the text code set


Draws text on the image

  • « GmagickDraw
  • GmagickDraw::arc »
  • PHP Manual
  • GmagickDraw
  • Draws text on the image

GmagickDraw::annotate

(PECL gmagick >= Unknown)

GmagickDraw::annotate — Draws text on the image

Beschreibung

public GmagickDraw::annotate ( float $x , float $y , string $text ) : GmagickDraw

Draws text on the image.

Parameter-Liste

x

x ordinate to left of text

y

y ordinate to text baseline

text

text to draw

Rückgabewerte

The GmagickDraw object on success.


Draws an arc

  • « GmagickDraw::annotate
  • GmagickDraw::bezier »
  • PHP Manual
  • GmagickDraw
  • Draws an arc

GmagickDraw::arc

(PECL gmagick >= Unknown)

GmagickDraw::arc — Draws an arc

Beschreibung

public GmagickDraw::arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed ) : GmagickDraw

Draws an arc falling within a specified bounding rectangle on the image.

Parameter-Liste

sx

starting x ordinate of bounding rectangle

sy

starting y ordinate of bounding rectangle

ex

ending x ordinate of bounding rectangle

ey

ending y ordinate of bounding rectangle

sd

starting degrees of rotation

ed

ending degrees of rotation

Rückgabewerte

The GmagickDraw object on success.


Draws a bezier curve

  • « GmagickDraw::arc
  • GmagickDraw::ellipse »
  • PHP Manual
  • GmagickDraw
  • Draws a bezier curve

GmagickDraw::bezier

(PECL gmagick >= Unknown)

GmagickDraw::bezier — Draws a bezier curve

Beschreibung

public GmagickDraw::bezier ( array $coordinate_array ) : GmagickDraw

Draws a bezier curve through a set of points on the image.

Parameter-Liste

coordinate_array

Coordinates array

Rückgabewerte

The GmagickDraw object on success


Draws an ellipse on the image

  • « GmagickDraw::bezier
  • GmagickDraw::getfillcolor »
  • PHP Manual
  • GmagickDraw
  • Draws an ellipse on the image

GmagickDraw::ellipse

(PECL gmagick >= Unknown)

GmagickDraw::ellipse — Draws an ellipse on the image

Beschreibung

public GmagickDraw::ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end ) : GmagickDraw

Draws an ellipse on the image.

Parameter-Liste

ox

origin x ordinate

oy

origin y ordinate

rx

radius in x

ry

radius in y

start

starting rotation in degrees

end

ending rotation in degrees

Rückgabewerte

The GmagickDraw object on success


Returns the fill color

  • « GmagickDraw::ellipse
  • GmagickDraw::getfillopacity »
  • PHP Manual
  • GmagickDraw
  • Returns the fill color

GmagickDraw::getfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::getfillcolor — Returns the fill color

Beschreibung

public GmagickDraw::getfillcolor ( ) : GmagickPixel

Returns the fill color used for drawing filled objects.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The GmagickPixel fill color used for drawing filled objects.


Returns the opacity used when drawing

  • « GmagickDraw::getfillcolor
  • GmagickDraw::getfont »
  • PHP Manual
  • GmagickDraw
  • Returns the opacity used when drawing

GmagickDraw::getfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::getfillopacity — Returns the opacity used when drawing

Beschreibung

public GmagickDraw::getfillopacity ( ) : float

Returns the opacity used when drawing

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the opacity used when drawing using the fill color or fill texture. Fully opaque is 1.0.


Returns the font

  • « GmagickDraw::getfillopacity
  • GmagickDraw::getfontsize »
  • PHP Manual
  • GmagickDraw
  • Returns the font

GmagickDraw::getfont

(PECL gmagick >= Unknown)

GmagickDraw::getfont — Returns the font

Beschreibung

public GmagickDraw::getfont ( ) : mixed

Returns a string specifying the font used when annotating with text.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string on success and false if no font is set.


Returns the font pointsize

  • « GmagickDraw::getfont
  • GmagickDraw::getfontstyle »
  • PHP Manual
  • GmagickDraw
  • Returns the font pointsize

GmagickDraw::getfontsize

(PECL gmagick >= Unknown)

GmagickDraw::getfontsize — Returns the font pointsize

Beschreibung

public GmagickDraw::getfontsize ( ) : float

Returns the font pointsize used when annotating with text.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the font size associated with the current GmagickDraw object.


Returns the font style

  • « GmagickDraw::getfontsize
  • GmagickDraw::getfontweight »
  • PHP Manual
  • GmagickDraw
  • Returns the font style

GmagickDraw::getfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::getfontstyle — Returns the font style

Beschreibung

public GmagickDraw::getfontstyle ( ) : int

Returns the font style used when annotating with text.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the font style constant (STYLE_) associated with the GmagickDraw object or 0 if no style is set.


Returns the font weight

  • « GmagickDraw::getfontstyle
  • GmagickDraw::getstrokecolor »
  • PHP Manual
  • GmagickDraw
  • Returns the font weight

GmagickDraw::getfontweight

(PECL gmagick >= Unknown)

GmagickDraw::getfontweight — Returns the font weight

Beschreibung

public GmagickDraw::getfontweight ( ) : int

Returns the font weight used when annotating with text.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an int on success and 0 if no weight is set.


Returns the color used for stroking object outlines

  • « GmagickDraw::getfontweight
  • GmagickDraw::getstrokeopacity »
  • PHP Manual
  • GmagickDraw
  • Returns the color used for stroking object outlines

GmagickDraw::getstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::getstrokecolor — Returns the color used for stroking object outlines

Beschreibung

public GmagickDraw::getstrokecolor ( ) : GmagickPixel

Returns the color used for stroking object outlines.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an GmagickPixel object which describes the color.


Returns the opacity of stroked object outlines

  • « GmagickDraw::getstrokecolor
  • GmagickDraw::getstrokewidth »
  • PHP Manual
  • GmagickDraw
  • Returns the opacity of stroked object outlines

GmagickDraw::getstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::getstrokeopacity — Returns the opacity of stroked object outlines

Beschreibung

public GmagickDraw::getstrokeopacity ( ) : float

Returns the opacity of stroked object outlines.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a double describing the opacity.


Returns the width of the stroke used to draw object outlines

  • « GmagickDraw::getstrokeopacity
  • GmagickDraw::gettextdecoration »
  • PHP Manual
  • GmagickDraw
  • Returns the width of the stroke used to draw object outlines

GmagickDraw::getstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::getstrokewidth — Returns the width of the stroke used to draw object outlines

Beschreibung

public GmagickDraw::getstrokewidth ( ) : float

Returns the width of the stroke used to draw object outlines.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a double describing the stroke width.


Returns the text decoration

  • « GmagickDraw::getstrokewidth
  • GmagickDraw::gettextencoding »
  • PHP Manual
  • GmagickDraw
  • Returns the text decoration

GmagickDraw::gettextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::gettextdecoration — Returns the text decoration

Beschreibung

public GmagickDraw::gettextdecoration ( ) : int

Returns the decoration applied when annotating with text.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns one of the DECORATION_ constants and 0 if no decoration is set.


Returns the code set used for text annotations

  • « GmagickDraw::gettextdecoration
  • GmagickDraw::line »
  • PHP Manual
  • GmagickDraw
  • Returns the code set used for text annotations

GmagickDraw::gettextencoding

(PECL gmagick >= Unknown)

GmagickDraw::gettextencoding — Returns the code set used for text annotations

Beschreibung

public GmagickDraw::gettextencoding ( ) : mixed

Returns a string which specifies the code set used for text annotations.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string specifying the code set or false if text encoding is not set.


The line purpose

  • « GmagickDraw::gettextencoding
  • GmagickDraw::point »
  • PHP Manual
  • GmagickDraw
  • The line purpose

GmagickDraw::line

(PECL gmagick >= Unknown)

GmagickDraw::line — The line purpose

Beschreibung

public GmagickDraw::line ( float $sx , float $sy , float $ex , float $ey ) : GmagickDraw

Draws a line on the image using the current stroke color, stroke opacity, and stroke width.

Parameter-Liste

sx

starting x ordinate

sy

starting y ordinate

ex

ending x ordinate

ey

ending y ordinate

Rückgabewerte

The GmagickDraw object on success


Draws a point

  • « GmagickDraw::line
  • GmagickDraw::polygon »
  • PHP Manual
  • GmagickDraw
  • Draws a point

GmagickDraw::point

(PECL gmagick >= Unknown)

GmagickDraw::point — Draws a point

Beschreibung

public GmagickDraw::point ( float $x , float $y ) : GmagickDraw

Draws a point using the current stroke color and stroke thickness at the specified coordinates.

Parameter-Liste

x

target x coordinate

y

target y coordinate

Rückgabewerte

The GmagickDraw object on success


Draws a polygon

  • « GmagickDraw::point
  • GmagickDraw::polyline »
  • PHP Manual
  • GmagickDraw
  • Draws a polygon

GmagickDraw::polygon

(PECL gmagick >= Unknown)

GmagickDraw::polygon — Draws a polygon

Beschreibung

public GmagickDraw::polygon ( array $coordinates ) : GmagickDraw

Draws a polygon using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Parameter-Liste

coordinates

coordinate array

Rückgabewerte

The GmagickDraw object on success


Draws a polyline

  • « GmagickDraw::polygon
  • GmagickDraw::rectangle »
  • PHP Manual
  • GmagickDraw
  • Draws a polyline

GmagickDraw::polyline

(PECL gmagick >= Unknown)

GmagickDraw::polyline — Draws a polyline

Beschreibung

public GmagickDraw::polyline ( array $coordinate_array ) : GmagickDraw

Draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Parameter-Liste

coordinate_array

The array of coordinates

Rückgabewerte

The GmagickDraw object on success


Draws a rectangle

  • « GmagickDraw::polyline
  • GmagickDraw::rotate »
  • PHP Manual
  • GmagickDraw
  • Draws a rectangle

GmagickDraw::rectangle

(PECL gmagick >= Unknown)

GmagickDraw::rectangle — Draws a rectangle

Beschreibung

public GmagickDraw::rectangle ( float $x1 , float $y1 , float $x2 , float $y2 ) : GmagickDraw

Draws a rectangle given two coordinates and using the current stroke, stroke width, and fill settings.

Parameter-Liste

x1

x ordinate of first coordinate

y1

y ordinate of first coordinate

x2

x ordinate of second coordinate

y2

y ordinate of second coordinate

Rückgabewerte

The GmagickDraw object on success


Applies the specified rotation to the current coordinate space

  • « GmagickDraw::rectangle
  • GmagickDraw::roundrectangle »
  • PHP Manual
  • GmagickDraw
  • Applies the specified rotation to the current coordinate space

GmagickDraw::rotate

(PECL gmagick >= Unknown)

GmagickDraw::rotate — Applies the specified rotation to the current coordinate space

Beschreibung

public GmagickDraw::rotate ( float $degrees ) : GmagickDraw

Applies the specified rotation to the current coordinate space.

Parameter-Liste

degrees

degrees of rotation

Rückgabewerte

The GmagickDraw object on success


Draws a rounded rectangle

  • « GmagickDraw::rotate
  • GmagickDraw::scale »
  • PHP Manual
  • GmagickDraw
  • Draws a rounded rectangle

GmagickDraw::roundrectangle

(PECL gmagick >= Unknown)

GmagickDraw::roundrectangle — Draws a rounded rectangle

Beschreibung

public GmagickDraw::roundrectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry ) : GmagickDraw

Draws a rounded rectangle given two coordinates, x and y corner radiuses and using the current stroke, stroke width, and fill settings.

Parameter-Liste

x1

x ordinate of first coordinate

y1

y ordinate of first coordinate

x2

x ordinate of second coordinate

y2

y ordinate of second coordinate

rx

radius of corner in horizontal direction

ry

radius of corner in vertical direction

Rückgabewerte

The GmagickDraw object on success


Adjusts the scaling factor

  • « GmagickDraw::roundrectangle
  • GmagickDraw::setfillcolor »
  • PHP Manual
  • GmagickDraw
  • Adjusts the scaling factor

GmagickDraw::scale

(PECL gmagick >= Unknown)

GmagickDraw::scale — Adjusts the scaling factor

Beschreibung

public GmagickDraw::scale ( float $x , float $y ) : GmagickDraw

Adjusts the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

Parameter-Liste

x

horizontal scale factor

y

vertical scale factor

Rückgabewerte

The GmagickDraw object on success


Sets the fill color to be used for drawing filled objects

  • « GmagickDraw::scale
  • GmagickDraw::setfillopacity »
  • PHP Manual
  • GmagickDraw
  • Sets the fill color to be used for drawing filled objects

GmagickDraw::setfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::setfillcolor — Sets the fill color to be used for drawing filled objects

Beschreibung

public GmagickDraw::setfillcolor ( mixed $color ) : GmagickDraw

Sets the fill color to be used for drawing filled objects.

Parameter-Liste

color

GmagickPixel or string indicating color to use for filling.

Rückgabewerte

The GmagickDraw object on success.


The setfillopacity purpose

  • « GmagickDraw::setfillcolor
  • GmagickDraw::setfont »
  • PHP Manual
  • GmagickDraw
  • The setfillopacity purpose

GmagickDraw::setfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::setfillopacity — The setfillopacity purpose

Beschreibung

public GmagickDraw::setfillopacity ( float $fill_opacity ) : GmagickDraw

Sets the opacity to use when drawing using the fill color or fill texture. Setting it to 1.0 will make fill full opaque.

Parameter-Liste

fill_opacity

Fill opacity

Rückgabewerte

The GmagickDraw object on success


Sets the fully-specified font to use when annotating with text

  • « GmagickDraw::setfillopacity
  • GmagickDraw::setfontsize »
  • PHP Manual
  • GmagickDraw
  • Sets the fully-specified font to use when annotating with text

GmagickDraw::setfont

(PECL gmagick >= Unknown)

GmagickDraw::setfont — Sets the fully-specified font to use when annotating with text

Beschreibung

public GmagickDraw::setfont ( string $font ) : GmagickDraw

Sets the fully-specified font to use when annotating with text

Parameter-Liste

font

font name

Rückgabewerte

The GmagickDraw object on success


Sets the font pointsize to use when annotating with text

  • « GmagickDraw::setfont
  • GmagickDraw::setfontstyle »
  • PHP Manual
  • GmagickDraw
  • Sets the font pointsize to use when annotating with text

GmagickDraw::setfontsize

(PECL gmagick >= Unknown)

GmagickDraw::setfontsize — Sets the font pointsize to use when annotating with text

Beschreibung

public GmagickDraw::setfontsize ( float $pointsize ) : GmagickDraw

Sets the font pointsize to use when annotating with text.

Parameter-Liste

pointsize

Text pointsize

Rückgabewerte

The GmagickDraw object on success


Sets the font style to use when annotating with text

  • « GmagickDraw::setfontsize
  • GmagickDraw::setfontweight »
  • PHP Manual
  • GmagickDraw
  • Sets the font style to use when annotating with text

GmagickDraw::setfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::setfontstyle — Sets the font style to use when annotating with text

Beschreibung

public GmagickDraw::setfontstyle ( int $style ) : GmagickDraw

Sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.

Parameter-Liste

style

Font style (NormalStyle, ItalicStyle, ObliqueStyle, AnyStyle)

Rückgabewerte

The GmagickDraw object on success


Sets the font weight

  • « GmagickDraw::setfontstyle
  • GmagickDraw::setstrokecolor »
  • PHP Manual
  • GmagickDraw
  • Sets the font weight

GmagickDraw::setfontweight

(PECL gmagick >= Unknown)

GmagickDraw::setfontweight — Sets the font weight

Beschreibung

public GmagickDraw::setfontweight ( int $weight ) : GmagickDraw

Sets the font weight to use when annotating with text.

Parameter-Liste

weight

Font weight (valid range 100-900)

Rückgabewerte

The GmagickDraw object on success


Sets the color used for stroking object outlines

  • « GmagickDraw::setfontweight
  • GmagickDraw::setstrokeopacity »
  • PHP Manual
  • GmagickDraw
  • Sets the color used for stroking object outlines

GmagickDraw::setstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::setstrokecolor — Sets the color used for stroking object outlines

Beschreibung

public GmagickDraw::setstrokecolor ( mixed $color ) : GmagickDraw

Sets the color used for stroking object outlines.

Parameter-Liste

color

GmagickPixel or string representing the color for the stroke.

Rückgabewerte

The GmagickDraw object on success.


Specifies the opacity of stroked object outlines

  • « GmagickDraw::setstrokecolor
  • GmagickDraw::setstrokewidth »
  • PHP Manual
  • GmagickDraw
  • Specifies the opacity of stroked object outlines

GmagickDraw::setstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::setstrokeopacity — Specifies the opacity of stroked object outlines

Beschreibung

public GmagickDraw::setstrokeopacity ( float $stroke_opacity ) : GmagickDraw

Specifies the opacity of stroked object outlines.

Parameter-Liste

stroke_opacity

Stroke opacity. The value 1.0 is opaque.

Rückgabewerte

The GmagickDraw object on success


Sets the width of the stroke used to draw object outlines

  • « GmagickDraw::setstrokeopacity
  • GmagickDraw::settextdecoration »
  • PHP Manual
  • GmagickDraw
  • Sets the width of the stroke used to draw object outlines

GmagickDraw::setstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::setstrokewidth — Sets the width of the stroke used to draw object outlines

Beschreibung

public GmagickDraw::setstrokewidth ( float $width ) : GmagickDraw

Sets the width of the stroke used to draw object outlines

Parameter-Liste

width

Stroke width

Rückgabewerte

The GmagickDraw object on success


Specifies a decoration

  • « GmagickDraw::setstrokewidth
  • GmagickDraw::settextencoding »
  • PHP Manual
  • GmagickDraw
  • Specifies a decoration

GmagickDraw::settextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::settextdecoration — Specifies a decoration

Beschreibung

public GmagickDraw::settextdecoration ( int $decoration ) : GmagickDraw

Specifies a decoration to be applied when annotating with text.

Parameter-Liste

int

Text decoration. One of NoDecoration, UnderlineDecoration, OverlineDecoration, or LineThroughDecoration

Rückgabewerte

The GmagickDraw object on success


Specifies the text code set

  • « GmagickDraw::settextdecoration
  • GmagickPixel »
  • PHP Manual
  • GmagickDraw
  • Specifies the text code set

GmagickDraw::settextencoding

(PECL gmagick >= Unknown)

GmagickDraw::settextencoding — Specifies the text code set

Beschreibung

public GmagickDraw::settextencoding ( string $encoding ) : GmagickDraw

Specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

Parameter-Liste

encoding

Character string specifying text encoding

Rückgabewerte

The GmagickDraw object on success


The GmagickPixel class

(PECL gmagick >= Unknown)

Einführung

Klassenbeschreibung

GmagickPixel {
/* Methoden */
public __construct ( string $color = ? )
public getcolor ( bool $as_array = false , bool $normalize_array = false ) : mixed
public getcolorcount ( ) : int
public getcolorvalue ( int $color ) : float
public setcolor ( string $color ) : GmagickPixel
public setcolorvalue ( int $color , float $value ) : GmagickPixel
}

Inhaltsverzeichnis

  • GmagickPixel::__construct — Erstellt ein neues GmagickPixel Objekt
  • GmagickPixel::getcolor — Gibt die Farbe zurück
  • GmagickPixel::getcolorcount — Returns the color count associated with this color
  • GmagickPixel::getcolorvalue — Gets the normalized value of the provided color channel
  • GmagickPixel::setcolor — Sets the color
  • GmagickPixel::setcolorvalue — Sets the normalized value of one of the channels


Erstellt ein neues GmagickPixel Objekt

  • « GmagickPixel
  • GmagickPixel::getcolor »
  • PHP Manual
  • GmagickPixel
  • Erstellt ein neues GmagickPixel Objekt

GmagickPixel::__construct

(PECL gmagick >= Unknown)

GmagickPixel::__construct — Erstellt ein neues GmagickPixel Objekt

Beschreibung

public GmagickPixel::__construct ( string $color = ? )

Erstellt ein neues GmagickPixel Objekt. Wenn color angegeben ist, wird das Objekt mit dieser Farbe initialisiert.

Parameter-Liste

color

Die optionale Farbzeichenkette, die als Initialwert benutzt wird.

Rückgabewerte

Im Erfolgsfall das GmagickPixel Objekt.


Gibt die Farbe zurück

  • « GmagickPixel::__construct
  • GmagickPixel::getcolorcount »
  • PHP Manual
  • GmagickPixel
  • Gibt die Farbe zurück

GmagickPixel::getcolor

(PECL gmagick >= Unknown)

GmagickPixel::getcolor — Gibt die Farbe zurück

Beschreibung

public GmagickPixel::getcolor ( bool $as_array = false , bool $normalize_array = false ) : mixed

Gibt die Farbe als String oder Array zurück. Wenn die Farbe einen Transparenz-Kanal hat, wird dieser als der vierte Wert im Array zurück gegeben.

Parameter-Liste

as_array

true, damit ein Array anstelle eines Strings zurückgegeben wird.

normalize_array

true normalisiert die Farbwerte.

Rückgabewerte

Ein String oder Array von Farbwerten, normalisiert, wenn normalize_array gleich true ist. Wirft GmagickPixelException im Fehlerfall.


Returns the color count associated with this color

  • « GmagickPixel::getcolor
  • GmagickPixel::getcolorvalue »
  • PHP Manual
  • GmagickPixel
  • Returns the color count associated with this color

GmagickPixel::getcolorcount

(PECL gmagick >= Unknown)

GmagickPixel::getcolorcount — Returns the color count associated with this color

Beschreibung

public GmagickPixel::getcolorcount ( ) : int

Returns the color count associated with this color

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the color count as an integer on success, throws GmagickPixelException on failure.


Gets the normalized value of the provided color channel

  • « GmagickPixel::getcolorcount
  • GmagickPixel::setcolor »
  • PHP Manual
  • GmagickPixel
  • Gets the normalized value of the provided color channel

GmagickPixel::getcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::getcolorvalue — Gets the normalized value of the provided color channel

Beschreibung

public GmagickPixel::getcolorvalue ( int $color ) : float

Retrieves the value of the color channel specified, as a floating-point number between 0 and 1.

Parameter-Liste

color

The channel to check, specified as one of the Gmagick channel constants.

Rückgabewerte

The value of the channel, as a normalized floating-point number, throwing GmagickPixelException on error.


Sets the color

  • « GmagickPixel::getcolorvalue
  • GmagickPixel::setcolorvalue »
  • PHP Manual
  • GmagickPixel
  • Sets the color

GmagickPixel::setcolor

(PECL gmagick >= Unknown)

GmagickPixel::setcolor — Sets the color

Beschreibung

public GmagickPixel::setcolor ( string $color ) : GmagickPixel

Sets the color described by the GmagickPixel object, with a string (e.g. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).

Parameter-Liste

color

The color definition to use in order to initialise the GmagickPixel object.

Rückgabewerte

The GmagickPixel object on success.


Sets the normalized value of one of the channels

  • « GmagickPixel::setcolor
  • ImageMagick »
  • PHP Manual
  • GmagickPixel
  • Sets the normalized value of one of the channels

GmagickPixel::setcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::setcolorvalue — Sets the normalized value of one of the channels

Beschreibung

public GmagickPixel::setcolorvalue ( int $color , float $value ) : GmagickPixel

Sets the value of the specified channel of this object to the provided value, which should be between 0 and 1. This function can be used to provide an opacity channel to a GmagickPixel object.

Parameter-Liste

color

One of the Gmagick channel color constants.

value

The value to set this channel to, ranging from 0 to 1.

Rückgabewerte

The GmagickPixel object on success.


Image Processing (ImageMagick)

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Basic usage
  • Imagick — The Imagick class
    • Imagick::adaptiveBlurImage — Adds adaptive blur filter to image
    • Imagick::adaptiveResizeImage — Adaptively resize image with data dependent triangulation
    • Imagick::adaptiveSharpenImage — Adaptively sharpen the image
    • Imagick::adaptiveThresholdImage — Selects a threshold for each pixel based on a range of intensity
    • Imagick::addImage — Adds new image to Imagick object image list
    • Imagick::addNoiseImage — Adds random noise to the image
    • Imagick::affineTransformImage — Transforms an image
    • Imagick::animateImages — Animates an image or images
    • Imagick::annotateImage — Annotates an image with text
    • Imagick::appendImages — Append a set of images
    • Imagick::autoLevelImage — Description
    • Imagick::averageImages — Average a set of images
    • Imagick::blackThresholdImage — Forces all pixels below the threshold into black
    • Imagick::blueShiftImage — Description
    • Imagick::blurImage — Adds blur filter to image
    • Imagick::borderImage — Surrounds the image with a border
    • Imagick::brightnessContrastImage — Description
    • Imagick::charcoalImage — Simulates a charcoal drawing
    • Imagick::chopImage — Removes a region of an image and trims
    • Imagick::clampImage — Description
    • Imagick::clear — Clears all resources associated to Imagick object
    • Imagick::clipImage — Clips along the first path from the 8BIM profile
    • Imagick::clipImagePath — Description
    • Imagick::clipPathImage — Clips along the named paths from the 8BIM profile
    • Imagick::clone — Makes an exact copy of the Imagick object
    • Imagick::clutImage — Replaces colors in the image
    • Imagick::coalesceImages — Composites a set of images
    • Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target
    • Imagick::colorizeImage — Blends the fill color with the image
    • Imagick::colorMatrixImage — Description
    • Imagick::combineImages — Combines one or more images into a single image
    • Imagick::commentImage — Adds a comment to your image
    • Imagick::compareImageChannels — Returns the difference in one or more images
    • Imagick::compareImageLayers — Returns the maximum bounding region between images
    • Imagick::compareImages — Compares an image to a reconstructed image
    • Imagick::compositeImage — Composite one image onto another
    • Imagick::__construct — The Imagick constructor
    • Imagick::contrastImage — Change the contrast of the image
    • Imagick::contrastStretchImage — Enhances the contrast of a color image
    • Imagick::convolveImage — Applies a custom convolution kernel to the image
    • Imagick::count — Get the number of images
    • Imagick::cropImage — Extracts a region of the image
    • Imagick::cropThumbnailImage — Creates a crop thumbnail
    • Imagick::current — Returns a reference to the current Imagick object
    • Imagick::cycleColormapImage — Displaces an image's colormap
    • Imagick::decipherImage — Deciphers an image
    • Imagick::deconstructImages — Returns certain pixel differences between images
    • Imagick::deleteImageArtifact — Delete image artifact
    • Imagick::deleteImageProperty — Description
    • Imagick::deskewImage — Removes skew from the image
    • Imagick::despeckleImage — Reduces the speckle noise in an image
    • Imagick::destroy — Destroys the Imagick object
    • Imagick::displayImage — Displays an image
    • Imagick::displayImages — Displays an image or image sequence
    • Imagick::distortImage — Distorts an image using various distortion methods
    • Imagick::drawImage — Renders the ImagickDraw object on the current image
    • Imagick::edgeImage — Enhance edges within the image
    • Imagick::embossImage — Returns a grayscale image with a three-dimensional effect
    • Imagick::encipherImage — Enciphers an image
    • Imagick::enhanceImage — Improves the quality of a noisy image
    • Imagick::equalizeImage — Equalizes the image histogram
    • Imagick::evaluateImage — Applies an expression to an image
    • Imagick::exportImagePixels — Exports raw image pixels
    • Imagick::extentImage — Set image size
    • Imagick::filter — Description
    • Imagick::flattenImages — Merges a sequence of images
    • Imagick::flipImage — Creates a vertical mirror image
    • Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target
    • Imagick::flopImage — Creates a vertical mirror image
    • Imagick::forwardFourierTransformImage — Description
    • Imagick::frameImage — Adds a simulated three-dimensional border
    • Imagick::functionImage — Applies a function on the image
    • Imagick::fxImage — Evaluate expression for each pixel in the image
    • Imagick::gammaImage — Gamma-corrects an image
    • Imagick::gaussianBlurImage — Blurs an image
    • Imagick::getColorspace — Gets the colorspace
    • Imagick::getCompression — Gets the object compression type
    • Imagick::getCompressionQuality — Gets the object compression quality
    • Imagick::getCopyright — Returns the ImageMagick API copyright as a string
    • Imagick::getFilename — The filename associated with an image sequence
    • Imagick::getFont — Gets font
    • Imagick::getFormat — Returns the format of the Imagick object
    • Imagick::getGravity — Gets the gravity
    • Imagick::getHomeURL — Returns the ImageMagick home URL
    • Imagick::getImage — Returns a new Imagick object
    • Imagick::getImageAlphaChannel — Gets the image alpha channel
    • Imagick::getImageArtifact — Get image artifact
    • Imagick::getImageAttribute — Description
    • Imagick::getImageBackgroundColor — Returns the image background color
    • Imagick::getImageBlob — Returns the image sequence as a blob
    • Imagick::getImageBluePrimary — Returns the chromaticy blue primary point
    • Imagick::getImageBorderColor — Returns the image border color
    • Imagick::getImageChannelDepth — Gets the depth for a particular image channel
    • Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image
    • Imagick::getImageChannelDistortions — Gets channel distortions
    • Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels
    • Imagick::getImageChannelKurtosis — The getImageChannelKurtosis purpose
    • Imagick::getImageChannelMean — Gets the mean and standard deviation
    • Imagick::getImageChannelRange — Gets channel range
    • Imagick::getImageChannelStatistics — Returns statistics for each channel in the image
    • Imagick::getImageClipMask — Gets image clip mask
    • Imagick::getImageColormapColor — Returns the color of the specified colormap index
    • Imagick::getImageColors — Gets the number of unique colors in the image
    • Imagick::getImageColorspace — Gets the image colorspace
    • Imagick::getImageCompose — Returns the composite operator associated with the image
    • Imagick::getImageCompression — Gets the current image's compression type
    • Imagick::getImageCompressionQuality — Gets the current image's compression quality
    • Imagick::getImageDelay — Gets the image delay
    • Imagick::getImageDepth — Gets the image depth
    • Imagick::getImageDispose — Gets the image disposal method
    • Imagick::getImageDistortion — Compares an image to a reconstructed image
    • Imagick::getImageExtrema — Gets the extrema for the image
    • Imagick::getImageFilename — Returns the filename of a particular image in a sequence
    • Imagick::getImageFormat — Returns the format of a particular image in a sequence
    • Imagick::getImageGamma — Gets the image gamma
    • Imagick::getImageGeometry — Gets the width and height as an associative array
    • Imagick::getImageGravity — Gets the image gravity
    • Imagick::getImageGreenPrimary — Returns the chromaticy green primary point
    • Imagick::getImageHeight — Returns the image height
    • Imagick::getImageHistogram — Gets the image histogram
    • Imagick::getImageIndex — Gets the index of the current active image
    • Imagick::getImageInterlaceScheme — Gets the image interlace scheme
    • Imagick::getImageInterpolateMethod — Returns the interpolation method
    • Imagick::getImageIterations — Gets the image iterations
    • Imagick::getImageLength — Returns the image length in bytes
    • Imagick::getImageMatte — Return if the image has a matte channel
    • Imagick::getImageMatteColor — Returns the image matte color
    • Imagick::getImageMimeType — Description
    • Imagick::getImageOrientation — Gets the image orientation
    • Imagick::getImagePage — Returns the page geometry
    • Imagick::getImagePixelColor — Returns the color of the specified pixel
    • Imagick::getImageProfile — Returns the named image profile
    • Imagick::getImageProfiles — Returns the image profiles
    • Imagick::getImageProperties — Returns the image properties
    • Imagick::getImageProperty — Returns the named image property
    • Imagick::getImageRedPrimary — Returns the chromaticity red primary point
    • Imagick::getImageRegion — Extracts a region of the image
    • Imagick::getImageRenderingIntent — Gets the image rendering intent
    • Imagick::getImageResolution — Gets the image X and Y resolution
    • Imagick::getImagesBlob — Returns all image sequences as a blob
    • Imagick::getImageScene — Gets the image scene
    • Imagick::getImageSignature — Generates an SHA-256 message digest
    • Imagick::getImageSize — Returns the image length in bytes
    • Imagick::getImageTicksPerSecond — Gets the image ticks-per-second
    • Imagick::getImageTotalInkDensity — Gets the image total ink density
    • Imagick::getImageType — Gets the potential image type
    • Imagick::getImageUnits — Gets the image units of resolution
    • Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method
    • Imagick::getImageWhitePoint — Returns the chromaticity white point
    • Imagick::getImageWidth — Returns the image width
    • Imagick::getInterlaceScheme — Gets the object interlace scheme
    • Imagick::getIteratorIndex — Gets the index of the current active image
    • Imagick::getNumberImages — Returns the number of images in the object
    • Imagick::getOption — Returns a value associated with the specified key
    • Imagick::getPackageName — Returns the ImageMagick package name
    • Imagick::getPage — Returns the page geometry
    • Imagick::getPixelIterator — Returns a MagickPixelIterator
    • Imagick::getPixelRegionIterator — Get an ImagickPixelIterator for an image section
    • Imagick::getPointSize — Gets point size
    • Imagick::getQuantum — Description
    • Imagick::getQuantumDepth — Gets the quantum depth
    • Imagick::getQuantumRange — Returns the Imagick quantum range
    • Imagick::getRegistry — Description
    • Imagick::getReleaseDate — Returns the ImageMagick release date
    • Imagick::getResource — Returns the specified resource's memory usage
    • Imagick::getResourceLimit — Returns the specified resource limit
    • Imagick::getSamplingFactors — Gets the horizontal and vertical sampling factor
    • Imagick::getSize — Returns the size associated with the Imagick object
    • Imagick::getSizeOffset — Returns the size offset
    • Imagick::getVersion — Returns the ImageMagick API version
    • Imagick::haldClutImage — Replaces colors in the image
    • Imagick::hasNextImage — Checks if the object has more images
    • Imagick::hasPreviousImage — Checks if the object has a previous image
    • Imagick::identifyFormat — Description
    • Imagick::identifyImage — Identifies an image and fetches attributes
    • Imagick::implodeImage — Creates a new image as a copy
    • Imagick::importImagePixels — Imports image pixels
    • Imagick::inverseFourierTransformImage — Description
    • Imagick::labelImage — Adds a label to an image
    • Imagick::levelImage — Adjusts the levels of an image
    • Imagick::linearStretchImage — Stretches with saturation the image intensity
    • Imagick::liquidRescaleImage — Animates an image or images
    • Imagick::listRegistry — Description
    • Imagick::magnifyImage — Scales an image proportionally 2x
    • Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image
    • Imagick::matteFloodfillImage — Changes the transparency value of a color
    • Imagick::medianFilterImage — Applies a digital filter
    • Imagick::mergeImageLayers — Merges image layers
    • Imagick::minifyImage — Scales an image proportionally to half its size
    • Imagick::modulateImage — Control the brightness, saturation, and hue
    • Imagick::montageImage — Creates a composite image
    • Imagick::morphImages — Method morphs a set of images
    • Imagick::morphology — Description
    • Imagick::mosaicImages — Forms a mosaic from images
    • Imagick::motionBlurImage — Simulates motion blur
    • Imagick::negateImage — Negates the colors in the reference image
    • Imagick::newImage — Creates a new image
    • Imagick::newPseudoImage — Creates a new image
    • Imagick::nextImage — Moves to the next image
    • Imagick::normalizeImage — Enhances the contrast of a color image
    • Imagick::oilPaintImage — Simulates an oil painting
    • Imagick::opaquePaintImage — Changes the color value of any pixel that matches target
    • Imagick::optimizeImageLayers — Removes repeated portions of images to optimize
    • Imagick::orderedPosterizeImage — Performs an ordered dither
    • Imagick::paintFloodfillImage — Changes the color value of any pixel that matches target
    • Imagick::paintOpaqueImage — Change any pixel that matches color
    • Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill
    • Imagick::pingImage — Abrufen von grundlegenden Merkmalen eines Bildes
    • Imagick::pingImageBlob — Quickly fetch attributes
    • Imagick::pingImageFile — Get basic image attributes in a lightweight manner
    • Imagick::polaroidImage — Simulates a Polaroid picture
    • Imagick::posterizeImage — Reduces the image to a limited number of color level
    • Imagick::previewImages — Quickly pin-point appropriate parameters for image processing
    • Imagick::previousImage — Move to the previous image in the object
    • Imagick::profileImage — Adds or removes a profile from an image
    • Imagick::quantizeImage — Analyzes the colors within a reference image
    • Imagick::quantizeImages — Analyzes the colors within a sequence of images
    • Imagick::queryFontMetrics — Returns an array representing the font metrics
    • Imagick::queryFonts — Returns the configured fonts
    • Imagick::queryFormats — Returns formats supported by Imagick
    • Imagick::radialBlurImage — Radial blurs an image
    • Imagick::raiseImage — Creates a simulated 3d button-like effect
    • Imagick::randomThresholdImage — Creates a high-contrast, two-color image
    • Imagick::readImage — Reads image from filename
    • Imagick::readImageBlob — Reads image from a binary string
    • Imagick::readImageFile — Reads image from open filehandle
    • Imagick::readimages — Description
    • Imagick::recolorImage — Recolors image
    • Imagick::reduceNoiseImage — Smooths the contours of an image
    • Imagick::remapImage — Remaps image colors
    • Imagick::removeImage — Removes an image from the image list
    • Imagick::removeImageProfile — Removes the named image profile and returns it
    • Imagick::render — Renders all preceding drawing commands
    • Imagick::resampleImage — Resample image to desired resolution
    • Imagick::resetImagePage — Reset image page
    • Imagick::resizeImage — Scales an image
    • Imagick::rollImage — Offsets an image
    • Imagick::rotateImage — Rotates an image
    • Imagick::rotationalBlurImage — Description
    • Imagick::roundCorners — Rounds image corners
    • Imagick::sampleImage — Scales an image with pixel sampling
    • Imagick::scaleImage — Scales the size of an image
    • Imagick::segmentImage — Segments an image
    • Imagick::selectiveBlurImage — Description
    • Imagick::separateImageChannel — Separates a channel from the image
    • Imagick::sepiaToneImage — Sepia tones an image
    • Imagick::setBackgroundColor — Sets the object's default background color
    • Imagick::setColorspace — Set colorspace
    • Imagick::setCompression — Sets the object's default compression type
    • Imagick::setCompressionQuality — Sets the object's default compression quality
    • Imagick::setFilename — Sets the filename before you read or write the image
    • Imagick::setFirstIterator — Sets the Imagick iterator to the first image
    • Imagick::setFont — Sets font
    • Imagick::setFormat — Sets the format of the Imagick object
    • Imagick::setGravity — Sets the gravity
    • Imagick::setImage — Replaces image in the object
    • Imagick::setImageAlphaChannel — Sets image alpha channel
    • Imagick::setImageArtifact — Set image artifact
    • Imagick::setImageAttribute — Description
    • Imagick::setImageBackgroundColor — Sets the image background color
    • Imagick::setImageBias — Sets the image bias for any method that convolves an image
    • Imagick::setImageBiasQuantum — Description
    • Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point
    • Imagick::setImageBorderColor — Sets the image border color
    • Imagick::setImageChannelDepth — Sets the depth of a particular image channel
    • Imagick::setImageClipMask — Sets image clip mask
    • Imagick::setImageColormapColor — Sets the color of the specified colormap index
    • Imagick::setImageColorspace — Sets the image colorspace
    • Imagick::setImageCompose — Sets the image composite operator
    • Imagick::setImageCompression — Sets the image compression
    • Imagick::setImageCompressionQuality — Sets the image compression quality
    • Imagick::setImageDelay — Sets the image delay
    • Imagick::setImageDepth — Sets the image depth
    • Imagick::setImageDispose — Sets the image disposal method
    • Imagick::setImageExtent — Sets the image size
    • Imagick::setImageFilename — Sets the filename of a particular image
    • Imagick::setImageFormat — Sets the format of a particular image
    • Imagick::setImageGamma — Sets the image gamma
    • Imagick::setImageGravity — Sets the image gravity
    • Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point
    • Imagick::setImageIndex — Set the iterator position
    • Imagick::setImageInterlaceScheme — Sets the image compression
    • Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method
    • Imagick::setImageIterations — Sets the image iterations
    • Imagick::setImageMatte — Sets the image matte channel
    • Imagick::setImageMatteColor — Sets the image matte color
    • Imagick::setImageOpacity — Sets the image opacity level
    • Imagick::setImageOrientation — Sets the image orientation
    • Imagick::setImagePage — Sets the page geometry of the image
    • Imagick::setImageProfile — Adds a named profile to the Imagick object
    • Imagick::setImageProperty — Sets an image property
    • Imagick::setImageRedPrimary — Sets the image chromaticity red primary point
    • Imagick::setImageRenderingIntent — Sets the image rendering intent
    • Imagick::setImageResolution — Sets the image resolution
    • Imagick::setImageScene — Sets the image scene
    • Imagick::setImageTicksPerSecond — Sets the image ticks-per-second
    • Imagick::setImageType — Sets the image type
    • Imagick::setImageUnits — Sets the image units of resolution
    • Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method
    • Imagick::setImageWhitePoint — Sets the image chromaticity white point
    • Imagick::setInterlaceScheme — Sets the image compression
    • Imagick::setIteratorIndex — Set the iterator position
    • Imagick::setLastIterator — Sets the Imagick iterator to the last image
    • Imagick::setOption — Set an option
    • Imagick::setPage — Sets the page geometry of the Imagick object
    • Imagick::setPointSize — Sets point size
    • Imagick::setProgressMonitor — Description
    • Imagick::setRegistry — Description
    • Imagick::setResolution — Sets the image resolution
    • Imagick::setResourceLimit — Sets the limit for a particular resource
    • Imagick::setSamplingFactors — Sets the image sampling factors
    • Imagick::setSize — Sets the size of the Imagick object
    • Imagick::setSizeOffset — Sets the size and offset of the Imagick object
    • Imagick::setType — Sets the image type attribute
    • Imagick::shadeImage — Creates a 3D effect
    • Imagick::shadowImage — Simulates an image shadow
    • Imagick::sharpenImage — Sharpens an image
    • Imagick::shaveImage — Shaves pixels from the image edges
    • Imagick::shearImage — Creating a parallelogram
    • Imagick::sigmoidalContrastImage — Adjusts the contrast of an image
    • Imagick::sketchImage — Simulates a pencil sketch
    • Imagick::smushImages — Description
    • Imagick::solarizeImage — Applies a solarizing effect to the image
    • Imagick::sparseColorImage — Interpolates colors
    • Imagick::spliceImage — Splices a solid color into the image
    • Imagick::spreadImage — Randomly displaces each pixel in a block
    • Imagick::statisticImage — Description
    • Imagick::steganoImage — Hides a digital watermark within the image
    • Imagick::stereoImage — Composites two images
    • Imagick::stripImage — Strips an image of all profiles and comments
    • Imagick::subImageMatch — Description
    • Imagick::swirlImage — Swirls the pixels about the center of the image
    • Imagick::textureImage — Repeatedly tiles the texture image
    • Imagick::thresholdImage — Changes the value of individual pixels based on a threshold
    • Imagick::thumbnailImage — Changes the size of an image
    • Imagick::tintImage — Applies a color vector to each pixel in the image
    • Imagick::__toString — Returns the image as a string
    • Imagick::transformImage — Convenience method for setting crop size and the image geometry
    • Imagick::transformImageColorspace — Transforms an image to a new colorspace
    • Imagick::transparentPaintImage — Paints pixels transparent
    • Imagick::transposeImage — Creates a vertical mirror image
    • Imagick::transverseImage — Creates a horizontal mirror image
    • Imagick::trimImage — Remove edges from the image
    • Imagick::uniqueImageColors — Discards all but one of any pixel color
    • Imagick::unsharpMaskImage — Sharpens an image
    • Imagick::valid — Checks if the current item is valid
    • Imagick::vignetteImage — Adds vignette filter to the image
    • Imagick::waveImage — Applies wave filter to the image
    • Imagick::whiteThresholdImage — Force all pixels above the threshold into white
    • Imagick::writeImage — Writes an image to the specified filename
    • Imagick::writeImageFile — Writes an image to a filehandle
    • Imagick::writeImages — Writes an image or image sequence
    • Imagick::writeImagesFile — Writes frames to a filehandle
  • ImagickDraw — The ImagickDraw class
    • ImagickDraw::affine — Adjusts the current affine transformation matrix
    • ImagickDraw::annotation — Draws text on the image
    • ImagickDraw::arc — Draws an arc
    • ImagickDraw::bezier — Draws a bezier curve
    • ImagickDraw::circle — Draws a circle
    • ImagickDraw::clear — Clears the ImagickDraw
    • ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object
    • ImagickDraw::color — Draws color on image
    • ImagickDraw::comment — Adds a comment
    • ImagickDraw::composite — Composites an image onto the current image
    • ImagickDraw::__construct — The ImagickDraw constructor
    • ImagickDraw::destroy — Frees all associated resources
    • ImagickDraw::ellipse — Draws an ellipse on the image
    • ImagickDraw::getClipPath — Obtains the current clipping path ID
    • ImagickDraw::getClipRule — Returns the current polygon fill rule
    • ImagickDraw::getClipUnits — Returns the interpretation of clip path units
    • ImagickDraw::getFillColor — Returns the fill color
    • ImagickDraw::getFillOpacity — Returns the opacity used when drawing
    • ImagickDraw::getFillRule — Returns the fill rule
    • ImagickDraw::getFont — Returns the font
    • ImagickDraw::getFontFamily — Returns the font family
    • ImagickDraw::getFontSize — Returns the font pointsize
    • ImagickDraw::getFontStretch — Description
    • ImagickDraw::getFontStyle — Returns the font style
    • ImagickDraw::getFontWeight — Returns the font weight
    • ImagickDraw::getGravity — Returns the text placement gravity
    • ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting
    • ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines
    • ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash
    • ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit
    • ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines
    • ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines
    • ImagickDraw::getTextAlignment — Returns the text alignment
    • ImagickDraw::getTextAntialias — Returns the current text antialias setting
    • ImagickDraw::getTextDecoration — Returns the text decoration
    • ImagickDraw::getTextEncoding — Returns the code set used for text annotations
    • ImagickDraw::getTextInterlineSpacing — Description
    • ImagickDraw::getTextInterwordSpacing — Description
    • ImagickDraw::getTextKerning — Description
    • ImagickDraw::getTextUnderColor — Returns the text under color
    • ImagickDraw::getVectorGraphics — Returns a string containing vector graphics
    • ImagickDraw::line — Draws a line
    • ImagickDraw::matte — Paints on the image's opacity channel
    • ImagickDraw::pathClose — Adds a path element to the current path
    • ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve
    • ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc
    • ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc
    • ImagickDraw::pathFinish — Terminates the current path
    • ImagickDraw::pathLineToAbsolute — Draws a line path
    • ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path
    • ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line
    • ImagickDraw::pathLineToRelative — Draws a line path
    • ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line
    • ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path
    • ImagickDraw::pathMoveToAbsolute — Starts a new sub-path
    • ImagickDraw::pathMoveToRelative — Starts a new sub-path
    • ImagickDraw::pathStart — Declares the start of a path drawing list
    • ImagickDraw::point — Draws a point
    • ImagickDraw::polygon — Draws a polygon
    • ImagickDraw::polyline — Draws a polyline
    • ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
    • ImagickDraw::popClipPath — Terminates a clip path definition
    • ImagickDraw::popDefs — Terminates a definition list
    • ImagickDraw::popPattern — Terminates a pattern definition
    • ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack
    • ImagickDraw::pushClipPath — Starts a clip path definition
    • ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing
    • ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
    • ImagickDraw::rectangle — Draws a rectangle
    • ImagickDraw::render — Renders all preceding drawing commands onto the image
    • ImagickDraw::resetVectorGraphics — Description
    • ImagickDraw::rotate — Applies the specified rotation to the current coordinate space
    • ImagickDraw::roundRectangle — Draws a rounded rectangle
    • ImagickDraw::scale — Adjusts the scaling factor
    • ImagickDraw::setClipPath — Associates a named clipping path with the image
    • ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path
    • ImagickDraw::setClipUnits — Sets the interpretation of clip path units
    • ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects
    • ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects
    • ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons
    • ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text
    • ImagickDraw::setFontFamily — Sets the font family to use when annotating with text
    • ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text
    • ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text
    • ImagickDraw::setFontStyle — Sets the font style to use when annotating with text
    • ImagickDraw::setFontWeight — Sets the font weight
    • ImagickDraw::setGravity — Sets the text placement gravity
    • ImagickDraw::setResolution — Description
    • ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased
    • ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines
    • ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash
    • ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::setStrokeMiterLimit — Specifies the miter limit
    • ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines
    • ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines
    • ImagickDraw::setTextAlignment — Specifies a text alignment
    • ImagickDraw::setTextAntialias — Controls whether text is antialiased
    • ImagickDraw::setTextDecoration — Specifies a decoration
    • ImagickDraw::setTextEncoding — Specifies the text code set
    • ImagickDraw::setTextInterlineSpacing — Description
    • ImagickDraw::setTextInterwordSpacing — Description
    • ImagickDraw::setTextKerning — Description
    • ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle
    • ImagickDraw::setVectorGraphics — Sets the vector graphics
    • ImagickDraw::setViewbox — Sets the overall canvas size
    • ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction
    • ImagickDraw::skewY — Skews the current coordinate system in the vertical direction
    • ImagickDraw::translate — Applies a translation to the current coordinate system
  • ImagickPixel — The ImagickPixel class
    • ImagickPixel::clear — Clears resources associated with this object
    • ImagickPixel::__construct — The ImagickPixel constructor
    • ImagickPixel::destroy — Deallocates resources associated with this object
    • ImagickPixel::getColor — Returns the color
    • ImagickPixel::getColorAsString — Returns the color as a string
    • ImagickPixel::getColorCount — Returns the color count associated with this color
    • ImagickPixel::getColorQuantum — Description
    • ImagickPixel::getColorValue — Gets the normalized value of the provided color channel
    • ImagickPixel::getColorValueQuantum — Description
    • ImagickPixel::getHSL — Returns the normalized HSL color of the ImagickPixel object
    • ImagickPixel::getIndex — Description
    • ImagickPixel::isPixelSimilar — Check the distance between this color and another
    • ImagickPixel::isPixelSimilarQuantum — Description
    • ImagickPixel::isSimilar — Check the distance between this color and another
    • ImagickPixel::setColor — Sets the color
    • ImagickPixel::setColorCount — Description
    • ImagickPixel::setColorValue — Sets the normalized value of one of the channels
    • ImagickPixel::setColorValueQuantum — Description
    • ImagickPixel::setHSL — Sets the normalized HSL color
    • ImagickPixel::setIndex — Description
  • ImagickPixelIterator — The ImagickPixelIterator class
    • ImagickPixelIterator::clear — Clear resources associated with a PixelIterator
    • ImagickPixelIterator::__construct — The ImagickPixelIterator constructor
    • ImagickPixelIterator::destroy — Deallocates resources associated with a PixelIterator
    • ImagickPixelIterator::getCurrentIteratorRow — Returns the current row of ImagickPixel objects
    • ImagickPixelIterator::getIteratorRow — Returns the current pixel iterator row
    • ImagickPixelIterator::getNextIteratorRow — Returns the next row of the pixel iterator
    • ImagickPixelIterator::getPreviousIteratorRow — Returns the previous row
    • ImagickPixelIterator::newPixelIterator — Returns a new pixel iterator
    • ImagickPixelIterator::newPixelRegionIterator — Returns a new pixel iterator
    • ImagickPixelIterator::resetIterator — Resets the pixel iterator
    • ImagickPixelIterator::setIteratorFirstRow — Sets the pixel iterator to the first pixel row
    • ImagickPixelIterator::setIteratorLastRow — Sets the pixel iterator to the last pixel row
    • ImagickPixelIterator::setIteratorRow — Set the pixel iterator row
    • ImagickPixelIterator::syncIterator — Syncs the pixel iterator
  • ImagickKernel — The ImagickKernel class
    • ImagickKernel::addKernel — Description
    • ImagickKernel::addUnityKernel — Description
    • ImagickKernel::fromBuiltIn — Description
    • ImagickKernel::fromMatrix — Description
    • ImagickKernel::getMatrix — Description
    • ImagickKernel::scale — Description
    • ImagickKernel::separate — Description


Einführung

Imagick is a native php extension to create and modify images using the ImageMagick API.

ImageMagick is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF.

ImageMagick Studio LLC is a non-profit organization dedicated to making software imaging solutions freely available.


Anforderungen

Installation requirements on Windows

Version information does not differ from that above. There are binaries available from http://www.imagemagick.org/ so that you can load this extension on Windows without need for a compiler.

Installation requirements on other platforms

PHP >= 5.1.3 and ImageMagick >= 6.2.4 is required. The amount of file formats supported by Imagick depends entirely upon the amount of formats supported by your ImageMagick installation. For example, Imagemagick requires ghostscript to conduct PDF operations.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/imagick.

Hinweis: The official name of this extension is imagick.

Windows users can download prebuilt DLL from the » PECL website.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Imagick configuration options
Name | Standard | Veränderbar | Changelog
imagick.locale_fix | false | PHP_INI_ALL | Available since Imagick 2.1.0
imagick.progress_monitor | false | PHP_INI_SYSTEM | Available since Imagick 2.2.2
imagick.skip_version_check | false | PHP_INI_SYSTEM | Available since Imagick 3.3.0
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

imagick.locale_fix bool

Fixes a drawing bug with locales that use ',' as float separators.

imagick.progress_monitor bool

Used to enable the image progress monitor.

imagick.skip_version_check bool

When Imagick is loaded, it checks the version number of ImageMagick that it was compiled against, with the version number that is currently being used and will give a warning if they don't match. This warning can be suppressed by enabling this ini setting.

Using a version of Imagick that was compiled against a different version of ImageMagick than the one being used is not recommended. Although it may appear to work, it can lead to random crashes or other undefined behaviour.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

COLOR_* constants

Colortype constants. These constants are mainly used with ImagickPixel.

imagick::COLOR_BLACK (int)
Black color
imagick::COLOR_BLUE (int)
Blue color
imagick::COLOR_CYAN (int)
Cyan color
imagick::COLOR_GREEN (int)
Green color
imagick::COLOR_RED (int)
Red color
imagick::COLOR_YELLOW (int)
Yellow color
imagick::COLOR_MAGENTA (int)
Magenta color
imagick::COLOR_OPACITY (int)
Color's opacity
imagick::COLOR_ALPHA (int)
Color's alpha
imagick::COLOR_FUZZ (int)
Color's fuzz
DISPOSE constants

Dispose type constants

imagick::DISPOSE_UNRECOGNIZED (int)
Unrecognized dispose type
imagick::DISPOSE_UNDEFINED (int)
Undefined dispose type
imagick::DISPOSE_NONE (int)
No dispose type defined
imagick::DISPOSE_BACKGROUND (int)
Dispose background
imagick::DISPOSE_PREVIOUS (int)
Dispose previous
Composite Operator Constants
imagick::COMPOSITE_DEFAULT (int)
The default composite operator
imagick::COMPOSITE_UNDEFINED (int)
Undefined composite operator
imagick::COMPOSITE_NO (int)
No composite operator defined
imagick::COMPOSITE_ADD (int)
The result of image + image
imagick::COMPOSITE_ATOP (int)
The result is the same shape as image, with composite image obscuring image where the image shapes overlap
imagick::COMPOSITE_BLEND (int)
Blends the image
imagick::COMPOSITE_BUMPMAP (int)
The same as COMPOSITE_MULTIPLY, except the source is converted to grayscale first.
imagick::COMPOSITE_CLEAR (int)
Makes the target image transparent
imagick::COMPOSITE_COLORBURN (int)
Darkens the destination image to reflect the source image
imagick::COMPOSITE_COLORDODGE (int)
Brightens the destination image to reflect the source image
imagick::COMPOSITE_COLORIZE (int)
Colorizes the target image using the composite image
imagick::COMPOSITE_COPYBLACK (int)
Copies black from the source to target
imagick::COMPOSITE_COPYBLUE (int)
Copies blue from the source to target
imagick::COMPOSITE_COPY (int)
Copies the source image on the target image
imagick::COMPOSITE_COPYCYAN (int)
Copies cyan from the source to target
imagick::COMPOSITE_COPYGREEN (int)
Copies green from the source to target
imagick::COMPOSITE_COPYMAGENTA (int)
Copies magenta from the source to target
imagick::COMPOSITE_COPYOPACITY (int)
Copies opacity from the source to target
imagick::COMPOSITE_COPYRED (int)
Copies red from the source to target
imagick::COMPOSITE_COPYYELLOW (int)
Copies yellow from the source to target
imagick::COMPOSITE_DARKEN (int)
Darkens the target image
imagick::COMPOSITE_DSTATOP (int)
The part of the destination lying inside of the source is composited over the source and replaces the destination
imagick::COMPOSITE_DST (int)
The target is left untouched
imagick::COMPOSITE_DSTIN (int)
The parts inside the source replace the target
imagick::COMPOSITE_DSTOUT (int)
The parts outside the source replace the target
imagick::COMPOSITE_DSTOVER (int)
Target replaces the source
imagick::COMPOSITE_DIFFERENCE (int)
Subtracts the darker of the two constituent colors from the lighter
imagick::COMPOSITE_DISPLACE (int)
Shifts target image pixels as defined by the source
imagick::COMPOSITE_DISSOLVE (int)
Dissolves the source in to the target
imagick::COMPOSITE_EXCLUSION (int)
Produces an effect similar to that of imagick::COMPOSITE_DIFFERENCE, but appears as lower contrast
imagick::COMPOSITE_HARDLIGHT (int)
Multiplies or screens the colors, dependent on the source color value
imagick::COMPOSITE_HUE (int)
Modifies the hue of the target as defined by source
imagick::COMPOSITE_IN (int)
Composites source into the target
imagick::COMPOSITE_LIGHTEN (int)
Lightens the target as defined by source
imagick::COMPOSITE_LUMINIZE (int)
Luminizes the target as defined by source
imagick::COMPOSITE_MINUS (int)
Subtracts the source from the target
imagick::COMPOSITE_MODULATE (int)
Modulates the target brightness, saturation and hue as defined by source
imagick::COMPOSITE_MULTIPLY (int)
Multiplies the target to the source
imagick::COMPOSITE_OUT (int)
Composites outer parts of the source on the target
imagick::COMPOSITE_OVER (int)
Composites source over the target
imagick::COMPOSITE_OVERLAY (int)
Overlays the source on the target
imagick::COMPOSITE_PLUS (int)
Adds the source to the target
imagick::COMPOSITE_REPLACE (int)
Replaces the target with the source
imagick::COMPOSITE_SATURATE (int)
Saturates the target as defined by the source
imagick::COMPOSITE_SCREEN (int)
The source and destination are complemented and then multiplied and then replace the destination
imagick::COMPOSITE_SOFTLIGHT (int)
Darkens or lightens the colors, dependent on the source
imagick::COMPOSITE_SRCATOP (int)
The part of the source lying inside of the destination is composited onto the destination
imagick::COMPOSITE_SRC (int)
The source is copied to the destination
imagick::COMPOSITE_SRCIN (int)
The part of the source lying inside of the destination replaces the destination
imagick::COMPOSITE_SRCOUT (int)
The part of the source lying outside of the destination replaces the destination
imagick::COMPOSITE_SRCOVER (int)
The source replaces the destination
imagick::COMPOSITE_SUBTRACT (int)
Subtract the colors in the source image from the destination image
imagick::COMPOSITE_THRESHOLD (int)
The source is composited on the target as defined by source threshold
imagick::COMPOSITE_XOR (int)
The part of the source that lies outside of the destination is combined with the part of the destination that lies outside of the source
MONTAGEMODE constants

imagick::MONTAGEMODE_FRAME (int)
imagick::MONTAGEMODE_UNFRAME (int)
imagick::MONTAGEMODE_CONCATENATE (int)
STYLE constants

imagick::STYLE_NORMAL (int)
imagick::STYLE_ITALIC (int)
imagick::STYLE_OBLIQUE (int)
imagick::STYLE_ANY (int)
FILTER constants

imagick::FILTER_UNDEFINED (int)
imagick::FILTER_POINT (int)
imagick::FILTER_BOX (int)
imagick::FILTER_TRIANGLE (int)
imagick::FILTER_HERMITE (int)
imagick::FILTER_HANNING (int)
imagick::FILTER_HAMMING (int)
imagick::FILTER_BLACKMAN (int)
imagick::FILTER_GAUSSIAN (int)
imagick::FILTER_QUADRATIC (int)
imagick::FILTER_CUBIC (int)
imagick::FILTER_CATROM (int)
imagick::FILTER_MITCHELL (int)
imagick::FILTER_LANCZOS (int)
imagick::FILTER_BESSEL (int)
imagick::FILTER_SINC (int)
IMGTYPE constants

imagick::IMGTYPE_UNDEFINED (int)
imagick::IMGTYPE_BILEVEL (int)
imagick::IMGTYPE_GRAYSCALE (int)
imagick::IMGTYPE_GRAYSCALEMATTE (int)
imagick::IMGTYPE_PALETTE (int)
imagick::IMGTYPE_PALETTEMATTE (int)
imagick::IMGTYPE_TRUECOLOR (int)
imagick::IMGTYPE_TRUECOLORMATTE (int)
imagick::IMGTYPE_COLORSEPARATION (int)
imagick::IMGTYPE_COLORSEPARATIONMATTE (int)
imagick::IMGTYPE_OPTIMIZE (int)
RESOLUTION constants

imagick::RESOLUTION_UNDEFINED (int)
imagick::RESOLUTION_PIXELSPERINCH (int)
imagick::RESOLUTION_PIXELSPERCENTIMETER (int)
COMPRESSION constants

imagick::COMPRESSION_UNDEFINED (int)
imagick::COMPRESSION_NO (int)
imagick::COMPRESSION_BZIP (int)
imagick::COMPRESSION_FAX (int)
imagick::COMPRESSION_GROUP4 (int)
imagick::COMPRESSION_JPEG (int)
imagick::COMPRESSION_JPEG2000 (int)
imagick::COMPRESSION_LOSSLESSJPEG (int)
imagick::COMPRESSION_LZW (int)
imagick::COMPRESSION_RLE (int)
imagick::COMPRESSION_ZIP (int)
imagick::COMPRESSION_DXT1 (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.0 or higher.
imagick::COMPRESSION_DXT3 (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.0 or higher.
imagick::COMPRESSION_DXT5 (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.0 or higher.
PAINT constants

imagick::PAINT_POINT (int)
imagick::PAINT_REPLACE (int)
imagick::PAINT_FLOODFILL (int)
imagick::PAINT_FILLTOBORDER (int)
imagick::PAINT_RESET (int)
GRAVITY constants

imagick::GRAVITY_NORTHWEST (int)
imagick::GRAVITY_NORTH (int)
imagick::GRAVITY_NORTHEAST (int)
imagick::GRAVITY_WEST (int)
imagick::GRAVITY_CENTER (int)
imagick::GRAVITY_EAST (int)
imagick::GRAVITY_SOUTHWEST (int)
imagick::GRAVITY_SOUTH (int)
imagick::GRAVITY_SOUTHEAST (int)
STRETCH constants

imagick::STRETCH_NORMAL (int)
imagick::STRETCH_ULTRACONDENSED (int)
imagick::STRETCH_CONDENSED (int)
imagick::STRETCH_SEMICONDENSED (int)
imagick::STRETCH_SEMIEXPANDED (int)
imagick::STRETCH_EXPANDED (int)
imagick::STRETCH_EXTRAEXPANDED (int)
imagick::STRETCH_ULTRAEXPANDED (int)
imagick::STRETCH_ANY (int)
ALIGN constants

imagick::ALIGN_UNDEFINED (int)
imagick::ALIGN_LEFT (int)
imagick::ALIGN_CENTER (int)
imagick::ALIGN_RIGHT (int)
DECORATION constants

imagick::DECORATION_NO (int)
imagick::DECORATION_UNDERLINE (int)
imagick::DECORATION_OVERLINE (int)
imagick::DECORATION_LINETROUGH (int)
NOISE constants

imagick::NOISE_UNIFORM (int)
imagick::NOISE_GAUSSIAN (int)
imagick::NOISE_MULTIPLICATIVEGAUSSIAN (int)
imagick::NOISE_IMPULSE (int)
imagick::NOISE_LAPLACIAN (int)
imagick::NOISE_POISSON (int)
imagick::NOISE_RANDOM (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.6 or higher.
CHANNEL constants

imagick::CHANNEL_UNDEFINED (int)
imagick::CHANNEL_RED (int)
imagick::CHANNEL_GRAY (int)
imagick::CHANNEL_CYAN (int)
imagick::CHANNEL_GREEN (int)
imagick::CHANNEL_MAGENTA (int)
imagick::CHANNEL_BLUE (int)
imagick::CHANNEL_YELLOW (int)
imagick::CHANNEL_ALPHA (int)
imagick::CHANNEL_OPACITY (int)
imagick::CHANNEL_MATTE (int)
imagick::CHANNEL_BLACK (int)
imagick::CHANNEL_INDEX (int)
imagick::CHANNEL_ALL (int)
imagick::CHANNEL_DEFAULT (int)
METRIC constants

imagick::METRIC_UNDEFINED (int)
imagick::METRIC_MEANABSOLUTEERROR (int)
imagick::METRIC_MEANSQUAREERROR (int)
imagick::METRIC_PEAKABSOLUTEERROR (int)
imagick::METRIC_PEAKSIGNALTONOISERATIO (int)
imagick::METRIC_ROOTMEANSQUAREDERROR (int)
PIXEL constants

imagick::PIXEL_CHAR (int)
imagick::PIXEL_DOUBLE (int)
imagick::PIXEL_FLOAT (int)
imagick::PIXEL_INTEGER (int)
Only available for ImageMagick < 7.
imagick::PIXEL_LONG (int)
imagick::PIXEL_QUANTUM (int)
imagick::PIXEL_SHORT (int)
EVALUATE constants

imagick::EVALUATE_UNDEFINED (int)
imagick::EVALUATE_ADD (int)
imagick::EVALUATE_AND (int)
imagick::EVALUATE_DIVIDE (int)
imagick::EVALUATE_LEFTSHIFT (int)
imagick::EVALUATE_MAX (int)
imagick::EVALUATE_MIN (int)
imagick::EVALUATE_MULTIPLY (int)
imagick::EVALUATE_OR (int)
imagick::EVALUATE_RIGHTSHIFT (int)
imagick::EVALUATE_SET (int)
imagick::EVALUATE_SUBTRACT (int)
imagick::EVALUATE_XOR (int)
imagick::EVALUATE_POW (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_LOG (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_THRESHOLD (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_THRESHOLDBLACK (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_THRESHOLDWHITE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_GAUSSIANNOISE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_IMPULSENOISE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_LAPLACIANNOISE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_MULTIPLICATIVENOISE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_POISSONNOISE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_UNIFORMNOISE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_COSINE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_SINE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
imagick::EVALUATE_ADDMODULUS (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.4 or higher.
COLORSPACE constants

imagick::COLORSPACE_UNDEFINED (int)
imagick::COLORSPACE_RGB (int)
imagick::COLORSPACE_GRAY (int)
imagick::COLORSPACE_TRANSPARENT (int)
imagick::COLORSPACE_OHTA (int)
imagick::COLORSPACE_LAB (int)
imagick::COLORSPACE_XYZ (int)
imagick::COLORSPACE_YCBCR (int)
imagick::COLORSPACE_YCC (int)
imagick::COLORSPACE_YIQ (int)
imagick::COLORSPACE_YPBPR (int)
imagick::COLORSPACE_YUV (int)
imagick::COLORSPACE_CMYK (int)
imagick::COLORSPACE_SRGB (int)
imagick::COLORSPACE_HSB (int)
imagick::COLORSPACE_HSL (int)
imagick::COLORSPACE_HWB (int)
imagick::COLORSPACE_REC601LUMA (int)
imagick::COLORSPACE_REC709LUMA (int)
imagick::COLORSPACE_LOG (int)
imagick::COLORSPACE_CMY (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.2 or higher.
VIRTUALPIXELMETHOD constants

imagick::VIRTUALPIXELMETHOD_UNDEFINED (int)
imagick::VIRTUALPIXELMETHOD_BACKGROUND (int)
imagick::VIRTUALPIXELMETHOD_CONSTANT (int)
imagick::VIRTUALPIXELMETHOD_EDGE (int)
imagick::VIRTUALPIXELMETHOD_MIRROR (int)
imagick::VIRTUALPIXELMETHOD_TILE (int)
imagick::VIRTUALPIXELMETHOD_TRANSPARENT (int)
imagick::VIRTUALPIXELMETHOD_MASK (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.2 or higher.
imagick::VIRTUALPIXELMETHOD_BLACK (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.2 or higher.
imagick::VIRTUALPIXELMETHOD_GRAY (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.2 or higher.
imagick::VIRTUALPIXELMETHOD_WHITE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.2 or higher.
imagick::VIRTUALPIXELMETHOD_HORIZONTALTILE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.3 or higher.
imagick::VIRTUALPIXELMETHOD_VERTICALTILE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.3 or higher.
PREVIEW constants

imagick::PREVIEW_UNDEFINED (int)
imagick::PREVIEW_ROTATE (int)
imagick::PREVIEW_SHEAR (int)
imagick::PREVIEW_ROLL (int)
imagick::PREVIEW_HUE (int)
imagick::PREVIEW_SATURATION (int)
imagick::PREVIEW_BRIGHTNESS (int)
imagick::PREVIEW_GAMMA (int)
imagick::PREVIEW_SPIFF (int)
imagick::PREVIEW_DULL (int)
imagick::PREVIEW_GRAYSCALE (int)
imagick::PREVIEW_QUANTIZE (int)
imagick::PREVIEW_DESPECKLE (int)
imagick::PREVIEW_REDUCENOISE (int)
imagick::PREVIEW_ADDNOISE (int)
imagick::PREVIEW_SHARPEN (int)
imagick::PREVIEW_BLUR (int)
imagick::PREVIEW_THRESHOLD (int)
imagick::PREVIEW_EDGEDETECT (int)
imagick::PREVIEW_SPREAD (int)
imagick::PREVIEW_SOLARIZE (int)
imagick::PREVIEW_SHADE (int)
imagick::PREVIEW_RAISE (int)
imagick::PREVIEW_SEGMENT (int)
imagick::PREVIEW_SWIRL (int)
imagick::PREVIEW_IMPLODE (int)
imagick::PREVIEW_WAVE (int)
imagick::PREVIEW_OILPAINT (int)
imagick::PREVIEW_CHARCOALDRAWING (int)
imagick::PREVIEW_JPEG (int)
RENDERINGINTENT constants

imagick::RENDERINGINTENT_UNDEFINED (int)
imagick::RENDERINGINTENT_SATURATION (int)
imagick::RENDERINGINTENT_PERCEPTUAL (int)
imagick::RENDERINGINTENT_ABSOLUTE (int)
imagick::RENDERINGINTENT_RELATIVE (int)
INTERLACE constants

imagick::INTERLACE_UNDEFINED (int)
imagick::INTERLACE_NO (int)
imagick::INTERLACE_LINE (int)
imagick::INTERLACE_PLANE (int)
imagick::INTERLACE_PARTITION (int)
imagick::INTERLACE_GIF (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.4 or higher.
imagick::INTERLACE_JPEG (int)
imagick::INTERLACE_PNG (int)
FILLRULE constants

imagick::FILLRULE_UNDEFINED (int)
imagick::FILLRULE_EVENODD (int)
imagick::FILLRULE_NONZERO (int)
PATHUNITS constants

imagick::PATHUNITS_UNDEFINED (int)
imagick::PATHUNITS_USERSPACE (int)
imagick::PATHUNITS_USERSPACEONUSE (int)
imagick::PATHUNITS_OBJECTBOUNDINGBOX (int)
LINECAP constants

imagick::LINECAP_UNDEFINED (int)
imagick::LINECAP_BUTT (int)
imagick::LINECAP_ROUND (int)
imagick::LINECAP_SQUARE (int)
LINEJOIN constants

imagick::LINEJOIN_UNDEFINED (int)
imagick::LINEJOIN_MITER (int)
imagick::LINEJOIN_ROUND (int)
imagick::LINEJOIN_BEVEL (int)
RESOURCETYPE constants

imagick::RESOURCETYPE_UNDEFINED (int)
imagick::RESOURCETYPE_AREA (int)
Set the maximum width * height of an image that can reside in the pixel cache memory.
imagick::RESOURCETYPE_DISK (int)
Set maximum amount of disk space in bytes permitted for use by the pixel cache.
imagick::RESOURCETYPE_FILE (int)
Set maximum number of open pixel cache files.
imagick::RESOURCETYPE_MAP (int)
Set maximum amount of memory map in bytes to allocate for the pixel cache.
imagick::RESOURCETYPE_MEMORY (int)
Set maximum amount of memory in bytes to allocate for the pixel cache from the heap.
imagick::RESOURCETYPE_THREAD (int)
Set maximum parallel threads. Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.7.8 or higher.
LAYERMETHOD constants

imagick::LAYERMETHOD_UNDEFINED (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.2.9 or higher.
imagick::LAYERMETHOD_COALESCE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.2.9 or higher.
imagick::LAYERMETHOD_COMPAREANY (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.2.9 or higher.
imagick::LAYERMETHOD_COMPARECLEAR (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.2.9 or higher.
imagick::LAYERMETHOD_COMPAREOVERLAY (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.2.9 or higher.
imagick::LAYERMETHOD_DISPOSE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.2.9 or higher.
imagick::LAYERMETHOD_OPTIMIZE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.2.9 or higher.
imagick::LAYERMETHOD_OPTIMIZEPLUS (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.2.9 or higher.
imagick::LAYERMETHOD_OPTIMIZEIMAGE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::LAYERMETHOD_OPTIMIZETRANS (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::LAYERMETHOD_REMOVEDUPS (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::LAYERMETHOD_REMOVEZERO (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::LAYERMETHOD_COMPOSITE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::LAYERMETHOD_MERGE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.7 or higher.
imagick::LAYERMETHOD_FLATTEN (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.7 or higher.
imagick::LAYERMETHOD_MOSAIC (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.7 or higher.
ORIENTATION constants

imagick::ORIENTATION_UNDEFINED (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::ORIENTATION_TOPLEFT (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::ORIENTATION_TOPRIGHT (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::ORIENTATION_BOTTOMRIGHT (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::ORIENTATION_BOTTOMLEFT (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::ORIENTATION_LEFTTOP (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::ORIENTATION_RIGHTTOP (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::ORIENTATION_RIGHTBOTTOM (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
imagick::ORIENTATION_LEFTBOTTOM (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.0 or higher.
DISTORTION constants

imagick::DISTORTION_UNDEFINED (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.6 or higher.
imagick::DISTORTION_AFFINE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.6 or higher.
imagick::DISTORTION_AFFINEPROJECTION (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.6 or higher.
imagick::DISTORTION_ARC (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.6 or higher.
imagick::DISTORTION_BILINEAR (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.6 or higher.
imagick::DISTORTION_PERSPECTIVE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.6 or higher.
imagick::DISTORTION_PERSPECTIVEPROJECTION (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.6 or higher.
imagick::DISTORTION_SCALEROTATETRANSLATE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.6 or higher.
imagick::DISTORTION_POLYNOMIAL (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::DISTORTION_POLAR (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::DISTORTION_DEPOLAR (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::DISTORTION_BARREL (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::DISTORTION_BARRELINVERSE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::DISTORTION_SHEPARDS (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::DISTORTION_SENTINEL (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
ALPHACHANNEL constants

imagick::ALPHACHANNEL_ACTIVATE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.8 or higher.
imagick::ALPHACHANNEL_DEACTIVATE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.8 or higher.
imagick::ALPHACHANNEL_RESET (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.8 or higher.
imagick::ALPHACHANNEL_SET (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.8 or higher.
imagick::ALPHACHANNEL_UNDEFINED (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::ALPHACHANNEL_COPY (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::ALPHACHANNEL_EXTRACT (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::ALPHACHANNEL_OPAQUE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::ALPHACHANNEL_SHAPE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::ALPHACHANNEL_TRANSPARENT (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
SPARSECOLORMETHOD constants

imagick::SPARSECOLORMETHOD_UNDEFINED (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::SPARSECOLORMETHOD_BARYCENTRIC (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::SPARSECOLORMETHOD_BILINEAR (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::SPARSECOLORMETHOD_POLYNOMIAL (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::SPARSECOLORMETHOD_SPEPARDS (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::SPARSECOLORMETHOD_VORONOI (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
FUNCTION constants

imagick::FUNCTION_UNDEFINED (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.9 or higher.
imagick::FUNCTION_POLYNOMIAL (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.9 or higher.
imagick::FUNCTION_SINUSOID (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.9 or higher.
INTERPOLATE constants

imagick::INTERPOLATE_UNDEFINED (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.2 or higher.
imagick::INTERPOLATE_AVERAGE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.2 or higher.
imagick::INTERPOLATE_BICUBIC (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.2 or higher.
imagick::INTERPOLATE_BILINEAR (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.2 or higher.
imagick::INTERPOLATE_FILTER (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.2 or higher.
imagick::INTERPOLATE_INTEGER (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.2 or higher.
imagick::INTERPOLATE_MESH (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.2 or higher.
imagick::INTERPOLATE_NEARESTNEIGHBOR (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.2 or higher.
imagick::INTERPOLATE_SPLINE (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.3.4 or higher.
DITHERMETHOD constants

imagick::DITHERMETHOD_UNDEFINED (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::DITHERMETHOD_NO (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::DITHERMETHOD_RIEMERSMA (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.
imagick::DITHERMETHOD_FLOYDSTEINBERG (int)
Diese Konstante ist verfügbar, wenn Imagick kompiliert wurde gegen die ImageMagick-Version 6.4.6 or higher.


  • « Vordefinierte Konstanten
  • Basic usage »
  • PHP Manual
  • ImageMagick
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Basic usage


Basic usage

Imagick makes image manipulation in PHP extremely easy through an OO interface. Here is a quick example on how to make a thumbnail:

Beispiel #1 Creating a thumbnail in Imagick

<?php

header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// If 0 is provided as a width or height parameter,
// aspect ratio is maintained
$image->thumbnailImage(100, 0);

echo $image;

?>

Using SPL and other OO features supported in Imagick, it can be simple to resize all files in a directory (useful for batch resizing large digital camera images to be web viewable). Here we use resize, as we might want to retain certain meta-data:

Beispiel #2 Make a thumbnail of all JPG files in a directory

<?php

$images = new Imagick(glob('images/*.JPG'));

foreach($images as $image) {

    // Providing 0 forces thumbnailImage to maintain aspect ratio
    $image->thumbnailImage(1024,0);

}

$images->writeImages();

?>

This is an example of creating a reflection of an image. The reflection is created by flipping the image and overlaying a gradient on it. Then both, the original image and the reflection is overlayed on a canvas.

Beispiel #3 Creating a reflection of an image

<?php
/* Read the image */
$im = new Imagick("test.png");

/* Thumbnail the image */
$im->thumbnailImage(200, null);

/* Create a border for the image */
$im->borderImage(new ImagickPixel("white"), 5, 5);

/* Clone the image and flip it */
$reflection = $im->clone();
$reflection->flipImage();

/* Create gradient. It will be overlayed on the reflection */
$gradient = new Imagick();

/* Gradient needs to be large enough for the image and the borders */
$gradient->newPseudoImage($reflection->getImageWidth() + 10, $reflection->getImageHeight() + 10, "gradient:transparent-black");

/* Composite the gradient on the reflection */
$reflection->compositeImage($gradient, imagick::COMPOSITE_OVER, 0, 0);

/* Add some opacity. Requires ImageMagick 6.2.9 or later */
$reflection->setImageOpacity( 0.3 );

/* Create an empty canvas */
$canvas = new Imagick();

/* Canvas needs to be large enough to hold the both images */
$width = $im->getImageWidth() + 40;
$height = ($im->getImageHeight() * 2) + 30;
$canvas->newImage($width, $height, new ImagickPixel("black"));
$canvas->setImageFormat("png");

/* Composite the original image and the reflection on the canvas */
$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 20, 10);
$canvas->compositeImage($reflection, imagick::COMPOSITE_OVER, 20, $im->getImageHeight() + 10);

/* Output the image*/
header("Content-Type: image/png");
echo $canvas;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Creating a reflection of an image

This example illustrates how to use fill patterns during drawing.

Beispiel #4 Filling text with gradient

<?php

/* Create a new imagick object */
$im = new Imagick();

/* Create new image. This will be used as fill pattern */
$im->newPseudoImage(50, 50, "gradient:red-black");

/* Create imagickdraw object */
$draw = new ImagickDraw();

/* Start a new pattern called "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);

/* Composite the gradient on the pattern */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);

/* Close the pattern */
$draw->popPattern();

/* Use the pattern called "gradient" as the fill */
$draw->setFillPatternURL('#gradient');

/* Set font size to 52 */
$draw->setFontSize(52);

/* Annotate some text */
$draw->annotation(20, 50, "Hello World!");

/* Create a new canvas object and a white image */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");

/* Draw the ImagickDraw on to the canvas */
$canvas->drawImage($draw);

/* 1px black border around the image */
$canvas->borderImage('black', 1, 1);

/* Set the format to PNG */
$canvas->setImageFormat('png');

/* Output the image */
header("Content-Type: image/png");
echo $canvas;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Filling text with gradient

Working with animated GIF images

Beispiel #5 Read in GIF image and resize all frames

<?php

/* Create a new imagick object and read in GIF */
$im = new Imagick("example.gif");

/* Resize all frames */
foreach ($im as $frame) {
    /* 50x50 frames */
    $frame->thumbnailImage(50, 50);

    /* Set the virtual canvas to correct size */
    $frame->setImagePage(50, 50, 0, 0);
}

/* Notice writeImages instead of writeImage */
$im->writeImages("example_small.gif", true);
?>

Working with ellipse primitive and custom fonts

Beispiel #6 Create a PHP logo

<?php
/* Set width and height in proportion of genuine PHP logo */
$width = 400;
$height = 210;

/* Create an Imagick object with transparent canvas */
$img = new Imagick();
$img->newImage($width, $height, new ImagickPixel('transparent'));

/* New ImagickDraw instance for ellipse draw */
$draw = new ImagickDraw();
/* Set purple fill color for ellipse */
$draw->setFillColor('#777bb4');
/* Set ellipse dimensions */
$draw->ellipse($width / 2, $height / 2, $width / 2, $height / 2, 0, 360);
/* Draw ellipse onto the canvas */
$img->drawImage($draw);

/* Reset fill color from purple to black for text (note: we are reusing ImagickDraw object) */
$draw->setFillColor('black');
/* Set stroke border to white color */
$draw->setStrokeColor('white');
/* Set stroke border thickness */
$draw->setStrokeWidth(2);
/* Set font kerning (negative value means that letters are closer to each other) */
$draw->setTextKerning(-8);
/* Set font and font size used in PHP logo */
$draw->setFont('Handel Gothic.ttf');
$draw->setFontSize(150);
/* Center text horizontally and vertically */
$draw->setGravity(Imagick::GRAVITY_CENTER);

/* Add center "php" with Y offset of -10 to canvas (inside ellipse) */
$img->annotateImage($draw, 0, -10, 0, 'php');
$img->setImageFormat('png');

/* Set appropriate header for PNG and output the image */
header('Content-Type: image/png');
echo $img;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Creating PHP logo with Imagick


The Imagick class

(PECL imagick 2, PECL imagick 3)

Klassenbeschreibung

Imagick implements Iterator {
public adaptiveBlurImage ( float $radius , float $sigma , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public adaptiveResizeImage ( int $columns , int $rows , bool $bestfit = false , bool $legacy = false ) : bool
public adaptiveSharpenImage ( float $radius , float $sigma , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public adaptiveThresholdImage ( int $width , int $height , int $offset ) : bool
public addImage ( Imagick $source ) : bool
public addNoiseImage ( int $noise_type , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public affineTransformImage ( ImagickDraw $matrix ) : bool
public animateImages ( string $x_server ) : bool
public annotateImage ( ImagickDraw $draw_settings , float $x , float $y , float $angle , string $text ) : bool
public appendImages ( bool $stack ) : Imagick
public autoLevelImage ( int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public averageImages ( ) : Imagick
public blackThresholdImage ( mixed $threshold ) : bool
public blueShiftImage ( float $factor = 1.5 ) : bool
public blurImage ( float $radius , float $sigma , int $channel = ? ) : bool
public borderImage ( mixed $bordercolor , int $width , int $height ) : bool
public brightnessContrastImage ( float $brightness , float $contrast , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public charcoalImage ( float $radius , float $sigma ) : bool
public chopImage ( int $width , int $height , int $x , int $y ) : bool
public clampImage ( int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public clear ( ) : bool
public clipImage ( ) : bool
public clipImagePath ( string $pathname , string $inside ) : void
public clipPathImage ( string $pathname , bool $inside ) : bool
public clone ( ) : Imagick
public clutImage ( Imagick $lookup_table , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public coalesceImages ( ) : Imagick
public colorFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y ) : bool
public colorizeImage ( mixed $colorize , mixed $opacity , bool $legacy = false ) : bool
public colorMatrixImage ( array $color_matrix = Imagick::CHANNEL_DEFAULT ) : bool
public combineImages ( int $channelType ) : Imagick
public commentImage ( string $comment ) : bool
public compareImageChannels ( Imagick $image , int $channelType , int $metricType ) : array
public compareImageLayers ( int $method ) : Imagick
public compareImages ( Imagick $compare , int $metric ) : array
public compositeImage ( Imagick $composite_object , int $composite , int $x , int $y , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public __construct ( mixed $files = ? )
public contrastImage ( bool $sharpen ) : bool
public contrastStretchImage ( float $black_point , float $white_point , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public convolveImage ( array $kernel , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public count ( int $mode = 0 ) : int
public cropImage ( int $width , int $height , int $x , int $y ) : bool
public cropThumbnailImage ( int $width , int $height , bool $legacy = false ) : bool
public current ( ) : Imagick
public cycleColormapImage ( int $displace ) : bool
public decipherImage ( string $passphrase ) : bool
public deconstructImages ( ) : Imagick
public deleteImageArtifact ( string $artifact ) : bool
public deleteImageProperty ( string $name ) : bool
public deskewImage ( float $threshold ) : bool
public despeckleImage ( ) : bool
public destroy ( ) : bool
public displayImage ( string $servername ) : bool
public displayImages ( string $servername ) : bool
public distortImage ( int $method , array $arguments , bool $bestfit ) : bool
public drawImage ( ImagickDraw $draw ) : bool
public edgeImage ( float $radius ) : bool
public embossImage ( float $radius , float $sigma ) : bool
public encipherImage ( string $passphrase ) : bool
public enhanceImage ( ) : bool
public equalizeImage ( ) : bool
public evaluateImage ( int $op , float $constant , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public exportImagePixels ( int $x , int $y , int $width , int $height , string $map , int $STORAGE ) : array
public extentImage ( int $width , int $height , int $x , int $y ) : bool
public filter ( ImagickKernel $ImagickKernel , int $channel = Imagick::CHANNEL_UNDEFINED ) : bool
public flattenImages ( ) : Imagick
public flipImage ( ) : bool
public floodFillPaintImage ( mixed $fill , float $fuzz , mixed $target , int $x , int $y , bool $invert , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public flopImage ( ) : bool
public forwardFourierTransformimage ( bool $magnitude ) : bool
public frameImage ( mixed $matte_color , int $width , int $height , int $inner_bevel , int $outer_bevel ) : bool
public functionImage ( int $function , array $arguments , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public fxImage ( string $expression , int $channel = Imagick::CHANNEL_DEFAULT ) : Imagick
public gammaImage ( float $gamma , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public gaussianBlurImage ( float $radius , float $sigma , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public getColorspace ( ) : int
public getCompression ( ) : int
public getCompressionQuality ( ) : int
public static getCopyright ( ) : string
public getFilename ( ) : string
public getFont ( ) : string
public getFormat ( ) : string
public getGravity ( ) : int
public static getHomeURL ( ) : string
public getImage ( ) : Imagick
public getImageAlphaChannel ( ) : int
public getImageArtifact ( string $artifact ) : string
public getImageAttribute ( string $key ) : string
public getImageBackgroundColor ( ) : ImagickPixel
public getImageBlob ( ) : string
public getImageBluePrimary ( ) : array
public getImageBorderColor ( ) : ImagickPixel
public getImageChannelDepth ( int $channel ) : int
public getImageChannelDistortion ( Imagick $reference , int $channel , int $metric ) : float
public getImageChannelDistortions ( Imagick $reference , int $metric , int $channel = Imagick::CHANNEL_DEFAULT ) : float
public getImageChannelExtrema ( int $channel ) : array
public getImageChannelKurtosis ( int $channel = Imagick::CHANNEL_DEFAULT ) : array
public getImageChannelMean ( int $channel ) : array
public getImageChannelRange ( int $channel ) : array
public getImageChannelStatistics ( ) : array
public getImageClipMask ( ) : Imagick
public getImageColormapColor ( int $index ) : ImagickPixel
public getImageColors ( ) : int
public getImageColorspace ( ) : int
public getImageCompose ( ) : int
public getImageCompression ( ) : int
public getImageCompressionQuality ( ) : int
public getImageDelay ( ) : int
public getImageDepth ( ) : int
public getImageDispose ( ) : int
public getImageDistortion ( MagickWand $reference , int $metric ) : float
public getImageExtrema ( ) : array
public getImageFilename ( ) : string
public getImageFormat ( ) : string
public getImageGamma ( ) : float
public getImageGeometry ( ) : array
public getImageGravity ( ) : int
public getImageGreenPrimary ( ) : array
public getImageHeight ( ) : int
public getImageHistogram ( ) : array
public getImageIndex ( ) : int
public getImageInterlaceScheme ( ) : int
public getImageInterpolateMethod ( ) : int
public getImageIterations ( ) : int
public getImageLength ( ) : int
public getImageMatte ( ) : bool
public getImageMatteColor ( ) : ImagickPixel
public getImageMimeType ( ) : string
public getImageOrientation ( ) : int
public getImagePage ( ) : array
public getImagePixelColor ( int $x , int $y ) : ImagickPixel
public getImageProfile ( string $name ) : string
public getImageProfiles ( string $pattern = "*" , bool $include_values = true ) : array
public getImageProperties ( string $pattern = "*" , bool $include_values = true ) : array
public getImageProperty ( string $name ) : string
public getImageRedPrimary ( ) : array
public getImageRegion ( int $width , int $height , int $x , int $y ) : Imagick
public getImageRenderingIntent ( ) : int
public getImageResolution ( ) : array
public getImagesBlob ( ) : string
public getImageScene ( ) : int
public getImageSignature ( ) : string
public getImageSize ( ) : int
public getImageTicksPerSecond ( ) : int
public getImageTotalInkDensity ( ) : float
public getImageType ( ) : int
public getImageUnits ( ) : int
public getImageVirtualPixelMethod ( ) : int
public getImageWhitePoint ( ) : array
public getImageWidth ( ) : int
public getInterlaceScheme ( ) : int
public getIteratorIndex ( ) : int
public getNumberImages ( ) : int
public getOption ( string $key ) : string
public static getPackageName ( ) : string
public getPage ( ) : array
public getPixelIterator ( ) : ImagickPixelIterator
public getPixelRegionIterator ( int $x , int $y , int $columns , int $rows ) : ImagickPixelIterator
public getPointSize ( ) : float
public static getQuantum ( ) : int
public static getQuantumDepth ( ) : array
public static getQuantumRange ( ) : array
public static getRegistry ( string $key ) : string
public static getReleaseDate ( ) : string
public static getResource ( int $type ) : int
public static getResourceLimit ( int $type ) : int
public getSamplingFactors ( ) : array
public getSize ( ) : array
public getSizeOffset ( ) : int
public static getVersion ( ) : array
public haldClutImage ( Imagick $clut , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public hasNextImage ( ) : bool
public hasPreviousImage ( ) : bool
public identifyFormat ( string $embedText ) : string|false
public identifyImage ( bool $appendRawOutput = false ) : array
public implodeImage ( float $radius ) : bool
public importImagePixels ( int $x , int $y , int $width , int $height , string $map , int $storage , array $pixels ) : bool
public inverseFourierTransformImage ( Imagick $complement , bool $magnitude ) : bool
public labelImage ( string $label ) : bool
public levelImage ( float $blackPoint , float $gamma , float $whitePoint , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public linearStretchImage ( float $blackPoint , float $whitePoint ) : bool
public liquidRescaleImage ( int $width , int $height , float $delta_x , float $rigidity ) : bool
public static listRegistry ( ) : array
public magnifyImage ( ) : bool
public mapImage ( Imagick $map , bool $dither ) : bool
public matteFloodfillImage ( float $alpha , float $fuzz , mixed $bordercolor , int $x , int $y ) : bool
public medianFilterImage ( float $radius ) : bool
public mergeImageLayers ( int $layer_method ) : Imagick
public minifyImage ( ) : bool
public modulateImage ( float $brightness , float $saturation , float $hue ) : bool
public montageImage ( ImagickDraw $draw , string $tile_geometry , string $thumbnail_geometry , int $mode , string $frame ) : Imagick
public morphImages ( int $number_frames ) : Imagick
public morphology ( int $morphologyMethod , int $iterations , ImagickKernel $ImagickKernel , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public mosaicImages ( ) : Imagick
public motionBlurImage ( float $radius , float $sigma , float $angle , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public negateImage ( bool $gray , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public newImage ( int $cols , int $rows , mixed $background , string $format = ? ) : bool
public newPseudoImage ( int $columns , int $rows , string $pseudoString ) : bool
public nextImage ( ) : bool
public normalizeImage ( int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public oilPaintImage ( float $radius ) : bool
public opaquePaintImage ( mixed $target , mixed $fill , float $fuzz , bool $invert , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public optimizeImageLayers ( ) : bool
public orderedPosterizeImage ( string $threshold_map , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public paintFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public paintOpaqueImage ( mixed $target , mixed $fill , float $fuzz , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public paintTransparentImage ( mixed $target , float $alpha , float $fuzz ) : bool
pingImage ( string $filename ) : bool
public pingImageBlob ( string $image ) : bool
public pingImageFile ( resource $filehandle , string $fileName = ? ) : bool
public polaroidImage ( ImagickDraw $properties , float $angle ) : bool
public posterizeImage ( int $levels , bool $dither ) : bool
public previewImages ( int $preview ) : bool
public previousImage ( ) : bool
public profileImage ( string $name , string $profile ) : bool
public quantizeImage ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError ) : bool
public quantizeImages ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError ) : bool
public queryFontMetrics ( ImagickDraw $properties , string $text , bool $multiline = ? ) : array
public static queryFonts ( string $pattern = "*" ) : array
public static queryFormats ( string $pattern = "*" ) : array
public radialBlurImage ( float $angle , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public raiseImage ( int $width , int $height , int $x , int $y , bool $raise ) : bool
public randomThresholdImage ( float $low , float $high , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public readImage ( string $filename ) : bool
public readImageBlob ( string $image , string $filename = ? ) : bool
public readImageFile ( resource $filehandle , string $fileName = null ) : bool
public readImages ( array $filenames ) : bool
public recolorImage ( array $matrix ) : bool
public reduceNoiseImage ( float $radius ) : bool
public remapImage ( Imagick $replacement , int $DITHER ) : bool
public removeImage ( ) : bool
public removeImageProfile ( string $name ) : string
public render ( ) : bool
public resampleImage ( float $x_resolution , float $y_resolution , int $filter , float $blur ) : bool
public resetImagePage ( string $page ) : bool
public resizeImage ( int $columns , int $rows , int $filter , float $blur , bool $bestfit = false , bool $legacy = false ) : bool
public rollImage ( int $x , int $y ) : bool
public rotateImage ( mixed $background , float $degrees ) : bool
public rotationalBlurImage ( float $angle , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public roundCorners ( float $x_rounding , float $y_rounding , float $stroke_width = 10 , float $displace = 5 , float $size_correction = -6 ) : bool
public sampleImage ( int $columns , int $rows ) : bool
public scaleImage ( int $cols , int $rows , bool $bestfit = false , bool $legacy = false ) : bool
public segmentImage ( int $COLORSPACE , float $cluster_threshold , float $smooth_threshold , bool $verbose = false ) : bool
public selectiveBlurImage ( float $radius , float $sigma , float $threshold , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public separateImageChannel ( int $channel ) : bool
public sepiaToneImage ( float $threshold ) : bool
public setBackgroundColor ( mixed $background ) : bool
public setColorspace ( int $COLORSPACE ) : bool
public setCompression ( int $compression ) : bool
public setCompressionQuality ( int $quality ) : bool
public setFilename ( string $filename ) : bool
public setFirstIterator ( ) : bool
public setFont ( string $font ) : bool
public setFormat ( string $format ) : bool
public setGravity ( int $gravity ) : bool
public setImage ( Imagick $replace ) : bool
public setImageAlphaChannel ( int $mode ) : bool
public setImageArtifact ( string $artifact , string $value ) : bool
public setImageAttribute ( string $key , string $value ) : bool
public setImageBackgroundColor ( mixed $background ) : bool
public setImageBias ( float $bias ) : bool
public setImageBiasQuantum ( string $bias ) : void
public setImageBluePrimary ( float $x , float $y ) : bool
public setImageBorderColor ( mixed $border ) : bool
public setImageChannelDepth ( int $channel , int $depth ) : bool
public setImageClipMask ( Imagick $clip_mask ) : bool
public setImageColormapColor ( int $index , ImagickPixel $color ) : bool
public setImageColorspace ( int $colorspace ) : bool
public setImageCompose ( int $compose ) : bool
public setImageCompression ( int $compression ) : bool
public setImageCompressionQuality ( int $quality ) : bool
public setImageDelay ( int $delay ) : bool
public setImageDepth ( int $depth ) : bool
public setImageDispose ( int $dispose ) : bool
public setImageExtent ( int $columns , int $rows ) : bool
public setImageFilename ( string $filename ) : bool
public setImageFormat ( string $format ) : bool
public setImageGamma ( float $gamma ) : bool
public setImageGravity ( int $gravity ) : bool
public setImageGreenPrimary ( float $x , float $y ) : bool
public setImageIndex ( int $index ) : bool
public setImageInterlaceScheme ( int $interlace_scheme ) : bool
public setImageInterpolateMethod ( int $method ) : bool
public setImageIterations ( int $iterations ) : bool
public setImageMatte ( bool $matte ) : bool
public setImageMatteColor ( mixed $matte ) : bool
public setImageOpacity ( float $opacity ) : bool
public setImageOrientation ( int $orientation ) : bool
public setImagePage ( int $width , int $height , int $x , int $y ) : bool
public setImageProfile ( string $name , string $profile ) : bool
public setImageProperty ( string $name , string $value ) : bool
public setImageRedPrimary ( float $x , float $y ) : bool
public setImageRenderingIntent ( int $rendering_intent ) : bool
public setImageResolution ( float $x_resolution , float $y_resolution ) : bool
public setImageScene ( int $scene ) : bool
public setImageTicksPerSecond ( int $ticks_per_second ) : bool
public setImageType ( int $image_type ) : bool
public setImageUnits ( int $units ) : bool
public setImageVirtualPixelMethod ( int $method ) : bool
public setImageWhitePoint ( float $x , float $y ) : bool
public setInterlaceScheme ( int $interlace_scheme ) : bool
public setIteratorIndex ( int $index ) : bool
public setLastIterator ( ) : bool
public setOption ( string $key , string $value ) : bool
public setPage ( int $width , int $height , int $x , int $y ) : bool
public setPointSize ( float $point_size ) : bool
public setProgressMonitor ( callable $callback ) : bool
public static setRegistry ( string $key , string $value ) : bool
public setResolution ( float $x_resolution , float $y_resolution ) : bool
public static setResourceLimit ( int $type , int $limit ) : bool
public setSamplingFactors ( array $factors ) : bool
public setSize ( int $columns , int $rows ) : bool
public setSizeOffset ( int $columns , int $rows , int $offset ) : bool
public setType ( int $image_type ) : bool
public shadeImage ( bool $gray , float $azimuth , float $elevation ) : bool
public shadowImage ( float $opacity , float $sigma , int $x , int $y ) : bool
public sharpenImage ( float $radius , float $sigma , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public shaveImage ( int $columns , int $rows ) : bool
public shearImage ( mixed $background , float $x_shear , float $y_shear ) : bool
public sigmoidalContrastImage ( bool $sharpen , float $alpha , float $beta , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public sketchImage ( float $radius , float $sigma , float $angle ) : bool
public smushImages ( bool $stack , int $offset ) : Imagick
public solarizeImage ( int $threshold ) : bool
public sparseColorImage ( int $SPARSE_METHOD , array $arguments , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public spliceImage ( int $width , int $height , int $x , int $y ) : bool
public spreadImage ( float $radius ) : bool
public statisticImage ( int $type , int $width , int $height , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public steganoImage ( Imagick $watermark_wand , int $offset ) : Imagick
public stereoImage ( Imagick $offset_wand ) : bool
public stripImage ( ) : bool
public subImageMatch ( Imagick $Imagick , array &$offset = ? , float &$similarity = ? ) : Imagick
swirlImage ( float $degrees ) : bool
textureImage ( Imagick $texture_wand ) : Imagick
public thresholdImage ( float $threshold , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public thumbnailImage ( int $columns , int $rows , bool $bestfit = false , bool $fill = false , bool $legacy = false ) : bool
public tintImage ( mixed $tint , mixed $opacity , bool $legacy = false ) : bool
public __toString ( ) : string
public transformImage ( string $crop , string $geometry ) : Imagick
public transformImageColorspace ( int $colorspace ) : bool
public transparentPaintImage ( mixed $target , float $alpha , float $fuzz , bool $invert ) : bool
public transposeImage ( ) : bool
public transverseImage ( ) : bool
public trimImage ( float $fuzz ) : bool
public uniqueImageColors ( ) : bool
public unsharpMaskImage ( float $radius , float $sigma , float $amount , float $threshold , int $channel = Imagick::CHANNEL_DEFAULT ) : bool
public valid ( ) : bool
public vignetteImage ( float $blackPoint , float $whitePoint , int $x , int $y ) : bool
public waveImage ( float $amplitude , float $length ) : bool
public whiteThresholdImage ( mixed $threshold ) : bool
public writeImage ( string $filename = NULL ) : bool
public writeImageFile ( resource $filehandle , string $format = ? ) : bool
public writeImages ( string $filename , bool $adjoin ) : bool
public writeImagesFile ( resource $filehandle , string $format = ? ) : bool
}

Image methods and global methods

The Imagick class has the ability to hold and operate on multiple images simultaneously. This is achieved through an internal stack. There is always an internal pointer that points at the current image. Some functions operate on all images in the Imagick class, but most operate only on the current image in the internal stack. As a convention, method names can contain the word Image to denote they affect only the current image in the stack.

Class Methods

Because there are so many methods, here is a handy list of methods, somewhat reduced to their general purpose:

Class methods by purpose
Image effects | Get methods | Set methods | Read/write images | Other
Imagick::adaptiveBlurImage() | Imagick::getCompression() | Imagick::setBackgroundColor() | Imagick::__construct() | Imagick::clear()
Imagick::adaptiveResizeImage() | Imagick::getFilename() | Imagick::setCompressionQuality() | Imagick::addImage() | Imagick::clone()
Imagick::adaptiveSharpenImage() | Imagick::getFormat() | Imagick::setCompression() | Imagick::appendImages() | Imagick::current()
Imagick::adaptiveThresholdImage() | Imagick::getImageBackgroundColor() | Imagick::setFilename() | Imagick::getFilename() | Imagick::destroy()
Imagick::addNoiseImage() | Imagick::getImageBlob() | Imagick::getImagesBlob() | Imagick::setFormat() | Imagick::getFormat()
Imagick::affinetransformimage() | Imagick::getImageBluePrimary() | Imagick::setImageBackgroundColor() | Imagick::getImageFilename() | Imagick::getHomeURL()
Imagick::annotateImage() | Imagick::getImageBorderColor() | Imagick::setFirstIterator() | Imagick::getImageFormat() | Imagick::commentImage()
Imagick::averageImages() | Imagick::getImageChannelDepth() | Imagick::setImageBias() | Imagick::getImage() | Imagick::getNumberImages()
Imagick::blackThresholdImage() | Imagick::getImageChannelDistortion() | Imagick::setImageBluePrimary() | Imagick::setImageFilename() | Imagick::getReleaseDate()
Imagick::blurImage() | Imagick::getImageChannelExtrema() | Imagick::setImageBorderColor() | Imagick::setImageFormat() | Imagick::getVersion()
Imagick::borderImage() | Imagick::getImageChannelMean() | Imagick::setImageChannelDepth() | Imagick::readImageFile() | Imagick::hasNextImage()
Imagick::charcoalImage() | Imagick::getImageChannelStatistics() | Imagick::setImageColormapColor() | Imagick::readImage() | Imagick::hasPreviousImage()
Imagick::chopImage() | Imagick::getImageColormapColor() | Imagick::setImageColorSpace() | Imagick::writeImages() | Imagick::labelImage()
Imagick::clipImage() | Imagick::getImageColorspace() | Imagick::setImageCompose() | Imagick::writeImage() | Imagick::newImage()
Imagick::clipPathImage() | Imagick::getImageColors() | Imagick::setImageCompression() |  | Imagick::newPseudoImage()
Imagick::coalesceImages() | Imagick::getImageCompose() | Imagick::setImageDelay() |  | Imagick::nextImage()
Imagick::colorFloodFillImage() | Imagick::getImageDelay() | Imagick::setImageDepth() |  | Imagick::pingImageBlob()
Imagick::colorizeImage() | Imagick::getImageDepth() | Imagick::setImageDispose() |  | Imagick::pingImageFile()
Imagick::combineImages() | Imagick::getImageDispose() | Imagick::setImageDispose() |  | Imagick::pingImage()
Imagick::compareImageChannels() | Imagick::getImageDistortion() | Imagick::setImageExtent() |  | Imagick::previousImage()
Imagick::compareImageLayers() | Imagick::getImageExtrema() | Imagick::setImageFilename() |  | Imagick::profileImage()
Imagick::compositeImage() | Imagick::getImageFilename() | Imagick::setImageFormat() |  | Imagick::queryFormats()
Imagick::contrastImage() | Imagick::getImageFormat() | Imagick::setImageGamma() |  | Imagick::removeImageProfile()
Imagick::contrastStretchImage() | Imagick::getImageGamma() | Imagick::setImageGreenPrimary() |  | Imagick::removeImage()
Imagick::convolveImage() | Imagick::getImageGeometry() | Imagick::setImageIndex() |  | Imagick::setFirstIterator()
Imagick::cropImage() | Imagick::getImageGreenPrimary() | Imagick::setImageInterpolateMethod() |  | Imagick::setImageIndex()
Imagick::cycleColormapImage() | Imagick::getImageHeight() | Imagick::setImageIterations() |  | Imagick::valid()
Imagick::deconstructImages() | Imagick::getImageHistogram() | Imagick::setImageMatteColor() |  | Imagick::getCopyright()
Imagick::drawImage() | Imagick::getImageIndex() | Imagick::setImageMatte() |  |
Imagick::edgeImage() | Imagick::getImageInterlaceScheme() | Imagick::setImagePage() |  |
Imagick::embossImage() | Imagick::getImageInterpolateMethod() | Imagick::setImageProfile() |  |
Imagick::enhanceImage() | Imagick::getImageIterations() | Imagick::setImageProperty() |  |
Imagick::equalizeImage() | Imagick::getImageMatteColor() | Imagick::setImageRedPrimary() |  |
Imagick::evaluateImage() | Imagick::getImageMatte() | Imagick::setImageRenderingIntent() |  |
Imagick::flattenImages() | Imagick::getImagePage() | Imagick::setImageResolution() |  |
Imagick::flipImage() | Imagick::getImagePixelColor() | Imagick::setImageScene() |  |
Imagick::flopImage() | Imagick::getImageProfile() | Imagick::setImageTicksPerSecond() |  |
 | Imagick::getImageProperty() | Imagick::setImageType() |  |
Imagick::fxImage() | Imagick::getImageRedPrimary() | Imagick::setImageUnits() |  |
Imagick::gammaImage() | Imagick::getImageRegion() | Imagick::setImageVirtualPixelMethod() |  |
Imagick::gaussianBlurImage() | Imagick::getImageRenderingIntent() | Imagick::setImageWhitepoint() |  |
Imagick::implodeImage() | Imagick::getImageResolution() | Imagick::setInterlaceScheme() |  |
Imagick::levelImage() | Imagick::getImageScene() | Imagick::setOption() |  |
Imagick::linearStretchImage() | Imagick::getImageSignature() | Imagick::setPage() |  |
Imagick::magnifyImage() | Imagick::getImageTicksPerSecond() | Imagick::setResolution() |  |
Imagick::matteFloodFillImage() | Imagick::getImageTotalInkDensity() | Imagick::setResourceLimit() |  |
Imagick::medianFilterImage() | Imagick::getImageType() | Imagick::setSamplingFactors() |  |
Imagick::minifyImage() | Imagick::getImageUnits() | Imagick::setSizeOffset() |  |
Imagick::modulateImage() | Imagick::getImageVirtualPixelMethod() | Imagick::setSize() |  |
Imagick::montageImage() | Imagick::getImageWhitepoint() | Imagick::setType() |  |
Imagick::morphImages() | Imagick::getImageWidth() |  |  |
Imagick::mosaicImages() | Imagick::getImage() |  |  |
Imagick::motionBlurImage() | Imagick::getInterlaceScheme() |  |  |
Imagick::negateImage() | Imagick::getNumberImages() |  |  |
Imagick::normalizeImage() | Imagick::getOption() |  |  |
Imagick::oilPaintImage() | Imagick::getPackageName() |  |  |
Imagick::optimizeImageLayers() | Imagick::getPage() |  |  |
Imagick::paintOpaqueImage() | Imagick::getPixelIterator() |  |  |
Imagick::paintTransparentImage() | Imagick::getPixelRegionIterator() |  |  |
Imagick::posterizeImage() | Imagick::getQuantumDepth() |  |  |
Imagick::radialBlurImage() | Imagick::getQuantumRange() |  |  |
Imagick::raiseImage() | Imagick::getResourceLimit() |  |  |
Imagick::randomThresholdImage() | Imagick::getResource() |  |  |
Imagick::reduceNoiseImage() | Imagick::getSamplingFactors() |  |  |
Imagick::render() | Imagick::getSizeOffset() |  |  |
Imagick::resampleImage() | Imagick::getSize() |  |  |
Imagick::resizeImage() | Imagick::identifyImage() |  |  |
Imagick::rollImage() | Imagick::getImageSize() |  |  |
Imagick::rotateImage() |  |  |  |
Imagick::sampleImage() |  |  |  |
Imagick::scaleImage() |  |  |  |
Imagick::separateImageChannel() |  |  |  |
Imagick::sepiaToneImage() |  |  |  |
Imagick::shadeImage() |  |  |  |
Imagick::shadowImage() |  |  |  |
Imagick::sharpenImage() |  |  |  |
Imagick::shaveImage() |  |  |  |
Imagick::shearImage() |  |  |  |
Imagick::sigmoidalContrastImage() |  |  |  |
Imagick::sketchImage() |  |  |  |
Imagick::solarizeImage() |  |  |  |
Imagick::spliceImage() |  |  |  |
Imagick::spreadImage() |  |  |  |
Imagick::steganoImage() |  |  |  |
Imagick::stereoImage() |  |  |  |
Imagick::stripImage() |  |  |  |
Imagick::swirlImage() |  |  |  |
Imagick::textureImage() |  |  |  |
Imagick::thresholdImage() |  |  |  |
Imagick::thumbnailImage() |  |  |  |
Imagick::tintImage() |  |  |  |
Imagick::transverseImage() |  |  |  |
Imagick::trimImage() |  |  |  |
Imagick::uniqueImageColors() |  |  |  |
Imagick::unsharpMaskImage() |  |  |  |
Imagick::vignetteImage() |  |  |  |
Imagick::waveImage() |  |  |  |
Imagick::whiteThresholdImage() |  |  |  |

Inhaltsverzeichnis

  • Imagick::adaptiveBlurImage — Adds adaptive blur filter to image
  • Imagick::adaptiveResizeImage — Adaptively resize image with data dependent triangulation
  • Imagick::adaptiveSharpenImage — Adaptively sharpen the image
  • Imagick::adaptiveThresholdImage — Selects a threshold for each pixel based on a range of intensity
  • Imagick::addImage — Adds new image to Imagick object image list
  • Imagick::addNoiseImage — Adds random noise to the image
  • Imagick::affineTransformImage — Transforms an image
  • Imagick::animateImages — Animates an image or images
  • Imagick::annotateImage — Annotates an image with text
  • Imagick::appendImages — Append a set of images
  • Imagick::autoLevelImage — Description
  • Imagick::averageImages — Average a set of images
  • Imagick::blackThresholdImage — Forces all pixels below the threshold into black
  • Imagick::blueShiftImage — Description
  • Imagick::blurImage — Adds blur filter to image
  • Imagick::borderImage — Surrounds the image with a border
  • Imagick::brightnessContrastImage — Description
  • Imagick::charcoalImage — Simulates a charcoal drawing
  • Imagick::chopImage — Removes a region of an image and trims
  • Imagick::clampImage — Description
  • Imagick::clear — Clears all resources associated to Imagick object
  • Imagick::clipImage — Clips along the first path from the 8BIM profile
  • Imagick::clipImagePath — Description
  • Imagick::clipPathImage — Clips along the named paths from the 8BIM profile
  • Imagick::clone — Makes an exact copy of the Imagick object
  • Imagick::clutImage — Replaces colors in the image
  • Imagick::coalesceImages — Composites a set of images
  • Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target
  • Imagick::colorizeImage — Blends the fill color with the image
  • Imagick::colorMatrixImage — Description
  • Imagick::combineImages — Combines one or more images into a single image
  • Imagick::commentImage — Adds a comment to your image
  • Imagick::compareImageChannels — Returns the difference in one or more images
  • Imagick::compareImageLayers — Returns the maximum bounding region between images
  • Imagick::compareImages — Compares an image to a reconstructed image
  • Imagick::compositeImage — Composite one image onto another
  • Imagick::__construct — The Imagick constructor
  • Imagick::contrastImage — Change the contrast of the image
  • Imagick::contrastStretchImage — Enhances the contrast of a color image
  • Imagick::convolveImage — Applies a custom convolution kernel to the image
  • Imagick::count — Get the number of images
  • Imagick::cropImage — Extracts a region of the image
  • Imagick::cropThumbnailImage — Creates a crop thumbnail
  • Imagick::current — Returns a reference to the current Imagick object
  • Imagick::cycleColormapImage — Displaces an image's colormap
  • Imagick::decipherImage — Deciphers an image
  • Imagick::deconstructImages — Returns certain pixel differences between images
  • Imagick::deleteImageArtifact — Delete image artifact
  • Imagick::deleteImageProperty — Description
  • Imagick::deskewImage — Removes skew from the image
  • Imagick::despeckleImage — Reduces the speckle noise in an image
  • Imagick::destroy — Destroys the Imagick object
  • Imagick::displayImage — Displays an image
  • Imagick::displayImages — Displays an image or image sequence
  • Imagick::distortImage — Distorts an image using various distortion methods
  • Imagick::drawImage — Renders the ImagickDraw object on the current image
  • Imagick::edgeImage — Enhance edges within the image
  • Imagick::embossImage — Returns a grayscale image with a three-dimensional effect
  • Imagick::encipherImage — Enciphers an image
  • Imagick::enhanceImage — Improves the quality of a noisy image
  • Imagick::equalizeImage — Equalizes the image histogram
  • Imagick::evaluateImage — Applies an expression to an image
  • Imagick::exportImagePixels — Exports raw image pixels
  • Imagick::extentImage — Set image size
  • Imagick::filter — Description
  • Imagick::flattenImages — Merges a sequence of images
  • Imagick::flipImage — Creates a vertical mirror image
  • Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target
  • Imagick::flopImage — Creates a vertical mirror image
  • Imagick::forwardFourierTransformImage — Description
  • Imagick::frameImage — Adds a simulated three-dimensional border
  • Imagick::functionImage — Applies a function on the image
  • Imagick::fxImage — Evaluate expression for each pixel in the image
  • Imagick::gammaImage — Gamma-corrects an image
  • Imagick::gaussianBlurImage — Blurs an image
  • Imagick::getColorspace — Gets the colorspace
  • Imagick::getCompression — Gets the object compression type
  • Imagick::getCompressionQuality — Gets the object compression quality
  • Imagick::getCopyright — Returns the ImageMagick API copyright as a string
  • Imagick::getFilename — The filename associated with an image sequence
  • Imagick::getFont — Gets font
  • Imagick::getFormat — Returns the format of the Imagick object
  • Imagick::getGravity — Gets the gravity
  • Imagick::getHomeURL — Returns the ImageMagick home URL
  • Imagick::getImage — Returns a new Imagick object
  • Imagick::getImageAlphaChannel — Gets the image alpha channel
  • Imagick::getImageArtifact — Get image artifact
  • Imagick::getImageAttribute — Description
  • Imagick::getImageBackgroundColor — Returns the image background color
  • Imagick::getImageBlob — Returns the image sequence as a blob
  • Imagick::getImageBluePrimary — Returns the chromaticy blue primary point
  • Imagick::getImageBorderColor — Returns the image border color
  • Imagick::getImageChannelDepth — Gets the depth for a particular image channel
  • Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image
  • Imagick::getImageChannelDistortions — Gets channel distortions
  • Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels
  • Imagick::getImageChannelKurtosis — The getImageChannelKurtosis purpose
  • Imagick::getImageChannelMean — Gets the mean and standard deviation
  • Imagick::getImageChannelRange — Gets channel range
  • Imagick::getImageChannelStatistics — Returns statistics for each channel in the image
  • Imagick::getImageClipMask — Gets image clip mask
  • Imagick::getImageColormapColor — Returns the color of the specified colormap index
  • Imagick::getImageColors — Gets the number of unique colors in the image
  • Imagick::getImageColorspace — Gets the image colorspace
  • Imagick::getImageCompose — Returns the composite operator associated with the image
  • Imagick::getImageCompression — Gets the current image's compression type
  • Imagick::getImageCompressionQuality — Gets the current image's compression quality
  • Imagick::getImageDelay — Gets the image delay
  • Imagick::getImageDepth — Gets the image depth
  • Imagick::getImageDispose — Gets the image disposal method
  • Imagick::getImageDistortion — Compares an image to a reconstructed image
  • Imagick::getImageExtrema — Gets the extrema for the image
  • Imagick::getImageFilename — Returns the filename of a particular image in a sequence
  • Imagick::getImageFormat — Returns the format of a particular image in a sequence
  • Imagick::getImageGamma — Gets the image gamma
  • Imagick::getImageGeometry — Gets the width and height as an associative array
  • Imagick::getImageGravity — Gets the image gravity
  • Imagick::getImageGreenPrimary — Returns the chromaticy green primary point
  • Imagick::getImageHeight — Returns the image height
  • Imagick::getImageHistogram — Gets the image histogram
  • Imagick::getImageIndex — Gets the index of the current active image
  • Imagick::getImageInterlaceScheme — Gets the image interlace scheme
  • Imagick::getImageInterpolateMethod — Returns the interpolation method
  • Imagick::getImageIterations — Gets the image iterations
  • Imagick::getImageLength — Returns the image length in bytes
  • Imagick::getImageMatte — Return if the image has a matte channel
  • Imagick::getImageMatteColor — Returns the image matte color
  • Imagick::getImageMimeType — Description
  • Imagick::getImageOrientation — Gets the image orientation
  • Imagick::getImagePage — Returns the page geometry
  • Imagick::getImagePixelColor — Returns the color of the specified pixel
  • Imagick::getImageProfile — Returns the named image profile
  • Imagick::getImageProfiles — Returns the image profiles
  • Imagick::getImageProperties — Returns the image properties
  • Imagick::getImageProperty — Returns the named image property
  • Imagick::getImageRedPrimary — Returns the chromaticity red primary point
  • Imagick::getImageRegion — Extracts a region of the image
  • Imagick::getImageRenderingIntent — Gets the image rendering intent
  • Imagick::getImageResolution — Gets the image X and Y resolution
  • Imagick::getImagesBlob — Returns all image sequences as a blob
  • Imagick::getImageScene — Gets the image scene
  • Imagick::getImageSignature — Generates an SHA-256 message digest
  • Imagick::getImageSize — Returns the image length in bytes
  • Imagick::getImageTicksPerSecond — Gets the image ticks-per-second
  • Imagick::getImageTotalInkDensity — Gets the image total ink density
  • Imagick::getImageType — Gets the potential image type
  • Imagick::getImageUnits — Gets the image units of resolution
  • Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method
  • Imagick::getImageWhitePoint — Returns the chromaticity white point
  • Imagick::getImageWidth — Returns the image width
  • Imagick::getInterlaceScheme — Gets the object interlace scheme
  • Imagick::getIteratorIndex — Gets the index of the current active image
  • Imagick::getNumberImages — Returns the number of images in the object
  • Imagick::getOption — Returns a value associated with the specified key
  • Imagick::getPackageName — Returns the ImageMagick package name
  • Imagick::getPage — Returns the page geometry
  • Imagick::getPixelIterator — Returns a MagickPixelIterator
  • Imagick::getPixelRegionIterator — Get an ImagickPixelIterator for an image section
  • Imagick::getPointSize — Gets point size
  • Imagick::getQuantum — Description
  • Imagick::getQuantumDepth — Gets the quantum depth
  • Imagick::getQuantumRange — Returns the Imagick quantum range
  • Imagick::getRegistry — Description
  • Imagick::getReleaseDate — Returns the ImageMagick release date
  • Imagick::getResource — Returns the specified resource's memory usage
  • Imagick::getResourceLimit — Returns the specified resource limit
  • Imagick::getSamplingFactors — Gets the horizontal and vertical sampling factor
  • Imagick::getSize — Returns the size associated with the Imagick object
  • Imagick::getSizeOffset — Returns the size offset
  • Imagick::getVersion — Returns the ImageMagick API version
  • Imagick::haldClutImage — Replaces colors in the image
  • Imagick::hasNextImage — Checks if the object has more images
  • Imagick::hasPreviousImage — Checks if the object has a previous image
  • Imagick::identifyFormat — Description
  • Imagick::identifyImage — Identifies an image and fetches attributes
  • Imagick::implodeImage — Creates a new image as a copy
  • Imagick::importImagePixels — Imports image pixels
  • Imagick::inverseFourierTransformImage — Description
  • Imagick::labelImage — Adds a label to an image
  • Imagick::levelImage — Adjusts the levels of an image
  • Imagick::linearStretchImage — Stretches with saturation the image intensity
  • Imagick::liquidRescaleImage — Animates an image or images
  • Imagick::listRegistry — Description
  • Imagick::magnifyImage — Scales an image proportionally 2x
  • Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image
  • Imagick::matteFloodfillImage — Changes the transparency value of a color
  • Imagick::medianFilterImage — Applies a digital filter
  • Imagick::mergeImageLayers — Merges image layers
  • Imagick::minifyImage — Scales an image proportionally to half its size
  • Imagick::modulateImage — Control the brightness, saturation, and hue
  • Imagick::montageImage — Creates a composite image
  • Imagick::morphImages — Method morphs a set of images
  • Imagick::morphology — Description
  • Imagick::mosaicImages — Forms a mosaic from images
  • Imagick::motionBlurImage — Simulates motion blur
  • Imagick::negateImage — Negates the colors in the reference image
  • Imagick::newImage — Creates a new image
  • Imagick::newPseudoImage — Creates a new image
  • Imagick::nextImage — Moves to the next image
  • Imagick::normalizeImage — Enhances the contrast of a color image
  • Imagick::oilPaintImage — Simulates an oil painting
  • Imagick::opaquePaintImage — Changes the color value of any pixel that matches target
  • Imagick::optimizeImageLayers — Removes repeated portions of images to optimize
  • Imagick::orderedPosterizeImage — Performs an ordered dither
  • Imagick::paintFloodfillImage — Changes the color value of any pixel that matches target
  • Imagick::paintOpaqueImage — Change any pixel that matches color
  • Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill
  • Imagick::pingImage — Abrufen von grundlegenden Merkmalen eines Bildes
  • Imagick::pingImageBlob — Quickly fetch attributes
  • Imagick::pingImageFile — Get basic image attributes in a lightweight manner
  • Imagick::polaroidImage — Simulates a Polaroid picture
  • Imagick::posterizeImage — Reduces the image to a limited number of color level
  • Imagick::previewImages — Quickly pin-point appropriate parameters for image processing
  • Imagick::previousImage — Move to the previous image in the object
  • Imagick::profileImage — Adds or removes a profile from an image
  • Imagick::quantizeImage — Analyzes the colors within a reference image
  • Imagick::quantizeImages — Analyzes the colors within a sequence of images
  • Imagick::queryFontMetrics — Returns an array representing the font metrics
  • Imagick::queryFonts — Returns the configured fonts
  • Imagick::queryFormats — Returns formats supported by Imagick
  • Imagick::radialBlurImage — Radial blurs an image
  • Imagick::raiseImage — Creates a simulated 3d button-like effect
  • Imagick::randomThresholdImage — Creates a high-contrast, two-color image
  • Imagick::readImage — Reads image from filename
  • Imagick::readImageBlob — Reads image from a binary string
  • Imagick::readImageFile — Reads image from open filehandle
  • Imagick::readimages — Description
  • Imagick::recolorImage — Recolors image
  • Imagick::reduceNoiseImage — Smooths the contours of an image
  • Imagick::remapImage — Remaps image colors
  • Imagick::removeImage — Removes an image from the image list
  • Imagick::removeImageProfile — Removes the named image profile and returns it
  • Imagick::render — Renders all preceding drawing commands
  • Imagick::resampleImage — Resample image to desired resolution
  • Imagick::resetImagePage — Reset image page
  • Imagick::resizeImage — Scales an image
  • Imagick::rollImage — Offsets an image
  • Imagick::rotateImage — Rotates an image
  • Imagick::rotationalBlurImage — Description
  • Imagick::roundCorners — Rounds image corners
  • Imagick::sampleImage — Scales an image with pixel sampling
  • Imagick::scaleImage — Scales the size of an image
  • Imagick::segmentImage — Segments an image
  • Imagick::selectiveBlurImage — Description
  • Imagick::separateImageChannel — Separates a channel from the image
  • Imagick::sepiaToneImage — Sepia tones an image
  • Imagick::setBackgroundColor — Sets the object's default background color
  • Imagick::setColorspace — Set colorspace
  • Imagick::setCompression — Sets the object's default compression type
  • Imagick::setCompressionQuality — Sets the object's default compression quality
  • Imagick::setFilename — Sets the filename before you read or write the image
  • Imagick::setFirstIterator — Sets the Imagick iterator to the first image
  • Imagick::setFont — Sets font
  • Imagick::setFormat — Sets the format of the Imagick object
  • Imagick::setGravity — Sets the gravity
  • Imagick::setImage — Replaces image in the object
  • Imagick::setImageAlphaChannel — Sets image alpha channel
  • Imagick::setImageArtifact — Set image artifact
  • Imagick::setImageAttribute — Description
  • Imagick::setImageBackgroundColor — Sets the image background color
  • Imagick::setImageBias — Sets the image bias for any method that convolves an image
  • Imagick::setImageBiasQuantum — Description
  • Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point
  • Imagick::setImageBorderColor — Sets the image border color
  • Imagick::setImageChannelDepth — Sets the depth of a particular image channel
  • Imagick::setImageClipMask — Sets image clip mask
  • Imagick::setImageColormapColor — Sets the color of the specified colormap index
  • Imagick::setImageColorspace — Sets the image colorspace
  • Imagick::setImageCompose — Sets the image composite operator
  • Imagick::setImageCompression — Sets the image compression
  • Imagick::setImageCompressionQuality — Sets the image compression quality
  • Imagick::setImageDelay — Sets the image delay
  • Imagick::setImageDepth — Sets the image depth
  • Imagick::setImageDispose — Sets the image disposal method
  • Imagick::setImageExtent — Sets the image size
  • Imagick::setImageFilename — Sets the filename of a particular image
  • Imagick::setImageFormat — Sets the format of a particular image
  • Imagick::setImageGamma — Sets the image gamma
  • Imagick::setImageGravity — Sets the image gravity
  • Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point
  • Imagick::setImageIndex — Set the iterator position
  • Imagick::setImageInterlaceScheme — Sets the image compression
  • Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method
  • Imagick::setImageIterations — Sets the image iterations
  • Imagick::setImageMatte — Sets the image matte channel
  • Imagick::setImageMatteColor — Sets the image matte color
  • Imagick::setImageOpacity — Sets the image opacity level
  • Imagick::setImageOrientation — Sets the image orientation
  • Imagick::setImagePage — Sets the page geometry of the image
  • Imagick::setImageProfile — Adds a named profile to the Imagick object
  • Imagick::setImageProperty — Sets an image property
  • Imagick::setImageRedPrimary — Sets the image chromaticity red primary point
  • Imagick::setImageRenderingIntent — Sets the image rendering intent
  • Imagick::setImageResolution — Sets the image resolution
  • Imagick::setImageScene — Sets the image scene
  • Imagick::setImageTicksPerSecond — Sets the image ticks-per-second
  • Imagick::setImageType — Sets the image type
  • Imagick::setImageUnits — Sets the image units of resolution
  • Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method
  • Imagick::setImageWhitePoint — Sets the image chromaticity white point
  • Imagick::setInterlaceScheme — Sets the image compression
  • Imagick::setIteratorIndex — Set the iterator position
  • Imagick::setLastIterator — Sets the Imagick iterator to the last image
  • Imagick::setOption — Set an option
  • Imagick::setPage — Sets the page geometry of the Imagick object
  • Imagick::setPointSize — Sets point size
  • Imagick::setProgressMonitor — Description
  • Imagick::setRegistry — Description
  • Imagick::setResolution — Sets the image resolution
  • Imagick::setResourceLimit — Sets the limit for a particular resource
  • Imagick::setSamplingFactors — Sets the image sampling factors
  • Imagick::setSize — Sets the size of the Imagick object
  • Imagick::setSizeOffset — Sets the size and offset of the Imagick object
  • Imagick::setType — Sets the image type attribute
  • Imagick::shadeImage — Creates a 3D effect
  • Imagick::shadowImage — Simulates an image shadow
  • Imagick::sharpenImage — Sharpens an image
  • Imagick::shaveImage — Shaves pixels from the image edges
  • Imagick::shearImage — Creating a parallelogram
  • Imagick::sigmoidalContrastImage — Adjusts the contrast of an image
  • Imagick::sketchImage — Simulates a pencil sketch
  • Imagick::smushImages — Description
  • Imagick::solarizeImage — Applies a solarizing effect to the image
  • Imagick::sparseColorImage — Interpolates colors
  • Imagick::spliceImage — Splices a solid color into the image
  • Imagick::spreadImage — Randomly displaces each pixel in a block
  • Imagick::statisticImage — Description
  • Imagick::steganoImage — Hides a digital watermark within the image
  • Imagick::stereoImage — Composites two images
  • Imagick::stripImage — Strips an image of all profiles and comments
  • Imagick::subImageMatch — Description
  • Imagick::swirlImage — Swirls the pixels about the center of the image
  • Imagick::textureImage — Repeatedly tiles the texture image
  • Imagick::thresholdImage — Changes the value of individual pixels based on a threshold
  • Imagick::thumbnailImage — Changes the size of an image
  • Imagick::tintImage — Applies a color vector to each pixel in the image
  • Imagick::__toString — Returns the image as a string
  • Imagick::transformImage — Convenience method for setting crop size and the image geometry
  • Imagick::transformImageColorspace — Transforms an image to a new colorspace
  • Imagick::transparentPaintImage — Paints pixels transparent
  • Imagick::transposeImage — Creates a vertical mirror image
  • Imagick::transverseImage — Creates a horizontal mirror image
  • Imagick::trimImage — Remove edges from the image
  • Imagick::uniqueImageColors — Discards all but one of any pixel color
  • Imagick::unsharpMaskImage — Sharpens an image
  • Imagick::valid — Checks if the current item is valid
  • Imagick::vignetteImage — Adds vignette filter to the image
  • Imagick::waveImage — Applies wave filter to the image
  • Imagick::whiteThresholdImage — Force all pixels above the threshold into white
  • Imagick::writeImage — Writes an image to the specified filename
  • Imagick::writeImageFile — Writes an image to a filehandle
  • Imagick::writeImages — Writes an image or image sequence
  • Imagick::writeImagesFile — Writes frames to a filehandle


Adds adaptive blur filter to image

  • « Imagick
  • Imagick::adaptiveResizeImage »
  • PHP Manual
  • Imagick
  • Adds adaptive blur filter to image

Imagick::adaptiveBlurImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveBlurImage — Adds adaptive blur filter to image

Beschreibung

public Imagick::adaptiveBlurImage ( float $radius , float $sigma , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Adds an adaptive blur filter to image. The intensity of an adaptive blur depends is dramatically decreased at edge of the image, whereas a standard blur is uniform across the image. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

radius

The radius of the Gaussian, in pixels, not counting the center pixel. Provide a value of 0 and the radius will be chosen automagically.

sigma

The standard deviation of the Gaussian, in pixels.

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Using Imagick::adaptiveBlurImage():

Adaptively blur an image, then display to the browser.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->adaptiveBlurImage(5,3);
echo $image;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Using Imagick::adaptiveBlurImage()

Siehe auch

  • Imagick::blurImage() - Adds blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Adaptively resize image with data dependent triangulation

  • « Imagick::adaptiveBlurImage
  • Imagick::adaptiveSharpenImage »
  • PHP Manual
  • Imagick
  • Adaptively resize image with data dependent triangulation

Imagick::adaptiveResizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveResizeImage — Adaptively resize image with data dependent triangulation

Beschreibung

public Imagick::adaptiveResizeImage ( int $columns , int $rows , bool $bestfit = false , bool $legacy = false ) : bool

Adaptively resize image with data-dependent triangulation. Avoids blurring across sharp color changes. Most useful when used to shrink images slightly to a slightly smaller "web size"; may not look good when a full-sized image is adaptively resized to a thumbnail. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Hinweis: Das Verhalten des Parameters bestfit hat sich mit Imagick 3.0.0 geändert. Vor dieser Version wurde ein Bild der Größe 200x150 bei der angegebenen Größe von 400x400 nicht verändert. In Imagick 3.0.0 und späteren Versionen wird dieses Bild auf die Größe 400x300 hochgerechnet, da dies die passendste größe für die angegebene Bildgröße ist. Wenn der bestfit-Parameter angegeben wird, so muss sowohl eine Breite als auch eine Höhe angegeben werden.

Parameter-Liste

columns

The number of columns in the scaled image.

rows

The number of rows in the scaled image.

bestfit

Whether to fit the image inside a bounding box.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Added optional fit parameter.
PECL imagick 2.1.0 | This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

Beispiele

Beispiel #1 Using Imagick::adaptiveResizeImage()

Resize an image to a standard size for the web. This method works best when resizing to a size only slightly smaller than the previous image size.

<?php
header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');
$image->adaptiveResizeImage(1024,768);

echo $image;
?>

Siehe auch

  • Imagick::chopImage() - Removes a region of an image and trims
  • Imagick::cropImage() - Extracts a region of the image
  • Imagick::magnifyImage() - Scales an image proportionally 2x
  • Imagick::minifyImage() - Scales an image proportionally to half its size
  • Imagick::resizeImage() - Scales an image
  • Imagick::scaleImage() - Scales the size of an image
  • Imagick::shaveImage() - Shaves pixels from the image edges
  • Imagick::thumbnailImage() - Changes the size of an image
  • Imagick::trimImage() - Remove edges from the image


Adaptively sharpen the image

  • « Imagick::adaptiveResizeImage
  • Imagick::adaptiveThresholdImage »
  • PHP Manual
  • Imagick
  • Adaptively sharpen the image

Imagick::adaptiveSharpenImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveSharpenImage — Adaptively sharpen the image

Beschreibung

public Imagick::adaptiveSharpenImage ( float $radius , float $sigma , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Adaptively sharpen the image by sharpening more intensely near image edges and less intensely far from edges. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

radius

The radius of the Gaussian, in pixels, not counting the center pixel. Use 0 for auto-select.

sigma

The standard deviation of the Gaussian, in pixels.

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 A Imagick::adaptiveSharpenImage() example

Adaptively sharpen the image with radius 2 and sigma 1.

<?php
try {
    $image = new Imagick('image.png');
    $image->adaptiveSharpenImage(2,1);
} catch(ImagickException $e) {
    echo 'Error: ' , $e->getMessage();
    die();
}
header('Content-type: image/png');
echo $image;
?>

Siehe auch

  • Imagick::sharpenImage() - Sharpens an image


Selects a threshold for each pixel based on a range of intensity

  • « Imagick::adaptiveSharpenImage
  • Imagick::addImage »
  • PHP Manual
  • Imagick
  • Selects a threshold for each pixel based on a range of intensity

Imagick::adaptiveThresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveThresholdImage — Selects a threshold for each pixel based on a range of intensity

Beschreibung

public Imagick::adaptiveThresholdImage ( int $width , int $height , int $offset ) : bool

Selects an individual threshold for each pixel based on the range of intensity values in its local neighborhood. This allows for thresholding of an image whose global intensity histogram doesn't contain distinctive peaks.

Parameter-Liste

width

Width of the local neighborhood.

height

Height of the local neighborhood.

offset

The mean offset

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::adaptiveThresholdImage()

<?php
function adaptiveThresholdImage($imagePath, $width, $height, $adaptiveOffset) {
    $imagick = new \Imagick(realpath($imagePath));
    $adaptiveOffsetQuantum = intval($adaptiveOffset * \Imagick::getQuantum());
    $imagick->adaptiveThresholdImage($width, $height, $adaptiveOffsetQuantum);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Adds new image to Imagick object image list

  • « Imagick::adaptiveThresholdImage
  • Imagick::addNoiseImage »
  • PHP Manual
  • Imagick
  • Adds new image to Imagick object image list

Imagick::addImage

(PECL imagick 2, PECL imagick 3)

Imagick::addImage — Adds new image to Imagick object image list

Beschreibung

public Imagick::addImage ( Imagick $source ) : bool

Adds new image to Imagick object from the current position of the source object. After the operation iterator position is moved at the end of the list.

Parameter-Liste

source

The source Imagick object

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Adds random noise to the image

  • « Imagick::addImage
  • Imagick::affineTransformImage »
  • PHP Manual
  • Imagick
  • Adds random noise to the image

Imagick::addNoiseImage

(PECL imagick 2, PECL imagick 3)

Imagick::addNoiseImage — Adds random noise to the image

Beschreibung

public Imagick::addNoiseImage ( int $noise_type , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Adds random noise to the image.

Parameter-Liste

noise_type

The type of the noise. Refer to this list of noise constants.

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::addNoiseImage()

<?php
function addNoiseImage($noiseType, $imagePath, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->addNoiseImage($noiseType, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Transforms an image

  • « Imagick::addNoiseImage
  • Imagick::animateImages »
  • PHP Manual
  • Imagick
  • Transforms an image

Imagick::affineTransformImage

(PECL imagick 2, PECL imagick 3)

Imagick::affineTransformImage — Transforms an image

Beschreibung

public Imagick::affineTransformImage ( ImagickDraw $matrix ) : bool

Transforms an image as dictated by the affine matrix.

Parameter-Liste

matrix

The affine matrix

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::affineTransformImage()

<?php
function affineTransformImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $draw = new \ImagickDraw();

    $angle = deg2rad(40);

    $affineRotate = array(
        "sx" => cos($angle), "sy" => cos($angle),
        "rx" => sin($angle), "ry" => -sin($angle),
        "tx" => 0, "ty" => 0,
    );

    $draw->affine($affineRotate);

    $imagick->affineTransformImage($draw);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Animates an image or images

  • « Imagick::affineTransformImage
  • Imagick::annotateImage »
  • PHP Manual
  • Imagick
  • Animates an image or images

Imagick::animateImages

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::animateImages — Animates an image or images

Beschreibung

public Imagick::animateImages ( string $x_server ) : bool

This method animates the image onto a local or remote X server. This method is not available on Windows. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.6 oder höher kompiliert wurde.

Parameter-Liste

x_server

X server address

Rückgabewerte

Liefert true bei Erfolg.

Siehe auch

  • Imagick::displayImage() - Displays an image


Annotates an image with text

  • « Imagick::animateImages
  • Imagick::appendImages »
  • PHP Manual
  • Imagick
  • Annotates an image with text

Imagick::annotateImage

(PECL imagick 2, PECL imagick 3)

Imagick::annotateImage — Annotates an image with text

Beschreibung

public Imagick::annotateImage ( ImagickDraw $draw_settings , float $x , float $y , float $angle , string $text ) : bool

Annotates an image with text.

Parameter-Liste

draw_settings

The ImagickDraw object that contains settings for drawing the text

x

Horizontal offset in pixels to the left of text

y

Vertical offset in pixels to the baseline of text

angle

The angle at which to write the text

text

The string to draw

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Using Imagick::annotateImage():

Annotate text on an empty image

<?php
/* Create some objects */
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel( 'gray' );

/* New image */
$image->newImage(800, 75, $pixel);

/* Black text */
$draw->setFillColor('black');

/* Font properties */
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 30 );

/* Create text */
$image->annotateImage($draw, 10, 45, 0, 'The quick brown fox jumps over the lazy dog');

/* Give image a format */
$image->setImageFormat('png');

/* Output the image with headers */
header('Content-type: image/png');
echo $image;

?>

Siehe auch

  • ImagickDraw::annotation() - Draws text on the image
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text


Append a set of images

  • « Imagick::annotateImage
  • Imagick::autoLevelImage »
  • PHP Manual
  • Imagick
  • Append a set of images

Imagick::appendImages

(PECL imagick 2, PECL imagick 3)

Imagick::appendImages — Append a set of images

Beschreibung

public Imagick::appendImages ( bool $stack ) : Imagick

Append a set of images into one larger image.

Parameter-Liste

stack

Whether to stack the images vertically. By default (or if false is specified) images are stacked left-to-right. If stack is true, images are stacked top-to-bottom.

Rückgabewerte

Returns Imagick instance on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::appendImages() example

<?php

/* Create new imagick object */
$im = new Imagick();

/* create red, green and blue images */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Append the images into one */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Output the image */
$combined->setImageFormat("png");
header("Content-Type: image/png");
echo $combined;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Imagick::appendImages()


Description

  • « Imagick::appendImages
  • Imagick::averageImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::autoLevelImage

(PECL imagick 3 >= 3.3.0)

Imagick::autoLevelImage — Description

Beschreibung

public Imagick::autoLevelImage ( int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Adjusts the levels of a particular image channel by scaling the minimum and maximum values to the full quantum range.

Parameter-Liste

channel

Which channel should the auto-levelling should be done on.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::autoLevelImage()

<?php
function autoLevelImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->autoLevelImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Average a set of images

  • « Imagick::autoLevelImage
  • Imagick::blackThresholdImage »
  • PHP Manual
  • Imagick
  • Average a set of images

Imagick::averageImages

(PECL imagick 2, PECL imagick 3)

Imagick::averageImages — Average a set of images

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::averageImages ( ) : Imagick

Average a set of images.

Rückgabewerte

Returns a new Imagick object on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Forces all pixels below the threshold into black

  • « Imagick::averageImages
  • Imagick::blueShiftImage »
  • PHP Manual
  • Imagick
  • Forces all pixels below the threshold into black

Imagick::blackThresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::blackThresholdImage — Forces all pixels below the threshold into black

Beschreibung

public Imagick::blackThresholdImage ( mixed $threshold ) : bool

Is like Imagick::thresholdImage() but forces all pixels below the threshold into black while leaving all pixels above the threshold unchanged.

Parameter-Liste

threshold

The threshold below which everything turns black

Rückgabewerte

Liefert true bei Erfolg.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.

Beispiele

Beispiel #1 Imagick::blackThresholdImage()

<?php
function blackThresholdImage($imagePath, $thresholdColor) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->blackthresholdimage($thresholdColor);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::blackThresholdImage
  • Imagick::blurImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::blueShiftImage

(PECL imagick 3 >= 3.3.0)

Imagick::blueShiftImage — Description

Beschreibung

public Imagick::blueShiftImage ( float $factor = 1.5 ) : bool

Mutes the colors of the image to simulate a scene at nighttime in the moonlight.

Parameter-Liste

factor

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::blueShiftImage()

<?php
function blueShiftImage($imagePath, $blueShift) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->blueShiftImage($blueShift);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Adds blur filter to image

  • « Imagick::blueShiftImage
  • Imagick::borderImage »
  • PHP Manual
  • Imagick
  • Adds blur filter to image

Imagick::blurImage

(PECL imagick 2, PECL imagick 3)

Imagick::blurImage — Adds blur filter to image

Beschreibung

public Imagick::blurImage ( float $radius , float $sigma , int $channel = ? ) : bool

Adds blur filter to image. Optional third parameter to blur a specific channel.

Parameter-Liste

radius

Blur radius

sigma

Standard deviation

channel

The Channeltype constant. When not supplied, all channels are blurred.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Using Imagick::blurImage():

Blur an image, then display to the browser.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->blurImage(5,3);
echo $image;

?>

Siehe auch

  • Imagick::adaptiveBlurImage() - Adds adaptive blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Surrounds the image with a border

  • « Imagick::blurImage
  • Imagick::brightnessContrastImage »
  • PHP Manual
  • Imagick
  • Surrounds the image with a border

Imagick::borderImage

(PECL imagick 2, PECL imagick 3)

Imagick::borderImage — Surrounds the image with a border

Beschreibung

public Imagick::borderImage ( mixed $bordercolor , int $width , int $height ) : bool

Surrounds the image with a border of the color defined by the bordercolor ImagickPixel object.

Parameter-Liste

bordercolor

ImagickPixel object or a string containing the border color

width

Border width

height

Border height

Rückgabewerte

Liefert true bei Erfolg.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Beispiele

Beispiel #1 Imagick::borderImage()

<?php
function borderImage($imagePath, $color, $width, $height) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->borderImage($color, $width, $height);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::borderImage
  • Imagick::charcoalImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::brightnessContrastImage

(PECL imagick 3 >= 3.3.0)

Imagick::brightnessContrastImage — Description

Beschreibung

public Imagick::brightnessContrastImage ( float $brightness , float $contrast , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Change the brightness and/or contrast of an image. It converts the brightness and contrast parameters into slope and intercept and calls a polynomical function to apply to the image.

Parameter-Liste

brightness

contrast

channel

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::brightnessContrastImage()

<?php
function brightnessContrastImage($imagePath, $brightness, $contrast, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->brightnessContrastImage($brightness, $contrast, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Simulates a charcoal drawing

  • « Imagick::brightnessContrastImage
  • Imagick::chopImage »
  • PHP Manual
  • Imagick
  • Simulates a charcoal drawing

Imagick::charcoalImage

(PECL imagick 2, PECL imagick 3)

Imagick::charcoalImage — Simulates a charcoal drawing

Beschreibung

public Imagick::charcoalImage ( float $radius , float $sigma ) : bool

Simulates a charcoal drawing.

Parameter-Liste

radius

The radius of the Gaussian, in pixels, not counting the center pixel

sigma

The standard deviation of the Gaussian, in pixels

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::charcoalImage()

<?php
function charcoalImage($imagePath, $radius, $sigma) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->charcoalImage($radius, $sigma);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Removes a region of an image and trims

  • « Imagick::charcoalImage
  • Imagick::clampImage »
  • PHP Manual
  • Imagick
  • Removes a region of an image and trims

Imagick::chopImage

(PECL imagick 2, PECL imagick 3)

Imagick::chopImage — Removes a region of an image and trims

Beschreibung

public Imagick::chopImage ( int $width , int $height , int $x , int $y ) : bool

Removes a region of an image and collapses the image to occupy the removed portion.

Parameter-Liste

width

Width of the chopped area

height

Height of the chopped area

x

X origo of the chopped area

y

Y origo of the chopped area

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Using Imagick::chopImage():

Example of using Imagick::chopImage

<?php
/* Create some objects */
$image = new Imagick();
$pixel = new ImagickPixel( 'gray' );

/* New image */
$image->newImage(400, 200, $pixel);

/* Chop image */
$image->chopImage(200, 200, 0, 0);

/* Give image a format */
$image->setImageFormat('png');

/* Output the image with headers */
header('Content-type: image/png');
echo $image;

?>

Siehe auch

  • Imagick::cropImage() - Extracts a region of the image


Description

  • « Imagick::chopImage
  • Imagick::clear »
  • PHP Manual
  • Imagick
  • Description

Imagick::clampImage

(PECL imagick 3 >= 3.3.0)

Imagick::clampImage — Description

Beschreibung

public Imagick::clampImage ( int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Restricts the color range from 0 to the quantum depth.

Parameter-Liste

channel

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Clears all resources associated to Imagick object

  • « Imagick::clampImage
  • Imagick::clipImage »
  • PHP Manual
  • Imagick
  • Clears all resources associated to Imagick object

Imagick::clear

(PECL imagick 2, PECL imagick 3)

Imagick::clear — Clears all resources associated to Imagick object

Beschreibung

public Imagick::clear ( ) : bool

Clears all resources associated to Imagick object

Rückgabewerte

Liefert true bei Erfolg.


Clips along the first path from the 8BIM profile

  • « Imagick::clear
  • Imagick::clipImagePath »
  • PHP Manual
  • Imagick
  • Clips along the first path from the 8BIM profile

Imagick::clipImage

(PECL imagick 2, PECL imagick 3)

Imagick::clipImage — Clips along the first path from the 8BIM profile

Beschreibung

public Imagick::clipImage ( ) : bool

Clips along the first path from the 8BIM profile, if present.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Description

  • « Imagick::clipImage
  • Imagick::clipPathImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::clipImagePath

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::clipImagePath — Description

Beschreibung

public Imagick::clipImagePath ( string $pathname , string $inside ) : void

Clips along the named paths from the 8BIM profile, if present. Later operations take effect inside the path. Id may be a number if preceded with #, to work on a numbered path, e.g., "#1" to use the first path.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

pathname

inside

Rückgabewerte


Clips along the named paths from the 8BIM profile

  • « Imagick::clipImagePath
  • Imagick::clone »
  • PHP Manual
  • Imagick
  • Clips along the named paths from the 8BIM profile

Imagick::clipPathImage

(PECL imagick 2, PECL imagick 3)

Imagick::clipPathImage — Clips along the named paths from the 8BIM profile

Beschreibung

public Imagick::clipPathImage ( string $pathname , bool $inside ) : bool

Clips along the named paths from the 8BIM profile, if present. Later operations take effect inside the path. It may be a number if preceded with #, to work on a numbered path, e.g., "#1" to use the first path.

Parameter-Liste

pathname

The name of the path

inside

If true later operations take effect inside clipping path. Otherwise later operations take effect outside clipping path.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Makes an exact copy of the Imagick object

  • « Imagick::clipPathImage
  • Imagick::clutImage »
  • PHP Manual
  • Imagick
  • Makes an exact copy of the Imagick object

Imagick::clone

(PECL imagick 2, PECL imagick 3)

Imagick::clone — Makes an exact copy of the Imagick object

Beschreibung

public Imagick::clone ( ) : Imagick

Makes an exact copy of the Imagick object.

Warnung

This function has been DEPRECATED as of imagick 3.1.0 in favour of using the clone keyword.

Beispiele

Beispiel #1 Imagick object cloning in different versions of imagick

<?php
// Cloning an Imagick object in imagick 2.x and 3.0:
$newImage = $image->clone();

// Cloning an Imagick object from 3.1.0 on:
$newImage = clone $image;
?>

Rückgabewerte

A copy of the Imagick object is returned.

Changelog

Version | Beschreibung
PECL imagick 3.1.0 | The method was deprecated in favour of the clone keyword.


Replaces colors in the image

  • « Imagick::clone
  • Imagick::coalesceImages »
  • PHP Manual
  • Imagick
  • Replaces colors in the image

Imagick::clutImage

(PECL imagick 2, PECL imagick 3)

Imagick::clutImage — Replaces colors in the image

Beschreibung

public Imagick::clutImage ( Imagick $lookup_table , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Replaces colors in the image from a color lookup table. Optional second parameter to replace colors in a specific channel. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.6 oder höher kompiliert wurde.

Parameter-Liste

lookup_table

Imagick object containing the color lookup table

channel

The Channeltype constant. When not supplied, default channels are replaced.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Using Imagick::clutImage():

Replace colors in the image from a color lookup table.

<?php
$image = new Imagick('test.jpg');
$clut = new Imagick();
$clut->newImage(1, 1, new ImagickPixel('black'));
$image->clutImage($clut);
$image->writeImage('test_out.jpg');
?>

Siehe auch

  • Imagick::adaptiveBlurImage() - Adds adaptive blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Composites a set of images

  • « Imagick::clutImage
  • Imagick::colorFloodfillImage »
  • PHP Manual
  • Imagick
  • Composites a set of images

Imagick::coalesceImages

(PECL imagick 2, PECL imagick 3)

Imagick::coalesceImages — Composites a set of images

Beschreibung

public Imagick::coalesceImages ( ) : Imagick

Composites a set of images while respecting any page offsets and disposal methods. GIF, MIFF, and MNG animation sequences typically start with an image background and each subsequent image varies in size and offset. Returns a new Imagick object where each image in the sequence is the same size as the first and composited with the next image in the sequence.

Rückgabewerte

Returns a new Imagick object on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Changes the color value of any pixel that matches target

  • « Imagick::coalesceImages
  • Imagick::colorizeImage »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::colorFloodfillImage

(PECL imagick 2, PECL imagick 3)

Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::colorFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y ) : bool

Changes the color value of any pixel that matches target and is an immediate neighbor.

Parameter-Liste

fill

ImagickPixel object containing the fill color

fuzz

The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.

bordercolor

ImagickPixel object containing the border color

x

X start position of the floodfill

y

Y start position of the floodfill

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as first and third parameter. Previous versions allow only an ImagickPixel object.


Blends the fill color with the image

  • « Imagick::colorFloodfillImage
  • Imagick::colorMatrixImage »
  • PHP Manual
  • Imagick
  • Blends the fill color with the image

Imagick::colorizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::colorizeImage — Blends the fill color with the image

Beschreibung

public Imagick::colorizeImage ( mixed $colorize , mixed $opacity , bool $legacy = false ) : bool

Blends the fill color with each pixel in the image.

Parameter-Liste

colorize

ImagickPixel object or a string containing the colorize color

opacity

ImagickPixel object or an float containing the opacity value. 1.0 is fully opaque and 0.0 is fully transparent.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter and a float representing the opacity value as the second parameter. Previous versions allow only an ImagickPixel objects.

Beispiele

Beispiel #1 Imagick::colorizeImage()

<?php
function colorizeImage($imagePath, $color, $opacity) {
    $imagick = new \Imagick(realpath($imagePath));
    $opacity = $opacity / 255.0;
    $opacityColor = new \ImagickPixel("rgba(0, 0, 0, $opacity)");
    $imagick->colorizeImage($color, $opacityColor);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::colorizeImage
  • Imagick::combineImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::colorMatrixImage

(PECL imagick 3 >= 3.3.0)

Imagick::colorMatrixImage — Description

Beschreibung

public Imagick::colorMatrixImage ( array $color_matrix = Imagick::CHANNEL_DEFAULT ) : bool

Apply color transformation to an image. The method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255)

Parameter-Liste

color_matrix

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::colorMatrixImage()

<?php
function colorMatrixImage($imagePath, $colorMatrix) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageOpacity(1);

    //A color matrix should look like:
    //    $colorMatrix = [
    //        1.5, 0.0, 0.0, 0.0, 0.0, -0.157,
    //        0.0, 1.0, 0.5, 0.0, 0.0, -0.157,
    //        0.0, 0.0, 1.5, 0.0, 0.0, -0.157,
    //        0.0, 0.0, 0.0, 1.0, 0.0,  0.0,
    //        0.0, 0.0, 0.0, 0.0, 1.0,  0.0,
    //        0.0, 0.0, 0.0, 0.0, 0.0,  1.0
    //    ];

    $background = new \Imagick();
    $background->newPseudoImage($imagick->getImageWidth(), $imagick->getImageHeight(),  "pattern:checkerboard");

    $background->setImageFormat('png');

    $imagick->setImageFormat('png');
    $imagick->colorMatrixImage($colorMatrix);

    $background->compositeImage($imagick, \Imagick::COMPOSITE_ATOP, 0, 0);

    header("Content-Type: image/png");
    echo $background->getImageBlob();
}

?>


Combines one or more images into a single image

  • « Imagick::colorMatrixImage
  • Imagick::commentImage »
  • PHP Manual
  • Imagick
  • Combines one or more images into a single image

Imagick::combineImages

(PECL imagick 2, PECL imagick 3)

Imagick::combineImages — Combines one or more images into a single image

Beschreibung

public Imagick::combineImages ( int $channelType ) : Imagick

Combines one or more images into a single image. The grayscale value of the pixels of each image in the sequence is assigned in order to the specified channels of the combined image. The typical ordering would be image 1 => Red, 2 => Green, 3 => Blue, etc.

Parameter-Liste

channelType

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Adds a comment to your image

  • « Imagick::combineImages
  • Imagick::compareImageChannels »
  • PHP Manual
  • Imagick
  • Adds a comment to your image

Imagick::commentImage

(PECL imagick 2, PECL imagick 3)

Imagick::commentImage — Adds a comment to your image

Beschreibung

public Imagick::commentImage ( string $comment ) : bool

Adds a comment to your image.

Parameter-Liste

comment

The comment to add

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Using Imagick::commentImage():

Commenting an image and retrieving the comment:

<?php

/* Create new Imagick object */
$im = new imagick();

/* Create an empty image */
$im->newImage(100, 100, new ImagickPixel("red"));

/* Add comment to the image */
$im->commentImage("Hello World!");

/* Display the comment */
echo $im->getImageProperty("comment");

?>


Returns the difference in one or more images

  • « Imagick::commentImage
  • Imagick::compareImageLayers »
  • PHP Manual
  • Imagick
  • Returns the difference in one or more images

Imagick::compareImageChannels

(PECL imagick 2, PECL imagick 3)

Imagick::compareImageChannels — Returns the difference in one or more images

Beschreibung

public Imagick::compareImageChannels ( Imagick $image , int $channelType , int $metricType ) : array

Compares one or more images and returns the difference image.

Parameter-Liste

image

Imagick object containing the image to compare.

channelType

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

metricType

One of the metric type constants.

Rückgabewerte

Array consisting of new_wand and distortion.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the maximum bounding region between images

  • « Imagick::compareImageChannels
  • Imagick::compareImages »
  • PHP Manual
  • Imagick
  • Returns the maximum bounding region between images

Imagick::compareImageLayers

(PECL imagick 2, PECL imagick 3)

Imagick::compareImageLayers — Returns the maximum bounding region between images

Beschreibung

public Imagick::compareImageLayers ( int $method ) : Imagick

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

method

One of the layer method constants.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Using Imagick::compareImageLayers()

Comparing image layers

<?php
/* create new imagick object */
$im = new Imagick("test.gif");

/* optimize the image layers */
$result = $im->compareImageLayers(imagick::LAYERMETHOD_COALESCE);

/* work on the $result */
?>

Siehe auch

  • Imagick::optimizeImageLayers() - Removes repeated portions of images to optimize
  • Imagick::writeImages() - Writes an image or image sequence
  • Imagick::writeImage() - Writes an image to the specified filename


Compares an image to a reconstructed image

  • « Imagick::compareImageLayers
  • Imagick::compositeImage »
  • PHP Manual
  • Imagick
  • Compares an image to a reconstructed image

Imagick::compareImages

(PECL imagick 2, PECL imagick 3)

Imagick::compareImages — Compares an image to a reconstructed image

Beschreibung

public Imagick::compareImages ( Imagick $compare , int $metric ) : array

Returns an array containing a reconstructed image and the difference between images.

Parameter-Liste

compare

An image to compare to.

metric

Provide a valid metric type constant. Refer to this list of metric constants.

Rückgabewerte

Returns an array containing a reconstructed image and the difference between images.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Using Imagick::compareImages():

Compare images and display the reconstructed image

<?php

$image1 = new imagick("image1.png");
$image2 = new imagick("image2.png");

$result = $image1->compareImages($image2, Imagick::METRIC_MEANSQUAREERROR);
$result[0]->setImageFormat("png");

header("Content-Type: image/png");
echo $result[0];

?>


Composite one image onto another

  • « Imagick::compareImages
  • Imagick::__construct »
  • PHP Manual
  • Imagick
  • Composite one image onto another

Imagick::compositeImage

(PECL imagick 2, PECL imagick 3)

Imagick::compositeImage — Composite one image onto another

Beschreibung

public Imagick::compositeImage ( Imagick $composite_object , int $composite , int $x , int $y , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Composite one image onto another at the specified offset. Any extra arguments needed for the compose algorithm should passed to setImageArtifact with 'compose:args' as the first parameter and the data as the second parameter.

Parameter-Liste

composite_object

Imagick object which holds the composite image

compose

Composite operator. See Composite Operator Constants

x

The column offset of the composited image

y

The row offset of the composited image

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Using Imagick::compositeImage():

Composite two images with the 'mathematics' compose method

<?php

// Equivalent to running the command
// convert src1.png src2.png -compose mathematics -define compose:args="1,0,-0.5,0.5" -composite output.png

$src1 = new \Imagick("./src1.png");
$src2 = new \Imagick("./src2.png");

$src1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$src1->setImageArtifact('compose:args', "1,0,-0.5,0.5");
$src1->compositeImage($src2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);
$src1->writeImage("./output.png");

?>

Siehe auch

  • Imagick::setImageArtifact() - Set image artifact


The Imagick constructor

  • « Imagick::compositeImage
  • Imagick::contrastImage »
  • PHP Manual
  • Imagick
  • The Imagick constructor

Imagick::__construct

(PECL imagick 2, PECL imagick 3)

Imagick::__construct — The Imagick constructor

Beschreibung

public Imagick::__construct ( mixed $files = ? )

Creates an Imagick instance for a specified image or set of images.

Parameter-Liste

files

The path to an image to load or an array of paths. Paths can include wildcards for file names, or can be URLs.

Rückgabewerte

Returns a new Imagick object on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Change the contrast of the image

  • « Imagick::__construct
  • Imagick::contrastStretchImage »
  • PHP Manual
  • Imagick
  • Change the contrast of the image

Imagick::contrastImage

(PECL imagick 2, PECL imagick 3)

Imagick::contrastImage — Change the contrast of the image

Beschreibung

public Imagick::contrastImage ( bool $sharpen ) : bool

Enhances the intensity differences between the lighter and darker elements of the image. Set sharpen to a value other than 0 to increase the image contrast otherwise the contrast is reduced.

Parameter-Liste

sharpen

The sharpen value

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::contrastImage()

<?php
function contrastImage($imagePath, $contrastType) {
    $imagick = new \Imagick(realpath($imagePath));
    if ($contrastType != 2) {
        $imagick->contrastImage($contrastType);
    }

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Enhances the contrast of a color image

  • « Imagick::contrastImage
  • Imagick::convolveImage »
  • PHP Manual
  • Imagick
  • Enhances the contrast of a color image

Imagick::contrastStretchImage

(PECL imagick 2, PECL imagick 3)

Imagick::contrastStretchImage — Enhances the contrast of a color image

Beschreibung

public Imagick::contrastStretchImage ( float $black_point , float $white_point , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

black_point

The black point.

white_point

The white point.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Imagick::CHANNEL_ALL. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.


Applies a custom convolution kernel to the image

  • « Imagick::contrastStretchImage
  • Imagick::count »
  • PHP Manual
  • Imagick
  • Applies a custom convolution kernel to the image

Imagick::convolveImage

(PECL imagick 2, PECL imagick 3)

Imagick::convolveImage — Applies a custom convolution kernel to the image

Beschreibung

public Imagick::convolveImage ( array $kernel , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Applies a custom convolution kernel to the image.

Parameter-Liste

kernel

The convolution kernel

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::convolveImage()

<?php
function convolveImage($imagePath, $bias, $kernelMatrix) {
    $imagick = new \Imagick(realpath($imagePath));
    //$edgeFindingKernel = [-1, -1, -1, -1, 8, -1, -1, -1, -1,];
    $imagick->setImageBias($bias * \Imagick::getQuantum());
    $imagick->convolveImage($kernelMatrix);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Get the number of images

  • « Imagick::convolveImage
  • Imagick::cropImage »
  • PHP Manual
  • Imagick
  • Get the number of images

Imagick::count

(PECL imagick 3 >= 3.3.0)

Imagick::count — Get the number of images

Beschreibung

public Imagick::count ( int $mode = 0 ) : int

Returns the number of images.

Parameter-Liste

mode

An unused argument. Currently there is a non-particularly well defined feature in PHP where calling count() on a countable object might (or might not) require this method to accept a parameter. This parameter is here to be conformant with the interface of countable, even though the param is not used.

Rückgabewerte

Returns the number of images.


Extracts a region of the image

  • « Imagick::count
  • Imagick::cropThumbnailImage »
  • PHP Manual
  • Imagick
  • Extracts a region of the image

Imagick::cropImage

(PECL imagick 2, PECL imagick 3)

Imagick::cropImage — Extracts a region of the image

Beschreibung

public Imagick::cropImage ( int $width , int $height , int $x , int $y ) : bool

Extracts a region of the image.

Parameter-Liste

width

The width of the crop

height

The height of the crop

x

The X coordinate of the cropped region's top left corner

y

The Y coordinate of the cropped region's top left corner

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::cropImage()

<?php
function cropImage($imagePath, $startX, $startY, $width, $height) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->cropImage($width, $height, $startX, $startY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a crop thumbnail

  • « Imagick::cropImage
  • Imagick::current »
  • PHP Manual
  • Imagick
  • Creates a crop thumbnail

Imagick::cropThumbnailImage

(PECL imagick 2, PECL imagick 3)

Imagick::cropThumbnailImage — Creates a crop thumbnail

Beschreibung

public Imagick::cropThumbnailImage ( int $width , int $height , bool $legacy = false ) : bool

Creates a fixed size thumbnail by first scaling the image up or down and cropping a specified area from the center.

Parameter-Liste

width

The width of the thumbnail

height

The Height of the thumbnail

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns a reference to the current Imagick object

  • « Imagick::cropThumbnailImage
  • Imagick::cycleColormapImage »
  • PHP Manual
  • Imagick
  • Returns a reference to the current Imagick object

Imagick::current

(PECL imagick 2, PECL imagick 3)

Imagick::current — Returns a reference to the current Imagick object

Beschreibung

public Imagick::current ( ) : Imagick

Returns reference to the current imagick object with image pointer at the correct sequence.

Rückgabewerte

Returns self on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Displaces an image's colormap

  • « Imagick::current
  • Imagick::decipherImage »
  • PHP Manual
  • Imagick
  • Displaces an image's colormap

Imagick::cycleColormapImage

(PECL imagick 2, PECL imagick 3)

Imagick::cycleColormapImage — Displaces an image's colormap

Beschreibung

public Imagick::cycleColormapImage ( int $displace ) : bool

Displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychedelic effect.

Parameter-Liste

displace

The amount to displace the colormap.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Deciphers an image

  • « Imagick::cycleColormapImage
  • Imagick::deconstructImages »
  • PHP Manual
  • Imagick
  • Deciphers an image

Imagick::decipherImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::decipherImage — Deciphers an image

Beschreibung

public Imagick::decipherImage ( string $passphrase ) : bool

Deciphers image that has been enciphered before. The image must be enciphered using Imagick::encipherImage(). Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.9 oder höher kompiliert wurde.

Parameter-Liste

passphrase

The passphrase

Rückgabewerte

Liefert true bei Erfolg.

Siehe auch

  • Imagick::encipherImage() - Enciphers an image


Returns certain pixel differences between images

  • « Imagick::decipherImage
  • Imagick::deleteImageArtifact »
  • PHP Manual
  • Imagick
  • Returns certain pixel differences between images

Imagick::deconstructImages

(PECL imagick 2, PECL imagick 3)

Imagick::deconstructImages — Returns certain pixel differences between images

Beschreibung

public Imagick::deconstructImages ( ) : Imagick

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

Rückgabewerte

Returns a new Imagick object on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Delete image artifact

  • « Imagick::deconstructImages
  • Imagick::deleteImageProperty »
  • PHP Manual
  • Imagick
  • Delete image artifact

Imagick::deleteImageArtifact

(PECL imagick 3)

Imagick::deleteImageArtifact — Delete image artifact

Beschreibung

public Imagick::deleteImageArtifact ( string $artifact ) : bool

Deletes an artifact associated with the image. The difference between image properties and image artifacts is that properties are public and artifacts are private. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.5.7 oder höher kompiliert wurde.

Parameter-Liste

artifact

The name of the artifact to delete

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Siehe auch

  • Imagick::setImageArtifact() - Set image artifact
  • Imagick::getImageArtifact() - Get image artifact


Description

  • « Imagick::deleteImageArtifact
  • Imagick::deskewImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::deleteImageProperty

(PECL imagick 3 >= 3.3.0)

Imagick::deleteImageProperty — Description

Beschreibung

public Imagick::deleteImageProperty ( string $name ) : bool

Deletes an image property.

Parameter-Liste

name

The name of the property to delete.

Rückgabewerte

Liefert true bei Erfolg.


Removes skew from the image

  • « Imagick::deleteImageProperty
  • Imagick::despeckleImage »
  • PHP Manual
  • Imagick
  • Removes skew from the image

Imagick::deskewImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.3.0)

Imagick::deskewImage — Removes skew from the image

Beschreibung

public Imagick::deskewImage ( float $threshold ) : bool

This method can be used to remove skew from for example scanned images where the paper was not properly placed on the scanning surface. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.5 oder höher kompiliert wurde.

Parameter-Liste

threshold

Deskew threshold

Rückgabewerte

Beispiele

Beispiel #1 Imagick::deskewImage()

<?php
function deskewImage($threshold) {
    $imagick = new \Imagick(realpath("images/NYTimes-Page1-11-11-1918.jpg"));
    $deskewImagick = clone $imagick;

    //This is the only thing required for deskewing.
    $deskewImagick->deskewImage($threshold);

    //The rest of this example is to make the result obvious - because
    //otherwise the result is not obvious.
    $trim = 9;

    $deskewImagick->cropImage($deskewImagick->getImageWidth() - $trim, $deskewImagick->getImageHeight(), $trim, 0);
    $imagick->cropImage($imagick->getImageWidth() - $trim, $imagick->getImageHeight(), $trim, 0);
    $deskewImagick->resizeimage($deskewImagick->getImageWidth() / 2, $deskewImagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1);
    $imagick->resizeimage($imagick->getImageWidth() / 2, $imagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1);
    $newCanvas = new \Imagick();
    $newCanvas->newimage($imagick->getImageWidth() + $deskewImagick->getImageWidth() + 20, $imagick->getImageHeight(), 'red', 'jpg');
    $newCanvas->compositeimage($imagick, \Imagick::COMPOSITE_COPY, 5, 0);
    $newCanvas->compositeimage($deskewImagick, \Imagick::COMPOSITE_COPY, $imagick->getImageWidth() + 10, 0);

    header("Content-Type: image/jpg");
    echo $newCanvas->getImageBlob();
}

?>


Reduces the speckle noise in an image

  • « Imagick::deskewImage
  • Imagick::destroy »
  • PHP Manual
  • Imagick
  • Reduces the speckle noise in an image

Imagick::despeckleImage

(PECL imagick 2, PECL imagick 3)

Imagick::despeckleImage — Reduces the speckle noise in an image

Beschreibung

public Imagick::despeckleImage ( ) : bool

Reduces the speckle noise in an image while preserving the edges of the original image.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::despeckleImage()

<?php
function despeckleImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->despeckleImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Destroys the Imagick object

  • « Imagick::despeckleImage
  • Imagick::displayImage »
  • PHP Manual
  • Imagick
  • Destroys the Imagick object

Imagick::destroy

(PECL imagick 2, PECL imagick 3)

Imagick::destroy — Destroys the Imagick object

Beschreibung

public Imagick::destroy ( ) : bool

Destroys the Imagick object and frees all resources associated with it. This method is deprecated in favour of Imagick::clear.

Rückgabewerte

Liefert true bei Erfolg.


Displays an image

  • « Imagick::destroy
  • Imagick::displayImages »
  • PHP Manual
  • Imagick
  • Displays an image

Imagick::displayImage

(PECL imagick 2, PECL imagick 3)

Imagick::displayImage — Displays an image

Beschreibung

public Imagick::displayImage ( string $servername ) : bool

This method displays an image on a X server.

Parameter-Liste

servername

The X server name

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Displays an image or image sequence

  • « Imagick::displayImage
  • Imagick::distortImage »
  • PHP Manual
  • Imagick
  • Displays an image or image sequence

Imagick::displayImages

(PECL imagick 2, PECL imagick 3)

Imagick::displayImages — Displays an image or image sequence

Beschreibung

public Imagick::displayImages ( string $servername ) : bool

Displays an image or image sequence on a X server.

Parameter-Liste

servername

The X server name

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Distorts an image using various distortion methods

  • « Imagick::displayImages
  • Imagick::drawImage »
  • PHP Manual
  • Imagick
  • Distorts an image using various distortion methods

Imagick::distortImage

(PECL imagick 2 >= 2.0.1, PECL imagick 3)

Imagick::distortImage — Distorts an image using various distortion methods

Beschreibung

public Imagick::distortImage ( int $method , array $arguments , bool $bestfit ) : bool

Distorts an image using various distortion methods, by mapping color lookups of the source image to a new destination image usually of the same size as the source image, unless 'bestfit' is set to true.

If 'bestfit' is enabled, and distortion allows it, the destination image is adjusted to ensure the whole source 'image' will just fit within the final destination image, which will be sized and offset accordingly. Also in many cases the virtual offset of the source image will be taken into account in the mapping.

Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.6 oder höher kompiliert wurde.

Parameter-Liste

method

The method of image distortion. See distortion constants

arguments

The arguments for this distortion method

bestfit

Attempt to resize destination to fit distorted source

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Using Imagick::distortImage():

Distort an image and display to the browser.

<?php
/* Create new object */
$im = new Imagick();

/* Create new checkerboard pattern */
$im->newPseudoImage(100, 100, "pattern:checkerboard");

/* Set the image format to png */
$im->setImageFormat('png');

/* Fill new visible areas with transparent */
$im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);

/* Activate matte */
$im->setImageMatte(true);

/* Control points for the distortion */
$controlPoints = array( 10, 10,
                        10, 5,

                        10, $im->getImageHeight() - 20,
                        10, $im->getImageHeight() - 5,

                        $im->getImageWidth() - 10, 10,
                        $im->getImageWidth() - 10, 20,

                        $im->getImageWidth() - 10, $im->getImageHeight() - 10,
                        $im->getImageWidth() - 10, $im->getImageHeight() - 30);

/* Perform the distortion */
$im->distortImage(Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true);

/* Ouput the image */
header("Content-Type: image/png");
echo $im;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Using Imagick::distortImage()

Siehe auch

  • Imagick::blurImage() - Adds blur filter to image
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Renders the ImagickDraw object on the current image

  • « Imagick::distortImage
  • Imagick::edgeImage »
  • PHP Manual
  • Imagick
  • Renders the ImagickDraw object on the current image

Imagick::drawImage

(PECL imagick 2, PECL imagick 3)

Imagick::drawImage — Renders the ImagickDraw object on the current image

Beschreibung

public Imagick::drawImage ( ImagickDraw $draw ) : bool

Renders the ImagickDraw object on the current image.

Parameter-Liste

draw

The drawing operations to render on the image.

Rückgabewerte

Liefert true bei Erfolg.


Enhance edges within the image

  • « Imagick::drawImage
  • Imagick::embossImage »
  • PHP Manual
  • Imagick
  • Enhance edges within the image

Imagick::edgeImage

(PECL imagick 2, PECL imagick 3)

Imagick::edgeImage — Enhance edges within the image

Beschreibung

public Imagick::edgeImage ( float $radius ) : bool

Enhance edges within the image with a convolution filter of the given radius. Use radius 0 and it will be auto-selected.

Parameter-Liste

radius

The radius of the operation.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::edgeImage()

<?php
function edgeImage($imagePath, $radius) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->edgeImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Returns a grayscale image with a three-dimensional effect

  • « Imagick::edgeImage
  • Imagick::encipherImage »
  • PHP Manual
  • Imagick
  • Returns a grayscale image with a three-dimensional effect

Imagick::embossImage

(PECL imagick 2, PECL imagick 3)

Imagick::embossImage — Returns a grayscale image with a three-dimensional effect

Beschreibung

public Imagick::embossImage ( float $radius , float $sigma ) : bool

Returns a grayscale image with a three-dimensional effect. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and it will choose a suitable radius for you.

Parameter-Liste

radius

The radius of the effect

sigma

The sigma of the effect

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::embossImage()

<?php
function embossImage($imagePath, $radius, $sigma) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->embossImage($radius, $sigma);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Enciphers an image

  • « Imagick::embossImage
  • Imagick::enhanceImage »
  • PHP Manual
  • Imagick
  • Enciphers an image

Imagick::encipherImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::encipherImage — Enciphers an image

Beschreibung

public Imagick::encipherImage ( string $passphrase ) : bool

Converts plain pixels to enciphered pixels. The image is not readable until it has been deciphered using Imagick::decipherImage() Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.9 oder höher kompiliert wurde.

Parameter-Liste

passphrase

The passphrase

Rückgabewerte

Liefert true bei Erfolg.

Siehe auch

  • Imagick::decipherImage() - Deciphers an image


Improves the quality of a noisy image

  • « Imagick::encipherImage
  • Imagick::equalizeImage »
  • PHP Manual
  • Imagick
  • Improves the quality of a noisy image

Imagick::enhanceImage

(PECL imagick 2, PECL imagick 3)

Imagick::enhanceImage — Improves the quality of a noisy image

Beschreibung

public Imagick::enhanceImage ( ) : bool

Applies a digital filter that improves the quality of a noisy image.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::enhanceImage()

<?php
function enhanceImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->enhanceImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Equalizes the image histogram

  • « Imagick::enhanceImage
  • Imagick::evaluateImage »
  • PHP Manual
  • Imagick
  • Equalizes the image histogram

Imagick::equalizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::equalizeImage — Equalizes the image histogram

Beschreibung

public Imagick::equalizeImage ( ) : bool

Equalizes the image histogram.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::equalizeImage()

<?php
function equalizeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->equalizeImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applies an expression to an image

  • « Imagick::equalizeImage
  • Imagick::exportImagePixels »
  • PHP Manual
  • Imagick
  • Applies an expression to an image

Imagick::evaluateImage

(PECL imagick 2, PECL imagick 3)

Imagick::evaluateImage — Applies an expression to an image

Beschreibung

public Imagick::evaluateImage ( int $op , float $constant , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Applys an arithmetic, relational, or logical expression to an image. Use these operators to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

Parameter-Liste

op

The evaluation operator

constant

The value of the operator

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Beispiele

Beispiel #1 Using Imagick::evaluateImage()

Using evaluateImage to reduce opacity in an image.

<?php
// Create new object with the image
$im = new Imagick('example-alpha.png');

// Reduce the alpha by 50%
$im->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);

// Output the image
header("Content-Type: image/png");
echo $im;
?>

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Exports raw image pixels

  • « Imagick::evaluateImage
  • Imagick::extentImage »
  • PHP Manual
  • Imagick
  • Exports raw image pixels

Imagick::exportImagePixels

(PECL imagick 2 >=2.3.0, PECL imagick 3)

Imagick::exportImagePixels — Exports raw image pixels

Beschreibung

public Imagick::exportImagePixels ( int $x , int $y , int $width , int $height , string $map , int $STORAGE ) : array

Exports image pixels into an array. The map defines the ordering of the exported pixels. The size of the returned array is width * height * strlen(map). Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.7 oder höher kompiliert wurde.

Parameter-Liste

x

X-coordinate of the exported area

y

Y-coordinate of the exported area

width

Width of the exported aread

height

Height of the exported area

map

Ordering of the exported pixels. For example "RGB". Valid characters for the map are R, G, B, A, O, C, Y, M, K, I and P.

STORAGE

Refer to this list of pixel type constants

Beispiele

Beispiel #1 Using Imagick::exportImagePixels()

Export image pixels into an array

<?php

/* Create new object */
$im = new Imagick();

/* Create new image */
$im->newPseudoImage(0, 0, "magick:rose");

/* Export the image pixels */
$pixels = $im->exportImagePixels(10, 10, 2, 2, "RGB", Imagick::PIXEL_CHAR);

/* Output */
var_dump($pixels);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(12) {
  [0]=>
  int(72)
  [1]=>
  int(64)
  [2]=>
  int(57)
  [3]=>
  int(69)
  [4]=>
  int(59)
  [5]=>
  int(43)
  [6]=>
  int(124)
  [7]=>
  int(120)
  [8]=>
  int(-96)
  [9]=>
  int(91)
  [10]=>
  int(84)
  [11]=>
  int(111)
}

Rückgabewerte

Returns an array containing the pixels values.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Set image size

  • « Imagick::exportImagePixels
  • Imagick::filter »
  • PHP Manual
  • Imagick
  • Set image size

Imagick::extentImage

(PECL imagick 2, PECL imagick 3)

Imagick::extentImage — Set image size

Beschreibung

public Imagick::extentImage ( int $width , int $height , int $x , int $y ) : bool

Comfortability method for setting image size. The method sets the image size and allows setting x,y coordinates where the new area begins. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.1 oder höher kompiliert wurde.

Achtung

Prior to ImageMagick 6.5.7-8 (1623), $x was positive when shifting to the left and negative when shifting to the right, and $y was positive when shifting an image up and negative when shifting an image down. Somewhere betwen ImageMagick 6.3.7 (1591) and ImageMagick 6.5.7-8 (1623), the axes of $x and $y were flipped, so that $x was negative when shifting to the left and positive when shifting to the right, and $y was negative when shifting an image up and positive when shifting an image down. Somewhere between ImageMagick 6.5.7-8 (1623) and ImageMagick 6.6.9-7 (1641), the axes of $x and $y were flipped back to pre-ImageMagick 6.5.7-8 (1623) functionality.

Parameter-Liste

width

The new width

height

The new height

x

X position for the new size

y

Y position for the new size

Rückgabewerte

Liefert true bei Erfolg.

Siehe auch

  • Imagick::resizeImage() - Scales an image
  • Imagick::thumbnailImage() - Changes the size of an image
  • Imagick::cropImage() - Extracts a region of the image


Description

  • « Imagick::extentImage
  • Imagick::flattenImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::filter

(PECL imagick 3 >= 3.3.0)

Imagick::filter — Description

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::filter ( ImagickKernel $ImagickKernel , int $channel = Imagick::CHANNEL_UNDEFINED ) : bool

Applies a custom convolution kernel to the image.

Parameter-Liste

ImagickKernel

An instance of ImagickKernel that represents either a single kernel or a linked series of kernels.

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::filter()

<?php
function filter($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $matrix = [
        [-1, 0, -1],
        [0,  5,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $strength = 0.5;
    $kernel->scale($strength, \Imagick::NORMALIZE_KERNEL_VALUE);
    $kernel->addUnityKernel(1 - $strength);

    $imagick->filter($kernel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Merges a sequence of images

  • « Imagick::filter
  • Imagick::flipImage »
  • PHP Manual
  • Imagick
  • Merges a sequence of images

Imagick::flattenImages

(PECL imagick 2, PECL imagick 3)

Imagick::flattenImages — Merges a sequence of images

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::flattenImages ( ) : Imagick

Merges a sequence of images. This is useful for combining Photoshop layers into a single image.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Creates a vertical mirror image

  • « Imagick::flattenImages
  • Imagick::floodFillPaintImage »
  • PHP Manual
  • Imagick
  • Creates a vertical mirror image

Imagick::flipImage

(PECL imagick 2, PECL imagick 3)

Imagick::flipImage — Creates a vertical mirror image

Beschreibung

public Imagick::flipImage ( ) : bool

Creates a vertical mirror image by reflecting the pixels around the central x-axis.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::flipImage()

<?php
function flipImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->flipImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Changes the color value of any pixel that matches target

  • « Imagick::flipImage
  • Imagick::flopImage »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::floodFillPaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target

Beschreibung

public Imagick::floodFillPaintImage ( mixed $fill , float $fuzz , mixed $target , int $x , int $y , bool $invert , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Changes the color value of any pixel that matches target and is an immediate neighbor. This method is a replacement for deprecated Imagick::paintFloodFillImage(). Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.8 oder höher kompiliert wurde.

Parameter-Liste

fill

ImagickPixel object or a string containing the fill color

fuzz

Die Menge an Ungenauigkeit. Wird dieser Wert z.B. auf 10 gesetzt, so werden die Farbe Rot sowohl bei Intensitäten von 100 als auch 102 als identisch betrachtet.

target

ImagickPixel object or a string containing the target color to paint

x

X start position of the floodfill

y

Y start position of the floodfill

invert

If true paints any pixel that does not match the target color.

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::floodfillPaintImage() example

<?php

/* Create new imagick object */
$im = new Imagick();

/* create red, green and blue images */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Append the images into one */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Save the intermediate image for comparison */
$combined->writeImage("floodfillpaint_intermediate.png");

/* The target pixel to paint */
$x = 1;
$y = 1;

/* Get the color we are painting */
$target = $combined->getImagePixelColor($x, $y);

/* Paints pixel in position 1,1 black and all neighboring
   pixels that match the target color */
$combined->floodfillPaintImage("black", 1, $target, $x, $y, false);

/* Save the result */
$combined->writeImage("floodfillpaint_result.png");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Imagick::floodfillPaintImage()
Output of example : Imagick::floodfillPaintImage()


Creates a vertical mirror image

  • « Imagick::floodFillPaintImage
  • Imagick::forwardFourierTransformImage »
  • PHP Manual
  • Imagick
  • Creates a vertical mirror image

Imagick::flopImage

(PECL imagick 2, PECL imagick 3)

Imagick::flopImage — Creates a vertical mirror image

Beschreibung

public Imagick::flopImage ( ) : bool

Creates a vertical mirror image by reflecting the pixels around the central y-axis.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::flopImage()

<?php
function flopImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->flopImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::flopImage
  • Imagick::frameImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::forwardFourierTransformImage

(PECL imagick 3 >= 3.3.0)

Imagick::forwardFourierTransformImage — Description

Beschreibung

public Imagick::forwardFourierTransformimage ( bool $magnitude ) : bool

Implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

Parameter-Liste

magnitude

If true, return as magnitude / phase pair otherwise a real / imaginary image pair.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::forwardFourierTransformImage()

<?php
//Utility function for forwardTransformImage
function createMask() {
    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(0);
    $draw->setStrokeColor('rgb(255, 255, 255)');
    $draw->setFillColor('rgb(255, 255, 255)');

    //Draw a circle on the y-axis, with it's centre
    //at x, y that touches the origin
    $draw->circle(250, 250, 220, 250);

    $imagick = new \Imagick();
    $imagick->newImage(512, 512, "black");
    $imagick->drawImage($draw);
    $imagick->gaussianBlurImage(20, 20);
    $imagick->autoLevelImage();

    return $imagick;
}

function forwardFourierTransformImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->resizeimage(512, 512, \Imagick::FILTER_LANCZOS, 1);

    $mask = createMask();
    $imagick->forwardFourierTransformImage(true);

    @$imagick->setimageindex(0);
    $magnitude = $imagick->getimage();

    @$imagick->setimageindex(1);
    $imagickPhase = $imagick->getimage();

    if (true) {
        $imagickPhase->compositeImage($mask, \Imagick::COMPOSITE_MULTIPLY, 0, 0);
    }

    if (false) {
        $output = clone $imagickPhase;
        $output->setimageformat('png');
        header("Content-Type: image/png");
        echo $output->getImageBlob();
    }

    $magnitude->inverseFourierTransformImage($imagickPhase, true);

    $magnitude->setimageformat('png');
    header("Content-Type: image/png");
    echo $magnitude->getImageBlob();
}

?>


Adds a simulated three-dimensional border

  • « Imagick::forwardFourierTransformImage
  • Imagick::functionImage »
  • PHP Manual
  • Imagick
  • Adds a simulated three-dimensional border

Imagick::frameImage

(PECL imagick 2, PECL imagick 3)

Imagick::frameImage — Adds a simulated three-dimensional border

Beschreibung

public Imagick::frameImage ( mixed $matte_color , int $width , int $height , int $inner_bevel , int $outer_bevel ) : bool

Adds a simulated three-dimensional border around the image. The width and height specify the border width of the vertical and horizontal sides of the frame. The inner and outer bevels indicate the width of the inner and outer shadows of the frame.

Parameter-Liste

matte_color

ImagickPixel object or a string representing the matte color

width

The width of the border

height

The height of the border

inner_bevel

The inner bevel width

outer_bevel

The outer bevel width

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Beispiele

Beispiel #1 Imagick::frameImage()

<?php
function frameImage($imagePath, $color, $width, $height, $innerBevel, $outerBevel) {
    $imagick = new \Imagick(realpath($imagePath));

    $width = $width + $innerBevel + $outerBevel;
    $height = $height + $innerBevel + $outerBevel;

    $imagick->frameimage(
        $color,
        $width,
        $height,
        $innerBevel,
        $outerBevel
    );
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applies a function on the image

  • « Imagick::frameImage
  • Imagick::fxImage »
  • PHP Manual
  • Imagick
  • Applies a function on the image

Imagick::functionImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::functionImage — Applies a function on the image

Beschreibung

public Imagick::functionImage ( int $function , array $arguments , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Applies an arithmetic, relational, or logical expression to a pseudo image.

See also » ImageMagick v6 Examples - Image Transformations — Function, Multi-Argument Evaluate

Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.9 oder höher kompiliert wurde.

Parameter-Liste

function

Refer to this list of function constants

arguments

Array of arguments to pass to this function.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Create a sinusoidal gradient

<?php
$imagick = new Imagick();
$imagick->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(3, -90);
$imagick->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);

header("Content-Type: image/png");
$imagick->setImageFormat("png");
echo $imagick->getImageBlob();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of create a sinusoidal gradient

Beispiel #2 Create a gradient from the polynomial (4x^2 - 4x + 1)

<?php
$imagick = new Imagick();
$imagick->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(4, -4, 1);
$imagick->functionImage(Imagick::FUNCTION_POLYNOMIAL, $arguments);

header("Content-Type: image/png");
$imagick->setimageformat("png");
echo $imagick->getImageBlob();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of create a polynomial gradient

Beispiel #3 Create a complex gradient from the polynomial (4x^2 - 4x^2 + 1) modulated by a sinusoidal gradient

<?php
$imagick1 = new Imagick();
$imagick1->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(9, -90);
$imagick1->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);

$imagick2 = new Imagick();
$imagick2->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(0.5, 0);
$imagick2->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);
$imagick1->compositeimage($imagick2, Imagick::COMPOSITE_MULTIPLY, 0, 0);

header("Content-Type: image/png");
$imagick1->setImageFormat("png");
echo $imagick1->getImageBlob();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of create complex gradient


Evaluate expression for each pixel in the image

  • « Imagick::functionImage
  • Imagick::gammaImage »
  • PHP Manual
  • Imagick
  • Evaluate expression for each pixel in the image

Imagick::fxImage

(PECL imagick 2, PECL imagick 3)

Imagick::fxImage — Evaluate expression for each pixel in the image

Beschreibung

public Imagick::fxImage ( string $expression , int $channel = Imagick::CHANNEL_DEFAULT ) : Imagick

Evaluate expression for each pixel in the image. Consult » The Fx Special Effects Image Operator for more information.

Parameter-Liste

expression

The expression.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::fxImage()

<?php
function fxImage() {
    $imagick = new \Imagick();
    $imagick->newPseudoImage(200, 200, "xc:white");

    $fx = 'xx=i-w/2; yy=j-h/2; rr=hypot(xx,yy); (.5-rr/140)*1.2+.5';
    $fxImage = $imagick->fxImage($fx);

    header("Content-Type: image/png");
    $fxImage->setimageformat('png');
    echo $fxImage->getImageBlob();
}

?>


Gamma-corrects an image

  • « Imagick::fxImage
  • Imagick::gaussianBlurImage »
  • PHP Manual
  • Imagick
  • Gamma-corrects an image

Imagick::gammaImage

(PECL imagick 2, PECL imagick 3)

Imagick::gammaImage — Gamma-corrects an image

Beschreibung

public Imagick::gammaImage ( float $gamma , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Gamma-corrects an image. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

Parameter-Liste

gamma

The amount of gamma-correction.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::gammaImage()

<?php
function gammaImage($imagePath, $gamma, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->gammaImage($gamma, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Blurs an image

  • « Imagick::gammaImage
  • Imagick::getColorspace »
  • PHP Manual
  • Imagick
  • Blurs an image

Imagick::gaussianBlurImage

(PECL imagick 2, PECL imagick 3)

Imagick::gaussianBlurImage — Blurs an image

Beschreibung

public Imagick::gaussianBlurImage ( float $radius , float $sigma , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and selects a suitable radius for you.

Parameter-Liste

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::gaussianBlurImage()

<?php
function gaussianBlurImage($imagePath, $radius, $sigma, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->gaussianBlurImage($radius, $sigma, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Gets the colorspace

  • « Imagick::gaussianBlurImage
  • Imagick::getCompression »
  • PHP Manual
  • Imagick
  • Gets the colorspace

Imagick::getColorspace

(PECL imagick 3)

Imagick::getColorspace — Gets the colorspace

Beschreibung

public Imagick::getColorspace ( ) : int

Gets the global colorspace value. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.5.7 oder höher kompiliert wurde.

Rückgabewerte

Returns an integer which can be compared against COLORSPACE constants.


Gets the object compression type

  • « Imagick::getColorspace
  • Imagick::getCompressionQuality »
  • PHP Manual
  • Imagick
  • Gets the object compression type

Imagick::getCompression

(PECL imagick 2, PECL imagick 3)

Imagick::getCompression — Gets the object compression type

Beschreibung

public Imagick::getCompression ( ) : int

Gets the object compression type.

Rückgabewerte

Returns the compression constant


Gets the object compression quality

  • « Imagick::getCompression
  • Imagick::getCopyright »
  • PHP Manual
  • Imagick
  • Gets the object compression quality

Imagick::getCompressionQuality

(PECL imagick 2, PECL imagick 3)

Imagick::getCompressionQuality — Gets the object compression quality

Beschreibung

public Imagick::getCompressionQuality ( ) : int

Gets the object compression quality.

Rückgabewerte

Returns integer describing the compression quality


Returns the ImageMagick API copyright as a string

  • « Imagick::getCompressionQuality
  • Imagick::getFilename »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick API copyright as a string

Imagick::getCopyright

(PECL imagick 2, PECL imagick 3)

Imagick::getCopyright — Returns the ImageMagick API copyright as a string

Beschreibung

public static Imagick::getCopyright ( ) : string

Returns the ImageMagick API copyright as a string.

Rückgabewerte

Returns a string containing the copyright notice of Imagemagick and Magickwand C API.


The filename associated with an image sequence

  • « Imagick::getCopyright
  • Imagick::getFont »
  • PHP Manual
  • Imagick
  • The filename associated with an image sequence

Imagick::getFilename

(PECL imagick 2, PECL imagick 3)

Imagick::getFilename — The filename associated with an image sequence

Beschreibung

public Imagick::getFilename ( ) : string

Returns the filename associated with an image sequence.

Rückgabewerte

Returns a string on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets font

  • « Imagick::getFilename
  • Imagick::getFormat »
  • PHP Manual
  • Imagick
  • Gets font

Imagick::getFont

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::getFont — Gets font

Beschreibung

public Imagick::getFont ( ) : string

Returns the objects font property. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.7 oder höher kompiliert wurde.

Rückgabewerte

Returns the string containing the font name or false if not font is set.

Siehe auch

  • Imagick::setFont() - Sets font
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text
  • ImagickDraw::getFont() - Returns the font


Returns the format of the Imagick object

  • « Imagick::getFont
  • Imagick::getGravity »
  • PHP Manual
  • Imagick
  • Returns the format of the Imagick object

Imagick::getFormat

(PECL imagick 2, PECL imagick 3)

Imagick::getFormat — Returns the format of the Imagick object

Beschreibung

public Imagick::getFormat ( ) : string

Returns the format of the Imagick object.

Rückgabewerte

Returns the format of the image.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the gravity

  • « Imagick::getFormat
  • Imagick::getHomeURL »
  • PHP Manual
  • Imagick
  • Gets the gravity

Imagick::getGravity

(PECL imagick 2, PECL imagick 3)

Imagick::getGravity — Gets the gravity

Beschreibung

public Imagick::getGravity ( ) : int

Gets the global gravity property for the Imagick object. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.0 oder höher kompiliert wurde.

Rückgabewerte

Returns the gravity property. Refer to the list of gravity constants.


Returns the ImageMagick home URL

  • « Imagick::getGravity
  • Imagick::getImage »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick home URL

Imagick::getHomeURL

(PECL imagick 2, PECL imagick 3)

Imagick::getHomeURL — Returns the ImageMagick home URL

Beschreibung

public static Imagick::getHomeURL ( ) : string

Returns the ImageMagick home URL.

Rückgabewerte

Returns a link to the imagemagick homepage.


Returns a new Imagick object

  • « Imagick::getHomeURL
  • Imagick::getImageAlphaChannel »
  • PHP Manual
  • Imagick
  • Returns a new Imagick object

Imagick::getImage

(PECL imagick 2, PECL imagick 3)

Imagick::getImage — Returns a new Imagick object

Beschreibung

public Imagick::getImage ( ) : Imagick

Returns a new Imagick object with the current image sequence.

Rückgabewerte

Returns a new Imagick object with the current image sequence.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the image alpha channel

  • « Imagick::getImage
  • Imagick::getImageArtifact »
  • PHP Manual
  • Imagick
  • Gets the image alpha channel

Imagick::getImageAlphaChannel

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageAlphaChannel — Gets the image alpha channel

Beschreibung

public Imagick::getImageAlphaChannel ( ) : int

Gets the image alpha channel value. The returned value is one of the alpha channel constants. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.0 oder höher kompiliert wurde.

Rückgabewerte

Returns a constant defining the current alpha channel value. Refer to this list of alpha channel constants.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Get image artifact

  • « Imagick::getImageAlphaChannel
  • Imagick::getImageAttribute »
  • PHP Manual
  • Imagick
  • Get image artifact

Imagick::getImageArtifact

(PECL imagick 3)

Imagick::getImageArtifact — Get image artifact

Beschreibung

public Imagick::getImageArtifact ( string $artifact ) : string

Gets an artifact associated with the image. The difference between image properties and image artifacts is that properties are public and artifacts are private. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.5.7 oder höher kompiliert wurde.

Parameter-Liste

artifact

The name of the artifact

Rückgabewerte

Returns the artifact value on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Siehe auch

  • Imagick::setImageArtifact() - Set image artifact
  • Imagick::deleteImageArtifact() - Delete image artifact


Description

  • « Imagick::getImageArtifact
  • Imagick::getImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Description

Imagick::getImageAttribute

(PECL imagick 2, PECL imagick 3)

Imagick::getImageAttribute — Description

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::getImageAttribute ( string $key ) : string

Returns a named attribute.

Parameter-Liste

key

The key of the attribute to get.

Rückgabewerte


Returns the image background color

  • « Imagick::getImageAttribute
  • Imagick::getImageBlob »
  • PHP Manual
  • Imagick
  • Returns the image background color

Imagick::getImageBackgroundColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBackgroundColor — Returns the image background color

Beschreibung

public Imagick::getImageBackgroundColor ( ) : ImagickPixel

Returns the image background color.

Rückgabewerte

Returns an ImagickPixel set to the background color of the image.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the image sequence as a blob

  • « Imagick::getImageBackgroundColor
  • Imagick::getImageBluePrimary »
  • PHP Manual
  • Imagick
  • Returns the image sequence as a blob

Imagick::getImageBlob

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBlob — Returns the image sequence as a blob

Beschreibung

public Imagick::getImageBlob ( ) : string

Implements direct to memory image formats. It returns the image sequence as a string. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use Imagick::setImageFormat().

Rückgabewerte

Returns a string containing the image.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the chromaticy blue primary point

  • « Imagick::getImageBlob
  • Imagick::getImageBorderColor »
  • PHP Manual
  • Imagick
  • Returns the chromaticy blue primary point

Imagick::getImageBluePrimary

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBluePrimary — Returns the chromaticy blue primary point

Beschreibung

public Imagick::getImageBluePrimary ( ) : array

Returns the chromaticity blue primary point for the image.

Parameter-Liste

x

The chromaticity blue primary x-point.

y

The chromaticity blue primary y-point.

Rückgabewerte

Array consisting of "x" and "y" coordinates of point.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the image border color

  • « Imagick::getImageBluePrimary
  • Imagick::getImageChannelDepth »
  • PHP Manual
  • Imagick
  • Returns the image border color

Imagick::getImageBorderColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBorderColor — Returns the image border color

Beschreibung

public Imagick::getImageBorderColor ( ) : ImagickPixel

Returns the image border color.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the depth for a particular image channel

  • « Imagick::getImageBorderColor
  • Imagick::getImageChannelDistortion »
  • PHP Manual
  • Imagick
  • Gets the depth for a particular image channel

Imagick::getImageChannelDepth

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelDepth — Gets the depth for a particular image channel

Beschreibung

public Imagick::getImageChannelDepth ( int $channel ) : int

Gets the depth for a particular image channel.

Parameter-Liste

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Liefert true bei Erfolg.


Compares image channels of an image to a reconstructed image

  • « Imagick::getImageChannelDepth
  • Imagick::getImageChannelDistortions »
  • PHP Manual
  • Imagick
  • Compares image channels of an image to a reconstructed image

Imagick::getImageChannelDistortion

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image

Beschreibung

public Imagick::getImageChannelDistortion ( Imagick $reference , int $channel , int $metric ) : float

Compares one or more image channels of an image to a reconstructed image and returns the specified distortion metric.

Parameter-Liste

reference

Imagick object to compare to.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

metric

One of the metric type constants.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets channel distortions

  • « Imagick::getImageChannelDistortion
  • Imagick::getImageChannelExtrema »
  • PHP Manual
  • Imagick
  • Gets channel distortions

Imagick::getImageChannelDistortions

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageChannelDistortions — Gets channel distortions

Beschreibung

public Imagick::getImageChannelDistortions ( Imagick $reference , int $metric , int $channel = Imagick::CHANNEL_DEFAULT ) : float

Compares one or more image channels of an image to a reconstructed image and returns the specified distortion metrics Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.4 oder höher kompiliert wurde.

Parameter-Liste

reference

Imagick object containing the reference image

metric

Refer to this list of metric type constants.

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Returns a double describing the channel distortion.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the extrema for one or more image channels

  • « Imagick::getImageChannelDistortions
  • Imagick::getImageChannelKurtosis »
  • PHP Manual
  • Imagick
  • Gets the extrema for one or more image channels

Imagick::getImageChannelExtrema

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::getImageChannelExtrema ( int $channel ) : array

Gets the extrema for one or more image channels. Return value is an associative array with the keys "minima" and "maxima".

Parameter-Liste

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


The getImageChannelKurtosis purpose

  • « Imagick::getImageChannelExtrema
  • Imagick::getImageChannelMean »
  • PHP Manual
  • Imagick
  • The getImageChannelKurtosis purpose

Imagick::getImageChannelKurtosis

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageChannelKurtosis — The getImageChannelKurtosis purpose

Beschreibung

public Imagick::getImageChannelKurtosis ( int $channel = Imagick::CHANNEL_DEFAULT ) : array

Get the kurtosis and skewness of a specific channel. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.9 oder höher kompiliert wurde.

Parameter-Liste

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Returns an array with kurtosis and skewness members.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the mean and standard deviation

  • « Imagick::getImageChannelKurtosis
  • Imagick::getImageChannelRange »
  • PHP Manual
  • Imagick
  • Gets the mean and standard deviation

Imagick::getImageChannelMean

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelMean — Gets the mean and standard deviation

Beschreibung

public Imagick::getImageChannelMean ( int $channel ) : array

Gets the mean and standard deviation of one or more image channels.

Parameter-Liste

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Returns an array with "mean" and "standardDeviation" members.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets channel range

  • « Imagick::getImageChannelMean
  • Imagick::getImageChannelStatistics »
  • PHP Manual
  • Imagick
  • Gets channel range

Imagick::getImageChannelRange

(PECL imagick 2 >= 2.2.1, PECL imagick 3)

Imagick::getImageChannelRange — Gets channel range

Beschreibung

public Imagick::getImageChannelRange ( int $channel ) : array

Gets the range for one or more image channels. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.0 oder höher kompiliert wurde.

Parameter-Liste

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Returns an array containing minima and maxima values of the channel(s).

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns statistics for each channel in the image

  • « Imagick::getImageChannelRange
  • Imagick::getImageClipMask »
  • PHP Manual
  • Imagick
  • Returns statistics for each channel in the image

Imagick::getImageChannelStatistics

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelStatistics — Returns statistics for each channel in the image

Beschreibung

public Imagick::getImageChannelStatistics ( ) : array

Returns statistics for each channel in the image. The statistics include the channel depth, its minima and maxima, the mean, and the standard deviation.

Rückgabewerte

Liefert true bei Erfolg.


Gets image clip mask

  • « Imagick::getImageChannelStatistics
  • Imagick::getImageColormapColor »
  • PHP Manual
  • Imagick
  • Gets image clip mask

Imagick::getImageClipMask

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageClipMask — Gets image clip mask

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::getImageClipMask ( ) : Imagick

Returns the image clip mask. The clip mask is an Imagick object containing the clip mask. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.6 oder höher kompiliert wurde.

Rückgabewerte

Returns an Imagick object containing the clip mask.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the color of the specified colormap index

  • « Imagick::getImageClipMask
  • Imagick::getImageColors »
  • PHP Manual
  • Imagick
  • Returns the color of the specified colormap index

Imagick::getImageColormapColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImageColormapColor — Returns the color of the specified colormap index

Beschreibung

public Imagick::getImageColormapColor ( int $index ) : ImagickPixel

Returns the color of the specified colormap index.

Parameter-Liste

index

The offset into the image colormap.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the number of unique colors in the image

  • « Imagick::getImageColormapColor
  • Imagick::getImageColorspace »
  • PHP Manual
  • Imagick
  • Gets the number of unique colors in the image

Imagick::getImageColors

(PECL imagick 2, PECL imagick 3)

Imagick::getImageColors — Gets the number of unique colors in the image

Beschreibung

public Imagick::getImageColors ( ) : int

Gets the number of unique colors in the image.

Rückgabewerte

Returns an int, the number of unique colors in the image.


Gets the image colorspace

  • « Imagick::getImageColors
  • Imagick::getImageCompose »
  • PHP Manual
  • Imagick
  • Gets the image colorspace

Imagick::getImageColorspace

(PECL imagick 2, PECL imagick 3)

Imagick::getImageColorspace — Gets the image colorspace

Beschreibung

public Imagick::getImageColorspace ( ) : int

Gets the image colorspace.

Rückgabewerte

Returns an integer which can be compared against COLORSPACE constants.


Returns the composite operator associated with the image

  • « Imagick::getImageColorspace
  • Imagick::getImageCompression »
  • PHP Manual
  • Imagick
  • Returns the composite operator associated with the image

Imagick::getImageCompose

(PECL imagick 2, PECL imagick 3)

Imagick::getImageCompose — Returns the composite operator associated with the image

Beschreibung

public Imagick::getImageCompose ( ) : int

Returns the composite operator associated with the image.

Rückgabewerte

Liefert true bei Erfolg.


Gets the current image's compression type

  • « Imagick::getImageCompose
  • Imagick::getImageCompressionQuality »
  • PHP Manual
  • Imagick
  • Gets the current image's compression type

Imagick::getImageCompression

(PECL imagick 3 >= 3.3.0)

Imagick::getImageCompression — Gets the current image's compression type

Beschreibung

public Imagick::getImageCompression ( ) : int

Gets the current image's compression type.

Rückgabewerte

Returns the compression constant


Gets the current image's compression quality

  • « Imagick::getImageCompression
  • Imagick::getImageDelay »
  • PHP Manual
  • Imagick
  • Gets the current image's compression quality

Imagick::getImageCompressionQuality

(PECL imagick 2 >= 2.2.2, PECL imagick 3)

Imagick::getImageCompressionQuality — Gets the current image's compression quality

Beschreibung

public Imagick::getImageCompressionQuality ( ) : int

Gets the current image's compression quality

Rückgabewerte

Returns integer describing the images compression quality


Gets the image delay

  • « Imagick::getImageCompressionQuality
  • Imagick::getImageDepth »
  • PHP Manual
  • Imagick
  • Gets the image delay

Imagick::getImageDelay

(PECL imagick 2, PECL imagick 3)

Imagick::getImageDelay — Gets the image delay

Beschreibung

public Imagick::getImageDelay ( ) : int

Gets the image delay.

Rückgabewerte

Returns the image delay.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the image depth

  • « Imagick::getImageDelay
  • Imagick::getImageDispose »
  • PHP Manual
  • Imagick
  • Gets the image depth

Imagick::getImageDepth

(PECL imagick 2, PECL imagick 3)

Imagick::getImageDepth — Gets the image depth

Beschreibung

public Imagick::getImageDepth ( ) : int

Gets the image depth.

Rückgabewerte

The image depth.


Gets the image disposal method

  • « Imagick::getImageDepth
  • Imagick::getImageDistortion »
  • PHP Manual
  • Imagick
  • Gets the image disposal method

Imagick::getImageDispose

(PECL imagick 2, PECL imagick 3)

Imagick::getImageDispose — Gets the image disposal method

Beschreibung

public Imagick::getImageDispose ( ) : int

Gets the image disposal method.

Rückgabewerte

Returns the dispose method on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Compares an image to a reconstructed image

  • « Imagick::getImageDispose
  • Imagick::getImageExtrema »
  • PHP Manual
  • Imagick
  • Compares an image to a reconstructed image

Imagick::getImageDistortion

(PECL imagick 2, PECL imagick 3)

Imagick::getImageDistortion — Compares an image to a reconstructed image

Beschreibung

public Imagick::getImageDistortion ( MagickWand $reference , int $metric ) : float

Compares an image to a reconstructed image and returns the specified distortion metric.

Parameter-Liste

reference

Imagick object to compare to.

metric

One of the metric type constants.

Rückgabewerte

Returns the distortion metric used on the image (or the best guess thereof).

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the extrema for the image

  • « Imagick::getImageDistortion
  • Imagick::getImageFilename »
  • PHP Manual
  • Imagick
  • Gets the extrema for the image

Imagick::getImageExtrema

(PECL imagick 2, PECL imagick 3)

Imagick::getImageExtrema — Gets the extrema for the image

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::getImageExtrema ( ) : array

Gets the extrema for the image. Returns an associative array with the keys "min" and "max".

Rückgabewerte

Returns an associative array with the keys "min" and "max".

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the filename of a particular image in a sequence

  • « Imagick::getImageExtrema
  • Imagick::getImageFormat »
  • PHP Manual
  • Imagick
  • Returns the filename of a particular image in a sequence

Imagick::getImageFilename

(PECL imagick 2, PECL imagick 3)

Imagick::getImageFilename — Returns the filename of a particular image in a sequence

Beschreibung

public Imagick::getImageFilename ( ) : string

Returns the filename of a particular image in a sequence.

Rückgabewerte

Returns a string with the filename of the image.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the format of a particular image in a sequence

  • « Imagick::getImageFilename
  • Imagick::getImageGamma »
  • PHP Manual
  • Imagick
  • Returns the format of a particular image in a sequence

Imagick::getImageFormat

(PECL imagick 2, PECL imagick 3)

Imagick::getImageFormat — Returns the format of a particular image in a sequence

Beschreibung

public Imagick::getImageFormat ( ) : string

Returns the format of a particular image in a sequence.

Rückgabewerte

Returns a string containing the image format on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the image gamma

  • « Imagick::getImageFormat
  • Imagick::getImageGeometry »
  • PHP Manual
  • Imagick
  • Gets the image gamma

Imagick::getImageGamma

(PECL imagick 2, PECL imagick 3)

Imagick::getImageGamma — Gets the image gamma

Beschreibung

public Imagick::getImageGamma ( ) : float

Gets the image gamma.

Rückgabewerte

Returns the image gamma on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the width and height as an associative array

  • « Imagick::getImageGamma
  • Imagick::getImageGravity »
  • PHP Manual
  • Imagick
  • Gets the width and height as an associative array

Imagick::getImageGeometry

(PECL imagick 2, PECL imagick 3)

Imagick::getImageGeometry — Gets the width and height as an associative array

Beschreibung

public Imagick::getImageGeometry ( ) : array

Returns the width and height as an associative array.

Rückgabewerte

Returns an array with the width/height of the image.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::getImageGeometry()

<?php
function getImageGeometry($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Gets the image gravity

  • « Imagick::getImageGeometry
  • Imagick::getImageGreenPrimary »
  • PHP Manual
  • Imagick
  • Gets the image gravity

Imagick::getImageGravity

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageGravity — Gets the image gravity

Beschreibung

public Imagick::getImageGravity ( ) : int

Gets the current gravity value of the image. Unlike Imagick::getGravity(), this method returns the gravity defined for the current image sequence. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.4 oder höher kompiliert wurde.

Rückgabewerte

Returns the images gravity property. Refer to the list of gravity constants.


Returns the chromaticy green primary point

  • « Imagick::getImageGravity
  • Imagick::getImageHeight »
  • PHP Manual
  • Imagick
  • Returns the chromaticy green primary point

Imagick::getImageGreenPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::getImageGreenPrimary — Returns the chromaticy green primary point

Beschreibung

public Imagick::getImageGreenPrimary ( ) : array

Returns the chromaticity green primary point. Returns an array with the keys "x" and "y".

Rückgabewerte

Returns an array with the keys "x" and "y" on success, throws an ImagickException on failure.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the image height

  • « Imagick::getImageGreenPrimary
  • Imagick::getImageHistogram »
  • PHP Manual
  • Imagick
  • Returns the image height

Imagick::getImageHeight

(PECL imagick 2, PECL imagick 3)

Imagick::getImageHeight — Returns the image height

Beschreibung

public Imagick::getImageHeight ( ) : int

Returns the image height.

Rückgabewerte

Returns the image height in pixels.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the image histogram

  • « Imagick::getImageHeight
  • Imagick::getImageIndex »
  • PHP Manual
  • Imagick
  • Gets the image histogram

Imagick::getImageHistogram

(PECL imagick 2, PECL imagick 3)

Imagick::getImageHistogram — Gets the image histogram

Beschreibung

public Imagick::getImageHistogram ( ) : array

Returns the image histogram as an array of ImagickPixel objects.

Rückgabewerte

Returns the image histogram as an array of ImagickPixel objects.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Generates Imagick::getImageHistogram()

<?php
function getColorStatistics($histogramElements, $colorChannel) {
    $colorStatistics = [];

    foreach ($histogramElements as $histogramElement) {
        $color = $histogramElement->getColorValue($colorChannel);
        $color = intval($color * 255);
        $count = $histogramElement->getColorCount();

        if (array_key_exists($color, $colorStatistics)) {
            $colorStatistics[$color] += $count;
        }
        else {
            $colorStatistics[$color] = $count;
        }
    }

    ksort($colorStatistics);

    return $colorStatistics;
}

function getImageHistogram($imagePath) {

    $backgroundColor = 'black';

    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(0); //make the lines be as thin as possible

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    $histogramWidth = 256;
    $histogramHeight = 100; // the height for each RGB segment

    $imagick = new \Imagick(realpath($imagePath));
    //Resize the image to be small, otherwise PHP tends to run out of memory
    //This might lead to bad results for images that are pathologically 'pixelly'
    $imagick->adaptiveResizeImage(200, 200, true);
    $histogramElements = $imagick->getImageHistogram();

    $histogram = new \Imagick();
    $histogram->newpseudoimage($histogramWidth, $histogramHeight * 3, 'xc:black');
    $histogram->setImageFormat('png');

    $getMax = function ($carry, $item)  {
        if ($item > $carry) {
            return $item;
        }
        return $carry;
    };

    $colorValues = [
        'red' => getColorStatistics($histogramElements, \Imagick::COLOR_RED),
        'lime' => getColorStatistics($histogramElements, \Imagick::COLOR_GREEN),
        'blue' => getColorStatistics($histogramElements, \Imagick::COLOR_BLUE),
    ];

    $max = array_reduce($colorValues['red'] , $getMax, 0);
    $max = array_reduce($colorValues['lime'] , $getMax, $max);
    $max = array_reduce($colorValues['blue'] , $getMax, $max);

    $scale =  $histogramHeight / $max;

    $count = 0;
    foreach ($colorValues as $color => $values) {
        $draw->setstrokecolor($color);

        $offset = ($count + 1) * $histogramHeight;

        foreach ($values as $index => $value) {
            $draw->line($index, $offset, $index, $offset - ($value * $scale));
        }
        $count++;
    }

    $histogram->drawImage($draw);

    header( "Content-Type: image/png" );
    echo $histogram;
}

?>


Gets the index of the current active image

  • « Imagick::getImageHistogram
  • Imagick::getImageInterlaceScheme »
  • PHP Manual
  • Imagick
  • Gets the index of the current active image

Imagick::getImageIndex

(PECL imagick 2, PECL imagick 3)

Imagick::getImageIndex — Gets the index of the current active image

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::getImageIndex ( ) : int

Returns the index of the current active image within the Imagick object. This method has been deprecated. See Imagick::getIteratorIndex().

Rückgabewerte

Returns an integer containing the index of the image in the stack.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the image interlace scheme

  • « Imagick::getImageIndex
  • Imagick::getImageInterpolateMethod »
  • PHP Manual
  • Imagick
  • Gets the image interlace scheme

Imagick::getImageInterlaceScheme

(PECL imagick 2, PECL imagick 3)

Imagick::getImageInterlaceScheme — Gets the image interlace scheme

Beschreibung

public Imagick::getImageInterlaceScheme ( ) : int

Gets the image interlace scheme.

Rückgabewerte

Returns the interlace scheme as an integer on success. Wirf eine ImagickException bei einem Fehler.


Returns the interpolation method

  • « Imagick::getImageInterlaceScheme
  • Imagick::getImageIterations »
  • PHP Manual
  • Imagick
  • Returns the interpolation method

Imagick::getImageInterpolateMethod

(PECL imagick 2, PECL imagick 3)

Imagick::getImageInterpolateMethod — Returns the interpolation method

Beschreibung

public Imagick::getImageInterpolateMethod ( ) : int

Returns the interpolation method for the specified image. The method is one of the Imagick::INTERPOLATE_* constants.

Rückgabewerte

Returns the interpolate method on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the image iterations

  • « Imagick::getImageInterpolateMethod
  • Imagick::getImageLength »
  • PHP Manual
  • Imagick
  • Gets the image iterations

Imagick::getImageIterations

(PECL imagick 2, PECL imagick 3)

Imagick::getImageIterations — Gets the image iterations

Beschreibung

public Imagick::getImageIterations ( ) : int

Gets the image iterations.

Rückgabewerte

Returns the image iterations as an integer.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the image length in bytes

  • « Imagick::getImageIterations
  • Imagick::getImageMatte »
  • PHP Manual
  • Imagick
  • Returns the image length in bytes

Imagick::getImageLength

(PECL imagick 2, PECL imagick 3)

Imagick::getImageLength — Returns the image length in bytes

Beschreibung

public Imagick::getImageLength ( ) : int

Returns the image length in bytes

Rückgabewerte

Returns an int containing the current image size.

Beispiele

Beispiel #1 Using Imagick::getImageLength():

Getting image length in bytes

<?php
$image = new Imagick('test.jpg');
echo $image->getImageLength() . ' bytes';
?>


Return if the image has a matte channel

  • « Imagick::getImageLength
  • Imagick::getImageMatteColor »
  • PHP Manual
  • Imagick
  • Return if the image has a matte channel

Imagick::getImageMatte

(PECL imagick 2, PECL imagick 3)

Imagick::getImageMatte — Return if the image has a matte channel

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::getImageMatte ( ) : bool

Returns true if the image has a matte channel otherwise false. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Rückgabewerte

Liefert true bei Erfolg.


Returns the image matte color

  • « Imagick::getImageMatte
  • Imagick::getImageMimeType »
  • PHP Manual
  • Imagick
  • Returns the image matte color

Imagick::getImageMatteColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImageMatteColor — Returns the image matte color

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::getImageMatteColor ( ) : ImagickPixel

Returns the image matte color.

Rückgabewerte

Returns ImagickPixel object on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Description

  • « Imagick::getImageMatteColor
  • Imagick::getImageOrientation »
  • PHP Manual
  • Imagick
  • Description

Imagick::getImageMimeType

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageMimeType — Description

Beschreibung

public Imagick::getImageMimeType ( ) : string

Returns the image mime-type.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Gets the image orientation

  • « Imagick::getImageMimeType
  • Imagick::getImagePage »
  • PHP Manual
  • Imagick
  • Gets the image orientation

Imagick::getImageOrientation

(PECL imagick 2, PECL imagick 3)

Imagick::getImageOrientation — Gets the image orientation

Beschreibung

public Imagick::getImageOrientation ( ) : int

Gets the image orientation. The return value is one of the orientation constants.

Rückgabewerte

Returns an int on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the page geometry

  • « Imagick::getImageOrientation
  • Imagick::getImagePixelColor »
  • PHP Manual
  • Imagick
  • Returns the page geometry

Imagick::getImagePage

(PECL imagick 2, PECL imagick 3)

Imagick::getImagePage — Returns the page geometry

Beschreibung

public Imagick::getImagePage ( ) : array

Returns the page geometry associated with the image in an array with the keys "width", "height", "x", and "y".

Rückgabewerte

Returns the page geometry associated with the image in an array with the keys "width", "height", "x", and "y".

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the color of the specified pixel

  • « Imagick::getImagePage
  • Imagick::getImageProfile »
  • PHP Manual
  • Imagick
  • Returns the color of the specified pixel

Imagick::getImagePixelColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImagePixelColor — Returns the color of the specified pixel

Beschreibung

public Imagick::getImagePixelColor ( int $x , int $y ) : ImagickPixel

Returns the color of the specified pixel.

Parameter-Liste

x

The x-coordinate of the pixel

y

The y-coordinate of the pixel

Rückgabewerte

Returns an ImagickPixel instance for the color at the coordinates given.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the named image profile

  • « Imagick::getImagePixelColor
  • Imagick::getImageProfiles »
  • PHP Manual
  • Imagick
  • Returns the named image profile

Imagick::getImageProfile

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProfile — Returns the named image profile

Beschreibung

public Imagick::getImageProfile ( string $name ) : string

Returns the named image profile.

Parameter-Liste

name

The name of the profile to return.

Rückgabewerte

Returns a string containing the image profile.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the image profiles

  • « Imagick::getImageProfile
  • Imagick::getImageProperties »
  • PHP Manual
  • Imagick
  • Returns the image profiles

Imagick::getImageProfiles

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProfiles — Returns the image profiles

Beschreibung

public Imagick::getImageProfiles ( string $pattern = "*" , bool $include_values = true ) : array

Returns all associated profiles that match the pattern. If false is passed as second parameter only the profile names are returned. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.6 oder höher kompiliert wurde.

Parameter-Liste

pattern

The pattern for profile names.

include_values

Whether to return only profile names. If false then only profile names will be returned.

Rückgabewerte

Returns an array containing the image profiles or profile names.


Returns the image properties

  • « Imagick::getImageProfiles
  • Imagick::getImageProperty »
  • PHP Manual
  • Imagick
  • Returns the image properties

Imagick::getImageProperties

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProperties — Returns the image properties

Beschreibung

public Imagick::getImageProperties ( string $pattern = "*" , bool $include_values = true ) : array

Returns all associated properties that match the pattern. If false is passed as second parameter only the property names are returned. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.6 oder höher kompiliert wurde.

Parameter-Liste

pattern

The pattern for property names.

include_values

Whether to return only property names. If false then only property names will be returned.

Rückgabewerte

Returns an array containing the image properties or property names.

Beispiele

Beispiel #1 Using Imagick::getImageProperties():

An example of extracting EXIF information.

<?php

/* Create the object */
$im = new imagick("/path/to/example.jpg");

/* Get the EXIF information */
$exifArray = $im->getImageProperties("exif:*");

/* Loop trough the EXIF properties */
foreach ($exifArray as $name => $property)
{
    echo "{$name} => {$property}<br />\n";
}

?>


Returns the named image property

  • « Imagick::getImageProperties
  • Imagick::getImageRedPrimary »
  • PHP Manual
  • Imagick
  • Returns the named image property

Imagick::getImageProperty

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProperty — Returns the named image property

Beschreibung

public Imagick::getImageProperty ( string $name ) : string

Returns the named image property. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.2 oder höher kompiliert wurde.

Parameter-Liste

name

name of the property (for example Exif:DateTime)

Beispiele

Beispiel #1 Using Imagick::getImageProperty():

Setting and getting image property

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");

$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
?>

Siehe auch

  • Imagick::setImageProperty() - Sets an image property

Rückgabewerte

Returns a string containing the image property, false if a property with the given name does not exist.


Returns the chromaticity red primary point

  • « Imagick::getImageProperty
  • Imagick::getImageRegion »
  • PHP Manual
  • Imagick
  • Returns the chromaticity red primary point

Imagick::getImageRedPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::getImageRedPrimary — Returns the chromaticity red primary point

Beschreibung

public Imagick::getImageRedPrimary ( ) : array

Returns the chromaticity red primary point as an array with the keys "x" and "y".

Rückgabewerte

Returns the chromaticity red primary point as an array with the keys "x" and "y". Wirf eine ImagickException bei einem Fehler.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Extracts a region of the image

  • « Imagick::getImageRedPrimary
  • Imagick::getImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Extracts a region of the image

Imagick::getImageRegion

(PECL imagick 2, PECL imagick 3)

Imagick::getImageRegion — Extracts a region of the image

Beschreibung

public Imagick::getImageRegion ( int $width , int $height , int $x , int $y ) : Imagick

Extracts a region of the image and returns it as a new Imagick object.

Parameter-Liste

width

The width of the extracted region.

height

The height of the extracted region.

x

X-coordinate of the top-left corner of the extracted region.

y

Y-coordinate of the top-left corner of the extracted region.

Rückgabewerte

Extracts a region of the image and returns it as a new wand.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the image rendering intent

  • « Imagick::getImageRegion
  • Imagick::getImageResolution »
  • PHP Manual
  • Imagick
  • Gets the image rendering intent

Imagick::getImageRenderingIntent

(PECL imagick 2, PECL imagick 3)

Imagick::getImageRenderingIntent — Gets the image rendering intent

Beschreibung

public Imagick::getImageRenderingIntent ( ) : int

Gets the image rendering intent.

Rückgabewerte

Returns the image rendering intent.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the image X and Y resolution

  • « Imagick::getImageRenderingIntent
  • Imagick::getImagesBlob »
  • PHP Manual
  • Imagick
  • Gets the image X and Y resolution

Imagick::getImageResolution

(PECL imagick 2, PECL imagick 3)

Imagick::getImageResolution — Gets the image X and Y resolution

Beschreibung

public Imagick::getImageResolution ( ) : array

Gets the image X and Y resolution.

Rückgabewerte

Returns the resolution as an array.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns all image sequences as a blob

  • « Imagick::getImageResolution
  • Imagick::getImageScene »
  • PHP Manual
  • Imagick
  • Returns all image sequences as a blob

Imagick::getImagesBlob

(PECL imagick 2, PECL imagick 3)

Imagick::getImagesBlob — Returns all image sequences as a blob

Beschreibung

public Imagick::getImagesBlob ( ) : string

Implements direct to memory image formats. It returns all image sequences as a string. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use Imagick::setImageFormat().

Rückgabewerte

Returns a string containing the images. On failure, throws ImagickException.


Gets the image scene

  • « Imagick::getImagesBlob
  • Imagick::getImageSignature »
  • PHP Manual
  • Imagick
  • Gets the image scene

Imagick::getImageScene

(PECL imagick 2, PECL imagick 3)

Imagick::getImageScene — Gets the image scene

Beschreibung

public Imagick::getImageScene ( ) : int

Gets the image scene.

Rückgabewerte

Returns the image scene.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Generates an SHA-256 message digest

  • « Imagick::getImageScene
  • Imagick::getImageSize »
  • PHP Manual
  • Imagick
  • Generates an SHA-256 message digest

Imagick::getImageSignature

(PECL imagick 2, PECL imagick 3)

Imagick::getImageSignature — Generates an SHA-256 message digest

Beschreibung

public Imagick::getImageSignature ( ) : string

Generates an SHA-256 message digest for the image pixel stream.

Rückgabewerte

Returns a string containing the SHA-256 hash of the file.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the image length in bytes

  • « Imagick::getImageSignature
  • Imagick::getImageTicksPerSecond »
  • PHP Manual
  • Imagick
  • Returns the image length in bytes

Imagick::getImageSize

(PECL imagick 2, PECL imagick 3)

Imagick::getImageSize — Returns the image length in bytes

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::getImageSize ( ) : int

Returns the image length in bytes. Deprecated in favour of Imagick::getImageLength()

Rückgabewerte

Returns an int containing the current image size.


Gets the image ticks-per-second

  • « Imagick::getImageSize
  • Imagick::getImageTotalInkDensity »
  • PHP Manual
  • Imagick
  • Gets the image ticks-per-second

Imagick::getImageTicksPerSecond

(PECL imagick 2, PECL imagick 3)

Imagick::getImageTicksPerSecond — Gets the image ticks-per-second

Beschreibung

public Imagick::getImageTicksPerSecond ( ) : int

Gets the image ticks-per-second.

Rückgabewerte

Returns the image ticks-per-second.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the image total ink density

  • « Imagick::getImageTicksPerSecond
  • Imagick::getImageType »
  • PHP Manual
  • Imagick
  • Gets the image total ink density

Imagick::getImageTotalInkDensity

(PECL imagick 2, PECL imagick 3)

Imagick::getImageTotalInkDensity — Gets the image total ink density

Beschreibung

public Imagick::getImageTotalInkDensity ( ) : float

Gets the image total ink density.

Rückgabewerte

Returns the image total ink density of the image. Wirf eine ImagickException bei einem Fehler.


Gets the potential image type

  • « Imagick::getImageTotalInkDensity
  • Imagick::getImageUnits »
  • PHP Manual
  • Imagick
  • Gets the potential image type

Imagick::getImageType

(PECL imagick 2, PECL imagick 3)

Imagick::getImageType — Gets the potential image type

Beschreibung

public Imagick::getImageType ( ) : int

Gets the potential image type.

Rückgabewerte

Returns the potential image type.

  • imagick::IMGTYPE_UNDEFINED
  • imagick::IMGTYPE_BILEVEL
  • imagick::IMGTYPE_GRAYSCALE
  • imagick::IMGTYPE_GRAYSCALEMATTE
  • imagick::IMGTYPE_PALETTE
  • imagick::IMGTYPE_PALETTEMATTE
  • imagick::IMGTYPE_TRUECOLOR
  • imagick::IMGTYPE_TRUECOLORMATTE
  • imagick::IMGTYPE_COLORSEPARATION
  • imagick::IMGTYPE_COLORSEPARATIONMATTE
  • imagick::IMGTYPE_OPTIMIZE

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the image units of resolution

  • « Imagick::getImageType
  • Imagick::getImageVirtualPixelMethod »
  • PHP Manual
  • Imagick
  • Gets the image units of resolution

Imagick::getImageUnits

(PECL imagick 2, PECL imagick 3)

Imagick::getImageUnits — Gets the image units of resolution

Beschreibung

public Imagick::getImageUnits ( ) : int

Gets the image units of resolution.

Rückgabewerte

Returns the image units of resolution.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the virtual pixel method

  • « Imagick::getImageUnits
  • Imagick::getImageWhitePoint »
  • PHP Manual
  • Imagick
  • Returns the virtual pixel method

Imagick::getImageVirtualPixelMethod

(PECL imagick 2, PECL imagick 3)

Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method

Beschreibung

public Imagick::getImageVirtualPixelMethod ( ) : int

Returns the virtual pixel method for the specified image.

Rückgabewerte

Returns the virtual pixel method on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the chromaticity white point

  • « Imagick::getImageVirtualPixelMethod
  • Imagick::getImageWidth »
  • PHP Manual
  • Imagick
  • Returns the chromaticity white point

Imagick::getImageWhitePoint

(PECL imagick 2, PECL imagick 3)

Imagick::getImageWhitePoint — Returns the chromaticity white point

Beschreibung

public Imagick::getImageWhitePoint ( ) : array

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Rückgabewerte

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the image width

  • « Imagick::getImageWhitePoint
  • Imagick::getInterlaceScheme »
  • PHP Manual
  • Imagick
  • Returns the image width

Imagick::getImageWidth

(PECL imagick 2, PECL imagick 3)

Imagick::getImageWidth — Returns the image width

Beschreibung

public Imagick::getImageWidth ( ) : int

Returns the image width.

Rückgabewerte

Returns the image width.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the object interlace scheme

  • « Imagick::getImageWidth
  • Imagick::getIteratorIndex »
  • PHP Manual
  • Imagick
  • Gets the object interlace scheme

Imagick::getInterlaceScheme

(PECL imagick 2, PECL imagick 3)

Imagick::getInterlaceScheme — Gets the object interlace scheme

Beschreibung

public Imagick::getInterlaceScheme ( ) : int

Gets the object interlace scheme.

Rückgabewerte

Gets the wand interlace scheme.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Gets the index of the current active image

  • « Imagick::getInterlaceScheme
  • Imagick::getNumberImages »
  • PHP Manual
  • Imagick
  • Gets the index of the current active image

Imagick::getIteratorIndex

(PECL imagick 2, PECL imagick 3)

Imagick::getIteratorIndex — Gets the index of the current active image

Beschreibung

public Imagick::getIteratorIndex ( ) : int

Returns the index of the current active image within the Imagick object. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Rückgabewerte

Returns an integer containing the index of the image in the stack.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Using Imagick::getIteratorIndex():

Create images, set and get the iterator index

<?php
$im = new Imagick();
$im->newImage(100, 100, new ImagickPixel("red"));
$im->newImage(100, 100, new ImagickPixel("green"));
$im->newImage(100, 100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo $im->getIteratorIndex();
?>

Siehe auch

  • Imagick::setIteratorIndex() - Set the iterator position
  • Imagick::getImageIndex() - Gets the index of the current active image
  • Imagick::setImageIndex() - Set the iterator position


Returns the number of images in the object

  • « Imagick::getIteratorIndex
  • Imagick::getOption »
  • PHP Manual
  • Imagick
  • Returns the number of images in the object

Imagick::getNumberImages

(PECL imagick 2, PECL imagick 3)

Imagick::getNumberImages — Returns the number of images in the object

Beschreibung

public Imagick::getNumberImages ( ) : int

Returns the number of images associated with Imagick object.

Rückgabewerte

Returns the number of images associated with Imagick object.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns a value associated with the specified key

  • « Imagick::getNumberImages
  • Imagick::getPackageName »
  • PHP Manual
  • Imagick
  • Returns a value associated with the specified key

Imagick::getOption

(PECL imagick 2, PECL imagick 3)

Imagick::getOption — Returns a value associated with the specified key

Beschreibung

public Imagick::getOption ( string $key ) : string

Returns a value associated within the object for the specified key.

Parameter-Liste

key

The name of the option

Rückgabewerte

Returns a value associated with a wand and the specified key.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the ImageMagick package name

  • « Imagick::getOption
  • Imagick::getPage »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick package name

Imagick::getPackageName

(PECL imagick 2, PECL imagick 3)

Imagick::getPackageName — Returns the ImageMagick package name

Beschreibung

public static Imagick::getPackageName ( ) : string

Returns the ImageMagick package name.

Rückgabewerte

Returns the ImageMagick package name as a string.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the page geometry

  • « Imagick::getPackageName
  • Imagick::getPixelIterator »
  • PHP Manual
  • Imagick
  • Returns the page geometry

Imagick::getPage

(PECL imagick 2, PECL imagick 3)

Imagick::getPage — Returns the page geometry

Beschreibung

public Imagick::getPage ( ) : array

Returns the page geometry associated with the Imagick object in an associative array with the keys "width", "height", "x", and "y".

Rückgabewerte

Returns the page geometry associated with the Imagick object in an associative array with the keys "width", "height", "x", and "y", throwing ImagickException on error.


Returns a MagickPixelIterator

  • « Imagick::getPage
  • Imagick::getPixelRegionIterator »
  • PHP Manual
  • Imagick
  • Returns a MagickPixelIterator

Imagick::getPixelIterator

(PECL imagick 2, PECL imagick 3)

Imagick::getPixelIterator — Returns a MagickPixelIterator

Beschreibung

public Imagick::getPixelIterator ( ) : ImagickPixelIterator

Returns a MagickPixelIterator.

Rückgabewerte

Returns an ImagickPixelIterator on success.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::getPixelIterator()

<?php
function getPixelIterator($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = $imagick->getPixelIterator();

    foreach ($imageIterator as $row => $pixels) { /* Loop through pixel rows */
        foreach ($pixels as $column => $pixel) { /* Loop through the pixels in the row (columns) */
            /** @var $pixel \ImagickPixel */
            if ($column % 2) {
                $pixel->setColor("rgba(0, 0, 0, 0)"); /* Paint every second pixel black*/
            }
        }
        $imageIterator->syncIterator(); /* Sync the iterator, this is important to do on each iteration */
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Get an ImagickPixelIterator for an image section

  • « Imagick::getPixelIterator
  • Imagick::getPointSize »
  • PHP Manual
  • Imagick
  • Get an ImagickPixelIterator for an image section

Imagick::getPixelRegionIterator

(PECL imagick 2, PECL imagick 3)

Imagick::getPixelRegionIterator — Get an ImagickPixelIterator for an image section

Beschreibung

public Imagick::getPixelRegionIterator ( int $x , int $y , int $columns , int $rows ) : ImagickPixelIterator

Get an ImagickPixelIterator for an image section.

Parameter-Liste

x

The x-coordinate of the region.

y

The y-coordinate of the region.

columns

The width of the region.

rows

The height of the region.

Rückgabewerte

Returns an ImagickPixelIterator for an image section.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::getPixelRegionIterator() example

Iterate over the pixels in the top left of the image, changing them to be black.

<?php
$im = new Imagick(realpath("./testImage.png"));
$areaIterator = $im->getPixelRegionIterator(0, 0, 10, 10);

foreach ($areaIterator as $rowIterator) {
    foreach ($rowIterator as $pixel) {
        // Paint every pixel black
        $pixel->setColor("rgba(0, 0, 0, 0)");
    }
    $areaIterator->syncIterator();
}
$im->writeImage("./output.png");
?>


Gets point size

  • « Imagick::getPixelRegionIterator
  • Imagick::getQuantum »
  • PHP Manual
  • Imagick
  • Gets point size

Imagick::getPointSize

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::getPointSize — Gets point size

Beschreibung

public Imagick::getPointSize ( ) : float

Returns the objects point size property. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.7 oder höher kompiliert wurde.

Rückgabewerte

Returns a Float containing the point size.

Siehe auch

  • Imagick::setPointSize() - Sets point size


Description

  • « Imagick::getPointSize
  • Imagick::getQuantumDepth »
  • PHP Manual
  • Imagick
  • Description

Imagick::getQuantum

(PECL imagick 3 >= 3.3.0)

Imagick::getQuantum — Description

Beschreibung

public static Imagick::getQuantum ( ) : int

Returns the ImageMagick quantum range as an integer.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Gets the quantum depth

  • « Imagick::getQuantum
  • Imagick::getQuantumRange »
  • PHP Manual
  • Imagick
  • Gets the quantum depth

Imagick::getQuantumDepth

(PECL imagick 2, PECL imagick 3)

Imagick::getQuantumDepth — Gets the quantum depth

Beschreibung

public static Imagick::getQuantumDepth ( ) : array

Returns the Imagick quantum depth.

Rückgabewerte

Returns an array with "quantumDepthLong" and "quantumDepthString" members.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the Imagick quantum range

  • « Imagick::getQuantumDepth
  • Imagick::getRegistry »
  • PHP Manual
  • Imagick
  • Returns the Imagick quantum range

Imagick::getQuantumRange

(PECL imagick 2, PECL imagick 3)

Imagick::getQuantumRange — Returns the Imagick quantum range

Beschreibung

public static Imagick::getQuantumRange ( ) : array

Returns the quantum range for the Imagick instance.

Rückgabewerte

Returns an associative array containing the quantum range as an int ("quantumRangeLong") and as a string ("quantumRangeString").

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Description

  • « Imagick::getQuantumRange
  • Imagick::getReleaseDate »
  • PHP Manual
  • Imagick
  • Description

Imagick::getRegistry

(PECL imagick 3 >= 3.3.0)

Imagick::getRegistry — Description

Beschreibung

public static Imagick::getRegistry ( string $key ) : string

Get the StringRegistry entry for the named key or false if not set.

Parameter-Liste

key

The entry to get.

Rückgabewerte


Returns the ImageMagick release date

  • « Imagick::getRegistry
  • Imagick::getResource »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick release date

Imagick::getReleaseDate

(PECL imagick 2, PECL imagick 3)

Imagick::getReleaseDate — Returns the ImageMagick release date

Beschreibung

public static Imagick::getReleaseDate ( ) : string

Returns the ImageMagick release date as a string.

Rückgabewerte

Returns the ImageMagick release date as a string.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the specified resource's memory usage

  • « Imagick::getReleaseDate
  • Imagick::getResourceLimit »
  • PHP Manual
  • Imagick
  • Returns the specified resource's memory usage

Imagick::getResource

(PECL imagick 2, PECL imagick 3)

Imagick::getResource — Returns the specified resource's memory usage

Beschreibung

public static Imagick::getResource ( int $type ) : int

Returns the specified resource's memory usage in megabytes.

Parameter-Liste

type

Refer to the list of resourcetype constants.

Rückgabewerte

Returns the specified resource's memory usage in megabytes.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the specified resource limit

  • « Imagick::getResource
  • Imagick::getSamplingFactors »
  • PHP Manual
  • Imagick
  • Returns the specified resource limit

Imagick::getResourceLimit

(PECL imagick 2, PECL imagick 3)

Imagick::getResourceLimit — Returns the specified resource limit

Beschreibung

public static Imagick::getResourceLimit ( int $type ) : int

Returns the specified resource limit.

Parameter-Liste

type

One of the resourcetype constants. The unit depends on the type of the resource being limited.

Rückgabewerte

Returns the specified resource limit in megabytes.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Siehe auch

  • Imagick::setResourceLimit() - Sets the limit for a particular resource


Gets the horizontal and vertical sampling factor

  • « Imagick::getResourceLimit
  • Imagick::getSize »
  • PHP Manual
  • Imagick
  • Gets the horizontal and vertical sampling factor

Imagick::getSamplingFactors

(PECL imagick 2, PECL imagick 3)

Imagick::getSamplingFactors — Gets the horizontal and vertical sampling factor

Beschreibung

public Imagick::getSamplingFactors ( ) : array

Gets the horizontal and vertical sampling factor.

Rückgabewerte

Returns an associative array with the horizontal and vertical sampling factors of the image.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the size associated with the Imagick object

  • « Imagick::getSamplingFactors
  • Imagick::getSizeOffset »
  • PHP Manual
  • Imagick
  • Returns the size associated with the Imagick object

Imagick::getSize

(PECL imagick 2, PECL imagick 3)

Imagick::getSize — Returns the size associated with the Imagick object

Beschreibung

public Imagick::getSize ( ) : array

Get the size in pixels associated with the Imagick object, previously set by Imagick::setSize().

Hinweis:

This method just returns the size that was set using Imagick::setSize(). If you want to get the actual width / height of the image, use Imagick::getImageWidth() and Imagick::getImageHeight().

Rückgabewerte

Returns the size associated with the Imagick object as an array with the keys "columns" and "rows".

Beispiele

Beispiel #1 Getting the size of a raw RGB image set at 200x400, after scaling to 400x800 (compared to width / height)

<?php
//Set size first and then load the raw image
$img = new Imagick();
$img->setSize(200, 400);
$img->readImage("image.rgb");

$img->scaleImage(400, 800);

$size = $img->getSize();
print_r($size);

echo "$img->getImageWidth()."x".$img->getImageHeight();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [columns] => 200
    [rows] => 400
)
400x800


Returns the size offset

  • « Imagick::getSize
  • Imagick::getVersion »
  • PHP Manual
  • Imagick
  • Returns the size offset

Imagick::getSizeOffset

(PECL imagick 2, PECL imagick 3)

Imagick::getSizeOffset — Returns the size offset

Beschreibung

public Imagick::getSizeOffset ( ) : int

Returns the size offset associated with the Imagick object. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Rückgabewerte

Returns the size offset associated with the Imagick object.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns the ImageMagick API version

  • « Imagick::getSizeOffset
  • Imagick::haldClutImage »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick API version

Imagick::getVersion

(PECL imagick 2, PECL imagick 3)

Imagick::getVersion — Returns the ImageMagick API version

Beschreibung

public static Imagick::getVersion ( ) : array

Returns the ImageMagick API version as a string and as a number.

Rückgabewerte

Returns the ImageMagick API version as a string and as a number.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Replaces colors in the image

  • « Imagick::getVersion
  • Imagick::hasNextImage »
  • PHP Manual
  • Imagick
  • Replaces colors in the image

Imagick::haldClutImage

(PECL imagick 3)

Imagick::haldClutImage — Replaces colors in the image

Beschreibung

public Imagick::haldClutImage ( Imagick $clut , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Replaces colors in the image using a Hald lookup table. Hald images can be created using HALD color coder.

Parameter-Liste

clut

Imagick object containing the Hald lookup image.

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::haldClutImage()

<?php
function haldClutImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagickPalette = new \Imagick(realpath("images/hald/hald_8.png"));
    $imagickPalette->sepiatoneImage(55);
    $imagick->haldClutImage($imagickPalette);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Checks if the object has more images

  • « Imagick::haldClutImage
  • Imagick::hasPreviousImage »
  • PHP Manual
  • Imagick
  • Checks if the object has more images

Imagick::hasNextImage

(PECL imagick 2, PECL imagick 3)

Imagick::hasNextImage — Checks if the object has more images

Beschreibung

public Imagick::hasNextImage ( ) : bool

Returns true if the object has more images when traversing the list in the forward direction.

Rückgabewerte

Returns true if the object has more images when traversing the list in the forward direction, returns false if there are none.


Checks if the object has a previous image

  • « Imagick::hasNextImage
  • Imagick::identifyFormat »
  • PHP Manual
  • Imagick
  • Checks if the object has a previous image

Imagick::hasPreviousImage

(PECL imagick 2, PECL imagick 3)

Imagick::hasPreviousImage — Checks if the object has a previous image

Beschreibung

public Imagick::hasPreviousImage ( ) : bool

Returns true if the object has more images when traversing the list in the reverse direction

Rückgabewerte

Returns true if the object has more images when traversing the list in the reverse direction, returns false if there are none.


Description

  • « Imagick::hasPreviousImage
  • Imagick::identifyImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::identifyFormat

(PECL imagick 3 >= 3.3.0)

Imagick::identifyFormat — Description

Beschreibung

public Imagick::identifyFormat ( string $embedText ) : string|false

Replaces any embedded formatting characters with the appropriate image property and returns the interpreted text. See http://www.imagemagick.org/script/escape.php for escape sequences.

Parameter-Liste

embedText

A string containing formatting sequences e.g. "Trim box: %@ number of unique colors: %k".

Rückgabewerte

Returns formatIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Imagick::identifyFormat()

<?php
        $output = "Output of 'Trim box: %@ number of unique colors: %k' is: <br/>";
        $imagick = new \Imagick(realpath("./images/artifact/mask.png"));
        $output .= $imagick->identifyFormat("Trim box: %@ number of unique colors: %k");

?>


Identifies an image and fetches attributes

  • « Imagick::identifyFormat
  • Imagick::implodeImage »
  • PHP Manual
  • Imagick
  • Identifies an image and fetches attributes

Imagick::identifyImage

(PECL imagick 2, PECL imagick 3)

Imagick::identifyImage — Identifies an image and fetches attributes

Beschreibung

public Imagick::identifyImage ( bool $appendRawOutput = false ) : array

Identifies an image and returns the attributes. Attributes include the image width, height, size, and others.

Parameter-Liste

appendRawOutput

If true then the raw output is appended to the array.

Rückgabewerte

Identifies an image and returns the attributes. Attributes include the image width, height, size, and others.

Beispiel #1 Example Result Format

Array
(
    [imageName] => /some/path/image.jpg
    [format] => JPEG (Joint Photographic Experts Group JFIF format)
    [geometry] => Array
        (
            [width] => 90
            [height] => 90
        )

    [type] => TrueColor
    [colorSpace] => RGB
    [resolution] => Array
        (
            [x] => 300
            [y] => 300
        )

    [units] => PixelsPerInch
    [fileSize] => 1.88672kb
    [compression] => JPEG
    [signature] => 9a6dc8f604f97d0d691c0286176ddf992e188f0bebba98494b2146ee2d7118da
)

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Creates a new image as a copy

  • « Imagick::identifyImage
  • Imagick::importImagePixels »
  • PHP Manual
  • Imagick
  • Creates a new image as a copy

Imagick::implodeImage

(PECL imagick 2, PECL imagick 3)

Imagick::implodeImage — Creates a new image as a copy

Beschreibung

public Imagick::implodeImage ( float $radius ) : bool

Creates a new image that is a copy of an existing one with the image pixels "imploded" by the specified percentage.

Parameter-Liste

radius

The radius of the implode

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::implodeImage()

<?php
function implodeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->implodeImage(0.0001);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();

}

?>


Imports image pixels

  • « Imagick::implodeImage
  • Imagick::inverseFourierTransformImage »
  • PHP Manual
  • Imagick
  • Imports image pixels

Imagick::importImagePixels

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::importImagePixels — Imports image pixels

Beschreibung

public Imagick::importImagePixels ( int $x , int $y , int $width , int $height , string $map , int $storage , array $pixels ) : bool

Imports pixels from an array into an image. The map is usually 'RGB'. This method imposes the following constraints for the parameters: amount of pixels in the array must match width x height x length of the map. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.5 oder höher kompiliert wurde.

Parameter-Liste

x

The image x position

y

The image y position

width

The image width

height

The image height

map

Map of pixel ordering as a string. This can be for example RGB. The value can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.

storage

The pixel storage method. Refer to this list of pixel constants.

pixels

The array of pixels

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::importImagePixels() example

<?php

/* Generate array of pixels. 2000 pixels per color stripe */
$count = 2000 * 3;

$pixels =
   array_merge(array_pad(array(), $count, 0),
               array_pad(array(), $count, 255),
               array_pad(array(), $count, 0),
               array_pad(array(), $count, 255),
               array_pad(array(), $count, 0));

/* Width and height. The area is amount of pixels divided
   by three. Three comes from 'RGB', three values per pixel */
$width = $height = pow((count($pixels) / 3), 0.5);

/* Create empty image */
$im = new Imagick();
$im->newImage($width, $height, 'gray');

/* Import the pixels into image.
   width * height * strlen("RGB") must match count($pixels) */
$im->importImagePixels(0, 0, $width, $height, "RGB", Imagick::PIXEL_CHAR, $pixels);

/* output as jpeg image */
$im->setImageFormat('jpg');
header("Content-Type: image/jpg");
echo $im;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Output of example : Imagick::importImagePixels()


Description

  • « Imagick::importImagePixels
  • Imagick::labelImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::inverseFourierTransformImage

(PECL imagick 3 >= 3.3.0)

Imagick::inverseFourierTransformImage — Description

Beschreibung

public Imagick::inverseFourierTransformImage ( Imagick $complement , bool $magnitude ) : bool

Implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

complement

The second image to combine with this one to form either the magnitude / phase or real / imaginary image pair.

magnitude

If true, combine as magnitude / phase pair otherwise a real / imaginary image pair.

Rückgabewerte

Liefert true bei Erfolg.


Adds a label to an image

  • « Imagick::inverseFourierTransformImage
  • Imagick::levelImage »
  • PHP Manual
  • Imagick
  • Adds a label to an image

Imagick::labelImage

(PECL imagick 2, PECL imagick 3)

Imagick::labelImage — Adds a label to an image

Beschreibung

public Imagick::labelImage ( string $label ) : bool

Adds a label to an image.

Parameter-Liste

label

The label to add

Rückgabewerte

Liefert true bei Erfolg.


Adjusts the levels of an image

  • « Imagick::labelImage
  • Imagick::linearStretchImage »
  • PHP Manual
  • Imagick
  • Adjusts the levels of an image

Imagick::levelImage

(PECL imagick 2, PECL imagick 3)

Imagick::levelImage — Adjusts the levels of an image

Beschreibung

public Imagick::levelImage ( float $blackPoint , float $gamma , float $whitePoint , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Adjusts the levels of an image by scaling the colors falling between specified white and black points to the full available quantum range. The parameters provided represent the black, mid, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. Mid point specifies a gamma correction to apply to the image. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

Parameter-Liste

blackPoint

The image black point

gamma

The gamma value

whitePoint

The image white point

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::levelImage()

<?php
function levelImage($blackPoint, $gamma, $whitePoint) {
    $imagick = new \Imagick();
    $imagick->newPseudoimage(500, 500, 'gradient:black-white');

    $imagick->setFormat('png');
    $quantum = $imagick->getQuantum();
    $imagick->levelImage($blackPoint / 100 , $gamma, $quantum * $whitePoint / 100);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Stretches with saturation the image intensity

  • « Imagick::levelImage
  • Imagick::liquidRescaleImage »
  • PHP Manual
  • Imagick
  • Stretches with saturation the image intensity

Imagick::linearStretchImage

(PECL imagick 2, PECL imagick 3)

Imagick::linearStretchImage — Stretches with saturation the image intensity

Beschreibung

public Imagick::linearStretchImage ( float $blackPoint , float $whitePoint ) : bool

Stretches with saturation the image intensity.

Parameter-Liste

blackPoint

The image black point

whitePoint

The image white point

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::linearStretchImage()

<?php
function linearStretchImage($imagePath, $blackThreshold, $whiteThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $pixels = $imagick->getImageWidth() * $imagick->getImageHeight();
    $imagick->linearStretchImage($blackThreshold * $pixels, $whiteThreshold * $pixels);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Animates an image or images

  • « Imagick::linearStretchImage
  • Imagick::listRegistry »
  • PHP Manual
  • Imagick
  • Animates an image or images

Imagick::liquidRescaleImage

(PECL imagick 2 >= 2.2.0, PECL imagick 3)

Imagick::liquidRescaleImage — Animates an image or images

Beschreibung

public Imagick::liquidRescaleImage ( int $width , int $height , float $delta_x , float $rigidity ) : bool

This method scales the images using liquid rescaling method. This method is an implementation of a technique called seam carving. In order for this method to work as expected ImageMagick must be compiled with liblqr support. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.9 oder höher kompiliert wurde.

Parameter-Liste

width

The width of the target size

height

The height of the target size

delta_x

How much the seam can traverse on x-axis. Passing 0 causes the seams to be straight.

rigidity

Introduces a bias for non-straight seams. This parameter is typically 0.

Rückgabewerte

Liefert true bei Erfolg.

Siehe auch

  • Imagick::resizeImage() - Scales an image


Description

  • « Imagick::liquidRescaleImage
  • Imagick::magnifyImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::listRegistry

(PECL imagick 3 >= 3.3.0)

Imagick::listRegistry — Description

Beschreibung

public static Imagick::listRegistry ( ) : array

List all the registry settings. Returns an array of all the key/value pairs in the registry

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array containing the key/values from the registry.


Scales an image proportionally 2x

  • « Imagick::listRegistry
  • Imagick::mapImage »
  • PHP Manual
  • Imagick
  • Scales an image proportionally 2x

Imagick::magnifyImage

(PECL imagick 2, PECL imagick 3)

Imagick::magnifyImage — Scales an image proportionally 2x

Beschreibung

public Imagick::magnifyImage ( ) : bool

Is a convenience method that scales an image proportionally to twice its original size.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::magnifyImage()

<?php
function magnifyImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->magnifyImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Replaces the colors of an image with the closest color from a reference image

  • « Imagick::magnifyImage
  • Imagick::matteFloodfillImage »
  • PHP Manual
  • Imagick
  • Replaces the colors of an image with the closest color from a reference image

Imagick::mapImage

(PECL imagick 2, PECL imagick 3)

Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::mapImage ( Imagick $map , bool $dither ) : bool

Parameter-Liste

map

dither

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Changes the transparency value of a color

  • « Imagick::mapImage
  • Imagick::medianFilterImage »
  • PHP Manual
  • Imagick
  • Changes the transparency value of a color

Imagick::matteFloodfillImage

(PECL imagick 2, PECL imagick 3)

Imagick::matteFloodfillImage — Changes the transparency value of a color

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::matteFloodfillImage ( float $alpha , float $fuzz , mixed $bordercolor , int $x , int $y ) : bool

Changes the transparency value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the transparency value is changed for any neighbor pixel that does not match the bordercolor member of image.

Parameter-Liste

alpha

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

bordercolor

An ImagickPixel object or string representing the border color.

x

The starting x coordinate of the operation.

y

The starting y coordinate of the operation.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as the third parameter. Previous versions allow only an ImagickPixel object.


Applies a digital filter

  • « Imagick::matteFloodfillImage
  • Imagick::mergeImageLayers »
  • PHP Manual
  • Imagick
  • Applies a digital filter

Imagick::medianFilterImage

(PECL imagick 2, PECL imagick 3)

Imagick::medianFilterImage — Applies a digital filter

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::medianFilterImage ( float $radius ) : bool

Applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.

Parameter-Liste

radius

The radius of the pixel neighborhood.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::medianFilterImage()

<?php
function medianFilterImage($radius, $imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    @$imagick->medianFilterImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Merges image layers

  • « Imagick::medianFilterImage
  • Imagick::minifyImage »
  • PHP Manual
  • Imagick
  • Merges image layers

Imagick::mergeImageLayers

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::mergeImageLayers — Merges image layers

Beschreibung

public Imagick::mergeImageLayers ( int $layer_method ) : Imagick

Merges image layers into one. This method is useful when working with image formats that use multiple layers such as PSD. The merging is controlled using the layer_method which defines how the layers are merged. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.7 oder höher kompiliert wurde.

Parameter-Liste

layer_method

One of the Imagick::LAYERMETHOD_* constants

Rückgabewerte

Returns an Imagick object containing the merged image.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Siehe auch

  • Imagick::flattenImages() - Merges a sequence of images

Beispiele

Beispiel #1 Imagick::mergeImageLayers()

<?php
function mergeImageLayers($layerMethodType, $imagePath1, $imagePath2) {

    $imagick = new \Imagick(realpath($imagePath));

    $imagick2 = new \Imagick(realpath($imagePath2));
    $imagick->addImage($imagick2);
    $imagick->setImageFormat('png');

    $result = $imagick->mergeImageLayers($layerMethodType);
    header("Content-Type: image/png");
    echo $result->getImageBlob();
}

?>


Scales an image proportionally to half its size

  • « Imagick::mergeImageLayers
  • Imagick::modulateImage »
  • PHP Manual
  • Imagick
  • Scales an image proportionally to half its size

Imagick::minifyImage

(PECL imagick 2, PECL imagick 3)

Imagick::minifyImage — Scales an image proportionally to half its size

Beschreibung

public Imagick::minifyImage ( ) : bool

Is a convenience method that scales an image proportionally to one-half its original size

Rückgabewerte

Liefert true bei Erfolg.


Control the brightness, saturation, and hue

  • « Imagick::minifyImage
  • Imagick::montageImage »
  • PHP Manual
  • Imagick
  • Control the brightness, saturation, and hue

Imagick::modulateImage

(PECL imagick 2, PECL imagick 3)

Imagick::modulateImage — Control the brightness, saturation, and hue

Beschreibung

public Imagick::modulateImage ( float $brightness , float $saturation , float $hue ) : bool

Lets you control the brightness, saturation, and hue of an image. Hue is the percentage of absolute rotation from the current position. For example 50 results in a counter-clockwise rotation of 90 degrees, 150 results in a clockwise rotation of 90 degrees, with 0 and 200 both resulting in a rotation of 180 degrees.

Parameter-Liste

brightness

saturation

hue

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::modulateImage()

<?php
function modulateImage($imagePath, $hue, $brightness, $saturation) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->modulateImage($brightness, $saturation, $hue);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a composite image

  • « Imagick::modulateImage
  • Imagick::morphImages »
  • PHP Manual
  • Imagick
  • Creates a composite image

Imagick::montageImage

(PECL imagick 2, PECL imagick 3)

Imagick::montageImage — Creates a composite image

Beschreibung

public Imagick::montageImage ( ImagickDraw $draw , string $tile_geometry , string $thumbnail_geometry , int $mode , string $frame ) : Imagick

Creates a composite image by combining several separate images. The images are tiled on the composite image with the name of the image optionally appearing just below the individual tile.

Parameter-Liste

draw

The font name, size, and color are obtained from this object.

tile_geometry

The number of tiles per row and page (e.g. 6x4+0+0).

thumbnail_geometry

Preferred image size and border size of each thumbnail (e.g. 120x120+4+3>).

mode

Thumbnail framing mode, see Montage Mode constants.

frame

Surround the image with an ornamental border (e.g. 15x15+3+3). The frame color is that of the thumbnail's matte color.

Rückgabewerte

Liefert true bei Erfolg.


Method morphs a set of images

  • « Imagick::montageImage
  • Imagick::morphology »
  • PHP Manual
  • Imagick
  • Method morphs a set of images

Imagick::morphImages

(PECL imagick 2, PECL imagick 3)

Imagick::morphImages — Method morphs a set of images

Beschreibung

public Imagick::morphImages ( int $number_frames ) : Imagick

Method morphs a set of images. Both the image pixels and size are linearly interpolated to give the appearance of a meta-morphosis from one image to the next.

Parameter-Liste

number_frames

The number of in-between images to generate.

Rückgabewerte

This method returns a new Imagick object on success. Wirf eine ImagickException bei einem Fehler.


Description

  • « Imagick::morphImages
  • Imagick::mosaicImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::morphology

(PECL imagick 3 >= 3.3.0)

Imagick::morphology — Description

Beschreibung

public Imagick::morphology ( int $morphologyMethod , int $iterations , ImagickKernel $ImagickKernel , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Applies a user supplied kernel to the image according to the given morphology method.

Parameter-Liste

morphologyMethod

Which morphology method to use one of the \Imagick::MORPHOLOGY_* constants.

iterations

The number of iteration to apply the morphology function. A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1.

ImagickKernel

channel

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Convolve Imagick::morphology()

<?php
        $imagick = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_GAUSSIAN, "5,1");
        $imagick->morphology(\Imagick::MORPHOLOGY_CONVOLVE, 2, $kernel);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();

?>

Beispiel #2 Correlate Imagick::morphology()

<?php

        // Top-left pixel must be black
        // Bottom right pixel must be white
        // We don't care about the rest.

        $imagick = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromMatrix(self::$correlateMatrix, [2, 2]);
        $imagick->morphology(\Imagick::MORPHOLOGY_CORRELATE, 1, $kernel);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();

?>

Beispiel #3 Erode Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_ERODE, 2, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #4 Erode Intensity Imagick::morphology()

<?php
        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "1");
        $canvas->morphology(\Imagick::MORPHOLOGY_ERODE_INTENSITY, 2, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #5 Dilate Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_DILATE, 4, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #6 Dilate intensity Imagick::morphology()

<?php
        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "1");
        $canvas->morphology(\Imagick::MORPHOLOGY_DILATE_INTENSITY, 4, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #7 Distance with Chebyshev kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_CHEBYSHEV, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #8 Distance with Manhattan kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_MANHATTAN, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #9 Distance with ocatagonal kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGONAL, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #10 Distance with Euclidean kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_EUCLIDEAN, "4");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #11 Edge Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_EDGE, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #12 Open Imagick::morphology()

<?php
        // As a result you will see that 'Open' smoothed the outline, by rounding off any sharp points, and remove any parts that is smaller than the shape used. It will also disconnect or 'open' any thin bridges.
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_OPEN, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #13 Open intensity Imagick::morphology()

<?php
        // As a result you will see that 'Open' smoothed the outline, by rounding off any sharp points, and remove any parts that is smaller than the shape used. It will also disconnect or 'open' any thin bridges.

        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_OPEN_INTENSITY, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #14 Close Imagick::morphology()

<?php
        //The basic use of the 'Close' method is to reduce or remove any 'holes' or 'gaps' about the size of the kernel 'Structure Element'. That is 'close' parts of the background that are about that size.
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #15 Close Intensity Imagick::morphology()

<?php
        //The basic use of the 'Close' method is to reduce or remove any 'holes' or 'gaps' about the size of the kernel 'Structure Element'. That is 'close' parts of the background that are about that size.
        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE_INTENSITY, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #16 Smooth Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_SMOOTH, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #17 Edge in Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_EDGE_IN, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #18 Edge out Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_EDGE_OUT, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #19 The 'TopHat' method, or more specifically 'White Top Hat', returns the pixels that were removed by a Opening of the shape, that is the pixels that were removed to round off the points, and the connecting bridged between shapes. Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_TOP_HAT, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #20 The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. Imagick::morphology()

<?php

        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_BOTTOM_HAT, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #21 Hit and Miss Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        //This finds all the pixels with 3 pixels of the right edge
        $matrix = [[1, false, false, 0]];
        $kernel = \ImagickKernel::fromMatrix(
            $matrix,
            [0, 0]
        );
        $canvas->morphology(\Imagick::MORPHOLOGY_HIT_AND_MISS, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #22 Thinning Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $leftEdgeKernel = \ImagickKernel::fromMatrix([[0, 1]], [1, 0]);
        $rightEdgeKernel = \ImagickKernel::fromMatrix([[1, 0]], [0, 0]);
        $leftEdgeKernel->addKernel($rightEdgeKernel);

        $canvas->morphology(\Imagick::MORPHOLOGY_THINNING, 3, $leftEdgeKernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #23 Thicken Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $leftEdgeKernel = \ImagickKernel::fromMatrix([[0, 1]], [1, 0]);
        $rightEdgeKernel = \ImagickKernel::fromMatrix([[1, 0]], [0, 0]);
        $leftEdgeKernel->addKernel($rightEdgeKernel);

        $canvas->morphology(\Imagick::MORPHOLOGY_THICKEN, 3, $leftEdgeKernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #24 Thick to generate a convex hull Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $diamondKernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "1");
        $convexKernel =  \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_CONVEX_HULL, "");

        // The thicken morphology doesn't handle small gaps. We close them
        // with the close morphology.
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $diamondKernel);
        $canvas->morphology(\Imagick::MORPHOLOGY_THICKEN, -1, $convexKernel);
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $diamondKernel);

        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #25 Iterative morphology Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "2");
        $canvas->morphology(\Imagick::MORPHOLOGY_ITERATIVE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Beispiel #26 Helper functon to get an image silhouette Imagick::morphology()

<?php
    private function getCharacterOutline() {

        $imagick = new \Imagick(realpath("./images/character.png"));
        $character = new \Imagick();
        $character->newPseudoImage(
            $imagick->getImageWidth(),
            $imagick->getImageHeight(),
            "canvas:white"
        );
        $canvas = new \Imagick();
        $canvas->newPseudoImage(
            $imagick->getImageWidth(),
            $imagick->getImageHeight(),
            "canvas:black"
        );

        $character->compositeimage(
            $imagick,
            \Imagick::COMPOSITE_COPYOPACITY,
            0, 0
        );
        $canvas->compositeimage(
            $character,
            \Imagick::COMPOSITE_ATOP,
            0, 0
        );
        $canvas->setFormat('png');

        return $canvas;
    }

?>


Forms a mosaic from images

  • « Imagick::morphology
  • Imagick::motionBlurImage »
  • PHP Manual
  • Imagick
  • Forms a mosaic from images

Imagick::mosaicImages

(PECL imagick 2, PECL imagick 3)

Imagick::mosaicImages — Forms a mosaic from images

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::mosaicImages ( ) : Imagick

Inlays an image sequence to form a single coherent picture. It returns a wand with each image in the sequence composited at the location defined by the page offset of the image.

Rückgabewerte

Liefert true bei Erfolg.


Simulates motion blur

  • « Imagick::mosaicImages
  • Imagick::negateImage »
  • PHP Manual
  • Imagick
  • Simulates motion blur

Imagick::motionBlurImage

(PECL imagick 2, PECL imagick 3)

Imagick::motionBlurImage — Simulates motion blur

Beschreibung

public Imagick::motionBlurImage ( float $radius , float $sigma , float $angle , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Simulates motion blur. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

Parameter-Liste

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants. The channel argument affects only if Imagick is compiled against ImageMagick version 6.4.4 or greater.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::motionBlurImage()

<?php
function motionBlurImage($imagePath, $radius, $sigma, $angle, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->motionBlurImage($radius, $sigma, $angle, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Negates the colors in the reference image

  • « Imagick::motionBlurImage
  • Imagick::newImage »
  • PHP Manual
  • Imagick
  • Negates the colors in the reference image

Imagick::negateImage

(PECL imagick 2, PECL imagick 3)

Imagick::negateImage — Negates the colors in the reference image

Beschreibung

public Imagick::negateImage ( bool $gray , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Negates the colors in the reference image. The Grayscale option means that only grayscale values within the image are negated.

Parameter-Liste

gray

Whether to only negate grayscale pixels within the image.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::negateImage()

<?php
function negateImage($imagePath, $grayOnly, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->negateImage($grayOnly, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a new image

  • « Imagick::negateImage
  • Imagick::newPseudoImage »
  • PHP Manual
  • Imagick
  • Creates a new image

Imagick::newImage

(PECL imagick 2, PECL imagick 3)

Imagick::newImage — Creates a new image

Beschreibung

public Imagick::newImage ( int $cols , int $rows , mixed $background , string $format = ? ) : bool

Creates a new image and associates ImagickPixel value as background color

Parameter-Liste

cols

Columns in the new image

rows

Rows in the new image

background

The background color used for this image

format

Image format. This parameter was added in Imagick version 2.0.1.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as the third parameter. Previous versions allow only an ImagickPixel object.

Beispiele

Beispiel #1 Using Imagick::newImage():

Create a new image and display it.

<?php

$image = new Imagick();
$image->newImage(100, 100, new ImagickPixel('red'));
$image->setImageFormat('png');

header('Content-type: image/png');
echo $image;

?>


Creates a new image

  • « Imagick::newImage
  • Imagick::nextImage »
  • PHP Manual
  • Imagick
  • Creates a new image

Imagick::newPseudoImage

(PECL imagick 2, PECL imagick 3)

Imagick::newPseudoImage — Creates a new image

Beschreibung

public Imagick::newPseudoImage ( int $columns , int $rows , string $pseudoString ) : bool

Creates a new image using ImageMagick pseudo-formats.

Parameter-Liste

columns

columns in the new image

rows

rows in the new image

pseudoString

string containing pseudo image definition.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::newPseudoImage()

<?php
function newPseudoImage($canvasType) {
    $imagick = new \Imagick();
    $imagick->newPseudoImage(300, 300, $canvasType);
    $imagick->setImageFormat("png");
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

//newPseudoImage('gradient:red-rgba(64, 255, 255, 0.5)');
//newPseudoImage("radial-gradient:red-blue");
newPseudoImage("plasma:fractal");

?>


Moves to the next image

  • « Imagick::newPseudoImage
  • Imagick::normalizeImage »
  • PHP Manual
  • Imagick
  • Moves to the next image

Imagick::nextImage

(PECL imagick 2, PECL imagick 3)

Imagick::nextImage — Moves to the next image

Beschreibung

public Imagick::nextImage ( ) : bool

Associates the next image in the image list with an Imagick object.

Rückgabewerte

Liefert true bei Erfolg.


Enhances the contrast of a color image

  • « Imagick::nextImage
  • Imagick::oilPaintImage »
  • PHP Manual
  • Imagick
  • Enhances the contrast of a color image

Imagick::normalizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::normalizeImage — Enhances the contrast of a color image

Beschreibung

public Imagick::normalizeImage ( int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available.

Parameter-Liste

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::normalizeImage()

<?php
function normalizeImage($imagePath, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $original = clone $imagick;
    $original->cropimage($original->getImageWidth() / 2, $original->getImageHeight(), 0, 0);
    $imagick->normalizeImage($channel);
    $imagick->compositeimage($original, \Imagick::COMPOSITE_ATOP, 0, 0);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Simulates an oil painting

  • « Imagick::normalizeImage
  • Imagick::opaquePaintImage »
  • PHP Manual
  • Imagick
  • Simulates an oil painting

Imagick::oilPaintImage

(PECL imagick 2, PECL imagick 3)

Imagick::oilPaintImage — Simulates an oil painting

Beschreibung

public Imagick::oilPaintImage ( float $radius ) : bool

Applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

Parameter-Liste

radius

The radius of the circular neighborhood.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::oilPaintImage()

<?php
function oilPaintImage($imagePath, $radius) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->oilPaintImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Changes the color value of any pixel that matches target

  • « Imagick::oilPaintImage
  • Imagick::optimizeImageLayers »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::opaquePaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::opaquePaintImage — Changes the color value of any pixel that matches target

Beschreibung

public Imagick::opaquePaintImage ( mixed $target , mixed $fill , float $fuzz , bool $invert , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Changes any pixel that matches color with the color defined by fill. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.8 oder höher kompiliert wurde.

Parameter-Liste

target

ImagickPixel object or a string containing the color to change

fill

The replacement color

fuzz

Die Menge an Ungenauigkeit. Wird dieser Wert z.B. auf 10 gesetzt, so werden die Farbe Rot sowohl bei Intensitäten von 100 als auch 102 als identisch betrachtet.

invert

If true paints any pixel that does not match the target color.

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Liefert true bei Erfolg.


Removes repeated portions of images to optimize

  • « Imagick::opaquePaintImage
  • Imagick::orderedPosterizeImage »
  • PHP Manual
  • Imagick
  • Removes repeated portions of images to optimize

Imagick::optimizeImageLayers

(PECL imagick 2, PECL imagick 3)

Imagick::optimizeImageLayers — Removes repeated portions of images to optimize

Beschreibung

public Imagick::optimizeImageLayers ( ) : bool

Compares each image the GIF disposed forms of the previous image in the sequence. From this it attempts to select the smallest cropped image to replace each frame, while preserving the results of the animation. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Using Imagick::optimizeImageLayers()

Reading, optimizing and writing a GIF image

<?php
/* create new imagick object */
$im = new Imagick("test.gif");

/* optimize the image layers */
$im->optimizeImageLayers();

/* write the image back */
$im->writeImages("test_optimized.gif", true);
?>

Siehe auch

  • Imagick::compareImageLayers() - Returns the maximum bounding region between images
  • Imagick::writeImages() - Writes an image or image sequence
  • Imagick::writeImage() - Writes an image to the specified filename


Performs an ordered dither

  • « Imagick::optimizeImageLayers
  • Imagick::paintFloodfillImage »
  • PHP Manual
  • Imagick
  • Performs an ordered dither

Imagick::orderedPosterizeImage

(PECL imagick 2 >= 2.2.2, PECL imagick 3)

Imagick::orderedPosterizeImage — Performs an ordered dither

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::orderedPosterizeImage ( string $threshold_map , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Performs an ordered dither based on a number of pre-defined dithering threshold maps, but over multiple intensity levels, which can be different for different channels, according to the input arguments. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.1 oder höher kompiliert wurde.

Parameter-Liste

threshold_map

A string containing the name of the threshold dither map to use

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::orderedPosterizeImage()

<?php
function orderedPosterizeImage($imagePath, $orderedPosterizeType) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->orderedPosterizeImage($orderedPosterizeType);
    $imagick->setImageFormat('png');

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

//orderedPosterizeImage($imagePath, 'o4x4,3,3');
//orderedPosterizeImage($imagePath, 'o8x8,6,6');
orderedPosterizeImage($imagePath, 'h8x8a');

?>


Changes the color value of any pixel that matches target

  • « Imagick::orderedPosterizeImage
  • Imagick::paintOpaqueImage »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::paintFloodfillImage

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::paintFloodfillImage — Changes the color value of any pixel that matches target

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::paintFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Changes the color value of any pixel that matches target and is an immediate neighbor. As of ImageMagick 6.3.8 this method has been deprecated and Imagick::floodfillPaintImage() should be used instead.

Parameter-Liste

fill

ImagickPixel object or a string containing the fill color

fuzz

The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.

bordercolor

ImagickPixel object or a string containing the border color

x

X start position of the floodfill

y

Y start position of the floodfill

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Liefert true bei Erfolg.


Change any pixel that matches color

  • « Imagick::paintFloodfillImage
  • Imagick::paintTransparentImage »
  • PHP Manual
  • Imagick
  • Change any pixel that matches color

Imagick::paintOpaqueImage

(PECL imagick 2, PECL imagick 3)

Imagick::paintOpaqueImage — Change any pixel that matches color

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::paintOpaqueImage ( mixed $target , mixed $fill , float $fuzz , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Changes any pixel that matches color with the color defined by fill.

Parameter-Liste

target

Change this target color to the fill color within the image. An ImagickPixel object or a string representing the target color.

fill

An ImagickPixel object or a string representing the fill color.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as first and second parameter. Previous versions allow only an ImagickPixel object.


Changes any pixel that matches color with the color defined by fill

  • « Imagick::paintOpaqueImage
  • Imagick::pingImage »
  • PHP Manual
  • Imagick
  • Changes any pixel that matches color with the color defined by fill

Imagick::paintTransparentImage

(PECL imagick 2, PECL imagick 3)

Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::paintTransparentImage ( mixed $target , float $alpha , float $fuzz ) : bool

Changes any pixel that matches color with the color defined by fill.

Parameter-Liste

target

Change this target color to specified opacity value within the image.

alpha

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.


Abrufen von grundlegenden Merkmalen eines Bildes

  • « Imagick::paintTransparentImage
  • Imagick::pingImageBlob »
  • PHP Manual
  • Imagick
  • Abrufen von grundlegenden Merkmalen eines Bildes

Imagick::pingImage

(PECL imagick 2, PECL imagick 3)

Imagick::pingImage — Abrufen von grundlegenden Merkmalen eines Bildes

Beschreibung

Imagick::pingImage ( string $filename ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Diese Methode kann verwendet werden um Bildbreite, -höhe, -größe und -format abzufragen ohne das gesamte Bild in den Speicher zu laden.

Parameter-Liste

filename

Pfad der Datei, die abgefragt werden soll.

Rückgabewerte

Liefert true bei Erfolg.


Quickly fetch attributes

  • « Imagick::pingImage
  • Imagick::pingImageFile »
  • PHP Manual
  • Imagick
  • Quickly fetch attributes

Imagick::pingImageBlob

(PECL imagick 2, PECL imagick 3)

Imagick::pingImageBlob — Quickly fetch attributes

Beschreibung

public Imagick::pingImageBlob ( string $image ) : bool

This method can be used to query image width, height, size, and format without reading the whole image to memory. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

image

A string containing the image.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Using Imagick::pingImageBlob()

Pinging an image from a string

<?php
/* read image contents */
$image = file_get_contents("test.jpg");

/* create new imagick object */
$im = new Imagick();

/* pass the string to the imagick object */
$im->pingImageBlob($image);

/* output image width and height */
echo $im->getImageWidth() . 'x' . $im->getImageHeight();
?>

Siehe auch

  • Imagick::pingImage() - Abrufen von grundlegenden Merkmalen eines Bildes
  • Imagick::pingImageFile() - Get basic image attributes in a lightweight manner
  • Imagick::readImage() - Reads image from filename
  • Imagick::readImageBlob() - Reads image from a binary string
  • Imagick::readImageFile() - Reads image from open filehandle


Get basic image attributes in a lightweight manner

  • « Imagick::pingImageBlob
  • Imagick::polaroidImage »
  • PHP Manual
  • Imagick
  • Get basic image attributes in a lightweight manner

Imagick::pingImageFile

(PECL imagick 2, PECL imagick 3)

Imagick::pingImageFile — Get basic image attributes in a lightweight manner

Beschreibung

public Imagick::pingImageFile ( resource $filehandle , string $fileName = ? ) : bool

This method can be used to query image width, height, size, and format without reading the whole image to memory. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

filehandle

An open filehandle to the image.

fileName

Optional filename for this image.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Using Imagick::pingImageFile()

Opening a remote location

<?php
/* fopen a remote location */
$fp = fopen("http://example.com/test.jpg");

/* create new imagick object */
$im = new Imagick();

/* pass the handle to imagick */
$im->pingImageFile($fp);
?>

Siehe auch

  • Imagick::pingImage() - Abrufen von grundlegenden Merkmalen eines Bildes
  • Imagick::pingImageBlob() - Quickly fetch attributes
  • Imagick::readImage() - Reads image from filename
  • Imagick::readImageBlob() - Reads image from a binary string
  • Imagick::readImageFile() - Reads image from open filehandle


Simulates a Polaroid picture

  • « Imagick::pingImageFile
  • Imagick::posterizeImage »
  • PHP Manual
  • Imagick
  • Simulates a Polaroid picture

Imagick::polaroidImage

(PECL imagick 2, PECL imagick 3)

Imagick::polaroidImage — Simulates a Polaroid picture

Beschreibung

public Imagick::polaroidImage ( ImagickDraw $properties , float $angle ) : bool

Simulates a Polaroid picture. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.2 oder höher kompiliert wurde.

Parameter-Liste

properties

The polaroid properties

angle

The polaroid angle

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 A Imagick::polaroidImage() example

An example of using Imagick::polaroidImage()

<?php
/* Create the object */
$image = new Imagick('source.png');

/* Set the opacity */
$image->polaroidImage(new ImagickDraw(), 25);

/* output the image */
header('Content-type: image/png');
echo $image;

?>


Reduces the image to a limited number of color level

  • « Imagick::polaroidImage
  • Imagick::previewImages »
  • PHP Manual
  • Imagick
  • Reduces the image to a limited number of color level

Imagick::posterizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::posterizeImage — Reduces the image to a limited number of color level

Beschreibung

public Imagick::posterizeImage ( int $levels , bool $dither ) : bool

Reduces the image to a limited number of color level.

Parameter-Liste

levels

dither

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::posterizeImage()

<?php
function posterizeImage($imagePath, $posterizeType, $numberLevels) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->posterizeImage($numberLevels, $posterizeType);
    $imagick->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

posterizeImage($imagePath, \Imagick::DITHERMETHOD_RIEMERSMA, 8);

?>


Quickly pin-point appropriate parameters for image processing

  • « Imagick::posterizeImage
  • Imagick::previousImage »
  • PHP Manual
  • Imagick
  • Quickly pin-point appropriate parameters for image processing

Imagick::previewImages

(PECL imagick 2, PECL imagick 3)

Imagick::previewImages — Quickly pin-point appropriate parameters for image processing

Beschreibung

public Imagick::previewImages ( int $preview ) : bool

Tiles 9 thumbnails of the specified image with an image processing operation applied at varying strengths. This is helpful to quickly pin-point an appropriate parameter for an image processing operation.

Parameter-Liste

preview

Preview type. See Preview type constants

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Move to the previous image in the object

  • « Imagick::previewImages
  • Imagick::profileImage »
  • PHP Manual
  • Imagick
  • Move to the previous image in the object

Imagick::previousImage

(PECL imagick 2, PECL imagick 3)

Imagick::previousImage — Move to the previous image in the object

Beschreibung

public Imagick::previousImage ( ) : bool

Assocates the previous image in an image list with the Imagick object.

Rückgabewerte

Liefert true bei Erfolg.


Adds or removes a profile from an image

  • « Imagick::previousImage
  • Imagick::quantizeImage »
  • PHP Manual
  • Imagick
  • Adds or removes a profile from an image

Imagick::profileImage

(PECL imagick 2, PECL imagick 3)

Imagick::profileImage — Adds or removes a profile from an image

Beschreibung

public Imagick::profileImage ( string $name , string $profile ) : bool

Adds or removes a ICC, IPTC, or generic profile from an image. If the profile is NULL, it is removed from the image otherwise added. Use a name of '*' and a profile of NULL to remove all profiles from the image.

Parameter-Liste

name

profile

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Analyzes the colors within a reference image

  • « Imagick::profileImage
  • Imagick::quantizeImages »
  • PHP Manual
  • Imagick
  • Analyzes the colors within a reference image

Imagick::quantizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::quantizeImage — Analyzes the colors within a reference image

Beschreibung

public Imagick::quantizeImage ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError ) : bool

Parameter-Liste

numberColors

colorspace

treedepth

dither

measureError

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::quantizeImage()

<?php
function quantizeImage($imagePath, $numberColors, $colorSpace, $treeDepth, $dither) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->quantizeImage($numberColors, $colorSpace, $treeDepth, $dither, false);
    $imagick->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Analyzes the colors within a sequence of images

  • « Imagick::quantizeImage
  • Imagick::queryFontMetrics »
  • PHP Manual
  • Imagick
  • Analyzes the colors within a sequence of images

Imagick::quantizeImages

(PECL imagick 2, PECL imagick 3)

Imagick::quantizeImages — Analyzes the colors within a sequence of images

Beschreibung

public Imagick::quantizeImages ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError ) : bool

Parameter-Liste

numberColors

colorspace

treedepth

dither

measureError

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Returns an array representing the font metrics

  • « Imagick::quantizeImages
  • Imagick::queryFonts »
  • PHP Manual
  • Imagick
  • Returns an array representing the font metrics

Imagick::queryFontMetrics

(PECL imagick 2, PECL imagick 3)

Imagick::queryFontMetrics — Returns an array representing the font metrics

Beschreibung

public Imagick::queryFontMetrics ( ImagickDraw $properties , string $text , bool $multiline = ? ) : array

Returns a multi-dimensional array representing the font metrics.

Parameter-Liste

properties

ImagickDraw object containing font properties

text

The text

multiline

Multiline parameter. If left empty it is autodetected

Rückgabewerte

Returns a multi-dimensional array representing the font metrics.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Using Imagick::queryFontMetrics():

Query the metrics for the text and dump the results on the screen.

<?php
/* Create a new Imagick object */
$im = new Imagick();

/* Create an ImagickDraw object */
$draw = new ImagickDraw();

/* Set the font */
$draw->setFont('/path/to/font.ttf');

/* Dump the font metrics, autodetect multiline */
var_dump($im->queryFontMetrics($draw, "Hello World!"));
?>


Returns the configured fonts

  • « Imagick::queryFontMetrics
  • Imagick::queryFormats »
  • PHP Manual
  • Imagick
  • Returns the configured fonts

Imagick::queryFonts

(PECL imagick 2, PECL imagick 3)

Imagick::queryFonts — Returns the configured fonts

Beschreibung

public static Imagick::queryFonts ( string $pattern = "*" ) : array

Returns the configured fonts.

Parameter-Liste

pattern

The query pattern

Rückgabewerte

Returns an array containing the configured fonts.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::queryFonts()

<?php
        $output = '';
        $output .= "Fonts that match 'Helvetica*' are:<br/>";

        $fontList = \Imagick::queryFonts("Helvetica*");

        foreach ($fontList as $fontName) {
            $output .= '<li>'. $fontName."</li>";
        }

        return $output;

?>


Returns formats supported by Imagick

  • « Imagick::queryFonts
  • Imagick::radialBlurImage »
  • PHP Manual
  • Imagick
  • Returns formats supported by Imagick

Imagick::queryFormats

(PECL imagick 2, PECL imagick 3)

Imagick::queryFormats — Returns formats supported by Imagick

Beschreibung

public static Imagick::queryFormats ( string $pattern = "*" ) : array

Returns formats supported by Imagick.

Parameter-Liste

pattern

Rückgabewerte

Returns an array containing the formats supported by Imagick.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::queryFormats()

<?php
    function render() {
        $output = "";
        $input = \Imagick::queryformats();
        $columns = 6;

        $output .= "<table border='2'>";

        for ($i=0; $i < count($input); $i += $columns) {
            $output .= "<tr>";
            for ($c=0; $c<$columns; $c++) {
                $output .= "<td>";
                if (($i + $c) <  count($input)) {
                    $output .= $input[$i + $c];
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

?>


Radial blurs an image

  • « Imagick::queryFormats
  • Imagick::raiseImage »
  • PHP Manual
  • Imagick
  • Radial blurs an image

Imagick::radialBlurImage

(PECL imagick 2, PECL imagick 3)

Imagick::radialBlurImage — Radial blurs an image

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::radialBlurImage ( float $angle , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Radial blurs an image.

Parameter-Liste

angle

channel

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::radialBlurImage()

<?php
function radialBlurImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    //Blur 3 times with different radii
    $imagick->radialBlurImage(3);
    $imagick->radialBlurImage(5);
    $imagick->radialBlurImage(7);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a simulated 3d button-like effect

  • « Imagick::radialBlurImage
  • Imagick::randomThresholdImage »
  • PHP Manual
  • Imagick
  • Creates a simulated 3d button-like effect

Imagick::raiseImage

(PECL imagick 2, PECL imagick 3)

Imagick::raiseImage — Creates a simulated 3d button-like effect

Beschreibung

public Imagick::raiseImage ( int $width , int $height , int $x , int $y , bool $raise ) : bool

Creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

Parameter-Liste

width

height

x

y

raise

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::raiseImage()

<?php
function raiseImage($imagePath, $width, $height, $x, $y, $raise) {
    $imagick = new \Imagick(realpath($imagePath));

    //x and y do nothing?
    $imagick->raiseImage($width, $height, $x, $y, $raise);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a high-contrast, two-color image

  • « Imagick::raiseImage
  • Imagick::readImage »
  • PHP Manual
  • Imagick
  • Creates a high-contrast, two-color image

Imagick::randomThresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::randomThresholdImage — Creates a high-contrast, two-color image

Beschreibung

public Imagick::randomThresholdImage ( float $low , float $high , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Changes the value of individual pixels based on the intensity of each pixel compared to threshold. The result is a high-contrast, two color image. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

low

The low point

high

The high point

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::randomThresholdImage()

<?php
function randomThresholdimage($imagePath, $lowThreshold, $highThreshold, $channel) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->randomThresholdimage(
        $lowThreshold * \Imagick::getQuantum(),
        $highThreshold * \Imagick::getQuantum(),
        $channel
    );
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Reads image from filename

  • « Imagick::randomThresholdImage
  • Imagick::readImageBlob »
  • PHP Manual
  • Imagick
  • Reads image from filename

Imagick::readImage

(PECL imagick 2, PECL imagick 3)

Imagick::readImage — Reads image from filename

Beschreibung

public Imagick::readImage ( string $filename ) : bool

Reads image from filename

Parameter-Liste

filename

Rückgabewerte

Liefert true bei Erfolg.


Reads image from a binary string

  • « Imagick::readImage
  • Imagick::readImageFile »
  • PHP Manual
  • Imagick
  • Reads image from a binary string

Imagick::readImageBlob

(PECL imagick 2, PECL imagick 3)

Imagick::readImageBlob — Reads image from a binary string

Beschreibung

public Imagick::readImageBlob ( string $image , string $filename = ? ) : bool

Reads image from a binary string

Parameter-Liste

image

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::readImageBlob()

<?php
function readImageBlob() {
    $base64 = "iVBORw0KGgoAAAANSUhEUgAAAM0AAAD
 NCAMAAAAsYgRbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5c
 cllPAAAABJQTFRF3NSmzMewPxIG//ncJEJsldTou1jHgAAAARBJREFUeNrs2EEK
 gCAQBVDLuv+V20dENbMY831wKz4Y/VHb/5RGQ0NDQ0NDQ0NDQ0NDQ0NDQ
 0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0PzMWtyaGhoaGhoaGhoaGhoaGhoxtb0QGho
 aGhoaGhoaGhoaGhoaMbRLEvv50VTQ9OTQ5OpyZ01GpM2g0bfmDQaL7S+ofFC6x
 v3ZpxJiywakzbvd9r3RWPS9I2+MWk0+kbf0Hih9Y17U0nTHibrDDQ0NDQ0NDQ0
 NDQ0NDQ0NTXbRSL/AK72o6GhoaGhoRlL8951vwsNDQ0NDQ1NDc0WyHtDTEhD
 Q0NDQ0NTS5MdGhoaGhoaGhoaGhoaGhoaGhoaGhoaGposzSHAAErMwwQ2HwRQ
 AAAAAElFTkSuQmCC";

    $imageBlob = base64_decode($base64);

    $imagick = new Imagick();
    $imagick->readImageBlob($imageBlob);

    header("Content-Type: image/png");
    echo $imagick;
}

?>


Reads image from open filehandle

  • « Imagick::readImageBlob
  • Imagick::readimages »
  • PHP Manual
  • Imagick
  • Reads image from open filehandle

Imagick::readImageFile

(PECL imagick 2, PECL imagick 3)

Imagick::readImageFile — Reads image from open filehandle

Beschreibung

public Imagick::readImageFile ( resource $filehandle , string $fileName = null ) : bool

Reads image from open filehandle

Parameter-Liste

filehandle

fileName

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Description

  • « Imagick::readImageFile
  • Imagick::recolorImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::readimages

(PECL imagick 2, PECL imagick 3)

Imagick::readimages — Description

Beschreibung

public Imagick::readImages ( array $filenames ) : bool

Reads image from an array of filenames. All the images are held in a single Imagick object.

Parameter-Liste

filenames

Rückgabewerte

Liefert true bei Erfolg.


Recolors image

  • « Imagick::readimages
  • Imagick::reduceNoiseImage »
  • PHP Manual
  • Imagick
  • Recolors image

Imagick::recolorImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::recolorImage — Recolors image

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::recolorImage ( array $matrix ) : bool

Translate, scale, shear, or rotate image colors. This method supports variable sized matrices but normally 5x5 matrix is used for RGBA and 6x6 is used for CMYK. The last row should contain the normalized values. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.6 oder höher kompiliert wurde.

Parameter-Liste

matrix

The matrix containing the color values

Rückgabewerte

Liefert true bei Erfolg.

Siehe auch

  • Imagick::displayImage() - Displays an image

Beispiele

Beispiel #1 Imagick::recolorImage()

<?php
function recolorImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $remapColor = [ 1, 0, 0,
        0, 0, 1,
        0, 1, 0,];

//$remapColor = [
//    1.438, -0.122, -0.016,  0, 0, -0.03,
//    -0.062,  1.378, -0.016,  0, 0,  0.05,
//    -0.062, -0.122, 1.483,   0, 0, -0.02,
//];

    @$imagick->recolorImage($remapColor);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Smooths the contours of an image

  • « Imagick::recolorImage
  • Imagick::remapImage »
  • PHP Manual
  • Imagick
  • Smooths the contours of an image

Imagick::reduceNoiseImage

(PECL imagick 2, PECL imagick 3)

Imagick::reduceNoiseImage — Smooths the contours of an image

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::reduceNoiseImage ( float $radius ) : bool

Smooths the contours of an image while still preserving edge information. The algorithm works by replacing each pixel with its neighbor closest in value. A neighbor is defined by radius. Use a radius of 0 and Imagick::reduceNoiseImage() selects a suitable radius for you.

Parameter-Liste

radius

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::reduceNoiseImage()

<?php
function reduceNoiseImage($imagePath, $reduceNoise) {
    $imagick = new \Imagick(realpath($imagePath));
    @$imagick->reduceNoiseImage($reduceNoise);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Remaps image colors

  • « Imagick::reduceNoiseImage
  • Imagick::removeImage »
  • PHP Manual
  • Imagick
  • Remaps image colors

Imagick::remapImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::remapImage — Remaps image colors

Beschreibung

public Imagick::remapImage ( Imagick $replacement , int $DITHER ) : bool

Replaces colors an image with those defined by replacement. The colors are replaced with the closest possible color. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.5 oder höher kompiliert wurde.

Parameter-Liste

replacement

An Imagick object containing the replacement colors

DITHER

Refer to this list of dither method constants

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Removes an image from the image list

  • « Imagick::remapImage
  • Imagick::removeImageProfile »
  • PHP Manual
  • Imagick
  • Removes an image from the image list

Imagick::removeImage

(PECL imagick 2, PECL imagick 3)

Imagick::removeImage — Removes an image from the image list

Beschreibung

public Imagick::removeImage ( ) : bool

Removes an image from the image list.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Removes the named image profile and returns it

  • « Imagick::removeImage
  • Imagick::render »
  • PHP Manual
  • Imagick
  • Removes the named image profile and returns it

Imagick::removeImageProfile

(PECL imagick 2, PECL imagick 3)

Imagick::removeImageProfile — Removes the named image profile and returns it

Beschreibung

public Imagick::removeImageProfile ( string $name ) : string

Removes the named image profile and returns it.

Parameter-Liste

name

Rückgabewerte

Returns a string containing the profile of the image.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Renders all preceding drawing commands

  • « Imagick::removeImageProfile
  • Imagick::resampleImage »
  • PHP Manual
  • Imagick
  • Renders all preceding drawing commands

Imagick::render

(PECL imagick 2, PECL imagick 3)

Imagick::render — Renders all preceding drawing commands

Beschreibung

public Imagick::render ( ) : bool

Renders all preceding drawing commands.

Rückgabewerte

Liefert true bei Erfolg.


Resample image to desired resolution

  • « Imagick::render
  • Imagick::resetImagePage »
  • PHP Manual
  • Imagick
  • Resample image to desired resolution

Imagick::resampleImage

(PECL imagick 2, PECL imagick 3)

Imagick::resampleImage — Resample image to desired resolution

Beschreibung

public Imagick::resampleImage ( float $x_resolution , float $y_resolution , int $filter , float $blur ) : bool

Resample image to desired resolution.

Parameter-Liste

x_resolution

y_resolution

filter

blur

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::resampleImage()

<?php
function resampleImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->resampleImage(200, 200, \Imagick::FILTER_LANCZOS, 1);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Reset image page

  • « Imagick::resampleImage
  • Imagick::resizeImage »
  • PHP Manual
  • Imagick
  • Reset image page

Imagick::resetImagePage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::resetImagePage — Reset image page

Beschreibung

public Imagick::resetImagePage ( string $page ) : bool

The page definition as a string. The string is in format WxH+x+y. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.6 oder höher kompiliert wurde.

Parameter-Liste

page

The page definition. For example 7168x5147+0+0

Rückgabewerte

Liefert true bei Erfolg.


Scales an image

  • « Imagick::resetImagePage
  • Imagick::rollImage »
  • PHP Manual
  • Imagick
  • Scales an image

Imagick::resizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::resizeImage — Scales an image

Beschreibung

public Imagick::resizeImage ( int $columns , int $rows , int $filter , float $blur , bool $bestfit = false , bool $legacy = false ) : bool

Scales an image to the desired dimensions with a filter.

Hinweis: Das Verhalten des Parameters bestfit hat sich mit Imagick 3.0.0 geändert. Vor dieser Version wurde ein Bild der Größe 200x150 bei der angegebenen Größe von 400x400 nicht verändert. In Imagick 3.0.0 und späteren Versionen wird dieses Bild auf die Größe 400x300 hochgerechnet, da dies die passendste größe für die angegebene Bildgröße ist. Wenn der bestfit-Parameter angegeben wird, so muss sowohl eine Breite als auch eine Höhe angegeben werden.

Parameter-Liste

columns

Width of the image

rows

Height of the image

filter

Refer to the list of filter constants.

blur

The blur factor where > 1 is blurry, < 1 is sharp.

bestfit

Optional fit parameter.

Rückgabewerte

Liefert true bei Erfolg.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

Beispiele

Beispiel #1 Imagick::resizeImage()

<?php
function resizeImage($imagePath, $width, $height, $filterType, $blur, $bestFit, $cropZoom) {
    //The blur factor where > 1 is blurry, < 1 is sharp.
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->resizeImage($width, $height, $filterType, $blur, $bestFit);

    $cropWidth = $imagick->getImageWidth();
    $cropHeight = $imagick->getImageHeight();

    if ($cropZoom) {
        $newWidth = $cropWidth / 2;
        $newHeight = $cropHeight / 2;

        $imagick->cropimage(
            $newWidth,
            $newHeight,
            ($cropWidth - $newWidth) / 2,
            ($cropHeight - $newHeight) / 2
        );

        $imagick->scaleimage(
            $imagick->getImageWidth() * 4,
            $imagick->getImageHeight() * 4
        );
    }

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Offsets an image

  • « Imagick::resizeImage
  • Imagick::rotateImage »
  • PHP Manual
  • Imagick
  • Offsets an image

Imagick::rollImage

(PECL imagick 2, PECL imagick 3)

Imagick::rollImage — Offsets an image

Beschreibung

public Imagick::rollImage ( int $x , int $y ) : bool

Offsets an image as defined by x and y.

Parameter-Liste

x

The X offset.

y

The Y offset.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::rollImage()

<?php
function rollImage($imagePath, $rollX, $rollY) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->rollimage($rollX, $rollY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Rotates an image

  • « Imagick::rollImage
  • Imagick::rotationalBlurImage »
  • PHP Manual
  • Imagick
  • Rotates an image

Imagick::rotateImage

(PECL imagick 2, PECL imagick 3)

Imagick::rotateImage — Rotates an image

Beschreibung

public Imagick::rotateImage ( mixed $background , float $degrees ) : bool

Rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.

Parameter-Liste

background

The background color

degrees

Rotation angle, in degrees. The rotation angle is interpreted as the number of degrees to rotate the image clockwise.

Rückgabewerte

Liefert true bei Erfolg.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Beispiele

Beispiel #1 Imagick::rotateImage()

<?php
function rotateImage($imagePath, $angle, $color) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->rotateimage($color, $angle);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::rotateImage
  • Imagick::roundCorners »
  • PHP Manual
  • Imagick
  • Description

Imagick::rotationalBlurImage

(PECL imagick 3 >= 3.3.0)

Imagick::rotationalBlurImage — Description

Beschreibung

public Imagick::rotationalBlurImage ( float $angle , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Rotational blurs an image.

Parameter-Liste

angle

The angle to apply the blur over.

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::rotationalBlurImage()

<?php
function rotationalBlurImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->rotationalBlurImage(3);
    $imagick->rotationalBlurImage(5);
    $imagick->rotationalBlurImage(7);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Rounds image corners

  • « Imagick::rotationalBlurImage
  • Imagick::sampleImage »
  • PHP Manual
  • Imagick
  • Rounds image corners

Imagick::roundCorners

(PECL imagick 2, PECL imagick 3)

Imagick::roundCorners — Rounds image corners

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::roundCorners ( float $x_rounding , float $y_rounding , float $stroke_width = 10 , float $displace = 5 , float $size_correction = -6 ) : bool

Rounds image corners. The first two parameters control the amount of rounding and the three last parameters can be used to fine-tune the rounding process. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

x_rounding

x rounding

y_rounding

y rounding

stroke_width

stroke width

displace

image displace

size_correction

size correction

Beispiele

Beispiel #1 Using Imagick::roundCorners():

Rounds the image corners

<?php

$image = new Imagick();
$image->newPseudoImage(100, 100, "magick:rose");
$image->setImageFormat("png");

$image->roundCorners(5,3);
$image->writeImage("rounded.png");
?>

Rückgabewerte

Liefert true bei Erfolg.


Scales an image with pixel sampling

  • « Imagick::roundCorners
  • Imagick::scaleImage »
  • PHP Manual
  • Imagick
  • Scales an image with pixel sampling

Imagick::sampleImage

(PECL imagick 2, PECL imagick 3)

Imagick::sampleImage — Scales an image with pixel sampling

Beschreibung

public Imagick::sampleImage ( int $columns , int $rows ) : bool

Scales an image to the desired dimensions with pixel sampling. Unlike other scaling methods, this method does not introduce any additional color into the scaled image.

Parameter-Liste

columns

rows

Rückgabewerte

Liefert true bei Erfolg.


Scales the size of an image

  • « Imagick::sampleImage
  • Imagick::segmentImage »
  • PHP Manual
  • Imagick
  • Scales the size of an image

Imagick::scaleImage

(PECL imagick 2, PECL imagick 3)

Imagick::scaleImage — Scales the size of an image

Beschreibung

public Imagick::scaleImage ( int $cols , int $rows , bool $bestfit = false , bool $legacy = false ) : bool

Scales the size of an image to the given dimensions. The other parameter will be calculated if 0 is passed as either param.

Hinweis: Das Verhalten des Parameters bestfit hat sich mit Imagick 3.0.0 geändert. Vor dieser Version wurde ein Bild der Größe 200x150 bei der angegebenen Größe von 400x400 nicht verändert. In Imagick 3.0.0 und späteren Versionen wird dieses Bild auf die Größe 400x300 hochgerechnet, da dies die passendste größe für die angegebene Bildgröße ist. Wenn der bestfit-Parameter angegeben wird, so muss sowohl eine Breite als auch eine Höhe angegeben werden.

Parameter-Liste

cols

rows

bestfit

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

Beispiele

Beispiel #1 Imagick::scaleImage()

<?php
function scaleImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->scaleImage(150, 150, true);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Segments an image

  • « Imagick::scaleImage
  • Imagick::selectiveBlurImage »
  • PHP Manual
  • Imagick
  • Segments an image

Imagick::segmentImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::segmentImage — Segments an image

Beschreibung

public Imagick::segmentImage ( int $COLORSPACE , float $cluster_threshold , float $smooth_threshold , bool $verbose = false ) : bool

Analyses the image and identifies units that are similar. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.5 oder höher kompiliert wurde.

Parameter-Liste

COLORSPACE

One of the COLORSPACE constants.

cluster_threshold

A percentage describing minimum number of pixels contained in hexedra before it is considered valid.

smooth_threshold

Eliminates noise from the histogram.

verbose

Whether to output detailed information about recognised classes.

Rückgabewerte

Beispiele

Beispiel #1 Imagick::segmentImage()

<?php
function segmentImage($imagePath, $colorSpace, $clusterThreshold, $smoothThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->segmentImage($colorSpace, $clusterThreshold, $smoothThreshold);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

segmentImage($imagePath, \Imagick::COLORSPACE_RGB, 5, 5);

?>


Description

  • « Imagick::segmentImage
  • Imagick::separateImageChannel »
  • PHP Manual
  • Imagick
  • Description

Imagick::selectiveBlurImage

(PECL imagick 3 >= 3.3.0)

Imagick::selectiveBlurImage — Description

Beschreibung

public Imagick::selectiveBlurImage ( float $radius , float $sigma , float $threshold , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Selectively blur an image within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold.

Parameter-Liste

radius

sigma

threshold

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::selectiveBlurImage()

<?php
function selectiveBlurImage($imagePath, $radius, $sigma, $threshold, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->selectiveBlurImage($radius, $sigma, $threshold, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Separates a channel from the image

  • « Imagick::selectiveBlurImage
  • Imagick::sepiaToneImage »
  • PHP Manual
  • Imagick
  • Separates a channel from the image

Imagick::separateImageChannel

(PECL imagick 2, PECL imagick 3)

Imagick::separateImageChannel — Separates a channel from the image

Beschreibung

public Imagick::separateImageChannel ( int $channel ) : bool

Separates a channel from the image and returns a grayscale image. A channel is a particular color component of each pixel in the image.

Parameter-Liste

channel

Which 'channel' to return. For colorspaces other than RGB, you can still use the CHANNEL_RED, CHANNEL_GREEN, CHANNEL_BLUE constants to indicate the 1st, 2nd and 3rd channels.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::separateImageChannel()

<?php
function separateImageChannel($imagePath, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->separateimagechannel($channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

separateImageChannel($imagePath, \Imagick::CHANNEL_GREEN);

?>


Sepia tones an image

  • « Imagick::separateImageChannel
  • Imagick::setBackgroundColor »
  • PHP Manual
  • Imagick
  • Sepia tones an image

Imagick::sepiaToneImage

(PECL imagick 2, PECL imagick 3)

Imagick::sepiaToneImage — Sepia tones an image

Beschreibung

public Imagick::sepiaToneImage ( float $threshold ) : bool

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by sepia toning. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the sepia toning. A threshold of 80 is a good starting point for a reasonable tone.

Parameter-Liste

threshold

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::sepiaToneImage()

<?php
function sepiaToneImage($imagePath, $sepia) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->sepiaToneImage($sepia);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the object's default background color

  • « Imagick::sepiaToneImage
  • Imagick::setColorspace »
  • PHP Manual
  • Imagick
  • Sets the object's default background color

Imagick::setBackgroundColor

(PECL imagick 2, PECL imagick 3)

Imagick::setBackgroundColor — Sets the object's default background color

Beschreibung

public Imagick::setBackgroundColor ( mixed $background ) : bool

Sets the object's default background color.

Parameter-Liste

background

Rückgabewerte

Liefert true bei Erfolg.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.


Set colorspace

  • « Imagick::setBackgroundColor
  • Imagick::setCompression »
  • PHP Manual
  • Imagick
  • Set colorspace

Imagick::setColorspace

(PECL imagick 3)

Imagick::setColorspace — Set colorspace

Beschreibung

public Imagick::setColorspace ( int $COLORSPACE ) : bool

Sets the global colorspace value for the object. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.5.7 oder höher kompiliert wurde.

Parameter-Liste

COLORSPACE

One of the COLORSPACE constants

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the object's default compression type

  • « Imagick::setColorspace
  • Imagick::setCompressionQuality »
  • PHP Manual
  • Imagick
  • Sets the object's default compression type

Imagick::setCompression

(PECL imagick 2, PECL imagick 3)

Imagick::setCompression — Sets the object's default compression type

Beschreibung

public Imagick::setCompression ( int $compression ) : bool

Sets the object's default compression type

Parameter-Liste

compression

The compression type. See the Imagick::COMPRESSION_* constants.

Rückgabewerte

Liefert true bei Erfolg.


Sets the object's default compression quality

  • « Imagick::setCompression
  • Imagick::setFilename »
  • PHP Manual
  • Imagick
  • Sets the object's default compression quality

Imagick::setCompressionQuality

(PECL imagick 2, PECL imagick 3)

Imagick::setCompressionQuality — Sets the object's default compression quality

Beschreibung

public Imagick::setCompressionQuality ( int $quality ) : bool

Sets the object's default compression quality.

Achtung

This method only works for new images e.g. those created through Imagick::newPseudoImage. For existing images you should use Imagick::setImageCompressionQuality().

Parameter-Liste

quality

An Integer between 1 and 100, 1 = high compression, 100 low compression.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::setCompressionQuality()

<?php
function setCompressionQuality($imagePath, $quality) {

    $backgroundImagick = new \Imagick(realpath($imagePath));
    $imagick = new \Imagick();
    $imagick->setCompressionQuality($quality);
    $imagick->newPseudoImage(
        $backgroundImagick->getImageWidth(),
        $backgroundImagick->getImageHeight(),
        'canvas:white'
    );

    $imagick->compositeImage(
        $backgroundImagick,
        \Imagick::COMPOSITE_ATOP,
        0,
        0
    );

    $imagick->setFormat("jpg");
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the filename before you read or write the image

  • « Imagick::setCompressionQuality
  • Imagick::setFirstIterator »
  • PHP Manual
  • Imagick
  • Sets the filename before you read or write the image

Imagick::setFilename

(PECL imagick 2, PECL imagick 3)

Imagick::setFilename — Sets the filename before you read or write the image

Beschreibung

public Imagick::setFilename ( string $filename ) : bool

Sets the filename before you read or write an image file.

Parameter-Liste

filename

Rückgabewerte

Liefert true bei Erfolg.


Sets the Imagick iterator to the first image

  • « Imagick::setFilename
  • Imagick::setFont »
  • PHP Manual
  • Imagick
  • Sets the Imagick iterator to the first image

Imagick::setFirstIterator

(PECL imagick 2, PECL imagick 3)

Imagick::setFirstIterator — Sets the Imagick iterator to the first image

Beschreibung

public Imagick::setFirstIterator ( ) : bool

Sets the Imagick iterator to the first image.

Rückgabewerte

Liefert true bei Erfolg.


Sets font

  • « Imagick::setFirstIterator
  • Imagick::setFormat »
  • PHP Manual
  • Imagick
  • Sets font

Imagick::setFont

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::setFont — Sets font

Beschreibung

public Imagick::setFont ( string $font ) : bool

Sets object's font property. This method can be used for example to set font for caption: pseudo-format. The font needs to be configured in ImageMagick configuration or a file by the name of font must exist. This method should not be confused with ImagickDraw::setFont() which sets the font for a specific ImagickDraw object. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.7 oder höher kompiliert wurde.

Parameter-Liste

font

Font name or a filename

Rückgabewerte

Liefert true bei Erfolg.

Siehe auch

  • Imagick::getFont() - Gets font
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text
  • ImagickDraw::getFont() - Returns the font

Beispiele

Beispiel #1 A Imagick::setFont() example

Example of using Imagick::setFont

<?php
/* Create new imagick object */
$im = new Imagick();

/* Set the font for the object */
$im->setFont("example.ttf");

/* Create new caption */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Do something with the image */
?>


Sets the format of the Imagick object

  • « Imagick::setFont
  • Imagick::setGravity »
  • PHP Manual
  • Imagick
  • Sets the format of the Imagick object

Imagick::setFormat

(PECL imagick 2, PECL imagick 3)

Imagick::setFormat — Sets the format of the Imagick object

Beschreibung

public Imagick::setFormat ( string $format ) : bool

Sets the format of the Imagick object.

Parameter-Liste

format

Rückgabewerte

Liefert true bei Erfolg.


Sets the gravity

  • « Imagick::setFormat
  • Imagick::setImage »
  • PHP Manual
  • Imagick
  • Sets the gravity

Imagick::setGravity

(PECL imagick 2 >= 2.2.0, PECL imagick 3)

Imagick::setGravity — Sets the gravity

Beschreibung

public Imagick::setGravity ( int $gravity ) : bool

Sets the global gravity property for the Imagick object. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.0 oder höher kompiliert wurde.

Parameter-Liste

gravity

The gravity property. Refer to the list of gravity constants.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Replaces image in the object

  • « Imagick::setGravity
  • Imagick::setImageAlphaChannel »
  • PHP Manual
  • Imagick
  • Replaces image in the object

Imagick::setImage

(PECL imagick 2, PECL imagick 3)

Imagick::setImage — Replaces image in the object

Beschreibung

public Imagick::setImage ( Imagick $replace ) : bool

Replaces the current image sequence with the image from replace object.

Parameter-Liste

replace

The replace Imagick object

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 A Imagick::setImage() example

An example of using Imagick::setImage()

<?php
/* Create the objects */
$image = new Imagick('source.jpg');
$replace = new Imagick('replace.jpg');

/* source.jpg is replaced with replace.jpg */
$image->setImage($replace);

/* output the image */
header('Content-type: image/jpeg');
echo $image;

?>


Sets image alpha channel

  • « Imagick::setImage
  • Imagick::setImageArtifact »
  • PHP Manual
  • Imagick
  • Sets image alpha channel

Imagick::setImageAlphaChannel

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::setImageAlphaChannel — Sets image alpha channel

Beschreibung

public Imagick::setImageAlphaChannel ( int $mode ) : bool

Activate or deactivate image alpha channel. The mode is one of the Imagick::ALPHACHANNEL_* constants. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.8 oder höher kompiliert wurde.

Parameter-Liste

mode

One of the Imagick::ALPHACHANNEL_* constants

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Siehe auch

  • Imagick::setImageMatte() - Sets the image matte channel
  • Imagick Alpha Channel Constants


Set image artifact

  • « Imagick::setImageAlphaChannel
  • Imagick::setImageAttribute »
  • PHP Manual
  • Imagick
  • Set image artifact

Imagick::setImageArtifact

(PECL imagick 3)

Imagick::setImageArtifact — Set image artifact

Beschreibung

public Imagick::setImageArtifact ( string $artifact , string $value ) : bool

Associates an artifact with the image. The difference between image properties and image artifacts is that properties are public and artifacts are private. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.5.7 oder höher kompiliert wurde.

Parameter-Liste

artifact

The name of the artifact

value

The value of the artifact

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Siehe auch

  • Imagick::getImageArtifact() - Get image artifact
  • Imagick::deleteImageArtifact() - Delete image artifact

Beispiele

Beispiel #1 Imagick::setImageArtifact()

<?php
function setImageArtifact() {

    $src1 = new \Imagick(realpath("./images/artifact/source1.png"));
    $src2 = new \Imagick(realpath("./images/artifact/source2.png"));

    $src2->setImageVirtualPixelMethod(\Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
    $src2->setImageArtifact('compose:args', "1,0,-0.5,0.5");
    $src1->compositeImage($src2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);

    $src1->setImageFormat('png');
    header("Content-Type: image/png");
    echo $src1->getImagesBlob();
}

?>


Description

  • « Imagick::setImageArtifact
  • Imagick::setImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Description

Imagick::setImageAttribute

(PECL imagick 2, PECL imagick 3)

Imagick::setImageAttribute — Description

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::setImageAttribute ( string $key , string $value ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

key

value

Rückgabewerte

Liefert true bei Erfolg.


Sets the image background color

  • « Imagick::setImageAttribute
  • Imagick::setImageBias »
  • PHP Manual
  • Imagick
  • Sets the image background color

Imagick::setImageBackgroundColor

(PECL imagick 2, PECL imagick 3)

Imagick::setImageBackgroundColor — Sets the image background color

Beschreibung

public Imagick::setImageBackgroundColor ( mixed $background ) : bool

Sets the image background color.

Parameter-Liste

background

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as the parameter. Previous versions allow only an ImagickPixel object.


Sets the image bias for any method that convolves an image

  • « Imagick::setImageBackgroundColor
  • Imagick::setImageBiasQuantum »
  • PHP Manual
  • Imagick
  • Sets the image bias for any method that convolves an image

Imagick::setImageBias

(PECL imagick 2, PECL imagick 3)

Imagick::setImageBias — Sets the image bias for any method that convolves an image

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::setImageBias ( float $bias ) : bool

Sets the image bias for any method that convolves an image (e.g. Imagick::ConvolveImage()).

Parameter-Liste

bias

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::setImageBias()

<?php
//requires ImageMagick version 6.9.0-1 to have an effect on convolveImage
function setImageBias($bias) {
    $imagick = new \Imagick(realpath("images/stack.jpg"));

    $xKernel = array(
        -0.70, 0, 0.70,
        -0.70, 0, 0.70,
        -0.70, 0, 0.70
    );

    $imagick->setImageBias($bias * \Imagick::getQuantum());
    $imagick->convolveImage($xKernel, \Imagick::CHANNEL_ALL);

    $imagick->setImageFormat('png');

    header('Content-type: image/png');
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::setImageBias
  • Imagick::setImageBluePrimary »
  • PHP Manual
  • Imagick
  • Description

Imagick::setImageBiasQuantum

(PECL imagick 3 >= 3.3.0)

Imagick::setImageBiasQuantum — Description

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::setImageBiasQuantum ( string $bias ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

bias

Rückgabewerte


Sets the image chromaticity blue primary point

  • « Imagick::setImageBiasQuantum
  • Imagick::setImageBorderColor »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity blue primary point

Imagick::setImageBluePrimary

(PECL imagick 2, PECL imagick 3)

Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point

Beschreibung

public Imagick::setImageBluePrimary ( float $x , float $y ) : bool

Sets the image chromaticity blue primary point.

Parameter-Liste

x

y

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image border color

  • « Imagick::setImageBluePrimary
  • Imagick::setImageChannelDepth »
  • PHP Manual
  • Imagick
  • Sets the image border color

Imagick::setImageBorderColor

(PECL imagick 2, PECL imagick 3)

Imagick::setImageBorderColor — Sets the image border color

Beschreibung

public Imagick::setImageBorderColor ( mixed $border ) : bool

Sets the image border color.

Parameter-Liste

border

The border color

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.


Sets the depth of a particular image channel

  • « Imagick::setImageBorderColor
  • Imagick::setImageClipMask »
  • PHP Manual
  • Imagick
  • Sets the depth of a particular image channel

Imagick::setImageChannelDepth

(PECL imagick 2, PECL imagick 3)

Imagick::setImageChannelDepth — Sets the depth of a particular image channel

Beschreibung

public Imagick::setImageChannelDepth ( int $channel , int $depth ) : bool

Sets the depth of a particular image channel.

Parameter-Liste

channel

depth

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets image clip mask

  • « Imagick::setImageChannelDepth
  • Imagick::setImageColormapColor »
  • PHP Manual
  • Imagick
  • Sets image clip mask

Imagick::setImageClipMask

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::setImageClipMask — Sets image clip mask

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::setImageClipMask ( Imagick $clip_mask ) : bool

Sets image clip mask from another Imagick object. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.6 oder höher kompiliert wurde.

Parameter-Liste

clip_mask

The Imagick object containing the clip mask

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::setImageClipMask()

<?php
function setImageClipMask($imagePath) {
    $imagick = new \Imagick();
    $imagick->readImage(realpath($imagePath));

    $width = $imagick->getImageWidth();
    $height = $imagick->getImageHeight();

    $clipMask = new \Imagick();
    $clipMask->newPseudoImage(
        $width,
        $height,
        "canvas:transparent"
    );

    $draw = new \ImagickDraw();
    $draw->setFillColor('white');
    $draw->circle(
        $width / 2,
        $height / 2,
        ($width / 2) + ($width / 4),
        $height / 2
    );
    $clipMask->drawImage($draw);
    $imagick->setImageClipMask($clipMask);

    $imagick->negateImage(false);
    $imagick->setFormat("png");

    header("Content-Type: image/png");
    echo $imagick->getImagesBlob();

}

?>


Sets the color of the specified colormap index

  • « Imagick::setImageClipMask
  • Imagick::setImageColorspace »
  • PHP Manual
  • Imagick
  • Sets the color of the specified colormap index

Imagick::setImageColormapColor

(PECL imagick 2, PECL imagick 3)

Imagick::setImageColormapColor — Sets the color of the specified colormap index

Beschreibung

public Imagick::setImageColormapColor ( int $index , ImagickPixel $color ) : bool

Sets the color of the specified colormap index.

Parameter-Liste

index

color

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image colorspace

  • « Imagick::setImageColormapColor
  • Imagick::setImageCompose »
  • PHP Manual
  • Imagick
  • Sets the image colorspace

Imagick::setImageColorspace

(PECL imagick 2, PECL imagick 3)

Imagick::setImageColorspace — Sets the image colorspace

Beschreibung

public Imagick::setImageColorspace ( int $colorspace ) : bool

Sets the image colorspace. This method should be used when creating new images. To change the colorspace of an existing image, you should use Imagick::transformImageColorspace().

Parameter-Liste

colorspace

One of the COLORSPACE constants

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image composite operator

  • « Imagick::setImageColorspace
  • Imagick::setImageCompression »
  • PHP Manual
  • Imagick
  • Sets the image composite operator

Imagick::setImageCompose

(PECL imagick 2, PECL imagick 3)

Imagick::setImageCompose — Sets the image composite operator

Beschreibung

public Imagick::setImageCompose ( int $compose ) : bool

Sets the image composite operator, useful for specifying how to composite the image thumbnail when using the Imagick::montageImage() method.

Parameter-Liste

compose

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image compression

  • « Imagick::setImageCompose
  • Imagick::setImageCompressionQuality »
  • PHP Manual
  • Imagick
  • Sets the image compression

Imagick::setImageCompression

(PECL imagick 2, PECL imagick 3)

Imagick::setImageCompression — Sets the image compression

Beschreibung

public Imagick::setImageCompression ( int $compression ) : bool

Parameter-Liste

compression

One of the COMPRESSION constants

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image compression quality

  • « Imagick::setImageCompression
  • Imagick::setImageDelay »
  • PHP Manual
  • Imagick
  • Sets the image compression quality

Imagick::setImageCompressionQuality

(PECL imagick 2, PECL imagick 3)

Imagick::setImageCompressionQuality — Sets the image compression quality

Beschreibung

public Imagick::setImageCompressionQuality ( int $quality ) : bool

Sets the image compression quality.

Parameter-Liste

quality

The image compression quality as an integer

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::setImageCompressionQuality()

<?php
function setImageCompressionQuality($imagePath, $quality) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageCompressionQuality($quality);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the image delay

  • « Imagick::setImageCompressionQuality
  • Imagick::setImageDepth »
  • PHP Manual
  • Imagick
  • Sets the image delay

Imagick::setImageDelay

(PECL imagick 2, PECL imagick 3)

Imagick::setImageDelay — Sets the image delay

Beschreibung

public Imagick::setImageDelay ( int $delay ) : bool

Sets the image delay. For an animated image this is the amount of time that this frame of the image should be displayed for, before displaying the next frame.

The delay can be set individually for each frame in an image.

Parameter-Liste

delay

The amount of time expressed in 'ticks' that the image should be displayed for. For animated GIFs there are 100 ticks per second, so a value of 20 would be 20/100 of a second aka 1/5th of a second.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Modify animated Gif with Imagick::setImageDelay()

<?php

// Modify an animated Gif so that it's frames are played at a variable speed,
// varying between being shown for 50ms down to 0ms, which will cause the frame
// to be skipped in most browsers.
$imagick = new Imagick(realpath("Test.gif"));
$imagick = $imagick->coalesceImages();

$frameCount = 0;

foreach ($imagick as $frame) {
    $imagick->setImageDelay((($frameCount % 11) * 5));
    $frameCount++;
}

$imagick = $imagick->deconstructImages();

$imagick->writeImages("/path/to/save/output.gif", true);

?>


Sets the image depth

  • « Imagick::setImageDelay
  • Imagick::setImageDispose »
  • PHP Manual
  • Imagick
  • Sets the image depth

Imagick::setImageDepth

(PECL imagick 2, PECL imagick 3)

Imagick::setImageDepth — Sets the image depth

Beschreibung

public Imagick::setImageDepth ( int $depth ) : bool

Sets the image depth.

Parameter-Liste

depth

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image disposal method

  • « Imagick::setImageDepth
  • Imagick::setImageExtent »
  • PHP Manual
  • Imagick
  • Sets the image disposal method

Imagick::setImageDispose

(PECL imagick 2, PECL imagick 3)

Imagick::setImageDispose — Sets the image disposal method

Beschreibung

public Imagick::setImageDispose ( int $dispose ) : bool

Sets the image disposal method.

Parameter-Liste

dispose

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image size

  • « Imagick::setImageDispose
  • Imagick::setImageFilename »
  • PHP Manual
  • Imagick
  • Sets the image size

Imagick::setImageExtent

(PECL imagick 2, PECL imagick 3)

Imagick::setImageExtent — Sets the image size

Beschreibung

public Imagick::setImageExtent ( int $columns , int $rows ) : bool

Sets the image size (i.e. columns & rows).

Parameter-Liste

columns

rows

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the filename of a particular image

  • « Imagick::setImageExtent
  • Imagick::setImageFormat »
  • PHP Manual
  • Imagick
  • Sets the filename of a particular image

Imagick::setImageFilename

(PECL imagick 2, PECL imagick 3)

Imagick::setImageFilename — Sets the filename of a particular image

Beschreibung

public Imagick::setImageFilename ( string $filename ) : bool

Sets the filename of a particular image in a sequence.

Parameter-Liste

filename

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the format of a particular image

  • « Imagick::setImageFilename
  • Imagick::setImageGamma »
  • PHP Manual
  • Imagick
  • Sets the format of a particular image

Imagick::setImageFormat

(PECL imagick 2, PECL imagick 3)

Imagick::setImageFormat — Sets the format of a particular image

Beschreibung

public Imagick::setImageFormat ( string $format ) : bool

Sets the format of a particular image in a sequence.

Parameter-Liste

format

String presentation of the image format. Format support depends on the ImageMagick installation.

Rückgabewerte

Liefert true bei Erfolg.


Sets the image gamma

  • « Imagick::setImageFormat
  • Imagick::setImageGravity »
  • PHP Manual
  • Imagick
  • Sets the image gamma

Imagick::setImageGamma

(PECL imagick 2, PECL imagick 3)

Imagick::setImageGamma — Sets the image gamma

Beschreibung

public Imagick::setImageGamma ( float $gamma ) : bool

Sets the image gamma.

Parameter-Liste

gamma

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image gravity

  • « Imagick::setImageGamma
  • Imagick::setImageGreenPrimary »
  • PHP Manual
  • Imagick
  • Sets the image gravity

Imagick::setImageGravity

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::setImageGravity — Sets the image gravity

Beschreibung

public Imagick::setImageGravity ( int $gravity ) : bool

Sets the gravity property for the current image. This method can be used to set the gravity property for a single image sequence. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.4 oder höher kompiliert wurde.

Parameter-Liste

gravity

The gravity property. Refer to the list of gravity constants.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Sets the image chromaticity green primary point

  • « Imagick::setImageGravity
  • Imagick::setImageIndex »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity green primary point

Imagick::setImageGreenPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point

Beschreibung

public Imagick::setImageGreenPrimary ( float $x , float $y ) : bool

Sets the image chromaticity green primary point.

Parameter-Liste

x

y

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Set the iterator position

  • « Imagick::setImageGreenPrimary
  • Imagick::setImageInterlaceScheme »
  • PHP Manual
  • Imagick
  • Set the iterator position

Imagick::setImageIndex

(PECL imagick 2, PECL imagick 3)

Imagick::setImageIndex — Set the iterator position

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::setImageIndex ( int $index ) : bool

Set the iterator to the position in the image list specified with the index parameter.

This method has been deprecated. See Imagick::setIteratorIndex().

Parameter-Liste

index

The position to set the iterator to

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image compression

  • « Imagick::setImageIndex
  • Imagick::setImageInterpolateMethod »
  • PHP Manual
  • Imagick
  • Sets the image compression

Imagick::setImageInterlaceScheme

(PECL imagick 2, PECL imagick 3)

Imagick::setImageInterlaceScheme — Sets the image compression

Beschreibung

public Imagick::setImageInterlaceScheme ( int $interlace_scheme ) : bool

Sets the image compression.

Parameter-Liste

interlace_scheme

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image interpolate pixel method

  • « Imagick::setImageInterlaceScheme
  • Imagick::setImageIterations »
  • PHP Manual
  • Imagick
  • Sets the image interpolate pixel method

Imagick::setImageInterpolateMethod

(PECL imagick 2, PECL imagick 3)

Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method

Beschreibung

public Imagick::setImageInterpolateMethod ( int $method ) : bool

Sets the image interpolate pixel method.

Parameter-Liste

method

The method is one of the Imagick::INTERPOLATE_* constants

Rückgabewerte

Liefert true bei Erfolg.


Sets the image iterations

  • « Imagick::setImageInterpolateMethod
  • Imagick::setImageMatte »
  • PHP Manual
  • Imagick
  • Sets the image iterations

Imagick::setImageIterations

(PECL imagick 2, PECL imagick 3)

Imagick::setImageIterations — Sets the image iterations

Beschreibung

public Imagick::setImageIterations ( int $iterations ) : bool

Sets the number of iterations an animated image is repeated.

Parameter-Liste

iterations

The number of iterations the image should loop over. Set to '0' to loop continuously.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Basic Imagick::setImageIterations() usage

<?php

$imagick = new Imagick(realpath("Test.gif"));

$imagick = $imagick->coalesceImages();
$imagick->setImageIterations(1);
$imagick = $imagick->deconstructImages();

$imagick->writeImages('/path/to/save/OnceOnly.gif', true);

?>


Sets the image matte channel

  • « Imagick::setImageIterations
  • Imagick::setImageMatteColor »
  • PHP Manual
  • Imagick
  • Sets the image matte channel

Imagick::setImageMatte

(PECL imagick 2, PECL imagick 3)

Imagick::setImageMatte — Sets the image matte channel

Beschreibung

public Imagick::setImageMatte ( bool $matte ) : bool

Sets the image matte channel. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

matte

True activates the matte channel and false disables it.

Rückgabewerte

Liefert true bei Erfolg.


Sets the image matte color

  • « Imagick::setImageMatte
  • Imagick::setImageOpacity »
  • PHP Manual
  • Imagick
  • Sets the image matte color

Imagick::setImageMatteColor

(PECL imagick 2, PECL imagick 3)

Imagick::setImageMatteColor — Sets the image matte color

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::setImageMatteColor ( mixed $matte ) : bool

Sets the image matte color.

Parameter-Liste

matte

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as the parameter. Previous versions allow only an ImagickPixel object.


Sets the image opacity level

  • « Imagick::setImageMatteColor
  • Imagick::setImageOrientation »
  • PHP Manual
  • Imagick
  • Sets the image opacity level

Imagick::setImageOpacity

(PECL imagick 2, PECL imagick 3)

Imagick::setImageOpacity — Sets the image opacity level

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::setImageOpacity ( float $opacity ) : bool

Sets the image to the specified opacity level. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.1 oder höher kompiliert wurde. This method operates on all channels, which means that for example opacity value of 0.5 will set all transparent areas to partially opaque. To add transparency to areas that are not already transparent use Imagick::evaluateImage()

Parameter-Liste

opacity

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 A Imagick::setImageOpacity() example

An example of using Imagick::setImageOpacity()

<?php
/* Create the object */
$image = new Imagick('source.png');

/* Set the opacity */
$image->setImageOpacity(0.7);

/* output the image */
header('Content-type: image/png');
echo $image;

?>


Sets the image orientation

  • « Imagick::setImageOpacity
  • Imagick::setImagePage »
  • PHP Manual
  • Imagick
  • Sets the image orientation

Imagick::setImageOrientation

(PECL imagick 2, PECL imagick 3)

Imagick::setImageOrientation — Sets the image orientation

Beschreibung

public Imagick::setImageOrientation ( int $orientation ) : bool

Sets the image orientation.

Parameter-Liste

orientation

One of the orientation constants

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::setImageOrientation()

<?php
//Doesn't appear to do anything
function setImageOrientation($imagePath, $orientationType) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageOrientation($orientationType);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the page geometry of the image

  • « Imagick::setImageOrientation
  • Imagick::setImageProfile »
  • PHP Manual
  • Imagick
  • Sets the page geometry of the image

Imagick::setImagePage

(PECL imagick 2, PECL imagick 3)

Imagick::setImagePage — Sets the page geometry of the image

Beschreibung

public Imagick::setImagePage ( int $width , int $height , int $x , int $y ) : bool

Sets the page geometry of the image.

Parameter-Liste

width

height

x

y

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Adds a named profile to the Imagick object

  • « Imagick::setImagePage
  • Imagick::setImageProperty »
  • PHP Manual
  • Imagick
  • Adds a named profile to the Imagick object

Imagick::setImageProfile

(PECL imagick 2, PECL imagick 3)

Imagick::setImageProfile — Adds a named profile to the Imagick object

Beschreibung

public Imagick::setImageProfile ( string $name , string $profile ) : bool

Adds a named profile to the Imagick object. If a profile with the same name already exists, it is replaced. This method differs from the Imagick::ProfileImage() method in that it does not apply any CMS color profiles.

Parameter-Liste

name

profile

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets an image property

  • « Imagick::setImageProfile
  • Imagick::setImageRedPrimary »
  • PHP Manual
  • Imagick
  • Sets an image property

Imagick::setImageProperty

(PECL imagick 2, PECL imagick 3)

Imagick::setImageProperty — Sets an image property

Beschreibung

public Imagick::setImageProperty ( string $name , string $value ) : bool

Sets a named property to the image. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.2 oder höher kompiliert wurde.

Parameter-Liste

name

value

Beispiele

Beispiel #1 Using Imagick::setImageProperty():

Setting and getting image properties

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");

$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
?>

Siehe auch

  • Imagick::getImageProperty() - Returns the named image property

Rückgabewerte

Liefert true bei Erfolg.


Sets the image chromaticity red primary point

  • « Imagick::setImageProperty
  • Imagick::setImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity red primary point

Imagick::setImageRedPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::setImageRedPrimary — Sets the image chromaticity red primary point

Beschreibung

public Imagick::setImageRedPrimary ( float $x , float $y ) : bool

Sets the image chromaticity red primary point.

Parameter-Liste

x

y

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image rendering intent

  • « Imagick::setImageRedPrimary
  • Imagick::setImageResolution »
  • PHP Manual
  • Imagick
  • Sets the image rendering intent

Imagick::setImageRenderingIntent

(PECL imagick 2, PECL imagick 3)

Imagick::setImageRenderingIntent — Sets the image rendering intent

Beschreibung

public Imagick::setImageRenderingIntent ( int $rendering_intent ) : bool

Sets the image rendering intent.

Parameter-Liste

rendering_intent

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image resolution

  • « Imagick::setImageRenderingIntent
  • Imagick::setImageScene »
  • PHP Manual
  • Imagick
  • Sets the image resolution

Imagick::setImageResolution

(PECL imagick 2, PECL imagick 3)

Imagick::setImageResolution — Sets the image resolution

Beschreibung

public Imagick::setImageResolution ( float $x_resolution , float $y_resolution ) : bool

Sets the image resolution.

Parameter-Liste

x_resolution

y_resolution

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::setImageResolution()

<?php
function setImageResolution($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageResolution(50, 50);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the image scene

  • « Imagick::setImageResolution
  • Imagick::setImageTicksPerSecond »
  • PHP Manual
  • Imagick
  • Sets the image scene

Imagick::setImageScene

(PECL imagick 2, PECL imagick 3)

Imagick::setImageScene — Sets the image scene

Beschreibung

public Imagick::setImageScene ( int $scene ) : bool

Sets the image scene.

Parameter-Liste

scene

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image ticks-per-second

  • « Imagick::setImageScene
  • Imagick::setImageType »
  • PHP Manual
  • Imagick
  • Sets the image ticks-per-second

Imagick::setImageTicksPerSecond

(PECL imagick 2, PECL imagick 3)

Imagick::setImageTicksPerSecond — Sets the image ticks-per-second

Beschreibung

public Imagick::setImageTicksPerSecond ( int $ticks_per_second ) : bool

Adjust the amount of time that a frame of an animated image is displayed for.

Hinweis:

For animated GIFs, this function does not change the number of 'image ticks' per second, which is always defined as 100. Instead it adjusts the amount of time that the frame is displayed for to simulate the change in 'ticks per second'.

For example, for an animated GIF where each frame is displayed for 20 ticks (1/5 of a second) when this method is called on each frame of that image with an argument of 50 the frames are adjusted to be displayed for 40 ticks (2/5 of a second) and the animation will play at half the original speed.

Parameter-Liste

ticks_per_second

The duration for which an image should be displayed expressed in ticks per second.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Modify animated Gif with Imagick::setImageTicksPerSecond()

<?php

// Modify an animated gif so the first half of the gif is played at half the
// speed it currently is, and the second half to be played at double the speed
// it currently is

$imagick = new Imagick(realpath("Test.gif"));
$imagick = $imagick->coalesceImages();

$totalFrames = $imagick->getNumberImages();

$frameCount = 0;

foreach ($imagick as $frame) {
    $imagick->setImageTicksPerSecond(50);

    if ($frameCount < ($totalFrames / 2)) {
        // Modify the frame to be displayed for twice as long as it currently is
        $imagick->setImageTicksPerSecond(50);
    } else {
        // Modify the frame to be displayed for half as long as it currently is
        $imagick->setImageTicksPerSecond(200);
    }

    $frameCount++;
}

$imagick = $imagick->deconstructImages();

$imagick->writeImages("/path/to/save/output.gif", true);

?>


Sets the image type

  • « Imagick::setImageTicksPerSecond
  • Imagick::setImageUnits »
  • PHP Manual
  • Imagick
  • Sets the image type

Imagick::setImageType

(PECL imagick 2, PECL imagick 3)

Imagick::setImageType — Sets the image type

Beschreibung

public Imagick::setImageType ( int $image_type ) : bool

Sets the image type.

Parameter-Liste

image_type

Rückgabewerte

Liefert true bei Erfolg.


Sets the image units of resolution

  • « Imagick::setImageType
  • Imagick::setImageVirtualPixelMethod »
  • PHP Manual
  • Imagick
  • Sets the image units of resolution

Imagick::setImageUnits

(PECL imagick 2, PECL imagick 3)

Imagick::setImageUnits — Sets the image units of resolution

Beschreibung

public Imagick::setImageUnits ( int $units ) : bool

Sets the image units of resolution.

Parameter-Liste

units

Rückgabewerte

Liefert true bei Erfolg.


Sets the image virtual pixel method

  • « Imagick::setImageUnits
  • Imagick::setImageWhitePoint »
  • PHP Manual
  • Imagick
  • Sets the image virtual pixel method

Imagick::setImageVirtualPixelMethod

(PECL imagick 2, PECL imagick 3)

Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method

Beschreibung

public Imagick::setImageVirtualPixelMethod ( int $method ) : bool

Sets the image virtual pixel method.

Parameter-Liste

method

Rückgabewerte

Liefert true bei Erfolg.


Sets the image chromaticity white point

  • « Imagick::setImageVirtualPixelMethod
  • Imagick::setInterlaceScheme »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity white point

Imagick::setImageWhitePoint

(PECL imagick 2, PECL imagick 3)

Imagick::setImageWhitePoint — Sets the image chromaticity white point

Beschreibung

public Imagick::setImageWhitePoint ( float $x , float $y ) : bool

Sets the image chromaticity white point.

Parameter-Liste

x

y

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Sets the image compression

  • « Imagick::setImageWhitePoint
  • Imagick::setIteratorIndex »
  • PHP Manual
  • Imagick
  • Sets the image compression

Imagick::setInterlaceScheme

(PECL imagick 2, PECL imagick 3)

Imagick::setInterlaceScheme — Sets the image compression

Beschreibung

public Imagick::setInterlaceScheme ( int $interlace_scheme ) : bool

Sets the image compression.

Parameter-Liste

interlace_scheme

Rückgabewerte

Liefert true bei Erfolg.


Set the iterator position

  • « Imagick::setInterlaceScheme
  • Imagick::setLastIterator »
  • PHP Manual
  • Imagick
  • Set the iterator position

Imagick::setIteratorIndex

(PECL imagick 2, PECL imagick 3)

Imagick::setIteratorIndex — Set the iterator position

Beschreibung

public Imagick::setIteratorIndex ( int $index ) : bool

Set the iterator to the position in the image list specified with the index parameter. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

index

The position to set the iterator to

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Using Imagick::setIteratorIndex():

Create images, set and get the iterator index

<?php
$im = new Imagick();
$im->newImage(100, 100, new ImagickPixel("red"));
$im->newImage(100, 100, new ImagickPixel("green"));
$im->newImage(100, 100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo $im->getIteratorIndex();
?>

Siehe auch

  • Imagick::getIteratorIndex() - Gets the index of the current active image
  • Imagick::getImageIndex() - Gets the index of the current active image
  • Imagick::setImageIndex() - Set the iterator position


Sets the Imagick iterator to the last image

  • « Imagick::setIteratorIndex
  • Imagick::setOption »
  • PHP Manual
  • Imagick
  • Sets the Imagick iterator to the last image

Imagick::setLastIterator

(PECL imagick 2 >= 2.0.1, PECL imagick 3)

Imagick::setLastIterator — Sets the Imagick iterator to the last image

Beschreibung

public Imagick::setLastIterator ( ) : bool

Sets the Imagick iterator to the last image.

Rückgabewerte

Liefert true bei Erfolg.


Set an option

  • « Imagick::setLastIterator
  • Imagick::setPage »
  • PHP Manual
  • Imagick
  • Set an option

Imagick::setOption

(PECL imagick 2, PECL imagick 3)

Imagick::setOption — Set an option

Beschreibung

public Imagick::setOption ( string $key , string $value ) : bool

Associates one or more options with the wand.

Parameter-Liste

key

value

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Attempt to reach '$extent' sizeImagick::setOption()

<?php
    function renderJPG($extent) {
        $imagePath = $this->control->getImagePath();
        $imagick = new \Imagick(realpath($imagePath));
        $imagick->setImageFormat('jpg');
        $imagick->setOption('jpeg:extent', $extent);
        header("Content-Type: image/jpg");
        echo $imagick->getImageBlob();
    }

?>

Beispiel #2 Imagick::setOption()

<?php
    function renderPNG($imagePath, $format) {

        $imagick = new \Imagick(realpath($imagePath));
        $imagick->setImageFormat('png');
        $imagick->setOption('png:format', $format);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

    //Save as 64bit PNG.
    renderPNG($imagePath, 'png64');

?>

Beispiel #3 Imagick::setOption()

<?php
    function renderCustomBitDepthPNG() {
        $imagePath = $this->control->getImagePath();
        $imagick = new \Imagick(realpath($imagePath));
        $imagick->setImageFormat('png');

        $imagick->setOption('png:bit-depth', '16');
        $imagick->setOption('png:color-type', 6);
        header("Content-Type: image/png");
        $crash = true;
        if ($crash) {
            echo $imagick->getImageBlob();
        }
        else {
            $tempFilename = tempnam('./', 'imagick');
            $imagick->writeimage(realpath($tempFilename));
            echo file_get_contents($tempFilename);
        }
    }

?>


Sets the page geometry of the Imagick object

  • « Imagick::setOption
  • Imagick::setPointSize »
  • PHP Manual
  • Imagick
  • Sets the page geometry of the Imagick object

Imagick::setPage

(PECL imagick 2, PECL imagick 3)

Imagick::setPage — Sets the page geometry of the Imagick object

Beschreibung

public Imagick::setPage ( int $width , int $height , int $x , int $y ) : bool

Sets the page geometry of the Imagick object.

Parameter-Liste

width

height

x

y

Rückgabewerte

Liefert true bei Erfolg.


Sets point size

  • « Imagick::setPage
  • Imagick::setProgressMonitor »
  • PHP Manual
  • Imagick
  • Sets point size

Imagick::setPointSize

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::setPointSize — Sets point size

Beschreibung

public Imagick::setPointSize ( float $point_size ) : bool

Sets object's point size property. This method can be used for example to set font size for caption: pseudo-format. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.7 oder höher kompiliert wurde.

Parameter-Liste

point_size

Point size

Rückgabewerte

Liefert true bei Erfolg.

Siehe auch

  • Imagick::getPointSize() - Gets point size

Beispiele

Beispiel #1 A Imagick::setPointSize() example

Example of using Imagick::setPointSize

<?php
/* Create new imagick object */
$im = new Imagick();

/* Set the font for the object */
$im->setFont("example.ttf");

/* Set the point size */
$im->setPointSize(12);

/* Create new caption */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Do something with the image */
?>


Description

  • « Imagick::setPointSize
  • Imagick::setRegistry »
  • PHP Manual
  • Imagick
  • Description

Imagick::setProgressMonitor

(PECL imagick 3 >= 3.3.0)

Imagick::setProgressMonitor — Description

Beschreibung

public Imagick::setProgressMonitor ( callable $callback ) : bool

Set a callback that will be called during the processing of the Imagick image.

Parameter-Liste

callback

The progress function to call. It should return true if image processing should continue, or false if it should be cancelled. The offset parameter indicates the progress and the span parameter indicates the total amount of work needed to be done.

callback ( mixed $offset , mixed $span ) : bool
Achtung

The values passed to the callback function are not consistent. In particular the span parameter can increase during image processing. Because of this calculating the percentage complete of an image operation is not trivial.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::setProgressMonitor()

<?php
        $abortReason = null;

        try {
            $imagick = new \Imagick(realpath($this->control->getImagePath()));
            $startTime = time();

            $callback = function ($offset, $span)  use ($startTime, &$abortReason) {
                if (((100 * $offset) / $span)  > 20) {
                    $abortReason = "Processing reached 20%";
                    return false;
                }

                $nowTime = time();

                if ($nowTime - $startTime > 5) {
                    $abortReason = "Image processing took more than 5 seconds";
                    return false;
                }
                if (($offset % 5) == 0) {
                    echo "Progress: $offset / $span <br/>";
                }
                return true;
            };

            $imagick->setProgressMonitor($callback);

            $imagick->waveImage(2, 15);

            echo "Data len is: ".strlen($imagick->getImageBlob());
        }
        catch(\ImagickException $e) {
            if ($abortReason != null) {
                echo "Image processing was aborted: ".$abortReason."<br/>";
            }
            else {
                echo "ImagickException caught: ".$e->getMessage()." Exception type is ".get_class($e);
            }
        }

?>


Description

  • « Imagick::setProgressMonitor
  • Imagick::setResolution »
  • PHP Manual
  • Imagick
  • Description

Imagick::setRegistry

(PECL imagick 3 >= 3.3.0)

Imagick::setRegistry — Description

Beschreibung

public static Imagick::setRegistry ( string $key , string $value ) : bool

Sets the ImageMagick registry entry named key to value. This is most useful for setting "temporary-path" which controls where ImageMagick creates temporary images e.g. while processing PDFs.

Parameter-Liste

key

value

Rückgabewerte

Liefert true bei Erfolg.


Sets the image resolution

  • « Imagick::setRegistry
  • Imagick::setResourceLimit »
  • PHP Manual
  • Imagick
  • Sets the image resolution

Imagick::setResolution

(PECL imagick 2, PECL imagick 3)

Imagick::setResolution — Sets the image resolution

Beschreibung

public Imagick::setResolution ( float $x_resolution , float $y_resolution ) : bool

Sets the image resolution.

Parameter-Liste

x_resolution

The horizontal resolution.

y_resolution

The vertical resolution.

Rückgabewerte

Liefert true bei Erfolg.

Anmerkungen

Imagick::setResolution() must be called before loading or creating an image.

Siehe auch

  • Imagick::setImageResolution() - Sets the image resolution
  • Imagick::getImageResolution() - Gets the image X and Y resolution


Sets the limit for a particular resource

  • « Imagick::setResolution
  • Imagick::setSamplingFactors »
  • PHP Manual
  • Imagick
  • Sets the limit for a particular resource

Imagick::setResourceLimit

(PECL imagick 2, PECL imagick 3)

Imagick::setResourceLimit — Sets the limit for a particular resource

Beschreibung

public static Imagick::setResourceLimit ( int $type , int $limit ) : bool

This method is used to modify the resource limits of the underlying ImageMagick library.

Parameter-Liste

type

Refer to the list of resourcetype constants.

limit

One of the resourcetype constants. The unit depends on the type of the resource being limited.

Rückgabewerte

Liefert true bei Erfolg.

Siehe auch

  • Imagick::getResourceLimit() - Returns the specified resource limit


Sets the image sampling factors

  • « Imagick::setResourceLimit
  • Imagick::setSize »
  • PHP Manual
  • Imagick
  • Sets the image sampling factors

Imagick::setSamplingFactors

(PECL imagick 2, PECL imagick 3)

Imagick::setSamplingFactors — Sets the image sampling factors

Beschreibung

public Imagick::setSamplingFactors ( array $factors ) : bool

Sets the image sampling factors.

Parameter-Liste

factors

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::setSamplingFactors()

<?php
function setSamplingFactors($imagePath) {

    $imagePath = "../imagick/images/FineDetail.png";
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageFormat('jpg');
    $imagick->setSamplingFactors(array('2x2', '1x1', '1x1'));

    $compressed = $imagick->getImageBlob();

    $reopen = new \Imagick();
    $reopen->readImageBlob($compressed);

    $reopen->resizeImage(
        $reopen->getImageWidth() * 4,
        $reopen->getImageHeight() * 4,
        \Imagick::FILTER_POINT,
        1
    );

    header("Content-Type: image/jpg");
    echo $reopen->getImageBlob();
}

?>


Sets the size of the Imagick object

  • « Imagick::setSamplingFactors
  • Imagick::setSizeOffset »
  • PHP Manual
  • Imagick
  • Sets the size of the Imagick object

Imagick::setSize

(PECL imagick 2, PECL imagick 3)

Imagick::setSize — Sets the size of the Imagick object

Beschreibung

public Imagick::setSize ( int $columns , int $rows ) : bool

Sets the size of the Imagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

Parameter-Liste

columns

rows

Rückgabewerte

Liefert true bei Erfolg.


Sets the size and offset of the Imagick object

  • « Imagick::setSize
  • Imagick::setType »
  • PHP Manual
  • Imagick
  • Sets the size and offset of the Imagick object

Imagick::setSizeOffset

(PECL imagick 2, PECL imagick 3)

Imagick::setSizeOffset — Sets the size and offset of the Imagick object

Beschreibung

public Imagick::setSizeOffset ( int $columns , int $rows , int $offset ) : bool

Sets the size and offset of the Imagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

columns

The width in pixels.

rows

The height in pixels.

offset

The image offset.

Rückgabewerte

Liefert true bei Erfolg.


Sets the image type attribute

  • « Imagick::setSizeOffset
  • Imagick::shadeImage »
  • PHP Manual
  • Imagick
  • Sets the image type attribute

Imagick::setType

(PECL imagick 2, PECL imagick 3)

Imagick::setType — Sets the image type attribute

Beschreibung

public Imagick::setType ( int $image_type ) : bool

Sets the image type attribute.

Parameter-Liste

image_type

Rückgabewerte

Liefert true bei Erfolg.


Creates a 3D effect

  • « Imagick::setType
  • Imagick::shadowImage »
  • PHP Manual
  • Imagick
  • Creates a 3D effect

Imagick::shadeImage

(PECL imagick 2, PECL imagick 3)

Imagick::shadeImage — Creates a 3D effect

Beschreibung

public Imagick::shadeImage ( bool $gray , float $azimuth , float $elevation ) : bool

Shines a distant light on an image to create a three-dimensional effect. You control the positioning of the light with azimuth and elevation; azimuth is measured in degrees off the x axis and elevation is measured in pixels above the Z axis. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

gray

A value other than zero shades the intensity of each pixel.

azimuth

Defines the light source direction.

elevation

Defines the light source direction.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Throws ImagickException on failure.

Beispiele

Beispiel #1 Imagick::shadeImage()

<?php
function shadeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shadeImage(true, 45, 20);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Simulates an image shadow

  • « Imagick::shadeImage
  • Imagick::sharpenImage »
  • PHP Manual
  • Imagick
  • Simulates an image shadow

Imagick::shadowImage

(PECL imagick 2, PECL imagick 3)

Imagick::shadowImage — Simulates an image shadow

Beschreibung

public Imagick::shadowImage ( float $opacity , float $sigma , int $x , int $y ) : bool

Simulates an image shadow.

Parameter-Liste

opacity

sigma

x

y

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::shadowImage()

<?php
function shadowImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shadowImage(0.4, 10, 50, 5);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sharpens an image

  • « Imagick::shadowImage
  • Imagick::shaveImage »
  • PHP Manual
  • Imagick
  • Sharpens an image

Imagick::sharpenImage

(PECL imagick 2, PECL imagick 3)

Imagick::sharpenImage — Sharpens an image

Beschreibung

public Imagick::sharpenImage ( float $radius , float $sigma , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Sharpens an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and Imagick::sharpenImage() selects a suitable radius for you.

Parameter-Liste

radius

sigma

channel

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::sharpenImage()

<?php
function sharpenImage($imagePath, $radius, $sigma, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->sharpenimage($radius, $sigma, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Shaves pixels from the image edges

  • « Imagick::sharpenImage
  • Imagick::shearImage »
  • PHP Manual
  • Imagick
  • Shaves pixels from the image edges

Imagick::shaveImage

(PECL imagick 2, PECL imagick 3)

Imagick::shaveImage — Shaves pixels from the image edges

Beschreibung

public Imagick::shaveImage ( int $columns , int $rows ) : bool

Shaves pixels from the image edges. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

Parameter-Liste

columns

rows

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::shaveImage()

<?php
function shaveImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shaveImage(100, 50);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creating a parallelogram

  • « Imagick::shaveImage
  • Imagick::sigmoidalContrastImage »
  • PHP Manual
  • Imagick
  • Creating a parallelogram

Imagick::shearImage

(PECL imagick 2, PECL imagick 3)

Imagick::shearImage — Creating a parallelogram

Beschreibung

public Imagick::shearImage ( mixed $background , float $x_shear , float $y_shear ) : bool

Slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color.

Parameter-Liste

background

The background color

x_shear

The number of degrees to shear on the x axis

y_shear

The number of degrees to shear on the y axis

Rückgabewerte

Liefert true bei Erfolg.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Beispiele

Beispiel #1 Imagick::shearImage()

<?php
function shearImage($imagePath, $color, $shearX, $shearY) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shearimage($color, $shearX, $shearY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Adjusts the contrast of an image

  • « Imagick::shearImage
  • Imagick::sketchImage »
  • PHP Manual
  • Imagick
  • Adjusts the contrast of an image

Imagick::sigmoidalContrastImage

(PECL imagick 2, PECL imagick 3)

Imagick::sigmoidalContrastImage — Adjusts the contrast of an image

Beschreibung

public Imagick::sigmoidalContrastImage ( bool $sharpen , float $alpha , float $beta , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Adjusts the contrast of an image with a non-linear sigmoidal contrast algorithm. Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast indicates how much to increase the contrast (0 is none; 3 is typical; 20 is pushing it); mid-point indicates where midtones fall in the resultant image (0 is white; 50 is middle-gray; 100 is black). Set sharpen to true to increase the image contrast otherwise the contrast is reduced.

See also » ImageMagick v6 Examples - Image Transformations — Sigmoidal Non-linearity Contrast

Parameter-Liste

sharpen

If true increase the contrast, if false decrease the contrast.

alpha

The amount of contrast to apply. 1 is very little, 5 is a significant amount, 20 is extreme.

beta

Where the midpoint of the gradient will be. This value should be in the range 0 to 1 - mutliplied by the quantum value for ImageMagick.

channel

Which color channels the contrast will be applied to.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Create a gradient image using Imagick::sigmoidalContrastImage() suitable for blending two images together smoothly, with the blending defined by $contrast and $the midpoint

<?php

function generateBlendImage($width, $height, $contrast = 10, $midpoint = 0.5) {
    $imagick = new Imagick();
    $imagick->newPseudoImage($width, $height, 'gradient:black-white');
    $quanta = $imagick->getQuantumRange();
    $imagick->sigmoidalContrastImage(true, $contrast, $midpoint * $quanta["quantumRangeLong"]);

    return $imagick;
}

?>

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Simulates a pencil sketch

  • « Imagick::sigmoidalContrastImage
  • Imagick::smushImages »
  • PHP Manual
  • Imagick
  • Simulates a pencil sketch

Imagick::sketchImage

(PECL imagick 2, PECL imagick 3)

Imagick::sketchImage — Simulates a pencil sketch

Beschreibung

public Imagick::sketchImage ( float $radius , float $sigma , float $angle ) : bool

Simulates a pencil sketch. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and Imagick::sketchImage() selects a suitable radius for you. Angle gives the angle of the blurring motion. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

radius

The radius of the Gaussian, in pixels, not counting the center pixel

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::sketchImage()

<?php
function sketchImage($imagePath, $radius, $sigma, $angle) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->sketchimage($radius, $sigma, $angle);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::sketchImage
  • Imagick::solarizeImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::smushImages

(PECL imagick 3 >= 3.3.0)

Imagick::smushImages — Description

Beschreibung

public Imagick::smushImages ( bool $stack , int $offset ) : Imagick

Takes all images from the current image pointer to the end of the image list and smushs them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

Parameter-Liste

stack

offset

Rückgabewerte

The new smushed image.

Beispiele

Beispiel #1 Imagick::smushImages()

<?php
function smushImages($imagePath, $imagePath2) {

    $imagick = new \Imagick(realpath($imagePath));
    $imagick2 = new \Imagick(realpath($imagePath2));

    $imagick->addimage($imagick2);
    $smushed = $imagick->smushImages(false, 50);
    $smushed->setImageFormat('jpg');
    header("Content-Type: image/jpg");
    echo $smushed->getImageBlob();
}

?>


Applies a solarizing effect to the image

  • « Imagick::smushImages
  • Imagick::sparseColorImage »
  • PHP Manual
  • Imagick
  • Applies a solarizing effect to the image

Imagick::solarizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::solarizeImage — Applies a solarizing effect to the image

Beschreibung

public Imagick::solarizeImage ( int $threshold ) : bool

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.

Parameter-Liste

threshold

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::solarizeImage()

<?php
function solarizeImage($imagePath, $solarizeThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->solarizeImage($solarizeThreshold * \Imagick::getQuantum());
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Interpolates colors

  • « Imagick::solarizeImage
  • Imagick::spliceImage »
  • PHP Manual
  • Imagick
  • Interpolates colors

Imagick::sparseColorImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::sparseColorImage — Interpolates colors

Beschreibung

public Imagick::sparseColorImage ( int $SPARSE_METHOD , array $arguments , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Given the arguments array containing numeric values this method interpolates the colors found at those coordinates across the whole image using sparse_method. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.4.5 oder höher kompiliert wurde.

Parameter-Liste

SPARSE_METHOD

Refer to this list of sparse method constants

arguments

An array containing the coordinates. The array is in format array(1,1, 2,45)

channel

Übergeben Sie eine Channel-Konstante, die für Ihren Channel-Moduls gültig ist. Um mehr als einen Channel anzuwenden, können Sie die Channel-Konstanten mit bitweisen Operationen verknüpfen. Der Standardwert ist Imagick::CHANNEL_DEFAULT. Sehen Sie sich auch die Liste der Channel-Konstanten an

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage()

<?php
    function renderImageBarycentric2() {
        $points = [
            [0.30, 0.10, 'red'],
            [0.10, 0.80, 'blue'],
            [0.70, 0.60, 'lime'],
            [0.80, 0.20, 'yellow'],
        ];
        $imagick = createGradientImage(
            400, 400,
            $points,
            \Imagick::SPARSECOLORMETHOD_BARYCENTRIC
        );
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Beispiel #2 SPARSECOLORMETHOD_BILINEAR Imagick::sparseColorImage()

<?php
    function renderImageBilinear() {
        $points = [[0.30, 0.10, 'red'], [0.10, 0.80, 'blue'], [0.70, 0.60, 'lime'], [0.80, 0.20, 'yellow'],];
        $imagick = createGradientImage(500, 500, $points, \Imagick::SPARSECOLORMETHOD_BILINEAR);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Beispiel #3 SPARSECOLORMETHOD_SPEPARDS Imagick::sparseColorImage()

<?php
    function renderImageShepards() {
        $points = [
            [0.30, 0.10, 'red'],
            [0.10, 0.80, 'blue'],
            [0.70, 0.60, 'lime'],
            [0.80, 0.20, 'yellow'],
        ];
        $imagick = createGradientImage(600, 600, $points, \Imagick::SPARSECOLORMETHOD_SPEPARDS);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Beispiel #4 SPARSECOLORMETHOD_VORONOI Imagick::sparseColorImage()

<?php
    function renderImageVoronoi() {
        $points = [
            [0.30, 0.10, 'red'],
            [0.10, 0.80, 'blue'],
            [0.70, 0.60, 'lime'],
            [0.80, 0.20, 'yellow'],
        ];
        $imagick = createGradientImage(500, 500, $points, \Imagick::SPARSECOLORMETHOD_VORONOI);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Beispiel #5 SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage()

<?php
    function renderImageBarycentric() {
        $points = [
            [0, 0, 'skyblue'],
            [-1, 1, 'skyblue'],
            [1, 1, 'black'],
        ];
        $imagick = createGradientImage(600, 200, $points, \Imagick::SPARSECOLORMETHOD_BARYCENTRIC);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Beispiel #6 createGradientImage is used by other examples. Imagick::sparseColorImage()

<?php
function createGradientImage($width, $height, $colorPoints, $sparseMethod, $absolute = false) {

    $imagick = new \Imagick();
    $imagick->newImage($width, $height, "white");
    $imagick->setImageFormat("png");

    $barycentricPoints = array();

    foreach ($colorPoints as $colorPoint) {

        if ($absolute == true) {
            $barycentricPoints[] = $colorPoint[0];
            $barycentricPoints[] = $colorPoint[1];
        }
        else {
            $barycentricPoints[] = $colorPoint[0] * $width;
            $barycentricPoints[] = $colorPoint[1] * $height;
        }

        if (is_string($colorPoint[2])) {
            $imagickPixel = new \ImagickPixel($colorPoint[2]);
        }
        else if ($colorPoint[2] instanceof \ImagickPixel) {
            $imagickPixel = $colorPoint[2];
        }
        else{
            $errorMessage = sprintf(
                "Value %s is neither a string nor an ImagickPixel class. Cannot use as a color.",
                $colorPoint[2]
            );

            throw new \InvalidArgumentException(
                $errorMessage
            );
        }

        $red = $imagickPixel->getColorValue(\Imagick::COLOR_RED);
        $green = $imagickPixel->getColorValue(\Imagick::COLOR_GREEN);
        $blue = $imagickPixel->getColorValue(\Imagick::COLOR_BLUE);
        $alpha = $imagickPixel->getColorValue(\Imagick::COLOR_ALPHA);

        $barycentricPoints[] = $red;
        $barycentricPoints[] = $green;
        $barycentricPoints[] = $blue;
        $barycentricPoints[] = $alpha;
    }

    $imagick->sparseColorImage($sparseMethod, $barycentricPoints);

    return $imagick;
}

?>


Splices a solid color into the image

  • « Imagick::sparseColorImage
  • Imagick::spreadImage »
  • PHP Manual
  • Imagick
  • Splices a solid color into the image

Imagick::spliceImage

(PECL imagick 2, PECL imagick 3)

Imagick::spliceImage — Splices a solid color into the image

Beschreibung

public Imagick::spliceImage ( int $width , int $height , int $x , int $y ) : bool

Splices a solid color into the image.

Parameter-Liste

width

height

x

y

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::spliceImage()

<?php
function spliceImage($imagePath, $startX, $startY, $width, $height) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->spliceImage($width, $height, $startX, $startY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Randomly displaces each pixel in a block

  • « Imagick::spliceImage
  • Imagick::statisticImage »
  • PHP Manual
  • Imagick
  • Randomly displaces each pixel in a block

Imagick::spreadImage

(PECL imagick 2, PECL imagick 3)

Imagick::spreadImage — Randomly displaces each pixel in a block

Beschreibung

public Imagick::spreadImage ( float $radius ) : bool

Special effects method that randomly displaces each pixel in a block defined by the radius parameter.

Parameter-Liste

radius

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::spreadImage()

<?php
function spreadImage($imagePath, $radius) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->spreadImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::spreadImage
  • Imagick::steganoImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::statisticImage

(PECL imagick 3 >= 3.3.0)

Imagick::statisticImage — Description

Beschreibung

public Imagick::statisticImage ( int $type , int $width , int $height , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Replace each pixel with corresponding statistic from the neighborhood of the specified width and height.

Parameter-Liste

type

width

height

channel

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::statisticImage()

<?php
function statisticImage($imagePath, $statisticType, $width, $height, $channel) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->statisticImage(
        $statisticType,
        $width,
        $height,
        $channel
    );

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

statisticImage($imagePath, \Imagick::STATISTIC_MEDIAN, 5, 5, \Imagick::CHANNEL_DEFAULT);

?>


Hides a digital watermark within the image

  • « Imagick::statisticImage
  • Imagick::stereoImage »
  • PHP Manual
  • Imagick
  • Hides a digital watermark within the image

Imagick::steganoImage

(PECL imagick 2, PECL imagick 3)

Imagick::steganoImage — Hides a digital watermark within the image

Beschreibung

public Imagick::steganoImage ( Imagick $watermark_wand , int $offset ) : Imagick

Hides a digital watermark within the image. Recover the hidden watermark later to prove that the authenticity of an image. Offset defines the start position within the image to hide the watermark.

Parameter-Liste

watermark_wand

offset

Rückgabewerte

Liefert true bei Erfolg.


Composites two images

  • « Imagick::steganoImage
  • Imagick::stripImage »
  • PHP Manual
  • Imagick
  • Composites two images

Imagick::stereoImage

(PECL imagick 2, PECL imagick 3)

Imagick::stereoImage — Composites two images

Beschreibung

public Imagick::stereoImage ( Imagick $offset_wand ) : bool

Composites two images and produces a single image that is the composite of a left and right image of a stereo pair.

Parameter-Liste

offset_wand

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Strips an image of all profiles and comments

  • « Imagick::stereoImage
  • Imagick::subImageMatch »
  • PHP Manual
  • Imagick
  • Strips an image of all profiles and comments

Imagick::stripImage

(PECL imagick 2, PECL imagick 3)

Imagick::stripImage — Strips an image of all profiles and comments

Beschreibung

public Imagick::stripImage ( ) : bool

Strips an image of all profiles and comments.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.


Description

  • « Imagick::stripImage
  • Imagick::swirlImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::subImageMatch

(PECL imagick 3 >= 3.3.0)

Imagick::subImageMatch — Description

Beschreibung

public Imagick::subImageMatch ( Imagick $Imagick , array &$offset = ? , float &$similarity = ? ) : Imagick

Searches for a subimage in the current image and returns a similarity image such that an exact match location is completely white and if none of the pixels match, black, otherwise some gray level in-between. You can also pass in the optional parameters bestMatch and similarity. After calling the function similarity will be set to the 'score' of the similarity between the subimage and the matching position in the larger image, bestMatch will contain an associative array with elements x, y, width, height that describe the matching region.

Parameter-Liste

Imagick

offset

similarity

A new image that displays the amount of similarity at each pixel.

Rückgabewerte

Beispiele

Beispiel #1 Imagick::subImageMatch()

<?php
function subImageMatch($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick2 = clone $imagick;
    $imagick2->cropimage(40, 40, 250, 110);
    $imagick2->vignetteimage(0, 1, 3, 3);

    $similarity = null;
    $bestMatch = null;
    $comparison = $imagick->subImageMatch($imagick2, $bestMatch, $similarity);

    $comparison->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Swirls the pixels about the center of the image

  • « Imagick::subImageMatch
  • Imagick::textureImage »
  • PHP Manual
  • Imagick
  • Swirls the pixels about the center of the image

Imagick::swirlImage

(PECL imagick 2, PECL imagick 3)

Imagick::swirlImage — Swirls the pixels about the center of the image

Beschreibung

Imagick::swirlImage ( float $degrees ) : bool

Swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.

Parameter-Liste

degrees

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::swirlImage()

<?php
function swirlImage($imagePath, $swirl) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->swirlImage($swirl);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Repeatedly tiles the texture image

  • « Imagick::swirlImage
  • Imagick::thresholdImage »
  • PHP Manual
  • Imagick
  • Repeatedly tiles the texture image

Imagick::textureImage

(PECL imagick 2, PECL imagick 3)

Imagick::textureImage — Repeatedly tiles the texture image

Beschreibung

Imagick::textureImage ( Imagick $texture_wand ) : Imagick

Repeatedly tiles the texture image across and down the image canvas.

Parameter-Liste

texture_wand

Imagick object to use as texture image

Rückgabewerte

Returns a new Imagick object that has the repeated texture applied.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::textureImage()

<?php
function textureImage($imagePath) {
    $image = new \Imagick();
    $image->newImage(640, 480, new \ImagickPixel('pink'));
    $image->setImageFormat("jpg");
    $texture = new \Imagick(realpath($imagePath));
    $texture->scaleimage($image->getimagewidth() / 4, $image->getimageheight() / 4);
    $image = $image->textureImage($texture);
    header("Content-Type: image/jpg");
    echo $image;
}

?>


Changes the value of individual pixels based on a threshold

  • « Imagick::textureImage
  • Imagick::thumbnailImage »
  • PHP Manual
  • Imagick
  • Changes the value of individual pixels based on a threshold

Imagick::thresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::thresholdImage — Changes the value of individual pixels based on a threshold

Beschreibung

public Imagick::thresholdImage ( float $threshold , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Changes the value of individual pixels based on the intensity of each pixel compared to threshold. The result is a high-contrast, two color image.

Parameter-Liste

threshold

channel

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::thresholdImage()

<?php
function thresholdimage($imagePath, $threshold, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->thresholdimage($threshold * \Imagick::getQuantum(), $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Changes the size of an image

  • « Imagick::thresholdImage
  • Imagick::tintImage »
  • PHP Manual
  • Imagick
  • Changes the size of an image

Imagick::thumbnailImage

(PECL imagick 2, PECL imagick 3)

Imagick::thumbnailImage — Changes the size of an image

Beschreibung

public Imagick::thumbnailImage ( int $columns , int $rows , bool $bestfit = false , bool $fill = false , bool $legacy = false ) : bool

Changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small, low cost thumbnail images suited for display on the Web. If true is given as a third parameter then columns and rows parameters are used as maximums for each side. Both sides will be scaled down until they match or are smaller than the parameter given for the side.

Hinweis: Das Verhalten des Parameters bestfit hat sich mit Imagick 3.0.0 geändert. Vor dieser Version wurde ein Bild der Größe 200x150 bei der angegebenen Größe von 400x400 nicht verändert. In Imagick 3.0.0 und späteren Versionen wird dieses Bild auf die Größe 400x300 hochgerechnet, da dies die passendste größe für die angegebene Bildgröße ist. Wenn der bestfit-Parameter angegeben wird, so muss sowohl eine Breite als auch eine Höhe angegeben werden.

Parameter-Liste

columns

Image width

rows

Image height

bestfit

Whether to force maximum values

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::thumbnailImage()

<?php
function thumbnailImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setbackgroundcolor('rgb(64, 64, 64)');
    $imagick->thumbnailImage(100, 100, true, true);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applies a color vector to each pixel in the image

  • « Imagick::thumbnailImage
  • Imagick::__toString »
  • PHP Manual
  • Imagick
  • Applies a color vector to each pixel in the image

Imagick::tintImage

(PECL imagick 2, PECL imagick 3)

Imagick::tintImage — Applies a color vector to each pixel in the image

Beschreibung

public Imagick::tintImage ( mixed $tint , mixed $opacity , bool $legacy = false ) : bool

Applies a color vector to each pixel in the image. The length of the vector is 0 for black and white and at its maximum for the midtones. The vector weighing function is f(x)=(1-(4.0*((x-0.5)*(x-0.5)))).

Parameter-Liste

tint

opacity

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as the first parameter and a float representing the opacity value as the second parameter. Previous versions allow only an ImagickPixel objects.

Beispiele

Beispiel #1 Imagick::tintImage()

<?php
function tintImage($r, $g, $b, $a) {
    $a = $a / 100;

    $imagick = new \Imagick();
    $imagick->newPseudoImage(400, 400, 'gradient:black-white');

    $tint = new \ImagickPixel("rgb($r, $g, $b)");
    $opacity = new \ImagickPixel("rgb(128, 128, 128, $a)");
    $imagick->tintImage($tint, $opacity);
    $imagick->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Returns the image as a string

  • « Imagick::tintImage
  • Imagick::transformImage »
  • PHP Manual
  • Imagick
  • Returns the image as a string

Imagick::__toString

(PECL imagick 2, PECL imagick 3)

Imagick::__toString — Returns the image as a string

Beschreibung

public Imagick::__toString ( ) : string

Returns the current image as string. This will only return a single image; it should not be used for Imagick objects that contain multiple images e.g. an animated GIF or PDF with multiple pages.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string content on success or an empty string on failure.

Siehe auch

  • Imagick::getImageBlob() - Returns the image sequence as a blob
  • Imagick::getImagesBlob() - Returns all image sequences as a blob


Convenience method for setting crop size and the image geometry

  • « Imagick::__toString
  • Imagick::transformImageColorspace »
  • PHP Manual
  • Imagick
  • Convenience method for setting crop size and the image geometry

Imagick::transformImage

(PECL imagick 2, PECL imagick 3)

Imagick::transformImage — Convenience method for setting crop size and the image geometry

Warnung

Diese Funktion ist von Imagick 3.4.4 an MISSBILLIGT. Von der weiteren Verwendung wird dringend abgeraten.

Beschreibung

public Imagick::transformImage ( string $crop , string $geometry ) : Imagick

A convenience method for setting crop size and the image geometry from strings. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

crop

A crop geometry string. This geometry defines a subregion of the image to crop.

geometry

An image geometry string. This geometry defines the final size of the image.

Rückgabewerte

Returns an Imagick object containing the transformed image.

Beispiele

Beispiel #1 Using Imagick::transformImage():

The example creates a 100x100 black image.

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");
$new_image = $image->transformImage("100x100", "100x100");
$new_image->writeImage('test_out.jpg');
?>

Siehe auch

  • Imagick::cropImage() - Extracts a region of the image
  • Imagick::resizeImage() - Scales an image
  • Imagick::thumbnailImage() - Changes the size of an image


Transforms an image to a new colorspace

  • « Imagick::transformImage
  • Imagick::transparentPaintImage »
  • PHP Manual
  • Imagick
  • Transforms an image to a new colorspace

Imagick::transformImageColorspace

(PECL imagick 3)

Imagick::transformImageColorspace — Transforms an image to a new colorspace

Beschreibung

public Imagick::transformImageColorspace ( int $colorspace ) : bool

Transforms an image to a new colorspace.

Parameter-Liste

colorspace

The colorspace the image should be transformed to, one of the COLORSPACE constants e.g. Imagick::COLORSPACE_CMYK.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::transformImageColorspace() example

Transforms an image to a new colorspace, and then extracts a single channel so that the individual channel values can be viewed.

<?php
function transformImageColorspace($imagePath, $colorSpace, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transformimagecolorspace($colorSpace);
    //channel should be one of the channel constants e.g. \Imagick::CHANNEL_BLUE
    $imagick->separateImageChannel($channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}
?>

Siehe auch

  • Imagick::setColorSpace() - Set colorspace

Beispiele

Beispiel #2 Imagick::transformImageColorspace()

<?php
function transformImageColorspace($imagePath, $colorSpace, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transformimagecolorspace($colorSpace);
    $imagick->separateImageChannel($channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Paints pixels transparent

  • « Imagick::transformImageColorspace
  • Imagick::transposeImage »
  • PHP Manual
  • Imagick
  • Paints pixels transparent

Imagick::transparentPaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::transparentPaintImage — Paints pixels transparent

Beschreibung

public Imagick::transparentPaintImage ( mixed $target , float $alpha , float $fuzz , bool $invert ) : bool

Paints pixels matching the target color transparent. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.8 oder höher kompiliert wurde.

Parameter-Liste

target

The target color to paint

alpha

Die Stufe der Transparenz. 1.0 ist völlig undurchsichtig und 0.0 ist komplett transparent.

fuzz

Die Menge an Ungenauigkeit. Wird dieser Wert z.B. auf 10 gesetzt, so werden die Farbe Rot sowohl bei Intensitäten von 100 als auch 102 als identisch betrachtet.

invert

If true paints any pixel that does not match the target color.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::transparentPaintImage()

<?php
function transparentPaintImage($color, $alpha, $fuzz) {
    $imagick = new \Imagick(realpath("images/BlueScreen.jpg"));

    //Need to be in a format that supports transparency
    $imagick->setimageformat('png');

    $imagick->transparentPaintImage(
        $color, $alpha, $fuzz * \Imagick::getQuantum(), false
    );

    //Not required, but helps tidy up left over pixels
    $imagick->despeckleimage();

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Creates a vertical mirror image

  • « Imagick::transparentPaintImage
  • Imagick::transverseImage »
  • PHP Manual
  • Imagick
  • Creates a vertical mirror image

Imagick::transposeImage

(PECL imagick 2, PECL imagick 3)

Imagick::transposeImage — Creates a vertical mirror image

Beschreibung

public Imagick::transposeImage ( ) : bool

Creates a vertical mirror image by reflecting the pixels around the central x-axis while rotating them 90-degrees. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Rückgabewerte

Liefert true bei Erfolg.

Siehe auch

  • Imagick::transverseImage() - Creates a horizontal mirror image

Beispiele

Beispiel #1 Imagick::transposeImage()

<?php
function transposeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transposeImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a horizontal mirror image

  • « Imagick::transposeImage
  • Imagick::trimImage »
  • PHP Manual
  • Imagick
  • Creates a horizontal mirror image

Imagick::transverseImage

(PECL imagick 2, PECL imagick 3)

Imagick::transverseImage — Creates a horizontal mirror image

Beschreibung

public Imagick::transverseImage ( ) : bool

Creates a horizontal mirror image by reflecting the pixels around the central y-axis while rotating them 270-degrees. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Rückgabewerte

Liefert true bei Erfolg.

Siehe auch

  • Imagick::transposeImage() - Creates a vertical mirror image

Beispiele

Beispiel #1 Imagick::transverseImage()

<?php
function transverseImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transverseImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Remove edges from the image

  • « Imagick::transverseImage
  • Imagick::uniqueImageColors »
  • PHP Manual
  • Imagick
  • Remove edges from the image

Imagick::trimImage

(PECL imagick 2, PECL imagick 3)

Imagick::trimImage — Remove edges from the image

Beschreibung

public Imagick::trimImage ( float $fuzz ) : bool

Remove edges that are the background color from the image. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

fuzz

By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. This parameter represents the variation on the quantum range.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Using Imagick::trimImage():

Trim an image, then display to the browser.

<?php
/* Create the object and read the image in */
$im = new Imagick("image.jpg");

/* Trim the image. */
$im->trimImage(0);

/* Ouput the image */
header("Content-Type: image/" . $im->getImageFormat());
echo $im;
?>

Siehe auch

  • Imagick::getQuantumDepth() - Gets the quantum depth
  • Imagick::getQuantumRange() - Returns the Imagick quantum range
  • imagecropauto() - Crop an image automatically using one of the available modes


Discards all but one of any pixel color

  • « Imagick::trimImage
  • Imagick::unsharpMaskImage »
  • PHP Manual
  • Imagick
  • Discards all but one of any pixel color

Imagick::uniqueImageColors

(PECL imagick 2,PECL imagick 3)

Imagick::uniqueImageColors — Discards all but one of any pixel color

Beschreibung

public Imagick::uniqueImageColors ( ) : bool

Discards all but one of any pixel color. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Imagick::uniqueImageColors()

<?php
function uniqueImageColors($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    //Reduce the image to 256 colours nicely.
    $imagick->quantizeImage(256, \Imagick::COLORSPACE_YIQ, 0, false, false);
    $imagick->uniqueImageColors();
    $imagick->scaleimage($imagick->getImageWidth(), $imagick->getImageHeight() * 20);
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sharpens an image

  • « Imagick::uniqueImageColors
  • Imagick::valid »
  • PHP Manual
  • Imagick
  • Sharpens an image

Imagick::unsharpMaskImage

(PECL imagick 2, PECL imagick 3)

Imagick::unsharpMaskImage — Sharpens an image

Beschreibung

public Imagick::unsharpMaskImage ( float $radius , float $sigma , float $amount , float $threshold , int $channel = Imagick::CHANNEL_DEFAULT ) : bool

Sharpens an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and Imagick::UnsharpMaskImage() selects a suitable radius for you.

Parameter-Liste

radius

sigma

amount

threshold

channel

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Beispiele

Beispiel #1 Imagick::unsharpMaskImage()

<?php
function unsharpMaskImage($imagePath, $radius, $sigma, $amount, $unsharpThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->unsharpMaskImage($radius, $sigma, $amount, $unsharpThreshold);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Checks if the current item is valid

  • « Imagick::unsharpMaskImage
  • Imagick::vignetteImage »
  • PHP Manual
  • Imagick
  • Checks if the current item is valid

Imagick::valid

(PECL imagick 2, PECL imagick 3)

Imagick::valid — Checks if the current item is valid

Beschreibung

public Imagick::valid ( ) : bool

Checks if the current item is valid.

Rückgabewerte

Liefert true bei Erfolg.


Adds vignette filter to the image

  • « Imagick::valid
  • Imagick::waveImage »
  • PHP Manual
  • Imagick
  • Adds vignette filter to the image

Imagick::vignetteImage

(PECL imagick 2, PECL imagick 3)

Imagick::vignetteImage — Adds vignette filter to the image

Beschreibung

public Imagick::vignetteImage ( float $blackPoint , float $whitePoint , int $x , int $y ) : bool

Softens the edges of the image in vignette style. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

blackPoint

The black point.

whitePoint

The white point

x

X offset of the ellipse

y

Y offset of the ellipse

Rückgabewerte

Liefert true bei Erfolg.

Siehe auch

  • Imagick::waveImage() - Applies wave filter to the image
  • Imagick::swirlImage() - Swirls the pixels about the center of the image

Beispiele

Beispiel #1 Imagick::vignetteImage()

<?php
function vignetteImage($imagePath, $blackPoint, $whitePoint, $x, $y) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->vignetteImage($blackPoint, $whitePoint, $x, $y);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applies wave filter to the image

  • « Imagick::vignetteImage
  • Imagick::whiteThresholdImage »
  • PHP Manual
  • Imagick
  • Applies wave filter to the image

Imagick::waveImage

(PECL imagick 2, PECL imagick 3)

Imagick::waveImage — Applies wave filter to the image

Beschreibung

public Imagick::waveImage ( float $amplitude , float $length ) : bool

Applies a wave filter to the image. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.2.9 oder höher kompiliert wurde.

Parameter-Liste

amplitude

The amplitude of the wave.

length

The length of the wave.

Rückgabewerte

Liefert true bei Erfolg.

Fehler/Exceptions

Wirft ImagickException bei Fehlern.

Siehe auch

  • Imagick::solarizeImage() - Applies a solarizing effect to the image
  • Imagick::oilpaintImage() - Simulates an oil painting
  • Imagick::embossImage() - Returns a grayscale image with a three-dimensional effect
  • Imagick::addNoiseImage() - Adds random noise to the image
  • Imagick::swirlImage() - Swirls the pixels about the center of the image

Beispiele

Beispiel #1 WaveImage can be quite slow Imagick::waveImage()

<?php
function waveImage($imagePath, $amplitude, $length) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->waveImage($amplitude, $length);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Force all pixels above the threshold into white

  • « Imagick::waveImage
  • Imagick::writeImage »
  • PHP Manual
  • Imagick
  • Force all pixels above the threshold into white

Imagick::whiteThresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::whiteThresholdImage — Force all pixels above the threshold into white

Beschreibung

public Imagick::whiteThresholdImage ( mixed $threshold ) : bool

Is like Imagick::ThresholdImage() but force all pixels above the threshold into white while leaving all pixels below the threshold unchanged.

Parameter-Liste

threshold

Rückgabewerte

Liefert true bei Erfolg.

Changelog

Version | Beschreibung
PECL imagick 2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.

Beispiele

Beispiel #1 Imagick::whiteThresholdImage()

<?php
function whiteThresholdImage($imagePath, $color) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->whiteThresholdImage($color);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Writes an image to the specified filename

  • « Imagick::whiteThresholdImage
  • Imagick::writeImageFile »
  • PHP Manual
  • Imagick
  • Writes an image to the specified filename

Imagick::writeImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImage — Writes an image to the specified filename

Beschreibung

public Imagick::writeImage ( string $filename = NULL ) : bool

Writes an image to the specified filename. If the filename parameter is NULL, the image is written to the filename set by Imagick::readImage() or Imagick::setImageFilename().

Parameter-Liste

filename

Filename where to write the image. The extension of the filename defines the type of the file. Format can be forced regardless of file extension using format: prefix, for example "jpg:test.png".

Rückgabewerte

Liefert true bei Erfolg.


Writes an image to a filehandle

  • « Imagick::writeImage
  • Imagick::writeImages »
  • PHP Manual
  • Imagick
  • Writes an image to a filehandle

Imagick::writeImageFile

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImageFile — Writes an image to a filehandle

Beschreibung

public Imagick::writeImageFile ( resource $filehandle , string $format = ? ) : bool

Writes the image sequence to an open filehandle. The handle must be opened with for example fopen. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.6 oder höher kompiliert wurde.

Parameter-Liste

filehandle

Filehandle where to write the image

Rückgabewerte

Liefert true bei Erfolg.


Writes an image or image sequence

  • « Imagick::writeImageFile
  • Imagick::writeImagesFile »
  • PHP Manual
  • Imagick
  • Writes an image or image sequence

Imagick::writeImages

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImages — Writes an image or image sequence

Beschreibung

public Imagick::writeImages ( string $filename , bool $adjoin ) : bool

Writes an image or image sequence.

Parameter-Liste

filename

adjoin

Rückgabewerte

Liefert true bei Erfolg.


Writes frames to a filehandle

  • « Imagick::writeImages
  • ImagickDraw »
  • PHP Manual
  • Imagick
  • Writes frames to a filehandle

Imagick::writeImagesFile

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImagesFile — Writes frames to a filehandle

Beschreibung

public Imagick::writeImagesFile ( resource $filehandle , string $format = ? ) : bool

Writes all image frames into an open filehandle. This method can be used to write animated gifs or other multiframe images into open filehandle. Diese Funktion ist verfügbar, wenn Imagick gegen die ImageMagick-Version 6.3.6 oder höher kompiliert wurde.

Parameter-Liste

filehandle

Filehandle where to write the images

Rückgabewerte

Liefert true bei Erfolg.


The ImagickDraw class

(PECL imagick 2, PECL imagick 3)

Klassenbeschreibung

ImagickDraw {
public affine ( array $affine ) : bool
public annotation ( float $x , float $y , string $text ) : bool
public arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed ) : bool
public bezier ( array $coordinates ) : bool
public circle ( float $ox , float $oy , float $px , float $py ) : bool
public clear ( ) : bool
public clone ( ) : ImagickDraw
public color ( float $x , float $y , int $paintMethod ) : bool
public comment ( string $comment ) : bool
public composite ( int $compose , float $x , float $y , float $width , float $height , Imagick $compositeWand ) : bool
public __construct ( )
public destroy ( ) : bool
public ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end ) : bool
public getClipPath ( ) : string
public getClipRule ( ) : int
public getClipUnits ( ) : int
public getFillColor ( ) : ImagickPixel
public getFillOpacity ( ) : float
public getFillRule ( ) : int
public getFont ( ) : string
public getFontFamily ( ) : string
public getFontSize ( ) : float
public getFontStretch ( ) : int
public getFontStyle ( ) : int
public getFontWeight ( ) : int
public getGravity ( ) : int
public getStrokeAntialias ( ) : bool
public getStrokeColor ( ) : ImagickPixel
public getStrokeDashArray ( ) : array
public getStrokeDashOffset ( ) : float
public getStrokeLineCap ( ) : int
public getStrokeLineJoin ( ) : int
public getStrokeMiterLimit ( ) : int
public getStrokeOpacity ( ) : float
public getStrokeWidth ( ) : float
public getTextAlignment ( ) : int
public getTextAntialias ( ) : bool
public getTextDecoration ( ) : int
public getTextEncoding ( ) : string
public getTextInterlineSpacing ( ) : float
public getTextInterwordSpacing ( ) : float
public getTextKerning ( ) : float
public getTextUnderColor ( ) : ImagickPixel
public getVectorGraphics ( ) : string
public line ( float $sx , float $sy , float $ex , float $ey ) : bool
public matte ( float $x , float $y , int $paintMethod ) : bool
public pathClose ( ) : bool
public pathCurveToAbsolute ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y ) : bool
public pathCurveToQuadraticBezierAbsolute ( float $x1 , float $y1 , float $x , float $y ) : bool
public pathCurveToQuadraticBezierRelative ( float $x1 , float $y1 , float $x , float $y ) : bool
public pathCurveToQuadraticBezierSmoothAbsolute ( float $x , float $y ) : bool
public pathCurveToQuadraticBezierSmoothRelative ( float $x , float $y ) : bool
public pathCurveToRelative ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y ) : bool
public pathCurveToSmoothAbsolute ( float $x2 , float $y2 , float $x , float $y ) : bool
public pathCurveToSmoothRelative ( float $x2 , float $y2 , float $x , float $y ) : bool
public pathEllipticArcAbsolute ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y ) : bool
public pathEllipticArcRelative ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y ) : bool
public pathFinish ( ) : bool
public pathLineToAbsolute ( float $x , float $y ) : bool
public pathLineToHorizontalAbsolute ( float $x ) : bool
public pathLineToHorizontalRelative ( float $x ) : bool
public pathLineToRelative ( float $x , float $y ) : bool
public pathLineToVerticalAbsolute ( float $y ) : bool
public pathLineToVerticalRelative ( float $y ) : bool
public pathMoveToAbsolute ( float $x , float $y ) : bool
public pathMoveToRelative ( float $x , float $y ) : bool
public pathStart ( ) : bool
public point ( float $x , float $y ) : bool
public polygon ( array $coordinates ) : bool
public polyline ( array $coordinates ) : bool
public pop ( ) : bool
public popClipPath ( ) : bool
public popDefs ( ) : bool
public popPattern ( ) : bool
public push ( ) : bool
public pushClipPath ( string $clip_mask_id ) : bool
public pushDefs ( ) : bool
public pushPattern ( string $pattern_id , float $x , float $y , float $width , float $height ) : bool
public rectangle ( float $x1 , float $y1 , float $x2 , float $y2 ) : bool
public render ( ) : bool
public resetVectorGraphics ( ) : bool
public rotate ( float $degrees ) : bool
public roundRectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry ) : bool
public scale ( float $x , float $y ) : bool
public setClipPath ( string $clip_mask ) : bool
public setClipRule ( int $fill_rule ) : bool
public setClipUnits ( int $clip_units ) : bool
public setFillAlpha ( float $opacity ) : bool
public setFillColor ( ImagickPixel $fill_pixel ) : bool
public setFillOpacity ( float $fillOpacity ) : bool
public setFillPatternURL ( string $fill_url ) : bool
public setFillRule ( int $fill_rule ) : bool
public setFont ( string $font_name ) : bool
public setFontFamily ( string $font_family ) : bool
public setFontSize ( float $pointsize ) : bool
public setFontStretch ( int $fontStretch ) : bool
public setFontStyle ( int $style ) : bool
public setFontWeight ( int $font_weight ) : bool
public setGravity ( int $gravity ) : bool
public setResolution ( float $x_resolution , float $y_resolution ) : bool
public setStrokeAlpha ( float $opacity ) : bool
public setStrokeAntialias ( bool $stroke_antialias ) : bool
public setStrokeColor ( ImagickPixel $stroke_pixel ) : bool
public setStrokeDashArray ( array $dashArray ) : bool
public setStrokeDashOffset ( float $dash_offset ) : bool
public setStrokeLineCap ( int $linecap ) : bool
public setStrokeLineJoin ( int $linejoin ) : bool
public setStrokeMiterLimit ( int $miterlimit ) : bool
public setStrokeOpacity ( float $stroke_opacity ) : bool
public setStrokePatternURL ( string $stroke_url ) : bool
public setStrokeWidth ( float $stroke_width ) : bool
public setTextAlignment ( int $alignment ) : bool
public setTextAntialias ( bool $antiAlias ) : bool
public setTextDecoration ( int $decoration ) : bool
public setTextEncoding ( string $encoding ) : bool
public setTextInterlineSpacing ( float $spacing ) : bool
public setTextInterwordSpacing ( float $spacing ) : bool
public setTextKerning ( float $kerning ) : bool
public setTextUnderColor ( ImagickPixel $under_color ) : bool
public setVectorGraphics ( string $xml ) : bool
public setViewbox ( int $x1 , int $y1 , int $x2 , int $y2 ) : bool
public skewX ( float $degrees ) : bool
public skewY ( float $degrees ) : bool
public translate ( float $x , float $y ) : bool
}

Inhaltsverzeichnis

  • ImagickDraw::affine — Adjusts the current affine transformation matrix
  • ImagickDraw::annotation — Draws text on the image
  • ImagickDraw::arc — Draws an arc
  • ImagickDraw::bezier — Draws a bezier curve
  • ImagickDraw::circle — Draws a circle
  • ImagickDraw::clear — Clears the ImagickDraw
  • ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object
  • ImagickDraw::color — Draws color on image
  • ImagickDraw::comment — Adds a comment
  • ImagickDraw::composite — Composites an image onto the current image
  • ImagickDraw::__construct — The ImagickDraw constructor
  • ImagickDraw::destroy — Frees all associated resources
  • ImagickDraw::ellipse — Draws an ellipse on the image
  • ImagickDraw::getClipPath — Obtains the current clipping path ID
  • ImagickDraw::getClipRule — Returns the current polygon fill rule
  • ImagickDraw::getClipUnits — Returns the interpretation of clip path units
  • ImagickDraw::getFillColor — Returns the fill color
  • ImagickDraw::getFillOpacity — Returns the opacity used when drawing
  • ImagickDraw::getFillRule — Returns the fill rule
  • ImagickDraw::getFont — Returns the font
  • ImagickDraw::getFontFamily — Returns the font family
  • ImagickDraw::getFontSize — Returns the font pointsize
  • ImagickDraw::getFontStretch — Description
  • ImagickDraw::getFontStyle — Returns the font style
  • ImagickDraw::getFontWeight — Returns the font weight
  • ImagickDraw::getGravity — Returns the text placement gravity
  • ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting
  • ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines
  • ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths
  • ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash
  • ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked
  • ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked
  • ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit
  • ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines
  • ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines
  • ImagickDraw::getTextAlignment — Returns the text alignment
  • ImagickDraw::getTextAntialias — Returns the current text antialias setting
  • ImagickDraw::getTextDecoration — Returns the text decoration
  • ImagickDraw::getTextEncoding — Returns the code set used for text annotations
  • ImagickDraw::getTextInterlineSpacing — Description
  • ImagickDraw::getTextInterwordSpacing — Description
  • ImagickDraw::getTextKerning — Description
  • ImagickDraw::getTextUnderColor — Returns the text under color
  • ImagickDraw::getVectorGraphics — Returns a string containing vector graphics
  • ImagickDraw::line — Draws a line
  • ImagickDraw::matte — Paints on the image's opacity channel
  • ImagickDraw::pathClose — Adds a path element to the current path
  • ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve
  • ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc
  • ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc
  • ImagickDraw::pathFinish — Terminates the current path
  • ImagickDraw::pathLineToAbsolute — Draws a line path
  • ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path
  • ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line
  • ImagickDraw::pathLineToRelative — Draws a line path
  • ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line
  • ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path
  • ImagickDraw::pathMoveToAbsolute — Starts a new sub-path
  • ImagickDraw::pathMoveToRelative — Starts a new sub-path
  • ImagickDraw::pathStart — Declares the start of a path drawing list
  • ImagickDraw::point — Draws a point
  • ImagickDraw::polygon — Draws a polygon
  • ImagickDraw::polyline — Draws a polyline
  • ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
  • ImagickDraw::popClipPath — Terminates a clip path definition
  • ImagickDraw::popDefs — Terminates a definition list
  • ImagickDraw::popPattern — Terminates a pattern definition
  • ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack
  • ImagickDraw::pushClipPath — Starts a clip path definition
  • ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing
  • ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
  • ImagickDraw::rectangle — Draws a rectangle
  • ImagickDraw::render — Renders all preceding drawing commands onto the image
  • ImagickDraw::resetVectorGraphics — Description
  • ImagickDraw::rotate — Applies the specified rotation to the current coordinate space
  • ImagickDraw::roundRectangle — Draws a rounded rectangle
  • ImagickDraw::scale — Adjusts the scaling factor
  • ImagickDraw::setClipPath — Associates a named clipping path with the image
  • ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path
  • ImagickDraw::setClipUnits — Sets the interpretation of clip path units
  • ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture
  • ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects
  • ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture
  • ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects
  • ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons
  • ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text
  • ImagickDraw::setFontFamily — Sets the font family to use when annotating with text
  • ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text
  • ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text
  • ImagickDraw::setFontStyle — Sets the font style to use when annotating with text
  • ImagickDraw::setFontWeight — Sets the font weight
  • ImagickDraw::setGravity — Sets the text placement gravity
  • ImagickDraw::setResolution — Description
  • ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines
  • ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased
  • ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines
  • ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths
  • ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash
  • ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked
  • ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked
  • ImagickDraw::setStrokeMiterLimit — Specifies the miter limit
  • ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines
  • ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines
  • ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines
  • ImagickDraw::setTextAlignment — Specifies a text alignment
  • ImagickDraw::setTextAntialias — Controls whether text is antialiased
  • ImagickDraw::setTextDecoration — Specifies a decoration
  • ImagickDraw::setTextEncoding — Specifies the text code set
  • ImagickDraw::setTextInterlineSpacing — Description
  • ImagickDraw::setTextInterwordSpacing — Description
  • ImagickDraw::setTextKerning — Description
  • ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle
  • ImagickDraw::setVectorGraphics — Sets the vector graphics
  • ImagickDraw::setViewbox — Sets the overall canvas size
  • ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction
  • ImagickDraw::skewY — Skews the current coordinate system in the vertical direction
  • ImagickDraw::translate — Applies a translation to the current coordinate system


Adjusts the current affine transformation matrix

  • « ImagickDraw
  • ImagickDraw::annotation »
  • PHP Manual
  • ImagickDraw
  • Adjusts the current affine transformation matrix

ImagickDraw::affine

(PECL imagick 2, PECL imagick 3)

ImagickDraw::affine — Adjusts the current affine transformation matrix

Beschreibung

public ImagickDraw::affine ( array $affine ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Adjusts the current affine transformation matrix with the specified affine transformation matrix.

Parameter-Liste

affine

Affine matrix parameters

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::affine()

<?php
function affine($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);

    $PI = 3.141592653589794;
    $angle = 60 * $PI / 360;

    //Scale the drawing co-ordinates.
    $affineScale = array("sx" => 1.75, "sy" => 1.75, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0);

    //Shear the drawing co-ordinates.
    $affineShear = array("sx" => 1, "sy" => 1, "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0);

    //Rotate the drawing co-ordinates. The shear affine matrix
    //produces incorrectly scaled drawings.
    $affineRotate = array("sx" => cos($angle), "sy" => cos($angle), "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0,);

    //Translate (offset) the drawing
    $affineTranslate = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 30, "ty" => 30);

    //The identiy affine matrix
    $affineIdentity = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0);

    $examples = [$affineScale, $affineShear, $affineRotate, $affineTranslate, $affineIdentity,];

    $count = 0;

    foreach ($examples as $example) {
        $draw->push();
        $draw->translate(($count % 2) * 250, intval($count / 2) * 250);
        $draw->translate(100, 100);
        $draw->affine($example);
        $draw->rectangle(-50, -50, 50, 50);
        $draw->pop();
        $count++;
    }

    //Create an image object which the draw commands can be rendered into
    $image = new \Imagick();
    $image->newImage(500, 750, $backgroundColor);
    $image->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $image->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Draws text on the image

  • « ImagickDraw::affine
  • ImagickDraw::arc »
  • PHP Manual
  • ImagickDraw
  • Draws text on the image

ImagickDraw::annotation

(PECL imagick 2, PECL imagick 3)

ImagickDraw::annotation — Draws text on the image

Beschreibung

public ImagickDraw::annotation ( float $x , float $y , string $text ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws text on the image.

Parameter-Liste

x

The x coordinate where text is drawn

y

The y coordinate where text is drawn

text

The text to draw on the image

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws an arc

  • « ImagickDraw::annotation
  • ImagickDraw::bezier »
  • PHP Manual
  • ImagickDraw
  • Draws an arc

ImagickDraw::arc

(PECL imagick 2, PECL imagick 3)

ImagickDraw::arc — Draws an arc

Beschreibung

public ImagickDraw::arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws an arc falling within a specified bounding rectangle on the image.

Parameter-Liste

sx

Starting x ordinate of bounding rectangle

sy

starting y ordinate of bounding rectangle

ex

ending x ordinate of bounding rectangle

ey

ending y ordinate of bounding rectangle

sd

starting degrees of rotation

ed

ending degrees of rotation

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::arc()

<?php
function arc($strokeColor, $fillColor, $backgroundColor, $startX, $startY, $endX, $endY, $startAngle, $endAngle) {

    //Create a ImagickDraw object to draw into.
    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);

    $draw->arc($startX, $startY, $endX, $endY, $startAngle, $endAngle);

    //Create an image object which the draw commands can be rendered into
    $image = new \Imagick();
    $image->newImage(IMAGE_WIDTH, IMAGE_HEIGHT, $backgroundColor);
    $image->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $image->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Draws a bezier curve

  • « ImagickDraw::arc
  • ImagickDraw::circle »
  • PHP Manual
  • ImagickDraw
  • Draws a bezier curve

ImagickDraw::bezier

(PECL imagick 2, PECL imagick 3)

ImagickDraw::bezier — Draws a bezier curve

Beschreibung

public ImagickDraw::bezier ( array $coordinates ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a bezier curve through a set of points on the image.

Parameter-Liste

coordinates

Multidimensional array like array( array( 'x' => 1, 'y' => 2 ), array( 'x' => 3, 'y' => 4 ) )

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::bezier()

<?php
function bezier($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);

    $smoothPointsSet = [
        [
            ['x' => 10.0 * 5, 'y' => 10.0 * 5],
            ['x' => 30.0 * 5, 'y' => 90.0 * 5],
            ['x' => 25.0 * 5, 'y' => 10.0 * 5],
            ['x' => 50.0 * 5, 'y' => 50.0 * 5],
        ],
        [
            ['x' => 50.0 * 5, 'y' => 50.0 * 5],
            ['x' => 75.0 * 5, 'y' => 90.0 * 5],
            ['x' => 70.0 * 5, 'y' => 10.0 * 5],
            ['x' => 90.0 * 5, 'y' => 40.0 * 5],
        ],
    ];

    foreach ($smoothPointsSet as $points) {
        $draw->bezier($points);
    }

    $disjointPoints = [
        [
            ['x' => 10 * 5, 'y' => 10 * 5],
            ['x' => 30 * 5, 'y' => 90 * 5],
            ['x' => 25 * 5, 'y' => 10 * 5],
            ['x' => 50 * 5, 'y' => 50 * 5],
        ],
        [
            ['x' => 50 * 5, 'y' => 50 * 5],
            ['x' => 80 * 5, 'y' => 50 * 5],
            ['x' => 70 * 5, 'y' => 10 * 5],
            ['x' => 90 * 5, 'y' => 40 * 5],
         ]
    ];
    $draw->translate(0, 200);

    foreach ($disjointPoints as $points) {
        $draw->bezier($points);
    }

    //Create an image object which the draw commands can be rendered into
    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $imagick->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Draws a circle

  • « ImagickDraw::bezier
  • ImagickDraw::clear »
  • PHP Manual
  • ImagickDraw
  • Draws a circle

ImagickDraw::circle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::circle — Draws a circle

Beschreibung

public ImagickDraw::circle ( float $ox , float $oy , float $px , float $py ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a circle on the image.

Parameter-Liste

ox

origin x coordinate

oy

origin y coordinate

px

perimeter x coordinate

py

perimeter y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::circle()

<?php
function circle($strokeColor, $fillColor, $backgroundColor, $originX, $originY, $endX, $endY) {

    //Create a ImagickDraw object to draw into.
    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->circle($originX, $originY, $endX, $endY);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Clears the ImagickDraw

  • « ImagickDraw::circle
  • ImagickDraw::clone »
  • PHP Manual
  • ImagickDraw
  • Clears the ImagickDraw

ImagickDraw::clear

(PECL imagick 2, PECL imagick 3)

ImagickDraw::clear — Clears the ImagickDraw

Beschreibung

public ImagickDraw::clear ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Clears the ImagickDraw object of any accumulated commands, and resets the settings it contains to their defaults.

Rückgabewerte

Returns an ImagickDraw object.


Makes an exact copy of the specified ImagickDraw object

  • « ImagickDraw::clear
  • ImagickDraw::color »
  • PHP Manual
  • ImagickDraw
  • Makes an exact copy of the specified ImagickDraw object

ImagickDraw::clone

(PECL imagick 2, PECL imagick 3)

ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object

Beschreibung

public ImagickDraw::clone ( ) : ImagickDraw
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Makes an exact copy of the specified ImagickDraw object.

Rückgabewerte

What the function returns, first on success, then on failure. See also the &return.success; entity


Draws color on image

  • « ImagickDraw::clone
  • ImagickDraw::comment »
  • PHP Manual
  • ImagickDraw
  • Draws color on image

ImagickDraw::color

(PECL imagick 2, PECL imagick 3)

ImagickDraw::color — Draws color on image

Beschreibung

public ImagickDraw::color ( float $x , float $y , int $paintMethod ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws color on image using the current fill color, starting at specified position, and using specified paint method.

Parameter-Liste

x

x coordinate of the paint

y

y coordinate of the paint

paintMethod

one of the PAINT_ constants

Rückgabewerte

Es wird kein Wert zurückgegeben.


Adds a comment

  • « ImagickDraw::color
  • ImagickDraw::composite »
  • PHP Manual
  • ImagickDraw
  • Adds a comment

ImagickDraw::comment

(PECL imagick 2, PECL imagick 3)

ImagickDraw::comment — Adds a comment

Beschreibung

public ImagickDraw::comment ( string $comment ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Adds a comment to a vector output stream.

Parameter-Liste

comment

The comment string to add to vector output stream

Rückgabewerte

Es wird kein Wert zurückgegeben.


Composites an image onto the current image

  • « ImagickDraw::comment
  • ImagickDraw::__construct »
  • PHP Manual
  • ImagickDraw
  • Composites an image onto the current image

ImagickDraw::composite

(PECL imagick 2, PECL imagick 3)

ImagickDraw::composite — Composites an image onto the current image

Beschreibung

public ImagickDraw::composite ( int $compose , float $x , float $y , float $width , float $height , Imagick $compositeWand ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Composites an image onto the current image, using the specified composition operator, specified position, and at the specified size.

Parameter-Liste

compose

composition operator. One of COMPOSITE_ constants

x

x coordinate of the top left corner

y

y coordinate of the top left corner

width

width of the composition image

height

height of the composition image

compositeWand

the Imagick object where composition image is taken from

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 ImagickDraw::composite()

<?php
function composite($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setFillOpacity(1);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(2);
    $draw->setFont("../fonts/CANDY.TTF");
    $draw->setFontSize(140);
    $draw->rectangle(0, 0, 1000, 300);
    $draw->setFillColor('white');
    $draw->setfillopacity(1);
    $draw->annotation(50, 180, "Lorem Ipsum!");

    //Create an image object which the draw commands can be rendered into
    $imagick = new \Imagick();
    $imagick->newImage(1000, 302, $backgroundColor);
    $imagick->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $imagick->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


The ImagickDraw constructor

  • « ImagickDraw::composite
  • ImagickDraw::destroy »
  • PHP Manual
  • ImagickDraw
  • The ImagickDraw constructor

ImagickDraw::__construct

(PECL imagick 2, PECL imagick 3)

ImagickDraw::__construct — The ImagickDraw constructor

Beschreibung

public ImagickDraw::__construct ( )
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

The ImagickDraw constructor

Rückgabewerte

Es wird kein Wert zurückgegeben.


Frees all associated resources

  • « ImagickDraw::__construct
  • ImagickDraw::ellipse »
  • PHP Manual
  • ImagickDraw
  • Frees all associated resources

ImagickDraw::destroy

(PECL imagick 2, PECL imagick 3)

ImagickDraw::destroy — Frees all associated resources

Beschreibung

public ImagickDraw::destroy ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Frees all resources associated with the ImagickDraw object.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws an ellipse on the image

  • « ImagickDraw::destroy
  • ImagickDraw::getClipPath »
  • PHP Manual
  • ImagickDraw
  • Draws an ellipse on the image

ImagickDraw::ellipse

(PECL imagick 2, PECL imagick 3)

ImagickDraw::ellipse — Draws an ellipse on the image

Beschreibung

public ImagickDraw::ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws an ellipse on the image.

Parameter-Liste

ox

oy

rx

ry

start

end

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::ellipse()

<?php
function ellipse($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->ellipse(125, 70, 100, 50, 0, 360);
    $draw->ellipse(350, 70, 100, 50, 0, 315);

    $draw->push();
    $draw->translate(125, 250);
    $draw->rotate(30);
    $draw->ellipse(0, 0, 100, 50, 0, 360);
    $draw->pop();

    $draw->push();
    $draw->translate(350, 250);
    $draw->rotate(30);
    $draw->ellipse(0, 0, 100, 50, 0, 315);
    $draw->pop();

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Obtains the current clipping path ID

  • « ImagickDraw::ellipse
  • ImagickDraw::getClipRule »
  • PHP Manual
  • ImagickDraw
  • Obtains the current clipping path ID

ImagickDraw::getClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getClipPath — Obtains the current clipping path ID

Beschreibung

public ImagickDraw::getClipPath ( ) : string
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Obtains the current clipping path ID.

Rückgabewerte

Returns a string containing the clip path ID or false if no clip path exists.


Returns the current polygon fill rule

  • « ImagickDraw::getClipPath
  • ImagickDraw::getClipUnits »
  • PHP Manual
  • ImagickDraw
  • Returns the current polygon fill rule

ImagickDraw::getClipRule

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getClipRule — Returns the current polygon fill rule

Beschreibung

public ImagickDraw::getClipRule ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the current polygon fill rule to be used by the clipping path.

Rückgabewerte

Returns one of the FILLRULE_ constants.


Returns the interpretation of clip path units

  • « ImagickDraw::getClipRule
  • ImagickDraw::getFillColor »
  • PHP Manual
  • ImagickDraw
  • Returns the interpretation of clip path units

ImagickDraw::getClipUnits

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getClipUnits — Returns the interpretation of clip path units

Beschreibung

public ImagickDraw::getClipUnits ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the interpretation of clip path units.

Rückgabewerte

Returns an int on success.


Returns the fill color

  • « ImagickDraw::getClipUnits
  • ImagickDraw::getFillOpacity »
  • PHP Manual
  • ImagickDraw
  • Returns the fill color

ImagickDraw::getFillColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFillColor — Returns the fill color

Beschreibung

public ImagickDraw::getFillColor ( ) : ImagickPixel
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the fill color used for drawing filled objects.

Rückgabewerte

Returns an ImagickPixel object.


Returns the opacity used when drawing

  • « ImagickDraw::getFillColor
  • ImagickDraw::getFillRule »
  • PHP Manual
  • ImagickDraw
  • Returns the opacity used when drawing

ImagickDraw::getFillOpacity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFillOpacity — Returns the opacity used when drawing

Beschreibung

public ImagickDraw::getFillOpacity ( ) : float
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the opacity used when drawing using the fill color or fill texture. Fully opaque is 1.0.

Rückgabewerte

The opacity.


Returns the fill rule

  • « ImagickDraw::getFillOpacity
  • ImagickDraw::getFont »
  • PHP Manual
  • ImagickDraw
  • Returns the fill rule

ImagickDraw::getFillRule

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFillRule — Returns the fill rule

Beschreibung

public ImagickDraw::getFillRule ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the fill rule used while drawing polygons.

Rückgabewerte

Returns a FILLRULE_ constant


Returns the font

  • « ImagickDraw::getFillRule
  • ImagickDraw::getFontFamily »
  • PHP Manual
  • ImagickDraw
  • Returns the font

ImagickDraw::getFont

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFont — Returns the font

Beschreibung

public ImagickDraw::getFont ( ) : string
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns a string specifying the font used when annotating with text.

Rückgabewerte

Returns a string on success and false if no font is set.


Returns the font family

  • « ImagickDraw::getFont
  • ImagickDraw::getFontSize »
  • PHP Manual
  • ImagickDraw
  • Returns the font family

ImagickDraw::getFontFamily

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFontFamily — Returns the font family

Beschreibung

public ImagickDraw::getFontFamily ( ) : string
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the font family to use when annotating with text.

Rückgabewerte

Returns the font family currently selected or false if font family is not set.


Returns the font pointsize

  • « ImagickDraw::getFontFamily
  • ImagickDraw::getFontStretch »
  • PHP Manual
  • ImagickDraw
  • Returns the font pointsize

ImagickDraw::getFontSize

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFontSize — Returns the font pointsize

Beschreibung

public ImagickDraw::getFontSize ( ) : float
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the font pointsize used when annotating with text.

Rückgabewerte

Returns the font size associated with the current ImagickDraw object.


Description

  • « ImagickDraw::getFontSize
  • ImagickDraw::getFontStyle »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getFontStretch

(PECL imagick 2 >=2.3.0, PECL imagick 3)

ImagickDraw::getFontStretch — Description

Beschreibung

public ImagickDraw::getFontStretch ( ) : int

Gets the font stretch to use when annotating with text. Returns a StretchType.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Returns the font style

  • « ImagickDraw::getFontStretch
  • ImagickDraw::getFontWeight »
  • PHP Manual
  • ImagickDraw
  • Returns the font style

ImagickDraw::getFontStyle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFontStyle — Returns the font style

Beschreibung

public ImagickDraw::getFontStyle ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the font style used when annotating with text.

Rückgabewerte

Returns the font style constant (STYLE_) associated with the ImagickDraw object or 0 if no style is set.


Returns the font weight

  • « ImagickDraw::getFontStyle
  • ImagickDraw::getGravity »
  • PHP Manual
  • ImagickDraw
  • Returns the font weight

ImagickDraw::getFontWeight

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFontWeight — Returns the font weight

Beschreibung

public ImagickDraw::getFontWeight ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the font weight used when annotating with text.

Rückgabewerte

Returns an int on success and 0 if no weight is set.


Returns the text placement gravity

  • « ImagickDraw::getFontWeight
  • ImagickDraw::getStrokeAntialias »
  • PHP Manual
  • ImagickDraw
  • Returns the text placement gravity

ImagickDraw::getGravity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getGravity — Returns the text placement gravity

Beschreibung

public ImagickDraw::getGravity ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the text placement gravity used when annotating with text.

Rückgabewerte

Returns a GRAVITY_ constant on success and 0 if no gravity is set.


Returns the current stroke antialias setting

  • « ImagickDraw::getGravity
  • ImagickDraw::getStrokeColor »
  • PHP Manual
  • ImagickDraw
  • Returns the current stroke antialias setting

ImagickDraw::getStrokeAntialias

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting

Beschreibung

public ImagickDraw::getStrokeAntialias ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the current stroke antialias setting. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

Rückgabewerte

Returns true if antialiasing is on and false if it is off.


Returns the color used for stroking object outlines

  • « ImagickDraw::getStrokeAntialias
  • ImagickDraw::getStrokeDashArray »
  • PHP Manual
  • ImagickDraw
  • Returns the color used for stroking object outlines

ImagickDraw::getStrokeColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines

Beschreibung

public ImagickDraw::getStrokeColor ( ) : ImagickPixel
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the color used for stroking object outlines.

Parameter-Liste

stroke_color

Rückgabewerte

Returns an ImagickPixel object which describes the color.


Returns an array representing the pattern of dashes and gaps used to stroke paths

  • « ImagickDraw::getStrokeColor
  • ImagickDraw::getStrokeDashOffset »
  • PHP Manual
  • ImagickDraw
  • Returns an array representing the pattern of dashes and gaps used to stroke paths

ImagickDraw::getStrokeDashArray

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths

Beschreibung

public ImagickDraw::getStrokeDashArray ( ) : array
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns an array representing the pattern of dashes and gaps used to stroke paths.

Rückgabewerte

Returns an array on success and empty array if not set.


Returns the offset into the dash pattern to start the dash

  • « ImagickDraw::getStrokeDashArray
  • ImagickDraw::getStrokeLineCap »
  • PHP Manual
  • ImagickDraw
  • Returns the offset into the dash pattern to start the dash

ImagickDraw::getStrokeDashOffset

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash

Beschreibung

public ImagickDraw::getStrokeDashOffset ( ) : float
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the offset into the dash pattern to start the dash.

Rückgabewerte

Returns a float representing the offset and 0 if it's not set.


Returns the shape to be used at the end of open subpaths when they are stroked

  • « ImagickDraw::getStrokeDashOffset
  • ImagickDraw::getStrokeLineJoin »
  • PHP Manual
  • ImagickDraw
  • Returns the shape to be used at the end of open subpaths when they are stroked

ImagickDraw::getStrokeLineCap

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked

Beschreibung

public ImagickDraw::getStrokeLineCap ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the shape to be used at the end of open subpaths when they are stroked.

Rückgabewerte

Returns one of the LINECAP_ constants or 0 if stroke linecap is not set.


Returns the shape to be used at the corners of paths when they are stroked

  • « ImagickDraw::getStrokeLineCap
  • ImagickDraw::getStrokeMiterLimit »
  • PHP Manual
  • ImagickDraw
  • Returns the shape to be used at the corners of paths when they are stroked

ImagickDraw::getStrokeLineJoin

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked

Beschreibung

public ImagickDraw::getStrokeLineJoin ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the shape to be used at the corners of paths (or other vector shapes) when they are stroked.

Rückgabewerte

Returns one of the LINEJOIN_ constants or 0 if stroke line join is not set.


Returns the stroke miter limit

  • « ImagickDraw::getStrokeLineJoin
  • ImagickDraw::getStrokeOpacity »
  • PHP Manual
  • ImagickDraw
  • Returns the stroke miter limit

ImagickDraw::getStrokeMiterLimit

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit

Beschreibung

public ImagickDraw::getStrokeMiterLimit ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The 'miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

Rückgabewerte

Returns an int describing the miter limit and 0 if no miter limit is set.


Returns the opacity of stroked object outlines

  • « ImagickDraw::getStrokeMiterLimit
  • ImagickDraw::getStrokeWidth »
  • PHP Manual
  • ImagickDraw
  • Returns the opacity of stroked object outlines

ImagickDraw::getStrokeOpacity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines

Beschreibung

public ImagickDraw::getStrokeOpacity ( ) : float
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the opacity of stroked object outlines.

Rückgabewerte

Returns a double describing the opacity.


Returns the width of the stroke used to draw object outlines

  • « ImagickDraw::getStrokeOpacity
  • ImagickDraw::getTextAlignment »
  • PHP Manual
  • ImagickDraw
  • Returns the width of the stroke used to draw object outlines

ImagickDraw::getStrokeWidth

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines

Beschreibung

public ImagickDraw::getStrokeWidth ( ) : float
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the width of the stroke used to draw object outlines.

Rückgabewerte

Returns a double describing the stroke width.


Returns the text alignment

  • « ImagickDraw::getStrokeWidth
  • ImagickDraw::getTextAntialias »
  • PHP Manual
  • ImagickDraw
  • Returns the text alignment

ImagickDraw::getTextAlignment

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextAlignment — Returns the text alignment

Beschreibung

public ImagickDraw::getTextAlignment ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the alignment applied when annotating with text.

Rückgabewerte

Returns one of the ALIGN_ constants and 0 if no align is set.


Returns the current text antialias setting

  • « ImagickDraw::getTextAlignment
  • ImagickDraw::getTextDecoration »
  • PHP Manual
  • ImagickDraw
  • Returns the current text antialias setting

ImagickDraw::getTextAntialias

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextAntialias — Returns the current text antialias setting

Beschreibung

public ImagickDraw::getTextAntialias ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the current text antialias setting, which determines whether text is antialiased. Text is antialiased by default.

Rückgabewerte

Returns true if text is antialiased and false if not.


Returns the text decoration

  • « ImagickDraw::getTextAntialias
  • ImagickDraw::getTextEncoding »
  • PHP Manual
  • ImagickDraw
  • Returns the text decoration

ImagickDraw::getTextDecoration

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextDecoration — Returns the text decoration

Beschreibung

public ImagickDraw::getTextDecoration ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the decoration applied when annotating with text.

Rückgabewerte

Returns one of the DECORATION_ constants and 0 if no decoration is set.


Returns the code set used for text annotations

  • « ImagickDraw::getTextDecoration
  • ImagickDraw::getTextInterlineSpacing »
  • PHP Manual
  • ImagickDraw
  • Returns the code set used for text annotations

ImagickDraw::getTextEncoding

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextEncoding — Returns the code set used for text annotations

Beschreibung

public ImagickDraw::getTextEncoding ( ) : string
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns a string which specifies the code set used for text annotations.

Rückgabewerte

Returns a string specifying the code set or false if text encoding is not set.


Description

  • « ImagickDraw::getTextEncoding
  • ImagickDraw::getTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getTextInterlineSpacing

(PECL imagick 3 >= 3.1.0)

ImagickDraw::getTextInterlineSpacing — Description

Beschreibung

public ImagickDraw::getTextInterlineSpacing ( ) : float

Gets the text interword spacing.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « ImagickDraw::getTextInterlineSpacing
  • ImagickDraw::getTextKerning »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getTextInterwordSpacing

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.1.0)

ImagickDraw::getTextInterwordSpacing — Description

Beschreibung

public ImagickDraw::getTextInterwordSpacing ( ) : float

Gets the text interword spacing.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « ImagickDraw::getTextInterwordSpacing
  • ImagickDraw::getTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getTextKerning

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.1.0)

ImagickDraw::getTextKerning — Description

Beschreibung

public ImagickDraw::getTextKerning ( ) : float

Gets the text kerning.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Returns the text under color

  • « ImagickDraw::getTextKerning
  • ImagickDraw::getVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Returns the text under color

ImagickDraw::getTextUnderColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextUnderColor — Returns the text under color

Beschreibung

public ImagickDraw::getTextUnderColor ( ) : ImagickPixel
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the color of a background rectangle to place under text annotations.

Rückgabewerte

Returns an ImagickPixel object describing the color.


Returns a string containing vector graphics

  • « ImagickDraw::getTextUnderColor
  • ImagickDraw::line »
  • PHP Manual
  • ImagickDraw
  • Returns a string containing vector graphics

ImagickDraw::getVectorGraphics

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getVectorGraphics — Returns a string containing vector graphics

Beschreibung

public ImagickDraw::getVectorGraphics ( ) : string
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns a string which specifies the vector graphics generated by any graphics calls made since the ImagickDraw object was instantiated.

Rückgabewerte

Returns a string containing the vector graphics.


Draws a line

  • « ImagickDraw::getVectorGraphics
  • ImagickDraw::matte »
  • PHP Manual
  • ImagickDraw
  • Draws a line

ImagickDraw::line

(PECL imagick 2, PECL imagick 3)

ImagickDraw::line — Draws a line

Beschreibung

public ImagickDraw::line ( float $sx , float $sy , float $ex , float $ey ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a line on the image using the current stroke color, stroke opacity, and stroke width.

Parameter-Liste

sx

starting x coordinate

sy

starting y coordinate

ex

ending x coordinate

ey

ending y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::line()

<?php
function line($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->line(125, 70, 100, 50);
    $draw->line(350, 170, 100, 150);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Paints on the image's opacity channel

  • « ImagickDraw::line
  • ImagickDraw::pathClose »
  • PHP Manual
  • ImagickDraw
  • Paints on the image's opacity channel

ImagickDraw::matte

(PECL imagick 2, PECL imagick 3)

ImagickDraw::matte — Paints on the image's opacity channel

Beschreibung

public ImagickDraw::matte ( float $x , float $y , int $paintMethod ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Paints on the image's opacity channel in order to set effected pixels to transparent, to influence the opacity of pixels.

Parameter-Liste

x

x coordinate of the matte

y

y coordinate of the matte

paintMethod

PAINT_ constant

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::matte()

<?php
function matte($strokeColor, $fillColor, $backgroundColor, $paintType) {
    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->matte(120, 120, $paintType);
    $draw->rectangle(100, 100, 300, 200);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Adds a path element to the current path

  • « ImagickDraw::matte
  • ImagickDraw::pathCurveToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Adds a path element to the current path

ImagickDraw::pathClose

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathClose — Adds a path element to the current path

Beschreibung

public ImagickDraw::pathClose ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Adds a path element to the current path which closes the current subpath by drawing a straight line from the current point to the current subpath's most recent starting point (usually, the most recent moveto point).

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws a cubic Bezier curve

  • « ImagickDraw::pathClose
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve

Beschreibung

public ImagickDraw::pathCurveToAbsolute ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Parameter-Liste

x1

x coordinate of the first control point

y1

y coordinate of the first control point

x2

x coordinate of the second control point

y2

y coordinate of the first control point

x

x coordinate of the curve end

y

y coordinate of the curve end

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToAbsolute
  • ImagickDraw::pathCurveToQuadraticBezierRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve

Beschreibung

public ImagickDraw::pathCurveToQuadraticBezierAbsolute ( float $x1 , float $y1 , float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Parameter-Liste

x1

x coordinate of the control point

y1

y coordinate of the control point

x

x coordinate of the end point

y

y coordinate of the end point

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::pathCurveToQuadraticBezierAbsolute()

<?php
function pathCurveToQuadraticBezierAbsolute($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50,250);

    // This specifies a quadratic bezier curve with the current position as the start
    // point, the control point is the first two params, and the end point is the last two params.
    $draw->pathCurveToQuadraticBezierAbsolute(
        150,50,
        250,250
    );

    // This specifies a quadratic bezier curve with the current position as the start
    // point, the control point is mirrored from the previous curves control point
    // and the end point is defined by the x, y values.
    $draw->pathCurveToQuadraticBezierSmoothAbsolute(
        450,250
    );

    // This specifies a quadratic bezier curve with the current position as the start
    // point, the control point is mirrored from the previous curves control point
    // and the end point is defined relative from the current position by the x, y values.
    $draw->pathCurveToQuadraticBezierSmoothRelative(
        200,-100
    );

    $draw->pathFinish();

    $imagick = new \Imagick();
    $imagick->newImage(700, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();

}

?>


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierAbsolute
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve

Beschreibung

public ImagickDraw::pathCurveToQuadraticBezierRelative ( float $x1 , float $y1 , float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Parameter-Liste

x1

starting x coordinate

y1

starting y coordinate

x

ending x coordinate

y

ending y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierRelative
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve

Beschreibung

public ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute ( float $x , float $y ) : bool

Draws a quadratic Bezier curve (using absolute coordinates) from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolut or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point.). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

This function cannot be used to continue a cubic Bezier curve smoothly. It can only continue from a quadratic curve smoothly.

Parameter-Liste

x

ending x coordinate

y

ending y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute()

<?php
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor("black");
$draw->setFillColor("blue");

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->pathStart();
$draw->pathMoveToAbsolute(50,250);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is the first two params, and the end point is the last two params.
$draw->pathCurveToQuadraticBezierAbsolute(
    150,50,
    250,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
    450,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined relative from the current position by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothRelative(
    200,-100
);

$draw->pathFinish();

$imagick = new \Imagick();
$imagick->newImage(700, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
  • ImagickDraw::pathCurveToRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve

Beschreibung

public ImagickDraw::pathCurveToQuadraticBezierSmoothRelative ( float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a quadratic Bezier curve (using relative coordinates) from the current point to (x, y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolut or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point). At the end of the command, the new current point becomes the final (x, y) coordinate pair used in the polybezier.

This function cannot be used to continue a cubic Bezier curve smoothly. It can only continue from a quadratic curve smoothly.

Parameter-Liste

x

ending x coordinate

y

ending y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::pathCurveToQuadraticBezierSmoothRelative()

<?php
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor("black");
$draw->setFillColor("blue");

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->pathStart();
$draw->pathMoveToAbsolute(50,250);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is the first two params, and the end point is the last two params.
$draw->pathCurveToQuadraticBezierAbsolute(
    150,50,
    250,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
    450,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined relative from the current position by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothRelative(
    200,-100
);

$draw->pathFinish();

$imagick = new \Imagick();
$imagick->newImage(700, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>


Draws a cubic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
  • ImagickDraw::pathCurveToSmoothAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve

Beschreibung

public ImagickDraw::pathCurveToRelative ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Parameter-Liste

x1

x coordinate of starting control point

y1

y coordinate of starting control point

x2

x coordinate of ending control point

y2

y coordinate of ending control point

x

ending x coordinate

y

ending y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws a cubic Bezier curve

  • « ImagickDraw::pathCurveToRelative
  • ImagickDraw::pathCurveToSmoothRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToSmoothAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve

Beschreibung

public ImagickDraw::pathCurveToSmoothAbsolute ( float $x2 , float $y2 , float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a cubic Bezier curve from the current point to (x,y) using absolute coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Parameter-Liste

x2

x coordinate of the second control point

y2

y coordinate of the second control point

x

x coordinate of the ending point

y

y coordinate of the ending point

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws a cubic Bezier curve

  • « ImagickDraw::pathCurveToSmoothAbsolute
  • ImagickDraw::pathEllipticArcAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToSmoothRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve

Beschreibung

public ImagickDraw::pathCurveToSmoothRelative ( float $x2 , float $y2 , float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a cubic Bezier curve from the current point to (x,y) using relative coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Parameter-Liste

x2

x coordinate of the second control point

y2

y coordinate of the second control point

x

x coordinate of the ending point

y

y coordinate of the ending point

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws an elliptical arc

  • « ImagickDraw::pathCurveToSmoothRelative
  • ImagickDraw::pathEllipticArcRelative »
  • PHP Manual
  • ImagickDraw
  • Draws an elliptical arc

ImagickDraw::pathEllipticArcAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc

Beschreibung

public ImagickDraw::pathEllipticArcAbsolute ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws an elliptical arc from the current point to (x, y) using absolute coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is true then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

Parameter-Liste

rx

x radius

ry

y radius

x_axis_rotation

x axis rotation

large_arc_flag

large arc flag

sweep_flag

sweep flag

x

x coordinate

y

y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws an elliptical arc

  • « ImagickDraw::pathEllipticArcAbsolute
  • ImagickDraw::pathFinish »
  • PHP Manual
  • ImagickDraw
  • Draws an elliptical arc

ImagickDraw::pathEllipticArcRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc

Beschreibung

public ImagickDraw::pathEllipticArcRelative ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws an elliptical arc from the current point to (x, y) using relative coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is true then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

Parameter-Liste

rx

x radius

ry

y radius

x_axis_rotation

x axis rotation

large_arc_flag

large arc flag

sweep_flag

sweep flag

x

x coordinate

y

y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.


Terminates the current path

  • « ImagickDraw::pathEllipticArcRelative
  • ImagickDraw::pathLineToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Terminates the current path

ImagickDraw::pathFinish

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathFinish — Terminates the current path

Beschreibung

public ImagickDraw::pathFinish ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Terminates the current path.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws a line path

  • « ImagickDraw::pathFinish
  • ImagickDraw::pathLineToHorizontalAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a line path

ImagickDraw::pathLineToAbsolute

(PECL imagick 2)

ImagickDraw::pathLineToAbsolute — Draws a line path

Beschreibung

public ImagickDraw::pathLineToAbsolute ( float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a line path from the current point to the given coordinate using absolute coordinates. The coordinate then becomes the new current point.

Parameter-Liste

x

starting x coordinate

y

ending x coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws a horizontal line path

  • « ImagickDraw::pathLineToAbsolute
  • ImagickDraw::pathLineToHorizontalRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a horizontal line path

ImagickDraw::pathLineToHorizontalAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path

Beschreibung

public ImagickDraw::pathLineToHorizontalAbsolute ( float $x ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a horizontal line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

Parameter-Liste

x

x coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws a horizontal line

  • « ImagickDraw::pathLineToHorizontalAbsolute
  • ImagickDraw::pathLineToRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a horizontal line

ImagickDraw::pathLineToHorizontalRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line

Beschreibung

public ImagickDraw::pathLineToHorizontalRelative ( float $x ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a horizontal line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

Parameter-Liste

x

x coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws a line path

  • « ImagickDraw::pathLineToHorizontalRelative
  • ImagickDraw::pathLineToVerticalAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a line path

ImagickDraw::pathLineToRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToRelative — Draws a line path

Beschreibung

public ImagickDraw::pathLineToRelative ( float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a line path from the current point to the given coordinate using relative coordinates. The coordinate then becomes the new current point.

Parameter-Liste

x

starting x coordinate

y

starting y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws a vertical line

  • « ImagickDraw::pathLineToRelative
  • ImagickDraw::pathLineToVerticalRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a vertical line

ImagickDraw::pathLineToVerticalAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line

Beschreibung

public ImagickDraw::pathLineToVerticalAbsolute ( float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a vertical line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

Parameter-Liste

y

y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.


Draws a vertical line path

  • « ImagickDraw::pathLineToVerticalAbsolute
  • ImagickDraw::pathMoveToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a vertical line path

ImagickDraw::pathLineToVerticalRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path

Beschreibung

public ImagickDraw::pathLineToVerticalRelative ( float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a vertical line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

Parameter-Liste

y

y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.


Starts a new sub-path

  • « ImagickDraw::pathLineToVerticalRelative
  • ImagickDraw::pathMoveToRelative »
  • PHP Manual
  • ImagickDraw
  • Starts a new sub-path

ImagickDraw::pathMoveToAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathMoveToAbsolute — Starts a new sub-path

Beschreibung

public ImagickDraw::pathMoveToAbsolute ( float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Starts a new sub-path at the given coordinate using absolute coordinates. The current point then becomes the specified coordinate.

Parameter-Liste

x

x coordinate of the starting point

y

y coordinate of the starting point

Rückgabewerte

Es wird kein Wert zurückgegeben.


Starts a new sub-path

  • « ImagickDraw::pathMoveToAbsolute
  • ImagickDraw::pathStart »
  • PHP Manual
  • ImagickDraw
  • Starts a new sub-path

ImagickDraw::pathMoveToRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathMoveToRelative — Starts a new sub-path

Beschreibung

public ImagickDraw::pathMoveToRelative ( float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Starts a new sub-path at the given coordinate using relative coordinates. The current point then becomes the specified coordinate.

Parameter-Liste

x

target x coordinate

y

target y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.


Declares the start of a path drawing list

  • « ImagickDraw::pathMoveToRelative
  • ImagickDraw::point »
  • PHP Manual
  • ImagickDraw
  • Declares the start of a path drawing list

ImagickDraw::pathStart

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathStart — Declares the start of a path drawing list

Beschreibung

public ImagickDraw::pathStart ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Declares the start of a path drawing list which is terminated by a matching DrawPathFinish() command. All other DrawPath commands must be enclosed between a and a DrawPathFinish() command. This is because path drawing commands are subordinate commands and they do not function by themselves.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::pathStart()

<?php
function pathStart($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50, 50);
    $draw->pathLineToAbsolute(100, 50);
    $draw->pathLineToRelative(0, 50);
    $draw->pathLineToHorizontalRelative(-50);
    $draw->pathFinish();

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50, 50);
    $draw->pathMoveToRelative(300, 0);
    $draw->pathLineToRelative(50, 0);
    $draw->pathLineToVerticalRelative(50);
    $draw->pathLineToHorizontalAbsolute(350);
    $draw->pathclose();
    $draw->pathFinish();

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50, 300);
    $draw->pathCurveToAbsolute(50, 300, 100, 200, 300, 300);
    $draw->pathLineToVerticalAbsolute(350);
    $draw->pathFinish();

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Draws a point

  • « ImagickDraw::pathStart
  • ImagickDraw::polygon »
  • PHP Manual
  • ImagickDraw
  • Draws a point

ImagickDraw::point

(PECL imagick 2, PECL imagick 3)

ImagickDraw::point — Draws a point

Beschreibung

public ImagickDraw::point ( float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a point using the current stroke color and stroke thickness at the specified coordinates.

Parameter-Liste

x

point's x coordinate

y

point's y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::point()

<?php
function point($fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setFillColor($fillColor);

    for ($x = 0; $x < 10000; $x++) {
        $draw->point(rand(0, 500), rand(0, 500));
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Draws a polygon

  • « ImagickDraw::point
  • ImagickDraw::polyline »
  • PHP Manual
  • ImagickDraw
  • Draws a polygon

ImagickDraw::polygon

(PECL imagick 2, PECL imagick 3)

ImagickDraw::polygon — Draws a polygon

Beschreibung

public ImagickDraw::polygon ( array $coordinates ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a polygon using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Parameter-Liste

coordinates

multidimensional array like array( array( 'x' => 3, 'y' => 4 ), array( 'x' => 2, 'y' => 6 ) );

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 ImagickDraw::polygon()

<?php
function polygon($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(4);

    $draw->setFillColor($fillColor);

    $points = [
        ['x' => 40 * 5, 'y' => 10 * 5],
        ['x' => 20 * 5, 'y' => 20 * 5],
        ['x' => 70 * 5, 'y' => 50 * 5],
        ['x' => 60 * 5, 'y' => 15 * 5],
    ];

    $draw->polygon($points);

    $image = new \Imagick();
    $image->newImage(500, 300, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Draws a polyline

  • « ImagickDraw::polygon
  • ImagickDraw::pop »
  • PHP Manual
  • ImagickDraw
  • Draws a polyline

ImagickDraw::polyline

(PECL imagick 2, PECL imagick 3)

ImagickDraw::polyline — Draws a polyline

Beschreibung

public ImagickDraw::polyline ( array $coordinates ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Parameter-Liste

coordinates

array of x and y coordinates: array( array( 'x' => 4, 'y' => 6 ), array( 'x' => 8, 'y' => 10 ) )

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 ImagickDraw::polyline()

<?php
function polyline($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(5);

    $points = [
        ['x' => 40 * 5, 'y' => 10 * 5],
        ['x' => 20 * 5, 'y' => 20 * 5],
        ['x' => 70 * 5, 'y' => 50 * 5],
        ['x' => 60 * 5, 'y' => 15 * 5]
    ];

    $draw->polyline($points);

    $image = new \Imagick();
    $image->newImage(500, 300, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

  • « ImagickDraw::polyline
  • ImagickDraw::popClipPath »
  • PHP Manual
  • ImagickDraw
  • Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

ImagickDraw::pop

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

Beschreibung

public ImagickDraw::pop ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw. Multiple ImagickDraws may exist. It is an error to attempt to pop more ImagickDraws than have been pushed, and it is proper form to pop all ImagickDraws which have been pushed.

Rückgabewerte

Returns true on success and false on failure.


Terminates a clip path definition

  • « ImagickDraw::pop
  • ImagickDraw::popDefs »
  • PHP Manual
  • ImagickDraw
  • Terminates a clip path definition

ImagickDraw::popClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::popClipPath — Terminates a clip path definition

Beschreibung

public ImagickDraw::popClipPath ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Terminates a clip path definition.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Terminates a definition list

  • « ImagickDraw::popClipPath
  • ImagickDraw::popPattern »
  • PHP Manual
  • ImagickDraw
  • Terminates a definition list

ImagickDraw::popDefs

(PECL imagick 2, PECL imagick 3)

ImagickDraw::popDefs — Terminates a definition list

Beschreibung

public ImagickDraw::popDefs ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Terminates a definition list.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::popDefs()

<?php
function popDefs($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setstrokeOpacity(1);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->pushDefs();
    $draw->setStrokeColor('white');
    $draw->rectangle(50, 50, 200, 200);
    $draw->popDefs();

    $draw->rectangle(300, 50, 450, 200);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Terminates a pattern definition

  • « ImagickDraw::popDefs
  • ImagickDraw::push »
  • PHP Manual
  • ImagickDraw
  • Terminates a pattern definition

ImagickDraw::popPattern

(PECL imagick 2, PECL imagick 3)

ImagickDraw::popPattern — Terminates a pattern definition

Beschreibung

public ImagickDraw::popPattern ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Terminates a pattern definition.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Clones the current ImagickDraw and pushes it to the stack

  • « ImagickDraw::popPattern
  • ImagickDraw::pushClipPath »
  • PHP Manual
  • ImagickDraw
  • Clones the current ImagickDraw and pushes it to the stack

ImagickDraw::push

(PECL imagick 2, PECL imagick 3)

ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack

Beschreibung

public ImagickDraw::push ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Clones the current ImagickDraw to create a new ImagickDraw, which is then added to the ImagickDraw stack. The original drawing ImagickDraw(s) may be returned to by invoking pop(). The ImagickDraws are stored on a ImagickDraw stack. For every Pop there must have already been an equivalent Push.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::push()

<?php
function push($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillModifiedColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->push();
    $draw->translate(50, 50);
    $draw->rectangle(200, 200, 300, 300);
    $draw->pop();
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Starts a clip path definition

  • « ImagickDraw::push
  • ImagickDraw::pushDefs »
  • PHP Manual
  • ImagickDraw
  • Starts a clip path definition

ImagickDraw::pushClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pushClipPath — Starts a clip path definition

Beschreibung

public ImagickDraw::pushClipPath ( string $clip_mask_id ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Starts a clip path definition which is comprised of any number of drawing commands and terminated by a ImagickDraw::popClipPath() command.

Parameter-Liste

clip_mask_id

Clip mask Id

Rückgabewerte

Es wird kein Wert zurückgegeben.


Indicates that following commands create named elements for early processing

  • « ImagickDraw::pushClipPath
  • ImagickDraw::pushPattern »
  • PHP Manual
  • ImagickDraw
  • Indicates that following commands create named elements for early processing

ImagickDraw::pushDefs

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing

Beschreibung

public ImagickDraw::pushDefs ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Indicates that commands up to a terminating ImagickDraw::popDefs() command create named elements (e.g. clip-paths, textures, etc.) which may safely be processed earlier for the sake of efficiency.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

  • « ImagickDraw::pushDefs
  • ImagickDraw::rectangle »
  • PHP Manual
  • ImagickDraw
  • Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

ImagickDraw::pushPattern

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

Beschreibung

public ImagickDraw::pushPattern ( string $pattern_id , float $x , float $y , float $width , float $height ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Indicates that subsequent commands up to a DrawPopPattern() command comprise the definition of a named pattern. The pattern space is assigned top left corner coordinates, a width and height, and becomes its own drawing space. Anything which can be drawn may be used in a pattern definition. Named patterns may be used as stroke or brush definitions.

Parameter-Liste

pattern_id

the pattern Id

x

x coordinate of the top-left corner

y

y coordinate of the top-left corner

width

width of the pattern

height

height of the pattern

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::pushPattern()

<?php
function pushPattern($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(1);

    $draw->pushPattern("MyFirstPattern", 0, 0, 50, 50);
    for ($x = 0; $x < 50; $x += 10) {
        for ($y = 0; $y < 50; $y += 5) {
            $positionX = $x + (($y / 5) % 5);
            $draw->rectangle($positionX, $y, $positionX + 5, $y + 5);
        }
    }
    $draw->popPattern();

    $draw->setFillOpacity(0);
    $draw->rectangle(100, 100, 400, 400);
    $draw->setFillOpacity(1);

    $draw->setFillOpacity(1);

    $draw->push();
    $draw->setFillPatternURL('#MyFirstPattern');
    $draw->setFillColor('yellow');
    $draw->rectangle(100, 100, 400, 400);
    $draw->pop();

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Draws a rectangle

  • « ImagickDraw::pushPattern
  • ImagickDraw::render »
  • PHP Manual
  • ImagickDraw
  • Draws a rectangle

ImagickDraw::rectangle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::rectangle — Draws a rectangle

Beschreibung

public ImagickDraw::rectangle ( float $x1 , float $y1 , float $x2 , float $y2 ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a rectangle given two coordinates and using the current stroke, stroke width, and fill settings.

Parameter-Liste

x1

x coordinate of the top left corner

y1

y coordinate of the top left corner

x2

x coordinate of the bottom right corner

y2

y coordinate of the bottom right corner

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::rectangle()

<?php
function rectangle($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();
    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $draw->rectangle(200, 200, 300, 300);
    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Renders all preceding drawing commands onto the image

  • « ImagickDraw::rectangle
  • ImagickDraw::resetVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Renders all preceding drawing commands onto the image

ImagickDraw::render

(PECL imagick 2, PECL imagick 3)

ImagickDraw::render — Renders all preceding drawing commands onto the image

Beschreibung

public ImagickDraw::render ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Renders all preceding drawing commands onto the image.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Description

  • « ImagickDraw::render
  • ImagickDraw::rotate »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::resetVectorGraphics

(PECL imagick 2, PECL imagick 3)

ImagickDraw::resetVectorGraphics — Description

Beschreibung

public ImagickDraw::resetVectorGraphics ( ) : bool

Resets the vector graphics.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Liefert true bei Erfolg.


Applies the specified rotation to the current coordinate space

  • « ImagickDraw::resetVectorGraphics
  • ImagickDraw::roundRectangle »
  • PHP Manual
  • ImagickDraw
  • Applies the specified rotation to the current coordinate space

ImagickDraw::rotate

(PECL imagick 2, PECL imagick 3)

ImagickDraw::rotate — Applies the specified rotation to the current coordinate space

Beschreibung

public ImagickDraw::rotate ( float $degrees ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Applies the specified rotation to the current coordinate space.

Parameter-Liste

degrees

degrees to rotate

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::rotate()

<?php
function rotate($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {
    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeOpacity(1);
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);
    $draw->setFillColor($fillModifiedColor);
    $draw->rotate(15);
    $draw->rectangle(200, 200, 300, 300);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Draws a rounded rectangle

  • « ImagickDraw::rotate
  • ImagickDraw::scale »
  • PHP Manual
  • ImagickDraw
  • Draws a rounded rectangle

ImagickDraw::roundRectangle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::roundRectangle — Draws a rounded rectangle

Beschreibung

public ImagickDraw::roundRectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Draws a rounded rectangle given two coordinates, x & y corner radiuses and using the current stroke, stroke width, and fill settings.

Parameter-Liste

x1

x coordinate of the top left corner

y1

y coordinate of the top left corner

x2

x coordinate of the bottom right

y2

y coordinate of the bottom right

rx

x rounding

ry

y rounding

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::roundRectangle()

<?php
function roundRectangle($strokeColor, $fillColor, $backgroundColor, $startX, $startY, $endX, $endY, $roundX, $roundY) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $draw->roundRectangle($startX, $startY, $endX, $endY, $roundX, $roundY);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Adjusts the scaling factor

  • « ImagickDraw::roundRectangle
  • ImagickDraw::setClipPath »
  • PHP Manual
  • ImagickDraw
  • Adjusts the scaling factor

ImagickDraw::scale

(PECL imagick 2, PECL imagick 3)

ImagickDraw::scale — Adjusts the scaling factor

Beschreibung

public ImagickDraw::scale ( float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Adjusts the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

Parameter-Liste

x

horizontal factor

y

vertical factor

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::scale()

<?php
function scale($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(4);
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);
    $draw->setFillColor($fillModifiedColor);
    $draw->scale(1.4, 1.4);
    $draw->rectangle(200, 200, 300, 300);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Associates a named clipping path with the image

  • « ImagickDraw::scale
  • ImagickDraw::setClipRule »
  • PHP Manual
  • ImagickDraw
  • Associates a named clipping path with the image

ImagickDraw::setClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setClipPath — Associates a named clipping path with the image

Beschreibung

public ImagickDraw::setClipPath ( string $clip_mask ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Associates a named clipping path with the image. Only the areas drawn on by the clipping path will be modified as long as it remains in effect.

Parameter-Liste

clip_mask

the clipping path name

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setClipPath()

<?php
function setClipPath($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $clipPathName = 'testClipPath';

    $draw->pushClipPath($clipPathName);
    $draw->rectangle(0, 0, 250, 250);
    $draw->popClipPath();
    $draw->setClipPath($clipPathName);
    $draw->rectangle(100, 100, 400, 400);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Set the polygon fill rule to be used by the clipping path

  • « ImagickDraw::setClipPath
  • ImagickDraw::setClipUnits »
  • PHP Manual
  • ImagickDraw
  • Set the polygon fill rule to be used by the clipping path

ImagickDraw::setClipRule

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path

Beschreibung

public ImagickDraw::setClipRule ( int $fill_rule ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Set the polygon fill rule to be used by the clipping path.

Parameter-Liste

fill_rule

FILLRULE_ constant

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setClipRule()

<?php
function setClipRule($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);
    //\Imagick::FILLRULE_EVENODD
    //\Imagick::FILLRULE_NONZERO

    $clipPathName = 'testClipPath';
    $draw->pushClipPath($clipPathName);
    $draw->setClipRule(\Imagick::FILLRULE_EVENODD);
    $draw->rectangle(0, 0, 300, 500);
    $draw->rectangle(200, 0, 500, 500);
    $draw->popClipPath();
    $draw->setClipPath($clipPathName);
    $draw->rectangle(200, 200, 300, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the interpretation of clip path units

  • « ImagickDraw::setClipRule
  • ImagickDraw::setFillAlpha »
  • PHP Manual
  • ImagickDraw
  • Sets the interpretation of clip path units

ImagickDraw::setClipUnits

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setClipUnits — Sets the interpretation of clip path units

Beschreibung

public ImagickDraw::setClipUnits ( int $clip_units ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the interpretation of clip path units.

Parameter-Liste

clip_units

the number of clip units

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setClipUnits()

<?php
function setClipUnits($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);
    $clipPathName = 'testClipPath';
    $draw->setClipUnits(\Imagick::RESOLUTION_PIXELSPERINCH);
    $draw->pushClipPath($clipPathName);
    $draw->rectangle(0, 0, 250, 250);
    $draw->popClipPath();
    $draw->setClipPath($clipPathName);

    //RESOLUTION_PIXELSPERINCH
    //RESOLUTION_PIXELSPERCENTIMETER

    $draw->rectangle(200, 200, 300, 300);
    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the opacity to use when drawing using the fill color or fill texture

  • « ImagickDraw::setClipUnits
  • ImagickDraw::setFillColor »
  • PHP Manual
  • ImagickDraw
  • Sets the opacity to use when drawing using the fill color or fill texture

ImagickDraw::setFillAlpha

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture

Beschreibung

public ImagickDraw::setFillAlpha ( float $opacity ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the opacity to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

Parameter-Liste

opacity

fill alpha

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setFillAlpha()

<?php
function setFillAlpha($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);
    $draw->rectangle(100, 200, 200, 300);
    @$draw->setFillAlpha(0.4);
    $draw->rectangle(300, 200, 400, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the fill color to be used for drawing filled objects

  • « ImagickDraw::setFillAlpha
  • ImagickDraw::setFillOpacity »
  • PHP Manual
  • ImagickDraw
  • Sets the fill color to be used for drawing filled objects

ImagickDraw::setFillColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects

Beschreibung

public ImagickDraw::setFillColor ( ImagickPixel $fill_pixel ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the fill color to be used for drawing filled objects.

Parameter-Liste

fill_pixel

ImagickPixel to use to set the color

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setFillColor()

<?php
function setFillColor($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(1.5);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->rectangle(50, 50, 150, 150);

    $draw->setFillColor("rgb(200, 32, 32)");
    $draw->rectangle(200, 50, 300, 150);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the opacity to use when drawing using the fill color or fill texture

  • « ImagickDraw::setFillColor
  • ImagickDraw::setFillPatternURL »
  • PHP Manual
  • ImagickDraw
  • Sets the opacity to use when drawing using the fill color or fill texture

ImagickDraw::setFillOpacity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture

Beschreibung

public ImagickDraw::setFillOpacity ( float $fillOpacity ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the opacity to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

Parameter-Liste

fillOpacity

the fill opacity

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setFillOpacity()

<?php
function setFillOpacity($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $draw->rectangle(100, 200, 200, 300);

    $draw->setFillOpacity(0.4);
    $draw->rectangle(300, 200, 400, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the URL to use as a fill pattern for filling objects

  • « ImagickDraw::setFillOpacity
  • ImagickDraw::setFillRule »
  • PHP Manual
  • ImagickDraw
  • Sets the URL to use as a fill pattern for filling objects

ImagickDraw::setFillPatternURL

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects

Beschreibung

public ImagickDraw::setFillPatternURL ( string $fill_url ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the URL to use as a fill pattern for filling objects. Only local URLs ("#identifier") are supported at this time. These local URLs are normally created by defining a named fill pattern with DrawPushPattern/DrawPopPattern.

Parameter-Liste

fill_url

URL to use to obtain fill pattern.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Sets the fill rule to use while drawing polygons

  • « ImagickDraw::setFillPatternURL
  • ImagickDraw::setFont »
  • PHP Manual
  • ImagickDraw
  • Sets the fill rule to use while drawing polygons

ImagickDraw::setFillRule

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons

Beschreibung

public ImagickDraw::setFillRule ( int $fill_rule ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the fill rule to use while drawing polygons.

Parameter-Liste

fill_rule

FILLRULE_ constant

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setFillRule()

<?php
function setFillRule($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $fillRules = [\Imagick::FILLRULE_NONZERO, \Imagick::FILLRULE_EVENODD];

    $points = 11;
    $size = 150;

    $draw->translate(175, 160);

    for ($x = 0; $x < 2; $x++) {
        $draw->setFillRule($fillRules[$x]);
        $draw->pathStart();
        for ($n = 0; $n < $points * 2; $n++) {

            if ($n >= $points) {
                $angle = fmod($n * 360 * 4 / $points, 360) * pi() / 180;
            }
            else {
                $angle = fmod($n * 360 * 3 / $points, 360) * pi() / 180;
            }

            $positionX = $size * sin($angle);
            $positionY = $size * cos($angle);

            if ($n == 0) {
                $draw->pathMoveToAbsolute($positionX, $positionY);
            }
            else {
                $draw->pathLineToAbsolute($positionX, $positionY);
            }
        }

        $draw->pathClose();
        $draw->pathFinish();

        $draw->translate(325, 0);
    }

    $image = new \Imagick();
    $image->newImage(700, 320, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the fully-specified font to use when annotating with text

  • « ImagickDraw::setFillRule
  • ImagickDraw::setFontFamily »
  • PHP Manual
  • ImagickDraw
  • Sets the fully-specified font to use when annotating with text

ImagickDraw::setFont

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text

Beschreibung

public ImagickDraw::setFont ( string $font_name ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the fully-specified font to use when annotating with text.

Parameter-Liste

font_name

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 ImagickDraw::setFont()

<?php
function setFont($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(36);

    $draw->setFont("../fonts/Arial.ttf");
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFont("../fonts/Consolas.ttf");
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFont("../fonts/CANDY.TTF");
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $draw->setFont("../fonts/Inconsolata-dz.otf");
    $draw->annotation(50, 200, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 300, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font family to use when annotating with text

  • « ImagickDraw::setFont
  • ImagickDraw::setFontSize »
  • PHP Manual
  • ImagickDraw
  • Sets the font family to use when annotating with text

ImagickDraw::setFontFamily

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontFamily — Sets the font family to use when annotating with text

Beschreibung

public ImagickDraw::setFontFamily ( string $font_family ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the font family to use when annotating with text.

Parameter-Liste

font_family

the font family

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 ImagickDraw::setFontFamily()

<?php
function setFontFamily($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);

    $draw->setFontSize(48);

    $draw->setFontFamily("Times");
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFontFamily("AvantGarde");
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFontFamily("NewCenturySchlbk");
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $draw->setFontFamily("Palatino");
    $draw->annotation(50, 200, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(450, 250, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font pointsize to use when annotating with text

  • « ImagickDraw::setFontFamily
  • ImagickDraw::setFontStretch »
  • PHP Manual
  • ImagickDraw
  • Sets the font pointsize to use when annotating with text

ImagickDraw::setFontSize

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text

Beschreibung

public ImagickDraw::setFontSize ( float $pointsize ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the font pointsize to use when annotating with text.

Parameter-Liste

pointsize

the point size

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setFontSize()

<?php
function setFontSize($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFont("../fonts/Arial.ttf");

    $sizes = [24, 36, 48, 60, 72];

    foreach ($sizes as $size) {
        $draw->setFontSize($size);
        $draw->annotation(50, ($size * $size / 16), "Lorem Ipsum!");
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font stretch to use when annotating with text

  • « ImagickDraw::setFontSize
  • ImagickDraw::setFontStyle »
  • PHP Manual
  • ImagickDraw
  • Sets the font stretch to use when annotating with text

ImagickDraw::setFontStretch

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text

Beschreibung

public ImagickDraw::setFontStretch ( int $fontStretch ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the font stretch to use when annotating with text. The AnyStretch enumeration acts as a wild-card "don't care" option.

Parameter-Liste

fontStretch

STRETCH_ constant

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setFontStretch()

<?php
function setFontStretch($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(36);

    $fontStretchTypes = [
        \Imagick::STRETCH_ULTRACONDENSED,
        \Imagick::STRETCH_CONDENSED,
        \Imagick::STRETCH_SEMICONDENSED,
        \Imagick::STRETCH_SEMIEXPANDED,
        \Imagick::STRETCH_EXPANDED,
        \Imagick::STRETCH_EXTRAEXPANDED,
        \Imagick::STRETCH_ULTRAEXPANDED,
        \Imagick::STRETCH_ANY
    ];

    $offset = 0;
    foreach ($fontStretchTypes as $fontStretch) {
        $draw->setFontStretch($fontStretch);
        $draw->annotation(50, 75 + $offset, "Lorem Ipsum!");
        $offset += 50;
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font style to use when annotating with text

  • « ImagickDraw::setFontStretch
  • ImagickDraw::setFontWeight »
  • PHP Manual
  • ImagickDraw
  • Sets the font style to use when annotating with text

ImagickDraw::setFontStyle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontStyle — Sets the font style to use when annotating with text

Beschreibung

public ImagickDraw::setFontStyle ( int $style ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.

Parameter-Liste

style

STYLETYPE_ constant

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setFontStyle()

<?php
function setFontStyle($fillColor, $strokeColor, $backgroundColor) {
    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(36);
    $draw->setFontStyle(\Imagick::STYLE_NORMAL);
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFontStyle(\Imagick::STYLE_ITALIC);
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFontStyle(\Imagick::STYLE_OBLIQUE);
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(350, 300, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font weight

  • « ImagickDraw::setFontStyle
  • ImagickDraw::setGravity »
  • PHP Manual
  • ImagickDraw
  • Sets the font weight

ImagickDraw::setFontWeight

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontWeight — Sets the font weight

Beschreibung

public ImagickDraw::setFontWeight ( int $font_weight ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the font weight to use when annotating with text.

Parameter-Liste

font_weight

Rückgabewerte

Beispiele

Beispiel #1 ImagickDraw::setFontWeight()

<?php
function setFontWeight($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(1);

    $draw->setFontSize(36);

    $draw->setFontWeight(100);
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFontWeight(200);
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFontWeight(400);
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $draw->setFontWeight(800);
    $draw->annotation(50, 200, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the text placement gravity

  • « ImagickDraw::setFontWeight
  • ImagickDraw::setResolution »
  • PHP Manual
  • ImagickDraw
  • Sets the text placement gravity

ImagickDraw::setGravity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setGravity — Sets the text placement gravity

Beschreibung

public ImagickDraw::setGravity ( int $gravity ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the text placement gravity to use when annotating with text.

Parameter-Liste

gravity

GRAVITY_ constant

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setGravity()

<?php
function setGravity($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(24);

    $gravitySettings = array(
        \Imagick::GRAVITY_NORTHWEST => 'NorthWest',
        \Imagick::GRAVITY_NORTH => 'North',
        \Imagick::GRAVITY_NORTHEAST => 'NorthEast',
        \Imagick::GRAVITY_WEST => 'West',
        \Imagick::GRAVITY_CENTER => 'Centre',
        \Imagick::GRAVITY_SOUTHWEST => 'SouthWest',
        \Imagick::GRAVITY_SOUTH => 'South',
        \Imagick::GRAVITY_SOUTHEAST => 'SouthEast',
        \Imagick::GRAVITY_EAST => 'East'
    );

    $draw->setFont("../fonts/Arial.ttf");

    foreach ($gravitySettings as $type => $description) {
        $draw->setGravity($type);
        $draw->annotation(50, 50, '"' . $description . '"');
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Description

  • « ImagickDraw::setGravity
  • ImagickDraw::setStrokeAlpha »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setResolution

(PECL imagick 3 >= 3.1.0)

ImagickDraw::setResolution — Description

Beschreibung

public ImagickDraw::setResolution ( float $x_resolution , float $y_resolution ) : bool

Sets the resolution.

Parameter-Liste

x_resolution

y_resolution

Rückgabewerte

Liefert true bei Erfolg.


Specifies the opacity of stroked object outlines

  • « ImagickDraw::setResolution
  • ImagickDraw::setStrokeAntialias »
  • PHP Manual
  • ImagickDraw
  • Specifies the opacity of stroked object outlines

ImagickDraw::setStrokeAlpha

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines

Beschreibung

public ImagickDraw::setStrokeAlpha ( float $opacity ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Specifies the opacity of stroked object outlines.

Parameter-Liste

opacity

opacity

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setStrokeAlpha()

<?php
function setStrokeAlpha($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(4);
    $draw->line(100, 100, 400, 145);
    $draw->rectangle(100, 200, 225, 350);
    $draw->setStrokeOpacity(0.1);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Controls whether stroked outlines are antialiased

  • « ImagickDraw::setStrokeAlpha
  • ImagickDraw::setStrokeColor »
  • PHP Manual
  • ImagickDraw
  • Controls whether stroked outlines are antialiased

ImagickDraw::setStrokeAntialias

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased

Beschreibung

public ImagickDraw::setStrokeAntialias ( bool $stroke_antialias ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Controls whether stroked outlines are antialiased. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

Parameter-Liste

stroke_antialias

the antialias setting

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setStrokeAntialias()

<?php
function setStrokeAntialias($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setStrokeAntialias(false);
    $draw->line(100, 100, 400, 105);

    $draw->line(100, 140, 400, 185);

    $draw->setStrokeAntialias(true);
    $draw->line(100, 110, 400, 115);
    $draw->line(100, 150, 400, 195);

    $image = new \Imagick();
    $image->newImage(500, 250, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the color used for stroking object outlines

  • « ImagickDraw::setStrokeAntialias
  • ImagickDraw::setStrokeDashArray »
  • PHP Manual
  • ImagickDraw
  • Sets the color used for stroking object outlines

ImagickDraw::setStrokeColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines

Beschreibung

public ImagickDraw::setStrokeColor ( ImagickPixel $stroke_pixel ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the color used for stroking object outlines.

Parameter-Liste

stroke_pixel

the stroke color

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setStrokeColor()

<?php
function setStrokeColor($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(5);

    $draw->line(100, 100, 400, 145);
    $draw->rectangle(100, 200, 225, 350);

    $draw->setStrokeOpacity(0.1);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the pattern of dashes and gaps used to stroke paths

  • « ImagickDraw::setStrokeColor
  • ImagickDraw::setStrokeDashOffset »
  • PHP Manual
  • ImagickDraw
  • Specifies the pattern of dashes and gaps used to stroke paths

ImagickDraw::setStrokeDashArray

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths

Beschreibung

public ImagickDraw::setStrokeDashArray ( array $dashArray ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Specifies the pattern of dashes and gaps used to stroke paths. The strokeDashArray represents an array of numbers that specify the lengths of alternating dashes and gaps in pixels. If an odd number of values is provided, then the list of values is repeated to yield an even number of values. To remove an existing dash array, pass a zero number_elements argument and null dash_array. A typical strokeDashArray_ array might contain the members 5 3 2.

Parameter-Liste

dashArray

array of floats

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 ImagickDraw::setStrokeDashArray()

<?php
function setStrokeDashArray($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(4);

    $draw->setStrokeDashArray([10, 10]);
    $draw->rectangle(100, 50, 225, 175);

    $draw->setStrokeDashArray([20, 5, 20, 5, 5, 5,]);
    $draw->rectangle(275, 50, 400, 175);

    $draw->setStrokeDashArray([20, 5, 20, 5, 5]);
    $draw->rectangle(100, 200, 225, 350);

    $draw->setStrokeDashArray([1, 1, 1, 1, 2, 2, 3, 3, 5, 5, 8, 8, 13, 13, 21, 21, 34, 34, 55, 55, 89, 89, 144, 144, 233, 233, 377, 377, 610, 610, 987, 987, 1597, 1597, 2584, 2584, 4181, 4181,]);

    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the offset into the dash pattern to start the dash

  • « ImagickDraw::setStrokeDashArray
  • ImagickDraw::setStrokeLineCap »
  • PHP Manual
  • ImagickDraw
  • Specifies the offset into the dash pattern to start the dash

ImagickDraw::setStrokeDashOffset

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash

Beschreibung

public ImagickDraw::setStrokeDashOffset ( float $dash_offset ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Specifies the offset into the dash pattern to start the dash.

Parameter-Liste

dash_offset

dash offset

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setStrokeDashOffset()

<?php
function setStrokeDashOffset($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(4);
    $draw->setStrokeDashArray([20, 20]);
    $draw->setStrokeDashOffset(0);
    $draw->rectangle(100, 50, 225, 175);

    //Start the dash effect halfway through the solid portion
    $draw->setStrokeDashOffset(10);
    $draw->rectangle(275, 50, 400, 175);

    //Start the dash effect on the space portion
    $draw->setStrokeDashOffset(20);
    $draw->rectangle(100, 200, 225, 350);
    $draw->setStrokeDashOffset(5);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the shape to be used at the end of open subpaths when they are stroked

  • « ImagickDraw::setStrokeDashOffset
  • ImagickDraw::setStrokeLineJoin »
  • PHP Manual
  • ImagickDraw
  • Specifies the shape to be used at the end of open subpaths when they are stroked

ImagickDraw::setStrokeLineCap

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked

Beschreibung

public ImagickDraw::setStrokeLineCap ( int $linecap ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Specifies the shape to be used at the end of open subpaths when they are stroked.

Parameter-Liste

linecap

LINECAP_ constant

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setStrokeLineCap()

<?php
function setStrokeLineCap($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(25);

    $lineTypes = [\Imagick::LINECAP_BUTT, \Imagick::LINECAP_ROUND, \Imagick::LINECAP_SQUARE,];

    $offset = 0;

    foreach ($lineTypes as $lineType) {
        $draw->setStrokeLineCap($lineType);
        $draw->line(50 + $offset, 50, 50 + $offset, 250);
        $offset += 50;
    }

    $imagick = new \Imagick();
    $imagick->newImage(300, 300, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Specifies the shape to be used at the corners of paths when they are stroked

  • « ImagickDraw::setStrokeLineCap
  • ImagickDraw::setStrokeMiterLimit »
  • PHP Manual
  • ImagickDraw
  • Specifies the shape to be used at the corners of paths when they are stroked

ImagickDraw::setStrokeLineJoin

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked

Beschreibung

public ImagickDraw::setStrokeLineJoin ( int $linejoin ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Specifies the shape to be used at the corners of paths (or other vector shapes) when they are stroked.

Parameter-Liste

linejoin

LINEJOIN_ constant

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setStrokeLineJoin()

<?php
function setStrokeLineJoin($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(20);

    $offset = 220;

    $lineJoinStyle = [
        \Imagick::LINEJOIN_MITER,
        \Imagick::LINEJOIN_ROUND,
        \Imagick::LINEJOIN_BEVEL,
        ];

    for ($x = 0; $x < count($lineJoinStyle); $x++) {
        $draw->setStrokeLineJoin($lineJoinStyle[$x]);
        $points = [
            ['x' => 40 * 5, 'y' => 10 * 5 + $x * $offset],
            ['x' => 20 * 5, 'y' => 20 * 5 + $x * $offset],
            ['x' => 70 * 5, 'y' => 50 * 5 + $x * $offset],
            ['x' => 40 * 5, 'y' => 10 * 5 + $x * $offset],
        ];

        $draw->polyline($points);
    }

    $image = new \Imagick();
    $image->newImage(500, 700, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the miter limit

  • « ImagickDraw::setStrokeLineJoin
  • ImagickDraw::setStrokeOpacity »
  • PHP Manual
  • ImagickDraw
  • Specifies the miter limit

ImagickDraw::setStrokeMiterLimit

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeMiterLimit — Specifies the miter limit

Beschreibung

public ImagickDraw::setStrokeMiterLimit ( int $miterlimit ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Specifies the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

Parameter-Liste

miterlimit

the miter limit

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setStrokeMiterLimit()

<?php
function setStrokeMiterLimit($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeOpacity(0.6);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(10);

    $yOffset = 100;

    $draw->setStrokeLineJoin(\Imagick::LINEJOIN_MITER);

    for ($y = 0; $y < 3; $y++) {

        $draw->setStrokeMiterLimit(40 * $y);

        $points = [
            ['x' => 22 * 3, 'y' => 15 * 4 + $y * $yOffset],
            ['x' => 20 * 3, 'y' => 20 * 4 + $y * $yOffset],
            ['x' => 70 * 5, 'y' => 45 * 4 + $y * $yOffset],
        ];

        $draw->polygon($points);
    }

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    $image->setImageType(\Imagick::IMGTYPE_PALETTE);
    $image->setImageCompressionQuality(100);
    $image->stripImage();

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the opacity of stroked object outlines

  • « ImagickDraw::setStrokeMiterLimit
  • ImagickDraw::setStrokePatternURL »
  • PHP Manual
  • ImagickDraw
  • Specifies the opacity of stroked object outlines

ImagickDraw::setStrokeOpacity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines

Beschreibung

public ImagickDraw::setStrokeOpacity ( float $stroke_opacity ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Specifies the opacity of stroked object outlines.

Parameter-Liste

stroke_opacity

stroke opacity. 1.0 is fully opaque

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setStrokeOpacity()

<?php
function setStrokeOpacity($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(10);
    $draw->setStrokeOpacity(1);
    $draw->line(100, 80, 400, 125);
    $draw->rectangle(25, 200, 150, 350);
    $draw->setStrokeOpacity(0.5);
    $draw->line(100, 100, 400, 145);
    $draw->rectangle(200, 200, 325, 350);
    $draw->setStrokeOpacity(0.2);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(375, 200, 500, 350);

    $image = new \Imagick();
    $image->newImage(550, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the pattern used for stroking object outlines

  • « ImagickDraw::setStrokeOpacity
  • ImagickDraw::setStrokeWidth »
  • PHP Manual
  • ImagickDraw
  • Sets the pattern used for stroking object outlines

ImagickDraw::setStrokePatternURL

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines

Beschreibung

public ImagickDraw::setStrokePatternURL ( string $stroke_url ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the pattern used for stroking object outlines.

Parameter-Liste

stroke_url

stroke URL

Rückgabewerte

imagick.imagickdraw.return.success;


Sets the width of the stroke used to draw object outlines

  • « ImagickDraw::setStrokePatternURL
  • ImagickDraw::setTextAlignment »
  • PHP Manual
  • ImagickDraw
  • Sets the width of the stroke used to draw object outlines

ImagickDraw::setStrokeWidth

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines

Beschreibung

public ImagickDraw::setStrokeWidth ( float $stroke_width ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the width of the stroke used to draw object outlines.

Parameter-Liste

stroke_width

stroke width

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setStrokeWidth()

<?php
function setStrokeWidth($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->line(100, 100, 400, 145);
    $draw->rectangle(100, 200, 225, 350);
    $draw->setStrokeWidth(5);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies a text alignment

  • « ImagickDraw::setStrokeWidth
  • ImagickDraw::setTextAntialias »
  • PHP Manual
  • ImagickDraw
  • Specifies a text alignment

ImagickDraw::setTextAlignment

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextAlignment — Specifies a text alignment

Beschreibung

public ImagickDraw::setTextAlignment ( int $alignment ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Specifies a text alignment to be applied when annotating with text.

Parameter-Liste

alignment

ALIGN_ constant

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setTextAlignment()

<?php
function setTextAlignment($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(36);

    $draw->setTextAlignment(\Imagick::ALIGN_LEFT);
    $draw->annotation(250, 75, "Lorem Ipsum!");
    $draw->setTextAlignment(\Imagick::ALIGN_CENTER);
    $draw->annotation(250, 150, "Lorem Ipsum!");
    $draw->setTextAlignment(\Imagick::ALIGN_RIGHT);
    $draw->annotation(250, 225, "Lorem Ipsum!");
    $draw->line(250, 0, 250, 500);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Controls whether text is antialiased

  • « ImagickDraw::setTextAlignment
  • ImagickDraw::setTextDecoration »
  • PHP Manual
  • ImagickDraw
  • Controls whether text is antialiased

ImagickDraw::setTextAntialias

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextAntialias — Controls whether text is antialiased

Beschreibung

public ImagickDraw::setTextAntialias ( bool $antiAlias ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Controls whether text is antialiased. Text is antialiased by default.

Parameter-Liste

antiAlias

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setTextAntialias()

<?php
function setTextAntialias($fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor('none');
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(32);
    $draw->setTextAntialias(false);
    $draw->annotation(5, 30, "Lorem Ipsum!");
    $draw->setTextAntialias(true);
    $draw->annotation(5, 65, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(220, 80, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    //Scale the image so that people can see the aliasing.
    $imagick->scaleImage(220 * 6, 80 * 6);
    $imagick->cropImage(640, 480, 0, 0);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Specifies a decoration

  • « ImagickDraw::setTextAntialias
  • ImagickDraw::setTextEncoding »
  • PHP Manual
  • ImagickDraw
  • Specifies a decoration

ImagickDraw::setTextDecoration

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextDecoration — Specifies a decoration

Beschreibung

public ImagickDraw::setTextDecoration ( int $decoration ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Specifies a decoration to be applied when annotating with text.

Parameter-Liste

decoration

DECORATION_ constant

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setTextDecoration()

<?php
function setTextDecoration($strokeColor, $fillColor, $backgroundColor, $textDecoration) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->setTextDecoration($textDecoration);
    $draw->annotation(50, 75, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 200, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Specifies the text code set

  • « ImagickDraw::setTextDecoration
  • ImagickDraw::setTextInterlineSpacing »
  • PHP Manual
  • ImagickDraw
  • Specifies the text code set

ImagickDraw::setTextEncoding

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextEncoding — Specifies the text code set

Beschreibung

public ImagickDraw::setTextEncoding ( string $encoding ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

Parameter-Liste

encoding

the encoding name

Rückgabewerte

Es wird kein Wert zurückgegeben.


Description

  • « ImagickDraw::setTextEncoding
  • ImagickDraw::setTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setTextInterlineSpacing

(PECL imagick 3 >= 3.1.0)

ImagickDraw::setTextInterlineSpacing — Description

Beschreibung

public ImagickDraw::setTextInterlineSpacing ( float $spacing ) : bool

Sets the text interline spacing.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

spacing

Rückgabewerte

Liefert true bei Erfolg.


Description

  • « ImagickDraw::setTextInterlineSpacing
  • ImagickDraw::setTextKerning »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setTextInterwordSpacing

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickDraw::setTextInterwordSpacing — Description

Beschreibung

public ImagickDraw::setTextInterwordSpacing ( float $spacing ) : bool

Sets the text interword spacing.

Parameter-Liste

spacing

Rückgabewerte

Liefert true bei Erfolg.


Description

  • « ImagickDraw::setTextInterwordSpacing
  • ImagickDraw::setTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setTextKerning

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickDraw::setTextKerning — Description

Beschreibung

public ImagickDraw::setTextKerning ( float $kerning ) : bool

Sets the text kerning

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

kerning

Rückgabewerte

Liefert true bei Erfolg.


Specifies the color of a background rectangle

  • « ImagickDraw::setTextKerning
  • ImagickDraw::setVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Specifies the color of a background rectangle

ImagickDraw::setTextUnderColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle

Beschreibung

public ImagickDraw::setTextUnderColor ( ImagickPixel $under_color ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Specifies the color of a background rectangle to place under text annotations.

Parameter-Liste

under_color

the under color

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setTextUnderColor()

<?php
function setTextUnderColor($strokeColor, $fillColor, $backgroundColor, $textUnderColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->annotation(50, 75, "Lorem Ipsum!");
    $draw->setTextUnderColor($textUnderColor);
    $draw->annotation(50, 175, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the vector graphics

  • « ImagickDraw::setTextUnderColor
  • ImagickDraw::setViewbox »
  • PHP Manual
  • ImagickDraw
  • Sets the vector graphics

ImagickDraw::setVectorGraphics

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setVectorGraphics — Sets the vector graphics

Beschreibung

public ImagickDraw::setVectorGraphics ( string $xml ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the vector graphics associated with the specified ImagickDraw object. Use this method with ImagickDraw::getVectorGraphics() as a method to persist the vector graphics state.

Parameter-Liste

xml

xml containing the vector graphics

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setVectorGraphics()

<?php
function setVectorGraphics() {
    //Setup a draw object with some drawing in it.
    $draw = new \ImagickDraw();
    $draw->setFillColor("red");
    $draw->circle(20, 20, 50, 50);
    $draw->setFillColor("blue");
    $draw->circle(50, 70, 50, 50);
    $draw->rectangle(50, 120, 80, 150);

    //Get the drawing as a string
    $SVG = $draw->getVectorGraphics();

    //$svg is a string, and could be saved anywhere a string can be saved

    //Use the saved drawing to generate a new draw object
    $draw2 = new \ImagickDraw();
    //Apparently the SVG text is missing the root element.
    $draw2->setVectorGraphics("<root>".$SVG."</root>");

    $imagick = new \Imagick();
    $imagick->newImage(200, 200, 'white');
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw2);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the overall canvas size

  • « ImagickDraw::setVectorGraphics
  • ImagickDraw::skewX »
  • PHP Manual
  • ImagickDraw
  • Sets the overall canvas size

ImagickDraw::setViewbox

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setViewbox — Sets the overall canvas size

Beschreibung

public ImagickDraw::setViewbox ( int $x1 , int $y1 , int $x2 , int $y2 ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

Parameter-Liste

x1

left x coordinate

y1

left y coordinate

x2

right x coordinate

y2

right y coordinate

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::setViewBox()

<?php
function setViewBox($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    /*

    Sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

     */

    $draw->circle(250, 250, 250, 0);
    $draw->setviewbox(0, 0, 200, 200);
    $draw->circle(125, 250, 250, 250);
    $draw->translate(250, 125);
    $draw->circle(0, 0, 125, 0);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Skews the current coordinate system in the horizontal direction

  • « ImagickDraw::setViewbox
  • ImagickDraw::skewY »
  • PHP Manual
  • ImagickDraw
  • Skews the current coordinate system in the horizontal direction

ImagickDraw::skewX

(PECL imagick 2, PECL imagick 3)

ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction

Beschreibung

public ImagickDraw::skewX ( float $degrees ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Skews the current coordinate system in the horizontal direction.

Parameter-Liste

degrees

degrees to skew

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::skewX()

<?php
function skewX($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
               $startX, $startY, $endX, $endY, $skew) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(2);
    $draw->setFillColor($fillColor);
    $draw->rectangle($startX, $startY, $endX, $endY);
    $draw->setFillColor($fillModifiedColor);
    $draw->skewX($skew);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Skews the current coordinate system in the vertical direction

  • « ImagickDraw::skewX
  • ImagickDraw::translate »
  • PHP Manual
  • ImagickDraw
  • Skews the current coordinate system in the vertical direction

ImagickDraw::skewY

(PECL imagick 2, PECL imagick 3)

ImagickDraw::skewY — Skews the current coordinate system in the vertical direction

Beschreibung

public ImagickDraw::skewY ( float $degrees ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Skews the current coordinate system in the vertical direction.

Parameter-Liste

degrees

degrees to skew

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::skewY()

<?php
function skewY($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
               $startX, $startY, $endX, $endY, $skew) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(2);
    $draw->setFillColor($fillColor);
    $draw->rectangle($startX, $startY, $endX, $endY);
    $draw->setFillColor($fillModifiedColor);
    $draw->skewY($skew);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Applies a translation to the current coordinate system

  • « ImagickDraw::skewY
  • ImagickPixel »
  • PHP Manual
  • ImagickDraw
  • Applies a translation to the current coordinate system

ImagickDraw::translate

(PECL imagick 2, PECL imagick 3)

ImagickDraw::translate — Applies a translation to the current coordinate system

Beschreibung

public ImagickDraw::translate ( float $x , float $y ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Applies a translation to the current coordinate system which moves the coordinate system origin to the specified coordinate.

Parameter-Liste

x

horizontal translation

y

vertical translation

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ImagickDraw::translate()

<?php
function translate($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
                   $startX, $startY, $endX, $endY, $translateX, $translateY) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $draw->setFillColor($fillModifiedColor);
    $draw->translate($translateX, $translateY);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


The ImagickPixel class

(PECL imagick 2, PECL imagick 3)

Klassenbeschreibung

ImagickPixel {
public clear ( ) : bool
public __construct ( string $color = ? )
public destroy ( ) : bool
public getColor ( int $normalized = 0 ) : array
public getColorAsString ( ) : string
public getColorCount ( ) : int
public getColorQuantum ( ) : array
public getColorValue ( int $color ) : float
public getColorValueQuantum ( int $color ) : int|float
public getHSL ( ) : array
public getIndex ( ) : int
public isPixelSimilar ( ImagickPixel $color , float $fuzz ) : bool
public isPixelSimilarQuantum ( string $color , string $fuzz = ? ) : bool
public isSimilar ( ImagickPixel $color , float $fuzz ) : bool
public setColor ( string $color ) : bool
public setcolorcount ( int $colorCount ) : bool
public setColorValue ( int $color , float $value ) : bool
public setColorValueQuantum ( int $color , int|float $value ) : bool
public setHSL ( float $hue , float $saturation , float $luminosity ) : bool
public setIndex ( int $index ) : bool
}

Inhaltsverzeichnis

  • ImagickPixel::clear — Clears resources associated with this object
  • ImagickPixel::__construct — The ImagickPixel constructor
  • ImagickPixel::destroy — Deallocates resources associated with this object
  • ImagickPixel::getColor — Returns the color
  • ImagickPixel::getColorAsString — Returns the color as a string
  • ImagickPixel::getColorCount — Returns the color count associated with this color
  • ImagickPixel::getColorQuantum — Description
  • ImagickPixel::getColorValue — Gets the normalized value of the provided color channel
  • ImagickPixel::getColorValueQuantum — Description
  • ImagickPixel::getHSL — Returns the normalized HSL color of the ImagickPixel object
  • ImagickPixel::getIndex — Description
  • ImagickPixel::isPixelSimilar — Check the distance between this color and another
  • ImagickPixel::isPixelSimilarQuantum — Description
  • ImagickPixel::isSimilar — Check the distance between this color and another
  • ImagickPixel::setColor — Sets the color
  • ImagickPixel::setColorCount — Description
  • ImagickPixel::setColorValue — Sets the normalized value of one of the channels
  • ImagickPixel::setColorValueQuantum — Description
  • ImagickPixel::setHSL — Sets the normalized HSL color
  • ImagickPixel::setIndex — Description


Clears resources associated with this object

  • « ImagickPixel
  • ImagickPixel::__construct »
  • PHP Manual
  • ImagickPixel
  • Clears resources associated with this object

ImagickPixel::clear

(PECL imagick 2, PECL imagick 3)

ImagickPixel::clear — Clears resources associated with this object

Beschreibung

public ImagickPixel::clear ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Clears the ImagickPixel object, leaving it in a fresh state. This also unsets any color associated with the object.

Rückgabewerte

Liefert true bei Erfolg.


The ImagickPixel constructor

  • « ImagickPixel::clear
  • ImagickPixel::destroy »
  • PHP Manual
  • ImagickPixel
  • The ImagickPixel constructor

ImagickPixel::__construct

(PECL imagick 2, PECL imagick 3)

ImagickPixel::__construct — The ImagickPixel constructor

Beschreibung

public ImagickPixel::__construct ( string $color = ? )
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Constructs an ImagickPixel object. If a color is specified, the object is constructed and then initialised with that color before being returned.

Parameter-Liste

color

The optional color string to use as the initial value of this object.

Rückgabewerte

Returns an ImagickPixel object on success, throwing ImagickPixelException on failure.

Beispiele

Beispiel #1 ImagickPixel::construct()

<?php
function construct() {

    $columns = 4;

    $exampleColors = array(
        "rgba(100%, 0%, 0%, 0.5)",
        "hsb(33.3333%, 100%,  75%)", // medium green
        "hsl(120, 255,   191.25)", //medium green
        "graya(50%, 0.5)", //  semi-transparent mid gray
        "LightCoral", "none", //"cmyk(0.9, 0.48, 0.83, 0.50)",
        "#f00", //  #rgb
        "#ff0000", //  #rrggbb
        "#ff0000ff", //  #rrggbbaa
        "#ffff00000000", //  #rrrrggggbbbb
        "#ffff00000000ffff", //  #rrrrggggbbbbaaaa
        "rgb(255, 0, 0)", //  an integer in the range 0—255 for each component
        "rgb(100.0%, 0.0%, 0.0%)", //  a float in the range 0—100% for each component
        "rgb(255, 0, 0)", //  range 0 - 255
        "rgba(255, 0, 0, 1.0)", //  the same, with an explicit alpha value
        "rgb(100%, 0%, 0%)", //  range 0.0% - 100.0%
        "rgba(100%, 0%, 0%, 1.0)", //  the same, with an explicit alpha value
    );

    $draw = new \ImagickDraw();
    $count = 0;
    $black = new \ImagickPixel('rgb(0, 0, 0)');

    foreach ($exampleColors as $exampleColor) {
        $color = new \ImagickPixel($exampleColor);

        $draw->setstrokewidth(1.0);
        $draw->setStrokeColor($black);
        $draw->setFillColor($color);
        $offsetX = ($count % $columns) * 50 + 5;
        $offsetY = intval($count / $columns) * 50 + 5;
        $draw->rectangle(0 + $offsetX, 0 + $offsetY, 40 + $offsetX, 40 + $offsetY);
        $count++;
    }

    $image = new \Imagick();
    $image->newImage(350, 350, "blue");
    $image->setImageFormat("png");
    $image->drawImage($draw);
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Deallocates resources associated with this object

  • « ImagickPixel::__construct
  • ImagickPixel::getColor »
  • PHP Manual
  • ImagickPixel
  • Deallocates resources associated with this object

ImagickPixel::destroy

(PECL imagick 2, PECL imagick 3)

ImagickPixel::destroy — Deallocates resources associated with this object

Beschreibung

public ImagickPixel::destroy ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Deallocates any resources used by the ImagickPixel object, and unsets any associated color. The object should not be used after the destroy function has been called.

Rückgabewerte

Liefert true bei Erfolg.


Returns the color

  • « ImagickPixel::destroy
  • ImagickPixel::getColorAsString »
  • PHP Manual
  • ImagickPixel
  • Returns the color

ImagickPixel::getColor

(PECL imagick 2, PECL imagick 3)

ImagickPixel::getColor — Returns the color

Beschreibung

public ImagickPixel::getColor ( int $normalized = 0 ) : array

Returns the color described by the ImagickPixel object, as an array. If the color has an opacity channel set, this is provided as a fourth value in the list.

Parameter-Liste

normalized

Normalize the color values. Possible values are 0, 1 or 2.

List of possible values for normalized
normalized | Description
0 | The RGB values are returned as ints in the range 0 to 255 (inclusive.) The alpha value is returned as int and is either 0 or 1.
1 | The RGBA values are returned as floats in the range 0 to 1 (inclusive.)
2 | The RGBA values are returned as ints in the range 0 to 255 (inclusive.)

Rückgabewerte

An array of channel values. Throws ImagickPixelException on error.

Beispiele

Beispiel #1 Basic Imagick::getColor() usage

<?php

//Create an ImagickPixel with the predefined color 'brown'
$color = new ImagickPixel('brown');

//Set the color to have an alpha of 25%
$color->setColorValue(Imagick::COLOR_ALPHA, 64 / 256.0);

$colorInfo = $color->getColor();

echo "Standard values".PHP_EOL;
print_r($colorInfo);

$colorInfo = $color->getColor(1);

echo "Normalized values:".PHP_EOL;
print_r($colorInfo);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Standard values
Array
(
    [r] => 165
    [g] => 42
    [b] => 42
    [a] => 0
)
Normalized values:
Array
(
    [r] => 0.64705882352941
    [g] => 0.16470588235294
    [b] => 0.16470588235294
    [a] => 0.25000381475547
)


Returns the color as a string

  • « ImagickPixel::getColor
  • ImagickPixel::getColorCount »
  • PHP Manual
  • ImagickPixel
  • Returns the color as a string

ImagickPixel::getColorAsString

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

ImagickPixel::getColorAsString — Returns the color as a string

Beschreibung

public ImagickPixel::getColorAsString ( ) : string

Returns the color of the ImagickPixel object as a string.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the color of the ImagickPixel object as a string.

Beispiele

Beispiel #1 Basic Imagick::getColorAsString() usage

<?php

//Create an ImagickPixel with the predefined color 'brown'
$color = new ImagickPixel('brown');

$color->setColorValue(Imagick::COLOR_ALPHA, 64 / 256.0);

$colorInfo = $color->getColorAsString();

print_r($colorInfo);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

rgb(165,42,42)

Anmerkungen

Hinweis: Alpha not returned

This function does not return the alpha value of the color in the string.


Returns the color count associated with this color

  • « ImagickPixel::getColorAsString
  • ImagickPixel::getColorQuantum »
  • PHP Manual
  • ImagickPixel
  • Returns the color count associated with this color

ImagickPixel::getColorCount

(PECL imagick 2, PECL imagick 3)

ImagickPixel::getColorCount — Returns the color count associated with this color

Beschreibung

public ImagickPixel::getColorCount ( ) : int

Returns the color count associated with this color.

The color count is the number of pixels in the image that have the same color as this ImagickPixel.

ImagickPixel::getColorCount appears to only work for ImagickPixel objects created through Imagick::getImageHistogram()

Rückgabewerte

Returns the color count as an integer on success, throws ImagickPixelException on failure.

Beispiele

Beispiel #1 ImagickPixel getColorCount()

<?php
    $imagick = new \Imagick();
    $imagick->newPseudoImage(640, 480, "magick:logo");
    $histogramElements = $imagick->getImageHistogram();
    $lastColor = array_pop($histogramElements);
    echo "Last pixel color count is: ".$lastColor->getColorCount();
?>

The output for this will be similar to:

Last pixel color count is: 256244


Description

  • « ImagickPixel::getColorCount
  • ImagickPixel::getColorValue »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::getColorQuantum

(No version information available, might only be in Git)

ImagickPixel::getColorQuantum — Description

Beschreibung

public ImagickPixel::getColorQuantum ( ) : array

Returns the color of the pixel in an array as Quantum values. If ImageMagick was compiled as HDRI these will be floats, otherwise they will be integers.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array with keys "r", "g", "b", "a".


Gets the normalized value of the provided color channel

  • « ImagickPixel::getColorQuantum
  • ImagickPixel::getColorValueQuantum »
  • PHP Manual
  • ImagickPixel
  • Gets the normalized value of the provided color channel

ImagickPixel::getColorValue

(PECL imagick 2, PECL imagick 3)

ImagickPixel::getColorValue — Gets the normalized value of the provided color channel

Beschreibung

public ImagickPixel::getColorValue ( int $color ) : float

Retrieves the value of the color channel specified, as a floating-point number between 0 and 1.

Parameter-Liste

color

The color to get the value of, specified as one of the Imagick color constants. This can be one of the RGB colors, CMYK colors, alpha and opacity e.g (Imagick::COLOR_BLUE, Imagick::COLOR_MAGENTA).

Rückgabewerte

The value of the channel, as a normalized floating-point number, throwing ImagickPixelException on error.

Beispiele

Beispiel #1 Basic Imagick::getColorValue() usage

<?php

$color = new ImagickPixel('rgba(90%, 20%, 20%, 0.75)');

echo "Alpha value is ".$color->getColorValue(Imagick::COLOR_ALPHA).PHP_EOL;
echo "".PHP_EOL;
echo "Red value is ".$color->getColorValue(Imagick::COLOR_RED).PHP_EOL;
echo "Green value is ".$color->getColorValue(Imagick::COLOR_GREEN).PHP_EOL;
echo "Blue value is ".$color->getColorValue(Imagick::COLOR_BLUE).PHP_EOL;
echo "".PHP_EOL;
echo "Cyan value is ".$color->getColorValue(Imagick::COLOR_CYAN).PHP_EOL;
echo "Magenta value is ".$color->getColorValue(Imagick::COLOR_MAGENTA).PHP_EOL;
echo "Yellow value is ".$color->getColorValue(Imagick::COLOR_YELLOW).PHP_EOL;
echo "Black value is ".$color->getColorValue(Imagick::COLOR_BLACK).PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Alpha value is 0.74999618524453

Red value is 0.90000762951095
Green value is 0.2
Blue value is 0.2

Cyan value is 0.90000762951095
Magenta value is 0.2
Yellow value is 0.2
Black value is 0


Description

  • « ImagickPixel::getColorValue
  • ImagickPixel::getHSL »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::getColorValueQuantum

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickPixel::getColorValueQuantum — Description

Beschreibung

public ImagickPixel::getColorValueQuantum ( int $color ) : int|float

Gets the quantum value of a color in the ImagickPixel. Return value is a float if ImageMagick was compiled with HDRI, otherwise an integer.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The quantum value of the color element. Float if ImageMagick was compiled with HDRI, otherwise an int.

Beispiele

Beispiel #1 ImagickPixel::getColorValueQuantum()

<?php
        $color = new \ImagickPixel('rgb(128, 5, 255)');
        $colorRed = $color->getColorValueQuantum(\Imagick::COLOR_RED);
        $colorGreen = $color->getColorValueQuantum(\Imagick::COLOR_GREEN);
        $colorBlue = $color->getColorValueQuantum(\Imagick::COLOR_BLUE);
        $colorAlpha = $color->getColorValueQuantum(\Imagick::COLOR_ALPHA);

        printf(
            "Red: %s Green: %s  Blue %s Alpha: %s",
            $colorRed,
            $colorGreen,
            $colorBlue,
            $colorAlpha
        );

?>


Returns the normalized HSL color of the ImagickPixel object

  • « ImagickPixel::getColorValueQuantum
  • ImagickPixel::getIndex »
  • PHP Manual
  • ImagickPixel
  • Returns the normalized HSL color of the ImagickPixel object

ImagickPixel::getHSL

(PECL imagick 2, PECL imagick 3)

ImagickPixel::getHSL — Returns the normalized HSL color of the ImagickPixel object

Beschreibung

public ImagickPixel::getHSL ( ) : array

Returns the normalized HSL color described by the ImagickPixel object, with each of the three values as floating point numbers between 0.0 and 1.0.

Rückgabewerte

Returns the HSL value in an array with the keys "hue", "saturation", and "luminosity". Throws ImagickPixelException on failure.

Beispiele

Beispiel #1 Basic Imagick::getHSL() example

<?php

$color = new ImagickPixel('rgb(90%, 10%, 10%)');

$colorInfo = $color->getHSL();

print_r($colorInfo);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [hue] => 0
    [saturation] => 0.80001220740379
    [luminosity] => 0.50000762951095
)

Anmerkungen

Hinweis:

Available with ImageMagick library version 6.2.9 and higher.


Description

  • « ImagickPixel::getHSL
  • ImagickPixel::isPixelSimilar »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::getIndex

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickPixel::getIndex — Description

Beschreibung

public ImagickPixel::getIndex ( ) : int

Gets the colormap index of the pixel wand.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Check the distance between this color and another

  • « ImagickPixel::getIndex
  • ImagickPixel::isPixelSimilarQuantum »
  • PHP Manual
  • ImagickPixel
  • Check the distance between this color and another

ImagickPixel::isPixelSimilar

(PECL imagick 3 >= 3.3.0)

ImagickPixel::isPixelSimilar — Check the distance between this color and another

Beschreibung

public ImagickPixel::isPixelSimilar ( ImagickPixel $color , float $fuzz ) : bool

Checks the distance between the color described by this ImagickPixel object and that of the provided object, by plotting their RGB values on the color cube. If the distance between the two points is less than the fuzz value given, the colors are similar. This method replaces ImagickPixel::isSimilar() and correctly normalises the fuzz value to ImageMagick QuantumRange.

Parameter-Liste

color

The ImagickPixel object to compare this object against.

fuzz

The maximum distance within which to consider these colors as similar. The theoretical maximum for this value is the square root of three (1.732).

Rückgabewerte

Liefert true bei Erfolg.


Description

  • « ImagickPixel::isPixelSimilar
  • ImagickPixel::isSimilar »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::isPixelSimilarQuantum

(PECL imagick 3 >= 3.3.0)

ImagickPixel::isPixelSimilarQuantum — Description

Beschreibung

public ImagickPixel::isPixelSimilarQuantum ( string $color , string $fuzz = ? ) : bool

Returns true if the distance between two colors is less than the specified distance. The fuzz value should be in the range 0-QuantumRange. The maximum value represents the longest possible distance in the colorspace. e.g. from RGB(0, 0, 0) to RGB(255, 255, 255) for the RGB colorspace

Parameter-Liste

color

fuzz

Rückgabewerte


Check the distance between this color and another

  • « ImagickPixel::isPixelSimilarQuantum
  • ImagickPixel::setColor »
  • PHP Manual
  • ImagickPixel
  • Check the distance between this color and another

ImagickPixel::isSimilar

(PECL imagick 2, PECL imagick 3)

ImagickPixel::isSimilar — Check the distance between this color and another

Beschreibung

public ImagickPixel::isSimilar ( ImagickPixel $color , float $fuzz ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Checks the distance between the color described by this ImagickPixel object and that of the provided object, by plotting their RGB values on the color cube. If the distance between the two points is less than the fuzz value given, the colors are similar. Deprecated in favour of ImagickPixel::isPixelSimilar().

Parameter-Liste

color

The ImagickPixel object to compare this object against.

fuzz

The maximum distance within which to consider these colors as similar. The theoretical maximum for this value is the square root of three (1.732).

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 ImagickPixel::isSimilar()

<?php
        // The tests below are written with the maximum distance expressed as 255
        // so we need to scale them by the square root of 3 - the diagonal length
        // of a unit cube.
        $root3 = 1.732050807568877;

        $tests = array(
            ['rgb(245, 0, 0)',      'rgb(255, 0, 0)',   9 / $root3,         false,],
            ['rgb(245, 0, 0)',      'rgb(255, 0, 0)',  10 / $root3,         true,],
            ['rgb(0, 0, 0)',        'rgb(7, 7, 0)',     9 / $root3,         false,],
            ['rgb(0, 0, 0)',        'rgb(7, 7, 0)',    10 / $root3,         true,],
            ['rgba(0, 0, 0, 1)',    'rgba(7, 7, 0, 1)', 9 / $root3,         false,],
            ['rgba(0, 0, 0, 1)',    'rgba(7, 7, 0, 1)',    10 / $root3,     true,],
            ['rgb(128, 128, 128)',  'rgb(128, 128, 120)',   7 / $root3,     false,],
            ['rgb(128, 128, 128)',  'rgb(128, 128, 120)',   8 / $root3,     true,],
            ['rgb(0, 0, 0)',        'rgb(255, 255, 255)',   254.9,          false,],
            ['rgb(0, 0, 0)',        'rgb(255, 255, 255)',   255,            true,],
            ['rgb(255, 0, 0)',      'rgb(0, 255, 255)',     254.9,          false,],
            ['rgb(255, 0, 0)',      'rgb(0, 255, 255)',     255,            true,],
            ['black',               'rgba(0, 0, 0)',        0.0,            true],
            ['black',               'rgba(10, 0, 0, 1.0)',  10.0 / $root3,  true],);

        $output = "<table width='100%' class='infoTable'><thead>
                <tr>
                <th>
                Color 1
                </th>
                <th>
                Color 2
                </th>
                <th>
                    Test distance * 255
                </th>
                <th>
                    Is within distance
                </th>
                </tr>
        </thead>";

        $output .= "<tbody>";

        foreach ($tests as $testInfo) {
            $color1 = $testInfo[0];
            $color2 = $testInfo[1];
            $distance = $testInfo[2];
            $expectation = $testInfo[3];
            $testDistance = ($distance / 255.0);

            $color1Pixel = new \ImagickPixel($color1);
            $color2Pixel = new \ImagickPixel($color2);

            $isSimilar = $color1Pixel->isPixelSimilar($color2Pixel, $testDistance);

            if ($isSimilar !== $expectation) {
                echo "Test distance failed. Color [$color1] compared to color [$color2] is not within distance $testDistance FAILED.".NL;
            }

            $layout = "<tr>
                <td>%s</td>
                <td>%s</td>
                <td>%s</td>
                <td style='text-align: center;'>%s</td>
            </tr>";

            $output .= sprintf(
                $layout,
                $color1,
                $color2,
                $distance,
                $isSimilar ? 'yes' : 'no'
            );
        }

        $output .= "</tbody></table>";

        return $output;

?>


Sets the color

  • « ImagickPixel::isSimilar
  • ImagickPixel::setColorCount »
  • PHP Manual
  • ImagickPixel
  • Sets the color

ImagickPixel::setColor

(PECL imagick 2, PECL imagick 3)

ImagickPixel::setColor — Sets the color

Beschreibung

public ImagickPixel::setColor ( string $color ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the color described by the ImagickPixel object, with a string (e.g. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).

Parameter-Liste

color

The color definition to use in order to initialise the ImagickPixel object.

Rückgabewerte

Returns true if the specified color was set, false otherwise.

Beispiele

Beispiel #1 ImagickPixel::setColor()

<?php
function setColor() {
    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel('green');
    $fillColor = new \ImagickPixel();
    $fillColor->setColor('rgba(100%, 75%, 0%, 1.0)');

    $draw->setstrokewidth(3.0);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);

    $image = new \Imagick();
    $image->newImage(500, 500, "SteelBlue2");
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Description

  • « ImagickPixel::setColor
  • ImagickPixel::setColorValue »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::setColorCount

(PECL imagick 2, PECL imagick 3)

ImagickPixel::setColorCount — Description

Beschreibung

public ImagickPixel::setcolorcount ( int $colorCount ) : bool

Sets the color count associated with this color.

Parameter-Liste

colorCount

Rückgabewerte

Liefert true bei Erfolg.


Sets the normalized value of one of the channels

  • « ImagickPixel::setColorCount
  • ImagickPixel::setColorValueQuantum »
  • PHP Manual
  • ImagickPixel
  • Sets the normalized value of one of the channels

ImagickPixel::setColorValue

(PECL imagick 2, PECL imagick 3)

ImagickPixel::setColorValue — Sets the normalized value of one of the channels

Beschreibung

public ImagickPixel::setColorValue ( int $color , float $value ) : bool

Sets the value of the specified channel of this object to the provided value, which should be between 0 and 1. This function can be used to provide an opacity channel to an ImagickPixel object.

Parameter-Liste

color

One of the Imagick color constants e.g. \Imagick::COLOR_GREEN or \Imagick::COLOR_ALPHA.

value

The value to set this channel to, ranging from 0 to 1.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Basic Imagick::setColorValue() usage

<?php

$color  = new \ImagickPixel('firebrick');

$color->setColorValue(Imagick::COLOR_ALPHA, 0.5);

print_r($color->getcolor(true));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [r] => 0.69803921568627
    [g] => 0.13333333333333
    [b] => 0.13333333333333
    [a] => 0.50000762951095
)


Description

  • « ImagickPixel::setColorValue
  • ImagickPixel::setHSL »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::setColorValueQuantum

(PECL imagick 2 >=2.3.0, PECL imagick 3)

ImagickPixel::setColorValueQuantum — Description

Beschreibung

public ImagickPixel::setColorValueQuantum ( int $color , int|float $value ) : bool

Sets the quantum value of a color element of the ImagickPixel.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

color

Which color element to set e.g. \Imagick::COLOR_GREEN.

value

The quantum value to set the color element to. This should be a float if ImageMagick was compiled with HDRI otherwise an int in the range 0 to Imagick::getQuantum().

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 ImagickPixel::setColorValueQuantum()

<?php
function setColorValueQuantum() {
    $image = new \Imagick();

    $quantumRange = $image->getQuantumRange();

    $draw = new \ImagickDraw();
    $color = new \ImagickPixel('blue');
    $color->setcolorValueQuantum(\Imagick::COLOR_RED, 128 * $quantumRange['quantumRangeLong'] / 256);

    $draw->setstrokewidth(1.0);
    $draw->setStrokeColor($color);
    $draw->setFillColor($color);
    $draw->rectangle(200, 200, 300, 300);

    $image->newImage(500, 500, "SteelBlue2");
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the normalized HSL color

  • « ImagickPixel::setColorValueQuantum
  • ImagickPixel::setIndex »
  • PHP Manual
  • ImagickPixel
  • Sets the normalized HSL color

ImagickPixel::setHSL

(PECL imagick 2, PECL imagick 3)

ImagickPixel::setHSL — Sets the normalized HSL color

Beschreibung

public ImagickPixel::setHSL ( float $hue , float $saturation , float $luminosity ) : bool

Sets the color described by the ImagickPixel object using normalized values for hue, saturation and luminosity.

Parameter-Liste

hue

The normalized value for hue, described as a fractional arc (between 0 and 1) of the hue circle, where the zero value is red.

saturation

The normalized value for saturation, with 1 as full saturation.

luminosity

The normalized value for luminosity, on a scale from black at 0 to white at 1, with the full HS value at 0.5 luminosity.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 Use ImagickPixel::setHSL() to modify a color

<?php

//Create an almost pure red color
$color = new ImagickPixel('rgb(90%, 10%, 10%)');

//Get it's HSL values
$colorInfo = $color->getHSL();

//Rotate the hue by 180 degrees
$newHue = $colorInfo['hue'] + 0.5;
if ($newHue > 1) {
    $newHue = $newHue - 1;
}

//Set the ImagickPixel to the new color
$colorInfo = $color->setHSL($newHue, $colorInfo['saturation'], $colorInfo['luminosity']);

//Check that the new color is blue/green
$colorInfo = $color->getcolor();
print_r($colorInfo);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [r] => 26
    [g] => 230
    [b] => 230
    [a] => 255
)

Anmerkungen

Hinweis:

Available with ImageMagick library version 6.2.9 and higher.


Description

  • « ImagickPixel::setHSL
  • ImagickPixelIterator »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::setIndex

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickPixel::setIndex — Description

Beschreibung

public ImagickPixel::setIndex ( int $index ) : bool

Sets the colormap index of the pixel wand.

Parameter-Liste

index

Rückgabewerte

Liefert true bei Erfolg.


The ImagickPixelIterator class

(PECL imagick 2, PECL imagick 3)

Klassenbeschreibung

ImagickPixelIterator {
public clear ( ) : bool
public __construct ( Imagick $wand )
public destroy ( ) : bool
public getCurrentIteratorRow ( ) : array
public getIteratorRow ( ) : int
public getNextIteratorRow ( ) : array
public getPreviousIteratorRow ( ) : array
public newPixelIterator ( Imagick $wand ) : bool
public newPixelRegionIterator ( Imagick $wand , int $x , int $y , int $columns , int $rows ) : bool
public resetIterator ( ) : bool
public setIteratorFirstRow ( ) : bool
public setIteratorLastRow ( ) : bool
public setIteratorRow ( int $row ) : bool
public syncIterator ( ) : bool
}

Inhaltsverzeichnis

  • ImagickPixelIterator::clear — Clear resources associated with a PixelIterator
  • ImagickPixelIterator::__construct — The ImagickPixelIterator constructor
  • ImagickPixelIterator::destroy — Deallocates resources associated with a PixelIterator
  • ImagickPixelIterator::getCurrentIteratorRow — Returns the current row of ImagickPixel objects
  • ImagickPixelIterator::getIteratorRow — Returns the current pixel iterator row
  • ImagickPixelIterator::getNextIteratorRow — Returns the next row of the pixel iterator
  • ImagickPixelIterator::getPreviousIteratorRow — Returns the previous row
  • ImagickPixelIterator::newPixelIterator — Returns a new pixel iterator
  • ImagickPixelIterator::newPixelRegionIterator — Returns a new pixel iterator
  • ImagickPixelIterator::resetIterator — Resets the pixel iterator
  • ImagickPixelIterator::setIteratorFirstRow — Sets the pixel iterator to the first pixel row
  • ImagickPixelIterator::setIteratorLastRow — Sets the pixel iterator to the last pixel row
  • ImagickPixelIterator::setIteratorRow — Set the pixel iterator row
  • ImagickPixelIterator::syncIterator — Syncs the pixel iterator


Clear resources associated with a PixelIterator

  • « ImagickPixelIterator
  • ImagickPixelIterator::__construct »
  • PHP Manual
  • ImagickPixelIterator
  • Clear resources associated with a PixelIterator

ImagickPixelIterator::clear

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::clear — Clear resources associated with a PixelIterator

Beschreibung

public ImagickPixelIterator::clear ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Clear resources associated with a PixelIterator.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 ImagickPixelIterator::clear()

<?php
function clear($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));

    $imageIterator = $imagick->getPixelRegionIterator(100, 100, 250, 200);

    /* Loop through pixel rows */
    foreach ($imageIterator as $pixels) {
        /** @var $pixel \ImagickPixel */
        /* Loop through the pixels in the row (columns) */
        foreach ($pixels as $column => $pixel) {
            if ($column % 2) {
                /* Paint every second pixel black*/
                $pixel->setColor("rgba(0, 0, 0, 0)");
            }
        }
        /* Sync the iterator, this is important to do on each iteration */
        $imageIterator->syncIterator();
    }

    $imageIterator->clear();

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


The ImagickPixelIterator constructor

  • « ImagickPixelIterator::clear
  • ImagickPixelIterator::destroy »
  • PHP Manual
  • ImagickPixelIterator
  • The ImagickPixelIterator constructor

ImagickPixelIterator::__construct

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::__construct — The ImagickPixelIterator constructor

Beschreibung

public ImagickPixelIterator::__construct ( Imagick $wand )
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

The ImagickPixelIterator constructor

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 ImagickPixelIterator::construct()

<?php
function construct($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = new \ImagickPixelIterator($imagick);

    /* Loop through pixel rows */
    foreach ($imageIterator as $pixels) {
        /* Loop through the pixels in the row (columns) */
        foreach ($pixels as $column => $pixel) {
            /** @var $pixel \ImagickPixel */
            if ($column % 2) {
                /* Paint every second pixel black*/
                $pixel->setColor("rgba(0, 0, 0, 0)");
            }
        }
        /* Sync the iterator, this is important to do on each iteration */
        $imageIterator->syncIterator();
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Deallocates resources associated with a PixelIterator

  • « ImagickPixelIterator::__construct
  • ImagickPixelIterator::getCurrentIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Deallocates resources associated with a PixelIterator

ImagickPixelIterator::destroy

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::destroy — Deallocates resources associated with a PixelIterator

Beschreibung

public ImagickPixelIterator::destroy ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Deallocates resources associated with a PixelIterator.

Rückgabewerte

Liefert true bei Erfolg.


Returns the current row of ImagickPixel objects

  • « ImagickPixelIterator::destroy
  • ImagickPixelIterator::getIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Returns the current row of ImagickPixel objects

ImagickPixelIterator::getCurrentIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::getCurrentIteratorRow — Returns the current row of ImagickPixel objects

Beschreibung

public ImagickPixelIterator::getCurrentIteratorRow ( ) : array
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the current row as an array of ImagickPixel objects from the pixel iterator.

Rückgabewerte

Returns a row as an array of ImagickPixel objects that can themselves be iterated.


Returns the current pixel iterator row

  • « ImagickPixelIterator::getCurrentIteratorRow
  • ImagickPixelIterator::getNextIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Returns the current pixel iterator row

ImagickPixelIterator::getIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::getIteratorRow — Returns the current pixel iterator row

Beschreibung

public ImagickPixelIterator::getIteratorRow ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the current pixel iterator row.

Rückgabewerte

Returns the integer offset of the row, throwing ImagickPixelIteratorException on error.


Returns the next row of the pixel iterator

  • « ImagickPixelIterator::getIteratorRow
  • ImagickPixelIterator::getPreviousIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Returns the next row of the pixel iterator

ImagickPixelIterator::getNextIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::getNextIteratorRow — Returns the next row of the pixel iterator

Beschreibung

public ImagickPixelIterator::getNextIteratorRow ( ) : array
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the next row as an array of pixel wands from the pixel iterator.

Rückgabewerte

Returns the next row as an array of ImagickPixel objects, throwing ImagickPixelIteratorException on error.

Beispiele

Beispiel #1 ImagickPixelIterator::getNextIteratorRow()

<?php
function getNextIteratorRow($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = $imagick->getPixelIterator();

    $count = 0;
    while ($pixels = $imageIterator->getNextIteratorRow()) {
        if (($count % 3) == 0) {
            /* Loop through the pixels in the row (columns) */
            foreach ($pixels as $column => $pixel) {
                /** @var $pixel \ImagickPixel */
                if ($column % 2) {
                    /* Paint every second pixel black*/
                    $pixel->setColor("rgba(0, 0, 0, 0)");
                }
            }
            /* Sync the iterator, this is important to do on each iteration */
            $imageIterator->syncIterator();
        }

        $count += 1;
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Returns the previous row

  • « ImagickPixelIterator::getNextIteratorRow
  • ImagickPixelIterator::newPixelIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Returns the previous row

ImagickPixelIterator::getPreviousIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::getPreviousIteratorRow — Returns the previous row

Beschreibung

public ImagickPixelIterator::getPreviousIteratorRow ( ) : array
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the previous row as an array of pixel wands from the pixel iterator.

Rückgabewerte

Returns the previous row as an array of ImagickPixelWand objects from the ImagickPixelIterator, throwing ImagickPixelIteratorException on error.


Returns a new pixel iterator

  • « ImagickPixelIterator::getPreviousIteratorRow
  • ImagickPixelIterator::newPixelRegionIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Returns a new pixel iterator

ImagickPixelIterator::newPixelIterator

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::newPixelIterator — Returns a new pixel iterator

Beschreibung

public ImagickPixelIterator::newPixelIterator ( Imagick $wand ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns a new pixel iterator.

Rückgabewerte

Liefert true bei Erfolg. Throwing ImagickPixelIteratorException.


Returns a new pixel iterator

  • « ImagickPixelIterator::newPixelIterator
  • ImagickPixelIterator::resetIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Returns a new pixel iterator

ImagickPixelIterator::newPixelRegionIterator

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::newPixelRegionIterator — Returns a new pixel iterator

Beschreibung

public ImagickPixelIterator::newPixelRegionIterator ( Imagick $wand , int $x , int $y , int $columns , int $rows ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns a new pixel iterator.

Parameter-Liste

wand

x

y

columns

rows

Rückgabewerte

Returns a new ImagickPixelIterator on success; on failure, throws ImagickPixelIteratorException.


Resets the pixel iterator

  • « ImagickPixelIterator::newPixelRegionIterator
  • ImagickPixelIterator::setIteratorFirstRow »
  • PHP Manual
  • ImagickPixelIterator
  • Resets the pixel iterator

ImagickPixelIterator::resetIterator

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::resetIterator — Resets the pixel iterator

Beschreibung

public ImagickPixelIterator::resetIterator ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Resets the pixel iterator. Use it in conjunction with ImagickPixelIterator::getNextIteratorRow() to iterate over all the pixels in a pixel container.

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 ImagickPixelIterator::resetIterator()

<?php
function resetIterator($imagePath) {

    $imagick = new \Imagick(realpath($imagePath));

    $imageIterator = $imagick->getPixelIterator();

    /* Loop trough pixel rows */
    foreach ($imageIterator as $pixels) {
        /* Loop through the pixels in the row (columns) */
        foreach ($pixels as $column => $pixel) {
            /** @var $pixel \ImagickPixel */
            if ($column % 2) {

                /* Make every second pixel 25% red*/
                $pixel->setColorValue(\Imagick::COLOR_RED, 64);
            }
        }
        /* Sync the iterator, this is important to do on each iteration */
        $imageIterator->syncIterator();
    }

    $imageIterator->resetiterator();

    /* Loop trough pixel rows */
    foreach ($imageIterator as $pixels) {
        /* Loop through the pixels in the row (columns) */
        foreach ($pixels as $column => $pixel) {
            /** @var $pixel \ImagickPixel */
            if ($column % 3) {
                $pixel->setColorValue(\Imagick::COLOR_BLUE, 64); /* Make every second pixel a little blue*/
                //$pixel->setColor("rgba(0, 0, 128, 0)"); /* Paint every second pixel black*/
            }
        }
        $imageIterator->syncIterator(); /* Sync the iterator, this is important to do on each iteration */
    }

    $imageIterator->clear();

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Sets the pixel iterator to the first pixel row

  • « ImagickPixelIterator::resetIterator
  • ImagickPixelIterator::setIteratorLastRow »
  • PHP Manual
  • ImagickPixelIterator
  • Sets the pixel iterator to the first pixel row

ImagickPixelIterator::setIteratorFirstRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::setIteratorFirstRow — Sets the pixel iterator to the first pixel row

Beschreibung

public ImagickPixelIterator::setIteratorFirstRow ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the pixel iterator to the first pixel row.

Rückgabewerte

Liefert true bei Erfolg.


Sets the pixel iterator to the last pixel row

  • « ImagickPixelIterator::setIteratorFirstRow
  • ImagickPixelIterator::setIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Sets the pixel iterator to the last pixel row

ImagickPixelIterator::setIteratorLastRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::setIteratorLastRow — Sets the pixel iterator to the last pixel row

Beschreibung

public ImagickPixelIterator::setIteratorLastRow ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Sets the pixel iterator to the last pixel row.

Rückgabewerte

Liefert true bei Erfolg.


Set the pixel iterator row

  • « ImagickPixelIterator::setIteratorLastRow
  • ImagickPixelIterator::syncIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Set the pixel iterator row

ImagickPixelIterator::setIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::setIteratorRow — Set the pixel iterator row

Beschreibung

public ImagickPixelIterator::setIteratorRow ( int $row ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Set the pixel iterator row.

Parameter-Liste

row

Rückgabewerte

Liefert true bei Erfolg.

Beispiele

Beispiel #1 ImagickPixelIterator::setIteratorRow()

<?php
function setIteratorRow($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = $imagick->getPixelRegionIterator(200, 100, 200, 200);

    for ($x = 0; $x < 20; $x++) {
        $imageIterator->setIteratorRow($x * 5);
        $pixels = $imageIterator->getCurrentIteratorRow();
        /* Loop through the pixels in the row (columns) */
        foreach ($pixels as $pixel) {
            /** @var $pixel \ImagickPixel */
            /* Paint every second pixel black*/
            $pixel->setColor("rgba(0, 0, 0, 0)");
        }

        /* Sync the iterator, this is important to do on each iteration */
        $imageIterator->syncIterator();
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Syncs the pixel iterator

  • « ImagickPixelIterator::setIteratorRow
  • ImagickKernel »
  • PHP Manual
  • ImagickPixelIterator
  • Syncs the pixel iterator

ImagickPixelIterator::syncIterator

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::syncIterator — Syncs the pixel iterator

Beschreibung

public ImagickPixelIterator::syncIterator ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Syncs the pixel iterator.

Rückgabewerte

Liefert true bei Erfolg.


The ImagickKernel class

(PECL imagick >= 3.3.0)

Einführung

Klassenbeschreibung

ImagickKernel {
/* Methoden */
public addKernel ( ImagickKernel $ImagickKernel ) : void
public addUnityKernel ( float $scale ) : void
public static fromBuiltin ( int $kernelType , string $kernelString ) : ImagickKernel
public static fromMatrix ( array $matrix , array $origin = ? ) : ImagickKernel
public getMatrix ( ) : array
public scale ( float $scale , int $normalizeFlag = ? ) : void
public separate ( ) : array
}

Inhaltsverzeichnis

  • ImagickKernel::addKernel — Description
  • ImagickKernel::addUnityKernel — Description
  • ImagickKernel::fromBuiltIn — Description
  • ImagickKernel::fromMatrix — Description
  • ImagickKernel::getMatrix — Description
  • ImagickKernel::scale — Description
  • ImagickKernel::separate — Description


Description

  • « ImagickKernel
  • ImagickKernel::addUnityKernel »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::addKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addKernel — Description

Beschreibung

public ImagickKernel::addKernel ( ImagickKernel $ImagickKernel ) : void

Attach another kernel to this kernel to allow them to both be applied in a single morphology or filter function. Returns the new combined kernel.

Parameter-Liste

ImagickKernel

Rückgabewerte

Beispiele

Beispiel #1 ImagickKernel::addKernel()

<?php
function addKernel($imagePath) {
    $matrix1 = [
        [-1, -1, -1],
        [ 0,  0,  0],
        [ 1,  1,  1],
    ];

    $matrix2 = [
        [-1,  0,  1],
        [-1,  0,  1],
        [-1,  0,  1],
    ];

    $kernel1 = ImagickKernel::fromMatrix($matrix1);
    $kernel2 = ImagickKernel::fromMatrix($matrix2);
    $kernel1->addKernel($kernel2);

    $imagick = new \Imagick(realpath($imagePath));
    $imagick->filter($kernel1);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();

}

?>


Description

  • « ImagickKernel::addKernel
  • ImagickKernel::fromBuiltIn »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::addUnityKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addUnityKernel — Description

Beschreibung

public ImagickKernel::addUnityKernel ( float $scale ) : void

Adds a given amount of the 'Unity' Convolution Kernel to the given pre-scaled and normalized Kernel. This in effect adds that amount of the original image into the resulting convolution kernel. The resulting effect is to convert the defined kernels into blended soft-blurs, unsharp kernels or into sharpening kernels.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 ImagickKernel::addUnityKernel()

<?php

    function renderKernelTable($matrix) {
        $output = "<table class='infoTable'>";

        foreach ($matrix as $row) {
            $output .= "<tr>";
            foreach ($row as $cell) {
                $output .= "<td style='text-align:left'>";
                if ($cell === false) {
                    $output .= "false";
                }
                else {
                    $output .= round($cell, 3);
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
    $output = "Before adding unity kernel: <br/>";
    $output .= renderKernelTable($kernel->getMatrix());
    $kernel->addUnityKernel(0.5);
    $output .= "After adding unity kernel: <br/>";
    $output .= renderKernelTable($kernel->getMatrix());

    $kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
    $output .= "After renormalizing kernel: <br/>";
    $output .= renderKernelTable($kernel->getMatrix());

    echo $output;

?>

Beispiel #2 ImagickKernel::addUnityKernel()

<?php
function addUnityKernel($imagePath) {

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = ImagickKernel::fromMatrix($matrix);

    $kernel->scale(4, \Imagick::NORMALIZE_KERNEL_VALUE);
    $kernel->addUnityKernel(0.5);

    $imagick = new \Imagick(realpath($imagePath));
    $imagick->filter($kernel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();

}

?>


Description

  • « ImagickKernel::addUnityKernel
  • ImagickKernel::fromMatrix »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::fromBuiltIn

(PECL imagick >= 3.3.0)

ImagickKernel::fromBuiltIn — Description

Beschreibung

public static ImagickKernel::fromBuiltin ( int $kernelType , string $kernelString ) : ImagickKernel

Create a kernel from a builtin in kernel. See http://www.imagemagick.org/Usage/morphology/#kernel for examples. Currently the 'rotation' symbols are not supported. Example: $diamondKernel = ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "2");

Parameter-Liste

kerneltype

The type of kernel to build e.g. \Imagick::KERNEL_DIAMOND

kernelString

A string that describes the parameters e.g. "4,2.5"

Rückgabewerte

Beispiele

Beispiel #1 ImagickKernel::fromBuiltin()

<?php

function renderKernel(ImagickKernel $imagickKernel) {
    $matrix = $imagickKernel->getMatrix();

    $imageMargin = 20;

    $tileSize = 20;
    $tileSpace = 4;
    $shadowSigma = 4;
    $shadowDropX = 20;
    $shadowDropY = 0;

    $radius = ($tileSize / 2) * 0.9;

    $rows = count($matrix);
    $columns = count($matrix[0]);

    $imagickDraw = new \ImagickDraw();

    $imagickDraw->setFillColor('#afafaf');
    $imagickDraw->setStrokeColor('none');

    $imagickDraw->translate($imageMargin, $imageMargin);
    $imagickDraw->push();

    ksort($matrix);

    foreach ($matrix as $row) {
        ksort($row);
        $imagickDraw->push();
        foreach ($row as $cell) {
            if ($cell !== false) {
                $color = intval(255 * $cell);
                $colorString = sprintf("rgb(%f, %f, %f)", $color, $color, $color);
                $imagickDraw->setFillColor($colorString);
                $imagickDraw->rectangle(0, 0, $tileSize, $tileSize);
            }
            $imagickDraw->translate(($tileSize + $tileSpace), 0);
        }
        $imagickDraw->pop();
        $imagickDraw->translate(0, ($tileSize + $tileSpace));
    }

    $imagickDraw->pop();

    $width = ($columns * $tileSize) + (($columns - 1) * $tileSpace);
    $height = ($rows * $tileSize) + (($rows - 1) * $tileSpace);

    $imagickDraw->push();
    $imagickDraw->translate($width/2 , $height/2);
    $imagickDraw->setFillColor('rgba(0, 0, 0, 0)');
    $imagickDraw->setStrokeColor('white');
    $imagickDraw->circle(0, 0, $radius - 1, 0);
    $imagickDraw->setStrokeColor('black');
    $imagickDraw->circle(0, 0, $radius, 0);
    $imagickDraw->pop();

    $canvasWidth = $width + (2 * $imageMargin);
    $canvasHeight = $height + (2 * $imageMargin);

    $kernel = new \Imagick();
    $kernel->newPseudoImage(
        $canvasWidth,
        $canvasHeight,
        'canvas:none'
    );

    $kernel->setImageFormat('png');
    $kernel->drawImage($imagickDraw);

    /* create drop shadow on it's own layer */
    $canvas = $kernel->clone();
    $canvas->setImageBackgroundColor(new \ImagickPixel('rgb(0, 0, 0)'));
    $canvas->shadowImage(100, $shadowSigma, $shadowDropX, $shadowDropY);

    $canvas->setImagePage($canvasWidth, $canvasHeight, -5, -5);
    $canvas->cropImage($canvasWidth, $canvasHeight, 0, 0);

    /* composite original text_layer onto shadow_layer */
    $canvas->compositeImage($kernel, \Imagick::COMPOSITE_OVER, 0, 0);
    $canvas->setImageFormat('png');

    return $canvas;
}

function createFromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm) {
    $string = '';

    if ($kernelFirstTerm != false && strlen(trim($kernelFirstTerm)) != 0) {
        $string .= $kernelFirstTerm;

        if ($kernelSecondTerm != false && strlen(trim($kernelSecondTerm)) != 0) {
            $string .= ','.$kernelSecondTerm;
            if ($kernelThirdTerm != false && strlen(trim($kernelThirdTerm)) != 0) {
                $string .= ','.$kernelThirdTerm;
            }
        }
    }

    $kernel = ImagickKernel::fromBuiltIn(
        $kernelType,
        $string
    );

    return $kernel;
}

function fromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm) {
    $diamondKernel = createFromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm);
    $imagick = renderKernel($diamondKernel);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

fromBuiltin(\Imagick::KERNEL_DIAMOND, 2, false, false);

?>


Description

  • « ImagickKernel::fromBuiltIn
  • ImagickKernel::getMatrix »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::fromMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::fromMatrix — Description

Beschreibung

public static ImagickKernel::fromMatrix ( array $matrix , array $origin = ? ) : ImagickKernel

Create a kernel from an 2d matrix of values. Each value should either be a float (if the element should be used) or 'false' if the element should be skipped. For matrices that are odd sizes in both dimensions the origin pixel will default to the centre of the kernel. For all other kernel sizes the origin pixel must be specified.

Parameter-Liste

array

A matrix (i.e. 2d array) of values that define the kernel. Each element should be either a float value, or FALSE if that element shouldn't be used by the kernel.

array

Which element of the kernel should be used as the origin pixel. e.g. For a 3x3 matrix specifying the origin as [2, 2] would specify that the bottom right element should be the origin pixel.

Rückgabewerte

The generated ImagickKernel.

Beispiele

Beispiel #1 ImagickKernel::fromMatrix()

<?php

function renderKernel(ImagickKernel $imagickKernel) {
    $matrix = $imagickKernel->getMatrix();

    $imageMargin = 20;

    $tileSize = 20;
    $tileSpace = 4;
    $shadowSigma = 4;
    $shadowDropX = 20;
    $shadowDropY = 0;

    $radius = ($tileSize / 2) * 0.9;

    $rows = count($matrix);
    $columns = count($matrix[0]);

    $imagickDraw = new \ImagickDraw();

    $imagickDraw->setFillColor('#afafaf');
    $imagickDraw->setStrokeColor('none');

    $imagickDraw->translate($imageMargin, $imageMargin);
    $imagickDraw->push();

    ksort($matrix);

    foreach ($matrix as $row) {
        ksort($row);
        $imagickDraw->push();
        foreach ($row as $cell) {
            if ($cell !== false) {
                $color = intval(255 * $cell);
                $colorString = sprintf("rgb(%f, %f, %f)", $color, $color, $color);
                $imagickDraw->setFillColor($colorString);
                $imagickDraw->rectangle(0, 0, $tileSize, $tileSize);
            }
            $imagickDraw->translate(($tileSize + $tileSpace), 0);
        }
        $imagickDraw->pop();
        $imagickDraw->translate(0, ($tileSize + $tileSpace));
    }

    $imagickDraw->pop();

    $width = ($columns * $tileSize) + (($columns - 1) * $tileSpace);
    $height = ($rows * $tileSize) + (($rows - 1) * $tileSpace);

    $imagickDraw->push();
    $imagickDraw->translate($width/2 , $height/2);
    $imagickDraw->setFillColor('rgba(0, 0, 0, 0)');
    $imagickDraw->setStrokeColor('white');
    $imagickDraw->circle(0, 0, $radius - 1, 0);
    $imagickDraw->setStrokeColor('black');
    $imagickDraw->circle(0, 0, $radius, 0);
    $imagickDraw->pop();

    $canvasWidth = $width + (2 * $imageMargin);
    $canvasHeight = $height + (2 * $imageMargin);

    $kernel = new \Imagick();
    $kernel->newPseudoImage(
        $canvasWidth,
        $canvasHeight,
        'canvas:none'
    );

    $kernel->setImageFormat('png');
    $kernel->drawImage($imagickDraw);

    /* create drop shadow on it's own layer */
    $canvas = $kernel->clone();
    $canvas->setImageBackgroundColor(new \ImagickPixel('rgb(0, 0, 0)'));
    $canvas->shadowImage(100, $shadowSigma, $shadowDropX, $shadowDropY);

    $canvas->setImagePage($canvasWidth, $canvasHeight, -5, -5);
    $canvas->cropImage($canvasWidth, $canvasHeight, 0, 0);

    /* composite original text_layer onto shadow_layer */
    $canvas->compositeImage($kernel, \Imagick::COMPOSITE_OVER, 0, 0);
    $canvas->setImageFormat('png');

    return $canvas;
}

function createFromMatrix() {
    $matrix = [
        [0.5, 0, 0.2],
        [0, 1, 0],
        [0.9, 0, false],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);

    return $kernel;
}

function fromMatrix() {
    $kernel = createFromMatrix();
    $imagick = renderKernel($kernel);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Description

  • « ImagickKernel::fromMatrix
  • ImagickKernel::scale »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::getMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::getMatrix — Description

Beschreibung

public ImagickKernel::getMatrix ( ) : array

Get the 2d matrix of values used in this kernel. The elements are either float for elements that are used or 'false' if the element should be skipped.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A matrix (2d array) of the values that represent the kernel.

Beispiele

Beispiel #1 ImagickKernel::getMatrix()

<?php

function renderKernelTable($matrix) {
    $output = "<table class='infoTable'>";

    foreach ($matrix as $row) {
        $output .= "<tr>";
        foreach ($row as $cell) {
            $output .= "<td style='text-align:left'>";
            if ($cell === false) {
                $output .= "false";
            }
            else {
                $output .= round($cell, 3);
            }
            $output .= "</td>";
        }
        $output .= "</tr>";
    }

    $output .= "</table>";

    return $output;
}

    $output = "The built-in kernel name 'ring' with parameters of '2,3.5':<br/>";
    $kernel = \ImagickKernel::fromBuiltIn(
        \Imagick::KERNEL_RING,
        "2,3.5"
    );
    $matrix = $kernel->getMatrix();
    $output .= renderKernelTable($matrix);

    echo $output;

?>


Description

  • « ImagickKernel::getMatrix
  • ImagickKernel::separate »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::scale

(PECL imagick >= 3.3.0)

ImagickKernel::scale — Description

Beschreibung

public ImagickKernel::scale ( float $scale , int $normalizeFlag = ? ) : void

ScaleKernelInfo() scales the given kernel list by the given amount, with or without normalization of the sum of the kernel values (as per given flags). The exact behaviour of this function depends on the normalization type being used please see http://www.imagemagick.org/api/morphology.php#ScaleKernelInfo for details. Flag should be one of Imagick::NORMALIZE_KERNEL_VALUE, Imagick::NORMALIZE_KERNEL_CORRELATE, Imagick::NORMALIZE_KERNEL_PERCENT or not set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 ImagickKernel::scale()

<?php

    function renderKernelTable($matrix) {
        $output = "<table class='infoTable'>";

        foreach ($matrix as $row) {
            $output .= "<tr>";
            foreach ($row as $cell) {
                $output .= "<td style='text-align:left'>";
                if ($cell === false) {
                    $output .= "false";
                }
                else {
                    $output .= round($cell, 3);
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

    $output = "";

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $kernelClone = clone $kernel;

    $output .= "Start kernel<br/>";
    $output .= renderKernelTable($kernel->getMatrix());

    $output .= "Scaling with NORMALIZE_KERNEL_VALUE. The  <br/>";
    $kernel->scale(2, \Imagick::NORMALIZE_KERNEL_VALUE);
    $output .= renderKernelTable($kernel->getMatrix());

    $kernel = clone $kernelClone;
    $output .= "Scaling by percent<br/>";
    $kernel->scale(2, \Imagick::NORMALIZE_KERNEL_PERCENT);
    $output .= renderKernelTable($kernel->getMatrix());

    $matrix2 = [
        [-1, -1, 1],
        [ -1, false,  1],
        [1, 1, 1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix2);
    $output .= "Scaling by correlate<br/>";
    $kernel->scale(1, \Imagick::NORMALIZE_KERNEL_CORRELATE);
    $output .= renderKernelTable($kernel->getMatrix());

    return $output;
?>


Description

  • « ImagickKernel::scale
  • E-Mail-relevante Erweiterungen »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::separate

(PECL imagick >= 3.3.0)

ImagickKernel::separate — Description

Beschreibung

public ImagickKernel::separate ( ) : array

Separates a linked set of kernels and returns an array of ImagickKernels.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 ImagickKernel::separate()

<?php

    function renderKernelTable($matrix) {

        $output = "<table class='infoTable'>";
        foreach ($matrix as $row) {
            $output .= "<tr>";
            foreach ($row as $cell) {
                $output .= "<td style='text-align:left'>";
                if ($cell === false) {
                    $output .= "false";
                }
                else {
                    $output .= round($cell, 3);
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $kernel->scale(4, \Imagick::NORMALIZE_KERNEL_VALUE);
    $diamondKernel = \ImagickKernel::fromBuiltIn(
        \Imagick::KERNEL_DIAMOND,
        "2"
    );

    $kernel->addKernel($diamondKernel);

    $kernelList = $kernel->separate();

    $output = '';
    $count = 0;
    foreach ($kernelList as $kernel) {
        $output .= "<br/>Kernel $count<br/>";
        $output .= renderKernelTable($kernel->getMatrix());
        $count++;
    }

    return $output;

?>


E-Mail-relevante Erweiterungen

  • IMAP — IMAP, POP3 and NNTP
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • IMAP Funktionen
  • Mail
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Mail-Funktionen
  • Mailparse
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Mailparse Funktionen


IMAP, POP3 and NNTP

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • IMAP Funktionen
    • imap_8bit — Konvertiert einen 8bit String in einen quoted-printable String
    • imap_alerts — Liefert alle aufgetretenen IMAP Alarmnachrichten
    • imap_append — String als Nachricht in einem Postfach ablegen
    • imap_base64 — Dekodiert Base-64 kodierten Text
    • imap_binary — Konvertiert einen 8 Bit String in einen Base64 codierten String
    • imap_body — Liefert den Körper einer Nachricht
    • imap_bodystruct — Liefert die Struktur eines bestimmten Nachrichtenteils
    • imap_check — Prüfe aktuelles Postfach
    • imap_clearflag_full — Löscht Flags einer Nachricht
    • imap_close — Schließt einen IMAP Stream
    • imap_create — Alias von imap_createmailbox
    • imap_createmailbox — Anlegen eines neuen Postfachs
    • imap_delete — Nachrichten im aktuellen Postfach zur Löschung markieren
    • imap_deletemailbox — Löscht ein Postfach
    • imap_errors — Liefert alle bisher aufgetretenen Fehlermeldungen
    • imap_expunge — Löscht alle zum Löschen markierte Nachrichten
    • imap_fetch_overview — Liefert einen Auszug aus den Kopfdaten von Nachrichten
    • imap_fetchbody — Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht
    • imap_fetchheader — Liefert den Kopf einer Nachricht
    • imap_fetchmime — Fetch MIME headers for a particular section of the message
    • imap_fetchstructure — Ermittelt die Struktur einer Nachricht
    • imap_fetchtext — Alias von imap_body
    • imap_gc — Leert den IMAP Cache
    • imap_get_quota — Liefert Quota-Beschränkungen und Nutzungsstatistik der Postfächer
    • imap_get_quotaroot — Liefert die Quota-Beschränkungen für ein Benutzerpostfach
    • imap_getacl — Liste der Zugriffsrechte für ein Postfach bestimmen
    • imap_getmailboxes — Liefert detailierte Informationen zu allen verfügbaren Postfächern
    • imap_getsubscribed — Liste alle abonnierten Postfächer
    • imap_header — Alias von imap_headerinfo
    • imap_headerinfo — Liest die Kopfdaten einer Nachricht
    • imap_headers — Liefert eine Zusammenfassung aller Nachrichtenköpfe eines Postfachs
    • imap_last_error — Liefert die letzte IMAP-Fehlermeldung für dieses Script
    • imap_list — Lies Liste der Postfächer
    • imap_listmailbox — Alias von imap_list
    • imap_listscan — Listet Postfächer nach Suchkriterien
    • imap_listsubscribed — Alias von imap_lsub
    • imap_lsub — Liste alle abonnierten Postfächer
    • imap_mail_compose — Erzeugt eine MIME-Nachricht aus Kopf- und Nachrichtenelementen
    • imap_mail_copy — Kopiert Nachrichten in ein Postfach
    • imap_mail_move — Verschiebt Nachrichten in ein anderes Postfach
    • imap_mail — Sendet eine Email Nachricht
    • imap_mailboxmsginfo — Informationen zum aktuellen Postfach
    • imap_mime_header_decode — Dekodiert MIME-kodierte Headerzeilen
    • imap_msgno — Liefert die Nachrichtennummer für eine gegebene UID
    • imap_mutf7_to_utf8 — Decode a modified UTF-7 string to UTF-8
    • imap_num_msg — Anzahl der Nachrichten im aktuellen Postfach
    • imap_num_recent — Nummer der kürzlich eingetroffenen Nachrichten
    • imap_open — Öffnet einen IMAP-Stream zu einem Mailserver-Postfach
    • imap_ping — Prüft einen IMAP-Stream auf Funktionalität
    • imap_qprint — Konvertiert einen quoted-printable kodierten String in einen 8 Bit String
    • imap_rename — Alias von imap_renamemailbox
    • imap_renamemailbox — Ändert den Namen eines Postfachs
    • imap_reopen — Wechselt das aktuelle Postfach des IMAP-Streams
    • imap_rfc822_parse_adrlist — Zerlegt einen Mailadressstring
    • imap_rfc822_parse_headers — Email-Kopfzeilen aus einem String auslesen
    • imap_rfc822_write_address — Bildet aus Realnamen, Postfach und Server eine korrekt formatierte Mail-Adresse
    • imap_savebody — Speichert einen bestimmten Body-Abschnitt einer Nachricht als Datei
    • imap_scan — Alias von imap_listscan
    • imap_scanmailbox — Alias von imap_listscan
    • imap_search — Liefert ein Array von Nachrichten, die den gegebenen Suchkriterien entsprechen
    • imap_set_quota — Setzt die Mengenbeschränkung für ein Postfach
    • imap_setacl — Setzen der ACL für ein Postfach
    • imap_setflag_full — Setzt Nachrichtenflags
    • imap_sort — Sortiert Nachrichten eines Postfachs
    • imap_status — Liefert Statusinformationen zum angegebenen Postfach
    • imap_subscribe — Abbonieren eines Postfachs
    • imap_thread — Liefert einen Baum zusammenhängender Nachrichten
    • imap_timeout — Imap Timeout setzen oder lesen
    • imap_uid — Liefert die UID für die gegebene Nachrichtennummer
    • imap_undelete — Nimmt eine bereits gesetzte Löschmarkierung einer Nachricht zurück
    • imap_unsubscribe — Abonnement eines Postfachs beenden
    • imap_utf7_decode — Dekodiert einem String im modifizierten UTF-7-Format
    • imap_utf7_encode — Kodiert ISO-8859-1 Text im modifizieren UTF-7-Format
    • imap_utf8_to_mutf7 — Encode a UTF-8 string to modified UTF-7
    • imap_utf8 — Konvertiert Text zu UTF8


Einführung

Die Funktionen dieser Extension ermöglichen die Kommunikation mit IMAP, NNTP und POP3 Servern sowie den Zugriff auf lokale Mailbox-Dateien.

Einige Funktionen dieser Extension setzen allerdings das IMAP-Protokoll voraus.


Anforderungen

Diese Extension benötigt die c-client Bibliothek, die jeweils aktuelle Version des Quellcodes dieser Bibliothek findet sich unter » https://github.com/uw-imap/imap.

Wenn Sie die Bibliothek selbst kompilieren, ist es wichtig das Sie die Header-Dateien nicht direkt im Standard-Include-Verzeichnis ablegen, da dies zu Namenskonflikten führen kann. Stattdessen sollten Sie ein neues Unterverzeichnis, z.B. /usr/local/imap-2000b/, mit zwei weiteren Unterverzeichnissen lib und include anlegen. Kopieren Sie alle *.h aus dem c-client-Quellcodeverzeichnis in das neue include-Verzeichnis und alle *.c-Dateien in das neue lib-Verzeichnis. Die bei der Kompilierung des Bibliotheksquellcodes erzeugte Datei c-client.a kopieren Sie als libc-client.a ebenfalls in das neue lib-Verzeichnis.

Hinweis:

Nähere Informationen zur Aktivierung der SSL- und Kerberos-Unterstützung der Bibliothek finden Sie in der im Source-Paket enthaltenen Dokumentation.

Hinweis: Mandrake Linux liefert die IMAP Bibliothek libc-client.a) ohne Kerberos-Unterstützung aus. Eine seperate Version mit SSL-Unterstützung wird als client-PHP4.a mitgeliefert. Für Kerberos-Unterstützung müssen Sie die Bibliothek selbst kompilieren.


Installation

Um diese Funktionen zu nutzen müssen sie PHP mit --with-imap[=DIR] kompilieren, wobei DIR der Installationsprefix der c-client Bibliothek ist. Wenn Sie diese wie oben angegeben installiert haben können Sie --with-imap=/usr/local/imap-2000b als Konfigurationsoption angeben. Windows-Benutzer können die php_imap.dll DLL in php.ini einbinden.

IMAP wird beginnend mit Windows 2000 unterstützt, älteren Windows-Versionen fehlen die benötigten Verschlüsselungsfunktionen um SSL-verschlüsselte Verbindungen zum Mailserver zu ermöglichen.

Hinweis: Je nachdem wie c-client konfiguriert wurde, müssen Sie eventuell --with-imap-ssl=/path/to/openssl/ und/oder --with-kerberos=/path/to/kerberos zu den PHP-Konfigurationsoptionen hinzufügen.

Warnung

Die IMAP , recode und YAZ Extensions können nicht zusammen verwendet werden. Diese Tatsache liegt darin begründet, dass alle diese Erweiterungen die gleichen internen Symbole benutzen. Hinweis: Yaz 2.0 und höher hat dieses Problem nicht.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

IMAP Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
imap.enable_insecure_rsh | "0" | PHP_INI_SYSTEM | Available as of PHP 7.1.25, 7.2.13 and 7.3.0. Formerly, it was implicitly enabled.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

imap.enable_insecure_rsh bool

Establishing a connection to a server may invoke rsh or ssh commands, unless this php.ini option is disabled.

Warnung

Neither PHP nor the IMAP library filter mailbox names before passing them to rsh or ssh commands, thus passing untrusted data to this function without disabling this php.ini option is insecure.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Die imap-Ressource, die von imap_open() zurückgegeben wird referenziert einen geöffneten IMAP-Stream.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

NIL (integer)
OP_DEBUG (integer)
OP_READONLY (integer)
Postfach nur zum Lesen öffnen
OP_ANONYMOUS (integer)
Für News keine .newsrc Datei lesen oder schreiben (nur NNTP)
OP_SHORTCACHE (integer)
OP_SILENT (integer)
OP_PROTOTYPE (integer)
OP_HALFOPEN (integer)
Verbindung aufbauen, aber noch kein Postfach öffnen (IMAP und NNTP)
OP_EXPUNGE (integer)
OP_SECURE (integer)
CL_EXPUNGE (integer)
Löschen aller dazu markierten Nachrichten beim Beenden der Verbindung mit imap_close()
FT_UID (integer)
Der Parameter ist eine UID
FT_PEEK (integer)
Das \Seen Flag nicht setzen, falls es noch nicht gesetzt ist
FT_NOT (integer)
FT_INTERNAL (integer)
Der Ergebnistext ist in internem Format, es wurde keine Umwandlung der Zeilenenden zu CRLF vorgenommen.
FT_PREFETCHTEXT (integer)
ST_UID (integer)
Die übergebene Sequenz enthält UIDs anstelle von Nachrichtennummern
ST_SILENT (integer)
ST_SET (integer)
CP_UID (integer)
Die Sequenz enthält UIDs
CP_MOVE (integer)
Lösche Nachrichten aus dem aktuellen Postfach, nachdem sie mit imap_mail_copy() kopiert wurden.
SE_UID (integer)
Liefere UIDs anstelle von Nachrichtennummern zurück
SE_FREE (integer)
SE_NOPREFETCH (integer)
Suchergebnisse nicht vorab übertragen
SO_FREE (integer)
SO_NOSERVER (integer)
SA_MESSAGES (integer)
SA_RECENT (integer)
SA_UNSEEN (integer)
SA_UIDNEXT (integer)
SA_UIDVALIDITY (integer)
SA_ALL (integer)
LATT_NOINFERIORS (integer)
Das Postfach enthält keine weiteren Unterpostfächer
LATT_NOSELECT (integer)
Dieses Postfach enthält nur Unterpostfächer, keine Nachrichten und kann daher nicht geöffnet werden
LATT_MARKED (integer)
Das Postfach ist markiert. Nur von UW-IMAPD verwendet.
LATT_UNMARKED (integer)
Das Postfach ist nicht markiert. Nur von UW-IMAPD verwendet.
LATT_REFERRAL (integer)
Das Postfach bezieht sich auf eine Remote-Mailbox.
LATT_HASCHILDREN (integer)
Das Postfach enthält auswählbare Unterpostfächer.
LATT_HASNOCHILDREN (integer)
Das Postfach enthält keine auswählbaren Unterpostfächer.
SORTDATE (integer)
Sortieren nach Sendedatum in imap_sort()
SORTARRIVAL (integer)
Sortieren nach Empfangsdatum in imap_sort()
SORTFROM (integer)
Sortieren nach Absender in imap_sort()
SORTSUBJECT (integer)
Sortieren nach Betreff in imap_sort()
SORTTO (integer)
Sortieren nach erstem Empfänger in imap_sort()
SORTCC (integer)
Sortieren nach erster CC-Adresse in imap_sort()
SORTSIZE (integer)
Sortieren nach Größe in imap_sort()
TYPETEXT (integer)
Primärer Body-Type: unformatierter Text
TYPEMULTIPART (integer)
Primärer Body-Type: multipart
TYPEMESSAGE (integer)
Primärer Body-Type: verkapselte Nachricht
TYPEAPPLICATION (integer)
Primärer Body-Type: Applikationsdaten
TYPEAUDIO (integer)
Primärer Body-Type: Audio
TYPEIMAGE (integer)
Primärer Body-Type: statisches Bild
TYPEVIDEO (integer)
Primärer Body-Type: Video
TYPEMODEL (integer)
Primärer Body-Type: model
TYPEOTHER (integer)
Primärer Body-Type: unbekannt
ENC7BIT (integer)
Kodierung des Body: 7 bit SMTP-Semantik-Daten
ENC8BIT (integer)
Kodierung des Body: 8 bit SMTP-Semantik-Daten
ENCBINARY (integer)
Kodierung des Body: 8 bit Binärdaten
ENCBASE64 (integer)
Kodierung des Body: base-64 kodierte Daten
ENCQUOTEDPRINTABLE (integer)
Kodierung des Body: menschenlesbare 8 als 7 bit Daten
ENCOTHER (integer)
Kodierung des Body: unbekannt
IMAP_OPENTIMEOUT (integer)
IMAP_READTIMEOUT (integer)
IMAP_WRITETIMEOUT (integer)
IMAP_CLOSETIMEOUT (integer)
IMAP_GC_ELT (integer)
Garbage collector: räume Elemente im Message-Cache auf.
IMAP_GC_ENV (integer)
Garbage collector: räume Envelopes und Bodies auf.
IMAP_GC_TEXTS (integer)
Garbage collector: räume Texte auf.


IMAP Funktionen

Siehe auch

Dieses Dokument kann nicht alle von den enthaltenen Funktionen berührten Themenbereiche im Detail beschreiben. Weitergehende Informationen finden Sie in der Dokumentation zum c-client Sourcecode (docs/internal.txt) und in den folgenden RFC-Standarddokumenten:

  • » RFC2821: Simple Mail Transfer Protocol (SMTP).
  • » RFC2822: 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).
Einen detailierten Überblick der relevanten Themen bieten auch die Bücher » Programming Internet Email von David Wood und » Managing IMAP von Dianna Mullet & Kevin Mullet.

Inhaltsverzeichnis

  • imap_8bit — Konvertiert einen 8bit String in einen quoted-printable String
  • imap_alerts — Liefert alle aufgetretenen IMAP Alarmnachrichten
  • imap_append — String als Nachricht in einem Postfach ablegen
  • imap_base64 — Dekodiert Base-64 kodierten Text
  • imap_binary — Konvertiert einen 8 Bit String in einen Base64 codierten String
  • imap_body — Liefert den Körper einer Nachricht
  • imap_bodystruct — Liefert die Struktur eines bestimmten Nachrichtenteils
  • imap_check — Prüfe aktuelles Postfach
  • imap_clearflag_full — Löscht Flags einer Nachricht
  • imap_close — Schließt einen IMAP Stream
  • imap_create — Alias von imap_createmailbox
  • imap_createmailbox — Anlegen eines neuen Postfachs
  • imap_delete — Nachrichten im aktuellen Postfach zur Löschung markieren
  • imap_deletemailbox — Löscht ein Postfach
  • imap_errors — Liefert alle bisher aufgetretenen Fehlermeldungen
  • imap_expunge — Löscht alle zum Löschen markierte Nachrichten
  • imap_fetch_overview — Liefert einen Auszug aus den Kopfdaten von Nachrichten
  • imap_fetchbody — Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht
  • imap_fetchheader — Liefert den Kopf einer Nachricht
  • imap_fetchmime — Fetch MIME headers for a particular section of the message
  • imap_fetchstructure — Ermittelt die Struktur einer Nachricht
  • imap_fetchtext — Alias von imap_body
  • imap_gc — Leert den IMAP Cache
  • imap_get_quota — Liefert Quota-Beschränkungen und Nutzungsstatistik der Postfächer
  • imap_get_quotaroot — Liefert die Quota-Beschränkungen für ein Benutzerpostfach
  • imap_getacl — Liste der Zugriffsrechte für ein Postfach bestimmen
  • imap_getmailboxes — Liefert detailierte Informationen zu allen verfügbaren Postfächern
  • imap_getsubscribed — Liste alle abonnierten Postfächer
  • imap_header — Alias von imap_headerinfo
  • imap_headerinfo — Liest die Kopfdaten einer Nachricht
  • imap_headers — Liefert eine Zusammenfassung aller Nachrichtenköpfe eines Postfachs
  • imap_last_error — Liefert die letzte IMAP-Fehlermeldung für dieses Script
  • imap_list — Lies Liste der Postfächer
  • imap_listmailbox — Alias von imap_list
  • imap_listscan — Listet Postfächer nach Suchkriterien
  • imap_listsubscribed — Alias von imap_lsub
  • imap_lsub — Liste alle abonnierten Postfächer
  • imap_mail_compose — Erzeugt eine MIME-Nachricht aus Kopf- und Nachrichtenelementen
  • imap_mail_copy — Kopiert Nachrichten in ein Postfach
  • imap_mail_move — Verschiebt Nachrichten in ein anderes Postfach
  • imap_mail — Sendet eine Email Nachricht
  • imap_mailboxmsginfo — Informationen zum aktuellen Postfach
  • imap_mime_header_decode — Dekodiert MIME-kodierte Headerzeilen
  • imap_msgno — Liefert die Nachrichtennummer für eine gegebene UID
  • imap_mutf7_to_utf8 — Decode a modified UTF-7 string to UTF-8
  • imap_num_msg — Anzahl der Nachrichten im aktuellen Postfach
  • imap_num_recent — Nummer der kürzlich eingetroffenen Nachrichten
  • imap_open — Öffnet einen IMAP-Stream zu einem Mailserver-Postfach
  • imap_ping — Prüft einen IMAP-Stream auf Funktionalität
  • imap_qprint — Konvertiert einen quoted-printable kodierten String in einen 8 Bit String
  • imap_rename — Alias von imap_renamemailbox
  • imap_renamemailbox — Ändert den Namen eines Postfachs
  • imap_reopen — Wechselt das aktuelle Postfach des IMAP-Streams
  • imap_rfc822_parse_adrlist — Zerlegt einen Mailadressstring
  • imap_rfc822_parse_headers — Email-Kopfzeilen aus einem String auslesen
  • imap_rfc822_write_address — Bildet aus Realnamen, Postfach und Server eine korrekt formatierte Mail-Adresse
  • imap_savebody — Speichert einen bestimmten Body-Abschnitt einer Nachricht als Datei
  • imap_scan — Alias von imap_listscan
  • imap_scanmailbox — Alias von imap_listscan
  • imap_search — Liefert ein Array von Nachrichten, die den gegebenen Suchkriterien entsprechen
  • imap_set_quota — Setzt die Mengenbeschränkung für ein Postfach
  • imap_setacl — Setzen der ACL für ein Postfach
  • imap_setflag_full — Setzt Nachrichtenflags
  • imap_sort — Sortiert Nachrichten eines Postfachs
  • imap_status — Liefert Statusinformationen zum angegebenen Postfach
  • imap_subscribe — Abbonieren eines Postfachs
  • imap_thread — Liefert einen Baum zusammenhängender Nachrichten
  • imap_timeout — Imap Timeout setzen oder lesen
  • imap_uid — Liefert die UID für die gegebene Nachrichtennummer
  • imap_undelete — Nimmt eine bereits gesetzte Löschmarkierung einer Nachricht zurück
  • imap_unsubscribe — Abonnement eines Postfachs beenden
  • imap_utf7_decode — Dekodiert einem String im modifizierten UTF-7-Format
  • imap_utf7_encode — Kodiert ISO-8859-1 Text im modifizieren UTF-7-Format
  • imap_utf8_to_mutf7 — Encode a UTF-8 string to modified UTF-7
  • imap_utf8 — Konvertiert Text zu UTF8


Konvertiert einen 8bit String in einen quoted-printable String

  • « IMAP Funktionen
  • imap_alerts »
  • PHP Manual
  • IMAP Funktionen
  • Konvertiert einen 8bit String in einen quoted-printable String

imap_8bit

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_8bit — Konvertiert einen 8bit String in einen quoted-printable String

Beschreibung

imap_8bit ( string $string ) : string

Konvertiert einen 8bit String in einen quoted-printable String gemäß » RFC2045, Abschnitt 6.7.

Parameter-Liste

string

Der zu konvertierende 8bit String

Rückgabewerte

Der Eingabestring in quoted-ptrintable Kodierung

Siehe auch

  • imap_qprint() - Konvertiert einen quoted-printable kodierten String in einen 8 Bit String


Liefert alle aufgetretenen IMAP Alarmnachrichten

  • « imap_8bit
  • imap_append »
  • PHP Manual
  • IMAP Funktionen
  • Liefert alle aufgetretenen IMAP Alarmnachrichten

imap_alerts

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_alerts — Liefert alle aufgetretenen IMAP Alarmnachrichten

Beschreibung

imap_alerts ( ) : array

Liefert alle IMAP Alarmbenachrichtigungen seit dem letzen Aufruf von imap_alerts() oder seit Anfang des Scripts.

Durch den Aufruf von imap_alerts() wird der Alarmstack gelöscht. Die IMAP Spezifikation schreibt vor, dass alle Alarmmeldungen an den Benutzer weitergegebene werden müssen.

Rückgabewerte

Liefert ein Array mit allen IMAP Alarmmeldungstexten seit dem letzen Aufruf, oder false, wenn keine Meldungen vorliegen.

Siehe auch

  • imap_errors() - Liefert alle bisher aufgetretenen Fehlermeldungen


String als Nachricht in einem Postfach ablegen

  • « imap_alerts
  • imap_base64 »
  • PHP Manual
  • IMAP Funktionen
  • String als Nachricht in einem Postfach ablegen

imap_append

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_append — String als Nachricht in einem Postfach ablegen

Beschreibung

imap_append ( resource $imap_stream , string $mailbox , string $message , string $options = null , string $internal_date = null ) : bool

Der in message übergebene String wird als Nachricht an das Postfach mailbox angefügt.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

mailbox

Der Name des Postfachs, siehe imap_open() für nähere Informationen.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

message

Die anzufügende Nachricht als String

Bei Verbindungen mit dem Cyrus IMAP server ist es zwingend erforderlich "\r\n" als Zeilenende zu benutzen, mit einem einfachen "n" schlägt die Operation fehl.

options

Wenn angegeben werden die in options gesetzten Optionen der Nachricht bei der Anlage gesetzt.

internal_date

Wenn dieser Parameter angegeben wird, wird das INTERNALDATE für die hinzugefügte Nachricht gesetzt. Der Parameter sollte eine Datumszeichenkette sein, die konform zu den RFC2060 Spezifikationen für data_time Werte ist.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imap_append() Beispiel

<?php
$stream = imap_open("{imap.example.org}INBOX.Drafts", "username", "password");

$check = imap_check($stream);
echo "Msg Count before append: ". $check->Nmsgs . "\n";

imap_append($stream, "{imap.example.org}INBOX.Drafts"
                   , "From: me@example.com\r\n"
                   . "To: you@example.com\r\n"
                   . "Subject: test\r\n"
                   . "\r\n"
                   . "this is a test message, please ignore\r\n"
                   );

$check = imap_check($stream);
echo "Msg Count after append : ". $check->Nmsgs . "\n";

imap_close($stream);
?>


Dekodiert Base-64 kodierten Text

  • « imap_append
  • imap_binary »
  • PHP Manual
  • IMAP Funktionen
  • Dekodiert Base-64 kodierten Text

imap_base64

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_base64 — Dekodiert Base-64 kodierten Text

Beschreibung

imap_base64 ( string $text ) : string

Dekodiert den gegebenen Base-64 kodierten text.

Parameter-Liste

text

Der zu dekodierende Text

Rückgabewerte

Liefert den dekodierten Text als String.

Siehe auch

  • imap_binary() - Konvertiert einen 8 Bit String in einen Base64 codierten String
  • base64_encode() - Kodiert Daten MIME base64
  • base64_decode() - Dekodiert MIME base64-kodierte Daten
  • » RFC2045, Abschnitt 6.8


Konvertiert einen 8 Bit String in einen Base64 codierten String

  • « imap_base64
  • imap_body »
  • PHP Manual
  • IMAP Funktionen
  • Konvertiert einen 8 Bit String in einen Base64 codierten String

imap_binary

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_binary — Konvertiert einen 8 Bit String in einen Base64 codierten String

Beschreibung

imap_binary ( string $string ) : string

Konvertiert einen 8 Bit String in einen Base64 codierten String gemäß » RFC2045, Abschnitt 6.8.

Parameter-Liste

string

Der zu konvertierende 8 Bit String.

Rückgabewerte

Liefert einen Base64 kodierten String.

Siehe auch

  • imap_base64() - Dekodiert Base-64 kodierten Text


Liefert den Körper einer Nachricht

  • « imap_binary
  • imap_bodystruct »
  • PHP Manual
  • IMAP Funktionen
  • Liefert den Körper einer Nachricht

imap_body

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_body — Liefert den Körper einer Nachricht

Beschreibung

imap_body ( resource $imap_stream , int $msg_number , int $options = 0 ) : string

imap_body() liefert den Körper der mit msg_number angegebenen Nachricht aus dem aktuellen Postfach.

imap_body() liefert eine 1:1 Kopie des gesamten Nachrichtenkörpers. Um einzelne Teile einer mehrteiligen MIME-kodierten Nachricht auszulesen müssen Sie zunächst die Struktur der Nachricht mit imap_fetchstructure() analysieren um anschließend einzelne Komponenten mit imap_fetchbody() anzufordern.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

msg_number

Die Nachrichtennummer

options

Der optionale Parameter options kann eine Bitmaske mit folgenden Optionen enthalten:

  • FT_UID - msg_number ist eine UID
  • FT_PEEK - Das \Seen Flag wird nicht gesetzt
  • FT_INTERNAL - Rückgabe im internen Format ohne Umwandlung der Zeilenenden

Rückgabewerte

Liefert den Körper der gewünschten Nachricht als String.


Liefert die Struktur eines bestimmten Nachrichtenteils

  • « imap_body
  • imap_check »
  • PHP Manual
  • IMAP Funktionen
  • Liefert die Struktur eines bestimmten Nachrichtenteils

imap_bodystruct

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_bodystruct — Liefert die Struktur eines bestimmten Nachrichtenteils

Beschreibung

imap_bodystruct ( resource $imap_stream , int $msg_number , string $section ) : object

Liefert die Struktur des mit section angegebenen Teils der Nachricht msg_number.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

msg_number

Die Nachrichtennummer

section

Der gewünschte Nachrichtenteil

Rückgabewerte

Liefert ein Objekt mit den gewünschten Informationen, zum Aufbau des Objekts und seiner Eigenschaften siehe imap_fetchstructure().

Siehe auch

  • imap_fetchstructure() - Ermittelt die Struktur einer Nachricht


Prüfe aktuelles Postfach

  • « imap_bodystruct
  • imap_clearflag_full »
  • PHP Manual
  • IMAP Funktionen
  • Prüfe aktuelles Postfach

imap_check

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_check — Prüfe aktuelles Postfach

Beschreibung

imap_check ( resource $imap_stream ) : object

Prüft Informationen zum aktuellen Postfach.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

Rückgabewerte

Informationen werden als Objekt mit folgenden Eigenschaften zurückgegeben:

  • Date - Aktuelle Serverzeit, formatiert gemäß » RFC2822
  • Driver - Protokoll des Postfachs: POP3, IMAP, NNTP
  • Mailbox - Name des Postfachs
  • Nmsgs - Anzahl der Nachrichten im Postfach
  • Recent - Anzahl kürzlich eingetroffener Nachrichten im Postfach

Beim Auftreten von Fehlern wird false zurückgegeben.

Beispiele

Beispiel #1 imap_check() Beispiel

<?php

$imap_obj = imap_check($imap_stream);
var_dump($imap_obj);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)(5) {
  ["Date"]=>
  string(37) "Wed, 10 Dec 2003 17:56:54 +0100 (CET)"
  ["Driver"]=>
  string(4) "imap"
  ["Mailbox"]=>
  string(54)
  "{www.example.com:143/imap/user="foo@example.com"}INBOX"
  ["Nmsgs"]=>
  int(1)
  ["Recent"]=>
  int(0)
}


Löscht Flags einer Nachricht

  • « imap_check
  • imap_close »
  • PHP Manual
  • IMAP Funktionen
  • Löscht Flags einer Nachricht

imap_clearflag_full

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_clearflag_full — Löscht Flags einer Nachricht

Beschreibung

imap_clearflag_full ( resource $imap_stream , string $sequence , string $flag , int $options = 0 ) : bool

Diese Funktion bewirkt das Löschen der in flag angegebenen Flags für die mit sequence spezifizerten Nachrichten.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

sequence

Eine Sequenz von Nachrichtennummern, diese können als Aufzählung in der Form X,Y oder als Interval in der Form X:Y angegeben werden.

flag

Die folgenden Flags werden unterstüzt: "\\Seen", "\\Answered", "\\Flagged", "\\Deleted" und "\\Draft" (siehe auch » RFC2060)

options

options ist eine Bitmaske, zur Zeit ist nur ein Wert definiert:

  • ST_UID - sequence besteht aus UIDs an Stelle von Nachrichtennummern.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • imap_setflag_full() - Setzt Nachrichtenflags


Schließt einen IMAP Stream

  • « imap_clearflag_full
  • imap_create »
  • PHP Manual
  • IMAP Funktionen
  • Schließt einen IMAP Stream

imap_close

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_close — Schließt einen IMAP Stream

Beschreibung

imap_close ( resource $imap_stream , int $flag = 0 ) : bool

Schließt den angegebenen IMAP-Stream.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

flag

Wenn CL_EXPUNGE als flag übergeben wird, so werden alle zum Löschen vorgemerkten Nachrichten des aktuellen Postfachs vor Beenden der Verbindung endgültig gelöscht. Dies lässt sich auch durch die Funktion imap_expunge() erreichen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • imap_open() - Öffnet einen IMAP-Stream zu einem Mailserver-Postfach


Alias von imap_createmailbox

  • « imap_close
  • imap_createmailbox »
  • PHP Manual
  • IMAP Funktionen
  • Alias von imap_createmailbox

imap_create

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_create — Alias von imap_createmailbox()

Beschreibung

Diese Funktion ist ein Alias für: imap_createmailbox().


Anlegen eines neuen Postfachs

  • « imap_create
  • imap_delete »
  • PHP Manual
  • IMAP Funktionen
  • Anlegen eines neuen Postfachs

imap_createmailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_createmailbox — Anlegen eines neuen Postfachs

Beschreibung

imap_createmailbox ( resource $imap_stream , string $mailbox ) : bool

Legt ein neues Postfach mit dem Namen mailbox an.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

mailbox

Der Postfachname, siehe imap_open() für nähere Informationen. Namen die nicht-ASCII Zeichen enthalten sollten mit imap_utf7_encode() kodiert werden.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imap_createmailbox() Beispiel

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
     or die("can't connect: " . imap_last_error());

$name1 = "phpnewbox";
$name2 = imap_utf7_encode("phpnewböx"); // phpnewb&w7Y-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("{imap.example.org}INBOX.$newname"))) {
    $status = @imap_status($mbox, "{imap.example.org}INBOX.$newname", SA_ALL);
    if ($status) {
        echo "your new mailbox '$name1' has the following status:<br />\n";
        echo "Messages:   " . $status->messages    . "<br />\n";
        echo "Recent:     " . $status->recent      . "<br />\n";
        echo "Unseen:     " . $status->unseen      . "<br />\n";
        echo "UIDnext:    " . $status->uidnext     . "<br />\n";
        echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";

        if (imap_renamemailbox($mbox, "{imap.example.org}INBOX.$newname", "{imap.example.org}INBOX.$name2")) {
            echo "renamed new mailbox from '$name1' to '$name2'<br />\n";
            $newname = $name2;
        } else {
            echo "imap_renamemailbox on new mailbox failed: " . imap_last_error() . "<br />\n";
        }
    } else {
        echo "imap_status on new mailbox failed: " . imap_last_error() . "<br />\n";
    }

    if (@imap_deletemailbox($mbox, "{imap.example.org}INBOX.$newname")) {
        echo "new mailbox removed to restore initial state<br />\n";
    } else {
        echo "imap_deletemailbox on new mailbox failed: " . implode("<br />\n", imap_errors()) . "<br />\n";
    }

} else {
    echo "could not create new mailbox: " . implode("<br />\n", imap_errors()) . "<br />\n";
}

imap_close($mbox);
?>

Siehe auch

  • imap_renamemailbox() - Ändert den Namen eines Postfachs
  • imap_deletemailbox() - Löscht ein Postfach


Nachrichten im aktuellen Postfach zur Löschung markieren

  • « imap_createmailbox
  • imap_deletemailbox »
  • PHP Manual
  • IMAP Funktionen
  • Nachrichten im aktuellen Postfach zur Löschung markieren

imap_delete

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_delete — Nachrichten im aktuellen Postfach zur Löschung markieren

Beschreibung

imap_delete ( resource $imap_stream , int $msg_number , int $options = 0 ) : bool

Die mit msg_number angegebene Nachricht oder Liste von Nachrichten wird zur Löschung vorgemerkt. Entsprechend markierte Nachrichten bleiben zunächst im Postfach erhalten, erst beim Aufruf von imap_expunge() oder beim Schließen der Verbingung mit imap_close() und der CL_EXPUNGE Option werden sie tatsächlich endgültig gelöscht.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

msg_number

Die Nachrichtennummer

options

Mit Hilfe der Option FT_UID kann festgelegt werden das msg_number an Stelle von Nachrichtennummern UIDs enthält.

Rückgabewerte

Returns true.

Beispiele

Beispiel #1 imap_delete() Beispiel

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
    or die("Can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);
echo "Messages before delete: " . $check->Nmsgs . "<br />\n";

imap_delete($mbox, 1);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after  delete: " . $check->Nmsgs . "<br />\n";

imap_expunge($mbox);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after expunge: " . $check->Nmsgs . "<br />\n";

imap_close($mbox);
?>

Anmerkungen

Hinweis:

Für IMAP Postfächer kann das Löschen-Flag nicht serverseitig zwischen Verbindungen gespeichert werden; markierte Nachrichten sollten daher noch wärend der aktuellen Verbindung mit imap_expunge() entfernt werden, ansonsten bleiben sie möglicherweise ohne Löschmarkierung weiter erhalten.

Siehe auch

  • imap_undelete() - Nimmt eine bereits gesetzte Löschmarkierung einer Nachricht zurück
  • imap_expunge() - Löscht alle zum Löschen markierte Nachrichten
  • imap_close() - Schließt einen IMAP Stream


Löscht ein Postfach

  • « imap_delete
  • imap_errors »
  • PHP Manual
  • IMAP Funktionen
  • Löscht ein Postfach

imap_deletemailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_deletemailbox — Löscht ein Postfach

Beschreibung

imap_deletemailbox ( resource $imap_stream , string $mailbox ) : bool

Löscht das mit mailbox angegebene Postfach.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

mailbox

Der Postfachname, für weitere Informationen siehe imap_open().

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • imap_createmailbox() - Anlegen eines neuen Postfachs
  • imap_renamemailbox() - Ändert den Namen eines Postfachs
  • imap_open() - Öffnet einen IMAP-Stream zu einem Mailserver-Postfach für das Format des Postfachnamens.


Liefert alle bisher aufgetretenen Fehlermeldungen

  • « imap_deletemailbox
  • imap_expunge »
  • PHP Manual
  • IMAP Funktionen
  • Liefert alle bisher aufgetretenen Fehlermeldungen

imap_errors

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_errors — Liefert alle bisher aufgetretenen Fehlermeldungen

Beschreibung

imap_errors ( ) : array

Liefert alle IMAP Fehlermeldungen (falls vorhanden) die seit dem Scriptanfang oder dem letzten Löschen der Fehlerliste aufgetreten sind.

Ein Aufruf von imap_errors() löscht nach seiner Ausführung die Fehlerliste.

Rückgabewerte

Diese Funktion liefert ein Array aller IMAP Fehlermeldungen seit dem letzten Aufruf von imap_errors() oder seit dem Begin der Scriptausführung. Wenn keine Fehlermeldungen vorhanden sind, wird false zurückgegeben.

Siehe auch

  • imap_last_error() - Liefert die letzte IMAP-Fehlermeldung für dieses Script
  • imap_alerts() - Liefert alle aufgetretenen IMAP Alarmnachrichten


Löscht alle zum Löschen markierte Nachrichten

  • « imap_errors
  • imap_fetch_overview »
  • PHP Manual
  • IMAP Funktionen
  • Löscht alle zum Löschen markierte Nachrichten

imap_expunge

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_expunge — Löscht alle zum Löschen markierte Nachrichten

Beschreibung

imap_expunge ( resource $imap_stream ) : bool

Löscht alle Nachrichten im aktuellen Postfach die durch die Funktionen imap_delete(), imap_mail_move(), oder imap_setflag_full() zum Löschen vorgemerkt wurden.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

Rückgabewerte

Liefert true.


Liefert einen Auszug aus den Kopfdaten von Nachrichten

  • « imap_expunge
  • imap_fetchbody »
  • PHP Manual
  • IMAP Funktionen
  • Liefert einen Auszug aus den Kopfdaten von Nachrichten

imap_fetch_overview

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetch_overview — Liefert einen Auszug aus den Kopfdaten von Nachrichten

Beschreibung

imap_fetch_overview ( resource $imap_stream , string $sequence , int $options = 0 ) : array

Die Funktion fragt die Kopfdaten der mit sequence() angegebenen Nachrichten ab und liefert einen Auszug daraus zurück.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

sequence

Beschreibung der gewünschten Nachrichten. Mehrere Nachrichten können durch Komma getrennt angegeben werden (X,Y), Nachrichtenbereiche durch einen Doppelpunkt zwischen erster und letzter Nachricht (X:Y).

options

Wenn dieser Parameter auf FT_UID gesetzt wird, werden die einzelnen Einträge der Nachrichtenliste sequence als UIDs und nicht als Nachrichtennummern interpretiert.

Rückgabewerte

Gibt ein Array von Objekten, die jeweils einen Nachrichtenkopf beschreiben, zurück. Das Objekt hat eine Eigenschaft nur dann, wenn sie auch existiert. Die möglichen Eigenschaften sind:

  • subject - die Betreffzeile der Nachricht
  • from - der Absender
  • to - der Empfänger
  • date - Sendezeitpunkt der Nachricht
  • message_id - die Message-ID der Nachricht
  • references - die Nachricht bezieht sich auf eine andere Nachricht mit dieser Message-ID
  • in_reply_to - die Nachricht ist eine Antwort auf eine andere Nachricht mit dieser Message-ID
  • size - Größe der Nachricht in Bytes
  • uid - die UID der Nachricht innerhalb des Postfachs
  • msgno - die aktuelle Nachrichtennummer innerhalb des Postfachs
  • recent - diese Nachricht ist als kürzlich eingetroffen markiert
  • flagged - diese Nachricht ist als wichtig markiert
  • answered - diese Nachricht ist als beantwortet markiert
  • deleted - diese Nachricht ist zur Löschung vorgemerkt
  • seen - diese Nachricht ist als bereits gelesen markiert
  • draft - diese Nachricht ist als Entwurf markiert
  • udate - der UNIX-Zeitstempel des Ankunftsdatums

Beispiele

Beispiel #1 imap_fetch_overview()-Beispiel

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password")
     or die("kann nicht verbinden: " . imap_last_error());

$MC = imap_check($mbox);

// Hole eine Übersicht aller Nachrichten in der INBOX
$result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
foreach ($result as $overview) {
    echo "#{$overview->msgno} ({$overview->date}) - From: {$overview->from}
    {$overview->subject}\n";
}
imap_close($mbox);
?>

Siehe auch

  • imap_fetchheader() - Liefert den Kopf einer Nachricht


Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht

  • « imap_fetch_overview
  • imap_fetchheader »
  • PHP Manual
  • IMAP Funktionen
  • Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht

imap_fetchbody

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetchbody — Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht

Beschreibung

imap_fetchbody ( resource $imap_stream , int $msg_number , string $section , int $options = 0 ) : string

Liefert den mit section angebenen Teil der Nachricht msg_number im aktuellen Postfach. Der Nachrichtenteil wird dabei nicht dekodiert.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

msg_number

Die Nachrichtennummer

section

Die Nummer des gewünschten Nachrichtenteils. Diese wird gemäß der IMAP4-Spezifikation als String von mit Punkten getrennten Zahlen angegeben.

options

Eine Bitmaske, die sich aus folgenden Werten zusammensetzen kann:

  • FT_UID - die Nachrichtennummer ist eine UID
  • FT_PEEK - Das \Seen-Flag der Nachricht wird nicht verändert
  • FT_INTERNAL - String im internen Format ohne Zeilenendenumwandlung zurückgeben

Rückgabewerte

Liefert einen bestimmten Teil des Körpers der angegebenen Nachricht als Textstring.

Siehe auch

  • imap_savebody() - Speichert einen bestimmten Body-Abschnitt einer Nachricht als Datei
  • imap_fetchstructure() - Ermittelt die Struktur einer Nachricht


Liefert den Kopf einer Nachricht

  • « imap_fetchbody
  • imap_fetchmime »
  • PHP Manual
  • IMAP Funktionen
  • Liefert den Kopf einer Nachricht

imap_fetchheader

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetchheader — Liefert den Kopf einer Nachricht

Beschreibung

imap_fetchheader ( resource $imap_stream , int $msg_number , int $options = 0 ) : string

Diese Funktion liefert den kompletten ungefilterten Kopf der angegebenen Nachricht gemäß » RFC2822.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

msg_number

Die Nachrichtennummer

options

Folgende Flags können in options gesetzt werden:

  • FT_UID - msgno ist eine UID
  • FT_INTERNAL - Rückgaben im internen Format ohne jede Umwandlung von Zeilenenden in CRLF
  • FT_PREFETCHTEXT - Der Körper der Nachricht wird zusammen mit dem Kopf zum Client übertragen. Dies vermeidet einen weiteren Zugriff auf den IMAP-Server wenn die gesamte Nachricht bearbeitet werden soll (z.B. zum Abspeichern in einer lokalen Datei)

Rückgabewerte

Gibt den Kopf der angegebenen Nachricht als Zeichenkette zurück.

Siehe auch

  • imap_fetch_overview() - Liefert einen Auszug aus den Kopfdaten von Nachrichten


Fetch MIME headers for a particular section of the message

  • « imap_fetchheader
  • imap_fetchstructure »
  • PHP Manual
  • IMAP Funktionen
  • Fetch MIME headers for a particular section of the message

imap_fetchmime

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

imap_fetchmime — Fetch MIME headers for a particular section of the message

Beschreibung

imap_fetchmime ( resource $imap , int $message_num , string $section , int $flags = 0 ) : string|false

Fetch the MIME headers of a particular section of the body of the specified messages.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

message_num

The message number

section

The part number. It is a string of integers delimited by period which index into a body part list as per the IMAP4 specification

flags

A bitmask with one or more of the following:

  • FT_UID - The message_num is a UID
  • FT_PEEK - Do not set the \Seen flag if not already set
  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

Rückgabewerte

Returns the MIME headers of a particular section of the body of the specified messages as a text string, Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • imap_fetchbody() - Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht
  • imap_fetchstructure() - Ermittelt die Struktur einer Nachricht
  • imap_fetchheader() - Liefert den Kopf einer Nachricht


Ermittelt die Struktur einer Nachricht

  • « imap_fetchmime
  • imap_fetchtext »
  • PHP Manual
  • IMAP Funktionen
  • Ermittelt die Struktur einer Nachricht

imap_fetchstructure

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetchstructure — Ermittelt die Struktur einer Nachricht

Beschreibung

imap_fetchstructure ( resource $imap_stream , int $msg_number , int $options = 0 ) : object

Liefert alle Strukturinformationen für die gegebene Nachricht.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

msg_number

Die gewünschte Nachrichtennummer

options

Dieser optionale Parameter hat nur eine einzige Option, FT_UID, die angibt, dass msg_number als UID behandelt werden soll.

Rückgabewerte

Gibt ein Objekt mit Eigenschaften, die in der Tabelle weiter unten aufgelistet werden, zurück. Im Fehlerfall wird false zurückgegeben.

Zurückgegebenes Objekt für imap_fetchstructure()
type | Primärer Typ des Nachrichtenteils
encoding | Das Transfer-Encoding des Nachrichtenteils
ifsubtype | true, wenn ein Untertyp-Eintrag existiert
subtype | MIME Untertyp
ifdescription | true, wenn ein Beschreibungstext existiert
description | Beschreibungstext
ifid | true, wenn ein Identifikationstext existiert
id | Identifikationstext
lines | Anzahl der Zeilen
bytes | Größe in Bytes
ifdisposition | true, wenn ein "disposition" Eintrag (Verwendungsart) existiert
disposition | Verwendungsart
ifdparameters | true, wenn ein dparameters Array existiert
dparameters | Ein Array von Objekten mit je einer "attribute"- und einer "value"-Eigenschaft. Jedes dieser Objekte enthält je einen Eintrag aus der Content-disposition MIME Kopfzeile.
ifparameters | true, wenn ein "parameters"-Array existiert
parameters | Ein Array von Objekten mit je einer "attribute"- und einer "value"-Eigenschaft.
parts | Wenn der Nachrichtenteil selbst weitere untergeorgnete MIME Nachrichtenteile enthält, so wird hier ein Array mit Objekten für diese Teile angelegt. Die Elemente dieses Arrays sind selbst jeweils wieder Objekte mit der hier beschriebenen Struktur.

Gängige primäre Nachrichtentypen (der Wert kann sich je nach Bibliothek ändern; die Verwendung der Konstanten wird empfohlen)
Wert | Typ | Konstante
0 | text | TYPETEXT
1 | multipart | TYPEMULTIPART
2 | message | TYPEMESSAGE
3 | application | TYPEAPPLICATION
4 | audio | TYPEAUDIO
5 | image | TYPEIMAGE
6 | video | TYPEVIDEO
7 | model | TYPEMODEL
8 | other | TYPEOTHER

Gängige Übertragungskodierungen (der Wert kann sich je nach Bibliothek ändern; die Verwendung der Konstanten wird empfohlen)
Wert | Typ | Konstante
0 | 7bit | ENC7BIT
1 | 8bit | ENC8BIT
2 | Binary | ENCBINARY
3 | Base64 | ENCBASE64
4 | Quoted-Printable | ENCQUOTEDPRINTABLE
5 | other | ENCOTHER

Siehe auch

  • imap_fetchbody() - Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht
  • imap_bodystruct() - Liefert die Struktur eines bestimmten Nachrichtenteils


Alias von imap_body

  • « imap_fetchstructure
  • imap_gc »
  • PHP Manual
  • IMAP Funktionen
  • Alias von imap_body

imap_fetchtext

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetchtext — Alias von imap_body()

Beschreibung

Diese Funktion ist ein Alias für: imap_body().


Leert den IMAP Cache

  • « imap_fetchtext
  • imap_get_quota »
  • PHP Manual
  • IMAP Funktionen
  • Leert den IMAP Cache

imap_gc

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

imap_gc — Leert den IMAP Cache

Beschreibung

imap_gc ( resource $imap_stream , int $caches ) : bool

Säubert den Cache von Einträgen eines bestimmtes Typs.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

caches

Der zu löschende Cache. Es kann ein oder eine Kombination der folgenden Konstanten sein: IMAP_GC_ELT (Nachrichten Cacheelemente), IMAP_GC_ENV (Umschlag und Body), IMAP_GC_TEXTS (Texte).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imap_gc() Beispiel

<?php

$mbox = imap_open("{imap.example.org:143}", "username", "password");

imap_gc($mbox, IMAP_GC_ELT);

?>


Liefert Quota-Beschränkungen und Nutzungsstatistik der Postfächer

  • « imap_gc
  • imap_get_quotaroot »
  • PHP Manual
  • IMAP Funktionen
  • Liefert Quota-Beschränkungen und Nutzungsstatistik der Postfächer

imap_get_quota

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

imap_get_quota — Liefert Quota-Beschränkungen und Nutzungsstatistik der Postfächer

Beschreibung

imap_get_quota ( resource $imap_stream , string $quota_root ) : array

imap_get_quota() ermittelt die aktuellen Quota- Beschränkunten und tatsächlich genutzten Resourcen für Postfächer.

Für die Ausführung dieser Funktion ist ein IMAP-Benutzer mit Administrationsrechten erforderlich, eine nichtadministrative Variante der Funktion ist imap_get_quotaroot().

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

quota_root

quota_root sollte normalerweise in der Form user.name angegeben werden. name ist dabei der Name des Postfachs, für das Informationen geliefert werden sollen.

Rückgabewerte

Liefert ein Array mit zwei Integer-Elementen limit und usage, die den insgesamt verfügbaren und den zur Zeit vom Postfach genutzten Speicherplatz angeben. Im Fehlerfall wird false zurückgegeben.

Ab PHP 4.3 hält sich die Funktion genauer an die Vorgaben aus » RFC2087. Das Ergebnisarray unterstützt nun eine unbegrenzte Anzahl von Ressourcewerten (z.B. Anzahl der Nachrichten oder Unterordner). Für jede Ressource wird ein Arrayelement mit dem Namen der Ressource als Key angelegt, die einzelnen Arrayelemente sind wiederum Arrays mit limit- und useage-Angaben.

Aus Gründen der Rückwärtskompatibilität werden außerdem weiter die beiden ursprünglichen Arrayelemente limit und usage zurückgegeben, ihre weitere Nutzung wird allerdings nicht empfohlen.

Beispiele

Beispiel #1 imap_get_quota()-Beispiel

<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
    echo "Usage level is: " . $quota_value['usage'];
    echo "Limit level is: " . $quota_value['limit'];
}

imap_close($mbox);
?>

Beispiel #2 Beispiel für imap_get_quota() ab 4.3 und aufwärts

<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_values)) {
   $storage = $quota_values['STORAGE'];
   echo "STORAGE usage level is: " .  $storage['usage'];
   echo "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "MESSAGE usage level is: " .  $message['usage'];
   echo "MESSAGE limit is: " .  $message['limit'];

   /* ...  */
}

imap_close($mbox);
?>

Anmerkungen

Diese Funktion ist momentan nur für Benutzer der c-client2000-Bibliothek (oder neuer) verfügbar.

Der angegebene imap_stream muss als Mail-Administrator geöffnet werden; diese Funktion schlägt sonst fehl.

Siehe auch

  • imap_open() - Öffnet einen IMAP-Stream zu einem Mailserver-Postfach
  • imap_set_quota() - Setzt die Mengenbeschränkung für ein Postfach
  • imap_get_quotaroot() - Liefert die Quota-Beschränkungen für ein Benutzerpostfach


Liefert die Quota-Beschränkungen für ein Benutzerpostfach

  • « imap_get_quota
  • imap_getacl »
  • PHP Manual
  • IMAP Funktionen
  • Liefert die Quota-Beschränkungen für ein Benutzerpostfach

imap_get_quotaroot

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

imap_get_quotaroot — Liefert die Quota-Beschränkungen für ein Benutzerpostfach

Beschreibung

imap_get_quotaroot ( resource $imap_stream , string $quota_root ) : array

Liefert die Quota-Beschränkungen für den aktuellen Benutzer. Die ermittelten Quota-Beschränkungen gelten über alle Postfächer des Benutzers, die Ausnutungswerte der im angegebenen Postfach genutzten Kapazität.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

quota_root

Name des zu untersuchenden Postfachs, z.B. INBOX.

Rückgabewerte

Liefert ein Array mit Ressourcenamen als Index und Arrays mit den Elementen limit und usage als Werten die das aktuelle Limit sowie die tatsächliche Nutzung der jeweiligen Ressource für das angegebene Postfach angeben.

Die Funktion gibt false zurück, wenn Fehler auftreten und ein Array mit Verbindungsinformationen, falls die Antwort des Servers nicht verarbeitet werden konnte.

Beispiele

Beispiel #1 imap_get_quotaroot()-Beispiel

<?php
$mbox = imap_open("{imap.example.org}", "kalowsky", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota = imap_get_quotaroot($mbox, "INBOX");
if (is_array($quota)) {
   $storage = $quota['STORAGE'];
   echo "STORAGE usage level is: " .  $storage['usage'];
   echo "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota['MESSAGE'];
   echo "MESSAGE usage level is: " .  $message['usage'];
   echo "MESSAGE limit level is: " .  $message['limit'];

   /* ...  */

}

imap_close($mbox);
?>

Anmerkungen

Diese Funktion ist nur verfügbar ab der Bibliotheksversion c-client2000.

Das zu prüfende Postfach muss dem User gehören, für den imap_stream geöffnet wurde.

Siehe auch

  • imap_open() - Öffnet einen IMAP-Stream zu einem Mailserver-Postfach
  • imap_set_quota() - Setzt die Mengenbeschränkung für ein Postfach
  • imap_get_quota() - Liefert Quota-Beschränkungen und Nutzungsstatistik der Postfächer


Liste der Zugriffsrechte für ein Postfach bestimmen

  • « imap_get_quotaroot
  • imap_getmailboxes »
  • PHP Manual
  • IMAP Funktionen
  • Liste der Zugriffsrechte für ein Postfach bestimmen

imap_getacl

(PHP 5, PHP 7, PHP 8)

imap_getacl — Liste der Zugriffsrechte für ein Postfach bestimmen

Beschreibung

imap_getacl ( resource $imap_stream , string $mailbox ) : array

Liefert die Zugriffsrechte für ein gegebenes Postfach.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

mailbox

Der Name des Postfachs, siehe imap_open() für weitere Informationen.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

Rückgabewerte

Liefert ein Array mit Postfachnamen als Schlüssel und Zugriffsrecht-Listen als Wert.

Beispiele

Beispiel #1 imap_getacl() Beispiel

<?php

 print_r(imap_getacl($conn_id, 'user.joecool'));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [subfolder] => lrswipcda
    [anothersubfolder] => lrswipcda
)

Anmerkungen

Diese Funktion steht nur Nutzern der c-client2000 Bibliothek oder neuerer Versionen zur Verfügung.

Siehe auch

  • imap_setacl() - Setzen der ACL für ein Postfach


Liefert detailierte Informationen zu allen verfügbaren Postfächern

  • « imap_getacl
  • imap_getsubscribed »
  • PHP Manual
  • IMAP Funktionen
  • Liefert detailierte Informationen zu allen verfügbaren Postfächern

imap_getmailboxes

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_getmailboxes — Liefert detailierte Informationen zu allen verfügbaren Postfächern

Beschreibung

imap_getmailboxes ( resource $imap_stream , string $ref , string $pattern ) : array

Liefert Postfachinformationen.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

ref

Spezifikation des gewünschten Servers wie in imap_open() beschrieben.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

pattern

Gibt an, wo in der Mailbox-Hierarchie mit der Suche begonnen werden soll.

Es gibt zwei Sonderzeichen, die man als Teil des pattern verwenden kann: '*' und '%'. '*' heißt, dass alle Mailboxen zurückgegeben werden sollen. Wenn man pattern als '*' übergibt, so erhält man eine Liste der vollständigen Mailboxhierarchie. '%' heißt, dass nur die aktuelle Stufe zurückgegeben wird. '%' als Wert des pattern Parameters wird nur die Mailboxen auf höchster Stufe zurückgeben. '~/mail/%' unter UW_IMAPD wird jede Mailbox innerhalb des ~/mail-Verzeichnisses zurückgeben, aber keine innerhalb von dessen Unterverzeichnissen.

Rückgabewerte

Liefert ein Array, das Objekte mit Postfachbeschreibungen, enthält. Jedes Objekt verfügt über die Attribute name für den Namen des Postfachs, delimiter für das gültige Hierachietrennzeichen innerhalb des Hierachieabschnitts in dem sich das Postfach befindet, und Eigenschaften des Postfachs in attributes. Die Eigenschaften setzen sich als Bitmaske aus folgenden möglichen Werten zusammen:

  • LATT_NOINFERIORS - innerhalb dieses Postfachs existieren keine weiteren Unterpostfächer, und dürfen auch nicht. Der Aufruf von imap_createmailbox() wird für dieses Postfach fehlschlagen.
  • LATT_NOSELECT - dieses Postfach enthält nur Unterpostfächer aber keine Nachrichten; es kann nicht geöffnet werden.
  • LATT_MARKED - dieses Postfach ist markiert. Das bedeutet, dass es neue Nachrichten enthalten kann, seitdem es zuletzt geprüft wurde. Wird nicht von allen IMAP-Servern unterstützt.
  • LATT_UNMARKED - dieses Postfach ist nicht markiert, d.h. es enthält keine neuen Nachrichten. Wenn entweder MARKED oder UNMARKED vorhanden ist, kann man davon ausgehen, das der IMAP-Server dieses Feature für dieses Postfach unterstützt.

  • LATT_REFERRAL - Das Postfach bezieht sich auf eine Remote-Mailbox.

  • LATT_HASCHILDREN - Das Postfach enthält auswählbare Unterpostfächer.

  • LATT_HASNOCHILDREN - Das Postfach enthält keine auswählbaren Unterpostfächer.

Beispiele

Beispiel #1 imap_getmailboxes() Beispiel

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
      or die("kann nicht verbinden: " . imap_last_error());

$list = imap_getmailboxes($mbox, "{imap.example.org}", "*");
if (is_array($list)) {
    foreach ($list as $key => $val) {
        echo "($key) ";
        echo imap_utf7_decode($val->name) . ",";
        echo "'" . $val->delimiter . "',";
        echo $val->attributes . "<br />\n";
    }
} else {
    echo "imap_getmailboxes schlug fehl: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Siehe auch

  • imap_getsubscribed() - Liste alle abonnierten Postfächer


Liste alle abonnierten Postfächer

  • « imap_getmailboxes
  • imap_header »
  • PHP Manual
  • IMAP Funktionen
  • Liste alle abonnierten Postfächer

imap_getsubscribed

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_getsubscribed — Liste alle abonnierten Postfächer

Beschreibung

imap_getsubscribed ( resource $imap_stream , string $ref , string $pattern ) : array

Liefert Informationen zu den abonnierten Postfächern.

Diese Funktion ist weitgehend identisch zu imap_getmailboxes(), beachtet aber nur Postfächer, die der Benutzer bereits abonniert hat.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

ref

Spezifiziert den gewünschten Server wie in imap_open() beschrieben.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

pattern

Gibt an, wo in der Mailbox-Hierarchie mit der Suche begonnen werden soll.

Es gibt zwei Sonderzeichen, die man als Teil des pattern verwenden kann: '*' und '%'. '*' heißt, dass alle Mailboxen zurückgegeben werden sollen. Wenn man pattern als '*' übergibt, so erhält man eine Liste der vollständigen Mailboxhierarchie. '%' heißt, dass nur die aktuelle Stufe zurückgegeben wird. '%' als Wert des pattern Parameters wird nur die Mailboxen auf höchster Stufe zurückgeben. '~/mail/%' unter UW_IMAPD wird jede Mailbox innerhalb des ~/mail-Verzeichnisses zurückgeben, aber keine innerhalb von dessen Unterverzeichnissen.

Rückgabewerte

Liefert ein Array, das Objekte mit Postfachbeschreibungen, enthält. Jedes Objekt verfügt über die Attribute name für den Namen des Postfachs, delimiter für das gültige Hierachietrennzeichen innerhalb des Hierachieabschnitts in dem sich das Postfach befindet, und Eigenschaften des Postfachs in attribute. Die Eigenschaften setzen sich als Bitmaske aus folgenden möglichen Werten zusammen:

  • LATT_NOINFERIORS - innerhalb dieses Postfachs existieren keine weiteren Unterpostfächer.
  • LATT_NOSELECT - dieses Postfach enthält nur Unterpostfächer aber keine Nachrichten; es kann nicht geöffnet werden.
  • LATT_MARKED - dieses Postfach ist markiert. Nur verwendet von UW-IMAPD.
  • LATT_UNMARKED - dieses Postfach ist nicht markiert. Nur verwendet von UW-IMAPD.
  • LATT_REFERRAL - Das Postfach bezieht sich auf eine Remote-Mailbox.
  • LATT_HASCHILDREN - Das Postfach enthält auswählbare Unterpostfächer.
  • LATT_HASNOCHILDREN - Das Postfach enthält keine auswählbaren Unterpostfächer.


Alias von imap_headerinfo

  • « imap_getsubscribed
  • imap_headerinfo »
  • PHP Manual
  • IMAP Funktionen
  • Alias von imap_headerinfo

imap_header

(PHP 4, PHP 5, PHP 7)

imap_header — Alias von imap_headerinfo()

Beschreibung

Diese Funktion ist ein Alias für: imap_headerinfo().


Liest die Kopfdaten einer Nachricht

  • « imap_header
  • imap_headers »
  • PHP Manual
  • IMAP Funktionen
  • Liest die Kopfdaten einer Nachricht

imap_headerinfo

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_headerinfo — Liest die Kopfdaten einer Nachricht

Beschreibung

imap_headerinfo ( resource $imap_stream , int $msg_number , int $fromlength = 0 , int $subjectlength = 0 , string $defaulthost = null ) : object

Liest die Kopfdaten der Nachricht mit der Nummer msg_number und liefert daraus gewonnene Informationen zurück.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

msg_number

Die gewünschte Nachrichtennummer

fromlength

Maximale Anzahl Zeichen für die fetchfrom Eigenschaft (muß größer als Null sein)

subjectlength

Maximale Anzahl Zeichen für die subject Eigenschaft (muß größer als Null sein)

defaulthost

Rückgabewerte

Gibt false im Fehlerfall, oder im Erfolgsfall die Ergebnisse in einem Objekt mit folgenden Eigenschaften zurück:

  • toaddress - Inhalt des "To:" Felds (max. 1024 Zeichen)
  • to - ein Array mit aus den einzelnen Empfängern aus dem "To:" Feld. Jedes Array-Element hat die Eigenschaften personal, adl, mailbox und host
  • fromaddress - Inhalt des "From:" Felds (max. 1024 Zeichen)
  • from - ein Array mit aus den einzelnen Empfängern aus dem "From:" Feld. Jedes Array-Element hat die Eigenschaften personal, adl, mailbox und host
  • ccaddress - Inhalt des "Cc:" Felds (max. 1024 Zeichen)
  • cc - ein Array mit aus den einzelnen Empfängern aus dem "Cc:" Feld. Jedes Array-Element hat die Eigenschaften personal, adl, mailbox und host
  • bccaddress - Inhalt des "Bcc:" Felds (max. 1024 Zeichen)
  • bcc - ein Array mit aus den einzelnen Empfängern aus dem "Bcc:" Feld. Jedes Array-Element hat die Eigenschaften personal, adl, mailbox und host
  • reply_toaddress - Inhalt des "Reply-To:" Felds (max. 1024 Zeichen)
  • reply_to - ein Array mit aus den einzelnen Empfängern aus dem "Reply-To:" Feld. Jedes Array-Element hat die Eigenschaften personal, adl, mailbox und host
  • senderaddress - Inhalt des "Sender:" Felds (max. 1024 Zeichen)
  • sender - ein Array mit aus den einzelnen Empfängern aus dem "Sender:" Feld. Jedes Array-Element hat die Eigenschaften personal, adl, mailbox und host
  • return_pathaddress - Inhalt des "Return-Path:" Felds (max. 1024 Zeichen)
  • return_path - ein Array mit aus den einzelnen Empfängern aus dem "Return-Path:" Feld. Jedes Array-Element hat die Eigenschaften personal, adl, mailbox und host
  • remail -
  • date - Sendedatum der Nachricht laut Kopfdaten
  • Date - enthält die gleichen Daten wie 'date'
  • subject - die Betreffzeile der Nachricht
  • Subject - enthält die gleichen Daten wie 'subject'
  • in_reply_to -
  • message_id -
  • newsgroups -
  • followup_to -
  • references -
  • Recent - R wenn kürzlich eingetroffen und gelesen, N wenn kürzlich eingetroffen und ungelesen, ' ' wenn nicht kürzlich eingetroffen
  • Unseen - U wenn nicht kürzlich eingetroffen UND ungelesen, ' ' wenn gelesen ODER ungelesen und kürzlich eingetroffen.
  • Flagged - F wenn als wichtig markiert, sonst ' '
  • Answered - A wenn beantwortet, sonst' '
  • Deleted - D wenn zum Löschen vorgemerkt, sonst ' '
  • Draft - X wenn als Entwurf markiert, sonst ' '
  • Msgno - die Nachrichtennummer
  • MailDate -
  • Size - Größe der Nachricht in Bytes
  • udate - Sendedatum als Unix-Timestamp
  • fetchfrom - "From:" Zeile limitiert auf fromlength Zeichen characters
  • fetchsubject - "Subject:" Zeile limitiert auf subjectlength Zeichen

Siehe auch

  • imap_fetch_overview() - Liefert einen Auszug aus den Kopfdaten von Nachrichten


Liefert eine Zusammenfassung aller Nachrichtenköpfe eines Postfachs

  • « imap_headerinfo
  • imap_last_error »
  • PHP Manual
  • IMAP Funktionen
  • Liefert eine Zusammenfassung aller Nachrichtenköpfe eines Postfachs

imap_headers

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_headers — Liefert eine Zusammenfassung aller Nachrichtenköpfe eines Postfachs

Beschreibung

imap_headers ( resource $imap_stream ) : array

Diese Funktion liefert ein String-Array, das je Nachricht einen String mit vorformatierten Informationen aus dem Nachrichtenheader enthält.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

Rückgabewerte

Liefert ein Array aus Strings mit formatierten Headerinformationen. Das Array enthält ein Element für jede Nachricht im Postfach.


Liefert die letzte IMAP-Fehlermeldung für dieses Script

  • « imap_headers
  • imap_list »
  • PHP Manual
  • IMAP Funktionen
  • Liefert die letzte IMAP-Fehlermeldung für dieses Script

imap_last_error

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_last_error — Liefert die letzte IMAP-Fehlermeldung für dieses Script

Beschreibung

imap_last_error ( ) : string

Liefert den vollständigen Text der letzten IMAP Fehlermeldung ,die für die aktuelle Seite erzeugt wurde. Der Fehlerstack bleibt erhalten, wiederholte imap_last_error() Aufrufe liefern daher die gleiche Fehlermeldung, falls nicht inzwschen ein weiterer Fehler aufgetreten ist.

Rückgabewerte

Liefert den vollständigen Text der letzten IMAP Fehlermeldung, falls vorhanden, sonst false.

Siehe auch

  • imap_errors() - Liefert alle bisher aufgetretenen Fehlermeldungen


Lies Liste der Postfächer

  • « imap_last_error
  • imap_listmailbox »
  • PHP Manual
  • IMAP Funktionen
  • Lies Liste der Postfächer

imap_list

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_list — Lies Liste der Postfächer

Beschreibung

imap_list ( resource $imap_stream , string $ref , string $pattern ) : array

Lies die Liste aller Pöstfächer.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

ref

Angabe des Servers wie in imap_open() beschrieben.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

pattern

Gibt an, wo in der Mailbox-Hierarchie mit der Suche begonnen werden soll.

Es gibt zwei Sonderzeichen, die man als Teil des pattern verwenden kann: '*' und '%'. '*' heißt, dass alle Mailboxen zurückgegeben werden sollen. Wenn man pattern als '*' übergibt, so erhält man eine Liste der vollständigen Mailboxhierarchie. '%' heißt, dass nur die aktuelle Stufe zurückgegeben wird. '%' als Wert des pattern Parameters wird nur die Mailboxen auf höchster Stufe zurückgeben. '~/mail/%' unter UW_IMAPD wird jede Mailbox innerhalb des ~/mail-Verzeichnisses zurückgeben, aber keine innerhalb von dessen Unterverzeichnissen.

Rückgabewerte

Liefert ein Array mit den Namen der gefundenen Postfächer, oder false im Fehlerfall.

Beispiele

Beispiel #1 imap_list() Beispiel

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
      or die("kann nicht verbinden: " . imap_last_error());

$list = imap_list($mbox, "{imap.example.org}", "*");
if (is_array($list)) {
    foreach ($list as $val) {
        echo imap_utf7_decode($val) . "\n";
    }
} else {
    echo "imap_list schlug fehl: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Siehe auch

  • imap_getmailboxes() - Liefert detailierte Informationen zu allen verfügbaren Postfächern
  • imap_lsub() - Liste alle abonnierten Postfächer


Alias von imap_list

  • « imap_list
  • imap_listscan »
  • PHP Manual
  • IMAP Funktionen
  • Alias von imap_list

imap_listmailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_listmailbox — Alias von imap_list()

Beschreibung

Diese Funktion ist ein Alias für: imap_list().


Listet Postfächer nach Suchkriterien

  • « imap_listmailbox
  • imap_listsubscribed »
  • PHP Manual
  • IMAP Funktionen
  • Listet Postfächer nach Suchkriterien

imap_listscan

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_listscan — Listet Postfächer nach Suchkriterien

Beschreibung

imap_listscan ( resource $imap_stream , string $ref , string $pattern , string $content ) : array

Liefert ein Array mit den Namen der Postfächer in deren Inhalt der Suchtext content vorkommt.

Diese Funktion verhält sich ähnlich wie imap_listmailbox() sucht aber zusätzlich nach dem Suchtext content innerhalb der Daten des Postfachs.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

ref

Serverspezifikation wie in imap_open() beschrieben.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

pattern

Gibt an, wo in der Mailbox-Hierarchie mit der Suche begonnen werden soll.

Es gibt zwei Sonderzeichen, die man als Teil des pattern verwenden kann: '*' und '%'. '*' heißt, dass alle Mailboxen zurückgegeben werden sollen. Wenn man pattern als '*' übergibt, so erhält man eine Liste der vollständigen Mailboxhierarchie. '%' heißt, dass nur die aktuelle Stufe zurückgegeben wird. '%' als Wert des pattern Parameters wird nur die Mailboxen auf höchster Stufe zurückgeben. '~/mail/%' unter UW_IMAPD wird jede Mailbox innerhalb des ~/mail-Verzeichnisses zurückgeben, aber keine innerhalb von dessen Unterverzeichnissen.

content

Der zu suchende Text

Rückgabewerte

Liefert ein Array mit den Namen der Postfächer in deren Inhalt der Suchtext content vorkommt.

Siehe auch

  • imap_listmailbox() - Alias von imap_list
  • imap_search() - Liefert ein Array von Nachrichten, die den gegebenen Suchkriterien entsprechen


Alias von imap_lsub

  • « imap_listscan
  • imap_lsub »
  • PHP Manual
  • IMAP Funktionen
  • Alias von imap_lsub

imap_listsubscribed

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_listsubscribed — Alias von imap_lsub()

Beschreibung

Diese Funktion ist ein Alias für: imap_lsub().


Liste alle abonnierten Postfächer

  • « imap_listsubscribed
  • imap_mail_compose »
  • PHP Manual
  • IMAP Funktionen
  • Liste alle abonnierten Postfächer

imap_lsub

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_lsub — Liste alle abonnierten Postfächer

Beschreibung

imap_lsub ( resource $imap_stream , string $ref , string $pattern ) : array

Liefert ein Array aller vom Benutzer abonnierten Postfächer.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

ref

Serverspezifikation, siehe imap_open() für Details.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

pattern

Gibt an, wo in der Mailbox-Hierarchie mit der Suche begonnen werden soll.

Es gibt zwei Sonderzeichen, die man als Teil des pattern verwenden kann: '*' und '%'. '*' heißt, dass alle Mailboxen zurückgegeben werden sollen. Wenn man pattern als '*' übergibt, so erhält man eine Liste der vollständigen Mailboxhierarchie. '%' heißt, dass nur die aktuelle Stufe zurückgegeben wird. '%' als Wert des pattern Parameters wird nur die Mailboxen auf höchster Stufe zurückgeben. '~/mail/%' unter UW_IMAPD wird jede Mailbox innerhalb des ~/mail-Verzeichnisses zurückgeben, aber keine innerhalb von dessen Unterverzeichnissen.

Rückgabewerte

Liefert ein Array mit allen abonierten Postfächern.

Siehe auch

  • imap_list() - Lies Liste der Postfächer
  • imap_getmailboxes() - Liefert detailierte Informationen zu allen verfügbaren Postfächern


Erzeugt eine MIME-Nachricht aus Kopf- und Nachrichtenelementen

  • « imap_lsub
  • imap_mail_copy »
  • PHP Manual
  • IMAP Funktionen
  • Erzeugt eine MIME-Nachricht aus Kopf- und Nachrichtenelementen

imap_mail_compose

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mail_compose — Erzeugt eine MIME-Nachricht aus Kopf- und Nachrichtenelementen

Beschreibung

imap_mail_compose ( array $envelope , array $body ) : string

Erzeugt eine MIME-konforme Nachricht aus den in envelope gegebenen Kopfelementen und den Nachrichtenteilen aus body.

Parameter-Liste

envelope

Ein assoziatives Array von Kopfzeilenfeldern. Gültige Schlüssel sind: "remail", "return_path", "date", "from", "reply_to", "in_reply_to", "subject", "to", "cc", "bcc", "message_id" und "custom_headers" (das ein Array von anderen Kopfzeilen enthält, z.B. ["User-Agent: My Mail Client"]).

body

Die Teile des Mailkörpers als indiziertes Array.

Jeder Teil des Mailkörpers ist ein assoziatives Array mit folgenden möglichen Elementen: "type", "encoding", "charset", "type.parameters", "subtype", "id", "description", "disposition.type", "disposition", "contents.data", "lines", "bytes" und "md5".

Rückgabewerte

Liefert eine MIME-konforme Nachricht

Beispiele

Beispiel #1 imap_mail_compose() Beispiel

<?php

$envelope["from"]= "joe@example.com";
$envelope["to"]  = "foo@example.com";
$envelope["cc"]  = "bar@example.com";

$part1["type"] = TYPEMULTIPART;
$part1["subtype"] = "mixed";

$filename = "/tmp/imap.c.gz";
$fp = fopen($filename, "r");
$contents = fread($fp, filesize($filename));
fclose($fp);

$part2["type"] = TYPEAPPLICATION;
$part2["encoding"] = ENCBINARY;
$part2["subtype"] = "octet-stream";
$part2["description"] = basename($filename);
$part2["contents.data"] = $contents;

$part3["type"] = TYPETEXT;
$part3["subtype"] = "plain";
$part3["description"] = "description3";
$part3["contents.data"] = "contents.data3\n\n\n\t";

$body[1] = $part1;
$body[2] = $part2;
$body[3] = $part3;

echo nl2br(imap_mail_compose($envelope, $body));

?>


Kopiert Nachrichten in ein Postfach

  • « imap_mail_compose
  • imap_mail_move »
  • PHP Manual
  • IMAP Funktionen
  • Kopiert Nachrichten in ein Postfach

imap_mail_copy

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mail_copy — Kopiert Nachrichten in ein Postfach

Beschreibung

imap_mail_copy ( resource $imap_stream , string $msglist , string $mailbox , int $options = 0 ) : bool

imap_mail_copy() kopiert die mit msglist spezifizierten Nachrichten in das Postfach mailbox.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

msglist

Der zu verschiebende Nachrichtenbereich, für Formatbeschreibungen siehe » RFC2060.

mailbox

Das Zielpostfach, für weitere Informationen siehe imap_open().

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

options

options ist eine Bitmaske die sich aus einem oder mehreren der folgenden Flags zusammensetzen kann

  • CP_UID - die Nachrichtennummern sind UIDs
  • CP_MOVE - Nachrichten nach dem Kopieren aus dem aktuellen Postfach entfernen

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • imap_mail_move() - Verschiebt Nachrichten in ein anderes Postfach


Verschiebt Nachrichten in ein anderes Postfach

  • « imap_mail_copy
  • imap_mail »
  • PHP Manual
  • IMAP Funktionen
  • Verschiebt Nachrichten in ein anderes Postfach

imap_mail_move

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mail_move — Verschiebt Nachrichten in ein anderes Postfach

Beschreibung

imap_mail_move ( resource $imap_stream , string $msglist , string $mailbox , int $options = 0 ) : bool

imap_mail_move() verschiebt die mit msglist angegebenen Nachrichten in das Postfach mailbox.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

msglist

Der zu verschiebende Nachrichtenbereich, für Formatbeschreibungen siehe » RFC2060.

mailbox

Das Zielpostfach, für weitere Informationen siehe imap_open().

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

options

options kann zur Zeit nur eine Option enthalten:

  • CP_UID - die Nachrichtennummern sind UIDs

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

imap_mail_move() setzt für die Original-Nachricht ein Lösch-Flag; um sie erfolgreich zu Löschen muss die imap_expunge() Funktion aufgerufen werden.

Siehe auch

  • imap_mail_copy() - Kopiert Nachrichten in ein Postfach


Sendet eine Email Nachricht

  • « imap_mail_move
  • imap_mailboxmsginfo »
  • PHP Manual
  • IMAP Funktionen
  • Sendet eine Email Nachricht

imap_mail

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mail — Sendet eine Email Nachricht

Beschreibung

imap_mail ( string $to , string $subject , string $message , string $additional_headers = null , string $cc = null , string $bcc = null , string $rpath = null ) : bool

Diese Funktion ermöglicht das Senden einer E-Mail inklusive der richtigen Behandlung von Cc- und Bcc-Kopffeldern.

Die Parameter to, cc und bcc sind Textstrings die als Adresslisten gemäß » RFC822 interpretiert werden.

Parameter-Liste

to

Der Empfänger der Nachricht

subject

Die Betreffzeile der Nachricht

message

Der Inhalt der Nachricht, siehe imap_mail_compose()

additional_headers

Ein Textstring mit zusätzlichen Kopfzeilen.

cc

bcc

Die mit bcc angegebenen weiteren Empfänger der Nachricht erhalten diese, werden aber nicht im Nachrichtenkopf aufgeführt.

rpath

Rückgabeadresse bei felgeschlagener Zustellung der Nachricht. Diese ist nützlich wenn PHP als Email Client für mehrere Benutzer genutzt wird.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • mail() - Sendet eine E-Mail
  • imap_mail_compose() - Erzeugt eine MIME-Nachricht aus Kopf- und Nachrichtenelementen


Informationen zum aktuellen Postfach

  • « imap_mail
  • imap_mime_header_decode »
  • PHP Manual
  • IMAP Funktionen
  • Informationen zum aktuellen Postfach

imap_mailboxmsginfo

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mailboxmsginfo — Informationen zum aktuellen Postfach

Beschreibung

imap_mailboxmsginfo ( resource $imap_stream ) : object

Prüft den aktuelle Status des Postfachs auf dem Server. Die Funktion ist vergleichbar mit imap_status(), liefert aber zusätzlich auch die Gesamtgröße aller Nachrichten in Bytes. Das Aufsummieren der einzelnen Nachrichtengrößen benötigt dabei zusätzliche Zeit zur Ausführung. execute.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

Rückgabewerte

Die Ergebnisse werden in einem Objekt mit folgenden Properties zurückgegeben:

Postfach Eigenschaften
Date | Zeitpunkt der letzten Änderung (aktuelle Zeit)
Driver | Treiber
Mailbox | Name des Postfachs
Nmsgs | Anzahl der Nachrichten
Recent | Anzahl der kürzlich eingetroffenen Nachrichten
Unread | Anzal der ungelesenen Nachrichten
Deleted | Anzahl der gelöschten Nachrichten
Size | Gesamtgröße des Postfachs in Bytes

Sollten Fehler auftreten so wird false zurückgegeben.

Beispiele

Beispiel #1 imap_mailboxmsginfo() Beispiel

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
      or die("can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);

if ($check) {
    echo "Date: "     . $check->Date    . "<br />\n" ;
    echo "Driver: "   . $check->Driver  . "<br />\n" ;
    echo "Mailbox: "  . $check->Mailbox . "<br />\n" ;
    echo "Messages: " . $check->Nmsgs   . "<br />\n" ;
    echo "Recent: "   . $check->Recent  . "<br />\n" ;
    echo "Unread: "   . $check->Unread  . "<br />\n" ;
    echo "Deleted: "  . $check->Deleted . "<br />\n" ;
    echo "Size: "     . $check->Size    . "<br />\n" ;
} else {
    echo "imap_mailboxmsginfo() failed: " . imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>


Dekodiert MIME-kodierte Headerzeilen

  • « imap_mailboxmsginfo
  • imap_msgno »
  • PHP Manual
  • IMAP Funktionen
  • Dekodiert MIME-kodierte Headerzeilen

imap_mime_header_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mime_header_decode — Dekodiert MIME-kodierte Headerzeilen

Beschreibung

imap_mime_header_decode ( string $text ) : array

Dekodiert MIME-kodierte Headerzeilen die nicht-ASCII Zeichen enthalten (siehe » RFC2047).

Parameter-Liste

text

Der MIME-kodierte Text

Rückgabewerte

Die dekodierten Textteile werden als ein Array von Objekten zurückgegeben die jeweils eine text und eine charset Eigenschaft enthalten.

Für nicht kodierte ASCII-Teile wird die charset Eigenschaft auf den Wert default gesetzt.

Beispiele

Beispiel #1 imap_mime_header_decode() Beispiel

<?php
$text = "=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@example.com>";

$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";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Charset: ISO-8859-1
Text: Keld Jørn Simonsen

Charset: default
Text:  <keld@example.com>

In diesem Beispiel erhalten wir zwei Textteile zurück, den ersten kodiert im westeuropäischen ISO-8859-1 Zeichensatz und den zweiten als einfacher ASCII-String.

Siehe auch

  • imap_utf8() - Konvertiert Text zu UTF8


Liefert die Nachrichtennummer für eine gegebene UID

  • « imap_mime_header_decode
  • imap_mutf7_to_utf8 »
  • PHP Manual
  • IMAP Funktionen
  • Liefert die Nachrichtennummer für eine gegebene UID

imap_msgno

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_msgno — Liefert die Nachrichtennummer für eine gegebene UID

Beschreibung

imap_msgno ( resource $imap_stream , int $uid ) : int

Liefert die Nachrichtennummer für uid.

Diese Funktion ist das Gegenstück zu imap_uid().

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

uid

Die UID der Nachricht.

Rückgabewerte

Die Nachrichtennummer der Nachricht mit der gegebenen uid.

Siehe auch

  • imap_uid() - Liefert die UID für die gegebene Nachrichtennummer


Decode a modified UTF-7 string to UTF-8

  • « imap_msgno
  • imap_num_msg »
  • PHP Manual
  • IMAP Funktionen
  • Decode a modified UTF-7 string to UTF-8

imap_mutf7_to_utf8

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

imap_mutf7_to_utf8 — Decode a modified UTF-7 string to UTF-8

Beschreibung

imap_mutf7_to_utf8 ( string $string ) : string|false

Decode a modified UTF-7 (as specified in RFC 2060, section 5.1.3) string to UTF-8.

Hinweis:

This function is only available, if libcclient exports utf8_to_mutf7().

Parameter-Liste

string

A string encoded in modified UTF-7.

Rückgabewerte

Returns string converted to UTF-8, Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • imap_utf8_to_mutf7() - Encode a UTF-8 string to modified UTF-7


Anzahl der Nachrichten im aktuellen Postfach

  • « imap_mutf7_to_utf8
  • imap_num_recent »
  • PHP Manual
  • IMAP Funktionen
  • Anzahl der Nachrichten im aktuellen Postfach

imap_num_msg

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_num_msg — Anzahl der Nachrichten im aktuellen Postfach

Beschreibung

imap_num_msg ( resource $imap_stream ) : int

Liefert die Anzahl der Nachrichten im aktuellen Postfach.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

Rückgabewerte

Liefert die Anzahl der Nachrichten im aktuellen Postfach als Integer, oder false im Fehlerfall.

Siehe auch

  • imap_num_recent() - Nummer der kürzlich eingetroffenen Nachrichten
  • imap_status() - Liefert Statusinformationen zum angegebenen Postfach


Nummer der kürzlich eingetroffenen Nachrichten

  • « imap_num_msg
  • imap_open »
  • PHP Manual
  • IMAP Funktionen
  • Nummer der kürzlich eingetroffenen Nachrichten

imap_num_recent

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_num_recent — Nummer der kürzlich eingetroffenen Nachrichten

Beschreibung

imap_num_recent ( resource $imap_stream ) : int

Liefert die Anzahl der kürzlich eingetroffenen Nachrichten im aktuellen Postfach.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

Rückgabewerte

Liefert die Anzahl der kürzlich eingetroffenen Nachrichten im aktuellen Postfach als Integer.

Siehe auch

  • imap_num_msg() - Anzahl der Nachrichten im aktuellen Postfach
  • imap_status() - Liefert Statusinformationen zum angegebenen Postfach


Öffnet einen IMAP-Stream zu einem Mailserver-Postfach

  • « imap_num_recent
  • imap_ping »
  • PHP Manual
  • IMAP Funktionen
  • Öffnet einen IMAP-Stream zu einem Mailserver-Postfach

imap_open

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_open — Öffnet einen IMAP-Stream zu einem Mailserver-Postfach

Beschreibung

imap_open ( string $mailbox , string $username , string $password , int $options = 0 , int $n_retries = 0 , array $params = array() ) : resource

Öffnet einen IMAP-Stream zum Postfach mailbox.

Diese Funktion kann neben IMAP auch POP3 und NNTP Verbindungen aufbauen, einige Funktionen und Eigenschaften sind aber nur in IMAP Verbindungen verfügbar.

Parameter-Liste

mailbox

Ein Postfachname besteht aus einer Angabe des Servers und aus dem Pfad zum Postfach auf diesem Server. Der reservierte Name INBOX steht für das persönliche Postfach des aktuellen Benutzers. Enthält der Name des Postfach internationale Zeichen außerhalb des druckbaren ASCII Bereichs so müssen diese mit imap_utf7_encode() kodiert werden.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

Der Serverteil wird in '{' und '}' eingebettet, er besteht aus dem Namen oder der IP-Adresse des Servers, einer optionalen Portnummer (eingeleitet mit ':' und einer optionalen Protokollangabe (eingeleitet mit '/').

Die Angabe des Serverteils ist immer zwingend.

Alle Namen, die mit { beginnen, bezeichnen Serverdienste und werden in der Form "{" remote_system_name [":" port] [flags] "}[mailbox_name]" angegeben:

  • remote_system_name - DNS Servername oder IP-Adresse des Servers in eckigen Klammern
  • port - optionale Portnummer, Standard ist der jeweilige Standardport des gewählten Protokolls
  • flags - Optionsflags, s.u.
  • mailbox_name - Name des gewünschten Serverpostfachs, Standard ist "INBOX"

Optional flags for names
Flag | Description
/service=service | Postfach-Zugriffsprotokoll, Standard ist "imap"
/user=user | Benutzername für die Anmeldung auf dem Mailserver
/authuser=user | Benutzername für die Remote-Authentifizierung; falls angegeben, ist dies der Benutzername dessen Passwort verwendet wird (z.B. administrator)
/anonymous | Zugriff als anonymer Benutzer
/debug | Protokollausgaben in das Fehlerlog des Webservers leiten
/secure | Übertragung von Klartext-Passwörtern wird verhindert
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 | Kurzform für /service=imap
/pop3 | Kurzform für /service=pop3
/nntp | Kurzform für /service=nntp
/norsh | Für eine vorauthentifizierte IMAP Verbindung soll weder rsh noch ssh verwendet werden
/ssl | Secure Socket Layer (SSL) zur Verschlüsselung der Verbindung verwenden
/validate-cert | TLS/SSL Zertifikate verifizieren (Standardverhalten)
/novalidate-cert | TLS/SSL Zertifikate nicht verifizieren, wird für selbstsignierte Zertifikate benötigt
/tls | start-TLS Verschlüsselung erzwingen, Verbindungen von Servern die dies nicht unterstützen ablehnen.
/notls | start-TLS nicht verwenden, auch wenn es der Server unterstützt
/readonly | Nur lesender Zugriff auf den Server ohne serverseitige Änderung von Daten (nur für IMAP, NNTP ignoriert dies, POP3 und SMTP verweigern readonly Verbindungen)

username

Der Benutzername

password

Das Passwort von username

options

Der Parameter options kann sich als Bitmaske aus folgenden Werten zusammensetzen:

  • OP_READONLY - Nur lesende Zugriffe
  • OP_ANONYMOUS - ein existierendes .newsrc weder lesen noch aktualisieren (nur NNTP)
  • OP_HALFOPEN - Verbindung zum Server öffnen aber noch kein Postfach auswählen (nur IMAP und NNTP).
  • CL_EXPUNGE - Zum löschen markierte Nachrichten beim Schließen des Postfachs automatisch entfernen (siehe auch imap_delete() und imap_expunge())
  • OP_DEBUG - Debug Protokoll
  • OP_SHORTCACHE - verkürztes Cacheing
  • OP_SILENT - Ereignisse nicht weitergeben (interne Einstellung)
  • OP_PROTOTYPE - Driver Prototyp zurückgeben
  • OP_SECURE - Keine unsichere Verbindung zum Server öffnen

n_retries

Maximale Anzahl der Verbindungsversuche

params

Verbindungsparameter. Die folgenden (Zeichenketten-)Schlüssel können verwendet werden, um einen oder mehrere Verbindungsparameter anzugeben:

  • DISABLE_AUTHENTICATOR - Deaktiviere Authentifizierungs-Eigenschaften

Rückgabewerte

Liefert einen IMAP Stream oder false bei Fehlern.

Beispiele

Beispiel #1 Verschiedene imap_open() Aufrufe

<?php
// Verbindung zu einem IMAP server auf Port 143 des lokalen Rechners
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");

// Verbindung zu einem POP3 server auf Port 110 des lokalen Rechners
$mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");

// Für SSL verschlüsselte Verbindungen wird /ssl an die
// Protokollspezifikation angefügt
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");

// Zur SSL Verbindung mit Servern mit selbstsignierten Zertifikaten
// muss zusätzlich /novalidate-cert angefügt werden
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");

// Verbindung zu einem NNTP server auf Port 119 des lokalen Rechners
$nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");

// Für Verbindungen zu anderen Servern ersetzen Sie "localhost" mit
// dem Namen oder der IP-Adresse des Servers
?>

Beispiel #2 imap_open() Beispiel

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password");

echo "<h1>Postfächer</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*");

if ($folders == false) {
    echo "Abruf fehlgeschlagen<br />\n";
} else {
    foreach ($folders as $val) {
        echo $val . "<br />\n";
    }
}

echo "<h1>Nachrichten in INBOX</h1>\n";
$headers = imap_headers($mbox);

if ($headers == false) {
    echo "Abruf fehlgeschlagen<br />\n";
} else {
    foreach ($headers as $val) {
        echo $val . "<br />\n";
    }
}

imap_close($mbox);
?>

Siehe auch

  • imap_close() - Schließt einen IMAP Stream


Prüft einen IMAP-Stream auf Funktionalität

  • « imap_open
  • imap_qprint »
  • PHP Manual
  • IMAP Funktionen
  • Prüft einen IMAP-Stream auf Funktionalität

imap_ping

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_ping — Prüft einen IMAP-Stream auf Funktionalität

Beschreibung

imap_ping ( resource $imap_stream ) : bool

imap_ping() 'pingt' einen IMAP-Stream um zu sehen ob dieser noch aktiv und funktional ist. Sie kann neue Nachrichten entdecken, ein imap_ping() ist daher die bevorzugte Methode für periodische Prüfungen auf neue Nachrichten sowie als Keepalive Signal für Server die Verbindungen nach einer gewissen Zeit der Inaktivität beenden.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

Rückgabewerte

Liefert true wenn der Stream noch funktioniert, sonst false.

Beispiele

Beispiel #1 imap_ping() Example

<?php

$imap = imap_open("{imap.example.org}", "mailadmin", "password");

// nach einer gewissen Zeit
if (!imap_ping($imap)) {
    // Verbindung wieder aufbauen
}

?>


Konvertiert einen quoted-printable kodierten String in einen 8 Bit String

  • « imap_ping
  • imap_rename »
  • PHP Manual
  • IMAP Funktionen
  • Konvertiert einen quoted-printable kodierten String in einen 8 Bit String

imap_qprint

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_qprint — Konvertiert einen quoted-printable kodierten String in einen 8 Bit String

Beschreibung

imap_qprint ( string $string ) : string

Konvertiert einen quoted-printable String in einen 8 Bit String gemäß » RFC2045, Abschnitt 6.7.

Parameter-Liste

string

Ein quoted-printable kodierter String

Rückgabewerte

Liefert einen 8 Bit String

Siehe auch

  • imap_8bit() - Konvertiert einen 8bit String in einen quoted-printable String


Alias von imap_renamemailbox

  • « imap_qprint
  • imap_renamemailbox »
  • PHP Manual
  • IMAP Funktionen
  • Alias von imap_renamemailbox

imap_rename

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_rename — Alias von imap_renamemailbox()

Beschreibung

Diese Funktion ist ein Alias für: imap_renamemailbox().


Ändert den Namen eines Postfachs

  • « imap_rename
  • imap_reopen »
  • PHP Manual
  • IMAP Funktionen
  • Ändert den Namen eines Postfachs

imap_renamemailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_renamemailbox — Ändert den Namen eines Postfachs

Beschreibung

imap_renamemailbox ( resource $imap_stream , string $old_mbox , string $new_mbox ) : bool

Die Funktion ändert den Namen des Postfachs old_mbox in new_mbox (siehe imap_open() für Angaben zum Format von Postfachnamen).

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

old_mbox

Der bisherige Name des Postfachs, siehe imap_open() für weitere Informationen.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

new_mbox

Der neue Name des Postfachs, siehe imap_open() für weitere Informationen.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • imap_createmailbox() - Anlegen eines neuen Postfachs
  • imap_deletemailbox() - Löscht ein Postfach


Wechselt das aktuelle Postfach des IMAP-Streams

  • « imap_renamemailbox
  • imap_rfc822_parse_adrlist »
  • PHP Manual
  • IMAP Funktionen
  • Wechselt das aktuelle Postfach des IMAP-Streams

imap_reopen

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_reopen — Wechselt das aktuelle Postfach des IMAP-Streams

Beschreibung

imap_reopen ( resource $imap_stream , string $mailbox , int $options = 0 , int $n_retries = 0 ) : bool

imap_reopen() wechselt das aktuelle Postfach eines IMAP oder NNTP Servers.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

mailbox

Der Postfachname, siehe imap_open() für weitere Informationen.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

options

Der Parameter options kann als Bitmaske einen oder mehrere der folgenden Werte enthalten:

  • OP_READONLY - öffnet das Postfach nur für Lesezugriffe
  • OP_ANONYMOUS - die .newsrc Datei weder lesen noch aktualisieren (nur NNTP)
  • OP_HALFOPEN - Verbindung aufbauen ohne ein konkretes Postfach zu öffnen (nur IMAP und NNTP)
  • OP_EXPUNGE - zum Löschen vorgemerkte Nachrichten sofort löschen
  • CL_EXPUNGE - zum Löschen vorgemerkte Nachrichten werden beim Schließen der Verbindung endgültig gelöscht (siehe auch imap_delete() und imap_expunge())

n_retries

Number of maximum connect attempts

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imap_reopen() Beispiel

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password") or die(implode(", ", imap_errors()));
// ...
imap_reopen($mbox, "{imap.example.org:143}INBOX.Sent") or die(implode(", ", imap_errors()));
// ..
?>


Zerlegt einen Mailadressstring

  • « imap_reopen
  • imap_rfc822_parse_headers »
  • PHP Manual
  • IMAP Funktionen
  • Zerlegt einen Mailadressstring

imap_rfc822_parse_adrlist

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_rfc822_parse_adrlist — Zerlegt einen Mailadressstring

Beschreibung

imap_rfc822_parse_adrlist ( string $address , string $default_host ) : array

Zerlegt den übergebenen Mailadressstring in einzelne Mailadressen gemäß » RFC2822.

Parameter-Liste

address

Ein String aus Mailadressen

default_host

Ein Defaulthostname

Rückgabewerte

Ein Array aus Objekten mit folgenden Properties wird zurückgegeben:

  • mailbox - der Postfach- bzw. Benutzername
  • host - der Hostname
  • personal - der tatsächliche Name des Benutzers
  • adl - at domain source route

Beispiele

Beispiel #1 imap_rfc822_parse_adrlist() Beispiel

<?php

$address_string = "Joe Doe <doe@example.com>, postmaster@example.com, root";
$address_array  = imap_rfc822_parse_adrlist($address_string, "example.com");
if (!is_array($address_array) || count($address_array) < 1) {
    die("something is wrong\n");
}

foreach ($address_array as $id => $val) {
    echo "# $id\n";
    echo "  mailbox : " . $val->mailbox . "\n";
    echo "  host    : " . $val->host . "\n";
    echo "  personal: " . $val->personal . "\n";
    echo "  adl     : " . $val->adl . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

# 0
  mailbox : doe
  host    : example.com
  personal: Joe Doe
  adl     :
# 1
  mailbox : postmaster
  host    : example.com
  personal:
  adl     :
# 2
  mailbox : root
  host    : example.com
  personal:
  adl     :

Siehe auch

  • imap_rfc822_parse_headers() - Email-Kopfzeilen aus einem String auslesen


Email-Kopfzeilen aus einem String auslesen

  • « imap_rfc822_parse_adrlist
  • imap_rfc822_write_address »
  • PHP Manual
  • IMAP Funktionen
  • Email-Kopfzeilen aus einem String auslesen

imap_rfc822_parse_headers

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_rfc822_parse_headers — Email-Kopfzeilen aus einem String auslesen

Beschreibung

imap_rfc822_parse_headers ( string $headers , string $defaulthost = "UNKNOWN" ) : object

Liefert ein Objekt mit diversen Kopfelementen, ähnlich imap_header().

Parameter-Liste

headers

Die auszulesenden Kopfdaten

defaulthost

Der Default-Hostname

Rückgabewerte

Liefert ein ähnliches Objekt wie imap_header() mit Ausnahme der Flags und anderen vom IMAP Server gelieferten Daten.

Siehe auch

  • imap_rfc822_parse_adrlist() - Zerlegt einen Mailadressstring


Bildet aus Realnamen, Postfach und Server eine korrekt formatierte Mail-Adresse

  • « imap_rfc822_parse_headers
  • imap_savebody »
  • PHP Manual
  • IMAP Funktionen
  • Bildet aus Realnamen, Postfach und Server eine korrekt formatierte Mail-Adresse

imap_rfc822_write_address

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_rfc822_write_address — Bildet aus Realnamen, Postfach und Server eine korrekt formatierte Mail-Adresse

Beschreibung

imap_rfc822_write_address ( string $mailbox , string $host , string $personal ) : string

imap_rfc822_write_address() bildet eine gemäß » RFC2822 formatierte Mail-Adresse aus den übergebenen Informationen.

Parameter-Liste

mailbox

Der Name des Postfachs, siehe imap_open() für weitere Informationen.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

host

Der Domain-Teil der Mailadresse.

personal

Der Realname des Besitzers des Postfachs.

Rückgabewerte

Gibt eine gemäß » RFC2822 formatierte Mailadresse als String zurück.

Beispiele

Beispiel #1 imap_rfc822_write_address() Beispiel

<?php
echo imap_rfc822_write_address("hartmut", "example.com", "Hartmut Holzgraefe");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hartmut Holzgraefe <hartmut@example.com>


Speichert einen bestimmten Body-Abschnitt einer Nachricht als Datei

  • « imap_rfc822_write_address
  • imap_scan »
  • PHP Manual
  • IMAP Funktionen
  • Speichert einen bestimmten Body-Abschnitt einer Nachricht als Datei

imap_savebody

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

imap_savebody — Speichert einen bestimmten Body-Abschnitt einer Nachricht als Datei

Beschreibung

imap_savebody ( resource $imap_stream , mixed $file , int $msg_number , string $part_number = "" , int $options = 0 ) : bool

Speichert einen Teil des Nachrichtenkörpers oder den gesamten Body der angegebenen Nachricht.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

file

Name der Zieldatei oder ein gültiger von fopen() zurückgegebener Dateideskriptor.

msg_number

Nachrichtennummer der gewünschten Nachricht

part_number

Nummer des gewünschten Nachrichtenteils gemäß der IMAP4 Spezifikation.

options

Eine Bitmaske aus einem oder mehrereren der folgenden Werte: A bitmask with one or more of the following:

  • FT_UID - Die msg_number ist eine UID
  • FT_PEEK - Das \Seen Flag wird nicht modifiziert
  • FT_INTERNAL - keine Zeilenendenmodifikation durchführen

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • imap_fetchbody() - Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht


Alias von imap_listscan

  • « imap_savebody
  • imap_scanmailbox »
  • PHP Manual
  • IMAP Funktionen
  • Alias von imap_listscan

imap_scan

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_scan — Alias von imap_listscan()

Beschreibung

Diese Funktion ist ein Alias für: imap_listscan().


Alias von imap_listscan

  • « imap_scan
  • imap_search »
  • PHP Manual
  • IMAP Funktionen
  • Alias von imap_listscan

imap_scanmailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_scanmailbox — Alias von imap_listscan()

Beschreibung

Diese Funktion ist ein Alias für: imap_listscan().


Liefert ein Array von Nachrichten, die den gegebenen Suchkriterien entsprechen

  • « imap_scanmailbox
  • imap_set_quota »
  • PHP Manual
  • IMAP Funktionen
  • Liefert ein Array von Nachrichten, die den gegebenen Suchkriterien entsprechen

imap_search

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_search — Liefert ein Array von Nachrichten, die den gegebenen Suchkriterien entsprechen

Beschreibung

imap_search ( resource $imap_stream , string $criteria , int $options = SE_FREE , string $charset = null ) : array

imap_search() durchsucht die Nachrichten des aktuellen Postfachs.

Der Suchstring um z.B. nach allen unbeantworteten Nachrichten von Mutter zu suchen wäre "UNANSWERED FROM Mutter". Die Suche unterscheidet nicht nach Groß- und Kleinschreibung. Die folgende Liste von Suchkriterien wurde aus dem Sourcecode des UW c-client erstellt, sie ist daher nicht unbedingt vollständig oder in allen Einzelheiten korrekt (siehe auch » RFC1176, Abschnitt "tag SEARCH search_criteria").

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

criteria

Eine aus mit Leerzeichen getrennten Schlüsselworten und Argumenten bestehende Zeichenkette. Argumente, die selbt Leerzeichen enthalten, müssen in doppelte Anführungszeichen gefasst werden (z.B. FROM "Hans Müller"). Es existieren folgende Schlüsselworte:

  • ALL - liefere alle Nachrichten, die den übrigen Kriterien entsprechen
  • ANSWERED - die gesuchten Nachrichten wurden beantwortet
  • BCC "text" - die gesuchten Nachrichten enthalten "text" im Bcc: Feld
  • BEFORE "datum" - die gesuchten Nachrichten wurden vor "datum" gesendet
  • BODY "text" - der Nachrichtenkörper enthält "text"
  • CC "text" - die gesuchten Nachrichten enthalten "text" im Cc: Feld
  • DELETED - die gesuchten Nachrichten sind zur Löschung vorgemerkt
  • FLAGGED - suche Nachrichten mit dem \\FLAGGED (manchmal auch als wichtig oder dringend bezeichnet) Flag
  • FROM "text" - sucht Nachrichten mit "text" im Absender (From:)
  • KEYWORD "text" - sucht Nachrichten mit Schlüsselwort "text"
  • NEW - die gesuchten Nachrichten sind neu
  • OLD - die gesuchten Nachrichten sind nicht neu
  • ON "datum" - die Nachrichten wurden am angegebenen "datum" gesendet
  • RECENT - sucht Nachrichten deren \\RECENT Flag nocht gesetzt ist
  • SEEN - sucht bereits gelesene Nachrichten (das \\SEEN Flag ist gesetzt)
  • SINCE "datum" - sucht nach "datum" gesendete Nachrichten
  • SUBJECT "text" - sucht Nachrichten mit "text" in der Betreffzeile
  • TEXT "text" - sucht Nachrichten deren Text "text" enthält
  • TO "text" - sucht Nachrichten mit "text" im Empfänger (To:)
  • UNANSWERED - sucht noch nicht beantwortete Nachrichten
  • UNDELETED - sucht nicht zum Löschen vorgemerkte Nachrichten
  • UNFLAGGED - sucht Nachrichten die nicht als wichtig markiert sind
  • UNKEYWORD "text" - sucht Nachrichten in deren Schlüsselwörtern "text" nicht enthalten ist
  • UNSEEN - sucht ungelesene Nachrichten

options

Der Parameter options kann auf SE_UID gesetzt werden, um UIDs statt Nachrichtennummern zurückzuerhalten.

charset

Der bei der Zeichenkettesuche zu verwendende MIME-Zeichensatz.

Rückgabewerte

Liefert ein Array mit Nachrichtennummern oder UIDs.

Wenn die Suchkriterien nicht verstanden, oder keine Nachrichten gefunden wurden, wird false zurückgegeben.

Beispiele

Beispiel #1 imap_search() Beispiel

<?php
$conn   = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);

$some   = imap_search($conn, 'SUBJECT "HOWTO be Awesome" SINCE "8 August 2008"', SE_UID);
$msgnos = imap_search($conn, 'ALL');
$uids   = imap_search($conn, 'ALL', SE_UID);

print_r($some);
print_r($msgnos);
print_r($uids);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => 4
    [1] => 6
    [2] => 11
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)
Array
(
    [0] => 1
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 11
    [5] => 12
)

Siehe auch

  • imap_listscan() - Listet Postfächer nach Suchkriterien


Setzt die Mengenbeschränkung für ein Postfach

  • « imap_search
  • imap_setacl »
  • PHP Manual
  • IMAP Funktionen
  • Setzt die Mengenbeschränkung für ein Postfach

imap_set_quota

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

imap_set_quota — Setzt die Mengenbeschränkung für ein Postfach

Beschreibung

imap_set_quota ( resource $imap_stream , string $quota_root , int $quota_limit ) : bool

Sets an upper limit quota on a per mailbox basis.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

quota_root

Das Postfach für das eine Mengenbeschränkung festgelegt werden soll. Dieses sollte dem IMAP-Standard für Postfächer folgen: user.name.

quota_limit

Maximale Größe des Postfachs quota_root in KB.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imap_set_quota() Beispiel

<?php
$mbox = imap_open("{imap.example.org:143}", "mailadmin", "password");

if (!imap_set_quota($mbox, "user.kalowsky", 3000)) {
    echo "Error in setting quota\n";
    return;
}

imap_close($mbox);
?>

Anmerkungen

Diese Funktion ist nur ab der Bibliotheksversion c-client2000 verfügbar

Die Serververbindung imap_stream muss von einem Benutzer mit Administratorrechten geöffnet worden sein, ansonsten schlägt die Funktion fehl.

Siehe auch

  • imap_open() - Öffnet einen IMAP-Stream zu einem Mailserver-Postfach
  • imap_get_quota() - Liefert Quota-Beschränkungen und Nutzungsstatistik der Postfächer


Setzen der ACL für ein Postfach

  • « imap_set_quota
  • imap_setflag_full »
  • PHP Manual
  • IMAP Funktionen
  • Setzen der ACL für ein Postfach

imap_setacl

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imap_setacl — Setzen der ACL für ein Postfach

Beschreibung

imap_setacl ( resource $imap_stream , string $mailbox , string $id , string $rights ) : bool

Setzt die Zugriffsrechte für ein Postfach.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

mailbox

Der Name des Postfachs, siehe imap_open() für nähere Informationen.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

id

Der Benutzer dessen Rechte geändert werden sollen.

rights

Die zu setzenden Rechte oder ein leerer String um alle Rechte zu entziehen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

This function is currently only available to users of the c-client2000 or greater library.

Siehe auch

  • imap_getacl() - Liste der Zugriffsrechte für ein Postfach bestimmen


Setzt Nachrichtenflags

  • « imap_setacl
  • imap_sort »
  • PHP Manual
  • IMAP Funktionen
  • Setzt Nachrichtenflags

imap_setflag_full

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_setflag_full — Setzt Nachrichtenflags

Beschreibung

imap_setflag_full ( resource $imap_stream , string $sequence , string $flag , int $options = NIL ) : bool

Setzt die mit flag angegebenen Flags bei allen Nachrichten aus der Liste sequence. sequence.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

sequence

Eine Liste von Nachrichtennummern. Sie können Nachrichten mit Komma getrennt aufzählen X,Y oder alle Nachrichten in einem bestimmten Interval mit X:Y auswählen.

flag

Die möglichen Flags, die gesetzt werden können, sind \Seen, \Answered, \Flagged, \Deleted und \Draft, wie in » RFC2060 definiert.

options

Eine Bitmaske mit Optionen, zur Zeit wird nur eine Option unterstützt:

  • ST_UID - Die Nachrichtenliste sequence enthält UIDs anstelle von Nachrichtennummern

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 imap_setflag_full()-Beispiel

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password")
     or die("can't connect: " . imap_last_error());

$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");

echo gettype($status) . "\n";
echo $status . "\n";

imap_close($mbox);
?>

Siehe auch

  • imap_clearflag_full() - Löscht Flags einer Nachricht


Sortiert Nachrichten eines Postfachs

  • « imap_setflag_full
  • imap_status »
  • PHP Manual
  • IMAP Funktionen
  • Sortiert Nachrichten eines Postfachs

imap_sort

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_sort — Sortiert Nachrichten eines Postfachs

Beschreibung

imap_sort ( resource $imap_stream , int $criteria , int $reverse , int $options = 0 , string $search_criteria = null , string $charset = null ) : array

Liefert eine gemäß den angegebenen Sortierkriterien sortierte Liste von Nachrichtennummern.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

criteria

Eines der folgenden Sortierkriterien:

  • SORTDATE - Sendedatum
  • SORTARRIVAL - Empfangsdatum
  • SORTFROM - Absender
  • SORTSUBJECT - Betreff
  • SORTTO - erster Empfänger
  • SORTCC - erster CC Empfänger
  • SORTSIZE - Größe der Nachricht in Bytes

reverse

Sortierung in umgekehrter Reihenfolge wenn true

options

Der Parameter options enthält eine Bitmaske mit folgenden möglichen Werten: following:

  • SE_UID - es werden UIDs an Stelle von Nachrichtennummern zurückgegeben
  • SE_NOPREFETCH - Nachrichten werden nicht auf Vorrat abgerufen

search_criteria

IMAP2-Format Suchkriterienzeichenkette. Details können imap_search() entnommen werden.

charset

Der zum Sortieren von Zeichenketten zu verwendende MIME-Zeichensatz.

Rückgabewerte

Liefert ein Array mit nach den angegebenen Sortierkriterien sortierten Nachrichtennummern.


Liefert Statusinformationen zum angegebenen Postfach

  • « imap_sort
  • imap_subscribe »
  • PHP Manual
  • IMAP Funktionen
  • Liefert Statusinformationen zum angegebenen Postfach

imap_status

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_status — Liefert Statusinformationen zum angegebenen Postfach

Beschreibung

imap_status ( resource $imap_stream , string $mailbox , int $options ) : object

Liefert Statusinformationen zum Postfach mailbox.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

mailbox

Der Postfachname, siehe imap_open() für weitere Informationen.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

options

Bitmaske mit folgenden möglichen Werten:

  • SA_MESSAGES - setzt $status->messages auf die Anzahl der Nachrichten im Postfach
  • SA_RECENT - setzt $status->recent auf die Anzahl kürzlich eingetroffener Nachrichten im Postfach
  • SA_UNSEEN - setzt $status->unseen auf die Anzahl ungelesener Nachrichten im Postfach
  • SA_UIDNEXT - setzt $status->uidnext auf die nächste diesem Postfach zugeteilte UID
  • SA_UIDVALIDITY - setzt $status->uidvalidity auf eine Konstante, die sich ändert, falls die UIDs im Postfach ihre Gültigkeit verloren haben könnten
  • SA_ALL - setzt alle Flags

Rückgabewerte

Die Funktion liefert ein Objekt mit Statusinformationen in den Properties messages, recent, unseen, uidnext und uidvalidity.

flags wird ebenfalls gesetzt und enthält eine Bitmaske mit der die tatsächlich gelieferten Informationen mit Hilfe der oben beschriebenen Konstanten geprüft werden können.

Beispiele

Beispiel #1 imap_status() Beispiel

<?php
$mbox = imap_open("{imap.example.com}", "username", "password", OP_HALFOPEN)
      or die("kann nicht verbinden: " . imap_last_error());

$status = imap_status($mbox, "{imap.example.org}INBOX", SA_ALL);
if ($status) {
  echo "Messages:   " . $status->messages    . "<br />\n";
  echo "Recent:     " . $status->recent      . "<br />\n";
  echo "Unseen:     " . $status->unseen      . "<br />\n";
  echo "UIDnext:    " . $status->uidnext     . "<br />\n";
  echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";
} else {
  echo "imap_status schlug fehl: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>


Abbonieren eines Postfachs

  • « imap_status
  • imap_thread »
  • PHP Manual
  • IMAP Funktionen
  • Abbonieren eines Postfachs

imap_subscribe

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_subscribe — Abbonieren eines Postfachs

Beschreibung

imap_subscribe ( resource $imap_stream , string $mailbox ) : bool

Abboniert ein neues Postfach.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

mailbox

Der Postfachname, siehe imap_open() für weitere Informationen.

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • imap_unsubscribe() - Abonnement eines Postfachs beenden


Liefert einen Baum zusammenhängender Nachrichten

  • « imap_subscribe
  • imap_timeout »
  • PHP Manual
  • IMAP Funktionen
  • Liefert einen Baum zusammenhängender Nachrichten

imap_thread

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imap_thread — Liefert einen Baum zusammenhängender Nachrichten

Beschreibung

imap_thread ( resource $imap_stream , int $options = SE_FREE ) : array

Liefert einen Baum von zusammenhängenden Nachrichten.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

options

Rückgabewerte

imap_thread() liefert ein assoziatives Array von Nachrichten die über REFERENCES verknüpft sind oder false bei Fehlern.

Jede Nachricht im aktuellen Postfach wird im zurückgegebenen Array durch drei Einträge repräsentiert:

  • $thread["XX.num"] - aktuelle Nachrichtennummer

  • $thread["XX.next"]

  • $thread["XX.branch"]

Beispiele

Beispiel #1 imap_thread() Example

<?php

// Ausgabe der verschiedenen Themenstränge einer Newsgroup in HTML

$nntp = imap_open('{news.example.com:119/nntp}some.newsgroup', '', '');
$threads = imap_thread($nntp);

foreach ($threads as $key => $val) {
  $tree = explode('.', $key);
  if ($tree[1] == 'num') {
    $header = imap_headerinfo($nntp, $val);
    echo "<ul>\n\t<li>" . $header->fromaddress . "\n";
  } elseif ($tree[1] == 'branch') {
    echo "\t</li>\n</ul>\n";
  }
}

imap_close($nntp);

?>


Imap Timeout setzen oder lesen

  • « imap_thread
  • imap_uid »
  • PHP Manual
  • IMAP Funktionen
  • Imap Timeout setzen oder lesen

imap_timeout

(PHP 4 >= 4.3.3, PHP 5, PHP 7, PHP 8)

imap_timeout — Imap Timeout setzen oder lesen

Beschreibung

imap_timeout ( int $timeout_type , int $timeout = -1 ) : mixed

Setzt oder liest Timeoutwerte für das IMAP Protokoll.

Parameter-Liste

timeout_type

Eine der folgenden Konstanten: IMAP_OPENTIMEOUT, IMAP_READTIMEOUT, IMAP_WRITETIMEOUT, oder IMAP_CLOSETIMEOUT.

timeout

Timeout in Sekunden.

Rückgabewerte

Wenn der timeout Parameter gesetzt ist liefert die Funktion true bei Erfolg, sonst false.

Wird kein timeout übergeben oder entspricht dessen Wert -1 so wird der aktuelle Timeoutwert für timeout_type als Integer zurückgegeben.

Beispiele

Beispiel #1 imap_timeout() Beispiel

<?php

echo "Das aktuelle Lese-Timeout ist " . imap_timeout(IMAP_READTIMEOUT) . "\n";

?>


Liefert die UID für die gegebene Nachrichtennummer

  • « imap_timeout
  • imap_undelete »
  • PHP Manual
  • IMAP Funktionen
  • Liefert die UID für die gegebene Nachrichtennummer

imap_uid

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_uid — Liefert die UID für die gegebene Nachrichtennummer

Beschreibung

imap_uid ( resource $imap_stream , int $msg_number ) : int

Diese Funktion liefert die UID für eine gegebene Nachrichtennummer. Eine UID ist ein eindeutiger Bezeichner für eine Nachricht der sich nicht mit der Zeit ändert während eine Nachrichtennummer sich bei jeder Veränderung des Postfachinhalts ändern kann.

Diese Funktion ist das Gegenstück zu imap_msgno().

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

msg_number

Die Nachrichtennummer.

Rückgabewerte

Die UID der gewünschten Nachricht.

Anmerkungen

Hinweis:

Diese Funktion wird bei POP3 Postfächern nicht unterstützt.

Siehe auch

  • imap_msgno() - Liefert die Nachrichtennummer für eine gegebene UID


Nimmt eine bereits gesetzte Löschmarkierung einer Nachricht zurück

  • « imap_uid
  • imap_unsubscribe »
  • PHP Manual
  • IMAP Funktionen
  • Nimmt eine bereits gesetzte Löschmarkierung einer Nachricht zurück

imap_undelete

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_undelete — Nimmt eine bereits gesetzte Löschmarkierung einer Nachricht zurück

Beschreibung

imap_undelete ( resource $imap_stream , int $msg_number , int $flags = 0 ) : bool

Entfernt das "gelöscht"-Flag der angegebenen Nachricht. Das Flag wird von den Funktionen imap_delete() oder imap_mail_move() gesetzt.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

msg_number

Die Nachrichtennummer

flags

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • imap_delete() - Nachrichten im aktuellen Postfach zur Löschung markieren
  • imap_mail_move() - Verschiebt Nachrichten in ein anderes Postfach


Abonnement eines Postfachs beenden

  • « imap_undelete
  • imap_utf7_decode »
  • PHP Manual
  • IMAP Funktionen
  • Abonnement eines Postfachs beenden

imap_unsubscribe

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_unsubscribe — Abonnement eines Postfachs beenden

Beschreibung

imap_unsubscribe ( resource $imap_stream , string $mailbox ) : bool

Das Abonnement des Postfachs mailbox beenden.

Parameter-Liste

imap

Eine von imap_open() zurückgegebene IMAP-Verbindung.

mailbox

Der Postfachname (mehr Informationen finden Sie unter imap_open()).

Warnung

Passing untrusted data to this parameter is insecure, unless imap.enable_insecure_rsh is disabled.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • imap_subscribe() - Abbonieren eines Postfachs


Dekodiert einem String im modifizierten UTF-7-Format

  • « imap_unsubscribe
  • imap_utf7_encode »
  • PHP Manual
  • IMAP Funktionen
  • Dekodiert einem String im modifizierten UTF-7-Format

imap_utf7_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_utf7_decode — Dekodiert einem String im modifizierten UTF-7-Format

Beschreibung

imap_utf7_decode ( string $text ) : string

Dekodiert den String text aus dem modifizierten UTF-7-Format in ISO-8859-1-kodierten Text.

Diese Funktion wird benötigt, um Mailboxnamen zu dekodieren, die Zeichen außerhalb des druckbaren ASCII-Bereichs enthalten.

Parameter-Liste

text

Ein String im modifizerten UTF-7-Format gemäß » RFC 2060, Abschnitt 5.1.3 (die ursprüngliche UTF-7 Definition finted sich in » RFC1642).

Rückgabewerte

Liefert einen ISO-8859-1-kodierten String oder false, wenn text ungültige modifizierte UTF-7-Sequenzen enthält oder Zeichen, die nicht Teil des ISO-8859-1-Zeichensatzes sind.

Siehe auch

  • imap_utf7_encode() - Kodiert ISO-8859-1 Text im modifizieren UTF-7-Format


Kodiert ISO-8859-1 Text im modifizieren UTF-7-Format

  • « imap_utf7_decode
  • imap_utf8_to_mutf7 »
  • PHP Manual
  • IMAP Funktionen
  • Kodiert ISO-8859-1 Text im modifizieren UTF-7-Format

imap_utf7_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_utf7_encode — Kodiert ISO-8859-1 Text im modifizieren UTF-7-Format

Beschreibung

imap_utf7_encode ( string $data ) : string

Konvertiert den in data übergebenen Text in das modifizierte UTF-7-Format.

Diese Funktion wird benötigt, um Mailboxnamen zu kodieren, die außerhalb des druckbaren ASCII-Bereichs liegen.

Parameter-Liste

data

Ein ISO-8859-1-String.

Rückgabewerte

Liefert data kodiert im modifizierten UTF-7-Format wie in » RFC 2060, Abschnitt 5.1.3 definiert (die ursprüngliche UTF-7-Kodierung ist in » RFC1642 definiert).

Siehe auch

  • imap_utf7_decode() - Dekodiert einem String im modifizierten UTF-7-Format


Encode a UTF-8 string to modified UTF-7

  • « imap_utf7_encode
  • imap_utf8 »
  • PHP Manual
  • IMAP Funktionen
  • Encode a UTF-8 string to modified UTF-7

imap_utf8_to_mutf7

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

imap_utf8_to_mutf7 — Encode a UTF-8 string to modified UTF-7

Beschreibung

imap_utf8_to_mutf7 ( string $string ) : string|false

Encode a UTF-8 string to modified UTF-7 (as specified in RFC 2060, section 5.1.3).

Hinweis:

This function is only available, if libcclient exports utf8_to_mutf7().

Parameter-Liste

string

A UTF-8 encoded string.

Rückgabewerte

Returns string converted to modified UTF-7, Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • imap_mutf7_to_utf8() - Decode a modified UTF-7 string to UTF-8


Konvertiert Text zu UTF8

  • « imap_utf8_to_mutf7
  • Mail »
  • PHP Manual
  • IMAP Funktionen
  • Konvertiert Text zu UTF8

imap_utf8

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_utf8 — Konvertiert Text zu UTF8

Beschreibung

imap_utf8 ( string $mime_encoded_text ) : string

Konvertiert den übergebenen String in das UTF8-Format, wenn libc-client der deklarierte Zeichensatz bekannt ist. Andernfalls wird der übergebene Text dekodiert, aber nicht nach UTF-8 konvertiert.

Parameter-Liste

mime_encoded_text

Ein MIME-codierter String. MIME codierung und die UTF-8 Spezifikation finden sich unter » RFC2047 und » RFC2044.

Rückgabewerte

Gibt den dekodierten String zurück, wenn möglich nach UTF-8 konvertiert.

Beispiele

Beispiel #1 Grundlegende imap_utf8() Verwendung

<?php
echo imap_utf8("Johannes =?ISO-8859-1?Q?Schl=FCter?=");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Johannes Schlu¨ter

Siehe auch

  • imap_mime_header_decode() - Dekodiert MIME-kodierte Headerzeilen


Mail

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Mail-Funktionen
    • ezmlm_hash — Berechnet den Hash-Wert, der von EZMLM benötigt wird
    • mail — Sendet eine E-Mail


  • « Mail
  • Installation/Konfiguration »
  • PHP Manual
  • Mail
  • Einführung

Einführung

Die mail()-Funktion ermöglicht das Senden von E-Mails.


Anforderungen

PHP muss während des Kompilierens Zugriff auf die Binärversion von sendmail auf Ihrem Rechner haben. Falls Sie ein anderes Mail-Programm, wie z.B. qmail oder postfix, benutzen, müssen Sie dafür sorgen, dass Sie den passenden, mitgelieferten sendmail-Wrapper verwenden. PHP sucht nach sendmail zunächst im System-PATH und anschließend hier: /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. Wir empfehlen, dass sendmail auf Ihrem Rechner im PATH verfügbar ist. Der Benutzer, der PHP kompiliert hat, muss die Berechtigung haben, auf die Binärversion von sendmail zuzugreifen.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Mail-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
mail.add_x_header | "0" | PHP_INI_PERDIR | Verfügbar seit PHP 5.3.0.
mail.log | NULL | PHP_INI_PERDIR | Verfügbar seit PHP 5.3.0. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
mail.force_extra_parameters | NULL | PHP_INI_PERDIR | Verfügbar seit PHP 5.0.0. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL |
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | PHP_INI_SYSTEM |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

mail.add_x_header bool

Fügt den X-PHP-Originating-Script-Header hinzu, der die UID des Skripts gefolgt vom Dateinamen enthält.

mail.log string

Der Pfad zur Log-Datei, in der mail()-Aufrufe geloggt werden. Die Log-Einträge enthalten den vollen Pfad des Skripts, die Zeilennummer, die To-Adresse und alle Header.

mail.force_extra_parameters string

Erzwingt das Hinzufügen der angegebenen Parameter als extra Parameter an das sendmail-Binary. Diese Parameter ersetzen immer den Wert für den fünften Parameter der Funktion mail(), auch im Safe-Mode.

SMTP string

Wird nur unter Windows verwendet: Der Hostname oder die IP-Adresse des SMTP-Servers, den PHP für Mails verwenden soll, die mit der Funktion mail() verschickt werden.

smtp_port int

Wird nur unter Windows benutzt: Die Nummer des Ports des Servers (angegeben in der SMTP-Option), um eine Verbindung herzustellen, wenn eine Mail mit der Funktion mail() verschickt wird. Standardwert ist 25.

sendmail_from string

Die "From:"-Mail-Adresse, die in Mails verwendet werden soll, die direkt über SMTP gesendet werden (nur unter Windows). Diese Direktive setzt auch den "Return-Path:"-Header.

sendmail_path string

Der Pfad, in dem sich das sendmail-Programm befindet, z.B. /usr/sbin/sendmail oder /usr/lib/sendmail. configure versucht, die richtige Position automatisch zu finden. Falls die automatische Erkennung aber fehlschlägt und der Standardwert auf Ihrem Rechner falsch ist, dann können Sie hier den richtigen Pfad angeben.

Falls Sie auf Ihrem Rechner sendmail nicht verwenden, müssen Sie den Pfad angeben, in dem sich der sendmail-Wrapper/-Ersatz befindet, sofern vorhanden. Zum Beispiel können » Qmail-Benutzer diese Option auf /var/qmail/bin/sendmail oder /var/qmail/bin/qmail-inject setzen.

qmail-inject benötigt keine Optionen, um Mails korrekt zu verarbeiten.

Diese Option funktioniert auch unter Windows. Wenn Sie gesetzt ist, werden smtp, smtp_port und sendmail_from ignoriert und das angegebene Kommando wird ausgeführt.


  • « Ressource-Typen
  • Mail-Funktionen »
  • PHP Manual
  • Mail
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Mail-Funktionen

Inhaltsverzeichnis

  • ezmlm_hash — Berechnet den Hash-Wert, der von EZMLM benötigt wird
  • mail — Sendet eine E-Mail


Berechnet den Hash-Wert, der von EZMLM benötigt wird

  • « Mail-Funktionen
  • mail »
  • PHP Manual
  • Mail-Funktionen
  • Berechnet den Hash-Wert, der von EZMLM benötigt wird

ezmlm_hash

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ezmlm_hash — Berechnet den Hash-Wert, der von EZMLM benötigt wird

Warnung

Diese Funktion ist seit PHP 7.4.0 VERALTET und seit PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

ezmlm_hash ( string $addr ) : int

ezmlm_hash() berechnet den Hash-Wert, der benötigt wird, wenn EZMLM-Mailinglisten in einer MySQL-Datenbank gespeichert werden.

Parameter-Liste

addr

Die E-Mail-Adresse, die gehasht werden soll.

Rückgabewerte

Der Hash-Wert von addr.

Beispiele

Beispiel #1 Hash-Wert berechnen und einen Benutzer hinzufügen

<?php

$user = "joecool@example.com";
$hash = ezmlm_hash($user);
$query = sprintf("INSERT INTO beispiel VALUES (%s, '%s')", $hash, $user);
$db->query($query);  // die PHPLIB-DB-Klasse wird benutzt

?>


Sendet eine E-Mail

  • « ezmlm_hash
  • Mailparse »
  • PHP Manual
  • Mail-Funktionen
  • Sendet eine E-Mail

mail

(PHP 4, PHP 5, PHP 7, PHP 8)

mail — Sendet eine E-Mail

Beschreibung

mail ( string $to , string $subject , string $message , array|string $additional_headers = [] , string $additional_params = "" ) : bool

Sendet eine E-Mail.

Parameter-Liste

to

Ein oder mehrere Empfänger der E-Mail.

Die Formatierung dieser Zeichenkette muss nach » RFC 2822 erfolgen. Beispiele:

  • benutzer@example.com
  • benutzer@example.com, benutzer2@example.com
  • Name <benutzer@example.com>
  • Name <benutzer@example.com>, Name2 <benutzer2@example.com>

subject

Der Betreff der E-Mail.

Achtung

Die Formatierung dieser Zeichenkette muss nach » RFC 2047 erfolgen.

message

Die zu sendende Nachricht.

Jede Zeile muss durch CRLF (\r\n) getrennt werden. Außerdem sollten die Zeilen nicht mehr als 70 Zeichen enthalten.

Achtung

(Nur unter Windows) Falls PHP direkt mit einem SMTP-Server kommuniziert und wenn ein Punkt (.) an einem Zeilenanfang steht, wird dieser Punkt entfernt. Um das zu verhindern, können Sie diese Punkte durch zwei Punkte ersetzen.

<?php
$text = str_replace("\n.", "\n..", $text);
?>

additional_headers (optional)

string oder array, das am Ende des E-Mail-Headers eingefügt werden soll.

Dies kann benutzt werden, um zusätzliche Header wie From, Cc oder Bcc anzugeben. Falls mehrere solcher zusätzlichen Header angegeben werden sollen, müssen diese durch ein CRLF-Zeichen (\r\n) getrennt werden. Wenn von außen kommende Daten verwendet werden, um diesen Header zusammenzustellen, sollten diese Daten bereinigt werden, so dass keine ungewünschten Header eingeschleust werden können.

Wird ein array übergeben, werden dessen Schlüssel als Header-Namen, und dessen Werte als entsprechende Header-Werte interpretiert.

Hinweis:

Vor PHP 5.4.42 bzw. 5.5.27 bot additional_headers noch keinen Schutz vor Mail-Header-Injection. Daher müssen Anwender sicherstellen, dass die angegeben Header sicher sind und wirklich nur Header enthalten. Unter anderem ist darauf zu achten, dass mehrere aufeinanderfolgende Zeilenumbrüche den E-Mail-Header beenden.

Hinweis:

Um eine E-Mail zu senden, muss die E-Mail einen From-Header enthalten. Dies kann entweder durch Setzen eines additional_headers-Parameters oder durch Setzen eines Standardwertes in der php.ini geschehen.

Falls dies nicht geschieht, wird eine Fehlermeldung ähnlich wie Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing ausgegeben. Der From-Header setzt unter Windows auch den Return-Path-Header.

Hinweis:

Wenn E-Mails nicht ankommen, versuchen Sie bitte, nur das LF-Zeichen (\n) zu verwenden. Einige UNIX-MTAs (Mail Transfer Agents) (ganz besonders » qmail) ersetzen leider LF durch CRLF (\r\n) automatisch (wodurch das CR-Zeichen verdoppelt wird, wenn CRLF verwendet wird). Dies sollte aber nur in Ausnahmefällen geschehen, da es gegen » RFC 2822 verstößt.

additional_params (optional)

Der Parameter additional_params kann verwendet werden, um zusätzliche Parameter an das Programm zu senden, das für den E-Mail-Versand konfiguriert ist (wenn die sendmail_path-Einstellung verwendet wird). Zum Beispiel kann hiermit die Envelope Sender Address (Umschlag-Absenderadresse) gesetzt werden, wenn sendmail mit der -f-Option verwendet wird.

Dieser Parameter wird intern durch escapeshellcmd() maskiert, um die Kommando-Injection zu verhindern. escapeshellcmd() verhindert die Kommando-Injection, erlaubt aber, zusätzliche Parameter hinzuzufügen. Aus Sicherheitsgründen wird empfohlen, dass dieser Parameter bereinigt wird, um zu verhindern, dass keine unerwünschten Parameter an das Shell-Kommando übergeben werden.

Da escapeshellcmd() automatisch angewendet wird, können einige Zeichen, die gemäß Internet-RFCs in E-Mail-Adressen erlaubt sind, nicht verwendet werden. mail() kann solche Zeichen nicht erlauben, so dass für Programme, die diese Zeichen unterstützen müssen, alternative Methoden für den E-Mail-Versand (wie beispielsweise die Verwendung eines Frameworks oder einer Bibliothek) empfohlen werden.

Der Benutzer, unter dem der Webserver läuft, sollte als vertrauenswürdiger Benutzer in der sendmail-Konfiguration eingetragen werden, um zu verhindern, dass ein 'X-Warning'-Header zu den E-Mails hingefügt wird, wenn mit dieser Methode (-f) der Absender gesetzt wird. Sendmail-Benutzer finden diese Datei hier: /etc/mail/trusted-users.

Rückgabewerte

Gibt true zurück, wenn die E-Mail erfolgreich für den Versand akzeptiert wurde, sonst false.

Dass eine E-Mail für den Versand akzeptiert wurde, bedeutet NICHT, dass sie auch wirklich den gewünschten Empfänger erreichen wird.

Changelog

Version | Beschreibung
7.2.0 | Der additional_headers Parameter akzeptiert nun ebenfalls ein array.

Beispiele

Beispiel #1 Verschicken einer E-Mail

mail() wird benutzt, um eine einfache E-Mail zu versenden:

<?php
// Die Nachricht
$nachricht = "Zeile 1\r\nZeile 2\r\nZeile 3";

// Falls eine Zeile der Nachricht mehr als 70 Zeichen enthälten könnte,
// sollte wordwrap() benutzt werden
$nachricht = wordwrap($nachricht, 70, "\r\n");

// Verschicken
mail('benutzer@example.com', 'Mein Betreff', $nachricht);
?>

Beispiel #2 Verschicken einer E-Mail mit zusätzlichen Headern

Hier werden einfache Header gesetzt, um dem MUA (Mail User Agent, z.B. ein E-Mail-Programm) die From- und die Reply-To-Adressen mitzuteilen:

<?php
$empfaenger = 'niemand@example.com';
$betreff = 'Der Betreff';
$nachricht = 'Hallo';
$header = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($empfaenger, $betreff, $nachricht, $header);
?>

Beispiel #3 Verschicken einer E-Mail mit zusätzliche Headern als Array

Dieses Beispiel verschickt die selbe E-Mail wie das Beispiel direkt darüber, aber diesemal werden die zusätzlichen Header als Array übergeben (verfügbar von PHP 7.2.0 an).

<?php
$empfaenger = 'niemand@example.com';
$betreff = 'Der Betreff';
$nachricht = 'Hallo';
$header = array(
    'From' => 'webmaster@example.com',
    'Reply-To' => 'webmaster@example.com',
    'X-Mailer' => 'PHP/' . phpversion()
);

mail($empfaenger, $betreff, $nachricht, $header);
?>

Beispiel #4 Verschicken einer E-Mail mit einem zusätzlichen Kommandozeilen-Parameter

Der Parameter additional_params kann verwendet werden, um einen zusätzlichen Parameter an das über sendmail_path konfigurierte Programm zu senden.

<?php
mail('niemand@example.com', 'Betreff', 'Nachricht', null,
   '-fwebmaster@example.com');
?>

Beispiel #5 Verschicken einer HTML-E-Mail.

Auch HTML-E-Mails können mit mail() versendet werden.

<?php
// mehrere Empfänger
$empfaenger  = 'max@example.com, moritz@example.com'; // beachte das Komma

// Betreff
$betreff = 'Geburtstags-Erinnerungen für August';

// Nachricht
$nachricht = '
<html>
<head>
  <title>Geburtstags-Erinnerungen für August</title>
</head>
<body>
  <p>Hier sind die Geburtstage im August:</p>
  <table>
    <tr>
      <th>Person</th><th>Tag</th><th>Monat</th><th>Jahr</th>
    </tr>
    <tr>
      <td>Max</td><td>3.</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Moritz</td><td>17.</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
';

// für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
$header[] = 'MIME-Version: 1.0';
$header[] = 'Content-type: text/html; charset=iso-8859-1';

// zusätzliche Header
$header[] = 'To: Simone <simone@example.com>, Andreas <andreas@example.com>';
$header[] = 'From: Geburtstags-Erinnerungen <geburtstag@example.com>';
$header[] = 'Cc: geburtstagsarchiv@example.com';
$header[] = 'Bcc: geburtstagscheck@example.com';

// verschicke die E-Mail
mail($empfaenger, $betreff, $nachricht, implode("\r\n", $header));
?>

Hinweis:

Wenn HTML- oder anderweitig komplexe E-Mails versendet werden sollen, ist es empfehlenswert, das PEAR-Paket » PEAR::Mail_Mime zu verwenden.

Anmerkungen

Hinweis:

Die SMTP-Implementierung (nur unter Windows) von mail() unterscheidet sich auf mehrere Arten von der Unix-Implementierung. Zum einen verwendet sie kein lokales Programm, um die Mails zu erstellen, sondern arbeitet auf Sockets. D.h., es wird ein MTA benötigt wird, der auf einem Netzwerk-Socket lauscht (entweder auf dem eigenen oder einem entfernten Rechner).

Zum anderen, werden die benutzerdefinierten Header wie From:, Cc:, Bcc: und Date: nicht direkt durch den MTA interpretiert, sondern zunächst von PHP geparst.

Daher sollte der Parameter to keine Adresse der Form "Irgendwas <irgendwer@example.com>" enthalten, da dies von PHP möglicherweise nicht korrekt an den MTA übergeben werden kann.

Hinweis:

Es ist zu beachten, dass die Funktion mail() nicht dazu geeignet ist, große Mengen von E-Mails in einer Schleife zu senden, da die Funktion für jede E-Mail einen SMTP-Socket öffnet und schließt, was nicht sehr effizient ist.

Um große Mengen von E-Mails zu senden, können die PEAR-Pakete » PEAR::Mail und » PEAR::Mail_Queue verwendet werden.

Hinweis:

Die folgenden RFCs könnten nützlich für Sie sein: » RFC 1896, » RFC 2045, » RFC 2046, » RFC 2047, » RFC 2048, » RFC 2049 und » RFC 2822.

Siehe auch

  • mb_send_mail() - Send encoded mail
  • imap_mail() - Sendet eine Email Nachricht
  • » PEAR::Mail
  • » PEAR::Mail_Mime


Mailparse

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Mailparse Funktionen
    • mailparse_determine_best_xfer_encoding — Gets the best way of encoding
    • mailparse_msg_create — Create a mime mail resource
    • mailparse_msg_extract_part_file — Extracts/decodes a message section
    • mailparse_msg_extract_part — Extracts/decodes a message section
    • mailparse_msg_extract_whole_part_file — Extracts a message section including headers without decoding the transfer encoding
    • mailparse_msg_free — Frees a MIME resource
    • mailparse_msg_get_part_data — Returns an associative array of info about the message
    • mailparse_msg_get_part — Returns a handle on a given section in a mimemessage
    • mailparse_msg_get_structure — Returns an array of mime section names in the supplied message
    • mailparse_msg_parse_file — Parses a file
    • mailparse_msg_parse — Incrementally parse data into buffer
    • mailparse_rfc822_parse_addresses — Parse RFC 822 compliant addresses
    • mailparse_stream_encode — Streams data from source file pointer, apply encoding and write to destfp
    • mailparse_uudecode_all — Scans the data from fp and extract each embedded uuencoded file


Einführung

Mailparse is an extension for parsing and working with email messages. It can deal with » RFC 822 and » RFC 2045 (MIME) compliant messages.

Mailparse is stream based, which means that it does not keep in-memory copies of the files it processes - so it is very resource efficient when dealing with large messages.

Hinweis:

Mailparse requires the mbstring extension, and mbstring must be loaded before mailparse.


Installation

Diese » PECL-Extension ist nicht Teil von PHP. Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/mailparse.

In order to use these functions you must compile PHP with mailparse support by using the --enable-mailparse configure option.

Windows users will enable php_mailparse.dll inside of php.ini in order to use these functions. Windows binaries (DLL files) for this PECL extension are available from the PECL website.

It is necessary that the mbstring extension is loaded before mailparse.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

MAILPARSE_EXTRACT_OUTPUT (int)
MAILPARSE_EXTRACT_STREAM (int)
MAILPARSE_EXTRACT_RETURN (int)


Mailparse Funktionen

Inhaltsverzeichnis

  • mailparse_determine_best_xfer_encoding — Gets the best way of encoding
  • mailparse_msg_create — Create a mime mail resource
  • mailparse_msg_extract_part_file — Extracts/decodes a message section
  • mailparse_msg_extract_part — Extracts/decodes a message section
  • mailparse_msg_extract_whole_part_file — Extracts a message section including headers without decoding the transfer encoding
  • mailparse_msg_free — Frees a MIME resource
  • mailparse_msg_get_part_data — Returns an associative array of info about the message
  • mailparse_msg_get_part — Returns a handle on a given section in a mimemessage
  • mailparse_msg_get_structure — Returns an array of mime section names in the supplied message
  • mailparse_msg_parse_file — Parses a file
  • mailparse_msg_parse — Incrementally parse data into buffer
  • mailparse_rfc822_parse_addresses — Parse RFC 822 compliant addresses
  • mailparse_stream_encode — Streams data from source file pointer, apply encoding and write to destfp
  • mailparse_uudecode_all — Scans the data from fp and extract each embedded uuencoded file


Gets the best way of encoding

  • « Mailparse Funktionen
  • mailparse_msg_create »
  • PHP Manual
  • Mailparse Funktionen
  • Gets the best way of encoding

mailparse_determine_best_xfer_encoding

(PECL mailparse >= 0.9.0)

mailparse_determine_best_xfer_encoding — Gets the best way of encoding

Beschreibung

mailparse_determine_best_xfer_encoding ( resource $fp ) : string

Figures out the best way of encoding the content read from the given file pointer.

Parameter-Liste

fp

A valid file pointer, which must be seek-able.

Rückgabewerte

Returns one of the character encodings supported by the mbstring module.

Beispiele

Beispiel #1 mailparse_determine_best_xfer_encoding() example

<?php

$fp = fopen('somemail.eml', 'r');
echo 'Best encoding: ' . mailparse_determine_best_xfer_encoding($fp);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Best encoding: 7bit


Create a mime mail resource

  • « mailparse_determine_best_xfer_encoding
  • mailparse_msg_extract_part_file »
  • PHP Manual
  • Mailparse Funktionen
  • Create a mime mail resource

mailparse_msg_create

(PECL mailparse >= 0.9.0)

mailparse_msg_create — Create a mime mail resource

Beschreibung

mailparse_msg_create ( ) : resource

Create a MIME mail resource.

Rückgabewerte

Returns a handle that can be used to parse a message.

Siehe auch

  • mailparse_msg_free() - Frees a MIME resource
  • mailparse_msg_parse_file() - Parses a file


Extracts/decodes a message section

  • « mailparse_msg_create
  • mailparse_msg_extract_part »
  • PHP Manual
  • Mailparse Funktionen
  • Extracts/decodes a message section

mailparse_msg_extract_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part_file — Extracts/decodes a message section

Beschreibung

mailparse_msg_extract_part_file ( resource $mimemail , mixed $filename , callable $callbackfunc = ? ) : string

Extracts/decodes a message section from the supplied filename.

The contents of the section will be decoded according to their transfer encoding - base64, quoted-printable and uuencoded text are supported.

Parameter-Liste

mimemail

A valid MIME resource, created with mailparse_msg_create().

filename

Can be a file name or a valid stream resource.

callbackfunc

If set, this must be either a valid callback that will be passed the extracted section, or null to make this function return the extracted section.

If not specified, the contents will be sent to "stdout".

Rückgabewerte

If callbackfunc is not null returns true on success.

If callbackfunc is set to null, returns the extracted section as a string.

Returns false on error.

Siehe auch

  • mailparse_msg_extract_part() - Extracts/decodes a message section
  • mailparse_msg_extract_whole_part_file() - Extracts a message section including headers without decoding the transfer encoding


Extracts/decodes a message section

  • « mailparse_msg_extract_part_file
  • mailparse_msg_extract_whole_part_file »
  • PHP Manual
  • Mailparse Funktionen
  • Extracts/decodes a message section

mailparse_msg_extract_part

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part — Extracts/decodes a message section

Beschreibung

mailparse_msg_extract_part ( resource $mimemail , string $msgbody , callable $callbackfunc = ? ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

mimemail

A valid MIME resource.

msgbody

callbackfunc

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • mailparse_msg_extract_part_file() - Extracts/decodes a message section
  • mailparse_msg_extract_whole_part_file() - Extracts a message section including headers without decoding the transfer encoding


Extracts a message section including headers without decoding the transfer encoding

  • « mailparse_msg_extract_part
  • mailparse_msg_free »
  • PHP Manual
  • Mailparse Funktionen
  • Extracts a message section including headers without decoding the transfer encoding

mailparse_msg_extract_whole_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_whole_part_file — Extracts a message section including headers without decoding the transfer encoding

Beschreibung

mailparse_msg_extract_whole_part_file ( resource $mimemail , string $filename , callable $callbackfunc = ? ) : string
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

mimemail

A valid MIME resource.

filename

callbackfunc

Rückgabewerte

Siehe auch

  • mailparse_msg_extract_part() - Extracts/decodes a message section
  • mailparse_msg_extract_part_file() - Extracts/decodes a message section


Frees a MIME resource

  • « mailparse_msg_extract_whole_part_file
  • mailparse_msg_get_part_data »
  • PHP Manual
  • Mailparse Funktionen
  • Frees a MIME resource

mailparse_msg_free

(PECL mailparse >= 0.9.0)

mailparse_msg_free — Frees a MIME resource

Beschreibung

mailparse_msg_free ( resource $mimemail ) : bool

Frees a MIME resource.

Parameter-Liste

mimemail

A valid MIME resource allocated by mailparse_msg_create() or mailparse_msg_parse_file().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • mailparse_msg_create() - Create a mime mail resource
  • mailparse_msg_parse_file() - Parses a file


Returns an associative array of info about the message

  • « mailparse_msg_free
  • mailparse_msg_get_part »
  • PHP Manual
  • Mailparse Funktionen
  • Returns an associative array of info about the message

mailparse_msg_get_part_data

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part_data — Returns an associative array of info about the message

Beschreibung

mailparse_msg_get_part_data ( resource $mimemail ) : array
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

mimemail

A valid MIME resource.


Returns a handle on a given section in a mimemessage

  • « mailparse_msg_get_part_data
  • mailparse_msg_get_structure »
  • PHP Manual
  • Mailparse Funktionen
  • Returns a handle on a given section in a mimemessage

mailparse_msg_get_part

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part — Returns a handle on a given section in a mimemessage

Beschreibung

mailparse_msg_get_part ( resource $mimemail , string $mimesection ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

mimemail

A valid MIME resource.

mimesection


Returns an array of mime section names in the supplied message

  • « mailparse_msg_get_part
  • mailparse_msg_parse_file »
  • PHP Manual
  • Mailparse Funktionen
  • Returns an array of mime section names in the supplied message

mailparse_msg_get_structure

(PECL mailparse >= 0.9.0)

mailparse_msg_get_structure — Returns an array of mime section names in the supplied message

Beschreibung

mailparse_msg_get_structure ( resource $mimemail ) : array
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

mimemail

A valid MIME resource.


Parses a file

  • « mailparse_msg_get_structure
  • mailparse_msg_parse »
  • PHP Manual
  • Mailparse Funktionen
  • Parses a file

mailparse_msg_parse_file

(PECL mailparse >= 0.9.0)

mailparse_msg_parse_file — Parses a file

Beschreibung

mailparse_msg_parse_file ( string $filename ) : resource

Parses a file. This is the optimal way of parsing a mail file that you have on disk.

Parameter-Liste

filename

Path to the file holding the message. The file is opened and streamed through the parser.

Hinweis:

The message contained in filename is supposed to end with a newline (CRLF); otherwise the last line of the message will not be parsed.

Rückgabewerte

Returns a MIME resource representing the structure, or false on error.

Siehe auch

  • mailparse_msg_free() - Frees a MIME resource
  • mailparse_msg_create() - Create a mime mail resource


Incrementally parse data into buffer

  • « mailparse_msg_parse_file
  • mailparse_rfc822_parse_addresses »
  • PHP Manual
  • Mailparse Funktionen
  • Incrementally parse data into buffer

mailparse_msg_parse

(PECL mailparse >= 0.9.0)

mailparse_msg_parse — Incrementally parse data into buffer

Beschreibung

mailparse_msg_parse ( resource $mimemail , string $data ) : bool

Incrementally parse data into the supplied mime mail resource.

This function allow you to stream portions of a file at a time, rather than read and parse the whole thing.

Parameter-Liste

mimemail

A valid MIME resource.

data

Hinweis:

The final chunk of data is supposed to end with a newline (CRLF); otherwise the last line of the message will not be parsed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Parse RFC 822 compliant addresses

  • « mailparse_msg_parse
  • mailparse_stream_encode »
  • PHP Manual
  • Mailparse Funktionen
  • Parse RFC 822 compliant addresses

mailparse_rfc822_parse_addresses

(PECL mailparse >= 0.9.0)

mailparse_rfc822_parse_addresses — Parse RFC 822 compliant addresses

Beschreibung

mailparse_rfc822_parse_addresses ( string $addresses ) : array

Parses a » RFC 822 compliant recipient list, such as that found in the To: header.

Parameter-Liste

addresses

A string containing addresses, like in: Wez Furlong <wez@example.com>, doe@example.com

Hinweis:

This string must not include the header name.

Rückgabewerte

Returns an array of associative arrays with the following keys for each recipient:

display | The recipient name, for display purpose. If this part is not set for a recipient, this key will hold the same value as address.
address | The email address
is_group | true if the recipient is a newsgroup, false otherwise.

Beispiele

Beispiel #1 mailparse_rfc822_parse_addresses() example

<?php

$to = 'Wez Furlong <wez@example.com>, doe@example.com';
var_dump(mailparse_rfc822_parse_addresses($to));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  array(3) {
    ["display"]=>
    string(11) "Wez Furlong"
    ["address"]=>
    string(15) "wez@example.com"
    ["is_group"]=>
    bool(false)
  }
  [1]=>
  array(3) {
    ["display"]=>
    string(15) "doe@example.com"
    ["address"]=>
    string(15) "doe@example.com"
    ["is_group"]=>
    bool(false)
  }
}


Streams data from source file pointer, apply encoding and write to destfp

  • « mailparse_rfc822_parse_addresses
  • mailparse_uudecode_all »
  • PHP Manual
  • Mailparse Funktionen
  • Streams data from source file pointer, apply encoding and write to destfp

mailparse_stream_encode

(PECL mailparse >= 0.9.0)

mailparse_stream_encode — Streams data from source file pointer, apply encoding and write to destfp

Beschreibung

mailparse_stream_encode ( resource $sourcefp , resource $destfp , string $encoding ) : bool

Streams data from the source file pointer, apply encoding and write to the destination file pointer.

Parameter-Liste

sourcefp

A valid file handle. The file is streamed through the parser.

destfp

The destination file handle in which the encoded data will be written.

encoding

One of the character encodings supported by the mbstring module.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 mailparse_stream_encode() example

<?php

// email.eml contents: hello, this is some text=hello.
$fp = fopen('email.eml', 'r');

$dest = tmpfile();

mailparse_stream_encode($fp, $dest, "quoted-printable");

rewind($dest);

// Display new file contents
fpassthru($dest);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

hello, this is some text=3Dhello.


Scans the data from fp and extract each embedded uuencoded file

  • « mailparse_stream_encode
  • Mathematische Erweiterungen »
  • PHP Manual
  • Mailparse Funktionen
  • Scans the data from fp and extract each embedded uuencoded file

mailparse_uudecode_all

(PECL mailparse >= 0.9.0)

mailparse_uudecode_all — Scans the data from fp and extract each embedded uuencoded file

Beschreibung

mailparse_uudecode_all ( resource $fp ) : array

Scans the data from the given file pointer and extract each embedded uuencoded file into a temporary file.

Parameter-Liste

fp

A valid file pointer.

Rückgabewerte

Returns an array of associative arrays listing filename information.

filename | Path to the temporary file name created
origfilename | The original filename, for uuencoded parts only
The first filename entry is the message body. The next entries are the decoded uuencoded files.

Beispiele

Beispiel #1 mailparse_uudecode_all() example

<?php

$text = <<<EOD
To: fred@example.com

hello, this is some text hello.
blah blah blah.

begin 644 test.txt
/=&AI<R!I<R!A('1E<W0*
`
end

EOD;

$fp = tmpfile();
fwrite($fp, $text);

$data = mailparse_uudecode_all($fp);

echo "BODY\n";
readfile($data[0]["filename"]);
echo "UUE ({$data[1]['origfilename']})\n";
readfile($data[1]["filename"]);

// Clean up
unlink($data[0]["filename"]);
unlink($data[1]["filename"]);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

BODY
To: fred@example.com

hello, this is some text hello.
blah blah blah.

UUE (test.txt)
this is a test


Mathematische Erweiterungen

  • BC Math — BCMath Rechnen mit beliebiger Genauigkeit
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • BC Math Funktionen
  • GMP — GNU Multiple Precision
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • GMP Funktionen
    • GMP — The GMP class
  • Math — Mathematische Funktionen
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Mathematische Funktionen
  • Statistics
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Statistic Funktionen
  • Trader — Technical Analysis for Traders
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Trader Funktionen


BCMath Rechnen mit beliebiger Genauigkeit

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • BC Math Funktionen
    • 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 einer Zahl beliebiger Genauigkeit
    • bcpowmod — Potenz einer Zahl beliebiger Genauigkeit, vermindert um ein angegebenen Modulo
    • bcscale — Setzt oder holt die Genauigkeit aller BCmath-Funktionen
    • bcsqrt — Ermittelt die Quadratwurzel einer Zahl beliebiger Genauigkeit
    • bcsub — Subtrahiert zwei Zahlen beliebiger Genauigkeit


Einführung

Für beliebig genaue mathematische Operationen bietet PHP BCMath, das Zahlen von beliebiger Länge und Genauigkeit mit bis zu 2147483647 (oder 0x7FFFFFFF) Stellen, die als String vorliegen, unterstützt, falls genügend Speicherplatz vorhanden ist.

Achtung

Die Übergabe von Werten vom Typ float an eine BCMath-Funktion, die einen String als Operanden erwartet, funktioniert möglicherweise nicht wie erwartet, aufgrund der Art wie PHP float Werte in Strings konvertiert, nämlich dass der String u.U. in exponentieller Notation vorliegt (was von BCMath nicht unterstützt wird), und dass der Dezimaltrenner vom Locale abhängt (wohingegen BCMath immer einen Dezimalpunkt erwartet).

<?php
$num1 = 0; // (string) 0 => '0'
$num2 = -0.000005; // (string) -0.000005 => '-5.05E-6'
echo bcadd($num1, $num2, 6); // => '0.000000'

setlocale(LC_NUMERIC, 'de_DE'); // verwendet ein Dezimalkomma
$num2 = 1.2; // (string) 1.2 => '1,2'
echo bcsub($num1, $num2, 1); // => '0.0'
?>


Installation

Diese Funktionen sind nur verfügbar, wenn PHP mit --enable-bcmath konfiguriert wurde.

Die Windowsversion von PHP enthält diese Erweiterung. Um diese Funktionen zu verwenden, müssen Sie keine zusätzlichen Erweiterungen aktivieren.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

BC-math-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
bcmath.scale | "0" | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

bcmath.scale int

Anzahl der Dezimalstellen für alle bcmath-Funktionen. Siehe auch bcscale().


  • « Ressource-Typen
  • BC Math Funktionen »
  • PHP Manual
  • BC Math
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


BC Math Funktionen

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 einer Zahl beliebiger Genauigkeit
  • bcpowmod — Potenz einer Zahl beliebiger Genauigkeit, vermindert um ein angegebenen Modulo
  • bcscale — Setzt oder holt die Genauigkeit aller BCmath-Funktionen
  • bcsqrt — Ermittelt die Quadratwurzel einer Zahl beliebiger Genauigkeit
  • bcsub — Subtrahiert zwei Zahlen beliebiger Genauigkeit


Addition zweier Zahlen beliebiger Genauigkeit

  • « BC Math Funktionen
  • bccomp »
  • PHP Manual
  • BC Math Funktionen
  • Addition zweier Zahlen beliebiger Genauigkeit

bcadd

(PHP 4, PHP 5, PHP 7, PHP 8)

bcadd — Addition zweier Zahlen beliebiger Genauigkeit

Beschreibung

bcadd ( string $left_operand , string $right_operand , int $scale = 0 ) : string

Addiert den left_operand (linken Operanden) zum right_operand (rechten Operanden).

Parameter-Liste

left_operand

Der linke Operand in Stringform.

right_operand

Der rechte Operand in Stringform.

scale

Dieser optionale Parameter kann benutzt werden, um die Anzahl der Nachkommastellen im Ergebnis festzulegen. Sie können mit Hilfe der bcscale()-Funktion auch einen globalen Vorgabewert für alle Funktionen festlegen.

Rückgabewerte

Die Summe beider Operanden in Stringform.

Beispiele

Beispiel #1 bcadd()-Beispiel

<?php

$a = '1.234';
$b = '5';

echo bcadd($a, $b);     // 6
echo bcadd($a, $b, 4);  // 6.2340

?>

Siehe auch

  • bcsub() - Subtrahiert zwei Zahlen beliebiger Genauigkeit


Vergleich zweier Zahlen beliebiger Genauigkeit

  • « bcadd
  • bcdiv »
  • PHP Manual
  • BC Math Funktionen
  • Vergleich zweier Zahlen beliebiger Genauigkeit

bccomp

(PHP 4, PHP 5, PHP 7, PHP 8)

bccomp — Vergleich zweier Zahlen beliebiger Genauigkeit

Beschreibung

bccomp ( string $left_operand , string $right_operand , int $scale = 0 ) : int

Vergleicht den left_operand mit dem right_operand und gibt das Ergebnis als Integer-Wert zurück.

Parameter-Liste

left_operand

Der linke Operand in Stringform.

right_operand

Der rechte Operand in Stringform.

scale

Der optionale scale-Parameter wird verwendet, um die Anzahl der Dezimalstellen nach dem Komma anzugeben, die für den Vergleich herangezogen werden sollen.

Rückgabewerte

Gibt 0 zurück, wenn beide Operatoren gleich sind, 1, wenn left_operand größer ist als right_operand, und andernfalls -1.

Beispiele

Beispiel #1 bccomp()-Beispiel

<?php

echo bccomp('1', '2') . "\n";   // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1

?>


Division zweier Zahlen beliebiger Genauigkeit

  • « bccomp
  • bcmod »
  • PHP Manual
  • BC Math Funktionen
  • Division zweier Zahlen beliebiger Genauigkeit

bcdiv

(PHP 4, PHP 5, PHP 7, PHP 8)

bcdiv — Division zweier Zahlen beliebiger Genauigkeit

Beschreibung

bcdiv ( string $dividend , string $divisor , int $scale = 0 ) : string

Dividiert dividend durch divisor.

Parameter-Liste

dividend

Der Dividend in Stringform.

divisor

Der Divisor in Stringform.

scale

Dieser optionale Parameter kann benutzt werden, um die Anzahl der Nachkommastellen im Ergebnis festzulegen. Sie können mit Hilfe der bcscale()-Funktion auch einen globalen Vorgabewert für alle Funktionen festlegen.

Rückgabewerte

Gibt das Ergebnis der Division als String zurück. Wenn der Parameter divisor 0 ist, wird null zurückgegeben.

Beispiele

Beispiel #1 bcdiv()-Beispiel

<?php

echo bcdiv('105', '6.55957', 3);  // 16.007

?>

Siehe auch

  • bcmul() - Multiplikation zweier Zahlen beliebiger Genauigkeit


Modulo zweier Zahlen mit beliebiger Genauigkeit

  • « bcdiv
  • bcmul »
  • PHP Manual
  • BC Math Funktionen
  • Modulo zweier Zahlen mit beliebiger Genauigkeit

bcmod

(PHP 4, PHP 5, PHP 7, PHP 8)

bcmod — Modulo zweier Zahlen mit beliebiger Genauigkeit

Beschreibung

bcmod ( string $dividend , string $divisor , int $scale = 0 ) : string

Liefert den Rest der Division von dividend durch modulus. Solange divisor ungleich 0 ist, hat das Ergnis dasselbe Vorzeichen wie dividend.

Parameter-Liste

dividend

Der Dividend in Stringform.

divisor

Der Divisor in Stringform.

Rückgabewerte

Gibt den Modulo als String zurück. Ist divisor 0, wird null zurückgegeben.

Changelog

Version | Beschreibung
7.2.0 | dividend und divisor werden nicht länger zu einer Ganzzahl abgeschnitten, so dass nun das Verhalten von bcmod() eher fmod() statt dem % Operator entspricht.
7.2.0 | Der scale Parameter wurde hinzugefügt.

Beispiele

Beispiel #1 bcmod()-Beispiel

<?php
bcscale(0);
echo bcmod( '5',  '3'); //  2
echo bcmod( '5', '-3'); //  2
echo bcmod('-5',  '3'); // -2
echo bcmod('-5', '-3'); // -2
?>

Beispiel #2 bcmod() mit Dezimalzahlen

<?php
bcscale(1);
echo bcmod('5.7', '1.3'); // 0.5 von PHP 7.2.0 an; 0 zuvor
?>

Siehe auch

  • bcdiv() - Division zweier Zahlen beliebiger Genauigkeit


Multiplikation zweier Zahlen beliebiger Genauigkeit

  • « bcmod
  • bcpow »
  • PHP Manual
  • BC Math Funktionen
  • Multiplikation zweier Zahlen beliebiger Genauigkeit

bcmul

(PHP 4, PHP 5, PHP 7, PHP 8)

bcmul — Multiplikation zweier Zahlen beliebiger Genauigkeit

Beschreibung

bcmul ( string $left_operand , string $right_operand , int $scale = 0 ) : string

Multipliziert left_operand mit right_operand.

Parameter-Liste

left_operand

Der linke Operand in Stringform.

right_operand

Der rechte Operand in Stringform.

scale

Dieser optionale Parameter kann benutzt werden, um die Anzahl der Nachkommastellen im Ergebnis festzulegen. Sie können mit Hilfe der bcscale()-Funktion auch einen globalen Vorgabewert für alle Funktionen festlegen.

Rückgabewerte

Gibt das Ergebnis als String zurück.

Changelog

Version | Beschreibung
7.3.0 | bcmul() liefert nun Zahlen mit den angeforderten Nachkommastellen zurück. Zuvor haben die zurückgelieferten Zahlen möglicherweise abschließende Dezimalnullen ausgelassen.

Beispiele

Beispiel #1 bcmul()-Beispiel

<?php
echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>

Anmerkungen

Hinweis:

Vor PHP 7.3.0 kann bcmul() ein Ergebnis mit weniger Nachkommastellen, als der scale Parameter angibt, zurückliefern. Dies geschieht nur, wenn das Ergebnis nicht die gesamte Präzision, die durch scale erlaubt ist, benötigt. Zum Beispiel:

Beispiel #2 bcmul()-Nachkommastellen-Beispiel

<?php
echo bcmul('5', '2', 2);     // gibt "10" aus, nicht "10.00"
?>

Siehe auch

  • bcdiv() - Division zweier Zahlen beliebiger Genauigkeit


Potenz einer Zahl beliebiger Genauigkeit

  • « bcmul
  • bcpowmod »
  • PHP Manual
  • BC Math Funktionen
  • Potenz einer Zahl beliebiger Genauigkeit

bcpow

(PHP 4, PHP 5, PHP 7, PHP 8)

bcpow — Potenz einer Zahl beliebiger Genauigkeit

Beschreibung

bcpow ( string $base , string $exponent , int $scale = 0 ) : string

Potenziert base mit exponent.

Parameter-Liste

base

Die Basis in Stringform.

exponent

Der Exponent in Stringform. Ist der Exponent nicht ganzzahlig, wird er abgeschnitten. Der gültige Bereich des Exponenten ist Plattformabhängig, ist allerdings wenigstens -2147483648 bis 2147483647.

scale

Dieser optionale Parameter kann benutzt werden, um die Anzahl der Nachkommastellen im Ergebnis festzulegen. Sie können mit Hilfe der bcscale()-Funktion auch einen globalen Vorgabewert für alle Funktionen festlegen.

Rückgabewerte

Gibt das Ergebnis als String zurück.

Changelog

Version | Beschreibung
7.3.0 | bcpow() liefert nun Zahlen mit den angeforderten Nachkommastellen zurück. Zuvor haben die zurückgelieferten Zahlen möglicherweise abschließende Dezimalnullen ausgelassen.

Beispiele

Beispiel #1 bcpow()-Beispiel

<?php

echo bcpow('4.2', '3', 2); // 74.08

?>

Anmerkungen

Hinweis:

Vor PHP 7.3.0 kann bcpow() ein Ergebnis mit weniger Dezimalstellen liefern als der scale Parameter angibt. Das geschieht nur, wenn das Ergebnis nicht die gesamte Genauigkeit benötigt, die durch den scale erlaubt ist. Zum Beispiel:

Beispiel #2 bcpow() Genauigkeitsbeispiel

<?php
echo bcpow('5', '2', 2);     // gibt "25" aus, nicht "25.00"
?>

Siehe auch

  • bcpowmod() - Potenz einer Zahl beliebiger Genauigkeit, vermindert um ein angegebenen Modulo
  • bcsqrt() - Ermittelt die Quadratwurzel einer Zahl beliebiger Genauigkeit


Potenz einer Zahl beliebiger Genauigkeit, vermindert um ein angegebenen Modulo

  • « bcpow
  • bcscale »
  • PHP Manual
  • BC Math Funktionen
  • Potenz einer Zahl beliebiger Genauigkeit, vermindert um ein angegebenen Modulo

bcpowmod

(PHP 5, PHP 7, PHP 8)

bcpowmod — Potenz einer Zahl beliebiger Genauigkeit, vermindert um ein angegebenen Modulo

Beschreibung

bcpowmod ( string $base , string $exponent , string $modulus , int $scale = 0 ) : string

Benutzen Sie diese schnelle Exponentialmethode, um base mit exponent unter Berücksichtigung des Modulo modulus zu potenzieren.

Parameter-Liste

base

Der Basis als ganzzahliger String (d.h. ohne Nachkommastellen).

exponent

Der Exponent als nicht-negativer, ganzzahliger String (d.h. ohne Nachkommastellen).

modulus

Der Modulus als ganzzahliger String (d.h. ohne Nachkommastellen).

scale

Dieser optionale Parameter kann benutzt werden, um die Anzahl der Nachkommastellen im Ergebnis festzulegen. Sie können mit Hilfe der bcscale()-Funktion auch einen globalen Vorgabewert für alle Funktionen festlegen.

Rückgabewerte

Gibt das Ergebnis als String zurück. Ist modulus 0 oder exponent kleiner Null, wird false zurückgegeben.

Anmerkungen

Hinweis:

Da diese Methode mit der Modulo-Operation arbeitet, können nicht-positive Ganzzahlen zu unerwarteten Ergebnissen führen.

Beispiele

Die folgenden zwei Anweisungen sind funktional identisch. Die bcpowmod()-Version ist allerdings schneller und akzeptiert größere Parameter.

<?php
$a = bcpowmod($x, $y, $mod);

$b = bcmod(bcpow($x, $y), $mod);

// $a und $b entsprechen einander.

?>

Siehe auch

  • bcpow() - Potenz einer Zahl beliebiger Genauigkeit
  • bcmod() - Modulo zweier Zahlen mit beliebiger Genauigkeit


Setzt oder holt die Genauigkeit aller BCmath-Funktionen

  • « bcpowmod
  • bcsqrt »
  • PHP Manual
  • BC Math Funktionen
  • Setzt oder holt die Genauigkeit aller BCmath-Funktionen

bcscale

(PHP 4, PHP 5, PHP 7, PHP 8)

bcscale — Setzt oder holt die Genauigkeit aller BCmath-Funktionen

Beschreibung

bcscale ( int $scale = ? ) : int

Diese Funktionen legt die Standard-Genauigkeit aller im Folgenden aufgerufenden BCmath-Funktionen fest, die nicht explizit die Genauigkeit angeben.

bcscale ( ) : int

Holt die aktuelle Genauigkeit.

Parameter-Liste

scale

Die Genauigkeitsangabe.

Rückgabewerte

Gibt die alte Genauigkeit zurück, wenn als Setter verwendet. Andernfalls wird die aktuelle Genauigkeit zurückgeliefert.

Changelog

Version | Beschreibung
7.3.0 | bcscale() kann nun verwendet werden, um die aktuelle Genauigkeit zu ermitteln; wird es als Setter verwendet, gibt es nun die vorherige Genauigkeit zurück. Zuvor war scale obligatorisch, und bscale() gab immer true zurück.

Beispiele

Beispiel #1 bcscale()-Beispiel

<?php

// Standard-Genauigkeit: 3
bcscale(3);
echo bcdiv('105', '6.55957'); // 16.007

// Die selbe Operation ohne Verwendung von bcscale()
echo bcdiv('105', '6.55957', 3); // 16.007

?>


Ermittelt die Quadratwurzel einer Zahl beliebiger Genauigkeit

  • « bcscale
  • bcsub »
  • PHP Manual
  • BC Math Funktionen
  • Ermittelt die Quadratwurzel einer Zahl beliebiger Genauigkeit

bcsqrt

(PHP 4, PHP 5, PHP 7, PHP 8)

bcsqrt — Ermittelt die Quadratwurzel einer Zahl beliebiger Genauigkeit

Beschreibung

bcsqrt ( string $operand , int $scale = 0 ) : string

Liefert die Quadratwurzel von operand.

Parameter-Liste

operand

Der Operand in Stringform.

scale

Dieser optionale Parameter kann benutzt werden, um die Anzahl der Nachkommastellen im Ergebnis festzulegen. Sie können mit Hilfe der bcscale()-Funktion auch einen globalen Vorgabewert für alle Funktionen festlegen.

Rückgabewerte

Gibt die Quadratwurzel als String zurück. Wenn operand ein negativer Wert ist, wird null zurückgegeben.

Beispiele

Beispiel #1 bcsqrt()-Beispiel

<?php

echo bcsqrt('2', 3); // 1.414

?>

Siehe auch

  • bcpow() - Potenz einer Zahl beliebiger Genauigkeit


Subtrahiert zwei Zahlen beliebiger Genauigkeit

  • « bcsqrt
  • GMP »
  • PHP Manual
  • BC Math Funktionen
  • Subtrahiert zwei Zahlen beliebiger Genauigkeit

bcsub

(PHP 4, PHP 5, PHP 7, PHP 8)

bcsub — Subtrahiert zwei Zahlen beliebiger Genauigkeit

Beschreibung

bcsub ( string $left_operand , string $right_operand , int $scale = 0 ) : string

Subtrahiert den right_operand vom left_operand.

Parameter-Liste

left_operand

Der linke Operand in Stringform.

right_operand

Der rechte Operand in Stringform.

scale

Dieser optionale Parameter kann benutzt werden, um die Anzahl der Nachkommastellen im Ergebnis festzulegen. Sie können mit Hilfe der bcscale()-Funktion auch einen globalen Vorgabewert für alle Funktionen festlegen.

Rückgabewerte

Das Ergebnis der Subtraktion in Stringform.

Beispiele

Beispiel #1 bcsub()-Beispiel

<?php

$a = '1.234';
$b = '5';

echo bcsub($a, $b);     // -3
echo bcsub($a, $b, 4);  // -3.7660

?>

Siehe auch

  • bcadd() - Addition zweier Zahlen beliebiger Genauigkeit


GNU Multiple Precision

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • GMP Funktionen
    • gmp_abs — Absolute value
    • gmp_add — Add numbers
    • gmp_and — Bitwise AND
    • gmp_binomial — Calculates binomial coefficient
    • gmp_clrbit — Clear bit
    • gmp_cmp — Compare numbers
    • gmp_com — Calculates one's complement
    • gmp_div_q — Divide numbers
    • gmp_div_qr — Divide numbers and get quotient and remainder
    • gmp_div_r — Remainder of the division of numbers
    • gmp_div — Alias von gmp_div_q
    • gmp_divexact — Exact division of numbers
    • gmp_export — Export to a binary string
    • gmp_fact — Factorial
    • gmp_gcd — Calculate GCD
    • gmp_gcdext — Calculate GCD and multipliers
    • gmp_hamdist — Hamming distance
    • gmp_import — Import from a binary string
    • gmp_init — Create GMP number
    • gmp_intval — Convert GMP number to integer
    • gmp_invert — Inverse by modulo
    • gmp_jacobi — Jacobi symbol
    • gmp_kronecker — Kronecker symbol
    • gmp_lcm — Calculate LCM
    • gmp_legendre — Legendre symbol
    • gmp_mod — Modulo operation
    • gmp_mul — Multiply numbers
    • gmp_neg — Negate number
    • gmp_nextprime — Find next prime number
    • gmp_or — Bitwise OR
    • gmp_perfect_power — Perfect power check
    • gmp_perfect_square — Perfect square check
    • gmp_popcount — Population count
    • gmp_pow — Raise number into power
    • gmp_powm — Raise number into power with modulo
    • gmp_prob_prime — Check if number is "probably prime"
    • gmp_random_bits — Random number
    • gmp_random_range — Random number
    • gmp_random_seed — Sets the RNG seed
    • gmp_random — Random number
    • gmp_root — Take the integer part of nth root
    • gmp_rootrem — Take the integer part and remainder of nth root
    • gmp_scan0 — Scan for 0
    • gmp_scan1 — Scan for 1
    • gmp_setbit — Set bit
    • gmp_sign — Sign of number
    • gmp_sqrt — Calculate square root
    • gmp_sqrtrem — Square root with remainder
    • gmp_strval — Convert GMP number to string
    • gmp_sub — Subtract numbers
    • gmp_testbit — Tests if a bit is set
    • gmp_xor — Bitwise XOR
  • GMP — The GMP class


Einführung

Die Funktionen erlauben das Arbeiten mit beliebig großen Integern unter Verwendung der GNU MP-Bibliothek.

Hinweis:

Die meisten GMP-Funktionen akzeptieren GMP-Zahlen als Argumente. Diese werden in dieser Dokumentation als GMP Objekte dargestellt; allerdings ist zu beachten, dass vor PHP 5.6 GMP Zahlen als resource repräsentiert wurden. Die meisten der Funktionen akzeptieren außerdem numerische Angaben und Strings als Argumente, sofern es möglich ist, diese in in Zahlen umzuwandeln. Weiterhin wird geprüft, ob es eine performantere Funktion gibt, die mit den Argumenten (nur Integerwerte) arbeiten kann, und sofern vorhanden diese auch verwendet. Lesen Sie dazu auch die Dokumentation zu gmp_init().

Hinweis:

Von PHP 5.6 an können arithmetische, Bit- und Vergleichs-Operatoren mit den GMP Objekten, die von gmp_init() und anderen GMP Funktionen zurückgegeben werden, verwenden werden.

Warnung

Große Ganzzahlen müssen als Strings angegeben werden; andernfalls wird PHP eine Konvertierung zu Gleitkommazahlen erzwingen, was in einem Genauigkeitsverlust resultiert.

Hinweis: Die Extension ist für Windowsplattformen seit PHP 5.1.0 verfügbar.


Anforderungen

Die GMP-Bibliothek kann von » http://gmplib.org/#DOWNLOAD heruntergeladen werden. Auf dieser Seite steht zudem das GMP-Manual bereit.

Zumindest GMP Version 2 wird benötigt, um diese Funktionen zu verwenden. Einige Funktionen können aktuellere Versionen der GMP-Bibliothek voraussetzen.


Installation

Damit diese Funktionen verfügbar sind, muss PHP mit GMP-Support durch Verwendung der --with-gmp-Option kompiliert werden.


Ressource-Typen

Vor PHP 5.6 operierten die meisten GMP Funktionen auf GMP Zahlen-Ressourcen oder gaben solche züruck.PHP 5.6 und neuer verwenden GMP Objekte statt der GMP Zahlen-Ressourcen.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

GMP_ROUND_ZERO (integer)
GMP_ROUND_PLUSINF (integer)
GMP_ROUND_MINUSINF (integer)
GMP_MSW_FIRST (integer)
GMP_LSW_FIRST (integer)
GMP_LITTLE_ENDIAN (integer)
GMP_BIG_ENDIAN (integer)
GMP_NATIVE_ENDIAN (integer)
GMP_VERSION (string)
Die Version der GMP-Bibliothek


Beispiele

Beispiel #1 Fakultätsfunktion unter Verwendung von GMP

<?php
function fact($x)
{
    $return = 1;
    for ($i=2; $i < $x; $i++) {
        $return = gmp_mul($return, $i);
    }
    return $return;
}

echo gmp_strval(fact(1000)) . "\n";
?>

Dies berechnet die Fakultät von 1000 sehr schnell (eine wirklich große Zahl).


GMP Funktionen

Siehe auch

Weitere mathematische Funktionen finden Sie im Kapitel Mathematische Erweiterungen.

Inhaltsverzeichnis

  • gmp_abs — Absolute value
  • gmp_add — Add numbers
  • gmp_and — Bitwise AND
  • gmp_binomial — Calculates binomial coefficient
  • gmp_clrbit — Clear bit
  • gmp_cmp — Compare numbers
  • gmp_com — Calculates one's complement
  • gmp_div_q — Divide numbers
  • gmp_div_qr — Divide numbers and get quotient and remainder
  • gmp_div_r — Remainder of the division of numbers
  • gmp_div — Alias von gmp_div_q
  • gmp_divexact — Exact division of numbers
  • gmp_export — Export to a binary string
  • gmp_fact — Factorial
  • gmp_gcd — Calculate GCD
  • gmp_gcdext — Calculate GCD and multipliers
  • gmp_hamdist — Hamming distance
  • gmp_import — Import from a binary string
  • gmp_init — Create GMP number
  • gmp_intval — Convert GMP number to integer
  • gmp_invert — Inverse by modulo
  • gmp_jacobi — Jacobi symbol
  • gmp_kronecker — Kronecker symbol
  • gmp_lcm — Calculate LCM
  • gmp_legendre — Legendre symbol
  • gmp_mod — Modulo operation
  • gmp_mul — Multiply numbers
  • gmp_neg — Negate number
  • gmp_nextprime — Find next prime number
  • gmp_or — Bitwise OR
  • gmp_perfect_power — Perfect power check
  • gmp_perfect_square — Perfect square check
  • gmp_popcount — Population count
  • gmp_pow — Raise number into power
  • gmp_powm — Raise number into power with modulo
  • gmp_prob_prime — Check if number is "probably prime"
  • gmp_random_bits — Random number
  • gmp_random_range — Random number
  • gmp_random_seed — Sets the RNG seed
  • gmp_random — Random number
  • gmp_root — Take the integer part of nth root
  • gmp_rootrem — Take the integer part and remainder of nth root
  • gmp_scan0 — Scan for 0
  • gmp_scan1 — Scan for 1
  • gmp_setbit — Set bit
  • gmp_sign — Sign of number
  • gmp_sqrt — Calculate square root
  • gmp_sqrtrem — Square root with remainder
  • gmp_strval — Convert GMP number to string
  • gmp_sub — Subtract numbers
  • gmp_testbit — Tests if a bit is set
  • gmp_xor — Bitwise XOR


Absolute value

  • « GMP Funktionen
  • gmp_add »
  • PHP Manual
  • GMP Funktionen
  • Absolute value

gmp_abs

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_abs — Absolute value

Beschreibung

gmp_abs ( GMP|int|string $num ) : GMP

Get the absolute value of a number.

Parameter-Liste

num

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Returns the absolute value of num, as a GMP number.

Beispiele

Beispiel #1 gmp_abs() example

<?php
$abs1 = gmp_abs("274982683358");
$abs2 = gmp_abs("-274982683358");

echo gmp_strval($abs1) . "\n";
echo gmp_strval($abs2) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

274982683358
274982683358


Add numbers

  • « gmp_abs
  • gmp_and »
  • PHP Manual
  • GMP Funktionen
  • Add numbers

gmp_add

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_add — Add numbers

Beschreibung

gmp_add ( GMP|int|string $num1 , GMP|int|string $num2 ) : GMP

Add two numbers.

Parameter-Liste

num1

The first summand (augent).

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

The second summand (addend).

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

A GMP number representing the sum of the arguments.

Beispiele

Beispiel #1 gmp_add() example

<?php
$sum = gmp_add("123456789012345", "76543210987655");
echo gmp_strval($sum) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

200000000000000


Bitwise AND

  • « gmp_add
  • gmp_binomial »
  • PHP Manual
  • GMP Funktionen
  • Bitwise AND

gmp_and

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_and — Bitwise AND

Beschreibung

gmp_and ( GMP|int|string $num1 , GMP|int|string $num2 ) : GMP

Calculates bitwise AND of two GMP numbers.

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

A GMP number representing the bitwise AND comparison.

Beispiele

Beispiel #1 gmp_and() example

<?php
$and1 = gmp_and("0xfffffffff4", "0x4");
$and2 = gmp_and("0xfffffffff4", "0x8");
echo gmp_strval($and1) . "\n";
echo gmp_strval($and2) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

4
0


Calculates binomial coefficient

  • « gmp_and
  • gmp_clrbit »
  • PHP Manual
  • GMP Funktionen
  • Calculates binomial coefficient

gmp_binomial

(PHP 7 >= 7.3.0, PHP 8)

gmp_binomial — Calculates binomial coefficient

Beschreibung

gmp_binomial ( GMP|int|string $n , int $k ) : GMP

Calculates the binomial coefficient C(n, k).

Parameter-Liste

n

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

k

Rückgabewerte

Returns the binomial coefficient C(n, k).

Fehler/Exceptions

Throws ValueError if k is negative. Prior to PHP 8.0.0, E_WARNING was issued instead.

Changelog

Version | Beschreibung
8.0.0 | This function no longer returns false on failure.


Clear bit

  • « gmp_binomial
  • gmp_cmp »
  • PHP Manual
  • GMP Funktionen
  • Clear bit

gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_clrbit — Clear bit

Beschreibung

gmp_clrbit ( GMP $num , int $index ) : void

Clears (sets to 0) bit index in num. The index starts at 0.

Parameter-Liste

num

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

index

The index of the bit to clear. Index 0 represents the least significant bit.

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 gmp_clrbit() example

<?php
$a = gmp_init("0xff");
gmp_clrbit($a, 0); // index starts at 0, least significant bit
echo gmp_strval($a) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

254

Anmerkungen

Hinweis:

Unlike most of the other GMP functions, gmp_clrbit() must be called with a GMP object that already exists (using gmp_init() for example). One will not be automatically created.

Siehe auch

  • gmp_setbit() - Set bit
  • gmp_testbit() - Tests if a bit is set


Compare numbers

  • « gmp_clrbit
  • gmp_com »
  • PHP Manual
  • GMP Funktionen
  • Compare numbers

gmp_cmp

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_cmp — Compare numbers

Beschreibung

gmp_cmp ( GMP|int|string $num1 , GMP|int|string $num2 ) : int

Compares two numbers.

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Returns a positive value if a > b, zero if a = b and a negative value if a < b.

Beispiele

Beispiel #1 gmp_cmp() example

<?php
$cmp1 = gmp_cmp("1234", "1000"); // greater than
$cmp2 = gmp_cmp("1000", "1234"); // less than
$cmp3 = gmp_cmp("1234", "1234"); // equal to

echo "$cmp1 $cmp2 $cmp3\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1 -1 0


Calculates one's complement

  • « gmp_cmp
  • gmp_div_q »
  • PHP Manual
  • GMP Funktionen
  • Calculates one's complement

gmp_com

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_com — Calculates one's complement

Beschreibung

gmp_com ( GMP|int|string $num ) : GMP

Returns the one's complement of num.

Parameter-Liste

num

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Returns the one's complement of num, as a GMP number.

Beispiele

Beispiel #1 gmp_com() example

<?php
$com = gmp_com("1234");
echo gmp_strval($com) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

-1235


Divide numbers

  • « gmp_com
  • gmp_div_qr »
  • PHP Manual
  • GMP Funktionen
  • Divide numbers

gmp_div_q

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_div_q — Divide numbers

Beschreibung

gmp_div_q ( GMP|int|string $num1 , GMP|int|string $num2 , int $rounding_mode = GMP_ROUND_ZERO ) : GMP

Divides num1 by num2 and returns the integer result.

Parameter-Liste

num1

The number being divided.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

The number that num1 is being divided by.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

rounding_mode

The result rounding is defined by the rounding_mode, 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.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 gmp_div_q() example

<?php
$div1 = gmp_div_q("100", "5");
echo gmp_strval($div1) . "\n";

$div2 = gmp_div_q("1", "3");
echo gmp_strval($div2) . "\n";

$div3 = gmp_div_q("1", "3", GMP_ROUND_PLUSINF);
echo gmp_strval($div3) . "\n";

$div4 = gmp_div_q("-1", "4", GMP_ROUND_PLUSINF);
echo gmp_strval($div4) . "\n";

$div5 = gmp_div_q("-1", "4", GMP_ROUND_MINUSINF);
echo gmp_strval($div5) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

20
0
1
0
-1

Anmerkungen

Hinweis:

This function can also be called as gmp_div().

Siehe auch

  • gmp_div_r() - Remainder of the division of numbers
  • gmp_div_qr() - Divide numbers and get quotient and remainder


Divide numbers and get quotient and remainder

  • « gmp_div_q
  • gmp_div_r »
  • PHP Manual
  • GMP Funktionen
  • Divide numbers and get quotient and remainder

gmp_div_qr

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_div_qr — Divide numbers and get quotient and remainder

Beschreibung

gmp_div_qr ( GMP|int|string $num1 , GMP|int|string $num2 , int $rounding_mode = GMP_ROUND_ZERO ) : array

The function divides num1 by num2.

Parameter-Liste

num1

The number being divided.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

The number that num1 is being divided by.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

rounding_mode

See the gmp_div_q() function for description of the rounding_mode argument.

Rückgabewerte

Returns an 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).

Beispiele

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]));
?>

Siehe auch

  • gmp_div_q() - Divide numbers
  • gmp_div_r() - Remainder of the division of numbers


Remainder of the division of numbers

  • « gmp_div_qr
  • gmp_div »
  • PHP Manual
  • GMP Funktionen
  • Remainder of the division of numbers

gmp_div_r

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_div_r — Remainder of the division of numbers

Beschreibung

gmp_div_r ( GMP|int|string $num1 , GMP|int|string $num2 , int $rounding_mode = GMP_ROUND_ZERO ) : GMP

Calculates remainder of the integer division of num1 by num2. The remainder has the sign of the num1 argument, if not zero.

Parameter-Liste

num1

The number being divided.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

The number that num1 is being divided by.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

rounding_mode

See the gmp_div_q() function for description of the rounding_mode argument.

Rückgabewerte

The remainder, as a GMP number.

Beispiele

Beispiel #1 gmp_div_r() example

<?php
$div = gmp_div_r("105", "20");
echo gmp_strval($div) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

5

Siehe auch

  • gmp_div_q() - Divide numbers
  • gmp_div_qr() - Divide numbers and get quotient and remainder


Alias von gmp_div_q

  • « gmp_div_r
  • gmp_divexact »
  • PHP Manual
  • GMP Funktionen
  • Alias von gmp_div_q

gmp_div

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_div — Alias von gmp_div_q()

Beschreibung

Diese Funktion ist ein Alias für: gmp_div_q().


Exact division of numbers

  • « gmp_div
  • gmp_export »
  • PHP Manual
  • GMP Funktionen
  • Exact division of numbers

gmp_divexact

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_divexact — Exact division of numbers

Beschreibung

gmp_divexact ( GMP|int|string $num1 , GMP|int|string $num2 ) : GMP

Divides num1 by num2, using fast "exact division" algorithm. This function produces correct results only when it is known in advance that num2 divides num1.

Parameter-Liste

num1

The number being divided.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

The number that a is being divided by.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 gmp_divexact() example

<?php
$div1 = gmp_divexact("10", "2");
echo gmp_strval($div1) . "\n";

$div2 = gmp_divexact("10", "3"); // bogus result
echo gmp_strval($div2) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

5
2863311534


Export to a binary string

  • « gmp_divexact
  • gmp_fact »
  • PHP Manual
  • GMP Funktionen
  • Export to a binary string

gmp_export

(PHP 5 >= 5.6.1, PHP 7, PHP 8)

gmp_export — Export to a binary string

Beschreibung

gmp_export ( GMP|int|string $num , int $word_size = 1 , int $flags = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN ) : string

Export a GMP number to a binary string

Parameter-Liste

num

The GMP number being exported

word_size

Default value is 1. The number of bytes in each chunk of binary data. This is mainly used in conjunction with the options parameter.

flags

Default value is GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Rückgabewerte

Returns a string.

Changelog

Version | Beschreibung
8.0.0 | This function no longer returns false on failure.

Beispiele

Beispiel #1 gmp_export() example

<?php
$number = gmp_init(16705);
echo gmp_export($number) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

AA

Siehe auch

  • gmp_import() - Import from a binary string


Factorial

  • « gmp_export
  • gmp_gcd »
  • PHP Manual
  • GMP Funktionen
  • Factorial

gmp_fact

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_fact — Factorial

Beschreibung

gmp_fact ( GMP|int|string $num ) : GMP

Calculates factorial (num!) of num.

Parameter-Liste

num

The factorial number.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 gmp_fact() example

<?php
$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";

$fact2 = gmp_fact(50); // 50 * 49 * 48, ... etc
echo gmp_strval($fact2) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

120
30414093201713378043612608166064768844377641568960512000000000000


Calculate GCD

  • « gmp_fact
  • gmp_gcdext »
  • PHP Manual
  • GMP Funktionen
  • Calculate GCD

gmp_gcd

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_gcd — Calculate GCD

Beschreibung

gmp_gcd ( GMP|int|string $num1 , GMP|int|string $num2 ) : GMP

Calculate greatest common divisor of num1 and num2. The result is always positive even if either of, or both, input operands are negative.

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

A positive GMP number that divides into both num1 and num2.

Beispiele

Beispiel #1 gmp_gcd() example

<?php
$gcd = gmp_gcd("12", "21");
echo gmp_strval($gcd) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3

Siehe auch

  • gmp_lcm() - Calculate LCM


Calculate GCD and multipliers

  • « gmp_gcd
  • gmp_hamdist »
  • PHP Manual
  • GMP Funktionen
  • Calculate GCD and multipliers

gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_gcdext — Calculate GCD and multipliers

Beschreibung

gmp_gcdext ( GMP|int|string $num1 , GMP|int|string $num2 ) : array

Calculates g, s, and t, such that a*s + b*t = g = gcd(a,b), where gcd is the greatest common divisor. Returns an array with respective elements g, s and t.

This function can be used to solve linear Diophantine equations in two variables. These are equations that allow only integer solutions and have the form: a*x + b*y = c. For more information, go to the » "Diophantine Equation" page at MathWorld

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

An array of GMP numbers.

Beispiele

Beispiel #1 Solving a linear Diophantine equation

<?php
// Solve the equation a*s + b*t = g
// where a = 12, b = 21, g = gcd(12, 21) = 3
$a = gmp_init(12);
$b = gmp_init(21);
$g = gmp_gcd($a, $b);
$r = gmp_gcdext($a, $b);

$check_gcd = (gmp_strval($g) == gmp_strval($r['g']));
$eq_res = gmp_add(gmp_mul($a, $r['s']), gmp_mul($b, $r['t']));
$check_res = (gmp_strval($g) == gmp_strval($eq_res));

if ($check_gcd && $check_res) {
    $fmt = "Solution: %d*%d + %d*%d = %d\n";
    printf($fmt, gmp_strval($a), gmp_strval($r['s']), gmp_strval($b),
    gmp_strval($r['t']), gmp_strval($r['g']));
} else {
    echo "Error while solving the equation\n";
}

// output: Solution: 12*2 + 21*-1 = 3
?>


Hamming distance

  • « gmp_gcdext
  • gmp_import »
  • PHP Manual
  • GMP Funktionen
  • Hamming distance

gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_hamdist — Hamming distance

Beschreibung

gmp_hamdist ( GMP|int|string $num1 , GMP|int|string $num2 ) : int

Returns the hamming distance between num1 and num2. Both operands should be non-negative.

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

It should be positive.

num2

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

It should be positive.

Rückgabewerte

The hamming distance between num1 and num2, as an int.

Beispiele

Beispiel #1 gmp_hamdist() example

<?php
$ham1 = gmp_init("1001010011", 2);
$ham2 = gmp_init("1011111100", 2);
echo gmp_hamdist($ham1, $ham2) . "\n";

/* hamdist is equivalent to: */
echo gmp_popcount(gmp_xor($ham1, $ham2)) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

6
6

Siehe auch

  • gmp_popcount() - Population count
  • gmp_xor() - Bitwise XOR


Import from a binary string

  • « gmp_hamdist
  • gmp_init »
  • PHP Manual
  • GMP Funktionen
  • Import from a binary string

gmp_import

(PHP 5 >= 5.6.1, PHP 7, PHP 8)

gmp_import — Import from a binary string

Beschreibung

gmp_import ( string $data , int $word_size = 1 , int $flags = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN ) : GMP

Import a GMP number from a binary string

Parameter-Liste

data

The binary string being imported

word_size

Default value is 1. The number of bytes in each chunk of binary data. This is mainly used in conjunction with the options parameter.

flags

Default value is GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Rückgabewerte

Returns a GMP number.

Changelog

Version | Beschreibung
8.0.0 | This function no longer returns false on failure.

Beispiele

Beispiel #1 gmp_import() example

<?php
$number = gmp_import("\0");
echo gmp_strval($number) . "\n";

$number = gmp_import("\0\1\2");
echo gmp_strval($number) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0
258

Siehe auch

  • gmp_export() - Export to a binary string


Create GMP number

  • « gmp_import
  • gmp_intval »
  • PHP Manual
  • GMP Funktionen
  • Create GMP number

gmp_init

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_init — Create GMP number

Beschreibung

gmp_init ( int|string $num , int $base = 0 ) : GMP

Creates a GMP number from an integer or string.

Parameter-Liste

num

An integer or a string. The string representation can be decimal, hexadecimal or octal.

base

The base.

The base may vary from 2 to 62. If base is 0 (default value), the actual base is determined from the leading characters: if the first two characters are 0x or 0X, hexadecimal is assumed, if the first two characters are 0b or 0B, binary is assumed, otherwise if the first character is 0, octal is assumed, otherwise decimal is assumed. For bases up to 36, case is ignored; upper-case and lower-case letters have the same value. For bases 37 to 62, upper-case letter represent the usual 10 to 35 while lower-case letter represent 36 to 61.

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 Creating GMP number

<?php
$a = gmp_init(123456);
$b = gmp_init("0xFFFFDEBACDFEDF7200");
?>

Anmerkungen

Hinweis:

It is not necessary to call this function in order to use integers or strings in place of GMP numbers in GMP functions (such as with gmp_add()). Function arguments are automatically converted to GMP numbers, if such conversion is possible and needed, using the same rules as gmp_init().


Convert GMP number to integer

  • « gmp_init
  • gmp_invert »
  • PHP Manual
  • GMP Funktionen
  • Convert GMP number to integer

gmp_intval

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_intval — Convert GMP number to integer

Beschreibung

gmp_intval ( GMP|int|string $num ) : int

This function converts GMP number into native PHP ints.

Parameter-Liste

num

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

The int value of num.

Beispiele

Beispiel #1 gmp_intval() example

<?php
// displays correct result
echo gmp_intval("2147483647") . "\n";

// displays wrong result, above PHP integer limit
echo gmp_intval("2147483648") . "\n";

// displays correct result
echo gmp_strval("2147483648") . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2147483647
2147483647
2147483648

Anmerkungen

Warnung

This function returns a useful result only if the number actually fits the PHP integer (i.e., signed long type). To simply print the GMP number, use gmp_strval().


Inverse by modulo

  • « gmp_intval
  • gmp_jacobi »
  • PHP Manual
  • GMP Funktionen
  • Inverse by modulo

gmp_invert

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_invert — Inverse by modulo

Beschreibung

gmp_invert ( GMP|int|string $num1 , GMP|int|string $num2 ) : GMP|false

Computes the inverse of num1 modulo num2.

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

A GMP number on success or false if an inverse does not exist.

Beispiele

Beispiel #1 gmp_invert() example

<?php
echo gmp_invert("5", "10"); // no inverse, outputs nothing, result is FALSE
$invert = gmp_invert("5", "11");
echo gmp_strval($invert) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

9


Jacobi symbol

  • « gmp_invert
  • gmp_kronecker »
  • PHP Manual
  • GMP Funktionen
  • Jacobi symbol

gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_jacobi — Jacobi symbol

Beschreibung

gmp_jacobi ( GMP|int|string $num1 , GMP|int|string $num2 ) : int

Computes » Jacobi symbol of num1 and num2. num2 should be odd and must be positive.

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Should be odd and must be positive.

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 gmp_jacobi() example

<?php
echo gmp_jacobi("1", "3") . "\n";
echo gmp_jacobi("2", "3") . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1
0

Siehe auch

  • gmp_kronecker() - Kronecker symbol
  • gmp_legendre() - Legendre symbol


Kronecker symbol

  • « gmp_jacobi
  • gmp_lcm »
  • PHP Manual
  • GMP Funktionen
  • Kronecker symbol

gmp_kronecker

(PHP 7 >= 7.3.0, PHP 8)

gmp_kronecker — Kronecker symbol

Beschreibung

gmp_kronecker ( GMP|int|string $num1 , GMP|int|string $num2 ) : int

This function computes the Kronecker symbol of num1 and num2.

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Returns the Kronecker symbol of num1 and num2

Siehe auch

  • gmp_jacobi() - Jacobi symbol
  • gmp_legendre() - Legendre symbol


Calculate LCM

  • « gmp_kronecker
  • gmp_legendre »
  • PHP Manual
  • GMP Funktionen
  • Calculate LCM

gmp_lcm

(PHP 7 >= 7.3.0, PHP 8)

gmp_lcm — Calculate LCM

Beschreibung

gmp_lcm ( GMP|int|string $num1 , GMP|int|string $num2 ) : GMP

This function computes the least common multiple (lcm) of num1 and num2.

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Ein GMP-Objekt.

Siehe auch

  • gmp_gcd() - Calculate GCD


Legendre symbol

  • « gmp_lcm
  • gmp_mod »
  • PHP Manual
  • GMP Funktionen
  • Legendre symbol

gmp_legendre

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_legendre — Legendre symbol

Beschreibung

gmp_legendre ( GMP|int|string $num1 , GMP|int|string $num2 ) : int

Compute the » Legendre symbol of num1 and num2. num2 should be odd and must be positive.

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Should be odd and must be positive.

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 gmp_legendre() example

<?php
echo gmp_legendre("1", "3") . "\n";
echo gmp_legendre("2", "3") . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1
0

Siehe auch

  • gmp_jacobi() - Jacobi symbol
  • gmp_kronecker() - Kronecker symbol


Modulo operation

  • « gmp_legendre
  • gmp_mul »
  • PHP Manual
  • GMP Funktionen
  • Modulo operation

gmp_mod

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_mod — Modulo operation

Beschreibung

gmp_mod ( GMP|int|string $num1 , GMP|int|string $num2 ) : GMP

Calculates num1 modulo num2. The result is always non-negative, the sign of num2 is ignored.

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

The modulo that is being evaluated.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 gmp_mod() example

<?php
$mod = gmp_mod("8", "3");
echo gmp_strval($mod) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2


Multiply numbers

  • « gmp_mod
  • gmp_neg »
  • PHP Manual
  • GMP Funktionen
  • Multiply numbers

gmp_mul

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_mul — Multiply numbers

Beschreibung

gmp_mul ( GMP|int|string $num1 , GMP|int|string $num2 ) : GMP

Multiplies num1 by num2 and returns the result.

Parameter-Liste

num1

A number that will be multiplied by num2.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

A number that will be multiplied by num1.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 gmp_mul() example

<?php
$mul = gmp_mul("12345678", "2000");
echo gmp_strval($mul) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

24691356000


Negate number

  • « gmp_mul
  • gmp_nextprime »
  • PHP Manual
  • GMP Funktionen
  • Negate number

gmp_neg

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_neg — Negate number

Beschreibung

gmp_neg ( GMP|int|string $num ) : GMP

Returns the negative value of a number.

Parameter-Liste

num

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Returns -num, as a GMP number.

Beispiele

Beispiel #1 gmp_neg() example

<?php
$neg1 = gmp_neg("1");
echo gmp_strval($neg1) . "\n";
$neg2 = gmp_neg("-1");
echo gmp_strval($neg2) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

-1
1


Find next prime number

  • « gmp_neg
  • gmp_or »
  • PHP Manual
  • GMP Funktionen
  • Find next prime number

gmp_nextprime

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

gmp_nextprime — Find next prime number

Beschreibung

gmp_nextprime ( GMP|int|string $num ) : GMP

Find next prime number

Parameter-Liste

num

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Return the next prime number greater than num, as a GMP number.

Beispiele

Beispiel #1 gmp_nextprime() example

<?php
$prime1 = gmp_nextprime(10); // next prime number greater than 10
$prime2 = gmp_nextprime(-1000); // next prime number greater than -1000

echo gmp_strval($prime1) . "\n";
echo gmp_strval($prime2) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

11
2

Anmerkungen

Hinweis:

This function uses a probabilistic algorithm to identify primes and chances to get a composite number are extremely small.


Bitwise OR

  • « gmp_nextprime
  • gmp_perfect_power »
  • PHP Manual
  • GMP Funktionen
  • Bitwise OR

gmp_or

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_or — Bitwise OR

Beschreibung

gmp_or ( GMP|int|string $num1 , GMP|int|string $num2 ) : GMP

Calculates bitwise inclusive OR of two GMP numbers.

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 gmp_or() example

<?php
$or1 = gmp_or("0xfffffff2", "4");
echo gmp_strval($or1, 16) . "\n";
$or2 = gmp_or("0xfffffff2", "2");
echo gmp_strval($or2, 16) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

fffffff6
fffffff2


Perfect power check

  • « gmp_or
  • gmp_perfect_square »
  • PHP Manual
  • GMP Funktionen
  • Perfect power check

gmp_perfect_power

(PHP 7 >= 7.3.0, PHP 8)

gmp_perfect_power — Perfect power check

Beschreibung

gmp_perfect_power ( GMP|int|string $num ) : bool

Checks whether num is a perfect power.

Parameter-Liste

num

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Returns true if num is a perfect power, false otherwise.

Siehe auch

  • gmp_perfect_square() - Perfect square check


Perfect square check

  • « gmp_perfect_power
  • gmp_popcount »
  • PHP Manual
  • GMP Funktionen
  • Perfect square check

gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_perfect_square — Perfect square check

Beschreibung

gmp_perfect_square ( GMP|int|string $num ) : bool

Check if a number is a perfect square.

Parameter-Liste

num

The number being checked as a perfect square.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Returns true if num is a perfect square, false otherwise.

Beispiele

Beispiel #1 gmp_perfect_square() example

<?php
// 3 * 3, perfect square
var_dump(gmp_perfect_square("9"));

// not a perfect square
var_dump(gmp_perfect_square("7"));

// 1234567890 * 1234567890, perfect square
var_dump(gmp_perfect_square("1524157875019052100"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(true)

Siehe auch

  • gmp_perfect_power() - Perfect power check
  • gmp_sqrt() - Calculate square root
  • gmp_sqrtrem() - Square root with remainder


Population count

  • « gmp_perfect_square
  • gmp_pow »
  • PHP Manual
  • GMP Funktionen
  • Population count

gmp_popcount

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_popcount — Population count

Beschreibung

gmp_popcount ( GMP|int|string $num ) : int

Get the population count.

Parameter-Liste

num

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

The population count of num, as an int.

Beispiele

Beispiel #1 gmp_popcount() example

<?php
$pop1 = gmp_init("10000101", 2); // 3 1's
echo gmp_popcount($pop1) . "\n";
$pop2 = gmp_init("11111110", 2); // 7 1's
echo gmp_popcount($pop2) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3
7


Raise number into power

  • « gmp_popcount
  • gmp_powm »
  • PHP Manual
  • GMP Funktionen
  • Raise number into power

gmp_pow

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_pow — Raise number into power

Beschreibung

gmp_pow ( GMP|int|string $num , int $exponent ) : GMP

Raise num into power exponent.

Parameter-Liste

num

The base number.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

exponent

The positive power to raise the num.

Rückgabewerte

The new (raised) number, as a GMP number. The case of 0^0 yields 1.

Beispiele

Beispiel #1 gmp_pow() example

<?php
$pow1 = gmp_pow("2", 31);
echo gmp_strval($pow1) . "\n";
$pow2 = gmp_pow("0", 0);
echo gmp_strval($pow2) . "\n";
$pow3 = gmp_pow("2", -1); // Negative exp, generates warning
echo gmp_strval($pow3) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2147483648
1


Raise number into power with modulo

  • « gmp_pow
  • gmp_prob_prime »
  • PHP Manual
  • GMP Funktionen
  • Raise number into power with modulo

gmp_powm

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_powm — Raise number into power with modulo

Beschreibung

gmp_powm ( GMP|int|string $num , GMP|int|string $exponent , GMP|int|string $modulus ) : GMP

Calculate (num raised into power exponent) modulo modulus. If exponent is negative, result is undefined.

Parameter-Liste

num

The base number.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

exponent

The positive power to raise the num.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

modulus

The modulo.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

The new (raised) number, as a GMP number.

Beispiele

Beispiel #1 gmp_powm() example

<?php
$pow1 = gmp_powm("2", "31", "2147483649");
echo gmp_strval($pow1) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2147483648


Check if number is "probably prime"

  • « gmp_powm
  • gmp_random_bits »
  • PHP Manual
  • GMP Funktionen
  • Check if number is "probably prime"

gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_prob_prime — Check if number is "probably prime"

Beschreibung

gmp_prob_prime ( GMP|int|string $num , int $repetitions = 10 ) : int

The function uses Miller-Rabin's probabilistic test to check if a number is a prime.

Parameter-Liste

num

The number being checked as a prime.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

repetitions

Reasonable values of repetitions vary from 5 to 10 (default being 10); a higher value lowers the probability for a non-prime to pass as a "probable" prime.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

If this function returns 0, num is definitely not prime. If it returns 1, then num is "probably" prime. If it returns 2, then num is surely prime.

Beispiele

Beispiel #1 gmp_prob_prime() example

<?php
// definitely not a prime
echo gmp_prob_prime("6") . "\n";

// probably a prime
echo gmp_prob_prime("1111111111111111111") . "\n";

// definitely a prime
echo gmp_prob_prime("11") . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0
1
2


Random number

  • « gmp_prob_prime
  • gmp_random_range »
  • PHP Manual
  • GMP Funktionen
  • Random number

gmp_random_bits

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

gmp_random_bits — Random number

Beschreibung

gmp_random_bits ( int $bits ) : GMP

Generate a random number. The number will be between 0 and (2 ** bits) - 1.

bits must greater than 0, and the maximum value is restricted by available memory.

Parameter-Liste

bits

The number of bits.

Rückgabewerte

A random GMP number.

Beispiele

Beispiel #1 gmp_random_bits() example

<?php
$rand1 = gmp_random_bits(3); // random number from 0 to 7
$rand2 = gmp_random_bits(5); // random number from 0 to 31

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3
15


Random number

  • « gmp_random_bits
  • gmp_random_seed »
  • PHP Manual
  • GMP Funktionen
  • Random number

gmp_random_range

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

gmp_random_range — Random number

Beschreibung

gmp_random_range ( GMP|int|string $min , GMP|int|string $max ) : GMP

Generate a random number. The number will be between min and max.

min and max can both be negative but min must always be less than max.

Parameter-Liste

min

A GMP number representing the lower bound for the random number

max

A GMP number representing the upper bound for the random number

Rückgabewerte

A random GMP number.

Beispiele

Beispiel #1 gmp_random_range() example

<?php
$rand1 = gmp_random_range(0, 100);    // random number between 0 and 100
$rand2 = gmp_random_range(-100, -10); // random number between -100 and -10

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

42
-67


Sets the RNG seed

  • « gmp_random_range
  • gmp_random »
  • PHP Manual
  • GMP Funktionen
  • Sets the RNG seed

gmp_random_seed

(PHP 7, PHP 8)

gmp_random_seed — Sets the RNG seed

Beschreibung

gmp_random_seed ( GMP|int|string $seed ) : void

Parameter-Liste

seed

The seed to be set for the gmp_random(), gmp_random_bits(), and gmp_random_range() functions.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Returns null on successIm Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

Issues an E_WARNING and returns false if seed is not valid.

Beispiele

Beispiel #1 gmp_random_seed() example

<?php
// set the seed
gmp_random_seed(100);

var_dump(gmp_strval(gmp_random(1)));

// set the seed to something else
gmp_random_seed(gmp_init(-100));

var_dump(gmp_strval(gmp_random_bits(10)));

// set the seed to something invalid
var_dump(gmp_random_seed('not a number'));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(20) "15370156633245019617"
string(3) "683"

Warning: gmp_random_seed(): Unable to convert variable to GMP - string is not an integer in %s on line %d
bool(false)

Siehe auch

  • gmp_init() - Create GMP number
  • gmp_random() - Random number
  • gmp_random_bits() - Random number
  • gmp_random_range() - Random number


Random number

  • « gmp_random_seed
  • gmp_root »
  • PHP Manual
  • GMP Funktionen
  • Random number

gmp_random

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_random — Random number

Warnung

Diese Funktion ist seit PHP 7.2.0 VERALTET und seit PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

gmp_random ( int $limiter = 20 ) : GMP

Generate a random number. The number will be between 0 and (2 ** n) - 1, where n is the number of bits per limb multiplied by limiter. If limiter is negative, negative numbers are generated.

A limb is an internal GMP mechanism. The number of bits in a limb is not static, and can vary from system to system. Generally, the number of bits in a limb is either 32 or 64, but this is not guaranteed.

Parameter-Liste

limiter

The limiter.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

A random GMP number.

Beispiele

Beispiel #1 gmp_random() example

<?php
$rand1 = gmp_random(1); // random number from 0 to 1 * bits per limb
$rand2 = gmp_random(2); // random number from 0 to 2 * bits per limb

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1915834968
8642564075890328087


Take the integer part of nth root

  • « gmp_random
  • gmp_rootrem »
  • PHP Manual
  • GMP Funktionen
  • Take the integer part of nth root

gmp_root

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

gmp_root — Take the integer part of nth root

Beschreibung

gmp_root ( GMP|int|string $num , int $nth ) : GMP

Takes the nth root of num and returns the integer component of the result.

Parameter-Liste

num

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

nth

The positive root to take of num.

Rückgabewerte

The integer component of the resultant root, as a GMP number.


Take the integer part and remainder of nth root

  • « gmp_root
  • gmp_scan0 »
  • PHP Manual
  • GMP Funktionen
  • Take the integer part and remainder of nth root

gmp_rootrem

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

gmp_rootrem — Take the integer part and remainder of nth root

Beschreibung

gmp_rootrem ( GMP|int|string $num , int $nth ) : array

Takes the nth root of num and returns the integer component and remainder of the result.

Parameter-Liste

num

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

nth

The positive root to take of num.

Rückgabewerte

A two element array, where the first element is the integer component of the root, and the second element is the remainder, both represented as GMP numbers.


Scan for 0

  • « gmp_rootrem
  • gmp_scan1 »
  • PHP Manual
  • GMP Funktionen
  • Scan for 0

gmp_scan0

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_scan0 — Scan for 0

Beschreibung

gmp_scan0 ( GMP|int|string $num1 , int $start ) : int

Scans num1, starting with bit start, towards more significant bits, until the first clear bit is found.

Parameter-Liste

num1

The number to scan.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

start

The starting bit.

Rückgabewerte

Returns the index of the found bit, as an int. The index starts from 0.

Beispiele

Beispiel #1 gmp_scan0() example

<?php
// "0" bit is found at position 3. index starts at 0
$s1 = gmp_init("10111", 2);
echo gmp_scan0($s1, 0) . "\n";

// "0" bit is found at position 7. index starts at 5
$s2 = gmp_init("101110000", 2);
echo gmp_scan0($s2, 5) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3
7


Scan for 1

  • « gmp_scan0
  • gmp_setbit »
  • PHP Manual
  • GMP Funktionen
  • Scan for 1

gmp_scan1

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_scan1 — Scan for 1

Beschreibung

gmp_scan1 ( GMP|int|string $num1 , int $start ) : int

Scans num1, starting with bit start, towards more significant bits, until the first set bit is found.

Parameter-Liste

num1

The number to scan.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

start

The starting bit.

Rückgabewerte

Returns the index of the found bit, as an int. If no set bit is found, -1 is returned.

Beispiele

Beispiel #1 gmp_scan1() example

<?php
// "1" bit is found at position 3. index starts at 0
$s1 = gmp_init("01000", 2);
echo gmp_scan1($s1, 0) . "\n";

// "1" bit is found at position 9. index starts at 5
$s2 = gmp_init("01000001111", 2);
echo gmp_scan1($s2, 5) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3
9


Set bit

  • « gmp_scan1
  • gmp_sign »
  • PHP Manual
  • GMP Funktionen
  • Set bit

gmp_setbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_setbit — Set bit

Beschreibung

gmp_setbit ( GMP $num , int $index , bool $value = true ) : void

Sets bit index in num.

Parameter-Liste

num

The value to modify.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

index

The index of the bit to set. Index 0 represents the least significant bit.

value

True to set the bit (set it to 1/on); false to clear the bit (set it to 0/off).

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 gmp_setbit() example - 0 index

<?php
$a = gmp_init("2"); //
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0); // 0b10 now becomes 0b11
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2 -> 0b10
3 -> 0b11

Beispiel #2 gmp_setbit() example - 1 index

<?php
$a = gmp_init("0xfd");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 1); // index starts at 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

253 -> 0b11111101
255 -> 0b11111111

Beispiel #3 gmp_setbit() example - clearing a bit

<?php
$a = gmp_init("0xff");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0, false); // clear bit at index 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

255 -> 0b11111111
254 -> 0b11111110

Anmerkungen

Hinweis:

Unlike most of the other GMP functions, gmp_setbit() must be called with a GMP object that already exists (using gmp_init() for example). One will not be automatically created.

Siehe auch

  • gmp_clrbit() - Clear bit
  • gmp_testbit() - Tests if a bit is set


Sign of number

  • « gmp_setbit
  • gmp_sqrt »
  • PHP Manual
  • GMP Funktionen
  • Sign of number

gmp_sign

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_sign — Sign of number

Beschreibung

gmp_sign ( GMP|int|string $num ) : int

Checks the sign of a number.

Parameter-Liste

num

Either a GMP number resource in PHP 5.5 and earlier, a GMP object in PHP 5.6 and later, or a numeric string provided that it is possible to convert the latter to an int.

Rückgabewerte

Returns 1 if num is positive, -1 if num is negative, and 0 if num is zero.

Beispiele

Beispiel #1 gmp_sign() example

<?php
// positive
echo gmp_sign("500") . "\n";

// negative
echo gmp_sign("-500") . "\n";

// zero
echo gmp_sign("0") . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1
-1
0

Siehe auch

  • gmp_abs() - Absolute value
  • abs() - Absolutwert bzw. Betrag


Calculate square root

  • « gmp_sign
  • gmp_sqrtrem »
  • PHP Manual
  • GMP Funktionen
  • Calculate square root

gmp_sqrt

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_sqrt — Calculate square root

Beschreibung

gmp_sqrt ( GMP|int|string $num ) : GMP

Calculates square root of num.

Parameter-Liste

num

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

The integer portion of the square root, as a GMP number.

Beispiele

Beispiel #1 gmp_sqrt() example

<?php
$sqrt1 = gmp_sqrt("9");
$sqrt2 = gmp_sqrt("7");
$sqrt3 = gmp_sqrt("1524157875019052100");

echo gmp_strval($sqrt1) . "\n";
echo gmp_strval($sqrt2) . "\n";
echo gmp_strval($sqrt3) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3
2
1234567890


Square root with remainder

  • « gmp_sqrt
  • gmp_strval »
  • PHP Manual
  • GMP Funktionen
  • Square root with remainder

gmp_sqrtrem

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_sqrtrem — Square root with remainder

Beschreibung

gmp_sqrtrem ( GMP|int|string $num ) : array

Calculate the square root of a number, with remainder.

Parameter-Liste

num

The number being square rooted.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Returns array where first element is the integer square root of num and the second is the remainder (i.e., the difference between num and the first element squared).

Beispiele

Beispiel #1 gmp_sqrtrem() example

<?php
list($sqrt1, $sqrt1rem) = gmp_sqrtrem("9");
list($sqrt2, $sqrt2rem) = gmp_sqrtrem("7");
list($sqrt3, $sqrt3rem) = gmp_sqrtrem("1048576");

echo gmp_strval($sqrt1) . ", " . gmp_strval($sqrt1rem) . "\n";
echo gmp_strval($sqrt2) . ", " . gmp_strval($sqrt2rem) . "\n";
echo gmp_strval($sqrt3) . ", " . gmp_strval($sqrt3rem) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3, 0
2, 3
1024, 0


Convert GMP number to string

  • « gmp_sqrtrem
  • gmp_sub »
  • PHP Manual
  • GMP Funktionen
  • Convert GMP number to string

gmp_strval

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_strval — Convert GMP number to string

Beschreibung

gmp_strval ( GMP|int|string $num , int $base = 10 ) : string

Convert GMP number to string representation in base base. The default base is 10.

Parameter-Liste

num

The GMP number that will be converted to a string.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

base

The base of the returned number. The default base is 10. Allowed values for the base are from 2 to 62 and -2 to -36.

Rückgabewerte

The number, as a string.

Beispiele

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));
?>


Subtract numbers

  • « gmp_strval
  • gmp_testbit »
  • PHP Manual
  • GMP Funktionen
  • Subtract numbers

gmp_sub

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_sub — Subtract numbers

Beschreibung

gmp_sub ( GMP|int|string $num1 , GMP|int|string $num2 ) : GMP

Subtracts num2 from num1 and returns the result.

Parameter-Liste

num1

The number being subtracted from.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

The number subtracted from num1.

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 gmp_sub() example

<?php
$sub = gmp_sub("281474976710656", "4294967296"); // 2^48 - 2^32
echo gmp_strval($sub) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

281470681743360


Tests if a bit is set

  • « gmp_sub
  • gmp_xor »
  • PHP Manual
  • GMP Funktionen
  • Tests if a bit is set

gmp_testbit

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gmp_testbit — Tests if a bit is set

Beschreibung

gmp_testbit ( GMP|int|string $num , int $index ) : bool

Tests if the specified bit is set.

Parameter-Liste

num

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

index

The bit to test

Rückgabewerte

Returns true if the bit is set in resource $a, otherwise false.

Fehler/Exceptions

An E_WARNING level error is issued when index is less than zero, and false is returned.

Beispiele

Beispiel #1 gmp_testbit() example

<?php
$n = gmp_init("1000000");
var_dump(gmp_testbit($n, 1));
gmp_setbit($n, 1);
var_dump(gmp_testbit($n, 1));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)

Siehe auch

  • gmp_setbit() - Set bit
  • gmp_clrbit() - Clear bit


Bitwise XOR

  • « gmp_testbit
  • GMP »
  • PHP Manual
  • GMP Funktionen
  • Bitwise XOR

gmp_xor

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_xor — Bitwise XOR

Beschreibung

gmp_xor ( GMP|int|string $num1 , GMP|int|string $num2 ) : GMP

Calculates bitwise exclusive OR (XOR) of two GMP numbers.

Parameter-Liste

num1

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

num2

Ein GMP-Object, ein Integer oder eine numeriche Zeichenkette.

Rückgabewerte

Ein GMP-Objekt.

Beispiele

Beispiel #1 gmp_xor() example

<?php
$xor1 = gmp_init("1101101110011101", 2);
$xor2 = gmp_init("0110011001011001", 2);

$xor3 = gmp_xor($xor1, $xor2);

echo gmp_strval($xor3, 2) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1011110111000100


The GMP class

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

Einführung

A GMP number. These objects support overloaded arithmetic, bitwise and comparison operators.

Hinweis:

No object oriented interface is provided to manipulate GMP objects. Please use the procedural GMP API.

GMP implements Serializable {
}


Mathematische Funktionen

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Mathematische Funktionen
    • abs — Absolutwert bzw. Betrag
    • acos — Arkuskosinus
    • acosh — Areakosinus hyperbolikus
    • asin — Arkussinus
    • asinh — Areasinus hyperbolikus
    • atan2 — Arkustangens-Variante mit zwei Parametern
    • atan — Arkustangens
    • atanh — Areatangens hyperbolikus
    • base_convert — Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um
    • bindec — Wandelt von binär zu dezimal um
    • ceil — Rundet Brüche auf
    • cos — Kosinus
    • cosh — Kosinus hyperbolikus
    • decbin — Wandelt von dezimal zu binär um
    • dechex — Wandelt von dezimal zu hexadezimal um
    • decoct — Wandelt von dezimal zu oktal um
    • deg2rad — Rechnet einen Winkel von Grad in Bogenmaß um
    • exp — Berechnet den Exponenten von e
    • expm1 — Berechnet exp(Zahl) - 1 mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt
    • fdiv — Dividiert zwei Zahlen gemäß IEEE 754
    • floor — Rundet Brüche ab
    • fmod — Rest einer Gleitkommadivision (Modulus)
    • getrandmax — Liefert die größtmögliche Zufallszahl
    • hexdec — Wandelt von hexadezimal zu dezimal um
    • hypot — Berechnet die Länge der Hypotenuse eines rechtwinkligen Dreiecks
    • intdiv — Integer-Division
    • is_finite — Prüft, ob ein Wert eine gültige endliche Zahl ist
    • is_infinite — Prüft, ob ein Wert unendlich ist
    • is_nan — Prüft, ob ein Wert keine Zahl ist
    • lcg_value — Kongruenzgenerator für Pseudozufallszahlen
    • log10 — Dekadischer Logarithmus (Logarithmus zur Basis 10)
    • log1p — Berechnet log(1 + Zahl) mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt
    • log — Natürlicher Logarithmus
    • max — Bestimmt den Maximalwert
    • min — Bestimmt den Minimalwert
    • mt_getrandmax — Liefert den größtmöglichen Zufallswert
    • mt_rand — Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren
    • mt_srand — Initialisiert den Mersenne-Twister-Zufallszahlengenerator
    • octdec — Wandelt von oktal zu dezimal um
    • pi — Liefert den Wert von Pi
    • pow — Potenzfunktion
    • rad2deg — Rechnet einen Winkel vom Bogenmaß in Grad um
    • rand — Erzeugt eine zufällige Zahl
    • round — Rundet einen Gleitkommawert
    • sin — Sinus
    • sinh — Sinus hyperbolikus
    • sqrt — Quadratwurzel
    • srand — Legt den Anfangswert für den Zufallsgenerator fest
    • tan — Tangens
    • tanh — Tangens hyperbolikus


Einführung

Die mathematischen Funktionen behandeln nur Werte im Bereich der Datentypen int und float der jeweiligen Architektur (dies korrespondiert derzeit mit den C-Typen long bzw. double). Wenn Sie größere Zahlen oder Werte mit höherer Genauigkeit benötigen, sollten Sie sich die mathematischen Funktionen mit beliebiger Genauigkeit ansehen.

Lesen Sie im Handbuch auch die Seite über Arithmetische Operatoren.


Vordefinierte Konstanten

Die aufgelisteten Konstanten stehen immer zur Verfügung, da sie zum Grundbestand von PHP gehören.

Mathematische Konstanten
Konstante | Wert | Beschreibung | Verfügbarkeit
M_PI | 3.14159265358979323846 | 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_SQRTPI | 1.77245385090551602729 | sqrt(pi) | PHP 5.2.0
M_2_SQRTPI | 1.12837916709551257390 | 2/sqrt(pi) |
M_SQRT2 | 1.41421356237309504880 | sqrt(2) |
M_SQRT3 | 1.73205080756887729352 | sqrt(3) | PHP 5.2.0
M_SQRT1_2 | 0.70710678118654752440 | 1/sqrt(2) |
M_LNPI | 1.14472988584940017414 | log_e(pi) | PHP 5.2.0
M_EULER | 0.57721566490153286061 | Euler-Konstante | PHP 5.2.0
PHP_ROUND_HALF_UP | 1 | n,5 wird aufgerundet | PHP 5.3.0
PHP_ROUND_HALF_DOWN | 2 | n,5 wird abgerundet | PHP 5.3.0
PHP_ROUND_HALF_EVEN | 3 | n,5 wird zur nächsten geraden Zahl gerundet | PHP 5.3.0
PHP_ROUND_HALF_ODD | 4 | n,5 wird zur nächsten ungeraden Zahl gerundet | PHP 5.3.0
NAN | NAN (als Gleitkommazahl) | Not A Number (Keine Zahl) |
INF | INF (als Gleitkommazahl) | infinite (unendlich) |

Alle Konstanten, die oben ohne PHP-Version angegeben sind, stehen seit PHP 5.0.0 zur Verfügung.


Mathematische Funktionen

Inhaltsverzeichnis

  • abs — Absolutwert bzw. Betrag
  • acos — Arkuskosinus
  • acosh — Areakosinus hyperbolikus
  • asin — Arkussinus
  • asinh — Areasinus hyperbolikus
  • atan2 — Arkustangens-Variante mit zwei Parametern
  • atan — Arkustangens
  • atanh — Areatangens hyperbolikus
  • base_convert — Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um
  • bindec — Wandelt von binär zu dezimal um
  • ceil — Rundet Brüche auf
  • cos — Kosinus
  • cosh — Kosinus hyperbolikus
  • decbin — Wandelt von dezimal zu binär um
  • dechex — Wandelt von dezimal zu hexadezimal um
  • decoct — Wandelt von dezimal zu oktal um
  • deg2rad — Rechnet einen Winkel von Grad in Bogenmaß um
  • exp — Berechnet den Exponenten von e
  • expm1 — Berechnet exp(Zahl) - 1 mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt
  • fdiv — Dividiert zwei Zahlen gemäß IEEE 754
  • floor — Rundet Brüche ab
  • fmod — Rest einer Gleitkommadivision (Modulus)
  • getrandmax — Liefert die größtmögliche Zufallszahl
  • hexdec — Wandelt von hexadezimal zu dezimal um
  • hypot — Berechnet die Länge der Hypotenuse eines rechtwinkligen Dreiecks
  • intdiv — Integer-Division
  • is_finite — Prüft, ob ein Wert eine gültige endliche Zahl ist
  • is_infinite — Prüft, ob ein Wert unendlich ist
  • is_nan — Prüft, ob ein Wert keine Zahl ist
  • lcg_value — Kongruenzgenerator für Pseudozufallszahlen
  • log10 — Dekadischer Logarithmus (Logarithmus zur Basis 10)
  • log1p — Berechnet log(1 + Zahl) mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt
  • log — Natürlicher Logarithmus
  • max — Bestimmt den Maximalwert
  • min — Bestimmt den Minimalwert
  • mt_getrandmax — Liefert den größtmöglichen Zufallswert
  • mt_rand — Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren
  • mt_srand — Initialisiert den Mersenne-Twister-Zufallszahlengenerator
  • octdec — Wandelt von oktal zu dezimal um
  • pi — Liefert den Wert von Pi
  • pow — Potenzfunktion
  • rad2deg — Rechnet einen Winkel vom Bogenmaß in Grad um
  • rand — Erzeugt eine zufällige Zahl
  • round — Rundet einen Gleitkommawert
  • sin — Sinus
  • sinh — Sinus hyperbolikus
  • sqrt — Quadratwurzel
  • srand — Legt den Anfangswert für den Zufallsgenerator fest
  • tan — Tangens
  • tanh — Tangens hyperbolikus


Absolutwert bzw. Betrag

  • « Mathematische Funktionen
  • acos »
  • PHP Manual
  • Mathematische Funktionen
  • Absolutwert bzw. Betrag

abs

(PHP 4, PHP 5, PHP 7, PHP 8)

abs — Absolutwert bzw. Betrag

Beschreibung

abs ( mixed $num ) : int|float

Gibt den Betrag des Wertes num ohne Vorzeichen zurück.

Parameter-Liste

num

Der zu bearbeitende Wert.

Rückgabewerte

Der Betrag des Wertes num. Ist num vom Typ float, so ist auch das Ergebnis von diesem Typ. Andernfalls wird das Ergebnis als int zurückgegeben, da float einen größeren Wertebereich als int hat.

Beispiele

Beispiel #1 abs()-Beispiel

<?php
echo abs(-4.2); // 4.2 (double/float)
echo abs(5);    // 5 (integer)
echo abs(-5);   // 5 (integer)
?>

Siehe auch

  • gmp_abs() - Absolute value
  • gmp_sign() - Sign of number


Arkuskosinus

  • « abs
  • acosh »
  • PHP Manual
  • Mathematische Funktionen
  • Arkuskosinus

acos

(PHP 4, PHP 5, PHP 7, PHP 8)

acos — Arkuskosinus

Beschreibung

acos ( float $num ) : float

Berechnet den Arkuskosinus des Parameters num.
acos() ist die Umkehrfuntion von
cos(), d.h. innerhalb des Wertebereichs von
acos() gilt a==cos(acos(a)).

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

Der Arkuskosinus von num im Bogenmaß.

Siehe auch

  • cos() - Kosinus
  • acosh() - Areakosinus hyperbolikus
  • asin() - Arkussinus
  • atan() - Arkustangens


Areakosinus hyperbolikus

  • « acos
  • asin »
  • PHP Manual
  • Mathematische Funktionen
  • Areakosinus hyperbolikus

acosh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

acosh — Areakosinus hyperbolikus

Beschreibung

acosh ( float $num ) : float

Gibt den inversen Kosinus hyperbolikus von num zurück, d.h. den Wert dessen Kosinus hyperbolikus num ergibt.

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

Der Areakosinus hyperbolikus von num.

Siehe auch

  • cosh() - Kosinus hyperbolikus
  • acos() - Arkuskosinus
  • asinh() - Areasinus hyperbolikus
  • atanh() - Areatangens hyperbolikus


Arkussinus

  • « acosh
  • asinh »
  • PHP Manual
  • Mathematische Funktionen
  • Arkussinus

asin

(PHP 4, PHP 5, PHP 7, PHP 8)

asin — Arkussinus

Beschreibung

asin ( float $num ) : float

Berechnet den Arkussinus des Parameters num.
asin() ist die Umkehrfunktion von
sin(), d.h. innerhalb des Wertebereichs von
asin() gilt a==sin(asin(a)).

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

Der Arkussinus von num im Bogenmaß.

Siehe auch

  • sin() - Sinus
  • asinh() - Areasinus hyperbolikus
  • acos() - Arkuskosinus
  • atan() - Arkustangens


Areasinus hyperbolikus

  • « asin
  • atan2 »
  • PHP Manual
  • Mathematische Funktionen
  • Areasinus hyperbolikus

asinh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

asinh — Areasinus hyperbolikus

Beschreibung

asinh ( float $num ) : float

Berechnet den Areasinus hyperbolikus von num. Der Areasinus hyperbolikus ist die Umkehrfunktion des Sinus hyperbolikus, d.h. asinh(sinh(num)) = num.

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

Der Areasinus hyperbolikus von num.

Siehe auch

  • sinh() - Sinus hyperbolikus
  • asin() - Arkussinus
  • acosh() - Areakosinus hyperbolikus
  • atanh() - Areatangens hyperbolikus


Arkustangens-Variante mit zwei Parametern

  • « asinh
  • atan »
  • PHP Manual
  • Mathematische Funktionen
  • Arkustangens-Variante mit zwei Parametern

atan2

(PHP 4, PHP 5, PHP 7, PHP 8)

atan2 — Arkustangens-Variante mit zwei Parametern

Beschreibung

atan2 ( float $y , float $x ) : float

Diese Funktion berechnet den Arkustangens von y/x. Im Gegensatz zu atan() kann sie dabei die Vorzeichen beider Parameter beachten und so den Quadranten des Ergebnisses bestimmen.

Die Funktion gibt das Ergebnis im Bogenmaß zurück, das zwischen -PI und PI (inklusive) liegt.

Parameter-Liste

y

Der Dividend (Zähler).

x

Der Divisor (Nenner).

Rückgabewerte

Der Arkustangens von y/x im Bogenmaß.

Siehe auch

  • atan() - Arkustangens


Arkustangens

  • « atan2
  • atanh »
  • PHP Manual
  • Mathematische Funktionen
  • Arkustangens

atan

(PHP 4, PHP 5, PHP 7, PHP 8)

atan — Arkustangens

Beschreibung

atan ( float $num ) : float

Berechnet den Arkustangens von num. atan() ist die Umkehrfunktion von tan(), d.h. für alle Werte im Wertebereich von atan() gilt a==tan(atan(a)).

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

Der Arkustangens von num im Bogenmaß.

Siehe auch

  • tan() - Tangens
  • atanh() - Areatangens hyperbolikus
  • asin() - Arkussinus
  • acos() - Arkuskosinus


Areatangens hyperbolikus

  • « atan
  • base_convert »
  • PHP Manual
  • Mathematische Funktionen
  • Areatangens hyperbolikus

atanh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

atanh — Areatangens hyperbolikus

Beschreibung

atanh ( float $num ) : float

Gibt den inversen Tangens hyperbolikus von num zurück, d.h. den Wert dessen Tangens hyperbolikus num ergibt.

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

Der Areatangens hyperbolikus von num.

Siehe auch

  • tanh() - Tangens hyperbolikus
  • atan() - Arkustangens
  • asinh() - Areasinus hyperbolikus
  • acosh() - Areakosinus hyperbolikus


Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um

  • « atanh
  • bindec »
  • PHP Manual
  • Mathematische Funktionen
  • Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um

base_convert

(PHP 4, PHP 5, PHP 7, PHP 8)

base_convert — Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um

Beschreibung

base_convert ( string $num , int $from_base , int $to_base ) : string

base_convert() gibt eine Zeichenkette zurück, die num in der Darstellung des Zahlensystems to_base enthält. Das Zahlensystem, in dem die Zahl num vorliegt wird in from_base angegeben. Sowohl from_base als auch to_base müssen zwischen 2 und 36 (inklusive) liegen. In Zahlensystemen mit einer Basis größer als zehn werden die Zahlen größer als neun durch die Buchstaben a bis z dargestellt. Dabei steht a für 10, b für 11 und so weiter bis z für 35. Die Groß- und Kleinschreibung der Buchstaben spielt dabei keine Rolle, d.h. num wird ohne Berücksichtigung der Groß- und Kleinschreibung ausgewertet.

Warnung

base_convert() kann bei großen Werten auf Grund von Eigenschaften der zu Grunde liegenden internen "float"- und "double"-Datentypen die Genauigkeit verschlechtern. Sehen Sie hierzu bitte den Abschnitt Gleitkommazahlen in diesem Handbuch für genauere Informationen zu diesem Thema.

Parameter-Liste

num

Die umzuwandelnde numerische Zeichenkette. Alle ungültigen Zeichen werden ohne Warnung ignoriert. Von PHP 7.4.0 an ist die Übergabe jeglicher ungültiger Zeichen missbilligt.

from_base

Die Basis zu der num kodiert ist.

to_base

Die Basis zu der num umgewandelt werden soll.

Rückgabewerte

num wandelt zur Basis to_base um.

Changelog

Version | Beschreibung
7.4.0 | Die Übergabe ungültiger Zeichen löst nun einen Deprecation-Hinweis aus. Das Ergebnis wird weiterhin so berechnet, als würden die ungültigen Zeichen nicht existieren.

Beispiele

Beispiel #1 base_convert()-Beispiel

<?php
$hexadecimal = 'a37334';
echo base_convert($hexadecimal, 16, 2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

101000110111001100110100

Siehe auch

  • intval() - Konvertiert einen Wert nach integer


Wandelt von binär zu dezimal um

  • « base_convert
  • ceil »
  • PHP Manual
  • Mathematische Funktionen
  • Wandelt von binär zu dezimal um

bindec

(PHP 4, PHP 5, PHP 7, PHP 8)

bindec — Wandelt von binär zu dezimal um

Beschreibung

bindec ( string $binary_string ) : int|float

Gibt die dezimale Entsprechung der in binärer Darstellung angegebenen Zeichenkette binary_string zurück.

bindec() wandelt eine binäre Zahl in einen int oder, falls aus Größengründen benötigt, in einen float um.

bindec() interpretiert alle binary_string-Werte als vorzeichenlose Ganzzahlen. Dies ist so, weil bindec() das höchstwertige Bit als weitere Größenordnung anstatt als Vorzeichenbit ansieht.

Parameter-Liste

binary_string

Die umzuwandelnde Binär-Zeichenkette. Jegliche ungültigen Zeichen in binary_string werden stillschweigend ignoriert. Von PHP 7.4.0 an ist die Übergabe jeglicher ungültiger Zeichen missbilligt.

Warnung

Der Parameter muss eine Zeichenkette sein. Andere Datentypen ergeben unerwartete Ergebnisse.

Rückgabewerte

Der Dezimalwert von binary_string.

Changelog

Version | Beschreibung
7.4.0 | Die Übergabe ungültiger Zeichen löst nun einen Deprecation-Hinweis aus. Das Ergebnis wird weiterhin so berechnet, als würden die ungültigen Zeichen nicht existieren.

Beispiele

Beispiel #1 bindec()-Beispiel

<?php
echo bindec('110011') . "\n";
echo bindec('000110011') . "\n";

echo bindec('111');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

51
51
7

Beispiel #2 bindec() interpretiert die Eingabe als vorzeichenlose Ganzzahlen

<?php
/*
 * Die Lektion dieses Beispiels liegt in der Ausgabe,
 * und nicht im PHP-Code selbst.
 */

$magnitude_lower = pow(2, (PHP_INT_SIZE * 8) - 2);
p($magnitude_lower - 1);
p($magnitude_lower, 'Beachte den Überlauf, auch in den folgenden Fällen!');

p(PHP_INT_MAX, 'PHP_INT_MAX');
p(~PHP_INT_MAX, 'interpretiert als eins mehr als PHP_INT_MAX');

if (PHP_INT_SIZE == 4) {
    $note = 'interpretiert als größte vorzeichenlose Ganzzahl';
} else {
    $note = 'interpretiert als größte vorzeichenlose Ganzzahl (18446744073709551615),
              aber ungenau aufgrund mangelnder Gleitkommagenauigkeit';
}
p(-1, $note);

function p($input, $note = '') {
    echo "Eingabe:      $input\n";

    $format = '%0' . (PHP_INT_SIZE * 8) . 'b';
    $bin = sprintf($format, $input);
    echo "Binär:        $bin\n";

    ini_set('precision', 20);  // zur Lesbarkeit auf 64bit-Systemen
    $dec = bindec($bin);
    echo 'bindec():     ' . $dec . "\n";

    if ($note) {
        echo "HINWEIS:      $note\n";
    }

    echo "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe aus 32-Bit-Systemen:

Eingabe:      1073741823
Binär:        00111111111111111111111111111111
bindec():     1073741823

Eingabe:      1073741824
Binär:        01000000000000000000000000000000
bindec():     1073741824
HINWEIS:      Beachte den Überlauf, auch in den folgenden Fällen!

Eingabe:      2147483647
Binär:        01111111111111111111111111111111
bindec():     2147483647
HINWEIS:      PHP_INT_MAX

Eingabe:      -2147483648
Binär:        10000000000000000000000000000000
bindec():     2147483648
HINWEIS:      interpretiert als eins mehr als PHP_INT_MAX

Eingabe:      -1
Binär:        11111111111111111111111111111111
bindec():     4294967295
HINWEIS:      interpretiert als größte vorzeichenlose Ganzzahl

Das oben gezeigte Beispiel erzeugt folgende Ausgabe aus 64-Bit-Systemen:

Eingabe:      4611686018427387903
Binär:        0011111111111111111111111111111111111111111111111111111111111111
bindec():     4611686018427387903

Eingabe:      4611686018427387904
Binär:        0100000000000000000000000000000000000000000000000000000000000000
bindec():     4611686018427387904
HINWEIS:      Beachte den Überlauf, auch in den folgenden Fällen!

Eingabe:      9223372036854775807
Binär:        0111111111111111111111111111111111111111111111111111111111111111
bindec():     9223372036854775807
HINWEIS:      PHP_INT_MAX

Eingabe:      -9223372036854775808
Binär:        1000000000000000000000000000000000000000000000000000000000000000
bindec():     9223372036854775808
HINWEIS:      interpretiert als eins mehr als PHP_INT_MAX

Eingabe:      -1
Binär:        1111111111111111111111111111111111111111111111111111111111111111
bindec():     18446744073709551616
HINWEIS:      interpretiert als größte vorzeichenlose Ganzzahl (18446744073709551615),
              aber ungenau aufgrund mangelnder Gleitkommagenauigkeit

Anmerkungen

Hinweis:

Die Funktion kann Zahlen umwandeln, die für den Typ int der Plattform zu groß sind; größere Werte werden dann als float zurückgegeben.

Siehe auch

  • decbin() - Wandelt von dezimal zu binär um
  • octdec() - Wandelt von oktal zu dezimal um
  • hexdec() - Wandelt von hexadezimal zu dezimal um
  • base_convert() - Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um


Rundet Brüche auf

  • « bindec
  • cos »
  • PHP Manual
  • Mathematische Funktionen
  • Rundet Brüche auf

ceil

(PHP 4, PHP 5, PHP 7, PHP 8)

ceil — Rundet Brüche auf

Beschreibung

ceil ( float $value ) : float

Gibt die nächste ganze Zahl zurück, die größer oder gleich dem Parameter value ist.

Parameter-Liste

value

Der aufzurundende Wert.

Rückgabewerte

Der aufgerundete Wert. Dieser wird weiterhin als float zurückgegeben, da der Wertebereich von float normalerweise größer als der von int ist.

Beispiele

Beispiel #1 ceil()-Beispiel

<?php
echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
echo ceil(-3.14);  // -3
?>

Siehe auch

  • floor() - Rundet Brüche ab
  • round() - Rundet einen Gleitkommawert


Kosinus

  • « ceil
  • cosh »
  • PHP Manual
  • Mathematische Funktionen
  • Kosinus

cos

(PHP 4, PHP 5, PHP 7, PHP 8)

cos — Kosinus

Beschreibung

cos ( float $num ) : float

cos() berechnet den Kosinus des Winkels num. Der Parameter num ist im Bogenmaß.

Parameter-Liste

num

Ein Winkel in Bogenmaß.

Rückgabewerte

Der Kosinus des Winkels num.

Beispiele

Beispiel #1 cos()-Beispiel

<?php

echo cos(M_PI); // -1

?>

Siehe auch

  • acos() - Arkuskosinus
  • sin() - Sinus
  • tan() - Tangens
  • deg2rad() - Rechnet einen Winkel von Grad in Bogenmaß um


Kosinus hyperbolikus

  • « cos
  • decbin »
  • PHP Manual
  • Mathematische Funktionen
  • Kosinus hyperbolikus

cosh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

cosh — Kosinus hyperbolikus

Beschreibung

cosh ( float $num ) : float

Berechnet den Kosinus hyperbolikus des Parameters num, welcher definiert ist als (exp(num) + exp(-num))/2.

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

Der Kosinus hyperbolikus von num.

Siehe auch

  • cos() - Kosinus
  • acosh() - Areakosinus hyperbolikus
  • sinh() - Sinus hyperbolikus
  • tanh() - Tangens hyperbolikus


Wandelt von dezimal zu binär um

  • « cosh
  • dechex »
  • PHP Manual
  • Mathematische Funktionen
  • Wandelt von dezimal zu binär um

decbin

(PHP 4, PHP 5, PHP 7, PHP 8)

decbin — Wandelt von dezimal zu binär um

Beschreibung

decbin ( int $num ) : string

Gibt die binäre Darstellung der in num angegebenen Ganzzahl als Zeichenkette zurück.

Parameter-Liste

num

Der umzuwandelnde Dezimalwert.

Wertebereich der Eingabe unter 32bit-Systemen
positive num | negative num | Rückgabewert
0 | 0
1 | 1
2 | 10
... weiterer Verlauf ...
2147483646 | 1111111111111111111111111111110
2147483647 (größte vorzeichenbehaftete Ganzzahl) | 1111111111111111111111111111111 (31 Einsen)
2147483648 | -2147483648 | 10000000000000000000000000000000
... weiterer Verlauf ...
4294967294 | -2 | 11111111111111111111111111111110
4294967295 (größte vorzeichenlose Ganzzahl) | -1 | 11111111111111111111111111111111 (32 Einsen)
Wertebereich der Eingabe unter 64bit-Systemen
positive num | negative num | Rückgabewert
0 | 0
1 | 1
2 | 10
... weiterer Verlauf ...
9223372036854775806 | 111111111111111111111111111111111111111111111111111111111111110
9223372036854775807 (größte vorzeichenbehaftete Ganzzahl) | 111111111111111111111111111111111111111111111111111111111111111 (63 Einsen)
-9223372036854775808 | 1000000000000000000000000000000000000000000000000000000000000000
... weiterer Verlauf ...
-2 | 1111111111111111111111111111111111111111111111111111111111111110
-1 | 1111111111111111111111111111111111111111111111111111111111111111 (64 Einsen)

Rückgabewerte

Binärdarstellung von num als Zeichenkette.

Beispiele

Beispiel #1 decbin()-Beispiel

<?php
echo decbin(12) . "\n";
echo decbin(26);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1100
11010

Siehe auch

  • bindec() - Wandelt von binär zu dezimal um
  • decoct() - Wandelt von dezimal zu oktal um
  • dechex() - Wandelt von dezimal zu hexadezimal um
  • base_convert() - Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um
  • printf() - Gibt einen formatierten String aus unter Verwendung von %b, %032b oder %064b als Format
  • sprintf() unter Verwendung von %b, %032b oder %064b als Format


Wandelt von dezimal zu hexadezimal um

  • « decbin
  • decoct »
  • PHP Manual
  • Mathematische Funktionen
  • Wandelt von dezimal zu hexadezimal um

dechex

(PHP 4, PHP 5, PHP 7, PHP 8)

dechex — Wandelt von dezimal zu hexadezimal um

Beschreibung

dechex ( int $num ) : string

Gibt die hexadezimale Darstellung der in num angegebenen vorzeichenlosen Ganzzahl als Zeichenkette zurück.

Der größte umwandelbare Wert ist PHP_INT_MAX * 2 + 1 (oder -1): auf 32bit-Platformen ist dies 4294967295 in Dezimaldarstellung, was in dechex() ffffffff zurückgibt.

Parameter-Liste

num

Der umzuwandelnde Wert.

Da der Typ int von PHP vorzeichenbehaftet ist, aber dechex() nur vorzeichenlose Ganzzahlen umwandelt, werden negative Ganzzahlen behandelt, als wären sie vorzeichenlos.

Rückgabewerte

Die hexadezimale Zeichenkettendarstellung von num.

Beispiele

Beispiel #1 dechex()-Beispiel

<?php
echo dechex(10) . "\n";
echo dechex(47);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a
2f

Beispiel #2 dechex()-Beispiel mit großen Ganzzahlen

<?php
// Die Ausgaben weiter unten setzen eine 32bit-Plattform voraus.
// Es ist zu beachten, dass die Ausgabe für alle Werte gleich ist.
echo dechex(-1)."\n";
echo dechex(PHP_INT_MAX * 2 + 1)."\n";
echo dechex(pow(2, 32) - 1)."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

ffffffff
ffffffff
ffffffff

Siehe auch

  • hexdec() - Wandelt von hexadezimal zu dezimal um
  • decbin() - Wandelt von dezimal zu binär um
  • decoct() - Wandelt von dezimal zu oktal um
  • base_convert() - Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um


Wandelt von dezimal zu oktal um

  • « dechex
  • deg2rad »
  • PHP Manual
  • Mathematische Funktionen
  • Wandelt von dezimal zu oktal um

decoct

(PHP 4, PHP 5, PHP 7, PHP 8)

decoct — Wandelt von dezimal zu oktal um

Beschreibung

decoct ( int $num ) : string

Gibt die in num angegebene Ganzzahl als Zeichenkette in oktaler Darstellung zurück. Der größte umwandelbare Wert variiert abhängig von der verwendeten Plattform. Unter 32bit ist dies üblicherweise 4294967295 (dezimal) bzw. 37777777777 (oktal). Auf 64bit-Plattformen liegt das Limit üblicherweise bei 9223372036854775807 (dezimal) bzw. 777777777777777777777 (oktal).

Parameter-Liste

num

Der zu umzuwandelnde Wert.

Rückgabewerte

Oktale Zeichenkettendarstellung von num.

Beispiele

Beispiel #1 decoct()-Beispiel

<?php
echo decoct(15) . "\n";
echo decoct(264);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

17
410

Siehe auch

  • octdec() - Wandelt von oktal zu dezimal um
  • decbin() - Wandelt von dezimal zu binär um
  • dechex() - Wandelt von dezimal zu hexadezimal um
  • base_convert() - Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um


Rechnet einen Winkel von Grad in Bogenmaß um

  • « decoct
  • exp »
  • PHP Manual
  • Mathematische Funktionen
  • Rechnet einen Winkel von Grad in Bogenmaß um

deg2rad

(PHP 4, PHP 5, PHP 7, PHP 8)

deg2rad — Rechnet einen Winkel von Grad in Bogenmaß um

Beschreibung

deg2rad ( float $num ) : float

Die Funktion rechnet den Wert num von Grad in den entsprechenden Wert im Bogenmaß um.

Parameter-Liste

num

Ein Winkel in Grad.

Rückgabewerte

Der äquivalente Wert zu num im Bogenmaß.

Beispiele

Beispiel #1 deg2rad()-Beispiel

<?php

echo deg2rad(45); // 0.785398163397
var_dump(deg2rad(45) === M_PI_4); // bool(true)

?>

Siehe auch

  • rad2deg() - Rechnet einen Winkel vom Bogenmaß in Grad um


Berechnet den Exponenten von e

  • « deg2rad
  • expm1 »
  • PHP Manual
  • Mathematische Funktionen
  • Berechnet den Exponenten von e

exp

(PHP 4, PHP 5, PHP 7, PHP 8)

exp — Berechnet den Exponenten von e

Beschreibung

exp ( float $num ) : float

Berechnet e hoch num.

Hinweis:

'e' ist die Basis des natürlichen Logarithmus (ca. 2,718282).

Parameter-Liste

num

Der zu verarbeitende Exponent.

Rückgabewerte

'e' hoch num.

Beispiele

Beispiel #1 exp()-Beispiel

<?php
echo exp(12) . "\n";
echo exp(5.7);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1.6275E+005
298.87

Siehe auch

  • log() - Natürlicher Logarithmus
  • pow() - Potenzfunktion


Berechnet exp(Zahl) - 1 mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt

  • « exp
  • fdiv »
  • PHP Manual
  • Mathematische Funktionen
  • Berechnet exp(Zahl) - 1 mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt

expm1

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

expm1 — Berechnet exp(Zahl) - 1 mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt

Beschreibung

expm1 ( float $num ) : float

expm1() gibt das Äquivalent zu 'exp(num) -1' zurück, das so berechnet wird, dass es auch dann genau ist, wenn num sehr nahe bei Null liegt. In solchen Fällen würde exp() auf Grund mangelnder Präzision gerundet eins zurückgeben und das Gesamtergebnis von 'exp(num) -1' wäre einfach Null.

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

'e' hoch num minus eins.

Siehe auch

  • log1p() - Berechnet log(1 + Zahl) mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt
  • exp() - Berechnet den Exponenten von e


Dividiert zwei Zahlen gemäß IEEE 754

  • « expm1
  • floor »
  • PHP Manual
  • Mathematische Funktionen
  • Dividiert zwei Zahlen gemäß IEEE 754

fdiv

(PHP 8)

fdiv — Dividiert zwei Zahlen gemäß IEEE 754

Beschreibung

fdiv ( float $num1 , float $num2 ) : float

Gibt das Ergebnis der Gleitkomma-Division von num1 durch num2 zurück. Wenn num2 gleich Null ist, dann wird entweder INF, -INF oder NAN zurückgegeben.

Es ist zu beachten, dass ein Vergleich von NAN mit == oder === mit irgendeinem Wert, einschließlich sich selbst, immer false zurückgibt.

Parameter-Liste

num1

Der Dividend (Zähler).

num2

Der Divisor (Nenner).

Rückgabewerte

Das Ergebnis von num1/num2 als Gleitkommazahl.

Beispiele

Beispiel #1 Beispiel für die Verwendung von fdiv()

<?php
var_dump(fdiv(5.7, 1.3)); // float(4.384615384615385)
var_dump(fdiv(4, 2)); // float(2)
var_dump(fdiv(1.0, 0.0)); // float(INF)
var_dump(fdiv(-1.0, 0.0)); // float(-INF)
var_dump(fdiv(0.0, 0.0)); // float(NAN)
?>

Siehe auch

  • / - Gleitkomma-Division
  • intdiv() - Integer-Division
  • fmod() - Gleitkomma-Modulus


Rundet Brüche ab

  • « fdiv
  • fmod »
  • PHP Manual
  • Mathematische Funktionen
  • Rundet Brüche ab

floor

(PHP 4, PHP 5, PHP 7, PHP 8)

floor — Rundet Brüche ab

Beschreibung

floor ( float $value ) : float

Gibt die nächste ganze Zahl, die kleiner oder gleich dem Parameter value ist, als Gleitkommazahl zurück.

Parameter-Liste

value

Der abzurundende Wert.

Rückgabewerte

Gibt den Wert von value gerundet auf die nächstkleinere ganze Zahl zurück. Weil der Wertebereich von float normalerweise größer ist als der von int, ist dieser Rückgabewert nach wie vor vom Typ float. Diese Funktion gibt im Falle eines Fehlers (bspw. bei der Übergabe eines Arrays) false zurück.

Beispiele

Beispiel #1 floor()-Beispiel

<?php
echo floor(4.3);   // 4
echo floor(9.999); // 9
echo floor(-3.14); // -4
?>

Siehe auch

  • ceil() - Rundet Brüche auf
  • round() - Rundet einen Gleitkommawert


Rest einer Gleitkommadivision (Modulus)

  • « floor
  • getrandmax »
  • PHP Manual
  • Mathematische Funktionen
  • Rest einer Gleitkommadivision (Modulus)

fmod

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

fmod — Rest einer Gleitkommadivision (Modulus)

Beschreibung

fmod ( float $num1 , float $num2 ) : float

Berechnet den Gleitkommarest der Division des Dividenden num1 durch den Divisor num2. Der Rest r ist definiert als 'num1 = i * num2 + r' für ein Ganzzahliges Divisionsergebnis i. Ist num2 ungleich Null, so hat r das gleiche Vorzeichen wie num1 und ist kleiner als num2.

Parameter-Liste

num1

Der Dividend (Zähler).

num2

Der Divisor (Nenner).

Rückgabewerte

Der Gleitkommarest der Division num1/num2.

Beispiele

Beispiel #1 fmod()-Beispiel

<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
// $r ist 0.5 weil 4 * 1.3 + 0.5 = 5.7
?>

Siehe auch

  • / - Gleitkomma-Division
  • % - Integer-Modulus
  • intdiv() - Integer-Division


Liefert die größtmögliche Zufallszahl

  • « fmod
  • hexdec »
  • PHP Manual
  • Mathematische Funktionen
  • Liefert die größtmögliche Zufallszahl

getrandmax

(PHP 4, PHP 5, PHP 7, PHP 8)

getrandmax — Liefert die größtmögliche Zufallszahl

Beschreibung

getrandmax ( ) : int

Gibt den größten Wert zurück, den die Funktion rand() zurückgeben kann.

Rückgabewerte

Der größtmögliche Rückgabewert der Funktion rand().

Siehe auch

  • rand() - Erzeugt eine zufällige Zahl
  • srand() - Legt den Anfangswert für den Zufallsgenerator fest
  • mt_getrandmax() - Liefert den größtmöglichen Zufallswert


Wandelt von hexadezimal zu dezimal um

  • « getrandmax
  • hypot »
  • PHP Manual
  • Mathematische Funktionen
  • Wandelt von hexadezimal zu dezimal um

hexdec

(PHP 4, PHP 5, PHP 7, PHP 8)

hexdec — Wandelt von hexadezimal zu dezimal um

Beschreibung

hexdec ( string $hex_string ) : int|float

Gibt die dezimale Entsprechung der in hexadezimaler Darstellung angegebenen Zahl hex_string zurück. Die Funktion hexdec() wandelt eine hexadezimale Zeichenkette in eine Dezimalzahl um.

hexdec() ignoriert alle nicht hexadezimal kodierten Zeichen (0-9 a-f) in hex_string. Von PHP 7.4.0 an ist die Übergabe jeglicher ungültiger Zeichen missbilligt.

Parameter-Liste

hex_string

Die umzuwandelnde hexadezimale Zeichenkette.

Rückgabewerte

Dezimaldarstellung von hex_string.

Changelog

Version | Beschreibung
7.4.0 | Die Übergabe ungültiger Zeichen löst nun einen Deprecation-Hinweis aus. Das Ergebnis wird weiterhin so berechnet, als würden die ungültigen Zeichen nicht existieren.

Beispiele

Beispiel #1 hexdec()-Beispiel

<?php
var_dump(hexdec("See"));
var_dump(hexdec("ee"));
// both print "int(238)"

var_dump(hexdec("that")); // print "int(10)"
var_dump(hexdec("a0")); // print "int(160)"
?>

Anmerkungen

Hinweis:

Die Funktion kann nun auch Werte umwandeln, die zu groß für den Typ int der jeweiligen Plattform sind, das Ergebnis wird dann als float zurückgegeben.

Siehe auch

  • dechex() - Wandelt von dezimal zu hexadezimal um
  • bindec() - Wandelt von binär zu dezimal um
  • octdec() - Wandelt von oktal zu dezimal um
  • base_convert() - Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um


Berechnet die Länge der Hypotenuse eines rechtwinkligen Dreiecks

  • « hexdec
  • intdiv »
  • PHP Manual
  • Mathematische Funktionen
  • Berechnet die Länge der Hypotenuse eines rechtwinkligen Dreiecks

hypot

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

hypot — Berechnet die Länge der Hypotenuse eines rechtwinkligen Dreiecks

Beschreibung

hypot ( float $x , float $y ) : float

hypot() berechnet die Länge der Hypotenuse eines rechtwinkligen Dreiecks aus den Längen der beiden Katheten bzw. den Abstand eines Punktes (x,y) vom Ursprung. Dies entspricht sqrt(x*x + y*y).

Parameter-Liste

x

Die Länge der ersten Kathete.

y

Die Länge der zweiten Kathete.

Rückgabewerte

Die berechnete Länge der Hypotenuse.


Integer-Division

  • « hypot
  • is_finite »
  • PHP Manual
  • Mathematische Funktionen
  • Integer-Division

intdiv

(PHP 7, PHP 8)

intdiv — Integer-Division

Beschreibung

intdiv ( int $num1 , int $num2 ) : int

Gibt den Integer-Quotienten der Division von num1 durch num2 zurück.

Parameter-Liste

num1

Die Ausgangszahl, die geteilt werden soll.

num2

Die Zahl, durch die num1 geteilt werden soll.

Rückgabewerte

Der Integer-Quotient der Division num1 durch num2.

Fehler/Exceptions

Wenn num2 0 ist, wird eine DivisionByZeroError-Exception ausgelöst. Wenn num1 PHP_INT_MIN ist und num2 -1, wird eine ArithmeticError-Exception ausgelöst.

Beispiele

Beispiel #1 intdiv()-Beispiel

<?php
var_dump(intdiv(3, 2));
var_dump(intdiv(-3, 2));
var_dump(intdiv(3, -2));
var_dump(intdiv(-3, -2));
var_dump(intdiv(PHP_INT_MAX, PHP_INT_MAX));
var_dump(intdiv(PHP_INT_MIN, PHP_INT_MIN));
var_dump(intdiv(PHP_INT_MIN, -1));
var_dump(intdiv(1, 0));
?>
int(1)
int(-1)
int(-1)
int(1)
int(1)
int(1)

Fatal error: Uncaught ArithmeticError: Division of PHP_INT_MIN by -1 is not an integer in %s on line 8
Fatal error: Uncaught DivisionByZeroError: Division by zero in %s on line 9

Siehe auch

  • / - Gleitkomma-Division
  • % - Integer-Modulus
  • fmod() - Gleitkomma-Modulus


Prüft, ob ein Wert eine gültige endliche Zahl ist

  • « intdiv
  • is_infinite »
  • PHP Manual
  • Mathematische Funktionen
  • Prüft, ob ein Wert eine gültige endliche Zahl ist

is_finite

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_finite — Prüft, ob ein Wert eine gültige endliche Zahl ist

Beschreibung

is_finite ( float $num ) : bool

Prüft, ob der übergebene Parameter num auf der gegebenen Plattform ein gültiger endlicher Wert ist.

Parameter-Liste

num

Der zu überprüfende Wert.

Rückgabewerte

Gibt true zurück, falls num eine gültige endliche Zahl innerhalb des zulässigen Wertebereichs für einen PHP-float auf der gegebenen Plattform ist.

Siehe auch

  • is_infinite() - Prüft, ob ein Wert unendlich ist
  • is_nan() - Prüft, ob ein Wert keine Zahl ist


Prüft, ob ein Wert unendlich ist

  • « is_finite
  • is_nan »
  • PHP Manual
  • Mathematische Funktionen
  • Prüft, ob ein Wert unendlich ist

is_infinite

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_infinite — Prüft, ob ein Wert unendlich ist

Beschreibung

is_infinite ( float $num ) : bool

Die Funktion prüft, ob ein Wert unendlich, oder besser nicht-endlich ist. Als nicht-endlich gelten dabei Ergebnisse von Berechnungen wie log(0) ebenso wie Werte, die schlicht nur zu groß sind, um noch mit dem float-Typ der jeweiligen Plattform erfasst zu werden. Es wird dabei nicht zwischen positiv unendlich und negativ unendlich unterschieden.

Parameter-Liste

num

Der zu prüfende Wert.

Rückgabewerte

true, wenn num nicht-endlich ist, sonst false.

Siehe auch

  • is_finite() - Prüft, ob ein Wert eine gültige endliche Zahl ist
  • is_nan() - Prüft, ob ein Wert keine Zahl ist


Prüft, ob ein Wert keine Zahl ist

  • « is_infinite
  • lcg_value »
  • PHP Manual
  • Mathematische Funktionen
  • Prüft, ob ein Wert keine Zahl ist

is_nan

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_nan — Prüft, ob ein Wert keine Zahl ist

Beschreibung

is_nan ( float $num ) : bool

Prüft, ob der Parameter num keine darstellbare Zahl ist, wie z.B. das Ergebnis von acos(1.01).

Parameter-Liste

num

Der zu prüfende Wert.

Rückgabewerte

Liefert true, wenn num keine darstellbare Zahl ist, sonst false.

Beispiele

Beispiel #1 is_nan()-Beispiel

<?php
// Undefinierte Berechnung liefert ein NaN-Ergebnis
$nan = acos(8);

var_dump($nan, is_nan($nan));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

float(NAN)
bool(true)

Siehe auch

  • is_finite() - Prüft, ob ein Wert eine gültige endliche Zahl ist
  • is_infinite() - Prüft, ob ein Wert unendlich ist


Kongruenzgenerator für Pseudozufallszahlen

  • « is_nan
  • log10 »
  • PHP Manual
  • Mathematische Funktionen
  • Kongruenzgenerator für Pseudozufallszahlen

lcg_value

(PHP 4, PHP 5, PHP 7, PHP 8)

lcg_value — Kongruenzgenerator für Pseudozufallszahlen

Beschreibung

lcg_value ( ) : float

lcg_value() gibt eine Pseudozufallszahl zwischen Null und Eins (inklusive) zurück. Die Funktion kombiniert zwei gemischte kongruente Kongruenzgeneratoren mit den Perioden 2^31 - 85 und 2^31 - 249. Die Periode der von dieser Funktion generierten Pseudozufallsfolge entspricht dem Produkt dieser beiden Primzahlen.

Achtung

Diese Funktion erzeugt keine kryptographisch sicheren Werte und sollte nicht für kryptographische Zwecke verwendet werden. Wenn kryptographisch sichere Werte benötigt werden, sollten stattdessen die Funktionen random_int(), random_bytes() oder openssl_random_pseudo_bytes() verwendet werden.

Rückgabewerte

Eine Pseudozufallszahl zwischen 0.0 und 1.0 (inklusive) als float.

Siehe auch

  • rand() - Erzeugt eine zufällige Zahl
  • mt_rand() - Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren


Dekadischer Logarithmus (Logarithmus zur Basis 10)

  • « lcg_value
  • log1p »
  • PHP Manual
  • Mathematische Funktionen
  • Dekadischer Logarithmus (Logarithmus zur Basis 10)

log10

(PHP 4, PHP 5, PHP 7, PHP 8)

log10 — Dekadischer Logarithmus (Logarithmus zur Basis 10)

Beschreibung

log10 ( float $num ) : float

Berechnet den dekadischen Logarithmus von num.

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

Der dekadische Logarithmus von num.

Siehe auch

  • log() - Natürlicher Logarithmus


Berechnet log(1 + Zahl) mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt

  • « log10
  • log »
  • PHP Manual
  • Mathematische Funktionen
  • Berechnet log(1 + Zahl) mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt

log1p

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

log1p — Berechnet log(1 + Zahl) mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt

Beschreibung

log1p ( float $num ) : float

log1p() gibt log(1 + num) zurück, das so berechnet wird, dass es auch dann genau ist, wenn der Wert von num sehr nahe bei 0 liegt. log() liefert in solchen Fällen aufgrund von Rundungsfehlern oft nur den Wert von log(1).

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

log(1 + num).

Siehe auch

  • expm1() - Berechnet exp(Zahl) - 1 mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt
  • log() - Natürlicher Logarithmus
  • log10() - Dekadischer Logarithmus (Logarithmus zur Basis 10)


Natürlicher Logarithmus

  • « log1p
  • max »
  • PHP Manual
  • Mathematische Funktionen
  • Natürlicher Logarithmus

log

(PHP 4, PHP 5, PHP 7, PHP 8)

log — Natürlicher Logarithmus

Beschreibung

log ( float $num , float $base = M_E ) : float

Berechnet den natürlichen Logarithmus von num beziehungsweise, falls der optionale zweite Parameter base gegeben ist, den Logarithmus von num zur Basis base.

Parameter-Liste

num

Der Wert, für den der Logarithmus berechnet werden soll.

base

Die optionale Basis für die Berechnung des Logarithmus (der Vorgabewert ist 'e' für den natürlichen Logarithmus).

Rückgabewerte

Der Logarithmus von num zur Basis base bzw. der natürliche Logarithmus.

Siehe auch

  • log10() - Dekadischer Logarithmus (Logarithmus zur Basis 10)
  • exp() - Berechnet den Exponenten von e
  • pow() - Potenzfunktion


Bestimmt den Maximalwert

  • « log
  • min »
  • PHP Manual
  • Mathematische Funktionen
  • Bestimmt den Maximalwert

max

(PHP 4, PHP 5, PHP 7, PHP 8)

max — Bestimmt den Maximalwert

Beschreibung

max ( mixed $value , mixed ...$values ) : mixed

Alternative Signatur (wird bei benannten Argumenten nicht unterstützt):

max ( array $value_array ) : mixed

Ist der erste und einzige Parameter ein Array, gibt max() den größten Wert dieses Arrays zurück. Werden mindestens zwei Parameter übergeben, gibt max() den größeren dieser Werte zurück.

Hinweis:

Werte unterschiedlichen Typs werden unter Verwendung der Standard-Vergleichsregeln verglichen. Zum Beispiel wird ein nichtnumerischer string mit einem int verglichen, als ob er 0 wäre, aber mehrere nichtnumerische string-Werte werden alphanumerisch verglichen. Der tatsächlich zurückgegebene Wert ist vom ursprünglichen Typ ohne angewandte Umwandlung.

Achtung

Vorsicht ist geboten, wenn Argumente verschiedenen Typs übergeben werden, da max() in diesem Fall unvorhersehbare Ergebnisse liefert.

Parameter-Liste

value

Ein vergleichbarer Wert.

values

Jegliche vergleichbaren Werte.

value_array

Ein Array, das Werte enthält.

Rückgabewerte

max() gibt den gemäß den Standard-Vergleichen als "größten" angesehenen Parameter-Wert zurück. Evaluieren mehrere Werte unterschiedlichen Typs als gleich (z.B. 0 und 'abc'), wird der zuerst übergebene zurückgegeben.

Wird ein leeres Array übergeben, gibt die Funktion false zurück und löst einen E_WARNING-Fehler aus.

Beispiele

Beispiel #1 Beispiel für die Verwendung von max()

<?php
echo max(2, 3, 1, 6, 7);  // 7
echo max(array(2, 4, 5)); // 5

// Die Zeichenkette 'hallo' wird wie 0 behandelt, wenn sie mit einem Int verglichen wird
// Da die beiden Werte gleich sind, bestimmt die Reihenfolge der Übergabe das Ergebnis
echo max(0, 'hallo');     // 0
echo max('hallo', 0);     // hallo

// Hier vergleichen wir -1 < 0, sodass 'hallo' der größte Wert ist
echo max('hallo', -1);    // hallo

// Bei mehreren Arrays unterschiedlicher Länge, gibt max das längste zurück
$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(1, 1, 1, 1)

// Mehrere Arrays gleicher Länge werden von links nach rechts verglichen,
// daher ist in unserem Beispiel 2 == 2, aber 5 > 4
$val = max(array(2, 4, 8), array(2, 5, 1)); // array(2, 5, 1)

// Sind ein Array und ein Nicht-Array-Parameter gegeben, wird das Array zurückgegeben,
// da Vergleiche Arrays als größer behandeln als alle anderen Werte
$val = max('string', array(2, 5, 7), 42);   // array(2, 5, 7)

// Ist ein Argument NULL oder ein boolescher Wert, wird es mit anderen Werten
// unter Verwendung der Regel FALSE < TRUE verglichen, ohne Rücksicht auf die anderen beteiligten Typen
// Im folgenden Beispiel wird -10 im Vergleich wie TRUE behandelt
$val = max(-10, FALSE); // -10

// Andererseits wird 0 wie FALSE behandelt, so dass es "kleiner" ist als TRUE
$val = max(0, TRUE); // TRUE
?>

Siehe auch

  • min() - Bestimmt den Minimalwert
  • count() - Zählt alle Elemente eines Arrays oder etwas in einem Objekt


Bestimmt den Minimalwert

  • « max
  • mt_getrandmax »
  • PHP Manual
  • Mathematische Funktionen
  • Bestimmt den Minimalwert

min

(PHP 4, PHP 5, PHP 7, PHP 8)

min — Bestimmt den Minimalwert

Beschreibung

min ( mixed $value , mixed ...$values ) : mixed

Alternative Signatur (wird bei benannten Argumenten nicht unterstützt):

min ( array $value_array ) : mixed

Ist der erste und einzige Parameter ein Array, gibt min() den niedrigsten Wert dieses Arrays zurück. Werden mindestens zwei Parameter übergeben, gibt min() den kleinsten dieser Werte zurück.

Hinweis:

Werte unterschiedlichen Typs werden unter Verwendung der Standard-Vergleichsregeln verglichen. Zum Beispiel wird ein nichtnumerischer string mit einem int verglichen, als ob er 0 wäre, aber mehrere nichtnumerische string-Werte werden alphanumerisch verglichen. Der tatsächlich zurückgegebene Wert ist vom ursprünglichen Typ ohne angewandte Umwandlung.

Achtung

Vorsicht ist geboten, wenn Argumente verschiedenen Typs übergeben werden, da min() in diesem Fall unvorhersehbare Ergebnisse liefert.

Parameter-Liste

value

Ein vergleichbarer Wert.

values

Jegliche vergleichbaren Werte.

value_array

Ein Array, das Werte enthält.

Rückgabewerte

min() gibt den gemäß den Standard-Vergleichen als "kleinsten" angesehenen Parameter-Wert zurück. Evaluieren mehrere Werte unterschiedlichen Typs als gleich (z.B. 0 und 'abc'), wird der zuerst übergebene zurückgegeben.

Wird ein leeres Array übergeben, gibt die Funktion false zurück und löst einen E_WARNING-Fehler aus.

Beispiele

Beispiel #1 Beispiel für die Verwendung von min()

<?php
echo min(2, 3, 1, 6, 7);  // 1
echo min(array(2, 4, 5)); // 2

// Die Zeichenkette 'hallo' wird wie 0 behandelt, wenn sie mit einem Int verglichen wird
// Da die beiden Werte gleich sind, bestimmt die Reihenfolge der Übergabe das Ergebnis
echo min(0, 'hello');     // 0
echo min('hello', 0);     // hello

// Hier vergleichen wir -1 < 0, so dass -1 der kleinste Wert ist
echo min('hello', -1);    // -1

// Bei mehreren Arrays unterschiedlicher Länge, gibt min das kürzeste zurück
$val = min(array(2, 2, 2), array(1, 1, 1, 1)); // array(2, 2, 2)

// Mehrere Arrays gleicher Länge werden von links nach rechts verglichen,
// daher ist in unserem Beispiel 2 == 2, aber 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)

// Sind ein Array und ein Nicht-Array-Parameter gegeben, wird nie das Array zurückgegeben,
// da Vergleiche Arrays als größer behandeln als alle anderen Werte
$val = min('string', array(2, 5, 7), 42);   // string

// Ist ein Argument NULL oder ein boolescher Wert, wird es mit anderen Werten
// unter Verwendung der Regeln FALSE < TRUE und NULL == FALSE verglichen, ohne Rücksicht auf die anderen beteiligten Typen
// In den folgenden Beispielen wird -10 im Vergleich wie TRUE behandelt
$val = min(-10, FALSE, 10); // FALSE
$val = min(-10, NULL, 10);  // NULL

// Andererseits wird 0 wie FALSE behandelt, so dass es "kleiner" ist als TRUE
$val = min(0, TRUE); // 0
?>

Siehe auch

  • max() - Bestimmt den Maximalwert
  • count() - Zählt alle Elemente eines Arrays oder etwas in einem Objekt


Liefert den größtmöglichen Zufallswert

  • « min
  • mt_rand »
  • PHP Manual
  • Mathematische Funktionen
  • Liefert den größtmöglichen Zufallswert

mt_getrandmax

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_getrandmax — Liefert den größtmöglichen Zufallswert

Beschreibung

mt_getrandmax ( ) : int

Gibt den größten Wert zurück, den die Funktion mt_rand() zurückgeben kann.

Rückgabewerte

Gibt den größtmöglichen Zufallswert zurück, den ein Aufruf der Funktion mt_rand() ohne Argumente zurückgeben kann, also den maximalen Wert, der für deren Parameter max verwendet werden kann, ohne dass das Ergebnis hochskaliert wird (und daher weniger zufällig ist).

Beispiele

Beispiel #1 Berechnung einer zufälligen Gleitkommazahl

<?php
function randomFloat($min = 0, $max = 1) {
    return $min + mt_rand() / mt_getrandmax() * ($max - $min);
}

var_dump(randomFloat());
var_dump(randomFloat(2, 20));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

float(0.91601131712832)
float(16.511210331931)

Siehe auch

  • mt_rand() - Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren
  • mt_srand() - Initialisiert den Mersenne-Twister-Zufallszahlengenerator
  • getrandmax() - Liefert die größtmögliche Zufallszahl


Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren

  • « mt_getrandmax
  • mt_srand »
  • PHP Manual
  • Mathematische Funktionen
  • Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren

mt_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_rand — Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren

Beschreibung

mt_rand ( ) : int
mt_rand ( int $min , int $max ) : int
Achtung

Diese Funktion erzeugt keine kryptographisch sicheren Werte und sollte nicht für kryptographische Zwecke verwendet werden. Wenn kryptographisch sichere Werte benötigt werden, sollten stattdessen die Funktionen random_int(), random_bytes() oder openssl_random_pseudo_bytes() verwendet werden.

Viele Zufallszahlengeneratoren, die auf älteren libc-Versionen basieren, haben seltsame oder doch zumindest unerwartete Verhaltensweisen und sind zudem recht langsam. Die Funktion mt_rand() ist ein vollwertiger Ersatz für das ältere rand(). Sie verwendet einen Zufallszahlengenerator mit den bekannten Charakteristika der » Mersenne Twister, die Zufallszahlen viermal schneller generiert als der durchschnittliche libc-rand()-Aufruf.

Wenn die Funktion ohne Angabe von min und/oder max aufgerufen wird, gibt mt_rand() eine Pseudozufallszahl zwischen 0 und mt_getrandmax() zurück. Benötigen Sie zum Beispiel eine Zufallszahl zwischen 5 und 15 (inklusive), verwenden Sie mt_rand(5, 15).

Parameter-Liste

min

Der optionale niedrigste Wert, der zurückgegeben werden kann (Standardwert: 0).

max

Der optionale höchste Wert, der zurückgegeben werden kann (Standardwert: mt_getrandmax()).

Rückgabewerte

Ein zufälliger Integerwert zwischen min (oder 0) und max (oder mt_getrandmax(), inklusive) oder false, wenn max kleiner ist als min.

Changelog

Version | Beschreibung
7.2.0 | mt_rand() erhielt einen Bugfix für einen Modulus-Verzerrungsfehler. Das bedeutet, dass Folgen mit einem bestimmten Startwert sich ab PHP 7.1 auf 64bit-Rechnern unterscheiden können.
7.1.0 | rand() ist nun ein Alias von mt_rand().
7.1.0 | mt_rand() verwendet nun eine korrekte Version des Mersenne-Twister-Algorithmus. Um auf das vorherige Verhalten auszuweichen, kann mt_srand() mit MT_RAND_PHP als zweitem Parameter verwendet werden.

Beispiele

Beispiel #1 mt_rand()-Beispiel

<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";

echo mt_rand(5, 15);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1604716014
1478613278
6

Anmerkungen

Warnung

Der Bereich von min und max darf nicht größer sein als mt_getrandmax(). Das heißt, (max - min) <= mt_getrandmax(). Andernfalls kann mt_rand() schlechtere Zufallszahlen liefern als es sollte.

Siehe auch

  • mt_srand() - Initialisiert den Mersenne-Twister-Zufallszahlengenerator
  • mt_getrandmax() - Liefert den größtmöglichen Zufallswert
  • random_int() - Generates cryptographically secure pseudo-random integers
  • random_bytes() - Generates cryptographically secure pseudo-random bytes
  • openssl_random_pseudo_bytes() - Generate a pseudo-random string of bytes
  • rand() - Erzeugt eine zufällige Zahl


Initialisiert den Mersenne-Twister-Zufallszahlengenerator

  • « mt_rand
  • octdec »
  • PHP Manual
  • Mathematische Funktionen
  • Initialisiert den Mersenne-Twister-Zufallszahlengenerator

mt_srand

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_srand — Initialisiert den Mersenne-Twister-Zufallszahlengenerator

Beschreibung

mt_srand ( int $seed = 0 , int $mode = MT_RAND_MT19937 ) : void

Setzt den Zufallszahlengenerator mit seed oder mit einem Zufallswert, wenn seed nicht angegeben ist.

Hinweis: Es besteht keine Notwendigkeit, den Zufallsgenerator für Zahlen mit srand() oder mt_srand() zu füttern, das geschieht automatisch.

Parameter-Liste

seed

Ein beliebiger int-Startwert.

mode

Eine der folgenden Konstanten kann verwendet werden, um die Implementierung des zu verwendenden Algorithmus zu bestimmen.

Konstante | Beschreibung
MT_RAND_MT19937 | Verwendet die korrekte Mersenne-Twister-Implementierung, die von PHP 7.1.0 an verfügbar ist.
MT_RAND_PHP | Verwendet eine inkorrekte Mersenne-Twister-Implementierung, die vor PHP 7.1.0 standardmäßig verwendet wurde. Dieser Modus ist aus Gründen der Abwärtskompatibilität verfügbar.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | srand() ist nun ein Alias von mt_srand().
7.1.0 | mt_rand() verwendet nun eine korrekte Version des Mersenne-Twister-Algorithmus. Um auf das vorherige Verhalten auszuweichen, kann mt_srand() mit MT_RAND_PHP als zweitem Parameter verwendet werden.

Beispiele

Beispiel #1 mt_srand()-Beispiel

<?php
// seed mit Mikrosekunden
function make_seed()
{
  list($usec, $sec) = explode(' ', microtime());
  return $sec + $usec * 1000000;
}
mt_srand(make_seed());
$randval = mt_rand();
?>

Siehe auch

  • mt_rand() - Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren
  • mt_getrandmax() - Liefert den größtmöglichen Zufallswert
  • srand() - Legt den Anfangswert für den Zufallsgenerator fest


Wandelt von oktal zu dezimal um

  • « mt_srand
  • pi »
  • PHP Manual
  • Mathematische Funktionen
  • Wandelt von oktal zu dezimal um

octdec

(PHP 4, PHP 5, PHP 7, PHP 8)

octdec — Wandelt von oktal zu dezimal um

Beschreibung

octdec ( string $octal_string ) : int|float

Gibt die dezimale Entsprechung der in oktaler Darstellung angegebenen Zahl octal_string zurück.

Parameter-Liste

octal_string

Die umzuwandelnde Oktal-Zeichenkette. Jegliche ungültigen Zeichen in octal_string werden stillschweigend ignoriert. Von PHP 7.4.0 an ist die Übergabe jeglicher ungültiger Zeichen missbilligt.

Rückgabewerte

Die Dezimaldarstellung von octal_string.

Changelog

Version | Beschreibung
7.4.0 | Die Übergabe ungültiger Zeichen löst nun einen Deprecation-Hinweis aus. Das Ergebnis wird weiterhin so berechnet, als würden die ungültigen Zeichen nicht existieren.

Beispiele

Beispiel #1 octdec()-Beispiel

<?php
echo octdec('77') . "\n";
echo octdec(decoct(45));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

63
45

Anmerkungen

Hinweis:

Die Funktion kann nun auch Werte umwandeln, die zu groß für den Typ int der jeweiligen Plattform sind, das Ergebnis wird dann als float zurückgegeben.

Siehe auch

  • decoct() - Wandelt von dezimal zu oktal um
  • bindec() - Wandelt von binär zu dezimal um
  • hexdec() - Wandelt von hexadezimal zu dezimal um
  • base_convert() - Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um


Liefert den Wert von Pi

  • « octdec
  • pow »
  • PHP Manual
  • Mathematische Funktionen
  • Liefert den Wert von Pi

pi

(PHP 4, PHP 5, PHP 7, PHP 8)

pi — Liefert den Wert von Pi

Beschreibung

pi ( ) : float

Die Funktion gibt einen Näherungswert von Pi zurück. Sie können auch die Konstante M_PI verwenden, die das gleiche Resultat liefert wie pi().

Rückgabewerte

Der Wert von Pi als float.

Beispiele

Beispiel #1 pi()-Beispiel

<?php
echo pi(); // 3.1415926535898
echo M_PI; // 3.1415926535898
?>


Potenzfunktion

  • « pi
  • rad2deg »
  • PHP Manual
  • Mathematische Funktionen
  • Potenzfunktion

pow

(PHP 4, PHP 5, PHP 7, PHP 8)

pow — Potenzfunktion

Beschreibung

pow ( int|float $base , int|float $exp ) : int|float

Berechnet die Potenz von exp zur Basis base oder kurz baseexp.

Hinweis:

Von PHP 5.6 an kann alternativ der **-Operator verwendet werden.

Parameter-Liste

base

Die zu potenzierende Basis.

exp

Der Exponent.

Rückgabewerte

base in der Potenz exp. Sind beide Argumente nichtnegative Ganzzahlen und das Ergebnis kann als Ganzzahl repräsentiert werden, wird das Ergebnis als int, andernfalls als float zurückgegeben.

Beispiele

Beispiel #1 Einige pow()-Beispiele

<?php

var_dump(pow(2, 8)); // int(256)
echo pow(-1, 20); // 1
echo pow(0, 0); // 1
echo pow(10, -1); // 0.1

echo pow(-1, 5.5); // PHP >=5.2.2: NAN
echo pow(-1, 5.5); // PHP <5.2.2: -NAN
?>

Anmerkungen

Hinweis:

Diese Funktion wandelt alle Eingaben in numerische Werte um, selbst nicht-skalare Werte. Dies kann zu seltsamen Ergebnissen führen.

Siehe auch

  • exp() - Berechnet den Exponenten von e
  • sqrt() - Quadratwurzel
  • bcpow() - Potenz einer Zahl beliebiger Genauigkeit
  • gmp_pow() - Raise number into power


Rechnet einen Winkel vom Bogenmaß in Grad um

  • « pow
  • rand »
  • PHP Manual
  • Mathematische Funktionen
  • Rechnet einen Winkel vom Bogenmaß in Grad um

rad2deg

(PHP 4, PHP 5, PHP 7, PHP 8)

rad2deg — Rechnet einen Winkel vom Bogenmaß in Grad um

Beschreibung

rad2deg ( float $num ) : float

Diese Funktion rechnet einen Winkel num vom Bogenmaß in Grad um.

Parameter-Liste

num

Ein Winkel im Bogenmaß.

Rückgabewerte

Der zu num äquivalente Wert in Grad.

Beispiele

Beispiel #1 rad2deg()-Beispiel

<?php

echo rad2deg(M_PI_4); // 45

?>

Siehe auch

  • deg2rad() - Rechnet einen Winkel von Grad in Bogenmaß um


Erzeugt eine zufällige Zahl

  • « rad2deg
  • round »
  • PHP Manual
  • Mathematische Funktionen
  • Erzeugt eine zufällige Zahl

rand

(PHP 4, PHP 5, PHP 7, PHP 8)

rand — Erzeugt eine zufällige Zahl

Beschreibung

rand ( ) : int
rand ( int $min , int $max ) : int

Gibt eine Pseudozufallszahl zwischen min und max (inklusive) zurück oder zwischen 0 und getrandmax(), falls keine Parameter angegeben wurden. Wenn Sie z.B. einen Zufallswert zwischen 5 und 15 benötigen, so wäre der Aufruf dafür rand(5, 15).

Achtung

Diese Funktion erzeugt keine kryptographisch sicheren Werte und sollte nicht für kryptographische Zwecke verwendet werden. Wenn kryptographisch sichere Werte benötigt werden, sollten stattdessen die Funktionen random_int(), random_bytes() oder openssl_random_pseudo_bytes() verwendet werden.

Hinweis: Auf manchen Plattformen (z.B. Windows) ist getrandmax() nur 32767. Wenn sie einen größeren Wertebereich benötigen sollten, so können Sie entweder einen größeren max-Wert übergeben oder besser die Funktion mt_rand() anstelle von rand() einsetzen.

Hinweis:

    Ab PHP 7.1.0 verwendet rand() denselben
    Zufallszahlengenerator wie mt_rand(). Um die
    Abwärtskompatibilität zu wahren, erlaubt rand(), dass
    max kleiner als min ist,
    ohne wie mt_rand() false zurückzugeben.

Parameter-Liste

min

Der niedrigste zurückzugebende Wert (Vorgabe: 0)-

max

Der höchste zurückzugebende Wert (Vorgabe: getrandmax()).

Rückgabewerte

Ein Pseudozufallswert zwischen min (oder 0) und max (oder getrandmax(), inklusive).

Changelog

Version | Beschreibung
7.2.0 | rand() erhielt einen Bugfix für einen Modulus-Verzerrungsfehler. Das bedeutet, dass Folgen mit einem bestimmten Startwert sich ab PHP 7.1 auf 64bit-Rechnern unterscheiden können.
7.1.0 | rand() ist nun ein Alias von mt_rand().

Beispiele

Beispiel #1 rand()-Beispiel

<?php
echo rand() . "\n";
echo rand() . "\n";

echo rand(5, 15);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

7771
22264
11

Anmerkungen

Warnung

Der Bereich zwischen min und max muss innerhalb von getrandmax() liegen; d.h. (max - min) <= getrandmax(); ansonsten wird rand() möglicherweise Zufallszahlen schlechter Qualität zurückgeben.

Siehe auch

  • srand() - Legt den Anfangswert für den Zufallsgenerator fest
  • getrandmax() - Liefert die größtmögliche Zufallszahl
  • mt_rand() - Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren
  • random_int() - Generates cryptographically secure pseudo-random integers
  • random_bytes() - Generates cryptographically secure pseudo-random bytes
  • openssl_random_pseudo_bytes() - Generate a pseudo-random string of bytes


Rundet einen Gleitkommawert

  • « rand
  • sin »
  • PHP Manual
  • Mathematische Funktionen
  • Rundet einen Gleitkommawert

round

(PHP 4, PHP 5, PHP 7, PHP 8)

round — Rundet einen Gleitkommawert

Beschreibung

round ( float $val , int $precision = 0 , int $mode = PHP_ROUND_HALF_UP ) : float

Rundet den Parameter val auf die mit precision angegebene Anzahl von Nachkommastellen. precision kann dabei auch null (Vorgabewert) oder negativ sein. So wird bei einer Stellenzahl von -1 z.B. auf volle Zehner gerundet.

Parameter-Liste

val

Der zu rundende Wert.

precision

Auf wie viele Nachkommastellen gerundet werden soll.

Ist die Genauigkeit precision positiv, wird val auf precision signifikante Stellen nach dem Dezimalpunkt gerundet.

Ist die Genauigkeit precision negativ, wird val auf precision signifikante Stellen vor dem Dezimalpunkt gerundet, d.h. auf das nächste Vielfache von pow(10, -precision), z.B. für eine precision von -1 wird val auf Zehner gerundet, für eine precision von -2 auf Hunderter usw.

mode

Eine der folgenden Konstanten kann verwendet werden, um den Rundungsmodus festzulegen.

Konstanten | Beschreibung
PHP_ROUND_HALF_UP | Rundet val auf halber Strecke von Null weg, womit 1.5 zu 2 wird und -1.5 zu -2.
PHP_ROUND_HALF_DOWN | Rundet val auf halber Strecke zu Null hin, womit 1.5 zu 1 wird und -1.5 zu -1.
PHP_ROUND_HALF_EVEN | Rundet val auf halber Strecke auf den nächsten geraden Wert, womit sowohl 1.5 als auch 2.5 zu 2 werden.
PHP_ROUND_HALF_ODD | Rundet val auf halber Strecke auf den nächsten ungeraden Wert, womit 1.5 zu 1 wird und 2.5 zu 3.

Rückgabewerte

Der auf die angegebene precision gerundete Wert als Float.

Beispiele

Beispiel #1 round()-Beispiele

<?php
var_dump(round(3.4));
var_dump(round(3.5));
var_dump(round(3.6));
var_dump(round(3.6, 0));
var_dump(round(5.045, 2));
var_dump(round(5.055, 2));
var_dump(round(345, -2));
var_dump(round(345, -3));
var_dump(round(678, -2));
var_dump(round(678, -3));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

float(3)
float(4)
float(4)
float(4)
float(5.05)
float(5.06)
float(300)
float(0)
float(700)
float(1000)

Beispiel #2 Wie precision eine Gleitkommazahl betrifft

<?php
$number = 135.79;

var_dump(round($number, 3));
var_dump(round($number, 2));
var_dump(round($number, 1));
var_dump(round($number, 0));
var_dump(round($number, -1));
var_dump(round($number, -2));
var_dump(round($number, -3));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

float(135.79)
float(135.79)
float(135.8)
float(136)
float(140)
float(100)
float(0)

Beispiel #3 mode-Beispiele

<?php
echo 'Rundundsmodi mit 9.5' . PHP_EOL;
var_dump(round(9.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(9.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_ODD));

echo PHP_EOL;
echo 'Rundundsmodi mit 8.5' . PHP_EOL;
var_dump(round(8.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(8.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_ODD));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Rundundsmodi mit 9.5
float(10)
float(9)
float(10)
float(9)

Rundundsmodi mit 8.5
float(9)
float(8)
float(8)
float(9)

Beispiel #4 mode mit precision-Beispiele

<?php
echo 'Verwendung von PHP_ROUND_HALF_UP mit einer Dezimalstelle Genauigkeit' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_UP));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_UP));

echo PHP_EOL;
echo 'Verwendung von PHP_ROUND_HALF_DOWN mit einer Dezimalstelle Genauigkeit' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_DOWN));

echo PHP_EOL;
echo 'Verwendung von PHP_ROUND_HALF_EVEN mit einer Dezimalstelle Genauigkeit' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_EVEN));

echo PHP_EOL;
echo 'Verwendung von PHP_ROUND_HALF_ODD mit einer Dezimalstelle Genauigkeit' . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_ODD));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Verwendung von PHP_ROUND_HALF_UP mit einer Dezimalstelle Genauigkeit
float(1.6)
float(-1.6)

Verwendung von PHP_ROUND_HALF_DOWN mit einer Dezimalstelle Genauigkeit
float(1.5)
float(-1.5)

Verwendung von PHP_ROUND_HALF_EVEN mit einer Dezimalstelle Genauigkeit
float(1.6)
float(-1.6)

Verwendung von PHP_ROUND_HALF_ODD mit einer Dezimalstelle Genauigkeit
float(1.5)
float(-1.5)

Siehe auch

  • ceil() - Rundet Brüche auf
  • floor() - Rundet Brüche ab
  • number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen


Sinus

  • « round
  • sinh »
  • PHP Manual
  • Mathematische Funktionen
  • Sinus

sin

(PHP 4, PHP 5, PHP 7, PHP 8)

sin — Sinus

Beschreibung

sin ( float $num ) : float

sin() berechnet den Sinus des Winkels num. Der Parameter num ist im Bogenmaß.

Parameter-Liste

num

Ein Winkel in Bogenmaß.

Rückgabewerte

Der Sinus von num.

Beispiele

Beispiel #1 sin()-Beispiel

<?php

// Die Stellenzahl des Ergebnisses hängt von der 'precision'-Einstellung ab
echo sin(deg2rad(60));  //  0.866025403 ...
echo sin(60);           // -0.304810621 ...

?>

Siehe auch

  • asin() - Arkussinus
  • sinh() - Sinus hyperbolikus
  • cos() - Kosinus
  • tan() - Tangens
  • deg2rad() - Rechnet einen Winkel von Grad in Bogenmaß um


Sinus hyperbolikus

  • « sin
  • sqrt »
  • PHP Manual
  • Mathematische Funktionen
  • Sinus hyperbolikus

sinh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

sinh — Sinus hyperbolikus

Beschreibung

sinh ( float $num ) : float

Berechnet den Sinus hyperbolikus des Parameters num, welcher als (exp(num) - exp(-num))/2 definiert ist.

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

Der Sinus hyperbolikus von num.

Siehe auch

  • sin() - Sinus
  • asinh() - Areasinus hyperbolikus
  • cosh() - Kosinus hyperbolikus
  • tanh() - Tangens hyperbolikus


Quadratwurzel

  • « sinh
  • srand »
  • PHP Manual
  • Mathematische Funktionen
  • Quadratwurzel

sqrt

(PHP 4, PHP 5, PHP 7, PHP 8)

sqrt — Quadratwurzel

Beschreibung

sqrt ( float $num ) : float

Berechnet die Quadratwurzel des Parameters num.

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

Die Quadratwurzel des Parameters num oder der spezielle Wert NAN für negative Zahlen.

Beispiele

Beispiel #1 sqrt()-Beispiel

<?php
// Die Anzahl der Nachkommastellen hängt von der 'precision'-Einstellung ab
echo sqrt(9); // 3
echo sqrt(10); // 3.16227766 ...
?>

Siehe auch

  • pow() - Potenzfunktion


Legt den Anfangswert für den Zufallsgenerator fest

  • « sqrt
  • tan »
  • PHP Manual
  • Mathematische Funktionen
  • Legt den Anfangswert für den Zufallsgenerator fest

srand

(PHP 4, PHP 5, PHP 7, PHP 8)

srand — Legt den Anfangswert für den Zufallsgenerator fest

Beschreibung

srand ( int $seed = ? ) : void

Setzt den Anfangswert für den Zufallsgenerator auf seed oder auf einen zufälligen Wert, falls kein Anfangswert angegeben wird.

Hinweis: Es besteht keine Notwendigkeit, den Zufallsgenerator für Zahlen mit srand() oder mt_srand() zu füttern, das geschieht automatisch.

Hinweis: Von PHP 7.1.0 an ist srand() ein Alias von mt_srand().

Parameter-Liste

seed

Ein beliebiger int-Startwert.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | srand() ist nun ein Alias von mt_srand().

Beispiele

Beispiel #1 srand()-Beispiel

<?php
// Anfangswert über die aktuelle Mikrosekunde setzen
function make_seed()
{
  list($usec, $sec) = explode(' ', microtime());
  return $sec + $usec * 1000000;
}
srand(make_seed());
$randval = rand();
?>

Siehe auch

  • rand() - Erzeugt eine zufällige Zahl
  • getrandmax() - Liefert die größtmögliche Zufallszahl
  • mt_srand() - Initialisiert den Mersenne-Twister-Zufallszahlengenerator


Tangens

  • « srand
  • tanh »
  • PHP Manual
  • Mathematische Funktionen
  • Tangens

tan

(PHP 4, PHP 5, PHP 7, PHP 8)

tan — Tangens

Beschreibung

tan ( float $num ) : float

tan() berechnet den Tangens des Winkels num. Der Parameter num ist im Bogenmaß.

Parameter-Liste

num

Ein Winkel in Bogenmaß.

Rückgabewerte

Der Tangens des Winkels num.

Beispiele

Beispiel #1 tan()-Beispiel

<?php

echo tan(M_PI_4); // 1

?>

Siehe auch

  • atan() - Arkustangens
  • atan2() - Arkustangens-Variante mit zwei Parametern
  • sin() - Sinus
  • cos() - Kosinus
  • tanh() - Tangens hyperbolikus
  • deg2rad() - Rechnet einen Winkel von Grad in Bogenmaß um


Tangens hyperbolikus

  • « tan
  • Statistics »
  • PHP Manual
  • Mathematische Funktionen
  • Tangens hyperbolikus

tanh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

tanh — Tangens hyperbolikus

Beschreibung

tanh ( float $num ) : float

Berechnet den Tangens hyperbolikus des Parameters num, welcher als sinh(num)/cosh(num) definiert ist.

Parameter-Liste

num

Der zu verarbeitende Wert.

Rückgabewerte

Der Tangens hyperbolikus von num.

Siehe auch

  • tan() - Tangens
  • atanh() - Areatangens hyperbolikus
  • sinh() - Sinus hyperbolikus
  • cosh() - Kosinus hyperbolikus


Statistics

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Statistic Funktionen
    • stats_absolute_deviation — Returns the absolute deviation of an array of values
    • stats_cdf_beta — Calculates any one parameter of the beta distribution given values for the others
    • stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others
    • stats_cdf_cauchy — Calculates any one parameter of the Cauchy distribution given values for the others
    • stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others
    • stats_cdf_exponential — Calculates any one parameter of the exponential distribution given values for the others
    • stats_cdf_f — Calculates any one parameter of the F distribution given values for the others
    • stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others
    • stats_cdf_laplace — Calculates any one parameter of the Laplace distribution given values for the others
    • stats_cdf_logistic — Calculates any one parameter of the logistic distribution given values for the others
    • stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others
    • stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others
    • stats_cdf_noncentral_f — Calculates any one parameter of the non-central F distribution given values for the others
    • stats_cdf_noncentral_t — Calculates any one parameter of the non-central t-distribution give values for the others
    • stats_cdf_normal — Calculates any one parameter of the normal distribution given values for the others
    • stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others
    • stats_cdf_t — Calculates any one parameter of the t-distribution given values for the others
    • stats_cdf_uniform — Calculates any one parameter of the uniform distribution given values for the others
    • stats_cdf_weibull — Calculates any one parameter of the Weibull distribution given values for the others
    • stats_covariance — Computes the covariance of two data sets
    • stats_dens_beta — Probability density function of the beta distribution
    • stats_dens_cauchy — Probability density function of the Cauchy distribution
    • stats_dens_chisquare — Probability density function of the chi-square distribution
    • stats_dens_exponential — Probability density function of the exponential distribution
    • stats_dens_f — Probability density function of the F distribution
    • stats_dens_gamma — Probability density function of the gamma distribution
    • stats_dens_laplace — Probability density function of the Laplace distribution
    • stats_dens_logistic — Probability density function of the logistic distribution
    • stats_dens_normal — Probability density function of the normal distribution
    • stats_dens_pmf_binomial — Probability mass function of the binomial distribution
    • stats_dens_pmf_hypergeometric — Probability mass function of the hypergeometric distribution
    • stats_dens_pmf_negative_binomial — Probability mass function of the negative binomial distribution
    • stats_dens_pmf_poisson — Probability mass function of the Poisson distribution
    • stats_dens_t — Probability density function of the t-distribution
    • stats_dens_uniform — Probability density function of the uniform distribution
    • stats_dens_weibull — Probability density function of the Weibull distribution
    • stats_harmonic_mean — Returns the harmonic mean of an array of values
    • stats_kurtosis — Computes the kurtosis of the data in the array
    • stats_rand_gen_beta — Generates a random deviate from the beta distribution
    • stats_rand_gen_chisquare — Generates a random deviate from the chi-square distribution
    • stats_rand_gen_exponential — Generates a random deviate from the exponential distribution
    • stats_rand_gen_f — Generates a random deviate from the F distribution
    • stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)
    • stats_rand_gen_gamma — Generates a random deviate from the gamma distribution
    • stats_rand_gen_ibinomial_negative — Generates a random deviate from the negative binomial distribution
    • stats_rand_gen_ibinomial — Generates a random deviate from the binomial distribution
    • stats_rand_gen_int — Generates random integer between 1 and 2147483562
    • stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution
    • stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
    • stats_rand_gen_noncentral_chisquare — Generates a random deviate from the non-central chi-square distribution
    • stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F distribution
    • stats_rand_gen_noncentral_t — Generates a single random deviate from a non-central t-distribution
    • stats_rand_gen_normal — Generates a single random deviate from a normal distribution
    • stats_rand_gen_t — Generates a single random deviate from a t-distribution
    • stats_rand_get_seeds — Get the seed values of the random number generator
    • stats_rand_phrase_to_seeds — Generate two seeds for the RGN random number generator
    • stats_rand_ranf — Generates a random floating point number between 0 and 1
    • stats_rand_setall — Set seed values to the random generator
    • stats_skew — Computes the skewness of the data in the array
    • stats_standard_deviation — Returns the standard deviation
    • stats_stat_binomial_coef — Returns a binomial coefficient
    • stats_stat_correlation — Returns the Pearson correlation coefficient of two data sets
    • stats_stat_factorial — Returns the factorial of an integer
    • stats_stat_independent_t — Returns the t-value from the independent two-sample t-test
    • stats_stat_innerproduct — Returns the inner product of two vectors
    • stats_stat_paired_t — Returns the t-value of the dependent t-test for paired samples
    • stats_stat_percentile — Returns the percentile value
    • stats_stat_powersum — Returns the power sum of a vector
    • stats_variance — Returns the variance


Einführung

This is the statistics extension. It contains few dozens of functions useful for statistical computations. It is a wrapper around 2 scientific libraries, namely DCDFLIB (Library of C routines for Cumulative Distributions Functions, Inverses, and Other parameters) by B. Brown & J. Lavato and RANDLIB by Barry Brown, James Lavato & Kathy Russell. Includes CD and PD functions.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

No external libraries are needed. The extension comes bundled with the libraries used.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/stats.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


  • « Ressource-Typen
  • Statistic Funktionen »
  • PHP Manual
  • Statistics
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Statistic Funktionen

Inhaltsverzeichnis

  • stats_absolute_deviation — Returns the absolute deviation of an array of values
  • stats_cdf_beta — Calculates any one parameter of the beta distribution given values for the others
  • stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others
  • stats_cdf_cauchy — Calculates any one parameter of the Cauchy distribution given values for the others
  • stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others
  • stats_cdf_exponential — Calculates any one parameter of the exponential distribution given values for the others
  • stats_cdf_f — Calculates any one parameter of the F distribution given values for the others
  • stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others
  • stats_cdf_laplace — Calculates any one parameter of the Laplace distribution given values for the others
  • stats_cdf_logistic — Calculates any one parameter of the logistic distribution given values for the others
  • stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others
  • stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others
  • stats_cdf_noncentral_f — Calculates any one parameter of the non-central F distribution given values for the others
  • stats_cdf_noncentral_t — Calculates any one parameter of the non-central t-distribution give values for the others
  • stats_cdf_normal — Calculates any one parameter of the normal distribution given values for the others
  • stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others
  • stats_cdf_t — Calculates any one parameter of the t-distribution given values for the others
  • stats_cdf_uniform — Calculates any one parameter of the uniform distribution given values for the others
  • stats_cdf_weibull — Calculates any one parameter of the Weibull distribution given values for the others
  • stats_covariance — Computes the covariance of two data sets
  • stats_dens_beta — Probability density function of the beta distribution
  • stats_dens_cauchy — Probability density function of the Cauchy distribution
  • stats_dens_chisquare — Probability density function of the chi-square distribution
  • stats_dens_exponential — Probability density function of the exponential distribution
  • stats_dens_f — Probability density function of the F distribution
  • stats_dens_gamma — Probability density function of the gamma distribution
  • stats_dens_laplace — Probability density function of the Laplace distribution
  • stats_dens_logistic — Probability density function of the logistic distribution
  • stats_dens_normal — Probability density function of the normal distribution
  • stats_dens_pmf_binomial — Probability mass function of the binomial distribution
  • stats_dens_pmf_hypergeometric — Probability mass function of the hypergeometric distribution
  • stats_dens_pmf_negative_binomial — Probability mass function of the negative binomial distribution
  • stats_dens_pmf_poisson — Probability mass function of the Poisson distribution
  • stats_dens_t — Probability density function of the t-distribution
  • stats_dens_uniform — Probability density function of the uniform distribution
  • stats_dens_weibull — Probability density function of the Weibull distribution
  • stats_harmonic_mean — Returns the harmonic mean of an array of values
  • stats_kurtosis — Computes the kurtosis of the data in the array
  • stats_rand_gen_beta — Generates a random deviate from the beta distribution
  • stats_rand_gen_chisquare — Generates a random deviate from the chi-square distribution
  • stats_rand_gen_exponential — Generates a random deviate from the exponential distribution
  • stats_rand_gen_f — Generates a random deviate from the F distribution
  • stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)
  • stats_rand_gen_gamma — Generates a random deviate from the gamma distribution
  • stats_rand_gen_ibinomial_negative — Generates a random deviate from the negative binomial distribution
  • stats_rand_gen_ibinomial — Generates a random deviate from the binomial distribution
  • stats_rand_gen_int — Generates random integer between 1 and 2147483562
  • stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution
  • stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
  • stats_rand_gen_noncentral_chisquare — Generates a random deviate from the non-central chi-square distribution
  • stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F distribution
  • stats_rand_gen_noncentral_t — Generates a single random deviate from a non-central t-distribution
  • stats_rand_gen_normal — Generates a single random deviate from a normal distribution
  • stats_rand_gen_t — Generates a single random deviate from a t-distribution
  • stats_rand_get_seeds — Get the seed values of the random number generator
  • stats_rand_phrase_to_seeds — Generate two seeds for the RGN random number generator
  • stats_rand_ranf — Generates a random floating point number between 0 and 1
  • stats_rand_setall — Set seed values to the random generator
  • stats_skew — Computes the skewness of the data in the array
  • stats_standard_deviation — Returns the standard deviation
  • stats_stat_binomial_coef — Returns a binomial coefficient
  • stats_stat_correlation — Returns the Pearson correlation coefficient of two data sets
  • stats_stat_factorial — Returns the factorial of an integer
  • stats_stat_independent_t — Returns the t-value from the independent two-sample t-test
  • stats_stat_innerproduct — Returns the inner product of two vectors
  • stats_stat_paired_t — Returns the t-value of the dependent t-test for paired samples
  • stats_stat_percentile — Returns the percentile value
  • stats_stat_powersum — Returns the power sum of a vector
  • stats_variance — Returns the variance


Returns the absolute deviation of an array of values

  • « Statistic Funktionen
  • stats_cdf_beta »
  • PHP Manual
  • Statistic Funktionen
  • Returns the absolute deviation of an array of values

stats_absolute_deviation

(PECL stats >= 1.0.0)

stats_absolute_deviation — Returns the absolute deviation of an array of values

Beschreibung

stats_absolute_deviation ( array $a ) : float

Returns the absolute deviation of the values in a.

Parameter-Liste

a

The input array

Rückgabewerte

Returns the absolute deviation of the values in a, or false if a is empty or is not an array.


Calculates any one parameter of the beta distribution given values for the others

  • « stats_absolute_deviation
  • stats_cdf_binomial »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the beta distribution given values for the others

stats_cdf_beta

(PECL stats >= 1.0.0)

stats_cdf_beta — Calculates any one parameter of the beta distribution given values for the others

Beschreibung

stats_cdf_beta ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the beta distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, alpha, and beta denotes cumulative distribution function, the value of the random variable, and shape parameters of the beta distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | alpha | beta
2 | x | CDF | alpha | beta
3 | alpha | x | CDF | beta
4 | beta | x | CDF | alpha

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, alpha, or beta, determined by which.


Calculates any one parameter of the binomial distribution given values for the others

  • « stats_cdf_beta
  • stats_cdf_cauchy »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the binomial distribution given values for the others

stats_cdf_binomial

(PECL stats >= 1.0.0)

stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others

Beschreibung

stats_cdf_binomial ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the binomial distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, n, and p denotes cumulative distribution function, the number of successes, the number of trials, and the success rate for each trial, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | n | p
2 | x | CDF | n | p
3 | n | x | CDF | p
4 | p | x | CDF | n

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, n, or p, determined by which.


Calculates any one parameter of the Cauchy distribution given values for the others

  • « stats_cdf_binomial
  • stats_cdf_chisquare »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the Cauchy distribution given values for the others

stats_cdf_cauchy

(PECL stats >= 1.0.0)

stats_cdf_cauchy — Calculates any one parameter of the Cauchy distribution given values for the others

Beschreibung

stats_cdf_cauchy ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the Cauchy distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, x0, and gamma denotes cumulative distribution function, the value of the random variable, the location and the scale parameter of the Cauchy distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | x0 | gamma
2 | x | CDF | x0 | gamma
3 | x0 | x | CDF | gamma
4 | gamma | x | CDF | x0

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, x0, or gamma, determined by which.


Calculates any one parameter of the chi-square distribution given values for the others

  • « stats_cdf_cauchy
  • stats_cdf_exponential »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the chi-square distribution given values for the others

stats_cdf_chisquare

(PECL stats >= 1.0.0)

stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others

Beschreibung

stats_cdf_chisquare ( float $par1 , float $par2 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the chi-square distribution. The kind of the return value and parameters (par1 and par2) are determined by which.

The following table lists the return value and parameters by which. CDF, x, and k denotes cumulative distribution function, the value of the random variable, and the degree of freedom of the chi-square distribution, respectively.

Return value and parameters
which | Return value | par1 | par2
1 | CDF | x | k
2 | x | CDF | k
3 | k | x | CDF

Parameter-Liste

par1

The first parameter

par2

The second parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, or k, determined by which.


Calculates any one parameter of the exponential distribution given values for the others

  • « stats_cdf_chisquare
  • stats_cdf_f »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the exponential distribution given values for the others

stats_cdf_exponential

(PECL stats >= 1.0.0)

stats_cdf_exponential — Calculates any one parameter of the exponential distribution given values for the others

Beschreibung

stats_cdf_exponential ( float $par1 , float $par2 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the exponential distribution. The kind of the return value and parameters (par1 and par2) are determined by which.

The following table lists the return value and parameters by which. CDF, x, and lambda denotes cumulative distribution function, the value of the random variable, and the rate parameter of the exponential distribution, respectively.

Return value and parameters
which | Return value | par1 | par2
1 | CDF | x | lambda
2 | x | CDF | lambda
3 | lambda | x | CDF

Parameter-Liste

par1

The first parameter

par2

The second parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, or lambda, determined by which.


Calculates any one parameter of the F distribution given values for the others

  • « stats_cdf_exponential
  • stats_cdf_gamma »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the F distribution given values for the others

stats_cdf_f

(PECL stats >= 1.0.0)

stats_cdf_f — Calculates any one parameter of the F distribution given values for the others

Beschreibung

stats_cdf_f ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the F distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, d1, and d2 denotes cumulative distribution function, the value of the random variable, and the degree of freedoms of the F distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | d1 | d2
2 | x | CDF | d1 | d2
3 | d1 | x | CDF | d2
4 | d2 | x | CDF | d1

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, d1, or d2, determined by which.


Calculates any one parameter of the gamma distribution given values for the others

  • « stats_cdf_f
  • stats_cdf_laplace »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the gamma distribution given values for the others

stats_cdf_gamma

(PECL stats >= 1.0.0)

stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others

Beschreibung

stats_cdf_gamma ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the gamma distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, k, and theta denotes cumulative distribution function, the value of the random variable, and the shape and the scale parameter of the gamma distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | k | theta
2 | x | CDF | k | theta
3 | k | x | CDF | theta
4 | theta | x | CDF | k

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, k, or theta, determined by which.


Calculates any one parameter of the Laplace distribution given values for the others

  • « stats_cdf_gamma
  • stats_cdf_logistic »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the Laplace distribution given values for the others

stats_cdf_laplace

(PECL stats >= 1.0.0)

stats_cdf_laplace — Calculates any one parameter of the Laplace distribution given values for the others

Beschreibung

stats_cdf_laplace ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the Laplace distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, mu, and b denotes cumulative distribution function, the value of the random variable, and the location and the scale parameter of the Laplace distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | mu | b
2 | x | CDF | mu | b
3 | mu | x | CDF | b
4 | b | x | CDF | mu

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, mu, or b, determined by which.


Calculates any one parameter of the logistic distribution given values for the others

  • « stats_cdf_laplace
  • stats_cdf_negative_binomial »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the logistic distribution given values for the others

stats_cdf_logistic

(PECL stats >= 1.0.0)

stats_cdf_logistic — Calculates any one parameter of the logistic distribution given values for the others

Beschreibung

stats_cdf_logistic ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the logistic distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, mu, and s denotes cumulative distribution function, the value of the random variable, and the location and the scale parameter of the logistic distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | mu | s
2 | x | CDF | mu | s
3 | mu | x | CDF | s
4 | s | x | CDF | mu

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, mu, or s, determined by which.


Calculates any one parameter of the negative binomial distribution given values for the others

  • « stats_cdf_logistic
  • stats_cdf_noncentral_chisquare »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the negative binomial distribution given values for the others

stats_cdf_negative_binomial

(PECL stats >= 1.0.0)

stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others

Beschreibung

stats_cdf_negative_binomial ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the negative binomial distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, r, and p denotes cumulative distribution function, the number of failure, the number of success, and the success rate for each trial, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | r | p
2 | x | CDF | r | p
3 | r | x | CDF | p
4 | p | x | CDF | r

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, r, or p, determined by which.


Calculates any one parameter of the non-central chi-square distribution given values for the others

  • « stats_cdf_negative_binomial
  • stats_cdf_noncentral_f »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the non-central chi-square distribution given values for the others

stats_cdf_noncentral_chisquare

(PECL stats >= 1.0.0)

stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others

Beschreibung

stats_cdf_noncentral_chisquare ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the non-central chi-square distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, k, and lambda denotes cumulative distribution function, the value of the random variable, the degree of freedom and the non-centrality parameter of the distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | k | lambda
2 | x | CDF | k | lambda
3 | k | x | CDF | lambda
4 | lambda | x | CDF | k

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, k, or lambda, determined by which.


Calculates any one parameter of the non-central F distribution given values for the others

  • « stats_cdf_noncentral_chisquare
  • stats_cdf_noncentral_t »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the non-central F distribution given values for the others

stats_cdf_noncentral_f

(PECL stats >= 1.0.0)

stats_cdf_noncentral_f — Calculates any one parameter of the non-central F distribution given values for the others

Beschreibung

stats_cdf_noncentral_f ( float $par1 , float $par2 , float $par3 , float $par4 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the non-central F distribution. The kind of the return value and parameters (par1, par2, par3, and par4) are determined by which.

The following table lists the return value and parameters by which. CDF, x, nu1, nu2, and lambda denotes cumulative distribution function, the value of the random variable, the degree of freedoms and the non-centrality parameter of the distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3 | par4
1 | CDF | x | nu1 | nu2 | lambda
2 | x | CDF | nu1 | nu2 | lambda
3 | nu1 | x | CDF | nu2 | lambda
4 | nu2 | x | CDF | nu1 | lambda
5 | lambda | x | CDF | nu1 | nu2

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

par4

The fourth parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, nu1, nu2, or lambda, determined by which.


Calculates any one parameter of the non-central t-distribution give values for the others

  • « stats_cdf_noncentral_f
  • stats_cdf_normal »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the non-central t-distribution give values for the others

stats_cdf_noncentral_t

(PECL stats >= 1.0.0)

stats_cdf_noncentral_t — Calculates any one parameter of the non-central t-distribution give values for the others

Beschreibung

stats_cdf_noncentral_t ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the non-central t-distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, nu, and mu denotes cumulative distribution function, the value of the random variable, the degrees of freedom and the non-centrality parameter of the distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | nu | mu
2 | x | CDF | nu | mu
3 | nu | x | CDF | mu
4 | mu | x | CDF | nu

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, nu, or mu, determined by which.


Calculates any one parameter of the normal distribution given values for the others

  • « stats_cdf_noncentral_t
  • stats_cdf_poisson »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the normal distribution given values for the others

stats_cdf_normal

(PECL stats >= 1.0.0)

stats_cdf_normal — Calculates any one parameter of the normal distribution given values for the others

Beschreibung

stats_cdf_normal ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the normal distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, mu, and sigma denotes cumulative distribution function, the value of the random variable, the mean and the standard deviation of the normal distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | mu | sigma
2 | x | CDF | mu | sigma
3 | mu | x | CDF | sigma
4 | sigma | x | CDF | mu

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, mu, or sigma, determined by which.


Calculates any one parameter of the Poisson distribution given values for the others

  • « stats_cdf_normal
  • stats_cdf_t »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the Poisson distribution given values for the others

stats_cdf_poisson

(PECL stats >= 1.0.0)

stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others

Beschreibung

stats_cdf_poisson ( float $par1 , float $par2 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the Poisson distribution. The kind of the return value and parameters (par1 and par2) are determined by which.

The following table lists the return value and parameters by which. CDF, x, and lambda denotes cumulative distribution function, the value of the random variable, and the parameter of the Poisson distribution, respectively.

Return value and parameters
which | Return value | par1 | par2
1 | CDF | x | lambda
2 | x | CDF | lambda
3 | lambda | x | CDF

Parameter-Liste

par1

The first parameter

par2

The second parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, or lambda, determined by which.


Calculates any one parameter of the t-distribution given values for the others

  • « stats_cdf_poisson
  • stats_cdf_uniform »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the t-distribution given values for the others

stats_cdf_t

(PECL stats >= 1.0.0)

stats_cdf_t — Calculates any one parameter of the t-distribution given values for the others

Beschreibung

stats_cdf_t ( float $par1 , float $par2 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the t-distribution. The kind of the return value and parameters (par1 and par2) are determined by which.

The following table lists the return value and parameters by which. CDF, x, and nu denotes cumulative distribution function, the value of the random variable, and the degrees of freedom of the t-distribution, respectively.

Return value and parameters
which | Return value | par1 | par2
1 | CDF | x | nu
2 | x | CDF | nu
3 | nu | x | CDF

Parameter-Liste

par1

The first parameter

par2

The second parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, or nu, determined by which.


Calculates any one parameter of the uniform distribution given values for the others

  • « stats_cdf_t
  • stats_cdf_weibull »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the uniform distribution given values for the others

stats_cdf_uniform

(PECL stats >= 1.0.0)

stats_cdf_uniform — Calculates any one parameter of the uniform distribution given values for the others

Beschreibung

stats_cdf_uniform ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the uniform distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, a, and b denotes cumulative distribution function, the value of the random variable, the lower bound and the higher bound of the uniform distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | a | b
2 | x | CDF | a | b
3 | a | x | CDF | b
4 | b | x | CDF | a

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, a, or b, determined by which.


Calculates any one parameter of the Weibull distribution given values for the others

  • « stats_cdf_uniform
  • stats_covariance »
  • PHP Manual
  • Statistic Funktionen
  • Calculates any one parameter of the Weibull distribution given values for the others

stats_cdf_weibull

(PECL stats >= 1.0.0)

stats_cdf_weibull — Calculates any one parameter of the Weibull distribution given values for the others

Beschreibung

stats_cdf_weibull ( float $par1 , float $par2 , float $par3 , int $which ) : float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the Weibull distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, k, and lambda denotes cumulative distribution function, the value of the random variable, the shape and the scale parameter of the Weibull distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | k | lambda
2 | x | CDF | k | lambda
3 | k | x | CDF | lambda
4 | lambda | x | CDF | k

Parameter-Liste

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Rückgabewerte

Returns CDF, x, k, or lambda, determined by which.


Computes the covariance of two data sets

  • « stats_cdf_weibull
  • stats_dens_beta »
  • PHP Manual
  • Statistic Funktionen
  • Computes the covariance of two data sets

stats_covariance

(PECL stats >= 1.0.0)

stats_covariance — Computes the covariance of two data sets

Beschreibung

stats_covariance ( array $a , array $b ) : float

Returns the covariance of a and b.

Parameter-Liste

a

The first array

b

The second array

Rückgabewerte

Returns the covariance of a and b, or false on failure.


Probability density function of the beta distribution

  • « stats_covariance
  • stats_dens_cauchy »
  • PHP Manual
  • Statistic Funktionen
  • Probability density function of the beta distribution

stats_dens_beta

(PECL stats >= 1.0.0)

stats_dens_beta — Probability density function of the beta distribution

Beschreibung

stats_dens_beta ( float $x , float $a , float $b ) : float

Returns the probability density at x, where the random variable follows the beta distribution of which the shape parameters are a and b.

Parameter-Liste

x

The value at which the probability density is calculated

a

The shape parameter of the distribution

b

The shape parameter of the distribution

Rückgabewerte

The probability density at x or false for failure.


Probability density function of the Cauchy distribution

  • « stats_dens_beta
  • stats_dens_chisquare »
  • PHP Manual
  • Statistic Funktionen
  • Probability density function of the Cauchy distribution

stats_dens_cauchy

(PECL stats >= 1.0.0)

stats_dens_cauchy — Probability density function of the Cauchy distribution

Beschreibung

stats_dens_cauchy ( float $x , float $ave , float $stdev ) : float

Returns the probability density at x, where the random variable follows the Cauchy distribution whose location and scale are ave and stdev, respectively.

Parameter-Liste

x

The value at which the probability density is calculated

ave

The location parameter of the distribution

stdev

The scale parameter of the distribution

Rückgabewerte

The probability density at x or false for failure.


Probability density function of the chi-square distribution

  • « stats_dens_cauchy
  • stats_dens_exponential »
  • PHP Manual
  • Statistic Funktionen
  • Probability density function of the chi-square distribution

stats_dens_chisquare

(PECL stats >= 1.0.0)

stats_dens_chisquare — Probability density function of the chi-square distribution

Beschreibung

stats_dens_chisquare ( float $x , float $dfr ) : float

Returns the probability density at x, where the random variable follows the chi-square distribution of which the degree of freedom is dfr.

Parameter-Liste

x

The value at which the probability density is calculated

dfr

The degree of freedom of the distribution

Rückgabewerte

The probability density at x or false for failure.


Probability density function of the exponential distribution

  • « stats_dens_chisquare
  • stats_dens_f »
  • PHP Manual
  • Statistic Funktionen
  • Probability density function of the exponential distribution

stats_dens_exponential

(PECL stats >= 1.0.0)

stats_dens_exponential — Probability density function of the exponential distribution

Beschreibung

stats_dens_exponential ( float $x , float $scale ) : float

Returns the probability density at x, where the random variable follows the exponential distribution of which the scale is scale.

Parameter-Liste

x

The value at which the probability density is calculated

scale

The scale of the distribution

Rückgabewerte

The probability density at x or false for failure.


Probability density function of the F distribution

  • « stats_dens_exponential
  • stats_dens_gamma »
  • PHP Manual
  • Statistic Funktionen
  • Probability density function of the F distribution

stats_dens_f

(PECL stats >= 1.0.0)

stats_dens_f — Probability density function of the F distribution

Beschreibung

stats_dens_f ( float $x , float $dfr1 , float $dfr2 ) : float

Returns the probability density at x, where the random variable follows the F distribution of which the degree of freedoms are dfr1 and dfr2.

Parameter-Liste

x

The value at which the probability density is calculated

dfr1

The degree of freedom of the distribution

dfr2

The degree of freedom of the distribution

Rückgabewerte

The probability density at x or false for failure.


Probability density function of the gamma distribution

  • « stats_dens_f
  • stats_dens_laplace »
  • PHP Manual
  • Statistic Funktionen
  • Probability density function of the gamma distribution

stats_dens_gamma

(PECL stats >= 1.0.0)

stats_dens_gamma — Probability density function of the gamma distribution

Beschreibung

stats_dens_gamma ( float $x , float $shape , float $scale ) : float

Returns the probability density at x, where the random variable follows the gamma distribution of which the shape parameter is shape and the scale parameter is scale.

Parameter-Liste

x

The value at which the probability density is calculated

shape

The shape parameter of the distribution

scale

The scale parameter of the distribution

Rückgabewerte

The probability density at x or false for failure.


Probability density function of the Laplace distribution

  • « stats_dens_gamma
  • stats_dens_logistic »
  • PHP Manual
  • Statistic Funktionen
  • Probability density function of the Laplace distribution

stats_dens_laplace

(PECL stats >= 1.0.0)

stats_dens_laplace — Probability density function of the Laplace distribution

Beschreibung

stats_dens_laplace ( float $x , float $ave , float $stdev ) : float

Returns the probability density at x, where the random variable follows the Laplace distribution of which the location parameter is ave and the scale parameter is stdev.

Parameter-Liste

x

The value at which the probability density is calculated

ave

The location parameter of the distribution

stdev

The shape parameter of the distribution

Rückgabewerte

The probability density at x or false for failure.


Probability density function of the logistic distribution

  • « stats_dens_laplace
  • stats_dens_normal »
  • PHP Manual
  • Statistic Funktionen
  • Probability density function of the logistic distribution

stats_dens_logistic

(PECL stats >= 1.0.0)

stats_dens_logistic — Probability density function of the logistic distribution

Beschreibung

stats_dens_logistic ( float $x , float $ave , float $stdev ) : float

Returns the probability density at x, where the random variable follows the logistic distribution of which the location parameter is ave and the scale parameter is stdev.

Parameter-Liste

x

The value at which the probability density is calculated

ave

The location parameter of the distribution

stdev

The shape parameter of the distribution

Rückgabewerte

The probability density at x or false for failure.


Probability density function of the normal distribution

  • « stats_dens_logistic
  • stats_dens_pmf_binomial »
  • PHP Manual
  • Statistic Funktionen
  • Probability density function of the normal distribution

stats_dens_normal

(PECL stats >= 1.0.0)

stats_dens_normal — Probability density function of the normal distribution

Beschreibung

stats_dens_normal ( float $x , float $ave , float $stdev ) : float

Returns the probability density at x, where the random variable follows the normal distribution of which the mean is ave and the standard deviation is stdev.

Parameter-Liste

x

The value at which the probability density is calculated

ave

The mean of the distribution

stdev

The standard deviation of the distribution

Rückgabewerte

The probability density at x or false for failure.


Probability mass function of the binomial distribution

  • « stats_dens_normal
  • stats_dens_pmf_hypergeometric »
  • PHP Manual
  • Statistic Funktionen
  • Probability mass function of the binomial distribution

stats_dens_pmf_binomial

(PECL stats >= 1.0.0)

stats_dens_pmf_binomial — Probability mass function of the binomial distribution

Beschreibung

stats_dens_pmf_binomial ( float $x , float $n , float $pi ) : float

Returns the probability mass at x, where the random variable follows the binomial distribution of which the number of trials is n and the success rate is pi.

Parameter-Liste

x

The value at which the probability mass is calculated

n

The number of trials of the distribution

pi

The success rate of the distribution

Rückgabewerte

The probability mass at x or false for failure.


Probability mass function of the hypergeometric distribution

  • « stats_dens_pmf_binomial
  • stats_dens_pmf_negative_binomial »
  • PHP Manual
  • Statistic Funktionen
  • Probability mass function of the hypergeometric distribution

stats_dens_pmf_hypergeometric

(PECL stats >= 1.0.0)

stats_dens_pmf_hypergeometric — Probability mass function of the hypergeometric distribution

Beschreibung

stats_dens_pmf_hypergeometric ( float $n1 , float $n2 , float $N1 , float $N2 ) : float

Returns the probability mass at n1, where the random variable follows the hypergeometric distribution of which the number of failure is n2, the number of success samples is N1, and the number of failure samples is N2.

Parameter-Liste

n1

The number of success, at which the probability mass is calculated

n2

The number of failure of the distribution

N1

The number of success samples of the distribution

N2

The number of failure samples of the distribution

Rückgabewerte

The probability mass at n1 or false for failure.


Probability mass function of the negative binomial distribution

  • « stats_dens_pmf_hypergeometric
  • stats_dens_pmf_poisson »
  • PHP Manual
  • Statistic Funktionen
  • Probability mass function of the negative binomial distribution

stats_dens_pmf_negative_binomial

(PECL stats >= 1.0.0)

stats_dens_pmf_negative_binomial — Probability mass function of the negative binomial distribution

Beschreibung

stats_dens_pmf_negative_binomial ( float $x , float $n , float $pi ) : float

Returns the probability mass at x, where the random variable follows the negative binomial distribution of which the number of the success is n and the success rate is pi.

Parameter-Liste

x

The value at which the probability mass is calculated

n

The number of the success of the distribution

pi

The success rate of the distribution

Rückgabewerte

The probability mass at x or false for failure.


Probability mass function of the Poisson distribution

  • « stats_dens_pmf_negative_binomial
  • stats_dens_t »
  • PHP Manual
  • Statistic Funktionen
  • Probability mass function of the Poisson distribution

stats_dens_pmf_poisson

(PECL stats >= 1.0.0)

stats_dens_pmf_poisson — Probability mass function of the Poisson distribution

Beschreibung

stats_dens_pmf_poisson ( float $x , float $lb ) : float

Returns the probability mass at x, where the random variable follows the Poisson distribution whose parameter is lb.

Parameter-Liste

x

The value at which the probability mass is calculated

lb

The parameter of the Poisson distribution

Rückgabewerte

The probability mass at x or false for failure.


Probability density function of the t-distribution

  • « stats_dens_pmf_poisson
  • stats_dens_uniform »
  • PHP Manual
  • Statistic Funktionen
  • Probability density function of the t-distribution

stats_dens_t

(PECL stats >= 1.0.0)

stats_dens_t — Probability density function of the t-distribution

Beschreibung

stats_dens_t ( float $x , float $dfr ) : float

Returns the probability density at x, where the random variable follows the t-distribution of which the degree of freedom is dfr.

Parameter-Liste

x

The value at which the probability density is calculated

dfr

The degree of freedom of the distribution

Rückgabewerte

The probability density at x or false for failure.


Probability density function of the uniform distribution

  • « stats_dens_t
  • stats_dens_weibull »
  • PHP Manual
  • Statistic Funktionen
  • Probability density function of the uniform distribution

stats_dens_uniform

(PECL stats >= 1.0.0)

stats_dens_uniform — Probability density function of the uniform distribution

Beschreibung

stats_dens_uniform ( float $x , float $a , float $b ) : float

Returns the probability density at x, where the random variable follows the uniform distribution of which the lower bound is a and the upper bound is b.

Parameter-Liste

x

The value at which the probability density is calculated

a

The lower bound of the distribution

b

The upper bound of the distribution

Rückgabewerte

The probability density at x or false for failure.


Probability density function of the Weibull distribution

  • « stats_dens_uniform
  • stats_harmonic_mean »
  • PHP Manual
  • Statistic Funktionen
  • Probability density function of the Weibull distribution

stats_dens_weibull

(PECL stats >= 1.0.0)

stats_dens_weibull — Probability density function of the Weibull distribution

Beschreibung

stats_dens_weibull ( float $x , float $a , float $b ) : float

Returns the probability density at x, where the random variable follows the Weibull distribution of which the shape parameter is a and the scale parameter is b.

Parameter-Liste

x

The value at which the probability density is calculated

a

The shape parameter of the distribution

b

The scale parameter of the distribution

Rückgabewerte

The probability density at x or false for failure.


Returns the harmonic mean of an array of values

  • « stats_dens_weibull
  • stats_kurtosis »
  • PHP Manual
  • Statistic Funktionen
  • Returns the harmonic mean of an array of values

stats_harmonic_mean

(PECL stats >= 1.0.0)

stats_harmonic_mean — Returns the harmonic mean of an array of values

Beschreibung

stats_harmonic_mean ( array $a ) : number

Returns the harmonic mean of the values in a.

Parameter-Liste

a

The input array

Rückgabewerte

Returns the harmonic mean of the values in a, or false if a is empty or is not an array.


Computes the kurtosis of the data in the array

  • « stats_harmonic_mean
  • stats_rand_gen_beta »
  • PHP Manual
  • Statistic Funktionen
  • Computes the kurtosis of the data in the array

stats_kurtosis

(PECL stats >= 1.0.0)

stats_kurtosis — Computes the kurtosis of the data in the array

Beschreibung

stats_kurtosis ( array $a ) : float

Returns the kurtosis of the values in a.

Parameter-Liste

a

The input array

Rückgabewerte

Returns the kurtosis of the values in a, or false if a is empty or is not an array.


Generates a random deviate from the beta distribution

  • « stats_kurtosis
  • stats_rand_gen_chisquare »
  • PHP Manual
  • Statistic Funktionen
  • Generates a random deviate from the beta distribution

stats_rand_gen_beta

(PECL stats >= 1.0.0)

stats_rand_gen_beta — Generates a random deviate from the beta distribution

Beschreibung

stats_rand_gen_beta ( float $a , float $b ) : float

Returns a random deviate from the beta distribution with parameters A and B. The density of the beta is x^(a-1) * (1-x)^(b-1) / B(a,b) for 0 < x <. Method R. C. H. Cheng.

Parameter-Liste

a

The shape parameter of the beta distribution

b

The shape parameter of the beta distribution

Rückgabewerte

A random deviate


Generates a random deviate from the chi-square distribution

  • « stats_rand_gen_beta
  • stats_rand_gen_exponential »
  • PHP Manual
  • Statistic Funktionen
  • Generates a random deviate from the chi-square distribution

stats_rand_gen_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_chisquare — Generates a random deviate from the chi-square distribution

Beschreibung

stats_rand_gen_chisquare ( float $df ) : float

Returns a random deviate from the chi-square distribution where the degrees of freedom is df.

Parameter-Liste

df

The degrees of freedom

Rückgabewerte

A random deviate


Generates a random deviate from the exponential distribution

  • « stats_rand_gen_chisquare
  • stats_rand_gen_f »
  • PHP Manual
  • Statistic Funktionen
  • Generates a random deviate from the exponential distribution

stats_rand_gen_exponential

(PECL stats >= 1.0.0)

stats_rand_gen_exponential — Generates a random deviate from the exponential distribution

Beschreibung

stats_rand_gen_exponential ( float $av ) : float

Returns a random deviate from the exponential distribution of which the scale is av.

Parameter-Liste

av

The scale parameter

Rückgabewerte

A random deviate


Generates a random deviate from the F distribution

  • « stats_rand_gen_exponential
  • stats_rand_gen_funiform »
  • PHP Manual
  • Statistic Funktionen
  • Generates a random deviate from the F distribution

stats_rand_gen_f

(PECL stats >= 1.0.0)

stats_rand_gen_f — Generates a random deviate from the F distribution

Beschreibung

stats_rand_gen_f ( float $dfn , float $dfd ) : float

Generates a random deviate from the F (variance ratio) distribution with "dfn" degrees of freedom in the numerator and "dfd" degrees of freedom in the denominator. Method : directly generates ratio of chisquare variates.

Parameter-Liste

dfn

The degrees of freedom in the numerator

dfd

The degrees of freedom in the denominator

Rückgabewerte

A random deviate


Generates uniform float between low (exclusive) and high (exclusive)

  • « stats_rand_gen_f
  • stats_rand_gen_gamma »
  • PHP Manual
  • Statistic Funktionen
  • Generates uniform float between low (exclusive) and high (exclusive)

stats_rand_gen_funiform

(PECL stats >= 1.0.0)

stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)

Beschreibung

stats_rand_gen_funiform ( float $low , float $high ) : float

Returns a random deviate from the uniform distribution from low to high.

Parameter-Liste

low

The lower bound (inclusive)

high

The upper bound (exclusive)

Rückgabewerte

A random deviate


Generates a random deviate from the gamma distribution

  • « stats_rand_gen_funiform
  • stats_rand_gen_ibinomial_negative »
  • PHP Manual
  • Statistic Funktionen
  • Generates a random deviate from the gamma distribution

stats_rand_gen_gamma

(PECL stats >= 1.0.0)

stats_rand_gen_gamma — Generates a random deviate from the gamma distribution

Beschreibung

stats_rand_gen_gamma ( float $a , float $r ) : float

Generates a random deviate from the gamma distribution whose density is (A**R)/Gamma(R) * X**(R-1) * Exp(-A*X).

Parameter-Liste

a

location parameter of Gamma distribution (a > 0).

r

shape parameter of Gamma distribution (r > 0).

Rückgabewerte

A random deviate


Generates a random deviate from the negative binomial distribution

  • « stats_rand_gen_gamma
  • stats_rand_gen_ibinomial »
  • PHP Manual
  • Statistic Funktionen
  • Generates a random deviate from the negative binomial distribution

stats_rand_gen_ibinomial_negative

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial_negative — Generates a random deviate from the negative binomial distribution

Beschreibung

stats_rand_gen_ibinomial_negative ( int $n , float $p ) : int

Returns a random deviate from a negative binomial distribution where the number of success is n and the success rate is p.

Parameter-Liste

n

The number of success

p

The success rate

Rückgabewerte

A random deviate, which is the number of failure.


Generates a random deviate from the binomial distribution

  • « stats_rand_gen_ibinomial_negative
  • stats_rand_gen_int »
  • PHP Manual
  • Statistic Funktionen
  • Generates a random deviate from the binomial distribution

stats_rand_gen_ibinomial

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial — Generates a random deviate from the binomial distribution

Beschreibung

stats_rand_gen_ibinomial ( int $n , float $pp ) : int

Returns a random deviate from the binomial distribution whose number of trials is n and whose probability of an event in each trial is pp.

Parameter-Liste

n

The number of trials

pp

The probability of an event in each trial

Rückgabewerte

A random deviate


Generates random integer between 1 and 2147483562

  • « stats_rand_gen_ibinomial
  • stats_rand_gen_ipoisson »
  • PHP Manual
  • Statistic Funktionen
  • Generates random integer between 1 and 2147483562

stats_rand_gen_int

(PECL stats >= 1.0.0)

stats_rand_gen_int — Generates random integer between 1 and 2147483562

Beschreibung

stats_rand_gen_int ( ) : int

Returns a random integer between 1 and 2147483562

Rückgabewerte

A random integer


Generates a single random deviate from a Poisson distribution

  • « stats_rand_gen_int
  • stats_rand_gen_iuniform »
  • PHP Manual
  • Statistic Funktionen
  • Generates a single random deviate from a Poisson distribution

stats_rand_gen_ipoisson

(PECL stats >= 1.0.0)

stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution

Beschreibung

stats_rand_gen_ipoisson ( float $mu ) : int

Returns a random deviate from the Poisson distribution with parameter mu.

Parameter-Liste

mu

The parameter of the Poisson distribution

Rückgabewerte

A random deviate


Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

  • « stats_rand_gen_ipoisson
  • stats_rand_gen_noncentral_chisquare »
  • PHP Manual
  • Statistic Funktionen
  • Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

stats_rand_gen_iuniform

(PECL stats >= 1.0.0)

stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

Beschreibung

stats_rand_gen_iuniform ( int $low , int $high ) : int

Returns a random integer from the discrete uniform distribution between low (inclusive) and high (inclusive).

Parameter-Liste

low

The lower bound

high

The upper bound

Rückgabewerte

A random integer


Generates a random deviate from the non-central chi-square distribution

  • « stats_rand_gen_iuniform
  • stats_rand_gen_noncentral_f »
  • PHP Manual
  • Statistic Funktionen
  • Generates a random deviate from the non-central chi-square distribution

stats_rand_gen_noncentral_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_chisquare — Generates a random deviate from the non-central chi-square distribution

Beschreibung

stats_rand_gen_noncentral_chisquare ( float $df , float $xnonc ) : float

Returns a random deviate from the non-central chi-square distribution with degrees of freedom, df, and non-centrality parameter, xnonc.

Parameter-Liste

df

The degrees of freedom

xnonc

The non-centrality parameter

Rückgabewerte

A random deviate


Generates a random deviate from the noncentral F distribution

  • « stats_rand_gen_noncentral_chisquare
  • stats_rand_gen_noncentral_t »
  • PHP Manual
  • Statistic Funktionen
  • Generates a random deviate from the noncentral F distribution

stats_rand_gen_noncentral_f

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F distribution

Beschreibung

stats_rand_gen_noncentral_f ( float $dfn , float $dfd , float $xnonc ) : float

Returns a random deviate from the non-central F distribution where the degrees of freedoms are dfn (numerator) and dfd (denominator), and the non-centrality parameter is xnonc.

Parameter-Liste

dfn

The degrees of freedom of the numerator

dfd

The degrees of freedom of the denominator

xnonc

The non-centrality parameter

Rückgabewerte

A random deviate


Generates a single random deviate from a non-central t-distribution

  • « stats_rand_gen_noncentral_f
  • stats_rand_gen_normal »
  • PHP Manual
  • Statistic Funktionen
  • Generates a single random deviate from a non-central t-distribution

stats_rand_gen_noncentral_t

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_t — Generates a single random deviate from a non-central t-distribution

Beschreibung

stats_rand_gen_noncentral_t ( float $df , float $xnonc ) : float

Returns a random deviate from the non-central t-distribution with the degrees of freedom, df, and the non-centrality parameter, xnonc.

Parameter-Liste

df

The degrees of freedom

xnonc

The non-centrality parameter

Rückgabewerte

A random deviate


Generates a single random deviate from a normal distribution

  • « stats_rand_gen_noncentral_t
  • stats_rand_gen_t »
  • PHP Manual
  • Statistic Funktionen
  • Generates a single random deviate from a normal distribution

stats_rand_gen_normal

(PECL stats >= 1.0.0)

stats_rand_gen_normal — Generates a single random deviate from a normal distribution

Beschreibung

stats_rand_gen_normal ( float $av , float $sd ) : float

Returns a random deviate from the normal distribution with mean, av, and standard deviation, sd.

Parameter-Liste

av

The mean of the normal distribution

sd

The standard deviation of the normal distribution

Rückgabewerte

A random deviate


Generates a single random deviate from a t-distribution

  • « stats_rand_gen_normal
  • stats_rand_get_seeds »
  • PHP Manual
  • Statistic Funktionen
  • Generates a single random deviate from a t-distribution

stats_rand_gen_t

(PECL stats >= 1.0.0)

stats_rand_gen_t — Generates a single random deviate from a t-distribution

Beschreibung

stats_rand_gen_t ( float $df ) : float

Returns a random deviate from the t-distribution with the degrees of freedom, df.

Parameter-Liste

df

The degrees of freedom

Rückgabewerte

A random deviate


Get the seed values of the random number generator

  • « stats_rand_gen_t
  • stats_rand_phrase_to_seeds »
  • PHP Manual
  • Statistic Funktionen
  • Get the seed values of the random number generator

stats_rand_get_seeds

(PECL stats >= 1.0.0)

stats_rand_get_seeds — Get the seed values of the random number generator

Beschreibung

stats_rand_get_seeds ( ) : array

Returns the current seed values of the random number generator

Rückgabewerte

Returns an array of two integers.


Generate two seeds for the RGN random number generator

  • « stats_rand_get_seeds
  • stats_rand_ranf »
  • PHP Manual
  • Statistic Funktionen
  • Generate two seeds for the RGN random number generator

stats_rand_phrase_to_seeds

(PECL stats >= 1.0.0)

stats_rand_phrase_to_seeds — Generate two seeds for the RGN random number generator

Beschreibung

stats_rand_phrase_to_seeds ( string $phrase ) : array

Generate two seeds for the random number generator from a phrase.

Parameter-Liste

phrase

The input phrase

Rückgabewerte

Returns an array of two integers.


Generates a random floating point number between 0 and 1

  • « stats_rand_phrase_to_seeds
  • stats_rand_setall »
  • PHP Manual
  • Statistic Funktionen
  • Generates a random floating point number between 0 and 1

stats_rand_ranf

(PECL stats >= 1.0.0)

stats_rand_ranf — Generates a random floating point number between 0 and 1

Beschreibung

stats_rand_ranf ( ) : float

Returns a random floating point number from a uniform distribution between 0 (exclusive) and 1 (exclusive).

Rückgabewerte

A random floating point number


Set seed values to the random generator

  • « stats_rand_ranf
  • stats_skew »
  • PHP Manual
  • Statistic Funktionen
  • Set seed values to the random generator

stats_rand_setall

(PECL stats >= 1.0.0)

stats_rand_setall — Set seed values to the random generator

Beschreibung

stats_rand_setall ( int $iseed1 , int $iseed2 ) : void

Set iseed1 and iseed2 as seed values to the random generator used in statistic functions.

Parameter-Liste

iseed1

The value which is used as the random seed

iseed2

The value which is used as the random seed

Rückgabewerte

No values are returned.


Computes the skewness of the data in the array

  • « stats_rand_setall
  • stats_standard_deviation »
  • PHP Manual
  • Statistic Funktionen
  • Computes the skewness of the data in the array

stats_skew

(PECL stats >= 1.0.0)

stats_skew — Computes the skewness of the data in the array

Beschreibung

stats_skew ( array $a ) : float

Returns the skewness of the values in a.

Parameter-Liste

a

The input array

Rückgabewerte

Returns the skewness of the values in a, or false if a is empty or is not an array.


Returns the standard deviation

  • « stats_skew
  • stats_stat_binomial_coef »
  • PHP Manual
  • Statistic Funktionen
  • Returns the standard deviation

stats_standard_deviation

(PECL stats >= 1.0.0)

stats_standard_deviation — Returns the standard deviation

Beschreibung

stats_standard_deviation ( array $a , bool $sample = false ) : float

Returns the standard deviation of the values in a.

Parameter-Liste

a

The array of data to find the standard deviation for. Note that all values of the array will be cast to float.

sample

Indicates if a represents a sample of the population; defaults to false.

Rückgabewerte

Returns the standard deviation on success; false on failure.

Fehler/Exceptions

Raises an E_WARNING when there are fewer than 2 values in a.


Returns a binomial coefficient

  • « stats_standard_deviation
  • stats_stat_correlation »
  • PHP Manual
  • Statistic Funktionen
  • Returns a binomial coefficient

stats_stat_binomial_coef

(PECL stats >= 1.0.0)

stats_stat_binomial_coef — Returns a binomial coefficient

Beschreibung

stats_stat_binomial_coef ( int $x , int $n ) : float

Returns the binomial coefficient of n choose x.

Parameter-Liste

x

The number of chooses from the set

n

The number of elements in the set

Rückgabewerte

Returns the binomial coefficient


Returns the Pearson correlation coefficient of two data sets

  • « stats_stat_binomial_coef
  • stats_stat_factorial »
  • PHP Manual
  • Statistic Funktionen
  • Returns the Pearson correlation coefficient of two data sets

stats_stat_correlation

(PECL stats >= 1.0.0)

stats_stat_correlation — Returns the Pearson correlation coefficient of two data sets

Beschreibung

stats_stat_correlation ( array $arr1 , array $arr2 ) : float

Returns the Pearson correlation coefficient between arr1 and arr2.

Parameter-Liste

arr1

The first array

arr2

The second array

Rückgabewerte

Returns the Pearson correlation coefficient between arr1 and arr2, or false on failure.


Returns the factorial of an integer

  • « stats_stat_correlation
  • stats_stat_independent_t »
  • PHP Manual
  • Statistic Funktionen
  • Returns the factorial of an integer

stats_stat_factorial

(PECL stats >= 1.0.0)

stats_stat_factorial — Returns the factorial of an integer

Beschreibung

stats_stat_factorial ( int $n ) : float

Returns the factorial of an integer, n.

Parameter-Liste

n

An integer

Rückgabewerte

The factorial of n.


Returns the t-value from the independent two-sample t-test

  • « stats_stat_factorial
  • stats_stat_innerproduct »
  • PHP Manual
  • Statistic Funktionen
  • Returns the t-value from the independent two-sample t-test

stats_stat_independent_t

(PECL stats >= 1.0.0)

stats_stat_independent_t — Returns the t-value from the independent two-sample t-test

Beschreibung

stats_stat_independent_t ( array $arr1 , array $arr2 ) : float

Returns the t-value of the independent two-sample t-test between arr1 and arr2.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

arr1

The first set of values

arr2

The second set of values

Rückgabewerte

Returns the t-value, or false if failure.


Returns the inner product of two vectors

  • « stats_stat_independent_t
  • stats_stat_paired_t »
  • PHP Manual
  • Statistic Funktionen
  • Returns the inner product of two vectors

stats_stat_innerproduct

(PECL stats >= 1.0.0)

stats_stat_innerproduct — Returns the inner product of two vectors

Beschreibung

stats_stat_innerproduct ( array $arr1 , array $arr2 ) : float

Returns the inner product of arr1 and arr2.

Parameter-Liste

arr1

The first array

arr2

The second array

Rückgabewerte

Returns the inner product of arr1 and arr2, or false on failure.


Returns the t-value of the dependent t-test for paired samples

  • « stats_stat_innerproduct
  • stats_stat_percentile »
  • PHP Manual
  • Statistic Funktionen
  • Returns the t-value of the dependent t-test for paired samples

stats_stat_paired_t

(PECL stats >= 1.0.0)

stats_stat_paired_t — Returns the t-value of the dependent t-test for paired samples

Beschreibung

stats_stat_paired_t ( array $arr1 , array $arr2 ) : float

Returns the t-value of the dependent t-test for paired samples arr1 and arr2.

Parameter-Liste

arr1

The first samples

arr2

The second samples

Rückgabewerte

Returns the t-value, or false if failure.


Returns the percentile value

  • « stats_stat_paired_t
  • stats_stat_powersum »
  • PHP Manual
  • Statistic Funktionen
  • Returns the percentile value

stats_stat_percentile

(PECL stats >= 1.0.0)

stats_stat_percentile — Returns the percentile value

Beschreibung

stats_stat_percentile ( array $arr , float $perc ) : float

Returns the perc-th percentile value of the array arr.

Parameter-Liste

arr

The input array

perc

The percentile

Rückgabewerte

Returns the percentile values of the input array.


Returns the power sum of a vector

  • « stats_stat_percentile
  • stats_variance »
  • PHP Manual
  • Statistic Funktionen
  • Returns the power sum of a vector

stats_stat_powersum

(PECL stats >= 1.0.0)

stats_stat_powersum — Returns the power sum of a vector

Beschreibung

stats_stat_powersum ( array $arr , float $power ) : float

Returns the sum of the power-th power of a vector represented as an array arr.

Parameter-Liste

arr

The input array

power

The power

Rückgabewerte

Returns the power sum of the input array.


Returns the variance

  • « stats_stat_powersum
  • Trader »
  • PHP Manual
  • Statistic Funktionen
  • Returns the variance

stats_variance

(PECL stats >= 1.0.0)

stats_variance — Returns the variance

Beschreibung

stats_variance ( array $a , bool $sample = false ) : float

Returns the variance of the values in a.

Parameter-Liste

a

The array of data to find the standard deviation for. Note that all values of the array will be cast to float.

sample

Indicates if a represents a sample of the population; defaults to false.

Rückgabewerte

Returns the variance on success; false on failure.


Technical Analysis for Traders

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
  • Vordefinierte Konstanten
  • Trader Funktionen
    • trader_acos — Vector Trigonometric ACos
    • trader_ad — Chaikin A/D Line
    • trader_add — Vector Arithmetic Add
    • trader_adosc — Chaikin A/D Oscillator
    • trader_adx — Average Directional Movement Index
    • trader_adxr — Average Directional Movement Index Rating
    • trader_apo — Absolute Price Oscillator
    • trader_aroon — Aroon
    • trader_aroonosc — Aroon Oscillator
    • trader_asin — Vector Trigonometric ASin
    • trader_atan — Vector Trigonometric ATan
    • trader_atr — Average True Range
    • trader_avgprice — Average Price
    • trader_bbands — Bollinger Bands
    • trader_beta — Beta
    • trader_bop — Balance Of Power
    • trader_cci — Commodity Channel Index
    • trader_cdl2crows — Two Crows
    • trader_cdl3blackcrows — Three Black Crows
    • trader_cdl3inside — Three Inside Up/Down
    • trader_cdl3linestrike — Three-Line Strike
    • trader_cdl3outside — Three Outside Up/Down
    • trader_cdl3starsinsouth — Three Stars In The South
    • trader_cdl3whitesoldiers — Three Advancing White Soldiers
    • trader_cdlabandonedbaby — Abandoned Baby
    • trader_cdladvanceblock — Advance Block
    • trader_cdlbelthold — Belt-hold
    • trader_cdlbreakaway — Breakaway
    • trader_cdlclosingmarubozu — Closing Marubozu
    • trader_cdlconcealbabyswall — Concealing Baby Swallow
    • trader_cdlcounterattack — Counterattack
    • trader_cdldarkcloudcover — Dark Cloud Cover
    • trader_cdldoji — Doji
    • trader_cdldojistar — Doji Star
    • trader_cdldragonflydoji — Dragonfly Doji
    • trader_cdlengulfing — Engulfing Pattern
    • trader_cdleveningdojistar — Evening Doji Star
    • trader_cdleveningstar — Evening Star
    • trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines
    • trader_cdlgravestonedoji — Gravestone Doji
    • trader_cdlhammer — Hammer
    • trader_cdlhangingman — Hanging Man
    • trader_cdlharami — Harami Pattern
    • trader_cdlharamicross — Harami Cross Pattern
    • trader_cdlhighwave — High-Wave Candle
    • trader_cdlhikkake — Hikkake Pattern
    • trader_cdlhikkakemod — Modified Hikkake Pattern
    • trader_cdlhomingpigeon — Homing Pigeon
    • trader_cdlidentical3crows — Identical Three Crows
    • trader_cdlinneck — In-Neck Pattern
    • trader_cdlinvertedhammer — Inverted Hammer
    • trader_cdlkicking — Kicking
    • trader_cdlkickingbylength — Kicking - bull/bear determined by the longer marubozu
    • trader_cdlladderbottom — Ladder Bottom
    • trader_cdllongleggeddoji — Long Legged Doji
    • trader_cdllongline — Long Line Candle
    • trader_cdlmarubozu — Marubozu
    • trader_cdlmatchinglow — Matching Low
    • trader_cdlmathold — Mat Hold
    • trader_cdlmorningdojistar — Morning Doji Star
    • trader_cdlmorningstar — Morning Star
    • trader_cdlonneck — On-Neck Pattern
    • trader_cdlpiercing — Piercing Pattern
    • trader_cdlrickshawman — Rickshaw Man
    • trader_cdlrisefall3methods — Rising/Falling Three Methods
    • trader_cdlseparatinglines — Separating Lines
    • trader_cdlshootingstar — Shooting Star
    • trader_cdlshortline — Short Line Candle
    • trader_cdlspinningtop — Spinning Top
    • trader_cdlstalledpattern — Stalled Pattern
    • trader_cdlsticksandwich — Stick Sandwich
    • trader_cdltakuri — Takuri (Dragonfly Doji with very long lower shadow)
    • trader_cdltasukigap — Tasuki Gap
    • trader_cdlthrusting — Thrusting Pattern
    • trader_cdltristar — Tristar Pattern
    • trader_cdlunique3river — Unique 3 River
    • trader_cdlupsidegap2crows — Upside Gap Two Crows
    • trader_cdlxsidegap3methods — Upside/Downside Gap Three Methods
    • trader_ceil — Vector Ceil
    • trader_cmo — Chande Momentum Oscillator
    • trader_correl — Pearson's Correlation Coefficient (r)
    • trader_cos — Vector Trigonometric Cos
    • trader_cosh — Vector Trigonometric Cosh
    • trader_dema — Double Exponential Moving Average
    • trader_div — Vector Arithmetic Div
    • trader_dx — Directional Movement Index
    • trader_ema — Exponential Moving Average
    • trader_errno — Get error code
    • trader_exp — Vector Arithmetic Exp
    • trader_floor — Vector Floor
    • trader_get_compat — Get compatibility mode
    • trader_get_unstable_period — Get unstable period
    • trader_ht_dcperiod — Hilbert Transform - Dominant Cycle Period
    • trader_ht_dcphase — Hilbert Transform - Dominant Cycle Phase
    • trader_ht_phasor — Hilbert Transform - Phasor Components
    • trader_ht_sine — Hilbert Transform - SineWave
    • trader_ht_trendline — Hilbert Transform - Instantaneous Trendline
    • trader_ht_trendmode — Hilbert Transform - Trend vs Cycle Mode
    • trader_kama — Kaufman Adaptive Moving Average
    • trader_linearreg_angle — Linear Regression Angle
    • trader_linearreg_intercept — Linear Regression Intercept
    • trader_linearreg_slope — Linear Regression Slope
    • trader_linearreg — Linear Regression
    • trader_ln — Vector Log Natural
    • trader_log10 — Vector Log10
    • trader_ma — Moving average
    • trader_macd — Moving Average Convergence/Divergence
    • trader_macdext — MACD with controllable MA type
    • trader_macdfix — Moving Average Convergence/Divergence Fix 12/26
    • trader_mama — MESA Adaptive Moving Average
    • trader_mavp — Moving average with variable period
    • trader_max — Highest value over a specified period
    • trader_maxindex — Index of highest value over a specified period
    • trader_medprice — Median Price
    • trader_mfi — Money Flow Index
    • trader_midpoint — MidPoint over period
    • trader_midprice — Midpoint Price over period
    • trader_min — Lowest value over a specified period
    • trader_minindex — Index of lowest value over a specified period
    • trader_minmax — Lowest and highest values over a specified period
    • trader_minmaxindex — Indexes of lowest and highest values over a specified period
    • trader_minus_di — Minus Directional Indicator
    • trader_minus_dm — Minus Directional Movement
    • trader_mom — Momentum
    • trader_mult — Vector Arithmetic Mult
    • trader_natr — Normalized Average True Range
    • trader_obv — On Balance Volume
    • trader_plus_di — Plus Directional Indicator
    • trader_plus_dm — Plus Directional Movement
    • trader_ppo — Percentage Price Oscillator
    • trader_roc — Rate of change : ((price/prevPrice)-1)*100
    • trader_rocp — Rate of change Percentage: (price-prevPrice)/prevPrice
    • trader_rocr100 — Rate of change ratio 100 scale: (price/prevPrice)*100
    • trader_rocr — Rate of change ratio: (price/prevPrice)
    • trader_rsi — Relative Strength Index
    • trader_sar — Parabolic SAR
    • trader_sarext — Parabolic SAR - Extended
    • trader_set_compat — Set compatibility mode
    • trader_set_unstable_period — Set unstable period
    • trader_sin — Vector Trigonometric Sin
    • trader_sinh — Vector Trigonometric Sinh
    • trader_sma — Simple Moving Average
    • trader_sqrt — Vector Square Root
    • trader_stddev — Standard Deviation
    • trader_stoch — Stochastic
    • trader_stochf — Stochastic Fast
    • trader_stochrsi — Stochastic Relative Strength Index
    • trader_sub — Vector Arithmetic Subtraction
    • trader_sum — Summation
    • trader_t3 — Triple Exponential Moving Average (T3)
    • trader_tan — Vector Trigonometric Tan
    • trader_tanh — Vector Trigonometric Tanh
    • trader_tema — Triple Exponential Moving Average
    • trader_trange — True Range
    • trader_trima — Triangular Moving Average
    • trader_trix — 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
    • trader_tsf — Time Series Forecast
    • trader_typprice — Typical Price
    • trader_ultosc — Ultimate Oscillator
    • trader_var — Variance
    • trader_wclprice — Weighted Close Price
    • trader_willr — Williams' %R
    • trader_wma — Weighted Moving Average


Einführung

The trader extension is a free open source stock library based on TA-Lib. It's dedicated to trading software developers requiring to perform technical analysis of financial market data. Alongside many indicators like ADX, MACD, RSI, Stochastic, TRIX the candlestick pattern recognition and several vector arithmetic and algebraic functions are present.

Calculations can be done in two modes - TA-Lib and Metastock. Changing it using trader_set_compat() will affect the way some trader functions work.

Some trader functions provide different results depending of the "starting point" of the data being involved. This is often referred as a function having memories. An example of such function is the Exponential Moving Average. It is possible to control the unstable period (the amount of data to strip off) using trader_set_unstable_period() function.

Extended documentation about indicators, formulas and implementations in other programming languages can be found under » tadoc.org.


Anforderungen

The trader extension is based on » TA-Lib. TA-Lib is fully integrated into the extension, therefore no external libraries are needed.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/trader.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/trader/.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Trader Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
trader.real_precision | 3 | PHP_INI_ALL | Since trader 0.2.1
trader.real_round_mode | HALF_DOWN | PHP_INI_ALL | Since trader 0.3.0

Hier eine kurze Erklärung der Konfigurationsoptionen:

trader.real_precision int

All the values in the returned arrays will be rounded to this precision. However the calculations inside TA-Lib happen with unrounded values.

trader.real_round_mode string

Controls the trader real rounding policy. Valid values are HALF_UP, HALF_DOWN, HALF_EVEN and HALF_ODD. The behaviour is identical to the round() function used with the mode argument.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

TRADER_MA_TYPE_SMA (int)
TRADER_MA_TYPE_EMA (int)
TRADER_MA_TYPE_WMA (int)
TRADER_MA_TYPE_DEMA (int)
TRADER_MA_TYPE_TEMA (int)
TRADER_MA_TYPE_TRIMA (int)
TRADER_MA_TYPE_KAMA (int)
TRADER_MA_TYPE_MAMA (int)
TRADER_MA_TYPE_T3 (int)
TRADER_REAL_MIN (float)
TRADER_REAL_MAX (float)
TRADER_FUNC_UNST_ADX (int)
TRADER_FUNC_UNST_ADXR (int)
TRADER_FUNC_UNST_ATR (int)
TRADER_FUNC_UNST_CMO (int)
TRADER_FUNC_UNST_DX (int)
TRADER_FUNC_UNST_EMA (int)
TRADER_FUNC_UNST_HT_DCPERIOD (int)
TRADER_FUNC_UNST_HT_DCPHASE (int)
TRADER_FUNC_UNST_HT_PHASOR (int)
TRADER_FUNC_UNST_HT_SINE (int)
TRADER_FUNC_UNST_HT_TRENDLINE (int)
TRADER_FUNC_UNST_HT_TRENDMODE (int)
TRADER_FUNC_UNST_KAMA (int)
TRADER_FUNC_UNST_MAMA (int)
TRADER_FUNC_UNST_MFI (int)
TRADER_FUNC_UNST_MINUS_DI (int)
TRADER_FUNC_UNST_MINUS_DM (int)
TRADER_FUNC_UNST_NATR (int)
TRADER_FUNC_UNST_PLUS_DI (int)
TRADER_FUNC_UNST_PLUS_DM (int)
TRADER_FUNC_UNST_RSI (int)
TRADER_FUNC_UNST_STOCHRSI (int)
TRADER_FUNC_UNST_T3 (int)
TRADER_FUNC_UNST_ALL (int)
TRADER_FUNC_UNST_NONE (int)
TRADER_COMPATIBILITY_DEFAULT (int)
TRADER_COMPATIBILITY_METASTOCK (int)
TRADER_ERR_SUCCESS (int)
TRADER_ERR_LIB_NOT_INITIALIZE (int)
TRADER_ERR_BAD_PARAM (int)
TRADER_ERR_ALLOC_ERR (int)
TRADER_ERR_GROUP_NOT_FOUND (int)
TRADER_ERR_FUNC_NOT_FOUND (int)
TRADER_ERR_INVALID_HANDLE (int)
TRADER_ERR_INVALID_PARAM_HOLDER (int)
TRADER_ERR_INVALID_PARAM_HOLDER_TYPE (int)
TRADER_ERR_INVALID_PARAM_FUNCTION (int)
TRADER_ERR_INPUT_NOT_ALL_INITIALIZE (int)
TRADER_ERR_OUTPUT_NOT_ALL_INITIALIZE (int)
TRADER_ERR_OUT_OF_RANGE_START_INDEX (int)
TRADER_ERR_OUT_OF_RANGE_END_INDEX (int)
TRADER_ERR_INVALID_LIST_TYPE (int)
TRADER_ERR_BAD_OBJECT (int)
TRADER_ERR_NOT_SUPPORTED (int)
TRADER_ERR_INTERNAL_ERROR (int)
TRADER_ERR_UNKNOWN_ERROR (int)


Trader Funktionen

Inhaltsverzeichnis

  • trader_acos — Vector Trigonometric ACos
  • trader_ad — Chaikin A/D Line
  • trader_add — Vector Arithmetic Add
  • trader_adosc — Chaikin A/D Oscillator
  • trader_adx — Average Directional Movement Index
  • trader_adxr — Average Directional Movement Index Rating
  • trader_apo — Absolute Price Oscillator
  • trader_aroon — Aroon
  • trader_aroonosc — Aroon Oscillator
  • trader_asin — Vector Trigonometric ASin
  • trader_atan — Vector Trigonometric ATan
  • trader_atr — Average True Range
  • trader_avgprice — Average Price
  • trader_bbands — Bollinger Bands
  • trader_beta — Beta
  • trader_bop — Balance Of Power
  • trader_cci — Commodity Channel Index
  • trader_cdl2crows — Two Crows
  • trader_cdl3blackcrows — Three Black Crows
  • trader_cdl3inside — Three Inside Up/Down
  • trader_cdl3linestrike — Three-Line Strike
  • trader_cdl3outside — Three Outside Up/Down
  • trader_cdl3starsinsouth — Three Stars In The South
  • trader_cdl3whitesoldiers — Three Advancing White Soldiers
  • trader_cdlabandonedbaby — Abandoned Baby
  • trader_cdladvanceblock — Advance Block
  • trader_cdlbelthold — Belt-hold
  • trader_cdlbreakaway — Breakaway
  • trader_cdlclosingmarubozu — Closing Marubozu
  • trader_cdlconcealbabyswall — Concealing Baby Swallow
  • trader_cdlcounterattack — Counterattack
  • trader_cdldarkcloudcover — Dark Cloud Cover
  • trader_cdldoji — Doji
  • trader_cdldojistar — Doji Star
  • trader_cdldragonflydoji — Dragonfly Doji
  • trader_cdlengulfing — Engulfing Pattern
  • trader_cdleveningdojistar — Evening Doji Star
  • trader_cdleveningstar — Evening Star
  • trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines
  • trader_cdlgravestonedoji — Gravestone Doji
  • trader_cdlhammer — Hammer
  • trader_cdlhangingman — Hanging Man
  • trader_cdlharami — Harami Pattern
  • trader_cdlharamicross — Harami Cross Pattern
  • trader_cdlhighwave — High-Wave Candle
  • trader_cdlhikkake — Hikkake Pattern
  • trader_cdlhikkakemod — Modified Hikkake Pattern
  • trader_cdlhomingpigeon — Homing Pigeon
  • trader_cdlidentical3crows — Identical Three Crows
  • trader_cdlinneck — In-Neck Pattern
  • trader_cdlinvertedhammer — Inverted Hammer
  • trader_cdlkicking — Kicking
  • trader_cdlkickingbylength — Kicking - bull/bear determined by the longer marubozu
  • trader_cdlladderbottom — Ladder Bottom
  • trader_cdllongleggeddoji — Long Legged Doji
  • trader_cdllongline — Long Line Candle
  • trader_cdlmarubozu — Marubozu
  • trader_cdlmatchinglow — Matching Low
  • trader_cdlmathold — Mat Hold
  • trader_cdlmorningdojistar — Morning Doji Star
  • trader_cdlmorningstar — Morning Star
  • trader_cdlonneck — On-Neck Pattern
  • trader_cdlpiercing — Piercing Pattern
  • trader_cdlrickshawman — Rickshaw Man
  • trader_cdlrisefall3methods — Rising/Falling Three Methods
  • trader_cdlseparatinglines — Separating Lines
  • trader_cdlshootingstar — Shooting Star
  • trader_cdlshortline — Short Line Candle
  • trader_cdlspinningtop — Spinning Top
  • trader_cdlstalledpattern — Stalled Pattern
  • trader_cdlsticksandwich — Stick Sandwich
  • trader_cdltakuri — Takuri (Dragonfly Doji with very long lower shadow)
  • trader_cdltasukigap — Tasuki Gap
  • trader_cdlthrusting — Thrusting Pattern
  • trader_cdltristar — Tristar Pattern
  • trader_cdlunique3river — Unique 3 River
  • trader_cdlupsidegap2crows — Upside Gap Two Crows
  • trader_cdlxsidegap3methods — Upside/Downside Gap Three Methods
  • trader_ceil — Vector Ceil
  • trader_cmo — Chande Momentum Oscillator
  • trader_correl — Pearson's Correlation Coefficient (r)
  • trader_cos — Vector Trigonometric Cos
  • trader_cosh — Vector Trigonometric Cosh
  • trader_dema — Double Exponential Moving Average
  • trader_div — Vector Arithmetic Div
  • trader_dx — Directional Movement Index
  • trader_ema — Exponential Moving Average
  • trader_errno — Get error code
  • trader_exp — Vector Arithmetic Exp
  • trader_floor — Vector Floor
  • trader_get_compat — Get compatibility mode
  • trader_get_unstable_period — Get unstable period
  • trader_ht_dcperiod — Hilbert Transform - Dominant Cycle Period
  • trader_ht_dcphase — Hilbert Transform - Dominant Cycle Phase
  • trader_ht_phasor — Hilbert Transform - Phasor Components
  • trader_ht_sine — Hilbert Transform - SineWave
  • trader_ht_trendline — Hilbert Transform - Instantaneous Trendline
  • trader_ht_trendmode — Hilbert Transform - Trend vs Cycle Mode
  • trader_kama — Kaufman Adaptive Moving Average
  • trader_linearreg_angle — Linear Regression Angle
  • trader_linearreg_intercept — Linear Regression Intercept
  • trader_linearreg_slope — Linear Regression Slope
  • trader_linearreg — Linear Regression
  • trader_ln — Vector Log Natural
  • trader_log10 — Vector Log10
  • trader_ma — Moving average
  • trader_macd — Moving Average Convergence/Divergence
  • trader_macdext — MACD with controllable MA type
  • trader_macdfix — Moving Average Convergence/Divergence Fix 12/26
  • trader_mama — MESA Adaptive Moving Average
  • trader_mavp — Moving average with variable period
  • trader_max — Highest value over a specified period
  • trader_maxindex — Index of highest value over a specified period
  • trader_medprice — Median Price
  • trader_mfi — Money Flow Index
  • trader_midpoint — MidPoint over period
  • trader_midprice — Midpoint Price over period
  • trader_min — Lowest value over a specified period
  • trader_minindex — Index of lowest value over a specified period
  • trader_minmax — Lowest and highest values over a specified period
  • trader_minmaxindex — Indexes of lowest and highest values over a specified period
  • trader_minus_di — Minus Directional Indicator
  • trader_minus_dm — Minus Directional Movement
  • trader_mom — Momentum
  • trader_mult — Vector Arithmetic Mult
  • trader_natr — Normalized Average True Range
  • trader_obv — On Balance Volume
  • trader_plus_di — Plus Directional Indicator
  • trader_plus_dm — Plus Directional Movement
  • trader_ppo — Percentage Price Oscillator
  • trader_roc — Rate of change : ((price/prevPrice)-1)*100
  • trader_rocp — Rate of change Percentage: (price-prevPrice)/prevPrice
  • trader_rocr100 — Rate of change ratio 100 scale: (price/prevPrice)*100
  • trader_rocr — Rate of change ratio: (price/prevPrice)
  • trader_rsi — Relative Strength Index
  • trader_sar — Parabolic SAR
  • trader_sarext — Parabolic SAR - Extended
  • trader_set_compat — Set compatibility mode
  • trader_set_unstable_period — Set unstable period
  • trader_sin — Vector Trigonometric Sin
  • trader_sinh — Vector Trigonometric Sinh
  • trader_sma — Simple Moving Average
  • trader_sqrt — Vector Square Root
  • trader_stddev — Standard Deviation
  • trader_stoch — Stochastic
  • trader_stochf — Stochastic Fast
  • trader_stochrsi — Stochastic Relative Strength Index
  • trader_sub — Vector Arithmetic Subtraction
  • trader_sum — Summation
  • trader_t3 — Triple Exponential Moving Average (T3)
  • trader_tan — Vector Trigonometric Tan
  • trader_tanh — Vector Trigonometric Tanh
  • trader_tema — Triple Exponential Moving Average
  • trader_trange — True Range
  • trader_trima — Triangular Moving Average
  • trader_trix — 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
  • trader_tsf — Time Series Forecast
  • trader_typprice — Typical Price
  • trader_ultosc — Ultimate Oscillator
  • trader_var — Variance
  • trader_wclprice — Weighted Close Price
  • trader_willr — Williams' %R
  • trader_wma — Weighted Moving Average


Vector Trigonometric ACos

  • « Trader Funktionen
  • trader_ad »
  • PHP Manual
  • Trader Funktionen
  • Vector Trigonometric ACos

trader_acos

(PECL trader >= 0.2.0)

trader_acos — Vector Trigonometric ACos

Beschreibung

trader_acos ( array $real ) : array

Calculates the arc cosine for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Chaikin A/D Line

  • « trader_acos
  • trader_add »
  • PHP Manual
  • Trader Funktionen
  • Chaikin A/D Line

trader_ad

(PECL trader >= 0.2.0)

trader_ad — Chaikin A/D Line

Beschreibung

trader_ad ( array $high , array $low , array $close , array $volume ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

volume

Volume traded, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Arithmetic Add

  • « trader_ad
  • trader_adosc »
  • PHP Manual
  • Trader Funktionen
  • Vector Arithmetic Add

trader_add

(PECL trader >= 0.2.0)

trader_add — Vector Arithmetic Add

Beschreibung

trader_add ( array $real0 , array $real1 ) : array

Calculates the vector addition of real0 to real1 and returns the resulting vector.

Parameter-Liste

real0

Array of real values.

real1

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Chaikin A/D Oscillator

  • « trader_add
  • trader_adx »
  • PHP Manual
  • Trader Funktionen
  • Chaikin A/D Oscillator

trader_adosc

(PECL trader >= 0.2.0)

trader_adosc — Chaikin A/D Oscillator

Beschreibung

trader_adosc ( array $high , array $low , array $close , array $volume , int $fastPeriod = ? , int $slowPeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

volume

Volume traded, array of real values.

fastPeriod

Number of period for the fast MA. Valid range from 2 to 100000.

slowPeriod

Number of period for the slow MA. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Average Directional Movement Index

  • « trader_adosc
  • trader_adxr »
  • PHP Manual
  • Trader Funktionen
  • Average Directional Movement Index

trader_adx

(PECL trader >= 0.2.0)

trader_adx — Average Directional Movement Index

Beschreibung

trader_adx ( array $high , array $low , array $close , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Average Directional Movement Index Rating

  • « trader_adx
  • trader_apo »
  • PHP Manual
  • Trader Funktionen
  • Average Directional Movement Index Rating

trader_adxr

(PECL trader >= 0.2.0)

trader_adxr — Average Directional Movement Index Rating

Beschreibung

trader_adxr ( array $high , array $low , array $close , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Absolute Price Oscillator

  • « trader_adxr
  • trader_aroon »
  • PHP Manual
  • Trader Funktionen
  • Absolute Price Oscillator

trader_apo

(PECL trader >= 0.2.0)

trader_apo — Absolute Price Oscillator

Beschreibung

trader_apo ( array $real , int $fastPeriod = ? , int $slowPeriod = ? , int $mAType = ? ) : array

Parameter-Liste

real

Array of real values.

fastPeriod

Number of period for the fast MA. Valid range from 2 to 100000.

slowPeriod

Number of period for the slow MA. Valid range from 2 to 100000.

mAType

Type of Moving Average. TRADER_MA_TYPE_* series of constants should be used.

Rückgabewerte

Returns an array with calculated data or false on failure.


Aroon

  • « trader_apo
  • trader_aroonosc »
  • PHP Manual
  • Trader Funktionen
  • Aroon

trader_aroon

(PECL trader >= 0.2.0)

trader_aroon — Aroon

Beschreibung

trader_aroon ( array $high , array $low , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Aroon Oscillator

  • « trader_aroon
  • trader_asin »
  • PHP Manual
  • Trader Funktionen
  • Aroon Oscillator

trader_aroonosc

(PECL trader >= 0.2.0)

trader_aroonosc — Aroon Oscillator

Beschreibung

trader_aroonosc ( array $high , array $low , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Trigonometric ASin

  • « trader_aroonosc
  • trader_atan »
  • PHP Manual
  • Trader Funktionen
  • Vector Trigonometric ASin

trader_asin

(PECL trader >= 0.2.0)

trader_asin — Vector Trigonometric ASin

Beschreibung

trader_asin ( array $real ) : array

Calculates the arc sine for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Trigonometric ATan

  • « trader_asin
  • trader_atr »
  • PHP Manual
  • Trader Funktionen
  • Vector Trigonometric ATan

trader_atan

(PECL trader >= 0.2.0)

trader_atan — Vector Trigonometric ATan

Beschreibung

trader_atan ( array $real ) : array

Calculates the arc tangent for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Average True Range

  • « trader_atan
  • trader_avgprice »
  • PHP Manual
  • Trader Funktionen
  • Average True Range

trader_atr

(PECL trader >= 0.2.0)

trader_atr — Average True Range

Beschreibung

trader_atr ( array $high , array $low , array $close , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Average Price

  • « trader_atr
  • trader_bbands »
  • PHP Manual
  • Trader Funktionen
  • Average Price

trader_avgprice

(PECL trader >= 0.2.0)

trader_avgprice — Average Price

Beschreibung

trader_avgprice ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Bollinger Bands

  • « trader_avgprice
  • trader_beta »
  • PHP Manual
  • Trader Funktionen
  • Bollinger Bands

trader_bbands

(PECL trader >= 0.2.0)

trader_bbands — Bollinger Bands

Beschreibung

trader_bbands ( array $real , int $timePeriod = ? , float $nbDevUp = ? , float $nbDevDn = ? , int $mAType = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

nbDevUp

Deviation multiplier for upper band. Valid range from TRADER_REAL_MIN to TRADER_REAL_MAX.

nbDevDn

Deviation multiplier for lower band. Valid range from TRADER_REAL_MIN to TRADER_REAL_MAX.

mAType

Type of Moving Average. TRADER_MA_TYPE_* series of constants should be used.

Rückgabewerte

Returns an array with calculated data or false on failure.


Beta

  • « trader_bbands
  • trader_bop »
  • PHP Manual
  • Trader Funktionen
  • Beta

trader_beta

(PECL trader >= 0.2.0)

trader_beta — Beta

Beschreibung

trader_beta ( array $real0 , array $real1 , int $timePeriod = ? ) : array

Parameter-Liste

real0

Array of real values.

real1

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Balance Of Power

  • « trader_beta
  • trader_cci »
  • PHP Manual
  • Trader Funktionen
  • Balance Of Power

trader_bop

(PECL trader >= 0.2.0)

trader_bop — Balance Of Power

Beschreibung

trader_bop ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Commodity Channel Index

  • « trader_bop
  • trader_cdl2crows »
  • PHP Manual
  • Trader Funktionen
  • Commodity Channel Index

trader_cci

(PECL trader >= 0.2.0)

trader_cci — Commodity Channel Index

Beschreibung

trader_cci ( array $high , array $low , array $close , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Two Crows

  • « trader_cci
  • trader_cdl3blackcrows »
  • PHP Manual
  • Trader Funktionen
  • Two Crows

trader_cdl2crows

(PECL trader >= 0.2.0)

trader_cdl2crows — Two Crows

Beschreibung

trader_cdl2crows ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Three Black Crows

  • « trader_cdl2crows
  • trader_cdl3inside »
  • PHP Manual
  • Trader Funktionen
  • Three Black Crows

trader_cdl3blackcrows

(PECL trader >= 0.2.0)

trader_cdl3blackcrows — Three Black Crows

Beschreibung

trader_cdl3blackcrows ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Three Inside Up/Down

  • « trader_cdl3blackcrows
  • trader_cdl3linestrike »
  • PHP Manual
  • Trader Funktionen
  • Three Inside Up/Down

trader_cdl3inside

(PECL trader >= 0.2.0)

trader_cdl3inside — Three Inside Up/Down

Beschreibung

trader_cdl3inside ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Three-Line Strike

  • « trader_cdl3inside
  • trader_cdl3outside »
  • PHP Manual
  • Trader Funktionen
  • Three-Line Strike

trader_cdl3linestrike

(PECL trader >= 0.2.0)

trader_cdl3linestrike — Three-Line Strike

Beschreibung

trader_cdl3linestrike ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Three Outside Up/Down

  • « trader_cdl3linestrike
  • trader_cdl3starsinsouth »
  • PHP Manual
  • Trader Funktionen
  • Three Outside Up/Down

trader_cdl3outside

(PECL trader >= 0.2.0)

trader_cdl3outside — Three Outside Up/Down

Beschreibung

trader_cdl3outside ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Three Stars In The South

  • « trader_cdl3outside
  • trader_cdl3whitesoldiers »
  • PHP Manual
  • Trader Funktionen
  • Three Stars In The South

trader_cdl3starsinsouth

(PECL trader >= 0.2.0)

trader_cdl3starsinsouth — Three Stars In The South

Beschreibung

trader_cdl3starsinsouth ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Three Advancing White Soldiers

  • « trader_cdl3starsinsouth
  • trader_cdlabandonedbaby »
  • PHP Manual
  • Trader Funktionen
  • Three Advancing White Soldiers

trader_cdl3whitesoldiers

(PECL trader >= 0.2.0)

trader_cdl3whitesoldiers — Three Advancing White Soldiers

Beschreibung

trader_cdl3whitesoldiers ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Abandoned Baby

  • « trader_cdl3whitesoldiers
  • trader_cdladvanceblock »
  • PHP Manual
  • Trader Funktionen
  • Abandoned Baby

trader_cdlabandonedbaby

(PECL trader >= 0.2.0)

trader_cdlabandonedbaby — Abandoned Baby

Beschreibung

trader_cdlabandonedbaby ( array $open , array $high , array $low , array $close , float $penetration = ? ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

penetration

Percentage of penetration of a candle within another candle.

Rückgabewerte

Returns an array with calculated data or false on failure.


Advance Block

  • « trader_cdlabandonedbaby
  • trader_cdlbelthold »
  • PHP Manual
  • Trader Funktionen
  • Advance Block

trader_cdladvanceblock

(PECL trader >= 0.2.0)

trader_cdladvanceblock — Advance Block

Beschreibung

trader_cdladvanceblock ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Belt-hold

  • « trader_cdladvanceblock
  • trader_cdlbreakaway »
  • PHP Manual
  • Trader Funktionen
  • Belt-hold

trader_cdlbelthold

(PECL trader >= 0.2.0)

trader_cdlbelthold — Belt-hold

Beschreibung

trader_cdlbelthold ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Breakaway

  • « trader_cdlbelthold
  • trader_cdlclosingmarubozu »
  • PHP Manual
  • Trader Funktionen
  • Breakaway

trader_cdlbreakaway

(PECL trader >= 0.2.0)

trader_cdlbreakaway — Breakaway

Beschreibung

trader_cdlbreakaway ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Closing Marubozu

  • « trader_cdlbreakaway
  • trader_cdlconcealbabyswall »
  • PHP Manual
  • Trader Funktionen
  • Closing Marubozu

trader_cdlclosingmarubozu

(PECL trader >= 0.2.0)

trader_cdlclosingmarubozu — Closing Marubozu

Beschreibung

trader_cdlclosingmarubozu ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Concealing Baby Swallow

  • « trader_cdlclosingmarubozu
  • trader_cdlcounterattack »
  • PHP Manual
  • Trader Funktionen
  • Concealing Baby Swallow

trader_cdlconcealbabyswall

(PECL trader >= 0.2.0)

trader_cdlconcealbabyswall — Concealing Baby Swallow

Beschreibung

trader_cdlconcealbabyswall ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Counterattack

  • « trader_cdlconcealbabyswall
  • trader_cdldarkcloudcover »
  • PHP Manual
  • Trader Funktionen
  • Counterattack

trader_cdlcounterattack

(PECL trader >= 0.2.0)

trader_cdlcounterattack — Counterattack

Beschreibung

trader_cdlcounterattack ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Dark Cloud Cover

  • « trader_cdlcounterattack
  • trader_cdldoji »
  • PHP Manual
  • Trader Funktionen
  • Dark Cloud Cover

trader_cdldarkcloudcover

(PECL trader >= 0.2.0)

trader_cdldarkcloudcover — Dark Cloud Cover

Beschreibung

trader_cdldarkcloudcover ( array $open , array $high , array $low , array $close , float $penetration = ? ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

penetration

Percentage of penetration of a candle within another candle.

Rückgabewerte

Returns an array with calculated data or false on failure.


Doji

  • « trader_cdldarkcloudcover
  • trader_cdldojistar »
  • PHP Manual
  • Trader Funktionen
  • Doji

trader_cdldoji

(PECL trader >= 0.2.0)

trader_cdldoji — Doji

Beschreibung

trader_cdldoji ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Doji Star

  • « trader_cdldoji
  • trader_cdldragonflydoji »
  • PHP Manual
  • Trader Funktionen
  • Doji Star

trader_cdldojistar

(PECL trader >= 0.2.0)

trader_cdldojistar — Doji Star

Beschreibung

trader_cdldojistar ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Dragonfly Doji

  • « trader_cdldojistar
  • trader_cdlengulfing »
  • PHP Manual
  • Trader Funktionen
  • Dragonfly Doji

trader_cdldragonflydoji

(PECL trader >= 0.2.0)

trader_cdldragonflydoji — Dragonfly Doji

Beschreibung

trader_cdldragonflydoji ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Engulfing Pattern

  • « trader_cdldragonflydoji
  • trader_cdleveningdojistar »
  • PHP Manual
  • Trader Funktionen
  • Engulfing Pattern

trader_cdlengulfing

(PECL trader >= 0.2.0)

trader_cdlengulfing — Engulfing Pattern

Beschreibung

trader_cdlengulfing ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Evening Doji Star

  • « trader_cdlengulfing
  • trader_cdleveningstar »
  • PHP Manual
  • Trader Funktionen
  • Evening Doji Star

trader_cdleveningdojistar

(PECL trader >= 0.2.0)

trader_cdleveningdojistar — Evening Doji Star

Beschreibung

trader_cdleveningdojistar ( array $open , array $high , array $low , array $close , float $penetration = ? ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

penetration

Percentage of penetration of a candle within another candle.

Rückgabewerte

Returns an array with calculated data or false on failure.


Evening Star

  • « trader_cdleveningdojistar
  • trader_cdlgapsidesidewhite »
  • PHP Manual
  • Trader Funktionen
  • Evening Star

trader_cdleveningstar

(PECL trader >= 0.2.0)

trader_cdleveningstar — Evening Star

Beschreibung

trader_cdleveningstar ( array $open , array $high , array $low , array $close , float $penetration = ? ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

penetration

Percentage of penetration of a candle within another candle.

Rückgabewerte

Returns an array with calculated data or false on failure.


Up/Down-gap side-by-side white lines

  • « trader_cdleveningstar
  • trader_cdlgravestonedoji »
  • PHP Manual
  • Trader Funktionen
  • Up/Down-gap side-by-side white lines

trader_cdlgapsidesidewhite

(PECL trader >= 0.2.0)

trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines

Beschreibung

trader_cdlgapsidesidewhite ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Gravestone Doji

  • « trader_cdlgapsidesidewhite
  • trader_cdlhammer »
  • PHP Manual
  • Trader Funktionen
  • Gravestone Doji

trader_cdlgravestonedoji

(PECL trader >= 0.2.0)

trader_cdlgravestonedoji — Gravestone Doji

Beschreibung

trader_cdlgravestonedoji ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Hammer

  • « trader_cdlgravestonedoji
  • trader_cdlhangingman »
  • PHP Manual
  • Trader Funktionen
  • Hammer

trader_cdlhammer

(PECL trader >= 0.2.0)

trader_cdlhammer — Hammer

Beschreibung

trader_cdlhammer ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Hanging Man

  • « trader_cdlhammer
  • trader_cdlharami »
  • PHP Manual
  • Trader Funktionen
  • Hanging Man

trader_cdlhangingman

(PECL trader >= 0.2.0)

trader_cdlhangingman — Hanging Man

Beschreibung

trader_cdlhangingman ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Harami Pattern

  • « trader_cdlhangingman
  • trader_cdlharamicross »
  • PHP Manual
  • Trader Funktionen
  • Harami Pattern

trader_cdlharami

(PECL trader >= 0.2.0)

trader_cdlharami — Harami Pattern

Beschreibung

trader_cdlharami ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Harami Cross Pattern

  • « trader_cdlharami
  • trader_cdlhighwave »
  • PHP Manual
  • Trader Funktionen
  • Harami Cross Pattern

trader_cdlharamicross

(PECL trader >= 0.2.0)

trader_cdlharamicross — Harami Cross Pattern

Beschreibung

trader_cdlharamicross ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


High-Wave Candle

  • « trader_cdlharamicross
  • trader_cdlhikkake »
  • PHP Manual
  • Trader Funktionen
  • High-Wave Candle

trader_cdlhighwave

(PECL trader >= 0.2.0)

trader_cdlhighwave — High-Wave Candle

Beschreibung

trader_cdlhighwave ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Hikkake Pattern

  • « trader_cdlhighwave
  • trader_cdlhikkakemod »
  • PHP Manual
  • Trader Funktionen
  • Hikkake Pattern

trader_cdlhikkake

(PECL trader >= 0.2.0)

trader_cdlhikkake — Hikkake Pattern

Beschreibung

trader_cdlhikkake ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Modified Hikkake Pattern

  • « trader_cdlhikkake
  • trader_cdlhomingpigeon »
  • PHP Manual
  • Trader Funktionen
  • Modified Hikkake Pattern

trader_cdlhikkakemod

(PECL trader >= 0.2.0)

trader_cdlhikkakemod — Modified Hikkake Pattern

Beschreibung

trader_cdlhikkakemod ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Homing Pigeon

  • « trader_cdlhikkakemod
  • trader_cdlidentical3crows »
  • PHP Manual
  • Trader Funktionen
  • Homing Pigeon

trader_cdlhomingpigeon

(PECL trader >= 0.2.0)

trader_cdlhomingpigeon — Homing Pigeon

Beschreibung

trader_cdlhomingpigeon ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Identical Three Crows

  • « trader_cdlhomingpigeon
  • trader_cdlinneck »
  • PHP Manual
  • Trader Funktionen
  • Identical Three Crows

trader_cdlidentical3crows

(PECL trader >= 0.2.0)

trader_cdlidentical3crows — Identical Three Crows

Beschreibung

trader_cdlidentical3crows ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


In-Neck Pattern

  • « trader_cdlidentical3crows
  • trader_cdlinvertedhammer »
  • PHP Manual
  • Trader Funktionen
  • In-Neck Pattern

trader_cdlinneck

(PECL trader >= 0.2.0)

trader_cdlinneck — In-Neck Pattern

Beschreibung

trader_cdlinneck ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Inverted Hammer

  • « trader_cdlinneck
  • trader_cdlkicking »
  • PHP Manual
  • Trader Funktionen
  • Inverted Hammer

trader_cdlinvertedhammer

(PECL trader >= 0.2.0)

trader_cdlinvertedhammer — Inverted Hammer

Beschreibung

trader_cdlinvertedhammer ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Kicking

  • « trader_cdlinvertedhammer
  • trader_cdlkickingbylength »
  • PHP Manual
  • Trader Funktionen
  • Kicking

trader_cdlkicking

(PECL trader >= 0.2.0)

trader_cdlkicking — Kicking

Beschreibung

trader_cdlkicking ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Kicking - bull/bear determined by the longer marubozu

  • « trader_cdlkicking
  • trader_cdlladderbottom »
  • PHP Manual
  • Trader Funktionen
  • Kicking - bull/bear determined by the longer marubozu

trader_cdlkickingbylength

(PECL trader >= 0.2.0)

trader_cdlkickingbylength — Kicking - bull/bear determined by the longer marubozu

Beschreibung

trader_cdlkickingbylength ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Ladder Bottom

  • « trader_cdlkickingbylength
  • trader_cdllongleggeddoji »
  • PHP Manual
  • Trader Funktionen
  • Ladder Bottom

trader_cdlladderbottom

(PECL trader >= 0.2.0)

trader_cdlladderbottom — Ladder Bottom

Beschreibung

trader_cdlladderbottom ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Long Legged Doji

  • « trader_cdlladderbottom
  • trader_cdllongline »
  • PHP Manual
  • Trader Funktionen
  • Long Legged Doji

trader_cdllongleggeddoji

(PECL trader >= 0.2.0)

trader_cdllongleggeddoji — Long Legged Doji

Beschreibung

trader_cdllongleggeddoji ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Long Line Candle

  • « trader_cdllongleggeddoji
  • trader_cdlmarubozu »
  • PHP Manual
  • Trader Funktionen
  • Long Line Candle

trader_cdllongline

(PECL trader >= 0.2.0)

trader_cdllongline — Long Line Candle

Beschreibung

trader_cdllongline ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Marubozu

  • « trader_cdllongline
  • trader_cdlmatchinglow »
  • PHP Manual
  • Trader Funktionen
  • Marubozu

trader_cdlmarubozu

(PECL trader >= 0.2.0)

trader_cdlmarubozu — Marubozu

Beschreibung

trader_cdlmarubozu ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Matching Low

  • « trader_cdlmarubozu
  • trader_cdlmathold »
  • PHP Manual
  • Trader Funktionen
  • Matching Low

trader_cdlmatchinglow

(PECL trader >= 0.2.0)

trader_cdlmatchinglow — Matching Low

Beschreibung

trader_cdlmatchinglow ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Mat Hold

  • « trader_cdlmatchinglow
  • trader_cdlmorningdojistar »
  • PHP Manual
  • Trader Funktionen
  • Mat Hold

trader_cdlmathold

(PECL trader >= 0.2.0)

trader_cdlmathold — Mat Hold

Beschreibung

trader_cdlmathold ( array $open , array $high , array $low , array $close , float $penetration = ? ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

penetration

Percentage of penetration of a candle within another candle.

Rückgabewerte

Returns an array with calculated data or false on failure.


Morning Doji Star

  • « trader_cdlmathold
  • trader_cdlmorningstar »
  • PHP Manual
  • Trader Funktionen
  • Morning Doji Star

trader_cdlmorningdojistar

(PECL trader >= 0.2.0)

trader_cdlmorningdojistar — Morning Doji Star

Beschreibung

trader_cdlmorningdojistar ( array $open , array $high , array $low , array $close , float $penetration = ? ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

penetration

Percentage of penetration of a candle within another candle.

Rückgabewerte

Returns an array with calculated data or false on failure.


Morning Star

  • « trader_cdlmorningdojistar
  • trader_cdlonneck »
  • PHP Manual
  • Trader Funktionen
  • Morning Star

trader_cdlmorningstar

(PECL trader >= 0.2.0)

trader_cdlmorningstar — Morning Star

Beschreibung

trader_cdlmorningstar ( array $open , array $high , array $low , array $close , float $penetration = ? ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

penetration

Percentage of penetration of a candle within another candle.

Rückgabewerte

Returns an array with calculated data or false on failure.


On-Neck Pattern

  • « trader_cdlmorningstar
  • trader_cdlpiercing »
  • PHP Manual
  • Trader Funktionen
  • On-Neck Pattern

trader_cdlonneck

(PECL trader >= 0.2.0)

trader_cdlonneck — On-Neck Pattern

Beschreibung

trader_cdlonneck ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Piercing Pattern

  • « trader_cdlonneck
  • trader_cdlrickshawman »
  • PHP Manual
  • Trader Funktionen
  • Piercing Pattern

trader_cdlpiercing

(PECL trader >= 0.2.0)

trader_cdlpiercing — Piercing Pattern

Beschreibung

trader_cdlpiercing ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Rickshaw Man

  • « trader_cdlpiercing
  • trader_cdlrisefall3methods »
  • PHP Manual
  • Trader Funktionen
  • Rickshaw Man

trader_cdlrickshawman

(PECL trader >= 0.2.0)

trader_cdlrickshawman — Rickshaw Man

Beschreibung

trader_cdlrickshawman ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Rising/Falling Three Methods

  • « trader_cdlrickshawman
  • trader_cdlseparatinglines »
  • PHP Manual
  • Trader Funktionen
  • Rising/Falling Three Methods

trader_cdlrisefall3methods

(PECL trader >= 0.2.0)

trader_cdlrisefall3methods — Rising/Falling Three Methods

Beschreibung

trader_cdlrisefall3methods ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Separating Lines

  • « trader_cdlrisefall3methods
  • trader_cdlshootingstar »
  • PHP Manual
  • Trader Funktionen
  • Separating Lines

trader_cdlseparatinglines

(PECL trader >= 0.2.0)

trader_cdlseparatinglines — Separating Lines

Beschreibung

trader_cdlseparatinglines ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Shooting Star

  • « trader_cdlseparatinglines
  • trader_cdlshortline »
  • PHP Manual
  • Trader Funktionen
  • Shooting Star

trader_cdlshootingstar

(PECL trader >= 0.2.0)

trader_cdlshootingstar — Shooting Star

Beschreibung

trader_cdlshootingstar ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Short Line Candle

  • « trader_cdlshootingstar
  • trader_cdlspinningtop »
  • PHP Manual
  • Trader Funktionen
  • Short Line Candle

trader_cdlshortline

(PECL trader >= 0.2.0)

trader_cdlshortline — Short Line Candle

Beschreibung

trader_cdlshortline ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Spinning Top

  • « trader_cdlshortline
  • trader_cdlstalledpattern »
  • PHP Manual
  • Trader Funktionen
  • Spinning Top

trader_cdlspinningtop

(PECL trader >= 0.2.0)

trader_cdlspinningtop — Spinning Top

Beschreibung

trader_cdlspinningtop ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Stalled Pattern

  • « trader_cdlspinningtop
  • trader_cdlsticksandwich »
  • PHP Manual
  • Trader Funktionen
  • Stalled Pattern

trader_cdlstalledpattern

(PECL trader >= 0.2.0)

trader_cdlstalledpattern — Stalled Pattern

Beschreibung

trader_cdlstalledpattern ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Stick Sandwich

  • « trader_cdlstalledpattern
  • trader_cdltakuri »
  • PHP Manual
  • Trader Funktionen
  • Stick Sandwich

trader_cdlsticksandwich

(PECL trader >= 0.2.0)

trader_cdlsticksandwich — Stick Sandwich

Beschreibung

trader_cdlsticksandwich ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Takuri (Dragonfly Doji with very long lower shadow)

  • « trader_cdlsticksandwich
  • trader_cdltasukigap »
  • PHP Manual
  • Trader Funktionen
  • Takuri (Dragonfly Doji with very long lower shadow)

trader_cdltakuri

(PECL trader >= 0.2.0)

trader_cdltakuri — Takuri (Dragonfly Doji with very long lower shadow)

Beschreibung

trader_cdltakuri ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Tasuki Gap

  • « trader_cdltakuri
  • trader_cdlthrusting »
  • PHP Manual
  • Trader Funktionen
  • Tasuki Gap

trader_cdltasukigap

(PECL trader >= 0.2.0)

trader_cdltasukigap — Tasuki Gap

Beschreibung

trader_cdltasukigap ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Thrusting Pattern

  • « trader_cdltasukigap
  • trader_cdltristar »
  • PHP Manual
  • Trader Funktionen
  • Thrusting Pattern

trader_cdlthrusting

(PECL trader >= 0.2.0)

trader_cdlthrusting — Thrusting Pattern

Beschreibung

trader_cdlthrusting ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Tristar Pattern

  • « trader_cdlthrusting
  • trader_cdlunique3river »
  • PHP Manual
  • Trader Funktionen
  • Tristar Pattern

trader_cdltristar

(PECL trader >= 0.2.0)

trader_cdltristar — Tristar Pattern

Beschreibung

trader_cdltristar ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Unique 3 River

  • « trader_cdltristar
  • trader_cdlupsidegap2crows »
  • PHP Manual
  • Trader Funktionen
  • Unique 3 River

trader_cdlunique3river

(PECL trader >= 0.2.0)

trader_cdlunique3river — Unique 3 River

Beschreibung

trader_cdlunique3river ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Upside Gap Two Crows

  • « trader_cdlunique3river
  • trader_cdlxsidegap3methods »
  • PHP Manual
  • Trader Funktionen
  • Upside Gap Two Crows

trader_cdlupsidegap2crows

(PECL trader >= 0.2.0)

trader_cdlupsidegap2crows — Upside Gap Two Crows

Beschreibung

trader_cdlupsidegap2crows ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Upside/Downside Gap Three Methods

  • « trader_cdlupsidegap2crows
  • trader_ceil »
  • PHP Manual
  • Trader Funktionen
  • Upside/Downside Gap Three Methods

trader_cdlxsidegap3methods

(PECL trader >= 0.2.0)

trader_cdlxsidegap3methods — Upside/Downside Gap Three Methods

Beschreibung

trader_cdlxsidegap3methods ( array $open , array $high , array $low , array $close ) : array

Parameter-Liste

open

Opening price, array of real values.

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Ceil

  • « trader_cdlxsidegap3methods
  • trader_cmo »
  • PHP Manual
  • Trader Funktionen
  • Vector Ceil

trader_ceil

(PECL trader >= 0.2.0)

trader_ceil — Vector Ceil

Beschreibung

trader_ceil ( array $real ) : array

Calculates the next highest integer for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Chande Momentum Oscillator

  • « trader_ceil
  • trader_correl »
  • PHP Manual
  • Trader Funktionen
  • Chande Momentum Oscillator

trader_cmo

(PECL trader >= 0.2.0)

trader_cmo — Chande Momentum Oscillator

Beschreibung

trader_cmo ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Pearson's Correlation Coefficient (r)

  • « trader_cmo
  • trader_cos »
  • PHP Manual
  • Trader Funktionen
  • Pearson's Correlation Coefficient (r)

trader_correl

(PECL trader >= 0.2.0)

trader_correl — Pearson's Correlation Coefficient (r)

Beschreibung

trader_correl ( array $real0 , array $real1 , int $timePeriod = ? ) : array

Parameter-Liste

real0

Array of real values.

real1

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Trigonometric Cos

  • « trader_correl
  • trader_cosh »
  • PHP Manual
  • Trader Funktionen
  • Vector Trigonometric Cos

trader_cos

(PECL trader >= 0.2.0)

trader_cos — Vector Trigonometric Cos

Beschreibung

trader_cos ( array $real ) : array

Calculates the cosine for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Trigonometric Cosh

  • « trader_cos
  • trader_dema »
  • PHP Manual
  • Trader Funktionen
  • Vector Trigonometric Cosh

trader_cosh

(PECL trader >= 0.2.0)

trader_cosh — Vector Trigonometric Cosh

Beschreibung

trader_cosh ( array $real ) : array

Calculates the hyperbolic cosine for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Double Exponential Moving Average

  • « trader_cosh
  • trader_div »
  • PHP Manual
  • Trader Funktionen
  • Double Exponential Moving Average

trader_dema

(PECL trader >= 0.2.0)

trader_dema — Double Exponential Moving Average

Beschreibung

trader_dema ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Arithmetic Div

  • « trader_dema
  • trader_dx »
  • PHP Manual
  • Trader Funktionen
  • Vector Arithmetic Div

trader_div

(PECL trader >= 0.2.0)

trader_div — Vector Arithmetic Div

Beschreibung

trader_div ( array $real0 , array $real1 ) : array

Divides each value from real0 by the corresponding value from real1 and returns the resulting array.

Parameter-Liste

real0

Array of real values.

real1

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Directional Movement Index

  • « trader_div
  • trader_ema »
  • PHP Manual
  • Trader Funktionen
  • Directional Movement Index

trader_dx

(PECL trader >= 0.2.0)

trader_dx — Directional Movement Index

Beschreibung

trader_dx ( array $high , array $low , array $close , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Exponential Moving Average

  • « trader_dx
  • trader_errno »
  • PHP Manual
  • Trader Funktionen
  • Exponential Moving Average

trader_ema

(PECL trader >= 0.2.0)

trader_ema — Exponential Moving Average

Beschreibung

trader_ema ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Get error code

  • « trader_ema
  • trader_exp »
  • PHP Manual
  • Trader Funktionen
  • Get error code

trader_errno

(PECL trader >= 0.3.0)

trader_errno — Get error code

Beschreibung

trader_errno ( ) : int

Get error code of the last operation.

Rückgabewerte

Returns the error code identified by one of the TRADER_ERR_* constants.


Vector Arithmetic Exp

  • « trader_errno
  • trader_floor »
  • PHP Manual
  • Trader Funktionen
  • Vector Arithmetic Exp

trader_exp

(PECL trader >= 0.2.0)

trader_exp — Vector Arithmetic Exp

Beschreibung

trader_exp ( array $real ) : array

Calculates e raised to the power of each value in real. Returns an array with the calculated data.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Floor

  • « trader_exp
  • trader_get_compat »
  • PHP Manual
  • Trader Funktionen
  • Vector Floor

trader_floor

(PECL trader >= 0.2.0)

trader_floor — Vector Floor

Beschreibung

trader_floor ( array $real ) : array

Calculates the next lowest integer for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Get compatibility mode

  • « trader_floor
  • trader_get_unstable_period »
  • PHP Manual
  • Trader Funktionen
  • Get compatibility mode

trader_get_compat

(PECL trader >= 0.2.2)

trader_get_compat — Get compatibility mode

Beschreibung

trader_get_compat ( ) : int

Get compatibility mode which affects the way calculations are done by all the extension functions.

Rückgabewerte

Returns the compatibility mode id which can be identified by TRADER_COMPATIBILITY_* series of constants.


Get unstable period

  • « trader_get_compat
  • trader_ht_dcperiod »
  • PHP Manual
  • Trader Funktionen
  • Get unstable period

trader_get_unstable_period

(PECL trader >= 0.2.2)

trader_get_unstable_period — Get unstable period

Beschreibung

trader_get_unstable_period ( int $functionId ) : int

Get unstable period factor for a particular function.

Parameter-Liste

functionId

Function ID the factor to be read for. TRADER_FUNC_UNST_* series of constants should be used.

Rückgabewerte

Returns the unstable period factor for the corresponding function.


Hilbert Transform - Dominant Cycle Period

  • « trader_get_unstable_period
  • trader_ht_dcphase »
  • PHP Manual
  • Trader Funktionen
  • Hilbert Transform - Dominant Cycle Period

trader_ht_dcperiod

(PECL trader >= 0.2.0)

trader_ht_dcperiod — Hilbert Transform - Dominant Cycle Period

Beschreibung

trader_ht_dcperiod ( array $real ) : array

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Hilbert Transform - Dominant Cycle Phase

  • « trader_ht_dcperiod
  • trader_ht_phasor »
  • PHP Manual
  • Trader Funktionen
  • Hilbert Transform - Dominant Cycle Phase

trader_ht_dcphase

(PECL trader >= 0.2.0)

trader_ht_dcphase — Hilbert Transform - Dominant Cycle Phase

Beschreibung

trader_ht_dcphase ( array $real ) : array

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Hilbert Transform - Phasor Components

  • « trader_ht_dcphase
  • trader_ht_sine »
  • PHP Manual
  • Trader Funktionen
  • Hilbert Transform - Phasor Components

trader_ht_phasor

(PECL trader >= 0.2.0)

trader_ht_phasor — Hilbert Transform - Phasor Components

Beschreibung

trader_ht_phasor ( array $real ) : array

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Hilbert Transform - SineWave

  • « trader_ht_phasor
  • trader_ht_trendline »
  • PHP Manual
  • Trader Funktionen
  • Hilbert Transform - SineWave

trader_ht_sine

(PECL trader >= 0.2.0)

trader_ht_sine — Hilbert Transform - SineWave

Beschreibung

trader_ht_sine ( array $real ) : array

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Hilbert Transform - Instantaneous Trendline

  • « trader_ht_sine
  • trader_ht_trendmode »
  • PHP Manual
  • Trader Funktionen
  • Hilbert Transform - Instantaneous Trendline

trader_ht_trendline

(PECL trader >= 0.2.0)

trader_ht_trendline — Hilbert Transform - Instantaneous Trendline

Beschreibung

trader_ht_trendline ( array $real ) : array

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Hilbert Transform - Trend vs Cycle Mode

  • « trader_ht_trendline
  • trader_kama »
  • PHP Manual
  • Trader Funktionen
  • Hilbert Transform - Trend vs Cycle Mode

trader_ht_trendmode

(PECL trader >= 0.2.0)

trader_ht_trendmode — Hilbert Transform - Trend vs Cycle Mode

Beschreibung

trader_ht_trendmode ( array $real ) : array

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Kaufman Adaptive Moving Average

  • « trader_ht_trendmode
  • trader_linearreg_angle »
  • PHP Manual
  • Trader Funktionen
  • Kaufman Adaptive Moving Average

trader_kama

(PECL trader >= 0.2.0)

trader_kama — Kaufman Adaptive Moving Average

Beschreibung

trader_kama ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Linear Regression Angle

  • « trader_kama
  • trader_linearreg_intercept »
  • PHP Manual
  • Trader Funktionen
  • Linear Regression Angle

trader_linearreg_angle

(PECL trader >= 0.2.0)

trader_linearreg_angle — Linear Regression Angle

Beschreibung

trader_linearreg_angle ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Linear Regression Intercept

  • « trader_linearreg_angle
  • trader_linearreg_slope »
  • PHP Manual
  • Trader Funktionen
  • Linear Regression Intercept

trader_linearreg_intercept

(PECL trader >= 0.2.0)

trader_linearreg_intercept — Linear Regression Intercept

Beschreibung

trader_linearreg_intercept ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Linear Regression Slope

  • « trader_linearreg_intercept
  • trader_linearreg »
  • PHP Manual
  • Trader Funktionen
  • Linear Regression Slope

trader_linearreg_slope

(PECL trader >= 0.2.0)

trader_linearreg_slope — Linear Regression Slope

Beschreibung

trader_linearreg_slope ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Linear Regression

  • « trader_linearreg_slope
  • trader_ln »
  • PHP Manual
  • Trader Funktionen
  • Linear Regression

trader_linearreg

(PECL trader >= 0.2.0)

trader_linearreg — Linear Regression

Beschreibung

trader_linearreg ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Log Natural

  • « trader_linearreg
  • trader_log10 »
  • PHP Manual
  • Trader Funktionen
  • Vector Log Natural

trader_ln

(PECL trader >= 0.2.0)

trader_ln — Vector Log Natural

Beschreibung

trader_ln ( array $real ) : array

Calculates the natural logarithm for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Log10

  • « trader_ln
  • trader_ma »
  • PHP Manual
  • Trader Funktionen
  • Vector Log10

trader_log10

(PECL trader >= 0.2.0)

trader_log10 — Vector Log10

Beschreibung

trader_log10 ( array $real ) : array

Calculates the base-10 logarithm for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Moving average

  • « trader_log10
  • trader_macd »
  • PHP Manual
  • Trader Funktionen
  • Moving average

trader_ma

(PECL trader >= 0.2.0)

trader_ma — Moving average

Beschreibung

trader_ma ( array $real , int $timePeriod = ? , int $mAType = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

mAType

Type of Moving Average. TRADER_MA_TYPE_* series of constants should be used.

Rückgabewerte

Returns an array with calculated data or false on failure.


Moving Average Convergence/Divergence

  • « trader_ma
  • trader_macdext »
  • PHP Manual
  • Trader Funktionen
  • Moving Average Convergence/Divergence

trader_macd

(PECL trader >= 0.2.0)

trader_macd — Moving Average Convergence/Divergence

Beschreibung

trader_macd ( array $real , int $fastPeriod = ? , int $slowPeriod = ? , int $signalPeriod = ? ) : array

Parameter-Liste

real

Array of real values.

fastPeriod

Number of period for the fast MA. Valid range from 2 to 100000.

slowPeriod

Number of period for the slow MA. Valid range from 2 to 100000.

signalPeriod

Smoothing for the signal line (nb of period). Valid range from 1 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


MACD with controllable MA type

  • « trader_macd
  • trader_macdfix »
  • PHP Manual
  • Trader Funktionen
  • MACD with controllable MA type

trader_macdext

(PECL trader >= 0.2.0)

trader_macdext — MACD with controllable MA type

Beschreibung

trader_macdext ( array $real , int $fastPeriod = ? , int $fastMAType = ? , int $slowPeriod = ? , int $slowMAType = ? , int $signalPeriod = ? , int $signalMAType = ? ) : array

Parameter-Liste

real

Array of real values.

fastPeriod

Number of period for the fast MA. Valid range from 2 to 100000.

fastMAType

Type of Moving Average for fast MA. TRADER_MA_TYPE_* series of constants should be used.

slowPeriod

Number of period for the slow MA. Valid range from 2 to 100000.

slowMAType

Type of Moving Average for slow MA. TRADER_MA_TYPE_* series of constants should be used.

signalPeriod

Smoothing for the signal line (nb of period). Valid range from 1 to 100000.

signalMAType

Type of Moving Average for signal line. TRADER_MA_TYPE_* series of constants should be used.

Rückgabewerte

Returns an array with calculated data or false on failure.


Moving Average Convergence/Divergence Fix 12/26

  • « trader_macdext
  • trader_mama »
  • PHP Manual
  • Trader Funktionen
  • Moving Average Convergence/Divergence Fix 12/26

trader_macdfix

(PECL trader >= 0.2.0)

trader_macdfix — Moving Average Convergence/Divergence Fix 12/26

Beschreibung

trader_macdfix ( array $real , int $signalPeriod = ? ) : array

Parameter-Liste

real

Array of real values.

signalPeriod

Smoothing for the signal line (nb of period). Valid range from 1 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


MESA Adaptive Moving Average

  • « trader_macdfix
  • trader_mavp »
  • PHP Manual
  • Trader Funktionen
  • MESA Adaptive Moving Average

trader_mama

(PECL trader >= 0.2.0)

trader_mama — MESA Adaptive Moving Average

Beschreibung

trader_mama ( array $real , float $fastLimit = ? , float $slowLimit = ? ) : array

Parameter-Liste

real

Array of real values.

fastLimit

Upper limit use in the adaptive algorithm. Valid range from 0.01 to 0.99.

slowLimit

Lower limit use in the adaptive algorithm. Valid range from 0.01 to 0.99.

Rückgabewerte

Returns an array with calculated data or false on failure.


Moving average with variable period

  • « trader_mama
  • trader_max »
  • PHP Manual
  • Trader Funktionen
  • Moving average with variable period

trader_mavp

(PECL trader >= 0.2.0)

trader_mavp — Moving average with variable period

Beschreibung

trader_mavp ( array $real , array $periods , int $minPeriod = ? , int $maxPeriod = ? , int $mAType = ? ) : array

Parameter-Liste

real

Array of real values.

periods

Array of real values.

minPeriod

Value less than minimum will be changed to Minimum period. Valid range from 2 to 100000

maxPeriod

Value higher than minimum will be changed to Maximum period. Valid range from 2 to 100000

mAType

Type of Moving Average. TRADER_MA_TYPE_* series of constants should be used.

Rückgabewerte

Returns an array with calculated data or false on failure.


Highest value over a specified period

  • « trader_mavp
  • trader_maxindex »
  • PHP Manual
  • Trader Funktionen
  • Highest value over a specified period

trader_max

(PECL trader >= 0.2.0)

trader_max — Highest value over a specified period

Beschreibung

trader_max ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Index of highest value over a specified period

  • « trader_max
  • trader_medprice »
  • PHP Manual
  • Trader Funktionen
  • Index of highest value over a specified period

trader_maxindex

(PECL trader >= 0.2.0)

trader_maxindex — Index of highest value over a specified period

Beschreibung

trader_maxindex ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Median Price

  • « trader_maxindex
  • trader_mfi »
  • PHP Manual
  • Trader Funktionen
  • Median Price

trader_medprice

(PECL trader >= 0.2.0)

trader_medprice — Median Price

Beschreibung

trader_medprice ( array $high , array $low ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Money Flow Index

  • « trader_medprice
  • trader_midpoint »
  • PHP Manual
  • Trader Funktionen
  • Money Flow Index

trader_mfi

(PECL trader >= 0.2.0)

trader_mfi — Money Flow Index

Beschreibung

trader_mfi ( array $high , array $low , array $close , array $volume , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

volume

Volume traded, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


MidPoint over period

  • « trader_mfi
  • trader_midprice »
  • PHP Manual
  • Trader Funktionen
  • MidPoint over period

trader_midpoint

(PECL trader >= 0.2.0)

trader_midpoint — MidPoint over period

Beschreibung

trader_midpoint ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Midpoint Price over period

  • « trader_midpoint
  • trader_min »
  • PHP Manual
  • Trader Funktionen
  • Midpoint Price over period

trader_midprice

(PECL trader >= 0.2.0)

trader_midprice — Midpoint Price over period

Beschreibung

trader_midprice ( array $high , array $low , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Lowest value over a specified period

  • « trader_midprice
  • trader_minindex »
  • PHP Manual
  • Trader Funktionen
  • Lowest value over a specified period

trader_min

(PECL trader >= 0.2.0)

trader_min — Lowest value over a specified period

Beschreibung

trader_min ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Index of lowest value over a specified period

  • « trader_min
  • trader_minmax »
  • PHP Manual
  • Trader Funktionen
  • Index of lowest value over a specified period

trader_minindex

(PECL trader >= 0.2.0)

trader_minindex — Index of lowest value over a specified period

Beschreibung

trader_minindex ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Lowest and highest values over a specified period

  • « trader_minindex
  • trader_minmaxindex »
  • PHP Manual
  • Trader Funktionen
  • Lowest and highest values over a specified period

trader_minmax

(PECL trader >= 0.2.0)

trader_minmax — Lowest and highest values over a specified period

Beschreibung

trader_minmax ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Indexes of lowest and highest values over a specified period

  • « trader_minmax
  • trader_minus_di »
  • PHP Manual
  • Trader Funktionen
  • Indexes of lowest and highest values over a specified period

trader_minmaxindex

(PECL trader >= 0.2.0)

trader_minmaxindex — Indexes of lowest and highest values over a specified period

Beschreibung

trader_minmaxindex ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Minus Directional Indicator

  • « trader_minmaxindex
  • trader_minus_dm »
  • PHP Manual
  • Trader Funktionen
  • Minus Directional Indicator

trader_minus_di

(PECL trader >= 0.2.0)

trader_minus_di — Minus Directional Indicator

Beschreibung

trader_minus_di ( array $high , array $low , array $close , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Minus Directional Movement

  • « trader_minus_di
  • trader_mom »
  • PHP Manual
  • Trader Funktionen
  • Minus Directional Movement

trader_minus_dm

(PECL trader >= 0.2.0)

trader_minus_dm — Minus Directional Movement

Beschreibung

trader_minus_dm ( array $high , array $low , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Momentum

  • « trader_minus_dm
  • trader_mult »
  • PHP Manual
  • Trader Funktionen
  • Momentum

trader_mom

(PECL trader >= 0.2.0)

trader_mom — Momentum

Beschreibung

trader_mom ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Arithmetic Mult

  • « trader_mom
  • trader_natr »
  • PHP Manual
  • Trader Funktionen
  • Vector Arithmetic Mult

trader_mult

(PECL trader >= 0.2.0)

trader_mult — Vector Arithmetic Mult

Beschreibung

trader_mult ( array $real0 , array $real1 ) : array

Calculates the vector dot product of real0 with real1 and returns the resulting vector.

Parameter-Liste

real0

Array of real values.

real1

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Normalized Average True Range

  • « trader_mult
  • trader_obv »
  • PHP Manual
  • Trader Funktionen
  • Normalized Average True Range

trader_natr

(PECL trader >= 0.2.0)

trader_natr — Normalized Average True Range

Beschreibung

trader_natr ( array $high , array $low , array $close , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


On Balance Volume

  • « trader_natr
  • trader_plus_di »
  • PHP Manual
  • Trader Funktionen
  • On Balance Volume

trader_obv

(PECL trader >= 0.2.0)

trader_obv — On Balance Volume

Beschreibung

trader_obv ( array $real , array $volume ) : array

Parameter-Liste

real

Array of real values.

volume

Volume traded, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Plus Directional Indicator

  • « trader_obv
  • trader_plus_dm »
  • PHP Manual
  • Trader Funktionen
  • Plus Directional Indicator

trader_plus_di

(PECL trader >= 0.2.0)

trader_plus_di — Plus Directional Indicator

Beschreibung

trader_plus_di ( array $high , array $low , array $close , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Plus Directional Movement

  • « trader_plus_di
  • trader_ppo »
  • PHP Manual
  • Trader Funktionen
  • Plus Directional Movement

trader_plus_dm

(PECL trader >= 0.2.0)

trader_plus_dm — Plus Directional Movement

Beschreibung

trader_plus_dm ( array $high , array $low , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Percentage Price Oscillator

  • « trader_plus_dm
  • trader_roc »
  • PHP Manual
  • Trader Funktionen
  • Percentage Price Oscillator

trader_ppo

(PECL trader >= 0.2.0)

trader_ppo — Percentage Price Oscillator

Beschreibung

trader_ppo ( array $real , int $fastPeriod = ? , int $slowPeriod = ? , int $mAType = ? ) : array

Parameter-Liste

real

Array of real values.

fastPeriod

Number of period for the fast MA. Valid range from 2 to 100000.

slowPeriod

Number of period for the slow MA. Valid range from 2 to 100000.

mAType

Type of Moving Average. TRADER_MA_TYPE_* series of constants should be used.

Rückgabewerte

Returns an array with calculated data or false on failure.


Rate of change : ((price/prevPrice)-1)*100

  • « trader_ppo
  • trader_rocp »
  • PHP Manual
  • Trader Funktionen
  • Rate of change : ((price/prevPrice)-1)*100

trader_roc

(PECL trader >= 0.2.0)

trader_roc — Rate of change : ((price/prevPrice)-1)*100

Beschreibung

trader_roc ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Rate of change Percentage: (price-prevPrice)/prevPrice

  • « trader_roc
  • trader_rocr100 »
  • PHP Manual
  • Trader Funktionen
  • Rate of change Percentage: (price-prevPrice)/prevPrice

trader_rocp

(PECL trader >= 0.2.0)

trader_rocp — Rate of change Percentage: (price-prevPrice)/prevPrice

Beschreibung

trader_rocp ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Rate of change ratio 100 scale: (price/prevPrice)*100

  • « trader_rocp
  • trader_rocr »
  • PHP Manual
  • Trader Funktionen
  • Rate of change ratio 100 scale: (price/prevPrice)*100

trader_rocr100

(PECL trader >= 0.2.0)

trader_rocr100 — Rate of change ratio 100 scale: (price/prevPrice)*100

Beschreibung

trader_rocr100 ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Rate of change ratio: (price/prevPrice)

  • « trader_rocr100
  • trader_rsi »
  • PHP Manual
  • Trader Funktionen
  • Rate of change ratio: (price/prevPrice)

trader_rocr

(PECL trader >= 0.2.0)

trader_rocr — Rate of change ratio: (price/prevPrice)

Beschreibung

trader_rocr ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Relative Strength Index

  • « trader_rocr
  • trader_sar »
  • PHP Manual
  • Trader Funktionen
  • Relative Strength Index

trader_rsi

(PECL trader >= 0.2.0)

trader_rsi — Relative Strength Index

Beschreibung

trader_rsi ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Parabolic SAR

  • « trader_rsi
  • trader_sarext »
  • PHP Manual
  • Trader Funktionen
  • Parabolic SAR

trader_sar

(PECL trader >= 0.2.0)

trader_sar — Parabolic SAR

Beschreibung

trader_sar ( array $high , array $low , float $acceleration = ? , float $maximum = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

acceleration

Acceleration Factor used up to the Maximum value. Valid range from 0 to TRADER_REAL_MAX.

maximum

Acceleration Factor Maximum value. Valid range from 0 to TRADER_REAL_MAX.

Rückgabewerte

Returns an array with calculated data or false on failure.


Parabolic SAR - Extended

  • « trader_sar
  • trader_set_compat »
  • PHP Manual
  • Trader Funktionen
  • Parabolic SAR - Extended

trader_sarext

(PECL trader >= 0.2.0)

trader_sarext — Parabolic SAR - Extended

Beschreibung

trader_sarext ( array $high , array $low , float $startValue = ? , float $offsetOnReverse = ? , float $accelerationInitLong = ? , float $accelerationLong = ? , float $accelerationMaxLong = ? , float $accelerationInitShort = ? , float $accelerationShort = ? , float $accelerationMaxShort = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

startValue

Start value and direction. 0 for Auto, >0 for Long, <0 for Short. Valid range from TRADER_REAL_MIN to TRADER_REAL_MAX.

offsetOnReverse

Percent offset added/removed to initial stop on short/long reversal. Valid range from 0 to TRADER_REAL_MAX.

accelerationInitLong

Acceleration Factor initial value for the Long direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationLong

Acceleration Factor for the Long direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationMaxLong

Acceleration Factor maximum value for the Long direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationInitShort

Acceleration Factor initial value for the Short direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationShort

Acceleration Factor for the Short direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationMaxShort

Acceleration Factor maximum value for the Short direction. Valid range from 0 to TRADER_REAL_MAX.

Rückgabewerte

Returns an array with calculated data or false on failure.


Set compatibility mode

  • « trader_sarext
  • trader_set_unstable_period »
  • PHP Manual
  • Trader Funktionen
  • Set compatibility mode

trader_set_compat

(PECL trader >= 0.2.2)

trader_set_compat — Set compatibility mode

Beschreibung

trader_set_compat ( int $compatId ) : void

Set compatibility mode which will affect the way calculations are done by all the extension functions.

Parameter-Liste

compatId

Compatibility Id. TRADER_COMPATIBILITY_* series of constants should be used.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Set unstable period

  • « trader_set_compat
  • trader_sin »
  • PHP Manual
  • Trader Funktionen
  • Set unstable period

trader_set_unstable_period

(PECL trader >= 0.2.2)

trader_set_unstable_period — Set unstable period

Beschreibung

trader_set_unstable_period ( int $functionId , int $timePeriod ) : void

Influences unstable period factor for functions, which are sensible to it. More information about unstable periods can be found on the » TA-Lib API documentation page.

Parameter-Liste

functionId

Function ID the factor should be set for. TRADER_FUNC_UNST_* constant series can be used to affect the corresponding function.

timePeriod

Unstable period value.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Vector Trigonometric Sin

  • « trader_set_unstable_period
  • trader_sinh »
  • PHP Manual
  • Trader Funktionen
  • Vector Trigonometric Sin

trader_sin

(PECL trader >= 0.2.0)

trader_sin — Vector Trigonometric Sin

Beschreibung

trader_sin ( array $real ) : array

Calculates the sine for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Trigonometric Sinh

  • « trader_sin
  • trader_sma »
  • PHP Manual
  • Trader Funktionen
  • Vector Trigonometric Sinh

trader_sinh

(PECL trader >= 0.2.0)

trader_sinh — Vector Trigonometric Sinh

Beschreibung

trader_sinh ( array $real ) : array

Calculates the hyperbolic sine for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Simple Moving Average

  • « trader_sinh
  • trader_sqrt »
  • PHP Manual
  • Trader Funktionen
  • Simple Moving Average

trader_sma

(PECL trader >= 0.2.0)

trader_sma — Simple Moving Average

Beschreibung

trader_sma ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Square Root

  • « trader_sma
  • trader_stddev »
  • PHP Manual
  • Trader Funktionen
  • Vector Square Root

trader_sqrt

(PECL trader >= 0.2.0)

trader_sqrt — Vector Square Root

Beschreibung

trader_sqrt ( array $real ) : array

Calculates the square root of each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Standard Deviation

  • « trader_sqrt
  • trader_stoch »
  • PHP Manual
  • Trader Funktionen
  • Standard Deviation

trader_stddev

(PECL trader >= 0.2.0)

trader_stddev — Standard Deviation

Beschreibung

trader_stddev ( array $real , int $timePeriod = ? , float $nbDev = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

nbDev

Rückgabewerte

Returns an array with calculated data or false on failure.


Stochastic

  • « trader_stddev
  • trader_stochf »
  • PHP Manual
  • Trader Funktionen
  • Stochastic

trader_stoch

(PECL trader >= 0.2.0)

trader_stoch — Stochastic

Beschreibung

trader_stoch ( array $high , array $low , array $close , int $fastK_Period = ? , int $slowK_Period = ? , int $slowK_MAType = ? , int $slowD_Period = ? , int $slowD_MAType = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

fastK_Period

Time period for building the Fast-K line. Valid range from 1 to 100000.

slowK_Period

Smoothing for making the Slow-K line. Valid range from 1 to 100000, usually set to 3.

slowK_MAType

Type of Moving Average for Slow-K. TRADER_MA_TYPE_* series of constants should be used.

slowD_Period

Smoothing for making the Slow-D line. Valid range from 1 to 100000.

slowD_MAType

Type of Moving Average for Slow-D. TRADER_MA_TYPE_* series of constants should be used.

Rückgabewerte

Returns an array with calculated data or false on failure.


Stochastic Fast

  • « trader_stoch
  • trader_stochrsi »
  • PHP Manual
  • Trader Funktionen
  • Stochastic Fast

trader_stochf

(PECL trader >= 0.2.0)

trader_stochf — Stochastic Fast

Beschreibung

trader_stochf ( array $high , array $low , array $close , int $fastK_Period = ? , int $fastD_Period = ? , int $fastD_MAType = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

fastK_Period

Time period for building the Fast-K line. Valid range from 1 to 100000.

fastD_Period

Smoothing for making the Fast-D line. Valid range from 1 to 100000, usually set to 3.

fastD_MAType

Type of Moving Average for Fast-D. TRADER_MA_TYPE_* series of constants should be used.

Rückgabewerte

Returns an array with calculated data or false on failure.


Stochastic Relative Strength Index

  • « trader_stochf
  • trader_sub »
  • PHP Manual
  • Trader Funktionen
  • Stochastic Relative Strength Index

trader_stochrsi

(PECL trader >= 0.2.0)

trader_stochrsi — Stochastic Relative Strength Index

Beschreibung

trader_stochrsi ( array $real , int $timePeriod = ? , int $fastK_Period = ? , int $fastD_Period = ? , int $fastD_MAType = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

fastK_Period

Time period for building the Fast-K line. Valid range from 1 to 100000.

fastD_Period

Smoothing for making the Fast-D line. Valid range from 1 to 100000, usually set to 3.

fastD_MAType

Type of Moving Average for Fast-D. TRADER_MA_TYPE_* series of constants should be used.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Arithmetic Subtraction

  • « trader_stochrsi
  • trader_sum »
  • PHP Manual
  • Trader Funktionen
  • Vector Arithmetic Subtraction

trader_sub

(PECL trader >= 0.2.0)

trader_sub — Vector Arithmetic Subtraction

Beschreibung

trader_sub ( array $real0 , array $real1 ) : array

Calculates the vector subtraction of real1 from real0 and returns the resulting vector.

Parameter-Liste

real0

Array of real values.

real1

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Summation

  • « trader_sub
  • trader_t3 »
  • PHP Manual
  • Trader Funktionen
  • Summation

trader_sum

(PECL trader >= 0.2.0)

trader_sum — Summation

Beschreibung

trader_sum ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Triple Exponential Moving Average (T3)

  • « trader_sum
  • trader_tan »
  • PHP Manual
  • Trader Funktionen
  • Triple Exponential Moving Average (T3)

trader_t3

(PECL trader >= 0.2.0)

trader_t3 — Triple Exponential Moving Average (T3)

Beschreibung

trader_t3 ( array $real , int $timePeriod = ? , float $vFactor = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

vFactor

Volume Factor. Valid range from 1 to 0.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Trigonometric Tan

  • « trader_t3
  • trader_tanh »
  • PHP Manual
  • Trader Funktionen
  • Vector Trigonometric Tan

trader_tan

(PECL trader >= 0.2.0)

trader_tan — Vector Trigonometric Tan

Beschreibung

trader_tan ( array $real ) : array

Calculates the tangent for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Vector Trigonometric Tanh

  • « trader_tan
  • trader_tema »
  • PHP Manual
  • Trader Funktionen
  • Vector Trigonometric Tanh

trader_tanh

(PECL trader >= 0.2.0)

trader_tanh — Vector Trigonometric Tanh

Beschreibung

trader_tanh ( array $real ) : array

Calculates the hyperbolic tangent for each value in real and returns the resulting array.

Parameter-Liste

real

Array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Triple Exponential Moving Average

  • « trader_tanh
  • trader_trange »
  • PHP Manual
  • Trader Funktionen
  • Triple Exponential Moving Average

trader_tema

(PECL trader >= 0.2.0)

trader_tema — Triple Exponential Moving Average

Beschreibung

trader_tema ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


True Range

  • « trader_tema
  • trader_trima »
  • PHP Manual
  • Trader Funktionen
  • True Range

trader_trange

(PECL trader >= 0.2.0)

trader_trange — True Range

Beschreibung

trader_trange ( array $high , array $low , array $close ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Triangular Moving Average

  • « trader_trange
  • trader_trix »
  • PHP Manual
  • Trader Funktionen
  • Triangular Moving Average

trader_trima

(PECL trader >= 0.2.0)

trader_trima — Triangular Moving Average

Beschreibung

trader_trima ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

  • « trader_trima
  • trader_tsf »
  • PHP Manual
  • Trader Funktionen
  • 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

trader_trix

(PECL trader >= 0.2.0)

trader_trix — 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

Beschreibung

trader_trix ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Time Series Forecast

  • « trader_trix
  • trader_typprice »
  • PHP Manual
  • Trader Funktionen
  • Time Series Forecast

trader_tsf

(PECL trader >= 0.2.0)

trader_tsf — Time Series Forecast

Beschreibung

trader_tsf ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Typical Price

  • « trader_tsf
  • trader_ultosc »
  • PHP Manual
  • Trader Funktionen
  • Typical Price

trader_typprice

(PECL trader >= 0.2.0)

trader_typprice — Typical Price

Beschreibung

trader_typprice ( array $high , array $low , array $close ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Ultimate Oscillator

  • « trader_typprice
  • trader_var »
  • PHP Manual
  • Trader Funktionen
  • Ultimate Oscillator

trader_ultosc

(PECL trader >= 0.2.0)

trader_ultosc — Ultimate Oscillator

Beschreibung

trader_ultosc ( array $high , array $low , array $close , int $timePeriod1 = ? , int $timePeriod2 = ? , int $timePeriod3 = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

timePeriod1

Number of bars for 1st period. Valid range from 1 to 100000.

timePeriod2

Number of bars for 2nd period. Valid range from 1 to 100000.

timePeriod3

Number of bars for 3rd period. Valid range from 1 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Variance

  • « trader_ultosc
  • trader_wclprice »
  • PHP Manual
  • Trader Funktionen
  • Variance

trader_var

(PECL trader >= 0.2.0)

trader_var — Variance

Beschreibung

trader_var ( array $real , int $timePeriod = ? , float $nbDev = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

nbDev

Rückgabewerte

Returns an array with calculated data or false on failure.


Weighted Close Price

  • « trader_var
  • trader_willr »
  • PHP Manual
  • Trader Funktionen
  • Weighted Close Price

trader_wclprice

(PECL trader >= 0.2.0)

trader_wclprice — Weighted Close Price

Beschreibung

trader_wclprice ( array $high , array $low , array $close ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

Rückgabewerte

Returns an array with calculated data or false on failure.


Williams' %R

  • « trader_wclprice
  • trader_wma »
  • PHP Manual
  • Trader Funktionen
  • Williams' %R

trader_willr

(PECL trader >= 0.2.0)

trader_willr — Williams' %R

Beschreibung

trader_willr ( array $high , array $low , array $close , int $timePeriod = ? ) : array

Parameter-Liste

high

High price, array of real values.

low

Low price, array of real values.

close

Closing price, array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Weighted Moving Average

  • « trader_willr
  • Non-Text MIME-Ausgaben »
  • PHP Manual
  • Trader Funktionen
  • Weighted Moving Average

trader_wma

(PECL trader >= 0.2.0)

trader_wma — Weighted Moving Average

Beschreibung

trader_wma ( array $real , int $timePeriod = ? ) : array

Parameter-Liste

real

Array of real values.

timePeriod

Number of period. Valid range from 2 to 100000.

Rückgabewerte

Returns an array with calculated data or false on failure.


Non-Text MIME-Ausgaben

  • FDF — Forms Data Format Funktionen
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • FDF — FDF Funktionen
  • GnuPG — GNU Privacy Guard
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • GnuPG Funktionen
  • wkhtmltox
    • Einführung
    • Installation/Konfiguration
    • wkhtmltox\PDF\Converter — The wkhtmltox\PDF\Converter class
    • wkhtmltox\PDF\Object — The wkhtmltox\PDF\Object class
    • wkhtmltox\Image\Converter — The wkhtmltox\Image\Converter class
  • PS — PostScript document creation
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • PS Funktionen
  • RpmInfo
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • RpmInfo Funktionen
  • XLSWriter
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Vtiful\Kernel\Excel — The Vtiful\Kernel\Excel class
    • Vtiful\Kernel\Format — The Vtiful\Kernel\Format class


Forms Data Format Funktionen

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • FDF — FDF Funktionen
    • fdf_add_doc_javascript — Fügt JavaScript Code in ein FDF Dokument ein.
    • fdf_add_template — Fügt dem FDF Dokument ein Template hinzu
    • fdf_close — Schließt ein FDF Dokument
    • fdf_create — Erzeugt ein neues FDF Dokument
    • fdf_enum_values — Ruft für jeden Dokumentwert eine benutzerdefinierte Funktion auf
    • fdf_errno — Gibt den Fehlercode der letzten FDF Operation zurück
    • fdf_error — Gibt die Beschrebung eines Fehlercodes zurück
    • fdf_get_ap — Get the appearance of a field
    • fdf_get_attachment — Extracts uploaded file embedded in the FDF
    • fdf_get_encoding — Liefert den Wert des /Encoding Schlüssels
    • fdf_get_file — Gibt den Wert des /F Schlüssels zurück
    • fdf_get_flags — Ermittelt die Flags eines Feldes
    • fdf_get_opt — Liefert einen Wert aus dem Optionsarray eines Feldes
    • fdf_get_status — Gibt den Wert des /STATUS Schlüssels zurück
    • fdf_get_value — Gibt den Wert eines Feldes zurück
    • fdf_get_version — Liefert die Versionsnummer einer FDF Datei oder des APIs
    • fdf_header — Setzt FDF-spezifische Header
    • fdf_next_field_name — Gibt den Namen des nächsten Feldes zurück
    • fdf_open_string — Read a FDF document from a string
    • fdf_open — Öffnet ein FDF Dokument
    • fdf_remove_item — Sets target frame for form
    • fdf_save_string — Returns the FDF document as a string
    • fdf_save — Speichern eines FDF Dokuments
    • fdf_set_ap — Legt das Aussehen eines Feldes fest
    • fdf_set_encoding — Legt die FDF Zeichenkodierung fest
    • fdf_set_file — Definiert ein PDF-Dokument, das FDF-Daten anzeigen soll
    • fdf_set_flags — Setzt Flags eines Feldes
    • fdf_set_javascript_action — Weist einem Feld eine JavaScript Aktion zu
    • fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF
    • fdf_set_opt — Legt eine Option eines Feldes fest
    • fdf_set_status — Setzt den Wert des /STATUS Schlüssels
    • fdf_set_submit_form_action — Setzt eine Submit-Form-Aktion für ein Feld
    • fdf_set_target_frame — Set target frame for form display
    • fdf_set_value — Legt den Wert eines Feldes fest
    • fdf_set_version — Sets version number for a FDF file


Einführung

Forms Data Format (FDF) ist ein Format zur Verarbeitung von Formularen innerhalb von PDF Dokumenten. Weiterführende Informationen zu FDF und dessen Verwendung sind unter » http://www.adobe.com/devnet/acrobat/fdftoolkit.html zu finden.

Der Ansatz den FDF verfolgt, ist vergleichbar mit dem üblicher HTML Formulare. Die wesentlichen Unterschiede liegen in der Übertragung der Daten nach Absenden des Formulars (dies ist das eigentliche Form Data Format), sowie in dem Format des Dokuments welches das Formular enthält(PDF). Die Verarbeitung der FDF Daten ist eine der Möglichkeiten, die die FDF Funktionen bereitstellen. Darüber hinaus kann man beispielsweise innerhalb eines vorhandenen PDF Formulars die Input Felder dynamisch mit Daten füllen, ohne das Formular selbst zu verändern. Hierzu erzeugt man das FDF Dokument (fdf_create()), setzt die Werte der jeweiligen Input Felder (fdf_set_value()) und verbindet es mit dem jeweiligen PDF Formular (fdf_set_file()). Nachdem man das FDF Dokument, mit dem passenden MimeType application/vnd.fdf versehen, ausgegeben hat, erkennt das Acrobat Reader PlugIn des Browsers den MimeType und füllt das Zielformular mit den Daten des FDF Dokuments.

Betrachtet man ein FDF Dokument mit einem Text Editor, findet sich dort ein Katalog-Objekt FDF. Dieses Objekt kann mehrere Einträge der Art Fields, F, Status etc.. enthalten. Die gebräuchlichsten Einträge sind Fields, welches zu einer Anzahl von Input Feldern verweist, sowie F das den Dateinamen des zugehörigen PDF Dokuments enthält. Diese Einträge finden sich in der FDF Dokumentation unter /F-Key oder /Status-Key. Modifikationen dieser Einträge werden mit Hilfe der Funktionen fdf_set_file() und fdf_set_status() vorgenommen. Felder werden u.a. mit fdf_set_value(), fdf_set_opt() modifiziert.


Anforderungen

Benötigt wird das FDF-Toolkit-SDK, welches unter » http://www.adobe.com/devnet/acrobat/fdftoolkit.html heruntergeladen werden kann. Ab PHP-Version 4.3.0 ist mindestens die Version 5.0 des FDF-SDKs erforderlich. Die FDF-Toolkit Bibliothek steht ausschließlich vorkompiliert zur Verfügung. Von Adobe unterstütze Plattformen sind Win32, Linux, Solaris und AIX.


Installation

Diese Erweiterung wird als nicht mehr gepflegt betrachtet und es gibt dort keine Aktivität mehr. Der Quellcode für diese Erweiterung steht jedoch weiterhin innerhalb des PECL SVN hier zur Verfügung: » https://svn.php.net/viewvc/pecl/fdf.

This extension is no longer bundled with PHP as of PHP 5.3.0.

Hinweis: Wenn bei der Konfiguration von PHP mit Fdftk Unterstützung Probleme auftreten prüfen Sie bitte ob die Includedatei fdftk.h und die Bibliothek libfdftk.so sich tatsächlich im angegebenen Verzeichnis befinden. Das configure Skript unterstützt sowohl die Verzeichnisstruktur der FDF SDK Distribution als auch die übliche DIR/include / DIR/lib Struktur. Sie können daher entweder direkt auf das entpackte Distributionsverzeichnis verweisen als auch die Include- und Bibliotheksdateien in den entsprechenden Verzeichnisse Ihres Systems, z.B. /usr/local/include und /usr/local/lib, ablegen und dann mit --with-fdftk=/usr/local konfigurieren.

Hinweis: Hinweis für Win32 Benutzer

Diese Extension benötigt DLL-Dateien. die für Windows verfügbar seien müssen. Der FAQ-Eintrag " Wie füge ich unter Windows PATH mein PHP-Verzeichnis hinzu?" gibt hierzu weitere Informationen. Obwohl ein einfaches Kopieren der DLL-Dateien vom PHP-Verzeichnis in den Windows-Systemordner auch funktioniert (weil der Systemordner immer im PATH enthalten ist), ist dieses Vorgehen nicht empfehlenswert. Diese Extension benötigt die folgenden Dateien im PATH: fdftk.dll


Ressource-Typen

Die meisten FDF-Funktionen benötigen an erster Stelle einen fdf Ressource-Parameter. Der Parameter fdf ist ein Zeiger auf eine geöffnete FDF-Datei. fdf Ressource-Parameter werden von den Funktionen fdf_create(), fdf_open() und fdf_open_string() zurückgegeben.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

FDFValue (integer)
FDFStatus (integer)
FDFFile (integer)
FDFID (integer)
FDFFf (integer)
FDFSetFf (integer)
FDFClearFf (integer)
FDFFlags (integer)
FDFSetF (integer)
FDFClrF (integer)
FDFAP (integer)
FDFAS (integer)
FDFAction (integer)
FDFAA (integer)
FDFAPRef (integer)
FDFIF (integer)
FDFEnter (integer)
FDFExit (integer)
FDFDown (integer)
FDFUp (integer)
FDFFormat (integer)
FDFValidate (integer)
FDFKeystroke (integer)
FDFCalculate (integer)
FDFNormalAP (integer)
FDFRolloverAP (integer)
FDFDownAP (integer)


Beispiele

Das folgende Beispiel zeigt die Auswertung der Formular Daten.

Beispiel #1 Auswertung eines FDF_Dokuments

<?php
// Speichern der FDF Daten in eine temporÃ¤re Datei
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Ã?ffnen der temporÃ¤ren Datei und Auswertung der Daten
// Das PDF Formular enthÃ¤lt verschiedene Eingabefelder mit den zugehÃ¶rigen Namen
// band, datum, kommentar, verleger, bearbeiter, sowie zwei Checkboxen
// zeige_verleger und zeige_bearbeiter.

$fdf = fdf_open("test.fdf");
$band = fdf_get_value($fdf, "band");
echo "Das Feld Band hat den Wert '<b>$band</b>'<br />";

$datum = fdf_get_value($fdf, "datum");
echo "Das Feld Datum hat den Wert '<b>$datum</b>'<br />";

$kommentar = fdf_get_value($fdf, "kommentar");
echo "Das Feld Kommentar hat den Wert '<b>$kommentar</b>'<br />";

if (fdf_get_value($fdf, "zeige_verleger") == "On") {
    $verleger = fdf_get_value($fdf, "verleger");
    echo "Das Feld Verleger hat den Wert '<b>$verleger</b>'<br />";
} else {
  echo "Verleger soll nicht angezeigt werden.<br />";
}

if (fdf_get_value($fdf, "zeige_bearbeiter") == "On") {
  $bearbeiter = fdf_get_value($fdf, "bearbeiter");
  echo "Das Feld Bearbeiter hat den Wert '&<b>$bearbeiter</b>'<br />";
} else {
  echo "Bearbeiter soll nicht angezeigt werden.<br />";
}
fdf_close($fdf);
?>


FDF Funktionen

Inhaltsverzeichnis

  • fdf_add_doc_javascript — Fügt JavaScript Code in ein FDF Dokument ein.
  • fdf_add_template — Fügt dem FDF Dokument ein Template hinzu
  • fdf_close — Schließt ein FDF Dokument
  • fdf_create — Erzeugt ein neues FDF Dokument
  • fdf_enum_values — Ruft für jeden Dokumentwert eine benutzerdefinierte Funktion auf
  • fdf_errno — Gibt den Fehlercode der letzten FDF Operation zurück
  • fdf_error — Gibt die Beschrebung eines Fehlercodes zurück
  • fdf_get_ap — Get the appearance of a field
  • fdf_get_attachment — Extracts uploaded file embedded in the FDF
  • fdf_get_encoding — Liefert den Wert des /Encoding Schlüssels
  • fdf_get_file — Gibt den Wert des /F Schlüssels zurück
  • fdf_get_flags — Ermittelt die Flags eines Feldes
  • fdf_get_opt — Liefert einen Wert aus dem Optionsarray eines Feldes
  • fdf_get_status — Gibt den Wert des /STATUS Schlüssels zurück
  • fdf_get_value — Gibt den Wert eines Feldes zurück
  • fdf_get_version — Liefert die Versionsnummer einer FDF Datei oder des APIs
  • fdf_header — Setzt FDF-spezifische Header
  • fdf_next_field_name — Gibt den Namen des nächsten Feldes zurück
  • fdf_open_string — Read a FDF document from a string
  • fdf_open — Öffnet ein FDF Dokument
  • fdf_remove_item — Sets target frame for form
  • fdf_save_string — Returns the FDF document as a string
  • fdf_save — Speichern eines FDF Dokuments
  • fdf_set_ap — Legt das Aussehen eines Feldes fest
  • fdf_set_encoding — Legt die FDF Zeichenkodierung fest
  • fdf_set_file — Definiert ein PDF-Dokument, das FDF-Daten anzeigen soll
  • fdf_set_flags — Setzt Flags eines Feldes
  • fdf_set_javascript_action — Weist einem Feld eine JavaScript Aktion zu
  • fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF
  • fdf_set_opt — Legt eine Option eines Feldes fest
  • fdf_set_status — Setzt den Wert des /STATUS Schlüssels
  • fdf_set_submit_form_action — Setzt eine Submit-Form-Aktion für ein Feld
  • fdf_set_target_frame — Set target frame for form display
  • fdf_set_value — Legt den Wert eines Feldes fest
  • fdf_set_version — Sets version number for a FDF file


Fügt JavaScript Code in ein FDF Dokument ein.

  • « FDF
  • fdf_add_template »
  • PHP Manual
  • FDF
  • Fügt JavaScript Code in ein FDF Dokument ein.

fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_add_doc_javascript — Fügt JavaScript Code in ein FDF Dokument ein.

Beschreibung

fdf_add_doc_javascript ( resource $fdf_document , string $script_name , string $script_code ) : bool

Fügt ein Script zum FDF Dokument, welches Acrobat zu den doc-level Scripts eines Dokuments hinzufügt, sobald das FDF importiert wurde.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

script_name

Der Scriptname.

script_code

Der Scriptcode. Es wird unbedingt empfohlen \r für Zeilenumbrüche innerhalb des Scriptcodes zu verwenden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 JavaScript-Code zu einem FDF hinzufügen

<?php
$fdf = fdf_create();
fdf_add_doc_javascript($fdf, "PlusOne", "function PlusOne(x)\r{\r  return x+1;\r}\r");
fdf_save($fdf);
?>

erzeugt ein FDF wie folgt:

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /JavaScript << /Doc [ (PlusOne)(function PlusOne\(x\)\r{\r  return x+1;\r}\r)] >> >>
>>
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF


Fügt dem FDF Dokument ein Template hinzu

  • « fdf_add_doc_javascript
  • fdf_close »
  • PHP Manual
  • FDF
  • Fügt dem FDF Dokument ein Template hinzu

fdf_add_template

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_add_template — Fügt dem FDF Dokument ein Template hinzu

Beschreibung

fdf_add_template ( resource $fdf_document , int $newpage , string $filename , string $template , int $rename ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Schließt ein FDF Dokument

  • « fdf_add_template
  • fdf_create »
  • PHP Manual
  • FDF
  • Schließt ein FDF Dokument

fdf_close

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_close — Schließt ein FDF Dokument

Beschreibung

fdf_close ( resource $fdf_document ) : void

Schließt das FDF Dokument.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • fdf_open() - Öffnet ein FDF Dokument


Erzeugt ein neues FDF Dokument

  • « fdf_close
  • fdf_enum_values »
  • PHP Manual
  • FDF
  • Erzeugt ein neues FDF Dokument

fdf_create

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_create — Erzeugt ein neues FDF Dokument

Beschreibung

fdf_create ( ) : resource

Erzeugt ein neues FDF Dokument.

Diese Funktion wird benötigt, wenn man Eingabefelder in einem PDF Dokument mit Daten belegen möchte.

Rückgabewerte

Gibt ein FDF-Dokument-Handle zurück, oder false im Fehlerfall.

Beispiele

Beispiel #1 Füllen von Formularwerten in einem PDF Dokument

<?php
$outfdf = fdf_create();
fdf_set_value($outfdf, "band", $band, 0);

fdf_set_file($outfdf, "http:/testfdf/resultlabel.pdf");
fdf_save($outfdf, "outtest.fdf");
fdf_close($outfdf);
Header("Content-type: application/vnd.fdf");
$fp = fopen("outtest.fdf", "r");
fpassthru($fp);
unlink("outtest.fdf");
?>

Siehe auch

  • fdf_close() - Schließt ein FDF Dokument
  • fdf_save() - Speichern eines FDF Dokuments
  • fdf_open() - Öffnet ein FDF Dokument


Ruft für jeden Dokumentwert eine benutzerdefinierte Funktion auf

  • « fdf_create
  • fdf_errno »
  • PHP Manual
  • FDF
  • Ruft für jeden Dokumentwert eine benutzerdefinierte Funktion auf

fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_enum_values — Ruft für jeden Dokumentwert eine benutzerdefinierte Funktion auf

Beschreibung

fdf_enum_values ( resource $fdf_document , callable $function , mixed $userdata = ? ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Gibt den Fehlercode der letzten FDF Operation zurück

  • « fdf_enum_values
  • fdf_error »
  • PHP Manual
  • FDF
  • Gibt den Fehlercode der letzten FDF Operation zurück

fdf_errno

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_errno — Gibt den Fehlercode der letzten FDF Operation zurück

Beschreibung

fdf_errno ( ) : int

Liefert den Fehlercode der vom letzten FDF Funktionsaufruf gesetzt wurde.

Eine textuelle Beschreibung des Fehlers kann mit der Funktion fdf_error() ermittelt werden.

Rückgabewerte

Gibt den Fehlercode als Integer zurück oder 0 wenn kein Fehler aufgetreten ist.

Siehe auch

  • fdf_error() - Gibt die Beschrebung eines Fehlercodes zurück


Gibt die Beschrebung eines Fehlercodes zurück

  • « fdf_errno
  • fdf_get_ap »
  • PHP Manual
  • FDF
  • Gibt die Beschrebung eines Fehlercodes zurück

fdf_error

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_error — Gibt die Beschrebung eines Fehlercodes zurück

Beschreibung

fdf_error ( int $error_code = -1 ) : string

Gibt eine textuelle Beschreibung des in error_code übergebenen FDF Fehlercodes zurück.

Parameter-Liste

error_code

Ein von der Funktion fdf_errno() zurückgegebener Fehlercode. Wenn kein Fehlercode übergeben wurde wird der von der letzten Operation gesetzte interne Code genutzt.

Rückgabewerte

Gibt die Fehlerbeschreibung als String zurück. Ist kein Fehler aufgetreten wird der String no error zurückgegeben.

Siehe auch

  • fdf_errno() - Gibt den Fehlercode der letzten FDF Operation zurück


Get the appearance of a field

  • « fdf_error
  • fdf_get_attachment »
  • PHP Manual
  • FDF
  • Get the appearance of a field

fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_ap — Get the appearance of a field

Beschreibung

fdf_get_ap ( resource $fdf_document , string $field , int $face , string $filename ) : bool

Gets the appearance of a field (i.e. the value of the /AP key) and stores it in a file.

Parameter-Liste

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

field

face

The possible values are FDFNormalAP, FDFRolloverAP and FDFDownAP.

filename

The appearance will be stored in this parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Extracts uploaded file embedded in the FDF

  • « fdf_get_ap
  • fdf_get_encoding »
  • PHP Manual
  • FDF
  • Extracts uploaded file embedded in the FDF

fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_attachment — Extracts uploaded file embedded in the FDF

Beschreibung

fdf_get_attachment ( resource $fdf_document , string $fieldname , string $savepath ) : array

Extracts a file uploaded by means of the "file selection" field fieldname and stores it under savepath.

Parameter-Liste

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

savepath

May be the name of a plain file or an existing directory in which the file is to be created under its original name. Any existing file under the same name will be overwritten.

Hinweis:

There seems to be no other way to find out the original filename but to store the file using a directory as savepath and check for the basename it was stored under.

Rückgabewerte

The returned array contains the following fields:

  • path - path were the file got stored
  • size - size of the stored file in bytes
  • type - mimetype if given in the FDF

Beispiele

Beispiel #1 Storing an uploaded file

<?php
  $fdf = fdf_open_string($HTTP_FDF_DATA);
  $data = fdf_get_attachment($fdf, "filename", "/tmpdir");
  echo "The uploaded file is stored in $data[path]";
?>


Liefert den Wert des /Encoding Schlüssels

  • « fdf_get_attachment
  • fdf_get_file »
  • PHP Manual
  • FDF
  • Liefert den Wert des /Encoding Schlüssels

fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_encoding — Liefert den Wert des /Encoding Schlüssels

Beschreibung

fdf_get_encoding ( resource $fdf_document ) : string

Liefert den Wert des /Encoding Schlüssels.

Parameter-Liste

fdf_document

Eine FDF Dokumentresource wie von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben.

Rückgabewerte

Gibt das Encoding als String zurück. Wenn das Standardencoding PDFDocEncoding/Unicode benutzt wird wird nur ein Leerstring zurückgegeben.

Siehe auch

  • fdf_set_encoding() - Legt die FDF Zeichenkodierung fest


Gibt den Wert des /F Schlüssels zurück

  • « fdf_get_encoding
  • fdf_get_flags »
  • PHP Manual
  • FDF
  • Gibt den Wert des /F Schlüssels zurück

fdf_get_file

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_file — Gibt den Wert des /F Schlüssels zurück

Beschreibung

fdf_get_file ( resource $fdf_document ) : string

Gibt den Wert des /F Schlüssels zurück.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

Rückgabewerte

Gibt den Wert des Schlüssels als Zeichenkette zurück.

Siehe auch

  • fdf_set_file() - Definiert ein PDF-Dokument, das FDF-Daten anzeigen soll


Ermittelt die Flags eines Feldes

  • « fdf_get_file
  • fdf_get_opt »
  • PHP Manual
  • FDF
  • Ermittelt die Flags eines Feldes

fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_flags — Ermittelt die Flags eines Feldes

Beschreibung

fdf_get_flags ( resource $fdf_document , string $fieldname , int $whichflags ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Liefert einen Wert aus dem Optionsarray eines Feldes

  • « fdf_get_flags
  • fdf_get_status »
  • PHP Manual
  • FDF
  • Liefert einen Wert aus dem Optionsarray eines Feldes

fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECLv)

fdf_get_opt — Liefert einen Wert aus dem Optionsarray eines Feldes

Beschreibung

fdf_get_opt ( resource $fdf_document , string $fieldname , int $element = -1 ) : mixed
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Gibt den Wert des /STATUS Schlüssels zurück

  • « fdf_get_opt
  • fdf_get_value »
  • PHP Manual
  • FDF
  • Gibt den Wert des /STATUS Schlüssels zurück

fdf_get_status

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_status — Gibt den Wert des /STATUS Schlüssels zurück

Beschreibung

fdf_get_status ( resource $fdf_document ) : string

Gibt den Wert des /STATUS Schlüssels zurück.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

Rückgabewerte

Gibt den Wert des Schlüssels als Zeichenkette zurück.

Siehe auch

  • fdf_set_status() - Setzt den Wert des /STATUS Schlüssels


Gibt den Wert eines Feldes zurück

  • « fdf_get_status
  • fdf_get_version »
  • PHP Manual
  • FDF
  • Gibt den Wert eines Feldes zurück

fdf_get_value

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_value — Gibt den Wert eines Feldes zurück

Beschreibung

fdf_get_value ( resource $fdf_document , string $fieldname , int $which = -1 ) : mixed

Gibt den Wert des abgefragten Felds zurück.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

fieldname

Name des FDF-Felds als Zeichenkette.

which

Elemente eines Arrays können abgefragt werden, indem dieser optionale Parameter übergeben wird. Die Elemente des abzufragenden Arrays starten bei Null. Bei Nicht-Array-Feldern wird dieser Parameter ignoriert.

Rückgabewerte

Returns the field value.

Changelog

Version | Beschreibung
4.3.0 | Unterstützung für Array und den which Parameter wurden hinzugefügt.

Siehe auch

  • fdf_set_value() - Legt den Wert eines Feldes fest


Liefert die Versionsnummer einer FDF Datei oder des APIs

  • « fdf_get_value
  • fdf_header »
  • PHP Manual
  • FDF
  • Liefert die Versionsnummer einer FDF Datei oder des APIs

fdf_get_version

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_version — Liefert die Versionsnummer einer FDF Datei oder des APIs

Beschreibung

fdf_get_version ( resource $fdf_document = ? ) : string

Gibt die FDF Version des angegebenen Dokuments zurück. Wird kein Dokument übergeben so wird die API Vresion des Tookits zurückgegeben.

Parameter-Liste

fdf_document

Eine FDF Dokumentresource wie von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben.

Rückgabewerte

Gibt die Versionsnumer als String zurück. Für das aktuelle FDF Toolkit 5.0 ist die Versionsnummer 5.0, die Versionsnummer eines Dokuments ist entweder 1.2, 1.3 oder 1.4.

Siehe auch

  • fdf_set_version() - Sets version number for a FDF file


Setzt FDF-spezifische Header

  • « fdf_get_version
  • fdf_next_field_name »
  • PHP Manual
  • FDF
  • Setzt FDF-spezifische Header

fdf_header

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVNf)

fdf_header — Setzt FDF-spezifische Header

Beschreibung

fdf_header ( ) : void

Dies ist eine Hilfsfunktion die die nötigen HTTP Header für FDF Dokumente setzt. Sie setzt den Content-type: auf application/vnd.fdf.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Gibt den Namen des nächsten Feldes zurück

  • « fdf_header
  • fdf_open_string »
  • PHP Manual
  • FDF
  • Gibt den Namen des nächsten Feldes zurück

fdf_next_field_name

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_next_field_name — Gibt den Namen des nächsten Feldes zurück

Beschreibung

fdf_next_field_name ( resource $fdf_document , string $fieldname = ? ) : string

Gibt den Namen des Feldes nach dem angegebenen Feld zurück. Dieser Name kann mit mehreren Funktionen verwendet werden.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

fieldname

Name des FDF-Felds als Zeichenkette. Wenn nicht angegeben, wird das erste Feld angenommen.

Rückgabewerte

Gibt den Feldnamen als Zeichenkette zurück.

Beispiele

Beispiel #1 Alle Feldnamen in einem FDF ermitteln

<?php
$fdf = fdf_open($HTTP_FDF_DATA);
for ($field = fdf_next_field_name($fdf);
    $field != "";
    $field = fdf_next_field_name($fdf, $field)) {
    echo "field: $field\n";
}
?>

Siehe auch

  • fdf_get_value() - Gibt den Wert eines Feldes zurück


Read a FDF document from a string

  • « fdf_next_field_name
  • fdf_open »
  • PHP Manual
  • FDF
  • Read a FDF document from a string

fdf_open_string

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_open_string — Read a FDF document from a string

Beschreibung

fdf_open_string ( string $fdf_data ) : resource

Reads form data from a string.

You can use fdf_open_string() together with $HTTP_FDF_DATA to process FDF form input from a remote client.

Parameter-Liste

fdf_data

The data as returned from a PDF form or created using fdf_create() and fdf_save_string().

Rückgabewerte

Returns a FDF document handle, or false on error.

Beispiele

Beispiel #1 Accessing the form data

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

Siehe auch

  • fdf_open() - Öffnet ein FDF Dokument
  • fdf_close() - Schließt ein FDF Dokument
  • fdf_create() - Erzeugt ein neues FDF Dokument
  • fdf_save_string() - Returns the FDF document as a string


Öffnet ein FDF Dokument

  • « fdf_open_string
  • fdf_remove_item »
  • PHP Manual
  • FDF
  • Öffnet ein FDF Dokument

fdf_open

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_open — Öffnet ein FDF Dokument

Beschreibung

fdf_open ( string $filename ) : resource

Öffnet eine Datei mit Formulardaten.

Sie können ebenfalls fdf_open_string() verwenden, um die Ergebnisse einer PDF-Formular POST-Anfrage zu verarbeiten.

Parameter-Liste

filename

Pfad zur FDF-Datei. Diese Datei muss entweder die von einem PDF Formular zurückgegebenen Formulardaten oder Formulardaten, die mit fdf_create() und fdf_save() erzeugt wurden, enthalten.

Rückgabewerte

Gibt ein FDF-Dokument-Handle zurück, oder false im Fehlerfall.

Beispiele

Beispiel #1 Zugang zu den Formulardaten

<?php
// Speichern der FDF Daten in eine temporäre Datei
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Öffnen der temporären Datei und Auswertung der Daten
$fdf = fdf_open("test.fdf");
...
fdf_close($fdf);
?>

Siehe auch

  • fdf_open_string() - Read a FDF document from a string
  • fdf_close() - Schließt ein FDF Dokument
  • fdf_create() - Erzeugt ein neues FDF Dokument
  • fdf_save() - Speichern eines FDF Dokuments


Sets target frame for form

  • « fdf_open
  • fdf_save_string »
  • PHP Manual
  • FDF
  • Sets target frame for form

fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_remove_item — Sets target frame for form

Beschreibung

fdf_remove_item ( resource $fdf_document , string $fieldname , int $item ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Returns the FDF document as a string

  • « fdf_remove_item
  • fdf_save »
  • PHP Manual
  • FDF
  • Returns the FDF document as a string

fdf_save_string

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_save_string — Returns the FDF document as a string

Beschreibung

fdf_save_string ( resource $fdf_document ) : string

Returns the FDF document as a string.

Parameter-Liste

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

Rückgabewerte

Returns the document as a string, or false on error.

Beispiele

Beispiel #1 Retrieving FDF as a string

<?php
$fdf = fdf_create();
fdf_set_value($fdf, "foo", "bar");
$str = fdf_save_string($fdf);
fdf_close($fdf);
echo $str;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /Fields 2 0 R >>
>>
endobj
2 0 obj
[
<< /T (foo)/V (bar)>>
]
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

Siehe auch

  • fdf_open_string() - Read a FDF document from a string
  • fdf_close() - Schließt ein FDF Dokument
  • fdf_create() - Erzeugt ein neues FDF Dokument
  • fdf_save() - Speichern eines FDF Dokuments


Speichern eines FDF Dokuments

  • « fdf_save_string
  • fdf_set_ap »
  • PHP Manual
  • FDF
  • Speichern eines FDF Dokuments

fdf_save

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_save — Speichern eines FDF Dokuments

Beschreibung

fdf_save ( resource $fdf_document , string $filename = ? ) : bool

Speichert ein FDF Dokument.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

filename

Wenn angegeben, wird das resultierende FDF in diesen Parameter geschrieben. Andernfals wird das FDF an der Standardausgabe von PHP ausgegeben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fdf_close() - Schließt ein FDF Dokument
  • fdf_create() - Erzeugt ein neues FDF Dokument
  • fdf_save_string() - Returns the FDF document as a string


Legt das Aussehen eines Feldes fest

  • « fdf_save
  • fdf_set_encoding »
  • PHP Manual
  • FDF
  • Legt das Aussehen eines Feldes fest

fdf_set_ap

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_ap — Legt das Aussehen eines Feldes fest

Beschreibung

fdf_set_ap ( resource $fdf_document , string $field_name , int $face , string $filename , int $page_number ) : bool

Legt das Aussehen eines Feldes (d.h. den Wert des /AP Schlüssels) fest.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

field_name

face

Die möglichen Werte sind FDFNormalAP, FDFRolloverAP und FDFDownAP.

filename

page_number

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Legt die FDF Zeichenkodierung fest

  • « fdf_set_ap
  • fdf_set_file »
  • PHP Manual
  • FDF
  • Legt die FDF Zeichenkodierung fest

fdf_set_encoding

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_encoding — Legt die FDF Zeichenkodierung fest

Beschreibung

fdf_set_encoding ( resource $fdf_document , string $encoding ) : bool

Legt die Zeichenkodierung des FDF Dokuments fest.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

encoding

Der Name der Zeichenkodierung. Folgende Werte werden unterstützt: "Shift-JIS", "UHC", "GBK" und "BigFive".

Ein leerer String setzt die Kodierung auf den voreingestellten Wert PDFDocEncoding/Unicode.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Definiert ein PDF-Dokument, das FDF-Daten anzeigen soll

  • « fdf_set_encoding
  • fdf_set_flags »
  • PHP Manual
  • FDF
  • Definiert ein PDF-Dokument, das FDF-Daten anzeigen soll

fdf_set_file

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_file — Definiert ein PDF-Dokument, das FDF-Daten anzeigen soll

Beschreibung

fdf_set_file ( resource $fdf_document , string $url , string $target_frame = ? ) : bool

Wählt ein anderes PDF-Dokument aus, in dem FDF-Formulardaten angezeigt werden sollen, als das Formular dem sie entstammen.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

url

Sollte als absolute URL angegeben werden.

target_frame

Der Rahmen in dem das Dokument angezeigt werden soll, kann mit diesem Parameter oder fdf_set_target_frame() festgelegt werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 FDF-Daten an ein zweites Formular übergeben

<?php
  /* Inhaltstyp für Adobe FDF festlegen */
  fdf_header();

  /* neues FDF beginnen */
  $fdf = fdf_create();

  /* Feld "foo" auf Wert "bar" setzen */
  fdf_set_value($fdf, "foo", "bar");

  /* den Client anweisen, FDF-Daten unter Verwendung von "fdf_form.pdf" anzuzeigen */
  fdf_set_file($fdf, "http://www.example.com/fdf_form.pdf");

  /* FDF ausgeben */
  fdf_save($fdf);

  /* aufräumen */
  fdf_close($fdf);
?>

Siehe auch

  • fdf_get_file() - Gibt den Wert des /F Schlüssels zurück
  • fdf_set_target_frame() - Set target frame for form display


Setzt Flags eines Feldes

  • « fdf_set_file
  • fdf_set_javascript_action »
  • PHP Manual
  • FDF
  • Setzt Flags eines Feldes

fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_flags — Setzt Flags eines Feldes

Beschreibung

fdf_set_flags ( resource $fdf_document , string $fieldname , int $whichFlags , int $newFlags ) : bool

Setzt bestimmte Flags des angegebenen Feldes.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

fieldname

Name des FDF-Felds als Zeichenkette.

whichFlags

newFlags

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fdf_set_opt() - Legt eine Option eines Feldes fest


Weist einem Feld eine JavaScript Aktion zu

  • « fdf_set_flags
  • fdf_set_on_import_javascript »
  • PHP Manual
  • FDF
  • Weist einem Feld eine JavaScript Aktion zu

fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_javascript_action — Weist einem Feld eine JavaScript Aktion zu

Beschreibung

fdf_set_javascript_action ( resource $fdf_document , string $fieldname , int $trigger , string $script ) : bool

Weist dem angegebenen Feld eine JavaScript Aktion zu.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

fieldname

Name des FDF-Felds als Zeichenkette.

trigger

script

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fdf_set_submit_form_action() - Setzt eine Submit-Form-Aktion für ein Feld


Adds javascript code to be executed when Acrobat opens the FDF

  • « fdf_set_javascript_action
  • fdf_set_opt »
  • PHP Manual
  • FDF
  • Adds javascript code to be executed when Acrobat opens the FDF

fdf_set_on_import_javascript

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF

Beschreibung

fdf_set_on_import_javascript ( resource $fdf_document , string $script , bool $before_data_import ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Siehe auch

  • fdf_add_doc_javascript() - Fügt JavaScript Code in ein FDF Dokument ein.
  • fdf_set_javascript_action() - Weist einem Feld eine JavaScript Aktion zu


Legt eine Option eines Feldes fest

  • « fdf_set_on_import_javascript
  • fdf_set_status »
  • PHP Manual
  • FDF
  • Legt eine Option eines Feldes fest

fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_opt — Legt eine Option eines Feldes fest

Beschreibung

fdf_set_opt ( resource $fdf_document , string $fieldname , int $element , string $str1 , string $str2 ) : bool

Legt Optionen des angegebenen Felds fest.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

fieldname

Name des FDF-Felds als Zeichenkette.

element

str1

str2

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fdf_set_flags() - Setzt Flags eines Feldes


Setzt den Wert des /STATUS Schlüssels

  • « fdf_set_opt
  • fdf_set_submit_form_action »
  • PHP Manual
  • FDF
  • Setzt den Wert des /STATUS Schlüssels

fdf_set_status

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_status — Setzt den Wert des /STATUS Schlüssels

Beschreibung

fdf_set_status ( resource $fdf_document , string $status ) : bool

Setzt den Wert des /STATUS Schlüssels. Dieser wird bei der Anzeige in einem Warnungsfeld angezeigt.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

status

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fdf_get_status() - Gibt den Wert des /STATUS Schlüssels zurück


Setzt eine Submit-Form-Aktion für ein Feld

  • « fdf_set_status
  • fdf_set_target_frame »
  • PHP Manual
  • FDF
  • Setzt eine Submit-Form-Aktion für ein Feld

fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_submit_form_action — Setzt eine Submit-Form-Aktion für ein Feld

Beschreibung

fdf_set_submit_form_action ( resource $fdf_document , string $fieldname , int $trigger , string $script , int $flags ) : bool

Setzt eine Submit-Form-Aktion für das angegebene Feld.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

fieldname

Name des FDF-Felds als Zeichenkette.

trigger

script

flags

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fdf_set_javascript_action() - Weist einem Feld eine JavaScript Aktion zu


Set target frame for form display

  • « fdf_set_submit_form_action
  • fdf_set_value »
  • PHP Manual
  • FDF
  • Set target frame for form display

fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_target_frame — Set target frame for form display

Beschreibung

fdf_set_target_frame ( resource $fdf_document , string $frame_name ) : bool

Sets the target frame to display a result PDF defined with fdf_save_file() in.

Parameter-Liste

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

frame_name

The frame name, as a string.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fdf_save_file()


Legt den Wert eines Feldes fest

  • « fdf_set_target_frame
  • fdf_set_version »
  • PHP Manual
  • FDF
  • Legt den Wert eines Feldes fest

fdf_set_value

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_value — Legt den Wert eines Feldes fest

Beschreibung

fdf_set_value ( resource $fdf_document , string $fieldname , mixed $value , int $isName = ? ) : bool

Legt den value des angegebenen Feldes fest.

Parameter-Liste

fdf_document

Das FDF-Dokument-Handle, das von fdf_create(), fdf_open() oder fdf_open_string() zurückgegeben wurde.

fieldname

Name des FDF-Felds als Zeichenkette.

value

Dieser Parameter wird als String, oder falls der übergebene Wert ein Array ist, als Array gespeichert.

isName

Hinweis:

In älteren Versionen des FDF-Toolkits legte der letzte Parameter fest, ob der Wert in einen PDF-Namen (= 1) konvertiert oder als PDf-String (= 0) behandelt werden sollte.

Dieser Parameter wird in Version 5.0 des Toolkits nicht mehr benutzt. Aus Kompatibilitätsgründen wird der Parameter ab PHP-Version 4.3 als optional unterstützt aber ignoriert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
4.3.0 | Unterstützung für Arrays im Parameter value wurde hinzugefügt.

Siehe auch

  • fdf_get_value() - Gibt den Wert eines Feldes zurück
  • fdf_remove_item() - Sets target frame for form


Sets version number for a FDF file

  • « fdf_set_value
  • GnuPG »
  • PHP Manual
  • FDF
  • Sets version number for a FDF file

fdf_set_version

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_version — Sets version number for a FDF file

Beschreibung

fdf_set_version ( resource $fdf_document , string $version ) : bool

Sets the FDF version for the given document.

Some features supported by this extension are only available in newer FDF versions.

Parameter-Liste

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

version

The version number. For the current FDF toolkit 5.0, this may be either 1.2, 1.3 or 1.4.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • fdf_get_version() - Liefert die Versionsnummer einer FDF Datei oder des APIs


GNU Privacy Guard

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Clearsign text
  • GnuPG Funktionen
    • gnupg_adddecryptkey — Fügt einen Schlüssel für Entschlüsselung hinzu
    • gnupg_addencryptkey — Fügt einen Schlüssel zur Verschlüsselung hinzu
    • gnupg_addsignkey — Fügt einen Schlüssel für Signierung hinzu
    • gnupg_cleardecryptkeys — Entfernt alle Schlüssel, die vorher für Entschlüsselung hinterlegt wurden
    • gnupg_clearencryptkeys — Entfernt alle Schlüssel, die vorher zur Verschlüsselung hinterlegt wurden
    • gnupg_clearsignkeys — Entfernt alle Schlüssel die vorher zur Signierung hinterlegt wurden
    • gnupg_decrypt — Entschlüsselt einen gegebenen Text
    • gnupg_decryptverify — Entschlüsselt und vertifiziert einen gegebenen Text
    • gnupg_encrypt — Verschlüsselt einen gegebenen Text
    • gnupg_encryptsign — Verschlüsselt und signiert einen gegebenen Text
    • gnupg_export — Exportiert einen Schlüssel
    • gnupg_geterror — Gibt den Fehlertext zurück, wenn eine Funktion scheitert
    • gnupg_getprotocol — Gibt das aktuell für alle Operationen aktive Protokoll zurück
    • gnupg_import — Importiert einen Schlüssel
    • gnupg_init — Initialisiert eine Verbindung
    • gnupg_keyinfo — Gibt ein Array mit Informationen über alle Schlüssel zurück, die dem gegebenen Muster entsprechen
    • gnupg_setarmor — Gepanzerte Ausgabe umschalten
    • gnupg_seterrormode — Setzt den Modus für error_reporting
    • gnupg_setsignmode — Setzt den Signierungs-Modus
    • gnupg_sign — Signiert einen übergebenen Text
    • gnupg_verify — Verifiziert einen signierten Text


  • « GnuPG
  • Installation/Konfiguration »
  • PHP Manual
  • GnuPG
  • Einführung

Einführung

Dieses Modul ermöglicht es, mit » gnupg zu interagieren.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

Diese Erweitung benötigt die » gpgme Bibliothek


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/gnupg.


Vordefinierte Konstanten

GNUPG_SIG_MODE_NORMAL (integer)
GNUPG_SIG_MODE_DETACH (integer)
GNUPG_SIG_MODE_CLEAR (integer)
GNUPG_VALIDITY_UNKNOWN (integer)
GNUPG_VALIDITY_UNDEFINED (integer)
GNUPG_VALIDITY_NEVER (integer)
GNUPG_VALIDITY_MARGINAL (integer)
GNUPG_VALIDITY_FULL (integer)
GNUPG_VALIDITY_ULTIMATE (integer)
GNUPG_PROTOCOL_OpenPGP (integer)
GNUPG_PROTOCOL_CMS (integer)
GNUPG_SIGSUM_VALID (integer)
GNUPG_SIGSUM_GREEN (integer)
GNUPG_SIGSUM_RED (integer)
GNUPG_SIGSUM_KEY_REVOKED (integer)
GNUPG_SIGSUM_KEY_EXPIRED (integer)
GNUPG_SIGSUM_KEY_MISSING (integer)
GNUPG_SIGSUM_SIG_EXPIRED (integer)
GNUPG_SIGSUM_CRL_MISSING (integer)
GNUPG_SIGSUM_CRL_TOO_OLD (integer)
GNUPG_SIGSUM_BAD_POLICY (integer)
GNUPG_SIGSUM_SYS_ERROR (integer)
GNUPG_ERROR_WARNING (integer)
GNUPG_ERROR_EXCEPTION (integer)
GNUPG_ERROR_SILENT (integer)


  • « Vordefinierte Konstanten
  • Clearsign text »
  • PHP Manual
  • GnuPG
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Clearsign text


Clearsign text

This example will clearsign a given text.

Beispiel #1 gnupg clearsign example (procedural)

<?php
// init gnupg
$res = gnupg_init();
// not really needed. Clearsign is default
gnupg_setsignmode($res,GNUPG_SIG_MODE_CLEAR);
// add key with passphrase 'test' for signing
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
// sign
$signed = gnupg_sign($res,"just a test");
echo $signed;
?>

Beispiel #2 gnupg clearsign example (OO)

<?php
// new class
$gnupg = new gnupg();
// not really needed. Clearsign is default
$gnupg->setsignmode(gnupg::SIG_MODE_CLEAR);
// add key with passphrase 'test' for signing
$gnupg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
// sign
$signed = $gnupg->sign("just a test");
echo $signed;
?>

Beispiel #3 keylistiterator

This extension also comes with an Iterator for your keyring.

<?php
// create a new iterator for listing all public keys that matches 'example'
$iterator = new gnupg_keylistiterator("example");
foreach($iterator as $fingerprint => $userid){
    echo $fingerprint." -> ".$userid."\n";
}
?>


GnuPG Funktionen

Anmerkungen

Diese Erweiterung verwendet den Schlüsselbund des aktuellen Benutzers. Dieser Schlüsselbund ist normalerweise unter ~./.gnupg/ zu finden. Um einen benutzerdefinierten Pfad festzulegen, speichere den Pfad zum Schlüsselbund in der Umgebungsvariable GNUPGHOME. Siehe hierzu putenv für detailiertere Informationen hierzu.

Einige Funktionen erfordern die Spezifikationen des Schlüssels. Diese Spezifikation kann irgendetwas sein, was den Schlüssel einzigartig macht. (z.B. Userid, Schlüssel-ID, Fingerabdruck..). In dieser Dokumentation wird in allen Beispielen der Fingerabdruck verwendet..

Hinweis:

Als Alternative zu den explizit dokumentierten Funktionen, die Ressourcen (resource) verwenden, ist ebenfalls ein object-orientierter Stil unter Verwendung von gnupg-Objekten möglich.

Inhaltsverzeichnis

  • gnupg_adddecryptkey — Fügt einen Schlüssel für Entschlüsselung hinzu
  • gnupg_addencryptkey — Fügt einen Schlüssel zur Verschlüsselung hinzu
  • gnupg_addsignkey — Fügt einen Schlüssel für Signierung hinzu
  • gnupg_cleardecryptkeys — Entfernt alle Schlüssel, die vorher für Entschlüsselung hinterlegt wurden
  • gnupg_clearencryptkeys — Entfernt alle Schlüssel, die vorher zur Verschlüsselung hinterlegt wurden
  • gnupg_clearsignkeys — Entfernt alle Schlüssel die vorher zur Signierung hinterlegt wurden
  • gnupg_decrypt — Entschlüsselt einen gegebenen Text
  • gnupg_decryptverify — Entschlüsselt und vertifiziert einen gegebenen Text
  • gnupg_encrypt — Verschlüsselt einen gegebenen Text
  • gnupg_encryptsign — Verschlüsselt und signiert einen gegebenen Text
  • gnupg_export — Exportiert einen Schlüssel
  • gnupg_geterror — Gibt den Fehlertext zurück, wenn eine Funktion scheitert
  • gnupg_getprotocol — Gibt das aktuell für alle Operationen aktive Protokoll zurück
  • gnupg_import — Importiert einen Schlüssel
  • gnupg_init — Initialisiert eine Verbindung
  • gnupg_keyinfo — Gibt ein Array mit Informationen über alle Schlüssel zurück, die dem gegebenen Muster entsprechen
  • gnupg_setarmor — Gepanzerte Ausgabe umschalten
  • gnupg_seterrormode — Setzt den Modus für error_reporting
  • gnupg_setsignmode — Setzt den Signierungs-Modus
  • gnupg_sign — Signiert einen übergebenen Text
  • gnupg_verify — Verifiziert einen signierten Text


Fügt einen Schlüssel für Entschlüsselung hinzu

  • « GnuPG Funktionen
  • gnupg_addencryptkey »
  • PHP Manual
  • GnuPG Funktionen
  • Fügt einen Schlüssel für Entschlüsselung hinzu

gnupg_adddecryptkey

(PECL gnupg >= 0.5)

gnupg_adddecryptkey — Fügt einen Schlüssel für Entschlüsselung hinzu

Beschreibung

gnupg_adddecryptkey ( resource $identifier , string $fingerprint , string $passphrase ) : bool

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

fingerprint

Der 'Fingerprint'-Schlüssel.

passphrase

Das Passwort.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Verwendungsbeispiel gnupg_adddecryptkey()

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Beispiel #2 OO gnupg_adddecryptkey() Beispiel

<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>


Fügt einen Schlüssel zur Verschlüsselung hinzu

  • « gnupg_adddecryptkey
  • gnupg_addsignkey »
  • PHP Manual
  • GnuPG Funktionen
  • Fügt einen Schlüssel zur Verschlüsselung hinzu

gnupg_addencryptkey

(PECL gnupg >= 0.5)

gnupg_addencryptkey — Fügt einen Schlüssel zur Verschlüsselung hinzu

Beschreibung

gnupg_addencryptkey ( resource $identifier , string $fingerprint ) : bool

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

fingerprint

Der 'Fingerprint'-Schlüssel.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Prozedurales gnupg_addencryptkey() Beispiel

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
?>

Beispiel #2 OO (objektorientiertes) gnupg_addencryptkey()-Beispiel

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
?>


Fügt einen Schlüssel für Signierung hinzu

  • « gnupg_addencryptkey
  • gnupg_cleardecryptkeys »
  • PHP Manual
  • GnuPG Funktionen
  • Fügt einen Schlüssel für Signierung hinzu

gnupg_addsignkey

(PECL gnupg >= 0.5)

gnupg_addsignkey — Fügt einen Schlüssel für Signierung hinzu

Beschreibung

gnupg_addsignkey ( resource $identifier , string $fingerprint , string $passphrase = ? ) : bool

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

fingerprint

Der 'Fingerprint'-Schlüssel.

passphrase

Das Passwort.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Prozedurales gnupg_addsignkey() Beispiel

<?php
$res = gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Beispiel #2 OO (objektorientiertes) gnupg_addsignkey()-Beispiel

<?php
$gpg = new gnupg();
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>


Entfernt alle Schlüssel, die vorher für Entschlüsselung hinterlegt wurden

  • « gnupg_addsignkey
  • gnupg_clearencryptkeys »
  • PHP Manual
  • GnuPG Funktionen
  • Entfernt alle Schlüssel, die vorher für Entschlüsselung hinterlegt wurden

gnupg_cleardecryptkeys

(PECL gnupg >= 0.5)

gnupg_cleardecryptkeys — Entfernt alle Schlüssel, die vorher für Entschlüsselung hinterlegt wurden

Beschreibung

gnupg_cleardecryptkeys ( resource $identifier ) : bool

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Prozedurales gnupg_cleardecryptkeys() Beispiel

<?php
$res = gnupg_init();
gnupg_cleardecryptkeys($res);
?>

Beispiel #2 OO (objektorientiertes) gnupg_cleardecryptkeys() Beispiel

<?php
$gpg = new gnupg();
$gpg -> cleardecryptkeys();
?>


Entfernt alle Schlüssel, die vorher zur Verschlüsselung hinterlegt wurden

  • « gnupg_cleardecryptkeys
  • gnupg_clearsignkeys »
  • PHP Manual
  • GnuPG Funktionen
  • Entfernt alle Schlüssel, die vorher zur Verschlüsselung hinterlegt wurden

gnupg_clearencryptkeys

(PECL gnupg >= 0.5)

gnupg_clearencryptkeys — Entfernt alle Schlüssel, die vorher zur Verschlüsselung hinterlegt wurden

Beschreibung

gnupg_clearencryptkeys ( resource $identifier ) : bool

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Prozedurales gnupg_clearencryptkeys() Beispiel

<?php
$res = gnupg_init();
gnupg_clearencryptkeys($res);
?>

Beispiel #2 OO (objektorientiertes) gnupg_clearencryptkeys() Beispiel

<?php
$gpg = new gnupg();
$gpg -> clearencryptkeys();
?>


Entfernt alle Schlüssel die vorher zur Signierung hinterlegt wurden

  • « gnupg_clearencryptkeys
  • gnupg_decrypt »
  • PHP Manual
  • GnuPG Funktionen
  • Entfernt alle Schlüssel die vorher zur Signierung hinterlegt wurden

gnupg_clearsignkeys

(PECL gnupg >= 0.5)

gnupg_clearsignkeys — Entfernt alle Schlüssel die vorher zur Signierung hinterlegt wurden

Beschreibung

gnupg_clearsignkeys ( resource $identifier ) : bool

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Prozedurales gnupg_clearsignkeys() Beispiel

<?php
$res = gnupg_init();
gnupg_clearsignkeys($res);
?>

Beispiel #2 OO (objektorientiertes) gnupg_clearsignkeys() Beispiel

<?php
$gpg = new gnupg();
$gpg -> clearsignkeys();
?>


Entschlüsselt einen gegebenen Text

  • « gnupg_clearsignkeys
  • gnupg_decryptverify »
  • PHP Manual
  • GnuPG Funktionen
  • Entschlüsselt einen gegebenen Text

gnupg_decrypt

(PECL gnupg >= 0.1)

gnupg_decrypt — Entschlüsselt einen gegebenen Text

Beschreibung

gnupg_decrypt ( resource $identifier , string $text ) : string

Entschlüsselt einen gegebenen Text mit den Schlüsseln, die mit gnupg_adddecryptkey hinterlegt wurden.

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

text

Der zu entschlüsselnde Text.

Rückgabewerte

Bei Erfolg gibt diese Funktion den entschlüsselten Text zurück. Bei einem Fehler gibt diese Funktion false zurück.

Beispiele

Beispiel #1 Prozedurales gnupg_decrypt() Beispiel

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = gnupg_decrypt($res,$encrypted_text);
echo $plain;
?>

Beispiel #2 OO (objektorientiertes)gnupg_decrypt() Beispiel

<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = $gpg -> decrypt($encrypted_text);
echo $plain;
?>


Entschlüsselt und vertifiziert einen gegebenen Text

  • « gnupg_decrypt
  • gnupg_encrypt »
  • PHP Manual
  • GnuPG Funktionen
  • Entschlüsselt und vertifiziert einen gegebenen Text

gnupg_decryptverify

(PECL gnupg >= 0.2)

gnupg_decryptverify — Entschlüsselt und vertifiziert einen gegebenen Text

Beschreibung

gnupg_decryptverify ( resource $identifier , string $text , string &$plaintext ) : array

Entschlüsselt und verifiziert einen gegebenen Text und gibt Informationen über die Signatur zurück.

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

text

Der zu entschlüsselnde Text.

plaintext

Der Parameter plaintext wird mit dem entschlüsselten Text gefüllt.

Rückgabewerte

Bei Erfolgg gibt die Funktion Informationen über die Signatur und füllt den Parameter plaintext mit dem entschlüsselten Text. Bei einem Fehler gibt diese Funktion false zurück.

Beispiele

Beispiel #1 Prozedurales gnupg_decryptverify() Beispiel

<?php
$plaintext = "";
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$info = gnupg_decryptverify($res,$text,$plaintext);
print_r($info);
?>

Beispiel #2 OO (objektorientiertes) gnupg_decryptverify() Beispiel

<?php
$plaintext = "";
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$info = $gpg -> decryptverify($text,$plaintext);
print_r($info);
?>


Verschlüsselt einen gegebenen Text

  • « gnupg_decryptverify
  • gnupg_encryptsign »
  • PHP Manual
  • GnuPG Funktionen
  • Verschlüsselt einen gegebenen Text

gnupg_encrypt

(PECL gnupg >= 0.1)

gnupg_encrypt — Verschlüsselt einen gegebenen Text

Beschreibung

gnupg_encrypt ( resource $identifier , string $plaintext ) : string

Verschlüsselt den gegebenen plaintext mit den Schlüsseln, die vorher mit gnupg_addencryptkey gesetzt wurden und gibt den verschlüsselten Text zurück.

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

plaintext

Der zu verschlüsselnde Text.

Rückgabewerte

Bei Erfolg gibt diese Funktion den verschlüsselten Text zurück. Bei einem Fehler gibt diese Funktion false zurück.

Beispiele

Beispiel #1 Prozedurales gnupg_encrypt() Beispiel

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
$enc = gnupg_encrypt($res, "just a test");
echo $enc;
?>

Beispiel #2 OO (objektorientiertes) gnupg_encrypt() Beispiele

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$enc = $gpg -> encrypt("just a test");
echo $enc;
?>


Verschlüsselt und signiert einen gegebenen Text

  • « gnupg_encrypt
  • gnupg_export »
  • PHP Manual
  • GnuPG Funktionen
  • Verschlüsselt und signiert einen gegebenen Text

gnupg_encryptsign

(PECL gnupg >= 0.2)

gnupg_encryptsign — Verschlüsselt und signiert einen gegebenen Text

Beschreibung

gnupg_encryptsign ( resource $identifier , string $plaintext ) : string

Verschlüsselt und signiert den gegebenen plaintext mit den Schlüsseln, die vorher mit gnupg_addsignkey und gnupg_addencryptkey hinterlegten Schlüsseln und gibt den verschlüsselten und signierten Text zurück.

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

plaintext

Der zu verschlüsselnde Text.

Rückgabewerte

Bei Erfolg gibt diese Funktionn den verschlüsselten und signierten Text zurück, bei einem Fehler gibt diese Funktion false zurück.

Beispiele

Beispiel #1 Prozedurales gnupg_encryptsign() Beispiel

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$enc = gnupg_encryptsign($res, "just a test");
echo $enc;
?>

Beispiel #2 OO (objektorientiertes) gnupg_encryptsign() Beispiel

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$enc = $gpg -> encryptsign("just a test");
echo $enc;
?>


Exportiert einen Schlüssel

  • « gnupg_encryptsign
  • gnupg_geterror »
  • PHP Manual
  • GnuPG Funktionen
  • Exportiert einen Schlüssel

gnupg_export

(PECL gnupg >= 0.1)

gnupg_export — Exportiert einen Schlüssel

Beschreibung

gnupg_export ( resource $identifier , string $fingerprint ) : string

Exportiert den Schlüssel fingerprint.

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

fingerprint

Der 'Fingerprint'-Schlüssel.

Rückgabewerte

Bei Erfolg gibt diese Funktion die Schlüssel-Daten zurück. Bei einem Fehler gibt diese Funktion false zurück.

Beispiele

Beispiel #1 Prozedurales gnupg_export() Beispiel

<?php
$res = gnupg_init();
$export = gnupg_export($res,"8660281B6051D071D94B5B230549F9DC851566DC");
echo $export;
?>

Beispiel #2 OO (objektorientiertes) gnupg_export() Beispiel

<?php
$gpg = new gnupg();
$export = $gpg -> export("8660281B6051D071D94B5B230549F9DC851566DC");
?>


Gibt den Fehlertext zurück, wenn eine Funktion scheitert

  • « gnupg_export
  • gnupg_getprotocol »
  • PHP Manual
  • GnuPG Funktionen
  • Gibt den Fehlertext zurück, wenn eine Funktion scheitert

gnupg_geterror

(PECL gnupg >= 0.1)

gnupg_geterror — Gibt den Fehlertext zurück, wenn eine Funktion scheitert

Beschreibung

gnupg_geterror ( resource $identifier ) : string

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

Rückgabewerte

Gibt den Fehlertext zurück, wenn ein Fehler aufgetreten ist, sonst false.

Beispiele

Beispiel #1 Prozedurales gnupg_geterror() Beispiel

<?php
$res = gnupg_init();
echo gnupg_geterror($res);
?>

Beispiel #2 OO (objektorientiertes) gnupg_geterror() Beispiel

<?php
$gpg = new gnupg();
echo $gpg -> geterror();
?>


Gibt das aktuell für alle Operationen aktive Protokoll zurück

  • « gnupg_geterror
  • gnupg_import »
  • PHP Manual
  • GnuPG Funktionen
  • Gibt das aktuell für alle Operationen aktive Protokoll zurück

gnupg_getprotocol

(PECL gnupg >= 0.1)

gnupg_getprotocol — Gibt das aktuell für alle Operationen aktive Protokoll zurück

Beschreibung

gnupg_getprotocol ( resource $identifier ) : int

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

Rückgabewerte

Gibt das aktuell aktive Protokoll zurück, welches eine der GNUPG_PROTOCOL_OpenPGP- oder GNUPG_PROTOCOL_CMS-Konstanten sein kann.

Beispiele

Beispiel #1 Prozedurales gnupg_getprotocol() Beispiel

<?php
$res = gnupg_init();
echo gnupg_getprotocol($res);
?>

Beispiel #2 OO (objektorientiertes) gnupg_getprotocol() Beispiel

<?php
$gpg = new gnupg();
echo $gpg -> getprotocol();
?>


Importiert einen Schlüssel

  • « gnupg_getprotocol
  • gnupg_init »
  • PHP Manual
  • GnuPG Funktionen
  • Importiert einen Schlüssel

gnupg_import

(PECL gnupg >= 0.3)

gnupg_import — Importiert einen Schlüssel

Beschreibung

gnupg_import ( resource $identifier , string $keydata ) : array

Importiert den Schlüssel keydata und gibt ein Array mit Informationen über den Importprozess zurück.

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

keydata

Die Daten des zu importierenden Schlüssels.

Rückgabewerte

Bei Erfolg gibt diese Funktion ein info-array über den Importprozess zurück. Bei einem Fehler gibt diese Funktion false zurück.

Beispiele

Beispiel #1 Prozedurales gnupg_import() Beispiel

<?php
$res = gnupg_init();
$info = gnupg_import($res,$keydata);
print_r($info);
?>

Beispiel #2 OO (objektorientiertes) gnupg_import() Beispiel

<?php
$gpg = new gnupg();
$info = $gpg -> import($keydata);
print_r($info);
?>


Initialisiert eine Verbindung

  • « gnupg_import
  • gnupg_keyinfo »
  • PHP Manual
  • GnuPG Funktionen
  • Initialisiert eine Verbindung

gnupg_init

(PECL gnupg >= 0.4)

gnupg_init — Initialisiert eine Verbindung

Beschreibung

gnupg_init ( ) : resource

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Eine GnuPG-resource-Verbindung, die von anderen GnuPG-Funktionen benutz wird.

Beispiele

Beispiel #1 Prozedurales gnupg_init() Beispiel

<?php
$res = gnupg_init();
?>

Beispiel #2 OO (objektorientiertes) gnupg_init() Beispiel

<?php
$gpg = new gnupg();
?>


Gibt ein Array mit Informationen über alle Schlüssel zurück, die dem gegebenen Muster entsprechen

  • « gnupg_init
  • gnupg_setarmor »
  • PHP Manual
  • GnuPG Funktionen
  • Gibt ein Array mit Informationen über alle Schlüssel zurück, die dem gegebenen Muster entsprechen

gnupg_keyinfo

(PECL gnupg >= 0.1)

gnupg_keyinfo — Gibt ein Array mit Informationen über alle Schlüssel zurück, die dem gegebenen Muster entsprechen

Beschreibung

gnupg_keyinfo ( resource $identifier , string $pattern ) : array

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

pattern

Das Muster, das mit den Schlüsseln verglichen werden soll.

Rückgabewerte

Gibt ein Array mit Informationen über alle Schlüssel, die dem übergebenen Muster entsprechen oder false, wenn ein Fehler auftritt.

Beispiele

Beispiel #1 Prozedurales gnupg_keyinfo() Beispiel

<?php
$res = gnupg_init();
$info = gnupg_keyinfo($res, 'test');
print_r($info);
?>

Beispiel #2 OO (objektorientiertes) gnupg_keyinfo() Beispiel

<?php
$gpg = new gnupg();
$info = $gpg -> keyinfo("test");
print_r($info);
?>


Gepanzerte Ausgabe umschalten

  • « gnupg_keyinfo
  • gnupg_seterrormode »
  • PHP Manual
  • GnuPG Funktionen
  • Gepanzerte Ausgabe umschalten

gnupg_setarmor

(PECL gnupg >= 0.1)

gnupg_setarmor — Gepanzerte Ausgabe umschalten

Beschreibung

gnupg_setarmor ( resource $identifier , int $armor ) : bool

Umschalten der gepanzerten Ausgabe.

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

armor

Übergibt einen nicht-null Integer-Wert zu dieser Funktion um die gepanzerte Ausgabe zu aktivieren (standard). Übergib 0 um die gepanzerte Ausgabe zu deaktivieren.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Prozedurales gnupg_setarmor() Beispiel

<?php
$res = gnupg_init();
gnupg_setarmor($res,1); // gepanzerte Ausgabe aktivieren;
gnupg_setarmor($res,0); // gepanzerte Ausgabe deaktivieren;
?>

Beispiel #2 OO (objektorientiertes) gnupg_setarmor() Beispiel

<?php
$gpg = new gnupg();
$gpg -> setarmor(1); // gepanzerte Ausgabe aktivieren;
$gpg -> setarmor(0); // gepanzerte Ausgabe deaktivieren;
?>


Setzt den Modus für error_reporting

  • « gnupg_setarmor
  • gnupg_setsignmode »
  • PHP Manual
  • GnuPG Funktionen
  • Setzt den Modus für error_reporting

gnupg_seterrormode

(PECL gnupg >= 0.6)

gnupg_seterrormode — Setzt den Modus für error_reporting

Beschreibung

gnupg_seterrormode ( resource $identifier , int $errormode ) : void

Setzt den Modus für error_reporting.

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

errormode

Der Fehler-Modus.

errormode übernimmt eine Konstante, die angibt, welche Art von error_reporting verwendet werden sollte. Die möglichen Werte sind GNUPG_ERROR_WARNING, GNUPG_ERROR_EXCEPTION und GNUPG_ERROR_SILENT. Standardmäßig wird GNUPG_ERROR_SILENT verwendet.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Procedurales gnupg_seterrormode() Beispiel

<?php
$res = gnupg_init();
gnupg_seterrormode($res,GNUPG_ERROR_WARNING); // erzeugt eine PHP-Warnung im Fall eines Fehlers
?>

Beispiel #2 OO (objektorientiertes) gnupg_seterrormode() Beispiel

<?php
$gpg = new gnupg();
$gpg -> seterrormode(gnupg::ERROR_EXCEPTION); // erzeugt eine Ausnahme im Fall eines Fehlers
?>


Setzt den Signierungs-Modus

  • « gnupg_seterrormode
  • gnupg_sign »
  • PHP Manual
  • GnuPG Funktionen
  • Setzt den Signierungs-Modus

gnupg_setsignmode

(PECL gnupg >= 0.1)

gnupg_setsignmode — Setzt den Signierungs-Modus

Beschreibung

gnupg_setsignmode ( resource $identifier , int $signmode ) : bool

Setzt den Signierungs-Modus.

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

sigmode

Der Modus der Signierung.

signmode übernimmt eine Konstante, die angibt, welche Art von Signatur erzeugt werden soll. Die möglichen Werte sind GNUPG_SIG_MODE_NORMAL, GNUPG_SIG_MODE_DETACH und GNUPG_SIG_MODE_CLEAR. Standardmäßig wird GNUPG_SIG_MODE_CLEAR verwendet.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Prozedurales gnupg_setsignmode() Beispiel

<?php
$res = gnupg_init();
gnupg_setsignmode($res,GNUPG_SIG_MODE_DETACH); // erzeugt eine abgetrennte Signatur
?>

Beispiel #2 OO gnupg_setsignmode() Beispiel

<?php
$gpg = new gnupg();
$gpg -> setsignmode(gnupg::SIG_MODE_DETACH); // erzeugt eine abgetrennte Signatur
?>


Signiert einen übergebenen Text

  • « gnupg_setsignmode
  • gnupg_verify »
  • PHP Manual
  • GnuPG Funktionen
  • Signiert einen übergebenen Text

gnupg_sign

(PECL gnupg >= 0.1)

gnupg_sign — Signiert einen übergebenen Text

Beschreibung

gnupg_sign ( resource $identifier , string $plaintext ) : string

Signiert den übergebenen plaintext mit den Schlüsseln, die vorher mit gnupg_addsignkey hinterlegt wurden und gibt den signierten Text oder die Signatur zurück, abhängig davon, was mit gnupg_setsignmode festgelegt wurde.

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

plaintext

Der zu signierende Klartext.

Rückgabewerte

Bei Erfolg gibt diese Funktion den signierten Text oder die Signatur zurück, bei einem Fehler false.

Beispiele

Beispiel #1 Prozedurales gnupg_sign() Beispiel

<?php
$res = gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = gnupg_sign($res, "just a test");
echo $signed;
?>

Beispiel #2 OO gnupg_sign() Beispiel

<?php
$gpg = new gnupg();
$gpg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = $gpg->sign("just a test");
echo $signed;
?>


Verifiziert einen signierten Text

  • « gnupg_sign
  • wkhtmltox »
  • PHP Manual
  • GnuPG Funktionen
  • Verifiziert einen signierten Text

gnupg_verify

(PECL gnupg >= 0.1)

gnupg_verify — Verifiziert einen signierten Text

Beschreibung

gnupg_verify ( resource $identifier , string $signed_text , string $signature , string &$plaintext = ? ) : array

Verifiziert den gegebenen signed_text und gibt Informationen über die Signatur zurück.

Parameter-Liste

identifier

Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.

signed_text

Der signierte Text.

signature

Die Signatur. Um einen klar signierten Text zu verifizieren, setzen Sie für signatur false.

plaintext

Der klare Text. Wenn dieser optionale Parameter übergeben ist, ist er mit dem Klartext gefüllt.

Rückgabewerte

Bei Erfolg gibt diese Funktion Informationen über die Signatur, bei einem Fehler false zurück.

Beispiele

Beispiel #1 Prozedurales gnupg_verify() Beispiel

<?php
$plaintext = "";
$res = gnupg_init();
// clearsigned
$info = gnupg_verify($res,$signed_text,false,$plaintext);
print_r($info);
// detached signature
$info = gnupg_verify($res,$signed_text,$signature);
print_r($info);
?>

Beispiel #2 OO gnupg_verify() Beispiel

<?php
$plaintext = "";
$gpg = new gnupg();
// clearsigned
$info = $gpg -> verify($signed_text,false,$plaintext);
print_r($info);
// detached signature
$info = $gpg -> verify($signed_text,$signature);
print_r($info);
?>


wkhtmltox

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
  • wkhtmltox\PDF\Converter — The wkhtmltox\PDF\Converter class
    • wkhtmltox\PDF\Converter::add — Add an object for conversion
    • wkhtmltox\PDF\Converter::__construct — Create a new PDF converter
    • wkhtmltox\PDF\Converter::convert — Perform PDF conversion
    • wkhtmltox\PDF\Converter::getVersion — Determine version of Converter
  • wkhtmltox\PDF\Object — The wkhtmltox\PDF\Object class
    • wkhtmltox\PDF\Object::__construct — Create a new PDF Object
  • wkhtmltox\Image\Converter — The wkhtmltox\Image\Converter class
    • wkhtmltox\Image\Converter::__construct — Create a new Image converter
    • wkhtmltox\Image\Converter::convert — Perform Image conversion
    • wkhtmltox\Image\Converter::getVersion — Determine version of Converter


Einführung

libwkhtmltox is an open source LGPLv3 library for rendering HTML into PDF and various image formats using the QtWebKit rendering engine.


Anforderungen

libwkhtmltox source and binary releases are distributed at » wkhtmltopdf.org.

Achtung

Windows users need to take the additional step of adding wkhtmltox.dll to their PATH.


Installation

The source code of this extension, and binaries for Windows are hosted by » github,

Fetching the source code and building the extension:

git clone https://github.com/krakjoe/wkhtmltox
cd wkhtmltox
phpize
./configure --with-wkhtmltox=/path/to/wkhtmltox/installation
make
sudo make install

Fetching updates and rebuilding the extension:

cd wkhtmltox
phpize --clean
git pull origin master
phpize
./configure --with-wkhtmltox=/path/to/wkhtmltox/installation
make
sudo make install


Laufzeit-Konfiguration

Name | Description | Default | Stage | Changelog
wkhtmltox.graphics | allow libwkhtmltox to use graphics | Off | PHP_INI_SYSTEM | PHP_INI_PERDIR | >= 0.3.2


The wkhtmltox\PDF\Converter class

(wkhtmltox >= 0.1.0)

Einführung

Converts an HTML input, or set of HTML inputs, into PDF output

Klassenbeschreibung

wkhtmltox\PDF\Converter {
/* Constructor */
public __construct ( array $settings = ? )
/* Methoden */
public add ( wkhtmltox\PDF\Object $object ) : void
public convert ( ) : string|null
public getVersion ( ) : string
}

Inhaltsverzeichnis

  • wkhtmltox\PDF\Converter::add — Add an object for conversion
  • wkhtmltox\PDF\Converter::__construct — Create a new PDF converter
  • wkhtmltox\PDF\Converter::convert — Perform PDF conversion
  • wkhtmltox\PDF\Converter::getVersion — Determine version of Converter


Add an object for conversion

  • « wkhtmltox\PDF\Converter
  • wkhtmltox\PDF\Converter::__construct »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Add an object for conversion

wkhtmltox\PDF\Converter::add

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Converter::add — Add an object for conversion

Beschreibung

public wkhtmltox\PDF\Converter::add ( wkhtmltox\PDF\Object $object ) : void

Adds the given object to conversion

Parameter-Liste

object

The object to add


Create a new PDF converter

  • « wkhtmltox\PDF\Converter::add
  • wkhtmltox\PDF\Converter::convert »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Create a new PDF converter

wkhtmltox\PDF\Converter::__construct

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Converter::__construct — Create a new PDF converter

Beschreibung

public wkhtmltox\PDF\Converter::__construct ( array $settings = ? )

Creates a PDF converter, using optional configuration settings

Parameter-Liste

settings

Name | Description | Values | Changelog
size.pageSize | paper size of output document | A4 | >= 0.1.0
size.width | with of the output document | 210mm | >= 0.1.0
size.height | height of the output document | 297mm | >= 0.1.0
orientation orientation of the output document
Landscape
Portrait
>= 0.1.0
colorMode color mode of the output document
Color
Greyscale
>= 0.1.0
resolution | resoluition of the output document | most likely has no effect | >= 0.1.0
dpi | dpi to use while printing | 80 | >= 0.1.0
pageOffset | integer added to page numbers generating headers, footers, and toc | >= 0.1.0
copies | >= 0.1.0
collate | collate copies | boolean | >= 0.1.0
outline | generate PDF outline | boolean | >= 0.1.0
outlineDepth | maximum depth of outline | >= 0.1.0
dumpOutline | path of file to dump outline XML | >= 0.1.0
out | path of output file, if "-" stdout is used | >= 0.1.0
documentTitle | title for the output document | >= 0.1.0
useCompression | enable or disable lossless compression | boolean | >= 0.1.0
margin.top | size of the top margin | 2cm | >= 0.1.0
margin.bottom | size of the bottom margin | 2cm | >= 0.1.0
margin.left | size of the left margin | 2cm | >= 0.1.0
margin.right | size of the right margin | 2cm | >= 0.1.0
imageDPI | maximum DPI for images in the output document | >= 0.1.0
imageQuality | the jpeg compression factor for images in the output document | 94 | >= 0.1.0
load.cookieJar | path of file used to load and store cookies | /tmp/cookies.txt | >= 0.1.0


Perform PDF conversion

  • « wkhtmltox\PDF\Converter::__construct
  • wkhtmltox\PDF\Converter::getVersion »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Perform PDF conversion

wkhtmltox\PDF\Converter::convert

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Converter::convert — Perform PDF conversion

Beschreibung

public wkhtmltox\PDF\Converter::convert ( ) : string|null

Performs conversion of all previously added Objects

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Where the return value is used, it will be populated with the contents of the conversion buffer


Determine version of Converter

  • « wkhtmltox\PDF\Converter::convert
  • wkhtmltox\PDF\Object »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Determine version of Converter

wkhtmltox\PDF\Converter::getVersion

(wkhtmltox >= 0.3.2)

wkhtmltox\PDF\Converter::getVersion — Determine version of Converter

Beschreibung

public wkhtmltox\PDF\Converter::getVersion ( ) : string

Determines the version of Converter as reported by libwkhtmltox

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a version string


The wkhtmltox\PDF\Object class

(wkhtmltox >= 0.1.0)

Einführung

Represents an HTML document, input to PDF converter

Klassenbeschreibung

wkhtmltox\PDF\Object {
/* Constructor */
public __construct ( string $buffer , array $settings = ? )
}

Inhaltsverzeichnis

  • wkhtmltox\PDF\Object::__construct — Create a new PDF Object


Create a new PDF Object

  • « wkhtmltox\PDF\Object
  • wkhtmltox\Image\Converter »
  • PHP Manual
  • wkhtmltox\PDF\Object
  • Create a new PDF Object

wkhtmltox\PDF\Object::__construct

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Object::__construct — Create a new PDF Object

Beschreibung

public wkhtmltox\PDF\Object::__construct ( string $buffer , array $settings = ? )

Creates a new PDF Object from the given buffer and optional configuration settings

Parameter-Liste

buffer

HTML

settings

Name | Description | Values | Changelog
page | URL or path of the HTML to convert | >= 0.1.0
useExternalLinks | set true to convert external links in the input into external PDF links in the output | boolean | >= 0.1.0
useLocalLinks | set true to convert internal links in the input into internal PDF links in the output | boolean | >= 0.1.0
produceForms | set true to turn HTML forms into PDF forms | boolean | >= 0.1.0
replacements | undocumented | >= 0.1.0
includeInOutline | set true to include sections from this object in the outline and toc | boolean | >= 0.1.0
pagesCount | set true to make page count in toc inclusive of the number of pages in this object | boolean | >= 0.1.0
tocXsl | set to style sheet to convert this object into a toc object | >= 0.1.0
toc.useDottedLines | set true to use dotted lines in toc | boolean | >= 0.1.0
toc.captionText | the caption text for toc | >= 0.1.0
toc.forwardLinks | set true to create links from toc to content | boolean | >= 0.1.0
toc.backLinks | set true to create links from content to toc | boolean | >= 0.1.0
toc.indentation | indentation for toc | 2em | >= 0.1.0
toc.fontScale | the factor to scale down the font at every toc level | 0.8 | >= 0.1.0
header.fontSize | font size for use in header | 13 | >= 0.1.0
header.fontName | name of font for use in header | times | >= 0.1.0
header.left | text for left of header | >= 0.1.0
header.center | text for center of header | >= 0.1.0
header.right | text for right of header | >= 0.1.0
header.line | enable or disable horizontal rule under header | boolean | >= 0.1.0
header.spacing | space between header and content | 1.8 | >= 0.1.0
header.htmlUrl | URL or path of HTML to use in header | >= 0.1.0
footer.fontSize | font size for use in footer | 13 | >= 0.1.0
footer.fontName | name of font for use in footer | times | >= 0.1.0
footer.left | text for left of footer | >= 0.1.0
footer.center | text for center of footer | >= 0.1.0
footer.right | text for right of footer | >= 0.1.0
footer.line | enable or disable horizontal rule under footer | boolean | >= 0.1.0
footer.spacing | space between footer and content | 1.8 | >= 0.1.0
footer.htmlUrl | URL or path of HTML to use in footer | >= 0.1.0
load.username | user name to use when loging into a website | bart | >= 0.1.0
load.password | the password to used when logging into a website | elbarto | >= 0.1.0
load.jsdelay | the amount of time in milliseconds to wait after a page is loaded until it is captured | 1200 | >= 0.1.0
load.zoomFactor | how much zoom should be applied to the content | 2.2 | >= 0.1.0
load.customHeaders | custom headers to send when requesting the main web page | >= 0.1.0
load.repertCustomHeaders | set true to send with all requests | boolean | >= 0.1.0
load.cookies | cookie string to send when requesting the main web page | >= 0.1.0
load.post | post string to send when requesting the main web page | >= 0.1.0
load.blockLocalFileAccess | disallow local and piped files to access other local files | boolean | >= 0.1.0
load.stopSlowScript | stop slow running javascript | boolean
load.debugJavascript | allow javascript to raise warnings | boolean | >= 0.1.0
load.loadErrorHandling set error handling strategy
abort | abort the convertion process
skip | do not add the object to the final output
ignore | try to add the object to the final output
>= 0.1.0
load.proxy | >= 0.1.0
web.background | include background image in output | boolean | >= 0.1.0
web.loadImages | include images in output | boolean | >= 0.1.0
web.enableJavascript | enable or disable javascript | boolean | >= 0.1.0
web.enableIntelligentShrinking | enable to attempt to fit more content on page, only applies to PDF output | boolean | >= 0.1.0
web.minimumFontSize | the minimum font size allowed | 9 | >= 0.1.0
web.printMediaType | print content using print media type instead of screen media type | boolean | >= 0.1.0
web.defaultEncoding | content to use where no encoding is specified | utf-8 | >= 0.1.0
web.userStyleSheet | URL or path to a user specified style sheet | /path/to/style.css | >= 0.1.0
web.enablePlugins | enable or disable NS plugins | boolean | >= 0.1.0


The wkhtmltox\Image\Converter class

(wkhtmltox >= 0.1.0)

Einführung

Converts an HTML input into various image formats

Klassenbeschreibung

wkhtmltox\Image\Converter {
/* Constructor */
public __construct ( string $buffer = ? , array $settings = ? )
/* Methoden */
public convert ( ) : string|null
public getVersion ( ) : string
}

Inhaltsverzeichnis

  • wkhtmltox\Image\Converter::__construct — Create a new Image converter
  • wkhtmltox\Image\Converter::convert — Perform Image conversion
  • wkhtmltox\Image\Converter::getVersion — Determine version of Converter


Create a new Image converter

  • « wkhtmltox\Image\Converter
  • wkhtmltox\Image\Converter::convert »
  • PHP Manual
  • wkhtmltox\Image\Converter
  • Create a new Image converter

wkhtmltox\Image\Converter::__construct

(wkhtmltox >= 0.1.0)

wkhtmltox\Image\Converter::__construct — Create a new Image converter

Beschreibung

public wkhtmltox\Image\Converter::__construct ( string $buffer = ? , array $settings = ? )

Creates an Image converter, optionally taking an input buffer and configuration settings

Parameter-Liste

buffer

HTML

settings

Name | Description | Values | Changelog
in | URL or path of the input file, if "-" stdin is used | /path/to/markup.html | >= 0.1.0
out | path of output file, if "-" stdout is used, by default an internal buffer is used | /path/to/output.png | >= 0.1.0
fmt output format to use
"" default
jpg | output as JPEG
png | output as PNG
bmp | output as bitmap
svg | output as SVG
>= 0.1.0
transparent | when outputting a PNG or SVG, make the white background transparent | boolean | >= 0.1.0
screenWidth | the with of the screen used to render in pixels | 800 | >= 0.1.0
smartWidth | when true, screenWidth is expanded to the content width | boolean | >= 0.1.0
quality | compression factor to use when outputting a JPEG image | 94 | >= 0.1.0
crop.left | left/x coordinate of the window to capture in pixels | 200 | >= 0.1.0
crop.top | top/y coordinate of the window to capture in pixels | 200 | >= 0.1.0
crop.width | width of the window to capture in pixels | 200 | >= 0.1.0
crop.height | height of the window to capture in pixels | 200 | >= 0.1.0
load.cookieJar | path of file used to load and store cookies | /tmp/cookies.txt | >= 0.1.0
load.username | user name to use when loging into a website | bart | >= 0.1.0
load.password | the password to used when logging into a website | elbarto | >= 0.1.0
load.jsdelay | the amount of time in milliseconds to wait after a page is loaded until it is captured | 1200 | >= 0.1.0
load.zoomFactor | how much zoom should be applied to the content | 2.2 | >= 0.1.0
load.customHeaders | custom headers to send when requesting the main web page | >= 0.1.0
load.repertCustomHeaders | set true to send with all requests | boolean | >= 0.1.0
load.cookies | cookie string to send when requesting the main web page | >= 0.1.0
load.post | post string to send when requesting the main web page | >= 0.1.0
load.blockLocalFileAccess | disallow local and piped files to access other local files | boolean | >= 0.1.0
load.stopSlowScript | stop slow running javascript | boolean
load.debugJavascript | allow javascript to raise warnings | boolean | >= 0.1.0
load.loadErrorHandling set error handling strategy
abort | abort the convertion process
skip | do not add the object to the final output
ignore | try to add the object to the final output
>= 0.1.0
load.proxy | >= 0.1.0
web.background | include background image in output | boolean | >= 0.1.0
web.loadImages | include images in output | boolean | >= 0.1.0
web.enableJavascript | enable or disable javascript | boolean | >= 0.1.0
web.enableIntelligentShrinking | enable to attempt to fit more content on page, only applies to PDF output | boolean | >= 0.1.0
web.minimumFontSize | the minimum font size allowed | 9 | >= 0.1.0
web.printMediaType | print content using print media type instead of screen media type | boolean | >= 0.1.0
web.defaultEncoding | content to use where no encoding is specified | utf-8 | >= 0.1.0
web.userStyleSheet | URL or path to a user specified style sheet | /path/to/style.css | >= 0.1.0
web.enablePlugins | enable or disable NS plugins | boolean | >= 0.1.0


Perform Image conversion

  • « wkhtmltox\Image\Converter::__construct
  • wkhtmltox\Image\Converter::getVersion »
  • PHP Manual
  • wkhtmltox\Image\Converter
  • Perform Image conversion

wkhtmltox\Image\Converter::convert

(wkhtmltox >= 0.1.0)

wkhtmltox\Image\Converter::convert — Perform Image conversion

Beschreibung

public wkhtmltox\Image\Converter::convert ( ) : string|null

Performs conversion of the input buffer

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Where the return value is used, it will be populated with the contents of the conversion buffer


Determine version of Converter

  • « wkhtmltox\Image\Converter::convert
  • PS »
  • PHP Manual
  • wkhtmltox\Image\Converter
  • Determine version of Converter

wkhtmltox\Image\Converter::getVersion

(wkhtmltox >= 0.3.2)

wkhtmltox\Image\Converter::getVersion — Determine version of Converter

Beschreibung

public wkhtmltox\Image\Converter::getVersion ( ) : string

Determines the version of Converter as reported by libwkhtmltox

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a version string

Warnung

This is not yet implemented by libwkhtmltox


PostScript document creation

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • PS Funktionen
    • ps_add_bookmark — Add bookmark to current page
    • ps_add_launchlink — Adds link which launches file
    • ps_add_locallink — Adds link to a page in the same document
    • ps_add_note — Adds note to current page
    • ps_add_pdflink — Adds link to a page in a second pdf document
    • ps_add_weblink — Adds link to a web location
    • ps_arc — Draws an arc counterclockwise
    • ps_arcn — Draws an arc clockwise
    • ps_begin_page — Start a new page
    • ps_begin_pattern — Start a new pattern
    • ps_begin_template — Start a new template
    • ps_circle — Draws a circle
    • ps_clip — Clips drawing to current path
    • ps_close_image — Closes image and frees memory
    • ps_close — Closes a PostScript document
    • ps_closepath_stroke — Closes and strokes path
    • ps_closepath — Closes path
    • ps_continue_text — Continue text in next line
    • ps_curveto — Draws a curve
    • ps_delete — Deletes all resources of a PostScript document
    • ps_end_page — End a page
    • ps_end_pattern — End a pattern
    • ps_end_template — End a template
    • ps_fill_stroke — Fills and strokes the current path
    • ps_fill — Fills the current path
    • ps_findfont — Loads a font
    • ps_get_buffer — Fetches the full buffer containig the generated PS data
    • ps_get_parameter — Gets certain parameters
    • ps_get_value — Gets certain values
    • ps_hyphenate — Hyphenates a word
    • ps_include_file — Reads an external file with raw PostScript code
    • ps_lineto — Draws a line
    • ps_makespotcolor — Create spot color
    • ps_moveto — Sets current point
    • ps_new — Creates a new PostScript document object
    • ps_open_file — Opens a file for output
    • ps_open_image_file — Opens image from file
    • ps_open_image — Reads an image for later placement
    • ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document
    • ps_place_image — Places image on the page
    • ps_rect — Draws a rectangle
    • ps_restore — Restore previously save context
    • ps_rotate — Sets rotation factor
    • ps_save — Save current context
    • ps_scale — Sets scaling factor
    • ps_set_border_color — Sets color of border for annotations
    • ps_set_border_dash — Sets length of dashes for border of annotations
    • ps_set_border_style — Sets border style of annotations
    • ps_set_info — Sets information fields of document
    • ps_set_parameter — Sets certain parameters
    • ps_set_text_pos — Sets position for text output
    • ps_set_value — Sets certain values
    • ps_setcolor — Sets current color
    • ps_setdash — Sets appearance of a dashed line
    • ps_setflat — Sets flatness
    • ps_setfont — Sets font to use for following output
    • ps_setgray — Sets gray value
    • ps_setlinecap — Sets appearance of line ends
    • ps_setlinejoin — Sets how contected lines are joined
    • ps_setlinewidth — Sets width of a line
    • ps_setmiterlimit — Sets the miter limit
    • ps_setoverprintmode — Sets overprint mode
    • ps_setpolydash — Sets appearance of a dashed line
    • ps_shading_pattern — Creates a pattern based on a shading
    • ps_shading — Creates a shading for later use
    • ps_shfill — Fills an area with a shading
    • ps_show_boxed — Output text in a box
    • ps_show_xy2 — Output text at position
    • ps_show_xy — Output text at given position
    • ps_show2 — Output a text at current position
    • ps_show — Output text
    • ps_string_geometry — Gets geometry of a string
    • ps_stringwidth — Gets width of a string
    • ps_stroke — Draws the current path
    • ps_symbol_name — Gets name of a glyph
    • ps_symbol_width — Gets width of a glyph
    • ps_symbol — Output a glyph
    • ps_translate — Sets translation


Einführung

This module allows to create PostScript documents. It has many similarities with the pdf extension. Actually the API is almost identical and one can in many cases just replace the prefix of each function from pdf_ to ps_. This also works for functions which has no meaning in the PostScript document (like adding hyperlinks) but will have an effect if the document is converted to PDF.

Documents created by this extension are sometimes even superior to documents created with the pdf extension, because pslib's text rendering functions can handle kerning, hyphenation and ligatures which results in much better output of boxed text.


Anforderungen

You need at least pslib >= 0.1.12. The ps library (pslib) is available at » http://pslib.sourceforge.net/.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/ps.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

This extension defines a PostScript document resource returned by ps_new().


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

The following two tables lists all constants defined by the ps extension.

Contants for line caps
Name | Meaning
ps_LINECAP_BUTT |
ps_LINECAP_ROUND |
ps_LINECAP_SQUARED |
Contants for line joins
Name | Meaning
ps_LINEJOIN_MITER |
ps_LINEJOIN_ROUND |
ps_LINEJOIN_BEVEL |


PS Funktionen

Contact Information

If you have comments, bugfixes, enhancements for either this extension or pslib then please drop me a mail » steinm@php.net. Any help is very welcome.

Inhaltsverzeichnis

  • ps_add_bookmark — Add bookmark to current page
  • ps_add_launchlink — Adds link which launches file
  • ps_add_locallink — Adds link to a page in the same document
  • ps_add_note — Adds note to current page
  • ps_add_pdflink — Adds link to a page in a second pdf document
  • ps_add_weblink — Adds link to a web location
  • ps_arc — Draws an arc counterclockwise
  • ps_arcn — Draws an arc clockwise
  • ps_begin_page — Start a new page
  • ps_begin_pattern — Start a new pattern
  • ps_begin_template — Start a new template
  • ps_circle — Draws a circle
  • ps_clip — Clips drawing to current path
  • ps_close_image — Closes image and frees memory
  • ps_close — Closes a PostScript document
  • ps_closepath_stroke — Closes and strokes path
  • ps_closepath — Closes path
  • ps_continue_text — Continue text in next line
  • ps_curveto — Draws a curve
  • ps_delete — Deletes all resources of a PostScript document
  • ps_end_page — End a page
  • ps_end_pattern — End a pattern
  • ps_end_template — End a template
  • ps_fill_stroke — Fills and strokes the current path
  • ps_fill — Fills the current path
  • ps_findfont — Loads a font
  • ps_get_buffer — Fetches the full buffer containig the generated PS data
  • ps_get_parameter — Gets certain parameters
  • ps_get_value — Gets certain values
  • ps_hyphenate — Hyphenates a word
  • ps_include_file — Reads an external file with raw PostScript code
  • ps_lineto — Draws a line
  • ps_makespotcolor — Create spot color
  • ps_moveto — Sets current point
  • ps_new — Creates a new PostScript document object
  • ps_open_file — Opens a file for output
  • ps_open_image_file — Opens image from file
  • ps_open_image — Reads an image for later placement
  • ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document
  • ps_place_image — Places image on the page
  • ps_rect — Draws a rectangle
  • ps_restore — Restore previously save context
  • ps_rotate — Sets rotation factor
  • ps_save — Save current context
  • ps_scale — Sets scaling factor
  • ps_set_border_color — Sets color of border for annotations
  • ps_set_border_dash — Sets length of dashes for border of annotations
  • ps_set_border_style — Sets border style of annotations
  • ps_set_info — Sets information fields of document
  • ps_set_parameter — Sets certain parameters
  • ps_set_text_pos — Sets position for text output
  • ps_set_value — Sets certain values
  • ps_setcolor — Sets current color
  • ps_setdash — Sets appearance of a dashed line
  • ps_setflat — Sets flatness
  • ps_setfont — Sets font to use for following output
  • ps_setgray — Sets gray value
  • ps_setlinecap — Sets appearance of line ends
  • ps_setlinejoin — Sets how contected lines are joined
  • ps_setlinewidth — Sets width of a line
  • ps_setmiterlimit — Sets the miter limit
  • ps_setoverprintmode — Sets overprint mode
  • ps_setpolydash — Sets appearance of a dashed line
  • ps_shading_pattern — Creates a pattern based on a shading
  • ps_shading — Creates a shading for later use
  • ps_shfill — Fills an area with a shading
  • ps_show_boxed — Output text in a box
  • ps_show_xy2 — Output text at position
  • ps_show_xy — Output text at given position
  • ps_show2 — Output a text at current position
  • ps_show — Output text
  • ps_string_geometry — Gets geometry of a string
  • ps_stringwidth — Gets width of a string
  • ps_stroke — Draws the current path
  • ps_symbol_name — Gets name of a glyph
  • ps_symbol_width — Gets width of a glyph
  • ps_symbol — Output a glyph
  • ps_translate — Sets translation


Add bookmark to current page

  • « PS Funktionen
  • ps_add_launchlink »
  • PHP Manual
  • PS Funktionen
  • Add bookmark to current page

ps_add_bookmark

(PECL ps >= 1.1.0)

ps_add_bookmark — Add bookmark to current page

Beschreibung

ps_add_bookmark ( resource $psdoc , string $text , int $parent = 0 , int $open = 0 ) : int

Adds a bookmark for the current page. Bookmarks usually appear in PDF-Viewers left of the page in a hierarchical tree. Clicking on a bookmark will jump to the given page.

Diese Notiz wird nicht sichtbar sein, wenn das Dokument gedruckt oder betrachtet wird. Sie wird aber sichtbar sein, wenn das Dokument entweder mit Acrobat Distiller™ oder Ghostview zu PDF konvertiert wird.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text used for displaying the bookmark.

parent

A bookmark previously created by this function which is used as the parent of the new bookmark.

open

If open is unequal to zero the bookmark will be shown open by the pdf viewer.

Rückgabewerte

The returned value is a reference for the bookmark. It is only used if the bookmark shall be used as a parent. The value is greater zero if the function succeeds. In case of an error zero will be returned.

Siehe auch

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location


Adds link which launches file

  • « ps_add_bookmark
  • ps_add_locallink »
  • PHP Manual
  • PS Funktionen
  • Adds link which launches file

ps_add_launchlink

(PECL ps >= 1.1.0)

ps_add_launchlink — Adds link which launches file

Beschreibung

ps_add_launchlink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $filename ) : bool

Places a hyperlink at the given position pointing to a file program which is being started when clicked on. The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

Diese Notiz wird nicht sichtbar sein, wenn das Dokument gedruckt oder betrachtet wird. Sie wird aber sichtbar sein, wenn das Dokument entweder mit Acrobat Distiller™ oder Ghostview zu PDF konvertiert wird.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

filename

The path of the program to be started, when the link is clicked on.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location


Adds link to a page in the same document

  • « ps_add_launchlink
  • ps_add_note »
  • PHP Manual
  • PS Funktionen
  • Adds link to a page in the same document

ps_add_locallink

(PECL ps >= 1.1.0)

ps_add_locallink — Adds link to a page in the same document

Beschreibung

ps_add_locallink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , int $page , string $dest ) : bool

Places a hyperlink at the given position pointing to a page in the same document. Clicking on the link will jump to the given page. The first page in a document has number 1.

The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

Diese Notiz wird nicht sichtbar sein, wenn das Dokument gedruckt oder betrachtet wird. Sie wird aber sichtbar sein, wenn das Dokument entweder mit Acrobat Distiller™ oder Ghostview zu PDF konvertiert wird.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

page

The number of the page displayed when clicking on the link.

dest

The parameter dest determines how the document is being viewed. It can be fitpage, fitwidth, fitheight, or fitbbox.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location


Adds note to current page

  • « ps_add_locallink
  • ps_add_pdflink »
  • PHP Manual
  • PS Funktionen
  • Adds note to current page

ps_add_note

(PECL ps >= 1.1.0)

ps_add_note — Adds note to current page

Beschreibung

ps_add_note ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $contents , string $title , string $icon , int $open ) : bool

Adds a note at a certain position on the page. Notes are like little rectangular sheets with text on it, which can be placed anywhere on a page. They are shown either folded or unfolded. If folded, the specified icon is used as a placeholder.

Diese Notiz wird nicht sichtbar sein, wenn das Dokument gedruckt oder betrachtet wird. Sie wird aber sichtbar sein, wenn das Dokument entweder mit Acrobat Distiller™ oder Ghostview zu PDF konvertiert wird.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

contents

The text of the note.

title

The title of the note as displayed in the header of the note.

icon

The icon shown if the note is folded. This parameter can be set to comment, insert, note, paragraph, newparagraph, key, or help.

open

If open is unequal to zero the note will be shown unfolded after opening the document with a pdf viewer.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_weblink() - Adds link to a web location


Adds link to a page in a second pdf document

  • « ps_add_note
  • ps_add_weblink »
  • PHP Manual
  • PS Funktionen
  • Adds link to a page in a second pdf document

ps_add_pdflink

(PECL ps >= 1.1.0)

ps_add_pdflink — Adds link to a page in a second pdf document

Beschreibung

ps_add_pdflink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $filename , int $page , string $dest ) : bool

Places a hyperlink at the given position pointing to a second pdf document. Clicking on the link will branch to the document at the given page. The first page in a document has number 1.

The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

Diese Notiz wird nicht sichtbar sein, wenn das Dokument gedruckt oder betrachtet wird. Sie wird aber sichtbar sein, wenn das Dokument entweder mit Acrobat Distiller™ oder Ghostview zu PDF konvertiert wird.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

filename

The name of the pdf document to be opened when clicking on this link.

page

The page number of the destination pdf document

dest

The parameter dest determines how the document is being viewed. It can be fitpage, fitwidth, fitheight, or fitbbox.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_weblink() - Adds link to a web location


Adds link to a web location

  • « ps_add_pdflink
  • ps_arc »
  • PHP Manual
  • PS Funktionen
  • Adds link to a web location

ps_add_weblink

(PECL ps >= 1.1.0)

ps_add_weblink — Adds link to a web location

Beschreibung

ps_add_weblink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $url ) : bool

Places a hyperlink at the given position pointing to a web page. The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

Diese Notiz wird nicht sichtbar sein, wenn das Dokument gedruckt oder betrachtet wird. Sie wird aber sichtbar sein, wenn das Dokument entweder mit Acrobat Distiller™ oder Ghostview zu PDF konvertiert wird.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

url

The url of the hyperlink to be opened when clicking on this link, e.g. http://www.php.net.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_pdflink() - Adds link to a page in a second pdf document


Draws an arc counterclockwise

  • « ps_add_weblink
  • ps_arcn »
  • PHP Manual
  • PS Funktionen
  • Draws an arc counterclockwise

ps_arc

(PECL ps >= 1.1.0)

ps_arc — Draws an arc counterclockwise

Beschreibung

ps_arc ( resource $psdoc , float $x , float $y , float $radius , float $alpha , float $beta ) : bool

Draws a portion of a circle with at middle point at (x, y). The arc starts at an angle of alpha and ends at an angle of beta. It is drawn counterclockwise (use ps_arcn() to draw clockwise). The subpath added to the current path starts on the arc at angle alpha and ends on the arc at angle beta.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

alpha

The start angle given in degrees.

beta

The end angle given in degrees.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_arcn() - Draws an arc clockwise


Draws an arc clockwise

  • « ps_arc
  • ps_begin_page »
  • PHP Manual
  • PS Funktionen
  • Draws an arc clockwise

ps_arcn

(PECL ps >= 1.1.0)

ps_arcn — Draws an arc clockwise

Beschreibung

ps_arcn ( resource $psdoc , float $x , float $y , float $radius , float $alpha , float $beta ) : bool

Draws a portion of a circle with at middle point at (x, y). The arc starts at an angle of alpha and ends at an angle of beta. It is drawn clockwise (use ps_arc() to draw counterclockwise). The subpath added to the current path starts on the arc at angle beta and ends on the arc at angle alpha.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

alpha

The starting angle given in degrees.

beta

The end angle given in degrees.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_arc() - Draws an arc counterclockwise


Start a new page

  • « ps_arcn
  • ps_begin_pattern »
  • PHP Manual
  • PS Funktionen
  • Start a new page

ps_begin_page

(PECL ps >= 1.1.0)

ps_begin_page — Start a new page

Beschreibung

ps_begin_page ( resource $psdoc , float $width , float $height ) : bool

Starts a new page. Although the parameters width and height imply a different page size for each page, this is not possible in PostScript. The first call of ps_begin_page() will set the page size for the whole document. Consecutive calls will have no effect, except for creating a new page. The situation is different if you intent to convert the PostScript document into PDF. This function places pdfmarks into the document which can set the size for each page indiviually. The resulting PDF document will have different page sizes.

Though PostScript does not know different page sizes, pslib places a bounding box for each page into the document. This size is evaluated by some PostScript viewers and will have precedence over the BoundingBox in the Header of the document. This can lead to unexpected results when you set a BoundingBox whose lower left corner is not (0, 0), because the bounding box of the page will always have a lower left corner (0, 0) and overwrites the global setting.

Each page is encapsulated into save/restore. This means, that most of the settings made on one page will not be retained on the next page.

If there is up to the first call of ps_begin_page() no call of ps_findfont(), then the header of the PostScript document will be output and the bounding box will be set to the size of the first page. The lower left corner of the bounding box is set to (0, 0). If ps_findfont() was called before, then the header has been output already, and the document will not have a valid bounding box. In order to prevent this, one should call ps_set_info() to set the info field BoundingBox and possibly Orientation before any ps_findfont() or ps_begin_page() calls.

Hinweis:

Up to version 0.2.6 of pslib, this function will always overwrite the BoundingBox and Orientation, if it has been set before with ps_set_info() and ps_findfont() has not been called before.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the page in pixel, e.g. 596 for A4 format.

height

The height of the page in pixel, e.g. 842 for A4 format.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_end_page() - End a page
  • ps_findfont() - Loads a font
  • ps_set_info() - Sets information fields of document


Start a new pattern

  • « ps_begin_page
  • ps_begin_template »
  • PHP Manual
  • PS Funktionen
  • Start a new pattern

ps_begin_pattern

(PECL ps >= 1.2.0)

ps_begin_pattern — Start a new pattern

Beschreibung

ps_begin_pattern ( resource $psdoc , float $width , float $height , float $xstep , float $ystep , int $painttype ) : int|false

Starts a new pattern. A pattern is like a page containing e.g. a drawing which can be used for filling areas. It is used like a color by calling ps_setcolor() and setting the color space to pattern.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the pattern in pixel.

height

The height of the pattern in pixel.

x-step

The distance in pixel of placements of the pattern in horizontal direction.

y-step

The distance in pixel of placements of the pattern in vertical direction.

painttype

Must be 1 or 2.

Rückgabewerte

The identifier of the pattern Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Creating and using a pattern

<?php
$ps = ps_new();

if (!ps_open_file($ps, "pattern.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "pattern.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Pattern example");

$pspattern = ps_begin_pattern($ps, 10.0, 10.0, 10.0, 10.0, 1);
ps_setlinewidth($ps, 0.2);
ps_setcolor($ps, "stroke", "rgb", 0.0, 0.0, 1.0, 0.0);
ps_moveto($ps, 0, 0);
ps_lineto($ps, 7, 7);
ps_stroke($ps);
ps_moveto($ps, 0, 7);
ps_lineto($ps, 7, 0);
ps_stroke($ps);
ps_end_pattern($ps);

ps_begin_page($ps, 596, 842);
ps_setcolor($ps, "both", "pattern", $pspattern, 0.0, 0.0, 0.0);
ps_rect($ps, 50, 400, 200, 200);
ps_fill($ps);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

Siehe auch

  • ps_end_pattern() - End a pattern
  • ps_setcolor() - Sets current color
  • ps_shading_pattern() - Creates a pattern based on a shading


Start a new template

  • « ps_begin_pattern
  • ps_circle »
  • PHP Manual
  • PS Funktionen
  • Start a new template

ps_begin_template

(PECL ps >= 1.2.0)

ps_begin_template — Start a new template

Beschreibung

ps_begin_template ( resource $psdoc , float $width , float $height ) : int

Starts a new template. A template is called a form in the postscript language. It is created similar to a pattern but used like an image. Templates are often used for drawings which are placed several times through out the document, e.g. like a company logo. All drawing functions may be used within a template. The template will not be drawn until it is placed by ps_place_image().

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the template in pixel.

height

The height of the template in pixel.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Creating and using a template

<?php
$ps = ps_new();

if (!ps_open_file($ps, "template.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "template.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Template example");

$pstemplate = ps_begin_template($ps, 30.0, 30.0);
ps_moveto($ps, 0, 0);
ps_lineto($ps, 30, 30);
ps_moveto($ps, 0, 30);
ps_lineto($ps, 30, 0);
ps_stroke($ps);
ps_end_template($ps);

ps_begin_page($ps, 596, 842);
ps_place_image($ps, $pstemplate, 20.0, 20.0, 1.0);
ps_place_image($ps, $pstemplate, 50.0, 30.0, 0.5);
ps_place_image($ps, $pstemplate, 70.0, 70.0, 0.6);
ps_place_image($ps, $pstemplate, 30.0, 50.0, 1.3);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

Siehe auch

  • ps_end_template() - End a template


Draws a circle

  • « ps_begin_template
  • ps_clip »
  • PHP Manual
  • PS Funktionen
  • Draws a circle

ps_circle

(PECL ps >= 1.1.0)

ps_circle — Draws a circle

Beschreibung

ps_circle ( resource $psdoc , float $x , float $y , float $radius ) : bool

Draws a circle with its middle point at (x, y). The circle starts and ends at position (x+radius, y). If this function is called outside a path it will start a new path. If it is called within a path it will add the circle as a subpath. If the last drawing operation does not end in point (x+radius, y) then there will be a gap in the path.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_arc() - Draws an arc counterclockwise
  • ps_arcn() - Draws an arc clockwise


Clips drawing to current path

  • « ps_circle
  • ps_close_image »
  • PHP Manual
  • PS Funktionen
  • Clips drawing to current path

ps_clip

(PECL ps >= 1.1.0)

ps_clip — Clips drawing to current path

Beschreibung

ps_clip ( resource $psdoc ) : bool

Takes the current path and uses it to define the border of a clipping area. Everything drawn outside of that area will not be visible.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_closepath() - Closes path


Closes image and frees memory

  • « ps_clip
  • ps_close »
  • PHP Manual
  • PS Funktionen
  • Closes image and frees memory

ps_close_image

(PECL ps >= 1.1.0)

ps_close_image — Closes image and frees memory

Beschreibung

ps_close_image ( resource $psdoc , int $imageid ) : void|false

Closes an image and frees its resources. Once an image is closed it cannot be used anymore.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

imageid

Resource identifier of the image as returned by ps_open_image() or ps_open_image_file().

Rückgabewerte

Returns null on successIm Fehlerfall wird false zurückgegeben..

Siehe auch

  • ps_open_image() - Reads an image for later placement
  • ps_open_image_file() - Opens image from file


Closes a PostScript document

  • « ps_close_image
  • ps_closepath_stroke »
  • PHP Manual
  • PS Funktionen
  • Closes a PostScript document

ps_close

(PECL ps >= 1.1.0)

ps_close — Closes a PostScript document

Beschreibung

ps_close ( resource $psdoc ) : bool

Closes the PostScript document.

This function writes the trailer of the PostScript document. It also writes the bookmark tree. ps_close() does not free any resources, which is done by ps_delete().

This function is also called by ps_delete() if it has not been called before.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_open_file() - Opens a file for output
  • ps_delete() - Deletes all resources of a PostScript document


Closes and strokes path

  • « ps_close
  • ps_closepath »
  • PHP Manual
  • PS Funktionen
  • Closes and strokes path

ps_closepath_stroke

(PECL ps >= 1.1.0)

ps_closepath_stroke — Closes and strokes path

Beschreibung

ps_closepath_stroke ( resource $psdoc ) : bool

Connects the last point with first point of a path and draws the resulting closed line.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_closepath() - Closes path


Closes path

  • « ps_closepath_stroke
  • ps_continue_text »
  • PHP Manual
  • PS Funktionen
  • Closes path

ps_closepath

(PECL ps >= 1.1.0)

ps_closepath — Closes path

Beschreibung

ps_closepath ( resource $psdoc ) : bool

Connects the last point with the first point of a path. The resulting path can be used for stroking, filling, clipping, etc..

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_clip() - Clips drawing to current path
  • ps_closepath_stroke() - Closes and strokes path


Continue text in next line

  • « ps_closepath
  • ps_curveto »
  • PHP Manual
  • PS Funktionen
  • Continue text in next line

ps_continue_text

(PECL ps >= 1.1.0)

ps_continue_text — Continue text in next line

Beschreibung

ps_continue_text ( resource $psdoc , string $text ) : bool

Output a text one line below the last line. The line spacing is taken from the value "leading" which must be set with ps_set_value(). The actual position of the text is determined by the values "textx" and "texty" which can be requested with ps_get_value()

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to output.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_show() - Output text
  • ps_show_xy() - Output text at given position
  • ps_show_boxed() - Output text in a box


Draws a curve

  • « ps_continue_text
  • ps_delete »
  • PHP Manual
  • PS Funktionen
  • Draws a curve

ps_curveto

(PECL ps >= 1.1.0)

ps_curveto — Draws a curve

Beschreibung

ps_curveto ( resource $psdoc , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 ) : bool

Add a section of a cubic Bézier curve described by the three given control points to the current path.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

x1

x-coordinate of first control point.

y1

y-coordinate of first control point.

x2

x-coordinate of second control point.

y2

y-coordinate of second control point.

x3

x-coordinate of third control point.

y3

y-coordinate of third control point.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_lineto() - Draws a line


Deletes all resources of a PostScript document

  • « ps_curveto
  • ps_end_page »
  • PHP Manual
  • PS Funktionen
  • Deletes all resources of a PostScript document

ps_delete

(PECL ps >= 1.1.0)

ps_delete — Deletes all resources of a PostScript document

Beschreibung

ps_delete ( resource $psdoc ) : bool

Mainly frees memory used by the document. Also closes a file, if it was not closed before with ps_close(). You should in any case close the file with ps_close() before, because ps_close() not just closes the file but also outputs a trailor containing PostScript comments like the number of pages in the document and adding the bookmark hierarchy.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_close() - Closes a PostScript document


End a page

  • « ps_delete
  • ps_end_pattern »
  • PHP Manual
  • PS Funktionen
  • End a page

ps_end_page

(PECL ps >= 1.1.0)

ps_end_page — End a page

Beschreibung

ps_end_page ( resource $psdoc ) : bool

Ends a page which was started with ps_begin_page(). Ending a page will leave the current drawing context, which e.g. requires to reload fonts if they were loading within the page, and to set many other drawing parameters like the line width, or color.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_begin_page() - Start a new page


End a pattern

  • « ps_end_page
  • ps_end_template »
  • PHP Manual
  • PS Funktionen
  • End a pattern

ps_end_pattern

(PECL ps >= 1.2.0)

ps_end_pattern — End a pattern

Beschreibung

ps_end_pattern ( resource $psdoc ) : bool

Ends a pattern which was started with ps_begin_pattern(). Once a pattern has been ended, it can be used like a color to fill areas.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_begin_pattern() - Start a new pattern


End a template

  • « ps_end_pattern
  • ps_fill_stroke »
  • PHP Manual
  • PS Funktionen
  • End a template

ps_end_template

(PECL ps >= 1.2.0)

ps_end_template — End a template

Beschreibung

ps_end_template ( resource $psdoc ) : bool

Ends a template which was started with ps_begin_template(). Once a template has been ended, it can be used like an image.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_begin_template() - Start a new template


Fills and strokes the current path

  • « ps_end_template
  • ps_fill »
  • PHP Manual
  • PS Funktionen
  • Fills and strokes the current path

ps_fill_stroke

(PECL ps >= 1.1.0)

ps_fill_stroke — Fills and strokes the current path

Beschreibung

ps_fill_stroke ( resource $psdoc ) : bool

Fills and draws the path constructed with previously called drawing functions like ps_lineto().

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_fill() - Fills the current path
  • ps_stroke() - Draws the current path


Fills the current path

  • « ps_fill_stroke
  • ps_findfont »
  • PHP Manual
  • PS Funktionen
  • Fills the current path

ps_fill

(PECL ps >= 1.1.0)

ps_fill — Fills the current path

Beschreibung

ps_fill ( resource $psdoc ) : bool

Fills the path constructed with previously called drawing functions like ps_lineto().

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_fill_stroke() - Fills and strokes the current path
  • ps_stroke() - Draws the current path


Loads a font

  • « ps_fill
  • ps_get_buffer »
  • PHP Manual
  • PS Funktionen
  • Loads a font

ps_findfont

(PECL ps >= 1.1.0)

ps_findfont — Loads a font

Beschreibung

ps_findfont ( resource $psdoc , string $fontname , string $encoding , bool $embed = false ) : int

Loads a font for later use. Before text is output with a loaded font it must be set with ps_setfont(). This function needs the adobe font metric file in order to calculate the space used up by the characters. A font which is loaded within a page will only be available on that page. Fonts which are to be used in the complete document have to be loaded before the first call of ps_begin_page(). Calling ps_findfont() between pages will make that font available for all following pages.

The name of the afm file must be fontname.afm. If the font shall be embedded the file fontname.pfb containing the font outline must be present as well.

Calling ps_findfont() before the first page requires to output the postscript header which includes the BoundingBox for the whole document. Usually the BoundingBox is set with the first call of ps_begin_page() which now comes after ps_findfont(). Consequently the BoundingBox has not been set and a warning will be issued when ps_findfont() is called. In order to prevent this situation, one should call ps_set_parameter() to set the BoundingBox before ps_findfont() is called.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

fontname

The name of the font.

encoding

ps_findfont() will try to load the file passed in the parameter encoding. Encoding files are of the same syntax as those used by dvips(1). They contain a font encoding vector (which is currently not used but must be present) and a list of extra ligatures to extend the list of ligatures derived from the afm file.

encoding can be null or the empty string if the default encoding (TeXBase1) shall be used.

If the encoding is set to builtin then there will be no reencoding and the font specific encoding will be used. This is very useful with symbol fonts.

embed

If set to a value >0 the font will be embedded into the document. This requires the font outline (.pfb file) to be present.

Rückgabewerte

Returns the identifier of the font or zero in case of an error. The identifier is a positive number.

Siehe auch

  • ps_begin_page() - Start a new page
  • ps_setfont() - Sets font to use for following output


Fetches the full buffer containig the generated PS data

  • « ps_findfont
  • ps_get_parameter »
  • PHP Manual
  • PS Funktionen
  • Fetches the full buffer containig the generated PS data

ps_get_buffer

(PECL ps >= 1.1.0)

ps_get_buffer — Fetches the full buffer containig the generated PS data

Beschreibung

ps_get_buffer ( resource $psdoc ) : string

This function is not implemented yet. It will always return an empty string. The idea for a later implementation is to write the contents of the postscript file into an internal buffer if in memory creation is requested, and retrieve the buffer content with this function. Currently, documents created in memory are send to the browser without buffering.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Siehe auch

  • ps_open_file() - Opens a file for output


Gets certain parameters

  • « ps_get_buffer
  • ps_get_value »
  • PHP Manual
  • PS Funktionen
  • Gets certain parameters

ps_get_parameter

(PECL ps >= 1.1.0)

ps_get_parameter — Gets certain parameters

Beschreibung

ps_get_parameter ( resource $psdoc , string $name , float $modifier = ? ) : string|false

Gets several parameters which were directly set by ps_set_parameter() or indirectly by one of the other functions. Parameters are by definition string values. This function cannot be used to retrieve resources which were also set by ps_set_parameter().

The parameter name can have the following values.

fontname

The name of the currently active font or the font whose identifier is passed in parameter modifier.

fontencoding

The encoding of the currently active font.

dottedversion

The version of the underlying pslib library in the format <major>.<minor>.<subminor>

scope

The current drawing scope. Can be object, document, null, page, pattern, path, template, prolog, font, glyph.

ligaturedisolvechar

The character which dissolves a ligature. If your are using a font which contains the ligature `ff' and `|' is the char to dissolve the ligature, then `f|f' will result in two `f' instead of the ligature `ff'.

imageencoding

The encoding used for encoding images. Can be either hex or 85. hex encoding uses two bytes in the postscript file each byte in the image. 85 stand for Ascii85 encoding.

linenumbermode

Set to paragraph if lines are numbered within a paragraph or box if they are numbered within the surrounding box.

linebreak

Only used if text is output with ps_show_boxed(). If set to true a carriage return will add a line break.

parbreak

Only used if text is output with ps_show_boxed(). If set to true a carriage return will start a new paragraph.

hyphenation

Only used if text is output with ps_show_boxed(). If set to true the paragraph will be hyphenated if a hypen dictionary is set and exists.

hyphendict

Filename of the dictionary used for hyphenation pattern.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the parameter.

modifier

An identifier needed if a parameter of a resource is requested, e.g. the size of an image. In such a case the resource id is passed.

Rückgabewerte

Returns the value of the parameter Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • ps_set_parameter() - Sets certain parameters


Gets certain values

  • « ps_get_parameter
  • ps_hyphenate »
  • PHP Manual
  • PS Funktionen
  • Gets certain values

ps_get_value

(PECL ps >= 1.1.0)

ps_get_value — Gets certain values

Beschreibung

ps_get_value ( resource $psdoc , string $name , float $modifier = ? ) : float

Gets several values which were set by ps_set_value(). Values are by definition float values.

The parameter name can have the following values.

fontsize

The size of the currently active font or the font whose identifier is passed in parameter modifier.

font

The currently active font itself.

imagewidth

The width of the image whose id is passed in the parameter modifier.

imageheight

The height of the image whose id is passed in the parameter modifier.

capheight

The height of a capital M in the currently active font or the font whose identifier is passed in parameter modifier.

ascender

The ascender of the currently active font or the font whose identifier is passed in parameter modifier.

descender

The descender of the currently active font or the font whose identifier is passed in parameter modifier.

italicangle

The italicangle of the currently active font or the font whose identifier is passed in parameter modifier.

underlineposition

The underlineposition of the currently active font or the font whose identifier is passed in parameter modifier.

underlinethickness

The underlinethickness of the currently active font or the font whose identifier is passed in parameter modifier.

textx

The current x-position for text output.

texty

The current y-position for text output.

textrendering

The current mode for text rendering.

textrise

The space by which text is risen above the base line.

leading

The distance between text lines in points.

wordspacing

The space between words as a multiple of the width of a space char.

charspacing

The space between chars. If charspacing is != 0.0 ligatures will always be dissolved.

hyphenminchars

Minimum number of chars hyphenated at the end of a word.

parindent

Indention of the first n line in a paragraph.

numindentlines

Number of line in a paragraph to indent if parindent != 0.0.

parskip

Distance between paragraphs.

linenumberspace

Overall space in front of each line for the line number.

linenumbersep

Space between the line and the line number.

major

The major version number of pslib.

minor

The minor version number of pslib.

subminor, revision

The subminor version number of pslib.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the value.

modifier

The parameter modifier specifies the resource for which the value is to be retrieved. This can be the id of a font or an image.

Rückgabewerte

Returns the value of the parameter or false.

Siehe auch

  • ps_set_value() - Sets certain values


Hyphenates a word

  • « ps_get_value
  • ps_include_file »
  • PHP Manual
  • PS Funktionen
  • Hyphenates a word

ps_hyphenate

(PECL ps >= 1.1.1)

ps_hyphenate — Hyphenates a word

Beschreibung

ps_hyphenate ( resource $psdoc , string $text ) : array|false

Hyphenates the passed word. ps_hyphenate() evaluates the value hyphenminchars (set by ps_set_value()) and the parameter hyphendict (set by ps_set_parameter()). hyphendict must be set before calling this function.

This function requires the locale category LC_CTYPE to be set properly. This is done when the extension is initialized by using the environment variables. On Unix systems read the man page of locale for more information.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

text should not contain any non alpha characters. Possible positions for breaks are returned in an array of interger numbers. Each number is the position of the char in text after which a hyphenation can take place.

Rückgabewerte

An array of integers indicating the position of possible breaks in the text Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Hyphennate a text

<?php
$word = "Koordinatensystem";
$psdoc = ps_new();
ps_set_parameter($psdoc, "hyphendict", "hyph_de.dic");
$hyphens = ps_hyphenate($psdoc, $word);
for($i=0; $i<strlen($word); $i++) {
  echo $word[$i];
  if(in_array($i, $hyphens))
    echo "-";
}
ps_delete($psdoc);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ko-ordi-na-ten-sys-tem

Siehe auch

  • ps_show_boxed() - Output text in a box
  • locale(1)


Reads an external file with raw PostScript code

  • « ps_hyphenate
  • ps_lineto »
  • PHP Manual
  • PS Funktionen
  • Reads an external file with raw PostScript code

ps_include_file

(PECL ps >= 1.3.4)

ps_include_file — Reads an external file with raw PostScript code

Beschreibung

ps_include_file ( resource $psdoc , string $file ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

file

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Draws a line

  • « ps_include_file
  • ps_makespotcolor »
  • PHP Manual
  • PS Funktionen
  • Draws a line

ps_lineto

(PECL ps >= 1.1.0)

ps_lineto — Draws a line

Beschreibung

ps_lineto ( resource $psdoc , float $x , float $y ) : bool

Adds a straight line from the current point to the given coordinates to the current path. Use ps_moveto() to set the starting point of the line.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the end point of the line.

y

y-coordinate of the end point of the line.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Drawing a rectangle

<?php
$ps = ps_new();
if (!ps_open_file($ps, "rectangle.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Lineto example");

ps_begin_page($ps, 596, 842);
ps_moveto($ps, 100, 100);
ps_lineto($ps, 100, 200);
ps_lineto($ps, 200, 200);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 100, 100);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

Siehe auch

  • ps_moveto() - Sets current point


Create spot color

  • « ps_lineto
  • ps_moveto »
  • PHP Manual
  • PS Funktionen
  • Create spot color

ps_makespotcolor

(PECL ps >= 1.1.0)

ps_makespotcolor — Create spot color

Beschreibung

ps_makespotcolor ( resource $psdoc , string $name , int $reserved = 0 ) : int

Creates a spot color from the current fill color. The fill color must be defined in rgb, cmyk or gray colorspace. The spot color name can be an arbitrary name. A spot color can be set as any color with ps_setcolor(). When the document is not printed but displayed by an postscript viewer the given color in the specified color space is use.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the spot color, e.g. Pantone 5565.

Rückgabewerte

The id of the new spot color or 0 in case of an error.

Beispiele

Beispiel #1 Creating and using a spot color

<?php
$ps = ps_new();
if (!ps_open_file($ps, "spotcolor.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "spotcolor.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Spot color example");

ps_begin_page($ps, 596, 842);
ps_setcolor($ps, "fill", "cmyk", 0.37, 0.0, 0.34, 0.34);
$spotcolor = ps_makespotcolor($ps, "PANTONE 5565 C", 0);
ps_setcolor($ps, "fill", "spot", $spotcolor, 0.5, 0.0, 0.0);
ps_moveto($ps, 100, 100);
ps_lineto($ps, 100, 200);
ps_lineto($ps, 200, 200);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 100, 100);
ps_fill($ps);
ps_end_page($ps);

ps_delete($ps);
?>

This example creates the spot color "PANTONE 5565 C" which is a darker green (olive) and fills a rectangle with 50% intensity.

Siehe auch

  • ps_setcolor() - Sets current color


Sets current point

  • « ps_makespotcolor
  • ps_new »
  • PHP Manual
  • PS Funktionen
  • Sets current point

ps_moveto

(PECL ps >= 1.1.0)

ps_moveto — Sets current point

Beschreibung

ps_moveto ( resource $psdoc , float $x , float $y ) : bool

Sets the current point to new coordinates. If this is the first call of ps_moveto() after a previous path has been ended then it will start a new path. If this function is called in the middle of a path it will just set the current point and start a subpath.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the point to move to.

y

y-coordinate of the point to move to.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_lineto() - Draws a line


Creates a new PostScript document object

  • « ps_moveto
  • ps_open_file »
  • PHP Manual
  • PS Funktionen
  • Creates a new PostScript document object

ps_new

(PECL ps >= 1.1.0)

ps_new — Creates a new PostScript document object

Beschreibung

ps_new ( ) : resource|false

Creates a new document instance. It does not create the file on disk or in memory, it just sets up everything. ps_new() is usually followed by a call of ps_open_file() to actually create the postscript document.

Rückgabewerte

Resource of PostScript documentIm Fehlerfall wird false zurückgegeben.. The return value is passed to all other functions as the first argument.

Siehe auch

  • ps_delete() - Deletes all resources of a PostScript document


Opens a file for output

  • « ps_new
  • ps_open_image_file »
  • PHP Manual
  • PS Funktionen
  • Opens a file for output

ps_open_file

(PECL ps >= 1.1.0)

ps_open_file — Opens a file for output

Beschreibung

ps_open_file ( resource $psdoc , string $filename = ? ) : bool

Creates a new file on disk and writes the PostScript document into it. The file will be closed when ps_close() is called.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

filename

The name of the postscript file. If filename is not passed the document will be created in memory and all output will go straight to the browser.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_close() - Closes a PostScript document


Opens image from file

  • « ps_open_file
  • ps_open_image »
  • PHP Manual
  • PS Funktionen
  • Opens image from file

ps_open_image_file

(PECL ps >= 1.1.0)

ps_open_image_file — Opens image from file

Beschreibung

ps_open_image_file ( resource $psdoc , string $type , string $filename , string $stringparam = ? , int $intparam = 0 ) : int

Loads an image for later use.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of the image. Possible values are png, jpeg, or eps.

filename

The name of the file containing the image data.

stringparam

Not used.

intparam

Not used.

Rückgabewerte

Returns identifier of image or zero in case of an error. The identifier is a positive number greater than 0.

Siehe auch

  • ps_open_image() - Reads an image for later placement
  • ps_place_image() - Places image on the page
  • ps_close_image() - Closes image and frees memory


Reads an image for later placement

  • « ps_open_image_file
  • ps_open_memory_image »
  • PHP Manual
  • PS Funktionen
  • Reads an image for later placement

ps_open_image

(PECL ps >= 1.1.0)

ps_open_image — Reads an image for later placement

Beschreibung

ps_open_image ( resource $psdoc , string $type , string $source , string $data , int $lenght , int $width , int $height , int $components , int $bpc , string $params ) : int

Reads an image which is already available in memory. The parameter source is currently not evaluated and assumed to be memory. The image data is a sequence of pixels starting in th upper left corner and ending in the lower right corner. Each pixel consists of components color components, and each component has bpc bits.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of the image. Possible values are png, jpeg, or eps.

source

Not used.

data

The image data.

length

The length of the image data.

width

The width of the image.

height

The height of the image.

components

The number of components for each pixel. This can be 1 (gray scale images), 3 (rgb images), or 4 (cmyk, rgba images).

bpc

Number of bits per component (quite often 8).

params

Rückgabewerte

Returns identifier of image or zero in case of an error. The identifier is a positive number greater than 0.

Siehe auch

  • ps_open_image_file() - Opens image from file
  • ps_place_image() - Places image on the page
  • ps_close_image() - Closes image and frees memory


Takes an GD image and returns an image for placement in a PS document

  • « ps_open_image
  • ps_place_image »
  • PHP Manual
  • PS Funktionen
  • Takes an GD image and returns an image for placement in a PS document

ps_open_memory_image

(PECL ps >= 1.1.0)

ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document

Beschreibung

ps_open_memory_image ( resource $psdoc , int $gd ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

gd


Places image on the page

  • « ps_open_memory_image
  • ps_rect »
  • PHP Manual
  • PS Funktionen
  • Places image on the page

ps_place_image

(PECL ps >= 1.1.0)

ps_place_image — Places image on the page

Beschreibung

ps_place_image ( resource $psdoc , int $imageid , float $x , float $y , float $scale ) : bool

Places a formerly loaded image on the page. The image can be scaled. If the image shall be rotated as well, you will have to rotate the coordinate system before with ps_rotate().

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

imageid

The resource identifier of the image as returned by ps_open_image() or ps_open_image_file().

x

x-coordinate of the lower left corner of the image.

y

y-coordinate of the lower left corner of the image.

scale

The scaling factor for the image. A scale of 1.0 will result in a resolution of 72 dpi, because each pixel is equivalent to 1 point.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_open_image() - Reads an image for later placement
  • ps_open_image_file() - Opens image from file


Draws a rectangle

  • « ps_place_image
  • ps_restore »
  • PHP Manual
  • PS Funktionen
  • Draws a rectangle

ps_rect

(PECL ps >= 1.1.0)

ps_rect — Draws a rectangle

Beschreibung

ps_rect ( resource $psdoc , float $x , float $y , float $width , float $height ) : bool

Draws a rectangle with its lower left corner at (x, y). The rectangle starts and ends in its lower left corner. If this function is called outside a path it will start a new path. If it is called within a path it will add the rectangle as a subpath. If the last drawing operation does not end in the lower left corner then there will be a gap in the path.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the lower left corner of the rectangle.

y

y-coordinate of the lower left corner of the rectangle.

width

The width of the image.

height

The height of the image.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_arc() - Draws an arc counterclockwise
  • ps_cirle()
  • ps_lineto() - Draws a line


Restore previously save context

  • « ps_rect
  • ps_rotate »
  • PHP Manual
  • PS Funktionen
  • Restore previously save context

ps_restore

(PECL ps >= 1.1.0)

ps_restore — Restore previously save context

Beschreibung

ps_restore ( resource $psdoc ) : bool

Restores a previously saved graphics context. Any call of ps_save() must be accompanied by a call to ps_restore(). All coordinate transformations, line style settings, color settings, etc. are being restored to the state before the call of ps_save().

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_save() - Save current context


Sets rotation factor

  • « ps_restore
  • ps_save »
  • PHP Manual
  • PS Funktionen
  • Sets rotation factor

ps_rotate

(PECL ps >= 1.1.0)

ps_rotate — Sets rotation factor

Beschreibung

ps_rotate ( resource $psdoc , float $rot ) : bool

Sets the rotation of the coordinate system.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

rot

Angle of rotation in degree.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Rotation of the coordinate system

<?php
function rectangle($ps) {
    ps_moveto($ps, 0, 0);
    ps_lineto($ps, 0, 50);
    ps_lineto($ps, 50, 50);
    ps_lineto($ps, 50, 0);
    ps_lineto($ps, 0, 0);
    ps_stroke($ps);
}

$ps = ps_new();
if (!ps_open_file($ps, "rotation.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "rotation.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Rotation example");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 100, 100);
ps_rotate($ps, 45);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text without rotation");
ps_end_page($ps);

ps_delete($ps);
?>

The above example illustrates a very common way of rotating a graphic (in this case just a rectangle) by simply rotating the coordinate system. Since the graphic's coordinate system assumes (0,0) to be the origin, the page coordinate system is also translated to place the graphics not on the edge of the page. Pay attention to the order of ps_translate() and ps_rotate(). In the above case the rectancle is rotated around the point (100, 100) in the untranslated coordinate system. Switching the two statements has a completely different result.

In order to output the following text at the original position, all modifications of the coordinate system are encapsulated in ps_save() and ps_restore().

Siehe auch

  • ps_scale() - Sets scaling factor
  • ps_translate() - Sets translation


Save current context

  • « ps_rotate
  • ps_scale »
  • PHP Manual
  • PS Funktionen
  • Save current context

ps_save

(PECL ps >= 1.1.0)

ps_save — Save current context

Beschreibung

ps_save ( resource $psdoc ) : bool

Saves the current graphics context, containing colors, translation and rotation settings and some more. A saved context can be restored with ps_restore().

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_restore() - Restore previously save context


Sets scaling factor

  • « ps_save
  • ps_set_border_color »
  • PHP Manual
  • PS Funktionen
  • Sets scaling factor

ps_scale

(PECL ps >= 1.1.0)

ps_scale — Sets scaling factor

Beschreibung

ps_scale ( resource $psdoc , float $x , float $y ) : bool

Sets horizontal and vertical scaling of the coordinate system.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

Scaling factor in horizontal direction.

y

Scaling factor in vertical direction.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_rotate() - Sets rotation factor
  • ps_translate() - Sets translation


Sets color of border for annotations

  • « ps_scale
  • ps_set_border_dash »
  • PHP Manual
  • PS Funktionen
  • Sets color of border for annotations

ps_set_border_color

(PECL ps >= 1.1.0)

ps_set_border_color — Sets color of border for annotations

Beschreibung

ps_set_border_color ( resource $psdoc , float $red , float $green , float $blue ) : bool

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the color of the rectangle's border line.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

red

The red component of the border color.

green

The green component of the border color.

blue

The blue component of the border color.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_set_border_dash() - Sets length of dashes for border of annotations
  • ps_set_border_style() - Sets border style of annotations


Sets length of dashes for border of annotations

  • « ps_set_border_color
  • ps_set_border_style »
  • PHP Manual
  • PS Funktionen
  • Sets length of dashes for border of annotations

ps_set_border_dash

(PECL ps >= 1.1.0)

ps_set_border_dash — Sets length of dashes for border of annotations

Beschreibung

ps_set_border_dash ( resource $psdoc , float $black , float $white ) : bool

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the length of the black and white portion of a dashed border line.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

black

The length of the dash.

white

The length of the gap between dashes.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_set_border_color() - Sets color of border for annotations
  • ps_set_border_style() - Sets border style of annotations


Sets border style of annotations

  • « ps_set_border_dash
  • ps_set_info »
  • PHP Manual
  • PS Funktionen
  • Sets border style of annotations

ps_set_border_style

(PECL ps >= 1.1.0)

ps_set_border_style — Sets border style of annotations

Beschreibung

ps_set_border_style ( resource $psdoc , string $style , float $width ) : bool

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the appearance and width of the border line.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

style

style can be solid or dashed.

width

The line width of the border.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_set_border_color() - Sets color of border for annotations
  • ps_set_border_dash() - Sets length of dashes for border of annotations


Sets information fields of document

  • « ps_set_border_style
  • ps_set_parameter »
  • PHP Manual
  • PS Funktionen
  • Sets information fields of document

ps_set_info

(PECL ps >= 1.1.0)

ps_set_info — Sets information fields of document

Beschreibung

ps_set_info ( resource $p , string $key , string $val ) : bool

Sets certain information fields of the document. This fields will be shown as a comment in the header of the PostScript file. If the document is converted to pdf this fields will also be used for the document information.

The BoundingBox is usually set to the value given to the first page. This only works if ps_findfont() has not been called before. In such cases the BoundingBox would be left unset unless you set it explicitly with this function.

This function will have no effect anymore when the header of the postscript file has been already written. It must be called before the first page or the first call of ps_findfont().

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

key

The name of the information field to set. The values which can be set are Keywords, Subject, Title, Creator, Author, BoundingBox, and Orientation. Be aware that some of them has a meaning to PostScript viewers.

value

The value of the information field. The field Orientation can be set to either Portrait or Landscape. The BoundingBox is a string consisting of four numbers. The first two numbers are the coordinates of the lower left corner of the page. The last two numbers are the coordinates of the upper right corner.

Hinweis:

Up to version 0.2.6 of pslib, the BoundingBox and Orientation will be overwritten by ps_begin_page(), unless ps_findfont() has been called before.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_findfont() - Loads a font
  • ps_begin_page() - Start a new page


Sets certain parameters

  • « ps_set_info
  • ps_set_text_pos »
  • PHP Manual
  • PS Funktionen
  • Sets certain parameters

ps_set_parameter

(PECL ps >= 1.1.0)

ps_set_parameter — Sets certain parameters

Beschreibung

ps_set_parameter ( resource $psdoc , string $name , string $value ) : bool

Sets several parameters which are used by many functions. Parameters are by definition string values.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

For a list of possible names see ps_get_parameter().

value

The value of the parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_get_parameters()
  • ps_set_value() - Sets certain values


Sets position for text output

  • « ps_set_parameter
  • ps_set_value »
  • PHP Manual
  • PS Funktionen
  • Sets position for text output

ps_set_text_pos

(PECL ps >= 1.1.0)

ps_set_text_pos — Sets position for text output

Beschreibung

ps_set_text_pos ( resource $psdoc , float $x , float $y ) : bool

Set the position for the next text output. You may alternatively set the x and y value separately by calling ps_set_value() and choosing textx respectively texty as the value name.

If you want to output text at a certain position it is more convenient to use ps_show_xy() instead of setting the text position and calling ps_show().

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the new text position.

y

y-coordinate of the new text position.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Placing text at a given position

<?php
$ps = ps_new();
if (!ps_open_file($ps, "text.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Text placement example");

ps_begin_page($ps, 596, 842);
$psfont = ps_findfont($ps, "Helvetica", "", 0);
ps_setfont($ps, $psfont, 8.0);
ps_show_xy($ps, "Some text at (100, 100)", 100, 100);

ps_set_value($ps, "textx", 100);
ps_set_value($ps, "texty", 120);
ps_show($ps, "Some text at (100, 120)");
ps_end_page($ps);

ps_delete($ps);
?>

Siehe auch

  • ps_set_value() - Sets certain values
  • ps_show() - Output text


Sets certain values

  • « ps_set_text_pos
  • ps_setcolor »
  • PHP Manual
  • PS Funktionen
  • Sets certain values

ps_set_value

(PECL ps >= 1.1.0)

ps_set_value — Sets certain values

Beschreibung

ps_set_value ( resource $psdoc , string $name , float $value ) : bool

Sets several values which are used by many functions. Parameters are by definition float values.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

The name can be one of the following:

textrendering

The way how text is shown.

textx

The x coordinate for text output.

texty

The y coordinate for text output.

wordspacing

The distance between words relative to the width of a space.

leading

The distance between lines in pixels.

value

The value of the parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_get_value() - Gets certain values
  • ps_set_parameter() - Sets certain parameters


Sets current color

  • « ps_set_value
  • ps_setdash »
  • PHP Manual
  • PS Funktionen
  • Sets current color

ps_setcolor

(PECL ps >= 1.1.0)

ps_setcolor — Sets current color

Beschreibung

ps_setcolor ( resource $psdoc , string $type , string $colorspace , float $c1 , float $c2 , float $c3 , float $c4 ) : bool

Sets the color for drawing, filling, or both.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The parameter type can be both, fill, or fillstroke.

colorspace

The colorspace should be one of gray, rgb, cmyk, spot, pattern. Depending on the colorspace either only the first, the first three or all parameters will be used.

c1

Depending on the colorspace this is either the red component (rgb), the cyan component (cmyk), the gray value (gray), the identifier of the spot color or the identifier of the pattern.

c2

Depending on the colorspace this is either the green component (rgb), the magenta component (cmyk).

c3

Depending on the colorspace this is either the blue component (rgb), the yellow component (cmyk).

c4

This must only be set in cmyk colorspace and specifies the black component.

Bugs

The second parameter is currently not always evaluated. The color is sometimes set for filling and drawing just as if fillstroke were passed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Sets appearance of a dashed line

  • « ps_setcolor
  • ps_setflat »
  • PHP Manual
  • PS Funktionen
  • Sets appearance of a dashed line

ps_setdash

(PECL ps >= 1.1.0)

ps_setdash — Sets appearance of a dashed line

Beschreibung

ps_setdash ( resource $psdoc , float $on , float $off ) : bool

Sets the length of the black and white portions of a dashed line.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

on

The length of the dash.

off

The length of the gap between dashes.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_setpolydash() - Sets appearance of a dashed line


Sets flatness

  • « ps_setdash
  • ps_setfont »
  • PHP Manual
  • PS Funktionen
  • Sets flatness

ps_setflat

(PECL ps >= 1.1.0)

ps_setflat — Sets flatness

Beschreibung

ps_setflat ( resource $psdoc , float $value ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

value

The value must be between 0.2 and 1.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Sets font to use for following output

  • « ps_setflat
  • ps_setgray »
  • PHP Manual
  • PS Funktionen
  • Sets font to use for following output

ps_setfont

(PECL ps >= 1.1.0)

ps_setfont — Sets font to use for following output

Beschreibung

ps_setfont ( resource $psdoc , int $fontid , float $size ) : bool

Sets a font, which has to be loaded before with ps_findfont(). Outputting text without setting a font results in an error.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

fontid

The font identifier as returned by ps_findfont().

size

The size of the font.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_findfont() - Loads a font
  • ps_set_text_pos() - Sets position for text output for an example.


Sets gray value

  • « ps_setfont
  • ps_setlinecap »
  • PHP Manual
  • PS Funktionen
  • Sets gray value

ps_setgray

(PECL ps >= 1.1.0)

ps_setgray — Sets gray value

Beschreibung

ps_setgray ( resource $psdoc , float $gray ) : bool

Sets the gray value for all following drawing operations.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

gray

The value must be between 0 (white) and 1 (black).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_setcolor() - Sets current color


Sets appearance of line ends

  • « ps_setgray
  • ps_setlinejoin »
  • PHP Manual
  • PS Funktionen
  • Sets appearance of line ends

ps_setlinecap

(PECL ps >= 1.1.0)

ps_setlinecap — Sets appearance of line ends

Beschreibung

ps_setlinecap ( resource $psdoc , int $type ) : bool

Sets how line ends look like.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of line ends. Possible values are PS_LINECAP_BUTT, PS_LINECAP_ROUND, or PS_LINECAP_SQUARED.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setlinewidth() - Sets width of a line
  • ps_setmiterlimit() - Sets the miter limit


Sets how contected lines are joined

  • « ps_setlinecap
  • ps_setlinewidth »
  • PHP Manual
  • PS Funktionen
  • Sets how contected lines are joined

ps_setlinejoin

(PECL ps >= 1.1.0)

ps_setlinejoin — Sets how contected lines are joined

Beschreibung

ps_setlinejoin ( resource $psdoc , int $type ) : bool

Sets how lines are joined.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The way lines are joined. Possible values are PS_LINEJOIN_MITER, PS_LINEJOIN_ROUND, or PS_LINEJOIN_BEVEL.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinewidth() - Sets width of a line
  • ps_setmiterlimit() - Sets the miter limit


Sets width of a line

  • « ps_setlinejoin
  • ps_setmiterlimit »
  • PHP Manual
  • PS Funktionen
  • Sets width of a line

ps_setlinewidth

(PECL ps >= 1.1.0)

ps_setlinewidth — Sets width of a line

Beschreibung

ps_setlinewidth ( resource $psdoc , float $width ) : bool

Sets the line width for all following drawing operations.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of lines in points.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setmiterlimit() - Sets the miter limit


Sets the miter limit

  • « ps_setlinewidth
  • ps_setoverprintmode »
  • PHP Manual
  • PS Funktionen
  • Sets the miter limit

ps_setmiterlimit

(PECL ps >= 1.1.0)

ps_setmiterlimit — Sets the miter limit

Beschreibung

ps_setmiterlimit ( resource $psdoc , float $value ) : bool

If two lines join in a small angle and the line join is set to PS_LINEJOIN_MITER, then the resulting spike will be very long. The miter limit is the maximum ratio of the miter length (the length of the spike) and the line width.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

value

The maximum ratio between the miter length and the line width. Larger values (> 10) will result in very long spikes when two lines meet in a small angle. Keep the default unless you know what you are doing.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setlinewidth() - Sets width of a line


Sets overprint mode

  • « ps_setmiterlimit
  • ps_setpolydash »
  • PHP Manual
  • PS Funktionen
  • Sets overprint mode

ps_setoverprintmode

(PECL ps >= 1.3.0)

ps_setoverprintmode — Sets overprint mode

Beschreibung

ps_setoverprintmode ( resource $psdoc , int $mode ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

mode

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Sets appearance of a dashed line

  • « ps_setoverprintmode
  • ps_shading_pattern »
  • PHP Manual
  • PS Funktionen
  • Sets appearance of a dashed line

ps_setpolydash

(PECL ps >= 1.1.0)

ps_setpolydash — Sets appearance of a dashed line

Beschreibung

ps_setpolydash ( resource $psdoc , float $arr ) : bool

Sets the length of the black and white portions of a dashed line. ps_setpolydash() is used to set more complicated dash patterns.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

arr

arr is a list of length elements alternately for the black and white portion.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Drawing a dashed line

<?php
$ps = ps_new();
if (!ps_open_file($ps, "polydash.ps")) {
   print "Cannot open PostScript file\n";
     exit;
}

ps_set_info($ps, "Creator", "polydash.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Poly dash example");

ps_begin_page($ps, 596, 842);
ps_setpolydash($ps, array(10, 5, 2, 5));
ps_moveto($ps, 100, 100);
ps_lineto($ps, 200, 200);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

This example draws a line with a 10 and 2 points long line, and gaps of 5 points inbetween.

Siehe auch

  • ps_setdash() - Sets appearance of a dashed line


Creates a pattern based on a shading

  • « ps_setpolydash
  • ps_shading »
  • PHP Manual
  • PS Funktionen
  • Creates a pattern based on a shading

ps_shading_pattern

(PECL ps >= 1.3.0)

ps_shading_pattern — Creates a pattern based on a shading

Beschreibung

ps_shading_pattern ( resource $psdoc , int $shadingid , string $optlist ) : int|false

Creates a pattern based on a shading, which has to be created before with ps_shading(). Shading patterns can be used like regular patterns.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

shadingid

The identifier of a shading previously created with ps_shading().

optlist

This argument is not currently used.

Rückgabewerte

The identifier of the pattern Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • ps_shading() - Creates a shading for later use
  • ps_shfill() - Fills an area with a shading


Creates a shading for later use

  • « ps_shading_pattern
  • ps_shfill »
  • PHP Manual
  • PS Funktionen
  • Creates a shading for later use

ps_shading

(PECL ps >= 1.3.0)

ps_shading — Creates a shading for later use

Beschreibung

ps_shading ( resource $psdoc , string $type , float $x0 , float $y0 , float $x1 , float $y1 , float $c1 , float $c2 , float $c3 , float $c4 , string $optlist ) : int|false

Creates a shading, which can be used by ps_shfill() or ps_shading_pattern().

The color of the shading can be in any color space except for pattern.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of shading can be either radial or axial. Each shading starts with the current fill color and ends with the given color values passed in the parameters c1 to c4 (see ps_setcolor() for their meaning).

x0, x1, y0, y1

The coordinates x0, y0, x1, y1 are the start and end point of the shading. If the type of shading is radial the two points are the middle points of a starting and ending circle.

c1, c2, c3, c4

See ps_setcolor() for their meaning.

optlist

If the shading is of type radial the optlist must also contain the parameters r0 and r1 with the radius of the start and end circle.

Rückgabewerte

Returns the identifier of the pattern Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • ps_shading_pattern() - Creates a pattern based on a shading
  • ps_shfill() - Fills an area with a shading


Fills an area with a shading

  • « ps_shading
  • ps_show_boxed »
  • PHP Manual
  • PS Funktionen
  • Fills an area with a shading

ps_shfill

(PECL ps >= 1.3.0)

ps_shfill — Fills an area with a shading

Beschreibung

ps_shfill ( resource $psdoc , int $shadingid ) : bool

Fills an area with a shading, which has to be created before with ps_shading(). This is an alternative way to creating a pattern from a shading ps_shading_pattern() and using the pattern as the filling color.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

shadingid

The identifier of a shading previously created with ps_shading().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_shading() - Creates a shading for later use
  • ps_shading_pattern() - Creates a pattern based on a shading


Output text in a box

  • « ps_shfill
  • ps_show_xy2 »
  • PHP Manual
  • PS Funktionen
  • Output text in a box

ps_show_boxed

(PECL ps >= 1.1.0)

ps_show_boxed — Output text in a box

Beschreibung

ps_show_boxed ( resource $psdoc , string $text , float $left , float $bottom , float $width , float $height , string $hmode , string $feature = ? ) : int

Outputs a text in a given box. The lower left corner of the box is at (left, bottom). Line breaks will be inserted where needed. Multiple spaces are treated as one. Tabulators are treated as spaces.

The text will be hyphenated if the parameter hyphenation is set to true and the parameter hyphendict contains a valid filename for a hyphenation file. The line spacing is taken from the value leading. Paragraphs can be separated by an empty line just like in TeX. If the value parindent is set to value > 0.0 then the first n lines will be indented. The number n of lines is set by the parameter numindentlines. In order to prevent indenting of the first m paragraphs set the value parindentskip to a positive number.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output into the given box.

left

x-coordinate of the lower left corner of the box.

bottom

y-coordinate of the lower left corner of the box.

width

Width of the box.

height

Height of the box.

hmode

The parameter hmode can be "justify", "fulljustify", "right", "left", or "center". The difference of "justify" and "fulljustify" just affects the last line of the box. In fulljustify mode the last line will be left and right justified unless this is also the last line of paragraph. In justify mode it will always be left justified.

feature

Used parameters

The output of ps_show_boxed() can be configured with several parameters and values which must be set with either ps_set_parameter() or ps_set_value(). Beside the parameters and values which affect text output, the following parameters and values are evaluated.

leading (value)

Distance between baselines of two consecutive lines.

linebreak (parameter)

Set to "true" if you want a carriage return to start a new line instead of treating it as a space. Defaults to "false".

parbreak (parameter)

Set to "true" if you want a carriage return on a single line to start a new paragraph instead of treating it as a space. Defaults to "true".

hyphenation (parameter)

Set to "true" in order to turn hyphenation on. This requires a dictionary to be set with the parameter "hyphendict". Defaults to "false".

hyphendict (parameter)

Filename of the dictionary used for hyphenation pattern (see below).

hyphenminchar (value)

The number of chars which must at least be left over before or after the hyphen. This implies that only words of at least two times this value will be hyphenated. The default value is three. Setting a value of zero will result in the default value.

parindent (value)

Set the amount of space in pixel for indenting the first m lines of a paragraph. m can be set with the value "numindentlines".

parskip (value)

Set the amount of extra space in pixel between paragraphs. Defaults to 0 which will result in a normal line distance.

numindentlines (value)

Number of lines from the start of the paragraph which will be indented. Defaults to 1.

parindentskip (value)

Number of paragraphs in the box whose first lines will not be indented. This defaults to 0. This is useful for paragraphs right after a section heading or text being continued in a second box. In both case one would set this to 1.

linenumbermode (parameter)

Set how lines are to be numbered. Possible values are "box" for numbering lines in the whole box or "paragraph" to number lines within each paragraph.

linenumberspace (value)

The space for the column left of the numbered line containing the line number. The line number will be right justified into this column. Defaults to 20.

linenumbersep (value)

The space between the column with line numbers and the line itself. Defaults to 5.

Hyphenation

Text is hyphenated if the parameter hyphenation is set to true and a valid hyphenation dictionary is set. pslib does not ship its own hyphenation dictionary but uses one from openoffice, scribus or koffice. You can find their dictionaries for different languages in one of the following directories if the software is installed:

  • /usr/share/apps/koffice/hyphdicts/
  • /usr/lib/scribus/dicts/
  • /usr/lib/openoffice/share/dict/ooo/
Currently scribus appears to have the most complete hyphenation dictionaries.

Rückgabewerte

Number of characters that could not be written.

Siehe auch

  • ps_continue_text() - Continue text in next line


Output text at position

  • « ps_show_boxed
  • ps_show_xy »
  • PHP Manual
  • PS Funktionen
  • Output text at position

ps_show_xy2

(PECL ps >= 1.1.0)

ps_show_xy2 — Output text at position

Beschreibung

ps_show_xy2 ( resource $psdoc , string $text , int $len , float $xcoor , float $ycoor ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Output text at given position

  • « ps_show_xy2
  • ps_show2 »
  • PHP Manual
  • PS Funktionen
  • Output text at given position

ps_show_xy

(PECL ps >= 1.1.0)

ps_show_xy — Output text at given position

Beschreibung

ps_show_xy ( resource $psdoc , string $text , float $x , float $y ) : bool

Output a text at the given text position.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

x

x-coordinate of the lower left corner of the box surrounding the text.

y

y-coordinate of the lower left corner of the box surrounding the text.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_continue_text() - Continue text in next line
  • ps_show() - Output text


Output a text at current position

  • « ps_show_xy
  • ps_show »
  • PHP Manual
  • PS Funktionen
  • Output a text at current position

ps_show2

(PECL ps >= 1.1.0)

ps_show2 — Output a text at current position

Beschreibung

ps_show2 ( resource $psdoc , string $text , int $len ) : bool

Output text at the current position. Do not print more than len characters.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

len

The maximum number of characters to print.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Output text

  • « ps_show2
  • ps_string_geometry »
  • PHP Manual
  • PS Funktionen
  • Output text

ps_show

(PECL ps >= 1.1.0)

ps_show — Output text

Beschreibung

ps_show ( resource $psdoc , string $text ) : bool

Output a text at the current text position. The text position can be set by storing the x and y coordinates into the values textx and texty with the function ps_set_value(). The function will issue an error if a font was not set before with ps_setfont().

ps_show() evaluates the following parameters and values as set by ps_set_parameter() and ps_set_value().

charspacing (value)

Distance between two consecutive glyphs. If this value is unequal to zero then all ligatures will be resolved. Values less than zero are allowed.

kerning (parameter)

Setting this parameter to "false" will turn off kerning. Kerning is turned on by default.

ligatures (parameter)

Setting this parameter to "false" will turn off the use of ligatures. Ligatures are turned on by default.

underline (parameter)

Setting this parameter to "true" will turn on underlining. Underlining is turned off by default.

overline (parameter)

Setting this parameter to "true" will turn on overlining. Overlining is turned off by default.

strikeout (parameter)

Setting this parameter to "true" will turn on striking out. Striking out is turned off by default.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_continue_text() - Continue text in next line
  • ps_show_xy() - Output text at given position
  • ps_setfont() - Sets font to use for following output


Gets geometry of a string

  • « ps_show
  • ps_stringwidth »
  • PHP Manual
  • PS Funktionen
  • Gets geometry of a string

ps_string_geometry

(PECL ps >= 1.2.0)

ps_string_geometry — Gets geometry of a string

Beschreibung

ps_string_geometry ( resource $psdoc , string $text , int $fontid = 0 , float $size = 0.0 ) : array

This function is similar to ps_stringwidth() but returns an array of dimensions containing the width, ascender, and descender of the text.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text for which the geometry is to be calculated.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

Rückgabewerte

An array of the dimensions of a string. The element 'width' contains the width of the string as returned by ps_stringwidth(). The element 'descender' contains the maximum descender and 'ascender' the maximum ascender of the string.

Siehe auch

  • ps_continue_text() - Continue text in next line
  • ps_stringwidth() - Gets width of a string


Gets width of a string

  • « ps_string_geometry
  • ps_stroke »
  • PHP Manual
  • PS Funktionen
  • Gets width of a string

ps_stringwidth

(PECL ps >= 1.1.0)

ps_stringwidth — Gets width of a string

Beschreibung

ps_stringwidth ( resource $psdoc , string $text , int $fontid = 0 , float $size = 0.0 ) : float

Calculates the width of a string in points if it was output in the given font and font size. This function needs an Adobe font metrics file to calculate the precise width. If kerning is turned on, it will be taken into account.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text for which the width is to be calculated.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

Rückgabewerte

Width of a string in points.

Siehe auch

  • ps_string_geometry() - Gets geometry of a string


Draws the current path

  • « ps_stringwidth
  • ps_symbol_name »
  • PHP Manual
  • PS Funktionen
  • Draws the current path

ps_stroke

(PECL ps >= 1.1.0)

ps_stroke — Draws the current path

Beschreibung

ps_stroke ( resource $psdoc ) : bool

Draws the path constructed with previously called drawing functions like ps_lineto().

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_closepath_stroke() - Closes and strokes path
  • ps_fill() - Fills the current path
  • ps_fill_stroke() - Fills and strokes the current path


Gets name of a glyph

  • « ps_stroke
  • ps_symbol_width »
  • PHP Manual
  • PS Funktionen
  • Gets name of a glyph

ps_symbol_name

(PECL ps >= 1.2.0)

ps_symbol_name — Gets name of a glyph

Beschreibung

ps_symbol_name ( resource $psdoc , int $ord , int $fontid = 0 ) : string

This function needs an Adobe font metrics file to know which glyphs are available.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The parameter ord is the position of the glyph in the font encoding vector.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

Rückgabewerte

The name of a glyph in the given font.

Siehe auch

  • ps_symbol() - Output a glyph
  • ps_symbol_width() - Gets width of a glyph


Gets width of a glyph

  • « ps_symbol_name
  • ps_symbol »
  • PHP Manual
  • PS Funktionen
  • Gets width of a glyph

ps_symbol_width

(PECL ps >= 1.2.0)

ps_symbol_width — Gets width of a glyph

Beschreibung

ps_symbol_width ( resource $psdoc , int $ord , int $fontid = 0 , float $size = 0.0 ) : float

Calculates the width of a glyph in points if it was output in the given font and font size. This function needs an Adobe font metrics file to calculate the precise width.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The position of the glyph in the font encoding vector.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

Rückgabewerte

The width of a glyph in points.

Siehe auch

  • ps_symbol() - Output a glyph
  • ps_symbol_name() - Gets name of a glyph


Output a glyph

  • « ps_symbol_width
  • ps_translate »
  • PHP Manual
  • PS Funktionen
  • Output a glyph

ps_symbol

(PECL ps >= 1.2.0)

ps_symbol — Output a glyph

Beschreibung

ps_symbol ( resource $psdoc , int $ord ) : bool

Output the glyph at position ord in the font encoding vector of the current font. The font encoding for a font can be set when loading the font with ps_findfont().

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The position of the glyph in the font encoding vector.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ps_symbol_name() - Gets name of a glyph
  • ps_symbol_width() - Gets width of a glyph


Sets translation

  • « ps_symbol
  • RpmInfo »
  • PHP Manual
  • PS Funktionen
  • Sets translation

ps_translate

(PECL ps >= 1.1.0)

ps_translate — Sets translation

Beschreibung

ps_translate ( resource $psdoc , float $x , float $y ) : bool

Sets a new initial point of the coordinate system.

Parameter-Liste

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the origin of the translated coordinate system.

y

y-coordinate of the origin of the translated coordinate system.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Translation of the coordinate system

<?php
function rectangle($ps) {
    ps_moveto($ps, 0, 0);
    ps_lineto($ps, 0, 50);
    ps_lineto($ps, 50, 50);
    ps_lineto($ps, 50, 0);
    ps_lineto($ps, 0, 0);
    ps_stroke($ps);
}

$ps = ps_new();
if (!ps_open_file($ps, "translate.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "translate.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Translated example");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_translate($ps, -500, -750);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text at initial position");
ps_end_page($ps);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text at initial position");
ps_end_page($ps);

ps_delete($ps);
?>

The above example demonstrates two possible ways to place a graphic (in this case just a rectangle) at any position on the page, while the graphic itself uses its own coordinate system. The trick is to change the origin of the current coordinate system before drawing the rectangle. The translation has to be undone after the graphic has been drawn.

On the second page a slightly different and more elegant approach is applied. Instead of undoing the translation with a second call of ps_translate() the graphics context is saved before modifying the coordinate system and restored after drawing the rectangle.

Siehe auch

  • ps_scale() - Sets scaling factor
  • ps_rotate() - Sets rotation factor


RpmInfo

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation via PECL
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • RpmInfo Funktionen
    • rpmaddtag — Add tag retrieved in query
    • rpmdbinfo — Get information from installed RPM
    • rpmdbsearch — Search RPM packages
    • rpminfo — Get information from a RPM file
    • rpmvercmp — RPM version comparison


Einführung

This extension enables you to retrieve information from RPM files or from the installed RPMs database.


Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation via PECL
  • Laufzeit-Konfiguration
  • Ressource-Typen


  • « Installation/Konfiguration
  • Installation via PECL »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

This extension requires » librpm version 4.11.3 or higher.


Installation via PECL

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/rpminfo.


  • « Installation via PECL
  • Ressource-Typen »
  • PHP Manual
  • Installation/Konfiguration
  • Laufzeit-Konfiguration

Laufzeit-Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

RPMVERSION (string)
System librpm version.
RPMSENSE_ANY (int)
RPMSENSE_LESS (int)
RPMSENSE_GREATER (int)
RPMSENSE_EQUAL (int)
RPMSENSE_POSTTRANS (int)
RPMSENSE_PREREQ (int)
RPMSENSE_PRETRANS (int)
RPMSENSE_INTERP (int)
RPMSENSE_SCRIPT_PRE (int)
RPMSENSE_SCRIPT_POST (int)
RPMSENSE_SCRIPT_PREUN (int)
RPMSENSE_SCRIPT_POSTUN (int)
RPMSENSE_SCRIPT_VERIFY (int)
RPMSENSE_FIND_REQUIRES (int)
RPMSENSE_FIND_PROVIDES (int)
RPMSENSE_TRIGGERIN (int)
RPMSENSE_TRIGGERUN (int)
RPMSENSE_TRIGGERPOSTUN (int)
RPMSENSE_MISSINGOK (int)
RPMSENSE_RPMLIB (int)
RPMSENSE_TRIGGERPREIN (int)
RPMSENSE_KEYRING (int)
RPMSENSE_CONFIG (int)
RPMMIRE_DEFAULT (int)
Search pattern is a regular expression with \., .* and ^...$ added.
RPMMIRE_STRCMP (int)
Search pattern is a string, using strcmp(3).
RPMMIRE_REGEX (int)
Search pattern is a regular expression, using regcomp(3).
RPMMIRE_GLOB (int)
Search pattern is a glob expression, using fnmatch(3).
RPMTAG_ARCH (int)
RPMTAG_ARCHIVESIZE (int)
RPMTAG_BASENAMES (int)
Name (not path) of files, with database index.
RPMTAG_BUGURL (int)
RPMTAG_BUILDARCHS (int)
RPMTAG_BUILDHOST (int)
RPMTAG_BUILDTIME (int)
RPMTAG_C (int)
RPMTAG_CHANGELOGNAME (int)
RPMTAG_CHANGELOGTEXT (int)
RPMTAG_CHANGELOGTIME (int)
RPMTAG_CLASSDICT (int)
RPMTAG_CONFLICTFLAGS (int)
RPMTAG_CONFLICTNAME (int)
Conflicting dependencies, with database index.
RPMTAG_CONFLICTNEVRS (int)
RPMTAG_CONFLICTS (int)
RPMTAG_CONFLICTVERSION (int)
RPMTAG_COOKIE (int)
RPMTAG_DBINSTANCE (int)
RPMTAG_DEPENDSDICT (int)
RPMTAG_DESCRIPTION (int)
RPMTAG_DIRINDEXES (int)
RPMTAG_DIRNAMES (int)
Directory of files, with database index.
RPMTAG_DISTRIBUTION (int)
RPMTAG_DISTTAG (int)
RPMTAG_DISTURL (int)
RPMTAG_DSAHEADER (int)
RPMTAG_E (int)
RPMTAG_ENCODING (int)
RPMTAG_ENHANCEFLAGS (int)
RPMTAG_ENHANCENAME (int)
Weak dependencies, with database index, requires librpm >= 4.13.
RPMTAG_ENHANCENEVRS (int)
RPMTAG_ENHANCES (int)
RPMTAG_ENHANCEVERSION (int)
RPMTAG_EPOCH (int)
RPMTAG_EPOCHNUM (int)
RPMTAG_EVR (int)
RPMTAG_EXCLUDEARCH (int)
RPMTAG_EXCLUDEOS (int)
RPMTAG_EXCLUSIVEARCH (int)
RPMTAG_EXCLUSIVEOS (int)
RPMTAG_FILECAPS (int)
RPMTAG_FILECLASS (int)
RPMTAG_FILECOLORS (int)
RPMTAG_FILECONTEXTS (int)
RPMTAG_FILEDEPENDSN (int)
RPMTAG_FILEDEPENDSX (int)
RPMTAG_FILEDEVICES (int)
RPMTAG_FILEDIGESTALGO (int)
RPMTAG_FILEDIGESTS (int)
RPMTAG_FILEFLAGS (int)
RPMTAG_FILEGROUPNAME (int)
RPMTAG_FILEINODES (int)
RPMTAG_FILELANGS (int)
RPMTAG_FILELINKTOS (int)
RPMTAG_FILEMD5S (int)
RPMTAG_FILEMODES (int)
RPMTAG_FILEMTIMES (int)
RPMTAG_FILENAMES (int)
RPMTAG_FILENLINKS (int)
RPMTAG_FILEPROVIDE (int)
RPMTAG_FILERDEVS (int)
RPMTAG_FILEREQUIRE (int)
RPMTAG_FILESIGNATURELENGTH (int)
RPMTAG_FILESIGNATURES (int)
RPMTAG_FILESIZES (int)
RPMTAG_FILESTATES (int)
RPMTAG_FILETRIGGERCONDS (int)
RPMTAG_FILETRIGGERFLAGS (int)
RPMTAG_FILETRIGGERINDEX (int)
RPMTAG_FILETRIGGERNAME (int)
File trigger name, with database index, requires librpm >= 4.13.
RPMTAG_FILETRIGGERPRIORITIES (int)
RPMTAG_FILETRIGGERSCRIPTFLAGS (int)
RPMTAG_FILETRIGGERSCRIPTPROG (int)
RPMTAG_FILETRIGGERSCRIPTS (int)
RPMTAG_FILETRIGGERTYPE (int)
RPMTAG_FILETRIGGERVERSION (int)
RPMTAG_FILEUSERNAME (int)
RPMTAG_FILEVERIFYFLAGS (int)
RPMTAG_FSCONTEXTS (int)
RPMTAG_GIF (int)
RPMTAG_GROUP (int)
Group of the package, with database index.
RPMTAG_HDRID (int)
RPMTAG_HEADERCOLOR (int)
RPMTAG_HEADERI18NTABLE (int)
RPMTAG_HEADERIMAGE (int)
RPMTAG_HEADERIMMUTABLE (int)
RPMTAG_HEADERREGIONS (int)
RPMTAG_HEADERSIGNATURES (int)
RPMTAG_ICON (int)
RPMTAG_INSTALLCOLOR (int)
RPMTAG_INSTALLTID (int)
Installation transaction ID, with database index.
RPMTAG_INSTALLTIME (int)
RPMTAG_INSTFILENAMES (int)
Path of files, with database index.
RPMTAG_INSTPREFIXES (int)
RPMTAG_LICENSE (int)
RPMTAG_LONGARCHIVESIZE (int)
RPMTAG_LONGFILESIZES (int)
RPMTAG_LONGSIGSIZE (int)
RPMTAG_LONGSIZE (int)
RPMTAG_MODULARITYLABEL (int)
RPMTAG_N (int)
RPMTAG_NAME (int)
Package name, with database index.
RPMTAG_NEVR (int)
RPMTAG_NEVRA (int)
RPMTAG_NOPATCH (int)
RPMTAG_NOSOURCE (int)
RPMTAG_NVR (int)
RPMTAG_NVRA (int)
RPMTAG_O (int)
RPMTAG_OBSOLETEFLAGS (int)
RPMTAG_OBSOLETENAME (int)
Obsoleted packages, with database index.
RPMTAG_OBSOLETENEVRS (int)
RPMTAG_OBSOLETES (int)
RPMTAG_OBSOLETEVERSION (int)
RPMTAG_OLDENHANCES (int)
RPMTAG_OLDENHANCESFLAGS (int)
RPMTAG_OLDENHANCESNAME (int)
RPMTAG_OLDENHANCESVERSION (int)
RPMTAG_OLDFILENAMES (int)
RPMTAG_OLDSUGGESTS (int)
RPMTAG_OLDSUGGESTSFLAGS (int)
RPMTAG_OLDSUGGESTSNAME (int)
RPMTAG_OLDSUGGESTSVERSION (int)
RPMTAG_OPTFLAGS (int)
RPMTAG_ORDERFLAGS (int)
RPMTAG_ORDERNAME (int)
RPMTAG_ORDERVERSION (int)
RPMTAG_ORIGBASENAMES (int)
RPMTAG_ORIGDIRINDEXES (int)
RPMTAG_ORIGDIRNAMES (int)
RPMTAG_ORIGFILENAMES (int)
RPMTAG_OS (int)
RPMTAG_P (int)
RPMTAG_PACKAGER (int)
RPMTAG_PATCH (int)
RPMTAG_PATCHESFLAGS (int)
RPMTAG_PATCHESNAME (int)
RPMTAG_PATCHESVERSION (int)
RPMTAG_PAYLOADCOMPRESSOR (int)
RPMTAG_PAYLOADDIGEST (int)
RPMTAG_PAYLOADDIGESTALT (int)
Since librpm >= 4.16.
RPMTAG_PAYLOADDIGESTALGO (int)
RPMTAG_PAYLOADFLAGS (int)
RPMTAG_PAYLOADFORMAT (int)
RPMTAG_PKGID (int)
RPMTAG_PLATFORM (int)
RPMTAG_POLICIES (int)
RPMTAG_POLICYFLAGS (int)
RPMTAG_POLICYNAMES (int)
RPMTAG_POLICYTYPES (int)
RPMTAG_POLICYTYPESINDEXES (int)
RPMTAG_POSTIN (int)
RPMTAG_POSTINFLAGS (int)
RPMTAG_POSTINPROG (int)
RPMTAG_POSTTRANS (int)
RPMTAG_POSTTRANSFLAGS (int)
RPMTAG_POSTTRANSPROG (int)
RPMTAG_POSTUN (int)
RPMTAG_POSTUNFLAGS (int)
RPMTAG_POSTUNPROG (int)
RPMTAG_PREFIXES (int)
RPMTAG_PREIN (int)
RPMTAG_PREINFLAGS (int)
RPMTAG_PREINPROG (int)
RPMTAG_PRETRANS (int)
RPMTAG_PRETRANSFLAGS (int)
RPMTAG_PRETRANSPROG (int)
RPMTAG_PREUN (int)
RPMTAG_PREUNFLAGS (int)
RPMTAG_PREUNPROG (int)
RPMTAG_PROVIDEFLAGS (int)
RPMTAG_PROVIDENAME (int)
Provided dependencies, with database index.
RPMTAG_PROVIDENEVRS (int)
RPMTAG_PROVIDES (int)
RPMTAG_PROVIDEVERSION (int)
RPMTAG_PUBKEYS (int)
RPMTAG_R (int)
RPMTAG_RECOMMENDFLAGS (int)
RPMTAG_RECOMMENDNAME (int)
Recommended weak dependencies, with database index, requires librpm >= 4.13.
RPMTAG_RECOMMENDNEVRS (int)
RPMTAG_RECOMMENDS (int)
RPMTAG_RECOMMENDVERSION (int)
RPMTAG_RECONTEXTS (int)
RPMTAG_RELEASE (int)
RPMTAG_REMOVETID (int)
RPMTAG_REQUIREFLAGS (int)
RPMTAG_REQUIRENAME (int)
Required dependencies, with database index.
RPMTAG_REQUIRENEVRS (int)
RPMTAG_REQUIRES (int)
RPMTAG_REQUIREVERSION (int)
RPMTAG_RPMVERSION (int)
RPMTAG_RSAHEADER (int)
RPMTAG_SHA1HEADER (int)
SHA1 signature, with database index.
RPMTAG_SHA256HEADER (int)
RPMTAG_SIGGPG (int)
RPMTAG_SIGMD5 (int)
MD5 signature, with database index.
RPMTAG_SIGPGP (int)
RPMTAG_SIGSIZE (int)
RPMTAG_SIZE (int)
RPMTAG_SOURCE (int)
RPMTAG_SOURCEPACKAGE (int)
RPMTAG_SOURCEPKGID (int)
RPMTAG_SOURCERPM (int)
RPMTAG_SUGGESTFLAGS (int)
RPMTAG_SUGGESTNAME (int)
Suggested weak dependencies, with database index, requires librpm >= 4.13.
RPMTAG_SUGGESTNEVRS (int)
RPMTAG_SUGGESTS (int)
RPMTAG_SUGGESTVERSION (int)
RPMTAG_SUMMARY (int)
RPMTAG_SUPPLEMENTFLAGS (int)
RPMTAG_SUPPLEMENTNAME (int)
Weak dependencies, with database index, requires librpm >= 4.13.
RPMTAG_SUPPLEMENTNEVRS (int)
RPMTAG_SUPPLEMENTS (int)
RPMTAG_SUPPLEMENTVERSION (int)
RPMTAG_TRANSFILETRIGGERCONDS (int)
RPMTAG_TRANSFILETRIGGERFLAGS (int)
RPMTAG_TRANSFILETRIGGERINDEX (int)
RPMTAG_TRANSFILETRIGGERNAME (int)
Transaction file trigger name, with database index, requires librpm >= 4.13.
RPMTAG_TRANSFILETRIGGERPRIORITIES (int)
RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS (int)
RPMTAG_TRANSFILETRIGGERSCRIPTPROG (int)
RPMTAG_TRANSFILETRIGGERSCRIPTS (int)
RPMTAG_TRANSFILETRIGGERTYPE (int)
RPMTAG_TRANSFILETRIGGERVERSION (int)
RPMTAG_TRIGGERCONDS (int)
RPMTAG_TRIGGERFLAGS (int)
RPMTAG_TRIGGERINDEX (int)
RPMTAG_TRIGGERNAME (int)
Trigger name, with database index.
RPMTAG_TRIGGERSCRIPTFLAGS (int)
RPMTAG_TRIGGERSCRIPTPROG (int)
RPMTAG_TRIGGERSCRIPTS (int)
RPMTAG_TRIGGERTYPE (int)
RPMTAG_TRIGGERVERSION (int)
RPMTAG_URL (int)
RPMTAG_V (int)
RPMTAG_VCS (int)
RPMTAG_VENDOR (int)
RPMTAG_VERBOSE (int)
RPMTAG_VERIFYSCRIPT (int)
RPMTAG_VERIFYSCRIPTFLAGS (int)
RPMTAG_VERIFYSCRIPTPROG (int)
RPMTAG_VERSION (int)
RPMTAG_XPM (int)


RpmInfo Funktionen

Inhaltsverzeichnis

  • rpmaddtag — Add tag retrieved in query
  • rpmdbinfo — Get information from installed RPM
  • rpmdbsearch — Search RPM packages
  • rpminfo — Get information from a RPM file
  • rpmvercmp — RPM version comparison


Add tag retrieved in query

  • « RpmInfo Funktionen
  • rpmdbinfo »
  • PHP Manual
  • RpmInfo Funktionen
  • Add tag retrieved in query

rpmaddtag

(PECL rpminfo >= 0.5.0)

rpmaddtag — Add tag retrieved in query

Beschreibung

rpmaddtag ( int $tag ) : bool

Add an additional retrieved tag in subsequent queries.

Parameter-Liste

tag

One of RPMTAG_* constant, see the rpminfo constants page.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • rpminfo() - Get information from a RPM file
  • rpmdbinfo() - Get information from installed RPM
  • rpmdbsearch() - Search RPM packages


Get information from installed RPM

  • « rpmaddtag
  • rpmdbsearch »
  • PHP Manual
  • RpmInfo Funktionen
  • Get information from installed RPM

rpmdbinfo

(PECL rpminfo >= 0.2.0)

rpmdbinfo — Get information from installed RPM

Beschreibung

rpmdbinfo ( string $nevr , bool $full = false ) : array

Retrieve information about an installed package, from the system RPM database.

Parameter-Liste

nevr

Name with optional epoch, version and release.

full

If true all information headers for the file are retrieved, else only a minimal set.

Rückgabewerte

An array of array of information or NULL on error.

Siehe auch

  • rpmaddtag() - Add tag retrieved in query

Beispiele

Beispiel #1 A rpmdbinfo() example

<?php
rpmaddtag(RPMTAG_INSTALLTIME);
$info = rpmdbinfo("php-pecl-rpminfo");
print_r($info);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Array
        (
            [Name] => php-pecl-rpminfo
            [Version] => 0.4.2
            [Release] => 1.fc31
            [Summary] => RPM information
            [Installtime] => 1586244687
            [Arch] => x86_64
        )
)


Search RPM packages

  • « rpmdbinfo
  • rpminfo »
  • PHP Manual
  • RpmInfo Funktionen
  • Search RPM packages

rpmdbsearch

(PECL rpminfo >= 0.3.0)

rpmdbsearch — Search RPM packages

Beschreibung

rpmdbsearch ( string $pattern , int $rpmtag = RPMTAG_NAME , int $rpmmire = -1 , bool $full = false ) : array

Search packages in the system RPM database.

Parameter-Liste

pattern

Value to search for.

rpmtag

Search criterion, one of RPMTAG_* constant, see the rpminfo constants page.

rpmmire

Pattern type, one of RPMMIRE_* constant, see the rpminfo constants page. When < 0 the criterion must equals the value, and database index is used if possible.

full

If true all information headers for the file are retrieved, else only a minimal set.

Rückgabewerte

An array of array of information or NULL on error.

Siehe auch

  • rpmaddtag() - Add tag retrieved in query

Beispiele

Beispiel #1 Searching for the package owning a file

<?php
$info = rpmdbsearch("/usr/bin/php", RPMTAG_INSTFILENAMES);
print_r($info);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Array
        (
            [Name] => php-cli
            [Version] => 7.4.4
            [Release] => 1.fc32
            [Summary] => Command-line interface for PHP
            [Arch] => x86_64
        )

)


Get information from a RPM file

  • « rpmdbsearch
  • rpmvercmp »
  • PHP Manual
  • RpmInfo Funktionen
  • Get information from a RPM file

rpminfo

(PECL rpminfo >= 0.1.0)

rpminfo — Get information from a RPM file

Beschreibung

rpminfo ( string $path , bool $full = false , string &$error = ? ) : array

Retrieve information about a local file, a RPM package.

Parameter-Liste

path

Path of the RPM file.

full

If true all information headers for the file are retrieved, else only a minimal set.

error

If provided, will receive the possible error message, and will avoid a runtime warning.

Rückgabewerte

An array of information or NULL on error.

Siehe auch

  • rpmaddtag() - Add tag retrieved in query

Beispiele

Beispiel #1 A rpminfo() example

<?php
rpmaddtag(RPMTAG_BUILDTIME);
$info = rpminfo("./php-pecl-rpminfo-0.4.2-1.el8.remi.7.4.x86_64.rpm");
print_r($info);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [Name] => php-pecl-rpminfo
    [Version] => 0.4.2
    [Release] => 1.el8
    [Summary] => RPM information
    [Buildtime] => 1586244821
    [Arch] => x86_64
)


RPM version comparison

  • « rpminfo
  • XLSWriter »
  • PHP Manual
  • RpmInfo Funktionen
  • RPM version comparison

rpmvercmp

(PECL rpminfo >= 0.1.0)

rpmvercmp — RPM version comparison

Beschreibung

rpmvercmp ( string $evr1 , string $evr2 ) : int

Compare 2 RPM versions.

Parameter-Liste

evr1

First epoch:version-release string

evr2

Second epoch:version-release string

Rückgabewerte

Returns < 0 if evr1 is less than evr2, > 0 if evr1 is greater than evr2, and 0 if they are equal.


XLSWriter

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Vtiful\Kernel\Excel — The Vtiful\Kernel\Excel class
    • Vtiful\Kernel\Excel::addSheet — Vtiful\Kernel\Excel addSheet
    • Vtiful\Kernel\Excel::autoFilter — Vtiful\Kernel\Excel autoFilter
    • Vtiful\Kernel\Excel::constMemory — Vtiful\Kernel\Excel constMemory
    • Vtiful\Kernel\Excel::__construct — Vtiful\Kernel\Excel constructor
    • Vtiful\Kernel\Excel::data — Vtiful\Kernel\Excel data
    • Vtiful\Kernel\Excel::fileName — Vtiful\Kernel\Excel fileName
    • Vtiful\Kernel\Excel::getHandle — Vtiful\Kernel\Excel getHandle
    • Vtiful\Kernel\Excel::header — Vtiful\Kernel\Excel header
    • Vtiful\Kernel\Excel::insertFormula — Vtiful\Kernel\Excel insertFormula
    • Vtiful\Kernel\Excel::insertImage — Vtiful\Kernel\Excel insertImage
    • Vtiful\Kernel\Excel::insertText — Vtiful\Kernel\Excel insertText
    • Vtiful\Kernel\Excel::mergeCells — Vtiful\Kernel\Excel mergeCells
    • Vtiful\Kernel\Excel::output — Vtiful\Kernel\Excel output
    • Vtiful\Kernel\Excel::setColumn — Vtiful\Kernel\Excel setColumn
    • Vtiful\Kernel\Excel::setRow — Vtiful\Kernel\Excel setRow
  • Vtiful\Kernel\Format — The Vtiful\Kernel\Format class
    • Vtiful\Kernel\Format::align — Vtiful\Kernel\Format align
    • Vtiful\Kernel\Format::bold — Vtiful\Kernel\Format bold
    • Vtiful\Kernel\Format::italic — Vtiful\Kernel\Format italic
    • Vtiful\Kernel\Format::underline — Vtiful\Kernel\Format underline


  • « XLSWriter
  • Installation/Konfiguration »
  • PHP Manual
  • XLSWriter
  • Einführung

Einführung

An efficient and fast xlsx file export extension.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

XLSWriter requires PHP 7.0 and above.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/xlswriter


Ressource-Typen

There is one resource used by the procedural version of the XLSWriter extension: returned by fileName() or \Vtiful\Kernel\Format.


  • « Ressource-Typen
  • Vtiful\Kernel\Excel »
  • PHP Manual
  • XLSWriter
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


The Vtiful\Kernel\Excel class

(PECL xlswriter >= 1.2.1)

Einführung

Create xlsx files and set cells and output xlsx files

Klassenbeschreibung

Vtiful\Kernel\Excel {
/* Methoden */
public addSheet ( string $sheetName )
public autoFilter ( string $scope )
public constMemory ( string $fileName , string $sheetName = ? )
public __construct ( array $config )
public data ( array $data )
public fileName ( string $fileName , string $sheetName = ? )
public getHandle ( )
public header ( array $headerData )
public insertFormula ( int $row , int $column , string $formula )
public insertImage ( int $row , int $column , string $localImagePath )
public insertText ( int $row , int $column , stringintdouble $data , string $format = ? )
public mergeCells ( string $scope , string $data )
public output ( )
public setColumn ( string $range , float $width , resource $format = ? )
public setRow ( string $range , float $height , resource $format = ? )
}

Inhaltsverzeichnis

  • Vtiful\Kernel\Excel::addSheet — Vtiful\Kernel\Excel addSheet
  • Vtiful\Kernel\Excel::autoFilter — Vtiful\Kernel\Excel autoFilter
  • Vtiful\Kernel\Excel::constMemory — Vtiful\Kernel\Excel constMemory
  • Vtiful\Kernel\Excel::__construct — Vtiful\Kernel\Excel constructor
  • Vtiful\Kernel\Excel::data — Vtiful\Kernel\Excel data
  • Vtiful\Kernel\Excel::fileName — Vtiful\Kernel\Excel fileName
  • Vtiful\Kernel\Excel::getHandle — Vtiful\Kernel\Excel getHandle
  • Vtiful\Kernel\Excel::header — Vtiful\Kernel\Excel header
  • Vtiful\Kernel\Excel::insertFormula — Vtiful\Kernel\Excel insertFormula
  • Vtiful\Kernel\Excel::insertImage — Vtiful\Kernel\Excel insertImage
  • Vtiful\Kernel\Excel::insertText — Vtiful\Kernel\Excel insertText
  • Vtiful\Kernel\Excel::mergeCells — Vtiful\Kernel\Excel mergeCells
  • Vtiful\Kernel\Excel::output — Vtiful\Kernel\Excel output
  • Vtiful\Kernel\Excel::setColumn — Vtiful\Kernel\Excel setColumn
  • Vtiful\Kernel\Excel::setRow — Vtiful\Kernel\Excel setRow


Vtiful\Kernel\Excel addSheet

  • « Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel::autoFilter »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel addSheet

Vtiful\Kernel\Excel::addSheet

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::addSheet — Vtiful\Kernel\Excel addSheet

Beschreibung

public Vtiful\Kernel\Excel::addSheet ( string $sheetName )

Create a new worksheet in the xlsx file.

Parameter-Liste

sheetName

Worksheet name

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$fileObject  = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
    ->header(['name', 'age'])
    ->data([
        ['viest', 23],
        ['wjx', 23]
    ]);

$file->addSheet('sheet_two')
    ->header(['name', 'age'])
    ->data([
        ['james', 33],
        ['king', 33]
    ]);

$file->output();
?>


Vtiful\Kernel\Excel autoFilter

  • « Vtiful\Kernel\Excel::addSheet
  • Vtiful\Kernel\Excel::constMemory »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel autoFilter

Vtiful\Kernel\Excel::autoFilter

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::autoFilter — Vtiful\Kernel\Excel autoFilter

Beschreibung

public Vtiful\Kernel\Excel::autoFilter ( string $scope )

Add autofilter to a worksheet.

Parameter-Liste

scope

Cell start and end coordinate string.

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$fileObject  = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName('test.xlsx')
        ->header(['name', 'age'])
        ->data($data)
        ->autoFilter('A1:B11')  // auto filter
        ->output();
?>


Vtiful\Kernel\Excel constMemory

  • « Vtiful\Kernel\Excel::autoFilter
  • Vtiful\Kernel\Excel::__construct »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel constMemory

Vtiful\Kernel\Excel::constMemory

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::constMemory — Vtiful\Kernel\Excel constMemory

Beschreibung

public Vtiful\Kernel\Excel::constMemory ( string $fileName , string $sheetName = ? )

Write a large file with constant memory usage.

Parameter-Liste

fileName

XLSX file name

sheetName

Worksheet name

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
  'path' => '/home/viest'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $instance->constMemory('tutorial.xlsx', 'sheet');
?>


Vtiful\Kernel\Excel constructor

  • « Vtiful\Kernel\Excel::constMemory
  • Vtiful\Kernel\Excel::data »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel constructor

Vtiful\Kernel\Excel::__construct

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::__construct — Vtiful\Kernel\Excel constructor

Beschreibung

public Vtiful\Kernel\Excel::__construct ( array $config )

Vtiful\Kernel\Excel constructor, create a class object.

Parameter-Liste

config

XLSX file export configuration

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
  'path' => '/home/viest'
];

$excelObject = new \Vtiful\Kernel\Excel($config);
?>


Vtiful\Kernel\Excel data

  • « Vtiful\Kernel\Excel::__construct
  • Vtiful\Kernel\Excel::fileName »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel data

Vtiful\Kernel\Excel::data

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::data — Vtiful\Kernel\Excel data

Beschreibung

public Vtiful\Kernel\Excel::data ( array $data )

Write a data in the worksheet.

Parameter-Liste

data

worksheet data

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$fileObject  = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
    ->header(['name', 'age'])
    ->data([
      ['viest', 23],
      ['wjx', 23],
    ]);
?>


Vtiful\Kernel\Excel fileName

  • « Vtiful\Kernel\Excel::data
  • Vtiful\Kernel\Excel::getHandle »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel fileName

Vtiful\Kernel\Excel::fileName

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::fileName — Vtiful\Kernel\Excel fileName

Beschreibung

public Vtiful\Kernel\Excel::fileName ( string $fileName , string $sheetName = ? )

Create a brand new xlsx file and create a worksheet.

Parameter-Liste

fileName

XLSX file name

sheetName

Worksheet name

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
  'path' => '/home/viest'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $instance->fileName('tutorial.xlsx', 'sheet');
?>


Vtiful\Kernel\Excel getHandle

  • « Vtiful\Kernel\Excel::fileName
  • Vtiful\Kernel\Excel::header »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel getHandle

Vtiful\Kernel\Excel::getHandle

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::getHandle — Vtiful\Kernel\Excel getHandle

Beschreibung

public Vtiful\Kernel\Excel::getHandle ( )

Get the xlsx text resource handle.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Resource

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$fileObject  = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
    ->header(['name', 'age']);

$handle = $file->getHandle();
?>


Vtiful\Kernel\Excel header

  • « Vtiful\Kernel\Excel::getHandle
  • Vtiful\Kernel\Excel::insertFormula »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel header

Vtiful\Kernel\Excel::header

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::header — Vtiful\Kernel\Excel header

Beschreibung

public Vtiful\Kernel\Excel::header ( array $headerData )

Write a header in the worksheet.

Parameter-Liste

headerData

worksheet header data

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$fileObject  = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
    ->header(['name', 'age']);
?>


Vtiful\Kernel\Excel insertFormula

  • « Vtiful\Kernel\Excel::header
  • Vtiful\Kernel\Excel::insertImage »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel insertFormula

Vtiful\Kernel\Excel::insertFormula

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertFormula — Vtiful\Kernel\Excel insertFormula

Beschreibung

public Vtiful\Kernel\Excel::insertFormula ( int $row , int $column , string $formula )

Insert calculation formula.

Parameter-Liste

row

cell row

column

cell column

formula

formula string

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName("free.xlsx")
    ->header(['name', 'money']);

for($index = 1; $index < 10; $index++) {
    $file->insertText($index, 0, 'viest');
    $file->insertText($index, 1, 10);
}

$file->insertText(12, 0, "Total");
$file->insertFormula(12, 1, '=SUM(B2:B11)'); // insert formula

$file->output();


Vtiful\Kernel\Excel insertImage

  • « Vtiful\Kernel\Excel::insertFormula
  • Vtiful\Kernel\Excel::insertText »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel insertImage

Vtiful\Kernel\Excel::insertImage

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertImage — Vtiful\Kernel\Excel insertImage

Beschreibung

public Vtiful\Kernel\Excel::insertImage ( int $row , int $column , string $localImagePath )

Insert a local image into the cell.

Parameter-Liste

row

cell row

column

cell column

localImagePath

local image path

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName("free.xlsx");

$file->insertImage(5, 0, '/vagrant/ASW-G-66.jpg');

$file->output();


Vtiful\Kernel\Excel insertText

  • « Vtiful\Kernel\Excel::insertImage
  • Vtiful\Kernel\Excel::mergeCells »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel insertText

Vtiful\Kernel\Excel::insertText

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertText — Vtiful\Kernel\Excel insertText

Beschreibung

public Vtiful\Kernel\Excel::insertText ( int $row , int $column , stringintdouble $data , string $format = ? )

Write text in a cell.

Parameter-Liste

row

cell row

column

cell column

data

data to be written

format

String format

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName("free.xlsx")
    ->header(['name', 'money']);

for ($index = 0; $index < 10; $index++) {
    $file->insertText($index+1, 0, 'viest');
    $file->insertText($index+1, 1, 10000, '#,##0');
}

$textFile->output();


Vtiful\Kernel\Excel mergeCells

  • « Vtiful\Kernel\Excel::insertText
  • Vtiful\Kernel\Excel::output »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel mergeCells

Vtiful\Kernel\Excel::mergeCells

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::mergeCells — Vtiful\Kernel\Excel mergeCells

Beschreibung

public Vtiful\Kernel\Excel::mergeCells ( string $scope , string $data )

Merge Cells.

Parameter-Liste

scope

cell start and end coordinate strings

data

string data

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$excel->fileName("test.xlsx")
        ->mergeCells('A1:C1', 'Merge cells')
        ->output();


Vtiful\Kernel\Excel output

  • « Vtiful\Kernel\Excel::mergeCells
  • Vtiful\Kernel\Excel::setColumn »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel output

Vtiful\Kernel\Excel::output

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::output — Vtiful\Kernel\Excel output

Beschreibung

public Vtiful\Kernel\Excel::output ( )

Output xlsx file to disk.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

XLSX file path;

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$fileObject  = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
    ->header(['name', 'age'])
    ->data([
      ['viest', 23],
      ['wjx', 23],
    ]);

$path = $file->output();
?>


Vtiful\Kernel\Excel setColumn

  • « Vtiful\Kernel\Excel::output
  • Vtiful\Kernel\Excel::setRow »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel setColumn

Vtiful\Kernel\Excel::setColumn

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::setColumn — Vtiful\Kernel\Excel setColumn

Beschreibung

public Vtiful\Kernel\Excel::setColumn ( string $range , float $width , resource $format = ? )

Set the format of the column.

Parameter-Liste

range

cell start and end coordinate strings

width

column width

format

cell format resource

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$excel  = new \Vtiful\Kernel\Excel($config);

$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();

$boldStyle = \Vtiful\Kernel\Format::bold($fileHandle);

$fileObject->header(['name', 'age'])
    ->data([['viest', 21]])
    ->setColumn('A:A', 200, $boldStyle)
    ->output();


Vtiful\Kernel\Excel setRow

  • « Vtiful\Kernel\Excel::setColumn
  • Vtiful\Kernel\Format »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel setRow

Vtiful\Kernel\Excel::setRow

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::setRow — Vtiful\Kernel\Excel setRow

Beschreibung

public Vtiful\Kernel\Excel::setRow ( string $range , float $height , resource $format = ? )

Set the format of the column.

Parameter-Liste

range

cell start and end coordinate strings

height

row height

format

cell format resource

Rückgabewerte

Vtiful\Kernel\Excel instance

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$excel  = new \Vtiful\Kernel\Excel($config);

$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();

$boldStyle = \Vtiful\Kernel\Format::bold($fileHandle);

$fileObject->header(['name', 'age'])
    ->data([['viest', 21]])
    ->setRow('A1', 20, $boldStyle,)
    ->output();


The Vtiful\Kernel\Format class

(PECL xlswriter >= 1.2.1)

Einführung

Create a cell format object

Klassenbeschreibung

Vtiful\Kernel\Format {
/* Constants */
const int FORMAT_ALIGN_LEFT = 1 ;
const int FORMAT_ALIGN_CENTER = 2 ;
const int FORMAT_ALIGN_RIGHT = 3 ;
const int FORMAT_ALIGN_FILL = 4 ;
const int FORMAT_ALIGN_JUSTIFY = 5 ;
const int FORMAT_ALIGN_CENTER_ACROSS = 6 ;
const int FORMAT_ALIGN_DISTRIBUTED = 7 ;
const int FORMAT_ALIGN_VERTICAL_TOP = 8 ;
const int FORMAT_ALIGN_VERTICAL_BOTTOM = 9 ;
const int FORMAT_ALIGN_VERTICAL_CENTER = 10 ;
const int FORMAT_ALIGN_VERTICAL_JUSTIFY = 11 ;
const int FORMAT_ALIGN_VERTICAL_DISTRIBUTED = 12 ;
const int UNDERLINE_SINGLE = 1 ;
const int UNDERLINE_DOUBLE = 2 ;
const int UNDERLINE_SINGLE_ACCOUNTING = 3 ;
const int UNDERLINE_DOUBLE_ACCOUNTING = 4 ;
/* Methoden */
public align ( resource $handle , int $style )
public bold ( resource $handle )
public italic ( resource $handle )
public underline ( resource $handle , int $style )
}

Vordefinierte Konstanten

Vtiful\Kernel\Format::FORMAT_ALIGN_LEFT

Vtiful\Kernel\Format::FORMAT_ALIGN_CENTER

Vtiful\Kernel\Format::FORMAT_ALIGN_RIGHT

Vtiful\Kernel\Format::FORMAT_ALIGN_FILL

Vtiful\Kernel\Format::FORMAT_ALIGN_JUSTIFY

Vtiful\Kernel\Format::FORMAT_ALIGN_CENTER_ACROSS

Vtiful\Kernel\Format::FORMAT_ALIGN_DISTRIBUTED

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_TOP

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_BOTTOM

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_CENTER

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_JUSTIFY

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_DISTRIBUTED

Vtiful\Kernel\Format::UNDERLINE_SINGLE

Vtiful\Kernel\Format::UNDERLINE_DOUBLE

Vtiful\Kernel\Format::UNDERLINE_SINGLE_ACCOUNTING

Vtiful\Kernel\Format::UNDERLINE_DOUBLE_ACCOUNTING

Inhaltsverzeichnis

  • Vtiful\Kernel\Format::align — Vtiful\Kernel\Format align
  • Vtiful\Kernel\Format::bold — Vtiful\Kernel\Format bold
  • Vtiful\Kernel\Format::italic — Vtiful\Kernel\Format italic
  • Vtiful\Kernel\Format::underline — Vtiful\Kernel\Format underline


Vtiful\Kernel\Format align

  • « Vtiful\Kernel\Format
  • Vtiful\Kernel\Format::bold »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Vtiful\Kernel\Format align

Vtiful\Kernel\Format::align

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::align — Vtiful\Kernel\Format align

Beschreibung

public Vtiful\Kernel\Format::align ( resource $handle , int $style )

set cell align

Parameter-Liste

handle

xlsx file handle

style

Vtiful\Kernel\Format constant

Rückgabewerte

Resource

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$excel  = new \Vtiful\Kernel\Excel($config);

$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();

$alignStyle = \Vtiful\Kernel\Format::align($fileHandle, \Vtiful\Kernel\Format::FORMAT_ALIGN_LEFT);

$fileObject->header(['name', 'age'])
    ->data([['viest', 21]])
    ->setColumn('A:A', 200, $align)
    ->output();
?>


Vtiful\Kernel\Format bold

  • « Vtiful\Kernel\Format::align
  • Vtiful\Kernel\Format::italic »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Vtiful\Kernel\Format bold

Vtiful\Kernel\Format::bold

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::bold — Vtiful\Kernel\Format bold

Beschreibung

public Vtiful\Kernel\Format::bold ( resource $handle )

Vtiful\Kernel\Format bold format

Parameter-Liste

handle

xlsx file handle

Rückgabewerte

Resource

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$excel  = new \Vtiful\Kernel\Excel($config);

$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();

$boldStyle = \Vtiful\Kernel\Format::bold($fileHandle);

$fileObject->header(['name', 'age'])
    ->data([['viest', 21]])
    ->setColumn('A:A', 200, $boldStyle)
    ->output();
?>


Vtiful\Kernel\Format italic

  • « Vtiful\Kernel\Format::bold
  • Vtiful\Kernel\Format::underline »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Vtiful\Kernel\Format italic

Vtiful\Kernel\Format::italic

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::italic — Vtiful\Kernel\Format italic

Beschreibung

public Vtiful\Kernel\Format::italic ( resource $handle )

Vtiful\Kernel\Format italic format

Parameter-Liste

handle

xlsx file handle

Rückgabewerte

Resource

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$excel  = new \Vtiful\Kernel\Excel($config);

$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();

$italicStyle = \Vtiful\Kernel\Format::italic($fileHandle);

$fileObject->header(['name', 'age'])
    ->data([['viest', 21]])
    ->setColumn('A:A', 200, $italicStyle)
    ->output();
?>


Vtiful\Kernel\Format underline

  • « Vtiful\Kernel\Format::italic
  • Erweiterungen zur Prozesskontrolle »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Vtiful\Kernel\Format underline

Vtiful\Kernel\Format::underline

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::underline — Vtiful\Kernel\Format underline

Beschreibung

public Vtiful\Kernel\Format::underline ( resource $handle , int $style )

Vtiful\Kernel\Format underline format

Parameter-Liste

handle

xlsx file handle

style

Vtiful\Kernel\Format constant

Rückgabewerte

Resource

Beispiele

Beispiel #1 example

<?php
$config = [
    'path' => './tests'
];

$excel  = new \Vtiful\Kernel\Excel($config);

$fileObject = $excel->fileName('tutorial01.xlsx');
$fileHandle = $fileObject->getHandle();

$underlineStyle = \Vtiful\Kernel\Format::underline($fileHandle, \Vtiful\Kernel\Format::UNDERLINE_SINGLE);

$fileObject->header(['name', 'age'])
    ->data([['viest', 21]])
    ->setColumn('A:A', 200, $underlineStyle)
    ->output();
?>


Erweiterungen zur Prozesskontrolle

  • Eio
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Eio Funktionen
  • Ev
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Watchers
    • Watcher callbacks
    • Periodic watcher operation modes
    • Ev — The Ev class
    • EvCheck — The EvCheck class
    • EvChild — The EvChild class
    • EvEmbed — The EvEmbed class
    • EvFork — The EvFork class
    • EvIdle — The EvIdle class
    • EvIo — The EvIo class
    • EvLoop — The EvLoop class
    • EvPeriodic — The EvPeriodic class
    • EvPrepare — The EvPrepare class
    • EvSignal — The EvSignal class
    • EvStat — The EvStat class
    • EvTimer — The EvTimer class
    • EvWatcher — The EvWatcher class
  • Expect
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Expect Funktionen
  • PCNTL — Prozesskontrolle
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • PCNTL Funktionen
  • POSIX
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • POSIX Funktionen
  • Programmausführung — Ausführung von Systemprogrammen
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Funktionen zur Programmausführung
  • parallel
    • Einführung
    • Installation
    • Philosophy
    • Functional API
    • parallel\Runtime — The parallel\Runtime class
    • parallel\Future — The parallel\Future class
    • parallel\Channel — The parallel\Channel class
    • parallel\Events — The parallel\Events class
    • parallel\Events\Input — The parallel\Events\Input class
    • parallel\Events\Event — The parallel\Events\Event class
    • parallel\Events\Event\Type — The parallel\Events\Event\Type class
    • parallel\Sync — The parallel\Sync class
  • pthreads
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Threaded — The Threaded class
    • Thread — The Thread class
    • Worker — The Worker class
    • Collectable — The Collectable interface
    • Modifiers — Method Modifiers
    • Pool — The Pool class
    • Mutex — The Mutex class
    • Cond — The Cond class
    • Volatile — The Volatile class
  • pht
    • Einführung
    • Installation/Konfiguration
    • pht\Thread — The Thread class
    • pht\Runnable — The Runnable interface
    • pht\HashTable — The HashTable class
    • pht\Vector — The Vector class
    • pht\Queue — The Queue class
    • pht\AtomicInteger — The AtomicInteger class
    • pht\Threaded — The Threaded interface
  • Semaphore — Semaphore, Shared Memory and IPC
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Semaphore Funktionen
  • Shared Memory
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Shared Memory Funktionen
    • Shmop — The Shmop class
  • Sync
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • SyncMutex — The SyncMutex class
    • SyncSemaphore — The SyncSemaphore class
    • SyncEvent — The SyncEvent class
    • SyncReaderWriter — The SyncReaderWriter class
    • SyncSharedMemory — The SyncSharedMemory class


Eio

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Eio Funktionen
    • eio_busy — Artificially increase load. Could be useful in tests, benchmarking
    • eio_cancel — Cancels a request
    • eio_chmod — Change file/directory permissions
    • eio_chown — Change file/directory permissions
    • eio_close — Close file
    • eio_custom — Execute custom request like any other eio_* call
    • eio_dup2 — Duplicate a file descriptor
    • eio_event_loop — Polls libeio until all requests proceeded
    • eio_fallocate — Allows the caller to directly manipulate the allocated disk space for a file
    • eio_fchmod — Change file permissions
    • eio_fchown — Change file ownership
    • eio_fdatasync — Synchronize a file's in-core state with storage device
    • eio_fstat — Get file status
    • eio_fstatvfs — Get file system statistics
    • eio_fsync — Synchronize a file's in-core state with storage device
    • eio_ftruncate — Truncate a file
    • eio_futime — Change file last access and modification times
    • eio_get_event_stream — Get stream representing a variable used in internal communications with libeio
    • eio_get_last_error — Returns string describing the last error associated with a request resource
    • eio_grp_add — Adds a request to the request group
    • eio_grp_cancel — Cancels a request group
    • eio_grp_limit — Set group limit
    • eio_grp — Creates a request group
    • eio_init — (Re-)initialize Eio
    • eio_link — Create a hardlink for file
    • eio_lstat — Get file status
    • eio_mkdir — Create directory
    • eio_mknod — Create a special or ordinary file
    • eio_nop — Does nothing, except go through the whole request cycle
    • eio_npending — Returns number of finished, but unhandled requests
    • eio_nready — Returns number of not-yet handled requests
    • eio_nreqs — Returns number of requests to be processed
    • eio_nthreads — Returns number of threads currently in use
    • eio_open — Opens a file
    • eio_poll — Can be to be called whenever there are pending requests that need finishing
    • eio_read — Read from a file descriptor at given offset
    • eio_readahead — Perform file readahead into page cache
    • eio_readdir — Reads through a whole directory
    • eio_readlink — Read value of a symbolic link
    • eio_realpath — Get the canonicalized absolute pathname
    • eio_rename — Change the name or location of a file
    • eio_rmdir — Remove a directory
    • eio_seek — Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence
    • eio_sendfile — Transfer data between file descriptors
    • eio_set_max_idle — Set maximum number of idle threads
    • eio_set_max_parallel — Set maximum parallel threads
    • eio_set_max_poll_reqs — Set maximum number of requests processed in a poll
    • eio_set_max_poll_time — Set maximum poll time
    • eio_set_min_parallel — Set minimum parallel thread number
    • eio_stat — Get file status
    • eio_statvfs — Get file system statistics
    • eio_symlink — Create a symbolic link
    • eio_sync_file_range — Sync a file segment with disk
    • eio_sync — Commit buffer cache to disk
    • eio_syncfs — Calls Linux' syncfs syscall, if available
    • eio_truncate — Truncate a file
    • eio_unlink — Delete a name and possibly the file it refers to
    • eio_utime — Change file last access and modification times
    • eio_write — Write to file


Einführung

This extension provides asyncronous POSIX I/O by means of » libeio C library written by Marc Lehmann.

Hinweis: Diese Erweiterung steht auf Windows-Betriebssystemen nicht zur Verfügung.

Warnung

It is important to be aware that each request is executed in a thread, and the order of execution of continuously queued requests basically is unpredictable. For instance, the following piece of code is incorrect.

Beispiel #1 Incorrect requests

<?php
// Request to create symlink of $filename to $link
eio_symlink($filename, $link);

// Request to move $filename to $new_filename
eio_rename($filename, $new_filename);

// Process requests
eio_event_loop();
?>
In the example above eio_rename() request may finish before eio_symlink(). To fix it you might call eio_rename() in the callback of eio_symlink():

Beispiel #2 Calling request from a request callback

<?php
function my_symlink_done($filename, $result) {
 // Request to move $filename to $new_filename
 eio_rename($filename, "/path/to/new-name");

 // Process requests
 eio_event_loop();
}

// Request to create symlink of $filename to $link
eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_done", $filename);

// Process requests
eio_event_loop();
?>
Alternatively, you might want to create a request group:

Beispiel #3 Calling request from a request callback

<?php
/* Is called when the group requests are done */
function my_grp_done($data, $result) {
 // ...
}

function my_symlink_done($filename, $result) {
 // Create eio_rename request and add it to the group
 $req = eio_rename($filename, "/path/to/new-name");
 eio_grp_add($grp, $req);
 // You might want to add more requests...
}

// Create a request group
$grp = eio_grp("my_grp_done", "my_grp_data");

// Create eio_symlink request and add it to the group
// Pass $filename to the callback
$req = eio_symlink($filename, $link,
  EIO_PRI_DEFAULT, "my_symlink_done", $filename);
eio_grp_add($grp, $req);

// Process requests
eio_event_loop();
?>
Group is a special kind of request that could accumulate a set of regular eio requests. This could be used to create a complex request that opens, reads and closes a file.

Since version 0.3.0 alpha, a variable used in communications with libeio internally, could be retrieved with eio_get_event_stream(). The variable could be used to bind to an event loop supported by some other extension. You might organize a simple event loop where eio and libevent work together:

Beispiel #4 Using eio with libevent

<?php
function my_eio_poll($fd, $events, $arg) {
    /* Some libevent regulation might go here .. */
    if (eio_nreqs()) {
        eio_poll();
    }
    /* .. and here */
}

function my_res_cb($d, $r) {
    var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

// This stream is used to bind with libevent
$fd = eio_get_event_stream();

eio_nop(EIO_PRI_DEFAULT, "my_res_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_res_cb", "mkdir data");
/* some other eio_* calls here ... */

// set event flags
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// set event base
event_base_set($event, $base);

// enable event
event_add($event);

// start event loop
event_base_loop($base);

/* The same will be available via buffered libevent interface */
?>


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

This extension has » libeio library embedded. So you do NOT need to install libeio separately.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/eio.

For information about manual installation, please read the file INSTALL included in the package.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

There are two resource types in this extension: request and request group.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Request priority constants:

EIO_PRI_MIN (int)
Request minimal prioriry
EIO_PRI_DEFAULT (int)
Request default prioriry
EIO_PRI_MAX (int)
Request maximal prioriry

eio_seek() whence argument:

EIO_SEEK_SET (int)
The offset is set to specified number of bytes(offset).
EIO_SEEK_CUR (int)
The offset is set to its current location plus offset bytes.
EIO_SEEK_END (int)
The offset is set to the size of the file plus offset bytes.

Flags used with eio_readdir():

EIO_READDIR_DENTS (int)
eio_readdir() flag. If specified, the result argument of the callback becomes an array with the following keys: 'names' - array of directory names 'dents' - array of struct eio_dirent-like arrays having the following keys each: 'name' - the directory name; 'type' - one of EIO_DT_* constants; 'inode' - the inode number, if available, otherwise unspecified;
EIO_READDIR_DIRS_FIRST (int)
When this flag is specified, the names will be returned in an order where likely directories come first, in optimal stat order.
EIO_READDIR_STAT_ORDER (int)
When this flag is specified, then the names will be returned in an order suitable for stat'ing each one. When planning to stat() all files in the given directory, the returned order will likely be fastest.
EIO_READDIR_FOUND_UNKNOWN (int)
EIO_DT_UNKNOWN (int)
Unknown node type(very common). Further stat() needed.
EIO_DT_FIFO (int)
FIFO node type
EIO_DT_CHR (int)
Node type
EIO_DT_MPC (int)
Multiplexed char device (v7+coherent) node type
EIO_DT_DIR (int)
Directory node type
EIO_DT_NAM (int)
Xenix special named file node type
EIO_DT_BLK (int)
Node type
EIO_DT_MPB (int)
Multiplexed block device (v7+coherent)
EIO_DT_REG (int)
Node type
EIO_DT_NWK (int)
EIO_DT_CMP (int)
HP-UX network special node type
EIO_DT_LNK (int)
Link node type
EIO_DT_SOCK (int)
Socket node type
EIO_DT_DOOR (int)
Solaris door node type
EIO_DT_WHT (int)
Node type
EIO_DT_MAX (int)
Highest node type value

Access modes for eio_open() flags argument:

EIO_O_RDONLY (int)
EIO_O_WRONLY (int)
EIO_O_RDWR (int)
EIO_O_NONBLOCK (int)
EIO_O_APPEND (int)
EIO_O_CREAT (int)
EIO_O_TRUNC (int)
EIO_O_EXCL (int)
EIO_O_FSYNC (int)

mode argument flags for eio_open():

EIO_S_IRUSR (int)
EIO_S_IWUSR (int)
EIO_S_IXUSR (int)
EIO_S_IRGRP (int)
EIO_S_IWGRP (int)
EIO_S_IXGRP (int)
EIO_S_IROTH (int)
EIO_S_IWOTH (int)
EIO_S_IXOTH (int)
EIO_S_IFREG (int)
EIO_S_IFCHR (int)
EIO_S_IFBLK (int)
EIO_S_IFIFO (int)
EIO_S_IFSOCK (int)

eio_sync_file_range() flags:

EIO_SYNC_FILE_RANGE_WAIT_BEFORE (int)
EIO_SYNC_FILE_RANGE_WRITE (int)
EIO_SYNC_FILE_RANGE_WAIT_AFTER (int)

eio_fallocate() flags:

EIO_FALLOC_FL_KEEP_SIZE (int)

Hinweis:

EIO_S_I* constants have the same meaning as their S_I* POSIX counterparts.

Hinweis:

EIO_SYNC_FILE_* constants have the same meaning as their SYNC_FILE_** counterparts.

Hinweis:

EIO_O_* constants have the same meaning as their O_* POSIX counterparts.


Beispiele

Beispiel #1 Cancelling a request

<?php
 /* Is called when eio_nop() finished */
 function my_nop_cb($data, $result) {
  echo "my_nop ", $data, "\n";
 }

// This eio_nop() call will be cancelled
$req = eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "1");
var_dump($req);
eio_cancel($req);

// This time eio_nop() will be processed
eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "2");

// Process requests
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

resource(4) of type (EIO Request Descriptor)
my_nop 2

Beispiel #2 Calling eio_chmod()

<?php
$temp_filename = dirname(__FILE__) ."/eio-temp-file.tmp";
touch($temp_filename);

/* Is called when eio_chmod() finished */
function my_chmod_callback($data, $result) {
    global $temp_filename;

    if ($result == 0 && !is_readable($temp_filename) && is_writable($temp_filename)) {
        echo "eio_chmod_ok";
    }

    @unlink($temp_filename);
}

eio_chmod($temp_filename, 0200, EIO_PRI_DEFAULT, "my_chmod_callback");
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

eio_chmod_ok

Beispiel #3 Making a custom request

<?php
/* Callback for the custom callback */
function my_custom_callback($data, $result) {
    var_dump($data);
    var_dump(count($result));
    var_dump($result['data_modified']);
    var_dump($result['result']);
}

/* The custom request */
function my_custom($data) {
    var_dump($data);

    $result  = array(
        'result'        => 1001,
        'data_modified' => "my custom data",
    );

    return $result;
}

$data = "my_custom_data";
$req = eio_custom("my_custom", EIO_PRI_DEFAULT, "my_custom_callback", $data);
var_dump($req);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

resource(4) of type (EIO Request Descriptor)
string(14) "my_custom_data"
string(14) "my_custom_data"
int(2)
string(14) "my custom data"
int(1001)

Beispiel #4 Grouping requests

<?php
/*
 * Create a group request to open, read and close a file
 */

$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);

/* Is called when the group requests are done */
function my_grp_done($data, $result) {
 global $temp_filename;
 var_dump($result == 0);
 @unlink($temp_filename);
}

/* Is called when eio_open() done */
function my_grp_file_opened_callback($data, $result) {
 global $my_file_fd, $grp;

 $my_file_fd = $result;

 var_dump($result > 0);

 // Create eio_read() request and add it to the group
 $req = eio_read($my_file_fd, 4, 0, EIO_PRI_DEFAULT, "my_grp_file_read_callback");
 eio_grp_add($grp, $req);
}

/* Is called when eio_read() done */
function my_grp_file_read_callback($data, $result) {
 global $my_file_fd, $grp;

 var_dump($result);

 // Create eio_close() request and add it to the group
 $req = eio_close($my_file_fd);
 eio_grp_add($grp, $req);
}

$grp = eio_grp("my_grp_done", "my_grp_data");

// Create eio_open() request and add it to the group
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
  EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);
eio_grp_add($grp, $req);
var_dump($grp);

eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

resource(6) of type (EIO Group Descriptor)
bool(true)
string(4) "some"
bool(true)

Beispiel #5 Using eio with libevent extension

<?php
function my_eio_poll($fd, $events, $arg) {
    /* Some libevent regulation might go here .. */
    if (eio_nreqs()) {
        eio_poll();
    }
    /* .. and here */
}

function my_nop_cb($d, $r) {
    var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

$fd = eio_get_event_stream();
var_dump($fd);

eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_nop_cb", "nop data");
/* some other eio_* calls here ... */

// set event flags
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// set event base
event_base_set($event, $base);

// enable event
event_add($event);

// start event loop
event_base_loop($base);

/* The same will be available via buffered libevent interface */
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)
int(0)
string(8) "nop data"
int(0)
string(10) "mkdir data"

Beispiel #6 Using eio with event extension

<?php
$base = new EventBase();

// Retrieve eio polling stream.
// Note, this variable should be alive as long as the event loop is running.
$eio_stream = eio_get_event_stream();

// Bind eio polling stream to the event loop.
$poll_event = new Event($base, $eio_stream, Event::READ, function () {
  if (eio_nreqs()) {
    eio_poll();
  }
});
$poll_event->add();

// Add eio jobs
eio_nop(EIO_PRI_DEFAULT, function () {
  echo "eio_nop\n";
});

// Add events
$timer = Event::timer($base, function () {
  echo "2 seconds elapsed\n";
});
$timer->add(2);

// Dispatch events.
$base->dispatch();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

eio_nop
2 seconds elapsed


Eio Funktionen

Inhaltsverzeichnis

  • eio_busy — Artificially increase load. Could be useful in tests, benchmarking
  • eio_cancel — Cancels a request
  • eio_chmod — Change file/directory permissions
  • eio_chown — Change file/directory permissions
  • eio_close — Close file
  • eio_custom — Execute custom request like any other eio_* call
  • eio_dup2 — Duplicate a file descriptor
  • eio_event_loop — Polls libeio until all requests proceeded
  • eio_fallocate — Allows the caller to directly manipulate the allocated disk space for a file
  • eio_fchmod — Change file permissions
  • eio_fchown — Change file ownership
  • eio_fdatasync — Synchronize a file's in-core state with storage device
  • eio_fstat — Get file status
  • eio_fstatvfs — Get file system statistics
  • eio_fsync — Synchronize a file's in-core state with storage device
  • eio_ftruncate — Truncate a file
  • eio_futime — Change file last access and modification times
  • eio_get_event_stream — Get stream representing a variable used in internal communications with libeio
  • eio_get_last_error — Returns string describing the last error associated with a request resource
  • eio_grp_add — Adds a request to the request group
  • eio_grp_cancel — Cancels a request group
  • eio_grp_limit — Set group limit
  • eio_grp — Creates a request group
  • eio_init — (Re-)initialize Eio
  • eio_link — Create a hardlink for file
  • eio_lstat — Get file status
  • eio_mkdir — Create directory
  • eio_mknod — Create a special or ordinary file
  • eio_nop — Does nothing, except go through the whole request cycle
  • eio_npending — Returns number of finished, but unhandled requests
  • eio_nready — Returns number of not-yet handled requests
  • eio_nreqs — Returns number of requests to be processed
  • eio_nthreads — Returns number of threads currently in use
  • eio_open — Opens a file
  • eio_poll — Can be to be called whenever there are pending requests that need finishing
  • eio_read — Read from a file descriptor at given offset
  • eio_readahead — Perform file readahead into page cache
  • eio_readdir — Reads through a whole directory
  • eio_readlink — Read value of a symbolic link
  • eio_realpath — Get the canonicalized absolute pathname
  • eio_rename — Change the name or location of a file
  • eio_rmdir — Remove a directory
  • eio_seek — Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence
  • eio_sendfile — Transfer data between file descriptors
  • eio_set_max_idle — Set maximum number of idle threads
  • eio_set_max_parallel — Set maximum parallel threads
  • eio_set_max_poll_reqs — Set maximum number of requests processed in a poll
  • eio_set_max_poll_time — Set maximum poll time
  • eio_set_min_parallel — Set minimum parallel thread number
  • eio_stat — Get file status
  • eio_statvfs — Get file system statistics
  • eio_symlink — Create a symbolic link
  • eio_sync_file_range — Sync a file segment with disk
  • eio_sync — Commit buffer cache to disk
  • eio_syncfs — Calls Linux' syncfs syscall, if available
  • eio_truncate — Truncate a file
  • eio_unlink — Delete a name and possibly the file it refers to
  • eio_utime — Change file last access and modification times
  • eio_write — Write to file


Artificially increase load. Could be useful in tests, benchmarking

  • « Eio Funktionen
  • eio_cancel »
  • PHP Manual
  • Eio Funktionen
  • Artificially increase load. Could be useful in tests, benchmarking

eio_busy

(PECL eio >= 0.0.1dev)

eio_busy — Artificially increase load. Could be useful in tests, benchmarking

Beschreibung

eio_busy ( int $delay , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_busy() artificially increases load taking delay seconds to execute. May be used for debugging, or benchmarking.

Parameter-Liste

delay

Delay in seconds

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

This callback is called when all the group requests are done.

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_busy() returns request resource on success or false on error.

Siehe auch

  • eio_nop() - Does nothing, except go through the whole request cycle


Cancels a request

  • « eio_busy
  • eio_chmod »
  • PHP Manual
  • Eio Funktionen
  • Cancels a request

eio_cancel

(PECL eio >= 0.0.1dev)

eio_cancel — Cancels a request

Beschreibung

eio_cancel ( resource $req ) : void

eio_cancel() cancels a request specified by req

Parameter-Liste

req

The request resource

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 eio_cancel() example

<?php
 /* Is called when eio_nop() finished */
 function my_nop_cb($data, $result) {
  echo "my_nop ", $data, "\n";
 }

// This eio_nop() call will be cancelled
$req = eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "1");
var_dump($req);
eio_cancel($req);

// This time eio_nop() will be processed
eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "2");

// Process requests
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

resource(4) of type (EIO Request Descriptor)
my_nop 2

Siehe auch

  • eio_grp_cancel() - Cancels a request group


Change file/directory permissions

  • « eio_cancel
  • eio_chown »
  • PHP Manual
  • Eio Funktionen
  • Change file/directory permissions

eio_chmod

(PECL eio >= 0.0.1dev)

eio_chmod — Change file/directory permissions

Beschreibung

eio_chmod ( string $path , int $mode , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_chmod() changes file, or directory permissions. The new permissions are specified by mode.

Parameter-Liste

path

Path to the target file or directory

Warnung

Avoid relative paths

mode

The new permissions. E.g. 0644.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_chmod() returns request resource on success or false on error.

Siehe auch

  • eio_chown() - Change file/directory permissions


Change file/directory permissions

  • « eio_chmod
  • eio_close »
  • PHP Manual
  • Eio Funktionen
  • Change file/directory permissions

eio_chown

(PECL eio >= 0.0.1dev)

eio_chown — Change file/directory permissions

Beschreibung

eio_chown ( string $path , int $uid , int $gid = -1 , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

Changes file, or directory permissions.

Parameter-Liste

path

Path to file or directory.

Warnung

Avoid relative paths

uid

User ID. Is ignored when equal to -1.

gid

Group ID. Is ignored when equal to -1.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_chown() returns request resource on success or false on error.

Siehe auch

  • eio_chmod() - Change file/directory permissions


Close file

  • « eio_chown
  • eio_custom »
  • PHP Manual
  • Eio Funktionen
  • Close file

eio_close

(PECL eio >= 0.0.1dev)

eio_close — Close file

Beschreibung

eio_close ( mixed $fd , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_close() closes file specified by fd.

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_close() returns request resource on success or false on error.

Siehe auch

  • eio_open() - Opens a file


Execute custom request like any other eio_* call

  • « eio_close
  • eio_dup2 »
  • PHP Manual
  • Eio Funktionen
  • Execute custom request like any other eio_* call

eio_custom

(PECL eio >= 0.0.1dev)

eio_custom — Execute custom request like any other eio_* call

Beschreibung

eio_custom ( callable $execute , int $pri , callable $callback , mixed $data = NULL ) : resource

eio_custom() executes custom function specified by execute processing it just like any other eio_* call.

Parameter-Liste

execute

Specifies the request function that should match the following prototype:

      mixed execute(mixed data);
callback is event completion callback that should match the following prototype:
      void callback(mixed data, mixed result);
data is the data passed to execute via data argument without modifications result value returned by execute

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_custom() returns request resource on success or false on error.

Beispiele

Beispiel #1 eio_custom() example

<?php
/* Callback for the custom callback */
function my_custom_callback($data, $result) {
    var_dump($data);
    var_dump(count($result));
    var_dump($result['data_modified']);
    var_dump($result['result']);
}

/* The custom request */
function my_custom($data) {
    var_dump($data);

    $result  = array(
        'result'        => 1001,
        'data_modified' => "my custom data",
    );

    return $result;
}

$data = "my_custom_data";
$req = eio_custom("my_custom", EIO_PRI_DEFAULT, "my_custom_callback", $data);
var_dump($req);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

resource(4) of type (EIO Request Descriptor)
string(14) "my_custom_data"
string(14) "my_custom_data"
int(2)
string(14) "my custom data"
int(1001)


Duplicate a file descriptor

  • « eio_custom
  • eio_event_loop »
  • PHP Manual
  • Eio Funktionen
  • Duplicate a file descriptor

eio_dup2

(PECL eio >= 0.0.1dev)

eio_dup2 — Duplicate a file descriptor

Beschreibung

eio_dup2 ( mixed $fd , mixed $fd2 , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_dup2() duplicates file descriptor.

Parameter-Liste

fd

Source stream, Socket resource, or numeric file descriptor

fd2

Target stream, Socket resource, or numeric file descriptor

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_dup2() returns request resource on success or false on error.


Polls libeio until all requests proceeded

  • « eio_dup2
  • eio_fallocate »
  • PHP Manual
  • Eio Funktionen
  • Polls libeio until all requests proceeded

eio_event_loop

(PECL eio >= 0.0.1dev)

eio_event_loop — Polls libeio until all requests proceeded

Beschreibung

eio_event_loop ( ) : bool

eio_event_loop() polls libeio until all requests proceeded.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

eio_event_loop() returns true on success or false on error.

Beispiele

Beispiel #1 eio_event_loop() example

<?php
$temp_filename = "eio-temp-file.tmp";
touch($temp_filename);

/* Is called when eio_chmod() finished */
function my_chmod_callback($data, $result) {
    global $temp_filename;

    if ($result == 0 && !is_readable($temp_filename) && is_writable($temp_filename)) {
        echo "eio_chmod_ok";
    }

    @unlink($temp_filename);
}

eio_chmod($temp_filename, 0200, EIO_PRI_DEFAULT, "my_chmod_callback");
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

eio_chmod_ok

Siehe auch

  • eio_poll() - Can be to be called whenever there are pending requests that need finishing


Allows the caller to directly manipulate the allocated disk space for a file

  • « eio_event_loop
  • eio_fchmod »
  • PHP Manual
  • Eio Funktionen
  • Allows the caller to directly manipulate the allocated disk space for a file

eio_fallocate

(PECL eio >= 0.0.1dev)

eio_fallocate — Allows the caller to directly manipulate the allocated disk space for a file

Beschreibung

eio_fallocate ( mixed $fd , int $mode , int $offset , int $length , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_fallocate() allows the caller to directly manipulate the allocated disk space for the file specified by fd file descriptor for the byte range starting at offset and continuing for length bytes.

Hinweis: File should be opened for writing

EIO_O_CREAT should be logically OR'd with EIO_O_WRONLY, or EIO_O_RDWR

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open().

mode

Currently only one flag is supported for mode: EIO_FALLOC_FL_KEEP_SIZE (the same as POSIX constant FALLOC_FL_KEEP_SIZE).

offset

Specifies start of the byte range.

length

Specifies length the byte range.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_fallocate() returns request resource on success or false on error.


Change file permissions

  • « eio_fallocate
  • eio_fchown »
  • PHP Manual
  • Eio Funktionen
  • Change file permissions

eio_fchmod

(PECL eio >= 0.0.1dev)

eio_fchmod — Change file permissions

Beschreibung

eio_fchmod ( mixed $fd , int $mode , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_fchmod() changes permissions for the file specified by fd file descriptor.

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open().

mode

The new permissions. E.g. 0644.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_fchmod() returns request resource on success or false on error.

Siehe auch

  • eio_fchown() - Change file ownership


Change file ownership

  • « eio_fchmod
  • eio_fdatasync »
  • PHP Manual
  • Eio Funktionen
  • Change file ownership

eio_fchown

(PECL eio >= 0.0.1dev)

eio_fchown — Change file ownership

Beschreibung

eio_fchown ( mixed $fd , int $uid , int $gid = -1 , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_fchown() changes ownership of the file specified by fd file descriptor.

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor.

uid

User ID. Is ignored when equal to -1.

gid

Group ID. Is ignored when equal to -1.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Siehe auch

  • eio_fchmod() - Change file permissions


Synchronize a file's in-core state with storage device

  • « eio_fchown
  • eio_fstat »
  • PHP Manual
  • Eio Funktionen
  • Synchronize a file's in-core state with storage device

eio_fdatasync

(PECL eio >= 0.0.1dev)

eio_fdatasync — Synchronize a file's in-core state with storage device

Beschreibung

eio_fdatasync ( mixed $fd , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_fdatasync() synchronizes a file's in-core state with storage device.

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open().

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_fdatasync() returns request resource on success or false on error.


Get file status

  • « eio_fdatasync
  • eio_fstatvfs »
  • PHP Manual
  • Eio Funktionen
  • Get file status

eio_fstat

(PECL eio >= 0.0.1dev)

eio_fstat — Get file status

Beschreibung

eio_fstat ( mixed $fd , int $pri , callable $callback , mixed $data = ? ) : resource

eio_fstat() returns file status information in result argument of callback

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_busy() returns request resource on success or false on error.

Beispiele

Beispiel #1 eio_lstat() example

<?php
// Create temporary file
$tmp_filename = dirname(__FILE__) ."/eio-file.tmp";
touch($tmp_filename);

/* Is called when eio_fstat() done */
function my_res_cb($data, $result) {
 // Should output array with stat info
 var_dump($result);

 if ($data['fd']) {
  // Close temporary file
  eio_close($data['fd']);
  eio_event_loop();
 }
 // Remove temporary file
 @unlink($data['file']);
}

/* Is called when eio_open() done */
function my_open_cb($data, $result) {
 // Prepare data for callback
 $d = array(
  'fd'  => $result,
  'file'=> $data
 );
 // Request stat info
 eio_fstat($result, EIO_PRI_DEFAULT, "my_res_cb", $d);
 // Process request(s)
 eio_event_loop();
}

// Open temporary file
eio_open($tmp_filename, EIO_O_RDONLY, NULL, EIO_PRI_DEFAULT,
  "my_open_cb", $tmp_filename);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(12) {
 ["st_dev"]=>
  int(2050)
  ["st_ino"]=>
  int(2489159)
  ["st_mode"]=>
  int(33188)
  ["st_nlink"]=>
  int(1)
  ["st_uid"]=>
  int(1000)
  ["st_gid"]=>
  int(100)
  ["st_rdev"]=>
  int(0)
  ["st_blksize"]=>
  int(4096)
  ["st_blocks"]=>
  int(0)
  ["st_atime"]=>
  int(1318239506)
  ["st_mtime"]=>
  int(1318239506)
  ["st_ctime"]=>
  int(1318239506)
}

Siehe auch

  • eio_lstat() - Get file status
  • eio_stat() - Get file status


Get file system statistics

  • « eio_fstat
  • eio_fsync »
  • PHP Manual
  • Eio Funktionen
  • Get file system statistics

eio_fstatvfs

(PECL eio >= 0.0.1dev)

eio_fstatvfs — Get file system statistics

Beschreibung

eio_fstatvfs ( mixed $fd , int $pri , callable $callback , mixed $data = ? ) : resource

eio_fstatvfs() returns file system statistics in result of callback.

Parameter-Liste

fd

A file descriptor of a file within the mounted file system.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_fstatvfs() returns request resource on success or false on error.

Siehe auch

  • eio_statvfs() - Get file system statistics


Synchronize a file's in-core state with storage device

  • « eio_fstatvfs
  • eio_ftruncate »
  • PHP Manual
  • Eio Funktionen
  • Synchronize a file's in-core state with storage device

eio_fsync

(PECL eio >= 0.0.1dev)

eio_fsync — Synchronize a file's in-core state with storage device

Beschreibung

eio_fsync ( mixed $fd , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

Synchronize a file's in-core state with storage device

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_fsync() returns request resource on success or false on error.

Siehe auch

  • eio_sync() - Commit buffer cache to disk


Truncate a file

  • « eio_fsync
  • eio_futime »
  • PHP Manual
  • Eio Funktionen
  • Truncate a file

eio_ftruncate

(PECL eio >= 0.0.1dev)

eio_ftruncate — Truncate a file

Beschreibung

eio_ftruncate ( mixed $fd , int $offset = 0 , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_ftruncate() causes a regular file referenced by fd file descriptor to be truncated to precisely length bytes.

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor.

offset

Offset from beginning of the file

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_ftruncate() returns request resource on success or false on error.

Siehe auch

  • eio_truncate() - Truncate a file


Change file last access and modification times

  • « eio_ftruncate
  • eio_get_event_stream »
  • PHP Manual
  • Eio Funktionen
  • Change file last access and modification times

eio_futime

(PECL eio >= 0.0.1dev)

eio_futime — Change file last access and modification times

Beschreibung

eio_futime ( mixed $fd , float $atime , float $mtime , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_futime() changes file last access and modification times.

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open()

atime

Access time

mtime

Modification time

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_futime() returns request resource on success or false on error.

Siehe auch

  • eio_utime() - Change file last access and modification times


Get stream representing a variable used in internal communications with libeio

  • « eio_futime
  • eio_get_last_error »
  • PHP Manual
  • Eio Funktionen
  • Get stream representing a variable used in internal communications with libeio

eio_get_event_stream

(PECL eio >= 0.3.1b)

eio_get_event_stream — Get stream representing a variable used in internal communications with libeio

Beschreibung

eio_get_event_stream ( ) : mixed

eio_get_event_stream() acquires stream representing a variable used in internal communications with libeio. Could be used to bind with some event loop provided by other PECL extension, for example libevent.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

eio_get_event_stream() returns stream on success; otherwise, null

Beispiele

Beispiel #1 Using eio with libevent

<?php
function my_eio_poll($fd, $events, $arg) {
    /* Some libevent regulation might go here .. */
    if (eio_nreqs()) {
        eio_poll();
    }
    /* .. and here */
}

function my_res_cb($d, $r) {
    var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

$fd = eio_get_event_stream();
var_dump($fd);

eio_nop(EIO_PRI_DEFAULT, "my_res_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_res_cb", "mkdir data");
/* some other eio_* calls here ... */

// set event flags
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// set event base
event_base_set($event, $base);

// enable event
event_add($event);

// start event loop
event_base_loop($base);

/* The same will be available via buffered libevent interface */
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)
int(0)
string(8) "nop data"
int(0)
string(10) "mkdir data"


Returns string describing the last error associated with a request resource

  • « eio_get_event_stream
  • eio_grp_add »
  • PHP Manual
  • Eio Funktionen
  • Returns string describing the last error associated with a request resource

eio_get_last_error

(PECL eio >= 1.0.0)

eio_get_last_error — Returns string describing the last error associated with a request resource

Beschreibung

eio_get_last_error ( resource $req ) : string

eio_get_last_error() returns string describing the last error associated with req.

Parameter-Liste

req

The request resource

Rückgabewerte

eio_get_last_error() returns string describing the last error associated with the request resource specified by req.

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Adds a request to the request group

  • « eio_get_last_error
  • eio_grp_cancel »
  • PHP Manual
  • Eio Funktionen
  • Adds a request to the request group

eio_grp_add

(PECL eio >= 0.0.1dev)

eio_grp_add — Adds a request to the request group

Beschreibung

eio_grp_add ( resource $grp , resource $req ) : void

eio_grp_add() adds a request to the request group.

Parameter-Liste

grp

The request group resource returned by eio_grp()

req

The request resource

Rückgabewerte

eio_grp_add() doesn't return a value.

Beispiele

Beispiel #1 Grouping requests

<?php
/*
 * Create a group request to open, read and close a file
 */

// Create temporary file and write some bytes to it
$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);

/* Is called when the group requests are done */
function my_grp_done($data, $result) {
 var_dump($result == 0);
 @unlink($data);
}

/* Is called when eio_open() done */
function my_grp_file_opened_callback($data, $result) {
 global $grp;

 // $result should contain the file descriptor
 var_dump($result > 0);

 // Create eio_read() request and add it to the group
 // Pass file descriptor to the callback
 $req = eio_read($result, 4, 0,
   EIO_PRI_DEFAULT, "my_grp_file_read_callback", $result);
 eio_grp_add($grp, $req);
}

/* Is called when eio_read() done */
function my_grp_file_read_callback($data, $result) {
 global $grp;

 // Read bytes
 var_dump($result);

 // Create eio_close() request and add it to the group
 // $data should contain the file descriptor
 $req = eio_close($data);
 eio_grp_add($grp, $req);
}

// Create request group
$grp = eio_grp("my_grp_done", $temp_filename);
var_dump($grp);

// Create eio_open() request and add it to the group
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
  EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);
eio_grp_add($grp, $req);

// Process requests
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

resource(6) of type (EIO Group Descriptor)
bool(true)
string(4) "some"
bool(true)

Siehe auch

  • eio_grp() - Creates a request group
  • eio_grp_cancel() - Cancels a request group
  • eio_grp_limit() - Set group limit


Cancels a request group

  • « eio_grp_add
  • eio_grp_limit »
  • PHP Manual
  • Eio Funktionen
  • Cancels a request group

eio_grp_cancel

(PECL eio >= 0.0.1dev)

eio_grp_cancel — Cancels a request group

Beschreibung

eio_grp_cancel ( resource $grp ) : void

eio_grp_cancel() cancels a group request specified by grp request group resource.

Parameter-Liste

grp

The request group resource returned by eio_grp().

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • eio_grp() - Creates a request group
  • eio_grp_add() - Adds a request to the request group


Set group limit

  • « eio_grp_cancel
  • eio_grp »
  • PHP Manual
  • Eio Funktionen
  • Set group limit

eio_grp_limit

(PECL eio >= 0.0.1dev)

eio_grp_limit — Set group limit

Beschreibung

eio_grp_limit ( resource $grp , int $limit ) : void

Limit number of requests in the request group.

Parameter-Liste

grp

The request group resource.

limit

Number of requests in the group.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • eio_grp_add() - Adds a request to the request group


Creates a request group

  • « eio_grp_limit
  • eio_init »
  • PHP Manual
  • Eio Funktionen
  • Creates a request group

eio_grp

(PECL eio >= 0.0.1dev)

eio_grp — Creates a request group

Beschreibung

eio_grp ( callable $callback , string $data = NULL ) : resource

eio_grp() creates a request group.

Parameter-Liste

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_grp() returns request group resource on success or false on error.

Beispiele

Beispiel #1 eio_grp() example

<?php
$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);
$my_file_fd = NULL;

/* Is called when the group requests are done */
function my_grp_done($data, $result) {
 // Remove the file, if it still exists
 @unlink($data);
}

/* Is called when the temporary file is opened */
function my_grp_file_opened_callback($data, $result) {
 global $my_file_fd, $grp;

 $my_file_fd = $result;

 $req = eio_read($my_file_fd, 4, 0,
   EIO_PRI_DEFAULT, "my_grp_file_read_callback");
 eio_grp_add($grp, $req);
}

/* Is called when the file is read */
function my_grp_file_read_callback($data, $result) {
 global $my_file_fd, $grp;

 var_dump($result);

 // Create request to close the file
 $req = eio_close($my_file_fd);

 // Add request to the group
 eio_grp_add($grp, $req);
}

// Create request group
$grp = eio_grp("my_grp_done", $temp_filename);

// Create request
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
  EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);

// Add request to the group
eio_grp_add($grp, $req);

// Process requests
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(4) "some"

Siehe auch

  • eio_grp_cancel() - Cancels a request group
  • eio_grp_add() - Adds a request to the request group


(Re-)initialize Eio

  • « eio_grp
  • eio_link »
  • PHP Manual
  • Eio Funktionen
  • (Re-)initialize Eio

eio_init

(PECL eio = 1.0.0)

eio_init — (Re-)initialize Eio

Beschreibung

eio_init ( ) : void

eio_init() (re-)initializes Eio. It allocates memory for internal structures of libeio and Eio itself. You may call eio_init() before using Eio functions. Otherwise it will be called internally first time you invoke an Eio function in a process.

Warnung

Dieses veraltete Feature wird in der Zukunft sicherlich entfernt. Since Eio 1.1.0 eio_init() is deprecated. In Eio 1.0.0 because of » libeio's restrictions you must call eio_init() in child process, if you fork one by any means. You have to avoid using Eio in parent process, if you use it in childs.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Create a hardlink for file

  • « eio_init
  • eio_lstat »
  • PHP Manual
  • Eio Funktionen
  • Create a hardlink for file

eio_link

(PECL eio >= 0.0.1dev)

eio_link — Create a hardlink for file

Beschreibung

eio_link ( string $path , string $new_path , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_link() creates a hardlink new_path for a file specified by path.

Parameter-Liste

path

Source file path.

new_path

Target file path.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

Beispiele

Beispiel #1 eio_link() example

<?php
$filename = dirname(__FILE__)."/symlink.dat";
touch($filename);
$link = dirname(__FILE__)."/symlink.link";
$hardlink = dirname(__FILE__)."/hardlink.link";

function my_hardlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && !is_link($data));
    @unlink($data);

    eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
}

function my_symlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && is_link($data));

    if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
        @unlink($link);
        @unlink($filename);
    }
}

function my_readlink_cb($data, $result) {
    global $filename, $link;
    var_dump($result);

    @unlink($link);
    @unlink($filename);
}

eio_link($filename, $hardlink, EIO_PRI_DEFAULT, "my_hardlink_cb", $hardlink);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
string(%d) "%ssymlink.dat"

Siehe auch

  • eio_symlink() - Create a symbolic link


Get file status

  • « eio_link
  • eio_mkdir »
  • PHP Manual
  • Eio Funktionen
  • Get file status

eio_lstat

(PECL eio >= 0.0.1dev)

eio_lstat — Get file status

Beschreibung

eio_lstat ( string $path , int $pri , callable $callback , mixed $data = NULL ) : resource

eio_lstat() returns file status information in result argument of callback

Parameter-Liste

path

The file path

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_lstat() returns request resource on success or false on error.

Beispiele

Beispiel #1 eio_lstat() example

<?php
$tmp_filename = dirname(__FILE__). "/eio-file.tmp";
touch($tmp_filename);

function my_res_cb($data, $result) {
    var_dump($data);
    var_dump($result);
}

function my_open_cb($data, $result) {
    eio_close($result);
    eio_event_loop();

    @unlink($data);
}

eio_lstat($tmp_filename, EIO_PRI_DEFAULT, "my_res_cb", "eio_lstat");
eio_open($tmp_filename, EIO_O_RDONLY, NULL,
 EIO_PRI_DEFAULT, "my_open_cb", $tmp_filename);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(9) "eio_lstat"
array(12) {
 ["st_dev"]=>
  int(2050)
  ["st_ino"]=>
  int(2099197)
  ["st_mode"]=>
  int(33188)
  ["st_nlink"]=>
  int(1)
  ["st_uid"]=>
  int(1000)
  ["st_gid"]=>
  int(100)
  ["st_rdev"]=>
  int(0)
  ["st_blksize"]=>
  int(4096)
  ["st_blocks"]=>
  int(0)
  ["st_atime"]=>
  int(1318235777)
  ["st_mtime"]=>
  int(1318235777)
  ["st_ctime"]=>
  int(1318235777)
}

Siehe auch

  • eio_stat() - Get file status
  • eio_fstat() - Get file status


Create directory

  • « eio_lstat
  • eio_mknod »
  • PHP Manual
  • Eio Funktionen
  • Create directory

eio_mkdir

(PECL eio >= 0.0.1dev)

eio_mkdir — Create directory

Beschreibung

eio_mkdir ( string $path , int $mode , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_mkdir() creates directory with specified access mode.

Parameter-Liste

path

Path for the new directory.

mode

Access mode, e.g. 0755

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_mkdir() returns request resource on success or false on error.

Beispiele

Beispiel #1 eio_mkdir() example

<?php
$temp_dirname = "eio-temp-dir";

/* Is called when eio_mkdir() finishes */
function my_mkdir_callback($data, $result) {
 if ($result == 0 && is_dir($temp_dirname)
   && !is_readable($temp_dirname)
   && is_writable($temp_dirname)) {
  echo "eio_mkdir_ok";
 }

 // Remove directory
    if (file_exists($data))
        rmdir($temp_dirname);
}

// Create directory with access mode 0300
eio_mkdir($temp_dirname, 0300, EIO_PRI_DEFAULT, "my_mkdir_callback", $temp_dirname);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

eio_mkdir_ok

Siehe auch

  • eio_rmdir() - Remove a directory


Create a special or ordinary file

  • « eio_mkdir
  • eio_nop »
  • PHP Manual
  • Eio Funktionen
  • Create a special or ordinary file

eio_mknod

(PECL eio >= 0.0.1dev)

eio_mknod — Create a special or ordinary file

Beschreibung

eio_mknod ( string $path , int $mode , int $dev , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_mknod() creates ordinary or special(often) file.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

path

Path for the new node(file).

mode

Specifies both the permissions to use and the type of node to be created. It should be a combination (using bitwise OR) of one of the file types listed below and the permissions for the new node(e.g. 0640). Possible file types are: EIO_S_IFREG(regular file), EIO_S_IFCHR(character file), EIO_S_IFBLK(block special file), EIO_S_IFIFO(FIFO - named pipe) and EIO_S_IFSOCK(UNIX domain socket). To specify permissions EIO_S_I* constants could be used.

dev

If the file type is EIO_S_IFCHR or EIO_S_IFBLK then dev specifies the major and minor numbers of the newly created device special file. Otherwise dev ignored. See mknod(2) man page for details.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_mknod() returns request resource on success or false on error.

Beispiele

Beispiel #1 eio_mknod() example

<?php
// FIFO name
$temp_filename = "/tmp/eio-temp-fifo";

/* Is called when eio_mknod() finishes */
function my_mknod_callback($data, $result) {
    $s = stat($data);
    var_dump($s);

    if ($result == 0) {
        echo "eio_mknod_ok";
    }

    @unlink($data);
}

eio_mknod($temp_filename, EIO_S_IFIFO, 0,
    EIO_PRI_DEFAULT, "my_mknod_callback", $temp_filename);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(26) {
  [0]=>
  int(17)
  [1]=>
  int(2337608)
  [2]=>
  int(4096)
  [3]=>
  int(1)
  [4]=>
  int(1000)
  [5]=>
  int(100)
  [6]=>
  int(0)
  [7]=>
  int(0)
  [8]=>
  int(1318241261)
  [9]=>
  int(1318241261)
  [10]=>
  int(1318241261)
  [11]=>
  int(4096)
  [12]=>
  int(0)
  ["dev"]=>
  int(17)
  ["ino"]=>
  int(2337608)
  ["mode"]=>
  int(4096)
  ["nlink"]=>
  int(1)
  ["uid"]=>
  int(1000)
  ["gid"]=>
  int(100)
  ["rdev"]=>
  int(0)
  ["size"]=>
  int(0)
  ["atime"]=>
  int(1318241261)
  ["mtime"]=>
  int(1318241261)
  ["ctime"]=>
  int(1318241261)
  ["blksize"]=>
  int(4096)
  ["blocks"]=>
  int(0)
}
eio_mknod_ok

Siehe auch

  • eio_open() - Opens a file


Does nothing, except go through the whole request cycle

  • « eio_mknod
  • eio_npending »
  • PHP Manual
  • Eio Funktionen
  • Does nothing, except go through the whole request cycle

eio_nop

(PECL eio >= 0.0.1dev)

eio_nop — Does nothing, except go through the whole request cycle

Beschreibung

eio_nop ( int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_nop() does nothing, except go through the whole request cycle. Could be useful in debugging.

Parameter-Liste

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_nop() returns request resource on success or false on error.

Siehe auch

  • eio_busy() - Artificially increase load. Could be useful in tests, benchmarking


Returns number of finished, but unhandled requests

  • « eio_nop
  • eio_nready »
  • PHP Manual
  • Eio Funktionen
  • Returns number of finished, but unhandled requests

eio_npending

(PECL eio >= 0.0.1dev)

eio_npending — Returns number of finished, but unhandled requests

Beschreibung

eio_npending ( ) : int

eio_npending() returns number of finished, but unhandled requests

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

eio_npending() returns number of finished, but unhandled requests.

Siehe auch

  • eio_nreqs() - Returns number of requests to be processed
  • eio_nready() - Returns number of not-yet handled requests
  • eio_nthreads() - Returns number of threads currently in use


Returns number of not-yet handled requests

  • « eio_npending
  • eio_nreqs »
  • PHP Manual
  • Eio Funktionen
  • Returns number of not-yet handled requests

eio_nready

(PECL eio >= 0.0.1dev)

eio_nready — Returns number of not-yet handled requests

Beschreibung

eio_nready ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

eio_nready() returns number of not-yet handled requests

Siehe auch

  • eio_nreqs() - Returns number of requests to be processed
  • eio_nready()
  • eio_nthreads() - Returns number of threads currently in use


Returns number of requests to be processed

  • « eio_nready
  • eio_nthreads »
  • PHP Manual
  • Eio Funktionen
  • Returns number of requests to be processed

eio_nreqs

(PECL eio >= 0.0.1dev)

eio_nreqs — Returns number of requests to be processed

Beschreibung

eio_nreqs ( ) : int

eio_nreqs() could be called in a custom loop calling eio_poll().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

eio_nreqs() returns number of requests to be processed.

Beispiele

Beispiel #1 eio_nreqs() example

<?php
function res_cb($data, $result) {
    var_dump($data);
    var_dump($result);
}

eio_nop(EIO_PRI_DEFAULT, "res_cb", "1");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "2");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "3");

while (eio_nreqs()) {
    eio_poll();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "1"
int(0)
string(1) "3"
int(0)
string(1) "2"
int(0)

Siehe auch

  • eio_poll() - Can be to be called whenever there are pending requests that need finishing
  • eio_nready() - Returns number of not-yet handled requests


Returns number of threads currently in use

  • « eio_nreqs
  • eio_open »
  • PHP Manual
  • Eio Funktionen
  • Returns number of threads currently in use

eio_nthreads

(PECL eio >= 0.0.1dev)

eio_nthreads — Returns number of threads currently in use

Beschreibung

eio_nthreads ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

eio_nthreads() returns number of threads currently in use.

Siehe auch

  • eio_npending() - Returns number of finished, but unhandled requests
  • eio_nready() - Returns number of not-yet handled requests
  • eio_nreqs() - Returns number of requests to be processed
  • eio_set_max_idle() - Set maximum number of idle threads
  • eio_set_max_parallel() - Set maximum parallel threads
  • eio_set_min_parallel() - Set minimum parallel thread number


Opens a file

  • « eio_nthreads
  • eio_poll »
  • PHP Manual
  • Eio Funktionen
  • Opens a file

eio_open

(PECL eio >= 0.0.1dev)

eio_open — Opens a file

Beschreibung

eio_open ( string $path , int $flags , int $mode , int $pri , callable $callback , mixed $data = NULL ) : resource

eio_open() opens file specified by path in access mode mode with

Parameter-Liste

path

Path of the file to be opened.

Warnung

In some SAPIs(e.g. PHP-FPM) it could fail, if you don't specify full path.

flags

One of EIO_O_* constants, or their combinations. EIO_O_* constants have the same meaning, as their corresponding O_* counterparts defined in fnctl.h C header file. Default is EIO_O_RDWR.

mode

One of EIO_S_I* constants, or their combination (via bitwise OR operator). The constants have the same meaning as their S_I* counterparts defined in » sys/stat.h C header file. Required, if a file is created. Otherwise ignored.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_open() returns file descriptor in result argument of callback on success; otherwise, result is equal to -1.

Beispiele

Beispiel #1 eio_open() example

<?php
$temp_filename = "eio-temp-file.tmp";

/* Is called when eio_close() finishes */
function my_close_cb($data, $result) {
 // Zero indicates success
    var_dump($result == 0);
 @unlink($data);
}

/* Is called when eio_open() finishes */
function my_file_opened_callback($data, $result) {
 // $result should contain the file descriptor
    var_dump($result > 0);

    if ($result > 0) {
  // Close the file
        eio_close($result, EIO_PRI_DEFAULT, "my_close_cb", $data);
        eio_event_loop();
    }
}

// Create new file for reading and writing
// Deny group and others to do anything with that file
eio_open($temp_filename, EIO_O_CREAT | EIO_O_RDWR, EIO_S_IRUSR | EIO_S_IWUSR,
  EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)

Siehe auch

  • eio_mknod() - Create a special or ordinary file


Can be to be called whenever there are pending requests that need finishing

  • « eio_open
  • eio_read »
  • PHP Manual
  • Eio Funktionen
  • Can be to be called whenever there are pending requests that need finishing

eio_poll

(PECL eio >= 0.0.1dev)

eio_poll — Can be to be called whenever there are pending requests that need finishing

Beschreibung

eio_poll ( ) : int

eio_poll() can be used to implement special event loop. For this eio_nreqs() could be used to test if there are unprocessed requests.

Hinweis:

Applicable only when implementing userspace event loop.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

If any request invocation returns a non-zero value, returns that value. Otherwise, it returns 0.

Beispiele

Beispiel #1 eio_poll() example

<?php
function res_cb($data, $result) {
    var_dump($data);
    var_dump($result);
}

eio_nop(EIO_PRI_DEFAULT, "res_cb", "1");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "2");
eio_nop(EIO_PRI_DEFAULT, "res_cb", "3");

while (eio_nreqs()) {
    // Some specific IPC or so
    eio_poll();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "1"
int(0)
string(1) "3"
int(0)
string(1) "2"
int(0)

Siehe auch

  • eio_nreqs() - Returns number of requests to be processed


Read from a file descriptor at given offset

  • « eio_poll
  • eio_readahead »
  • PHP Manual
  • Eio Funktionen
  • Read from a file descriptor at given offset

eio_read

(PECL eio >= 0.0.1dev)

eio_read — Read from a file descriptor at given offset

Beschreibung

eio_read ( mixed $fd , int $length , int $offset , int $pri , callable $callback , mixed $data = NULL ) : resource

eio_read() reads up to length bytes from fd file descriptor at offset. The read bytes are stored in result argument of callback.

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor

length

Maximum number of bytes to read.

offset

Offset within the file.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_read() stores read bytes in result argument of callback function.

Beispiele

Beispiel #1 eio_read() example

<?php
// Open a temporary file and write some bytes there
$temp_filename = "eio-temp-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "1234567890");
fclose($fp);

/* Is called when eio_read() is done */
function my_read_cb($data, $result) {
    global $temp_filename;

 // Output read bytes
    var_dump($result);

 // Close file
    eio_close($data);
    eio_event_loop();

 // Remove temporary file
    @unlink($temp_filename);
}

/* Is called when eio_open() is done */
function my_file_opened_callback($data, $result) {
 // $result should contain the file descriptor
    if ($result > 0) {
  // Read 5 bytes starting from third
        eio_read($result, 5, 2, EIO_PRI_DEFAULT, "my_read_cb", $result);
        eio_event_loop();
    } else {
  // eio_open() failed
        unlink($data);
    }
}

// Open the file for reading and writing
eio_open($temp_filename, EIO_O_RDWR, NULL,
    EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(5) "34567"

Siehe auch

  • eio_open() - Opens a file
  • eio_write() - Write to file
  • eio_close() - Close file
  • eio_event_loop() - Polls libeio until all requests proceeded


Perform file readahead into page cache

  • « eio_read
  • eio_readdir »
  • PHP Manual
  • Eio Funktionen
  • Perform file readahead into page cache

eio_readahead

(PECL eio >= 0.0.1dev)

eio_readahead — Perform file readahead into page cache

Beschreibung

eio_readahead ( mixed $fd , int $offset , int $length , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_readahead() populates the page cache with data from a file so that subsequent reads from that file will not block on disk I/O. See READAHEAD(2) man page for details.

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor

offset

Starting point from which data is to be read.

length

Number of bytes to be read.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_readahead() returns request resource on success or false on error.


Reads through a whole directory

  • « eio_readahead
  • eio_readlink »
  • PHP Manual
  • Eio Funktionen
  • Reads through a whole directory

eio_readdir

(PECL eio >= 0.0.1dev)

eio_readdir — Reads through a whole directory

Beschreibung

eio_readdir ( string $path , int $flags , int $pri , callable $callback , string $data = NULL ) : resource

Reads through a whole directory(via the opendir, readdir and closedir system calls) and returns either the names or an array in result argument of callback function, depending on the flags argument.

Parameter-Liste

path

Directory path.

flags

Combination of EIO_READDIR_* constants.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_readdir() returns request resource on success, or false on error. Sets result argument of callback function according to flags:

EIO_READDIR_DENTS (int)
eio_readdir() flag. If specified, the result argument of the callback becomes an array with the following keys: 'names' - array of directory names 'dents' - array of struct eio_dirent-like arrays having the following keys each: 'name' - the directory name; 'type' - one of EIO_DT_* constants; 'inode' - the inode number, if available, otherwise unspecified;
EIO_READDIR_DIRS_FIRST (int)
When this flag is specified, the names will be returned in an order where likely directories come first, in optimal stat order.
EIO_READDIR_STAT_ORDER (int)
When this flag is specified, then the names will be returned in an order suitable for stat'ing each one. When planning to stat() all files in the given directory, the returned order will likely be fastest.
EIO_READDIR_FOUND_UNKNOWN (int)

Node types:

EIO_DT_UNKNOWN (int)
Unknown node type(very common). Further stat() needed.
EIO_DT_FIFO (int)
FIFO node type
EIO_DT_CHR (int)
Node type
EIO_DT_MPC (int)
Multiplexed char device (v7+coherent) node type
EIO_DT_DIR (int)
Directory node type
EIO_DT_NAM (int)
Xenix special named file node type
EIO_DT_BLK (int)
Node type
EIO_DT_MPB (int)
Multiplexed block device (v7+coherent)
EIO_DT_REG (int)
Node type
EIO_DT_NWK (int)
EIO_DT_CMP (int)
HP-UX network special node type
EIO_DT_LNK (int)
Link node type
EIO_DT_SOCK (int)
Socket node type
EIO_DT_DOOR (int)
Solaris door node type
EIO_DT_WHT (int)
Node type
EIO_DT_MAX (int)
Highest node type value

Beispiele

Beispiel #1 eio_readdir() example

<?php
/* Is called when eio_readdir() finishes */
function my_readdir_callback($data, $result) {
    echo __FUNCTION__, " called\n";
    echo "data: "; var_dump($data);
    echo "result: "; var_dump($result);
    echo "\n";
}

eio_readdir("/var/spool/news", EIO_READDIR_STAT_ORDER | EIO_READDIR_DIRS_FIRST,
  EIO_PRI_DEFAULT, "my_readdir_callback");
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

my_readdir_callback called
data: NULL
result: array(2) {
 ["names"]=>
  array(7) {
   [0]=>
    string(7) "archive"
    [1]=>
    string(8) "articles"
    [2]=>
    string(8) "incoming"
    [3]=>
    string(7) "innfeed"
    [4]=>
    string(8) "outgoing"
    [5]=>
    string(8) "overview"
    [6]=>
    string(3) "tmp"
  }
 ["dents"]=>
  array(7) {
   [0]=>
    array(3)
    {
     ["name"]=>
      string(7)
      "archive"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393265)
    }
   [1]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "articles"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393266)
    }
   [2]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "incoming"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393267)
    }
   [3]=>
    array(3)
    {
     ["name"]=>
      string(7)
      "innfeed"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393269)
    }
   [4]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "outgoing"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393270)
    }
   [5]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "overview"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393271)
    }
   [6]=>
    array(3)
    {
     ["name"]=>
      string(3)
      "tmp"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393272)
    }
  }
}


Read value of a symbolic link

  • « eio_readdir
  • eio_realpath »
  • PHP Manual
  • Eio Funktionen
  • Read value of a symbolic link

eio_readlink

(PECL eio >= 0.0.1dev)

eio_readlink — Read value of a symbolic link

Beschreibung

eio_readlink ( string $path , int $pri , callable $callback , string $data = NULL ) : resource

Parameter-Liste

path

Source symbolic link path

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_readlink() returns request resource on success or false on error.

Beispiele

Beispiel #1 eio_readlink() example

<?php
$filename = dirname(__FILE__)."/symlink.dat";
touch($filename);
$link = dirname(__FILE__)."/symlink.link";
$hardlink = dirname(__FILE__)."/hardlink.link";

function my_hardlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && !is_link($data));
    @unlink($data);

    eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
}

function my_symlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && is_link($data));

    if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
        @unlink($link);
        @unlink($filename);
    }
}

function my_readlink_cb($data, $result) {
    global $filename, $link;
    var_dump($result);

    @unlink($link);
    @unlink($filename);
}

eio_link($filename, $hardlink, EIO_PRI_DEFAULT, "my_hardlink_cb", $hardlink);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
string(16) "/tmp/symlink.dat"

Siehe auch

  • eio_symlink() - Create a symbolic link


Get the canonicalized absolute pathname

  • « eio_readlink
  • eio_rename »
  • PHP Manual
  • Eio Funktionen
  • Get the canonicalized absolute pathname

eio_realpath

(PECL eio >= 0.0.1dev)

eio_realpath — Get the canonicalized absolute pathname

Beschreibung

eio_realpath ( string $path , int $pri , callable $callback , string $data = NULL ) : resource

eio_realpath() returns the canonicalized absolute pathname in result argument of callback function.

Parameter-Liste

path

Short pathname

pri

callback

data

Rückgabewerte

Beispiele

Beispiel #1 eio_realpath() example

<?php
var_dump(getcwd());

function my_realpath_allback($data, $result) {
    var_dump($result);
}

eio_realpath("../", EIO_PRI_DEFAULT, "my_realpath_allback");
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(12) "/home/ruslan"
string(5) "/home"


Change the name or location of a file

  • « eio_realpath
  • eio_rmdir »
  • PHP Manual
  • Eio Funktionen
  • Change the name or location of a file

eio_rename

(PECL eio >= 0.0.1dev)

eio_rename — Change the name or location of a file

Beschreibung

eio_rename ( string $path , string $new_path , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_rename() renames or moves a file to new location.

Parameter-Liste

path

Source path

new_path

Target path

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_rename() returns request resource on success or false on error.

Beispiele

Beispiel #1 eio_rename() example

<?php
$filename = dirname(__FILE__)."/eio-temp-file.dat";
touch($filename);
$new_filename = dirname(__FILE__)."/eio-temp-file-new.dat";

function my_rename_cb($data, $result) {
    global $filename, $new_filename;

    if ($result == 0 && !file_exists($filename) && file_exists($new_filename)) {
        @unlink($new_filename);
        echo "eio_rename_ok";
    } else {
        @unlink($filename);
    }
}

eio_rename($filename, $new_filename, EIO_PRI_DEFAULT, "my_rename_cb", $filename);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

eio_rename_ok


Remove a directory

  • « eio_rename
  • eio_seek »
  • PHP Manual
  • Eio Funktionen
  • Remove a directory

eio_rmdir

(PECL eio >= 0.0.1dev)

eio_rmdir — Remove a directory

Beschreibung

eio_rmdir ( string $path , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_rmdir() removes a directory.

Parameter-Liste

path

Directory path

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_rmdir() returns request resource on success or false on error.

Beispiele

Beispiel #1 eio_rmdir() example

<?php
$temp_dirname = "eio-temp-dir";
mkdir($temp_dirname);

function my_rmdir_callback($data, $result) {
    if ($result == 0 && !file_exists($data)) {
        echo "eio_rmdir_ok";
    } else if (file_exists($data)) {
        rmdir($data);
    }
}

eio_rmdir($temp_dirname, EIO_PRI_DEFAULT, "my_rmdir_callback", $temp_dirname);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

eio_rmdir_ok

Siehe auch

  • eio_mkdir() - Create directory


Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence

  • « eio_rmdir
  • eio_sendfile »
  • PHP Manual
  • Eio Funktionen
  • Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence

eio_seek

(PECL eio >= 0.5.0b)

eio_seek — Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence

Beschreibung

eio_seek ( mixed $fd , int $offset , int $whence , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_seek() repositions the offset of the open file associated with stream, Socket resource, or file descriptor specified by fd to the argument offset according to the directive whence as follows:

  • EIO_SEEK_SET - Set position equal to offset bytes.
  • EIO_SEEK_CUR - Set position to current location plus offset.
  • EIO_SEEK_END - Set position to end-of-file plus offset.

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor

offset

Starting point from which data is to be read.

length

Number of bytes to be read.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_seek() returns request resource on success or false on error.


Transfer data between file descriptors

  • « eio_seek
  • eio_set_max_idle »
  • PHP Manual
  • Eio Funktionen
  • Transfer data between file descriptors

eio_sendfile

(PECL eio >= 0.0.1dev)

eio_sendfile — Transfer data between file descriptors

Beschreibung

eio_sendfile ( mixed $out_fd , mixed $in_fd , int $offset , int $length , int $pri = ? , callable $callback = ? , string $data = ? ) : resource

eio_sendfile() copies data between one file descriptor and another. See SENDFILE(2) man page for details.

Parameter-Liste

out_fd

Output stream, Socket resource, or file descriptor. Should be opened for writing.

in_fd

Input stream, Socket resource, or file descriptor. Should be opened for reading.

offset

Offset within the source file.

length

Number of bytes to copy.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_sendfile() returns request resource on success or false on error.


Set maximum number of idle threads

  • « eio_sendfile
  • eio_set_max_parallel »
  • PHP Manual
  • Eio Funktionen
  • Set maximum number of idle threads

eio_set_max_idle

(PECL eio >= 0.0.1dev)

eio_set_max_idle — Set maximum number of idle threads

Beschreibung

eio_set_max_idle ( int $nthreads ) : void

Parameter-Liste

nthreads

Number of idle threads.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • eio_nthreads() - Returns number of threads currently in use
  • eio_set_min_parallel() - Set minimum parallel thread number
  • eio_set_max_parallel() - Set maximum parallel threads


Set maximum parallel threads

  • « eio_set_max_idle
  • eio_set_max_poll_reqs »
  • PHP Manual
  • Eio Funktionen
  • Set maximum parallel threads

eio_set_max_parallel

(PECL eio >= 0.0.1dev)

eio_set_max_parallel — Set maximum parallel threads

Beschreibung

eio_set_max_parallel ( int $nthreads ) : void

Parameter-Liste

nthreads

Number of parallel threads

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • eio_nthreads() - Returns number of threads currently in use
  • eio_set_max_idle() - Set maximum number of idle threads
  • eio_set_min_parallel() - Set minimum parallel thread number


Set maximum number of requests processed in a poll

  • « eio_set_max_parallel
  • eio_set_max_poll_time »
  • PHP Manual
  • Eio Funktionen
  • Set maximum number of requests processed in a poll

eio_set_max_poll_reqs

(PECL eio >= 0.0.1dev)

eio_set_max_poll_reqs — Set maximum number of requests processed in a poll

Beschreibung

eio_set_max_poll_reqs ( int $nreqs ) : void

Parameter-Liste

nreqs

Number of requests

Rückgabewerte

Es wird kein Wert zurückgegeben.


Set maximum poll time

  • « eio_set_max_poll_reqs
  • eio_set_min_parallel »
  • PHP Manual
  • Eio Funktionen
  • Set maximum poll time

eio_set_max_poll_time

(PECL eio >= 0.0.1dev)

eio_set_max_poll_time — Set maximum poll time

Beschreibung

eio_set_max_poll_time ( float $nseconds ) : void

Polling stops, if poll took longer than nseconds seconds.

Parameter-Liste

nseconds

Number of seconds

Rückgabewerte

Es wird kein Wert zurückgegeben.


Set minimum parallel thread number

  • « eio_set_max_poll_time
  • eio_stat »
  • PHP Manual
  • Eio Funktionen
  • Set minimum parallel thread number

eio_set_min_parallel

(PECL eio >= 0.0.1dev)

eio_set_min_parallel — Set minimum parallel thread number

Beschreibung

eio_set_min_parallel ( string $nthreads ) : void

Parameter-Liste

nthreads

Number of parallel threads.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • eio_nthreads() - Returns number of threads currently in use
  • eio_set_max_idle() - Set maximum number of idle threads
  • eio_set_max_parallel() - Set maximum parallel threads


Get file status

  • « eio_set_min_parallel
  • eio_statvfs »
  • PHP Manual
  • Eio Funktionen
  • Get file status

eio_stat

(PECL eio >= 0.0.1dev)

eio_stat — Get file status

Beschreibung

eio_stat ( string $path , int $pri , callable $callback , mixed $data = NULL ) : resource

eio_stat() returns file status information in result argument of callback

Parameter-Liste

path

The file path

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_stat() returns request resource on success or false on error. On success assigns result argument of callback to an array.

Beispiele

Beispiel #1 eio_stat() example

<?php
$tmp_filename = "eio-file.tmp";
touch($tmp_filename);

function my_res_cb($data, $result) {
    var_dump($data);
    var_dump($result);
}

function my_open_cb($data, $result) {
    eio_close($result);
    eio_event_loop();

    @unlink($data);
}

eio_stat($tmp_filename, EIO_PRI_DEFAULT, "my_res_cb", "eio_stat");
eio_open($tmp_filename, EIO_O_RDONLY, NULL,
 EIO_PRI_DEFAULT, "my_open_cb", $tmp_filename);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(8) "eio_stat"
array(12) {
  ["st_dev"]=>
  int(2050)
  ["st_ino"]=>
  int(2489173)
  ["st_mode"]=>
  int(33188)
  ["st_nlink"]=>
  int(1)
  ["st_uid"]=>
  int(1000)
  ["st_gid"]=>
  int(100)
  ["st_rdev"]=>
  int(0)
  ["st_blksize"]=>
  int(4096)
  ["st_blocks"]=>
  int(0)
  ["st_atime"]=>
  int(1318250380)
  ["st_mtime"]=>
  int(1318250380)
  ["st_ctime"]=>
  int(1318250380)
}

Siehe auch

  • eio_lstat() - Get file status
  • eio_fstat() - Get file status


Get file system statistics

  • « eio_stat
  • eio_symlink »
  • PHP Manual
  • Eio Funktionen
  • Get file system statistics

eio_statvfs

(PECL eio >= 0.0.1dev)

eio_statvfs — Get file system statistics

Beschreibung

eio_statvfs ( string $path , int $pri , callable $callback , mixed $data = ? ) : resource

eio_statvfs() returns file system statistics information in result argument of callback

Parameter-Liste

path

Pathname of any file within the mounted file system

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_statvfs() returns request resource on success or false on error. On success assigns result argument of callback to an array.

Beispiele

Beispiel #1 eio_statvfs() example

<?php
$tmp_filename = '/tmp/eio-file.tmp';
touch($tmp_filename);

function my_statvfs_callback($data, $result) {
    var_dump($data);
    var_dump($result);

 @unlink($data);
}

eio_statvfs($tmp_filename, EIO_PRI_DEFAULT, "my_statvfs_callback", $tmp_filename);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(17) "/tmp/eio-file.tmp"
array(11) {
  ["f_bsize"]=>
  int(4096)
  ["f_frsize"]=>
  int(4096)
  ["f_blocks"]=>
  int(262144)
  ["f_bfree"]=>
  int(262111)
  ["f_bavail"]=>
  int(262111)
  ["f_files"]=>
  int(1540815)
  ["f_ffree"]=>
  int(1540743)
  ["f_favail"]=>
  int(1540743)
  ["f_fsid"]=>
  int(0)
  ["f_flag"]=>
  int(4102)
  ["f_namemax"]=>
  int(255)
}


Create a symbolic link

  • « eio_statvfs
  • eio_sync_file_range »
  • PHP Manual
  • Eio Funktionen
  • Create a symbolic link

eio_symlink

(PECL eio >= 0.0.1dev)

eio_symlink — Create a symbolic link

Beschreibung

eio_symlink ( string $path , string $new_path , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_symlink() creates a symbolic link new_path to path.

Parameter-Liste

path

Source path

new_path

Target path

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_symlink() returns request resource on success or false on error.

Beispiele

Beispiel #1 eio_symlink() example

<?php
$filename = dirname(__FILE__)."/symlink.dat";
touch($filename);
$link = dirname(__FILE__)."/symlink.link";

function my_symlink_cb($data, $result) {
    global $link, $filename;
    var_dump(file_exists($data) && is_link($data));

    if (!eio_readlink($data, EIO_PRI_DEFAULT, "my_readlink_cb", NULL)) {
        @unlink($link);
        @unlink($filename);
    }
}

function my_readlink_cb($data, $result) {
    global $filename, $link;
    var_dump($result);

    @unlink($link);
    @unlink($filename);
}

eio_symlink($filename, $link, EIO_PRI_DEFAULT, "my_symlink_cb", $link);
eio_event_loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
string(16) "/tmp/symlink.dat"

Siehe auch

  • eio_link() - Create a hardlink for file


Sync a file segment with disk

  • « eio_symlink
  • eio_sync »
  • PHP Manual
  • Eio Funktionen
  • Sync a file segment with disk

eio_sync_file_range

(PECL eio >= 0.0.1dev)

eio_sync_file_range — Sync a file segment with disk

Beschreibung

eio_sync_file_range ( mixed $fd , int $offset , int $nbytes , int $flags , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_sync_file_range() permits fine control when synchronizing the open file referred to by the file descriptor fd with disk.

Parameter-Liste

fd

File descriptor

offset

The starting byte of the file range to be synchronized

nbytes

Specifies the length of the range to be synchronized, in bytes. If nbytes is zero, then all bytes from offset through to the end of file are synchronized.

flags

A bit-mask. Can include any of the following values: EIO_SYNC_FILE_RANGE_WAIT_BEFORE, EIO_SYNC_FILE_RANGE_WRITE, EIO_SYNC_FILE_RANGE_WAIT_AFTER. These flags have the same meaning as their SYNC_FILE_RANGE_* counterparts(see SYNC_FILE_RANGE(2) man page).

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_sync_file_range() returns request resource on success or false on error.


Commit buffer cache to disk

  • « eio_sync_file_range
  • eio_syncfs »
  • PHP Manual
  • Eio Funktionen
  • Commit buffer cache to disk

eio_sync

(PECL eio >= 0.0.1dev)

eio_sync — Commit buffer cache to disk

Beschreibung

eio_sync ( int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

eio_sync() returns request resource on success or false on error.


Calls Linux' syncfs syscall, if available

  • « eio_sync
  • eio_truncate »
  • PHP Manual
  • Eio Funktionen
  • Calls Linux' syncfs syscall, if available

eio_syncfs

(PECL eio >= 0.0.1dev)

eio_syncfs — Calls Linux' syncfs syscall, if available

Beschreibung

eio_syncfs ( mixed $fd , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

Parameter-Liste

fd

File descriptor

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_syncfs() returns request resource on success or false on error.


Truncate a file

  • « eio_syncfs
  • eio_unlink »
  • PHP Manual
  • Eio Funktionen
  • Truncate a file

eio_truncate

(PECL eio >= 0.0.1dev)

eio_truncate — Truncate a file

Beschreibung

eio_truncate ( string $path , int $offset = 0 , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_truncate() causes the regular file named by path to be truncated to a size of precisely length bytes

Parameter-Liste

path

File path

offset

Offset from beginning of the file.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_busy() returns request resource on success or false on error.

Siehe auch

  • eio_ftruncate() - Truncate a file


Delete a name and possibly the file it refers to

  • « eio_truncate
  • eio_utime »
  • PHP Manual
  • Eio Funktionen
  • Delete a name and possibly the file it refers to

eio_unlink

(PECL eio >= 0.0.1dev)

eio_unlink — Delete a name and possibly the file it refers to

Beschreibung

eio_unlink ( string $path , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_unlink() deletes a name from the file system.

Parameter-Liste

path

Path to file

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_unlink() returns request resource on success or false on error.


Change file last access and modification times

  • « eio_unlink
  • eio_write »
  • PHP Manual
  • Eio Funktionen
  • Change file last access and modification times

eio_utime

(PECL eio >= 0.0.1dev)

eio_utime — Change file last access and modification times

Beschreibung

eio_utime ( string $path , float $atime , float $mtime , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

Parameter-Liste

path

Path to the file.

atime

Access time

mtime

Modification time

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_utime() returns request resource on success or false on error.

Siehe auch

  • eio_futime() - Change file last access and modification times


Write to file

  • « eio_utime
  • Ev »
  • PHP Manual
  • Eio Funktionen
  • Write to file

eio_write

(PECL eio >= 0.0.1dev)

eio_write — Write to file

Beschreibung

eio_write ( mixed $fd , string $str , int $length = 0 , int $offset = 0 , int $pri = EIO_PRI_DEFAULT , callable $callback = NULL , mixed $data = NULL ) : resource

eio_write() writes up to length bytes from str at offset offset from the beginning of the file.

Parameter-Liste

fd

Stream, Socket resource, or numeric file descriptor, e.g. returned by eio_open()

str

Source string

length

Maximum number of bytes to write.

offset

Offset from the beginning of file.

pri

The request priority: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, or null. If null passed, pri internally is set to EIO_PRI_DEFAULT.

callback

callback function is called when the request is done. It should match the following prototype:

void callback(mixed $data, int $result[, resource $req]);
data

is custom data passed to the request.

result

request-specific result value; basically, the value returned by corresponding system call.

req

is optional request resource which can be used with functions like eio_get_last_error()

data

Arbitrary variable passed to callback.

Rückgabewerte

eio_write() returns request resource on success or false on error.

Siehe auch

  • eio_open() - Opens a file


Ev

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Watchers
  • Watcher callbacks
  • Periodic watcher operation modes
  • Ev — The Ev class
    • Ev::backend — Returns an integer describing the backend used by libev
    • Ev::depth — Returns recursion depth
    • Ev::embeddableBackends — Returns the set of backends that are embeddable in other event loops
    • Ev::feedSignal — Feed a signal event info Ev
    • Ev::feedSignalEvent — Feed signal event into the default loop
    • Ev::iteration — Return the number of times the default event loop has polled for new events
    • Ev::now — Returns the time when the last iteration of the default event loop has started
    • Ev::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress
    • Ev::recommendedBackends — Returns a bit mask of recommended backends for current platform
    • Ev::resume — Resume previously suspended default event loop
    • Ev::run — Begin checking for events and calling callbacks for the default loop
    • Ev::sleep — Block the process for the given number of seconds
    • Ev::stop — Stops the default event loop
    • Ev::supportedBackends — Returns the set of backends supported by current libev configuration
    • Ev::suspend — Suspend the default event loop
    • Ev::time — Returns the current time in fractional seconds since the epoch
    • Ev::verify — Performs internal consistency checks(for debugging)
  • EvCheck — The EvCheck class
    • EvCheck::__construct — Constructs the EvCheck watcher object
    • EvCheck::createStopped — Create instance of a stopped EvCheck watcher
  • EvChild — The EvChild class
    • EvChild::__construct — Constructs the EvChild watcher object
    • EvChild::createStopped — Create instance of a stopped EvCheck watcher
    • EvChild::set — Configures the watcher
  • EvEmbed — The EvEmbed class
    • EvEmbed::__construct — Constructs the EvEmbed object
    • EvEmbed::createStopped — Create stopped EvEmbed watcher object
    • EvEmbed::set — Configures the watcher
    • EvEmbed::sweep — Make a single, non-blocking sweep over the embedded loop
  • EvFork — The EvFork class
    • EvFork::__construct — Constructs the EvFork watcher object
    • EvFork::createStopped — Creates a stopped instance of EvFork watcher class
  • EvIdle — The EvIdle class
    • EvIdle::__construct — Constructs the EvIdle watcher object
    • EvIdle::createStopped — Creates instance of a stopped EvIdle watcher object
  • EvIo — The EvIo class
    • EvIo::__construct — Constructs EvIo watcher object
    • EvIo::createStopped — Create stopped EvIo watcher object
    • EvIo::set — Configures the watcher
  • EvLoop — The EvLoop class
    • EvLoop::backend — Returns an integer describing the backend used by libev
    • EvLoop::check — Creates EvCheck object associated with the current event loop instance
    • EvLoop::child — Creates EvChild object associated with the current event loop
    • EvLoop::__construct — Constructs the event loop object
    • EvLoop::defaultLoop — Returns or creates the default event loop
    • EvLoop::embed — Creates an instance of EvEmbed watcher associated with the current EvLoop object
    • EvLoop::fork — Creates EvFork watcher object associated with the current event loop instance
    • EvLoop::idle — Creates EvIdle watcher object associated with the current event loop instance
    • EvLoop::invokePending — Invoke all pending watchers while resetting their pending state
    • EvLoop::io — Create EvIo watcher object associated with the current event loop instance
    • EvLoop::loopFork — Must be called after a fork
    • EvLoop::now — Returns the current "event loop time"
    • EvLoop::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress
    • EvLoop::periodic — Creates EvPeriodic watcher object associated with the current event loop instance
    • EvLoop::prepare — Creates EvPrepare watcher object associated with the current event loop instance
    • EvLoop::resume — Resume previously suspended default event loop
    • EvLoop::run — Begin checking for events and calling callbacks for the loop
    • EvLoop::signal — Creates EvSignal watcher object associated with the current event loop instance
    • EvLoop::stat — Creates EvStat watcher object associated with the current event loop instance
    • EvLoop::stop — Stops the event loop
    • EvLoop::suspend — Suspend the loop
    • EvLoop::timer — Creates EvTimer watcher object associated with the current event loop instance
    • EvLoop::verify — Performs internal consistency checks(for debugging)
  • EvPeriodic — The EvPeriodic class
    • EvPeriodic::again — Simply stops and restarts the periodic watcher again
    • EvPeriodic::at — Returns the absolute time that this watcher is supposed to trigger next
    • EvPeriodic::__construct — Constructs EvPeriodic watcher object
    • EvPeriodic::createStopped — Create a stopped EvPeriodic watcher
    • EvPeriodic::set — Configures the watcher
  • EvPrepare — The EvPrepare class
    • EvPrepare::__construct — Constructs EvPrepare watcher object
    • EvPrepare::createStopped — Creates a stopped instance of EvPrepare watcher
  • EvSignal — The EvSignal class
    • EvSignal::__construct — Constructs EvSignal watcher object
    • EvSignal::createStopped — Create stopped EvSignal watcher object
    • EvSignal::set — Configures the watcher
  • EvStat — The EvStat class
    • EvStat::attr — Returns the values most recently detected by Ev
    • EvStat::__construct — Constructs EvStat watcher object
    • EvStat::createStopped — Create a stopped EvStat watcher object
    • EvStat::prev — Returns the previous set of values returned by EvStat::attr
    • EvStat::set — Configures the watcher
    • EvStat::stat — Initiates the stat call
  • EvTimer — The EvTimer class
    • EvTimer::again — Restarts the timer watcher
    • EvTimer::__construct — Constructs an EvTimer watcher object
    • EvTimer::createStopped — Creates EvTimer stopped watcher object
    • EvTimer::set — Configures the watcher
  • EvWatcher — The EvWatcher class
    • EvWatcher::clear — Clear watcher pending status
    • EvWatcher::__construct — Abstract constructor of a watcher object
    • EvWatcher::feed — Feeds the given revents set into the event loop
    • EvWatcher::getLoop — Returns the loop responsible for the watcher
    • EvWatcher::invoke — Invokes the watcher callback with the given received events bit mask
    • EvWatcher::keepalive — Configures whether to keep the loop from returning
    • EvWatcher::setCallback — Sets new callback for the watcher
    • EvWatcher::start — Starts the watcher
    • EvWatcher::stop — Stops the watcher


Einführung

This extension provides inteface to » libev library - a high performance full-featured event loop written in C.

Hinweis: Diese Erweiterung steht auf Windows-Betriebssystemen nicht zur Verfügung.

Libev is an event loop: one registers interest in certain events (such as a file descriptor being readable or a timeout occurring), and it will manage these event sources and provide the program with events.

To do this, it must take more or less complete control over the process (or thread) by executing the event loop handler, and will then communicate events via a callback mechanism.

You register interest in certain events by registering so-called event watchers, and then hand it over to libev by starting the watcher.

For details refer to the » documentation of libev


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

libev library is embedded into this extension. You don't need to install it separately.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/ev .


Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.

Most constants are moved to Ev singleton class.


Beispiele

Beispiel #1 Simple timers

<?php
// Create and start timer firing after 2 seconds
$w1 = new EvTimer(2, 0, function () {
    echo "2 seconds elapsed\n";
});

// Create and launch timer firing after 2 seconds repeating each second
// until we manually stop it
$w2 = new EvTimer(2, 1, function ($w) {
    echo "is called every second, is launched after 2 seconds\n";
    echo "iteration = ", Ev::iteration(), PHP_EOL;

    // Stop the watcher after 5 iterations
    Ev::iteration() == 5 and $w->stop();
    // Stop the watcher if further calls cause more than 10 iterations
    Ev::iteration() >= 10 and $w->stop();
});

// Create stopped timer. It will be inactive until we start it ourselves
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
    echo "Callback of a timer created as stopped\n";

    // Stop the watcher after 2 iterations
    Ev::iteration() >= 2 and $w->stop();
});

// Loop until Ev::stop() is called or all of watchers stop
Ev::run();

// Start and look if it works
$w_stopped->start();
echo "Run single iteration\n";
Ev::run(Ev::RUN_ONCE);

echo "Restart the second watcher and try to handle the same events, but don't block\n";
$w2->again();
Ev::run(Ev::RUN_NOWAIT);

$w = new EvTimer(10, 0, function() {});
echo "Running a blocking loop\n";
Ev::run();
echo "END\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2 seconds elapsed
is called every second, is launched after 2 seconds
iteration = 1
is called every second, is launched after 2 seconds
iteration = 2
is called every second, is launched after 2 seconds
iteration = 3
is called every second, is launched after 2 seconds
iteration = 4
is called every second, is launched after 2 seconds
iteration = 5
Run single iteration
Callback of a timer created as stopped
Restart the second watcher and try to handle the same events, but don't block
Running a blocking loop
is called every second, is launched after 2 seconds
iteration = 8
is called every second, is launched after 2 seconds
iteration = 9
is called every second, is launched after 2 seconds
iteration = 10
END

Beispiel #2 Periodic timer. Tick each 10.5 seconds

<?php
$w = new EvPeriodic(0., 10.5, NULL, function ($w, $revents) {
    echo time(), PHP_EOL;
});

Ev::run();
?>

Beispiel #3 Periodic timer. Use reschedule callback

<?php
// Tick each 10.5 seconds

function reschedule_cb ($watcher, $now) {
    return $now + (10.5. - fmod($now, 10.5));
}

$w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
    echo time(), PHP_EOL;
});

Ev::run();
?>

Beispiel #4 Periodic timer. Tick every 10.5 seconds starting at now

<?php
// Tick every 10.5 seconds starting at now
$w = new EvPeriodic(fmod(Ev::now(), 10.5), 10.5, NULL, function ($w, $revents) {
    echo time(), PHP_EOL;
});

Ev::run();
?>

Beispiel #5 Wait until STDIN is readable

<?php
// Wait until STDIN is readable
$w = new EvIo(STDIN, Ev::READ, function ($watcher, $revents) {
    echo "STDIN is readable\n";
});

Ev::run(Ev::RUN_ONCE);
?>

Beispiel #6 Use some async I/O to access a socket

<?php
/* Use some async I/O to access a socket */

// `sockets' extension still logs warnings
// for EINPROGRESS, EAGAIN/EWOULDBLOCK etc.
error_reporting(E_ERROR);

$e_nonblocking = array (/*EAGAIN or EWOULDBLOCK*/11, /*EINPROGRESS*/115);

// Get the port for the WWW service
$service_port = getservbyname('www', 'tcp');

// Get the IP address for the target host
$address = gethostbyname('google.co.uk');

// Create a TCP/IP socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === FALSE) {
    echo "socket_create() failed: reason: "
        .socket_strerror(socket_last_error()) . "\n";
}

// Set O_NONBLOCK flag
socket_set_nonblock($socket);

// Abort on timeout
$timeout_watcher = new EvTimer(10.0, 0., function () use ($socket) {
    socket_close($socket);
    Ev::stop(Ev::BREAK_ALL);
});

// Make HEAD request when the socket is writable
$write_watcher = new EvIo($socket, Ev::WRITE, function ($w)
    use ($socket, $timeout_watcher, $e_nonblocking)
{
    // Stop timeout watcher
    $timeout_watcher->stop();
    // Stop write watcher
    $w->stop();

    $in = "HEAD / HTTP/1.1\r\n";
    $in .= "Host: google.co.uk\r\n";
    $in .= "Connection: Close\r\n\r\n";

    if (!socket_write($socket, $in, strlen($in))) {
        trigger_error("Failed writing $in to socket", E_USER_ERROR);
    }

    $read_watcher = new EvIo($socket, Ev::READ, function ($w, $re)
        use ($socket, $e_nonblocking)
    {
        // Socket is readable. recv() 20 bytes using non-blocking mode
        $ret = socket_recv($socket, $out, 20, MSG_DONTWAIT);

        if ($ret) {
            echo $out;
        } elseif ($ret === 0) {
            // All read
            $w->stop();
            socket_close($socket);
            return;
        }

        // Caught EINPROGRESS, EAGAIN, or EWOULDBLOCK
        if (in_array(socket_last_error(), $e_nonblocking)) {
            return;
        }

        $w->stop();
        socket_close($socket);
    });

    Ev::run();
});

$result = socket_connect($socket, $address, $service_port);

Ev::run();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

HTTP/1.1 301 Moved Permanently
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1252
Date: Sun, 23 Dec 2012 16:08:27 GMT
Expires: Tue, 22 Jan 2013 16:08:27 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Connection: close

Beispiel #7 Embedding one loop into another

<?php
/*
* Try to get an embeddable event loop and embed it into the default event loop.
* If it is impossible, use the default
* loop. The default loop is stored in $loop_hi, while the embeddable loop is
* stored in $loop_lo(which is $loop_hi in the case no embeddable loop can be
* used).
*
* Sample translated to PHP
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop_hi = EvLoop::defaultLoop();
$loop_lo = NULL;
$embed   = NULL;

/*
* See if there is a chance of getting one that works
* (flags' value of 0 means autodetection)
*/
$loop_lo = Ev::embeddableBackends() & Ev::recommendedBackends()
    ? new EvLoop(Ev::embeddableBackends() & Ev::recommendedBackends())
    : 0;

if ($loop_lo) {
    $embed = new EvEmbed($loop_lo, function () {});
} else {
    $loop_lo = $loop_hi;
}
?>

Beispiel #8 Embedding loop created with kqueue backend into the default loop

<?php
/*
* Check if kqueue is available but not recommended and create a kqueue backend
* for use with sockets (which usually work with any kqueue implementation).
* Store the kqueue/socket-only event loop in loop_socket. (One might optionally
* use EVFLAG_NOENV, too)
*
* Example borrowed from
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop        = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed       = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
    if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
        $embed = new EvEmbed($loop);
    }
}

if (!$socket_loop) {
    $socket_loop = $loop;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>

Beispiel #9 Handle SIGTERM signal

<?php
$w = new EvSignal(SIGTERM, function ($watcher) {
    echo "SIGTERM received\n";
    $watcher->stop();
});

Ev::run();
?>

Beispiel #10 Monitor changes of /var/log/messages

<?php
// Use 10 second update interval.
$w = new EvStat("/var/log/messages", 8, function ($w) {
    echo "/var/log/messages changed\n";

    $attr = $w->attr();

    if ($attr['nlink']) {
        printf("Current size: %ld\n", $attr['size']);
        printf("Current atime: %ld\n", $attr['atime']);
        printf("Current mtime: %ld\n", $attr['mtime']);
    } else {
        fprintf(STDERR, "`messages` file is not there!");
        $w->stop();
    }
});

Ev::run();
?>

Beispiel #11 Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay

<?php
$timer = EvTimer::createStopped(0., 1.02, function ($w) {
    $w->stop();

    $stat = $w->data;

    // 1 second after the most recent change of the file
    printf("Current size: %ld\n", $stat->attr()['size']);
});

$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
    // Reset timer watcher
    $timer->again();
});

$timer->data = $stat;

Ev::run();
?>

Beispiel #12 Process status changes

<?php
$pid = pcntl_fork();

if ($pid == -1) {
    fprintf(STDERR, "pcntl_fork failed\n");
} elseif ($pid) {
    $w = new EvChild($pid, FALSE, function ($w, $revents) {
        $w->stop();

        printf("Process %d exited with status %d\n", $w->rpid, $w->rstatus);
    });

    Ev::run();

    // Protect against Zombies
    pcntl_wait($status);
} else {
    //Forked child
    exit(2);
}
?>


Watchers

A watcher is an object that gets created to record interest in some event. For instance, the following code waits for STDIN to become readable:

<?php
// Wait until STDIN is readable
$w = new EvIo(STDIN, Ev::READ, function ($watcher, $revents) {
 echo "STDIN is readable\n";
});
Ev::run(Ev::RUN_ONCE);
?>

All the watcher constructors automatically start the watchers. createStopped methods create stopped watchers(e.g. EvIo::createStopped() )

Note that a watcher will automatically be stopped when the watcher object is destroyed. Therefore, the watcher objects returned by the constructors or factory methods should be kept.

Note also that all methods changing some watcher property( set , priority etc.) automatically stop and start it again if it is active, which means pending events get lost.

See also: Watcher callbacks .


Watcher callbacks

All watchers can be active(waiting for events) or inactive(paused). Only active watchers will have their callbacks invoked. All callbacks will be called with at least two arguments: watcher - the watcher, and revents a bitmask of received events.

Watcher callbacks are passed to the watcher constructors (the classes derived from EvWatcher - EvCheck::__construct() , EvChild::__construct() etc.). A watcher callback should match the following prototype:

callback ( object $watcher = NULL , int $revents = NULL ) : void

watcher

The watcher instance(of a class extending EvWatcher ).

revents

Watcher received events .

Each watcher type has its associated bit in revents , so one can use the same callback for multiple watchers. The event mask is named after the type, i.e. EvChild (or EvLoop::child() ) sets EV::CHILD , EvPrepare (or EvLoop::prepare() ) sets Ev::PREPARE , EvPeriodic (or EvLoop::periodic() ) sets Ev::PERIODIC and so on, with the exception of I/O events (which can set both Ev::READ and Ev::WRITE bits).


Periodic watcher operation modes

EvPeriodic watcher works in different modes depending on the offset , interval and reschedule_cb parameters.

  1. Absolute timer . In this mode interval = 0 , reschedule_cb = null. This time simply fires at the wallclock time offset and doesn't repeat. It will not adjust when a time jump occurs, that is, if it is to be run at January 1st 2014 then it will run when the system time reaches or surpasses this time.

  2. Repeating interval timer . In this mode interval > 0 , reschedule_cb = null; the watcher will always be scheduled to timeout at the next offset + N * interval time(for some integer N ) and then repeat, regardless of any time jumps.

    This can be used to create timers that do not drift with respect to system time:

    <?php
    $hourly     = EvPeriodic(0, 3600, NULL, function () {
      echo     "once per hour\n";
    });
    ?>
    That doesn't mean there will always be 3600 seconds in between triggers, but only that the callback will be called when the system time shows a full hour( UTC ).

    EvPeriodic will try to run the callback in this mode at the next possible time where time = offset ( mod interval ), regardless of any time jumps.

  3. Manual reschedule mode . In this mode reschedule_cb is a callable .

    interval and offset are both being ignored. Instead, each time the periodic watcher gets scheduled, the reschedule callback ( reschedule_cb ) will be called with the watcher as first, and the current time as second argument.

    This callback must not stop or destroy this or any other periodic watchers, ever, and must not call any event loop functions or methods. To stop it return 1e30 and stop it afterwards. An EvPrepare watcher may be used for this task.

    It must return the next time to trigger, based on the passed time value (that is, the lowest time value larger than or equal to the second argument). It will usually be called just before the callback will be triggered, but might be called at other times, too.

    Beispiel #1 Using reschedule callback

    <?php
    // Tick each 10.5 seconds

    function reschedule_cb ($watcher, $now) {
       return     $now + (10.5. - fmod($now, 10.5));
    }

    $w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
       echo     time(), PHP_EOL;
    });

    Ev::run();
    ?>


The Ev class

(PECL ev >= 0.2.0)

Einführung

Ev is a static class providing access to the default loop and to some common operations.

Klassenbeschreibung

final Ev {
/* Constants */
const int FLAG_AUTO = 0 ;
const int FLAG_NOENV = 16777216 ;
const int FLAG_FORKCHECK = 33554432 ;
const int FLAG_NOINOTIFY = 1048576 ;
const int FLAG_SIGNALFD = 2097152 ;
const int FLAG_NOSIGMASK = 4194304 ;
const int RUN_NOWAIT = 1 ;
const int RUN_ONCE = 2 ;
const int BREAK_CANCEL = 0 ;
const int BREAK_ONE = 1 ;
const int BREAK_ALL = 2 ;
const int MINPRI = -2 ;
const int MAXPRI = 2 ;
const int READ = 1 ;
const int WRITE = 2 ;
const int TIMER = 256 ;
const int PERIODIC = 512 ;
const int SIGNAL = 1024 ;
const int CHILD = 2048 ;
const int STAT = 4096 ;
const int IDLE = 8192 ;
const int PREPARE = 16384 ;
const int CHECK = 32768 ;
const int EMBED = 65536 ;
const int CUSTOM = 16777216 ;
const int ERROR = 2147483648 ;
const int BACKEND_SELECT = 1 ;
const int BACKEND_POLL = 2 ;
const int BACKEND_EPOLL = 4 ;
const int BACKEND_KQUEUE = 8 ;
const int BACKEND_DEVPOLL = 16 ;
const int BACKEND_PORT = 32 ;
const int BACKEND_ALL = 63 ;
const int BACKEND_MASK = 65535 ;
/* Methoden */
final public static backend ( ) : int
final public static depth ( ) : int
final public static embeddableBackends ( ) : int
final public static feedSignal ( int $signum ) : void
final public static feedSignalEvent ( int $signum ) : void
final public static iteration ( ) : int
final public static now ( ) : float
final public static nowUpdate ( ) : void
final public static recommendedBackends ( ) : int
final public static resume ( ) : void
final public static run ( int $flags = ? ) : void
final public static sleep ( float $seconds ) : void
final public static stop ( int $how = ? ) : void
final public static supportedBackends ( ) : int
final public static suspend ( ) : void
final public static time ( ) : float
final public static verify ( ) : void
}

Vordefinierte Konstanten

Flags passed to create a loop:

Ev::FLAG_AUTO

The default flags value

Ev::FLAG_NOENV

If this flag used(or the program runs setuid or setgid), libev won't look at the environment variable LIBEV_FLAGS . Otherwise(by default), LIBEV_FLAGS will override the flags completely if it is found. Useful for performance tests and searching for bugs.

Ev::FLAG_FORKCHECK

Makes libev check for a fork in each iteration, instead of calling EvLoop::fork() manually. This works by calling getpid() on every iteration of the loop, and thus this might slow down the event loop with lots of loop iterations, but usually is not noticeable. This flag setting cannot be overridden or specified in the LIBEV_FLAGS environment variable.

Ev::FLAG_NOINOTIFY

When this flag is specified, libev won't attempt to use the inotify API for its » ev_stat watchers. The flag can be useful to conserve inotify file descriptors, as otherwise each loop using ev_stat watchers consumes one inotify handle.

Ev::FLAG_SIGNALFD

When this flag is specified, libev will attempt to use the signalfd API for its » ev_signal (and » ev_child ) watchers. This API delivers signals synchronously, which makes it both faster and might make it possible to get the queued signal data. It can also simplify signal handling with threads, as long as signals are properly blocked in threads. Signalfd will not be used by default.

Ev::FLAG_NOSIGMASK

When this flag is specified, libev will avoid to modify the signal mask. Specifically, this means having to make sure signals are unblocked before receiving them.

This behaviour is useful for custom signal handling, or handling signals only in specific threads.

Flags passed to Ev::run() , or EvLoop::run()

Ev::RUN_NOWAIT

Means that event loop will look for new events, will handle those events and any already outstanding ones, but will not wait and block the process in case there are no events and will return after one iteration of the loop. This is sometimes useful to poll and handle new events while doing lengthy calculations, to keep the program responsive.

Ev::RUN_ONCE

Means that event loop will look for new events (waiting if necessary) and will handle those and any already outstanding ones. It will block the process until at least one new event arrives (which could be an event internal to libev itself, so there is no guarantee that a user-registered callback will be called), and will return after one iteration of the loop.

Flags passed to Ev::stop() , or EvLoop::stop()

Ev::BREAK_CANCEL

Cancel the break operation.

Ev::BREAK_ONE

Makes the innermost Ev::run() (or EvLoop::run() ) call return.

Ev::BREAK_ALL

Makes all nested Ev::run() (or EvLoop::run() ) calls return.

Watcher priorities:

Ev::MINPRI

Minimum allowed watcher priority.

Ev::MAXPRI

Maximum allowed watcher priority.

Bit masks of (received) events:

Ev::READ

The file descriptor in the EvIo watcher has become readable.

Ev::WRITE

The file descriptor in the EvIo watcher has become writable.

Ev::TIMER

EvTimer watcher has been timed out.

Ev::PERIODIC

EvPeriodic watcher has been timed out.

Ev::SIGNAL

A signal specified in EvSignal::__construct() has been received.

Ev::CHILD

The pid specified in EvChild::__construct() has received a status change.

Ev::STAT

The path specified in EvStat watcher changed its attributes.

Ev::IDLE

EvIdle watcher works when there is nothing to do with other watchers.

Ev::PREPARE

All EvPrepare watchers are invoked just before Ev::run() starts. Thus, EvPrepare watchers are the last watchers invoked before the event loop sleeps or polls for new events.

Ev::CHECK

All EvCheck watchers are queued just after Ev::run() has gathered the new events, but before it queues any callbacks for any received events. Thus, EvCheck watchers will be invoked before any other watchers of the same or lower priority within an event loop iteration.

Ev::EMBED

The embedded event loop specified in the EvEmbed watcher needs attention.

Ev::CUSTOM

Not ever sent(or otherwise used) by libev itself, but can be freely used by libev users to signal watchers (e.g. via EvWatcher::feed() ).

Ev::ERROR

An unspecified error has occurred, the watcher has been stopped. This might happen because the watcher could not be properly started because libev ran out of memory, a file descriptor was found to be closed or any other problem. Libev considers these application bugs. See also » ANATOMY OF A WATCHER

Backend flags:

Ev::BACKEND_SELECT

select(2) backend

Ev::BACKEND_POLL

poll(2) backend

Ev::BACKEND_EPOLL

Linux-specific epoll(7) backend for both pre- and post-2.6.9 kernels

Ev::BACKEND_KQUEUE

kqueue backend used on most BSD systems. EvEmbed watcher could be used to embed one loop(with kqueue backend) into another. For instance, one can try to create an event loop with kqueue backend and use it for sockets only.

Ev::BACKEND_DEVPOLL

Solaris 8 backend. This is not implemented yet.

Ev::BACKEND_PORT

Solaris 10 event port mechanism with a good scaling.

Ev::BACKEND_ALL

Try all backends(even currupted ones). It's not recommended to use it explicitly. Bitwise operators should be applied here(e.g. Ev::BACKEND_ALL & ~ Ev::BACKEND_KQUEUE ) Use Ev::recommendedBackends() , or don't specify any backends at all.

Ev::BACKEND_MASK

Not a backend, but a mask to select all backend bits from flags value to mask out any backends(e.g. when modifying the LIBEV_FLAGS environment variable).

Hinweis:

For the default loop during module initialization phase Ev registers » ev_loop_fork call by means of pthread_atfork (if available).

Hinweis:

There are methods providing access to the default event loop in Ev class(e.g. Ev::iteration() , Ev::depth() etc.) For custom loops (created with EvLoop::__construct() ) these values may be accessed via corresponding properties and methods of the EvLoop class.

The instance of the default event loop itself can be fetched by means of EvLoop::defaultLoop() method.

Inhaltsverzeichnis

  • Ev::backend — Returns an integer describing the backend used by libev
  • Ev::depth — Returns recursion depth
  • Ev::embeddableBackends — Returns the set of backends that are embeddable in other event loops
  • Ev::feedSignal — Feed a signal event info Ev
  • Ev::feedSignalEvent — Feed signal event into the default loop
  • Ev::iteration — Return the number of times the default event loop has polled for new events
  • Ev::now — Returns the time when the last iteration of the default event loop has started
  • Ev::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress
  • Ev::recommendedBackends — Returns a bit mask of recommended backends for current platform
  • Ev::resume — Resume previously suspended default event loop
  • Ev::run — Begin checking for events and calling callbacks for the default loop
  • Ev::sleep — Block the process for the given number of seconds
  • Ev::stop — Stops the default event loop
  • Ev::supportedBackends — Returns the set of backends supported by current libev configuration
  • Ev::suspend — Suspend the default event loop
  • Ev::time — Returns the current time in fractional seconds since the epoch
  • Ev::verify — Performs internal consistency checks(for debugging)


Returns an integer describing the backend used by libev

  • « Ev
  • Ev::depth »
  • PHP Manual
  • Ev
  • Returns an integer describing the backend used by libev

Ev::backend

(PECL ev >= 0.2.0)

Ev::backend — Returns an integer describing the backend used by libev

Beschreibung

final public static Ev::backend ( ) : int

Returns an integer describing the backend used by libev . See Backend flags

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer(bit mask) describing the backend used by libev .

Siehe auch

  • EvEmbed
  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops
  • Ev::recommendedBackends() - Returns a bit mask of recommended backends for current platform
  • Ev::supportedBackends() - Returns the set of backends supported by current libev configuration
  • Backend flags


Returns recursion depth

  • « Ev::backend
  • Ev::embeddableBackends »
  • PHP Manual
  • Ev
  • Returns recursion depth

Ev::depth

(PECL ev >= 0.2.0)

Ev::depth — Returns recursion depth

Beschreibung

final public static Ev::depth ( ) : int

The number of times Ev::run() was entered minus the number of times Ev::run() was exited normally, in other words, the recursion depth. Outside Ev::run() , this number is 0 . In a callback, this number is 1 , unless Ev::run() was invoked recursively (or from another thread), in which case it is higher.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

ev_depth() returns recursion depth of the default loop.

Siehe auch

  • Ev::iteration() - Return the number of times the default event loop has polled for new events


Returns the set of backends that are embeddable in other event loops

  • « Ev::depth
  • Ev::feedSignal »
  • PHP Manual
  • Ev
  • Returns the set of backends that are embeddable in other event loops

Ev::embeddableBackends

(PECL ev >= 0.2.0)

Ev::embeddableBackends — Returns the set of backends that are embeddable in other event loops

Beschreibung

final public static Ev::embeddableBackends ( ) : int

Returns the set of backends that are embeddable in other event loops.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a bit mask which can containing backend flags combined using bitwise OR operator.

Beispiele

Beispiel #1 Embedding loop created with kqueue backend into the default loop

<?php
/*
* Check if kqueue is available but not recommended and create a kqueue backend
* for use with sockets (which usually work with any kqueue implementation).
* Store the kqueue/socket-only event loop in loop_socket. (One might optionally
* use EVFLAG_NOENV, too)
*
* Example borrowed from
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop        = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed       = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
 if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
  $embed = new EvEmbed($loop);
 }
}

if (!$socket_loop) {
 $socket_loop = $loop;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>

Siehe auch

  • EvEmbed
  • Ev::recommendedBackends() - Returns a bit mask of recommended backends for current platform
  • Ev::supportedBackends() - Returns the set of backends supported by current libev configuration
  • Backend flags
  • Examples


Feed a signal event info Ev

  • « Ev::embeddableBackends
  • Ev::feedSignalEvent »
  • PHP Manual
  • Ev
  • Feed a signal event info Ev

Ev::feedSignal

(PECL ev >= 0.2.0)

Ev::feedSignal — Feed a signal event info Ev

Beschreibung

final public static Ev::feedSignal ( int $signum ) : void

Simulates a signal receive. It is safe to call this function at any time, from any context, including signal handlers or random threads. Its main use is to customise signal handling in the process.

Unlike Ev::feedSignalEvent() , this works regardless of which loop has registered the signal.

Parameter-Liste

signum

Signal number. See signal(7) man page for detals. You can use constants exported by pcntl extension.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Ev::feedSignalEvent() - Feed signal event into the default loop


Feed signal event into the default loop

  • « Ev::feedSignal
  • Ev::iteration »
  • PHP Manual
  • Ev
  • Feed signal event into the default loop

Ev::feedSignalEvent

(No version information available, might only be in Git)

Ev::feedSignalEvent — Feed signal event into the default loop

Beschreibung

final public static Ev::feedSignalEvent ( int $signum ) : void

Feed signal event into the default loop. Ev will react to this call as if the signal specified by signal had occurred.

Parameter-Liste

signum

Signal number. See signal(7) man page for detals. See also constants exported by pcntl extension.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Ev::feedSignal() - Feed a signal event info Ev


Return the number of times the default event loop has polled for new events

  • « Ev::feedSignalEvent
  • Ev::now »
  • PHP Manual
  • Ev
  • Return the number of times the default event loop has polled for new events

Ev::iteration

(PECL ev >= 0.2.0)

Ev::iteration — Return the number of times the default event loop has polled for new events

Beschreibung

final public static Ev::iteration ( ) : int

Return the number of times the event loop has polled for new events. Sometimes useful as a generation counter.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns number of polls of the default event loop.

Siehe auch

  • Ev::depth() - Returns recursion depth


Returns the time when the last iteration of the default event loop has started

  • « Ev::iteration
  • Ev::nowUpdate »
  • PHP Manual
  • Ev
  • Returns the time when the last iteration of the default event loop has started

Ev::now

(PECL ev >= 0.2.0)

Ev::now — Returns the time when the last iteration of the default event loop has started

Beschreibung

final public static Ev::now ( ) : float

Returns the time when the last iteration of the default event loop has started. This is the time that timers( EvTimer and EvPeriodic ) are based on, and referring to it is usually faster then calling Ev::time() .

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns number of seconds(fractional) representing the time when the last iteration of the default event loop has started.

Siehe auch

  • Ev::nowUpdate() - Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress


Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress

  • « Ev::now
  • Ev::recommendedBackends »
  • PHP Manual
  • Ev
  • Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress

Ev::nowUpdate

(PECL ev >= 0.2.0)

Ev::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress

Beschreibung

final public static Ev::nowUpdate ( ) : void

Establishes the current time by querying the kernel, updating the time returned by Ev::now() in the progress. This is a costly operation and is usually done automatically within Ev::run() .

This method is rarely useful, but when some event callback runs for a very long time without entering the event loop, updating libev 's consideration of the current time is a good idea.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Ev::now() - Returns the time when the last iteration of the default event loop has started


Returns a bit mask of recommended backends for current platform

  • « Ev::nowUpdate
  • Ev::resume »
  • PHP Manual
  • Ev
  • Returns a bit mask of recommended backends for current platform

Ev::recommendedBackends

(PECL ev >= 0.2.0)

Ev::recommendedBackends — Returns a bit mask of recommended backends for current platform

Beschreibung

final public static Ev::recommendedBackends ( ) : int

Returns the set of all backends compiled into this binary of libev and also recommended for this platform, meaning it will work for most file descriptor types. This set is often smaller than the one returned by ev_supported_backends() , as for example kqueue is broken on most BSD systems and will not be auto-detected unless it is requested explicitly. This is the set of backends that libev will probe no backends specified explicitly.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a bit mask which can containing backend flags combined using bitwise OR operator.

Beispiele

Beispiel #1 Embedding one loop into another

<?php
/*
* Try to get an embeddable event loop and embed it into the default event loop.
* If it is impossible, use the default
* loop. The default loop is stored in $loop_hi, while the embeddable loop is
* stored in $loop_lo(which is $loop_hi in the case no embeddable loop can be
* used).
*
* Sample translated to PHP
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop_hi = EvLoop::defaultLoop();
$loop_lo = NULL;
$embed   = NULL;

/*
* See if there is a chance of getting one that works
* (flags' value of 0 means autodetection)
*/
$loop_lo = Ev::embeddableBackends() & Ev::recommendedBackends()
 ? new EvLoop(Ev::embeddableBackends() & Ev::recommendedBackends())
 : 0;

if ($loop_lo) {
 $embed = new EvEmbed($loop_lo, function () {});
} else {
 $loop_lo = $loop_hi;
}
?>

Siehe auch

  • EvEmbed
  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops
  • Ev::supportedBackends() - Returns the set of backends supported by current libev configuration
  • Backend flags
  • Examples


Resume previously suspended default event loop

  • « Ev::recommendedBackends
  • Ev::run »
  • PHP Manual
  • Ev
  • Resume previously suspended default event loop

Ev::resume

(PECL ev >= 0.2.0)

Ev::resume — Resume previously suspended default event loop

Beschreibung

final public static Ev::resume ( ) : void

Ev::suspend() and Ev::resume() methods suspend and resume a loop correspondingly.

All timer watchers will be delayed by the time spend between suspend and resume , and all periodic watchers will be rescheduled(that is, they will lose any events that would have occurred while suspended).

After calling Ev::suspend() it is not allowed to call any function on the given loop other than Ev::resume() . Also it is not allowed to call Ev::resume() without a previous call to Ev::suspend() .

Calling suspend / resume has the side effect of updating the event loop time(see Ev::nowUpdate() ).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Ev::suspend() - Suspend the default event loop


Begin checking for events and calling callbacks for the default loop

  • « Ev::resume
  • Ev::sleep »
  • PHP Manual
  • Ev
  • Begin checking for events and calling callbacks for the default loop

Ev::run

(PECL ev >= 0.2.0)

Ev::run — Begin checking for events and calling callbacks for the default loop

Beschreibung

final public static Ev::run ( int $flags = ? ) : void

Begin checking for events and calling callbacks for the default loop . Returns when a callback calls Ev::stop() method, or the flags are nonzero(in which case the return value is true) or when there are no active watchers which reference the loop( EvWatcher::keepalive() is true), in which case the return value will be false. The return value can generally be interpreted as if true, there is more work left to do .

Parameter-Liste

flags

Optional parameter flags can be one of the following:

List for possible values of flags
flags | Description
0 | The default behavior described above
Ev::RUN_ONCE | Block at most one(wait, but don't loop)
Ev::RUN_NOWAIT | Don't block at all(fetch/handle events, but don't wait)

See the run flag constants .

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Ev::stop() - Stops the default event loop
  • EvLoop::run() - Begin checking for events and calling callbacks for the loop


Block the process for the given number of seconds

  • « Ev::run
  • Ev::stop »
  • PHP Manual
  • Ev
  • Block the process for the given number of seconds

Ev::sleep

(PECL ev >= 0.2.0)

Ev::sleep — Block the process for the given number of seconds

Beschreibung

final public static Ev::sleep ( float $seconds ) : void

Block the process for the given number of seconds.

Parameter-Liste

seconds

Fractional number of seconds

Rückgabewerte

Es wird kein Wert zurückgegeben.


Stops the default event loop

  • « Ev::sleep
  • Ev::supportedBackends »
  • PHP Manual
  • Ev
  • Stops the default event loop

Ev::stop

(PECL ev >= 0.2.0)

Ev::stop — Stops the default event loop

Beschreibung

final public static Ev::stop ( int $how = ? ) : void

Stops the default event loop

Parameter-Liste

how

One of Ev::BREAK_* constants .

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Ev::run() - Begin checking for events and calling callbacks for the default loop


Returns the set of backends supported by current libev configuration

  • « Ev::stop
  • Ev::suspend »
  • PHP Manual
  • Ev
  • Returns the set of backends supported by current libev configuration

Ev::supportedBackends

(PECL ev >= 0.2.0)

Ev::supportedBackends — Returns the set of backends supported by current libev configuration

Beschreibung

final public static Ev::supportedBackends ( ) : int

Returns the set of backends supported by current libev configuration.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a bit mask which can containing backend flags combined using bitwise OR operator.

Beispiele

Beispiel #1 Embedding loop created with kqueue backend into the default loop

<?php
/*
* Check if kqueue is available but not recommended and create a kqueue backend
* for use with sockets (which usually work with any kqueue implementation).
* Store the kqueue/socket-only event loop in loop_socket. (One might optionally
* use EVFLAG_NOENV, too)
*
* Example borrowed from
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop        = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed       = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
 if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
  $embed = new EvEmbed($loop);
 }
}

if (!$socket_loop) {
 $socket_loop = $loop;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>

Siehe auch

  • EvEmbed
  • Ev::recommendedBackends() - Returns a bit mask of recommended backends for current platform
  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops
  • Backend flags
  • Examples


Suspend the default event loop

  • « Ev::supportedBackends
  • Ev::time »
  • PHP Manual
  • Ev
  • Suspend the default event loop

Ev::suspend

(PECL ev >= 0.2.0)

Ev::suspend — Suspend the default event loop

Beschreibung

final public static Ev::suspend ( ) : void

Ev::suspend() and Ev::resume() methods suspend and resume the default loop correspondingly.

All timer watchers will be delayed by the time spend between suspend and resume , and all periodic watchers will be rescheduled(that is, they will lose any events that would have occurred while suspended).

After calling Ev::suspend() it is not allowed to call any function on the given loop other than Ev::resume() . Also it is not allowed to call Ev::resume() without a previous call to Ev::suspend() .

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Ev::resume() - Resume previously suspended default event loop


Returns the current time in fractional seconds since the epoch

  • « Ev::suspend
  • Ev::verify »
  • PHP Manual
  • Ev
  • Returns the current time in fractional seconds since the epoch

Ev::time

(PECL ev >= 0.2.0)

Ev::time — Returns the current time in fractional seconds since the epoch

Beschreibung

final public static Ev::time ( ) : float

Returns the current time in fractional seconds since the epoch. Consider using Ev::now()

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current time in fractional seconds since the epoch.

Siehe auch

  • Ev::now() - Returns the time when the last iteration of the default event loop has started


Performs internal consistency checks(for debugging)

  • « Ev::time
  • EvCheck »
  • PHP Manual
  • Ev
  • Performs internal consistency checks(for debugging)

Ev::verify

(PECL ev >= 0.2.0)

Ev::verify — Performs internal consistency checks(for debugging)

Beschreibung

final public static Ev::verify ( ) : void

Performs internal consistency checks(for debugging libev ) and abort the program if any data structures were found to be corrupted.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The EvCheck class

(PECL ev >= 0.2.0)

Einführung

EvPrepare and EvCheck watchers are usually used in pairs. EvPrepare watchers get invoked before the process blocks, EvCheck afterwards.

It is not allowed to call EvLoop::run() or similar methods or functions that enter the current event loop from either EvPrepare or EvCheck watchers. Other loops than the current one are fine, however. The rationale behind this is that one don't need to check for recursion in those watchers, i.e. the sequence will always be: EvPrepare -> blocking -> EvCheck , so having a watcher of each kind they will always be called in pairs bracketing the blocking call.

The main purpose is to integrate other event mechanisms into libev and their use is somewhat advanced. They could be used, for example, to track variable changes, implement custom watchers, integrate net-snmp or a coroutine library and lots more. They are also occasionally useful to cache some data and want to flush it before blocking.

It is recommended to give EvCheck watchers highest( Ev::MAXPRI ) priority, to ensure that they are being run before any other watchers after the poll (this doesn’t matter for EvPrepare watchers).

Also, EvCheck watchers should not activate/feed events. While libev fully supports this, they might get executed before other EvCheck watchers did their job.

Klassenbeschreibung

EvCheck extends EvWatcher {
/* Geerbte Eigenschaften */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Methoden */
public __construct ( callable $callback , mixed $data = ? , int $priority = ? )
final public static createStopped ( string $callback , string $data = ? , string $priority = ? ) : object
/* Geerbte Methoden */
public EvWatcher::clear ( ) : int
abstract public EvWatcher::__construct ( )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ( bool $value = ? ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( ) : void
public EvWatcher::stop ( ) : void
}

Inhaltsverzeichnis

  • EvCheck::__construct — Constructs the EvCheck watcher object
  • EvCheck::createStopped — Create instance of a stopped EvCheck watcher


Constructs the EvCheck watcher object

  • « EvCheck
  • EvCheck::createStopped »
  • PHP Manual
  • EvCheck
  • Constructs the EvCheck watcher object

EvCheck::__construct

(PECL ev >= 0.2.0)

EvCheck::__construct — Constructs the EvCheck watcher object

Beschreibung

public EvCheck::__construct ( callable $callback , mixed $data = ? , int $priority = ? )

Constructs the EvCheck watcher object.

Parameter-Liste

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvCheck object on success.

Siehe auch

  • EvPrepare
  • EvLoop::check() - Creates EvCheck object associated with the current event loop instance


Create instance of a stopped EvCheck watcher

  • « EvCheck::__construct
  • EvChild »
  • PHP Manual
  • EvCheck
  • Create instance of a stopped EvCheck watcher

EvCheck::createStopped

(PECL ev >= 0.2.0)

EvCheck::createStopped — Create instance of a stopped EvCheck watcher

Beschreibung

final public static EvCheck::createStopped ( string $callback , string $data = ? , string $priority = ? ) : object

Create instance of a stopped EvCheck watcher

Parameter-Liste

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvCheck object on success.

Siehe auch

  • EvPrepare


The EvChild class

(PECL ev >= 0.2.0)

Einführung

EvChild watchers trigger when the process receives a SIGCHLD in response to some child status changes (most typically when a child dies or exits). It is permissible to install an EvChild watcher after the child has been forked(which implies it might have already exited), as long as the event loop isn't entered(or is continued from a watcher), i.e. forking and then immediately registering a watcher for the child is fine, but forking and registering a watcher a few event loop iterations later or in the next callback invocation is not.

It is allowed to register EvChild watchers in the default loop only.

Klassenbeschreibung

EvChild extends EvWatcher {
/* Eigenschaften */
public $pid ;
public $rpid ;
public $rstatus ;
/* Geerbte Eigenschaften */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Methoden */
public __construct ( int $pid , bool $trace , callable $callback , mixed $data = null , int $priority = 0 )
final public static createStopped ( int $pid , bool $trace , callable $callback , mixed $data = ? , int $priority = ? ) : object
public set ( int $pid , bool $trace ) : void
/* Geerbte Methoden */
public EvWatcher::clear ( ) : int
abstract public EvWatcher::__construct ( )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ( bool $value = ? ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( ) : void
public EvWatcher::stop ( ) : void
}

Eigenschaften

pid

Readonly . The process ID this watcher watches out for, or 0 , meaning any process ID.

rpid

Readonly .The process ID that detected a status change.

rstatus

Readonly . The process exit status caused by rpid .

Inhaltsverzeichnis

  • EvChild::__construct — Constructs the EvChild watcher object
  • EvChild::createStopped — Create instance of a stopped EvCheck watcher
  • EvChild::set — Configures the watcher


Constructs the EvChild watcher object

  • « EvChild
  • EvChild::createStopped »
  • PHP Manual
  • EvChild
  • Constructs the EvChild watcher object

EvChild::__construct

(PECL ev >= 0.2.0)

EvChild::__construct — Constructs the EvChild watcher object

Beschreibung

public EvChild::__construct ( int $pid , bool $trace , callable $callback , mixed $data = null , int $priority = 0 )

Constructs the EvChild watcher object.

Call the callback when a status change for process ID pid (or any PID if pid is 0 ) has been received(a status change happens when the process terminates or is killed, or, when trace is true, additionally when it is stopped or continued). In other words, when the process receives a SIGCHLD , Ev will fetch the outstanding exit/wait status for all changed/zombie children and call the callback.

It is valid to install a child watcher after an EvChild has exited but before the event loop has started its next iteration. For example, first one calls fork , then the new child process might exit, and only then an EvChild watcher is installed in the parent for the new PID .

You can access both exit/tracing status and pid by using the rstatus and rpid properties of the watcher object.

The number of PID watchers per PID is unlimited. All of them will be called.

The EvChild::createStopped() method doesn't start(activate) the newly created watcher.

Parameter-Liste

pid

Wait for status changes of process PID(or any process if PID is specified as 0 ).

trace

If false, only activate the watcher when the process terminates. Otherwise(true) additionally activate the watcher when the process is stopped or continued.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvChild object on success.

Siehe auch

  • EvLoop::child() - Creates EvChild object associated with the current event loop


Create instance of a stopped EvCheck watcher

  • « EvChild::__construct
  • EvChild::set »
  • PHP Manual
  • EvChild
  • Create instance of a stopped EvCheck watcher

EvChild::createStopped

(PECL ev >= 0.2.0)

EvChild::createStopped — Create instance of a stopped EvCheck watcher

Beschreibung

final public static EvChild::createStopped ( int $pid , bool $trace , callable $callback , mixed $data = ? , int $priority = ? ) : object

The same as EvChild::__construct() , but doesn't start the watcher automatically.

Parameter-Liste

pid

The same as for EvChild::__construct()

trace

The same as for EvChild::__construct()

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Siehe auch

  • EvChild::__construct() - Constructs the EvChild watcher object
  • EvLoop::child() - Creates EvChild object associated with the current event loop


Configures the watcher

  • « EvChild::createStopped
  • EvEmbed »
  • PHP Manual
  • EvChild
  • Configures the watcher

EvChild::set

(PECL ev >= 0.2.0)

EvChild::set — Configures the watcher

Beschreibung

public EvChild::set ( int $pid , bool $trace ) : void

Parameter-Liste

pid

The same as for EvChild::__construct()

trace

The same as for EvChild::__construct()

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EvChild::__construct() - Constructs the EvChild watcher object


The EvEmbed class

(PECL ev >= 0.2.0)

Einführung

Used to embed one event loop into another.

Klassenbeschreibung

EvEmbed extends EvWatcher {
/* Eigenschaften */
public $embed ;
/* Methoden */
public __construct ( object $other , callable $callback = ? , mixed $data = ? , int $priority = ? )
final public static createStopped ( object $other , callable $callback = ? , mixed $data = ? , int $priority = ? ) : void
public set ( object $other ) : void
public sweep ( ) : void
/* Geerbte Methoden */
public EvWatcher::clear ( ) : int
abstract public EvWatcher::__construct ( )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ( bool $value = ? ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( ) : void
public EvWatcher::stop ( ) : void
}

Eigenschaften

is_active

data

is_pending

priority

embed

Inhaltsverzeichnis

  • EvEmbed::__construct — Constructs the EvEmbed object
  • EvEmbed::createStopped — Create stopped EvEmbed watcher object
  • EvEmbed::set — Configures the watcher
  • EvEmbed::sweep — Make a single, non-blocking sweep over the embedded loop


Constructs the EvEmbed object

  • « EvEmbed
  • EvEmbed::createStopped »
  • PHP Manual
  • EvEmbed
  • Constructs the EvEmbed object

EvEmbed::__construct

(PECL ev >= 0.2.0)

EvEmbed::__construct — Constructs the EvEmbed object

Beschreibung

public EvEmbed::__construct ( object $other , callable $callback = ? , mixed $data = ? , int $priority = ? )

This is a rather advanced watcher type that lets to embed one event loop into another(currently only IO events are supported in the embedded loop, other types of watchers might be handled in a delayed or incorrect fashion and must not be used).

See » the libev documentation for details.

This watcher is most useful on BSD systems without working kqueue to still be able to handle a large number of sockets. See example below.

Parameter-Liste

other

Instance of EvLoop . The loop to embed, this loop must be embeddable(see Ev::embeddableBackends() ).

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvEmbed object on success.

Beispiele

Beispiel #1 Embedding loop created with kqueue backend into the default loop

<?php
/*
 * Check if kqueue is available but not recommended and create a kqueue backend
 * for use with sockets (which usually work with any kqueue implementation).
 * Store the kqueue/socket-only event loop in loop_socket. (One might optionally
 * use EVFLAG_NOENV, too)
 *
 * Example borrowed from
 * http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
 */
$loop        = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed       = NULL;

if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
    if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
        $embed = new EvEmbed($loop);
    }
}

if (!$socket_loop) {
    $socket_loop = $loop;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>

Siehe auch

  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops


Create stopped EvEmbed watcher object

  • « EvEmbed::__construct
  • EvEmbed::set »
  • PHP Manual
  • EvEmbed
  • Create stopped EvEmbed watcher object

EvEmbed::createStopped

(PECL ev >= 0.2.0)

EvEmbed::createStopped — Create stopped EvEmbed watcher object

Beschreibung

final public static EvEmbed::createStopped ( object $other , callable $callback = ? , mixed $data = ? , int $priority = ? ) : void

The same as EvEmbed::__construct() , but doesn't start the watcher automatically.

Parameter-Liste

other

The same as for EvEmbed::__construct()

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns stopped EvEmbed object on success.

Siehe auch

  • EvEmbed::__construct() - Constructs the EvEmbed object
  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops


Configures the watcher

  • « EvEmbed::createStopped
  • EvEmbed::sweep »
  • PHP Manual
  • EvEmbed
  • Configures the watcher

EvEmbed::set

(PECL ev >= 0.2.0)

EvEmbed::set — Configures the watcher

Beschreibung

public EvEmbed::set ( object $other ) : void

Configures the watcher to use other event loop object.

Parameter-Liste

other

The same as for EvEmbed::__construct()

Rückgabewerte

Es wird kein Wert zurückgegeben.


Make a single, non-blocking sweep over the embedded loop

  • « EvEmbed::set
  • EvFork »
  • PHP Manual
  • EvEmbed
  • Make a single, non-blocking sweep over the embedded loop

EvEmbed::sweep

(PECL ev >= 0.2.0)

EvEmbed::sweep — Make a single, non-blocking sweep over the embedded loop

Beschreibung

public EvEmbed::sweep ( ) : void

Make a single, non-blocking sweep over the embedded loop. Works similarly to the following, but in the most appropriate way for embedded loops:

<?php
$other->start(Ev::RUN_NOWAIT);
?>

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EvWatcher::start() - Starts the watcher


The EvFork class

(PECL ev >= 0.2.0)

Einführung

Fork watchers are called when a fork() was detected (usually because whoever signalled libev about it by calling EvLoop::fork() ). The invocation is done before the event loop blocks next and before EvCheck watchers are being called, and only in the child after the fork. Note, that if whoever calling EvLoop::fork() calls it in the wrong process, the fork handlers will be invoked, too.

Klassenbeschreibung

EvFork extends EvWatcher {
/* Geerbte Eigenschaften */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Methoden */
public __construct ( callable $callback , mixed $data = null , int $priority = 0 )
final public static createStopped ( string $callback , string $data = ? , string $priority = ? ) : object
/* Geerbte Methoden */
public EvWatcher::clear ( ) : int
abstract public EvWatcher::__construct ( )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ( bool $value = ? ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( ) : void
public EvWatcher::stop ( ) : void
}

Inhaltsverzeichnis

  • EvFork::__construct — Constructs the EvFork watcher object
  • EvFork::createStopped — Creates a stopped instance of EvFork watcher class


Constructs the EvFork watcher object

  • « EvFork
  • EvFork::createStopped »
  • PHP Manual
  • EvFork
  • Constructs the EvFork watcher object

EvFork::__construct

(PECL ev >= 0.2.0)

EvFork::__construct — Constructs the EvFork watcher object

Beschreibung

public EvFork::__construct ( callable $callback , mixed $data = null , int $priority = 0 )

Constructs the EvFork watcher object and starts the watcher automatically.

Parameter-Liste

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvFork object on success.

Siehe auch

  • EvLoop::fork() - Creates EvFork watcher object associated with the current event loop instance
  • EvCheck


Creates a stopped instance of EvFork watcher class

  • « EvFork::__construct
  • EvIdle »
  • PHP Manual
  • EvFork
  • Creates a stopped instance of EvFork watcher class

EvFork::createStopped

(PECL ev >= 0.2.0)

EvFork::createStopped — Creates a stopped instance of EvFork watcher class

Beschreibung

final public static EvFork::createStopped ( string $callback , string $data = ? , string $priority = ? ) : object

The same as EvFork::__construct() , but doesn't start the watcher automatically.

Parameter-Liste

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvFork(stopped) object on success.

Siehe auch

  • EvFork::__construct() - Constructs the EvFork watcher object


The EvIdle class

(PECL ev >= 0.2.0)

Einführung

EvIdle watchers trigger events when no other events of the same or higher priority are pending ( EvPrepare , EvCheck and other EvIdle watchers do not count as receiving events ).

Thus, as long as the process is busy handling sockets or timeouts(or even signals) of the same or higher priority it will not be triggered. But when the process is in idle(or only lower-priority watchers are pending), the EvIdle watchers are being called once per event loop iteration - until stopped, that is, or the process receives more events and becomes busy again with higher priority stuff.

Apart from keeping the process non-blocking(which is a useful on its own sometimes), EvIdle watchers are a good place to do "pseudo-background processing" , or delay processing stuff to after the event loop has handled all outstanding events.

The most noticeable effect is that as long as any idle watchers are active, the process will not block when waiting for new events.

Klassenbeschreibung

EvIdle extends EvWatcher {
/* Geerbte Eigenschaften */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Methoden */
public __construct ( callable $callback , mixed $data = ? , int $priority = ? )
final public static createStopped ( string $callback , mixed $data = ? , int $priority = ? ) : object
/* Geerbte Methoden */
public EvWatcher::clear ( ) : int
abstract public EvWatcher::__construct ( )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ( bool $value = ? ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( ) : void
public EvWatcher::stop ( ) : void
}

Inhaltsverzeichnis

  • EvIdle::__construct — Constructs the EvIdle watcher object
  • EvIdle::createStopped — Creates instance of a stopped EvIdle watcher object


Constructs the EvIdle watcher object

  • « EvIdle
  • EvIdle::createStopped »
  • PHP Manual
  • EvIdle
  • Constructs the EvIdle watcher object

EvIdle::__construct

(PECL ev >= 0.2.0)

EvIdle::__construct — Constructs the EvIdle watcher object

Beschreibung

public EvIdle::__construct ( callable $callback , mixed $data = ? , int $priority = ? )

Constructs the EvIdle watcher object and starts the watcher automatically.

Parameter-Liste

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvIdle object on success.

Siehe auch

  • EvIdle::createStopped() - Creates instance of a stopped EvIdle watcher object
  • EvLoop::idle() - Creates EvIdle watcher object associated with the current event loop instance


Creates instance of a stopped EvIdle watcher object

  • « EvIdle::__construct
  • EvIo »
  • PHP Manual
  • EvIdle
  • Creates instance of a stopped EvIdle watcher object

EvIdle::createStopped

(PECL ev >= 0.2.0)

EvIdle::createStopped — Creates instance of a stopped EvIdle watcher object

Beschreibung

final public static EvIdle::createStopped ( string $callback , mixed $data = ? , int $priority = ? ) : object

The same as EvIdle::__construct() , but doesn't start the watcher automatically.

Parameter-Liste

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvIdle object on success.

Siehe auch

  • EvIdle::__construct() - Constructs the EvIdle watcher object
  • EvLoop::idle() - Creates EvIdle watcher object associated with the current event loop instance


The EvIo class

(PECL ev >= 0.2.0)

Einführung

EvIo watchers check whether a file descriptor(or socket, or a stream castable to numeric file descriptor) is readable or writable in each iteration of the event loop, or, more precisely, when reading would not block the process and writing would at least be able to write some data. This behaviour is called level-triggering because events are kept receiving as long as the condition persists. To stop receiving events just stop the watcher.

The number of read and/or write event watchers per fd is unlimited. Setting all file descriptors to non-blocking mode is also usually a good idea(but not required).

Another thing to watch out for is that it is quite easy to receive false readiness notifications, i.e. the callback might be called with Ev::READ but a subsequent read() will actually block because there is no data. It is very easy to get into this situation. Thus it is best to always use non-blocking I/O: An extra read() returning EAGAIN (or similar) is far preferable to a program hanging until some data arrives.

If for some reason it is impossible to run the fd in non-blocking mode, then separately re-test whether a file descriptor is really ready. Some people additionally use SIGALRM and an interval timer, just to be sure thry won't block infinitely.

Always consider using non-blocking mode.

Klassenbeschreibung

EvIo extends EvWatcher {
/* Eigenschaften */
public $fd ;
public $events ;
/* Geerbte Eigenschaften */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Methoden */
public __construct ( mixed $fd , int $events , callable $callback , mixed $data = ? , int $priority = ? )
final public static createStopped ( mixed $fd , int $events , callable $callback , mixed $data = null , int $priority = 0 ) : EvIo
public set ( mixed $fd , int $events ) : void
/* Geerbte Methoden */
public EvWatcher::clear ( ) : int
abstract public EvWatcher::__construct ( )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ( bool $value = ? ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( ) : void
public EvWatcher::stop ( ) : void
}

Eigenschaften

fd

events

Inhaltsverzeichnis

  • EvIo::__construct — Constructs EvIo watcher object
  • EvIo::createStopped — Create stopped EvIo watcher object
  • EvIo::set — Configures the watcher


Constructs EvIo watcher object

  • « EvIo
  • EvIo::createStopped »
  • PHP Manual
  • EvIo
  • Constructs EvIo watcher object

EvIo::__construct

(PECL ev >= 0.2.0)

EvIo::__construct — Constructs EvIo watcher object

Beschreibung

public EvIo::__construct ( mixed $fd , int $events , callable $callback , mixed $data = ? , int $priority = ? )

Constructs EvIo watcher object and starts the watcher automatically.

Parameter-Liste

fd

Can be a stream opened with fopen() or similar functions, numeric file descriptor, or socket.

events

Ev::READ and/or Ev::WRITE . See the bit masks .

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvIo object on success.

Siehe auch

  • EvIo::createStopped() - Create stopped EvIo watcher object
  • EvLoop::io() - Create EvIo watcher object associated with the current event loop instance


Create stopped EvIo watcher object

  • « EvIo::__construct
  • EvIo::set »
  • PHP Manual
  • EvIo
  • Create stopped EvIo watcher object

EvIo::createStopped

(PECL ev >= 0.2.0)

EvIo::createStopped — Create stopped EvIo watcher object

Beschreibung

final public static EvIo::createStopped ( mixed $fd , int $events , callable $callback , mixed $data = null , int $priority = 0 ) : EvIo

The same as EvIo::__construct() , but doesn't start the watcher automatically.

Parameter-Liste

fd

The same as for EvIo::__construct()

events

The same as for EvIo::__construct()

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvIo object on success.

Siehe auch

  • EvIo::__construct() - Constructs EvIo watcher object
  • EvLoop::io() - Create EvIo watcher object associated with the current event loop instance


Configures the watcher

  • « EvIo::createStopped
  • EvLoop »
  • PHP Manual
  • EvIo
  • Configures the watcher

EvIo::set

(PECL ev >= 0.2.0)

EvIo::set — Configures the watcher

Beschreibung

public EvIo::set ( mixed $fd , int $events ) : void

Configures the EvIo watcher

Parameter-Liste

fd

The same as for EvIo::__construct()

events

The same as for EvIo::__construct()

Rückgabewerte

Es wird kein Wert zurückgegeben.


The EvLoop class

(PECL ev >= 0.2.0)

Einführung

Represents an event loop that is always distinct from the default loop . Unlike the default loop , it cannot handle EvChild watchers.

Having threads we have to create a loop per thread, and use the default loop in the parent thread.

The default event loop is initialized automatically by Ev . It is accessible via methods of the Ev class, or via EvLoop::defaultLoop() method.

Klassenbeschreibung

final EvLoop {
/* Eigenschaften */
public $data ;
public $backend ;
public $is_default_loop ;
public $iteration ;
public $pending ;
public $io_interval ;
public $timeout_interval ;
public $depth ;
/* Methoden */
public backend ( ) : int
final public check ( string $callback , string $data = ? , string $priority = ? ) : EvCheck
final public child ( string $pid , string $trace , string $callback , string $data = ? , string $priority = ? ) : EvChild
public __construct ( int $flags = ? , mixed $data = NULL , float $io_interval = 0.0 , float $timeout_interval = 0.0 )
public static defaultLoop ( int $flags = Ev::FLAG_AUTO , mixed $data = NULL , float $io_interval = 0. , float $timeout_interval = 0. ) : EvLoop
final public embed ( string $other , string $callback = ? , string $data = ? , string $priority = ? ) : EvEmbed
final public fork ( callable $callback , mixed $data = null , int $priority = 0 ) : EvFork
final public idle ( callable $callback , mixed $data = null , int $priority = 0 ) : EvIdle
public invokePending ( ) : void
final public io ( mixed $fd , int $events , callable $callback , mixed $data = null , int $priority = 0 ) : EvIo
public loopFork ( ) : void
public now ( ) : float
public nowUpdate ( ) : void
final public periodic ( float $offset , float $interval , callable $callback , mixed $data = null , int $priority = 0 ) : EvPeriodic
final public prepare ( callable $callback , mixed $data = null , int $priority = 0 ) : EvPrepare
public resume ( ) : void
public run ( int $flags = 0 ) : void
final public signal ( int $signum , callable $callback , mixed $data = null , int $priority = 0 ) : EvSignal
final public stat ( string $path , float $interval , callable $callback , mixed $data = null , int $priority = 0 ) : EvStat
public stop ( int $how = ? ) : void
public suspend ( ) : void
final public timer ( float $after , float $repeat , callable $callback , mixed $data = null , int $priority = 0 ) : EvTimer
public verify ( ) : void
}

Eigenschaften

data

Custom data attached to loop

backend

Readonly . The backend flags indicating the event backend in use.

is_default_loop

Readonly . true if it is the default event loop.

iteration

The current iteration count of the loop. See Ev::iteration()

pending

The number of pending watchers. 0 indicates that there are no watchers pending.

io_interval

Higher io_interval allows libev to spend more time collecting EvIo events, so more events can be handled per iteration, at the cost of increasing latency. Timeouts (both EvPeriodic and EvTimer ) will not be affected. Setting this to a non-zero value will introduce an additional sleep() call into most loop iterations. The sleep time ensures that libev will not poll for EvIo events more often than once per this interval, on average. Many programs can usually benefit by setting the io_interval to a value near 0.1 , which is often enough for interactive servers(not for games). It usually doesn't make much sense to set it to a lower value than 0.01 , as this approaches the timing granularity of most systems.

See also » FUNCTIONS CONTROLLING EVENT LOOPS .

timeout_interval

Higher timeout_interval allows libev to spend more time collecting timeouts, at the expense of increased latency/jitter/inexactness(the watcher callback will be called later). EvIo watchers will not be affected. Setting this to a non-null value will not introduce any overhead in libev . See also » FUNCTIONS CONTROLLING EVENT LOOPS .

depth

The recursion depth. See Ev::depth() .

Inhaltsverzeichnis

  • EvLoop::backend — Returns an integer describing the backend used by libev
  • EvLoop::check — Creates EvCheck object associated with the current event loop instance
  • EvLoop::child — Creates EvChild object associated with the current event loop
  • EvLoop::__construct — Constructs the event loop object
  • EvLoop::defaultLoop — Returns or creates the default event loop
  • EvLoop::embed — Creates an instance of EvEmbed watcher associated with the current EvLoop object
  • EvLoop::fork — Creates EvFork watcher object associated with the current event loop instance
  • EvLoop::idle — Creates EvIdle watcher object associated with the current event loop instance
  • EvLoop::invokePending — Invoke all pending watchers while resetting their pending state
  • EvLoop::io — Create EvIo watcher object associated with the current event loop instance
  • EvLoop::loopFork — Must be called after a fork
  • EvLoop::now — Returns the current "event loop time"
  • EvLoop::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress
  • EvLoop::periodic — Creates EvPeriodic watcher object associated with the current event loop instance
  • EvLoop::prepare — Creates EvPrepare watcher object associated with the current event loop instance
  • EvLoop::resume — Resume previously suspended default event loop
  • EvLoop::run — Begin checking for events and calling callbacks for the loop
  • EvLoop::signal — Creates EvSignal watcher object associated with the current event loop instance
  • EvLoop::stat — Creates EvStat watcher object associated with the current event loop instance
  • EvLoop::stop — Stops the event loop
  • EvLoop::suspend — Suspend the loop
  • EvLoop::timer — Creates EvTimer watcher object associated with the current event loop instance
  • EvLoop::verify — Performs internal consistency checks(for debugging)


Returns an integer describing the backend used by libev

  • « EvLoop
  • EvLoop::check »
  • PHP Manual
  • EvLoop
  • Returns an integer describing the backend used by libev

EvLoop::backend

(PECL ev >= 0.2.0)

EvLoop::backend — Returns an integer describing the backend used by libev

Beschreibung

public EvLoop::backend ( ) : int

The same as Ev::backend() , but for the loop instance.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer describing the backend used by libev. See Ev::backend() .

Siehe auch

  • Ev::backend() - Returns an integer describing the backend used by libev


Creates EvCheck object associated with the current event loop instance

  • « EvLoop::backend
  • EvLoop::child »
  • PHP Manual
  • EvLoop
  • Creates EvCheck object associated with the current event loop instance

EvLoop::check

(PECL ev >= 0.2.0)

EvLoop::check — Creates EvCheck object associated with the current event loop instance

Beschreibung

final public EvLoop::check ( string $callback , string $data = ? , string $priority = ? ) : EvCheck

Creates EvCheck object associated with the current event loop instance.

Parameter-Liste

All parameters have the same meaning as for EvCheck::__construct()

Rückgabewerte

Returns EvCheck object on success.

Siehe auch

  • EvCheck::__construct() - Constructs the EvCheck watcher object


Creates EvChild object associated with the current event loop

  • « EvLoop::check
  • EvLoop::__construct »
  • PHP Manual
  • EvLoop
  • Creates EvChild object associated with the current event loop

EvLoop::child

(PECL ev >= 0.2.0)

EvLoop::child — Creates EvChild object associated with the current event loop

Beschreibung

final public EvLoop::child ( string $pid , string $trace , string $callback , string $data = ? , string $priority = ? ) : EvChild

Creates EvChild object associated with the current event loop.

Parameter-Liste

All parameters have the same meaning as for EvChild::__construct()

Rückgabewerte

Returns EvChild object on success.

Siehe auch

  • EvChild::__construct() - Constructs the EvChild watcher object


Constructs the event loop object

  • « EvLoop::child
  • EvLoop::defaultLoop »
  • PHP Manual
  • EvLoop
  • Constructs the event loop object

EvLoop::__construct

(PECL ev >= 0.2.0)

EvLoop::__construct — Constructs the event loop object

Beschreibung

public EvLoop::__construct ( int $flags = ? , mixed $data = NULL , float $io_interval = 0.0 , float $timeout_interval = 0.0 )

Constructs the event loop object.

Parameter-Liste

flags

One of the event loop flags

data

Custom data associated with the loop.

io_interval

See io_interval

timeout_interval

See timeout_interval

Rückgabewerte

Returns new EvLoop object.

Siehe auch

  • EvLoop::defaultLoop() - Returns or creates the default event loop


Returns or creates the default event loop

  • « EvLoop::__construct
  • EvLoop::embed »
  • PHP Manual
  • EvLoop
  • Returns or creates the default event loop

EvLoop::defaultLoop

(PECL ev >= 0.2.0)

EvLoop::defaultLoop — Returns or creates the default event loop

Beschreibung

public static EvLoop::defaultLoop ( int $flags = Ev::FLAG_AUTO , mixed $data = NULL , float $io_interval = 0. , float $timeout_interval = 0. ) : EvLoop

If the default event loop is not created, EvLoop::defaultLoop() creates it with the specified parameters. Otherwise, it just returns the object representing previously created instance ignoring all the parameters.

Parameter-Liste

flags

One of the event loop flags

data

Custom data to associate with the loop.

io_collect_interval

See io_interval

timeout_collect_interval

See timeout_interval

Rückgabewerte

Returns EvLoop object on success.

Siehe auch

  • EvLoop::__construct() - Constructs the event loop object


Creates an instance of EvEmbed watcher associated with the current EvLoop object

  • « EvLoop::defaultLoop
  • EvLoop::fork »
  • PHP Manual
  • EvLoop
  • Creates an instance of EvEmbed watcher associated with the current EvLoop object

EvLoop::embed

(PECL ev >= 0.2.0)

EvLoop::embed — Creates an instance of EvEmbed watcher associated with the current EvLoop object

Beschreibung

final public EvLoop::embed ( string $other , string $callback = ? , string $data = ? , string $priority = ? ) : EvEmbed

Creates an instance of EvEmbed watcher associated with the current EvLoop object.

Parameter-Liste

All parameters have the same meaning as for EvEmbed::__construct() .

Rückgabewerte

Returns EvEmbed object on success.

Siehe auch

  • EvEmbed::__construct() - Constructs the EvEmbed object


Creates EvFork watcher object associated with the current event loop instance

  • « EvLoop::embed
  • EvLoop::idle »
  • PHP Manual
  • EvLoop
  • Creates EvFork watcher object associated with the current event loop instance

EvLoop::fork

(PECL ev >= 0.2.0)

EvLoop::fork — Creates EvFork watcher object associated with the current event loop instance

Beschreibung

final public EvLoop::fork ( callable $callback , mixed $data = null , int $priority = 0 ) : EvFork

Creates EvFork watcher object associated with the current event loop instance

Parameter-Liste

All parameters have the same meaning as for EvFork::__construct()

Rückgabewerte

Returns EvFork object on success.

Siehe auch

  • EvFork::__construct() - Constructs the EvFork watcher object


Creates EvIdle watcher object associated with the current event loop instance

  • « EvLoop::fork
  • EvLoop::invokePending »
  • PHP Manual
  • EvLoop
  • Creates EvIdle watcher object associated with the current event loop instance

EvLoop::idle

(PECL ev >= 0.2.0)

EvLoop::idle — Creates EvIdle watcher object associated with the current event loop instance

Beschreibung

final public EvLoop::idle ( callable $callback , mixed $data = null , int $priority = 0 ) : EvIdle

Creates EvIdle watcher object associated with the current event loop instance

Parameter-Liste

All the parameters have the same meaning as for EvIdle::__construct()

Rückgabewerte

Returns EvIdle object on success.

Siehe auch

  • EvIdle::__construct() - Constructs the EvIdle watcher object


Invoke all pending watchers while resetting their pending state

  • « EvLoop::idle
  • EvLoop::io »
  • PHP Manual
  • EvLoop
  • Invoke all pending watchers while resetting their pending state

EvLoop::invokePending

(PECL ev >= 0.2.0)

EvLoop::invokePending — Invoke all pending watchers while resetting their pending state

Beschreibung

public EvLoop::invokePending ( ) : void

Invoke all pending watchers while resetting their pending state.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Create EvIo watcher object associated with the current event loop instance

  • « EvLoop::invokePending
  • EvLoop::loopFork »
  • PHP Manual
  • EvLoop
  • Create EvIo watcher object associated with the current event loop instance

EvLoop::io

(PECL ev >= 0.2.0)

EvLoop::io — Create EvIo watcher object associated with the current event loop instance

Beschreibung

final public EvLoop::io ( mixed $fd , int $events , callable $callback , mixed $data = null , int $priority = 0 ) : EvIo

Create EvIo watcher object associated with the current event loop instance.

Parameter-Liste

All parameters have the same meaning as for EvIo::__construct()

Rückgabewerte

Returns EvIo object on success.

Siehe auch

  • EvIo::__construct() - Constructs EvIo watcher object


Must be called after a fork

  • « EvLoop::io
  • EvLoop::now »
  • PHP Manual
  • EvLoop
  • Must be called after a fork

EvLoop::loopFork

(PECL ev >= 0.2.0)

EvLoop::loopFork — Must be called after a fork

Beschreibung

public EvLoop::loopFork ( ) : void

Must be called after a fork in the child, before entering or continuing the event loop. An alternative is to use Ev::FLAG_FORKCHECK which calls this function automatically, at some performance loss (refer to the » libev documentation ).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Returns the current "event loop time"

  • « EvLoop::loopFork
  • EvLoop::nowUpdate »
  • PHP Manual
  • EvLoop
  • Returns the current "event loop time"

EvLoop::now

(PECL ev >= 0.2.0)

EvLoop::now — Returns the current "event loop time"

Beschreibung

public EvLoop::now ( ) : float

Returns the current "event loop time", which is the time the event loop received events and started processing them. This timestamp does not change as long as callbacks are being processed, and this is also the base time used for relative timers. You can treat it as the timestamp of the event occurring(or more correctly, libev finding out about it).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns time of the event loop in (fractional) seconds.

Siehe auch

  • Ev::now() - Returns the time when the last iteration of the default event loop has started


Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress

  • « EvLoop::now
  • EvLoop::periodic »
  • PHP Manual
  • EvLoop
  • Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress

EvLoop::nowUpdate

(PECL ev >= 0.2.0)

EvLoop::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress

Beschreibung

public EvLoop::nowUpdate ( ) : void

Establishes the current time by querying the kernel, updating the time returned by EvLoop::now() in the progress. This is a costly operation and is usually done automatically within EvLoop::run() .

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EvLoop::now() - Returns the current "event loop time"
  • Ev::nowUpdate() - Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress


Creates EvPeriodic watcher object associated with the current event loop instance

  • « EvLoop::nowUpdate
  • EvLoop::prepare »
  • PHP Manual
  • EvLoop
  • Creates EvPeriodic watcher object associated with the current event loop instance

EvLoop::periodic

(PECL ev >= 0.2.0)

EvLoop::periodic — Creates EvPeriodic watcher object associated with the current event loop instance

Beschreibung

final public EvLoop::periodic ( float $offset , float $interval , callable $callback , mixed $data = null , int $priority = 0 ) : EvPeriodic

Creates EvPeriodic watcher object associated with the current event loop instance

Parameter-Liste

All parameters have the same maening as for EvPeriodic::__construct()

Rückgabewerte

Returns EvPeriodic object on success.

Siehe auch

  • EvPeriodic::__construct() - Constructs EvPeriodic watcher object


Creates EvPrepare watcher object associated with the current event loop instance

  • « EvLoop::periodic
  • EvLoop::resume »
  • PHP Manual
  • EvLoop
  • Creates EvPrepare watcher object associated with the current event loop instance

EvLoop::prepare

(PECL ev >= 0.2.0)

EvLoop::prepare — Creates EvPrepare watcher object associated with the current event loop instance

Beschreibung

final public EvLoop::prepare ( callable $callback , mixed $data = null , int $priority = 0 ) : EvPrepare

Creates EvPrepare watcher object associated with the current event loop instance

Parameter-Liste

All parameters have the same maening as for EvPrepare()

Rückgabewerte

Returns EvPrepare object on success

Siehe auch

  • EvPrepare::__construct() - Constructs EvPrepare watcher object


Resume previously suspended default event loop

  • « EvLoop::prepare
  • EvLoop::run »
  • PHP Manual
  • EvLoop
  • Resume previously suspended default event loop

EvLoop::resume

(PECL ev >= 0.2.0)

EvLoop::resume — Resume previously suspended default event loop

Beschreibung

public EvLoop::resume ( ) : void

EvLoop::suspend() and EvLoop::resume() methods suspend and resume a loop correspondingly.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EvLoop::suspend() - Suspend the loop
  • Ev::resume() - Resume previously suspended default event loop


Begin checking for events and calling callbacks for the loop

  • « EvLoop::resume
  • EvLoop::signal »
  • PHP Manual
  • EvLoop
  • Begin checking for events and calling callbacks for the loop

EvLoop::run

(PECL ev >= 0.2.0)

EvLoop::run — Begin checking for events and calling callbacks for the loop

Beschreibung

public EvLoop::run ( int $flags = 0 ) : void

Begin checking for events and calling callbacks for the current event loop. Returns when a callback calls Ev::stop() method, or the flags are nonzero(in which case the return value is true) or when there are no active watchers which reference the loop( EvWatcher::keepalive() is true), in which case the return value will be false. The return value can generally be interpreted as if true, there is more work left to do .

Parameter-Liste

flags

Optional parameter flags can be one of the following:

List for possible values of flags
flags | Description
0 | The default behavior described above
Ev::RUN_ONCE | Block at most one(wait, but don't loop)
Ev::RUN_NOWAIT | Don't block at all(fetch/handle events, but don't wait)

See the run flag constants .

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EvLoop::stop() - Stops the event loop
  • Ev::run() - Begin checking for events and calling callbacks for the default loop


Creates EvSignal watcher object associated with the current event loop instance

  • « EvLoop::run
  • EvLoop::stat »
  • PHP Manual
  • EvLoop
  • Creates EvSignal watcher object associated with the current event loop instance

EvLoop::signal

(PECL ev >= 0.2.0)

EvLoop::signal — Creates EvSignal watcher object associated with the current event loop instance

Beschreibung

final public EvLoop::signal ( int $signum , callable $callback , mixed $data = null , int $priority = 0 ) : EvSignal

Creates EvSignal watcher object associated with the current event loop instance

Parameter-Liste

All parameters have the same meaning as for EvSignal::__construct()

Rückgabewerte

Returns EvSignal object on success

Siehe auch

  • EvSignal::__construct() - Constructs EvSignal watcher object


Creates EvStat watcher object associated with the current event loop instance

  • « EvLoop::signal
  • EvLoop::stop »
  • PHP Manual
  • EvLoop
  • Creates EvStat watcher object associated with the current event loop instance

EvLoop::stat

(PECL ev >= 0.2.0)

EvLoop::stat — Creates EvStat watcher object associated with the current event loop instance

Beschreibung

final public EvLoop::stat ( string $path , float $interval , callable $callback , mixed $data = null , int $priority = 0 ) : EvStat

Creates EvStat watcher object associated with the current event loop instance

Parameter-Liste

All parameters have the same meaning as for EvSignal::__construct()

Rückgabewerte

Returns EvStat object on success

Siehe auch

  • EvSignal::__construct() - Constructs EvSignal watcher object


Stops the event loop

  • « EvLoop::stat
  • EvLoop::suspend »
  • PHP Manual
  • EvLoop
  • Stops the event loop

EvLoop::stop

(PECL ev >= 0.2.0)

EvLoop::stop — Stops the event loop

Beschreibung

public EvLoop::stop ( int $how = ? ) : void

Stops the event loop

Parameter-Liste

how

One of Ev::BREAK_* constants .

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EvLoop::run() - Begin checking for events and calling callbacks for the loop
  • Ev::stop() - Stops the default event loop


Suspend the loop

  • « EvLoop::stop
  • EvLoop::timer »
  • PHP Manual
  • EvLoop
  • Suspend the loop

EvLoop::suspend

(PECL ev >= 0.2.0)

EvLoop::suspend — Suspend the loop

Beschreibung

public EvLoop::suspend ( ) : void

EvLoop::suspend() and EvLoop::resume() methods suspend and resume a loop correspondingly.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EvLoop::resume() - Resume previously suspended default event loop
  • Ev::suspend() - Suspend the default event loop


Creates EvTimer watcher object associated with the current event loop instance

  • « EvLoop::suspend
  • EvLoop::verify »
  • PHP Manual
  • EvLoop
  • Creates EvTimer watcher object associated with the current event loop instance

EvLoop::timer

(PECL ev >= 0.2.0)

EvLoop::timer — Creates EvTimer watcher object associated with the current event loop instance

Beschreibung

final public EvLoop::timer ( float $after , float $repeat , callable $callback , mixed $data = null , int $priority = 0 ) : EvTimer

Creates EvTimer watcher object associated with the current event loop instance

Parameter-Liste

All parameters have the same meaning as for EvTimer::__construct()

Rückgabewerte

Returns EvTimer object on success

Siehe auch

  • EvTimer::__construct() - Constructs an EvTimer watcher object


Performs internal consistency checks(for debugging)

  • « EvLoop::timer
  • EvPeriodic »
  • PHP Manual
  • EvLoop
  • Performs internal consistency checks(for debugging)

EvLoop::verify

(PECL ev >= 0.2.0)

EvLoop::verify — Performs internal consistency checks(for debugging)

Beschreibung

public EvLoop::verify ( ) : void

Performs internal consistency checks(for debugging libev ) and abort the program if any data structures were found to be corrupted.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Ev::verify() - Performs internal consistency checks(for debugging)


The EvPeriodic class

(PECL ev >= 0.2.0)

Einführung

Periodic watchers are also timers of a kind, but they are very versatile.

Unlike EvTimer , EvPeriodic watchers are not based on real time(or relative time, the physical time that passes) but on wall clock time(absolute time, calendar or clock). The difference is that wall clock time can run faster or slower than real time, and time jumps are not uncommon(e.g. when adjusting it).

EvPeriodic watcher can be configured to trigger after some specific point in time. For example, if an EvPeriodic watcher is configured to trigger "in 10 seconds" (e.g. EvLoop::now() + 10.0 , i.e. an absolute time, not a delay), and the system clock is reset to January of the previous year , then it will take a year or more to trigger the event (unlike an EvTimer , which would still trigger roughly 10 seconds after starting it as it uses a relative timeout).

As with timers, the callback is guaranteed to be invoked only when the point in time where it is supposed to trigger has passed. If multiple timers become ready during the same loop iteration then the ones with earlier time-out values are invoked before ones with later time-out values (but this is no longer true when a callback calls EvLoop::run() recursively).

Klassenbeschreibung

EvPeriodic extends EvWatcher {
/* Eigenschaften */
public $offset ;
public $interval ;
/* Geerbte Eigenschaften */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Methoden */
public again ( ) : void
public at ( ) : float
public __construct ( float $offset , string $interval , callable $reschedule_cb , callable $callback , mixed $data = null , int $priority = 0 )
final public static createStopped ( float $offset , float $interval , callable $reschedule_cb , callable $callback , mixed $data = null , int $priority = 0 ) : EvPeriodic
public set ( float $offset , float $interval ) : void
/* Geerbte Methoden */
public EvWatcher::clear ( ) : int
abstract public EvWatcher::__construct ( )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ( bool $value = ? ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( ) : void
public EvWatcher::stop ( ) : void
}

Eigenschaften

offset

When repeating, this contains the offset value, otherwise this is the absolute point in time(the offset value passed to EvPeriodic::set() , although libev might modify this value for better numerical stability).

interval

The current interval value. Can be modified any time, but changes only take effect when the periodic timer fires or EvPeriodic::again() is being called.

Inhaltsverzeichnis

  • EvPeriodic::again — Simply stops and restarts the periodic watcher again
  • EvPeriodic::at — Returns the absolute time that this watcher is supposed to trigger next
  • EvPeriodic::__construct — Constructs EvPeriodic watcher object
  • EvPeriodic::createStopped — Create a stopped EvPeriodic watcher
  • EvPeriodic::set — Configures the watcher


Simply stops and restarts the periodic watcher again

  • « EvPeriodic
  • EvPeriodic::at »
  • PHP Manual
  • EvPeriodic
  • Simply stops and restarts the periodic watcher again

EvPeriodic::again

(PECL ev >= 0.2.0)

EvPeriodic::again — Simply stops and restarts the periodic watcher again

Beschreibung

public EvPeriodic::again ( ) : void

Simply stops and restarts the periodic watcher again. This is only useful when attributes are changed.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EvTimer::again() - Restarts the timer watcher


Returns the absolute time that this watcher is supposed to trigger next

  • « EvPeriodic::again
  • EvPeriodic::__construct »
  • PHP Manual
  • EvPeriodic
  • Returns the absolute time that this watcher is supposed to trigger next

EvPeriodic::at

(PECL ev >= 0.2.0)

EvPeriodic::at — Returns the absolute time that this watcher is supposed to trigger next

Beschreibung

public EvPeriodic::at ( ) : float

When the watcher is active, returns the absolute time that this watcher is supposed to trigger next. This is not the same as the offset argument to EvPeriodic::set() or EvPeriodic::__construct() , but indeed works even in interval mode.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the absolute time this watcher is supposed to trigger next in seconds.


Constructs EvPeriodic watcher object

  • « EvPeriodic::at
  • EvPeriodic::createStopped »
  • PHP Manual
  • EvPeriodic
  • Constructs EvPeriodic watcher object

EvPeriodic::__construct

(PECL ev >= 0.2.0)

EvPeriodic::__construct — Constructs EvPeriodic watcher object

Beschreibung

public EvPeriodic::__construct ( float $offset , string $interval , callable $reschedule_cb , callable $callback , mixed $data = null , int $priority = 0 )

Constructs EvPeriodic watcher object and starts it automatically. EvPeriodic::createStopped() method creates stopped periodic watcher.

Parameter-Liste

offset

See Periodic watcher operation modes

interval

See Periodic watcher operation modes

reschedule_cb

Reschedule callback. You can pass null. See Periodic watcher operation modes

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvPeriodic object on success.

Beispiele

Beispiel #1 Periodic timer. Use reschedule callback

<?php
// Tick each 10.5 seconds

function reschedule_cb ($watcher, $now) {
 return $now + (10.5. - fmod($now, 10.5));
}

$w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
 echo time(), PHP_EOL;
});
Ev::run();
?>

Beispiel #2 Periodic timer. Tick every 10.5 seconds starting at now

<?php
// Tick every 10.5 seconds starting at now
$w = new EvPeriodic(fmod(Ev::now(), 10.5), 10.5, NULL, function ($w, $revents) {
 echo time(), PHP_EOL;
});
Ev::run();
?>

Beispiel #3 Hourly watcher

<?php
$hourly = EvPeriodic(0, 3600, NULL, function () {
 echo "once per hour\n";
});
?>

Siehe auch

  • Periodic watcher operation modes
  • EvTimer
  • EvPeriodic::createStopped() - Create a stopped EvPeriodic watcher


Create a stopped EvPeriodic watcher

  • « EvPeriodic::__construct
  • EvPeriodic::set »
  • PHP Manual
  • EvPeriodic
  • Create a stopped EvPeriodic watcher

EvPeriodic::createStopped

(PECL ev >= 0.2.0)

EvPeriodic::createStopped — Create a stopped EvPeriodic watcher

Beschreibung

final public static EvPeriodic::createStopped ( float $offset , float $interval , callable $reschedule_cb , callable $callback , mixed $data = null , int $priority = 0 ) : EvPeriodic

Create EvPeriodic object. Unlike EvPeriodic::__construct() this method doesn't start the watcher automatically.

Parameter-Liste

offset

See Periodic watcher operation modes

interval

See Periodic watcher operation modes

reschedule_cb

Reschedule callback. You can pass null. See Periodic watcher operation modes

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvPeriodic watcher object on success.

Siehe auch

  • EvPeriodic::__construct() - Constructs EvPeriodic watcher object
  • EvTimer::createStopped() - Creates EvTimer stopped watcher object


Configures the watcher

  • « EvPeriodic::createStopped
  • EvPrepare »
  • PHP Manual
  • EvPeriodic
  • Configures the watcher

EvPeriodic::set

(PECL ev >= 0.2.0)

EvPeriodic::set — Configures the watcher

Beschreibung

public EvPeriodic::set ( float $offset , float $interval ) : void

(Re-)Configures EvPeriodic watcher

Parameter-Liste

offset

The same meaning as for EvPeriodic::__construct() . See Periodic watcher operation modes

interval

The same meaning as for EvPeriodic::__construct() . See Periodic watcher operation modes

Rückgabewerte

Es wird kein Wert zurückgegeben.


The EvPrepare class

(PECL ev >= 0.2.0)

Einführung

EvPrepare and EvCheck watchers are usually used in pairs. EvPrepare watchers get invoked before the process blocks, EvCheck afterwards.

It is not allowed to call EvLoop::run() or similar methods or functions that enter the current event loop from either EvPrepare or EvCheck watchers. Other loops than the current one are fine, however. The rationale behind this is that one don't need to check for recursion in those watchers, i.e. the sequence will always be: EvPrepare -> blocking -> EvCheck , so having a watcher of each kind they will always be called in pairs bracketing the blocking call.

The main purpose is to integrate other event mechanisms into libev and their use is somewhat advanced. They could be used, for example, to track variable changes, implement custom watchers, integrate net-snmp or a coroutine library and lots more. They are also occasionally useful to cache some data and want to flush it before blocking.

It is recommended to give EvCheck watchers highest( Ev::MAXPRI ) priority, to ensure that they are being run before any other watchers after the poll (this doesn’t matter for EvPrepare watchers).

Also, EvCheck watchers should not activate/feed events. While libev fully supports this, they might get executed before other EvCheck watchers did their job.

Klassenbeschreibung

EvPrepare extends EvWatcher {
/* Geerbte Eigenschaften */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Methoden */
public __construct ( string $callback , string $data = ? , string $priority = ? )
final public static createStopped ( callable $callback , mixed $data = null , int $priority = 0 ) : EvPrepare
/* Geerbte Methoden */
public EvWatcher::clear ( ) : int
abstract public EvWatcher::__construct ( )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ( bool $value = ? ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( ) : void
public EvWatcher::stop ( ) : void
}

Inhaltsverzeichnis

  • EvPrepare::__construct — Constructs EvPrepare watcher object
  • EvPrepare::createStopped — Creates a stopped instance of EvPrepare watcher


Constructs EvPrepare watcher object

  • « EvPrepare
  • EvPrepare::createStopped »
  • PHP Manual
  • EvPrepare
  • Constructs EvPrepare watcher object

EvPrepare::__construct

(PECL ev >= 0.2.0)

EvPrepare::__construct — Constructs EvPrepare watcher object

Beschreibung

public EvPrepare::__construct ( string $callback , string $data = ? , string $priority = ? )

Constructs EvPrepare watcher object. And starts the watcher automatically. If need a stopped watcher consider using EvPrepare::createStopped()

Parameter-Liste

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvPrepare object on success.

Siehe auch

  • EvCheck


Creates a stopped instance of EvPrepare watcher

  • « EvPrepare::__construct
  • EvSignal »
  • PHP Manual
  • EvPrepare
  • Creates a stopped instance of EvPrepare watcher

EvPrepare::createStopped

(PECL ev >= 0.2.0)

EvPrepare::createStopped — Creates a stopped instance of EvPrepare watcher

Beschreibung

final public static EvPrepare::createStopped ( callable $callback , mixed $data = null , int $priority = 0 ) : EvPrepare

Creates a stopped instance of EvPrepare watcher. Unlike EvPrepare::__construct() , this method doesn' start the watcher automatically.

Parameter-Liste

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Return EvPrepare object on success.

Siehe auch

  • EvPrepare::__construct() - Constructs EvPrepare watcher object
  • EvWatcher::start() - Starts the watcher


The EvSignal class

(PECL ev >= 0.2.0)

Einführung

EvSignal watchers will trigger an event when the process receives a specific signal one or more times. Even though signals are very asynchronous, libev will try its best to deliver signals synchronously, i.e. as part of the normal event processing, like any other event.

There is no limit for the number of watchers for the same signal, but only within the same loop, i.e. one can watch for SIGINT in the default loop and for SIGIO in another loop, but it is not allowed to watch for SIGINT in both the default loop and another loop at the same time. At the moment, SIGCHLD is permanently tied to the default loop.

If possible and supported, libev will install its handlers with SA_RESTART (or equivalent) behaviour enabled, so system calls should not be unduly interrupted. In case of a problem with system calls getting interrupted by signals, all the signals can be blocked in an EvCheck watcher and unblocked in a EvPrepare watcher.

Klassenbeschreibung

EvSignal extends EvWatcher {
/* Eigenschaften */
public $signum ;
/* Geerbte Eigenschaften */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Methoden */
public __construct ( int $signum , callable $callback , mixed $data = null , int $priority = 0 )
final public static createStopped ( int $signum , callable $callback , mixed $data = null , int $priority = 0 ) : EvSignal
public set ( int $signum ) : void
/* Geerbte Methoden */
public EvWatcher::clear ( ) : int
abstract public EvWatcher::__construct ( )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ( bool $value = ? ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( ) : void
public EvWatcher::stop ( ) : void
}

Eigenschaften

signum

Signal number. See the constants exported by pcntl extension. See also signal(7) man page.

Inhaltsverzeichnis

  • EvSignal::__construct — Constructs EvSignal watcher object
  • EvSignal::createStopped — Create stopped EvSignal watcher object
  • EvSignal::set — Configures the watcher


Constructs EvSignal watcher object

  • « EvSignal
  • EvSignal::createStopped »
  • PHP Manual
  • EvSignal
  • Constructs EvSignal watcher object

EvSignal::__construct

(PECL ev >= 0.2.0)

EvSignal::__construct — Constructs EvSignal watcher object

Beschreibung

public EvSignal::__construct ( int $signum , callable $callback , mixed $data = null , int $priority = 0 )

Constructs EvSignal watcher object and starts it automatically. For a stopped periodic watcher consider using EvSignal::createStopped() method.

Parameter-Liste

signum

Signal number. See constants exported by pcntl extension. See also signal(7) man page.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvSignal object on success.

Beispiele

Beispiel #1 Handle SIGTERM signal

<?php
$w = new EvSignal(SIGTERM, function ($watcher) {
    echo "SIGTERM received\n";
    $watcher->stop();
});

Ev::run();
?>

Siehe auch

  • EvSignal::createStopped() - Create stopped EvSignal watcher object


Create stopped EvSignal watcher object

  • « EvSignal::__construct
  • EvSignal::set »
  • PHP Manual
  • EvSignal
  • Create stopped EvSignal watcher object

EvSignal::createStopped

(PECL ev >= 0.2.0)

EvSignal::createStopped — Create stopped EvSignal watcher object

Beschreibung

final public static EvSignal::createStopped ( int $signum , callable $callback , mixed $data = null , int $priority = 0 ) : EvSignal

Create stopped EvSignal watcher object. Unlike EvSignal::__construct() , this method does't start the watcher automatically.

Parameter-Liste

signum

Signal number. See constants exported by pcntl extension. See also signal(7) man page.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvSignal object on success.

Siehe auch

  • EvWatcher::start() - Starts the watcher
  • EvSignal::__construct() - Constructs EvSignal watcher object


Configures the watcher

  • « EvSignal::createStopped
  • EvStat »
  • PHP Manual
  • EvSignal
  • Configures the watcher

EvSignal::set

(PECL ev >= 0.2.0)

EvSignal::set — Configures the watcher

Beschreibung

public EvSignal::set ( int $signum ) : void

Configures the watcher.

Parameter-Liste

signum

Signal number. The same as for EvSignal::__construct()

Rückgabewerte

Es wird kein Wert zurückgegeben.


The EvStat class

(PECL ev >= 0.2.0)

Einführung

EvStat monitors a file system path for attribute changes. It calls stat() on that path in regular intervals(or when the OS signals it changed) and sees if it changed compared to the last time, invoking the callback if it did.

The path does not need to exist: changing from "path exists" to "path does not exist" is a status change like any other. The condition "path does not exist" is signified by the 'nlink' item being 0(returned by EvStat::attr() method).

The path must not end in a slash or contain special components such as '.' or .. . The path should be absolute: if it is relative and the working directory changes, then the behaviour is undefined.

Since there is no portable change notification interface available, the portable implementation simply calls stat() regularly on the path to see if it changed somehow. For this case a recommended polling interval can be specified. If one specifies a polling interval of 0.0 (highly recommended) then a suitable, unspecified default value will be used(which could be expected to be around 5 seconds, although this might change dynamically). libev will also impose a minimum interval which is currently around 0.1 , but that’s usually overkill.

This watcher type is not meant for massive numbers of EvStat watchers, as even with OS-supported change notifications, this can be resource-intensive.

Klassenbeschreibung

EvStat extends EvWatcher {
/* Eigenschaften */
public $path ;
public $interval ;
/* Geerbte Eigenschaften */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Methoden */
public attr ( ) : array
public __construct ( string $path , float $interval , callable $callback , mixed $data = null , int $priority = 0 )
final public static createStopped ( string $path , float $interval , callable $callback , mixed $data = null , int $priority = 0 ) : void
public prev ( ) : void
public set ( string $path , float $interval ) : void
public stat ( ) : bool
/* Geerbte Methoden */
public EvWatcher::clear ( ) : int
abstract public EvWatcher::__construct ( )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ( bool $value = ? ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( ) : void
public EvWatcher::stop ( ) : void
}

Eigenschaften

interval

Readonly . Hint on how quickly a change is expected to be detected and should normally be specified as 0.0 to let libev choose a suitable value.

path

Readonly . The path to wait for status changes on.

Inhaltsverzeichnis

  • EvStat::attr — Returns the values most recently detected by Ev
  • EvStat::__construct — Constructs EvStat watcher object
  • EvStat::createStopped — Create a stopped EvStat watcher object
  • EvStat::prev — Returns the previous set of values returned by EvStat::attr
  • EvStat::set — Configures the watcher
  • EvStat::stat — Initiates the stat call


Returns the values most recently detected by Ev

  • « EvStat
  • EvStat::__construct »
  • PHP Manual
  • EvStat
  • Returns the values most recently detected by Ev

EvStat::attr

(PECL ev >= 0.2.0)

EvStat::attr — Returns the values most recently detected by Ev

Beschreibung

public EvStat::attr ( ) : array

Returns array of the values most recently detected by Ev

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns array with the values most recently detect by Ev(without actual stat 'ing):

List for item keys of the array returned by EvStat::attr()
Key | Description
'dev' | ID of device containing file
'ino' | inode number
'mode' | protection
'nlink' | number of hard links
'uid' | user ID of owner
'size' | total size, in bytes
'gid' | group ID of owner
'rdev' | device ID (if special file)
'blksize' | blocksize for file system I/O
'blocks' | number of 512B blocks allocated
'atime' | time of last access
'ctime' | time of last status change
'mtime' | time of last modification

See stat(2) man page for details.

Beispiele

Beispiel #1 Monitor changes of /var/log/messages

<?php
// Use 10 second update interval.
$w = new EvStat("/var/log/messages", 8, function ($w) {
    echo "/var/log/messages changed\n";

    $attr = $w->attr();

    if ($attr['nlink']) {
        printf("Current size: %ld\n", $attr['size']);
        printf("Current atime: %ld\n", $attr['atime']);
        printf("Current mtime: %ld\n", $attr['mtime']);
    } else {
        fprintf(STDERR, "`messages` file is not there!");
        $w->stop();
    }
});

Ev::run();
?>

Siehe auch

  • EvStat::prev() - Returns the previous set of values returned by EvStat::attr
  • EvStat::stat() - Initiates the stat call


Constructs EvStat watcher object

  • « EvStat::attr
  • EvStat::createStopped »
  • PHP Manual
  • EvStat
  • Constructs EvStat watcher object

EvStat::__construct

(PECL ev >= 0.2.0)

EvStat::__construct — Constructs EvStat watcher object

Beschreibung

public EvStat::__construct ( string $path , float $interval , callable $callback , mixed $data = null , int $priority = 0 )

Constructs EvStat watcher object and starts the watcher automatically.

Parameter-Liste

path

The path to wait for status changes on.

interval

Hint on how quickly a change is expected to be detected and should normally be specified as 0.0 to let libev choose a suitable value.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvStat watcher object on succes.

Beispiele

Beispiel #1 Monitor changes of /var/log/messages

<?php
// Use 10 second update interval.
$w = new EvStat("/var/log/messages", 8, function ($w) {
 echo "/var/log/messages changed\n";

 $attr = $w->attr();

 if ($attr['nlink']) {
  printf("Current size: %ld\n", $attr['size']);
  printf("Current atime: %ld\n", $attr['atime']);
  printf("Current mtime: %ld\n", $attr['mtime']);
 } else {
  fprintf(STDERR, "`messages` file is not there!");
  $w->stop();
 }
});

Ev::run();
?>


Create a stopped EvStat watcher object

  • « EvStat::__construct
  • EvStat::prev »
  • PHP Manual
  • EvStat
  • Create a stopped EvStat watcher object

EvStat::createStopped

(PECL ev >= 0.2.0)

EvStat::createStopped — Create a stopped EvStat watcher object

Beschreibung

final public static EvStat::createStopped ( string $path , float $interval , callable $callback , mixed $data = null , int $priority = 0 ) : void

Creates EvStat watcher object, but doesn't start it automatically(unlike EvStat::__construct() ).

Parameter-Liste

path

The path to wait for status changes on.

interval

Hint on how quickly a change is expected to be detected and should normally be specified as 0.0 to let libev choose a suitable value.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns a stopped EvStat watcher object on success.

Siehe auch

  • EvStat::__construct() - Constructs EvStat watcher object
  • EvWatcher::start() - Starts the watcher


Returns the previous set of values returned by EvStat::attr

  • « EvStat::createStopped
  • EvStat::set »
  • PHP Manual
  • EvStat
  • Returns the previous set of values returned by EvStat::attr

EvStat::prev

(PECL ev >= 0.2.0)

EvStat::prev — Returns the previous set of values returned by EvStat::attr

Beschreibung

public EvStat::prev ( ) : void

Just like EvStat::attr() , but returns the previous set of values.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array with the same structure as the array returned by EvStat::attr() . The array contains previously detected values.

Siehe auch

  • EvStat::attr() - Returns the values most recently detected by Ev
  • EvStat::stat() - Initiates the stat call


Configures the watcher

  • « EvStat::prev
  • EvStat::stat »
  • PHP Manual
  • EvStat
  • Configures the watcher

EvStat::set

(PECL ev >= 0.2.0)

EvStat::set — Configures the watcher

Beschreibung

public EvStat::set ( string $path , float $interval ) : void

Configures the watcher.

Parameter-Liste

path

The path to wait for status changes on.

interval

Hint on how quickly a change is expected to be detected and should normally be specified as 0.0 to let libev choose a suitable value.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Initiates the stat call

  • « EvStat::set
  • EvTimer »
  • PHP Manual
  • EvStat
  • Initiates the stat call

EvStat::stat

(PECL ev >= 0.2.0)

EvStat::stat — Initiates the stat call

Beschreibung

public EvStat::stat ( ) : bool

Initiates the stat call(updates internal cache). It stats(using lstat ) the path specified in the watcher and sets to the values found.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if path exists. Otherwise false.

Siehe auch

  • EvStat::attr() - Returns the values most recently detected by Ev
  • EvStat::prev() - Returns the previous set of values returned by EvStat::attr


The EvTimer class

(PECL ev >= 0.2.0)

Einführung

EvTimer watchers are simple relative timers that generate an event after a given time, and optionally repeating in regular intervals after that.

The timers are based on real time, that is, if one registers an event that times out after an hour and resets the system clock to January last year , it will still time out after(roughly) one hour. "Roughly" because detecting time jumps is hard, and some inaccuracies are unavoidable.

The callback is guaranteed to be invoked only after its timeout has passed (not at, so on systems with very low-resolution clocks this might introduce a small delay). If multiple timers become ready during the same loop iteration then the ones with earlier time-out values are invoked before ones of the same priority with later time-out values (but this is no longer true when a callback calls EvLoop::run() recursively).

The timer itself will do a best-effort at avoiding drift, that is, if a timer is configured to trigger every 10 seconds, then it will normally trigger at exactly 10 second intervals. If, however, the script cannot keep up with the timer because it takes longer than those 10 seconds to do) the timer will not fire more than once per event loop iteration.

Klassenbeschreibung

EvTimer extends EvWatcher {
/* Eigenschaften */
public $repeat ;
public $remaining ;
/* Geerbte Eigenschaften */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Methoden */
public again ( ) : void
public __construct ( float $after , float $repeat , callable $callback , mixed $data = null , int $priority = 0 )
final public static createStopped ( float $after , float $repeat , callable $callback , mixed $data = null , int $priority = 0 ) : EvTimer
public set ( float $after , float $repeat ) : void
/* Geerbte Methoden */
public EvWatcher::clear ( ) : int
abstract public EvWatcher::__construct ( )
public EvWatcher::feed ( int $revents ) : void
public EvWatcher::getLoop ( ) : EvLoop
public EvWatcher::invoke ( int $revents ) : void
public EvWatcher::keepalive ( bool $value = ? ) : bool
public EvWatcher::setCallback ( callable $callback ) : void
public EvWatcher::start ( ) : void
public EvWatcher::stop ( ) : void
}

Eigenschaften

repeat

If repeat is 0.0 , then it will automatically be stopped once the timeout is reached. If it is positive, then the timer will automatically be configured to trigger again every repeat seconds later, until stopped manually.

remaining

Returns the remaining time until a timer fires. If the timer is active, then this time is relative to the current event loop time, otherwise it's the timeout value currently configured.

That is, after instanciating an EvTimer with an after value of 5.0 and repeat value of 7.0 , remaining returns 5.0 . When the timer is started and one second passes, remaining will return 4.0 . When the timer expires and is restarted, it will return roughly 7.0 (likely slightly less as callback invocation takes some time too), and so on.

Inhaltsverzeichnis

  • EvTimer::again — Restarts the timer watcher
  • EvTimer::__construct — Constructs an EvTimer watcher object
  • EvTimer::createStopped — Creates EvTimer stopped watcher object
  • EvTimer::set — Configures the watcher


Restarts the timer watcher

  • « EvTimer
  • EvTimer::__construct »
  • PHP Manual
  • EvTimer
  • Restarts the timer watcher

EvTimer::again

(PECL ev >= 0.2.0)

EvTimer::again — Restarts the timer watcher

Beschreibung

public EvTimer::again ( ) : void

This will act as if the timer timed out and restart it again if it is repeating. The exact semantics are:

  1. if the timer is pending, its pending status is cleared.

  2. if the timer is started but non-repeating, stop it (as if it timed out).

  3. if the timer is repeating, either start it if necessary (with the repeat value), or reset the running timer to the repeat value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EvWatcher::stop() - Stops the watcher


Constructs an EvTimer watcher object

  • « EvTimer::again
  • EvTimer::createStopped »
  • PHP Manual
  • EvTimer
  • Constructs an EvTimer watcher object

EvTimer::__construct

(PECL ev >= 0.2.0)

EvTimer::__construct — Constructs an EvTimer watcher object

Beschreibung

public EvTimer::__construct ( float $after , float $repeat , callable $callback , mixed $data = null , int $priority = 0 )

Constructs an EvTimer watcher object.

Parameter-Liste

after

Configures the timer to trigger after after seconds.

repeat

If repeat is 0.0 , then it will automatically be stopped once the timeout is reached. If it is positive, then the timer will automatically be configured to trigger again every repeat seconds later, until stopped manually.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvTimer object on success.

Beispiele

Beispiel #1 Simple timers

<?php
// Create and start timer firing after 2 seconds
$w1 = new EvTimer(2, 0, function () {
    echo "2 seconds elapsed\n";
});

// Create and launch timer firing after 2 seconds repeating each second
// until we manually stop it
$w2 = new EvTimer(2, 1, function ($w) {
    echo "is called every second, is launched after 2 seconds\n";
    echo "iteration = ", Ev::iteration(), PHP_EOL;

    // Stop the watcher after 5 iterations
    Ev::iteration() == 5 and $w->stop();
    // Stop the watcher if further calls cause more than 10 iterations
    Ev::iteration() >= 10 and $w->stop();
});

// Create stopped timer. It will be inactive until we start it ourselves
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
    echo "Callback of a timer created as stopped\n";

    // Stop the watcher after 2 iterations
    Ev::iteration() >= 2 and $w->stop();
});

// Loop until Ev::stop() is called or all of watchers stop
Ev::run();

// Start and look if it works
$w_stopped->start();
echo "Run single iteration\n";
Ev::run(Ev::RUN_ONCE);

echo "Restart the second watcher and try to handle the same events, but don't block\n";
$w2->again();
Ev::run(Ev::RUN_NOWAIT);

$w = new EvTimer(10, 0, function() {});
echo "Running a blocking loop\n";
Ev::run();
echo "END\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2 seconds elapsed
is called every second, is launched after 2 seconds
iteration = 1
is called every second, is launched after 2 seconds
iteration = 2
is called every second, is launched after 2 seconds
iteration = 3
is called every second, is launched after 2 seconds
iteration = 4
is called every second, is launched after 2 seconds
iteration = 5
Run single iteration
Callback of a timer created as stopped
Restart the second watcher and try to handle the same events, but don't block
Running a blocking loop
is called every second, is launched after 2 seconds
iteration = 8
is called every second, is launched after 2 seconds
iteration = 9
is called every second, is launched after 2 seconds
iteration = 10
END

Siehe auch

  • EvTimer::createStopped() - Creates EvTimer stopped watcher object
  • EvPeriodic
  • » ev_timer - relative and optionally repeating timeouts
  • » Be smart about timeouts


Creates EvTimer stopped watcher object

  • « EvTimer::__construct
  • EvTimer::set »
  • PHP Manual
  • EvTimer
  • Creates EvTimer stopped watcher object

EvTimer::createStopped

(PECL ev >= 0.2.0)

EvTimer::createStopped — Creates EvTimer stopped watcher object

Beschreibung

final public static EvTimer::createStopped ( float $after , float $repeat , callable $callback , mixed $data = null , int $priority = 0 ) : EvTimer

Creates EvTimer stopped watcher object. Unlike EvTimer::__construct() , this method doesn't start the watcher automatically.

Parameter-Liste

after

Configures the timer to trigger after after seconds.

repeat

If repeat is 0.0 , then it will automatically be stopped once the timeout is reached. If it is positive, then the timer will automatically be configured to trigger again every repeat seconds later, until stopped manually.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Rückgabewerte

Returns EvTimer watcher object on success.

Beispiele

Beispiel #1 Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay

<?php
$timer = EvTimer::createStopped(0., 1.02, function ($w) {
    $w->stop();

    $stat = $w->data;

    // 1 second after the most recent change of the file
    printf("Current size: %ld\n", $stat->attr()['size']);
});

$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
    // Reset timer watcher
    $timer->again();
});

$timer->data = $stat;

Ev::run();
?>

Siehe auch

  • EvTimer::__construct() - Constructs an EvTimer watcher object
  • EvPeriodic


Configures the watcher

  • « EvTimer::createStopped
  • EvWatcher »
  • PHP Manual
  • EvTimer
  • Configures the watcher

EvTimer::set

(PECL ev >= 0.2.0)

EvTimer::set — Configures the watcher

Beschreibung

public EvTimer::set ( float $after , float $repeat ) : void

Configures the watcher

Parameter-Liste

after

Configures the timer to trigger after after seconds.

repeat

If repeat is 0.0 , then it will automatically be stopped once the timeout is reached. If it is positive, then the timer will automatically be configured to trigger again every repeat seconds later, until stopped manually.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The EvWatcher class

(PECL ev >= 0.2.0)

Einführung

EvWatcher is a base class for all watchers( EvCheck , EvChild etc.). Since EvWatcher 's constructor is abstract , one can't(and don't need to) create EvWatcher objects directly.

Klassenbeschreibung

abstract EvWatcher {
/* Eigenschaften */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Methoden */
public clear ( ) : int
abstract public __construct ( )
public feed ( int $revents ) : void
public getLoop ( ) : EvLoop
public invoke ( int $revents ) : void
public keepalive ( bool $value = ? ) : bool
public setCallback ( callable $callback ) : void
public start ( ) : void
public stop ( ) : void
}

Eigenschaften

is_active

Readonly . true if the watcher is active. false otherwise.

data

User custom data associated with the watcher

is_pending

Readonly .true if the watcher is pending, i.e. it has outstanding events, but its callback has not yet been invoked. false otherwise. As long, as a watcher is pending(but not active), one must not change its priority.

priority

int between Ev::MINPRI and Ev::MAXPRI . Pending watchers with higher priority will be invoked before watchers with lower priority, but priority will not keep watchers from being executed(except for EvIdle watchers). EvIdle watchers provide functionality to suppress invocation when higher priority events are pending.

Inhaltsverzeichnis

  • EvWatcher::clear — Clear watcher pending status
  • EvWatcher::__construct — Abstract constructor of a watcher object
  • EvWatcher::feed — Feeds the given revents set into the event loop
  • EvWatcher::getLoop — Returns the loop responsible for the watcher
  • EvWatcher::invoke — Invokes the watcher callback with the given received events bit mask
  • EvWatcher::keepalive — Configures whether to keep the loop from returning
  • EvWatcher::setCallback — Sets new callback for the watcher
  • EvWatcher::start — Starts the watcher
  • EvWatcher::stop — Stops the watcher


Clear watcher pending status

  • « EvWatcher
  • EvWatcher::__construct »
  • PHP Manual
  • EvWatcher
  • Clear watcher pending status

EvWatcher::clear

(PECL ev >= 0.2.0)

EvWatcher::clear — Clear watcher pending status

Beschreibung

public EvWatcher::clear ( ) : int

If the watcher is pending, this method clears its pending status and returns its revents bitset(as if its callback was invoked). If the watcher isn't pending it does nothing and returns 0 .

Sometimes it can be useful to "poll" a watcher instead of waiting for its callback to be invoked, which can be accomplished with this function.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

In case if the watcher is pending, returns revents bitset as if the watcher callback had been invoked. Otherwise returns 0 .


Abstract constructor of a watcher object

  • « EvWatcher::clear
  • EvWatcher::feed »
  • PHP Manual
  • EvWatcher
  • Abstract constructor of a watcher object

EvWatcher::__construct

(PECL ev >= 0.2.0)

EvWatcher::__construct — Abstract constructor of a watcher object

Beschreibung

abstract public EvWatcher::__construct ( )

EvWatcher::__construct() is an abstract constructor of a watcher object implemented in the derived classes.


Feeds the given revents set into the event loop

  • « EvWatcher::__construct
  • EvWatcher::getLoop »
  • PHP Manual
  • EvWatcher
  • Feeds the given revents set into the event loop

EvWatcher::feed

(PECL ev >= 0.2.0)

EvWatcher::feed — Feeds the given revents set into the event loop

Beschreibung

public EvWatcher::feed ( int $revents ) : void

Feeds the given revents set into the event loop, as if the specified event had happened for the watcher.

Parameter-Liste

revents

Bit mask of watcher received events .

Rückgabewerte

Es wird kein Wert zurückgegeben.


Returns the loop responsible for the watcher

  • « EvWatcher::feed
  • EvWatcher::invoke »
  • PHP Manual
  • EvWatcher
  • Returns the loop responsible for the watcher

EvWatcher::getLoop

(PECL ev >= 0.2.0)

EvWatcher::getLoop — Returns the loop responsible for the watcher

Beschreibung

public EvWatcher::getLoop ( ) : EvLoop

Returns the loop responsible for the watcher

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns EvLoop event loop object responsible for the watcher.


Invokes the watcher callback with the given received events bit mask

  • « EvWatcher::getLoop
  • EvWatcher::keepalive »
  • PHP Manual
  • EvWatcher
  • Invokes the watcher callback with the given received events bit mask

EvWatcher::invoke

(PECL ev >= 0.2.0)

EvWatcher::invoke — Invokes the watcher callback with the given received events bit mask

Beschreibung

public EvWatcher::invoke ( int $revents ) : void

Invokes the watcher callback with the given received events bit mask.

Parameter-Liste

revents

Bit mask of watcher received events .

Rückgabewerte

Es wird kein Wert zurückgegeben.


Configures whether to keep the loop from returning

  • « EvWatcher::invoke
  • EvWatcher::setCallback »
  • PHP Manual
  • EvWatcher
  • Configures whether to keep the loop from returning

EvWatcher::keepalive

(PECL ev >= 0.2.0)

EvWatcher::keepalive — Configures whether to keep the loop from returning

Beschreibung

public EvWatcher::keepalive ( bool $value = ? ) : bool

Configures whether to keep the loop from returning. With keepalive value set to false the watcher won't keep Ev::run() / EvLoop::run() from returning even though the watcher is active.

Watchers have keepalive value true by default.

Clearing keepalive status is useful when returning from Ev::run() / EvLoop::run() just because of the watcher is undesirable. It could be a long running UDP socket watcher or so.

Parameter-Liste

value

With keepalive value set to false the watcher won't keep Ev::run() / EvLoop::run() from returning even though the watcher is active.

Rückgabewerte

Returns the previous state.

Beispiele

Beispiel #1 Register an I/O watcher for some UDP socket but do not keep the event loop from running just because of that watcher.

<?php
$udp_socket = ...
$udp_watcher = new EvIo($udp_socket, Ev::READ, function () { /* ... */ });
$udp_watcher->keepalive(FALSE);
?>


Sets new callback for the watcher

  • « EvWatcher::keepalive
  • EvWatcher::start »
  • PHP Manual
  • EvWatcher
  • Sets new callback for the watcher

EvWatcher::setCallback

(PECL ev >= 0.2.0)

EvWatcher::setCallback — Sets new callback for the watcher

Beschreibung

public EvWatcher::setCallback ( callable $callback ) : void

Sets new callback for the watcher

Parameter-Liste

callback

See Watcher callbacks .

Rückgabewerte

Es wird kein Wert zurückgegeben.


Starts the watcher

  • « EvWatcher::setCallback
  • EvWatcher::stop »
  • PHP Manual
  • EvWatcher
  • Starts the watcher

EvWatcher::start

(PECL ev >= 0.2.0)

EvWatcher::start — Starts the watcher

Beschreibung

public EvWatcher::start ( ) : void

Marks the watcher as active. Note that only active watchers will receive events.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EvWatcher::stop() - Stops the watcher


Stops the watcher

  • « EvWatcher::start
  • Expect »
  • PHP Manual
  • EvWatcher
  • Stops the watcher

EvWatcher::stop

(PECL ev >= 0.2.0)

EvWatcher::stop — Stops the watcher

Beschreibung

public EvWatcher::stop ( ) : void

Marks the watcher as inactive. Note that only active watchers will receive events.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EvWatcher::start() - Starts the watcher


Expect

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Expect Usage Examples
  • Expect Funktionen
    • expect_expectl — Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen
    • expect_popen — Execute command via Bourne shell, and open the PTY stream to the process


Einführung

This extension allows to interact with processes through PTY. You may consider using the expect:// wrapper with the filesystem functions which provide a simpler and more intuitive interface.


Anforderungen

Dieses Modul verwendet die Funktionen der » expect Bibliothek. Sie brauchen libexpect Version >= 5.43.0.


Installation

Diese » PECL-Extension ist nicht Teil von PHP. Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/expect.

In order to use these functions you must compile PHP with expect support by using the --with-expect[=DIR] configure option.

Windows users will enable php_expect.dll inside of php.ini in order to use these functions. Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

In order to configure expect extension, there are configuration options in the configuration file php.ini.

Expect Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
expect.timeout | "10" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.logfile | "" | PHP_INI_ALL |
expect.match_max | "" | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

expect.timeout int

The timeout period for waiting for the data, when using the expect_expectl() function.

A value of "-1" disables a timeout from occurring.

Hinweis:

A value of "0" causes the expect_expectl() function to return immediately.

expect.loguser bool

Whether expect should send any output from the spawned process to stdout. Since interactive programs typically echo their input, this usually suffices to show both sides of the conversation.

expect.logfile string

Name of the file, where the output from the spawned process will be written. If this file doesn't exist, it will be created.

Hinweis:

If this configuration is not empty, the output is written regardless of the value of expect.loguser.

expect.match_max int

Changes default size (2000 bytes) of the buffer used to match asterisks in patterns.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

expect_popen() gibt einen offenen PTY Stream zurück, der von expect_expectl() verwendet wird.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

EXP_GLOB (int)
Indicates that the pattern is a glob-style string pattern.
EXP_EXACT (int)
Indicates that the pattern is an exact string.
EXP_REGEXP (int)
Indicates that the pattern is a regexp-style string pattern.
EXP_EOF (int)
Value, returned by expect_expectl(), when EOF is reached.
EXP_TIMEOUT (int)
Value, returned by expect_expectl() upon timeout of seconds, specified in value of expect.timeout
EXP_FULLBUFFER (int)
Value, returned by expect_expectl() if no pattern have been matched.


  • « Vordefinierte Konstanten
  • Expect Usage Examples »
  • PHP Manual
  • Expect
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Expect Usage Examples


Expect Usage Examples

Beispiel #1 Expect Usage Example

This example connects to the remote host via SSH, and prints the remote uptime.

<?php
ini_set("expect.loguser", "Off");

$stream = fopen("expect://ssh root@remotehost uptime", "r");

$cases = array (
    array (0 => "password:", 1 => PASSWORD)
);

switch (expect_expectl ($stream, $cases)) {
    case PASSWORD:
        fwrite ($stream, "password\n");
        break;

    default:
        die ("Error was occurred while connecting to the remote host!\n");
}

while ($line = fgets($stream)) {
      print $line;
}
fclose ($stream);
?>

The following example connects to the remote host, determines whether installed OS is for 32 or 64 bit, then runs update for specific package.

Beispiel #2 Another Expect Usage Example

<?php
ini_set("expect.timeout", -1);
ini_set("expect.loguser", "Off");

$stream = expect_popen("ssh root@remotehost");

while (true) {
    switch (expect_expectl ($stream, array (
            array ("password:", PASSWORD), // SSH is asking for password
            array ("yes/no)?", YESNO), // SSH is asking whether to store the host entry
            array ("~$ ", SHELL, EXP_EXACT), // We've got the shell!
    ))) {
        case PASSWORD:
            fwrite ($stream, "secret\n");
            break;

        case YESNO:
            fwrite ($stream, "yes\n");
            break;

        case SHELL:
            fwrite ($stream, "uname -a\n");
            while (true) {
                    switch (expect_expectl ($stream, array (
                            array ("~$ ", SHELL, EXP_EXACT), // We've got the shell!
                            array ("^Linux.*$", UNAME, EXP_REGEXP), // uname -a output
                    ), $match)) {
                        case UNAME:
                            $uname .= $match[0];
                            break;

                        case SHELL:
                            // Run update:
                            if (strstr ($uname, "x86_64")) {
                                    fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_64bit.rpm\n");
                            } else {
                                    fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_32bit.rpm\n");
                            }
                            fwrite ($stream, "exit\n");
                            break 2;

                        case EXP_TIMEOUT:
                        case EXP_EOF:
                            break 2;

                        default:
                            die ("Error has occurred!\n");
                    }
            }
            break 2;

        case EXP_TIMEOUT:
        case EXP_EOF:
            break 2;

        default:
            die ("Error has occurred!\n");
    }
}

fclose ($stream);
?>


Expect Funktionen

Inhaltsverzeichnis

  • expect_expectl — Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen
  • expect_popen — Execute command via Bourne shell, and open the PTY stream to the process


Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen

  • « Expect Funktionen
  • expect_popen »
  • PHP Manual
  • Expect Funktionen
  • Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen

expect_expectl

(PECL expect >= 0.1.0)

expect_expectl — Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen

Beschreibung

expect_expectl ( resource $expect , array $cases , array &$match = ? ) : int

Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen.

If match is provided, then it is filled with the result of search. The matched string can be found in match[0]. The match substrings (according to the parentheses) in the original pattern can be found in match[1], match[2], and so on, up to match[9] (the limitation of libexpect).

Parameter-Liste

expect

An Expect stream, previously opened with expect_popen().

cases

An array of expect cases. Each expect case is an indexed array, as described in the following table:

Expect Case Array
Index Key | Value Type | Description | Is Mandatory | Default Value
0 | string | pattern, that will be matched against the output from the stream | yes
1 | mixed | value, that will be returned by this function, if the pattern matches | yes
2 | integer | pattern type, one of: EXP_GLOB, EXP_EXACT or EXP_REGEXP | no | EXP_GLOB

Rückgabewerte

Returns value associated with the pattern that was matched.

On failure this function returns: EXP_EOF, EXP_TIMEOUT or EXP_FULLBUFFER

Changelog

Version | Beschreibung
PECL expect 0.2.1 | Prior to version 0.2.1, in match parameter a match string was returned, not an array of match substrings.

Beispiele

Beispiel #1 expect_expectl() example

<?php
// Copies file from remote host:
ini_set("expect.timeout", 30);

$stream = fopen("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt", "r");

$cases = array(
    // array(pattern, value to return if pattern matched)
    array("password:", "asked for password"),
    array("yes/no)?",  "asked for yes/no")
);

while (true) {
    switch (expect_expectl($stream, $cases)) {
        case "asked for password":
            fwrite($stream, "my password\n");
            break;
        case "asked for yes/no":
            fwrite($stream, "yes\n");
            break;
        case EXP_TIMEOUT:
        case EXP_EOF:
            break 2; // break both the switch statement and the while loop
        default:
            die "Error has occurred!";
    }
}

fclose($stream);
?>

Siehe auch

  • expect_popen() - Execute command via Bourne shell, and open the PTY stream to the process


Execute command via Bourne shell, and open the PTY stream to the process

  • « expect_expectl
  • PCNTL »
  • PHP Manual
  • Expect Funktionen
  • Execute command via Bourne shell, and open the PTY stream to the process

expect_popen

(PECL expect >= 0.1.0)

expect_popen — Execute command via Bourne shell, and open the PTY stream to the process

Beschreibung

expect_popen ( string $command ) : resource

Execute command via Bourne shell, and open the PTY stream to the process.

Parameter-Liste

command

Command to execute.

Rückgabewerte

Returns an open PTY stream to the processes stdio, stdout, and stderr.

On failure this function returns false.

Beispiele

Beispiel #1 expect_popen() example

<?php
// Login to the PHP.net CVS repository:
$stream = expect_popen ("cvs -d :pserver:anonymous@cvs.php.net:/repository login");
sleep (3);
fwrite ($stream, "phpfi\n");
fclose ($stream);
?>

Siehe auch

  • popen() - Öffnet einen Prozesszeiger


Prozesskontrolle

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Grundlegende Verwendung
  • PCNTL Funktionen
    • pcntl_alarm — Setzt einen Zeitschalter für die Auslieferung eines Signals
    • pcntl_async_signals — Enable/disable asynchronous signal handling or return the old setting
    • pcntl_errno — Alias von pcntl_get_last_error
    • pcntl_exec — Führt ein angegebenes Programm im aktuellen Prozessraum aus
    • pcntl_fork — Verzweigt den laufenden Prozess
    • pcntl_get_last_error — Retrieve the error number set by the last pcntl function which failed
    • pcntl_getpriority — Liest die Priorität eines beliebigen Prozesses
    • pcntl_setpriority — Ändert die Priorität irgendeines Prozesses
    • pcntl_signal_dispatch — Calls signal handlers for pending signals
    • pcntl_signal_get_handler — Get the current handler for specified signal
    • pcntl_signal — Richtet eine Signalverarbeitung ein
    • pcntl_sigprocmask — Sets and retrieves blocked signals
    • pcntl_sigtimedwait — Waits for signals, with a timeout
    • pcntl_sigwaitinfo — Waits for signals
    • pcntl_strerror — Retrieve the system error message associated with the given errno
    • pcntl_wait — Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
    • pcntl_waitpid — Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
    • pcntl_wexitstatus — Gibt den Statuscode eines beendeten Kindes zurück
    • pcntl_wifexited — Prüft ob der Statuscode ein erfolgreiches Beenden darstellt
    • pcntl_wifsignaled — Prüft ob der Statuscode eine Terminierung wegen eines Signals angibt
    • pcntl_wifstopped — Prüft ob der Kindprozess gerade gestoppt ist
    • pcntl_wstopsig — Gibt das Signal zurück, welches das Anhalten des Kindes verursachte
    • pcntl_wtermsig — Gibt das Signal zurück, welches das Beenden des Kindes verursachte


Einführung

Die Prozesskontrollunterstützung in PHP implementiert die Unixausführung von Prozesserzeugung, Programmausführung, Signalverarbeitung und Prozesstermination. Prozesskontrolle sollte nicht innerhalb einer Webserverumgebung aktiviert werden und unerwartete Ergebnisse können auftreten, wenn eine Prozesskontrollfunktion innerhalb einer Webserverumgebung verwendet wird.

Die Absicht dieser Dokumentation ist es, die allgemeine Verwendung jeder der Prozesskontrollfunktionen zu erklären. Für detaillierte Informationen über Unix Prozesskontrolle empfehlen wir Ihnen, die Dokumentation Ihres Systems einschließlich fork(2), waitpid(2) und signal(2) oder eine umfassende Referenz wie zum Beispiel Advanced Programming in the UNIX Environment von W. Richard Stevens (Addison-Wesley) hinzuzuziehen.

PCNTL verwendet mitlerweile Ticks als Signalverarbeitungs-Callbackmechanismus, welcher wesentlich schneller als der zuvor verwendete Mechanismus ist. Dieser Wechsel folgt der selben Semantik wie die Verwendung von "Benutzer Ticks". Man verwendet die declare() Anweisung, um die Stellen in seinem Programm anzugeben, in denen Callbacks stattfinden dürfen. Dies erlaubt Ihnen den Overhead durch die Behandlung von asynchronen Ereignissen zu minimieren. In der Vergangenheit zog das Kompilieren von PHP mit eingeschaltetem Pcntl immer diesen Overhead hinzu, egal ob ein Skript tatsächlich Pcntl verwendete oder nicht.

Hinweis: Diese Erweiterung steht auf Windows-Betriebssystemen nicht zur Verfügung.


Installation

Prozesskontrollunterstützung in PHP ist nicht standardmäßig aktiviert. Sie müssen die CGI- oder CLI-Version von PHP mit der --enable-pcntl-Konfigurationsoption kompilieren, um Prozesskontrollunterstützung einzuschalten.

Hinweis:

Momentan wird dieses Modul nicht auf Plattformen funktionieren, die nicht auf Unix basieren (Windows).


Vordefinierte Konstanten

Die in der folgenden Liste aufgeführten Signale werden von den Prozesskontrollfunktionen unterstützt. Einzelheiten zum Standardverhalten dieser Signale finden Sie in der signal(7)-Manpage Ihres Systems.

WNOHANG (int)
WUNTRACED (int)
SIG_IGN (int)
SIG_DFL (int)
SIG_ERR (int)
SIGHUP (int)
SIGINT (int)
SIGQUIT (int)
SIGILL (int)
SIGTRAP (int)
SIGABRT (int)
SIGIOT (int)
SIGBUS (int)
SIGFPE (int)
SIGKILL (int)
SIGUSR1 (int)
SIGSEGV (int)
SIGUSR2 (int)
SIGPIPE (int)
SIGALRM (int)
SIGTERM (int)
SIGSTKFLT (int)
SIGCLD (int)
SIGCHLD (int)
SIGCONT (int)
SIGSTOP (int)
SIGTSTP (int)
SIGTTIN (int)
SIGTTOU (int)
SIGURG (int)
SIGXCPU (int)
SIGXFSZ (int)
SIGVTALRM (int)
SIGPROF (int)
SIGWINCH (int)
SIGPOLL (int)
SIGIO (int)
SIGPWR (int)
SIGSYS (int)
SIGBABY (int)
SIG_BLOCK (int)
Verfügbar seit PHP 5.3.0.
SIG_UNBLOCK (int)
Verfügbar seit PHP 5.3.0.
SIG_SETMASK (int)
Verfügbar seit PHP 5.3.0.
SI_USER (int)
Verfügbar seit PHP 5.3.0.
SI_NOINFO (int)
Verfügbar seit PHP 5.3.0.
SI_KERNEL (int)
Verfügbar seit PHP 5.3.0.
SI_QUEUE (int)
Verfügbar seit PHP 5.3.0.
SI_TIMER (int)
Verfügbar seit PHP 5.3.0.
SI_MSGGQ (int)
Verfügbar seit PHP 5.3.0.
SI_ASYNCIO (int)
Verfügbar seit PHP 5.3.0.
SI_SIGIO (int)
Verfügbar seit PHP 5.3.0.
SI_TKILL (int)
Verfügbar seit PHP 5.3.0.
CLD_EXITED (int)
Verfügbar seit PHP 5.3.0.
CLD_KILLED (int)
Verfügbar seit PHP 5.3.0.
CLD_DUMPED (int)
Verfügbar seit PHP 5.3.0.
CLD_TRAPPED (int)
Verfügbar seit PHP 5.3.0.
CLD_STOPPED (int)
Verfügbar seit PHP 5.3.0.
CLD_CONTINUED (int)
Verfügbar seit PHP 5.3.0.
TRAP_BRKPT (int)
Verfügbar seit PHP 5.3.0.
TRAP_TRACE (int)
Verfügbar seit PHP 5.3.0.
POLL_IN (int)
Verfügbar seit PHP 5.3.0.
POLL_OUT (int)
Verfügbar seit PHP 5.3.0.
POLL_MSG (int)
Verfügbar seit PHP 5.3.0.
POLL_ERR (int)
Verfügbar seit PHP 5.3.0.
POLL_PRI (int)
Verfügbar seit PHP 5.3.0.
POLL_HUP (int)
Verfügbar seit PHP 5.3.0.
ILL_ILLOPC (int)
Verfügbar seit PHP 5.3.0.
ILL_ILLOPN (int)
Verfügbar seit PHP 5.3.0.
ILL_ILLADR (int)
Verfügbar seit PHP 5.3.0.
ILL_ILLTRP (int)
Verfügbar seit PHP 5.3.0.
ILL_PRVOPC (int)
Verfügbar seit PHP 5.3.0.
ILL_PRVREG (int)
Verfügbar seit PHP 5.3.0.
ILL_COPROC (int)
Verfügbar seit PHP 5.3.0.
ILL_BADSTK (int)
Verfügbar seit PHP 5.3.0.
FPE_INTDIV (int)
Verfügbar seit PHP 5.3.0.
FPE_INTOVF (int)
Verfügbar seit PHP 5.3.0.
FPE_FLTDIV (int)
Verfügbar seit PHP 5.3.0.
FPE_FLTOVF (int)
Verfügbar seit PHP 5.3.0.
FPE_FLTUND (int)
Verfügbar seit PHP 5.3.0.
FPE_FLTRES (int)
Verfügbar seit PHP 5.3.0.
FPE_FLTINV (int)
Verfügbar seit PHP 5.3.0.
FPE_FLTSUB (int)
Verfügbar seit PHP 5.3.0.
SEGV_MAPERR (int)
Verfügbar seit PHP 5.3.0.
SEGV_ACCERR (int)
Verfügbar seit PHP 5.3.0.
BUS_ADRALN (int)
Verfügbar seit PHP 5.3.0.
BUS_ADRERR (int)
Verfügbar seit PHP 5.3.0.
BUS_OBJERR (int)
Verfügbar seit PHP 5.3.0.


  • « Vordefinierte Konstanten
  • Grundlegende Verwendung »
  • PHP Manual
  • PCNTL
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Grundlegende Verwendung


Grundlegende Verwendung

Dieses Beispiel zweigt einen Daemon Prozess mit Signalverarbeitung ab.

Beispiel #1 Prozesskontrollbeispiel

<?php
declare(ticks=1);

$pid = pcntl_fork();
if ($pid == -1) {
     die("Konnte nicht abzweigen");
} else if ($pid) {
     exit(); // Wir sind der Vater
} else {
     // Wir sind das Kind
}

// Vom kontrollierenden Terminal ablösen
if (posix_setsid() == -1) {
    die("Konnte nicht vom Terminal abkoppeln");
}

// Signalverarbeitung einrichten
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

// Endlosschleife, die Aufgaben erfüllt
while (1) {

    // Hier etwas interessantes tun

}

function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // Aufgaben zum Abschalten bearbeiten
             exit;
             break;
         case SIGHUP:
             // Aufgaben zum Neustarten bearbeiten
             break;
         default:
             // Alle anderen Signale bearbeiten
     }

}

?>


PCNTL Funktionen

Siehe auch

Ein Blick in den Abschnitt über POSIX Funktionen kann hilfreich sein.

Inhaltsverzeichnis

  • pcntl_alarm — Setzt einen Zeitschalter für die Auslieferung eines Signals
  • pcntl_async_signals — Enable/disable asynchronous signal handling or return the old setting
  • pcntl_errno — Alias von pcntl_get_last_error
  • pcntl_exec — Führt ein angegebenes Programm im aktuellen Prozessraum aus
  • pcntl_fork — Verzweigt den laufenden Prozess
  • pcntl_get_last_error — Retrieve the error number set by the last pcntl function which failed
  • pcntl_getpriority — Liest die Priorität eines beliebigen Prozesses
  • pcntl_setpriority — Ändert die Priorität irgendeines Prozesses
  • pcntl_signal_dispatch — Calls signal handlers for pending signals
  • pcntl_signal_get_handler — Get the current handler for specified signal
  • pcntl_signal — Richtet eine Signalverarbeitung ein
  • pcntl_sigprocmask — Sets and retrieves blocked signals
  • pcntl_sigtimedwait — Waits for signals, with a timeout
  • pcntl_sigwaitinfo — Waits for signals
  • pcntl_strerror — Retrieve the system error message associated with the given errno
  • pcntl_wait — Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
  • pcntl_waitpid — Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
  • pcntl_wexitstatus — Gibt den Statuscode eines beendeten Kindes zurück
  • pcntl_wifexited — Prüft ob der Statuscode ein erfolgreiches Beenden darstellt
  • pcntl_wifsignaled — Prüft ob der Statuscode eine Terminierung wegen eines Signals angibt
  • pcntl_wifstopped — Prüft ob der Kindprozess gerade gestoppt ist
  • pcntl_wstopsig — Gibt das Signal zurück, welches das Anhalten des Kindes verursachte
  • pcntl_wtermsig — Gibt das Signal zurück, welches das Beenden des Kindes verursachte


Setzt einen Zeitschalter für die Auslieferung eines Signals

  • « PCNTL Funktionen
  • pcntl_async_signals »
  • PHP Manual
  • PCNTL Funktionen
  • Setzt einen Zeitschalter für die Auslieferung eines Signals

pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pcntl_alarm — Setzt einen Zeitschalter für die Auslieferung eines Signals

Beschreibung

pcntl_alarm ( int $seconds ) : int

Erzeugt eine Zeitschaltuhr, die ein SIGALRM Signal an den Prozess senden wird, nachdem die angegebene Anzahl von Sekunden vergangen sind. Jeder Aufruf von pcntl_alarm() wird jeden zuvor erzeugten Zeitschalter abbrechen.

Parameter-Liste

seconds

Die zu wartende Anzahl von Sekunden. Ist seconds 0, wird kein neuer Zeitschalter erzeugt.

Rückgabewerte

Gibt die Zeitangabe in Sekunden zurück, die ein zuvor angesetzter Zeitschalter übrig hatte, bevor er ausgeliefert werden sollte, oder 0, wenn es keinen vorher angesetzten Zeitschalter gab.


Enable/disable asynchronous signal handling or return the old setting

  • « pcntl_alarm
  • pcntl_errno »
  • PHP Manual
  • PCNTL Funktionen
  • Enable/disable asynchronous signal handling or return the old setting

pcntl_async_signals

(PHP 7 >= 7.1.0, PHP 8)

pcntl_async_signals — Enable/disable asynchronous signal handling or return the old setting

Beschreibung

pcntl_async_signals ( bool $on = null ) : bool

If the on parameter is omitted, pcntl_async_signals() returns whether asynchronous signal handling is enabled. Otherwise, asynchronous signal handling is enabled or disabled.

Parameter-Liste

on

Whether asynchronous signal handling should be enabled.

Rückgabewerte

When used as getter (that is without the optional parameter) it returns whether asynchronous signal handling is enabled. When used as setter (that is with the optional parameter given), it returns whether asynchronous signal handling was enabled before the function call.

Siehe auch

  • declare


Alias von pcntl_get_last_error

  • « pcntl_async_signals
  • pcntl_exec »
  • PHP Manual
  • PCNTL Funktionen
  • Alias von pcntl_get_last_error

pcntl_errno

(PHP 5 >= 5.3.4, PHP 7, PHP 8)

pcntl_errno — Alias von pcntl_get_last_error()

Beschreibung

Diese Funktion ist ein Alias für: pcntl_get_last_error()


Führt ein angegebenes Programm im aktuellen Prozessraum aus

  • « pcntl_errno
  • pcntl_fork »
  • PHP Manual
  • PCNTL Funktionen
  • Führt ein angegebenes Programm im aktuellen Prozessraum aus

pcntl_exec

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pcntl_exec — Führt ein angegebenes Programm im aktuellen Prozessraum aus

Beschreibung

pcntl_exec ( string $path , array $args = ? , array $envs = ? ) : void

Führt das Programm mit den angegeben Argumenten aus.

Parameter-Liste

path

path muss der Pfad zur binären ausführbaren Datei oder einem Skript mit einem gültigen auf eine ausführbare Datei zeigenden Pfad in der Shebang (zum Beispiel #!/usr/local/bin/perl) als erste Zeile sein. Für weitere Informationen ist die execve(2)-Manpage des Systems zu konsultieren.

args

args ist ein Array von Parameterstrings, die dem Programm übergeben werden.

envs

envs ist ein Array von Strings, die dem Programm als Umgebungsvariablen übergeben werden. Das Array ist im Format Name => Wert, wobei der Schlüssel der Name der Umgebungsvariable und der Wert der Inhalt dieser Variable ist.

Rückgabewerte

Returns null on successIm Fehlerfall wird false zurückgegeben..


Verzweigt den laufenden Prozess

  • « pcntl_exec
  • pcntl_get_last_error »
  • PHP Manual
  • PCNTL Funktionen
  • Verzweigt den laufenden Prozess

pcntl_fork

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_fork — Verzweigt den laufenden Prozess

Beschreibung

pcntl_fork ( ) : int

Die Funktion pcntl_fork() erzeugt einen Kindprozess, der sich von seinem Elternprozess nur durch seine PID und PPID unterscheidet. Für spezifische Details wie Fork arbeitet, ist die fork(2) Handbuch-Seite des Systems zu konsultieren.

Rückgabewerte

Bei Erfolg wird die PID des Kindprozesses an den Ausführungsstrang des Elternprozess und eine 0 an den Ausführungsstrang des Kindes zurückgegeben. Bei einem Fehlschlag wird -1 in den Kontext des Elternprozess zurückgegeben, kein Kindprozess erzeugt und ein PHP Fehler ausgelöst.

Beispiele

Beispiel #1 pcntl_fork() Beispiel

<?php

$pid = pcntl_fork();
if ($pid == -1) {
     die('Konnte nicht verzweigen');
} else if ($pid) {
     // Wir sind der Elternprozess
     pcntl_wait($status); //Schützt uns vor Zombie Kindern
} else {
     // Wir sind das Kind
}

?>

Siehe auch

  • pcntl_waitpid() - Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
  • pcntl_signal() - Richtet eine Signalverarbeitung ein
  • setproctitle() - Set the process title


Retrieve the error number set by the last pcntl function which failed

  • « pcntl_fork
  • pcntl_getpriority »
  • PHP Manual
  • PCNTL Funktionen
  • Retrieve the error number set by the last pcntl function which failed

pcntl_get_last_error

(PHP 5 >= 5.3.4, PHP 7, PHP 8)

pcntl_get_last_error — Retrieve the error number set by the last pcntl function which failed

Beschreibung

pcntl_get_last_error ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns error code.

Siehe auch

  • pcntl_strerror() - Retrieve the system error message associated with the given errno


Liest die Priorität eines beliebigen Prozesses

  • « pcntl_get_last_error
  • pcntl_setpriority »
  • PHP Manual
  • PCNTL Funktionen
  • Liest die Priorität eines beliebigen Prozesses

pcntl_getpriority

(PHP 5, PHP 7, PHP 8)

pcntl_getpriority — Liest die Priorität eines beliebigen Prozesses

Beschreibung

pcntl_getpriority ( int $pid = getmypid() , int $process_identifier = PRIO_PROCESS ) : int

pcntl_getpriority() liest die Priorität von pid. Weil die Prioritätsstufen sich zwischen Systemtypen und Kernelversionen unterscheiden können, ist die getpriority(2)-Manpage des Systems bezüglich spezifischer Details zu konsultieren.

Parameter-Liste

pid

Wenn nicht angegeben, wird die PID des aktuellen Prozesses verwendet.

process_identifier

Entweder PRIO_PGRP, PRIO_USER oder PRIO_PROCESS.

Rückgabewerte

pcntl_getpriority() gibt die Priorität des Prozesses oder false im Fehlerfall zurück. Ein kleinerer numerischer Wert bewirkt ein günstigeres Scheduling.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Siehe auch

  • pcntl_setpriority() - Ändert die Priorität irgendeines Prozesses


Ändert die Priorität irgendeines Prozesses

  • « pcntl_getpriority
  • pcntl_signal_dispatch »
  • PHP Manual
  • PCNTL Funktionen
  • Ändert die Priorität irgendeines Prozesses

pcntl_setpriority

(PHP 5, PHP 7, PHP 8)

pcntl_setpriority — Ändert die Priorität irgendeines Prozesses

Beschreibung

pcntl_setpriority ( int $priority , int $pid = getmypid() , int $process_identifier = PRIO_PROCESS ) : bool

pcntl_setpriority() setzt die Priorität von pid.

Parameter-Liste

priority

priority ist gewöhnlich ein Wert im Bereich zwischen -20 und 20. Die vorgegebene Priorität ist 0, während ein kleinerer numerischer Wert günstigeres Scheduling hervorruft. Weil die Prioritätsstufen sich zwischen Systemtypen und Kernelversionen unterscheiden können, ist die setpriority(2) Handbuch-Seite des Systems bezüglich spezifischer Details zu konsultieren.

pid

Wenn nicht angegeben, wird die Pid des aktuellen Prozesses benutzt.

process_identifier

Entweder PRIO_PGRP, PRIO_USER oder PRIO_PROCESS.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • pcntl_getpriority() - Liest die Priorität eines beliebigen Prozesses


Calls signal handlers for pending signals

  • « pcntl_setpriority
  • pcntl_signal_get_handler »
  • PHP Manual
  • PCNTL Funktionen
  • Calls signal handlers for pending signals

pcntl_signal_dispatch

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_signal_dispatch — Calls signal handlers for pending signals

Beschreibung

pcntl_signal_dispatch ( ) : bool

The pcntl_signal_dispatch() function calls the signal handlers installed by pcntl_signal() for each pending signal.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pcntl_signal_dispatch() example

<?php
echo "Installing signal handler...\n";
pcntl_signal(SIGHUP,  function($signo) {
     echo "signal handler called\n";
});

echo "Generating signal SIGHUP to self...\n";
posix_kill(posix_getpid(), SIGHUP);

echo "Dispatching...\n";
pcntl_signal_dispatch();

echo "Done\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Installing signal handler...
Generating signal SIGHUP to self...
Dispatching...
signal handler called
Done

Siehe auch

  • pcntl_signal() - Richtet eine Signalverarbeitung ein
  • pcntl_sigprocmask() - Sets and retrieves blocked signals
  • pcntl_sigwaitinfo() - Waits for signals
  • pcntl_sigtimedwait() - Waits for signals, with a timeout


Get the current handler for specified signal

  • « pcntl_signal_dispatch
  • pcntl_signal »
  • PHP Manual
  • PCNTL Funktionen
  • Get the current handler for specified signal

pcntl_signal_get_handler

(PHP 7 >= 7.1.0, PHP 8)

pcntl_signal_get_handler — Get the current handler for specified signal

Beschreibung

pcntl_signal_get_handler ( int $signo ) : mixed

The pcntl_signal_get_handler() function will get the current handler for the specified signo.

Parameter-Liste

signo

The signal number.

Rückgabewerte

This function may return an integer value that refers to SIG_DFL or SIG_IGN. If you set a custom handler a string value containing the function name is returned.

Changelog

Version | Beschreibung
7.1.0 | pcntl_signal_get_handler() has been added.

Beispiele

Beispiel #1 pcntl_signal_get_handler() example

<?php
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Outputs: int(0)

function pcntl_test($signo) {}
pcntl_signal(SIGUSR1, 'pcntl_test');
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Outputs: string(10) "pcntl_test"

pcntl_signal(SIGUSR1, SIG_DFL);
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Outputs: int(0)

pcntl_signal(SIGUSR1, SIG_IGN);
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Outputs: int(1)
?>

Siehe auch

  • pcntl_signal() - Richtet eine Signalverarbeitung ein


Richtet eine Signalverarbeitung ein

  • « pcntl_signal_get_handler
  • pcntl_sigprocmask »
  • PHP Manual
  • PCNTL Funktionen
  • Richtet eine Signalverarbeitung ein

pcntl_signal

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_signal — Richtet eine Signalverarbeitung ein

Beschreibung

pcntl_signal ( int $signo , callable|int $handler , bool $restart_syscalls = true ) : bool

Die Funktion pcntl_signal() richtet eine neue Signalverarbeitung für das in signo angegebene Signal ein oder ersetzt die aktuelle.

Parameter-Liste

signo

Die Signalnummer.

handler

Die Signalverarbeitung. Dies ist entweder ein callable, das aufgerufen wird, um das Signal zu verarbeiten, oder eine der beiden globalen Konstanten SIG_IGN oder SIG_DFL, die das Signal ignorieren bzw. die Standard-Signalverarbeitung wiederherstellen.

Wird ein callable übergeben, muss es folgende Signatur haben:

handler ( int $signo , mixed $siginfo ) : void
signo
Das zu verarbeitende Signal.
siginfo
Unterstützt das Betriebssystem siginfo_t-Strukturen, ist dies ein Array von Signalinformationen, die vom Signal abhängen.

Hinweis:

Es ist zu beachten, dass die Verwendung einer Objektmethode als Signalverarbeitung den Referenzzähler des Objekts erhöht, weshalb das Objekt bestehen bleibt, bis entweder die Verarbeitung geändert wird oder das Skript endet.

restart_syscalls

Gibt an, ob der Neustart von Systemaufrufen verwendet werden soll, wenn das Signal eintrifft.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | Von PHP 7.1.0 an wird der Signalverbeitung ein zweites Argument übergeben, das die siginfo des spezfischen Signals enthält. Diese Daten werden nur zur Verfügung gestellt, wenn das System die siginfo_t-Struktur kennt. Wenn das Betriebssystem siginfo_t nicht implementiert, wird null übergeben.

Beispiele

Beispiel #1 pcntl_signal()-Beispiel

<?php
// Verwendung von Ticks benötigt
declare(ticks = 1);

// Signalverarbeitungsfunktion
function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // Aufgaben zum Beenden bearbeiten
             exit;
             break;
         case SIGHUP:
             // Aufgaben zum Neustart bearbeiten
             break;
         case SIGUSR1:
             echo "SIGUSR1 abgefangen...\n";
             break;
         default:
             // Alle anderen Signale bearbeiten
     }

}

echo "Richte neue Signalverarbeitung ein...\n";

// Signalverarbeitung einrichten
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");

// oder ein Objekt verwenden
// pcntl_signal(SIGUSR1, array($obj, "do_something");

echo "Erzeuge signal SIGTERM an mich selbst...\n";

// sende SIGUSR1 an die aktuelle Prozess-ID
posix_kill(posix_getpid(), SIGUSR1);

echo "Fertig\n"

?>

Anmerkungen

pcntl_signal() stapelt Signalverarbeitungen nicht, sondern ersetzt sie.

Siehe auch

  • pcntl_fork() - Verzweigt den laufenden Prozess
  • pcntl_waitpid() - Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück


Sets and retrieves blocked signals

  • « pcntl_signal
  • pcntl_sigtimedwait »
  • PHP Manual
  • PCNTL Funktionen
  • Sets and retrieves blocked signals

pcntl_sigprocmask

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_sigprocmask — Sets and retrieves blocked signals

Beschreibung

pcntl_sigprocmask ( int $how , array $set , array &$oldset = ? ) : bool

The pcntl_sigprocmask() function adds, removes or sets blocked signals, depending on the how parameter.

Parameter-Liste

how

Sets the behavior of pcntl_sigprocmask(). Possible values:

  • SIG_BLOCK: Add the signals to the currently blocked signals.
  • SIG_UNBLOCK: Remove the signals from the currently blocked signals.
  • SIG_SETMASK: Replace the currently blocked signals by the given list of signals.

set

List of signals.

oldset

The oldset parameter is set to an array containing the list of the previously blocked signals.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 pcntl_sigprocmask() example

<?php
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
$oldset = array();
pcntl_sigprocmask(SIG_UNBLOCK, array(SIGHUP), $oldset);
?>

Siehe auch

  • pcntl_sigwaitinfo() - Waits for signals
  • pcntl_sigtimedwait() - Waits for signals, with a timeout


Waits for signals, with a timeout

  • « pcntl_sigprocmask
  • pcntl_sigwaitinfo »
  • PHP Manual
  • PCNTL Funktionen
  • Waits for signals, with a timeout

pcntl_sigtimedwait

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_sigtimedwait — Waits for signals, with a timeout

Beschreibung

pcntl_sigtimedwait ( array $set , array &$siginfo = ? , int $seconds = 0 , int $nanoseconds = 0 ) : int

The pcntl_sigtimedwait() function operates in exactly the same way as pcntl_sigwaitinfo() except that it takes two additional parameters, seconds and nanoseconds, which enable an upper bound to be placed on the time for which the script is suspended.

Parameter-Liste

set

Array of signals to wait for.

siginfo

The siginfo is set to an array containing information about the signal. See pcntl_sigwaitinfo().

seconds

Timeout in seconds.

nanoseconds

Timeout in nanoseconds.

Rückgabewerte

On success, pcntl_sigtimedwait() returns a signal number.

Siehe auch

  • pcntl_sigprocmask() - Sets and retrieves blocked signals
  • pcntl_sigwaitinfo() - Waits for signals


Waits for signals

  • « pcntl_sigtimedwait
  • pcntl_strerror »
  • PHP Manual
  • PCNTL Funktionen
  • Waits for signals

pcntl_sigwaitinfo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_sigwaitinfo — Waits for signals

Beschreibung

pcntl_sigwaitinfo ( array $set , array &$siginfo = ? ) : int

The pcntl_sigwaitinfo() function suspends execution of the calling script until one of the signals given in set are delivered. If one of the signal is already pending (e.g. blocked by pcntl_sigprocmask()), pcntl_sigwaitinfo() will return immediately.

Parameter-Liste

set

Array of signals to wait for.

siginfo

The siginfo parameter is set to an array containing information about the signal.

The following elements are set for all signals:

  • signo: Signal number
  • errno: An error number
  • code: Signal code

The following elements may be set for the SIGCHLD signal:

  • status: Exit value or signal
  • utime: User time consumed
  • stime: System time consumed
  • pid: Sending process ID
  • uid: Real user ID of sending process

The following elements may be set for the SIGILL, SIGFPE, SIGSEGV and SIGBUS signals:

  • addr: Memory location which caused fault

The following element may be set for the SIGPOLL signal:

  • band: Band event
  • fd: File descriptor number

Rückgabewerte

On success, pcntl_sigwaitinfo() returns a signal number.

Beispiele

Beispiel #1 pcntl_sigwaitinfo() example

<?php
echo "Blocking SIGHUP signal\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));

echo "Sending SIGHUP to self\n";
posix_kill(posix_getpid(), SIGHUP);

echo "Waiting for signals\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>

Siehe auch

  • pcntl_sigprocmask() - Sets and retrieves blocked signals
  • pcntl_sigtimedwait() - Waits for signals, with a timeout


Retrieve the system error message associated with the given errno

  • « pcntl_sigwaitinfo
  • pcntl_wait »
  • PHP Manual
  • PCNTL Funktionen
  • Retrieve the system error message associated with the given errno

pcntl_strerror

(PHP 5 >= 5.3.4, PHP 7, PHP 8)

pcntl_strerror — Retrieve the system error message associated with the given errno

Beschreibung

pcntl_strerror ( int $errno ) : string|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

errno

Rückgabewerte

Returns error description on successIm Fehlerfall wird false zurückgegeben..

Siehe auch

  • pcntl_get_last_error() - Retrieve the error number set by the last pcntl function which failed


Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück

  • « pcntl_strerror
  • pcntl_waitpid »
  • PHP Manual
  • PCNTL Funktionen
  • Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück

pcntl_wait

(PHP 5, PHP 7, PHP 8)

pcntl_wait — Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück

Beschreibung

pcntl_wait ( int &$status , int $options = 0 , array &$rusage = ? ) : int

Die Funktion wait unterbricht die Ausführung des aktuellen Prozesses bis ein Kind sich beendet hat, oder bis ein Signal ausgeliefert wurde, dessen Aktion den aktuellen Prozess beendet, oder eine Signalverabeitungsfunktion aufruft. Wenn ein Kind sich zum Zeitpunkt des Funktionsaufrufes bereits beendet hat (ein sog. "Zombie" Prozess), kehrt die Funktion umgehend zurück. Alle durch das Kind verwendeten Ressourcen werden freigegeben. Die waitpid(2) Handbuch-Seite des Systems ist bezüglich spezifischer Details, wie waitpid auf dem System arbeitet, zu konsultieren.

Hinweis:

Diese Funktion ist gleichwertig zum Aufruf der Funktion pcntl_waitpid() mit -1 als pid und keinerlei options.

Parameter-Liste

status

pcntl_wait() speichert Statusinformationen im Parameter
status, welcher durch die folgenden Funktionen
ausgewertet werden kann:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() und
pcntl_wstopsig().

options

Wenn wait3 auf Ihrem System verfügbar ist (meist BSD-artige Systeme) können Sie den optionalen options Parameter angeben. Wenn dieser Parameter nicht angegeben wurde, wird wait als Systemaufruf verwendet. Wenn wait3 nicht verfügbar ist, wird die Angabe eines Wertes für options keinerlei Auswirkungen haben. Der Wert von options ist der Wert von keiner oder mehr der folgenden durch OR verknüpften beiden Konstanten:

Mögliche Werte für options
WNOHANG | Kehre umgehend zurück, wenn kein Kind beendet wurde.
WUNTRACED | Kehre für Kinder zurück die gestoppt sind und für solche, deren Status nicht gemeldet ist.

Rückgabewerte

pcntl_wait() gibt die Prozess ID des beendeten Kindes zurück, -1 im Fehlerfall, oder 0, wenn WNOHANG als Option angegeben wurde (auf wait3 Systemen) und kein Kind verfügbar war.

Siehe auch

  • pcntl_fork() - Verzweigt den laufenden Prozess
  • pcntl_signal() - Richtet eine Signalverarbeitung ein
  • pcntl_wifexited() - Prüft ob der Statuscode ein erfolgreiches Beenden darstellt
  • pcntl_wifstopped() - Prüft ob der Kindprozess gerade gestoppt ist
  • pcntl_wifsignaled() - Prüft ob der Statuscode eine Terminierung wegen eines Signals angibt
  • pcntl_wexitstatus() - Gibt den Statuscode eines beendeten Kindes zurück
  • pcntl_wtermsig() - Gibt das Signal zurück, welches das Beenden des Kindes verursachte
  • pcntl_wstopsig() - Gibt das Signal zurück, welches das Anhalten des Kindes verursachte
  • pcntl_waitpid() - Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück


Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück

  • « pcntl_wait
  • pcntl_wexitstatus »
  • PHP Manual
  • PCNTL Funktionen
  • Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück

pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_waitpid — Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück

Beschreibung

pcntl_waitpid ( int $pid , int &$status , int $options = 0 , array &$rusage = ? ) : int

Unterbricht die Ausführung des aktuellen Prozesses bis ein durch den Parameter pid angegebenes Kind sich beendet hat oder bis ein Signal ausgeliefert wurde, dessen Aktion den aktuellen Prozess beendet oder eine Signalverabeitungsfunktion aufruft.

Wenn ein Kind, welches durch pid angefordert wird, sich zum Zeitpunkt des Funktionsaufrufes bereits beendet hat (ein sog. "Zombie" Prozess) kehrt die Funktion umgehend zurück. Alle durch das Kind verwendeten Ressourcen werden freigegeben. Die waitpid(2) Handbuch-Seite des Systems ist bezüglich spezifischer Details, wie waitpid auf dem System arbeitet, zu konsultieren.

Parameter-Liste

pid

Der Wert von pid kann einer der Folgenden sein:

Mögliche Werte für pid
< -1 | wartet auf irgendeinen Kindprozess dessen Prozessgruppen ID gleich dem absoluten Wert von pid ist.
-1 | wartet auf irgendeinen Kindprozess; dies ist dasselbe Verhalten, welches die wait Funktion anbietet.
0 | wartet auf irgendeinen Kindprozess dessen Prozessgruppen ID gleich dem Wert des aufrufenden Prozesses ist.
> 0 | wartet auf das Kind, dessen Prozess ID gleich dem Wert von pid ist.

Hinweis:

Angeben von -1 für den Parameter pid ist äquivalent zur Funktionalität der Funktion pcntl_wait() (ohne options).

status

pcntl_waitpid() speichert Statusinformationen im Parameter
status, welcher durch die folgenden Funktionen
ausgewertet werden kann:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() und
pcntl_wstopsig().

options

Der Wert von options ist der Wert von keiner oder mehr der mittels OR verknüpften folgenden beiden globalen Konstanten:

Mögliche Werte für options
WNOHANG | Kehre umgehend zurück, wenn kein Kind beendet wurde..
WUNTRACED | Kehre für Kinder zurück die gestoppt sind und für solche, deren Status nicht gemeldet ist.

Rückgabewerte

pcntl_waitpid() gibt entweder die Prozess ID des Kindes zurück, das beendet wurde, -1 im Fehlerfall, oder 0, wenn WNOHANG verwendet wurde und kein Kind verfügbar war.

Siehe auch

  • pcntl_fork() - Verzweigt den laufenden Prozess
  • pcntl_signal() - Richtet eine Signalverarbeitung ein
  • pcntl_wifexited() - Prüft ob der Statuscode ein erfolgreiches Beenden darstellt
  • pcntl_wifstopped() - Prüft ob der Kindprozess gerade gestoppt ist
  • pcntl_wifsignaled() - Prüft ob der Statuscode eine Terminierung wegen eines Signals angibt
  • pcntl_wexitstatus() - Gibt den Statuscode eines beendeten Kindes zurück
  • pcntl_wtermsig() - Gibt das Signal zurück, welches das Beenden des Kindes verursachte
  • pcntl_wstopsig() - Gibt das Signal zurück, welches das Anhalten des Kindes verursachte


Gibt den Statuscode eines beendeten Kindes zurück

  • « pcntl_waitpid
  • pcntl_wifexited »
  • PHP Manual
  • PCNTL Funktionen
  • Gibt den Statuscode eines beendeten Kindes zurück

pcntl_wexitstatus

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wexitstatus — Gibt den Statuscode eines beendeten Kindes zurück

Beschreibung

pcntl_wexitstatus ( int $status ) : int

Gibt den Statuscode eines beendeten Kindes zurück. Diese Funktion ist nur nützlich, wenn pcntl_wifexited() true zurückgab.

Parameter-Liste

status

Der status-Parameter entspricht dem Statusparameter, der für einen erfolgreichen Aufruf von pcntl_waitpid() verwendet wird.

Rückgabewerte

Gibt den Exit-Code als Ganzzahl zurück.

Siehe auch

  • pcntl_waitpid() - Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
  • pcntl_wifexited() - Prüft ob der Statuscode ein erfolgreiches Beenden darstellt


Prüft ob der Statuscode ein erfolgreiches Beenden darstellt

  • « pcntl_wexitstatus
  • pcntl_wifsignaled »
  • PHP Manual
  • PCNTL Funktionen
  • Prüft ob der Statuscode ein erfolgreiches Beenden darstellt

pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wifexited — Prüft ob der Statuscode ein erfolgreiches Beenden darstellt

Beschreibung

pcntl_wifexited ( int $status ) : bool

Prüft, ob der Statuscode des Kindes ein erfolgreiches Beenden darstellt.

Parameter-Liste

status

Der status-Parameter entspricht dem Statusparameter, der für einen erfolgreichen Aufruf von pcntl_waitpid() verwendet wird.

Rückgabewerte

Gibt true zurück, wenn der Statuscode eines Kindes ein erfolgreiches Beenden darstellt; andernfalls false.

Siehe auch

  • pcntl_waitpid() - Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
  • pcntl_wexitstatus() - Gibt den Statuscode eines beendeten Kindes zurück


Prüft ob der Statuscode eine Terminierung wegen eines Signals angibt

  • « pcntl_wifexited
  • pcntl_wifstopped »
  • PHP Manual
  • PCNTL Funktionen
  • Prüft ob der Statuscode eine Terminierung wegen eines Signals angibt

pcntl_wifsignaled

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wifsignaled — Prüft ob der Statuscode eine Terminierung wegen eines Signals angibt

Beschreibung

pcntl_wifsignaled ( int $status ) : bool

Prüft, ob der Kindprozess aufgrund eines Signals, das nicht abgefangen wurde, beendet wurde.

Parameter-Liste

status

Der status-Parameter entspricht dem Statusparameter, der für einen erfolgreichen Aufruf von pcntl_waitpid() verwendet wird.

Rückgabewerte

Gibt true zurück, wenn der Kindprozess sich wegen eines Signals beendete, das nicht abgefangen wurde; andernfalls false.

Siehe auch

  • pcntl_waitpid() - Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
  • pcntl_signal() - Richtet eine Signalverarbeitung ein


Prüft ob der Kindprozess gerade gestoppt ist

  • « pcntl_wifsignaled
  • pcntl_wstopsig »
  • PHP Manual
  • PCNTL Funktionen
  • Prüft ob der Kindprozess gerade gestoppt ist

pcntl_wifstopped

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wifstopped — Prüft ob der Kindprozess gerade gestoppt ist

Beschreibung

pcntl_wifstopped ( int $status ) : bool

Prüft, ob der Kindprozess, der die Rückkehr verursachte, momentan gestoppt ist; dies ist nur möglich, wenn der Aufruf von pcntl_waitpid() mit der Option WUNTRACED geschah.

Parameter-Liste

status

Der status-Parameter entspricht dem Statusparameter, der für einen erfolgreichen Aufruf von pcntl_waitpid() verwendet wird.

Rückgabewerte

Gibt true zurück, wenn der Kindprozess, der die Rückkehr verursachte, momentan gestoppt ist; false andernfalls.

Siehe auch

  • pcntl_waitpid() - Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück


Gibt das Signal zurück, welches das Anhalten des Kindes verursachte

  • « pcntl_wifstopped
  • pcntl_wtermsig »
  • PHP Manual
  • PCNTL Funktionen
  • Gibt das Signal zurück, welches das Anhalten des Kindes verursachte

pcntl_wstopsig

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wstopsig — Gibt das Signal zurück, welches das Anhalten des Kindes verursachte

Beschreibung

pcntl_wstopsig ( int $status ) : int

Gibt die Zahl des Signals zurück, das verursachte, dass das Kind anhielt. Diese Funktion ist nur nützlich, falls pcntl_wifstopped() true zurück gab.

Parameter-Liste

status

Der status-Parameter entspricht dem Statusparameter, der für einen erfolgreichen Aufruf von pcntl_waitpid() verwendet wird.

Rückgabewerte

Gibt die Signalnummer als Integer zurück.

Siehe auch

  • pcntl_waitpid() - Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
  • pcntl_wifstopped() - Prüft ob der Kindprozess gerade gestoppt ist


Gibt das Signal zurück, welches das Beenden des Kindes verursachte

  • « pcntl_wstopsig
  • POSIX »
  • PHP Manual
  • PCNTL Funktionen
  • Gibt das Signal zurück, welches das Beenden des Kindes verursachte

pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wtermsig — Gibt das Signal zurück, welches das Beenden des Kindes verursachte

Beschreibung

pcntl_wtermsig ( int $status ) : int

Gibt die Zahl des Signals zurück, das verursachte, dass das Kind beendet wurde. Diese Funktion ist nur nützlich, falls pcntl_wifsignaled() true zurückgab.

Parameter-Liste

status

Der status-Parameter entspricht dem Statusparameter, der für einen erfolgreichen Aufruf von pcntl_waitpid() verwendet wird.

Rückgabewerte

Gibt die Signalnummer als Integer zurück.

Siehe auch

  • pcntl_waitpid() - Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
  • pcntl_signal() - Richtet eine Signalverarbeitung ein
  • pcntl_wifsignaled() - Prüft ob der Statuscode eine Terminierung wegen eines Signals angibt


POSIX

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
    • posix_access-Konstanten
    • posix_mknod-Konstanten
    • posix_setrlimit-Konstanten
  • POSIX Funktionen
    • posix_access — Ermittelt die Zugriffsberechtigungen einer Datei
    • posix_ctermid — Liefert den Pfad des kontrollierenden Terminals
    • posix_errno — Alias von posix_get_last_error
    • posix_get_last_error — Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer
    • posix_getcwd — Pfadname des aktuellen Verzeichnisses
    • posix_getegid — Liefert die effektive Gruppen-ID des aktuellen Prozesses
    • posix_geteuid — Liefert die effektive Benutzer-ID des aktuellen Prozesses
    • posix_getgid — Liefert die reale Gruppen-ID des aktuellen Prozesses
    • posix_getgrgid — Liefert zu einer Gruppen-ID Informationen über diese Gruppe
    • posix_getgrnam — Liefert zu einem Gruppennamen Informationen über diese Gruppe
    • posix_getgroups — Liefert die Gruppenliste des aktuellen Prozesses
    • posix_getlogin — Liefert den Loginnamen
    • posix_getpgid — Liefert die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle
    • posix_getpgrp — Liefert die Prozessgruppenkennung des aktuellen Prozesses
    • posix_getpid — Liefert die aktuelle Prozesskennung
    • posix_getppid — Liefert die Prozesskennung des Elternprozesses
    • posix_getpwnam — Liefert zu einem Benutzernamen Informationen über diesen Benutzer
    • posix_getpwuid — Liefert zu einer Benutzer-ID Informationen über diesen Benutzer
    • posix_getrlimit — Liefert Informationen über Systemressourcen-Limits
    • posix_getsid — Liefert die aktuelle Session-ID (sid) des Prozesses
    • posix_getuid — Liefert die reale Benutzer-ID des aktuellen Prozesses
    • posix_initgroups — Ermittelt die Gruppenzugriffsliste
    • posix_isatty — Ermittelt, ob ein Dateideskriptor ein interaktives Terminal ist
    • posix_kill — Sendet einem Prozess ein Signal
    • posix_mkfifo — Erzeugt eine "FIFO special"-Datei (named pipe)
    • posix_mknod — Erzeugt eine spezielle oder eine gewöhnliche Datei (POSIX.1)
    • posix_setegid — Setzt die effektive Gruppen-ID des aktuellen Prozesses
    • posix_seteuid — Setzt die effektive Benutzer-ID des aktuellen Prozesses
    • posix_setgid — Setzt die Gruppen-ID des aktuellen Prozesses
    • posix_setpgid — Setzt die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle
    • posix_setrlimit — Set system resource limits
    • posix_setsid — Macht den aktuellen Prozess zum Prozessgruppen-Führer
    • posix_setuid — Setzt die Benutzer-ID des aktuellen Prozesses
    • posix_strerror — Liefert die System-Fehlermeldung, die zur angegebenen Fehlernummer gehört
    • posix_times — Liefert Rechenzeiten
    • posix_ttyname — Ermittelt den Namen des Terminal-Devices
    • posix_uname — Liefert Auskunft über das System


Einführung

Dieses Modul enthält eine Schnittstelle zu den im IEEE 1003.1 (POSIX.1) Standards Dokument definierten Funktionen, die auf einem anderen Weg nicht erreichbar sind.

Warnung

Sensible Daten können mit den POSIX-Funktionen, z.B. posix_getpwnam() und Freunde, abgefragt werden.

Hinweis: Diese Erweiterung steht auf Windows-Betriebssystemen nicht zur Verfügung.


Installation

Die POSIX-Funktionen stehen standardmäßig zur Verfügung. Sie können sie mit der Option --disable-posix deaktivieren.


Vordefinierte Konstanten

Inhaltsverzeichnis

  • posix_access-Konstanten
  • posix_mknod-Konstanten
  • posix_setrlimit-Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.


posix_access-Konstanten

  • « Vordefinierte Konstanten
  • posix_mknod-Konstanten »
  • PHP Manual
  • Vordefinierte Konstanten
  • posix_access-Konstanten

posix_access()-Konstanten

Hinweis:

Diese Konstanten stehen seit PHP 5.1.0 zur Verfügung. Bitte beachten Sie, dass manche davon auf Ihrem System nicht zur Verfügung stehen könnten.

POSIX_F_OK (int)
Prüft, ob die Datei existiert.
POSIX_R_OK (int)
Prüft, ob die Datei existiert und ob sie gelesen werden darf.
POSIX_W_OK (int)
Prüft, ob die Datei existiert und ob sie geschrieben werden darf.
POSIX_X_OK (int)
Prüft, ob die Datei existiert und ob sie ausgeführt werden darf.


posix_mknod-Konstanten

  • « posix_access-Konstanten
  • posix_setrlimit-Konstanten »
  • PHP Manual
  • Vordefinierte Konstanten
  • posix_mknod-Konstanten

posix_mknod()-Konstanten

Hinweis:

Diese Konstanten stehen seit PHP 5.1.0 zur Verfügung. Bitte beachten Sie, dass manche davon auf Ihrem System nicht zur Verfügung stehen könnten.

POSIX_S_IFBLK (int)
Blockorientierte Spezialdatei
POSIX_S_IFCHR (int)
Zeichenorientierte Spezialdatei
POSIX_S_IFIFO (int)
FIFO (benannte Pipe) Spezialdatei
POSIX_S_IFREG (int)
Normale Datei
POSIX_S_IFSOCK (int)
Socket


posix_setrlimit-Konstanten

  • « posix_mknod-Konstanten
  • POSIX Funktionen »
  • PHP Manual
  • Vordefinierte Konstanten
  • posix_setrlimit-Konstanten

posix_setrlimit()-Konstanten

Hinweis:

Diese Konstanten stehen seit PHP 7.0.0 zur Verfügung. Bitte beachten Sie, dass manche davon auf Ihrem System nicht zur Verfügung stehen könnten.

Hinweis:

Die untenstehenden Hinweise sollten zusammen mit der Handbuchseite für setrlimit() des jeweiligen Betriebssystems gelesen werden, da die Beschränkungen unterschiedlich interpretiert werden, selbst über Betriebssysteme hinweg, die behaupten POSIX vollständig zu implementieren.

POSIX_RLIMIT_AS (int)
Die Maximalgröße des Adressraums des Prozesses in Bytes. Siehe auch die Konfigurationsdirektive memory_limit von PHP.
POSIX_RLIMIT_CORE (int)
Die Maximalgröße einer Core-Dump-Datei. Ist das Limit 0, dann wird keine Core-Dump-Datei erzeugt.
POSIX_RLIMIT_CPU (int)
Die maximale CPU-Zeit, die ein Prozess nutzen darf, in Sekunden. Ist das weiche Limit erreicht, wird ein SIGXCPU-Signal gesendet, das mit pcntl_signal() abgefangen werden kann. In Abhängigkeit vom Betriebssystem können jede Sekunde weitere SIGXCPU-Signale gesendet werden, solange bis das harte Limit erreicht ist, was dazu führt, dass ein nicht abfangbares SIGKILL-Signal gesendet wird. Siehe auch set_time_limit().
POSIX_RLIMIT_DATA (int)
Die Maximalgröße des Datensegments des Prozesses in Bytes. Es ist sehr unwahrscheinlich das diese irgendeine Auswirkung auf die Ausführung von PHP hat, es sei denn, dass eine Extension verwendet wird, die brk() oder sbrk() aufruft.
POSIX_RLIMIT_FSIZE (int)
Die Maximalgröße von Dateien, die der Prozess erzeugen darf, in Bytes.
POSIX_RLIMIT_LOCKS (int)
Die Höchstanzahl von Sperren, die der Prozess erzeugen kann. Dies wird nur auf sehr alten Linux-Systemkernen unterstützt.
POSIX_RLIMIT_MEMLOCK (int)
Die Höchstanzahl von Bytes, die im Speicher gesperrt werden dürfen.
POSIX_RLIMIT_MSGQUEUE (int)
Die Höchstanzahl von Bytes, die für POSIX-Nachrichtenwarteschlagen belegt werden dürfen. PHP unterstützt POSIX-Nachrichtenwarteschlagen nicht, so dass dieses Limit keine Auswirkung hat, es sei denn eine Extension würde verwendet, die diese Unterstützung implementiert.
POSIX_RLIMIT_NICE (int)
Der Höchstwert, auf den die Prozesspriorität geändert werden kann (vgl. pcntl_setpriority()). Der zu nutzende Wert ist 20 - limit, da Resourcenlimits nicht negativ sein können.
POSIX_RLIMIT_NOFILE (int)
Ein Wert, der um eins größer ist, als die größte Dateikennungszahl, die von diesem Prozess geöffnet werden kann.
POSIX_RLIMIT_NPROC (int)
Die Höchstanzahl von Prozessen (und/oder Threads auf manchem Betriebssystemen), die für die reelle Nutzerkennung des Prozesses erzeugt werden kann.
POSIX_RLIMIT_RSS (int)
Die Höchstgröße des Resident-Sets des Prozesses (in Seiten).
POSIX_RLIMIT_RTPRIO (int)
Die maximale Echtzeitpriorität, die mit den Systemaufrufen sched_setscheduler() und sched_setparam(), eingestellt werden kann.
POSIX_RLIMIT_RTTIME (int)
Die Höchstmenge von CPU-Zeit, in Mikrosekunden, die der Prozess verbrauchen kann ohne einen blockierenden Systemaufruf durchzuführen, wenn er Echtzeit-Scheduling verwendet.
POSIX_RLIMIT_SIGPENDING (int)
Die Höchstanzahl von Signalen, die für die reelle Nutzerkennung des Prozesses in die Warteschlange eingereiht werden können.
POSIX_RLIMIT_STACK (int)
Die Maximalgröße des Pozessstacks in Bytes.
POSIX_RLIMIT_INFINITY (int)
Wird verwendet, um einen unbegrenzten Wert für eine Ressourcenlimit anzuzeigen.


POSIX Funktionen

Siehe auch

Der Abschnitt über Prozesskontroll-Funktionen könnte für Sie von Interesse sein.

Inhaltsverzeichnis

  • posix_access — Ermittelt die Zugriffsberechtigungen einer Datei
  • posix_ctermid — Liefert den Pfad des kontrollierenden Terminals
  • posix_errno — Alias von posix_get_last_error
  • posix_get_last_error — Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer
  • posix_getcwd — Pfadname des aktuellen Verzeichnisses
  • posix_getegid — Liefert die effektive Gruppen-ID des aktuellen Prozesses
  • posix_geteuid — Liefert die effektive Benutzer-ID des aktuellen Prozesses
  • posix_getgid — Liefert die reale Gruppen-ID des aktuellen Prozesses
  • posix_getgrgid — Liefert zu einer Gruppen-ID Informationen über diese Gruppe
  • posix_getgrnam — Liefert zu einem Gruppennamen Informationen über diese Gruppe
  • posix_getgroups — Liefert die Gruppenliste des aktuellen Prozesses
  • posix_getlogin — Liefert den Loginnamen
  • posix_getpgid — Liefert die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle
  • posix_getpgrp — Liefert die Prozessgruppenkennung des aktuellen Prozesses
  • posix_getpid — Liefert die aktuelle Prozesskennung
  • posix_getppid — Liefert die Prozesskennung des Elternprozesses
  • posix_getpwnam — Liefert zu einem Benutzernamen Informationen über diesen Benutzer
  • posix_getpwuid — Liefert zu einer Benutzer-ID Informationen über diesen Benutzer
  • posix_getrlimit — Liefert Informationen über Systemressourcen-Limits
  • posix_getsid — Liefert die aktuelle Session-ID (sid) des Prozesses
  • posix_getuid — Liefert die reale Benutzer-ID des aktuellen Prozesses
  • posix_initgroups — Ermittelt die Gruppenzugriffsliste
  • posix_isatty — Ermittelt, ob ein Dateideskriptor ein interaktives Terminal ist
  • posix_kill — Sendet einem Prozess ein Signal
  • posix_mkfifo — Erzeugt eine "FIFO special"-Datei (named pipe)
  • posix_mknod — Erzeugt eine spezielle oder eine gewöhnliche Datei (POSIX.1)
  • posix_setegid — Setzt die effektive Gruppen-ID des aktuellen Prozesses
  • posix_seteuid — Setzt die effektive Benutzer-ID des aktuellen Prozesses
  • posix_setgid — Setzt die Gruppen-ID des aktuellen Prozesses
  • posix_setpgid — Setzt die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle
  • posix_setrlimit — Set system resource limits
  • posix_setsid — Macht den aktuellen Prozess zum Prozessgruppen-Führer
  • posix_setuid — Setzt die Benutzer-ID des aktuellen Prozesses
  • posix_strerror — Liefert die System-Fehlermeldung, die zur angegebenen Fehlernummer gehört
  • posix_times — Liefert Rechenzeiten
  • posix_ttyname — Ermittelt den Namen des Terminal-Devices
  • posix_uname — Liefert Auskunft über das System


Ermittelt die Zugriffsberechtigungen einer Datei

  • « POSIX Funktionen
  • posix_ctermid »
  • PHP Manual
  • POSIX Funktionen
  • Ermittelt die Zugriffsberechtigungen einer Datei

posix_access

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

posix_access — Ermittelt die Zugriffsberechtigungen einer Datei

Beschreibung

posix_access ( string $filename , int $flags = 0 ) : bool

posix_access() überprüft, welche Zugriffsberechtigungen der Benutzer für eine Datei hat.

Parameter-Liste

filename

Der Name der zu überprüfenden Datei.

flags

Eine Maske, die aus einer oder mehr der Konstanten POSIX_F_OK, POSIX_R_OK, POSIX_W_OK und POSIX_X_OK besteht.

POSIX_R_OK, POSIX_W_OK und POSIX_X_OK fordern eine Überprüfung an, ob die Datei existiert und ob dafür Lese-, Schreib-, bzw. Ausführungsrechte vorliegen. POSIX_F_OK fordert nur eine Überprüfung der Existenz der Datei an.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 posix_access()-Beispiel

Dieses Beispiel überprüft, ob $datei gelesen und geschrieben werden darf, und gibt andernfalls eine Fehlermeldung aus.

<?php

$datei = 'irgendeine_datei';

if (posix_access($file, POSIX_R_OK | POSIX_W_OK)) {
    echo 'Die Datei darf gelesen und geschrieben werden!';

} else {
    $fehler = posix_get_last_error();

    echo "Fehler $fehler: " . posix_strerror($fehler);
}

?>

Anmerkungen

Siehe auch

  • posix_get_last_error() - Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer
  • posix_strerror() - Liefert die System-Fehlermeldung, die zur angegebenen Fehlernummer gehört


Liefert den Pfad des kontrollierenden Terminals

  • « posix_access
  • posix_errno »
  • PHP Manual
  • POSIX Funktionen
  • Liefert den Pfad des kontrollierenden Terminals

posix_ctermid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_ctermid — Liefert den Pfad des kontrollierenden Terminals

Beschreibung

posix_ctermid ( ) : string|false

Gibt den Pfadnamen des aktuell kontrollierenden Terminals des Prozesses als Zeichenkette zurück. Falls ein Fehler auftritt, wird errno (Fehlernummer) gesetzt, das mittels posix_get_last_error() abgerufen werden kann.

Rückgabewerte

Gibt bei erfolgreicher Beendigung den Pfadnamen des aktuell kontrollierenden Terminals als Zeichenkette zurück. Andernfalls wird false zurückgegeben und errno gesetzt, das mittels posix_get_last_error() überprüft werden kann.

Beispiele

Beispiel #1 posix_ctermid()-Beispiel

Dieses Beispiel gibt den Pfad zum aktuellen TTY aus.

<?php
echo "Ich laufe auf ".posix_ctermid();
?>

Siehe auch

  • posix_ttyname() - Ermittelt den Namen des Terminal-Devices
  • posix_get_last_error() - Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer


Alias von posix_get_last_error

  • « posix_ctermid
  • posix_get_last_error »
  • PHP Manual
  • POSIX Funktionen
  • Alias von posix_get_last_error

posix_errno

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

posix_errno — Alias von posix_get_last_error()

Beschreibung

Diese Funktion ist ein Alias für: posix_get_last_error().


Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer

  • « posix_errno
  • posix_getcwd »
  • PHP Manual
  • POSIX Funktionen
  • Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer

posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

posix_get_last_error — Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer

Beschreibung

posix_get_last_error ( ) : int

Gibt die Fehlernummer zurück, die von der letzten fehlgeschlagenen Posix-Funktion gesetzt wurde. Die zu errno gehörende Fehlermeldung des Systems kann mit posix_strerror() abgerufen werden.

Rückgabewerte

Gibt die errno (Fehlernummer) zurück, die von der letzten fehlgeschlagenen Posix-Funktion gesetzt wurde. Falls keine Fehler aufgetreten sind, wird 0 zurückgegeben.

Beispiele

Beispiel #1 posix_get_last_error()-Beispiel

In diesem Beispiel wird versucht, eine falsche Prozess-ID zu killen, was den letzten Fehler setzt. Anschließend lassen wir uns die Nummer des letzten Fehlers anzeigen.

<?php
posix_kill(999459,SIGKILL);
echo 'Der zurückgegebene Fehler war '.posix_get_last_error(); // Der zurückgegebene Fehler war ...
?>

Siehe auch

  • posix_strerror() - Liefert die System-Fehlermeldung, die zur angegebenen Fehlernummer gehört


Pfadname des aktuellen Verzeichnisses

  • « posix_get_last_error
  • posix_getegid »
  • PHP Manual
  • POSIX Funktionen
  • Pfadname des aktuellen Verzeichnisses

posix_getcwd

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getcwd — Pfadname des aktuellen Verzeichnisses

Beschreibung

posix_getcwd ( ) : string|false

Gibt den absoluten Pfadnamen des aktuellen Arbeitsverzeichnisses des Skripts zurück. Falls ein Fehler auftritt, wird errno (Fehlernummer) gesetzt, das mittels posix_get_last_error() abgerufen werden kann.

Rückgabewerte

Gibt bei Erfolg den absoluten Pfadnamen als Zeichenkette zurück. Falls ein Fehler auftritt, wird false zurückgegeben und errno gesetzt, das mittels posix_get_last_error() überprüft werden kann.

Beispiele

Beispiel #1 posix_getcwd()-Beispiel

Dieses Beispiel gibt den absoluten Pfad des aktuellen Arbeitsverzeichnisses des Skripts aus.

<?php
echo 'Das aktuelle Arbeitsverzeichnis ist '.posix_getcwd();
?>

Anmerkungen

Hinweis:

Diese Funktion schlägt fehl, wenn

  • es keine Lese- oder Suchberechtigung gibt
  • der Pfadname nicht mehr existiert


Liefert die effektive Gruppen-ID des aktuellen Prozesses

  • « posix_getcwd
  • posix_geteuid »
  • PHP Manual
  • POSIX Funktionen
  • Liefert die effektive Gruppen-ID des aktuellen Prozesses

posix_getegid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getegid — Liefert die effektive Gruppen-ID des aktuellen Prozesses

Beschreibung

posix_getegid ( ) : int

Gibt die effektive numerische Gruppen-ID des aktuellen Prozesses zurück.

Rückgabewerte

Gibt die effektive Gruppen-ID als int zurück.

Beispiele

Beispiel #1 posix_getegid()-Beispiel

Dieses Beispiel gibt die effektive Gruppen-ID aus, nachdem sie mittels posix_setegid() geändert wurde.

<?php
echo 'Meine reale Gruppen-ID ist '.posix_getgid(); //20
posix_setegid(40);
echo 'Meine reale Gruppen-ID ist '.posix_getgid(); //20
echo 'Meine effektive Gruppen-ID ist '.posix_getegid(); //40
?>

Anmerkungen

posix_getegid() unterscheidet sich von
posix_getgid() insofern, dass die effektive Gruppen-ID
durch einen aufrufenden Prozess, der posix_setegid()
verwendet, geändert werden kann.

Siehe auch

  • posix_getgrgid() - Liefert zu einer Gruppen-ID Informationen über diese Gruppe
  • posix_getgid() - Liefert die reale Gruppen-ID des aktuellen Prozesses
  • posix_setgid() - Setzt die Gruppen-ID des aktuellen Prozesses


Liefert die effektive Benutzer-ID des aktuellen Prozesses

  • « posix_getegid
  • posix_getgid »
  • PHP Manual
  • POSIX Funktionen
  • Liefert die effektive Benutzer-ID des aktuellen Prozesses

posix_geteuid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_geteuid — Liefert die effektive Benutzer-ID des aktuellen Prozesses

Beschreibung

posix_geteuid ( ) : int

Gibt die effektive numerische Benutzer-ID des aktuellen Prozesses zurück. Für Informationen darüber, wie die Benutzer-ID in einen gebräuchlichen Benutzernamen umgewandelt werden kann, siehe auch posix_getpwuid().

Rückgabewerte

Gibt die Benutzer-ID als int zurück.

Beispiele

Beispiel #1 posix_geteuid()-Beispiel

Dieses Beispiel gibt die aktuelle Benutzer-ID aus, setzt danach die effektive Benutzer-ID mittels posix_seteuid() auf eine andere ID und zeigt dann anhand von realer und effektiver ID den Unterschied.

<?php
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10001
posix_seteuid(10000);
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10000
?>

Siehe auch

  • posix_getpwuid() - Liefert zu einer Benutzer-ID Informationen über diesen Benutzer
  • posix_getuid() - Liefert die reale Benutzer-ID des aktuellen Prozesses
  • posix_setuid() - Setzt die Benutzer-ID des aktuellen Prozesses
  • POSIX GETEUID(2)-Manpage


Liefert die reale Gruppen-ID des aktuellen Prozesses

  • « posix_geteuid
  • posix_getgrgid »
  • PHP Manual
  • POSIX Funktionen
  • Liefert die reale Gruppen-ID des aktuellen Prozesses

posix_getgid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getgid — Liefert die reale Gruppen-ID des aktuellen Prozesses

Beschreibung

posix_getgid ( ) : int

Gibt die reale numerische Gruppen-ID des aktuellen Prozesses zurück.

Rückgabewerte

Gibt die reale Gruppen-ID als int zurück.

Beispiele

Beispiel #1 posix_getgid()-Beispiel

Dieses Beispiel gibt auch nach Änderung der effektiven Gruppen-ID die reale Gruppen-ID aus.

<?php
echo 'Meine reale Gruppen-ID ist '.posix_getgid(); //20
posix_setegid(40);
echo 'Meine reale Gruppen-ID ist '.posix_getgid(); //20
echo 'Meine effektive Gruppen-ID ist '.posix_getegid(); //40
?>

Siehe auch

  • posix_getgrgid() - Liefert zu einer Gruppen-ID Informationen über diese Gruppe
  • posix_getegid() - Liefert die effektive Gruppen-ID des aktuellen Prozesses
  • posix_setgid() - Setzt die Gruppen-ID des aktuellen Prozesses
  • POSIX GETGID(2)-Manpage


Liefert zu einer Gruppen-ID Informationen über diese Gruppe

  • « posix_getgid
  • posix_getgrnam »
  • PHP Manual
  • POSIX Funktionen
  • Liefert zu einer Gruppen-ID Informationen über diese Gruppe

posix_getgrgid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getgrgid — Liefert zu einer Gruppen-ID Informationen über diese Gruppe

Beschreibung

posix_getgrgid ( int $group_id ) : array|false

Gibt Informationen über die Gruppe mit der angegebenen ID zurück.

Parameter-Liste

group_id

Die Gruppen-ID

Rückgabewerte

Die Elemente des zurückgegebenen Arrays sind:

Das Array mit Gruppeninformationen
Element | Beschreibung
name | Das name-Element enthält den Namen der Gruppe. Es handelt sich dabei nicht um den wirklichen, kompletten Namen, sondern um einen kurzen "Bezeichner" der Gruppe mit normalerweise weniger als 16 Zeichen.
passwd | Das passwd-Element enthält das Passwort der Gruppe in verschlüsselter Form. Häufig, zum Beispiel wenn auf einem System "shadow"-Passwörter verwendet werden, wird stattdessen ein Sternchen zurückgegeben.
gid | Die Gruppen-ID - sollte dieselbe sein wie der Parameter group_id, der beim Aufruf der Funktion verwendet wurde und ist von daher redundant.
members | Besteht aus einem Array von Zeichenketten aller Gruppenmitglieder.
Falls ein Fehler auftritt, gibt die Funktion false zurück.

Beispiele

Beispiel #1 Beispiel zur Verwendung von posix_getgrgid()

<?php

$gruppenid   = posix_getegid();
$gruppeninfo = posix_getgrgid($gruppenid);

print_r($gruppeninfo);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Siehe auch

  • posix_getegid() - Liefert die effektive Gruppen-ID des aktuellen Prozesses
  • posix_getgrnam() - Liefert zu einem Gruppennamen Informationen über diese Gruppe
  • filegroup() - Liefert die Gruppenzugehörigkeit einer Datei
  • stat() - Sammelt Informationen über eine Datei
  • POSIX GETGRNAM(3)-Manpage


Liefert zu einem Gruppennamen Informationen über diese Gruppe

  • « posix_getgrgid
  • posix_getgroups »
  • PHP Manual
  • POSIX Funktionen
  • Liefert zu einem Gruppennamen Informationen über diese Gruppe

posix_getgrnam

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getgrnam — Liefert zu einem Gruppennamen Informationen über diese Gruppe

Beschreibung

posix_getgrnam ( string $name ) : array|false

Gibt Informationen über die durch Gruppenname angegebene Gruppe zurück.

Parameter-Liste

name

Der Name der Gruppe

Rückgabewerte

Gibt im Erfolgsfall ein Array zurück. Im Fehlerfall wird false zurückgegeben. Die Elemente des zurückgegebenen Arrays sind:

Das Array mit Gruppeninformationen
Element | Beschreibung
name | Das name-Element enthält den Namen der Gruppe. Es handelt sich dabei nicht um den wirklichen, kompletten Namen, sondern um einen kurzen "Bezeichner" der Gruppe mit normalerweise weniger als 16 Zeichen. Er sollte derselbe sein wie der Parameter name, der beim Aufruf der Funktion verwendet wurde und ist von daher redundant.
passwd | Das passwd-Element enthält das Passwort der Gruppe in verschlüsselter Form. Häufig, zum Beispiel wenn auf einem System "shadow"-Passwörter verwendet werden, wird stattdessen ein Sternchen zurückgegeben.
gid | Die Gruppen-ID in numerischem Format
members | Besteht aus einem Array von Strings aller Gruppenmitglieder.

Beispiele

Beispiel #1 Beispiel für die Verwendung von posix_getgrnam()

<?php

$gruppeninfo = posix_getgrnam("toons");

print_r($gruppeninfo);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Siehe auch

  • posix_getegid() - Liefert die effektive Gruppen-ID des aktuellen Prozesses
  • posix_getgrgid() - Liefert zu einer Gruppen-ID Informationen über diese Gruppe
  • filegroup() - Liefert die Gruppenzugehörigkeit einer Datei
  • stat() - Sammelt Informationen über eine Datei
  • POSIX GETGRNAM(3)-Manpage


Liefert die Gruppenliste des aktuellen Prozesses

  • « posix_getgrnam
  • posix_getlogin »
  • PHP Manual
  • POSIX Funktionen
  • Liefert die Gruppenliste des aktuellen Prozesses

posix_getgroups

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getgroups — Liefert die Gruppenliste des aktuellen Prozesses

Beschreibung

posix_getgroups ( ) : array|false

Gibt die Gruppenliste des aktuellen Prozesses zurück. Im Fehlerfall wird false zurückgegeben..

Rückgabewerte

Gibt ein Array von Ganzzahlen zurück, das die numerischen Gruppen-IDs der Gruppenliste des aktuellen Prozesses enthält.

Beispiele

Beispiel #1 posix_getgroups()-Beispiel

<?php

$gruppen = posix_getgroups();

print_r($gruppen);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => 4
    [1] => 20
    [2] => 24
    [3] => 25
    [4] => 29
    [5] => 30
    [6] => 33
    [7] => 44
    [8] => 46
    [9] => 104
    [10] => 109
    [11] => 110
    [12] => 1000
)

Siehe auch

  • posix_getgrgid() - Liefert zu einer Gruppen-ID Informationen über diese Gruppe


Liefert den Loginnamen

  • « posix_getgroups
  • posix_getpgid »
  • PHP Manual
  • POSIX Funktionen
  • Liefert den Loginnamen

posix_getlogin

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getlogin — Liefert den Loginnamen

Beschreibung

posix_getlogin ( ) : string|false

Gibt den Loginnamen der Benutzerin zurück, der der aktuelle Prozess gehört.

Rückgabewerte

Gibt den Loginnamen der Benutzerin als Zeichenkette zurück. Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 posix_getlogin()-Beispiel

<?php
echo posix_getlogin(); //apache
?>

Siehe auch

  • posix_getpwnam() - Liefert zu einem Benutzernamen Informationen über diesen Benutzer
  • POSIX GETLOGIN(3)-Manpage


Liefert die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle

  • « posix_getlogin
  • posix_getpgrp »
  • PHP Manual
  • POSIX Funktionen
  • Liefert die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle

posix_getpgid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getpgid — Liefert die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle

Beschreibung

posix_getpgid ( int $process_id ) : int|false

Gibt die Prozessgruppenkennung des Prozzesses process_id zurück. Im Fehlerfall wird false zurückgegeben.

Parameter-Liste

process_id

Die Prozess-ID

Rückgabewerte

Gibt die Kennung als int zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 posix_getpgid()-Beispiel

<?php
$pid = posix_getppid();
echo posix_getpgid($pid); //35
?>

Anmerkungen

Hinweis:

Dies ist keine POSIX-Funktion, aber sie ist auf BSD- und System V-Systemen gängig. Falls Ihr System diese Funktion nicht unterstützt, wird sie während der Übersetzung nicht eingebunden. Ob es die Funktion gibt, kann mittels function_exists() überprüft werden.

Siehe auch

  • posix_getppid() - Liefert die Prozesskennung des Elternprozesses
  • SETPGID(2)-Manpage


Liefert die Prozessgruppenkennung des aktuellen Prozesses

  • « posix_getpgid
  • posix_getpid »
  • PHP Manual
  • POSIX Funktionen
  • Liefert die Prozessgruppenkennung des aktuellen Prozesses

posix_getpgrp

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getpgrp — Liefert die Prozessgruppenkennung des aktuellen Prozesses

Beschreibung

posix_getpgrp ( ) : int

Gibt die Prozessgruppenkennung des aktuellen Prozesses zurück.

Rückgabewerte

Gibt die Kennung als int zurück.

Siehe auch

  • Die POSIX.1- und die getpgrp(2)-Manpage auf dem POSIX-System um mehr Informationen über Prozessgruppen zu erhalten.


Liefert die aktuelle Prozesskennung

  • « posix_getpgrp
  • posix_getppid »
  • PHP Manual
  • POSIX Funktionen
  • Liefert die aktuelle Prozesskennung

posix_getpid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getpid — Liefert die aktuelle Prozesskennung

Beschreibung

posix_getpid ( ) : int

Gibt die Prozesskennung des aktuellen Prozesses zurück.

Rückgabewerte

Gibt die Kennung als int zurück.

Beispiele

Beispiel #1 posix_getpid()-Beispiel

<?php
echo posix_getpid(); //8805
?>

Siehe auch

  • posix_kill() - Sendet einem Prozess ein Signal
  • POSIX GETPID(2)-Manpage


Liefert die Prozesskennung des Elternprozesses

  • « posix_getpid
  • posix_getpwnam »
  • PHP Manual
  • POSIX Funktionen
  • Liefert die Prozesskennung des Elternprozesses

posix_getppid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getppid — Liefert die Prozesskennung des Elternprozesses

Beschreibung

posix_getppid ( ) : int

Diese Funktion gibt die Prozesskennung des Elternprozesses des aktuellen Prozesses zurück.

Rückgabewerte

Gibt die Kennung als int zurück.

Beispiele

Beispiel #1 posix_getppid()-Beispiel

<?php
echo posix_getppid(); //8259
?>


Liefert zu einem Benutzernamen Informationen über diesen Benutzer

  • « posix_getppid
  • posix_getpwuid »
  • PHP Manual
  • POSIX Funktionen
  • Liefert zu einem Benutzernamen Informationen über diesen Benutzer

posix_getpwnam

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getpwnam — Liefert zu einem Benutzernamen Informationen über diesen Benutzer

Beschreibung

posix_getpwnam ( string $username ) : array|false

Gibt ein Array mit Informationen über den angegebenen Benutzer zurück.

Parameter-Liste

username

Ein alphanumerischer Benutzername

Rückgabewerte

Bei Erfolg wird ein Array mit den folgenden Elementen zurückgegeben, andernfalls false:

Das Benutzerinformation-Array
Element | Beschreibung
name | Das name-Element enthält den Benutzernamen. Es handelt sich dabei nicht um den wirklichen, kompletten Namen, sondern um einen kurzen "Bezeichner" des Benutzers mit normalerweise weniger als 16 Zeichen. Der Benutzername sollte derselbe wie der bei Aufruf der Funktion verwendete Parameter username sein und ist von daher redundant.
passwd | Das passwd-Element enthält das verschlüsselte Passwort des Benutzers. Häufig, 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 des Benutzers. 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 des Benutzers verfügbar.
dir | Dieses Element enthält den absoluten Pfad des Homeverzeichnisses des Benutzers.
shell | Das shell-Element enthält den absoluten Pfad zur standardmäßigen Shell des Benutzers.

Beispiele

Beispiel #1 posix_getpwnam()-Beispiel

<?php

$benutzerinfo = posix_getpwnam("tom");

print_r($benutzerinfo);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [gecos]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

Siehe auch

  • posix_getpwuid() - Liefert zu einer Benutzer-ID Informationen über diesen Benutzer
  • POSIX GETPWNAM(3)-Manpage


Liefert zu einer Benutzer-ID Informationen über diesen Benutzer

  • « posix_getpwnam
  • posix_getrlimit »
  • PHP Manual
  • POSIX Funktionen
  • Liefert zu einer Benutzer-ID Informationen über diesen Benutzer

posix_getpwuid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getpwuid — Liefert zu einer Benutzer-ID Informationen über diesen Benutzer

Beschreibung

posix_getpwuid ( int $user_id ) : array|false

Gibt ein Array mit Informationen über den Benutzer zurück, auf die die angegebene ID verweist.

Parameter-Liste

user_id

Die Benutzerkennung

Rückgabewerte

Gibt ein assoziatives Array mit den folgenden Elementen zurück:

Das Benutzerinformation-Array
Element | Beschreibung
name | Das name-Element enthält den Benutzernamen. Es handelt sich dabei nicht um den wirklichen, kompletten Namen, sondern um einen kurzen "Bezeichner" des Benutzers mit normalerweise weniger als 16 Zeichen.
passwd | Das passwd-Element enthält das verschlüsselte Passwort des Benutzers. Häufig, 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 user_id sein und ist von daher redundant.
gid | Die Gruppen-ID des Benutzers. 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 des Benutzers, der Telefonnummer des Büros, der Zimmernummer des Büros und der privaten Telefonnummer. Auf den meisten Systemen ist nur der komplette Name des Benutzers verfügbar.
dir | Dieses Element enthält den absoluten Pfad des Homeverzeichnisses des Benutzers.
shell | Das shell-Element enthält den absoluten Pfad zur standardmäßigen Shell des Benutzers.
Falls ein Fehler auftritt, gibt die Funktion false zurück.

Beispiele

Beispiel #1 posix_getpwuid()-Beispiel

<?php

$benutzerinfo = posix_getpwuid(10000);

print_r($benutzerinfo);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [gecos]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

Siehe auch

  • posix_getpwnam() - Liefert zu einem Benutzernamen Informationen über diesen Benutzer
  • POSIX GETPWNAM(3)-Manpage


Liefert Informationen über Systemressourcen-Limits

  • « posix_getpwuid
  • posix_getsid »
  • PHP Manual
  • POSIX Funktionen
  • Liefert Informationen über Systemressourcen-Limits

posix_getrlimit

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getrlimit — Liefert Informationen über Systemressourcen-Limits

Beschreibung

posix_getrlimit ( ) : array|false

posix_getrlimit() gibt ein Array mit Informationen über die aktuellen weichen und harten Limits der Ressourcen zurück.

Zu jeder Ressource gehören ein weiches und ein hartes Limit. Das weiche Limit ist der Wert, den der Kernel für die entsprechende Ressource geltend macht. Das harte Limit fungiert als Obergrenze für das weiche Limit. Ein unprivilegierter Prozess kann nur sein weiches Limit auf einen Wert im Bereich von 0 bis zum harten Limit setzen und sein hartes Limit unumkehrbar absenken.

Rückgabewerte

Gibt ein assioziatives Array mit Elementen für jedes definierte Limit zurück. Jede Ressource hat ein weiches und ein hartes Limit.

Liste möglicher Limits, die zurückgegeben werden
Name des Limits | Beschreibung des Limits
core | Die maximale Größe der Core-Datei. 0 bedeutet, dass keine Core-Datei angelegt wird. Wenn Core-Dateien diese Größe überschreiten, werden sie auf diese Größe abgeschnitten.
totalmem | Die maximale Größe des Speichers für den Prozess in Bytes.
virtualmem | Die maximale Größe des virtuellen Speichers für den Prozess in Bytes.
data | Die maximale Größe des Datensegments für den Prozess in Bytes.
stack | Die maximale Stackgröße des Prozesses in Bytes.
rss | Die maximale Anzahl virtueller Speicherseiten, die im RAM resident sind.
maxproc | Die maximale Anzahl von Prozessen, die für die reale Benutzer-ID des aufrufenden Prozesses erzeugt werden können.
memlock | Die maximale Anzahl Bytes, die im RAM blockiert werden können.
cpu | Die Zeit, die ein Prozess die CPU benutzen darf.
filesize | Die maximale Größe des Datensegments für den Prozess in Bytes.
openfiles | Einer mehr als die maximale Anzahl offener Dateideskriptoren.
Falls ein Fehler auftritt, gibt die Funktion false zurück.

Beispiele

Beispiel #1 posix_getrlimit()-Beispiel

<?php

$limits = posix_getrlimit();

print_r($limits);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [soft core] => 0
    [hard core] => unlimited
    [soft data] => unlimited
    [hard data] => unlimited
    [soft stack] => 8388608
    [hard stack] => unlimited
    [soft totalmem] => unlimited
    [hard totalmem] => unlimited
    [soft rss] => unlimited
    [hard rss] => unlimited
    [soft maxproc] => unlimited
    [hard maxproc] => unlimited
    [soft memlock] => unlimited
    [hard memlock] => unlimited
    [soft cpu] => unlimited
    [hard cpu] => unlimited
    [soft filesize] => unlimited
    [hard filesize] => unlimited
    [soft openfiles] => 1024
    [hard openfiles] => 1024
)

Siehe auch

  • GETRLIMIT(2)-Manpage
  • posix_setrlimit() - Set system resource limits


Liefert die aktuelle Session-ID (sid) des Prozesses

  • « posix_getrlimit
  • posix_getuid »
  • PHP Manual
  • POSIX Funktionen
  • Liefert die aktuelle Session-ID (sid) des Prozesses

posix_getsid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getsid — Liefert die aktuelle Session-ID (sid) des Prozesses

Beschreibung

posix_getsid ( int $process_id ) : int|false

Gibt die Session-ID des Prozesses process_id zurück. Die Session-ID eines Prozesses ist die Prozessgruppen-ID des Session-Managers.

Parameter-Liste

process_id

Die Prozesskennung. Falls sie auf 0 gesetzt ist, wird der aktuelle Prozess angenommen. Falls eine ungültige process_id angegeben wurde, wird false zurückgegeben und ein Fehler gesetzt, der mittels posix_get_last_error() überprüft werden kann.

Rückgabewerte

Gibt die Kennung als int zurück.

Beispiele

Beispiel #1 posix_getsid()-Beispiel

<?php
$pid = posix_getpid();
echo posix_getsid($pid); //8805
?>

Siehe auch

  • posix_getpgid() - Liefert die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle
  • posix_setsid() - Macht den aktuellen Prozess zum Prozessgruppen-Führer
  • POSIX GETSID(2)-Manpage


Liefert die reale Benutzer-ID des aktuellen Prozesses

  • « posix_getsid
  • posix_initgroups »
  • PHP Manual
  • POSIX Funktionen
  • Liefert die reale Benutzer-ID des aktuellen Prozesses

posix_getuid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getuid — Liefert die reale Benutzer-ID des aktuellen Prozesses

Beschreibung

posix_getuid ( ) : int

Gibt die reale numerische Benutzer-ID des aktuellen Prozesses zurück.

Rückgabewerte

Gibt die Kennung als int zurück.

Beispiele

Beispiel #1 posix_getuid()-Beispiel

<?php
echo posix_getuid(); //10000
?>

Siehe auch

  • posix_getpwuid() - Liefert zu einer Benutzer-ID Informationen über diesen Benutzer
  • POSIX GETUID(2)-Manpage


Ermittelt die Gruppenzugriffsliste

  • « posix_getuid
  • posix_isatty »
  • PHP Manual
  • POSIX Funktionen
  • Ermittelt die Gruppenzugriffsliste

posix_initgroups

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

posix_initgroups — Ermittelt die Gruppenzugriffsliste

Beschreibung

posix_initgroups ( string $username , int $group_id ) : bool

Ermittelt die Gruppenzugriffsliste für den in username angegebenen Benutzer.

Parameter-Liste

username

Der Benutzer, für den die Liste ermittelt werden soll.

group_id

Üblicherweise die Gruppennummer aus der Passwort-Datei.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • Die Unix-Manpage für initgroups(3)


Ermittelt, ob ein Dateideskriptor ein interaktives Terminal ist

  • « posix_initgroups
  • posix_kill »
  • PHP Manual
  • POSIX Funktionen
  • Ermittelt, ob ein Dateideskriptor ein interaktives Terminal ist

posix_isatty

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_isatty — Ermittelt, ob ein Dateideskriptor ein interaktives Terminal ist

Beschreibung

posix_isatty ( resource|int $file_descriptor ) : bool

Ermittelt, ob der Dateideskriptor file_descriptor auf ein gültiges terminalartiges Gerät verweist.

Parameter-Liste

fd

Der Datei-Deskriptor, welcher entweder eine Datei-resource oder ein int sein sollte. Ist dies ein int so wird davon ausgegangen, dass es sich um einen Dateideskriptor handelt, welcher direkt an die zugrunde liegenden Systemaufrufe übergeben werden kann.

In fast allen Anwendungsfällen sollte eine Date-resource angegeben werden.

Rückgabewerte

Gibt true zurück, falls file_descriptor ein offener Deskriptor ist, der mit einem Terminal verbunden ist, und andernfalls false.

Siehe auch

  • posix_ttyname() - Ermittelt den Namen des Terminal-Devices
  • stream_isatty() - Check if a stream is a TTY


Sendet einem Prozess ein Signal

  • « posix_isatty
  • posix_mkfifo »
  • PHP Manual
  • POSIX Funktionen
  • Sendet einem Prozess ein Signal

posix_kill

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_kill — Sendet einem Prozess ein Signal

Beschreibung

posix_kill ( int $process_id , int $signal ) : bool

Sendet das Signal signal zum Prozess mit der Prozesskennung process_id.

Parameter-Liste

process_id

Die Prozesskennung

signal

Eine der PCNTL-Signalkonstanten.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • Die kill(2)-Manpage des POSIX-Systems, die zusätzliche Informationen über negative Prozess-IDs, die speziellen pid 0 und -1 und die Signalnummer 0 enthält.


Erzeugt eine "FIFO special"-Datei (named pipe)

  • « posix_kill
  • posix_mknod »
  • PHP Manual
  • POSIX Funktionen
  • Erzeugt eine "FIFO special"-Datei (named pipe)

posix_mkfifo

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_mkfifo — Erzeugt eine "FIFO special"-Datei (named pipe)

Beschreibung

posix_mkfifo ( string $filename , int $permissions ) : bool

posix_mkfifo() erzeugt eine spezielle FIFO-Datei, die im Dateisystem existiert und als bidirektionaler Kommunikationsendpunkt für Prozesse agiert.

Parameter-Liste

pfilename

Der Pfad zur FIFO-Datei.

permissions

Der zweite Parameter permissions muss in oktaler Schreibweise angegeben werden (z.B. 0644). Die Zugriffsberechtigungen des neu erzeugten FIFO hängen auch von der Einstellung der aktuellen umask() ab. Die Zugriffsberechtigungen der erzeugten Datei sind (mode & ~umask).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen


Erzeugt eine spezielle oder eine gewöhnliche Datei (POSIX.1)

  • « posix_mkfifo
  • posix_setegid »
  • PHP Manual
  • POSIX Funktionen
  • Erzeugt eine spezielle oder eine gewöhnliche Datei (POSIX.1)

posix_mknod

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

posix_mknod — Erzeugt eine spezielle oder eine gewöhnliche Datei (POSIX.1)

Beschreibung

posix_mknod ( string $filename , int $flags , int $major = 0 , int $minor = 0 ) : bool

Erzeugt eine spezielle oder eine gewöhnliche Datei.

Parameter-Liste

filename

Die zu erzeugende Datei

flags

Dieser Parameter wird zusammengesetzt aus einer bitweisen ODER-Verknüpfung zwischen dem Dateityp (eine der folgenden Konstanten: POSIX_S_IFREG, POSIX_S_IFCHR, POSIX_S_IFBLK, POSIX_S_IFIFO oder POSIX_S_IFSOCK) und den Zugriffsberechtigungen.

major

Die Major-Device-Nummer (Hauptgerätenummer); wird bei der Verwendung von S_IFCHR oder S_IFBLK benötigt.

minor

Die Minor-Device-Nummer (Untergerätenummer).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 posix_mknod()-Beispiel

<?php

$datei = '/tmp/tmpfile';  // Dateiname
$typ = POSIX_S_IFBLK;     // Dateityp
$berechtigungen = 0777;   // oktal
$major = 1;
$minor = 8;               // /dev/random

if (!posix_mknod($datei, $typ | $berechtigungen, $major, $minor)) {
    die('Fehler ' . posix_get_last_error() . ': ' . posix_strerror(posix_get_last_error()));
}

?>

Siehe auch

  • posix_mkfifo() - Erzeugt eine "FIFO special"-Datei (named pipe)


Setzt die effektive Gruppen-ID des aktuellen Prozesses

  • « posix_mknod
  • posix_seteuid »
  • PHP Manual
  • POSIX Funktionen
  • Setzt die effektive Gruppen-ID des aktuellen Prozesses

posix_setegid

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

posix_setegid — Setzt die effektive Gruppen-ID des aktuellen Prozesses

Beschreibung

posix_setegid ( int $group_id ) : bool

Setzt die effektive Gruppen-ID des aktuellen Prozesses. Es handelt sich um eine privilegierte Funktion, die entsprechende Berechtigungen (normalerweise root) auf dem System benötigt, damit sie ausgeführt werden kann.

Parameter-Liste

group_id

Die Gruppen-ID

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 posix_setegid()-Beispiel

Dieses Beispiel gibt die effektive Gruppen-ID aus, nachdem sie geändert wurde.

<?php
echo 'Meine reale Gruppen-ID ist '.posix_getgid(); //20
posix_setegid(40);
echo 'Meine reale Gruppen-ID ist '.posix_getgid(); //20
echo 'Meine effektive Gruppen-ID ist '.posix_getegid(); //40
?>

Siehe auch

  • posix_getgrgid() - Liefert zu einer Gruppen-ID Informationen über diese Gruppe
  • posix_getgid() - Liefert die reale Gruppen-ID des aktuellen Prozesses
  • posix_setgid() - Setzt die Gruppen-ID des aktuellen Prozesses


Setzt die effektive Benutzer-ID des aktuellen Prozesses

  • « posix_setegid
  • posix_setgid »
  • PHP Manual
  • POSIX Funktionen
  • Setzt die effektive Benutzer-ID des aktuellen Prozesses

posix_seteuid

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

posix_seteuid — Setzt die effektive Benutzer-ID des aktuellen Prozesses

Beschreibung

posix_seteuid ( int $user_id ) : bool

Setzt die effektive Benutzer-ID des aktuellen Prozesses. Es handelt sich um eine privilegierte Funktion, die entsprechende Berechtigungen (normalerweise root) auf dem System benötigt, damit sie ausgeführt werden kann.

Parameter-Liste

user_id

Die Benutzer-ID

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • posix_geteuid() - Liefert die effektive Benutzer-ID des aktuellen Prozesses
  • posix_setuid() - Setzt die Benutzer-ID des aktuellen Prozesses
  • posix_getuid() - Liefert die reale Benutzer-ID des aktuellen Prozesses


Setzt die Gruppen-ID des aktuellen Prozesses

  • « posix_seteuid
  • posix_setpgid »
  • PHP Manual
  • POSIX Funktionen
  • Setzt die Gruppen-ID des aktuellen Prozesses

posix_setgid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_setgid — Setzt die Gruppen-ID des aktuellen Prozesses

Beschreibung

posix_setgid ( int $group_id ) : bool

Setzt die reale Gruppen-ID des aktuellen Prozesses. Es handelt sich um eine privilegierte Funktion, die entsprechende Berechtigungen (normalerweise root) auf dem System benötigt, damit sie ausgeführt werden kann. Die sachgemäße Reihenfolge der Funktionsaufrufe ist zuerst posix_setgid() und zuletzt posix_setuid().

Hinweis:

Falls die Funktion von einem Superuser aufgerufen wurde, setzt sie auch die effektive Gruppen-ID.

Parameter-Liste

group_id

Die Gruppen-ID

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 posix_setgid()-Beispiel

Dieses Beispiel gibt die effektive Gruppen-ID aus, nachdem sie geändert wurde.

<?php
echo 'Meine reale Gruppen-ID ist '.posix_getgid(); //20
posix_setgid(40);
echo 'Meine reale Gruppen-ID ist '.posix_getgid(); //20
echo 'Meine effektive Gruppen-ID ist '.posix_getegid(); //40
?>

Siehe auch

  • posix_getgrgid() - Liefert zu einer Gruppen-ID Informationen über diese Gruppe
  • posix_getgid() - Liefert die reale Gruppen-ID des aktuellen Prozesses


Setzt die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle

  • « posix_setgid
  • posix_setrlimit »
  • PHP Manual
  • POSIX Funktionen
  • Setzt die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle

posix_setpgid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_setpgid — Setzt die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle

Beschreibung

posix_setpgid ( int $process_id , int $process_group_id ) : bool

Fügt den Prozess process_id der Prozessgruppe process_group_id hinzu.

Parameter-Liste

process_id

Die Prozess-ID

process_group_id

Die Prozessgruppen-ID

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • Die POSIX.1- und die setpgid(2)-Manpage auf dem POSIX-System um mehr Informationen über Prozessgruppen und Job-Kontrolle zu erhalten.


Set system resource limits

  • « posix_setpgid
  • posix_setsid »
  • PHP Manual
  • POSIX Funktionen
  • Set system resource limits

posix_setrlimit

(PHP 7, PHP 8)

posix_setrlimit — Set system resource limits

Beschreibung

posix_setrlimit ( int $resource , int $soft_limit , int $hard_limit ) : bool

posix_setrlimit() sets the soft and hard limits for a given system resource.

Zu jeder Ressource gehören ein weiches und ein hartes Limit. Das weiche Limit ist der Wert, den der Kernel für die entsprechende Ressource geltend macht. Das harte Limit fungiert als Obergrenze für das weiche Limit. Ein unprivilegierter Prozess kann nur sein weiches Limit auf einen Wert im Bereich von 0 bis zum harten Limit setzen und sein hartes Limit unumkehrbar absenken.

Parameter-Liste

resource

The resource limit constant corresponding to the limit that is being set.

soft_limit

The soft limit, in whatever unit the resource limit requires, or POSIX_RLIMIT_INFINITY.

hard_limit

The hard limit, in whatever unit the resource limit requires, or POSIX_RLIMIT_INFINITY.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • man page SETRLIMIT(2)
  • posix_getrlimit() - Liefert Informationen über Systemressourcen-Limits


Macht den aktuellen Prozess zum Prozessgruppen-Führer

  • « posix_setrlimit
  • posix_setuid »
  • PHP Manual
  • POSIX Funktionen
  • Macht den aktuellen Prozess zum Prozessgruppen-Führer

posix_setsid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_setsid — Macht den aktuellen Prozess zum Prozessgruppen-Führer

Beschreibung

posix_setsid ( ) : int

Macht den aktuellen Prozess zum Prozessgruppen-Führer.

Rückgabewerte

Gibt die Session-ID zurück oder -1 falls ein Fehler auftrat.

Siehe auch

  • Die POSIX.1- und die setsid(2)-Manpage auf dem POSIX-System um mehr Informationen über Prozessgruppen und Job-Kontrolle zu erhalten.


Setzt die Benutzer-ID des aktuellen Prozesses

  • « posix_setsid
  • posix_strerror »
  • PHP Manual
  • POSIX Funktionen
  • Setzt die Benutzer-ID des aktuellen Prozesses

posix_setuid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_setuid — Setzt die Benutzer-ID des aktuellen Prozesses

Beschreibung

posix_setuid ( int $user_id ) : bool

Setzt die Benutzer-ID des aktuellen Prozesses. Es handelt sich um eine privilegierte Funktion, die entsprechende Berechtigungen (normalerweise root) auf dem System benötigt, damit sie ausgeführt werden kann.

Parameter-Liste

user_id

Die Benutzer-ID

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 posix_setuid()-Beispiel

Dieses Beispiel gibt die aktuelle Benutzer-ID aus und setzt sie dann auf einen anderen Wert.

<?php
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10001
posix_setuid(10000);
echo posix_getuid()."\n"; //10000
echo posix_geteuid()."\n"; //10000
?>

Siehe auch

  • posix_setgid() - Setzt die Gruppen-ID des aktuellen Prozesses
  • posix_seteuid() - Setzt die effektive Benutzer-ID des aktuellen Prozesses
  • posix_getuid() - Liefert die reale Benutzer-ID des aktuellen Prozesses
  • posix_geteuid() - Liefert die effektive Benutzer-ID des aktuellen Prozesses


Liefert die System-Fehlermeldung, die zur angegebenen Fehlernummer gehört

  • « posix_setuid
  • posix_times »
  • PHP Manual
  • POSIX Funktionen
  • Liefert die System-Fehlermeldung, die zur angegebenen Fehlernummer gehört

posix_strerror

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

posix_strerror — Liefert die System-Fehlermeldung, die zur angegebenen Fehlernummer gehört

Beschreibung

posix_strerror ( int $error_code ) : string

Gibt die POSIX System-Fehlermeldung zurück, die zur angegebenen Fehlernummer error_code gehört. Der Parameter error_code kann mit posix_get_last_error() ermittelt werden.

Parameter-Liste

error_code

Die POSIX-Fehlernummer, die von posix_get_last_error() zurückgegeben wurde. Falls sie auf 0 gesetzt wird, wird die Zeichenkette "Success" zurückgegeben.

Rückgabewerte

Gibt die Fehlermeldung als Zeichenkette zurück.

Beispiele

Beispiel #1 posix_strerror()-Beispiel

In diesem Beispiel wird versucht einen Prozess zu killen, den es nicht gibt. Anschließend wird die dazugehörende Fehlermeldung ausgegeben.

<?php
posix_kill(50,SIGKILL);
echo posix_strerror(posix_get_last_error())."\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

No such process

Siehe auch

  • posix_get_last_error() - Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer


Liefert Rechenzeiten

  • « posix_strerror
  • posix_ttyname »
  • PHP Manual
  • POSIX Funktionen
  • Liefert Rechenzeiten

posix_times

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_times — Liefert Rechenzeiten

Beschreibung

posix_times ( ) : array|false

Gibt Informationen über die aktuelle Auslastung der CPU zurück.

Rückgabewerte

Gibt eine Reihe von Zahlenwerten mit Informationen über die Auslastung der CPU durch den aktuellen Prozess zurück. Die Indizes dieser Zahlenwerte sind:

  • ticks - die Anzahl von Clock-Ticks, die seit dem Reboot verstrichen sind.
  • utime - Benutzerzeit, die vom aktuellen Prozess verbraucht wurde.
  • stime - Systemzeit, die vom aktuellen Prozess verbraucht wurde.
  • cutime - Benutzerzeit, die vom aktuellen Prozess und dessen Kindprozessen verbraucht wurde.
  • cstime - Systemzeit, die vom aktuellen Prozess und dessen Kindprozessen verbraucht wurde.
Falls ein Fehler auftritt, gibt die Funktion false zurück.

Anmerkungen

Warnung

Diese Funktion arbeitet nicht verlässlich, weil sie bei großen Zeiträumen negative Werte zurückgeben könnte.

Beispiele

Beispiel #1 posix_times()-Beispiel

<?php

$zeiten = posix_times();

print_r($zeiten);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [ticks] => 25814410
    [utime] => 1
    [stime] => 1
    [cutime] => 0
    [cstime] => 0
)


Ermittelt den Namen des Terminal-Devices

  • « posix_times
  • posix_uname »
  • PHP Manual
  • POSIX Funktionen
  • Ermittelt den Namen des Terminal-Devices

posix_ttyname

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_ttyname — Ermittelt den Namen des Terminal-Devices

Beschreibung

posix_ttyname ( resource|int $file_descriptor ) : string|false

Gibt den absoluten Pfad zum aktuellen Terminal-Device, das mit dem Dateideskriptor file_descriptor geöffnet ist, als String zurück.

Parameter-Liste

fd

Der Datei-Deskriptor, welcher entweder eine Datei-resource oder ein int sein sollte. Ist dies ein int so wird davon ausgegangen, dass es sich um einen Dateideskriptor handelt, welcher direkt an die zugrunde liegenden Systemaufrufe übergeben werden kann.

In fast allen Anwendungsfällen sollte eine Date-resource angegeben werden.

Rückgabewerte

Gibt bei Erfolg den absoluten Pfad des Dateideskriptors file_descriptor als String zurück. Falls ein Fehler auftrat, wird false zurückgegeben.


Liefert Auskunft über das System

  • « posix_ttyname
  • Programmausführung »
  • PHP Manual
  • POSIX Funktionen
  • Liefert Auskunft über das System

posix_uname

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_uname — Liefert Auskunft über das System

Beschreibung

posix_uname ( ) : array|false

Gibt Informationen über das System zurück.

Posix erfordert, dass bezüglich des Formats der Werte nichts vorausgesetzt werden darf, z.B. die Annahme, dass die Versionsnummer aus drei Ziffern besteht oder bezüglich irgendetwas anderem, das von dieser Funktion zurückgegeben wird.

Rückgabewerte

Gibt eine Reihe von Daten mit Informationen über das System zurück. Die Indizes dieser Daten sind:

  • sysname - Name des Betriebssystems (z.B. Linux)
  • nodename - Name des Systems (z.B. valiant)
  • release - Release des Betriebssystems (z.B. 2.2.10)
  • version - Version des Betriebssystems (z.B. #4 Tue Jul 20 17:01:36 MEST 1999)
  • machine - Systemarchitektur (z.B. i586)
  • domainname - DNS Domainname (z.B. example.com)

domainname ist eine GNU-Erweiterung und nicht Teil von POSIX.1. Deshalb steht dieses Feld nur auf GNU-Systemen oder bei Verwendung der GNU libc zur Verfügung.

Falls ein Fehler auftritt, gibt die Funktion false zurück.

Beispiele

Beispiel #1 posix_uname()-Beispiel

<?php
$uname=posix_uname();
print_r($uname);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [sysname] => Linux
    [nodename] => funbox
    [release] => 2.6.20-15-server
    [version] => #2 SMP Sun Apr 15 07:41:34 UTC 2007
    [machine] => i686
)


Ausführung von Systemprogrammen

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Funktionen zur Programmausführung
    • escapeshellarg — Maskiert eine Zeichenkette (String), um sie als Shell-Argument benutzen zu können
    • escapeshellcmd — Maskiert Shell-Metazeichen
    • exec — Führt ein externes Programm aus
    • passthru — Führt ein externes Programm aus und zeigt dessen Ausgabe an
    • proc_close — Schließt einen Prozess, der mit proc_open gestartet wurde und gibt den Exitcode dieses Prozesses zurück
    • proc_get_status — Liefert Informationen über einen mit proc_open gestarteten Prozess
    • proc_nice — Ändert die Priorität des aktuellen Prozesses
    • proc_open — Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe
    • proc_terminate — Beendet einen von proc_open gestarteten Prozess
    • shell_exec — Führt ein Kommando auf der Shell aus und gibt den kompletten Output als String zurück
    • system — Führt ein externes Programm aus und zeigt dessen Ausgabe an


Einführung

Diese Funktionen ermöglichen die Ausführung von Befehlen auf dem System selbst und stellen Mittel zur Verfügung um solche Befehle abzusichern.

Hinweis:

Unter Windows werden alle Ausführungsfunktionen via cmd.exe aufgerufen. Daher muss der Benutzer, der diese Funktionen aufrufen will, die notwendigen Privilegien besitzen, um dieses Kommando auszuführen. Die einzige Ausnahme ist proc_open() mit der bypass_shell-Option.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Extension definierte eine process Resource die von proc_open() zurückgegeben wird.


  • « Ressource-Typen
  • Funktionen zur Programmausführung »
  • PHP Manual
  • Programmausführung
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Funktionen zur Programmausführung

Anmerkungen

Warnung

Offene Dateien mit einem Lock (speziell offene Sessions) sollten geschlossen werden, bevor ein Programm im Hintergrund ausgeführt wird.

Siehe auch

Diese Funktionen stehen in enger Beziehung zum Backtick-Operator.

Inhaltsverzeichnis

  • escapeshellarg — Maskiert eine Zeichenkette (String), um sie als Shell-Argument benutzen zu können
  • escapeshellcmd — Maskiert Shell-Metazeichen
  • exec — Führt ein externes Programm aus
  • passthru — Führt ein externes Programm aus und zeigt dessen Ausgabe an
  • proc_close — Schließt einen Prozess, der mit proc_open gestartet wurde und gibt den Exitcode dieses Prozesses zurück
  • proc_get_status — Liefert Informationen über einen mit proc_open gestarteten Prozess
  • proc_nice — Ändert die Priorität des aktuellen Prozesses
  • proc_open — Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe
  • proc_terminate — Beendet einen von proc_open gestarteten Prozess
  • shell_exec — Führt ein Kommando auf der Shell aus und gibt den kompletten Output als String zurück
  • system — Führt ein externes Programm aus und zeigt dessen Ausgabe an


Maskiert eine Zeichenkette (String), um sie als Shell-Argument benutzen zu können

  • « Funktionen zur Programmausführung
  • escapeshellcmd »
  • PHP Manual
  • Funktionen zur Programmausführung
  • Maskiert eine Zeichenkette (String), um sie als Shell-Argument benutzen zu können

escapeshellarg

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

escapeshellarg — Maskiert eine Zeichenkette (String), um sie als Shell-Argument benutzen zu können

Beschreibung

escapeshellarg ( string $arg ) : string

escapeshellarg() fügt einfache Anführungszeichen um eine Zeichenkette herum ein und maskiert alle existierenden einfachen Anführungszeichen innerhalb der Zeichenkette und ermöglicht es so die Zeichenkette direkt als Argument einer Shell-Funktion zu verwenden so dass es als ein einziges Argument interpretiert wird. Die Funktion sollte benutzt werden um aus Benutzereingaben stammende Argumente an Shell-Funktionen weiterzugeben. Zu den Shell-Funktionen zählen unter anderem exec(), system() und der Backtick Operator.

Unter Windows ersetzt escapeshellarg() statt dessen Prozentzeichen, Ausrufezeichen (verzögerte Variablenersetzung) und doppelte Anführungszeichen mit Leerzeichen, und schließt die Zeichenkette in doppelte Anführungszeichen ein.

Parameter-Liste

arg

Die zu maskierende Zeichenkette.

Rückgabewerte

Die maskierte Zeichenkette.

Beispiele

Beispiel #1 escapeshellarg() Beispiel

<?php
system('ls '.escapeshellarg($dir));
?>

Changelog

Version | Beschreibung
5.4.43, 5.5.27, 5.6.11 | Ausrufezeichen werden nun durch Leerzeichen ersetzt.

Siehe auch

  • escapeshellcmd() - Maskiert Shell-Metazeichen
  • exec() - Führt ein externes Programm aus
  • popen() - Öffnet einen Prozesszeiger
  • system() - Führt ein externes Programm aus und zeigt dessen Ausgabe an
  • backtick operator


Maskiert Shell-Metazeichen

  • « escapeshellarg
  • exec »
  • PHP Manual
  • Funktionen zur Programmausführung
  • Maskiert Shell-Metazeichen

escapeshellcmd

(PHP 4, PHP 5, PHP 7, PHP 8)

escapeshellcmd — Maskiert Shell-Metazeichen

Beschreibung

escapeshellcmd ( string $command ) : string

escapeshellcmd() maskiert alle möglichen Zeichen in einer Zeichenkette, die dazu benutzt werden könnten, um einen Shellbefehl zur Durchführung von willkürlichen Befehlen zu veranlassen. Diese Funktion sollte verwendet werden um sicherzustellen, dass alle Daten aus einer Benutzereingabe maskiert werden bevor diese Daten zu einer der Funktionen exec(), system() oder dem Backtick Operator übergeben werden

Folgende Zeichen wird ein Backslash vorangestellt: &#;`|*?~<>^()[]{}$\, \x0A und \xFF. ' und " werden nur maskiert, wenn sie nicht gepaart auftreten. Unter Windows wird all diesen Zeichen sowie % und ! ein Caret-Zeichen (^) vorangestellt.

Parameter-Liste

command

Das zu maskierende Kommando.

Rückgabewerte

Die maskierte Zeichenkette.

Beispiele

Beispiel #1 escapeshellcmd() Beispiel

<?php
// Wir erlauben hier absichtlich eine beliebige Anzahl von Argumenten
$command = './configure '.$_POST['configure_options'];

$escaped_command = escapeshellcmd($command);

system($escaped_command);
?>

Warnung

escapeshellcmd() sollte auf die gesamte Kommando-Zeichenkette angewendet werden, und erlaubt dem Angreifer dennoch eine beliebige Anzahl von Argumenten zu übergeben. Um einzelne Argumente zu maskieren, sollte statt dessen escapeshellarg() verwendet werden.

Changelog

Version | Beschreibung
5.4.43, 5.5.27, 5.6.11 | Ausrufezeichen werden durch Leerzeichen ersetzt.
5.3.0 | Unter Windows werden die Sonderzeichen nun ordnungsgemäß maskiert. Zuvor wurden sie durch ein Leerzeichen ersetzt.

Siehe auch

  • escapeshellarg() - Maskiert eine Zeichenkette (String), um sie als Shell-Argument benutzen zu können
  • exec() - Führt ein externes Programm aus
  • popen() - Öffnet einen Prozesszeiger
  • system() - Führt ein externes Programm aus und zeigt dessen Ausgabe an
  • Backtick Operator


Führt ein externes Programm aus

  • « escapeshellcmd
  • passthru »
  • PHP Manual
  • Funktionen zur Programmausführung
  • Führt ein externes Programm aus

exec

(PHP 4, PHP 5, PHP 7, PHP 8)

exec — Führt ein externes Programm aus

Beschreibung

exec ( string $command , array &$output = ? , int &$return_var = ? ) : string

exec() führt einen angegebenen Befehl (command) aus.

Parameter-Liste

command

Der auszuführende Befehl

output

Ist der Parameter output angegeben, wird dieses mit jeder Zeile der Befehlsausgabe gefüllt. Am Ende einer jeweiligen Zeile stehende Whitespaces wie beispielsweise ein \n wird nicht in dieses Array übernommen. Beachten Sie, dass wenn das Array bereits Elemente enthält, die Funktion exec() die Ausgabe an das Array anhängt. Wenn Sie dieses nicht wünschen, rufen Sie die Funktion unset () für das Array auf, bevor Sie es als Parameter der Funktion exec() übergeben.

return_var

Ist der Parameter return_var zusammen mit dem Parameter output angegeben, so wird der Rückgabestatus des ausgeführten Befehls in diese Variable geschrieben.

Rückgabewerte

Die letzte Zeile der Ausgabe des Befehls. Wenn ein Befehl ausgeführt werden muss und alle Daten des Befehls direkt ohne Umweg über ein Array ausgegeben werden soll, kann die Funktion passthru() verwendet werden.

Um die Ausgabe des ausgeführten befehls zu erhalten muss sichergestellt werden, dass der Parameter output gesetzt und verwendet wird.

Beispiele

Beispiel #1 Ein exec()-Beispiel

<?php
// Gibt den Benutzernamen aus, unter dem der PHP/HTTPD-Prozess läuft
// (auf einem System in dem das Programm "whoami" im Ausführungspfad liegt)
echo exec('whoami');
?>

Anmerkungen

Warnung

Falls Sie es erlauben, dass Daten von Usereingaben an diese Funktion weitergereicht werden, sollten Sie escapeshellarg() oder escapeshellcmd() verwenden. Bei Verwendung dieser Funktionen stellen Sie sicher, dass kein Benutzer Ihr System überlisten kann, beliebige Kommandos auszuführen

Hinweis:

Falls Sie diese Funktion benutzen, um ein Programm zu starten und im Hintergrund weiterlaufen lassen möchten, müssen Sie sicherstellen, dass die Ausgabe des Programms in eine Datei oder einen anderen Ausgabestream umgeleitet wird. Anderenfalls wird PHP solange hängen, bis das Programm zu Ende ausgeführt wurde.

Hinweis:

Unter Windows startet exec() zunächst cmd.exe um das Kommande auszuführen. Um ein externes Programm auszuführen ohne zuvor cmd.exe zu starten, sollte proc_open() mit der Option bypass_shell verwendet werden.

Siehe auch

  • system() - Führt ein externes Programm aus und zeigt dessen Ausgabe an
  • passthru() - Führt ein externes Programm aus und zeigt dessen Ausgabe an
  • escapeshellcmd() - Maskiert Shell-Metazeichen
  • pcntl_exec() - Führt ein angegebenes Programm im aktuellen Prozessraum aus
  • backtick operator


Führt ein externes Programm aus und zeigt dessen Ausgabe an

  • « exec
  • proc_close »
  • PHP Manual
  • Funktionen zur Programmausführung
  • Führt ein externes Programm aus und zeigt dessen Ausgabe an

passthru

(PHP 4, PHP 5, PHP 7, PHP 8)

passthru — Führt ein externes Programm aus und zeigt dessen Ausgabe an

Beschreibung

passthru ( string $command , int &$return_var = ? ) : void

Die Funktion passthru() ähnelt der Funktion exec(), da sie ebenfalls ein command ausführt. Diese Funktion sollte anstelle von exec() bzw. system() verwendet werden, wenn die Ausgabe des Unixkommandos binäre Daten erzeugt, die direkt an den Browser zurückgegeben werden sollen. Ein praktisches Beispiel hierfür ist die Ausführung des pbmplus-Utilities, welches einen Bildstream direkt ausgibt. Wenn Sie den Content-Type auf image/gif setzen und dann das pbmplus-Programm aufrufen, um ein GIF zu erzeugen, können Sie auf diesem Weg mittels PHP direkt ein Bild erzeugen und ausgeben.

Parameter-Liste

command

Das auszuführende Programm.

return_var

Ist der Parameter return_var angegeben, wird der Rückgabestatus des UNIX-Befehls hier abgelegt.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Anmerkungen

Warnung

Falls Sie es erlauben, dass Daten von Usereingaben an diese Funktion weitergereicht werden, sollten Sie escapeshellarg() oder escapeshellcmd() verwenden. Bei Verwendung dieser Funktionen stellen Sie sicher, dass kein Benutzer Ihr System überlisten kann, beliebige Kommandos auszuführen

Hinweis:

Falls Sie diese Funktion benutzen, um ein Programm zu starten und im Hintergrund weiterlaufen lassen möchten, müssen Sie sicherstellen, dass die Ausgabe des Programms in eine Datei oder einen anderen Ausgabestream umgeleitet wird. Anderenfalls wird PHP solange hängen, bis das Programm zu Ende ausgeführt wurde.

Siehe auch

  • exec() - Führt ein externes Programm aus
  • system() - Führt ein externes Programm aus und zeigt dessen Ausgabe an
  • popen() - Öffnet einen Prozesszeiger
  • escapeshellcmd() - Maskiert Shell-Metazeichen
  • Backtick-Operator


Schließt einen Prozess, der mit proc_open gestartet wurde und gibt den Exitcode dieses Prozesses zurück

  • « passthru
  • proc_get_status »
  • PHP Manual
  • Funktionen zur Programmausführung
  • Schließt einen Prozess, der mit proc_open gestartet wurde und gibt den Exitcode dieses Prozesses zurück

proc_close

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

proc_close — Schließt einen Prozess, der mit proc_open() gestartet wurde und gibt den Exitcode dieses Prozesses zurück

Beschreibung

proc_close ( resource $process ) : int

proc_close() entspricht pclose(), außer dass Die Funktion nur mit Prozessen arbeitet, die von proc_open() gestartet wurden. proc_close() wartet auf den zu beendenden Prozess und gibt seinen Exitcode zurück. Offene Pipes zu diesem Prozess werden geschlossen, wenn diese Funktion aufgerufen wird, um Deadlocks vorzubeugen - der Child-Prozess kann sich nicht beenden, solange noch Pipes geöffnet sind.

Parameter-Liste

process

Die zu schließende proc_open()-Ressource.

Rückgabewerte

Gibt den Termination-Status des gelaufenen Prozesses zurück. Falls ein Fehler auftritt wird -1 zurückgegeben.

Hinweis:

Falls PHP mit der Option --enable-sigchild kompiliert wurde, ist die Rückgabe dieser Funktion nicht definiert.


Liefert Informationen über einen mit proc_open gestarteten Prozess

  • « proc_close
  • proc_nice »
  • PHP Manual
  • Funktionen zur Programmausführung
  • Liefert Informationen über einen mit proc_open gestarteten Prozess

proc_get_status

(PHP 5, PHP 7, PHP 8)

proc_get_status — Liefert Informationen über einen mit proc_open() gestarteten Prozess

Beschreibung

proc_get_status ( resource $process ) : array

proc_get_status() liefert Daten über einen Prozess, der unter Verwendung von proc_open() gestartet wurde.

Parameter-Liste

process

Die zu untersuchende proc_open()-Ressource.

Rückgabewerte

Im Erfolgsfall wird ein Array der gesammelten Informationen zurückgeliefert, im Fehlerfall false. Das zurückgegebene Array enthält die folgenden Elemente:

Element | Typ | Beschreibung
command | string | Der Kommandostring, der an proc_open() übergeben wurde.
pid | int | ProzessID
running | bool | Ist true, wenn der Prozess noch läuft, und false wenn er beendet wurde.
signaled | bool | Ist true, wenn der Child-Prozess durch ein nicht erkanntes Signal beendet wurde. Unter Windows hat das Element immer den Wert false.
stopped | bool | Ist true, wenn der Child-Prozess durch ein Signal gestoppt wurde. Unter Windows hat das Element immer den Wert false.
exitcode | int | Der Exitcode, der vom Prozess zurückgegeben wurde (dieser ist nur aussagekräftig, wenn running false ist). Nur der erste Aufruf der Funktion gibt den richtigen Wert zurück, alle weiteren Aufrufe resultieren im Wert -1.
termsig | int | Die Signalnummer die den Child-Prozess veranlasst hat, seine Ausführung abzubrechen (nur aussagekräftig, wenn signaled true ist).
stopsig | int | Die Signalnummer, die den Child-Prozess veranlasst hat, seine Ausführung zu stoppen (nur aussagekräftig, wenn stopped true ist).

Siehe auch

  • proc_open() - Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe


Ändert die Priorität des aktuellen Prozesses

  • « proc_get_status
  • proc_open »
  • PHP Manual
  • Funktionen zur Programmausführung
  • Ändert die Priorität des aktuellen Prozesses

proc_nice

(PHP 5, PHP 7, PHP 8)

proc_nice — Ändert die Priorität des aktuellen Prozesses

Beschreibung

proc_nice ( int $increment ) : bool

proc_nice() ändert die Priorität des aktuellen Prozesses um den in increment angegebenen Betrag. Ein positives increment vermindert die Priorität des aktuellen Prozesses, während ein negatives increment die Priorität erhöht.

proc_nice() ist in keinster Weise verwandt mit proc_open() und der dazugehörigen Funktionen.

Parameter-Liste

increment

Der neue Prioritätswert; dieser Wert ist plattformabhängig.

Unter Unix bedeutet ein niedriger Wert, wie beispielsweise -20, eine hohe Priorität, wohingegen ein positiver Wert eine niedrigere Priorität hat.

Unter Windows hat der increment-Parameter die folgende Bedeutung:

Prioritätsklasse | Mögliche Werte
Hoch | increment < -9
Höher als normal | increment < -4
Normal | increment < 5 & increment > -5
Niedriger als normal | increment > 5
Niedrig | increment > 9

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Wenn ein Fehler auftritt, zum Beispiel weil der User keine Berechtigung hat, die Priorität eines Prozesses zu ändern, wird ein Fehler der Stufe E_WARNING erzeugt.

Beispiele

Beispiel #1 Verwendung von proc_nice() um die Prozesspriorität auf hoch zu setzen

<?php
// höchste Priorität
proc_nice(-20);
?>

Changelog

Version | Beschreibung
7.2.0 | Diese Funktion steht nun unter Windows zur Verfügung.

Anmerkungen

Hinweis: Verfügbarkeit

proc_nice() existiert nur, wenn Ihr System mit 'nice' umgehen kann. 'nice' ist verfügbar unter: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3.

Hinweis: Nur für Windows

proc_nice() ändert die aktuelle Prozesspriorität, selbst wenn PHP mit Threadsicherheit kompiliert wurde.


Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe

  • « proc_nice
  • proc_terminate »
  • PHP Manual
  • Funktionen zur Programmausführung
  • Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe

proc_open

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

proc_open — Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe

Beschreibung

proc_open ( mixed $cmd , array $descriptorspec , array &$pipes , string $cwd = null , array $env = null , array $other_options = null ) : resource

proc_open() ist äquivalent zu popen(), ermöglicht aber einen höheren Grad von Kontrolle über die Programmausführung.

Parameter-Liste

cmd

Das auszuführende Kommandozeile als String. Sonderzeichen müssen ordnungsgemäß maskiert, und Argumente müssen ggf. in Anführungszeichen eingeschlossen werden.

Hinweis: Unter Windows wird, falls bypass_shell in other_options nicht auf true gesetzt ist, das cmd mit dem /c Flag als nicht in Anführungszeichen eingeschlossene Zeichenkette (d.h. genau wie an proc_open() übergeben) an cmd.exe übergeben (genauer gesagt an %ComSpec%). Dies kann cmd.exe veranlassen, umschließende Anführungszeichen von cmd zu entfernen (Details sind der cmd.exe Dokumentation zu entnehmen), was zu unerwartetem, und potentiell sogar gefährlichen Verhalten führen kann, da cmd.exe Fehlermeldungen das übergebene cmd oder Teile davon enthalten können (siehe Beispiel weiter unten).

Von PHP 7.4.0 an kann cmd als Array von Kommandozeilenparametern übergeben werden. In diesem Fall wird der Prozess direkt gestartet (ohne Umweg über die Shell) und PHP kümmert sich um das nötige Maskieren von Argumenten.

Hinweis:

Unter Windows geht die Argumentenmaskierung der Array-Element davon aus, dass das Parsen der Kommandozeile des auszuführenden Kommandos kompatibel mit dem Parsen der Kommandozeile wie von der VC-Laufzeitumgebung durchgeführt ist.

descriptorspec

Ein indexiertes Array, in dem die Schlüssel die Descriptornummer und die Werte die Art und Weise repräsentieren, in der PHP die Descriptoren an die Child-Prozesse übergibt. 0 steht dabei für STDIN, 1 für STDOUT und 2 für STDERR.

Jedes Element kann sein:

  • Ein Array, das die Pipe beschreibt, die an den Prozess übergeben wird. Das erste Element ist der Descriptortyp, das zweite Element ist eine Option für den angegebenen Typ. Gültige Typen sind pipe (das zweite Element ist entweder r, um das Ende des Leseprozesses der Pipe an den Prozess zu übergeben, oder w, um das Ende des Schreibprozesses zu übergeben) und file (das zweite Element ist ein Dateiname).
  • Eine Streamressource, die einen echten Filedescriptor repräsentiert (z.B. geöffnete Dateien, Sockets, STDIN).

Die Filedescriptor-Nummern sind nicht limitiert auf 0, 1 und 2, Sie können jede gültige Filedescriptor-Nummer angeben, die an den Kindprozess übergeben wird. Dies erlaubt es Ihrem Skript, mit anderen Skripten zu interagieren, die als "Co-Prozesse" laufen. Dies ist insbesondere dann nützlich, wenn Passwörter an Programme wie PGP, GPG und openssl auf sichere Art übergeben werden sollen. Es ist ebenfalls nützlich, um Lesestatus-Informationen zu erhalten, die von diesen Programmen für zusätzliche Filedescriptoren ermittelt werden.

pipes

Enthält ein numerisches Array von Dateizeigern, die der PHP-Seite jeder erstellten Pipe entsprechen.

cwd

Das initiale Arbeitsverzeichnis des Kommandos. Dies muss ein absoluter Pfadname sein. Wenn Sie den Standardwert verwenden möchten (dies wäre das Arbeitsverzeichnis des aktuellen PHP-Prozesses), muss der Wert null sein.

env

Ein Array mit den Umgebungsvariablen für das auszuführende Kommando, oder null, wenn Sie das gleiche Environment wie der aktuelle PHP-Prozess nutzen wollen.

other_options

Erlaubt Ihnen, zusätzliche Optionen anzugeben. Derzeit unterstützte Optionen sind:

  • suppress_errors (nur unter Windows): Unterdrückt Fehlermeldungen, die durch diese Funktion hervorgerufen werden, sofern der Wert auf true gesetzt wurde.
  • bypass_shell (nur unter Windows): umgeht die cmd.exe-Shell, wenn der Wert auf true gesetzt wurde.
  • blocking_pipes (nur unter Windows): erzwingt blockierende Pipes, wenn der Wert auf true gesetzt wurde.
  • create_process_group (nur unter Windows): ermöglicht dem Kindprozess CTRL Ereignisse zu behandeln, wenn der Wert auf true gesetzt wurde.
  • create_new_console (nur unter Windows): der neue Prozess hat eine neue Konsole anstatt die Konsole des Elternprozesses zu erben

Rückgabewerte

Gibt eine Ressource zurück, die den Prozess repräsentiert, der unter Verwendung von proc_close() freigegeben werden soll, wenn Sie ihn beenden. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.4.4 | Die Option create_new_console wurde dem Parameter other_options hinzugefügt.
7.4.0 | proc_open() akzeptiert nun ebenfalls ein Array für das cmd.
7.4.0 | Die Option create_process_group wurde dem Parameter other_options hinzugefügt.
7.0.0 | Die Option blocking_pipes wurde dem Parameter other_options hinzugefügt.
5.2.1 | Die Option bypass_shell wurde dem Parameter other_options hinzugefügt.

Beispiele

Beispiel #1 Ein proc_open()-Beispiel

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),  // STDIN ist eine Pipe, von der das Child liest
   1 => array("pipe", "w"),  // STDOUT ist eine Pipe, in die das Child schreibt
   2 => array("file", "/tmp/error-output.txt", "a") // STDERR ist eine Datei,
                                                    // in die geschrieben wird
);

$cwd = '/tmp';
$env = array('some_option' => 'aeiou');

$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);

if (is_resource($process)) {
    // $pipes sieht nun so aus:
    // 0 => Schreibhandle, das auf das Child STDIN verbunden ist
    // 1 => Lesehandle, das auf das Child STDOUT verbunden ist
    // Jedwede Fehlerausgaben werden an /tmp/error-output.txt angefügt

    fwrite($pipes[0], '<?php print_r($_ENV); ?>');
    fclose($pipes[0]);

    echo stream_get_contents($pipes[1]);
    fclose($pipes[1]);

    // Es ist wichtig, dass Sie alle Pipes schließen bevor Sie
    // proc_close aufrufen, um Deadlocks zu vermeiden
    $return_value = proc_close($process);

    echo "Rückgabewert des Kommandos: $return_value\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [some_option] => aeiou
    [PWD] => /tmp
    [SHLVL] => 1
    [_] => /usr/local/bin/php
)
Rückgabewert des Kommandos: 0

Beispiel #2 proc_open()-Eigenheit unter Windows

Während man erwarten könnte, dass das folgende Program die Datei filename.txt nach dem Text suche durchsucht und die Ergebnisse ausgibt, verhält es sich ganz anders.

<?php
$descriptorspec = [STDIN, STDOUT, STDOUT];
$cmd = '"findstr" "suche" "filename.txt"';
$proc = proc_open($cmd, $descriptorspec, $pipes);
proc_close($proc);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der Befehl "findstr" "suche" "filename.txt" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Um dieses Verhalten zu vermeiden, ist es üblicherweise ausreichend das cmd in zusätzliche Anführungszeichen einzuschließen:

$cmd = '""findstr" "suche" "filename.txt""';

Anmerkungen

Hinweis:

Windows-Kompatibilität: Descriptoren höher 2 (STDERR) sind Childprozessen als vererbbare Handles verfügbar, aber da die Windows-Architektur die Nummern der Filedescriptoren nicht mit Low-Level-Handles verbindet, hat der Kindprozess (bis jetzt) keine Möglichkeit, diese Handles anzusprechen. STDIN, STDOUT und STDERR funktionieren wie erwartet.

Hinweis:

Wenn Sie nur eine unidirektionale (Einweg-)Prozesspipe benötigen, nutzen Sie besser popen(), da diese Funktion leichter zu verwenden ist.

Siehe auch

  • popen() - Öffnet einen Prozesszeiger
  • exec() - Führt ein externes Programm aus
  • system() - Führt ein externes Programm aus und zeigt dessen Ausgabe an
  • passthru() - Führt ein externes Programm aus und zeigt dessen Ausgabe an
  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
  • Der Backtick-Operator


Beendet einen von proc_open gestarteten Prozess

  • « proc_open
  • shell_exec »
  • PHP Manual
  • Funktionen zur Programmausführung
  • Beendet einen von proc_open gestarteten Prozess

proc_terminate

(PHP 5, PHP 7, PHP 8)

proc_terminate — Beendet einen von proc_open gestarteten Prozess

Beschreibung

proc_terminate ( resource $process , int $signal = 15 ) : bool

Signalisiert dem process (der mittels proc_open() gestartet wurde), dass er sich beenden soll. proc_terminate() kommt sofort zurück und wartet nicht auf den zu terminierenden Prozess.

proc_terminate() erlaubt es Ihnen, einen Prozess zu beenden und mit anderen Tasks fortzufahren. Sie können den Prozess unter Verwendung der Funktion proc_get_status() pollen (wenn Sie sehen wollen, ob er bereits beendet wurde).

Parameter-Liste

process

Die proc_open()-Ressource, die geschlossen werden soll.

signal

Dieser optionale Parameter ist nur sinnvoll auf POSIX-basierten Betriebssystemen; Sie können ein Signal angeben, das unter Verwendung des kill(2)-Systemaufrufs an den Prozess gesendet wird. Der Standardwert ist SIGTERM.

Rückgabewerte

Gibt den Terminationstatus des laufenden Prozesses zurück.

Changelog

Version | Beschreibung
5.2.2 | Ältere Versionen wurden verwendet, um das übergebene Prozesshandle resource zu zerstören.

Siehe auch

  • proc_open() - Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe
  • proc_close() - Schließt einen Prozess, der mit proc_open gestartet wurde und gibt den Exitcode dieses Prozesses zurück
  • proc_get_status() - Liefert Informationen über einen mit proc_open gestarteten Prozess


Führt ein Kommando auf der Shell aus und gibt den kompletten Output als String zurück

  • « proc_terminate
  • system »
  • PHP Manual
  • Funktionen zur Programmausführung
  • Führt ein Kommando auf der Shell aus und gibt den kompletten Output als String zurück

shell_exec

(PHP 4, PHP 5, PHP 7, PHP 8)

shell_exec — Führt ein Kommando auf der Shell aus und gibt den kompletten Output als String zurück

Beschreibung

shell_exec ( string $cmd ) : string

Diese Funktion ist identisch zum Backtick-Operator.

Hinweis:

Unter Windows wird die unterliegende Pipe im Textmodus geöffnet, was bewirken kann, dass die Funktion für binäre Ausgaben fehlschlägt. Es ist zu erwägen, statt dessen popen() für solche Fälle zu verwenden.

Parameter-Liste

cmd

Das auszuführende Kommando.

Rückgabewerte

Die Ausgabe des ausgeführten Kommandos oder null, wenn ein Fehler auftrat oder das Kommando keine Ausgabe erzeugt.

Hinweis:

Diese Funktion kann null zurückgeben, sowohl wenn ein Fehler auftritt als auch wenn das Programm keine Ausgabe erzeugt. Es ist nicht möglich mit dieser Funktion das Scheitern der Ausführung festzustellen. exec() sollte verwendet werden, wenn Zugriff auf den Exitcode des Programms erforderlich ist.

Beispiele

Beispiel #1 Ein shell_exec()-Beispiel

<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>

Siehe auch

  • exec() - Führt ein externes Programm aus
  • escapeshellcmd() - Maskiert Shell-Metazeichen


Führt ein externes Programm aus und zeigt dessen Ausgabe an

  • « shell_exec
  • parallel »
  • PHP Manual
  • Funktionen zur Programmausführung
  • Führt ein externes Programm aus und zeigt dessen Ausgabe an

system

(PHP 4, PHP 5, PHP 7, PHP 8)

system — Führt ein externes Programm aus und zeigt dessen Ausgabe an

Beschreibung

system ( string $command , int &$return_var = ? ) : string

Die Funktion system() ähnelt der C Version der Funktion sehr, indem es einen übergebenen Befehl ausführt und dessen Ausgabe anzeigt.

Wird ein system()-Funktionsaufruf durchgeführt, versucht die Funktion automatisch, nach jeder Ausgabezeile den Ausgabepuffer zu flushen, sofern PHP als Servermodul läuft.

Wenn Sie einen Befehl ausführen wollen und die erzeugten Daten ohne Behinderung direkt zurückgeben wollen, verwenden Sie stattdessen die Funktion passthru().

Parameter-Liste

command

Das auszuführende Kommando.

return_var

Ist das return_var-Argument angegeben, wird der Rückgabewert des ausgeführten Befehls in diese Variable geschrieben.

Rückgabewerte

Gibt bei Erfolg die letzte Zeile der Ausgabe des Befehls zurück, im Fehlerfall hingegen false.

Beispiele

Beispiel #1 system() example

<?php
echo '<pre>';

// Gibt das gesamte Ergebnis des Shellkommandos "ls" aus und hält als
// Rückgabewert die letzte Zeile dieser Ausgabe in $last_line. Der
// Rückgabewert des Shellkommandos wird in $retval gespeichert.
$last_line = system('ls', $retval);

// Ausgeben zusätzlicher Informationen
echo '
</pre>
<hr />Letzte Zeile der Ausgabe: ' . $last_line . '
<hr />Rückgabewert: ' . $retval;
?>

Anmerkungen

Warnung

Falls Sie es erlauben, dass Daten von Usereingaben an diese Funktion weitergereicht werden, sollten Sie escapeshellarg() oder escapeshellcmd() verwenden. Bei Verwendung dieser Funktionen stellen Sie sicher, dass kein Benutzer Ihr System überlisten kann, beliebige Kommandos auszuführen

Hinweis:

Falls Sie diese Funktion benutzen, um ein Programm zu starten und im Hintergrund weiterlaufen lassen möchten, müssen Sie sicherstellen, dass die Ausgabe des Programms in eine Datei oder einen anderen Ausgabestream umgeleitet wird. Anderenfalls wird PHP solange hängen, bis das Programm zu Ende ausgeführt wurde.

Siehe auch

  • exec() - Führt ein externes Programm aus
  • passthru() - Führt ein externes Programm aus und zeigt dessen Ausgabe an
  • popen() - Öffnet einen Prozesszeiger
  • escapeshellcmd() - Maskiert Shell-Metazeichen
  • pcntl_exec() - Führt ein angegebenes Programm im aktuellen Prozessraum aus
  • Backtick-Operator


parallel

  • Einführung
  • Installation
  • Philosophy
  • Functional API
    • parallel\bootstrap — Bootstrapping
    • parallel\run — Execution
  • parallel\Runtime — The parallel\Runtime class
    • parallel\Runtime::__construct — Runtime Construction
    • parallel\Runtime::run — Execution
    • parallel\Runtime::close — Runtime Graceful Join
    • parallel\Runtime::kill — Runtime Join
  • parallel\Future — The parallel\Future class
    • parallel\Future::cancel — Cancellation
    • parallel\Future::cancelled — State Detection
    • parallel\Future::done — State Detection
    • parallel\Future::value — Resolution
  • parallel\Channel — The parallel\Channel class
    • parallel\Channel::__construct — Channel Construction
    • parallel\Channel::make — Access
    • parallel\Channel::open — Access
    • parallel\Channel::recv — Sharing
    • parallel\Channel::send — Sharing
    • parallel\Channel::close — Closing
  • parallel\Events — The parallel\Events class
    • parallel\Events::setBlocking — Behaviour
    • parallel\Events::setTimeout — Behaviour
    • parallel\Events::setInput — Input
    • parallel\Events::addChannel — Targets
    • parallel\Events::addFuture — Targets
    • parallel\Events::remove — Targets
    • parallel\Events::poll — Polling
  • parallel\Events\Input — The parallel\Events\Input class
    • parallel\Events\Input::add — Inputs
    • parallel\Events\Input::clear — Inputs
    • parallel\Events\Input::remove — Inputs
  • parallel\Events\Event — The parallel\Events\Event class
  • parallel\Events\Event\Type — The parallel\Events\Event\Type class
  • parallel\Sync — The parallel\Sync class
    • parallel\Sync::__construct — Construction
    • parallel\Sync::get — Access
    • parallel\Sync::set — Access
    • parallel\Sync::wait — Synchronization
    • parallel\Sync::notify — Synchronization
    • parallel\Sync::__invoke — Synchronization


Einführung

parallel is a parallel concurrency extension for PHP 7.2+.

A brief description of the concepts core to parallel follows, more detailed information may be found within this section of the manual.

Runtime

A parallel\Runtime represents a PHP interpreter thread. A parallel\Runtime is configured with an optional bootstrap file passed to parallel\Runtime::__construct(), this is typically an autoloader, or some other preloading routine: The bootstrap file will be included before any task is executed.

After construction the parallel\Runtime remains available until it is closed, killed, or destroyed by the normal scoping rules of PHP objects. parallel\Runtime::run() allows the programmer to schedule tasks for execution in parallel. A parallel\Runtime has a FIFO schedule, tasks will be executed in the order that they are scheduled.

Functional API

parallel implements a functional, higher level API on top of parallel\Runtime that provides a single function entry point to executing parallel code with automatic scheduling: parallel\run().

Task

A task is simply a Closure intended for parallel execution. The Closure may contain almost any instruction, including nested closures. However, there are some instructions that are prohibited in tasks:

  • yield

  • use by-reference

  • declare class

  • declare named function

Hinweis:

Nested closures may yield or use by-reference, but must not contain class or named function declarations.

Hinweis:

No instructions are prohibited in the files which the task may include.

Future

The parallel\Future is used to access the return value from the task, and exposes an API for cancellation of the task.

Channel

A task may be scheduled with arguments, use lexical scope variables (by-value), and return a value (via a parallel\Future), but these only allow uni-directional communication: They allow the programmer to send data into and retrieve data from a task, but do not allow bi-directional communication between tasks. The parallel\Channel API allows bi-directional communication between tasks, a parallel\Channel is a socket-like link between tasks that the programmer can use to send and receive data.

Events

The parallel\Events API implements a native feel (Traversable) event loop, and parallel\Events::poll() method. It allows the programmer to work with sets of channels and or futures. The programmer simply adds channels and futures to the event loop, optionally setting the input for writes with parallel\Events::setInput(), and enters into a foreach: parallel will read from and write to objects as they become available yielding parallel\Events\Event objects describing the operations that have occurred.

Siehe auch

  • Philosophy


Installation

Anforderungen

parallel requires a build of PHP with ZTS (Zend Thread Safety) enabled ( --enable-maintainer-zts or --enable-zts on Windows )

Achtung

Zend Thread Safety cannot be enabled post build; it is a build time configuration option.

parallel should build anywhere there is a working Posix Threads header (pthread.h) and ZTS build of PHP, including Windows (using the pthread-w32 project from redhat).

Installation

parallel releases are hosted by PECL and the source code by » github, the easiest route to installation is the normal PECL route: » https://pecl.php.net/package/parallel.

Windows users can download prebuilt release binaries from the » PECL website.

Achtung

Windows users need to take the additional step of adding pthreadVC2.dll (distributed with Windows releases) to their PATH.


Philosophy

This section contains philosophies important to writing parallel code and some details about the internal implementation of parallel.

Do not communicate by sharing memory; instead, share memory by communicating.

This philosophy which is embraced by parallel has its origins in Go, one of the most widely admired if not used platforms for writing parallel code at the moment. Go programmers have to work hard to live up to this ideal: PHP and parallel do all the hard work for the programmer, and by default.

In conventional threading models found in other languages, generally threads are communicating with one another through nothing more than by virtue of the fact that they operate in the same address space. The programmer must deploy mutual exclusion, condition variables, and other low level threading or synchronization primitives in order to ensure proper communication of state and consistency.

When the conventional model is inversed, it means that threads only share memory as a result of communication (a variable is passed over a Channel for example).

When parallel passes a variable from one thread to another by any means - Task arguments, return via Future, and Channels - it is passed by value. In all but the case of unbuffered channels, the variable is also buffered so that it may not change (or be destroyed) before it is used in whichever thread the variable is being passed to. An unbuffered read over a channel is the only instance in which a thread directly reads memory allocated by another thread, it can do so safely because the thread that owns the memory is waiting for the read to complete before it can continue to manipulate it, and the thread that does not own the memory reads by value. When both threads continue, they are no longer sharing memory.

This makes writing and reasoning about parallel code much easier than the conventional model of threading. It means the programmer does not need to consider that threads may be manipulating data concurrently, because that is not possible.

This also makes PHP the perfect platform for implementing a parallel concurrency API based on CSP (message passing over channels), because PHP itself is shared nothing - PHP threads operate in their own virtual address space by default, and so may only share memory by communicating.

Data should have a definitive single owner

When approaching the CSP model for the first time, a programmer versed in the traditional model of threading may find themselves looking for concurrent data structures, because that is what they are used too: they pass around shared objects for manipulation.

When it comes to the CSP model, there is no need for data structures to be shared by many tasks, and indeed, it is simpler if they are not. The data should be owned by a single task, changes to (or operations on) that data structure should be communicated over channels and performed by the owner of the data, the success, failure, or result (state) of the change (or operation) being communicated back.

Once again the share nothing nature of PHP and copy by value nature of parallel helps the programmer to achieve this goal, no data will be shared by accident, only ever as a result of communication.


Functional API

The parallel\Runtime API provides a great degree of control to the power PHP programmer, and those intimately familiar with writing applications that use parallel concurrency.

The functional API provides less control in exchange for the ability to make decisions for the programmer:

  • all executing runtimes are bootstrapped identically

  • scheduling is determined by the API, not the programmer

parallel\run() provides the guarantee that the task will begin to execute in parallel as soon as allowed by hardware and operating system constraints, without needlessly creating runtimes. For most applications the functional API should be preferred.

Inhaltsverzeichnis

  • parallel\bootstrap — Bootstrapping
  • parallel\run — Execution


Bootstrapping

  • « Functional API
  • parallel\run »
  • PHP Manual
  • Functional API
  • Bootstrapping

parallel\bootstrap

(1.0.0)

parallel\bootstrap — Bootstrapping

Beschreibung

parallel\bootstrap ( string $file ) : void

Shall use the provided file to bootstrap all runtimes created for automatic scheduling via parallel\run().

Exceptions

Warnung

Shall throw parallel\Runtime\Error\Bootstrap if previously called for this process.

Warnung

Shall throw parallel\Runtime\Error\Bootstrap if called after parallel\run().

Siehe auch

  • parallel\Runtime::run


Execution

  • « parallel\bootstrap
  • parallel\Runtime »
  • PHP Manual
  • Functional API
  • Execution

parallel\run

(1.0.0)

parallel\run — Execution

Beschreibung

parallel\run ( Closure $task ) : Future|null

Shall schedule task for execution in parallel.

parallel\run ( Closure $task , array $argv ) : Future|null

Shall schedule task for execution in parallel, passing argv at execution time.

Automatic Scheduling

If a \parallel\Runtime internally created and cached by a previous call to parallel\run() is idle, it will be used to execute the task. If no \parallel\Runtime is idle parallel will create and cache a \parallel\Runtime.

Hinweis:

\parallel\Runtime objects created by the programmer are not used for automatic scheduling.

Parameter-Liste

task

A Closure with specific characteristics.

argv

An array of arguments with specific characteristics to be passed to task at execution time.

Task Characteristics

Closures scheduled for parallel execution must not:

  • accept or return by reference
  • accept or return internal objects (see notes)
  • execute a limited set of instructions

Instructions prohibited in Closures intended for parallel execution are:

  • yield
  • use by-reference
  • declare class
  • declare named function

Hinweis:

Nested closures may yield or use by-reference, but must not contain class or named function declarations.

Hinweis:

No instructions are prohibited in the files which the task may include.

Arguments Characteristics

Arguments must not:

  • contain references
  • contain resources
  • contain internal objects (see notes)

Hinweis:

In the case of file stream resources, the resource will be cast to the file descriptor and passed as int where possible, this is unsupported on Windows.

Internal Objects Notes

Internal objects generally use a custom structure which cannot be copied by value safely, PHP currently lacks the mechanics to do this (without serialization) and so only objects that do not use a custom structure may be shared.

Some internal objects do not use a custom structure, for example parallel\Events\Event and so may be shared.

Closures are a special kind of internal object and support being copied by value, and so may be shared.

Channels are central to writing parallel code and support concurrent access and execution by necessity, and so may be shared.

Warnung

A user class that extends an internal class may use a custom structure as defined by the internal class, in which case they cannot be copied by value safely, and so may not be shared.

Rückgabewerte

Warnung

The return parallel\Future must not be ignored when the task contains a return or throw statement.

Exceptions

Warnung

Shall throw parallel\Runtime\Error\Closed if parallel\Runtime was closed.

Warnung

Shall throw parallel\Runtime\Error\IllegalFunction if task is a closure created from an internal function.

Warnung

Shall throw parallel\Runtime\Error\IllegalInstruction if task contains illegal instructions.

Warnung

Shall throw parallel\Runtime\Error\IllegalParameter if task accepts or argv contains illegal variables.

Warnung

Shall throw parallel\Runtime\Error\IllegalReturn if task returns illegally.

Siehe auch

  • parallel\Runtime::run


The parallel\Runtime class

(0.8.0)

Runtime Objects

Each runtime represents a single PHP thread, the thread is created (and bootstrapped) upon construction. The thread then waits for tasks to be scheduled: Scheduled tasks will be executed FIFO and then the thread will resume waiting until more tasks are scheduled, or it's closed, killed, or destroyed by the normal scoping rules of PHP objects.

Warnung

When a runtime is destroyed by the normal scoping rules of PHP objects, it will first execute all of the tasks that were scheduled, and block while doing so.

Runtime Bootstrapping

When a new runtime is created, it does not share code with the thread (or process) that created it. This means it doesn't have the same classes and functions loaded, nor the same autoloader set. In some cases, a very lightweight runtime is desirable because the tasks that will be scheduled do not need access to the code in the parent thread. In those cases where the tasks do need to access the same code, it is enough to set an autoloader as the bootstrap.

Hinweis:

preloading may be used in conjunction with parallel, in this case preloaded code is available without bootstrapping

Klassenbeschreibung

final parallel\Runtime {
/* Create */
public __construct ( )
public __construct ( string $bootstrap )
/* Execute */
public run ( Closure $task ) : Future|null
public run ( Closure $task , array $argv ) : Future|null
/* Join */
public close ( ) : void
public kill ( ) : void
}

Inhaltsverzeichnis

  • parallel\Runtime::__construct — Runtime Construction
  • parallel\Runtime::run — Execution
  • parallel\Runtime::close — Runtime Graceful Join
  • parallel\Runtime::kill — Runtime Join


Runtime Construction

  • « parallel\Runtime
  • parallel\Runtime::run »
  • PHP Manual
  • parallel\Runtime
  • Runtime Construction

parallel\Runtime::__construct

(0.8.0)

parallel\Runtime::__construct — Runtime Construction

Beschreibung

public parallel\Runtime::__construct ( )

Shall construct a new runtime without bootstrapping.

public parallel\Runtime::__construct ( string $bootstrap )

Shall construct a bootstrapped runtime.

Parameter-Liste

bootstrap

The location of a bootstrap file, generally an autoloader.

Exceptions

Warnung

Shall throw parallel\Runtime\Error if thread could not be created

Warnung

Shall throw parallel\Runtime\Bootstrap if bootstrapping failed


Execution

  • « parallel\Runtime::__construct
  • parallel\Runtime::close »
  • PHP Manual
  • parallel\Runtime
  • Execution

parallel\Runtime::run

(0.8.0)

parallel\Runtime::run — Execution

Beschreibung

public parallel\Runtime::run ( Closure $task ) : Future|null

Shall schedule task for execution in parallel.

public parallel\Runtime::run ( Closure $task , array $argv ) : Future|null

Shall schedule task for execution in parallel, passing argv at execution time.

Parameter-Liste

task

A Closure with specific characteristics.

argv

An array of arguments with specific characteristics to be passed to task at execution time.

Task Characteristics

Closures scheduled for parallel execution must not:

  • accept or return by reference
  • accept or return internal objects (see notes)
  • execute a limited set of instructions

Instructions prohibited in Closures intended for parallel execution are:

  • yield
  • use by-reference
  • declare class
  • declare named function

Hinweis:

Nested closures may yield or use by-reference, but must not contain class or named function declarations.

Hinweis:

No instructions are prohibited in the files which the task may include.

Arguments Characteristics

Arguments must not:

  • contain references
  • contain resources
  • contain internal objects (see notes)

Hinweis:

In the case of file stream resources, the resource will be cast to the file descriptor and passed as int where possible, this is unsupported on Windows.

Internal Objects Notes

Internal objects generally use a custom structure which cannot be copied by value safely, PHP currently lacks the mechanics to do this (without serialization) and so only objects that do not use a custom structure may be shared.

Some internal objects do not use a custom structure, for example parallel\Events\Event and so may be shared.

Closures are a special kind of internal object and support being copied by value, and so may be shared.

Channels are central to writing parallel code and support concurrent access and execution by necessity, and so may be shared.

Warnung

A user class that extends an internal class may use a custom structure as defined by the internal class, in which case they cannot be copied by value safely, and so may not be shared.

Rückgabewerte

Warnung

The return parallel\Future must not be ignored when the task contains a return or throw statement.

Exceptions

Warnung

Shall throw parallel\Runtime\Error\Closed if parallel\Runtime was closed.

Warnung

Shall throw parallel\Runtime\Error\IllegalFunction if task is a closure created from an internal function.

Warnung

Shall throw parallel\Runtime\Error\IllegalInstruction if task contains illegal instructions.

Warnung

Shall throw parallel\Runtime\Error\IllegalParameter if task accepts or argv contains illegal variables.

Warnung

Shall throw parallel\Runtime\Error\IllegalReturn if task returns illegally.


Runtime Graceful Join

  • « parallel\Runtime::run
  • parallel\Runtime::kill »
  • PHP Manual
  • parallel\Runtime
  • Runtime Graceful Join

parallel\Runtime::close

(0.8.0)

parallel\Runtime::close — Runtime Graceful Join

Beschreibung

public parallel\Runtime::close ( ) : void

Shall request that the runtime shutsdown.

Hinweis:

Tasks scheduled for execution will be executed before the shutdown occurs.

Exceptions

Warnung

Shall throw parallel\Runtime\Error\Closed if Runtime was already closed.


Runtime Join

  • « parallel\Runtime::close
  • parallel\Future »
  • PHP Manual
  • parallel\Runtime
  • Runtime Join

parallel\Runtime::kill

(0.8.0)

parallel\Runtime::kill — Runtime Join

Beschreibung

public parallel\Runtime::kill ( ) : void

Shall attempt to force the runtime to shutdown.

Hinweis:

Tasks scheduled for execution will not be executed, the currently running task shall be interrupted.

Warnung

Internal function calls in progress cannot be interrupted.

Exceptions

Warnung

Shall throw parallel\Runtime\Error\Closed if Runtime was closed.


The parallel\Future class

(0.8.0)

Futures

A Future represents the return value or uncaught exception from a task, and exposes an API for cancellation.

Beispiel #1 Example showing Future as return value

<?php
$runtime = new \parallel\Runtime;
$future  = $runtime->run(function(){
    return "World";
});
printf("Hello %s\n", $future->value());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hello World

The behaviour of a future also allows it to be used as a simple synchronization point even where the task does not return a value explicitly.

Beispiel #2 Example showing Future as synchronization point

<?php
$runtime = new \parallel\Runtime;
$future  = $runtime->run(function(){
    echo "in child ";
    for ($i = 0; $i < 500; $i++) {
        if ($i % 10 == 0) {
            echo ".";
        }
    }
    echo " leaving child";
});

$future->value();
echo "\nparent continues\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

in child .................................................. leaving child
parent continues

Klassenbeschreibung

final parallel\Future {
/* Resolution */
public value ( ) : mixed
/* State */
public cancelled ( ) : bool
public done ( ) : bool
/* Cancellation */
public cancel ( ) : bool
}

Inhaltsverzeichnis

  • parallel\Future::cancel — Cancellation
  • parallel\Future::cancelled — State Detection
  • parallel\Future::done — State Detection
  • parallel\Future::value — Resolution


Cancellation

  • « parallel\Future
  • parallel\Future::cancelled »
  • PHP Manual
  • parallel\Future
  • Cancellation

parallel\Future::cancel

(0.9.0)

parallel\Future::cancel — Cancellation

Beschreibung

public parallel\Future::cancel ( ) : bool

Shall try to cancel the task

Hinweis:

If task is running, it will be interrupted.

Warnung

Internal function calls in progress cannot be interrupted.

Exceptions

Warnung

Shall throw parallel\Future\Error\Killed if parallel\Runtime executing task was killed.

Warnung

Shall throw parallel\Future\Error\Cancelled if task was already cancelled.


State Detection

  • « parallel\Future::cancel
  • parallel\Future::done »
  • PHP Manual
  • parallel\Future
  • State Detection

parallel\Future::cancelled

(0.9.0)

parallel\Future::cancelled — State Detection

Beschreibung

public parallel\Future::cancelled ( ) : bool

Shall indicate if the task was cancelled


State Detection

  • « parallel\Future::cancelled
  • parallel\Future::value »
  • PHP Manual
  • parallel\Future
  • State Detection

parallel\Future::done

(0.8.0)

parallel\Future::done — State Detection

Beschreibung

public parallel\Future::done ( ) : bool

Shall indicate if the task is completed


Resolution

  • « parallel\Future::done
  • parallel\Channel »
  • PHP Manual
  • parallel\Future
  • Resolution

parallel\Future::value

(0.8.0)

parallel\Future::value — Resolution

Beschreibung

public parallel\Future::value ( ) : mixed

Shall return (and if necessary wait for) return from task

Exceptions

Warnung

Shall throw parallel\Future\Error if waiting failed (internal error).

Warnung

Shall throw parallel\Future\Error\Killed if parallel\Runtime executing task was killed.

Warnung

Shall throw parallel\Future\Error\Cancelled if task was cancelled.

Warnung

Shall throw parallel\Future\Error\Foreign if task raised an unrecognized uncaught exception.

Warnung

Shall rethrow Throwable uncaught in task


The parallel\Channel class

(0.9.0)

Unbuffered Channels

An unbuffered channel will block on calls to parallel\Channel::send() until there is a receiver, and block on calls to parallel\Channel::recv() until there is a sender. This means an unbuffered channel is not only a way to share data among tasks but also a simple method of synchronization.

An unbuffered channel is the fastest way to share data among tasks, requiring the least copying.

Buffered Channels

A buffered channel will not block on calls to parallel\Channel::send() until capacity is reached, calls to parallel\Channel::recv() will block until there is data in the buffer.

Closures over Channels

A powerful feature of parallel channels is that they allow the exchange of closures between tasks (and runtimes).

When a closure is sent over a channel the closure is buffered, it doesn't change the buffering of the channel transmitting the closure, but it does effect the static scope inside the closure: The same closure sent to different runtimes, or the same runtime, will not share their static scope.

This means that whenever a closure is executed that was transmitted by a channel, static state will be as it was when the closure was buffered.

Anonymous Channels

The anonymous channel constructor allows the programmer to avoid assigning names to every channel: parallel will generate a unique name for anonymous channels.

Klassenbeschreibung

final parallel\Channel {
/* Anonymous Constructor */
public __construct ( )
public __construct ( int $capacity )
/* Access */
public make ( string $name ) : Channel
public make ( string $name , int $capacity ) : Channel
public open ( string $name ) : Channel
/* Sharing */
public recv ( ) : mixed
public send ( mixed $value ) : void
/* Closing */
public close ( ) : void
/* Constant for Infinitely Buffered */
const Infinite ;
}

Inhaltsverzeichnis

  • parallel\Channel::__construct — Channel Construction
  • parallel\Channel::make — Access
  • parallel\Channel::open — Access
  • parallel\Channel::recv — Sharing
  • parallel\Channel::send — Sharing
  • parallel\Channel::close — Closing


Channel Construction

  • « parallel\Channel
  • parallel\Channel::make »
  • PHP Manual
  • parallel\Channel
  • Channel Construction

parallel\Channel::__construct

(1.1.0)

parallel\Channel::__construct — Channel Construction

Beschreibung

public parallel\Channel::__construct ( )

Shall make an anonymous unbuffered channel

public parallel\Channel::__construct ( int $capacity )

Shall make an anonymous buffered channel with the given capacity

Parameter-Liste

capacity

May be Channel::Infinite or a positive integer


Access

  • « parallel\Channel::__construct
  • parallel\Channel::open »
  • PHP Manual
  • parallel\Channel
  • Access

parallel\Channel::make

(0.9.0)

parallel\Channel::make — Access

Beschreibung

public parallel\Channel::make ( string $name ) : Channel

Shall make an unbuffered channel with the given name

public parallel\Channel::make ( string $name , int $capacity ) : Channel

Shall make a buffered channel with the given name and capacity

Parameter-Liste

name

The name of the channel.

capacity

May be Channel::Infinite or a positive integer

Exceptions

Warnung

Shall throw parallel\Channel\Error\Existence if channel already exists.


Access

  • « parallel\Channel::make
  • parallel\Channel::recv »
  • PHP Manual
  • parallel\Channel
  • Access

parallel\Channel::open

(0.9.0)

parallel\Channel::open — Access

Beschreibung

public parallel\Channel::open ( string $name ) : Channel

Shall open the channel with the given name

Exceptions

Warnung

Shall throw parallel\Channel\Error\Existence if channel does not exist.


Sharing

  • « parallel\Channel::open
  • parallel\Channel::send »
  • PHP Manual
  • parallel\Channel
  • Sharing

parallel\Channel::recv

(0.9.0)

parallel\Channel::recv — Sharing

Beschreibung

public parallel\Channel::recv ( ) : mixed

Shall recv a value from this channel

Exceptions

Warnung

Shall throw parallel\Channel\Error\Closed if channel is closed.


Sharing

  • « parallel\Channel::recv
  • parallel\Channel::close »
  • PHP Manual
  • parallel\Channel
  • Sharing

parallel\Channel::send

(0.9.0)

parallel\Channel::send — Sharing

Beschreibung

public parallel\Channel::send ( mixed $value ) : void

Shall send the given value on this channel

Exceptions

Warnung

Shall throw parallel\Channel\Error\Closed if channel is closed.

Warnung

Shall throw parallel\Channel\Error\IllegalValue if value is illegal.


Closing

  • « parallel\Channel::send
  • parallel\Events »
  • PHP Manual
  • parallel\Channel
  • Closing

parallel\Channel::close

(0.9.0)

parallel\Channel::close — Closing

Beschreibung

public parallel\Channel::close ( ) : void

Shall close this channel

Exceptions

Warnung

Shall throw parallel\Channel\Error\Closed if channel is closed.


The parallel\Events class

(0.9.0)

The Event Loop

The Event loop monitors the state of sets of futures and or channels (targets) in order to perform read (parallel\Future::value(), parallel\Channel::recv()) and write (parallel\Channel::send()) operations as the targets become available and the operations may be performed without blocking the event loop.

Klassenbeschreibung

final parallel\Events implements Countable , Traversable {
/* Input */
public setInput ( Input $input ) : void
/* Targets */
public addChannel ( parallel\Channel $channel ) : void
public addFuture ( string $name , parallel\Future $future ) : void
public remove ( string $target ) : void
/* Behaviour */
public setBlocking ( bool $blocking ) : void
public setTimeout ( int $timeout ) : void
/* Polling */
public poll ( ) : Event|null
}

Inhaltsverzeichnis

  • parallel\Events::setBlocking — Behaviour
  • parallel\Events::setTimeout — Behaviour
  • parallel\Events::setInput — Input
  • parallel\Events::addChannel — Targets
  • parallel\Events::addFuture — Targets
  • parallel\Events::remove — Targets
  • parallel\Events::poll — Polling


Behaviour

  • « parallel\Events
  • parallel\Events::setTimeout »
  • PHP Manual
  • parallel\Events
  • Behaviour

parallel\Events::setBlocking

(0.9.0)

parallel\Events::setBlocking — Behaviour

Beschreibung

By default when events are polled for, blocking will occur (at the PHP level) until the first event can be returned: Setting blocking mode to false will cause poll to return control if the first target polled is not ready.

This differs from setting a timeout of 0 with parallel\Events::setTimeout(), since a timeout of 0, while allowed, will cause an exception to be raised, which may be extremely slow or wasteful if what is really desired is non-blocking behaviour.

A non-blocking loop effects the return value of parallel\Events::poll(), such that it may be null before all events have been processed.

public parallel\Events::setBlocking ( bool $blocking ) : void

Shall set blocking mode

Exceptions

Warnung

Shall throw parallel\Events\Error if loop has timeout set.


Behaviour

  • « parallel\Events::setBlocking
  • parallel\Events::setInput »
  • PHP Manual
  • parallel\Events
  • Behaviour

parallel\Events::setTimeout

(0.9.0)

parallel\Events::setTimeout — Behaviour

Beschreibung

By default when events are polled for, blocking will occur (at the PHP level) until the first event can be returned: Setting the timeout causes an exception to be thrown when the timeout is reached.

This differs from setting blocking mode to false with parallel\Events::setBlocking(), which will not cause an exception to be thrown.

public parallel\Events::setTimeout ( int $timeout ) : void

Shall set the timeout in microseconds

Exceptions

Warnung

Shall throw parallel\Events\Error if loop is non-blocking.


Input

  • « parallel\Events::setTimeout
  • parallel\Events::addChannel »
  • PHP Manual
  • parallel\Events
  • Input

parallel\Events::setInput

(0.9.0)

parallel\Events::setInput — Input

Beschreibung

public parallel\Events::setInput ( Input $input ) : void

Shall set input for this event loop


Targets

  • « parallel\Events::setInput
  • parallel\Events::addFuture »
  • PHP Manual
  • parallel\Events
  • Targets

parallel\Events::addChannel

(0.9.0)

parallel\Events::addChannel — Targets

Beschreibung

public parallel\Events::addChannel ( parallel\Channel $channel ) : void

Shall watch for events on the given channel

Exceptions

Warnung

Shall throw parallel\Events\Error\Existence if channel was already added.


Targets

  • « parallel\Events::addChannel
  • parallel\Events::remove »
  • PHP Manual
  • parallel\Events
  • Targets

parallel\Events::addFuture

(0.9.0)

parallel\Events::addFuture — Targets

Beschreibung

public parallel\Events::addFuture ( string $name , parallel\Future $future ) : void

Shall watch for events on the given future

Exceptions

Warnung

Shall throw parallel\Events\Error\Existence if target with the given name was already added.


Targets

  • « parallel\Events::addFuture
  • parallel\Events::poll »
  • PHP Manual
  • parallel\Events
  • Targets

parallel\Events::remove

(0.9.0)

parallel\Events::remove — Targets

Beschreibung

public parallel\Events::remove ( string $target ) : void

Shall remove the given target

Exceptions

Warnung

Shall throw parallel\Events\Error\Existence if target with the given name was not found.


Polling

  • « parallel\Events::remove
  • parallel\Events\Input »
  • PHP Manual
  • parallel\Events
  • Polling

parallel\Events::poll

(0.9.0)

parallel\Events::poll — Polling

Beschreibung

public parallel\Events::poll ( ) : Event|null

Shall poll for the next event

Rückgabewerte

Should there be no targets remaining, null shall be returned

Should this be a non-blocking loop, and blocking would occur, null shall be returned

Otherwise, the parallel\Events\Event returned describes the event.

Exceptions

Warnung

Shall throw parallel\Events\Error\Timeout if timeout is used and reached.


The parallel\Events\Input class

(0.9.0)

Events Input

An Input object is a container for data that the parallel\Events object will write to parallel\Channel objects as they become available. Multiple event loops may share an Input container - parallel does not verify the contents of the container when it is set as the input for a parallel\Events object.

Hinweis:

When a parallel\Events object performs a write, the target is removed from the input object as if parallel\Events\Input::remove() were called.

Klassenbeschreibung

final parallel\Events\Input {
public add ( string $target , mixed $value ) : void
public remove ( string $target ) : void
public clear ( ) : void
}

Inhaltsverzeichnis

  • parallel\Events\Input::add — Inputs
  • parallel\Events\Input::clear — Inputs
  • parallel\Events\Input::remove — Inputs


Inputs

  • « parallel\Events\Input
  • parallel\Events\Input::clear »
  • PHP Manual
  • parallel\Events\Input
  • Inputs

parallel\Events\Input::add

(0.9.0)

parallel\Events\Input::add — Inputs

Beschreibung

public parallel\Events\Input::add ( string $target , mixed $value ) : void

Shall set input for the given target

Exceptions

Warnung

Shall throw parallel\Events\Input\Error\Existence if input for target already exists.

Warnung

Shall throw parallel\Events\Input\Error\IllegalValue if value is illegal (object, null).


Inputs

  • « parallel\Events\Input::add
  • parallel\Events\Input::remove »
  • PHP Manual
  • parallel\Events\Input
  • Inputs

parallel\Events\Input::clear

(0.9.0)

parallel\Events\Input::clear — Inputs

Beschreibung

public parallel\Events\Input::clear ( ) : void

Shall remove input for all targets


Inputs

  • « parallel\Events\Input::clear
  • parallel\Events\Event »
  • PHP Manual
  • parallel\Events\Input
  • Inputs

parallel\Events\Input::remove

(0.9.0)

parallel\Events\Input::remove — Inputs

Beschreibung

public parallel\Events\Input::remove ( string $target ) : void

Shall remove input for the given target

Exceptions

Warnung

Shall throw parallel\Events\Input\Error\Existence if input for target does not exist.


The parallel\Events\Event class

(0.9.0)

Event Objects

When an Event is returned, Event::$object shall be removed from the loop that returned it, should the event be a write event the Input for Event::$source shall also be removed.

Klassenbeschreibung

final parallel\Events\Event {
/* Shall be one of Event\Type constants */
public int $type ;
/* Shall be the source of the event (target name) */
public string $source ;
/* Shall be either Future or Channel */
public object $object ;
/* Shall be set for Read/Error events */
public $value ;
}


The parallel\Events\Event\Type class

(0.9.0)

Klassenbeschreibung

final parallel\Events\Event\Type {
/* Event::$object was read into Event::$value */
const Read ;
/* Input for Event::$source written to Event::$object */
const Write ;
/* Event::$object (Channel) was closed */
const Close ;
/* Event::$object (Future) was cancelled */
const Cancel ;
/* Runtime executing Event::$object (Future) was killed */
const Kill ;
/* Event::$object (Future) raised error */
const Error ;
}


The parallel\Sync class

(1.1.0)

Low Level Synchronization

The parallel\Sync class provides access to low level synchronization primitives, mutex, condition variables, and allows the implementation of semaphores.

Synchronization for most applications is much better implemented using channels, however, in some cases authors of low level code may find it useful to be able to access these lower level mechanisms.

Klassenbeschreibung

final parallel\Sync {
/* Constructor */
public __construct ( )
public __construct ( scalar $value )
/* Access */
public get ( ) : scalar
public set ( scalar $value )
/* Synchronization */
public wait ( )
public notify ( bool $all = ? )
public __invoke ( callable $critical )
}

Inhaltsverzeichnis

  • parallel\Sync::__construct — Construction
  • parallel\Sync::get — Access
  • parallel\Sync::set — Access
  • parallel\Sync::wait — Synchronization
  • parallel\Sync::notify — Synchronization
  • parallel\Sync::__invoke — Synchronization


Construction

  • « parallel\Sync
  • parallel\Sync::get »
  • PHP Manual
  • parallel\Sync
  • Construction

parallel\Sync::__construct

(1.1.0)

parallel\Sync::__construct — Construction

Beschreibung

public parallel\Sync::__construct ( )

Shall construct a new synchronization object with no value

public parallel\Sync::__construct ( scalar $value )

Shall construct a new synchronization object containing the given scalar value

Exceptions

Warnung

Shall throw parallel\Sync\Error\IllegalValue if value is non-scalar.


Access

  • « parallel\Sync::__construct
  • parallel\Sync::set »
  • PHP Manual
  • parallel\Sync
  • Access

parallel\Sync::get

(1.1.0)

parallel\Sync::get — Access

Beschreibung

public parallel\Sync::get ( ) : scalar

Shall atomically return the syncrhonization objects value


Access

  • « parallel\Sync::get
  • parallel\Sync::wait »
  • PHP Manual
  • parallel\Sync
  • Access

parallel\Sync::set

(1.1.0)

parallel\Sync::set — Access

Beschreibung

public parallel\Sync::set ( scalar $value )

Shall atomically set the value of the synchronization object

Exceptions

Warnung

Shall throw parallel\Sync\Error\IllegalValue if value is non-scalar.


Synchronization

  • « parallel\Sync::set
  • parallel\Sync::notify »
  • PHP Manual
  • parallel\Sync
  • Synchronization

parallel\Sync::wait

(1.1.0)

parallel\Sync::wait — Synchronization

Beschreibung

public parallel\Sync::wait ( )

Shall wait for notification on this synchronization object


Synchronization

  • « parallel\Sync::wait
  • parallel\Sync::__invoke »
  • PHP Manual
  • parallel\Sync
  • Synchronization

parallel\Sync::notify

(1.1.0)

parallel\Sync::notify — Synchronization

Beschreibung

public parallel\Sync::notify ( bool $all = ? )

Shall notify one (by default) or all threads waiting on the synchronization object


Synchronization

  • « parallel\Sync::notify
  • pthreads »
  • PHP Manual
  • parallel\Sync
  • Synchronization

parallel\Sync::__invoke

(1.1.0)

parallel\Sync::__invoke — Synchronization

Beschreibung

public parallel\Sync::__invoke ( callable $critical )

Shall exclusively enter into the critical code


pthreads

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
  • Vordefinierte Konstanten
  • Threaded — The Threaded class
    • Threaded::chunk — Manipulation
    • Threaded::count — Manipulation
    • Threaded::extend — Runtime Manipulation
    • Threaded::from — Creation
    • Threaded::getTerminationInfo — Error Detection
    • Threaded::isRunning — State Detection
    • Threaded::isTerminated — State Detection
    • Threaded::isWaiting — State Detection
    • Threaded::lock — Synchronization
    • Threaded::merge — Manipulation
    • Threaded::notify — Synchronization
    • Threaded::notifyOne — Synchronization
    • Threaded::pop — Manipulation
    • Threaded::run — Execution
    • Threaded::shift — Manipulation
    • Threaded::synchronized — Synchronization
    • Threaded::unlock — Synchronization
    • Threaded::wait — Synchronization
  • Thread — The Thread class
    • Thread::detach — Execution
    • Thread::getCreatorId — Identification
    • Thread::getCurrentThread — Identification
    • Thread::getCurrentThreadId — Identification
    • Thread::getThreadId — Identification
    • Thread::globally — Execution
    • Thread::isJoined — State Detection
    • Thread::isStarted — State Detection
    • Thread::join — Synchronization
    • Thread::kill — Execution
    • Thread::start — Execution
  • Worker — The Worker class
    • Worker::collect — Collect references to completed tasks
    • Worker::getStacked — Gets the remaining stack size
    • Worker::isShutdown — State Detection
    • Worker::isWorking — State Detection
    • Worker::shutdown — Shutdown the worker
    • Worker::stack — Stacking work
    • Worker::unstack — Unstacking work
  • Collectable — The Collectable interface
    • Collectable::isGarbage — Determine whether an object has been marked as garbage
    • Collectable::setGarbage — Mark an object as garbage
  • Modifiers — Method Modifiers
  • Pool — The Pool class
    • Pool::collect — Collect references to completed tasks
    • Pool::__construct — Creates a new Pool of Workers
    • Pool::resize — Resize the Pool
    • Pool::shutdown — Shutdown all workers
    • Pool::submit — Submits an object for execution
    • Pool::submitTo — Submits a task to a specific worker for execution
  • Mutex — The Mutex class
    • Mutex::create — Create a Mutex
    • Mutex::destroy — Destroy Mutex
    • Mutex::lock — Acquire Mutex
    • Mutex::trylock — Attempt to Acquire Mutex
    • Mutex::unlock — Release Mutex
  • Cond — The Cond class
    • Cond::broadcast — Broadcast a Condition
    • Cond::create — Create a Condition
    • Cond::destroy — Destroy a Condition
    • Cond::signal — Signal a Condition
    • Cond::wait — Wait for Condition
  • Volatile — The Volatile class


Einführung

pthreads is an object-orientated API that provides all of the tools needed for multi-threading in PHP. PHP applications can create, read, write, execute and synchronize with Threads, Workers and Threaded objects.

Warnung

This extension is considered unmaintained and dead.

Tipp

Consider using parallel instead.

Warnung

The pthreads extension cannot be used in a web server environment. Threading in PHP is therefore restricted to CLI-based applications only.

Warnung

pthreads (v3) can only be used with PHP 7.2+: This is due to ZTS mode being unsafe in 7.0 and 7.1.

The Threaded class forms the basis of the functionality that allows pthreads to operate. It exposes synchronization methods and some useful interfaces for the programmer.

The Thread class enables for threads to be created by simply extending it and implementing a run method. Any members can be written to and read by any context with a reference to the thread. Any context can also execute any public and protected methods. The body of the run method will be executed in a separate thread when the Thread::start() method of the implementation is called from the context that created it. Only the context that creates a thread can start and join it.

The Worker class has a persistent state, and will be available from the call to Thread::start() (an inherited method) until the object goes out of scope, or is explicitly shutdown (via Worker::shutdown()). Any context with a reference to the worker object can stack tasks onto the Worker (via Worker::stack()), where these tasks will be executed by the worker in a separate thread. The run method of a worker object will be executed before any objects on the worker's stack, enabling for resources to be initialized that the objects to be executed may need.

The Pool class is used to create a group of workers to distribute Threaded objects amongst them. It is the easiest and most efficient way of using multiple threads in PHP applications.

Achtung

The Pool class does not extend the Threaded class, and so pool-based objects are considered a normal PHP objects. As such, its instances of it should not be shared amongst different contexts.

The Volatile class is new to pthreads v3. It is used to denote mutable Threaded properties of Threaded classes (since these are now immutable by default). It is also used to store PHP arrays in Threaded contexts.

Synchronization is an important ability when threading. All of the objects that pthreads creates have built in synchronization in the (which will be familiar to java programmers) form of Threaded::wait() and Threaded::notify(). Calling Threaded::wait() on an object will cause the context to wait for another context to call Threaded::notify() on the same object. This mechanism allows for powerful synchronization between Threaded objects in PHP.

Achtung

Any objects that are intended for use in the multi-threaded parts of your application should extend Threaded.

Data Storage: As a rule of thumb, any data type that can be serialized can be used as a member of a Threaded object, it can be read and written from any context with a reference to the Threaded Object. Not every type of data is stored serially, basic types are stored in their true form. Complex types, Arrays, and Objects that are not Threaded are stored serially; they can be read and written to the Threaded Object from any context with a reference. With the exception of Threaded Objects any reference used to set a member of a Threaded Object is separated from the reference in the Threaded Object; the same data can be read directly from the Threaded Object at any time by any context with a reference to the Threaded Object.

Static Members: When a new context is created ( Thread or Worker ), they are generally copied, but resources and objects with internal state are nullified (for safety reasons). This allows them to function as a kind of thread local storage. For example, upon starting the context, a class whose static members include connection information for a database server, and the connection itself, will only have the simple connection information copied, not the connection. Allowing the new context to initiate a connection in the same way as the context that created it, storing the connection in the same place without affecting the original context.

Achtung

When print_r, var_dump and other object debug functions are executed, they do not include recursion protection.

Hinweis:

Resources: The extensions and functionality that define resources in PHP are completely unprepared for this kind of environment; pthreads makes provisions for Resources to be shared among contexts, however, for most types of resource it should be considered unsafe. Extreme caution and care should be used when sharing resources among contexts.

Achtung

In the environment which pthreads executes, some restrictions and limitations are necessary in order to provide a stable environment.


Anforderungen

pthreads requires a build of PHP with ZTS (Zend Thread Safety) enabled ( --enable-maintainer-zts or --enable-zts on Windows )

Achtung

Zend Thread Safety cannot be enabled post build; it is a build time configuration option.

pthreads should build anywhere there is a working Posix Threads header (pthread.h) and ZTS build of PHP, including Windows (using the pthread-w32 project from redhat).


Installation

pthreads releases are hosted by PECL and the source code by » github, the easiest route to installation is the normal PECL route: » https://pecl.php.net/package/pthreads.

Windows users can download prebuilt release binaries from the » PECL website.

Achtung

Windows users need to take the additional step of adding pthreadVC2.dll (distributed with Windows releases) to their PATH.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

PTHREADS_INHERIT_ALL (int)
The default options for all Threads, causes pthreads to copy the environment when new Threads are started
PTHREADS_INHERIT_NONE (int)
Do not inherit anything when new Threads are started
PTHREADS_INHERIT_INI (int)
Inherit INI entries when new Threads are started
PTHREADS_INHERIT_CONSTANTS (int)
Inherit user declared constants when new Threads are started
PTHREADS_INHERIT_CLASSES (int)
Inherit user declared classes when new Threads are started
PTHREADS_INHERIT_FUNCTIONS (int)
Inherit user declared functions when new Threads are started
PTHREADS_INHERIT_INCLUDES (int)
Inherit included file information when new Threads are started
PTHREADS_INHERIT_COMMENTS (int)
Inherit all comments when new Threads are started
PTHREADS_ALLOW_HEADERS (int)
Allow new Threads to send headers to standard output (normally prohibited)


The Threaded class

(PECL pthreads >= 2.0.0)

Einführung

Threaded objects form the basis of pthreads ability to execute user code in parallel; they expose synchronization methods and various useful interfaces.

Threaded objects, most importantly, provide implicit safety for the programmer; all operations on the object scope are safe.

Klassenbeschreibung

Threaded implements Collectable , Traversable , Countable , ArrayAccess {
/* Methoden */
public chunk ( int $size , bool $preserve ) : array
public count ( ) : int
public extend ( string $class ) : bool
public from ( Closure $run , Closure $construct = ? , array $args = ? ) : Threaded
public getTerminationInfo ( ) : array
public isRunning ( ) : bool
public isTerminated ( ) : bool
public isWaiting ( ) : bool
public lock ( ) : bool
public merge ( mixed $from , bool $overwrite = ? ) : bool
public notify ( ) : bool
public notifyOne ( ) : bool
public pop ( ) : bool
public run ( ) : void
public shift ( ) : mixed
public synchronized ( Closure $block , mixed ...$args ) : mixed
public unlock ( ) : bool
public wait ( int $timeout = ? ) : bool
}

Inhaltsverzeichnis

  • Threaded::chunk — Manipulation
  • Threaded::count — Manipulation
  • Threaded::extend — Runtime Manipulation
  • Threaded::from — Creation
  • Threaded::getTerminationInfo — Error Detection
  • Threaded::isRunning — State Detection
  • Threaded::isTerminated — State Detection
  • Threaded::isWaiting — State Detection
  • Threaded::lock — Synchronization
  • Threaded::merge — Manipulation
  • Threaded::notify — Synchronization
  • Threaded::notifyOne — Synchronization
  • Threaded::pop — Manipulation
  • Threaded::run — Execution
  • Threaded::shift — Manipulation
  • Threaded::synchronized — Synchronization
  • Threaded::unlock — Synchronization
  • Threaded::wait — Synchronization


Manipulation

  • « Threaded
  • Threaded::count »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::chunk

(PECL pthreads >= 2.0.0)

Threaded::chunk — Manipulation

Beschreibung

public Threaded::chunk ( int $size , bool $preserve ) : array

Fetches a chunk of the objects property table of the given size, optionally preserving keys

Parameter-Liste

size

The number of items to fetch

preserve

Preserve the keys of members, by default false

Rückgabewerte

An array of items from the objects property table

Beispiele

Beispiel #1 Fetch a chunk of the property table

<?php
$safe = new Threaded();

while (count($safe) < 10) {
    $safe[] = count($safe);
}

var_dump($safe->chunk(5));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(5) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  [4]=>
  int(4)
}


Manipulation

  • « Threaded::chunk
  • Threaded::extend »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::count

(PECL pthreads >= 2.0.0)

Threaded::count — Manipulation

Beschreibung

public Threaded::count ( ) : int

Returns the number of properties for this object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 Counting the properties of an object

<?php
$safe = new Threaded();

while (count($safe) < 10) {
    $safe[] = count($safe);
}

var_dump(count($safe));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(10)


Runtime Manipulation

  • « Threaded::count
  • Threaded::from »
  • PHP Manual
  • Threaded
  • Runtime Manipulation

Threaded::extend

(PECL pthreads >= 2.0.8)

Threaded::extend — Runtime Manipulation

Beschreibung

public Threaded::extend ( string $class ) : bool

Makes thread safe standard class at runtime

Parameter-Liste

class

The class to extend

Rückgabewerte

A boolean indication of success

Beispiele

Beispiel #1 Runtime inheritance

<?php
class My {}

Threaded::extend(My::class);

$my = new My();

var_dump($my instanceof Threaded);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Creation

  • « Threaded::extend
  • Threaded::getTerminationInfo »
  • PHP Manual
  • Threaded
  • Creation

Threaded::from

(PECL pthreads >= 2.0.9)

Threaded::from — Creation

Warnung

This method has been removed in pthreads v3. With the introduction of anonymous classes in PHP 7, these can now be used instead.

Beschreibung

public Threaded::from ( Closure $run , Closure $construct = ? , array $args = ? ) : Threaded

Creates an anonymous Threaded object from closures

Parameter-Liste

run

The closure to use for ::run

construct

The constructor to use for anonymous object

args

The arguments to pass to constructor

Rückgabewerte

A new anonymous Threaded object

Beispiele

Beispiel #1 Thread safe objects from closures

<?php
$pool = new Pool(4);
$pool->submit(Collectable::from(function(){
    echo "Hello World";
    $this->setGarbage();
}));
/* ... */
$pool->shutdown();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hello World


Error Detection

  • « Threaded::from
  • Threaded::isRunning »
  • PHP Manual
  • Threaded
  • Error Detection

Threaded::getTerminationInfo

(PECL pthreads < 3.0.0)

Threaded::getTerminationInfo — Error Detection

Warnung

This method has been removed in pthreads v3. Instead, the body of Threaded::run() can be wrapped in a try...catch block to detect errors (since most errors in PHP 7 have been converted to exceptions).

Beschreibung

public Threaded::getTerminationInfo ( ) : array

Retrieves terminal error information from the referenced object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

array containing the termination conditions of the referenced object

Beispiele

Beispiel #1 Detecting fatal errors in Threads

<?php
class My extends Thread {
    public function run() {
        @not_found();
    }
}

$my = new My();
$my->start();
$my->join();

var_dump($my->isTerminated(), $my->getTerminationInfo());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
array(4) {
  ["scope"]=>
  string(2) "My"
  ["function"]=>
  string(3) "run"
  ["file"]=>
  string(29) "/usr/src/pthreads/sandbox.php"
  ["line"]=>
  int(4)
}


State Detection

  • « Threaded::getTerminationInfo
  • Threaded::isTerminated »
  • PHP Manual
  • Threaded
  • State Detection

Threaded::isRunning

(PECL pthreads >= 2.0.0)

Threaded::isRunning — State Detection

Beschreibung

public Threaded::isRunning ( ) : bool

Tell if the referenced object is executing

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean indication of state

Hinweis:

A object is considered running while executing the run method

Beispiele

Beispiel #1 Detect the state of the referenced object

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
var_dump($my->isRunning());
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


State Detection

  • « Threaded::isRunning
  • Threaded::isWaiting »
  • PHP Manual
  • Threaded
  • State Detection

Threaded::isTerminated

(PECL pthreads >= 2.0.0)

Threaded::isTerminated — State Detection

Beschreibung

public Threaded::isTerminated ( ) : bool

Tell if the referenced object was terminated during execution; suffered fatal errors, or threw uncaught exceptions

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean indication of state

Beispiele

Beispiel #1 Detect the state of the referenced object

<?php
class My extends Thread {
    public function run() {
        i_do_not_exist();
    }
}
$my = new My();
$my->start();
$my->join();
var_dump($my->isTerminated());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


State Detection

  • « Threaded::isTerminated
  • Threaded::lock »
  • PHP Manual
  • Threaded
  • State Detection

Threaded::isWaiting

(PECL pthreads < 3.0.0)

Threaded::isWaiting — State Detection

Warnung

This method has been removed in pthreads v3.

Beschreibung

public Threaded::isWaiting ( ) : bool

Tell if the referenced object is waiting for notification

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean indication of state

Beispiele

Beispiel #1 Detect the state of the referenced object

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$this->done)
                $thread->wait();
        }, $this);
    }

    protected $done;
}
$my = new My();
$my->start();
$my->synchronized(function($thread){
    var_dump(
        $thread->isWaiting());
    $thread->done = true;
    $thread->notify();
}, $my);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Synchronization

  • « Threaded::isWaiting
  • Threaded::merge »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::lock

(PECL pthreads < 3.0.0)

Threaded::lock — Synchronization

Warnung

This method has been removed in pthreads v3. The Threaded::synchronized() method should now be used.

Beschreibung

public Threaded::lock ( ) : bool

Lock the referenced objects property table

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean indication of success

Beispiele

Beispiel #1 Locking Object Properties

<?php
class My extends Thread {
    public function run() {
        var_dump($this->lock());
        /** nobody can read or write **/
        var_dump($this->unlock());
        /** reading / writing resumed for all other contexts */
    }
}
$my = new My();
$my->start();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)


Manipulation

  • « Threaded::lock
  • Threaded::notify »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::merge

(PECL pthreads >= 2.0.0)

Threaded::merge — Manipulation

Beschreibung

public Threaded::merge ( mixed $from , bool $overwrite = ? ) : bool

Merges data into the current object

Parameter-Liste

from

The data to merge

overwrite

Overwrite existing keys, by default true

Rückgabewerte

A boolean indication of success

Beispiele

Beispiel #1 Merging into the property table of a threaded object

<?php
$array = [];

while (count($array) < 10)
    $array[] = count($array);

$stdClass = new stdClass();
$stdClass->foo = "foo";
$stdClass->bar = "bar";
$stdClass->baz = "baz";

$safe = new Threaded();
$safe->merge($array);

$safe->foo = "bar";
$safe->merge($stdClass, false);

var_dump($safe);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(Threaded)#2 (13) {
  ["0"]=>
  int(0)
  ["1"]=>
  int(1)
  ["2"]=>
  int(2)
  ["3"]=>
  int(3)
  ["4"]=>
  int(4)
  ["5"]=>
  int(5)
  ["6"]=>
  int(6)
  ["7"]=>
  int(7)
  ["8"]=>
  int(8)
  ["9"]=>
  int(9)
  ["foo"]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "bar"
  ["baz"]=>
  string(3) "baz"
}


Synchronization

  • « Threaded::merge
  • Threaded::notifyOne »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::notify

(PECL pthreads >= 2.0.0)

Threaded::notify — Synchronization

Beschreibung

public Threaded::notify ( ) : bool

Send notification to the referenced object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean indication of success

Beispiele

Beispiel #1 Notifications and Waiting

<?php
class My extends Thread {
    public function run() {
        /** cause this thread to wait **/
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
/** send notification to the waiting thread **/
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
var_dump($my->join());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Synchronization

  • « Threaded::notify
  • Threaded::pop »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::notifyOne

(PECL pthreads >= 3.0.0)

Threaded::notifyOne — Synchronization

Beschreibung

public Threaded::notifyOne ( ) : bool

Send notification to the referenced object. This unblocks at least one of the blocked threads (as opposed to unblocking all of them, as seen with Threaded::notify()).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean indication of success

Beispiele

Beispiel #1 Notifications and Waiting

<?php
class My extends Thread {
    public function run() {
        /** cause this thread to wait **/
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
/** send notification to the waiting thread **/
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notifyOne();
}, $my);
var_dump($my->join());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Manipulation

  • « Threaded::notifyOne
  • Threaded::run »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::pop

(PECL pthreads >= 2.0.0)

Threaded::pop — Manipulation

Beschreibung

public Threaded::pop ( ) : bool

Pops an item from the objects property table

Rückgabewerte

The last item from the objects property table

Beispiele

Beispiel #1 Popping the last item from the property table of a threaded object

<?php
$safe = new Threaded();

while (count($safe) < 10)
    $safe[] = count($safe);

var_dump($safe->pop());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(9)


Execution

  • « Threaded::pop
  • Threaded::shift »
  • PHP Manual
  • Threaded
  • Execution

Threaded::run

(PECL pthreads >= 2.0.0)

Threaded::run — Execution

Beschreibung

public Threaded::run ( ) : void

The programmer should always implement the run method for objects that are intended for execution.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The methods return value, if used, will be ignored


Manipulation

  • « Threaded::run
  • Threaded::synchronized »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::shift

(PECL pthreads >= 2.0.0)

Threaded::shift — Manipulation

Beschreibung

public Threaded::shift ( ) : mixed

Shifts an item from the objects property table

Rückgabewerte

The first item from the objects property table

Beispiele

Beispiel #1 Shifting the first item from the property table of a threaded object

<?php
$safe = new Threaded();

while (count($safe) < 10)
    $safe[] = count($safe);

var_dump($safe->shift());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)


Synchronization

  • « Threaded::shift
  • Threaded::unlock »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::synchronized

(PECL pthreads >= 2.0.0)

Threaded::synchronized — Synchronization

Beschreibung

public Threaded::synchronized ( Closure $block , mixed ...$args ) : mixed

Executes the block while retaining the referenced objects synchronization lock for the calling context

Parameter-Liste

block

The block of code to execute

args

Variable length list of arguments to use as function arguments to the block

Rückgabewerte

The return value from the block

Beispiele

Beispiel #1 Synchronizing

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
var_dump($my->join());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Synchronization

  • « Threaded::synchronized
  • Threaded::wait »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::unlock

(PECL pthreads < 3.0.0)

Threaded::unlock — Synchronization

Warnung

This method has been removed in pthreads v3. The Threaded::synchronized() method should now be used.

Beschreibung

public Threaded::unlock ( ) : bool

Unlock the referenced objects storage for the calling context

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean indication of success

Beispiele

Beispiel #1 Locking the property table of a threaded object

<?php
class My extends Thread {
    public function run() {
        var_dump($this->lock());
        /** nobody can read or write **/
        var_dump($this->unlock());
        /** reading / writing resumed for all other contexts */
    }
}
$my = new My();
$my->start();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)


Synchronization

  • « Threaded::unlock
  • Thread »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::wait

(PECL pthreads >= 2.0.0)

Threaded::wait — Synchronization

Beschreibung

public Threaded::wait ( int $timeout = ? ) : bool

Will cause the calling context to wait for notification from the referenced object

Parameter-Liste

timeout

An optional timeout in microseconds

Rückgabewerte

A boolean indication of success

Beispiele

Beispiel #1 Notifications and Waiting

<?php
class My extends Thread {
    public function run() {
        /** cause this thread to wait **/
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
/** send notification to the waiting thread **/
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
var_dump($my->join());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


The Thread class

(PECL pthreads >= 2.0.0)

Einführung

When the start method of a Thread is invoked, the run method code will be executed in separate Thread, in parallel.

After the run method is executed the Thread will exit immediately, it will be joined with the creating Thread at the appropriate time.

Warnung

Relying on the engine to determine when a Thread should join may cause undesirable behaviour; the programmer should be explicit, where possible.

Klassenbeschreibung

Thread extends Threaded implements Countable , Traversable , ArrayAccess {
/* Methoden */
public detach ( ) : void
public getCreatorId ( ) : int
public static getCurrentThread ( ) : Thread
public static getCurrentThreadId ( ) : int
public getThreadId ( ) : int
public static globally ( ) : mixed
public isJoined ( ) : bool
public isStarted ( ) : bool
public join ( ) : bool
public kill ( ) : void
public start ( int $options = ? ) : bool
/* Geerbte Methoden */
public Threaded::chunk ( int $size , bool $preserve ) : array
public Threaded::count ( ) : int
public Threaded::extend ( string $class ) : bool
public Threaded::from ( Closure $run , Closure $construct = ? , array $args = ? ) : Threaded
public Threaded::getTerminationInfo ( ) : array
public Threaded::isRunning ( ) : bool
public Threaded::isTerminated ( ) : bool
public Threaded::isWaiting ( ) : bool
public Threaded::lock ( ) : bool
public Threaded::merge ( mixed $from , bool $overwrite = ? ) : bool
public Threaded::notify ( ) : bool
public Threaded::notifyOne ( ) : bool
public Threaded::pop ( ) : bool
public Threaded::run ( ) : void
public Threaded::shift ( ) : mixed
public Threaded::synchronized ( Closure $block , mixed ...$args ) : mixed
public Threaded::unlock ( ) : bool
public Threaded::wait ( int $timeout = ? ) : bool
}

Inhaltsverzeichnis

  • Thread::detach — Execution
  • Thread::getCreatorId — Identification
  • Thread::getCurrentThread — Identification
  • Thread::getCurrentThreadId — Identification
  • Thread::getThreadId — Identification
  • Thread::globally — Execution
  • Thread::isJoined — State Detection
  • Thread::isStarted — State Detection
  • Thread::join — Synchronization
  • Thread::kill — Execution
  • Thread::start — Execution


Execution

  • « Thread
  • Thread::getCreatorId »
  • PHP Manual
  • Thread
  • Execution

Thread::detach

(PECL pthreads < 3.0.0)

Thread::detach — Execution

Warnung

This method has been removed in pthreads v3.

Beschreibung

public Thread::detach ( ) : void

Detaches the referenced Thread from the calling context, dangerous!

Warnung

This method can cause undefined, unsafe behaviour. It should not usually be used, it is present for completeness and advanced use cases.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Identification

  • « Thread::detach
  • Thread::getCurrentThread »
  • PHP Manual
  • Thread
  • Identification

Thread::getCreatorId

(PECL pthreads >= 2.0.0)

Thread::getCreatorId — Identification

Beschreibung

public Thread::getCreatorId ( ) : int

Will return the identity of the Thread that created the referenced Thread

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A numeric identity

Beispiele

Beispiel #1 Return the identity of the Thread or Process that created the referenced Thread

<?php
class My extends Thread {
    public function run() {
        printf("%s created by Thread #%lu\n", __CLASS__, $this->getCreatorId());
    }
}
$my = new My();
$my->start();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

My created by Thread #123456778899


Identification

  • « Thread::getCreatorId
  • Thread::getCurrentThreadId »
  • PHP Manual
  • Thread
  • Identification

Thread::getCurrentThread

(PECL pthreads >= 2.0.0)

Thread::getCurrentThread — Identification

Beschreibung

public static Thread::getCurrentThread ( ) : Thread

Return a reference to the currently executing Thread

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An object representing the currently executing Thread

Beispiele

Beispiel #1 Return the currently executing Thread

<?php
class My extends Thread {
    public function run() {
        var_dump(Thread::getCurrentThread());
    }
}
$my = new My();
$my->start();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(My)#2 (0) {
}


Identification

  • « Thread::getCurrentThread
  • Thread::getThreadId »
  • PHP Manual
  • Thread
  • Identification

Thread::getCurrentThreadId

(PECL pthreads >= 2.0.0)

Thread::getCurrentThreadId — Identification

Beschreibung

public static Thread::getCurrentThreadId ( ) : int

Will return the identity of the currently executing Thread

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A numeric identity

Beispiele

Beispiel #1 Return the identity of the currently executing Thread

<?php
class My extends Thread {
    public function run() {
        printf("%s is Thread #%lu\n", __CLASS__, Thread::getCurrentThreadId());
    }
}
$my = new My();
$my->start();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

My is Thread #123456778899


Identification

  • « Thread::getCurrentThreadId
  • Thread::globally »
  • PHP Manual
  • Thread
  • Identification

Thread::getThreadId

(PECL pthreads >= 2.0.0)

Thread::getThreadId — Identification

Beschreibung

public Thread::getThreadId ( ) : int

Will return the identity of the referenced Thread

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A numeric identity

Beispiele

Beispiel #1 Return the identity of the referenced Thread

<?php
class My extends Thread {
    public function run() {
        printf("%s is Thread #%lu\n", __CLASS__, $this->getThreadId());
    }
}
$my = new My();
$my->start();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

My is Thread #123456778899


Execution

  • « Thread::getThreadId
  • Thread::isJoined »
  • PHP Manual
  • Thread
  • Execution

Thread::globally

(PECL pthreads < 3.0.0)

Thread::globally — Execution

Warnung

This method has been removed in pthreads v3.

Beschreibung

public static Thread::globally ( ) : mixed

Will execute a Callable in the global scope

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The return value of the Callable

Beispiele

Beispiel #1 Execute in the global scope

<?php
class My extends Thread {
    public function run() {
        global $std;

        Thread::globally(function(){
            $std = new stdClass;
        });

        var_dump($std);
    }
}
$my = new My();
$my->start();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(stdClass)#3 (0) {
}


State Detection

  • « Thread::globally
  • Thread::isStarted »
  • PHP Manual
  • Thread
  • State Detection

Thread::isJoined

(PECL pthreads >= 2.0.0)

Thread::isJoined — State Detection

Beschreibung

public Thread::isJoined ( ) : bool

Tell if the referenced Thread has been joined

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean indication of state

Beispiele

Beispiel #1 Detect the state of the referenced Thread

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
var_dump($my->isJoined());
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)


State Detection

  • « Thread::isJoined
  • Thread::join »
  • PHP Manual
  • Thread
  • State Detection

Thread::isStarted

(PECL pthreads >= 2.0.0)

Thread::isStarted — State Detection

Beschreibung

public Thread::isStarted ( ) : bool

Tell if the referenced Thread was started

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

boolean indication of state

Beispiele

Beispiel #1 Tell if the referenced Thread was started

<?php
$worker = new Worker();
$worker->start();
var_dump($worker->isStarted());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Synchronization

  • « Thread::isStarted
  • Thread::kill »
  • PHP Manual
  • Thread
  • Synchronization

Thread::join

(PECL pthreads >= 2.0.0)

Thread::join — Synchronization

Beschreibung

public Thread::join ( ) : bool

Causes the calling context to wait for the referenced Thread to finish executing

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean indication of success

Beispiele

Beispiel #1 Join with the referenced Thread

<?php
class My extends Thread {
    public function run() {
        /* ... */
    }
}
$my = new My();
$my->start();
/* ... */
var_dump($my->join());
/* ... */
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Execution

  • « Thread::join
  • Thread::start »
  • PHP Manual
  • Thread
  • Execution

Thread::kill

(PECL pthreads < 3.0.0)

Thread::kill — Execution

Warnung

This method has been removed in pthreads v3.

Beschreibung

public Thread::kill ( ) : void

Forces the referenced Thread to terminate

Warnung

The programmer should not ordinarily kill Threads by force

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean indication of success

Beispiele

Beispiel #1 Kill the referenced Thread

<?php
class T extends Thread {
    public function run() {
        $stdin = fopen("php://stdin", "r");
        while(($line = fgets($stdin))) {
            echo $line;
        }
    }
}

$t = new T();
$t->start();

var_dump($t->kill());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Execution

  • « Thread::kill
  • Worker »
  • PHP Manual
  • Thread
  • Execution

Thread::start

(PECL pthreads >= 2.0.0)

Thread::start — Execution

Beschreibung

public Thread::start ( int $options = ? ) : bool

Will start a new Thread to execute the implemented run method

Parameter-Liste

options

An optional mask of inheritance constants, by default PTHREADS_INHERIT_ALL

Rückgabewerte

A boolean indication of success

Beispiele

Beispiel #1 Starting Threads

<?php
class My extends Thread {
    public function run() {
        /** ... **/
    }
}
$my = new My();
var_dump($my->start());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


The Worker class

(PECL pthreads >= 2.0.0)

Einführung

Worker Threads have a persistent context, as such should be used over Threads in most cases.

When a Worker is started, the run method will be executed, but the Thread will not leave until one of the following conditions are met:

  • the Worker goes out of scope (no more references remain)

  • the programmer calls shutdown

  • the script dies

This means the programmer can reuse the context throughout execution; placing objects on the stack of the Worker will cause the Worker to execute the stacked objects run method.

Klassenbeschreibung

Worker extends Thread implements Traversable , Countable , ArrayAccess {
/* Methoden */
public collect ( Callable $collector = ? ) : int
public getStacked ( ) : int
public isShutdown ( ) : bool
public isWorking ( ) : bool
public shutdown ( ) : bool
public stack ( Threaded &$work ) : int
public unstack ( ) : int
/* Geerbte Methoden */
public Thread::detach ( ) : void
public Thread::getCreatorId ( ) : int
public static Thread::getCurrentThread ( ) : Thread
public static Thread::getCurrentThreadId ( ) : int
public Thread::getThreadId ( ) : int
public static Thread::globally ( ) : mixed
public Thread::isJoined ( ) : bool
public Thread::isStarted ( ) : bool
public Thread::join ( ) : bool
public Thread::kill ( ) : void
public Thread::start ( int $options = ? ) : bool
}

Inhaltsverzeichnis

  • Worker::collect — Collect references to completed tasks
  • Worker::getStacked — Gets the remaining stack size
  • Worker::isShutdown — State Detection
  • Worker::isWorking — State Detection
  • Worker::shutdown — Shutdown the worker
  • Worker::stack — Stacking work
  • Worker::unstack — Unstacking work


Collect references to completed tasks

  • « Worker
  • Worker::getStacked »
  • PHP Manual
  • Worker
  • Collect references to completed tasks

Worker::collect

(PECL pthreads >= 3.0.0)

Worker::collect — Collect references to completed tasks

Beschreibung

public Worker::collect ( Callable $collector = ? ) : int

Allows the worker to collect references determined to be garbage by the optionally given collector.

Parameter-Liste

collector

A Callable collector that returns a boolean on whether the task can be collected or not. Only in rare cases should a custom collector need to be used.

Rückgabewerte

The number of remaining tasks on the worker's stack to be collected.

Beispiele

Beispiel #1 A basic example of Worker::collect()

<?php
$worker = new Worker();

echo "There are currently {$worker->collect()} tasks on the stack to be collected\n";

for ($i = 0; $i < 15; ++$i) {
    $worker->stack(new class extends Threaded {});
}

echo "There are {$worker->collect()} tasks remaining on the stack to be collected\n";

$worker->start();

while ($worker->collect()); // blocks until all tasks have finished executing

echo "There are now {$worker->collect()} tasks on the stack to be collected\n";

$worker->shutdown();

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

There are currently 0 tasks on the stack to be collected
There are 15 tasks remaining on the stack to be collected
There are now 0 tasks on the stack to be collected


Gets the remaining stack size

  • « Worker::collect
  • Worker::isShutdown »
  • PHP Manual
  • Worker
  • Gets the remaining stack size

Worker::getStacked

(PECL pthreads >= 2.0.0)

Worker::getStacked — Gets the remaining stack size

Beschreibung

public Worker::getStacked ( ) : int

Returns the number of tasks left on the stack

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of tasks currently waiting to be executed by the worker

Beispiele

Beispiel #1 A basic example of Worker::getStacked

<?php
$worker = new Worker();

for ($i = 0; $i < 5; ++$i) {
    $worker->stack(new class extends Threaded {});
}

echo "There are {$worker->getStacked()} stacked tasks\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

There are 5 stacked tasks


State Detection

  • « Worker::getStacked
  • Worker::isWorking »
  • PHP Manual
  • Worker
  • State Detection

Worker::isShutdown

(PECL pthreads >= 2.0.0)

Worker::isShutdown — State Detection

Beschreibung

public Worker::isShutdown ( ) : bool

Whether the worker has been shutdown or not.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns whether the worker has been shutdown or not.

Beispiele

Beispiel #1 Detect the state of a worker

<?php
$worker = new Worker();
$worker->start();

var_dump($worker->isShutdown());

$worker->shutdown();

var_dump($worker->isShutdown());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)


State Detection

  • « Worker::isShutdown
  • Worker::shutdown »
  • PHP Manual
  • Worker
  • State Detection

Worker::isWorking

(PECL pthreads >= 2.0.0)

Worker::isWorking — State Detection

Warnung

This method has been removed in pthreads v3. The Worker::getStacked() method should be used to see if the worker still has tasks to execute.

Beschreibung

public Worker::isWorking ( ) : bool

Tell if a Worker is executing Stackables

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean indication of state

Beispiele

Beispiel #1 Detect the state of a Worker

<?php
$my = new Worker();
$my->start();
/* ... */
if ($my->isWorking()) {
    /* ... the Worker is busy executing another object */
}
?>


Shutdown the worker

  • « Worker::isWorking
  • Worker::stack »
  • PHP Manual
  • Worker
  • Shutdown the worker

Worker::shutdown

(PECL pthreads >= 2.0.0)

Worker::shutdown — Shutdown the worker

Beschreibung

public Worker::shutdown ( ) : bool

Shuts down the worker after executing all of the stacked tasks.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Whether the worker was successfully shutdown or not.

Beispiele

Beispiel #1 Shutdown the referenced worker

<?php
$my = new Worker();
$my->start();
/* stack/execute tasks */
var_dump($my->shutdown());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Stacking work

  • « Worker::shutdown
  • Worker::unstack »
  • PHP Manual
  • Worker
  • Stacking work

Worker::stack

(PECL pthreads >= 2.0.0)

Worker::stack — Stacking work

Beschreibung

public Worker::stack ( Threaded &$work ) : int

Appends the new work to the stack of the referenced worker.

Parameter-Liste

work

A Threaded object to be executed by the worker.

Rückgabewerte

The new size of the stack.

Beispiele

Beispiel #1 Stacking a task for execution onto a worker

<?php
$worker = new Worker();
$work = new class extends Threaded {};

var_dump($worker->stack($work));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)


Unstacking work

  • « Worker::stack
  • Collectable »
  • PHP Manual
  • Worker
  • Unstacking work

Worker::unstack

(PECL pthreads >= 2.0.0)

Worker::unstack — Unstacking work

Beschreibung

public Worker::unstack ( ) : int

Removes the first task (the oldest one) in the stack.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The new size of the stack.

Changelog

Version | Beschreibung
v3 | The parameter to specify the task to unstack has been removed. Now, only the first task in the stack is removed.

Beispiele

Beispiel #1 Removing objects from the stack of Workers

<?php
$my = new Worker();
$work = new class extends Threaded {};

var_dump($my->stack($work));
var_dump($my->unstack());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)
int(0)


The Collectable interface

(PECL pthreads >= 2.0.8)

Einführung

Achtung

Collectable was previously a class (in pthreads v2 and below). Now, it is an interface in pthreads v3 that is implemented by the Threaded class.

Represents a garbage-collectable object.

Interface-Übersicht

Collectable {
/* Methoden */
public isGarbage ( ) : bool
public setGarbage ( ) : void
}

Inhaltsverzeichnis

  • Collectable::isGarbage — Determine whether an object has been marked as garbage
  • Collectable::setGarbage — Mark an object as garbage


Determine whether an object has been marked as garbage

  • « Collectable
  • Collectable::setGarbage »
  • PHP Manual
  • Collectable
  • Determine whether an object has been marked as garbage

Collectable::isGarbage

(PECL pthreads >= 2.0.8)

Collectable::isGarbage — Determine whether an object has been marked as garbage

Beschreibung

public Collectable::isGarbage ( ) : bool

Can be called in Pool::collect() to determine if this object is garbage.

Siehe auch

  • Pool::collect() - Collect references to completed tasks


Mark an object as garbage

  • « Collectable::isGarbage
  • Modifiers »
  • PHP Manual
  • Collectable
  • Mark an object as garbage

Collectable::setGarbage

(PECL pthreads < 3.0.0)

Collectable::setGarbage — Mark an object as garbage

Warnung

This method has been removed in pthreads v3.

Beschreibung

public Collectable::setGarbage ( ) : void

Should be called once per object when the object is finished being executed or referenced.

Siehe auch

  • Collectable::isGarbage() - Determine whether an object has been marked as garbage


Method Modifiers

Warnung

These semantics are only applicable to pthreads v2 - they have been removed in pthreads v3.

pthreads overrides the functionality of the protected and private method modifiers in order to provide functionality more suited to multi-threaded objects. pthreads applies this functionality to all Threaded objects from creation.

Beispiel #1 protected method example: protected methods can only be executed by one Thread at a time.

<?php
class ExampleThread extends Thread {
    public function run() {
        /* thread code */
        if ($this->synchronized()) {

        }
    }

    protected function exclusive() {
        /* synchronized method */
    }
}

$thread = new ExampleThread();
if ($thread->start()) {
    $thread->exclusive();
}
?>

Beispiel #2 private method example: private methods may only be executed by the Threaded object during execution

<?php
class ExampleThread extends Thread {
    public function run() {
        /* thread code */
        if ($this->insideonly()) {

        }
    }

    private function insideonly() {
        /* private method */
    }
}

$thread = new ExampleThread();
if ($thread->start()) {
    $thread->insideonly();
}
?>


The Pool class

(PECL pthreads >= 2.0.0)

Einführung

A Pool is a container for, and controller of, an adjustable number of Workers.

Pooling provides a higher level abstraction of the Worker functionality, including the management of references in the way required by pthreads.

Klassenbeschreibung

Pool {
/* Eigenschaften */
protected $size ;
protected $class ;
protected $workers ;
protected $ctor ;
protected $last ;
/* Methoden */
public collect ( Callable $collector = ? ) : int
public __construct ( int $size , string $class = ? , array $ctor = ? ) : Pool
public resize ( int $size ) : void
public shutdown ( ) : void
public submit ( Threaded $task ) : int
public submitTo ( int $worker , Threaded $task ) : int
}

Eigenschaften

size

maximum number of Workers this Pool can use

class

the class of the Worker

workers

references to Workers

ctor

the arguments for constructor of new Workers

last

offset in workers of the last Worker used

Inhaltsverzeichnis

  • Pool::collect — Collect references to completed tasks
  • Pool::__construct — Creates a new Pool of Workers
  • Pool::resize — Resize the Pool
  • Pool::shutdown — Shutdown all workers
  • Pool::submit — Submits an object for execution
  • Pool::submitTo — Submits a task to a specific worker for execution


Collect references to completed tasks

  • « Pool
  • Pool::__construct »
  • PHP Manual
  • Pool
  • Collect references to completed tasks

Pool::collect

(PECL pthreads >= 2.0.0)

Pool::collect — Collect references to completed tasks

Beschreibung

public Pool::collect ( Callable $collector = ? ) : int

Allows the pool to collect references determined to be garbage by the optionally given collector.

Parameter-Liste

collector

A Callable collector that returns a boolean on whether the task can be collected or not. Only in rare cases should a custom collector need to be used.

Rückgabewerte

The number of remaining tasks in the pool to be collected.

Changelog

Version | Beschreibung
v3 | An integer is now returned, and the collector parameter is now optional.

Beispiele

Beispiel #1 A basic example of Pool::collect()

<?php
$pool = new Pool(4);

for ($i = 0; $i < 15; ++$i) {
    $pool->submit(new class extends Threaded {});
}

while ($pool->collect()); // blocks until all tasks have finished executing

$pool->shutdown();


Creates a new Pool of Workers

  • « Pool::collect
  • Pool::resize »
  • PHP Manual
  • Pool
  • Creates a new Pool of Workers

Pool::__construct

(PECL pthreads >= 2.0.0)

Pool::__construct — Creates a new Pool of Workers

Beschreibung

public Pool::__construct ( int $size , string $class = ? , array $ctor = ? ) : Pool

Construct a new pool of workers. Pools lazily create their threads, which means new threads will only be spawned when they are required to execute tasks.

Parameter-Liste

size

The maximum number of workers for this pool to create

class

The class for new Workers. If no class is given, then it defaults to the Worker class.

ctor

An array of arguments to be passed to new workers' constructors

Rückgabewerte

The new pool

Beispiele

Beispiel #1 Creating Pools

<?php
class MyWorker extends Worker {

    public function __construct(Something $something) {
        $this->something = $something;
    }

    public function run() {
        /** ... **/
    }
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);

var_dump($pool);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  NULL
  ["work":protected]=>
  NULL
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(0)
}


Resize the Pool

  • « Pool::__construct
  • Pool::shutdown »
  • PHP Manual
  • Pool
  • Resize the Pool

Pool::resize

(PECL pthreads >= 2.0.0)

Pool::resize — Resize the Pool

Beschreibung

public Pool::resize ( int $size ) : void

Resize the Pool

Parameter-Liste

size

The maximum number of Workers this Pool can create

Rückgabewerte

void


Shutdown all workers

  • « Pool::resize
  • Pool::submit »
  • PHP Manual
  • Pool
  • Shutdown all workers

Pool::shutdown

(PECL pthreads >= 2.0.0)

Pool::shutdown — Shutdown all workers

Beschreibung

public Pool::shutdown ( ) : void

Shuts down all of the workers in the pool. This will block until all submitted tasks have been executed.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No value is returned.

Beispiele

Beispiel #1 Shutting down a pool

<?php
class Task extends Threaded
{
    public function run()
    {
        usleep(500000);
    }
}

$pool = new Pool(4);

for ($i = 0; $i < 10; ++$i) {
    $pool->submit(new Task());
}

$pool->shutdown(); // blocks until all submitted tasks have finished executing


Submits an object for execution

  • « Pool::shutdown
  • Pool::submitTo »
  • PHP Manual
  • Pool
  • Submits an object for execution

Pool::submit

(PECL pthreads >= 2.0.0)

Pool::submit — Submits an object for execution

Beschreibung

public Pool::submit ( Threaded $task ) : int

Submit the task to the next Worker in the Pool

Parameter-Liste

task

The task for execution

Rückgabewerte

the identifier of the Worker executing the object

Beispiele

Beispiel #1 Submitting Tasks

<?php
class MyWork extends Threaded {

    public function run() {
        /* ... */
    }
}

class MyWorker extends Worker {

    public function __construct(Something $something) {
        $this->something = $something;
    }

    public function run() {
        /** ... **/
    }
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);
$pool->submit(new MyWork());
var_dump($pool);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  array(1) {
    [0]=>
    object(MyWorker)#4 (1) {
      ["something"]=>
      object(Something)#5 (0) {
      }
    }
  }
  ["work":protected]=>
  array(1) {
    [0]=>
    object(MyWork)#3 (1) {
      ["worker"]=>
      object(MyWorker)#5 (1) {
        ["something"]=>
        object(Something)#6 (0) {
        }
      }
    }
  }
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(1)
}


Submits a task to a specific worker for execution

  • « Pool::submit
  • Mutex »
  • PHP Manual
  • Pool
  • Submits a task to a specific worker for execution

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitTo — Submits a task to a specific worker for execution

Beschreibung

public Pool::submitTo ( int $worker , Threaded $task ) : int

Submit a task to the specified worker in the pool. The workers are indexed from 0, and will only exist if the pool has needed to create them (since threads are lazily spawned).

Parameter-Liste

worker

The worker to stack the task onto, indexed from 0.

task

The task for execution.

Rückgabewerte

The identifier of the worker that accepted the task.

Beispiele

Beispiel #1 Submitting tasks to a specific worker

<?php
class Task extends Threaded {
    public function run() {
        var_dump(Thread::getCurrentThreadID());
    }
}

$pool = new Pool(2);

$pool->submit(new Task());

for ($i = 0; $i < 5; ++$i) {
    $pool->submitTo(0, new Task()); // stack all tasks onto the first worker
}

$pool->submitTo(1, new Task()); // cannot stack the task onto the second worker due to it not existing yet

$pool->shutdown();

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)

Fatal error: Uncaught Exception: The selected worker (1) does not exist in %s:%d


The Mutex class

(PECL pthreads < 3.0.0)

Einführung

Warnung

The Mutex class has been removed in pthreads v3.

The static methods contained in the Mutex class provide direct access to Posix Mutex functionality.

Klassenbeschreibung

Mutex {
/* Methoden */
final public static create ( bool $lock = ? ) : int
final public static destroy ( int $mutex ) : bool
final public static lock ( int $mutex ) : bool
final public static trylock ( int $mutex ) : bool
final public static unlock ( int $mutex , bool $destroy = ? ) : bool
}

Inhaltsverzeichnis

  • Mutex::create — Create a Mutex
  • Mutex::destroy — Destroy Mutex
  • Mutex::lock — Acquire Mutex
  • Mutex::trylock — Attempt to Acquire Mutex
  • Mutex::unlock — Release Mutex


Create a Mutex

  • « Mutex
  • Mutex::destroy »
  • PHP Manual
  • Mutex
  • Create a Mutex

Mutex::create

(PECL pthreads < 3.0.0)

Mutex::create — Create a Mutex

Warnung

The Mutex class has been removed in pthreads v3.

Beschreibung

final public static Mutex::create ( bool $lock = ? ) : int

Create, and optionally lock a new Mutex for the caller

Parameter-Liste

lock

Setting lock to true will lock the Mutex for the caller before returning the handle

Rückgabewerte

A newly created and optionally locked Mutex handle

Beispiele

Beispiel #1 Mutex Creation and Destruction

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You have the physical address of the Mutex **/
var_dump($mutex);
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(40096976)


Destroy Mutex

  • « Mutex::create
  • Mutex::lock »
  • PHP Manual
  • Mutex
  • Destroy Mutex

Mutex::destroy

(PECL pthreads < 3.0.0)

Mutex::destroy — Destroy Mutex

Warnung

The Mutex class has been removed in pthreads v3.

Beschreibung

final public static Mutex::destroy ( int $mutex ) : bool

Destroying Mutex handles must be carried out explicitly by the programmer when they are finished with the Mutex handle.

Parameter-Liste

mutex

A handle returned by a previous call to Mutex::create(). The handle should not be locked by any Thread when Mutex::destroy() is called.

Rückgabewerte

A boolean indication of success

Beispiele

Beispiel #1 Mutex Creation and Destruction

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You have the physical address of the Mutex **/
var_dump($mutex);
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(40096976)


Acquire Mutex

  • « Mutex::destroy
  • Mutex::trylock »
  • PHP Manual
  • Mutex
  • Acquire Mutex

Mutex::lock

(PECL pthreads < 3.0.0)

Mutex::lock — Acquire Mutex

Warnung

The Mutex class has been removed in pthreads v3.

Beschreibung

final public static Mutex::lock ( int $mutex ) : bool

Attempt to lock the Mutex for the caller.

An attempt to lock a Mutex owned (locked) by another Thread will result in blocking.

Parameter-Liste

mutex

A handle returned by a previous call to Mutex::create().

Rückgabewerte

A boolean indication of success.

Beispiele

Beispiel #1 Mutex Locking and Unlocking

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You can now lock the mutex in any context **/
var_dump(Mutex::lock($mutex));
/** It is invalid to attempt to destroy a locked Mutex **/
var_dump(Mutex::unlock($mutex));
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)


Attempt to Acquire Mutex

  • « Mutex::lock
  • Mutex::unlock »
  • PHP Manual
  • Mutex
  • Attempt to Acquire Mutex

Mutex::trylock

(PECL pthreads < 3.0.0)

Mutex::trylock — Attempt to Acquire Mutex

Warnung

The Mutex class has been removed in pthreads v3.

Beschreibung

final public static Mutex::trylock ( int $mutex ) : bool

Attempt to lock the Mutex for the caller without blocking if the Mutex is owned (locked) by another Thread.

Parameter-Liste

mutex

A handle returned by a previous call to Mutex::create().

Rückgabewerte

A boolean indication of success.

Beispiele

Beispiel #1 Mutex Locking and Unlocking

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You can now try to lock the mutex in any context **/
var_dump(Mutex::trylock($mutex));
/** It is invalid to attempt to destroy a locked Mutex **/
var_dump(Mutex::unlock($mutex));
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)


Release Mutex

  • « Mutex::trylock
  • Cond »
  • PHP Manual
  • Mutex
  • Release Mutex

Mutex::unlock

(PECL pthreads < 3.0.0)

Mutex::unlock — Release Mutex

Warnung

The Mutex class has been removed in pthreads v3.

Beschreibung

final public static Mutex::unlock ( int $mutex , bool $destroy = ? ) : bool

Attempts to unlock the Mutex for the caller, optionally destroying the Mutex handle. The calling thread should own the Mutex at the time of the call.

Parameter-Liste

mutex

A handle returned by a previous call to Mutex::create().

destroy

When true pthreads will destroy the Mutex after a successful unlock.

Rückgabewerte

A boolean indication of success.

Beispiele

Beispiel #1 Mutex Locking and Unlocking

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You can now lock the mutex in any context **/
var_dump(Mutex::lock($mutex));
/** It is invalid to attempt to destroy a locked Mutex **/
var_dump(Mutex::unlock($mutex));
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)


The Cond class

(PECL pthreads < 3.0.0)

Einführung

Warnung

The Cond class has been removed in pthreads v3.

The static methods contained in the Cond class provide direct access to Posix Condition Variables.

Klassenbeschreibung

Cond {
/* Methoden */
final public static broadcast ( int $condition ) : bool
final public static create ( ) : int
final public static destroy ( int $condition ) : bool
final public static signal ( int $condition ) : bool
final public static wait ( int $condition , int $mutex , int $timeout = ? ) : bool
}

Inhaltsverzeichnis

  • Cond::broadcast — Broadcast a Condition
  • Cond::create — Create a Condition
  • Cond::destroy — Destroy a Condition
  • Cond::signal — Signal a Condition
  • Cond::wait — Wait for Condition


Broadcast a Condition

  • « Cond
  • Cond::create »
  • PHP Manual
  • Cond
  • Broadcast a Condition

Cond::broadcast

(PECL pthreads < 3.0.0)

Cond::broadcast — Broadcast a Condition

Warnung

The Cond class has been removed in pthreads v3.

Beschreibung

final public static Cond::broadcast ( int $condition ) : bool

Broadcast to all Threads blocking on a call to Cond::wait().

Parameter-Liste

condition

A handle to a Condition Variable returned by a previous call to Cond::create()

Rückgabewerte

A boolean indication of success.

Beispiele

Beispiel #1 Condition Broadcasting

<?php
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** The caller must lock the associated Mutex before a call to broadcast **/
var_dump(Cond::broadcast($cond));
/** Always destroy Cond you have created **/
Cond::destroy($cond);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Create a Condition

  • « Cond::broadcast
  • Cond::destroy »
  • PHP Manual
  • Cond
  • Create a Condition

Cond::create

(PECL pthreads < 3.0.0)

Cond::create — Create a Condition

Warnung

The Cond class has been removed in pthreads v3.

Beschreibung

final public static Cond::create ( ) : int

Creates a new Condition Variable for the caller.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A handle to a Condition Variable

Beispiele

Beispiel #1 Condition Creation and Destruction

<?php
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** You can now use the Cond in any context **/
var_dump($cond);
/** Always destroy Cond you have created **/
Cond::destroy($cond);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(4540682)


Destroy a Condition

  • « Cond::create
  • Cond::signal »
  • PHP Manual
  • Cond
  • Destroy a Condition

Cond::destroy

(PECL pthreads < 3.0.0)

Cond::destroy — Destroy a Condition

Warnung

The Cond class has been removed in pthreads v3.

Beschreibung

final public static Cond::destroy ( int $condition ) : bool

Destroying Condition Variable handles must be carried out explicitly by the programmer when they are finished with the Condition Variable. No Threads should be blocking on a call to Cond::wait() when the call to Cond::destroy() takes place.

Parameter-Liste

condition

A handle to a Condition Variable returned by a previous call to Cond::create()

Rückgabewerte

A boolean indication of success.

Beispiele

Beispiel #1 Condition Creation and Destruction

<?php
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** You can now use the Cond in any context **/
var_dump($cond);
/** Always destroy Cond you have created **/
Cond::destroy($cond);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(4540682)


Signal a Condition

  • « Cond::destroy
  • Cond::wait »
  • PHP Manual
  • Cond
  • Signal a Condition

Cond::signal

(PECL pthreads < 3.0.0)

Cond::signal — Signal a Condition

Warnung

The Cond class has been removed in pthreads v3.

Beschreibung

final public static Cond::signal ( int $condition ) : bool

Parameter-Liste

condition

A handle returned by a previous call to Cond::create()

Rückgabewerte

A boolean indication of success.

Beispiele

Beispiel #1 Condition Signalling

<?php
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** The caller must lock the associated Mutex before a call to broadcast **/
var_dump(Cond::signal($cond));
/** Always destroy Cond you have created **/
Cond::destroy($cond);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)


Wait for Condition

  • « Cond::signal
  • Volatile »
  • PHP Manual
  • Cond
  • Wait for Condition

Cond::wait

(PECL pthreads < 3.0.0)

Cond::wait — Wait for Condition

Warnung

The Cond class has been removed in pthreads v3.

Beschreibung

final public static Cond::wait ( int $condition , int $mutex , int $timeout = ? ) : bool

Wait for a signal on a Condition Variable, optionally specifying a timeout to limit waiting time.

Parameter-Liste

condition

A handle returned by a previous call to Cond::create().

mutex

A handle returned by a previous call to Mutex::create() and owned (locked) by the caller.

timeout

An optional timeout, in microseconds ( millionths of a second ).

Rückgabewerte

A boolean indication of success.

Beispiele

Beispiel #1 Waiting for Conditions

<?php
/** PLEASE NOTE THIS EXAMPLE WILL CAUSE THE PROCESS TO HANG **/
$mutex = Mutex::create(true);
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** The caller must lock the associated Mutex before a call to broadcast **/
var_dump(Cond::wait($cond, $mutex));
/** Always destroy Cond you have created **/
Cond::destroy($cond);
Mutex::unlock($mutex);
Mutex::destroy($mutex);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(49685473)


The Volatile class

(PECL pthreads >= 3.0.0)

Einführung

The Volatile class is new to pthreads v3. Its introduction is a consequence of the new immutability semantics of Threaded members of Threaded classes. The Volatile class enables for mutability of its Threaded members, and is also used to store PHP arrays in Threaded contexts.

Klassenbeschreibung

Volatile extends Threaded implements Collectable , Traversable {
/* Geerbte Methoden */
public Threaded::chunk ( int $size , bool $preserve ) : array
public Threaded::count ( ) : int
public Threaded::extend ( string $class ) : bool
public Threaded::from ( Closure $run , Closure $construct = ? , array $args = ? ) : Threaded
public Threaded::getTerminationInfo ( ) : array
public Threaded::isRunning ( ) : bool
public Threaded::isTerminated ( ) : bool
public Threaded::isWaiting ( ) : bool
public Threaded::lock ( ) : bool
public Threaded::merge ( mixed $from , bool $overwrite = ? ) : bool
public Threaded::notify ( ) : bool
public Threaded::notifyOne ( ) : bool
public Threaded::pop ( ) : bool
public Threaded::run ( ) : void
public Threaded::shift ( ) : mixed
public Threaded::synchronized ( Closure $block , mixed ...$args ) : mixed
public Threaded::unlock ( ) : bool
public Threaded::wait ( int $timeout = ? ) : bool
}

Beispiele

Beispiel #1 New immutability semantics of Threaded

<?php

class Task extends Threaded
{
    public function __construct()
    {
        $this->data = new Threaded();

        // attempt to overwrite a Threaded property of a Threaded class (invalid)
        $this->data = new StdClass();
    }
}

var_dump((new Task())->data);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

RuntimeException: Threaded members previously set to Threaded objects are immutable, cannot overwrite data in %s:%d

Beispiel #2 Volatile use-case

<?php

class Task extends Volatile
{
    public function __construct()
    {
        $this->data = new Threaded();

        // attempt to overwrite a Threaded property of a Volatile class (valid)
        $this->data = new StdClass();
    }
}

var_dump((new Task())->data);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#3 (0) {
}


pht

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
  • pht\Thread — The Thread class
    • pht\Thread::addClassTask — Class threading
    • pht\Thread::addFileTask — File threading
    • pht\Thread::addFunctionTask — Function threading
    • pht\Thread::join — Joins a thread
    • pht\Thread::start — Starts the new thread
    • pht\Thread::taskCount — Gets a thread's task count
  • pht\Runnable — The Runnable interface
    • pht\Runnable::run — The entry point of a threaded class
  • pht\HashTable — The HashTable class
    • pht\HashTable::lock — Acquires the hash table's mutex lock
    • pht\HashTable::size — Gets the size of the hash table
    • pht\HashTable::unlock — Releases the hash table's mutex lock
  • pht\Vector — The Vector class
    • pht\Vector::__construct — Vector creation
    • pht\Vector::deleteAt — Deletes a value in the vector
    • pht\Vector::insertAt — Inserts a value into the vector
    • pht\Vector::lock — Acquires the vector's mutex lock
    • pht\Vector::pop — Pops a value to the vector
    • pht\Vector::push — Pushes a value to the vector
    • pht\Vector::resize — Resizes a vector
    • pht\Vector::shift — Shifts a value from the vector
    • pht\Vector::size — Gets the size of the vector
    • pht\Vector::unlock — Releases the vector's mutex lock
    • pht\Vector::unshift — Unshifts a value to the vector front
    • pht\Vector::updateAt — Updates a value in the vector
  • pht\Queue — The Queue class
    • pht\Queue::front — Returns the first value from a queue
    • pht\Queue::lock — Acquires the queue's mutex lock
    • pht\Queue::pop — Pops a value off of the front of a queue
    • pht\Queue::push — Pushes a value to the end of a queue
    • pht\Queue::size — Gets the size of the queue
    • pht\Queue::unlock — Releases the queue's mutex lock
  • pht\AtomicInteger — The AtomicInteger class
    • pht\AtomicInteger::__construct — AtomicInteger creation
    • pht\AtomicInteger::dec — Decrements the atomic integer's value by one
    • pht\AtomicInteger::get — Gets the atomic integer's value
    • pht\AtomicInteger::inc — Increments the atomic integer's value by one
    • pht\AtomicInteger::lock — Acquires the atomic integer's mutex lock
    • pht\AtomicInteger::set — Sets the atomic integer's value
    • pht\AtomicInteger::unlock — Releases the atomic integer's mutex lock
  • pht\Threaded — The Threaded interface
    • pht\Threaded::lock — Acquires the mutex lock
    • pht\Threaded::unlock — Releases the mutex lock


Einführung

pht is a new threading extension for PHP. It enables for classes, functions, and even entire files to be threaded. Currently, pht can only be used with PHP 7.2. This is due to ZTS mode being unsafe in PHP 7.0 and 7.1. Support for PHP >7.2 is coming soon.

Warnung

The pht extension should not be used in a web server environment. Threading should be restricted to CLI-based applications only.

The approach to threading that pht takes is to abstract away the thread itself behind a dedicated object (pht\Thread). Tasks are then added to the thread's internal task queue, where they are processed when the thread is started (via pht\Thread::start()).

All thread tasks will execute in isolation inside of the newly spawned thread. For class tasks, this means the spawned objects cannot be passed around between threads. By keeping the threading contexts completely separate from one-another, there becomes no need to serialise the properties of threaded objects (which is a necessary evil if such objects have to operate in multiple threads).

The isolation of threading contexts makes the passing around of data between them somewhat problematic. To solve this problem, threadable data structures (pht\HashTable, pht\Vector, and pht\Queue) have been implemented to allow for a two-way communication style between threads, where they expose mutex locks to control their integrity. These data structures can be safely passed around between threads, and manipulated by multiple threads using the mutex locks that have been packed in with them. They are reference-counted across threads, and so they do not need to be explicitly destroyed. This approach to threading means that only the given built-in data structures need to be safely passed around between threads.

Atomic values are also supported by pht. Currently, only an pht\AtomicInteger class exists. Like the threaded data structures, it too can safely be passed around between threads.


Anforderungen

pht requires a ZTS (Zend Thread Safety) version of PHP. Currently, only PHP 7.2 is supported. Support for PHP 7.3 (which will be released at the end of 2018) will be coming soon. PHP 7.0 and 7.1 are unsafe to support, due to race conditions in ZTS mode.

pht should be compatible for any OS with the pthread library (or pthread-win32 library, which is for Windows).


Installation

pht releases are hosted (along with its source code) on the » pht GitHub repository. Unix developers will need to build from source (» instructions here). Windows developers can download the appropriate .dll file from the » repository's releases page. They will need to ensure that the provided pthreadVC2.dll file (which is distributed alongside the extension's .dll file) is made available in their PATH environment variable.


  • « Installation
  • pht\Thread »
  • PHP Manual
  • Installation/Konfiguration
  • Laufzeit-Konfiguration

Laufzeit-Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.


The Thread class

(PECL pht >= 0.0.1)

Einführung

The pht\Thread class abstracts away a native thread. It has an internal task queue, where the methods pht\Thread::addClassTask(), pht\Thread::addFunctionTask(), and pht\Thread::addFileTask() push new tasks onto this queue. Invoking the pht\Thread::start() method will cause the new thread to be spawned, where it will then begin working through the task queue. A thread may be reused for any number of tasks.

Klassenbeschreibung

pht\Thread {
/* Methoden */
public addClassTask ( string $className , mixed ...$ctorArgs ) : void
public addFileTask ( string $fileName , mixed ...$globals ) : void
public addFunctionTask ( callable $func , mixed ...$funcArgs ) : void
public join ( ) : void
public start ( ) : void
public taskCount ( ) : int
}

Inhaltsverzeichnis

  • pht\Thread::addClassTask — Class threading
  • pht\Thread::addFileTask — File threading
  • pht\Thread::addFunctionTask — Function threading
  • pht\Thread::join — Joins a thread
  • pht\Thread::start — Starts the new thread
  • pht\Thread::taskCount — Gets a thread's task count


Class threading

  • « pht\Thread
  • pht\Thread::addFileTask »
  • PHP Manual
  • pht\Thread
  • Class threading

pht\Thread::addClassTask

(PECL pht >= 0.0.1)

pht\Thread::addClassTask — Class threading

Beschreibung

public pht\Thread::addClassTask ( string $className , mixed ...$ctorArgs ) : void

Adds a new class task to a pht\Threads internal task queue.

Parameter-Liste

className

The name of the class to be threaded. This class must implement the pht\Runnable interface.

ctorArgs

An optional list of arguments for the threaded class' constructor. These arguments will be serialised (since they are being passed to another thread).

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Adding a new class task to a thread

<?php

use pht\{Thread, Runnable};

class Task implements Runnable
{
    private $one;

    public function __construct(int $one)
    {
        $this->one = $one;
    }

    public function run()
    {
        var_dump($this->one);
    }
}

$thread = new Thread();

$thread->addClassTask(Task::class, 1);

$thread->start();
$thread->join();

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)


File threading

  • « pht\Thread::addClassTask
  • pht\Thread::addFunctionTask »
  • PHP Manual
  • pht\Thread
  • File threading

pht\Thread::addFileTask

(PECL pht >= 0.0.1)

pht\Thread::addFileTask — File threading

Beschreibung

public pht\Thread::addFileTask ( string $fileName , mixed ...$globals ) : void

Adds a new file task to a pht\Threads internal task queue.

Parameter-Liste

func

The name of the file to be threaded.

globals

An optional list of arguments for the file. These arguments will be placed into a $_THREAD superglobal, which will be made available inside of the threaded file. All arguments will be serialised (since they are being passed to another thread).

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Adding a new file task to a thread

<?php

use pht\Thread;

$thread = new Thread();

$thread->addFileTask('file.php', 1, 2, 3);

$thread->start();
$thread->join();

file.php:

<?php

[$one, $two, $three] = $_THREAD;

var_dump($one, $two, $three);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)
int(2)
int(3)


Function threading

  • « pht\Thread::addFileTask
  • pht\Thread::join »
  • PHP Manual
  • pht\Thread
  • Function threading

pht\Thread::addFunctionTask

(PECL pht >= 0.0.1)

pht\Thread::addFunctionTask — Function threading

Beschreibung

public pht\Thread::addFunctionTask ( callable $func , mixed ...$funcArgs ) : void

Adds a new function task to a pht\Threads internal task queue.

Parameter-Liste

func

The function to be threaded. If it is bound to an instance, then $this will become null.

funcArgs

An optional list of arguments for the function. These arguments will be serialised (since they are being passed to another thread).

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Adding a new function task to a thread

<?php

use pht\Thread;

class Test
{
    public static function run(){var_dump(5);}
    public static function run2(){var_dump(6);}
}

function aFunc(){var_dump(3);}

$thread = new Thread();

$thread->addFunctionTask(static function($one) {var_dump($one);}, 1);
$thread->addFunctionTask(function() {var_dump(2);});
$thread->addFunctionTask('aFunc');
$thread->addFunctionTask('array_map', function ($n) {var_dump($n);}, [4]);
$thread->addFunctionTask(['Test', 'run']);
$thread->addFunctionTask([new Test, 'run2']);

$thread->start();
$thread->join();

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)
int(2)
int(3)
int(4)
int(5)
int(6)


Joins a thread

  • « pht\Thread::addFunctionTask
  • pht\Thread::start »
  • PHP Manual
  • pht\Thread
  • Joins a thread

pht\Thread::join

(PECL pht >= 0.0.1)

pht\Thread::join — Joins a thread

Beschreibung

public pht\Thread::join ( ) : void

This method will join the spawned thread (though it will first wait for that thread's internal task queue to finish). As a matter of good practice, threads should always be joined. Not joining a thread may lead to undefined behaviour.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Joining a thread

<?php

use pht\Thread;

$thread = new Thread();

$thread->start();
$thread->join();


Starts the new thread

  • « pht\Thread::join
  • pht\Thread::taskCount »
  • PHP Manual
  • pht\Thread
  • Starts the new thread

pht\Thread::start

(PECL pht >= 0.0.1)

pht\Thread::start — Starts the new thread

Beschreibung

public pht\Thread::start ( ) : void

This will cause a new thread to be spawned for the associated pht\Thread object, where its internal task queue will begin to be processed.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Starting a new thread

<?php

use pht\Thread;

$thread = new Thread();

$thread->start();
$thread->join();


Gets a thread's task count

  • « pht\Thread::start
  • pht\Runnable »
  • PHP Manual
  • pht\Thread
  • Gets a thread's task count

pht\Thread::taskCount

(PECL pht >= 0.0.1)

pht\Thread::taskCount — Gets a thread's task count

Beschreibung

public pht\Thread::taskCount ( ) : int

Retrieves the current task count of a pht\Thread.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of tasks remaining to be processed.

Beispiele

Beispiel #1 Getting the task count of a thread

<?php

use pht\Thread;

$thread = new Thread();

$thread->addFunctionTask(function (){});
$thread->addFunctionTask(function (){});
$thread->addFunctionTask(function (){});

var_dump($thread->taskCount());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(3)


The Runnable interface

(PECL pht >= 0.0.1)

Einführung

The pht\Runnable interface enforces the implementation of a run() method on classes that should be threaded. This method acts as the entry point of the threaded class.

Interface-Übersicht

pht\Runnable {
/* Methoden */
public run ( ) : void
}

Inhaltsverzeichnis

  • pht\Runnable::run — The entry point of a threaded class


The entry point of a threaded class

  • « pht\Runnable
  • pht\HashTable »
  • PHP Manual
  • pht\Runnable
  • The entry point of a threaded class

pht\Runnable::run

(PECL pht >= 0.0.1)

pht\Runnable::run — The entry point of a threaded class

Beschreibung

public pht\Runnable::run ( ) : void

This method acts as the entry point of execution for a threaded class. It must be defined by all classes that will be threaded.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.


The HashTable class

(PECL pht >= 0.0.1)

Einführung

The pht\HashTable class is one of the Inter-Thread Communication (ITC) data structures exposed by pht. It can be safely passed around between threads, and manipulated by multiple threads using the mutex locks that have been packed in with the data structure. It is reference-counted across threads, and so it does not need to be explicitly destroyed.

The pht\HashTable class enables for array access upon its objects (along with the isset() and unset() functions). The ArrayAccess interface is not explicitly implemented, however, because it is only needed for such abilities by userland classes.

Klassenbeschreibung

pht\HashTable implements pht\Threaded {
/* Methoden */
public lock ( ) : void
public size ( ) : int
public unlock ( ) : void
}

Inhaltsverzeichnis

  • pht\HashTable::lock — Acquires the hash table's mutex lock
  • pht\HashTable::size — Gets the size of the hash table
  • pht\HashTable::unlock — Releases the hash table's mutex lock


Acquires the hash table's mutex lock

  • « pht\HashTable
  • pht\HashTable::size »
  • PHP Manual
  • pht\HashTable
  • Acquires the hash table's mutex lock

pht\HashTable::lock

(PECL pht >= 0.0.1)

pht\HashTable::lock — Acquires the hash table's mutex lock

Beschreibung

public pht\HashTable::lock ( ) : void

This method will acquire the mutex lock associated with the hash table. The mutex lock should always be acquired when manipulating the hash table if it is being used by multiple threads.

The mutex locks of the Inter-Thread Communication (ITC) data structures are not reentrant. Attempting to reacquire an already-acquired mutex lock by the same thread will therefore cause a deadlock.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Locking a hash table's mutex lock

<?php

use pht\{Thread, HashTable};

$thread = new Thread();
$hashTable = new HashTable();

$thread->addFunctionTask(function ($hashTable) {
    $hashTable->lock();
    $hashTable['a'] = 1;
    $hashTable->unlock();
}, $hashTable);

$thread->start();

// $hashTable is currently being used by multiple threads
$hashTable->lock();
$hashTable['b'] = 2;
$hashTable->unlock();

$thread->join();


Gets the size of the hash table

  • « pht\HashTable::lock
  • pht\HashTable::unlock »
  • PHP Manual
  • pht\HashTable
  • Gets the size of the hash table

pht\HashTable::size

(PECL pht >= 0.0.1)

pht\HashTable::size — Gets the size of the hash table

Beschreibung

public pht\HashTable::size ( ) : int

Returns the current size of the hash table. This operation requires a pht\HashTable's mutex lock to be held if it is being used by multiple threads.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The size of the hash table.

Beispiele

Beispiel #1 Getting a hash table's size

<?php

use pht\HashTable;

$hashTable = new HashTable();

$hashTable['a'] = 1;
$hashTable['b'] = 2;

var_dump($hashTable->size());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2)


Releases the hash table's mutex lock

  • « pht\HashTable::size
  • pht\Vector »
  • PHP Manual
  • pht\HashTable
  • Releases the hash table's mutex lock

pht\HashTable::unlock

(PECL pht >= 0.0.1)

pht\HashTable::unlock — Releases the hash table's mutex lock

Beschreibung

public pht\HashTable::unlock ( ) : void

This method will release the mutex lock associated with the hash table.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Locking a hash table's mutex lock

<?php

use pht\{Thread, HashTable};

$thread = new Thread();
$hashTable = new HashTable();

$thread->addFunctionTask(function ($hashTable) {
    $hashTable->lock();
    $hashTable['a'] = 1;
    $hashTable->unlock();
}, $hashTable);

$thread->start();

// $hashTable is currently being used by multiple threads
$hashTable->lock();
$hashTable['b'] = 2;
$hashTable->unlock();

$thread->join();


The Vector class

(PECL pht >= 0.0.1)

Einführung

The pht\Vector class is one of the Inter-Thread Communication (ITC) data structures exposed by pht. It can be safely passed around between threads, and manipulated by multiple threads using the mutex locks that have been packed in with the data structure. It is reference-counted across threads, and so is does not need to be explicitly destroyed.

The pht\Vector class enables for array access upon its objects (along with the isset() and unset() functions). The ArrayAccess interface is not explicitly implemented, however, because it is only needed for such abilities by userland classes.

Klassenbeschreibung

pht\Vector implements pht\Threaded {
/* Methoden */
public __construct ( int $size = 0 , mixed $value = 0 ) : Vector
public deleteAt ( int $offset ) : void
public insertAt ( mixed $value , int $offset ) : void
public lock ( ) : void
public pop ( ) : mixed
public push ( mixed $value ) : void
public resize ( int $size , mixed $value = 0 ) : void
public shift ( ) : mixed
public size ( ) : int
public unlock ( ) : void
public unshift ( mixed $value ) : void
public updateAt ( mixed $value , int $offset ) : void
}

Inhaltsverzeichnis

  • pht\Vector::__construct — Vector creation
  • pht\Vector::deleteAt — Deletes a value in the vector
  • pht\Vector::insertAt — Inserts a value into the vector
  • pht\Vector::lock — Acquires the vector's mutex lock
  • pht\Vector::pop — Pops a value to the vector
  • pht\Vector::push — Pushes a value to the vector
  • pht\Vector::resize — Resizes a vector
  • pht\Vector::shift — Shifts a value from the vector
  • pht\Vector::size — Gets the size of the vector
  • pht\Vector::unlock — Releases the vector's mutex lock
  • pht\Vector::unshift — Unshifts a value to the vector front
  • pht\Vector::updateAt — Updates a value in the vector


Vector creation

  • « pht\Vector
  • pht\Vector::deleteAt »
  • PHP Manual
  • pht\Vector
  • Vector creation

pht\Vector::__construct

(PECL pht >= 0.0.1)

pht\Vector::__construct — Vector creation

Beschreibung

public pht\Vector::__construct ( int $size = 0 , mixed $value = 0 ) : Vector

Handles the creation of a new vector.

Parameter-Liste

size

The size of the vector that will be created.

value

The value to initialise the empty slots in the vector to.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Creating a new vector

<?php

use pht\Vector;

$vector1 = new Vector(1);
$vector2 = new Vector(2, 1);

var_dump($vector1, $vector2);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(pht\Vector)#1 (1) {
  [0]=>
  int(0)
}
object(pht\Vector)#2 (2) {
  [0]=>
  int(1)
  [1]=>
  int(1)
}


Deletes a value in the vector

  • « pht\Vector::__construct
  • pht\Vector::insertAt »
  • PHP Manual
  • pht\Vector
  • Deletes a value in the vector

pht\Vector::deleteAt

(PECL pht >= 0.0.1)

pht\Vector::deleteAt — Deletes a value in the vector

Beschreibung

public pht\Vector::deleteAt ( int $offset ) : void

This method deletes a value at the specified offset in the vector (in linear time).

Since the pht\Vector class supports array access, deleting values can also be performed using the array subset notation ([]) in combination with the unset() function.

Parameter-Liste

offset

The offset at which the value will be deleted at. This offset must be within the 0..(N-1) range (inclusive), where N is the size of the vector. Attempting to delete at offsets outside of this range will result in an Error exception.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Deleting values in a vector

<?php

use pht\Vector;

$vector = new Vector();

$vector[] = 1;
$vector[] = 2;
$vector[] = 3;
$vector[] = 4;

$vector->deleteAt(1);
unset($vector[1]);

var_dump($vector);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(pht\Vector)#1 (2) {
  [0]=>
  int(1)
  [1]=>
  int(4)
}


Inserts a value into the vector

  • « pht\Vector::deleteAt
  • pht\Vector::lock »
  • PHP Manual
  • pht\Vector
  • Inserts a value into the vector

pht\Vector::insertAt

(PECL pht >= 0.0.1)

pht\Vector::insertAt — Inserts a value into the vector

Beschreibung

public pht\Vector::insertAt ( mixed $value , int $offset ) : void

This method inserts a value at the specified offset into the vector (in linear time). The vector will automatically be resized if it is not large enough.

Parameter-Liste

value

The value to be inserted into the vector. This value will be serialised (since it may be passed around between threads).

offset

The offset at which the value will be inserted at. This offset must be within the 0..N range (inclusive), where N is the size of the vector. Inserting at position N is the equivalent of using pht\Vector::push(), and inserting at position 0 is the equivalent of using pht\Vector::unshift(). Attempting to insert at offsets outside of this range will result in an Error exception.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Inserting a value into a vector

<?php

use pht\Vector;

$vector = new Vector();

$vector->insertAt(3, 0); // insert 3 at start
$vector->insertAt(1, 0); // insert 1 at start (before 3)
$vector->insertAt(2, 1); // insert 2 in middle (after 1 and before 3)

var_dump($vector);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(pht\Vector)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Acquires the vector's mutex lock

  • « pht\Vector::insertAt
  • pht\Vector::pop »
  • PHP Manual
  • pht\Vector
  • Acquires the vector's mutex lock

pht\Vector::lock

(PECL pht >= 0.0.1)

pht\Vector::lock — Acquires the vector's mutex lock

Beschreibung

public pht\Vector::lock ( ) : void

This method will acquire the mutex lock associated with the vector. The mutex lock should always be acquired when manipulating the vector if it is being used by multiple threads.

The mutex locks of the Inter-Thread Communication (ITC) data structures are not reentrant. Attempting to reacquire an already-acquired mutex lock by the same thread will therefore cause a deadlock.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Locking a vector's mutex lock

<?php

use pht\{Thread, Vector};

$thread = new Thread();
$vector = new Vector();

$thread->addFunctionTask(function ($vector) {
    $vector->lock();
    $vector[] = 1;
    $vector->unlock();
}, $vector);

$thread->start();

// $vector is currently being used by multiple threads
$vector->lock();
$vector[] = 2;
$vector->unlock();

$thread->join();


Pops a value to the vector

  • « pht\Vector::lock
  • pht\Vector::push »
  • PHP Manual
  • pht\Vector
  • Pops a value to the vector

pht\Vector::pop

(PECL pht >= 0.0.1)

pht\Vector::pop — Pops a value to the vector

Beschreibung

public pht\Vector::pop ( ) : mixed

This method pops a value from the end of a vector (in constant time). Popping a value from an empty vector will result in an Error exception.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value from the end of the vector.

Beispiele

Beispiel #1 Popping a value from a vector

<?php

use pht\Vector;

$vector = new Vector();

$vector->push(1);
$vector[] = 2;

var_dump($vector->pop());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2)


Pushes a value to the vector

  • « pht\Vector::pop
  • pht\Vector::resize »
  • PHP Manual
  • pht\Vector
  • Pushes a value to the vector

pht\Vector::push

(PECL pht >= 0.0.1)

pht\Vector::push — Pushes a value to the vector

Beschreibung

public pht\Vector::push ( mixed $value ) : void

This method pushes a value onto the end of a vector (in constant time). The vector will automatically be resized if it is not large enough.

Since the pht\Vector class supports array access, new values can also be pushed onto the vector using the empty subset notation ([]).

Parameter-Liste

value

The value to be pushed onto the end of the vector. This value will be serialised (since it may be passed around between threads).

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Pushing values to a vector

<?php

use pht\Vector;

$vector = new Vector();

$vector->push(1);
$vector[] = 2;

var_dump($vector);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(pht\Vector)#1 (2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}


Resizes a vector

  • « pht\Vector::push
  • pht\Vector::shift »
  • PHP Manual
  • pht\Vector
  • Resizes a vector

pht\Vector::resize

(PECL pht >= 0.0.1)

pht\Vector::resize — Resizes a vector

Beschreibung

public pht\Vector::resize ( int $size , mixed $value = 0 ) : void

Resizes the vector. If it is enlarged, then the value parameter will be used to fill in the new slots. If it is made smaller, then the end values will be truncated.

Parameter-Liste

size

The new size of the vector.

value

The value to initialise the empty vector slots to (only used if the vector is enlarged).

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Resizing a vector

<?php

use pht\Vector;

$vector = new Vector(1);
var_dump($vector);
$vector->resize(2, 1);
var_dump($vector);
$vector->resize(1, 2); // unused second arg
var_dump($vector);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(pht\Vector)#1 (1) {
  [0]=>
  int(0)
}
object(pht\Vector)#1 (2) {
  [0]=>
  int(0)
  [1]=>
  int(1)
}
object(pht\Vector)#1 (1) {
  [0]=>
  int(0)
}


Shifts a value from the vector

  • « pht\Vector::resize
  • pht\Vector::size »
  • PHP Manual
  • pht\Vector
  • Shifts a value from the vector

pht\Vector::shift

(PECL pht >= 0.0.1)

pht\Vector::shift — Shifts a value from the vector

Beschreibung

public pht\Vector::shift ( ) : mixed

This method shifts a value from the front of a vector (in linear time). Shifting a value from an empty vector will result in an Error exception.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value from the front of the vector.

Beispiele

Beispiel #1 Shifting a value from a vector

<?php

use pht\Vector;

$vector = new Vector();

$vector->push(1);
$vector[] = 2;

var_dump($vector->shift());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)


Gets the size of the vector

  • « pht\Vector::shift
  • pht\Vector::unlock »
  • PHP Manual
  • pht\Vector
  • Gets the size of the vector

pht\Vector::size

(PECL pht >= 0.0.1)

pht\Vector::size — Gets the size of the vector

Beschreibung

public pht\Vector::size ( ) : int

Returns the current size of the vector. This operation requires a pht\Vector's mutex lock to be held if it is being used by multiple threads.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The size of the vector.

Beispiele

Beispiel #1 Getting a vector's size

<?php

use pht\Vector;

$vector = new Vector();

$vector[] = 1;
$vector[] = 2;
$vector[] = 3;

var_dump($vector->size());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(3)


Releases the vector's mutex lock

  • « pht\Vector::size
  • pht\Vector::unshift »
  • PHP Manual
  • pht\Vector
  • Releases the vector's mutex lock

pht\Vector::unlock

(PECL pht >= 0.0.1)

pht\Vector::unlock — Releases the vector's mutex lock

Beschreibung

public pht\Vector::unlock ( ) : void

This method will release the mutex lock associated with the vector.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Locking a vector's mutex lock

<?php

use pht\{Thread, Vector};

$thread = new Thread();
$vector = new Vector();

$thread->addFunctionTask(function ($vector) {
    $vector->lock();
    $vector[] = 1;
    $vector->unlock();
}, $vector);

$thread->start();

// $vector is currently being used by multiple threads
$vector->lock();
$vector[] = 2;
$vector->unlock();

$thread->join();


Unshifts a value to the vector front

  • « pht\Vector::unlock
  • pht\Vector::updateAt »
  • PHP Manual
  • pht\Vector
  • Unshifts a value to the vector front

pht\Vector::unshift

(PECL pht >= 0.0.1)

pht\Vector::unshift — Unshifts a value to the vector front

Beschreibung

public pht\Vector::unshift ( mixed $value ) : void

This method unshifts a value to the front of a vector (in linear time). The vector will automatically be resized if it is not large enough.

Parameter-Liste

value

The value to be pushed onto the beginning of the vector. This value will be serialised (since it may be passed around between threads).

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Unshifting a value to the front of a vector

<?php

use pht\Vector;

$vector = new Vector();

for ($i = 0; $i < 3; ++$i) {
    $vector->unshift($i); // causes a quadratic runtime, beware
}

var_dump($vector);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(pht\Vector)#1 (3) {
  [0]=>
  int(2)
  [1]=>
  int(1)
  [2]=>
  int(0)
}


Updates a value in the vector

  • « pht\Vector::unshift
  • pht\Queue »
  • PHP Manual
  • pht\Vector
  • Updates a value in the vector

pht\Vector::updateAt

(PECL pht >= 0.0.1)

pht\Vector::updateAt — Updates a value in the vector

Beschreibung

public pht\Vector::updateAt ( mixed $value , int $offset ) : void

This method updates a value at the specified offset in the vector (in linear time). The vector will automatically be resized if it is not large enough.

Since the pht\Vector class supports array access, updating values can also be performed using the array subset notation ([]).

Parameter-Liste

value

The value to be inserted into the vector. This value will be serialised (since it may be passed around between threads).

offset

The offset at which the value will be updated at. This offset must be within the 0..(N-1) range (inclusive), where N is the size of the vector. Attempting to update at offsets outside of this range will result in an Error exception.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Updating a value in a vector

<?php

use pht\Vector;

$vector = new Vector();

$vector[] = 1;
$vector[] = 2;

$vector->updateAt(3, 0);
$vector[1] = 4;

var_dump($vector);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(pht\Vector)#1 (2) {
  [0]=>
  int(3)
  [1]=>
  int(4)
}


The Queue class

(PECL pht >= 0.0.1)

Einführung

The pht\Queue class is one of the Inter-Thread Communication (ITC) data structures exposed by pht. It can be safely passed around between threads, and manipulated by multiple threads using the mutex locks that have been packed in with the data structure. It is reference-counted across threads, and so it does not need to be explicitly destroyed.

Klassenbeschreibung

pht\Queue implements pht\Threaded {
/* Methoden */
public front ( ) : mixed
public lock ( ) : void
public pop ( ) : mixed
public push ( mixed $value ) : void
public size ( ) : int
public unlock ( ) : void
}

Inhaltsverzeichnis

  • pht\Queue::front — Returns the first value from a queue
  • pht\Queue::lock — Acquires the queue's mutex lock
  • pht\Queue::pop — Pops a value off of the front of a queue
  • pht\Queue::push — Pushes a value to the end of a queue
  • pht\Queue::size — Gets the size of the queue
  • pht\Queue::unlock — Releases the queue's mutex lock


Returns the first value from a queue

  • « pht\Queue
  • pht\Queue::lock »
  • PHP Manual
  • pht\Queue
  • Returns the first value from a queue

pht\Queue::front

(PECL pht >= 0.0.1)

pht\Queue::front — Returns the first value from a queue

Beschreibung

public pht\Queue::front ( ) : mixed

This method will remove a value from the front of the queue (in constant time). Attempting to return the front value from an empty queue will result in an Error exception.

Achtung

Due to the fact that all values in a pht\Queue are serialised, extracting a value from the queue will require it to be deserialised. This can incur a noticeable performance hit if the inspection of the queue's front value is performed within a loop.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value on the front of the queue.

Beispiele

Beispiel #1 Retrieving the front value of a queue

<?php

use pht\Queue;

$queue = new Queue();

$queue->push(1);

var_dump($queue->front());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)

Beispiel #2 Retrieving the front value in a loop (bad example - don't do this)

<?php

use pht\Queue;

$queue = new Queue();

$queue->push(array_fill(0, 2000, 0));

for ($i = 0; $i < count($queue->front()); ++$i); // quadratic runtime

Beispiel #3 Retrieving the front value in a loop (good example)

<?php

use pht\Queue;

$queue = new Queue();

$queue->push(array_fill(0, 2000, 0));

$front = $queue->front(); // create a separate variable
for ($i = 0; $i < count($front); ++$i); // linear runtime


Acquires the queue's mutex lock

  • « pht\Queue::front
  • pht\Queue::pop »
  • PHP Manual
  • pht\Queue
  • Acquires the queue's mutex lock

pht\Queue::lock

(PECL pht >= 0.0.1)

pht\Queue::lock — Acquires the queue's mutex lock

Beschreibung

public pht\Queue::lock ( ) : void

This method will acquire the mutex lock associated with the queue. The mutex lock should always be acquired when manipulating the queue if it is being used by multiple threads.

The mutex locks of the Inter-Thread Communication (ITC) data structures are not reentrant. Attempting to reacquire an already-acquired mutex lock by the same thread will therefore cause a deadlock.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Locking a queue's mutex lock

<?php

use pht\{Thread, Queue};

$thread = new Thread();
$queue = new Queue();

$thread->addFunctionTask(function ($queue) {
    $queue->lock();
    $queue->push(1);
    $queue->unlock();
}, $queue);

$thread->start();

// $queue is currently being used by multiple threads
$queue->lock();
$queue->push(1);
$queue->unlock();

$thread->join();

// $queue is only being used in this thread now, so no need to lock it
while ($queue->size()) {
    var_dump($queue->pop());
}

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)
int(1)


Pops a value off of the front of a queue

  • « pht\Queue::lock
  • pht\Queue::push »
  • PHP Manual
  • pht\Queue
  • Pops a value off of the front of a queue

pht\Queue::pop

(PECL pht >= 0.0.1)

pht\Queue::pop — Pops a value off of the front of a queue

Beschreibung

public pht\Queue::pop ( ) : mixed

This method will remove a value from the front of the queue (in constant time). Attempting to pop a value from an empty queue will result in an Error exception.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value removed from the queue.

Beispiele

Beispiel #1 Popping a value from a queue

<?php

use pht\Queue;

$queue = new Queue();

$queue->push(1);

var_dump($queue->pop());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)


Pushes a value to the end of a queue

  • « pht\Queue::pop
  • pht\Queue::size »
  • PHP Manual
  • pht\Queue
  • Pushes a value to the end of a queue

pht\Queue::push

(PECL pht >= 0.0.1)

pht\Queue::push — Pushes a value to the end of a queue

Beschreibung

public pht\Queue::push ( mixed $value ) : void

This method will add a value onto the queue.

Parameter-Liste

value

The value to be added to a pht\Queue. This value will be serialised (since it may be passed around between threads).

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Pushing a value to a queue

<?php

use pht\Queue;

$queue = new Queue();

$queue->push(1);

var_dump($queue);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(pht\Queue)#1 (1) {
  [0]=>
  int(1)
}


Gets the size of the queue

  • « pht\Queue::push
  • pht\Queue::unlock »
  • PHP Manual
  • pht\Queue
  • Gets the size of the queue

pht\Queue::size

(PECL pht >= 0.0.1)

pht\Queue::size — Gets the size of the queue

Beschreibung

public pht\Queue::size ( ) : int

Returns the current size of the queue. This operation requires a pht\Queue's mutex lock to be held if it is being used by multiple threads.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The size of the queue.

Beispiele

Beispiel #1 Getting a queue's size

<?php

use pht\Queue;

$queue = new Queue();

$queue->push(1);
$queue->push(1);

var_dump($queue->size());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2)


Releases the queue's mutex lock

  • « pht\Queue::size
  • pht\AtomicInteger »
  • PHP Manual
  • pht\Queue
  • Releases the queue's mutex lock

pht\Queue::unlock

(PECL pht >= 0.0.1)

pht\Queue::unlock — Releases the queue's mutex lock

Beschreibung

public pht\Queue::unlock ( ) : void

This method will release the mutex lock associated with the queue.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Locking a queue's mutex lock

<?php

use pht\{Thread, Queue};

$thread = new Thread();
$queue = new Queue();

$thread->addFunctionTask(function ($queue) {
    $queue->lock();
    $queue->push(1);
    $queue->unlock();
}, $queue);

$thread->start();

// $queue is currently being used by multiple threads
$queue->lock();
$queue->push(1);
$queue->unlock();

$thread->join();

// $queue is only being used in this thread now, so no need to lock it
while ($queue->size()) {
    var_dump($queue->pop());
}

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)
int(1)


The AtomicInteger class

(PECL pht >= 0.0.1)

Einführung

The pht\AtomicInteger class is currently the only supported atomic value. It allows for an integer to be safely passed around between, and manipulated, by multiple threads. The methods exposed by this class do not need mutex locking, since they will acquire the internal mutex lock implicitly. pht\AtomicInteger::lock() and pht\AtomicInteger::unlock() are still exposed, however, for when multiple operations involving the same pht\AtomicInteger object need to be grouped together.

The mutex locks of the atomic values are reentrant safe.

Klassenbeschreibung

pht\AtomicInteger implements pht\Threaded {
/* Methoden */
public __construct ( int $value = 0 ) : AtomicInteger
public dec ( ) : void
public get ( ) : int
public inc ( ) : void
public lock ( ) : void
public set ( int $value ) : void
public unlock ( ) : void
}

Inhaltsverzeichnis

  • pht\AtomicInteger::__construct — AtomicInteger creation
  • pht\AtomicInteger::dec — Decrements the atomic integer's value by one
  • pht\AtomicInteger::get — Gets the atomic integer's value
  • pht\AtomicInteger::inc — Increments the atomic integer's value by one
  • pht\AtomicInteger::lock — Acquires the atomic integer's mutex lock
  • pht\AtomicInteger::set — Sets the atomic integer's value
  • pht\AtomicInteger::unlock — Releases the atomic integer's mutex lock


AtomicInteger creation

  • « pht\AtomicInteger
  • pht\AtomicInteger::dec »
  • PHP Manual
  • pht\AtomicInteger
  • AtomicInteger creation

pht\AtomicInteger::__construct

(PECL pht >= 0.0.1)

pht\AtomicInteger::__construct — AtomicInteger creation

Beschreibung

public pht\AtomicInteger::__construct ( int $value = 0 ) : AtomicInteger

Handles the creation of a new atomic integer.

Parameter-Liste

value

The value to initialise the atomic integer to.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Creating a new atomic integer

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger(100);

var_dump($atomicInteger->get());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(100)


Decrements the atomic integer's value by one

  • « pht\AtomicInteger::__construct
  • pht\AtomicInteger::get »
  • PHP Manual
  • pht\AtomicInteger
  • Decrements the atomic integer's value by one

pht\AtomicInteger::dec

(PECL pht >= 0.0.1)

pht\AtomicInteger::dec — Decrements the atomic integer's value by one

Beschreibung

public pht\AtomicInteger::dec ( ) : void

This method will decrement the atomic integer's value by one. Internally, the mutex lock of the atomic integer will be acquired, and so there is no need to manually acquire it (unless this operation needs to be grouped with other operations on the same atomic integer - see the example in pht\AtomicInteger::lock() for a demonstration of this).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Decrementing an atomic integer's value

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger();

$atomicInteger->dec();
$atomicInteger->dec();

var_dump($atomicInteger->get());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(-2)


Gets the atomic integer's value

  • « pht\AtomicInteger::dec
  • pht\AtomicInteger::inc »
  • PHP Manual
  • pht\AtomicInteger
  • Gets the atomic integer's value

pht\AtomicInteger::get

(PECL pht >= 0.0.1)

pht\AtomicInteger::get — Gets the atomic integer's value

Beschreibung

public pht\AtomicInteger::get ( ) : int

This method will fetch the current value of the atomic integer. Internally, the mutex lock of the atomic integer will be acquired, and so there is no need to manually acquire it (unless this operation needs to be grouped with other operations on the same atomic integer - see the example in pht\AtomicInteger::lock() for a demonstration of this).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current integer value of the atomic integer.

Beispiele

Beispiel #1 Getting an atomic integer's value

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger(2);

var_dump($atomicInteger->get());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2)


Increments the atomic integer's value by one

  • « pht\AtomicInteger::get
  • pht\AtomicInteger::lock »
  • PHP Manual
  • pht\AtomicInteger
  • Increments the atomic integer's value by one

pht\AtomicInteger::inc

(PECL pht >= 0.0.1)

pht\AtomicInteger::inc — Increments the atomic integer's value by one

Beschreibung

public pht\AtomicInteger::inc ( ) : void

This method will increment the atomic integer's value by one. Internally, the mutex lock of the atomic integer will be acquired, and so there is no need to manually acquire it (unless this operation needs to be grouped with other operations on the same atomic integer - see the example in pht\AtomicInteger::lock() for a demonstration of this).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Incrementing an atomic integer's value

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger();

$atomicInteger->inc();
$atomicInteger->inc();

var_dump($atomicInteger->get());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(2)


Acquires the atomic integer's mutex lock

  • « pht\AtomicInteger::inc
  • pht\AtomicInteger::set »
  • PHP Manual
  • pht\AtomicInteger
  • Acquires the atomic integer's mutex lock

pht\AtomicInteger::lock

(PECL pht >= 0.0.1)

pht\AtomicInteger::lock — Acquires the atomic integer's mutex lock

Beschreibung

public pht\AtomicInteger::lock ( ) : void

This method will acquire the mutex lock associated with the atomic integer. The mutex lock only needs to be acquired when needing to group together multiple operations.

The mutex locks of the atomic values are reentrant safe. It is therefore valid for the same thread to reacquire a mutex lock that it has already acquired.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Grouping together an atomic integer's operations (requiring a mutex lock)

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger(2);

// assumes $atomicInteger is being used by multiple threads
$atomicInteger->lock();
$atomicInteger->set($atomicInteger->get() * 2); // double the value
$atomicInteger->unlock();

var_dump($atomicInteger->get());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(4)


Sets the atomic integer's value

  • « pht\AtomicInteger::lock
  • pht\AtomicInteger::unlock »
  • PHP Manual
  • pht\AtomicInteger
  • Sets the atomic integer's value

pht\AtomicInteger::set

(PECL pht >= 0.0.1)

pht\AtomicInteger::set — Sets the atomic integer's value

Beschreibung

public pht\AtomicInteger::set ( int $value ) : void

This method will set the value of the atomic integer. Internally, the mutex lock of the atomic integer will be acquired, and so there is no need to manually acquire it (unless this operation needs to be grouped with other operations on the same atomic integer - see the example in pht\AtomicInteger::lock() for a demonstration of this).

Parameter-Liste

value

The value to set the atomic integer to.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Setting an atomic integer's value

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger();

$atomicInteger->set(20);

var_dump($atomicInteger->get());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(20)


Releases the atomic integer's mutex lock

  • « pht\AtomicInteger::set
  • pht\Threaded »
  • PHP Manual
  • pht\AtomicInteger
  • Releases the atomic integer's mutex lock

pht\AtomicInteger::unlock

(PECL pht >= 0.0.1)

pht\AtomicInteger::unlock — Releases the atomic integer's mutex lock

Beschreibung

public pht\AtomicInteger::unlock ( ) : void

This method will release the mutex lock associated with the atomic integer.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.

Beispiele

Beispiel #1 Grouping together an atomic integer's operations (requiring a mutex lock)

<?php

use pht\AtomicInteger;

$atomicInteger = new AtomicInteger(2);

// assumes $atomicInteger is being used by multiple threads
$atomicInteger->lock();
$atomicInteger->set($atomicInteger->get() * 2); // double the value
$atomicInteger->unlock();

var_dump($atomicInteger->get());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(4)


The Threaded interface

(PECL pht >= 0.0.1)

Einführung

The pht\Threaded interface is an internal interface used by the Inter-Thread Communication (ITC) data structures (pht\HashTable, pht\Queue, and pht\Vector). It allows those data structures to be threaded and ensures that the mutex locking API (pht\Threaded::lock() and pht\Threaded::unlock()) is implemented by each of the ITC data structures. It is not implementable by userland classes (since standalone mutex locks are not exposed).

Interface-Übersicht

pht\Threaded {
/* Methoden */
public lock ( ) : void
public unlock ( ) : void
}

Inhaltsverzeichnis

  • pht\Threaded::lock — Acquires the mutex lock
  • pht\Threaded::unlock — Releases the mutex lock


Acquires the mutex lock

  • « pht\Threaded
  • pht\Threaded::unlock »
  • PHP Manual
  • pht\Threaded
  • Acquires the mutex lock

pht\Threaded::lock

(PECL pht >= 0.0.1)

pht\Threaded::lock — Acquires the mutex lock

Beschreibung

public pht\Threaded::lock ( ) : void

This method will acquire the mutex lock associated with the given class (either a pht\HashTable, pht\Queue, pht\Vector, or pht\AtomicInteger).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.


Releases the mutex lock

  • « pht\Threaded::lock
  • Semaphore »
  • PHP Manual
  • pht\Threaded
  • Releases the mutex lock

pht\Threaded::unlock

(PECL pht >= 0.0.1)

pht\Threaded::unlock — Releases the mutex lock

Beschreibung

public pht\Threaded::unlock ( ) : void

This method will unlock the mutex lock associated with the given class (either a pht\HashTable, pht\Queue, pht\Vector, or pht\AtomicInteger).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No return value.


Semaphore, Shared Memory and IPC

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Semaphore Funktionen
    • ftok — Erzeugt aus einem Dateipfad und einem Projektbezeichner einen System-V-IPC-Schlüssel
    • msg_get_queue — Legt eine Nachrichten-Warteschlange an oder hängt sich an existierende an
    • msg_queue_exists — Prüft, ob die Nachrichten-Warteschlange existiert
    • msg_receive — Liest eine Nachricht aus einer Nachrichten-Warteschlange aus
    • msg_remove_queue — Entfernt eine Nachrichten-Warteschlange
    • msg_send — Send a message to a message queue
    • msg_set_queue — Setzt Metadaten in der Datenstruktur der Nachrichten-Warteschlange
    • msg_stat_queue — Liefert Informationen zur Datenstruktur einer Nachrichten-Warteschlange
    • sem_acquire — Fordert Zugriff auf einen Semaphor an
    • sem_get — Fordert Zugriff auf eine Semaphor-ID an
    • sem_release — Gibt einen Semaphor frei
    • sem_remove — Entfernt einen Semaphor
    • shm_attach — Erzeugt oder öffnet einen gemeinsamen Speicherbereich
    • shm_detach — Beendet die Anbindung an einen gemeinsamen Speicherbereich
    • shm_get_var — Liest eine Variable aus dem gemeinsamen Speicherbereich
    • shm_has_var — Check whether a specific entry exists
    • shm_put_var — Erstellt oder aktualisiert eine Variable im gemeinsamen Speicherbereich
    • shm_remove_var — Entfernt eine Variable aus dem gemeinsamen Speicherbereich
    • shm_remove — Entfernt einen gemeinsamen Speicherbereich unter UNIX


Einführung

Diese Extension bietet Funktionen zur Nutzung der Unix System V IPC Funktionen. Sie unterstützt Semaphore, Shared Memory und den Nachrichtenaustausch zwischen Prozessen (Inter Process Communication - IPC).

Semaphore können genutzt werden um den exklusiven Zugriff auf eine gemeinsame Resource zu koordinieren oder um die Anzahl der gleichzeitigen Zugriffe auf eine gemeinsame Resource zu limitieren.

Die Extension bietet auch Funktionen zur Nutzung von Shared Memory. Im Shared Memory lassen sich prozessübergreifend globale Variablen anlegen. Verschiedene PHP Prozesse sowie in anderen Sprachen (z.B. Perl, C, ...) geschriebene Anwendungen können auf diese Daten zugreifen und so einen globalen Datenaustausch bereitstellen. Beachten Sie das Shared Memory alleine keinen Schutz gegen konkurierende Zugriffe bietet, dieser kann allerdings mit Hilfe von Semaphoren sichergestellt werden.

Durch Unix vorgegebene Shared Memory Maximalwerte
SHMMAX | maximale Größe eines Shared Memory Segments, üblich sind 131072 Bytes
SHMMIN | minimale Größe eines Shared Memory Segments, üblich ist 1 Byte
SHMMNI | maximale Anzahl von Shared Memory Segmente auf dem System, üblich sind 100
SHMSEG | maximale Anzahl von Shared Memory Segmenten je Prozess, üblich sind 6

Die Funktionen zum Nachrichtenaustausch können genutzt werden um Nachrichten an andere Prozesse zu verschicken oder zu empfangen. Sie bieten einen einfachen und effektiven Weg zum Datenaustausch zwischen Prozessen ohne auf Alternativen wie Unix Domain Sockets zurückgreifen zu müssen.

Hinweis: Diese Erweiterung steht auf Windows-Betriebssystemen nicht zur Verfügung.


Installation

Die in diesem Abschnitt dokumentierten Funktionen sind in den Standardeinstellungen nicht aktiviert. Unterstützung für System V Semaphore kann durch kompilieren mit der Option --enable-sysvsem aktiviert werden. Unterstützung für System V Shared Memory kann durch kompilieren mit der Option --enable-sysvshm aktiviert werden. Unterstützung für System V Nachrichten kann durch kompilieren mit der Option --enable-sysvmsg aktiviert werden.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Semaphore-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
sysvshm.init_mem | 10000 | PHP_INI_SYSTEM |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

sysvshm.init_mem int

Standardgröße eines gemeinsamen Speicherbereichs.


Ressource-Typen

Vor PHP 8.0.0 definierte diese Erweiterung die Ressourcentypen sysvmsg queue (System V Message Queue), sysvsem (System V Semaphore) und sysvshm (System V Shared Memory).


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

System-V-Nachrichtenkonstanten
Konstante | Typ | Changelog
MSG_IPC_NOWAIT | int |
MSG_EAGAIN | int | Ab 5.2.0
MSG_ENOMSG | int | Ab 5.2.0
MSG_NOERROR | int |
MSG_EXCEPT | int |


Semaphore Funktionen

Inhaltsverzeichnis

  • ftok — Erzeugt aus einem Dateipfad und einem Projektbezeichner einen System-V-IPC-Schlüssel
  • msg_get_queue — Legt eine Nachrichten-Warteschlange an oder hängt sich an existierende an
  • msg_queue_exists — Prüft, ob die Nachrichten-Warteschlange existiert
  • msg_receive — Liest eine Nachricht aus einer Nachrichten-Warteschlange aus
  • msg_remove_queue — Entfernt eine Nachrichten-Warteschlange
  • msg_send — Send a message to a message queue
  • msg_set_queue — Setzt Metadaten in der Datenstruktur der Nachrichten-Warteschlange
  • msg_stat_queue — Liefert Informationen zur Datenstruktur einer Nachrichten-Warteschlange
  • sem_acquire — Fordert Zugriff auf einen Semaphor an
  • sem_get — Fordert Zugriff auf eine Semaphor-ID an
  • sem_release — Gibt einen Semaphor frei
  • sem_remove — Entfernt einen Semaphor
  • shm_attach — Erzeugt oder öffnet einen gemeinsamen Speicherbereich
  • shm_detach — Beendet die Anbindung an einen gemeinsamen Speicherbereich
  • shm_get_var — Liest eine Variable aus dem gemeinsamen Speicherbereich
  • shm_has_var — Check whether a specific entry exists
  • shm_put_var — Erstellt oder aktualisiert eine Variable im gemeinsamen Speicherbereich
  • shm_remove_var — Entfernt eine Variable aus dem gemeinsamen Speicherbereich
  • shm_remove — Entfernt einen gemeinsamen Speicherbereich unter UNIX


Erzeugt aus einem Dateipfad und einem Projektbezeichner einen System-V-IPC-Schlüssel

  • « Semaphore Funktionen
  • msg_get_queue »
  • PHP Manual
  • Semaphore Funktionen
  • Erzeugt aus einem Dateipfad und einem Projektbezeichner einen System-V-IPC-Schlüssel

ftok

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ftok — Erzeugt aus einem Dateipfad und einem Projektbezeichner einen System-V-IPC-Schlüssel

Beschreibung

ftok ( string $filename , string $project_id ) : int

Diese Funktion erzeugt aus dem filename einer existierenden Datei und dem Projektbezeichner project_id einen Integer-Schlüsselwert, der von Funktionen wie shmop_open() und anderen als System-V-IPC-Schlüssel genutzt werden kann.

Parameter-Liste

filename

Pfad zu einer existierenden Datei.

project_id

Einbuchstabige Projekt-ID.

Rückgabewerte

Bei Erfolg wird der erzeugte Schlüssel zurückgegeben. Im Fehlerfall ist der Rückgabewert stattdessen -1.

Siehe auch

  • shmop_open() - Erstellt oder öffnet einen gemeinsamen Speicherbereich
  • sem_get() - Fordert Zugriff auf eine Semaphor-ID an


Legt eine Nachrichten-Warteschlange an oder hängt sich an existierende an

  • « ftok
  • msg_queue_exists »
  • PHP Manual
  • Semaphore Funktionen
  • Legt eine Nachrichten-Warteschlange an oder hängt sich an existierende an

msg_get_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_get_queue — Legt eine Nachrichten-Warteschlange an oder hängt sich an existierende an

Beschreibung

msg_get_queue ( int $key , int $permissions = 0666 ) : SysvMessageQueue|false

msg_get_queue() gibt eine ID zurück, die verwendet werden kann, um auf die mit key angegebene System-V-Nachrichten-Warteschlange zuzugreifen. Existiert die Nachrichten-Warteschlange noch nicht, so wird sie beim ersten Aufruf mit den im optionalen Parameter permissions angegebenen Rechten angelegt. Ein weiterer Aufruf von msg_get_queue() mit dem gleichen key liefert eine andere ID, beide IDs greifen aber intern auf die gleiche Nachrichten-Warteschlange zu.

Parameter-Liste

key

Numerische ID der Nachrichten-Warteschlange.

permissions

Zugriffsrechte der Warteschlange. Vorgabewert ist 0666. Existiert die Nachrichten-Warteschlange bereits, so wird dieser Parameter ignoriert.

Rückgabewerte

Gibt eine SysvMessageQueue-Instanz für den Zugriff auf eine System-V-Nachrichten-Warteschlange zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine SysvMessageQueue-Instanz zurück; vorher wurde eine resource zurückgegeben.

Siehe auch

  • msg_remove_queue() - Entfernt eine Nachrichten-Warteschlange
  • msg_receive() - Liest eine Nachricht aus einer Nachrichten-Warteschlange aus
  • msg_send() - Send a message to a message queue
  • msg_stat_queue() - Liefert Informationen zur Datenstruktur einer Nachrichten-Warteschlange
  • msg_set_queue() - Setzt Metadaten in der Datenstruktur der Nachrichten-Warteschlange


Prüft, ob die Nachrichten-Warteschlange existiert

  • « msg_get_queue
  • msg_receive »
  • PHP Manual
  • Semaphore Funktionen
  • Prüft, ob die Nachrichten-Warteschlange existiert

msg_queue_exists

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

msg_queue_exists — Prüft, ob die Nachrichten-Warteschlange existiert

Beschreibung

msg_queue_exists ( int $key ) : bool

Prüft, ob die Nachrichten-Warteschlange key existiert.

Parameter-Liste

key

Numerische ID der Nachrichten-Warteschlange.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • msg_remove_queue() - Entfernt eine Nachrichten-Warteschlange
  • msg_receive() - Liest eine Nachricht aus einer Nachrichten-Warteschlange aus
  • msg_stat_queue() - Liefert Informationen zur Datenstruktur einer Nachrichten-Warteschlange


Liest eine Nachricht aus einer Nachrichten-Warteschlange aus

  • « msg_queue_exists
  • msg_remove_queue »
  • PHP Manual
  • Semaphore Funktionen
  • Liest eine Nachricht aus einer Nachrichten-Warteschlange aus

msg_receive

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_receive — Liest eine Nachricht aus einer Nachrichten-Warteschlange aus

Beschreibung

msg_receive ( SysvMessageQueue $queue , int $desired_message_type , int &$received_message_type , int $max_message_size , mixed &$message , bool $unserialize = true , int $flags = 0 , int &$error_code = null ) : bool

msg_receive() liest die erste Nachricht vom Typ desired_message_type aus der durch queue angegeben Warteschlange aus.

Parameter-Liste

queue

Die Nachrichten-Warteschlange.

desired_message_type

Wenn desired_message_type gleich 0 ist, wird die erste Nachricht aus der Warteschlange zurückgegeben. Wenn desired_message_type größer als 0 ist, wird die erste Nachricht genau diesen Typs zurückgegeben. Wenn desired_message_type kleiner als 0 ist, wird die erste Nachricht kleiner oder gleich dem absoluten Wert von desired_message_type zurückgegeben. Wenn keine passende Nachricht existiert, blockiert diese Funktion solange, bis eine passende Nachricht verfügbar ist. Durch das Setzen des Flags MSG_IPC_NOWAIT im Parameter flags kann das blockierende Verhalten verhindert werden.

received_message_type

In diesem Parameter wird der Typ der empfangenen Nachricht gespeichert.

max_message_size

Die maximale Größe der zu akzeptierenden Nachricht wird durch max_message_size angegeben; Wenn die Nachricht in der Nachrichten-Warteschlange größer ist, als dieser Wert, schlägt die Funktion fehl (es sei denn, es wird das entsprechende Flag im Parameter flags gesetzt).

message

Die empfangene Nachricht wird in message gespeichert, es sei denn es tritt ein Fehler beim Empfang auf.

unserialize

Wenn dieser Wert auf true gesetzt wird, wird die Nachricht behandelt, als wäre sie mit demselben Mechanismus serialisiert worden, wie das Session-Modul. Die Nachricht wird deserialisiert und zurückgegeben. Dies erlaubt einen einfachen Empfang von Arrays und komplexen Objektstrukturen von anderen PHP-Skripten. Wenn Sie den WDDX-Serializer verwenden, erlaubt es den Empfang von einer WDDX-kompatiblen Quelle.

Wenn unserialize false ist, wird die Nachricht als binärsicherer String zurückgegeben.

flags

Der optionale Parameter flags erlaubt die Weitergabe von Flags an den low-level msgrcv-Systemaufruf. Der Standardwert liegt bei 0, aber es können einer oder mehrere der folgenden Werte übergeben werden (AND- oder OR-verknüpft).

Die Flag-Werte für msg_receive
MSG_IPC_NOWAIT | Wenn kein Wert des übergebenen Typs desired_message_type in der Warteschlange vorhanden ist, gibt die Funktion sofort zurück, statt zu warten. Die Funktion schlägt fehl und gibt den Integerwert entsprechend an MSG_ENOMSG zurück.
MSG_EXCEPT | Dieses Flag sorgt in Kombination mit einem desired_message_type größer als 0 dafür, dass die Funktion die erste Nachricht zurück gbit, die nicht gleich desired_message_type ist.
MSG_NOERROR | Wenn die Nachricht länger als max_message_size ist, wird durch Setzen diese Flags die Nachricht auf max_message_size gekürzt, und die Funktion signalisiert keinen Fehler.

error_code

Wenn die Funktion fehlschlägt, wird der optionale error_code auf den Wert der System-errno-Variable gesetzt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Bei erfolgreicher Ausführung wird die Datenstruktur der Nachrichten-Warteschlange folgendermaßen aktualisiert: msg_lrpid wird auf die Prozess-ID des aufrufenden Prozesses gesetzt, msg_qnum wird um 1 dekrementiert, und msg_rtime wird auf die aktuelle Zeit gesetzt.

Changelog

Version | Beschreibung
8.0.0 | queue erwartet nun eine SysvMessageQueue-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • msg_remove_queue() - Entfernt eine Nachrichten-Warteschlange
  • msg_send() - Send a message to a message queue
  • msg_stat_queue() - Liefert Informationen zur Datenstruktur einer Nachrichten-Warteschlange
  • msg_set_queue() - Setzt Metadaten in der Datenstruktur der Nachrichten-Warteschlange


Entfernt eine Nachrichten-Warteschlange

  • « msg_receive
  • msg_send »
  • PHP Manual
  • Semaphore Funktionen
  • Entfernt eine Nachrichten-Warteschlange

msg_remove_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_remove_queue — Entfernt eine Nachrichten-Warteschlange

Beschreibung

msg_remove_queue ( SysvMessageQueue $queue ) : bool

msg_remove_queue() entfernt die mit queue angegebene Nachrichten-Warteschlange. Benutzen Sie diese Funktion nur, wenn Sie nicht weiter mit dieser Nachrichten-Warteschlange arbeiten wollen und die davon belegten Systemressourcen freigeben müssen.

Parameter-Liste

queue

Die Nachrichten-Warteschlange.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | queue erwartet nun eine SysvMessageQueue-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • msg_get_queue() - Legt eine Nachrichten-Warteschlange an oder hängt sich an existierende an
  • msg_receive() - Liest eine Nachricht aus einer Nachrichten-Warteschlange aus
  • msg_stat_queue() - Liefert Informationen zur Datenstruktur einer Nachrichten-Warteschlange
  • msg_set_queue() - Setzt Metadaten in der Datenstruktur der Nachrichten-Warteschlange


Send a message to a message queue

  • « msg_remove_queue
  • msg_set_queue »
  • PHP Manual
  • Semaphore Funktionen
  • Send a message to a message queue

msg_send

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_send — Send a message to a message queue

Beschreibung

msg_send ( SysvMessageQueue $queue , int $message_type , string|int|float|bool $message , bool $serialize = true , bool $blocking = true , int &$error_code = null ) : bool

msg_send() sends a message of type message_type (which MUST be greater than 0) to the message queue specified by queue.

Parameter-Liste

queue

The message queue.

message_type

The type of the message (MUST be greater than 0)

message

The body of the message.

Hinweis:

If serialize set to false is supplied, MUST be of type: string, int, float or bool. In other case a warning will be issued.

serialize

The optional serialize controls how the message is sent. serialize defaults to true which means that the message is serialized using the same mechanism as the session module before being sent to the queue. This allows complex arrays and objects to be sent to other PHP scripts, or if you are using the WDDX serializer, to any WDDX compatible client.

blocking

If the message is too large to fit in the queue, your script will wait until another process reads messages from the queue and frees enough space for your message to be sent. This is called blocking; you can prevent blocking by setting the optional blocking parameter to false, in which case msg_send() will immediately return false if the message is too big for the queue, and set the optional error_code to MSG_EAGAIN, indicating that you should try to send your message again a little later on.

error_code

If the function fails, the optional errorcode will be set to the value of the system errno variable.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Upon successful completion the message queue data structure is updated as follows: msg_lspid is set to the process-ID of the calling process, msg_qnum is incremented by 1 and msg_stime is set to the current time.

Changelog

Version | Beschreibung
8.0.0 | queue expects a SysvMessageQueue instance now; previously, a resource was expected.

Siehe auch

  • msg_remove_queue() - Entfernt eine Nachrichten-Warteschlange
  • msg_receive() - Liest eine Nachricht aus einer Nachrichten-Warteschlange aus
  • msg_stat_queue() - Liefert Informationen zur Datenstruktur einer Nachrichten-Warteschlange
  • msg_set_queue() - Setzt Metadaten in der Datenstruktur der Nachrichten-Warteschlange


Setzt Metadaten in der Datenstruktur der Nachrichten-Warteschlange

  • « msg_send
  • msg_stat_queue »
  • PHP Manual
  • Semaphore Funktionen
  • Setzt Metadaten in der Datenstruktur der Nachrichten-Warteschlange

msg_set_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_set_queue — Setzt Metadaten in der Datenstruktur der Nachrichten-Warteschlange

Beschreibung

msg_set_queue ( SysvMessageQueue $queue , array $data ) : bool

msg_set_queue() erlaubt es, die Werte der Felder msg_perm.uid, msg_perm.gid, msg_perm.mode und msg_qbytes in der Datenstruktur der Nachrichten-Warteschlange zu ändern.

Änderungen an diesen Werten erfordern, dass PHP unter demselben Benutzer ausgeführt wird, der die Warteschlange erstellt hat, der Eigentümer der Warteschlange ist (wie in den existierenden msg_perm.xxx Feldern festgelegt) oder mit root-Rechten ausgeführt wird. Zur Erhöhung des msg_qbytes-Wertes über das systemweite Limit hinaus sind ebenfalls root-Rechte erforderlich.

Parameter-Liste

queue

Die Nachrichten-Warteschlange.

data

Die gewünschten neuen Werte werden als Schlüssel/Wert-Paare im data-Array übergeben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | queue erwartet nun eine SysvMessageQueue-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • msg_remove_queue() - Entfernt eine Nachrichten-Warteschlange
  • msg_receive() - Liest eine Nachricht aus einer Nachrichten-Warteschlange aus
  • msg_stat_queue() - Liefert Informationen zur Datenstruktur einer Nachrichten-Warteschlange
  • msg_get_queue() - Legt eine Nachrichten-Warteschlange an oder hängt sich an existierende an


Liefert Informationen zur Datenstruktur einer Nachrichten-Warteschlange

  • « msg_set_queue
  • sem_acquire »
  • PHP Manual
  • Semaphore Funktionen
  • Liefert Informationen zur Datenstruktur einer Nachrichten-Warteschlange

msg_stat_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_stat_queue — Liefert Informationen zur Datenstruktur einer Nachrichten-Warteschlange

Beschreibung

msg_stat_queue ( SysvMessageQueue $queue ) : array|false

msg_stat_queue() liefert die Metadaten zu der mit queue angegebenen Nachrichten-Warteschlange. Diese Informationen können z.B. genutzt werden, um herauszufinden welcher Prozess eine gerade empfangene Nachricht gesendet hat.

Parameter-Liste

queue

Die Nachrichten-Warteschlange.

Rückgabewerte

Bei Erfolg ist der Rückgabewert ein Array, dessen Schlüssel und Werte die folgende Bedeutung haben:

Die Array-Struktur für msg_stat_queue
msg_perm.uid | Die Benutzer-ID des Besitzers der Warteschlange.
msg_perm.gid | Die Gruppen-ID des Besitzers der Warteschlange.
msg_perm.mode | Der Dateizugriffsmodus der Warteschlange.
msg_stime | Der Zeitpunkt, zu dem die letzte Nachricht an die Warteschlange gesendet wurde.
msg_rtime | Der Zeitpunkt, zu dem die letzte Nachricht von der Warteschlange empfangen wurde.
msg_ctime | Der Zeitpunkt, zu dem sich der Status der Warteschlange zuletzt geändert hat.
msg_qnum | Die Anzahl der Nachrichten, die sich zur Zeit noch in der Warteschlange befinden.
msg_qbytes | Die maximal erlaubte Anzahl von Bytes in einer Nachrichten-Warteschlange. Unter Linux kann dieser Wert über /proc/sys/kernel/msgmnb gelesen und verändert werden.
msg_lspid | Die Prozess-ID des Prozesses, der die letzte Nachricht an die Warteschlange gesendet hat.
msg_lrpid | Die Prozess-ID des Prozesses, der die letzte Nachricht aus der Warteschlange empfangen hat.

Gibt bei Auftreten eines Fehlers false zurück.

Changelog

Version | Beschreibung
8.0.0 | queue erwartet nun eine SysvMessageQueue-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • msg_remove_queue() - Entfernt eine Nachrichten-Warteschlange
  • msg_receive() - Liest eine Nachricht aus einer Nachrichten-Warteschlange aus
  • msg_get_queue() - Legt eine Nachrichten-Warteschlange an oder hängt sich an existierende an
  • msg_set_queue() - Setzt Metadaten in der Datenstruktur der Nachrichten-Warteschlange


Fordert Zugriff auf einen Semaphor an

  • « msg_stat_queue
  • sem_get »
  • PHP Manual
  • Semaphore Funktionen
  • Fordert Zugriff auf einen Semaphor an

sem_acquire

(PHP 4, PHP 5, PHP 7, PHP 8)

sem_acquire — Fordert Zugriff auf einen Semaphor an

Beschreibung

sem_acquire ( SysvSemaphore $semaphore , bool $non_blocking = false ) : bool

Standardmäßig blockiert sem_acquire() (falls nötig) bis ein Zugriff auf den Semaphor möglich ist. Ein Prozess, der Zugriff auf einen Semaphor anfordert, auf den er bereits Zugriff hat, wird für immer blockieren, wenn dieser erneute Zugriff die maximalen Zugriffe auf diesen Semaphor überschreiten würde.

Nach Abarbeitung einer Anfrage werden alle noch vom Prozess gehaltenen Semaphore automatisch freigegeben und entsprechende Warnungen erzeugt.

Parameter-Liste

semaphore

semaphore ist ein Semaphor, der von sem_get() zurückgegben wurde.

non_blocking

Gibt an, ob der Prozess nicht auf den Zugriff auf den Semaphor warten soll. Bei true wird der Aufruf unmittelbar false zurückgeben, wenn der Semaphor nicht sofort reserviert werden kann.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | semaphore erwartet nun eine SysvSemaphore-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • sem_get() - Fordert Zugriff auf eine Semaphor-ID an
  • sem_release() - Gibt einen Semaphor frei


Fordert Zugriff auf eine Semaphor-ID an

  • « sem_acquire
  • sem_release »
  • PHP Manual
  • Semaphore Funktionen
  • Fordert Zugriff auf eine Semaphor-ID an

sem_get

(PHP 4, PHP 5, PHP 7, PHP 8)

sem_get — Fordert Zugriff auf eine Semaphor-ID an

Beschreibung

sem_get ( int $key , int $max_acquire = 1 , int $permissions = 0666 , bool $auto_release = true ) : SysvSemaphore|false

sem_get() liefert eine ID, die für den Zugriff auf den System-V-Semaphor mit dem gegebenen key benutzt werden kann.

Weitere Aufrufe von sem_get() für den gleichen Key liefern unterschiedliche Semaphor-IDs, diese greifen aber auf den gleichen darunterliegenden Semaphor zu.

Ist key gleich 0 wird ein neuer privater Semaphor für jeden Aufruf von sem_get() erzeugt.

Parameter-Liste

key

max_acquire

Die Anzahl der Prozesse, die gleichzeitig Zugriff auf den Semaphor erhalten können, wird durch den Parameter max_acquire festgelegt

permissions

Die Zugriffsrechte für den Semaphore. Der Wert wird nur gesetzt, wenn der aktuelle Prozess der einzige ist der in diesem Augenblick mit dem Semaphor verknüpft ist.

auto_release

Legt fest, ob der Semaphor am Skriptende automatisch freigegeben werden soll.

Rückgabewerte

Gibt einen positiven Semaphor-Identifier zurück oder false bei Fehlern.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine SysvSemaphore-Instanz zurück; vorher wurde eine resource zurückgegeben.
8.0.0 | Der Typ von auto_release wurde von int auf bool geändert.

Anmerkungen

Warnung

Wird sem_get() verwendet, um auf einen Semaphor zuzugreifen, der außerhalb von PHP erzeugt wurde, ist zu beachten, dass der Semaphor als ein Satz von 3 Semaphoren erzeugt wurde (zum Beispiel durch Angabe von 3 für den nsems-Parameter beim Aufruf der C-Funktion semget()); andernfalls wird PHP nicht in der Lage sein, auf den Semaphor zuzugreifen.

Siehe auch

  • sem_acquire() - Fordert Zugriff auf einen Semaphor an
  • sem_release() - Gibt einen Semaphor frei
  • ftok() - Erzeugt aus einem Dateipfad und einem Projektbezeichner einen System-V-IPC-Schlüssel


Gibt einen Semaphor frei

  • « sem_get
  • sem_remove »
  • PHP Manual
  • Semaphore Funktionen
  • Gibt einen Semaphor frei

sem_release

(PHP 4, PHP 5, PHP 7, PHP 8)

sem_release — Gibt einen Semaphor frei

Beschreibung

sem_release ( SysvSemaphore $semaphore ) : bool

sem_release() gibt den angegebenen Semaphor frei, wenn er gegenwärtig vom aufrufenden Prozess gehalten wird; anderenfalls wird eine Warnung ausgegeben.

Nach der Freigabe eines Semaphors kann er mit sem_acquire() jederzeit wieder angefordert werden.

Parameter-Liste

semaphore

Ein Semaphor, wie er von sem_get() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | semaphore erwartet nun eine SysvSemaphore-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • sem_get() - Fordert Zugriff auf eine Semaphor-ID an
  • sem_acquire() - Fordert Zugriff auf einen Semaphor an


Entfernt einen Semaphor

  • « sem_release
  • shm_attach »
  • PHP Manual
  • Semaphore Funktionen
  • Entfernt einen Semaphor

sem_remove

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

sem_remove — Entfernt einen Semaphor

Beschreibung

sem_remove ( SysvSemaphore $semaphore ) : bool

sem_remove() entfernt einen mit sem_get() angelegten Semaphor.

Auf den Sempahor kann anschließend nicht mehr zugegriffen werden.

Parameter-Liste

semaphore

Ein Semaphor, wie er von sem_get() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | semaphore erwartet nun eine SysvSemaphore-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • sem_get() - Fordert Zugriff auf eine Semaphor-ID an
  • sem_release() - Gibt einen Semaphor frei
  • sem_acquire() - Fordert Zugriff auf einen Semaphor an


Erzeugt oder öffnet einen gemeinsamen Speicherbereich

  • « sem_remove
  • shm_detach »
  • PHP Manual
  • Semaphore Funktionen
  • Erzeugt oder öffnet einen gemeinsamen Speicherbereich

shm_attach

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_attach — Erzeugt oder öffnet einen gemeinsamen Speicherbereich

Beschreibung

shm_attach ( int $key , int|null $size = null , int $permissions = 0666 ) : SysvSharedMemory|false

shm_attach() liefert eine ID, über die mit dem gegebenen key auf einen gemeinsamen Speicherbereich vom Typ System V zugegriffen werden kann. Der erste Aufruf legt den gemeinsamen Speicherbereich mit der Größe size und den Zugriffsberechtigungen gemäß der in permissions gesetzten Bits an.

Ein zweiter Aufruf der Funktion shm_attach() mit dem gleichen key liefert eine andere SysvSharedMemory-Instanz, aber beide Instanzen greifen trotzdem auf denselben zugrundeliegenden gemeinsamen Speicherbereich zu. size und permissions werden in diesem Fall ignoriert.

Parameter-Liste

key

Eine numerische ID des gemeinsamen Speicherbereichs.

size

Die Größe des gemeinsamen Speicherbereichs in Bytes. Wird dieser Parameter nicht übergeben, so wird der Wert aus sysvshm.init_mem in php.ini angenommen. Ist auch dieser nicht gesetzt, ist der Vorgabewert 10000 Bytes.

permissions

Optionale Zugriffsrechte als Bitmaske. der Standardwert ist 0666.

Rückgabewerte

Gibt bei Erfolg eine SysvSharedMemory-Instanz zurück. Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine SysvSharedMemory-Instanz zurück; vorher wurde eine resource zurückgegeben.
8.0.0 | size ist nun ein Nullable-Typ.

Siehe auch

  • shm_detach() - Beendet die Anbindung an einen gemeinsamen Speicherbereich
  • ftok() - Erzeugt aus einem Dateipfad und einem Projektbezeichner einen System-V-IPC-Schlüssel


Beendet die Anbindung an einen gemeinsamen Speicherbereich

  • « shm_attach
  • shm_get_var »
  • PHP Manual
  • Semaphore Funktionen
  • Beendet die Anbindung an einen gemeinsamen Speicherbereich

shm_detach

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_detach — Beendet die Anbindung an einen gemeinsamen Speicherbereich

Beschreibung

shm_detach ( SysvSharedMemory $shm ) : bool

shm_detach() beendet die Anbindung an den in shm spezifizierten gemeinsamen Speicherbereich, der durch shm_attach() erstellt wurde. Es ist zu beachten, dass der gemeinsame Speicherbereich weiterhin innerhalb des UNIX-Systems besteht und die enthaltenen Daten weiter vorhanden sind.

Parameter-Liste

shm

Ein gemeinsamer Speicherbereich, wie er von shm_attach() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | shm erwartet nun eine SysvSharedMemory-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • shm_attach() - Erzeugt oder öffnet einen gemeinsamen Speicherbereich
  • shm_remove() - Entfernt einen gemeinsamen Speicherbereich unter UNIX
  • shm_remove_var() - Entfernt eine Variable aus dem gemeinsamen Speicherbereich


Liest eine Variable aus dem gemeinsamen Speicherbereich

  • « shm_detach
  • shm_has_var »
  • PHP Manual
  • Semaphore Funktionen
  • Liest eine Variable aus dem gemeinsamen Speicherbereich

shm_get_var

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_get_var — Liest eine Variable aus dem gemeinsamen Speicherbereich

Beschreibung

shm_get_var ( SysvSharedMemory $shm , int $key ) : mixed

shm_get_var() liest die Variable mit dem Schlüssel key, aus dem angegebenen gemeinsamen Speicherbereich. Die Variable bleibt weiter im gemeinsamen Speicherbereich erhalten.

Parameter-Liste

shm

Ein gemeinsamer Speicherbereich, wie er von shm_attach() zurückgegeben wurde.

key

Der Variablenschlüssel.

Rückgabewerte

Gibt die Variable mit dem gegebenen Schlüssel zurück.

Changelog

Version | Beschreibung
8.0.0 | shm erwartet nun eine SysvSharedMemory-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • shm_has_var() - Check whether a specific entry exists
  • shm_put_var() - Erstellt oder aktualisiert eine Variable im gemeinsamen Speicherbereich


Check whether a specific entry exists

  • « shm_get_var
  • shm_put_var »
  • PHP Manual
  • Semaphore Funktionen
  • Check whether a specific entry exists

shm_has_var

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

shm_has_var — Check whether a specific entry exists

Beschreibung

shm_has_var ( SysvSharedMemory $shm , int $key ) : bool

Checks whether a specific key exists inside a shared memory segment.

Parameter-Liste

shm

A shared memory segment obtained from shm_attach().

key

The variable key.

Rückgabewerte

Returns true if the entry exists, otherwise false

Changelog

Version | Beschreibung
8.0.0 | shm expects a SysvSharedMemory instance now; previously, a resource was expected.

Siehe auch

  • shm_get_var() - Liest eine Variable aus dem gemeinsamen Speicherbereich
  • shm_put_var() - Erstellt oder aktualisiert eine Variable im gemeinsamen Speicherbereich


Erstellt oder aktualisiert eine Variable im gemeinsamen Speicherbereich

  • « shm_has_var
  • shm_remove_var »
  • PHP Manual
  • Semaphore Funktionen
  • Erstellt oder aktualisiert eine Variable im gemeinsamen Speicherbereich

shm_put_var

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_put_var — Erstellt oder aktualisiert eine Variable im gemeinsamen Speicherbereich

Beschreibung

shm_put_var ( SysvSharedMemory $shm , int $key , mixed $value ) : bool

shm_put_var() fügt den Wert value mit dem angegebenen key ein oder aktualisiert ihn.

Warnungen der Stufe E_WARNING werden erzeugt, wenn shm kein gültiger SysV-Shared-Memory-Index ist oder wenn nicht genügend Speicher im angegebenen Bereich verfügbar ist.

Parameter-Liste

shm

Ein gemeinsamer Speicherbereich, wie er von shm_attach() zurückgegeben wurde.

key

Der Variablenschlüssel.

value

Die Variable. Alle Variablentypen, die serialize() unterstützt, können verwendet werden: im Allgemeinen bedeutet dies, alle Typen außer Ressourcen und einigen internen Objekten, die nicht serialisiert werden können.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | shm erwartet nun eine SysvSharedMemory-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • shm_get_var() - Liest eine Variable aus dem gemeinsamen Speicherbereich
  • shm_has_var() - Check whether a specific entry exists


Entfernt eine Variable aus dem gemeinsamen Speicherbereich

  • « shm_put_var
  • shm_remove »
  • PHP Manual
  • Semaphore Funktionen
  • Entfernt eine Variable aus dem gemeinsamen Speicherbereich

shm_remove_var

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_remove_var — Entfernt eine Variable aus dem gemeinsamen Speicherbereich

Beschreibung

shm_remove_var ( SysvSharedMemory $shm , int $key ) : bool

Entfernt die Variable mit dem angegebenen key und gibt den davon belegten Speicher wieder frei.

Parameter-Liste

shm

Ein gemeinsamer Speicherbereich, wie er von shm_attach() zurückgegeben wurde.

key

Der Schlüssel der zu löschenden Variable.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | shm erwartet nun eine SysvSharedMemory-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • shm_remove() - Entfernt einen gemeinsamen Speicherbereich unter UNIX


Entfernt einen gemeinsamen Speicherbereich unter UNIX

  • « shm_remove_var
  • Shared Memory »
  • PHP Manual
  • Semaphore Funktionen
  • Entfernt einen gemeinsamen Speicherbereich unter UNIX

shm_remove

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_remove — Entfernt einen gemeinsamen Speicherbereich unter UNIX

Beschreibung

shm_remove ( SysvSharedMemory $shm ) : bool

shm_remove() entfernt den durch shm angegebene gemeinsamen Speicherbereich. Die in diesem Bereich abgelegten Daten gehen dabei verloren.

Parameter-Liste

shm

Ein gemeinsamer Speicherbereich, wie er von shm_attach() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | shm erwartet nun eine SysvSharedMemory-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • shm_remove_var() - Entfernt eine Variable aus dem gemeinsamen Speicherbereich


Shared Memory

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Grundlegende Nutzung
  • Shared Memory Funktionen
    • shmop_close — Schließt einen gemeinsamen Speicherbereich
    • shmop_delete — Löscht einen gemeinsamen Speicherbereich
    • shmop_open — Erstellt oder öffnet einen gemeinsamen Speicherbereich
    • shmop_read — Liest Daten aus einem gemeinsamen Speicherbereich
    • shmop_size — Gibt die Größe des gemeinsamen Speicherbereichs zurück
    • shmop_write — Schreibt Daten in einen gemeinsamen Speicherbereich
  • Shmop — The Shmop class


Einführung

Shmop ist eine Sammlung einfach anzuwendender PHP-Funktionen zum mit denen UNIX Shared-Memory-Segmente gelesen, geschrieben, erzeugt und gelöscht werden können.


  • « Anforderungen
  • Laufzeit-Konfiguration »
  • PHP Manual
  • Installation/Konfiguration
  • Installation

Installation

Um die shmop-Erweiterung zu benutzen, müssen Sie PHP mit der Option --enable-shmop kompilieren.


Ressource-Typen

Vor PHP 8.0.0 definierte diese Erweiterung den Ressource-Typ shmop, der eine Kennung eines gemeinsamen Speicherbereichs ist.


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • Shared Memory
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


  • « Vordefinierte Konstanten
  • Grundlegende Nutzung »
  • PHP Manual
  • Shared Memory
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Grundlegende Nutzung


Grundlegende Nutzung

Beispiel #1 Shared Memory Operationen - Übersicht

<?php

// Erstelle einen 100 Byte großen gemeinsam genutzten Speicherblock
// mit der System_ID if 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if (!$shm_id) {
    echo "Konnte kein gemeinsames Speichersegment erstellen\n";
}

// Hole die Größe des gemeinsamen Speicherblocks
$shm_size = shmop_size($shm_id);
echo "SHM Block mit: ".$shm_size. " Bytes wurde erstellt.\n";

// Teststring in den gemeinsamen Speicher schreiben
$shm_bytes_written = shmop_write($shm_id, "mein gemeinsamer Speicherblock", 0);
if ($shm_bytes_written != strlen("mein gemeinsamer Speicherblock")) {
    echo "Konnte nicht den gesamten String schreiben\n";
}

// Den Teststring wieder auslesen
$my_string = shmop_read($shm_id, 0, $shm_size);
if (!$my_string) {
    echo "Konnte nicht aus dem gemeinsamen Speicher lesen\n";
}
echo "Die Daten im gemeinsamen Speicher waren: ".$my_string."\n";

// Den Speicherblock löschen und das Speichersegment schließ?en
if(!shmop_delete($shm_id)) {
    echo "Konnte den gemeinsamen Speicherblock nicht zum Löschen markieren.";
}
shmop_close($shm_id);

?>


Shared Memory Funktionen

Inhaltsverzeichnis

  • shmop_close — Schließt einen gemeinsamen Speicherbereich
  • shmop_delete — Löscht einen gemeinsamen Speicherbereich
  • shmop_open — Erstellt oder öffnet einen gemeinsamen Speicherbereich
  • shmop_read — Liest Daten aus einem gemeinsamen Speicherbereich
  • shmop_size — Gibt die Größe des gemeinsamen Speicherbereichs zurück
  • shmop_write — Schreibt Daten in einen gemeinsamen Speicherbereich


Schließt einen gemeinsamen Speicherbereich

  • « Shared Memory Funktionen
  • shmop_delete »
  • PHP Manual
  • Shared Memory Funktionen
  • Schließt einen gemeinsamen Speicherbereich

shmop_close

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_close — Schließt einen gemeinsamen Speicherbereich

Beschreibung

shmop_close ( Shmop $shmop ) : void

shmop_close() wird benutzt, um einen gemeinsamen Speicherbereich zu schließen.

Parameter-Liste

shmop

Die Kennung des gemeinsamen Speicherbereichs, der von shmop_open() erzeugt wurde.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | shmop erwartet nun eine Shmop-Instanz; vorher wurde eine resource erwartet.

Beispiele

Beispiel #1 Einen gemeinsamen Speicherbereich schließen

<?php
shmop_close($shm_id);
?>

In diesem Beispiel wird der gemeinsame Speicherbereich $shm_id wieder geschlossen.

Siehe auch

  • shmop_open() - Erstellt oder öffnet einen gemeinsamen Speicherbereich


Löscht einen gemeinsamen Speicherbereich

  • « shmop_close
  • shmop_open »
  • PHP Manual
  • Shared Memory Funktionen
  • Löscht einen gemeinsamen Speicherbereich

shmop_delete

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_delete — Löscht einen gemeinsamen Speicherbereich

Beschreibung

shmop_delete ( Shmop $shmop ) : bool

shmop_delete() wird benutzt, um einen gemeinsamen Speicherbereich zu löschen.

Parameter-Liste

shmop

Die Kennung des gemeinsamen Speicherbereichs, der von shmop_open() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | shmop erwartet nun eine Shmop-Instanz; vorher wurde eine resource erwartet.

Beispiele

Beispiel #1 Einen gemeinsamen Speicherbereich löschen

<?php
shmop_delete($shm_id);
?>

In diesem Beispiel wird der gemeinsame Speicherbereich mit der Kennung $shm_id gelöscht.


Erstellt oder öffnet einen gemeinsamen Speicherbereich

  • « shmop_delete
  • shmop_read »
  • PHP Manual
  • Shared Memory Funktionen
  • Erstellt oder öffnet einen gemeinsamen Speicherbereich

shmop_open

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_open — Erstellt oder öffnet einen gemeinsamen Speicherbereich

Beschreibung

shmop_open ( int $key , string $mode , int $permissions , int $size ) : Shmop|false

shmop_open() kann einen gemeinsamen Speicherbereich erstellen oder öffnen.

Parameter-Liste

key

Die System-ID des gemeinsam genutzten Speicherbereichs. Dieser Parameter kann als Dezimal- oder Hexadezimalzahl übergeben werden.

mode

Folgende Flags können benutzt werden:

  • "a" zum Zugriff (access) auf einen gemeinsamen Speicherbereich (setzt SHM_RDONLY für shmat). Benutzen Sie dieses Flag, wenn Sie einen bestehenden gemeinsamen Speicherbereich nur zum Lesen öffnen wollen.
  • "c" zum Erzeugen (create) eines gemeinsamen Speicherbereichs (setzt IPC_CREATE). Benutzen Sie dieses Flag, wenn Sie einen neuen gemeinsamen Speicherbereich erzeugen wollen, oder, falls bereits ein Segment mit derselben ID existiert, zum Öffnen dieses Bereichs für Lese- und Schreibzugriffe.
  • "w" für Lese- und Schreibzugriffe. Benutzen Sie dieses Flag, wenn Sie in einen gemeinsamen Speicherbereich schreiben oder daraus lesen müssen. Das wird meistens der Fall sein.
  • "n" zum Erzeugen eines neuen gemeinsamen Speicherbereichs (setzt IPC_CREATE|IPC_EXCL). Benutzen Sie dieses Flag, wenn Sie einen neuen gemeinsames Speicherbereich erzeugen wollen. Falls schon einen Bereich mit diesem Flag existiert, schlägt die Funktion fehl. Dies ist aus Sicherheitsgründen nützlich, denn damit können Sie vermeiden, dass konkurrierende Prozesse ausgenutzt werden.

permissions

Die Zugriffsberechtigungen für die gemeinsamen Speicherbereiche sind dieselben wie für Dateien. Diese Berechtigungen müssen als Oktalwerte übergeben werden, zum Beispiel 0644.

size

Die Größe des erzeugten gemeinsam genutzten Speicherbereichs in Byte.

Hinweis:

Beachten Sie: der dritte und vierte Parameter sollten mit 0 angegeben sein, falls Sie einen bereits existierenden Speicherbereich öffnen.

Rückgabewerte

Bei Erfolg gibt shmop_open() eine Shmop-Instanz zurück, die verwendet werden kann, um auf den erstellten gemeinsamen Speicherbereich zuzugreifen. Bei einem Fehler wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine Shmop-Instanz zurück; vorher wurde eine resource zurückgegeben.

Beispiele

Beispiel #1 Einen neuen gemeinsamen Speicherbereich erstellen

<?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>

In diesem Beispiel wurde ein gemeinsamer Speicherbereich geöffnet. Die System-ID wurde von der Funktion ftok() zurückgegeben.

Siehe auch

  • shmop_close() - Schließt einen gemeinsamen Speicherbereich
  • shmop_delete() - Löscht einen gemeinsamen Speicherbereich


Liest Daten aus einem gemeinsamen Speicherbereich

  • « shmop_open
  • shmop_size »
  • PHP Manual
  • Shared Memory Funktionen
  • Liest Daten aus einem gemeinsamen Speicherbereich

shmop_read

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_read — Liest Daten aus einem gemeinsamen Speicherbereich

Beschreibung

shmop_read ( Shmop $shmop , int $offset , int $size ) : string

shmop_read() liest einen String aus einem gemeinsam genutzten Speicherbereich.

Parameter-Liste

shmop

Der Bezeichner für den gemeinsamen Speicherbereich, der von shmop_open() erzeugt wurde.

offset

Offset, bei dem der Lesevorgang beginnen soll

size

Die Anzahl der zu lesenden Bytes. 0 liest shmop_size($shmid) - $start Bytes.

Rückgabewerte

Gibt die gelesenen Daten zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | shmop erwartet nun eine Shmop-Instanz; vorher wurde eine resource erwartet.

Beispiele

Beispiel #1 Aus dem gemeinsamen Speicherbereich lesen

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

In diesem Beispiel werden 50 Bytes aus dem gemeinsamen Speicherbereich in die Variable $shm_data eingelesen.

Siehe auch

  • shmop_write() - Schreibt Daten in einen gemeinsamen Speicherbereich


Gibt die Größe des gemeinsamen Speicherbereichs zurück

  • « shmop_read
  • shmop_write »
  • PHP Manual
  • Shared Memory Funktionen
  • Gibt die Größe des gemeinsamen Speicherbereichs zurück

shmop_size

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_size — Gibt die Größe des gemeinsamen Speicherbereichs zurück

Beschreibung

shmop_size ( Shmop $shmop ) : int

shmop_size() wird benutzt, um die Größe eines gemeinsamen Speicherbereichs in Byte zu ermitteln.

Parameter-Liste

shmop

Der Bezeichner des gemeinsamen Speicherbereichs, der von shmop_open() erzeugt wurde.

Rückgabewerte

Zurückgegeben wird ein Integerwert der angibt, wie viele Bytes von dem gemeinsamen Speicherbereich belegt werden.

Changelog

Version | Beschreibung
8.0.0 | shmop erwartet nun eine Shmop-Instanz; vorher wurde eine resource erwartet.

Beispiele

Beispiel #1 Die Größe des gemeinsamen Speicherbereichs ermitteln

<?php
$shm_size = shmop_size($shm_id);
?>

In dem Beispiel erhält die Variable $shm_size die Größe des durch $shm_id bezeichneten gemeinsamen Speicherbereichs in Byte.


Schreibt Daten in einen gemeinsamen Speicherbereich

  • « shmop_size
  • Shmop »
  • PHP Manual
  • Shared Memory Funktionen
  • Schreibt Daten in einen gemeinsamen Speicherbereich

shmop_write

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_write — Schreibt Daten in einen gemeinsamen Speicherbereich

Beschreibung

shmop_write ( Shmop $shmop , string $data , int $offset ) : int

shmop_write() schreibt Daten in einen gemeinsamen Speicherbereich.

Parameter-Liste

shmop

Der Bezeichner für den gemeinsamen Speicherbereich, der von shmop_open() erzeugt wurde.

data

Ein String, der in den gemeinsamen Speicherbereich geschrieben werden soll.

offset

Gibt an, von welcher Position ab Daten in den gemeinsamen Speicherbereich geschrieben werden sollen.

Rückgabewerte

Die Länge der geschriebenen Daten data oder false, falls ein Fehler auftrat.

Changelog

Version | Beschreibung
8.0.0 | Vor PHP 8.0.0 wurde bei einem Fehler false zurückgegeben.
8.0.0 | shmop erwartet nun eine Shmop-Instanz; vorher wurde eine resource erwartet.

Beispiele

Beispiel #1 In den gemeinsamen Speicherbereich schreiben

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

In diesem Beispiel werden die Daten der Variablen $my_string in den gemeinsamen Speicherbereich geschrieben. Die Variable $shm_bytes_written enthält die Anzahl der geschriebenen Bytes.

Siehe auch

  • shmop_read() - Liest Daten aus einem gemeinsamen Speicherbereich


The Shmop class

(PHP 8)

Einführung

A fully opaque class which replaces shmop resources as of PHP 8.0.0.

Klassenbeschreibung

final Shmop {
}


Sync

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • SyncMutex — The SyncMutex class
    • SyncMutex::__construct — Constructs a new SyncMutex object
    • SyncMutex::lock — Waits for an exclusive lock
    • SyncMutex::unlock — Unlocks the mutex
  • SyncSemaphore — The SyncSemaphore class
    • SyncSemaphore::__construct — Constructs a new SyncSemaphore object
    • SyncSemaphore::lock — Decreases the count of the semaphore or waits
    • SyncSemaphore::unlock — Increases the count of the semaphore
  • SyncEvent — The SyncEvent class
    • SyncEvent::__construct — Constructs a new SyncEvent object
    • SyncEvent::fire — Fires/sets the event
    • SyncEvent::reset — Resets a manual event
    • SyncEvent::wait — Waits for the event to be fired/set
  • SyncReaderWriter — The SyncReaderWriter class
    • SyncReaderWriter::__construct — Constructs a new SyncReaderWriter object
    • SyncReaderWriter::readlock — Waits for a read lock
    • SyncReaderWriter::readunlock — Releases a read lock
    • SyncReaderWriter::writelock — Waits for an exclusive write lock
    • SyncReaderWriter::writeunlock — Releases a write lock
  • SyncSharedMemory — The SyncSharedMemory class
    • SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object
    • SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory
    • SyncSharedMemory::read — Copy data from named shared memory
    • SyncSharedMemory::size — Returns the size of the named shared memory
    • SyncSharedMemory::write — Copy data to named shared memory


Einführung

The 'sync' extension introduces cross-platform synchonization objects into PHP. Named and unnamed Mutex, Semaphore, Event, Reader-Writer, and named Shared Memory objects provide OS-level synchronization on both POSIX (e.g. Linux) and Windows platforms.

Automatic cleanup of acquired synchronization objects takes place during extension teardown. This means that if PHP prematurely terminates a script (e.g. script execution time is exceeded), objects will not be left in an unknown state. The only exception to this is if PHP itself crashes (e.g. an internal buffer overflow).

Unnamed synchronization objects don't have a lot of use outside of a multithreaded scenario. Unnamed objects are more useful in conjunction with the pthreads PECL extension.

Hinweis:

Named objects require additional care to be used on all systems. If an object is instantiated with a specific set of parameters, it must always be instantiated with those parameters or the object will probably end up in an inconsistent state until the next reboot or a system administrator cleans up the mess.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

A system with support for POSIX shared memory (shm_open()) or running Windows.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/sync.


  • « Ressource-Typen
  • SyncMutex »
  • PHP Manual
  • Sync
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


The SyncMutex class

(PECL sync >= 1.0.0)

Einführung

A cross-platform, native implementation of named and unnamed countable mutex objects.

A mutex is a mutual exclusion object that restricts access to a shared resource (e.g. a file) to a single instance. Countable mutexes acquire the mutex a single time and internally track the number of times the mutex is locked. The mutex is unlocked as soon as it goes out of scope or is unlocked the same number of times that it was locked.

Klassenbeschreibung

SyncMutex {
/* Methoden */
public __construct ( string $name = ? )
public lock ( int $wait = -1 ) : bool
public unlock ( bool $all = false ) : bool
}

Inhaltsverzeichnis

  • SyncMutex::__construct — Constructs a new SyncMutex object
  • SyncMutex::lock — Waits for an exclusive lock
  • SyncMutex::unlock — Unlocks the mutex


Constructs a new SyncMutex object

  • « SyncMutex
  • SyncMutex::lock »
  • PHP Manual
  • SyncMutex
  • Constructs a new SyncMutex object

SyncMutex::__construct

(PECL sync >= 1.0.0)

SyncMutex::__construct — Constructs a new SyncMutex object

Beschreibung

public SyncMutex::__construct ( string $name = ? )

Constructs a named or unnamed countable mutex.

Parameter-Liste

name

The name of the mutex if this is a named mutex object.

Hinweis:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

Rückgabewerte

The new SyncMutex object. An exception is thrown if the mutex cannot be created or opened.

Beispiele

Beispiel #1 SyncMutex::__construct() named mutex with lock timeout example

<?php
$mutex = new SyncMutex("UniqueName");

if (!$mutex->lock(3000))
{
    echo "Unable to lock mutex.";

    exit();
}

/* ... */

$mutex->unlock();
?>

Beispiel #2 SyncMutex::__construct() unnamed mutex example

<?php
$mutex = new SyncMutex();

$mutex->lock();

/* ... */

$mutex->unlock();
?>

Siehe auch

  • SyncMutex::lock() - Waits for an exclusive lock
  • SyncMutex::unlock() - Unlocks the mutex


Waits for an exclusive lock

  • « SyncMutex::__construct
  • SyncMutex::unlock »
  • PHP Manual
  • SyncMutex
  • Waits for an exclusive lock

SyncMutex::lock

(PECL sync >= 1.0.0)

SyncMutex::lock — Waits for an exclusive lock

Beschreibung

public SyncMutex::lock ( int $wait = -1 ) : bool

Obtains an exclusive lock on a SyncMutex object. If the lock is already acquired, then this increments an internal counter.

Parameter-Liste

wait

The number of milliseconds to wait for the exclusive lock. A value of -1 is infinite.

Rückgabewerte

A boolean of TRUE if the lock was obtained, FALSE otherwise.

Beispiele

Beispiel #1 SyncMutex::lock() example

<?php
$mutex = new SyncMutex("UniqueName");

if (!$mutex->lock(3000))
{
    echo "Unable to lock mutex.";

    exit();
}

/* ... */

$mutex->unlock();
?>

Siehe auch

  • SyncMutex::unlock() - Unlocks the mutex


Unlocks the mutex

  • « SyncMutex::lock
  • SyncSemaphore »
  • PHP Manual
  • SyncMutex
  • Unlocks the mutex

SyncMutex::unlock

(PECL sync >= 1.0.0)

SyncMutex::unlock — Unlocks the mutex

Beschreibung

public SyncMutex::unlock ( bool $all = false ) : bool

Decreases the internal counter of a SyncMutex object. When the internal counter reaches zero, the actual lock on the object is released.

Parameter-Liste

all

Specifies whether or not to set the internal counter to zero and therefore release the lock.

Rückgabewerte

A boolean of TRUE if the unlock operation was successful, FALSE otherwise.

Beispiele

Beispiel #1 SyncMutex::unlock() example

<?php
$mutex = new SyncMutex("UniqueName");

$mutex->lock();

/* ... */

$mutex->unlock();
?>

Siehe auch

  • SyncMutex::lock() - Waits for an exclusive lock


The SyncSemaphore class

(PECL sync >= 1.0.0)

Einführung

A cross-platform, native implementation of named and unnamed semaphore objects.

A semaphore restricts access to a limited resource to a limited number of instances. Semaphores differ from mutexes in that they can allow more than one instance to access a resource at one time while a mutex only allows one instance at a time.

Klassenbeschreibung

SyncSemaphore {
/* Methoden */
public __construct ( string $name = ? , int $initialval = 1 , bool $autounlock = true )
public lock ( int $wait = -1 ) : bool
public unlock ( int &$prevcount = ? ) : bool
}

Inhaltsverzeichnis

  • SyncSemaphore::__construct — Constructs a new SyncSemaphore object
  • SyncSemaphore::lock — Decreases the count of the semaphore or waits
  • SyncSemaphore::unlock — Increases the count of the semaphore


Constructs a new SyncSemaphore object

  • « SyncSemaphore
  • SyncSemaphore::lock »
  • PHP Manual
  • SyncSemaphore
  • Constructs a new SyncSemaphore object

SyncSemaphore::__construct

(PECL sync >= 1.0.0)

SyncSemaphore::__construct — Constructs a new SyncSemaphore object

Beschreibung

public SyncSemaphore::__construct ( string $name = ? , int $initialval = 1 , bool $autounlock = true )

Constructs a named or unnamed semaphore.

Parameter-Liste

name

The name of the semaphore if this is a named semaphore object.

Hinweis:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

initialval

The initial value of the semaphore. This is the number of locks that may be obtained.

autounlock

Specifies whether or not to automatically unlock the semaphore at the conclusion of the PHP script.

Warnung

If an object is: A named semaphore with an autounlock of FALSE, the object is locked, and the PHP script concludes before the object is unlocked, then the underlying semaphore will end up in an inconsistent state.

Rückgabewerte

The new SyncSemaphore object. An exception is thrown if the semaphore cannot be created or opened.

Beispiele

Beispiel #1 SyncSemaphore::__construct() example

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
    echo "Unable to lock semaphore.";

    exit();
}

/* ... */

$semaphore->unlock();
?>

Siehe auch

  • SyncSemaphore::lock() - Decreases the count of the semaphore or waits
  • SyncSemaphore::unlock() - Increases the count of the semaphore


Decreases the count of the semaphore or waits

  • « SyncSemaphore::__construct
  • SyncSemaphore::unlock »
  • PHP Manual
  • SyncSemaphore
  • Decreases the count of the semaphore or waits

SyncSemaphore::lock

(PECL sync >= 1.0.0)

SyncSemaphore::lock — Decreases the count of the semaphore or waits

Beschreibung

public SyncSemaphore::lock ( int $wait = -1 ) : bool

Decreases the count of a SyncSemaphore object or waits until the semaphore becomes non-zero.

Parameter-Liste

wait

The number of milliseconds to wait for the semaphore. A value of -1 is infinite.

Rückgabewerte

A boolean of TRUE if the lock operation was successful, FALSE otherwise.

Beispiele

Beispiel #1 SyncSemaphore::lock() example

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
    echo "Unable to lock semaphore.";

    exit();
}

/* ... */

$semaphore->unlock();
?>

Siehe auch

  • SyncSemaphore::unlock() - Increases the count of the semaphore


Increases the count of the semaphore

  • « SyncSemaphore::lock
  • SyncEvent »
  • PHP Manual
  • SyncSemaphore
  • Increases the count of the semaphore

SyncSemaphore::unlock

(PECL sync >= 1.0.0)

SyncSemaphore::unlock — Increases the count of the semaphore

Beschreibung

public SyncSemaphore::unlock ( int &$prevcount = ? ) : bool

Increases the count of a SyncSemaphore object.

Parameter-Liste

prevcount

Returns the previous count of the semaphore.

Rückgabewerte

A boolean of TRUE if the unlock operation was successful, FALSE otherwise.

Beispiele

Beispiel #1 SyncSemaphore::unlock() example

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
    echo "Unable to lock semaphore.";

    exit();
}

/* ... */

$semaphore->unlock();
?>

Siehe auch

  • SyncSemaphore::lock() - Decreases the count of the semaphore or waits


The SyncEvent class

(PECL sync >= 1.0.0)

Einführung

A cross-platform, native implementation of named and unnamed event objects. Both automatic and manual event objects are supported.

An event object waits, without polling, for the object to be fired/set. One instance waits on the event object while another instance fires/sets the event. Event objects are useful wherever a long-running process would otherwise poll a resource (e.g. checking to see if uploaded data needs to be processed).

Klassenbeschreibung

SyncEvent {
/* Methoden */
public __construct ( string $name = ? , bool $manual = false , bool $prefire = false )
public fire ( ) : bool
public reset ( ) : bool
public wait ( int $wait = -1 ) : bool
}

Inhaltsverzeichnis

  • SyncEvent::__construct — Constructs a new SyncEvent object
  • SyncEvent::fire — Fires/sets the event
  • SyncEvent::reset — Resets a manual event
  • SyncEvent::wait — Waits for the event to be fired/set


Constructs a new SyncEvent object

  • « SyncEvent
  • SyncEvent::fire »
  • PHP Manual
  • SyncEvent
  • Constructs a new SyncEvent object

SyncEvent::__construct

(PECL sync >= 1.0.0)

SyncEvent::__construct — Constructs a new SyncEvent object

Beschreibung

public SyncEvent::__construct ( string $name = ? , bool $manual = false , bool $prefire = false )

Constructs a named or unnamed event object.

Parameter-Liste

name

The name of the event if this is a named event object.

Hinweis:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

manual

Specifies whether or not the event object must be reset manually.

Hinweis:

Manual reset event objects allow all waiting processes through until the object is reset.

prefire

Specifies whether or not to prefire (signal) the event object.

Hinweis:

Only has impact if the calling process/thread is the first to create the object.

Rückgabewerte

The new SyncEvent object. An exception is thrown if the event object cannot be created or opened.

Beispiele

Beispiel #1 SyncEvent::__construct() example

<?php
// In a web application:
$event = new SyncEvent("GetAppReport");
$event->fire();

// In a cron job:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Changelog

Version | Beschreibung
PECL sync 1.1.0 | Added prefire.

Siehe auch

  • SyncEvent::fire() - Fires/sets the event
  • SyncEvent::reset() - Resets a manual event
  • SyncEvent::wait() - Waits for the event to be fired/set


Fires/sets the event

  • « SyncEvent::__construct
  • SyncEvent::reset »
  • PHP Manual
  • SyncEvent
  • Fires/sets the event

SyncEvent::fire

(PECL sync >= 1.0.0)

SyncEvent::fire — Fires/sets the event

Beschreibung

public SyncEvent::fire ( ) : bool

Fires/sets a SyncEvent object. Lets multiple threads through that are waiting if the event object was created with a manual value of TRUE.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean of TRUE if the event was fired, FALSE otherwise.

Beispiele

Beispiel #1 SyncEvent::fire() example

<?php
// In a web application:
$event = new SyncEvent("GetAppReport");
$event->fire();

// In a cron job:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Siehe auch

  • SyncEvent::reset() - Resets a manual event
  • SyncEvent::wait() - Waits for the event to be fired/set


Resets a manual event

  • « SyncEvent::fire
  • SyncEvent::wait »
  • PHP Manual
  • SyncEvent
  • Resets a manual event

SyncEvent::reset

(PECL sync >= 1.0.0)

SyncEvent::reset — Resets a manual event

Beschreibung

public SyncEvent::reset ( ) : bool

Resets a SyncEvent object that has been fired/set. Only valid for manual event objects.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean value of TRUE if the object was successfully reset, FALSE otherwise.

Beispiele

Beispiel #1 SyncEvent::reset() example

<?php
// In a web application:
$event = new SyncEvent("DemoApplication", true);
$event->wait();

// In a cron job:
$event = new SyncEvent("DemoApplication", true);
$event->reset();
/* ... Do some maintenance task(s) ... */
$event->fire();
?>

Siehe auch

  • SyncEvent::fire() - Fires/sets the event
  • SyncEvent::reset()
  • SyncEvent::wait() - Waits for the event to be fired/set


Waits for the event to be fired/set

  • « SyncEvent::reset
  • SyncReaderWriter »
  • PHP Manual
  • SyncEvent
  • Waits for the event to be fired/set

SyncEvent::wait

(PECL sync >= 1.0.0)

SyncEvent::wait — Waits for the event to be fired/set

Beschreibung

public SyncEvent::wait ( int $wait = -1 ) : bool

Waits for the SyncEvent object to be fired.

Parameter-Liste

wait

The number of milliseconds to wait for the event to be fired. A value of -1 is infinite.

Rückgabewerte

A boolean of TRUE if the event was fired, FALSE otherwise.

Beispiele

Beispiel #1 SyncEvent::wait() example

<?php
// In a web application:
$event = new SyncEvent("GetAppReport");
$event->fire();

// In a cron job:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Siehe auch

  • SyncEvent::fire() - Fires/sets the event


The SyncReaderWriter class

(PECL sync >= 1.0.0)

Einführung

A cross-platform, native implementation of named and unnamed reader-writer objects.

A reader-writer object allows many readers or one writer to access a resource. This is an efficient solution for managing resources where access will primarily be read-only but exclusive write access is occasionally necessary.

Klassenbeschreibung

SyncReaderWriter {
/* Methoden */
public __construct ( string $name = ? , bool $autounlock = true )
public readlock ( int $wait = -1 ) : bool
public readunlock ( ) : bool
public writelock ( int $wait = -1 ) : bool
public writeunlock ( ) : bool
}

Inhaltsverzeichnis

  • SyncReaderWriter::__construct — Constructs a new SyncReaderWriter object
  • SyncReaderWriter::readlock — Waits for a read lock
  • SyncReaderWriter::readunlock — Releases a read lock
  • SyncReaderWriter::writelock — Waits for an exclusive write lock
  • SyncReaderWriter::writeunlock — Releases a write lock


Constructs a new SyncReaderWriter object

  • « SyncReaderWriter
  • SyncReaderWriter::readlock »
  • PHP Manual
  • SyncReaderWriter
  • Constructs a new SyncReaderWriter object

SyncReaderWriter::__construct

(PECL sync >= 1.0.0)

SyncReaderWriter::__construct — Constructs a new SyncReaderWriter object

Beschreibung

public SyncReaderWriter::__construct ( string $name = ? , bool $autounlock = true )

Constructs a named or unnamed reader-writer object.

Parameter-Liste

name

The name of the reader-writer if this is a named reader-writer object.

Hinweis:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

autounlock

Specifies whether or not to automatically unlock the reader-writer at the conclusion of the PHP script.

Warnung

If an object is: A named reader-writer with an autounlock of FALSE, the object is locked for either reading or writing, and the PHP script concludes before the object is unlocked, then the underlying objects will end up in an inconsistent state.

Rückgabewerte

The new SyncReaderWriter object. An exception is thrown if the reader-writer cannot be created or opened.

Beispiele

Beispiel #1 SyncReaderWriter::__construct() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();

$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Siehe auch

  • SyncReaderWriter::readlock() - Waits for a read lock
  • SyncReaderWriter::readunlock() - Releases a read lock
  • SyncReaderWriter::writelock() - Waits for an exclusive write lock
  • SyncReaderWriter::writeunlock() - Releases a write lock


Waits for a read lock

  • « SyncReaderWriter::__construct
  • SyncReaderWriter::readunlock »
  • PHP Manual
  • SyncReaderWriter
  • Waits for a read lock

SyncReaderWriter::readlock

(PECL sync >= 1.0.0)

SyncReaderWriter::readlock — Waits for a read lock

Beschreibung

public SyncReaderWriter::readlock ( int $wait = -1 ) : bool

Obtains a read lock on a SyncReaderWriter object.

Parameter-Liste

wait

The number of milliseconds to wait for a lock. A value of -1 is infinite.

Rückgabewerte

A boolean of TRUE if the lock was obtained, FALSE otherwise.

Beispiele

Beispiel #1 SyncReaderWriter::readlock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();
?>

Siehe auch

  • SyncReaderWriter::readunlock() - Releases a read lock


Releases a read lock

  • « SyncReaderWriter::readlock
  • SyncReaderWriter::writelock »
  • PHP Manual
  • SyncReaderWriter
  • Releases a read lock

SyncReaderWriter::readunlock

(PECL sync >= 1.0.0)

SyncReaderWriter::readunlock — Releases a read lock

Beschreibung

public SyncReaderWriter::readunlock ( ) : bool

Releases a read lock on a SyncReaderWriter object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean of TRUE if the unlock operation was successful, FALSE otherwise.

Beispiele

Beispiel #1 SyncReaderWriter::readunlock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();
?>

Siehe auch

  • SyncReaderWriter::readlock() - Waits for a read lock


Waits for an exclusive write lock

  • « SyncReaderWriter::readunlock
  • SyncReaderWriter::writeunlock »
  • PHP Manual
  • SyncReaderWriter
  • Waits for an exclusive write lock

SyncReaderWriter::writelock

(PECL sync >= 1.0.0)

SyncReaderWriter::writelock — Waits for an exclusive write lock

Beschreibung

public SyncReaderWriter::writelock ( int $wait = -1 ) : bool

Obtains an exclusive write lock on a SyncReaderWriter object.

Parameter-Liste

wait

The number of milliseconds to wait for a lock. A value of -1 is infinite.

Rückgabewerte

A boolean of TRUE if the lock was obtained, FALSE otherwise.

Beispiele

Beispiel #1 SyncReaderWriter::writelock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Siehe auch

  • SyncReaderWriter::writeunlock() - Releases a write lock


Releases a write lock

  • « SyncReaderWriter::writelock
  • SyncSharedMemory »
  • PHP Manual
  • SyncReaderWriter
  • Releases a write lock

SyncReaderWriter::writeunlock

(PECL sync >= 1.0.0)

SyncReaderWriter::writeunlock — Releases a write lock

Beschreibung

public SyncReaderWriter::writeunlock ( ) : bool

Releases a write lock on a SyncReaderWriter object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean of TRUE if the unlock operation was successful, FALSE otherwise.

Beispiele

Beispiel #1 SyncReaderWriter::writeunlock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Siehe auch

  • SyncReaderWriter::writelock() - Waits for an exclusive write lock


The SyncSharedMemory class

(PECL sync >= 1.1.0)

Einführung

A cross-platform, native, consistent implementation of named shared memory objects.

Shared memory lets two separate processes communicate without the need for complex pipes or sockets. There are several integer-based shared memory implementations for PHP. Named shared memory is an alternative.

Synchronization objects (e.g. SyncMutex) are still required to protect most uses of shared memory.

Klassenbeschreibung

SyncSharedMemory {
/* Methoden */
public __construct ( string $name , int $size )
public first ( ) : bool
public read ( int $start = 0 , int $length = ? )
public size ( ) : bool
public write ( string $string = ? , int $start = 0 )
}

Inhaltsverzeichnis

  • SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::read — Copy data from named shared memory
  • SyncSharedMemory::size — Returns the size of the named shared memory
  • SyncSharedMemory::write — Copy data to named shared memory


Constructs a new SyncSharedMemory object

  • « SyncSharedMemory
  • SyncSharedMemory::first »
  • PHP Manual
  • SyncSharedMemory
  • Constructs a new SyncSharedMemory object

SyncSharedMemory::__construct

(PECL sync >= 1.1.0)

SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object

Beschreibung

public SyncSharedMemory::__construct ( string $name , int $size )

Constructs a named shared memory object.

Parameter-Liste

name

The name of the shared memory object.

Hinweis:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

size

The size, in bytes, of shared memory to reserve.

Hinweis:

The amount of memory cannot be resized later. Request sufficient storage up front.

Rückgabewerte

The new SyncSharedMemory object. An exception is thrown if the shared memory object cannot be created or opened.

Beispiele

Beispiel #1 SyncSharedMemory::__construct() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
    // Do first time initialization work here.
}

$result = $mem->write(json_encode(array("name" => "my_report.txt")));
?>

Siehe auch

  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::size() - Returns the size of the named shared memory
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Check to see if the object is the first instance system-wide of named shared memory

  • « SyncSharedMemory::__construct
  • SyncSharedMemory::read »
  • PHP Manual
  • SyncSharedMemory
  • Check to see if the object is the first instance system-wide of named shared memory

SyncSharedMemory::first

(PECL sync >= 1.1.0)

SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory

Beschreibung

public SyncSharedMemory::first ( ) : bool

Retrieves the system-wide first instance status of a SyncSharedMemory object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean of TRUE if the object is the first instance system-wide, FALSE otherwise.

Beispiele

Beispiel #1 SyncSharedMemory::first() example

<?php
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
    // Do first time initialization work here.
}

var_dump($mem->first());

$mem2 = new SyncSharedMemory("AppReportName", 1024);

var_dump($mem2->first());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)

Siehe auch

  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Copy data from named shared memory

  • « SyncSharedMemory::first
  • SyncSharedMemory::size »
  • PHP Manual
  • SyncSharedMemory
  • Copy data from named shared memory

SyncSharedMemory::read

(PECL sync >= 1.1.0)

SyncSharedMemory::read — Copy data from named shared memory

Beschreibung

public SyncSharedMemory::read ( int $start = 0 , int $length = ? )

Copies data from named shared memory.

Parameter-Liste

start

The start/offset, in bytes, to begin reading.

Hinweis:

If the value is negative, the starting position will begin at the specified number of bytes from the end of the shared memory segment.

length

The number of bytes to read.

Hinweis:

If unspecified, reading will stop at the end of the shared memory segment.

If the value is negative, reading will stop the specified number of bytes from the end of the shared memory segment.

Rückgabewerte

A string containing the data read from shared memory.

Beispiele

Beispiel #1 SyncSharedMemory::__construct() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
    // Do first time initialization work here.
}

$result = $mem->write("report.txt");

$result = $mem->read(3, -4);
var_dump($result);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(3) "ort"

Siehe auch

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read()


Returns the size of the named shared memory

  • « SyncSharedMemory::read
  • SyncSharedMemory::write »
  • PHP Manual
  • SyncSharedMemory
  • Returns the size of the named shared memory

SyncSharedMemory::size

(PECL sync >= 1.1.0)

SyncSharedMemory::size — Returns the size of the named shared memory

Beschreibung

public SyncSharedMemory::size ( ) : bool

Retrieves the shared memory size of a SyncSharedMemory object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An integer containing the size of the shared memory. This will be the same size that was passed to the constructor.

Beispiele

Beispiel #1 SyncSharedMemory::size() example

<?php
$mem = new SyncSharedMemory("AppReportName", 1024);
var_dump($mem->size());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1024)

Siehe auch

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Copy data to named shared memory

  • « SyncSharedMemory::size
  • Sonstige Grunderweiterungen »
  • PHP Manual
  • SyncSharedMemory
  • Copy data to named shared memory

SyncSharedMemory::write

(PECL sync >= 1.1.0)

SyncSharedMemory::write — Copy data to named shared memory

Beschreibung

public SyncSharedMemory::write ( string $string = ? , int $start = 0 )

Copies data to named shared memory.

Parameter-Liste

string

The data to write to shared memoy.

Hinweis:

If the size of the data exceeds the size of the shared memory, the number of bytes written returned will be less than the length of the input.

start

The start/offset, in bytes, to begin writing.

Hinweis:

If the value is negative, the starting position will begin at the specified number of bytes from the end of the shared memory segment.

Rückgabewerte

An integer containing the number of bytes written to shared memory.

Beispiele

Beispiel #1 SyncSharedMemory::write() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
    // Do first time initialization work here.
}

$result = $mem->write("report.txt");
var_dump($result);

$result = $mem->write("report.txt", -3);
var_dump($result);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(10)
int(3)

Siehe auch

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::write()
  • SyncSharedMemory::read() - Copy data from named shared memory


Sonstige Grunderweiterungen

  • GeoIP — Geo IP Location
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • GeoIP Funktionen
  • FANN — FANN (Fast Artificial Neural Network)
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Fann Funktionen
    • FANNConnection — The FANNConnection class
  • JSON — JavaScript-Objekt-Notation
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • JsonException — The JsonException class
    • JsonSerializable — Die JsonSerializable Schnittstelle
    • JSON-Funktionen
  • Lua
    • Einführung
    • Installation/Konfiguration
    • Lua — The Lua class
    • LuaClosure — The LuaClosure class
  • LuaSandbox
    • Einführung
    • Installation/Konfiguration
    • Differences from Standard Lua
    • Beispiele
    • LuaSandbox — The LuaSandbox class
    • LuaSandboxFunction — The LuaSandboxFunction class
    • LuaSandboxError — The LuaSandboxError class
    • LuaSandboxErrorError — The LuaSandboxErrorError class
    • LuaSandboxFatalError — The LuaSandboxFatalError class
    • LuaSandboxMemoryError — The LuaSandboxMemoryError class
    • LuaSandboxRuntimeError — The LuaSandboxRuntimeError class
    • LuaSandboxSyntaxError — The LuaSandboxSyntaxError class
    • LuaSandboxTimeoutError — The LuaSandboxTimeoutError class
  • Misc. — Miscellaneous Functions
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Sonstige Funktionen
    • Changelog
  • Seaslog
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Seaslog Funktionen
    • SeasLog — The SeasLog class
  • SPL — Standard PHP Library (SPL)
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Datenstrukturen
    • Iteratoren
    • Interfaces
    • Exceptions
    • SPL Funktionen
    • Dateibehandlung
    • Verschiedene Klassen und Interfaces
  • Streams
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Stream Filters
    • Stream Contexts
    • Stream Errors
    • Beispiele
    • php_user_filter — The php_user_filter class
    • streamWrapper — The streamWrapper class
    • Stream Funktionen
  • Swoole
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Swoole Funktionen
    • Swoole\Async — The Swoole\Async class
    • Swoole\Atomic — The Swoole\Atomic class
    • Swoole\Buffer — The Swoole\Buffer class
    • Swoole\Channel — The Swoole\Channel class
    • Swoole\Client — The Swoole\Client class
    • Swoole\Connection\Iterator — The Swoole\Connection\Iterator class
    • Swoole\Coroutine — The Swoole\Coroutine class
    • Swoole\Event — The Swoole\Event class
    • Swoole\Exception — The Swoole\Exception class
    • Swoole\Http\Client — The Swoole\Http\Client class
    • Swoole\Http\Request — The Swoole\Http\Request class
    • Swoole\Http\Response — The Swoole\Http\Response class
    • Swoole\Http\Server — The Swoole\Http\Server class
    • Swoole\Lock — The Swoole\Lock class
    • Swoole\Mmap — The Swoole\Mmap class
    • Swoole\MySQL — The Swoole\MySQL class
    • Swoole\MySQL\Exception — The Swoole\MySQL\Exception class
    • Swoole\Process — The Swoole\Process class
    • Swoole\Redis\Server — The Swoole\Redis\Server class
    • Swoole\Serialize — The Swoole\Serialize class
    • Swoole\Server — The Swoole\Server class
    • Swoole\Table — The Swoole\Table class
    • Swoole\Timer — The Swoole\Timer class
    • Swoole\WebSocket\Frame — The Swoole\WebSocket\Frame class
    • Swoole\WebSocket\Server — The Swoole\WebSocket\Server class
  • Tidy
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • tidy — The tidy class
    • tidyNode — The tidyNode class
    • Tidy Funktionen
  • Tokenizer
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • PhpToken — The PhpToken class
    • Tokenizer Funktionen
  • URLs
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • URL Funktionen
  • V8js — V8 Javascript-Engine Integration
    • Einführung
    • Installation/Konfiguration
    • Beispiele
    • V8Js — Die Klasse V8Js
    • V8JsException — Die Klasse V8JsException
  • Yaml — YAML Data Serialization
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Callbacks
    • Yaml Funktionen
  • Yaf — Yet Another Framework
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Application Configuration
    • Yaf_Application — The Yaf_Application class
    • Yaf_Bootstrap_Abstract — The Yaf_Bootstrap_Abstract class
    • Yaf_Dispatcher — The Yaf_Dispatcher class
    • Yaf_Config_Abstract — The Yaf_Config_Abstract class
    • Yaf_Config_Ini — The Yaf_Config_Ini class
    • Yaf_Config_Simple — The Yaf_Config_Simple class
    • Yaf_Controller_Abstract — The Yaf_Controller_Abstract class
    • Yaf_Action_Abstract — The Yaf_Action_Abstract class
    • Yaf_View_Interface — The Yaf_View_Interface class
    • Yaf_View_Simple — The Yaf_View_Simple class
    • Yaf_Loader — The Yaf_Loader class
    • Yaf_Plugin_Abstract — The Yaf_Plugin_Abstract class
    • Yaf_Registry — The Yaf_Registry class
    • Yaf_Request_Abstract — The Yaf_Request_Abstract class
    • Yaf_Request_Http — The Yaf_Request_Http class
    • Yaf_Request_Simple — The Yaf_Request_Simple class
    • Yaf_Response_Abstract — The Yaf_Response_Abstract class
    • Yaf_Route_Interface — The Yaf_Route_Interface class
    • Yaf_Route_Map — The Yaf_Route_Map class
    • Yaf_Route_Regex — The Yaf_Route_Regex class
    • Yaf_Route_Rewrite — The Yaf_Route_Rewrite class
    • Yaf_Router — The Yaf_Router class
    • Yaf_Route_Simple — The Yaf_Route_Simple class
    • Yaf_Route_Static — The Yaf_Route_Static class
    • Yaf_Route_Supervar — The Yaf_Route_Supervar class
    • Yaf_Session — The Yaf_Session class
    • Yaf_Exception — The Yaf_Exception class
    • Yaf_Exception_TypeError — The Yaf_Exception_TypeError class
    • Yaf_Exception_StartupError — The Yaf_Exception_StartupError class
    • Yaf_Exception_DispatchFailed — The Yaf_Exception_DispatchFailed class
    • Yaf_Exception_RouterFailed — The Yaf_Exception_RouterFailed class
    • Yaf_Exception_LoadFailed — The Yaf_Exception_LoadFailed class
    • Yaf_Exception_LoadFailed_Module — The Yaf_Exception_LoadFailed_Module class
    • Yaf_Exception_LoadFailed_Controller — The Yaf_Exception_LoadFailed_Controller class
    • Yaf_Exception_LoadFailed_Action — The Yaf_Exception_LoadFailed_Action class
    • Yaf_Exception_LoadFailed_View — The Yaf_Exception_LoadFailed_View class
  • Yaconf
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Yaconf — The Yaconf class
  • Taint
    • Einführung
    • Installation/Konfiguration
    • More Details
    • Taint Funktionen
  • Data Structures
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Collection — The Collection interface
    • Hashable — The Hashable interface
    • Sequence — The Sequence interface
    • Vector — The Vector class
    • Deque — The Deque class
    • Map — The Map class
    • Pair — The Pair class
    • Set — The Set class
    • Stack — The Stack class
    • Queue — The Queue class
    • PriorityQueue — The PriorityQueue class


Geo IP Location

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • GeoIP Funktionen
    • geoip_asnum_by_name — Get the Autonomous System Numbers (ASN)
    • geoip_continent_code_by_name — Get the two letter continent code
    • geoip_country_code_by_name — Get the two letter country code
    • geoip_country_code3_by_name — Get the three letter country code
    • geoip_country_name_by_name — Get the full country name
    • geoip_database_info — Get GeoIP Database information
    • geoip_db_avail — Determine if GeoIP Database is available
    • geoip_db_filename — Returns the filename of the corresponding GeoIP Database
    • geoip_db_get_all_info — Returns detailed information about all GeoIP database types
    • geoip_domain_by_name — Get the second level domain name
    • geoip_id_by_name — Get the Internet connection type
    • geoip_isp_by_name — Get the Internet Service Provider (ISP) name
    • geoip_netspeedcell_by_name — Get the Internet connection speed
    • geoip_org_by_name — Get the organization name
    • geoip_record_by_name — Returns the detailed City information found in the GeoIP Database
    • geoip_region_by_name — Get the country code and region
    • geoip_region_name_by_code — Returns the region name for some country and region code combo
    • geoip_setup_custom_directory — Set a custom directory for the GeoIP database
    • geoip_time_zone_by_country_and_region — Returns the time zone for some country and region code combo


Einführung

The GeoIP extension allows you to find the location of an IP address. City, State, Country, Longitude, Latitude, and other information as all, such as ISP and connection type can be obtained with the help of GeoIP.

Warnung

This extension does not support MaxMind's current "GeoIP2" databases, only the "GeoIP legacy" database files.


Anforderungen

This extension requires the GeoIP C library version 1.4.0 or higher to be installed. You can grab the latest version from » http://www.maxmind.com/app/c and compile it yourself.

By default, you will only have access to the Free GeoIP Country or GeoLite City databases. While this module can work with other types of database, you must buy a commercial license from » Maxmind.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/geoip.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

GeoIP Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
geoip.custom_directory | "" | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

geoip.custom_directory string

Empty by default, but can be set to force a different database path than the one compiled in the library.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

GEOIP_COUNTRY_EDITION (int)
GEOIP_REGION_EDITION_REV0 (int)
GEOIP_CITY_EDITION_REV0 (int)
GEOIP_ORG_EDITION (int)
GEOIP_ISP_EDITION (int)
GEOIP_CITY_EDITION_REV1 (int)
GEOIP_REGION_EDITION_REV1 (int)
GEOIP_PROXY_EDITION (int)
GEOIP_ASNUM_EDITION (int)
GEOIP_NETSPEED_EDITION (int)
GEOIP_DOMAIN_EDITION (int)

The following constants are for net speed:

GEOIP_UNKNOWN_SPEED (int)
GEOIP_DIALUP_SPEED (int)
GEOIP_CABLEDSL_SPEED (int)
GEOIP_CORPORATE_SPEED (int)


GeoIP Funktionen

Inhaltsverzeichnis

  • geoip_asnum_by_name — Get the Autonomous System Numbers (ASN)
  • geoip_continent_code_by_name — Get the two letter continent code
  • geoip_country_code_by_name — Get the two letter country code
  • geoip_country_code3_by_name — Get the three letter country code
  • geoip_country_name_by_name — Get the full country name
  • geoip_database_info — Get GeoIP Database information
  • geoip_db_avail — Determine if GeoIP Database is available
  • geoip_db_filename — Returns the filename of the corresponding GeoIP Database
  • geoip_db_get_all_info — Returns detailed information about all GeoIP database types
  • geoip_domain_by_name — Get the second level domain name
  • geoip_id_by_name — Get the Internet connection type
  • geoip_isp_by_name — Get the Internet Service Provider (ISP) name
  • geoip_netspeedcell_by_name — Get the Internet connection speed
  • geoip_org_by_name — Get the organization name
  • geoip_record_by_name — Returns the detailed City information found in the GeoIP Database
  • geoip_region_by_name — Get the country code and region
  • geoip_region_name_by_code — Returns the region name for some country and region code combo
  • geoip_setup_custom_directory — Set a custom directory for the GeoIP database
  • geoip_time_zone_by_country_and_region — Returns the time zone for some country and region code combo


Get the Autonomous System Numbers (ASN)

  • « GeoIP Funktionen
  • geoip_continent_code_by_name »
  • PHP Manual
  • GeoIP Funktionen
  • Get the Autonomous System Numbers (ASN)

geoip_asnum_by_name

(PECL geoip >= 1.1.0)

geoip_asnum_by_name — Get the Autonomous System Numbers (ASN)

Beschreibung

geoip_asnum_by_name ( string $hostname ) : string

The geoip_asnum_by_name() function will return the Autonomous System Numbers (ASN) associated with an IP address.

Parameter-Liste

hostname

The hostname or IP address.

Rückgabewerte

Returns the ASN on success, or false if the address cannot be found in the database.

Beispiele

Beispiel #1 A geoip_asnum_by_name() example

This will output the ASN of the host www.example.com.

<?php
$asn = geoip_asnum_by_name('www.example.com');

if ($asn) {
    echo 'The ASN is: ' . $asn;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The ASN is: AS15133 EdgeCast Networks, Inc


Get the two letter continent code

  • « geoip_asnum_by_name
  • geoip_country_code_by_name »
  • PHP Manual
  • GeoIP Funktionen
  • Get the two letter continent code

geoip_continent_code_by_name

(PECL geoip >= 1.0.3)

geoip_continent_code_by_name — Get the two letter continent code

Beschreibung

geoip_continent_code_by_name ( string $hostname ) : string

The geoip_continent_code_by_name() function will return the two letter continent code corresponding to a hostname or an IP address.

Parameter-Liste

hostname

The hostname or IP address whose location is to be looked-up.

Rückgabewerte

Returns the two letter continent code on success, or false if the address cannot be found in the database.

Continent codes
Code | Continent name
AF | Africa
AN | Antarctica
AS | Asia
EU | Europe
NA | North america
OC | Oceania
SA | South america

Beispiele

Beispiel #1 A geoip_continent_code_by_name() example

This will print where the host example.com is located.

<?php
$continent = geoip_continent_code_by_name('www.example.com');
if ($continent) {
    echo 'This host is located in: ' . $continent;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

 This host is located in: NA

Siehe auch

  • geoip_country_code_by_name() - Get the two letter country code


Get the two letter country code

  • « geoip_continent_code_by_name
  • geoip_country_code3_by_name »
  • PHP Manual
  • GeoIP Funktionen
  • Get the two letter country code

geoip_country_code_by_name

(PECL geoip >= 0.2.0)

geoip_country_code_by_name — Get the two letter country code

Beschreibung

geoip_country_code_by_name ( string $hostname ) : string

The geoip_country_code_by_name() function will return the two letter country code corresponding to a hostname or an IP address.

Parameter-Liste

hostname

The hostname or IP address whose location is to be looked-up.

Rückgabewerte

Returns the two letter ISO country code on success, or false if the address cannot be found in the database.

Beispiele

Beispiel #1 A geoip_country_code_by_name() example

This will print where the host example.com is located.

<?php
$country = geoip_country_code_by_name('www.example.com');
if ($country) {
    echo 'This host is located in: ' . $country;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

This host is located in: US

Anmerkungen

Achtung

Please see » http://www.maxmind.com/en/iso3166 for a complete list of possible return values, including special codes.

Siehe auch

  • geoip_country_code3_by_name() - Get the three letter country code
  • geoip_country_name_by_name() - Get the full country name


Get the three letter country code

  • « geoip_country_code_by_name
  • geoip_country_name_by_name »
  • PHP Manual
  • GeoIP Funktionen
  • Get the three letter country code

geoip_country_code3_by_name

(PECL geoip >= 0.2.0)

geoip_country_code3_by_name — Get the three letter country code

Beschreibung

geoip_country_code3_by_name ( string $hostname ) : string

The geoip_country_code3_by_name() function will return the three letter country code corresponding to a hostname or an IP address.

Parameter-Liste

hostname

The hostname or IP address whose location is to be looked-up.

Rückgabewerte

Returns the three letter country code on success, or false if the address cannot be found in the database.

Beispiele

Beispiel #1 A geoip_country_code3_by_name() example

This will print where the host example.com is located.

<?php
$country = geoip_country_code3_by_name('www.example.com');
if ($country) {
    echo 'This host is located in: ' . $country;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

This host is located in: USA

Siehe auch

  • geoip_country_code_by_name() - Get the two letter country code
  • geoip_country_name_by_name() - Get the full country name


Get the full country name

  • « geoip_country_code3_by_name
  • geoip_database_info »
  • PHP Manual
  • GeoIP Funktionen
  • Get the full country name

geoip_country_name_by_name

(PECL geoip >= 0.2.0)

geoip_country_name_by_name — Get the full country name

Beschreibung

geoip_country_name_by_name ( string $hostname ) : string

The geoip_country_name_by_name() function will return the full country name corresponding to a hostname or an IP address.

Parameter-Liste

hostname

The hostname or IP address whose location is to be looked-up.

Rückgabewerte

Returns the country name on success, or false if the address cannot be found in the database.

Beispiele

Beispiel #1 A geoip_country_name_by_name() example

This will print where the host example.com is located.

<?php
$country = geoip_country_name_by_name('www.example.com');
if ($country) {
    echo 'This host is located in: ' . $country;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

 This host is located in: United States

Siehe auch

  • geoip_country_code_by_name() - Get the two letter country code
  • geoip_country_code3_by_name() - Get the three letter country code


Get GeoIP Database information

  • « geoip_country_name_by_name
  • geoip_db_avail »
  • PHP Manual
  • GeoIP Funktionen
  • Get GeoIP Database information

geoip_database_info

(PECL geoip >= 0.2.0)

geoip_database_info — Get GeoIP Database information

Beschreibung

geoip_database_info ( int $database = GEOIP_COUNTRY_EDITION ) : string

The geoip_database_info() function returns the corresponding GeoIP Database version as it is defined inside the binary file.

If this function is called without arguments, it returns the version of the GeoIP Free Country Edition.

Parameter-Liste

database

The database type as an integer. You can use the various constants defined with this extension (ie: GEOIP_*_EDITION).

Rückgabewerte

Returns the corresponding database version, or null on error.

Beispiele

Beispiel #1 A geoip_database_info() example

This will output information regarding the database.

<?php
print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

GEO-106FREE 20060801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved


Determine if GeoIP Database is available

  • « geoip_database_info
  • geoip_db_filename »
  • PHP Manual
  • GeoIP Funktionen
  • Determine if GeoIP Database is available

geoip_db_avail

(PECL geoip >= 1.0.1)

geoip_db_avail — Determine if GeoIP Database is available

Beschreibung

geoip_db_avail ( int $database ) : bool

The geoip_db_avail() function returns if the corresponding GeoIP Database is available and can be opened on disk.

It does not indicate if the file is a proper database, only if it is readable.

Parameter-Liste

database

The database type as an integer. You can use the various constants defined with this extension (ie: GEOIP_*_EDITION).

Rückgabewerte

Returns true is database exists, false if not found, or null on error.

Beispiele

Beispiel #1 A geoip_db_avail() example

This will output the current database version string.

<?php

if (geoip_db_avail(GEOIP_COUNTRY_EDITION))
    print geoip_database_info(GEOIP_COUNTRY_EDITION);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

GEO-106FREE 20080801 Build 1 Copyright (c) 2006 MaxMind LLC All Rights Reserved


Returns the filename of the corresponding GeoIP Database

  • « geoip_db_avail
  • geoip_db_get_all_info »
  • PHP Manual
  • GeoIP Funktionen
  • Returns the filename of the corresponding GeoIP Database

geoip_db_filename

(PECL geoip >= 1.0.1)

geoip_db_filename — Returns the filename of the corresponding GeoIP Database

Beschreibung

geoip_db_filename ( int $database ) : string

The geoip_db_filename() function returns the filename of the corresponding GeoIP Database.

It does not indicate if the file exists or not on disk, only where the library is looking for the database.

Parameter-Liste

database

The database type as an integer. You can use the various constants defined with this extension (ie: GEOIP_*_EDITION).

Rückgabewerte

Returns the filename of the corresponding database, or null on error.

Beispiele

Beispiel #1 A geoip_db_filename() example

This will output the filename of the corresponding database.

<?php

print geoip_db_filename(GEOIP_COUNTRY_EDITION);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

/usr/share/GeoIP/GeoIP.dat


Returns detailed information about all GeoIP database types

  • « geoip_db_filename
  • geoip_domain_by_name »
  • PHP Manual
  • GeoIP Funktionen
  • Returns detailed information about all GeoIP database types

geoip_db_get_all_info

(PECL geoip >= 1.0.1)

geoip_db_get_all_info — Returns detailed information about all GeoIP database types

Beschreibung

geoip_db_get_all_info ( ) : array

The geoip_db_get_all_info() function will return detailed information as a multi-dimensional array about all the GeoIP database types.

This function is available even if no databases are installed. It will simply list them as non-available.

The names of the different keys of the returning associative array are as follows:

  • "available" -- Boolean, indicate if DB is available (see geoip_db_avail())
  • "description" -- The database description
  • "filename" -- The database filename on disk (see geoip_db_filename())

Rückgabewerte

Returns the associative array.

Beispiele

Beispiel #1 A geoip_db_get_all_info() example

This will print the array containing all the information.

<?php
$infos = geoip_db_get_all_info();
if (is_array($infos)) {
    var_dump($infos);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(11) {
  [1]=>
  array(3) {
    ["available"]=>
    bool(true)
    ["description"]=>
    string(21) "GeoIP Country Edition"
    ["filename"]=>
    string(32) "/usr/share/GeoIP/GeoIP.dat"
  }

[ ... ]

  [11]=>
  array(3) {
    ["available"]=>
    bool(false)
    ["description"]=>
    string(25) "GeoIP Domain Name Edition"
    ["filename"]=>
    string(38) "/usr/share/GeoIP/GeoIPDomain.dat"
  }
}

Beispiel #2 A geoip_db_get_all_info() example

You can use the various constants as keys to get only parts of the information.

<?php
$infos = geoip_db_get_all_info();
if ($infos[GEOIP_COUNTRY_EDITION]['available']) {
    echo $infos[GEOIP_COUNTRY_EDITION]['description'];
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

GeoIP Country Edition


Get the second level domain name

  • « geoip_db_get_all_info
  • geoip_id_by_name »
  • PHP Manual
  • GeoIP Funktionen
  • Get the second level domain name

geoip_domain_by_name

(PECL geoip >= 1.1.0)

geoip_domain_by_name — Get the second level domain name

Beschreibung

geoip_domain_by_name ( string $hostname ) : string

The geoip_domain_by_name() function will return the second level domain names associated with a hostname or an IP address.

This function is currently only available to users who have bought a commercial GeoIP Domain Edition. A warning will be issued if the proper database cannot be located.

Parameter-Liste

hostname

The hostname or IP address.

Rückgabewerte

Returns the domain name on success, or false if the address cannot be found in the database.

Beispiele

Beispiel #1 A geoip_domain_by_name() example

This will output the domain associated with IP 61.106.139.1.

<?php
$domain = geoip_domain_by_name('61.106.139.1');

if ($domain) {
    echo 'The domain is: '. $domain;
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The domain is: von.co.kr


Get the Internet connection type

  • « geoip_domain_by_name
  • geoip_isp_by_name »
  • PHP Manual
  • GeoIP Funktionen
  • Get the Internet connection type

geoip_id_by_name

(PECL geoip >= 0.2.0)

geoip_id_by_name — Get the Internet connection type

Beschreibung

geoip_id_by_name ( string $hostname ) : int

The geoip_id_by_name() function will return the Internet connection type corresponding to a hostname or an IP address.

The return value is numeric and can be compared to the following constants:

  • GEOIP_UNKNOWN_SPEED
  • GEOIP_DIALUP_SPEED
  • GEOIP_CABLEDSL_SPEED
  • GEOIP_CORPORATE_SPEED

Parameter-Liste

hostname

The hostname or IP address whose connection type is to be looked-up.

Rückgabewerte

Returns the connection type.

Beispiele

Beispiel #1 A geoip_id_by_name() example

This will output the connection type of the host example.com.

<?php
$netspeed = geoip_id_by_name('www.example.com');

echo 'The connection type is ';

switch ($netspeed) {
    case GEOIP_DIALUP_SPEED:
        echo 'dial-up';
        break;
    case GEOIP_CABLEDSL_SPEED:
        echo 'cable or DSL';
        break;
    case GEOIP_CORPORATE_SPEED:
        echo 'corporate';
        break;
    case GEOIP_UNKNOWN_SPEED:
    default:
        echo 'unknown';
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The connection type is corporate


Get the Internet Service Provider (ISP) name

  • « geoip_id_by_name
  • geoip_netspeedcell_by_name »
  • PHP Manual
  • GeoIP Funktionen
  • Get the Internet Service Provider (ISP) name

geoip_isp_by_name

(PECL geoip >= 1.0.2)

geoip_isp_by_name — Get the Internet Service Provider (ISP) name

Beschreibung

geoip_isp_by_name ( string $hostname ) : string

The geoip_isp_by_name() function will return the name of the Internet Service Provider (ISP) that an IP is assigned to.

This function is currently only available to users who have bought a commercial GeoIP ISP Edition. A warning will be issued if the proper database cannot be located.

Parameter-Liste

hostname

The hostname or IP address.

Rückgabewerte

Returns the ISP name on success, or false if the address cannot be found in the database.

Beispiele

Beispiel #1 A geoip_isp_by_name() example

This will print the ISP name of host example.com.

<?php
$isp = geoip_isp_by_name('www.example.com');
if ($isp) {
    echo 'This host IP is from ISP: ' . $isp;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

This host IP is from ISP: ICANN c/o Internet Assigned Numbers Authority


Get the Internet connection speed

  • « geoip_isp_by_name
  • geoip_org_by_name »
  • PHP Manual
  • GeoIP Funktionen
  • Get the Internet connection speed

geoip_netspeedcell_by_name

(PECL geoip >= 1.1.0)

geoip_netspeedcell_by_name — Get the Internet connection speed

Beschreibung

geoip_netspeedcell_by_name ( string $hostname ) : string

The geoip_netspeedcell_by_name() function will return the Internet connection type and speed corresponding to a hostname or an IP address.

This function is only available if using GeoIP Library version 1.4.8 or newer.

This function is currently only available to users who have bought a commercial GeoIP NetSpeedCell Edition. A warning will be issued if the proper database cannot be located.

The return value is a string, common values are:

  • Cable/DSL
  • Dialup
  • Cellular
  • Corporate

Parameter-Liste

hostname

The hostname or IP address.

Rückgabewerte

Returns the connection speed on success, or false if the address cannot be found in the database.

Beispiele

Beispiel #1 A geoip_netspeedcell_by_name() example

This will output the connection speed of the host example.com.

<?php
$netspeed = geoip_netspeedcell_by_name('www.example.com');

if ($netspeed) {
    echo 'The connection type is: '. $netspeed;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The connection type is: Corporate


Get the organization name

  • « geoip_netspeedcell_by_name
  • geoip_record_by_name »
  • PHP Manual
  • GeoIP Funktionen
  • Get the organization name

geoip_org_by_name

(PECL geoip >= 0.2.0)

geoip_org_by_name — Get the organization name

Beschreibung

geoip_org_by_name ( string $hostname ) : string

The geoip_org_by_name() function will return the name of the organization that an IP is assigned to.

This function is currently only available to users who have bought a commercial GeoIP Organization, ISP or AS Edition. A warning will be issued if the proper database cannot be located.

Parameter-Liste

hostname

The hostname or IP address.

Rückgabewerte

Returns the organization name on success, or false if the address cannot be found in the database.

Beispiele

Beispiel #1 A geoip_org_by_name() example

This will print to whom the host example.com IP is allocated.

<?php
$org = geoip_org_by_name('www.example.com');
if ($org) {
    echo 'This host IP is allocated to: ' . $org;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

This host IP is allocated to: ICANN c/o Internet Assigned Numbers Authority


Returns the detailed City information found in the GeoIP Database

  • « geoip_org_by_name
  • geoip_region_by_name »
  • PHP Manual
  • GeoIP Funktionen
  • Returns the detailed City information found in the GeoIP Database

geoip_record_by_name

(PECL geoip >= 0.2.0)

geoip_record_by_name — Returns the detailed City information found in the GeoIP Database

Beschreibung

geoip_record_by_name ( string $hostname ) : array

The geoip_record_by_name() function will return the record information corresponding to a hostname or an IP address.

This function is available for both GeoLite City Edition and commercial GeoIP City Edition. A warning will be issued if the proper database cannot be located.

The names of the different keys of the returning associative array are as follows:

  • "continent_code" -- Two letter continent code (as of version 1.0.4 with libgeoip 1.4.3 or newer)
  • "country_code" -- Two letter country code (see geoip_country_code_by_name())
  • "country_code3" -- Three letter country code (see geoip_country_code3_by_name())
  • "country_name" -- The country name (see geoip_country_name_by_name())
  • "region" -- The region code (ex: CA for California)
  • "city" -- The city.
  • "postal_code" -- The Postal Code, FSA or Zip Code.
  • "latitude" -- The Latitude as signed double.
  • "longitude" -- The Longitude as signed double.
  • "dma_code" -- Designated Market Area code (USA and Canada only)
  • "area_code" -- The PSTN area code (ex: 212)

Parameter-Liste

hostname

The hostname or IP address whose record is to be looked-up.

Rückgabewerte

Returns the associative array on success, or false if the address cannot be found in the database.

Changelog

Version | Beschreibung
PECL geoip 1.0.4 | Adding the continent_code with GeoIP Library 1.4.3 or newer only
PECL geoip 1.0.3 | Adding country_code3 and country_name

Beispiele

Beispiel #1 A geoip_record_by_name() example

This will print the array containing the record of host example.com.

<?php
$record = geoip_record_by_name('www.example.com');
if ($record) {
    print_r($record);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [continent_code] => NA
    [country_code] => US
    [country_code3] => USA
    [country_name] => United States
    [region] => CA
    [city] => Marina Del Rey
    [postal_code] =>
    [latitude] => 33.9776992798
    [longitude] => -118.435096741
    [dma_code] => 803
    [area_code] => 310
)


Get the country code and region

  • « geoip_record_by_name
  • geoip_region_name_by_code »
  • PHP Manual
  • GeoIP Funktionen
  • Get the country code and region

geoip_region_by_name

(PECL geoip >= 0.2.0)

geoip_region_by_name — Get the country code and region

Beschreibung

geoip_region_by_name ( string $hostname ) : array

The geoip_region_by_name() function will return the country and region corresponding to a hostname or an IP address.

This function is currently only available to users who have bought a commercial GeoIP Region Edition. A warning will be issued if the proper database cannot be located.

The names of the different keys of the returning associative array are as follows:

  • "country_code" -- Two letter country code (see geoip_country_code_by_name())
  • "region" -- The region code (ex: CA for California)

Parameter-Liste

hostname

The hostname or IP address whose region is to be looked-up.

Rückgabewerte

Returns the associative array on success, or false if the address cannot be found in the database.

Beispiele

Beispiel #1 A geoip_region_by_name() example

This will print the array containing the country code and region of the host example.com.

<?php
$region = geoip_region_by_name('www.example.com');
if ($region) {
    print_r($region);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [country_code] => US
    [region] => CA
)


Returns the region name for some country and region code combo

  • « geoip_region_by_name
  • geoip_setup_custom_directory »
  • PHP Manual
  • GeoIP Funktionen
  • Returns the region name for some country and region code combo

geoip_region_name_by_code

(PECL geoip >= 1.0.4)

geoip_region_name_by_code — Returns the region name for some country and region code combo

Beschreibung

geoip_region_name_by_code ( string $country_code , string $region_code ) : string

The geoip_region_name_by_code() function will return the region name corresponding to a country and region code combo.

In the United States, the region code corresponds to the two-letter abbreviation of each state. In Canada, the region code corresponds to the two-letter province or territory code as attributed by Canada Post.

For the rest of the world, GeoIP uses FIPS 10-4 codes to represent regions. You can check » http://www.maxmind.com/app/fips10_4 for a detailed list of FIPS 10-4 codes.

This function is always available if using GeoIP Library version 1.4.1 or newer. The data is taken directly from the GeoIP Library and not from any database.

Parameter-Liste

country_code

The two-letter country code (see geoip_country_code_by_name())

region_code

The two-letter (or digit) region code (see geoip_region_by_name())

Rückgabewerte

Returns the region name on success, or false if the country and region code combo cannot be found.

Beispiele

Beispiel #1 A geoip_region_name_by_code() example using region code for US/Canada

This will print the region name for country CA (Canada), region QC (Quebec).

<?php
$region = geoip_region_name_by_code('CA', 'QC');
if ($region) {
    echo 'Region name for CA/QC is: ' . $region;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Region name for CA/QC is: Quebec

Beispiel #2 A geoip_region_name_by_code() example using FIPS codes

This will print the region name for country JP (Japan), region 01.

<?php
$region = geoip_region_name_by_code('JP', '01');
if ($region) {
    echo 'Region name for JP/01 is: ' . $region;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Region name for JP/01 is: Aichi


Set a custom directory for the GeoIP database

  • « geoip_region_name_by_code
  • geoip_time_zone_by_country_and_region »
  • PHP Manual
  • GeoIP Funktionen
  • Set a custom directory for the GeoIP database

geoip_setup_custom_directory

(PECL geoip >= 1.1.0)

geoip_setup_custom_directory — Set a custom directory for the GeoIP database

Beschreibung

geoip_setup_custom_directory ( string $path ) : void

The geoip_setup_custom_directory() function will change the default directory of the GeoIP database. This is equivalent to changing geoip.custom_directory.

Parameter-Liste

path

The full path of where the GeoIP database is on disk.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 A geoip_setup_custom_directory() example

This will change the GeoIP default database path.

<?php

geoip_setup_custom_directory('/some/other/path');

print geoip_db_filename(GEOIP_COUNTRY_EDITION);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

/some/other/path/GeoIP.dat


Returns the time zone for some country and region code combo

  • « geoip_setup_custom_directory
  • FANN »
  • PHP Manual
  • GeoIP Funktionen
  • Returns the time zone for some country and region code combo

geoip_time_zone_by_country_and_region

(PECL geoip >= 1.0.4)

geoip_time_zone_by_country_and_region — Returns the time zone for some country and region code combo

Beschreibung

geoip_time_zone_by_country_and_region ( string $country_code , string $region_code = ? ) : string

The geoip_time_zone_by_country_and_region() function will return the time zone corresponding to a country and region code combo.

In the United States, the region code corresponds to the two-letter abbreviation of each state. In Canada, the region code corresponds to the two-letter province or territory code as attributed by Canada Post.

For the rest of the world, GeoIP uses FIPS 10-4 codes to represent regions. You can check » http://www.maxmind.com/app/fips10_4 for a detailed list of FIPS 10-4 codes.

This function is always available if using GeoIP Library version 1.4.1 or newer. The data is taken directly from the GeoIP Library and not from any database.

Parameter-Liste

country_code

The two-letter country code (see geoip_country_code_by_name())

region_code

The two-letter (or digit) region code (see geoip_region_by_name())

Rückgabewerte

Returns the time zone on success, or false if the country and region code combo cannot be found.

Beispiele

Beispiel #1 A geoip_time_zone_by_country_and_region() example using region code for US/Canada

This will print the time zone for country CA (Canada), region QC (Quebec).

<?php
$timezone = geoip_time_zone_by_country_and_region('CA', 'QC');
if ($timezone) {
    echo 'Time zone for CA/QC is: ' . $timezone;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Time zone for CA/QC is: America/Montreal

Beispiel #2 A geoip_time_zone_by_country_and_region() example using FIPS codes

This will print the time zone for country JP (Japan), region 01 (Aichi).

<?php
$timezone = geoip_time_zone_by_country_and_region('JP', '01');
if ($timezone) {
    echo 'Time zone for JP/01 is: ' . $timezone;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Time zone for JP/01 is: Asia/Tokyo


FANN (Fast Artificial Neural Network)

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • XOR training
  • Fann Funktionen
    • fann_cascadetrain_on_data — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
    • fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm
    • fann_clear_scaling_params — Clears scaling parameters
    • fann_copy — Creates a copy of a fann structure
    • fann_create_from_file — Constructs a backpropagation neural network from a configuration file
    • fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
    • fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected
    • fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes
    • fann_create_standard — Creates a standard fully connected backpropagation neural network
    • fann_create_train_from_callback — Creates the training data struct from a user supplied function
    • fann_create_train — Creates an empty training data struct
    • fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters
    • fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters
    • fann_descale_train — Descale input and output data based on previously calculated parameters
    • fann_destroy_train — Destructs the training data
    • fann_destroy — Destroys the entire network and properly freeing all the associated memory
    • fann_duplicate_train_data — Returns an exact copy of a fann train data
    • fann_get_activation_function — Returns the activation function
    • fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number
    • fann_get_bias_array — Get the number of bias in each layer in the network
    • fann_get_bit_fail_limit — Returns the bit fail limit used during training
    • fann_get_bit_fail — The number of fail bits
    • fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions
    • fann_get_cascade_activation_functions — Returns the cascade activation functions
    • fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses
    • fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses
    • fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction
    • fann_get_cascade_candidate_limit — Return the candidate limit
    • fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs
    • fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs
    • fann_get_cascade_max_out_epochs — Returns the maximum out epochs
    • fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs
    • fann_get_cascade_min_out_epochs — Returns the minimum out epochs
    • fann_get_cascade_num_candidate_groups — Returns the number of candidate groups
    • fann_get_cascade_num_candidates — Returns the number of candidates used during training
    • fann_get_cascade_output_change_fraction — Returns the cascade output change fraction
    • fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs
    • fann_get_cascade_weight_multiplier — Returns the weight multiplier
    • fann_get_connection_array — Get connections in the network
    • fann_get_connection_rate — Get the connection rate used when the network was created
    • fann_get_errno — Returns the last error number
    • fann_get_errstr — Returns the last errstr
    • fann_get_layer_array — Get the number of neurons in each layer in the network
    • fann_get_learning_momentum — Returns the learning momentum
    • fann_get_learning_rate — Returns the learning rate
    • fann_get_MSE — Reads the mean square error from the network
    • fann_get_network_type — Get the type of neural network it was created as
    • fann_get_num_input — Get the number of input neurons
    • fann_get_num_layers — Get the number of layers in the neural network
    • fann_get_num_output — Get the number of output neurons
    • fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
    • fann_get_quickprop_mu — Returns the mu factor
    • fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training
    • fann_get_rprop_delta_max — Returns the maximum step-size
    • fann_get_rprop_delta_min — Returns the minimum step-size
    • fann_get_rprop_delta_zero — Returns the initial step-size
    • fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training
    • fann_get_sarprop_step_error_shift — Returns the sarprop step error shift
    • fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor
    • fann_get_sarprop_temperature — Returns the sarprop temperature
    • fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift
    • fann_get_total_connections — Get the total number of connections in the entire network
    • fann_get_total_neurons — Get the total number of neurons in the entire network
    • fann_get_train_error_function — Returns the error function used during training
    • fann_get_train_stop_function — Returns the stop function used during training
    • fann_get_training_algorithm — Returns the training algorithm
    • fann_init_weights — Initialize the weights using Widrow + Nguyen’s algorithm
    • fann_length_train_data — Returns the number of training patterns in the train data
    • fann_merge_train_data — Merges the train data
    • fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data
    • fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data
    • fann_print_error — Prints the error string
    • fann_randomize_weights — Give each connection a random weight between min_weight and max_weight
    • fann_read_train_from_file — Reads a file that stores training data
    • fann_reset_errno — Resets the last error number
    • fann_reset_errstr — Resets the last error string
    • fann_reset_MSE — Resets the mean square error from the network
    • fann_run — Will run input through the neural network
    • fann_save_train — Save the training structure to a file
    • fann_save — Saves the entire network to a configuration file
    • fann_scale_input_train_data — Scales the inputs in the training data to the specified range
    • fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters
    • fann_scale_output_train_data — Scales the outputs in the training data to the specified range
    • fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters
    • fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range
    • fann_scale_train — Scale input and output data based on previously calculated parameters
    • fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers
    • fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer
    • fann_set_activation_function_output — Sets the activation function for the output layer
    • fann_set_activation_function — Sets the activation function for supplied neuron and layer
    • fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers
    • fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number
    • fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer
    • fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number
    • fann_set_bit_fail_limit — Set the bit fail limit used during training
    • fann_set_callback — Sets the callback function for use during training
    • fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions
    • fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses
    • fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction
    • fann_set_cascade_candidate_limit — Sets the candidate limit
    • fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs
    • fann_set_cascade_max_cand_epochs — Sets the max candidate epochs
    • fann_set_cascade_max_out_epochs — Sets the maximum out epochs
    • fann_set_cascade_min_cand_epochs — Sets the min candidate epochs
    • fann_set_cascade_min_out_epochs — Sets the minimum out epochs
    • fann_set_cascade_num_candidate_groups — Sets the number of candidate groups
    • fann_set_cascade_output_change_fraction — Sets the cascade output change fraction
    • fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs
    • fann_set_cascade_weight_multiplier — Sets the weight multiplier
    • fann_set_error_log — Sets where the errors are logged to
    • fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data
    • fann_set_learning_momentum — Sets the learning momentum
    • fann_set_learning_rate — Sets the learning rate
    • fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data
    • fann_set_quickprop_decay — Sets the quickprop decay factor
    • fann_set_quickprop_mu — Sets the quickprop mu factor
    • fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training
    • fann_set_rprop_delta_max — Sets the maximum step-size
    • fann_set_rprop_delta_min — Sets the minimum step-size
    • fann_set_rprop_delta_zero — Sets the initial step-size
    • fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training
    • fann_set_sarprop_step_error_shift — Sets the sarprop step error shift
    • fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor
    • fann_set_sarprop_temperature — Sets the sarprop temperature
    • fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift
    • fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data
    • fann_set_train_error_function — Sets the error function used during training
    • fann_set_train_stop_function — Sets the stop function used during training
    • fann_set_training_algorithm — Sets the training algorithm
    • fann_set_weight_array — Set connections in the network
    • fann_set_weight — Set a connection in the network
    • fann_shuffle_train_data — Shuffles training data, randomizing the order
    • fann_subset_train_data — Returns an copy of a subset of the train data
    • fann_test_data — Test a set of training data and calculates the MSE for the training data
    • fann_test — Test with a set of inputs, and a set of desired outputs
    • fann_train_epoch — Train one epoch with a set of training data
    • fann_train_on_data — Trains on an entire dataset for a period of time
    • fann_train_on_file — Trains on an entire dataset, which is read from file, for a period of time
    • fann_train — Train one iteration with a set of inputs, and a set of desired outputs
  • FANNConnection — The FANNConnection class
    • FANNConnection::__construct — The connection constructor
    • FANNConnection::getFromNeuron — Returns the postions of starting neuron
    • FANNConnection::getToNeuron — Returns the postions of terminating neuron
    • FANNConnection::getWeight — Returns the connection weight
    • FANNConnection::setWeight — Sets the connections weight


Einführung

PHP binding for FANN (Fast Artificial Neural Network) Library which implements multilayer artificial neural networks with support for both fully connected and sparsely connected networks. It includes a framework for easy handling of training data sets. It is easy to use, versatile, well documented, and fast.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

PHP >= 5.2.0 and libfann >= 2.1.0


Installation

The FANN PHP extension should work on all Linux systems.

  • FANN Library Installation
  • PECL Installation
  • Manual Installation

FANN Library Installation

Before you start installation make sure that libfann is installed on your system. It's part of the main repository in the most Linux distributions (search for fann). You need a development version.

If it is not installed, you need to install it first. Either download it from the » official site or get it from your distro repository. For example on Fedora:

$ sudo yum install fann-devel
or Ubuntu:

$ sudo apt-get install libfann-dev

If the library is re-installed manually, then all old library file should be removed before re-installing otherwise the old library version could be linked.

PECL Installation

This extension is available on PECL. The installation is very simple. Just run:

$ sudo pecl install fann

Manual Installation

For developers and people interested in the latest changes, you can compile the driver from the latest source code on » Github. Go to Github and click the "Download ZIP" button. Then run:

$ unzip php-fann-master.zip
$ cd php-fann-master
$ phpize
$ ./configure
$ make all
$ sudo make install

Make the following changes to php.ini:

  • Make sure the extension_dir variable is pointing to the directory containing fann.so. The build will display where it is installing the PHP driver with output that looks something like:

Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/fann.so'
    Make sure that it is the same as the PHP extension directory by running:

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20060613 =>
                   /usr/lib/php/extensions/no-debug-non-zts-20060613
    If it's not, change the extension_dir in php.ini or move fann.so.

  • To load the extension on PHP startup, add a line:

extension=fann.so


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Training algorithms
FANN_TRAIN_INCREMENTAL (int)
Standard backpropagation algorithm, where the weights are updated after each training pattern. This means that the weights are updated many times during a single epoch. For this reason some problems, will train very fast with this algorithm, while other more advanced problems will not train very well.
FANN_TRAIN_BATCH (int)
Standard backpropagation algorithm, where the weights are updated after calculating the mean square error for the whole training set. This means that the weights are only updated once during a epoch. For this reason some problems, will train slower with this algorithm. But since the mean square error is calculated more correctly than in incremental training, some problems will reach a better solutions with this algorithm.
FANN_TRAIN_RPROP (int)
A more advanced batch training algorithm which achieves good results for many problems. The RPROP training algorithm is adaptive, and does therefore not use the learning_rate. Some other parameters can however be set to change the way the RPROP algorithm works, but it is only recommended for users with insight in how the RPROP training algorithm works. The RPROP training algorithm is described by [Riedmiller and Braun, 1993], but the actual learning algorithm used here is the iRPROP- training algorithm which is described by [Igel and Husken, 2000] which is an variety of the standard RPROP training algorithm.
FANN_TRAIN_QUICKPROP (int)
A more advanced batch training algorithm which achieves good results for many problems. The quickprop training algorithm uses the learning_rate parameter along with other more advanced parameters, but it is only recommended to change these advanced parameters, for users with insight in how the quickprop training algorithm works. The quickprop training algorithm is described by [Fahlman, 1988].
FANN_TRAIN_SARPROP (int)
Even more advance training algorithm. Only for version 2.2
Activation functions
FANN_LINEAR (int)
Linear activation function.
FANN_THRESHOLD (int)
Threshold activation function.
FANN_THRESHOLD_SYMMETRIC (int)
Threshold activation function.
FANN_SIGMOID (int)
Sigmoid activation function.
FANN_SIGMOID_STEPWISE (int)
Stepwise linear approximation to sigmoid.
FANN_SIGMOID_SYMMETRIC (int)
Symmetric sigmoid activation function, aka. tanh.
FANN_SIGMOID_SYMMETRIC_STEPWISE (int)
Stepwise linear approximation to symmetric sigmoid
FANN_GAUSSIAN (int)
Gaussian activation function.
FANN_GAUSSIAN_SYMMETRIC (int)
Symmetric gaussian activation function.
FANN_GAUSSIAN_STEPWISE (int)
Stepwise gaussian activation function.
FANN_ELLIOT (int)
Fast (sigmoid like) activation function defined by David Elliott.
FANN_ELLIOT_SYMMETRIC (int)
Fast (symmetric sigmoid like) activation function defined by David Elliott.
FANN_LINEAR_PIECE (int)
Bounded linear activation function.
FANN_LINEAR_PIECE_SYMMETRIC (int)
Bounded linear activation function.
FANN_SIN_SYMMETRIC (int)
Periodical sinus activation function.
FANN_COS_SYMMETRIC (int)
Periodical cosinus activation function.
FANN_SIN (int)
Periodical sinus activation function.
FANN_COS (int)
Periodical cosinus activation function.
Error function used during training
FANN_ERRORFUNC_LINEAR (int)
Standard linear error function.
FANN_ERRORFUNC_TANH (int)
Tanh error function; usually better but may require a lower learning rate. This error function aggressively targets outputs that differ much from the desired, while not targeting outputs that only differ slightly. Not recommended for cascade or incremental training.
Stop criteria used during training
FANN_STOPFUNC_MSE (int)
Stop criteria is Mean Square Error (MSE) value.
FANN_STOPFUNC_BIT (int)
Stop criteria is number of bits that fail. The number of bits means the number of output neurons which differs more than the bit fail limit (see fann_get_bit_fail_limit, fann_set_bit_fail_limit). The bits are counted in all of the training data, so this number can be higher than the number of training data.
Definition of network types used by fann_get_network_type()
FANN_NETTYPE_LAYER (int)
Each layer only has connections to the next layer.
FANN_NETTYPE_SHORTCUT (int)
Each layer has connections to all following layers
Errors
FANN_E_NO_ERROR (int)
No error.
FANN_E_CANT_OPEN_CONFIG_R (int)
Unable to open configuration file for reading.
FANN_E_CANT_OPEN_CONFIG_W (int)
Unable to open configuration file for writing.
FANN_E_WRONG_CONFIG_VERSION (int)
Wrong version of configuration file.
FANN_E_CANT_READ_CONFIG (int)
Error reading info from configuration file.
FANN_E_CANT_READ_NEURON (int)
Error reading neuron info from configuration file.
FANN_E_CANT_READ_CONNECTIONS (int)
Error reading connections from configuration file.
FANN_E_WRONG_NUM_CONNECTIONS (int)
Number of connections not equal to the number expected.
FANN_E_CANT_OPEN_TD_W (int)
Unable to open train data file for writing.
FANN_E_CANT_OPEN_TD_R (int)
Unable to open train data file for reading.
FANN_E_CANT_READ_TD (int)
Error reading training data from file.
FANN_E_CANT_ALLOCATE_MEM (int)
Unable to allocate memory.
FANN_E_CANT_TRAIN_ACTIVATION (int)
Unable to train with the selected activation function.
FANN_E_CANT_USE_ACTIVATION (int)
Unable to use the selected activation function.
FANN_E_TRAIN_DATA_MISMATCH (int)
Irreconcilable differences between two struct fann_train_data structures.
FANN_E_CANT_USE_TRAIN_ALG (int)
Unable to use the selected training algorithm.
FANN_E_TRAIN_DATA_SUBSET (int)
Trying to take subset which is not within the training set.
FANN_E_INDEX_OUT_OF_BOUND (int)
Index is out of bound.
FANN_E_SCALE_NOT_PRESENT (int)
Scaling parameters not present.
FANN_E_INPUT_NO_MATCH (int)
The number of input neurons in the ann and data do not match
FANN_E_OUTPUT_NO_MATCH (int)
The number of output neurons in the ann and data do not match.


  • « Vordefinierte Konstanten
  • XOR training »
  • PHP Manual
  • FANN
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • XOR training


XOR training

This example shows how to train data for XOR function

Beispiel #1 xor.data file

4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

Beispiel #2 Simple train

<?php
$num_input = 2;
$num_output = 1;
$num_layers = 3;
$num_neurons_hidden = 3;
$desired_error = 0.001;
$max_epochs = 500000;
$epochs_between_reports = 1000;

$ann = fann_create_standard($num_layers, $num_input, $num_neurons_hidden, $num_output);

if ($ann) {
    fann_set_activation_function_hidden($ann, FANN_SIGMOID_SYMMETRIC);
    fann_set_activation_function_output($ann, FANN_SIGMOID_SYMMETRIC);

    $filename = dirname(__FILE__) . "/xor.data";
    if (fann_train_on_file($ann, $filename, $max_epochs, $epochs_between_reports, $desired_error))
        fann_save($ann, dirname(__FILE__) . "/xor_float.net");

    fann_destroy($ann);
}
?>

This example shows how to read and run data for XOR function

Beispiel #3 Simple test

<?php
$train_file = (dirname(__FILE__) . "/xor_float.net");
if (!is_file($train_file))
    die("The file xor_float.net has not been created! Please run simple_train.php to generate it");

$ann = fann_create_from_file($train_file);
if (!$ann)
    die("ANN could not be created");

$input = array(-1, 1);
$calc_out = fann_run($ann, $input);
printf("xor test (%f,%f) -> %f\n", $input[0], $input[1], $calc_out[0]);
fann_destroy($ann);
?>


Fann Funktionen

Inhaltsverzeichnis

  • fann_cascadetrain_on_data — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
  • fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm
  • fann_clear_scaling_params — Clears scaling parameters
  • fann_copy — Creates a copy of a fann structure
  • fann_create_from_file — Constructs a backpropagation neural network from a configuration file
  • fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
  • fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes
  • fann_create_standard — Creates a standard fully connected backpropagation neural network
  • fann_create_train_from_callback — Creates the training data struct from a user supplied function
  • fann_create_train — Creates an empty training data struct
  • fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters
  • fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters
  • fann_descale_train — Descale input and output data based on previously calculated parameters
  • fann_destroy_train — Destructs the training data
  • fann_destroy — Destroys the entire network and properly freeing all the associated memory
  • fann_duplicate_train_data — Returns an exact copy of a fann train data
  • fann_get_activation_function — Returns the activation function
  • fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number
  • fann_get_bias_array — Get the number of bias in each layer in the network
  • fann_get_bit_fail_limit — Returns the bit fail limit used during training
  • fann_get_bit_fail — The number of fail bits
  • fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions
  • fann_get_cascade_activation_functions — Returns the cascade activation functions
  • fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses
  • fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses
  • fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction
  • fann_get_cascade_candidate_limit — Return the candidate limit
  • fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs
  • fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs
  • fann_get_cascade_max_out_epochs — Returns the maximum out epochs
  • fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs
  • fann_get_cascade_min_out_epochs — Returns the minimum out epochs
  • fann_get_cascade_num_candidate_groups — Returns the number of candidate groups
  • fann_get_cascade_num_candidates — Returns the number of candidates used during training
  • fann_get_cascade_output_change_fraction — Returns the cascade output change fraction
  • fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs
  • fann_get_cascade_weight_multiplier — Returns the weight multiplier
  • fann_get_connection_array — Get connections in the network
  • fann_get_connection_rate — Get the connection rate used when the network was created
  • fann_get_errno — Returns the last error number
  • fann_get_errstr — Returns the last errstr
  • fann_get_layer_array — Get the number of neurons in each layer in the network
  • fann_get_learning_momentum — Returns the learning momentum
  • fann_get_learning_rate — Returns the learning rate
  • fann_get_MSE — Reads the mean square error from the network
  • fann_get_network_type — Get the type of neural network it was created as
  • fann_get_num_input — Get the number of input neurons
  • fann_get_num_layers — Get the number of layers in the neural network
  • fann_get_num_output — Get the number of output neurons
  • fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
  • fann_get_quickprop_mu — Returns the mu factor
  • fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training
  • fann_get_rprop_delta_max — Returns the maximum step-size
  • fann_get_rprop_delta_min — Returns the minimum step-size
  • fann_get_rprop_delta_zero — Returns the initial step-size
  • fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training
  • fann_get_sarprop_step_error_shift — Returns the sarprop step error shift
  • fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor
  • fann_get_sarprop_temperature — Returns the sarprop temperature
  • fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift
  • fann_get_total_connections — Get the total number of connections in the entire network
  • fann_get_total_neurons — Get the total number of neurons in the entire network
  • fann_get_train_error_function — Returns the error function used during training
  • fann_get_train_stop_function — Returns the stop function used during training
  • fann_get_training_algorithm — Returns the training algorithm
  • fann_init_weights — Initialize the weights using Widrow + Nguyen’s algorithm
  • fann_length_train_data — Returns the number of training patterns in the train data
  • fann_merge_train_data — Merges the train data
  • fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data
  • fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data
  • fann_print_error — Prints the error string
  • fann_randomize_weights — Give each connection a random weight between min_weight and max_weight
  • fann_read_train_from_file — Reads a file that stores training data
  • fann_reset_errno — Resets the last error number
  • fann_reset_errstr — Resets the last error string
  • fann_reset_MSE — Resets the mean square error from the network
  • fann_run — Will run input through the neural network
  • fann_save_train — Save the training structure to a file
  • fann_save — Saves the entire network to a configuration file
  • fann_scale_input_train_data — Scales the inputs in the training data to the specified range
  • fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters
  • fann_scale_output_train_data — Scales the outputs in the training data to the specified range
  • fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters
  • fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range
  • fann_scale_train — Scale input and output data based on previously calculated parameters
  • fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers
  • fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_output — Sets the activation function for the output layer
  • fann_set_activation_function — Sets the activation function for supplied neuron and layer
  • fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer
  • fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number
  • fann_set_bit_fail_limit — Set the bit fail limit used during training
  • fann_set_callback — Sets the callback function for use during training
  • fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions
  • fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses
  • fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction
  • fann_set_cascade_candidate_limit — Sets the candidate limit
  • fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs
  • fann_set_cascade_max_cand_epochs — Sets the max candidate epochs
  • fann_set_cascade_max_out_epochs — Sets the maximum out epochs
  • fann_set_cascade_min_cand_epochs — Sets the min candidate epochs
  • fann_set_cascade_min_out_epochs — Sets the minimum out epochs
  • fann_set_cascade_num_candidate_groups — Sets the number of candidate groups
  • fann_set_cascade_output_change_fraction — Sets the cascade output change fraction
  • fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs
  • fann_set_cascade_weight_multiplier — Sets the weight multiplier
  • fann_set_error_log — Sets where the errors are logged to
  • fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data
  • fann_set_learning_momentum — Sets the learning momentum
  • fann_set_learning_rate — Sets the learning rate
  • fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data
  • fann_set_quickprop_decay — Sets the quickprop decay factor
  • fann_set_quickprop_mu — Sets the quickprop mu factor
  • fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training
  • fann_set_rprop_delta_max — Sets the maximum step-size
  • fann_set_rprop_delta_min — Sets the minimum step-size
  • fann_set_rprop_delta_zero — Sets the initial step-size
  • fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training
  • fann_set_sarprop_step_error_shift — Sets the sarprop step error shift
  • fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor
  • fann_set_sarprop_temperature — Sets the sarprop temperature
  • fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift
  • fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data
  • fann_set_train_error_function — Sets the error function used during training
  • fann_set_train_stop_function — Sets the stop function used during training
  • fann_set_training_algorithm — Sets the training algorithm
  • fann_set_weight_array — Set connections in the network
  • fann_set_weight — Set a connection in the network
  • fann_shuffle_train_data — Shuffles training data, randomizing the order
  • fann_subset_train_data — Returns an copy of a subset of the train data
  • fann_test_data — Test a set of training data and calculates the MSE for the training data
  • fann_test — Test with a set of inputs, and a set of desired outputs
  • fann_train_epoch — Train one epoch with a set of training data
  • fann_train_on_data — Trains on an entire dataset for a period of time
  • fann_train_on_file — Trains on an entire dataset, which is read from file, for a period of time
  • fann_train — Train one iteration with a set of inputs, and a set of desired outputs


Trains on an entire dataset, for a period of time using the Cascade2 training algorithm

  • « Fann Funktionen
  • fann_cascadetrain_on_file »
  • PHP Manual
  • Fann Funktionen
  • Trains on an entire dataset, for a period of time using the Cascade2 training algorithm

fann_cascadetrain_on_data

(PECL fann >= 1.0.0)

fann_cascadetrain_on_data — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm

Beschreibung

fann_cascadetrain_on_data ( resource $ann , resource $data , int $max_neurons , int $neurons_between_reports , float $desired_error ) : bool

The cascade output change fraction is a number between 0 and 1 determining how large a fraction the fann_get_MSE() value should change within fann_get_cascade_output_stagnation_epochs() during training of the output connections, in order for the training not to stagnate. If the training stagnates, the training of the output connections will be ended and new candidates will be prepared.

This training uses the parameters set using the fann_set_cascade_..., but it also uses another training algorithm as it’s internal training algorithm. This algorithm can be set to either FANN_TRAIN_RPROP or FANN_TRAIN_QUICKPROP by fann_set_training_algorithm(), and the parameters set for these training algorithms will also affect the cascade training.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

data

Resource für Trainingsdaten eines neuralen Netzwerks.

max_neurons

The maximum number of neurons to be added to neural network.

neurons_between_reports

The number of neurons between printing a status report. A value of zero means no reports should be printed.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on which stop function is chosen by fann_set_train_stop_function()

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_cascadetrain_on_file() - Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm


Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm

  • « fann_cascadetrain_on_data
  • fann_clear_scaling_params »
  • PHP Manual
  • Fann Funktionen
  • Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm

fann_cascadetrain_on_file

(PECL fann >= 1.0.0)

fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm

Beschreibung

fann_cascadetrain_on_file ( resource $ann , string $filename , int $max_neurons , int $neurons_between_reports , float $desired_error ) : bool

Does the same as fann_cascadetrain_on_data(), but reads the training data directly from a file.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

filename

A file containing the data for training.

max_neurons

The maximum number of neurons to be added to neural network

neurons_between_reports

The number of neurons between printing a status report. A value of zero means no reports should be printed.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on which stop function is chosen by fann_set_train_stop_function().

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_cascadetrain_on_data() - Trains on an entire dataset, for a period of time using the Cascade2 training algorithm


Clears scaling parameters

  • « fann_cascadetrain_on_file
  • fann_copy »
  • PHP Manual
  • Fann Funktionen
  • Clears scaling parameters

fann_clear_scaling_params

(PECL fann >= 1.0.0)

fann_clear_scaling_params — Clears scaling parameters

Beschreibung

fann_clear_scaling_params ( resource $ann ) : bool

Clears scaling parameters.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.


Creates a copy of a fann structure

  • « fann_clear_scaling_params
  • fann_create_from_file »
  • PHP Manual
  • Fann Funktionen
  • Creates a copy of a fann structure

fann_copy

(PECL fann >= 1.0.0)

fann_copy — Creates a copy of a fann structure

Beschreibung

fann_copy ( resource $ann ) : resource

Creates a copy of a fann structure.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

Returns a copy of neural network resource on success, or false on error

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_test() - Test with a set of inputs, and a set of desired outputs


Constructs a backpropagation neural network from a configuration file

  • « fann_copy
  • fann_create_shortcut_array »
  • PHP Manual
  • Fann Funktionen
  • Constructs a backpropagation neural network from a configuration file

fann_create_from_file

(PECL fann >= 1.0.0)

fann_create_from_file — Constructs a backpropagation neural network from a configuration file

Beschreibung

fann_create_from_file ( string $configuration_file ) : resource

Constructs a backpropagation neural network from a configuration file, which have been saved by fann_save().

Parameter-Liste

configuration_file

The configuration file path.

Rückgabewerte

Gibt bei Erfolg eines Resource eines neuralen Netzwerks zurück, ansonsten false im Fehlerfall.

Siehe auch

  • fann_save() - Saves the entire network to a configuration file


Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

  • « fann_create_from_file
  • fann_create_shortcut »
  • PHP Manual
  • Fann Funktionen
  • Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

fann_create_shortcut_array

(PECL fann >= 1.0.0)

fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

Beschreibung

fann_create_shortcut_array ( int $num_layers , array $layers ) : resource

Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections using an array of layers sizes.

Parameter-Liste

num_layers

The total number of layers including the input and the output layer.

layers

An array of layers sizes.

Rückgabewerte

Returns a neural network resource on success, or false on error.

Siehe auch

  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network


Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

  • « fann_create_shortcut_array
  • fann_create_sparse_array »
  • PHP Manual
  • Fann Funktionen
  • Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

fann_create_shortcut

(PECL fann >= 1.0.0)

fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

Beschreibung

fann_create_shortcut ( int $num_layers , int $num_neurons1 , int $num_neurons2 , int ...$num_neuronsN ) : resource

Creates a standard backpropagation neural network, which is not fully connected and which also has shortcut connections.

Shortcut connections are connections that skip layers. A fully connected network with shortcut connections, is a network where all neurons are connected to all neurons in later layers. Including direct connections from the input layer to the output layer.

Parameter-Liste

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

num_neuronsN

Number of neurons in other layers.

Rückgabewerte

Returns a neural network resource on success, or false on error.

Siehe auch

  • fann_create_shortcut_array() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network


Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

  • « fann_create_shortcut
  • fann_create_sparse »
  • PHP Manual
  • Fann Funktionen
  • Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

fann_create_sparse_array

(PECL fann >= 1.0.0)

fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

Beschreibung

fann_create_sparse_array ( float $connection_rate , int $num_layers , array $layers ) : resource

Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes.

Parameter-Liste

connection_rate

The connection rate controls how many connections there will be in the network. If the connection rate is set to 1, the network will be fully connected, but if it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield the same result as fann_create_standard().

num_layers

The total number of layers including the input and the output layer.

layers

An array of layer sizes.

Rückgabewerte

Returns a neural network resource on success, or false on error.

Siehe auch

  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard backpropagation neural network, which is not fully connected

  • « fann_create_sparse_array
  • fann_create_standard_array »
  • PHP Manual
  • Fann Funktionen
  • Creates a standard backpropagation neural network, which is not fully connected

fann_create_sparse

(PECL fann >= 1.0.0)

fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected

Beschreibung

fann_create_sparse ( float $connection_rate , int $num_layers , int $num_neurons1 , int $num_neurons2 , int ...$num_neuronsN ) : resource

Creates a standard backpropagation neural network, which is not fully connected.

Parameter-Liste

connection_rate

The connection rate controls how many connections there will be in the network. If the connection rate is set to 1, the network will be fully connected, but if it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield the same result as fann_create_standard().

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

num_neuronsN

Number of neurons in other layers.

Rückgabewerte

Returns a neural network resource on success, or false on error.

Siehe auch

  • fann_create_sparse_array() - Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard fully connected backpropagation neural network using an array of layer sizes

  • « fann_create_sparse
  • fann_create_standard »
  • PHP Manual
  • Fann Funktionen
  • Creates a standard fully connected backpropagation neural network using an array of layer sizes

fann_create_standard_array

(PECL fann >= 1.0.0)

fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes

Beschreibung

fann_create_standard_array ( int $num_layers , array $layers ) : resource

Creates a standard fully connected backpropagation neural network.

There will be a bias neuron in each layer (except the output layer), and this bias neuron will be connected to all neurons in the next layer. When running the network, the bias nodes always emits 1.

To destroy a neural network use the fann_destroy() function.

Parameter-Liste

num_layers

The total number of layers including the input and the output layer.

layers

An array of layer sizes.

Rückgabewerte

Returns a neural network resource on success, or false on error.

Siehe auch

  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard fully connected backpropagation neural network

  • « fann_create_standard_array
  • fann_create_train_from_callback »
  • PHP Manual
  • Fann Funktionen
  • Creates a standard fully connected backpropagation neural network

fann_create_standard

(PECL fann >= 1.0.0)

fann_create_standard — Creates a standard fully connected backpropagation neural network

Beschreibung

fann_create_standard ( int $num_layers , int $num_neurons1 , int $num_neurons2 , int ...$num_neuronsN ) : resource

Creates a standard fully connected backpropagation neural network.

There will be a bias neuron in each layer (except the output layer), and this bias neuron will be connected to all neurons in the next layer. When running the network, the bias nodes always emits 1.

To destroy a neural network use the fann_destroy() function.

Parameter-Liste

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

num_neuronsN

Number of neurons in other layers.

Rückgabewerte

Returns a neural network resource on success, or false on error.

Siehe auch

  • fann_create_standard_array() - Creates a standard fully connected backpropagation neural network using an array of layer sizes
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates the training data struct from a user supplied function

  • « fann_create_standard
  • fann_create_train »
  • PHP Manual
  • Fann Funktionen
  • Creates the training data struct from a user supplied function

fann_create_train_from_callback

(PECL fann >= 1.0.0)

fann_create_train_from_callback — Creates the training data struct from a user supplied function

Beschreibung

fann_create_train_from_callback ( int $num_data , int $num_input , int $num_output , callable $user_function ) : resource

Creates the training data struct from a user supplied function. As the training data are numerable (data 1, data 2...), the user must write a function that receives the number of the training data set (input, output) and returns the set.

Parameter-Liste

num_data

The number of training data

num_input

The number of inputs per training data

num_output

The number of ouputs per training data

user_function

The user supplied function with following parameters:

  • num - The number of the training data set
  • num_input - The number of inputs per training data
  • num_output - The number of ouputs per training data

The function should return an associative array with keys input and output and two array values of input and output.

Rückgabewerte

Gibt bei Erfolg eine Resource mit Trainingsdaten zurück, ansonsten false im Fehlerfall.

Beispiele

Beispiel #1 fann_create_train_from_callback() example

<?php
function create_train_callback($num_data, $num_input, $num_output) {
    return array(
        "input" => array_fill(0, $num_input, 1),
        "output" => array_fill(0, $num_output, 1),
    );
}

$num_data = 3;
$num_input = 2;
$num_output = 1;
$train_data = fann_create_train_from_callback($num_data, $num_input, $num_output, "create_train_callback");
if ($train_data) {
    // Do something with $train_data
}
?>

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_read_train_from_file() - Reads a file that stores training data
  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_destroy_train() - Destructs the training data
  • fann_save_train() - Save the training structure to a file


Creates an empty training data struct

  • « fann_create_train_from_callback
  • fann_descale_input »
  • PHP Manual
  • Fann Funktionen
  • Creates an empty training data struct

fann_create_train

(PECL fann >= 1.0.0)

fann_create_train — Creates an empty training data struct

Beschreibung

fann_create_train ( int $num_data , int $num_input , int $num_output ) : resource

Creates an empty training data struct.

Parameter-Liste

num_data

The number of training data

num_input

The number of inputs per training data

num_output

The number of ouputs per training data

Rückgabewerte

Gibt bei Erfolg eine Resource mit Trainingsdaten zurück, ansonsten false im Fehlerfall.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_read_train_from_file() - Reads a file that stores training data
  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_destroy_train() - Destructs the training data
  • fann_save_train() - Save the training structure to a file


Scale data in input vector after get it from ann based on previously calculated parameters

  • « fann_create_train
  • fann_descale_output »
  • PHP Manual
  • Fann Funktionen
  • Scale data in input vector after get it from ann based on previously calculated parameters

fann_descale_input

(PECL fann >= 1.0.0)

fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters

Beschreibung

fann_descale_input ( resource $ann , array $input_vector ) : bool

Scale data in input vector after get it from ann based on previously calculated parameters.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

input_vector

Input vector that will be descaled

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_scale_input() - Scale data in input vector before feed it to ann based on previously calculated parameters
  • fann_descale_output() - Scale data in output vector after get it from ann based on previously calculated parameters


Scale data in output vector after get it from ann based on previously calculated parameters

  • « fann_descale_input
  • fann_descale_train »
  • PHP Manual
  • Fann Funktionen
  • Scale data in output vector after get it from ann based on previously calculated parameters

fann_descale_output

(PECL fann >= 1.0.0)

fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters

Beschreibung

fann_descale_output ( resource $ann , array $output_vector ) : bool

Scale data in output vector after get it from ann based on previously calculated parameters.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

output_vector

Output vector that will be descaled

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_scale_output() - Scale data in output vector before feed it to ann based on previously calculated parameters
  • fann_descale_input() - Scale data in input vector after get it from ann based on previously calculated parameters


Descale input and output data based on previously calculated parameters

  • « fann_descale_output
  • fann_destroy_train »
  • PHP Manual
  • Fann Funktionen
  • Descale input and output data based on previously calculated parameters

fann_descale_train

(PECL fann >= 1.0.0)

fann_descale_train — Descale input and output data based on previously calculated parameters

Beschreibung

fann_descale_train ( resource $ann , resource $train_data ) : bool

Descale input and output data based on previously calculated parameters.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

train_data

Resource für Trainingsdaten eines neuralen Netzwerks.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_scale_train() - Scale input and output data based on previously calculated parameters
  • fann_set_scaling_params() - Calculate input and output scaling parameters for future use based on training data


Destructs the training data

  • « fann_descale_train
  • fann_destroy »
  • PHP Manual
  • Fann Funktionen
  • Destructs the training data

fann_destroy_train

(PECL fann >= 1.0.0)

fann_destroy_train — Destructs the training data

Beschreibung

fann_destroy_train ( resource $train_data ) : bool

Destructs the training data

Parameter-Liste

train_data

Resource für Trainingsdaten eines neuralen Netzwerks.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.


Destroys the entire network and properly freeing all the associated memory

  • « fann_destroy_train
  • fann_duplicate_train_data »
  • PHP Manual
  • Fann Funktionen
  • Destroys the entire network and properly freeing all the associated memory

fann_destroy

(PECL fann >= 1.0.0)

fann_destroy — Destroys the entire network and properly freeing all the associated memory

Beschreibung

fann_destroy ( resource $ann ) : bool

Destroys the entire network and properly freeing all the associated memory.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.


Returns an exact copy of a fann train data

  • « fann_destroy
  • fann_get_activation_function »
  • PHP Manual
  • Fann Funktionen
  • Returns an exact copy of a fann train data

fann_duplicate_train_data

(PECL fann >= 1.0.0)

fann_duplicate_train_data — Returns an exact copy of a fann train data

Beschreibung

fann_duplicate_train_data ( resource $data ) : resource

Returns an exact copy of a fann train data resource.

Parameter-Liste

data

Resource für Trainingsdaten eines neuralen Netzwerks.

Rückgabewerte

Gibt bei Erfolg eine Resource mit Trainingsdaten zurück, ansonsten false im Fehlerfall.


Returns the activation function

  • « fann_duplicate_train_data
  • fann_get_activation_steepness »
  • PHP Manual
  • Fann Funktionen
  • Returns the activation function

fann_get_activation_function

(PECL fann >= 1.0.0)

fann_get_activation_function — Returns the activation function

Beschreibung

fann_get_activation_function ( resource $ann , int $layer , int $neuron ) : int

Get the activation function for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to get activation functions for the neurons in the input layer.

The return value is one of the activation functions constants.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

layer

Layer number.

neuron

Neuron number.

Rückgabewerte

Learning functions constant or -1 if the neuron is not defined in the neural network, or false on error.

Siehe auch

  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Returns the activation steepness for supplied neuron and layer number

  • « fann_get_activation_function
  • fann_get_bias_array »
  • PHP Manual
  • Fann Funktionen
  • Returns the activation steepness for supplied neuron and layer number

fann_get_activation_steepness

(PECL fann >= 1.0.0)

fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number

Beschreibung

fann_get_activation_steepness ( resource $ann , int $layer , int $neuron ) : float

Get the activation steepness for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to get activation steepness for the neurons in the input layer.

The steepness of an activation function says something about how fast the activation function goes from the minimum to the maximum. A high value for the activation function will also give a more agressive training.

When training neural networks where the output values should be at the extremes (usually 0 and 1, depending on the activation function), a steep activation function can be used (e.g. 1.0).

The default activation steepness is 0.5.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

layer

Layer number

neuron

Neuron number

Rückgabewerte

The activation steepness for the neuron or -1 if the neuron is not defined in the neural network, or false on error.

Siehe auch

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Get the number of bias in each layer in the network

  • « fann_get_activation_steepness
  • fann_get_bit_fail_limit »
  • PHP Manual
  • Fann Funktionen
  • Get the number of bias in each layer in the network

fann_get_bias_array

(PECL fann >= 1.0.0)

fann_get_bias_array — Get the number of bias in each layer in the network

Beschreibung

fann_get_bias_array ( resource $ann ) : array

Get the number of bias in each layer in the network.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

An array of numbers of bias in each layer


Returns the bit fail limit used during training

  • « fann_get_bias_array
  • fann_get_bit_fail »
  • PHP Manual
  • Fann Funktionen
  • Returns the bit fail limit used during training

fann_get_bit_fail_limit

(PECL fann >= 1.0.0)

fann_get_bit_fail_limit — Returns the bit fail limit used during training

Beschreibung

fann_get_bit_fail_limit ( resource $ann ) : float

Returns the bit fail limit used during training.

The bit fail limit is used during training where the stop function is set to FANN_STOPFUNC_BIT.

The limit is the maximum accepted difference between the desired output and the actual output during training. Each output that diverges more than this limit is counted as an error bit. This difference is divided by two when dealing with symmetric activation functions, so that symmetric and not symmetric activation functions can use the same limit.

The default bit fail limit is 0.35.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The bit fail limit, or false on error.

Siehe auch

  • fann_set_bit_fail_limit() - Set the bit fail limit used during training


The number of fail bits

  • « fann_get_bit_fail_limit
  • fann_get_cascade_activation_functions_count »
  • PHP Manual
  • Fann Funktionen
  • The number of fail bits

fann_get_bit_fail

(PECL fann >= 1.0.0)

fann_get_bit_fail — The number of fail bits

Beschreibung

fann_get_bit_fail ( resource $ann ) : int

The number of fail bits; means the number of output neurons which differ more than the bit fail limit (see fann_get_bit_fail_limit(), fann_set_bit_fail_limit()). The bits are counted in all of the training data, so this number can be higher than the number of training data.

This value is reset by fann_reset_MSE() and updated by all the same functions which also updates the MSE value (e.g. fann_test_data(), fann_train_epoch())

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The number of bits fail, or false on error.

Siehe auch

  • fann_get_MSE() - Reads the mean square error from the network
  • fann_reset_MSE() - Resets the mean square error from the network
  • fann_test_data() - Test a set of training data and calculates the MSE for the training data
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training
  • fann_set_bit_fail_limit() - Set the bit fail limit used during training


Returns the number of cascade activation functions

  • « fann_get_bit_fail
  • fann_get_cascade_activation_functions »
  • PHP Manual
  • Fann Funktionen
  • Returns the number of cascade activation functions

fann_get_cascade_activation_functions_count

(PECL fann >= 1.0.0)

fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions

Beschreibung

fann_get_cascade_activation_functions_count ( resource $ann ) : int

The number of activation functions in the fann_get_cascade_activation_functions() array.

The default number of activation functions is 6.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The number of cascade activation functions, or false on error.

Siehe auch

  • fann_get_cascade_activation_functions() - Returns the cascade activation functions
  • fann_set_cascade_activation_functions() - Sets the array of cascade candidate activation functions


Returns the cascade activation functions

  • « fann_get_cascade_activation_functions_count
  • fann_get_cascade_activation_steepnesses_count »
  • PHP Manual
  • Fann Funktionen
  • Returns the cascade activation functions

fann_get_cascade_activation_functions

(PECL fann >= 1.0.0)

fann_get_cascade_activation_functions — Returns the cascade activation functions

Beschreibung

fann_get_cascade_activation_functions ( resource $ann ) : array

The cascade activation functions array is an array of the different activation functions used by the candidates

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

The default activation functions are FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN, FANN_GAUSSIAN_SYMMETRIC, FANN_ELLIOT, FANN_ELLIOT_SYMMETRIC.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The cascade activation functions, or false on error.

Siehe auch

  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_set_cascade_activation_functions() - Sets the array of cascade candidate activation functions


The number of activation steepnesses

  • « fann_get_cascade_activation_functions
  • fann_get_cascade_activation_steepnesses »
  • PHP Manual
  • Fann Funktionen
  • The number of activation steepnesses

fann_get_cascade_activation_steepnesses_count

(PECL fann >= 1.0.0)

fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses

Beschreibung

fann_get_cascade_activation_steepnesses_count ( resource $ann ) : int

The number of activation steepnesses in the fann_get_cascade_activation_functions() array.

The default number of activation steepnesses is 4.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The number of activation steepnesses, or false on error.

Siehe auch

  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_set_cascade_activation_functions() - Sets the array of cascade candidate activation functions


Returns the cascade activation steepnesses

  • « fann_get_cascade_activation_steepnesses_count
  • fann_get_cascade_candidate_change_fraction »
  • PHP Manual
  • Fann Funktionen
  • Returns the cascade activation steepnesses

fann_get_cascade_activation_steepnesses

(PECL fann >= 1.0.0)

fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses

Beschreibung

fann_get_cascade_activation_steepnesses ( resource $ann ) : array

The cascade activation steepnesses array is an array of the different activation functions used by the candidates.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

The default activation steepnesses are {0.25, 0.50, 0.75, 1.00}.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The cascade activation steepnesses, or false on error.

Siehe auch

  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses
  • fann_set_cascade_activation_steepnesses() - Sets the array of cascade candidate activation steepnesses


Returns the cascade candidate change fraction

  • « fann_get_cascade_activation_steepnesses
  • fann_get_cascade_candidate_limit »
  • PHP Manual
  • Fann Funktionen
  • Returns the cascade candidate change fraction

fann_get_cascade_candidate_change_fraction

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction

Beschreibung

fann_get_cascade_candidate_change_fraction ( resource $ann ) : float

The cascade candidate change fraction is a number between 0 and 1 determining how large a fraction the fann_get_MSE() value should change within fann_get_cascade_candidate_stagnation_epochs() during training of the candidate neurons, in order for the training not to stagnate. If the training stagnates, the training of the candidate neurons will be ended and the best candidate will be selected.

It means that if the MSE does not change by a fraction of fann_get_cascade_candidate_change_fraction() during a period of fann_get_cascade_candidate_stagnation_epochs(), the training of the candidate neurons is stopped because the training has stagnated.

If the cascade candidate change fraction is low, the candidate neurons will be trained more and if the fraction is high they will be trained less.

The default cascade candidate change fraction is 0.01, which is equalent to a 1% change in MSE.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The cascade candidate change fraction, or false on error.

Siehe auch

  • fann_set_cascade_candidate_change_fraction() - Sets the cascade candidate change fraction
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_cascade_candidate_stagnation_epochs() - Returns the number of cascade candidate stagnation epochs


Return the candidate limit

  • « fann_get_cascade_candidate_change_fraction
  • fann_get_cascade_candidate_stagnation_epochs »
  • PHP Manual
  • Fann Funktionen
  • Return the candidate limit

fann_get_cascade_candidate_limit

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_limit — Return the candidate limit

Beschreibung

fann_get_cascade_candidate_limit ( resource $ann ) : float

The candidate limit is a limit for how much the candidate neuron may be trained. The limit is a limit on the proportion between the MSE and candidate score.

Set this to a lower value to avoid overfitting and to a higher if overfitting is not a problem.

The default candidate limit is 1000.0.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The candidate limit, or false on error.

Siehe auch

  • fann_set_cascade_candidate_limit() - Sets the candidate limit


Returns the number of cascade candidate stagnation epochs

  • « fann_get_cascade_candidate_limit
  • fann_get_cascade_max_cand_epochs »
  • PHP Manual
  • Fann Funktionen
  • Returns the number of cascade candidate stagnation epochs

fann_get_cascade_candidate_stagnation_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs

Beschreibung

fann_get_cascade_candidate_stagnation_epochs ( resource $ann ) : int

The number of cascade candidate stagnation epochs determines the number of epochs training is allowed to continue without changing the MSE by a fraction of fann_get_cascade_candidate_change_fraction().

See more info about this parameter in fann_get_cascade_candidate_change_fraction().

The default number of cascade candidate stagnation epochs is 12.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The number of cascade candidate stagnation epochs, or false on error.

Siehe auch

  • fann_set_cascade_candidate_stagnation_epochs() - Sets the number of cascade candidate stagnation epochs
  • fann_get_cascade_candidate_change_fraction() - Returns the cascade candidate change fraction


Returns the maximum candidate epochs

  • « fann_get_cascade_candidate_stagnation_epochs
  • fann_get_cascade_max_out_epochs »
  • PHP Manual
  • Fann Funktionen
  • Returns the maximum candidate epochs

fann_get_cascade_max_cand_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs

Beschreibung

fann_get_cascade_max_cand_epochs ( resource $ann ) : int

The maximum candidate epochs determines the maximum number of epochs the input connections to the candidates may be trained before adding a new candidate neuron.

The default max candidate epochs is 150.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The maximum candidate epochs, or false on error.

Siehe auch

  • fann_set_cascade_max_cand_epochs() - Sets the max candidate epochs


Returns the maximum out epochs

  • « fann_get_cascade_max_cand_epochs
  • fann_get_cascade_min_cand_epochs »
  • PHP Manual
  • Fann Funktionen
  • Returns the maximum out epochs

fann_get_cascade_max_out_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_max_out_epochs — Returns the maximum out epochs

Beschreibung

fann_get_cascade_max_out_epochs ( resource $ann ) : int

The maximum out epochs determines the maximum number of epochs the output connections may be trained after adding a new candidate neuron.

The default max out epochs is 150.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The maximum out epochs, or false on error.

Siehe auch

  • fann_set_cascade_max_out_epochs() - Sets the maximum out epochs


Returns the minimum candidate epochs

  • « fann_get_cascade_max_out_epochs
  • fann_get_cascade_min_out_epochs »
  • PHP Manual
  • Fann Funktionen
  • Returns the minimum candidate epochs

fann_get_cascade_min_cand_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs

Beschreibung

fann_get_cascade_min_cand_epochs ( resource $ann ) : int

The minimum candidate epochs determines the minimum number of epochs the input connections to the candidates may be trained before adding a new candidate neuron.

The default min candidate epochs is 50.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The minimum candidate epochs, or false on error.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_set_cascade_min_cand_epochs() - Sets the min candidate epochs


Returns the minimum out epochs

  • « fann_get_cascade_min_cand_epochs
  • fann_get_cascade_num_candidate_groups »
  • PHP Manual
  • Fann Funktionen
  • Returns the minimum out epochs

fann_get_cascade_min_out_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_min_out_epochs — Returns the minimum out epochs

Beschreibung

fann_get_cascade_min_out_epochs ( resource $ann ) : int

The minimum out epochs determines the minimum number of epochs the output connections must be trained after adding a new candidate neuron.

The default min out epochs is 50.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The minimum out epochs, or false on error.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_set_cascade_min_out_epochs() - Sets the minimum out epochs


Returns the number of candidate groups

  • « fann_get_cascade_min_out_epochs
  • fann_get_cascade_num_candidates »
  • PHP Manual
  • Fann Funktionen
  • Returns the number of candidate groups

fann_get_cascade_num_candidate_groups

(PECL fann >= 1.0.0)

fann_get_cascade_num_candidate_groups — Returns the number of candidate groups

Beschreibung

fann_get_cascade_num_candidate_groups ( resource $ann ) : int

The number of candidate groups is the number of groups of identical candidates which will be used during training.

This number can be used to have more candidates without having to define new parameters for the candidates.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this parameter.

The default number of candidate groups is 2.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The number of candidate groups, or false on error.

Siehe auch

  • fann_set_cascade_num_candidate_groups() - Sets the number of candidate groups


Returns the number of candidates used during training

  • « fann_get_cascade_num_candidate_groups
  • fann_get_cascade_output_change_fraction »
  • PHP Manual
  • Fann Funktionen
  • Returns the number of candidates used during training

fann_get_cascade_num_candidates

(PECL fann >= 1.0.0)

fann_get_cascade_num_candidates — Returns the number of candidates used during training

Beschreibung

fann_get_cascade_num_candidates ( resource $ann ) : int

The number of candidates used during training (calculated by multiplying
fann_get_cascade_activation_functions_count(),
fann_get_cascade_activation_steepnesses_count() and
fann_get_cascade_num_candidate_groups()).

The actual candidates is defined by the fann_get_cascade_activation_functions() and fann_get_cascade_activation_steepnesses() arrays. These arrays define the activation functions and activation steepnesses used for the candidate neurons. If there are 2 activation functions in the activation function array and 3 steepnesses in the steepness array, then there will be 2x3=6 different candidates which will be trained. These 6 different candidates can be copied into several candidate groups, where the only difference between these groups is the initial weights. If the number of groups is set to 2, then the number of candidate neurons will be 2x3x2=12. The number of candidate groups is defined by fann_set_cascade_num_candidate_groups().

The default number of candidates is 6x4x2 = 48

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The number of candidates used during training, or false on error.

Siehe auch

  • fann_get_cascade_activation_functions() - Returns the cascade activation functions
  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses
  • fann_get_cascade_num_candidate_groups() - Returns the number of candidate groups


Returns the cascade output change fraction

  • « fann_get_cascade_num_candidates
  • fann_get_cascade_output_stagnation_epochs »
  • PHP Manual
  • Fann Funktionen
  • Returns the cascade output change fraction

fann_get_cascade_output_change_fraction

(PECL fann >= 1.0.0)

fann_get_cascade_output_change_fraction — Returns the cascade output change fraction

Beschreibung

fann_get_cascade_output_change_fraction ( resource $ann ) : float

The cascade output change fraction is a number between 0 and 1 determining how large a fraction of the fann_get_MSE() value should change within fann_get_cascade_output_stagnation_epochs() during training of the output connections, in order for the training not to stagnate. If the training stagnates, the training of the output connections will be ended and new candidates will be prepared.

It means that if the MSE does not change by a fraction of fann_get_cascade_output_change_fraction() during a period of fann_get_cascade_output_stagnation_epochs(), the training of the output connections is stopped because the training has stagnated.

If the cascade output change fraction is low, the output connections will be trained more and if the fraction is high, they will be trained less.

The default cascade output change fraction is 0.01, which is equalent to a 1% change in MSE.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The cascade output change fraction, or false on error.

Siehe auch

  • fann_set_cascade_output_change_fraction() - Sets the cascade output change fraction
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_cascade_output_stagnation_epochs() - Returns the number of cascade output stagnation epochs


Returns the number of cascade output stagnation epochs

  • « fann_get_cascade_output_change_fraction
  • fann_get_cascade_weight_multiplier »
  • PHP Manual
  • Fann Funktionen
  • Returns the number of cascade output stagnation epochs

fann_get_cascade_output_stagnation_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs

Beschreibung

fann_get_cascade_output_stagnation_epochs ( resource $ann ) : int

The number of cascade output stagnation epochs determines the number of epochs training is allowed to continue without changing the MSE by a fraction of fann_get_cascade_output_change_fraction().

See more info about this parameter in fann_get_cascade_output_change_fraction().

The default number of cascade output stagnation epochs is 12.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The number of cascade output stagnation epochs, or false on error.

Siehe auch

  • fann_set_cascade_output_stagnation_epochs() - Sets the number of cascade output stagnation epochs
  • fann_get_cascade_output_change_fraction() - Returns the cascade output change fraction


Returns the weight multiplier

  • « fann_get_cascade_output_stagnation_epochs
  • fann_get_connection_array »
  • PHP Manual
  • Fann Funktionen
  • Returns the weight multiplier

fann_get_cascade_weight_multiplier

(PECL fann >= 1.0.0)

fann_get_cascade_weight_multiplier — Returns the weight multiplier

Beschreibung

fann_get_cascade_weight_multiplier ( resource $ann ) : float

The weight multiplier is a parameter which is used to multiply the weights from the candidate neuron before adding the neuron to the neural network. This parameter is usually between 0 and 1, and is used to make the training a bit less aggressive.

The default weight multiplier is 0.4.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The weight multiplier, or false on error.

Siehe auch

  • fann_set_cascade_weight_multiplier() - Sets the weight multiplier


Get connections in the network

  • « fann_get_cascade_weight_multiplier
  • fann_get_connection_rate »
  • PHP Manual
  • Fann Funktionen
  • Get connections in the network

fann_get_connection_array

(PECL fann >= 1.0.0)

fann_get_connection_array — Get connections in the network

Beschreibung

fann_get_connection_array ( resource $ann ) : array

Get connections in the network.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

An array of connections in the network


Get the connection rate used when the network was created

  • « fann_get_connection_array
  • fann_get_errno »
  • PHP Manual
  • Fann Funktionen
  • Get the connection rate used when the network was created

fann_get_connection_rate

(PECL fann >= 1.0.0)

fann_get_connection_rate — Get the connection rate used when the network was created

Beschreibung

fann_get_connection_rate ( resource $ann ) : float

Get the connection rate used when the network was created.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The connection rate used when the network was created, or false on error.


Returns the last error number

  • « fann_get_connection_rate
  • fann_get_errstr »
  • PHP Manual
  • Fann Funktionen
  • Returns the last error number

fann_get_errno

(PECL fann >= 1.0.0)

fann_get_errno — Returns the last error number

Beschreibung

fann_get_errno ( resource $errdat ) : int

Returns the last error number.

Parameter-Liste

errdat

Entweder eine Resource eines neuralen Netzwerks oder Resource mit Trainingsdaten.

Rückgabewerte

The error number, or false on error.

Siehe auch

  • fann_reset_errno() - Resets the last error number
  • fann_get_errstr() - Returns the last errstr


Returns the last errstr

  • « fann_get_errno
  • fann_get_layer_array »
  • PHP Manual
  • Fann Funktionen
  • Returns the last errstr

fann_get_errstr

(PECL fann >= 1.0.0)

fann_get_errstr — Returns the last errstr

Beschreibung

fann_get_errstr ( resource $errdat ) : string

Returns the last errstr.

Parameter-Liste

errdat

Entweder eine Resource eines neuralen Netzwerks oder Resource mit Trainingsdaten.

Rückgabewerte

The last error string, or false on error.

Siehe auch

  • fann_reset_errstr() - Resets the last error string
  • fann_get_errno() - Returns the last error number


Get the number of neurons in each layer in the network

  • « fann_get_errstr
  • fann_get_learning_momentum »
  • PHP Manual
  • Fann Funktionen
  • Get the number of neurons in each layer in the network

fann_get_layer_array

(PECL fann >= 1.0.0)

fann_get_layer_array — Get the number of neurons in each layer in the network

Beschreibung

fann_get_layer_array ( resource $ann ) : array

Get the number of neurons in each layer in the neural network.

Bias is not included so the layers match the fann_create functions.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

An array of numbers of neurons in each leayer


Returns the learning momentum

  • « fann_get_layer_array
  • fann_get_learning_rate »
  • PHP Manual
  • Fann Funktionen
  • Returns the learning momentum

fann_get_learning_momentum

(PECL fann >= 1.0.0)

fann_get_learning_momentum — Returns the learning momentum

Beschreibung

fann_get_learning_momentum ( resource $ann ) : float

The learning momentum can be used to speed up FANN_TRAIN_INCREMENTAL training. A too high momentum will however not benefit training. Setting momentum to 0 will be the same as not using the momentum parameter. The recommended value of this parameter is between 0.0 and 1.0.

The default momentum is 0.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

The learning momentum, or false on error.

Siehe auch

  • fann_set_learning_momentum() - Sets the learning momentum
  • fann_set_training_algorithm() - Sets the training algorithm


Returns the learning rate

  • « fann_get_learning_momentum
  • fann_get_MSE »
  • PHP Manual
  • Fann Funktionen
  • Returns the learning rate

fann_get_learning_rate

(PECL fann >= 1.0.0)

fann_get_learning_rate — Returns the learning rate

Beschreibung

fann_get_learning_rate ( resource $ann ) : float

The learning rate is used to determine how aggressive training should be for some of the training algorithms (FANN_TRAIN_INCREMENTAL, FANN_TRAIN_BATCH, FANN_TRAIN_QUICKPROP). Do however note that it is not used in FANN_TRAIN_RPROP.

The default learning rate is 0.7.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The learning rate, or false on error.

Siehe auch

  • fann_set_learning_rate() - Sets the learning rate
  • fann_set_training_algorithm() - Sets the training algorithm


Reads the mean square error from the network

  • « fann_get_learning_rate
  • fann_get_network_type »
  • PHP Manual
  • Fann Funktionen
  • Reads the mean square error from the network

fann_get_MSE

(PECL fann >= 1.0.0)

fann_get_MSE — Reads the mean square error from the network

Beschreibung

fann_get_MSE ( resource $ann ) : float

Reads the mean square error from the network.

Reads the mean square error from the network. This value is calculated during training or testing and can therefore sometimes be a bit off if the weights have been changed since the last calculation of the value.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The mean square error, or false on error.

Siehe auch

  • fann_test_data() - Test a set of training data and calculates the MSE for the training data


Get the type of neural network it was created as

  • « fann_get_MSE
  • fann_get_num_input »
  • PHP Manual
  • Fann Funktionen
  • Get the type of neural network it was created as

fann_get_network_type

(PECL fann >= 1.0.0)

fann_get_network_type — Get the type of neural network it was created as

Beschreibung

fann_get_network_type ( resource $ann ) : int

Get the type of neural network it was created as.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

Network type constant, or false on error.


Get the number of input neurons

  • « fann_get_network_type
  • fann_get_num_layers »
  • PHP Manual
  • Fann Funktionen
  • Get the number of input neurons

fann_get_num_input

(PECL fann >= 1.0.0)

fann_get_num_input — Get the number of input neurons

Beschreibung

fann_get_num_input ( resource $ann ) : int

Get the number of input neurons.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

Number of input neurons, or false on error


Get the number of layers in the neural network

  • « fann_get_num_input
  • fann_get_num_output »
  • PHP Manual
  • Fann Funktionen
  • Get the number of layers in the neural network

fann_get_num_layers

(PECL fann >= 1.0.0)

fann_get_num_layers — Get the number of layers in the neural network

Beschreibung

fann_get_num_layers ( resource $ann ) : int

Get the number of layers in the neural network.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The number of leayers in the neural network, or false on error.


Get the number of output neurons

  • « fann_get_num_layers
  • fann_get_quickprop_decay »
  • PHP Manual
  • Fann Funktionen
  • Get the number of output neurons

fann_get_num_output

(PECL fann >= 1.0.0)

fann_get_num_output — Get the number of output neurons

Beschreibung

fann_get_num_output ( resource $ann ) : int

Get the number of output neurons.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

Number of output neurons, or false on error


Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

  • « fann_get_num_output
  • fann_get_quickprop_mu »
  • PHP Manual
  • Fann Funktionen
  • Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

fann_get_quickprop_decay

(PECL fann >= 1.0.0)

fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

Beschreibung

fann_get_quickprop_decay ( resource $ann ) : float

The decay is a small negative valued number which is a factor that the weights should decrease in each iteration during quickprop training. This is used to make sure that the weights do not become too high during training.

The default decay is -0.0001.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The decay, or false on error.

Siehe auch

  • fann_set_quickprop_decay() - Sets the quickprop decay factor


Returns the mu factor

  • « fann_get_quickprop_decay
  • fann_get_rprop_decrease_factor »
  • PHP Manual
  • Fann Funktionen
  • Returns the mu factor

fann_get_quickprop_mu

(PECL fann >= 1.0.0)

fann_get_quickprop_mu — Returns the mu factor

Beschreibung

fann_get_quickprop_mu ( resource $ann ) : float

The mu factor is used to increase and decrease the step-size during quickprop training. The mu factor should always be above 1, since it would otherwise decrease the step-size when it was suppose to increase it.

The default mu factor is 1.75.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The mu factor, or false on error.

Siehe auch

  • fann_set_quickprop_mu() - Sets the quickprop mu factor


Returns the increase factor used during RPROP training

  • « fann_get_quickprop_mu
  • fann_get_rprop_delta_max »
  • PHP Manual
  • Fann Funktionen
  • Returns the increase factor used during RPROP training

fann_get_rprop_decrease_factor

(PECL fann >= 1.0.0)

fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training

Beschreibung

fann_get_rprop_decrease_factor ( resource $ann ) : float

The decrease factor is a value smaller than 1, which is used to decrease the step-size during RPROP training.

The default decrease factor is 0.5.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The decrease factor, or false on error.

Siehe auch

  • fann_set_rprop_decrease_factor() - Sets the decrease factor used during RPROP training


Returns the maximum step-size

  • « fann_get_rprop_decrease_factor
  • fann_get_rprop_delta_min »
  • PHP Manual
  • Fann Funktionen
  • Returns the maximum step-size

fann_get_rprop_delta_max

(PECL fann >= 1.0.0)

fann_get_rprop_delta_max — Returns the maximum step-size

Beschreibung

fann_get_rprop_delta_max ( resource $ann ) : float

The maximum step-size is a positive number determining how large the maximum step-size may be.

The default delta max is 50.0.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The maximum step-size, or false on error.

Siehe auch

  • fann_set_rprop_delta_max() - Sets the maximum step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size


Returns the minimum step-size

  • « fann_get_rprop_delta_max
  • fann_get_rprop_delta_zero »
  • PHP Manual
  • Fann Funktionen
  • Returns the minimum step-size

fann_get_rprop_delta_min

(PECL fann >= 1.0.0)

fann_get_rprop_delta_min — Returns the minimum step-size

Beschreibung

fann_get_rprop_delta_min ( resource $ann ) : float

The minimum step-size is a small positive number determining how small the minimum step-size may be.

The default value delta min is 0.0.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The minimum step-size, or false on error.

Siehe auch

  • fann_set_rprop_delta_min() - Sets the minimum step-size


Returns the initial step-size

  • « fann_get_rprop_delta_min
  • fann_get_rprop_increase_factor »
  • PHP Manual
  • Fann Funktionen
  • Returns the initial step-size

fann_get_rprop_delta_zero

(PECL fann >= 1.0.0)

fann_get_rprop_delta_zero — Returns the initial step-size

Beschreibung

fann_get_rprop_delta_zero ( resource $ann ) : int

The initial step-size is a positive number determining the initial step size.

The default delta zero is 0.1.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The initial step-size, or false on error.

Siehe auch

  • fann_set_rprop_delta_zero() - Sets the initial step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size
  • fann_get_rprop_delta_max() - Returns the maximum step-size


Returns the increase factor used during RPROP training

  • « fann_get_rprop_delta_zero
  • fann_get_sarprop_step_error_shift »
  • PHP Manual
  • Fann Funktionen
  • Returns the increase factor used during RPROP training

fann_get_rprop_increase_factor

(PECL fann >= 1.0.0)

fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training

Beschreibung

fann_get_rprop_increase_factor ( resource $ann ) : float

The increase factor is a value larger than 1, which is used to increase the step-size during RPROP training.

The default increase factor is 1.2.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The increase factor, or false on error.

Siehe auch

  • fann_set_rprop_increase_factor() - Sets the increase factor used during RPROP training


Returns the sarprop step error shift

  • « fann_get_rprop_increase_factor
  • fann_get_sarprop_step_error_threshold_factor »
  • PHP Manual
  • Fann Funktionen
  • Returns the sarprop step error shift

fann_get_sarprop_step_error_shift

(PECL fann >= 1.0.0)

fann_get_sarprop_step_error_shift — Returns the sarprop step error shift

Beschreibung

fann_get_sarprop_step_error_shift ( resource $ann ) : float

Returns the sarprop step error shift.

The default step error shift is 1.385.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The sarprop step error shift , or false on error.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_set_sarprop_step_error_shift() - Sets the sarprop step error shift


Returns the sarprop step error threshold factor

  • « fann_get_sarprop_step_error_shift
  • fann_get_sarprop_temperature »
  • PHP Manual
  • Fann Funktionen
  • Returns the sarprop step error threshold factor

fann_get_sarprop_step_error_threshold_factor

(PECL fann >= 1.0.0)

fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor

Beschreibung

fann_get_sarprop_step_error_threshold_factor ( resource $ann ) : float

The sarprop step error threshold factor.

The default factor is 0.1.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The sarprop step error threshold factor, or false on error.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_set_sarprop_step_error_threshold_factor() - Sets the sarprop step error threshold factor


Returns the sarprop temperature

  • « fann_get_sarprop_step_error_threshold_factor
  • fann_get_sarprop_weight_decay_shift »
  • PHP Manual
  • Fann Funktionen
  • Returns the sarprop temperature

fann_get_sarprop_temperature

(PECL fann >= 1.0.0)

fann_get_sarprop_temperature — Returns the sarprop temperature

Beschreibung

fann_get_sarprop_temperature ( resource $ann ) : float

Returns the sarprop temperature.

The default temperature is 0.015.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The sarprop temperature, or false on error.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_set_sarprop_temperature() - Sets the sarprop temperature


Returns the sarprop weight decay shift

  • « fann_get_sarprop_temperature
  • fann_get_total_connections »
  • PHP Manual
  • Fann Funktionen
  • Returns the sarprop weight decay shift

fann_get_sarprop_weight_decay_shift

(PECL fann >= 1.0.0)

fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift

Beschreibung

fann_get_sarprop_weight_decay_shift ( resource $ann ) : float

The sarprop weight decay shift.

The default delta max is -6.644.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The sarprop weight decay shift, or false on error.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_set_sarprop_weight_decay_shift() - Sets the sarprop weight decay shift


Get the total number of connections in the entire network

  • « fann_get_sarprop_weight_decay_shift
  • fann_get_total_neurons »
  • PHP Manual
  • Fann Funktionen
  • Get the total number of connections in the entire network

fann_get_total_connections

(PECL fann >= 1.0.0)

fann_get_total_connections — Get the total number of connections in the entire network

Beschreibung

fann_get_total_connections ( resource $ann ) : int

Get the total number of connections in the entire network.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

Total number of connections in the entire network, or false on error


Get the total number of neurons in the entire network

  • « fann_get_total_connections
  • fann_get_train_error_function »
  • PHP Manual
  • Fann Funktionen
  • Get the total number of neurons in the entire network

fann_get_total_neurons

(PECL fann >= 1.0.0)

fann_get_total_neurons — Get the total number of neurons in the entire network

Beschreibung

fann_get_total_neurons ( resource $ann ) : int

Get the total number of neurons in the entire network. This number does also include the bias neurons, so a 2-4-2 network has 2+4+2 +2(bias) = 10 neurons.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

Total number of neurons in the entire network, or false on error.


Returns the error function used during training

  • « fann_get_total_neurons
  • fann_get_train_stop_function »
  • PHP Manual
  • Fann Funktionen
  • Returns the error function used during training

fann_get_train_error_function

(PECL fann >= 1.0.0)

fann_get_train_error_function — Returns the error function used during training

Beschreibung

fann_get_train_error_function ( resource $ann ) : int

Returns the error function used during training.

The error functions are described further in error functions constants.

The default error function is FANN_ERRORFUNC_TANH.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The error function constant, or false on error.

Siehe auch

  • fann_set_train_error_function() - Sets the error function used during training


Returns the stop function used during training

  • « fann_get_train_error_function
  • fann_get_training_algorithm »
  • PHP Manual
  • Fann Funktionen
  • Returns the stop function used during training

fann_get_train_stop_function

(PECL fann >= 1.0.0)

fann_get_train_stop_function — Returns the stop function used during training

Beschreibung

fann_get_train_stop_function ( resource $ann ) : int

Returns the stop function used during training.

The stop functions are described further in stop functions constants.

The default stop function is FANN_STOPFUNC_MSE.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

The stop function constant, or false on error.

Siehe auch

  • fann_set_train_stop_function() - Sets the stop function used during training


Returns the training algorithm

  • « fann_get_train_stop_function
  • fann_init_weights »
  • PHP Manual
  • Fann Funktionen
  • Returns the training algorithm

fann_get_training_algorithm

(PECL fann >= 1.0.0)

fann_get_training_algorithm — Returns the training algorithm

Beschreibung

fann_get_training_algorithm ( resource $ann ) : int

Returns the training algorithm. This training algorithm is used by fann_train_on_data() and associated functions.

Note that this algorithm is also used during fann_cascadetrain_on_data(), although only FANN_TRAIN_RPROP and FANN_TRAIN_QUICKPROP is allowed during cascade training.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

Training algorithm constant, or false on error.

Siehe auch

  • fann_set_training_algorithm() - Sets the training algorithm


Initialize the weights using Widrow + Nguyen’s algorithm

  • « fann_get_training_algorithm
  • fann_length_train_data »
  • PHP Manual
  • Fann Funktionen
  • Initialize the weights using Widrow + Nguyen’s algorithm

fann_init_weights

(PECL fann >= 1.0.0)

fann_init_weights — Initialize the weights using Widrow + Nguyen’s algorithm

Beschreibung

fann_init_weights ( resource $ann , resource $train_data ) : bool

Initialize the weights using Widrow + Nguyen’s algorithm.

This function behaves similarly to fann_randomize_weights(). It will use the algorithm developed by Derrick Nguyen and Bernard Widrow to set the weights in such a way as to speed up training. This technique is not always successful, and in some cases can be less efficient than a purely random initialization.

The algorithm requires access to the range of the input data (for example largest and smallest input), and therefore accepts a second argument, data, which is the training data that will be used to train the network.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

train_data

Resource für Trainingsdaten eines neuralen Netzwerks.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_randomize_weights() - Give each connection a random weight between min_weight and max_weight
  • fann_read_train_from_file() - Reads a file that stores training data


Returns the number of training patterns in the train data

  • « fann_init_weights
  • fann_merge_train_data »
  • PHP Manual
  • Fann Funktionen
  • Returns the number of training patterns in the train data

fann_length_train_data

(PECL fann >= 1.0.0)

fann_length_train_data — Returns the number of training patterns in the train data

Beschreibung

fann_length_train_data ( resource $data ) : int

Returns the number of training patterns in the train data resource.

Parameter-Liste

data

Resource für Trainingsdaten eines neuralen Netzwerks.

Rückgabewerte

Number of elements in the train data resource, or false on error.


Merges the train data

  • « fann_length_train_data
  • fann_num_input_train_data »
  • PHP Manual
  • Fann Funktionen
  • Merges the train data

fann_merge_train_data

(PECL fann >= 1.0.0)

fann_merge_train_data — Merges the train data

Beschreibung

fann_merge_train_data ( resource $data1 , resource $data2 ) : resource

Merges the data from data1 and data2 into a new train data resource.

Parameter-Liste

data1

Resource für Trainingsdaten eines neuralen Netzwerks.

data2

Resource für Trainingsdaten eines neuralen Netzwerks.

Rückgabewerte

New merged train data resource, or false on error.


Returns the number of inputs in each of the training patterns in the train data

  • « fann_merge_train_data
  • fann_num_output_train_data »
  • PHP Manual
  • Fann Funktionen
  • Returns the number of inputs in each of the training patterns in the train data

fann_num_input_train_data

(PECL fann >= 1.0.0)

fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data

Beschreibung

fann_num_input_train_data ( resource $data ) : int

Returns the number of inputs in each of the training patterns in the train data resource.

Parameter-Liste

data

Resource für Trainingsdaten eines neuralen Netzwerks.

Rückgabewerte

The number of inputs, or false on error.

Siehe auch

  • fann_length_train_data() - Returns the number of training patterns in the train data
  • fann_num_output_train_data() - Returns the number of outputs in each of the training patterns in the train data


Returns the number of outputs in each of the training patterns in the train data

  • « fann_num_input_train_data
  • fann_print_error »
  • PHP Manual
  • Fann Funktionen
  • Returns the number of outputs in each of the training patterns in the train data

fann_num_output_train_data

(PECL fann >= 1.0.0)

fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data

Beschreibung

fann_num_output_train_data ( resource $data ) : int

Returns the number of outputs in each of the training patterns in the train data resource.

Parameter-Liste

data

Resource für Trainingsdaten eines neuralen Netzwerks.

Rückgabewerte

The number of outputs, or false on error.

Siehe auch

  • fann_length_train_data() - Returns the number of training patterns in the train data
  • fann_num_input_train_data() - Returns the number of inputs in each of the training patterns in the train data


Prints the error string

  • « fann_num_output_train_data
  • fann_randomize_weights »
  • PHP Manual
  • Fann Funktionen
  • Prints the error string

fann_print_error

(PECL fann >= 1.0.0)

fann_print_error — Prints the error string

Beschreibung

fann_print_error ( resource $errdat ) : void

Prints the error string.

Parameter-Liste

errdat

Entweder eine Resource eines neuralen Netzwerks oder Resource mit Trainingsdaten.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • fann_get_errstr() - Returns the last errstr


Give each connection a random weight between min_weight and max_weight

  • « fann_print_error
  • fann_read_train_from_file »
  • PHP Manual
  • Fann Funktionen
  • Give each connection a random weight between min_weight and max_weight

fann_randomize_weights

(PECL fann >= 1.0.0)

fann_randomize_weights — Give each connection a random weight between min_weight and max_weight

Beschreibung

fann_randomize_weights ( resource $ann , float $min_weight , float $max_weight ) : bool

Give each connection a random weight between min_weight and max_weight

From the beginning the weights are random between -0.1 and 0.1.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

min_weight

Minimum weight value

max_weight

Maximum weight value

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_init_weights() - Initialize the weights using Widrow + Nguyen’s algorithm


Reads a file that stores training data

  • « fann_randomize_weights
  • fann_reset_errno »
  • PHP Manual
  • Fann Funktionen
  • Reads a file that stores training data

fann_read_train_from_file

(PECL fann >= 1.0.0)

fann_read_train_from_file — Reads a file that stores training data

Beschreibung

fann_read_train_from_file ( string $filename ) : resource

Reads a file that stores training data.

Parameter-Liste

filename

The input file in the following format:

num_train_data num_input num_output
inputdata seperated by space
outputdata seperated by space

.
.
.

inputdata seperated by space
outputdata seperated by space

Rückgabewerte

Gibt bei Erfolg eine Resource mit Trainingsdaten zurück, ansonsten false im Fehlerfall.

Beispiele

Beispiel #1 fann_read_train_from_file() example

<?php
$train_data = fann_read_train_from_file("xor.data");
if ($train_data) {
    // Do something with $train_data for XOR function
}
?>

Contents of xor.data

4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

Siehe auch

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_destroy_train() - Destructs the training data
  • fann_save_train() - Save the training structure to a file


Resets the last error number

  • « fann_read_train_from_file
  • fann_reset_errstr »
  • PHP Manual
  • Fann Funktionen
  • Resets the last error number

fann_reset_errno

(PECL fann >= 1.0.0)

fann_reset_errno — Resets the last error number

Beschreibung

fann_reset_errno ( resource $errdat ) : void

Resets the last error number.

Parameter-Liste

errdat

Entweder eine Resource eines neuralen Netzwerks oder Resource mit Trainingsdaten.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • fann_get_errno() - Returns the last error number
  • fann_reset_errstr() - Resets the last error string


Resets the last error string

  • « fann_reset_errno
  • fann_reset_MSE »
  • PHP Manual
  • Fann Funktionen
  • Resets the last error string

fann_reset_errstr

(PECL fann >= 1.0.0)

fann_reset_errstr — Resets the last error string

Beschreibung

fann_reset_errstr ( resource $errdat ) : void

Resets the last error string.

Parameter-Liste

errdat

Entweder eine Resource eines neuralen Netzwerks oder Resource mit Trainingsdaten.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • fann_get_errstr() - Returns the last errstr
  • fann_reset_errno() - Resets the last error number


Resets the mean square error from the network

  • « fann_reset_errstr
  • fann_run »
  • PHP Manual
  • Fann Funktionen
  • Resets the mean square error from the network

fann_reset_MSE

(PECL fann >= 1.0.0)

fann_reset_MSE — Resets the mean square error from the network

Beschreibung

fann_reset_MSE ( string $ann ) : bool

Resets the mean square error from the network.

This function also resets the number of bits that fail.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training


Will run input through the neural network

  • « fann_reset_MSE
  • fann_save_train »
  • PHP Manual
  • Fann Funktionen
  • Will run input through the neural network

fann_run

(PECL fann >= 1.0.0)

fann_run — Will run input through the neural network

Beschreibung

fann_run ( resource $ann , array $input ) : array

Will run input through the neural network, returning an array of outputs, the number of which being equal to the number of neurons in the output layer.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

input

Array of input values

Rückgabewerte

Array of output values, or false on error


Save the training structure to a file

  • « fann_run
  • fann_save »
  • PHP Manual
  • Fann Funktionen
  • Save the training structure to a file

fann_save_train

(PECL fann >= 1.0.0)

fann_save_train — Save the training structure to a file

Beschreibung

fann_save_train ( resource $data , string $file_name ) : bool

Save the training data to a file, with the format as specified in fann_read_train_from_file().

Parameter-Liste

data

Resource für Trainingsdaten eines neuralen Netzwerks.

file_name

The file name of the file where training data is saved to.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_read_train_from_file() - Reads a file that stores training data


Saves the entire network to a configuration file

  • « fann_save_train
  • fann_scale_input_train_data »
  • PHP Manual
  • Fann Funktionen
  • Saves the entire network to a configuration file

fann_save

(PECL fann >= 1.0.0)

fann_save — Saves the entire network to a configuration file

Beschreibung

fann_save ( resource $ann , string $configuration_file ) : bool

Saves the entire network to a configuration file.

The configuration file contains all information about the neural network and enables fann_create_from_file() to create an exact copy of the neural network and all of the parameters associated with the neural network.

These three parameters (fann_set_callback(), fann_set_error_log(), fann_set_user_data()) are NOT saved to the file because they cannot safely be ported to a different location. Also temporary parameters generated during training like fann_get_MSE() is not saved.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

configuration_file

The configuration file path.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_create_from_file() - Constructs a backpropagation neural network from a configuration file


Scales the inputs in the training data to the specified range

  • « fann_save
  • fann_scale_input »
  • PHP Manual
  • Fann Funktionen
  • Scales the inputs in the training data to the specified range

fann_scale_input_train_data

(PECL fann >= 1.0.0)

fann_scale_input_train_data — Scales the inputs in the training data to the specified range

Beschreibung

fann_scale_input_train_data ( resource $train_data , float $new_min , float $new_max ) : bool

Scales the inputs in the training data to the specified range.

Parameter-Liste

train_data

Resource für Trainingsdaten eines neuralen Netzwerks.

new_min

New minimum after scaling inputs in training data.

new_max

New maximum after scaling inputs in training data.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_scale_output_train_data() - Scales the outputs in the training data to the specified range
  • fann_scale_train_data() - Scales the inputs and outputs in the training data to the specified range


Scale data in input vector before feed it to ann based on previously calculated parameters

  • « fann_scale_input_train_data
  • fann_scale_output_train_data »
  • PHP Manual
  • Fann Funktionen
  • Scale data in input vector before feed it to ann based on previously calculated parameters

fann_scale_input

(PECL fann >= 1.0.0)

fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters

Beschreibung

fann_scale_input ( resource $ann , array $input_vector ) : bool

Scale data in input vector before feed it to ann based on previously calculated parameters.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

input_vector

Input vector that will be scaled

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_descale_input() - Scale data in input vector after get it from ann based on previously calculated parameters
  • fann_scale_output() - Scale data in output vector before feed it to ann based on previously calculated parameters


Scales the outputs in the training data to the specified range

  • « fann_scale_input
  • fann_scale_output »
  • PHP Manual
  • Fann Funktionen
  • Scales the outputs in the training data to the specified range

fann_scale_output_train_data

(PECL fann >= 1.0.0)

fann_scale_output_train_data — Scales the outputs in the training data to the specified range

Beschreibung

fann_scale_output_train_data ( resource $train_data , float $new_min , float $new_max ) : bool

Scales the outputs in the training data to the specified range.

Parameter-Liste

train_data

Resource für Trainingsdaten eines neuralen Netzwerks.

new_min

New minimum after scaling outputs in training data.

new_max

New maximum after scaling outputs in training data.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_scale_input_train_data() - Scales the inputs in the training data to the specified range
  • fann_scale_train_data() - Scales the inputs and outputs in the training data to the specified range


Scale data in output vector before feed it to ann based on previously calculated parameters

  • « fann_scale_output_train_data
  • fann_scale_train_data »
  • PHP Manual
  • Fann Funktionen
  • Scale data in output vector before feed it to ann based on previously calculated parameters

fann_scale_output

(PECL fann >= 1.0.0)

fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters

Beschreibung

fann_scale_output ( resource $ann , array $output_vector ) : bool

Scale data in output vector before feed it to ann based on previously calculated parameters.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

output_vector

Output vector that will be scaled

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_descale_output() - Scale data in output vector after get it from ann based on previously calculated parameters
  • fann_scale_input() - Scale data in input vector before feed it to ann based on previously calculated parameters


Scales the inputs and outputs in the training data to the specified range

  • « fann_scale_output
  • fann_scale_train »
  • PHP Manual
  • Fann Funktionen
  • Scales the inputs and outputs in the training data to the specified range

fann_scale_train_data

(PECL fann >= 1.0.0)

fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range

Beschreibung

fann_scale_train_data ( resource $train_data , float $new_min , float $new_max ) : bool

Scales the inputs and outputs in the training data to the specified range.

Parameter-Liste

train_data

Resource für Trainingsdaten eines neuralen Netzwerks.

new_min

New minimum after scaling inputs and outputs in training data.

new_max

New maximum after scaling inputs and outputs in training data.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_scale_output_train_data() - Scales the outputs in the training data to the specified range
  • fann_scale_input_train_data() - Scales the inputs in the training data to the specified range


Scale input and output data based on previously calculated parameters

  • « fann_scale_train_data
  • fann_set_activation_function_hidden »
  • PHP Manual
  • Fann Funktionen
  • Scale input and output data based on previously calculated parameters

fann_scale_train

(PECL fann >= 1.0.0)

fann_scale_train — Scale input and output data based on previously calculated parameters

Beschreibung

fann_scale_train ( resource $ann , resource $train_data ) : bool

Scale input and output data based on previously calculated parameters.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

train_data

Resource für Trainingsdaten eines neuralen Netzwerks.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_descale_train() - Descale input and output data based on previously calculated parameters
  • fann_set_scaling_params() - Calculate input and output scaling parameters for future use based on training data


Sets the activation function for all of the hidden layers

  • « fann_scale_train
  • fann_set_activation_function_layer »
  • PHP Manual
  • Fann Funktionen
  • Sets the activation function for all of the hidden layers

fann_set_activation_function_hidden

(PECL fann >= 1.0.0)

fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers

Beschreibung

fann_set_activation_function_hidden ( resource $ann , int $activation_function ) : bool

Sets the activation function for all of the hidden layers.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

activation_function

The activation functions constant.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Sets the activation function for all the neurons in the supplied layer

  • « fann_set_activation_function_hidden
  • fann_set_activation_function_output »
  • PHP Manual
  • Fann Funktionen
  • Sets the activation function for all the neurons in the supplied layer

fann_set_activation_function_layer

(PECL fann >= 1.0.0)

fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer

Beschreibung

fann_set_activation_function_layer ( resource $ann , int $activation_function , int $layer ) : bool

Set the activation function for all the neurons in the layer number layer, counting the input layer as layer 0.

It is not possible to set activation functions for the neurons in the input layer.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

activation_function

The activation functions constant.

layer

Layer number.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Sets the activation function for the output layer

  • « fann_set_activation_function_layer
  • fann_set_activation_function »
  • PHP Manual
  • Fann Funktionen
  • Sets the activation function for the output layer

fann_set_activation_function_output

(PECL fann >= 1.0.0)

fann_set_activation_function_output — Sets the activation function for the output layer

Beschreibung

fann_set_activation_function_output ( resource $ann , int $activation_function ) : bool

Sets the activation function for the output layer.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

activation_function

The activation functions constant.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Sets the activation function for supplied neuron and layer

  • « fann_set_activation_function_output
  • fann_set_activation_steepness_hidden »
  • PHP Manual
  • Fann Funktionen
  • Sets the activation function for supplied neuron and layer

fann_set_activation_function

(PECL fann >= 1.0.0)

fann_set_activation_function — Sets the activation function for supplied neuron and layer

Beschreibung

fann_set_activation_function ( resource $ann , int $activation_function , int $layer , int $neuron ) : bool

Set the activation function for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to set activation functions for the neurons in the input layer.

When choosing an activation function it is important to note that the activation functions have different range. FANN_SIGMOID is e.g. in the 0 - 1 range while FANN_SIGMOID_SYMMETRIC is in the -1 - 1 range and FANN_LINEAR is unbound.

The supplied activation_function value must be one of the activation functions constants.

The return value is one of the activation functions constants.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

activation_function

The activation functions constant.

layer

Layer number.

neuron

Neuron number.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_get_activation_function() - Returns the activation function


Sets the steepness of the activation steepness for all neurons in the all hidden layers

  • « fann_set_activation_function
  • fann_set_activation_steepness_layer »
  • PHP Manual
  • Fann Funktionen
  • Sets the steepness of the activation steepness for all neurons in the all hidden layers

fann_set_activation_steepness_hidden

(PECL fann >= 1.0.0)

fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers

Beschreibung

fann_set_activation_steepness_hidden ( resource $ann , float $activation_steepness ) : bool

Sets the steepness of the activation steepness for all neurons in the all hidden layers.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

activation_steepness

The activation steepness.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Sets the activation steepness for all of the neurons in the supplied layer number

  • « fann_set_activation_steepness_hidden
  • fann_set_activation_steepness_output »
  • PHP Manual
  • Fann Funktionen
  • Sets the activation steepness for all of the neurons in the supplied layer number

fann_set_activation_steepness_layer

(PECL fann >= 1.0.0)

fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number

Beschreibung

fann_set_activation_steepness_layer ( resource $ann , float $activation_steepness , int $layer ) : bool

Set the activation steepness for all of the neurons in layer number layer, counting the input layer as layer 0.

It is not possible to set activation steepness for the neurons in the input layer.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

activation_steepness

The activation steepness.

layer

Layer number.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Sets the steepness of the activation steepness in the output layer

  • « fann_set_activation_steepness_layer
  • fann_set_activation_steepness »
  • PHP Manual
  • Fann Funktionen
  • Sets the steepness of the activation steepness in the output layer

fann_set_activation_steepness_output

(PECL fann >= 1.0.0)

fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer

Beschreibung

fann_set_activation_steepness_output ( resource $ann , float $activation_steepness ) : bool

Sets the steepness of the activation steepness in the output layer.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

activation_steepness

The activation steepness.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Sets the activation steepness for supplied neuron and layer number

  • « fann_set_activation_steepness_output
  • fann_set_bit_fail_limit »
  • PHP Manual
  • Fann Funktionen
  • Sets the activation steepness for supplied neuron and layer number

fann_set_activation_steepness

(PECL fann >= 1.0.0)

fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number

Beschreibung

fann_set_activation_steepness ( resource $ann , float $activation_steepness , int $layer , int $neuron ) : bool

Set the activation steepness for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to set activation steepness for the neurons in the input layer.

The steepness of an activation function says something about how fast the activation function goes from the minimum to the maximum. A high value for the activation function will also give a more agressive training.

When training neural networks where the output values should be at the extremes (usually 0 and 1, depending on the activation function), a steep activation function can be used (e.g. 1.0).

The default activation steepness is 0.5.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

activation_steepness

The activation steepness.

layer

Layer number.

neuron

Neuron number.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Set the bit fail limit used during training

  • « fann_set_activation_steepness
  • fann_set_callback »
  • PHP Manual
  • Fann Funktionen
  • Set the bit fail limit used during training

fann_set_bit_fail_limit

(PECL fann >= 1.0.0)

fann_set_bit_fail_limit — Set the bit fail limit used during training

Beschreibung

fann_set_bit_fail_limit ( resource $ann , float $bit_fail_limit ) : bool

Set the bit fail limit used during training.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

bit_fail_limit

The bit fail limit.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training


Sets the callback function for use during training

  • « fann_set_bit_fail_limit
  • fann_set_cascade_activation_functions »
  • PHP Manual
  • Fann Funktionen
  • Sets the callback function for use during training

fann_set_callback

(PECL fann >= 1.0.0)

fann_set_callback — Sets the callback function for use during training

Beschreibung

fann_set_callback ( resource $ann , callable $callback ) : bool

Sets the callback function for use during training. It means that it is called from fann_train_on_data() or fann_train_on_file().

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

callback

The supplied callback function takes following parameters:

  • ann - The neural network resource
  • train - The train data resource or null if called from fann_train_on_file()
  • max_epochs - The maximum number of epochs the training should continue
  • epochs_between_reports - The number of epochs between calling this function
  • desired_error - The desired fann_get_MSE() or fann_get_bit_fail(), depending on the stop function chosen by fann_set_train_stop_function()
  • epochs - The current epoch

The callback should return true. If it returns false, the training will terminate.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_train_on_file() - Trains on an entire dataset, which is read from file, for a period of time


Sets the array of cascade candidate activation functions

  • « fann_set_callback
  • fann_set_cascade_activation_steepnesses »
  • PHP Manual
  • Fann Funktionen
  • Sets the array of cascade candidate activation functions

fann_set_cascade_activation_functions

(PECL fann >= 1.0.0)

fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions

Beschreibung

fann_set_cascade_activation_functions ( resource $ann , array $cascade_activation_functions ) : bool

Sets the array of cascade candidate activation functions.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_activation_functions

The array of cascade candidate activation functions.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_set_cascade_activation_functions()


Sets the array of cascade candidate activation steepnesses

  • « fann_set_cascade_activation_functions
  • fann_set_cascade_candidate_change_fraction »
  • PHP Manual
  • Fann Funktionen
  • Sets the array of cascade candidate activation steepnesses

fann_set_cascade_activation_steepnesses

(PECL fann >= 1.0.0)

fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses

Beschreibung

fann_set_cascade_activation_steepnesses ( resource $ann , array $cascade_activation_steepnesses_count ) : bool

Sets the array of cascade candidate activation steepnesses.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_activation_steepnesses_count

The array of cascade candidate activation steepnesses.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses


Sets the cascade candidate change fraction

  • « fann_set_cascade_activation_steepnesses
  • fann_set_cascade_candidate_limit »
  • PHP Manual
  • Fann Funktionen
  • Sets the cascade candidate change fraction

fann_set_cascade_candidate_change_fraction

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction

Beschreibung

fann_set_cascade_candidate_change_fraction ( resource $ann , float $cascade_candidate_change_fraction ) : bool

Sets the cascade candidate change fraction.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_candidate_change_fraction

The cascade candidate change fraction.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_cascade_candidate_change_fraction() - Returns the cascade candidate change fraction


Sets the candidate limit

  • « fann_set_cascade_candidate_change_fraction
  • fann_set_cascade_candidate_stagnation_epochs »
  • PHP Manual
  • Fann Funktionen
  • Sets the candidate limit

fann_set_cascade_candidate_limit

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_limit — Sets the candidate limit

Beschreibung

fann_set_cascade_candidate_limit ( resource $ann , float $cascade_candidate_limit ) : bool

Sets the candidate limit.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_candidate_limit

The candidate limit.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_cascade_candidate_limit() - Return the candidate limit


Sets the number of cascade candidate stagnation epochs

  • « fann_set_cascade_candidate_limit
  • fann_set_cascade_max_cand_epochs »
  • PHP Manual
  • Fann Funktionen
  • Sets the number of cascade candidate stagnation epochs

fann_set_cascade_candidate_stagnation_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs

Beschreibung

fann_set_cascade_candidate_stagnation_epochs ( resource $ann , int $cascade_candidate_stagnation_epochs ) : bool

Sets the number of cascade candidate stagnation epochs.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_candidate_stagnation_epochs

The number of cascade candidate stagnation epochs.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_cascade_candidate_stagnation_epochs() - Returns the number of cascade candidate stagnation epochs


Sets the max candidate epochs

  • « fann_set_cascade_candidate_stagnation_epochs
  • fann_set_cascade_max_out_epochs »
  • PHP Manual
  • Fann Funktionen
  • Sets the max candidate epochs

fann_set_cascade_max_cand_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_max_cand_epochs — Sets the max candidate epochs

Beschreibung

fann_set_cascade_max_cand_epochs ( resource $ann , int $cascade_max_cand_epochs ) : bool

Sets the max candidate epochs.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_max_cand_epochs

The max candidate epochs.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_cascade_max_cand_epochs() - Returns the maximum candidate epochs


Sets the maximum out epochs

  • « fann_set_cascade_max_cand_epochs
  • fann_set_cascade_min_cand_epochs »
  • PHP Manual
  • Fann Funktionen
  • Sets the maximum out epochs

fann_set_cascade_max_out_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_max_out_epochs — Sets the maximum out epochs

Beschreibung

fann_set_cascade_max_out_epochs ( resource $ann , int $cascade_max_out_epochs ) : bool

Sets the maximum out epochs.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_max_out_epochs

The maximum out epochs.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_cascade_max_out_epochs() - Returns the maximum out epochs


Sets the min candidate epochs

  • « fann_set_cascade_max_out_epochs
  • fann_set_cascade_min_out_epochs »
  • PHP Manual
  • Fann Funktionen
  • Sets the min candidate epochs

fann_set_cascade_min_cand_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_min_cand_epochs — Sets the min candidate epochs

Beschreibung

fann_set_cascade_min_cand_epochs ( resource $ann , int $cascade_min_cand_epochs ) : bool

Sets the min candidate epochs.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_min_cand_epochs

The minimum candidate epochs.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_get_cascade_min_cand_epochs() - Returns the minimum candidate epochs


Sets the minimum out epochs

  • « fann_set_cascade_min_cand_epochs
  • fann_set_cascade_num_candidate_groups »
  • PHP Manual
  • Fann Funktionen
  • Sets the minimum out epochs

fann_set_cascade_min_out_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_min_out_epochs — Sets the minimum out epochs

Beschreibung

fann_set_cascade_min_out_epochs ( resource $ann , int $cascade_min_out_epochs ) : bool

Sets the minimum out epochs.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_min_out_epochs

The minimum out epochs.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_get_cascade_min_out_epochs() - Returns the minimum out epochs


Sets the number of candidate groups

  • « fann_set_cascade_min_out_epochs
  • fann_set_cascade_output_change_fraction »
  • PHP Manual
  • Fann Funktionen
  • Sets the number of candidate groups

fann_set_cascade_num_candidate_groups

(PECL fann >= 1.0.0)

fann_set_cascade_num_candidate_groups — Sets the number of candidate groups

Beschreibung

fann_set_cascade_num_candidate_groups ( resource $ann , int $cascade_num_candidate_groups ) : bool

Sets the number of candidate groups.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_num_candidate_groups

The number of candidate groups.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_cascade_num_candidate_groups() - Returns the number of candidate groups


Sets the cascade output change fraction

  • « fann_set_cascade_num_candidate_groups
  • fann_set_cascade_output_stagnation_epochs »
  • PHP Manual
  • Fann Funktionen
  • Sets the cascade output change fraction

fann_set_cascade_output_change_fraction

(PECL fann >= 1.0.0)

fann_set_cascade_output_change_fraction — Sets the cascade output change fraction

Beschreibung

fann_set_cascade_output_change_fraction ( resource $ann , float $cascade_output_change_fraction ) : bool

Sets the cascade output change fraction.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_output_change_fraction

The cascade output change fraction.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_cascade_output_change_fraction() - Returns the cascade output change fraction


Sets the number of cascade output stagnation epochs

  • « fann_set_cascade_output_change_fraction
  • fann_set_cascade_weight_multiplier »
  • PHP Manual
  • Fann Funktionen
  • Sets the number of cascade output stagnation epochs

fann_set_cascade_output_stagnation_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs

Beschreibung

fann_set_cascade_output_stagnation_epochs ( resource $ann , int $cascade_output_stagnation_epochs ) : bool

Sets the number of cascade output stagnation epochs.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_output_stagnation_epochs

The number of cascade output stagnation epochs.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_cascade_output_stagnation_epochs() - Returns the number of cascade output stagnation epochs


Sets the weight multiplier

  • « fann_set_cascade_output_stagnation_epochs
  • fann_set_error_log »
  • PHP Manual
  • Fann Funktionen
  • Sets the weight multiplier

fann_set_cascade_weight_multiplier

(PECL fann >= 1.0.0)

fann_set_cascade_weight_multiplier — Sets the weight multiplier

Beschreibung

fann_set_cascade_weight_multiplier ( resource $ann , float $cascade_weight_multiplier ) : bool

Sets the weight multiplier.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

cascade_weight_multiplier

The weight multiplier.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_cascade_weight_multiplier() - Returns the weight multiplier


Sets where the errors are logged to

  • « fann_set_cascade_weight_multiplier
  • fann_set_input_scaling_params »
  • PHP Manual
  • Fann Funktionen
  • Sets where the errors are logged to

fann_set_error_log

(PECL fann >= 1.0.0)

fann_set_error_log — Sets where the errors are logged to

Beschreibung

fann_set_error_log ( resource $errdat , string $log_file ) : void

Sets where the errors are logged to.

Parameter-Liste

errdat

Entweder eine Resource eines neuralen Netzwerks oder Resource mit Trainingsdaten.

log_file

The log file path.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Calculate input scaling parameters for future use based on training data

  • « fann_set_error_log
  • fann_set_learning_momentum »
  • PHP Manual
  • Fann Funktionen
  • Calculate input scaling parameters for future use based on training data

fann_set_input_scaling_params

(PECL fann >= 1.0.0)

fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data

Beschreibung

fann_set_input_scaling_params ( resource $ann , resource $train_data , float $new_input_min , float $new_input_max ) : bool

Calculate input scaling parameters for future use based on training data.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

train_data

Resource für Trainingsdaten eines neuralen Netzwerks.

new_input_min

The desired lower bound in input data after scaling (not strictly followed)

new_input_max

The desired upper bound in input data after scaling (not strictly followed)

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_set_output_scaling_params() - Calculate output scaling parameters for future use based on training data


Sets the learning momentum

  • « fann_set_input_scaling_params
  • fann_set_learning_rate »
  • PHP Manual
  • Fann Funktionen
  • Sets the learning momentum

fann_set_learning_momentum

(PECL fann >= 1.0.0)

fann_set_learning_momentum — Sets the learning momentum

Beschreibung

fann_set_learning_momentum ( resource $ann , float $learning_momentum ) : bool

Sets the learning momentum.

More info available in fann_get_learning_momentum().

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

learning_momentum

The learning momentum.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_learning_momentum() - Returns the learning momentum
  • fann_set_training_algorithm() - Sets the training algorithm


Sets the learning rate

  • « fann_set_learning_momentum
  • fann_set_output_scaling_params »
  • PHP Manual
  • Fann Funktionen
  • Sets the learning rate

fann_set_learning_rate

(PECL fann >= 1.0.0)

fann_set_learning_rate — Sets the learning rate

Beschreibung

fann_set_learning_rate ( resource $ann , float $learning_rate ) : bool

Sets the learning rate.

More info available in fann_get_learning_rate().

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

learning_rate

The learning rate.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_learning_rate() - Returns the learning rate
  • fann_set_training_algorithm() - Sets the training algorithm


Calculate output scaling parameters for future use based on training data

  • « fann_set_learning_rate
  • fann_set_quickprop_decay »
  • PHP Manual
  • Fann Funktionen
  • Calculate output scaling parameters for future use based on training data

fann_set_output_scaling_params

(PECL fann >= 1.0.0)

fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data

Beschreibung

fann_set_output_scaling_params ( resource $ann , resource $train_data , float $new_output_min , float $new_output_max ) : bool

Calculate output scaling parameters for future use based on training data.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

train_data

Resource für Trainingsdaten eines neuralen Netzwerks.

new_output_min

The desired lower bound in output data after scaling (not strictly followed)

new_output_max

The desired upper bound in output data after scaling (not strictly followed)

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_set_input_scaling_params() - Calculate input scaling parameters for future use based on training data


Sets the quickprop decay factor

  • « fann_set_output_scaling_params
  • fann_set_quickprop_mu »
  • PHP Manual
  • Fann Funktionen
  • Sets the quickprop decay factor

fann_set_quickprop_decay

(PECL fann >= 1.0.0)

fann_set_quickprop_decay — Sets the quickprop decay factor

Beschreibung

fann_set_quickprop_decay ( resource $ann , float $quickprop_decay ) : bool

Sets the quickprop decay factor.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

quickprop_decay

The quickprop decay factor.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_quickprop_decay() - Returns the decay which is a factor that weights should decrease in each iteration during quickprop training


Sets the quickprop mu factor

  • « fann_set_quickprop_decay
  • fann_set_rprop_decrease_factor »
  • PHP Manual
  • Fann Funktionen
  • Sets the quickprop mu factor

fann_set_quickprop_mu

(PECL fann >= 1.0.0)

fann_set_quickprop_mu — Sets the quickprop mu factor

Beschreibung

fann_set_quickprop_mu ( resource $ann , float $quickprop_mu ) : bool

Sets the quickprop mu factor.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

quickprop_mu

The mu factor.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_quickprop_mu() - Returns the mu factor


Sets the decrease factor used during RPROP training

  • « fann_set_quickprop_mu
  • fann_set_rprop_delta_max »
  • PHP Manual
  • Fann Funktionen
  • Sets the decrease factor used during RPROP training

fann_set_rprop_decrease_factor

(PECL fann >= 1.0.0)

fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training

Beschreibung

fann_set_rprop_decrease_factor ( resource $ann , float $rprop_decrease_factor ) : bool

Sets the decrease factor used during RPROP training.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

rprop_decrease_factor

The decrease factor.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_rprop_decrease_factor() - Returns the increase factor used during RPROP training


Sets the maximum step-size

  • « fann_set_rprop_decrease_factor
  • fann_set_rprop_delta_min »
  • PHP Manual
  • Fann Funktionen
  • Sets the maximum step-size

fann_set_rprop_delta_max

(PECL fann >= 1.0.0)

fann_set_rprop_delta_max — Sets the maximum step-size

Beschreibung

fann_set_rprop_delta_max ( resource $ann , float $rprop_delta_max ) : bool

The maximum step-size is a positive number determining how large the maximum step-size may be.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

rprop_delta_max

The maximum step-size.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_rprop_delta_max() - Returns the maximum step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size


Sets the minimum step-size

  • « fann_set_rprop_delta_max
  • fann_set_rprop_delta_zero »
  • PHP Manual
  • Fann Funktionen
  • Sets the minimum step-size

fann_set_rprop_delta_min

(PECL fann >= 1.0.0)

fann_set_rprop_delta_min — Sets the minimum step-size

Beschreibung

fann_set_rprop_delta_min ( resource $ann , float $rprop_delta_min ) : bool

The minimum step-size is a small positive number determining how small the minimum step-size may be.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

rprop_delta_min

The minimum step-size.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_rprop_delta_min() - Returns the minimum step-size


Sets the initial step-size

  • « fann_set_rprop_delta_min
  • fann_set_rprop_increase_factor »
  • PHP Manual
  • Fann Funktionen
  • Sets the initial step-size

fann_set_rprop_delta_zero

(PECL fann >= 1.0.0)

fann_set_rprop_delta_zero — Sets the initial step-size

Beschreibung

fann_set_rprop_delta_zero ( resource $ann , float $rprop_delta_zero ) : bool

The initial step-size is a positive number determining the initial step size.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

rprop_delta_zero

The initial step-size.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_rprop_delta_zero() - Returns the initial step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size
  • fann_get_rprop_delta_max() - Returns the maximum step-size


Sets the increase factor used during RPROP training

  • « fann_set_rprop_delta_zero
  • fann_set_sarprop_step_error_shift »
  • PHP Manual
  • Fann Funktionen
  • Sets the increase factor used during RPROP training

fann_set_rprop_increase_factor

(PECL fann >= 1.0.0)

fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training

Beschreibung

fann_set_rprop_increase_factor ( resource $ann , float $rprop_increase_factor ) : bool

Sets the increase factor used during RPROP training.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

rprop_increase_factor

The increase factor.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_rprop_increase_factor() - Returns the increase factor used during RPROP training


Sets the sarprop step error shift

  • « fann_set_rprop_increase_factor
  • fann_set_sarprop_step_error_threshold_factor »
  • PHP Manual
  • Fann Funktionen
  • Sets the sarprop step error shift

fann_set_sarprop_step_error_shift

(PECL fann >= 1.0.0)

fann_set_sarprop_step_error_shift — Sets the sarprop step error shift

Beschreibung

fann_set_sarprop_step_error_shift ( resource $ann , float $sarprop_step_error_shift ) : bool

Sets the sarprop step error shift.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

sarprop_step_error_shift

The sarprop step error shift.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_get_sarprop_step_error_shift() - Returns the sarprop step error shift


Sets the sarprop step error threshold factor

  • « fann_set_sarprop_step_error_shift
  • fann_set_sarprop_temperature »
  • PHP Manual
  • Fann Funktionen
  • Sets the sarprop step error threshold factor

fann_set_sarprop_step_error_threshold_factor

(PECL fann >= 1.0.0)

fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor

Beschreibung

fann_set_sarprop_step_error_threshold_factor ( resource $ann , float $sarprop_step_error_threshold_factor ) : bool

Sets the sarprop step error threshold factor.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

sarprop_step_error_threshold_factor

The sarprop step error threshold factor.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_get_sarprop_step_error_threshold_factor() - Returns the sarprop step error threshold factor


Sets the sarprop temperature

  • « fann_set_sarprop_step_error_threshold_factor
  • fann_set_sarprop_weight_decay_shift »
  • PHP Manual
  • Fann Funktionen
  • Sets the sarprop temperature

fann_set_sarprop_temperature

(PECL fann >= 1.0.0)

fann_set_sarprop_temperature — Sets the sarprop temperature

Beschreibung

fann_set_sarprop_temperature ( resource $ann , float $sarprop_temperature ) : bool

Sets the sarprop temperature.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

sarprop_temperature

The sarprop temperature.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_get_sarprop_temperature() - Returns the sarprop temperature


Sets the sarprop weight decay shift

  • « fann_set_sarprop_temperature
  • fann_set_scaling_params »
  • PHP Manual
  • Fann Funktionen
  • Sets the sarprop weight decay shift

fann_set_sarprop_weight_decay_shift

(PECL fann >= 1.0.0)

fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift

Beschreibung

fann_set_sarprop_weight_decay_shift ( resource $ann , float $sarprop_weight_decay_shift ) : bool

Sets the sarprop weight decay shift.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

sarprop_weight_decay_shift

The sarprop weight decay shift.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Anmerkungen

Hinweis:

Diese Funktion is nur verfügbar, wenn die fann Extension mit libfann >= 2.2 kompiliert wurde.

Siehe auch

  • fann_get_sarprop_weight_decay_shift() - Returns the sarprop weight decay shift


Calculate input and output scaling parameters for future use based on training data

  • « fann_set_sarprop_weight_decay_shift
  • fann_set_train_error_function »
  • PHP Manual
  • Fann Funktionen
  • Calculate input and output scaling parameters for future use based on training data

fann_set_scaling_params

(PECL fann >= 1.0.0)

fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data

Beschreibung

fann_set_scaling_params ( resource $ann , resource $train_data , float $new_input_min , float $new_input_max , float $new_output_min , float $new_output_max ) : bool

Calculate input and output scaling parameters for future use based on training data.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

train_data

Resource für Trainingsdaten eines neuralen Netzwerks.

new_input_min

The desired lower bound in input data after scaling (not strictly followed)

new_input_max

The desired upper bound in input data after scaling (not strictly followed)

new_output_min

The desired lower bound in output data after scaling (not strictly followed)

new_output_max

The desired upper bound in output data after scaling (not strictly followed)

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_set_input_scaling_params() - Calculate input scaling parameters for future use based on training data
  • fann_set_output_scaling_params() - Calculate output scaling parameters for future use based on training data


Sets the error function used during training

  • « fann_set_scaling_params
  • fann_set_train_stop_function »
  • PHP Manual
  • Fann Funktionen
  • Sets the error function used during training

fann_set_train_error_function

(PECL fann >= 1.0.0)

fann_set_train_error_function — Sets the error function used during training

Beschreibung

fann_set_train_error_function ( resource $ann , int $error_function ) : bool

Sets the error function used during training.

The error functions are described further in error functions constants.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

error_function

The error function constant

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_train_error_function() - Returns the error function used during training


Sets the stop function used during training

  • « fann_set_train_error_function
  • fann_set_training_algorithm »
  • PHP Manual
  • Fann Funktionen
  • Sets the stop function used during training

fann_set_train_stop_function

(PECL fann >= 1.0.0)

fann_set_train_stop_function — Sets the stop function used during training

Beschreibung

fann_set_train_stop_function ( resource $ann , int $stop_function ) : bool

Sets the stop function used during training.

The stop functions are described further in stop functions constants.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

stop_function

The stop function constant.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_train_stop_function() - Returns the stop function used during training


Sets the training algorithm

  • « fann_set_train_stop_function
  • fann_set_weight_array »
  • PHP Manual
  • Fann Funktionen
  • Sets the training algorithm

fann_set_training_algorithm

(PECL fann >= 1.0.0)

fann_set_training_algorithm — Sets the training algorithm

Beschreibung

fann_set_training_algorithm ( resource $ann , int $training_algorithm ) : bool

Sets the training algorithm.

More info available in fann_get_training_algorithm().

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

training_algorithm

Training algorithm constant

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_get_training_algorithm() - Returns the training algorithm


Set connections in the network

  • « fann_set_training_algorithm
  • fann_set_weight »
  • PHP Manual
  • Fann Funktionen
  • Set connections in the network

fann_set_weight_array

(PECL fann >= 1.0.0)

fann_set_weight_array — Set connections in the network

Beschreibung

fann_set_weight_array ( resource $ann , array $connections ) : bool

Set connections in the network.

Only the weights can be changed, connections and weights are ignored if they do not already exist in the network.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

connections

An array of FANNConnection objects

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.


Set a connection in the network

  • « fann_set_weight_array
  • fann_shuffle_train_data »
  • PHP Manual
  • Fann Funktionen
  • Set a connection in the network

fann_set_weight

(PECL fann >= 1.0.0)

fann_set_weight — Set a connection in the network

Beschreibung

fann_set_weight ( resource $ann , int $from_neuron , int $to_neuron , float $weight ) : bool

Set a connections in the network.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

from_neuron

The neuron where the connection starts

to_neuron

The neuron where the connection ends

weight

Connection weight

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.


Shuffles training data, randomizing the order

  • « fann_set_weight
  • fann_subset_train_data »
  • PHP Manual
  • Fann Funktionen
  • Shuffles training data, randomizing the order

fann_shuffle_train_data

(PECL fann >= 1.0.0)

fann_shuffle_train_data — Shuffles training data, randomizing the order

Beschreibung

fann_shuffle_train_data ( resource $train_data ) : bool

Shuffles training data, randomizing the order. This is recommended for incremental training, while it have no influence during batch training.

Parameter-Liste

train_data

Resource für Trainingsdaten eines neuralen Netzwerks.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.


Returns an copy of a subset of the train data

  • « fann_shuffle_train_data
  • fann_test_data »
  • PHP Manual
  • Fann Funktionen
  • Returns an copy of a subset of the train data

fann_subset_train_data

(PECL fann >= 1.0.0)

fann_subset_train_data — Returns an copy of a subset of the train data

Beschreibung

fann_subset_train_data ( resource $data , int $pos , int $length ) : resource

Returns an copy of a subset of the train data resource, starting at position pos and length elements forward.

The fann_subset_train_data(train_data, 0, fann_length_train_data(train_data)) do the same as fann_duplicate_train_data()

Parameter-Liste

data

Resource für Trainingsdaten eines neuralen Netzwerks.

pos

Starting position.

length

The number of copied elements.

Rückgabewerte

Gibt bei Erfolg eine Resource mit Trainingsdaten zurück, ansonsten false im Fehlerfall.

Siehe auch

  • fann_duplicate_train_data() - Returns an exact copy of a fann train data


Test a set of training data and calculates the MSE for the training data

  • « fann_subset_train_data
  • fann_test »
  • PHP Manual
  • Fann Funktionen
  • Test a set of training data and calculates the MSE for the training data

fann_test_data

(PECL fann >= 1.0.0)

fann_test_data — Test a set of training data and calculates the MSE for the training data

Beschreibung

fann_test_data ( resource $ann , resource $data ) : float

Test a set of training data and calculates the MSE for the training data.

This function updates the MSE and the bit fail values.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

data

Resource für Trainingsdaten eines neuralen Netzwerks.

Rückgabewerte

The updated MSE, or false on error.

Siehe auch

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_training_algorithm() - Sets the training algorithm


Test with a set of inputs, and a set of desired outputs

  • « fann_test_data
  • fann_train_epoch »
  • PHP Manual
  • Fann Funktionen
  • Test with a set of inputs, and a set of desired outputs

fann_test

(PECL fann >= 1.0.0)

fann_test — Test with a set of inputs, and a set of desired outputs

Beschreibung

fann_test ( resource $ann , array $input , array $desired_output ) : array

Test with a set of inputs, and a set of desired outputs. This operation updates the mean square error, but does not change the network in any way.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

input

An array of inputs. This array must be exactly fann_get_num_input() long.

desired_output

An array of desired outputs. This array must be exactly fann_get_num_output() long.

Rückgabewerte

Returns test outputs on success, or false on error.

Siehe auch

  • fann_test_data() - Test a set of training data and calculates the MSE for the training data
  • fann_train() - Train one iteration with a set of inputs, and a set of desired outputs
  • fann_get_num_input() - Get the number of input neurons
  • fann_get_num_output() - Get the number of output neurons


Train one epoch with a set of training data

  • « fann_test
  • fann_train_on_data »
  • PHP Manual
  • Fann Funktionen
  • Train one epoch with a set of training data

fann_train_epoch

(PECL fann >= 1.0.0)

fann_train_epoch — Train one epoch with a set of training data

Beschreibung

fann_train_epoch ( resource $ann , resource $data ) : float

Train one epoch with the training data stored in data. One epoch is where all of the training data is considered exactly once.

This function returns the MSE error as it is calculated either before or during the actual training. This is not the actual MSE after the training epoch, but since calculating this will require to go through the entire training set once more. It is more than adequate to use this value during training.

The training algorithm used by this function is chosen by fann_set_training_algorithm() function.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

data

Resource für Trainingsdaten eines neuralen Netzwerks.

Rückgabewerte

The MSE, or false on error.

Siehe auch

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_test_data() - Test a set of training data and calculates the MSE for the training data
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_training_algorithm() - Sets the training algorithm


Trains on an entire dataset for a period of time

  • « fann_train_epoch
  • fann_train_on_file »
  • PHP Manual
  • Fann Funktionen
  • Trains on an entire dataset for a period of time

fann_train_on_data

(PECL fann >= 1.0.0)

fann_train_on_data — Trains on an entire dataset for a period of time

Beschreibung

fann_train_on_data ( resource $ann , resource $data , int $max_epochs , int $epochs_between_reports , float $desired_error ) : bool

Trains on an entire dataset for a period of time.

This training uses the training algorithm chosen by fann_set_training_algorithm() and the parameters set for these training algorithms.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

data

Resource für Trainingsdaten eines neuralen Netzwerks.

max_epochs

The maximum number of epochs the training should continue

epochs_between_reports

The number of epochs between calling a callback function. A value of zero means that user function is not called.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on the stop function chosen by fann_set_train_stop_function()

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_train_on_file() - Trains on an entire dataset, which is read from file, for a period of time
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_train_stop_function() - Sets the stop function used during training
  • fann_set_training_algorithm() - Sets the training algorithm
  • fann_set_callback() - Sets the callback function for use during training


Trains on an entire dataset, which is read from file, for a period of time

  • « fann_train_on_data
  • fann_train »
  • PHP Manual
  • Fann Funktionen
  • Trains on an entire dataset, which is read from file, for a period of time

fann_train_on_file

(PECL fann >= 1.0.0)

fann_train_on_file — Trains on an entire dataset, which is read from file, for a period of time

Beschreibung

fann_train_on_file ( resource $ann , string $filename , int $max_epochs , int $epochs_between_reports , float $desired_error ) : bool

Trains on an entire dataset, which is read from file, for a period of time.

This training uses the training algorithm chosen by fann_set_training_algorithm() and the parameters set for these training algorithms.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

filename

The file containing train data

max_epochs

The maximum number of epochs the training should continue

epochs_between_reports

The number of epochs between calling a user function. A value of zero means that user function is not called.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on the stop function chosen by fann_set_train_stop_function()

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_train_stop_function() - Sets the stop function used during training
  • fann_set_training_algorithm() - Sets the training algorithm
  • fann_set_callback() - Sets the callback function for use during training


Train one iteration with a set of inputs, and a set of desired outputs

  • « fann_train_on_file
  • FANNConnection »
  • PHP Manual
  • Fann Funktionen
  • Train one iteration with a set of inputs, and a set of desired outputs

fann_train

(PECL fann >= 1.0.0)

fann_train — Train one iteration with a set of inputs, and a set of desired outputs

Beschreibung

fann_train ( resource $ann , array $input , array $desired_output ) : bool

Train one iteration with a set of inputs, and a set of desired outputs. This training is always incremental training, since only one pattern is presented.

Parameter-Liste

ann

Resource eines neuralen Netzwerks.

input

An array of inputs. This array must be exactly fann_get_num_input() long.

desired_output

An array of desired outputs. This array must be exactly fann_get_num_output() long.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_num_input() - Get the number of input neurons
  • fann_get_num_output() - Get the number of output neurons


The FANNConnection class

(No version information available, might only be in Git)

Einführung

FANNConnection is used for the neural network connection. The objects of this class are used in fann_get_connection_array() and fann_set_weight_array().

Klassenbeschreibung

FANNConnection {
/* Eigenschaften */
public $from_neuron ;
public $to_neuron ;
public $weight ;
/* Methoden */
public __construct ( int $from_neuron , int $to_neuron , float $weight )
public getFromNeuron ( ) : int
public getToNeuron ( ) : int
public getWeight ( ) : void
public setWeight ( float $weight ) : void
}

Eigenschaften

from_neuron

The neuron where the connection starts.

to_neuron

The neuron where the connection ends.

weight

The weight of the connection.

Inhaltsverzeichnis

  • FANNConnection::__construct — The connection constructor
  • FANNConnection::getFromNeuron — Returns the postions of starting neuron
  • FANNConnection::getToNeuron — Returns the postions of terminating neuron
  • FANNConnection::getWeight — Returns the connection weight
  • FANNConnection::setWeight — Sets the connections weight


The connection constructor

  • « FANNConnection
  • FANNConnection::getFromNeuron »
  • PHP Manual
  • FANNConnection
  • The connection constructor

FANNConnection::__construct

(PECL fann >= 1.0.0)

FANNConnection::__construct — The connection constructor

Beschreibung

public FANNConnection::__construct ( int $from_neuron , int $to_neuron , float $weight )

Create new connection and initialize its params. After creating the connection, only weight can be changed.

Parameter-Liste

from_neuron

The postion number of starting neuron.

to_neuron

The postion number of terminating neuron.

weight

The connection weight value.


Returns the postions of starting neuron

  • « FANNConnection::__construct
  • FANNConnection::getToNeuron »
  • PHP Manual
  • FANNConnection
  • Returns the postions of starting neuron

FANNConnection::getFromNeuron

(PECL fann >= 1.0.0)

FANNConnection::getFromNeuron — Returns the postions of starting neuron

Beschreibung

public FANNConnection::getFromNeuron ( ) : int

Returns the postions of starting neuron.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The postions of starting neuron.


Returns the postions of terminating neuron

  • « FANNConnection::getFromNeuron
  • FANNConnection::getWeight »
  • PHP Manual
  • FANNConnection
  • Returns the postions of terminating neuron

FANNConnection::getToNeuron

(PECL fann >= 1.0.0)

FANNConnection::getToNeuron — Returns the postions of terminating neuron

Beschreibung

public FANNConnection::getToNeuron ( ) : int

Returns the positions of terminating neuron.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The postions of terminating neuron.


Returns the connection weight

  • « FANNConnection::getToNeuron
  • FANNConnection::setWeight »
  • PHP Manual
  • FANNConnection
  • Returns the connection weight

FANNConnection::getWeight

(PECL fann >= 1.0.0)

FANNConnection::getWeight — Returns the connection weight

Beschreibung

public FANNConnection::getWeight ( ) : void

Returns the connection weight.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The connection weight.


Sets the connections weight

  • « FANNConnection::getWeight
  • JSON »
  • PHP Manual
  • FANNConnection
  • Sets the connections weight

FANNConnection::setWeight

(PECL fann >= 1.0.0)

FANNConnection::setWeight — Sets the connections weight

Beschreibung

public FANNConnection::setWeight ( float $weight ) : void

Sets the connection weight.

This method is different than fann_set_weight(). It does not update the weight value in the network. The network value is updated only after calling fann_set_weight_array().

Parameter-Liste

weight

The connection weight.

Rückgabewerte

Es wird kein Wert zurückgegeben.


JavaScript-Objekt-Notation

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • JsonException — The JsonException class
  • JsonSerializable — Die JsonSerializable Schnittstelle
    • JsonSerializable::jsonSerialize — Angegebene Daten, die in JSON serialisiert werden sollen
  • JSON-Funktionen
    • json_decode — Dekodiert eine JSON-Zeichenkette
    • json_encode — Gibt die JSON-Repräsentation eines Wertes zurück
    • json_last_error_msg — Gibt die Fehlermeldung des letzten Aufrufs von json_encode oder json_decode() zurück
    • json_last_error — Gibt den letzten aufgetretenen Fehler zurück


Einführung

Diese Erweiterung implementiert das » JavaScript-Objekt-Notation (JSON)-Datenaustauschformat. Die Dekodierung in PHP 5 wird von einem Parser übernommen, der auf dem JSON_checker von Douglas Crockford basiert. PHP 7 enthält einen vollständig neuen und verbesserten Parser, der eigens für PHP geschrieben wurde, und unter der PHP-Lizenz lizensiert ist.

Hinweis:

PHP implementiert eine Obermenge von der ursprünglich in » RFC 4627 spezifizierten Version von JSON. Es kodiert und dekodiert auch skalare Typen und null. RFC 4627 unterstützt diese Werte nur wenn sie innerhalb eines Arrays oder Objektes enthalten sind.

Obwohl diese Obermenge konsistent zur erweiterten Definition von "JSON-Text" gemäß dem neueren » RFC 7159 (welcher RFC 4627 ersetzen soll) und ECMA-404 ist, kann dies zu Kompatibilitätsproblemen mit älteren JSON-Parsern führen, wenn diese sich strikt an RFC 4627 halten wenn skalare Werte kodiert werden.


Installation

Seit PHP 5.2.0 ist die JSON-Erweiterung standardmäßig mit PHP gebündelt und kompiliert.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/json


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Die folgenden Konstanten geben den Typ des Fehlers an, der von json_last_error() zurückgegeben, oder der als code einer JsonException gespeichert wurde.

JSON_ERROR_NONE (Integer)
Kein Fehler aufgetreten. Verfügbar von PHP 5.3.0 an.
JSON_ERROR_DEPTH (Integer)
Die maximale Stacktiefe wurde überschritten. Verfügbar von PHP 5.3.0 an.
JSON_ERROR_STATE_MISMATCH (Integer)
Tritt ein bei Unterlauf oder State-Mismatch. Verfügbar von PHP 5.3.0 an.
JSON_ERROR_CTRL_CHAR (Integer)
Steuerzeichenfehler, möglicherweise unkorrekt kodiert. Verfügbar von PHP 5.3.0 an.
JSON_ERROR_SYNTAX (Integer)
Syntaxfehler. Verfügbar von PHP 5.3.0 an.
JSON_ERROR_UTF8 (Integer)
Ungültige UTF-8 Zeichen, eventuall falsch kodiert. Verfügbar von PHP 5.3.3 an.
JSON_ERROR_RECURSION (Integer)
Das an json_encode() übergebene Objekt oder Array enthält rekursive Referenzen und kann nicht kodiert werden. Wenn die JSON_PARTIAL_OUTPUT_ON_ERROR Option übergeben wurde, wird null an Stelle der rekursiven Referenz kodiert. Verfügbar von PHP 5.5.0 an.
JSON_ERROR_INF_OR_NAN (Integer)
Der an json_encode() übergebene Wert enthält entweder NAN oder INF. Wenn die JSON_PARTIAL_OUTPUT_ON_ERROR Option übergeben wurde, wird 0 an Stelle dieser speziellen Zahlen kodiert. Verfügbar von PHP 5.5.0 an.
JSON_ERROR_UNSUPPORTED_TYPE (Integer)
Der an json_encode() übergebene Wert enthält einen nicht unterstützten Typ, beispielweise Ressource. Wenn die JSON_PARTIAL_OUTPUT_ON_ERROR Option übergeben wurde, wird null an Stelle des nicht unterstützten Wertes kodiert. Verfügbar von PHP 5.5.0 an.
JSON_ERROR_INVALID_PROPERTY_NAME (Integer)
Ein Schlüssel beginnend mit einem \u0000 Zeichen war in der Zeichenkette enthalten, die an json_decode() übergeben wurde, wenn ein JSON-Objekt in ein PHP-Objekt konvertiert werden sollte. Verfügbar von PHP 7.0.0 an.
JSON_ERROR_UTF16 (Integer)
Ein einzelnes, alleinstehendes UTF-16-Surrogat war im JSON-String enthalten, der an json_decode() übergeben wurde. Verfügbar von PHP 7.0.0 an.

Die folgenden Konstanten können kombiniert (verodert) werden, um Optionen für json_decode() zu bilden.

JSON_BIGINT_AS_STRING (Integer)
Dekodiert große Zahlen als ihre originale Zeichenkette. Verfügbar von PHP 5.4.0 an.
JSON_OBJECT_AS_ARRAY (Integer)
Dekodiert JSON-Objekte als PHP-Arrays. Diese Option kann automatisch angefügt werden, indem json_decode() mit true als zweitem Parameter aufgerufen wird. Verfügbar von PHP 5.4.0 an.

Die folgenden Konstanten können kombiniert (verodert) werden, um Optionen für json_encode() zu bilden.

JSON_HEX_TAG (Integer)
Alle < und > werden zu \u003C und \u003E konvertiert. Verfügbar von PHP 5.3.0 an.
JSON_HEX_AMP (Integer)
Alle &s werden zu \u0026 konvertiert. Verfügbar von PHP 5.3.0 an.
JSON_HEX_APOS (Integer)
Alle ' werden zu \u0027 konvertiert. Verfügbar von PHP 5.3.0 an.
JSON_HEX_QUOT (Integer)
Alle " werden zu \u0022 konvertiert. Verfügbar von PHP 5.3.0 an.
JSON_FORCE_OBJECT (Integer)
Gibt ein Objekt statt einem Array aus, wenn ein nichtassoziatives Array verwendet wird. Besonders nützlich, wenn der Empfänger der Ausgabe ein Objekt erwartet und das Array leer ist. Verfügbar von PHP 5.3.0 an.
JSON_NUMERIC_CHECK (Integer)
Kodiert numerische Zeichenketten als Zahlen. Verfügbar von PHP 5.3.3 an.
JSON_PRETTY_PRINT (Integer)
Nutzt Whitespace um die zurückgegebenen Daten zu formatieren. Verfügbar von PHP 5.4.0 an.
JSON_UNESCAPED_SLASHES (Integer)
Escape / nicht. Verfügbar von PHP 5.4.0 an.
JSON_UNESCAPED_UNICODE (Integer)
Kodiere Unicode Zeichen, welche aus mehreren Bytes bestehen, direkt (standardmäßig werden \uXXXX Escapes genutzt). Verfügbar von PHP 5.4.0 an.
JSON_PARTIAL_OUTPUT_ON_ERROR (Integer)
Ersetze einige unkodierbare Werte anstatt fehlzuschlagen. Verfügbar von PHP 5.5.0 an.
JSON_PRESERVE_ZERO_FRACTION (Integer)
Stellt sicher, dass Float Werte immer als Fließkomma-Werte kodiert werden. Verfügbar von PHP 5.6.6 an.
JSON_UNESCAPED_LINE_TERMINATORS (Integer)
Die Zeilentrenner bleiben unmaskiert, wenn JSON_UNESCAPE_UNICODE übergeben wird. Das ist das gleiche Verhalten wie vor PHP 7.1 ohne diese Konstante. Verfügbar von PHP 7.1.0 an.

Die folgenden Konstanten können kombiniert (verodert) werden, um Optionen für json_decode() und json_encode() zu bilden.

JSON_INVALID_UTF8_IGNORE (Integer)
Ignoriert ungültige UTF-8 Zeichen. Verfügbar von PHP 7.2.0 an.
JSON_INVALID_UTF8_SUBSTITUTE (Integer)
Konvertiert ungültige UTF-8 Zeichen in \0xfffd (Unicode Zeichen 'REPLACEMENT CHARACTER') Verfügbar von PHP 7.2.0 an.
JSON_THROW_ON_ERROR (Integer)
Wirft im Fehlerfall eine JsonException anstatt den globalen Fehlerstatus zu setzen, der mit json_last_error() und json_last_error_msg() abgerufen werden kann. JSON_PARTIAL_OUTPUT_ON_ERROR hat Vorrang vor JSON_THROW_ON_ERROR. Verfügbar von PHP 7.3.0 an.


The JsonException class

(PHP 7 >= 7.3.0, PHP 8)

Einführung

Exception thrown if JSON_THROW_ON_ERROR option is
set for json_encode() or
json_decode(). code contains the error
type, for possible values see json_last_error().

Klassenbeschreibung

JsonException extends Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


Die JsonSerializable Schnittstelle

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Einführung

Objekte, die JsonSerializable implementieren, können ihre JSON-Darstellung verändern, wenn sie mit json_encode() codiert wurden.

Interface-Übersicht

JsonSerializable {
/* Methoden */
abstract public jsonSerialize ( ) : mixed
}

Inhaltsverzeichnis

  • JsonSerializable::jsonSerialize — Angegebene Daten, die in JSON serialisiert werden sollen


Angegebene Daten, die in JSON serialisiert werden sollen

  • « JsonSerializable
  • JSON-Funktionen »
  • PHP Manual
  • JsonSerializable
  • Angegebene Daten, die in JSON serialisiert werden sollen

JsonSerializable::jsonSerialize

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

JsonSerializable::jsonSerialize — Angegebene Daten, die in JSON serialisiert werden sollen

Beschreibung

abstract public JsonSerializable::jsonSerialize ( ) : mixed

Serialisiert das Objekt zu einem Wert, der nativ von json_encode() serialisiert werden kann.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt Daten zurück, die von json_encode() serialisiert werden können, welche ein Wert eines beliebigen Typs, der nicht Ressource ist.

Beispiele

Beispiel #1 JsonSerializable::jsonSerialize() Beispiel, das ein Array zurückgibt.

<?php
class ArrayValue implements JsonSerializable {
    public function __construct(array $array) {
        $this->array = $array;
    }

    public function jsonSerialize() {
        return $this->array;
    }
}

$array = [1, 2, 3];
echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

[
    1,
    2,
    3
]

Beispiel #2 JsonSerializable::jsonSerialize() Beispiel, das ein assoziatives Array zurückgibt.

<?php
class ArrayValue implements JsonSerializable {
    public function __construct(array $array) {
        $this->array = $array;
    }

    public function jsonSerialize() {
        return $this->array;
    }
}

$array = ['foo' => 'bar', 'quux' => 'baz'];
echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

{
    "foo": "bar",
    "quux": "baz"
}

Beispiel #3 JsonSerializable::jsonSerialize() Beispiel, das einen Integer zurückgibt.

<?php
class IntegerValue implements JsonSerializable {
    public function __construct($number) {
        $this->number = (integer) $number;
    }

    public function jsonSerialize() {
        return $this->number;
    }
}

echo json_encode(new IntegerValue(1), JSON_PRETTY_PRINT);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1

Beispiel #4 JsonSerializable::jsonSerialize() Beispiel, das einen String zurückgibt

<?php
class StringValue implements JsonSerializable {
    public function __construct($string) {
        $this->string = (string) $string;
    }

    public function jsonSerialize() {
        return $this->string;
    }
}

echo json_encode(new StringValue('Hello!'), JSON_PRETTY_PRINT);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

"Hello!"


JSON-Funktionen

Inhaltsverzeichnis

  • json_decode — Dekodiert eine JSON-Zeichenkette
  • json_encode — Gibt die JSON-Repräsentation eines Wertes zurück
  • json_last_error_msg — Gibt die Fehlermeldung des letzten Aufrufs von json_encode oder json_decode() zurück
  • json_last_error — Gibt den letzten aufgetretenen Fehler zurück


Dekodiert eine JSON-Zeichenkette

  • « JSON-Funktionen
  • json_encode »
  • PHP Manual
  • JSON-Funktionen
  • Dekodiert eine JSON-Zeichenkette

json_decode

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL json >= 1.2.0)

json_decode — Dekodiert eine JSON-Zeichenkette

Beschreibung

json_decode ( string $json , bool $assoc = null , int $depth = 512 , int $options = 0 ) : mixed

Konvertiert eine JSON-kodierte Zeichenkette in eine PHP-Variable.

Parameter-Liste

json

Der zu dekodierende json-String (in UTF-8-Kodierung).

Diese Funktion arbeitet nur mit in UTF-8 kodierten Strings.

Hinweis:

PHP implementiert eine Obermenge von der ursprünglich in » RFC 4627 spezifizierten Version von JSON. Es kodiert und dekodiert auch skalare Typen und null. RFC 4627 unterstützt diese Werte nur wenn sie innerhalb eines Arrays oder Objektes enthalten sind.

Obwohl diese Obermenge konsistent zur erweiterten Definition von "JSON-Text" gemäß dem neueren » RFC 7159 (welcher RFC 4627 ersetzen soll) und ECMA-404 ist, kann dies zu Kompatibilitätsproblemen mit älteren JSON-Parsern führen, wenn diese sich strikt an RFC 4627 halten wenn skalare Werte kodiert werden.

assoc

Wenn true werden JSON-Objekte als assoziative Arrays zurückgegeben; Wenn false werden JSON-Objekte als Objekte zurückgegeben. Wenn null werden JSON-Objekte als assoziative Arrays oder Objekte zurückgegeben, abhängig davon ob JSON_OBJECT_AS_ARRAY in den options gesetzt ist.

depth

Benutzerspezifische Verschachtelungstiefe.

options

Bitmaske von JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR. Das Verhalten dieser Konstanten ist auf der Seite über die JSON Konstanten beschrieben.

Rückgabewerte

Gibt den Wert von json im passenden PHP-Typ zurück. Die Werte true, false und null werden entsprechend als true, false und null zurückgegeben. null wird zurückgegeben, wenn der Parameter json nicht dekodiert werden kann oder wenn die dekodierten Daten tiefer verschachtelt sind, als es der Parameter für Verschachtelungstiefe erlaubt.

Changelog

Version | Beschreibung
7.3.0 | JSON_THROW_ON_ERROR options wurde hinzugefügt.
7.2.0 | assoc ist nun nullbar.
7.2.0 | JSON_INVALID_UTF8_IGNORE, und JSON_INVALID_UTF8_SUBSTITUTE options wurden hinzugefügt.
7.1.0 | Ein leerer JSON-Schlüssel ("") kann als leere Objekt-Eigenschaft kodiert werden, anstatt dass ein Schlüssel mit dem Wert _empty_ verwendet wird.

Beispiele

Beispiel #1 json_decode()-Beispiele

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

Beispiel #2 Zugriff auf ungültige Objekteigenschaften

Auf Elemente von Objekten die Zeichen enthalten, welche gemäß den Namenskonventionen von PHP nicht gültig sind (z.B. der Bindestrich), kann durch ein Umschließen des Namens mit geschweiften Klammern und einfachen Anführungszeichen zugegriffen werden.

<?php

$json = '{"foo-bar": 12345}';

$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345

?>

Beispiel #3 Häufige Fehler bei der Verwendung von json_decode()

<?php

// die folgenden Zeichenketten sind gültiges JavaScript aber kein gültiges JSON

// der Name und der Wert müssen in doppelten Anführungszeichen eingeschlossen werden
// einfache Anführungszeichen sind ungültig
$bad_json = "{ 'bar': 'baz' }";
json_decode($bad_json); // null

// der Name muss in doppelten Anführungszeichen eingeschlossen werden
$bad_json = '{ bar: "baz" }';
json_decode($bad_json); // null

// nachfolgende Kommata sind nicht erlaubt
$bad_json = '{ bar: "baz", }';
json_decode($bad_json); // null

?>

Beispiel #4 Fehler bei der Verwendung von depth

<?php
// Daten kodieren
$json = json_encode(
    array(
        1 => array(
            'englisch' => array(
                'One',
                'January'
            ),
            'französisch' => array(
                'Une',
                'Janvier'
            )
        )
    )
);

// Errordefinitionen
$constants = get_defined_constants(true);
$json_errors = array();
foreach ($constants["json"] as $name => $value) {
    if (!strncmp($name, "JSON_ERROR_", 11)) {
        $json_errors[$value] = $name;
    }
}

// Zeige die Fehler für unterschiedliche Verschachtelungstiefen
foreach (range(4, 3, -1) as $depth) {
    var_dump(json_decode($json, true, $depth));
    echo 'Letzter Fehler: ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  [1]=>
  array(2) {
    ["English"]=>
    array(2) {
      [0]=>
      string(3) "One"
      [1]=>
      string(7) "January"
    }
    ["French"]=>
    array(2) {
      [0]=>
      string(3) "Une"
      [1]=>
      string(7) "Janvier"
    }
  }
}
Letzter Fehler : JSON_ERROR_NONE

NULL
Letzter Fehler : JSON_ERROR_DEPTH

Beispiel #5 json_decode() von großen Ganzzahlen

<?php
$json = '{"number": 12345678901234567890}';

var_dump(json_decode($json));
var_dump(json_decode($json, false, 512, JSON_BIGINT_AS_STRING));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(stdClass)#1 (1) {
  ["number"]=>
  float(1.2345678901235E+19)
}
object(stdClass)#1 (1) {
  ["number"]=>
  string(20) "12345678901234567890"
}

Anmerkungen

Hinweis:

Die JSON-Spezifikation ist nicht JavaScript, aber ein Subset davon.

Hinweis:

Tritt ein Dekodierungsfehler auf, kann json_last_error() verwendet werden, um die exakte Natur des Fehlers zu ermitteln.

Siehe auch

  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • json_last_error() - Gibt den letzten aufgetretenen Fehler zurück


Gibt die JSON-Repräsentation eines Wertes zurück

  • « json_decode
  • json_last_error_msg »
  • PHP Manual
  • JSON-Funktionen
  • Gibt die JSON-Repräsentation eines Wertes zurück

json_encode

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL json >= 1.2.0)

json_encode — Gibt die JSON-Repräsentation eines Wertes zurück

Beschreibung

json_encode ( mixed $value , int $options = 0 , int $depth = 512 ) : string

Gibt eine Zeichenkette zurück, die die JSON-Darstellung des übergebenen value beinhaltet.

Die Kodierung wird von den übergebenen options beeinflusst, und zusätzlich hängt die Kodierung von Float-Werten vom Wert von serialize_precision ab.

Parameter-Liste

value

Der zu kodierende value. Kann von jedem Typ außer Ressource sein.

Alle Strings müssen in UTF-8 kodiert sein-

Hinweis:

PHP implementiert eine Obermenge von der ursprünglich in » RFC 4627 spezifizierten Version von JSON. Es kodiert und dekodiert auch skalare Typen und null. RFC 4627 unterstützt diese Werte nur wenn sie innerhalb eines Arrays oder Objektes enthalten sind.

Obwohl diese Obermenge konsistent zur erweiterten Definition von "JSON-Text" gemäß dem neueren » RFC 7159 (welcher RFC 4627 ersetzen soll) und ECMA-404 ist, kann dies zu Kompatibilitätsproblemen mit älteren JSON-Parsern führen, wenn diese sich strikt an RFC 4627 halten wenn skalare Werte kodiert werden.

options

Bitmaske bestehend aus JSON_FORCE_OBJECT, JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_NUMERIC_CHECK, JSON_PARTIAL_OUTPUT_ON_ERROR, JSON_PRESERVE_ZERO_FRACTION, JSON_PRETTY_PRINT, JSON_UNESCAPED_LINE_TERMINATORS, JSON_UNESCAPED_SLASHES, JSON_UNESCAPED_UNICODE, JSON_THROW_ON_ERROR. Das Verhalten dieser Konstanten ist auf der Seite über die JSON Konstanten beschrieben.

depth

Setzt die maximale Tiefe. Muss größer sein als Null.

Rückgabewerte

Gibt einen JSON-kodierten String zurück oder Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
7.3.0 | JSON_THROW_ON_ERROR options wurde hinzugefügt.
7.2.0 | JSON_INVALID_UTF8_IGNORE, und JSON_INVALID_UTF8_SUBSTITUTE options wurden hinzugefügt.
7.1.0 | serialize_precision wird nun anstatt precision verwendet, wenn Double-Werte kodiert werden.

Beispiele

Beispiel #1 A json_encode() example

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

{"a":1,"b":2,"c":3,"d":4,"e":5}

Beispiel #2 Ein json_encode()-Beispiel, das den Einsatz einiger Optionen zeigt

<?php
$a = array('<foo>',"'bar'",'"baz"','&blong&', "\xc3\xa9");

echo "Normal: ",  json_encode($a), "\n";
echo "Tags: ",    json_encode($a, JSON_HEX_TAG), "\n";
echo "Apos: ",    json_encode($a, JSON_HEX_APOS), "\n";
echo "Quot: ",    json_encode($a, JSON_HEX_QUOT), "\n";
echo "Amp: ",     json_encode($a, JSON_HEX_AMP), "\n";
echo "Unicode: ", json_encode($a, JSON_UNESCAPED_UNICODE), "\n";
echo "All: ",     json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "\n\n";

$b = array();

echo "Ausgabe eines leeren Arrays als Array: ", json_encode($b), "\n";
echo "Ausgabe eines leeren Arrays als Objekt: ", json_encode($b, JSON_FORCE_OBJECT), "\n\n";

$c = array(array(1,2,3));

echo "Ausgabe eines nichtassoziativen Arrays als Array: ", json_encode($c), "\n";
echo "Ausgabe eines nichtassoziativen Arrays als Objekt: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n";

$d = array('foo' => 'bar', 'baz' => 'long');

echo "Assoziative Arrays werden immer als Objekt ausgegeben: ", json_encode($d), "\n";
echo "Assoziative Arrays werden immer als Objekt ausgegeben: ", json_encode($d, JSON_FORCE_OBJECT), "\n\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Normal: ["<foo>","'bar'","\"baz\"","&blong&","\u00e9"]
Tags: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"]
Apos: ["<foo>","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"]
Quot: ["<foo>","'bar'","\u0022baz\u0022","&blong&","\u00e9"]
Amp: ["<foo>","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]
Unicode: ["<foo>","'bar'","\"baz\"","&blong&","é"]
All: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","é"]

Ausgabe eines leeren Arrays als Array: []
Ausgabe eines leeren Arrays als Objekt: {}

Ausgabe eines nichtassoziativen Arrays als Array: [[1,2,3]]
Ausgabe eines nichtassoziativen Arrays als Objekt: {"0":{"0":1,"1":2,"2":3}}

Assoziative Arrays werden immer als Objekt ausgegeben: {"foo":"bar","baz":"long"}
Assoziative Arrays werden immer als Objekt ausgegeben: {"foo":"bar","baz":"long"}

Beispiel #3 JSON_NUMERIC_CHECK-Option-Beispiel

<?php
echo "Zeichenketten, die Zahlen repräsentieren, die automatisch in Zahlen gewandelt wurden".PHP_EOL;
$numbers = array('+123123', '-123123', '1.2e3', '0.00001');
var_dump(
 $numbers,
 json_encode($numbers, JSON_NUMERIC_CHECK)
);
echo "Zeichenketten, die unsachgemäß formatierte Zahlen enthalten".PHP_EOL;
$strings = array('+a33123456789', 'a123');
var_dump(
 $strings,
 json_encode($strings, JSON_NUMERIC_CHECK)
);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Zeichenketten, die Zahlen repräsentieren, die automatisch in Zahlen gewandelt wurden
array(4) {
  [0]=>
  string(7) "+123123"
  [1]=>
  string(7) "-123123"
  [2]=>
  string(5) "1.2e3"
  [3]=>
  string(7) "0.00001"
}
string(28) "[123123,-123123,1200,1.0e-5]"
Zeichenketten, die unsachgemäß formatierte Zahlen enthalten
array(2) {
  [0]=>
  string(13) "+a33123456789"
  [1]=>
  string(4) "a123"
}
string(24) "["+a33123456789","a123"]"

Beispiel #4 Beispiel für sequentielle und nicht sequentielle Arrays

<?php
echo "Sequentielles Array".PHP_EOL;
$sequential = array("foo", "bar", "baz", "blong");
var_dump(
 $sequential,
 json_encode($sequential)
);

echo PHP_EOL."Nicht sequentielles Array".PHP_EOL;
$nonsequential = array(1=>"foo", 2=>"bar", 3=>"baz", 4=>"blong");
var_dump(
 $nonsequential,
 json_encode($nonsequential)
);

echo PHP_EOL."Sequentielles Array mit einem entfernten Schlüssel".PHP_EOL;
unset($sequential[1]);
var_dump(
 $sequential,
 json_encode($sequential)
);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Sequentielles Array
array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"

Nicht sequentielles Array
array(4) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(3) "baz"
  [4]=>
  string(5) "blong"
}
string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"

Sequentielles Array mit einem entfernten Schlüssel
array(3) {
  [0]=>
  string(3) "foo"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"

Beispiel #5 JSON_PRESERVE_ZERO_FRACTION-Option-Beispiel

<?php
var_dump(json_encode(12.0, JSON_PRESERVE_ZERO_FRACTION));
var_dump(json_encode(12.0));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(4) "12.0"
string(2) "12"

Anmerkungen

Hinweis:

Falls ein Fehler beim kodieren auftritt, kann json_last_error() verwendet werden, um die genaue Ursache des Fehlers festzustellen.

Hinweis:

Wenn ein Array kodiert wird werden alle Schlüssel als Strings kodiert und für alle Schlüssel-Wert-Paare explizit angegeben, wenn die Schlüssel keine kontinuierliche aufsteigende Sequenz sind die bei 0 beginnt.

Hinweis:

Wie der Referenz JSON-Encoder gibt auch json_encode() einen einfachen Wert (also weder ein Objekt noch ein Array) aus, wenn ein String, Integer, Float oder Boolean als Eingabe für value übergeben wird. Während die meisten Decoder diese Werte als gültiges JSON akzeptieren könnte es einige geben die dies ablehnen, da die Spezifikationen in diesem Punkt mehrdeutig sind.

Um zusammenzufassen: Prüfen Sie immer, ob ihr JSON-Decoder die Ausgabe, die Sie mittels json_encode() erzeugen, verarbeiten kann.

Siehe auch

  • JsonSerializable
  • json_decode() - Dekodiert eine JSON-Zeichenkette
  • json_last_error() - Gibt den letzten aufgetretenen Fehler zurück
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes


Gibt die Fehlermeldung des letzten Aufrufs von json_encode oder json_decode() zurück

  • « json_encode
  • json_last_error »
  • PHP Manual
  • JSON-Funktionen
  • Gibt die Fehlermeldung des letzten Aufrufs von json_encode oder json_decode() zurück

json_last_error_msg

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

json_last_error_msg — Gibt die Fehlermeldung des letzten Aufrufs von json_encode oder json_decode() zurück

Beschreibung

json_last_error_msg ( ) : string

Gibt die Fehlerzeichenkette des letzten json_encode() oder json_decode() Aufrufs, der nicht JSON_THROW_ON_ERROR angab, zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg die Fehlermeldung zurück, "No error", wenn kein Fehler aufgetreten ist. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • json_last_error() - Gibt den letzten aufgetretenen Fehler zurück


Gibt den letzten aufgetretenen Fehler zurück

  • « json_last_error_msg
  • Lua »
  • PHP Manual
  • JSON-Funktionen
  • Gibt den letzten aufgetretenen Fehler zurück

json_last_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

json_last_error — Gibt den letzten aufgetretenen Fehler zurück

Beschreibung

json_last_error ( ) : int

Gibt (sofern vorhanden) den letzten Fehler zurück, der beim letzten Kodieren/Dekodieren von JSON, das JSON_THROW_ON_ERROR nicht angab, aufgetreten ist.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt einen Integer zurück, der Wert kann eine der folgenden Konstanten sein:

JSON-Fehlercodes
Konstante | Bedeutung | Verfügbarkeit
JSON_ERROR_NONE | Kein Fehler aufgetreten. |
JSON_ERROR_DEPTH | Die maximale Stacktiefe wurde überschritten. |
JSON_ERROR_STATE_MISMATCH | Ungültiges oder missgestaltetes JSON |
JSON_ERROR_CTRL_CHAR | Steuerzeichenfehler, möglicherweise unkorrekt kodiert. |
JSON_ERROR_SYNTAX | Syntaxfehler. |
JSON_ERROR_UTF8 | Missgestaltete UTF-8 Zeichen, möglicherweise fehlerhaft kodiert | PHP 5.3.3
JSON_ERROR_RECURSION | Eine oder mehrere rekursive Referenzen im zu kodierenden Wert | PHP 5.5.0
JSON_ERROR_INF_OR_NAN | Eine oder mehrere NAN oder INF Werte im zu kodierenden Wert | PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE | Ein Wert eines Typs, der nicht kodiert werden kann, wurde übergeben | PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME | Ein Eigenschaftsname, der nicht kodiert werden kann, wurde übergeben | PHP 7.0.0
JSON_ERROR_UTF16 | Deformierte UTF-16 Zeichen; möglicherweise fehlerhaft kodiert | PHP 7.0.0

Beispiele

Beispiel #1 json_last_error()-Beispiel

<?php
// Ein gültiger JSON-String
$json[] = '{"Organisation": "PHP-Dokumentationsteam"}';

// Ein ungültiger JSON-String, der einen Syntaxfehler hervorruft,
// in diesem Fall werden ' anstelle von " als Anführungszeichen verwendet
$json[] = "{'Organisation': 'PHP-Dokumentationsteam'}";

foreach($json as $string) {
    echo 'Dekodiere: ' . $string;
    json_decode($string);

    switch(json_last_error()) {
        case JSON_ERROR_NONE:
            echo ' - Keine Fehler';
        break;
        case JSON_ERROR_DEPTH:
            echo ' - Maximale Stacktiefe überschritten';
        break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - Unterlauf oder Nichtübereinstimmung der Modi';
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Unerwartetes Steuerzeichen gefunden';
        break;
        case JSON_ERROR_SYNTAX:
            echo ' - Syntaxfehler, ungültiges JSON';
        break;
        case JSON_ERROR_UTF8:
            echo ' - Missgestaltete UTF-8 Zeichen, möglicherweise fehlerhaft kodiert';
        break;
        default:
            echo ' - Unbekannter Fehler';
        break;
    }

    echo PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Decoding: {"Organisation": "PHP-Dokumentationsteam"} - Keine Fehler
Decoding: {'Organisation': 'PHP-Dokumentationsteam'} - Syntaxfehler, ungültiges JSON

Beispiel #2 json_last_error() mit json_encode()

<?php
// Eine ungültige UTF8 Sequenz
$text = "\xB1\x31";

$json  = json_encode($text);
$error = json_last_error();

var_dump($json, $error === JSON_ERROR_UTF8);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(4) "null"
bool(true)

Beispiel #3 json_last_error() und JSON_THROW_ON_ERROR

<?php
// Eine ungültige UTF8 Sequenz, die ein JSON_ERROR_UTF8 verursacht
json_encode("\xB1\x31");

// Das folgende verursacht keinen JSON Fehler
json_encode('okay', JSON_THROW_ON_ERROR);

// Der globale Fehlerzustand wurde durch das vorherige json_encode nicht geändert
var_dump(json_last_error() === JSON_ERROR_UTF8);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)

Siehe auch

  • json_last_error_msg() - Gibt die Fehlermeldung des letzten Aufrufs von json_encode oder json_decode() zurück
  • json_decode() - Dekodiert eine JSON-Zeichenkette
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück


Lua

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Lua — The Lua class
    • Lua::assign — Assign a PHP variable to Lua
    • Lua::call — Call Lua functions
    • Lua::__construct — Lua constructor
    • Lua::eval — Evaluate a string as Lua code
    • Lua::getVersion — The getversion purpose
    • Lua::include — Parse a Lua script file
    • Lua::registerCallback — Register a PHP function to Lua
  • LuaClosure — The LuaClosure class
    • LuaClosure::__invoke — Invoke luaclosure


Einführung

"Lua is a powerful, fast, light-weight, embeddable scripting language." This extension embeds the lua interpreter and offers an OO-API to lua variables and functions.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

To use this extension, you will need Lua installed, available on the » Lua homepage


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/lua.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


  • « Laufzeit-Konfiguration
  • Lua »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert keine Ressource-Typen.


The Lua class

(PECL lua >=0.9.0)

Einführung

Klassenbeschreibung

Lua {
/* Constants */
const string LUA_VERSION = Lua 5.1.4 ;
/* Methoden */
public assign ( string $name , string $value ) : mixed
public call ( callable $lua_func , array $args = ? , int $use_self = 0 ) : mixed
public __call ( callable $lua_func , array $args = ? , int $use_self = 0 ) : mixed
public __construct ( string $lua_script_file = NULL )
public eval ( string $statements ) : mixed
public getVersion ( ) : string
public include ( string $file ) : mixed
public registerCallback ( string $name , callable $function ) : mixed
}

Vordefinierte Konstanten

Lua::LUA_VERSION

Inhaltsverzeichnis

  • Lua::assign — Assign a PHP variable to Lua
  • Lua::call — Call Lua functions
  • Lua::__construct — Lua constructor
  • Lua::eval — Evaluate a string as Lua code
  • Lua::getVersion — The getversion purpose
  • Lua::include — Parse a Lua script file
  • Lua::registerCallback — Register a PHP function to Lua


Assign a PHP variable to Lua

  • « Lua
  • Lua::call »
  • PHP Manual
  • Lua
  • Assign a PHP variable to Lua

Lua::assign

(PECL lua >=0.9.0)

Lua::assign — Assign a PHP variable to Lua

Beschreibung

public Lua::assign ( string $name , string $value ) : mixed

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

value

Rückgabewerte

Returns $this or null on failure.

Beispiele

Beispiel #1 Lua::assign()example

<?php
$lua = new Lua();
$lua->assign("php_var", array(1=>1, 2, 3)); //lua table index begin with 1
$lua->eval(<<<CODE
    print(php_var);
CODE
);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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


Call Lua functions

  • « Lua::assign
  • Lua::__construct »
  • PHP Manual
  • Lua
  • Call Lua functions

Lua::call

Lua::__call

(PECL lua >=0.9.0)

Lua::call -- Lua::__call — Call Lua functions

Beschreibung

public Lua::call ( callable $lua_func , array $args = ? , int $use_self = 0 ) : mixed
public Lua::__call ( callable $lua_func , array $args = ? , int $use_self = 0 ) : mixed

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

lua_func

Function name in lua

args

Arguments passed to the Lua function

use_self

Whether to use self

Rückgabewerte

Returns result of the called function, null for wrong arguments or false on other failure.

Beispiele

Beispiel #1 Lua::call()example

<?php
$lua = new Lua();
$lua->eval(<<<CODE
    function dummy(foo, bar)
        print(foo, ",", bar)
    end
CODE
);
$lua->call("dummy", array("Lua", "geiliable\n"));
$lua->dummy("Lua", "geiliable"); // __call()
var_dump($lua->call(array("table", "concat"), array(array(1=>1, 2=>2, 3=>3), "-")));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Lua,geiliable
Lua,geiliable
string(5) "1-2-3"

Siehe auch

  • __call()


Lua constructor

  • « Lua::call
  • Lua::eval »
  • PHP Manual
  • Lua
  • Lua constructor

Lua::__construct

(PECL lua >=0.9.0)

Lua::__construct — Lua constructor

Beschreibung

public Lua::__construct ( string $lua_script_file = NULL )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

lua_script_file

Rückgabewerte


Evaluate a string as Lua code

  • « Lua::__construct
  • Lua::getVersion »
  • PHP Manual
  • Lua
  • Evaluate a string as Lua code

Lua::eval

(PECL lua >=0.9.0)

Lua::eval — Evaluate a string as Lua code

Beschreibung

public Lua::eval ( string $statements ) : mixed

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

statements

Rückgabewerte

Returns result of evaled code, null for wrong arguments or false on other failure.

Beispiele

Beispiel #1 Lua::eval()example

<?php
$lua = new Lua();
$lua->eval(<<<CODE
    print(2);
CODE
);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2


The getversion purpose

  • « Lua::eval
  • Lua::include »
  • PHP Manual
  • Lua
  • The getversion purpose

Lua::getVersion

(PECL lua >=0.9.0)

Lua::getVersion — The getversion purpose

Beschreibung

public Lua::getVersion ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns Lua::LUA_VERSION.


Parse a Lua script file

  • « Lua::getVersion
  • Lua::registerCallback »
  • PHP Manual
  • Lua
  • Parse a Lua script file

Lua::include

(PECL lua >=0.9.0)

Lua::include — Parse a Lua script file

Beschreibung

public Lua::include ( string $file ) : mixed

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

file

Rückgabewerte

Returns result of included code, null for wrong arguments or false on other failure.


Register a PHP function to Lua

  • « Lua::include
  • LuaClosure »
  • PHP Manual
  • Lua
  • Register a PHP function to Lua

Lua::registerCallback

(No version information available, might only be in Git)

Lua::registerCallback — Register a PHP function to Lua

Beschreibung

public Lua::registerCallback ( string $name , callable $function ) : mixed

Register a PHP function to Lua as a function named "$name"

Parameter-Liste

name

function

A valid PHP function callback

Rückgabewerte

Returns $this, null for wrong arguments or false on other failure.

Beispiele

Beispiel #1 Lua::registerCallback()example

<?php
$lua = new Lua();
$lua->registerCallback("echo", "var_dump");
$lua->eval(<<<CODE
    echo({1, 2, 3});
CODE
);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [1]=>
  float(1)
  [2]=>
  float(2)
  [3]=>
  float(3)
}


The LuaClosure class

(PECL lua >=0.9.0)

Einführung

LuaClosure is a wrapper class for LUA_TFUNCTION which could be return from calling to Lua function.

Klassenbeschreibung

LuaClosure {
/* Methoden */
public __invoke ( mixed ...$args ) : void
}

Inhaltsverzeichnis

  • LuaClosure::__invoke — Invoke luaclosure


Invoke luaclosure

  • « LuaClosure
  • LuaSandbox »
  • PHP Manual
  • LuaClosure
  • Invoke luaclosure

LuaClosure::__invoke

(PECL lua >=0.9.0)

LuaClosure::__invoke — Invoke luaclosure

Beschreibung

public LuaClosure::__invoke ( mixed ...$args ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

args

Rückgabewerte

Beispiele

Beispiel #1 LuaClosure::__invoke()example

<?php
$lua = new Lua();
$closure = $lua->eval(<<<CODE
    return (function ()
        print("hello world")
    end)
CODE
);

$lua->call($closure);
/* after PHP 5.3 */
$closure();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

hello worldhello world


LuaSandbox

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Differences from Standard Lua
  • Beispiele
    • Basic usage for LuaSandbox
  • LuaSandbox — The LuaSandbox class
    • LuaSandbox::callFunction — Call a function in a Lua global variable
    • LuaSandbox::disableProfiler — Disable the profiler
    • LuaSandbox::enableProfiler — Enable the profiler.
    • LuaSandbox::getCPUUsage — Fetch the current CPU time usage of the Lua environment
    • LuaSandbox::getMemoryUsage — Fetch the current memory usage of the Lua environment
    • LuaSandbox::getPeakMemoryUsage — Fetch the peak memory usage of the Lua environment
    • LuaSandbox::getProfilerFunctionReport — Fetch profiler data
    • LuaSandbox::getVersionInfo — Return the versions of LuaSandbox and Lua
    • LuaSandbox::loadBinary — Load a precompiled binary chunk into the Lua environment
    • LuaSandbox::loadString — Load Lua code into the Lua environment
    • LuaSandbox::pauseUsageTimer — Pause the CPU usage timer
    • LuaSandbox::registerLibrary — Register a set of PHP functions as a Lua library
    • LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment
    • LuaSandbox::setMemoryLimit — Set the memory limit for the Lua environment
    • LuaSandbox::unpauseUsageTimer — Unpause the timer paused by LuaSandbox::pauseUsageTimer
    • LuaSandbox::wrapPhpFunction — Wrap a PHP callable in a LuaSandboxFunction
  • LuaSandboxFunction — The LuaSandboxFunction class
    • LuaSandboxFunction::call — Call a Lua function
    • LuaSandboxFunction::__construct — Unused
    • LuaSandboxFunction::dump — Dump the function as a binary blob
  • LuaSandboxError — The LuaSandboxError class
  • LuaSandboxErrorError — The LuaSandboxErrorError class
  • LuaSandboxFatalError — The LuaSandboxFatalError class
  • LuaSandboxMemoryError — The LuaSandboxMemoryError class
  • LuaSandboxRuntimeError — The LuaSandboxRuntimeError class
  • LuaSandboxSyntaxError — The LuaSandboxSyntaxError class
  • LuaSandboxTimeoutError — The LuaSandboxTimeoutError class


Einführung

LuaSandbox is an extension for PHP 5, PHP 7, and HHVM to allow safely running untrusted Lua 5.1 code from within PHP.

Differences compared to the Lua extension:

  • LuaSandbox has support for time and memory limits.

  • LuaSandbox provides a default-safe environment for running untrusted code. Stock Lua functions were reviewed for security, and several were patched accordingly.

  • LuaSandbox has a PHP interface which is more complex, precise and powerful, but it is less convenient for developers.

  • LuaSandbox supports only Lua 5.1. It is difficult to change this, because LuaSandbox uses heavily modified Lua standard libraries, and due to the lack of backwards compatibility between major Lua versions. LuaSandbox aims to maximise backwards compatibility with user-supplied scripts.


Anforderungen

To use this extension, Lua 5.1 will need to be installed, available on the » Lua homepage.

To make full use of the timer features, LuaSandbox should be installed on Linux.

If FreeBSD or Mac OS X is used, only real (wall-clock) time is supported, the functions purporting to return CPU time will actually return wall clock time.

If Windows is used, no timer functions will be supported. The time limits will be inoperable.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/luasandbox.

If the operating system is Debian 9 or later, or Ubuntu 18.04 or later, then LuaSandbox should typically be installed from the package php-luasandbox:

sudo apt-get install php-luasandbox

Debian 9 users may need to add

deb http://ftp.debian.org/debian stretch-backports main
to their » sources.list.


  • « Laufzeit-Konfiguration
  • Differences from Standard Lua »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert keine Ressource-Typen.


Differences from Standard Lua

LuaSandbox provides a sandboxed environment which differs in some ways from standard Lua 5.1.

Features that are not available

  • dofile(), loadfile(), and the io package, as they allow direct filesystem access. If needed, filesystem access should be done via PHP callbacks.

  • The package package, including require() and module(), as it depends heavily on direct filesystem access. A pure-Lua rewrite such as that used in the MediaWiki Scribunto extension may be used instead.

  • load() and loadstring(), to allow for static analysis of Lua code.

  • print(), since it outputs to standard output. If needed, output should be done via PHP callbacks.

  • Most of the os package, as it allows manipulation of the process and executing of other processes.

    • os.clock(), os.date(), os.difftime(), and os.time() remain available.

  • Most of the debug package, as it allows manipulation of Lua state and metadata in ways that can break sandboxing.

    • debug.traceback() remains available.

  • string.dump(), as it may expose internal data.

  • collectgarbage(), gcinfo(), and the coroutine package have not been reviewed for security.

Features that have been modified

  • pcall() and xpcall() cannot catch certain errors, particularly timeout errors.

  • tostring() does not include pointer addresses.

  • string.match() has been patched to limit the recursion depth and to periodically check for a timeout.

  • math.random() and math.randomseed() are replaced with versions that don't share state with PHP's rand().

  • The Lua 5.2 __pairs and __ipairs metamethods are supported by pairs() and ipairs().


  • « Differences from Standard Lua
  • Basic usage for LuaSandbox »
  • PHP Manual
  • LuaSandbox
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Basic usage for LuaSandbox


Basic usage for LuaSandbox

Once you've compiled PHP with LuaSandbox support, you can begin using LuaSandbox to safely run user-provided Lua code.

Beispiel #1 Execute some Lua code

<?php

$sandbox = new LuaSandbox;
$sandbox->setMemoryLimit( 50 * 1024 * 1024 );
$sandbox->setCPULimit( 10 );

// Register some functions in the Lua environment

function frobnosticate( $v ) {
    return [ $v + 42 ];
}

$sandbox->registerLibrary( 'php', [
    'frobnosticate' => 'frobnosticate',
    'output' => function ( $string ) {
        echo "$string\n";
    },
    'error' => function () {
        throw new LuaSandboxRuntimeError( "Something is wrong" );
    }
] );

// Execute some Lua code, including callbacks into PHP and into Lua

$luaCode = <<<EOF
php.output( "Hello, world" );

return "Hi", function ( v )
    return php.frobnosticate( v + 200 )
end
EOF;

list( $hi, $frob ) = $sandbox->loadString( $luaCode )->call();
assert( $frob->call( 4000 ) === [ 4242 ] );

// PHP-thrown LuaSandboxRuntimeError exceptions can be caught inside Lua

list( $ok, $message ) = $sandbox->loadString( 'return pcall( php.error )' )->call();
assert( !$ok );
assert( $message === 'Something is wrong' );

?>


The LuaSandbox class

(PECL luasandbox >= 1.0.0)

Einführung

The LuaSandbox class creates a Lua environment and allows for execution of Lua code.

Klassenbeschreibung

LuaSandbox {
/* Constants */
const int SAMPLES = 0 ;
const int SECONDS = 1 ;
const int PERCENT = 2 ;
/* Methoden */
public callFunction ( string $name , mixed ...$args ) : array|bool
public disableProfiler ( ) : void
public enableProfiler ( float $period = 0.02 ) : bool
public getCPUUsage ( ) : float
public getMemoryUsage ( ) : int
public getPeakMemoryUsage ( ) : int
public getProfilerFunctionReport ( int $units = LuaSandbox::SECONDS ) : array
public static getVersionInfo ( ) : array
public loadBinary ( string $code , string $chunkName = '' ) : LuaSandboxFunction
public loadString ( string $code , string $chunkName = '' ) : LuaSandboxFunction
public pauseUsageTimer ( ) : bool
public registerLibrary ( string $libname , array $functions ) : void
public setCPULimit ( float|bool $limit ) : void
public setMemoryLimit ( int $limit ) : void
public unpauseUsageTimer ( ) : void
public wrapPhpFunction ( callable $function ) : LuaSandboxFunction
}

Vordefinierte Konstanten

LuaSandbox::SAMPLES

Used with LuaSandbox::getProfilerFunctionReport() to return timings in samples.

LuaSandbox::SECONDS

Used with LuaSandbox::getProfilerFunctionReport() to return timings in seconds.

LuaSandbox::PERCENT

Used with LuaSandbox::getProfilerFunctionReport() to return timings in percentages of the total.

Inhaltsverzeichnis

  • LuaSandbox::callFunction — Call a function in a Lua global variable
  • LuaSandbox::disableProfiler — Disable the profiler
  • LuaSandbox::enableProfiler — Enable the profiler.
  • LuaSandbox::getCPUUsage — Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::getMemoryUsage — Fetch the current memory usage of the Lua environment
  • LuaSandbox::getPeakMemoryUsage — Fetch the peak memory usage of the Lua environment
  • LuaSandbox::getProfilerFunctionReport — Fetch profiler data
  • LuaSandbox::getVersionInfo — Return the versions of LuaSandbox and Lua
  • LuaSandbox::loadBinary — Load a precompiled binary chunk into the Lua environment
  • LuaSandbox::loadString — Load Lua code into the Lua environment
  • LuaSandbox::pauseUsageTimer — Pause the CPU usage timer
  • LuaSandbox::registerLibrary — Register a set of PHP functions as a Lua library
  • LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment
  • LuaSandbox::setMemoryLimit — Set the memory limit for the Lua environment
  • LuaSandbox::unpauseUsageTimer — Unpause the timer paused by LuaSandbox::pauseUsageTimer
  • LuaSandbox::wrapPhpFunction — Wrap a PHP callable in a LuaSandboxFunction


Call a function in a Lua global variable

  • « LuaSandbox
  • LuaSandbox::disableProfiler »
  • PHP Manual
  • LuaSandbox
  • Call a function in a Lua global variable

LuaSandbox::callFunction

(PECL luasandbox >= 1.0.0)

LuaSandbox::callFunction — Call a function in a Lua global variable

Beschreibung

public LuaSandbox::callFunction ( string $name , mixed ...$args ) : array|bool

Calls a function in a Lua global variable.

If the name contains "." characters, the function is located via recursive table accesses, as if the name were a Lua expression.

If the variable does not exist, or is not a function, false will be returned and a warning issued.

For more information about calling Lua functions and the return values, see LuaSandboxFunction::call().

Parameter-Liste

name

Lua variable name.

args

Arguments to the function.

Rückgabewerte

Returns an array of values returned by the Lua function, which may be empty, or false in case of failure.

Beispiele

Beispiel #1 Calling a Lua function

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Call Lua's string.match
$captures = $sandbox->callFunction( 'string.match', $string, $pattern );

?>


Disable the profiler

  • « LuaSandbox::callFunction
  • LuaSandbox::enableProfiler »
  • PHP Manual
  • LuaSandbox
  • Disable the profiler

LuaSandbox::disableProfiler

(PECL luasandbox >= 1.1.0)

LuaSandbox::disableProfiler — Disable the profiler

Beschreibung

public LuaSandbox::disableProfiler ( ) : void

Disables the profiler.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • LuaSandbox::enableProfiler() - Enable the profiler.
  • LuaSandbox::getProfilerFunctionReport() - Fetch profiler data


Enable the profiler.

  • « LuaSandbox::disableProfiler
  • LuaSandbox::getCPUUsage »
  • PHP Manual
  • LuaSandbox
  • Enable the profiler.

LuaSandbox::enableProfiler

(PECL luasandbox >= 1.1.0)

LuaSandbox::enableProfiler — Enable the profiler.

Beschreibung

public LuaSandbox::enableProfiler ( float $period = 0.02 ) : bool

Enables the profiler. Profiling will begin when Lua code is entered.

The profiler periodically samples the Lua environment to record the running function. Testing indicates that at least on Linux, setting a period less than 1ms will lead to a high overrun count but no performance problems.

Parameter-Liste

period

Sampling period in seconds.

Rückgabewerte

Returns a boolean indicating whether the profiler is enabled.

Siehe auch

  • LuaSandbox::disableProfiler() - Disable the profiler
  • LuaSandbox::getProfilerFunctionReport() - Fetch profiler data


Fetch the current CPU time usage of the Lua environment

  • « LuaSandbox::enableProfiler
  • LuaSandbox::getMemoryUsage »
  • PHP Manual
  • LuaSandbox
  • Fetch the current CPU time usage of the Lua environment

LuaSandbox::getCPUUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getCPUUsage — Fetch the current CPU time usage of the Lua environment

Beschreibung

public LuaSandbox::getCPUUsage ( ) : float

Fetches the current CPU time usage of the Lua environment.

This includes time spent in PHP callbacks.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current CPU time usage in seconds.

Hinweis:

On Windows, this function always returns zero. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, this function will return the elapsed wall-clock time, not CPU time.

Siehe auch

  • LuaSandbox::getMemoryUsage() - Fetch the current memory usage of the Lua environment
  • LuaSandbox::getPeakMemoryUsage() - Fetch the peak memory usage of the Lua environment
  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment


Fetch the current memory usage of the Lua environment

  • « LuaSandbox::getCPUUsage
  • LuaSandbox::getPeakMemoryUsage »
  • PHP Manual
  • LuaSandbox
  • Fetch the current memory usage of the Lua environment

LuaSandbox::getMemoryUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getMemoryUsage — Fetch the current memory usage of the Lua environment

Beschreibung

public LuaSandbox::getMemoryUsage ( ) : int

Fetches the current memory usage of the Lua environment.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current memory usage in bytes.

Siehe auch

  • LuaSandbox::getPeakMemoryUsage() - Fetch the peak memory usage of the Lua environment
  • LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment


Fetch the peak memory usage of the Lua environment

  • « LuaSandbox::getMemoryUsage
  • LuaSandbox::getProfilerFunctionReport »
  • PHP Manual
  • LuaSandbox
  • Fetch the peak memory usage of the Lua environment

LuaSandbox::getPeakMemoryUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getPeakMemoryUsage — Fetch the peak memory usage of the Lua environment

Beschreibung

public LuaSandbox::getPeakMemoryUsage ( ) : int

Fetches the peak memory usage of the Lua environment.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the peak memory usage in bytes.

Siehe auch

  • LuaSandbox::getMemoryUsage() - Fetch the current memory usage of the Lua environment
  • LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment


Fetch profiler data

  • « LuaSandbox::getPeakMemoryUsage
  • LuaSandbox::getVersionInfo »
  • PHP Manual
  • LuaSandbox
  • Fetch profiler data

LuaSandbox::getProfilerFunctionReport

(PECL luasandbox >= 1.1.0)

LuaSandbox::getProfilerFunctionReport — Fetch profiler data

Beschreibung

public LuaSandbox::getProfilerFunctionReport ( int $units = LuaSandbox::SECONDS ) : array

For a profiling instance previously started by LuaSandbox::enableProfiler(), get a report of the cost of each function.

The measurement unit used for the cost is determined by the $units parameter:

LuaSandbox::SAMPLES

Measure in number of samples.

LuaSandbox::SECONDS

Measure in seconds of CPU time.

LuaSandbox::PERCENT

Measure percentage of CPU time.

Parameter-Liste

units

Measurement unit constant.

Rückgabewerte

Returns profiler measurements, sorted in descending order, as an associative array. Keys are the Lua function names (with source file and line defined in angle brackets), values are the measurements as int or float.

Hinweis:

On Windows, this function always returns an empty array. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, this function will report the elapsed wall-clock time, not CPU time.

Beispiele

Beispiel #1 Profiling Lua code

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Start the profiler
$sandbox->enableProfiler( 0.01 );

// ... Execute some Lua code here ...

// Fetch the profiler data
$data = $sandbox->getProfilerFunctionReport();

?>


Return the versions of LuaSandbox and Lua

  • « LuaSandbox::getProfilerFunctionReport
  • LuaSandbox::loadBinary »
  • PHP Manual
  • LuaSandbox
  • Return the versions of LuaSandbox and Lua

LuaSandbox::getVersionInfo

(PECL luasandbox >= 1.6.0)

LuaSandbox::getVersionInfo — Return the versions of LuaSandbox and Lua

Beschreibung

public static LuaSandbox::getVersionInfo ( ) : array

Returns the versions of LuaSandbox and Lua.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array with two keys:

element | type | description
LuaSandbox | string | The version of the LuaSandbox extension.
Lua | string | The library name and version as defined by the LUA_RELEASE macro, for example, "Lua 5.1.5".


Load a precompiled binary chunk into the Lua environment

  • « LuaSandbox::getVersionInfo
  • LuaSandbox::loadString »
  • PHP Manual
  • LuaSandbox
  • Load a precompiled binary chunk into the Lua environment

LuaSandbox::loadBinary

(PECL luasandbox >= 1.0.0)

LuaSandbox::loadBinary — Load a precompiled binary chunk into the Lua environment

Beschreibung

public LuaSandbox::loadBinary ( string $code , string $chunkName = '' ) : LuaSandboxFunction

Loads data generated by LuaSandboxFunction::dump().

Parameter-Liste

code

Data from LuaSandboxFunction::dump().

chunkName

Name for the loaded function.

Rückgabewerte

Returns a LuaSandboxFunction.

Siehe auch

  • LuaSandbox::loadString() - Load Lua code into the Lua environment


Load Lua code into the Lua environment

  • « LuaSandbox::loadBinary
  • LuaSandbox::pauseUsageTimer »
  • PHP Manual
  • LuaSandbox
  • Load Lua code into the Lua environment

LuaSandbox::loadString

(PECL luasandbox >= 1.0.0)

LuaSandbox::loadString — Load Lua code into the Lua environment

Beschreibung

public LuaSandbox::loadString ( string $code , string $chunkName = '' ) : LuaSandboxFunction

Loads Lua code into the Lua environment.

This is the equivalent of standard Lua's loadstring() function.

Parameter-Liste

code

Lua code.

chunkName

Name for the loaded chunk, for use in error traces.

Rückgabewerte

Returns a LuaSandboxFunction which, when executed, will execute the passed $code.

Beispiele

Beispiel #1 Loading code into Lua

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Load the code
$function = $sandbox->loadString(
<<<CODE
    return "Hello, world"
CODE
);

// Execute the loaded code
var_dump( $function->call() );

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  [0]=>
  string(12) "Hello, world"
}

Siehe auch

  • LuaSandbox::registerLibrary() - Register a set of PHP functions as a Lua library
  • LuaSandbox::wrapPhpFunction() - Wrap a PHP callable in a LuaSandboxFunction


Pause the CPU usage timer

  • « LuaSandbox::loadString
  • LuaSandbox::registerLibrary »
  • PHP Manual
  • LuaSandbox
  • Pause the CPU usage timer

LuaSandbox::pauseUsageTimer

(PECL luasandbox >= 1.4.0)

LuaSandbox::pauseUsageTimer — Pause the CPU usage timer

Beschreibung

public LuaSandbox::pauseUsageTimer ( ) : bool

Pauses the CPU usage timer.

This only has effect when called from within a callback from Lua. When execution returns to Lua, the timer will be automatically unpaused. If a new call into Lua is made, the timer will be unpaused for the duration of that call.

If a PHP callback calls into Lua again with timer not paused, and then that Lua function calls into PHP again, the second PHP call will not be able to pause the timer. The logic is that even though the second PHP call would avoid counting the CPU usage against the limit, the first call still counts it.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a bool indicating whether the timer is now paused.

Beispiele

Beispiel #1 Manipulating the usage timer

<?php

// create a new LuaSandbox and set a CPU limit
$sandbox = new LuaSandbox();
$sandbox->setCPULimit( 1 );

function doWait( $t ) {
    $end = microtime( true ) + $t;
    while ( microtime( true ) < $end ) {
        // waste CPU cycles
    }
}

// Register a PHP callback
$sandbox->registerLibrary( 'php', [
    'test' => function () use ( $sandbox ) {
        $sandbox->pauseUsageTimer();
        doWait( 5 );

        $sandbox->unpauseUsageTimer();
        doWait( 0.1 );
    },
    'test2' => function () use ( $sandbox ) {
        $sandbox->pauseUsageTimer();
        $sandbox->unpauseUsageTimer();
        doWait( 1.1 );
    }
] );

echo "This should not time out...\n";
$sandbox->loadString( 'php.test()' )->call();

echo "This should time out.\n";
try {
    $sandbox->loadString( 'php.test2()' )->call();
    echo "It did not?\n";
} catch ( LuaSandboxTimeoutError $ex ) {
    echo "It did! " . $ex->getMessage() . "\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

This should not time out...
This should time out.
It did! The maximum execution time for this script was exceeded

Siehe auch

  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment
  • LuaSandbox::unpauseUsageTimer() - Unpause the timer paused by LuaSandbox::pauseUsageTimer


Register a set of PHP functions as a Lua library

  • « LuaSandbox::pauseUsageTimer
  • LuaSandbox::setCPULimit »
  • PHP Manual
  • LuaSandbox
  • Register a set of PHP functions as a Lua library

LuaSandbox::registerLibrary

(PECL luasandbox >= 1.0.0)

LuaSandbox::registerLibrary — Register a set of PHP functions as a Lua library

Beschreibung

public LuaSandbox::registerLibrary ( string $libname , array $functions ) : void

Registers a set of PHP functions as a Lua library, so that Lua can call the relevant PHP code.

For more information about calling Lua functions and the return values, see LuaSandboxFunction::call().

Parameter-Liste

libname

The name of the library. In the Lua state, the global variable of this name will be set to the table of functions. If the table already exists, the new functions will be added to it.

functions

An array, where each key is a function name, and each value is a corresponding PHP callable.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Registering PHP functions to call from Lua

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Register some functions in the Lua environment

function frobnosticate( $v ) {
    return [ $v + 42 ];
}

$sandbox->registerLibrary( 'php', [
    'frobnosticate' => 'frobnosticate',
    'output' => function ( $string ) {
        echo "$string\n";
    },
    'error' => function () {
        throw new LuaSandboxRuntimeError( "Something is wrong" );
    }
] );

?>

Siehe auch

  • LuaSandbox::loadString() - Load Lua code into the Lua environment
  • LuaSandbox::wrapPhpFunction() - Wrap a PHP callable in a LuaSandboxFunction


Set the CPU time limit for the Lua environment

  • « LuaSandbox::registerLibrary
  • LuaSandbox::setMemoryLimit »
  • PHP Manual
  • LuaSandbox
  • Set the CPU time limit for the Lua environment

LuaSandbox::setCPULimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment

Beschreibung

public LuaSandbox::setCPULimit ( float|bool $limit ) : void

Sets the CPU time limit for the Lua environment.

If the total user and system time used by the environment after the call to this method exceeds this limit, a LuaSandboxTimeoutError exception is thrown.

Time used in PHP callbacks is included in the limit.

Setting the time limit from a callback while Lua is running causes the timer to be reset, or started if it was not already running.

Hinweis:

On Windows, the CPU limit will be ignored. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, wall-clock time rather than CPU time will be limited.

Parameter-Liste

limit

Limit as a float in seconds, or false for no limit.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Calling a Lua function

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// set a time limit
$sandbox->setCPULimit( 2 );

// Run Lua code
$sandbox->loadString( 'while true do end' )->call();

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

PHP Fatal error:  Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded

Siehe auch

  • LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment


Set the memory limit for the Lua environment

  • « LuaSandbox::setCPULimit
  • LuaSandbox::unpauseUsageTimer »
  • PHP Manual
  • LuaSandbox
  • Set the memory limit for the Lua environment

LuaSandbox::setMemoryLimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setMemoryLimit — Set the memory limit for the Lua environment

Beschreibung

public LuaSandbox::setMemoryLimit ( int $limit ) : void

Sets the memory limit for the Lua environment.

If this limit is exceeded, a LuaSandboxMemoryError exception is thrown.

Parameter-Liste

limit

Memory limit in bytes.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Calling a Lua function

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// set a memory limit
$sandbox->setMemoryLimit( 50 * 1024 * 1024 );

// Run Lua code
$sandbox->loadString( 'local x = "x"; while true do x = x .. x; end' )->call();

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

PHP Fatal error:  Uncaught LuaSandboxMemoryError: not enough memory

Siehe auch

  • LuaSandbox::getMemoryUsage() - Fetch the current memory usage of the Lua environment
  • LuaSandbox::getPeakMemoryUsage() - Fetch the peak memory usage of the Lua environment
  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment


Unpause the timer paused by LuaSandbox::pauseUsageTimer

  • « LuaSandbox::setMemoryLimit
  • LuaSandbox::wrapPhpFunction »
  • PHP Manual
  • LuaSandbox
  • Unpause the timer paused by LuaSandbox::pauseUsageTimer

LuaSandbox::unpauseUsageTimer

(PECL luasandbox >= 1.4.0)

LuaSandbox::unpauseUsageTimer — Unpause the timer paused by LuaSandbox::pauseUsageTimer()

Beschreibung

public LuaSandbox::unpauseUsageTimer ( ) : void

Unpauses the timer paused by LuaSandbox::pauseUsageTimer().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • LuaSandbox::pauseUsageTimer() - Pause the CPU usage timer
  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment


Wrap a PHP callable in a LuaSandboxFunction

  • « LuaSandbox::unpauseUsageTimer
  • LuaSandboxFunction »
  • PHP Manual
  • LuaSandbox
  • Wrap a PHP callable in a LuaSandboxFunction

LuaSandbox::wrapPhpFunction

(PECL luasandbox >= 1.2.0)

LuaSandbox::wrapPhpFunction — Wrap a PHP callable in a LuaSandboxFunction

Beschreibung

public LuaSandbox::wrapPhpFunction ( callable $function ) : LuaSandboxFunction

Wraps a PHP callable in a LuaSandboxFunction, so it can be passed into Lua as an anonymous function.

The function must return either an array of values (which may be empty), or null which is equivalent to returning the empty array.

Exceptions will be raised as errors in Lua, however only LuaSandboxRuntimeError exceptions may be caught inside Lua with pcall() or xpcall().

For more information about calling Lua functions and the return values, see LuaSandboxFunction::call().

Parameter-Liste

function

Callable to wrap.

Rückgabewerte

Returns a LuaSandboxFunction.

Siehe auch

  • LuaSandbox::loadString() - Load Lua code into the Lua environment
  • LuaSandbox::registerLibrary() - Register a set of PHP functions as a Lua library


The LuaSandboxFunction class

(PECL luasandbox >= 1.0.0)

Einführung

Represents a Lua function, allowing it to be called from PHP.

A LuaSandboxFunction may be obtained as a return value from Lua, as a parameter
passed to a callback from Lua, or by using
LuaSandbox::wrapPhpFunction(),
LuaSandbox::loadString(), or
LuaSandbox::loadBinary().

Klassenbeschreibung

LuaSandboxFunction {
/* Methoden */
public call ( string ...$args ) : array|bool
public dump ( ) : string
}

Inhaltsverzeichnis

  • LuaSandboxFunction::call — Call a Lua function
  • LuaSandboxFunction::__construct — Unused
  • LuaSandboxFunction::dump — Dump the function as a binary blob


Call a Lua function

  • « LuaSandboxFunction
  • LuaSandboxFunction::__construct »
  • PHP Manual
  • LuaSandboxFunction
  • Call a Lua function

LuaSandboxFunction::call

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::call — Call a Lua function

Beschreibung

public LuaSandboxFunction::call ( string ...$args ) : array|bool

Calls a Lua function.

Errors considered to be the fault of the PHP code will result in the function returning false and E_WARNING being raised, for example, a resource type being used as an argument. Lua errors will result in a LuaSandboxRuntimeError exception being thrown.

PHP and Lua types are converted as follows:

  • PHP null is Lua nil, and vice versa.

  • PHP ints and floats are converted to Lua numbers. Infinity and NAN are supported.

  • Lua numbers without a fractional part between approximately -2**53 and 2**53 are converted to PHP ints, with others being converted to PHP floats.

  • PHP bools are Lua booleans, and vice versa.

  • PHP strings are Lua strings, and vice versa.

  • Lua functions are PHP LuaSandboxFunction objects, and vice versa. General PHP callables are not supported.

  • PHP arrays are converted to Lua tables, and vice versa.

    • Note that Lua typically indexes arrays from 1, while PHP indexes arrays from 0. No adjustment is made for these differing conventions.

    • Self-referential arrays are not supported in either direction.

    • PHP references are dereferenced.

    • Lua __pairs and __ipairs are processed. __index is ignored.

    • When converting from PHP to Lua, integer keys between -2**53 and 2**53 are represented as Lua numbers. All other keys are represented as Lua strings.

    • When converting from Lua to PHP, keys other than strings and numbers will result in an error, as will collisions when converting numbers to strings or vice versa (since PHP considers things like $a[0] and $a["0"] as being equivalent).

  • All other types are unsupported and will raise an error/exception, including general PHP objects and Lua userdata and thread types.

Lua functions inherently return a list of results. So on success, this method returns an array containing all of the values returned by Lua, with int keys starting from zero. Lua may return no results, in which case an empty array is returned.

Parameter-Liste

args

Arguments passed to the function.

Rückgabewerte

Returns an array of values returned by the function, which may be empty, or false on error.


Unused

  • « LuaSandboxFunction::call
  • LuaSandboxFunction::dump »
  • PHP Manual
  • LuaSandboxFunction
  • Unused

LuaSandboxFunction::__construct

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::__construct — Unused

Beschreibung

final private LuaSandboxFunction::__construct ( )

LuaSandboxFunction are obtained as a return value from Lua,
as a parameter passed to a callback from Lua, or by using
LuaSandbox::wrapPhpFunction(),
LuaSandbox::loadString(), or
LuaSandbox::loadBinary(). They cannot be constructed directly.

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Dump the function as a binary blob

  • « LuaSandboxFunction::__construct
  • LuaSandboxError »
  • PHP Manual
  • LuaSandboxFunction
  • Dump the function as a binary blob

LuaSandboxFunction::dump

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::dump — Dump the function as a binary blob

Beschreibung

public LuaSandboxFunction::dump ( ) : string

Dumps the function as a binary blob.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string that may be passed to LuaSandbox::loadBinary().


The LuaSandboxError class

(PECL luasandbox >= 1.0.0)

Einführung

Base class for LuaSandbox exceptions

Klassenbeschreibung

LuaSandboxError extends Exception {
/* Constants */
const int RUN = 2 ;
const int SYNTAX = 3 ;
const int MEM = 4 ;
const int ERR = 5 ;
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Vordefinierte Konstanten

LuaSandboxError::RUN

LuaSandboxError::SYNTAX

LuaSandboxError::MEM

LuaSandboxError::ERR


The LuaSandboxErrorError class

(PECL luasandbox >= 1.0.0)

Einführung

Exception thrown when Lua encounters an error inside an error handler.

Klassenbeschreibung

LuaSandboxErrorError extends LuaSandboxFatalError {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The LuaSandboxFatalError class

(PECL luasandbox >= 1.0.0)

Einführung

Uncatchable LuaSandbox exceptions.

These may not be caught inside Lua using pcall() or xpcall().

Klassenbeschreibung

LuaSandboxFatalError extends LuaSandboxError {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The LuaSandboxMemoryError class

(PECL luasandbox >= 1.0.0)

Einführung

Exception thrown when Lua cannot allocate memory.

Klassenbeschreibung

LuaSandboxMemoryError extends LuaSandboxFatalError {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Siehe auch

  • LuaSandbox::setMemoryLimit()


The LuaSandboxRuntimeError class

(PECL luasandbox >= 1.0.0)

Einführung

Catchable LuaSandbox runtime exceptions.

These may be caught inside Lua using pcall() or xpcall().

Klassenbeschreibung

LuaSandboxRuntimeError extends LuaSandboxError {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The LuaSandboxSyntaxError class

(PECL luasandbox >= 1.0.0)

Einführung

Exception thrown when Lua code cannot be parsed.

Klassenbeschreibung

LuaSandboxSyntaxError extends LuaSandboxFatalError {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The LuaSandboxTimeoutError class

(PECL luasandbox >= 1.0.0)

Einführung

Exception thrown when the configured CPU time limit is exceeded.

Klassenbeschreibung

LuaSandboxTimeoutError extends LuaSandboxFatalError {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Siehe auch

  • LuaSandbox::setCPULimit()


Miscellaneous Functions

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Sonstige Funktionen
    • connection_aborted — Überprüft, ob die Verbindung zum Client beendet wurde
    • connection_status — Liefert den Verbindungsstatus als Bitfeld
    • constant — Liefert den Wert einer Konstante
    • define — Definiert eine benannte Konstante
    • defined — Prüft, ob eine benannte Konstante existiert
    • die — Entspricht exit
    • eval — Wertet eine Zeichenkette als PHP-Code aus
    • exit — Gibt eine Meldung aus und beendet das aktuelle Skript
    • get_browser — Ermittelt die Fähigkeiten des Browsers eines Benutzers
    • __halt_compiler — Beendet die Kompilerausführung
    • highlight_file — Syntax-Hervorhebung für eine Datei
    • highlight_string — Hervorhebung der Syntax eines Strings
    • hrtime — Get the system's high resolution time
    • ignore_user_abort — Legt fest, ob der Verbindungsabbruch eines Clients die Skript-Ausführung abbrechen soll
    • pack — Packt Daten in eine binäre Zeichenkette
    • php_strip_whitespace — Return source with stripped comments and whitespace
    • sapi_windows_cp_conv — Convert string from one codepage to another
    • sapi_windows_cp_get — Get current codepage
    • sapi_windows_cp_is_utf8 — Indicates whether the codepage is UTF-8 compatible
    • sapi_windows_cp_set — Set process codepage
    • sapi_windows_generate_ctrl_event — Send a CTRL event to another process
    • sapi_windows_set_ctrl_handler — Set or remove a CTRL event handler
    • sapi_windows_vt100_support — Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.
    • show_source — Alias von highlight_file
    • sleep — Verzögert die Programmausführung
    • sys_getloadavg — Ermittelt die durchschnittliche Systemlast
    • time_nanosleep — Verzögert die Ausführung um die gegebene Anzahl Sekunden und Nanosekunden
    • time_sleep_until — Lässt das Skript bis zur angegebenen Zeit schlafen
    • uniqid — Erzeugt eine eindeutige ID
    • unpack — Entpackt die Daten einer binäre Zeichenkette
    • usleep — Verzögert die Programmausführung (in Mikrosekunden)
  • Changelog


Einführung

Diese Funktionen stehen hier, weil sie in keine andere Kategorie passen.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Konfigurationsoptionen für Sonstiges
Name | Standard | Veränderbar | Changelog
ignore_user_abort | "0" | PHP_INI_ALL |
highlight.string | "#DD0000" | PHP_INI_ALL |
highlight.comment | "#FF8000" | PHP_INI_ALL |
highlight.keyword | "#007700" | PHP_INI_ALL |
highlight.bg | "#FFFFFF" | PHP_INI_ALL | Entfernt in PHP 5.4.0.
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

ignore_user_abort bool

Standardmäßig false. Wird die Einstellung auf true geändert, werden Skripte nicht beendet, nachdem der Client die Verbindung abgebrochen hat.

Siehe auch ignore_user_abort().

highlight.bg string
highlight.comment string
highlight.default string
highlight.html string
highlight.keyword string
highlight.string string

Farbangaben für Syntax-Highlighting. Alle Angaben, die bei <font color="??????"> gültig sind, funktionieren.

browscap string

Name (z.B.: browscap.ini) und Speicherort der Datei mit den Angaben zu den Fähigkeiten der verschiedenen Browser. Siehe auch get_browser().


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

CONNECTION_ABORTED (int)
CONNECTION_NORMAL (int)
CONNECTION_TIMEOUT (int)
__COMPILER_HALT_OFFSET__ (int)
Hinzugefügt in PHP 5.1.


Sonstige Funktionen

Inhaltsverzeichnis

  • connection_aborted — Überprüft, ob die Verbindung zum Client beendet wurde
  • connection_status — Liefert den Verbindungsstatus als Bitfeld
  • constant — Liefert den Wert einer Konstante
  • define — Definiert eine benannte Konstante
  • defined — Prüft, ob eine benannte Konstante existiert
  • die — Entspricht exit
  • eval — Wertet eine Zeichenkette als PHP-Code aus
  • exit — Gibt eine Meldung aus und beendet das aktuelle Skript
  • get_browser — Ermittelt die Fähigkeiten des Browsers eines Benutzers
  • __halt_compiler — Beendet die Kompilerausführung
  • highlight_file — Syntax-Hervorhebung für eine Datei
  • highlight_string — Hervorhebung der Syntax eines Strings
  • hrtime — Get the system's high resolution time
  • ignore_user_abort — Legt fest, ob der Verbindungsabbruch eines Clients die Skript-Ausführung abbrechen soll
  • pack — Packt Daten in eine binäre Zeichenkette
  • php_strip_whitespace — Return source with stripped comments and whitespace
  • sapi_windows_cp_conv — Convert string from one codepage to another
  • sapi_windows_cp_get — Get current codepage
  • sapi_windows_cp_is_utf8 — Indicates whether the codepage is UTF-8 compatible
  • sapi_windows_cp_set — Set process codepage
  • sapi_windows_generate_ctrl_event — Send a CTRL event to another process
  • sapi_windows_set_ctrl_handler — Set or remove a CTRL event handler
  • sapi_windows_vt100_support — Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.
  • show_source — Alias von highlight_file
  • sleep — Verzögert die Programmausführung
  • sys_getloadavg — Ermittelt die durchschnittliche Systemlast
  • time_nanosleep — Verzögert die Ausführung um die gegebene Anzahl Sekunden und Nanosekunden
  • time_sleep_until — Lässt das Skript bis zur angegebenen Zeit schlafen
  • uniqid — Erzeugt eine eindeutige ID
  • unpack — Entpackt die Daten einer binäre Zeichenkette
  • usleep — Verzögert die Programmausführung (in Mikrosekunden)


Überprüft, ob die Verbindung zum Client beendet wurde

  • « Sonstige Funktionen
  • connection_status »
  • PHP Manual
  • Sonstige Funktionen
  • Überprüft, ob die Verbindung zum Client beendet wurde

connection_aborted

(PHP 4, PHP 5, PHP 7, PHP 8)

connection_aborted — Überprüft, ob die Verbindung zum Client beendet wurde

Beschreibung

connection_aborted ( ) : int

Überprüft, ob die Verbindung zum Client beendet wurde.

Rückgabewerte

Gibt 1 zurück, falls die Verbindung zum Client beendet wurde, und andernfalls 0.

Siehe auch

  • connection_status() - Liefert den Verbindungsstatus als Bitfeld
  • ignore_user_abort() - Legt fest, ob der Verbindungsabbruch eines Clients die Skript-Ausführung abbrechen soll
  • Die Verbindungssteuerung mit einer kompletten Beschreibung der Verbindungssteuerung in PHP.


Liefert den Verbindungsstatus als Bitfeld

  • « connection_aborted
  • constant »
  • PHP Manual
  • Sonstige Funktionen
  • Liefert den Verbindungsstatus als Bitfeld

connection_status

(PHP 4, PHP 5, PHP 7, PHP 8)

connection_status — Liefert den Verbindungsstatus als Bitfeld

Beschreibung

connection_status ( ) : int

Gibt den Verbindungsstatus als Bitfeld zurück.

Rückgabewerte

Der Verbindungsstatus als Bitfeld, der zusammen mit den CONNECTION_XXX-Konstanten verwendet werden kann, um den Verbindungsstatus zu ermitteln.

Siehe auch

  • connection_aborted() - Überprüft, ob die Verbindung zum Client beendet wurde
  • ignore_user_abort() - Legt fest, ob der Verbindungsabbruch eines Clients die Skript-Ausführung abbrechen soll
  • Die Verbindungssteuerung mit einer kompletten Beschreibung der Verbindungssteuerung in PHP.


Liefert den Wert einer Konstante

  • « connection_status
  • define »
  • PHP Manual
  • Sonstige Funktionen
  • Liefert den Wert einer Konstante

constant

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

constant — Liefert den Wert einer Konstante

Beschreibung

constant ( string $name ) : mixed

Gibt den Wert der durch name angegebenen Konstante zurück.

constant() ist nützlich, um den Wert einer Konstante abzufragen, deren Namen Sie nicht kennen, d.h. wenn sie in einer Variablen gespeichert ist oder von einer Funktion zurückgegeben wird.

Diese Funktion funktioniert auch mit Klassenkonstanten.

Parameter-Liste

name

Der Name der Konstante

Rückgabewerte

Gibt den Wert der Konstante zurück, oder null, falls die Konstante nicht definiert ist.

Fehler/Exceptions

Wenn die Konstante nicht definiert ist, wird ein E_WARNING Fehler geworfen.

Beispiele

Beispiel #1 constant()-Beispiel

<?php

define("MAXGROESSE", 100);

echo MAXGROESSE;
echo constant("MAXGROESSE"); // dasselbe wie in der vorigen Zeile

interface bar {
    const test = 'foobar!';
}

class foo {
    const test = 'foobar!';
}

$const = 'test';

var_dump(constant('bar::'. $const)); // string(7) "foobar!"
var_dump(constant('foo::'. $const)); // string(7) "foobar!"

?>

Siehe auch

  • define() - Definiert eine benannte Konstante
  • defined() - Prüft, ob eine benannte Konstante existiert
  • Das Kapitel über Konstanten


Definiert eine benannte Konstante

  • « constant
  • defined »
  • PHP Manual
  • Sonstige Funktionen
  • Definiert eine benannte Konstante

define

(PHP 4, PHP 5, PHP 7, PHP 8)

define — Definiert eine benannte Konstante

Beschreibung

define ( string $name , mixed $value , bool $case_insensitive = false ) : bool

Definiert während der Laufzeit eine benannte Konstante.

Parameter-Liste

name

Der Name der Konstante.

Hinweis:

Es ist möglich, Konstanten mit reservierten oder gar ungültigen Namen mittels define() zu definieren, deren Wert (nur) mittels constant() gelesen werden kann. Allerdings wird dies nicht empfohlen.

value

Der Wert der Konstante. In PHP 5 muss value ein scalarer Wert (int, float, string, bool, oder null) sein. In PHP 7 werden auch array-Werte akzeptiert.

Warnung

Obgleich es möglich ist, Konstanten vom Typ resource zu definieren, wird dies nicht empfohlen, da es ein unvorhersagbares Verhalten des Programms zur Folge haben kann.

case_insensitive

Falls auf true gesetzt, wird bei der Konstante nicht zwischen Groß- und Kleinschreibung unterschieden. In der Voreinstellung wird dazwischen unterschieden, d.h KONSTANTE und Konstante repräsentieren unterschiedliche Werte.

Warnung

Das Definieren von Konstanten, die nicht zwischen Groß- und Kleinschreibung unterscheiden, ist von PHP 7.3.0 an missbilligt.

Hinweis:

Groß-/Kleinschreibungsunabhängige Konstanten werden kleingeschrieben gespeichert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.3.0 | case_insensitive ist missbilligt und wird in Version 8.0.0 entfernt.
7.0.0 | array-Werte sind erlaubt.

Beispiele

Beispiel #1 Konstanten definieren

<?php
define("KONSTANTE", "Hallo Welt.");
echo KONSTANTE; // gibt "Hallo Welt." aus
echo Konstante; // gibt "Konstante" aus und erzeugt eine Warnung

define("BEGRUESSUNG", "Hallo Du.", true);
echo BEGRUESSUNG; // gibt "Hallo Du." aus
echo Begruessung; // gibt "Hallo Du." aus

// Funktioniert ab PHP 7
define('ANIMALS', array(
    'Hund',
    'Katze',
    'Maus'
));
echo ANIMALS[1]; // gibt "Katze" aus

?>

Beispiel #2 Konstanten mit reservierten Namen

Dieses Beispiel verdeutlich die Möglichkeit, eine Konstante mit dem selben Namen wie eine magische Konstante zu definieren. Da das resultierende Verhalten offensichtlich verwirrend ist, ist es nicht empfehlenswert, dies in der Praxis zu tun.

<?php
var_dump(defined('__LINE__'));
var_dump(define('__LINE__', 'test'));
var_dump(constant('__LINE__'));
var_dump(__LINE__);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
string(4) "test"
int(5)

Siehe auch

  • defined() - Prüft, ob eine benannte Konstante existiert
  • constant() - Liefert den Wert einer Konstante
  • Das Kapitel über Konstanten


Prüft, ob eine benannte Konstante existiert

  • « define
  • die »
  • PHP Manual
  • Sonstige Funktionen
  • Prüft, ob eine benannte Konstante existiert

defined

(PHP 4, PHP 5, PHP 7, PHP 8)

defined — Prüft, ob eine benannte Konstante existiert

Beschreibung

defined ( string $name ) : bool

Überprüft, ob die angegebene Konstante existiert und definiert ist.

Hinweis:

defined() gilt nur für Konstanten. Verwenden Sie isset(), falls Sie wissen wollen, ob eine Variable existiert. Um zu überprüfen, ob eine Funktion existert, verwenden Sie function_exists().

Parameter-Liste

name

Der Name der Konstante

Rückgabewerte

Wenn die durch name angegebene Konstante definiert ist, wird true zurückgegeben, ansonsten false.

Beispiele

Beispiel #1 Konstanten überprüfen

<?php
/* Beachten Sie die Verwendung von Anführungsstrichen. Das ist wichtig!
 * In diesem Beispiel wird überprüft, ob die Zeichenkette 'TEST' der Name
 * einer Konstante namens TEST ist */
if (defined('TEST')) {
    echo TEST;
}
?>

Siehe auch

  • define() - Definiert eine benannte Konstante
  • constant() - Liefert den Wert einer Konstante
  • get_defined_constants() - Returns an associative array with the names of all the constants and their values
  • function_exists() - Falls die angegebene Funktion definiert ist, wird true zurück gegeben
  • Das Kapitel über Konstanten


Entspricht exit

  • « defined
  • eval »
  • PHP Manual
  • Sonstige Funktionen
  • Entspricht exit

die

(PHP 4, PHP 5, PHP 7, PHP 8)

die — Entspricht exit()

Beschreibung

Dieses Sprachkonstrukt entspricht exit.


Wertet eine Zeichenkette als PHP-Code aus

  • « die
  • exit »
  • PHP Manual
  • Sonstige Funktionen
  • Wertet eine Zeichenkette als PHP-Code aus

eval

(PHP 4, PHP 5, PHP 7, PHP 8)

eval — Wertet eine Zeichenkette als PHP-Code aus

Beschreibung

eval ( string $code ) : mixed

Wertet die in code enthaltene Zeichenkette als PHP aus.

Achtung

Das eval()-Sprachkonstrukt ist sehr gefährlich, weil es die Ausführung von beliebigem PHP-Code erlaubt. Seine Verwendung wird daher nicht empfohlen. Wenn sorgfältig überprüft wurde, dass es keine andere Möglichkeit gibt als dieses Konstrukt zu verwenden, ist besonders darauf zu achten keine von Nutzern bereit gestellten Daten zu übergeben ohne diese zuvor ordnungsgemäß zu validieren.

Parameter-Liste

code

Gültiger PHP-Code, der ausgewertet werden soll.

Der Code darf nicht in öffnende und schließende PHP-Tags eingeschlossen sein, d.h. 'echo "Hi!";' muss anstelle von '<?php echo "Hi!"; ?>' übergeben werden. Es ist dennoch möglich den PHP-Modus durch die entsprechenden PHP-Tags zu verlassen und wieder zu betreten, z.B. 'echo "Im PHP-Modus!"; ?>Im HTML-Modus!<?php echo "Wieder im PHP-Modus!";'.

Abgesehen davon muss der übergebene Code gültiges PHP sein. Das beinhaltet, dass alle Anweisungen ordnungsgemäß mit einem Strichpunkt terminiert sein müssen. 'echo "Hi!"', zum Beispiel, verursacht einen Parse-Fehler, wohingegen 'echo "Hi!";' funktioniert.

Eine return-Anweisung beendet die Auswertung des Codes sofort.

Der Code wird im Geltungsbereich des eval() aufrufenden Codes ausgeführt. Daher bleiben sämtliche Variablen, die im eval() Aufruf definiert oder geändert werden, nach dessen Ende sichtbar.

Rückgabewerte

eval() gibt null zurück, außer wenn im ausgewerteten Code return aufgerufen wird, dann aber wird der an return übergebene Wert zurückgegeben. Von PHP 7 an, wird eval() im Falle eines Parse Errors im ausgewerteten Code eine ParseError Exception werfen. Vor PHP 7 gab eval() in diesem Fall false zurück und der weitere Code wurde normal ausgeführt. Es ist in eval() nicht möglich, einen Parse Error mittels set_error_handler() abzufangen.

Beispiele

Beispiel #1 eval() Beispiel (einfache Texteinfügung)

<?php
$string = 'Bierglas';
$name = 'Binding-Lager';
$str = 'Das ist mein $string, voll mit $name.';
echo $str . "\n";
eval ("\$str = \"$str\";");
echo $str . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Das ist mein $string, voll mit $name.
Das ist mein Bierglas, voll mit Binding-Lager.

Anmerkungen

Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen verwenden.

Tipp

Bei allem, dessen Ergebnisausgabe direkt im Browser angezeigt wird, können Sie die Funktionen zur Ausgabesteuerung verwenden. Damit lässt sich die Ausgabe dieser Funktion erfassen, und - zum Beispiel - in einem string speichern.

Hinweis:

Im Fall eines schweren Fehlers im augewerteten Code wird das komplette Skript beendet.

Siehe auch

  • call_user_func() - Aufruf der Callback-Funktion die als erster Parameter übergeben wurde


Gibt eine Meldung aus und beendet das aktuelle Skript

  • « eval
  • get_browser »
  • PHP Manual
  • Sonstige Funktionen
  • Gibt eine Meldung aus und beendet das aktuelle Skript

exit

(PHP 4, PHP 5, PHP 7, PHP 8)

exit — Gibt eine Meldung aus und beendet das aktuelle Skript

Beschreibung

exit ( string $status = ? ) : void
exit ( int $status ) : void

Beendet die Ausführung des Skripts. Shutdown-Funktionen und Objekt-Destruktoren werden immer ausgeführt, auch wenn exit() aufgerufen wurde.

exit ist ein Sprachkonstrukt und kann ohne Klammern aufgerufen werden, wenn kein status übergeben wird.

Parameter-Liste

status

Falls status eine Zeichenkette ist, gibt diese Funktion beim Beenden den status aus.

Falls status vom Typ int ist, wird dieser Wert als Exit-Status verwendet anstatt ausgegeben zu werden. Ein Exit-Status sollte im Bereich von 0 bis 254 liegen, weil der Exit-Status 255 von PHP reserviert ist und deshalb nicht benutzt werden sollte. Der Status 0 wird verwendet, um ein Programm erfolgreich zu beenden.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 exit-Beispiel

<?php

$dateiname = '/pfad/zur/datei';
$datei = fopen($dateiname, 'r')
    or exit("kann Datei $dateiname nicht öffnen");

?>

Beispiel #2 exit-Status-Beispiel

<?php

// das Programm normal beenden
exit;
exit();
exit(0);

// das Programm mit einem Fehlercode beenden
exit(1);
exit(0376); // oktal

?>

Beispiel #3 Shutdown-Funktionen und Destruktoren werden trotzdem aufgerufen

<?php
class Foo
{
    public function __destruct()
    {
        echo 'Destruktor: ' . __METHOD__ . '()' . PHP_EOL;
    }
}

function shutdown()
{
    echo 'Shutdown-Funktion: ' . __FUNCTION__ . '()' . PHP_EOL;
}

$foo = new Foo();
register_shutdown_function('shutdown');

exit();
echo 'Das hier wird nicht mehr ausgegeben werden.';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

 Shutdown-Funktion: shutdown()
 Destruktor: Foo::__destruct()

Anmerkungen

Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen verwenden.

Hinweis:

Dieses Sprachkonstrukt entspricht die().

Siehe auch

  • register_shutdown_function() - Registriert eine Funktion zur Ausführung beim Skript-Abschluss


Ermittelt die Fähigkeiten des Browsers eines Benutzers

  • « exit
  • __halt_compiler »
  • PHP Manual
  • Sonstige Funktionen
  • Ermittelt die Fähigkeiten des Browsers eines Benutzers

get_browser

(PHP 4, PHP 5, PHP 7, PHP 8)

get_browser — Ermittelt die Fähigkeiten des Browsers eines Benutzers

Beschreibung

get_browser ( string $user_agent = ? , bool $return_array = false ) : mixed

Diese Funktion versucht die Fähigkeiten des Browsers des Benutzers zu ermitteln, indem sie die Informationen über den Browser aus der Datei browscap.ini ausliest.

Parameter-Liste

user_agent

Der User-Agent, der analysiert werden soll. Per Voreinstellung wird der Wert des HTTP User-Agent-Headers verwendet, jedoch können Sie das ändern, d.h. Informationen über einen anderen Browser nachschlagen, indem Sie diesen Parameter übegeben.

Dieser Parameter kann mit einem null-Wert umgangen werden.

return_array

Falls dieser Parameter auf true gesetzt wird, gibt die Funktion statt eines Objekts ein Array zurück.

Rückgabewerte

Die Informationen werden in einem Objekt oder Array zurückgegeben, das verschiedene Datenelemente enthält. Dazu gehören z.B. die Haupt- und Unterversions-Nummer und Kennung des Browsers sowie true/false-Werte für dessen Fähigkeiten, wie z.B. Frames, JavaScript, Cookies usw.

Der Wert von cookies sagt nur etwas darüber aus, ob der Browser an sich in der Lage ist Cookies anzunehmen, und nicht darüber, ob der Benutzer die Annahme von Cookies aktiviert hat. Die einzige Möglichkeit zu testen, ob Cookies akzeptiert werden, besteht darin, mittels setcookie() ein Cookie zu setzen, die Seite neu zu laden und dessen Wert zu überprüfen.

Beispiele

Beispiel #1 Auflistung aller Informationen über den Browser des Benutzers

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
print_r($browser);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)

Anmerkungen

Hinweis:

Damit es richtig funktioniert, muss die browscap-Einstellung Ihrer php.ini auf die richtige browscap.ini-Datei Ihres Systems zeigen.

browscap.ini ist nicht Bestandteil von PHP, aber eine aktuelle » php_browscap.ini bekommen Sie hier.

Da die browscap.ini Informationen zu vielen Browsern enthält, obliegt es dem Skript-Schreiber, diese Datei auf dem Laufenden zu halten. Das Format dieser Datei sollte selbsterklärend sein.


Beendet die Kompilerausführung

  • « get_browser
  • highlight_file »
  • PHP Manual
  • Sonstige Funktionen
  • Beendet die Kompilerausführung

__halt_compiler

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

__halt_compiler — Beendet die Kompilerausführung

Beschreibung

__halt_compiler ( ) : void

Beendet die Kompilerausführung. Dies kann sinnvoll sein, wenn Daten in PHP-Skripte eingebettet sind, wie z.B. in Installationsdateien.

Die Byteposition, an der die Daten beginnen, kann über die Konstante __COMPILER_HALT_OFFSET__ ermittelt werden, die nur definiert ist, wenn die Funktion __halt_compiler() in der Datei benutzt wird.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ein __halt_compiler()-Beispiel

<?php

// Datei öffnen
$fp = fopen(__FILE__, 'r');

// Auf den Anfang der Daten positionieren
fseek($fp, __COMPILER_HALT_OFFSET__);

// und diese ausgeben
var_dump(stream_get_contents($fp));

// hier Kompilation beendenn
__halt_compiler(); ab hier die eigentlichen Daten (z.B. tar, gz, PHP, etc.)

Anmerkungen

Hinweis:

__halt_compiler() kann nur auf der höchsten Ausführungsebene und nicht innerhalb anderer Funktionen oder Methoden benutzt werden.


Syntax-Hervorhebung für eine Datei

  • « __halt_compiler
  • highlight_string »
  • PHP Manual
  • Sonstige Funktionen
  • Syntax-Hervorhebung für eine Datei

highlight_file

(PHP 4, PHP 5, PHP 7, PHP 8)

highlight_file — Syntax-Hervorhebung für eine Datei

Beschreibung

highlight_file ( string $filename , bool $return = false ) : mixed

Erzeugt die hervorgehobene Syntax des Codes der Datei filename als Ausgabe oder als Rückgabewert. Dabei werden die Farben des in PHP eingebauten Syntax-Highlighters benutzt.

Viele Server sind so konfiguriert, dass sie den Code von Dateien mit der phps-Erweiterung automatisch hervorheben. Wenn zum Beispiel beispiel.phps aufgerufen wird, wird die hervorgehobene Syntax des Quellcodes der Datei angezeigt. Mit der folgenden Zeile in der httpd.conf wird dies aktiviert:

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

Parameter-Liste

Dateiname

Der Pfad zur PHP-Datei, deren Code hervorgehoben werden soll.

return

Wenn dieser Parameter auf true gesetzt wird, gibt die Funktion den hervorgehobenen Code zurück.

Rückgabewerte

Falls return auf true gesetzt ist, wird der hervorgehobene Code nicht direkt ausgegeben, sondern als Zeichenkette zurückgegeben. Andernfalls wird bei Erfolg true zurückgegeben und false, falls ein Fehler auftritt.

Anmerkungen

Achtung

Wenn highlight_file() verwendet wird, sollte darauf geachtet werden, dass nicht versehentlich vertrauliche Informationen wie zum Beispiel Passwörter oder andere Informationen, die ein potentielles Sicherheitsrisiko schaffen könnten, verraten werden.

Hinweis:

Wenn der return Parameter verwendet wird, benutzt diese Funktion intern Ausgabepufferung und kann daher nicht in einer ob_start()-Callbackfunktion eingesetzt werden.

Siehe auch

  • highlight_string() - Hervorhebung der Syntax eines Strings
  • INI-Direktiven für Highlighting


Hervorhebung der Syntax eines Strings

  • « highlight_file
  • hrtime »
  • PHP Manual
  • Sonstige Funktionen
  • Hervorhebung der Syntax eines Strings

highlight_string

(PHP 4, PHP 5, PHP 7, PHP 8)

highlight_string — Hervorhebung der Syntax eines Strings

Beschreibung

highlight_string ( string $str , bool $return = false ) : mixed

Gibt HTML-Markup für die gehighlightete Syntaxversion des übergebenen PHP-Codes aus oder zurück. Dabei werden die Farben des in PHP eingebauten Syntax-Highlighter benutzt.

Parameter-Liste

str

Der zu highlightende PHP-Code. Dieser sollte den öffnenden Tag enthalten.

return

Wenn Sie diesen Parameter auf true setzen, gibt die Funktion den gehighlighteten Code zurück.

Rückgabewerte

Wenn return auf true gesetzt ist, wird der gehighlightete Code als String zurückgegeben, statt ihn direkt auszugeben. In allen anderen Fällen wird im Erfolgsfall true und im Fehlerfall false zurückgegeben.

Beispiele

Beispiel #1 highlight_string()-Beispiel

<?php
highlight_string('<?php phpinfo(); ?>');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php phpinfo</span><span style="color: #007700">(); </span><span style="color: #0000BB">?&gt;</span>
</span>
</code>

Anmerkungen

Hinweis:

Wenn der return Parameter verwendet wird, benutzt diese Funktion intern Ausgabepufferung und kann daher nicht in einer ob_start()-Callbackfunktion eingesetzt werden.

Änderungen bezüglich des generierten HTML-Markup vorbehalten.

Siehe auch

  • highlight_file() - Syntax-Hervorhebung für eine Datei
  • INI-Direktiven für Highlighting


Get the system's high resolution time

  • « highlight_string
  • ignore_user_abort »
  • PHP Manual
  • Sonstige Funktionen
  • Get the system's high resolution time

hrtime

(PHP 7 >= 7.3.0, PHP 8)

hrtime — Get the system's high resolution time

Beschreibung

hrtime ( bool $as_number = false ) : array|int|float|false

Returns the system's high resolution time, counted from an arbitrary point in time. The delivered timestamp is monotonic and can not be adjusted.

Parameter-Liste

as_number

Whether the high resolution time should be returned as array or number.

Rückgabewerte

Returns an array of integers in the form [seconds, nanoseconds], if the parameter as_number is false. Otherwise the nanoseconds are returned as int (64bit platforms) or float (32bit platforms). Returns false on failure.

Beispiele

Beispiel #1 hrtime() usage

<?php
echo hrtime(true), PHP_EOL;
print_r(hrtime());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

10444739687370679
Array
(
    [0] => 10444739
    [1] => 687464812
)

Siehe auch

  • The High resolution timing extension
  • microtime() - Gibt den aktuellen Unix-Timestamp/Zeitstempel mit Mikrosekunden zurück


Legt fest, ob der Verbindungsabbruch eines Clients die Skript-Ausführung abbrechen soll

  • « hrtime
  • pack »
  • PHP Manual
  • Sonstige Funktionen
  • Legt fest, ob der Verbindungsabbruch eines Clients die Skript-Ausführung abbrechen soll

ignore_user_abort

(PHP 4, PHP 5, PHP 7, PHP 8)

ignore_user_abort — Legt fest, ob der Verbindungsabbruch eines Clients die Skript-Ausführung abbrechen soll

Beschreibung

ignore_user_abort ( bool|null $enable = null ) : int

Setzt den Wert dafür, ob der Abbruch einer Client-Verbindung die weitere Abarbeitung eines Skripts beenden soll.

Wird PHP als Kommondozeilen-Skript ausgeführt, und das TTY des Skripts wird entfernt ohne dass das Skript terminiert wurde, dann stirbt das Skript beim nächsten Versuch etwas zu schreiben, außer wenn enable auf true gesetzt ist.

Parameter-Liste

enable

Sofern dieser Parameter angegeben wird und nicht null ist, überschreibt diese Funktion die aktuelle Einstellung von ignore_user_abort mit dem übergebenen enable. Andernfalls gibt die Funktion nur die aktuelle Einstellung zurück, ohne sie zu verändern.

Rückgabewerte

Gibt das vorhergehende Setting als Ganzzahl (Integer) zurück.

Changelog

Version | Beschreibung
8.0.0 | enable ist nun ein Nullable-Typ.

Beispiele

Beispiel #1 Ein ignore_user_abort()-Beispiel

<?php
// Ignoriere Abbruch durch den Benutzer und erlaube dem Skript weiterzulaufen
ignore_user_abort(true);
set_time_limit(0);

echo 'Teste Connectionhandling in PHP';

// Lasse eine sinnfreie Schleife laufen, die uns irgendwann
// hoffentlich von der Seite wegklicken oder den "Stop"-Button
// betätigen lässt
while(1)
{
    // Schlug die Verbindung fehl?
    if(connection_status() != CONNECTION_NORMAL)
    {
        break;
    }

    // 10 Sekunden warten
    sleep(10);
}

// Wird dieser Punkt erreicht, wurde das 'break'
// von einem Punkt innerhalb der while-Schleife getriggert

// Somit können wir hier ein Log schreiben oder andere Aufgaben
// ausführen, die nicht davon abhängig sind, ob der Browser des
// Benutzers noch eine stehende Verbindung zum Server hat
?>

Anmerkungen

PHP wird nicht herausfinden, ob ein Benutzer die Verbindung abgebrochen hat, bevor es nicht versucht, Informationen an den Client zu senden. Die einfache Verwendung eines echo-Statements ist keine Garantie dafür, dass eine Information übertragen wurde, lesen Sie daher auch die Dokumentation zu flush().

Siehe auch

  • connection_aborted() - Überprüft, ob die Verbindung zum Client beendet wurde
  • connection_status() - Liefert den Verbindungsstatus als Bitfeld
  • Die Verbindungssteuerung mit einer kompletten Beschreibung der Verbindungssteuerung in PHP.


Packt Daten in eine binäre Zeichenkette

  • « ignore_user_abort
  • php_strip_whitespace »
  • PHP Manual
  • Sonstige Funktionen
  • Packt Daten in eine binäre Zeichenkette

pack

(PHP 4, PHP 5, PHP 7, PHP 8)

pack — Packt Daten in eine binäre Zeichenkette

Beschreibung

pack ( string $format , mixed ...$values ) : string

Packt die angegebenen Argumente unter Beachtung von format in eine binäre Zeichenkette.

Die Idee für diese Funktion entstammt Perl. Alle Formatierungs-Anweisungen funktionieren genau wie dort, allerdings fehlen in PHP einige Format-Codes von Perl (z.B. "u").

Beachten sie, dass der Unterschied zwischen vorzeichenlosen und vorzeichenbehafteten Werten nur Einfluss auf die Funktion unpack() hat, wogegen die Funktion pack() bei vorzeichenlosen und vorzeichenbehafteten Format-Codes dasselbe Ergebnis liefert.

Parameter-Liste

format

Die Zeichenkette format besteht aus Format-Codes, gefolgt von einem optionalen Wiederholungs-Argument. Dieses Argument kann ein ganzzahliger Wert sein oder ein * für Wiederholung bis ans Ende der Daten. Bei den Format-Codes a, A, h und H 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 die sich ergebende binäre Zeichenkette gepackt werden sollen.

Zurzeit sind folgende Formate implementiert:

pack()-Formatzeichen
Code | Beschreibung
a | mit NUL gefüllte Zeichenkette
A | mit Leerzeichen gefüllte Zeichenkette
h | Hex-Zeichenkette, unterer Halbwert zuerst
H | Hex-Zeichenkette, oberer Halbwert zuerst
c | vorzeichenbehaftetes Zeichen
C | vorzeichenloses Zeichen
s | vorzeichenbehafteter Short-Typ (immer 16 Bit, Byte-Folge maschinenabhängig)
S | vorzeichenloser Short-Typ (immer 16 Bit, Byte-Folge maschinenabhängig)
n | vorzeichenloser Short-Typ (immer 16 Bit, Byte-Folge Big-Endian)
v | vorzeichenloser Short-Typ (immer 16 Bit, Byte-Folge Little-Endian)
i | vorzeichenbehaftete Ganzzahl (Größe und Byte-Folge maschinenabhängig)
I | vorzeichenlose Ganzzahl (Größe und Byte-Folge maschinenabhängig)
l | vorzeichenbehafteter Long-Typ (immer 32 Bit, Byte-Folge maschinenabhängig)
L | vorzeichenloser Long-Typ (immer 32 Bit, Byte-Folge maschinenabhängig)
N | vorzeichenloser Long-Typ (immer 32 Bit, Byte-Folge Big-Endian)
V | vorzeichenloser Long-Typ (immer 32 Bit, Byte-Folge Little-Endian)
q | vorzeichenbehafteter Long-Long-Typ (immer 64 Bit, maschinenabhängig)
Q | vorzeichenloser Long-Long-Typ (immer 64 Bit, maschinenabhängig)
J | vorzeichenloser Long-Long-Typ (immer 64 Bit, Byte-Folge Big-Endian)
P | vorzeichenloser Long-Long-Typ (immer 64 Bit, Byte-Folge Little-Endian)
f | Gleitkommazahl (maschinenabhängige Größe und Wiedergabe)
g | Gleitkommazahl (maschinenabhängige Größe, Byte-Folge Little-Endian)
G | Gleitkommazahl (maschinenabhängige Größe, Byte-Folge Big-Endian)
d | Double-Typ (maschinenabhängige Größe und Wiedergabe)
e | Double-Typ (maschinenabhängige Größe, Byte-Folge Little-Endian)
E | Double-Typ (maschinenabhängige Größe, Byte-Folge Big-Endian)
x | NUL Byte
X | geht in der Zeichenkette ein Byte rückwärts
Z | NUL-aufgefüllte Zeichenkette (neu in PHP 5.5)
@ NUL-Auffüllung bis zur absoluten Position

values

Rückgabewerte

Gibt die Daten als binäre Zeichenkette zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion gibt bei einem Fehler nicht mehr false zurück.
7.2.0 | float- und double-Typen unterstützen sowohl Big-Endian als auch Little-Endian.
7.0.15, 7.1.1 | Die Codes "e", "E", "g" und "G" wurden hinzugefügt, um die Byte-Folgen-Unterstützung für float und double zu ermöglichen.
5.6.3 | Die Codes "q", "Q", "J" und "P" wurden hinzugefügt, um die Arbeit mit 64bit-Zahlen zu ermöglichen.
5.5.0 | Der Code "Z" mit äquivalenter Funktionsweise wie "a" wurde zwecks Perl-Kompatibilität hinzugefügt.

Beispiele

Beispiel #1 pack()-Beispiel

<?php
$binaerdaten = pack("nvc*", 0x1234, 0x5678, 65, 66);
?>

Die sich daraus ergebende binäre Zeichenkette ist sechs Bytes lang und enthält die Byte-Folge 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Anmerkungen

Achtung

Es ist zu beachten, dass PHP int-Werte intern als vorzeichenbehaftete Werte einer maschinenabhängigen Größe speichert (C-Typ long). Integer-Literale und Operationen, die Zahlen außerhalb der Grenzen des Typs int ergeben, werden als float gespeichert. Wenn diese Floats als Integer gepackt werden, werden sie zuerst in den Integer-Typ gewandelt. Dies kann u.U. ein nicht erwünschtes Byte-Muster ergeben.

Der wichtigste Fall ist das Packen vorzeichenloser Zahlen, die als int-Typ darstellbar wären, wenn dieser vorzeichenlos wäre. Auf Systemen wo der Typ int 32 Bit groß ist, resultiert die Umwandlung üblicherweise im selben Byte-Muster, wie wenn der int vorzeichenlos wäre (allerdings ist das auf implementierungsspezifische Konvertierungen von vorzeichenlosen in vorzeichenbehaftete Zahlen gemäß dem C-Standard angewiesen). Auf Systemen, wo der Typ int 64 Bit groß ist, hat float vermutlich keine Mantisse, die groß genug ist, um den Wert ohne Genauigkeitsverlust zu speichern. Haben diese Systeme ebenfalls einen nativen 64bit-C-int-Typ (die meisten UNIX-artigen Systeme haben das nicht), dann ist die einzige Möglichkeit, das Packformat I im oberen Bereich zu nutzen, negative int-Werte mit der gleichen Byte-Darstellung wie die gewünschten vorzeichenlosen Werte zu erzeugen.

Siehe auch

  • unpack() - Entpackt die Daten einer binäre Zeichenkette


Return source with stripped comments and whitespace

  • « pack
  • sapi_windows_cp_conv »
  • PHP Manual
  • Sonstige Funktionen
  • Return source with stripped comments and whitespace

php_strip_whitespace

(PHP 5, PHP 7, PHP 8)

php_strip_whitespace — Return source with stripped comments and whitespace

Beschreibung

php_strip_whitespace ( string $filename ) : string

Returns the PHP source code in filename with PHP comments and whitespace removed. This may be useful for determining the amount of actual code in your scripts compared with the amount of comments. This is similar to using php -w from the commandline.

Parameter-Liste

filename

Path to the PHP file.

Rückgabewerte

The stripped source code will be returned on success, or an empty string on failure.

Hinweis:

This function respects the value of the short_open_tag ini directive.

Hinweis:

This function works as described as of PHP 5.0.1. Before this it would only return an empty string. For more information on this bug and its prior behavior, see bug report » #29606.

Beispiele

Beispiel #1 php_strip_whitespace() example

<?php
// PHP comment here

/*
 * Another PHP comment
 */

echo        php_strip_whitespace(__FILE__);
// Newlines are considered whitespace, and are removed too:
do_nothing();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?php
 echo php_strip_whitespace(__FILE__); do_nothing(); ?>

Notice the PHP comments are gone, as are the whitespace and newline after the first echo statement.


Convert string from one codepage to another

  • « php_strip_whitespace
  • sapi_windows_cp_get »
  • PHP Manual
  • Sonstige Funktionen
  • Convert string from one codepage to another

sapi_windows_cp_conv

(PHP 7 >= 7.1.0, PHP 8)

sapi_windows_cp_conv — Convert string from one codepage to another

Beschreibung

sapi_windows_cp_conv ( int|string $in_codepage , int|string $out_codepage , string $subject ) : string

Convert string from one codepage to another.

Parameter-Liste

in_codepage

The codepage of the subject string. Either the codepage name or identifier.

out_codepage

The codepage to convert the subject string to. Either the codepage name or identifier.

subject

The string to convert.

Rückgabewerte

The subject string converted to out_codepage, or null on failure.

Fehler/Exceptions

This function issues E_WARNING level errors, if invalid codepages are given, or if the subject is not valid for in_codepage.

Siehe auch

  • sapi_windows_cp_get() - Get current codepage
  • iconv() - Konvertiert Zeichenketten in einen anderen Zeichensatz


Get current codepage

  • « sapi_windows_cp_conv
  • sapi_windows_cp_is_utf8 »
  • PHP Manual
  • Sonstige Funktionen
  • Get current codepage

sapi_windows_cp_get

(PHP 7 >= 7.1.0, PHP 8)

sapi_windows_cp_get — Get current codepage

Beschreibung

sapi_windows_cp_get ( string $kind = "" ) : int

Gets the current codepage.

Parameter-Liste

kind

The kind of operating system codepage to get, either 'ansi' or 'oem'. Any other value refers to the current codepage of the process.

Rückgabewerte

If kind is 'ansi', the current ANSI code page of the operating system is returned. If kind is 'oem', the current OEM code page of the operating system is returned. Otherwise, the current codepage of the process is returned.

Siehe auch

  • sapi_windows_cp_set() - Set process codepage


Indicates whether the codepage is UTF-8 compatible

  • « sapi_windows_cp_get
  • sapi_windows_cp_set »
  • PHP Manual
  • Sonstige Funktionen
  • Indicates whether the codepage is UTF-8 compatible

sapi_windows_cp_is_utf8

(PHP 7 >= 7.1.0, PHP 8)

sapi_windows_cp_is_utf8 — Indicates whether the codepage is UTF-8 compatible

Beschreibung

sapi_windows_cp_is_utf8 ( ) : bool

Indicates whether the codepage of the current process is UTF-8 compatible.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns whether the codepage of the current process is UTF-8 compatible.

Siehe auch

  • sapi_windows_cp_get() - Get current codepage


Set process codepage

  • « sapi_windows_cp_is_utf8
  • sapi_windows_generate_ctrl_event »
  • PHP Manual
  • Sonstige Funktionen
  • Set process codepage

sapi_windows_cp_set

(PHP 7 >= 7.1.0, PHP 8)

sapi_windows_cp_set — Set process codepage

Beschreibung

sapi_windows_cp_set ( int $cp ) : bool

Set the codepage of the current process.

Parameter-Liste

cp

A codepage identifier.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • sapi_windows_cp_get() - Get current codepage


Send a CTRL event to another process

  • « sapi_windows_cp_set
  • sapi_windows_set_ctrl_handler »
  • PHP Manual
  • Sonstige Funktionen
  • Send a CTRL event to another process

sapi_windows_generate_ctrl_event

(PHP 7 >= 7.4.0, PHP 8)

sapi_windows_generate_ctrl_event — Send a CTRL event to another process

Beschreibung

sapi_windows_generate_ctrl_event ( int $event , int $pid = 0 ) : bool

Sends a CTRL event to another process in the same process group.

Parameter-Liste

event

The CTRL even to send; either PHP_WINDOWS_EVENT_CTRL_C or PHP_WINDOWS_EVENT_CTRL_BREAK.

pid

The ID of the process to which to send the event to. If 0 is given, the event is sent to all processes of the process group.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Basic sapi_windows_generate_ctrl_event() Usage

This example shows how to pass along CTRL+BREAK events to a child process. In this case the child process echoes I'm still alive every second, until the user presses CTRL+BREAK, what causes only the child process to be terminated.

<?php
// forward CTRL+BREAK events to the child process
sapi_windows_set_ctrl_handler('sapi_windows_generate_ctrl_event');

// create a child process which echoes every second
$cmd = ['php', '-r', 'while (true) { echo "I\'m still alive\n"; sleep(1); }'];
$descspec = array(['pipe', 'r'], ['pipe', 'w'], ['pipe', 'w']);
$options = ['create_process_group' => true];
$proc = proc_open($cmd, $descspec, $pipes, null, null, $options);
while (true) {
    echo fgets($pipes[1]);
}
?>

Siehe auch

  • proc_open() - Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe
  • sapi_windows_set_ctrl_handler() - Set or remove a CTRL event handler


Set or remove a CTRL event handler

  • « sapi_windows_generate_ctrl_event
  • sapi_windows_vt100_support »
  • PHP Manual
  • Sonstige Funktionen
  • Set or remove a CTRL event handler

sapi_windows_set_ctrl_handler

(PHP 7 >= 7.4.0, PHP 8)

sapi_windows_set_ctrl_handler — Set or remove a CTRL event handler

Beschreibung

sapi_windows_set_ctrl_handler ( callable $callable , bool $add = true ) : bool

Sets or removes a CTRL event handler, which allows Windows CLI processes to intercept or ignore CTRL+C and CTRL+BREAK events. Note that in multithreaded environments, this is only possible when called from the main thread.

Parameter-Liste

callable

A callback function to set or remove. If set, this function will be called whenever a CTRL+C or CTRL+BREAK event occurs. The function is supposed to have the following signature:

handler ( int $event ) : void
event
The CTRL event which has been received; either PHP_WINDOWS_EVENT_CTRL_C or PHP_WINDOWS_EVENT_CTRL_BREAK.
Setting a null callable causes the process to ignore CTRL+C events, but not CTRL+BREAK events.

add

If true, the handler is set. If false, the handler is removed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Basic sapi_windows_set_ctrl_handler() Usage

This example shows how to intercept CTRL events.

<?php
function ctrl_handler(int $event)
{
    switch ($event) {
        case PHP_WINDOWS_EVENT_CTRL_C:
            echo "You have pressed CTRL+C\n";
            break;
        case PHP_WINDOWS_EVENT_CTRL_BREAK:
            echo "You have pressed CTRL+BREAK\n";
            break;
    }
}

sapi_windows_set_ctrl_handler('ctrl_handler');
while (true); // infinite loop, so the handler can be triggered
?>

Siehe auch

  • sapi_windows_generate_ctrl_event() - Send a CTRL event to another process


Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.

  • « sapi_windows_set_ctrl_handler
  • show_source »
  • PHP Manual
  • Sonstige Funktionen
  • Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.

sapi_windows_vt100_support

(PHP 7 >= 7.2.0, PHP 8)

sapi_windows_vt100_support — Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.

Beschreibung

sapi_windows_vt100_support ( resource $stream , bool $enable = ? ) : bool

If enable is omitted, the function returns true if the stream stream has VT100 control codes enabled, false otherwise.

If enable is specified, the function will try to enable or disable the VT100 features of the stream stream. If the feature has been successfully enabled (or disabled), the function will return true, or false otherwise.

At startup, PHP tries to enable the VT100 feature of the STDOUT/STDERR streams. By the way, if those streams are redirected to a file, the VT100 features may not be enabled.

If VT100 support is enabled, it is possible to use control sequences as they are known from the VT100 terminal. They allow the modification of the terminal's output. On Windows these sequences are called Console Virtual Terminal Sequences.

Warnung

This function uses the ENABLE_VIRTUAL_TERMINAL_PROCESSING flag implemented in the Windows 10 API, so the VT100 feature may not be available on older Windows versions.

Parameter-Liste

stream

The stream on which the function will operate.

enable

If specified, the VT100 feature will be enabled (if true) or disabled (if false).

Rückgabewerte

If enable is not specified: returns true if the VT100 feature is enabled, false otherwise.

If enable is specified: Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 sapi_windows_vt100_support() default state

By default, STDOUT and STDERR have the VT100 feature enabled.

php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' ';var_export(sapi_windows_vt100_support(STDERR));"

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

true true

By the way, if a stream is redirected, the VT100 feature will not be enabled:

php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' ';var_export(sapi_windows_vt100_support(STDERR));" 2>NUL

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

true false

Beispiel #2 sapi_windows_vt100_support() changing state

You won't be able to enable the VT100 feature of STDOUT or STDERR if the stream is redirected.

php -r "var_export(sapi_windows_vt100_support(STDOUT, true));echo ' ';var_export(sapi_windows_vt100_support(STDERR, true));" 2>NUL

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

true false

Beispiel #3 Example usage of VT100 support enabled

<?php
$out = fopen('php://stdout','w');
fwrite($out, 'Just forgot a lettr.');
// Moves the cursor two characters backwards
fwrite($out, "\033[2D");
// Inserts one blank, shifting existing text to the right -> Just forgot a lett r.
fwrite($out, "\033[1@");
fwrite($out, 'e');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Just forgot a letter.


Alias von highlight_file

  • « sapi_windows_vt100_support
  • sleep »
  • PHP Manual
  • Sonstige Funktionen
  • Alias von highlight_file

show_source

(PHP 4, PHP 5, PHP 7, PHP 8)

show_source — Alias von highlight_file()

Beschreibung

Diese Funktion ist ein Alias für: highlight_file().


Verzögert die Programmausführung

  • « show_source
  • sys_getloadavg »
  • PHP Manual
  • Sonstige Funktionen
  • Verzögert die Programmausführung

sleep

(PHP 4, PHP 5, PHP 7, PHP 8)

sleep — Verzögert die Programmausführung

Beschreibung

sleep ( int $seconds ) : int

Verzögert die weitere Skript-Ausführung für die angegebene Anzahl von Sekunden.

Parameter-Liste

seconds

Die Verzögerung in Sekunden.

Rückgabewerte

Gibt bei Erfolg Null zurück oder im Fehlerfall false.

Wenn der Aufruf durch ein Signal unterbrochen wurde, gibt sleep() eine positive Zahl zurück. Auf Windows ist dieser Wert immer 192 (der Wert der WAIT_IO_COMPLETION Konstanten der Windows API). Auf anderen Plattformen ist der Rückgabewert die Anzahl der Sekunden die das Programm eigentlich noch "schlafen" sollte.

Fehler/Exceptions

Falls die angegebene Anzahl von Sekunden negativ ist, erzeugt diese Funktion einen Fehler des Typs E_WARNING.

Beispiele

Beispiel #1 sleep()-Beispiel

<?php
// die aktuelle Zeit
echo date('h:i:s') . "\n";

// 10 Sekunden schlafen
sleep(10);

// aufwachen!
echo date('h:i:s') . "\n";
?>

Dieses Beispiel erzeugt nach zehn Sekunden die Ausgabe.

05:31:23
05:31:33

Siehe auch

  • usleep() - Verzögert die Programmausführung (in Mikrosekunden)
  • time_nanosleep() - Verzögert die Ausführung um die gegebene Anzahl Sekunden und Nanosekunden
  • time_sleep_until() - Lässt das Skript bis zur angegebenen Zeit schlafen
  • set_time_limit() - Beschränkt die maximale Ausführungszeit


Ermittelt die durchschnittliche Systemlast

  • « sleep
  • time_nanosleep »
  • PHP Manual
  • Sonstige Funktionen
  • Ermittelt die durchschnittliche Systemlast

sys_getloadavg

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

sys_getloadavg — Ermittelt die durchschnittliche Systemlast

Beschreibung

sys_getloadavg ( ) : array|false

Gibt drei Messwerte zurück, die die durchschnittliche Systemlast (die Anzahl der Prozesse in der Ausführungswarteschlange) über die jeweils letzten 1, 5 und 15 Minuten repräsentieren.

Rückgabewerte

Gibt ein array mit den drei Messwerten der letzten 1, 5 und 15 Minuten zurück oder false bei einem Fehler.

Beispiele

Beispiel #1 sys_getloadavg()-Beispiel

<?php
$load = sys_getloadavg();
if ($load[0] > 0.80) {
    header('HTTP/1.1 503 Too busy, try again later');
    die('Serverlast zu hoch, versuchen Sie es später noch einmal.');
}
?>

Anmerkungen

Hinweis: Diese Funktion ist auf Windows-Plattformen nicht verfügbar.


Verzögert die Ausführung um die gegebene Anzahl Sekunden und Nanosekunden

  • « sys_getloadavg
  • time_sleep_until »
  • PHP Manual
  • Sonstige Funktionen
  • Verzögert die Ausführung um die gegebene Anzahl Sekunden und Nanosekunden

time_nanosleep

(PHP 5, PHP 7, PHP 8)

time_nanosleep — Verzögert die Ausführung um die gegebene Anzahl Sekunden und Nanosekunden

Beschreibung

time_nanosleep ( int $seconds , int $nanoseconds ) : array|bool

Verzögert die Ausführung um die angegebene Anzahl Sekunden (seconds) und Nanosekunden (nanoseconds).

Parameter-Liste

seconds

Muss eine nichtnegative Ganzzahl sein.

nanoseconds

Muss eine nichtnegative Ganzzahl kleiner eine Milliarde sein.

Hinweis: Unter Windows kann das System abhängig von der Hardware länger anhalten als die angegebene Anzahl von Nanosekunden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Wenn die Verzögerung durch ein Signal unterbrochen wurde, wird ein assoziatives Array mit den folgenden Werten zurückgegeben:

  • seconds - die Anzahl verbleibender Sekunden
  • nanoseconds - die Anzahl verbleibender Nanosekunden

Beispiele

Beispiel #1 time_nanosleep()-Beispiel

<?php
// Vorsicht! Verhält sich nicht wie erwartet, wenn ein Array
// zurückgegeben wird
if (time_nanosleep(0, 500000000)) {
    echo "Verzögerung um eine halbe Sekunde.\n";
}

// Dies ist besser:
if (time_nanosleep(0, 500000000) === true) {
    echo "Verzögerung um eine halbe Sekunde.\n";
}

// Optimal ist:
$nano = time_nanosleep(2, 100000);

if ($nano === true) {
    echo "Verzögert um 2 Sekunden und  100 Millisekunden.\n";
} elseif ($nano === false) {
    echo "Keine Verzögerung.\n";
} elseif (is_array($nano)) {
    $seconds = $nano['seconds'];
    $nanoseconds = $nano['nanoseconds'];
    echo "Von einem Signal unterbrochen.\n";
    echo "Verbleibende Verzögerung: $seconds Sekunden, $nanoseconds Nanosekunden.";
}
?>

Siehe auch

  • sleep() - Verzögert die Programmausführung
  • usleep() - Verzögert die Programmausführung (in Mikrosekunden)
  • time_sleep_until() - Lässt das Skript bis zur angegebenen Zeit schlafen
  • set_time_limit() - Beschränkt die maximale Ausführungszeit


Lässt das Skript bis zur angegebenen Zeit schlafen

  • « time_nanosleep
  • uniqid »
  • PHP Manual
  • Sonstige Funktionen
  • Lässt das Skript bis zur angegebenen Zeit schlafen

time_sleep_until

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

time_sleep_until — Lässt das Skript bis zur angegebenen Zeit schlafen

Beschreibung

time_sleep_until ( float $timestamp ) : bool

Lässt das Skript bis zum angegebenen timestamp schlafen.

Parameter-Liste

timestamp

Der Unix-Timestamp, zu dem die Ausführung des Skripts wieder aufgenommen werden soll.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Die Funktion generiert eine E_WARNING-Meldung, wenn der angegebene timestamp in der Vergangenheit liegt.

Beispiele

Beispiel #1 Ein time_sleep_until()-Beispiel

<?php

// Gibt false zurück und generiert eine Warnung
var_dump(time_sleep_until(time()-1));

// funktioniert evtl. nur auf schnellen Rechnern, schläft für bis zu 0.2 Sekunden
var_dump(time_sleep_until(microtime(true)+0.2));

?>

Anmerkungen

Hinweis: Alle eingetroffenen Signale werden erst ausgeliefert, wenn die Ausführung fortgesetzt wird.

Siehe auch

  • sleep() - Verzögert die Programmausführung
  • usleep() - Verzögert die Programmausführung (in Mikrosekunden)
  • time_nanosleep() - Verzögert die Ausführung um die gegebene Anzahl Sekunden und Nanosekunden
  • set_time_limit() - Beschränkt die maximale Ausführungszeit


Erzeugt eine eindeutige ID

  • « time_sleep_until
  • unpack »
  • PHP Manual
  • Sonstige Funktionen
  • Erzeugt eine eindeutige ID

uniqid

(PHP 4, PHP 5, PHP 7, PHP 8)

uniqid — Erzeugt eine eindeutige ID

Beschreibung

uniqid ( string $prefix = "" , bool $more_entropy = false ) : string

Gibt eine eindeutige ID mit Präfix zurück, die auf der aktuellen Zeit in Mikrosekunden basiert.

Achtung

Diese Funktion erzeugt keine kryptographisch sicheren Werte und sollte nicht für kryptographische Zwecke verwendet werden. Wenn kryptographisch sichere Werte benötigt werden, sollten stattdessen die Funktionen random_int(), random_bytes() oder openssl_random_pseudo_bytes() verwendet werden.

Warnung

Diese Funktion garantiert nicht die Eindeutigkeit der Rückgabewerte. Da die meisten System die Systemzeit durch NTP oder ähnlich justieren, ändert sich die Systemzeit kontinuierlich. Daher ist es möglich, dass diese Funktion keine eindeutige ID für den Prozess/Thread zurückgibt. more_entropy kann verwendet werden, um die Wahrscheinlichkeit der Eindeutigkeit zu erhöhen.

Parameter-Liste

prefix

Kann z.B. dann hilfreich sein, wenn Sie auf mehreren Hosts gleichzeitig IDs erzeugen, was im ungünstigsten Fall zur selben Mikrosekunde geschehen kann.

Bei leerem prefix ist die zurückgegebene Zeichenkette 13 Zeichen lang. Falls more_entropy true ist, sind es 23 Zeichen.

more_entropy

Falls dieser Parameter auf true gesetzt ist, wird uniqid() am Ende des Rückgabewertes zusätzliche mit dem Kongruenzgenerator für Pseudozufallszahlen (Combined Linear Congruential Generator) erzeugte Entropie anfügen, wodurch die Wahrscheinlichkeit erhöht wird, dass das Ergebnis eindeutig ist.

Rückgabewerte

Gibt eine zeitstempelbasierte eindeutige ID als Zeichenkette zurück.

Warnung

Diese Funktion versucht eine eindeutige Kennung zu erzeugen, aber sie garantiert nicht die hunderprozentige Eindeutigkeit des Rückgabewerts.

Beispiele

Beispiel #1 uniqid()-Beispiel

<?php
/* Eine eindeutige ID, beispielsweise: 4b3403665fea6 */
$uniqid = uniqid();

/* Zusätzlich kann ein Präfix genutzt werden. Dabei sind die
 * folgenden beiden Anweisungen identisch:
 */
$uniqid = uniqid($prefix);
$uniqid = $prefix . uniqid();

/* Weiterhin kann der more_entropy Parameter aktiviert werden (auf einigen Systemen
 * wie Cygwin ist dies sogar zwangsweise erforderlich). Dadurch generiert uniqid()
 * einen Wert ähnlich dem folgenden: 4b340550242239.64159797
 */
$uniqid = uniqid('', true);

Anmerkungen

Hinweis:

Unter Cygwin muss der Parameter more_entropy auf true gesetzt sein, damit die Funktion arbeitet.


Entpackt die Daten einer binäre Zeichenkette

  • « uniqid
  • usleep »
  • PHP Manual
  • Sonstige Funktionen
  • Entpackt die Daten einer binäre Zeichenkette

unpack

(PHP 4, PHP 5, PHP 7, PHP 8)

unpack — Entpackt die Daten einer binäre Zeichenkette

Beschreibung

unpack ( string $format , string $string , int $offset = 0 ) : array|false

Überträgt die Daten einer binäre Zeichenkette in ein Array unter Berücksichtigung des Parameters format.

Die entpackten Daten werden in einem assoziativen Array abgebildet. Hierzu müssen die verschiedenen Format-Codes benannt und mit "/" getrennt werden. Wenn ein sich wiederholendes Argument existiert, werden die Array-Schlüssel durchnummeriert, indem ihnen eine Zahl angehängt wird.

Parameter-Liste

format

Die Format-Codes werden unter pack() näher erläutert.

string

Die gepackten Daten.

offset

Der Offset, an dem das Entpacken beginnt.

Rückgabewerte

Gibt ein assoziatives Array zurück, das die entpackten Elemente als binäre Zeichenkette enthält. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.2.0 | float- und double-Typen unterstützen sowohl Big-Endian als auch Little-Endian.
7.1.0 | Der optionale offset wurde hinzugefügt.
5.5.0

Änderungen wurden durchgeführt, um diese Funktion in Übereinstimmung mit Perl zu bringen:

Der Code "a" erhält nun abschließende NULL Bytes.

Der Code "A" entfernt nun alle abschließenden ASCII Whitespaces (Leerzeichen, Tabs, Zeilenvorschübe, Wagenrückläufe und NULL Bytes).

Der Code "Z" wurde für mit NULL aufgefüllte Zeichenketten hinzugefügt, und entfernt abschließende NULL Bytes.

Beispiele

Beispiel #1 unpack()-Beispiel

<?php
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("cchars/nint", $binarydata);
print_r($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [chars] => 4
    [int] => 160
)

Beispiel #2 unpack()-Beispiel mit Wiederholer

<?php
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("c2chars/nint", $binarydata);
print_r($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [chars1] => 4
    [chars2] => 0
    [int] => 40960
)

Anmerkungen

Achtung

Beachten Sie, dass PHP Integer-Werte intern mit Vorzeichen speichert. Wenn Sie einen großen vorzeichenlosen Longwert entpacken und er von der selben Größe ist, die PHP für dessen Speicherung verwendet, wird das Ergebnis ein negativer Wert sein (auch wenn Sie dieses als vorzeichenlos zu entpacken angegeben haben).

Achtung

Wird ein Element nicht benannt, dann werden numerische Indizes beginnend mit 1 verwendet. Es ist zu berücksichtigen, dass im Falle mehrerer unbenannter Elemente ein Teil der Daten überschrieben wird, da die Nummerierung für jedes Element wieder bei 1 beginnt.

Beispiel #3 unpack()-Beispiel mit unbenannten Schlüsseln

<?php
$binarydata = "\x32\x42\x00\xa0";
$array = unpack("c2/n", $binarydata);
var_dump($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [1]=>
  int(160)
  [2]=>
  int(66)
}

Es ist zu beachten, dass der erste Wert vom Symbol c mit dem Wert vom Symbol n überschrieben wurde.

Siehe auch

  • pack() - Packt Daten in eine binäre Zeichenkette


Verzögert die Programmausführung (in Mikrosekunden)

  • « unpack
  • Changelog »
  • PHP Manual
  • Sonstige Funktionen
  • Verzögert die Programmausführung (in Mikrosekunden)

usleep

(PHP 4, PHP 5, PHP 7, PHP 8)

usleep — Verzögert die Programmausführung (in Mikrosekunden)

Beschreibung

usleep ( int $microseconds ) : void

Verzögert die weitere Ausführung des Programms um die angegebene Anzahl von Mikrosekunden.

Parameter-Liste

microseconds

Die Anhaltezeit in Mikrosekunden. Eine Mikrosekunde ist eine millionstel Sekunde.

Hinweis: Werte größer als 1000000 (d.h. länger als eine Sekunde schlafen) werden vom Betriebssystem möglicherweise nicht unterstützt. Verwenden Sie stattdessen sleep().

Hinweis: Unter Windows kann das System abhängig von der Hardware länger anhalten als die angegebene Anzahl von Mikrosekunden.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 usleep()-Beispiel

<?php

// Aktuelle Zeit
echo date('h:i:s') . "\n";

// Warte 2 Sekunden
usleep(2000000);

// Zurück!
echo date('h:i:s') . "\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

11:13:28
11:13:30

Siehe auch

  • sleep() - Verzögert die Programmausführung
  • time_nanosleep() - Verzögert die Ausführung um die gegebene Anzahl Sekunden und Nanosekunden
  • time_sleep_until() - Lässt das Skript bis zur angegebenen Zeit schlafen
  • set_time_limit() - Beschränkt die maximale Ausführungszeit


Changelog

Folgende Änderungen wurden an den Klassen/Funktionen/Methoden dieser Extension vorgenommen.

Version | Function | Description
8.0.0 | ignore_user_abort | enable ist nun ein Nullable-Typ.
 | pack | Diese Funktion gibt bei einem Fehler nicht mehr false zurück.
7.3.0 | define | case_insensitive ist missbilligt und wird in Version 8.0.0 entfernt.
7.2.0 | pack | float- und double-Typen unterstützen sowohl Big-Endian als auch Little-Endian.
 | unpack | float- und double-Typen unterstützen sowohl Big-Endian als auch Little-Endian.
7.1.0 | unpack | Der optionale offset wurde hinzugefügt.
7.0.15, 7.1.1 | pack | Die Codes "e", "E", "g" und "G" wurden hinzugefügt, um die Byte-Folgen-Unterstützung für float und double zu ermöglichen.
7.0.0 | define | array-Werte sind erlaubt.
5.6.3 | pack | Die Codes "q", "Q", "J" und "P" wurden hinzugefügt, um die Arbeit mit 64bit-Zahlen zu ermöglichen.
5.5.0 | pack | Der Code "Z" mit äquivalenter Funktionsweise wie "a" wurde zwecks Perl-Kompatibilität hinzugefügt.
 | unpack | Änderungen wurden durchgeführt, um diese Funktion in Übereinstimmung mit Perl zu bringen: Der Code "a" erhält nun abschließende NULL Bytes. Der Code "A" entfernt nun alle abschließenden ASCII Whitespaces (Leerzeichen, Tabs, Zeilenvorschübe, Wagenrückläufe und NULL Bytes). Der Code "Z" wurde für mit NULL aufgefüllte Zeichenketten hinzugefügt, und entfernt abschließende NULL Bytes.


Seaslog

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Seaslog Funktionen
    • seaslog_get_author — Get SeasLog author.
    • seaslog_get_version — Get SeasLog version.
  • SeasLog — The SeasLog class
    • SeasLog::alert — Record alert log information
    • SeasLog::analyzerCount — Get log count by level, log_path and key_word
    • SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order
    • SeasLog::closeLoggerStream — Manually release stream flow from logger
    • SeasLog::__construct — Description
    • SeasLog::critical — Record critical log information
    • SeasLog::debug — Record debug log information
    • SeasLog::__destruct — Description
    • SeasLog::emergency — Record emergency log information
    • SeasLog::error — Record error log information
    • SeasLog::flushBuffer — Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
    • SeasLog::getBasePath — Get SeasLog base path.
    • SeasLog::getBuffer — Get the logs buffer in memory as array
    • SeasLog::getBufferEnabled — Determin if buffer enabled
    • SeasLog::getDatetimeFormat — Get SeasLog datetime format style
    • SeasLog::getLastLogger — Get SeasLog last logger path
    • SeasLog::getRequestID — Get SeasLog request_id differentiated requests
    • SeasLog::getRequestVariable — Get SeasLog request variable
    • SeasLog::info — Record info log information
    • SeasLog::log — The Common Record Log Function
    • SeasLog::notice — Record notice log information
    • SeasLog::setBasePath — Set SeasLog base path
    • SeasLog::setDatetimeFormat — Set SeasLog datetime format style
    • SeasLog::setLogger — Set SeasLog logger name
    • SeasLog::setRequestID — Set SeasLog request_id differentiated requests
    • SeasLog::setRequestVariable — Manually set SeasLog request variable
    • SeasLog::warning — Record warning log information


Einführung

The Seaslog is an effective,fast,stable log extension for PHP.

SeasLog requires PHP 5.2.0 or greater. Earlier versions may not work.

The log journal,which is usually the operate record of the system, software and the application record. Through the analysis of the log,it can facilitate users to understand the operation of the system, software and the application situation. If your application log is rich enough, it can also analyze the previous use’s operation behavior,type, regional distribution or other more information. The application log also points the multiple levels at the same time, you can easily get the application analysis of health status, timely find problems and quick positioning, and solve the problem, remedy the loss.

The error_log, syslog function which built in PHP is powerful and excellent performance, but due to various defects (error_log have no error level, no fixed format, syslog regardless of module, and mix with system log ), reducing a lot of flexibility , and can't meet the application requirements.

The good news is that there are a number of third-party log class library established to make up for the defects, such as log4php, plog, monolog (of course, there are many applications in the project development of the log class).

So is there a log of libraries meet the following requirements:

  • Modules, classification
  • Simple configuration(preferably without configuration)
  • Clear log format and easy understanding
  • Simple application and well performance
Seaslog just meet these demands.

What is provided at present:

  • In the PHP project, record the log specification and repidly.
  • Configure the default log directory and module
  • Specified log directory and capture current configuration
  • Preliminary analysis of the early warning framework
  • Efficient log buffer and convenient buffer debug
  • Follow the PSR-3 log interface specification
  • Automatically record error information
  • Automatically record abnormal information
  • Support Connect the TCP port, send with RFC5424
  • Support Connect the UDP port, send with RFC5424
  • Support RequestId differentiated requests
  • Support for log template customizations

Read More » SeasLog Document at Github.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/seaslog


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Seaslog Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
seaslog.appender | 1 | PHP_INI_SYSTEM |
seaslog.appender_retry | 0 | PHP_INI_ALL |
seaslog.level | 8 | PHP_INI_ALL |
seaslog.remote_host | 127.0.0.1 | PHP_INI_ALL |
seaslog.remote_port | 514 | PHP_INI_ALL |
seaslog.remote_timeout | 1 | PHP_INI_SYSTEM |
seaslog.default_basepath | /var/log/www | PHP_INI_SYSTEM |
seaslog.default_logger | default | PHP_INI_SYSTEM |
seaslog.default_template | %T | %L | %P | %Q | %t | %M | PHP_INI_SYSTEM |
seaslog.default_datetime_format | Y-m-d H:i:s | PHP_INI_SYSTEM |
seaslog.trace_error | 1 | PHP_INI_ALL |
seaslog.trace_exception | 0 | PHP_INI_SYSTEM |
seaslog.trace_notice | 0 | PHP_INI_ALL |
seaslog.trace_warning | 0 | PHP_INI_ALL |
seaslog.use_buffer | 0 | PHP_INI_SYSTEM |
seaslog.buffer_size | 0 | PHP_INI_ALL |
seaslog.buffer_disabled_in_cli | 0 | PHP_INI_SYSTEM |
seaslog.disting_type | 0 | PHP_INI_SYSTEM |
seaslog.disting_folder | 1 | PHP_INI_SYSTEM |
seaslog.disting_by_hour | 0 | PHP_INI_SYSTEM |
seaslog.recall_depth | 0 | PHP_INI_ALL |
seaslog.trim_wrap | 0 | PHP_INI_ALL |
seaslog.ignore_warning | 1 | PHP_INI_ALL |
seaslog.throw_exception | 1 | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

seaslog.appender int

Switch the Record Log Data Store. 1File 2TCP 3UDP (Switch default 1)

SeasLog will send log to tcp://remote_host:remote_port or udp://remote_host:remote_port server, when seaslog.appender configured to `2 (TCP)` or `3 (UDP)`.

When SeasLog send log to TCP/UDP,style follow RFC5424. The `{logInfo}` affected by seaslog.default_template.

The log style finally formatted such as:
<15>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | DEBUG | 21423 | 599157af4e937 | 1466787583.322 | this is a neeke debug
<14>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | INFO | 21423 | 599157af4e937 | 1466787583.323 | this is a info log
<13>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | NOTICE | 21423 | 599157af4e937 | 1466787583.324 | this is a notice log
seaslog.appender_retry int

Record Log Retry Count. Default 0 (Do Not Retry)

seaslog.buffer_disabled_in_cli int

Disable buffer in cli. 1-Y 0-N(Default)

Switch the configure buffer_disabled_in_cli on. The buffer_disabled_in_cli switch default off. If switch buffer_disabled_in_cli on, and running in cli, seaslog.use_buffer setting will be discarded, Seaslog write to the Data Store IMMEDIATELY.

seaslog.buffer_size int

Configure the buffer_size with 100. The buffer_size default 0, it’s meaning don’t use buffer. If buffer_size > 0,SeasLog will rewritten down into the Data Store when the prerecorded log in memory count >= this buffer_size,and then refresh the memory poll.

seaslog.default_basepath string

Default Log Base Path. Defult "/var/log/www".

seaslog.default_datetime_format string

The DateTime Style. Default "Y-m-d H:i:s".

seaslog.default_logger string

Default Logger Path. Default "default".

seaslog.disting_by_hour int

Switch use the logger with hour. 1-Y 0-N(Default)

Hinweis:

seaslog.disting_by_hour = 1 Switch use Logger DisTing by hour. It’s meaning SeasLog will create the file each one hour.

seaslog.disting_folder int

Switch use the logger with folder. 1-Y(Default) 0-N

Hinweis:

seaslog.disting_folder = 1 Switch use Logger DisTing by folder, it’s meaning SeasLog will create the file deistic by folder, and when this configure close SeasLog will create file use underline connect Logger and Time like default_20180211.log.

seaslog.disting_type int

Switch use the logger with type. 1-Y 0-N(Default)

Hinweis:

seaslog.disting_type = 1 Switch use Logger DisTing by type, it’s meaning SeasLog will create the file deistic info\warn\error and the other type.

seaslog.ignore_warning int

Switch ignore SeasLog warning. 1-On(Default) 0-Off

Hinweis:

seaslog.ignore_warning = 1 Open a warning to ignore SeasLog itself. When directory permissions or receive server ports are blocked, they are ignored; when closed, a warning is thrown.

seaslog.level int

Record logger level. Default 8 (All of them). 0-EMERGENCY 1-ALERT 2-CRITICAL 3-ERROR 4-WARNING 5-NOTICE 6-INFO 7-DEBUG 8-ALL

Hinweis:

Tips: The configuration item has changed since the 1.7.0 version. Before the 1.7.0 version, the smaller the value, the more logs are taken according to the level: 0-all 1-debug 2-info 3-notice 4-warning 5-error 6-critical 7-alert 8-emergency Before the 1.7.0 version, Default 0 (All of them).

seaslog.recall_depth int

Log function recall depth.Will affected variable `LineNo` in `%F`. Default 0

seaslog.remote_host string

If you use Record TCP or UDP, configure this remote ip. Default "127.0.0.1"

seaslog.remote_port int

If you use Record TCP or UDP, configure this remote port. Default 514

seaslog.remote_timeout int

If you use Record TCP or UDP, configure this remote timeout. Default 1 second

seaslog.throw_exception int

Switch throw SeasLog exception. 1-On(Default) 0-Off

Hinweis:

seaslog.throw_exception = 1 Open an exception that throws the SeasLog to throw itself. When the directory authority or the receive server port is blocked, throw an exception; do not throw an exception when closed.

seaslog.trace_error int

Automatic Record final error with default logger. 1-Y(Default) 0-N

seaslog.trace_exception int

Automatic Record exception with default logger. 1-Y 0-N(Default)

seaslog.trace_notice int

Automatic Record notice with default logger. 1-Y 0-N(Default)

seaslog.trace_warning int

Automatic Record warning with default logger. 1-Y 0-N(Default)

seaslog.trim_wrap int

Trim the \n and \r in log message. 1-On 0-Off(Default)

seaslog.use_buffer int

Switch use the log buffer with memory. 1-Y 0-N(Default)

Hinweis:

seaslog.use_buffer = 1 Switch the configure use_buffer on. The use_buffer switch default off. If switch use_buffer on, SeasLog prerecord the log with memory, and them would be rewritten down into the Data Store by request shutdown or php process exit (PHP RSHUTDOWN or PHP MSHUTDOWN).

seaslog.default_template string

Default Log template. Default "%T | %L | %P | %Q | %t | %M".

Hinweis:

`SeasLog`The following default variables are provided, which can be used directly in the log template and replaced as a corresponding value when the log is eventually generated.

Default log template is:`seaslog.default_template = "%T | %L | %P | %Q | %t | %M"`, that's mean,default log style is:`{dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}`

If you custom log template, such as:`seaslog.default_template = "[%T]:%L %P %Q %t %M" `, that's will mean,log style was custom as:`[{dateTime}]:{level} {pid} {uniqid} {timeStamp} {logInfo}`

Seaslog Default Variable Table
Variable Name | Description
%L | Level.
%M | Message.
%T | DateTime. Such as`2017-08-16 19:15:02`,affected by `seaslog.default_datetime_format`.
%t | Timestamp. Such as`1502882102.862`,accurate to milliseconds.
%Q | RequestId. To distinguish a single request, such as not invoking the `SeasLog::setRequestId($string)` function, the unique value generated by the built-in `static char *get_uniqid ()` function is used when the request is initialized.
%H | HostName.
%P | ProcessId.
%D | Domain:Port. Such as`www.cloudwise.com:80`; When Cli, Such as `cli`.
%R | Request URI. Such as`/app/user/signin`; When Cli it's the index script, Such as `CliIndex.php`.
%m | Request Method. Such as`Get`; When Cli it's the command script, Such as `/bin/bash`.
%I | Client IP; When Cli it's `local`. Priority value: HTTP_X_REAL_IP > HTTP_X_FORWARDED_FOR > REMOTE_ADDR
%F | FileName:LineNo. Such as `UserService.php:118`.
%U | MemoryUsage. byte. Call `zend_memory_usage`.
%u | PeakMemoryUsage. byte. Call `zend_memory_peak_usage`.
%C | `TODO` Class::Action. Such as `UserService::getUserInfo`


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SEASLOG_VERSION (string)
SEASLOG_AUTHOR (string)
SEASLOG_ALL (string)
"ALL"
SEASLOG_DEBUG (string)
"DEBUG" - Detailed debug information.Fine-grained information events.
SEASLOG_INFO (string)
"INFO" - Interesting events.Emphasizes the running process of the application.
SEASLOG_NOTICE (string)
"NOTICE" - Normal but significant events.Information that is more important than the INFO level during execution.
SEASLOG_WARNING (string)
"WARNING" - Exceptional occurrences that are not errors.Potentially aberrant information that needs attention and needs to be repaired.
SEASLOG_ERROR (string)
"ERROR" - Runtime errors that do not require immediate action but should typically.
SEASLOG_CRITICAL (string)
"CRITICAL" - Critical conditions.Need to be repaired immediately, and the program component is unavailable.
SEASLOG_ALERT (string)
"ALERT" - Action must be taken immediately.Immediate attention should be given to relevant personnel for emergency repairs.
SEASLOG_EMERGENCY (string)
"EMERGENCY" - System is unusable.
SEASLOG_DETAIL_ORDER_ASC (int)
1
SEASLOG_DETAIL_ORDER_DESC (int)
2
SEASLOG_APPENDER_FILE (int)
1
SEASLOG_APPENDER_TCP (int)
2
SEASLOG_APPENDER_UDP (int)
3
SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL (int)
1
SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN (int)
2
SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT (int)
1
SEASLOG_REQUEST_VARIABLE_REQUEST_URI (int)
2
SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD (int)
3
SEASLOG_REQUEST_VARIABLE_CLIENT_IP (int)
4


Beispiele

Beispiel #1 Get and set base path

<?php
  $basePath1 = SeasLog::getBasePath();

  SeasLog::setBasePath('/log/base_test');
  $basePath2 = SeasLog::getBasePath();

  var_dump($basePath1,$basePath2);

  ?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

  string(12) "/var/log/www"
  string(14) "/log/base_test"

Beispiel #2 Get and set logger

<?php
$lastLogger1 = SeasLog::getLastLogger();

SeasLog::setLogger('testModule/app1');
$lastLogger2 = SeasLog::getLastLogger();

var_dump($lastLogger1,$lastLogger2);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(7) "default"
string(15) "testModule/app1"

Beispiel #3 Fast write log

<?php
SeasLog::log(SEASLOG_ERROR,'this is a error test by ::log');
SeasLog::debug('this is a {userName} debug',array('{userName}' => 'neeke'));
SeasLog::info('this is a info log');
SeasLog::notice('this is a notice log');
SeasLog::warning('your {website} was down,please {action} it ASAP!',array('{website}' => 'github.com','{action}' => 'rboot'));
SeasLog::error('a error log');
SeasLog::critical('some thing was critical');
SeasLog::alert('yes this is a {messageName}',array('{messageName}' => 'alertMSG'));
SeasLog::emergency('Just now, the house next door was completely burnt out! {note}',array('{note}' => 'it`s a joke'));
?>

As the default, seaslog.default_template = "%T | %L | %P | %Q | %t | %M". That's mean,as the default,log record style is: `{dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}`.

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

seaslog.appender = 1

2014-07-27 08:53:52 | ERROR | 23625 | 599159975a9ff | 1406422432.786 | this is a error test by log
2014-07-27 08:53:52 | DEBUG | 23625 | 599159975a9ff | 1406422432.786 | this is a neeke debug
2014-07-27 08:53:52 | INFO | 23625 | 599159975a9ff | 1406422432.787 | this is a info log
2014-07-27 08:53:52 | NOTICE | 23625 | 599159975a9ff | 1406422432.787 | this is a notice log
2014-07-27 08:53:52 | WARNING | 23625 | 599159975a9ff | 1406422432.787 | your github.com was down,please rboot it ASAP!
2014-07-27 08:53:52 | ERROR | 23625 | 599159975a9ff | 1406422432.787 | a error log
2014-07-27 08:53:52 | CRITICAL | 23625 | 599159975a9ff | 1406422432.787 | some thing was critical
2014-07-27 08:53:52 | EMERGENCY | 23625 | 599159975a9ff | 1406422432.787 | Just now, the house next door was completely burnt out! it is a joke

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

seaslog.appender = 2 or seaslog.appender = 3

The log style finally formatted such as:
<15>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | DEBUG | 21423 | 599157af4e937 | 1466787583.322 | this is a neeke debug
<14>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | INFO | 21423 | 599157af4e937 | 1466787583.323 | this is a info log
<13>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | NOTICE | 21423 | 599157af4e937 | 1466787583.324 | this is a notice log

Beispiel #4 Fast count some type of log count value

SeasLog get count value of `grep -wc` use system pipe and return to PHP (array or int).

<?php
$countResult1 = SeasLog::analyzerCount();
$countResult2 = SeasLog::analyzerCount(SEASLOG_WARNING);
$countResult3 = SeasLog::analyzerCount(SEASLOG_ERROR,date('Ymd',time()));

var_dump($countResult1,$countResult2,$countResult3);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(8) {
  ["DEBUG"]=>
  int(3)
  ["INFO"]=>
  int(3)
  ["NOTICE"]=>
  int(3)
  ["WARNING"]=>
  int(3)
  ["ERROR"]=>
  int(6)
  ["CRITICAL"]=>
  int(3)
  ["ALERT"]=>
  int(3)
  ["EMERGENCY"]=>
  int(3)
}
int(7)
int(1)

Beispiel #5 Acquisit some type of log list

SeasLog get count value of `grep -w` use system pipe and return array to PHP.

<?php
$detailErrorArray = SeasLog::analyzerDetail(SEASLOG_ERROR);
var_dump($detailErrorArray);

var_dump(SeasLog::analyzerDetail(SEASLOG_ERROR,date('Ymd',time())));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(6) {
  [0] =>
  string(83) "2014-02-24 00:14:02 | ERROR | 8568 | 599157af4e937 | 1393172042.717 | test error 3 "
  [1] =>
  string(83) "2014-02-24 00:14:04 | ERROR | 8594 | 5991576584446 | 1393172044.104 | test error 3 "
  [2] =>
  string(83) "2014-02-24 00:14:04 | ERROR | 8620 | 1502697015147 | 1393172044.862 | test error 3 "
  [3] =>
  string(83) "2014-02-24 00:14:05 | ERROR | 8646 | 599159975a9ff | 1393172045.989 | test error 3 "
  [4] =>
  string(83) "2014-02-24 00:14:07 | ERROR | 8672 | 599159986ec28 | 1393172047.882 | test error 3 "
  [5] =>
  string(83) "2014-02-24 00:14:08 | ERROR | 8698 | 5991599981cec | 1393172048.736 | test error 3 "
}

array(2) {
  [0] =>
  string(83) "2014-02-24 00:14:02 | ERROR | 8568 | 599157af4e937 | 1393172042.717 | test error 3 "
  [1] =>
  string(83) "2014-02-24 00:14:04 | ERROR | 8594 | 5991576584446 | 1393172044.104 | test error 3 "
}


Seaslog Funktionen

Inhaltsverzeichnis

  • seaslog_get_author — Get SeasLog author.
  • seaslog_get_version — Get SeasLog version.


Get SeasLog author.

  • « Seaslog Funktionen
  • seaslog_get_version »
  • PHP Manual
  • Seaslog Funktionen
  • Get SeasLog author.

seaslog_get_author

(PECL seaslog >=1.0.0)

seaslog_get_author — Get SeasLog author.

Beschreibung

seaslog_get_author ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return SeasLog author as string.

Beispiele

Beispiel #1 seaslog_get_author() example

<?php

var_dump(seaslog_get_author());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(29) "Chitao.Gao  [ neeke@php.net ]"


Get SeasLog version.

  • « seaslog_get_author
  • SeasLog »
  • PHP Manual
  • Seaslog Funktionen
  • Get SeasLog version.

seaslog_get_version

(PECL seaslog >=1.0.0)

seaslog_get_version — Get SeasLog version.

Beschreibung

seaslog_get_version ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return SeasLog version (SEASLOG_VERSION) as string.

Beispiele

Beispiel #1 seaslog_get_version() example

<?php

var_dump(seaslog_get_version());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(5) "1.8.4"


The SeasLog class

(PECL seaslog >=1.0.0)

Einführung

Klassenbeschreibung

SeasLog {
/* Methoden */
public static alert ( string $message , array $content = ? , string $logger = ? ) : bool
public static analyzerCount ( string $level , string $log_path = ? , string $key_word = ? ) : mixed
public static analyzerDetail ( string $level , string $log_path = ? , string $key_word = ? , int $start = ? , int $limit = ? , int $order = ? ) : mixed
public static closeLoggerStream ( int $model , string $logger ) : bool
public static critical ( string $message , array $content = ? , string $logger = ? ) : bool
public static debug ( string $message , array $content = ? , string $logger = ? ) : bool
public __destruct ( )
public static emergency ( string $message , array $content = ? , string $logger = ? ) : bool
public static error ( string $message , array $content = ? , string $logger = ? ) : bool
public static flushBuffer ( ) : bool
public static Seaslog::getBasePath ( ) : string
public static getBuffer ( ) : array
public static getBufferEnabled ( ) : bool
public static getDatetimeFormat ( ) : string
public static getLastLogger ( ) : string
public static getRequestID ( ) : string
public static getRequestVariable ( int $key ) : bool
public static info ( string $message , array $content = ? , string $logger = ? ) : bool
public static log ( string $level , string $message = ? , array $content = ? , string $logger = ? ) : bool
public static notice ( string $message , array $content = ? , string $logger = ? ) : bool
public static setBasePath ( string $base_path ) : bool
public static setDatetimeFormat ( string $format ) : bool
public static setLogger ( string $logger ) : bool
public static setRequestID ( string $request_id ) : bool
public static setRequestVariable ( int $key , string $value ) : bool
public static warning ( string $message , array $content = ? , string $logger = ? ) : bool
}

Inhaltsverzeichnis

  • SeasLog::alert — Record alert log information
  • SeasLog::analyzerCount — Get log count by level, log_path and key_word
  • SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order
  • SeasLog::closeLoggerStream — Manually release stream flow from logger
  • SeasLog::__construct — Description
  • SeasLog::critical — Record critical log information
  • SeasLog::debug — Record debug log information
  • SeasLog::__destruct — Description
  • SeasLog::emergency — Record emergency log information
  • SeasLog::error — Record error log information
  • SeasLog::flushBuffer — Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
  • SeasLog::getBasePath — Get SeasLog base path.
  • SeasLog::getBuffer — Get the logs buffer in memory as array
  • SeasLog::getBufferEnabled — Determin if buffer enabled
  • SeasLog::getDatetimeFormat — Get SeasLog datetime format style
  • SeasLog::getLastLogger — Get SeasLog last logger path
  • SeasLog::getRequestID — Get SeasLog request_id differentiated requests
  • SeasLog::getRequestVariable — Get SeasLog request variable
  • SeasLog::info — Record info log information
  • SeasLog::log — The Common Record Log Function
  • SeasLog::notice — Record notice log information
  • SeasLog::setBasePath — Set SeasLog base path
  • SeasLog::setDatetimeFormat — Set SeasLog datetime format style
  • SeasLog::setLogger — Set SeasLog logger name
  • SeasLog::setRequestID — Set SeasLog request_id differentiated requests
  • SeasLog::setRequestVariable — Manually set SeasLog request variable
  • SeasLog::warning — Record warning log information


Record alert log information

  • « SeasLog
  • SeasLog::analyzerCount »
  • PHP Manual
  • SeasLog
  • Record alert log information

SeasLog::alert

(PECL seaslog >=1.0.0)

SeasLog::alert — Record alert log information

Beschreibung

public static SeasLog::alert ( string $message , array $content = ? , string $logger = ? ) : bool

Record alert log information.

Hinweis:

"ALERT" - Action must be taken immediately. Immediate attention should be given to relevant personnel for emergency repairs.

Parameter-Liste

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Rückgabewerte

Return TRUE on record log information success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::alert() example

<?php

var_dump(SeasLog::alert('log message'));

//with content
var_dump(SeasLog::alert('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::alert('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | ALERT | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | ALERT | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | ALERT | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Siehe auch

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Get log count by level, log_path and key_word

  • « SeasLog::alert
  • SeasLog::analyzerDetail »
  • PHP Manual
  • SeasLog
  • Get log count by level, log_path and key_word

SeasLog::analyzerCount

(PECL seaslog >=1.1.6)

SeasLog::analyzerCount — Get log count by level, log_path and key_word

Beschreibung

public static SeasLog::analyzerCount ( string $level , string $log_path = ? , string $key_word = ? ) : mixed

`SeasLog` get count value of `grep -ai '{level}' | grep -aic '{key_word}'` use system pipe and return to PHP (array or int).

Parameter-Liste

level

String. The log information level.

log_path

String. The log information path.

key_word

String. The search key word for log information.

Rückgabewerte

If `level` is SEASLOG_ALL or Empty, return all levels count as `array`. If `level` is SEASLOG_INFO or the other level, return count as `int`.

Beispiele

Beispiel #1 SeasLog::analyzerCount() example

<?php

$countResult1 = SeasLog::analyzerCount();

//with `level`
$countResult2 = SeasLog::analyzerCount(SEASLOG_DEBUG);

//with `level` and `log_path`
$countResult3 = SeasLog::analyzerCount(SEASLOG_ERROR,date('Ymd',time()));

//with `level` and `key_word`
$countResult4 = SeasLog::analyzerCount(SEASLOG_DEBUG,NULL,'accessToken');

var_dump($countResult1,$countResult2,$countResult3,$countResult4);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(8) {
  ["DEBUG"]=>
  int(180)
  ["INFO"]=>
  int(214)
  ["NOTICE"]=>
  int(0)
  ["WARNING"]=>
  int(0)
  ["ERROR"]=>
  int(228)
  ["CRITICAL"]=>
  int(244)
  ["ALERT"]=>
  int(1)
  ["EMERGENCY"]=>
  int(0)
}

int(180)

int(228)

int(29)

Siehe auch

  • SeasLog::analyzerDetail() - Get log detail by level, log_path, key_word, start, limit, order


Get log detail by level, log_path, key_word, start, limit, order

  • « SeasLog::analyzerCount
  • SeasLog::closeLoggerStream »
  • PHP Manual
  • SeasLog
  • Get log detail by level, log_path, key_word, start, limit, order

SeasLog::analyzerDetail

(PECL seaslog >=1.1.6)

SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order

Beschreibung

public static SeasLog::analyzerDetail ( string $level , string $log_path = ? , string $key_word = ? , int $start = ? , int $limit = ? , int $order = ? ) : mixed

`SeasLog` get results of `grep -ai '{level}' | grep -ai '{key_word}' | sed -n '{start},{limit}'p` use system pipe and return array to PHP.

Parameter-Liste

level

String. The log information level.

log_path

String. The log information path.

key_word

String. The search key word for log information.

start

Int. Default is `1`.

limit

Int. Default is `20`.

order

Int. Default is SEASLOG_DETAIL_ORDER_ASC. See also:

  • SEASLOG_DETAIL_ORDER_ASC
  • SEASLOG_DETAIL_ORDER_DESC

Rückgabewerte

Return results as array.

Hinweis:

When `start`,`limit` is not NULL and in Windows, SeasLog will threw exception with message 'Param start and limit don't support Windows'.

Beispiele

Beispiel #1 SeasLog::analyzerDetail() example

<?php

$result1 = SeasLog::analyzerDetail(SEASLOG_ERROR);

//with `logger` and `key_word`
$result2 = SeasLog::analyzerDetail(SEASLOG_ERROR,'test/logger/','neeke');

//with `start` and `limit`
$result3 = SeasLog::analyzerDetail(SEASLOG_ERROR,'test/logger/','neeke',1,2);

var_dump($result1,$result2,$result3);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(20) {
  [0]=>
  string(93) "2018-07-09 12:52:53 | ERROR | 12247 | 5b42ea2580e51 | 1531111973.528 | log message from neeke"
  [1]=>
  string(93) "2018-07-09 12:52:54 | ERROR | 12256 | 5b42ea26d6657 | 1531111974.878 | log message from neeke"
  [2]=>
  string(93) "2018-07-09 12:52:55 | ERROR | 12265 | 5b42ea277b8d4 | 1531111975.506 | log message from neeke"
  [3]=>
  string(104) "2018-07-09 12:52:55 | ERROR | 12274 | 5b42ea27db5dc | 1531111975.898 | log message from the other people"
...
}

array(3) {
  [0]=>
  string(93) "2018-07-09 12:52:53 | ERROR | 12247 | 5b42ea2580e51 | 1531111973.528 | log message from neeke"
  [1]=>
  string(93) "2018-07-09 12:52:54 | ERROR | 12256 | 5b42ea26d6657 | 1531111974.878 | log message from neeke"
  [2]=>
  string(93) "2018-07-09 12:52:55 | ERROR | 12265 | 5b42ea277b8d4 | 1531111975.506 | log message from neeke"
}

array(2) {
  [0]=>
  string(93) "2018-07-09 12:52:53 | ERROR | 12247 | 5b42ea2580e51 | 1531111973.528 | log message from neeke"
  [1]=>
  string(93) "2018-07-09 12:52:54 | ERROR | 12256 | 5b42ea26d6657 | 1531111974.878 | log message from neeke"
}

Siehe auch

  • SeasLog::analyzerCount() - Get log count by level, log_path and key_word


Manually release stream flow from logger

  • « SeasLog::analyzerDetail
  • SeasLog::__construct »
  • PHP Manual
  • SeasLog
  • Manually release stream flow from logger

SeasLog::closeLoggerStream

(PECL seaslog >=1.8.6)

SeasLog::closeLoggerStream — Manually release stream flow from logger

Beschreibung

public static SeasLog::closeLoggerStream ( int $model , string $logger ) : bool

Manually release stream flow from logger. SeasLog caches the stream handle opened by the log logger to save the overhead of creating a stream. The handle will be automatically released at the end of the request. If in CLI mode, the process will also automatically release when it exits. Or you can use the following functions to manually release(manually release function needs to update SeasLog 1.8.6 or updated version).

Parameter-Liste

model

Constant int.

  • SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL
  • SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN

logger

The logger name.

Rückgabewerte

Return TRUE on released stream flow success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::closeLoggerStream() example

<?php

var_dump(SeasLog::closeLoggerStream());
var_dump(SeasLog::closeLoggerStream(SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL));
var_dump(SeasLog::closeLoggerStream(SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN, 'logger_name'));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)

Siehe auch

  • SeasLog::setLogger() - Set SeasLog logger name
  • SeasLog::getLastLogger() - Get SeasLog last logger path


Description

  • « SeasLog::closeLoggerStream
  • SeasLog::critical »
  • PHP Manual
  • SeasLog
  • Description

SeasLog::__construct

(PECL seaslog >=1.0.0)

SeasLog::__construct — Description

Beschreibung

public SeasLog::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Beispiele

Beispiel #1 SeasLog::__construct() example

<?php

/* ... */

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

...


Record critical log information

  • « SeasLog::__construct
  • SeasLog::debug »
  • PHP Manual
  • SeasLog
  • Record critical log information

SeasLog::critical

(PECL seaslog >=1.0.0)

SeasLog::critical — Record critical log information

Beschreibung

public static SeasLog::critical ( string $message , array $content = ? , string $logger = ? ) : bool

Record critical log information.

Hinweis:

"CRITICAL" - Critical conditions.Need to be repaired immediately, and the program component is unavailable.

Parameter-Liste

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Rückgabewerte

Return TRUE on record log information success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::critical() example

<?php

var_dump(SeasLog::critical('log message'));

//with content
var_dump(SeasLog::critical('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::critical('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | CRITICAL | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | CRITICAL | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | CRITICAL | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Siehe auch

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Record debug log information

  • « SeasLog::critical
  • SeasLog::__destruct »
  • PHP Manual
  • SeasLog
  • Record debug log information

SeasLog::debug

(PECL seaslog >=1.0.0)

SeasLog::debug — Record debug log information

Beschreibung

public static SeasLog::debug ( string $message , array $content = ? , string $logger = ? ) : bool

Record debug log information.

Hinweis:

"DEBUG" - Detailed debug information.Fine-grained information events.

Parameter-Liste

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Rückgabewerte

Return TRUE on record log information success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::debug() example

<?php

var_dump(SeasLog::debug('log message'));

//with content
var_dump(SeasLog::debug('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::debug('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | DEBUG | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | DEBUG | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | DEBUG | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Siehe auch

  • seaslog.default_template
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Description

  • « SeasLog::debug
  • SeasLog::emergency »
  • PHP Manual
  • SeasLog
  • Description

SeasLog::__destruct

(PECL seaslog >=1.0.0)

SeasLog::__destruct — Description

Beschreibung

public SeasLog::__destruct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 SeasLog::__destruct() example

<?php

/* ... */

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

...


Record emergency log information

  • « SeasLog::__destruct
  • SeasLog::error »
  • PHP Manual
  • SeasLog
  • Record emergency log information

SeasLog::emergency

(PECL seaslog >=1.0.0)

SeasLog::emergency — Record emergency log information

Beschreibung

public static SeasLog::emergency ( string $message , array $content = ? , string $logger = ? ) : bool

Record emergency log information.

Hinweis:

"EMERGENCY" - System is unusable.

Parameter-Liste

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Rückgabewerte

Return TRUE on record log information success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::emergency() example

<?php

var_dump(SeasLog::emergency('log message'));

//with content
var_dump(SeasLog::emergency('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::emergency('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | EMERGENCY | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | EMERGENCY | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | EMERGENCY | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Siehe auch

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::log() - The Common Record Log Function


Record error log information

  • « SeasLog::emergency
  • SeasLog::flushBuffer »
  • PHP Manual
  • SeasLog
  • Record error log information

SeasLog::error

(PECL seaslog >=1.0.0)

SeasLog::error — Record error log information

Beschreibung

public static SeasLog::error ( string $message , array $content = ? , string $logger = ? ) : bool

Record error log information.

Hinweis:

"ERROR" - Runtime errors that do not require immediate action but should typically.

Parameter-Liste

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Rückgabewerte

Return TRUE on record log information success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::error() example

<?php

var_dump(SeasLog::error('log message'));

//with content
var_dump(SeasLog::error('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::error('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | ERROR | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | ERROR | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | ERROR | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Siehe auch

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Flush logs buffer, dump to appender file, or send to remote api with tcp/udp

  • « SeasLog::error
  • SeasLog::getBasePath »
  • PHP Manual
  • SeasLog
  • Flush logs buffer, dump to appender file, or send to remote api with tcp/udp

SeasLog::flushBuffer

(PECL seaslog >=1.0.0)

SeasLog::flushBuffer — Flush logs buffer, dump to appender file, or send to remote api with tcp/udp

Beschreibung

public static SeasLog::flushBuffer ( ) : bool

Flush logs buffer by seaslog.appender: dump to file, or send to remote api with tcp/udp.

Hinweis:

See also: seaslog.appender_retry seaslog.remote_host seaslog.remote_port

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return TRUE on flush buffer success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::flushBuffer() example

<?php

SeasLog::info('info log');
SeasLog::debug('debug log');
var_dump(SeasLog::getBuffer());
var_dump(SeasLog::flushBuffer());
var_dump(SeasLog::getBuffer());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(79) "2018-07-07 10:47:58 | INFO | 71910 | 5b4029ded6009 | 1530931678.877 | info log
"
    [1]=>
    string(81) "2018-07-07 10:47:58 | DEBUG | 71910 | 5b4029ded6009 | 1530931678.877 | debug log
"
  }
}
bool(true)
array(0) {
}

Siehe auch

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBufferEnabled() - Determin if buffer enabled
  • SeasLog::getBuffer() - Get the logs buffer in memory as array


Get SeasLog base path.

  • « SeasLog::flushBuffer
  • SeasLog::getBuffer »
  • PHP Manual
  • SeasLog
  • Get SeasLog base path.

SeasLog::getBasePath

(PECL seaslog >=1.0.0)

SeasLog::getBasePath — Get SeasLog base path.

Beschreibung

public static Seaslog::getBasePath ( ) : string

Use the Function SeasLog::getBasePath() will get the value of seaslog.default_basepath what configured in php.ini(seaslog.ini).

If you use Seaslog::setBasePath(), will change the result.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return seaslog.default_basepath as string.

Beispiele

Beispiel #1 SeasLog::getBasePath() example

<?php

var_dump(SeasLog::getBasePath());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(12) "/var/log/www"


Get the logs buffer in memory as array

  • « SeasLog::getBasePath
  • SeasLog::getBufferEnabled »
  • PHP Manual
  • SeasLog
  • Get the logs buffer in memory as array

SeasLog::getBuffer

(PECL seaslog >=1.0.0)

SeasLog::getBuffer — Get the logs buffer in memory as array

Beschreibung

public static SeasLog::getBuffer ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return an array from logs buffer in memory.

Beispiele

Beispiel #1 SeasLog::getBuffer() example

<?php

var_dump(SeasLog::info('info log'));
var_dump(SeasLog::debug('debug log'));
var_dump(SeasLog::getBuffer());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(79) "2018-07-07 10:43:32 | INFO | 71785 | 5b4028d4c58d5 | 1530931412.810 | info log
"
    [1]=>
    string(81) "2018-07-07 10:43:32 | DEBUG | 71785 | 5b4028d4c58d5 | 1530931412.810 | debug log
"
  }
}

Siehe auch

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBufferEnabled() - Determin if buffer enabled
  • SeasLog::flushBuffer() - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp


Determin if buffer enabled

  • « SeasLog::getBuffer
  • SeasLog::getDatetimeFormat »
  • PHP Manual
  • SeasLog
  • Determin if buffer enabled

SeasLog::getBufferEnabled

(PECL seaslog >=1.0.0)

SeasLog::getBufferEnabled — Determin if buffer enabled

Beschreibung

public static SeasLog::getBufferEnabled ( ) : bool

Result join seaslog.use_buffer and seaslog.buffer_disabled_in_cli.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return TRUE on seaslog.use_buffer is true. If switch seaslog.buffer_disabled_in_cli on, and running in cli, seaslog.use_buffer setting will be discarded, Seaslog write to the Data Store IMMEDIATELY.

Beispiele

Beispiel #1 SeasLog::getBufferEnabled() example

<?php

var_dump(SeasLog::getBufferEnabled());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)

Siehe auch

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBuffer() - Get the logs buffer in memory as array
  • SeasLog::flushBuffer() - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp


Get SeasLog datetime format style

  • « SeasLog::getBufferEnabled
  • SeasLog::getLastLogger »
  • PHP Manual
  • SeasLog
  • Get SeasLog datetime format style

SeasLog::getDatetimeFormat

(PECL seaslog >=1.0.0)

SeasLog::getDatetimeFormat — Get SeasLog datetime format style

Beschreibung

public static SeasLog::getDatetimeFormat ( ) : string

Get SeasLog datetime format style. Use the Function SeasLog::getDatetimeFormat() will get the value of seaslog.default_datetime_format what configured in php.ini(seaslog.ini).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Get SeasLog datetime format style of seaslog.default_datetime_format. Use the Function SeasLog::setDatetimeFormat() will change this value.

Beispiele

Beispiel #1 SeasLog::getDatetimeFormat() example

<?php

var_dump(SeasLog::getDateTimeFormat());
var_dump(SeasLog::setDateTimeFormat('Ymd His'));
var_dump(SeasLog::getDateTimeFormat());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(11) "Y-m-d H:i:s"
bool(true)
string(7) "Ymd His"

Siehe auch

  • SeasLog::setDatetimeFormat() - Set SeasLog datetime format style


Get SeasLog last logger path

  • « SeasLog::getDatetimeFormat
  • SeasLog::getRequestID »
  • PHP Manual
  • SeasLog
  • Get SeasLog last logger path

SeasLog::getLastLogger

(PECL seaslog >=1.0.0)

SeasLog::getLastLogger — Get SeasLog last logger path

Beschreibung

public static SeasLog::getLastLogger ( ) : string

Use the Function SeasLog::getLastLogger() will get the value of seaslog.default_logger what configured in php.ini(seaslog.ini).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Use the Function SeasLog::setLogger() will change the value of function SeasLog::getLastLogger().

Beispiele

Beispiel #1 SeasLog::getLastLogger() example

<?php

var_dump(SeasLog::getLastLogger());
SeasLog::setLogger('theNewLogger');
var_dump(SeasLog::getLastLogger());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(7) "default"
string(12) "theNewLogger"

Siehe auch

  • SeasLog::setLogger() - Set SeasLog logger name


Get SeasLog request_id differentiated requests

  • « SeasLog::getLastLogger
  • SeasLog::getRequestVariable »
  • PHP Manual
  • SeasLog
  • Get SeasLog request_id differentiated requests

SeasLog::getRequestID

(PECL seaslog >=1.0.0)

SeasLog::getRequestID — Get SeasLog request_id differentiated requests

Beschreibung

public static SeasLog::getRequestID ( ) : string

To distinguish a single request, such as not invoking the SeasLog::setRequestId() function, the unique value generated by the built-in `static char *get_uniqid ()` function is used when the request is initialized.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return string generated by the built-in `static char *get_uniqid ()` function, or setted by SeasLog::setRequestId() function.

Beispiele

Beispiel #1 SeasLog::getRequestID() example

<?php

var_dump(SeasLog::getRequestID());
var_dump(SeasLog::setRequestID('reqeust_id_test_'.time()))
var_dump(SeasLog::getRequestID());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(13) "5b3f21a209519"
bool(true)
string(26) "reqeust_id_test_1530864034"

Siehe auch

  • SeasLog::setRequestID() - Set SeasLog request_id differentiated requests
  • The Variable `%Q` in Seaslog Default Variable Table.


Get SeasLog request variable

  • « SeasLog::getRequestID
  • SeasLog::info »
  • PHP Manual
  • SeasLog
  • Get SeasLog request variable

SeasLog::getRequestVariable

(PECL seaslog >=1.9.0)

SeasLog::getRequestVariable — Get SeasLog request variable

Beschreibung

public static SeasLog::getRequestVariable ( int $key ) : bool

Get SeasLog request variable.

Parameter-Liste

key

Constant int.

  • SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT
  • SEASLOG_REQUEST_VARIABLE_REQUEST_URI
  • SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD
  • SEASLOG_REQUEST_VARIABLE_CLIENT_IP

Rückgabewerte

Return request variable value on set success.

Beispiele

Beispiel #1 SeasLog::getRequestVariable() example

<?php

$sDomainPort = 'domain:port';
$sRequestUri = 'uri';
$sRequestMethod = 'method';
$sClientIp = 'client_ip';

$iErrorKey = 1000;

$oSeasLog = new SeasLog();

var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT, $sDomainPort));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI, $sRequestUri));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD, $sRequestMethod));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP, $sClientIp));

var_dump($oSeasLog->setRequestVariable($iErrorKey,NULL));

var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT) == $sDomainPort);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI) == $sRequestUri);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD) == $sRequestMethod);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP) == $sClientIp);

var_dump($oSeasLog->getRequestVariable($iErrorKey));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)

Siehe auch

  • SeasLog::setRequestVariable() - Manually set SeasLog request variable


Record info log information

  • « SeasLog::getRequestVariable
  • SeasLog::log »
  • PHP Manual
  • SeasLog
  • Record info log information

SeasLog::info

(PECL seaslog >=1.0.0)

SeasLog::info — Record info log information

Beschreibung

public static SeasLog::info ( string $message , array $content = ? , string $logger = ? ) : bool

Record info log information.

Hinweis:

"INFO" - Interesting events.Emphasizes the running process of the application.

Parameter-Liste

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Rückgabewerte

Return TRUE on record log information success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::info() example

<?php

var_dump(SeasLog::info('log message'));

//with content
var_dump(SeasLog::info('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::info('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | INFO | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | INFO | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | INFO | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Siehe auch

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


The Common Record Log Function

  • « SeasLog::info
  • SeasLog::notice »
  • PHP Manual
  • SeasLog
  • The Common Record Log Function

SeasLog::log

(PECL seaslog >=1.0.0)

SeasLog::log — The Common Record Log Function

Beschreibung

public static SeasLog::log ( string $level , string $message = ? , array $content = ? , string $logger = ? ) : bool

The Common Record Log Function.

Parameter-Liste

level

Can use level in:

  • SEASLOG_DEBUG
  • SEASLOG_INFO
  • SEASLOG_NOTICE
  • SEASLOG_WARNING
  • SEASLOG_ERROR
  • SEASLOG_CRITICAL
  • SEASLOG_ALERT
  • SEASLOG_EMERGENCY
Or you can create a new level self-help.

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Rückgabewerte

Return TRUE on record log information success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::log() example

<?php

var_dump(SeasLog::log(SEASLOG_INFO,'info log'));
var_dump(SeasLog::getBuffer());

//create a new level self-help.
var_dump(SeasLog::log('MySelfLevel','info log'));
var_dump(SeasLog::getBuffer());

//with `content`
var_dump(SeasLog::log('MySelfLevel','info log {NAME}',array('NAME' => 'neeke')));
var_dump(SeasLog::getBuffer());

//with `logger`
var_dump(SeasLog::log('MySelfLevel','info log {NAME}',array('NAME' => 'neeke'),'tmp_logger'));
var_dump(SeasLog::getBuffer());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(1) {
    [0]=>
    string(79) "2018-07-07 11:12:37 | INFO | 72427 | 5b402fa56a2ea | 1530933157.436 | info log
"
  }
}

bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(1) {
    [0]=>
    string(86) "2018-07-07 11:13:59 | MySelfLevel | 72470 | 5b402ff781c5e | 1530933239.532 | info log
"
  }
}

bool(true)
array(1) {
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:28:12 | MySelfLevel | 72833 | 5b40334ce6a2f | 1530934092.946 | info log neeke
"
  }
}

bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(1) {
    [0]=>
    string(86) "2018-07-07 11:20:12 | INFO | 72616 | 5b40316c3641e | 1530933612.222 | info log neeke
"
  }
}

Siehe auch

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information


Record notice log information

  • « SeasLog::log
  • SeasLog::setBasePath »
  • PHP Manual
  • SeasLog
  • Record notice log information

SeasLog::notice

(PECL seaslog >=1.0.0)

SeasLog::notice — Record notice log information

Beschreibung

public static SeasLog::notice ( string $message , array $content = ? , string $logger = ? ) : bool

Record notice log information.

Hinweis:

"NOTICE" - Normal but significant events.Information that is more important than the INFO level during execution.

Parameter-Liste

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Rückgabewerte

Return TRUE on record log information success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::notice() example

<?php

var_dump(SeasLog::notice('log message'));

//with content
var_dump(SeasLog::notice('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::notice('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | NOTICE | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | NOTICE | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | NOTICE | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Siehe auch

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Set SeasLog base path

  • « SeasLog::notice
  • SeasLog::setDatetimeFormat »
  • PHP Manual
  • SeasLog
  • Set SeasLog base path

SeasLog::setBasePath

(PECL seaslog >=1.0.0)

SeasLog::setBasePath — Set SeasLog base path

Beschreibung

public static SeasLog::setBasePath ( string $base_path ) : bool

Set SeasLog base path.

Parameter-Liste

base_path

String.

Rückgabewerte

Return TRUE on setted base path success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::setBasePath() example

<?php

/* ... */

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

...


Set SeasLog datetime format style

  • « SeasLog::setBasePath
  • SeasLog::setLogger »
  • PHP Manual
  • SeasLog
  • Set SeasLog datetime format style

SeasLog::setDatetimeFormat

(PECL seaslog >=1.0.0)

SeasLog::setDatetimeFormat — Set SeasLog datetime format style

Beschreibung

public static SeasLog::setDatetimeFormat ( string $format ) : bool

Set SeasLog datetime format style.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

format

String. Such as `Y-m-d H:i:s` or `Ymd His`. See also first param `format` at date().

Rückgabewerte

Return TRUE on setted datetime format success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::setDatetimeFormat() example

<?php

var_dump(SeasLog::setDateTimeFormat('Ymd His'));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)

Siehe auch

  • SeasLog::getDateTimeFormat() - Get SeasLog datetime format style


Set SeasLog logger name

  • « SeasLog::setDatetimeFormat
  • SeasLog::setRequestID »
  • PHP Manual
  • SeasLog
  • Set SeasLog logger name

SeasLog::setLogger

(PECL seaslog >=1.0.0)

SeasLog::setLogger — Set SeasLog logger name

Beschreibung

public static SeasLog::setLogger ( string $logger ) : bool

Use the Function SeasLog::setLogger() will change the value of function SeasLog::getLastLogger(). Than's mean, SeasLog will record loginfo into the logger directory.

Parameter-Liste

logger

Logger name.

Rückgabewerte

Return TRUE on created logger disectory success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::setLogger() example

<?php

var_dump(SeasLog::setLogger('testModule/testLogger'));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)

Siehe auch

  • SeasLog::getLastLogger() - Get SeasLog last logger path
  • SeasLog::closeLoggerStream() - Manually release stream flow from logger


Set SeasLog request_id differentiated requests

  • « SeasLog::setLogger
  • SeasLog::setRequestVariable »
  • PHP Manual
  • SeasLog
  • Set SeasLog request_id differentiated requests

SeasLog::setRequestID

(PECL seaslog >=1.0.0)

SeasLog::setRequestID — Set SeasLog request_id differentiated requests

Beschreibung

public static SeasLog::setRequestID ( string $request_id ) : bool

To distinguish a single request, such as not invoking the SeasLog::setRequestId() function, the unique value generated by the built-in `static char *get_uniqid ()` function is used when the request is initialized.

Parameter-Liste

request_id

String.

Rückgabewerte

Return TRUE on set request_id success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::setRequestID() example

<?php

var_dump(SeasLog::setRequestID(time() . rand()));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)

Siehe auch

  • SeasLog::getRequestID() - Get SeasLog request_id differentiated requests


Manually set SeasLog request variable

  • « SeasLog::setRequestID
  • SeasLog::warning »
  • PHP Manual
  • SeasLog
  • Manually set SeasLog request variable

SeasLog::setRequestVariable

(PECL seaslog >=1.9.0)

SeasLog::setRequestVariable — Manually set SeasLog request variable

Beschreibung

public static SeasLog::setRequestVariable ( int $key , string $value ) : bool

Manually set SeasLog request variable.

Parameter-Liste

key

Constant int.

  • SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT
  • SEASLOG_REQUEST_VARIABLE_REQUEST_URI
  • SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD
  • SEASLOG_REQUEST_VARIABLE_CLIENT_IP

value

The request variable value.

Rückgabewerte

Return TRUE on set success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::setRequestVariable() example

<?php

$sDomainPort = 'domain:port';
$sRequestUri = 'uri';
$sRequestMethod = 'method';
$sClientIp = 'client_ip';

$iErrorKey = 1000;

$oSeasLog = new SeasLog();

var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT, $sDomainPort));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI, $sRequestUri));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD, $sRequestMethod));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP, $sClientIp));

var_dump($oSeasLog->setRequestVariable($iErrorKey,NULL));

var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT) == $sDomainPort);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI) == $sRequestUri);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD) == $sRequestMethod);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP) == $sClientIp);

var_dump($oSeasLog->getRequestVariable($iErrorKey));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)

Siehe auch

  • SeasLog::getRequestVariable() - Get SeasLog request variable


Record warning log information

  • « SeasLog::setRequestVariable
  • SPL »
  • PHP Manual
  • SeasLog
  • Record warning log information

SeasLog::warning

(PECL seaslog >=1.0.0)

SeasLog::warning — Record warning log information

Beschreibung

public static SeasLog::warning ( string $message , array $content = ? , string $logger = ? ) : bool

Record warning log information.

Hinweis:

"WARNING" - Exceptional occurrences that are not errors. Potentially aberrant information that needs attention and needs to be repaired.

Parameter-Liste

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Rückgabewerte

Return TRUE on record log information success, FALSE on failure.

Beispiele

Beispiel #1 SeasLog::warning() example

<?php

var_dump(SeasLog::warning('log message'));

//with content
var_dump(SeasLog::warning('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::warning('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | WARNING | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | WARNING | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | WARNING | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Siehe auch

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Standard PHP Library (SPL)

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Datenstrukturen
    • SplDoublyLinkedList — The SplDoublyLinkedList class
    • SplStack — The SplStack class
    • SplQueue — The SplQueue class
    • SplHeap — The SplHeap class
    • SplMaxHeap — The SplMaxHeap class
    • SplMinHeap — The SplMinHeap class
    • SplPriorityQueue — The SplPriorityQueue class
    • SplFixedArray — The SplFixedArray class
    • SplObjectStorage — The SplObjectStorage class
  • Iteratoren
    • AppendIterator — The AppendIterator class
    • ArrayIterator — The ArrayIterator class
    • CachingIterator — The CachingIterator class
    • CallbackFilterIterator — The CallbackFilterIterator class
    • DirectoryIterator — The DirectoryIterator class
    • EmptyIterator — The EmptyIterator class
    • FilesystemIterator — The FilesystemIterator class
    • FilterIterator — The FilterIterator class
    • GlobIterator — The GlobIterator class
    • InfiniteIterator — The InfiniteIterator class
    • IteratorIterator — The IteratorIterator class
    • LimitIterator — The LimitIterator class
    • MultipleIterator — The MultipleIterator class
    • NoRewindIterator — The NoRewindIterator class
    • ParentIterator — The ParentIterator class
    • RecursiveArrayIterator — The RecursiveArrayIterator class
    • RecursiveCachingIterator — The RecursiveCachingIterator class
    • RecursiveCallbackFilterIterator — The RecursiveCallbackFilterIterator class
    • RecursiveDirectoryIterator — The RecursiveDirectoryIterator class
    • RecursiveFilterIterator — The RecursiveFilterIterator class
    • RecursiveIteratorIterator — The RecursiveIteratorIterator class
    • RecursiveRegexIterator — The RecursiveRegexIterator class
    • RecursiveTreeIterator — The RecursiveTreeIterator class
    • RegexIterator — The RegexIterator class
  • Interfaces
    • Countable — The Countable interface
    • OuterIterator — The OuterIterator interface
    • RecursiveIterator — The RecursiveIterator interface
    • SeekableIterator — The SeekableIterator interface
  • Exceptions
    • BadFunctionCallException — The BadFunctionCallException class
    • BadMethodCallException — The BadMethodCallException class
    • DomainException — The DomainException class
    • InvalidArgumentException — The InvalidArgumentException class
    • LengthException — The LengthException class
    • LogicException — The LogicException class
    • OutOfBoundsException — The OutOfBoundsException class
    • OutOfRangeException — The OutOfRangeException class
    • OverflowException — The OverflowException class
    • RangeException — The RangeException class
    • RuntimeException — The RuntimeException class
    • UnderflowException — The UnderflowException class
    • UnexpectedValueException — The UnexpectedValueException class
  • SPL Funktionen
    • class_implements — Return the interfaces which are implemented by the given class or interface
    • class_parents — Return the parent classes of the given class
    • class_uses — Return the traits used by the given class
    • iterator_apply — Call a function for every element in an iterator
    • iterator_count — Count the elements in an iterator
    • iterator_to_array — Copy the iterator into an array
    • spl_autoload_call — Try all registered __autoload() functions to load the requested class
    • spl_autoload_extensions — Registriert und gibt die voreingestellten Dateiendungen für spl_autoload zurück
    • spl_autoload_functions — Liefert alle registrierten __autoload() Funktionen
    • spl_autoload_register — Register given function as __autoload() implementation
    • spl_autoload_unregister — Unregister given function as __autoload() implementation
    • spl_autoload — Default implementation for __autoload()
    • spl_classes — Return available SPL classes
    • spl_object_hash — Return hash id for given object
    • spl_object_id — Return the integer object handle for given object
  • Dateibehandlung
    • SplFileInfo — The SplFileInfo class
    • SplFileObject — The SplFileObject class
    • SplTempFileObject — The SplTempFileObject class
  • Verschiedene Klassen und Interfaces
    • ArrayObject — The ArrayObject class
    • SplObserver — The SplObserver interface
    • SplSubject — The SplSubject interface


Einführung

Die Standard PHP Library (SPL) ist eine Sammlung von Interfacen und Klassen für die Lösung von Standardproblemen.

SPL bietet eine Reihe von Standard-Datenstrukturen, eine Reihe von Iteratoren, um Objekte zu durchlaufen, eine Reihe von Schnittstellen, eine Reihe von Standard-Ausnahmen, eine Reihe von Klassen, um mit Dateien zu arbeiten und es enthält eine Reihe von Funktionen wie spl_autoload_register()


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Warnung

SPL uses class constants since PHP 5.1. Prior releases use global constants in the form RIT_LEAVES_ONLY.


Datenstrukturen

Inhaltsverzeichnis

  • SplDoublyLinkedList
  • SplStack
  • SplQueue
  • SplHeap
  • SplMaxHeap
  • SplMinHeap
  • SplPriorityQueue
  • SplFixedArray
  • SplObjectStorage

SPL provides a set of standard datastructures. They are grouped here by their underlying implementation which usually defines their general field of application.

Doubly Linked Lists

A Doubly Linked List (DLL) is a list of nodes linked in both directions to each other. Iterator's operations, access to both ends, addition or removal of nodes have a cost of O(1) when the underlying structure is a DLL. It hence provides a decent implementation for stacks and queues.

  • SplDoublyLinkedList
    • SplStack
    • SplQueue

Heaps

Heaps are tree-like structures that follow the heap-property: each node is greater than or equal to its children, when compared using the implemented compare method which is global to the heap.

  • SplHeap
    • SplMaxHeap
    • SplMinHeap
  • SplPriorityQueue

Arrays

Arrays are structures that store the data in a continuous way, accessible via indexes. Don't confuse them with PHP arrays: PHP arrays are in fact implemented as ordered hashtables.

  • SplFixedArray

Map

A map is a datastructure holding key-value pairs. PHP arrays can be seen as maps from integers/strings to values. SPL provides a map from objects to data. This map can also be used as an object set.

  • SplObjectStorage


The SplDoublyLinkedList class

(PHP 5 >= 5.3.0, PHP 7)

Einführung

The SplDoublyLinkedList class provides the main functionalities of a doubly linked list.

Klassenbeschreibung

SplDoublyLinkedList implements Iterator , ArrayAccess , Countable , Serializable {
/* Konstanten */
const int IT_MODE_LIFO = 2 ;
const int IT_MODE_FIFO = 0 ;
const int IT_MODE_DELETE = 1 ;
const int IT_MODE_KEEP = 0 ;
/* Methoden */
public __construct ( )
public add ( mixed $index , mixed $newval ) : void
public bottom ( ) : mixed
public count ( ) : int
public current ( ) : mixed
public getIteratorMode ( ) : int
public isEmpty ( ) : bool
public key ( ) : mixed
public next ( ) : void
public offsetExists ( mixed $index ) : bool
public offsetGet ( mixed $index ) : mixed
public offsetSet ( mixed $index , mixed $newval ) : void
public offsetUnset ( mixed $index ) : void
public pop ( ) : mixed
public prev ( ) : void
public push ( mixed $value ) : void
public rewind ( ) : void
public serialize ( ) : string
public setIteratorMode ( int $mode ) : void
public shift ( ) : mixed
public top ( ) : mixed
public unserialize ( string $serialized ) : void
public unshift ( mixed $value ) : void
public valid ( ) : bool
}

Vordefinierte Konstanten

Iteration Direction

SplDoublyLinkedList::IT_MODE_LIFO

The list will be iterated in a last in, first out order, like a stack.

SplDoublyLinkedList::IT_MODE_FIFO

The list will be iterated in a first in, first out order, like a queue.

Iteration Behavior

SplDoublyLinkedList::IT_MODE_DELETE

Iteration will remove the iterated elements.

SplDoublyLinkedList::IT_MODE_KEEP

Iteration will not remove the iterated elements.

Inhaltsverzeichnis

  • SplDoublyLinkedList::add — Add/insert a new value at the specified index
  • SplDoublyLinkedList::bottom — Peeks at the node from the beginning of the doubly linked list
  • SplDoublyLinkedList::__construct — Constructs a new doubly linked list
  • SplDoublyLinkedList::count — Counts the number of elements in the doubly linked list
  • SplDoublyLinkedList::current — Return current array entry
  • SplDoublyLinkedList::getIteratorMode — Returns the mode of iteration
  • SplDoublyLinkedList::isEmpty — Checks whether the doubly linked list is empty
  • SplDoublyLinkedList::key — Return current node index
  • SplDoublyLinkedList::next — Move to next entry
  • SplDoublyLinkedList::offsetExists — Returns whether the requested $index exists
  • SplDoublyLinkedList::offsetGet — Returns the value at the specified $index
  • SplDoublyLinkedList::offsetSet — Sets the value at the specified $index to $newval
  • SplDoublyLinkedList::offsetUnset — Unsets the value at the specified $index
  • SplDoublyLinkedList::pop — Pops a node from the end of the doubly linked list
  • SplDoublyLinkedList::prev — Move to previous entry
  • SplDoublyLinkedList::push — Pushes an element at the end of the doubly linked list
  • SplDoublyLinkedList::rewind — Rewind iterator back to the start
  • SplDoublyLinkedList::serialize — Serializes the storage
  • SplDoublyLinkedList::setIteratorMode — Sets the mode of iteration
  • SplDoublyLinkedList::shift — Shifts a node from the beginning of the doubly linked list
  • SplDoublyLinkedList::top — Peeks at the node from the end of the doubly linked list
  • SplDoublyLinkedList::unserialize — Unserializes the storage
  • SplDoublyLinkedList::unshift — Prepends the doubly linked list with an element
  • SplDoublyLinkedList::valid — Check whether the doubly linked list contains more nodes


Add/insert a new value at the specified index

  • « SplDoublyLinkedList
  • SplDoublyLinkedList::bottom »
  • PHP Manual
  • SplDoublyLinkedList
  • Add/insert a new value at the specified index

SplDoublyLinkedList::add

(PHP 5 >= 5.5.0, PHP 7)

SplDoublyLinkedList::add — Add/insert a new value at the specified index

Beschreibung

public SplDoublyLinkedList::add ( mixed $index , mixed $newval ) : void

Insert the value newval at the specified index, shuffling the previous value at that index (and all subsequent values) up through the list.

Parameter-Liste

index

The index where the new value is to be inserted.

newval

The new value for the index.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws OutOfRangeException when index is out of bounds or when index cannot be parsed as an integer.


Peeks at the node from the beginning of the doubly linked list

  • « SplDoublyLinkedList::add
  • SplDoublyLinkedList::__construct »
  • PHP Manual
  • SplDoublyLinkedList
  • Peeks at the node from the beginning of the doubly linked list

SplDoublyLinkedList::bottom

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::bottom — Peeks at the node from the beginning of the doubly linked list

Beschreibung

public SplDoublyLinkedList::bottom ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value of the first node.

Fehler/Exceptions

Throws RuntimeException when the data-structure is empty.


Constructs a new doubly linked list

  • « SplDoublyLinkedList::bottom
  • SplDoublyLinkedList::count »
  • PHP Manual
  • SplDoublyLinkedList
  • Constructs a new doubly linked list

SplDoublyLinkedList::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::__construct — Constructs a new doubly linked list

Beschreibung

public SplDoublyLinkedList::__construct ( )

This constructs a new empty doubly linked list.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplDoublyLinkedList::__construct() example

<?php
$dll = new SplDoublyLinkedList();

$dll->push(2);
$dll->push(3);
$dll->unshift(5);

var_dump($dll);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(SplDoublyLinkedList)#1 (2) {
  ["flags":"SplDoublyLinkedList":private]=>
  int(0)
  ["dllist":"SplDoublyLinkedList":private]=>
  array(3) {
    [0]=>
    int(5)
    [1]=>
    int(2)
    [2]=>
    int(3)
  }
}


Counts the number of elements in the doubly linked list

  • « SplDoublyLinkedList::__construct
  • SplDoublyLinkedList::current »
  • PHP Manual
  • SplDoublyLinkedList
  • Counts the number of elements in the doubly linked list

SplDoublyLinkedList::count

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::count — Counts the number of elements in the doubly linked list

Beschreibung

public SplDoublyLinkedList::count ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of elements in the doubly linked list.


Return current array entry

  • « SplDoublyLinkedList::count
  • SplDoublyLinkedList::getIteratorMode »
  • PHP Manual
  • SplDoublyLinkedList
  • Return current array entry

SplDoublyLinkedList::current

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::current — Return current array entry

Beschreibung

public SplDoublyLinkedList::current ( ) : mixed

Get the current doubly linked list node.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current node value.


Returns the mode of iteration

  • « SplDoublyLinkedList::current
  • SplDoublyLinkedList::isEmpty »
  • PHP Manual
  • SplDoublyLinkedList
  • Returns the mode of iteration

SplDoublyLinkedList::getIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::getIteratorMode — Returns the mode of iteration

Beschreibung

public SplDoublyLinkedList::getIteratorMode ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the different modes and flags that affect the iteration.


Checks whether the doubly linked list is empty

  • « SplDoublyLinkedList::getIteratorMode
  • SplDoublyLinkedList::key »
  • PHP Manual
  • SplDoublyLinkedList
  • Checks whether the doubly linked list is empty

SplDoublyLinkedList::isEmpty

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::isEmpty — Checks whether the doubly linked list is empty

Beschreibung

public SplDoublyLinkedList::isEmpty ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns whether the doubly linked list is empty.


Return current node index

  • « SplDoublyLinkedList::isEmpty
  • SplDoublyLinkedList::next »
  • PHP Manual
  • SplDoublyLinkedList
  • Return current node index

SplDoublyLinkedList::key

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::key — Return current node index

Beschreibung

public SplDoublyLinkedList::key ( ) : mixed

This function returns the current node index

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current node index.


Move to next entry

  • « SplDoublyLinkedList::key
  • SplDoublyLinkedList::offsetExists »
  • PHP Manual
  • SplDoublyLinkedList
  • Move to next entry

SplDoublyLinkedList::next

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::next — Move to next entry

Beschreibung

public SplDoublyLinkedList::next ( ) : void

Move the iterator to the next node.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Returns whether the requested $index exists

  • « SplDoublyLinkedList::next
  • SplDoublyLinkedList::offsetGet »
  • PHP Manual
  • SplDoublyLinkedList
  • Returns whether the requested $index exists

SplDoublyLinkedList::offsetExists

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetExists — Returns whether the requested $index exists

Beschreibung

public SplDoublyLinkedList::offsetExists ( mixed $index ) : bool

Parameter-Liste

index

The index being checked.

Rückgabewerte

true if the requested index exists, otherwise false


Returns the value at the specified $index

  • « SplDoublyLinkedList::offsetExists
  • SplDoublyLinkedList::offsetSet »
  • PHP Manual
  • SplDoublyLinkedList
  • Returns the value at the specified $index

SplDoublyLinkedList::offsetGet

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetGet — Returns the value at the specified $index

Beschreibung

public SplDoublyLinkedList::offsetGet ( mixed $index ) : mixed

Parameter-Liste

index

The index with the value.

Rückgabewerte

The value at the specified index.

Fehler/Exceptions

Throws OutOfRangeException when index is out of bounds or when index cannot be parsed as an integer.


Sets the value at the specified $index to $newval

  • « SplDoublyLinkedList::offsetGet
  • SplDoublyLinkedList::offsetUnset »
  • PHP Manual
  • SplDoublyLinkedList
  • Sets the value at the specified $index to $newval

SplDoublyLinkedList::offsetSet

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetSet — Sets the value at the specified $index to $newval

Beschreibung

public SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval ) : void

Sets the value at the specified index to newval.

Parameter-Liste

index

The index being set.

newval

The new value for the index.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws OutOfRangeException when index is out of bounds or when index cannot be parsed as an integer.


Unsets the value at the specified $index

  • « SplDoublyLinkedList::offsetSet
  • SplDoublyLinkedList::pop »
  • PHP Manual
  • SplDoublyLinkedList
  • Unsets the value at the specified $index

SplDoublyLinkedList::offsetUnset

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetUnset — Unsets the value at the specified $index

Beschreibung

public SplDoublyLinkedList::offsetUnset ( mixed $index ) : void

Unsets the value at the specified index.

Parameter-Liste

index

The index being unset.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws OutOfRangeException when index is out of bounds or when index cannot be parsed as an integer.


Pops a node from the end of the doubly linked list

  • « SplDoublyLinkedList::offsetUnset
  • SplDoublyLinkedList::prev »
  • PHP Manual
  • SplDoublyLinkedList
  • Pops a node from the end of the doubly linked list

SplDoublyLinkedList::pop

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::pop — Pops a node from the end of the doubly linked list

Beschreibung

public SplDoublyLinkedList::pop ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value of the popped node.

Fehler/Exceptions

Throws RuntimeException when the data-structure is empty.


Move to previous entry

  • « SplDoublyLinkedList::pop
  • SplDoublyLinkedList::push »
  • PHP Manual
  • SplDoublyLinkedList
  • Move to previous entry

SplDoublyLinkedList::prev

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::prev — Move to previous entry

Beschreibung

public SplDoublyLinkedList::prev ( ) : void

Move the iterator to the previous node.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Pushes an element at the end of the doubly linked list

  • « SplDoublyLinkedList::prev
  • SplDoublyLinkedList::rewind »
  • PHP Manual
  • SplDoublyLinkedList
  • Pushes an element at the end of the doubly linked list

SplDoublyLinkedList::push

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::push — Pushes an element at the end of the doubly linked list

Beschreibung

public SplDoublyLinkedList::push ( mixed $value ) : void

Pushes value at the end of the doubly linked list.

Parameter-Liste

value

The value to push.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Rewind iterator back to the start

  • « SplDoublyLinkedList::push
  • SplDoublyLinkedList::serialize »
  • PHP Manual
  • SplDoublyLinkedList
  • Rewind iterator back to the start

SplDoublyLinkedList::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::rewind — Rewind iterator back to the start

Beschreibung

public SplDoublyLinkedList::rewind ( ) : void

This rewinds the iterator to the beginning.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Serializes the storage

  • « SplDoublyLinkedList::rewind
  • SplDoublyLinkedList::setIteratorMode »
  • PHP Manual
  • SplDoublyLinkedList
  • Serializes the storage

SplDoublyLinkedList::serialize

(PHP 5 >= 5.4.0, PHP 7)

SplDoublyLinkedList::serialize — Serializes the storage

Beschreibung

public SplDoublyLinkedList::serialize ( ) : string

Serializes the storage.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The serialized string.

Siehe auch

  • SplDoublyLinkedList::unserialize() - Unserializes the storage


Sets the mode of iteration

  • « SplDoublyLinkedList::serialize
  • SplDoublyLinkedList::shift »
  • PHP Manual
  • SplDoublyLinkedList
  • Sets the mode of iteration

SplDoublyLinkedList::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::setIteratorMode — Sets the mode of iteration

Beschreibung

public SplDoublyLinkedList::setIteratorMode ( int $mode ) : void

Parameter-Liste

mode

There are two orthogonal sets of modes that can be set:

  • The direction of the iteration (either one or the other):
    • SplDoublyLinkedList::IT_MODE_LIFO (Stack style)
    • SplDoublyLinkedList::IT_MODE_FIFO (Queue style)
  • The behavior of the iterator (either one or the other):
    • SplDoublyLinkedList::IT_MODE_DELETE (Elements are deleted by the iterator)
    • SplDoublyLinkedList::IT_MODE_KEEP (Elements are traversed by the iterator)

The default mode is: SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP

Rückgabewerte

Es wird kein Wert zurückgegeben.


Shifts a node from the beginning of the doubly linked list

  • « SplDoublyLinkedList::setIteratorMode
  • SplDoublyLinkedList::top »
  • PHP Manual
  • SplDoublyLinkedList
  • Shifts a node from the beginning of the doubly linked list

SplDoublyLinkedList::shift

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::shift — Shifts a node from the beginning of the doubly linked list

Beschreibung

public SplDoublyLinkedList::shift ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value of the shifted node.

Fehler/Exceptions

Throws RuntimeException when the data-structure is empty.


Peeks at the node from the end of the doubly linked list

  • « SplDoublyLinkedList::shift
  • SplDoublyLinkedList::unserialize »
  • PHP Manual
  • SplDoublyLinkedList
  • Peeks at the node from the end of the doubly linked list

SplDoublyLinkedList::top

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::top — Peeks at the node from the end of the doubly linked list

Beschreibung

public SplDoublyLinkedList::top ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value of the last node.

Fehler/Exceptions

Throws RuntimeException when the data-structure is empty.


Unserializes the storage

  • « SplDoublyLinkedList::top
  • SplDoublyLinkedList::unshift »
  • PHP Manual
  • SplDoublyLinkedList
  • Unserializes the storage

SplDoublyLinkedList::unserialize

(PHP 5 >= 5.4.0, PHP 7)

SplDoublyLinkedList::unserialize — Unserializes the storage

Beschreibung

public SplDoublyLinkedList::unserialize ( string $serialized ) : void

Unserializes the storage, from SplDoublyLinkedList::serialize().

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

serialized

The serialized string.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • SplDoublyLinkedList::serialize() - Serializes the storage


Prepends the doubly linked list with an element

  • « SplDoublyLinkedList::unserialize
  • SplDoublyLinkedList::valid »
  • PHP Manual
  • SplDoublyLinkedList
  • Prepends the doubly linked list with an element

SplDoublyLinkedList::unshift

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::unshift — Prepends the doubly linked list with an element

Beschreibung

public SplDoublyLinkedList::unshift ( mixed $value ) : void

Prepends value at the beginning of the doubly linked list.

Parameter-Liste

value

The value to unshift.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Check whether the doubly linked list contains more nodes

  • « SplDoublyLinkedList::unshift
  • SplStack »
  • PHP Manual
  • SplDoublyLinkedList
  • Check whether the doubly linked list contains more nodes

SplDoublyLinkedList::valid

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::valid — Check whether the doubly linked list contains more nodes

Beschreibung

public SplDoublyLinkedList::valid ( ) : bool

Checks if the doubly linked list contains any more nodes.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the doubly linked list contains any more nodes, false otherwise.


The SplStack class

(PHP 5 >= 5.3.0, PHP 7)

Einführung

The SplStack class provides the main functionalities of a stack implemented using a doubly linked list.

Klassenbeschreibung

SplStack extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Methoden */
public __construct ( )
public setIteratorMode ( int $mode ) : void
/* Geerbte Methoden */
public SplDoublyLinkedList::add ( mixed $index , mixed $newval ) : void
public SplDoublyLinkedList::bottom ( ) : mixed
public SplDoublyLinkedList::count ( ) : int
public SplDoublyLinkedList::current ( ) : mixed
public SplDoublyLinkedList::getIteratorMode ( ) : int
public SplDoublyLinkedList::isEmpty ( ) : bool
public SplDoublyLinkedList::key ( ) : mixed
public SplDoublyLinkedList::next ( ) : void
public SplDoublyLinkedList::offsetExists ( mixed $index ) : bool
public SplDoublyLinkedList::offsetGet ( mixed $index ) : mixed
public SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval ) : void
public SplDoublyLinkedList::offsetUnset ( mixed $index ) : void
public SplDoublyLinkedList::pop ( ) : mixed
public SplDoublyLinkedList::prev ( ) : void
public SplDoublyLinkedList::push ( mixed $value ) : void
public SplDoublyLinkedList::rewind ( ) : void
public SplDoublyLinkedList::serialize ( ) : string
public SplDoublyLinkedList::setIteratorMode ( int $mode ) : void
public SplDoublyLinkedList::shift ( ) : mixed
public SplDoublyLinkedList::top ( ) : mixed
public SplDoublyLinkedList::unserialize ( string $serialized ) : void
public SplDoublyLinkedList::unshift ( mixed $value ) : void
public SplDoublyLinkedList::valid ( ) : bool
}

Inhaltsverzeichnis

  • SplStack::__construct — Constructs a new stack implemented using a doubly linked list
  • SplStack::setIteratorMode — Sets the mode of iteration


Constructs a new stack implemented using a doubly linked list

  • « SplStack
  • SplStack::setIteratorMode »
  • PHP Manual
  • SplStack
  • Constructs a new stack implemented using a doubly linked list

SplStack::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplStack::__construct — Constructs a new stack implemented using a doubly linked list

Beschreibung

public SplStack::__construct ( )

This constructs a new empty stack.

Hinweis:

This method automatically sets the iterator mode to SplDoublyLinkedList::IT_MODE_LIFO.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplStack::__construct() example

<?php
$q = new SplStack();

$q[] = 1;
$q[] = 2;
$q[] = 3;

foreach ($q as $elem)  {
 echo $elem."\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3
2
1


Sets the mode of iteration

  • « SplStack::__construct
  • SplQueue »
  • PHP Manual
  • SplStack
  • Sets the mode of iteration

SplStack::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplStack::setIteratorMode — Sets the mode of iteration

Beschreibung

public SplStack::setIteratorMode ( int $mode ) : void

Parameter-Liste

mode

There is only one iteration parameter you can modify.

  • The behavior of the iterator (either one or the other):
    • SplDoublyLinkedList::IT_MODE_DELETE (Elements are deleted by the iterator)
    • SplDoublyLinkedList::IT_MODE_KEEP (Elements are traversed by the iterator)

The default mode is 0x2 : SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_KEEP

Warnung

The direction of iteration can no longer be changed for SplStacks. Trying to do so will result in a RuntimeException being thrown.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The SplQueue class

(PHP 5 >= 5.3.0, PHP 7)

Einführung

The SplQueue class provides the main functionalities of a queue implemented using a doubly linked list.

Klassenbeschreibung

SplQueue extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Methoden */
public __construct ( )
public dequeue ( ) : mixed
public enqueue ( mixed $value ) : void
public setIteratorMode ( int $mode ) : void
/* Geerbte Methoden */
public SplDoublyLinkedList::add ( mixed $index , mixed $newval ) : void
public SplDoublyLinkedList::bottom ( ) : mixed
public SplDoublyLinkedList::count ( ) : int
public SplDoublyLinkedList::current ( ) : mixed
public SplDoublyLinkedList::getIteratorMode ( ) : int
public SplDoublyLinkedList::isEmpty ( ) : bool
public SplDoublyLinkedList::key ( ) : mixed
public SplDoublyLinkedList::next ( ) : void
public SplDoublyLinkedList::offsetExists ( mixed $index ) : bool
public SplDoublyLinkedList::offsetGet ( mixed $index ) : mixed
public SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval ) : void
public SplDoublyLinkedList::offsetUnset ( mixed $index ) : void
public SplDoublyLinkedList::pop ( ) : mixed
public SplDoublyLinkedList::prev ( ) : void
public SplDoublyLinkedList::push ( mixed $value ) : void
public SplDoublyLinkedList::rewind ( ) : void
public SplDoublyLinkedList::serialize ( ) : string
public SplDoublyLinkedList::setIteratorMode ( int $mode ) : void
public SplDoublyLinkedList::shift ( ) : mixed
public SplDoublyLinkedList::top ( ) : mixed
public SplDoublyLinkedList::unserialize ( string $serialized ) : void
public SplDoublyLinkedList::unshift ( mixed $value ) : void
public SplDoublyLinkedList::valid ( ) : bool
}

Inhaltsverzeichnis

  • SplQueue::__construct — Constructs a new queue implemented using a doubly linked list
  • SplQueue::dequeue — Dequeues a node from the queue
  • SplQueue::enqueue — Adds an element to the queue
  • SplQueue::setIteratorMode — Sets the mode of iteration


Constructs a new queue implemented using a doubly linked list

  • « SplQueue
  • SplQueue::dequeue »
  • PHP Manual
  • SplQueue
  • Constructs a new queue implemented using a doubly linked list

SplQueue::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::__construct — Constructs a new queue implemented using a doubly linked list

Beschreibung

public SplQueue::__construct ( )

This constructs a new empty queue.

Hinweis:

This method automatically sets the iterator mode to SplDoublyLinkedList::IT_MODE_FIFO.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplQueue::__construct() example

<?php
$q = new SplQueue();

$q[] = 1;
$q[] = 2;
$q[] = 3;

foreach ($q as $elem)  {
 echo $elem."\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1
2
3

Beispiel #2 Efficiently handling tasks with SplQueue

<?php
$q = new SplQueue();
$q->setIteratorMode(SplQueue::IT_MODE_DELETE);

// ... enqueue some tasks on the queue ...

// process them
foreach ($q as $task) {
    // ... process $task ...

    // add new tasks on the queue
    $q[] = $newTask;
    // ...
}
?>


Dequeues a node from the queue

  • « SplQueue::__construct
  • SplQueue::enqueue »
  • PHP Manual
  • SplQueue
  • Dequeues a node from the queue

SplQueue::dequeue

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::dequeue — Dequeues a node from the queue

Beschreibung

public SplQueue::dequeue ( ) : mixed

Dequeues value from the top of the queue.

Hinweis:

SplQueue::dequeue() is an alias of SplDoublyLinkedList::shift().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value of the dequeued node.


Adds an element to the queue

  • « SplQueue::dequeue
  • SplQueue::setIteratorMode »
  • PHP Manual
  • SplQueue
  • Adds an element to the queue

SplQueue::enqueue

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::enqueue — Adds an element to the queue

Beschreibung

public SplQueue::enqueue ( mixed $value ) : void

Enqueues value at the end of the queue.

Hinweis:

SplQueue::enqueue() is an alias of SplDoublyLinkedList::push().

Parameter-Liste

value

The value to enqueue.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Sets the mode of iteration

  • « SplQueue::enqueue
  • SplHeap »
  • PHP Manual
  • SplQueue
  • Sets the mode of iteration

SplQueue::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::setIteratorMode — Sets the mode of iteration

Beschreibung

public SplQueue::setIteratorMode ( int $mode ) : void

Parameter-Liste

mode

There is only one iteration parameter you can modify.

  • The behavior of the iterator (either one or the other):
    • SplDoublyLinkedList::IT_MODE_DELETE (Elements are deleted by the iterator)
    • SplDoublyLinkedList::IT_MODE_KEEP (Elements are traversed by the iterator)

The default mode is: SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP

Warnung

The direction of iteration can not be changed for SplQueues, it is always SplDoublyLinkedList::IT_MODE_FIFO.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws a RuntimeException on trying to change the direction of iteration by using SplDoublyLinkedList::IT_MODE_LIFO.


The SplHeap class

(PHP 5 >= 5.3.0, PHP 7)

Einführung

The SplHeap class provides the main functionalities of a Heap.

Klassenbeschreibung

abstract SplHeap implements Iterator , Countable {
/* Methoden */
public __construct ( )
abstract protected compare ( mixed $value1 , mixed $value2 ) : int
public count ( ) : int
public current ( ) : mixed
public extract ( ) : mixed
public insert ( mixed $value ) : void
public isCorrupted ( ) : bool
public isEmpty ( ) : bool
public key ( ) : mixed
public next ( ) : void
public recoverFromCorruption ( ) : void
public rewind ( ) : void
public top ( ) : mixed
public valid ( ) : bool
}

Inhaltsverzeichnis

  • SplHeap::compare — Compare elements in order to place them correctly in the heap while sifting up
  • SplHeap::__construct — Constructs a new empty heap
  • SplHeap::count — Counts the number of elements in the heap
  • SplHeap::current — Return current node pointed by the iterator
  • SplHeap::extract — Extracts a node from top of the heap and sift up
  • SplHeap::insert — Inserts an element in the heap by sifting it up
  • SplHeap::isCorrupted — Tells if the heap is in a corrupted state
  • SplHeap::isEmpty — Checks whether the heap is empty
  • SplHeap::key — Return current node index
  • SplHeap::next — Move to the next node
  • SplHeap::recoverFromCorruption — Recover from the corrupted state and allow further actions on the heap
  • SplHeap::rewind — Rewind iterator back to the start (no-op)
  • SplHeap::top — Peeks at the node from the top of the heap
  • SplHeap::valid — Check whether the heap contains more nodes


Compare elements in order to place them correctly in the heap while sifting up

  • « SplHeap
  • SplHeap::__construct »
  • PHP Manual
  • SplHeap
  • Compare elements in order to place them correctly in the heap while sifting up

SplHeap::compare

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::compare — Compare elements in order to place them correctly in the heap while sifting up

Beschreibung

abstract protected SplHeap::compare ( mixed $value1 , mixed $value2 ) : int

Compare value1 with value2.

Warnung

Throwing exceptions in SplHeap::compare() can corrupt the Heap and place it in a blocked state. You can unblock it by calling SplHeap::recoverFromCorruption(). However, some elements might not be placed correctly and it may hence break the heap-property.

Parameter-Liste

value1

The value of the first node being compared.

value2

The value of the second node being compared.

Rückgabewerte

Result of the comparison, positive integer if value1 is greater than value2, 0 if they are equal, negative integer otherwise.

Hinweis:

Having multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position.


Constructs a new empty heap

  • « SplHeap::compare
  • SplHeap::count »
  • PHP Manual
  • SplHeap
  • Constructs a new empty heap

SplHeap::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::__construct — Constructs a new empty heap

Beschreibung

public SplHeap::__construct ( )

This constructs a new empty heap.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Counts the number of elements in the heap

  • « SplHeap::__construct
  • SplHeap::current »
  • PHP Manual
  • SplHeap
  • Counts the number of elements in the heap

SplHeap::count

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::count — Counts the number of elements in the heap

Beschreibung

public SplHeap::count ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of elements in the heap.


Return current node pointed by the iterator

  • « SplHeap::count
  • SplHeap::extract »
  • PHP Manual
  • SplHeap
  • Return current node pointed by the iterator

SplHeap::current

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::current — Return current node pointed by the iterator

Beschreibung

public SplHeap::current ( ) : mixed

Get the current datastructure node.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current node value.


Extracts a node from top of the heap and sift up

  • « SplHeap::current
  • SplHeap::insert »
  • PHP Manual
  • SplHeap
  • Extracts a node from top of the heap and sift up

SplHeap::extract

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::extract — Extracts a node from top of the heap and sift up

Beschreibung

public SplHeap::extract ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value of the extracted node.

Fehler/Exceptions

Throws RuntimeException when the data-structure is empty.


Inserts an element in the heap by sifting it up

  • « SplHeap::extract
  • SplHeap::isCorrupted »
  • PHP Manual
  • SplHeap
  • Inserts an element in the heap by sifting it up

SplHeap::insert

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::insert — Inserts an element in the heap by sifting it up

Beschreibung

public SplHeap::insert ( mixed $value ) : void

Insert value in the heap.

Parameter-Liste

value

The value to insert.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Tells if the heap is in a corrupted state

  • « SplHeap::insert
  • SplHeap::isEmpty »
  • PHP Manual
  • SplHeap
  • Tells if the heap is in a corrupted state

SplHeap::isCorrupted

(PHP 7)

SplHeap::isCorrupted — Tells if the heap is in a corrupted state

Beschreibung

public SplHeap::isCorrupted ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the heap is corrupted, false otherwise.


Checks whether the heap is empty

  • « SplHeap::isCorrupted
  • SplHeap::key »
  • PHP Manual
  • SplHeap
  • Checks whether the heap is empty

SplHeap::isEmpty

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::isEmpty — Checks whether the heap is empty

Beschreibung

public SplHeap::isEmpty ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns whether the heap is empty.


Return current node index

  • « SplHeap::isEmpty
  • SplHeap::next »
  • PHP Manual
  • SplHeap
  • Return current node index

SplHeap::key

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::key — Return current node index

Beschreibung

public SplHeap::key ( ) : mixed

This function returns the current node index

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current node index.


Move to the next node

  • « SplHeap::key
  • SplHeap::recoverFromCorruption »
  • PHP Manual
  • SplHeap
  • Move to the next node

SplHeap::next

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::next — Move to the next node

Beschreibung

public SplHeap::next ( ) : void

Move to the next node. This will delete the top node of the heap.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Recover from the corrupted state and allow further actions on the heap

  • « SplHeap::next
  • SplHeap::rewind »
  • PHP Manual
  • SplHeap
  • Recover from the corrupted state and allow further actions on the heap

SplHeap::recoverFromCorruption

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::recoverFromCorruption — Recover from the corrupted state and allow further actions on the heap

Beschreibung

public SplHeap::recoverFromCorruption ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Rewind iterator back to the start (no-op)

  • « SplHeap::recoverFromCorruption
  • SplHeap::top »
  • PHP Manual
  • SplHeap
  • Rewind iterator back to the start (no-op)

SplHeap::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::rewind — Rewind iterator back to the start (no-op)

Beschreibung

public SplHeap::rewind ( ) : void

This rewinds the iterator to the beginning. This is a no-op for heaps as the iterator is virtual and in fact never moves from the top of the heap.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Peeks at the node from the top of the heap

  • « SplHeap::rewind
  • SplHeap::valid »
  • PHP Manual
  • SplHeap
  • Peeks at the node from the top of the heap

SplHeap::top

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::top — Peeks at the node from the top of the heap

Beschreibung

public SplHeap::top ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value of the node on the top.

Fehler/Exceptions

Throws RuntimeException when the data-structure is empty.


Check whether the heap contains more nodes

  • « SplHeap::top
  • SplMaxHeap »
  • PHP Manual
  • SplHeap
  • Check whether the heap contains more nodes

SplHeap::valid

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::valid — Check whether the heap contains more nodes

Beschreibung

public SplHeap::valid ( ) : bool

Checks if the heap contains any more nodes.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the heap contains any more nodes, false otherwise.


The SplMaxHeap class

(PHP 5 >= 5.3.0, PHP 7)

Einführung

The SplMaxHeap class provides the main functionalities of a heap, keeping the maximum on the top.

Klassenbeschreibung

SplMaxHeap extends SplHeap implements Iterator , Countable {
/* Methoden */
protected compare ( mixed $value1 , mixed $value2 ) : int
/* Geerbte Methoden */
abstract protected SplHeap::compare ( mixed $value1 , mixed $value2 ) : int
public SplHeap::count ( ) : int
public SplHeap::current ( ) : mixed
public SplHeap::extract ( ) : mixed
public SplHeap::insert ( mixed $value ) : void
public SplHeap::isCorrupted ( ) : bool
public SplHeap::isEmpty ( ) : bool
public SplHeap::key ( ) : mixed
public SplHeap::next ( ) : void
public SplHeap::recoverFromCorruption ( ) : void
public SplHeap::rewind ( ) : void
public SplHeap::top ( ) : mixed
public SplHeap::valid ( ) : bool
}

Inhaltsverzeichnis

  • SplMaxHeap::compare — Compare elements in order to place them correctly in the heap while sifting up


Compare elements in order to place them correctly in the heap while sifting up

  • « SplMaxHeap
  • SplMinHeap »
  • PHP Manual
  • SplMaxHeap
  • Compare elements in order to place them correctly in the heap while sifting up

SplMaxHeap::compare

(PHP 5 >= 5.3.0, PHP 7)

SplMaxHeap::compare — Compare elements in order to place them correctly in the heap while sifting up

Beschreibung

protected SplMaxHeap::compare ( mixed $value1 , mixed $value2 ) : int

Compare value1 with value2.

Parameter-Liste

value1

The value of the first node being compared.

value2

The value of the second node being compared.

Rückgabewerte

Result of the comparison, positive integer if value1 is greater than value2, 0 if they are equal, negative integer otherwise.

Hinweis:

Having multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position.


The SplMinHeap class

(PHP 5 >= 5.3.0, PHP 7)

Einführung

The SplMinHeap class provides the main functionalities of a heap, keeping the minimum on the top.

Klassenbeschreibung

SplMinHeap extends SplHeap implements Iterator , Countable {
/* Methoden */
protected compare ( mixed $value1 , mixed $value2 ) : int
/* Geerbte Methoden */
abstract protected SplHeap::compare ( mixed $value1 , mixed $value2 ) : int
public SplHeap::count ( ) : int
public SplHeap::current ( ) : mixed
public SplHeap::extract ( ) : mixed
public SplHeap::insert ( mixed $value ) : void
public SplHeap::isCorrupted ( ) : bool
public SplHeap::isEmpty ( ) : bool
public SplHeap::key ( ) : mixed
public SplHeap::next ( ) : void
public SplHeap::recoverFromCorruption ( ) : void
public SplHeap::rewind ( ) : void
public SplHeap::top ( ) : mixed
public SplHeap::valid ( ) : bool
}

Inhaltsverzeichnis

  • SplMinHeap::compare — Compare elements in order to place them correctly in the heap while sifting up


Compare elements in order to place them correctly in the heap while sifting up

  • « SplMinHeap
  • SplPriorityQueue »
  • PHP Manual
  • SplMinHeap
  • Compare elements in order to place them correctly in the heap while sifting up

SplMinHeap::compare

(PHP 5 >= 5.3.0, PHP 7)

SplMinHeap::compare — Compare elements in order to place them correctly in the heap while sifting up

Beschreibung

protected SplMinHeap::compare ( mixed $value1 , mixed $value2 ) : int

Compare value1 with value2.

Parameter-Liste

value1

The value of the first node being compared.

value2

The value of the second node being compared.

Rückgabewerte

Result of the comparison, positive integer if value1 is lower than value2, 0 if they are equal, negative integer otherwise.

Hinweis:

Having multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position.


The SplPriorityQueue class

(PHP 5 >= 5.3.0, PHP 7)

Einführung

The SplPriorityQueue class provides the main functionalities of a prioritized queue, implemented using a max heap.

Hinweis: The order of elements with identical priority is undefined. It may differ from the order in which they have been inserted.

Klassenbeschreibung

SplPriorityQueue implements Iterator , Countable {
/* Methoden */
public __construct ( )
public compare ( mixed $priority1 , mixed $priority2 ) : int
public count ( ) : int
public current ( ) : mixed
public extract ( ) : mixed
public getExtractFlags ( ) : int
public insert ( mixed $value , mixed $priority ) : bool
public isCorrupted ( ) : bool
public isEmpty ( ) : bool
public key ( ) : mixed
public next ( ) : void
public recoverFromCorruption ( ) : void
public rewind ( ) : void
public setExtractFlags ( int $flags ) : void
public top ( ) : mixed
public valid ( ) : bool
}

Inhaltsverzeichnis

  • SplPriorityQueue::compare — Compare priorities in order to place elements correctly in the heap while sifting up
  • SplPriorityQueue::__construct — Constructs a new empty queue
  • SplPriorityQueue::count — Counts the number of elements in the queue
  • SplPriorityQueue::current — Return current node pointed by the iterator
  • SplPriorityQueue::extract — Extracts a node from top of the heap and sift up
  • SplPriorityQueue::getExtractFlags — Get the flags of extraction
  • SplPriorityQueue::insert — Inserts an element in the queue by sifting it up
  • SplPriorityQueue::isCorrupted — Tells if the priority queue is in a corrupted state
  • SplPriorityQueue::isEmpty — Checks whether the queue is empty
  • SplPriorityQueue::key — Return current node index
  • SplPriorityQueue::next — Move to the next node
  • SplPriorityQueue::recoverFromCorruption — Recover from the corrupted state and allow further actions on the queue
  • SplPriorityQueue::rewind — Rewind iterator back to the start (no-op)
  • SplPriorityQueue::setExtractFlags — Sets the mode of extraction
  • SplPriorityQueue::top — Peeks at the node from the top of the queue
  • SplPriorityQueue::valid — Check whether the queue contains more nodes


Compare priorities in order to place elements correctly in the heap while sifting up

  • « SplPriorityQueue
  • SplPriorityQueue::__construct »
  • PHP Manual
  • SplPriorityQueue
  • Compare priorities in order to place elements correctly in the heap while sifting up

SplPriorityQueue::compare

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::compare — Compare priorities in order to place elements correctly in the heap while sifting up

Beschreibung

public SplPriorityQueue::compare ( mixed $priority1 , mixed $priority2 ) : int

Compare priority1 with priority2.

Parameter-Liste

priority1

The priority of the first node being compared.

priority2

The priority of the second node being compared.

Rückgabewerte

Result of the comparison, positive integer if priority1 is greater than priority2, 0 if they are equal, negative integer otherwise.

Hinweis:

Multiple elements with the same priority will get dequeued in no particular order.


Constructs a new empty queue

  • « SplPriorityQueue::compare
  • SplPriorityQueue::count »
  • PHP Manual
  • SplPriorityQueue
  • Constructs a new empty queue

SplPriorityQueue::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::__construct — Constructs a new empty queue

Beschreibung

public SplPriorityQueue::__construct ( )

This constructs a new empty queue.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Counts the number of elements in the queue

  • « SplPriorityQueue::__construct
  • SplPriorityQueue::current »
  • PHP Manual
  • SplPriorityQueue
  • Counts the number of elements in the queue

SplPriorityQueue::count

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::count — Counts the number of elements in the queue

Beschreibung

public SplPriorityQueue::count ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of elements in the queue.


Return current node pointed by the iterator

  • « SplPriorityQueue::count
  • SplPriorityQueue::extract »
  • PHP Manual
  • SplPriorityQueue
  • Return current node pointed by the iterator

SplPriorityQueue::current

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::current — Return current node pointed by the iterator

Beschreibung

public SplPriorityQueue::current ( ) : mixed

Get the current datastructure node.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value or priority (or both) of the current node, depending on the extract flag.


Extracts a node from top of the heap and sift up

  • « SplPriorityQueue::current
  • SplPriorityQueue::getExtractFlags »
  • PHP Manual
  • SplPriorityQueue
  • Extracts a node from top of the heap and sift up

SplPriorityQueue::extract

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::extract — Extracts a node from top of the heap and sift up

Beschreibung

public SplPriorityQueue::extract ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value or priority (or both) of the extracted node, depending on the extract flag.


Get the flags of extraction

  • « SplPriorityQueue::extract
  • SplPriorityQueue::insert »
  • PHP Manual
  • SplPriorityQueue
  • Get the flags of extraction

SplPriorityQueue::getExtractFlags

(PHP 7)

SplPriorityQueue::getExtractFlags — Get the flags of extraction

Beschreibung

public SplPriorityQueue::getExtractFlags ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Inserts an element in the queue by sifting it up

  • « SplPriorityQueue::getExtractFlags
  • SplPriorityQueue::isCorrupted »
  • PHP Manual
  • SplPriorityQueue
  • Inserts an element in the queue by sifting it up

SplPriorityQueue::insert

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::insert — Inserts an element in the queue by sifting it up

Beschreibung

public SplPriorityQueue::insert ( mixed $value , mixed $priority ) : bool

Insert value with the priority priority in the queue.

Parameter-Liste

value

The value to insert.

priority

The associated priority.

Rückgabewerte

Returns true.


Tells if the priority queue is in a corrupted state

  • « SplPriorityQueue::insert
  • SplPriorityQueue::isEmpty »
  • PHP Manual
  • SplPriorityQueue
  • Tells if the priority queue is in a corrupted state

SplPriorityQueue::isCorrupted

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::isCorrupted — Tells if the priority queue is in a corrupted state

Beschreibung

public SplPriorityQueue::isCorrupted ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the priority queue is corrupted, false otherwise.


Checks whether the queue is empty

  • « SplPriorityQueue::isCorrupted
  • SplPriorityQueue::key »
  • PHP Manual
  • SplPriorityQueue
  • Checks whether the queue is empty

SplPriorityQueue::isEmpty

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::isEmpty — Checks whether the queue is empty

Beschreibung

public SplPriorityQueue::isEmpty ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns whether the queue is empty.


Return current node index

  • « SplPriorityQueue::isEmpty
  • SplPriorityQueue::next »
  • PHP Manual
  • SplPriorityQueue
  • Return current node index

SplPriorityQueue::key

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::key — Return current node index

Beschreibung

public SplPriorityQueue::key ( ) : mixed

This function returns the current node index

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current node index.


Move to the next node

  • « SplPriorityQueue::key
  • SplPriorityQueue::recoverFromCorruption »
  • PHP Manual
  • SplPriorityQueue
  • Move to the next node

SplPriorityQueue::next

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::next — Move to the next node

Beschreibung

public SplPriorityQueue::next ( ) : void

Extracts the top node from the queue.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Recover from the corrupted state and allow further actions on the queue

  • « SplPriorityQueue::next
  • SplPriorityQueue::rewind »
  • PHP Manual
  • SplPriorityQueue
  • Recover from the corrupted state and allow further actions on the queue

SplPriorityQueue::recoverFromCorruption

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::recoverFromCorruption — Recover from the corrupted state and allow further actions on the queue

Beschreibung

public SplPriorityQueue::recoverFromCorruption ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Rewind iterator back to the start (no-op)

  • « SplPriorityQueue::recoverFromCorruption
  • SplPriorityQueue::setExtractFlags »
  • PHP Manual
  • SplPriorityQueue
  • Rewind iterator back to the start (no-op)

SplPriorityQueue::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::rewind — Rewind iterator back to the start (no-op)

Beschreibung

public SplPriorityQueue::rewind ( ) : void

This rewinds the iterator to the beginning. This is a no-op for heaps as the iterator is virtual and in fact never moves from the top of the heap.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Sets the mode of extraction

  • « SplPriorityQueue::rewind
  • SplPriorityQueue::top »
  • PHP Manual
  • SplPriorityQueue
  • Sets the mode of extraction

SplPriorityQueue::setExtractFlags

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::setExtractFlags — Sets the mode of extraction

Beschreibung

public SplPriorityQueue::setExtractFlags ( int $flags ) : void

Parameter-Liste

flags

Defines what is extracted by SplPriorityQueue::current(),
SplPriorityQueue::top() and
SplPriorityQueue::extract().

  • SplPriorityQueue::EXTR_DATA (0x00000001): Extract the data
  • SplPriorityQueue::EXTR_PRIORITY (0x00000002): Extract the priority
  • SplPriorityQueue::EXTR_BOTH (0x00000003): Extract an array containing both

The default mode is SplPriorityQueue::EXTR_DATA.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Peeks at the node from the top of the queue

  • « SplPriorityQueue::setExtractFlags
  • SplPriorityQueue::valid »
  • PHP Manual
  • SplPriorityQueue
  • Peeks at the node from the top of the queue

SplPriorityQueue::top

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::top — Peeks at the node from the top of the queue

Beschreibung

public SplPriorityQueue::top ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value or priority (or both) of the top node, depending on the extract flag.


Check whether the queue contains more nodes

  • « SplPriorityQueue::top
  • SplFixedArray »
  • PHP Manual
  • SplPriorityQueue
  • Check whether the queue contains more nodes

SplPriorityQueue::valid

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::valid — Check whether the queue contains more nodes

Beschreibung

public SplPriorityQueue::valid ( ) : bool

Checks if the queue contains any more nodes.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the queue contains any more nodes, false otherwise.


The SplFixedArray class

(PHP 5 >= 5.3.0, PHP 7)

Einführung

The SplFixedArray class provides the main functionalities of array. The main difference between a SplFixedArray and a normal PHP array is that the SplFixedArray must be resized manually and allows only integers within the range as indexes. The advantage is that it uses less memory than a standard array.

Klassenbeschreibung

SplFixedArray implements Iterator , ArrayAccess , Countable {
/* Methoden */
public __construct ( int $size = 0 )
public count ( ) : int
public current ( ) : mixed
public static fromArray ( array $array , bool $save_indexes = true ) : SplFixedArray
public getSize ( ) : int
public key ( ) : int
public next ( ) : void
public offsetExists ( int $index ) : bool
public offsetGet ( int $index ) : mixed
public offsetSet ( int $index , mixed $newval ) : void
public offsetUnset ( int $index ) : void
public rewind ( ) : void
public setSize ( int $size ) : bool
public toArray ( ) : array
public valid ( ) : bool
public __wakeup ( ) : void
}

Beispiele

Beispiel #1 SplFixedArray usage example

<?php
// Initialize the array with a fixed length
$array = new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

var_dump($array[0]); // NULL
var_dump($array[1]); // int(2)

var_dump($array["4"]); // string(3) "foo"

// Increase the size of the array to 10
$array->setSize(10);

$array[9] = "asdf";

// Shrink the array to a size of 2
$array->setSize(2);

// The following lines throw a RuntimeException: Index invalid or out of range
try {
    var_dump($array["non-numeric"]);
} catch(RuntimeException $re) {
    echo "RuntimeException: ".$re->getMessage()."\n";
}

try {
    var_dump($array[-1]);
} catch(RuntimeException $re) {
    echo "RuntimeException: ".$re->getMessage()."\n";
}

try {
    var_dump($array[5]);
} catch(RuntimeException $re) {
    echo "RuntimeException: ".$re->getMessage()."\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
int(2)
string(3) "foo"
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range

Inhaltsverzeichnis

  • SplFixedArray::__construct — Constructs a new fixed array
  • SplFixedArray::count — Returns the size of the array
  • SplFixedArray::current — Return current array entry
  • SplFixedArray::fromArray — Import a PHP array in a SplFixedArray instance
  • SplFixedArray::getSize — Gets the size of the array
  • SplFixedArray::key — Return current array index
  • SplFixedArray::next — Move to next entry
  • SplFixedArray::offsetExists — Returns whether the requested index exists
  • SplFixedArray::offsetGet — Returns the value at the specified index
  • SplFixedArray::offsetSet — Sets a new value at a specified index
  • SplFixedArray::offsetUnset — Unsets the value at the specified $index
  • SplFixedArray::rewind — Rewind iterator back to the start
  • SplFixedArray::setSize — Change the size of an array
  • SplFixedArray::toArray — Returns a PHP array from the fixed array
  • SplFixedArray::valid — Check whether the array contains more elements
  • SplFixedArray::__wakeup — Reinitialises the array after being unserialised


Constructs a new fixed array

  • « SplFixedArray
  • SplFixedArray::count »
  • PHP Manual
  • SplFixedArray
  • Constructs a new fixed array

SplFixedArray::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::__construct — Constructs a new fixed array

Beschreibung

public SplFixedArray::__construct ( int $size = 0 )

Initializes a fixed array with a number of null values equal to size.

Parameter-Liste

size

The size of the fixed array. This expects a number between 0 and PHP_INT_MAX.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws InvalidArgumentException when size is a negative number.

Raises E_WARNING when size cannot be parsed as a number.

Beispiele

Beispiel #1 SplFixedArray::__construct() example

<?php
$array = new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

foreach($array as $v) {
  var_dump($v);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
int(2)
NULL
NULL
string(3) "foo"


Returns the size of the array

  • « SplFixedArray::__construct
  • SplFixedArray::current »
  • PHP Manual
  • SplFixedArray
  • Returns the size of the array

SplFixedArray::count

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::count — Returns the size of the array

Beschreibung

public SplFixedArray::count ( ) : int

Returns the size of the array.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the size of the array.

Beispiele

Beispiel #1 SplFixedArray::count() example

<?php
$array = new SplFixedArray(5);
echo $array->count() . "\n";
echo count($array) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

5
5

Anmerkungen

Hinweis:

This method is functionally equivalent to SplFixedArray::getSize().

Hinweis:

The count of elements is always equal to the set size because all values are initially initialized with null.

Siehe auch

  • SplFixedArray::getSize() - Gets the size of the array


Return current array entry

  • « SplFixedArray::count
  • SplFixedArray::fromArray »
  • PHP Manual
  • SplFixedArray
  • Return current array entry

SplFixedArray::current

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::current — Return current array entry

Beschreibung

public SplFixedArray::current ( ) : mixed

Get the current array element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current element value.

Fehler/Exceptions

Throws RuntimeException when the internal array pointer points to an invalid index or is out of bounds.


Import a PHP array in a SplFixedArray instance

  • « SplFixedArray::current
  • SplFixedArray::getSize »
  • PHP Manual
  • SplFixedArray
  • Import a PHP array in a SplFixedArray instance

SplFixedArray::fromArray

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::fromArray — Import a PHP array in a SplFixedArray instance

Beschreibung

public static SplFixedArray::fromArray ( array $array , bool $save_indexes = true ) : SplFixedArray

Import the PHP array array in a new SplFixedArray instance

Parameter-Liste

array

The array to import.

save_indexes

Try to save the numeric indexes used in the original array.

Rückgabewerte

Returns an instance of SplFixedArray containing the array content.

Beispiele

Beispiel #1 SplFixedArray::fromArray() example

<?php
$fa = SplFixedArray::fromArray(array(1 => 1, 0 => 2, 3 => 3));

var_dump($fa);

$fa = SplFixedArray::fromArray(array(1 => 1, 0 => 2, 3 => 3), false);

var_dump($fa);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(SplFixedArray)#1 (4) {
  [0]=>
  int(2)
  [1]=>
  int(1)
  [2]=>
  NULL
  [3]=>
  int(3)
}
object(SplFixedArray)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Gets the size of the array

  • « SplFixedArray::fromArray
  • SplFixedArray::key »
  • PHP Manual
  • SplFixedArray
  • Gets the size of the array

SplFixedArray::getSize

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::getSize — Gets the size of the array

Beschreibung

public SplFixedArray::getSize ( ) : int

Gets the size of the array.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the size of the array, as an int.

Beispiele

Beispiel #1 SplFixedArray::getSize() example

<?php
$array = new SplFixedArray(5);
echo $array->getSize()."\n";
$array->setSize(10);
echo $array->getSize()."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

5
10

Anmerkungen

Hinweis:

This method is functionally equivalent to SplFixedArray::count()

Siehe auch

  • SplFixedArray::count() - Returns the size of the array


Return current array index

  • « SplFixedArray::getSize
  • SplFixedArray::next »
  • PHP Manual
  • SplFixedArray
  • Return current array index

SplFixedArray::key

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::key — Return current array index

Beschreibung

public SplFixedArray::key ( ) : int

Returns the current array index.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current array index.


Move to next entry

  • « SplFixedArray::key
  • SplFixedArray::offsetExists »
  • PHP Manual
  • SplFixedArray
  • Move to next entry

SplFixedArray::next

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::next — Move to next entry

Beschreibung

public SplFixedArray::next ( ) : void

Move the iterator to the next array entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Returns whether the requested index exists

  • « SplFixedArray::next
  • SplFixedArray::offsetGet »
  • PHP Manual
  • SplFixedArray
  • Returns whether the requested index exists

SplFixedArray::offsetExists

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetExists — Returns whether the requested index exists

Beschreibung

public SplFixedArray::offsetExists ( int $index ) : bool

Checks whether the requested index index exists.

Parameter-Liste

index

The index being checked.

Rückgabewerte

true if the requested index exists, otherwise false


Returns the value at the specified index

  • « SplFixedArray::offsetExists
  • SplFixedArray::offsetSet »
  • PHP Manual
  • SplFixedArray
  • Returns the value at the specified index

SplFixedArray::offsetGet

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetGet — Returns the value at the specified index

Beschreibung

public SplFixedArray::offsetGet ( int $index ) : mixed

Returns the value at the index index.

Parameter-Liste

index

The index with the value.

Rückgabewerte

The value at the specified index.

Fehler/Exceptions

Throws RuntimeException when index is outside the defined size of the array or when index cannot be parsed as an integer.


Sets a new value at a specified index

  • « SplFixedArray::offsetGet
  • SplFixedArray::offsetUnset »
  • PHP Manual
  • SplFixedArray
  • Sets a new value at a specified index

SplFixedArray::offsetSet

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetSet — Sets a new value at a specified index

Beschreibung

public SplFixedArray::offsetSet ( int $index , mixed $newval ) : void

Sets the value at the specified index to newval.

Parameter-Liste

index

The index being set.

newval

The new value for the index.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws RuntimeException when index is outside the defined size of the array or when index cannot be parsed as an integer.


Unsets the value at the specified $index

  • « SplFixedArray::offsetSet
  • SplFixedArray::rewind »
  • PHP Manual
  • SplFixedArray
  • Unsets the value at the specified $index

SplFixedArray::offsetUnset

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetUnset — Unsets the value at the specified $index

Beschreibung

public SplFixedArray::offsetUnset ( int $index ) : void

Unsets the value at the specified index.

Parameter-Liste

index

The index being unset.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws RuntimeException when index is outside the defined size of the array or when index cannot be parsed as an integer.


Rewind iterator back to the start

  • « SplFixedArray::offsetUnset
  • SplFixedArray::setSize »
  • PHP Manual
  • SplFixedArray
  • Rewind iterator back to the start

SplFixedArray::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::rewind — Rewind iterator back to the start

Beschreibung

public SplFixedArray::rewind ( ) : void

Rewinds the iterator to the beginning.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Change the size of an array

  • « SplFixedArray::rewind
  • SplFixedArray::toArray »
  • PHP Manual
  • SplFixedArray
  • Change the size of an array

SplFixedArray::setSize

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::setSize — Change the size of an array

Beschreibung

public SplFixedArray::setSize ( int $size ) : bool

Change the size of an array to the new size of size. If size is less than the current array size, any values after the new size will be discarded. If size is greater than the current array size, the array will be padded with null values.

Parameter-Liste

size

The new array size. This should be a value between 0 and PHP_INT_MAX.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Throws InvalidArgumentException when size is less than zero.

Raises E_WARNING when size cannot be used as a number.

Beispiele

Beispiel #1 SplFixedArray::setSize() example

<?php
   $array = new SplFixedArray(5);
   echo $array->getSize()."\n";
   $array->setSize(10);
   echo $array->getSize()."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

5
10


Returns a PHP array from the fixed array

  • « SplFixedArray::setSize
  • SplFixedArray::valid »
  • PHP Manual
  • SplFixedArray
  • Returns a PHP array from the fixed array

SplFixedArray::toArray

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::toArray — Returns a PHP array from the fixed array

Beschreibung

public SplFixedArray::toArray ( ) : array

Returns a PHP array from the fixed array.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a PHP array, similar to the fixed array.

Beispiele

Beispiel #1 SplFixedArray::toArray() example

<?php
$fa = new SplFixedArray(3);
$fa[0] = 0;
$fa[2] = 2;
var_dump($fa->toArray());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  int(0)
  [1]=>
  NULL
  [2]=>
  int(2)
}


Check whether the array contains more elements

  • « SplFixedArray::toArray
  • SplFixedArray::__wakeup »
  • PHP Manual
  • SplFixedArray
  • Check whether the array contains more elements

SplFixedArray::valid

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::valid — Check whether the array contains more elements

Beschreibung

public SplFixedArray::valid ( ) : bool

Checks if the array contains any more elements.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the array contains any more elements, false otherwise.


Reinitialises the array after being unserialised

  • « SplFixedArray::valid
  • SplObjectStorage »
  • PHP Manual
  • SplFixedArray
  • Reinitialises the array after being unserialised

SplFixedArray::__wakeup

(PHP 5 >= 5.5.0, PHP 7)

SplFixedArray::__wakeup — Reinitialises the array after being unserialised

Beschreibung

public SplFixedArray::__wakeup ( ) : void

Reinitialises the array after being unserialised.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The SplObjectStorage class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

The SplObjectStorage class provides a map from objects to data or, by ignoring data, an object set. This dual purpose can be useful in many cases involving the need to uniquely identify objects.

Klassenbeschreibung

SplObjectStorage implements Countable , Iterator , Serializable , ArrayAccess {
/* Methoden */
public addAll ( SplObjectStorage $storage ) : void
public attach ( object $object , mixed $data = null ) : void
public contains ( object $object ) : bool
public count ( ) : int
public current ( ) : object
public detach ( object $object ) : void
public getHash ( object $object ) : string
public getInfo ( ) : mixed
public key ( ) : int
public next ( ) : void
public offsetExists ( object $object ) : bool
public offsetGet ( object $object ) : mixed
public offsetSet ( object $object , mixed $data = null ) : void
public offsetUnset ( object $object ) : void
public removeAll ( SplObjectStorage $storage ) : void
public removeAllExcept ( SplObjectStorage $storage ) : void
public rewind ( ) : void
public serialize ( ) : string
public setInfo ( mixed $data ) : void
public unserialize ( string $serialized ) : void
public valid ( ) : bool
}

Beispiele

Beispiel #1 SplObjectStorage as a set

<?php
// As an object set
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;

$s->attach($o1);
$s->attach($o2);

var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));

$s->detach($o2);

var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Beispiel #2 SplObjectStorage as a map

<?php
// As a map from objects to data
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;

$s[$o1] = "data for object 1";
$s[$o2] = array(1,2,3);

if (isset($s[$o2])) {
    var_dump($s[$o2]);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Inhaltsverzeichnis

  • SplObjectStorage::addAll — Adds all objects from another storage
  • SplObjectStorage::attach — Adds an object in the storage
  • SplObjectStorage::contains — Checks if the storage contains a specific object
  • SplObjectStorage::count — Returns the number of objects in the storage
  • SplObjectStorage::current — Returns the current storage entry
  • SplObjectStorage::detach — Removes an object from the storage
  • SplObjectStorage::getHash — Calculate a unique identifier for the contained objects
  • SplObjectStorage::getInfo — Returns the data associated with the current iterator entry
  • SplObjectStorage::key — Returns the index at which the iterator currently is
  • SplObjectStorage::next — Move to the next entry
  • SplObjectStorage::offsetExists — Checks whether an object exists in the storage
  • SplObjectStorage::offsetGet — Returns the data associated with an object
  • SplObjectStorage::offsetSet — Associates data to an object in the storage
  • SplObjectStorage::offsetUnset — Removes an object from the storage
  • SplObjectStorage::removeAll — Removes objects contained in another storage from the current storage
  • SplObjectStorage::removeAllExcept — Removes all objects except for those contained in another storage from the current storage
  • SplObjectStorage::rewind — Rewind the iterator to the first storage element
  • SplObjectStorage::serialize — Serializes the storage
  • SplObjectStorage::setInfo — Sets the data associated with the current iterator entry
  • SplObjectStorage::unserialize — Unserializes a storage from its string representation
  • SplObjectStorage::valid — Returns if the current iterator entry is valid


Adds all objects from another storage

  • « SplObjectStorage
  • SplObjectStorage::attach »
  • PHP Manual
  • SplObjectStorage
  • Adds all objects from another storage

SplObjectStorage::addAll

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::addAll — Adds all objects from another storage

Beschreibung

public SplObjectStorage::addAll ( SplObjectStorage $storage ) : void

Adds all objects-data pairs from a different storage in the current storage.

Parameter-Liste

storage

The storage you want to import.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplObjectStorage::addAll() example

<?php
$o = new StdClass;
$a = new SplObjectStorage();
$a[$o] = "hello";

$b = new SplObjectStorage();
$b->addAll($a);
echo $b[$o]."\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

hello

Siehe auch

  • SplObjectStorage::removeAll() - Removes objects contained in another storage from the current storage


Adds an object in the storage

  • « SplObjectStorage::addAll
  • SplObjectStorage::contains »
  • PHP Manual
  • SplObjectStorage
  • Adds an object in the storage

SplObjectStorage::attach

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::attach — Adds an object in the storage

Beschreibung

public SplObjectStorage::attach ( object $object , mixed $data = null ) : void

Adds an object inside the storage, and optionally associate it to some data.

Parameter-Liste

object

The object to add.

data

The data to associate with the object.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplObjectStorage::attach() example

<?php
$o1 = new StdClass;
$o2 = new StdClass;
$s = new SplObjectStorage();
$s->attach($o1); // similar to $s[$o1] = NULL;
$s->attach($o2, "hello"); // similar to $s[$o2] = "hello";

var_dump($s[$o1]);
var_dump($s[$o2]);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

NULL
string(5) "hello"

Siehe auch

  • SplObjectStorage::detach() - Removes an object from the storage
  • SplObjectStorage::offsetSet() - Associates data to an object in the storage


Checks if the storage contains a specific object

  • « SplObjectStorage::attach
  • SplObjectStorage::count »
  • PHP Manual
  • SplObjectStorage
  • Checks if the storage contains a specific object

SplObjectStorage::contains

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::contains — Checks if the storage contains a specific object

Beschreibung

public SplObjectStorage::contains ( object $object ) : bool

Checks if the storage contains the object provided.

Parameter-Liste

object

The object to look for.

Rückgabewerte

Returns true if the object is in the storage, false otherwise.

Beispiele

Beispiel #1 SplObjectStorage::contains() example

<?php
$o1 = new StdClass;
$o2 = new StdClass;

$s = new SplObjectStorage();

$s[$o1] = "hello";
var_dump($s->contains($o1));
var_dump($s->contains($o2));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)

Siehe auch

  • SplObjectStorage::offsetExists() - Checks whether an object exists in the storage


Returns the number of objects in the storage

  • « SplObjectStorage::contains
  • SplObjectStorage::current »
  • PHP Manual
  • SplObjectStorage
  • Returns the number of objects in the storage

SplObjectStorage::count

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::count — Returns the number of objects in the storage

Beschreibung

public SplObjectStorage::count ( ) : int

Counts the number of objects in the storage.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of objects in the storage.

Beispiele

Beispiel #1 SplObjectStorage::count() example

<?php
$s = new SplObjectStorage();
$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1);
$s->attach($o2);
$s->attach($o1);
var_dump($s->count());
var_dump(count($s));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(2)
int(2)

Siehe auch

  • SplObjectStorage::attach() - Adds an object in the storage
  • SplObjectStorage::detach() - Removes an object from the storage


Returns the current storage entry

  • « SplObjectStorage::count
  • SplObjectStorage::detach »
  • PHP Manual
  • SplObjectStorage
  • Returns the current storage entry

SplObjectStorage::current

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::current — Returns the current storage entry

Beschreibung

public SplObjectStorage::current ( ) : object

Returns the current storage entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The object at the current iterator position.

Beispiele

Beispiel #1 SplObjectStorage::current() example

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // similar to current($s)
    $data   = $s->getInfo();

    var_dump($object);
    var_dump($data);
    $s->next();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"

Siehe auch

  • SplObjectStorage::rewind() - Rewind the iterator to the first storage element
  • SplObjectStorage::key() - Returns the index at which the iterator currently is
  • SplObjectStorage::next() - Move to the next entry
  • SplObjectStorage::valid() - Returns if the current iterator entry is valid
  • SplObjectStorage::getInfo() - Returns the data associated with the current iterator entry


Removes an object from the storage

  • « SplObjectStorage::current
  • SplObjectStorage::getHash »
  • PHP Manual
  • SplObjectStorage
  • Removes an object from the storage

SplObjectStorage::detach

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::detach — Removes an object from the storage

Beschreibung

public SplObjectStorage::detach ( object $object ) : void

Removes the object from the storage.

Parameter-Liste

object

The object to remove.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplObjectStorage::detach() example

<?php
$o = new StdClass;
$s = new SplObjectStorage();
$s->attach($o);
var_dump(count($s));
$s->detach($o);
var_dump(count($s));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)
int(0)

Siehe auch

  • SplObjectStorage::attach() - Adds an object in the storage
  • SplObjectStorage::removeAll() - Removes objects contained in another storage from the current storage


Calculate a unique identifier for the contained objects

  • « SplObjectStorage::detach
  • SplObjectStorage::getInfo »
  • PHP Manual
  • SplObjectStorage
  • Calculate a unique identifier for the contained objects

SplObjectStorage::getHash

(PHP 5 >= 5.4.0, PHP 7)

SplObjectStorage::getHash — Calculate a unique identifier for the contained objects

Beschreibung

public SplObjectStorage::getHash ( object $object ) : string

This method calculates an identifier for the objects added to an SplObjectStorage object.

The implementation in SplObjectStorage returns the same value as spl_object_hash().

The storage object will never contain more than one object with the same identifier. As such, it can be used to implement a set (a collection of unique values) where the quality of an object being unique is determined by the value returned by this function being unique.

Parameter-Liste

object

The object whose identifier is to be calculated.

Rückgabewerte

A string with the calculated identifier.

Fehler/Exceptions

A RuntimeException is thrown when the returned value is not a string.

Beispiele

Beispiel #1 SplObjectStorage::getHash() example

<?php
class OneSpecimenPerClassStorage extends SplObjectStorage {
    public function getHash($o) {
        return get_class($o);
    }
}
class A {}

$s = new OneSpecimenPerClassStorage;
$o1 = new stdClass;
$o2 = new stdClass;
$o3 = new A;

$s[$o1] = 1;
//$o2 is considered equal to $o1 so the value is replaced
$s[$o2] = 2;
$s[$o3] = 3;

//these are considered equal to the objects before
//so they can be used to access the values stored under them
$p1 = new stdClass;
$p2 = new A;
echo $s[$p1], "\n";
echo $s[$p2], "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2
3

Siehe auch

  • spl_object_hash() - Return hash id for given object


Returns the data associated with the current iterator entry

  • « SplObjectStorage::getHash
  • SplObjectStorage::key »
  • PHP Manual
  • SplObjectStorage
  • Returns the data associated with the current iterator entry

SplObjectStorage::getInfo

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::getInfo — Returns the data associated with the current iterator entry

Beschreibung

public SplObjectStorage::getInfo ( ) : mixed

Returns the data, or info, associated with the object pointed by the current iterator position.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The data associated with the current iterator position.

Beispiele

Beispiel #1 SplObjectStorage::getInfo() example

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // similar to current($s)
    $data   = $s->getInfo();

    var_dump($object);
    var_dump($data);
    $s->next();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"

Siehe auch

  • SplObjectStorage::current() - Returns the current storage entry
  • SplObjectStorage::rewind() - Rewind the iterator to the first storage element
  • SplObjectStorage::key() - Returns the index at which the iterator currently is
  • SplObjectStorage::next() - Move to the next entry
  • SplObjectStorage::valid() - Returns if the current iterator entry is valid
  • SplObjectStorage::setInfo() - Sets the data associated with the current iterator entry


Returns the index at which the iterator currently is

  • « SplObjectStorage::getInfo
  • SplObjectStorage::next »
  • PHP Manual
  • SplObjectStorage
  • Returns the index at which the iterator currently is

SplObjectStorage::key

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::key — Returns the index at which the iterator currently is

Beschreibung

public SplObjectStorage::key ( ) : int

Returns the index at which the iterator currently is.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The index corresponding to the position of the iterator.

Beispiele

Beispiel #1 SplObjectStorage::key() example

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // similar to current($s)

    var_dump($index);
    var_dump($object);
    $s->next();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(0)
object(stdClass)#2 (0) {
}
int(1)
object(stdClass)#3 (0) {
}

Siehe auch

  • SplObjectStorage::rewind() - Rewind the iterator to the first storage element
  • SplObjectStorage::current() - Returns the current storage entry
  • SplObjectStorage::next() - Move to the next entry
  • SplObjectStorage::valid() - Returns if the current iterator entry is valid


Move to the next entry

  • « SplObjectStorage::key
  • SplObjectStorage::offsetExists »
  • PHP Manual
  • SplObjectStorage
  • Move to the next entry

SplObjectStorage::next

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::next — Move to the next entry

Beschreibung

public SplObjectStorage::next ( ) : void

Moves the iterator to the next object in the storage.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplObjectStorage::next() example

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // similar to current($s)

    var_dump($index);
    var_dump($object);
    $s->next();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(0)
object(stdClass)#2 (0) {
}
int(1)
object(stdClass)#3 (0) {
}

Siehe auch

  • SPLObjectStorage::rewind() - Rewind the iterator to the first storage element


Checks whether an object exists in the storage

  • « SplObjectStorage::next
  • SplObjectStorage::offsetGet »
  • PHP Manual
  • SplObjectStorage
  • Checks whether an object exists in the storage

SplObjectStorage::offsetExists

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetExists — Checks whether an object exists in the storage

Beschreibung

public SplObjectStorage::offsetExists ( object $object ) : bool

Checks whether an object exists in the storage.

Hinweis:

SplObjectStorage::offsetExists() is an alias of SplObjectStorage::contains().

Parameter-Liste

object

The object to look for.

Rückgabewerte

Returns true if the object exists in the storage, and false otherwise.

Beispiele

Beispiel #1 SplObjectStorage::offsetExists() example

<?php
$s = new SplObjectStorage;
$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1);

var_dump($s->offsetExists($o1)); // Similar to isset($s[$o1])
var_dump($s->offsetExists($o2)); // Similar to isset($s[$o2])
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)

Siehe auch

  • SplObjectStorage::offsetSet() - Associates data to an object in the storage
  • SplObjectStorage::offsetGet() - Returns the data associated with an object
  • SplObjectStorage::offsetUnset() - Removes an object from the storage


Returns the data associated with an object

  • « SplObjectStorage::offsetExists
  • SplObjectStorage::offsetSet »
  • PHP Manual
  • SplObjectStorage
  • Returns the data associated with an object

SplObjectStorage::offsetGet

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetGet — Returns the data associated with an object

Beschreibung

public SplObjectStorage::offsetGet ( object $object ) : mixed

Returns the data associated with an object in the storage.

Parameter-Liste

object

The object to look for.

Rückgabewerte

The data previously associated with the object in the storage.

Fehler/Exceptions

Throws UnexpectedValueException when object could not be found.

Beispiele

Beispiel #1 SplObjectStorage::offsetGet() example

<?php
$s = new SplObjectStorage;

$o1 = new StdClass;
$o2 = new StdClass;

$s[$o1] = "hello";
$s->attach($o2);

var_dump($s->offsetGet($o1)); // Similar to $s[$o1]
var_dump($s->offsetGet($o2)); // Similar to $s[$o2]
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(5) "hello"
NULL

Siehe auch

  • SplObjectStorage::offsetSet() - Associates data to an object in the storage
  • SplObjectStorage::offsetExists() - Checks whether an object exists in the storage
  • SplObjectStorage::offsetUnset() - Removes an object from the storage


Associates data to an object in the storage

  • « SplObjectStorage::offsetGet
  • SplObjectStorage::offsetUnset »
  • PHP Manual
  • SplObjectStorage
  • Associates data to an object in the storage

SplObjectStorage::offsetSet

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetSet — Associates data to an object in the storage

Beschreibung

public SplObjectStorage::offsetSet ( object $object , mixed $data = null ) : void

Associate data to an object in the storage.

Hinweis:

SplObjectStorage::offsetSet() is an alias of SplObjectStorage::attach().

Parameter-Liste

object

The object to associate data with.

data

The data to associate with the object.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplObjectStorage::offsetSet() example

<?php
$s = new SplObjectStorage;

$o1 = new StdClass;

$s->offsetSet($o1, "hello"); // Similar to $s[$o1] = "hello";

var_dump($s[$o1]);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(5) "hello"

Siehe auch

  • SplObjectStorage::attach() - Adds an object in the storage
  • SplObjectStorage::offsetGet() - Returns the data associated with an object
  • SplObjectStorage::offsetExists() - Checks whether an object exists in the storage
  • SplObjectStorage::offsetUnset() - Removes an object from the storage


Removes an object from the storage

  • « SplObjectStorage::offsetSet
  • SplObjectStorage::removeAll »
  • PHP Manual
  • SplObjectStorage
  • Removes an object from the storage

SplObjectStorage::offsetUnset

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetUnset — Removes an object from the storage

Beschreibung

public SplObjectStorage::offsetUnset ( object $object ) : void

Removes an object from the storage.

Hinweis:

SplObjectStorage::offsetUnset() is an alias of SplObjectStorage::detach().

Parameter-Liste

object

The object to remove.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplObjectStorage::offsetUnset() example

<?php
$o = new StdClass;
$s = new SplObjectStorage();
$s->attach($o);
var_dump(count($s));
$s->offsetUnset($o); // Similar to unset($s[$o])
var_dump(count($s));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)
int(0)

Siehe auch

  • SplObjectStorage::offsetGet() - Returns the data associated with an object
  • SplObjectStorage::offsetSet() - Associates data to an object in the storage
  • SplObjectStorage::offsetExists() - Checks whether an object exists in the storage


Removes objects contained in another storage from the current storage

  • « SplObjectStorage::offsetUnset
  • SplObjectStorage::removeAllExcept »
  • PHP Manual
  • SplObjectStorage
  • Removes objects contained in another storage from the current storage

SplObjectStorage::removeAll

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::removeAll — Removes objects contained in another storage from the current storage

Beschreibung

public SplObjectStorage::removeAll ( SplObjectStorage $storage ) : void

Removes objects contained in another storage from the current storage.

Parameter-Liste

storage

The storage containing the elements to remove.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplObjectStorage::removeAll() example

<?php
$o1 = new StdClass;
$o2 = new StdClass;
$a = new SplObjectStorage();
$a[$o1] = "foo";

$b = new SplObjectStorage();
$b[$o1] = "bar";
$b[$o2] = "gee";

var_dump(count($b));
$b->removeAll($a);
var_dump(count($b));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(2)
int(1)

Siehe auch

  • SplObjectStorage::addAll() - Adds all objects from another storage


Removes all objects except for those contained in another storage from the current storage

  • « SplObjectStorage::removeAll
  • SplObjectStorage::rewind »
  • PHP Manual
  • SplObjectStorage
  • Removes all objects except for those contained in another storage from the current storage

SplObjectStorage::removeAllExcept

(PHP 5 >= 5.3.6, PHP 7)

SplObjectStorage::removeAllExcept — Removes all objects except for those contained in another storage from the current storage

Beschreibung

public SplObjectStorage::removeAllExcept ( SplObjectStorage $storage ) : void

Removes all objects except for those contained in another storage from the current storage.

Parameter-Liste

storage

The storage containing the elements to retain in the current storage.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplObjectStorage::removeAllExcept() example

<?php
$a = (object) 'a';
$b = (object) 'b';
$c = (object) 'c';

$foo = new SplObjectStorage;
$foo->attach($a);
$foo->attach($b);

$bar = new SplObjectStorage;
$bar->attach($b);
$bar->attach($c);

$foo->removeAllExcept($bar);
var_dump($foo->contains($a));
var_dump($foo->contains($b));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)


Rewind the iterator to the first storage element

  • « SplObjectStorage::removeAllExcept
  • SplObjectStorage::serialize »
  • PHP Manual
  • SplObjectStorage
  • Rewind the iterator to the first storage element

SplObjectStorage::rewind

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::rewind — Rewind the iterator to the first storage element

Beschreibung

public SplObjectStorage::rewind ( ) : void

Rewind the iterator to the first storage element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplObjectStorage::rewind() example

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // similar to current($s)
    $data   = $s->getInfo();

    var_dump($object);
    var_dump($data);
    $s->next();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)
int(0)

Siehe auch

  • SplObjectStorage::next() - Move to the next entry


Serializes the storage

  • « SplObjectStorage::rewind
  • SplObjectStorage::setInfo »
  • PHP Manual
  • SplObjectStorage
  • Serializes the storage

SplObjectStorage::serialize

(PHP 5 >= 5.2.2, PHP 7)

SplObjectStorage::serialize — Serializes the storage

Beschreibung

public SplObjectStorage::serialize ( ) : string

Returns a string representation of the storage.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A string representing the storage.

Beispiele

Beispiel #1 SplObjectStorage::serialize() example

<?php
$s = new SplObjectStorage;
$o = new StdClass;
$s[$o] = "data";

echo $s->serialize()."\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

x:i:1;O:8:"stdClass":0:{},s:4:"data";;m:a:0:{}

Siehe auch

  • SplObjectStorage::unserialize() - Unserializes a storage from its string representation


Sets the data associated with the current iterator entry

  • « SplObjectStorage::serialize
  • SplObjectStorage::unserialize »
  • PHP Manual
  • SplObjectStorage
  • Sets the data associated with the current iterator entry

SplObjectStorage::setInfo

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::setInfo — Sets the data associated with the current iterator entry

Beschreibung

public SplObjectStorage::setInfo ( mixed $data ) : void

Associates data, or info, with the object currently pointed to by the iterator.

Parameter-Liste

data

The data to associate with the current iterator entry.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplObjectStorage::setInfo() example

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $s->setInfo("new");
    $s->next();
}
var_dump($s[$o1]);
var_dump($s[$o2]);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(3) "new"
string(3) "new"

Siehe auch

  • SplObjectStorage::current() - Returns the current storage entry
  • SplObjectStorage::rewind() - Rewind the iterator to the first storage element
  • SplObjectStorage::key() - Returns the index at which the iterator currently is
  • SplObjectStorage::next() - Move to the next entry
  • SplObjectStorage::valid() - Returns if the current iterator entry is valid
  • SplObjectStorage::getInfo() - Returns the data associated with the current iterator entry


Unserializes a storage from its string representation

  • « SplObjectStorage::setInfo
  • SplObjectStorage::valid »
  • PHP Manual
  • SplObjectStorage
  • Unserializes a storage from its string representation

SplObjectStorage::unserialize

(PHP 5 >= 5.2.2, PHP 7)

SplObjectStorage::unserialize — Unserializes a storage from its string representation

Beschreibung

public SplObjectStorage::unserialize ( string $serialized ) : void

Unserializes storage entries and attach them to the current storage.

Parameter-Liste

serialized

The serialized representation of a storage.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplObjectStorage::unserialize() example

<?php
$s1 = new SplObjectStorage;
$s2 = new SplObjectStorage;
$o = new StdClass;
$s1[$o] = "data";

$s2->unserialize($s1->serialize());

var_dump(count($s2));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)

Siehe auch

  • SplObjectStorage::serialize() - Serializes the storage


Returns if the current iterator entry is valid

  • « SplObjectStorage::unserialize
  • Iteratoren »
  • PHP Manual
  • SplObjectStorage
  • Returns if the current iterator entry is valid

SplObjectStorage::valid

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::valid — Returns if the current iterator entry is valid

Beschreibung

public SplObjectStorage::valid ( ) : bool

Returns if the current iterator entry is valid.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the iterator entry is valid, false otherwise.

Beispiele

Beispiel #1 SplObjectStorage::valid() example

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    echo $s->key()."\n";
    $s->next();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

0
1

Siehe auch

  • SplObjectStorage::current() - Returns the current storage entry
  • SplObjectStorage::getInfo() - Returns the data associated with the current iterator entry


Iteratoren

Inhaltsverzeichnis

  • AppendIterator
  • ArrayIterator
  • CachingIterator
  • CallbackFilterIterator
  • DirectoryIterator
  • EmptyIterator
  • FilesystemIterator
  • FilterIterator
  • GlobIterator
  • InfiniteIterator
  • IteratorIterator
  • LimitIterator
  • MultipleIterator
  • NoRewindIterator
  • ParentIterator
  • RecursiveArrayIterator
  • RecursiveCachingIterator
  • RecursiveCallbackFilterIterator
  • RecursiveDirectoryIterator
  • RecursiveFilterIterator
  • RecursiveIteratorIterator
  • RecursiveRegexIterator
  • RecursiveTreeIterator
  • RegexIterator

SPL bietet einige Iteratoren zum durchlaufen von Objekten an.

SPL Iterators Class Tree

  • ArrayIterator
    • RecursiveArrayIterator
  • EmptyIterator
  • IteratorIterator
    • AppendIterator
    • CachingIterator
      • RecursiveCachingIterator
    • FilterIterator
      • CallbackFilterIterator
        • RecursiveCallbackFilterIterator
      • RecursiveFilterIterator
        • ParentIterator
      • RegexIterator
        • RecursiveRegexIterator
    • InfiniteIterator
    • LimitIterator
    • NoRewindIterator
  • MultipleIterator
  • RecursiveIteratorIterator
    • RecursiveTreeIterator
  • DirectoryIterator (extends SplFileInfo)
    • FilesystemIterator
      • GlobIterator
      • RecursiveDirectoryIterator


The AppendIterator class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

An Iterator that iterates over several iterators one after the other.

Klassenbeschreibung

AppendIterator extends IteratorIterator implements OuterIterator {
/* Methoden */
public __construct ( )
public append ( Iterator $iterator ) : void
public current ( ) : mixed
public getArrayIterator ( ) : ArrayIterator
public getInnerIterator ( ) : Iterator
public getIteratorIndex ( ) : int
public key ( ) : scalar
public next ( ) : void
public rewind ( ) : void
public valid ( ) : bool
/* Geerbte Methoden */
public IteratorIterator::__construct ( Traversable $iterator )
public IteratorIterator::current ( ) : mixed
public IteratorIterator::getInnerIterator ( ) : Traversable
public IteratorIterator::key ( ) : mixed
public IteratorIterator::next ( ) : void
public IteratorIterator::rewind ( ) : void
public IteratorIterator::valid ( ) : bool
}

Inhaltsverzeichnis

  • AppendIterator::append — Appends an iterator
  • AppendIterator::__construct — Constructs an AppendIterator
  • AppendIterator::current — Gets the current value
  • AppendIterator::getArrayIterator — Gets the ArrayIterator
  • AppendIterator::getInnerIterator — Gets the inner iterator
  • AppendIterator::getIteratorIndex — Gets an index of iterators
  • AppendIterator::key — Gets the current key
  • AppendIterator::next — Moves to the next element
  • AppendIterator::rewind — Rewinds the Iterator
  • AppendIterator::valid — Checks validity of the current element


Appends an iterator

  • « AppendIterator
  • AppendIterator::__construct »
  • PHP Manual
  • AppendIterator
  • Appends an iterator

AppendIterator::append

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::append — Appends an iterator

Beschreibung

public AppendIterator::append ( Iterator $iterator ) : void

Appends an iterator.

Parameter-Liste

iterator

The iterator to append.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 AppendIterator::append() example

<?php
$array_a = new ArrayIterator(array('a', 'b', 'c'));
$array_b = new ArrayIterator(array('d', 'e', 'f'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $current) {
    echo $current;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

abcdef

Siehe auch

  • AppendIterator::__construct() - Constructs an AppendIterator


Constructs an AppendIterator

  • « AppendIterator::append
  • AppendIterator::current »
  • PHP Manual
  • AppendIterator
  • Constructs an AppendIterator

AppendIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::__construct — Constructs an AppendIterator

Beschreibung

public AppendIterator::__construct ( )

Constructs an AppendIterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Iterating AppendIterator with foreach

<?php
$pizzas   = new ArrayIterator(array('Margarita', 'Siciliana', 'Hawaii'));
$toppings = new ArrayIterator(array('Cheese', 'Anchovies', 'Olives', 'Pineapple', 'Ham'));

$appendIterator = new AppendIterator;
$appendIterator->append($pizzas);
$appendIterator->append($toppings);

foreach ($appendIterator as $key => $item) {
    echo $key . ' => ' . $item . PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0 => Margarita
1 => Siciliana
2 => Hawaii
0 => Cheese
1 => Anchovies
2 => Olives
3 => Pineapple
4 => Ham

Beispiel #2 Iterating AppendIterator with the AppendIterator API

<?php
$pizzas   = new ArrayIterator(array('Margarita', 'Siciliana', 'Hawaii'));
$toppings = new ArrayIterator(array('Cheese', 'Anchovies', 'Olives', 'Pineapple', 'Ham'));

$appendIterator = new AppendIterator;
$appendIterator->append($pizzas);
$appendIterator->append($toppings);

while ($appendIterator->valid()) {
    printf(
        '%s => %s => %s%s',
        $appendIterator->getIteratorIndex(),
        $appendIterator->key(),
        $appendIterator->current(),
        PHP_EOL
    );
    $appendIterator->next();
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0 => 0 => Margarita
0 => 1 => Siciliana
0 => 2 => Hawaii
1 => 0 => Cheese
1 => 1 => Anchovies
1 => 2 => Olives
1 => 3 => Pineapple
1 => 4 => Ham

Anmerkungen

Achtung

When using iterator_to_array() to copy the values of the AppendIterator into an array, you have to set the optional use_key argument to false. When use_key is not false any keys reoccuring in inner iterators will get overwritten in the returned array. There is no way to preserve the original keys.

Siehe auch

  • AppendIterator::append() - Appends an iterator


Gets the current value

  • « AppendIterator::__construct
  • AppendIterator::getArrayIterator »
  • PHP Manual
  • AppendIterator
  • Gets the current value

AppendIterator::current

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::current — Gets the current value

Beschreibung

public AppendIterator::current ( ) : mixed

Gets the current value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current value if it is valid or null otherwise.

Siehe auch

  • Iterator::current() - Gibt das aktuelle Element zurück
  • AppendIterator::key() - Gets the current key
  • AppendIterator::valid() - Checks validity of the current element
  • AppendIterator::next() - Moves to the next element
  • AppendIterator::rewind() - Rewinds the Iterator


Gets the ArrayIterator

  • « AppendIterator::current
  • AppendIterator::getInnerIterator »
  • PHP Manual
  • AppendIterator
  • Gets the ArrayIterator

AppendIterator::getArrayIterator

(PHP 5 >= 5.2.0, PHP 7)

AppendIterator::getArrayIterator — Gets the ArrayIterator

Beschreibung

public AppendIterator::getArrayIterator ( ) : ArrayIterator

This method gets the ArrayIterator that is used to store the iterators added with AppendIterator::append().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an ArrayIterator containing the appended iterators.

Siehe auch

  • AppendIterator::getInnerIterator() - Gets the inner iterator


Gets the inner iterator

  • « AppendIterator::getArrayIterator
  • AppendIterator::getIteratorIndex »
  • PHP Manual
  • AppendIterator
  • Gets the inner iterator

AppendIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::getInnerIterator — Gets the inner iterator

Beschreibung

public AppendIterator::getInnerIterator ( ) : Iterator

This method returns the current inner iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current inner iterator, or null if there is not one.

Beispiele

Beispiel #1 AppendIterator::getInnerIterator() example

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new RegexIterator($array_a, '/^[ac]/');

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $current) {
    $inner = $iterator->getInnerIterator();
    if ($inner instanceOf RegexIterator) {
        echo 'Filtered: ';
    } else {
        echo 'Original: ';
    }
    echo $current . PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Original: aardwolf
Original: bear
Original: capybara
Filtered: aardwolf
Filtered: capybara

Siehe auch

  • AppendIterator::getIteratorIndex() - Gets an index of iterators


Gets an index of iterators

  • « AppendIterator::getInnerIterator
  • AppendIterator::key »
  • PHP Manual
  • AppendIterator
  • Gets an index of iterators

AppendIterator::getIteratorIndex

(PHP 5 >= 5.2.0, PHP 7)

AppendIterator::getIteratorIndex — Gets an index of iterators

Beschreibung

public AppendIterator::getIteratorIndex ( ) : int

Gets the index of the current inner iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an int, which is the zero-based index of the current inner iterator.

Beispiele

Beispiel #1 AppendIterator.getIteratorIndex() basic example

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new ArrayIterator(array('apple', 'orange', 'lemon'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $key => $current) {
    echo $iterator->getIteratorIndex() . '  ' . $key . ' ' . $current . PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0  a aardwolf
0  b bear
0  c capybara
1  0 apple
1  1 orange
1  2 lemon

Siehe auch

  • AppendIterator::getInnerIterator() - Gets the inner iterator
  • AppendIterator::getArrayIterator() - Gets the ArrayIterator


Gets the current key

  • « AppendIterator::getIteratorIndex
  • AppendIterator::next »
  • PHP Manual
  • AppendIterator
  • Gets the current key

AppendIterator::key

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::key — Gets the current key

Beschreibung

public AppendIterator::key ( ) : scalar

Get the current key.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current key if it is valid or null otherwise.

Beispiele

Beispiel #1 AppendIterator::key() basic example

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new ArrayIterator(array('apple', 'orange', 'lemon'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

// Manual iteration
$iterator->rewind();
while ($iterator->valid()) {
    echo $iterator->key() . ' ' . $iterator->current() . PHP_EOL;
    $iterator->next();
}

echo PHP_EOL;

// With foreach
foreach ($iterator as $key => $current) {
    echo $key . ' ' . $current . PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a aardwolf
b bear
c capybara
0 apple
1 orange
2 lemon

a aardwolf
b bear
c capybara
0 apple
1 orange
2 lemon

Siehe auch

  • Iterator::key() - Gibt den Schlüssel des aktuellen Elements zurück
  • AppendIterator::current() - Gets the current value
  • AppendIterator::valid() - Checks validity of the current element
  • AppendIterator::next() - Moves to the next element
  • AppendIterator::rewind() - Rewinds the Iterator


Moves to the next element

  • « AppendIterator::key
  • AppendIterator::rewind »
  • PHP Manual
  • AppendIterator
  • Moves to the next element

AppendIterator::next

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::next — Moves to the next element

Beschreibung

public AppendIterator::next ( ) : void

Moves to the next element. If this means to another Iterator then it rewinds that Iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Iterator::next() - Rückt den Zeiger auf das nächste Element vor
  • AppendIterator::current() - Gets the current value
  • AppendIterator::key() - Gets the current key
  • AppendIterator::valid() - Checks validity of the current element
  • AppendIterator::rewind() - Rewinds the Iterator


Rewinds the Iterator

  • « AppendIterator::next
  • AppendIterator::valid »
  • PHP Manual
  • AppendIterator
  • Rewinds the Iterator

AppendIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::rewind — Rewinds the Iterator

Beschreibung

public AppendIterator::rewind ( ) : void

Rewind to the first element of the first inner Iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Iterator::rewind() - Setzt den Iterator auf das erste Element zurück
  • AppendIterator::current() - Gets the current value
  • AppendIterator::key() - Gets the current key
  • AppendIterator::next() - Moves to the next element
  • AppendIterator::valid() - Checks validity of the current element


Checks validity of the current element

  • « AppendIterator::rewind
  • ArrayIterator »
  • PHP Manual
  • AppendIterator
  • Checks validity of the current element

AppendIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::valid — Checks validity of the current element

Beschreibung

public AppendIterator::valid ( ) : bool

Checks validity of the current element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the current iteration is valid, false otherwise.

Siehe auch

  • AppendIterator::current() - Gets the current value
  • AppendIterator::key() - Gets the current key
  • AppendIterator::next() - Moves to the next element
  • AppendIterator::rewind() - Rewinds the Iterator


The ArrayIterator class

(PHP 5, PHP 7)

Einführung

This iterator allows to unset and modify values and keys while iterating over Arrays and Objects.

When you want to iterate over the same array multiple times you need to instantiate ArrayObject and let it create ArrayIterator instances that refer to it either by using foreach or by calling its getIterator() method manually.

Klassenbeschreibung

ArrayIterator implements ArrayAccess , SeekableIterator , Countable , Serializable {
/* Konstanten */
const int STD_PROP_LIST = 1 ;
const int ARRAY_AS_PROPS = 2 ;
/* Methoden */
public append ( mixed $value ) : void
public asort ( ) : void
public __construct ( mixed $array = array() , int $flags = 0 )
public count ( ) : int
public current ( ) : mixed
public getArrayCopy ( ) : array
public getFlags ( ) : int
public key ( ) : mixed
public ksort ( ) : void
public natcasesort ( ) : void
public natsort ( ) : void
public next ( ) : void
public offsetExists ( mixed $index ) : bool
public offsetGet ( mixed $index ) : mixed
public offsetSet ( mixed $index , mixed $newval ) : void
public offsetUnset ( mixed $index ) : void
public rewind ( ) : void
public seek ( int $position ) : void
public serialize ( ) : string
public setFlags ( string $flags ) : void
public uasort ( callable $cmp_function ) : void
public uksort ( callable $cmp_function ) : void
public unserialize ( string $serialized ) : void
public valid ( ) : bool
}

Vordefinierte Konstanten

ArrayIterator Flags

ArrayIterator::STD_PROP_LIST

Properties of the object have their normal functionality when accessed as list (var_dump, foreach, etc.).

ArrayIterator::ARRAY_AS_PROPS

Entries can be accessed as properties (read and write).

Inhaltsverzeichnis

  • ArrayIterator::append — Append an element
  • ArrayIterator::asort — Sort array by values
  • ArrayIterator::__construct — Construct an ArrayIterator
  • ArrayIterator::count — Count elements
  • ArrayIterator::current — Return current array entry
  • ArrayIterator::getArrayCopy — Get array copy
  • ArrayIterator::getFlags — Get behavior flags
  • ArrayIterator::key — Return current array key
  • ArrayIterator::ksort — Sort array by keys
  • ArrayIterator::natcasesort — Sort an array naturally, case insensitive
  • ArrayIterator::natsort — Sort an array naturally
  • ArrayIterator::next — Move to next entry
  • ArrayIterator::offsetExists — Check if offset exists
  • ArrayIterator::offsetGet — Get value for an offset
  • ArrayIterator::offsetSet — Set value for an offset
  • ArrayIterator::offsetUnset — Unset value for an offset
  • ArrayIterator::rewind — Rewind array back to the start
  • ArrayIterator::seek — Seek to position
  • ArrayIterator::serialize — Serialize
  • ArrayIterator::setFlags — Set behaviour flags
  • ArrayIterator::uasort — Sort with a user-defined comparison function and maintain index association
  • ArrayIterator::uksort — Sort by keys using a user-defined comparison function
  • ArrayIterator::unserialize — Unserialize
  • ArrayIterator::valid — Check whether array contains more entries


Append an element

  • « ArrayIterator
  • ArrayIterator::asort »
  • PHP Manual
  • ArrayIterator
  • Append an element

ArrayIterator::append

(PHP 5, PHP 7)

ArrayIterator::append — Append an element

Beschreibung

public ArrayIterator::append ( mixed $value ) : void

Appends value as the last element.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

value

The value to append.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Anmerkungen

Hinweis:

This method cannot be called when the ArrayIterator refers to an object.

Siehe auch

  • ArrayIterator::next() - Move to next entry


Sort array by values

  • « ArrayIterator::append
  • ArrayIterator::__construct »
  • PHP Manual
  • ArrayIterator
  • Sort array by values

ArrayIterator::asort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::asort — Sort array by values

Beschreibung

public ArrayIterator::asort ( ) : void

Sorts an array by values.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ArrayIterator::ksort() - Sort array by keys
  • ArrayIterator::natcasesort() - Sort an array naturally, case insensitive
  • ArrayIterator::natsort() - Sort an array naturally


Construct an ArrayIterator

  • « ArrayIterator::asort
  • ArrayIterator::count »
  • PHP Manual
  • ArrayIterator
  • Construct an ArrayIterator

ArrayIterator::__construct

(PHP 5, PHP 7)

ArrayIterator::__construct — Construct an ArrayIterator

Beschreibung

public ArrayIterator::__construct ( mixed $array = array() , int $flags = 0 )

Constructs an ArrayIterator object.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

array

The array or object to be iterated on.

flags

Flags to control the behaviour of the ArrayIterator object. See ArrayIterator::setFlags().

Rückgabewerte

An ArrayIterator object.

Fehler/Exceptions

ArrayIterator::__construct() throws an InvalidArgumentException if anything besides an array or an object is given.

Siehe auch

  • ArrayIterator::getArrayCopy() - Get array copy


Count elements

  • « ArrayIterator::__construct
  • ArrayIterator::current »
  • PHP Manual
  • ArrayIterator
  • Count elements

ArrayIterator::count

(PHP 5, PHP 7)

ArrayIterator::count — Count elements

Beschreibung

public ArrayIterator::count ( ) : int

Gets the number of elements in the array, or the number of public properties in the object.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of elements or public properties in the associated array or object, respectively.

Siehe auch

  • ArrayIterator::getFlags() - Get behavior flags


Return current array entry

  • « ArrayIterator::count
  • ArrayIterator::getArrayCopy »
  • PHP Manual
  • ArrayIterator
  • Return current array entry

ArrayIterator::current

(PHP 5, PHP 7)

ArrayIterator::current — Return current array entry

Beschreibung

public ArrayIterator::current ( ) : mixed

Get the current array entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current array entry.

Beispiele

Beispiel #1 ArrayIterator::current() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

for($iterator = $arrayobject->getIterator();
    $iterator->valid();
    $iterator->next()) {

    echo $iterator->key() . ' => ' . $iterator->current() . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1 => one
2 => two
3 => three


Get array copy

  • « ArrayIterator::current
  • ArrayIterator::getFlags »
  • PHP Manual
  • ArrayIterator
  • Get array copy

ArrayIterator::getArrayCopy

(PHP 5, PHP 7)

ArrayIterator::getArrayCopy — Get array copy

Beschreibung

public ArrayIterator::getArrayCopy ( ) : array

Get a copy of an array.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A copy of the array, or array of public properties if ArrayIterator refers to an object.

Siehe auch

  • ArrayIterator::valid() - Check whether array contains more entries


Get behavior flags

  • « ArrayIterator::getArrayCopy
  • ArrayIterator::key »
  • PHP Manual
  • ArrayIterator
  • Get behavior flags

ArrayIterator::getFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayIterator::getFlags — Get behavior flags

Beschreibung

public ArrayIterator::getFlags ( ) : int

Gets the behavior flags of the ArrayIterator. See the ArrayIterator::setFlags method for a list of the available flags.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the behavior flags of the ArrayIterator.

Siehe auch

  • >ArrayIterator::setFlags()
  • ArrayIterator::valid() - Check whether array contains more entries


Return current array key

  • « ArrayIterator::getFlags
  • ArrayIterator::ksort »
  • PHP Manual
  • ArrayIterator
  • Return current array key

ArrayIterator::key

(PHP 5, PHP 7)

ArrayIterator::key — Return current array key

Beschreibung

public ArrayIterator::key ( ) : mixed

This function returns the current array key

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current array key.

Beispiele

Beispiel #1 ArrayIterator::key() example

<?php
$array = array('key' => 'value');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

echo $iterator->key(); //key
?>


Sort array by keys

  • « ArrayIterator::key
  • ArrayIterator::natcasesort »
  • PHP Manual
  • ArrayIterator
  • Sort array by keys

ArrayIterator::ksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::ksort — Sort array by keys

Beschreibung

public ArrayIterator::ksort ( ) : void

Sorts an array by the keys.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ArrayIterator::asort() - Sort array by values
  • ArrayIterator::natcasesort() - Sort an array naturally, case insensitive
  • ArrayIterator::natsort() - Sort an array naturally


Sort an array naturally, case insensitive

  • « ArrayIterator::ksort
  • ArrayIterator::natsort »
  • PHP Manual
  • ArrayIterator
  • Sort an array naturally, case insensitive

ArrayIterator::natcasesort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::natcasesort — Sort an array naturally, case insensitive

Beschreibung

public ArrayIterator::natcasesort ( ) : void

Sort the entries by values using a case insensitive "natural order" algorithm.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ArrayIterator::asort() - Sort array by values
  • ArrayIterator::ksort() - Sort array by keys
  • ArrayIterator::natsort() - Sort an array naturally
  • natcasesort() - Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert


Sort an array naturally

  • « ArrayIterator::natcasesort
  • ArrayIterator::next »
  • PHP Manual
  • ArrayIterator
  • Sort an array naturally

ArrayIterator::natsort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::natsort — Sort an array naturally

Beschreibung

public ArrayIterator::natsort ( ) : void

Sort the entries by values using "natural order" algorithm.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ArrayIterator::asort() - Sort array by values
  • ArrayIterator::ksort() - Sort array by keys
  • ArrayIterator::natcasesort() - Sort an array naturally, case insensitive
  • natsort() - Sortiert ein Array in "natürlicher Reihenfolge"


Move to next entry

  • « ArrayIterator::natsort
  • ArrayIterator::offsetExists »
  • PHP Manual
  • ArrayIterator
  • Move to next entry

ArrayIterator::next

(PHP 5, PHP 7)

ArrayIterator::next — Move to next entry

Beschreibung

public ArrayIterator::next ( ) : void

The iterator to the next entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayIterator::next() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0 => zero
1 => one


Check if offset exists

  • « ArrayIterator::next
  • ArrayIterator::offsetGet »
  • PHP Manual
  • ArrayIterator
  • Check if offset exists

ArrayIterator::offsetExists

(PHP 5, PHP 7)

ArrayIterator::offsetExists — Check if offset exists

Beschreibung

public ArrayIterator::offsetExists ( mixed $index ) : bool

Checks if the offset exists.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

index

The offset being checked.

Rückgabewerte

true if the offset exists, otherwise false

Siehe auch

  • ArrayIterator::valid() - Check whether array contains more entries


Get value for an offset

  • « ArrayIterator::offsetExists
  • ArrayIterator::offsetSet »
  • PHP Manual
  • ArrayIterator
  • Get value for an offset

ArrayIterator::offsetGet

(PHP 5, PHP 7)

ArrayIterator::offsetGet — Get value for an offset

Beschreibung

public ArrayIterator::offsetGet ( mixed $index ) : mixed

Gets the value from the provided offset.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

index

The offset to get the value from.

Rückgabewerte

The value at offset index.

Siehe auch

  • ArrayIterator::offsetSet() - Set value for an offset
  • ArrayIterator::offsetUnset() - Unset value for an offset


Set value for an offset

  • « ArrayIterator::offsetGet
  • ArrayIterator::offsetUnset »
  • PHP Manual
  • ArrayIterator
  • Set value for an offset

ArrayIterator::offsetSet

(PHP 5, PHP 7)

ArrayIterator::offsetSet — Set value for an offset

Beschreibung

public ArrayIterator::offsetSet ( mixed $index , mixed $newval ) : void

Sets a value for a given offset.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

index

The index to set for.

newval

The new value to store at the index.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ArrayIterator::offsetGet() - Get value for an offset
  • ArrayIterator::offsetUnset() - Unset value for an offset


Unset value for an offset

  • « ArrayIterator::offsetSet
  • ArrayIterator::rewind »
  • PHP Manual
  • ArrayIterator
  • Unset value for an offset

ArrayIterator::offsetUnset

(PHP 5, PHP 7)

ArrayIterator::offsetUnset — Unset value for an offset

Beschreibung

public ArrayIterator::offsetUnset ( mixed $index ) : void

Unsets a value for an offset.

If iteration is in progress, and ArrayIterator::offsetUnset() is used to unset the current index of iteration, the iteration position will be advanced to the next index. Since the iteration position is also advanced at the end of a foreach loop body, use of ArrayIterator::offsetUnset() inside a foreach loop may result in indices being skipped.

Parameter-Liste

index

The offset to unset.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ArrayIterator::offsetGet() - Get value for an offset
  • ArrayIterator::offsetSet() - Set value for an offset


Rewind array back to the start

  • « ArrayIterator::offsetUnset
  • ArrayIterator::seek »
  • PHP Manual
  • ArrayIterator
  • Rewind array back to the start

ArrayIterator::rewind

(PHP 5, PHP 7)

ArrayIterator::rewind — Rewind array back to the start

Beschreibung

public ArrayIterator::rewind ( ) : void

This rewinds the iterator to the beginning.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayIterator::rewind() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';
$arrayobject[] = 'two';

$iterator = $arrayobject->getIterator();

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); //rewinding to the beginning
echo $iterator->key(); //0
?>


Seek to position

  • « ArrayIterator::rewind
  • ArrayIterator::serialize »
  • PHP Manual
  • ArrayIterator
  • Seek to position

ArrayIterator::seek

(PHP 5, PHP 7)

ArrayIterator::seek — Seek to position

Beschreibung

public ArrayIterator::seek ( int $position ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

position

The position to seek to.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Serialize

  • « ArrayIterator::seek
  • ArrayIterator::setFlags »
  • PHP Manual
  • ArrayIterator
  • Serialize

ArrayIterator::serialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayIterator::serialize — Serialize

Beschreibung

public ArrayIterator::serialize ( ) : string

Serialize.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The serialized ArrayIterator.

Siehe auch

  • ArrayIterator::unserialize() - Unserialize


Set behaviour flags

  • « ArrayIterator::serialize
  • ArrayIterator::uasort »
  • PHP Manual
  • ArrayIterator
  • Set behaviour flags

ArrayIterator::setFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayIterator::setFlags — Set behaviour flags

Beschreibung

public ArrayIterator::setFlags ( string $flags ) : void

Set the flags that change the behavior of the ArrayIterator.

Parameter-Liste

flags

The new ArrayIterator behavior. It takes on either a bitmask, or named constants. Using named constants is strongly encouraged to ensure compatibility for future versions.

The available behavior flags are listed below. The actual meanings of these flags are described in the predefined constants.

ArrayIterator behavior flags
value | constant
1 | ArrayIterator::STD_PROP_LIST
2 | ArrayIterator::ARRAY_AS_PROPS

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ArrayIterator::getFlags() - Get behavior flags


Sort with a user-defined comparison function and maintain index association

  • « ArrayIterator::setFlags
  • ArrayIterator::uksort »
  • PHP Manual
  • ArrayIterator
  • Sort with a user-defined comparison function and maintain index association

ArrayIterator::uasort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::uasort — Sort with a user-defined comparison function and maintain index association

Beschreibung

public ArrayIterator::uasort ( callable $cmp_function ) : void

This method sorts the elements such that indices maintain their correlation with the values they are associated with, using a user-defined comparison function.

Hinweis:

Wenn zwei Mitglieder als identisch verglichen werden, ist die relative Sortierung im sortierten Array nicht definiert.

Parameter-Liste

cmp_function

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ArrayIterator::asort() - Sort array by values
  • ArrayIterator::uksort() - Sort by keys using a user-defined comparison function
  • usort() - Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion


Sort by keys using a user-defined comparison function

  • « ArrayIterator::uasort
  • ArrayIterator::unserialize »
  • PHP Manual
  • ArrayIterator
  • Sort by keys using a user-defined comparison function

ArrayIterator::uksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::uksort — Sort by keys using a user-defined comparison function

Beschreibung

public ArrayIterator::uksort ( callable $cmp_function ) : void

This method sorts the elements by keys using a user-supplied comparison function.

Hinweis:

Wenn zwei Mitglieder als identisch verglichen werden, ist die relative Sortierung im sortierten Array nicht definiert.

Parameter-Liste

cmp_function

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ArrayIterator::ksort() - Sort array by keys
  • ArrayIterator::uasort() - Sort with a user-defined comparison function and maintain index association
  • uksort() - Sortiert ein Array nach Schlüsseln mittels einer benutzerdefinierten Vergleichsfunktion


Unserialize

  • « ArrayIterator::uksort
  • ArrayIterator::valid »
  • PHP Manual
  • ArrayIterator
  • Unserialize

ArrayIterator::unserialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayIterator::unserialize — Unserialize

Beschreibung

public ArrayIterator::unserialize ( string $serialized ) : void

Unserialize.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

serialized

The serialized ArrayIterator object to be unserialized.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ArrayIterator::serialize() - Serialize


Check whether array contains more entries

  • « ArrayIterator::unserialize
  • CachingIterator »
  • PHP Manual
  • ArrayIterator
  • Check whether array contains more entries

ArrayIterator::valid

(PHP 5, PHP 7)

ArrayIterator::valid — Check whether array contains more entries

Beschreibung

public ArrayIterator::valid ( ) : bool

Checks if the array contains any more entries.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the iterator is valid, otherwise false

Beispiele

Beispiel #1 ArrayIterator::valid() example

<?php
$array = array('1' => 'one');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

var_dump($iterator->valid()); //bool(true)

$iterator->next(); // advance to the next item

//bool(false) because there is only one array element
var_dump($iterator->valid());
?>


The CachingIterator class

(PHP 5, PHP 7)

Einführung

This object supports cached iteration over another iterator.

Klassenbeschreibung

CachingIterator extends IteratorIterator implements OuterIterator , ArrayAccess , Countable {
/* Konstanten */
const int CALL_TOSTRING = 1 ;
const int CATCH_GET_CHILD = 16 ;
const int TOSTRING_USE_KEY = 2 ;
const int TOSTRING_USE_CURRENT = 4 ;
const int TOSTRING_USE_INNER = 8 ;
const int FULL_CACHE = 256 ;
/* Methoden */
public __construct ( Iterator $iterator , int $flags = self::CALL_TOSTRING )
public count ( ) : int
public current ( ) : mixed
public getCache ( ) : array
public getFlags ( ) : int
public getInnerIterator ( ) : Iterator
public hasNext ( ) : void
public key ( ) : scalar
public next ( ) : void
public offsetExists ( mixed $index ) : void
public offsetGet ( string $index ) : void
public offsetSet ( mixed $index , mixed $newval ) : void
public offsetUnset ( string $index ) : void
public rewind ( ) : void
public setFlags ( int $flags ) : void
public __toString ( ) : void
public valid ( ) : void
}

Vordefinierte Konstanten

CachingIterator::CALL_TOSTRING

Convert every element to string.

CachingIterator::CATCH_GET_CHILD

Don't throw exception in accessing children.

CachingIterator::TOSTRING_USE_KEY

Use key for conversion to string.

CachingIterator::TOSTRING_USE_CURRENT

Use current for conversion to string.

CachingIterator::TOSTRING_USE_INNER

Use inner for conversion to string.

CachingIterator::FULL_CACHE

Cache all read data.

Inhaltsverzeichnis

  • CachingIterator::__construct — Construct a new CachingIterator object for the iterator
  • CachingIterator::count — The number of elements in the iterator
  • CachingIterator::current — Return the current element
  • CachingIterator::getCache — Retrieve the contents of the cache
  • CachingIterator::getFlags — Get flags used
  • CachingIterator::getInnerIterator — Returns the inner iterator
  • CachingIterator::hasNext — Check whether the inner iterator has a valid next element
  • CachingIterator::key — Return the key for the current element
  • CachingIterator::next — Move the iterator forward
  • CachingIterator::offsetExists — The offsetExists purpose
  • CachingIterator::offsetGet — The offsetGet purpose
  • CachingIterator::offsetSet — The offsetSet purpose
  • CachingIterator::offsetUnset — The offsetUnset purpose
  • CachingIterator::rewind — Rewind the iterator
  • CachingIterator::setFlags — The setFlags purpose
  • CachingIterator::__toString — Return the string representation of the current element
  • CachingIterator::valid — Check whether the current element is valid


Construct a new CachingIterator object for the iterator

  • « CachingIterator
  • CachingIterator::count »
  • PHP Manual
  • CachingIterator
  • Construct a new CachingIterator object for the iterator

CachingIterator::__construct

(PHP 5, PHP 7)

CachingIterator::__construct — Construct a new CachingIterator object for the iterator

Beschreibung

public CachingIterator::__construct ( Iterator $iterator , int $flags = self::CALL_TOSTRING )
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

iterator

Iterator to cache

flags

Bitmask of flags.


The number of elements in the iterator

  • « CachingIterator::__construct
  • CachingIterator::current »
  • PHP Manual
  • CachingIterator
  • The number of elements in the iterator

CachingIterator::count

(PHP 5 >= 5.2.2, PHP 7)

CachingIterator::count — The number of elements in the iterator

Beschreibung

public CachingIterator::count ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

May return the number of elements in the iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The count of the elements iterated over.


Return the current element

  • « CachingIterator::count
  • CachingIterator::getCache »
  • PHP Manual
  • CachingIterator
  • Return the current element

CachingIterator::current

(PHP 5, PHP 7)

CachingIterator::current — Return the current element

Beschreibung

public CachingIterator::current ( ) : mixed
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

May return the current element in the iteration.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Mixed

Siehe auch

  • Iterator::current() - Gibt das aktuelle Element zurück


Retrieve the contents of the cache

  • « CachingIterator::current
  • CachingIterator::getFlags »
  • PHP Manual
  • CachingIterator
  • Retrieve the contents of the cache

CachingIterator::getCache

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::getCache — Retrieve the contents of the cache

Beschreibung

public CachingIterator::getCache ( ) : array

Retrieve the contents of the cache.

Hinweis:

The CachingIterator::FULL_CACHE flag must be being used.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array containing the cache items.

Fehler/Exceptions

Throws a BadMethodCallException when the CachingIterator::FULL_CACHE flag is not being used.

Beispiele

Beispiel #1 CachingIterator::getCache() example

<?php
$iterator = new ArrayIterator(array(1, 2, 3));
$cache    = new CachingIterator($iterator, CachingIterator::FULL_CACHE);

$cache->next();
$cache->next();
var_dump($cache->getCache());

$cache->next();
var_dump($cache->getCache());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Get flags used

  • « CachingIterator::getCache
  • CachingIterator::getInnerIterator »
  • PHP Manual
  • CachingIterator
  • Get flags used

CachingIterator::getFlags

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::getFlags — Get flags used

Beschreibung

public CachingIterator::getFlags ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Get the bitmask of the flags used for this CachingIterator instance.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Description...


Returns the inner iterator

  • « CachingIterator::getFlags
  • CachingIterator::hasNext »
  • PHP Manual
  • CachingIterator
  • Returns the inner iterator

CachingIterator::getInnerIterator

(PHP 5, PHP 7)

CachingIterator::getInnerIterator — Returns the inner iterator

Beschreibung

public CachingIterator::getInnerIterator ( ) : Iterator
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the iterator sent to the constructor.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an object implementing the Iterator interface.


Check whether the inner iterator has a valid next element

  • « CachingIterator::getInnerIterator
  • CachingIterator::key »
  • PHP Manual
  • CachingIterator
  • Check whether the inner iterator has a valid next element

CachingIterator::hasNext

(PHP 5, PHP 7)

CachingIterator::hasNext — Check whether the inner iterator has a valid next element

Beschreibung

public CachingIterator::hasNext ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Return the key for the current element

  • « CachingIterator::hasNext
  • CachingIterator::next »
  • PHP Manual
  • CachingIterator
  • Return the key for the current element

CachingIterator::key

(PHP 5, PHP 7)

CachingIterator::key — Return the key for the current element

Beschreibung

public CachingIterator::key ( ) : scalar
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

This method may return a key for the current element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Move the iterator forward

  • « CachingIterator::key
  • CachingIterator::offsetExists »
  • PHP Manual
  • CachingIterator
  • Move the iterator forward

CachingIterator::next

(PHP 5, PHP 7)

CachingIterator::next — Move the iterator forward

Beschreibung

public CachingIterator::next ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Move the iterator forward.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The offsetExists purpose

  • « CachingIterator::next
  • CachingIterator::offsetGet »
  • PHP Manual
  • CachingIterator
  • The offsetExists purpose

CachingIterator::offsetExists

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetExists — The offsetExists purpose

Beschreibung

public CachingIterator::offsetExists ( mixed $index ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

index

The index being checked.

Rückgabewerte

Returns true if an entry referenced by the offset exists, false otherwise.


The offsetGet purpose

  • « CachingIterator::offsetExists
  • CachingIterator::offsetSet »
  • PHP Manual
  • CachingIterator
  • The offsetGet purpose

CachingIterator::offsetGet

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetGet — The offsetGet purpose

Beschreibung

public CachingIterator::offsetGet ( string $index ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

index

Description...

Rückgabewerte

Description...


The offsetSet purpose

  • « CachingIterator::offsetGet
  • CachingIterator::offsetUnset »
  • PHP Manual
  • CachingIterator
  • The offsetSet purpose

CachingIterator::offsetSet

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetSet — The offsetSet purpose

Beschreibung

public CachingIterator::offsetSet ( mixed $index , mixed $newval ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

index

The index of the element to be set.

newval

The new value for the index.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The offsetUnset purpose

  • « CachingIterator::offsetSet
  • CachingIterator::rewind »
  • PHP Manual
  • CachingIterator
  • The offsetUnset purpose

CachingIterator::offsetUnset

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetUnset — The offsetUnset purpose

Beschreibung

public CachingIterator::offsetUnset ( string $index ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

index

The index of the element to be unset.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Rewind the iterator

  • « CachingIterator::offsetUnset
  • CachingIterator::setFlags »
  • PHP Manual
  • CachingIterator
  • Rewind the iterator

CachingIterator::rewind

(PHP 5, PHP 7)

CachingIterator::rewind — Rewind the iterator

Beschreibung

public CachingIterator::rewind ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Rewind the iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The setFlags purpose

  • « CachingIterator::rewind
  • CachingIterator::__toString »
  • PHP Manual
  • CachingIterator
  • The setFlags purpose

CachingIterator::setFlags

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::setFlags — The setFlags purpose

Beschreibung

public CachingIterator::setFlags ( int $flags ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Set the flags for the CachingIterator object.

Parameter-Liste

flags

Bitmask of the flags to set.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Return the string representation of the current element

  • « CachingIterator::setFlags
  • CachingIterator::valid »
  • PHP Manual
  • CachingIterator
  • Return the string representation of the current element

CachingIterator::__toString

(PHP 5, PHP 7)

CachingIterator::__toString — Return the string representation of the current element

Beschreibung

public CachingIterator::__toString ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Get the string representation of the current element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The string representation of the current element.


Check whether the current element is valid

  • « CachingIterator::__toString
  • CallbackFilterIterator »
  • PHP Manual
  • CachingIterator
  • Check whether the current element is valid

CachingIterator::valid

(PHP 5, PHP 7)

CachingIterator::valid — Check whether the current element is valid

Beschreibung

public CachingIterator::valid ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Check whether the current element is valid.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


The CallbackFilterIterator class

(PHP 5 >= 5.4.0, PHP 7)

Einführung

Klassenbeschreibung

CallbackFilterIterator extends FilterIterator implements OuterIterator {
/* Methoden */
public __construct ( Iterator $iterator , callable $callback )
public accept ( ) : bool
/* Geerbte Methoden */
public abstract FilterIterator::accept ( ) : bool
public FilterIterator::__construct ( Iterator $iterator )
public FilterIterator::current ( ) : mixed
public FilterIterator::getInnerIterator ( ) : Iterator
public FilterIterator::key ( ) : mixed
public FilterIterator::next ( ) : void
public FilterIterator::rewind ( ) : void
public FilterIterator::valid ( ) : bool
}

Beispiele

The callback should accept up to three arguments: the current item, the current key and the iterator, respectively.

Beispiel #1 Available callback arguments

<?php

/**
 * Callback for CallbackFilterIterator
 *
 * @param $current   Current item's value
 * @param $key       Current item's key
 * @param $iterator  Iterator being filtered
 * @return boolean   TRUE to accept the current item, FALSE otherwise
 */
function my_callback($current, $key, $iterator) {
    // Your filtering code here
}

?>

Any callable may be used; such as a string containing a function name, an array for a method, or an anonymous function.

Beispiel #2 Callback basic examples

<?php

$dir = new FilesystemIterator(__DIR__);

// Filter large files ( > 100MB)
function is_large_file($current) {
    return $current->isFile() && $current->getSize() > 104857600;
}
$large_files = new CallbackFilterIterator($dir, 'is_large_file');

// Filter directories
$files = new CallbackFilterIterator($dir, function ($current, $key, $iterator) {
    return $current->isDir() && ! $iterator->isDot();
});

?>

Inhaltsverzeichnis

  • CallbackFilterIterator::accept — Calls the callback with the current value, the current key and the inner iterator as arguments
  • CallbackFilterIterator::__construct — Create a filtered iterator from another iterator


Calls the callback with the current value, the current key and the inner iterator as arguments

  • « CallbackFilterIterator
  • CallbackFilterIterator::__construct »
  • PHP Manual
  • CallbackFilterIterator
  • Calls the callback with the current value, the current key and the inner iterator as arguments

CallbackFilterIterator::accept

(PHP 5 >= 5.4.0, PHP 7)

CallbackFilterIterator::accept — Calls the callback with the current value, the current key and the inner iterator as arguments

Beschreibung

public CallbackFilterIterator::accept ( ) : bool

This method calls the callback with the current value, current key and the inner iterator.

The callback is expected to return true if the current item is to be accepted, or false otherwise.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true to accept the current item, or false otherwise.

Siehe auch

  • CallbackFilterIterator Examples
  • CallbackFilterIterator::__construct() - Create a filtered iterator from another iterator


Create a filtered iterator from another iterator

  • « CallbackFilterIterator::accept
  • DirectoryIterator »
  • PHP Manual
  • CallbackFilterIterator
  • Create a filtered iterator from another iterator

CallbackFilterIterator::__construct

(PHP 5 >= 5.4.0, PHP 7)

CallbackFilterIterator::__construct — Create a filtered iterator from another iterator

Beschreibung

public CallbackFilterIterator::__construct ( Iterator $iterator , callable $callback )

Creates a filtered iterator using the callback to determine which items are accepted or rejected.

Parameter-Liste

iterator

The iterator to be filtered.

callback

The callback, which should return true to accept the current item or false otherwise. See Examples.

May be any valid callable value.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • CallbackFilterIterator Examples
  • CallbackFilterIterator::accept() - Calls the callback with the current value, the current key and the inner iterator as arguments


The DirectoryIterator class

(PHP 5, PHP 7)

Einführung

The DirectoryIterator class provides a simple interface for viewing the contents of filesystem directories.

Klassenbeschreibung

DirectoryIterator extends SplFileInfo implements SeekableIterator {
/* Methoden */
public __construct ( string $path )
public current ( ) : DirectoryIterator
public getATime ( ) : int
public getBasename ( string $suffix = ? ) : string
public getCTime ( ) : int
public getExtension ( ) : string
public getFilename ( ) : string
public getGroup ( ) : int
public getInode ( ) : int
public getMTime ( ) : int
public getOwner ( ) : int
public getPath ( ) : string
public getPathname ( ) : string
public getPerms ( ) : int
public getSize ( ) : int
public getType ( ) : string
public isDir ( ) : bool
public isDot ( ) : bool
public isExecutable ( ) : bool
public isFile ( ) : bool
public isLink ( ) : bool
public isReadable ( ) : bool
public isWritable ( ) : bool
public key ( ) : string
public next ( ) : void
public rewind ( ) : void
public seek ( int $position ) : void
public __toString ( ) : string
public valid ( ) : bool
}

Changelog

Version | Beschreibung
5.1.2 | DirectoryIterator extends SplFileInfo.

Inhaltsverzeichnis

  • DirectoryIterator::__construct — Constructs a new directory iterator from a path
  • DirectoryIterator::current — Return the current DirectoryIterator item
  • DirectoryIterator::getATime — Get last access time of the current DirectoryIterator item
  • DirectoryIterator::getBasename — Get base name of current DirectoryIterator item
  • DirectoryIterator::getCTime — Get inode change time of the current DirectoryIterator item
  • DirectoryIterator::getExtension — Gets the file extension
  • DirectoryIterator::getFilename — Return file name of current DirectoryIterator item
  • DirectoryIterator::getGroup — Get group for the current DirectoryIterator item
  • DirectoryIterator::getInode — Get inode for the current DirectoryIterator item
  • DirectoryIterator::getMTime — Get last modification time of current DirectoryIterator item
  • DirectoryIterator::getOwner — Get owner of current DirectoryIterator item
  • DirectoryIterator::getPath — Get path of current Iterator item without filename
  • DirectoryIterator::getPathname — Return path and file name of current DirectoryIterator item
  • DirectoryIterator::getPerms — Get the permissions of current DirectoryIterator item
  • DirectoryIterator::getSize — Get size of current DirectoryIterator item
  • DirectoryIterator::getType — Determine the type of the current DirectoryIterator item
  • DirectoryIterator::isDir — Determine if current DirectoryIterator item is a directory
  • DirectoryIterator::isDot — Determine if current DirectoryIterator item is '.' or '..'
  • DirectoryIterator::isExecutable — Determine if current DirectoryIterator item is executable
  • DirectoryIterator::isFile — Determine if current DirectoryIterator item is a regular file
  • DirectoryIterator::isLink — Determine if current DirectoryIterator item is a symbolic link
  • DirectoryIterator::isReadable — Determine if current DirectoryIterator item can be read
  • DirectoryIterator::isWritable — Determine if current DirectoryIterator item can be written to
  • DirectoryIterator::key — Return the key for the current DirectoryIterator item
  • DirectoryIterator::next — Move forward to next DirectoryIterator item
  • DirectoryIterator::rewind — Rewind the DirectoryIterator back to the start
  • DirectoryIterator::seek — Seek to a DirectoryIterator item
  • DirectoryIterator::__toString — Get file name as a string
  • DirectoryIterator::valid — Check whether current DirectoryIterator position is a valid file


Constructs a new directory iterator from a path

  • « DirectoryIterator
  • DirectoryIterator::current »
  • PHP Manual
  • DirectoryIterator
  • Constructs a new directory iterator from a path

DirectoryIterator::__construct

(PHP 5, PHP 7)

DirectoryIterator::__construct — Constructs a new directory iterator from a path

Beschreibung

public DirectoryIterator::__construct ( string $path )

Constructs a new directory iterator from a path.

Parameter-Liste

path

The path of the directory to traverse.

Fehler/Exceptions

Throws an UnexpectedValueException if the path cannot be opened.

Throws a RuntimeException if the path is an empty string.

Beispiele

Beispiel #1 A DirectoryIterator::__construct() example

This example will list the contents of the directory containing the script.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if (!$fileinfo->isDot()) {
        var_dump($fileinfo->getFilename());
    }
}
?>

Siehe auch

  • SplFileInfo
  • Iterator


Return the current DirectoryIterator item

  • « DirectoryIterator::__construct
  • DirectoryIterator::getATime »
  • PHP Manual
  • DirectoryIterator
  • Return the current DirectoryIterator item

DirectoryIterator::current

(PHP 5, PHP 7)

DirectoryIterator::current — Return the current DirectoryIterator item

Beschreibung

public DirectoryIterator::current ( ) : DirectoryIterator

Get the current DirectoryIterator item.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current DirectoryIterator item.

Beispiele

Beispiel #1 A DirectoryIterator::current() example

This example will list the contents of the directory containing the script.

<?php
$iterator = new DirectoryIterator(__DIR__);
while($iterator->valid()) {
    $file = $iterator->current();
    echo $iterator->key() . " => " . $file->getFilename() . "\n";
    $iterator->next();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

0 => .
1 => ..
2 => apple.jpg
3 => banana.jpg
4 => index.php
5 => pear.jpg

Siehe auch

  • DirectoryIterator::key() - Return the key for the current DirectoryIterator item
  • DirectoryIterator::next() - Move forward to next DirectoryIterator item
  • DirectoryIterator::rewind() - Rewind the DirectoryIterator back to the start
  • DirectoryIterator::valid() - Check whether current DirectoryIterator position is a valid file
  • Iterator::current() - Gibt das aktuelle Element zurück


Get last access time of the current DirectoryIterator item

  • « DirectoryIterator::current
  • DirectoryIterator::getBasename »
  • PHP Manual
  • DirectoryIterator
  • Get last access time of the current DirectoryIterator item

DirectoryIterator::getATime

(PHP 5, PHP 7)

DirectoryIterator::getATime — Get last access time of the current DirectoryIterator item

Beschreibung

public DirectoryIterator::getATime ( ) : int

Get the last access time of the current DirectoryIterator item.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the time the file was last accessed, as a Unix timestamp.

Beispiele

Beispiel #1 A DirectoryIterator::getATime() example

Displays a list of the files in the directory of the script and their last access times.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " " . $fileinfo->getATime() . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple.jpg 1240047118
banana.jpg 1240065176
index.php 1240047208
pear.jpg 12240047979

Siehe auch

  • DirectoryIterator::getCTime() - Get inode change time of the current DirectoryIterator item
  • DirectoryIterator::getMTime() - Get last modification time of current DirectoryIterator item
  • fileatime() - Liefert Datum und Uhrzeit des letzten Zugriffs auf eine Datei


Get base name of current DirectoryIterator item

  • « DirectoryIterator::getATime
  • DirectoryIterator::getCTime »
  • PHP Manual
  • DirectoryIterator
  • Get base name of current DirectoryIterator item

DirectoryIterator::getBasename

(PHP 5 >= 5.2.2, PHP 7)

DirectoryIterator::getBasename — Get base name of current DirectoryIterator item

Beschreibung

public DirectoryIterator::getBasename ( string $suffix = ? ) : string

Get the base name of the current DirectoryIterator item.

Parameter-Liste

suffix

If the base name ends in suffix, this will be cut.

Rückgabewerte

The base name of the current DirectoryIterator item.

Beispiele

Beispiel #1 A DirectoryIterator::getBasename() example

This example will list the full base name and the base name with suffix .jpg removed for the files in the directory containing the script.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getBasename() . "\n";
        echo $fileinfo->getBasename('.jpg') . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple.jpg
apple
banana.jpg
banana
index.php
index.php
pear.jpg
pear

Siehe auch

  • DirectoryIterator::getFilename() - Return file name of current DirectoryIterator item
  • DirectoryIterator::getPath() - Get path of current Iterator item without filename
  • DirectoryIterator::getPathname() - Return path and file name of current DirectoryIterator item
  • basename() - Gibt letzten Namensteil einer Pfadangabe zurück
  • pathinfo() - Liefert Informationen über einen Dateipfad


Get inode change time of the current DirectoryIterator item

  • « DirectoryIterator::getBasename
  • DirectoryIterator::getExtension »
  • PHP Manual
  • DirectoryIterator
  • Get inode change time of the current DirectoryIterator item

DirectoryIterator::getCTime

(PHP 5, PHP 7)

DirectoryIterator::getCTime — Get inode change time of the current DirectoryIterator item

Beschreibung

public DirectoryIterator::getCTime ( ) : int

Get the inode change time for the current DirectoryIterator item.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the last change time of the file, as a Unix timestamp.

Beispiele

Beispiel #1 DirectoryIterator::getCTime() example

This example displays the file name and last change time of the files in the directory containing the script.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " changed at " . $fileinfo->getCTime() . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple.jpg changed at 1240398312
banana.jpg changed at 1238605440
index.php changed at 1240398935
pear.jpg changed at 1237423740

Siehe auch

  • DirectoryIterator::getATime() - Get last access time of the current DirectoryIterator item
  • DirectoryIterator::getMTime() - Get last modification time of current DirectoryIterator item
  • filectime() - Liefert Datum und Uhrzeit der letzten Änderung des Datei Inode


Gets the file extension

  • « DirectoryIterator::getCTime
  • DirectoryIterator::getFilename »
  • PHP Manual
  • DirectoryIterator
  • Gets the file extension

DirectoryIterator::getExtension

(PHP 5 >= 5.3.6, PHP 7)

DirectoryIterator::getExtension — Gets the file extension

Beschreibung

public DirectoryIterator::getExtension ( ) : string

Retrieves the file extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string containing the file extension, or an empty string if the file has no extension.

Beispiele

Beispiel #1 DirectoryIterator::getExtension() example

<?php

$directory = new DirectoryIterator(__DIR__);
foreach ($directory as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getExtension() . "\n";
    }
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

php
txt
jpg
gz

Anmerkungen

Hinweis:

This method is only available as of PHP 5.3.6. Another way of getting the extension is to use the pathinfo() function.

<?php
$extension = pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION);
?>

Siehe auch

  • DirectoryIterator::getFilename() - Return file name of current DirectoryIterator item
  • DirectoryIterator::getBasename() - Get base name of current DirectoryIterator item
  • pathinfo() - Liefert Informationen über einen Dateipfad


Return file name of current DirectoryIterator item

  • « DirectoryIterator::getExtension
  • DirectoryIterator::getGroup »
  • PHP Manual
  • DirectoryIterator
  • Return file name of current DirectoryIterator item

DirectoryIterator::getFilename

(PHP 5, PHP 7)

DirectoryIterator::getFilename — Return file name of current DirectoryIterator item

Beschreibung

public DirectoryIterator::getFilename ( ) : string

Get the file name of the current DirectoryIterator item.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the file name of the current DirectoryIterator item.

Beispiele

Beispiel #1 A DirectoryIterator::getFilename() example

This example will list the contents of the directory containing the script.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    echo $fileinfo->getFilename() . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Siehe auch

  • DirectoryIterator::getBasename() - Get base name of current DirectoryIterator item
  • DirectoryIterator::getPath() - Get path of current Iterator item without filename
  • DirectoryIterator::getPathname() - Return path and file name of current DirectoryIterator item
  • pathinfo() - Liefert Informationen über einen Dateipfad


Get group for the current DirectoryIterator item

  • « DirectoryIterator::getFilename
  • DirectoryIterator::getInode »
  • PHP Manual
  • DirectoryIterator
  • Get group for the current DirectoryIterator item

DirectoryIterator::getGroup

(PHP 5, PHP 7)

DirectoryIterator::getGroup — Get group for the current DirectoryIterator item

Beschreibung

public DirectoryIterator::getGroup ( ) : int

Get the group id of the file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the group id of the current DirectoryIterator item in numerical format.

Beispiele

Beispiel #1 DirectoryIterator::getGroup() example

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
$groupid  = $iterator->getGroup();
echo 'Directory belongs to group id ' . $groupid . "\n";
print_r(posix_getgrgid($groupid));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Directory belongs to group id 42
Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Siehe auch

  • DirectoryIterator::getiNode() - Get inode for the current DirectoryIterator item
  • DirectoryIterator::getOwner() - Get owner of current DirectoryIterator item
  • DirectoryIterator::getPerms() - Get the permissions of current DirectoryIterator item
  • filegroup() - Liefert die Gruppenzugehörigkeit einer Datei
  • posix_getgrgid() - Liefert zu einer Gruppen-ID Informationen über diese Gruppe


Get inode for the current DirectoryIterator item

  • « DirectoryIterator::getGroup
  • DirectoryIterator::getMTime »
  • PHP Manual
  • DirectoryIterator
  • Get inode for the current DirectoryIterator item

DirectoryIterator::getInode

(PHP 5, PHP 7)

DirectoryIterator::getInode — Get inode for the current DirectoryIterator item

Beschreibung

public DirectoryIterator::getInode ( ) : int

Get the inode number for the current DirectoryIterator item.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the inode number for the file.

Beispiele

Beispiel #1 DirectoryIterator::getInode() example

This example displays the inode number for the directory containing the script.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
echo $iterator->getInode();
?>

Siehe auch

  • DirectoryIterator::getGroup() - Get group for the current DirectoryIterator item
  • DirectoryIterator::getOwner() - Get owner of current DirectoryIterator item
  • DirectoryIterator::getPerms() - Get the permissions of current DirectoryIterator item
  • fileinode() - Liefert die Inode-Nummer einer Datei


Get last modification time of current DirectoryIterator item

  • « DirectoryIterator::getInode
  • DirectoryIterator::getOwner »
  • PHP Manual
  • DirectoryIterator
  • Get last modification time of current DirectoryIterator item

DirectoryIterator::getMTime

(PHP 5, PHP 7)

DirectoryIterator::getMTime — Get last modification time of current DirectoryIterator item

Beschreibung

public DirectoryIterator::getMTime ( ) : int

Get the last modification time of the current DirectoryIterator item, as a Unix timestamp.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The last modification time of the file, as a Unix timestamp.

Beispiele

Beispiel #1 A DirectoryIterator::getMTime() example

Displays a list of the files in the directory of the script and their last modified times.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " " . $fileinfo->getMTime() . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple.jpg 1240047118
banana.jpg 1240065176
index.php 1240047208
pear.jpg 12240047979

Siehe auch

  • DirectoryIterator::getATime() - Get last access time of the current DirectoryIterator item
  • DirectoryIterator::getCTime() - Get inode change time of the current DirectoryIterator item
  • filemtime() - Liefert Datum und Uhrzeit der letzten Dateiänderung


Get owner of current DirectoryIterator item

  • « DirectoryIterator::getMTime
  • DirectoryIterator::getPath »
  • PHP Manual
  • DirectoryIterator
  • Get owner of current DirectoryIterator item

DirectoryIterator::getOwner

(PHP 5, PHP 7)

DirectoryIterator::getOwner — Get owner of current DirectoryIterator item

Beschreibung

public DirectoryIterator::getOwner ( ) : int

Get the owner of the current DirectoryIterator item, in numerical format.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The file owner of the file, in numerical format.

Beispiele

Beispiel #1 DirectoryIterator::getOwner() example

This example displays the owner of the directory which contains the script.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
print_r(posix_getpwuid($iterator->getOwner()));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [name] => tom
    [passwd] => x
    [uid] => 501
    [gid] => 42
    [gecos] => Tom Cat
    [dir] => /home/tom
    [shell] => /bin/bash
)

Siehe auch

  • DirectoryIterator::getGroup() - Get group for the current DirectoryIterator item
  • DirectoryIterator::getiNode() - Get inode for the current DirectoryIterator item
  • DirectoryIterator::getPerms() - Get the permissions of current DirectoryIterator item
  • posix_getpwuid() - Liefert zu einer Benutzer-ID Informationen über diesen Benutzer


Get path of current Iterator item without filename

  • « DirectoryIterator::getOwner
  • DirectoryIterator::getPathname »
  • PHP Manual
  • DirectoryIterator
  • Get path of current Iterator item without filename

DirectoryIterator::getPath

(PHP 5, PHP 7)

DirectoryIterator::getPath — Get path of current Iterator item without filename

Beschreibung

public DirectoryIterator::getPath ( ) : string

Get the path to the current DirectoryIterator item.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the path to the file, omitting the file name and any trailing slash.

Beispiele

Beispiel #1 DirectoryIterator::getPath() example

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
echo $iterator->getPath();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/home/examples/public_html

Siehe auch

  • DirectoryIterator::getBasename() - Get base name of current DirectoryIterator item
  • DirectoryIterator::getFilename() - Return file name of current DirectoryIterator item
  • DirectoryIterator::getPathname() - Return path and file name of current DirectoryIterator item
  • pathinfo() - Liefert Informationen über einen Dateipfad


Return path and file name of current DirectoryIterator item

  • « DirectoryIterator::getPath
  • DirectoryIterator::getPerms »
  • PHP Manual
  • DirectoryIterator
  • Return path and file name of current DirectoryIterator item

DirectoryIterator::getPathname

(PHP 5, PHP 7)

DirectoryIterator::getPathname — Return path and file name of current DirectoryIterator item

Beschreibung

public DirectoryIterator::getPathname ( ) : string

Get the path and file name of the current file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the path and file name of current file. Directories do not have a trailing slash.

Beispiele

Beispiel #1 DirectoryIterator::getPathname() example

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    echo $fileinfo->getPathname() . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/home/examples/.
/home/examples/..
/home/examples/apple.jpg
/home/examples/banana.jpg
/home/examples/getpathname.php
/home/examples/pear.jpg

Siehe auch

  • DirectoryIterator::getBasename() - Get base name of current DirectoryIterator item
  • DirectoryIterator::getFilename() - Return file name of current DirectoryIterator item
  • DirectoryIterator::getPath() - Get path of current Iterator item without filename
  • pathinfo() - Liefert Informationen über einen Dateipfad


Get the permissions of current DirectoryIterator item

  • « DirectoryIterator::getPathname
  • DirectoryIterator::getSize »
  • PHP Manual
  • DirectoryIterator
  • Get the permissions of current DirectoryIterator item

DirectoryIterator::getPerms

(PHP 5, PHP 7)

DirectoryIterator::getPerms — Get the permissions of current DirectoryIterator item

Beschreibung

public DirectoryIterator::getPerms ( ) : int

Get the permissions of the current DirectoryIterator item.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the permissions of the file, as a decimal int.

Beispiele

Beispiel #1 DirectoryIterator::getPerms() example

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if (!$fileinfo->isDot()) {
        $octal_perms = substr(sprintf('%o', $fileinfo->getPerms()), -4);
        echo $fileinfo->getFilename() . " " . $octal_perms . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple.jpg 0644
banana.jpg 0644
index.php 0744
pear.jpg 0644

Siehe auch

  • DirectoryIterator::isExecutable() - Determine if current DirectoryIterator item is executable
  • DirectoryIterator::isReadable() - Determine if current DirectoryIterator item can be read
  • DirectoryIterator::isWritable() - Determine if current DirectoryIterator item can be written to


Get size of current DirectoryIterator item

  • « DirectoryIterator::getPerms
  • DirectoryIterator::getType »
  • PHP Manual
  • DirectoryIterator
  • Get size of current DirectoryIterator item

DirectoryIterator::getSize

(PHP 5, PHP 7)

DirectoryIterator::getSize — Get size of current DirectoryIterator item

Beschreibung

public DirectoryIterator::getSize ( ) : int

Get the file size for the current DirectoryIterator item.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the size of the file, in bytes.

Beispiele

Beispiel #1 DirectoryIterator::getSize() example

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " " . $fileinfo->getSize() . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple.jpg 15385
banana.jpg 15190
example.php 170
pear.jpg 34406

Siehe auch

  • filesize() - Liefert die Größe einer Datei


Determine the type of the current DirectoryIterator item

  • « DirectoryIterator::getSize
  • DirectoryIterator::isDir »
  • PHP Manual
  • DirectoryIterator
  • Determine the type of the current DirectoryIterator item

DirectoryIterator::getType

(PHP 5, PHP 7)

DirectoryIterator::getType — Determine the type of the current DirectoryIterator item

Beschreibung

public DirectoryIterator::getType ( ) : string

Determines which file type the current DirectoryIterator item belongs to. One of file, link, or dir.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string representing the type of the file. May be one of file, link, or dir.

Beispiele

Beispiel #1 DirectoryIterator::getType() example

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    echo $fileinfo->getFilename() . " " . $fileinfo->getType() . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

. dir
.. dir
apple.jpg file
banana.jpg file
example.php file
pear.jpg file

Siehe auch

  • DirectoryIterator::isDir() - Determine if current DirectoryIterator item is a directory
  • DirectoryIterator::isDot() - Determine if current DirectoryIterator item is '.' or '..'
  • DirectoryIterator::isFile() - Determine if current DirectoryIterator item is a regular file
  • DirectoryIterator::isLink() - Determine if current DirectoryIterator item is a symbolic link


Determine if current DirectoryIterator item is a directory

  • « DirectoryIterator::getType
  • DirectoryIterator::isDot »
  • PHP Manual
  • DirectoryIterator
  • Determine if current DirectoryIterator item is a directory

DirectoryIterator::isDir

(PHP 5, PHP 7)

DirectoryIterator::isDir — Determine if current DirectoryIterator item is a directory

Beschreibung

public DirectoryIterator::isDir ( ) : bool

Determines if the current DirectoryIterator item is a directory.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if it is a directory, otherwise false

Beispiele

Beispiel #1 DirectoryIterator::isDir() example

This example lists the directories within the directory of the current script.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isDir()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

.
..
apples
bananas
pears

Siehe auch

  • DirectoryIterator::getType() - Determine the type of the current DirectoryIterator item
  • DirectoryIterator::isDot() - Determine if current DirectoryIterator item is '.' or '..'
  • DirectoryIterator::isFile() - Determine if current DirectoryIterator item is a regular file
  • DirectoryIterator::isLink() - Determine if current DirectoryIterator item is a symbolic link


Determine if current DirectoryIterator item is '.' or '..'

  • « DirectoryIterator::isDir
  • DirectoryIterator::isExecutable »
  • PHP Manual
  • DirectoryIterator
  • Determine if current DirectoryIterator item is '.' or '..'

DirectoryIterator::isDot

(PHP 5, PHP 7)

DirectoryIterator::isDot — Determine if current DirectoryIterator item is '.' or '..'

Beschreibung

public DirectoryIterator::isDot ( ) : bool

Determines if the current DirectoryIterator item is a directory and either . or ..

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the entry is . or .., otherwise false

Beispiele

Beispiel #1 A DirectoryIterator::isDot() example

This example will list all files, omitting the . and .. entries.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if (!$fileinfo->isDot()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple.jpg
banana.jpg
example.php
pears.jpg

Siehe auch

  • DirectoryIterator::getType() - Determine the type of the current DirectoryIterator item
  • DirectoryIterator::isDir() - Determine if current DirectoryIterator item is a directory
  • DirectoryIterator::isFile() - Determine if current DirectoryIterator item is a regular file
  • DirectoryIterator::isLink() - Determine if current DirectoryIterator item is a symbolic link


Determine if current DirectoryIterator item is executable

  • « DirectoryIterator::isDot
  • DirectoryIterator::isFile »
  • PHP Manual
  • DirectoryIterator
  • Determine if current DirectoryIterator item is executable

DirectoryIterator::isExecutable

(PHP 5, PHP 7)

DirectoryIterator::isExecutable — Determine if current DirectoryIterator item is executable

Beschreibung

public DirectoryIterator::isExecutable ( ) : bool

Determines if the current DirectoryIterator item is executable.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the entry is executable, otherwise false

Beispiele

Beispiel #1 DirectoryIterator::isExecutable() example

This example lists files in the directory containing the script which are executable.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isExecutable()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

example.php
myscript.sh

Siehe auch

  • DirectoryIterator::isReadable() - Determine if current DirectoryIterator item can be read
  • DirectoryIterator::isWritable() - Determine if current DirectoryIterator item can be written to
  • DirectoryIterator::getPerms() - Get the permissions of current DirectoryIterator item


Determine if current DirectoryIterator item is a regular file

  • « DirectoryIterator::isExecutable
  • DirectoryIterator::isLink »
  • PHP Manual
  • DirectoryIterator
  • Determine if current DirectoryIterator item is a regular file

DirectoryIterator::isFile

(PHP 5, PHP 7)

DirectoryIterator::isFile — Determine if current DirectoryIterator item is a regular file

Beschreibung

public DirectoryIterator::isFile ( ) : bool

Determines if the current DirectoryIterator item is a regular file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the file exists and is a regular file (not a link or dir), otherwise false

Beispiele

Beispiel #1 DirectoryIterator::isFile() example

This example will list all regular files in the directory containing the script.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple.jpg
banana.jpg
example.php
pears.jpg

Siehe auch

  • DirectoryIterator::getType() - Determine the type of the current DirectoryIterator item
  • DirectoryIterator::isDir() - Determine if current DirectoryIterator item is a directory
  • DirectoryIterator::isDot() - Determine if current DirectoryIterator item is '.' or '..'
  • DirectoryIterator::isLink() - Determine if current DirectoryIterator item is a symbolic link


Determine if current DirectoryIterator item is a symbolic link

  • « DirectoryIterator::isFile
  • DirectoryIterator::isReadable »
  • PHP Manual
  • DirectoryIterator
  • Determine if current DirectoryIterator item is a symbolic link

DirectoryIterator::isLink

(PHP 5, PHP 7)

DirectoryIterator::isLink — Determine if current DirectoryIterator item is a symbolic link

Beschreibung

public DirectoryIterator::isLink ( ) : bool

Determines if the current DirectoryIterator item is a symbolic link.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the item is a symbolic link, otherwise false

Beispiele

Beispiel #1 A DirectoryIterator::isLink() example

This example contains a recursive function for removing a directory tree.

<?php
/**
 * This function will recursively delete all files in the given path, without
 * following symlinks.
 *
 * @param string $path Path to the directory to remove.
 */
function removeDir($path) {
    $dir = new DirectoryIterator($path);
    foreach ($dir as $fileinfo) {
        if ($fileinfo->isFile() || $fileinfo->isLink()) {
            unlink($fileinfo->getPathName());
        } elseif (!$fileinfo->isDot() && $fileinfo->isDir()) {
            removeDir($fileinfo->getPathName());
        }
    }
    rmdir($path);
}

removeDir('foo');
?>

Siehe auch

  • DirectoryIterator::getType() - Determine the type of the current DirectoryIterator item
  • DirectoryIterator::isDir() - Determine if current DirectoryIterator item is a directory
  • DirectoryIterator::isDot() - Determine if current DirectoryIterator item is '.' or '..'
  • DirectoryIterator::isFile() - Determine if current DirectoryIterator item is a regular file


Determine if current DirectoryIterator item can be read

  • « DirectoryIterator::isLink
  • DirectoryIterator::isWritable »
  • PHP Manual
  • DirectoryIterator
  • Determine if current DirectoryIterator item can be read

DirectoryIterator::isReadable

(PHP 5, PHP 7)

DirectoryIterator::isReadable — Determine if current DirectoryIterator item can be read

Beschreibung

public DirectoryIterator::isReadable ( ) : bool

Determines if the current DirectoryIterator item is readable.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the file is readable, otherwise false

Beispiele

Beispiel #1 DirectoryIterator::isReadable() example

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isReadable()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple.jpg
banana.jpg
example.php
pears.jpg

Siehe auch

  • DirectoryIterator::isExecutable() - Determine if current DirectoryIterator item is executable
  • DirectoryIterator::isWritable() - Determine if current DirectoryIterator item can be written to
  • DirectoryIterator::getPerms() - Get the permissions of current DirectoryIterator item


Determine if current DirectoryIterator item can be written to

  • « DirectoryIterator::isReadable
  • DirectoryIterator::key »
  • PHP Manual
  • DirectoryIterator
  • Determine if current DirectoryIterator item can be written to

DirectoryIterator::isWritable

(PHP 5, PHP 7)

DirectoryIterator::isWritable — Determine if current DirectoryIterator item can be written to

Beschreibung

public DirectoryIterator::isWritable ( ) : bool

Determines if the current DirectoryIterator item is writable.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the file/directory is writable, otherwise false

Beispiele

Beispiel #1 DirectoryIterator::isWritable() example

This example lists the files and directories which can be opened for writing in the directory containing the script.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isWritable()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apples.txt
bananas.html
pears

Siehe auch

  • DirectoryIterator::getPerms() - Get the permissions of current DirectoryIterator item
  • DirectoryIterator::isExecutable() - Determine if current DirectoryIterator item is executable
  • DirectoryIterator::isReadable() - Determine if current DirectoryIterator item can be read


Return the key for the current DirectoryIterator item

  • « DirectoryIterator::isWritable
  • DirectoryIterator::next »
  • PHP Manual
  • DirectoryIterator
  • Return the key for the current DirectoryIterator item

DirectoryIterator::key

(PHP 5, PHP 7)

DirectoryIterator::key — Return the key for the current DirectoryIterator item

Beschreibung

public DirectoryIterator::key ( ) : string

Get the key for the current DirectoryIterator item.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The key for the current DirectoryIterator item.

Beispiele

Beispiel #1 A DirectoryIterator::key() example

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if (!$fileinfo->isDot()) {
        echo $fileinfo->key() . " => " . $fileinfo->getFilename() . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

0 => apple.jpg
1 => banana.jpg
2 => index.php
3 => pear.jpg

Siehe auch

  • DirectoryIterator::current() - Return the current DirectoryIterator item
  • DirectoryIterator::next() - Move forward to next DirectoryIterator item
  • DirectoryIterator::rewind() - Rewind the DirectoryIterator back to the start
  • DirectoryIterator::valid() - Check whether current DirectoryIterator position is a valid file
  • Iterator::key() - Gibt den Schlüssel des aktuellen Elements zurück


Move forward to next DirectoryIterator item

  • « DirectoryIterator::key
  • DirectoryIterator::rewind »
  • PHP Manual
  • DirectoryIterator
  • Move forward to next DirectoryIterator item

DirectoryIterator::next

(PHP 5, PHP 7)

DirectoryIterator::next — Move forward to next DirectoryIterator item

Beschreibung

public DirectoryIterator::next ( ) : void

Move forward to the next DirectoryIterator item.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 DirectoryIterator::next() example

List the contents of a directory using a while loop.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
while($iterator->valid()) {
    echo $iterator->getFilename() . "\n";
    $iterator->next();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Siehe auch

  • DirectoryIterator::current() - Return the current DirectoryIterator item
  • DirectoryIterator::key() - Return the key for the current DirectoryIterator item
  • DirectoryIterator::rewind() - Rewind the DirectoryIterator back to the start
  • DirectoryIterator::valid() - Check whether current DirectoryIterator position is a valid file
  • Iterator::next() - Rückt den Zeiger auf das nächste Element vor


Rewind the DirectoryIterator back to the start

  • « DirectoryIterator::next
  • DirectoryIterator::seek »
  • PHP Manual
  • DirectoryIterator
  • Rewind the DirectoryIterator back to the start

DirectoryIterator::rewind

(PHP 5, PHP 7)

DirectoryIterator::rewind — Rewind the DirectoryIterator back to the start

Beschreibung

public DirectoryIterator::rewind ( ) : void

Rewind the DirectoryIterator back to the start.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 DirectoryIterator::rewind() example

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); //rewinding to the beginning
echo $iterator->key(); //0
?>

Siehe auch

  • DirectoryIterator::current() - Return the current DirectoryIterator item
  • DirectoryIterator::key() - Return the key for the current DirectoryIterator item
  • DirectoryIterator::next() - Move forward to next DirectoryIterator item
  • DirectoryIterator::valid() - Check whether current DirectoryIterator position is a valid file
  • Iterator::rewind() - Setzt den Iterator auf das erste Element zurück


Seek to a DirectoryIterator item

  • « DirectoryIterator::rewind
  • DirectoryIterator::__toString »
  • PHP Manual
  • DirectoryIterator
  • Seek to a DirectoryIterator item

DirectoryIterator::seek

(PHP 5 >= 5.3.0, PHP 7)

DirectoryIterator::seek — Seek to a DirectoryIterator item

Beschreibung

public DirectoryIterator::seek ( int $position ) : void

Seek to a given position in the DirectoryIterator.

Parameter-Liste

position

The zero-based numeric position to seek to.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 DirectoryIterator::seek() example

Seek to the fourth item in the directory containing the script. The first two are usually . and ..

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
$iterator->seek(3);
if ($iterator->valid()) {
    echo $iterator->getFilename();
} else {
    echo 'No file at position 3';
}
?>

Siehe auch

  • DirectoryIterator::rewind() - Rewind the DirectoryIterator back to the start
  • DirectoryIterator::next() - Move forward to next DirectoryIterator item
  • SeekableIterator::seek() - Seeks to a position


Get file name as a string

  • « DirectoryIterator::seek
  • DirectoryIterator::valid »
  • PHP Manual
  • DirectoryIterator
  • Get file name as a string

DirectoryIterator::__toString

(PHP 5, PHP 7)

DirectoryIterator::__toString — Get file name as a string

Beschreibung

public DirectoryIterator::__toString ( ) : string

Get the file name of the current DirectoryIterator item.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the file name of the current DirectoryIterator item.

Beispiele

Beispiel #1 A DirectoryIterator::__toString() example

This example will list the contents of the directory containing the script.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    echo $fileinfo;
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Siehe auch

  • DirectoryIterator::getFilename() - Return file name of current DirectoryIterator item
  • The __toString() magic method


Check whether current DirectoryIterator position is a valid file

  • « DirectoryIterator::__toString
  • EmptyIterator »
  • PHP Manual
  • DirectoryIterator
  • Check whether current DirectoryIterator position is a valid file

DirectoryIterator::valid

(PHP 5, PHP 7)

DirectoryIterator::valid — Check whether current DirectoryIterator position is a valid file

Beschreibung

public DirectoryIterator::valid ( ) : bool

Check whether current DirectoryIterator position is a valid file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the position is valid, otherwise false

Beispiele

Beispiel #1 A DirectoryIterator::valid() example

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));

// Loop to end of iterator
while($iterator->valid()) {
    $iterator->next();
}

$iterator->valid(); // FALSE
$iterator->rewind();
$iterator->valid(); // TRUE

?>

Siehe auch

  • DirectoryIterator::current() - Return the current DirectoryIterator item
  • DirectoryIterator::key() - Return the key for the current DirectoryIterator item
  • DirectoryIterator::next() - Move forward to next DirectoryIterator item
  • DirectoryIterator::rewind() - Rewind the DirectoryIterator back to the start
  • Iterator::valid() - Prüft, ob die aktuelle Position zulässig ist


The EmptyIterator class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

The EmptyIterator class for an empty iterator.

Klassenbeschreibung

EmptyIterator implements Iterator {
/* Methoden */
public current ( ) : mixed
public key ( ) : scalar
public next ( ) : void
public rewind ( ) : void
public valid ( ) : bool
}

Inhaltsverzeichnis

  • EmptyIterator::current — The current() method
  • EmptyIterator::key — The key() method
  • EmptyIterator::next — The next() method
  • EmptyIterator::rewind — The rewind() method
  • EmptyIterator::valid — The valid() method


The current() method

  • « EmptyIterator
  • EmptyIterator::key »
  • PHP Manual
  • EmptyIterator
  • The current() method

EmptyIterator::current

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::current — The current() method

Beschreibung

public EmptyIterator::current ( ) : mixed

This function must not be called. It throws an exception upon access.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Fehler/Exceptions

Throws an Exception if called.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The key() method

  • « EmptyIterator::current
  • EmptyIterator::next »
  • PHP Manual
  • EmptyIterator
  • The key() method

EmptyIterator::key

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::key — The key() method

Beschreibung

public EmptyIterator::key ( ) : scalar

This function must not be called. It throws an exception upon access.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Fehler/Exceptions

Throws an Exception if called.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The next() method

  • « EmptyIterator::key
  • EmptyIterator::rewind »
  • PHP Manual
  • EmptyIterator
  • The next() method

EmptyIterator::next

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::next — The next() method

Beschreibung

public EmptyIterator::next ( ) : void

No operation, nothing to do.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The rewind() method

  • « EmptyIterator::next
  • EmptyIterator::valid »
  • PHP Manual
  • EmptyIterator
  • The rewind() method

EmptyIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::rewind — The rewind() method

Beschreibung

public EmptyIterator::rewind ( ) : void

No operation, nothing to do.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The valid() method

  • « EmptyIterator::rewind
  • FilesystemIterator »
  • PHP Manual
  • EmptyIterator
  • The valid() method

EmptyIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::valid — The valid() method

Beschreibung

public EmptyIterator::valid ( ) : bool

The EmptyIterator valid() method.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

false


The FilesystemIterator class

(PHP 5 >= 5.3.0, PHP 7)

Einführung

The Filesystem iterator

Klassenbeschreibung

FilesystemIterator extends DirectoryIterator implements SeekableIterator {
/* Konstanten */
const int CURRENT_AS_PATHNAME = 32 ;
const int CURRENT_AS_FILEINFO = 0 ;
const int CURRENT_AS_SELF = 16 ;
const int CURRENT_MODE_MASK = 240 ;
const int KEY_AS_PATHNAME = 0 ;
const int KEY_AS_FILENAME = 256 ;
const int FOLLOW_SYMLINKS = 512 ;
const int KEY_MODE_MASK = 3840 ;
const int NEW_CURRENT_AND_KEY = 256 ;
const int SKIP_DOTS = 4096 ;
const int UNIX_PATHS = 8192 ;
/* Methoden */
public __construct ( string $path , int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS )
public current ( ) : mixed
public getFlags ( ) : int
public key ( ) : string
public next ( ) : void
public rewind ( ) : void
public setFlags ( int $flags = ? ) : void
/* Geerbte Methoden */
public DirectoryIterator::current ( ) : DirectoryIterator
public DirectoryIterator::getATime ( ) : int
public DirectoryIterator::getBasename ( string $suffix = ? ) : string
public DirectoryIterator::getCTime ( ) : int
public DirectoryIterator::getExtension ( ) : string
public DirectoryIterator::getFilename ( ) : string
public DirectoryIterator::getGroup ( ) : int
public DirectoryIterator::getInode ( ) : int
public DirectoryIterator::getMTime ( ) : int
public DirectoryIterator::getOwner ( ) : int
public DirectoryIterator::getPath ( ) : string
public DirectoryIterator::getPathname ( ) : string
public DirectoryIterator::getPerms ( ) : int
public DirectoryIterator::getSize ( ) : int
public DirectoryIterator::getType ( ) : string
public DirectoryIterator::isDir ( ) : bool
public DirectoryIterator::isDot ( ) : bool
public DirectoryIterator::isExecutable ( ) : bool
public DirectoryIterator::isFile ( ) : bool
public DirectoryIterator::isLink ( ) : bool
public DirectoryIterator::isReadable ( ) : bool
public DirectoryIterator::isWritable ( ) : bool
public DirectoryIterator::key ( ) : string
public DirectoryIterator::next ( ) : void
public DirectoryIterator::rewind ( ) : void
public DirectoryIterator::seek ( int $position ) : void
public DirectoryIterator::__toString ( ) : string
public DirectoryIterator::valid ( ) : bool
}

Vordefinierte Konstanten

FilesystemIterator::CURRENT_AS_PATHNAME

Makes FilesystemIterator::current() return the pathname.

FilesystemIterator::CURRENT_AS_FILEINFO

Makes FilesystemIterator::current() return an SplFileInfo instance.

FilesystemIterator::CURRENT_AS_SELF

Makes FilesystemIterator::current() return $this (the FilesystemIterator).

FilesystemIterator::CURRENT_MODE_MASK

Masks FilesystemIterator::current()

FilesystemIterator::KEY_AS_PATHNAME

Makes FilesystemIterator::key() return the pathname.

FilesystemIterator::KEY_AS_FILENAME

Makes FilesystemIterator::key() return the filename.

FilesystemIterator::FOLLOW_SYMLINKS

Makes RecursiveDirectoryIterator::hasChildren() follow symlinks.

FilesystemIterator::KEY_MODE_MASK

Masks FilesystemIterator::key()

FilesystemIterator::NEW_CURRENT_AND_KEY

Same as FilesystemIterator::KEY_AS_FILENAME | FilesystemIterator::CURRENT_AS_FILEINFO.

FilesystemIterator::SKIP_DOTS

Skips dot files (. and ..).

FilesystemIterator::UNIX_PATHS

Makes paths use Unix-style forward slash irrespective of system default. Note that the path that is passed to the constructor is not modified.

Changelog

Version | Beschreibung
5.3.1 | Added FilesystemIterator::FOLLOW_SYMLINKS

Inhaltsverzeichnis

  • FilesystemIterator::__construct — Constructs a new filesystem iterator
  • FilesystemIterator::current — The current file
  • FilesystemIterator::getFlags — Get the handling flags
  • FilesystemIterator::key — Retrieve the key for the current file
  • FilesystemIterator::next — Move to the next file
  • FilesystemIterator::rewind — Rewinds back to the beginning
  • FilesystemIterator::setFlags — Sets handling flags


Constructs a new filesystem iterator

  • « FilesystemIterator
  • FilesystemIterator::current »
  • PHP Manual
  • FilesystemIterator
  • Constructs a new filesystem iterator

FilesystemIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::__construct — Constructs a new filesystem iterator

Beschreibung

public FilesystemIterator::__construct ( string $path , int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS )

Constructs a new filesystem iterator from the path.

Parameter-Liste

path

The path of the filesystem item to be iterated over.

flags

Flags may be provided which will affect the behavior of some methods. A list of the flags can found under FilesystemIterator predefined constants. They can also be set later with FilesystemIterator::setFlags()

Hinweis:

FilesystemIterator::SKIP_DOTS is always set, and cannot be removed.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws an UnexpectedValueException if the path cannot be found.

Beispiele

Beispiel #1 FilesystemIterator::__construct() example

<?php
$it = new FilesystemIterator(dirname(__FILE__));
foreach ($it as $fileinfo) {
    echo $fileinfo->getFilename() . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

apples.jpg
banana.jpg
example.php

Siehe auch

  • FilesystemIterator::setFlags() - Sets handling flags
  • DirectoryIterator::__construct() - Constructs a new directory iterator from a path


The current file

  • « FilesystemIterator::__construct
  • FilesystemIterator::getFlags »
  • PHP Manual
  • FilesystemIterator
  • The current file

FilesystemIterator::current

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::current — The current file

Beschreibung

public FilesystemIterator::current ( ) : mixed

Get file information of the current element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The filename, file information, or $this depending on the set flags. See the FilesystemIterator constants.

Beispiele

Beispiel #1 FilesystemIterator::current() example

This example will list the contents of the directory containing the script.

<?php
$iterator = new FilesystemIterator(__DIR__, FilesystemIterator::CURRENT_AS_PATHNAME);
foreach ($iterator as $fileinfo) {
    echo $iterator->current() . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/www/examples/apple.jpg
/www/examples/banana.jpg
/www/examples/example.php

Siehe auch

  • FilesystemIterator constants
  • DirectoryIterator::current() - Return the current DirectoryIterator item
  • DirectoryIterator::getFileName() - Return file name of current DirectoryIterator item


Get the handling flags

  • « FilesystemIterator::current
  • FilesystemIterator::key »
  • PHP Manual
  • FilesystemIterator
  • Get the handling flags

FilesystemIterator::getFlags

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::getFlags — Get the handling flags

Beschreibung

public FilesystemIterator::getFlags ( ) : int

Gets the handling flags, as set in FilesystemIterator::__construct() or FilesystemIterator::setFlags().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The integer value of the set flags.

Siehe auch

  • FilesystemIterator::__construct() - Constructs a new filesystem iterator
  • FilesystemIterator::setFlags() - Sets handling flags


Retrieve the key for the current file

  • « FilesystemIterator::getFlags
  • FilesystemIterator::next »
  • PHP Manual
  • FilesystemIterator
  • Retrieve the key for the current file

FilesystemIterator::key

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::key — Retrieve the key for the current file

Beschreibung

public FilesystemIterator::key ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the pathname or filename depending on the set flags. See the FilesystemIterator constants.

Beispiele

Beispiel #1 FilesystemIterator::key() example

This example will list the contents of the directory containing the script.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_FILENAME);
foreach ($iterator as $fileinfo) {
    echo $iterator->key() . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple.jpg
banana.jpg
example.php

Siehe auch

  • FilesystemIterator constants
  • DirectoryIterator::key() - Return the key for the current DirectoryIterator item
  • DirectoryIterator::getFilename() - Return file name of current DirectoryIterator item
  • DirectoryIterator::getPathname() - Return path and file name of current DirectoryIterator item


Move to the next file

  • « FilesystemIterator::key
  • FilesystemIterator::rewind »
  • PHP Manual
  • FilesystemIterator
  • Move to the next file

FilesystemIterator::next

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::next — Move to the next file

Beschreibung

public FilesystemIterator::next ( ) : void

Move to the next file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 FilesystemIterator::next() example

List the contents of a directory using a while loop.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__));
while($iterator->valid()) {
    echo $iterator->getFilename() . "\n";
    $iterator->next();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple.jpg
banana.jpg
example.php

Siehe auch

  • DirectoryIterator::next() - Move forward to next DirectoryIterator item


Rewinds back to the beginning

  • « FilesystemIterator::next
  • FilesystemIterator::setFlags »
  • PHP Manual
  • FilesystemIterator
  • Rewinds back to the beginning

FilesystemIterator::rewind

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::rewind — Rewinds back to the beginning

Beschreibung

public FilesystemIterator::rewind ( ) : void

Rewinds the directory back to the start.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 FilesystemIterator::rewind() example

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_FILENAME);

echo $iterator->key() . "\n";

$iterator->next();
echo $iterator->key() . "\n";

$iterator->rewind();
echo $iterator->key() . "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple.jpg
banana.jpg
apple.jpg

Siehe auch

  • DirectoryIterator::rewind() - Rewind the DirectoryIterator back to the start


Sets handling flags

  • « FilesystemIterator::rewind
  • FilterIterator »
  • PHP Manual
  • FilesystemIterator
  • Sets handling flags

FilesystemIterator::setFlags

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::setFlags — Sets handling flags

Beschreibung

public FilesystemIterator::setFlags ( int $flags = ? ) : void

Sets handling flags.

Parameter-Liste

flags

The handling flags to set. See the FilesystemIterator constants.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 FilesystemIterator::key() example

This example demonstrates the difference between the FilesystemIterator::KEY_AS_PATHNAME and FilesystemIterator::KEY_AS_FILENAME flags.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_PATHNAME);
echo "Key as Pathname:\n";
foreach ($iterator as $key => $fileinfo) {
    echo $key . "\n";
}

$iterator->setFlags(FilesystemIterator::KEY_AS_FILENAME);
echo "\nKey as Filename:\n";
foreach ($iterator as $key => $fileinfo) {
    echo $key . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Key as Pathname:
/www/examples/apple.jpg
/www/examples/banana.jpg
/www/examples/example.php

Key as Filename:
apple.jpg
banana.jpg
example.php

Siehe auch

  • FilesystemIterator::__construct() - Constructs a new filesystem iterator
  • FilesystemIterator::getFlags() - Get the handling flags


The FilterIterator class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

This abstract iterator filters out unwanted values. This class should be extended to implement custom iterator filters. The FilterIterator::accept() must be implemented in the subclass.

Klassenbeschreibung

abstract FilterIterator extends IteratorIterator implements OuterIterator {
/* Methoden */
public abstract accept ( ) : bool
public __construct ( Iterator $iterator )
public current ( ) : mixed
public getInnerIterator ( ) : Iterator
public key ( ) : mixed
public next ( ) : void
public rewind ( ) : void
public valid ( ) : bool
}

Inhaltsverzeichnis

  • FilterIterator::accept — Check whether the current element of the iterator is acceptable
  • FilterIterator::__construct — Construct a filterIterator
  • FilterIterator::current — Get the current element value
  • FilterIterator::getInnerIterator — Get the inner iterator
  • FilterIterator::key — Get the current key
  • FilterIterator::next — Move the iterator forward
  • FilterIterator::rewind — Rewind the iterator
  • FilterIterator::valid — Check whether the current element is valid


Check whether the current element of the iterator is acceptable

  • « FilterIterator
  • FilterIterator::__construct »
  • PHP Manual
  • FilterIterator
  • Check whether the current element of the iterator is acceptable

FilterIterator::accept

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::accept — Check whether the current element of the iterator is acceptable

Beschreibung

public abstract FilterIterator::accept ( ) : bool

Returns whether the current element of the iterator is acceptable through this filter.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the current element is acceptable, otherwise false.

Beispiele

Beispiel #1 FilterIterator::accept() example

<?php
// This iterator filters all values with less than 10 characters
class LengthFilterIterator extends FilterIterator {

    public function accept() {
        // Only accept strings with a length of 10 and greater
        return strlen(parent::current()) >= 10;
    }

}

$arrayIterator = new ArrayIterator(array('test1', 'more than 10 characters'));
$lengthFilter = new LengthFilterIterator($arrayIterator);

foreach ($lengthFilter as $value) {
    echo $value . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

more than 10 characters


Construct a filterIterator

  • « FilterIterator::accept
  • FilterIterator::current »
  • PHP Manual
  • FilterIterator
  • Construct a filterIterator

FilterIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::__construct — Construct a filterIterator

Beschreibung

public FilterIterator::__construct ( Iterator $iterator )

Constructs a new FilterIterator, which consists of a passed in iterator with filters applied to it.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

iterator

The iterator that is being filtered.

Rückgabewerte

The FilterIterator.

Siehe auch

  • LimitIterator::__construct() - Construct a LimitIterator


Get the current element value

  • « FilterIterator::__construct
  • FilterIterator::getInnerIterator »
  • PHP Manual
  • FilterIterator
  • Get the current element value

FilterIterator::current

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::current — Get the current element value

Beschreibung

public FilterIterator::current ( ) : mixed
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Get the current element value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current element value.

Siehe auch

  • FilterIterator::key() - Get the current key
  • FilterIterator::next() - Move the iterator forward


Get the inner iterator

  • « FilterIterator::current
  • FilterIterator::key »
  • PHP Manual
  • FilterIterator
  • Get the inner iterator

FilterIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::getInnerIterator — Get the inner iterator

Beschreibung

public FilterIterator::getInnerIterator ( ) : Iterator
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Get the inner iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The inner iterator.


Get the current key

  • « FilterIterator::getInnerIterator
  • FilterIterator::next »
  • PHP Manual
  • FilterIterator
  • Get the current key

FilterIterator::key

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::key — Get the current key

Beschreibung

public FilterIterator::key ( ) : mixed
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Get the current key.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current key.

Siehe auch

  • FilterIterator::next() - Move the iterator forward
  • FilterIterator::current() - Get the current element value


Move the iterator forward

  • « FilterIterator::key
  • FilterIterator::rewind »
  • PHP Manual
  • FilterIterator
  • Move the iterator forward

FilterIterator::next

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::next — Move the iterator forward

Beschreibung

public FilterIterator::next ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Move the iterator forward.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • FilterIterator::current() - Get the current element value
  • FilterIterator::key() - Get the current key


Rewind the iterator

  • « FilterIterator::next
  • FilterIterator::valid »
  • PHP Manual
  • FilterIterator
  • Rewind the iterator

FilterIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::rewind — Rewind the iterator

Beschreibung

public FilterIterator::rewind ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Rewind the iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • FilterIterator::current() - Get the current element value
  • FilterIterator::key() - Get the current key
  • FilterIterator::next() - Move the iterator forward


Check whether the current element is valid

  • « FilterIterator::rewind
  • GlobIterator »
  • PHP Manual
  • FilterIterator
  • Check whether the current element is valid

FilterIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::valid — Check whether the current element is valid

Beschreibung

public FilterIterator::valid ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Checks whether the current element is valid.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the current element is valid, otherwise false


The GlobIterator class

(PHP 5 >= 5.3.0, PHP 7)

Einführung

Iterates through a file system in a similar fashion to glob().

Klassenbeschreibung

GlobIterator extends FilesystemIterator implements SeekableIterator , Countable {
/* Geerbte Konstanten */
const int FilesystemIterator::CURRENT_AS_PATHNAME = 32 ;
const int FilesystemIterator::CURRENT_AS_FILEINFO = 0 ;
const int FilesystemIterator::CURRENT_AS_SELF = 16 ;
const int FilesystemIterator::CURRENT_MODE_MASK = 240 ;
const int FilesystemIterator::KEY_AS_PATHNAME = 0 ;
const int FilesystemIterator::KEY_AS_FILENAME = 256 ;
const int FilesystemIterator::FOLLOW_SYMLINKS = 512 ;
const int FilesystemIterator::KEY_MODE_MASK = 3840 ;
const int FilesystemIterator::NEW_CURRENT_AND_KEY = 256 ;
const int FilesystemIterator::SKIP_DOTS = 4096 ;
const int FilesystemIterator::UNIX_PATHS = 8192 ;
/* Methoden */
public __construct ( string $pattern , int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO )
public count ( ) : int
/* Geerbte Methoden */
public FilesystemIterator::__construct ( string $path , int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS )
public FilesystemIterator::current ( ) : mixed
public FilesystemIterator::getFlags ( ) : int
public FilesystemIterator::key ( ) : string
public FilesystemIterator::next ( ) : void
public FilesystemIterator::rewind ( ) : void
public FilesystemIterator::setFlags ( int $flags = ? ) : void
}

Inhaltsverzeichnis

  • GlobIterator::__construct — Construct a directory using glob
  • GlobIterator::count — Get the number of directories and files


Construct a directory using glob

  • « GlobIterator
  • GlobIterator::count »
  • PHP Manual
  • GlobIterator
  • Construct a directory using glob

GlobIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

GlobIterator::__construct — Construct a directory using glob

Beschreibung

public GlobIterator::__construct ( string $pattern , int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO )

Constructs a new directory iterator from a glob expression.

Parameter-Liste

pattern

A glob() pattern.

flags

Option flags, the flags may be a bitmask of the FilesystemIterator constants.

Beispiele

Beispiel #1 GlobIterator example

<?php
$iterator = new GlobIterator('*.dll', FilesystemIterator::KEY_AS_FILENAME);

if (!$iterator->count()) {
    echo 'No matches';
} else {
    $n = 0;

    printf("Matched %d item(s)\r\n", $iterator->count());

    foreach ($iterator as $item) {
        printf("[%d] %s\r\n", ++$n, $iterator->key());
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Matched 2 item(s)
[1] php5ts.dll
[2] php_gd2.dll

Siehe auch

  • DirectoryIterator::__construct() - Constructs a new directory iterator from a path
  • GlobIterator::count() - Get the number of directories and files
  • glob() - Findet Dateinamen, die mit einem Muster übereinstimmen


Get the number of directories and files

  • « GlobIterator::__construct
  • InfiniteIterator »
  • PHP Manual
  • GlobIterator
  • Get the number of directories and files

GlobIterator::count

(PHP 5 >= 5.3.0, PHP 7)

GlobIterator::count — Get the number of directories and files

Beschreibung

public GlobIterator::count ( ) : int

Gets the number of directories and files found by the glob expression.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of returned directories and files, as an int.

Beispiele

Beispiel #1 GlobIterator::count() example

<?php
$iterator = new GlobIterator('*.xml');

printf("Matched %d item(s)\r\n", $iterator->count());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Matched 8 item(s)

Siehe auch

  • GlobIterator::__construct() - Construct a directory using glob
  • count() - Zählt alle Elemente eines Arrays oder etwas in einem Objekt
  • glob() - Findet Dateinamen, die mit einem Muster übereinstimmen


The InfiniteIterator class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

The InfiniteIterator allows one to infinitely iterate over an iterator without having to manually rewind the iterator upon reaching its end.

Klassenbeschreibung

InfiniteIterator extends IteratorIterator implements OuterIterator {
/* Methoden */
public __construct ( Iterator $iterator )
public next ( ) : void
/* Geerbte Methoden */
public IteratorIterator::__construct ( Traversable $iterator )
public IteratorIterator::current ( ) : mixed
public IteratorIterator::getInnerIterator ( ) : Traversable
public IteratorIterator::key ( ) : mixed
public IteratorIterator::next ( ) : void
public IteratorIterator::rewind ( ) : void
public IteratorIterator::valid ( ) : bool
}

Inhaltsverzeichnis

  • InfiniteIterator::__construct — Constructs an InfiniteIterator
  • InfiniteIterator::next — Moves the inner Iterator forward or rewinds it


Constructs an InfiniteIterator

  • « InfiniteIterator
  • InfiniteIterator::next »
  • PHP Manual
  • InfiniteIterator
  • Constructs an InfiniteIterator

InfiniteIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

InfiniteIterator::__construct — Constructs an InfiniteIterator

Beschreibung

public InfiniteIterator::__construct ( Iterator $iterator )

Constructs an InfiniteIterator from an Iterator.

Parameter-Liste

iterator

The iterator to infinitely iterate over.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws an E_RECOVERABLE_ERROR if the iterator parameter is not an Iterator.

Beispiele

Beispiel #1 InfiniteIterator::__construct() example

<?php
$arrayit  = new ArrayIterator(array('cat','dog'));
$infinite = new InfiniteIterator($arrayit);
$limit    = new LimitIterator($infinite, 0, 7);
foreach($limit as $value)
{
    echo "$value\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

cat
dog
cat
dog
cat
dog
cat

Siehe auch

  • InfiniteIterator::next() - Moves the inner Iterator forward or rewinds it


Moves the inner Iterator forward or rewinds it

  • « InfiniteIterator::__construct
  • IteratorIterator »
  • PHP Manual
  • InfiniteIterator
  • Moves the inner Iterator forward or rewinds it

InfiniteIterator::next

(PHP 5 >= 5.1.0, PHP 7)

InfiniteIterator::next — Moves the inner Iterator forward or rewinds it

Beschreibung

public InfiniteIterator::next ( ) : void

Moves the inner Iterator forward to its next element if there is one, otherwise rewinds the inner Iterator back to the beginning.

Hinweis:

Even an InfiniteIterator stops if its inner Iterator is empty.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • InfiniteIterator::__construct() - Constructs an InfiniteIterator


The IteratorIterator class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

This iterator wrapper allows the conversion of anything that is Traversable into an Iterator. It is important to understand that most classes that do not implement Iterators have reasons as most likely they do not allow the full Iterator feature set. If so, techniques should be provided to prevent misuse, otherwise expect exceptions or fatal errors.

Klassenbeschreibung

IteratorIterator implements OuterIterator {
/* Methoden */
public __construct ( Traversable $iterator )
public current ( ) : mixed
public getInnerIterator ( ) : Traversable
public key ( ) : mixed
public next ( ) : void
public rewind ( ) : void
public valid ( ) : bool
}

Anmerkungen

Hinweis:

This class permits access to methods of the inner iterator via the __call magic method.

Inhaltsverzeichnis

  • IteratorIterator::__construct — Create an iterator from anything that is traversable
  • IteratorIterator::current — Get the current value
  • IteratorIterator::getInnerIterator — Get the inner iterator
  • IteratorIterator::key — Get the key of the current element
  • IteratorIterator::next — Forward to the next element
  • IteratorIterator::rewind — Rewind to the first element
  • IteratorIterator::valid — Checks if the iterator is valid


Create an iterator from anything that is traversable

  • « IteratorIterator
  • IteratorIterator::current »
  • PHP Manual
  • IteratorIterator
  • Create an iterator from anything that is traversable

IteratorIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::__construct — Create an iterator from anything that is traversable

Beschreibung

public IteratorIterator::__construct ( Traversable $iterator )

Creates an iterator from anything that is traversable.

Parameter-Liste

iterator

The traversable iterator.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Traversable


Get the current value

  • « IteratorIterator::__construct
  • IteratorIterator::getInnerIterator »
  • PHP Manual
  • IteratorIterator
  • Get the current value

IteratorIterator::current

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::current — Get the current value

Beschreibung

public IteratorIterator::current ( ) : mixed

Get the value of the current element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value of the current element.

Siehe auch

  • IteratorIterator::key() - Get the key of the current element


Get the inner iterator

  • « IteratorIterator::current
  • IteratorIterator::key »
  • PHP Manual
  • IteratorIterator
  • Get the inner iterator

IteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::getInnerIterator — Get the inner iterator

Beschreibung

public IteratorIterator::getInnerIterator ( ) : Traversable

Get the inner iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The inner iterator as passed to IteratorIterator::__construct().

Siehe auch

  • Iterator
  • OuterIterator


Get the key of the current element

  • « IteratorIterator::getInnerIterator
  • IteratorIterator::next »
  • PHP Manual
  • IteratorIterator
  • Get the key of the current element

IteratorIterator::key

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::key — Get the key of the current element

Beschreibung

public IteratorIterator::key ( ) : mixed

Get the key of the current element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The key of the current element.

Siehe auch

  • IteratorIterator::current() - Get the current value


Forward to the next element

  • « IteratorIterator::key
  • IteratorIterator::rewind »
  • PHP Manual
  • IteratorIterator
  • Forward to the next element

IteratorIterator::next

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::next — Forward to the next element

Beschreibung

public IteratorIterator::next ( ) : void

Forward to the next element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • IteratorIterator::rewind() - Rewind to the first element
  • IteratorIterator::valid() - Checks if the iterator is valid


Rewind to the first element

  • « IteratorIterator::next
  • IteratorIterator::valid »
  • PHP Manual
  • IteratorIterator
  • Rewind to the first element

IteratorIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::rewind — Rewind to the first element

Beschreibung

public IteratorIterator::rewind ( ) : void

Rewinds to the first element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • IteratorIterator::next() - Forward to the next element
  • IteratorIterator::valid() - Checks if the iterator is valid


Checks if the iterator is valid

  • « IteratorIterator::rewind
  • LimitIterator »
  • PHP Manual
  • IteratorIterator
  • Checks if the iterator is valid

IteratorIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::valid — Checks if the iterator is valid

Beschreibung

public IteratorIterator::valid ( ) : bool

Checks if the iterator is valid.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the iterator is valid, otherwise false

Siehe auch

  • iterator_count() - Count the elements in an iterator
  • IteratorIterator::current() - Get the current value


The LimitIterator class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

The LimitIterator class allows iteration over a limited subset of items in an Iterator.

Klassenbeschreibung

LimitIterator extends IteratorIterator implements OuterIterator {
/* Methoden */
public __construct ( Iterator $iterator , int $offset = 0 , int $limit = -1 )
public current ( ) : mixed
public getInnerIterator ( ) : Iterator
public getPosition ( ) : int
public key ( ) : mixed
public next ( ) : void
public rewind ( ) : void
public seek ( int $position ) : int
public valid ( ) : bool
}

Beispiele

Beispiel #1 LimitIterator usage example

<?php

// Create an iterator to be limited
$fruits = new ArrayIterator(array(
    'apple',
    'banana',
    'cherry',
    'damson',
    'elderberry'
));

// Loop over first three fruits only
foreach (new LimitIterator($fruits, 0, 3) as $fruit) {
    var_dump($fruit);
}

echo "\n";

// Loop from third fruit until the end
// Note: offset starts from zero for apple
foreach (new LimitIterator($fruits, 2) as $fruit) {
    var_dump($fruit);
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(5) "apple"
string(6) "banana"
string(6) "cherry"

string(6) "cherry"
string(6) "damson"
string(10) "elderberry"

Inhaltsverzeichnis

  • LimitIterator::__construct — Construct a LimitIterator
  • LimitIterator::current — Get current element
  • LimitIterator::getInnerIterator — Get inner iterator
  • LimitIterator::getPosition — Return the current position
  • LimitIterator::key — Get current key
  • LimitIterator::next — Move the iterator forward
  • LimitIterator::rewind — Rewind the iterator to the specified starting offset
  • LimitIterator::seek — Seek to the given position
  • LimitIterator::valid — Check whether the current element is valid


Construct a LimitIterator

  • « LimitIterator
  • LimitIterator::current »
  • PHP Manual
  • LimitIterator
  • Construct a LimitIterator

LimitIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::__construct — Construct a LimitIterator

Beschreibung

public LimitIterator::__construct ( Iterator $iterator , int $offset = 0 , int $limit = -1 )

Constructs a new LimitIterator from an iterator with a given starting offset and maximum limit.

Parameter-Liste

iterator

The Iterator to limit.

offset

Optional offset of the limit.

limit

Optional count of the limit.

Rückgabewerte

The new LimitIterator.

Fehler/Exceptions

Throws an OutOfRangeException if the offset is less than 0 or the limit is less than -1.

Beispiele

Beispiel #1 LimitIterator::__construct() example

<?php
$ait = new ArrayIterator(array('a', 'b', 'c', 'd', 'e'));
$lit = new LimitIterator($ait, 1, 3);
foreach ($lit as $value) {
    echo $value . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

b
c
d

Siehe auch

  • LimitIterator examples


Get current element

  • « LimitIterator::__construct
  • LimitIterator::getInnerIterator »
  • PHP Manual
  • LimitIterator
  • Get current element

LimitIterator::current

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::current — Get current element

Beschreibung

public LimitIterator::current ( ) : mixed

Gets the current element of the inner Iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current element or null if there is none.

Siehe auch

  • LimitIterator::key() - Get current key
  • LimitIterator::next() - Move the iterator forward
  • LimitIterator::rewind() - Rewind the iterator to the specified starting offset
  • LimitIterator::seek() - Seek to the given position
  • LimitIterator::valid() - Check whether the current element is valid


Get inner iterator

  • « LimitIterator::current
  • LimitIterator::getPosition »
  • PHP Manual
  • LimitIterator
  • Get inner iterator

LimitIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::getInnerIterator — Get inner iterator

Beschreibung

public LimitIterator::getInnerIterator ( ) : Iterator

Gets the inner Iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The inner iterator passed to LimitIterator::__construct().

Siehe auch

  • LimitIterator::__construct() - Construct a LimitIterator
  • IteratorIterator::getInnerIterator() - Get the inner iterator


Return the current position

  • « LimitIterator::getInnerIterator
  • LimitIterator::key »
  • PHP Manual
  • LimitIterator
  • Return the current position

LimitIterator::getPosition

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::getPosition — Return the current position

Beschreibung

public LimitIterator::getPosition ( ) : int

Gets the current zero-based position of the inner Iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current position.

Beispiele

Beispiel #1 LimitIterator::getPosition() example

<?php
$fruits = array(
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry',
    'd' => 'damson',
    'e' => 'elderberry'
);
$array_it = new ArrayIterator($fruits);
$limit_it = new LimitIterator($array_it, 2, 3);
foreach ($limit_it as $item) {
    echo $limit_it->getPosition() . ' ' . $item . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2 cherry
3 damson
4 elderberry

Siehe auch

  • FilterIterator::key() - Get the current key


Get current key

  • « LimitIterator::getPosition
  • LimitIterator::next »
  • PHP Manual
  • LimitIterator
  • Get current key

LimitIterator::key

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::key — Get current key

Beschreibung

public LimitIterator::key ( ) : mixed

Gets the key for the current item in the inner Iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the key for the current item.

Siehe auch

  • LimitIterator::getPosition() - Return the current position
  • LimitIterator::current() - Get current element
  • LimitIterator::next() - Move the iterator forward
  • LimitIterator::rewind() - Rewind the iterator to the specified starting offset
  • LimitIterator::seek() - Seek to the given position
  • LimitIterator::valid() - Check whether the current element is valid


Move the iterator forward

  • « LimitIterator::key
  • LimitIterator::rewind »
  • PHP Manual
  • LimitIterator
  • Move the iterator forward

LimitIterator::next

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::next — Move the iterator forward

Beschreibung

public LimitIterator::next ( ) : void

Moves the iterator forward.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • LimitIterator::current() - Get current element
  • LimitIterator::key() - Get current key
  • LimitIterator::rewind() - Rewind the iterator to the specified starting offset
  • LimitIterator::seek() - Seek to the given position
  • LimitIterator::valid() - Check whether the current element is valid


Rewind the iterator to the specified starting offset

  • « LimitIterator::next
  • LimitIterator::seek »
  • PHP Manual
  • LimitIterator
  • Rewind the iterator to the specified starting offset

LimitIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::rewind — Rewind the iterator to the specified starting offset

Beschreibung

public LimitIterator::rewind ( ) : void

Rewinds the iterator to the starting offset specified in LimitIterator::__construct().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • LimitIterator::current() - Get current element
  • LimitIterator::key() - Get current key
  • LimitIterator::next() - Move the iterator forward
  • LimitIterator::seek() - Seek to the given position
  • LimitIterator::valid() - Check whether the current element is valid


Seek to the given position

  • « LimitIterator::rewind
  • LimitIterator::valid »
  • PHP Manual
  • LimitIterator
  • Seek to the given position

LimitIterator::seek

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::seek — Seek to the given position

Beschreibung

public LimitIterator::seek ( int $position ) : int

Moves the iterator to the offset specified by position.

Parameter-Liste

position

The position to seek to.

Rückgabewerte

Returns the offset position after seeking.

Fehler/Exceptions

Throws an OutOfBoundsException if the position is outside of the limits specified in LimitIterator::__construct().

Siehe auch

  • LimitIterator::current() - Get current element
  • LimitIterator::key() - Get current key
  • LimitIterator::rewind() - Rewind the iterator to the specified starting offset
  • LimitIterator::next() - Move the iterator forward
  • LimitIterator::valid() - Check whether the current element is valid


Check whether the current element is valid

  • « LimitIterator::seek
  • MultipleIterator »
  • PHP Manual
  • LimitIterator
  • Check whether the current element is valid

LimitIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::valid — Check whether the current element is valid

Beschreibung

public LimitIterator::valid ( ) : bool

Checks whether the current element is valid.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • LimitIterator::current() - Get current element
  • LimitIterator::key() - Get current key
  • LimitIterator::rewind() - Rewind the iterator to the specified starting offset
  • LimitIterator::next() - Move the iterator forward
  • LimitIterator::seek() - Seek to the given position


The MultipleIterator class

(PHP 5 >= 5.3.0, PHP 7)

Einführung

An Iterator that sequentially iterates over all attached iterators

Klassenbeschreibung

MultipleIterator implements Iterator {
/* Konstanten */
const int MIT_NEED_ANY = 0 ;
const int MIT_NEED_ALL = 1 ;
const int MIT_KEYS_NUMERIC = 0 ;
const int MIT_KEYS_ASSOC = 2 ;
/* Methoden */
public __construct ( int $flags = MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC )
public attachIterator ( Iterator $iterator , string $infos = ? ) : void
public containsIterator ( Iterator $iterator ) : bool
public countIterators ( ) : int
public current ( ) : array
public detachIterator ( Iterator $iterator ) : void
public getFlags ( ) : int
public key ( ) : array
public next ( ) : void
public rewind ( ) : void
public setFlags ( int $flags ) : void
public valid ( ) : bool
}

Vordefinierte Konstanten

MultipleIterator::MIT_NEED_ANY

Do not require all sub iterators to be valid in iteration.

MultipleIterator::MIT_NEED_ALL

Require all sub iterators to be valid in iteration.

MultipleIterator::MIT_KEYS_NUMERIC

Keys are created from the sub iterators position.

MultipleIterator::MIT_KEYS_ASSOC

Keys are created from sub iterators associated information.

Inhaltsverzeichnis

  • MultipleIterator::attachIterator — Attaches iterator information
  • MultipleIterator::__construct — Constructs a new MultipleIterator
  • MultipleIterator::containsIterator — Checks if an iterator is attached
  • MultipleIterator::countIterators — Gets the number of attached iterator instances
  • MultipleIterator::current — Gets the registered iterator instances
  • MultipleIterator::detachIterator — Detaches an iterator
  • MultipleIterator::getFlags — Gets the flag information
  • MultipleIterator::key — Gets the registered iterator instances
  • MultipleIterator::next — Moves all attached iterator instances forward
  • MultipleIterator::rewind — Rewinds all attached iterator instances
  • MultipleIterator::setFlags — Sets flags
  • MultipleIterator::valid — Checks the validity of sub iterators


Attaches iterator information

  • « MultipleIterator
  • MultipleIterator::__construct »
  • PHP Manual
  • MultipleIterator
  • Attaches iterator information

MultipleIterator::attachIterator

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::attachIterator — Attaches iterator information

Beschreibung

public MultipleIterator::attachIterator ( Iterator $iterator , string $infos = ? ) : void

Attaches iterator information.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

iterator

The new iterator to attach.

infos

The associative information for the Iterator, which must be an int, a string, or null.

Rückgabewerte

Description...

Fehler/Exceptions

An IllegalValueException if the iterator parameter is invalid, or if infos is already associated information.

Siehe auch

  • MultipleIterator::__construct() - Constructs a new MultipleIterator


Constructs a new MultipleIterator

  • « MultipleIterator::attachIterator
  • MultipleIterator::containsIterator »
  • PHP Manual
  • MultipleIterator
  • Constructs a new MultipleIterator

MultipleIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::__construct — Constructs a new MultipleIterator

Beschreibung

public MultipleIterator::__construct ( int $flags = MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC )

Construct a new MultipleIterator.

Parameter-Liste

flags

The flags to set, according to the Flag Constants.

  • MultipleIterator::MIT_NEED_ALL or MultipleIterator::MIT_NEED_ANY
  • MultipleIterator::MIT_KEYS_NUMERIC or MultipleIterator::MIT_KEYS_ASSOC

Defaults to MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Iterating a MultipleIterator

<?php
$people = new ArrayIterator(array('John', 'Jane', 'Jack', 'Judy'));
$roles  = new ArrayIterator(array('Developer', 'Scrum Master', 'Project Owner'));

$team = new MultipleIterator($flags);
$team->attachIterator($people, 'person');
$team->attachIterator($roles, 'role');

foreach ($team as $member) {
    print_r($member);
}
?>

Output with $flags = MIT_NEED_ALL|MIT_KEYS_NUMERIC

Array
(
    [0] => John
    [1] => Developer
)
Array
(
    [0] => Jane
    [1] => Scrum Master
)
Array
(
    [0] => Jack
    [1] => Project Owner
)

Output with $flags = MIT_NEED_ANY|MIT_KEYS_NUMERIC

Array
(
    [0] => John
    [1] => Developer
)
Array
(
    [0] => Jane
    [1] => Scrum Master
)
Array
(
    [0] => Jack
    [1] => Project Owner
)
Array
(
    [0] => Judy
    [1] =>
)

Output with $flags = MIT_NEED_ALL|MIT_KEYS_ASSOC

Array
(
    [person] => John
    [role] => Developer
)
Array
(
    [person] => Jane
    [role] => Scrum Master
)
Array
(
    [person] => Jack
    [role] => Project Owner
)

Output with $flags = MIT_NEED_ANY|MIT_KEYS_ASSOC

Array
(
    [person] => John
    [role] => Developer
)
Array
(
    [person] => Jane
    [role] => Scrum Master
)
Array
(
    [person] => Jack
    [role] => Project Owner
)
Array
(
    [person] => Judy
    [role] =>
)

Siehe auch

  • Flag Constants
  • MultipleIterator::valid() - Checks the validity of sub iterators


Checks if an iterator is attached

  • « MultipleIterator::__construct
  • MultipleIterator::countIterators »
  • PHP Manual
  • MultipleIterator
  • Checks if an iterator is attached

MultipleIterator::containsIterator

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::containsIterator — Checks if an iterator is attached

Beschreibung

public MultipleIterator::containsIterator ( Iterator $iterator ) : bool

Checks if an iterator is attached or not.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

iterator

The iterator to check.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • MultipleIterator::valid() - Checks the validity of sub iterators


Gets the number of attached iterator instances

  • « MultipleIterator::containsIterator
  • MultipleIterator::current »
  • PHP Manual
  • MultipleIterator
  • Gets the number of attached iterator instances

MultipleIterator::countIterators

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::countIterators — Gets the number of attached iterator instances

Beschreibung

public MultipleIterator::countIterators ( ) : int

Gets the number of attached iterator instances.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of attached iterator instances (as an int).

Siehe auch

  • MultipleIterator::containsIterator() - Checks if an iterator is attached


Gets the registered iterator instances

  • « MultipleIterator::countIterators
  • MultipleIterator::detachIterator »
  • PHP Manual
  • MultipleIterator
  • Gets the registered iterator instances

MultipleIterator::current

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::current — Gets the registered iterator instances

Beschreibung

public MultipleIterator::current ( ) : array

Get the registered iterator instances current() result.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array containing the current values of each attached iterator, or false if no iterators are attached.

Fehler/Exceptions

A RuntimeException if mode MIT_NEED_ALL is set and at least one attached iterator is not valid. Or an IllegalValueException if a key is null and MIT_KEYS_ASSOC is set.

Siehe auch

  • MultipleIterator::valid() - Checks the validity of sub iterators


Detaches an iterator

  • « MultipleIterator::current
  • MultipleIterator::getFlags »
  • PHP Manual
  • MultipleIterator
  • Detaches an iterator

MultipleIterator::detachIterator

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::detachIterator — Detaches an iterator

Beschreibung

public MultipleIterator::detachIterator ( Iterator $iterator ) : void

Detaches an iterator.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

iterator

The iterator to detach.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • MultipleIterator::attachIterator() - Attaches iterator information


Gets the flag information

  • « MultipleIterator::detachIterator
  • MultipleIterator::key »
  • PHP Manual
  • MultipleIterator
  • Gets the flag information

MultipleIterator::getFlags

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::getFlags — Gets the flag information

Beschreibung

public MultipleIterator::getFlags ( ) : int

Gets information about the flags.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Information about the flags, as an int.

Siehe auch

  • Flag Constants
  • MultipleIterator::__construct() - Constructs a new MultipleIterator
  • MultipleIterator::setFlags() - Sets flags


Gets the registered iterator instances

  • « MultipleIterator::getFlags
  • MultipleIterator::next »
  • PHP Manual
  • MultipleIterator
  • Gets the registered iterator instances

MultipleIterator::key

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::key — Gets the registered iterator instances

Beschreibung

public MultipleIterator::key ( ) : array

Get the registered iterator instances key() result.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of all registered iterator instances, or false if no sub iterator is attached.

Fehler/Exceptions

A LogicException if mode MIT_NEED_ALL is set, and at least one attached iterator is not valid.

Calling this method from foreach triggers warning "Illegal type returned".

Siehe auch

  • MultipleIterator::current() - Gets the registered iterator instances


Moves all attached iterator instances forward

  • « MultipleIterator::key
  • MultipleIterator::rewind »
  • PHP Manual
  • MultipleIterator
  • Moves all attached iterator instances forward

MultipleIterator::next

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::next — Moves all attached iterator instances forward

Beschreibung

public MultipleIterator::next ( ) : void

Moves all attached iterator instances forward.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • MultipleIterator::rewind() - Rewinds all attached iterator instances


Rewinds all attached iterator instances

  • « MultipleIterator::next
  • MultipleIterator::setFlags »
  • PHP Manual
  • MultipleIterator
  • Rewinds all attached iterator instances

MultipleIterator::rewind

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::rewind — Rewinds all attached iterator instances

Beschreibung

public MultipleIterator::rewind ( ) : void

Rewinds all attached iterator instances.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • MultipleIterator::next() - Moves all attached iterator instances forward


Sets flags

  • « MultipleIterator::rewind
  • MultipleIterator::valid »
  • PHP Manual
  • MultipleIterator
  • Sets flags

MultipleIterator::setFlags

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::setFlags — Sets flags

Beschreibung

public MultipleIterator::setFlags ( int $flags ) : void

Sets flags.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

flags

The flags to set, according to the Flag Constants

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Flag Constants
  • MultipleIterator::__construct() - Constructs a new MultipleIterator
  • MultipleIterator::getFlags() - Gets the flag information


Checks the validity of sub iterators

  • « MultipleIterator::setFlags
  • NoRewindIterator »
  • PHP Manual
  • MultipleIterator
  • Checks the validity of sub iterators

MultipleIterator::valid

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::valid — Checks the validity of sub iterators

Beschreibung

public MultipleIterator::valid ( ) : bool

Checks the validity of sub iterators.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if one or all sub iterators are valid depending on flags, otherwise false

Siehe auch

  • MultipleIterator::__construct() - Constructs a new MultipleIterator


The NoRewindIterator class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

This iterator ignores rewind operations. This allows processing an iterator in multiple partial foreach loops.

Klassenbeschreibung

NoRewindIterator extends IteratorIterator {
/* Methoden */
public __construct ( Iterator $iterator )
public current ( ) : mixed
public getInnerIterator ( ) : iterator
public key ( ) : mixed
public next ( ) : void
public rewind ( ) : void
public valid ( ) : bool
/* Geerbte Methoden */
public IteratorIterator::__construct ( Traversable $iterator )
public IteratorIterator::current ( ) : mixed
public IteratorIterator::getInnerIterator ( ) : Traversable
public IteratorIterator::key ( ) : mixed
public IteratorIterator::next ( ) : void
public IteratorIterator::rewind ( ) : void
public IteratorIterator::valid ( ) : bool
}

Inhaltsverzeichnis

  • NoRewindIterator::__construct — Construct a NoRewindIterator
  • NoRewindIterator::current — Get the current value
  • NoRewindIterator::getInnerIterator — Get the inner iterator
  • NoRewindIterator::key — Get the current key
  • NoRewindIterator::next — Forward to the next element
  • NoRewindIterator::rewind — Prevents the rewind operation on the inner iterator
  • NoRewindIterator::valid — Validates the iterator


Construct a NoRewindIterator

  • « NoRewindIterator
  • NoRewindIterator::current »
  • PHP Manual
  • NoRewindIterator
  • Construct a NoRewindIterator

NoRewindIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::__construct — Construct a NoRewindIterator

Beschreibung

public NoRewindIterator::__construct ( Iterator $iterator )

Constructs a NoRewindIterator.

Parameter-Liste

iterator

The iterator being used.

Rückgabewerte

A NoRewindIterator() based on the passed in iterator.

Beispiele

Beispiel #1 NoRewindIterator::__construct() example

The second loop does not output because the iterator is only used once, as it does not rewind.

<?php
$fruit = array('apple', 'banana', 'cranberry');

$arr = new ArrayObject($fruit);
$it  = new NoRewindIterator($arr->getIterator());

echo "Fruit A:\n";
foreach( $it as $item ) {
    echo $item . "\n";
}

echo "Fruit B:\n";
foreach( $it as $item ) {
    echo $item . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Fruit A:
apple
banana
cranberry
Fruit B:

Siehe auch

  • NoRewindIterator::valid() - Validates the iterator


Get the current value

  • « NoRewindIterator::__construct
  • NoRewindIterator::getInnerIterator »
  • PHP Manual
  • NoRewindIterator
  • Get the current value

NoRewindIterator::current

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::current — Get the current value

Beschreibung

public NoRewindIterator::current ( ) : mixed

Gets the current value.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current value.

Siehe auch

  • NoRewindIterator::key() - Get the current key


Get the inner iterator

  • « NoRewindIterator::current
  • NoRewindIterator::key »
  • PHP Manual
  • NoRewindIterator
  • Get the inner iterator

NoRewindIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::getInnerIterator — Get the inner iterator

Beschreibung

public NoRewindIterator::getInnerIterator ( ) : iterator

Gets the inner iterator, that was passed in to NoRewindIterator.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The inner iterator, as passed to NoRewindIterator::__construct().

Siehe auch

  • NoRewindIterator::valid() - Validates the iterator


Get the current key

  • « NoRewindIterator::getInnerIterator
  • NoRewindIterator::next »
  • PHP Manual
  • NoRewindIterator
  • Get the current key

NoRewindIterator::key

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::key — Get the current key

Beschreibung

public NoRewindIterator::key ( ) : mixed

Gets the current key.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current key.

Siehe auch

  • NoRewindIterator::next() - Forward to the next element


Forward to the next element

  • « NoRewindIterator::key
  • NoRewindIterator::rewind »
  • PHP Manual
  • NoRewindIterator
  • Forward to the next element

NoRewindIterator::next

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::next — Forward to the next element

Beschreibung

public NoRewindIterator::next ( ) : void

Forwards to the next element.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • NoRewindIterator::rewind() - Prevents the rewind operation on the inner iterator


Prevents the rewind operation on the inner iterator

  • « NoRewindIterator::next
  • NoRewindIterator::valid »
  • PHP Manual
  • NoRewindIterator
  • Prevents the rewind operation on the inner iterator

NoRewindIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::rewind — Prevents the rewind operation on the inner iterator

Beschreibung

public NoRewindIterator::rewind ( ) : void

Prevents the rewind operation on the inner iterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 NoRewindIterator::rewind() example

This example demonstrates that calling rewind on a NoRewindIterator object has no effect.

<?php
$fruits = array("lemon", "orange", "apple", "pear");

$noRewindIterator = new NoRewindIterator(new ArrayIterator($fruits));

echo $noRewindIterator->current() . "\n";
$noRewindIterator->next();
// now rewind the iterator (nothing should happen)
$noRewindIterator->rewind();
echo $noRewindIterator->current() . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

lemon
orange


Validates the iterator

  • « NoRewindIterator::rewind
  • ParentIterator »
  • PHP Manual
  • NoRewindIterator
  • Validates the iterator

NoRewindIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::valid — Validates the iterator

Beschreibung

public NoRewindIterator::valid ( ) : bool

Checks whether the iterator is valid.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • NoRewindIterator::getInnerIterator() - Get the inner iterator


The ParentIterator class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

This extended FilterIterator allows a recursive iteration using RecursiveIteratorIterator that only shows those elements which have children.

Klassenbeschreibung

ParentIterator extends RecursiveFilterIterator implements RecursiveIterator , OuterIterator {
/* Methoden */
public accept ( ) : bool
public __construct ( RecursiveIterator $iterator )
public getChildren ( ) : ParentIterator
public hasChildren ( ) : bool
public next ( ) : void
public rewind ( ) : void
/* Geerbte Methoden */
public OuterIterator::getInnerIterator ( ) : Iterator
}

Inhaltsverzeichnis

  • ParentIterator::accept — Determines acceptability
  • ParentIterator::__construct — Constructs a ParentIterator
  • ParentIterator::getChildren — Return the inner iterator's children contained in a ParentIterator
  • ParentIterator::hasChildren — Check whether the inner iterator's current element has children
  • ParentIterator::next — Move the iterator forward
  • ParentIterator::rewind — Rewind the iterator


Determines acceptability

  • « ParentIterator
  • ParentIterator::__construct »
  • PHP Manual
  • ParentIterator
  • Determines acceptability

ParentIterator::accept

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::accept — Determines acceptability

Beschreibung

public ParentIterator::accept ( ) : bool

Determines if the current element has children.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the current element is acceptable, otherwise false.

Siehe auch

  • ParentIterator::hasChildren() - Check whether the inner iterator's current element has children
  • FilterIterator::accept() - Check whether the current element of the iterator is acceptable


Constructs a ParentIterator

  • « ParentIterator::accept
  • ParentIterator::getChildren »
  • PHP Manual
  • ParentIterator
  • Constructs a ParentIterator

ParentIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::__construct — Constructs a ParentIterator

Beschreibung

public ParentIterator::__construct ( RecursiveIterator $iterator )

Constructs a ParentIterator on an iterator.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

iterator

The iterator being constructed upon.

Rückgabewerte

The ParentIterator.


Return the inner iterator's children contained in a ParentIterator

  • « ParentIterator::__construct
  • ParentIterator::hasChildren »
  • PHP Manual
  • ParentIterator
  • Return the inner iterator's children contained in a ParentIterator

ParentIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::getChildren — Return the inner iterator's children contained in a ParentIterator

Beschreibung

public ParentIterator::getChildren ( ) : ParentIterator

Get the inner iterator's children contained in a ParentIterator.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An object.


Check whether the inner iterator's current element has children

  • « ParentIterator::getChildren
  • ParentIterator::next »
  • PHP Manual
  • ParentIterator
  • Check whether the inner iterator's current element has children

ParentIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::hasChildren — Check whether the inner iterator's current element has children

Beschreibung

public ParentIterator::hasChildren ( ) : bool

Check whether the inner iterator's current element has children.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Move the iterator forward

  • « ParentIterator::hasChildren
  • ParentIterator::rewind »
  • PHP Manual
  • ParentIterator
  • Move the iterator forward

ParentIterator::next

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::next — Move the iterator forward

Beschreibung

public ParentIterator::next ( ) : void

Moves the iterator forward.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Rewind the iterator

  • « ParentIterator::next
  • RecursiveArrayIterator »
  • PHP Manual
  • ParentIterator
  • Rewind the iterator

ParentIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::rewind — Rewind the iterator

Beschreibung

public ParentIterator::rewind ( ) : void

Rewinds the iterator.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The RecursiveArrayIterator class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

This iterator allows to unset and modify values and keys while iterating over Arrays and Objects in the same way as the ArrayIterator. Additionally it is possible to iterate over the current iterator entry.

Klassenbeschreibung

RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator {
/* Geerbte Konstanten */
const int STD_PROP_LIST = 1 ;
const int ARRAY_AS_PROPS = 2 ;
/* Konstanten */
const int CHILD_ARRAYS_ONLY = 4 ;
/* Methoden */
public getChildren ( ) : RecursiveArrayIterator
public hasChildren ( ) : bool
/* Inherits */
public ArrayIterator::append ( mixed $value ) : void
public ArrayIterator::asort ( ) : void
public ArrayIterator::__construct ( mixed $array = array() , int $flags = 0 )
public ArrayIterator::count ( ) : int
public ArrayIterator::current ( ) : mixed
public ArrayIterator::getArrayCopy ( ) : array
public ArrayIterator::getFlags ( ) : int
public ArrayIterator::key ( ) : mixed
public ArrayIterator::ksort ( ) : void
public ArrayIterator::natcasesort ( ) : void
public ArrayIterator::natsort ( ) : void
public ArrayIterator::next ( ) : void
public ArrayIterator::offsetExists ( mixed $index ) : bool
public ArrayIterator::offsetGet ( mixed $index ) : mixed
public ArrayIterator::offsetSet ( mixed $index , mixed $newval ) : void
public ArrayIterator::offsetUnset ( mixed $index ) : void
public ArrayIterator::rewind ( ) : void
public ArrayIterator::seek ( int $position ) : void
public ArrayIterator::serialize ( ) : string
public ArrayIterator::setFlags ( string $flags ) : void
public ArrayIterator::uasort ( callable $cmp_function ) : void
public ArrayIterator::uksort ( callable $cmp_function ) : void
public ArrayIterator::unserialize ( string $serialized ) : void
public ArrayIterator::valid ( ) : bool
}

Vordefinierte Konstanten

RecursiveArrayIterator Flags

RecursiveArrayIterator::CHILD_ARRAYS_ONLY

Treat only arrays (not objects) as having children for recursive iteration.

Changelog

Version | Beschreibung
5.3.0 | CHILD_ARRAYS_ONLY flag was added.

Inhaltsverzeichnis

  • RecursiveArrayIterator::getChildren — Returns an iterator for the current entry if it is an array or an object
  • RecursiveArrayIterator::hasChildren — Returns whether current entry is an array or an object


Returns an iterator for the current entry if it is an array or an object

  • « RecursiveArrayIterator
  • RecursiveArrayIterator::hasChildren »
  • PHP Manual
  • RecursiveArrayIterator
  • Returns an iterator for the current entry if it is an array or an object

RecursiveArrayIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveArrayIterator::getChildren — Returns an iterator for the current entry if it is an array or an object

Beschreibung

public RecursiveArrayIterator::getChildren ( ) : RecursiveArrayIterator

Returns an iterator for the current iterator entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An iterator for the current entry, if it is an array or object.

Fehler/Exceptions

An InvalidArgumentException will be thrown if the current entry does not contain an array or an object.

Beispiele

Beispiel #1 RecursiveArrayIterator::getChildren() example

<?php
$fruits = array("a" => "lemon", "b" => "orange", array("a" => "apple", "p" => "pear"));

$iterator = new RecursiveArrayIterator($fruits);

while ($iterator->valid()) {

    if ($iterator->hasChildren()) {
        // print all children
        foreach ($iterator->getChildren() as $key => $value) {
            echo $key . ' : ' . $value . "\n";
        }
    } else {
        echo "No children.\n";
    }

    $iterator->next();
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

No children.
No children.
a : apple
p : pear

Siehe auch

  • RecursiveArrayIterator::hasChildren() - Returns whether current entry is an array or an object


Returns whether current entry is an array or an object

  • « RecursiveArrayIterator::getChildren
  • RecursiveCachingIterator »
  • PHP Manual
  • RecursiveArrayIterator
  • Returns whether current entry is an array or an object

RecursiveArrayIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveArrayIterator::hasChildren — Returns whether current entry is an array or an object

Beschreibung

public RecursiveArrayIterator::hasChildren ( ) : bool

Returns whether current entry is an array or an object for which an iterator can be obtained via RecursiveArrayIterator::getChildren().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the current entry is an array or an object, otherwise false is returned.

Beispiele

Beispiel #1 RecursiveArrayIterator::hasChildren() example

<?php
$fruits = array("a" => "lemon", "b" => "orange", array("a" => "apple", "p" => "pear"));

$iterator = new RecursiveArrayIterator($fruits);

while ($iterator->valid()) {

    // Check if there are children
    if ($iterator->hasChildren()) {
        // print all children
        foreach ($iterator->getChildren() as $key => $value) {
            echo $key . ' : ' . $value . "\n";
        }
    } else {
        echo "No children.\n";
    }

    $iterator->next();
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

No children.
No children.
a : apple
p : pear

Siehe auch

  • RecursiveArrayIterator::getChildren() - Returns an iterator for the current entry if it is an array or an object


The RecursiveCachingIterator class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

...

Klassenbeschreibung

RecursiveCachingIterator extends CachingIterator implements Countable , ArrayAccess , OuterIterator , RecursiveIterator {
/* Geerbte Konstanten */
const int CachingIterator::CALL_TOSTRING = 1 ;
const int CachingIterator::CATCH_GET_CHILD = 16 ;
const int CachingIterator::TOSTRING_USE_KEY = 2 ;
const int CachingIterator::TOSTRING_USE_CURRENT = 4 ;
const int CachingIterator::TOSTRING_USE_INNER = 8 ;
const int CachingIterator::FULL_CACHE = 256 ;
/* Methoden */
public __construct ( Iterator $iterator , int $flags = self::CALL_TOSTRING )
public getChildren ( ) : RecursiveCachingIterator
public hasChildren ( ) : bool
/* Inherits */
public CachingIterator::__construct ( Iterator $iterator , int $flags = self::CALL_TOSTRING )
public CachingIterator::count ( ) : int
public CachingIterator::current ( ) : mixed
public CachingIterator::getCache ( ) : array
public CachingIterator::getFlags ( ) : int
public CachingIterator::getInnerIterator ( ) : Iterator
public CachingIterator::hasNext ( ) : void
public CachingIterator::key ( ) : scalar
public CachingIterator::next ( ) : void
public CachingIterator::offsetExists ( mixed $index ) : void
public CachingIterator::offsetGet ( string $index ) : void
public CachingIterator::offsetSet ( mixed $index , mixed $newval ) : void
public CachingIterator::offsetUnset ( string $index ) : void
public CachingIterator::rewind ( ) : void
public CachingIterator::setFlags ( int $flags ) : void
public CachingIterator::__toString ( ) : void
public CachingIterator::valid ( ) : void
}

Inhaltsverzeichnis

  • RecursiveCachingIterator::__construct — Construct
  • RecursiveCachingIterator::getChildren — Return the inner iterator's children as a RecursiveCachingIterator
  • RecursiveCachingIterator::hasChildren — Check whether the current element of the inner iterator has children


Construct

  • « RecursiveCachingIterator
  • RecursiveCachingIterator::getChildren »
  • PHP Manual
  • RecursiveCachingIterator
  • Construct

RecursiveCachingIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

RecursiveCachingIterator::__construct — Construct

Beschreibung

public RecursiveCachingIterator::__construct ( Iterator $iterator , int $flags = self::CALL_TOSTRING )

Constructs a new RecursiveCachingIterator, which consists of a passed in iterator.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

iterator

The iterator being used.

flags

The flags. Use CALL_TOSTRING to call RecursiveCachingIterator::__toString() for every element (the default), and/or CATCH_GET_CHILD to catch exceptions when trying to get children.

Rückgabewerte

The RecursiveCachingIterator.

Siehe auch

  • CachingIterator::__construct() - Construct a new CachingIterator object for the iterator


Return the inner iterator's children as a RecursiveCachingIterator

  • « RecursiveCachingIterator::__construct
  • RecursiveCachingIterator::hasChildren »
  • PHP Manual
  • RecursiveCachingIterator
  • Return the inner iterator's children as a RecursiveCachingIterator

RecursiveCachingIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveCachingIterator::getChildren — Return the inner iterator's children as a RecursiveCachingIterator

Beschreibung

public RecursiveCachingIterator::getChildren ( ) : RecursiveCachingIterator
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The inner iterator's children, as a RecursiveCachingIterator.


Check whether the current element of the inner iterator has children

  • « RecursiveCachingIterator::getChildren
  • RecursiveCallbackFilterIterator »
  • PHP Manual
  • RecursiveCachingIterator
  • Check whether the current element of the inner iterator has children

RecursiveCachingIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveCachingIterator::hasChildren — Check whether the current element of the inner iterator has children

Beschreibung

public RecursiveCachingIterator::hasChildren ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the inner iterator has children, otherwise false


The RecursiveCallbackFilterIterator class

(PHP 5 >= 5.4.0, PHP 7)

Einführung

Klassenbeschreibung

RecursiveCallbackFilterIterator extends CallbackFilterIterator implements OuterIterator , RecursiveIterator {
/* Methoden */
public __construct ( RecursiveIterator $iterator , string $callback )
public getChildren ( ) : RecursiveCallbackFilterIterator
public hasChildren ( ) : bool
/* Geerbte Methoden */
public CallbackFilterIterator::accept ( ) : bool
}

Beispiele

The callback should accept up to three arguments: the current item, the current key and the iterator, respectively.

Beispiel #1 Available callback arguments

<?php

/**
 * Callback for RecursiveCallbackFilterIterator
 *
 * @param $current   Current item's value
 * @param $key       Current item's key
 * @param $iterator  Iterator being filtered
 * @return boolean   TRUE to accept the current item, FALSE otherwise
 */
function my_callback($current, $key, $iterator) {
    // Your filtering code here
}

?>

Filtering a recursive iterator generally involves two conditions. The first is that, to allow recursion, the callback function should return true if the current iterator item has children. The second is the normal filter condition, such as a file size or extension check as in the example below.

Beispiel #2 Recursive callback basic example

<?php

$dir = new RecursiveDirectoryIterator(__DIR__);

// Filter large files ( > 100MB)
$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) {
    // Allow recursion
    if ($iterator->hasChildren()) {
        return TRUE;
    }
    // Check for large file
    if ($current->isFile() && $current->getSize() > 104857600) {
        return TRUE;
    }
    return FALSE;
});

foreach (new RecursiveIteratorIterator($files) as $file) {
    echo $file->getPathname() . PHP_EOL;
}

?>

Inhaltsverzeichnis

  • RecursiveCallbackFilterIterator::__construct — Create a RecursiveCallbackFilterIterator from a RecursiveIterator
  • RecursiveCallbackFilterIterator::getChildren — Return the inner iterator's children contained in a RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::hasChildren — Check whether the inner iterator's current element has children


Create a RecursiveCallbackFilterIterator from a RecursiveIterator

  • « RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::getChildren »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Create a RecursiveCallbackFilterIterator from a RecursiveIterator

RecursiveCallbackFilterIterator::__construct

(PHP 5 >= 5.4.0, PHP 7)

RecursiveCallbackFilterIterator::__construct — Create a RecursiveCallbackFilterIterator from a RecursiveIterator

Beschreibung

public RecursiveCallbackFilterIterator::__construct ( RecursiveIterator $iterator , string $callback )

Creates a filtered iterator from a RecursiveIterator using the callback to determine which items are accepted or rejected.

Parameter-Liste

iterator

The recursive iterator to be filtered.

callback

The callback, which should return true to accept the current item or false otherwise. See Examples.

May be any valid callable value.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • RecursiveCallbackFilterIterator Examples
  • RecursiveCallbackFilterIterator::getChildren() - Return the inner iterator's children contained in a RecursiveCallbackFilterIterator
  • RecursiveCallbackFilteriterator::hasChildren() - Check whether the inner iterator's current element has children


Return the inner iterator's children contained in a RecursiveCallbackFilterIterator

  • « RecursiveCallbackFilterIterator::__construct
  • RecursiveCallbackFilterIterator::hasChildren »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Return the inner iterator's children contained in a RecursiveCallbackFilterIterator

RecursiveCallbackFilterIterator::getChildren

(PHP 5 >= 5.4.0, PHP 7)

RecursiveCallbackFilterIterator::getChildren — Return the inner iterator's children contained in a RecursiveCallbackFilterIterator

Beschreibung

public RecursiveCallbackFilterIterator::getChildren ( ) : RecursiveCallbackFilterIterator

Fetches the filtered children of the inner iterator.

RecursiveCallbackFilterIterator::hasChildren() should be used to determine if there are children to be fetched.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a RecursiveCallbackFilterIterator containing the children.

Siehe auch

  • RecursiveCallbackFilterIterator Examples
  • RecursiveCallbackFilterIterator::__construct() - Create a RecursiveCallbackFilterIterator from a RecursiveIterator
  • RecursiveCallbackFilteriterator::hasChildren() - Check whether the inner iterator's current element has children


Check whether the inner iterator's current element has children

  • « RecursiveCallbackFilterIterator::getChildren
  • RecursiveDirectoryIterator »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Check whether the inner iterator's current element has children

RecursiveCallbackFilterIterator::hasChildren

(PHP 5 >= 5.4.0, PHP 7)

RecursiveCallbackFilterIterator::hasChildren — Check whether the inner iterator's current element has children

Beschreibung

public RecursiveCallbackFilterIterator::hasChildren ( ) : bool

Returns true if the current element has children, false otherwise.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the current element has children, false otherwise.

Beispiele

Beispiel #1 RecursiveCallbackFilterIterator::hasChildren() basic usage

<?php

$dir = new RecursiveDirectoryIterator(__DIR__);

// Recursively iterate over XML files
$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) {
    // Allow recursion into directories
    if ($iterator->hasChildren()) {
        return TRUE;
    }
    // Check for XML file
    if (!strcasecmp($current->getExtension(), 'xml')) {
        return TRUE;
    }
    return FALSE;
});

?>

Siehe auch

  • RecursiveCallbackFilterIterator Examples
  • RecursiveCallbackFilterIterator::__construct() - Create a RecursiveCallbackFilterIterator from a RecursiveIterator
  • RecursiveCallbackFilteriterator::getChildren() - Return the inner iterator's children contained in a RecursiveCallbackFilterIterator


The RecursiveDirectoryIterator class

(PHP 5, PHP 7)

Einführung

The RecursiveDirectoryIterator provides an interface for iterating recursively over filesystem directories.

Klassenbeschreibung

RecursiveDirectoryIterator extends FilesystemIterator implements SeekableIterator , RecursiveIterator {
/* Geerbte Konstanten */
const int FilesystemIterator::CURRENT_AS_PATHNAME = 32 ;
const int FilesystemIterator::CURRENT_AS_FILEINFO = 0 ;
const int FilesystemIterator::CURRENT_AS_SELF = 16 ;
const int FilesystemIterator::CURRENT_MODE_MASK = 240 ;
const int FilesystemIterator::KEY_AS_PATHNAME = 0 ;
const int FilesystemIterator::KEY_AS_FILENAME = 256 ;
const int FilesystemIterator::FOLLOW_SYMLINKS = 512 ;
const int FilesystemIterator::KEY_MODE_MASK = 3840 ;
const int FilesystemIterator::NEW_CURRENT_AND_KEY = 256 ;
const int FilesystemIterator::SKIP_DOTS = 4096 ;
const int FilesystemIterator::UNIX_PATHS = 8192 ;
/* Methoden */
public __construct ( string $path , int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO )
public getChildren ( ) : mixed
public getSubPath ( ) : string
public getSubPathname ( ) : string
public hasChildren ( bool $allow_links = false ) : bool
public key ( ) : string
public next ( ) : void
public rewind ( ) : void
/* Inherits */
public FilesystemIterator::__construct ( string $path , int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS )
public FilesystemIterator::current ( ) : mixed
public FilesystemIterator::getFlags ( ) : int
public FilesystemIterator::key ( ) : string
public FilesystemIterator::next ( ) : void
public FilesystemIterator::rewind ( ) : void
public FilesystemIterator::setFlags ( int $flags = ? ) : void
}

Changelog

Version | Beschreibung
5.3.0 | The FilesystemIterator was introduced as the parent class. Previously, the parent was the DirectoryIterator.
5.3.0 | Implements SeekableIterator.
5.2.11, 5.3.1 | Added RecursiveDirectoryIterator::FOLLOW_SYMLINKS

Inhaltsverzeichnis

  • RecursiveDirectoryIterator::__construct — Constructs a RecursiveDirectoryIterator
  • RecursiveDirectoryIterator::getChildren — Returns an iterator for the current entry if it is a directory
  • RecursiveDirectoryIterator::getSubPath — Get sub path
  • RecursiveDirectoryIterator::getSubPathname — Get sub path and name
  • RecursiveDirectoryIterator::hasChildren — Returns whether current entry is a directory and not '.' or '..'
  • RecursiveDirectoryIterator::key — Return path and filename of current dir entry
  • RecursiveDirectoryIterator::next — Zum nächsten Eintrag bewegen
  • RecursiveDirectoryIterator::rewind — Rewind dir back to the start


Constructs a RecursiveDirectoryIterator

  • « RecursiveDirectoryIterator
  • RecursiveDirectoryIterator::getChildren »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Constructs a RecursiveDirectoryIterator

RecursiveDirectoryIterator::__construct

(PHP 5 >= 5.1.2, PHP 7)

RecursiveDirectoryIterator::__construct — Constructs a RecursiveDirectoryIterator

Beschreibung

public RecursiveDirectoryIterator::__construct ( string $path , int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO )

Constructs a RecursiveDirectoryIterator() for the provided path.

Parameter-Liste

path

The path of the directory to be iterated over.

flags

Flags may be provided which will affect the behavior of some methods. A list of the flags can found under FilesystemIterator predefined constants. They can also be set later with FilesystemIterator::setFlags().

Rückgabewerte

Returns the newly created RecursiveDirectoryIterator.

Fehler/Exceptions

Throws an UnexpectedValueException if the path cannot be found or is not a directory.

Beispiele

Beispiel #1 RecursiveDirectoryIterator example

<?php

$directory = '/tmp';

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

$it->rewind();
while($it->valid()) {

    if (!$it->isDot()) {
        echo 'SubPathName: ' . $it->getSubPathName() . "\n";
        echo 'SubPath:     ' . $it->getSubPath() . "\n";
        echo 'Key:         ' . $it->key() . "\n\n";
    }

    $it->next();
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SubPathName: fruit/apple.xml
SubPath:     fruit
Key:         /tmp/fruit/apple.xml

SubPathName: stuff.xml
SubPath:
Key:         /tmp/stuff.xml

SubPathName: veggies/carrot.xml
SubPath:     veggies
Key:         /tmp/veggies/carrot.xml

Siehe auch

  • FilesystemIterator::__construct() - Constructs a new filesystem iterator
  • RecursiveIteratorIterator::__construct() - Construct a RecursiveIteratorIterator
  • FilesystemIterator predefined constants


Returns an iterator for the current entry if it is a directory

  • « RecursiveDirectoryIterator::__construct
  • RecursiveDirectoryIterator::getSubPath »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Returns an iterator for the current entry if it is a directory

RecursiveDirectoryIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveDirectoryIterator::getChildren — Returns an iterator for the current entry if it is a directory

Beschreibung

public RecursiveDirectoryIterator::getChildren ( ) : mixed
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The filename, file information, or $this depending on the set flags. See the FilesystemIterator constants.


Get sub path

  • « RecursiveDirectoryIterator::getChildren
  • RecursiveDirectoryIterator::getSubPathname »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Get sub path

RecursiveDirectoryIterator::getSubPath

(PHP 5 >= 5.1.0, PHP 7)

RecursiveDirectoryIterator::getSubPath — Get sub path

Beschreibung

public RecursiveDirectoryIterator::getSubPath ( ) : string

Returns the sub path relative to the directory given in the constructor.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The sub path.

Beispiele

Beispiel #1 getSubPath() example

$directory = '/tmp';

      $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

      foreach ($it as $file) {
          echo 'SubPathName: ' . $it->getSubPathName() . "\n";
          echo 'SubPath:     ' . $it->getSubPath() . "\n\n";
      }

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

     SubPathName: fruit/apple.xml
     SubPath:     fruit

     SubPathName: stuff.xml
     SubPath:

     SubPathName: veggies/carrot.xml
     SubPath:     veggies

Siehe auch

  • RecursiveDirectoryIterator::getSubPathName() - Get sub path and name
  • RecursiveDirectoryIterator::key() - Return path and filename of current dir entry


Get sub path and name

  • « RecursiveDirectoryIterator::getSubPath
  • RecursiveDirectoryIterator::hasChildren »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Get sub path and name

RecursiveDirectoryIterator::getSubPathname

(PHP 5 >= 5.1.0, PHP 7)

RecursiveDirectoryIterator::getSubPathname — Get sub path and name

Beschreibung

public RecursiveDirectoryIterator::getSubPathname ( ) : string

Gets the sub path and filename.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The sub path (sub directory) and filename.

Beispiele

Beispiel #1 getSubPathname() example

$directory = '/tmp';

      $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

      foreach ($it as $file) {
          echo 'SubPathName: ' . $it->getSubPathName() . "\n";
          echo 'SubPath:     ' . $it->getSubPath() . "\n\n";
      }

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

     SubPathName: fruit/apple.xml
     SubPath:     fruit

     SubPathName: stuff.xml
     SubPath:

     SubPathName: veggies/carrot.xml
     SubPath:     veggies

Siehe auch

  • RecursiveDirectoryIterator::getSubPath() - Get sub path
  • RecursiveDirectoryIterator::key() - Return path and filename of current dir entry


Returns whether current entry is a directory and not '.' or '..'

  • « RecursiveDirectoryIterator::getSubPathname
  • RecursiveDirectoryIterator::key »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Returns whether current entry is a directory and not '.' or '..'

RecursiveDirectoryIterator::hasChildren

(PHP 5, PHP 7)

RecursiveDirectoryIterator::hasChildren — Returns whether current entry is a directory and not '.' or '..'

Beschreibung

public RecursiveDirectoryIterator::hasChildren ( bool $allow_links = false ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

allow_links

Rückgabewerte

Returns whether the current entry is a directory, but not '.' or '..'


Return path and filename of current dir entry

  • « RecursiveDirectoryIterator::hasChildren
  • RecursiveDirectoryIterator::next »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Return path and filename of current dir entry

RecursiveDirectoryIterator::key

(PHP 5, PHP 7)

RecursiveDirectoryIterator::key — Return path and filename of current dir entry

Beschreibung

public RecursiveDirectoryIterator::key ( ) : string
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The path and filename of the current dir entry.


Zum nächsten Eintrag bewegen

  • « RecursiveDirectoryIterator::key
  • RecursiveDirectoryIterator::rewind »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Zum nächsten Eintrag bewegen

RecursiveDirectoryIterator::next

(PHP 5, PHP 7)

RecursiveDirectoryIterator::next — Zum nächsten Eintrag bewegen

Beschreibung

public RecursiveDirectoryIterator::next ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Rewind dir back to the start

  • « RecursiveDirectoryIterator::next
  • RecursiveFilterIterator »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Rewind dir back to the start

RecursiveDirectoryIterator::rewind

(PHP 5, PHP 7)

RecursiveDirectoryIterator::rewind — Rewind dir back to the start

Beschreibung

public RecursiveDirectoryIterator::rewind ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The RecursiveFilterIterator class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

This abstract iterator filters out unwanted values for a RecursiveIterator. This class should be extended to implement custom filters. The RecursiveFilterIterator::accept() must be implemented in the subclass.

Klassenbeschreibung

abstract RecursiveFilterIterator extends FilterIterator implements OuterIterator , RecursiveIterator {
/* Methoden */
public __construct ( RecursiveIterator $iterator )
public getChildren ( ) : RecursiveFilterIterator
public hasChildren ( ) : bool
/* Geerbte Methoden */
public abstract FilterIterator::accept ( ) : bool
public FilterIterator::__construct ( Iterator $iterator )
public FilterIterator::current ( ) : mixed
public FilterIterator::getInnerIterator ( ) : Iterator
public FilterIterator::key ( ) : mixed
public FilterIterator::next ( ) : void
public FilterIterator::rewind ( ) : void
public FilterIterator::valid ( ) : bool
}

Inhaltsverzeichnis

  • RecursiveFilterIterator::__construct — Create a RecursiveFilterIterator from a RecursiveIterator
  • RecursiveFilterIterator::getChildren — Return the inner iterator's children contained in a RecursiveFilterIterator
  • RecursiveFilterIterator::hasChildren — Check whether the inner iterator's current element has children


Create a RecursiveFilterIterator from a RecursiveIterator

  • « RecursiveFilterIterator
  • RecursiveFilterIterator::getChildren »
  • PHP Manual
  • RecursiveFilterIterator
  • Create a RecursiveFilterIterator from a RecursiveIterator

RecursiveFilterIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::__construct — Create a RecursiveFilterIterator from a RecursiveIterator

Beschreibung

public RecursiveFilterIterator::__construct ( RecursiveIterator $iterator )

Create a RecursiveFilterIterator from a RecursiveIterator.

Parameter-Liste

iterator

The RecursiveIterator to be filtered.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Basic RecursiveFilterIterator() example

<?php
class TestsOnlyFilter extends RecursiveFilterIterator {
    public function accept() {
        // Accept the current item if we can recurse into it
        // or it is a value starting with "test"
        return $this->hasChildren() || (strpos($this->current(), "test") !== FALSE);
    }
}

$array    = array("test1", array("taste2", "test3", "test4"), "test5");
$iterator = new RecursiveArrayIterator($array);
$filter   = new TestsOnlyFilter($iterator);

foreach(new RecursiveIteratorIterator($filter) as $key => $value)
{
    echo $value . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

test1
test3
test4
test5

Beispiel #2 RecursiveFilterIterator() example

<?php
class StartsWithFilter extends RecursiveFilterIterator {

    protected $word;

    public function __construct(RecursiveIterator $rit, $word) {
        $this->word = $word;
        parent::__construct($rit);
    }

    public function accept() {
        return $this->hasChildren() OR strpos($this->current(), $this->word) === 0;
    }

    public function getChildren() {
        return new self($this->getInnerIterator()->getChildren(), $this->word);
    }
}

$array    = array("test1", array("taste2", "test3", "test4"), "test5");
$iterator = new RecursiveArrayIterator($array);
$filter   = new StartsWithFilter($iterator, "test");

foreach(new RecursiveIteratorIterator($filter) as $key => $value)
{
    echo $value . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

test1
test3
test4
test5

Siehe auch

  • RecursiveFilterIterator::getChildren() - Return the inner iterator's children contained in a RecursiveFilterIterator
  • RecursiveFilterIterator::hasChildren() - Check whether the inner iterator's current element has children
  • FilterIterator::accept() - Check whether the current element of the iterator is acceptable


Return the inner iterator's children contained in a RecursiveFilterIterator

  • « RecursiveFilterIterator::__construct
  • RecursiveFilterIterator::hasChildren »
  • PHP Manual
  • RecursiveFilterIterator
  • Return the inner iterator's children contained in a RecursiveFilterIterator

RecursiveFilterIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::getChildren — Return the inner iterator's children contained in a RecursiveFilterIterator

Beschreibung

public RecursiveFilterIterator::getChildren ( ) : RecursiveFilterIterator

Return the inner iterator's children contained in a RecursiveFilterIterator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a RecursiveFilterIterator containing the inner iterator's children.

Siehe auch

  • RecursiveFilterIterator::hasChildren() - Check whether the inner iterator's current element has children
  • RecursiveIterator::getChildren() - Returns an iterator for the current entry


Check whether the inner iterator's current element has children

  • « RecursiveFilterIterator::getChildren
  • RecursiveIteratorIterator »
  • PHP Manual
  • RecursiveFilterIterator
  • Check whether the inner iterator's current element has children

RecursiveFilterIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::hasChildren — Check whether the inner iterator's current element has children

Beschreibung

public RecursiveFilterIterator::hasChildren ( ) : bool

Check whether the inner iterator's current element has children.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the inner iterator has children, otherwise false

Siehe auch

  • RecursiveFilterIterator::getChildren() - Return the inner iterator's children contained in a RecursiveFilterIterator
  • RecursiveIterator::hasChildren() - Returns if an iterator can be created for the current entry


The RecursiveIteratorIterator class

(PHP 5, PHP 7)

Einführung

Can be used to iterate through recursive iterators.

Klassenbeschreibung

RecursiveIteratorIterator implements OuterIterator {
/* Konstanten */
const int LEAVES_ONLY = 0 ;
const int SELF_FIRST = 1 ;
const int CHILD_FIRST = 2 ;
const int CATCH_GET_CHILD = 16 ;
/* Methoden */
public beginChildren ( ) : void
public beginIteration ( ) : void
public callGetChildren ( ) : RecursiveIterator
public callHasChildren ( ) : bool
public __construct ( Traversable $iterator , int $mode = RecursiveIteratorIterator::LEAVES_ONLY , int $flags = 0 )
public current ( ) : mixed
public endChildren ( ) : void
public endIteration ( ) : void
public getDepth ( ) : int
public getInnerIterator ( ) : iterator
public getMaxDepth ( ) : mixed
public getSubIterator ( int $level = ? ) : RecursiveIterator
public key ( ) : mixed
public next ( ) : void
public nextElement ( ) : void
public rewind ( ) : void
public setMaxDepth ( int $max_depth = -1 ) : void
public valid ( ) : bool
/* Geerbte Methoden */
public OuterIterator::getInnerIterator ( ) : Iterator
}

Vordefinierte Konstanten

RecursiveIteratorIterator::LEAVES_ONLY

RecursiveIteratorIterator::SELF_FIRST

RecursiveIteratorIterator::CHILD_FIRST

RecursiveIteratorIterator::CATCH_GET_CHILD

Inhaltsverzeichnis

  • RecursiveIteratorIterator::beginChildren — Begin children
  • RecursiveIteratorIterator::beginIteration — Begin Iteration
  • RecursiveIteratorIterator::callGetChildren — Get children
  • RecursiveIteratorIterator::callHasChildren — Has children
  • RecursiveIteratorIterator::__construct — Construct a RecursiveIteratorIterator
  • RecursiveIteratorIterator::current — Access the current element value
  • RecursiveIteratorIterator::endChildren — End children
  • RecursiveIteratorIterator::endIteration — End Iteration
  • RecursiveIteratorIterator::getDepth — Get the current depth of the recursive iteration
  • RecursiveIteratorIterator::getInnerIterator — Get inner iterator
  • RecursiveIteratorIterator::getMaxDepth — Get max depth
  • RecursiveIteratorIterator::getSubIterator — The current active sub iterator
  • RecursiveIteratorIterator::key — Access the current key
  • RecursiveIteratorIterator::next — Move forward to the next element
  • RecursiveIteratorIterator::nextElement — Next element
  • RecursiveIteratorIterator::rewind — Rewind the iterator to the first element of the top level inner iterator
  • RecursiveIteratorIterator::setMaxDepth — Set max depth
  • RecursiveIteratorIterator::valid — Check whether the current position is valid


Begin children

  • « RecursiveIteratorIterator
  • RecursiveIteratorIterator::beginIteration »
  • PHP Manual
  • RecursiveIteratorIterator
  • Begin children

RecursiveIteratorIterator::beginChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::beginChildren — Begin children

Beschreibung

public RecursiveIteratorIterator::beginChildren ( ) : void

Is called after calling RecursiveIteratorIterator::getChildren(), and its associated RecursiveIteratorIterator::rewind().

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Begin Iteration

  • « RecursiveIteratorIterator::beginChildren
  • RecursiveIteratorIterator::callGetChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Begin Iteration

RecursiveIteratorIterator::beginIteration

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::beginIteration — Begin Iteration

Beschreibung

public RecursiveIteratorIterator::beginIteration ( ) : void

Called when iteration begins (after the first RecursiveIteratorIterator::rewind() call.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Get children

  • « RecursiveIteratorIterator::beginIteration
  • RecursiveIteratorIterator::callHasChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Get children

RecursiveIteratorIterator::callGetChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::callGetChildren — Get children

Beschreibung

public RecursiveIteratorIterator::callGetChildren ( ) : RecursiveIterator

Get children of the current element.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A RecursiveIterator().


Has children

  • « RecursiveIteratorIterator::callGetChildren
  • RecursiveIteratorIterator::__construct »
  • PHP Manual
  • RecursiveIteratorIterator
  • Has children

RecursiveIteratorIterator::callHasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::callHasChildren — Has children

Beschreibung

public RecursiveIteratorIterator::callHasChildren ( ) : bool

Called for each element to test whether it has children.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the element has children, otherwise false


Construct a RecursiveIteratorIterator

  • « RecursiveIteratorIterator::callHasChildren
  • RecursiveIteratorIterator::current »
  • PHP Manual
  • RecursiveIteratorIterator
  • Construct a RecursiveIteratorIterator

RecursiveIteratorIterator::__construct

(PHP 5 >= 5.1.3, PHP 7)

RecursiveIteratorIterator::__construct — Construct a RecursiveIteratorIterator

Beschreibung

public RecursiveIteratorIterator::__construct ( Traversable $iterator , int $mode = RecursiveIteratorIterator::LEAVES_ONLY , int $flags = 0 )

Creates a RecursiveIteratorIterator from a RecursiveIterator.

Parameter-Liste

iterator

The iterator being constructed from. Either a RecursiveIterator or IteratorAggregate.

mode

Optional mode. Possible values are

  • RecursiveIteratorIterator::LEAVES_ONLY - The default. Lists only leaves in iteration.
  • RecursiveIteratorIterator::SELF_FIRST - Lists leaves and parents in iteration with parents coming first.
  • RecursiveIteratorIterator::CHILD_FIRST - Lists leaves and parents in iteration with leaves coming first.

flags

Optional flag. Possible values are RecursiveIteratorIterator::CATCH_GET_CHILD which will then ignore exceptions thrown in calls to RecursiveIteratorIterator::getChildren().

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Iterating a RecursiveIteratorIterator

<?php
$array = array(
    array(
        array(
            array(
                'leaf-0-0-0-0',
                'leaf-0-0-0-1'
            ),
            'leaf-0-0-0'
        ),
        array(
            array(
                'leaf-0-1-0-0',
                'leaf-0-1-0-1'
            ),
            'leaf-0-1-0'
        ),
        'leaf-0-0'
    )
);

$iterator = new RecursiveIteratorIterator(
    new RecursiveArrayIterator($array),
    $mode
);
foreach ($iterator as $key => $leaf) {
    echo "$key => $leaf", PHP_EOL;
}
?>

Output with $mode = RecursiveIteratorIterator::LEAVES_ONLY

0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
0 => leaf-0-0-0
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
0 => leaf-0-1-0
0 => leaf-0-0

Output with $mode = RecursiveIteratorIterator::SELF_FIRST

0 => Array
0 => Array
0 => Array
0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
1 => leaf-0-0-0
1 => Array
0 => Array
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
1 => leaf-0-1-0
2 => leaf-0-0

Output with $mode = RecursiveIteratorIterator::CHILD_FIRST

0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
0 => Array
1 => leaf-0-0-0
0 => Array
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
0 => Array
1 => leaf-0-1-0
1 => Array
2 => leaf-0-0
0 => Array


Access the current element value

  • « RecursiveIteratorIterator::__construct
  • RecursiveIteratorIterator::endChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Access the current element value

RecursiveIteratorIterator::current

(PHP 5, PHP 7)

RecursiveIteratorIterator::current — Access the current element value

Beschreibung

public RecursiveIteratorIterator::current ( ) : mixed
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current elements value.


End children

  • « RecursiveIteratorIterator::current
  • RecursiveIteratorIterator::endIteration »
  • PHP Manual
  • RecursiveIteratorIterator
  • End children

RecursiveIteratorIterator::endChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::endChildren — End children

Beschreibung

public RecursiveIteratorIterator::endChildren ( ) : void

Called when end recursing one level.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


End Iteration

  • « RecursiveIteratorIterator::endChildren
  • RecursiveIteratorIterator::getDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • End Iteration

RecursiveIteratorIterator::endIteration

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::endIteration — End Iteration

Beschreibung

public RecursiveIteratorIterator::endIteration ( ) : void

Called when the iteration ends (when RecursiveIteratorIterator::valid() first returns false.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Get the current depth of the recursive iteration

  • « RecursiveIteratorIterator::endIteration
  • RecursiveIteratorIterator::getInnerIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Get the current depth of the recursive iteration

RecursiveIteratorIterator::getDepth

(PHP 5, PHP 7)

RecursiveIteratorIterator::getDepth — Get the current depth of the recursive iteration

Beschreibung

public RecursiveIteratorIterator::getDepth ( ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current depth of the recursive iteration.


Get inner iterator

  • « RecursiveIteratorIterator::getDepth
  • RecursiveIteratorIterator::getMaxDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Get inner iterator

RecursiveIteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::getInnerIterator — Get inner iterator

Beschreibung

public RecursiveIteratorIterator::getInnerIterator ( ) : iterator

Gets the current active sub iterator.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current active sub iterator.


Get max depth

  • « RecursiveIteratorIterator::getInnerIterator
  • RecursiveIteratorIterator::getSubIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Get max depth

RecursiveIteratorIterator::getMaxDepth

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::getMaxDepth — Get max depth

Beschreibung

public RecursiveIteratorIterator::getMaxDepth ( ) : mixed

Gets the maximum allowable depth.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The maximum accepted depth, or false if any depth is allowed.

Siehe auch

  • RecursiveIteratorIterator::setMaxDepth() - Set max depth


The current active sub iterator

  • « RecursiveIteratorIterator::getMaxDepth
  • RecursiveIteratorIterator::key »
  • PHP Manual
  • RecursiveIteratorIterator
  • The current active sub iterator

RecursiveIteratorIterator::getSubIterator

(PHP 5, PHP 7)

RecursiveIteratorIterator::getSubIterator — The current active sub iterator

Beschreibung

public RecursiveIteratorIterator::getSubIterator ( int $level = ? ) : RecursiveIterator
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

level

Rückgabewerte

The current active sub iterator.


Access the current key

  • « RecursiveIteratorIterator::getSubIterator
  • RecursiveIteratorIterator::next »
  • PHP Manual
  • RecursiveIteratorIterator
  • Access the current key

RecursiveIteratorIterator::key

(PHP 5, PHP 7)

RecursiveIteratorIterator::key — Access the current key

Beschreibung

public RecursiveIteratorIterator::key ( ) : mixed
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current key.


Move forward to the next element

  • « RecursiveIteratorIterator::key
  • RecursiveIteratorIterator::nextElement »
  • PHP Manual
  • RecursiveIteratorIterator
  • Move forward to the next element

RecursiveIteratorIterator::next

(PHP 5, PHP 7)

RecursiveIteratorIterator::next — Move forward to the next element

Beschreibung

public RecursiveIteratorIterator::next ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Next element

  • « RecursiveIteratorIterator::next
  • RecursiveIteratorIterator::rewind »
  • PHP Manual
  • RecursiveIteratorIterator
  • Next element

RecursiveIteratorIterator::nextElement

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::nextElement — Next element

Beschreibung

public RecursiveIteratorIterator::nextElement ( ) : void

Called when the next element is available.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Rewind the iterator to the first element of the top level inner iterator

  • « RecursiveIteratorIterator::nextElement
  • RecursiveIteratorIterator::setMaxDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Rewind the iterator to the first element of the top level inner iterator

RecursiveIteratorIterator::rewind

(PHP 5, PHP 7)

RecursiveIteratorIterator::rewind — Rewind the iterator to the first element of the top level inner iterator

Beschreibung

public RecursiveIteratorIterator::rewind ( ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Set max depth

  • « RecursiveIteratorIterator::rewind
  • RecursiveIteratorIterator::valid »
  • PHP Manual
  • RecursiveIteratorIterator
  • Set max depth

RecursiveIteratorIterator::setMaxDepth

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::setMaxDepth — Set max depth

Beschreibung

public RecursiveIteratorIterator::setMaxDepth ( int $max_depth = -1 ) : void

Set the maximum allowed depth.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

max_depth

The maximum allowed depth. -1 is used for any depth.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Emits an Exception if max_depth is less than -1.


Check whether the current position is valid

  • « RecursiveIteratorIterator::setMaxDepth
  • RecursiveRegexIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Check whether the current position is valid

RecursiveIteratorIterator::valid

(PHP 5, PHP 7)

RecursiveIteratorIterator::valid — Check whether the current position is valid

Beschreibung

public RecursiveIteratorIterator::valid ( ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the current position is valid, otherwise false


The RecursiveRegexIterator class

(PHP 5 >= 5.2.0, PHP 7)

Einführung

This recursive iterator can filter another recursive iterator via a regular expression.

Klassenbeschreibung

RecursiveRegexIterator extends RegexIterator implements RecursiveIterator {
/* Geerbte Konstanten */
const int MATCH = 0 ;
const int GET_MATCH = 1 ;
const int ALL_MATCHES = 2 ;
const int SPLIT = 3 ;
const int REPLACE = 4 ;
const int USE_KEY = 1 ;
/* Methoden */
public __construct ( RecursiveIterator $iterator , string $regex , int $mode = self::MATCH , int $flags = 0 , int $preg_flags = 0 )
public getChildren ( ) : RecursiveRegexIterator
public hasChildren ( ) : bool
/* Geerbte Methoden */
public RecursiveIterator::getChildren ( ) : RecursiveIterator
public RecursiveIterator::hasChildren ( ) : bool
public RegexIterator::accept ( ) : bool
public RegexIterator::getFlags ( ) : int
public RegexIterator::getMode ( ) : int
public RegexIterator::getPregFlags ( ) : int
public RegexIterator::getRegex ( ) : string
public RegexIterator::setFlags ( int $flags ) : void
public RegexIterator::setMode ( int $mode ) : void
public RegexIterator::setPregFlags ( int $preg_flags ) : void
}

Inhaltsverzeichnis

  • RecursiveRegexIterator::__construct — Creates a new RecursiveRegexIterator
  • RecursiveRegexIterator::getChildren — Returns an iterator for the current entry
  • RecursiveRegexIterator::hasChildren — Returns whether an iterator can be obtained for the current entry


Creates a new RecursiveRegexIterator

  • « RecursiveRegexIterator
  • RecursiveRegexIterator::getChildren »
  • PHP Manual
  • RecursiveRegexIterator
  • Creates a new RecursiveRegexIterator

RecursiveRegexIterator::__construct

(PHP 5 >= 5.2.0, PHP 7)

RecursiveRegexIterator::__construct — Creates a new RecursiveRegexIterator

Beschreibung

public RecursiveRegexIterator::__construct ( RecursiveIterator $iterator , string $regex , int $mode = self::MATCH , int $flags = 0 , int $preg_flags = 0 )

Creates a new regular expression iterator.

Parameter-Liste

iterator

The recursive iterator to apply this regex filter to.

regex

The regular expression to match.

mode

Operation mode, see RegexIterator::setMode() for a list of modes.

flags

Special flags, see RegexIterator::setFlags() for a list of available flags.

preg_flags

The regular expression flags. These flags depend on the operation mode parameter:

RegexIterator preg_flags
operation mode | available flags
RecursiveRegexIterator::ALL_MATCHES | See preg_match_all().
RecursiveRegexIterator::GET_MATCH | See preg_match().
RecursiveRegexIterator::MATCH | See preg_match().
RecursiveRegexIterator::REPLACE | none.
RecursiveRegexIterator::SPLIT | See preg_split().

Beispiele

Beispiel #1 RecursiveRegexIterator::__construct() example

Creates a new RegexIterator that filters all strings that start with 'test'.

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
    RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $key1 => $value1) {

    if ($rRegexIterator->hasChildren()) {

        // print all children
        echo "Children: ";
        foreach ($rRegexIterator->getChildren() as $key => $value) {
            echo $value . " ";
        }
        echo "\n";
    } else {
        echo "No children\n";
    }

}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

No children
Children: test4 test5

Siehe auch

  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • preg_match_all() - Führt eine umfassende Suche nach Übereinstimmungen mit regulärem Ausdruck durch
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
  • preg_split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks


Returns an iterator for the current entry

  • « RecursiveRegexIterator::__construct
  • RecursiveRegexIterator::hasChildren »
  • PHP Manual
  • RecursiveRegexIterator
  • Returns an iterator for the current entry

RecursiveRegexIterator::getChildren

(PHP 5 >= 5.2.0, PHP 7)

RecursiveRegexIterator::getChildren — Returns an iterator for the current entry

Beschreibung

public RecursiveRegexIterator::getChildren ( ) : RecursiveRegexIterator

Returns an iterator for the current iterator entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An iterator for the current entry, if it can be iterated over by the inner iterator.

Fehler/Exceptions

An InvalidArgumentException will be thrown if the current entry does not contain a value that can be iterated over by the inner iterator.

Beispiele

Beispiel #1 RecursiveRegexIterator::getChildren() example

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
    RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $key1 => $value1) {

    if ($rRegexIterator->hasChildren()) {

        // print all children
        echo "Children: ";
        foreach ($rRegexIterator->getChildren() as $key => $value) {
            echo $value . " ";
        }
        echo "\n";
    } else {
        echo "No children\n";
    }

}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

No children
Children: test4 test5

Siehe auch

  • RecursiveRegexIterator::hasChildren() - Returns whether an iterator can be obtained for the current entry


Returns whether an iterator can be obtained for the current entry

  • « RecursiveRegexIterator::getChildren
  • RecursiveTreeIterator »
  • PHP Manual
  • RecursiveRegexIterator
  • Returns whether an iterator can be obtained for the current entry

RecursiveRegexIterator::hasChildren

(PHP 5 >= 5.2.0, PHP 7)

RecursiveRegexIterator::hasChildren — Returns whether an iterator can be obtained for the current entry

Beschreibung

public RecursiveRegexIterator::hasChildren ( ) : bool

Returns whether an iterator can be obtained for the current entry. This iterator can be obtained via RecursiveRegexIterator::getChildren().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if an iterator can be obtained for the current entry, otherwise returns false.

Beispiele

Beispiel #1 RecursiveRegexIterator::hasChildren() example

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
    RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $value) {
    var_dump($rRegexIterator->hasChildren());
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)

Siehe auch

  • RecursiveRegexIterator::getChildren() - Returns an iterator for the current entry


The RecursiveTreeIterator class

(PHP 5 >= 5.3.0, PHP 7)

Einführung

Allows iterating over a RecursiveIterator to generate an ASCII graphic tree.

Klassenbeschreibung

RecursiveTreeIterator extends RecursiveIteratorIterator implements OuterIterator {
/* Geerbte Konstanten */
const int RecursiveIteratorIterator::LEAVES_ONLY = 0 ;
const int RecursiveIteratorIterator::SELF_FIRST = 1 ;
const int RecursiveIteratorIterator::CHILD_FIRST = 2 ;
const int RecursiveIteratorIterator::CATCH_GET_CHILD = 16 ;
/* Konstanten */
const int BYPASS_CURRENT = 4 ;
const int BYPASS_KEY = 8 ;
const int PREFIX_LEFT = 0 ;
const int PREFIX_MID_HAS_NEXT = 1 ;
const int PREFIX_MID_LAST = 2 ;
const int PREFIX_END_HAS_NEXT = 3 ;
const int PREFIX_END_LAST = 4 ;
const int PREFIX_RIGHT = 5 ;
/* Methoden */
public beginChildren ( ) : void
public beginIteration ( ) : RecursiveIterator
public callGetChildren ( ) : RecursiveIterator
public callHasChildren ( ) : bool
public __construct ( RecursiveIterator|IteratorAggregate $it , int $flags = RecursiveTreeIterator::BYPASS_KEY , int $cit_flags = CachingIterator::CATCH_GET_CHILD , int $mode = RecursiveIteratorIterator::SELF_FIRST )
public current ( ) : string
public endChildren ( ) : void
public endIteration ( ) : void
public getEntry ( ) : string
public getPostfix ( ) : string
public getPrefix ( ) : string
public key ( ) : string
public next ( ) : void
public nextElement ( ) : void
public rewind ( ) : void
public setPostfix ( string $postfix ) : void
public setPrefixPart ( int $part , string $value ) : void
public valid ( ) : bool
/* Geerbte Methoden */
public RecursiveIteratorIterator::beginChildren ( ) : void
public RecursiveIteratorIterator::beginIteration ( ) : void
public RecursiveIteratorIterator::callGetChildren ( ) : RecursiveIterator
public RecursiveIteratorIterator::callHasChildren ( ) : bool
public RecursiveIteratorIterator::__construct ( Traversable $iterator , int $mode = RecursiveIteratorIterator::LEAVES_ONLY , int $flags = 0 )
public RecursiveIteratorIterator::current ( ) : mixed
public RecursiveIteratorIterator::endChildren ( ) : void
public RecursiveIteratorIterator::endIteration ( ) : void
public RecursiveIteratorIterator::getDepth ( ) : int
public RecursiveIteratorIterator::getInnerIterator ( ) : iterator
public RecursiveIteratorIterator::getMaxDepth ( ) : mixed
public RecursiveIteratorIterator::getSubIterator ( int $level = ? ) : RecursiveIterator
public RecursiveIteratorIterator::key ( ) : mixed
public RecursiveIteratorIterator::next ( ) : void
public RecursiveIteratorIterator::nextElement ( ) : void
public RecursiveIteratorIterator::rewind ( ) : void
public RecursiveIteratorIterator::setMaxDepth ( int $max_depth = -1 ) : void
public RecursiveIteratorIterator::valid ( ) : bool
}

Vordefinierte Konstanten

RecursiveTreeIterator::BYPASS_CURRENT

RecursiveTreeIterator::BYPASS_KEY

RecursiveTreeIterator::PREFIX_LEFT

RecursiveTreeIterator::PREFIX_MID_HAS_NEXT

RecursiveTreeIterator::PREFIX_MID_LAST

RecursiveTreeIterator::PREFIX_END_HAS_NEXT

RecursiveTreeIterator::PREFIX_END_LAST

RecursiveTreeIterator::PREFIX_RIGHT

Inhaltsverzeichnis

  • RecursiveTreeIterator::beginChildren — Begin children
  • RecursiveTreeIterator::beginIteration — Begin iteration
  • RecursiveTreeIterator::callGetChildren — Get children
  • RecursiveTreeIterator::callHasChildren — Has children
  • RecursiveTreeIterator::__construct — Construct a RecursiveTreeIterator
  • RecursiveTreeIterator::current — Get current element
  • RecursiveTreeIterator::endChildren — End children
  • RecursiveTreeIterator::endIteration — End iteration
  • RecursiveTreeIterator::getEntry — Get current entry
  • RecursiveTreeIterator::getPostfix — Get the postfix
  • RecursiveTreeIterator::getPrefix — Get the prefix
  • RecursiveTreeIterator::key — Get the key of the current element
  • RecursiveTreeIterator::next — Move to next element
  • RecursiveTreeIterator::nextElement — Next element
  • RecursiveTreeIterator::rewind — Rewind iterator
  • RecursiveTreeIterator::setPostfix — Set postfix
  • RecursiveTreeIterator::setPrefixPart — Set a part of the prefix
  • RecursiveTreeIterator::valid — Check validity


Begin children

  • « RecursiveTreeIterator
  • RecursiveTreeIterator::beginIteration »
  • PHP Manual
  • RecursiveTreeIterator
  • Begin children

RecursiveTreeIterator::beginChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::beginChildren — Begin children

Beschreibung

public RecursiveTreeIterator::beginChildren ( ) : void

Called when recursing one level down.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Begin iteration

  • « RecursiveTreeIterator::beginChildren
  • RecursiveTreeIterator::callGetChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Begin iteration

RecursiveTreeIterator::beginIteration

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::beginIteration — Begin iteration

Beschreibung

public RecursiveTreeIterator::beginIteration ( ) : RecursiveIterator

Called when iteration begins (after the first RecursiveTreeIterator::rewind() call).

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A RecursiveIterator.


Get children

  • « RecursiveTreeIterator::beginIteration
  • RecursiveTreeIterator::callHasChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Get children

RecursiveTreeIterator::callGetChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::callGetChildren — Get children

Beschreibung

public RecursiveTreeIterator::callGetChildren ( ) : RecursiveIterator

Gets children of the current element.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A RecursiveIterator.


Has children

  • « RecursiveTreeIterator::callGetChildren
  • RecursiveTreeIterator::__construct »
  • PHP Manual
  • RecursiveTreeIterator
  • Has children

RecursiveTreeIterator::callHasChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::callHasChildren — Has children

Beschreibung

public RecursiveTreeIterator::callHasChildren ( ) : bool

Called for each element to test whether it has children.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if there are children, otherwise false


Construct a RecursiveTreeIterator

  • « RecursiveTreeIterator::callHasChildren
  • RecursiveTreeIterator::current »
  • PHP Manual
  • RecursiveTreeIterator
  • Construct a RecursiveTreeIterator

RecursiveTreeIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::__construct — Construct a RecursiveTreeIterator

Beschreibung

public RecursiveTreeIterator::__construct
 ( RecursiveIterator|IteratorAggregate $it
, int $flags = RecursiveTreeIterator::BYPASS_KEY
, int $cit_flags = CachingIterator::CATCH_GET_CHILD
, int $mode = RecursiveIteratorIterator::SELF_FIRST
)

Constructs a new RecursiveTreeIterator from the supplied recursive iterator.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

it

The RecursiveIterator or IteratorAggregate to iterate over.

flags

Flags may be provided which will affect the behavior of some methods. A list of the flags can found under RecursiveTreeIterator predefined constants.

caching_it_flags

Flags to affect the behavior of the RecursiveCachingIterator used internally.

mode

Flags to affect the behavior of the RecursiveIteratorIterator used internally.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Get current element

  • « RecursiveTreeIterator::__construct
  • RecursiveTreeIterator::endChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Get current element

RecursiveTreeIterator::current

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::current — Get current element

Beschreibung

public RecursiveTreeIterator::current ( ) : string

Gets the current element prefixed and postfixed.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current element prefixed and postfixed.


End children

  • « RecursiveTreeIterator::current
  • RecursiveTreeIterator::endIteration »
  • PHP Manual
  • RecursiveTreeIterator
  • End children

RecursiveTreeIterator::endChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::endChildren — End children

Beschreibung

public RecursiveTreeIterator::endChildren ( ) : void

Called when end recursing one level.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


End iteration

  • « RecursiveTreeIterator::endChildren
  • RecursiveTreeIterator::getEntry »
  • PHP Manual
  • RecursiveTreeIterator
  • End iteration

RecursiveTreeIterator::endIteration

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::endIteration — End iteration

Beschreibung

public RecursiveTreeIterator::endIteration ( ) : void

Called when the iteration ends (when RecursiveTreeIterator::valid() first returns false)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Get current entry

  • « RecursiveTreeIterator::endIteration
  • RecursiveTreeIterator::getPostfix »
  • PHP Manual
  • RecursiveTreeIterator
  • Get current entry

RecursiveTreeIterator::getEntry

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::getEntry — Get current entry

Beschreibung

public RecursiveTreeIterator::getEntry ( ) : string

Gets the part of the tree built for the current element.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the part of the tree built for the current element.


Get the postfix

  • « RecursiveTreeIterator::getEntry
  • RecursiveTreeIterator::getPrefix »
  • PHP Manual
  • RecursiveTreeIterator
  • Get the postfix

RecursiveTreeIterator::getPostfix

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::getPostfix — Get the postfix

Beschreibung

public RecursiveTreeIterator::getPostfix ( ) : string

Gets the string to place after the current element.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string to place after the current element.


Get the prefix

  • « RecursiveTreeIterator::getPostfix
  • RecursiveTreeIterator::key »
  • PHP Manual
  • RecursiveTreeIterator
  • Get the prefix

RecursiveTreeIterator::getPrefix

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::getPrefix — Get the prefix

Beschreibung

public RecursiveTreeIterator::getPrefix ( ) : string

Gets the string to place in front of current element

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string to place in front of current element


Get the key of the current element

  • « RecursiveTreeIterator::getPrefix
  • RecursiveTreeIterator::next »
  • PHP Manual
  • RecursiveTreeIterator
  • Get the key of the current element

RecursiveTreeIterator::key

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::key — Get the key of the current element

Beschreibung

public RecursiveTreeIterator::key ( ) : string

Gets the current key prefixed and postfixed.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current key prefixed and postfixed.


Move to next element

  • « RecursiveTreeIterator::key
  • RecursiveTreeIterator::nextElement »
  • PHP Manual
  • RecursiveTreeIterator
  • Move to next element

RecursiveTreeIterator::next

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::next — Move to next element

Beschreibung

public RecursiveTreeIterator::next ( ) : void

Moves forward to the next element.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Next element

  • « RecursiveTreeIterator::next
  • RecursiveTreeIterator::rewind »
  • PHP Manual
  • RecursiveTreeIterator
  • Next element

RecursiveTreeIterator::nextElement

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::nextElement — Next element

Beschreibung

public RecursiveTreeIterator::nextElement ( ) : void

Called when the next element is available.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Rewind iterator

  • « RecursiveTreeIterator::nextElement
  • RecursiveTreeIterator::setPostfix »
  • PHP Manual
  • RecursiveTreeIterator
  • Rewind iterator

RecursiveTreeIterator::rewind

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::rewind — Rewind iterator

Beschreibung

public RecursiveTreeIterator::rewind ( ) : void

Rewinds the iterator to the first element of the top level inner iterator.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Set postfix

  • « RecursiveTreeIterator::rewind
  • RecursiveTreeIterator::setPrefixPart »
  • PHP Manual
  • RecursiveTreeIterator
  • Set postfix

RecursiveTreeIterator::setPostfix

(PHP 5 >= 5.5.3, PHP 7)

RecursiveTreeIterator::setPostfix — Set postfix

Beschreibung

public RecursiveTreeIterator::setPostfix ( string $postfix ) : void

Sets postfix as used in RecursiveTreeIterator::getPostfix().

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

postfix

Rückgabewerte

Es wird kein Wert zurückgegeben.


Set a part of the prefix

  • « RecursiveTreeIterator::setPostfix
  • RecursiveTreeIterator::valid »
  • PHP Manual
  • RecursiveTreeIterator
  • Set a part of the prefix

RecursiveTreeIterator::setPrefixPart

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::setPrefixPart — Set a part of the prefix

Beschreibung

public RecursiveTreeIterator::setPrefixPart ( int $part , string $value ) : void

Sets a part of the prefix used in the graphic tree.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

part

One of the RecursiveTreeIterator::PREFIX_* constants.

value

The value to assign to the part of the prefix specified in part.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Check validity

  • « RecursiveTreeIterator::setPrefixPart
  • RegexIterator »
  • PHP Manual
  • RecursiveTreeIterator
  • Check validity

RecursiveTreeIterator::valid

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::valid — Check validity

Beschreibung

public RecursiveTreeIterator::valid ( ) : bool

Check whether the current position is valid.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the current position is valid, otherwise false


The RegexIterator class

(PHP 5 >= 5.2.0, PHP 7)

Einführung

This iterator can be used to filter another iterator based on a regular expression.

Klassenbeschreibung

RegexIterator extends FilterIterator {
/* Konstanten */
const int MATCH = 0 ;
const int GET_MATCH = 1 ;
const int ALL_MATCHES = 2 ;
const int SPLIT = 3 ;
const int REPLACE = 4 ;
const int USE_KEY = 1 ;
/* Methoden */
public __construct ( Iterator $iterator , string $regex , int $mode = self::MATCH , int $flags = 0 , int $preg_flags = 0 )
public accept ( ) : bool
public getFlags ( ) : int
public getMode ( ) : int
public getPregFlags ( ) : int
public getRegex ( ) : string
public setFlags ( int $flags ) : void
public setMode ( int $mode ) : void
public setPregFlags ( int $preg_flags ) : void
/* Geerbte Methoden */
public abstract FilterIterator::accept ( ) : bool
public FilterIterator::__construct ( Iterator $iterator )
public FilterIterator::current ( ) : mixed
public FilterIterator::getInnerIterator ( ) : Iterator
public FilterIterator::key ( ) : mixed
public FilterIterator::next ( ) : void
public FilterIterator::rewind ( ) : void
public FilterIterator::valid ( ) : bool
}

Vordefinierte Konstanten

RegexIterator operation modes

RegexIterator::ALL_MATCHES

Return all matches for the current entry (see preg_match_all()).

RegexIterator::GET_MATCH

Return the first match for the current entry (see preg_match()).

RegexIterator::MATCH

Only execute match (filter) for the current entry (see preg_match()).

RegexIterator::REPLACE

Replace the current entry (see preg_replace(); Not fully implemented yet)

RegexIterator::SPLIT

Returns the split values for the current entry (see preg_split()).

RegexIterator Flags

RegexIterator::USE_KEY

Special flag: Match the entry key instead of the entry value.

Inhaltsverzeichnis

  • RegexIterator::accept — Get accept status
  • RegexIterator::__construct — Create a new RegexIterator
  • RegexIterator::getFlags — Get flags
  • RegexIterator::getMode — Returns operation mode
  • RegexIterator::getPregFlags — Returns the regular expression flags
  • RegexIterator::getRegex — Returns current regular expression
  • RegexIterator::setFlags — Sets the flags
  • RegexIterator::setMode — Sets the operation mode
  • RegexIterator::setPregFlags — Sets the regular expression flags


Get accept status

  • « RegexIterator
  • RegexIterator::__construct »
  • PHP Manual
  • RegexIterator
  • Get accept status

RegexIterator::accept

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::accept — Get accept status

Beschreibung

public RegexIterator::accept ( ) : bool

Matches (string) RegexIterator::current()
(or RegexIterator::key() if the
RegexIterator::USE_KEY flag is set)
against the regular expression.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if a match, false otherwise.

Beispiele

Beispiel #1 RegexIterator::accept() example

This example shows that only items matching the regular expression are accepted.

<?php
$names = new ArrayIterator(array('Ann', 'Bob', 'Charlie', 'David'));
$filter = new RegexIterator($names, '/^[B-D]/');
foreach ($filter as $name) {
    echo $name . PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Bob
Charlie
David

Siehe auch

  • RegexIterator constants
  • RegexIterator::setFlags() - Sets the flags


Create a new RegexIterator

  • « RegexIterator::accept
  • RegexIterator::getFlags »
  • PHP Manual
  • RegexIterator
  • Create a new RegexIterator

RegexIterator::__construct

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::__construct — Create a new RegexIterator

Beschreibung

public RegexIterator::__construct ( Iterator $iterator , string $regex , int $mode = self::MATCH , int $flags = 0 , int $preg_flags = 0 )

Create a new RegexIterator which filters an Iterator using a regular expression.

Parameter-Liste

iterator

The iterator to apply this regex filter to.

regex

The regular expression to match.

mode

Operation mode, see RegexIterator::setMode() for a list of modes.

flags

Special flags, see RegexIterator::setFlags() for a list of available flags.

preg_flags

The regular expression flags. These flags depend on the operation mode parameter:

RegexIterator preg_flags
operation mode | available flags
RegexIterator::ALL_MATCHES | See preg_match_all().
RegexIterator::GET_MATCH | See preg_match().
RegexIterator::MATCH | See preg_match().
RegexIterator::REPLACE | none.
RegexIterator::SPLIT | See preg_split().

Fehler/Exceptions

Throws an InvalidArgumentException if the regex argument is invalid.

Beispiele

Beispiel #1 RegexIterator::__construct() example

Creates a new RegexIterator that filters all strings that start with 'test'.

<?php
$arrayIterator = new ArrayIterator(array('test 1', 'another test', 'test 123'));
$regexIterator = new RegexIterator($arrayIterator, '/^test/');

foreach ($regexIterator as $value) {
    echo $value . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

test 1
test 123

Siehe auch

  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • preg_match_all() - Führt eine umfassende Suche nach Übereinstimmungen mit regulärem Ausdruck durch
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
  • preg_split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks


Get flags

  • « RegexIterator::__construct
  • RegexIterator::getMode »
  • PHP Manual
  • RegexIterator
  • Get flags

RegexIterator::getFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::getFlags — Get flags

Beschreibung

public RegexIterator::getFlags ( ) : int

Returns the flags, see RegexIterator::setFlags() for a list of available flags.

Rückgabewerte

Returns the set flags.

Beispiele

Beispiel #1 RegexIterator::getFlags() example

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/');
$regexIterator->setFlags(RegexIterator::USE_KEY);

if ($regexIterator->getFlags() & RegexIterator::USE_KEY) {
    echo 'Filtering based on the array keys.';
} else {
    echo 'Filtering based on the array values.';
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Filtering based on the array keys.

Siehe auch

  • RegexIterator::setFlags() - Sets the flags


Returns operation mode

  • « RegexIterator::getFlags
  • RegexIterator::getPregFlags »
  • PHP Manual
  • RegexIterator
  • Returns operation mode

RegexIterator::getMode

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::getMode — Returns operation mode

Beschreibung

public RegexIterator::getMode ( ) : int

Returns the operation mode, see RegexIterator::setMode() for the list of operation modes.

Rückgabewerte

Returns the operation mode.

Beispiele

Beispiel #1 RegexIterator::getMode() example

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^[a-z]+/', RegexIterator::GET_MATCH);

$mode = $regexIterator->getMode();
if ($mode & RegexIterator::GET_MATCH) {
    echo 'Getting the match for each item.';
} elseif ($mode & RegexIterator::ALL_MATCHES) {
    echo 'Getting all matches for each item.';
} elseif ($mode & RegexIterator::MATCH) {
    echo 'Getting each item if it matches.';
} elseif ($mode & RegexIterator::SPLIT) {
    echo 'Getting split pieces of each.';
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Getting the match for each item.

Siehe auch

  • RegexIterator::setMode() - Sets the operation mode


Returns the regular expression flags

  • « RegexIterator::getMode
  • RegexIterator::getRegex »
  • PHP Manual
  • RegexIterator
  • Returns the regular expression flags

RegexIterator::getPregFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::getPregFlags — Returns the regular expression flags

Beschreibung

public RegexIterator::getPregFlags ( ) : int

Returns the regular expression flags, see RegexIterator::__construct() for the list of flags.

Rückgabewerte

Returns a bitmask of the regular expression flags.

Beispiele

Beispiel #1 RegexIterator::getPregFlags() example

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/\s/', RegexIterator::SPLIT);
$regexIterator->setPregFlags(PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE);

if ($regexIterator->getPregFlags() & PREG_SPLIT_NO_EMPTY) {
    echo 'Ignoring empty pieces';
} else {
    echo 'Not ignoring empty pieces';
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ignoring empty pieces

Siehe auch

  • RegexIterator::setPregFlags() - Sets the regular expression flags


Returns current regular expression

  • « RegexIterator::getPregFlags
  • RegexIterator::setFlags »
  • PHP Manual
  • RegexIterator
  • Returns current regular expression

RegexIterator::getRegex

(PHP 5 >= 5.4.0, PHP 7)

RegexIterator::getRegex — Returns current regular expression

Beschreibung

public RegexIterator::getRegex ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Sets the flags

  • « RegexIterator::getRegex
  • RegexIterator::setMode »
  • PHP Manual
  • RegexIterator
  • Sets the flags

RegexIterator::setFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::setFlags — Sets the flags

Beschreibung

public RegexIterator::setFlags ( int $flags ) : void

Sets the flags.

Parameter-Liste

flags

The flags to set, a bitmask of class constants.

The available flags are listed below. The actual meanings of these flags are described in the predefined constants.

RegexIterator flags
value | constant
1 | RegexIterator::USE_KEY

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 RegexIterator::setFlags() example

Creates a new RegexIterator that filters all entries whose key starts with 'test'.

<?php
$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/');
$regexIterator->setFlags(RegexIterator::USE_KEY);

foreach ($regexIterator as $key => $value) {
    echo $key . ' => ' . $value . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

teststr2 => another test

Siehe auch

  • RegexIterator::getFlags() - Get flags


Sets the operation mode

  • « RegexIterator::setFlags
  • RegexIterator::setPregFlags »
  • PHP Manual
  • RegexIterator
  • Sets the operation mode

RegexIterator::setMode

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::setMode — Sets the operation mode

Beschreibung

public RegexIterator::setMode ( int $mode ) : void

Sets the operation mode.

Parameter-Liste

mode

The operation mode.

The available modes are listed below. The actual meanings of these modes are described in the predefined constants.

RegexIterator modes
value | constant
0 | RegexIterator::MATCH
1 | RegexIterator::GET_MATCH
2 | RegexIterator::ALL_MATCHES
3 | RegexIterator::SPLIT
4 | RegexIterator::REPLACE

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 RegexIterator::setMode() example

<?php
$test = array ('str1' => 'test 1', 'test str2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
// Filter everything that starts with 'test ' followed by one or more numbers.
$regexIterator = new RegexIterator($arrayIterator, '/^test (\d+)/');
// Operation mode: Replace actual value with the matches
$regexIterator->setMode(RegexIterator::GET_MATCH);

foreach ($regexIterator as $key => $value) {
    // print out the matched number(s)
    echo $key . ' => ' . $value[1] . PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

str1 => 1
str3 => 123

Siehe auch

  • RegexIterator::getMode() - Returns operation mode


Sets the regular expression flags

  • « RegexIterator::setMode
  • Interfaces »
  • PHP Manual
  • RegexIterator
  • Sets the regular expression flags

RegexIterator::setPregFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::setPregFlags — Sets the regular expression flags

Beschreibung

public RegexIterator::setPregFlags ( int $preg_flags ) : void

Sets the regular expression flags.

Parameter-Liste

preg_flags

The regular expression flags. See RegexIterator::__construct() for an overview of available flags.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 RegexIterator::setPregFlags() example

Creates a new RegexIterator that filters all entries with where the array key starts with 'test'.

<?php
$test = array ('test 1', 'another test', 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/', RegexIterator::GET_MATCH);

$regexIterator->setPregFlags(PREG_OFFSET_CAPTURE);

foreach ($regexIterator as $key => $value) {
    var_dump($value);
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "test"
    [1]=>
    int(0)
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "test"
    [1]=>
    int(0)
  }
}

Siehe auch

  • RegexIterator::getPregFlags() - Returns the regular expression flags


Interfaces

Inhaltsverzeichnis

  • Countable
  • OuterIterator
  • RecursiveIterator
  • SeekableIterator

SPL bietet einige Interfaces an.

Siehe auch Vordefinierte Interfaces und Klassen

Liste von Interfaces

  • Countable
  • OuterIterator
  • RecursiveIterator
  • SeekableIterator
  • SplObserver
  • SplSubject


The Countable interface

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Classes implementing Countable can be used with the count() function.

Interface-Übersicht

Countable {
/* Methoden */
abstract public count ( ) : int
}

Inhaltsverzeichnis

  • Countable::count — Zählt die Elemente eines Objekts


Zählt die Elemente eines Objekts

  • « Countable
  • OuterIterator »
  • PHP Manual
  • Countable
  • Zählt die Elemente eines Objekts

Countable::count

(PHP 5 >= 5.1.0, PHP 7)

Countable::count — Zählt die Elemente eines Objekts

Beschreibung

abstract public Countable::count ( ) : int

Die Methode wird ausgeführt, wenn die Funktion count() auf einem Objekt aufgerufen wird, dass Countable implementiert.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Die benutzerdefinierte Anzahl als int.

Hinweis:

Der Rückgabewert wird in einen int-Wert umgewandelt.

Beispiele

Beispiel #1 Countable::count()-Beispiel

<?php
class myCounter implements Countable {
    private $count = 0;
    public function count() {
        return ++$this->$count;
    }
}

$counter = new myCounter;

for($i=0; $i<10; ++$i) {
    echo "Ich wurde " . count($counter) . " mal ge-count()ed\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ich wurde 1 mal ge-count()ed
Ich wurde 2 mal ge-count()ed
Ich wurde 3 mal ge-count()ed
Ich wurde 4 mal ge-count()ed
Ich wurde 5 mal ge-count()ed
Ich wurde 6 mal ge-count()ed
Ich wurde 7 mal ge-count()ed
Ich wurde 8 mal ge-count()ed
Ich wurde 9 mal ge-count()ed
Ich wurde 10 mal ge-count()ed


The OuterIterator interface

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Classes implementing OuterIterator can be used to iterate over iterators.

Interface-Übersicht

OuterIterator extends Iterator {
/* Methoden */
public getInnerIterator ( ) : Iterator
/* Geerbte Methoden */
abstract public Iterator::current ( ) : mixed
abstract public Iterator::key ( ) : scalar
abstract public Iterator::next ( ) : void
abstract public Iterator::rewind ( ) : void
abstract public Iterator::valid ( ) : bool
}

Inhaltsverzeichnis

  • OuterIterator::getInnerIterator — Returns the inner iterator for the current entry


Returns the inner iterator for the current entry

  • « OuterIterator
  • RecursiveIterator »
  • PHP Manual
  • OuterIterator
  • Returns the inner iterator for the current entry

OuterIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

OuterIterator::getInnerIterator — Returns the inner iterator for the current entry

Beschreibung

public OuterIterator::getInnerIterator ( ) : Iterator

Returns the inner iterator for the current iterator entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The inner iterator for the current entry.


The RecursiveIterator interface

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Classes implementing RecursiveIterator can be used to iterate over iterators recursively.

Interface-Übersicht

RecursiveIterator extends Iterator {
/* Methoden */
public getChildren ( ) : RecursiveIterator
public hasChildren ( ) : bool
/* Geerbte Methoden */
abstract public Iterator::current ( ) : mixed
abstract public Iterator::key ( ) : scalar
abstract public Iterator::next ( ) : void
abstract public Iterator::rewind ( ) : void
abstract public Iterator::valid ( ) : bool
}

Inhaltsverzeichnis

  • RecursiveIterator::getChildren — Returns an iterator for the current entry
  • RecursiveIterator::hasChildren — Returns if an iterator can be created for the current entry


Returns an iterator for the current entry

  • « RecursiveIterator
  • RecursiveIterator::hasChildren »
  • PHP Manual
  • RecursiveIterator
  • Returns an iterator for the current entry

RecursiveIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIterator::getChildren — Returns an iterator for the current entry

Beschreibung

public RecursiveIterator::getChildren ( ) : RecursiveIterator

Returns an iterator for the current iterator entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An iterator for the current entry.

Siehe auch

  • RecursiveIterator::hasChildren() - Returns if an iterator can be created for the current entry


Returns if an iterator can be created for the current entry

  • « RecursiveIterator::getChildren
  • SeekableIterator »
  • PHP Manual
  • RecursiveIterator
  • Returns if an iterator can be created for the current entry

RecursiveIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIterator::hasChildren — Returns if an iterator can be created for the current entry

Beschreibung

public RecursiveIterator::hasChildren ( ) : bool

Returns if an iterator can be created for the current entry. RecursiveIterator::getChildren().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the current entry can be iterated over, otherwise returns false.

Siehe auch

  • RecursiveIterator::getChildren() - Returns an iterator for the current entry


The SeekableIterator interface

(PHP 5 >= 5.1.0, PHP 7)

Einführung

The Seekable iterator.

Interface-Übersicht

SeekableIterator extends Iterator {
/* Methoden */
abstract public seek ( int $position ) : void
/* Geerbte Methoden */
abstract public Iterator::current ( ) : mixed
abstract public Iterator::key ( ) : scalar
abstract public Iterator::next ( ) : void
abstract public Iterator::rewind ( ) : void
abstract public Iterator::valid ( ) : bool
}

Beispiel #1 Basic usage

This example demonstrates creating a custom SeekableIterator, seeking to a position and handling an invalid position.

<?php
class MySeekableIterator implements SeekableIterator {

    private $position;

    private $array = array(
        "first element",
        "second element",
        "third element",
        "fourth element"
    );

    /* Method required for SeekableIterator interface */

    public function seek($position) {
      if (!isset($this->array[$position])) {
          throw new OutOfBoundsException("invalid seek position ($position)");
      }

      $this->position = $position;
    }

    /* Methods required for Iterator interface */

    public function rewind() {
        $this->position = 0;
    }

    public function current() {
        return $this->array[$this->position];
    }

    public function key() {
        return $this->position;
    }

    public function next() {
        ++$this->position;
    }

    public function valid() {
        return isset($this->array[$this->position]);
    }
}

try {

    $it = new MySeekableIterator;
    echo $it->current(), "\n";

    $it->seek(2);
    echo $it->current(), "\n";

    $it->seek(1);
    echo $it->current(), "\n";

    $it->seek(10);

} catch (OutOfBoundsException $e) {
    echo $e->getMessage();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

first element
third element
second element
invalid seek position (10)

Inhaltsverzeichnis

  • SeekableIterator::seek — Seeks to a position


Seeks to a position

  • « SeekableIterator
  • Exceptions »
  • PHP Manual
  • SeekableIterator
  • Seeks to a position

SeekableIterator::seek

(PHP 5 >= 5.1.0, PHP 7)

SeekableIterator::seek — Seeks to a position

Beschreibung

abstract public SeekableIterator::seek ( int $position ) : void

Seeks to a given position in the iterator.

Parameter-Liste

position

The position to seek to.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Implementations should throw an OutOfBoundsException if the position is not seekable.

Beispiele

Beispiel #1 SeekableIterator::seek() example

Seek to the item at position 3 in the iterator (ArrayIterator implements SeekableIterator).

<?php
$array = array("apple", "banana", "cherry", "damson", "elderberry");
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

damson

Siehe auch

  • SeekableIterator
  • Iterator


Exceptions

Inhaltsverzeichnis

  • BadFunctionCallException
  • BadMethodCallException
  • DomainException
  • InvalidArgumentException
  • LengthException
  • LogicException
  • OutOfBoundsException
  • OutOfRangeException
  • OverflowException
  • RangeException
  • RuntimeException
  • UnderflowException
  • UnexpectedValueException

SPL bietet einige Standard-Exceptions an.

Siehe auch Vordefinierte Exceptions

SPL Exceptions Class Tree

  • LogicException (extends Exception)
    • BadFunctionCallException
      • BadMethodCallException
    • DomainException
    • InvalidArgumentException
    • LengthException
    • OutOfRangeException
  • RuntimeException (extends Exception)
    • OutOfBoundsException
    • OverflowException
    • RangeException
    • UnderflowException
    • UnexpectedValueException


The BadFunctionCallException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception thrown if a callback refers to an undefined function or if some arguments are missing.

Klassenbeschreibung

BadFunctionCallException extends LogicException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The BadMethodCallException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception thrown if a callback refers to an undefined method or if some arguments are missing.

Klassenbeschreibung

BadMethodCallException extends BadFunctionCallException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The DomainException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception thrown if a value does not adhere to a defined valid data domain.

Klassenbeschreibung

DomainException extends LogicException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The InvalidArgumentException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception thrown if an argument is not of the expected type.

Klassenbeschreibung

InvalidArgumentException extends LogicException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The LengthException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception thrown if a length is invalid.

Klassenbeschreibung

LengthException extends LogicException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The LogicException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception that represents error in the program logic. This kind of exception should lead directly to a fix in your code.

Klassenbeschreibung

LogicException extends Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The OutOfBoundsException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception thrown if a value is not a valid key. This represents errors that cannot be detected at compile time.

Klassenbeschreibung

OutOfBoundsException extends RuntimeException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The OutOfRangeException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception thrown when an illegal index was requested. This represents errors that should be detected at compile time.

Klassenbeschreibung

OutOfRangeException extends LogicException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The OverflowException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception thrown when adding an element to a full container.

Klassenbeschreibung

OverflowException extends RuntimeException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The RangeException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception thrown to indicate range errors during program execution. Normally this means there was an arithmetic error other than under/overflow. This is the runtime version of DomainException.

Klassenbeschreibung

RangeException extends RuntimeException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The RuntimeException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception thrown if an error which can only be found on runtime occurs.

Klassenbeschreibung

RuntimeException extends Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The UnderflowException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception thrown when performing an invalid operation on an empty container, such as removing an element.

Klassenbeschreibung

UnderflowException extends RuntimeException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The UnexpectedValueException class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

Exception thrown if a value does not match with a set of values. Typically this happens when a function calls another function and expects the return value to be of a certain type or value not including arithmetic or buffer related errors.

Klassenbeschreibung

UnexpectedValueException extends RuntimeException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
public Exception::__construct ( string $message = "" , int $code = 0 , Throwable $previous = null )
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


SPL Funktionen

Inhaltsverzeichnis

  • class_implements — Return the interfaces which are implemented by the given class or interface
  • class_parents — Return the parent classes of the given class
  • class_uses — Return the traits used by the given class
  • iterator_apply — Call a function for every element in an iterator
  • iterator_count — Count the elements in an iterator
  • iterator_to_array — Copy the iterator into an array
  • spl_autoload_call — Try all registered __autoload() functions to load the requested class
  • spl_autoload_extensions — Registriert und gibt die voreingestellten Dateiendungen für spl_autoload zurück
  • spl_autoload_functions — Liefert alle registrierten __autoload() Funktionen
  • spl_autoload_register — Register given function as __autoload() implementation
  • spl_autoload_unregister — Unregister given function as __autoload() implementation
  • spl_autoload — Default implementation for __autoload()
  • spl_classes — Return available SPL classes
  • spl_object_hash — Return hash id for given object
  • spl_object_id — Return the integer object handle for given object


Return the interfaces which are implemented by the given class or interface

  • « SPL Funktionen
  • class_parents »
  • PHP Manual
  • SPL Funktionen
  • Return the interfaces which are implemented by the given class or interface

class_implements

(PHP 5, PHP 7)

class_implements — Return the interfaces which are implemented by the given class or interface

Beschreibung

class_implements ( mixed $class , bool $autoload = true ) : array

This function returns an array with the names of the interfaces that the given class and its parents implement.

Parameter-Liste

class

An object (class instance) or a string (class or interface name).

autoload

Whether to allow this function to load the class automatically through the __autoload() magic method.

Rückgabewerte

An array on success, or false on error.

Beispiele

Beispiel #1 class_implements() example

<?php

interface foo { }
class bar implements foo {}

print_r(class_implements(new bar));

// since PHP 5.1.0 you may also specify the parameter as a string
print_r(class_implements('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// use __autoload to load the 'not_loaded' class
print_r(class_implements('not_loaded', true));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [foo] => foo
)

Array
(
    [interface_of_not_loaded] => interface_of_not_loaded
)

Siehe auch

  • class_parents() - Return the parent classes of the given class
  • get_declared_interfaces() - Gibt ein Array mit allen definierten Interfaces zurück


Return the parent classes of the given class

  • « class_implements
  • class_uses »
  • PHP Manual
  • SPL Funktionen
  • Return the parent classes of the given class

class_parents

(PHP 5, PHP 7)

class_parents — Return the parent classes of the given class

Beschreibung

class_parents ( mixed $class , bool $autoload = true ) : array

This function returns an array with the name of the parent classes of the given class.

Parameter-Liste

class

An object (class instance) or a string (class name).

autoload

Whether to allow this function to load the class automatically through the __autoload() magic method.

Rückgabewerte

An array on success, or false on error.

Beispiele

Beispiel #1 class_parents() example

<?php

class foo { }
class bar extends foo {}

print_r(class_parents(new bar));

// since PHP 5.1.0 you may also specify the parameter as a string
print_r(class_parents('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// use __autoload to load the 'not_loaded' class
print_r(class_parents('not_loaded', true));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [foo] => foo
)

Array
(
    [parent_of_not_loaded] => parent_of_not_loaded
)

Siehe auch

  • class_implements() - Return the interfaces which are implemented by the given class or interface


Return the traits used by the given class

  • « class_parents
  • iterator_apply »
  • PHP Manual
  • SPL Funktionen
  • Return the traits used by the given class

class_uses

(PHP 5 >= 5.4.0, PHP 7)

class_uses — Return the traits used by the given class

Beschreibung

class_uses ( mixed $class , bool $autoload = true ) : array

This function returns an array with the names of the traits that the given class uses. This does however not include any traits used by a parent class.

Parameter-Liste

class

An object (class instance) or a string (class name).

autoload

Whether to allow this function to load the class automatically through the __autoload() magic method.

Rückgabewerte

An array on success, or false on error.

Beispiele

Beispiel #1 class_uses() example

<?php

trait foo { }
class bar {
  use foo;
}

print_r(class_uses(new bar));

print_r(class_uses('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// use __autoload to load the 'not_loaded' class
print_r(class_uses('not_loaded', true));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [foo] => foo
)

Array
(
    [foo] => foo
)

Array
(
    [trait_of_not_loaded] => trait_of_not_loaded
)

Siehe auch

  • class_parents() - Return the parent classes of the given class
  • get_declared_traits() - Returns an array of all declared traits


Call a function for every element in an iterator

  • « class_uses
  • iterator_count »
  • PHP Manual
  • SPL Funktionen
  • Call a function for every element in an iterator

iterator_apply

(PHP 5 >= 5.1.0, PHP 7)

iterator_apply — Call a function for every element in an iterator

Beschreibung

iterator_apply ( Traversable $iterator , callable $function , array $args = null ) : int

Calls a function for every element in an iterator.

Parameter-Liste

iterator

The iterator object to iterate over.

function

The callback function to call on every element. This function only receives the given args, so it is nullary by default. If count($args) === 3, for instance, the callback function is ternary.

Hinweis: The function must return true in order to continue iterating over the iterator.

args

An array of arguments; each element of args is passed to the callback function as separate argument.

Rückgabewerte

Returns the iteration count.

Beispiele

Beispiel #1 iterator_apply() example

<?php
function print_caps(Iterator $iterator) {
    echo strtoupper($iterator->current()) . "\n";
    return TRUE;
}

$it = new ArrayIterator(array("Apples", "Bananas", "Cherries"));
iterator_apply($it, "print_caps", array($it));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

APPLES
BANANAS
CHERRIES

Siehe auch

  • array_walk() - Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an


Count the elements in an iterator

  • « iterator_apply
  • iterator_to_array »
  • PHP Manual
  • SPL Funktionen
  • Count the elements in an iterator

iterator_count

(PHP 5 >= 5.1.0, PHP 7)

iterator_count — Count the elements in an iterator

Beschreibung

iterator_count ( Traversable $iterator ) : int

Count the elements in an iterator. iterator_count() is not guaranteed to retain the current position of the iterator.

Parameter-Liste

iterator

The iterator being counted.

Rückgabewerte

The number of elements in iterator.

Beispiele

Beispiel #1 iterator_count() example

<?php
$iterator = new ArrayIterator(array('recipe'=>'pancakes', 'egg', 'milk', 'flour'));
var_dump(iterator_count($iterator));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(4)

Beispiel #2 iterator_count() modifies position

<?php
$iterator = new ArrayIterator(['one', 'two', 'three']);
var_dump($iterator->current());
var_dump(iterator_count($iterator));
var_dump($iterator->current());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "one"
int(3)
NULL

Beispiel #3 iterator_count() in foreach loops

<?php
$iterator = new ArrayIterator(['one', 'two', 'three']);
foreach ($iterator as $key => $value) {
    echo "$key: $value (", iterator_count($iterator), ")\n";
}?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0: one (3)


Copy the iterator into an array

  • « iterator_count
  • spl_autoload_call »
  • PHP Manual
  • SPL Funktionen
  • Copy the iterator into an array

iterator_to_array

(PHP 5 >= 5.1.0, PHP 7)

iterator_to_array — Copy the iterator into an array

Beschreibung

iterator_to_array ( Traversable $iterator , bool $use_keys = true ) : array

Copy the elements of an iterator into an array.

Parameter-Liste

iterator

The iterator being copied.

use_keys

Whether to use the iterator element keys as index.

In PHP 5.5 and later, if a key is an array or object, a warning will be generated. null keys will be converted to an empty string, float keys will be truncated to their int counterpart, resource keys will generate a warning and be converted to their resource ID, and bool keys will be converted to integers.

Hinweis:

If this parameter is not set or set to true, duplicate keys will be overwritten. The last value with a given key will be in the returned array. Set this parameter to false to get all the values in any case.

Rückgabewerte

An array containing the elements of the iterator.

Beispiele

Beispiel #1 iterator_to_array() example

<?php
$iterator = new ArrayIterator(array('recipe'=>'pancakes', 'egg', 'milk', 'flour'));
var_dump(iterator_to_array($iterator, true));
var_dump(iterator_to_array($iterator, false));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  ["recipe"]=>
  string(8) "pancakes"
  [0]=>
  string(3) "egg"
  [1]=>
  string(4) "milk"
  [2]=>
  string(5) "flour"
}
array(4) {
  [0]=>
  string(8) "pancakes"
  [1]=>
  string(3) "egg"
  [2]=>
  string(4) "milk"
  [3]=>
  string(5) "flour"
}


Try all registered __autoload() functions to load the requested class

  • « iterator_to_array
  • spl_autoload_extensions »
  • PHP Manual
  • SPL Funktionen
  • Try all registered __autoload() functions to load the requested class

spl_autoload_call

(PHP 5 >= 5.1.0, PHP 7)

spl_autoload_call — Try all registered __autoload() functions to load the requested class

Beschreibung

spl_autoload_call ( string $class_name ) : void

This function can be used to manually search for a class or interface using the registered __autoload functions.

Parameter-Liste

class_name

The class name being searched.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Registriert und gibt die voreingestellten Dateiendungen für spl_autoload zurück

  • « spl_autoload_call
  • spl_autoload_functions »
  • PHP Manual
  • SPL Funktionen
  • Registriert und gibt die voreingestellten Dateiendungen für spl_autoload zurück

spl_autoload_extensions

(PHP 5 >= 5.1.0, PHP 7)

spl_autoload_extensions — Registriert und gibt die voreingestellten Dateiendungen für spl_autoload zurück

Beschreibung

spl_autoload_extensions ( string $file_extensions = ? ) : string

Diese Funktion kann die Dateiendungen, die in der __autoload() Fallback-Funktion spl_autoload() verwendet werden, prüfen und ändern.

Hinweis: Es sollte sich kein Leerzeichen zwischen den definierten Dateierweiterung befinden.

Parameter-Liste

file_extensions

Wenn die Funktion ohne Parameter aufgerufen wird, werden alle aktuellen Endungen Komma separiert zurück gegeben. Um die Liste mit den Dateiendungen zu modifizieren, einfach die Funktion noch einmal aufrufen mit einer neuen Liste von Dateiendungen, die Komma separiert in einer einzigen Zeichenkette übergeben wird.

Rückgabewerte

Eine durch Kommata getrennte Liste mit den Voreingestellten Dateiendungen für spl_autoload().

Beispiele

Beispiel #1 spl_autoload_extensions() Beispiel

<?php
spl_autoload_extensions(".php,.inc");
?>


Liefert alle registrierten __autoload() Funktionen

  • « spl_autoload_extensions
  • spl_autoload_register »
  • PHP Manual
  • SPL Funktionen
  • Liefert alle registrierten __autoload() Funktionen

spl_autoload_functions

(PHP 5 >= 5.1.0, PHP 7)

spl_autoload_functions — Liefert alle registrierten __autoload() Funktionen

Beschreibung

spl_autoload_functions ( ) : array

Gibt alle registrierten __autoload()-Funktionen zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Ein Array aller registrierten __autoload-Funktionen. Ist die Autoload-Schlange nicht aktiviert, wird false zurück gegeben. Ist keine Funktion registriert, wird ein leeres Array zurück gegeben.


Register given function as __autoload() implementation

  • « spl_autoload_functions
  • spl_autoload_unregister »
  • PHP Manual
  • SPL Funktionen
  • Register given function as __autoload() implementation

spl_autoload_register

(PHP 5 >= 5.1.0, PHP 7)

spl_autoload_register — Register given function as __autoload() implementation

Beschreibung

spl_autoload_register ( callable $autoload_function = ? , bool $throw = true , bool $prepend = false ) : bool

Register a function with the spl provided __autoload queue. If the queue is not yet activated it will be activated.

If your code has an existing __autoload() function then this function must be explicitly registered on the __autoload queue. This is because spl_autoload_register() will effectively replace the engine cache for the __autoload() function by either spl_autoload() or spl_autoload_call().

If there must be multiple autoload functions, spl_autoload_register() allows for this. It effectively creates a queue of autoload functions, and runs through each of them in the order they are defined. By contrast, __autoload() may only be defined once.

Parameter-Liste

autoload_function

The autoload function being registered. If no parameter is provided, then the default implementation of spl_autoload() will be registered.

throw

This parameter specifies whether spl_autoload_register() should throw exceptions when the autoload_function cannot be registered.

prepend

If true, spl_autoload_register() will prepend the autoloader on the autoload queue instead of appending it.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 spl_autoload_register() as a replacement for an __autoload() function

<?php

// function __autoload($class) {
//     include 'classes/' . $class . '.class.php';
// }

function my_autoloader($class) {
    include 'classes/' . $class . '.class.php';
}

spl_autoload_register('my_autoloader');

// Or, using an anonymous function as of PHP 5.3.0
spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

?>

Beispiel #2 spl_autoload_register() example where the class is not loaded

<?php

namespace Foobar;

class Foo {
    static public function test($name) {
        print '[['. $name .']]';
    }
}

spl_autoload_register(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0

new InexistentClass;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

[[Foobar\InexistentClass]]
Fatal error: Class 'Foobar\InexistentClass' not found in ...

Siehe auch

  • __autoload() - Attempt to load undefined class


Unregister given function as __autoload() implementation

  • « spl_autoload_register
  • spl_autoload »
  • PHP Manual
  • SPL Funktionen
  • Unregister given function as __autoload() implementation

spl_autoload_unregister

(PHP 5 >= 5.1.0, PHP 7)

spl_autoload_unregister — Unregister given function as __autoload() implementation

Beschreibung

spl_autoload_unregister ( mixed $autoload_function ) : bool

Removes a function from the autoload queue. If the queue is activated and empty after removing the given function then it will be deactivated.

When this function results in the queue being deactivated, any __autoload function that previously existed will not be reactivated.

Parameter-Liste

autoload_function

The autoload function being unregistered.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Default implementation for __autoload()

  • « spl_autoload_unregister
  • spl_classes »
  • PHP Manual
  • SPL Funktionen
  • Default implementation for __autoload()

spl_autoload

(PHP 5 >= 5.1.0, PHP 7)

spl_autoload — Default implementation for __autoload()

Beschreibung

spl_autoload ( string $class_name , string $file_extensions = spl_autoload_extensions() ) : void

This function is intended to be used as a default implementation for __autoload(). If nothing else is specified and spl_autoload_register() is called without any parameters then this function will be used for any later call to __autoload().

Parameter-Liste

class_name

The lowercased name of the class (and namespace) being instantiated.

file_extensions

By default it checks all include paths to contain filenames built up by the lowercase class name appended by the filename extensions .inc and .php.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws LogicException when the class is not found and there are no other autoloaders registered.


Return available SPL classes

  • « spl_autoload
  • spl_object_hash »
  • PHP Manual
  • SPL Funktionen
  • Return available SPL classes

spl_classes

(PHP 5, PHP 7)

spl_classes — Return available SPL classes

Beschreibung

spl_classes ( ) : array

This function returns an array with the current available SPL classes.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing the currently available SPL classes.

Beispiele

Beispiel #1 spl_classes() example

<?php

print_r(spl_classes());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [ArrayObject] => ArrayObject
    [ArrayIterator] => ArrayIterator
    [CachingIterator] => CachingIterator
    [RecursiveCachingIterator] => RecursiveCachingIterator
    [DirectoryIterator] => DirectoryIterator
    [FilterIterator] => FilterIterator
    [LimitIterator] => LimitIterator
    [ParentIterator] => ParentIterator
    [RecursiveDirectoryIterator] => RecursiveDirectoryIterator
    [RecursiveIterator] => RecursiveIterator
    [RecursiveIteratorIterator] => RecursiveIteratorIterator
    [SeekableIterator] => SeekableIterator
    [SimpleXMLIterator] => SimpleXMLIterator
)


Return hash id for given object

  • « spl_classes
  • spl_object_id »
  • PHP Manual
  • SPL Funktionen
  • Return hash id for given object

spl_object_hash

(PHP 5 >= 5.2.0, PHP 7)

spl_object_hash — Return hash id for given object

Beschreibung

spl_object_hash ( object $obj ) : string

This function returns a unique identifier for the object. This id can be used as a hash key for storing objects, or for identifying an object, as long as the object is not destroyed. Once the object is destroyed, its hash may be reused for other objects.

Parameter-Liste

object

Any object.

Rückgabewerte

A string that is unique for each currently existing object and is always the same for each object.

Beispiele

Beispiel #1 A spl_object_hash() example

<?php
$id = spl_object_hash($object);
$storage[$id] = $object;
?>

Anmerkungen

Hinweis:

When an object is destroyed, its hash may be reused for other objects.


Return the integer object handle for given object

  • « spl_object_hash
  • Dateibehandlung »
  • PHP Manual
  • SPL Funktionen
  • Return the integer object handle for given object

spl_object_id

(PHP 7 >= 7.2.0)

spl_object_id — Return the integer object handle for given object

Beschreibung

spl_object_id ( object $obj ) : int

This function returns a unique identifier for the object. The object id is unique for the lifetime of the object. Once the object is destroyed, its id may be reused for other objects. This behavior is similar to spl_object_hash().

Parameter-Liste

object

Any object.

Rückgabewerte

An integer identifier that is unique for each currently existing object and is always the same for each object.

Beispiele

Beispiel #1 A spl_object_id() example

<?php
$id = spl_object_id($object);
$storage[$id] = $object;
?>

Anmerkungen

Hinweis:

When an object is destroyed, its id may be reused for other objects.


Dateibehandlung

Inhaltsverzeichnis

  • SplFileInfo
  • SplFileObject
  • SplTempFileObject

SPL bietet einige Klassen für die Verarbeitung von Dateien.


The SplFileInfo class

(PHP 5 >= 5.1.2, PHP 7)

Einführung

The SplFileInfo class offers a high-level object oriented interface to information for an individual file.

Klassenbeschreibung

SplFileInfo {
/* Methoden */
public __construct ( string $file_name )
public getATime ( ) : int
public getBasename ( string $suffix = ? ) : string
public getCTime ( ) : int
public getExtension ( ) : string
public getFileInfo ( string $class_name = ? ) : SplFileInfo
public getFilename ( ) : string
public getGroup ( ) : int
public getInode ( ) : int
public getLinkTarget ( ) : string
public getMTime ( ) : int
public getOwner ( ) : int
public getPath ( ) : string
public getPathInfo ( string $class_name = ? ) : SplFileInfo
public getPathname ( ) : string
public getPerms ( ) : int
public getRealPath ( ) : string
public getSize ( ) : int
public getType ( ) : string
public isDir ( ) : bool
public isExecutable ( ) : bool
public isFile ( ) : bool
public isLink ( ) : bool
public isReadable ( ) : bool
public isWritable ( ) : bool
public openFile ( string $open_mode = "r" , bool $use_include_path = false , resource $context = null ) : SplFileObject
public setFileClass ( string $class_name = "SplFileObject" ) : void
public setInfoClass ( string $class_name = "SplFileInfo" ) : void
public __toString ( ) : string
}

Inhaltsverzeichnis

  • SplFileInfo::__construct — Construct a new SplFileInfo object
  • SplFileInfo::getATime — Gets last access time of the file
  • SplFileInfo::getBasename — Gets the base name of the file
  • SplFileInfo::getCTime — Gets the inode change time
  • SplFileInfo::getExtension — Gets the file extension
  • SplFileInfo::getFileInfo — Gets an SplFileInfo object for the file
  • SplFileInfo::getFilename — Gets the filename
  • SplFileInfo::getGroup — Gets the file group
  • SplFileInfo::getInode — Gets the inode for the file
  • SplFileInfo::getLinkTarget — Gets the target of a link
  • SplFileInfo::getMTime — Gets the last modified time
  • SplFileInfo::getOwner — Gets the owner of the file
  • SplFileInfo::getPath — Gets the path without filename
  • SplFileInfo::getPathInfo — Gets an SplFileInfo object for the path
  • SplFileInfo::getPathname — Gets the path to the file
  • SplFileInfo::getPerms — Gets file permissions
  • SplFileInfo::getRealPath — Gets absolute path to file
  • SplFileInfo::getSize — Gets file size
  • SplFileInfo::getType — Gets file type
  • SplFileInfo::isDir — Tells if the file is a directory
  • SplFileInfo::isExecutable — Tells if the file is executable
  • SplFileInfo::isFile — Tells if the object references a regular file
  • SplFileInfo::isLink — Tells if the file is a link
  • SplFileInfo::isReadable — Tells if file is readable
  • SplFileInfo::isWritable — Tells if the entry is writable
  • SplFileInfo::openFile — Gets an SplFileObject object for the file
  • SplFileInfo::setFileClass — Sets the class used with SplFileInfo::openFile
  • SplFileInfo::setInfoClass — Sets the class used with SplFileInfo::getFileInfo and SplFileInfo::getPathInfo
  • SplFileInfo::__toString — Returns the path to the file as a string


Construct a new SplFileInfo object

  • « SplFileInfo
  • SplFileInfo::getATime »
  • PHP Manual
  • SplFileInfo
  • Construct a new SplFileInfo object

SplFileInfo::__construct

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::__construct — Construct a new SplFileInfo object

Beschreibung

public SplFileInfo::__construct ( string $file_name )

Creates a new SplFileInfo object for the file_name specified. The file does not need to exist, or be readable.

Parameter-Liste

file_name

Path to the file.

Beispiele

Beispiel #1 SplFileInfo::__construct() example

<?php
$info = new SplFileInfo('example.php');
if ($info->isFile()) {
    echo $info->getRealPath();
}
?>


Gets last access time of the file

  • « SplFileInfo::__construct
  • SplFileInfo::getBasename »
  • PHP Manual
  • SplFileInfo
  • Gets last access time of the file

SplFileInfo::getATime

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getATime — Gets last access time of the file

Beschreibung

public SplFileInfo::getATime ( ) : int

Gets the last access time for the file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the time the file was last accessed.

Fehler/Exceptions

Throws RunTimeException on error.

Siehe auch

  • fileatime() - Liefert Datum und Uhrzeit des letzten Zugriffs auf eine Datei


Gets the base name of the file

  • « SplFileInfo::getATime
  • SplFileInfo::getCTime »
  • PHP Manual
  • SplFileInfo
  • Gets the base name of the file

SplFileInfo::getBasename

(PHP 5 >= 5.2.2, PHP 7)

SplFileInfo::getBasename — Gets the base name of the file

Beschreibung

public SplFileInfo::getBasename ( string $suffix = ? ) : string

This method returns the base name of the file, directory, or link without path info.

Achtung

SplFileInfo::getBasename() is locale aware, so for it to see the correct basename with multibyte character paths, the matching locale must be set using the setlocale() function.

Parameter-Liste

suffix

Optional suffix to omit from the base name returned.

Rückgabewerte

Returns the base name without path information.

Beispiele

Beispiel #1 SplFileInfo::getBasename() example

<?php
$info = new SplFileInfo('file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename('.txt'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(8) "file.txt"
string(8) "file.txt"
string(4) "file"

Siehe auch

  • SplFileInfo::getFilename() - Gets the filename


Gets the inode change time

  • « SplFileInfo::getBasename
  • SplFileInfo::getExtension »
  • PHP Manual
  • SplFileInfo
  • Gets the inode change time

SplFileInfo::getCTime

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getCTime — Gets the inode change time

Beschreibung

public SplFileInfo::getCTime ( ) : int

Returns the inode change time for the file. The time returned is a Unix timestamp.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The last change time, in a Unix timestamp.

Fehler/Exceptions

Throws RunTimeException on error.

Beispiele

Beispiel #1 SplFileInfo::getCTime() example

<?php
$info = new SplFileInfo(__FILE__);
echo 'Last changed at ' . date('g:i a', $info->getCTime());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Last changed at 1:49 pm

Siehe auch

  • filectime() - Liefert Datum und Uhrzeit der letzten Änderung des Datei Inode


Gets the file extension

  • « SplFileInfo::getCTime
  • SplFileInfo::getFileInfo »
  • PHP Manual
  • SplFileInfo
  • Gets the file extension

SplFileInfo::getExtension

(PHP 5 >= 5.3.6, PHP 7)

SplFileInfo::getExtension — Gets the file extension

Beschreibung

public SplFileInfo::getExtension ( ) : string

Retrieves the file extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string containing the file extension, or an empty string if the file has no extension.

Beispiele

Beispiel #1 SplFileInfo::getExtension() example

<?php

$info = new SplFileInfo('foo.txt');
var_dump($info->getExtension());

$info = new SplFileInfo('photo.jpg');
var_dump($info->getExtension());

$info = new SplFileInfo('something.tar.gz');
var_dump($info->getExtension());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "txt"
string(3) "jpg"
string(2) "gz"

Anmerkungen

Hinweis:

This method is only available as of PHP 5.3.6. Another way of getting the extension is to use the pathinfo() function.

<?php
$extension = pathinfo($info->getFilename(), PATHINFO_EXTENSION);
?>

Siehe auch

  • SplFileInfo::getFilename() - Gets the filename
  • SplFileInfo::getBasename() - Gets the base name of the file
  • pathinfo() - Liefert Informationen über einen Dateipfad


Gets an SplFileInfo object for the file

  • « SplFileInfo::getExtension
  • SplFileInfo::getFilename »
  • PHP Manual
  • SplFileInfo
  • Gets an SplFileInfo object for the file

SplFileInfo::getFileInfo

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getFileInfo — Gets an SplFileInfo object for the file

Beschreibung

public SplFileInfo::getFileInfo ( string $class_name = ? ) : SplFileInfo

This method gets an SplFileInfo object for the referenced file.

Parameter-Liste

class_name

Name of an SplFileInfo derived class to use.

Rückgabewerte

An SplFileInfo object created for the file.

Siehe auch

  • SplFileInfo::setInfoClass() - Sets the class used with SplFileInfo::getFileInfo and SplFileInfo::getPathInfo


Gets the filename

  • « SplFileInfo::getFileInfo
  • SplFileInfo::getGroup »
  • PHP Manual
  • SplFileInfo
  • Gets the filename

SplFileInfo::getFilename

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getFilename — Gets the filename

Beschreibung

public SplFileInfo::getFilename ( ) : string

Gets the filename without any path information.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The filename.

Beispiele

Beispiel #1 SplFileInfo::getFilename() example

<?php
$info = new SplFileInfo('foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('/path/to/foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/svn.php');
var_dump($info->getFilename());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(7) "foo.txt"
string(7) "foo.txt"
string(0) ""
string(7) "svn.php"

Siehe auch

  • SplFileInfo::getBasename() - Gets the base name of the file


Gets the file group

  • « SplFileInfo::getFilename
  • SplFileInfo::getInode »
  • PHP Manual
  • SplFileInfo
  • Gets the file group

SplFileInfo::getGroup

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getGroup — Gets the file group

Beschreibung

public SplFileInfo::getGroup ( ) : int

Gets the file group. The group ID is returned in numerical format.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The group id in numerical format.

Fehler/Exceptions

Throws RuntimeException on error.

Beispiele

Beispiel #1 SplFileInfo::getGroup() example

<?php
$info = new SplFileInfo(__FILE__);
print_r(posix_getgrgid($info->getGroup()));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Siehe auch

  • posix_getgrgid() - Liefert zu einer Gruppen-ID Informationen über diese Gruppe


Gets the inode for the file

  • « SplFileInfo::getGroup
  • SplFileInfo::getLinkTarget »
  • PHP Manual
  • SplFileInfo
  • Gets the inode for the file

SplFileInfo::getInode

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getInode — Gets the inode for the file

Beschreibung

public SplFileInfo::getInode ( ) : int

Gets the inode number for the filesystem object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the inode number for the filesystem object.

Fehler/Exceptions

Throws RuntimeException on error.

Siehe auch

  • fileinode() - Liefert die Inode-Nummer einer Datei


Gets the target of a link

  • « SplFileInfo::getInode
  • SplFileInfo::getMTime »
  • PHP Manual
  • SplFileInfo
  • Gets the target of a link

SplFileInfo::getLinkTarget

(PHP 5 >= 5.2.2, PHP 7)

SplFileInfo::getLinkTarget — Gets the target of a link

Beschreibung

public SplFileInfo::getLinkTarget ( ) : string

Gets the target of a filesystem link.

Hinweis:

The target may not be the real path on the filesystem. Use SplFileInfo::getRealPath() to determine the true path on the filesystem.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the target of the filesystem link.

Fehler/Exceptions

Throws RuntimeException on error.

Beispiele

Beispiel #1 SplFileInfo::getLinkTarget() example

<?php
$info = new SplFileInfo('/Users/bbieber/workspace');
if ($info->isLink()) {
    var_dump($info->getLinkTarget());
    var_dump($info->getRealPath());
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(19) "Documents/workspace"
string(34) "/Users/bbieber/Documents/workspace"

Siehe auch

  • SplFileInfo::isLink() - Tells if the file is a link
  • SplFileInfo::getRealPath() - Gets absolute path to file


Gets the last modified time

  • « SplFileInfo::getLinkTarget
  • SplFileInfo::getOwner »
  • PHP Manual
  • SplFileInfo
  • Gets the last modified time

SplFileInfo::getMTime

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getMTime — Gets the last modified time

Beschreibung

public SplFileInfo::getMTime ( ) : int

Returns the time when the contents of the file were changed. The time returned is a Unix timestamp.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the last modified time for the file, in a Unix timestamp.

Siehe auch

  • filemtime() - Liefert Datum und Uhrzeit der letzten Dateiänderung


Gets the owner of the file

  • « SplFileInfo::getMTime
  • SplFileInfo::getPath »
  • PHP Manual
  • SplFileInfo
  • Gets the owner of the file

SplFileInfo::getOwner

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getOwner — Gets the owner of the file

Beschreibung

public SplFileInfo::getOwner ( ) : int

Gets the file owner. The owner ID is returned in numerical format.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The owner id in numerical format.

Fehler/Exceptions

Throws RuntimeException on error.

Beispiele

Beispiel #1 SplFileInfo::getOwner() example

<?php
$info = new SplFileInfo('file.txt');
print_r(posix_getpwuid($info->getOwner()));
?>

Siehe auch

  • posix_getpwuid() - Liefert zu einer Benutzer-ID Informationen über diesen Benutzer
  • SplFileInfo::getGroup() - Gets the file group


Gets the path without filename

  • « SplFileInfo::getOwner
  • SplFileInfo::getPathInfo »
  • PHP Manual
  • SplFileInfo
  • Gets the path without filename

SplFileInfo::getPath

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPath — Gets the path without filename

Beschreibung

public SplFileInfo::getPath ( ) : string

Returns the path to the file, omitting the filename and any trailing slash.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the path to the file.

Beispiele

Beispiel #1 SplFileInfo::getPath() example

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPath());

$info = new SplFileInfo('/usr/');
var_dump($info->getPath());?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(8) "/usr/bin"
string(4) "/usr"

Siehe auch

  • SplFileInfo::getRealPath() - Gets absolute path to file
  • SplFileInfo::getFilename() - Gets the filename
  • SplFileInfo::getPathInfo() - Gets an SplFileInfo object for the path


Gets an SplFileInfo object for the path

  • « SplFileInfo::getPath
  • SplFileInfo::getPathname »
  • PHP Manual
  • SplFileInfo
  • Gets an SplFileInfo object for the path

SplFileInfo::getPathInfo

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPathInfo — Gets an SplFileInfo object for the path

Beschreibung

public SplFileInfo::getPathInfo ( string $class_name = ? ) : SplFileInfo

Gets an SplFileInfo object for the parent of the current file.

Parameter-Liste

class_name

Name of an SplFileInfo derived class to use.

Rückgabewerte

Returns an SplFileInfo object for the parent path of the file.

Beispiele

Beispiel #1 SplFileInfo::getPathInfo() example

<?php
$info = new SplFileInfo('/usr/bin/php');
$parent_info = $info->getPathInfo();
var_dump($parent_info->getRealPath());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(8) "/usr/bin"

Siehe auch

  • SplFileInfo::setInfoClass() - Sets the class used with SplFileInfo::getFileInfo and SplFileInfo::getPathInfo


Gets the path to the file

  • « SplFileInfo::getPathInfo
  • SplFileInfo::getPerms »
  • PHP Manual
  • SplFileInfo
  • Gets the path to the file

SplFileInfo::getPathname

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPathname — Gets the path to the file

Beschreibung

public SplFileInfo::getPathname ( ) : string

Returns the path to the file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The path to the file.

Beispiele

Beispiel #1 SplFileInfo::getPathname() example

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPathname());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(12) "/usr/bin/php"

Siehe auch

  • SplFileInfo::getRealPath() - Gets absolute path to file


Gets file permissions

  • « SplFileInfo::getPathname
  • SplFileInfo::getRealPath »
  • PHP Manual
  • SplFileInfo
  • Gets file permissions

SplFileInfo::getPerms

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPerms — Gets file permissions

Beschreibung

public SplFileInfo::getPerms ( ) : int

Gets the file permissions for the file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the file permissions.

Beispiele

Beispiel #1 SplFileInfo::getPerms() example

<?php
$info = new SplFileInfo('/tmp');
echo substr(sprintf('%o', $info->getPerms()), -4);

$info = new SplFileInfo(__FILE__);
echo substr(sprintf('%o', $info->getPerms()), -4);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1777
0644


Gets absolute path to file

  • « SplFileInfo::getPerms
  • SplFileInfo::getSize »
  • PHP Manual
  • SplFileInfo
  • Gets absolute path to file

SplFileInfo::getRealPath

(PHP 5 >= 5.2.2, PHP 7)

SplFileInfo::getRealPath — Gets absolute path to file

Beschreibung

public SplFileInfo::getRealPath ( ) : string

This method expands all symbolic links, resolves relative references and returns the real path to the file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the path to the file, or false if the file does not exist.

Beispiele

Beispiel #1 SplFileInfo::getRealPath() example

<?php
$info = new SplFileInfo('/..//./../../'.__FILE__);
var_dump($info->getRealPath());

$info = new SplFileInfo('/tmp');
var_dump($info->getRealPath());

$info = new SplFileInfo('/I/Do/Not/Exist');
var_dump($info->getRealPath());

$info = new SplFileInfo('php://output');
var_dump($info->getRealPath());

$info = new SplFileInfo("");
var_dump($info->getRealPath());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(28) "/private/tmp/phptempfile.php"
string(12) "/private/tmp"
bool(false)
bool(false)
string(12) "/private/tmp"

Siehe auch

  • SplFileInfo::isLink() - Tells if the file is a link
  • realpath() - Löst einen Pfad in einen absoluten und eindeutigen auf


Gets file size

  • « SplFileInfo::getRealPath
  • SplFileInfo::getType »
  • PHP Manual
  • SplFileInfo
  • Gets file size

SplFileInfo::getSize

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getSize — Gets file size

Beschreibung

public SplFileInfo::getSize ( ) : int

Returns the filesize in bytes for the file referenced.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The filesize in bytes.

Fehler/Exceptions

A RuntimeException will be thrown if the file does not exist or an error occurs.

Siehe auch

  • filesize() - Liefert die Größe einer Datei


Gets file type

  • « SplFileInfo::getSize
  • SplFileInfo::isDir »
  • PHP Manual
  • SplFileInfo
  • Gets file type

SplFileInfo::getType

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getType — Gets file type

Beschreibung

public SplFileInfo::getType ( ) : string

Returns the type of the file referenced.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A string representing the type of the entry. May be one of file, link, dir, block, fifo, char, socket, or unknown

Fehler/Exceptions

Throws a RuntimeException on error.

Beispiele

Beispiel #1 SplFileInfo::getType() example

<?php

$info = new SplFileInfo(__FILE__);
echo $info->getType().PHP_EOL;

$info = new SplFileInfo(dirname(__FILE__));
echo $info->getType();

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

file
dir


Tells if the file is a directory

  • « SplFileInfo::getType
  • SplFileInfo::isExecutable »
  • PHP Manual
  • SplFileInfo
  • Tells if the file is a directory

SplFileInfo::isDir

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isDir — Tells if the file is a directory

Beschreibung

public SplFileInfo::isDir ( ) : bool

This method can be used to determine if the file is a directory.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if a directory, false otherwise.

Beispiele

Beispiel #1 SplFileInfo::isDir() example

<?php
$d = new SplFileInfo(dirname(__FILE__));
var_dump($d->isDir());

$d = new SplFileInfo(__FILE__);
var_dump($d->isDir());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)


Tells if the file is executable

  • « SplFileInfo::isDir
  • SplFileInfo::isFile »
  • PHP Manual
  • SplFileInfo
  • Tells if the file is executable

SplFileInfo::isExecutable

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isExecutable — Tells if the file is executable

Beschreibung

public SplFileInfo::isExecutable ( ) : bool

Checks if the file is executable.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if executable, false otherwise.

Beispiele

Beispiel #1 SplFileInfo::isExecutable() example

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->isExecutable());

$info = new SplFileInfo('/usr/bin');
var_dump($info->isExecutable());

$info = new SplFileInfo('foo');
var_dump($info->isExecutable());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(false)


Tells if the object references a regular file

  • « SplFileInfo::isExecutable
  • SplFileInfo::isLink »
  • PHP Manual
  • SplFileInfo
  • Tells if the object references a regular file

SplFileInfo::isFile

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isFile — Tells if the object references a regular file

Beschreibung

public SplFileInfo::isFile ( ) : bool

Checks if the file referenced by this SplFileInfo object exists and is a regular file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the file exists and is a regular file (not a link), false otherwise.

Beispiele

Beispiel #1 SplFileInfo::isFile() example

<?php
$info = new SplFileInfo(__FILE__);
var_dump($info->isFile());

$info = new SplFileInfo(dirname(__FILE__));
var_dump($info->isFile());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)


Tells if the file is a link

  • « SplFileInfo::isFile
  • SplFileInfo::isReadable »
  • PHP Manual
  • SplFileInfo
  • Tells if the file is a link

SplFileInfo::isLink

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isLink — Tells if the file is a link

Beschreibung

public SplFileInfo::isLink ( ) : bool

Use this method to check if the file referenced by the SplFileInfo object is a link.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the file is a link, false otherwise.

Beispiele

Beispiel #1 SplFileInfo::isLink() example

<?php
$info = new SplFileInfo('/path/to/symlink');
if ($info->isLink()) {
    echo 'The real path is '.$info->getRealPath();
}
?>

Siehe auch

  • SplFileInfo::getRealPath() - Gets absolute path to file


Tells if file is readable

  • « SplFileInfo::isLink
  • SplFileInfo::isWritable »
  • PHP Manual
  • SplFileInfo
  • Tells if file is readable

SplFileInfo::isReadable

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isReadable — Tells if file is readable

Beschreibung

public SplFileInfo::isReadable ( ) : bool

Check if the file is readable.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if readable, false otherwise.

Beispiele

Beispiel #1 SplFileInfo::isReadable() example

<?php
$info = new SplFileInfo(__FILE__);
var_dump($info->isReadable());

$info = new SplFileInfo('foo');
var_dump($info->isReadable());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)


Tells if the entry is writable

  • « SplFileInfo::isReadable
  • SplFileInfo::openFile »
  • PHP Manual
  • SplFileInfo
  • Tells if the entry is writable

SplFileInfo::isWritable

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isWritable — Tells if the entry is writable

Beschreibung

public SplFileInfo::isWritable ( ) : bool

Checks if the current entry is writable.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if writable, false otherwise;


Gets an SplFileObject object for the file

  • « SplFileInfo::isWritable
  • SplFileInfo::setFileClass »
  • PHP Manual
  • SplFileInfo
  • Gets an SplFileObject object for the file

SplFileInfo::openFile

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::openFile — Gets an SplFileObject object for the file

Beschreibung

public SplFileInfo::openFile ( string $open_mode = "r" , bool $use_include_path = false , resource $context = null ) : SplFileObject

Creates an SplFileObject object of the file. This is useful because SplFileObject contains additional methods for manipulating the file whereas SplFileInfo is only useful for gaining information, like whether the file is writable.

Parameter-Liste

open_mode

The mode for opening the file. See the fopen() documentation for descriptions of possible modes. The default is read only.

use_include_path

Wenn dieser Parameter auf true gesetzt ist wird auch im include_path nach dem Dateinamen gesucht.

context

Eine Beschreibung von contexts finden Sie im Abschnitt Kontextoptionen und -parameter dieses Handbuchs.

Rückgabewerte

The opened file as an SplFileObject object.

Fehler/Exceptions

A RuntimeException if the file cannot be opened (e.g. insufficient access rights).

Beispiele

Beispiel #1 SplFileInfo::openFile() example

<?php
$fileinfo = new SplFileInfo('/tmp/foo.txt');

if ($fileinfo->isWritable()) {

    $fileobj = $fileinfo->openFile('a');

    $fileobj->fwrite("appended this sample text");
}
?>

Siehe auch

  • SplFileObject
  • stream_context_create() - Creates a stream context
  • fopen() - Öffnet eine Datei oder URL


Sets the class used with SplFileInfo::openFile

  • « SplFileInfo::openFile
  • SplFileInfo::setInfoClass »
  • PHP Manual
  • SplFileInfo
  • Sets the class used with SplFileInfo::openFile

SplFileInfo::setFileClass

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::setFileClass — Sets the class used with SplFileInfo::openFile()

Beschreibung

public SplFileInfo::setFileClass ( string $class_name = "SplFileObject" ) : void

Use this method to set a custom class which will be used when SplFileInfo::openFile() is called. The class name passed to this method must be SplFileObject or a class derived from SplFileObject.

Parameter-Liste

class_name

The class name to use when SplFileInfo::openFile() is called.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplFileInfo::setFileClass() example

<?php
// Create a class extending SplFileObject
class MyFoo extends SplFileObject {}

$info = new SplFileInfo(__FILE__);
// Set the class to use
$info->setFileClass('MyFoo');
var_dump($info->openFile());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MyFoo)#2 (0) { }

Siehe auch

  • SplFileInfo::openFile() - Gets an SplFileObject object for the file


Sets the class used with SplFileInfo::getFileInfo and SplFileInfo::getPathInfo

  • « SplFileInfo::setFileClass
  • SplFileInfo::__toString »
  • PHP Manual
  • SplFileInfo
  • Sets the class used with SplFileInfo::getFileInfo and SplFileInfo::getPathInfo

SplFileInfo::setInfoClass

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::setInfoClass — Sets the class used with SplFileInfo::getFileInfo() and SplFileInfo::getPathInfo()

Beschreibung

public SplFileInfo::setInfoClass ( string $class_name = "SplFileInfo" ) : void

Use this method to set a custom class which will be used when SplFileInfo::getFileInfo() and SplFileInfo::getPathInfo() are called. The class name passed to this method must be SplFileInfo or a class derived from SplFileInfo.

Parameter-Liste

class_name

The class name to use when SplFileInfo::getFileInfo() and SplFileInfo::getPathInfo() are called.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplFileInfo::setFileClass() example

<?php
// Define a class which extends SplFileInfo
class MyFoo extends SplFileInfo {}

$info = new SplFileInfo('foo');
// Set the class name to use
$info->setInfoClass('MyFoo');
var_dump($info->getFileInfo());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(MyFoo)#2 (0) { }

Siehe auch

  • SplFileInfo::getFileInfo() - Gets an SplFileInfo object for the file


Returns the path to the file as a string

  • « SplFileInfo::setInfoClass
  • SplFileObject »
  • PHP Manual
  • SplFileInfo
  • Returns the path to the file as a string

SplFileInfo::__toString

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::__toString — Returns the path to the file as a string

Beschreibung

public SplFileInfo::__toString ( ) : string

This method will return the file name of the referenced file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the path to the file.

Beispiele

Beispiel #1 SplFileInfo::__toString() example

<?php
$info = new SplFileInfo('foo');
var_dump($info->__toString());
echo $info.PHP_EOL;

$info = new SplFileInfo('/usr/bin/php');
var_dump($info->__toString());
echo $info.PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(3) "foo"
foo
string(12) "/usr/bin/php"
/usr/bin/php


The SplFileObject class

(PHP 5 >= 5.1.0, PHP 7)

Einführung

The SplFileObject class offers an object oriented interface for a file.

Klassenbeschreibung

SplFileObject extends SplFileInfo implements RecursiveIterator , SeekableIterator {
/* Konstanten */
const int DROP_NEW_LINE = 1 ;
const int READ_AHEAD = 2 ;
const int SKIP_EMPTY = 4 ;
const int READ_CSV = 8 ;
/* Methoden */
public __construct ( string $filename , string $open_mode = "r" , bool $use_include_path = false , resource $context = ? )
public current ( ) : string|array
public eof ( ) : bool
public fflush ( ) : bool
public fgetc ( ) : string
public fgetcsv
 ( string $delimiter = ","
, string $enclosure = "\""
, string $escape = "\\"
) : array
public fgets ( ) : string
public fgetss ( string $allowable_tags = ? ) : string
public flock ( int $operation , int &$wouldblock = ? ) : bool
public fpassthru ( ) : int
public fputcsv ( array $fields , string $delimiter = "," , string $enclosure = '"' , string $escape = "\\" ) : int|false
public fread ( int $length ) : string|false
public fscanf ( string $format , mixed &...$vars ) : mixed
public fseek ( int $offset , int $whence = SEEK_SET ) : int
public fstat ( ) : array
public ftell ( ) : int
public ftruncate ( int $size ) : bool
public fwrite ( string $str , int $length = ? ) : int
public getChildren ( ) : void
public getCsvControl ( ) : array
public getFlags ( ) : int
public getMaxLineLen ( ) : int
public hasChildren ( ) : bool
public key ( ) : int
public next ( ) : void
public rewind ( ) : void
public seek ( int $line_pos ) : void
public setCsvControl
 ( string $delimiter = ","
, string $enclosure = "\""
, string $escape = "\\"
) : void
public setFlags ( int $flags ) : void
public setMaxLineLen ( int $max_len ) : void
public valid ( ) : bool
/* Geerbte Methoden */
public SplFileInfo::getATime ( ) : int
public SplFileInfo::getBasename ( string $suffix = ? ) : string
public SplFileInfo::getCTime ( ) : int
public SplFileInfo::getExtension ( ) : string
public SplFileInfo::getFileInfo ( string $class_name = ? ) : SplFileInfo
public SplFileInfo::getFilename ( ) : string
public SplFileInfo::getGroup ( ) : int
public SplFileInfo::getInode ( ) : int
public SplFileInfo::getLinkTarget ( ) : string
public SplFileInfo::getMTime ( ) : int
public SplFileInfo::getOwner ( ) : int
public SplFileInfo::getPath ( ) : string
public SplFileInfo::getPathInfo ( string $class_name = ? ) : SplFileInfo
public SplFileInfo::getPathname ( ) : string
public SplFileInfo::getPerms ( ) : int
public SplFileInfo::getRealPath ( ) : string
public SplFileInfo::getSize ( ) : int
public SplFileInfo::getType ( ) : string
public SplFileInfo::isDir ( ) : bool
public SplFileInfo::isExecutable ( ) : bool
public SplFileInfo::isFile ( ) : bool
public SplFileInfo::isLink ( ) : bool
public SplFileInfo::isReadable ( ) : bool
public SplFileInfo::isWritable ( ) : bool
public SplFileInfo::openFile ( string $open_mode = "r" , bool $use_include_path = false , resource $context = null ) : SplFileObject
public SplFileInfo::setFileClass ( string $class_name = "SplFileObject" ) : void
public SplFileInfo::setInfoClass ( string $class_name = "SplFileInfo" ) : void
public SplFileInfo::__toString ( ) : string
}

Vordefinierte Konstanten

SplFileObject::DROP_NEW_LINE

Drop newlines at the end of a line.

SplFileObject::READ_AHEAD

Read on rewind/next.

SplFileObject::SKIP_EMPTY

Skips empty lines in the file. This requires the READ_AHEAD flag be enabled, to work as expected.

SplFileObject::READ_CSV

Read lines as CSV rows.

Changelog

Version | Beschreibung
5.3.9 | SplFileObject::SKIP_EMPTY value changed to 4. Previously, value was 6.

Inhaltsverzeichnis

  • SplFileObject::__construct — Construct a new file object
  • SplFileObject::current — Retrieve current line of file
  • SplFileObject::eof — Reached end of file
  • SplFileObject::fflush — Flushes the output to the file
  • SplFileObject::fgetc — Gets character from file
  • SplFileObject::fgetcsv — Gets line from file and parse as CSV fields
  • SplFileObject::fgets — Gets line from file
  • SplFileObject::fgetss — Gets line from file and strip HTML tags
  • SplFileObject::flock — Portable file locking
  • SplFileObject::fpassthru — Output all remaining data on a file pointer
  • SplFileObject::fputcsv — Write a field array as a CSV line
  • SplFileObject::fread — Read from file
  • SplFileObject::fscanf — Parses input from file according to a format
  • SplFileObject::fseek — Seek to a position
  • SplFileObject::fstat — Gets information about the file
  • SplFileObject::ftell — Return current file position
  • SplFileObject::ftruncate — Truncates the file to a given length
  • SplFileObject::fwrite — Write to file
  • SplFileObject::getChildren — No purpose
  • SplFileObject::getCsvControl — Get the delimiter, enclosure and escape character for CSV
  • SplFileObject::getCurrentLine — Alias of SplFileObject::fgets
  • SplFileObject::getFlags — Gets flags for the SplFileObject
  • SplFileObject::getMaxLineLen — Get maximum line length
  • SplFileObject::hasChildren — SplFileObject does not have children
  • SplFileObject::key — Get line number
  • SplFileObject::next — Read next line
  • SplFileObject::rewind — Rewind the file to the first line
  • SplFileObject::seek — Seek to specified line
  • SplFileObject::setCsvControl — Set the delimiter, enclosure and escape character for CSV
  • SplFileObject::setFlags — Sets flags for the SplFileObject
  • SplFileObject::setMaxLineLen — Set maximum line length
  • SplFileObject::__toString — Alias of SplFileObject::fgets
  • SplFileObject::valid — Not at EOF


Construct a new file object

  • « SplFileObject
  • SplFileObject::current »
  • PHP Manual
  • SplFileObject
  • Construct a new file object

SplFileObject::__construct

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::__construct — Construct a new file object

Beschreibung

public SplFileObject::__construct ( string $filename , string $open_mode = "r" , bool $use_include_path = false , resource $context = ? )

Construct a new file object.

Parameter-Liste

filename

The file to read.

Tipp

Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben. Mehr Details dazu, wie Sie den Dateinamen angeben müssen finden Sie bei fopen(). Eine Liste der unterstützten URL Protokolle, die Fähigkeiten der verschiedenen Wrapper, Hinweise zu deren Verwendung und Informationen zu den eventuell vorhandenen vordefinierten Variablen finden Sie unter Unterstützte Protokolle und Wrapper.

open_mode

The mode in which to open the file. See fopen() for a list of allowed modes.

use_include_path

Whether to search in the include_path for filename.

context

A valid context resource created with stream_context_create().

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws a RuntimeException if the filename cannot be opened.

Throws a LogicException if the filename is a directory.

Beispiele

Beispiel #1 SplFileObject::__construct() example

This example opens the current file and iterates over its contents line by line.

<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $line_num => $line) {
    echo "Line $line_num is $line";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Line 0 is <?php
Line 1 is $file = new SplFileObject(__FILE__);
Line 2 is foreach ($file as $line_num => $line) {
Line 3 is     echo "Line $line_num is $line";
Line 4 is }
Line 5 is ?>

Siehe auch

  • SplFileInfo::openFile() - Gets an SplFileObject object for the file
  • fopen() - Öffnet eine Datei oder URL


Retrieve current line of file

  • « SplFileObject::__construct
  • SplFileObject::eof »
  • PHP Manual
  • SplFileObject
  • Retrieve current line of file

SplFileObject::current

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::current — Retrieve current line of file

Beschreibung

public SplFileObject::current ( ) : string|array

Retrieves the current line of the file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Retrieves the current line of the file. If the SplFileObject::READ_CSV flag is set, this method returns an array containing the current line parsed as CSV data.

Beispiele

Beispiel #1 SplFileObject::current() example

<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $k => $line) {
   echo ($file->key() + 1) . ': ' . $file->current();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1: <?php
2: $file = new SplFileObject(__FILE__);
3: foreach ($file as $line) {
4:     echo ($file->key() + 1) . ': ' . $file->current();
5: }
6: ?>

Siehe auch

  • SplFileObject::key() - Get line number
  • SplFileObject::seek() - Seek to specified line
  • SplFileObject::next() - Read next line
  • SplFileObject::rewind() - Rewind the file to the first line
  • SplFileObject::valid() - Not at EOF


Reached end of file

  • « SplFileObject::current
  • SplFileObject::fflush »
  • PHP Manual
  • SplFileObject
  • Reached end of file

SplFileObject::eof

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::eof — Reached end of file

Beschreibung

public SplFileObject::eof ( ) : bool

Determine whether the end of file has been reached

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if file is at EOF, false otherwise.

Beispiele

Beispiel #1 SplFileObject::eof() example

<?php
$file = new SplFileObject("fruits.txt");
while ( ! $file->eof()) {
    echo $file->fgets();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

apple
banana
cherry
date
elderberry

Siehe auch

  • SplFileObject::valid() - Not at EOF
  • feof() - Prüft, ob ein Dateizeiger am Ende der Datei steht


Flushes the output to the file

  • « SplFileObject::eof
  • SplFileObject::fgetc »
  • PHP Manual
  • SplFileObject
  • Flushes the output to the file

SplFileObject::fflush

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fflush — Flushes the output to the file

Beschreibung

public SplFileObject::fflush ( ) : bool

Forces a write of all buffered output to the file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 SplFileObject::fflush() example

<?php
$file = new SplFileObject('misc.txt', 'r+');
$file->rewind();
$file->fwrite("Foo");
$file->fflush();
$file->ftruncate($file->ftell());
?>

Siehe auch

  • SplFileObject::fwrite() - Write to file


Gets character from file

  • « SplFileObject::fflush
  • SplFileObject::fgetcsv »
  • PHP Manual
  • SplFileObject
  • Gets character from file

SplFileObject::fgetc

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetc — Gets character from file

Beschreibung

public SplFileObject::fgetc ( ) : string

Gets a character from the file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string containing a single character read from the file or false on EOF.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 SplFileObject::fgetc() example

<?php
$file = new SplFileObject('file.txt');
while (false !== ($char = $file->fgetc())) {
    echo "$char\n";
}
?>

Siehe auch

  • SplFileObject::fgets() - Gets line from file


Gets line from file and parse as CSV fields

  • « SplFileObject::fgetc
  • SplFileObject::fgets »
  • PHP Manual
  • SplFileObject
  • Gets line from file and parse as CSV fields

SplFileObject::fgetcsv

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetcsv — Gets line from file and parse as CSV fields

Beschreibung

public SplFileObject::fgetcsv
 ( string $delimiter = ","
, string $enclosure = "\""
, string $escape = "\\"
) : array

Gets a line from the file which is in CSV format and returns an array containing the fields read.

Hinweis:

The locale settings are taken into account by this function. If LC_CTYPE is e.g. en_US.UTF-8, files in one-byte encodings may be read wrongly by this function.

Parameter-Liste

delimiter

The field delimiter (one character only). Defaults as a comma or the value set using SplFileObject::setCsvControl().

enclosure

The field enclosure character (one character only). Defaults as a double quotation mark or the value set using SplFileObject::setCsvControl().

escape

The escape character (at most one character). Defaults as a backslash (\) or the value set using SplFileObject::setCsvControl(). An empty string ("") disables the proprietary escape mechanism.

Hinweis: Usually an enclosure character is escpaped inside a field by doubling it; however, the escape character can be used as an alternative. So for the default parameter values "" and \" have the same meaning. Other than allowing to escape the enclosure character the escape character has no special meaning; it isn't even meant to escape itself.

Rückgabewerte

Returns an indexed array containing the fields read, or false on error.

Hinweis:

A blank line in a CSV file will be returned as an array comprising a single null field unless using SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE, in which case empty lines are skipped.

Changelog

Version | Beschreibung
7.4.0 | The escape parameter now also accepts an empty string to disable the proprietary escape mechanism.

Beispiele

Beispiel #1 SplFileObject::fgetcsv() example

<?php
$file = new SplFileObject("data.csv");
while (!$file->eof()) {
    var_dump($file->fgetcsv());
}
?>

Beispiel #2 SplFileObject::READ_CSV example

<?php
$file = new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
    list($animal, $class, $legs) = $row;
    printf("A %s is a %s with %d legs\n", $animal, $class, $legs);
}
?>

Contents of animals.csv

crocodile,reptile,4
dolphin,mammal,0
duck,bird,2
koala,mammal,4
salmon,fish,0

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

A crocodile is a reptile with 4 legs
A dolphin is a mammal with 0 legs
A duck is a bird with 2 legs
A koala is a mammal with 4 legs
A salmon is a fish with 0 legs

Siehe auch

  • SplFileObject::setCsvControl() - Set the delimiter, enclosure and escape character for CSV
  • SplFileObject::setFlags() - Sets flags for the SplFileObject
  • SplFileObject::READ_CSV
  • SplFileObject::current() - Retrieve current line of file


Gets line from file

  • « SplFileObject::fgetcsv
  • SplFileObject::fgetss »
  • PHP Manual
  • SplFileObject
  • Gets line from file

SplFileObject::fgets

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgets — Gets line from file

Beschreibung

public SplFileObject::fgets ( ) : string

Gets a line from the file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string containing the next line from the file, or false on error.

Fehler/Exceptions

Throws a RuntimeException if the file cannot be read.

Beispiele

Beispiel #1 SplFileObject::fgets() example

This example simply outputs the contents of file.txt line-by-line.

<?php
$file = new SplFileObject("file.txt");
while (!$file->eof()) {
    echo $file->fgets();
}
?>

Siehe auch

  • fgets() - Liest eine Zeile von der Position des Dateizeigers
  • SplFileObject::fgetss() - Gets line from file and strip HTML tags
  • SplFileObject::fgetc() - Gets character from file
  • SplFileObject::current() - Retrieve current line of file


Gets line from file and strip HTML tags

  • « SplFileObject::fgets
  • SplFileObject::flock »
  • PHP Manual
  • SplFileObject
  • Gets line from file and strip HTML tags

SplFileObject::fgetss

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetss — Gets line from file and strip HTML tags

Warnung

Diese Funktion ist seit PHP 7.3.0 VERALTET und seit PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

public SplFileObject::fgetss ( string $allowable_tags = ? ) : string

Identical to SplFileObject::fgets(), except that SplFileObject::fgetss() attempts to strip any HTML and PHP tags from the text it reads. The function retains the parsing state from call to call, and as such is not equivalent to calling strip_tags() on the return value of SplFileObject::fgets().

Parameter-Liste

allowable_tags

Optional parameter to specify tags which should not be stripped.

Rückgabewerte

Returns a string containing the next line of the file with HTML and PHP code stripped, or false on error.

Beispiele

Beispiel #1 SplFileObject::fgetss() example

<?php
$str = <<<EOD
<html><body>
 <p>Welcome! Today is the <?php echo(date('jS')); ?> of <?= date('F'); ?>.</p>
</body></html>
Text outside of the HTML block.
EOD;
file_put_contents("sample.php", $str);

$file = new SplFileObject("sample.php");
while (!$file->eof()) {
    echo $file->fgetss();
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

 Welcome! Today is the  of .

Text outside of the HTML block.

Siehe auch

  • fgetss() - Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
  • SplFileObject::fgets() - Gets line from file
  • SplFileObject::fgetc() - Gets character from file
  • SplFileObject::current() - Retrieve current line of file
  • The string.strip_tags filter


Portable file locking

  • « SplFileObject::fgetss
  • SplFileObject::fpassthru »
  • PHP Manual
  • SplFileObject
  • Portable file locking

SplFileObject::flock

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::flock — Portable file locking

Beschreibung

public SplFileObject::flock ( int $operation , int &$wouldblock = ? ) : bool

Locks or unlocks the file in the same portable way as flock().

Parameter-Liste

operation

operation is one of the following:

  • LOCK_SH to acquire a shared lock (reader).
  • LOCK_EX to acquire an exclusive lock (writer).
  • LOCK_UN to release a lock (shared or exclusive).

It is also possible to add LOCK_NB as a bitmask to one of the above operations, if flock() should not block during the locking attempt.

wouldblock

Set to true if the lock would block (EWOULDBLOCK errno condition).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 SplFileObject::flock() example

<?php
$file = new SplFileObject("/tmp/lock.txt", "w");
if ($file->flock(LOCK_EX)) { // do an exclusive lock
    $file->ftruncate(0);     // truncate file
    $file->fwrite("Write something here\n");
    $file->flock(LOCK_UN);   // release the lock
} else {
    echo "Couldn't get the lock!";
}
?>

Siehe auch

  • flock() - Portables Datei-Sperr-Verfahren (advisory locking)


Output all remaining data on a file pointer

  • « SplFileObject::flock
  • SplFileObject::fputcsv »
  • PHP Manual
  • SplFileObject
  • Output all remaining data on a file pointer

SplFileObject::fpassthru

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fpassthru — Output all remaining data on a file pointer

Beschreibung

public SplFileObject::fpassthru ( ) : int

Reads to EOF on the given file pointer from the current position and writes the results to the output buffer.

You may need to call SplFileObject::rewind() to reset the file pointer to the beginning of the file if you have already written data to the file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of characters read from handle and passed through to the output.

Beispiele

Beispiel #1 SplFileObject::fpassthru() example

<?php

// Open the file in binary mode
$file = new SplFileObject("./img/ok.png", "rb");

// Send the right headers
header("Content-Type: image/png");
header("Content-Length: " . $file->getSize());

// Dump the picture and end script
$file->fpassthru();
exit;

?>

Siehe auch

  • fpassthru() - Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.


Write a field array as a CSV line

  • « SplFileObject::fpassthru
  • SplFileObject::fread »
  • PHP Manual
  • SplFileObject
  • Write a field array as a CSV line

SplFileObject::fputcsv

(PHP 5 >= 5.4.0, PHP 7)

SplFileObject::fputcsv — Write a field array as a CSV line

Beschreibung

public SplFileObject::fputcsv
 ( array $fields
, string $delimiter = ","
, string $enclosure = '"'
, string $escape = "\\"
) : int|false

Writes the fields array to the file as a CSV line.

Parameter-Liste

fields

An array of values.

delimiter

The optional delimiter parameter sets the field delimiter (one character only).

enclosure

The optional enclosure parameter sets the field enclosure (one character only).

escape

The optional escape parameter sets the escape character (at most one character). An empty string ("") disables the proprietary escape mechanism.

Hinweis:

If an enclosure character is contained in a field, it will be escaped by doubling it, unless it is immediately preceded by an escape_char.

Rückgabewerte

Returns the length of the written stringIm Fehlerfall wird false zurückgegeben..

Returns false, and does not write the CSV line to the file, if the delimiter or enclosure parameter is not a single character.

Fehler/Exceptions

An E_WARNING level error is issued if the delimiter or enclosure parameter is not a single character.

Changelog

Version | Beschreibung
7.4.0 | The escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
5.5.21, 5.6.5 | Added the escape parameter.

Beispiele

Beispiel #1 SplFileObject::fputcsv() example

<?php

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$file = new SplFileObject('file.csv', 'w');

foreach ($list as $fields) {
    $file->fputcsv($fields);
}

?>

The above example will write the following to file.csv:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Siehe auch

  • fputcsv() - Format line as CSV and write to file pointer
  • SplFileObject::fgetcsv() - Gets line from file and parse as CSV fields


Read from file

  • « SplFileObject::fputcsv
  • SplFileObject::fscanf »
  • PHP Manual
  • SplFileObject
  • Read from file

SplFileObject::fread

(PHP 5 >= 5.5.11, PHP 7)

SplFileObject::fread — Read from file

Beschreibung

public SplFileObject::fread ( int $length ) : string|false

Reads the given number of bytes from the file.

Parameter-Liste

length

The number of bytes to read.

Rückgabewerte

Returns the string read from the file Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 SplFileObject::fread() example

<?php
// Get contents of a file into a string
$filename = "/usr/local/something.txt";
$file = new SplFileObject($filename, "r");
$contents = $file->fread($file->getSize());
?>

Anmerkungen

Hinweis:

Note that SplFileObject::fread() reads from the current position of the file pointer. Use SplFileObject::ftell() to find the current position of the pointer and SplFileObject::rewind() (or SplFileObject::fseek()) to rewind the pointer position.

Siehe auch

  • fread() - Liest Binärdaten aus einer Datei


Parses input from file according to a format

  • « SplFileObject::fread
  • SplFileObject::fseek »
  • PHP Manual
  • SplFileObject
  • Parses input from file according to a format

SplFileObject::fscanf

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fscanf — Parses input from file according to a format

Beschreibung

public SplFileObject::fscanf ( string $format , mixed &...$vars ) : mixed

Reads a line from the file and interprets it according to the specified format, which is described in the documentation for sprintf().

Any whitespace in the format string matches any whitespace in the line from the file. This means that even a tab \t in the format string can match a single space character in the input stream.

Parameter-Liste

format

Der Formatstring setzt sich aus keiner oder mehreren Anweisungen zusammen: Normale Zeichen (abgesehen von %), die direkt in das Ergebnis kopiert werden und Konvertierungsanweisungen, die jeweils ihre eigenen Parameter abrufen.

Eine Konvertierungsanweisung folgt diesem Prototypen: %[ArgNum$][Flags][Weite][.Präzision]Spezifizierer.

ArgNum

Eine Ganzzahl gefolgt von einem Dollarzeichen $, die die Nummer des Arguments angibt, das für die Konversion verwendet werden soll.

Flags
Flag | Beschreibung
- Linksbündig innerhalb der angegebenen Feldbreite; Rechtsbündig ist der Standard
+ Positive Zahlen mit einem Pluszeichen +; Standardmäßig werden nur negative Zahlen mit negativen Vorzeichen ausgegeben
(Leerzeichen) | Füllt das Ergebnis mit Leerzeichen auf. Dies ist der Standard.
0 | Füllt nach Links mit Nullen auf. Mit dem s-Spezifizierer kann dies auch nach rechts mit Nullen auffüllen.
'(Zeichen) | Füllt das Ergebnis mit dem angegebenen Zeichen auf.

Weite

Eine Ganzzahle die angibt, wie viele Zeichen (Minimum) das Konvertierungsergebnis haben soll.

Präzision

Die Bedeutung eines Punkts . gefolgt von einer Ganzzahl hängt vom Spezifizierer ab:

  • Für die Spezifizierer e, E, f und F: Dies stellt die Anzahl der Nachkommastellen an, die nach dem Dezimaltrennzeichen ausgegeben werden soll (Standradmäßig ist dies 6).
  • Für die Spezifizierer g und G: Die maximale Anzahl der auszugebenenden signifikanten Nachkommastellen.
  • Für den s Spezifizierer: Verhält sich wie ein Abschneidepunkt, der eine maximale Anzahl an Zeichen in der Zeichenkette angibt.

Hinweis: Wenn der Punkt ohne einen expliziten Wert für die Präzision angegeben wird, wird 0 angenommen.

Hinweis: Wird ein Spezifizierer angegeben, der größer ist als PHP_INT_MAX, so wird eine Warnung ausgegeben.

Spezifizierer
Spezifizierer | Beschreibung
% Ein Prozentzeichen. Kein Parameter nötig.
b | Der Parameter wird als Ganzzahl behandelt und als Binärzahl ausgegeben.
c | Der Parameter wird als Ganzzahl behandelt und als Zeichen aus dem ASCII-Zeichensatz ausgegeben.
d | Der Parameter wird als Ganzzahl behandelt und als (vorzeichenbehaftete) Dezimalzahl ausgegeben.
e | Der Parameter wird als Zahl in wissenschaftlicher Schreibweise (z.B. 1.2e+2) behandelt. Die Angabe der Präzision steht seit PHP 5.2.1 für die Anzahl Zeichen nach dem Dezimalpunkt. In früheren Versionen wurde dies als die Anzahl signifikanter Dezimalstellen betrachtet (eins weniger).
E | Wie der Spezifizierer e, aber schreibt einen Großbuchstaben (z.B. 1.2E+2).
f | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl ausgegeben (abhängig von der Locale).
F | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl (unabhängig von der Locale) ausgegeben. Verfügbar seit PHP 5.0.3.
g

Generelles Format.

Sei P die Präzision wenn nicht Null, 6 wenn die Präzision nicht angegeben ist oder 1 wenn die Präzision Null ist. Dann, wenn eine Konvertierung mittels E einen Exponenten von X hätte:

Wenn P > X = -4 ist die Konvertierung mit Spezifizierer f und Präzision P - (X + 1). Andernfalls wie mit Spezifizierer e und Präzision P - 1.

G | Wie der Spezifizierer g, aber es wird E und f verwendet.
h | Wie der Spezifizierer g, aber es werden F verwendet. Verfügbar ab PHP 8.0.0.
H | Wie der Spezifizierer g, aber es werden E und F verwendet. Verfügbar ab PHP 8.0.0.
o | Der Parameter wird als Ganzzahl betrachtet und als Oktalzahl ausgegeben.
s | Der Parameter wird als Zeichenkette betrachtet und ausgegeben.
u | Der Parameter wird als Ganzzahl betrachtet und als vorzeichenlose Dezimalzahl ausgegeben.
x | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Kleinbuchstaben) ausgegeben.
X | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Großbuchstaben) ausgegeben.

Warnung

Der Spezifizierer c ignoriert Auffüllung und Weite.

Warnung

Der Versuch, die Kombination aus Zeichenketten mit Weite-Spezifizierern und Zeichensätzen die mehr als ein Byte pro zeichen erwarten zu verwenden, führt zu unvorhersehbaren Ergebnissen.

Variablen werden auf einen für den Spezifizier passenden Typen umgewandelt:

Typ-Behandlung
Typ | Spezifizierer
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

vars

The optional assigned values.

Rückgabewerte

If only one parameter is passed to this method, the values parsed will be returned as an array. Otherwise, if optional parameters are passed, the function will return the number of assigned values. The optional parameters must be passed by reference.

Beispiele

Beispiel #1 SplFileObject::fscanf() example

<?php
$file = new SplFileObject("misc.txt");
while ($userinfo = $file->fscanf("%s %s %s")) {
    list ($name, $profession, $countrycode) = $userinfo;
    // Do something with $name $profession $countrycode
}
?>

Contents of users.txt

javier   argonaut    pe
hiroshi  sculptor    jp
robert   slacker     us
luigi    florist     it

Siehe auch

  • fscanf() - Interpretiert den Input einer Datei entsprechend einem angegebenen Format
  • sscanf() - Überträgt einen String in ein angegebenes Format
  • printf() - Gibt einen formatierten String aus
  • sprintf() - Gibt einen formatierten String zurück


Seek to a position

  • « SplFileObject::fscanf
  • SplFileObject::fstat »
  • PHP Manual
  • SplFileObject
  • Seek to a position

SplFileObject::fseek

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fseek — Seek to a position

Beschreibung

public SplFileObject::fseek ( int $offset , int $whence = SEEK_SET ) : int

Seek to a position in the file measured in bytes from the beginning of the file, obtained by adding offset to the position specified by whence.

Parameter-Liste

offset

The offset. A negative value can be used to move backwards through the file which is useful when SEEK_END is used as the whence value.

whence

whence values are:

  • SEEK_SET - Set position equal to offset bytes.
  • SEEK_CUR - Set position to current location plus offset.
  • SEEK_END - Set position to end-of-file plus offset.

If whence is not specified, it is assumed to be SEEK_SET.

Rückgabewerte

Returns 0 if the seek was successful, -1 otherwise. Note that seeking past EOF is not considered an error.

Beispiele

Beispiel #1 SplFileObject::fseek() example

<?php
$file = new SplFileObject("somefile.txt");

// Read first line
$data = $file->fgets();

// Move back to the beginning of the file
// Same as $file->rewind();
$file->fseek(0);
?>

Siehe auch

  • fseek() - Positioniert den Dateizeiger


Gets information about the file

  • « SplFileObject::fseek
  • SplFileObject::ftell »
  • PHP Manual
  • SplFileObject
  • Gets information about the file

SplFileObject::fstat

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fstat — Gets information about the file

Beschreibung

public SplFileObject::fstat ( ) : array

Gathers the statistics of the file. Behaves identically to fstat().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array with the statistics of the file; the format of the array is described in detail on the stat() manual page.

Beispiele

Beispiel #1 SplFileObject::fstat() example

<?php
$file = new SplFileObject("/etc/passwd");
$stat = $file->fstat();

// Print only the associative part
print_r(array_slice($stat, 13));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Siehe auch

  • fstat() - Sammelt Informationen über eine Datei mittels eines offenen Dateizeigers
  • stat() - Sammelt Informationen über eine Datei


Return current file position

  • « SplFileObject::fstat
  • SplFileObject::ftruncate »
  • PHP Manual
  • SplFileObject
  • Return current file position

SplFileObject::ftell

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::ftell — Return current file position

Beschreibung

public SplFileObject::ftell ( ) : int

Returns the position of the file pointer which represents the current offset in the file stream.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the position of the file pointer as an integer, or false on error.

Beispiele

Beispiel #1 SplFileObject::ftell() example

<?php
$file = new SplFileObject("/etc/passwd");

// Read first line
$data = $file->fgets();

// Where are we?
echo $file->ftell();
?>

Siehe auch

  • ftell() - Ermittelt die aktuelle Position des Dateizeigers


Truncates the file to a given length

  • « SplFileObject::ftell
  • SplFileObject::fwrite »
  • PHP Manual
  • SplFileObject
  • Truncates the file to a given length

SplFileObject::ftruncate

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::ftruncate — Truncates the file to a given length

Beschreibung

public SplFileObject::ftruncate ( int $size ) : bool

Truncates the file to size bytes.

Parameter-Liste

size

The size to truncate to.

Hinweis:

If size is larger than the file it is extended with null bytes.

If size is smaller than the file, the extra data will be lost.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 SplFileObject::ftruncate() example

<?php
// Create file containing "Hello World!"
$file = new SplFileObject("/tmp/ftruncate", "w+");
$file->fwrite("Hello World!");

// Truncate to 5 bytes
$file->ftruncate(5);

// Rewind and read data
$file->rewind();
echo $file->fgets();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hello

Siehe auch

  • ftruncate() - Kürzt eine Datei auf die angegebene Länge


Write to file

  • « SplFileObject::ftruncate
  • SplFileObject::getChildren »
  • PHP Manual
  • SplFileObject
  • Write to file

SplFileObject::fwrite

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fwrite — Write to file

Beschreibung

public SplFileObject::fwrite ( string $str , int $length = ? ) : int

Writes the contents of string to the file

Parameter-Liste

str

The string to be written to the file.

length

If the length argument is given, writing will stop after length bytes have been written or the end of string is reached, whichever comes first.

Rückgabewerte

Returns the number of bytes written, or false on error.

Changelog

Version | Beschreibung
7.4.0 | The function now returns false instead of zero on failure.

Beispiele

Beispiel #1 SplFileObject::fwrite() example

<?php
$file = new SplFileObject("fwrite.txt", "w");
$written = $file->fwrite("12345");
echo "Wrote $written bytes to file";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Wrote 5 bytes to file

Siehe auch

  • fwrite() - Binär-sicheres Dateischreiben


No purpose

  • « SplFileObject::fwrite
  • SplFileObject::getCsvControl »
  • PHP Manual
  • SplFileObject
  • No purpose

SplFileObject::getChildren

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::getChildren — No purpose

Beschreibung

public SplFileObject::getChildren ( ) : void

An SplFileObject does not have children so this method returns null.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • RecursiveIterator::getChildren() - Returns an iterator for the current entry


Get the delimiter, enclosure and escape character for CSV

  • « SplFileObject::getChildren
  • SplFileObject::getCurrentLine »
  • PHP Manual
  • SplFileObject
  • Get the delimiter, enclosure and escape character for CSV

SplFileObject::getCsvControl

(PHP 5 >= 5.2.0, PHP 7)

SplFileObject::getCsvControl — Get the delimiter, enclosure and escape character for CSV

Beschreibung

public SplFileObject::getCsvControl ( ) : array

Gets the delimiter, enclosure and escape character used for parsing CSV fields.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an indexed array containing the delimiter, enclosure and escape character.

Changelog

Version | Beschreibung
7.4.0 | The escape character can now be an empty string.
5.6.25, 7.0.10 | Added the escape character to the returned array.

Beispiele

Beispiel #1 SplFileObject::getCsvControl() example

<?php
$file = new SplFileObject("data.txt");
print_r($file->getCsvControl());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => ,
    [1] => "
    [2] => \
)

Siehe auch

  • SplFileObject::setCsvControl() - Set the delimiter, enclosure and escape character for CSV
  • SplFileObject::fgetcsv() - Gets line from file and parse as CSV fields


Alias of SplFileObject::fgets

  • « SplFileObject::getCsvControl
  • SplFileObject::getFlags »
  • PHP Manual
  • SplFileObject
  • Alias of SplFileObject::fgets

SplFileObject::getCurrentLine

(PHP 5 >= 5.1.2, PHP 7)

SplFileObject::getCurrentLine — Alias of SplFileObject::fgets()

Beschreibung

Diese Methode ist ein Alias für: SplFileObject::fgets().


Gets flags for the SplFileObject

  • « SplFileObject::getCurrentLine
  • SplFileObject::getMaxLineLen »
  • PHP Manual
  • SplFileObject
  • Gets flags for the SplFileObject

SplFileObject::getFlags

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::getFlags — Gets flags for the SplFileObject

Beschreibung

public SplFileObject::getFlags ( ) : int

Gets the flags set for an instance of SplFileObject as an int.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an int representing the flags.

Beispiele

Beispiel #1 SplFileObject::getFlags() example

<?php
$file = new SplFileObject(__FILE__, "r");

if ($file->getFlags() & SplFileObject::SKIP_EMPTY) {
    echo "Skipping empty lines\n";
} else {
    echo "Not skipping empty lines\n";
}

$file->setFlags(SplFileObject::SKIP_EMPTY);

if ($file->getFlags() & SplFileObject::SKIP_EMPTY) {
    echo "Skipping empty lines\n";
} else {
    echo "Not skipping empty lines\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Not skipping empty lines
Skipping empty lines

Siehe auch

  • SplFileObject::setFlags() - Sets flags for the SplFileObject


Get maximum line length

  • « SplFileObject::getFlags
  • SplFileObject::hasChildren »
  • PHP Manual
  • SplFileObject
  • Get maximum line length

SplFileObject::getMaxLineLen

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::getMaxLineLen — Get maximum line length

Beschreibung

public SplFileObject::getMaxLineLen ( ) : int

Gets the maximum line length as set by SplFileObject::setMaxLineLen().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the maximum line length if one has been set with SplFileObject::setMaxLineLen(), default is 0.

Beispiele

Beispiel #1 SplFileObject::getMaxLineLen() example

<?php
$file = new SplFileObject("file.txt");
var_dump($file->getMaxLineLen());

$file->setMaxLineLen(20);
var_dump($file->getMaxLineLen());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(0)
int(20)

Siehe auch

  • SplFileObject::setMaxLineLen() - Set maximum line length


SplFileObject does not have children

  • « SplFileObject::getMaxLineLen
  • SplFileObject::key »
  • PHP Manual
  • SplFileObject
  • SplFileObject does not have children

SplFileObject::hasChildren

(PHP 5 >= 5.1.2, PHP 7)

SplFileObject::hasChildren — SplFileObject does not have children

Beschreibung

public SplFileObject::hasChildren ( ) : bool

An SplFileObject does not have children so this method always return false.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns false

Siehe auch

  • RecursiveIterator::hasChildren() - Returns if an iterator can be created for the current entry


Get line number

  • « SplFileObject::hasChildren
  • SplFileObject::next »
  • PHP Manual
  • SplFileObject
  • Get line number

SplFileObject::key

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::key — Get line number

Beschreibung

public SplFileObject::key ( ) : int

Gets the current line number.

Hinweis:

This number may not reflect the actual line number in the file if SplFileObject::setMaxLineLen() is used to read fixed lengths of the file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current line number.

Beispiele

Beispiel #1 SplFileObject::key() example

<?php
$file = new SplFileObject("lipsum.txt");
foreach ($file as $line) {
    echo $file->key() . ". " . $line;
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

0. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
1. Duis nec sapien felis, ac sodales nisl.
2. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Beispiel #2 SplFileObject::key() example with SplFileObject::setMaxLineLen()

<?php
$file = new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach ($file as $line) {
    echo $file->key() . ". " . $line . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

0. Lorem ipsum dolor s
1. it amet, consectetu
2. r adipiscing elit.
3.

4. Duis nec sapien fel
5. is, ac sodales nisl
6. .

7. Lorem ipsum dolor s
8. it amet, consectetu
9. r adipiscing elit.

Siehe auch

  • SplFileObject::current() - Retrieve current line of file
  • SplFileObject::seek() - Seek to specified line
  • SplFileObject::next() - Read next line
  • SplFileObject::rewind() - Rewind the file to the first line
  • SplFileObject::valid() - Not at EOF


Read next line

  • « SplFileObject::key
  • SplFileObject::rewind »
  • PHP Manual
  • SplFileObject
  • Read next line

SplFileObject::next

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::next — Read next line

Beschreibung

public SplFileObject::next ( ) : void

Moves ahead to the next line in the file.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplFileObject::next() example

<?php
// Read through file line by line
$file = new SplFileObject("misc.txt");
while (!$file->eof()) {
    echo $file->current();
    $file->next();
}
?>

Siehe auch

  • SplFileObject::current() - Retrieve current line of file
  • SplFileObject::key() - Get line number
  • SplFileObject::seek() - Seek to specified line
  • SplFileObject::rewind() - Rewind the file to the first line
  • SplFileObject::valid() - Not at EOF


Rewind the file to the first line

  • « SplFileObject::next
  • SplFileObject::seek »
  • PHP Manual
  • SplFileObject
  • Rewind the file to the first line

SplFileObject::rewind

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::rewind — Rewind the file to the first line

Beschreibung

public SplFileObject::rewind ( ) : void

Rewinds the file back to the first line.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws a RuntimeException if cannot be rewound.

Beispiele

Beispiel #1 SplFileObject::rewind() example

<?php
$file = new SplFileObject("misc.txt");

// Loop over whole file
foreach ($file as $line) { }

// Rewind to first line
$file->rewind();

// Output first line
echo $file->current();
?>

Siehe auch

  • SplFileObject::current() - Retrieve current line of file
  • SplFileObject::key() - Get line number
  • SplFileObject::seek() - Seek to specified line
  • SplFileObject::next() - Read next line
  • SplFileObject::valid() - Not at EOF


Seek to specified line

  • « SplFileObject::rewind
  • SplFileObject::setCsvControl »
  • PHP Manual
  • SplFileObject
  • Seek to specified line

SplFileObject::seek

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::seek — Seek to specified line

Beschreibung

public SplFileObject::seek ( int $line_pos ) : void

Seek to specified line in the file.

Parameter-Liste

line_pos

The zero-based line number to seek to.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws a LogicException if the line_pos is negative.

Beispiele

Beispiel #1 SplFileObject::seek() example

This example outputs the third line of the script which is found at position 2.

<?php
$file = new SplFileObject(__FILE__);
$file->seek(2);
echo $file->current();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

$file->seek(2);

Siehe auch

  • SplFileObject::current() - Retrieve current line of file
  • SplFileObject::key() - Get line number
  • SplFileObject::next() - Read next line
  • SplFileObject::rewind() - Rewind the file to the first line
  • SplFileObject::valid() - Not at EOF


Set the delimiter, enclosure and escape character for CSV

  • « SplFileObject::seek
  • SplFileObject::setFlags »
  • PHP Manual
  • SplFileObject
  • Set the delimiter, enclosure and escape character for CSV

SplFileObject::setCsvControl

(PHP 5 >= 5.2.0, PHP 7)

SplFileObject::setCsvControl — Set the delimiter, enclosure and escape character for CSV

Beschreibung

public SplFileObject::setCsvControl
 ( string $delimiter = ","
, string $enclosure = "\""
, string $escape = "\\"
) : void

Sets the delimiter, enclosure and escape character for parsing CSV fields.

Parameter-Liste

delimiter

The field delimiter (one character only).

enclosure

The field enclosure character (one character only).

escape

The field escape character (at most one character). An empty string ("") disables the proprietary escape mechanism.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
7.4.0 | The escape parameter now also accepts an empty string to disable the proprietary escape mechanism.

Beispiele

Beispiel #1 SplFileObject::setCsvControl() example

<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl('|');
foreach ($file as $row) {
    list ($fruit, $quantity) = $row;
    // Do something with values
}
?>

Contents of data.csv

<?php
apples|20
bananas|14
cherries|87
?>

Siehe auch

  • SplFileObject::getCsvControl() - Get the delimiter, enclosure and escape character for CSV
  • SplFileObject::fgetcsv() - Gets line from file and parse as CSV fields


Sets flags for the SplFileObject

  • « SplFileObject::setCsvControl
  • SplFileObject::setMaxLineLen »
  • PHP Manual
  • SplFileObject
  • Sets flags for the SplFileObject

SplFileObject::setFlags

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::setFlags — Sets flags for the SplFileObject

Beschreibung

public SplFileObject::setFlags ( int $flags ) : void

Sets the flags to be used by the SplFileObject.

Parameter-Liste

flags

Bit mask of the flags to set. See SplFileObject constants for the available flags.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SplFileObject::setFlags() example

<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $fields) {
    var_dump($fields);
}
?>

Siehe auch

  • SplFileObject::getFlags() - Gets flags for the SplFileObject


Set maximum line length

  • « SplFileObject::setFlags
  • SplFileObject::__toString »
  • PHP Manual
  • SplFileObject
  • Set maximum line length

SplFileObject::setMaxLineLen

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::setMaxLineLen — Set maximum line length

Beschreibung

public SplFileObject::setMaxLineLen ( int $max_len ) : void

Sets the maximum length of a line to be read.

Parameter-Liste

max_len

The maximum length of a line.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws DomainException when max_len is less than zero.

Beispiele

Beispiel #1 SplFileObject::setMaxLineLen() example

<?php
$file = new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach ($file as $line) {
    echo $line . "\n";
}
?>

Contents of lipsum.txt

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Duis nec sapien felis, ac sodales nisl.
Nulla vitae magna vitae purus aliquet consequat.

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Lorem ipsum dolor s
it amet, consectetu
r adipiscing elit.

Duis nec sapien fel
is, ac sodales nisl
.

Nulla vitae magna v
itae purus aliquet
consequat.

Siehe auch

  • SplFileObject::getMaxLineLen() - Get maximum line length


Alias of SplFileObject::fgets

  • « SplFileObject::setMaxLineLen
  • SplFileObject::valid »
  • PHP Manual
  • SplFileObject
  • Alias of SplFileObject::fgets

SplFileObject::__toString

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::__toString — Alias of SplFileObject::fgets()

Beschreibung

Diese Methode ist ein Alias für: SplFileObject::fgets().

Changelog

Version | Beschreibung
7.2.19, 7.3.6 | Changed from an alias of SplFileObject::current() to an alias of SplFileObject::fgets().


Not at EOF

  • « SplFileObject::__toString
  • SplTempFileObject »
  • PHP Manual
  • SplFileObject
  • Not at EOF

SplFileObject::valid

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::valid — Not at EOF

Beschreibung

public SplFileObject::valid ( ) : bool

Check whether EOF has been reached.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if not reached EOF, false otherwise.

Beispiele

Beispiel #1 SplFileObject::valid() example

<?php
// Loop over a file, line by line
$file = new SplFileObject("file.txt");
while ($file->valid()) {
    echo $file->fgets();
}
?>

Siehe auch

  • SplFileObject::current() - Retrieve current line of file
  • SplFileObject::key() - Get line number
  • SplFileObject::seek() - Seek to specified line
  • SplFileObject::next() - Read next line
  • SplFileObject::rewind() - Rewind the file to the first line


The SplTempFileObject class

(PHP 5 >= 5.1.2, PHP 7)

Einführung

The SplTempFileObject class offers an object oriented interface for a temporary file.

Klassenbeschreibung

SplTempFileObject extends SplFileObject implements SeekableIterator , RecursiveIterator {
/* Geerbte Konstanten */
const int SplFileObject::DROP_NEW_LINE = 1 ;
const int SplFileObject::READ_AHEAD = 2 ;
const int SplFileObject::SKIP_EMPTY = 4 ;
const int SplFileObject::READ_CSV = 8 ;
/* Methoden */
public __construct ( int $max_memory = ? )
/* Geerbte Methoden */
public SplFileObject::current ( ) : string|array
public SplFileObject::eof ( ) : bool
public SplFileObject::fflush ( ) : bool
public SplFileObject::fgetc ( ) : string
public SplFileObject::fgetcsv
 ( string $delimiter = ","
, string $enclosure = "\""
, string $escape = "\\"
) : array
public SplFileObject::fgets ( ) : string
public SplFileObject::fgetss ( string $allowable_tags = ? ) : string
public SplFileObject::flock ( int $operation , int &$wouldblock = ? ) : bool
public SplFileObject::fpassthru ( ) : int
public SplFileObject::fputcsv
 ( array $fields
, string $delimiter = ","
, string $enclosure = '"'
, string $escape = "\\"
) : int|false
public SplFileObject::fread ( int $length ) : string|false
public SplFileObject::fscanf ( string $format , mixed &...$vars ) : mixed
public SplFileObject::fseek ( int $offset , int $whence = SEEK_SET ) : int
public SplFileObject::fstat ( ) : array
public SplFileObject::ftell ( ) : int
public SplFileObject::ftruncate ( int $size ) : bool
public SplFileObject::fwrite ( string $str , int $length = ? ) : int
public SplFileObject::getChildren ( ) : void
public SplFileObject::getCsvControl ( ) : array
public SplFileObject::getFlags ( ) : int
public SplFileObject::getMaxLineLen ( ) : int
public SplFileObject::hasChildren ( ) : bool
public SplFileObject::key ( ) : int
public SplFileObject::next ( ) : void
public SplFileObject::rewind ( ) : void
public SplFileObject::seek ( int $line_pos ) : void
public SplFileObject::setCsvControl
 ( string $delimiter = ","
, string $enclosure = "\""
, string $escape = "\\"
) : void
public SplFileObject::setFlags ( int $flags ) : void
public SplFileObject::setMaxLineLen ( int $max_len ) : void
public SplFileObject::valid ( ) : bool
}

Inhaltsverzeichnis

  • SplTempFileObject::__construct — Construct a new temporary file object


Construct a new temporary file object

  • « SplTempFileObject
  • Verschiedene Klassen und Interfaces »
  • PHP Manual
  • SplTempFileObject
  • Construct a new temporary file object

SplTempFileObject::__construct

(PHP 5 >= 5.1.2, PHP 7)

SplTempFileObject::__construct — Construct a new temporary file object

Beschreibung

public SplTempFileObject::__construct ( int $max_memory = ? )

Construct a new temporary file object.

Parameter-Liste

max_memory

The maximum amount of memory (in bytes, default is 2 MB) for the temporary file to use. If the temporary file exceeds this size, it will be moved to a file in the system's temp directory.

If max_memory is negative, only memory will be used. If max_memory is zero, no memory will be used.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws a RuntimeException if an error occurs.

Beispiele

Beispiel #1 SplTempFileObject() example

This example writes a temporary file in memory which can be written to and read from.

<?php
$temp = new SplTempFileObject();
$temp->fwrite("This is the first line\n");
$temp->fwrite("And this is the second.\n");
echo "Written " . $temp->ftell() . " bytes to temporary file.\n\n";

// Rewind and read what was written
$temp->rewind();
foreach ($temp as $line) {
    echo $line;
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Written 47 bytes to temporary file.

This is the first line
And this is the second.

Siehe auch

  • SplFileObject
  • PHP input/output streams (for php://temp and php://memory)


Verschiedene Klassen und Interfaces

Inhaltsverzeichnis

  • ArrayObject
  • SplObserver
  • SplSubject

Klassen und Interfaces, die nicht zu den anderen Kategorien in SPL passen.


The ArrayObject class

(PHP 5, PHP 7)

Einführung

This class allows objects to work as arrays.

Klassenbeschreibung

ArrayObject implements IteratorAggregate , ArrayAccess , Serializable , Countable {
/* Konstanten */
const int STD_PROP_LIST = 1 ;
const int ARRAY_AS_PROPS = 2 ;
/* Methoden */
public __construct ( mixed $input = array() , int $flags = 0 , string $iterator_class = "ArrayIterator" )
public append ( mixed $value ) : void
public asort ( int $flags = SORT_REGULAR ) : void
public count ( ) : int
public exchangeArray ( mixed $input ) : array
public getArrayCopy ( ) : array
public getFlags ( ) : int
public getIterator ( ) : ArrayIterator
public getIteratorClass ( ) : string
public ksort ( int $flags = SORT_REGULAR ) : void
public natcasesort ( ) : void
public natsort ( ) : void
public offsetExists ( mixed $index ) : bool
public offsetGet ( mixed $index ) : mixed
public offsetSet ( mixed $index , mixed $newval ) : void
public offsetUnset ( mixed $index ) : void
public serialize ( ) : string
public setFlags ( int $flags ) : void
public setIteratorClass ( string $iterator_class ) : void
public uasort ( callable $cmp_function ) : void
public uksort ( callable $cmp_function ) : void
public unserialize ( string $serialized ) : void
}

Vordefinierte Konstanten

ArrayObject Flags

ArrayObject::STD_PROP_LIST

Properties of the object have their normal functionality when accessed as list (var_dump, foreach, etc.).

ArrayObject::ARRAY_AS_PROPS

Entries can be accessed as properties (read and write).

Changelog

Version | Beschreibung
5.3.0 | Implements Serializable.

Inhaltsverzeichnis

  • ArrayObject::append — Appends the value
  • ArrayObject::asort — Sort the entries by value
  • ArrayObject::__construct — Construct a new array object
  • ArrayObject::count — Get the number of public properties in the ArrayObject
  • ArrayObject::exchangeArray — Exchange the array for another one
  • ArrayObject::getArrayCopy — Creates a copy of the ArrayObject
  • ArrayObject::getFlags — Gets the behavior flags
  • ArrayObject::getIterator — Create a new iterator from an ArrayObject instance
  • ArrayObject::getIteratorClass — Gets the iterator classname for the ArrayObject
  • ArrayObject::ksort — Sort the entries by key
  • ArrayObject::natcasesort — Sort an array using a case insensitive "natural order" algorithm
  • ArrayObject::natsort — Sort entries using a "natural order" algorithm
  • ArrayObject::offsetExists — Returns whether the requested index exists
  • ArrayObject::offsetGet — Returns the value at the specified index
  • ArrayObject::offsetSet — Sets the value at the specified index to newval
  • ArrayObject::offsetUnset — Unsets the value at the specified index
  • ArrayObject::serialize — Serialize an ArrayObject
  • ArrayObject::setFlags — Sets the behavior flags
  • ArrayObject::setIteratorClass — Sets the iterator classname for the ArrayObject
  • ArrayObject::uasort — Sort the entries with a user-defined comparison function and maintain key association
  • ArrayObject::uksort — Sort the entries by keys using a user-defined comparison function
  • ArrayObject::unserialize — Unserialize an ArrayObject


Appends the value

  • « ArrayObject
  • ArrayObject::asort »
  • PHP Manual
  • ArrayObject
  • Appends the value

ArrayObject::append

(PHP 5, PHP 7)

ArrayObject::append — Appends the value

Beschreibung

public ArrayObject::append ( mixed $value ) : void

Appends a new value as the last element.

Hinweis:

This method cannot be called when the ArrayObject was constructed from an object. Use ArrayObject::offsetSet() instead.

Parameter-Liste

value

The value being appended.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayObject::append() example

<?php
$arrayobj = new ArrayObject(array('first','second','third'));
$arrayobj->append('fourth');
$arrayobj->append(array('five', 'six'));
var_dump($arrayobj);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(ArrayObject)#1 (5) {
  [0]=>
  string(5) "first"
  [1]=>
  string(6) "second"
  [2]=>
  string(5) "third"
  [3]=>
  string(6) "fourth"
  [4]=>
  array(2) {
    [0]=>
    string(4) "five"
    [1]=>
    string(3) "six"
  }
}

Siehe auch

  • ArrayObject::offsetSet() - Sets the value at the specified index to newval


Sort the entries by value

  • « ArrayObject::append
  • ArrayObject::__construct »
  • PHP Manual
  • ArrayObject
  • Sort the entries by value

ArrayObject::asort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::asort — Sort the entries by value

Beschreibung

public ArrayObject::asort ( int $flags = SORT_REGULAR ) : void

Sorts the entries such that the keys maintain their correlation with the entries they are associated with. This is used mainly when sorting associative arrays where the actual element order is significant.

Parameter-Liste

flags

Der optionale zweite Parameter flags kann verwendet werden, um das Sortierverhalten anhand dieser Werte zu ändern:

Flags für den Sortiertyp:

  • SORT_REGULAR - vergleicht Elemente normal; die Details werden im Abschnitt Vergleichsoperatoren beschrieben.
  • SORT_NUMERIC - vergleicht Elemente numerisch.
  • SORT_STRING - vergleicht Elemente als Zeichenketten.
  • SORT_LOCALE_STRING - vergleicht Elemente als Zeichenketten, basierend auf dem aktuellen Gebietsschema. Es wird das Gebietsschema verwendet, das mit setlocale() geändert werden kann.
  • SORT_NATURAL - vergleicht Elemente als Zeichenketten wie natsort() mit "natürlicher Ordnung".
  • SORT_FLAG_CASE - kann kombiniert werden (bitweise ODER) mit SORT_STRING oder SORT_NATURAL, um Zeichenketten unter Berücksichtigung der Groß- und Kleinschreibung zu sortieren.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayObject::asort() example

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
$fruitArrayObject = new ArrayObject($fruits);
$fruitArrayObject->asort();

foreach ($fruitArrayObject as $key => $val) {
    echo "$key = $val\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

c = apple
b = banana
d = lemon
a = orange

The fruits have been sorted in alphabetical order, and the key associated with each entry has been maintained.

Siehe auch

  • ArrayObject::ksort() - Sort the entries by key
  • ArrayObject::natsort() - Sort entries using a "natural order" algorithm
  • ArrayObject::natcasesort() - Sort an array using a case insensitive "natural order" algorithm
  • ArrayObject::uasort() - Sort the entries with a user-defined comparison function and maintain key association
  • ArrayObject::uksort() - Sort the entries by keys using a user-defined comparison function


Construct a new array object

  • « ArrayObject::asort
  • ArrayObject::count »
  • PHP Manual
  • ArrayObject
  • Construct a new array object

ArrayObject::__construct

(PHP 5, PHP 7)

ArrayObject::__construct — Construct a new array object

Beschreibung

public ArrayObject::__construct ( mixed $input = array() , int $flags = 0 , string $iterator_class = "ArrayIterator" )

This constructs a new array object.

Parameter-Liste

input

The input parameter accepts an array or an Object.

flags

Flags to control the behaviour of the ArrayObject object. See ArrayObject::setFlags().

iterator_class

Specify the class that will be used for iteration of the ArrayObject object.

Rückgabewerte

Returns an ArrayObject object on success.

Fehler/Exceptions

Throws InvalidArgumentException when:

  • input is not an array or object
  • flags is not an integer
  • iterator_class is not an object that implements Iterator

Beispiele

Beispiel #1 ArrayObject::__construct() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(ArrayObject)#1 (3) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
}

Siehe auch

  • ArrayObject::setflags() - Sets the behavior flags


Get the number of public properties in the ArrayObject

  • « ArrayObject::__construct
  • ArrayObject::exchangeArray »
  • PHP Manual
  • ArrayObject
  • Get the number of public properties in the ArrayObject

ArrayObject::count

(PHP 5, PHP 7)

ArrayObject::count — Get the number of public properties in the ArrayObject

Beschreibung

public ArrayObject::count ( ) : int

Get the number of public properties in the ArrayObject.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of public properties in the ArrayObject.

Hinweis:

When the ArrayObject is constructed from an array all properties are public.

Beispiele

Beispiel #1 ArrayObject::count() example

<?php
class Example {
    public $public = 'prop:public';
    private $prv   = 'prop:private';
    protected $prt = 'prop:protected';
}

$arrayobj = new ArrayObject(new Example());
var_dump($arrayobj->count());

$arrayobj = new ArrayObject(array('first','second','third'));
var_dump($arrayobj->count());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)
int(3)


Exchange the array for another one

  • « ArrayObject::count
  • ArrayObject::getArrayCopy »
  • PHP Manual
  • ArrayObject
  • Exchange the array for another one

ArrayObject::exchangeArray

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::exchangeArray — Exchange the array for another one

Beschreibung

public ArrayObject::exchangeArray ( mixed $input ) : array

Exchange the current array with another array or object.

Parameter-Liste

input

The new array or object to exchange with the current array.

Rückgabewerte

Returns the old array.

Beispiele

Beispiel #1 ArrayObject::exchangeArray() example

<?php
// Array of available fruits
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);
// Array of locations in Europe
$locations = array('Amsterdam', 'Paris', 'London');

$fruitsArrayObject = new ArrayObject($fruits);

// Now exchange fruits for locations
$old = $fruitsArrayObject->exchangeArray($locations);
print_r($old);
print_r($fruitsArrayObject);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
)
ArrayObject Object
(
    [0] => Amsterdam
    [1] => Paris
    [2] => London
)


Creates a copy of the ArrayObject

  • « ArrayObject::exchangeArray
  • ArrayObject::getFlags »
  • PHP Manual
  • ArrayObject
  • Creates a copy of the ArrayObject

ArrayObject::getArrayCopy

(PHP 5, PHP 7)

ArrayObject::getArrayCopy — Creates a copy of the ArrayObject

Beschreibung

public ArrayObject::getArrayCopy ( ) : array

Exports the ArrayObject to an array.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a copy of the array. When the ArrayObject refers to an object, an array of the properties of that object will be returned.

Beispiele

Beispiel #1 ArrayObject::getArrayCopy() example

<?php
// Array of available fruits
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);
$fruitsArrayObject['pears'] = 4;

// create a copy of the array
$copy = $fruitsArrayObject->getArrayCopy();
print_r($copy);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
    [pears] => 4
)


Gets the behavior flags

  • « ArrayObject::getArrayCopy
  • ArrayObject::getIterator »
  • PHP Manual
  • ArrayObject
  • Gets the behavior flags

ArrayObject::getFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::getFlags — Gets the behavior flags

Beschreibung

public ArrayObject::getFlags ( ) : int

Gets the behavior flags of the ArrayObject. See the ArrayObject::setFlags method for a list of the available flags.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the behavior flags of the ArrayObject.

Beispiele

Beispiel #1 ArrayObject::getFlags() example

<?php
// Array of available fruits
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Get the current flags
$flags = $fruitsArrayObject->getFlags();
var_dump($flags);

// Set new flags
$fruitsArrayObject->setFlags(ArrayObject::ARRAY_AS_PROPS);

// Get the new flags
$flags = $fruitsArrayObject->getFlags();
var_dump($flags);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)
int(2)

Siehe auch

  • ArrayObject::setFlags() - Sets the behavior flags


Create a new iterator from an ArrayObject instance

  • « ArrayObject::getFlags
  • ArrayObject::getIteratorClass »
  • PHP Manual
  • ArrayObject
  • Create a new iterator from an ArrayObject instance

ArrayObject::getIterator

(PHP 5, PHP 7)

ArrayObject::getIterator — Create a new iterator from an ArrayObject instance

Beschreibung

public ArrayObject::getIterator ( ) : ArrayIterator

Create a new iterator from an ArrayObject instance.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An iterator from an ArrayObject.

Beispiele

Beispiel #1 ArrayObject::getIterator() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1 => one
2 => two
3 => three


Gets the iterator classname for the ArrayObject

  • « ArrayObject::getIterator
  • ArrayObject::ksort »
  • PHP Manual
  • ArrayObject
  • Gets the iterator classname for the ArrayObject

ArrayObject::getIteratorClass

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::getIteratorClass — Gets the iterator classname for the ArrayObject

Beschreibung

public ArrayObject::getIteratorClass ( ) : string

Gets the class name of the array iterator that is used by ArrayObject::getIterator().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the iterator class name that is used to iterate over this object.

Beispiele

Beispiel #1 ArrayObject::getIteratorClass() example

<?php
// Custom ArrayIterator (inherits from ArrayIterator)
class MyArrayIterator extends ArrayIterator {
    // custom implementation
}

// Array of available fruits
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Get the current class name
$className = $fruitsArrayObject->getIteratorClass();
var_dump($className);

// Set new classname
$fruitsArrayObject->setIteratorClass('MyArrayIterator');

// Get the new iterator classname
$className = $fruitsArrayObject->getIteratorClass();
var_dump($className);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(13) "ArrayIterator"
string(15) "MyArrayIterator"

Siehe auch

  • The ArrayObject::setIteratorClass method


Sort the entries by key

  • « ArrayObject::getIteratorClass
  • ArrayObject::natcasesort »
  • PHP Manual
  • ArrayObject
  • Sort the entries by key

ArrayObject::ksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::ksort — Sort the entries by key

Beschreibung

public ArrayObject::ksort ( int $flags = SORT_REGULAR ) : void

Sorts the entries by key, maintaining key to entry correlations. This is useful mainly for associative arrays.

Parameter-Liste

flags

Der optionale zweite Parameter flags kann verwendet werden, um das Sortierverhalten anhand dieser Werte zu ändern:

Flags für den Sortiertyp:

  • SORT_REGULAR - vergleicht Elemente normal; die Details werden im Abschnitt Vergleichsoperatoren beschrieben.
  • SORT_NUMERIC - vergleicht Elemente numerisch.
  • SORT_STRING - vergleicht Elemente als Zeichenketten.
  • SORT_LOCALE_STRING - vergleicht Elemente als Zeichenketten, basierend auf dem aktuellen Gebietsschema. Es wird das Gebietsschema verwendet, das mit setlocale() geändert werden kann.
  • SORT_NATURAL - vergleicht Elemente als Zeichenketten wie natsort() mit "natürlicher Ordnung".
  • SORT_FLAG_CASE - kann kombiniert werden (bitweise ODER) mit SORT_STRING oder SORT_NATURAL, um Zeichenketten unter Berücksichtigung der Groß- und Kleinschreibung zu sortieren.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayObject::ksort() example

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
$fruitArrayObject = new ArrayObject($fruits);
$fruitArrayObject->ksort();

foreach ($fruitArrayObject as $key => $val) {
    echo "$key = $val\n";
}
 ?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a = orange
b = banana
c = apple
d = lemon

Siehe auch

  • ArrayObject::asort() - Sort the entries by value
  • ArrayObject::natsort() - Sort entries using a "natural order" algorithm
  • ArrayObject::natcasesort() - Sort an array using a case insensitive "natural order" algorithm
  • ArrayObject::uasort() - Sort the entries with a user-defined comparison function and maintain key association
  • ArrayObject::uksort() - Sort the entries by keys using a user-defined comparison function


Sort an array using a case insensitive "natural order" algorithm

  • « ArrayObject::ksort
  • ArrayObject::natsort »
  • PHP Manual
  • ArrayObject
  • Sort an array using a case insensitive "natural order" algorithm

ArrayObject::natcasesort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::natcasesort — Sort an array using a case insensitive "natural order" algorithm

Beschreibung

public ArrayObject::natcasesort ( ) : void

This method is a case insensitive version of ArrayObject::natsort.

This method implements a sort algorithm that orders alphanumeric strings in the way a human being would while maintaining key/value associations. This is described as a "natural ordering".

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayObject::natcasesort() example

<?php
$array = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

$arr1 = new ArrayObject($array);
$arr2 = clone $arr1;

$arr1->asort();
echo "Standard sorting\n";
print_r($arr1);

$arr2->natcasesort();
echo "\nNatural order sorting (case-insensitive)\n";
print_r($arr2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Standard sorting
ArrayObject Object
(
    [0] => IMG0.png
    [5] => IMG3.png
    [4] => img1.png
    [2] => img10.png
    [1] => img12.png
    [3] => img2.png
)

Natural order sorting (case-insensitive)
ArrayObject Object
(
    [0] => IMG0.png
    [4] => img1.png
    [3] => img2.png
    [5] => IMG3.png
    [2] => img10.png
    [1] => img12.png
)

For more information see: Martin Pool's » Natural Order String Comparison page.

Siehe auch

  • ArrayObject::asort() - Sort the entries by value
  • ArrayObject::ksort() - Sort the entries by key
  • ArrayObject::natsort() - Sort entries using a "natural order" algorithm
  • ArrayObject::uasort() - Sort the entries with a user-defined comparison function and maintain key association
  • ArrayObject::uksort() - Sort the entries by keys using a user-defined comparison function


Sort entries using a "natural order" algorithm

  • « ArrayObject::natcasesort
  • ArrayObject::offsetExists »
  • PHP Manual
  • ArrayObject
  • Sort entries using a "natural order" algorithm

ArrayObject::natsort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::natsort — Sort entries using a "natural order" algorithm

Beschreibung

public ArrayObject::natsort ( ) : void

This method implements a sort algorithm that orders alphanumeric strings in the way a human being would while maintaining key/value associations. This is described as a "natural ordering". An example of the difference between this algorithm and the regular computer string sorting algorithms (used in ArrayObject::asort) method can be seen in the example below.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayObject::natsort() example

<?php
$array = array("img12.png", "img10.png", "img2.png", "img1.png");

$arr1 = new ArrayObject($array);
$arr2 = clone $arr1;

$arr1->asort();
echo "Standard sorting\n";
print_r($arr1);

$arr2->natsort();
echo "\nNatural order sorting\n";
print_r($arr2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Standard sorting
ArrayObject Object
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Natural order sorting
ArrayObject Object
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

For more information see: Martin Pool's » Natural Order String Comparison page.

Siehe auch

  • ArrayObject::asort() - Sort the entries by value
  • ArrayObject::ksort() - Sort the entries by key
  • ArrayObject::natcasesort() - Sort an array using a case insensitive "natural order" algorithm
  • ArrayObject::uasort() - Sort the entries with a user-defined comparison function and maintain key association
  • ArrayObject::uksort() - Sort the entries by keys using a user-defined comparison function


Returns whether the requested index exists

  • « ArrayObject::natsort
  • ArrayObject::offsetGet »
  • PHP Manual
  • ArrayObject
  • Returns whether the requested index exists

ArrayObject::offsetExists

(PHP 5, PHP 7)

ArrayObject::offsetExists — Returns whether the requested index exists

Beschreibung

public ArrayObject::offsetExists ( mixed $index ) : bool

Parameter-Liste

index

The index being checked.

Rückgabewerte

true if the requested index exists, otherwise false

Beispiele

Beispiel #1 ArrayObject::offsetExists() example

<?php
$arrayobj = new ArrayObject(array('zero', 'one', 'example'=>'e.g.'));
var_dump($arrayobj->offsetExists(1));
var_dump($arrayobj->offsetExists('example'));
var_dump($arrayobj->offsetExists('notfound'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(false)


Returns the value at the specified index

  • « ArrayObject::offsetExists
  • ArrayObject::offsetSet »
  • PHP Manual
  • ArrayObject
  • Returns the value at the specified index

ArrayObject::offsetGet

(PHP 5, PHP 7)

ArrayObject::offsetGet — Returns the value at the specified index

Beschreibung

public ArrayObject::offsetGet ( mixed $index ) : mixed

Parameter-Liste

index

The index with the value.

Rückgabewerte

The value at the specified index or null.

Fehler/Exceptions

Produces an E_NOTICE error message when the specified index does not exist.

Beispiele

Beispiel #1 ArrayObject::offsetGet() example

<?php
$arrayobj = new ArrayObject(array('zero', 7, 'example'=>'e.g.'));
var_dump($arrayobj->offsetGet(1));
var_dump($arrayobj->offsetGet('example'));
var_dump($arrayobj->offsetExists('notfound'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(7)
string(4) "e.g."
bool(false)


Sets the value at the specified index to newval

  • « ArrayObject::offsetGet
  • ArrayObject::offsetUnset »
  • PHP Manual
  • ArrayObject
  • Sets the value at the specified index to newval

ArrayObject::offsetSet

(PHP 5, PHP 7)

ArrayObject::offsetSet — Sets the value at the specified index to newval

Beschreibung

public ArrayObject::offsetSet ( mixed $index , mixed $newval ) : void

Sets the value at the specified index to newval.

Parameter-Liste

index

The index being set.

newval

The new value for the index.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayObject::offsetSet() example

<?php
class Example {
    public $property = 'prop:public';
}
$arrayobj = new ArrayObject(new Example());
$arrayobj->offsetSet(4, 'four');
$arrayobj->offsetSet('group', array('g1', 'g2'));
var_dump($arrayobj);

$arrayobj = new ArrayObject(array('zero','one'));
$arrayobj->offsetSet(null, 'last');
var_dump($arrayobj);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(ArrayObject)#1 (3) {
  ["property"]=>
  string(11) "prop:public"
  [4]=>
  string(4) "four"
  ["group"]=>
  array(2) {
    [0]=>
    string(2) "g1"
    [1]=>
    string(2) "g2"
  }
}
object(ArrayObject)#3 (3) {
  [0]=>
  string(4) "zero"
  [1]=>
  string(3) "one"
  [2]=>
  string(4) "last"
}

Siehe auch

  • ArrayObject::append() - Appends the value


Unsets the value at the specified index

  • « ArrayObject::offsetSet
  • ArrayObject::serialize »
  • PHP Manual
  • ArrayObject
  • Unsets the value at the specified index

ArrayObject::offsetUnset

(PHP 5, PHP 7)

ArrayObject::offsetUnset — Unsets the value at the specified index

Beschreibung

public ArrayObject::offsetUnset ( mixed $index ) : void

Unsets the value at the specified index.

Parameter-Liste

index

The index being unset.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayObject::offsetUnset() example

<?php
$arrayobj = new ArrayObject(array(0=>'zero',2=>'two'));
$arrayobj->offsetUnset(2);
var_dump($arrayobj);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(ArrayObject)#1 (1) {
  [0]=>
  string(4) "zero"
}


Serialize an ArrayObject

  • « ArrayObject::offsetUnset
  • ArrayObject::setFlags »
  • PHP Manual
  • ArrayObject
  • Serialize an ArrayObject

ArrayObject::serialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayObject::serialize — Serialize an ArrayObject

Beschreibung

public ArrayObject::serialize ( ) : string

Serializes an ArrayObject.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The serialized representation of the ArrayObject.

Beispiele

Beispiel #1 ArrayObject::serialize() example

<?php
$o = new ArrayObject();

$s1 = serialize($o);
$s2 = $o->serialize();

var_dump($s1);
var_dump($s2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(45) "C:11:"ArrayObject":21:{x:i:0;a:0:{};m:a:0:{}}"
string(21) "x:i:0;a:0:{};m:a:0:{}"

Siehe auch

  • ArrayObject::unserialize() - Unserialize an ArrayObject
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Serializing Objects


Sets the behavior flags

  • « ArrayObject::serialize
  • ArrayObject::setIteratorClass »
  • PHP Manual
  • ArrayObject
  • Sets the behavior flags

ArrayObject::setFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::setFlags — Sets the behavior flags

Beschreibung

public ArrayObject::setFlags ( int $flags ) : void

Set the flags that change the behavior of the ArrayObject.

Parameter-Liste

flags

The new ArrayObject behavior. It takes on either a bitmask, or named constants. Using named constants is strongly encouraged to ensure compatibility for future versions.

The available behavior flags are listed below. The actual meanings of these flags are described in the predefined constants.

ArrayObject behavior flags
value | constant
1 | ArrayObject::STD_PROP_LIST
2 | ArrayObject::ARRAY_AS_PROPS

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayObject::setFlags() example

<?php
// Array of available fruits
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Try to use array key as property
var_dump($fruitsArrayObject->lemons);
// Set the flag so that the array keys can be used as properties of the ArrayObject
$fruitsArrayObject->setFlags(ArrayObject::ARRAY_AS_PROPS);
// Try it again
var_dump($fruitsArrayObject->lemons);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
int(1)


Sets the iterator classname for the ArrayObject

  • « ArrayObject::setFlags
  • ArrayObject::uasort »
  • PHP Manual
  • ArrayObject
  • Sets the iterator classname for the ArrayObject

ArrayObject::setIteratorClass

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::setIteratorClass — Sets the iterator classname for the ArrayObject

Beschreibung

public ArrayObject::setIteratorClass ( string $iterator_class ) : void

Sets the classname of the array iterator that is used by ArrayObject::getIterator().

Parameter-Liste

iterator_class

The classname of the array iterator to use when iterating over this object.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayObject::setIteratorClass() example

<?php
// Custom ArrayIterator (inherits from ArrayIterator)
class MyArrayIterator extends ArrayIterator {
    // custom implementation
}

// Array of available fruits
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Set the iterator classname to the newly
$fruitsArrayObject->setIteratorClass('MyArrayIterator');
print_r($fruitsArrayObject->getIterator());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

MyArrayIterator Object
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
)


Sort the entries with a user-defined comparison function and maintain key association

  • « ArrayObject::setIteratorClass
  • ArrayObject::uksort »
  • PHP Manual
  • ArrayObject
  • Sort the entries with a user-defined comparison function and maintain key association

ArrayObject::uasort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::uasort — Sort the entries with a user-defined comparison function and maintain key association

Beschreibung

public ArrayObject::uasort ( callable $cmp_function ) : void

This function sorts the entries such that keys maintain their correlation with the entry that they are associated with, using a user-defined comparison function.

This is used mainly when sorting associative arrays where the actual element order is significant.

Parameter-Liste

cmp_function

Function cmp_function should accept two parameters which will be filled by pairs of entries. 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.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayObject::uasort() example

<?php
// Comparison function
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

// Array to be sorted
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
$arrayObject = new ArrayObject($array);
print_r($arrayObject);

// Sort and print the resulting array
$arrayObject->uasort('cmp');
print_r($arrayObject);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [a] => 4
    [b] => 8
    [c] => -1
    [d] => -9
    [e] => 2
    [f] => 5
    [g] => 3
    [h] => -4
)
Array
(
    [d] => -9
    [h] => -4
    [c] => -1
    [e] => 2
    [g] => 3
    [a] => 4
    [f] => 5
    [b] => 8
)

Siehe auch

  • ArrayObject::asort() - Sort the entries by value
  • ArrayObject::ksort() - Sort the entries by key
  • ArrayObject::natsort() - Sort entries using a "natural order" algorithm
  • ArrayObject::natcasesort() - Sort an array using a case insensitive "natural order" algorithm
  • ArrayObject::uksort() - Sort the entries by keys using a user-defined comparison function


Sort the entries by keys using a user-defined comparison function

  • « ArrayObject::uasort
  • ArrayObject::unserialize »
  • PHP Manual
  • ArrayObject
  • Sort the entries by keys using a user-defined comparison function

ArrayObject::uksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::uksort — Sort the entries by keys using a user-defined comparison function

Beschreibung

public ArrayObject::uksort ( callable $cmp_function ) : void

This function sorts the keys of the entries using a user-supplied comparison function. The key to entry correlations will be maintained.

Parameter-Liste

cmp_function

The callback comparison function.

Function cmp_function should accept two parameters which will be filled by pairs of entry keys. 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.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ArrayObject::uksort() example

<?php
function cmp($a, $b) {
    $a = preg_replace('@^(a|an|the) @', '', $a);
    $b = preg_replace('@^(a|an|the) @', '', $b);
    return strcasecmp($a, $b);
}

$array = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);
$arrayObject = new ArrayObject($array);
$arrayObject->uksort('cmp');

foreach ($arrayObject as $key => $value) {
    echo "$key: $value\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

an apple: 3
a banana: 4
the Earth: 2
John: 1

Siehe auch

  • ArrayObject::asort() - Sort the entries by value
  • ArrayObject::ksort() - Sort the entries by key
  • ArrayObject::natsort() - Sort entries using a "natural order" algorithm
  • ArrayObject::natcasesort() - Sort an array using a case insensitive "natural order" algorithm
  • ArrayObject::uasort() - Sort the entries with a user-defined comparison function and maintain key association


Unserialize an ArrayObject

  • « ArrayObject::uksort
  • SplObserver »
  • PHP Manual
  • ArrayObject
  • Unserialize an ArrayObject

ArrayObject::unserialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayObject::unserialize — Unserialize an ArrayObject

Beschreibung

public ArrayObject::unserialize ( string $serialized ) : void

Unserializes a serialized ArrayObject.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

serialized

The serialized ArrayObject.

Rückgabewerte

The unserialized ArrayObject.

Siehe auch

  • ArrayIterator::serialize() - Serialize
  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • Serializing Objects


The SplObserver interface

(PHP 5 >= 5.1.0, PHP 7)

Einführung

The SplObserver interface is used alongside SplSubject to implement the Observer Design Pattern.

Interface-Übersicht

SplObserver {
/* Methoden */
abstract public update ( SplSubject $subject ) : void
}

Inhaltsverzeichnis

  • SplObserver::update — Receive update from subject


Receive update from subject

  • « SplObserver
  • SplSubject »
  • PHP Manual
  • SplObserver
  • Receive update from subject

SplObserver::update

(PHP 5 >= 5.1.0, PHP 7)

SplObserver::update — Receive update from subject

Beschreibung

abstract public SplObserver::update ( SplSubject $subject ) : void

This method is called when any SplSubject to which the observer is attached calls SplSubject::notify().

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

subject

The SplSubject notifying the observer of an update.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The SplSubject interface

(PHP 5 >= 5.1.0, PHP 7)

Einführung

The SplSubject interface is used alongside SplObserver to implement the Observer Design Pattern.

Interface-Übersicht

SplSubject {
/* Methoden */
abstract public attach ( SplObserver $observer ) : void
abstract public detach ( SplObserver $observer ) : void
abstract public notify ( ) : void
}

Inhaltsverzeichnis

  • SplSubject::attach — Attach an SplObserver
  • SplSubject::detach — Detach an observer
  • SplSubject::notify — Notify an observer


Attach an SplObserver

  • « SplSubject
  • SplSubject::detach »
  • PHP Manual
  • SplSubject
  • Attach an SplObserver

SplSubject::attach

(PHP 5 >= 5.1.0, PHP 7)

SplSubject::attach — Attach an SplObserver

Beschreibung

abstract public SplSubject::attach ( SplObserver $observer ) : void

Attaches an SplObserver so that it can be notified of updates.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

observer

The SplObserver to attach.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Detach an observer

  • « SplSubject::attach
  • SplSubject::notify »
  • PHP Manual
  • SplSubject
  • Detach an observer

SplSubject::detach

(PHP 5 >= 5.1.0, PHP 7)

SplSubject::detach — Detach an observer

Beschreibung

abstract public SplSubject::detach ( SplObserver $observer ) : void

Detaches an observer from the subject to no longer notify it of updates.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

observer

The SplObserver to detach.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Notify an observer

  • « SplSubject::detach
  • Streams »
  • PHP Manual
  • SplSubject
  • Notify an observer

SplSubject::notify

(PHP 5 >= 5.1.0, PHP 7)

SplSubject::notify — Notify an observer

Beschreibung

abstract public SplSubject::notify ( ) : void

Notifies all attached observers.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Streams

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Stream Classes
  • Vordefinierte Konstanten
  • Stream Filters
  • Stream Contexts
  • Stream Errors
  • Beispiele
    • Example class registered as stream wrapper
  • php_user_filter — The php_user_filter class
    • php_user_filter::filter — Called when applying the filter
    • php_user_filter::onClose — Called when closing the filter
    • php_user_filter::onCreate — Called when creating the filter
  • streamWrapper — The streamWrapper class
    • streamWrapper::__construct — Constructs a new stream wrapper
    • streamWrapper::__destruct — Destructs an existing stream wrapper
    • streamWrapper::dir_closedir — Close directory handle
    • streamWrapper::dir_opendir — Open directory handle
    • streamWrapper::dir_readdir — Read entry from directory handle
    • streamWrapper::dir_rewinddir — Rewind directory handle
    • streamWrapper::mkdir — Create a directory
    • streamWrapper::rename — Renames a file or directory
    • streamWrapper::rmdir — Removes a directory
    • streamWrapper::stream_cast — Retrieve the underlaying resource
    • streamWrapper::stream_close — Close a resource
    • streamWrapper::stream_eof — Tests for end-of-file on a file pointer
    • streamWrapper::stream_flush — Flushes the output
    • streamWrapper::stream_lock — Advisory file locking
    • streamWrapper::stream_metadata — Change stream metadata
    • streamWrapper::stream_open — Opens file or URL
    • streamWrapper::stream_read — Read from stream
    • streamWrapper::stream_seek — Seeks to specific location in a stream
    • streamWrapper::stream_set_option — Change stream options
    • streamWrapper::stream_stat — Retrieve information about a file resource
    • streamWrapper::stream_tell — Retrieve the current position of a stream
    • streamWrapper::stream_truncate — Truncate stream
    • streamWrapper::stream_write — Write to stream
    • streamWrapper::unlink — Delete a file
    • streamWrapper::url_stat — Retrieve information about a file
  • Stream Funktionen
    • stream_bucket_append — Append bucket to brigade
    • stream_bucket_make_writeable — Return a bucket object from the brigade for operating on
    • stream_bucket_new — Create a new bucket for use on the current stream
    • stream_bucket_prepend — Prepend bucket to brigade
    • stream_context_create — Creates a stream context
    • stream_context_get_default — Retrieve the default stream context
    • stream_context_get_options — Retrieve options for a stream/wrapper/context
    • stream_context_get_params — Retrieves parameters from a context
    • stream_context_set_default — Set the default stream context
    • stream_context_set_option — Sets an option for a stream/wrapper/context
    • stream_context_set_params — Set parameters for a stream/wrapper/context
    • stream_copy_to_stream — Copies data from one stream to another
    • stream_filter_append — Attach a filter to a stream
    • stream_filter_prepend — Attach a filter to a stream
    • stream_filter_register — Register a user defined stream filter
    • stream_filter_remove — Remove a filter from a stream
    • stream_get_contents — Reads remainder of a stream into a string
    • stream_get_filters — Retrieve list of registered filters
    • stream_get_line — Gets line from stream resource up to a given delimiter
    • stream_get_meta_data — Retrieves header/meta data from streams/file pointers
    • stream_get_transports — Retrieve list of registered socket transports
    • stream_get_wrappers — Retrieve list of registered streams
    • stream_is_local — Checks if a stream is a local stream
    • stream_isatty — Check if a stream is a TTY
    • stream_notification_callback — A callback function for the notification context parameter
    • stream_register_wrapper — Alias von stream_wrapper_register
    • stream_resolve_include_path — Resolve filename against the include path
    • stream_select — Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
    • stream_set_blocking — Set blocking/non-blocking mode on a stream
    • stream_set_chunk_size — Set the stream chunk size
    • stream_set_read_buffer — Set read file buffering on the given stream
    • stream_set_timeout — Set timeout period on a stream
    • stream_set_write_buffer — Sets write file buffering on the given stream
    • stream_socket_accept — Accept a connection on a socket created by stream_socket_server
    • stream_socket_client — Open Internet or Unix domain socket connection
    • stream_socket_enable_crypto — Turns encryption on/off on an already connected socket
    • stream_socket_get_name — Retrieve the name of the local or remote sockets
    • stream_socket_pair — Creates a pair of connected, indistinguishable socket streams
    • stream_socket_recvfrom — Receives data from a socket, connected or not
    • stream_socket_sendto — Sends a message to a socket, whether it is connected or not
    • stream_socket_server — Create an Internet or Unix domain server socket
    • stream_socket_shutdown — Shutdown a full-duplex connection
    • stream_supports_lock — Tells whether the stream supports locking
    • stream_wrapper_register — Register a URL wrapper implemented as a PHP class
    • stream_wrapper_restore — Restores a previously unregistered built-in wrapper
    • stream_wrapper_unregister — Unregister a URL wrapper


Einführung

Streams are the way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior. That is, it can be read from or written to in a linear fashion, and may be able to fseek() to an arbitrary location within the stream.

A wrapper is additional code which tells the stream how to handle specific protocols/encodings. For example, the http wrapper knows how to translate a URL into an HTTP/1.0 request for a file on a remote server. There are many wrappers built into PHP by default (See Unterstützte Protokolle und Wrapper), and additional, custom wrappers may be added either within a PHP script using stream_wrapper_register(), or directly from an extension. Because any variety of wrapper may be added to PHP, there is no set limit on what can be done with them. To access the list of currently registered wrappers, use stream_get_wrappers().

A stream is referenced as: scheme://target

  • scheme(string) - The name of the wrapper to be used. Examples include: file, http, https, ftp, ftps, compress.zlib, compress.bz2, and php. See Unterstützte Protokolle und Wrapper for a list of PHP built-in wrappers. If no wrapper is specified, the function default is used (typically file://).
  • target - Depends on the wrapper used. For filesystem related streams this is typically a path and filename of the desired file. For network related streams this is typically a hostname, often with a path appended. Again, see Unterstützte Protokolle und Wrapper for a description of targets for built-in streams.


Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation
  • Laufzeit-Konfiguration
  • Stream Classes


  • « Installation
  • Stream Classes »
  • PHP Manual
  • Installation/Konfiguration
  • Laufzeit-Konfiguration

Laufzeit-Konfiguration

Diese Erweiterung definiert keine Konfigurationseinstellungen in der php.ini.


Stream Classes

User designed wrappers can be registered via stream_wrapper_register(), using the class definition shown on that manual page.

Class php_user_filter is predefined and is an abstract baseclass for use with user defined filters. See the manual page for stream_filter_register() for details on implementing user defined filters.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Constant | Description
STREAM_FILTER_READ | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when reading
STREAM_FILTER_WRITE | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when writing
STREAM_FILTER_ALL | This constant is equivalent to STREAM_FILTER_READ | STREAM_FILTER_WRITE
PSFS_PASS_ON | Return Code indicating that the userspace filter returned buckets in $out.
PSFS_FEED_ME | Return Code indicating that the userspace filter did not return buckets in $out (i.e. No data available).
PSFS_ERR_FATAL | Return Code indicating that the userspace filter encountered an unrecoverable error (i.e. Invalid data received).
PSFS_FLAG_NORMAL | Regular read/write.
PSFS_FLAG_FLUSH_INC | An incremental flush.
PSFS_FLAG_FLUSH_CLOSE | Final flush prior to closing.
STREAM_USE_PATH | Flag indicating if the stream used the include path.
STREAM_REPORT_ERRORS | Flag indicating if the wrapper is responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.
STREAM_CLIENT_ASYNC_CONNECT | Open client socket asynchronously. This option must be used together with the STREAM_CLIENT_CONNECT flag. Used with stream_socket_client().
STREAM_CLIENT_CONNECT | Open client socket connection. Client sockets should always include this flag. Used with stream_socket_client().
STREAM_CLIENT_PERSISTENT | Client socket opened with stream_socket_client() should remain persistent between page loads.
STREAM_SERVER_BIND | Tells a stream created with stream_socket_server() to bind to the specified target. Server sockets should always include this flag.
STREAM_SERVER_LISTEN | Tells a stream created with stream_socket_server() and bound using the STREAM_SERVER_BIND flag to start listening on the socket. Connection-orientated transports (such as TCP) must use this flag, otherwise the server socket will not be enabled. Using this flag for connect-less transports (such as UDP) is an error.
STREAM_NOTIFY_RESOLVE | A remote address required for this stream has been resolved, or the resolution failed. See severity for an indication of which happened.
STREAM_NOTIFY_CONNECT | A connection with an external resource has been established.
STREAM_NOTIFY_AUTH_REQUIRED | Additional authorization is required to access the specified resource. Typical issued with severity level of STREAM_NOTIFY_SEVERITY_ERR.
STREAM_NOTIFY_MIME_TYPE_IS | The mime-type of resource has been identified, refer to message for a description of the discovered type.
STREAM_NOTIFY_FILE_SIZE_IS | The size of the resource has been discovered.
STREAM_NOTIFY_REDIRECTED | The external resource has redirected the stream to an alternate location. Refer to message.
STREAM_NOTIFY_PROGRESS | Indicates current progress of the stream transfer in bytes_transferred and possibly bytes_max as well.
STREAM_NOTIFY_COMPLETED | There is no more data available on the stream.
STREAM_NOTIFY_FAILURE | A generic error occurred on the stream, consult message and message_code for details.
STREAM_NOTIFY_AUTH_RESULT | Authorization has been completed (with or without success).
STREAM_NOTIFY_SEVERITY_INFO | Normal, non-error related, notification.
STREAM_NOTIFY_SEVERITY_WARN | Non critical error condition. Processing may continue.
STREAM_NOTIFY_SEVERITY_ERR | A critical error occurred. Processing cannot continue.
STREAM_IPPROTO_ICMP + | Provides a ICMP socket.
STREAM_IPPROTO_IP + | Provides a IP socket.
STREAM_IPPROTO_RAW + | Provides a RAW socket.
STREAM_IPPROTO_TCP + | Provides a TCP socket.
STREAM_IPPROTO_UDP + | Provides a UDP socket.
STREAM_PF_INET + | Internet Protocol Version 4 (IPv4).
STREAM_PF_INET6 + | Internet Protocol Version 6 (IPv6).
STREAM_PF_UNIX + | Unix system internal protocols.
STREAM_SOCK_DGRAM + | Provides datagrams, which are connectionless messages (UDP, for example).
STREAM_SOCK_RAW + | Provides a raw socket, which provides access to internal network protocols and interfaces. Usually this type of socket is just available to the root user.
STREAM_SOCK_RDM + | Provides a RDM (Reliably-delivered messages) socket.
STREAM_SOCK_SEQPACKET + | Provides a sequenced packet stream socket.
STREAM_SOCK_STREAM + | Provides sequenced, two-way byte streams with a transmission mechanism for out-of-band data (TCP, for example).
STREAM_SHUT_RD | Used with stream_socket_shutdown() to disable further receptions. Added in PHP 5.2.1.
STREAM_SHUT_WR | Used with stream_socket_shutdown() to disable further transmissions. Added in PHP 5.2.1.
STREAM_SHUT_RDWR | Used with stream_socket_shutdown() to disable further receptions and transmissions. Added in PHP 5.2.1.
STREAM_CAST_FOR_SELECT | Stream casting, for when stream_select() is calling stream_cast().
STREAM_CAST_AS_STREAM | Stream casting, when stream_cast() is called otherwise (see above).
STREAM_META_TOUCH | Used with stream_metadata(), to specify touch() call.
STREAM_META_OWNER | Used with stream_metadata(), to specify chown() call.
STREAM_META_OWNER_NAME | Used with stream_metadata(), to specify chown() call.
STREAM_META_GROUP | Used with stream_metadata(), to specify chgrp() call.
STREAM_META_GROUP_NAME | Used with stream_metadata(), to specify chgrp() call.
STREAM_META_ACCESS | Used with stream_metadata(), to specify chmod() call.
STREAM_BUFFER_NONE | No buffering.
STREAM_BUFFER_LINE | Line buffering.
STREAM_BUFFER_FULL | Full buffering.

Hinweis: The constants marked with + are available since PHP 5.1.0 and are meant to be used with stream_socket_pair(). Please note that some of these constants might not be available in your system.

Hinweis: The STREAM_META_* constants are available since PHP 5.4.0 and are meant to be used with stream_metadata().


Stream Filters

A filter is a final piece of code which may perform operations on data as it is being read from or written to a stream. Any number of filters may be stacked onto a stream. Custom filters can be defined in a PHP script using stream_filter_register() or in an extension. To access the list of currently registered filters, use stream_get_filters().


Stream Contexts

A context is a set of parameters and wrapper specific options which modify or enhance the behavior of a stream. Contexts are created using stream_context_create() and can be passed to most filesystem related stream creation functions (i.e. fopen(), file(), file_get_contents(), etc...).

Options can be specified when calling stream_context_create(), or later using stream_context_set_option(). A list of wrapper specific options can be found in the Kontextoptionen und -parameter chapter.

Parameters can be specified for contexts using the stream_context_set_params() function.


Stream Errors

As with any file or socket related function, an operation on a stream may fail for a variety of normal reasons (i.e.: Unable to connect to remote host, file not found, etc...). A stream related call may also fail because the desired stream is not registered on the running system. See the array returned by stream_get_wrappers() for a list of streams supported by your installation of PHP. As with most PHP internal functions if a failure occurs an E_WARNING message will be generated describing the nature of the error.


Beispiele

Inhaltsverzeichnis

  • Example class registered as stream wrapper

Beispiel #1 Using file_get_contents() to retrieve data from multiple sources

<?php
/* Read local file from /home/bar */
$localfile = file_get_contents("/home/bar/foo.txt");

/* Identical to above, explicitly naming FILE scheme */
$localfile = file_get_contents("file:///home/bar/foo.txt");

/* Read remote file from www.example.com using HTTP */
$httpfile  = file_get_contents("http://www.example.com/foo.txt");

/* Read remote file from www.example.com using HTTPS */
$httpsfile = file_get_contents("https://www.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTP */
$ftpfile   = file_get_contents("ftp://user:pass@ftp.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTPS */
$ftpsfile  = file_get_contents("ftps://user:pass@ftp.example.com/foo.txt");
?>

Beispiel #2 Making a POST request to an https server

<?php
/* Send POST request to https://secure.example.com/form_action.php
* Include form elements named "foo" and "bar" with dummy values
*/

$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");

$data = "foo=" . urlencode("Value for Foo") . "&bar=" . urlencode("Value for Bar");

fwrite($sock, "POST /form_action.php HTTP/1.0\r\n");
fwrite($sock, "Host: secure.example.com\r\n");
fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
fwrite($sock, "Accept: */*\r\n");
fwrite($sock, "\r\n");
fwrite($sock, $data);

$headers = "";
while ($str = trim(fgets($sock, 4096)))
$headers .= "$str\n";

echo "\n";

$body = "";
while (!feof($sock))
$body .= fgets($sock, 4096);

fclose($sock);
?>

Beispiel #3 Writing data to a compressed file

<?php
/* Create a compressed file containing an arbitrarty string
* File can be read back using compress.zlib stream or just
* decompressed from the command line using 'gzip -d foo-bar.txt.gz'
*/
$fp = fopen("compress.zlib://foo-bar.txt.gz", "wb");
if (!$fp) die("Unable to create file.");

fwrite($fp, "This is a test.\n");

fclose($fp);
?>


Example class registered as stream wrapper

The example below implements a var:// protocol handler that allows read/write access to a named global variable using standard filesystem stream functions such as fread(). The var:// protocol implemented below, given the URL "var://foo" will read/write data to/from $GLOBALS["foo"].

Beispiel #1 A Stream for reading/writing global variables

<?php

class VariableStream {
    var $position;
    var $varname;

    function stream_open($path, $mode, $options, &$opened_path)
    {
        $url = parse_url($path);
        $this->varname = $url["host"];
        $this->position = 0;

        return true;
    }

    function stream_read($count)
    {
        $ret = substr($GLOBALS[$this->varname], $this->position, $count);
        $this->position += strlen($ret);
        return $ret;
    }

    function stream_write($data)
    {
        $left = substr($GLOBALS[$this->varname], 0, $this->position);
        $right = substr($GLOBALS[$this->varname], $this->position + strlen($data));
        $GLOBALS[$this->varname] = $left . $data . $right;
        $this->position += strlen($data);
        return strlen($data);
    }

    function stream_tell()
    {
        return $this->position;
    }

    function stream_eof()
    {
        return $this->position >= strlen($GLOBALS[$this->varname]);
    }

    function stream_seek($offset, $whence)
    {
        switch ($whence) {
            case SEEK_SET:
                if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) {
                     $this->position = $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_CUR:
                if ($offset >= 0) {
                     $this->position += $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_END:
                if (strlen($GLOBALS[$this->varname]) + $offset >= 0) {
                     $this->position = strlen($GLOBALS[$this->varname]) + $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            default:
                return false;
        }
    }

    function stream_metadata($path, $option, $var)
    {
        if($option == STREAM_META_TOUCH) {
            $url = parse_url($path);
            $varname = $url["host"];
            if(!isset($GLOBALS[$varname])) {
                $GLOBALS[$varname] = '';
            }
            return true;
        }
        return false;
    }
}

stream_wrapper_register("var", "VariableStream")
    or die("Failed to register protocol");

$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");

rewind($fp);
while (!feof($fp)) {
    echo fgets($fp);
}
fclose($fp);
var_dump($myvar);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

line1
line2
line3
string(18) "line1
line2
line3
"


The php_user_filter class

(PHP 5, PHP 7, PHP 8)

Einführung

Children of this class are passed to
stream_filter_register().
Note that the __construct method is not called;
instead, php_user_filter::onCreate() should be used for
initialization.

Klassenbeschreibung

php_user_filter {
/* Eigenschaften */
public $filtername ;
public $params ;
/* Methoden */
public filter ( resource $in , resource $out , int &$consumed , bool $closing ) : int
public onClose ( ) : void
public onCreate ( ) : bool
}

Eigenschaften

filtername

Name of the filter registered by stream_filter_append().

params

Inhaltsverzeichnis

  • php_user_filter::filter — Called when applying the filter
  • php_user_filter::onClose — Called when closing the filter
  • php_user_filter::onCreate — Called when creating the filter


Called when applying the filter

  • « php_user_filter
  • php_user_filter::onClose »
  • PHP Manual
  • php_user_filter
  • Called when applying the filter

php_user_filter::filter

(PHP 5, PHP 7, PHP 8)

php_user_filter::filter — Called when applying the filter

Beschreibung

public php_user_filter::filter ( resource $in , resource $out , int &$consumed , bool $closing ) : int

This method is called whenever data is read from or written to the attached stream (such as with fread() or fwrite()).

Parameter-Liste

in

in is a resource pointing to a bucket brigade which contains one or more bucket objects containing data to be filtered.

out

out is a resource pointing to a second bucket brigade into which your modified buckets should be placed.

consumed

consumed, which must always be declared by reference, should be incremented by the length of the data which your filter reads in and alters. In most cases this means you will increment consumed by $bucket->datalen for each $bucket.

closing

If the stream is in the process of closing (and therefore this is the last pass through the filterchain), the closing parameter will be set to true.

Rückgabewerte

The filter() method must return one of three values upon completion.

Return Value | Meaning
PSFS_PASS_ON | Filter processed successfully with data available in the out bucket brigade.
PSFS_FEED_ME | Filter processed successfully, however no data was available to return. More data is required from the stream or prior filter.
PSFS_ERR_FATAL (default) | The filter experienced an unrecoverable error and cannot continue.


Called when closing the filter

  • « php_user_filter::filter
  • php_user_filter::onCreate »
  • PHP Manual
  • php_user_filter
  • Called when closing the filter

php_user_filter::onClose

(PHP 5, PHP 7, PHP 8)

php_user_filter::onClose — Called when closing the filter

Beschreibung

public php_user_filter::onClose ( ) : void

This method is called upon filter shutdown (typically, this is also during stream shutdown), and is executed after the flush method is called. If any resources were allocated or initialized during onCreate() this would be the time to destroy or dispose of them.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return value is ignored.


Called when creating the filter

  • « php_user_filter::onClose
  • streamWrapper »
  • PHP Manual
  • php_user_filter
  • Called when creating the filter

php_user_filter::onCreate

(PHP 5, PHP 7, PHP 8)

php_user_filter::onCreate — Called when creating the filter

Beschreibung

public php_user_filter::onCreate ( ) : bool

This method is called during instantiation of the filter class object. If your filter allocates or initializes any other resources (such as a buffer), this is the place to do it.

When your filter is first instantiated, and yourfilter->onCreate() is called, a number of properties will be available as shown in the table below.

Property | Contents
FilterClass->filtername | A string containing the name the filter was instantiated with. Filters may be registered under multiple names or under wildcards. Use this property to determine which name was used.
FilterClass->params | The contents of the params parameter passed to stream_filter_append() or stream_filter_prepend().
FilterClass->stream | The stream resource being filtered. Maybe available only during filter() calls when the closing parameter is set to false.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Your implementation of this method should return false on failure, or true on success.


The streamWrapper class

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

Einführung

Allows you to implement your own protocol handlers and streams for use with all the other filesystem functions (such as fopen(), fread() etc.).

Hinweis:

This is NOT a real class, only a prototype of how a class defining its own protocol should be.

Hinweis:

Implementing the methods in other ways than described here can lead to undefined behaviour.

An instance of this class is initialized as soon as a stream function tries to access the protocol it is associated with.

Klassenbeschreibung

streamWrapper {
/* Eigenschaften */
public resource $context ;
/* Methoden */
__construct ( )
__destruct ( )
public dir_closedir ( ) : bool
public dir_opendir ( string $path , int $options ) : bool
public dir_readdir ( ) : string
public dir_rewinddir ( ) : bool
public mkdir ( string $path , int $mode , int $options ) : bool
public rename ( string $path_from , string $path_to ) : bool
public rmdir ( string $path , int $options ) : bool
public stream_cast ( int $cast_as ) : resource
public stream_close ( ) : void
public stream_eof ( ) : bool
public stream_flush ( ) : bool
public stream_lock ( int $operation ) : bool
public stream_metadata ( string $path , int $option , mixed $value ) : bool
public stream_open ( string $path , string $mode , int $options , string &$opened_path ) : bool
public stream_read ( int $count ) : string
public stream_seek ( int $offset , int $whence = SEEK_SET ) : bool
public stream_set_option ( int $option , int $arg1 , int $arg2 ) : bool
public stream_stat ( ) : array
public stream_tell ( ) : int
public stream_truncate ( int $new_size ) : bool
public stream_write ( string $data ) : int
public unlink ( string $path ) : bool
public url_stat ( string $path , int $flags ) : array
}

Eigenschaften

resource context

The current context, or null if no context was passed to the caller function.

Use the stream_context_get_options() to parse the context.

Hinweis:

This property must be public so PHP can populate it with the actual context resource.

Siehe auch

  • Example class registered as stream wrapper
  • stream_wrapper_register()
  • stream_wrapper_unregister()
  • stream_wrapper_restore()

Inhaltsverzeichnis

  • streamWrapper::__construct — Constructs a new stream wrapper
  • streamWrapper::__destruct — Destructs an existing stream wrapper
  • streamWrapper::dir_closedir — Close directory handle
  • streamWrapper::dir_opendir — Open directory handle
  • streamWrapper::dir_readdir — Read entry from directory handle
  • streamWrapper::dir_rewinddir — Rewind directory handle
  • streamWrapper::mkdir — Create a directory
  • streamWrapper::rename — Renames a file or directory
  • streamWrapper::rmdir — Removes a directory
  • streamWrapper::stream_cast — Retrieve the underlaying resource
  • streamWrapper::stream_close — Close a resource
  • streamWrapper::stream_eof — Tests for end-of-file on a file pointer
  • streamWrapper::stream_flush — Flushes the output
  • streamWrapper::stream_lock — Advisory file locking
  • streamWrapper::stream_metadata — Change stream metadata
  • streamWrapper::stream_open — Opens file or URL
  • streamWrapper::stream_read — Read from stream
  • streamWrapper::stream_seek — Seeks to specific location in a stream
  • streamWrapper::stream_set_option — Change stream options
  • streamWrapper::stream_stat — Retrieve information about a file resource
  • streamWrapper::stream_tell — Retrieve the current position of a stream
  • streamWrapper::stream_truncate — Truncate stream
  • streamWrapper::stream_write — Write to stream
  • streamWrapper::unlink — Delete a file
  • streamWrapper::url_stat — Retrieve information about a file


Constructs a new stream wrapper

  • « streamWrapper
  • streamWrapper::__destruct »
  • PHP Manual
  • streamWrapper
  • Constructs a new stream wrapper

streamWrapper::__construct

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::__construct — Constructs a new stream wrapper

Beschreibung

streamWrapper::__construct ( )

Called when opening the stream wrapper, right before streamWrapper::stream_open().

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Destructs an existing stream wrapper

  • « streamWrapper::__construct
  • streamWrapper::dir_closedir »
  • PHP Manual
  • streamWrapper
  • Destructs an existing stream wrapper

streamWrapper::__destruct

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::__destruct — Destructs an existing stream wrapper

Beschreibung

streamWrapper::__destruct ( )

Called when closing the stream wrapper, right before streamWrapper::stream_flush().

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Close directory handle

  • « streamWrapper::__destruct
  • streamWrapper::dir_opendir »
  • PHP Manual
  • streamWrapper
  • Close directory handle

streamWrapper::dir_closedir

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::dir_closedir — Close directory handle

Beschreibung

public streamWrapper::dir_closedir ( ) : bool

This method is called in response to closedir().

Any resources which were locked, or allocated, during opening and use of the directory stream should be released.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • closedir() - Schließen eines Verzeichnis-Handles
  • streamWrapper::dir_opendir() - Open directory handle


Open directory handle

  • « streamWrapper::dir_closedir
  • streamWrapper::dir_readdir »
  • PHP Manual
  • streamWrapper
  • Open directory handle

streamWrapper::dir_opendir

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::dir_opendir — Open directory handle

Beschreibung

public streamWrapper::dir_opendir ( string $path , int $options ) : bool

This method is called in response to opendir().

Parameter-Liste

path

Specifies the URL that was passed to opendir().

Hinweis:

The URL can be broken apart with parse_url().

options

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • opendir() - Öffnen eines Verzeichnis-Handles
  • streamWrapper::dir_closedir() - Close directory handle
  • parse_url() - Analysiert eine URL und gibt ihre Bestandteile zurück


Read entry from directory handle

  • « streamWrapper::dir_opendir
  • streamWrapper::dir_rewinddir »
  • PHP Manual
  • streamWrapper
  • Read entry from directory handle

streamWrapper::dir_readdir

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::dir_readdir — Read entry from directory handle

Beschreibung

public streamWrapper::dir_readdir ( ) : string

This method is called in response to readdir().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Should return string representing the next filename, or false if there is no next file.

Hinweis:

The return value will be casted to string.

Fehler/Exceptions

Wirft E_WARNING, wenn der Aufruf dieser Methode fehlschlug (z.B. weil sie nicht implementiert ist).

Beispiele

Beispiel #1 Listing files from tar archives

<?php
class streamWrapper {
    protected $fp;

    public function dir_opendir($path, $options) {
        $url = parse_url($path);

        $path = $url["host"] . $url["path"];

        if (!is_readable($path)) {
            trigger_error("$path isn't readable for me", E_USER_NOTICE);
            return false;
        }
        if (!is_file($path)) {
            trigger_error("$path isn't a file", E_USER_NOTICE);
            return false;
        }

        $this->fp = fopen($path, "rb");
        return true;
    }

    public function dir_readdir() {
        // Extract the header for this entry
        $header      = fread($this->fp, 512);
        $data = unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1filetype/a100link/a100linkedfile", $header);

        // Trim the filename and filesize
        $filename    = trim($data["filename"]);

        // No filename? We are the end of the archive
        if (!$filename) {
            return false;
        }

        $octal_bytes = trim($data["size"]);
        // Filesize is defined in octects
        $bytes       = octdec($octal_bytes);

        // tar rounds up filesizes up to multiple of 512 bytes (zero filled)
        $rest        = $bytes % 512;
        if ($rest > 0) {
            $bytes      += 512 - $rest;
        }

        // Seek over the file
        fseek($this->fp, $bytes, SEEK_CUR);

        return $filename;
    }

    public function dir_closedir() {
        return fclose($this->fp);
    }

    public function dir_rewinddir() {
        return fseek($this->fp, 0, SEEK_SET);
    }
}

stream_wrapper_register("tar", "streamWrapper");
$handle = opendir("tar://example.tar");
while (false !== ($file = readdir($handle))) {
    var_dump($file);
}

echo "Rewinding..\n";
rewind($handle);
var_dump(readdir($handle));

closedir($handle);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(13) "construct.xml"
string(16) "dir-closedir.xml"
string(15) "dir-opendir.xml"
string(15) "dir-readdir.xml"
string(17) "dir-rewinddir.xml"
string(9) "mkdir.xml"
string(10) "rename.xml"
string(9) "rmdir.xml"
string(15) "stream-cast.xml"
string(16) "stream-close.xml"
string(14) "stream-eof.xml"
string(16) "stream-flush.xml"
string(15) "stream-lock.xml"
string(15) "stream-open.xml"
string(15) "stream-read.xml"
string(15) "stream-seek.xml"
string(21) "stream-set-option.xml"
string(15) "stream-stat.xml"
string(15) "stream-tell.xml"
string(16) "stream-write.xml"
string(10) "unlink.xml"
string(12) "url-stat.xml"
Rewinding..
string(13) "construct.xml"

Siehe auch

  • readdir() - Liest einen Eintrag aus einem Verzeichnis-Handle


Rewind directory handle

  • « streamWrapper::dir_readdir
  • streamWrapper::mkdir »
  • PHP Manual
  • streamWrapper
  • Rewind directory handle

streamWrapper::dir_rewinddir

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::dir_rewinddir — Rewind directory handle

Beschreibung

public streamWrapper::dir_rewinddir ( ) : bool

This method is called in response to rewinddir().

Should reset the output generated by streamWrapper::dir_readdir(). i.e.: The next call to streamWrapper::dir_readdir() should return the first entry in the location returned by streamWrapper::dir_opendir().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • rewinddir() - Zurücksetzen des Verzeichnis-Handles
  • streamWrapper::dir_readdir() - Read entry from directory handle


Create a directory

  • « streamWrapper::dir_rewinddir
  • streamWrapper::rename »
  • PHP Manual
  • streamWrapper
  • Create a directory

streamWrapper::mkdir

(PHP 5, PHP 7, PHP 8)

streamWrapper::mkdir — Create a directory

Beschreibung

public streamWrapper::mkdir ( string $path , int $mode , int $options ) : bool

This method is called in response to mkdir().

Hinweis:

In order for the appropriate error message to be returned this method should not be defined if the wrapper does not support creating directories.

Parameter-Liste

path

Directory which should be created.

mode

The value passed to mkdir().

options

A bitwise mask of values, such as STREAM_MKDIR_RECURSIVE.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Wirft E_WARNING, wenn der Aufruf dieser Methode fehlschlug (z.B. weil sie nicht implementiert ist).

Anmerkungen

Hinweis:

Die streamWrapper::$context-Eigenschaft wird, wenn verfügbar, aktualisiert, wenn der aufrufenden Funktion ein gültiger Kontext übergeben wurde.

Siehe auch

  • mkdir() - Erstellt ein Verzeichnis
  • streamwrapper::rmdir() - Removes a directory


Renames a file or directory

  • « streamWrapper::mkdir
  • streamWrapper::rmdir »
  • PHP Manual
  • streamWrapper
  • Renames a file or directory

streamWrapper::rename

(PHP 5, PHP 7, PHP 8)

streamWrapper::rename — Renames a file or directory

Beschreibung

public streamWrapper::rename ( string $path_from , string $path_to ) : bool

This method is called in response to rename().

Should attempt to rename path_from to path_to

Hinweis:

In order for the appropriate error message to be returned this method should not be defined if the wrapper does not support renaming files.

Parameter-Liste

path_from

The URL to the current file.

path_to

The URL which the path_from should be renamed to.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Wirft E_WARNING, wenn der Aufruf dieser Methode fehlschlug (z.B. weil sie nicht implementiert ist).

Anmerkungen

Hinweis:

Die streamWrapper::$context-Eigenschaft wird, wenn verfügbar, aktualisiert, wenn der aufrufenden Funktion ein gültiger Kontext übergeben wurde.

Siehe auch

  • rename() - Benennt eine Datei oder ein Verzeichnis um


Removes a directory

  • « streamWrapper::rename
  • streamWrapper::stream_cast »
  • PHP Manual
  • streamWrapper
  • Removes a directory

streamWrapper::rmdir

(PHP 5, PHP 7, PHP 8)

streamWrapper::rmdir — Removes a directory

Beschreibung

public streamWrapper::rmdir ( string $path , int $options ) : bool

This method is called in response to rmdir().

Hinweis:

In order for the appropriate error message to be returned this method should not be defined if the wrapper does not support removing directories.

Parameter-Liste

path

The directory URL which should be removed.

options

A bitwise mask of values, such as STREAM_MKDIR_RECURSIVE.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Wirft E_WARNING, wenn der Aufruf dieser Methode fehlschlug (z.B. weil sie nicht implementiert ist).

Anmerkungen

Hinweis:

Die streamWrapper::$context-Eigenschaft wird, wenn verfügbar, aktualisiert, wenn der aufrufenden Funktion ein gültiger Kontext übergeben wurde.

Siehe auch

  • rmdir() - Löscht ein Verzeichnis
  • streamwrapper::mkdir() - Create a directory
  • streamwrapper::unlink() - Delete a file


Retrieve the underlaying resource

  • « streamWrapper::rmdir
  • streamWrapper::stream_close »
  • PHP Manual
  • streamWrapper
  • Retrieve the underlaying resource

streamWrapper::stream_cast

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

streamWrapper::stream_cast — Retrieve the underlaying resource

Beschreibung

public streamWrapper::stream_cast ( int $cast_as ) : resource

This method is called in response to stream_select().

Parameter-Liste

cast_as

Can be STREAM_CAST_FOR_SELECT when stream_select() is calling stream_cast() or STREAM_CAST_AS_STREAM when stream_cast() is called for other uses.

Rückgabewerte

Should return the underlying stream resource used by the wrapper, or false.

Siehe auch

  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec


Close a resource

  • « streamWrapper::stream_cast
  • streamWrapper::stream_eof »
  • PHP Manual
  • streamWrapper
  • Close a resource

streamWrapper::stream_close

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_close — Close a resource

Beschreibung

public streamWrapper::stream_close ( ) : void

This method is called in response to fclose().

All resources that were locked, or allocated, by the wrapper should be released.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • fclose() - Schließt einen offenen Dateizeiger
  • streamWrapper::dir_closedir() - Close directory handle


Tests for end-of-file on a file pointer

  • « streamWrapper::stream_close
  • streamWrapper::stream_flush »
  • PHP Manual
  • streamWrapper
  • Tests for end-of-file on a file pointer

streamWrapper::stream_eof

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_eof — Tests for end-of-file on a file pointer

Beschreibung

public streamWrapper::stream_eof ( ) : bool

This method is called in response to feof().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Should return true if the read/write position is at the end of the stream and if no more data is available to be read, or false otherwise.

Anmerkungen

Warnung

When reading the whole file (for example, with file_get_contents()), PHP will call streamWrapper::stream_read() followed by streamWrapper::stream_eof() in a loop but as long as streamWrapper::stream_read() returns a non-empty string, the return value of streamWrapper::stream_eof() is ignored.

Siehe auch

  • feof() - Prüft, ob ein Dateizeiger am Ende der Datei steht


Flushes the output

  • « streamWrapper::stream_eof
  • streamWrapper::stream_lock »
  • PHP Manual
  • streamWrapper
  • Flushes the output

streamWrapper::stream_flush

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_flush — Flushes the output

Beschreibung

public streamWrapper::stream_flush ( ) : bool

This method is called in response to fflush() and when the stream is being closed while any unflushed data has been written to it before.

If you have cached data in your stream but not yet stored it into the underlying storage, you should do so now.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Should return true if the cached data was successfully stored (or if there was no data to store), or false if the data could not be stored.

Anmerkungen

Hinweis:

If not implemented, false is assumed as the return value.

Siehe auch

  • fflush() - Schreibt den Ausgabepuffer in eine Datei


Advisory file locking

  • « streamWrapper::stream_flush
  • streamWrapper::stream_metadata »
  • PHP Manual
  • streamWrapper
  • Advisory file locking

streamWrapper::stream_lock

(PHP 5, PHP 7, PHP 8)

streamWrapper::stream_lock — Advisory file locking

Beschreibung

public streamWrapper::stream_lock ( int $operation ) : bool

This method is called in response to flock(), when file_put_contents() (when flags contains LOCK_EX), stream_set_blocking() and when closing the stream (LOCK_UN).

Parameter-Liste

operation

operation is one of the following:

  • LOCK_SH to acquire a shared lock (reader).
  • LOCK_EX to acquire an exclusive lock (writer).
  • LOCK_UN to release a lock (shared or exclusive).
  • LOCK_NB if you don't want flock() to block while locking. (not supported on Windows)

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Emits E_WARNING if call to this method fails (i.e. not implemented).

Siehe auch

  • stream_set_blocking() - Set blocking/non-blocking mode on a stream
  • flock() - Portables Datei-Sperr-Verfahren (advisory locking)


Change stream metadata

  • « streamWrapper::stream_lock
  • streamWrapper::stream_open »
  • PHP Manual
  • streamWrapper
  • Change stream metadata

streamWrapper::stream_metadata

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

streamWrapper::stream_metadata — Change stream metadata

Beschreibung

public streamWrapper::stream_metadata ( string $path , int $option , mixed $value ) : bool

This method is called to set metadata on the stream. It is called when one of the following functions is called on a stream URL:

  • touch()
  • chmod()
  • chown()
  • chgrp()
Please note that some of these operations may not be available on your system.

Parameter-Liste

path

The file path or URL to set metadata. Note that in the case of a URL, it must be a :// delimited URL. Other URL forms are not supported.

option

One of:

  • STREAM_META_TOUCH (The method was called in response to touch())
  • STREAM_META_OWNER_NAME (The method was called in response to chown() with string parameter)
  • STREAM_META_OWNER (The method was called in response to chown())
  • STREAM_META_GROUP_NAME (The method was called in response to chgrp())
  • STREAM_META_GROUP (The method was called in response to chgrp())
  • STREAM_META_ACCESS (The method was called in response to chmod())

value

If option is

  • STREAM_META_TOUCH: Array consisting of two arguments of the touch() function.
  • STREAM_META_OWNER_NAME or STREAM_META_GROUP_NAME: The name of the owner user/group as string.
  • STREAM_META_OWNER or STREAM_META_GROUP: The value owner user/group argument as int.
  • STREAM_META_ACCESS: The argument of the chmod() as int.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. If option is not implemented, false should be returned.

Siehe auch

  • touch() - Setzt die Zugriffs- und Modifikationszeit einer Datei
  • chmod() - Ändert die Zugriffsrechte einer Datei
  • chown() - Ändert den Eigentümer einer Datei
  • chgrp() - Wechselt die Gruppenzugehörigkeit einer Datei


Opens file or URL

  • « streamWrapper::stream_metadata
  • streamWrapper::stream_read »
  • PHP Manual
  • streamWrapper
  • Opens file or URL

streamWrapper::stream_open

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_open — Opens file or URL

Beschreibung

public streamWrapper::stream_open ( string $path , string $mode , int $options , string &$opened_path ) : bool

This method is called immediately after the wrapper is initialized (f.e. by fopen() and file_get_contents()).

Parameter-Liste

path

Specifies the URL that was passed to the original function.

Hinweis:

The URL can be broken apart with parse_url(). Note that only URLs delimited by :// are supported. : and :/ while technically valid URLs, are not.

mode

The mode used to open the file, as detailed for fopen().

Hinweis:

Remember to check if the mode is valid for the path requested.

options

Holds additional flags set by the streams API. It can hold one or more of the following values OR'd together.

Flag | Description
STREAM_USE_PATH | If path is relative, search for the resource using the include_path.
STREAM_REPORT_ERRORS | If this flag is set, you are responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.

opened_path

If the path is opened successfully, and STREAM_USE_PATH is set in options, opened_path should be set to the full path of the file/resource that was actually opened.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Wirft E_WARNING, wenn der Aufruf dieser Methode fehlschlug (z.B. weil sie nicht implementiert ist).

Anmerkungen

Hinweis:

Die streamWrapper::$context-Eigenschaft wird, wenn verfügbar, aktualisiert, wenn der aufrufenden Funktion ein gültiger Kontext übergeben wurde.

Siehe auch

  • fopen() - Öffnet eine Datei oder URL
  • parse_url() - Analysiert eine URL und gibt ihre Bestandteile zurück


Read from stream

  • « streamWrapper::stream_open
  • streamWrapper::stream_seek »
  • PHP Manual
  • streamWrapper
  • Read from stream

streamWrapper::stream_read

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_read — Read from stream

Beschreibung

public streamWrapper::stream_read ( int $count ) : string

This method is called in response to fread() and fgets().

Hinweis:

Remember to update the read/write position of the stream (by the number of bytes that were successfully read).

Parameter-Liste

count

How many bytes of data from the current position should be returned.

Rückgabewerte

If there are less than count bytes available, return as many as are available. If no more data is available, return either false or an empty string.

Fehler/Exceptions

Wirft E_WARNING, wenn der Aufruf dieser Methode fehlschlug (z.B. weil sie nicht implementiert ist).

Hinweis:

If the return value is longer then count an E_WARNING error will be emitted, and excess data will be lost.

Anmerkungen

Hinweis:

streamWrapper::stream_eof() is called directly after calling streamWrapper::stream_read() to check if EOF has been reached. If not implemented, EOF is assumed.

Warnung

When reading the whole file (for example, with file_get_contents()), PHP will call streamWrapper::stream_read() followed by streamWrapper::stream_eof() in a loop but as long as streamWrapper::stream_read() returns a non-empty string, the return value of streamWrapper::stream_eof() is ignored.

Siehe auch

  • fread() - Liest Binärdaten aus einer Datei
  • fgets() - Liest eine Zeile von der Position des Dateizeigers


Seeks to specific location in a stream

  • « streamWrapper::stream_read
  • streamWrapper::stream_set_option »
  • PHP Manual
  • streamWrapper
  • Seeks to specific location in a stream

streamWrapper::stream_seek

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_seek — Seeks to specific location in a stream

Beschreibung

public streamWrapper::stream_seek ( int $offset , int $whence = SEEK_SET ) : bool

This method is called in response to fseek().

The read/write position of the stream should be updated according to the offset and whence.

Parameter-Liste

offset

The stream offset to seek to.

whence

Possible values:

  • SEEK_SET - Set position equal to offset bytes.
  • SEEK_CUR - Set position to current location plus offset.
  • SEEK_END - Set position to end-of-file plus offset.

Hinweis: The current implementation never sets whence to SEEK_CUR; instead such seeks are internally converted to SEEK_SET seeks.

Rückgabewerte

Return true if the position was updated, false otherwise.

Anmerkungen

Hinweis:

If not implemented, false is assumed as the return value.

Hinweis:

Upon success,
streamWrapper::stream_tell() is called directly after
calling streamWrapper::stream_seek(). If
streamWrapper::stream_tell() fails, the return
value to the caller function will be set to false

Hinweis:

Not all seeks operations on the stream will result in this function being called. PHP streams have read buffering enabled by default (see also stream_set_read_buffer()) and seeking may be done by merely moving the buffer pointer.

Siehe auch

  • fseek() - Positioniert den Dateizeiger


Change stream options

  • « streamWrapper::stream_seek
  • streamWrapper::stream_stat »
  • PHP Manual
  • streamWrapper
  • Change stream options

streamWrapper::stream_set_option

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

streamWrapper::stream_set_option — Change stream options

Beschreibung

public streamWrapper::stream_set_option ( int $option , int $arg1 , int $arg2 ) : bool

This method is called to set options on the stream.

Parameter-Liste

option

One of:

  • STREAM_OPTION_BLOCKING (The method was called in response to stream_set_blocking())
  • STREAM_OPTION_READ_TIMEOUT (The method was called in response to stream_set_timeout())
  • STREAM_OPTION_WRITE_BUFFER (The method was called in response to stream_set_write_buffer())

arg1

If option is

  • STREAM_OPTION_BLOCKING: requested blocking mode (1 meaning block 0 not blocking).
  • STREAM_OPTION_READ_TIMEOUT: the timeout in seconds.
  • STREAM_OPTION_WRITE_BUFFER: buffer mode (STREAM_BUFFER_NONE or STREAM_BUFFER_FULL).

arg2

If option is

  • STREAM_OPTION_BLOCKING: This option is not set.
  • STREAM_OPTION_READ_TIMEOUT: the timeout in microseconds.
  • STREAM_OPTION_WRITE_BUFFER: the requested buffer size.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. If option is not implemented, false should be returned.

Siehe auch

  • stream_set_blocking() - Set blocking/non-blocking mode on a stream
  • stream_set_timeout() - Set timeout period on a stream
  • stream_set_write_buffer() - Sets write file buffering on the given stream


Retrieve information about a file resource

  • « streamWrapper::stream_set_option
  • streamWrapper::stream_tell »
  • PHP Manual
  • streamWrapper
  • Retrieve information about a file resource

streamWrapper::stream_stat

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_stat — Retrieve information about a file resource

Beschreibung

public streamWrapper::stream_stat ( ) : array

This method is called in response to fstat().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

See stat().

Fehler/Exceptions

Wirft E_WARNING, wenn der Aufruf dieser Methode fehlschlug (z.B. weil sie nicht implementiert ist).

Siehe auch

  • stat() - Sammelt Informationen über eine Datei
  • streamwrapper::url_stat() - Retrieve information about a file


Retrieve the current position of a stream

  • « streamWrapper::stream_stat
  • streamWrapper::stream_truncate »
  • PHP Manual
  • streamWrapper
  • Retrieve the current position of a stream

streamWrapper::stream_tell

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_tell — Retrieve the current position of a stream

Beschreibung

public streamWrapper::stream_tell ( ) : int

This method is called in response to fseek() to determine the current position.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Should return the current position of the stream.

Siehe auch

  • streamWrapper::stream_tell()


Truncate stream

  • « streamWrapper::stream_tell
  • streamWrapper::stream_write »
  • PHP Manual
  • streamWrapper
  • Truncate stream

streamWrapper::stream_truncate

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

streamWrapper::stream_truncate — Truncate stream

Beschreibung

public streamWrapper::stream_truncate ( int $new_size ) : bool

Will respond to truncation, e.g., through ftruncate().

Parameter-Liste

new_size

The new size.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ftruncate() - Kürzt eine Datei auf die angegebene Länge


Write to stream

  • « streamWrapper::stream_truncate
  • streamWrapper::unlink »
  • PHP Manual
  • streamWrapper
  • Write to stream

streamWrapper::stream_write

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_write — Write to stream

Beschreibung

public streamWrapper::stream_write ( string $data ) : int

This method is called in response to fwrite().

Hinweis:

Remember to update the current position of the stream by number of bytes that were successfully written.

Parameter-Liste

data

Should be stored into the underlying stream.

Hinweis:

If there is not enough room in the underlying stream, store as much as possible.

Rückgabewerte

Should return the number of bytes that were successfully stored, or 0 if none could be stored.

Fehler/Exceptions

Wirft E_WARNING, wenn der Aufruf dieser Methode fehlschlug (z.B. weil sie nicht implementiert ist).

Hinweis:

If the return value is greater the length of data, E_WARNING will be emitted and the return value will truncated to its length.

Siehe auch

  • fwrite() - Binär-sicheres Dateischreiben


Delete a file

  • « streamWrapper::stream_write
  • streamWrapper::url_stat »
  • PHP Manual
  • streamWrapper
  • Delete a file

streamWrapper::unlink

(PHP 5, PHP 7, PHP 8)

streamWrapper::unlink — Delete a file

Beschreibung

public streamWrapper::unlink ( string $path ) : bool

This method is called in response to unlink().

Hinweis:

In order for the appropriate error message to be returned this method should not be defined if the wrapper does not support removing files.

Parameter-Liste

path

The file URL which should be deleted.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Wirft E_WARNING, wenn der Aufruf dieser Methode fehlschlug (z.B. weil sie nicht implementiert ist).

Anmerkungen

Hinweis:

Die streamWrapper::$context-Eigenschaft wird, wenn verfügbar, aktualisiert, wenn der aufrufenden Funktion ein gültiger Kontext übergeben wurde.

Siehe auch

  • unlink() - Löscht eine Datei
  • streamWrapper::rmdir() - Removes a directory


Retrieve information about a file

  • « streamWrapper::unlink
  • Stream Funktionen »
  • PHP Manual
  • streamWrapper
  • Retrieve information about a file

streamWrapper::url_stat

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::url_stat — Retrieve information about a file

Beschreibung

public streamWrapper::url_stat ( string $path , int $flags ) : array

This method is called in response to all stat() related functions, such as:

  • copy()
  • fileperms()
  • fileinode()
  • filesize()
  • fileowner()
  • filegroup()
  • fileatime()
  • filemtime()
  • filectime()
  • filetype()
  • is_writable()
  • is_readable()
  • is_executable()
  • is_file()
  • is_dir()
  • is_link()
  • file_exists()
  • lstat()
  • stat()
  • SplFileInfo::getPerms()
  • SplFileInfo::getInode()
  • SplFileInfo::getSize()
  • SplFileInfo::getOwner()
  • SplFileInfo::getGroup()
  • SplFileInfo::getATime()
  • SplFileInfo::getMTime()
  • SplFileInfo::getCTime()
  • SplFileInfo::getType()
  • SplFileInfo::isWritable()
  • SplFileInfo::isReadable()
  • SplFileInfo::isExecutable()
  • SplFileInfo::isFile()
  • SplFileInfo::isDir()
  • SplFileInfo::isLink()
  • RecursiveDirectoryIterator::hasChildren()

Parameter-Liste

path

The file path or URL to stat. Note that in the case of a URL, it must be a :// delimited URL. Other URL forms are not supported.

flags

Holds additional flags set by the streams API. It can hold one or more of the following values OR'd together.

Flag | Description
STREAM_URL_STAT_LINK | For resources with the ability to link to other resource (such as an HTTP Location: forward, or a filesystem symlink). This flag specified that only information about the link itself should be returned, not the resource pointed to by the link. This flag is set in response to calls to lstat(), is_link(), or filetype().
STREAM_URL_STAT_QUIET | If this flag is set, your wrapper should not raise any errors. If this flag is not set, you are responsible for reporting errors using the trigger_error() function during stating of the path.

Rückgabewerte

Should return as many elements as stat() does. Unknown or unavailable values should be set to a rational value (usually 0). Pay special attention to mode as documented under stat().

Fehler/Exceptions

Wirft E_WARNING, wenn der Aufruf dieser Methode fehlschlug (z.B. weil sie nicht implementiert ist).

Anmerkungen

Hinweis:

Die streamWrapper::$context-Eigenschaft wird, wenn verfügbar, aktualisiert, wenn der aufrufenden Funktion ein gültiger Kontext übergeben wurde.

Siehe auch

  • stat() - Sammelt Informationen über eine Datei
  • streamwrapper::stream_stat() - Retrieve information about a file resource


Stream Funktionen

Inhaltsverzeichnis

  • stream_bucket_append — Append bucket to brigade
  • stream_bucket_make_writeable — Return a bucket object from the brigade for operating on
  • stream_bucket_new — Create a new bucket for use on the current stream
  • stream_bucket_prepend — Prepend bucket to brigade
  • stream_context_create — Creates a stream context
  • stream_context_get_default — Retrieve the default stream context
  • stream_context_get_options — Retrieve options for a stream/wrapper/context
  • stream_context_get_params — Retrieves parameters from a context
  • stream_context_set_default — Set the default stream context
  • stream_context_set_option — Sets an option for a stream/wrapper/context
  • stream_context_set_params — Set parameters for a stream/wrapper/context
  • stream_copy_to_stream — Copies data from one stream to another
  • stream_filter_append — Attach a filter to a stream
  • stream_filter_prepend — Attach a filter to a stream
  • stream_filter_register — Register a user defined stream filter
  • stream_filter_remove — Remove a filter from a stream
  • stream_get_contents — Reads remainder of a stream into a string
  • stream_get_filters — Retrieve list of registered filters
  • stream_get_line — Gets line from stream resource up to a given delimiter
  • stream_get_meta_data — Retrieves header/meta data from streams/file pointers
  • stream_get_transports — Retrieve list of registered socket transports
  • stream_get_wrappers — Retrieve list of registered streams
  • stream_is_local — Checks if a stream is a local stream
  • stream_isatty — Check if a stream is a TTY
  • stream_notification_callback — A callback function for the notification context parameter
  • stream_register_wrapper — Alias von stream_wrapper_register
  • stream_resolve_include_path — Resolve filename against the include path
  • stream_select — Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
  • stream_set_blocking — Set blocking/non-blocking mode on a stream
  • stream_set_chunk_size — Set the stream chunk size
  • stream_set_read_buffer — Set read file buffering on the given stream
  • stream_set_timeout — Set timeout period on a stream
  • stream_set_write_buffer — Sets write file buffering on the given stream
  • stream_socket_accept — Accept a connection on a socket created by stream_socket_server
  • stream_socket_client — Open Internet or Unix domain socket connection
  • stream_socket_enable_crypto — Turns encryption on/off on an already connected socket
  • stream_socket_get_name — Retrieve the name of the local or remote sockets
  • stream_socket_pair — Creates a pair of connected, indistinguishable socket streams
  • stream_socket_recvfrom — Receives data from a socket, connected or not
  • stream_socket_sendto — Sends a message to a socket, whether it is connected or not
  • stream_socket_server — Create an Internet or Unix domain server socket
  • stream_socket_shutdown — Shutdown a full-duplex connection
  • stream_supports_lock — Tells whether the stream supports locking
  • stream_wrapper_register — Register a URL wrapper implemented as a PHP class
  • stream_wrapper_restore — Restores a previously unregistered built-in wrapper
  • stream_wrapper_unregister — Unregister a URL wrapper


Append bucket to brigade

  • « Stream Funktionen
  • stream_bucket_make_writeable »
  • PHP Manual
  • Stream Funktionen
  • Append bucket to brigade

stream_bucket_append

(PHP 5, PHP 7, PHP 8)

stream_bucket_append — Append bucket to brigade

Beschreibung

stream_bucket_append ( resource $brigade , object $bucket ) : void
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Return a bucket object from the brigade for operating on

  • « stream_bucket_append
  • stream_bucket_new »
  • PHP Manual
  • Stream Funktionen
  • Return a bucket object from the brigade for operating on

stream_bucket_make_writeable

(PHP 5, PHP 7, PHP 8)

stream_bucket_make_writeable — Return a bucket object from the brigade for operating on

Beschreibung

stream_bucket_make_writeable ( resource $brigade ) : object
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Create a new bucket for use on the current stream

  • « stream_bucket_make_writeable
  • stream_bucket_prepend »
  • PHP Manual
  • Stream Funktionen
  • Create a new bucket for use on the current stream

stream_bucket_new

(PHP 5, PHP 7, PHP 8)

stream_bucket_new — Create a new bucket for use on the current stream

Beschreibung

stream_bucket_new ( resource $stream , string $buffer ) : object
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Prepend bucket to brigade

  • « stream_bucket_new
  • stream_context_create »
  • PHP Manual
  • Stream Funktionen
  • Prepend bucket to brigade

stream_bucket_prepend

(PHP 5, PHP 7, PHP 8)

stream_bucket_prepend — Prepend bucket to brigade

Beschreibung

stream_bucket_prepend ( resource $brigade , object $bucket ) : void

This function can be called to prepend a bucket to a bucket brigade. It is typically called from php_user_filter::filter().

Parameter-Liste

brigade

brigade is a resource pointing to a bucket brigade which contains one or more bucket objects.

bucket

A bucket object.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 stream_bucket_prepend() examples

<?php

class foo extends php_user_filter {
  protected $calls = 0;
  public function filter($in, $out, &$consumed, $closing) {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $consumed += $bucket->datalen;
      if ($this->calls++ == 2) {
        // This bucket will appear again before any other bucket.
        stream_bucket_prepend($in, $bucket);
      }
    }
    return PSFS_FEED_ME;
  }
}
stream_filter_register('test', 'foo');
print  file_get_contents('php://filter/read=test/resource=foo');
?>


Creates a stream context

  • « stream_bucket_prepend
  • stream_context_get_default »
  • PHP Manual
  • Stream Funktionen
  • Creates a stream context

stream_context_create

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_context_create — Creates a stream context

Beschreibung

stream_context_create ( array $options = ? , array $params = ? ) : resource

Creates and returns a stream context with any options supplied in options preset.

Parameter-Liste

options

Must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value. Refer to context options for a list of available wrappers and options.

Default to an empty array.

params

Must be an associative array in the format $arr['parameter'] = $value. Refer to context parameters for a listing of standard stream parameters.

Rückgabewerte

A stream context resource.

Beispiele

Beispiel #1 Using stream_context_create()

<?php
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

/* Sends an http request to www.example.com
   with additional headers shown above */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

Siehe auch

  • stream_context_set_option() - Sets an option for a stream/wrapper/context
  • Listing of supported wrappers (Unterstützte Protokolle und Wrapper)
  • Context options (Kontextoptionen und -parameter)


Retrieve the default stream context

  • « stream_context_create
  • stream_context_get_options »
  • PHP Manual
  • Stream Funktionen
  • Retrieve the default stream context

stream_context_get_default

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_context_get_default — Retrieve the default stream context

Beschreibung

stream_context_get_default ( array $options = ? ) : resource

Returns the default stream context which is used whenever file operations (fopen(), file_get_contents(), etc...) are called without a context parameter. Options for the default context can optionally be specified with this function using the same syntax as stream_context_create().

Parameter-Liste

options
options must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value.

Hinweis:

As of PHP 5.3.0, the stream_context_set_default() function can be used to set the default context.

Rückgabewerte

A stream context resource.

Beispiele

Beispiel #1 Using stream_context_get_default()

<?php
$default_opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar",
    'proxy'=>"tcp://10.54.1.39:8000"
  )
);

$alternate_opts = array(
  'http'=>array(
    'method'=>"POST",
    'header'=>"Content-type: application/x-www-form-urlencoded\r\n" .
              "Content-length: " . strlen("baz=bomb"),
    'content'=>"baz=bomb"
  )
);

$default = stream_context_get_default($default_opts);
$alternate = stream_context_create($alternate_opts);

/* Sends a regular GET request to proxy server at 10.54.1.39
 * For www.example.com using context options specified in $default_opts
 */
readfile('http://www.example.com');

/* Sends a POST request directly to www.example.com
 * Using context options specified in $alternate_opts
 */
readfile('http://www.example.com', false, $alternate);

?>

Siehe auch

  • stream_context_create() - Creates a stream context
  • Listing of supported wrappers with context options (Unterstützte Protokolle und Wrapper).


Retrieve options for a stream/wrapper/context

  • « stream_context_get_default
  • stream_context_get_params »
  • PHP Manual
  • Stream Funktionen
  • Retrieve options for a stream/wrapper/context

stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_context_get_options — Retrieve options for a stream/wrapper/context

Beschreibung

stream_context_get_options ( resource $stream_or_context ) : array

Returns an array of options on the specified stream or context.

Parameter-Liste

stream_or_context

The stream or context to get options from

Rückgabewerte

Returns an associative array with the options.

Beispiele

Beispiel #1 stream_context_get_options() example

<?php
$params = array("method" => "POST");

stream_context_set_default(array("http" => $params));

var_dump(stream_context_get_options(stream_context_get_default()));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  ["http"]=>
  array(1) {
    ["method"]=>
    string(4) "POST"
  }
}


Retrieves parameters from a context

  • « stream_context_get_options
  • stream_context_set_default »
  • PHP Manual
  • Stream Funktionen
  • Retrieves parameters from a context

stream_context_get_params

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

stream_context_get_params — Retrieves parameters from a context

Beschreibung

stream_context_get_params ( resource $stream_or_context ) : array

Retrieves parameter and options information from the stream or context.

Parameter-Liste

stream_or_context

A stream resource or a context resource

Rückgabewerte

Returns an associate array containing all context options and parameters.

Beispiele

Beispiel #1 stream_context_get_params() example

Basic usage example

<?php
$ctx = stream_context_create();
$params = array("notification" => "stream_notification_callback");
stream_context_set_params($ctx, $params);

var_dump(stream_context_get_params($ctx));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["notification"]=>
  string(28) "stream_notification_callback"
  ["options"]=>
  array(0) {
  }
}

Siehe auch

  • stream_context_set_option() - Sets an option for a stream/wrapper/context
  • stream_context_set_params() - Set parameters for a stream/wrapper/context


Set the default stream context

  • « stream_context_get_params
  • stream_context_set_option »
  • PHP Manual
  • Stream Funktionen
  • Set the default stream context

stream_context_set_default

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

stream_context_set_default — Set the default stream context

Beschreibung

stream_context_set_default ( array $options ) : resource

Set the default stream context which will be used whenever file operations (fopen(), file_get_contents(), etc...) are called without a context parameter. Uses the same syntax as stream_context_create().

Parameter-Liste

options

The options to set for the default context.

Hinweis:

options must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value.

Rückgabewerte

Returns the default stream context.

Beispiele

Beispiel #1 stream_context_set_default() example

<?php
$default_opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar",
    'proxy'=>"tcp://10.54.1.39:8000"
  )
);

$default = stream_context_set_default($default_opts);

/* Sends a regular GET request to proxy server at 10.54.1.39
 * For www.example.com using context options specified in $default_opts
 */
readfile('http://www.example.com');
?>

Siehe auch

  • stream_context_create() - Creates a stream context
  • stream_context_get_default() - Retrieve the default stream context
  • Listing of supported wrappers with context options (Unterstützte Protokolle und Wrapper).


Sets an option for a stream/wrapper/context

  • « stream_context_set_default
  • stream_context_set_params »
  • PHP Manual
  • Stream Funktionen
  • Sets an option for a stream/wrapper/context

stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_context_set_option — Sets an option for a stream/wrapper/context

Beschreibung

stream_context_set_option ( resource $stream_or_context , string $wrapper , string $option , mixed $value ) : bool
stream_context_set_option ( resource $stream_or_context , array $options ) : bool

Sets an option on the specified context. value is set to option for wrapper

Parameter-Liste

stream_or_context

The stream or context resource to apply the options to.

options

The options to set for stream_or_context.

Hinweis:

options must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value.

Refer to context options and parameters for a listing of stream options.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set parameters for a stream/wrapper/context

  • « stream_context_set_option
  • stream_copy_to_stream »
  • PHP Manual
  • Stream Funktionen
  • Set parameters for a stream/wrapper/context

stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_context_set_params — Set parameters for a stream/wrapper/context

Beschreibung

stream_context_set_params ( resource $context , array $params ) : bool

Sets parameters on the specified context.

Parameter-Liste

context

The stream or context to apply the parameters too.

params

An array of parameters to set.

Hinweis:

params should be an associative array of the structure: $params['paramname'] = "paramvalue";.

Supported parameters

Parameters | Purpose
notification | Name of user-defined callback function to be called whenever a stream triggers a notification. Only supported for http:// and ftp:// stream wrappers.
options | Array of options as in context options and parameters.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • stream_notification_callback() - A callback function for the notification context parameter


Copies data from one stream to another

  • « stream_context_set_params
  • stream_filter_append »
  • PHP Manual
  • Stream Funktionen
  • Copies data from one stream to another

stream_copy_to_stream

(PHP 5, PHP 7, PHP 8)

stream_copy_to_stream — Copies data from one stream to another

Beschreibung

stream_copy_to_stream ( resource $source , resource $dest , int $maxlength = -1 , int $offset = 0 ) : int|false

Makes a copy of up to maxlength bytes of data from the current position (or from the offset position, if specified) in source to dest. If maxlength is not specified, all remaining content in source will be copied.

Parameter-Liste

source

The source stream

dest

The destination stream

maxlength

Maximum bytes to copy

offset

The offset where to start to copy data

Rückgabewerte

Returns the total count of bytes copied, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 A stream_copy_to_stream() example

<?php
$src = fopen('http://www.example.com', 'r');
$dest1 = fopen('first1k.txt', 'w');
$dest2 = fopen('remainder.txt', 'w');

echo stream_copy_to_stream($src, $dest1, 1024) . " bytes copied to first1k.txt\n";
echo stream_copy_to_stream($src, $dest2) . " bytes copied to remainder.txt\n";

?>

Siehe auch

  • copy() - Kopiert eine Datei


Attach a filter to a stream

  • « stream_copy_to_stream
  • stream_filter_prepend »
  • PHP Manual
  • Stream Funktionen
  • Attach a filter to a stream

stream_filter_append

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_filter_append — Attach a filter to a stream

Beschreibung

stream_filter_append ( resource $stream , string $filtername , int $read_write = ? , mixed $params = ? ) : resource

Adds filtername to the list of filters attached to stream.

Parameter-Liste

stream

The target stream.

filtername

The filter name.

read_write

By default, stream_filter_append() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior.

params

This filter will be added with the specified params to the end of the list and will therefore be called last during stream operations. To add a filter to the beginning of the list, use stream_filter_prepend().

Rückgabewerte

Returns a resource on success or false on failure. The resource can be used to refer to this filter instance during a call to stream_filter_remove().

false is returned if stream is not a resource or if filtername cannot be located.

Beispiele

Beispiel #1 Controlling where filters are applied

<?php
/* Open a test file for reading and writing */
$fp = fopen('test.txt', 'w+');

/* Apply the ROT13 filter to the
 * write filter chain, but not the
 * read filter chain */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* Write a simple string to the file
 * it will be ROT13 transformed on the
 * way out */
fwrite($fp, "This is a test\n");

/* Back up to the beginning of the file */
rewind($fp);

/* Read the contents of the file back out.
 * Had the filter been applied to the
 * read filter chain as well, we would see
 * the text ROT13ed back to its original state */
fpassthru($fp);

fclose($fp);

/* Expected Output
   ---------------

Guvf vf n grfg

 */
?>

Anmerkungen

Hinweis: When using custom (user) filters
stream_filter_register() must be called first in order to register the desired user filter to filtername.

Hinweis: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is appended to a stream, data in the internal buffers is processed through the new filter at that time. This differs from the behavior of stream_filter_prepend().

Hinweis: When a filter is added for read and write, two instances of the filter are created. stream_filter_append() must be called twice with STREAM_FILTER_READ and STREAM_FILTER_WRITE to get both filter resources.

Siehe auch

  • stream_filter_register() - Register a user defined stream filter
  • stream_filter_prepend() - Attach a filter to a stream
  • stream_get_filters() - Retrieve list of registered filters


Attach a filter to a stream

  • « stream_filter_append
  • stream_filter_register »
  • PHP Manual
  • Stream Funktionen
  • Attach a filter to a stream

stream_filter_prepend

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_filter_prepend — Attach a filter to a stream

Beschreibung

stream_filter_prepend ( resource $stream , string $filtername , int $read_write = ? , mixed $params = ? ) : resource

Adds filtername to the list of filters attached to stream.

Parameter-Liste

stream

The target stream.

filtername

The filter name.

read_write

By default, stream_filter_prepend() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior. See stream_filter_append() for an example of using this parameter.

params

This filter will be added with the specified params to the beginning of the list and will therefore be called first during stream operations. To add a filter to the end of the list, use stream_filter_append().

Rückgabewerte

Returns a resource on success or false on failure. The resource can be used to refer to this filter instance during a call to stream_filter_remove().

false is returned if stream is not a resource or if filtername cannot be located.

Anmerkungen

Hinweis: When using custom (user) filters
stream_filter_register() must be called first in order to register the desired user filter to filtername.

Hinweis: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is prepended to a stream, data in the internal buffers, which has already been processed through other filters will not be reprocessed through the new filter at that time. This differs from the behavior of stream_filter_append().

Hinweis: When a filter is added for read and write, two instances of the filter are created. stream_filter_prepend() must be called twice with STREAM_FILTER_READ and STREAM_FILTER_WRITE to get both filter resources.

Siehe auch

  • stream_filter_register() - Register a user defined stream filter
  • stream_filter_append() - Attach a filter to a stream


Register a user defined stream filter

  • « stream_filter_prepend
  • stream_filter_remove »
  • PHP Manual
  • Stream Funktionen
  • Register a user defined stream filter

stream_filter_register

(PHP 5, PHP 7, PHP 8)

stream_filter_register — Register a user defined stream filter

Beschreibung

stream_filter_register ( string $filter_name , string $class ) : bool

stream_filter_register() allows you to implement your own filter on any registered stream used with all the other filesystem functions (such as fopen(), fread() etc.).

Parameter-Liste

filter_name

The filter name to be registered.

class

To implement a filter, you need to define a class as an extension of php_user_filter with a number of member functions. When performing read/write operations on the stream to which your filter is attached, PHP will pass the data through your filter (and any other filters attached to that stream) so that the data may be modified as desired. You must implement the methods exactly as described in php_user_filter - doing otherwise will lead to undefined behaviour.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

stream_filter_register() will return false if the filter_name is already defined.

Beispiele

Beispiel #1 Filter for capitalizing characters on foo-bar.txt stream

The example below implements a filter named strtoupper on the foo-bar.txt stream which will capitalize all letter characters written to/read from that stream.

<?php

/* Define our filter class */
class strtoupper_filter extends php_user_filter {
  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $bucket->data = strtoupper($bucket->data);
      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }
}

/* Register our filter with PHP */
stream_filter_register("strtoupper", "strtoupper_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened */
stream_filter_append($fp, "strtoupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
 */
readfile("foo-bar.txt");

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

LINE1
WORD - 2
EASY AS 123

Beispiel #2 Registering a generic filter class to match multiple filter names.

<?php

/* Define our filter class */
class string_filter extends php_user_filter {
  var $mode;

  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      if ($this->mode == 1) {
        $bucket->data = strtoupper($bucket->data);
      } elseif ($this->mode == 0) {
        $bucket->data = strtolower($bucket->data);
      }

      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }

  function onCreate()
  {
    if ($this->filtername == 'str.toupper') {
      $this->mode = 1;
    } elseif ($this->filtername == 'str.tolower') {
      $this->mode = 0;
    } else {
      /* Some other str.* filter was asked for,
         report failure so that PHP will keep looking */
      return false;
    }

    return true;
  }
}

/* Register our filter with PHP */
stream_filter_register("str.*", "string_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened
   We could alternately bind to str.tolower here */
stream_filter_append($fp, "str.toupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
 */
readfile("foo-bar.txt");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

LINE1
WORD - 2
EASY AS 123

Siehe auch

  • stream_wrapper_register() - Register a URL wrapper implemented as a PHP class
  • stream_filter_append() - Attach a filter to a stream
  • stream_filter_prepend() - Attach a filter to a stream


Remove a filter from a stream

  • « stream_filter_register
  • stream_get_contents »
  • PHP Manual
  • Stream Funktionen
  • Remove a filter from a stream

stream_filter_remove

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_filter_remove — Remove a filter from a stream

Beschreibung

stream_filter_remove ( resource $stream_filter ) : bool

Removes a stream filter previously added to a stream with stream_filter_prepend() or stream_filter_append(). Any data remaining in the filter's internal buffer will be flushed through to the next filter before removing it.

Parameter-Liste

stream_filter

The stream filter to be removed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Dynamically refiltering a stream

<?php
/* Open a test file for reading and writing */
$fp = fopen("test.txt", "rw");

$rot13_filter = stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
fwrite($fp, "This is ");
stream_filter_remove($rot13_filter);
fwrite($fp, "a test\n");

rewind($fp);
fpassthru($fp);
fclose($fp);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Guvf vf a test

Siehe auch

  • stream_filter_register() - Register a user defined stream filter
  • stream_filter_append() - Attach a filter to a stream
  • stream_filter_prepend() - Attach a filter to a stream


Reads remainder of a stream into a string

  • « stream_filter_remove
  • stream_get_filters »
  • PHP Manual
  • Stream Funktionen
  • Reads remainder of a stream into a string

stream_get_contents

(PHP 5, PHP 7, PHP 8)

stream_get_contents — Reads remainder of a stream into a string

Beschreibung

stream_get_contents ( resource $handle , int $maxlength = -1 , int $offset = -1 ) : string|false

Identical to file_get_contents(), except that stream_get_contents() operates on an already open stream resource and returns the remaining contents in a string, up to maxlength bytes and starting at the specified offset.

Parameter-Liste

handle (resource)

A stream resource (e.g. returned from fopen())

maxlength (int)

The maximum bytes to read. Defaults to -1 (read all the remaining buffer).

offset (int)

Seek to the specified offset before reading. If this number is negative, no seeking will occur and reading will start from the current position.

Rückgabewerte

Returns a stringIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 stream_get_contents() example

<?php

if ($stream = fopen('http://www.example.com', 'r')) {
    // print all the page starting at the offset 10
    echo stream_get_contents($stream, -1, 10);

    fclose($stream);
}

if ($stream = fopen('http://www.example.net', 'r')) {
    // print the first 5 bytes
    echo stream_get_contents($stream, 5);

    fclose($stream);
}

?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • fgets() - Liest eine Zeile von der Position des Dateizeigers
  • fread() - Liest Binärdaten aus einer Datei
  • fpassthru() - Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.


Retrieve list of registered filters

  • « stream_get_contents
  • stream_get_line »
  • PHP Manual
  • Stream Funktionen
  • Retrieve list of registered filters

stream_get_filters

(PHP 5, PHP 7, PHP 8)

stream_get_filters — Retrieve list of registered filters

Beschreibung

stream_get_filters ( ) : array

Retrieve the list of registered filters on the running system.

Rückgabewerte

Returns an indexed array containing the name of all stream filters available.

Beispiele

Beispiel #1 Using stream_get_filters()

<?php
$streamlist = stream_get_filters();
print_r($streamlist);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)

Siehe auch

  • stream_filter_register() - Register a user defined stream filter
  • stream_get_wrappers() - Retrieve list of registered streams


Gets line from stream resource up to a given delimiter

  • « stream_get_filters
  • stream_get_meta_data »
  • PHP Manual
  • Stream Funktionen
  • Gets line from stream resource up to a given delimiter

stream_get_line

(PHP 5, PHP 7, PHP 8)

stream_get_line — Gets line from stream resource up to a given delimiter

Beschreibung

stream_get_line ( resource $handle , int $length , string $ending = ? ) : string

Gets a line from the given handle.

Reading ends when length bytes have been read, when the string specified by ending is found (which is not included in the return value), or on EOF (whichever comes first).

This function is nearly identical to fgets() except in that it allows end of line delimiters other than the standard \n, \r, and \r\n, and does not return the delimiter itself.

Parameter-Liste

handle

A valid file handle.

length

The number of bytes to read from the handle.

ending

An optional string delimiter.

Rückgabewerte

Returns a string of up to length bytes read from the file pointed to by handle.

If an error occurs, returns false.

Siehe auch

  • fread() - Liest Binärdaten aus einer Datei
  • fgets() - Liest eine Zeile von der Position des Dateizeigers
  • fgetc() - Liest das Zeichen, auf welches der Dateizeiger zeigt


Retrieves header/meta data from streams/file pointers

  • « stream_get_line
  • stream_get_transports »
  • PHP Manual
  • Stream Funktionen
  • Retrieves header/meta data from streams/file pointers

stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_get_meta_data — Retrieves header/meta data from streams/file pointers

Beschreibung

stream_get_meta_data ( resource $stream ) : array

Returns information about an existing stream.

Parameter-Liste

stream

The stream can be any stream created by fopen(), fsockopen() and pfsockopen().

Rückgabewerte

The result array contains the following items:

  • timed_out (bool) - true if the stream timed out while waiting for data on the last call to fread() or fgets().

  • blocked (bool) - true if the stream is in blocking IO mode. See stream_set_blocking().

  • eof (bool) - true if the stream has reached end-of-file. Note that for socket streams this member can be true even when unread_bytes is non-zero. To determine if there is more data to be read, use feof() instead of reading this item.

  • unread_bytes (int) - the number of bytes currently contained in the PHP's own internal buffer.

    Hinweis: You shouldn't use this value in a script.

  • stream_type (string) - a label describing the underlying implementation of the stream.

  • wrapper_type (string) - a label describing the protocol wrapper implementation layered over the stream. See Unterstützte Protokolle und Wrapper for more information about wrappers.

  • wrapper_data (mixed) - wrapper specific data attached to this stream. See Unterstützte Protokolle und Wrapper for more information about wrappers and their wrapper data.

  • mode (string) - the type of access required for this stream (see Table 1 of the fopen() reference)

  • seekable (bool) - whether the current stream can be seeked.

  • uri (string) - the URI/filename associated with this stream.

Beispiele

Beispiel #1 stream_get_meta_data() example

<?php
$url = 'http://www.example.com/';

if (!$fp = fopen($url, 'r')) {
    trigger_error("Unable to open URL ($url)", E_USER_ERROR);
}

$meta = stream_get_meta_data($fp);

print_r($meta);

fclose($fp);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [wrapper_data] => Array
        (
            [0] => HTTP/1.1 200 OK
            [1] => Server: Apache/2.2.3 (Red Hat)
            [2] => Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
            [3] => ETag: "b300b4-1b6-4059a80bfd280"
            [4] => Accept-Ranges: bytes
            [5] => Content-Type: text/html; CHARSET=Windows-1252
            [6] => Set-Cookie: FOO=BAR; expires=Fri, 21-Dec-2012 12:00:00 GMT; path=/; domain=.example.com
            [6] => Connection: close
            [7] => Date: Fri, 16 Oct 2009 12:00:00 GMT
            [8] => Age: 1164
            [9] => Content-Length: 438
        )

    [wrapper_type] => http
    [stream_type] => tcp_socket/ssl
    [mode] => r
    [unread_bytes] => 438
    [seekable] =>
    [uri] => http://www.example.com/
    [timed_out] =>
    [blocked] => 1
    [eof] =>
)

Anmerkungen

Hinweis:

This function does NOT work on sockets created by the Socket extension.

Siehe auch

  • get_headers() - Ruft alle Header ab, die der Server als Antwort auf einen HTTP-Request versendet
  • $http_response_header


Retrieve list of registered socket transports

  • « stream_get_meta_data
  • stream_get_wrappers »
  • PHP Manual
  • Stream Funktionen
  • Retrieve list of registered socket transports

stream_get_transports

(PHP 5, PHP 7, PHP 8)

stream_get_transports — Retrieve list of registered socket transports

Beschreibung

stream_get_transports ( ) : array

Returns an indexed array containing the name of all socket transports available on the running system.

Rückgabewerte

Returns an indexed array of socket transports names.

Beispiele

Beispiel #1 Using stream_get_transports()

<?php
$xportlist = stream_get_transports();
print_r($xportlist);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)

Siehe auch

  • stream_get_filters() - Retrieve list of registered filters
  • stream_get_wrappers() - Retrieve list of registered streams


Retrieve list of registered streams

  • « stream_get_transports
  • stream_is_local »
  • PHP Manual
  • Stream Funktionen
  • Retrieve list of registered streams

stream_get_wrappers

(PHP 5, PHP 7, PHP 8)

stream_get_wrappers — Retrieve list of registered streams

Beschreibung

stream_get_wrappers ( ) : array

Retrieve list of registered streams available on the running system.

Rückgabewerte

Returns an indexed array containing the name of all stream wrappers available on the running system.

Beispiele

Beispiel #1 stream_get_wrappers() example

<?php
print_r(stream_get_wrappers());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => php
    [1] => file
    [2] => http
    [3] => ftp
    [4] => compress.bzip2
    [5] => compress.zlib
)

Beispiel #2 Checking for the existence of a stream wrapper

<?php
// check for the existence of the bzip2 stream wrapper
if (in_array('compress.bzip2', stream_get_wrappers())) {
    echo 'compress.bzip2:// support enabled.';
} else {
    echo 'compress.bzip2:// support not enabled.';
}
?>

Siehe auch

  • stream_wrapper_register() - Register a URL wrapper implemented as a PHP class


Checks if a stream is a local stream

  • « stream_get_wrappers
  • stream_isatty »
  • PHP Manual
  • Stream Funktionen
  • Checks if a stream is a local stream

stream_is_local

(PHP 5 >= 5.2.4, PHP 7, PHP 8)

stream_is_local — Checks if a stream is a local stream

Beschreibung

stream_is_local ( resource|string $stream ) : bool

Checks if a stream, or a URL, is a local one or not.

Parameter-Liste

stream

The stream resource or URL to check.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 stream_is_local() example

Basic usage example.

<?php
var_dump(stream_is_local("http://example.com"));
var_dump(stream_is_local("/etc"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)


Check if a stream is a TTY

  • « stream_is_local
  • stream_notification_callback »
  • PHP Manual
  • Stream Funktionen
  • Check if a stream is a TTY

stream_isatty

(PHP 7 >= 7.2.0, PHP 8)

stream_isatty — Check if a stream is a TTY

Beschreibung

stream_isatty ( resource $stream ) : bool

Determines if stream stream refers to a valid terminal type device. This is a more portable version of posix_isatty(), since it works on Windows systems too.

Parameter-Liste

stream

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 stream_isatty() example

This command can be used to determine if a standard output / standard error stream is redirected to a file.

php -r "var_export(stream_isatty(STDERR));"

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

true
php -r "var_export(stream_isatty(STDERR));" 2>output.txt

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

false


A callback function for the notification context parameter

  • « stream_isatty
  • stream_register_wrapper »
  • PHP Manual
  • Stream Funktionen
  • A callback function for the notification context parameter

stream_notification_callback

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

stream_notification_callback — A callback function for the notification context parameter

Beschreibung

stream_notification_callback ( int $notification_code , int $severity , string $message , int $message_code , int $bytes_transferred , int $bytes_max ) : void

A callable function, used by the notification context parameter, called during an event.

Hinweis:

This is not a real function, only a prototype of how the function should be.

Parameter-Liste

notification_code

One of the STREAM_NOTIFY_* notification constants.

severity

One of the STREAM_NOTIFY_SEVERITY_* notification constants.

message

Passed if a descriptive message is available for the event.

message_code

Passed if a descriptive message code is available for the event.

The meaning of this value is dependent on the specific wrapper in use.

bytes_transferred

If applicable, the bytes_transferred will be populated.

bytes_max

If applicable, the bytes_max will be populated.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 stream_notification_callback() example

<?php
function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {

    switch($notification_code) {
        case STREAM_NOTIFY_RESOLVE:
        case STREAM_NOTIFY_AUTH_REQUIRED:
        case STREAM_NOTIFY_COMPLETED:
        case STREAM_NOTIFY_FAILURE:
        case STREAM_NOTIFY_AUTH_RESULT:
            var_dump($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max);
            /* Ignore */
            break;

        case STREAM_NOTIFY_REDIRECTED:
            echo "Being redirected to: ", $message;
            break;

        case STREAM_NOTIFY_CONNECT:
            echo "Connected...";
            break;

        case STREAM_NOTIFY_FILE_SIZE_IS:
            echo "Got the filesize: ", $bytes_max;
            break;

        case STREAM_NOTIFY_MIME_TYPE_IS:
            echo "Found the mime-type: ", $message;
            break;

        case STREAM_NOTIFY_PROGRESS:
            echo "Made some progress, downloaded ", $bytes_transferred, " so far";
            break;
    }
    echo "\n";
}

$ctx = stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

file_get_contents("http://php.net/contact", false, $ctx);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Connected...
Found the mime-type: text/html; CHARSET=Windows-1252
Being redirected to: http://no.php.net/contact
Connected...
Got the filesize: 0
Found the mime-type: text/html; CHARSET=Windows-1252
Being redirected to: http://no.php.net/contact.php
Connected...
Got the filesize: 4589
Found the mime-type: text/html;CHARSET=Windows-1252
Made some progress, downloaded 0 so far
Made some progress, downloaded 0 so far
Made some progress, downloaded 0 so far
Made some progress, downloaded 1440 so far
Made some progress, downloaded 2880 so far
Made some progress, downloaded 4320 so far
Made some progress, downloaded 5760 so far
Made some progress, downloaded 6381 so far
Made some progress, downloaded 7002 so far

Beispiel #2 Simple progressbar for commandline download client

<?php
function usage($argv) {
    echo "Usage:\n";
    printf("\tphp %s <http://example.com/file> <localfile>\n", $argv[0]);
    exit(1);
}

function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {
    static $filesize = null;

    switch($notification_code) {
    case STREAM_NOTIFY_RESOLVE:
    case STREAM_NOTIFY_AUTH_REQUIRED:
    case STREAM_NOTIFY_COMPLETED:
    case STREAM_NOTIFY_FAILURE:
    case STREAM_NOTIFY_AUTH_RESULT:
        /* Ignore */
        break;

    case STREAM_NOTIFY_REDIRECTED:
        echo "Being redirected to: ", $message, "\n";
        break;

    case STREAM_NOTIFY_CONNECT:
        echo "Connected...\n";
        break;

    case STREAM_NOTIFY_FILE_SIZE_IS:
        $filesize = $bytes_max;
        echo "Filesize: ", $filesize, "\n";
        break;

    case STREAM_NOTIFY_MIME_TYPE_IS:
        echo "Mime-type: ", $message, "\n";
        break;

    case STREAM_NOTIFY_PROGRESS:
        if ($bytes_transferred > 0) {
            if (!isset($filesize)) {
                printf("\rUnknown filesize.. %2d kb done..", $bytes_transferred/1024);
            } else {
                $length = (int)(($bytes_transferred/$filesize)*100);
                printf("\r[%-100s] %d%% (%2d/%2d kb)", str_repeat("=", $length). ">", $length, ($bytes_transferred/1024), $filesize/1024);
            }
        }
        break;
    }
}

isset($argv[1], $argv[2]) or usage($argv);

$ctx = stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

$fp = fopen($argv[1], "r", false, $ctx);
if (is_resource($fp) && file_put_contents($argv[2], $fp)) {
    echo "\nDone!\n";
    exit(0);
}

$err = error_get_last();
echo "\nErrrrrorr..\n", $err["message"], "\n";
exit(1);
?>

Executing the example above with: php -n fetch.php http://no2.php.net/get/php-5-LATEST.tar.bz2/from/this/mirror php-latest.tar.bz2 will output something similar too:

Connected...
Mime-type: text/html; CHARSET=Windows-1252
Being redirected to: http://no2.php.net/distributions/php-5.2.5.tar.bz2
Connected...
Filesize: 7773024
Mime-type: application/octet-stream
[========================================>                                                           ] 40% (3076/7590 kb)

Siehe auch

  • Kontextparameter


Alias von stream_wrapper_register

  • « stream_notification_callback
  • stream_resolve_include_path »
  • PHP Manual
  • Stream Funktionen
  • Alias von stream_wrapper_register

stream_register_wrapper

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_register_wrapper — Alias von stream_wrapper_register()

Beschreibung

Diese Funktion ist ein Alias für: stream_wrapper_register().


Resolve filename against the include path

  • « stream_register_wrapper
  • stream_select »
  • PHP Manual
  • Stream Funktionen
  • Resolve filename against the include path

stream_resolve_include_path

(PHP 5 >= 5.3.2, PHP 7, PHP 8)

stream_resolve_include_path — Resolve filename against the include path

Beschreibung

stream_resolve_include_path ( string $filename ) : string|false

Resolve filename against the include path according to the same rules as fopen()/include.

Parameter-Liste

filename

The filename to resolve.

Rückgabewerte

Returns a string containing the resolved absolute filename, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 stream_resolve_include_path() example

Basic usage example.

<?php
var_dump(stream_resolve_include_path("test.php"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(22) "/var/www/html/test.php"


Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec

  • « stream_resolve_include_path
  • stream_set_blocking »
  • PHP Manual
  • Stream Funktionen
  • Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec

stream_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_select — Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec

Beschreibung

stream_select ( array &$read , array &$write , array &$except , int $tv_sec , int $tv_usec = 0 ) : int

The stream_select() function accepts arrays of streams and waits for them to change status. Its operation is equivalent to that of the socket_select() function except in that it acts on streams.

Parameter-Liste

read

The streams listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a stream resource is also ready on end-of-file, in which case an fread() will return a zero length string).

write

The streams listed in the write array will be watched to see if a write will not block.

except

The streams listed in the except array will be watched for high priority exceptional ("out-of-band") data arriving.

Hinweis:

When stream_select() returns, the arrays read, write and except are modified to indicate which stream resource(s) actually changed status. The original keys of the Arrays are preserved.

tv_sec

The tv_sec and tv_usec together form the timeout parameter, tv_sec specifies the number of seconds while tv_usec the number of microseconds. The timeout is an upper bound on the amount of time that stream_select() will wait before it returns. If tv_sec and tv_usec are both set to 0, stream_select() will not wait for data - instead it will return immediately, indicating the current status of the streams.

If tv_sec is null stream_select() can block indefinitely, returning only when an event on one of the watched streams occurs (or if a signal interrupts the system call).

Warnung

Using a timeout value of 0 allows you to instantaneously poll the status of the streams, however, it is NOT a good idea to use a 0 timeout value in a loop as it will cause your script to consume too much CPU time.

It is much better to specify a timeout value of a few seconds, although if you need to be checking and running other code concurrently, using a timeout value of at least 200000 microseconds will help reduce the CPU usage of your script.

Remember that the timeout value is the maximum time that will elapse; stream_select() will return as soon as the requested streams are ready for use.

tv_usec

See tv_sec description.

Rückgabewerte

On success stream_select() returns the number of stream resources contained in the modified arrays, which may be zero if the timeout expires before anything interesting happens. On error false is returned and a warning raised (this can happen if the system call is interrupted by an incoming signal).

Beispiele

Beispiel #1 stream_select() Example

This example checks to see if data has arrived for reading on either $stream1 or $stream2. Since the timeout value is 0 it will return immediately:

<?php
/* Prepare the read array */
$read   = array($stream1, $stream2);
$write  = NULL;
$except = NULL;
if (false === ($num_changed_streams = stream_select($read, $write, $except, 0))) {
    /* Error handling */
} elseif ($num_changed_streams > 0) {
    /* At least on one of the streams something interesting happened */
}
?>

Anmerkungen

Hinweis:

Due to a limitation in the current Zend Engine it is not possible to pass a constant modifier like null directly as a parameter to a function which expects this parameter to be passed by reference. Instead use a temporary variable or an expression with the leftmost member being a temporary variable:

<?php
$e = NULL;
stream_select($r, $w, $e, 0);
?>

Hinweis:

Be sure to use the === operator when checking for an error. Since the stream_select() may return 0 the comparison with == would evaluate to true:

<?php
$e = NULL;
if (false === stream_select($r, $w, $e, 0)) {
    echo "stream_select() failed\n";
}
?>

Hinweis:

If you read/write to a stream returned in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.

Hinweis:

Some streams (like zlib) cannot be selected by this function.

Hinweis: Windows compatibility

Use of stream_select() on file descriptors returned by proc_open() will fail and return false under Windows.

STDIN from a console changes status as soon as any input events are available, but reading from the stream may still block.

Siehe auch

  • stream_set_blocking() - Set blocking/non-blocking mode on a stream


Set blocking/non-blocking mode on a stream

  • « stream_select
  • stream_set_chunk_size »
  • PHP Manual
  • Stream Funktionen
  • Set blocking/non-blocking mode on a stream

stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_set_blocking — Set blocking/non-blocking mode on a stream

Beschreibung

stream_set_blocking ( resource $stream , bool $enable ) : bool

Sets blocking or non-blocking mode on a stream.

This function works for any stream that supports non-blocking mode (currently, regular files and socket streams).

Parameter-Liste

stream

The stream.

enable

If enable is false, the given stream will be switched to non-blocking mode, and if true, it will be switched to blocking mode. This affects calls like fgets() and fread() that read from the stream. In non-blocking mode an fgets() call will always return right away while in blocking mode it will wait for data to become available on the stream.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

This function was previously called as set_socket_blocking() and later socket_set_blocking() but this usage is deprecated.

Hinweis:

On Windows, this has no affect on local files. Non-blocking IO for local files is not supported on Windows.

Siehe auch

  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec


Set the stream chunk size

  • « stream_set_blocking
  • stream_set_read_buffer »
  • PHP Manual
  • Stream Funktionen
  • Set the stream chunk size

stream_set_chunk_size

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

stream_set_chunk_size — Set the stream chunk size

Beschreibung

stream_set_chunk_size ( resource $stream , int $size ) : int

Set the stream chunk size.

Parameter-Liste

stream

The target stream.

size

The desired new chunk size.

Rückgabewerte

Returns the previous chunk size on success.

Will return false if size is less than 1 or greater than PHP_INT_MAX.

Fehler/Exceptions

Will emit an E_WARNING level error if size is less than 1 or greater than PHP_INT_MAX.


Set read file buffering on the given stream

  • « stream_set_chunk_size
  • stream_set_timeout »
  • PHP Manual
  • Stream Funktionen
  • Set read file buffering on the given stream

stream_set_read_buffer

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

stream_set_read_buffer — Set read file buffering on the given stream

Beschreibung

stream_set_read_buffer ( resource $stream , int $size ) : int

Sets the read buffer. It's the equivalent of stream_set_write_buffer(), but for read operations.

Parameter-Liste

stream

The file pointer.

size

The number of bytes to buffer. If size is 0 then read operations are unbuffered. This ensures that all reads with fread() are completed before other processes are allowed to read from that input stream.

Rückgabewerte

Returns 0 on success, or another value if the request cannot be honored.

Siehe auch

  • stream_set_write_buffer() - Sets write file buffering on the given stream


Set timeout period on a stream

  • « stream_set_read_buffer
  • stream_set_write_buffer »
  • PHP Manual
  • Stream Funktionen
  • Set timeout period on a stream

stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_set_timeout — Set timeout period on a stream

Beschreibung

stream_set_timeout ( resource $stream , int $seconds , int $microseconds = 0 ) : bool

Sets the timeout value on stream, expressed in the sum of seconds and microseconds.

When the stream times out, the 'timed_out' key of the array returned by stream_get_meta_data() is set to true, although no error/warning is generated.

Parameter-Liste

stream

The target stream.

seconds

The seconds part of the timeout to be set.

microseconds

The microseconds part of the timeout to be set.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 stream_set_timeout() example

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
    echo "Unable to open\n";
} else {

    fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
    stream_set_timeout($fp, 2);
    $res = fread($fp, 2000);

    $info = stream_get_meta_data($fp);
    fclose($fp);

    if ($info['timed_out']) {
        echo 'Connection timed out!';
    } else {
        echo $res;
    }

}
?>

Anmerkungen

Hinweis:

This function doesn't work with advanced operations like stream_socket_recvfrom(), use stream_select() with timeout parameter instead.

This function was previously called as set_socket_timeout() and later socket_set_timeout() but this usage is deprecated.

Siehe auch

  • fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
  • fopen() - Öffnet eine Datei oder URL


Sets write file buffering on the given stream

  • « stream_set_timeout
  • stream_socket_accept »
  • PHP Manual
  • Stream Funktionen
  • Sets write file buffering on the given stream

stream_set_write_buffer

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_set_write_buffer — Sets write file buffering on the given stream

Beschreibung

stream_set_write_buffer ( resource $stream , int $buffer ) : int

Sets the buffering for write operations on the given stream to buffer bytes.

Parameter-Liste

stream

The file pointer.

buffer

The number of bytes to buffer. If buffer is 0 then write operations are unbuffered. This ensures that all writes with fwrite() are completed before other processes are allowed to write to that output stream.

Rückgabewerte

Returns 0 on success, or another value if the request cannot be honored.

Beispiele

Beispiel #1 stream_set_write_buffer() example

The following example demonstrates how to use stream_set_write_buffer() to create an unbuffered stream.

<?php
$fp = fopen($file, "w");
if ($fp) {
  if (stream_set_write_buffer($fp, 0) !== 0) {
      // changing the buffering failed
  }
  fwrite($fp, $output);
  fclose($fp);
}
?>

Siehe auch

  • fopen() - Öffnet eine Datei oder URL
  • fwrite() - Binär-sicheres Dateischreiben


Accept a connection on a socket created by stream_socket_server

  • « stream_set_write_buffer
  • stream_socket_client »
  • PHP Manual
  • Stream Funktionen
  • Accept a connection on a socket created by stream_socket_server

stream_socket_accept

(PHP 5, PHP 7, PHP 8)

stream_socket_accept — Accept a connection on a socket created by stream_socket_server()

Beschreibung

stream_socket_accept ( resource $server_socket , float $timeout = ini_get("default_socket_timeout") , string &$peername = ? ) : resource|false

Accept a connection on a socket previously created by stream_socket_server().

Parameter-Liste

server_socket

The server socket to accept a connection from.

timeout

Override the default socket accept timeout. Time should be given in seconds.

peername

Will be set to the name (address) of the client which connected, if included and available from the selected transport.

Hinweis:

Can also be determined later using stream_socket_get_name().

Rückgabewerte

Returns a stream to the accepted socket connectionIm Fehlerfall wird false zurückgegeben..

Anmerkungen

Warnung

This function should not be used with UDP server sockets. Instead, use stream_socket_recvfrom() and stream_socket_sendto().

Siehe auch

  • stream_socket_server() - Create an Internet or Unix domain server socket
  • stream_socket_get_name() - Retrieve the name of the local or remote sockets
  • stream_set_blocking() - Set blocking/non-blocking mode on a stream
  • stream_set_timeout() - Set timeout period on a stream
  • fgets() - Liest eine Zeile von der Position des Dateizeigers
  • fgetss() - Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
  • fwrite() - Binär-sicheres Dateischreiben
  • fclose() - Schließt einen offenen Dateizeiger
  • feof() - Prüft, ob ein Dateizeiger am Ende der Datei steht
  • cURL Funktionen


Open Internet or Unix domain socket connection

  • « stream_socket_accept
  • stream_socket_enable_crypto »
  • PHP Manual
  • Stream Funktionen
  • Open Internet or Unix domain socket connection

stream_socket_client

(PHP 5, PHP 7, PHP 8)

stream_socket_client — Open Internet or Unix domain socket connection

Beschreibung

stream_socket_client ( string $remote_socket , int &$errno = ? , string &$errstr = ? , float $timeout = ini_get("default_socket_timeout") , int $flags = STREAM_CLIENT_CONNECT , resource $context = ? ) : resource

Initiates a stream or datagram connection to the destination specified by remote_socket. The type of socket created is determined by the transport specified using standard URL formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem.

Hinweis:

The stream will by default be opened in blocking mode. You can switch it to non-blocking mode by using stream_set_blocking().

Parameter-Liste

remote_socket

Address to the socket to connect to.

errno

Will be set to the system level error number if connection fails.

errstr

Will be set to the system level error message if the connection fails.

timeout

Number of seconds until the connect() system call should timeout.

Hinweis: This parameter only applies when not making asynchronous connection attempts.

Hinweis:

To set a timeout for reading/writing data over the socket, use the stream_set_timeout(), as the timeout only applies while making connecting the socket.

flags

Bitmask field which may be set to any combination of connection flags. Currently the select of connection flags is limited to STREAM_CLIENT_CONNECT (default), STREAM_CLIENT_ASYNC_CONNECT and STREAM_CLIENT_PERSISTENT.

context

A valid context resource created with stream_context_create().

Rückgabewerte

On success a stream resource is returned which may
be used together with the other file functions (such as
fgets(), fgetss(),
fwrite(), fclose(), and
feof()), false on failure.

Fehler/Exceptions

On failure the errno and errstr arguments will be populated with the actual system level error that occurred in the system-level connect() call. If the value returned in errno is 0 and the function returned false, it is an indication that the error occurred before the connect() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Beispiele

Beispiel #1 stream_socket_client() example

<?php
$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
    while (!feof($fp)) {
        echo fgets($fp, 1024);
    }
    fclose($fp);
}
?>

Beispiel #2 Using UDP connection

Retrieving the day and time from the UDP service "daytime" (port 13) on localhost.

<?php
$fp = stream_socket_client("udp://127.0.0.1:13", $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Anmerkungen

Warnung

UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data.

Hinweis: Wenn Sie eine numerische IPv6-Adresse angeben, z.B. fe80::1, müssen Sie die IP in eckige Klammern schreiben, z.B. tcp://[fe80::1]:80.

Hinweis:

Depending on the environment, the Unix domain or the optional connect timeout may not be available. A list of available transports can be retrieved using stream_get_transports(). See Liste der unterstützten Socket-Transporter for a list of built in transports.

Siehe auch

  • stream_socket_server() - Create an Internet or Unix domain server socket
  • stream_set_blocking() - Set blocking/non-blocking mode on a stream
  • stream_set_timeout() - Set timeout period on a stream
  • stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
  • fgets() - Liest eine Zeile von der Position des Dateizeigers
  • fgetss() - Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
  • fwrite() - Binär-sicheres Dateischreiben
  • fclose() - Schließt einen offenen Dateizeiger
  • feof() - Prüft, ob ein Dateizeiger am Ende der Datei steht
  • cURL Funktionen


Turns encryption on/off on an already connected socket

  • « stream_socket_client
  • stream_socket_get_name »
  • PHP Manual
  • Stream Funktionen
  • Turns encryption on/off on an already connected socket

stream_socket_enable_crypto

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_socket_enable_crypto — Turns encryption on/off on an already connected socket

Beschreibung

stream_socket_enable_crypto ( resource $stream , bool $enable , int $crypto_type = ? , resource $session_stream = ? ) : mixed

Enable or disable encryption on the stream.

Once the crypto settings are established, cryptography can be turned on and off dynamically by passing true or false in the enable parameter.

Parameter-Liste

stream

The stream resource.

enable

Enable/disable cryptography on the stream.

crypto_type

Setup encryption on the stream. Valid methods are

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_TLS_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv2_SERVER
  • STREAM_CRYPTO_METHOD_SSLv3_SERVER
  • STREAM_CRYPTO_METHOD_SSLv23_SERVER
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLS_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

If omitted, the crypto_method context option on the stream's SSL context will be used instead.

session_stream

Seed the stream with settings from session_stream.

Rückgabewerte

Returns true on success, false if negotiation has failed or 0 if there isn't enough data and you should try again (only for non-blocking sockets).

Changelog

Version | Beschreibung
5.6.0 | Introduce STREAM_CRYPTO_METHOD_ANY_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, STREAM_CRYPTO_METHOD_ANY_SERVER, STREAM_CRYPTO_METHOD_TLSv1_0_SERVER, STREAM_CRYPTO_METHOD_TLSv1_1_SERVER, STREAM_CRYPTO_METHOD_TLSv1_2_SERVER.
5.6.0 | The crypto_type is now optional.

Beispiele

Beispiel #1 stream_socket_enable_crypto() example

<?php
$fp = stream_socket_client("tcp://myproto.example.com:31337", $errno, $errstr, 30);
if (!$fp) {
    die("Unable to connect: $errstr ($errno)");
}

/* Turn on encryption for login phase */
stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp, "USER god\r\n");
fwrite($fp, "PASS secret\r\n");

/* Turn off encryption for the rest */
stream_socket_enable_crypto($fp, false);

while ($motd = fgets($fp)) {
    echo $motd;
}

fclose($fp);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Siehe auch

  • OpenSSL-Funktionen
    •

  • Liste der unterstützten Socket-Transporter
    •


Retrieve the name of the local or remote sockets

  • « stream_socket_enable_crypto
  • stream_socket_pair »
  • PHP Manual
  • Stream Funktionen
  • Retrieve the name of the local or remote sockets

stream_socket_get_name

(PHP 5, PHP 7, PHP 8)

stream_socket_get_name — Retrieve the name of the local or remote sockets

Beschreibung

stream_socket_get_name ( resource $handle , bool $want_peer ) : string

Returns the local or remote name of a given socket connection.

Parameter-Liste

handle

The socket to get the name of.

want_peer

If set to true the remote socket name will be returned, if set to false the local socket name will be returned.

Rückgabewerte

The name of the socket.

Siehe auch

  • stream_socket_accept() - Accept a connection on a socket created by stream_socket_server


Creates a pair of connected, indistinguishable socket streams

  • « stream_socket_get_name
  • stream_socket_recvfrom »
  • PHP Manual
  • Stream Funktionen
  • Creates a pair of connected, indistinguishable socket streams

stream_socket_pair

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_socket_pair — Creates a pair of connected, indistinguishable socket streams

Beschreibung

stream_socket_pair ( int $domain , int $type , int $protocol ) : array|false

stream_socket_pair() creates a pair of connected, indistinguishable socket streams. This function is commonly used in IPC (Inter-Process Communication).

Parameter-Liste

domain

The protocol family to be used: STREAM_PF_INET, STREAM_PF_INET6 or STREAM_PF_UNIX

type

The type of communication to be used: STREAM_SOCK_DGRAM, STREAM_SOCK_RAW, STREAM_SOCK_RDM, STREAM_SOCK_SEQPACKET or STREAM_SOCK_STREAM

protocol

The protocol to be used: STREAM_IPPROTO_ICMP, STREAM_IPPROTO_IP, STREAM_IPPROTO_RAW, STREAM_IPPROTO_TCP or STREAM_IPPROTO_UDP

Hinweis: Please consult the Streams constant list for further details on each constant.

Rückgabewerte

Returns an array with the two socket resources on success, or false on failure.

Beispiele

Beispiel #1 A stream_socket_pair() example

This example shows the basic usage of stream_socket_pair() in Inter-Process Communication.

<?php

$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
$pid     = pcntl_fork();

if ($pid == -1) {
     die('could not fork');

} else if ($pid) {
     /* parent */
    fclose($sockets[0]);

    fwrite($sockets[1], "child PID: $pid\n");
    echo fgets($sockets[1]);

    fclose($sockets[1]);

} else {
    /* child */
    fclose($sockets[1]);

    fwrite($sockets[0], "message from child\n");
    echo fgets($sockets[0]);

    fclose($sockets[0]);
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

child PID: 1378
message from child


Receives data from a socket, connected or not

  • « stream_socket_pair
  • stream_socket_sendto »
  • PHP Manual
  • Stream Funktionen
  • Receives data from a socket, connected or not

stream_socket_recvfrom

(PHP 5, PHP 7, PHP 8)

stream_socket_recvfrom — Receives data from a socket, connected or not

Beschreibung

stream_socket_recvfrom ( resource $socket , int $length , int $flags = 0 , string &$address = ? ) : string

stream_socket_recvfrom() accepts data from a remote socket up to length bytes.

Parameter-Liste

socket

The remote socket.

length

The number of bytes to receive from the socket.

flags

The value of flags can be any combination of the following:

Possible values for flags
STREAM_OOB | Process OOB (out-of-band) data.
STREAM_PEEK | Retrieve data from the socket, but do not consume the buffer. Subsequent calls to fread() or stream_socket_recvfrom() will see the same data.

address

If address is provided it will be populated with the address of the remote socket.

Rückgabewerte

Returns the read data, as a string

Beispiele

Beispiel #1 stream_socket_recvfrom() example

<?php
/* Open a server socket to port 1234 on localhost */
$server = stream_socket_server('tcp://127.0.0.1:1234');

/* Accept a connection */
$socket = stream_socket_accept($server);

/* Grab a packet (1500 is a typical MTU size) of OOB data */
echo "Received Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";

/* Take a peek at the normal in-band data, but don't consume it. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";

/* Get the exact same packet again, but remove it from the buffer this time. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n";

/* Close it up */
fclose($socket);
fclose($server);
?>

Anmerkungen

Hinweis:

If a message received is longer than the length parameter, excess bytes may be discarded depending on the type of socket the message is received from (such as UDP).

Hinweis:

Calls to stream_socket_recvfrom() on socket-based streams, after calls to buffer-based stream functions (like fread() or stream_get_line()) read data directly from the socket and bypass the stream buffer.

Siehe auch

  • stream_socket_sendto() - Sends a message to a socket, whether it is connected or not
  • stream_socket_client() - Open Internet or Unix domain socket connection
  • stream_socket_server() - Create an Internet or Unix domain server socket


Sends a message to a socket, whether it is connected or not

  • « stream_socket_recvfrom
  • stream_socket_server »
  • PHP Manual
  • Stream Funktionen
  • Sends a message to a socket, whether it is connected or not

stream_socket_sendto

(PHP 5, PHP 7, PHP 8)

stream_socket_sendto — Sends a message to a socket, whether it is connected or not

Beschreibung

stream_socket_sendto ( resource $socket , string $data , int $flags = 0 , string $address = ? ) : int

Sends the specified data through the socket.

Parameter-Liste

socket

The socket to send data to.

data

The data to be sent.

flags

The value of flags can be any combination of the following:

possible values for flags
STREAM_OOB Process OOB (out-of-band) data.

address

The address specified when the socket stream was created will be used unless an alternate address is specified in address.

If specified, it must be in dotted quad (or [ipv6]) format.

Rückgabewerte

Returns a result code, as an integer.

Beispiele

Beispiel #1 stream_socket_sendto() Example

<?php
/* Open a socket to port 1234 on localhost */
$socket = stream_socket_client('tcp://127.0.0.1:1234');

/* Send ordinary data via ordinary channels. */
fwrite($socket, "Normal data transmit.");

/* Send more data out of band. */
stream_socket_sendto($socket, "Out of Band data.", STREAM_OOB);

/* Close it up */
fclose($socket);
?>

Siehe auch

  • stream_socket_recvfrom() - Receives data from a socket, connected or not
  • stream_socket_client() - Open Internet or Unix domain socket connection
  • stream_socket_server() - Create an Internet or Unix domain server socket


Create an Internet or Unix domain server socket

  • « stream_socket_sendto
  • stream_socket_shutdown »
  • PHP Manual
  • Stream Funktionen
  • Create an Internet or Unix domain server socket

stream_socket_server

(PHP 5, PHP 7, PHP 8)

stream_socket_server — Create an Internet or Unix domain server socket

Beschreibung

stream_socket_server ( string $local_socket , int &$errno = ? , string &$errstr = ? , int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN , resource $context = ? ) : resource

Creates a stream or datagram socket on the specified local_socket.

This function only creates a socket, to begin accepting connections use stream_socket_accept().

Parameter-Liste

local_socket

The type of socket created is determined by the transport specified using standard URL formatting: transport://target.

For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem.

Depending on the environment, Unix domain sockets may not be available. A list of available transports can be retrieved using stream_get_transports(). See Liste der unterstützten Socket-Transporter for a list of bulitin transports.

errno

If the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level socket(), bind(), and listen() calls. If the value returned in errno is 0 and the function returned false, it is an indication that the error occurred before the bind() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

errstr

See errno description.

flags

A bitmask field which may be set to any combination of socket creation flags.

Hinweis:

For UDP sockets, you must use STREAM_SERVER_BIND as the flags parameter.

context

Rückgabewerte

Returns the created stream, or false on error.

Beispiele

Beispiel #1 Using TCP server sockets

<?php
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
    fclose($conn);
  }
  fclose($socket);
}
?>

The example below shows how to act as a time server which can respond to time queries as shown in an example on stream_socket_client().

Hinweis: Most systems require root access to create a server socket on a port below 1024.

Beispiel #2 Using UDP server sockets

<?php
$socket = stream_socket_server("udp://127.0.0.1:1113", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
    die("$errstr ($errno)");
}

do {
    $pkt = stream_socket_recvfrom($socket, 1, 0, $peer);
    echo "$peer\n";
    stream_socket_sendto($socket, date("D M j H:i:s Y\r\n"), 0, $peer);
} while ($pkt !== false);

?>

Anmerkungen

Hinweis: Wenn Sie eine numerische IPv6-Adresse angeben, z.B. fe80::1, müssen Sie die IP in eckige Klammern schreiben, z.B. tcp://[fe80::1]:80.

Siehe auch

  • stream_socket_client() - Open Internet or Unix domain socket connection
  • stream_set_blocking() - Set blocking/non-blocking mode on a stream
  • stream_set_timeout() - Set timeout period on a stream
  • fgets() - Liest eine Zeile von der Position des Dateizeigers
  • fgetss() - Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
  • fwrite() - Binär-sicheres Dateischreiben
  • fclose() - Schließt einen offenen Dateizeiger
  • feof() - Prüft, ob ein Dateizeiger am Ende der Datei steht
  • Curl extension


Shutdown a full-duplex connection

  • « stream_socket_server
  • stream_supports_lock »
  • PHP Manual
  • Stream Funktionen
  • Shutdown a full-duplex connection

stream_socket_shutdown

(PHP 5 >= 5.2.1, PHP 7, PHP 8)

stream_socket_shutdown — Shutdown a full-duplex connection

Beschreibung

stream_socket_shutdown ( resource $stream , int $mode ) : bool

Shutdowns (partially or not) a full-duplex connection.

Hinweis:

The associated buffer, or buffers, may or may not be emptied.

Parameter-Liste

stream

An open stream (opened with stream_socket_client(), for example)

mode

One of the following constants: STREAM_SHUT_RD (disable further receptions), STREAM_SHUT_WR (disable further transmissions) or STREAM_SHUT_RDWR (disable further receptions and transmissions).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 A stream_socket_shutdown() example

<?php

$server = stream_socket_server('tcp://127.0.0.1:1337');
$client = stream_socket_client('tcp://127.0.0.1:1337');

var_dump(fputs($client, "hello"));

stream_socket_shutdown($client, STREAM_SHUT_WR);
var_dump(fputs($client, "hello")); // doesn't work now

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(5)

Notice: fputs(): send of 5 bytes failed with errno=32 Broken pipe in test.php on line 9
int(0)

Siehe auch

  • fclose() - Schließt einen offenen Dateizeiger


Tells whether the stream supports locking

  • « stream_socket_shutdown
  • stream_wrapper_register »
  • PHP Manual
  • Stream Funktionen
  • Tells whether the stream supports locking

stream_supports_lock

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

stream_supports_lock — Tells whether the stream supports locking

Beschreibung

stream_supports_lock ( resource $stream ) : bool

Tells whether the stream supports locking through flock().

Parameter-Liste

stream

The stream to check.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • flock() - Portables Datei-Sperr-Verfahren (advisory locking)


Register a URL wrapper implemented as a PHP class

  • « stream_supports_lock
  • stream_wrapper_restore »
  • PHP Manual
  • Stream Funktionen
  • Register a URL wrapper implemented as a PHP class

stream_wrapper_register

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

stream_wrapper_register — Register a URL wrapper implemented as a PHP class

Beschreibung

stream_wrapper_register ( string $protocol , string $class , int $flags = 0 ) : bool

Allows you to implement your own protocol handlers and streams for use with all the other filesystem functions (such as fopen(), fread() etc.).

Parameter-Liste

protocol

The wrapper name to be registered.

class

The classname which implements the protocol.

flags

Should be set to STREAM_IS_URL if protocol is a URL protocol. Default is 0, local stream.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

stream_wrapper_register() will return false if the protocol already has a handler.

Beispiele

Beispiel #1 How to register a stream wrapper

<?php
$existed = in_array("var", stream_get_wrappers());
if ($existed) {
    stream_wrapper_unregister("var");
}
stream_wrapper_register("var", "VariableStream");
$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");

rewind($fp);
while (!feof($fp)) {
    echo fgets($fp);
}
fclose($fp);
var_dump($myvar);

if ($existed) {
    stream_wrapper_restore("var");
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

line1
line2
line3
string(18) "line1
line2
line3
"

Siehe auch

  • The streamWrapper prototype class
  • Example class registered as stream wrapper
  • stream_wrapper_unregister() - Unregister a URL wrapper
  • stream_wrapper_restore() - Restores a previously unregistered built-in wrapper
  • stream_get_wrappers() - Retrieve list of registered streams


Restores a previously unregistered built-in wrapper

  • « stream_wrapper_register
  • stream_wrapper_unregister »
  • PHP Manual
  • Stream Funktionen
  • Restores a previously unregistered built-in wrapper

stream_wrapper_restore

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_wrapper_restore — Restores a previously unregistered built-in wrapper

Beschreibung

stream_wrapper_restore ( string $protocol ) : bool

Restores a built-in wrapper previously unregistered with stream_wrapper_unregister().

Parameter-Liste

protocol

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Unregister a URL wrapper

  • « stream_wrapper_restore
  • Swoole »
  • PHP Manual
  • Stream Funktionen
  • Unregister a URL wrapper

stream_wrapper_unregister

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_wrapper_unregister — Unregister a URL wrapper

Beschreibung

stream_wrapper_unregister ( string $protocol ) : bool

Allows you to disable an already defined stream wrapper. Once the wrapper has been disabled you may override it with a user-defined wrapper using stream_wrapper_register() or reenable it later on with stream_wrapper_restore().

Parameter-Liste

protocol

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Swoole

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Swoole Funktionen
    • swoole_async_dns_lookup — Async and non-blocking hostname to IP lookup
    • swoole_async_read — Read file stream asynchronously
    • swoole_async_readfile — Read a file asynchronously
    • swoole_async_set — Update the async I/O options
    • swoole_async_write — Write data to a file stream asynchronously
    • swoole_async_writefile — Write data to a file asynchronously
    • swoole_client_select — Get the file description which are ready to read/write or error
    • swoole_cpu_num — Get the number of CPU
    • swoole_errno — Get the error code of the latest system call
    • swoole_event_add — Add new callback functions of a socket into the EventLoop
    • swoole_event_defer — Add callback function to the next event loop
    • swoole_event_del — Remove all event callback functions of a socket
    • swoole_event_exit — Exit the eventloop, only available at the client side
    • swoole_event_set — Update the event callback functions of a socket
    • swoole_event_wait — Start the event loop
    • swoole_event_write — Write data to a socket
    • swoole_get_local_ip — Get the IPv4 IP addresses of each NIC on the machine
    • swoole_last_error — Get the lastest error message
    • swoole_load_module — Load a swoole extension
    • swoole_select — Select the file descriptions which are ready to read/write or error in the eventloop
    • swoole_set_process_name — Set the process name
    • swoole_strerror — Convert the Errno into error messages
    • swoole_timer_after — Trigger a one time callback function in the future
    • swoole_timer_exists — Check if a timer callback function is existed
    • swoole_timer_tick — Trigger a timer tick callback function by time interval
    • swoole_version — Get the version of Swoole
  • Swoole\Async — The Swoole\Async class
    • Swoole\Async::dnsLookup — Async and non-blocking hostname to IP lookup.
    • Swoole\Async::read — Read file stream asynchronously.
    • Swoole\Async::readFile — Read a file asynchronously.
    • Swoole\Async::set — Update the async I/O options.
    • Swoole\Async::write — Write data to a file stream asynchronously.
    • Swoole\Async::writeFile — Description
  • Swoole\Atomic — The Swoole\Atomic class
    • Swoole\Atomic::add — Add a number to the value to the atomic object.
    • Swoole\Atomic::cmpset — Compare and set the value of the atomic object.
    • Swoole\Atomic::__construct — Construct a swoole atomic object.
    • Swoole\Atomic::get — Get the current value of the atomic object.
    • Swoole\Atomic::set — Set a new value to the atomic object.
    • Swoole\Atomic::sub — Subtract a number to the value of the atomic object.
  • Swoole\Buffer — The Swoole\Buffer class
    • Swoole\Buffer::append — Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.
    • Swoole\Buffer::clear — Reset the memory buffer.
    • Swoole\Buffer::__construct — Fixed size memory blocks allocation.
    • Swoole\Buffer::__destruct — Destruct the Swoole memory buffer.
    • Swoole\Buffer::expand — Expand the size of memory buffer.
    • Swoole\Buffer::read — Read data from the memory buffer based on offset and length.
    • Swoole\Buffer::recycle — Release the memory to OS which is not used by the memory buffer.
    • Swoole\Buffer::substr — Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.
    • Swoole\Buffer::__toString — Get the string value of the memory buffer.
    • Swoole\Buffer::write — Write data to the memory buffer. The memory allocated for the buffer will not be changed.
  • Swoole\Channel — The Swoole\Channel class
    • Swoole\Channel::__construct — Construct a Swoole Channel
    • Swoole\Channel::__destruct — Destruct a Swoole channel.
    • Swoole\Channel::pop — Read and pop data from swoole channel.
    • Swoole\Channel::push — Write and push data into Swoole channel.
    • Swoole\Channel::stats — Get stats of swoole channel.
  • Swoole\Client — The Swoole\Client class
    • Swoole\Client::close — Close the connection established.
    • Swoole\Client::connect — Connect to the remote TCP or UDP port.
    • Swoole\Client::__construct — Create Swoole sync or async TCP/UDP client, with or without SSL.
    • Swoole\Client::__destruct — Destruct the Swoole client.
    • Swoole\Client::getpeername — Get the remote socket name of the connection.
    • Swoole\Client::getsockname — Get the local socket name of the connection.
    • Swoole\Client::isConnected — Check if the connection is established.
    • Swoole\Client::on — Add callback functions triggered by events.
    • Swoole\Client::pause — Pause receiving data.
    • Swoole\Client::pipe — Redirect the data to another file descriptor.
    • Swoole\Client::recv — Receive data from the remote socket.
    • Swoole\Client::resume — Resume receiving data.
    • Swoole\Client::send — Send data to the remote TCP socket.
    • Swoole\Client::sendfile — Send file to the remote TCP socket.
    • Swoole\Client::sendto — Send data to the remote UDP address.
    • Swoole\Client::set — Set the Swoole client parameters before the connection is established.
    • Swoole\Client::sleep — Remove the TCP client from system event loop.
    • Swoole\Client::wakeup — Add the TCP client back into the system event loop.
  • Swoole\Connection\Iterator — The Swoole\Connection\Iterator class
    • Swoole\Connection\Iterator::count — Count connections.
    • Swoole\Connection\Iterator::current — Return current connection entry.
    • Swoole\Connection\Iterator::key — Return key of the current connection.
    • Swoole\Connection\Iterator::next — Move to the next connection.
    • Swoole\Connection\Iterator::offsetExists — Check if offet exists.
    • Swoole\Connection\Iterator::offsetGet — Offset to retrieve.
    • Swoole\Connection\Iterator::offsetSet — Assign a Connection to the specified offset.
    • Swoole\Connection\Iterator::offsetUnset — Unset an offset.
    • Swoole\Connection\Iterator::rewind — Rewinds iterator
    • Swoole\Connection\Iterator::valid — Check if current position is valid.
  • Swoole\Coroutine — The Swoole\Coroutine class
    • Swoole\Coroutine::call_user_func_array — Call a callback with an array of parameters
    • Swoole\Coroutine::call_user_func — Call a callback given by the first parameter
    • Swoole\Coroutine::cli_wait — Description
    • Swoole\Coroutine::create — Description
    • Swoole\Coroutine\Client::close — Description
    • Swoole\Coroutine\Client::connect — Description
    • Swoole\Coroutine\Client::__construct — Description
    • Swoole\Coroutine\Client::__destruct — Description
    • Swoole\Coroutine\Client::getpeername — Description
    • Swoole\Coroutine\Client::getsockname — Description
    • Swoole\Coroutine\Client::isConnected — Description
    • Swoole\Coroutine\Client::recv — Description
    • Swoole\Coroutine\Client::send — Description
    • Swoole\Coroutine\Client::sendfile — Description
    • Swoole\Coroutine\Client::sendto — Description
    • Swoole\Coroutine\Client::set — Description
    • Swoole\Coroutine\Http\Client::addFile — Description
    • Swoole\Coroutine\Http\Client::close — Description
    • Swoole\Coroutine\Http\Client::__construct — Description
    • Swoole\Coroutine\Http\Client::__destruct — Description
    • Swoole\Coroutine\Http\Client::execute — Description
    • Swoole\Coroutine\Http\Client::get — Description
    • Swoole\Coroutine\Http\Client::getDefer — Description
    • Swoole\Coroutine\Http\Client::isConnected — Description
    • Swoole\Coroutine\Http\Client::post — Description
    • Swoole\Coroutine\Http\Client::recv — Description
    • Swoole\Coroutine\Http\Client::set — Description
    • Swoole\Coroutine\Http\Client::setCookies — Description
    • Swoole\Coroutine\Http\Client::setData — Description
    • Swoole\Coroutine\Http\Client::setDefer — Description
    • Swoole\Coroutine\Http\Client::setHeaders — Description
    • Swoole\Coroutine\Http\Client::setMethod — Description
    • Swoole\Coroutine\MySQL::close — Description
    • Swoole\Coroutine\MySQL::connect — Description
    • Swoole\Coroutine\MySQL::__construct — Description
    • Swoole\Coroutine\MySQL::__destruct — Description
    • Swoole\Coroutine\MySQL::getDefer — Description
    • Swoole\Coroutine\MySQL::query — Description
    • Swoole\Coroutine\MySQL::recv — Description
    • Swoole\Coroutine\MySQL::setDefer — Description
    • Swoole\Coroutine::getuid — Description
    • Swoole\Coroutine::resume — Description
    • Swoole\Coroutine::suspend — Description
  • Swoole\Event — The Swoole\Event class
    • Swoole\Event::add — Add new callback functions of a socket into the EventLoop.
    • Swoole\Event::defer — Add a callback function to the next event loop.
    • Swoole\Event::del — Remove all event callback functions of a socket.
    • Swoole\Event::exit — Exit the eventloop, only available at client side.
    • Swoole\Event::set — Update the event callback functions of a socket.
    • Swoole\Event::wait — Description
    • Swoole\Event::write — Write data to the socket.
  • Swoole\Exception — The Swoole\Exception class
  • Swoole\Http\Client — The Swoole\Http\Client class
    • Swoole\Http\Client::addFile — Add a file to the post form.
    • Swoole\Http\Client::close — Close the http connection.
    • Swoole\Http\Client::__construct — Construct the async HTTP client.
    • Swoole\Http\Client::__destruct — Destruct the HTTP client.
    • Swoole\Http\Client::download — Download a file from the remote server.
    • Swoole\Http\Client::execute — Send the HTTP request after setting the parameters.
    • Swoole\Http\Client::get — Send GET http request to the remote server.
    • Swoole\Http\Client::isConnected — Check if the HTTP connection is connected.
    • Swoole\Http\Client::on — Register callback function by event name.
    • Swoole\Http\Client::post — Send POST http request to the remote server.
    • Swoole\Http\Client::push — Push data to websocket client.
    • Swoole\Http\Client::set — Update the HTTP client paramters.
    • Swoole\Http\Client::setCookies — Set the http request cookies.
    • Swoole\Http\Client::setData — Set the HTTP request body data.
    • Swoole\Http\Client::setHeaders — Set the HTTP request headers.
    • Swoole\Http\Client::setMethod — Set the HTTP request method.
    • Swoole\Http\Client::upgrade — Upgrade to websocket protocol.
  • Swoole\Http\Request — The Swoole\Http\Request class
    • Swoole\Http\Request::__destruct — Destruct the HTTP request.
    • Swoole\Http\Request::rawcontent — Get the raw HTTP POST body.
  • Swoole\Http\Response — The Swoole\Http\Response class
    • Swoole\Http\Response::cookie — Set the cookies of the HTTP response.
    • Swoole\Http\Response::__destruct — Destruct the HTTP response.
    • Swoole\Http\Response::end — Send data for the HTTP request and finish the response.
    • Swoole\Http\Response::gzip — Enable the gzip of response content.
    • Swoole\Http\Response::header — Set the HTTP response headers.
    • Swoole\Http\Response::initHeader — Init the HTTP response header.
    • Swoole\Http\Response::rawcookie — Set the raw cookies to the HTTP response.
    • Swoole\Http\Response::sendfile — Send file through the HTTP response.
    • Swoole\Http\Response::status — Set the status code of the HTTP response.
    • Swoole\Http\Response::write — Append HTTP body content to the HTTP response.
  • Swoole\Http\Server — The Swoole\Http\Server class
    • Swoole\Http\Server::on — Bind callback function to HTTP server by event name.
    • Swoole\Http\Server::start — Start the swoole http server.
  • Swoole\Lock — The Swoole\Lock class
    • Swoole\Lock::__construct — Construct a memory lock.
    • Swoole\Lock::__destruct — Destory a Swoole memory lock.
    • Swoole\Lock::lock_read — Lock a read-write lock for reading.
    • Swoole\Lock::lock — Try to acquire the lock. It will block if the lock is not available.
    • Swoole\Lock::trylock_read — Try to lock a read-write lock for reading and return straight away even the lock is not available.
    • Swoole\Lock::trylock — Try to acquire the lock and return straight away even the lock is not available.
    • Swoole\Lock::unlock — Release the lock.
  • Swoole\Mmap — The Swoole\Mmap class
    • Swoole\Mmap::open — Map a file into memory and return the stream resource which can be used by PHP stream operations.
  • Swoole\MySQL — The Swoole\MySQL class
    • Swoole\MySQL::close — Close the async MySQL connection.
    • Swoole\MySQL::connect — Connect to the remote MySQL server.
    • Swoole\MySQL::__construct — Construct an async MySQL client.
    • Swoole\MySQL::__destruct — Destory the async MySQL client.
    • Swoole\MySQL::getBuffer — Description
    • Swoole\MySQL::on — Register callback function based on event name.
    • Swoole\MySQL::query — Run the SQL query.
  • Swoole\MySQL\Exception — The Swoole\MySQL\Exception class
  • Swoole\Process — The Swoole\Process class
    • Swoole\Process::alarm — High precision timer which triggers signal with fixed interval.
    • Swoole\Process::close — Close the pipe to the child process.
    • Swoole\Process::__construct — Construct a process.
    • Swoole\Process::daemon — Change the process to be a daemon process.
    • Swoole\Process::__destruct — Destory the process.
    • Swoole\Process::exec — Execute system commands.
    • Swoole\Process::exit — Stop the child processes.
    • Swoole\Process::freeQueue — Destroy the message queue created by swoole_process::useQueue.
    • Swoole\Process::kill — Send signal to the child process.
    • Swoole\Process::name — Set name of the process.
    • Swoole\Process::pop — Read and pop data from the message queue.
    • Swoole\Process::push — Write and push data into the message queue.
    • Swoole\Process::read — Read data sending to the process.
    • Swoole\Process::signal — Send signal to the child processes.
    • Swoole\Process::start — Start the process.
    • Swoole\Process::statQueue — Get the stats of the message queue used as the communication method between processes.
    • Swoole\Process::useQueue — Create a message queue as the communication method between the parent process and child processes.
    • Swoole\Process::wait — Wait for the events of child processes.
    • Swoole\Process::write — Write data into the pipe and communicate with the parent process or child processes.
  • Swoole\Redis\Server — The Swoole\Redis\Server class
    • Swoole\Redis\Server::format — Description
    • Swoole\Redis\Server::setHandler — Description
    • Swoole\Redis\Server::start — Description
  • Swoole\Serialize — The Swoole\Serialize class
    • Swoole\Serialize::pack — Serialize the data.
    • Swoole\Serialize::unpack — Unserialize the data.
  • Swoole\Server — The Swoole\Server class
    • Swoole\Server::addlistener — Add a new listener to the server.
    • Swoole\Server::addProcess — Add a user defined swoole_process to the server.
    • Swoole\Server::after — Trigger a callback function after a period of time.
    • Swoole\Server::bind — Bind the connection to a user defined user ID.
    • Swoole\Server::clearTimer — Stop and destory a timer.
    • Swoole\Server::close — Close a connection to the client.
    • Swoole\Server::confirm — Check status of the connection.
    • Swoole\Server::connection_info — Get the connection info by file description.
    • Swoole\Server::connection_list — Get all of the established connections.
    • Swoole\Server::__construct — Construct a Swoole server.
    • Swoole\Server::defer — Delay execution of the callback function at the end of current EventLoop.
    • Swoole\Server\Port::__construct — Construct a server port
    • Swoole\Server\Port::__destruct — Destory server port
    • Swoole\Server\Port::on — Register callback functions by event.
    • Swoole\Server\Port::set — Set protocol of the server port.
    • Swoole\Server::exist — Check if the connection is existed.
    • Swoole\Server::finish — Used in task process for sending result to the worker process when the task is finished.
    • Swoole\Server::getClientInfo — Get the connection info by file description.
    • Swoole\Server::getClientList — Get all of the established connections.
    • Swoole\Server::getLastError — Get the error code of the most recent error.
    • Swoole\Server::heartbeat — Check all the connections on the server.
    • Swoole\Server::listen — Listen on the given IP and port, socket type.
    • Swoole\Server::on — Register a callback function by event name.
    • Swoole\Server::pause — Stop receiving data from the connection.
    • Swoole\Server::protect — Set the connection to be protected mode.
    • Swoole\Server::reload — Restart all the worker process.
    • Swoole\Server::resume — Start receving data from the connection.
    • Swoole\Server::send — Send data to the client.
    • Swoole\Server::sendfile — Send file to the connection.
    • Swoole\Server::sendMessage — Send message to worker processes by ID.
    • Swoole\Server::sendto — Send data to the remote UDP address.
    • Swoole\Server::sendwait — Send data to the remote socket in the blocking way.
    • Swoole\Server::set — Set the runtime settings of the swoole server.
    • Swoole\Server::shutdown — Shutdown the master server process, this function can be called in worker processes.
    • Swoole\Server::start — Start the Swoole server.
    • Swoole\Server::stats — Get the stats of the Swoole server.
    • Swoole\Server::stop — Stop the Swoole server.
    • Swoole\Server::task — Send data to the task worker processes.
    • Swoole\Server::taskwait — Send data to the task worker processes in blocking way.
    • Swoole\Server::taskWaitMulti — Execute multiple tasks concurrently.
    • Swoole\Server::tick — Repeats a given function at every given time-interval.
  • Swoole\Table — The Swoole\Table class
    • Swoole\Table::column — Set the data type and size of the columns.
    • Swoole\Table::__construct — Construct a Swoole memory table with fixed size.
    • Swoole\Table::count — Count the rows in the table, or count all the elements in the table if $mode = 1.
    • Swoole\Table::create — Create the swoole memory table.
    • Swoole\Table::current — Get the current row.
    • Swoole\Table::decr — Decrement the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::del — Delete a row in the Swoole table by $row_key.
    • Swoole\Table::destroy — Destroy the Swoole table.
    • Swoole\Table::exist — Check if a row is existed by $row_key.
    • Swoole\Table::get — Get the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::incr — Increment the value by $row_key and $column_key.
    • Swoole\Table::key — Get the key of current row.
    • Swoole\Table::next — Iterator the next row.
    • Swoole\Table::rewind — Rewind the iterator.
    • Swoole\Table::set — Update a row of the table by $row_key.
    • Swoole\Table::valid — Check current if the current row is valid.
  • Swoole\Timer — The Swoole\Timer class
    • Swoole\Timer::after — Trigger a callback function after a period of time.
    • Swoole\Timer::clear — Delete a timer by timer ID.
    • Swoole\Timer::exists — Check if a timer is existed.
    • Swoole\Timer::tick — Repeats a given function at every given time-interval.
  • Swoole\WebSocket\Frame — The Swoole\WebSocket\Frame class
  • Swoole\WebSocket\Server — The Swoole\WebSocket\Server class
    • Swoole\WebSocket\Server::exist — Check if the file descriptor exists.
    • Swoole\WebSocket\Server::on — Register event callback function
    • Swoole\WebSocket\Server::pack — Get a pack of binary data to send in a single frame.
    • Swoole\WebSocket\Server::push — Push data to the remote client.
    • Swoole\WebSocket\Server::unpack — Unpack the binary data received from the client.


Einführung

Swoole is a high-performance networking framework using an event-driven, asynchronous, non-blocking I/O model. It can be used to develop high-performance, scalable, concurrent TCP, UDP, Unix socket, HTTP, Websocket services. To get started, please check the » Swoole Docs.

Hinweis: Diese Erweiterung steht auf Windows-Betriebssystemen nicht zur Verfügung.


Installation

Use --with-swoole[=DIR] when compiling PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/swoole


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Swoole Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
swoole.aio_thread_num | 2 | PHP_INI_ALL |
swoole.display_errors | On | PHP_INI_ALL |
swoole.fast_serialize | Off | PHP_INI_ALL |
swoole.unixsock_buffer_size | 8388608 | PHP_INI_ALL |
swoole.use_namespace | On | PHP_INI_SYSTEM |

Hier eine kurze Erklärung der Konfigurationsoptionen:

swoole.aio_thread_num int

POSIX asynchronous I/O thread number

swoole.display_errors string

This determines whether Swoole errors should be printed to the screen.

swoole.fast_serialize string

Whether to enable Swoole fast_serialize.

swoole.unixsock_buffer_size int

Buffer size of Unix socket.

swoole.use_namespace string

Whether to use PHP namespaces


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SWOOLE_BASE (int)
SWOOLE_THREAD (int)
SWOOLE_PROCESS (int)
SWOOLE_IPC_UNSOCK (int)
SWOOLE_IPC_MSGQUEUE (int)
SWOOLE_IPC_PREEMPTIVE (int)
SWOOLE_SOCK_TCP (int)
SWOOLE_SOCK_TCP6 (int)
SWOOLE_SOCK_UDP (int)
SWOOLE_SOCK_UDP6 (int)
SWOOLE_SOCK_UNIX_DGRAM (int)
SWOOLE_SOCK_UNIX_STREAM (int)
SWOOLE_TCP (int)
SWOOLE_TCP6 (int)
SWOOLE_UDP (int)
SWOOLE_UDP6 (int)
SWOOLE_UNIX_DGRAM (int)
SWOOLE_UNIX_STREAM (int)
SWOOLE_SOCK_SYNC (int)
SWOOLE_SOCK_ASYNC (int)
SWOOLE_SYNC (int)
SWOOLE_ASYNC (int)
SWOOLE_KEEP (int)
SWOOLE_EVENT_READ (int)
SWOOLE_EVENT_WRITE (int)
SWOOLE_VERSION (string)
SWOOLE_AIO_BASE (int)
SWOOLE_AIO_LINUX (int)
SWOOLE_FILELOCK (int)
SWOOLE_MUTEX (int)
SWOOLE_SEM (int)
SWOOLE_RWLOCK (int)
WEBSOCKET_OPCODE_TEXT (int)
WEBSOCKET_OPCODE_BINARY (int)
WEBSOCKET_OPCODE_PING (int)
WEBSOCKET_STATUS_CONNECTION (int)
WEBSOCKET_STATUS_HANDSHAKE (int)
WEBSOCKET_STATUS_FRAME (int)
WEBSOCKET_STATUS_ACTIVE (int)
SWOOLE_FAST_PACK (int)


Swoole Funktionen

Inhaltsverzeichnis

  • swoole_async_dns_lookup — Async and non-blocking hostname to IP lookup
  • swoole_async_read — Read file stream asynchronously
  • swoole_async_readfile — Read a file asynchronously
  • swoole_async_set — Update the async I/O options
  • swoole_async_write — Write data to a file stream asynchronously
  • swoole_async_writefile — Write data to a file asynchronously
  • swoole_client_select — Get the file description which are ready to read/write or error
  • swoole_cpu_num — Get the number of CPU
  • swoole_errno — Get the error code of the latest system call
  • swoole_event_add — Add new callback functions of a socket into the EventLoop
  • swoole_event_defer — Add callback function to the next event loop
  • swoole_event_del — Remove all event callback functions of a socket
  • swoole_event_exit — Exit the eventloop, only available at the client side
  • swoole_event_set — Update the event callback functions of a socket
  • swoole_event_wait — Start the event loop
  • swoole_event_write — Write data to a socket
  • swoole_get_local_ip — Get the IPv4 IP addresses of each NIC on the machine
  • swoole_last_error — Get the lastest error message
  • swoole_load_module — Load a swoole extension
  • swoole_select — Select the file descriptions which are ready to read/write or error in the eventloop
  • swoole_set_process_name — Set the process name
  • swoole_strerror — Convert the Errno into error messages
  • swoole_timer_after — Trigger a one time callback function in the future
  • swoole_timer_exists — Check if a timer callback function is existed
  • swoole_timer_tick — Trigger a timer tick callback function by time interval
  • swoole_version — Get the version of Swoole


Async and non-blocking hostname to IP lookup

  • « Swoole Funktionen
  • swoole_async_read »
  • PHP Manual
  • Swoole Funktionen
  • Async and non-blocking hostname to IP lookup

swoole_async_dns_lookup

(PECL swoole >= 1.9.0)

swoole_async_dns_lookup — Async and non-blocking hostname to IP lookup

Beschreibung

swoole_async_dns_lookup ( string $hostname , callable $callback ) : bool

Parameter-Liste

hostname

The host name.

callback
callback ( string $hostname , string $ip ) : mixed
hostname

The host name.

IP

The IP address.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Read file stream asynchronously

  • « swoole_async_dns_lookup
  • swoole_async_readfile »
  • PHP Manual
  • Swoole Funktionen
  • Read file stream asynchronously

swoole_async_read

(PECL swoole >= 1.9.0)

swoole_async_read — Read file stream asynchronously

Beschreibung

swoole_async_read ( string $filename , callable $callback , int $chunk_size = 65536 , int $offset = 0 ) : bool

Parameter-Liste

filename

The filename of the file being read.

callback
callback ( string $filename , string $content ) : mixed
filename

The name of the file.

content

The content readed from the file stream.

chunk_size

The chunk length.

offset

The offset.

Rückgabewerte

Whether the read is succeed.


Read a file asynchronously

  • « swoole_async_read
  • swoole_async_set »
  • PHP Manual
  • Swoole Funktionen
  • Read a file asynchronously

swoole_async_readfile

(PECL swoole >= 1.9.0)

swoole_async_readfile — Read a file asynchronously

Beschreibung

swoole_async_readfile ( string $filename , callable $callback ) : bool

Parameter-Liste

filename

The filename of the file being read.

callback
callback ( string $filename , string $content ) : mixed
filename

The name of the file.

content

The content readed from the file.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Update the async I/O options

  • « swoole_async_readfile
  • swoole_async_write »
  • PHP Manual
  • Swoole Funktionen
  • Update the async I/O options

swoole_async_set

(PECL swoole >= 1.9.0)

swoole_async_set — Update the async I/O options

Beschreibung

swoole_async_set ( array $settings ) : void

Parameter-Liste

settings


Write data to a file stream asynchronously

  • « swoole_async_set
  • swoole_async_writefile »
  • PHP Manual
  • Swoole Funktionen
  • Write data to a file stream asynchronously

swoole_async_write

(PECL swoole >= 1.9.0)

swoole_async_write — Write data to a file stream asynchronously

Beschreibung

swoole_async_write ( string $filename , string $content , int $offset = ? , callable $callback = ? ) : bool

Parameter-Liste

filename

The filename being written.

content

The content writing to the file.

offset

The offset.

callback

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Write data to a file asynchronously

  • « swoole_async_write
  • swoole_client_select »
  • PHP Manual
  • Swoole Funktionen
  • Write data to a file asynchronously

swoole_async_writefile

(PECL swoole >= 1.9.0)

swoole_async_writefile — Write data to a file asynchronously

Beschreibung

swoole_async_writefile ( string $filename , string $content , callable $callback = ? , int $flags = 0 ) : bool

Parameter-Liste

filename

The filename being written.

content

The content writing to the file.

callback

flags

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Get the file description which are ready to read/write or error

  • « swoole_async_writefile
  • swoole_cpu_num »
  • PHP Manual
  • Swoole Funktionen
  • Get the file description which are ready to read/write or error

swoole_client_select

(PECL swoole >= 1.9.0)

swoole_client_select — Get the file description which are ready to read/write or error

Beschreibung

swoole_client_select ( array &$read_array , array &$write_array , array &$error_array , float $timeout = 0.5 ) : int

Parameter-Liste

read_array

write_array

error_array

timeout

Rückgabewerte


Get the number of CPU

  • « swoole_client_select
  • swoole_errno »
  • PHP Manual
  • Swoole Funktionen
  • Get the number of CPU

swoole_cpu_num

(PECL swoole >= 1.9.0)

swoole_cpu_num — Get the number of CPU

Beschreibung

swoole_cpu_num ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of CPU.


Get the error code of the latest system call

  • « swoole_cpu_num
  • swoole_event_add »
  • PHP Manual
  • Swoole Funktionen
  • Get the error code of the latest system call

swoole_errno

(PECL swoole >= 1.9.0)

swoole_errno — Get the error code of the latest system call

Beschreibung

swoole_errno ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Add new callback functions of a socket into the EventLoop

  • « swoole_errno
  • swoole_event_defer »
  • PHP Manual
  • Swoole Funktionen
  • Add new callback functions of a socket into the EventLoop

swoole_event_add

(PECL swoole >= 1.9.0)

swoole_event_add — Add new callback functions of a socket into the EventLoop

Beschreibung

swoole_event_add ( int $fd , callable $read_callback = ? , callable $write_callback = ? , int $events = 0 ) : int

Parameter-Liste

fd

read_callback

write_callback

events

Rückgabewerte


Add callback function to the next event loop

  • « swoole_event_add
  • swoole_event_del »
  • PHP Manual
  • Swoole Funktionen
  • Add callback function to the next event loop

swoole_event_defer

(PECL swoole >= 1.9.0)

swoole_event_defer — Add callback function to the next event loop

Beschreibung

swoole_event_defer ( callable $callback ) : bool

Parameter-Liste

callback

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Remove all event callback functions of a socket

  • « swoole_event_defer
  • swoole_event_exit »
  • PHP Manual
  • Swoole Funktionen
  • Remove all event callback functions of a socket

swoole_event_del

(PECL swoole >= 1.9.0)

swoole_event_del — Remove all event callback functions of a socket

Beschreibung

swoole_event_del ( int $fd ) : bool

Parameter-Liste

fd

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Exit the eventloop, only available at the client side

  • « swoole_event_del
  • swoole_event_set »
  • PHP Manual
  • Swoole Funktionen
  • Exit the eventloop, only available at the client side

swoole_event_exit

(PECL swoole >= 1.9.0)

swoole_event_exit — Exit the eventloop, only available at the client side

Beschreibung

swoole_event_exit ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Update the event callback functions of a socket

  • « swoole_event_exit
  • swoole_event_wait »
  • PHP Manual
  • Swoole Funktionen
  • Update the event callback functions of a socket

swoole_event_set

(PECL swoole >= 1.9.0)

swoole_event_set — Update the event callback functions of a socket

Beschreibung

swoole_event_set ( int $fd , callable $read_callback = ? , callable $write_callback = ? , int $events = 0 ) : bool

Parameter-Liste

fd

read_callback

write_callback

events

Rückgabewerte


Start the event loop

  • « swoole_event_set
  • swoole_event_write »
  • PHP Manual
  • Swoole Funktionen
  • Start the event loop

swoole_event_wait

(PECL swoole >= 1.9.0)

swoole_event_wait — Start the event loop

Beschreibung

swoole_event_wait ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Write data to a socket

  • « swoole_event_wait
  • swoole_get_local_ip »
  • PHP Manual
  • Swoole Funktionen
  • Write data to a socket

swoole_event_write

(PECL swoole >= 1.9.0)

swoole_event_write — Write data to a socket

Beschreibung

swoole_event_write ( int $fd , string $data ) : bool

Parameter-Liste

fd

data

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Get the IPv4 IP addresses of each NIC on the machine

  • « swoole_event_write
  • swoole_last_error »
  • PHP Manual
  • Swoole Funktionen
  • Get the IPv4 IP addresses of each NIC on the machine

swoole_get_local_ip

(PECL swoole >= 1.9.0)

swoole_get_local_ip — Get the IPv4 IP addresses of each NIC on the machine

Beschreibung

swoole_get_local_ip ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the lastest error message

  • « swoole_get_local_ip
  • swoole_load_module »
  • PHP Manual
  • Swoole Funktionen
  • Get the lastest error message

swoole_last_error

(PECL swoole >= 1.9.0)

swoole_last_error — Get the lastest error message

Beschreibung

swoole_last_error ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Load a swoole extension

  • « swoole_last_error
  • swoole_select »
  • PHP Manual
  • Swoole Funktionen
  • Load a swoole extension

swoole_load_module

(PECL swoole >= 1.9.0)

swoole_load_module — Load a swoole extension

Beschreibung

swoole_load_module ( string $filename ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Select the file descriptions which are ready to read/write or error in the eventloop

  • « swoole_load_module
  • swoole_set_process_name »
  • PHP Manual
  • Swoole Funktionen
  • Select the file descriptions which are ready to read/write or error in the eventloop

swoole_select

(PECL swoole >= 1.9.0)

swoole_select — Select the file descriptions which are ready to read/write or error in the eventloop

Beschreibung

swoole_select ( array &$read_array , array &$write_array , array &$error_array , float $timeout = ? ) : int

Parameter-Liste

read_array

write_array

error_array

timeout

Rückgabewerte


Set the process name

  • « swoole_select
  • swoole_strerror »
  • PHP Manual
  • Swoole Funktionen
  • Set the process name

swoole_set_process_name

(PECL swoole >= 1.9.0)

swoole_set_process_name — Set the process name

Beschreibung

swoole_set_process_name ( string $process_name , int $size = 128 ) : void

Parameter-Liste

process_name

Rückgabewerte


Convert the Errno into error messages

  • « swoole_set_process_name
  • swoole_timer_after »
  • PHP Manual
  • Swoole Funktionen
  • Convert the Errno into error messages

swoole_strerror

(PECL swoole >= 1.9.0)

swoole_strerror — Convert the Errno into error messages

Beschreibung

swoole_strerror ( int $errno , int $error_type = 0 ) : string

Parameter-Liste

errno

Rückgabewerte


Trigger a one time callback function in the future

  • « swoole_strerror
  • swoole_timer_exists »
  • PHP Manual
  • Swoole Funktionen
  • Trigger a one time callback function in the future

swoole_timer_after

(PECL swoole >= 1.9.0)

swoole_timer_after — Trigger a one time callback function in the future

Beschreibung

swoole_timer_after ( int $ms , callable $callback , mixed $param = ? ) : int

Parameter-Liste

ms

callback

param

Rückgabewerte


Check if a timer callback function is existed

  • « swoole_timer_after
  • swoole_timer_tick »
  • PHP Manual
  • Swoole Funktionen
  • Check if a timer callback function is existed

swoole_timer_exists

(PECL swoole >= 1.9.0)

swoole_timer_exists — Check if a timer callback function is existed

Beschreibung

swoole_timer_exists ( int $timer_id ) : bool

Parameter-Liste

timer_id

Rückgabewerte


Trigger a timer tick callback function by time interval

  • « swoole_timer_exists
  • swoole_version »
  • PHP Manual
  • Swoole Funktionen
  • Trigger a timer tick callback function by time interval

swoole_timer_tick

(PECL swoole >= 1.9.0)

swoole_timer_tick — Trigger a timer tick callback function by time interval

Beschreibung

swoole_timer_tick ( int $ms , callable $callback , mixed $param = ? ) : int

Parameter-Liste

ms

callback

Rückgabewerte


Get the version of Swoole

  • « swoole_timer_tick
  • Swoole\Async »
  • PHP Manual
  • Swoole Funktionen
  • Get the version of Swoole

swoole_version

(PECL swoole >= 1.9.0)

swoole_version — Get the version of Swoole

Beschreibung

swoole_version ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The version of Swoole.


The Swoole\Async class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Async {
/* Methoden */
public static dnsLookup ( string $hostname , callable $callback ) : void
public static read ( string $filename , callable $callback , int $chunk_size = ? , int $offset = ? ) : bool
public static readFile ( string $filename , callable $callback ) : void
public static set ( array $settings ) : void
public static write ( string $filename , string $content , int $offset = ? , callable $callback = ? ) : void
public static writeFile ( string $filename , string $content , callable $callback = ? , string $flags = ? ) : void
}

Inhaltsverzeichnis

  • Swoole\Async::dnsLookup — Async and non-blocking hostname to IP lookup.
  • Swoole\Async::read — Read file stream asynchronously.
  • Swoole\Async::readFile — Read a file asynchronously.
  • Swoole\Async::set — Update the async I/O options.
  • Swoole\Async::write — Write data to a file stream asynchronously.
  • Swoole\Async::writeFile — Description


Async and non-blocking hostname to IP lookup.

  • « Swoole\Async
  • Swoole\Async::read »
  • PHP Manual
  • Swoole\Async
  • Async and non-blocking hostname to IP lookup.

Swoole\Async::dnsLookup

(PECL swoole >= 1.9.0)

Swoole\Async::dnsLookup — Async and non-blocking hostname to IP lookup.

Beschreibung

public static Swoole\Async::dnsLookup ( string $hostname , callable $callback ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

hostname

The host name.

callback
callback ( string $hostname , string $ip ) : mixed
hostname

The host name.

IP

The IP address.


Read file stream asynchronously.

  • « Swoole\Async::dnsLookup
  • Swoole\Async::readFile »
  • PHP Manual
  • Swoole\Async
  • Read file stream asynchronously.

Swoole\Async::read

(PECL swoole >= 1.9.0)

Swoole\Async::read — Read file stream asynchronously.

Beschreibung

public static Swoole\Async::read ( string $filename , callable $callback , int $chunk_size = ? , int $offset = ? ) : bool

Parameter-Liste

filename

The name of the file.

callback
callback ( string $filename , string $content ) : mixed
filename

The name of the file.

content

The content readed from the file stream.

chunk_size

The chunk length.

offset

The offset.

Rückgabewerte

Whether the read is succeed.


Read a file asynchronously.

  • « Swoole\Async::read
  • Swoole\Async::set »
  • PHP Manual
  • Swoole\Async
  • Read a file asynchronously.

Swoole\Async::readFile

(PECL swoole >= 1.9.0)

Swoole\Async::readFile — Read a file asynchronously.

Beschreibung

public static Swoole\Async::readFile ( string $filename , callable $callback ) : void

Parameter-Liste

filename

The filename of the file being read.

callback
callback ( string $filename , string $content ) : mixed
filename

The name of the file.

content

The content readed from the file.


Update the async I/O options.

  • « Swoole\Async::readFile
  • Swoole\Async::write »
  • PHP Manual
  • Swoole\Async
  • Update the async I/O options.

Swoole\Async::set

(PECL swoole >= 1.9.0)

Swoole\Async::set — Update the async I/O options.

Beschreibung

public static Swoole\Async::set ( array $settings ) : void

Parameter-Liste

settings


Write data to a file stream asynchronously.

  • « Swoole\Async::set
  • Swoole\Async::writeFile »
  • PHP Manual
  • Swoole\Async
  • Write data to a file stream asynchronously.

Swoole\Async::write

(PECL swoole >= 1.9.0)

Swoole\Async::write — Write data to a file stream asynchronously.

Beschreibung

public static Swoole\Async::write ( string $filename , string $content , int $offset = ? , callable $callback = ? ) : void

Parameter-Liste

filename

The filename being written.

content

The content writing to the file.

offset

The offset.

callback


Description

  • « Swoole\Async::write
  • Swoole\Atomic »
  • PHP Manual
  • Swoole\Async
  • Description

Swoole\Async::writeFile

(PECL swoole >= 1.9.0)

Swoole\Async::writeFile — Description

Beschreibung

public static Swoole\Async::writeFile ( string $filename , string $content , callable $callback = ? , string $flags = ? ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

filename

The filename being written.

content

The content writing to the file.

callback

flags


The Swoole\Atomic class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Atomic {
/* Methoden */
public add ( int $add_value = ? ) : int
public cmpset ( int $cmp_value , int $new_value ) : int
public get ( ) : int
public set ( int $value ) : int
public sub ( int $sub_value = ? ) : int
}

Inhaltsverzeichnis

  • Swoole\Atomic::add — Add a number to the value to the atomic object.
  • Swoole\Atomic::cmpset — Compare and set the value of the atomic object.
  • Swoole\Atomic::__construct — Construct a swoole atomic object.
  • Swoole\Atomic::get — Get the current value of the atomic object.
  • Swoole\Atomic::set — Set a new value to the atomic object.
  • Swoole\Atomic::sub — Subtract a number to the value of the atomic object.


Add a number to the value to the atomic object.

  • « Swoole\Atomic
  • Swoole\Atomic::cmpset »
  • PHP Manual
  • Swoole\Atomic
  • Add a number to the value to the atomic object.

Swoole\Atomic::add

(PECL swoole >= 1.9.0)

Swoole\Atomic::add — Add a number to the value to the atomic object.

Beschreibung

public Swoole\Atomic::add ( int $add_value = ? ) : int

Add a number to the value to the atomic object.

Parameter-Liste

add_value

The value which will be added to the current value.

Rückgabewerte

The new value of the atomic object.


Compare and set the value of the atomic object.

  • « Swoole\Atomic::add
  • Swoole\Atomic::__construct »
  • PHP Manual
  • Swoole\Atomic
  • Compare and set the value of the atomic object.

Swoole\Atomic::cmpset

(PECL swoole >= 1.9.0)

Swoole\Atomic::cmpset — Compare and set the value of the atomic object.

Beschreibung

public Swoole\Atomic::cmpset ( int $cmp_value , int $new_value ) : int

Parameter-Liste

cmp_value

The value to compare with the current value of the atomic object.

new_value

The value to set to the atomic object if the cmp_value is the same as the current value of the atomic object.

Rückgabewerte

The new value of the atomic object.


Construct a swoole atomic object.

  • « Swoole\Atomic::cmpset
  • Swoole\Atomic::get »
  • PHP Manual
  • Swoole\Atomic
  • Construct a swoole atomic object.

Swoole\Atomic::__construct

(PECL swoole >= 1.9.0)

Swoole\Atomic::__construct — Construct a swoole atomic object.

Beschreibung

public Swoole\Atomic::__construct ( int $value = ? )

Swoole atomic object is a integer variable allows any processor to atomically test and modify. It is implemented based on CPU atomic instructions. The Swoole atomic variables have to defined before swoole_server->start.

Compare-and-swap (CAS) is an atomic instruction used in multithreading to achieve synchronization. It compares the content of a memory location with a given value and, only if they are the same, modifies the content of that memory location to a new given value.

Parameter-Liste

value

The value of the atomic object.


Get the current value of the atomic object.

  • « Swoole\Atomic::__construct
  • Swoole\Atomic::set »
  • PHP Manual
  • Swoole\Atomic
  • Get the current value of the atomic object.

Swoole\Atomic::get

(PECL swoole >= 1.9.0)

Swoole\Atomic::get — Get the current value of the atomic object.

Beschreibung

public Swoole\Atomic::get ( ) : int

Get the current value of the atomic object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current value of the atomic object.


Set a new value to the atomic object.

  • « Swoole\Atomic::get
  • Swoole\Atomic::sub »
  • PHP Manual
  • Swoole\Atomic
  • Set a new value to the atomic object.

Swoole\Atomic::set

(PECL swoole >= 1.9.0)

Swoole\Atomic::set — Set a new value to the atomic object.

Beschreibung

public Swoole\Atomic::set ( int $value ) : int

Set a new value to the atomic object.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

value

The value to set to the atomic object.

Rückgabewerte

The current value of the atomic object.


Subtract a number to the value of the atomic object.

  • « Swoole\Atomic::set
  • Swoole\Buffer »
  • PHP Manual
  • Swoole\Atomic
  • Subtract a number to the value of the atomic object.

Swoole\Atomic::sub

(PECL swoole >= 1.9.0)

Swoole\Atomic::sub — Subtract a number to the value of the atomic object.

Beschreibung

public Swoole\Atomic::sub ( int $sub_value = ? ) : int

Subtract a number to the value of the atomic object.

Parameter-Liste

sub_value

The value which will be subtracted to the current value.

Rückgabewerte

The current value of the atomic object.


The Swoole\Buffer class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Buffer {
/* Methoden */
public append ( string $data ) : int
public clear ( ) : void
public __destruct ( ) : void
public expand ( int $size ) : int
public read ( int $offset , int $length ) : string
public recycle ( ) : void
public substr ( int $offset , int $length = ? , bool $remove = ? ) : string
public __toString ( ) : string
public write ( int $offset , string $data ) : void
}

Inhaltsverzeichnis

  • Swoole\Buffer::append — Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.
  • Swoole\Buffer::clear — Reset the memory buffer.
  • Swoole\Buffer::__construct — Fixed size memory blocks allocation.
  • Swoole\Buffer::__destruct — Destruct the Swoole memory buffer.
  • Swoole\Buffer::expand — Expand the size of memory buffer.
  • Swoole\Buffer::read — Read data from the memory buffer based on offset and length.
  • Swoole\Buffer::recycle — Release the memory to OS which is not used by the memory buffer.
  • Swoole\Buffer::substr — Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.
  • Swoole\Buffer::__toString — Get the string value of the memory buffer.
  • Swoole\Buffer::write — Write data to the memory buffer. The memory allocated for the buffer will not be changed.


Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.

  • « Swoole\Buffer
  • Swoole\Buffer::clear »
  • PHP Manual
  • Swoole\Buffer
  • Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.

Swoole\Buffer::append

(PECL swoole >= 1.9.0)

Swoole\Buffer::append — Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.

Beschreibung

public Swoole\Buffer::append ( string $data ) : int

Parameter-Liste

data

The string or binary data to append at the end of the memory buffer.

Rückgabewerte

The new size of the memory buffer.


Reset the memory buffer.

  • « Swoole\Buffer::append
  • Swoole\Buffer::__construct »
  • PHP Manual
  • Swoole\Buffer
  • Reset the memory buffer.

Swoole\Buffer::clear

(PECL swoole >= 1.9.0)

Swoole\Buffer::clear — Reset the memory buffer.

Beschreibung

public Swoole\Buffer::clear ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Fixed size memory blocks allocation.

  • « Swoole\Buffer::clear
  • Swoole\Buffer::__destruct »
  • PHP Manual
  • Swoole\Buffer
  • Fixed size memory blocks allocation.

Swoole\Buffer::__construct

(PECL swoole >= 1.9.0)

Swoole\Buffer::__construct — Fixed size memory blocks allocation.

Beschreibung

public Swoole\Buffer::__construct ( int $size = ? )

Parameter-Liste

size

The size of the memory to allocate.


Destruct the Swoole memory buffer.

  • « Swoole\Buffer::__construct
  • Swoole\Buffer::expand »
  • PHP Manual
  • Swoole\Buffer
  • Destruct the Swoole memory buffer.

Swoole\Buffer::__destruct

(PECL swoole >= 1.9.0)

Swoole\Buffer::__destruct — Destruct the Swoole memory buffer.

Beschreibung

public Swoole\Buffer::__destruct ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Expand the size of memory buffer.

  • « Swoole\Buffer::__destruct
  • Swoole\Buffer::read »
  • PHP Manual
  • Swoole\Buffer
  • Expand the size of memory buffer.

Swoole\Buffer::expand

(PECL swoole >= 1.9.0)

Swoole\Buffer::expand — Expand the size of memory buffer.

Beschreibung

public Swoole\Buffer::expand ( int $size ) : int

Parameter-Liste

size

The new size of the memory buffer.

Rückgabewerte

The new size of the memory buffer.


Read data from the memory buffer based on offset and length.

  • « Swoole\Buffer::expand
  • Swoole\Buffer::recycle »
  • PHP Manual
  • Swoole\Buffer
  • Read data from the memory buffer based on offset and length.

Swoole\Buffer::read

(PECL swoole >= 1.9.0)

Swoole\Buffer::read — Read data from the memory buffer based on offset and length.

Beschreibung

public Swoole\Buffer::read ( int $offset , int $length ) : string

Parameter-Liste

offset

The offset.

length

The length.

Rückgabewerte

The data readed from the memory buffer.


Release the memory to OS which is not used by the memory buffer.

  • « Swoole\Buffer::read
  • Swoole\Buffer::substr »
  • PHP Manual
  • Swoole\Buffer
  • Release the memory to OS which is not used by the memory buffer.

Swoole\Buffer::recycle

(PECL swoole >= 1.9.0)

Swoole\Buffer::recycle — Release the memory to OS which is not used by the memory buffer.

Beschreibung

public Swoole\Buffer::recycle ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.

  • « Swoole\Buffer::recycle
  • Swoole\Buffer::__toString »
  • PHP Manual
  • Swoole\Buffer
  • Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.

Swoole\Buffer::substr

(PECL swoole >= 1.9.0)

Swoole\Buffer::substr — Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.

Beschreibung

public Swoole\Buffer::substr ( int $offset , int $length = ? , bool $remove = ? ) : string

If $remove is set to be true and $offset is set to be 0, the data will be removed from the buffer. The memory for storing the data will be released when the buffer object is deconstructed.

Parameter-Liste

offset

The offset.

length

The length.

remove

Whether to remove the data from the memory buffer.

Rückgabewerte

The data or string readed from the memory buffer.


Get the string value of the memory buffer.

  • « Swoole\Buffer::substr
  • Swoole\Buffer::write »
  • PHP Manual
  • Swoole\Buffer
  • Get the string value of the memory buffer.

Swoole\Buffer::__toString

(PECL swoole >= 1.9.0)

Swoole\Buffer::__toString — Get the string value of the memory buffer.

Beschreibung

public Swoole\Buffer::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The string value of the memory buffer.


Write data to the memory buffer. The memory allocated for the buffer will not be changed.

  • « Swoole\Buffer::__toString
  • Swoole\Channel »
  • PHP Manual
  • Swoole\Buffer
  • Write data to the memory buffer. The memory allocated for the buffer will not be changed.

Swoole\Buffer::write

(PECL swoole >= 1.9.0)

Swoole\Buffer::write — Write data to the memory buffer. The memory allocated for the buffer will not be changed.

Beschreibung

public Swoole\Buffer::write ( int $offset , string $data ) : void

Parameter-Liste

offset

The offset.

data

The data to write to the memory buffer.

Rückgabewerte


The Swoole\Channel class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Channel {
/* Methoden */
public __destruct ( ) : void
public pop ( ) : mixed
public push ( string $data ) : bool
public stats ( ) : array
}

Inhaltsverzeichnis

  • Swoole\Channel::__construct — Construct a Swoole Channel
  • Swoole\Channel::__destruct — Destruct a Swoole channel.
  • Swoole\Channel::pop — Read and pop data from swoole channel.
  • Swoole\Channel::push — Write and push data into Swoole channel.
  • Swoole\Channel::stats — Get stats of swoole channel.


Construct a Swoole Channel

  • « Swoole\Channel
  • Swoole\Channel::__destruct »
  • PHP Manual
  • Swoole\Channel
  • Construct a Swoole Channel

Swoole\Channel::__construct

(PECL swoole >= 1.9.0)

Swoole\Channel::__construct — Construct a Swoole Channel

Beschreibung

public Swoole\Channel::__construct ( string $size )

Swoole channel is memory data structure works like Chan in Golang, implemented based on shared memory and mutex locks. It can be used as high performance message queue in memory. Construct a swoole channel with a fixed size. The minimum size of a swoole channel is 64KB. Exceptions will be thrown if there is not enough memory.

Parameter-Liste

size

The size of the Swoole channel.


Destruct a Swoole channel.

  • « Swoole\Channel::__construct
  • Swoole\Channel::pop »
  • PHP Manual
  • Swoole\Channel
  • Destruct a Swoole channel.

Swoole\Channel::__destruct

(PECL swoole >= 1.9.0)

Swoole\Channel::__destruct — Destruct a Swoole channel.

Beschreibung

public Swoole\Channel::__destruct ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Read and pop data from swoole channel.

  • « Swoole\Channel::__destruct
  • Swoole\Channel::push »
  • PHP Manual
  • Swoole\Channel
  • Read and pop data from swoole channel.

Swoole\Channel::pop

(PECL swoole >= 1.9.0)

Swoole\Channel::pop — Read and pop data from swoole channel.

Beschreibung

public Swoole\Channel::pop ( ) : mixed

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

If the channel is empty, the function will return false, or return the unserialized data.


Write and push data into Swoole channel.

  • « Swoole\Channel::pop
  • Swoole\Channel::stats »
  • PHP Manual
  • Swoole\Channel
  • Write and push data into Swoole channel.

Swoole\Channel::push

(PECL swoole >= 1.9.0)

Swoole\Channel::push — Write and push data into Swoole channel.

Beschreibung

public Swoole\Channel::push ( string $data ) : bool

Data can be any non-empty PHP variable, the variable will be serialized if it is not string type.

If size of the data is more than 8KB, swoole channel will use temp files storage.

The function will return true if the write operation is succeeded, or return false if there is not enough space.

Parameter-Liste

data

The data to push into the Swoole channel.

Rückgabewerte

Wheter the data is pushed into he Swoole channel.


Get stats of swoole channel.

  • « Swoole\Channel::push
  • Swoole\Client »
  • PHP Manual
  • Swoole\Channel
  • Get stats of swoole channel.

Swoole\Channel::stats

(PECL swoole >= 1.9.0)

Swoole\Channel::stats — Get stats of swoole channel.

Beschreibung

public Swoole\Channel::stats ( ) : array

Get the numbers of queued elements and total size of the memory used by the queue.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The stats of the Swoole channel.


The Swoole\Client class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Client {
/* Constants */
const int MSG_OOB = 1 ;
const int MSG_PEEK = 2 ;
const int MSG_DONTWAIT = 128 ;
const int MSG_WAITALL = 64 ;
/* Eigenschaften */
public $errCode ;
public $sock ;
public $reuse ;
public $reuseCount ;
/* Methoden */
public close ( bool $force = ? ) : bool
public connect ( string $host , int $port = ? , int $timeout = ? , int $flag = ? ) : bool
public __destruct ( ) : void
public getpeername ( ) : array
public getsockname ( ) : array
public isConnected ( ) : bool
public on ( string $event , callable $callback ) : void
public pause ( ) : void
public pipe ( string $socket ) : void
public recv ( string $size = ? , string $flag = ? ) : void
public resume ( ) : void
public send ( string $data , string $flag = ? ) : int
public sendfile ( string $filename , int $offset = ? ) : bool
public sendto ( string $ip , int $port , string $data ) : bool
public set ( array $settings ) : void
public sleep ( ) : void
public wakeup ( ) : void
}

Eigenschaften

errCode

sock

reuse

reuseCount

Vordefinierte Konstanten

Swoole\Client::MSG_OOB

Swoole\Client::MSG_PEEK

Swoole\Client::MSG_DONTWAIT

Swoole\Client::MSG_WAITALL

Inhaltsverzeichnis

  • Swoole\Client::close — Close the connection established.
  • Swoole\Client::connect — Connect to the remote TCP or UDP port.
  • Swoole\Client::__construct — Create Swoole sync or async TCP/UDP client, with or without SSL.
  • Swoole\Client::__destruct — Destruct the Swoole client.
  • Swoole\Client::getpeername — Get the remote socket name of the connection.
  • Swoole\Client::getsockname — Get the local socket name of the connection.
  • Swoole\Client::isConnected — Check if the connection is established.
  • Swoole\Client::on — Add callback functions triggered by events.
  • Swoole\Client::pause — Pause receiving data.
  • Swoole\Client::pipe — Redirect the data to another file descriptor.
  • Swoole\Client::recv — Receive data from the remote socket.
  • Swoole\Client::resume — Resume receiving data.
  • Swoole\Client::send — Send data to the remote TCP socket.
  • Swoole\Client::sendfile — Send file to the remote TCP socket.
  • Swoole\Client::sendto — Send data to the remote UDP address.
  • Swoole\Client::set — Set the Swoole client parameters before the connection is established.
  • Swoole\Client::sleep — Remove the TCP client from system event loop.
  • Swoole\Client::wakeup — Add the TCP client back into the system event loop.


Close the connection established.

  • « Swoole\Client
  • Swoole\Client::connect »
  • PHP Manual
  • Swoole\Client
  • Close the connection established.

Swoole\Client::close

(PECL swoole >= 1.9.0)

Swoole\Client::close — Close the connection established.

Beschreibung

public Swoole\Client::close ( bool $force = ? ) : bool

Parameter-Liste

force

Whether force to close the connection.

Rückgabewerte

Whether the connection is closed.


Connect to the remote TCP or UDP port.

  • « Swoole\Client::close
  • Swoole\Client::__construct »
  • PHP Manual
  • Swoole\Client
  • Connect to the remote TCP or UDP port.

Swoole\Client::connect

(PECL swoole >= 1.9.0)

Swoole\Client::connect — Connect to the remote TCP or UDP port.

Beschreibung

public Swoole\Client::connect ( string $host , int $port = ? , int $timeout = ? , int $flag = ? ) : bool

Parameter-Liste

host

The host name of the remote address.

port

The port number of the remote address.

timeout

The timeout(second) of connect/send/recv, the dafault value is 0.1s

flag

If the type of client is UDP, the $flag means if to enable the configuration udp_connect. If the configuration udp_connect is enabled, the client will only receive the data from specified ip:port. If the type of client is TCP and the $flag is set to 1, it must use swoole_client_select to check the connection status before send/recv.

Rückgabewerte

Whether the connection is established.


Create Swoole sync or async TCP/UDP client, with or without SSL.

  • « Swoole\Client::connect
  • Swoole\Client::__destruct »
  • PHP Manual
  • Swoole\Client
  • Create Swoole sync or async TCP/UDP client, with or without SSL.

Swoole\Client::__construct

(PECL swoole >= 1.9.0)

Swoole\Client::__construct — Create Swoole sync or async TCP/UDP client, with or without SSL.

Beschreibung

public Swoole\Client::__construct ( int $sock_type , int $is_async = ? )

Parameter-Liste

sock_type

The type of socket: SWOOLE_TCP, SWOOLE_UDP, SWOOLE_ASYNC, SWOOLE_SSL, SWOOLE_KEEP.

is_async

Synchronous or asynchronous client.


Destruct the Swoole client.

  • « Swoole\Client::__construct
  • Swoole\Client::getpeername »
  • PHP Manual
  • Swoole\Client
  • Destruct the Swoole client.

Swoole\Client::__destruct

(PECL swoole >= 1.9.0)

Swoole\Client::__destruct — Destruct the Swoole client.

Beschreibung

public Swoole\Client::__destruct ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Get the remote socket name of the connection.

  • « Swoole\Client::__destruct
  • Swoole\Client::getsockname »
  • PHP Manual
  • Swoole\Client
  • Get the remote socket name of the connection.

Swoole\Client::getpeername

(PECL swoole >= 1.9.0)

Swoole\Client::getpeername — Get the remote socket name of the connection.

Beschreibung

public Swoole\Client::getpeername ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The host and port of the remote socket.


Get the local socket name of the connection.

  • « Swoole\Client::getpeername
  • Swoole\Client::isConnected »
  • PHP Manual
  • Swoole\Client
  • Get the local socket name of the connection.

Swoole\Client::getsockname

(PECL swoole >= 1.9.0)

Swoole\Client::getsockname — Get the local socket name of the connection.

Beschreibung

public Swoole\Client::getsockname ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The host and port of the local socket.


Check if the connection is established.

  • « Swoole\Client::getsockname
  • Swoole\Client::on »
  • PHP Manual
  • Swoole\Client
  • Check if the connection is established.

Swoole\Client::isConnected

(PECL swoole >= 1.9.0)

Swoole\Client::isConnected — Check if the connection is established.

Beschreibung

public Swoole\Client::isConnected ( ) : bool

This method returns the connection status of application layer.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Whether the connection is established.


Add callback functions triggered by events.

  • « Swoole\Client::isConnected
  • Swoole\Client::pause »
  • PHP Manual
  • Swoole\Client
  • Add callback functions triggered by events.

Swoole\Client::on

(PECL swoole >= 1.9.0)

Swoole\Client::on — Add callback functions triggered by events.

Beschreibung

public Swoole\Client::on ( string $event , callable $callback ) : void

Parameter-Liste

event

callback


Pause receiving data.

  • « Swoole\Client::on
  • Swoole\Client::pipe »
  • PHP Manual
  • Swoole\Client
  • Pause receiving data.

Swoole\Client::pause

(PECL swoole >= 1.9.0)

Swoole\Client::pause — Pause receiving data.

Beschreibung

public Swoole\Client::pause ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Redirect the data to another file descriptor.

  • « Swoole\Client::pause
  • Swoole\Client::recv »
  • PHP Manual
  • Swoole\Client
  • Redirect the data to another file descriptor.

Swoole\Client::pipe

(PECL swoole >= 1.9.0)

Swoole\Client::pipe — Redirect the data to another file descriptor.

Beschreibung

public Swoole\Client::pipe ( string $socket ) : void

Parameter-Liste

socket


Receive data from the remote socket.

  • « Swoole\Client::pipe
  • Swoole\Client::resume »
  • PHP Manual
  • Swoole\Client
  • Receive data from the remote socket.

Swoole\Client::recv

(PECL swoole >= 1.9.0)

Swoole\Client::recv — Receive data from the remote socket.

Beschreibung

public Swoole\Client::recv ( string $size = ? , string $flag = ? ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

size

flag

Rückgabewerte


Resume receiving data.

  • « Swoole\Client::recv
  • Swoole\Client::send »
  • PHP Manual
  • Swoole\Client
  • Resume receiving data.

Swoole\Client::resume

(PECL swoole >= 1.9.0)

Swoole\Client::resume — Resume receiving data.

Beschreibung

public Swoole\Client::resume ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Send data to the remote TCP socket.

  • « Swoole\Client::resume
  • Swoole\Client::sendfile »
  • PHP Manual
  • Swoole\Client
  • Send data to the remote TCP socket.

Swoole\Client::send

(PECL swoole >= 1.9.0)

Swoole\Client::send — Send data to the remote TCP socket.

Beschreibung

public Swoole\Client::send ( string $data , string $flag = ? ) : int

Parameter-Liste

data

The data to send which can be string or binary

flag

Rückgabewerte

If the client sends data successfully, it returns the length of data sent. Or it returns false and sets $swoole_client->errCode. For sync client, there is no limit for the data to send. For async client, The limit for the data to send is socket_buffer_size.


Send file to the remote TCP socket.

  • « Swoole\Client::send
  • Swoole\Client::sendto »
  • PHP Manual
  • Swoole\Client
  • Send file to the remote TCP socket.

Swoole\Client::sendfile

(PECL swoole >= 1.9.0)

Swoole\Client::sendfile — Send file to the remote TCP socket.

Beschreibung

public Swoole\Client::sendfile ( string $filename , int $offset = ? ) : bool

This is a wrapper of the Linux sendfile system call.

Parameter-Liste

filename

File path of the file to send.

offset

Offset of the file to send

Rückgabewerte


Send data to the remote UDP address.

  • « Swoole\Client::sendfile
  • Swoole\Client::set »
  • PHP Manual
  • Swoole\Client
  • Send data to the remote UDP address.

Swoole\Client::sendto

(PECL swoole >= 1.9.0)

Swoole\Client::sendto — Send data to the remote UDP address.

Beschreibung

public Swoole\Client::sendto ( string $ip , int $port , string $data ) : bool

The swoole client should be type of SWOOLE_SOCK_UDP or SWOOLE_SOCK_UDP6.

Parameter-Liste

ip

The IP address of remote host, IPv4 or IPv6.

port

The port number of remote host.

data

The data to send which should be less-than 64K.

Rückgabewerte


Set the Swoole client parameters before the connection is established.

  • « Swoole\Client::sendto
  • Swoole\Client::sleep »
  • PHP Manual
  • Swoole\Client
  • Set the Swoole client parameters before the connection is established.

Swoole\Client::set

(PECL swoole >= 1.9.0)

Swoole\Client::set — Set the Swoole client parameters before the connection is established.

Beschreibung

public Swoole\Client::set ( array $settings ) : void

Parameter-Liste

settings

Rückgabewerte


Remove the TCP client from system event loop.

  • « Swoole\Client::set
  • Swoole\Client::wakeup »
  • PHP Manual
  • Swoole\Client
  • Remove the TCP client from system event loop.

Swoole\Client::sleep

(PECL swoole >= 1.9.0)

Swoole\Client::sleep — Remove the TCP client from system event loop.

Beschreibung

public Swoole\Client::sleep ( ) : void

Remove the TCP client from system event loop.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Add the TCP client back into the system event loop.

  • « Swoole\Client::sleep
  • Swoole\Connection\Iterator »
  • PHP Manual
  • Swoole\Client
  • Add the TCP client back into the system event loop.

Swoole\Client::wakeup

(PECL swoole >= 1.9.0)

Swoole\Client::wakeup — Add the TCP client back into the system event loop.

Beschreibung

public Swoole\Client::wakeup ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Swoole\Connection\Iterator class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Connection\Iterator implements Iterator , Countable , ArrayAccess {
/* Methoden */
public count ( ) : int
public current ( ) : Connection
public key ( ) : int
public next ( ) : Connection
public offsetExists ( int $index ) : bool
public offsetGet ( string $index ) : Connection
public offsetSet ( int $offset , mixed $connection ) : void
public offsetUnset ( int $offset ) : void
public rewind ( ) : void
public valid ( ) : bool
}

Inhaltsverzeichnis

  • Swoole\Connection\Iterator::count — Count connections.
  • Swoole\Connection\Iterator::current — Return current connection entry.
  • Swoole\Connection\Iterator::key — Return key of the current connection.
  • Swoole\Connection\Iterator::next — Move to the next connection.
  • Swoole\Connection\Iterator::offsetExists — Check if offet exists.
  • Swoole\Connection\Iterator::offsetGet — Offset to retrieve.
  • Swoole\Connection\Iterator::offsetSet — Assign a Connection to the specified offset.
  • Swoole\Connection\Iterator::offsetUnset — Unset an offset.
  • Swoole\Connection\Iterator::rewind — Rewinds iterator
  • Swoole\Connection\Iterator::valid — Check if current position is valid.


Count connections.

  • « Swoole\Connection\Iterator
  • Swoole\Connection\Iterator::current »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Count connections.

Swoole\Connection\Iterator::count

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::count — Count connections.

Beschreibung

public Swoole\Connection\Iterator::count ( ) : int

Gets the number of connections.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of connections.


Return current connection entry.

  • « Swoole\Connection\Iterator::count
  • Swoole\Connection\Iterator::key »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Return current connection entry.

Swoole\Connection\Iterator::current

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::current — Return current connection entry.

Beschreibung

public Swoole\Connection\Iterator::current ( ) : Connection

Get current connection entry.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current connection entry.


Return key of the current connection.

  • « Swoole\Connection\Iterator::current
  • Swoole\Connection\Iterator::next »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Return key of the current connection.

Swoole\Connection\Iterator::key

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::key — Return key of the current connection.

Beschreibung

public Swoole\Connection\Iterator::key ( ) : int

This function returns key of the current connection.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Key of the current connection.


Move to the next connection.

  • « Swoole\Connection\Iterator::key
  • Swoole\Connection\Iterator::offsetExists »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Move to the next connection.

Swoole\Connection\Iterator::next

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::next — Move to the next connection.

Beschreibung

public Swoole\Connection\Iterator::next ( ) : Connection

The iterator to the next connection.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Check if offet exists.

  • « Swoole\Connection\Iterator::next
  • Swoole\Connection\Iterator::offsetGet »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Check if offet exists.

Swoole\Connection\Iterator::offsetExists

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetExists — Check if offet exists.

Beschreibung

public Swoole\Connection\Iterator::offsetExists ( int $index ) : bool

Check if offset exists.

Parameter-Liste

index

The offset being checked.

Rückgabewerte

Returns TRUE if the offset exists, otherwise FALSE.


Offset to retrieve.

  • « Swoole\Connection\Iterator::offsetExists
  • Swoole\Connection\Iterator::offsetSet »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Offset to retrieve.

Swoole\Connection\Iterator::offsetGet

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetGet — Offset to retrieve.

Beschreibung

public Swoole\Connection\Iterator::offsetGet ( string $index ) : Connection

Return the connection at specified offset.

Parameter-Liste

index

The offset to retrieve.

Rückgabewerte


Assign a Connection to the specified offset.

  • « Swoole\Connection\Iterator::offsetGet
  • Swoole\Connection\Iterator::offsetUnset »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Assign a Connection to the specified offset.

Swoole\Connection\Iterator::offsetSet

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetSet — Assign a Connection to the specified offset.

Beschreibung

public Swoole\Connection\Iterator::offsetSet ( int $offset , mixed $connection ) : void

Assign a Connection to the specified offset.

Parameter-Liste

offset

The offset to assign the Connection to.

connection

The connection to set.

Rückgabewerte


Unset an offset.

  • « Swoole\Connection\Iterator::offsetSet
  • Swoole\Connection\Iterator::rewind »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Unset an offset.

Swoole\Connection\Iterator::offsetUnset

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetUnset — Unset an offset.

Beschreibung

public Swoole\Connection\Iterator::offsetUnset ( int $offset ) : void

Unsets an offset.

Parameter-Liste

offset

The offset to unset.

Rückgabewerte


Rewinds iterator

  • « Swoole\Connection\Iterator::offsetUnset
  • Swoole\Connection\Iterator::valid »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Rewinds iterator

Swoole\Connection\Iterator::rewind

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::rewind — Rewinds iterator

Beschreibung

public Swoole\Connection\Iterator::rewind ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Check if current position is valid.

  • « Swoole\Connection\Iterator::rewind
  • Swoole\Coroutine »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Check if current position is valid.

Swoole\Connection\Iterator::valid

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::valid — Check if current position is valid.

Beschreibung

public Swoole\Connection\Iterator::valid ( ) : bool

Checks if the current position is valid.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns TRUE if the current iterator position is valid, otherwise FALSE.


The Swoole\Coroutine class

(PECL swoole >= 2.0.0)

Einführung

Klassenbeschreibung

Swoole\Coroutine {
/* Methoden */
public static call_user_func_array ( callable $callback , array $param_array ) : mixed
public static call_user_func ( callable $callback , mixed ...$args ) : mixed
public static cli_wait ( ) : ReturnType
public static create ( ) : ReturnType
public Swoole\Coroutine\Client::close ( ) : ReturnType
public Swoole\Coroutine\Client::connect ( ) : ReturnType
public Swoole\Coroutine\Client::__destruct ( ) : ReturnType
public Swoole\Coroutine\Client::getpeername ( ) : ReturnType
public Swoole\Coroutine\Client::getsockname ( ) : ReturnType
public Swoole\Coroutine\Client::isConnected ( ) : ReturnType
public Swoole\Coroutine\Client::recv ( ) : ReturnType
public Swoole\Coroutine\Client::send ( ) : ReturnType
public Swoole\Coroutine\Client::sendfile ( ) : ReturnType
public Swoole\Coroutine\Client::sendto ( ) : ReturnType
public Swoole\Coroutine\Client::set ( ) : ReturnType
public Swoole\Coroutine\Http\Client::addFile ( ) : ReturnType
public Swoole\Coroutine\Http\Client::close ( ) : ReturnType
public Swoole\Coroutine\Http\Client::__destruct ( ) : ReturnType
public Swoole\Coroutine\Http\Client::execute ( ) : ReturnType
public Swoole\Coroutine\Http\Client::get ( ) : ReturnType
public Swoole\Coroutine\Http\Client::getDefer ( ) : ReturnType
public Swoole\Coroutine\Http\Client::isConnected ( ) : ReturnType
public Swoole\Coroutine\Http\Client::post ( ) : ReturnType
public Swoole\Coroutine\Http\Client::recv ( ) : ReturnType
public Swoole\Coroutine\Http\Client::set ( ) : ReturnType
public Swoole\Coroutine\Http\Client::setCookies ( ) : ReturnType
public Swoole\Coroutine\Http\Client::setData ( ) : ReturnType
public Swoole\Coroutine\Http\Client::setDefer ( ) : ReturnType
public Swoole\Coroutine\Http\Client::setHeaders ( ) : ReturnType
public Swoole\Coroutine\Http\Client::setMethod ( ) : ReturnType
public Swoole\Coroutine\MySQL::close ( ) : ReturnType
public Swoole\Coroutine\MySQL::connect ( ) : ReturnType
public Swoole\Coroutine\MySQL::__destruct ( ) : ReturnType
public Swoole\Coroutine\MySQL::getDefer ( ) : ReturnType
public Swoole\Coroutine\MySQL::query ( ) : ReturnType
public Swoole\Coroutine\MySQL::recv ( ) : ReturnType
public Swoole\Coroutine\MySQL::setDefer ( ) : ReturnType
public static getuid ( ) : ReturnType
public static resume ( ) : ReturnType
public static suspend ( ) : ReturnType
}

Inhaltsverzeichnis

  • Swoole\Coroutine::call_user_func_array — Call a callback with an array of parameters
  • Swoole\Coroutine::call_user_func — Call a callback given by the first parameter
  • Swoole\Coroutine::cli_wait — Description
  • Swoole\Coroutine::create — Description
  • Swoole\Coroutine\Client::close — Description
  • Swoole\Coroutine\Client::connect — Description
  • Swoole\Coroutine\Client::__construct — Description
  • Swoole\Coroutine\Client::__destruct — Description
  • Swoole\Coroutine\Client::getpeername — Description
  • Swoole\Coroutine\Client::getsockname — Description
  • Swoole\Coroutine\Client::isConnected — Description
  • Swoole\Coroutine\Client::recv — Description
  • Swoole\Coroutine\Client::send — Description
  • Swoole\Coroutine\Client::sendfile — Description
  • Swoole\Coroutine\Client::sendto — Description
  • Swoole\Coroutine\Client::set — Description
  • Swoole\Coroutine\Http\Client::addFile — Description
  • Swoole\Coroutine\Http\Client::close — Description
  • Swoole\Coroutine\Http\Client::__construct — Description
  • Swoole\Coroutine\Http\Client::__destruct — Description
  • Swoole\Coroutine\Http\Client::execute — Description
  • Swoole\Coroutine\Http\Client::get — Description
  • Swoole\Coroutine\Http\Client::getDefer — Description
  • Swoole\Coroutine\Http\Client::isConnected — Description
  • Swoole\Coroutine\Http\Client::post — Description
  • Swoole\Coroutine\Http\Client::recv — Description
  • Swoole\Coroutine\Http\Client::set — Description
  • Swoole\Coroutine\Http\Client::setCookies — Description
  • Swoole\Coroutine\Http\Client::setData — Description
  • Swoole\Coroutine\Http\Client::setDefer — Description
  • Swoole\Coroutine\Http\Client::setHeaders — Description
  • Swoole\Coroutine\Http\Client::setMethod — Description
  • Swoole\Coroutine\MySQL::close — Description
  • Swoole\Coroutine\MySQL::connect — Description
  • Swoole\Coroutine\MySQL::__construct — Description
  • Swoole\Coroutine\MySQL::__destruct — Description
  • Swoole\Coroutine\MySQL::getDefer — Description
  • Swoole\Coroutine\MySQL::query — Description
  • Swoole\Coroutine\MySQL::recv — Description
  • Swoole\Coroutine\MySQL::setDefer — Description
  • Swoole\Coroutine::getuid — Description
  • Swoole\Coroutine::resume — Description
  • Swoole\Coroutine::suspend — Description


Call a callback with an array of parameters

  • « Swoole\Coroutine
  • Swoole\Coroutine::call_user_func »
  • PHP Manual
  • Swoole\Coroutine
  • Call a callback with an array of parameters

Swoole\Coroutine::call_user_func_array

(PECL swoole >= 2.0.0)

Swoole\Coroutine::call_user_func_array — Call a callback with an array of parameters

Beschreibung

public static Swoole\Coroutine::call_user_func_array ( callable $callback , array $param_array ) : mixed

Calls the callback given by the first parameter with the parameters in param_array.

Parameter-Liste

callback

The callable to be called.

param_array

Zero or more parameters in the array to be passed to the callback.

Rückgabewerte


Call a callback given by the first parameter

  • « Swoole\Coroutine::call_user_func_array
  • Swoole\Coroutine::cli_wait »
  • PHP Manual
  • Swoole\Coroutine
  • Call a callback given by the first parameter

Swoole\Coroutine::call_user_func

(PECL swoole >= 2.0.0)

Swoole\Coroutine::call_user_func — Call a callback given by the first parameter

Beschreibung

public static Swoole\Coroutine::call_user_func ( callable $callback , mixed ...$args ) : mixed

Calls the callback given by the first parameter and passes the remaining parameters as arguments.

Parameter-Liste

callback

The callable to be called.

args

Zero or more parameters to be passed to the callback.

Rückgabewerte


Description

  • « Swoole\Coroutine::call_user_func
  • Swoole\Coroutine::create »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::cli_wait

(PECL swoole >= 2.0.0)

Swoole\Coroutine::cli_wait — Description

Beschreibung

public static Swoole\Coroutine::cli_wait ( ) : ReturnType

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine::cli_wait
  • Swoole\Coroutine\Client::close »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::create

(PECL swoole >= 2.0.0)

Swoole\Coroutine::create — Description

Beschreibung

public static Swoole\Coroutine::create ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine::create
  • Swoole\Coroutine\Client::connect »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::close

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::close — Description

Beschreibung

public Swoole\Coroutine\Client::close ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Client::close
  • Swoole\Coroutine\Client::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::connect

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::connect — Description

Beschreibung

public Swoole\Coroutine\Client::connect ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Client::connect
  • Swoole\Coroutine\Client::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::__construct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::__construct — Description

Beschreibung

public Swoole\Coroutine\Client::__construct ( )

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Description

  • « Swoole\Coroutine\Client::__construct
  • Swoole\Coroutine\Client::getpeername »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::__destruct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::__destruct — Description

Beschreibung

public Swoole\Coroutine\Client::__destruct ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Client::__destruct
  • Swoole\Coroutine\Client::getsockname »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::getpeername

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::getpeername — Description

Beschreibung

public Swoole\Coroutine\Client::getpeername ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Client::getpeername
  • Swoole\Coroutine\Client::isConnected »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::getsockname

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::getsockname — Description

Beschreibung

public Swoole\Coroutine\Client::getsockname ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Client::getsockname
  • Swoole\Coroutine\Client::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::isConnected

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::isConnected — Description

Beschreibung

public Swoole\Coroutine\Client::isConnected ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Client::isConnected
  • Swoole\Coroutine\Client::send »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::recv

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::recv — Description

Beschreibung

public Swoole\Coroutine\Client::recv ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Client::recv
  • Swoole\Coroutine\Client::sendfile »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::send

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::send — Description

Beschreibung

public Swoole\Coroutine\Client::send ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Client::send
  • Swoole\Coroutine\Client::sendto »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::sendfile

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::sendfile — Description

Beschreibung

public Swoole\Coroutine\Client::sendfile ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Client::sendfile
  • Swoole\Coroutine\Client::set »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::sendto

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::sendto — Description

Beschreibung

public Swoole\Coroutine\Client::sendto ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Client::sendto
  • Swoole\Coroutine\Http\Client::addFile »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::set

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::set — Description

Beschreibung

public Swoole\Coroutine\Client::set ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Client::set
  • Swoole\Coroutine\Http\Client::close »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::addFile

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::addFile — Description

Beschreibung

public Swoole\Coroutine\Http\Client::addFile ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::addFile
  • Swoole\Coroutine\Http\Client::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::close

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::close — Description

Beschreibung

public Swoole\Coroutine\Http\Client::close ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::close
  • Swoole\Coroutine\Http\Client::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::__construct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::__construct — Description

Beschreibung

public Swoole\Coroutine\Http\Client::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Description

  • « Swoole\Coroutine\Http\Client::__construct
  • Swoole\Coroutine\Http\Client::execute »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::__destruct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::__destruct — Description

Beschreibung

public Swoole\Coroutine\Http\Client::__destruct ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::__destruct
  • Swoole\Coroutine\Http\Client::get »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::execute

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::execute — Description

Beschreibung

public Swoole\Coroutine\Http\Client::execute ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::execute
  • Swoole\Coroutine\Http\Client::getDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::get

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::get — Description

Beschreibung

public Swoole\Coroutine\Http\Client::get ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::get
  • Swoole\Coroutine\Http\Client::isConnected »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::getDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::getDefer — Description

Beschreibung

public Swoole\Coroutine\Http\Client::getDefer ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::getDefer
  • Swoole\Coroutine\Http\Client::post »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::isConnected

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::isConnected — Description

Beschreibung

public Swoole\Coroutine\Http\Client::isConnected ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::isConnected
  • Swoole\Coroutine\Http\Client::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::post

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::post — Description

Beschreibung

public Swoole\Coroutine\Http\Client::post ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::post
  • Swoole\Coroutine\Http\Client::set »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::recv

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::recv — Description

Beschreibung

public Swoole\Coroutine\Http\Client::recv ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::recv
  • Swoole\Coroutine\Http\Client::setCookies »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::set

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::set — Description

Beschreibung

public Swoole\Coroutine\Http\Client::set ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::set
  • Swoole\Coroutine\Http\Client::setData »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::setCookies

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setCookies — Description

Beschreibung

public Swoole\Coroutine\Http\Client::setCookies ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::setCookies
  • Swoole\Coroutine\Http\Client::setDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::setData

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setData — Description

Beschreibung

public Swoole\Coroutine\Http\Client::setData ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::setData
  • Swoole\Coroutine\Http\Client::setHeaders »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::setDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setDefer — Description

Beschreibung

public Swoole\Coroutine\Http\Client::setDefer ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::setDefer
  • Swoole\Coroutine\Http\Client::setMethod »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::setHeaders

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setHeaders — Description

Beschreibung

public Swoole\Coroutine\Http\Client::setHeaders ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::setHeaders
  • Swoole\Coroutine\MySQL::close »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::setMethod

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setMethod — Description

Beschreibung

public Swoole\Coroutine\Http\Client::setMethod ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\Http\Client::setMethod
  • Swoole\Coroutine\MySQL::connect »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::close

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::close — Description

Beschreibung

public Swoole\Coroutine\MySQL::close ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\MySQL::close
  • Swoole\Coroutine\MySQL::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::connect

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::connect — Description

Beschreibung

public Swoole\Coroutine\MySQL::connect ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\MySQL::connect
  • Swoole\Coroutine\MySQL::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::__construct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::__construct — Description

Beschreibung

public Swoole\Coroutine\MySQL::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Description

  • « Swoole\Coroutine\MySQL::__construct
  • Swoole\Coroutine\MySQL::getDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::__destruct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::__destruct — Description

Beschreibung

public Swoole\Coroutine\MySQL::__destruct ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\MySQL::__destruct
  • Swoole\Coroutine\MySQL::query »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::getDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::getDefer — Description

Beschreibung

public Swoole\Coroutine\MySQL::getDefer ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\MySQL::getDefer
  • Swoole\Coroutine\MySQL::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::query

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::query — Description

Beschreibung

public Swoole\Coroutine\MySQL::query ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\MySQL::query
  • Swoole\Coroutine\MySQL::setDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::recv

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::recv — Description

Beschreibung

public Swoole\Coroutine\MySQL::recv ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\MySQL::recv
  • Swoole\Coroutine::getuid »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::setDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::setDefer — Description

Beschreibung

public Swoole\Coroutine\MySQL::setDefer ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine\MySQL::setDefer
  • Swoole\Coroutine::resume »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::getuid

(PECL swoole >= 2.0.0)

Swoole\Coroutine::getuid — Description

Beschreibung

public static Swoole\Coroutine::getuid ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine::getuid
  • Swoole\Coroutine::suspend »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::resume

(PECL swoole >= 2.0.0)

Swoole\Coroutine::resume — Description

Beschreibung

public static Swoole\Coroutine::resume ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\Coroutine::resume
  • Swoole\Event »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::suspend

(PECL swoole >= 2.0.0)

Swoole\Coroutine::suspend — Description

Beschreibung

public static Swoole\Coroutine::suspend ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Swoole\Event class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Event {
/* Methoden */
public static add ( int $fd , callable $read_callback , callable $write_callback = ? , string $events = ? ) : bool
public static defer ( mixed $callback ) : void
public static del ( string $fd ) : bool
public static exit ( ) : void
public static set ( int $fd , string $read_callback = ? , string $write_callback = ? , string $events = ? ) : bool
public static wait ( ) : void
public static write ( string $fd , string $data ) : void
}

Inhaltsverzeichnis

  • Swoole\Event::add — Add new callback functions of a socket into the EventLoop.
  • Swoole\Event::defer — Add a callback function to the next event loop.
  • Swoole\Event::del — Remove all event callback functions of a socket.
  • Swoole\Event::exit — Exit the eventloop, only available at client side.
  • Swoole\Event::set — Update the event callback functions of a socket.
  • Swoole\Event::wait — Description
  • Swoole\Event::write — Write data to the socket.


Add new callback functions of a socket into the EventLoop.

  • « Swoole\Event
  • Swoole\Event::defer »
  • PHP Manual
  • Swoole\Event
  • Add new callback functions of a socket into the EventLoop.

Swoole\Event::add

(PECL swoole >= 1.9.0)

Swoole\Event::add — Add new callback functions of a socket into the EventLoop.

Beschreibung

public static Swoole\Event::add ( int $fd , callable $read_callback , callable $write_callback = ? , string $events = ? ) : bool

Parameter-Liste

fd

read_callback

write_callback

events

Rückgabewerte


Add a callback function to the next event loop.

  • « Swoole\Event::add
  • Swoole\Event::del »
  • PHP Manual
  • Swoole\Event
  • Add a callback function to the next event loop.

Swoole\Event::defer

(PECL swoole >= 1.9.0)

Swoole\Event::defer — Add a callback function to the next event loop.

Beschreibung

public static Swoole\Event::defer ( mixed $callback ) : void

Parameter-Liste

callback

Rückgabewerte


Remove all event callback functions of a socket.

  • « Swoole\Event::defer
  • Swoole\Event::exit »
  • PHP Manual
  • Swoole\Event
  • Remove all event callback functions of a socket.

Swoole\Event::del

(PECL swoole >= 1.9.0)

Swoole\Event::del — Remove all event callback functions of a socket.

Beschreibung

public static Swoole\Event::del ( string $fd ) : bool

Parameter-Liste

fd

Rückgabewerte


Exit the eventloop, only available at client side.

  • « Swoole\Event::del
  • Swoole\Event::set »
  • PHP Manual
  • Swoole\Event
  • Exit the eventloop, only available at client side.

Swoole\Event::exit

(PECL swoole >= 1.9.0)

Swoole\Event::exit — Exit the eventloop, only available at client side.

Beschreibung

public static Swoole\Event::exit ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Update the event callback functions of a socket.

  • « Swoole\Event::exit
  • Swoole\Event::wait »
  • PHP Manual
  • Swoole\Event
  • Update the event callback functions of a socket.

Swoole\Event::set

(PECL swoole >= 1.9.0)

Swoole\Event::set — Update the event callback functions of a socket.

Beschreibung

public static Swoole\Event::set ( int $fd , string $read_callback = ? , string $write_callback = ? , string $events = ? ) : bool

Parameter-Liste

fd

read_callback

write_callback

events

Rückgabewerte


Description

  • « Swoole\Event::set
  • Swoole\Event::write »
  • PHP Manual
  • Swoole\Event
  • Description

Swoole\Event::wait

(PECL swoole >= 1.9.0)

Swoole\Event::wait — Description

Beschreibung

public static Swoole\Event::wait ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Write data to the socket.

  • « Swoole\Event::wait
  • Swoole\Exception »
  • PHP Manual
  • Swoole\Event
  • Write data to the socket.

Swoole\Event::write

(PECL swoole >= 1.9.0)

Swoole\Event::write — Write data to the socket.

Beschreibung

public static Swoole\Event::write ( string $fd , string $data ) : void

Parameter-Liste

fd

data

Rückgabewerte


The Swoole\Exception class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Exception extends Exception implements Throwable {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}


The Swoole\Http\Client class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Http\Client {
/* Eigenschaften */
public $errCode ;
public $sock ;
/* Methoden */
public addFile ( string $path , string $name , string $type = ? , string $filename = ? , string $offset = ? ) : void
public close ( ) : void
public __destruct ( ) : void
public download ( string $path , string $file , callable $callback , int $offset = ? ) : void
public execute ( string $path , string $callback ) : void
public get ( string $path , callable $callback ) : void
public isConnected ( ) : bool
public on ( string $event_name , callable $callback ) : void
public post ( string $path , string $data , callable $callback ) : void
public push ( string $data , string $opcode = ? , string $finish = ? ) : void
public set ( array $settings ) : void
public setCookies ( array $cookies ) : void
public setData ( string $data ) : ReturnType
public setHeaders ( array $headers ) : void
public setMethod ( string $method ) : void
public upgrade ( string $path , string $callback ) : void
}

Eigenschaften

errCode

sock

Inhaltsverzeichnis

  • Swoole\Http\Client::addFile — Add a file to the post form.
  • Swoole\Http\Client::close — Close the http connection.
  • Swoole\Http\Client::__construct — Construct the async HTTP client.
  • Swoole\Http\Client::__destruct — Destruct the HTTP client.
  • Swoole\Http\Client::download — Download a file from the remote server.
  • Swoole\Http\Client::execute — Send the HTTP request after setting the parameters.
  • Swoole\Http\Client::get — Send GET http request to the remote server.
  • Swoole\Http\Client::isConnected — Check if the HTTP connection is connected.
  • Swoole\Http\Client::on — Register callback function by event name.
  • Swoole\Http\Client::post — Send POST http request to the remote server.
  • Swoole\Http\Client::push — Push data to websocket client.
  • Swoole\Http\Client::set — Update the HTTP client paramters.
  • Swoole\Http\Client::setCookies — Set the http request cookies.
  • Swoole\Http\Client::setData — Set the HTTP request body data.
  • Swoole\Http\Client::setHeaders — Set the HTTP request headers.
  • Swoole\Http\Client::setMethod — Set the HTTP request method.
  • Swoole\Http\Client::upgrade — Upgrade to websocket protocol.


Add a file to the post form.

  • « Swoole\Http\Client
  • Swoole\Http\Client::close »
  • PHP Manual
  • Swoole\Http\Client
  • Add a file to the post form.

Swoole\Http\Client::addFile

(PECL swoole >= 1.9.0)

Swoole\Http\Client::addFile — Add a file to the post form.

Beschreibung

public Swoole\Http\Client::addFile ( string $path , string $name , string $type = ? , string $filename = ? , string $offset = ? ) : void

Parameter-Liste

path

name

type

filename

offset

Rückgabewerte


Close the http connection.

  • « Swoole\Http\Client::addFile
  • Swoole\Http\Client::__construct »
  • PHP Manual
  • Swoole\Http\Client
  • Close the http connection.

Swoole\Http\Client::close

(PECL swoole >= 1.9.0)

Swoole\Http\Client::close — Close the http connection.

Beschreibung

public Swoole\Http\Client::close ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Construct the async HTTP client.

  • « Swoole\Http\Client::close
  • Swoole\Http\Client::__destruct »
  • PHP Manual
  • Swoole\Http\Client
  • Construct the async HTTP client.

Swoole\Http\Client::__construct

(PECL swoole >= 1.9.0)

Swoole\Http\Client::__construct — Construct the async HTTP client.

Beschreibung

public Swoole\Http\Client::__construct ( string $host , string $port = ? , bool $ssl = ? )

Parameter-Liste

host

The hostname of the remote host.

port

The port number of the remote host.

ssl

Whether to enable SSL.


Destruct the HTTP client.

  • « Swoole\Http\Client::__construct
  • Swoole\Http\Client::download »
  • PHP Manual
  • Swoole\Http\Client
  • Destruct the HTTP client.

Swoole\Http\Client::__destruct

(PECL swoole >= 1.9.0)

Swoole\Http\Client::__destruct — Destruct the HTTP client.

Beschreibung

public Swoole\Http\Client::__destruct ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Download a file from the remote server.

  • « Swoole\Http\Client::__destruct
  • Swoole\Http\Client::execute »
  • PHP Manual
  • Swoole\Http\Client
  • Download a file from the remote server.

Swoole\Http\Client::download

(PECL swoole >= 1.9.0)

Swoole\Http\Client::download — Download a file from the remote server.

Beschreibung

public Swoole\Http\Client::download ( string $path , string $file , callable $callback , int $offset = ? ) : void

Parameter-Liste

path

file

callback

offset

Rückgabewerte


Send the HTTP request after setting the parameters.

  • « Swoole\Http\Client::download
  • Swoole\Http\Client::get »
  • PHP Manual
  • Swoole\Http\Client
  • Send the HTTP request after setting the parameters.

Swoole\Http\Client::execute

(PECL swoole >= 1.9.0)

Swoole\Http\Client::execute — Send the HTTP request after setting the parameters.

Beschreibung

public Swoole\Http\Client::execute ( string $path , string $callback ) : void

Parameter-Liste

path

callback

Rückgabewerte


Send GET http request to the remote server.

  • « Swoole\Http\Client::execute
  • Swoole\Http\Client::isConnected »
  • PHP Manual
  • Swoole\Http\Client
  • Send GET http request to the remote server.

Swoole\Http\Client::get

(PECL swoole >= 1.9.0)

Swoole\Http\Client::get — Send GET http request to the remote server.

Beschreibung

public Swoole\Http\Client::get ( string $path , callable $callback ) : void

Parameter-Liste

path

callback

Rückgabewerte


Check if the HTTP connection is connected.

  • « Swoole\Http\Client::get
  • Swoole\Http\Client::on »
  • PHP Manual
  • Swoole\Http\Client
  • Check if the HTTP connection is connected.

Swoole\Http\Client::isConnected

(PECL swoole >= 1.9.0)

Swoole\Http\Client::isConnected — Check if the HTTP connection is connected.

Beschreibung

public Swoole\Http\Client::isConnected ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Register callback function by event name.

  • « Swoole\Http\Client::isConnected
  • Swoole\Http\Client::post »
  • PHP Manual
  • Swoole\Http\Client
  • Register callback function by event name.

Swoole\Http\Client::on

(PECL swoole >= 1.9.0)

Swoole\Http\Client::on — Register callback function by event name.

Beschreibung

public Swoole\Http\Client::on ( string $event_name , callable $callback ) : void

Parameter-Liste

event_name

callback

Rückgabewerte


Send POST http request to the remote server.

  • « Swoole\Http\Client::on
  • Swoole\Http\Client::push »
  • PHP Manual
  • Swoole\Http\Client
  • Send POST http request to the remote server.

Swoole\Http\Client::post

(PECL swoole >= 1.9.0)

Swoole\Http\Client::post — Send POST http request to the remote server.

Beschreibung

public Swoole\Http\Client::post ( string $path , string $data , callable $callback ) : void

Parameter-Liste

path

data

callback

Rückgabewerte


Push data to websocket client.

  • « Swoole\Http\Client::post
  • Swoole\Http\Client::set »
  • PHP Manual
  • Swoole\Http\Client
  • Push data to websocket client.

Swoole\Http\Client::push

(PECL swoole >= 1.9.0)

Swoole\Http\Client::push — Push data to websocket client.

Beschreibung

public Swoole\Http\Client::push ( string $data , string $opcode = ? , string $finish = ? ) : void

Parameter-Liste

data

opcode

finish

Rückgabewerte


Update the HTTP client paramters.

  • « Swoole\Http\Client::push
  • Swoole\Http\Client::setCookies »
  • PHP Manual
  • Swoole\Http\Client
  • Update the HTTP client paramters.

Swoole\Http\Client::set

(PECL swoole >= 1.9.0)

Swoole\Http\Client::set — Update the HTTP client paramters.

Beschreibung

public Swoole\Http\Client::set ( array $settings ) : void

Parameter-Liste

settings

Rückgabewerte


Set the http request cookies.

  • « Swoole\Http\Client::set
  • Swoole\Http\Client::setData »
  • PHP Manual
  • Swoole\Http\Client
  • Set the http request cookies.

Swoole\Http\Client::setCookies

(PECL swoole >= 1.9.0)

Swoole\Http\Client::setCookies — Set the http request cookies.

Beschreibung

public Swoole\Http\Client::setCookies ( array $cookies ) : void

Parameter-Liste

cookies

Rückgabewerte


Set the HTTP request body data.

  • « Swoole\Http\Client::setCookies
  • Swoole\Http\Client::setHeaders »
  • PHP Manual
  • Swoole\Http\Client
  • Set the HTTP request body data.

Swoole\Http\Client::setData

(PECL swoole >= 1.9.0)

Swoole\Http\Client::setData — Set the HTTP request body data.

Beschreibung

public Swoole\Http\Client::setData ( string $data ) : ReturnType

The HTTP method will be changed to be POST.

Parameter-Liste

data

Rückgabewerte


Set the HTTP request headers.

  • « Swoole\Http\Client::setData
  • Swoole\Http\Client::setMethod »
  • PHP Manual
  • Swoole\Http\Client
  • Set the HTTP request headers.

Swoole\Http\Client::setHeaders

(PECL swoole >= 1.9.0)

Swoole\Http\Client::setHeaders — Set the HTTP request headers.

Beschreibung

public Swoole\Http\Client::setHeaders ( array $headers ) : void

Parameter-Liste

headers

Rückgabewerte


Set the HTTP request method.

  • « Swoole\Http\Client::setHeaders
  • Swoole\Http\Client::upgrade »
  • PHP Manual
  • Swoole\Http\Client
  • Set the HTTP request method.

Swoole\Http\Client::setMethod

(PECL swoole >= 1.9.0)

Swoole\Http\Client::setMethod — Set the HTTP request method.

Beschreibung

public Swoole\Http\Client::setMethod ( string $method ) : void

Parameter-Liste

method

Rückgabewerte


Upgrade to websocket protocol.

  • « Swoole\Http\Client::setMethod
  • Swoole\Http\Request »
  • PHP Manual
  • Swoole\Http\Client
  • Upgrade to websocket protocol.

Swoole\Http\Client::upgrade

(PECL swoole >= 1.9.0)

Swoole\Http\Client::upgrade — Upgrade to websocket protocol.

Beschreibung

public Swoole\Http\Client::upgrade ( string $path , string $callback ) : void

Parameter-Liste

path

callback

Rückgabewerte


The Swoole\Http\Request class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Http\Request {
/* Methoden */
public __destruct ( ) : void
public rawcontent ( ) : string
}

Inhaltsverzeichnis

  • Swoole\Http\Request::__destruct — Destruct the HTTP request.
  • Swoole\Http\Request::rawcontent — Get the raw HTTP POST body.


Destruct the HTTP request.

  • « Swoole\Http\Request
  • Swoole\Http\Request::rawcontent »
  • PHP Manual
  • Swoole\Http\Request
  • Destruct the HTTP request.

Swoole\Http\Request::__destruct

(PECL swoole >= 1.9.0)

Swoole\Http\Request::__destruct — Destruct the HTTP request.

Beschreibung

public Swoole\Http\Request::__destruct ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the raw HTTP POST body.

  • « Swoole\Http\Request::__destruct
  • Swoole\Http\Response »
  • PHP Manual
  • Swoole\Http\Request
  • Get the raw HTTP POST body.

Swoole\Http\Request::rawcontent

(PECL swoole >= 1.9.0)

Swoole\Http\Request::rawcontent — Get the raw HTTP POST body.

Beschreibung

public Swoole\Http\Request::rawcontent ( ) : string

This method is used for the POST data which isn't in the form of `application/x-www-form-urlencoded`.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Swoole\Http\Response class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Http\Response {
/* Methoden */
public cookie ( string $name , string $value = ? , string $expires = ? , string $path = ? , string $domain = ? , string $secure = ? , string $httponly = ? ) : string
public __destruct ( ) : void
public end ( string $content = ? ) : void
public gzip ( string $compress_level = ? ) : ReturnType
public header ( string $key , string $value , string $ucwords = ? ) : void
public initHeader ( ) : ReturnType
public rawcookie ( string $name , string $value = ? , string $expires = ? , string $path = ? , string $domain = ? , string $secure = ? , string $httponly = ? ) : ReturnType
public sendfile ( string $filename , int $offset = ? ) : ReturnType
public status ( string $http_code ) : ReturnType
public write ( string $content ) : void
}

Inhaltsverzeichnis

  • Swoole\Http\Response::cookie — Set the cookies of the HTTP response.
  • Swoole\Http\Response::__destruct — Destruct the HTTP response.
  • Swoole\Http\Response::end — Send data for the HTTP request and finish the response.
  • Swoole\Http\Response::gzip — Enable the gzip of response content.
  • Swoole\Http\Response::header — Set the HTTP response headers.
  • Swoole\Http\Response::initHeader — Init the HTTP response header.
  • Swoole\Http\Response::rawcookie — Set the raw cookies to the HTTP response.
  • Swoole\Http\Response::sendfile — Send file through the HTTP response.
  • Swoole\Http\Response::status — Set the status code of the HTTP response.
  • Swoole\Http\Response::write — Append HTTP body content to the HTTP response.


Set the cookies of the HTTP response.

  • « Swoole\Http\Response
  • Swoole\Http\Response::__destruct »
  • PHP Manual
  • Swoole\Http\Response
  • Set the cookies of the HTTP response.

Swoole\Http\Response::cookie

(PECL swoole >= 1.9.0)

Swoole\Http\Response::cookie — Set the cookies of the HTTP response.

Beschreibung

public Swoole\Http\Response::cookie ( string $name , string $value = ? , string $expires = ? , string $path = ? , string $domain = ? , string $secure = ? , string $httponly = ? ) : string

Parameter-Liste

name

value

expires

path

domain

secure

httponly

Rückgabewerte


Destruct the HTTP response.

  • « Swoole\Http\Response::cookie
  • Swoole\Http\Response::end »
  • PHP Manual
  • Swoole\Http\Response
  • Destruct the HTTP response.

Swoole\Http\Response::__destruct

(PECL swoole >= 1.9.0)

Swoole\Http\Response::__destruct — Destruct the HTTP response.

Beschreibung

public Swoole\Http\Response::__destruct ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Send data for the HTTP request and finish the response.

  • « Swoole\Http\Response::__destruct
  • Swoole\Http\Response::gzip »
  • PHP Manual
  • Swoole\Http\Response
  • Send data for the HTTP request and finish the response.

Swoole\Http\Response::end

(PECL swoole >= 1.9.0)

Swoole\Http\Response::end — Send data for the HTTP request and finish the response.

Beschreibung

public Swoole\Http\Response::end ( string $content = ? ) : void

Parameter-Liste

content

Rückgabewerte


Enable the gzip of response content.

  • « Swoole\Http\Response::end
  • Swoole\Http\Response::header »
  • PHP Manual
  • Swoole\Http\Response
  • Enable the gzip of response content.

Swoole\Http\Response::gzip

(PECL swoole >= 1.9.0)

Swoole\Http\Response::gzip — Enable the gzip of response content.

Beschreibung

public Swoole\Http\Response::gzip ( string $compress_level = ? ) : ReturnType

The header about Content-Encoding will be added automatically.

Parameter-Liste

compress_level

Rückgabewerte


Set the HTTP response headers.

  • « Swoole\Http\Response::gzip
  • Swoole\Http\Response::initHeader »
  • PHP Manual
  • Swoole\Http\Response
  • Set the HTTP response headers.

Swoole\Http\Response::header

(PECL swoole >= 1.9.0)

Swoole\Http\Response::header — Set the HTTP response headers.

Beschreibung

public Swoole\Http\Response::header ( string $key , string $value , string $ucwords = ? ) : void

Parameter-Liste

key

value

ucwords

Rückgabewerte


Init the HTTP response header.

  • « Swoole\Http\Response::header
  • Swoole\Http\Response::rawcookie »
  • PHP Manual
  • Swoole\Http\Response
  • Init the HTTP response header.

Swoole\Http\Response::initHeader

(PECL swoole >= 1.9.0)

Swoole\Http\Response::initHeader — Init the HTTP response header.

Beschreibung

public Swoole\Http\Response::initHeader ( ) : ReturnType

Init the HTTP response header.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Set the raw cookies to the HTTP response.

  • « Swoole\Http\Response::initHeader
  • Swoole\Http\Response::sendfile »
  • PHP Manual
  • Swoole\Http\Response
  • Set the raw cookies to the HTTP response.

Swoole\Http\Response::rawcookie

(PECL swoole >= 1.9.0)

Swoole\Http\Response::rawcookie — Set the raw cookies to the HTTP response.

Beschreibung

public Swoole\Http\Response::rawcookie ( string $name , string $value = ? , string $expires = ? , string $path = ? , string $domain = ? , string $secure = ? , string $httponly = ? ) : ReturnType

Parameter-Liste

name

value

expires

path

domain

secure

httponly

Rückgabewerte


Send file through the HTTP response.

  • « Swoole\Http\Response::rawcookie
  • Swoole\Http\Response::status »
  • PHP Manual
  • Swoole\Http\Response
  • Send file through the HTTP response.

Swoole\Http\Response::sendfile

(PECL swoole >= 1.9.0)

Swoole\Http\Response::sendfile — Send file through the HTTP response.

Beschreibung

public Swoole\Http\Response::sendfile ( string $filename , int $offset = ? ) : ReturnType

Send file through the HTTP response.

Parameter-Liste

filename

offset

Rückgabewerte


Set the status code of the HTTP response.

  • « Swoole\Http\Response::sendfile
  • Swoole\Http\Response::write »
  • PHP Manual
  • Swoole\Http\Response
  • Set the status code of the HTTP response.

Swoole\Http\Response::status

(PECL swoole >= 1.9.0)

Swoole\Http\Response::status — Set the status code of the HTTP response.

Beschreibung

public Swoole\Http\Response::status ( string $http_code ) : ReturnType

Set the status code of the HTTP response.

Parameter-Liste

http_code

Rückgabewerte


Append HTTP body content to the HTTP response.

  • « Swoole\Http\Response::status
  • Swoole\Http\Server »
  • PHP Manual
  • Swoole\Http\Response
  • Append HTTP body content to the HTTP response.

Swoole\Http\Response::write

(PECL swoole >= 1.9.0)

Swoole\Http\Response::write — Append HTTP body content to the HTTP response.

Beschreibung

public Swoole\Http\Response::write ( string $content ) : void

Append HTTP body content to the HTTP response.

Parameter-Liste

content

Rückgabewerte


The Swoole\Http\Server class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Http\Server extends Swoole\Server {
/* Methoden */
public on ( string $event_name , callable $callback ) : void
public start ( ) : void
/* Geerbte Methoden */
public Swoole\Server::addlistener ( string $host , int $port , string $socket_type ) : void
public Swoole\Server::addProcess ( swoole_process $process ) : bool
public Swoole\Server::after ( int $after_time_ms , callable $callback , string $param = ? ) : ReturnType
public Swoole\Server::bind ( int $fd , int $uid ) : bool
public Swoole\Server::clearTimer ( int $timer_id ) : void
swoole_timer_clear ( int $timer_id ) : void
public Swoole\Server::close ( int $fd , bool $reset = ? ) : bool
public Swoole\Server::confirm ( int $fd ) : bool
public Swoole\Server::connection_info ( int $fd , int $reactor_id = ? ) : array
public Swoole\Server::connection_list ( int $start_fd , int $pagesize = ? ) : array
public Swoole\Server::defer ( callable $callback ) : void
public Swoole\Server\Port::__destruct ( ) : void
public Swoole\Server\Port::on ( string $event_name , callable $callback ) : ReturnType
public Swoole\Server\Port::set ( array $settings ) : void
public Swoole\Server::exist ( int $fd ) : bool
public Swoole\Server::finish ( string $data ) : void
public Swoole\Server::getClientInfo ( int $fd , int $reactor_id = ? ) : ReturnType
public Swoole\Server::getClientList ( int $start_fd , int $pagesize = ? ) : array
public Swoole\Server::getLastError ( ) : int
public Swoole\Server::heartbeat ( bool $if_close_connection ) : mixed
public Swoole\Server::listen ( string $host , int $port , string $socket_type ) : bool
public Swoole\Server::on ( string $event_name , callable $callback ) : void
public Swoole\Server::pause ( int $fd ) : void
public Swoole\Server::protect ( int $fd , bool $is_protected = ? ) : void
public Swoole\Server::reload ( ) : bool
public Swoole\Server::resume ( int $fd ) : void
public Swoole\Server::send ( int $fd , string $data , int $reactor_id = ? ) : bool
public Swoole\Server::sendfile ( int $fd , string $filename , int $offset = ? ) : bool
public Swoole\Server::sendMessage ( int $worker_id , string $data ) : bool
public Swoole\Server::sendto ( string $ip , int $port , string $data , string $server_socket = ? ) : bool
public Swoole\Server::sendwait ( int $fd , string $data ) : bool
public Swoole\Server::set ( array $settings ) : ReturnType
public Swoole\Server::shutdown ( ) : void
public Swoole\Server::start ( ) : void
public Swoole\Server::stats ( ) : array
public Swoole\Server::stop ( int $worker_id = ? ) : bool
public Swoole\Server::task ( string $data , int $dst_worker_id = ? , callable $callback = ? ) : mixed
public Swoole\Server::taskwait ( string $data , float $timeout = ? , int $worker_id = ? ) : void
public Swoole\Server::taskWaitMulti ( array $tasks , double $timeout_ms = ? ) : void
public Swoole\Server::tick ( int $interval_ms , callable $callback ) : void
}

Inhaltsverzeichnis

  • Swoole\Http\Server::on — Bind callback function to HTTP server by event name.
  • Swoole\Http\Server::start — Start the swoole http server.


Bind callback function to HTTP server by event name.

  • « Swoole\Http\Server
  • Swoole\Http\Server::start »
  • PHP Manual
  • Swoole\Http\Server
  • Bind callback function to HTTP server by event name.

Swoole\Http\Server::on

(PECL swoole >= 1.9.0)

Swoole\Http\Server::on — Bind callback function to HTTP server by event name.

Beschreibung

public Swoole\Http\Server::on ( string $event_name , callable $callback ) : void

Bind callback function to HTTP server by event name.

Parameter-Liste

event_name

callback

Rückgabewerte


Start the swoole http server.

  • « Swoole\Http\Server::on
  • Swoole\Lock »
  • PHP Manual
  • Swoole\Http\Server
  • Start the swoole http server.

Swoole\Http\Server::start

(PECL swoole >= 1.9.0)

Swoole\Http\Server::start — Start the swoole http server.

Beschreibung

public Swoole\Http\Server::start ( ) : void

Start the swoole http server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Swoole\Lock class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Lock {
/* Methoden */
public __destruct ( ) : void
public lock_read ( ) : void
public lock ( ) : void
public trylock_read ( ) : void
public trylock ( ) : void
public unlock ( ) : void
}

Inhaltsverzeichnis

  • Swoole\Lock::__construct — Construct a memory lock.
  • Swoole\Lock::__destruct — Destory a Swoole memory lock.
  • Swoole\Lock::lock_read — Lock a read-write lock for reading.
  • Swoole\Lock::lock — Try to acquire the lock. It will block if the lock is not available.
  • Swoole\Lock::trylock_read — Try to lock a read-write lock for reading and return straight away even the lock is not available.
  • Swoole\Lock::trylock — Try to acquire the lock and return straight away even the lock is not available.
  • Swoole\Lock::unlock — Release the lock.


Construct a memory lock.

  • « Swoole\Lock
  • Swoole\Lock::__destruct »
  • PHP Manual
  • Swoole\Lock
  • Construct a memory lock.

Swoole\Lock::__construct

(PECL swoole >= 1.9.0)

Swoole\Lock::__construct — Construct a memory lock.

Beschreibung

public Swoole\Lock::__construct ( string $type = ? , string $file_lock_location = ? )

Swoole lock is used for data synchronization between multiple theads or processes.

Parameter-Liste

type

file_lock_location


Destory a Swoole memory lock.

  • « Swoole\Lock::__construct
  • Swoole\Lock::lock_read »
  • PHP Manual
  • Swoole\Lock
  • Destory a Swoole memory lock.

Swoole\Lock::__destruct

(PECL swoole >= 1.9.0)

Swoole\Lock::__destruct — Destory a Swoole memory lock.

Beschreibung

public Swoole\Lock::__destruct ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Lock a read-write lock for reading.

  • « Swoole\Lock::__destruct
  • Swoole\Lock::lock »
  • PHP Manual
  • Swoole\Lock
  • Lock a read-write lock for reading.

Swoole\Lock::lock_read

(PECL swoole >= 1.9.0)

Swoole\Lock::lock_read — Lock a read-write lock for reading.

Beschreibung

public Swoole\Lock::lock_read ( ) : void

Lock a read-write lock for reading.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Try to acquire the lock. It will block if the lock is not available.

  • « Swoole\Lock::lock_read
  • Swoole\Lock::trylock_read »
  • PHP Manual
  • Swoole\Lock
  • Try to acquire the lock. It will block if the lock is not available.

Swoole\Lock::lock

(PECL swoole >= 1.9.0)

Swoole\Lock::lock — Try to acquire the lock. It will block if the lock is not available.

Beschreibung

public Swoole\Lock::lock ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Try to lock a read-write lock for reading and return straight away even the lock is not available.

  • « Swoole\Lock::lock
  • Swoole\Lock::trylock »
  • PHP Manual
  • Swoole\Lock
  • Try to lock a read-write lock for reading and return straight away even the lock is not available.

Swoole\Lock::trylock_read

(PECL swoole >= 1.9.0)

Swoole\Lock::trylock_read — Try to lock a read-write lock for reading and return straight away even the lock is not available.

Beschreibung

public Swoole\Lock::trylock_read ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Try to acquire the lock and return straight away even the lock is not available.

  • « Swoole\Lock::trylock_read
  • Swoole\Lock::unlock »
  • PHP Manual
  • Swoole\Lock
  • Try to acquire the lock and return straight away even the lock is not available.

Swoole\Lock::trylock

(PECL swoole >= 1.9.0)

Swoole\Lock::trylock — Try to acquire the lock and return straight away even the lock is not available.

Beschreibung

public Swoole\Lock::trylock ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Release the lock.

  • « Swoole\Lock::trylock
  • Swoole\Mmap »
  • PHP Manual
  • Swoole\Lock
  • Release the lock.

Swoole\Lock::unlock

(PECL swoole >= 1.9.0)

Swoole\Lock::unlock — Release the lock.

Beschreibung

public Swoole\Lock::unlock ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Swoole\Mmap class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Mmap {
/* Methoden */
public static open ( string $filename , string $size = ? , string $offset = ? ) : ReturnType
}

Inhaltsverzeichnis

  • Swoole\Mmap::open — Map a file into memory and return the stream resource which can be used by PHP stream operations.


Map a file into memory and return the stream resource which can be used by PHP stream operations.

  • « Swoole\Mmap
  • Swoole\MySQL »
  • PHP Manual
  • Swoole\Mmap
  • Map a file into memory and return the stream resource which can be used by PHP stream operations.

Swoole\Mmap::open

(PECL swoole >= 1.9.0)

Swoole\Mmap::open — Map a file into memory and return the stream resource which can be used by PHP stream operations.

Beschreibung

public static Swoole\Mmap::open ( string $filename , string $size = ? , string $offset = ? ) : ReturnType

Parameter-Liste

filename

size

offset

Rückgabewerte


The Swoole\MySQL class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\MySQL {
/* Methoden */
public close ( ) : void
public connect ( array $server_config , callable $callback ) : void
public __destruct ( ) : void
public getBuffer ( ) : ReturnType
public on ( string $event_name , callable $callback ) : void
public query ( string $sql , callable $callback ) : ReturnType
}

Inhaltsverzeichnis

  • Swoole\MySQL::close — Close the async MySQL connection.
  • Swoole\MySQL::connect — Connect to the remote MySQL server.
  • Swoole\MySQL::__construct — Construct an async MySQL client.
  • Swoole\MySQL::__destruct — Destory the async MySQL client.
  • Swoole\MySQL::getBuffer — Description
  • Swoole\MySQL::on — Register callback function based on event name.
  • Swoole\MySQL::query — Run the SQL query.


Close the async MySQL connection.

  • « Swoole\MySQL
  • Swoole\MySQL::connect »
  • PHP Manual
  • Swoole\MySQL
  • Close the async MySQL connection.

Swoole\MySQL::close

(PECL swoole >= 1.9.0)

Swoole\MySQL::close — Close the async MySQL connection.

Beschreibung

public Swoole\MySQL::close ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Connect to the remote MySQL server.

  • « Swoole\MySQL::close
  • Swoole\MySQL::__construct »
  • PHP Manual
  • Swoole\MySQL
  • Connect to the remote MySQL server.

Swoole\MySQL::connect

(PECL swoole >= 1.9.0)

Swoole\MySQL::connect — Connect to the remote MySQL server.

Beschreibung

public Swoole\MySQL::connect ( array $server_config , callable $callback ) : void

Connect to the remote MySQL server.

Parameter-Liste

server_config

callback

Rückgabewerte


Construct an async MySQL client.

  • « Swoole\MySQL::connect
  • Swoole\MySQL::__destruct »
  • PHP Manual
  • Swoole\MySQL
  • Construct an async MySQL client.

Swoole\MySQL::__construct

(PECL swoole >= 1.9.0)

Swoole\MySQL::__construct — Construct an async MySQL client.

Beschreibung

public Swoole\MySQL::__construct ( )

Construct an async MySQL client.

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Destory the async MySQL client.

  • « Swoole\MySQL::__construct
  • Swoole\MySQL::getBuffer »
  • PHP Manual
  • Swoole\MySQL
  • Destory the async MySQL client.

Swoole\MySQL::__destruct

(PECL swoole >= 1.9.0)

Swoole\MySQL::__destruct — Destory the async MySQL client.

Beschreibung

public Swoole\MySQL::__destruct ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Description

  • « Swoole\MySQL::__destruct
  • Swoole\MySQL::on »
  • PHP Manual
  • Swoole\MySQL
  • Description

Swoole\MySQL::getBuffer

(PECL swoole >= 1.9.0)

Swoole\MySQL::getBuffer — Description

Beschreibung

public Swoole\MySQL::getBuffer ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Register callback function based on event name.

  • « Swoole\MySQL::getBuffer
  • Swoole\MySQL::query »
  • PHP Manual
  • Swoole\MySQL
  • Register callback function based on event name.

Swoole\MySQL::on

(PECL swoole >= 1.9.0)

Swoole\MySQL::on — Register callback function based on event name.

Beschreibung

public Swoole\MySQL::on ( string $event_name , callable $callback ) : void

Register callback function based on event name, current only 'close' event is supported.

Parameter-Liste

event_name

callback

Rückgabewerte


Run the SQL query.

  • « Swoole\MySQL::on
  • Swoole\MySQL\Exception »
  • PHP Manual
  • Swoole\MySQL
  • Run the SQL query.

Swoole\MySQL::query

(PECL swoole >= 1.9.0)

Swoole\MySQL::query — Run the SQL query.

Beschreibung

public Swoole\MySQL::query ( string $sql , callable $callback ) : ReturnType

Parameter-Liste

sql

callback

Rückgabewerte


The Swoole\MySQL\Exception class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\MySQL\Exception extends Exception implements Throwable {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}


The Swoole\Process class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Process {
/* Constants */
const int IPC_NOWAIT = 256 ;
/* Methoden */
public static alarm ( int $interval_usec ) : void
public close ( ) : void
public static daemon ( bool $nochdir = ? , bool $noclose = ? ) : void
public __destruct ( ) : void
public exec ( string $exec_file , string $args ) : ReturnType
public exit ( string $exit_code = ? ) : void
public freeQueue ( ) : void
public static kill ( int $pid , string $signal_no = ? ) : void
public name ( string $process_name ) : void
public pop ( int $maxsize = ? ) : mixed
public push ( string $data ) : bool
public read ( int $maxsize = ? ) : string
public static signal ( string $signal_no , callable $callback ) : void
public start ( ) : void
public statQueue ( ) : array
public useQueue ( int $key , int $mode = ? ) : bool
public static wait ( bool $blocking = ? ) : array
public write ( string $data ) : int
}

Vordefinierte Konstanten

Swoole\Process::IPC_NOWAIT

Inhaltsverzeichnis

  • Swoole\Process::alarm — High precision timer which triggers signal with fixed interval.
  • Swoole\Process::close — Close the pipe to the child process.
  • Swoole\Process::__construct — Construct a process.
  • Swoole\Process::daemon — Change the process to be a daemon process.
  • Swoole\Process::__destruct — Destory the process.
  • Swoole\Process::exec — Execute system commands.
  • Swoole\Process::exit — Stop the child processes.
  • Swoole\Process::freeQueue — Destroy the message queue created by swoole_process::useQueue.
  • Swoole\Process::kill — Send signal to the child process.
  • Swoole\Process::name — Set name of the process.
  • Swoole\Process::pop — Read and pop data from the message queue.
  • Swoole\Process::push — Write and push data into the message queue.
  • Swoole\Process::read — Read data sending to the process.
  • Swoole\Process::signal — Send signal to the child processes.
  • Swoole\Process::start — Start the process.
  • Swoole\Process::statQueue — Get the stats of the message queue used as the communication method between processes.
  • Swoole\Process::useQueue — Create a message queue as the communication method between the parent process and child processes.
  • Swoole\Process::wait — Wait for the events of child processes.
  • Swoole\Process::write — Write data into the pipe and communicate with the parent process or child processes.


High precision timer which triggers signal with fixed interval.

  • « Swoole\Process
  • Swoole\Process::close »
  • PHP Manual
  • Swoole\Process
  • High precision timer which triggers signal with fixed interval.

Swoole\Process::alarm

(PECL swoole >= 1.9.0)

Swoole\Process::alarm — High precision timer which triggers signal with fixed interval.

Beschreibung

public static Swoole\Process::alarm ( int $interval_usec ) : void

Parameter-Liste

interval_usec

Rückgabewerte


Close the pipe to the child process.

  • « Swoole\Process::alarm
  • Swoole\Process::__construct »
  • PHP Manual
  • Swoole\Process
  • Close the pipe to the child process.

Swoole\Process::close

(PECL swoole >= 1.9.0)

Swoole\Process::close — Close the pipe to the child process.

Beschreibung

public Swoole\Process::close ( ) : void

Close the pipe to the child process.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Construct a process.

  • « Swoole\Process::close
  • Swoole\Process::daemon »
  • PHP Manual
  • Swoole\Process
  • Construct a process.

Swoole\Process::__construct

(PECL swoole >= 1.9.0)

Swoole\Process::__construct — Construct a process.

Beschreibung

public Swoole\Process::__construct ( callable $callback , bool $redirect_stdin_and_stdout = ? , int $pipe_type = ? )

Parameter-Liste

callback

redirect_stdin_and_stdout

pipe_type


Change the process to be a daemon process.

  • « Swoole\Process::__construct
  • Swoole\Process::__destruct »
  • PHP Manual
  • Swoole\Process
  • Change the process to be a daemon process.

Swoole\Process::daemon

(PECL swoole >= 1.9.0)

Swoole\Process::daemon — Change the process to be a daemon process.

Beschreibung

public static Swoole\Process::daemon ( bool $nochdir = ? , bool $noclose = ? ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

nochdir

noclose

Rückgabewerte


Destory the process.

  • « Swoole\Process::daemon
  • Swoole\Process::exec »
  • PHP Manual
  • Swoole\Process
  • Destory the process.

Swoole\Process::__destruct

(PECL swoole >= 1.9.0)

Swoole\Process::__destruct — Destory the process.

Beschreibung

public Swoole\Process::__destruct ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Execute system commands.

  • « Swoole\Process::__destruct
  • Swoole\Process::exit »
  • PHP Manual
  • Swoole\Process
  • Execute system commands.

Swoole\Process::exec

(PECL swoole >= 1.9.0)

Swoole\Process::exec — Execute system commands.

Beschreibung

public Swoole\Process::exec ( string $exec_file , string $args ) : ReturnType

The process will be replaced to be the system command process, but the pipe to the parent process will be kept.

Parameter-Liste

exec_file

args

Rückgabewerte


Stop the child processes.

  • « Swoole\Process::exec
  • Swoole\Process::freeQueue »
  • PHP Manual
  • Swoole\Process
  • Stop the child processes.

Swoole\Process::exit

(PECL swoole >= 1.9.0)

Swoole\Process::exit — Stop the child processes.

Beschreibung

public Swoole\Process::exit ( string $exit_code = ? ) : void

Parameter-Liste

exit_code

Rückgabewerte


Destroy the message queue created by swoole_process::useQueue.

  • « Swoole\Process::exit
  • Swoole\Process::kill »
  • PHP Manual
  • Swoole\Process
  • Destroy the message queue created by swoole_process::useQueue.

Swoole\Process::freeQueue

(PECL swoole >= 1.9.0)

Swoole\Process::freeQueue — Destroy the message queue created by swoole_process::useQueue.

Beschreibung

public Swoole\Process::freeQueue ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Send signal to the child process.

  • « Swoole\Process::freeQueue
  • Swoole\Process::name »
  • PHP Manual
  • Swoole\Process
  • Send signal to the child process.

Swoole\Process::kill

(PECL swoole >= 1.9.0)

Swoole\Process::kill — Send signal to the child process.

Beschreibung

public static Swoole\Process::kill ( int $pid , string $signal_no = ? ) : void

Send signal to the child process.

Parameter-Liste

pid

signal_no

Rückgabewerte


Set name of the process.

  • « Swoole\Process::kill
  • Swoole\Process::pop »
  • PHP Manual
  • Swoole\Process
  • Set name of the process.

Swoole\Process::name

(PECL swoole >= 1.9.0)

Swoole\Process::name — Set name of the process.

Beschreibung

public Swoole\Process::name ( string $process_name ) : void

Parameter-Liste

process_name

Rückgabewerte


Read and pop data from the message queue.

  • « Swoole\Process::name
  • Swoole\Process::push »
  • PHP Manual
  • Swoole\Process
  • Read and pop data from the message queue.

Swoole\Process::pop

(PECL swoole >= 1.9.0)

Swoole\Process::pop — Read and pop data from the message queue.

Beschreibung

public Swoole\Process::pop ( int $maxsize = ? ) : mixed

Parameter-Liste

maxsize

Rückgabewerte


Write and push data into the message queue.

  • « Swoole\Process::pop
  • Swoole\Process::read »
  • PHP Manual
  • Swoole\Process
  • Write and push data into the message queue.

Swoole\Process::push

(PECL swoole >= 1.9.0)

Swoole\Process::push — Write and push data into the message queue.

Beschreibung

public Swoole\Process::push ( string $data ) : bool

Parameter-Liste

data

Rückgabewerte


Read data sending to the process.

  • « Swoole\Process::push
  • Swoole\Process::signal »
  • PHP Manual
  • Swoole\Process
  • Read data sending to the process.

Swoole\Process::read

(PECL swoole >= 1.9.0)

Swoole\Process::read — Read data sending to the process.

Beschreibung

public Swoole\Process::read ( int $maxsize = ? ) : string

Parameter-Liste

maxsize

Rückgabewerte


Send signal to the child processes.

  • « Swoole\Process::read
  • Swoole\Process::start »
  • PHP Manual
  • Swoole\Process
  • Send signal to the child processes.

Swoole\Process::signal

(PECL swoole >= 1.9.0)

Swoole\Process::signal — Send signal to the child processes.

Beschreibung

public static Swoole\Process::signal ( string $signal_no , callable $callback ) : void

Parameter-Liste

signal_no

callback

Rückgabewerte

If signal sent successfully, it returns TRUE, otherwise it returns FALSE.


Start the process.

  • « Swoole\Process::signal
  • Swoole\Process::statQueue »
  • PHP Manual
  • Swoole\Process
  • Start the process.

Swoole\Process::start

(PECL swoole >= 1.9.0)

Swoole\Process::start — Start the process.

Beschreibung

public Swoole\Process::start ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the stats of the message queue used as the communication method between processes.

  • « Swoole\Process::start
  • Swoole\Process::useQueue »
  • PHP Manual
  • Swoole\Process
  • Get the stats of the message queue used as the communication method between processes.

Swoole\Process::statQueue

(PECL swoole >= 1.9.0)

Swoole\Process::statQueue — Get the stats of the message queue used as the communication method between processes.

Beschreibung

public Swoole\Process::statQueue ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The array of status of the message queue.


Create a message queue as the communication method between the parent process and child processes.

  • « Swoole\Process::statQueue
  • Swoole\Process::wait »
  • PHP Manual
  • Swoole\Process
  • Create a message queue as the communication method between the parent process and child processes.

Swoole\Process::useQueue

(PECL swoole >= 1.9.0)

Swoole\Process::useQueue — Create a message queue as the communication method between the parent process and child processes.

Beschreibung

public Swoole\Process::useQueue ( int $key , int $mode = ? ) : bool

Parameter-Liste

key

mode

Rückgabewerte


Wait for the events of child processes.

  • « Swoole\Process::useQueue
  • Swoole\Process::write »
  • PHP Manual
  • Swoole\Process
  • Wait for the events of child processes.

Swoole\Process::wait

(PECL swoole >= 1.9.0)

Swoole\Process::wait — Wait for the events of child processes.

Beschreibung

public static Swoole\Process::wait ( bool $blocking = ? ) : array

Parameter-Liste

blocking

Rückgabewerte


Write data into the pipe and communicate with the parent process or child processes.

  • « Swoole\Process::wait
  • Swoole\Redis\Server »
  • PHP Manual
  • Swoole\Process
  • Write data into the pipe and communicate with the parent process or child processes.

Swoole\Process::write

(PECL swoole >= 1.9.0)

Swoole\Process::write — Write data into the pipe and communicate with the parent process or child processes.

Beschreibung

public Swoole\Process::write ( string $data ) : int

Parameter-Liste

data

Rückgabewerte


The Swoole\Redis\Server class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Redis\Server extends Swoole\Server {
/* Constants */
const int NIL = 1 ;
const int ERROR = 0 ;
const int STATUS = 2 ;
const int INT = 3 ;
const int STRING = 4 ;
const int SET = 5 ;
const int MAP = 6 ;
/* Methoden */
public static format ( string $type , string $value = ? ) : ReturnType
public setHandler ( string $command , string $callback , string $number_of_string_param = ? , string $type_of_array_param = ? ) : ReturnType
public start ( ) : ReturnType
/* Geerbte Methoden */
public Swoole\Server::addlistener ( string $host , int $port , string $socket_type ) : void
public Swoole\Server::addProcess ( swoole_process $process ) : bool
public Swoole\Server::after ( int $after_time_ms , callable $callback , string $param = ? ) : ReturnType
public Swoole\Server::bind ( int $fd , int $uid ) : bool
public Swoole\Server::clearTimer ( int $timer_id ) : void
swoole_timer_clear ( int $timer_id ) : void
public Swoole\Server::close ( int $fd , bool $reset = ? ) : bool
public Swoole\Server::confirm ( int $fd ) : bool
public Swoole\Server::connection_info ( int $fd , int $reactor_id = ? ) : array
public Swoole\Server::connection_list ( int $start_fd , int $pagesize = ? ) : array
public Swoole\Server::defer ( callable $callback ) : void
public Swoole\Server\Port::__destruct ( ) : void
public Swoole\Server\Port::on ( string $event_name , callable $callback ) : ReturnType
public Swoole\Server\Port::set ( array $settings ) : void
public Swoole\Server::exist ( int $fd ) : bool
public Swoole\Server::finish ( string $data ) : void
public Swoole\Server::getClientInfo ( int $fd , int $reactor_id = ? ) : ReturnType
public Swoole\Server::getClientList ( int $start_fd , int $pagesize = ? ) : array
public Swoole\Server::getLastError ( ) : int
public Swoole\Server::heartbeat ( bool $if_close_connection ) : mixed
public Swoole\Server::listen ( string $host , int $port , string $socket_type ) : bool
public Swoole\Server::on ( string $event_name , callable $callback ) : void
public Swoole\Server::pause ( int $fd ) : void
public Swoole\Server::protect ( int $fd , bool $is_protected = ? ) : void
public Swoole\Server::reload ( ) : bool
public Swoole\Server::resume ( int $fd ) : void
public Swoole\Server::send ( int $fd , string $data , int $reactor_id = ? ) : bool
public Swoole\Server::sendfile ( int $fd , string $filename , int $offset = ? ) : bool
public Swoole\Server::sendMessage ( int $worker_id , string $data ) : bool
public Swoole\Server::sendto ( string $ip , int $port , string $data , string $server_socket = ? ) : bool
public Swoole\Server::sendwait ( int $fd , string $data ) : bool
public Swoole\Server::set ( array $settings ) : ReturnType
public Swoole\Server::shutdown ( ) : void
public Swoole\Server::start ( ) : void
public Swoole\Server::stats ( ) : array
public Swoole\Server::stop ( int $worker_id = ? ) : bool
public Swoole\Server::task ( string $data , int $dst_worker_id = ? , callable $callback = ? ) : mixed
public Swoole\Server::taskwait ( string $data , float $timeout = ? , int $worker_id = ? ) : void
public Swoole\Server::taskWaitMulti ( array $tasks , double $timeout_ms = ? ) : void
public Swoole\Server::tick ( int $interval_ms , callable $callback ) : void
}

Vordefinierte Konstanten

Swoole\Redis\Server::NIL

Swoole\Redis\Server::ERROR

Swoole\Redis\Server::STATUS

Swoole\Redis\Server::INT

Swoole\Redis\Server::STRING

Swoole\Redis\Server::SET

Swoole\Redis\Server::MAP

Inhaltsverzeichnis

  • Swoole\Redis\Server::format — Description
  • Swoole\Redis\Server::setHandler — Description
  • Swoole\Redis\Server::start — Description


Description

  • « Swoole\Redis\Server
  • Swoole\Redis\Server::setHandler »
  • PHP Manual
  • Swoole\Redis\Server
  • Description

Swoole\Redis\Server::format

(PECL swoole >= 1.9.0)

Swoole\Redis\Server::format — Description

Beschreibung

public static Swoole\Redis\Server::format ( string $type , string $value = ? ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

type

value

Rückgabewerte


Description

  • « Swoole\Redis\Server::format
  • Swoole\Redis\Server::start »
  • PHP Manual
  • Swoole\Redis\Server
  • Description

Swoole\Redis\Server::setHandler

(PECL swoole >= 1.9.0)

Swoole\Redis\Server::setHandler — Description

Beschreibung

public Swoole\Redis\Server::setHandler ( string $command , string $callback , string $number_of_string_param = ? , string $type_of_array_param = ? ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

command

callback

number_of_string_param

type_of_array_param

Rückgabewerte


Description

  • « Swoole\Redis\Server::setHandler
  • Swoole\Serialize »
  • PHP Manual
  • Swoole\Redis\Server
  • Description

Swoole\Redis\Server::start

(PECL swoole >= 1.9.0)

Swoole\Redis\Server::start — Description

Beschreibung

public Swoole\Redis\Server::start ( ) : ReturnType

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Swoole\Serialize class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Serialize {
/* Methoden */
public static pack ( string $data , int $is_fast = ? ) : ReturnType
public static unpack ( string $data , string $args = ? ) : ReturnType
}

Inhaltsverzeichnis

  • Swoole\Serialize::pack — Serialize the data.
  • Swoole\Serialize::unpack — Unserialize the data.


Serialize the data.

  • « Swoole\Serialize
  • Swoole\Serialize::unpack »
  • PHP Manual
  • Swoole\Serialize
  • Serialize the data.

Swoole\Serialize::pack

(PECL swoole >= 1.9.0)

Swoole\Serialize::pack — Serialize the data.

Beschreibung

public static Swoole\Serialize::pack ( string $data , int $is_fast = ? ) : ReturnType

Swoole provides a fast and high performance serialization module.

Parameter-Liste

data

is_fast

Rückgabewerte


Unserialize the data.

  • « Swoole\Serialize::pack
  • Swoole\Server »
  • PHP Manual
  • Swoole\Serialize
  • Unserialize the data.

Swoole\Serialize::unpack

(PECL swoole >= 1.9.0)

Swoole\Serialize::unpack — Unserialize the data.

Beschreibung

public static Swoole\Serialize::unpack ( string $data , string $args = ? ) : ReturnType

Unserialize the data.

Parameter-Liste

string

args

Rückgabewerte


The Swoole\Server class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Server {
/* Methoden */
public addlistener ( string $host , int $port , string $socket_type ) : void
public addProcess ( swoole_process $process ) : bool
public after ( int $after_time_ms , callable $callback , string $param = ? ) : ReturnType
public bind ( int $fd , int $uid ) : bool
public clearTimer ( int $timer_id ) : void
swoole_timer_clear ( int $timer_id ) : void
public close ( int $fd , bool $reset = ? ) : bool
public confirm ( int $fd ) : bool
public connection_info ( int $fd , int $reactor_id = ? ) : array
public connection_list ( int $start_fd , int $pagesize = ? ) : array
public defer ( callable $callback ) : void
public Swoole\Server\Port::__destruct ( ) : void
public Swoole\Server\Port::on ( string $event_name , callable $callback ) : ReturnType
public Swoole\Server\Port::set ( array $settings ) : void
public exist ( int $fd ) : bool
public finish ( string $data ) : void
public getClientInfo ( int $fd , int $reactor_id = ? ) : ReturnType
public getClientList ( int $start_fd , int $pagesize = ? ) : array
public getLastError ( ) : int
public heartbeat ( bool $if_close_connection ) : mixed
public listen ( string $host , int $port , string $socket_type ) : bool
public on ( string $event_name , callable $callback ) : void
public pause ( int $fd ) : void
public protect ( int $fd , bool $is_protected = ? ) : void
public reload ( ) : bool
public resume ( int $fd ) : void
public send ( int $fd , string $data , int $reactor_id = ? ) : bool
public sendfile ( int $fd , string $filename , int $offset = ? ) : bool
public sendMessage ( int $worker_id , string $data ) : bool
public sendto ( string $ip , int $port , string $data , string $server_socket = ? ) : bool
public sendwait ( int $fd , string $data ) : bool
public set ( array $settings ) : ReturnType
public shutdown ( ) : void
public start ( ) : void
public stats ( ) : array
public stop ( int $worker_id = ? ) : bool
public task ( string $data , int $dst_worker_id = ? , callable $callback = ? ) : mixed
public taskwait ( string $data , float $timeout = ? , int $worker_id = ? ) : void
public taskWaitMulti ( array $tasks , double $timeout_ms = ? ) : void
public tick ( int $interval_ms , callable $callback ) : void
}

Inhaltsverzeichnis

  • Swoole\Server::addlistener — Add a new listener to the server.
  • Swoole\Server::addProcess — Add a user defined swoole_process to the server.
  • Swoole\Server::after — Trigger a callback function after a period of time.
  • Swoole\Server::bind — Bind the connection to a user defined user ID.
  • Swoole\Server::clearTimer — Stop and destory a timer.
  • Swoole\Server::close — Close a connection to the client.
  • Swoole\Server::confirm — Check status of the connection.
  • Swoole\Server::connection_info — Get the connection info by file description.
  • Swoole\Server::connection_list — Get all of the established connections.
  • Swoole\Server::__construct — Construct a Swoole server.
  • Swoole\Server::defer — Delay execution of the callback function at the end of current EventLoop.
  • Swoole\Server\Port::__construct — Construct a server port
  • Swoole\Server\Port::__destruct — Destory server port
  • Swoole\Server\Port::on — Register callback functions by event.
  • Swoole\Server\Port::set — Set protocol of the server port.
  • Swoole\Server::exist — Check if the connection is existed.
  • Swoole\Server::finish — Used in task process for sending result to the worker process when the task is finished.
  • Swoole\Server::getClientInfo — Get the connection info by file description.
  • Swoole\Server::getClientList — Get all of the established connections.
  • Swoole\Server::getLastError — Get the error code of the most recent error.
  • Swoole\Server::heartbeat — Check all the connections on the server.
  • Swoole\Server::listen — Listen on the given IP and port, socket type.
  • Swoole\Server::on — Register a callback function by event name.
  • Swoole\Server::pause — Stop receiving data from the connection.
  • Swoole\Server::protect — Set the connection to be protected mode.
  • Swoole\Server::reload — Restart all the worker process.
  • Swoole\Server::resume — Start receving data from the connection.
  • Swoole\Server::send — Send data to the client.
  • Swoole\Server::sendfile — Send file to the connection.
  • Swoole\Server::sendMessage — Send message to worker processes by ID.
  • Swoole\Server::sendto — Send data to the remote UDP address.
  • Swoole\Server::sendwait — Send data to the remote socket in the blocking way.
  • Swoole\Server::set — Set the runtime settings of the swoole server.
  • Swoole\Server::shutdown — Shutdown the master server process, this function can be called in worker processes.
  • Swoole\Server::start — Start the Swoole server.
  • Swoole\Server::stats — Get the stats of the Swoole server.
  • Swoole\Server::stop — Stop the Swoole server.
  • Swoole\Server::task — Send data to the task worker processes.
  • Swoole\Server::taskwait — Send data to the task worker processes in blocking way.
  • Swoole\Server::taskWaitMulti — Execute multiple tasks concurrently.
  • Swoole\Server::tick — Repeats a given function at every given time-interval.


Add a new listener to the server.

  • « Swoole\Server
  • Swoole\Server::addProcess »
  • PHP Manual
  • Swoole\Server
  • Add a new listener to the server.

Swoole\Server::addlistener

(PECL swoole >= 1.9.0)

Swoole\Server::addlistener — Add a new listener to the server.

Beschreibung

public Swoole\Server::addlistener ( string $host , int $port , string $socket_type ) : void

Parameter-Liste

host

port

socket_type

Rückgabewerte


Add a user defined swoole_process to the server.

  • « Swoole\Server::addlistener
  • Swoole\Server::after »
  • PHP Manual
  • Swoole\Server
  • Add a user defined swoole_process to the server.

Swoole\Server::addProcess

(PECL swoole >= 1.9.0)

Swoole\Server::addProcess — Add a user defined swoole_process to the server.

Beschreibung

public Swoole\Server::addProcess ( swoole_process $process ) : bool

Parameter-Liste

process

Rückgabewerte


Trigger a callback function after a period of time.

  • « Swoole\Server::addProcess
  • Swoole\Server::bind »
  • PHP Manual
  • Swoole\Server
  • Trigger a callback function after a period of time.

Swoole\Server::after

(PECL swoole >= 1.9.0)

Swoole\Server::after — Trigger a callback function after a period of time.

Beschreibung

public Swoole\Server::after ( int $after_time_ms , callable $callback , string $param = ? ) : ReturnType

Parameter-Liste

after_time_ms

callback

param

Rückgabewerte


Bind the connection to a user defined user ID.

  • « Swoole\Server::after
  • Swoole\Server::clearTimer »
  • PHP Manual
  • Swoole\Server
  • Bind the connection to a user defined user ID.

Swoole\Server::bind

(PECL swoole >= 1.9.0)

Swoole\Server::bind — Bind the connection to a user defined user ID.

Beschreibung

public Swoole\Server::bind ( int $fd , int $uid ) : bool

Parameter-Liste

fd

uid

Rückgabewerte


Stop and destory a timer.

  • « Swoole\Server::bind
  • Swoole\Server::close »
  • PHP Manual
  • Swoole\Server
  • Stop and destory a timer.

Swoole\Server::clearTimer

swoole_timer_clear

(PECL swoole >= 1.9.0)

Swoole\Server::clearTimer -- swoole_timer_clear — Stop and destory a timer.

Beschreibung

Objektorientierter Stil (method):

public Swoole\Server::clearTimer ( int $timer_id ) : void

Prozeduraler Stil:

swoole_timer_clear ( int $timer_id ) : void

Stop and destory a timer

Parameter-Liste

timer_id

Rückgabewerte


Close a connection to the client.

  • « Swoole\Server::clearTimer
  • Swoole\Server::confirm »
  • PHP Manual
  • Swoole\Server
  • Close a connection to the client.

Swoole\Server::close

(PECL swoole >= 1.9.0)

Swoole\Server::close — Close a connection to the client.

Beschreibung

public Swoole\Server::close ( int $fd , bool $reset = ? ) : bool

Parameter-Liste

fd

reset

Rückgabewerte


Check status of the connection.

  • « Swoole\Server::close
  • Swoole\Server::connection_info »
  • PHP Manual
  • Swoole\Server
  • Check status of the connection.

Swoole\Server::confirm

(PECL swoole >= 1.9.0)

Swoole\Server::confirm — Check status of the connection.

Beschreibung

public Swoole\Server::confirm ( int $fd ) : bool

Parameter-Liste

fd

Rückgabewerte


Get the connection info by file description.

  • « Swoole\Server::confirm
  • Swoole\Server::connection_list »
  • PHP Manual
  • Swoole\Server
  • Get the connection info by file description.

Swoole\Server::connection_info

(PECL swoole >= 1.9.0)

Swoole\Server::connection_info — Get the connection info by file description.

Beschreibung

public Swoole\Server::connection_info ( int $fd , int $reactor_id = ? ) : array

Parameter-Liste

fd

reactor_id

Rückgabewerte


Get all of the established connections.

  • « Swoole\Server::connection_info
  • Swoole\Server::__construct »
  • PHP Manual
  • Swoole\Server
  • Get all of the established connections.

Swoole\Server::connection_list

(PECL swoole >= 1.9.0)

Swoole\Server::connection_list — Get all of the established connections.

Beschreibung

public Swoole\Server::connection_list ( int $start_fd , int $pagesize = ? ) : array

Parameter-Liste

start_fd

pagesize

Rückgabewerte


Construct a Swoole server.

  • « Swoole\Server::connection_list
  • Swoole\Server::defer »
  • PHP Manual
  • Swoole\Server
  • Construct a Swoole server.

Swoole\Server::__construct

(PECL swoole >= 1.9.0)

Swoole\Server::__construct — Construct a Swoole server.

Beschreibung

public Swoole\Server::__construct ( string $host , int $port = ? , integr $mode = ? , int $sock_type = ? )

Parameter-Liste

host

port

mode

sock_type


Delay execution of the callback function at the end of current EventLoop.

  • « Swoole\Server::__construct
  • Swoole\Server\Port::__construct »
  • PHP Manual
  • Swoole\Server
  • Delay execution of the callback function at the end of current EventLoop.

Swoole\Server::defer

(PECL swoole >= 1.9.0)

Swoole\Server::defer — Delay execution of the callback function at the end of current EventLoop.

Beschreibung

public Swoole\Server::defer ( callable $callback ) : void

Parameter-Liste

callback

Rückgabewerte


Construct a server port

  • « Swoole\Server::defer
  • Swoole\Server\Port::__destruct »
  • PHP Manual
  • Swoole\Server
  • Construct a server port

Swoole\Server\Port::__construct

(PECL swoole >= 1.9.0)

Swoole\Server\Port::__construct — Construct a server port

Beschreibung

private Swoole\Server\Port::__construct ( )

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Destory server port

  • « Swoole\Server\Port::__construct
  • Swoole\Server\Port::on »
  • PHP Manual
  • Swoole\Server
  • Destory server port

Swoole\Server\Port::__destruct

(PECL swoole >= 1.9.0)

Swoole\Server\Port::__destruct — Destory server port

Beschreibung

public Swoole\Server\Port::__destruct ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Register callback functions by event.

  • « Swoole\Server\Port::__destruct
  • Swoole\Server\Port::set »
  • PHP Manual
  • Swoole\Server
  • Register callback functions by event.

Swoole\Server\Port::on

(PECL swoole >= 1.9.0)

Swoole\Server\Port::on — Register callback functions by event.

Beschreibung

public Swoole\Server\Port::on ( string $event_name , callable $callback ) : ReturnType

Parameter-Liste

event_name

callback

Rückgabewerte


Set protocol of the server port.

  • « Swoole\Server\Port::on
  • Swoole\Server::exist »
  • PHP Manual
  • Swoole\Server
  • Set protocol of the server port.

Swoole\Server\Port::set

(PECL swoole >= 1.9.0)

Swoole\Server\Port::set — Set protocol of the server port.

Beschreibung

public Swoole\Server\Port::set ( array $settings ) : void

Parameter-Liste

settings

Rückgabewerte


Check if the connection is existed.

  • « Swoole\Server\Port::set
  • Swoole\Server::finish »
  • PHP Manual
  • Swoole\Server
  • Check if the connection is existed.

Swoole\Server::exist

(PECL swoole >= 1.9.0)

Swoole\Server::exist — Check if the connection is existed.

Beschreibung

public Swoole\Server::exist ( int $fd ) : bool

Parameter-Liste

fd

Rückgabewerte


Used in task process for sending result to the worker process when the task is finished.

  • « Swoole\Server::exist
  • Swoole\Server::getClientInfo »
  • PHP Manual
  • Swoole\Server
  • Used in task process for sending result to the worker process when the task is finished.

Swoole\Server::finish

(PECL swoole >= 1.9.0)

Swoole\Server::finish — Used in task process for sending result to the worker process when the task is finished.

Beschreibung

public Swoole\Server::finish ( string $data ) : void

Parameter-Liste

data

Rückgabewerte


Get the connection info by file description.

  • « Swoole\Server::finish
  • Swoole\Server::getClientList »
  • PHP Manual
  • Swoole\Server
  • Get the connection info by file description.

Swoole\Server::getClientInfo

(PECL swoole >= 1.9.0)

Swoole\Server::getClientInfo — Get the connection info by file description.

Beschreibung

public Swoole\Server::getClientInfo ( int $fd , int $reactor_id = ? ) : ReturnType

Parameter-Liste

fd

reactor_id

Rückgabewerte


Get all of the established connections.

  • « Swoole\Server::getClientInfo
  • Swoole\Server::getLastError »
  • PHP Manual
  • Swoole\Server
  • Get all of the established connections.

Swoole\Server::getClientList

(PECL swoole >= 1.9.0)

Swoole\Server::getClientList — Get all of the established connections.

Beschreibung

public Swoole\Server::getClientList ( int $start_fd , int $pagesize = ? ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

start_fd

pagesize

Rückgabewerte


Get the error code of the most recent error.

  • « Swoole\Server::getClientList
  • Swoole\Server::heartbeat »
  • PHP Manual
  • Swoole\Server
  • Get the error code of the most recent error.

Swoole\Server::getLastError

(PECL swoole >= 1.9.0)

Swoole\Server::getLastError — Get the error code of the most recent error.

Beschreibung

public Swoole\Server::getLastError ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Check all the connections on the server.

  • « Swoole\Server::getLastError
  • Swoole\Server::listen »
  • PHP Manual
  • Swoole\Server
  • Check all the connections on the server.

Swoole\Server::heartbeat

(PECL swoole >= 1.9.0)

Swoole\Server::heartbeat — Check all the connections on the server.

Beschreibung

public Swoole\Server::heartbeat ( bool $if_close_connection ) : mixed

Parameter-Liste

if_close_connection

Rückgabewerte


Listen on the given IP and port, socket type.

  • « Swoole\Server::heartbeat
  • Swoole\Server::on »
  • PHP Manual
  • Swoole\Server
  • Listen on the given IP and port, socket type.

Swoole\Server::listen

(PECL swoole >= 1.9.0)

Swoole\Server::listen — Listen on the given IP and port, socket type.

Beschreibung

public Swoole\Server::listen ( string $host , int $port , string $socket_type ) : bool

Parameter-Liste

host

port

socket_type

Rückgabewerte


Register a callback function by event name.

  • « Swoole\Server::listen
  • Swoole\Server::pause »
  • PHP Manual
  • Swoole\Server
  • Register a callback function by event name.

Swoole\Server::on

(PECL swoole >= 1.9.0)

Swoole\Server::on — Register a callback function by event name.

Beschreibung

public Swoole\Server::on ( string $event_name , callable $callback ) : void

Parameter-Liste

event_name

callback

Rückgabewerte


Stop receiving data from the connection.

  • « Swoole\Server::on
  • Swoole\Server::protect »
  • PHP Manual
  • Swoole\Server
  • Stop receiving data from the connection.

Swoole\Server::pause

(PECL swoole >= 1.9.0)

Swoole\Server::pause — Stop receiving data from the connection.

Beschreibung

public Swoole\Server::pause ( int $fd ) : void

Parameter-Liste

fd

Rückgabewerte


Set the connection to be protected mode.

  • « Swoole\Server::pause
  • Swoole\Server::reload »
  • PHP Manual
  • Swoole\Server
  • Set the connection to be protected mode.

Swoole\Server::protect

(PECL swoole >= 1.9.0)

Swoole\Server::protect — Set the connection to be protected mode.

Beschreibung

public Swoole\Server::protect ( int $fd , bool $is_protected = ? ) : void

Parameter-Liste

fd

is_protected

Rückgabewerte


Restart all the worker process.

  • « Swoole\Server::protect
  • Swoole\Server::resume »
  • PHP Manual
  • Swoole\Server
  • Restart all the worker process.

Swoole\Server::reload

(PECL swoole >= 1.9.0)

Swoole\Server::reload — Restart all the worker process.

Beschreibung

public Swoole\Server::reload ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Start receving data from the connection.

  • « Swoole\Server::reload
  • Swoole\Server::send »
  • PHP Manual
  • Swoole\Server
  • Start receving data from the connection.

Swoole\Server::resume

(PECL swoole >= 1.9.0)

Swoole\Server::resume — Start receving data from the connection.

Beschreibung

public Swoole\Server::resume ( int $fd ) : void

Parameter-Liste

fd

Rückgabewerte


Send data to the client.

  • « Swoole\Server::resume
  • Swoole\Server::sendfile »
  • PHP Manual
  • Swoole\Server
  • Send data to the client.

Swoole\Server::send

(PECL swoole >= 1.9.0)

Swoole\Server::send — Send data to the client.

Beschreibung

public Swoole\Server::send ( int $fd , string $data , int $reactor_id = ? ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

fd

data

reactor_id

Rückgabewerte


Send file to the connection.

  • « Swoole\Server::send
  • Swoole\Server::sendMessage »
  • PHP Manual
  • Swoole\Server
  • Send file to the connection.

Swoole\Server::sendfile

(PECL swoole >= 1.9.0)

Swoole\Server::sendfile — Send file to the connection.

Beschreibung

public Swoole\Server::sendfile ( int $fd , string $filename , int $offset = ? ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

fd

filename

offset

Rückgabewerte


Send message to worker processes by ID.

  • « Swoole\Server::sendfile
  • Swoole\Server::sendto »
  • PHP Manual
  • Swoole\Server
  • Send message to worker processes by ID.

Swoole\Server::sendMessage

(PECL swoole >= 1.9.0)

Swoole\Server::sendMessage — Send message to worker processes by ID.

Beschreibung

public Swoole\Server::sendMessage ( int $worker_id , string $data ) : bool

Parameter-Liste

dst_worker_id

data

Rückgabewerte


Send data to the remote UDP address.

  • « Swoole\Server::sendMessage
  • Swoole\Server::sendwait »
  • PHP Manual
  • Swoole\Server
  • Send data to the remote UDP address.

Swoole\Server::sendto

(PECL swoole >= 1.9.0)

Swoole\Server::sendto — Send data to the remote UDP address.

Beschreibung

public Swoole\Server::sendto ( string $ip , int $port , string $data , string $server_socket = ? ) : bool

Parameter-Liste

ip

port

data

server_socket

Rückgabewerte


Send data to the remote socket in the blocking way.

  • « Swoole\Server::sendto
  • Swoole\Server::set »
  • PHP Manual
  • Swoole\Server
  • Send data to the remote socket in the blocking way.

Swoole\Server::sendwait

(PECL swoole >= 1.9.0)

Swoole\Server::sendwait — Send data to the remote socket in the blocking way.

Beschreibung

public Swoole\Server::sendwait ( int $fd , string $data ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

fd

data

Rückgabewerte


Set the runtime settings of the swoole server.

  • « Swoole\Server::sendwait
  • Swoole\Server::shutdown »
  • PHP Manual
  • Swoole\Server
  • Set the runtime settings of the swoole server.

Swoole\Server::set

(PECL swoole >= 1.9.0)

Swoole\Server::set — Set the runtime settings of the swoole server.

Beschreibung

public Swoole\Server::set ( array $settings ) : ReturnType

Set the runtime settings of the swoole server. The settings can be accessed by $server->setting when the swoole server has started.

Parameter-Liste

settings

Rückgabewerte


Shutdown the master server process, this function can be called in worker processes.

  • « Swoole\Server::set
  • Swoole\Server::start »
  • PHP Manual
  • Swoole\Server
  • Shutdown the master server process, this function can be called in worker processes.

Swoole\Server::shutdown

(PECL swoole >= 1.9.0)

Swoole\Server::shutdown — Shutdown the master server process, this function can be called in worker processes.

Beschreibung

public Swoole\Server::shutdown ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Start the Swoole server.

  • « Swoole\Server::shutdown
  • Swoole\Server::stats »
  • PHP Manual
  • Swoole\Server
  • Start the Swoole server.

Swoole\Server::start

(PECL swoole >= 1.9.0)

Swoole\Server::start — Start the Swoole server.

Beschreibung

public Swoole\Server::start ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the stats of the Swoole server.

  • « Swoole\Server::start
  • Swoole\Server::stop »
  • PHP Manual
  • Swoole\Server
  • Get the stats of the Swoole server.

Swoole\Server::stats

(PECL swoole >= 1.9.0)

Swoole\Server::stats — Get the stats of the Swoole server.

Beschreibung

public Swoole\Server::stats ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Stop the Swoole server.

  • « Swoole\Server::stats
  • Swoole\Server::task »
  • PHP Manual
  • Swoole\Server
  • Stop the Swoole server.

Swoole\Server::stop

(PECL swoole >= 1.9.0)

Swoole\Server::stop — Stop the Swoole server.

Beschreibung

public Swoole\Server::stop ( int $worker_id = ? ) : bool

Parameter-Liste

worker_id

Rückgabewerte


Send data to the task worker processes.

  • « Swoole\Server::stop
  • Swoole\Server::taskwait »
  • PHP Manual
  • Swoole\Server
  • Send data to the task worker processes.

Swoole\Server::task

(PECL swoole >= 1.9.0)

Swoole\Server::task — Send data to the task worker processes.

Beschreibung

public Swoole\Server::task ( string $data , int $dst_worker_id = ? , callable $callback = ? ) : mixed

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

data

dst_worker_id

callback

Rückgabewerte


Send data to the task worker processes in blocking way.

  • « Swoole\Server::task
  • Swoole\Server::taskWaitMulti »
  • PHP Manual
  • Swoole\Server
  • Send data to the task worker processes in blocking way.

Swoole\Server::taskwait

(PECL swoole >= 1.9.0)

Swoole\Server::taskwait — Send data to the task worker processes in blocking way.

Beschreibung

public Swoole\Server::taskwait ( string $data , float $timeout = ? , int $worker_id = ? ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

data

timeout

worker_id

Rückgabewerte


Execute multiple tasks concurrently.

  • « Swoole\Server::taskwait
  • Swoole\Server::tick »
  • PHP Manual
  • Swoole\Server
  • Execute multiple tasks concurrently.

Swoole\Server::taskWaitMulti

(PECL swoole >= 1.9.0)

Swoole\Server::taskWaitMulti — Execute multiple tasks concurrently.

Beschreibung

public Swoole\Server::taskWaitMulti ( array $tasks , double $timeout_ms = ? ) : void

Parameter-Liste

tasks

timeout_ms

Rückgabewerte


Repeats a given function at every given time-interval.

  • « Swoole\Server::taskWaitMulti
  • Swoole\Table »
  • PHP Manual
  • Swoole\Server
  • Repeats a given function at every given time-interval.

Swoole\Server::tick

(PECL swoole >= 1.9.0)

Swoole\Server::tick — Repeats a given function at every given time-interval.

Beschreibung

public Swoole\Server::tick ( int $interval_ms , callable $callback ) : void

Parameter-Liste

interval_ms

callback

Rückgabewerte


The Swoole\Table class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Table implements Iterator , Countable {
/* Constants */
const int TYPE_INT = 1 ;
const int TYPE_STRING = 7 ;
const int TYPE_FLOAT = 6 ;
/* Methoden */
public column ( string $name , string $type , int $size = ? ) : ReturnType
public count ( ) : int
public create ( ) : void
public current ( ) : array
public decr ( string $key , string $column , int $decrby = ? ) : ReturnType
public del ( string $key ) : void
public destroy ( ) : void
public exist ( string $key ) : bool
public get ( string $row_key , string $column_key ) : int
public incr ( string $key , string $column , int $incrby = ? ) : void
public key ( ) : string
public next ( ) : ReturnType
public rewind ( ) : void
public set ( string $key , array $value ) : VOID
public valid ( ) : bool
}

Vordefinierte Konstanten

Swoole\Table::TYPE_INT

Swoole\Table::TYPE_STRING

Swoole\Table::TYPE_FLOAT

Inhaltsverzeichnis

  • Swoole\Table::column — Set the data type and size of the columns.
  • Swoole\Table::__construct — Construct a Swoole memory table with fixed size.
  • Swoole\Table::count — Count the rows in the table, or count all the elements in the table if $mode = 1.
  • Swoole\Table::create — Create the swoole memory table.
  • Swoole\Table::current — Get the current row.
  • Swoole\Table::decr — Decrement the value in the Swoole table by $row_key and $column_key.
  • Swoole\Table::del — Delete a row in the Swoole table by $row_key.
  • Swoole\Table::destroy — Destroy the Swoole table.
  • Swoole\Table::exist — Check if a row is existed by $row_key.
  • Swoole\Table::get — Get the value in the Swoole table by $row_key and $column_key.
  • Swoole\Table::incr — Increment the value by $row_key and $column_key.
  • Swoole\Table::key — Get the key of current row.
  • Swoole\Table::next — Iterator the next row.
  • Swoole\Table::rewind — Rewind the iterator.
  • Swoole\Table::set — Update a row of the table by $row_key.
  • Swoole\Table::valid — Check current if the current row is valid.


Set the data type and size of the columns.

  • « Swoole\Table
  • Swoole\Table::__construct »
  • PHP Manual
  • Swoole\Table
  • Set the data type and size of the columns.

Swoole\Table::column

(PECL swoole >= 1.9.0)

Swoole\Table::column — Set the data type and size of the columns.

Beschreibung

public Swoole\Table::column ( string $name , string $type , int $size = ? ) : ReturnType

Parameter-Liste

name

type

size

Rückgabewerte


Construct a Swoole memory table with fixed size.

  • « Swoole\Table::column
  • Swoole\Table::count »
  • PHP Manual
  • Swoole\Table
  • Construct a Swoole memory table with fixed size.

Swoole\Table::__construct

(PECL swoole >= 1.9.0)

Swoole\Table::__construct — Construct a Swoole memory table with fixed size.

Beschreibung

public Swoole\Table::__construct ( int $table_size )

Parameter-Liste

table_size


Count the rows in the table, or count all the elements in the table if $mode = 1.

  • « Swoole\Table::__construct
  • Swoole\Table::create »
  • PHP Manual
  • Swoole\Table
  • Count the rows in the table, or count all the elements in the table if $mode = 1.

Swoole\Table::count

(PECL swoole >= 1.9.0)

Swoole\Table::count — Count the rows in the table, or count all the elements in the table if $mode = 1.

Beschreibung

public Swoole\Table::count ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Create the swoole memory table.

  • « Swoole\Table::count
  • Swoole\Table::current »
  • PHP Manual
  • Swoole\Table
  • Create the swoole memory table.

Swoole\Table::create

(PECL swoole >= 1.9.0)

Swoole\Table::create — Create the swoole memory table.

Beschreibung

public Swoole\Table::create ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the current row.

  • « Swoole\Table::create
  • Swoole\Table::decr »
  • PHP Manual
  • Swoole\Table
  • Get the current row.

Swoole\Table::current

(PECL swoole >= 1.9.0)

Swoole\Table::current — Get the current row.

Beschreibung

public Swoole\Table::current ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Decrement the value in the Swoole table by $row_key and $column_key.

  • « Swoole\Table::current
  • Swoole\Table::del »
  • PHP Manual
  • Swoole\Table
  • Decrement the value in the Swoole table by $row_key and $column_key.

Swoole\Table::decr

(PECL swoole >= 1.9.0)

Swoole\Table::decr — Decrement the value in the Swoole table by $row_key and $column_key.

Beschreibung

public Swoole\Table::decr ( string $key , string $column , int $decrby = ? ) : ReturnType

Parameter-Liste

key

column

decrby

Rückgabewerte


Delete a row in the Swoole table by $row_key.

  • « Swoole\Table::decr
  • Swoole\Table::destroy »
  • PHP Manual
  • Swoole\Table
  • Delete a row in the Swoole table by $row_key.

Swoole\Table::del

(PECL swoole >= 1.9.0)

Swoole\Table::del — Delete a row in the Swoole table by $row_key.

Beschreibung

public Swoole\Table::del ( string $key ) : void

Parameter-Liste

key

Rückgabewerte


Destroy the Swoole table.

  • « Swoole\Table::del
  • Swoole\Table::exist »
  • PHP Manual
  • Swoole\Table
  • Destroy the Swoole table.

Swoole\Table::destroy

(PECL swoole >= 1.9.0)

Swoole\Table::destroy — Destroy the Swoole table.

Beschreibung

public Swoole\Table::destroy ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Check if a row is existed by $row_key.

  • « Swoole\Table::destroy
  • Swoole\Table::get »
  • PHP Manual
  • Swoole\Table
  • Check if a row is existed by $row_key.

Swoole\Table::exist

(PECL swoole >= 1.9.0)

Swoole\Table::exist — Check if a row is existed by $row_key.

Beschreibung

public Swoole\Table::exist ( string $key ) : bool

Parameter-Liste

key

Rückgabewerte


Get the value in the Swoole table by $row_key and $column_key.

  • « Swoole\Table::exist
  • Swoole\Table::incr »
  • PHP Manual
  • Swoole\Table
  • Get the value in the Swoole table by $row_key and $column_key.

Swoole\Table::get

(PECL swoole >= 1.9.0)

Swoole\Table::get — Get the value in the Swoole table by $row_key and $column_key.

Beschreibung

public Swoole\Table::get ( string $row_key , string $column_key ) : int

Parameter-Liste

row_key

column_key

Rückgabewerte


Increment the value by $row_key and $column_key.

  • « Swoole\Table::get
  • Swoole\Table::key »
  • PHP Manual
  • Swoole\Table
  • Increment the value by $row_key and $column_key.

Swoole\Table::incr

(PECL swoole >= 1.9.0)

Swoole\Table::incr — Increment the value by $row_key and $column_key.

Beschreibung

public Swoole\Table::incr ( string $key , string $column , int $incrby = ? ) : void

Parameter-Liste

key

column

incrby

Rückgabewerte


Get the key of current row.

  • « Swoole\Table::incr
  • Swoole\Table::next »
  • PHP Manual
  • Swoole\Table
  • Get the key of current row.

Swoole\Table::key

(PECL swoole >= 1.9.0)

Swoole\Table::key — Get the key of current row.

Beschreibung

public Swoole\Table::key ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Iterator the next row.

  • « Swoole\Table::key
  • Swoole\Table::rewind »
  • PHP Manual
  • Swoole\Table
  • Iterator the next row.

Swoole\Table::next

(PECL swoole >= 1.9.0)

Swoole\Table::next — Iterator the next row.

Beschreibung

public Swoole\Table::next ( ) : ReturnType

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Rewind the iterator.

  • « Swoole\Table::next
  • Swoole\Table::set »
  • PHP Manual
  • Swoole\Table
  • Rewind the iterator.

Swoole\Table::rewind

(PECL swoole >= 1.9.0)

Swoole\Table::rewind — Rewind the iterator.

Beschreibung

public Swoole\Table::rewind ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Update a row of the table by $row_key.

  • « Swoole\Table::rewind
  • Swoole\Table::valid »
  • PHP Manual
  • Swoole\Table
  • Update a row of the table by $row_key.

Swoole\Table::set

(PECL swoole >= 1.9.0)

Swoole\Table::set — Update a row of the table by $row_key.

Beschreibung

public Swoole\Table::set ( string $key , array $value ) : VOID

Parameter-Liste

key

value

Rückgabewerte


Check current if the current row is valid.

  • « Swoole\Table::set
  • Swoole\Timer »
  • PHP Manual
  • Swoole\Table
  • Check current if the current row is valid.

Swoole\Table::valid

(PECL swoole >= 1.9.0)

Swoole\Table::valid — Check current if the current row is valid.

Beschreibung

public Swoole\Table::valid ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Swoole\Timer class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\Timer {
/* Methoden */
public static after ( int $after_time_ms , callable $callback ) : void
public static clear ( int $timer_id ) : void
public static exists ( int $timer_id ) : bool
public static tick ( int $interval_ms , callable $callback , string $param = ? ) : void
}

Inhaltsverzeichnis

  • Swoole\Timer::after — Trigger a callback function after a period of time.
  • Swoole\Timer::clear — Delete a timer by timer ID.
  • Swoole\Timer::exists — Check if a timer is existed.
  • Swoole\Timer::tick — Repeats a given function at every given time-interval.


Trigger a callback function after a period of time.

  • « Swoole\Timer
  • Swoole\Timer::clear »
  • PHP Manual
  • Swoole\Timer
  • Trigger a callback function after a period of time.

Swoole\Timer::after

(PECL swoole >= 1.9.0)

Swoole\Timer::after — Trigger a callback function after a period of time.

Beschreibung

public static Swoole\Timer::after ( int $after_time_ms , callable $callback ) : void

Trigger a callback function after a period of time.

Parameter-Liste

after_time_ms

callback

Rückgabewerte


Delete a timer by timer ID.

  • « Swoole\Timer::after
  • Swoole\Timer::exists »
  • PHP Manual
  • Swoole\Timer
  • Delete a timer by timer ID.

Swoole\Timer::clear

(PECL swoole >= 1.9.0)

Swoole\Timer::clear — Delete a timer by timer ID.

Beschreibung

public static Swoole\Timer::clear ( int $timer_id ) : void

Delete a timer by timer ID.

Parameter-Liste

timer_id

Rückgabewerte


Check if a timer is existed.

  • « Swoole\Timer::clear
  • Swoole\Timer::tick »
  • PHP Manual
  • Swoole\Timer
  • Check if a timer is existed.

Swoole\Timer::exists

(PECL swoole >= 1.9.0)

Swoole\Timer::exists — Check if a timer is existed.

Beschreibung

public static Swoole\Timer::exists ( int $timer_id ) : bool

Check if a timer is existed.

Parameter-Liste

timer_id

Rückgabewerte


Repeats a given function at every given time-interval.

  • « Swoole\Timer::exists
  • Swoole\WebSocket\Frame »
  • PHP Manual
  • Swoole\Timer
  • Repeats a given function at every given time-interval.

Swoole\Timer::tick

(PECL swoole >= 1.9.0)

Swoole\Timer::tick — Repeats a given function at every given time-interval.

Beschreibung

public static Swoole\Timer::tick ( int $interval_ms , callable $callback , string $param = ? ) : void

Parameter-Liste

interval_ms

callback

param

Rückgabewerte


The Swoole\WebSocket\Frame class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\WebSocket\Frame {
/* Methoden */
}


The Swoole\WebSocket\Server class

(PECL swoole >= 1.9.0)

Einführung

Klassenbeschreibung

Swoole\WebSocket\Server extends Swoole\Http\Server {
/* Methoden */
public exist ( int $fd ) : bool
public on ( string $event_name , callable $callback ) : ReturnType
public static pack ( string $data , string $opcode = ? , string $finish = ? , string $mask = ? ) : binary
public push ( string $fd , string $data , string $opcode = ? , string $finish = ? ) : void
public static unpack ( binary $data ) : string
/* Geerbte Methoden */
public Swoole\Http\Server::on ( string $event_name , callable $callback ) : void
public Swoole\Http\Server::start ( ) : void
}

Inhaltsverzeichnis

  • Swoole\WebSocket\Server::exist — Check if the file descriptor exists.
  • Swoole\WebSocket\Server::on — Register event callback function
  • Swoole\WebSocket\Server::pack — Get a pack of binary data to send in a single frame.
  • Swoole\WebSocket\Server::push — Push data to the remote client.
  • Swoole\WebSocket\Server::unpack — Unpack the binary data received from the client.


Check if the file descriptor exists.

  • « Swoole\WebSocket\Server
  • Swoole\WebSocket\Server::on »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Check if the file descriptor exists.

Swoole\WebSocket\Server::exist

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::exist — Check if the file descriptor exists.

Beschreibung

public Swoole\WebSocket\Server::exist ( int $fd ) : bool

Parameter-Liste

fd

Rückgabewerte


Register event callback function

  • « Swoole\WebSocket\Server::exist
  • Swoole\WebSocket\Server::pack »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Register event callback function

Swoole\WebSocket\Server::on

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::on — Register event callback function

Beschreibung

public Swoole\WebSocket\Server::on ( string $event_name , callable $callback ) : ReturnType

Register event callback function

Parameter-Liste

event_name

callback

Rückgabewerte


Get a pack of binary data to send in a single frame.

  • « Swoole\WebSocket\Server::on
  • Swoole\WebSocket\Server::push »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Get a pack of binary data to send in a single frame.

Swoole\WebSocket\Server::pack

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::pack — Get a pack of binary data to send in a single frame.

Beschreibung

public static Swoole\WebSocket\Server::pack ( string $data , string $opcode = ? , string $finish = ? , string $mask = ? ) : binary

Parameter-Liste

data

opcode

finish

mask

Rückgabewerte


Push data to the remote client.

  • « Swoole\WebSocket\Server::pack
  • Swoole\WebSocket\Server::unpack »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Push data to the remote client.

Swoole\WebSocket\Server::push

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::push — Push data to the remote client.

Beschreibung

public Swoole\WebSocket\Server::push ( string $fd , string $data , string $opcode = ? , string $finish = ? ) : void

Parameter-Liste

fd

data

opcode

finish

Rückgabewerte


Unpack the binary data received from the client.

  • « Swoole\WebSocket\Server::push
  • Tidy »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Unpack the binary data received from the client.

Swoole\WebSocket\Server::unpack

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::unpack — Unpack the binary data received from the client.

Beschreibung

public static Swoole\WebSocket\Server::unpack ( binary $data ) : string

Parameter-Liste

data

Rückgabewerte


Tidy

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Tidy example
  • tidy — The tidy class
    • tidy::body — Returns a tidyNode object starting from the <body> tag of the tidy parse tree
    • tidy::cleanRepair — Execute configured cleanup and repair operations on parsed markup
    • tidy::__construct — Constructs a new tidy object
    • tidy::diagnose — Run configured diagnostics on parsed and repaired markup
    • tidy::$errorBuffer — Return warnings and errors which occurred parsing the specified document
    • tidy::getConfig — Get current Tidy configuration
    • tidy::getHtmlVer — Get the Detected HTML version for the specified document
    • tidy::getOpt — Returns the value of the specified configuration option for the tidy document
    • tidy::getOptDoc — Returns the documentation for the given option name
    • tidy::getRelease — Get release date (version) for Tidy library
    • tidy::getStatus — Get status of specified document
    • tidy::head — Returns a tidyNode object starting from the <head> tag of the tidy parse tree
    • tidy::html — Returns a tidyNode object starting from the <html> tag of the tidy parse tree
    • tidy::isXhtml — Indicates if the document is a XHTML document
    • tidy::isXml — Indicates if the document is a generic (non HTML/XHTML) XML document
    • tidy::parseFile — Parse markup in file or URI
    • tidy::parseString — Parse a document stored in a string
    • tidy::repairFile — Repair a file and return it as a string
    • tidy::repairString — Repair a string using an optionally provided configuration file
    • tidy::root — Returns a tidyNode object representing the root of the tidy parse tree
  • tidyNode — The tidyNode class
    • tidyNode::__construct — Private constructor to disallow direct instantiation
    • tidyNode::getParent — Returns the parent node of the current node
    • tidyNode::hasChildren — Checks if a node has children
    • tidyNode::hasSiblings — Checks if a node has siblings
    • tidyNode::isAsp — Checks if this node is ASP
    • tidyNode::isComment — Checks if a node represents a comment
    • tidyNode::isHtml — Checks if a node is an element node
    • tidyNode::isJste — Checks if this node is JSTE
    • tidyNode::isPhp — Checks if a node is PHP
    • tidyNode::isText — Checks if a node represents text (no markup)
  • Tidy Funktionen
    • ob_tidyhandler — ob_start callback function to repair the buffer
    • tidy_access_count — Returns the Number of Tidy accessibility warnings encountered for specified document
    • tidy_config_count — Returns the Number of Tidy configuration errors encountered for specified document
    • tidy_error_count — Returns the Number of Tidy errors encountered for specified document
    • tidy_get_output — Return a string representing the parsed tidy markup
    • tidy_warning_count — Returns the Number of Tidy warnings encountered for specified document


Einführung

Tidy is a binding for the Tidy HTML clean and repair utility which allows you to not only clean and otherwise manipulate HTML, XHTML, and XML documents, but also traverse the document tree, including ones with embedded scripting languages such as PHP or ASP within them using object oriented constructs.


Anforderungen

To use Tidy, you will need libtidy installed, available on the » tidy homepage. As of PHP 7.1.0, the HTML5 aware successor » libtidy5 can be used alternatively. As of PHP 7.3.0, another option is to use » libtidyp.


Installation

This extension is bundled with PHP 5 and greater, and is installed using the --with-tidy configure option.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Tidy Configuration Options
Name | Standard | Veränderbar | Changelog
tidy.default_config | "" | PHP_INI_SYSTEM |
tidy.clean_output | "0" | PHP_INI_USER | PHP_INI_PERDIR prior to PHP 5.4.0
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

tidy.default_config string

Default path for tidy config file.

tidy.clean_output bool

Turns on/off the output repairing by Tidy.

Warnung

Do not turn on tidy.clean_output if you are generating non-html content such as dynamic images.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Each TIDY_TAG_XXX represents a HTML tag. For example, TIDY_TAG_A represents a "<a href="XX">link</a>" tag.

The following constants are defined:

tidy tag constants
Constant | Notes
TIDY_TAG_UNKNOWN |
TIDY_TAG_A |
TIDY_TAG_ABBR |
TIDY_TAG_ACRONYM |
TIDY_TAG_ALIGN |
TIDY_TAG_APPLET |
TIDY_TAG_AREA |
TIDY_TAG_ARTICLE | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_ASIDE | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_AUDIO | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_B |
TIDY_TAG_BASE |
TIDY_TAG_BASEFONT |
TIDY_TAG_BDI | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_BDO |
TIDY_TAG_BGSOUND |
TIDY_TAG_BIG |
TIDY_TAG_BLINK |
TIDY_TAG_BLOCKQUOTE |
TIDY_TAG_BODY |
TIDY_TAG_BR |
TIDY_TAG_BUTTON |
TIDY_TAG_CANVAS | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_CAPTION |
TIDY_TAG_CENTER |
TIDY_TAG_CITE |
TIDY_TAG_CODE |
TIDY_TAG_COL |
TIDY_TAG_COLGROUP |
TIDY_TAG_COMMAND | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_COMMENT |
TIDY_TAG_DATALIST | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_DD |
TIDY_TAG_DEL |
TIDY_TAG_DETAILS | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_DFN |
TIDY_TAG_DIALOG | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_DIR |
TIDY_TAG_DIV |
TIDY_TAG_DL |
TIDY_TAG_DT |
TIDY_TAG_EM |
TIDY_TAG_EMBED |
TIDY_TAG_FIELDSET |
TIDY_TAG_FIGCAPTION | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_FIGURE | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_FONT |
TIDY_TAG_FOOTER | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_FORM |
TIDY_TAG_FRAME |
TIDY_TAG_FRAMESET |
TIDY_TAG_H1 |
TIDY_TAG_H2 |
TIDY_TAG_H3 |
TIDY_TAG_H4 |
TIDY_TAG_H5 |
TIDY_TAG_H6 |
TIDY_TAG_HEAD |
TIDY_TAG_HEADER | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_HGROUP | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_HR |
TIDY_TAG_HTML |
TIDY_TAG_I |
TIDY_TAG_IFRAME |
TIDY_TAG_ILAYER |
TIDY_TAG_IMG |
TIDY_TAG_INPUT |
TIDY_TAG_INS |
TIDY_TAG_ISINDEX |
TIDY_TAG_KBD |
TIDY_TAG_KEYGEN |
TIDY_TAG_LABEL |
TIDY_TAG_LAYER |
TIDY_TAG_LEGEND |
TIDY_TAG_LI |
TIDY_TAG_LINK |
TIDY_TAG_LISTING |
TIDY_TAG_MAIN | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_MAP |
TIDY_TAG_MARK | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_MARQUEE |
TIDY_TAG_MENU |
TIDY_TAG_MENUITEM | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_META |
TIDY_TAG_METER | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_MULTICOL |
TIDY_TAG_NAV | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_NOBR |
TIDY_TAG_NOEMBED |
TIDY_TAG_NOFRAMES |
TIDY_TAG_NOLAYER |
TIDY_TAG_NOSAVE |
TIDY_TAG_NOSCRIPT |
TIDY_TAG_OBJECT |
TIDY_TAG_OL |
TIDY_TAG_OPTGROUP |
TIDY_TAG_OPTION |
TIDY_TAG_OUTPUT | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_P |
TIDY_TAG_PARAM |
TIDY_TAG_PLAINTEXT |
TIDY_TAG_PRE |
TIDY_TAG_PROGRESS | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_Q |
TIDY_TAG_RB |
TIDY_TAG_RBC |
TIDY_TAG_RP |
TIDY_TAG_RT |
TIDY_TAG_RTC |
TIDY_TAG_RUBY |
TIDY_TAG_S |
TIDY_TAG_SAMP |
TIDY_TAG_SCRIPT |
TIDY_TAG_SECTION | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_SELECT |
TIDY_TAG_SERVER |
TIDY_TAG_SERVLET |
TIDY_TAG_SMALL |
TIDY_TAG_SOURCE | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_SPACER |
TIDY_TAG_SPAN |
TIDY_TAG_STRIKE |
TIDY_TAG_STRONG |
TIDY_TAG_STYLE |
TIDY_TAG_SUB |
TIDY_TAG_SUMMARY | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_SUP |
TIDY_TAG_TABLE |
TIDY_TAG_TBODY |
TIDY_TAG_TD |
TIDY_TAG_TEMPLATE | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_TEXTAREA |
TIDY_TAG_TFOOT |
TIDY_TAG_TH |
TIDY_TAG_THEAD |
TIDY_TAG_TIME | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_TITLE |
TIDY_TAG_TR |
TIDY_TAG_TRACK | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_TT |
TIDY_TAG_U |
TIDY_TAG_UL |
TIDY_TAG_VAR |
TIDY_TAG_VIDEO | Added in libtidy 5.0.0. Available as of PHP 7.4.0.
TIDY_TAG_WBR |
TIDY_TAG_XMP |

tidy nodetype constants
constant | description
TIDY_NODETYPE_ROOT | root node
TIDY_NODETYPE_DOCTYPE | doctype
TIDY_NODETYPE_COMMENT | HTML comment
TIDY_NODETYPE_PROCINS | Processing Instruction
TIDY_NODETYPE_TEXT | Text
TIDY_NODETYPE_START | start tag
TIDY_NODETYPE_END | end tag
TIDY_NODETYPE_STARTEND | empty tag
TIDY_NODETYPE_CDATA | CDATA
TIDY_NODETYPE_SECTION | XML section
TIDY_NODETYPE_ASP | ASP code
TIDY_NODETYPE_JSTE | JSTE code
TIDY_NODETYPE_PHP | PHP code
TIDY_NODETYPE_XMLDECL | XML declaration


  • « Vordefinierte Konstanten
  • Tidy example »
  • PHP Manual
  • Tidy
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Tidy example


Tidy example

This simple example shows basic Tidy usage.

Beispiel #1 Basic Tidy usage

<?php
ob_start();
?>
<html>a html document</html>
<?php
$html = ob_get_clean();

// Specify configuration
$config = array(
           'indent'         => true,
           'output-xhtml'   => true,
           'wrap'           => 200);

// Tidy
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();

// Output
echo $tidy;
?>


The tidy class

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

Einführung

An HTML node in an HTML file, as detected by tidy.

Klassenbeschreibung

tidy {
/* Eigenschaften */
public string $errorBuffer;
/* Methoden */
public __construct ( string|null $filename = null , array|string|null $config = null , string|null $encoding = null , bool $useIncludePath = false )
public body ( ) : tidyNode|null
public cleanRepair ( ) : bool
public diagnose ( ) : bool
tidy_get_error_buffer ( tidy $tidy ) : string|false
public getConfig ( ) : array
public getHtmlVer ( ) : int
public getOpt ( string $option ) : string|int|bool
public getOptDoc ( string $option ) : string|false
public getRelease ( ) : string
public getStatus ( ) : int
public head ( ) : tidyNode|null
public html ( ) : tidyNode|null
public isXhtml ( ) : bool
public isXml ( ) : bool
public parseFile ( string $filename , array|string|null $config = null , string|null $encoding = null , bool $useIncludePath = false ) : bool
public parseString ( string $string , array|string|null $config = null , string|null $encoding = null ) : bool
public static repairFile ( string $filename , array|string|null $config = null , string|null $encoding = null , bool $useIncludePath = false ) : string|false
public static repairString ( string $string , array|string|null $config = null , string|null $encoding = null ) : string|false
public root ( ) : tidyNode|null
}

Inhaltsverzeichnis

  • tidy::body — Returns a tidyNode object starting from the <body> tag of the tidy parse tree
  • tidy::cleanRepair — Execute configured cleanup and repair operations on parsed markup
  • tidy::__construct — Constructs a new tidy object
  • tidy::diagnose — Run configured diagnostics on parsed and repaired markup
  • tidy::$errorBuffer — Return warnings and errors which occurred parsing the specified document
  • tidy::getConfig — Get current Tidy configuration
  • tidy::getHtmlVer — Get the Detected HTML version for the specified document
  • tidy::getOpt — Returns the value of the specified configuration option for the tidy document
  • tidy::getOptDoc — Returns the documentation for the given option name
  • tidy::getRelease — Get release date (version) for Tidy library
  • tidy::getStatus — Get status of specified document
  • tidy::head — Returns a tidyNode object starting from the <head> tag of the tidy parse tree
  • tidy::html — Returns a tidyNode object starting from the <html> tag of the tidy parse tree
  • tidy::isXhtml — Indicates if the document is a XHTML document
  • tidy::isXml — Indicates if the document is a generic (non HTML/XHTML) XML document
  • tidy::parseFile — Parse markup in file or URI
  • tidy::parseString — Parse a document stored in a string
  • tidy::repairFile — Repair a file and return it as a string
  • tidy::repairString — Repair a string using an optionally provided configuration file
  • tidy::root — Returns a tidyNode object representing the root of the tidy parse tree


Returns a tidyNode object starting from the <body> tag of the tidy parse tree

  • « tidy
  • tidy::cleanRepair »
  • PHP Manual
  • tidy
  • Returns a tidyNode object starting from the <body> tag of the tidy parse tree

tidy::body

tidy_get_body

(PHP 5, PHP 7, PHP 8, PECL tidy 0.5.2-1.0)

tidy::body -- tidy_get_body — Returns a tidyNode object starting from the <body> tag of the tidy parse tree

Beschreibung

Objektorientierter Stil

public tidy::body ( ) : tidyNode|null

Prozeduraler Stil

tidy_get_body ( tidy $tidy ) : tidyNode|null

Returns a tidyNode object starting from the <body> tag of the tidy parse tree.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns a tidyNode object starting from the <body> tag of the tidy parse tree.

Beispiele

Beispiel #1 tidy::getBody() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$body = $tidy->Body();
echo $body->value;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<body>
<p>paragraph</p>
</body>

Siehe auch

  • tidy::head() - Returns a tidyNode object starting from the <head> tag of the tidy parse tree
  • tidy::html() - Returns a tidyNode object starting from the <html> tag of the tidy parse tree


Execute configured cleanup and repair operations on parsed markup

  • « tidy::body
  • tidy::__construct »
  • PHP Manual
  • tidy
  • Execute configured cleanup and repair operations on parsed markup

tidy::cleanRepair

tidy_clean_repair

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::cleanRepair -- tidy_clean_repair — Execute configured cleanup and repair operations on parsed markup

Beschreibung

Objektorientierter Stil

public tidy::cleanRepair ( ) : bool

Prozeduraler Stil

tidy_clean_repair ( tidy $tidy ) : bool

This function cleans and repairs the given tidy tidy.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 tidy::cleanrepair() example

<?php
$html = '<p>test</I>';

$tidy = tidy_parse_string($html);
$tidy->cleanRepair();

echo $tidy;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

Siehe auch

  • tidy::repairFile() - Repair a file and return it as a string
  • tidy::repairString() - Repair a string using an optionally provided configuration file


Constructs a new tidy object

  • « tidy::cleanRepair
  • tidy::diagnose »
  • PHP Manual
  • tidy
  • Constructs a new tidy object

tidy::__construct

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::__construct — Constructs a new tidy object

Beschreibung

public tidy::__construct ( string|null $filename = null , array|string|null $config = null , string|null $encoding = null , bool $useIncludePath = false )

Constructs a new tidy object.

Parameter-Liste

filename

If the filename parameter is given, this function will also read that file and initialize the object with the file, acting like tidy_parse_file().

config

The config config can be passed either as an array or as a string. If a string is passed, it is interpreted as the name of the configuration file, otherwise, it is interpreted as the options themselves.

For an explanation about each option, visit » http://api.html-tidy.org/#quick-reference.

encoding

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, and shiftjis.

useIncludePath

Search for the file in the include_path.

Rückgabewerte

Returns the new tidy instance.

Changelog

Version | Beschreibung
8.0.0 | filename, config, encoding and useIncludePath are nullable now.

Beispiele

Beispiel #1 tidy::__construct() example

<?php

$html = <<< HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>title</title></head>
<body>
<p>paragraph <bt />
text</p>
</body></html>

HTML;

$tidy = new tidy();
$tidy->ParseString($html);

$tidy->cleanRepair();

if ($tidy->errorBuffer) {
    echo "The following errors were detected:\n";
    echo $tidy->errorBuffer;
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The following errors were detected:
line 8 column 14 - Error: <bt> is not recognized!
line 8 column 14 - Warning: discarding unexpected <bt>

Siehe auch

  • tidy::parseFile() - Parse markup in file or URI
  • tidy::parseString() - Parse a document stored in a string


Run configured diagnostics on parsed and repaired markup

  • « tidy::__construct
  • tidy::$errorBuffer »
  • PHP Manual
  • tidy
  • Run configured diagnostics on parsed and repaired markup

tidy::diagnose

tidy_diagnose

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::diagnose -- tidy_diagnose — Run configured diagnostics on parsed and repaired markup

Beschreibung

Objektorientierter Stil

public tidy::diagnose ( ) : bool

Prozeduraler Stil

tidy_diagnose ( tidy $tidy ) : bool

Runs diagnostic tests on the given tidy tidy, adding some more information about the document in the error buffer.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 tidy::diagnose() example

<?php

$html = <<< HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<p>paragraph</p>
HTML;

$tidy = tidy_parse_string($html);
$tidy->cleanRepair();

// note the difference between the two outputs
echo $tidy->errorBuffer . "\n";

$tidy->diagnose();
echo $tidy->errorBuffer;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 column 1 - Warning: inserting missing 'title' element
line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 column 1 - Warning: inserting missing 'title' element
Info: Doctype given is "-//W3C//DTD XHTML 1.0 Strict//EN"
Info: Document content looks like XHTML 1.0 Strict
2 warnings, 0 errors were found!

Siehe auch

  • tidy::errorBuffer()


Return warnings and errors which occurred parsing the specified document

  • « tidy::diagnose
  • tidy::getConfig »
  • PHP Manual
  • tidy
  • Return warnings and errors which occurred parsing the specified document

tidy::$errorBuffer

tidy_get_error_buffer

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::$errorBuffer -- tidy_get_error_buffer — Return warnings and errors which occurred parsing the specified document

Beschreibung

Objektorientierter Stil (property):

public string $tidy->errorBuffer;

Prozeduraler Stil:

tidy_get_error_buffer ( tidy $tidy ) : string|false

Returns warnings and errors which occurred parsing the specified document.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns the error buffer as a string, or false if the buffer is empty.

Beispiele

Beispiel #1 tidy_get_error_buffer() example

<?php
$html = '<p>paragraph</p>';

$tidy = tidy_parse_string($html);

echo tidy_get_error_buffer($tidy);
/* or in OO: */
echo $tidy->errorBuffer;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: inserting missing 'title' element

Siehe auch

  • tidy_access_count() - Returns the Number of Tidy accessibility warnings encountered for specified document
  • tidy_error_count() - Returns the Number of Tidy errors encountered for specified document
  • tidy_warning_count() - Returns the Number of Tidy warnings encountered for specified document


Get current Tidy configuration

  • « tidy::$errorBuffer
  • tidy::getHtmlVer »
  • PHP Manual
  • tidy
  • Get current Tidy configuration

tidy::getConfig

tidy_get_config

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.7.0)

tidy::getConfig -- tidy_get_config — Get current Tidy configuration

Beschreibung

Objektorientierter Stil

public tidy::getConfig ( ) : array

Prozeduraler Stil

tidy_get_config ( tidy $tidy ) : array

Gets the list of the configuration options in use by the given tidy tidy.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns an array of configuration options.

For an explanation about each option, visit » http://api.html-tidy.org/#quick-reference.

Beispiele

Beispiel #1 tidy::getConfig() example

<?php
$html = '<p>test</p>';
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap' => 200);

$tidy = tidy_parse_string($html, $config);

print_r($tidy->getConfig());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [indent-spaces] => 2
    [wrap] => 200
    [tab-size] => 8
    [char-encoding] => 1
    [input-encoding] => 3
    [output-encoding] => 1
    [newline] => 1
    [doctype-mode] => 1
    [doctype] =>
    [repeated-attributes] => 1
    [alt-text] =>
    [slide-style] =>
    [error-file] =>
    [output-file] =>
    [write-back] =>
    [markup] => 1
    [show-warnings] => 1
    [quiet] =>
    [indent] => 1
    [hide-endtags] =>
    [input-xml] =>
    [output-xml] => 1
    [output-xhtml] => 1
    [output-html] =>
    [add-xml-decl] =>
    [uppercase-tags] =>
    [uppercase-attributes] =>
    [bare] =>
    [clean] =>
    [logical-emphasis] =>
    [drop-proprietary-attributes] =>
    [drop-font-tags] =>
    [drop-empty-paras] => 1
    [fix-bad-comments] => 1
    [break-before-br] =>
    [split] =>
    [numeric-entities] =>
    [quote-marks] =>
    [quote-nbsp] => 1
    [quote-ampersand] => 1
    [wrap-attributes] =>
    [wrap-script-literals] =>
    [wrap-sections] => 1
    [wrap-asp] => 1
    [wrap-jste] => 1
    [wrap-php] => 1
    [fix-backslash] => 1
    [indent-attributes] =>
    [assume-xml-procins] =>
    [add-xml-space] =>
    [enclose-text] =>
    [enclose-block-text] =>
    [keep-time] =>
    [word-2000] =>
    [tidy-mark] =>
    [gnu-emacs] =>
    [gnu-emacs-file] =>
    [literal-attributes] =>
    [show-body-only] =>
    [fix-uri] => 1
    [lower-literals] => 1
    [hide-comments] =>
    [indent-cdata] =>
    [force-output] => 1
    [show-errors] => 6
    [ascii-chars] => 1
    [join-classes] =>
    [join-styles] => 1
    [escape-cdata] =>
    [language] =>
    [ncr] => 1
    [output-bom] => 2
    [replace-color] =>
    [css-prefix] =>
    [new-inline-tags] =>
    [new-blocklevel-tags] =>
    [new-empty-tags] =>
    [new-pre-tags] =>
    [accessibility-check] => 0
    [vertical-space] =>
    [punctuation-wrap] =>
    [merge-divs] => 1
)

Siehe auch

  • tidy_reset_config()
  • tidy_save_config()


Get the Detected HTML version for the specified document

  • « tidy::getConfig
  • tidy::getOpt »
  • PHP Manual
  • tidy
  • Get the Detected HTML version for the specified document

tidy::getHtmlVer

tidy_get_html_ver

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::getHtmlVer -- tidy_get_html_ver — Get the Detected HTML version for the specified document

Beschreibung

Objektorientierter Stil

public tidy::getHtmlVer ( ) : int

Prozeduraler Stil

tidy_get_html_ver ( tidy $tidy ) : int

Returns the detected HTML version for the specified tidy tidy.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns the detected HTML version.

Warnung

This function is not yet implemented in the Tidylib itself, so it always return 0.


Returns the value of the specified configuration option for the tidy document

  • « tidy::getHtmlVer
  • tidy::getOptDoc »
  • PHP Manual
  • tidy
  • Returns the value of the specified configuration option for the tidy document

tidy::getOpt

tidy_getopt

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::getOpt -- tidy_getopt — Returns the value of the specified configuration option for the tidy document

Beschreibung

Objektorientierter Stil

public tidy::getOpt ( string $option ) : string|int|bool

Prozeduraler Stil

tidy_getopt ( tidy $tidy , string $option ) : string|int|bool

Returns the value of the specified option for the specified tidy tidy.

Parameter-Liste

tidy

Das Tidy Objekt.

option

You will find a list with each configuration option and their types at: » http://api.html-tidy.org/#quick-reference.

Rückgabewerte

Returns the value of the specified option. The return type depends on the type of the specified one.

Beispiele

Beispiel #1 tidy_getopt() example

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Title</title></head>
<body>

<p><img src="img.png"></p>

</body></html>';

$config = array('accessibility-check' => 3,
                'alt-text' => 'some text');

$tidy = new tidy();
$tidy->parseString($html, $config);

var_dump($tidy->getOpt('accessibility-check')); //integer
var_dump($tidy->getOpt('lower-literals')); //boolean
var_dump($tidy->getOpt('alt-text')); //string

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(3)
bool(true)
string(9) "some text"


Returns the documentation for the given option name

  • « tidy::getOpt
  • tidy::getRelease »
  • PHP Manual
  • tidy
  • Returns the documentation for the given option name

tidy::getOptDoc

tidy_get_opt_doc

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

tidy::getOptDoc -- tidy_get_opt_doc — Returns the documentation for the given option name

Beschreibung

Objektorientierter Stil

public tidy::getOptDoc ( string $option ) : string|false

Prozeduraler Stil

tidy_get_opt_doc ( tidy $tidy , string $option ) : string|false

tidy_get_opt_doc() returns the documentation for the given option name.

Hinweis:

You need at least libtidy from 25 April, 2005 for this function be available.

Parameter-Liste

tidy

Das Tidy Objekt.

option

The option name

Rückgabewerte

Returns a string if the option exists and has documentation available, or false otherwise.

Beispiele

Beispiel #1 Print all options along with their documentation and default value

<?php

$tidy = new tidy;
$config = $tidy->getConfig();

ksort($config);

foreach ($config as $opt => $val) {

    if (!$doc = $tidy->getOptDoc($opt))
        $doc = 'no documentation available!';

    $val = ($tidy->getOpt($opt) === true)  ? 'true'  : $val;
    $val = ($tidy->getOpt($opt) === false) ? 'false' : $val;

    echo "<p><b>$opt</b> (default: '$val')<br />".
         "$doc</p><hr />\n";
}

?>

Siehe auch

  • tidy::getconfig() - Get current Tidy configuration
  • tidy::getopt() - Returns the value of the specified configuration option for the tidy document


Get release date (version) for Tidy library

  • « tidy::getOptDoc
  • tidy::getStatus »
  • PHP Manual
  • tidy
  • Get release date (version) for Tidy library

tidy::getRelease

tidy_get_release

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::getRelease -- tidy_get_release — Get release date (version) for Tidy library

Beschreibung

Objektorientierter Stil

public tidy::getRelease ( ) : string

Prozeduraler Stil

tidy_get_release ( ) : string

Gets the release date of the Tidy library.

Rückgabewerte

Returns a string with the release date of the Tidy library, which may be 'unknown'.


Get status of specified document

  • « tidy::getRelease
  • tidy::head »
  • PHP Manual
  • tidy
  • Get status of specified document

tidy::getStatus

tidy_get_status

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::getStatus -- tidy_get_status — Get status of specified document

Beschreibung

Objektorientierter Stil

public tidy::getStatus ( ) : int

Prozeduraler Stil

tidy_get_status ( tidy $tidy ) : int

Returns the status for the specified tidy tidy.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns 0 if no error/warning was raised, 1 for warnings or accessibility errors, or 2 for errors.

Beispiele

Beispiel #1 tidy::getStatus() example

<?php
$html = '<p>paragraph</i>';
$tidy = new tidy();
$tidy->parseString($html);

$tidy2 = new tidy();
$html2 = '<bogus>test</bogus>';
$tidy2->parseString($html2);

echo $tidy->getStatus(); //1

echo $tidy2->getStatus(); //2
?>


Returns a tidyNode object starting from the <head> tag of the tidy parse tree

  • « tidy::getStatus
  • tidy::html »
  • PHP Manual
  • tidy
  • Returns a tidyNode object starting from the <head> tag of the tidy parse tree

tidy::head

tidy_get_head

(PHP 5, PHP 7, PHP 8, PECL tidy 0.5.2-1.0.0)

tidy::head -- tidy_get_head — Returns a tidyNode object starting from the <head> tag of the tidy parse tree

Beschreibung

Objektorientierter Stil

public tidy::head ( ) : tidyNode|null

Prozeduraler Stil

tidy_get_head ( tidy $tidy ) : tidyNode|null

Returns a tidyNode object starting from the <head> tag of the tidy parse tree.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns the tidyNode object.

Beispiele

Beispiel #1 tidy::head() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$head = $tidy->head();
echo $head->value;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<head>
<title>test</title>
</head>

Siehe auch

  • tidy::body() - Returns a tidyNode object starting from the <body> tag of the tidy parse tree
  • tidy::html() - Returns a tidyNode object starting from the <html> tag of the tidy parse tree


Returns a tidyNode object starting from the <html> tag of the tidy parse tree

  • « tidy::head
  • tidy::isXhtml »
  • PHP Manual
  • tidy
  • Returns a tidyNode object starting from the <html> tag of the tidy parse tree

tidy::html

tidy_get_html

(PHP 5, PHP 7, PHP 8, PECL tidy 0.5.2-1.0.0)

tidy::html -- tidy_get_html — Returns a tidyNode object starting from the <html> tag of the tidy parse tree

Beschreibung

Objektorientierter Stil

public tidy::html ( ) : tidyNode|null

Prozeduraler Stil

tidy_get_html ( tidy $tidy ) : tidyNode|null

Returns a tidyNode object starting from the <html> tag of the tidy parse tree.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns the tidyNode object.

Beispiele

Beispiel #1 tidy::html() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$html = $tidy->html();
echo $html->value;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<html>
<head>
<title>test</title>
</head>
<body>
<p>paragraph</p>
</body>
</html>

Siehe auch

  • tidy::body() - Returns a tidyNode object starting from the <body> tag of the tidy parse tree
  • tidy::head() - Returns a tidyNode object starting from the <head> tag of the tidy parse tree


Indicates if the document is a XHTML document

  • « tidy::html
  • tidy::isXml »
  • PHP Manual
  • tidy
  • Indicates if the document is a XHTML document

tidy::isXhtml

tidy_is_xhtml

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::isXhtml -- tidy_is_xhtml — Indicates if the document is a XHTML document

Beschreibung

Objektorientierter Stil

public tidy::isXhtml ( ) : bool

Prozeduraler Stil

tidy_is_xhtml ( tidy $tidy ) : bool

Tells if the document is a XHTML document.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

This function returns true if the specified tidy tidy is a XHTML document, or false otherwise.

Warnung

This function is not yet implemented in the Tidylib itself, so it always return false.


Indicates if the document is a generic (non HTML/XHTML) XML document

  • « tidy::isXhtml
  • tidy::parseFile »
  • PHP Manual
  • tidy
  • Indicates if the document is a generic (non HTML/XHTML) XML document

tidy::isXml

tidy_is_xml

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::isXml -- tidy_is_xml — Indicates if the document is a generic (non HTML/XHTML) XML document

Beschreibung

Objektorientierter Stil

public tidy::isXml ( ) : bool

Prozeduraler Stil

tidy_is_xml ( tidy $tidy ) : bool

Tells if the document is a generic (non HTML/XHTML) XML document.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

This function returns true if the specified tidy tidy is a generic XML document (non HTML/XHTML), or false otherwise.

Warnung

This function is not yet implemented in the Tidylib itself, so it always return false.


Parse markup in file or URI

  • « tidy::isXml
  • tidy::parseString »
  • PHP Manual
  • tidy
  • Parse markup in file or URI

tidy::parseFile

tidy_parse_file

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::parseFile -- tidy_parse_file — Parse markup in file or URI

Beschreibung

Objektorientierter Stil

public tidy::parseFile ( string $filename , array|string|null $config = null , string|null $encoding = null , bool $useIncludePath = false ) : bool

Prozeduraler Stil

tidy_parse_file ( string $filename , array|string|null $config = null , string|null $encoding = null , bool $useIncludePath = false ) : tidy|false

Parses the given file.

Parameter-Liste

filename

If the filename parameter is given, this function will also read that file and initialize the object with the file, acting like tidy_parse_file().

config

The config config can be passed either as an array or as a string. If a string is passed, it is interpreted as the name of the configuration file, otherwise, it is interpreted as the options themselves.

For an explanation about each option, see » http://api.html-tidy.org/#quick-reference.

encoding

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, and shiftjis.

useIncludePath

Search for the file in the include_path.

Rückgabewerte

tidy::parseFile() returns true on success. tidy_parse_file() returns a new tidy instance on success. Both, the method and the function return false on failure.

Changelog

Version | Beschreibung
8.0.0 | config and encoding are nullable now.

Beispiele

Beispiel #1 tidy::parseFile() example

<?php
$tidy = new tidy();
$tidy->parseFile('file.html');

$tidy->cleanRepair();

if(!empty($tidy->errorBuffer)) {
    echo "The following errors or warnings occurred:\n";
    echo $tidy->errorBuffer;
}
?>

Siehe auch

  • tidy::parsestring() - Parse a document stored in a string
  • tidy::repairfile() - Repair a file and return it as a string
  • tidy::repairstring() - Repair a string using an optionally provided configuration file


Parse a document stored in a string

  • « tidy::parseFile
  • tidy::repairFile »
  • PHP Manual
  • tidy
  • Parse a document stored in a string

tidy::parseString

tidy_parse_string

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::parseString -- tidy_parse_string — Parse a document stored in a string

Beschreibung

Objektorientierter Stil

public tidy::parseString ( string $string , array|string|null $config = null , string|null $encoding = null ) : bool

Prozeduraler Stil

tidy_parse_string ( string $string , array|string|null $config = null , string|null $encoding = null ) : tidy|false

Parses a document stored in a string.

Parameter-Liste

string

The data to be parsed.

config

The config config can be passed either as an array or as a string. If a string is passed, it is interpreted as the name of the configuration file, otherwise, it is interpreted as the options themselves.

For an explanation about each option, visit » http://api.html-tidy.org/#quick-reference.

encoding

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, and shiftjis.

Rückgabewerte

tidy::parseString() returns true on success. tidy_parse_string() returns a new tidy instance on success. Both, the method and the function return false on failure.

Changelog

Version | Beschreibung
8.0.0 | config and encoding are nullable now.

Beispiele

Beispiel #1 tidy::parseString() example

<?php
ob_start();
?>

<html>
  <head>
   <title>test</title>
  </head>
  <body>
   <p>error<br>another line</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap' => 200);

$tidy = tidy_parse_string($buffer, $config, 'UTF8');

$tidy->cleanRepair();
echo $tidy;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
      test
    </title>
  </head>
  <body>
    <p>
      error<br />
      another line
    </p>
  </body>
</html>

Siehe auch

  • tidy::parseFile() - Parse markup in file or URI
  • tidy::repairFile() - Repair a file and return it as a string
  • tidy::repairString() - Repair a string using an optionally provided configuration file


Repair a file and return it as a string

  • « tidy::parseString
  • tidy::repairString »
  • PHP Manual
  • tidy
  • Repair a file and return it as a string

tidy::repairFile

tidy_repair_file

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.7.0)

tidy::repairFile -- tidy_repair_file — Repair a file and return it as a string

Beschreibung

Objektorientierter Stil

public static tidy::repairFile ( string $filename , array|string|null $config = null , string|null $encoding = null , bool $useIncludePath = false ) : string|false

Prozeduraler Stil

tidy_repair_file ( string $filename , array|string|null $config = null , string|null $encoding = null , bool $useIncludePath = false ) : string|false

Repairs the given file and returns it as a string.

Parameter-Liste

filename

The file to be repaired.

config

The config config can be passed either as an array or as a string. If a string is passed, it is interpreted as the name of the configuration file, otherwise, it is interpreted as the options themselves.

Check http://tidy.sourceforge.net/docs/quickref.html for an explanation about each option.

encoding

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, and shiftjis.

useIncludePath

Search for the file in the include_path.

Rückgabewerte

Returns the repaired contents as a string, Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | tidy::repairFile() is a static method now.
8.0.0 | config and encoding are nullable now.

Beispiele

Beispiel #1 tidy::repairFile() example

<?php
$file = 'file.html';

$tidy = new tidy();
$repaired = $tidy->repairfile($file);
rename($file, $file . '.bak');

file_put_contents($file, $repaired);
?>

Siehe auch

  • tidy::parseFile() - Parse markup in file or URI
  • tidy::parseString() - Parse a document stored in a string
  • tidy::repairString() - Repair a string using an optionally provided configuration file


Repair a string using an optionally provided configuration file

  • « tidy::repairFile
  • tidy::root »
  • PHP Manual
  • tidy
  • Repair a string using an optionally provided configuration file

tidy::repairString

tidy_repair_string

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.7.0)

tidy::repairString -- tidy_repair_string — Repair a string using an optionally provided configuration file

Beschreibung

Objektorientierter Stil

public static tidy::repairString ( string $string , array|string|null $config = null , string|null $encoding = null ) : string|false

Prozeduraler Stil

tidy_repair_string ( string $string , array|string|null $config = null , string|null $encoding = null ) : string|false

Repairs the given string.

Parameter-Liste

string

The data to be repaired.

config

The config config can be passed either as an array or as a string. If a string is passed, it is interpreted as the name of the configuration file, otherwise, it is interpreted as the options themselves.

Check » http://api.html-tidy.org/#quick-reference for an explanation about each option.

encoding

The encoding parameter sets the encoding for input/output documents. The possible values for encoding are: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, and shiftjis.

Rückgabewerte

Returns the repaired string, Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | tidy::repairString() is a static method now.
8.0.0 | config and encoding are nullable now.
8.0.0 | This function no longer accepts the useIncludePath parameter.

Beispiele

Beispiel #1 tidy::repairString() example

<?php
ob_start();
?>

<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>error</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$tidy = new tidy();
$clean = $tidy->repairString($buffer);

echo $clean;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>test</title>
</head>
<body>
<p>error</p>
</body>
</html>

Siehe auch

  • tidy::parseFile() - Parse markup in file or URI
  • tidy::parseString() - Parse a document stored in a string
  • tidy::repairFile() - Repair a file and return it as a string


Returns a tidyNode object representing the root of the tidy parse tree

  • « tidy::repairString
  • tidyNode »
  • PHP Manual
  • tidy
  • Returns a tidyNode object representing the root of the tidy parse tree

tidy::root

tidy_get_root

(PHP 5, PHP 7, PHP 8, PECL tidy 0.5.2-1.0.0)

tidy::root -- tidy_get_root — Returns a tidyNode object representing the root of the tidy parse tree

Beschreibung

Objektorientierter Stil

public tidy::root ( ) : tidyNode|null

Prozeduraler Stil

tidy_get_root ( tidy $tidy ) : tidyNode|null

Returns a tidyNode object representing the root of the tidy parse tree.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns the tidyNode object.

Beispiele

Beispiel #1 tidy::root() example

<?php

$html = <<< HTML
<html><body>

<p>paragraph</p>
<br/>

</body></html>
HTML;

$tidy = tidy_parse_string($html);
dump_nodes($tidy->root(), 1);

function dump_nodes($node, $indent) {

    if($node->hasChildren()) {
        foreach($node->child as $child) {
            echo str_repeat('.', $indent*2) . ($child->name ? $child->name : '"'.$child->value.'"'). "\n";

            dump_nodes($child, $indent+1);
        }
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

..html
....head
......title
....body
......p
........"paragraph"
......br


The tidyNode class

(PHP 5, PHP 7, PHP 8)

Einführung

An HTML node in an HTML file, as detected by tidy.

Klassenbeschreibung

final
tidyNode {
/* Eigenschaften */
public string $value;
public string $name;
public int $type;
public int $line;
public int $column;
public bool $proprietary;
public int $id;
public array $attribute;
public array $child;
/* Methoden */
private __construct ( )
public getParent ( ) : tidyNode|null
public hasChildren ( ) : bool
public hasSiblings ( ) : bool
public isAsp ( ) : bool
public isComment ( ) : bool
public isHtml ( ) : bool
public isJste ( ) : bool
public isPhp ( ) : bool
public isText ( ) : bool
}

Eigenschaften

value

The HTML representation of the node, including the surrounding tags.

name

The name of the HTML node

type

The type of the node (one of the nodetype constants, e.g. TIDY_NODETYPE_PHP)

line

The line number at which the tags is located in the file

column

The column number at which the tags is located in the file

proprietary

Indicates if the node is a proprietary tag

id

The ID of the node (one of the tag constants, e.g. TIDY_TAG_FRAME)

attribute

An array of string, representing the attributes names (as keys) of the current node.

child

An array of tidyNode, representing the children of the current node.

Version | Beschreibung
5.1.0 | line, column and proprietary were added

Inhaltsverzeichnis

  • tidyNode::__construct — Private constructor to disallow direct instantiation
  • tidyNode::getParent — Returns the parent node of the current node
  • tidyNode::hasChildren — Checks if a node has children
  • tidyNode::hasSiblings — Checks if a node has siblings
  • tidyNode::isAsp — Checks if this node is ASP
  • tidyNode::isComment — Checks if a node represents a comment
  • tidyNode::isHtml — Checks if a node is an element node
  • tidyNode::isJste — Checks if this node is JSTE
  • tidyNode::isPhp — Checks if a node is PHP
  • tidyNode::isText — Checks if a node represents text (no markup)


Private constructor to disallow direct instantiation

  • « tidyNode
  • tidyNode::getParent »
  • PHP Manual
  • tidyNode
  • Private constructor to disallow direct instantiation

tidyNode::__construct

(PHP 5, PHP 7, PHP 8)

tidyNode::__construct — Private constructor to disallow direct instantiation

Beschreibung

private tidyNode::__construct ( )

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Returns the parent node of the current node

  • « tidyNode::__construct
  • tidyNode::hasChildren »
  • PHP Manual
  • tidyNode
  • Returns the parent node of the current node

tidyNode::getParent

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

tidyNode::getParent — Returns the parent node of the current node

Beschreibung

public tidyNode::getParent ( ) : tidyNode|null

Returns the parent node of the current node.

Rückgabewerte

Returns a tidyNode if the node has a parent, or null otherwise.

Beispiele

Beispiel #1 tidyNode::hasChildren() example

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* JSTE code */
  alert('Hello World');
#>
 </head>
 <body>
 Hello World
 </body>
</html>

HTML;

$tidy = tidy_parse_string($html);
$num = 0;

$node = $tidy->html()->child[0]->child[0];

var_dump($node->getparent()->name);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(4) "head"


Checks if a node has children

  • « tidyNode::getParent
  • tidyNode::hasSiblings »
  • PHP Manual
  • tidyNode
  • Checks if a node has children

tidyNode::hasChildren

(PHP 5, PHP 7, PHP 8)

tidyNode::hasChildren — Checks if a node has children

Beschreibung

public tidyNode::hasChildren ( ) : bool

Tells if the node has children.

Rückgabewerte

Returns true if the node has children, false otherwise.

Beispiele

Beispiel #1 tidyNode::hasChildren() example

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* JSTE code */
  alert('Hello World');
#>
</head>
<body>

<?php
  // PHP code
  echo 'hello world!';
?>

<%
  /* ASP code */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

// the head tag
var_dump($tidy->html()->child[0]->hasChildren());

// the php inside the head tag
var_dump($tidy->html()->child[0]->child[0]->hasChildren());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)


Checks if a node has siblings

  • « tidyNode::hasChildren
  • tidyNode::isAsp »
  • PHP Manual
  • tidyNode
  • Checks if a node has siblings

tidyNode::hasSiblings

(PHP 5, PHP 7, PHP 8)

tidyNode::hasSiblings — Checks if a node has siblings

Beschreibung

public tidyNode::hasSiblings ( ) : bool

Tells if the node has siblings.

Rückgabewerte

Returns true if the node has siblings, false otherwise.

Beispiele

Beispiel #1 tidyNode::hasSiblings() example

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* JSTE code */
  alert('Hello World');
#>
</head>
<body>

<?php
  // PHP code
  echo 'hello world!';
?>

<%
  /* ASP code */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

// the html tag
var_dump($tidy->html()->hasSiblings());

// the head tag
var_dump($tidy->html()->child[0]->hasSiblings());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)


Checks if this node is ASP

  • « tidyNode::hasSiblings
  • tidyNode::isComment »
  • PHP Manual
  • tidyNode
  • Checks if this node is ASP

tidyNode::isAsp

(PHP 5, PHP 7, PHP 8)

tidyNode::isAsp — Checks if this node is ASP

Beschreibung

public tidyNode::isAsp ( ) : bool

Tells whether the current node is ASP.

Rückgabewerte

Returns true if the node is ASP, false otherwise.

Beispiele

Beispiel #1 Extract ASP code from a mixed HTML document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* JSTE code */
  alert('Hello World');
#>
</head>
<body>

<?php
  // PHP code
  echo 'hello world!';
?>

<%
  /* ASP code */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // check if the current node is of requested type
    if($node->isAsp()) {
        echo "\n\n# asp node #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // check if the current node has childrens
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

# asp node #1
<%
  /* ASP code */
  response.write("Hello World!")
%>


Checks if a node represents a comment

  • « tidyNode::isAsp
  • tidyNode::isHtml »
  • PHP Manual
  • tidyNode
  • Checks if a node represents a comment

tidyNode::isComment

(PHP 5, PHP 7, PHP 8)

tidyNode::isComment — Checks if a node represents a comment

Beschreibung

public tidyNode::isComment ( ) : bool

Tells if the node is a comment.

Rückgabewerte

Returns true if the node is a comment, false otherwise.

Beispiele

Beispiel #1 Extract comments from a mixed HTML document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* JSTE code */
  alert('Hello World');
#>
</head>
<body>

<?php
  // PHP code
  echo 'hello world!';
?>

<%
  /* ASP code */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // check if the current node is of requested type
    if($node->isComment()) {
        echo "\n\n# comment node #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // check if the current node has childrens
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

# comment node #1
<!-- Comments -->


Checks if a node is an element node

  • « tidyNode::isComment
  • tidyNode::isJste »
  • PHP Manual
  • tidyNode
  • Checks if a node is an element node

tidyNode::isHtml

(PHP 5, PHP 7, PHP 8)

tidyNode::isHtml — Checks if a node is an element node

Beschreibung

public tidyNode::isHtml ( ) : bool

Tells if the node is an element node, but not the root node of the document.

Rückgabewerte

Returns true if the node is an element node, but not the root node of the document, false otherwise.

Changelog

Version | Beschreibung
7.3.24, 7.4.12 | This function has been fixed to have reasonable behavior. Previously, almost any node was reported as being an HTML node.

Beispiele

Beispiel #1 Extract HTML code from a mixed HTML document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* JSTE code */
  alert('Hello World');
#>
</head>
<body>

<?php
  // PHP code
  echo 'hello world!';
?>

<%
  /* ASP code */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {
    // check if the current node is of requested type
    if($node->isHtml()) {
        echo "\n\n# html node #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // check if the current node has childrens
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

# html node #1
<html>
<head>
<?php echo '<title>title</title>'; ?><#
  /* JSTE code */
  alert('Hello World');
#>
<title></title>
</head>
<body>
<?php
  // PHP code
  echo 'hello world!';
?><%
  /* ASP code */
  response.write("Hello World!")
%><!-- Comments -->
Hello WorldOutside HTML
</body>
</html>

# html node #2
<head>
<?php echo '<title>title</title>'; ?><#
  /* JSTE code */
  alert('Hello World');
#>
<title></title>
</head>

# html node #3
<title></title>

# html node #4
<body>
<?php
  // PHP code
  echo 'hello world!';
?><%
  /* ASP code */
  response.write("Hello World!")
%><!-- Comments -->
Hello WorldOutside HTML
</body>


Checks if this node is JSTE

  • « tidyNode::isHtml
  • tidyNode::isPhp »
  • PHP Manual
  • tidyNode
  • Checks if this node is JSTE

tidyNode::isJste

(PHP 5, PHP 7, PHP 8)

tidyNode::isJste — Checks if this node is JSTE

Beschreibung

public tidyNode::isJste ( ) : bool

Tells if the node is JSTE.

Rückgabewerte

Returns true if the node is JSTE, false otherwise.

Beispiele

Beispiel #1 Extract JSTE code from a mixed HTML document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* JSTE code */
  alert('Hello World');
#>
</head>
<body>

<?php
  // PHP code
  echo 'hello world!';
?>

<%
  /* ASP code */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // check if the current node is of requested type
    if($node->isJste()) {
        echo "\n\n# jste node #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // check if the current node has childrens
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

# jste node #1
<#
  /* JSTE code */
  alert('Hello World');
#>


Checks if a node is PHP

  • « tidyNode::isJste
  • tidyNode::isText »
  • PHP Manual
  • tidyNode
  • Checks if a node is PHP

tidyNode::isPhp

(PHP 5, PHP 7, PHP 8)

tidyNode::isPhp — Checks if a node is PHP

Beschreibung

public tidyNode::isPhp ( ) : bool

Tells if the node is PHP.

Rückgabewerte

Returns true if the current node is PHP code, false otherwise.

Beispiele

Beispiel #1 Extract PHP code from a mixed HTML document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* JSTE code */
  alert('Hello World');
#>
</head>
<body>

<?php
  // PHP code
  echo 'hello world!';
?>

<%
  /* ASP code */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // check if the current node is of requested type
    if($node->isPhp()) {
        echo "\n\n# php node #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // check if the current node has childrens
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

# php node #1
<?php echo '<title>title</title>'; ?>

# php node #2
<?php
  // PHP code
  echo 'hello world!';
?>


Checks if a node represents text (no markup)

  • « tidyNode::isPhp
  • Tidy Funktionen »
  • PHP Manual
  • tidyNode
  • Checks if a node represents text (no markup)

tidyNode::isText

(PHP 5, PHP 7, PHP 8)

tidyNode::isText — Checks if a node represents text (no markup)

Beschreibung

public tidyNode::isText ( ) : bool

Tells if the node represents a text (without any markup).

Rückgabewerte

Returns true if the node represent a text, false otherwise.

Beispiele

Beispiel #1 Extract text from a mixed HTML document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
<#
  /* JSTE code */
  alert('Hello World');
#>
</head>
<body>

<?php
  // PHP code
  echo 'hello world!';
?>

<%
  /* ASP code */
  response.write("Hello World!")
%>

<!-- Comments -->
Hello World
</body></html>
Outside HTML
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // check if the current node is of requested type
    if($node->isText()) {
        echo "\n\n# text node #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // check if the current node has childrens
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

# text node #1
Hello World

# text node #2
Outside HTML


Tidy Funktionen

Inhaltsverzeichnis

  • ob_tidyhandler — ob_start callback function to repair the buffer
  • tidy_access_count — Returns the Number of Tidy accessibility warnings encountered for specified document
  • tidy_config_count — Returns the Number of Tidy configuration errors encountered for specified document
  • tidy_error_count — Returns the Number of Tidy errors encountered for specified document
  • tidy_get_output — Return a string representing the parsed tidy markup
  • tidy_warning_count — Returns the Number of Tidy warnings encountered for specified document


ob_start callback function to repair the buffer

  • « Tidy Funktionen
  • tidy_access_count »
  • PHP Manual
  • Tidy Funktionen
  • ob_start callback function to repair the buffer

ob_tidyhandler

(PHP 5, PHP 7, PHP 8)

ob_tidyhandler — ob_start callback function to repair the buffer

Beschreibung

ob_tidyhandler ( string $input , int $mode = ? ) : string

Callback function for ob_start() to repair the buffer.

Parameter-Liste

input

The buffer.

mode

The buffer mode.

Rückgabewerte

Returns the modified buffer.

Beispiele

Beispiel #1 ob_tidyhandler() example

<?php
ob_start('ob_tidyhandler');

echo '<p>test</i>';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

Siehe auch

  • ob_start() - Ausgabepufferung aktivieren


Returns the Number of Tidy accessibility warnings encountered for specified document

  • « ob_tidyhandler
  • tidy_config_count »
  • PHP Manual
  • Tidy Funktionen
  • Returns the Number of Tidy accessibility warnings encountered for specified document

tidy_access_count

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy_access_count — Returns the Number of Tidy accessibility warnings encountered for specified document

Beschreibung

tidy_access_count ( tidy $tidy ) : int

tidy_access_count() returns the number of accessibility warnings found for the specified document.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns the number of warnings.

Beispiele

Beispiel #1 tidy_access_count() example

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Title</title></head>
<body>

<p><img src="img.png"></p>

</body></html>';

// select the accessibility check level: 1, 2 or 3
$config = array('accessibility-check' => 3);

$tidy = new tidy();
$tidy->parseString($html, $config);
$tidy->cleanRepair();

/* Never forget to call this! */
$tidy->diagnose();

echo tidy_access_count($tidy); //5

?>

Anmerkungen

Hinweis:

Due to the design of the TidyLib, you must call tidy_diagnose() before tidy_access_count() or it will return always 0. You must also need to enable the accessibility-check option.

Siehe auch

  • tidy_error_count() - Returns the Number of Tidy errors encountered for specified document
  • tidy_warning_count() - Returns the Number of Tidy warnings encountered for specified document


Returns the Number of Tidy configuration errors encountered for specified document

  • « tidy_access_count
  • tidy_error_count »
  • PHP Manual
  • Tidy Funktionen
  • Returns the Number of Tidy configuration errors encountered for specified document

tidy_config_count

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy_config_count — Returns the Number of Tidy configuration errors encountered for specified document

Beschreibung

tidy_config_count ( tidy $tidy ) : int

Returns the number of errors encountered in the configuration of the specified tidy tidy.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns the number of errors.

Beispiele

Beispiel #1 tidy_config_count() example

<?php
$html = '<p>test</I>';

$config = array('doctype' => 'bogus');

$tidy = tidy_parse_string($html, $config);

/* This outputs 1, because 'bogus' isn't a valid doctype */
echo tidy_config_count($tidy);
?>


Returns the Number of Tidy errors encountered for specified document

  • « tidy_config_count
  • tidy_get_output »
  • PHP Manual
  • Tidy Funktionen
  • Returns the Number of Tidy errors encountered for specified document

tidy_error_count

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy_error_count — Returns the Number of Tidy errors encountered for specified document

Beschreibung

tidy_error_count ( tidy $tidy ) : int

Returns the number of Tidy errors encountered for the specified document.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns the number of errors.

Beispiele

Beispiel #1 tidy_error_count() example

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1

echo $tidy->errorBuffer;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 8 - Warning: discarding unexpected </i>
line 2 column 1 - Error: <bogustag> is not recognized!
line 2 column 1 - Warning: discarding unexpected <bogustag>
line 2 column 16 - Warning: discarding unexpected </bogustag>
line 1 column 1 - Warning: inserting missing 'title' element

Siehe auch

  • tidy_access_count() - Returns the Number of Tidy accessibility warnings encountered for specified document
  • tidy_warning_count() - Returns the Number of Tidy warnings encountered for specified document


Return a string representing the parsed tidy markup

  • « tidy_error_count
  • tidy_warning_count »
  • PHP Manual
  • Tidy Funktionen
  • Return a string representing the parsed tidy markup

tidy_get_output

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy_get_output — Return a string representing the parsed tidy markup

Beschreibung

tidy_get_output ( tidy $tidy ) : string

Gets a string with the repaired html.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns the parsed tidy markup.

Beispiele

Beispiel #1 tidy_get_output() example

<?php

$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$tidy->cleanRepair();

echo tidy_get_output($tidy);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>paragraph</p>
</body>
</html>


Returns the Number of Tidy warnings encountered for specified document

  • « tidy_get_output
  • Tokenizer »
  • PHP Manual
  • Tidy Funktionen
  • Returns the Number of Tidy warnings encountered for specified document

tidy_warning_count

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy_warning_count — Returns the Number of Tidy warnings encountered for specified document

Beschreibung

tidy_warning_count ( tidy $tidy ) : int

Returns the number of Tidy warnings encountered for the specified document.

Parameter-Liste

tidy

Das Tidy Objekt.

Rückgabewerte

Returns the number of warnings.

Beispiele

Beispiel #1 tidy_warning_count() example

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1
echo tidy_warning_count($tidy) . "\n"; //5
?>

Siehe auch

  • tidy_error_count() - Returns the Number of Tidy errors encountered for specified document
  • tidy_access_count() - Returns the Number of Tidy accessibility warnings encountered for specified document


Tokenizer

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • PhpToken — The PhpToken class
    • PhpToken::__construct — Returns a new PhpToken object
    • PhpToken::getTokenName — Returns the name of the token.
    • PhpToken::is — Tells whether the token is of given kind.
    • PhpToken::isIgnorable — Tells whether the token would be ignored by the PHP parser.
    • PhpToken::__toString — Returns the textual content of the token.
    • PhpToken::tokenize — Splits given source into PHP tokens, represented by PhpToken objects.
  • Tokenizer Funktionen
    • token_get_all — Spaltet angegebenen PHP-Quelltext in PHP-Token auf
    • token_name — Gibt Bezeichner für ein PHP-Token zurück


Einführung

Die Tokenizer-Funktionen bieten eine Schnittstelle zum in der Zend-Engine integrierten PHP-Tokenizer. Mit Hilfe dieser Funktionen ist es möglich, eigene Werkzeuge zur Analyse oder Modifikation von PHP-Quellcode zu entwickeln, ohne sich mit der Sprachspezifikation auf lexikalischer Ebene auseinandersetzen zu müssen.

Siehe auch Anhang zu Token.


Installation

Diese Funktionen sind standardmäßig aktiviert.

Die Windowsversion von PHP enthält diese Erweiterung. Um diese Funktionen zu verwenden, müssen Sie keine zusätzlichen Erweiterungen aktivieren.


Vordefinierte Konstanten

Sobald die Erweiterung mit PHP kompiliert wurde oder dynamisch zur Laufzeit geladen wurde, stehen die im Liste der Parsertoken aufgelisteten Tokens als Konstanten zur Verfügung.


Beispiele

Folgend ein einfaches Beispiel, dass den Tokenizer verwendet um eine PHP-Datei einzulesen, alle Kommentare zu entfernen und den reinen Quelltext auszugeben.

Beispiel #1 Kommentare mit Hilfe des Tokenizers entfernen

<?php
$source = file_get_contents('example.php');
$tokens = token_get_all($source);

foreach ($tokens as $token) {
    if (is_string($token)) {
        // einfaches 1-Zeichen Token
        echo $token;
    } else {
        // Token Array
        list($id, $text) = $token;

        switch ($id) {
            case T_COMMENT:
            case T_DOC_COMMENT:
                // Kommentare ignorieren
                break;

            default:
                // alle anderen -> unverändert beibehalten
                echo $text;
                break;
        }
    }
}
?>


The PhpToken class

(PHP 8)

Einführung

This class provides an alternative to token_get_all(). While the function returns tokens either as a single-character string, or an array with a token ID, token text and line number, PhpToken::tokenize() normalizes all tokens into PhpToken objects, which makes code operating on tokens more memory efficient and readable.

Klassenbeschreibung

PhpToken {
/* Eigenschaften */
public int $id ;
public string $text ;
public int $line ;
public int $pos ;
/* Methoden */
final public __construct ( int $id , string $text , int $line = -1 , int $pos = -1 )
public getTokenName ( ) : string|null
public is ( int|string|array $kind ) : bool
public isIgnorable ( ) : bool
public __toString ( ) : string
public static tokenize ( string $code , int $flags = 0 ) : array
}

Eigenschaften

id

One of the T_* constants, or an ASCII codepoint representing a single-char token.

text

The textual content of the token.

line

The starting line number (1-based) of the token.

pos

The starting position (0-based) in the tokenized string.

Inhaltsverzeichnis

  • PhpToken::__construct — Returns a new PhpToken object
  • PhpToken::getTokenName — Returns the name of the token.
  • PhpToken::is — Tells whether the token is of given kind.
  • PhpToken::isIgnorable — Tells whether the token would be ignored by the PHP parser.
  • PhpToken::__toString — Returns the textual content of the token.
  • PhpToken::tokenize — Splits given source into PHP tokens, represented by PhpToken objects.


Returns a new PhpToken object

  • « PhpToken
  • PhpToken::getTokenName »
  • PHP Manual
  • PhpToken
  • Returns a new PhpToken object

PhpToken::__construct

(PHP 8)

PhpToken::__construct — Returns a new PhpToken object

Beschreibung

final public PhpToken::__construct ( int $id , string $text , int $line = -1 , int $pos = -1 )

Returns a new PhpToken object

Parameter-Liste

id

One of the T_* constants (see Liste der Parsertoken), or an ASCII codepoint representing a single-char token.

text

The textual content of the token.

line

The starting line number (1-based) of the token.

pos

The starting position (0-based) in the tokenized string.

Rückgabewerte

Returns a new PhpToken instance.

Siehe auch

  • PhpToken::tokenize() - Splits given source into PHP tokens, represented by PhpToken objects.


Returns the name of the token.

  • « PhpToken::__construct
  • PhpToken::is »
  • PHP Manual
  • PhpToken
  • Returns the name of the token.

PhpToken::getTokenName

(PHP 8)

PhpToken::getTokenName — Returns the name of the token.

Beschreibung

public PhpToken::getTokenName ( ) : string|null

Returns the name of the token.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An ASCII character for single-char tokens, or one of T_* constant names for known tokens (see Liste der Parsertoken), or null for unknown tokens.

Beispiele

Beispiel #1 PhpToken::getTokenName() example

<?php
// known token
$token = new PhpToken(T_ECHO, 'echo');
var_dump($token->getTokenName());   // -> string(6) "T_ECHO"

// single-char token
$token = new PhpToken(ord(';'), ';');
var_dump($token->getTokenName());   // -> string(1) ";"

// unknown token
$token = new PhpToken(10000 , "\0");
var_dump($token->getTokenName());   // -> NULL

Siehe auch

  • PhpToken::tokenize() - Splits given source into PHP tokens, represented by PhpToken objects.
  • token_name() - Gibt Bezeichner für ein PHP-Token zurück


Tells whether the token is of given kind.

  • « PhpToken::getTokenName
  • PhpToken::isIgnorable »
  • PHP Manual
  • PhpToken
  • Tells whether the token is of given kind.

PhpToken::is

(PHP 8)

PhpToken::is — Tells whether the token is of given kind.

Beschreibung

public PhpToken::is ( int|string|array $kind ) : bool

Tells whether the token is of given kind.

Parameter-Liste

kind

Either a single value to match the token's id or textual content, or an array thereof.

Rückgabewerte

A boolean value whether the token is of given kind.

Beispiele

Beispiel #1 PhpToken::is() example

<?php
$token = new PhpToken(T_ECHO, 'echo');
var_dump($token->is(T_ECHO));        // -> bool(true)
var_dump($token->is('echo'));        // -> bool(true)
var_dump($token->is(T_FOREACH));     // -> bool(false)
var_dump($token->is('foreach'));     // -> bool(false)

Beispiel #2 Usage with array

<?php
function isClassType(PhpToken $token): bool {
    return $token->is([T_CLASS, T_INTERFACE, T_TRAIT]);
}

$interface = new PhpToken(T_INTERFACE, 'interface');
var_dump(isClassType($interface));   // -> bool(true)

$function = new PhpToken(T_FUNCTION, 'function');
var_dump(isClassType($function));    // -> bool(false)

Siehe auch

  • token_name() - Gibt Bezeichner für ein PHP-Token zurück


Tells whether the token would be ignored by the PHP parser.

  • « PhpToken::is
  • PhpToken::__toString »
  • PHP Manual
  • PhpToken
  • Tells whether the token would be ignored by the PHP parser.

PhpToken::isIgnorable

(PHP 8)

PhpToken::isIgnorable — Tells whether the token would be ignored by the PHP parser.

Beschreibung

public PhpToken::isIgnorable ( ) : bool

Tells whether the token would be ignored by the PHP parser.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A boolean value whether the token would be ignored by the PHP parser (such as whitespace or comments).

Beispiele

Beispiel #1 PhpToken::isIgnorable() example

<?php
$echo = new PhpToken(T_ECHO, 'echo');
var_dump($echo->isIgnorable());   // -> bool(false)

$space = new PhpToken(T_WHITESPACE, ' ');
var_dump($space->isIgnorable());  // -> bool(true)

Siehe auch

  • PhpToken::tokenize() - Splits given source into PHP tokens, represented by PhpToken objects.


Returns the textual content of the token.

  • « PhpToken::isIgnorable
  • PhpToken::tokenize »
  • PHP Manual
  • PhpToken
  • Returns the textual content of the token.

PhpToken::__toString

(PHP 8)

PhpToken::__toString — Returns the textual content of the token.

Beschreibung

public PhpToken::__toString ( ) : string

Returns the textual content of the token.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A textual content of the token.

Beispiele

Beispiel #1 PhpToken::__toString() example

<?php
$token = new PhpToken(T_ECHO, 'echo');
echo $token;

Die obigen Bespiele erzeugen folgende Ausgabe:

echo

Siehe auch

  • token_name() - Gibt Bezeichner für ein PHP-Token zurück


Splits given source into PHP tokens, represented by PhpToken objects.

  • « PhpToken::__toString
  • Tokenizer Funktionen »
  • PHP Manual
  • PhpToken
  • Splits given source into PHP tokens, represented by PhpToken objects.

PhpToken::tokenize

(PHP 8)

PhpToken::tokenize — Splits given source into PHP tokens, represented by PhpToken objects.

Beschreibung

public static PhpToken::tokenize ( string $code , int $flags = 0 ) : array

Returns an array of PhpToken objects representing given code.

Parameter-Liste

code

The PHP source to parse.

flags

Valid flags:

  • TOKEN_PARSE - Recognises the ability to use reserved words in specific contexts.

Rückgabewerte

An array of PHP tokens represented by instances of PhpToken or its descendants. This method returns static[] so that PhpToken can be seamlessly extended.

Beispiele

Beispiel #1 PhpToken::tokenize() example

<?php
$tokens = PhpToken::tokenize('<?php echo; ?>');

foreach ($tokens as $token) {
    echo "Line {$token->line}: {$token->getTokenName()} ('{$token->text}')", PHP_EOL;
}

Die obigen Bespiele erzeugen folgende Ausgabe:

Line 1: T_OPEN_TAG ('<?php ')
Line 1: T_ECHO ('echo')
Line 1: ; (';')
Line 1: T_WHITESPACE (' ')
Line 1: T_CLOSE_TAG ('?>')

Beispiel #2 Extending PhpToken

<?php

class MyPhpToken extends PhpToken {
    public function getUpperText() {
        return strtoupper($this->text);
    }
}

$tokens = MyPhpToken::tokenize('<?php echo; ?>');
echo "'{$tokens[0]->getUpperText()}'";

Die obigen Bespiele erzeugen folgende Ausgabe:

'<?PHP '

Siehe auch

  • token_get_all() - Spaltet angegebenen PHP-Quelltext in PHP-Token auf


Tokenizer Funktionen

  • « PhpToken::tokenize
  • token_get_all »
  • PHP Manual
  • Tokenizer
  • Tokenizer Funktionen

Inhaltsverzeichnis

  • token_get_all — Spaltet angegebenen PHP-Quelltext in PHP-Token auf
  • token_name — Gibt Bezeichner für ein PHP-Token zurück


Spaltet angegebenen PHP-Quelltext in PHP-Token auf

  • « Tokenizer Funktionen
  • token_name »
  • PHP Manual
  • Tokenizer Funktionen
  • Spaltet angegebenen PHP-Quelltext in PHP-Token auf

token_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

token_get_all — Spaltet angegebenen PHP-Quelltext in PHP-Token auf

Beschreibung

token_get_all ( string $code , int $flags = 0 ) : array

token_get_all() parst den angegebenen Quelltext code und spaltet ihn mit Hilfe des lexikalischen Scanners der Zend-Engine in PHP-Sprachtokens auf.

Eine Übersicht über die verschiedenen Token finden Sie im Liste der Parsertoken oder Sie können die Funktion token_name() zum Übersetzen eines Tokens in seinen Textrepäsentanten verwenden.

Parameter-Liste

code

PHP-Quelltext der geparst werden soll.

flags

Gültige Flags:

  • TOKEN_PARSE - Erkennt die Möglichkeit, reservierte Wörter unter bestimmten Umständen zu verwenden.

Rückgabewerte

Array mit Tokenbezeichner. Jeder einzelne Bezeichner ist entweder ein einzelnes Zeichen (z.B.: ;, ., >, !, usw.), oder ein Array bestehend aus drei Elementen. Das erste Element enthält den Tokenindex, das zweite Element den originalen Textinhalt und das dritte die Zeilennummer.

Beispiele

Beispiel #1 token_get_all()-Beispiel

<?php
$tokens = token_get_all('<?php echo; ?>');

foreach ($tokens as $token) {
    if (is_array($token)) {
        echo "Line {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Line 1: T_OPEN_TAG ('<?php ')
Line 1: T_ECHO ('echo')
Line 1: T_WHITESPACE (' ')
Line 1: T_CLOSE_TAG ('?>')

Beispiel #2 Fehlerhaftes token_get_all()-Verwendungsbeispiel

<?php
$tokens = token_get_all('/* comment */');

foreach ($tokens as $token) {
    if (is_array($token)) {
        echo "Zeile {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Zeile 1: T_INLINE_HTML ('/* comment */')
Es ist zu beachten, dass im vorigen Beispiel die Zeichenkette als T_INLINE_HTML und nicht wie erwartet als T_COMMENT geparst wurde. Das liegt am fehlenden Start-Tag im verwendeten Code. Das entspricht einem Kommentar außerhalb der PHP-Tags in einer normalen Datei.

Beispiel #3 token_get_all() für eine Klasse, die ein reserviertes Wort benutzt

<?php

$source = <<<'code'
<?php

class A
{
    const PUBLIC = 1;
}
code;

$tokens = token_get_all($source, TOKEN_PARSE);

foreach ($tokens as $token) {
    if (is_array($token)) {
        echo token_name($token[0]) , PHP_EOL;
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

T_OPEN_TAG
T_WHITESPACE
T_CLASS
T_WHITESPACE
T_STRING
T_CONST
T_WHITESPACE
T_STRING
T_LNUMBER
Ohne das TOKEN_PARSE-Flag würde das vorletzte Token T_PUBLIC statt T_STRING sein.

Siehe auch

  • PhpToken::tokenize() - Splits given source into PHP tokens, represented by PhpToken objects.
  • token_name() - Gibt Bezeichner für ein PHP-Token zurück


Gibt Bezeichner für ein PHP-Token zurück

  • « token_get_all
  • URLs »
  • PHP Manual
  • Tokenizer Funktionen
  • Gibt Bezeichner für ein PHP-Token zurück

token_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

token_name — Gibt Bezeichner für ein PHP-Token zurück

Beschreibung

token_name ( int $id ) : string

token_name() gibt den Bezeichner für den Wert von id zurück.

Parameter-Liste

id

Der Tokenwert.

Rückgabewerte

Der Bezeichner für die angegebene id.

Beispiele

Beispiel #1 token_name()-Beispiele

<?php
// 260 ist der Tokenwert für den T_EVAL-Token
echo token_name(260);        // -> "T_EVAL"

// Eine Tokenkonstante liefert den eigenen Namen zurück
echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

Siehe auch

  • Liste aller Token
  • PhpToken::getTokenName() - Returns the name of the token.


URLs

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • URL Funktionen
    • base64_decode — Dekodiert MIME base64-kodierte Daten
    • base64_encode — Kodiert Daten MIME base64
    • get_headers — Ruft alle Header ab, die der Server als Antwort auf einen HTTP-Request versendet
    • get_meta_tags — Liest alle content-Attribute der Meta-Tags einer Datei aus und gibt ein Array zurück
    • http_build_query — Liefert einen URL-kodierten Query-String
    • parse_url — Analysiert eine URL und gibt ihre Bestandteile zurück
    • rawurldecode — Dekodiert URL-kodierte Strings
    • rawurlencode — URL-Kodierung nach RFC 3986
    • urldecode — Dekodiert eine URL-kodierte Zeichenkette
    • urlencode — URL-kodiert einen String


  • « URLs
  • Installation/Konfiguration »
  • PHP Manual
  • URLs
  • Einführung

Einführung

Umgang mit URL-Strings: Encoden, decoden und parsen.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Die folgenden Konstanten sind für die Nutzung mit parse_url() vorgesehen und stehen ab PHP 5.1.2 zur Verfügung.

PHP_URL_SCHEME (int)
PHP_URL_HOST (int)
Gibt den Hostnamen der geparsten URL aus.
PHP_URL_PORT (int)
Gibt den Port der geparsten URL aus.
PHP_URL_USER (int)
Gibt den Benutzer der geparsten URL aus.
PHP_URL_PASS (int)
Gibt das Passwort der geparsten URL aus.
PHP_URL_PATH (int)
Gibt den Pfad der geparsten URL aus.
PHP_URL_QUERY (int)
Gibt den Querystring der geparsten URL aus.
PHP_URL_FRAGMENT (int)
Gibt das Fragment (Zeichenkette nach der Raute #) der geparsten URL aus.

Die folgenden Konstanten sind für die Verwendung mit http_build_query() gedacht.

PHP_QUERY_RFC1738 (int)
Die Kodierung wird gemäß » RFC 1738 und dem application/x-www-form-urlencoded Media-Typ durchgeführt, was impliziert, dass Leerzeichen als Pluszeichen (+) kodiert werden.
PHP_QUERY_RFC3986 (int)
Die Kodierung wird gemäß » RFC 3986 durchgeführt, und Leerzeichen werden prozentkodiert (%20).


URL Funktionen

Inhaltsverzeichnis

  • base64_decode — Dekodiert MIME base64-kodierte Daten
  • base64_encode — Kodiert Daten MIME base64
  • get_headers — Ruft alle Header ab, die der Server als Antwort auf einen HTTP-Request versendet
  • get_meta_tags — Liest alle content-Attribute der Meta-Tags einer Datei aus und gibt ein Array zurück
  • http_build_query — Liefert einen URL-kodierten Query-String
  • parse_url — Analysiert eine URL und gibt ihre Bestandteile zurück
  • rawurldecode — Dekodiert URL-kodierte Strings
  • rawurlencode — URL-Kodierung nach RFC 3986
  • urldecode — Dekodiert eine URL-kodierte Zeichenkette
  • urlencode — URL-kodiert einen String


Dekodiert MIME base64-kodierte Daten

  • « URL Funktionen
  • base64_encode »
  • PHP Manual
  • URL Funktionen
  • Dekodiert MIME base64-kodierte Daten

base64_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

base64_decode — Dekodiert MIME base64-kodierte Daten

Beschreibung

base64_decode ( string $string , bool $strict = false ) : string|false

Dekodiert base64-kodierte Daten, die in string übergeben wurden.

Parameter-Liste

string

Die zu dekodierenden Daten.

strict

Ist der strict-Parameter gleich true, dann gibt die base64_decode()-Funktion false zurück, wenn die Eingabe Zeichen enthält, die nicht im Base64-Alphabet vorkommen. Andernfalls werden ungültige Zeichen stillschweigend ausgesondert.

Rückgabewerte

Gibt die dekodierten Daten zurück. Im Fehlerfall wird false zurückgegeben. Die zurückgegebenen Daten können in Binärform vorliegen.

Beispiele

Beispiel #1 base64_decode()-Beispiel

<?php
$str = 'RGllcyBpc3QgZWluIHp1IGtvZGllcmVuZGVyIFN0cmluZw==';
echo base64_decode($str);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Dies ist ein zu kodierender String

Siehe auch

  • base64_encode() - Kodiert Daten MIME base64
  • » RFC 2045 Kapitel 6.8


Kodiert Daten MIME base64

  • « base64_decode
  • get_headers »
  • PHP Manual
  • URL Funktionen
  • Kodiert Daten MIME base64

base64_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

base64_encode — Kodiert Daten MIME base64

Beschreibung

base64_encode ( string $string ) : string

Kodiert den übergebenen Parameter string mittels base64.

Diese Form des Encodings wurde entworfen, um Binärdaten unbeschädigt mittels Technologien übertragen zu können, die nicht korrekt mit 8-Bit-Zeichen umgehen, wie z.B. E-Mail.

Base64-kodierte Daten benötigen ungefähr 33% mehr Speicher als die Originaldaten.

Parameter-Liste

string

Die zu kodierenden Daten.

Rückgabewerte

Die kodierten Daten in Stringform.

Beispiele

Beispiel #1 base64_encode()-Beispiel

<?php
$str = 'Dies ist ein zu kodierender String';
echo base64_encode($str);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

RGllcyBpc3QgZWluIHp1IGtvZGllcmVuZGVyIFN0cmluZw==

Siehe auch

  • base64_decode() - Dekodiert MIME base64-kodierte Daten
  • chunk_split() - Zerlegt einen String in Teile gleicher Länge
  • convert_uuencode() - UU-kodiert eine Zeichenkette
  • » RFC 2045 Kapitel 6.8


Ruft alle Header ab, die der Server als Antwort auf einen HTTP-Request versendet

  • « base64_encode
  • get_meta_tags »
  • PHP Manual
  • URL Funktionen
  • Ruft alle Header ab, die der Server als Antwort auf einen HTTP-Request versendet

get_headers

(PHP 5, PHP 7, PHP 8)

get_headers — Ruft alle Header ab, die der Server als Antwort auf einen HTTP-Request versendet

Beschreibung

get_headers ( string $url , int $format = 0 , resource $context = ? ) : array

get_headers() gibt ein Array zurück, das die vom Server in seiner Antwort (Response) auf eine HTTP-Anfrage gesendeten Header enthält.

Parameter-Liste

url

Die Ziel-URL.

format

Wenn der optionale Parameter format auf einen Wert ungleich 0 gesetzt wird, parst get_headers() die Serverantwort und setzt entsprechende Arrayschlüssel.

context

Eine gültige Kontextressource, die mit stream_context_create() erstellt wurde.

Rückgabewerte

Gibt ein indexbasiertes oder ein assoziatives Array zurück, das die übermittelten Header enthält. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | Der Parameter context wurde hinzugefügt.

Beispiele

Beispiel #1 get_headers()-Beispiel

<?php
$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, 1));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html
)

Array
(
    [0] => HTTP/1.1 200 OK
    [Date] => Sat, 29 May 2004 12:28:14 GMT
    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
    [ETag] => "3f80f-1b6-3e1cb03b"
    [Accept-Ranges] => bytes
    [Content-Length] => 438
    [Connection] => close
    [Content-Type] => text/html
)

Beispiel #2 get_headers() using HEAD example

<?php
// Standardmäßig verwendet get_headers einen GET-Request um die Header zu holen.
// Wenn statt dessen ein HEAD-Request durchgeführt werden soll, muss ein
// Stream-Kontext verwendet werden:
stream_context_set_default(
    array(
        'http' => array(
            'method' => 'HEAD'
        )
    )
);
$headers = get_headers('http://example.com');
?>

Siehe auch

  • apache_request_headers() - Liefert alle HTTP-Requestheader


Liest alle content-Attribute der Meta-Tags einer Datei aus und gibt ein Array zurück

  • « get_headers
  • http_build_query »
  • PHP Manual
  • URL Funktionen
  • Liest alle content-Attribute der Meta-Tags einer Datei aus und gibt ein Array zurück

get_meta_tags

(PHP 4, PHP 5, PHP 7, PHP 8)

get_meta_tags — Liest alle content-Attribute der Meta-Tags einer Datei aus und gibt ein Array zurück

Beschreibung

get_meta_tags ( string $filename , bool $use_include_path = false ) : array|false

Öffnet filename und untersucht die Datei Zeile für Zeile auf das Vorkommen von <meta>-Tags. Das Parsen wird beim ersten Auftreten von </head> beendet.

Parameter-Liste

filename

Der Pfad zur HTML-Datei im Stringformat. Die Datei kann lokal oder als ein URL vorliegen.

Beispiel #1 Was get_meta_tags() parst

<meta name="author" content="name">
<meta name="keywords" content="php documentation">
<meta name="DESCRIPTION" content="a php manual">
<meta name="geo.position" content="49.33;-86.59">
</head> <!-- parsing stops here -->
(Geben Sie auf die Zeilenenden acht - PHP verwendet eine native Funktion, um den Input zu parsen, daher werden Mac-Dateien auf einem Unix-System zu Fehlern führen.)

use_include_path

Ist use_include_path auf true gesetzt, wird PHP immer versuchen, die gesuchte Datei innerhalb des Standard-Include-Pfades, wie er via include_path-Direktive angegeben ist, zu finden. Diese Angabe wird nur für lokale Dateien, nicht jedoch für URLs verwendet.

Rückgabewerte

Gibt ein Array mit allen geparsten Meta-Tags zurück.

Der Wert des name-Attributs wird dabei zum Schlüssel, der Wert des content-Attributs wird zum Wert des zurückgegebenen Arrays, so dass Sie einfach die Standard-Arrayfunktionen verwenden können, um durch das gesamte Array zu durchlaufen oder auf einzelne Werte davon zuzugreifen. Sonderzeichen im Wert des name-Attributs werden mit '_' ersetzt, alle anderen Zeichen werden in Kleinbuchstaben konvertiert. Haben zwei Meta-Tags den gleichen Namen, wird nur der letzte zurückgegeben.

Gibt im Fall eines Fehlers false zurück.

Beispiele

Beispiel #2 Was get_meta_tags() zurückgibt

<?php
// Angenommen die genannten Tags stuenden auf www.example.com
$tags = get_meta_tags('http://www.example.com/');

// Beachten Sie, dass alle Keys kleingeschrieben werden
// und dass . im Schluessel durch _ ersetzt wird.
echo $tags['author'];       // name
echo $tags['keywords'];     // php documentation
echo $tags['description'];  // a php manual
echo $tags['geo_position']; // 49.33;-86.59
?>

Anmerkungen

Hinweis:

Nur Meta-Tags mit name-Attributen werden geparst. Anführungszeichen sind nicht erforderlich.

Siehe auch

  • htmlentities() - Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um
  • urlencode() - URL-kodiert einen String


Liefert einen URL-kodierten Query-String

  • « get_meta_tags
  • parse_url »
  • PHP Manual
  • URL Funktionen
  • Liefert einen URL-kodierten Query-String

http_build_query

(PHP 5, PHP 7, PHP 8)

http_build_query — Liefert einen URL-kodierten Query-String

Beschreibung

http_build_query ( mixed $data , string $numeric_prefix = ? , string $arg_separator = ? , int $encoding_type = PHP_QUERY_RFC1738 ) : string

Erstellt einen URL-kodierten Query-String aus einem gegebenen assoziativen (oder indexierten) Array.

Parameter-Liste

data

Kann ein Array oder ein Objekt sein, das Eigenschaften enthält.

Ist data ein Array, kann es eine einfache eindimensionale Struktur haben oder ein Array aus Arrays sein (die wiederum weitere Arrays enthalten können).

Ist data ein Objekt, werden nur öffentliche Eigenschaften in das Ergebnis einbezogen.

numeric_prefix

Wenn numerische Indizes im äußeren Array verwendet werden und ein numeric_prefix angegeben wurde, wird dieser nur den numerischen Schlüsseln im äußeren Array vorangestellt.

Dies ist dazu gedacht, gültige Variablennamen zu ermöglichen, wenn die Daten später von PHP oder einer anderen CGI-Applikation dekodiert werden.

arg_separator

arg_separator.output wird verwendet, um die Argumente voneinander zu trennen, kann aber durch die Angabe dieses Parameters geändert werden.

encoding_type

Standardmäßig PHP_QUERY_RFC1738.

Ist encoding_type PHP_QUERY_RFC1738, wird die Kodierung gemäß » RFC 1738 und dem application/x-www-form-urlencoded-Medientyp durchgeführt, was bedeutet, dass Leerzeichen als Pluszeichen (+) kodiert werden.

Ist encoding_type PHP_QUERY_RFC3986, wird die Kodierung gemäß » RFC 3986 durchgeführt und Leerzeichen werden mit einem Prozentzeichen (%20) kodiert.

Rückgabewerte

Gibt einen URL-kodierten String zurück.

Beispiele

Beispiel #1 Einfache Verwendung von http_build_query()

<?php
$data = array(
    'foo' => 'bar',
    'baz' => 'boom',
    'kuh' => 'milch',
    'php' => 'hypertext processor'
);

echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&amp;');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

foo=bar&baz=boom&kuh=milch&php=hypertext+processor
foo=bar&amp;baz=boom&amp;kuh=milch&amp;php=hypertext+processor

Beispiel #2 http_build_query() mit numerischen Index-Elementen.

<?php
$data = array('foo', 'bar', 'baz', 'boom', 'kuh' => 'milch', 'php' => 'hypertext processor');

echo http_build_query($data) . "\n";
echo http_build_query($data, 'meineVariable_');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0=foo&1=bar&2=baz&3=boom&kuh=milch&php=hypertext+processor
meineVariable_0=foo&meineVariable_1=bar&meineVariable_2=baz&meineVariable_3=boom&kuh=milch&php=hypertext+processor

Beispiel #3 http_build_query() mit verschachtelten Arrays

<?php
$data = array(
    'user' => array(
        'name' => 'Bob Smith',
        'alter' => 47,
        'geschlecht' => 'M',
        'geb' => '5/12/1956'
    ),
    'hobbies' => array('golf', 'opera', 'poker', 'rap'),
    'kinder' => array(
        'bobby' => array('alter'=>12,'geschlecht'=>'M'),
        'sally' => array('alter'=>8, 'geschlecht'=>'F')
    ),
    'CEO'
);

echo http_build_query($data, 'flags_');
?>

Ausgabe: (für bessere Lesbarkeit umbrochen!)

user%5Bname%5D=Bob+Smith&user%5Balter%5D=47&user%5Bgeschlecht%5D=M&
user%5Bgeb%5D=5%2F12%2F1956&hobbies%5B0%5D=golf&hobbies%5B1%5D=opera&
hobbies%5B2%5D=poker&hobbies%5B3%5D=rap&kinder%5Bbobby%5D%5Balter%5D=12&
kinder%5Bbobby%5D%5Bgeschlecht%5D=M&kinder%5Bsally%5D%5Balter%5D=8
&kinder%5Bsally%5D%5Bgeschlecht%5D=F&flags_0=CEO

Hinweis:

Nur das numerische Indexelement im äußeren Array "CEO" erhält ein Präfix. Die anderen numerischen Indizes unterhalb von hobbies benötigen kein String-Präfix, um einen gültigen Variablennamen darzustellen.

Beispiel #4 Verwendung von http_build_query() mit einem Objekt

<?php
class parentClass {
    public    $pub      = 'publicParent';
    protected $prot     = 'protectedParent';
    private   $priv     = 'privateParent';
    public    $pub_bar  = Null;
    protected $prot_bar = Null;
    private   $priv_bar = Null;

    public function __construct(){
        $this->pub_bar  = new childClass();
        $this->prot_bar = new childClass();
        $this->priv_bar = new childClass();
    }
}

class childClass {
    public    $pub  = 'publicChild';
    protected $prot = 'protectedChild';
    private   $priv = 'privateChild';
}

$parent = new parentClass();

echo http_build_query($parent);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

pub=publicParent&pub_bar%5Bpub%5D=publicChild

Siehe auch

  • parse_str() - Überträgt einen String in Variablen
  • parse_url() - Analysiert eine URL und gibt ihre Bestandteile zurück
  • urlencode() - URL-kodiert einen String
  • array_walk() - Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an


Analysiert eine URL und gibt ihre Bestandteile zurück

  • « http_build_query
  • rawurldecode »
  • PHP Manual
  • URL Funktionen
  • Analysiert eine URL und gibt ihre Bestandteile zurück

parse_url

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_url — Analysiert eine URL und gibt ihre Bestandteile zurück

Beschreibung

parse_url ( string $url , int $component = -1 ) : mixed

Diese Funktion parst einen URL und gibt ein assoziatives Array zurück, das die im URL vorhandenen Komponenten enthält. Die Werte der Array-Elemente sind nicht URL-dekodiert.

Diese Funktion ist nicht dazu gedacht, einen gegebenen URL zu validieren, sondern es gliedert einen URL in die unten aufgeführten Bestandteile. Unvollständige URLs werden als Parameter akzeptiert, parse_url() versucht, sie bestmöglich zu analysieren.

Parameter-Liste

url

Der zu parsende URL. Ungültige Zeichen werden durch _ ersetzt.

component

Geben Sie einen der folgenden Parameter an, um nur einen spezifischen Teil des URL als string (außer wenn PHP_URL_PORT angegeben wird, in welchem Fall der Rückgabewert ein int ist) zu erhalten: Geben Sie entweder PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY oder PHP_URL_FRAGMENT an.

Rückgabewerte

Bei sehr fehlerhaften URLs kann parse_url() false zurückgeben.

Wird der component Parameter ausgelassen, wird ein assoziatives Array zurückgegeben. Mindestens ein Bestandteil liegt im Array vor. Mögliche Schlüssel in diesem Array sind:

  • scheme - z.B. http
  • host
  • port
  • user
  • pass
  • path
  • query - alles nach dem Fragezeichen ?
  • fragment - alles nach dem Textanker #

Ist der Parameter component angegeben, gibt parse_url() ein string (oder ein int, im Fall von PHP_URL_PORT) anstelle des normalen array zurück.

Beispiele

Beispiel #1 Ein parse_url()-Beispiel

<?php
$url = 'http://benutzername:passwort@hostname:9090/pfad?argument=wert#textanker';

var_dump(parse_url($url));
var_dump(parse_url($url, PHP_URL_SCHEME));
var_dump(parse_url($url, PHP_URL_USER));
var_dump(parse_url($url, PHP_URL_PASS));
var_dump(parse_url($url, PHP_URL_HOST));
var_dump(parse_url($url, PHP_URL_PORT));
var_dump(parse_url($url, PHP_URL_PATH));
var_dump(parse_url($url, PHP_URL_QUERY));
var_dump(parse_url($url, PHP_URL_FRAGMENT));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(8) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(8) "hostname"
  ["port"]=>
  int(9090)
  ["user"]=>
  string(12) "benutzername"
  ["pass"]=>
  string(8) "passwort"
  ["path"]=>
  string(5) "/pfad"
  ["query"]=>
  string(13) "argument=wert"
  ["fragment"]=>
  string(9) "textanker"
}
string(4) "http"
string(12) "benutzername"
string(8) "passwort"
string(8) "hostname"
int(9090)
string(5) "/pfad"
string(13) "argument=wert"
string(9) "textanker"

Beispiel #2 Ein parse_url()-Beispiel mit fehlendem Schema

<?php
$url = '//www.example.com/path?googleguy=googley';

// Vor 5.4.7 wurde der Pfad als "//www.example.com/path" angezeigt
var_dump(parse_url($url));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  ["host"]=>
  string(15) "www.example.com"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(17) "googleguy=googley"
}

Anmerkungen

Hinweis:

Diese Funktion gibt für relative URLs möglicherweise inkorrekte Ergebnisse.

Hinweis:

Die Funktion ist primär dazu gedacht URLs zu parsen, nicht jedoch URIs. Um jedoch die Abwärtskompatibilität von PHP zu gewährleisten, wird für das Schema file:// die Ausnahme dreier Slashes (file:///) zugelassen. Bei allen anderen Schemata ist diese Notierung ungültig.

Siehe auch

  • pathinfo() - Liefert Informationen über einen Dateipfad
  • parse_str() - Überträgt einen String in Variablen
  • http_build_query() - Liefert einen URL-kodierten Query-String
  • dirname() - Gibt den Pfad des übergeordneten Verzeichnisses zurück
  • basename() - Gibt letzten Namensteil einer Pfadangabe zurück
  • » RFC 3986


Dekodiert URL-kodierte Strings

  • « parse_url
  • rawurlencode »
  • PHP Manual
  • URL Funktionen
  • Dekodiert URL-kodierte Strings

rawurldecode

(PHP 4, PHP 5, PHP 7, PHP 8)

rawurldecode — Dekodiert URL-kodierte Strings

Beschreibung

rawurldecode ( string $string ) : string

Gibt einen String zurück, in dem die Abfolgen beginnend mit einem Prozentzeichen (%) gefolgt von zwei Hex-Werten durch ihr originäres Zeichen ersetzt wurden.

Parameter-Liste

string

Der zu dekodierende URL.

Rückgabewerte

Gibt die dekodierte URL im Stringformat zurück.

Beispiele

Beispiel #1 rawurldecode()-Beispiel

<?php

echo rawurldecode('foo%20bar%40baz'); // foo bar@baz

?>

Anmerkungen

Hinweis:

rawurldecode() verwandelt beim Dekodieren Pluszeichen ('+') nicht in Leerzeichen. Dies erledigt urldecode().

Siehe auch

  • rawurlencode() - URL-Kodierung nach RFC 3986
  • urldecode() - Dekodiert eine URL-kodierte Zeichenkette
  • urlencode() - URL-kodiert einen String
  • » RFC 3986


URL-Kodierung nach RFC 3986

  • « rawurldecode
  • urldecode »
  • PHP Manual
  • URL Funktionen
  • URL-Kodierung nach RFC 3986

rawurlencode

(PHP 4, PHP 5, PHP 7, PHP 8)

rawurlencode — URL-Kodierung nach RFC 3986

Beschreibung

rawurlencode ( string $string ) : string

Kodiert einen übergebenen String entsprechend » RFC 3986.

Parameter-Liste

string

Die zu kodierende URL.

Rückgabewerte

Gibt einen String zurück, in dem alle nicht-alphanumerischen Zeichen außer -_.~ durch ein Prozentzeichen (%) gefolgt von zwei Hex-Werten ersetzt wurden. Diese Kodierung, beschrieben im » RFC 3986, wurde entworfen, um Sonderzeichen davor zu bewahren, fälschlich als spezielle URL-Trennzeichen interpretiert zu werden, sowie um URLs vor dem Verstümmeln durch Übertragungsmedien mit Zeichenumwandlung (wie bei einigen E-Mail-Systemen) zu schützen.

Hinweis:

Vor PHP 5.3.0 hat rawurlencode Tilden (~) gemäß » RFC 1738 kodiert.

Beispiele

Beispiel #1 Übergeben eines Passworts in einer FTP-URL

<?php
echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
     '@ftp.example.com/x.txt">';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<a href="ftp://user:foo%20%40%2B%25%2F@ftp.example.com/x.txt">

Oder wenn Sie eine Information innerhalb des PATH_INFO-Teils einer URL übergeben wollen:

Beispiel #2 rawurlencode()-Beispiel 2

<?php
echo '<a href="http://example.com/department_list_script/',
    rawurlencode('sales and marketing/Miami'), '">';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<a href="http://example.com/department_list_script/sales%20and%20marketing%2FMiami">

Siehe auch

  • rawurldecode() - Dekodiert URL-kodierte Strings
  • urldecode() - Dekodiert eine URL-kodierte Zeichenkette
  • urlencode() - URL-kodiert einen String
  • » RFC 3986


Dekodiert eine URL-kodierte Zeichenkette

  • « rawurlencode
  • urlencode »
  • PHP Manual
  • URL Funktionen
  • Dekodiert eine URL-kodierte Zeichenkette

urldecode

(PHP 4, PHP 5, PHP 7, PHP 8)

urldecode — Dekodiert eine URL-kodierte Zeichenkette

Beschreibung

urldecode ( string $string ) : string

Dekodiert jede %##-Kodierung einer gegebenen Zeichenkette. Pluszeichen ('+') werden in Leerzeichen umgewandelt.

Parameter-Liste

string

Der zu dekodierende String.

Rückgabewerte

Gibt den dekodierten String zurück.

Beispiele

Beispiel #1 urldecode()-Beispiel

<?php
$query = "my=apples&are=green+and+red";

foreach (explode('&', $query) as $chunk) {
    $param = explode("=", $chunk);

    if ($param) {
        printf("Wert von Parameter \"%s\" ist \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
    }
}
?>

Anmerkungen

Warnung

Die Superglobals $_GET und $_REQUEST sind bereits dekodiert. Die Verwendung von urldecode() mit Elementen von $_GET oder $_REQUEST kann daher zu unerwarteten und gefährlichen Resultaten führen.

Siehe auch

  • urlencode() - URL-kodiert einen String
  • rawurlencode() - URL-Kodierung nach RFC 3986
  • rawurldecode() - Dekodiert URL-kodierte Strings
  • » RFC 3986


URL-kodiert einen String

  • « urldecode
  • V8js »
  • PHP Manual
  • URL Funktionen
  • URL-kodiert einen String

urlencode

(PHP 4, PHP 5, PHP 7, PHP 8)

urlencode — URL-kodiert einen String

Beschreibung

urlencode ( string $string ) : string

Diese Funktion ist nützlich als einfache Möglichkeit, eine Zeichenkette zu kodieren, die im Abfrageteil einer URL zur Übergabe von Variablen an die nächste Seite verwendet werden soll.

Parameter-Liste

string

Der zu kodierende String.

Rückgabewerte

Gibt einen String zurück, in dem alle nicht-alphanumerischen Zeichen außer -_. durch ein Prozentzeichen (%) gefolgt von zwei Hexadezimalwerten und Leerzeichen durch ein Plus (+) ersetzt werden. Das Encoding geschieht auf dem gleichen Wege, wie auch durch ein WWW-Formular gepostete Daten kodiert werden - das entspricht der Auszeichnung des Dateityps application/x-www-form-urlencoded. Diese Auszeichnung unterscheidet sich von der Kodierung nach » RFC 3986 (siehe auch rawurlencode()) dadurch, dass aus historischen Gründen das Leerzeichen als Pluszeichen (+) kodiert wird.

Beispiele

Beispiel #1 urlencode()-Beispiel

<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>

Beispiel #2 urlencode() und htmlentities()-Beispiel

<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>

Anmerkungen

Hinweis:

Seien Sie vorsichtig beim Umgang mit Variablen, die HTML-Entities enthalten könnten. Angaben wie &amp, &copy und &pound werden vom Browser geparst und die eigentliche Entität wird anstelle des gewünschten Variablennamens verwendet. Dies ist eine naheliegende Schwierigkeit, über die das W3C bereits seit Jahren informiert. Die entsprechende Referenz finden Sie hier: » http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2.

PHP unterstützt den Austausch des vom W3C empfohlenen Argument-Trenners Semikolon durch einen selbstgewählten Trenner über die arg_separator-Direktive in der php.ini. Leider senden die meisten User-Agents Formulardaten nicht im standardkonformen semikolongetrennten Format. Ein möglicher Weg, mit diesem Problem umzugehen, ist die Verwendung von &amp; anstelle von & als Trennzeichen. Sie müssen dafür nicht die php.ini-Direktive arg_separator verändern. Belassen Sie sie als &, und verwenden Sie statt dessen für Ihre URLs die Funktionen htmlentities() oder htmlspecialchars().

Siehe auch

  • urldecode() - Dekodiert eine URL-kodierte Zeichenkette
  • htmlentities() - Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um
  • rawurlencode() - URL-Kodierung nach RFC 3986
  • rawurldecode() - Dekodiert URL-kodierte Strings
  • » RFC 3986


V8 Javascript-Engine Integration

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Beispiele
  • V8Js — Die Klasse V8Js
    • V8Js::__construct — Erstellt ein neues V8Js-Objekt
    • V8Js::executeString — Führt JavaScript-Code aus
    • V8Js::getExtensions — Gibt ein Array der registrierten Erweiterungen zurück
    • V8Js::getPendingException — Gibt ausstehende ungefangene JavaScript-Exception zurück.
    • V8Js::registerExtension — Registriert JavaScript-Erweiterungen für V8Js
  • V8JsException — Die Klasse V8JsException
    • V8JsException::getJsFileName — The getJsFileName purpose
    • V8JsException::getJsLineNumber — The getJsLineNumber purpose
    • V8JsException::getJsSourceLine — The getJsSourceLine purpose
    • V8JsException::getJsTrace — The getJsTrace purpose


  • « V8js
  • Installation/Konfiguration »
  • PHP Manual
  • V8js
  • Einführung

Einführung

Diese Erweiterung bindet die » V8 Javascript-Engine in PHP ein.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

PHP 5.3.3+ und die V8-Bibliothek mit Headern sind an den üblichen Orten installiert.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/v8js


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

V8js Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
v8js.max_disposed_contexts | 25 | PHP_INI_ALL |
v8js.flags |  | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

v8js.max_disposed_contexts int

Setzt das Limit für disponierte Kontexte bevor V8 gezwungen wird, eine Garbage-Collection durchzuführen.

v8js.flags string

Setzt V8-Kommandozeilenparameter. Die Liste der verfügbaren Parameter kann im CLI-Mode durch Setzen des Parameters --help ausgelesen werden. Beispiel:

$ php -r 'ini_set("v8js.flags", "--help"); new V8Js;' | less

Hinweis:

Damit diese Parameter Wirkung zeigen, müssen ini_set()-Aufrufe erfolgen bevor V8Js-Objekte instanziiert werden.


  • « Laufzeit-Konfiguration
  • Beispiele »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert keine Ressource-Typen.


Beispiele

Einfache Anwendungsbeispiele

Beispiel #1 Einfache Ausführung von JavaScript

<?php

$v8 = new V8Js();

/* basic.js */
$JS = <<< EOT
len = print('Hallo' + ' ' + 'Welt!' + "\\n");
len;
EOT;

try {
  var_dump($v8->executeString($JS, 'basic.js'));
} catch (V8JsException $e) {
  var_dump($e);
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hallo Welt!
int(12)


Die Klasse V8Js

(PECL v8js >= 0.1.0)

Einführung

Dies ist die Kernklasse der V8JS-Erweiterung. Jede Instanz dieser Klasse hat einen eigenen Kontext, in dem das gesamte JavaScript kompiliert und ausgeführt wird.

Für mehr Informationen, siehe V8Js::__construct().

Klassenbeschreibung

V8Js {
/* Konstanten */
const string V8_VERSION ;
const int FLAG_NONE = 1 ;
const int FLAG_FORCE_ARRAY = 2 ;
/* Methoden */
public __construct ( string $object_name = "PHP" , array $variables = array() , array $extensions = array() , bool $report_uncaught_exceptions = true )
public executeString ( string $script , string $identifier = "V8Js::executeString()" , int $flags = V8Js::FLAG_NONE ) : mixed
public static getExtensions ( ) : array
public getPendingException ( ) : V8JsException
public static registerExtension ( string $extension_name , string $script , array $dependencies = array() , bool $auto_enable = false ) : bool
}

Vordefinierte Konstanten

V8Js::V8_VERSION

Version der V8-Engine.

V8Js::FLAG_NONE

Keine Parameter.

V8Js::FLAG_FORCE_ARRAY

Verursacht, dass alle JavaScript-Objekte in PHP als assoziative Arrays abgebildet werden.

Inhaltsverzeichnis

  • V8Js::__construct — Erstellt ein neues V8Js-Objekt
  • V8Js::executeString — Führt JavaScript-Code aus
  • V8Js::getExtensions — Gibt ein Array der registrierten Erweiterungen zurück
  • V8Js::getPendingException — Gibt ausstehende ungefangene JavaScript-Exception zurück.
  • V8Js::registerExtension — Registriert JavaScript-Erweiterungen für V8Js


Erstellt ein neues V8Js-Objekt

  • « V8Js
  • V8Js::executeString »
  • PHP Manual
  • V8Js
  • Erstellt ein neues V8Js-Objekt

V8Js::__construct

(PECL v8js >= 0.1.0)

V8Js::__construct — Erstellt ein neues V8Js-Objekt

Beschreibung

public V8Js::__construct
 ( string $object_name = "PHP"
, array $variables = array()
, array $extensions = array()
, bool $report_uncaught_exceptions = true
)

Erstellt ein neues V8Js-Objekt.

Parameter-Liste

object_name

Der Name des Objekts, dass an JavaScript übergeben wird.

variables

Zuweisung von PHP-Variablen die in JavaScript verfügbar sein sollen. Es muss sich um ein assoziatives array im folgenden Format handeln: array("name-for-js" => "name-of-php-variable"). Standard ist ein leeres Array.

extensions

Liste von Erweiterungen, die mit V8Js::registerExtension() registriert wurden und im JavaScript-Kontext des erstellten V8Js-Objekts verfügbar sein sollen.

Hinweis:

Erweiterungen, die als automatisch aktiviert registriert wurden, müssen nicht in diesem Array gelistet werden. Auch wenn eine Erweiterung von anderen abhängt, müssen letztere nicht gelistet werden. Standard ist ein leeres Array.

report_uncaught_exceptions

Steuert, ob ungefangene JavaScript-Exceptions sofort berichtet werden sollen oder nicht. Standardeinstellung ist true, wenn der Wert auf false gesetzt wird, kann auf die ungefangene Ausnahme über V8Js::getPendingException() zugegriffen werden.

Rückgabewerte

Gibt ein neues V8Js-Kontextobjekt zurück.


Führt JavaScript-Code aus

  • « V8Js::__construct
  • V8Js::getExtensions »
  • PHP Manual
  • V8Js
  • Führt JavaScript-Code aus

V8Js::executeString

(PECL v8js >= 0.1.0)

V8Js::executeString — Führt JavaScript-Code aus

Beschreibung

public V8Js::executeString ( string $script , string $identifier = "V8Js::executeString()" , int $flags = V8Js::FLAG_NONE ) : mixed

Kompiliert die als script übergebene Zeichenkette als JavaScript-Code und führt sie aus.

Parameter-Liste

script

Der Code, der ausgeführt werden soll.

identifier

Identifizierende Zeichenkette für den Code (zu Fehlersuchzwecken).

flags

Parameter für die Ausführung. Dieser Wert muss einer der folgenden V8Js::FLAG_*-Konstanten entsprechen, standardmäßig V8Js::FLAG_NONE.

  • V8Js::FLAG_NONE: keine Parameter

  • V8Js::FLAG_FORCE_ARRAY: veranlasst, dass alle Javascript-Objekte in PHP als assoziative Arrays abgebildet werden.

Rückgabewerte

Gibt die letzte im JavaScript-Code instanziierte Variable, in den passenden PHP-Variablentyp umgewandelt, zurück.


Gibt ein Array der registrierten Erweiterungen zurück

  • « V8Js::executeString
  • V8Js::getPendingException »
  • PHP Manual
  • V8Js
  • Gibt ein Array der registrierten Erweiterungen zurück

V8Js::getExtensions

(PECL v8js >= 0.1.0)

V8Js::getExtensions — Gibt ein Array der registrierten Erweiterungen zurück

Beschreibung

public static V8Js::getExtensions ( ) : array

Diese Funktion gibt ein Array der mit V8Js::registerExtension() registrierten JavaScript-Erweiterungen zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt ein Array von registrierten Erweiterungen zurück oder ein leeres Array, wenn keine registriert sind.


Gibt ausstehende ungefangene JavaScript-Exception zurück.

  • « V8Js::getExtensions
  • V8Js::registerExtension »
  • PHP Manual
  • V8Js
  • Gibt ausstehende ungefangene JavaScript-Exception zurück.

V8Js::getPendingException

(PECL v8js >= 0.1.0)

V8Js::getPendingException — Gibt ausstehende ungefangene JavaScript-Exception zurück.

Beschreibung

public V8Js::getPendingException ( ) : V8JsException

Gibt eine ausstehende nicht abgefangene JavaScript-Ausnahme als V8JsException zurück, die von vorherigen V8Js::executeString()-Aufrufen übrig ist.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Entweder eine V8JsException oder null.


Registriert JavaScript-Erweiterungen für V8Js

  • « V8Js::getPendingException
  • V8JsException »
  • PHP Manual
  • V8Js
  • Registriert JavaScript-Erweiterungen für V8Js

V8Js::registerExtension

(PECL v8js >= 0.1.0)

V8Js::registerExtension — Registriert JavaScript-Erweiterungen für V8Js

Beschreibung

public static V8Js::registerExtension ( string $extension_name , string $script , array $dependencies = array() , bool $auto_enable = false ) : bool

Registriert das JavaScript script als Erweiterung, die in V8Js-Kontexten benutzt werden soll.

Parameter-Liste

extension_name

Name der Erweiterung, die registriert werden soll.

script

JavaScript-Code, der registriert werden soll.

dependencies

Array mit Namen von Erweiterungen, von denen diese Erweiterung abhängt. Jede solche Erweiterung ist automatisch aktiviert, wenn diese Erweiterung geladen wird.

Hinweis:

Alle Erweiterungen, inklusive der Abhängigkeiten, müssen registriert werden, bevor V8Js-Objekte instanziiert werden, die diese nutzen sollen.

auto_enable

Ist dieser Wert true (Standard: false), so wird die Erweiterung automatisch in allen V8Js-Kontexten aktiviert.

Rückgabewerte

Gibt bei Erfolg true zurück, ansonsten false


Die Klasse V8JsException

(PECL v8js >= 0.1.0)

Einführung

Klassenbeschreibung

V8JsException extends Exception {
/* Eigenschaften */
protected $JsFileName ;
protected $JsLineNumber ;
protected $JsSourceLine ;
protected $JsTrace ;
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
final public getJsFileName ( ) : string
final public getJsLineNumber ( ) : int
final public getJsSourceLine ( ) : string
final public getJsTrace ( ) : string
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

JsFileName

JsLineNumber

JsSourceLine

JsTrace

Inhaltsverzeichnis

  • V8JsException::getJsFileName — The getJsFileName purpose
  • V8JsException::getJsLineNumber — The getJsLineNumber purpose
  • V8JsException::getJsSourceLine — The getJsSourceLine purpose
  • V8JsException::getJsTrace — The getJsTrace purpose


The getJsFileName purpose

  • « V8JsException
  • V8JsException::getJsLineNumber »
  • PHP Manual
  • V8JsException
  • The getJsFileName purpose

V8JsException::getJsFileName

(PECL v8js >= 0.1.0)

V8JsException::getJsFileName — The getJsFileName purpose

Beschreibung

final public V8JsException::getJsFileName ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getJsLineNumber purpose

  • « V8JsException::getJsFileName
  • V8JsException::getJsSourceLine »
  • PHP Manual
  • V8JsException
  • The getJsLineNumber purpose

V8JsException::getJsLineNumber

(PECL v8js >= 0.1.0)

V8JsException::getJsLineNumber — The getJsLineNumber purpose

Beschreibung

final public V8JsException::getJsLineNumber ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getJsSourceLine purpose

  • « V8JsException::getJsLineNumber
  • V8JsException::getJsTrace »
  • PHP Manual
  • V8JsException
  • The getJsSourceLine purpose

V8JsException::getJsSourceLine

(PECL v8js >= 0.1.0)

V8JsException::getJsSourceLine — The getJsSourceLine purpose

Beschreibung

final public V8JsException::getJsSourceLine ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getJsTrace purpose

  • « V8JsException::getJsSourceLine
  • Yaml »
  • PHP Manual
  • V8JsException
  • The getJsTrace purpose

V8JsException::getJsTrace

(PECL v8js >= 0.1.0)

V8JsException::getJsTrace — The getJsTrace purpose

Beschreibung

final public V8JsException::getJsTrace ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


YAML Data Serialization

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Callbacks
    • Parse callbacks
    • Emit callbacks
  • Yaml Funktionen
    • yaml_emit_file — Send the YAML representation of a value to a file
    • yaml_emit — Returns the YAML representation of a value
    • yaml_parse_file — Parse a YAML stream from a file
    • yaml_parse_url — Parse a Yaml stream from a URL
    • yaml_parse — Parse a YAML stream


Einführung

This extension implements the » YAML Ain't Markup Language (YAML) data serialization standard. Parsing and emiting are handled by the » LibYAML library.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

This extension requires the » LibYAML C library version 0.1.0 or higher to be installed.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/yaml.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Yaml Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
yaml.decode_binary | 0 | PHP_INI_ALL |
yaml.decode_php | 0 | PHP_INI_ALL | Added in 1.2.0, before 2.0.0 the default was 1
yaml.decode_timestamp | 0 | PHP_INI_ALL |
yaml.output_canonical | 0 | PHP_INI_ALL |
yaml.output_indent | 2 | PHP_INI_ALL |
yaml.output_width | 80 | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

yaml.decode_binary bool

Off by default, but can be set to on to cause base64 binary encoded entities which have the explicit tag "tag:yaml.org,2002:binary" to be decoded.

yaml.decode_php bool

Off by default, but can be set to on to cause serialized php objects which have the explicit tag "!php/object" to be unserialized.

yaml.decode_timestamp int

Controls the decoding of both implicit and explicit "tag:yaml.org,2002:timestamp" scalars in the YAML document stream. The default setting of 0 will not apply any decoding. A setting of 1 will use strtotime() to parse the timestamp value as a Unix timestamp. A setting of 2 will use date_create() to parse the timestamp value as DateTime object.

yaml.output_canonical bool

Off by default, but can be set to on to cause canonical form output.

yaml.output_indent int

Number of spaces to indent sections. Value should be between 1 and 10.

yaml.output_width int

Set the preferred line width. -1 means unlimited.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Scalar entity styles usable by yaml_parse() callback methods.
YAML_ANY_SCALAR_STYLE (int)
YAML_PLAIN_SCALAR_STYLE (int)
YAML_SINGLE_QUOTED_SCALAR_STYLE (int)
YAML_DOUBLE_QUOTED_SCALAR_STYLE (int)
YAML_LITERAL_SCALAR_STYLE (int)
YAML_FOLDED_SCALAR_STYLE (int)
Common tags usable by yaml_parse() callback methods.
YAML_NULL_TAG (string)
"tag:yaml.org,2002:null"
YAML_BOOL_TAG (string)
"tag:yaml.org,2002:bool"
YAML_STR_TAG (string)
"tag:yaml.org,2002:str"
YAML_INT_TAG (string)
"tag:yaml.org,2002:int"
YAML_FLOAT_TAG (string)
"tag:yaml.org,2002:float"
YAML_TIMESTAMP_TAG (string)
"tag:yaml.org,2002:timestamp"
YAML_SEQ_TAG (string)
"tag:yaml.org,2002:seq"
YAML_MAP_TAG (string)
"tag:yaml.org,2002:map"
YAML_PHP_TAG (string)
"!php/object"
Encoding types for yaml_emit()
YAML_ANY_ENCODING (int)
Let the emitter choose an encoding.
YAML_UTF8_ENCODING (int)
Encode as UTF8.
YAML_UTF16LE_ENCODING (int)
Encode as UTF16LE.
YAML_UTF16BE_ENCODING (int)
Encode as UTF16BE.
Linebreak types for yaml_emit()
YAML_ANY_BREAK (int)
Let emitter choose linebreak character.
YAML_CR_BREAK (int)
Use \r as break character (Mac style).
YAML_LN_BREAK (int)
Use \n as break character (Unix style).
YAML_CRLN_BREAK (int)
Use \r\n as break character (DOS style).


Beispiele

Beispiel #1 Yaml Example

<?php
$addr = array(
    "given" => "Chris",
    "family"=> "Dumars",
    "address"=> array(
        "lines"=> "458 Walkman Dr.
        Suite #292",
        "city"=> "Royal Oak",
        "state"=> "MI",
        "postal"=> 48046,
      ),
  );
$invoice = array (
    "invoice"=> 34843,
    "date"=> "2001-01-23",
    "bill-to"=> $addr,
    "ship-to"=> $addr,
    "product"=> array(
        array(
            "sku"=> "BL394D",
            "quantity"=> 4,
            "description"=> "Basketball",
            "price"=> 450,
          ),
        array(
            "sku"=> "BL4438H",
            "quantity"=> 1,
            "description"=> "Super Hoop",
            "price"=> 2392,
          ),
      ),
    "tax"=> 251.42,
    "total"=> 4443.52,
    "comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
    );

// generate a YAML representation of the invoice
$yaml = yaml_emit($invoice);
var_dump($yaml);

// convert the YAML back into a PHP variable
$parsed = yaml_parse($yaml);

// check that roundtrip conversion produced an equivalent structure
var_dump($parsed == $invoice);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(631) "---
invoice: 34843
date: "2001-01-23"
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
"
bool(true)


  • « Beispiele
  • Parse callbacks »
  • PHP Manual
  • Yaml
  • Callbacks

Callbacks

Inhaltsverzeichnis

  • Parse callbacks
  • Emit callbacks


Parse callbacks

Parse callables are invoked by yaml_parse(), yaml_parse_file() or yaml_parse_url() functions when a registered YAML tag is encountered. The callback is passed the tagged entity's value, the tag, and flags indicating the scalar entity style. The callback must return the data that the YAML parser should emit for this entity.

Beispiel #1 Parse callback example

<?php
/**
 * Parsing callback for yaml tag.
 * @param mixed $value Data from yaml file
 * @param string $tag Tag that triggered callback
 * @param int $flags Scalar entity style (see YAML_*_SCALAR_STYLE)
 * @return mixed Value that YAML parser should emit for the given value
 */
function tag_callback ($value, $tag, $flags) {
  var_dump(func_get_args()); // debugging
  return "Hello {$value}";
}

$yaml = <<<YAML
greeting: !example/hello World
YAML;

$result = yaml_parse($yaml, 0, $ndocs, array(
    '!example/hello' => 'tag_callback',
  ));

var_dump($result);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  string(5) "World"
  [1]=>
  string(14) "!example/hello"
  [2]=>
  int(1)
}
array(1) {
  ["greeting"]=>
  string(11) "Hello World"
}


Emit callbacks

Emit callbacks are invoked when an instance of a registered class is emitted by yaml_emit() or yaml_emit_file(). The callback is passed the object to be emitted. The callback must return an array having two keys: "tag" and "data". The value associated with the "tag" key must be a string to be used as the YAML tag in the output. The value associated with the "data" key will be encoded as YAML and emitted in place of the intercepted object.

Beispiel #1 Emit callback example

<?php
class EmitExample {
  public $data;    // data may be in any pecl/yaml suitable type

  public function __construct ($d) {
    $this->data = $d;
  }

  /**
   * Yaml emit callback function, referred on yaml_emit call by class name.
   *
   * Expected to return an array with 2 values:
   *   - 'tag': custom tag for this serialization
   *   - 'data': value to convert to yaml (array, string, bool, number)
   *
   * @param object $obj Object to be emitted
   * @return array Tag and surrogate data to emit
   */
  public static function yamlEmit (EmitExample $obj) {
    return array(
      'tag' => '!example/emit',
      'data' => $obj->data,
    );
  }
}

$emit_callbacks = array(
  'EmitExample' => array('EmitExample', 'yamlEmit')
);

$t = new EmitExample(array('a','b','c'));
$yaml = yaml_emit(
  array(
    'example' => $t,
  ),
  YAML_ANY_ENCODING,
  YAML_ANY_BREAK,
  $emit_callbacks
);
var_dump($yaml);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(43) "---
example: !example/emit
- a
- b
- c
...
"


Yaml Funktionen

Inhaltsverzeichnis

  • yaml_emit_file — Send the YAML representation of a value to a file
  • yaml_emit — Returns the YAML representation of a value
  • yaml_parse_file — Parse a YAML stream from a file
  • yaml_parse_url — Parse a Yaml stream from a URL
  • yaml_parse — Parse a YAML stream


Send the YAML representation of a value to a file

  • « Yaml Funktionen
  • yaml_emit »
  • PHP Manual
  • Yaml Funktionen
  • Send the YAML representation of a value to a file

yaml_emit_file

(PECL yaml >= 0.5.0)

yaml_emit_file — Send the YAML representation of a value to a file

Beschreibung

yaml_emit_file ( string $filename , mixed $data , int $encoding = YAML_ANY_ENCODING , int $linebreak = YAML_ANY_BREAK , array $callbacks = null ) : bool

Generate a YAML representation of the provided data in the filename.

Parameter-Liste

filename

Path to the file.

data

The data being encoded. Can be any type except a resource.

encoding

Output character encoding chosen from YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING.

linebreak

Output linebreak style chosen from YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK.

callbacks

Content handlers for emitting YAML nodes. Associative array of classname => callable mappings. See emit callbacks for more details.

Rückgabewerte

Returns true on success.

Changelog

Version | Beschreibung
PECL yaml 1.1.0 | The callbacks parameter was added.

Siehe auch

  • yaml_emit() - Returns the YAML representation of a value
  • yaml_parse() - Parse a YAML stream


Returns the YAML representation of a value

  • « yaml_emit_file
  • yaml_parse_file »
  • PHP Manual
  • Yaml Funktionen
  • Returns the YAML representation of a value

yaml_emit

(PECL yaml >= 0.5.0)

yaml_emit — Returns the YAML representation of a value

Beschreibung

yaml_emit ( mixed $data , int $encoding = YAML_ANY_ENCODING , int $linebreak = YAML_ANY_BREAK , array $callbacks = null ) : string

Generate a YAML representation of the provided data.

Parameter-Liste

data

The data being encoded. Can be any type except a resource.

encoding

Output character encoding chosen from YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING.

linebreak

Output linebreak style chosen from YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK.

callbacks

Content handlers for emitting YAML nodes. Associative array of classname => callable mappings. See emit callbacks for more details.

Rückgabewerte

Returns a YAML encoded string on success.

Changelog

Version | Beschreibung
PECL yaml 1.1.0 | The callbacks parameter was added.

Beispiele

Beispiel #1 yaml_emit() example

<?php
$addr = array(
    "given" => "Chris",
    "family"=> "Dumars",
    "address"=> array(
        "lines"=> "458 Walkman Dr.
        Suite #292",
        "city"=> "Royal Oak",
        "state"=> "MI",
        "postal"=> 48046,
      ),
  );
$invoice = array (
    "invoice"=> 34843,
    "date"=> 980208000,
    "bill-to"=> $addr,
    "ship-to"=> $addr,
    "product"=> array(
        array(
            "sku"=> "BL394D",
            "quantity"=> 4,
            "description"=> "Basketball",
            "price"=> 450,
          ),
        array(
            "sku"=> "BL4438H",
            "quantity"=> 1,
            "description"=> "Super Hoop",
            "price"=> 2392,
          ),
      ),
    "tax"=> 251.42,
    "total"=> 4443.52,
    "comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
  );
var_dump(yaml_emit($invoice));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(628) "---
invoice: 34843
date: 980208000
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
"

Siehe auch

  • yaml_emit_file() - Send the YAML representation of a value to a file
  • yaml_parse() - Parse a YAML stream


Parse a YAML stream from a file

  • « yaml_emit
  • yaml_parse_url »
  • PHP Manual
  • Yaml Funktionen
  • Parse a YAML stream from a file

yaml_parse_file

(PECL yaml >= 0.4.0)

yaml_parse_file — Parse a YAML stream from a file

Beschreibung

yaml_parse_file ( string $filename , int $pos = 0 , int &$ndocs = ? , array $callbacks = null ) : mixed

Convert all or part of a YAML document stream read from a file to a PHP variable.

Parameter-Liste

filename

Path to the file.

pos

Document to extract from stream (-1 for all documents, 0 for first document, ...).

ndocs

If ndocs is provided, then it is filled with the number of documents found in stream.

callbacks

Content handlers for YAML nodes. Associative array of YAML tag => callable mappings. See parse callbacks for more details.

Rückgabewerte

Returns the value encoded in input in appropriate PHP typeIm Fehlerfall wird false zurückgegeben.. If pos is -1 an array will be returned with one entry for each document found in the stream.

Anmerkungen

Warnung

Processing untrusted user input with yaml_parse_file() is dangerous if the use of unserialize() is enabled for nodes using the !php/object tag. This behavior can be disabled by using the yaml.decode_php ini setting.

Siehe auch

  • yaml_parse() - Parse a YAML stream
  • yaml_parse_url() - Parse a Yaml stream from a URL
  • yaml_emit() - Returns the YAML representation of a value


Parse a Yaml stream from a URL

  • « yaml_parse_file
  • yaml_parse »
  • PHP Manual
  • Yaml Funktionen
  • Parse a Yaml stream from a URL

yaml_parse_url

(PECL yaml >= 0.4.0)

yaml_parse_url — Parse a Yaml stream from a URL

Beschreibung

yaml_parse_url ( string $url , int $pos = 0 , int &$ndocs = ? , array $callbacks = null ) : mixed

Convert all or part of a YAML document stream read from a URL to a PHP variable.

Parameter-Liste

url

url should be of the form "scheme://...". PHP will search for a protocol handler (also known as a wrapper) for that scheme. If no wrappers for that protocol are registered, PHP will emit a notice to help you track potential problems in your script and then continue as though filename specifies a regular file.

pos

Document to extract from stream (-1 for all documents, 0 for first document, ...).

ndocs

If ndocs is provided, then it is filled with the number of documents found in stream.

callbacks

Content handlers for YAML nodes. Associative array of YAML tag => callable mappings. See parse callbacks for more

Rückgabewerte

Returns the value encoded in input in appropriate PHP typeIm Fehlerfall wird false zurückgegeben.. If pos is -1 an array will be returned with one entry for each document found in the stream.

Anmerkungen

Warnung

Processing untrusted user input with yaml_parse_url() is dangerous if the use of unserialize() is enabled for nodes using the !php/object tag. This behavior can be disabled by using the yaml.decode_php ini setting.

Siehe auch

  • yaml_parse() - Parse a YAML stream
  • yaml_parse_file() - Parse a YAML stream from a file
  • yaml_emit() - Returns the YAML representation of a value


Parse a YAML stream

  • « yaml_parse_url
  • Yaf »
  • PHP Manual
  • Yaml Funktionen
  • Parse a YAML stream

yaml_parse

(PECL yaml >= 0.4.0)

yaml_parse — Parse a YAML stream

Beschreibung

yaml_parse ( string $input , int $pos = 0 , int &$ndocs = ? , array $callbacks = null ) : mixed

Convert all or part of a YAML document stream to a PHP variable.

Parameter-Liste

input

The string to parse as a YAML document stream.

pos

Document to extract from stream (-1 for all documents, 0 for first document, ...).

ndocs

If ndocs is provided, then it is filled with the number of documents found in stream.

callbacks

Content handlers for YAML nodes. Associative array of YAML tag => callable mappings. See parse callbacks for more details.

Rückgabewerte

Returns the value encoded in input in appropriate PHP typeIm Fehlerfall wird false zurückgegeben.. If pos is -1 an array will be returned with one entry for each document found in the stream.

Beispiele

Beispiel #1 yaml_parse() example

<?php
$yaml = <<<EOD
---
invoice: 34843
date: "2001-01-23"
bill-to: &id001
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to: *id001
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
EOD;

$parsed = yaml_parse($yaml);
var_dump($parsed);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(8) {
  ["invoice"]=>
  int(34843)
  ["date"]=>
  string(10) "2001-01-23"
  ["bill-to"]=>
  &array(3) {
    ["given"]=>
    string(5) "Chris"
    ["family"]=>
    string(6) "Dumars"
    ["address"]=>
    array(4) {
      ["lines"]=>
      string(34) "458 Walkman Dr.
        Suite #292"
      ["city"]=>
      string(9) "Royal Oak"
      ["state"]=>
      string(2) "MI"
      ["postal"]=>
      int(48046)
    }
  }
  ["ship-to"]=>
  &array(3) {
    ["given"]=>
    string(5) "Chris"
    ["family"]=>
    string(6) "Dumars"
    ["address"]=>
    array(4) {
      ["lines"]=>
      string(34) "458 Walkman Dr.
        Suite #292"
      ["city"]=>
      string(9) "Royal Oak"
      ["state"]=>
      string(2) "MI"
      ["postal"]=>
      int(48046)
    }
  }
  ["product"]=>
  array(2) {
    [0]=>
    array(4) {
      ["sku"]=>
      string(6) "BL394D"
      ["quantity"]=>
      int(4)
      ["description"]=>
      string(10) "Basketball"
      ["price"]=>
      int(450)
    }
    [1]=>
    array(4) {
      ["sku"]=>
      string(7) "BL4438H"
      ["quantity"]=>
      int(1)
      ["description"]=>
      string(10) "Super Hoop"
      ["price"]=>
      int(2392)
    }
  }
  ["tax"]=>
  float(251.42)
  ["total"]=>
  float(4443.52)
  ["comments"]=>
  string(68) "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338."
}

Anmerkungen

Warnung

Processing untrusted user input with yaml_parse() is dangerous if the use of unserialize() is enabled for nodes using the !php/object tag. This behavior can be disabled by using the yaml.decode_php ini setting.

Siehe auch

  • yaml_parse_file() - Parse a YAML stream from a file
  • yaml_parse_url() - Parse a Yaml stream from a URL
  • yaml_emit() - Returns the YAML representation of a value


Yet Another Framework

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Application Configuration
  • Yaf_Application — The Yaf_Application class
    • Yaf_Application::app — Retrieve an Application instance
    • Yaf_Application::bootstrap — Call bootstrap
    • Yaf_Application::clearLastError — Clear the last error info
    • Yaf_Application::__construct — Yaf_Application constructor
    • Yaf_Application::__destruct — The __destruct purpose
    • Yaf_Application::environ — Retrive environ
    • Yaf_Application::execute — Execute a callback
    • Yaf_Application::getAppDirectory — Get the application directory
    • Yaf_Application::getConfig — Retrive the config instance
    • Yaf_Application::getDispatcher — Get Yaf_Dispatcher instance
    • Yaf_Application::getLastErrorMsg — Get message of the last occurred error
    • Yaf_Application::getLastErrorNo — Get code of last occurred error
    • Yaf_Application::getModules — Get defined module names
    • Yaf_Application::run — Start Yaf_Application
    • Yaf_Application::setAppDirectory — Change the application directory
  • Yaf_Bootstrap_Abstract — The Yaf_Bootstrap_Abstract class
  • Yaf_Dispatcher — The Yaf_Dispatcher class
    • Yaf_Dispatcher::autoRender — Switch on/off autorendering
    • Yaf_Dispatcher::catchException — Switch on/off exception catching
    • Yaf_Dispatcher::__construct — Yaf_Dispatcher constructor
    • Yaf_Dispatcher::disableView — Disable view rendering
    • Yaf_Dispatcher::dispatch — Dispatch a request
    • Yaf_Dispatcher::enableView — Enable view rendering
    • Yaf_Dispatcher::flushInstantly — Switch on/off the instant flushing
    • Yaf_Dispatcher::getApplication — Retrive the application
    • Yaf_Dispatcher::getDefaultAction — Retrive the default action name
    • Yaf_Dispatcher::getDefaultController — Retrive the default controller name
    • Yaf_Dispatcher::getDefaultModule — Retrive the default module name
    • Yaf_Dispatcher::getInstance — Retrive the dispatcher instance
    • Yaf_Dispatcher::getRequest — Retrive the request instance
    • Yaf_Dispatcher::getRouter — Retrive router instance
    • Yaf_Dispatcher::initView — Initialize view and return it
    • Yaf_Dispatcher::registerPlugin — Register a plugin
    • Yaf_Dispatcher::returnResponse — The returnResponse purpose
    • Yaf_Dispatcher::setDefaultAction — Change default action name
    • Yaf_Dispatcher::setDefaultController — Change default controller name
    • Yaf_Dispatcher::setDefaultModule — Change default module name
    • Yaf_Dispatcher::setErrorHandler — Set error handler
    • Yaf_Dispatcher::setRequest — The setRequest purpose
    • Yaf_Dispatcher::setView — Set a custom view engine
    • Yaf_Dispatcher::throwException — Switch on/off exception throwing
  • Yaf_Config_Abstract — The Yaf_Config_Abstract class
    • Yaf_Config_Abstract::get — Getter
    • Yaf_Config_Abstract::readonly — Find a config whether readonly
    • Yaf_Config_Abstract::set — Setter
    • Yaf_Config_Abstract::toArray — Cast to array
  • Yaf_Config_Ini — The Yaf_Config_Ini class
    • Yaf_Config_Ini::__construct — Yaf_Config_Ini constructor
    • Yaf_Config_Ini::count — Count all elements in Yaf_Config.ini
    • Yaf_Config_Ini::current — Retrieve the current value
    • Yaf_Config_Ini::__get — Retrieve a element
    • Yaf_Config_Ini::__isset — Determine if a key is exists
    • Yaf_Config_Ini::key — Fetch current element's key
    • Yaf_Config_Ini::next — Advance the internal pointer
    • Yaf_Config_Ini::offsetExists — The offsetExists purpose
    • Yaf_Config_Ini::offsetGet — The offsetGet purpose
    • Yaf_Config_Ini::offsetSet — The offsetSet purpose
    • Yaf_Config_Ini::offsetUnset — The offsetUnset purpose
    • Yaf_Config_Ini::readonly — The readonly purpose
    • Yaf_Config_Ini::rewind — The rewind purpose
    • Yaf_Config_Ini::__set — The __set purpose
    • Yaf_Config_Ini::toArray — Return config as a PHP array
    • Yaf_Config_Ini::valid — The valid purpose
  • Yaf_Config_Simple — The Yaf_Config_Simple class
    • Yaf_Config_Simple::__construct — The __construct purpose
    • Yaf_Config_Simple::count — The count purpose
    • Yaf_Config_Simple::current — The current purpose
    • Yaf_Config_Simple::__get — The __get purpose
    • Yaf_Config_Simple::__isset — The __isset purpose
    • Yaf_Config_Simple::key — The key purpose
    • Yaf_Config_Simple::next — The next purpose
    • Yaf_Config_Simple::offsetExists — The offsetExists purpose
    • Yaf_Config_Simple::offsetGet — The offsetGet purpose
    • Yaf_Config_Simple::offsetSet — The offsetSet purpose
    • Yaf_Config_Simple::offsetUnset — The offsetUnset purpose
    • Yaf_Config_Simple::readonly — The readonly purpose
    • Yaf_Config_Simple::rewind — The rewind purpose
    • Yaf_Config_Simple::__set — The __set purpose
    • Yaf_Config_Simple::toArray — Returns a PHP array
    • Yaf_Config_Simple::valid — The valid purpose
  • Yaf_Controller_Abstract — The Yaf_Controller_Abstract class
    • Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor
    • Yaf_Controller_Abstract::display — The display purpose
    • Yaf_Controller_Abstract::forward — Foward to another action
    • Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose
    • Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose
    • Yaf_Controller_Abstract::getModuleName — Get module name
    • Yaf_Controller_Abstract::getName — Get self name
    • Yaf_Controller_Abstract::getRequest — Retrieve current request object
    • Yaf_Controller_Abstract::getResponse — Retrieve current response object
    • Yaf_Controller_Abstract::getView — Retrieve the view engine
    • Yaf_Controller_Abstract::getViewpath — The getViewpath purpose
    • Yaf_Controller_Abstract::init — Controller initializer
    • Yaf_Controller_Abstract::initView — The initView purpose
    • Yaf_Controller_Abstract::redirect — Redirect to a URL
    • Yaf_Controller_Abstract::render — Render view template
    • Yaf_Controller_Abstract::setViewpath — The setViewpath purpose
  • Yaf_Action_Abstract — The Yaf_Action_Abstract class
    • Yaf_Action_Abstract::execute — Action entry point
    • Yaf_Action_Abstract::getController — Retrieve controller object
    • Yaf_Action_Abstract::getControllerName — Get controller name
  • Yaf_View_Interface — The Yaf_View_Interface class
    • Yaf_View_Interface::assign — Assign value to View engine
    • Yaf_View_Interface::display — Render and output a template
    • Yaf_View_Interface::getScriptPath — The getScriptPath purpose
    • Yaf_View_Interface::render — Render a template
    • Yaf_View_Interface::setScriptPath — The setScriptPath purpose
  • Yaf_View_Simple — The Yaf_View_Simple class
    • Yaf_View_Simple::assign — Assign values
    • Yaf_View_Simple::assignRef — The assignRef purpose
    • Yaf_View_Simple::clear — Clear Assigned values
    • Yaf_View_Simple::__construct — Constructor of Yaf_View_Simple
    • Yaf_View_Simple::display — Render and display
    • Yaf_View_Simple::eval — Render template
    • Yaf_View_Simple::__get — Retrieve assigned variable
    • Yaf_View_Simple::getScriptPath — Get templates directory
    • Yaf_View_Simple::__isset — The __isset purpose
    • Yaf_View_Simple::render — Render template
    • Yaf_View_Simple::__set — Set value to engine
    • Yaf_View_Simple::setScriptPath — Set tempaltes directory
  • Yaf_Loader — The Yaf_Loader class
    • Yaf_Loader::autoload — The autoload purpose
    • Yaf_Loader::clearLocalNamespace — The clearLocalNamespace purpose
    • Yaf_Loader::__construct — The __construct purpose
    • Yaf_Loader::getInstance — The getInstance purpose
    • Yaf_Loader::getLibraryPath — Get the library path
    • Yaf_Loader::getLocalNamespace — The getLocalNamespace purpose
    • Yaf_Loader::getNamespacePath — Retieve path of a registered namespace
    • Yaf_Loader::getLocalNamespace — Retrive all register namespaces info
    • Yaf_Loader::import — The import purpose
    • Yaf_Loader::isLocalName — The isLocalName purpose
    • Yaf_Loader::registerLocalNamespace — Register local class prefix
    • Yaf_Loader::registerNamespace — Register namespace with searching path
    • Yaf_Loader::setLibraryPath — Change the library path
  • Yaf_Plugin_Abstract — The Yaf_Plugin_Abstract class
    • Yaf_Plugin_Abstract::dispatchLoopShutdown — The dispatchLoopShutdown purpose
    • Yaf_Plugin_Abstract::dispatchLoopStartup — Hook before dispatch loop
    • Yaf_Plugin_Abstract::postDispatch — The postDispatch purpose
    • Yaf_Plugin_Abstract::preDispatch — The preDispatch purpose
    • Yaf_Plugin_Abstract::preResponse — The preResponse purpose
    • Yaf_Plugin_Abstract::routerShutdown — The routerShutdown purpose
    • Yaf_Plugin_Abstract::routerStartup — RouterStartup hook
  • Yaf_Registry — The Yaf_Registry class
    • Yaf_Registry::__construct — Yaf_Registry implements singleton
    • Yaf_Registry::del — Remove an item from registry
    • Yaf_Registry::get — Retrieve an item from registry
    • Yaf_Registry::has — Check whether an item exists
    • Yaf_Registry::set — Add an item into registry
  • Yaf_Request_Abstract — The Yaf_Request_Abstract class
    • Yaf_Request_Abstract::clearParams — Remove all params
    • Yaf_Request_Abstract::getActionName — The getActionName purpose
    • Yaf_Request_Abstract::getBaseUri — The getBaseUri purpose
    • Yaf_Request_Abstract::getControllerName — The getControllerName purpose
    • Yaf_Request_Abstract::getEnv — Retrieve ENV varialbe
    • Yaf_Request_Abstract::getException — The getException purpose
    • Yaf_Request_Abstract::getLanguage — Retrieve client's prefered language
    • Yaf_Request_Abstract::getMethod — Retrieve the request method
    • Yaf_Request_Abstract::getModuleName — The getModuleName purpose
    • Yaf_Request_Abstract::getParam — Retrieve calling parameter
    • Yaf_Request_Abstract::getParams — Retrieve all calling parameters
    • Yaf_Request_Abstract::getRequestUri — The getRequestUri purpose
    • Yaf_Request_Abstract::getServer — Retrieve SERVER variable
    • Yaf_Request_Abstract::isCli — Determine if request is CLI request
    • Yaf_Request_Abstract::isDispatched — Determin if the request is dispatched
    • Yaf_Request_Abstract::isGet — Determine if request is GET request
    • Yaf_Request_Abstract::isHead — Determine if request is HEAD request
    • Yaf_Request_Abstract::isOptions — Determine if request is OPTIONS request
    • Yaf_Request_Abstract::isPost — Determine if request is POST request
    • Yaf_Request_Abstract::isPut — Determine if request is PUT request
    • Yaf_Request_Abstract::isRouted — Determin if request has been routed
    • Yaf_Request_Abstract::isXmlHttpRequest — Determine if request is AJAX request
    • Yaf_Request_Abstract::setActionName — Set action name
    • Yaf_Request_Abstract::setBaseUri — Set base URI
    • Yaf_Request_Abstract::setControllerName — Set controller name
    • Yaf_Request_Abstract::setDispatched — The setDispatched purpose
    • Yaf_Request_Abstract::setModuleName — Set module name
    • Yaf_Request_Abstract::setParam — Set a calling parameter to a request
    • Yaf_Request_Abstract::setRequestUri — The setRequestUri purpose
    • Yaf_Request_Abstract::setRouted — The setRouted purpose
  • Yaf_Request_Http — The Yaf_Request_Http class
    • Yaf_Request_Http::__construct — Constructor of Yaf_Request_Http
    • Yaf_Request_Http::get — Retrieve variable from client
    • Yaf_Request_Http::getCookie — Retrieve Cookie variable
    • Yaf_Request_Http::getFiles — The getFiles purpose
    • Yaf_Request_Http::getPost — Retrieve POST variable
    • Yaf_Request_Http::getQuery — Fetch a query parameter
    • Yaf_Request_Http::getRaw — Retrieve Raw request body
    • Yaf_Request_Http::getRequest — The getRequest purpose
    • Yaf_Request_Http::isXmlHttpRequest — Determin if request is Ajax Request
  • Yaf_Request_Simple — The Yaf_Request_Simple class
    • Yaf_Request_Simple::__construct — Constructor of Yaf_Request_Simple
    • Yaf_Request_Simple::get — The get purpose
    • Yaf_Request_Simple::getCookie — The getCookie purpose
    • Yaf_Request_Simple::getFiles — The getFiles purpose
    • Yaf_Request_Simple::getPost — The getPost purpose
    • Yaf_Request_Simple::getQuery — The getQuery purpose
    • Yaf_Request_Simple::getRequest — The getRequest purpose
    • Yaf_Request_Simple::isXmlHttpRequest — Determin if request is AJAX request
  • Yaf_Response_Abstract — The Yaf_Response_Abstract class
    • Yaf_Response_Abstract::appendBody — Append to response body
    • Yaf_Response_Abstract::clearBody — Discard all exists response body
    • Yaf_Response_Abstract::clearHeaders — Discard all set headers
    • Yaf_Response_Abstract::__construct — The __construct purpose
    • Yaf_Response_Abstract::__destruct — The __destruct purpose
    • Yaf_Response_Abstract::getBody — Retrieve a exists content
    • Yaf_Response_Abstract::getHeader — The getHeader purpose
    • Yaf_Response_Abstract::prependBody — The prependBody purpose
    • Yaf_Response_Abstract::response — Send response
    • Yaf_Response_Abstract::setAllHeaders — The setAllHeaders purpose
    • Yaf_Response_Abstract::setBody — Set content to response
    • Yaf_Response_Abstract::setHeader — Set reponse header
    • Yaf_Response_Abstract::setRedirect — The setRedirect purpose
    • Yaf_Response_Abstract::__toString — Retrieve all bodys as string
  • Yaf_Route_Interface — The Yaf_Route_Interface class
    • Yaf_Route_Interface::assemble — Assemble a request
    • Yaf_Route_Interface::route — Route a request
  • Yaf_Route_Map — The Yaf_Route_Map class
    • Yaf_Route_Map::assemble — Assemble a url
    • Yaf_Route_Map::__construct — The __construct purpose
    • Yaf_Route_Map::route — The route purpose
  • Yaf_Route_Regex — The Yaf_Route_Regex class
    • Yaf_Route_Regex::assemble — Assemble a url
    • Yaf_Route_Regex::__construct — Yaf_Route_Regex constructor
    • Yaf_Route_Regex::route — The route purpose
  • Yaf_Route_Rewrite — The Yaf_Route_Rewrite class
    • Yaf_Route_Rewrite::assemble — Assemble a url
    • Yaf_Route_Rewrite::__construct — Yaf_Route_Rewrite constructor
    • Yaf_Route_Rewrite::route — The route purpose
  • Yaf_Router — The Yaf_Router class
    • Yaf_Router::addConfig — Add config-defined routes into Router
    • Yaf_Router::addRoute — Add new Route into Router
    • Yaf_Router::__construct — Yaf_Router constructor
    • Yaf_Router::getCurrentRoute — Get the effective route name
    • Yaf_Router::getRoute — Retrieve a route by name
    • Yaf_Router::getRoutes — Retrieve registered routes
    • Yaf_Router::route — The route purpose
  • Yaf_Route_Simple — The Yaf_Route_Simple class
    • Yaf_Route_Simple::assemble — Assemble a url
    • Yaf_Route_Simple::__construct — Yaf_Route_Simple constructor
    • Yaf_Route_Simple::route — Route a request
  • Yaf_Route_Static — The Yaf_Route_Static class
    • Yaf_Route_Static::assemble — Assemble a url
    • Yaf_Route_Static::match — The match purpose
    • Yaf_Route_Static::route — Route a request
  • Yaf_Route_Supervar — The Yaf_Route_Supervar class
    • Yaf_Route_Supervar::assemble — Assemble a url
    • Yaf_Route_Supervar::__construct — The __construct purpose
    • Yaf_Route_Supervar::route — The route purpose
  • Yaf_Session — The Yaf_Session class
    • Yaf_Session::__construct — Constructor of Yaf_Session
    • Yaf_Session::count — The count purpose
    • Yaf_Session::current — The current purpose
    • Yaf_Session::del — The del purpose
    • Yaf_Session::__get — The __get purpose
    • Yaf_Session::getInstance — The getInstance purpose
    • Yaf_Session::has — The has purpose
    • Yaf_Session::__isset — The __isset purpose
    • Yaf_Session::key — The key purpose
    • Yaf_Session::next — The next purpose
    • Yaf_Session::offsetExists — The offsetExists purpose
    • Yaf_Session::offsetGet — The offsetGet purpose
    • Yaf_Session::offsetSet — The offsetSet purpose
    • Yaf_Session::offsetUnset — The offsetUnset purpose
    • Yaf_Session::rewind — The rewind purpose
    • Yaf_Session::__set — The __set purpose
    • Yaf_Session::start — The start purpose
    • Yaf_Session::__unset — The __unset purpose
    • Yaf_Session::valid — The valid purpose
  • Yaf_Exception — The Yaf_Exception class
    • Yaf_Exception::__construct — The __construct purpose
    • Yaf_Exception::getPrevious — The getPrevious purpose
  • Yaf_Exception_TypeError — The Yaf_Exception_TypeError class
  • Yaf_Exception_StartupError — The Yaf_Exception_StartupError class
  • Yaf_Exception_DispatchFailed — The Yaf_Exception_DispatchFailed class
  • Yaf_Exception_RouterFailed — The Yaf_Exception_RouterFailed class
  • Yaf_Exception_LoadFailed — The Yaf_Exception_LoadFailed class
  • Yaf_Exception_LoadFailed_Module — The Yaf_Exception_LoadFailed_Module class
  • Yaf_Exception_LoadFailed_Controller — The Yaf_Exception_LoadFailed_Controller class
  • Yaf_Exception_LoadFailed_Action — The Yaf_Exception_LoadFailed_Action class
  • Yaf_Exception_LoadFailed_View — The Yaf_Exception_LoadFailed_View class


Einführung

The Yet Another Framework (Yaf) extension is a PHP framework that is used to develop web applications.

Yaf requires PHP 5.2.1 or greater. Earlier versions may not work.

A simple Yaf benchmark can be found at » Yaf Performance.

For a quick start guide, please refer to the Tutorials section.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/yaf.

Windows binaries (DLL files) for this PECL extension are available from the PECL website.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Yaf Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
yaf.library |  | PHP_INI_ALL |
yaf.action_prefer | 0 | PHP_INI_ALL |
yaf.lowcase_path | 0 | PHP_INI_ALL |
yaf.use_spl_autoload | 0 | PHP_INI_ALL |
yaf.forward_limit | 5 | PHP_INI_ALL |
yaf.name_suffix | 1 | PHP_INI_ALL |
yaf.name_separator |  | PHP_INI_ALL |
yaf.cache_config | 0 | PHP_INI_SYSTEM |
yaf.environ | product | PHP_INI_SYSTEM |
yaf.use_namespace | 0 | PHP_INI_SYSTEM |

Hier eine kurze Erklärung der Konfigurationsoptionen:

yaf.library string

The global library path, Yaf_loader will search global library in this directory.

yaf.action_prefer int

If there is only one part in PATH_INFO, should it consider as a controller or action.

If this configure On, it will be considered as a Action name.

yaf.lowcase_path int

Whether lowercase all the path during the class autoloading.

yaf.use_spl_autoload int

When this value is On, if Yaf_Loader can not find a class, it will return false, then give chance to other auto load function to be called.

When this value is Off, if Yaf_Loader can not find a class, it will return true, and make the class autoloading failed immediately.

Hinweis:

Yaf will register its loader during a instantiation of Yaf_Application, so any other auto loaders which is register before the instantiation will be called before Yaf_Loader::autoload().

When this value is Off(default), Yaf_Loader::autoload() will always return true.

yaf.forward_limit int

The max forward count, default is 5. that means you can have a max value of 5 in the forward stack.

This is a protection for prevent recursive Yaf_Controller_Abstract::forward().

yaf.name_suffix int

When this On, Yaf_Loader will identify a class by it's suffix to decide whether it is a MVC Class.

When this Off, Yaf_Loader will look at the prefix of the class name.

yaf.name_separator string

When this is not empty, Yaf_Loader will identify the class suffix and string value of this.

For example, when this value is "_", Yaf_Loader will take Index_Controller as a Controller Class, IndexController as a normal class.

yaf.cache_config int

If this is On, and in the meantime you are using ini config file as the parameter of Yaf_Application(), the compiling result of the ini config file will be cached in the PHP process.

Hinweis:

Yaf examine the mtime of the ini file, if it was changed since last compiling, Yaf will reload it.

Warnung

Yaf use the ini file path as the cache entry key, so do use the absolute path in ini file path, otherwise there might be some conflicts if two application use the same relative path of ini config.

yaf.environ string

This value is "product" by default, used for Yaf to fetch the config section of a ini config file.

That is, if this value is "product", Yaf will use the section named "product" in the ini config file(the first parameter of the Yaf_Application) as the final config of the Yaf_Application.

yaf.use_namespace int

Only works as of PHP 5.3, if this value is On, All classes of Yaf will named in namespace style.

For example:

Yaf_Route_Rewrite => \Yaf\Route\Rewrite
Yaf_Request_Http  => \Yaf\Request\Http
There is a exception, that is some classes like Yaf_Controller_Abstract. The last component is a keyword of PHP, could not be used as a class name, so for such classes:
Yaf_Controller_Abstract => \Yaf\Controller_Abstract
Yaf_Route_Static => \Yaf\Route_Static


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

YAF_VERSION (string)
YAF_ENVIRON (string)
YAF_ERR_STARTUP_FAILED (int)
YAF_ERR_ROUTE_FAILED (int)
YAF_ERR_DISPATCH_FAILED (int)
YAF_ERR_AUTOLOAD_FAILED (int)
YAF_ERR_NOTFOUND_MODULE (int)
YAF_ERR_NOTFOUND_CONTROLLER (int)
YAF_ERR_NOTFOUND_ACTION (int)
YAF_ERR_NOTFOUND_VIEW (int)
YAF_ERR_CALL_FAILED (int)
YAF_ERR_TYPE_ERROR (int)


Beispiele

Beispiel #1 A classic Application directory layout

- index.php
- .htaccess
+ conf
  |- application.ini //application config
- application/
  - Bootstrap.php
  + controllers
     - Index.php //default controller
  + views
     |+ index
        - index.phtml //view template for default action
  + modules
  - library
  - models
  - plugins

Beispiel #2 Entry

index.php in the top directory is the only way in of the application, you should rewrite all request to it. (You can use .htaccess in Apache + php_mod)

<?php
define("APPLICATION_PATH",  dirname(__FILE__));

$app  = new Yaf_Application(APPLICATION_PATH . "/conf/application.ini");
$app->bootstrap() //call bootstrap methods defined in Bootstrap.php
 ->run();
?>

Beispiel #3 Rewrite rule

#for apache (.htaccess)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php

#for nginx
server {
  listen ****;
  server_name  domain.com;
  root   document_root;
  index  index.php index.html index.htm;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php$1 last;
  }
}

#for lighttpd
$HTTP["host"] =~ "(www.)?domain.com$" {
  url.rewrite = (
     "^/(.+)/?$"  => "/index.php/$1",
  )
}

Beispiel #4 Application config

[yaf]
;APPLICATION_PATH is the constant defined in index.php
application.directory=APPLICATION_PATH "/application/"

;product section inherit from yaf section
[product:yaf]
foo=bar

Beispiel #5 Default controller

<?php
class IndexController extends Yaf_Controller_Abstract {
   /* default action */
   public function indexAction() {
       $this->_view->word = "hello world";
       //or
       // $this->getView()->word = "hello world";
   }
}
?>

Beispiel #6 Default view template

<html>
 <head>
   <title>Hello World</title>
 </head>
 <body>
   <?php echo $word;?>
 </body>
</html>

Beispiel #7 Run the Application

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

<html>
 <head>
   <title>Hello World</title>
 </head>
 <body>
   hello world
 </body>
</html>

Hinweis:

you can also generate above example by use Yaf codes generator, which could be found here yaf@github.


Application Configuration

You should give an array of config or an ini config file(see Yaf_Config_Ini) path to Yaf_Application::__construct().

Yaf will merge the application configurations and user configurations automatically. The application configurations have prefix "yaf." or "application.". If both "yaf." and "application." exist, "application." will be accepted preferentially.

Beispiel #1 An PHP array example

<?php
    $configs = array(
            "application" => array(
                "directory" => dirname(__FILE__),
                "dispatcher" => array(
                      "catchException" => 0,
                    ),
                "view" => array(
                       "ext" => "phtml",
                    ),
                ),
           );
    $app = new Yaf_Application($configs);
?>

Beispiel #2 An ini file example

[yaf]
yaf.directory = APPLICATION_PATH "/appliation"
yaf.dispatcher.catchException = 0

[product : yaf]
; user configuration list here

Yaf Application Config
Name | Standard | Changelog
application.directory |  |
application.ext | "php" |
application.view.ext | "phtml" |
application.modules | "index" |
application.library | application.directory . "/library" |
application.library.directory | application.directory . "/library" |
application.library.namespace | "" |
application.bootstrap | application.directory . "/Bootstrap" . application.ext |
application.baseUri | "" |
application.dispatcher.defaultRoute |  |
application.dispatcher.throwException | 1 |
application.dispatcher.catchException | 0 |
application.dispatcher.defaultModule | "index" |
application.dispatcher.defaultController | "index" |
application.dispatcher.defaultAction | "index" |
application.system |  |

Hier eine kurze Erklärung der Konfigurationsoptionen:

application.directory string

The directory of the application, that is the folder which contains the "controllers", "views", "models", "plugins" folders.

Hinweis:

This config entry is the only one which doesn't has a default value. You should always define it manually.

application.ext string

The file ext of the PHP script, used in class autoloading( Yaf_Loader).

application.view.ext string

The file ext of the view template scripts.

application.modules string

A comma-separated list of the registered modules, used in the route process, especially while there are more than three segments in the PATH_INFO,

Yaf need a way to find out whether the first segment is a module name or not.

application.library string

The local library directory, see Yaf_Loader and yaf.library.

Hinweis:

After Yaf 2.1.6, this config entry can be an array. The library path will try to use the items setted in application.library.directory

application.library.directory string

Alias of application.library. Introduced in Yaf 2.1.6

application.library.namespace string

A comma-separated prefix of local library namespace.

Introduced in Yaf 2.1.6

application.bootstrap string

A absolute path of the Bootstrap class script.

application.baseUri string

Used to remove a fixed prefix of request uri in route process. Take a example, comes a request with request uri "/prefix/controller/action". if you set application.baseUri to "/prefix", then only "/controller/action" will take as the PATH_INFO in route process.

In generally, there is no need to set this value.

application.dispatcher.throwException bool

If it set to On, Yaf will throw an exception while some error occurring. See also Yaf_Dispatcher::throwException().

application.dispatcher.catchException bool

If it set to On, Yaf will forward to Error controller/Action while there is an unhandled exception. See also Yaf_Dispatcher::catchException().

application.dispatcher.defaultRoute string

The default Route, if it is not specificed, Static route will be used as default. See: Yaf_Router::addRoute().

application.dispatcher.defaultModule string

The default module name, see also Yaf_Dispatcher::setDefaultModule().

application.dispatcher.defaultController string

The default controller name, see also Yaf_Dispatcher::setDefaultController().

application.dispatcher.defaultAction string

The default action name, see also Yaf_Dispatcher::setDefaultAction().

application.system string

Set yaf runtime configure in application.ini, like: application.system.lowcase_path

Hinweis:

only those PHP_INI_ALL configures can be set in this way


The Yaf_Application class

(No version information available, might only be in Git)

Einführung

Yaf_Application provides a bootstrapping facility for applications which provides reusable resources, common- and module-based bootstrap classes and dependency checking.

Hinweis:

Yaf_Application implements the singleton pattern, and Yaf_Application can not be serialized or unserialized which will cause problem when you try to use PHPUnit to write some test case for Yaf.

You may use @backupGlobals annotation of PHPUnit to control the backup and restore operations for global variables. thus can solve this problem.

Klassenbeschreibung

final Yaf_Application {
/* Eigenschaften */
protected $config ;
protected $dispatcher ;
protected static $_app ;
protected $_modules ;
protected $_running ;
protected $_environ ;
/* Methoden */
public staticapp ( ) : mixed
public bootstrap ( Yaf_Bootstrap_Abstract $bootstrap = ? ) : void
public clearLastError ( ) : Yaf_Application
public __construct ( mixed $config , string $envrion = ? )
public __destruct ( ) : void
public environ ( ) : void
public execute ( callable $entry , string ...$args ) : void
public getAppDirectory ( ) : Yaf_Application
public getConfig ( ) : Yaf_Config_Abstract
public getDispatcher ( ) : Yaf_Dispatcher
public getLastErrorMsg ( ) : string
public getLastErrorNo ( ) : int
public getModules ( ) : array
public run ( ) : void
public setAppDirectory ( string $directory ) : Yaf_Application
}

Eigenschaften

config

dispatcher

_app

_modules

_running

_environ

Inhaltsverzeichnis

  • Yaf_Application::app — Retrieve an Application instance
  • Yaf_Application::bootstrap — Call bootstrap
  • Yaf_Application::clearLastError — Clear the last error info
  • Yaf_Application::__construct — Yaf_Application constructor
  • Yaf_Application::__destruct — The __destruct purpose
  • Yaf_Application::environ — Retrive environ
  • Yaf_Application::execute — Execute a callback
  • Yaf_Application::getAppDirectory — Get the application directory
  • Yaf_Application::getConfig — Retrive the config instance
  • Yaf_Application::getDispatcher — Get Yaf_Dispatcher instance
  • Yaf_Application::getLastErrorMsg — Get message of the last occurred error
  • Yaf_Application::getLastErrorNo — Get code of last occurred error
  • Yaf_Application::getModules — Get defined module names
  • Yaf_Application::run — Start Yaf_Application
  • Yaf_Application::setAppDirectory — Change the application directory


Retrieve an Application instance

  • « Yaf_Application
  • Yaf_Application::bootstrap »
  • PHP Manual
  • Yaf_Application
  • Retrieve an Application instance

Yaf_Application::app

(Yaf >=1.0.0)

Yaf_Application::app — Retrieve an Application instance

Beschreibung

public staticYaf_Application::app ( ) : mixed

Retrieve the Yaf_Application instance. Alternatively, we also could use Yaf_Dispatcher::getApplication().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Yaf_Application instance, if no Yaf_Application was initialized before, null will be returned.

Siehe auch

  • Yaf_Dispatcher::getApplication() - Retrive the application


Call bootstrap

  • « Yaf_Application::app
  • Yaf_Application::clearLastError »
  • PHP Manual
  • Yaf_Application
  • Call bootstrap

Yaf_Application::bootstrap

(Yaf >=1.0.0)

Yaf_Application::bootstrap — Call bootstrap

Beschreibung

public Yaf_Application::bootstrap ( Yaf_Bootstrap_Abstract $bootstrap = ? ) : void

Run a Bootstrap, all the methods defined in the Bootstrap and named with prefix "_init" will be called according to their declaration order, if the parameter bootstrap is not supplied, Yaf will look for a Bootstrap under application.directory.

Parameter-Liste

bootstrap

A Yaf_Bootstrap_Abstract instance

Rückgabewerte

Yaf_Application instance

Beispiele

Beispiel #1 A Bootstrap()example

<?php
/**
 * This file should be under the APPLICATION_PATH . "/application/"(which was defined in the config passed to Yaf_Application).
 * and named Bootstrap.php,  so the Yaf_Application can find it
 */
class Bootstrap extends Yaf_Bootstrap_Abstract {
    function _initConfig(Yaf_Dispatcher $dispatcher) {
        echo "1st called\n";
    }

    function _initPlugin($dispatcher) {
        echo "2nd called\n";
    }
}
?>

Beispiel #2 Yaf_Application::bootstrap()example

<?php

defined('APPLICATION_PATH')                  // APPLICATION_PATH will be used in the ini config file
    || define('APPLICATION_PATH', __DIR__)); //__DIR__ was introduced after PHP 5.3

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1st called
2nd called

Siehe auch

  • Yaf_Bootstrap_Abstract


Clear the last error info

  • « Yaf_Application::bootstrap
  • Yaf_Application::__construct »
  • PHP Manual
  • Yaf_Application
  • Clear the last error info

Yaf_Application::clearLastError

(Yaf >=2.1.2)

Yaf_Application::clearLastError — Clear the last error info

Beschreibung

public Yaf_Application::clearLastError ( ) : Yaf_Application

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Application::clearLastError()example

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
   Yaf_Application::app()->clearLastError();
   var_dump(Yaf_Application::app()->getLastErrorNo());
}

$config = array(
 "application" => array(
   "directory" => "/tmp/notexists",
     "dispatcher" => array(
       "throwException" => 0, //trigger error instead of throw exception when error occure
      ),
  ),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(0)


Yaf_Application constructor

  • « Yaf_Application::clearLastError
  • Yaf_Application::__destruct »
  • PHP Manual
  • Yaf_Application
  • Yaf_Application constructor

Yaf_Application::__construct

(Yaf >=1.0.0)

Yaf_Application::__construct — Yaf_Application constructor

Beschreibung

public Yaf_Application::__construct ( mixed $config , string $envrion = ? )

Instance a Yaf_Application.

Parameter-Liste

config

A ini config file path, or a config array

If is a ini config file, there should be a section named as the one defined by yaf.environ, which is "product" by default.

Hinweis:

If you use a ini configuration file as your applicatioin's config container. you would open the yaf.cache_config to improve performance.

And the config entry(and there default value) list blow:

Beispiel #1 A ini config file example

[product]
;this one should alway be defined, and have no default value
application.directory=APPLICATION_PATH

;following configs have default value, you may no need to define them
application.library = APPLICATION_PATH . "/library"
application.dispatcher.throwException=1
application.dispatcher.catchException=1

application.baseUri=""

;the php script ext name
ap.ext=php

;the view template ext name
ap.view.ext=phtml

ap.dispatcher.defaultModuel=Index
ap.dispatcher.defaultController=Index
ap.dispatcher.defaultAction=index

;defined modules
ap.modules=Index

envrion

Which section will be loaded as the final config

Rückgabewerte

Beispiele

Beispiel #2 Yaf_Application::__construct()example

<?php
defined('APPLICATION_PATH')                  // APPLICATION_PATH will be used in the ini config file
    || define('APPLICATION_PATH', __DIR__)); //__DIR__ was introduced after PHP 5.3

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap()->run();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Beispiel #3 Yaf_Application::__construct()example

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
$application->bootstrap()->run();
?>

 Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Siehe auch

  • Yaf_Config_Ini
    •


The __destruct purpose

  • « Yaf_Application::__construct
  • Yaf_Application::environ »
  • PHP Manual
  • Yaf_Application
  • The __destruct purpose

Yaf_Application::__destruct

(Yaf >=1.0.0)

Yaf_Application::__destruct — The __destruct purpose

Beschreibung

public Yaf_Application::__destruct ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrive environ

  • « Yaf_Application::__destruct
  • Yaf_Application::execute »
  • PHP Manual
  • Yaf_Application
  • Retrive environ

Yaf_Application::environ

(Yaf >=1.0.0)

Yaf_Application::environ — Retrive environ

Beschreibung

public Yaf_Application::environ ( ) : void

Retrive environ which was defined in yaf.environ which has a default value "product".

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Application::environ()example

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->environ());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

product


Execute a callback

  • « Yaf_Application::environ
  • Yaf_Application::getAppDirectory »
  • PHP Manual
  • Yaf_Application
  • Execute a callback

Yaf_Application::execute

(Yaf >=1.0.0)

Yaf_Application::execute — Execute a callback

Beschreibung

public Yaf_Application::execute ( callable $entry , string ...$args ) : void

This method is typically used to run Yaf_Application in a crontab work. Make the crontab work can also use the autoloader and Bootstrap mechanism.

Parameter-Liste

entry

a valid callback

args

parameters will pass to the callback

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Application::execute()example

<?php
function main($argc, $argv) {
}

$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
$application->execute("main", $argc,  $argv);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:


Get the application directory

  • « Yaf_Application::execute
  • Yaf_Application::getConfig »
  • PHP Manual
  • Yaf_Application
  • Get the application directory

Yaf_Application::getAppDirectory

(Yaf >=2.1.4)

Yaf_Application::getAppDirectory — Get the application directory

Beschreibung

public Yaf_Application::getAppDirectory ( ) : Yaf_Application

Parameter-Liste

directory

Rückgabewerte


Retrive the config instance

  • « Yaf_Application::getAppDirectory
  • Yaf_Application::getDispatcher »
  • PHP Manual
  • Yaf_Application
  • Retrive the config instance

Yaf_Application::getConfig

(Yaf >=1.0.0)

Yaf_Application::getConfig — Retrive the config instance

Beschreibung

public Yaf_Application::getConfig ( ) : Yaf_Config_Abstract

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Yaf_Config_Abstract instance

Beispiele

Beispiel #1 Yaf_Application::getConfig()example

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getConfig());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Yaf_Config_Simple Object
(
    [_config:protected] => Array
        (
            [application] => Array
                (
                    [directory] => /home/laruence/local/www/htdocs/application
                )

        )

    [_readonly:protected] => 1
)


Get Yaf_Dispatcher instance

  • « Yaf_Application::getConfig
  • Yaf_Application::getLastErrorMsg »
  • PHP Manual
  • Yaf_Application
  • Get Yaf_Dispatcher instance

Yaf_Application::getDispatcher

(Yaf >=1.0.0)

Yaf_Application::getDispatcher — Get Yaf_Dispatcher instance

Beschreibung

public Yaf_Application::getDispatcher ( ) : Yaf_Dispatcher

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Application::getDispatcher()example

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getDispatcher());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Yaf_Dispatcher Object
(
    [_router:protected] => Yaf_Router Object
        (
            [_routes:protected] => Array
                (
                    [_default] => Yaf_Route_Static Object
                        (
                        )

                )

            [_current:protected] =>
        )

    [_view:protected] =>
    [_request:protected] => Yaf_Request_Http Object
        (
            [module] =>
            [controller] =>
            [action] =>
            [method] => Cli
            [params:protected] => Array
                (
                )

            [language:protected] =>
            [_exception:protected] =>
            [_base_uri:protected] =>
            [uri:protected] =>
            [dispatched:protected] =>
            [routed:protected] =>
        )

    [_plugins:protected] => Array
        (
        )

    [_auto_render:protected] => 1
    [_return_response:protected] =>
    [_instantly_flush:protected] =>
    [_default_module:protected] => Index
    [_default_controller:protected] => Index
    [_default_action:protected] => index
    [_response] => Yaf_Response_Cli Object
        (
            [_header:protected] => Array
                (
                )

            [_body:protected] =>
            [_sendheader:protected] =>
        )

)


Get message of the last occurred error

  • « Yaf_Application::getDispatcher
  • Yaf_Application::getLastErrorNo »
  • PHP Manual
  • Yaf_Application
  • Get message of the last occurred error

Yaf_Application::getLastErrorMsg

(Yaf >=2.1.2)

Yaf_Application::getLastErrorMsg — Get message of the last occurred error

Beschreibung

public Yaf_Application::getLastErrorMsg ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Application::getLastErrorMsg()example

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
   var_dump(Yaf_Application::app()->getLastErrorMsg());
}

$config = array(
 "application" => array(
   "directory" => "/tmp/notexists",
     "dispatcher" => array(
       "throwException" => 0, //trigger error instead of throw exception when error occure
      ),
  ),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(69) "Could not find controller script /tmp/notexists/controllers/Index.php"


Get code of last occurred error

  • « Yaf_Application::getLastErrorMsg
  • Yaf_Application::getModules »
  • PHP Manual
  • Yaf_Application
  • Get code of last occurred error

Yaf_Application::getLastErrorNo

(Yaf >=2.1.2)

Yaf_Application::getLastErrorNo — Get code of last occurred error

Beschreibung

public Yaf_Application::getLastErrorNo ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Application::getLastErrorNo()example

<?php
function error_handler($errno, $errstr, $errfile, $errline) {
   var_dump(Yaf_Application::app()->getLastErrorNo());
   var_dump(Yaf_Application::app()->getLastErrorNo() == YAF_ERR_NOTFOUND_CONTROLLER);
}

$config = array(
  "application" => array(
   "directory" => "/tmp/notexists",
     "dispatcher" => array(
       "throwException" => 0, //trigger error instead of throw exception when error occure
      ),
  ),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(516)
bool(true)


Get defined module names

  • « Yaf_Application::getLastErrorNo
  • Yaf_Application::run »
  • PHP Manual
  • Yaf_Application
  • Get defined module names

Yaf_Application::getModules

(Yaf >=1.0.0)

Yaf_Application::getModules — Get defined module names

Beschreibung

public Yaf_Application::getModules ( ) : array

Get the modules list defined in config, if no one defined, there will always be a module named "Index".

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Application::getModules()example

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getModules());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Index
)


Start Yaf_Application

  • « Yaf_Application::getModules
  • Yaf_Application::setAppDirectory »
  • PHP Manual
  • Yaf_Application
  • Start Yaf_Application

Yaf_Application::run

(Yaf >=1.0.0)

Yaf_Application::run — Start Yaf_Application

Beschreibung

public Yaf_Application::run ( ) : void

Run a Yaf_Application, let the Yaf_Application accept a request and route this request, dispatch to controller/action and render response. Finally, return the response to the client.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Change the application directory

  • « Yaf_Application::run
  • Yaf_Bootstrap_Abstract »
  • PHP Manual
  • Yaf_Application
  • Change the application directory

Yaf_Application::setAppDirectory

(Yaf >=2.1.4)

Yaf_Application::setAppDirectory — Change the application directory

Beschreibung

public Yaf_Application::setAppDirectory ( string $directory ) : Yaf_Application

Parameter-Liste

directory

Rückgabewerte


The Yaf_Bootstrap_Abstract class

(No version information available, might only be in Git)

Einführung

Bootstrap is a mechanism used to do some initial config before a Application run.

User may define their own Bootstrap class by inheriting Yaf_Bootstrap_Abstract

Any method declared in Bootstrap class with leading "_init", will be called by Yaf_Application::bootstrap() one by one according to their defined order.

Beispiele

Beispiel #1 Bootstrap example

<?php
   /* bootstrap class should be defined under ./application/Bootstrap.php */
   class Bootstrap extends Yaf_Bootstrap_Abstract {
        public function _initConfig(Yaf_Dispatcher $dispatcher) {
            var_dump(__METHOD__);
        }
        public function _initPlugin(Yaf_Dispatcher $dispatcher) {
            var_dump(__METHOD__);
        }
   }

   $config = array(
       "application" => array(
           "directory" => dirname(__FILE__) . "/application/",
       ),
   );

   $app = new Yaf_Application($config);
   $app->bootstrap();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(22) "Bootstrap::_initConfig"
string(22) "Bootstrap::_initPlugin"

Klassenbeschreibung

abstract Yaf_Bootstrap_Abstract {
/* Eigenschaften */
/* Methoden */
}


The Yaf_Dispatcher class

(Yaf >=1.0.0)

Einführung

Yaf_Dispatcher purpose is to initialize the request environment, route the incoming request, and then dispatch any discovered actions; it aggregates any responses and returns them when the process is complete.

Yaf_Dispatcher also implements the Singleton pattern, meaning only a single instance of it may be available at any given time. This allows it to also act as a registry on which the other objects in the dispatch process may draw.

Klassenbeschreibung

final Yaf_Dispatcher {
/* Eigenschaften */
protected $_router ;
protected $_view ;
protected $_request ;
protected $_plugins ;
protected static $_instance ;
protected $_auto_render ;
protected $_return_response ;
protected $_instantly_flush ;
protected $_default_module ;
protected $_default_controller ;
protected $_default_action ;
/* Methoden */
public autoRender ( bool $flag = ? ) : Yaf_Dispatcher
public catchException ( bool $flag = ? ) : Yaf_Dispatcher
public __construct ( )
public disableView ( ) : bool
public dispatch ( Yaf_Request_Abstract $request ) : Yaf_Response_Abstract
public enableView ( ) : Yaf_Dispatcher
public flushInstantly ( bool $flag = ? ) : Yaf_Dispatcher
public getApplication ( ) : Yaf_Application
public getDefaultAction ( ) : string
public getDefaultController ( ) : string
public getDefaultModule ( ) : string
public static getInstance ( ) : Yaf_Dispatcher
public getRequest ( ) : Yaf_Request_Abstract
public getRouter ( ) : Yaf_Router
public initView ( string $templates_dir , array $options = ? ) : Yaf_View_Interface
public registerPlugin ( Yaf_Plugin_Abstract $plugin ) : Yaf_Dispatcher
public returnResponse ( bool $flag ) : Yaf_Dispatcher
public setDefaultAction ( string $action ) : Yaf_Dispatcher
public setDefaultController ( string $controller ) : Yaf_Dispatcher
public setDefaultModule ( string $module ) : Yaf_Dispatcher
public setErrorHandler ( call $callback , int $error_types ) : Yaf_Dispatcher
public setRequest ( Yaf_Request_Abstract $request ) : Yaf_Dispatcher
public setView ( Yaf_View_Interface $view ) : Yaf_Dispatcher
public throwException ( bool $flag = ? ) : Yaf_Dispatcher
}

Eigenschaften

_router

_view

_request

_plugins

_instance

_auto_render

_return_response

_instantly_flush

_default_module

_default_controller

_default_action

Inhaltsverzeichnis

  • Yaf_Dispatcher::autoRender — Switch on/off autorendering
  • Yaf_Dispatcher::catchException — Switch on/off exception catching
  • Yaf_Dispatcher::__construct — Yaf_Dispatcher constructor
  • Yaf_Dispatcher::disableView — Disable view rendering
  • Yaf_Dispatcher::dispatch — Dispatch a request
  • Yaf_Dispatcher::enableView — Enable view rendering
  • Yaf_Dispatcher::flushInstantly — Switch on/off the instant flushing
  • Yaf_Dispatcher::getApplication — Retrive the application
  • Yaf_Dispatcher::getDefaultAction — Retrive the default action name
  • Yaf_Dispatcher::getDefaultController — Retrive the default controller name
  • Yaf_Dispatcher::getDefaultModule — Retrive the default module name
  • Yaf_Dispatcher::getInstance — Retrive the dispatcher instance
  • Yaf_Dispatcher::getRequest — Retrive the request instance
  • Yaf_Dispatcher::getRouter — Retrive router instance
  • Yaf_Dispatcher::initView — Initialize view and return it
  • Yaf_Dispatcher::registerPlugin — Register a plugin
  • Yaf_Dispatcher::returnResponse — The returnResponse purpose
  • Yaf_Dispatcher::setDefaultAction — Change default action name
  • Yaf_Dispatcher::setDefaultController — Change default controller name
  • Yaf_Dispatcher::setDefaultModule — Change default module name
  • Yaf_Dispatcher::setErrorHandler — Set error handler
  • Yaf_Dispatcher::setRequest — The setRequest purpose
  • Yaf_Dispatcher::setView — Set a custom view engine
  • Yaf_Dispatcher::throwException — Switch on/off exception throwing


Switch on/off autorendering

  • « Yaf_Dispatcher
  • Yaf_Dispatcher::catchException »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off autorendering

Yaf_Dispatcher::autoRender

(Yaf >=1.0.0)

Yaf_Dispatcher::autoRender — Switch on/off autorendering

Beschreibung

public Yaf_Dispatcher::autoRender ( bool $flag = ? ) : Yaf_Dispatcher

Yaf_Dispatcher will render automatically after dispatches a incoming request, you can prevent the rendering by calling this method with flag true

Hinweis:

you can simply return false in a action to prevent the auto-rendering of that action

Parameter-Liste

flag

bool

Hinweis:

since 2.2.0, if this parameter is not given, then the current state will be renturned

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Dispatcher::autoRender()example

<?php
class IndexController extends Yaf_Controller_Abstract {
     /* init method will be called as soon as a controller is initialized */
     public function init() {
         if ($this->getRequest()->isXmlHttpRequest()) {
             //do not call render for ajax request
             //we will outpu a json string
             Yaf_Dispatcher::getInstance()->autoRender(FALSE);
         }
     }

}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:


Switch on/off exception catching

  • « Yaf_Dispatcher::autoRender
  • Yaf_Dispatcher::__construct »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off exception catching

Yaf_Dispatcher::catchException

(Yaf >=1.0.0)

Yaf_Dispatcher::catchException — Switch on/off exception catching

Beschreibung

public Yaf_Dispatcher::catchException ( bool $flag = ? ) : Yaf_Dispatcher

While the application.dispatcher.throwException is On(you can also calling to Yaf_Dispatcher::throwException(TRUE)() to enable it), Yaf will throw Exception when error occurrs instead of trigger error.

then if you enable Yaf_Dispatcher::catchException()(also can enabled by set application.dispatcher.catchException), all uncaught Exceptions will be caught by ErrorController::error if you have defined one.

Parameter-Liste

flag

bool

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Dispatcher::catchException()example

/* if you defined a ErrorController like following */
<?php
class ErrorController extends Yaf_Controller_Abstract {
     /**
      * you can also call to Yaf_Request_Abstract::getException to get the
      * un-caught exception.
      */
     public function errorAction($exception) {
        /* error occurs */
        switch ($exception->getCode()) {
            case YAF_ERR_NOTFOUND_MODULE:
            case YAF_ERR_NOTFOUND_CONTROLLER:
            case YAF_ERR_NOTFOUND_ACTION:
            case YAF_ERR_NOTFOUND_VIEW:
                echo 404, ":", $exception->getMessage();
                break;
            default :
                $message = $exception->getMessage();
                echo 0, ":", $exception->getMessage();
                break;
        }
     }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/* now if some error occur, assuming access a non-exists controller(or you can throw a exception yourself): */
404:Could not find controller script **/application/controllers/No-exists-controller.php

Siehe auch

  • Yaf_Dispatcher::throwException() - Switch on/off exception throwing
  • Yaf_Dispatcher::setErrorHandler() - Set error handler


Yaf_Dispatcher constructor

  • « Yaf_Dispatcher::catchException
  • Yaf_Dispatcher::disableView »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher constructor

Yaf_Dispatcher::__construct

(Yaf >=1.0.0)

Yaf_Dispatcher::__construct — Yaf_Dispatcher constructor

Beschreibung

public Yaf_Dispatcher::__construct ( )

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Disable view rendering

  • « Yaf_Dispatcher::__construct
  • Yaf_Dispatcher::dispatch »
  • PHP Manual
  • Yaf_Dispatcher
  • Disable view rendering

Yaf_Dispatcher::disableView

(Yaf >=1.0.0)

Yaf_Dispatcher::disableView — Disable view rendering

Beschreibung

public Yaf_Dispatcher::disableView ( ) : bool

disable view engine, used in some app that user will output by theirself

Hinweis:

you can simply return false in a action to prevent the auto-rendering of that action

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Dispatch a request

  • « Yaf_Dispatcher::disableView
  • Yaf_Dispatcher::enableView »
  • PHP Manual
  • Yaf_Dispatcher
  • Dispatch a request

Yaf_Dispatcher::dispatch

(Yaf >=1.0.0)

Yaf_Dispatcher::dispatch — Dispatch a request

Beschreibung

public Yaf_Dispatcher::dispatch ( Yaf_Request_Abstract $request ) : Yaf_Response_Abstract

This method does the heavy work of the Yaf_Dispatcher. It take a request object.

The dispatch process has three distinct events:

  • Routing
  • Dispatching
  • Response
Routing takes place exactly once, using the values in the request object when dispatch() is called. Dispatching takes place in a loop; a request may either indicate multiple actions to dispatch, or the controller or a plugin may reset the request object to force additional actions to dispatch(see Yaf_Plugin_Abstract. When all is done, the Yaf_Dispatcher returns a response.

Parameter-Liste

request

Rückgabewerte


Enable view rendering

  • « Yaf_Dispatcher::dispatch
  • Yaf_Dispatcher::flushInstantly »
  • PHP Manual
  • Yaf_Dispatcher
  • Enable view rendering

Yaf_Dispatcher::enableView

(Yaf >=1.0.0)

Yaf_Dispatcher::enableView — Enable view rendering

Beschreibung

public Yaf_Dispatcher::enableView ( ) : Yaf_Dispatcher

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Switch on/off the instant flushing

  • « Yaf_Dispatcher::enableView
  • Yaf_Dispatcher::getApplication »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off the instant flushing

Yaf_Dispatcher::flushInstantly

(Yaf >=1.0.0)

Yaf_Dispatcher::flushInstantly — Switch on/off the instant flushing

Beschreibung

public Yaf_Dispatcher::flushInstantly ( bool $flag = ? ) : Yaf_Dispatcher

Parameter-Liste

flag

bool

Hinweis:

since 2.2.0, if this parameter is not given, then the current state will be renturned

Rückgabewerte


Retrive the application

  • « Yaf_Dispatcher::flushInstantly
  • Yaf_Dispatcher::getDefaultAction »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the application

Yaf_Dispatcher::getApplication

(Yaf >=1.0.0)

Yaf_Dispatcher::getApplication — Retrive the application

Beschreibung

public Yaf_Dispatcher::getApplication ( ) : Yaf_Application

Retrive the Yaf_Application instance. same as Yaf_Application::app().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • Yaf_Application::app() - Retrieve an Application instance


Retrive the default action name

  • « Yaf_Dispatcher::getApplication
  • Yaf_Dispatcher::getDefaultController »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the default action name

Yaf_Dispatcher::getDefaultAction

(Yaf >=3.2.0)

Yaf_Dispatcher::getDefaultAction — Retrive the default action name

Beschreibung

public Yaf_Dispatcher::getDefaultAction ( ) : string

get the default action name

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

String, default action name, default is "index"


Retrive the default controller name

  • « Yaf_Dispatcher::getDefaultAction
  • Yaf_Dispatcher::getDefaultModule »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the default controller name

Yaf_Dispatcher::getDefaultController

(Yaf >=3.2.0)

Yaf_Dispatcher::getDefaultController — Retrive the default controller name

Beschreibung

public Yaf_Dispatcher::getDefaultController ( ) : string

get the default controller name

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

String, default controller name, default is "Index"


Retrive the default module name

  • « Yaf_Dispatcher::getDefaultController
  • Yaf_Dispatcher::getInstance »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the default module name

Yaf_Dispatcher::getDefaultModule

(Yaf >=3.2.0)

Yaf_Dispatcher::getDefaultModule — Retrive the default module name

Beschreibung

public Yaf_Dispatcher::getDefaultModule ( ) : string

get the default module name

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

String, module name, default is "Index"


Retrive the dispatcher instance

  • « Yaf_Dispatcher::getDefaultModule
  • Yaf_Dispatcher::getRequest »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the dispatcher instance

Yaf_Dispatcher::getInstance

(Yaf >=1.0.0)

Yaf_Dispatcher::getInstance — Retrive the dispatcher instance

Beschreibung

public static Yaf_Dispatcher::getInstance ( ) : Yaf_Dispatcher

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrive the request instance

  • « Yaf_Dispatcher::getInstance
  • Yaf_Dispatcher::getRouter »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the request instance

Yaf_Dispatcher::getRequest

(Yaf >=1.0.0)

Yaf_Dispatcher::getRequest — Retrive the request instance

Beschreibung

public Yaf_Dispatcher::getRequest ( ) : Yaf_Request_Abstract

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrive router instance

  • « Yaf_Dispatcher::getRequest
  • Yaf_Dispatcher::initView »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive router instance

Yaf_Dispatcher::getRouter

(Yaf >=1.0.0)

Yaf_Dispatcher::getRouter — Retrive router instance

Beschreibung

public Yaf_Dispatcher::getRouter ( ) : Yaf_Router

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Initialize view and return it

  • « Yaf_Dispatcher::getRouter
  • Yaf_Dispatcher::registerPlugin »
  • PHP Manual
  • Yaf_Dispatcher
  • Initialize view and return it

Yaf_Dispatcher::initView

(Yaf >=1.0.0)

Yaf_Dispatcher::initView — Initialize view and return it

Beschreibung

public Yaf_Dispatcher::initView ( string $templates_dir , array $options = ? ) : Yaf_View_Interface

Parameter-Liste

templates_dir

options

Rückgabewerte


Register a plugin

  • « Yaf_Dispatcher::initView
  • Yaf_Dispatcher::returnResponse »
  • PHP Manual
  • Yaf_Dispatcher
  • Register a plugin

Yaf_Dispatcher::registerPlugin

(Yaf >=1.0.0)

Yaf_Dispatcher::registerPlugin — Register a plugin

Beschreibung

public Yaf_Dispatcher::registerPlugin ( Yaf_Plugin_Abstract $plugin ) : Yaf_Dispatcher

Register a plugin(see Yaf_Plugin_Abstract). Generally, we register plugins in Bootstrap(see Yaf_Bootstrap_Abstract).

Parameter-Liste

plugin

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Dispatcher::registerPlugin()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {
  public function _initPlugin(Yaf_Dispatcher $dispatcher) {
    /**
    * Yaf assumes plugin scripts under [application.directory] .  "/plugins"
    * for this case, it will be:
    * [application.directory] . "/plugins/" . "User" . [application.ext]
    */
    $user = new UserPlugin();
    $dispatcher->registerPlugin($user);
  }
}
?>

Siehe auch

  • Yaf_Plugin_Abstract
  • Yaf_Bootstrap_Abstract


The returnResponse purpose

  • « Yaf_Dispatcher::registerPlugin
  • Yaf_Dispatcher::setDefaultAction »
  • PHP Manual
  • Yaf_Dispatcher
  • The returnResponse purpose

Yaf_Dispatcher::returnResponse

(Yaf >=1.0.0)

Yaf_Dispatcher::returnResponse — The returnResponse purpose

Beschreibung

public Yaf_Dispatcher::returnResponse ( bool $flag ) : Yaf_Dispatcher

Parameter-Liste

flag

Rückgabewerte


Change default action name

  • « Yaf_Dispatcher::returnResponse
  • Yaf_Dispatcher::setDefaultController »
  • PHP Manual
  • Yaf_Dispatcher
  • Change default action name

Yaf_Dispatcher::setDefaultAction

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultAction — Change default action name

Beschreibung

public Yaf_Dispatcher::setDefaultAction ( string $action ) : Yaf_Dispatcher

Parameter-Liste

action

Rückgabewerte


Change default controller name

  • « Yaf_Dispatcher::setDefaultAction
  • Yaf_Dispatcher::setDefaultModule »
  • PHP Manual
  • Yaf_Dispatcher
  • Change default controller name

Yaf_Dispatcher::setDefaultController

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultController — Change default controller name

Beschreibung

public Yaf_Dispatcher::setDefaultController ( string $controller ) : Yaf_Dispatcher

Parameter-Liste

controller

Rückgabewerte


Change default module name

  • « Yaf_Dispatcher::setDefaultController
  • Yaf_Dispatcher::setErrorHandler »
  • PHP Manual
  • Yaf_Dispatcher
  • Change default module name

Yaf_Dispatcher::setDefaultModule

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultModule — Change default module name

Beschreibung

public Yaf_Dispatcher::setDefaultModule ( string $module ) : Yaf_Dispatcher

Parameter-Liste

module

Rückgabewerte


Set error handler

  • « Yaf_Dispatcher::setDefaultModule
  • Yaf_Dispatcher::setRequest »
  • PHP Manual
  • Yaf_Dispatcher
  • Set error handler

Yaf_Dispatcher::setErrorHandler

(Yaf >=1.0.0)

Yaf_Dispatcher::setErrorHandler — Set error handler

Beschreibung

public Yaf_Dispatcher::setErrorHandler ( call $callback , int $error_types ) : Yaf_Dispatcher

Set error handler for Yaf. when application.dispatcher.throwException is off, Yaf will trigger catchable error while unexpected errors occrred.

Thus, this error handler will be called while the error raise.

Parameter-Liste

callback

A callable callback

error_types

Rückgabewerte

Siehe auch

  • Yaf_Dispatcher::throwException() - Switch on/off exception throwing
  • Yaf_Application::getLastErrorNo() - Get code of last occurred error
  • Yaf_Application::getLastErrorMsg() - Get message of the last occurred error


The setRequest purpose

  • « Yaf_Dispatcher::setErrorHandler
  • Yaf_Dispatcher::setView »
  • PHP Manual
  • Yaf_Dispatcher
  • The setRequest purpose

Yaf_Dispatcher::setRequest

(Yaf >=1.0.0)

Yaf_Dispatcher::setRequest — The setRequest purpose

Beschreibung

public Yaf_Dispatcher::setRequest ( Yaf_Request_Abstract $request ) : Yaf_Dispatcher

Parameter-Liste

plugin

Rückgabewerte


Set a custom view engine

  • « Yaf_Dispatcher::setRequest
  • Yaf_Dispatcher::throwException »
  • PHP Manual
  • Yaf_Dispatcher
  • Set a custom view engine

Yaf_Dispatcher::setView

(Yaf >=1.0.0)

Yaf_Dispatcher::setView — Set a custom view engine

Beschreibung

public Yaf_Dispatcher::setView ( Yaf_View_Interface $view ) : Yaf_Dispatcher

This method provides a solution if you want use a custom view engine instead of Yaf_View_Simple

Parameter-Liste

view

A Yaf_View_Interface instance

Rückgabewerte

Beispiele

Beispiel #1 A custom View engine()example

<?php
require "/path/to/smarty/Smarty.class.php";

class Smarty_Adapter implements Yaf_View_Interface
{
    /**
     * Smarty object
     * @var Smarty
     */
    public $_smarty;

    /**
     * Constructor
     *
     * @param string $tmplPath
     * @param array $extraParams
     * @return void
     */
    public function __construct($tmplPath = null, $extraParams = array()) {
        $this->_smarty = new Smarty;

        if (null !== $tmplPath) {
            $this->setScriptPath($tmplPath);
        }

        foreach ($extraParams as $key => $value) {
            $this->_smarty->$key = $value;
        }
    }

    /**
     * Set the path to the templates
     *
     * @param string $path The directory to set as the path.
     * @return void
     */
    public function setScriptPath($path)
    {
        if (is_readable($path)) {
            $this->_smarty->template_dir = $path;
            return;
        }

        throw new Exception('Invalid path provided');
    }

    /**
     * Assign a variable to the template
     *
     * @param string $key The variable name.
     * @param mixed $val The variable value.
     * @return void
     */
    public function __set($key, $val)
    {
        $this->_smarty->assign($key, $val);
    }

    /**
     * Allows testing with empty() and isset() to work
     *
     * @param string $key
     * @return boolean
     */
    public function __isset($key)
    {
        return (null !== $this->_smarty->get_template_vars($key));
    }

    /**
     * Allows unset() on object properties to work
     *
     * @param string $key
     * @return void
     */
    public function __unset($key)
    {
        $this->_smarty->clear_assign($key);
    }

    /**
     * Assign variables to the template
     *
     * Allows setting a specific key to the specified value, OR passing
     * an array of key => value pairs to set en masse.
     *
     * @see __set()
     * @param string|array $spec The assignment strategy to use (key or
     * array of key => value pairs)
     * @param mixed $value (Optional) If assigning a named variable,
     * use this as the value.
     * @return void
     */
    public function assign($spec, $value = null) {
        if (is_array($spec)) {
            $this->_smarty->assign($spec);
            return;
        }

        $this->_smarty->assign($spec, $value);
    }

    /**
     * Clear all assigned variables
     *
     * Clears all variables assigned to Yaf_View either via
     * {@link assign()} or property overloading
     * ({@link __get()}/{@link __set()}).
     *
     * @return void
     */
    public function clearVars() {
        $this->_smarty->clear_all_assign();
    }

    /**
     * Processes a template and returns the output.
     *
     * @param string $name The template to process.
     * @return string The output.
     */
    public function render($name, $value = NULL) {
        return $this->_smarty->fetch($name);
    }

    public function display($name, $value = NULL) {
        echo $this->_smarty->fetch($name);
    }

}
?>

Beispiel #2 Yaf_Dispatcher::setView()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {

    /**
     * there are some config for smarty in the config:
     *
     * smarty.left_delimiter   = "{{"
     * smarty.right_delimiter  = "}}"
     * smarty.template_dir     = APPLICATION_PATH "/views/scripts/"
     * smarty.compile_dir      = APPLICATION_PATH "/views/templates_c/"
     * smarty.cache_dir        = APPLICATION_PATH "/views/templates_d/"
     *
     */
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initLocalName() {
        /** we put class Smarty_Adapter under the local library directory */
        Yaf_Loader::getInstance()->registerLocalNamespace('Smarty');
    }

    public function _initSmarty(Yaf_Dispatcher $dispatcher) {
        $smarty = new Smarty_Adapter(null, Yaf_Registry::get("config")->get("smarty"));
        $dispatcher->setView($smarty);
        /* now the Smarty view engine become the default view engine of Yaf */
    }
}
?>

Siehe auch

  • Yaf_View_Interface
  • Yaf_View_Simple


Switch on/off exception throwing

  • « Yaf_Dispatcher::setView
  • Yaf_Config_Abstract »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off exception throwing

Yaf_Dispatcher::throwException

(Yaf >=1.0.0)

Yaf_Dispatcher::throwException — Switch on/off exception throwing

Beschreibung

public Yaf_Dispatcher::throwException ( bool $flag = ? ) : Yaf_Dispatcher

Siwtch on/off exception throwing while unexpected error occurring. When this is on, Yaf will throwing exceptions instead of triggering catchable errors.

You can also use application.dispatcher.throwException to achieve the same purpose.

Parameter-Liste

flag

bool

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Dispatcher::throwexception()example

<?php

$config = array(
    'application' => array(
        'directory' => dirname(__FILE__),
    ),
);
$app = new Yaf_Application($config);

$app->getDispatcher()->throwException(true);

try {
    $app->run();
} catch (Yaf_Exception $e) {
    var_dump($e->getMessage());
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(59) "Could not find controller script /tmp/controllers/Index.php"

Beispiel #2 Yaf_Dispatcher::throwexception()example

<?php

$config = array(
    'application' => array(
        'directory' => dirname(__FILE__),
    ),
);
$app = new Yaf_Application($config);

$app->getDispatcher()->throwException(false);

$app->run();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

PHP Catchable fatal error:  Yaf_Application::run(): Could not find controller script /tmp/controllers/Index.php in /tmp/1.php on line 12

Siehe auch

  • Yaf_Dispatcher::catchException() - Switch on/off exception catching
  • Yaf_Exception


The Yaf_Config_Abstract class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

abstract Yaf_Config_Abstract {
/* Eigenschaften */
protected $_config ;
protected $_readonly ;
/* Methoden */
abstract public get ( string $name , mixed $value ) : mixed
abstract public readonly ( ) : bool
abstract public set ( ) : Yaf_Config_Abstract
abstract public toArray ( ) : array
}

Eigenschaften

_config

_readonly

Inhaltsverzeichnis

  • Yaf_Config_Abstract::get — Getter
  • Yaf_Config_Abstract::readonly — Find a config whether readonly
  • Yaf_Config_Abstract::set — Setter
  • Yaf_Config_Abstract::toArray — Cast to array


Getter

  • « Yaf_Config_Abstract
  • Yaf_Config_Abstract::readonly »
  • PHP Manual
  • Yaf_Config_Abstract
  • Getter

Yaf_Config_Abstract::get

(Yaf >=1.0.0)

Yaf_Config_Abstract::get — Getter

Beschreibung

abstract public Yaf_Config_Abstract::get ( string $name , mixed $value ) : mixed

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Find a config whether readonly

  • « Yaf_Config_Abstract::get
  • Yaf_Config_Abstract::set »
  • PHP Manual
  • Yaf_Config_Abstract
  • Find a config whether readonly

Yaf_Config_Abstract::readonly

(Yaf >=1.0.0)

Yaf_Config_Abstract::readonly — Find a config whether readonly

Beschreibung

abstract public Yaf_Config_Abstract::readonly ( ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Setter

  • « Yaf_Config_Abstract::readonly
  • Yaf_Config_Abstract::toArray »
  • PHP Manual
  • Yaf_Config_Abstract
  • Setter

Yaf_Config_Abstract::set

(Yaf >=1.0.0)

Yaf_Config_Abstract::set — Setter

Beschreibung

abstract public Yaf_Config_Abstract::set ( ) : Yaf_Config_Abstract

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Cast to array

  • « Yaf_Config_Abstract::set
  • Yaf_Config_Ini »
  • PHP Manual
  • Yaf_Config_Abstract
  • Cast to array

Yaf_Config_Abstract::toArray

(Yaf >=1.0.0)

Yaf_Config_Abstract::toArray — Cast to array

Beschreibung

abstract public Yaf_Config_Abstract::toArray ( ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Yaf_Config_Ini class

(Yaf >=1.0.0)

Einführung

Yaf_Config_Ini enables developers to store configuration data in a familiar INI format and read them in the application by using nested object property syntax. The INI format is specialized to provide both the ability to have a hierarchy of configuration data keys and inheritance between configuration data sections. Configuration data hierarchies are supported by separating the keys with the dot or period character ("."). A section may extend or inherit from another section by following the section name with a colon character (":") and the name of the section from which data are to be inherited.

Hinweis:

Yaf_Config_Ini utilizes the » parse_ini_file() PHP function. Please review this documentation to be aware of its specific behaviors, which propagate to Yaf_Config_Ini, such as how the special values of "true", "false", "yes", "no", and "null" are handled.

Klassenbeschreibung

Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator , ArrayAccess , Countable {
/* Eigenschaften */
/* Methoden */
public __construct ( string $config_file , string $section = ? )
public count ( ) : void
public current ( ) : void
public __get ( string $name = ? ) : void
public __isset ( string $name ) : void
public key ( ) : void
public next ( ) : void
public offsetExists ( string $name ) : void
public offsetGet ( string $name ) : void
public offsetSet ( string $name , string $value ) : void
public offsetUnset ( string $name ) : void
public readonly ( ) : void
public rewind ( ) : void
public __set ( string $name , mixed $value ) : void
public toArray ( ) : array
public valid ( ) : void
/* Geerbte Methoden */
abstract public Yaf_Config_Abstract::get ( string $name , mixed $value ) : mixed
abstract public Yaf_Config_Abstract::readonly ( ) : bool
abstract public Yaf_Config_Abstract::set ( ) : Yaf_Config_Abstract
abstract public Yaf_Config_Abstract::toArray ( ) : array
}

Eigenschaften

_config

_readonly

Beispiele

Beispiel #1 Yaf_Config_Ini()example

This example illustrates a basic use of Yaf_Config_Ini for loading configuration data from an INI file. In this example there are configuration data for both a production system and for a staging system. Because the staging system configuration data are very similar to those for production, the staging section inherits from the production section. In this case, the decision is arbitrary and could have been written conversely, with the production section inheriting from the staging section, though this may not be the case for more complex situations. Suppose, then, that the following configuration data are contained in /path/to/config.ini:

; Production site configuration data
[production]
webhost                  = www.example.com
database.adapter         = pdo_mysql
database.params.host     = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname   = dbname

; Staging site configuration data inherits from production and
; overrides values as necessary
[staging : production]
database.params.host     = dev.example.com
database.params.username = devuser
database.params.password = devsecret
<?php
$config = new Yaf_Config_Ini('/path/to/config.ini', 'staging');

var_dump($config->database->params->host);
var_dump($config->database->params->dbname);
var_dump($config->get("database.params.username"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(15) "dev.example.com"
string(6) "dbname"
string(7) "devuser

Inhaltsverzeichnis

  • Yaf_Config_Ini::__construct — Yaf_Config_Ini constructor
  • Yaf_Config_Ini::count — Count all elements in Yaf_Config.ini
  • Yaf_Config_Ini::current — Retrieve the current value
  • Yaf_Config_Ini::__get — Retrieve a element
  • Yaf_Config_Ini::__isset — Determine if a key is exists
  • Yaf_Config_Ini::key — Fetch current element's key
  • Yaf_Config_Ini::next — Advance the internal pointer
  • Yaf_Config_Ini::offsetExists — The offsetExists purpose
  • Yaf_Config_Ini::offsetGet — The offsetGet purpose
  • Yaf_Config_Ini::offsetSet — The offsetSet purpose
  • Yaf_Config_Ini::offsetUnset — The offsetUnset purpose
  • Yaf_Config_Ini::readonly — The readonly purpose
  • Yaf_Config_Ini::rewind — The rewind purpose
  • Yaf_Config_Ini::__set — The __set purpose
  • Yaf_Config_Ini::toArray — Return config as a PHP array
  • Yaf_Config_Ini::valid — The valid purpose


Yaf_Config_Ini constructor

  • « Yaf_Config_Ini
  • Yaf_Config_Ini::count »
  • PHP Manual
  • Yaf_Config_Ini
  • Yaf_Config_Ini constructor

Yaf_Config_Ini::__construct

(Yaf >=1.0.0)

Yaf_Config_Ini::__construct — Yaf_Config_Ini constructor

Beschreibung

public Yaf_Config_Ini::__construct ( string $config_file , string $section = ? )

Yaf_Config_Ini constructor

Parameter-Liste

config_file

path to an INI configure file

section

which section in that INI file you want to be parsed

Rückgabewerte


Count all elements in Yaf_Config.ini

  • « Yaf_Config_Ini::__construct
  • Yaf_Config_Ini::current »
  • PHP Manual
  • Yaf_Config_Ini
  • Count all elements in Yaf_Config.ini

Yaf_Config_Ini::count

(Yaf >=1.0.0)

Yaf_Config_Ini::count — Count all elements in Yaf_Config.ini

Beschreibung

public Yaf_Config_Ini::count ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrieve the current value

  • « Yaf_Config_Ini::count
  • Yaf_Config_Ini::__get »
  • PHP Manual
  • Yaf_Config_Ini
  • Retrieve the current value

Yaf_Config_Ini::current

(Yaf >=1.0.0)

Yaf_Config_Ini::current — Retrieve the current value

Beschreibung

public Yaf_Config_Ini::current ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrieve a element

  • « Yaf_Config_Ini::current
  • Yaf_Config_Ini::__isset »
  • PHP Manual
  • Yaf_Config_Ini
  • Retrieve a element

Yaf_Config_Ini::__get

(Yaf >=1.0.0)

Yaf_Config_Ini::__get — Retrieve a element

Beschreibung

public Yaf_Config_Ini::__get ( string $name = ? ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


Determine if a key is exists

  • « Yaf_Config_Ini::__get
  • Yaf_Config_Ini::key »
  • PHP Manual
  • Yaf_Config_Ini
  • Determine if a key is exists

Yaf_Config_Ini::__isset

(Yaf >=1.0.0)

Yaf_Config_Ini::__isset — Determine if a key is exists

Beschreibung

public Yaf_Config_Ini::__isset ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


Fetch current element's key

  • « Yaf_Config_Ini::__isset
  • Yaf_Config_Ini::next »
  • PHP Manual
  • Yaf_Config_Ini
  • Fetch current element's key

Yaf_Config_Ini::key

(Yaf >=1.0.0)

Yaf_Config_Ini::key — Fetch current element's key

Beschreibung

public Yaf_Config_Ini::key ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Advance the internal pointer

  • « Yaf_Config_Ini::key
  • Yaf_Config_Ini::offsetExists »
  • PHP Manual
  • Yaf_Config_Ini
  • Advance the internal pointer

Yaf_Config_Ini::next

(Yaf >=1.0.0)

Yaf_Config_Ini::next — Advance the internal pointer

Beschreibung

public Yaf_Config_Ini::next ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The offsetExists purpose

  • « Yaf_Config_Ini::next
  • Yaf_Config_Ini::offsetGet »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetExists purpose

Yaf_Config_Ini::offsetExists

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetExists — The offsetExists purpose

Beschreibung

public Yaf_Config_Ini::offsetExists ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The offsetGet purpose

  • « Yaf_Config_Ini::offsetExists
  • Yaf_Config_Ini::offsetSet »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetGet purpose

Yaf_Config_Ini::offsetGet

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetGet — The offsetGet purpose

Beschreibung

public Yaf_Config_Ini::offsetGet ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The offsetSet purpose

  • « Yaf_Config_Ini::offsetGet
  • Yaf_Config_Ini::offsetUnset »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetSet purpose

Yaf_Config_Ini::offsetSet

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetSet — The offsetSet purpose

Beschreibung

public Yaf_Config_Ini::offsetSet ( string $name , string $value ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

value

Rückgabewerte


The offsetUnset purpose

  • « Yaf_Config_Ini::offsetSet
  • Yaf_Config_Ini::readonly »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetUnset purpose

Yaf_Config_Ini::offsetUnset

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetUnset — The offsetUnset purpose

Beschreibung

public Yaf_Config_Ini::offsetUnset ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The readonly purpose

  • « Yaf_Config_Ini::offsetUnset
  • Yaf_Config_Ini::rewind »
  • PHP Manual
  • Yaf_Config_Ini
  • The readonly purpose

Yaf_Config_Ini::readonly

(Yaf >=1.0.0)

Yaf_Config_Ini::readonly — The readonly purpose

Beschreibung

public Yaf_Config_Ini::readonly ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The rewind purpose

  • « Yaf_Config_Ini::readonly
  • Yaf_Config_Ini::__set »
  • PHP Manual
  • Yaf_Config_Ini
  • The rewind purpose

Yaf_Config_Ini::rewind

(Yaf >=1.0.0)

Yaf_Config_Ini::rewind — The rewind purpose

Beschreibung

public Yaf_Config_Ini::rewind ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The __set purpose

  • « Yaf_Config_Ini::rewind
  • Yaf_Config_Ini::toArray »
  • PHP Manual
  • Yaf_Config_Ini
  • The __set purpose

Yaf_Config_Ini::__set

(Yaf >=1.0.0)

Yaf_Config_Ini::__set — The __set purpose

Beschreibung

public Yaf_Config_Ini::__set ( string $name , mixed $value ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

value

Rückgabewerte


Return config as a PHP array

  • « Yaf_Config_Ini::__set
  • Yaf_Config_Ini::valid »
  • PHP Manual
  • Yaf_Config_Ini
  • Return config as a PHP array

Yaf_Config_Ini::toArray

(Yaf >=1.0.0)

Yaf_Config_Ini::toArray — Return config as a PHP array

Beschreibung

public Yaf_Config_Ini::toArray ( ) : array

Returns a PHP array from the Yaf_Config_Ini

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The valid purpose

  • « Yaf_Config_Ini::toArray
  • Yaf_Config_Simple »
  • PHP Manual
  • Yaf_Config_Ini
  • The valid purpose

Yaf_Config_Ini::valid

(Yaf >=1.0.0)

Yaf_Config_Ini::valid — The valid purpose

Beschreibung

public Yaf_Config_Ini::valid ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Yaf_Config_Simple class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Config_Simple extends Yaf_Config_Abstract implements Iterator , ArrayAccess , Countable {
/* Eigenschaften */
protected $_readonly ;
/* Methoden */
public __construct ( array $configs , bool $readonly = false )
public count ( ) : void
public current ( ) : void
public __get ( string $name = ? ) : void
public __isset ( string $name ) : void
public key ( ) : void
public next ( ) : void
public offsetExists ( string $name ) : void
public offsetGet ( string $name ) : void
public offsetSet ( string $name , string $value ) : void
public offsetUnset ( string $name ) : void
public readonly ( ) : void
public rewind ( ) : void
public __set ( string $name , string $value ) : void
public toArray ( ) : array
public valid ( ) : void
/* Geerbte Methoden */
abstract public Yaf_Config_Abstract::get ( string $name , mixed $value ) : mixed
abstract public Yaf_Config_Abstract::readonly ( ) : bool
abstract public Yaf_Config_Abstract::set ( ) : Yaf_Config_Abstract
abstract public Yaf_Config_Abstract::toArray ( ) : array
}

Eigenschaften

_config

_readonly

Inhaltsverzeichnis

  • Yaf_Config_Simple::__construct — The __construct purpose
  • Yaf_Config_Simple::count — The count purpose
  • Yaf_Config_Simple::current — The current purpose
  • Yaf_Config_Simple::__get — The __get purpose
  • Yaf_Config_Simple::__isset — The __isset purpose
  • Yaf_Config_Simple::key — The key purpose
  • Yaf_Config_Simple::next — The next purpose
  • Yaf_Config_Simple::offsetExists — The offsetExists purpose
  • Yaf_Config_Simple::offsetGet — The offsetGet purpose
  • Yaf_Config_Simple::offsetSet — The offsetSet purpose
  • Yaf_Config_Simple::offsetUnset — The offsetUnset purpose
  • Yaf_Config_Simple::readonly — The readonly purpose
  • Yaf_Config_Simple::rewind — The rewind purpose
  • Yaf_Config_Simple::__set — The __set purpose
  • Yaf_Config_Simple::toArray — Returns a PHP array
  • Yaf_Config_Simple::valid — The valid purpose


The __construct purpose

  • « Yaf_Config_Simple
  • Yaf_Config_Simple::count »
  • PHP Manual
  • Yaf_Config_Simple
  • The __construct purpose

Yaf_Config_Simple::__construct

(Yaf >=1.0.0)

Yaf_Config_Simple::__construct — The __construct purpose

Beschreibung

public Yaf_Config_Simple::__construct ( array $configs , bool $readonly = false )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

configs

readonly

Rückgabewerte


The count purpose

  • « Yaf_Config_Simple::__construct
  • Yaf_Config_Simple::current »
  • PHP Manual
  • Yaf_Config_Simple
  • The count purpose

Yaf_Config_Simple::count

(Yaf >=1.0.0)

Yaf_Config_Simple::count — The count purpose

Beschreibung

public Yaf_Config_Simple::count ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The current purpose

  • « Yaf_Config_Simple::count
  • Yaf_Config_Simple::__get »
  • PHP Manual
  • Yaf_Config_Simple
  • The current purpose

Yaf_Config_Simple::current

(Yaf >=1.0.0)

Yaf_Config_Simple::current — The current purpose

Beschreibung

public Yaf_Config_Simple::current ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The __get purpose

  • « Yaf_Config_Simple::current
  • Yaf_Config_Simple::__isset »
  • PHP Manual
  • Yaf_Config_Simple
  • The __get purpose

Yaf_Config_Simple::__get

(Yaf >=1.0.0)

Yaf_Config_Simple::__get — The __get purpose

Beschreibung

public Yaf_Config_Simple::__get ( string $name = ? ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The __isset purpose

  • « Yaf_Config_Simple::__get
  • Yaf_Config_Simple::key »
  • PHP Manual
  • Yaf_Config_Simple
  • The __isset purpose

Yaf_Config_Simple::__isset

(Yaf >=1.0.0)

Yaf_Config_Simple::__isset — The __isset purpose

Beschreibung

public Yaf_Config_Simple::__isset ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The key purpose

  • « Yaf_Config_Simple::__isset
  • Yaf_Config_Simple::next »
  • PHP Manual
  • Yaf_Config_Simple
  • The key purpose

Yaf_Config_Simple::key

(Yaf >=1.0.0)

Yaf_Config_Simple::key — The key purpose

Beschreibung

public Yaf_Config_Simple::key ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The next purpose

  • « Yaf_Config_Simple::key
  • Yaf_Config_Simple::offsetExists »
  • PHP Manual
  • Yaf_Config_Simple
  • The next purpose

Yaf_Config_Simple::next

(Yaf >=1.0.0)

Yaf_Config_Simple::next — The next purpose

Beschreibung

public Yaf_Config_Simple::next ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The offsetExists purpose

  • « Yaf_Config_Simple::next
  • Yaf_Config_Simple::offsetGet »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetExists purpose

Yaf_Config_Simple::offsetExists

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetExists — The offsetExists purpose

Beschreibung

public Yaf_Config_Simple::offsetExists ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The offsetGet purpose

  • « Yaf_Config_Simple::offsetExists
  • Yaf_Config_Simple::offsetSet »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetGet purpose

Yaf_Config_Simple::offsetGet

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetGet — The offsetGet purpose

Beschreibung

public Yaf_Config_Simple::offsetGet ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The offsetSet purpose

  • « Yaf_Config_Simple::offsetGet
  • Yaf_Config_Simple::offsetUnset »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetSet purpose

Yaf_Config_Simple::offsetSet

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetSet — The offsetSet purpose

Beschreibung

public Yaf_Config_Simple::offsetSet ( string $name , string $value ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

value

Rückgabewerte


The offsetUnset purpose

  • « Yaf_Config_Simple::offsetSet
  • Yaf_Config_Simple::readonly »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetUnset purpose

Yaf_Config_Simple::offsetUnset

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetUnset — The offsetUnset purpose

Beschreibung

public Yaf_Config_Simple::offsetUnset ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The readonly purpose

  • « Yaf_Config_Simple::offsetUnset
  • Yaf_Config_Simple::rewind »
  • PHP Manual
  • Yaf_Config_Simple
  • The readonly purpose

Yaf_Config_Simple::readonly

(Yaf >=1.0.0)

Yaf_Config_Simple::readonly — The readonly purpose

Beschreibung

public Yaf_Config_Simple::readonly ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The rewind purpose

  • « Yaf_Config_Simple::readonly
  • Yaf_Config_Simple::__set »
  • PHP Manual
  • Yaf_Config_Simple
  • The rewind purpose

Yaf_Config_Simple::rewind

(Yaf >=1.0.0)

Yaf_Config_Simple::rewind — The rewind purpose

Beschreibung

public Yaf_Config_Simple::rewind ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The __set purpose

  • « Yaf_Config_Simple::rewind
  • Yaf_Config_Simple::toArray »
  • PHP Manual
  • Yaf_Config_Simple
  • The __set purpose

Yaf_Config_Simple::__set

(Yaf >=1.0.0)

Yaf_Config_Simple::__set — The __set purpose

Beschreibung

public Yaf_Config_Simple::__set ( string $name , string $value ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

value

Rückgabewerte


Returns a PHP array

  • « Yaf_Config_Simple::__set
  • Yaf_Config_Simple::valid »
  • PHP Manual
  • Yaf_Config_Simple
  • Returns a PHP array

Yaf_Config_Simple::toArray

(Yaf >=1.0.0)

Yaf_Config_Simple::toArray — Returns a PHP array

Beschreibung

public Yaf_Config_Simple::toArray ( ) : array

Returns a PHP array from the Yaf_Config_Simple

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The valid purpose

  • « Yaf_Config_Simple::toArray
  • Yaf_Controller_Abstract »
  • PHP Manual
  • Yaf_Config_Simple
  • The valid purpose

Yaf_Config_Simple::valid

(Yaf >=1.0.0)

Yaf_Config_Simple::valid — The valid purpose

Beschreibung

public Yaf_Config_Simple::valid ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Yaf_Controller_Abstract class

(Yaf >=1.0.0)

Einführung

Yaf_Controller_Abstract is the heart of Yaf's system. MVC stands for Model-View-Controller and is a design pattern targeted at separating application logic from display logic.

Every custom controller shall inherit Yaf_Controller_Abstract.

You will find that you can not define __construct function for your custom controller, thus, Yaf_Controller_Abstract provides a magic method: Yaf_Controller_Abstract::init().

If you have defined a init() method in your custom controller, it will be called as long as the controller was instantiated.

Action may have arguments, when a request coming, if there are the same name variable in the request parameters(see Yaf_Request_Abstract::getParam()) after routed, Yaf will pass them to the action method (see Yaf_Action_Abstract::execute()).

Hinweis:

These arguments are directly fetched without filtering, it should be carefully processed before use them.

Klassenbeschreibung

abstract Yaf_Controller_Abstract {
/* Eigenschaften */
public $actions ;
protected $_module ;
protected $_name ;
protected $_request ;
protected $_response ;
protected $_invoke_args ;
protected $_view ;
/* Methoden */
final private __construct ( )
protected display ( string $tpl , array $parameters = ? ) : bool
public forward ( string $action , array $paramters = ? ) : void
public getInvokeArg ( string $name ) : void
public getInvokeArgs ( ) : void
public getModuleName ( ) : string
public getName ( ) : string
public getRequest ( ) : Yaf_Request_Abstract
public getResponse ( ) : Yaf_Response_Abstract
public getView ( ) : Yaf_View_Interface
public getViewpath ( ) : string
public init ( ) : void
public initView ( array $options = ? ) : void
public redirect ( string $url ) : bool
protected render ( string $tpl , array $parameters = ? ) : string
public setViewpath ( string $view_directory ) : void
}

Eigenschaften

actions

You can also define a action method in a separate PHP script by using this property and Yaf_Action_Abstract.

Beispiel #1 define action in a separate file

<?php
class IndexController extends Yaf_Controller_Abstract {
    protected $actions = array(
        /** now dummyAction is defined in a separate file */
        "dummy" => "actions/Dummy_action.php",
    );

    /* action method may have arguments */
    public indexAction($name, $id) {
       /* $name and $id are unsafe raw data */
       assert($name == $this->getRequest()->getParam("name"));
       assert($id   == $this->_request->getParam("id"));
    }
}
?>

Beispiel #2 Dummy_action.php

<?php
class DummyAction extends Yaf_Action_Abstract {
    /* a action class shall define this method  as the entry point */
    public execute() {
    }
}
?>

_module

module name

_name

controller name

_request

current request object

_response

current response object

_invoke_args

_view

view engine object

Inhaltsverzeichnis

  • Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor
  • Yaf_Controller_Abstract::display — The display purpose
  • Yaf_Controller_Abstract::forward — Foward to another action
  • Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose
  • Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose
  • Yaf_Controller_Abstract::getModuleName — Get module name
  • Yaf_Controller_Abstract::getName — Get self name
  • Yaf_Controller_Abstract::getRequest — Retrieve current request object
  • Yaf_Controller_Abstract::getResponse — Retrieve current response object
  • Yaf_Controller_Abstract::getView — Retrieve the view engine
  • Yaf_Controller_Abstract::getViewpath — The getViewpath purpose
  • Yaf_Controller_Abstract::init — Controller initializer
  • Yaf_Controller_Abstract::initView — The initView purpose
  • Yaf_Controller_Abstract::redirect — Redirect to a URL
  • Yaf_Controller_Abstract::render — Render view template
  • Yaf_Controller_Abstract::setViewpath — The setViewpath purpose


Yaf_Controller_Abstract constructor

  • « Yaf_Controller_Abstract
  • Yaf_Controller_Abstract::display »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Yaf_Controller_Abstract constructor

Yaf_Controller_Abstract::__construct

(Yaf >=1.0.0)

Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor

Beschreibung

final private Yaf_Controller_Abstract::__construct ( )

Yaf_Controller_Abstract::__construct() is final, which means it can not be overridden. You may want to see Yaf_Controller_Abstract::init() instead.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • Yaf_Controller_Abstract::init() - Controller initializer


The display purpose

  • « Yaf_Controller_Abstract::__construct
  • Yaf_Controller_Abstract::forward »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The display purpose

Yaf_Controller_Abstract::display

(Yaf >=1.0.0)

Yaf_Controller_Abstract::display — The display purpose

Beschreibung

protected Yaf_Controller_Abstract::display ( string $tpl , array $parameters = ? ) : bool

Parameter-Liste

tpl

parameters

Rückgabewerte


Foward to another action

  • « Yaf_Controller_Abstract::display
  • Yaf_Controller_Abstract::getInvokeArg »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Foward to another action

Yaf_Controller_Abstract::forward

(Yaf >=1.0.0)

Yaf_Controller_Abstract::forward — Foward to another action

Beschreibung

public Yaf_Controller_Abstract::forward ( string $action , array $paramters = ? ) : void
public Yaf_Controller_Abstract::forward ( string $controller , string $action , array $paramters = ? ) : void
public Yaf_Controller_Abstract::forward ( string $module , string $controller , string $action , array $paramters = ? ) : void

forward current execution process to other action.

Hinweis:

this method doesn't switch to the destination action immediately, it will take place after current flow finish.

Parameter-Liste

module

destination module name, if NULL was given, then default module name is assumed

controller

destination controller name

action

destination action name

paramters

calling arguments

Beispiele

Beispiel #1 Yaf_Controller_Abstract::forward()example

<?php
class IndexController extends Yaf_Controller_Abstract
{
    public function indexAction(){
         $logined = $_SESSION["login"];
         if (!$logined) {
             $this->forward("login", array("from" => "Index")); // forward to login action
             return FALSE;  // this is important, this finish current working flow
                            // and tell the Yaf do not doing auto-render
         }

         // other processes
    }

    public function loginAction() {
         echo "login, redirected from ", $this->_request->getParam("from") , " action";
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

   login, redirected from Index action

Rückgabewerte

return FALSE on failure

Siehe auch

  • Yaf_Request_Abstrace::getParam()


The getInvokeArg purpose

  • « Yaf_Controller_Abstract::forward
  • Yaf_Controller_Abstract::getInvokeArgs »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The getInvokeArg purpose

Yaf_Controller_Abstract::getInvokeArg

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose

Beschreibung

public Yaf_Controller_Abstract::getInvokeArg ( string $name ) : void

Parameter-Liste

name

Rückgabewerte


The getInvokeArgs purpose

  • « Yaf_Controller_Abstract::getInvokeArg
  • Yaf_Controller_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The getInvokeArgs purpose

Yaf_Controller_Abstract::getInvokeArgs

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose

Beschreibung

public Yaf_Controller_Abstract::getInvokeArgs ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get module name

  • « Yaf_Controller_Abstract::getInvokeArgs
  • Yaf_Controller_Abstract::getName »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Get module name

Yaf_Controller_Abstract::getModuleName

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getModuleName — Get module name

Beschreibung

public Yaf_Controller_Abstract::getModuleName ( ) : string

get the controller's module name

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get self name

  • « Yaf_Controller_Abstract::getModuleName
  • Yaf_Controller_Abstract::getRequest »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Get self name

Yaf_Controller_Abstract::getName

(Yaf >=3.2.0)

Yaf_Controller_Abstract::getName — Get self name

Beschreibung

public Yaf_Controller_Abstract::getName ( ) : string

get the controller's name

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

String, controller name


Retrieve current request object

  • « Yaf_Controller_Abstract::getName
  • Yaf_Controller_Abstract::getResponse »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Retrieve current request object

Yaf_Controller_Abstract::getRequest

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getRequest — Retrieve current request object

Beschreibung

public Yaf_Controller_Abstract::getRequest ( ) : Yaf_Request_Abstract

retrieve current request object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Yaf_Request_Abstract instance


Retrieve current response object

  • « Yaf_Controller_Abstract::getRequest
  • Yaf_Controller_Abstract::getView »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Retrieve current response object

Yaf_Controller_Abstract::getResponse

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getResponse — Retrieve current response object

Beschreibung

public Yaf_Controller_Abstract::getResponse ( ) : Yaf_Response_Abstract

retrieve current response object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Yaf_Response_Abstract instance


Retrieve the view engine

  • « Yaf_Controller_Abstract::getResponse
  • Yaf_Controller_Abstract::getViewpath »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Retrieve the view engine

Yaf_Controller_Abstract::getView

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getView — Retrieve the view engine

Beschreibung

public Yaf_Controller_Abstract::getView ( ) : Yaf_View_Interface

retrieve view engine

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getViewpath purpose

  • « Yaf_Controller_Abstract::getView
  • Yaf_Controller_Abstract::init »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The getViewpath purpose

Yaf_Controller_Abstract::getViewpath

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getViewpath — The getViewpath purpose

Beschreibung

public Yaf_Controller_Abstract::getViewpath ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Controller initializer

  • « Yaf_Controller_Abstract::getViewpath
  • Yaf_Controller_Abstract::initView »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Controller initializer

Yaf_Controller_Abstract::init

(Yaf >=1.0.0)

Yaf_Controller_Abstract::init — Controller initializer

Beschreibung

public Yaf_Controller_Abstract::init ( ) : void

Yaf_Controller_Abstract::__construct() is final, which means users can not override it. but users can define Yaf_Controller_Abstract::init(), which will be called after controller object is instantiated.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • Yaf_Controller_Abstract::__construct() - Yaf_Controller_Abstract constructor


The initView purpose

  • « Yaf_Controller_Abstract::init
  • Yaf_Controller_Abstract::redirect »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The initView purpose

Yaf_Controller_Abstract::initView

(Yaf >=1.0.0)

Yaf_Controller_Abstract::initView — The initView purpose

Beschreibung

public Yaf_Controller_Abstract::initView ( array $options = ? ) : void

Parameter-Liste

options

Rückgabewerte


Redirect to a URL

  • « Yaf_Controller_Abstract::initView
  • Yaf_Controller_Abstract::render »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Redirect to a URL

Yaf_Controller_Abstract::redirect

(Yaf >=1.0.0)

Yaf_Controller_Abstract::redirect — Redirect to a URL

Beschreibung

public Yaf_Controller_Abstract::redirect ( string $url ) : bool

redirect to a URL by sending a 302 header

Parameter-Liste

url

a location URL

Rückgabewerte

bool


Render view template

  • « Yaf_Controller_Abstract::redirect
  • Yaf_Controller_Abstract::setViewpath »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Render view template

Yaf_Controller_Abstract::render

(Yaf >=1.0.0)

Yaf_Controller_Abstract::render — Render view template

Beschreibung

protected Yaf_Controller_Abstract::render ( string $tpl , array $parameters = ? ) : string

Parameter-Liste

tpl

parameters

Rückgabewerte


The setViewpath purpose

  • « Yaf_Controller_Abstract::render
  • Yaf_Action_Abstract »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The setViewpath purpose

Yaf_Controller_Abstract::setViewpath

(Yaf >=1.0.0)

Yaf_Controller_Abstract::setViewpath — The setViewpath purpose

Beschreibung

public Yaf_Controller_Abstract::setViewpath ( string $view_directory ) : void

Parameter-Liste

view_directory

Rückgabewerte


The Yaf_Action_Abstract class

(Yaf >=1.0.0)

Einführung

A action can be defined in a separate file in Yaf(see Yaf_Controller_Abstract). that is a action method can also be a Yaf_Action_Abstract class.

Since there should be a entry point which can be called by Yaf (as of PHP 5.3, there is a new magic method __invoke, but Yaf is not only works with PHP 5.3+, Yaf choose another magic method execute), you must implement the abstract method Yaf_Action_Abstract::execute() in your custom action class.

Klassenbeschreibung

Yaf_Action_Abstract extends Yaf_Controller_Abstract {
/* Eigenschaften */
protected $_controller ;
/* Methoden */
abstract publicexecute ( mixed ...$args ) : mixed
publicgetController ( ) : Yaf_Controller_Abstract
public getControllerName ( ) : string
/* Geerbte Methoden */
final private Yaf_Controller_Abstract::__construct ( )
protected Yaf_Controller_Abstract::display ( string $tpl , array $parameters = ? ) : bool
public Yaf_Controller_Abstract::forward ( string $action , array $paramters = ? ) : void
public Yaf_Controller_Abstract::getInvokeArg ( string $name ) : void
public Yaf_Controller_Abstract::getInvokeArgs ( ) : void
public Yaf_Controller_Abstract::getModuleName ( ) : string
public Yaf_Controller_Abstract::getName ( ) : string
public Yaf_Controller_Abstract::getRequest ( ) : Yaf_Request_Abstract
public Yaf_Controller_Abstract::getResponse ( ) : Yaf_Response_Abstract
public Yaf_Controller_Abstract::getView ( ) : Yaf_View_Interface
public Yaf_Controller_Abstract::getViewpath ( ) : string
public Yaf_Controller_Abstract::init ( ) : void
public Yaf_Controller_Abstract::initView ( array $options = ? ) : void
public Yaf_Controller_Abstract::redirect ( string $url ) : bool
protected Yaf_Controller_Abstract::render ( string $tpl , array $parameters = ? ) : string
public Yaf_Controller_Abstract::setViewpath ( string $view_directory ) : void
}

Eigenschaften

_module

_name

_request

_response

_invoke_args

_view

_controller

Inhaltsverzeichnis

  • Yaf_Action_Abstract::execute — Action entry point
  • Yaf_Action_Abstract::getController — Retrieve controller object
  • Yaf_Action_Abstract::getControllerName — Get controller name


Action entry point

  • « Yaf_Action_Abstract
  • Yaf_Action_Abstract::getController »
  • PHP Manual
  • Yaf_Action_Abstract
  • Action entry point

Yaf_Action_Abstract::execute

(Yaf >=1.0.0)

Yaf_Action_Abstract::execute — Action entry point

Beschreibung

abstract publicYaf_Action_Abstract::execute ( mixed ...$args ) : mixed

user should always define this method for a action, this is the entry point of an action. Yaf_Action_Abstract::execute() may have agruments.

Hinweis:

The value retrived from the request is not safe. you should do some filtering work before you use it.

Parameter-Liste

args

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Action_Abstract::execute()example

<?php
/**
 * A controller example
 */
class ProductController extends Yaf_Controller_Abstract {
      protected $actions = array(
          "index" => "actions/Index.php",
      );
}
?>

Beispiel #2 Yaf_Action_Abstract::execute()example

<?php
/**
 * ListAction
 */
class ListAction extends Yaf_Action_Abstract {
     public function execute ($name, $id) {
         assert($name == $this->getRequest()->getParam("name"));
         assert($id   == $this->getRequest()->getParam("id"));
     }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/**
 * Now assuming we are using the Yaf_Route_Static route
 * for request: http://yourdomain/product/list/name/yaf/id/22
 * will result:
 */
 bool(true)
 bool(true)

Siehe auch


Retrieve controller object

  • « Yaf_Action_Abstract::execute
  • Yaf_Action_Abstract::getControllerName »
  • PHP Manual
  • Yaf_Action_Abstract
  • Retrieve controller object

Yaf_Action_Abstract::getController

(Yaf >=1.0.0)

Yaf_Action_Abstract::getController — Retrieve controller object

Beschreibung

publicYaf_Action_Abstract::getController ( ) : Yaf_Controller_Abstract

retrieve current controller object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Yaf_Controller_Abstract instance


Get controller name

  • « Yaf_Action_Abstract::getController
  • Yaf_View_Interface »
  • PHP Manual
  • Yaf_Action_Abstract
  • Get controller name

Yaf_Action_Abstract::getControllerName

(No version information available, might only be in Git)

Yaf_Action_Abstract::getControllerName — Get controller name

Beschreibung

public Yaf_Action_Abstract::getControllerName ( ) : string

get the controller's name

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

String, controller name


The Yaf_View_Interface class

(Yaf >=1.0.0)

Einführung

Yaf provides a ability for developers to use custom view engine instead of built-in engine which is Yaf_View_Simple. There is a example to explain how to do this, please see Yaf_Dispatcher::setView().

Klassenbeschreibung

Yaf_View_Interface {
/* Methoden */
abstract public assign ( string $name , string $value = ? ) : bool
abstract public display ( string $tpl , array $tpl_vars = ? ) : bool
abstract public getScriptPath ( ) : void
abstract public render ( string $tpl , array $tpl_vars = ? ) : string
abstract public setScriptPath ( string $template_dir ) : void
}

Inhaltsverzeichnis

  • Yaf_View_Interface::assign — Assign value to View engine
  • Yaf_View_Interface::display — Render and output a template
  • Yaf_View_Interface::getScriptPath — The getScriptPath purpose
  • Yaf_View_Interface::render — Render a template
  • Yaf_View_Interface::setScriptPath — The setScriptPath purpose


Assign value to View engine

  • « Yaf_View_Interface
  • Yaf_View_Interface::display »
  • PHP Manual
  • Yaf_View_Interface
  • Assign value to View engine

Yaf_View_Interface::assign

(Yaf >=1.0.0)

Yaf_View_Interface::assign — Assign value to View engine

Beschreibung

abstract public Yaf_View_Interface::assign ( string $name , string $value = ? ) : bool

Assigan values to View engine, then the value can access directly by name in template.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

value

Rückgabewerte


Render and output a template

  • « Yaf_View_Interface::assign
  • Yaf_View_Interface::getScriptPath »
  • PHP Manual
  • Yaf_View_Interface
  • Render and output a template

Yaf_View_Interface::display

(Yaf >=1.0.0)

Yaf_View_Interface::display — Render and output a template

Beschreibung

abstract public Yaf_View_Interface::display ( string $tpl , array $tpl_vars = ? ) : bool

Render a template and output the result immediatly.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

tpl

tpl_vars

Rückgabewerte


The getScriptPath purpose

  • « Yaf_View_Interface::display
  • Yaf_View_Interface::render »
  • PHP Manual
  • Yaf_View_Interface
  • The getScriptPath purpose

Yaf_View_Interface::getScriptPath

(Yaf >=1.0.0)

Yaf_View_Interface::getScriptPath — The getScriptPath purpose

Beschreibung

abstract public Yaf_View_Interface::getScriptPath ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Render a template

  • « Yaf_View_Interface::getScriptPath
  • Yaf_View_Interface::setScriptPath »
  • PHP Manual
  • Yaf_View_Interface
  • Render a template

Yaf_View_Interface::render

(Yaf >=1.0.0)

Yaf_View_Interface::render — Render a template

Beschreibung

abstract public Yaf_View_Interface::render ( string $tpl , array $tpl_vars = ? ) : string

Render a template and return the result.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

tpl

tpl_vars

Rückgabewerte


The setScriptPath purpose

  • « Yaf_View_Interface::render
  • Yaf_View_Simple »
  • PHP Manual
  • Yaf_View_Interface
  • The setScriptPath purpose

Yaf_View_Interface::setScriptPath

(Yaf >=1.0.0)

Yaf_View_Interface::setScriptPath — The setScriptPath purpose

Beschreibung

abstract public Yaf_View_Interface::setScriptPath ( string $template_dir ) : void

Set the templates base directory, this is usually called by Yaf_Dispatcher

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

template_dir

A absolute path to the template directory, by default, Yaf_Dispatcher use application.directory . "/views" as this paramter.

Rückgabewerte


The Yaf_View_Simple class

(Yaf >=1.0.0)

Einführung

Yaf_View_Simple is the built-in template engine in Yaf, it is a simple but fast template engine, and only support PHP script template.

Klassenbeschreibung

Yaf_View_Simple implements Yaf_View_Interface {
/* Eigenschaften */
protected $_tpl_vars ;
protected $_tpl_dir ;
/* Methoden */
public assign ( string $name , mixed $value = ? ) : bool
public assignRef ( string $name , mixed &$value ) : bool
public clear ( string $name = ? ) : bool
final public __construct ( string $template_dir , array $options = ? )
public display ( string $tpl , array $tpl_vars = ? ) : bool
public eval ( string $tpl_content , array $tpl_vars = ? ) : string
public __get ( string $name = ? ) : void
public getScriptPath ( ) : string
public __isset ( string $name ) : void
public render ( string $tpl , array $tpl_vars = ? ) : string
public __set ( string $name , mixed $value ) : void
public setScriptPath ( string $template_dir ) : bool
}

Eigenschaften

_tpl_vars

_tpl_dir

Inhaltsverzeichnis

  • Yaf_View_Simple::assign — Assign values
  • Yaf_View_Simple::assignRef — The assignRef purpose
  • Yaf_View_Simple::clear — Clear Assigned values
  • Yaf_View_Simple::__construct — Constructor of Yaf_View_Simple
  • Yaf_View_Simple::display — Render and display
  • Yaf_View_Simple::eval — Render template
  • Yaf_View_Simple::__get — Retrieve assigned variable
  • Yaf_View_Simple::getScriptPath — Get templates directory
  • Yaf_View_Simple::__isset — The __isset purpose
  • Yaf_View_Simple::render — Render template
  • Yaf_View_Simple::__set — Set value to engine
  • Yaf_View_Simple::setScriptPath — Set tempaltes directory


Assign values

  • « Yaf_View_Simple
  • Yaf_View_Simple::assignRef »
  • PHP Manual
  • Yaf_View_Simple
  • Assign values

Yaf_View_Simple::assign

(Yaf >=1.0.0)

Yaf_View_Simple::assign — Assign values

Beschreibung

public Yaf_View_Simple::assign ( string $name , mixed $value = ? ) : bool

assign variable to view engine

Parameter-Liste

name

A string or an array.

if is string, then the next argument $value is required.

value

mixed value

Rückgabewerte

Beispiele

Beispiel #1 Yaf_View_Simple::assign()example

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $this->getView()->assign("foo", "bar");
        $this->_view->assign( array( "key" => "value", "name" => "value"));
    }
?>

Beispiel #2 template()example

<html>
 <head>
  <title><?php echo $foo; ?></title>
 </head>
<body>
  <?php
    foreach ($this->_tpl_vars as $name => value) {
         echo $$name; // or echo $this->_tpl_vars[$name];
    }
  ?>
</body>
</html>

Siehe auch

  • Yaf_View_Simple::assignRef() - The assignRef purpose
  • Yaf_View_Interface::clear()
  • Yaf_View_Simple::__set() - Set value to engine


The assignRef purpose

  • « Yaf_View_Simple::assign
  • Yaf_View_Simple::clear »
  • PHP Manual
  • Yaf_View_Simple
  • The assignRef purpose

Yaf_View_Simple::assignRef

(Yaf >=1.0.0)

Yaf_View_Simple::assignRef — The assignRef purpose

Beschreibung

public Yaf_View_Simple::assignRef ( string $name , mixed &$value ) : bool

unlike Yaf_View_Simple::assign(), this method assign a ref value to engine.

Parameter-Liste

name

A string name which will be used to access the value in the tempalte.

value

mixed value

Rückgabewerte

Beispiele

Beispiel #1 Yaf_View_Simple::assignRef()example

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $value = "bar";
        $this->getView()->assign("foo", $value);

        /* plz note that there was a bug before Yaf 2.1.4,
         * which make following output "bar";
         */
        $dummy = $this->getView()->render("index/index.phtml");
        echo $value;

        //prevent the auto-render
        Yaf_Dispatcher::getInstance()->autoRender(FALSE);
    }
?>

Beispiel #2 template()example

<html>
 <head>
  <title><?php echo $foo;  $foo = "changed"; ?></title>
 </head>
<body>
</body>
</html>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/* access the index controller will result: */
changed

Siehe auch

  • Yaf_View_Simple::assign() - Assign values
  • Yaf_View_Simple::__set() - Set value to engine


Clear Assigned values

  • « Yaf_View_Simple::assignRef
  • Yaf_View_Simple::__construct »
  • PHP Manual
  • Yaf_View_Simple
  • Clear Assigned values

Yaf_View_Simple::clear

(Yaf >=2.2.0)

Yaf_View_Simple::clear — Clear Assigned values

Beschreibung

public Yaf_View_Simple::clear ( string $name = ? ) : bool

clear assigned variable

Parameter-Liste

name

assigned variable name

if empty, will clear all assigned variables

Rückgabewerte

Beispiele

Beispiel #1 Yaf_View_Simple::clear()example

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $this->getView()->clear("foo")->clear("bar"); // clear "foo" and "bar"
        $this->_view->clear(); //clear all assigned variables
    }
?>

Siehe auch

  • Yaf_View_Simple::assignRef() - The assignRef purpose
  • Yaf_View_Interface::assign() - Assign value to View engine
  • Yaf_View_Simple::__set() - Set value to engine


Constructor of Yaf_View_Simple

  • « Yaf_View_Simple::clear
  • Yaf_View_Simple::display »
  • PHP Manual
  • Yaf_View_Simple
  • Constructor of Yaf_View_Simple

Yaf_View_Simple::__construct

(Yaf >=1.0.0)

Yaf_View_Simple::__construct — Constructor of Yaf_View_Simple

Beschreibung

final public Yaf_View_Simple::__construct ( string $template_dir , array $options = ? )

Parameter-Liste

template_dir

The base directory of the templates, by default, it is APPLICATOIN . "/views" for Yaf.

options

Options for the engine, as of Yaf 2.1.13, you can use short tag
      "<?=$var?>" in your template(regardless of "short_open_tag"),
      so comes a option named "short_tag",  you can switch this off
      to prevent use short_tag in template.

Beispiele

Beispiel #1 Yaf_View_Simple::__constructor()example

<?php
   define ("TEMPLATE_DIRECTORY", APPLICATOIN_PATH . '/views');
   $view = new Yaf_View_Simple(TEMPLATE_DIRECTORY, array(
                           'short_tag' => false //doesn't allow use short tag in template
   ));
?>

Rückgabewerte


Render and display

  • « Yaf_View_Simple::__construct
  • Yaf_View_Simple::eval »
  • PHP Manual
  • Yaf_View_Simple
  • Render and display

Yaf_View_Simple::display

(Yaf >=1.0.0)

Yaf_View_Simple::display — Render and display

Beschreibung

public Yaf_View_Simple::display ( string $tpl , array $tpl_vars = ? ) : bool

Render a template and display the result instantly.

Parameter-Liste

tpl

tpl_vars

Rückgabewerte


Render template

  • « Yaf_View_Simple::display
  • Yaf_View_Simple::__get »
  • PHP Manual
  • Yaf_View_Simple
  • Render template

Yaf_View_Simple::eval

(Yaf >=2.2.0)

Yaf_View_Simple::eval — Render template

Beschreibung

public Yaf_View_Simple::eval ( string $tpl_content , array $tpl_vars = ? ) : string

Render a string tempalte and return the result.

Parameter-Liste

tpl_content

string template

tpl_vars

Rückgabewerte


Retrieve assigned variable

  • « Yaf_View_Simple::eval
  • Yaf_View_Simple::getScriptPath »
  • PHP Manual
  • Yaf_View_Simple
  • Retrieve assigned variable

Yaf_View_Simple::__get

(Yaf >=1.0.0)

Yaf_View_Simple::__get — Retrieve assigned variable

Beschreibung

public Yaf_View_Simple::__get ( string $name = ? ) : void

Retrieve assigned varaiable

Hinweis:

parameter can be empty since 2.1.11

Parameter-Liste

name

the assigned variable name

if this is empty, all assigned variables will be returned

Rückgabewerte


Get templates directory

  • « Yaf_View_Simple::__get
  • Yaf_View_Simple::__isset »
  • PHP Manual
  • Yaf_View_Simple
  • Get templates directory

Yaf_View_Simple::getScriptPath

(Yaf >=1.0.0)

Yaf_View_Simple::getScriptPath — Get templates directory

Beschreibung

public Yaf_View_Simple::getScriptPath ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The __isset purpose

  • « Yaf_View_Simple::getScriptPath
  • Yaf_View_Simple::render »
  • PHP Manual
  • Yaf_View_Simple
  • The __isset purpose

Yaf_View_Simple::__isset

(Yaf >=1.0.0)

Yaf_View_Simple::__isset — The __isset purpose

Beschreibung

public Yaf_View_Simple::__isset ( string $name ) : void

Parameter-Liste

name

Rückgabewerte


Render template

  • « Yaf_View_Simple::__isset
  • Yaf_View_Simple::__set »
  • PHP Manual
  • Yaf_View_Simple
  • Render template

Yaf_View_Simple::render

(Yaf >=1.0.0)

Yaf_View_Simple::render — Render template

Beschreibung

public Yaf_View_Simple::render ( string $tpl , array $tpl_vars = ? ) : string

Render a template and return the result.

Parameter-Liste

tpl

tpl_vars

Rückgabewerte


Set value to engine

  • « Yaf_View_Simple::render
  • Yaf_View_Simple::setScriptPath »
  • PHP Manual
  • Yaf_View_Simple
  • Set value to engine

Yaf_View_Simple::__set

(Yaf >=1.0.0)

Yaf_View_Simple::__set — Set value to engine

Beschreibung

public Yaf_View_Simple::__set ( string $name , mixed $value ) : void

This is a alternative and easier way to Yaf_View_Simple::assign().

Parameter-Liste

name

A string value name.

value

Mixed value.

Rückgabewerte

Beispiele

Beispiel #1 Yaf_View_Simple::__set()example

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $this->getView()->foo = "bar"; // same as assign("foo", "bar");
    }
?>

Siehe auch

  • Yaf_View_Simple::assignRef() - The assignRef purpose
  • Yaf_View_Interface::assign() - Assign value to View engine


Set tempaltes directory

  • « Yaf_View_Simple::__set
  • Yaf_Loader »
  • PHP Manual
  • Yaf_View_Simple
  • Set tempaltes directory

Yaf_View_Simple::setScriptPath

(Yaf >=1.0.0)

Yaf_View_Simple::setScriptPath — Set tempaltes directory

Beschreibung

public Yaf_View_Simple::setScriptPath ( string $template_dir ) : bool

Parameter-Liste

template_dir

Rückgabewerte


The Yaf_Loader class

(Yaf >=1.0.0)

Einführung

Yaf_Loader introduces a comprehensive autoloading solution for Yaf.

The first time an instance of Yaf_Application is retrieved, Yaf_Loader will instance a singleton, and registers itself with spl_autoload. You retrieve an instance using the Yaf_Loader::getInstance()

Yaf_Loader attempt to load a class only one shot, if failed, depend on yaf.use_spl_auload, if this config is On Yaf_Loader::autoload() will return false, thus give the chance to other autoload function. if it is Off (by default), Yaf_Loader::autoload() will return true, and more important is that a very useful warning will be triggered (very useful to find out why a class could not be loaded).

Hinweis:

Please keep yaf.use_spl_autoload Off unless there is some library have their own autoload mechanism and impossible to rewrite it.

By default, Yaf_Loader assume all library (class defined script) store in the global library directory, which is defined in the php.ini(yaf.library).

If you want Yaf_Loader search some classes(libraries) in the local class directory(which is defined in application.ini, and by default, it is application.directory . "/library"), you should register the class prefix using the Yaf_Loader::registerLocalNameSpace()

Let's see some examples(assuming APPLICATION_PATH is application.directory):

Beispiel #1 Config example

// Assuming the following configure in php.ini:
yaf.library = "/global_dir"

//Assuming the following configure in application.ini
application.library = APPLICATION_PATH "/library"
Assuming the following local name space is registered:

Beispiel #2 Register localnamespace

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
     public function _initLoader($dispatcher) {
          Yaf_Loader::getInstance()->registerLocalNameSpace(array("Foo", "Bar"));
     }
?>
Then the autoload examples:

Beispiel #3 Load class example

class Foo_Bar_Test =>
  // APPLICATION_PATH/library/Foo/Bar/Test.php

class GLO_Name  =>
  // /global_dir/Glo/Name.php

class BarNon_Test
  // /global_dir/Barnon/Test.php
As of PHP 5.3, you can use namespace:

Beispiel #4 Load namespace class example

class \Foo\Bar\Dummy =>
   // APPLICATION_PATH/library/Foo/Bar/Dummy.php

class \FooBar\Bar\Dummy =>
   // /global_dir/FooBar/Bar/Dummy.php

You may noticed that all the folder with the first letter capitalized, you can make them lowercase by set yaf.lowcase_path = On in php.ini

Yaf_Loader is also designed to load the MVC classes, and the rule is:

Beispiel #5 MVC class loading example

Controller Classes =>
// APPLICATION_PATH/controllers/

Model Classes =>
// APPLICATION_PATH/models/

Plugin Classes =>
// APPLICATION_PATH/plugins/
Yaf identify a class's suffix(this is by default, you can also change to the prefix by change the configure yaf.name_suffix) to decide whether it is a MVC class:

Beispiel #6 MVC class distinctions

Controller Classes =>
    // ***Controller

Model Classes =>
    // ***Model

Plugin Classes =>
    // ***Plugin
some examples:

Beispiel #7 MVC loading example

class IndexController
    // APPLICATION_PATH/controllers/Index.php

class DataModel =>
   // APPLICATION_PATH/models/Data.php

class DummyPlugin =>
  // APPLICATION_PATH/plugins/Dummy.php

class A_B_TestModel =>
  // APPLICATION_PATH/models/A/B/Test.php

Hinweis:

As of 2.1.18, Yaf supports Controllers autoloading for user script side, (which means the autoloading triggered by user php script, eg: access a controller static property in Bootstrap or Plugins), but autoloader only try to locate controller class script under the default module folder, which is "APPLICATION_PATH/controllers/".

also, the directory will be affected by yaf.lowcase_path.

Klassenbeschreibung

Yaf_Loader {
/* Eigenschaften */
protected $_local_ns ;
protected $_library ;
protected $_global_library ;
static $_instance ;
/* Methoden */
public autoload ( ) : void
public clearLocalNamespace ( ) : void
private __construct ( )
public static getInstance ( ) : void
public getLibraryPath ( bool $is_global = false ) : Yaf_Loader
public getLocalNamespace ( ) : void
public getNamespacePath ( string $namespaces ) : string
public getNamespaces ( ) : array
public static import ( ) : void
public isLocalName ( ) : void
public registerLocalNamespace ( mixed $prefix ) : void
public registerNamespace ( string|array $namespaces , string $path = ? ) : bool
public setLibraryPath ( string $directory , bool $is_global = false ) : Yaf_Loader
}

Eigenschaften

_local_ns

_library

By default, this value is application.directory . "/library", you can change this either in the application.ini(application.library) or call to Yaf_Loader::setLibraryPath()

_global_library

_instance

Inhaltsverzeichnis

  • Yaf_Loader::autoload — The autoload purpose
  • Yaf_Loader::clearLocalNamespace — The clearLocalNamespace purpose
  • Yaf_Loader::__construct — The __construct purpose
  • Yaf_Loader::getInstance — The getInstance purpose
  • Yaf_Loader::getLibraryPath — Get the library path
  • Yaf_Loader::getLocalNamespace — The getLocalNamespace purpose
  • Yaf_Loader::getNamespacePath — Retieve path of a registered namespace
  • Yaf_Loader::getLocalNamespace — Retrive all register namespaces info
  • Yaf_Loader::import — The import purpose
  • Yaf_Loader::isLocalName — The isLocalName purpose
  • Yaf_Loader::registerLocalNamespace — Register local class prefix
  • Yaf_Loader::registerNamespace — Register namespace with searching path
  • Yaf_Loader::setLibraryPath — Change the library path


The autoload purpose

  • « Yaf_Loader
  • Yaf_Loader::clearLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • The autoload purpose

Yaf_Loader::autoload

(Yaf >=1.0.0)

Yaf_Loader::autoload — The autoload purpose

Beschreibung

public Yaf_Loader::autoload ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The clearLocalNamespace purpose

  • « Yaf_Loader::autoload
  • Yaf_Loader::__construct »
  • PHP Manual
  • Yaf_Loader
  • The clearLocalNamespace purpose

Yaf_Loader::clearLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::clearLocalNamespace — The clearLocalNamespace purpose

Beschreibung

public Yaf_Loader::clearLocalNamespace ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The __construct purpose

  • « Yaf_Loader::clearLocalNamespace
  • Yaf_Loader::getInstance »
  • PHP Manual
  • Yaf_Loader
  • The __construct purpose

Yaf_Loader::__construct

(Yaf >=1.0.0)

Yaf_Loader::__construct — The __construct purpose

Beschreibung

private Yaf_Loader::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getInstance purpose

  • « Yaf_Loader::__construct
  • Yaf_Loader::getLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • The getInstance purpose

Yaf_Loader::getInstance

(Yaf >=1.0.0)

Yaf_Loader::getInstance — The getInstance purpose

Beschreibung

public static Yaf_Loader::getInstance ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the library path

  • « Yaf_Loader::getInstance
  • Yaf_Loader::getLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Get the library path

Yaf_Loader::getLibraryPath

(Yaf >=2.1.4)

Yaf_Loader::getLibraryPath — Get the library path

Beschreibung

public Yaf_Loader::getLibraryPath ( bool $is_global = false ) : Yaf_Loader

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getLocalNamespace purpose

  • « Yaf_Loader::getLibraryPath
  • Yaf_Loader::getNamespacePath »
  • PHP Manual
  • Yaf_Loader
  • The getLocalNamespace purpose

Yaf_Loader::getLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::getLocalNamespace — The getLocalNamespace purpose

Beschreibung

public Yaf_Loader::getLocalNamespace ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retieve path of a registered namespace

  • « Yaf_Loader::getLocalNamespace
  • Yaf_Loader::getLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Retieve path of a registered namespace

Yaf_Loader::getNamespacePath

(Yaf >=3.2.0)

Yaf_Loader::getNamespacePath — Retieve path of a registered namespace

Beschreibung

public Yaf_Loader::getNamespacePath ( string $namespaces ) : string

retrieve path of a registered namespace

Parameter-Liste

namespace

a string of namespace.

Rückgabewerte

String path, if the namespace is not registered, then null default library will be returned

Beispiele

Beispiel #1 Yaf_Loader::registerNamespace()example

<?php
$loader = Yaf_Loader::getInstance("/var/application/lib");
$loader->registerNamespace("\Vendor\PHP", "/var/lib/php");

$loader->getNamespacePath("\Vendor\PHP"); // '/var/lib/php'
$loader->getNamespacePath("\Vendor\JSP"); // '/var/application/lib'

?>


Retrive all register namespaces info

  • « Yaf_Loader::getNamespacePath
  • Yaf_Loader::import »
  • PHP Manual
  • Yaf_Loader
  • Retrive all register namespaces info

Yaf_Loader::getLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::getLocalNamespace — Retrive all register namespaces info

Beschreibung

public Yaf_Loader::getNamespaces ( ) : array

get registered namespaces info

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Array


The import purpose

  • « Yaf_Loader::getLocalNamespace
  • Yaf_Loader::isLocalName »
  • PHP Manual
  • Yaf_Loader
  • The import purpose

Yaf_Loader::import

(Yaf >=1.0.0)

Yaf_Loader::import — The import purpose

Beschreibung

public static Yaf_Loader::import ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The isLocalName purpose

  • « Yaf_Loader::import
  • Yaf_Loader::registerLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • The isLocalName purpose

Yaf_Loader::isLocalName

(Yaf >=1.0.0)

Yaf_Loader::isLocalName — The isLocalName purpose

Beschreibung

public Yaf_Loader::isLocalName ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Register local class prefix

  • « Yaf_Loader::isLocalName
  • Yaf_Loader::registerNamespace »
  • PHP Manual
  • Yaf_Loader
  • Register local class prefix

Yaf_Loader::registerLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::registerLocalNamespace — Register local class prefix

Beschreibung

public Yaf_Loader::registerLocalNamespace ( mixed $prefix ) : void

Register local class prefix name, Yaf_Loader search classes in two library directories, the one is configured via application.library.directory(in application.ini) which is called local libraray directory; the other is configured via yaf.library (in php.ini) which is callled global library directory, since it can be shared by many applications in the same server.

When an autloading is trigger, Yaf_Loader will determine which library directory should be searched in by exame the prefix name of the missed classname. If the prefix name is registered as a localnamespack then look for it in local library directory, otherwise look for it in global library directory.

Hinweis:

If yaf.library is not configured, then the global library directory is assumed to be the local library directory. in that case, all autoloading will look for local library directory. But if you want your Yaf application be strong, then always register your own classes as local classes.

Parameter-Liste

prefix

a string or a array of class name prefix. all class prefix with these prefix will be loaded in local library path.

Rückgabewerte

bool

Beispiele

Beispiel #1 Yaf_Loader::registerLocalNamespace()example

<?php
$loader = Yaf_Loader::getInstance('/local/library/', '/global/library');
$loader->registerLocalNamespace("Baidu");
$loader->registerLocalNamespace(array("Sina", "Weibo"));

$loader->autoload("Baidu_Name"); // search in '/local/library/'
$loader->autoload("Sina");       // search '/local/library/'
$loader->autoload("Global_Name");// search in '/global/library/'
$loader->autoload("Foo_Bar");    // search in '/global/library/'

?>


Register namespace with searching path

  • « Yaf_Loader::registerLocalNamespace
  • Yaf_Loader::setLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • Register namespace with searching path

Yaf_Loader::registerNamespace

(Yaf >=3.2.0)

Yaf_Loader::registerNamespace — Register namespace with searching path

Beschreibung

public Yaf_Loader::registerNamespace ( string|array $namespaces , string $path = ? ) : bool

Register a namespace with searching path, Yaf_Loader searchs classes under this namespace in path, the one is also could be configureded via application.library.directory.namespace(in application.ini);

Hinweis:

Yaf still think underline as folder separator.

Parameter-Liste

namespace

a string of namespace, or a array of namespaces with paths.

path

a string of path, it it better to use abosolute path here for performance

Rückgabewerte

bool

Beispiele

Beispiel #1 Yaf_Loader::registerNamespace()example

<?php
$loader = Yaf_Loader::getInstance();
$loader->registerNamespace("\Vendor\PHP", "/var/lib/php");
$loader->registerNamespace(array(
     "\Vendor\ASP" => "/var/lib/asp",
     "\Vendor\JSP" => "/usr/lib/vendor/",
));

$loader->autoload("\Vendor\PHP\Dummy");   //load '/var/lib/php/Dummy.php'
$loader->autoload("\Vendor\PHP\Foo_Bar"); //load '/var/lib/php/Foo/Bar.php'
$loader->autoload("\Vendor\JSP\Dummy");   //load '/usr/lib/vendor/Dummy.php'

?>


Change the library path

  • « Yaf_Loader::registerNamespace
  • Yaf_Plugin_Abstract »
  • PHP Manual
  • Yaf_Loader
  • Change the library path

Yaf_Loader::setLibraryPath

(Yaf >=2.1.4)

Yaf_Loader::setLibraryPath — Change the library path

Beschreibung

public Yaf_Loader::setLibraryPath ( string $directory , bool $is_global = false ) : Yaf_Loader

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Yaf_Plugin_Abstract class

(Yaf >=1.0.0)

Einführung

Plugins allow for easy extensibility and customization of the framework.

Plugins are classes. The actual class definition will vary based on the component -- you may need to implement this interface, but the fact remains that the plugin is itself a class.

A plugin could be loaded into Yaf by using Yaf_Dispatcher::registerPlugin(), after registering, All the methods which the plugin implemented according to this interface, will be called at the proper time.

Beispiele

Beispiel #1 Plugin example

<?php
   /* bootstrap class should be defined under ./application/Bootstrap.php */
   class Bootstrap extends Yaf_Bootstrap_Abstract {
        public function _initPlugin(Yaf_Dispatcher $dispatcher) {
            /* register a plugin */
            $dispatcher->registerPlugin(new TestPlugin());
        }
   }

   /* plugin class should be placed under ./application/plugins/ */
   class TestPlugin extends Yaf_Plugin_Abstract {
        public function routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            /* before router
               in this hook,  user can do some url rewrite */
            var_dump("routerStartup");
        }
        public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            /* router complete
               in this hook, user can do login check */
            var_dump("routerShutdown");
        }
        public function dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            var_dump("dispatchLoopStartup");
        }
        public function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            var_dump("preDispatch");
        }
        public function postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            var_dump("postDispatch");
        }
        public function dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            /* final hook
               in this hook user can do logging or implement layout */
            var_dump("dispatchLoopShutdown");
        }
   }

   Class IndexController extends Yaf_Controller_Abstract {
        public function indexAction() {
            return FALSE; //prevent rendering
        }
   }

   $config = array(
       "application" => array(
           "directory" => dirname(__FILE__) . "/application/",
       ),
   );

   $app = new Yaf_Application($config);
   $app->bootstrap()->run();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(13) "routerStartup"
string(14) "routerShutdown"
string(19) "dispatchLoopStartup"
string(11) "preDispatch"
string(12) "postDispatch"
string(20) "dispatchLoopShutdown"

Klassenbeschreibung

Yaf_Plugin_Abstract {
/* Methoden */
public dispatchLoopShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
public dispatchLoopStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
public postDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
public preDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
public preResponse ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
public routerShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
public routerStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void
}

Inhaltsverzeichnis

  • Yaf_Plugin_Abstract::dispatchLoopShutdown — The dispatchLoopShutdown purpose
  • Yaf_Plugin_Abstract::dispatchLoopStartup — Hook before dispatch loop
  • Yaf_Plugin_Abstract::postDispatch — The postDispatch purpose
  • Yaf_Plugin_Abstract::preDispatch — The preDispatch purpose
  • Yaf_Plugin_Abstract::preResponse — The preResponse purpose
  • Yaf_Plugin_Abstract::routerShutdown — The routerShutdown purpose
  • Yaf_Plugin_Abstract::routerStartup — RouterStartup hook


The dispatchLoopShutdown purpose

  • « Yaf_Plugin_Abstract
  • Yaf_Plugin_Abstract::dispatchLoopStartup »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The dispatchLoopShutdown purpose

Yaf_Plugin_Abstract::dispatchLoopShutdown

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopShutdown — The dispatchLoopShutdown purpose

Beschreibung

public Yaf_Plugin_Abstract::dispatchLoopShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

This is the latest hook in Yaf plugin hook system, if a custom plugin implement this method, then it will be called after the dispatch loop finished.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

request

response

Rückgabewerte

Siehe auch

  • Yaf_Plugin_Abstract::routerStartup() - RouterStartup hook
  • Yaf_Plugin_Abstract::routerShutdown() - The routerShutdown purpose
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Hook before dispatch loop
  • Yaf_Plugin_Abstract::preDispatch() - The preDispatch purpose
  • Yaf_Plugin_Abstract::postDispatch() - The postDispatch purpose


Hook before dispatch loop

  • « Yaf_Plugin_Abstract::dispatchLoopShutdown
  • Yaf_Plugin_Abstract::postDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Hook before dispatch loop

Yaf_Plugin_Abstract::dispatchLoopStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopStartup — Hook before dispatch loop

Beschreibung

public Yaf_Plugin_Abstract::dispatchLoopStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

Parameter-Liste

request

response

Rückgabewerte


The postDispatch purpose

  • « Yaf_Plugin_Abstract::dispatchLoopStartup
  • Yaf_Plugin_Abstract::preDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The postDispatch purpose

Yaf_Plugin_Abstract::postDispatch

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::postDispatch — The postDispatch purpose

Beschreibung

public Yaf_Plugin_Abstract::postDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

request

response

Rückgabewerte


The preDispatch purpose

  • « Yaf_Plugin_Abstract::postDispatch
  • Yaf_Plugin_Abstract::preResponse »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The preDispatch purpose

Yaf_Plugin_Abstract::preDispatch

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::preDispatch — The preDispatch purpose

Beschreibung

public Yaf_Plugin_Abstract::preDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

request

response

Rückgabewerte


The preResponse purpose

  • « Yaf_Plugin_Abstract::preDispatch
  • Yaf_Plugin_Abstract::routerShutdown »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The preResponse purpose

Yaf_Plugin_Abstract::preResponse

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::preResponse — The preResponse purpose

Beschreibung

public Yaf_Plugin_Abstract::preResponse ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

request

response

Rückgabewerte


The routerShutdown purpose

  • « Yaf_Plugin_Abstract::preResponse
  • Yaf_Plugin_Abstract::routerStartup »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The routerShutdown purpose

Yaf_Plugin_Abstract::routerShutdown

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerShutdown — The routerShutdown purpose

Beschreibung

public Yaf_Plugin_Abstract::routerShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

This hook will be trigged after the route process finished, this hook is usually used for login check.

Parameter-Liste

request

response

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Plugin_Abstract::routerShutdown()example

<?php
class UserInitPlugin extends Yaf_Plugin_Abstract {

    public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
        $controller = $request->getControllerName();

        /**
         * Use access controller is unecessary for APIs
         */
        if (in_array(strtolower($controller), array(
            'api',
        ))) {
            return TRUE;
        }

        if (Yaf_Session::getInstance()->has("login")) {
            return TRUE;
        }

        /* Use access check failed, need to login */
        $response->setRedirect("http://yourdomain.com/login/");
        return FALSE;
    }
?>

Siehe auch

  • Yaf_Plugin_Abstract::routerStartup() - RouterStartup hook
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Hook before dispatch loop
  • Yaf_Plugin_Abstract::preDispatch() - The preDispatch purpose
  • Yaf_Plugin_Abstract::postDispatch() - The postDispatch purpose
  • Yaf_Plugin_Abstract::dispatchLoopShutdown() - The dispatchLoopShutdown purpose


RouterStartup hook

  • « Yaf_Plugin_Abstract::routerShutdown
  • Yaf_Registry »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • RouterStartup hook

Yaf_Plugin_Abstract::routerStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerStartup — RouterStartup hook

Beschreibung

public Yaf_Plugin_Abstract::routerStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response ) : void

This is the earliest hook in Yaf plugin hook system, if a custom plugin implement this method, then it will be called before routing a request.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

request

response

Rückgabewerte

Siehe auch

  • Yaf_Plugin_Abstract::routerShutdown() - The routerShutdown purpose
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Hook before dispatch loop
  • Yaf_Plugin_Abstract::preDispatch() - The preDispatch purpose
  • Yaf_Plugin_Abstract::postDispatch() - The postDispatch purpose
  • Yaf_Plugin_Abstract::dispatchLoopShutdown() - The dispatchLoopShutdown purpose


The Yaf_Registry class

(Yaf >=1.0.0)

Einführung

All methods of Yaf_Registry declared as static, making it unversally accessible. This provides the ability to get or set any custom data from anyway in your code as necessary.

Klassenbeschreibung

Yaf_Registry {
/* Eigenschaften */
static $_instance ;
protected $_entries ;
/* Methoden */
private __construct ( )
public static del ( string $name ) : void
public static get ( string $name ) : mixed
public static has ( string $name ) : bool
public static set ( string $name , string $value ) : bool
}

Eigenschaften

_instance

_entries

Inhaltsverzeichnis

  • Yaf_Registry::__construct — Yaf_Registry implements singleton
  • Yaf_Registry::del — Remove an item from registry
  • Yaf_Registry::get — Retrieve an item from registry
  • Yaf_Registry::has — Check whether an item exists
  • Yaf_Registry::set — Add an item into registry


Yaf_Registry implements singleton

  • « Yaf_Registry
  • Yaf_Registry::del »
  • PHP Manual
  • Yaf_Registry
  • Yaf_Registry implements singleton

Yaf_Registry::__construct

(Yaf >=1.0.0)

Yaf_Registry::__construct — Yaf_Registry implements singleton

Beschreibung

private Yaf_Registry::__construct ( )

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Remove an item from registry

  • « Yaf_Registry::__construct
  • Yaf_Registry::get »
  • PHP Manual
  • Yaf_Registry
  • Remove an item from registry

Yaf_Registry::del

(Yaf >=1.0.0)

Yaf_Registry::del — Remove an item from registry

Beschreibung

public static Yaf_Registry::del ( string $name ) : void

Remove an item from registry

Parameter-Liste

name

Rückgabewerte


Retrieve an item from registry

  • « Yaf_Registry::del
  • Yaf_Registry::has »
  • PHP Manual
  • Yaf_Registry
  • Retrieve an item from registry

Yaf_Registry::get

(Yaf >=1.0.0)

Yaf_Registry::get — Retrieve an item from registry

Beschreibung

public static Yaf_Registry::get ( string $name ) : mixed

Retrieve an item from registry

Parameter-Liste

name

Rückgabewerte


Check whether an item exists

  • « Yaf_Registry::get
  • Yaf_Registry::set »
  • PHP Manual
  • Yaf_Registry
  • Check whether an item exists

Yaf_Registry::has

(Yaf >=1.0.0)

Yaf_Registry::has — Check whether an item exists

Beschreibung

public static Yaf_Registry::has ( string $name ) : bool

Check whether an item exists

Parameter-Liste

name

Rückgabewerte


Add an item into registry

  • « Yaf_Registry::has
  • Yaf_Request_Abstract »
  • PHP Manual
  • Yaf_Registry
  • Add an item into registry

Yaf_Registry::set

(Yaf >=1.0.0)

Yaf_Registry::set — Add an item into registry

Beschreibung

public static Yaf_Registry::set ( string $name , string $value ) : bool

Add an item into registry

Parameter-Liste

name

value

Rückgabewerte


The Yaf_Request_Abstract class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Request_Abstract {
/* Constants */
const string SCHEME_HTTP = http ;
const string SCHEME_HTTPS = https ;
/* Eigenschaften */
public $module ;
public $controller ;
public $action ;
public $method ;
protected $params ;
protected $language ;
protected $_exception ;
protected $_base_uri ;
protected $uri ;
protected $dispatched ;
protected $routed ;
/* Methoden */
public clearParams ( ) : bool
public getActionName ( ) : void
public getBaseUri ( ) : void
public getControllerName ( ) : void
public getEnv ( string $name , string $default = ? ) : void
public getException ( ) : void
public getLanguage ( ) : void
public getMethod ( ) : string
public getModuleName ( ) : void
public getParam ( string $name , string $default = ? ) : mixed
public getParams ( ) : array
public getRequestUri ( ) : void
public getServer ( string $name , string $default = ? ) : void
public isCli ( ) : bool
public isDispatched ( ) : bool
public isGet ( ) : bool
public isHead ( ) : bool
public isOptions ( ) : bool
public isPost ( ) : bool
public isPut ( ) : bool
public isRouted ( ) : bool
public isXmlHttpRequest ( ) : bool
public setActionName ( string $action , bool $format_name = true ) : void
public setBaseUri ( string $uir ) : bool
public setControllerName ( string $controller , bool $format_name = true ) : void
public setDispatched ( ) : void
public setModuleName ( string $module , bool $format_name = true ) : void
public setParam ( string $name , string $value = ? ) : bool
public setRequestUri ( string $uir ) : void
public setRouted ( string $flag = ? ) : void
}

Eigenschaften

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Vordefinierte Konstanten

Yaf_Request_Abstract::SCHEME_HTTP

Yaf_Request_Abstract::SCHEME_HTTPS

Inhaltsverzeichnis

  • Yaf_Request_Abstract::clearParams — Remove all params
  • Yaf_Request_Abstract::getActionName — The getActionName purpose
  • Yaf_Request_Abstract::getBaseUri — The getBaseUri purpose
  • Yaf_Request_Abstract::getControllerName — The getControllerName purpose
  • Yaf_Request_Abstract::getEnv — Retrieve ENV varialbe
  • Yaf_Request_Abstract::getException — The getException purpose
  • Yaf_Request_Abstract::getLanguage — Retrieve client's prefered language
  • Yaf_Request_Abstract::getMethod — Retrieve the request method
  • Yaf_Request_Abstract::getModuleName — The getModuleName purpose
  • Yaf_Request_Abstract::getParam — Retrieve calling parameter
  • Yaf_Request_Abstract::getParams — Retrieve all calling parameters
  • Yaf_Request_Abstract::getRequestUri — The getRequestUri purpose
  • Yaf_Request_Abstract::getServer — Retrieve SERVER variable
  • Yaf_Request_Abstract::isCli — Determine if request is CLI request
  • Yaf_Request_Abstract::isDispatched — Determin if the request is dispatched
  • Yaf_Request_Abstract::isGet — Determine if request is GET request
  • Yaf_Request_Abstract::isHead — Determine if request is HEAD request
  • Yaf_Request_Abstract::isOptions — Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isPost — Determine if request is POST request
  • Yaf_Request_Abstract::isPut — Determine if request is PUT request
  • Yaf_Request_Abstract::isRouted — Determin if request has been routed
  • Yaf_Request_Abstract::isXmlHttpRequest — Determine if request is AJAX request
  • Yaf_Request_Abstract::setActionName — Set action name
  • Yaf_Request_Abstract::setBaseUri — Set base URI
  • Yaf_Request_Abstract::setControllerName — Set controller name
  • Yaf_Request_Abstract::setDispatched — The setDispatched purpose
  • Yaf_Request_Abstract::setModuleName — Set module name
  • Yaf_Request_Abstract::setParam — Set a calling parameter to a request
  • Yaf_Request_Abstract::setRequestUri — The setRequestUri purpose
  • Yaf_Request_Abstract::setRouted — The setRouted purpose


Remove all params

  • « Yaf_Request_Abstract
  • Yaf_Request_Abstract::getActionName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Remove all params

Yaf_Request_Abstract::clearParams

(No version information available, might only be in Git)

Yaf_Request_Abstract::clearParams — Remove all params

Beschreibung

public Yaf_Request_Abstract::clearParams ( ) : bool

Remove all params set by router, or Yaf_Request_Abstract::setParam()

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Boolean

Siehe auch

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


The getActionName purpose

  • « Yaf_Request_Abstract::clearParams
  • Yaf_Request_Abstract::getBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getActionName purpose

Yaf_Request_Abstract::getActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getActionName — The getActionName purpose

Beschreibung

public Yaf_Request_Abstract::getActionName ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getBaseUri purpose

  • « Yaf_Request_Abstract::getActionName
  • Yaf_Request_Abstract::getControllerName »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getBaseUri purpose

Yaf_Request_Abstract::getBaseUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::getBaseUri — The getBaseUri purpose

Beschreibung

public Yaf_Request_Abstract::getBaseUri ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getControllerName purpose

  • « Yaf_Request_Abstract::getBaseUri
  • Yaf_Request_Abstract::getEnv »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getControllerName purpose

Yaf_Request_Abstract::getControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getControllerName — The getControllerName purpose

Beschreibung

public Yaf_Request_Abstract::getControllerName ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrieve ENV varialbe

  • « Yaf_Request_Abstract::getControllerName
  • Yaf_Request_Abstract::getException »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve ENV varialbe

Yaf_Request_Abstract::getEnv

(Yaf >=1.0.0)

Yaf_Request_Abstract::getEnv — Retrieve ENV varialbe

Beschreibung

public Yaf_Request_Abstract::getEnv ( string $name , string $default = ? ) : void

Retrieve ENV variable

Parameter-Liste

name

the variable name

default

if this parameter is provide, this will be returned if the varialbe can not be found

Rückgabewerte

Returns string

Siehe auch

  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


The getException purpose

  • « Yaf_Request_Abstract::getEnv
  • Yaf_Request_Abstract::getLanguage »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getException purpose

Yaf_Request_Abstract::getException

(Yaf >=1.0.0)

Yaf_Request_Abstract::getException — The getException purpose

Beschreibung

public Yaf_Request_Abstract::getException ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrieve client's prefered language

  • « Yaf_Request_Abstract::getException
  • Yaf_Request_Abstract::getMethod »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve client's prefered language

Yaf_Request_Abstract::getLanguage

(Yaf >=1.0.0)

Yaf_Request_Abstract::getLanguage — Retrieve client's prefered language

Beschreibung

public Yaf_Request_Abstract::getLanguage ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string


Retrieve the request method

  • « Yaf_Request_Abstract::getLanguage
  • Yaf_Request_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve the request method

Yaf_Request_Abstract::getMethod

(Yaf >=1.0.0)

Yaf_Request_Abstract::getMethod — Retrieve the request method

Beschreibung

public Yaf_Request_Abstract::getMethod ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return a string, like "POST", "GET" etc.

Siehe auch

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


The getModuleName purpose

  • « Yaf_Request_Abstract::getMethod
  • Yaf_Request_Abstract::getParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getModuleName purpose

Yaf_Request_Abstract::getModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getModuleName — The getModuleName purpose

Beschreibung

public Yaf_Request_Abstract::getModuleName ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrieve calling parameter

  • « Yaf_Request_Abstract::getModuleName
  • Yaf_Request_Abstract::getParams »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve calling parameter

Yaf_Request_Abstract::getParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParam — Retrieve calling parameter

Beschreibung

public Yaf_Request_Abstract::getParam ( string $name , string $default = ? ) : mixed

Parameter-Liste

name

default

Rückgabewerte

Siehe auch

  • Yaf_Request_Abstract::setParam() - Set a calling parameter to a request


Retrieve all calling parameters

  • « Yaf_Request_Abstract::getParam
  • Yaf_Request_Abstract::getRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve all calling parameters

Yaf_Request_Abstract::getParams

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParams — Retrieve all calling parameters

Beschreibung

public Yaf_Request_Abstract::getParams ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • Yaf_Request_Abstract::setParam() - Set a calling parameter to a request


The getRequestUri purpose

  • « Yaf_Request_Abstract::getParams
  • Yaf_Request_Abstract::getServer »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getRequestUri purpose

Yaf_Request_Abstract::getRequestUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::getRequestUri — The getRequestUri purpose

Beschreibung

public Yaf_Request_Abstract::getRequestUri ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrieve SERVER variable

  • « Yaf_Request_Abstract::getRequestUri
  • Yaf_Request_Abstract::isCli »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve SERVER variable

Yaf_Request_Abstract::getServer

(Yaf >=1.0.0)

Yaf_Request_Abstract::getServer — Retrieve SERVER variable

Beschreibung

public Yaf_Request_Abstract::getServer ( string $name , string $default = ? ) : void

Retrieve SERVER variable

Parameter-Liste

name

the variable name

default

if this parameter is provide, this will be returned if the variable can not be found

Rückgabewerte

Siehe auch

  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter
  • Yaf_Request_Abstract::getEnv() - Retrieve ENV varialbe


Determine if request is CLI request

  • « Yaf_Request_Abstract::getServer
  • Yaf_Request_Abstract::isDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is CLI request

Yaf_Request_Abstract::isCli

(Yaf >=1.0.0)

Yaf_Request_Abstract::isCli — Determine if request is CLI request

Beschreibung

public Yaf_Request_Abstract::isCli ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

bolean

Siehe auch

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determin if the request is dispatched

  • « Yaf_Request_Abstract::isCli
  • Yaf_Request_Abstract::isGet »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determin if the request is dispatched

Yaf_Request_Abstract::isDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::isDispatched — Determin if the request is dispatched

Beschreibung

public Yaf_Request_Abstract::isDispatched ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

boolean

Siehe auch

  • Yaf_Dispatcher::dispatch() - Dispatch a request


Determine if request is GET request

  • « Yaf_Request_Abstract::isDispatched
  • Yaf_Request_Abstract::isHead »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is GET request

Yaf_Request_Abstract::isGet

(Yaf >=1.0.0)

Yaf_Request_Abstract::isGet — Determine if request is GET request

Beschreibung

public Yaf_Request_Abstract::isGet ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

boolean

Siehe auch

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determine if request is HEAD request

  • « Yaf_Request_Abstract::isGet
  • Yaf_Request_Abstract::isOptions »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is HEAD request

Yaf_Request_Abstract::isHead

(Yaf >=1.0.0)

Yaf_Request_Abstract::isHead — Determine if request is HEAD request

Beschreibung

public Yaf_Request_Abstract::isHead ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

boolean

Siehe auch

  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determine if request is OPTIONS request

  • « Yaf_Request_Abstract::isHead
  • Yaf_Request_Abstract::isPost »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is OPTIONS request

Yaf_Request_Abstract::isOptions

(Yaf >=1.0.0)

Yaf_Request_Abstract::isOptions — Determine if request is OPTIONS request

Beschreibung

public Yaf_Request_Abstract::isOptions ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

boolean


Determine if request is POST request

  • « Yaf_Request_Abstract::isOptions
  • Yaf_Request_Abstract::isPut »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is POST request

Yaf_Request_Abstract::isPost

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPost — Determine if request is POST request

Beschreibung

public Yaf_Request_Abstract::isPost ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

boolean

Siehe auch

  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determine if request is PUT request

  • « Yaf_Request_Abstract::isPost
  • Yaf_Request_Abstract::isRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is PUT request

Yaf_Request_Abstract::isPut

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPut — Determine if request is PUT request

Beschreibung

public Yaf_Request_Abstract::isPut ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

boolean

Siehe auch

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isGet() - Determine if request is GET request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request


Determin if request has been routed

  • « Yaf_Request_Abstract::isPut
  • Yaf_Request_Abstract::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determin if request has been routed

Yaf_Request_Abstract::isRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::isRouted — Determin if request has been routed

Beschreibung

public Yaf_Request_Abstract::isRouted ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

boolean


Determine if request is AJAX request

  • « Yaf_Request_Abstract::isRouted
  • Yaf_Request_Abstract::setActionName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Determine if request is AJAX request

Yaf_Request_Abstract::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Abstract::isXmlHttpRequest — Determine if request is AJAX request

Beschreibung

public Yaf_Request_Abstract::isXmlHttpRequest ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

boolean

Siehe auch

  • Yaf_Request_Abstract::isHead() - Determine if request is HEAD request
  • Yaf_Request_Abstract::isCli() - Determine if request is CLI request
  • Yaf_Request_Abstract::isPost() - Determine if request is POST request
  • Yaf_Request_Abstract::isPut() - Determine if request is PUT request
  • Yaf_Request_Abstract::isOptions() - Determine if request is OPTIONS request
  • Yaf_Request_Abstract::isGet() - Determine if request is GET request


Set action name

  • « Yaf_Request_Abstract::isXmlHttpRequest
  • Yaf_Request_Abstract::setBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Set action name

Yaf_Request_Abstract::setActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setActionName — Set action name

Beschreibung

public Yaf_Request_Abstract::setActionName ( string $action , bool $format_name = true ) : void

set action name to request, this is usually used by custom router to set route result controller name.

Parameter-Liste

action

String, action name, it should in lower case style, like "index" or "foo_bar"

format_name

this is introduced in Yaf 3.2.0, by default Yaf will format the name into lower case style, if this is set to false , Yaf will set the original name to request.

Rückgabewerte


Set base URI

  • « Yaf_Request_Abstract::setActionName
  • Yaf_Request_Abstract::setControllerName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Set base URI

Yaf_Request_Abstract::setBaseUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::setBaseUri — Set base URI

Beschreibung

public Yaf_Request_Abstract::setBaseUri ( string $uir ) : bool

Set base URI, base URI is used when doing routing, in routing phase request URI is used to route a request, while base URI is used to skip the leadding part(base URI) of request URI. That is, if comes a request with request URI a/b/c, then if you set base URI to "a/b", only "/c" will be used in routing phase.

Hinweis:

generally, you don't need to set this, Yaf will determine it automatically.

Parameter-Liste

uir

base URI

Rückgabewerte

bool


Set controller name

  • « Yaf_Request_Abstract::setBaseUri
  • Yaf_Request_Abstract::setDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • Set controller name

Yaf_Request_Abstract::setControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setControllerName — Set controller name

Beschreibung

public Yaf_Request_Abstract::setControllerName ( string $controller , bool $format_name = true ) : void

set controller name to request, this is usually used by custom router to set route result controller name.

Parameter-Liste

controller

String, controller name, this should be in camel style, like "Index" or "Foo_Bar"

format_name

this is introduced in Yaf 3.2.0, by default Yaf will format the name into camel mode, if this is set to false , Yaf will set the original name to request.

Rückgabewerte


The setDispatched purpose

  • « Yaf_Request_Abstract::setControllerName
  • Yaf_Request_Abstract::setModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setDispatched purpose

Yaf_Request_Abstract::setDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::setDispatched — The setDispatched purpose

Beschreibung

public Yaf_Request_Abstract::setDispatched ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Set module name

  • « Yaf_Request_Abstract::setDispatched
  • Yaf_Request_Abstract::setParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • Set module name

Yaf_Request_Abstract::setModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setModuleName — Set module name

Beschreibung

public Yaf_Request_Abstract::setModuleName ( string $module , bool $format_name = true ) : void

set module name to request, this is usually used by custom router to set route result module name.

Parameter-Liste

module

String module name, it should be in camel style, like "Index" or "Foo_Bar"

format_name

this is introduced in Yaf 3.2.0, by default Yaf will format the name into camel mode, if this is set to false , Yaf will set the original name to request.

Rückgabewerte


Set a calling parameter to a request

  • « Yaf_Request_Abstract::setModuleName
  • Yaf_Request_Abstract::setRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Set a calling parameter to a request

Yaf_Request_Abstract::setParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::setParam — Set a calling parameter to a request

Beschreibung

public Yaf_Request_Abstract::setParam ( string $name , string $value = ? ) : bool

Set a parameter to request, which can be retrieved by Yaf_Request_Abstract::getParam()

Parameter-Liste

name

value

Rückgabewerte

Siehe auch

  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter
  • Yaf_Request_Abstract::getParams() - Retrieve all calling parameters


The setRequestUri purpose

  • « Yaf_Request_Abstract::setParam
  • Yaf_Request_Abstract::setRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setRequestUri purpose

Yaf_Request_Abstract::setRequestUri

(Yaf >=2.1.0)

Yaf_Request_Abstract::setRequestUri — The setRequestUri purpose

Beschreibung

public Yaf_Request_Abstract::setRequestUri ( string $uir ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

uir

Rückgabewerte


The setRouted purpose

  • « Yaf_Request_Abstract::setRequestUri
  • Yaf_Request_Http »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setRouted purpose

Yaf_Request_Abstract::setRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::setRouted — The setRouted purpose

Beschreibung

public Yaf_Request_Abstract::setRouted ( string $flag = ? ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

flag

Rückgabewerte


The Yaf_Request_Http class

(Yaf >=1.0.0)

Einführung

Any request from client is initialized as a Yaf_Request_Http. you can get the request information like, uri query and post parameters via methods of this class.

Hinweis:

For security, $_GET/$_POST are readonly in Yaf, which means if you set a value to these global variables, you can not get it from Yaf_Request_Http::getQuery() or Yaf_Request_Http::getPost().

But there do is some usage need such feature, like unit testing. thus Yaf can be built with --enable-yaf-debug, which will allow Yaf read the value user set via script.

in such case, Yaf will throw a E_STRICT warning to remind you about that: Strict Standards: you are running yaf in debug mode

Klassenbeschreibung

Yaf_Request_Http extends Yaf_Request_Abstract {
/* Eigenschaften */
/* Methoden */
public __construct ( string $request_uri = ? , string $base_uri = ? )
public get ( string $name , string $default = ? ) : mixed
public getCookie ( string $name , string $default = ? ) : mixed
public getFiles ( ) : void
public getPost ( string $name , string $default = ? ) : mixed
public getQuery ( string $name , string $default = ? ) : mixed
public getRaw ( ) : mixed
public getRequest ( ) : void
public isXmlHttpRequest ( ) : bool
/* Geerbte Methoden */
public Yaf_Request_Abstract::clearParams ( ) : bool
public Yaf_Request_Abstract::getActionName ( ) : void
public Yaf_Request_Abstract::getBaseUri ( ) : void
public Yaf_Request_Abstract::getControllerName ( ) : void
public Yaf_Request_Abstract::getEnv ( string $name , string $default = ? ) : void
public Yaf_Request_Abstract::getException ( ) : void
public Yaf_Request_Abstract::getLanguage ( ) : void
public Yaf_Request_Abstract::getMethod ( ) : string
public Yaf_Request_Abstract::getModuleName ( ) : void
public Yaf_Request_Abstract::getParam ( string $name , string $default = ? ) : mixed
public Yaf_Request_Abstract::getParams ( ) : array
public Yaf_Request_Abstract::getRequestUri ( ) : void
public Yaf_Request_Abstract::getServer ( string $name , string $default = ? ) : void
public Yaf_Request_Abstract::isCli ( ) : bool
public Yaf_Request_Abstract::isDispatched ( ) : bool
public Yaf_Request_Abstract::isGet ( ) : bool
public Yaf_Request_Abstract::isHead ( ) : bool
public Yaf_Request_Abstract::isOptions ( ) : bool
public Yaf_Request_Abstract::isPost ( ) : bool
public Yaf_Request_Abstract::isPut ( ) : bool
public Yaf_Request_Abstract::isRouted ( ) : bool
public Yaf_Request_Abstract::isXmlHttpRequest ( ) : bool
public Yaf_Request_Abstract::setActionName ( string $action , bool $format_name = true ) : void
public Yaf_Request_Abstract::setBaseUri ( string $uir ) : bool
public Yaf_Request_Abstract::setControllerName ( string $controller , bool $format_name = true ) : void
public Yaf_Request_Abstract::setDispatched ( ) : void
public Yaf_Request_Abstract::setModuleName ( string $module , bool $format_name = true ) : void
public Yaf_Request_Abstract::setParam ( string $name , string $value = ? ) : bool
public Yaf_Request_Abstract::setRequestUri ( string $uir ) : void
public Yaf_Request_Abstract::setRouted ( string $flag = ? ) : void
}

Eigenschaften

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Inhaltsverzeichnis

  • Yaf_Request_Http::__construct — Constructor of Yaf_Request_Http
  • Yaf_Request_Http::get — Retrieve variable from client
  • Yaf_Request_Http::getCookie — Retrieve Cookie variable
  • Yaf_Request_Http::getFiles — The getFiles purpose
  • Yaf_Request_Http::getPost — Retrieve POST variable
  • Yaf_Request_Http::getQuery — Fetch a query parameter
  • Yaf_Request_Http::getRaw — Retrieve Raw request body
  • Yaf_Request_Http::getRequest — The getRequest purpose
  • Yaf_Request_Http::isXmlHttpRequest — Determin if request is Ajax Request


Constructor of Yaf_Request_Http

  • « Yaf_Request_Http
  • Yaf_Request_Http::get »
  • PHP Manual
  • Yaf_Request_Http
  • Constructor of Yaf_Request_Http

Yaf_Request_Http::__construct

(Yaf >=1.0.0)

Yaf_Request_Http::__construct — Constructor of Yaf_Request_Http

Beschreibung

public Yaf_Request_Http::__construct ( string $request_uri = ? , string $base_uri = ? )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrieve variable from client

  • « Yaf_Request_Http::__construct
  • Yaf_Request_Http::getCookie »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve variable from client

Yaf_Request_Http::get

(Yaf >=1.0.0)

Yaf_Request_Http::get — Retrieve variable from client

Beschreibung

public Yaf_Request_Http::get ( string $name , string $default = ? ) : mixed

Retrieve variable from client, this method will search the name in request pramas, if the name is not found, then will search in POST, GET, Cookie, Server

Parameter-Liste

name

the variable name

default

if this parameter is provide, this will be returned if the varialbe can not be found

Rückgabewerte

Siehe auch

  • Yaf_Request_Http::getQuery() - Fetch a query parameter
  • Yaf_Request_Http::getPost() - Retrieve POST variable
  • Yaf_Request_Http::getCookie() - Retrieve Cookie variable
  • Yaf_Request_Http::getRaw() - Retrieve Raw request body
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


Retrieve Cookie variable

  • « Yaf_Request_Http::get
  • Yaf_Request_Http::getFiles »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve Cookie variable

Yaf_Request_Http::getCookie

(Yaf >=1.0.0)

Yaf_Request_Http::getCookie — Retrieve Cookie variable

Beschreibung

public Yaf_Request_Http::getCookie ( string $name , string $default = ? ) : mixed

Retrieve Cookie variable

Parameter-Liste

name

the cookie name

default

if this parameter is provide, this will be returned if the cookie can not be found

Rückgabewerte

Siehe auch

  • Yaf_Request_Http::get() - Retrieve variable from client
  • Yaf_Request_Http::getQuery() - Fetch a query parameter
  • Yaf_Request_Http::getPost() - Retrieve POST variable
  • Yaf_Request_Http::getRaw() - Retrieve Raw request body
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


The getFiles purpose

  • « Yaf_Request_Http::getCookie
  • Yaf_Request_Http::getPost »
  • PHP Manual
  • Yaf_Request_Http
  • The getFiles purpose

Yaf_Request_Http::getFiles

(Yaf >=1.0.0)

Yaf_Request_Http::getFiles — The getFiles purpose

Beschreibung

public Yaf_Request_Http::getFiles ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrieve POST variable

  • « Yaf_Request_Http::getFiles
  • Yaf_Request_Http::getQuery »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve POST variable

Yaf_Request_Http::getPost

(Yaf >=1.0.0)

Yaf_Request_Http::getPost — Retrieve POST variable

Beschreibung

public Yaf_Request_Http::getPost ( string $name , string $default = ? ) : mixed

Retrieve POST variable

Parameter-Liste

name

the variable name

default

if this parameter is provide, this will be returned if the varialbe can not be found

Rückgabewerte

Siehe auch

  • Yaf_Request_Http::get() - Retrieve variable from client
  • Yaf_Request_Http::getQuery() - Fetch a query parameter
  • Yaf_Request_Http::getCookie() - Retrieve Cookie variable
  • Yaf_Request_Http::getRaw() - Retrieve Raw request body
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


Fetch a query parameter

  • « Yaf_Request_Http::getPost
  • Yaf_Request_Http::getRaw »
  • PHP Manual
  • Yaf_Request_Http
  • Fetch a query parameter

Yaf_Request_Http::getQuery

(Yaf >=1.0.0)

Yaf_Request_Http::getQuery — Fetch a query parameter

Beschreibung

public Yaf_Request_Http::getQuery ( string $name , string $default = ? ) : mixed

Retrieve GET variable

Parameter-Liste

name

the variable name

default

if this parameter is provide, this will be returned if the variable can not be found

Rückgabewerte

Siehe auch

  • Yaf_Request_Http::get() - Retrieve variable from client
  • Yaf_Request_Http::getPost() - Retrieve POST variable
  • Yaf_Request_Http::getCookie() - Retrieve Cookie variable
  • Yaf_Request_Http::getRaw() - Retrieve Raw request body
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


Retrieve Raw request body

  • « Yaf_Request_Http::getQuery
  • Yaf_Request_Http::getRequest »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve Raw request body

Yaf_Request_Http::getRaw

(Yaf >=3.0.7)

Yaf_Request_Http::getRaw — Retrieve Raw request body

Beschreibung

public Yaf_Request_Http::getRaw ( ) : mixed

Retrieve Raw request body

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return string on success, FALSE on failure.

Siehe auch

  • Yaf_Request_Http::get() - Retrieve variable from client
  • Yaf_Request_Http::getPost() - Retrieve POST variable
  • Yaf_Request_Http::getCookie() - Retrieve Cookie variable
  • Yaf_Request_Http::getQuery() - Fetch a query parameter
  • Yaf_Request_Abstract::getServer() - Retrieve SERVER variable
  • Yaf_Request_Abstract::getParam() - Retrieve calling parameter


The getRequest purpose

  • « Yaf_Request_Http::getRaw
  • Yaf_Request_Http::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Http
  • The getRequest purpose

Yaf_Request_Http::getRequest

(Yaf >=1.0.0)

Yaf_Request_Http::getRequest — The getRequest purpose

Beschreibung

public Yaf_Request_Http::getRequest ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Determin if request is Ajax Request

  • « Yaf_Request_Http::getRequest
  • Yaf_Request_Simple »
  • PHP Manual
  • Yaf_Request_Http
  • Determin if request is Ajax Request

Yaf_Request_Http::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Http::isXmlHttpRequest — Determin if request is Ajax Request

Beschreibung

public Yaf_Request_Http::isXmlHttpRequest ( ) : bool

Check the request whether it is a Ajax Request.

Hinweis:

This method depends on the request header: HTTP_X_REQUESTED_WITH, some Javascript library doesn't set this header while doing Ajax request

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

boolean


The Yaf_Request_Simple class

(Yaf >=1.0.0)

Einführung

Yaf_Request_Simple is particularlly used for test puporse. ie. simulate some espacial request under CLI mode.

Klassenbeschreibung

Yaf_Request_Simple extends Yaf_Request_Abstract {
/* Constants */
const string SCHEME_HTTP = http ;
const string SCHEME_HTTPS = https ;
/* Eigenschaften */
/* Methoden */
public __construct ( string $method = ? , string $module = ? , string $controller = ? , string $action = ? , array $params = ? )
public get ( ) : void
public getCookie ( ) : void
public getFiles ( ) : void
public getPost ( ) : void
public getQuery ( ) : void
public getRequest ( ) : void
public isXmlHttpRequest ( ) : void
/* Geerbte Methoden */
public Yaf_Request_Abstract::clearParams ( ) : bool
public Yaf_Request_Abstract::getActionName ( ) : void
public Yaf_Request_Abstract::getBaseUri ( ) : void
public Yaf_Request_Abstract::getControllerName ( ) : void
public Yaf_Request_Abstract::getEnv ( string $name , string $default = ? ) : void
public Yaf_Request_Abstract::getException ( ) : void
public Yaf_Request_Abstract::getLanguage ( ) : void
public Yaf_Request_Abstract::getMethod ( ) : string
public Yaf_Request_Abstract::getModuleName ( ) : void
public Yaf_Request_Abstract::getParam ( string $name , string $default = ? ) : mixed
public Yaf_Request_Abstract::getParams ( ) : array
public Yaf_Request_Abstract::getRequestUri ( ) : void
public Yaf_Request_Abstract::getServer ( string $name , string $default = ? ) : void
public Yaf_Request_Abstract::isCli ( ) : bool
public Yaf_Request_Abstract::isDispatched ( ) : bool
public Yaf_Request_Abstract::isGet ( ) : bool
public Yaf_Request_Abstract::isHead ( ) : bool
public Yaf_Request_Abstract::isOptions ( ) : bool
public Yaf_Request_Abstract::isPost ( ) : bool
public Yaf_Request_Abstract::isPut ( ) : bool
public Yaf_Request_Abstract::isRouted ( ) : bool
public Yaf_Request_Abstract::isXmlHttpRequest ( ) : bool
public Yaf_Request_Abstract::setActionName ( string $action , bool $format_name = true ) : void
public Yaf_Request_Abstract::setBaseUri ( string $uir ) : bool
public Yaf_Request_Abstract::setControllerName ( string $controller , bool $format_name = true ) : void
public Yaf_Request_Abstract::setDispatched ( ) : void
public Yaf_Request_Abstract::setModuleName ( string $module , bool $format_name = true ) : void
public Yaf_Request_Abstract::setParam ( string $name , string $value = ? ) : bool
public Yaf_Request_Abstract::setRequestUri ( string $uir ) : void
public Yaf_Request_Abstract::setRouted ( string $flag = ? ) : void
}

Eigenschaften

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Vordefinierte Konstanten

Yaf_Request_Simple::SCHEME_HTTP

Yaf_Request_Simple::SCHEME_HTTPS

Inhaltsverzeichnis

  • Yaf_Request_Simple::__construct — Constructor of Yaf_Request_Simple
  • Yaf_Request_Simple::get — The get purpose
  • Yaf_Request_Simple::getCookie — The getCookie purpose
  • Yaf_Request_Simple::getFiles — The getFiles purpose
  • Yaf_Request_Simple::getPost — The getPost purpose
  • Yaf_Request_Simple::getQuery — The getQuery purpose
  • Yaf_Request_Simple::getRequest — The getRequest purpose
  • Yaf_Request_Simple::isXmlHttpRequest — Determin if request is AJAX request


Constructor of Yaf_Request_Simple

  • « Yaf_Request_Simple
  • Yaf_Request_Simple::get »
  • PHP Manual
  • Yaf_Request_Simple
  • Constructor of Yaf_Request_Simple

Yaf_Request_Simple::__construct

(Yaf >=1.0.0)

Yaf_Request_Simple::__construct — Constructor of Yaf_Request_Simple

Beschreibung

public Yaf_Request_Simple::__construct ( string $method = ? , string $module = ? , string $controller = ? , string $action = ? , array $params = ? )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The get purpose

  • « Yaf_Request_Simple::__construct
  • Yaf_Request_Simple::getCookie »
  • PHP Manual
  • Yaf_Request_Simple
  • The get purpose

Yaf_Request_Simple::get

(Yaf >=1.0.0)

Yaf_Request_Simple::get — The get purpose

Beschreibung

public Yaf_Request_Simple::get ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getCookie purpose

  • « Yaf_Request_Simple::get
  • Yaf_Request_Simple::getFiles »
  • PHP Manual
  • Yaf_Request_Simple
  • The getCookie purpose

Yaf_Request_Simple::getCookie

(Yaf >=1.0.0)

Yaf_Request_Simple::getCookie — The getCookie purpose

Beschreibung

public Yaf_Request_Simple::getCookie ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getFiles purpose

  • « Yaf_Request_Simple::getCookie
  • Yaf_Request_Simple::getPost »
  • PHP Manual
  • Yaf_Request_Simple
  • The getFiles purpose

Yaf_Request_Simple::getFiles

(Yaf >=1.0.0)

Yaf_Request_Simple::getFiles — The getFiles purpose

Beschreibung

public Yaf_Request_Simple::getFiles ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getPost purpose

  • « Yaf_Request_Simple::getFiles
  • Yaf_Request_Simple::getQuery »
  • PHP Manual
  • Yaf_Request_Simple
  • The getPost purpose

Yaf_Request_Simple::getPost

(Yaf >=1.0.0)

Yaf_Request_Simple::getPost — The getPost purpose

Beschreibung

public Yaf_Request_Simple::getPost ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getQuery purpose

  • « Yaf_Request_Simple::getPost
  • Yaf_Request_Simple::getRequest »
  • PHP Manual
  • Yaf_Request_Simple
  • The getQuery purpose

Yaf_Request_Simple::getQuery

(Yaf >=1.0.0)

Yaf_Request_Simple::getQuery — The getQuery purpose

Beschreibung

public Yaf_Request_Simple::getQuery ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getRequest purpose

  • « Yaf_Request_Simple::getQuery
  • Yaf_Request_Simple::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Simple
  • The getRequest purpose

Yaf_Request_Simple::getRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::getRequest — The getRequest purpose

Beschreibung

public Yaf_Request_Simple::getRequest ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Determin if request is AJAX request

  • « Yaf_Request_Simple::getRequest
  • Yaf_Response_Abstract »
  • PHP Manual
  • Yaf_Request_Simple
  • Determin if request is AJAX request

Yaf_Request_Simple::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::isXmlHttpRequest — Determin if request is AJAX request

Beschreibung

public Yaf_Request_Simple::isXmlHttpRequest ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Always returns false for Yaf_Request_Simple

Siehe auch

  • Yaf_Request_Abstract::isXmlHTTPRequest() - Determine if request is AJAX request
  • Yaf_Request_Http::isXmlHTTPRequest() - Determin if request is Ajax Request


The Yaf_Response_Abstract class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Response_Abstract {
/* Constants */
const string DEFAULT_BODY = "content" ;
/* Eigenschaften */
protected $_header ;
protected $_body ;
protected $_sendheader ;
/* Methoden */
public appendBody ( string $content , string $key = ? ) : bool
public clearBody ( string $key = ? ) : bool
public clearHeaders ( ) : void
public __construct ( )
public __destruct ( ) : void
public getBody ( string $key = ? ) : mixed
public getHeader ( ) : void
public prependBody ( string $content , string $key = ? ) : bool
public response ( ) : void
protected setAllHeaders ( ) : void
public setBody ( string $content , string $key = ? ) : bool
public setHeader ( string $name , string $value , bool $replace = ? ) : bool
public setRedirect ( string $url ) : bool
private __toString ( ) : string
}

Eigenschaften

_header

_body

_sendheader

Inhaltsverzeichnis

  • Yaf_Response_Abstract::appendBody — Append to response body
  • Yaf_Response_Abstract::clearBody — Discard all exists response body
  • Yaf_Response_Abstract::clearHeaders — Discard all set headers
  • Yaf_Response_Abstract::__construct — The __construct purpose
  • Yaf_Response_Abstract::__destruct — The __destruct purpose
  • Yaf_Response_Abstract::getBody — Retrieve a exists content
  • Yaf_Response_Abstract::getHeader — The getHeader purpose
  • Yaf_Response_Abstract::prependBody — The prependBody purpose
  • Yaf_Response_Abstract::response — Send response
  • Yaf_Response_Abstract::setAllHeaders — The setAllHeaders purpose
  • Yaf_Response_Abstract::setBody — Set content to response
  • Yaf_Response_Abstract::setHeader — Set reponse header
  • Yaf_Response_Abstract::setRedirect — The setRedirect purpose
  • Yaf_Response_Abstract::__toString — Retrieve all bodys as string


Append to response body

  • « Yaf_Response_Abstract
  • Yaf_Response_Abstract::clearBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • Append to response body

Yaf_Response_Abstract::appendBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::appendBody — Append to response body

Beschreibung

public Yaf_Response_Abstract::appendBody ( string $content , string $key = ? ) : bool

Append a content to a exists content block

Parameter-Liste

body

content string

key

the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used

Hinweis:

this parameter is introduced as of 2.2.0

Rückgabewerte

bool

Beispiele

Beispiel #1 Yaf_Response_Abstract::appendBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->prependBody(" World");

echo $response;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hello World

Siehe auch

  • Yaf_Config_Ini

Siehe auch

  • Yaf_Response_Abstract::getBody() - Retrieve a exists content
  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


Discard all exists response body

  • « Yaf_Response_Abstract::appendBody
  • Yaf_Response_Abstract::clearHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • Discard all exists response body

Yaf_Response_Abstract::clearBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearBody — Discard all exists response body

Beschreibung

public Yaf_Response_Abstract::clearBody ( string $key = ? ) : bool

Clear existsed content

Parameter-Liste

key

the content key, if you don't specific, then all contents will be cleared.

Hinweis:

this parameter is introduced as of 2.2.0

Rückgabewerte

Siehe auch

  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::appendBody() - Append to response body
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::getBody() - Retrieve a exists content


Discard all set headers

  • « Yaf_Response_Abstract::clearBody
  • Yaf_Response_Abstract::__construct »
  • PHP Manual
  • Yaf_Response_Abstract
  • Discard all set headers

Yaf_Response_Abstract::clearHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearHeaders — Discard all set headers

Beschreibung

public Yaf_Response_Abstract::clearHeaders ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • Yaf_Response_Abstract::getHeader() - The getHeader purpose
  • Yaf_Response_Abstract::setHeader() - Set reponse header


The __construct purpose

  • « Yaf_Response_Abstract::clearHeaders
  • Yaf_Response_Abstract::__destruct »
  • PHP Manual
  • Yaf_Response_Abstract
  • The __construct purpose

Yaf_Response_Abstract::__construct

(Yaf >=1.0.0)

Yaf_Response_Abstract::__construct — The __construct purpose

Beschreibung

public Yaf_Response_Abstract::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The __destruct purpose

  • « Yaf_Response_Abstract::__construct
  • Yaf_Response_Abstract::getBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • The __destruct purpose

Yaf_Response_Abstract::__destruct

(Yaf >=1.0.0)

Yaf_Response_Abstract::__destruct — The __destruct purpose

Beschreibung

public Yaf_Response_Abstract::__destruct ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrieve a exists content

  • « Yaf_Response_Abstract::__destruct
  • Yaf_Response_Abstract::getHeader »
  • PHP Manual
  • Yaf_Response_Abstract
  • Retrieve a exists content

Yaf_Response_Abstract::getBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::getBody — Retrieve a exists content

Beschreibung

public Yaf_Response_Abstract::getBody ( string $key = ? ) : mixed

Retrieve a exists content

Parameter-Liste

key

the content key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used. if you pass in a null, then all contents will be returned as a array

Hinweis:

this parameter is introduced as of 2.2.0

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Response_Abstract::getBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

var_dump($response->getBody()); //default
var_dump($response->getBody(Yaf_Response_Abstract::DEFAULT_BODY)); //same as above
var_dump($response->getBody("footer"));
var_dump($response->getBody(NULL)); //get all
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(5) "Hello"
string(5) "Hello"
string(6) " World"
array(2) {
  ["content"]=>
  string(5) "Hello"
  ["footer"]=>
  string(6) " World"
}

Siehe auch

  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::appendBody() - Append to response body
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


The getHeader purpose

  • « Yaf_Response_Abstract::getBody
  • Yaf_Response_Abstract::prependBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • The getHeader purpose

Yaf_Response_Abstract::getHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::getHeader — The getHeader purpose

Beschreibung

public Yaf_Response_Abstract::getHeader ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • Yaf_Response_Abstract::setHeader() - Set reponse header
  • Yaf_Response_Abstract::cleanHeaders()


The prependBody purpose

  • « Yaf_Response_Abstract::getHeader
  • Yaf_Response_Abstract::response »
  • PHP Manual
  • Yaf_Response_Abstract
  • The prependBody purpose

Yaf_Response_Abstract::prependBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::prependBody — The prependBody purpose

Beschreibung

public Yaf_Response_Abstract::prependBody ( string $content , string $key = ? ) : bool

prepend a content to a exists content block

Parameter-Liste

body

content string

key

the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used

Hinweis:

this parameter is introduced as of 2.2.0

Rückgabewerte

bool

Beispiele

Beispiel #1 Yaf_Response_Abstract::prependBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("World")->prependBody("Hello ");

echo $response;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hello World

Siehe auch

  • Yaf_Response_Abstract::getBody() - Retrieve a exists content
  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::appendBody() - Append to response body
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


Send response

  • « Yaf_Response_Abstract::prependBody
  • Yaf_Response_Abstract::setAllHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • Send response

Yaf_Response_Abstract::response

(Yaf >=1.0.0)

Yaf_Response_Abstract::response — Send response

Beschreibung

public Yaf_Response_Abstract::response ( ) : void

send response

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Response_Abstract::response()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

$response->response();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hello World

Siehe auch

  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


The setAllHeaders purpose

  • « Yaf_Response_Abstract::response
  • Yaf_Response_Abstract::setBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • The setAllHeaders purpose

Yaf_Response_Abstract::setAllHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::setAllHeaders — The setAllHeaders purpose

Beschreibung

protected Yaf_Response_Abstract::setAllHeaders ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Set content to response

  • « Yaf_Response_Abstract::setAllHeaders
  • Yaf_Response_Abstract::setHeader »
  • PHP Manual
  • Yaf_Response_Abstract
  • Set content to response

Yaf_Response_Abstract::setBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::setBody — Set content to response

Beschreibung

public Yaf_Response_Abstract::setBody ( string $content , string $key = ? ) : bool

Set content to response

Parameter-Liste

body

content string

key

the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used

Hinweis:

this parameter is introduced as of 2.2.0

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Response_Abstract::setBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

print_r($response);
echo $response;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Yaf_Response_Http Object
(
    [_header:protected] => Array
        (
        )

    [_body:protected] => Array
        (
            [content] => Hello
            [footer] =>  World
        )

    [_sendheader:protected] => 1
    [_response_code:protected] => 200
)
Hello World

Siehe auch

  • Yaf_Response_Abstract::getBody() - Retrieve a exists content
  • Yaf_Response_Abstract::appendBody() - Append to response body
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::clearBody() - Discard all exists response body


Set reponse header

  • « Yaf_Response_Abstract::setBody
  • Yaf_Response_Abstract::setRedirect »
  • PHP Manual
  • Yaf_Response_Abstract
  • Set reponse header

Yaf_Response_Abstract::setHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::setHeader — Set reponse header

Beschreibung

public Yaf_Response_Abstract::setHeader ( string $name , string $value , bool $replace = ? ) : bool

Used to send a HTTP header

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • Yaf_Response_Abstract::getHeader() - The getHeader purpose
  • Yaf_Response_Abstract::cleanHeaders()


The setRedirect purpose

  • « Yaf_Response_Abstract::setHeader
  • Yaf_Response_Abstract::__toString »
  • PHP Manual
  • Yaf_Response_Abstract
  • The setRedirect purpose

Yaf_Response_Abstract::setRedirect

(Yaf >=1.0.0)

Yaf_Response_Abstract::setRedirect — The setRedirect purpose

Beschreibung

public Yaf_Response_Abstract::setRedirect ( string $url ) : bool

Parameter-Liste

url

address redircted to

Rückgabewerte


Retrieve all bodys as string

  • « Yaf_Response_Abstract::setRedirect
  • Yaf_Route_Interface »
  • PHP Manual
  • Yaf_Response_Abstract
  • Retrieve all bodys as string

Yaf_Response_Abstract::__toString

(Yaf >=1.0.0)

Yaf_Response_Abstract::__toString — Retrieve all bodys as string

Beschreibung

private Yaf_Response_Abstract::__toString ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Yaf_Route_Interface class

(Yaf >=1.0.0)

Einführung

Yaf_Route_Interface used for developer defined their custom route.

Klassenbeschreibung

Yaf_Route_Interface {
/* Methoden */
abstract public assemble ( array $info , array $query = ? ) : string
abstract public route ( Yaf_Request_Abstract $request ) : bool
}

Inhaltsverzeichnis

  • Yaf_Route_Interface::assemble — Assemble a request
  • Yaf_Route_Interface::route — Route a request


Assemble a request

  • « Yaf_Route_Interface
  • Yaf_Route_Interface::route »
  • PHP Manual
  • Yaf_Route_Interface
  • Assemble a request

Yaf_Route_Interface::assemble

(Yaf >=2.3.0)

Yaf_Route_Interface::assemble — Assemble a request

Beschreibung

abstract public Yaf_Route_Interface::assemble ( array $info , array $query = ? ) : string

this method returns a url according to the argument info, and append query strings to the url according to the argument query.

a route should implement this method according to its own route rules, and do a reverse progress.

Parameter-Liste

info

query

Rückgabewerte


Route a request

  • « Yaf_Route_Interface::assemble
  • Yaf_Route_Map »
  • PHP Manual
  • Yaf_Route_Interface
  • Route a request

Yaf_Route_Interface::route

(Yaf >=1.0.0)

Yaf_Route_Interface::route — Route a request

Beschreibung

abstract public Yaf_Route_Interface::route ( Yaf_Request_Abstract $request ) : bool

Yaf_Route_Interface::route() is the only method that a custom route should implement.

Hinweis:

since of 2.3.0, there is another method should also be implemented, see Yaf_Route_Interface::assemble().

if this method return true, then the route process will be end. otherwise, Yaf_Router will call next route in the route stack to route request.

This method would set the route result to the parameter request, by
calling Yaf_Request_Abstract::setControllerName(),
Yaf_Request_Abstract::setActionName() and
Yaf_Request_Abstract::setModuleName().

This method should also call Yaf_Request_Abstract::setRouted() to make the request routed at last.

Parameter-Liste

request

A Yaf_Request_Abstract instance.

Rückgabewerte


The Yaf_Route_Map class

(Yaf >=1.0.0)

Einführung

Yaf_Route_Map is a built-in route, it simply convert a URI endpoint (that part of the URI which comes after the base URI: see Yaf_Request_Abstract::setBaseUri()) to a controller name or action name(depends on the parameter passed to Yaf_Route_Map::__construct()) in following rule: A => controller A. A/B/C => controller A_B_C. A/B/C/D/E => controller A_B_C_D_E.

If the second parameter of Yaf_Route_Map::__construct() is specified, then only the part before delimiter of URI will used to routing, the part after it is used to routing request parameters (see the example section of Yaf_Route_Map::__construct()).

Klassenbeschreibung

Yaf_Route_Map implements Yaf_Route_Interface {
/* Eigenschaften */
protected $_ctl_router ;
protected $_delimiter ;
/* Methoden */
public assemble ( array $info , array $query = ? ) : string
public __construct ( string $controller_prefer = false , string $delimiter = "" )
public route ( Yaf_Request_Abstract $request ) : bool
}

Eigenschaften

_ctl_router

_delimiter

Inhaltsverzeichnis

  • Yaf_Route_Map::assemble — Assemble a url
  • Yaf_Route_Map::__construct — The __construct purpose
  • Yaf_Route_Map::route — The route purpose


Assemble a url

  • « Yaf_Route_Map
  • Yaf_Route_Map::__construct »
  • PHP Manual
  • Yaf_Route_Map
  • Assemble a url

Yaf_Route_Map::assemble

(Yaf >=2.3.0)

Yaf_Route_Map::assemble — Assemble a url

Beschreibung

public Yaf_Route_Map::assemble ( array $info , array $query = ? ) : string

Assemble a url.

Parameter-Liste

info

query

Beispiele

Beispiel #1 Yaf_Route_Map::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Map();

$router->addRoute("map", $route);

var_dump($router->getRoute('map')->assemble(
                        array(
                                ':c' => 'foo_bar'
                        ),
                        array(
                                'tkey1' => 'tval1',
                                'tkey2' => 'tval2'
                        )
                   )
);

$route = new Yaf_Route_Map(true, '_');
$router->addRoute("map", $route);

var_dump($router->getRoute('map')->assemble(
                        array(
                                ':a' => 'foo_bar'
                        ),
                        array(
                                'tkey1' => 'tval1',
                                'tkey2' => 'tval2'
                        )
                   )
);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(%d) "/foo/bar?tkey1=tval1&tkey2=tval2"
string(%d) "/foo/bar/_/tkey1/tval1/tkey2/tval2"

Rückgabewerte


The __construct purpose

  • « Yaf_Route_Map::assemble
  • Yaf_Route_Map::route »
  • PHP Manual
  • Yaf_Route_Map
  • The __construct purpose

Yaf_Route_Map::__construct

(Yaf >=1.0.0)

Yaf_Route_Map::__construct — The __construct purpose

Beschreibung

public Yaf_Route_Map::__construct ( string $controller_prefer = false , string $delimiter = "" )

Parameter-Liste

controller_prefer

Whether the result should considering as controller or action

delimiter

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Route_Map()example

<?php
   /**
    * Add a map route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Map());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/* for http://yourdomain.com/product/foo/bar
 * route will result in following values:
 */
array(
  "controller" => "product_foo_bar",
)

Beispiel #2 Yaf_Route_Map()example

<?php
   /**
    * Add a map route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Map(true, "_"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/* for http://yourdomain.com/user/list/_/foo/22
 * route will result in following values:
 */
array(
    "action" => "user_list",
)

/**
 * and request parameters:
 */
array(
  "foo"   => 22,
)

Beispiel #3 Yaf_Route_Map()example

<?php
   /**
    * Add a map route to Yaf_Router route stack by calling addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "map",         //Yaf_Route_Map route
           "controllerPrefer" => FALSE,
           "delimiter"        => "#!",
           ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Siehe auch

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite


The route purpose

  • « Yaf_Route_Map::__construct
  • Yaf_Route_Regex »
  • PHP Manual
  • Yaf_Route_Map
  • The route purpose

Yaf_Route_Map::route

(Yaf >=1.0.0)

Yaf_Route_Map::route — The route purpose

Beschreibung

public Yaf_Route_Map::route ( Yaf_Request_Abstract $request ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

request

Rückgabewerte


The Yaf_Route_Regex class

(Yaf >=1.0.0)

Einführung

Yaf_Route_Regex is the most flexible route among the Yaf built-in routes.

Klassenbeschreibung

Yaf_Route_Regex extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Eigenschaften */
protected $_route ;
protected $_default ;
protected $_maps ;
protected $_verify ;
/* Methoden */
public assemble ( array $info , array $query = ? ) : string
public __construct ( string $match , array $route , array $map = ? , array $verify = ? , string $reverse = ? )
public route ( Yaf_Request_Abstract $request ) : bool
/* Geerbte Methoden */
abstract public Yaf_Route_Interface::assemble ( array $info , array $query = ? ) : string
abstract public Yaf_Route_Interface::route ( Yaf_Request_Abstract $request ) : bool
}

Eigenschaften

_route

_default

_maps

_verify

Inhaltsverzeichnis

  • Yaf_Route_Regex::assemble — Assemble a url
  • Yaf_Route_Regex::__construct — Yaf_Route_Regex constructor
  • Yaf_Route_Regex::route — The route purpose


Assemble a url

  • « Yaf_Route_Regex
  • Yaf_Route_Regex::__construct »
  • PHP Manual
  • Yaf_Route_Regex
  • Assemble a url

Yaf_Route_Regex::assemble

(Yaf >=2.3.0)

Yaf_Route_Regex::assemble — Assemble a url

Beschreibung

public Yaf_Route_Regex::assemble ( array $info , array $query = ? ) : string

Assemble a url.

Parameter-Liste

info

query

Beispiele

Beispiel #1 Yaf_Route_Regex::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Regex(
            "#^/product/([^/]+)/([^/])+#",
            array(
                'controller' => "product",  //route to product controller,
                ),
            array(),
            array(),
            '/:m/:c/:a'
        );

$router->addRoute("regex", $route);

var_dump($router->getRoute('regex')->assemble(
            array(
                ':m' => 'module',
                ':c' => 'controller',
                ':a' => 'action'
                ),
            array(
                'tkey1' => 'tval1',
                'tkey2' =>
                'tval2'
                )
            )
        );

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(49) "/module/controller/action?tkey1=tval1&tkey2=tval2"

Rückgabewerte


Yaf_Route_Regex constructor

  • « Yaf_Route_Regex::assemble
  • Yaf_Route_Regex::route »
  • PHP Manual
  • Yaf_Route_Regex
  • Yaf_Route_Regex constructor

Yaf_Route_Regex::__construct

(Yaf >=1.0.0)

Yaf_Route_Regex::__construct — Yaf_Route_Regex constructor

Beschreibung

public Yaf_Route_Regex::__construct ( string $match , array $route , array $map = ? , array $verify = ? , string $reverse = ? )

Parameter-Liste

match

A complete Regex pattern, will be used to match a request uri, if doesn't matched, Yaf_Route_Regex will return false.

route

When the match pattern matches the request uri, Yaf_Route_Regex will use this to decide which m/c/a to routed.

either of m/c/a in this array is optianl, if you don't assgian a specific value, it will be routed to default.

map

A array to assign name to the captrues in the match result.

verify

reverse

a string, used to assemble url, see Yaf_Route_Regex::assemble().

Hinweis:

this parameter is introduced in 2.3.0

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Route_Regex()example

<?php
   /**
    * Add a regex route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/([^/]+)/([^/])+#", //match request uri leading "/product"
           array(
               'controller' => "product",  //route to product controller,
           ),
           array(
              1 => "name",   // now you can call $request->getParam("name")
              2 => "id",     // to get the first captrue in the match pattern.
           )
        )
    );
?>

Beispiel #2 Yaf_Route_Regex(as of 2.3.0)()example

<?php
   /**
    * Use match result as MVC name
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/([^/]+)/([^/])+#i", //match request uri leading "/product"
           array(
              'controller' => ":name", // route to :name, which is $1 in the match result as controller name
           ),
           array(
              1 => "name",   // now you can call $request->getParam("name")
              2 => "id",     // to get the first captrue in the match pattern.
           )
        )
    );
?>

Beispiel #3 Yaf_Route_Regex and named capture ground(as of 2.3.0)()example

<?php
   /**
    * Use match result as MVC name
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/(?<name>[^/]+)/([^/])+#i", //match request uri leading "/product"
           array(
           'controller' => ":name", // route to :name,
                                    // which is named capture group 'name' in the match result as controller name
           ),
           array(
              2 => "id",     // to get the first captrue in the match pattern.
           )
        )
    );
?>

Beispiel #4 Yaf_Route_Regex()example

<?php
   /**
    * Add a regex route to Yaf_Router route stack by calling addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "regex",          //Yaf_Route_Regex route
           "match" => "#(.*)#",         //match arbitrary request uri
           "route" => array(
               'controller' => "product",  //route to product controller,
               'action'     => "dummy",    //route to dummy action
           ),
           "map" => array(
              1 => "uri",   // now you can call $request->getParam("uri")
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Siehe auch

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


The route purpose

  • « Yaf_Route_Regex::__construct
  • Yaf_Route_Rewrite »
  • PHP Manual
  • Yaf_Route_Regex
  • The route purpose

Yaf_Route_Regex::route

(Yaf >=1.0.0)

Yaf_Route_Regex::route — The route purpose

Beschreibung

public Yaf_Route_Regex::route ( Yaf_Request_Abstract $request ) : bool

Route a incoming request.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

request

Rückgabewerte

If the pattern given by the first parameter of Yaf_Route_Regex::_construct() matche the request uri, return true, otherwise return false.


The Yaf_Route_Rewrite class

(Yaf >=1.0.0)

Einführung

For usage, please see the example section of Yaf_Route_Rewrite::__construct()

Klassenbeschreibung

Yaf_Route_Rewrite extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Eigenschaften */
protected $_route ;
protected $_default ;
protected $_verify ;
/* Methoden */
public assemble ( array $info , array $query = ? ) : string
public __construct ( string $match , array $route , array $verify = ? )
public route ( Yaf_Request_Abstract $request ) : bool
/* Geerbte Methoden */
abstract public Yaf_Route_Interface::assemble ( array $info , array $query = ? ) : string
abstract public Yaf_Route_Interface::route ( Yaf_Request_Abstract $request ) : bool
}

Eigenschaften

_route

_default

_verify

Inhaltsverzeichnis

  • Yaf_Route_Rewrite::assemble — Assemble a url
  • Yaf_Route_Rewrite::__construct — Yaf_Route_Rewrite constructor
  • Yaf_Route_Rewrite::route — The route purpose


Assemble a url

  • « Yaf_Route_Rewrite
  • Yaf_Route_Rewrite::__construct »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Assemble a url

Yaf_Route_Rewrite::assemble

(Yaf >=2.3.0)

Yaf_Route_Rewrite::assemble — Assemble a url

Beschreibung

public Yaf_Route_Rewrite::assemble ( array $info , array $query = ? ) : string

Assemble a url.

Parameter-Liste

info

query

Beispiele

Beispiel #1 Yaf_Route_Rewrite::assemble()example

router = new Yaf_Router();

$route  = new Yaf_Route_Rewrite(
                "/product/:name/:id/*",
                array(
                        'controller' => "product",
                ),
                array()
);

$router->addRoute("rewrite", $route);

var_dump($router->getRoute('rewrite')->assemble(
                        array(
                                ':name' => 'foo',
                                ':id' => 'bar',
                                ':tmpkey1' => 'tmpval1'
                        ),
                        array(
                                'tkey1' => 'tval1',
                                'tkey2' => 'tval2'
                             )
                        )
);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(57) "/product/foo/bar/tmpkey1/tmpval1/?tkey1=tval1&tkey2=tval2"

Rückgabewerte


Yaf_Route_Rewrite constructor

  • « Yaf_Route_Rewrite::assemble
  • Yaf_Route_Rewrite::route »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Yaf_Route_Rewrite constructor

Yaf_Route_Rewrite::__construct

(Yaf >=1.0.0)

Yaf_Route_Rewrite::__construct — Yaf_Route_Rewrite constructor

Beschreibung

public Yaf_Route_Rewrite::__construct ( string $match , array $route , array $verify = ? )

Parameter-Liste

match

A pattern, will be used to match a request uri, if it doesn't match, Yaf_Route_Rewrite will return false.

You can use :name style to name segments matched, and use * to match the rest of the URL segments.

route

When the match pattern matches the request uri, Yaf_Route_Rewrite will use this to decide which module/controller/action is the destination.

Either of module/controller/action in this array is optional, if you don't assign a specific value, it will be routed to default.

verify

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Route_Rewrite()example

<?php
   /**
    * Add a rewrite route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_rewrite(
           "/product/:name/:id/*", //match request uri leading "/product"
           array(
               'controller' => "product",  //route to product controller,
           ),
        )
    );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/* for http://yourdomain.com/product/foo/22/foo/bar
 * route will result in following values:
 */
array(
  "controller" => "product",
  "module"     => "index", //(default)
  "action"     => "index", //(default)
)

/**
 * and request parameters:
 */
array(
  "name" => "foo",
  "id"   => 22,
  "foo"  => bar
)

Beispiel #2 Yaf_Route_Rewrite()example

<?php
   /**
    * Add a rewrite route to Yaf_Router route stack by calling addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "rewrite",        //Yaf_Route_Rewrite route
           "match" => "/user-list/:id", //match only /user/list/?/
           "route" => array(
               'controller' => "user",  //route to user controller,
               'action'     => "list",  //route to list action
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/* for http://yourdomain.com/user-list/22
 * route will result in following values:
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(default)
)

/**
 * and request parameters:
 */
array(
  "id"   => 22,
)

Beispiel #3 Yaf_Route_Rewrite(as of 2.3.0)()example

<?php
   /**
    * Add a rewrite route use match result as m/c/a name
    */
    $config = array(
        "name" => array(
           "type"  => "rewrite",
           "match" => "/user-list/:a/:id", //match only /user-list/*
           "route" => array(
               'controller' => "user",   //route to user controller,
               'action'     => ":a",     //route to :a action
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/* for http://yourdomain.com/user-list/list/22
 * route will result in following values:
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(default)
)

/**
 * and request parameters:
 */
array(
  "id"   => 22,
)

Siehe auch

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Map


The route purpose

  • « Yaf_Route_Rewrite::__construct
  • Yaf_Router »
  • PHP Manual
  • Yaf_Route_Rewrite
  • The route purpose

Yaf_Route_Rewrite::route

(Yaf >=1.0.0)

Yaf_Route_Rewrite::route — The route purpose

Beschreibung

public Yaf_Route_Rewrite::route ( Yaf_Request_Abstract $request ) : bool

Parameter-Liste

request

Rückgabewerte


The Yaf_Router class

(Yaf >=1.0.0)

Einführung

Yaf_Router is the standard framework router. Routing is the process of taking a URI endpoint (that part of the URI which comes after the base URI: see Yaf_Request_Abstract::setBaseUri()) and decomposing it into parameters to determine which module, controller, and action of that controller should receive the request. This values of the module, controller, action and other parameters are packaged into a Yaf_Request_Abstract object which is then processed by Yaf_Dispatcher. Routing occurs only once: when the request is initially received and before the first controller is dispatched. Yaf_Router is designed to allow for mod_rewrite-like functionality using pure PHP structures. It is very loosely based on Ruby on Rails routing and does not require any prior knowledge of webserver URL rewriting. It is designed to work with a single Apache mod_rewrite rule (one of):

Beispiel #1 Rewrite rule for Apache

RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php
or (preferred):

Beispiel #2 Rewrite rule for Apache

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
If using Lighttpd, the following rewrite rule is valid:

Beispiel #3 Rewrite rule for Lighttpd

url.rewrite-once = (
  ".*\?(.*)$" => "/index.php?$1",
  ".*\.(js|ico|gif|jpg|png|css|html)$" => "$0",
  "" => "/index.php"
)
If using Nginx, use the following rewrite rule:

Beispiel #4 Rewrite rule for Nginx

server {
  listen ****;
  server_name  yourdomain.com;
  root   document_root;
  index  index.php index.html;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php/$1 last;
  }
}

Default route

Yaf_Router comes preconfigured with a default route Yaf_Route_Static, which will match URIs in the shape of controller/action. Additionally, a module name may be specified as the first path element, allowing URIs of the form module/controller/action. Finally, it will also match any additional parameters appended to the URI by default - controller/action/var1/value1/var2/value2.

Hinweis:

Module name must be defined in config, considering application.module="Index,Foo,Bar", in this case, only index, foo and bar can be considered as a module name. if doesn't config, there is only one module named "Index".

Some examples of how such routes are matched:

Beispiel #5 Yaf_Route_Static(default route)example

// Assuming the following configure:
$conf = array(
   "application" => array(
      "modules" => "Index,Blog",
   ),
);

Controller only:
http://example/news
    controller == news
Action only(when defined yaf.action_prefer=1 in php.ini)
    action  == news

Invalid module maps to controller name:
http://example/foo
    controller == foo

Module + controller:
http://example/blog/archive
    module     == blog
    controller == archive

Module + controller + action:
http://example/blog/archive/list
    module     == blog
    controller == archive
    action     == list

Module + controller + action + params:
http://example/blog/archive/list/sort/alpha/date/desc
    module     == blog
    controller == archive
    action     == list
    sort       == alpha
    date       == desc

Klassenbeschreibung

Yaf_Router {
/* Eigenschaften */
protected $_routes ;
protected $_current ;
/* Methoden */
public addConfig ( Yaf_Config_Abstract $config ) : bool
public addRoute ( string $name , Yaf_Route_Abstract $route ) : bool
public __construct ( )
public getCurrentRoute ( ) : string
public getRoute ( string $name ) : Yaf_Route_Interface
public getRoutes ( ) : mixed
public route ( Yaf_Request_Abstract $request ) : bool
}

Eigenschaften

_routes

registered routes stack

_current

after routing phase, this indicated the name of which route is used to route current request. you can get this name by Yaf_Router::getCurrentRoute().

Inhaltsverzeichnis

  • Yaf_Router::addConfig — Add config-defined routes into Router
  • Yaf_Router::addRoute — Add new Route into Router
  • Yaf_Router::__construct — Yaf_Router constructor
  • Yaf_Router::getCurrentRoute — Get the effective route name
  • Yaf_Router::getRoute — Retrieve a route by name
  • Yaf_Router::getRoutes — Retrieve registered routes
  • Yaf_Router::route — The route purpose


Add config-defined routes into Router

  • « Yaf_Router
  • Yaf_Router::addRoute »
  • PHP Manual
  • Yaf_Router
  • Add config-defined routes into Router

Yaf_Router::addConfig

(Yaf >=1.0.0)

Yaf_Router::addConfig — Add config-defined routes into Router

Beschreibung

public Yaf_Router::addConfig ( Yaf_Config_Abstract $config ) : bool

Add routes defined by configs into Yaf_Router's route stack

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An Yaf_Config_Abstract instance, which should contains one or more valid route configs

Beispiele

Beispiel #1 application.ini()example

;the order is very important, the prior one will be called first

;a rewrite route match request /product/*/*
routes.route_name.type="rewrite"
routes.route_name.match="/product/:name/:value"
routes.route_name.route.controller=product
routes.route_name.route.action=info

;a regex route match request /list/*/*
routes.route_name1.type="regex"
routes.route_name1.match="#^list/([^/]*)/([^/]*)#"
routes.route_name1.route.controller=Index
routes.route_name1.route.action=action
routes.route_name1.map.1=name
routes.route_name1.map.2=value

;a simple route match /**?c=controller&a=action&m=module
routes.route_name2.type="simple"
routes.route_name2.controller=c
routes.route_name2.module=m
routes.route_name2.action=a

;a simple router match /**?r=PATH_INFO
routes.route_name3.type="supervar"
routes.route_name3.varname=r

;a map route match any request to controller
routes.route_name4.type="map"
routes.route_name4.controllerPrefer=TRUE
routes.route_namer.delimiter="#!"

Beispiel #2 Yaf_Dispatcher::autoConfig()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initRoute(Yaf_Dispatcher $dispatcher) {
        $router = $dispatcher->getRouter();
        /**
         * we can add some pre-defined routes in application.ini
         */
        $router->addConfig(Yaf_Registry::get("config")->routes);
    }
?>

Siehe auch

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Add new Route into Router

  • « Yaf_Router::addConfig
  • Yaf_Router::__construct »
  • PHP Manual
  • Yaf_Router
  • Add new Route into Router

Yaf_Router::addRoute

(Yaf >=1.0.0)

Yaf_Router::addRoute — Add new Route into Router

Beschreibung

public Yaf_Router::addRoute ( string $name , Yaf_Route_Abstract $route ) : bool

defaultly, Yaf_Router using a Yaf_Route_Static as its defualt route. you can add new routes into router's route stack by calling this method.

the newer route will be called before the older(route stack), and if the newer router return true, the router process will be end. otherwise, the older one will be called.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Dispatcher::autoRender()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initRoute(Yaf_Dispatcher $dispatcher) {
        $router = $dispatcher->getRouter();
        /**
         * we can add some pre-defined routes in application.ini
         */
        $router->addConfig(Yaf_Registry::get("config")->routes);
        /**
         * add a Rewrite route, then for a request uri:
         * http://***/product/list/22/foo
         * will be matched by this route, and result:
         *
         *  [module] =>
         *  [controller] => product
         *  [action] => info
         *  [method] => GET
         *  [params:protected] => Array
         *      (
         *          [id] => 22
         *          [name] => foo
         *      )
         *
         */
        $route  = new Yaf_Route_Rewrite(
            "/product/list/:id/:name",
            array(
                "controller" => "product",
                "action"     => "info",
            )
        );

        $router->addRoute('dummy', $route);
    }
?>

Siehe auch

  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Yaf_Router constructor

  • « Yaf_Router::addRoute
  • Yaf_Router::getCurrentRoute »
  • PHP Manual
  • Yaf_Router
  • Yaf_Router constructor

Yaf_Router::__construct

(Yaf >=1.0.0)

Yaf_Router::__construct — Yaf_Router constructor

Beschreibung

public Yaf_Router::__construct ( )

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get the effective route name

  • « Yaf_Router::__construct
  • Yaf_Router::getRoute »
  • PHP Manual
  • Yaf_Router
  • Get the effective route name

Yaf_Router::getCurrentRoute

(Yaf >=1.0.0)

Yaf_Router::getCurrentRoute — Get the effective route name

Beschreibung

public Yaf_Router::getCurrentRoute ( ) : string

Get the name of the route which is effective in the route process.

Hinweis:

You should call this method after the route process finished, since before that, this method will always return null.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

String, the name of the effective route.

Beispiele

Beispiel #1 Register some routes in Bootstrap

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initRoute(Yaf_Dispatcher $dispatcher) {
        $router = $dispatcher->getRouter();
        $rewrite_route  = new Yaf_Route_Rewrite(
            "/product/list/:page",
            array(
                "controller" => "product",
                "action"     => "list",
            )
        );

        $regex_route  = new Yaf_Route_Rewrite(
            "#^/product/info/(\d+)",
            array(
                "controller" => "product",
                "action"     => "info",
            )
        );

        $router->addRoute('rewrite', $rewrite_route)->addRoute('regex', $regex_route);
    }

    /**
     * register plugin
     */
    public function __initPlugins(Yaf_Dispatcher $dispatcher) {
        $dispatcher->registerPlugin(new DummyPlugin());
    }
?>

Beispiel #2 plugin Dummy.php (under application.directory/plugins)

<?php
class DummyPlugin extends Yaf_Plugin_Abstract {

    public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
         var_dump(Yaf_Dispatcher::getInstance()->getRouter()->getCurrentRoute());
    }
?>
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/* for http://yourdomain.com/product/list/1
 * DummyPlugin will output:
 */
string(7) "rewrite"

/* for http://yourdomain.com/product/info/34
 * DummyPlugin will output:
 */
string(5) "regex"

/* for other request URI
 * DummyPlugin will output:
 */
string(8) "_default"

Siehe auch

  • Yaf_Bootstrap_Abstract
  • Yaf_Plugin_Abstract
  • Yaf_Router::addRoute() - Add new Route into Router


Retrieve a route by name

  • « Yaf_Router::getCurrentRoute
  • Yaf_Router::getRoutes »
  • PHP Manual
  • Yaf_Router
  • Retrieve a route by name

Yaf_Router::getRoute

(Yaf >=1.0.0)

Yaf_Router::getRoute — Retrieve a route by name

Beschreibung

public Yaf_Router::getRoute ( string $name ) : Yaf_Route_Interface

Retrieve a route by name, see also Yaf_Router::getCurrentRoute()

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • Yaf_Bootstrap_Abstract
  • Yaf_Plugin_Abstract
  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::getCurrentRoute() - Get the effective route name


Retrieve registered routes

  • « Yaf_Router::getRoute
  • Yaf_Router::route »
  • PHP Manual
  • Yaf_Router
  • Retrieve registered routes

Yaf_Router::getRoutes

(Yaf >=1.0.0)

Yaf_Router::getRoutes — Retrieve registered routes

Beschreibung

public Yaf_Router::getRoutes ( ) : mixed

Retrieve registered routes

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The route purpose

  • « Yaf_Router::getRoutes
  • Yaf_Route_Simple »
  • PHP Manual
  • Yaf_Router
  • The route purpose

Yaf_Router::route

(Yaf >=1.0.0)

Yaf_Router::route — The route purpose

Beschreibung

public Yaf_Router::route ( Yaf_Request_Abstract $request ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Yaf_Route_Simple class

(Yaf >=1.0.0)

Einführung

Yaf_Route_Simple will match the query string, and find the route info.

all you need to do is tell Yaf_Route_Simple what key in the $_GET is module, what key is controller, and what key is action.

Yaf_Route_Simple::route() will always return true, so it is important put Yaf_Route_Simple in the front of the Route stack, otherwise all the other routes will not be called.

Klassenbeschreibung

Yaf_Route_Simple implements Yaf_Route_Interface {
/* Eigenschaften */
protected $controller ;
protected $module ;
protected $action ;
/* Methoden */
public assemble ( array $info , array $query = ? ) : string
public __construct ( string $module_name , string $controller_name , string $action_name )
public route ( Yaf_Request_Abstract $request ) : bool
}

Eigenschaften

controller

module

action

Inhaltsverzeichnis

  • Yaf_Route_Simple::assemble — Assemble a url
  • Yaf_Route_Simple::__construct — Yaf_Route_Simple constructor
  • Yaf_Route_Simple::route — Route a request


Assemble a url

  • « Yaf_Route_Simple
  • Yaf_Route_Simple::__construct »
  • PHP Manual
  • Yaf_Route_Simple
  • Assemble a url

Yaf_Route_Simple::assemble

(Yaf >=2.3.0)

Yaf_Route_Simple::assemble — Assemble a url

Beschreibung

public Yaf_Route_Simple::assemble ( array $info , array $query = ? ) : string

Assemble a url.

Parameter-Liste

info

query

Beispiele

Beispiel #1 Yaf_Route_Simple::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Simple('m', 'c', 'a');

$router->addRoute("simple", $route);

var_dump($router->getRoute('simple')->assemble(
            array(
                ':a' => 'yafaction',
                'tkey' => 'tval',
                ':c' => 'yafcontroller',
                ':m' => 'yafmodule'
                ),
            array(
                'tkey1' => 'tval1',
                'tkey2' => 'tval2'
                )
            ));

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(64) "?m=yafmodule&c=yafcontroller&a=yafaction&tkey1=tval1&tkey2=tval2"

Rückgabewerte


Yaf_Route_Simple constructor

  • « Yaf_Route_Simple::assemble
  • Yaf_Route_Simple::route »
  • PHP Manual
  • Yaf_Route_Simple
  • Yaf_Route_Simple constructor

Yaf_Route_Simple::__construct

(Yaf >=1.0.0)

Yaf_Route_Simple::__construct — Yaf_Route_Simple constructor

Beschreibung

public Yaf_Route_Simple::__construct ( string $module_name , string $controller_name , string $action_name )

Yaf_Route_Simple will get route info from query string. and the parameters of this constructor will used as keys while searching for the route info in $_GET.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

module_name

The key name of the module info.

controller_name

the key name of the controller info.

action_name

the key name of the action info.

Rückgabewerte

Always return true.

Beispiele

Beispiel #1 Yaf_Route_Simple::route()example

<?php
   $route = new Yaf_Route_Simple("m", "controller", "act");
   Yaf_Router::getInstance()->addRoute("simple", $route);
?>

Beispiel #2 Yaf_Route_Simple::route()example

Request: http://yourdomain.com/path/?controller=a&act=b
=> module = default(index), controller = a, action = b

Request: http://yourdomain.com/path
=> module = default(index), controller = default(index), action = default(index)

Siehe auch

  • Yaf_Route_Supervar::route() - The route purpose
  • Yaf_Route_Static::route() - Route a request
  • Yaf_Route_Regex::route() - The route purpose
  • Yaf_Route_Rewrite::route() - The route purpose
  • Yaf_Route_Map::route() - The route purpose


Route a request

  • « Yaf_Route_Simple::__construct
  • Yaf_Route_Static »
  • PHP Manual
  • Yaf_Route_Simple
  • Route a request

Yaf_Route_Simple::route

(Yaf >=1.0.0)

Yaf_Route_Simple::route — Route a request

Beschreibung

public Yaf_Route_Simple::route ( Yaf_Request_Abstract $request ) : bool

see Yaf_Route_Simple::__construct()

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

request

Rückgabewerte

always be true

Siehe auch

  • Yaf_Route_Supervar::route() - The route purpose
  • Yaf_Route_Static::route() - Route a request
  • Yaf_Route_Regex::route() - The route purpose
  • Yaf_Route_Rewrite::route() - The route purpose
  • Yaf_Route_Map::route() - The route purpose


The Yaf_Route_Static class

(Yaf >=1.0.0)

Einführung

Defaultly, Yaf_Router only have a Yaf_Route_Static as its default route.

And Yaf_Route_Static is designed to handle the 80% requirement.

please *NOTE* that it is unnecessary to instance a Yaf_Route_Static, also unecesary to add it into Yaf_Router's routes stack, since there is always be one in Yaf_Router's routes stack, and always be called at the last time.

Klassenbeschreibung

Yaf_Route_Static implements Yaf_Router {
/* Methoden */
public assemble ( array $info , array $query = ? ) : string
public match ( string $uri ) : void
public route ( Yaf_Request_Abstract $request ) : bool
}

Inhaltsverzeichnis

  • Yaf_Route_Static::assemble — Assemble a url
  • Yaf_Route_Static::match — The match purpose
  • Yaf_Route_Static::route — Route a request


Assemble a url

  • « Yaf_Route_Static
  • Yaf_Route_Static::match »
  • PHP Manual
  • Yaf_Route_Static
  • Assemble a url

Yaf_Route_Static::assemble

(Yaf >=2.3.0)

Yaf_Route_Static::assemble — Assemble a url

Beschreibung

public Yaf_Route_Static::assemble ( array $info , array $query = ? ) : string

Assemble a url.

Parameter-Liste

info

query

Beispiele

Beispiel #1 Yaf_Route_Static::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Static();

$router->addRoute("static", $route);

var_dump($router->getRoute('static')->assemble(
            array(
                ':a' => 'yafaction',
                'tkey' => 'tval',
                ':c' => 'yafcontroller',
                ':m' => 'yafmodule'
            ),
        )
);

var_dump($router->getRoute('static')->assemble(
            array(
                ':a' => 'yafaction',
                'tkey' => 'tval',
                ':c' => 'yafcontroller',
                ':m' => 'yafmodule'
            ),
            array(
                'tkey1' => 'tval1',
                'tkey2' => 'tval2'
            )
        )
);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(%d) "/yafmodule/yafcontroller/yafaction"
string(%d) "/yafmodule/yafcontroller/yafaction?tkey1=tval1&tkey2=tval2"

Rückgabewerte


The match purpose

  • « Yaf_Route_Static::assemble
  • Yaf_Route_Static::route »
  • PHP Manual
  • Yaf_Route_Static
  • The match purpose

Yaf_Route_Static::match

(Yaf >=1.0.0)

Yaf_Route_Static::match — The match purpose

Beschreibung

public Yaf_Route_Static::match ( string $uri ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

uri

Rückgabewerte


Route a request

  • « Yaf_Route_Static::match
  • Yaf_Route_Supervar »
  • PHP Manual
  • Yaf_Route_Static
  • Route a request

Yaf_Route_Static::route

(Yaf >=1.0.0)

Yaf_Route_Static::route — Route a request

Beschreibung

public Yaf_Route_Static::route ( Yaf_Request_Abstract $request ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

request

Rückgabewerte

always be true

Beispiele

Beispiel #1 Yaf_Route_Static::route()example

// assuming there is only one module defined:Index
Request: http://yourdomain.com/a/b
=> module = index, controller=a, action=b

//assuming ap.action_prefer = On
Request: http://yourdomain.com/b
=> module = default(index), controller = default(index), action = b

//assuming ap.action_prefer = Off
Request: http://yourdomain.com/b
=> module = default(index), controller = b, action = default(index)

Request: http://yourdomain.com/a/b/foo/bar/test/a/id/4
=> module = default(index), controller = a, action = b, request parameters: foo = bar, test = a, id = 4

Siehe auch

  • Yaf_Route_Supervar::route() - The route purpose
  • Yaf_Route_Simple::route() - Route a request
  • Yaf_Route_Regex::route() - The route purpose
  • Yaf_Route_Rewrite::route() - The route purpose
  • Yaf_Route_Map::route() - The route purpose


The Yaf_Route_Supervar class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Route_Supervar implements Yaf_Route_Interface {
/* Eigenschaften */
protected $_var_name ;
/* Methoden */
public assemble ( array $info , array $query = ? ) : string
public __construct ( string $supervar_name )
public route ( Yaf_Request_Abstract $request ) : bool
}

Eigenschaften

_var_name

Inhaltsverzeichnis

  • Yaf_Route_Supervar::assemble — Assemble a url
  • Yaf_Route_Supervar::__construct — The __construct purpose
  • Yaf_Route_Supervar::route — The route purpose


Assemble a url

  • « Yaf_Route_Supervar
  • Yaf_Route_Supervar::__construct »
  • PHP Manual
  • Yaf_Route_Supervar
  • Assemble a url

Yaf_Route_Supervar::assemble

(Yaf >=2.3.0)

Yaf_Route_Supervar::assemble — Assemble a url

Beschreibung

public Yaf_Route_Supervar::assemble ( array $info , array $query = ? ) : string

Assemble a url.

Parameter-Liste

info

query

Beispiele

Beispiel #1 Yaf_Route_Supervar::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Supervar('r');

$router->addRoute("supervar", $route);

var_dump($router->getRoute('supervar')->assemble(
        array(
              ':a' => 'yafaction',
              'tkey' => 'tval',
              ':c' => 'yafcontroller',
              ':m' => 'yafmodule'
        ),
        array(
              'tkey1' => 'tval1',
              'tkey2' => 'tval2'
        )
));

try {
var_dump($router->getRoute('supervar')->assemble(
        array(
              ':a' => 'yafaction',
              'tkey' => 'tval',
              ':m' => 'yafmodule'
        ),
        array(
              'tkey1' => 'tval1',
              'tkey2' => 'tval2',
              1 => array(),
        )
));
} catch (Exception $e) {
    var_dump($e->getMessage());
}

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(%d) "?r=/yafmodule/yafcontroller/yafaction&tkey1=tval1&tkey2=tval2"
string(%d) "You need to specify the controller by ':c'"

Rückgabewerte


The __construct purpose

  • « Yaf_Route_Supervar::assemble
  • Yaf_Route_Supervar::route »
  • PHP Manual
  • Yaf_Route_Supervar
  • The __construct purpose

Yaf_Route_Supervar::__construct

(Yaf >=1.0.0)

Yaf_Route_Supervar::__construct — The __construct purpose

Beschreibung

public Yaf_Route_Supervar::__construct ( string $supervar_name )

Yaf_Route_Supervar is similar with Yaf_Route_Static, the difference is Yaf_Route_Supervar will look for path info in query string, and the parameter supervar_name is the key.

Parameter-Liste

supervar_name

The name of key.

Rückgabewerte

Beispiele

Beispiel #1 Yaf_Route_Supervar()example

<?php
   /**
    * Add a supervar route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Supervar("r"));
    );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

/** for request: http://yourdomain.com/xx/oo/?r=/ctr/act/var/value
  * will result in following:
  */
  array (
    "module"   => index(default),
    "controller" => ctr,
    "action"     => act,
    "params"     => array(
          "var" => value,
     )
  )

Siehe auch

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Regex
  • Yaf_Route_Simple
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


The route purpose

  • « Yaf_Route_Supervar::__construct
  • Yaf_Session »
  • PHP Manual
  • Yaf_Route_Supervar
  • The route purpose

Yaf_Route_Supervar::route

(Yaf >=1.0.0)

Yaf_Route_Supervar::route — The route purpose

Beschreibung

public Yaf_Route_Supervar::route ( Yaf_Request_Abstract $request ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

request

Rückgabewerte

If there is a key(which was defined in Yaf_Route_Supervar::__construct()) in $_GET, return true. otherwise return false.


The Yaf_Session class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Session implements Iterator , ArrayAccess , Countable {
/* Eigenschaften */
protected static $_instance ;
protected $_session ;
protected $_started ;
/* Methoden */
private __construct ( )
public count ( ) : void
public current ( ) : void
public del ( string $name ) : void
public __get ( string $name ) : void
public static getInstance ( ) : void
public has ( string $name ) : void
public __isset ( string $name ) : void
public key ( ) : void
public next ( ) : void
public offsetExists ( string $name ) : void
public offsetGet ( string $name ) : void
public offsetSet ( string $name , string $value ) : void
public offsetUnset ( string $name ) : void
public rewind ( ) : void
public __set ( string $name , string $value ) : void
public start ( ) : void
public __unset ( string $name ) : void
public valid ( ) : void
}

Eigenschaften

_instance

_session

_started

Inhaltsverzeichnis

  • Yaf_Session::__construct — Constructor of Yaf_Session
  • Yaf_Session::count — The count purpose
  • Yaf_Session::current — The current purpose
  • Yaf_Session::del — The del purpose
  • Yaf_Session::__get — The __get purpose
  • Yaf_Session::getInstance — The getInstance purpose
  • Yaf_Session::has — The has purpose
  • Yaf_Session::__isset — The __isset purpose
  • Yaf_Session::key — The key purpose
  • Yaf_Session::next — The next purpose
  • Yaf_Session::offsetExists — The offsetExists purpose
  • Yaf_Session::offsetGet — The offsetGet purpose
  • Yaf_Session::offsetSet — The offsetSet purpose
  • Yaf_Session::offsetUnset — The offsetUnset purpose
  • Yaf_Session::rewind — The rewind purpose
  • Yaf_Session::__set — The __set purpose
  • Yaf_Session::start — The start purpose
  • Yaf_Session::__unset — The __unset purpose
  • Yaf_Session::valid — The valid purpose


Constructor of Yaf_Session

  • « Yaf_Session
  • Yaf_Session::count »
  • PHP Manual
  • Yaf_Session
  • Constructor of Yaf_Session

Yaf_Session::__construct

(Yaf >=1.0.0)

Yaf_Session::__construct — Constructor of Yaf_Session

Beschreibung

private Yaf_Session::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The count purpose

  • « Yaf_Session::__construct
  • Yaf_Session::current »
  • PHP Manual
  • Yaf_Session
  • The count purpose

Yaf_Session::count

(Yaf >=1.0.0)

Yaf_Session::count — The count purpose

Beschreibung

public Yaf_Session::count ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The current purpose

  • « Yaf_Session::count
  • Yaf_Session::del »
  • PHP Manual
  • Yaf_Session
  • The current purpose

Yaf_Session::current

(Yaf >=1.0.0)

Yaf_Session::current — The current purpose

Beschreibung

public Yaf_Session::current ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The del purpose

  • « Yaf_Session::current
  • Yaf_Session::__get »
  • PHP Manual
  • Yaf_Session
  • The del purpose

Yaf_Session::del

(Yaf >=1.0.0)

Yaf_Session::del — The del purpose

Beschreibung

public Yaf_Session::del ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The __get purpose

  • « Yaf_Session::del
  • Yaf_Session::getInstance »
  • PHP Manual
  • Yaf_Session
  • The __get purpose

Yaf_Session::__get

(Yaf >=1.0.0)

Yaf_Session::__get — The __get purpose

Beschreibung

public Yaf_Session::__get ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The getInstance purpose

  • « Yaf_Session::__get
  • Yaf_Session::has »
  • PHP Manual
  • Yaf_Session
  • The getInstance purpose

Yaf_Session::getInstance

(Yaf >=1.0.0)

Yaf_Session::getInstance — The getInstance purpose

Beschreibung

public static Yaf_Session::getInstance ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The has purpose

  • « Yaf_Session::getInstance
  • Yaf_Session::__isset »
  • PHP Manual
  • Yaf_Session
  • The has purpose

Yaf_Session::has

(Yaf >=1.0.0)

Yaf_Session::has — The has purpose

Beschreibung

public Yaf_Session::has ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The __isset purpose

  • « Yaf_Session::has
  • Yaf_Session::key »
  • PHP Manual
  • Yaf_Session
  • The __isset purpose

Yaf_Session::__isset

(Yaf >=1.0.0)

Yaf_Session::__isset — The __isset purpose

Beschreibung

public Yaf_Session::__isset ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The key purpose

  • « Yaf_Session::__isset
  • Yaf_Session::next »
  • PHP Manual
  • Yaf_Session
  • The key purpose

Yaf_Session::key

(Yaf >=1.0.0)

Yaf_Session::key — The key purpose

Beschreibung

public Yaf_Session::key ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The next purpose

  • « Yaf_Session::key
  • Yaf_Session::offsetExists »
  • PHP Manual
  • Yaf_Session
  • The next purpose

Yaf_Session::next

(Yaf >=1.0.0)

Yaf_Session::next — The next purpose

Beschreibung

public Yaf_Session::next ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The offsetExists purpose

  • « Yaf_Session::next
  • Yaf_Session::offsetGet »
  • PHP Manual
  • Yaf_Session
  • The offsetExists purpose

Yaf_Session::offsetExists

(Yaf >=1.0.0)

Yaf_Session::offsetExists — The offsetExists purpose

Beschreibung

public Yaf_Session::offsetExists ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The offsetGet purpose

  • « Yaf_Session::offsetExists
  • Yaf_Session::offsetSet »
  • PHP Manual
  • Yaf_Session
  • The offsetGet purpose

Yaf_Session::offsetGet

(Yaf >=1.0.0)

Yaf_Session::offsetGet — The offsetGet purpose

Beschreibung

public Yaf_Session::offsetGet ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The offsetSet purpose

  • « Yaf_Session::offsetGet
  • Yaf_Session::offsetUnset »
  • PHP Manual
  • Yaf_Session
  • The offsetSet purpose

Yaf_Session::offsetSet

(Yaf >=1.0.0)

Yaf_Session::offsetSet — The offsetSet purpose

Beschreibung

public Yaf_Session::offsetSet ( string $name , string $value ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

value

Rückgabewerte


The offsetUnset purpose

  • « Yaf_Session::offsetSet
  • Yaf_Session::rewind »
  • PHP Manual
  • Yaf_Session
  • The offsetUnset purpose

Yaf_Session::offsetUnset

(Yaf >=1.0.0)

Yaf_Session::offsetUnset — The offsetUnset purpose

Beschreibung

public Yaf_Session::offsetUnset ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The rewind purpose

  • « Yaf_Session::offsetUnset
  • Yaf_Session::__set »
  • PHP Manual
  • Yaf_Session
  • The rewind purpose

Yaf_Session::rewind

(Yaf >=1.0.0)

Yaf_Session::rewind — The rewind purpose

Beschreibung

public Yaf_Session::rewind ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The __set purpose

  • « Yaf_Session::rewind
  • Yaf_Session::start »
  • PHP Manual
  • Yaf_Session
  • The __set purpose

Yaf_Session::__set

(Yaf >=1.0.0)

Yaf_Session::__set — The __set purpose

Beschreibung

public Yaf_Session::__set ( string $name , string $value ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

value

Rückgabewerte


The start purpose

  • « Yaf_Session::__set
  • Yaf_Session::__unset »
  • PHP Manual
  • Yaf_Session
  • The start purpose

Yaf_Session::start

(Yaf >=1.0.0)

Yaf_Session::start — The start purpose

Beschreibung

public Yaf_Session::start ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The __unset purpose

  • « Yaf_Session::start
  • Yaf_Session::valid »
  • PHP Manual
  • Yaf_Session
  • The __unset purpose

Yaf_Session::__unset

(Yaf >=1.0.0)

Yaf_Session::__unset — The __unset purpose

Beschreibung

public Yaf_Session::__unset ( string $name ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


The valid purpose

  • « Yaf_Session::__unset
  • Yaf_Exception »
  • PHP Manual
  • Yaf_Session
  • The valid purpose

Yaf_Session::valid

(Yaf >=1.0.0)

Yaf_Session::valid — The valid purpose

Beschreibung

public Yaf_Session::valid ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Yaf_Exception class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Exception extends Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
public __construct ( )
public getPrevious ( ) : void
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Inhaltsverzeichnis

  • Yaf_Exception::__construct — The __construct purpose
  • Yaf_Exception::getPrevious — The getPrevious purpose


The __construct purpose

  • « Yaf_Exception
  • Yaf_Exception::getPrevious »
  • PHP Manual
  • Yaf_Exception
  • The __construct purpose

Yaf_Exception::__construct

(Yaf >=1.0.0)

Yaf_Exception::__construct — The __construct purpose

Beschreibung

public Yaf_Exception::__construct ( )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The getPrevious purpose

  • « Yaf_Exception::__construct
  • Yaf_Exception_TypeError »
  • PHP Manual
  • Yaf_Exception
  • The getPrevious purpose

Yaf_Exception::getPrevious

(Yaf >=1.0.0)

Yaf_Exception::getPrevious — The getPrevious purpose

Beschreibung

public Yaf_Exception::getPrevious ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The Yaf_Exception_TypeError class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Exception_TypeError extends Yaf_Exception {
/* Eigenschaften */
/* Methoden */
/* Geerbte Methoden */
public Yaf_Exception::__construct ( )
public Yaf_Exception::getPrevious ( ) : void
}


The Yaf_Exception_StartupError class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Exception_StartupError extends Yaf_Exception {
/* Eigenschaften */
/* Methoden */
/* Geerbte Methoden */
public Yaf_Exception::__construct ( )
public Yaf_Exception::getPrevious ( ) : void
}


The Yaf_Exception_DispatchFailed class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Exception_DispatchFailed extends Yaf_Exception {
/* Eigenschaften */
/* Methoden */
/* Geerbte Methoden */
public Yaf_Exception::__construct ( )
public Yaf_Exception::getPrevious ( ) : void
}


The Yaf_Exception_RouterFailed class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Exception_RouterFailed extends Yaf_Exception {
/* Eigenschaften */
/* Methoden */
/* Geerbte Methoden */
public Yaf_Exception::__construct ( )
public Yaf_Exception::getPrevious ( ) : void
}


The Yaf_Exception_LoadFailed class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Exception_LoadFailed extends Yaf_Exception {
/* Eigenschaften */
/* Methoden */
/* Geerbte Methoden */
public Yaf_Exception::__construct ( )
public Yaf_Exception::getPrevious ( ) : void
}


The Yaf_Exception_LoadFailed_Module class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Exception_LoadFailed_Module extends Yaf_Exception_LoadFailed {
/* Eigenschaften */
/* Methoden */
/* Geerbte Methoden */
public Yaf_Exception::__construct ( )
public Yaf_Exception::getPrevious ( ) : void
}


The Yaf_Exception_LoadFailed_Controller class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Exception_LoadFailed_Controller extends Yaf_Exception_LoadFailed {
/* Eigenschaften */
/* Methoden */
/* Geerbte Methoden */
public Yaf_Exception::__construct ( )
public Yaf_Exception::getPrevious ( ) : void
}


The Yaf_Exception_LoadFailed_Action class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Exception_LoadFailed_Action extends Yaf_Exception_LoadFailed {
/* Eigenschaften */
/* Methoden */
/* Geerbte Methoden */
public Yaf_Exception::__construct ( )
public Yaf_Exception::getPrevious ( ) : void
}


The Yaf_Exception_LoadFailed_View class

(Yaf >=1.0.0)

Einführung

Klassenbeschreibung

Yaf_Exception_LoadFailed_View extends Yaf_Exception_LoadFailed {
/* Eigenschaften */
/* Methoden */
/* Geerbte Methoden */
public Yaf_Exception::__construct ( )
public Yaf_Exception::getPrevious ( ) : void
}


Yaconf

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Yaconf — The Yaconf class
    • Yaconf::get — Retrieve a item
    • Yaconf::has — Determine if a item exists


Einführung

Yet Another Configurations Container (Yaconf) is a configurations container, it parses INI files, and store the result in PHP when PHP is started, the result lives with the whole PHP lifecycle.

Yaconf stores all configurations as interned string or immutable array, which means they are not refcounted-able, thus when you retrieving configurations from yaconf, it could be considered as zero-copy, very fast.

Yaconf supports sections and sections inheritance in INI files. if PHP is built as non-ZTS build, Yaconf also supports automatically reloading after INI files are changed.

Yaconf requires PHP 7.0 or greater.

Beispiel #1 INI example

;simple key val
key=val
;hash
hash.a=val
;array
arr.0=val
;or
arr[]=val
;use PHP constants
version=PHP_VERION
;use enviroment
env=${PATH}

Beispiel #2 INI sections example

[SectionA]
key=val
hash.a=val

;SectionB inherits SectionA
[SectionB:SectionA]
;override configuration key in SectionA
key=new_val


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

Yaconf requires PHP 7.0 and above.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/yaconf.

Windows binaries (DLL files) for this PECL extension are available from the PECL website.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Yaconf Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
yaconf.check_delay | 300 | PHP_INI_SYSTEM |
yaconf.directory | /tmp/conf/ | PHP_INI_SYSTEM |

Hier eine kurze Erklärung der Konfigurationsoptionen:

yaconf.check_delay int

In which interval Yaconf will detect ini file's change(by directory's mtime), if it is set to zero, you have to restart php to reloading configurations.

yaconf.directory string

Path to directory which all INI configuration files are placed in.


  • « Ressource-Typen
  • Yaconf »
  • PHP Manual
  • Yaconf
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


The Yaconf class

(PECL yaconf >= 1.0.0)

Einführung

Yaconf is a configurations container, it parses INIT files, stores the result in PHP when PHP is started, the result lives with the whole PHP lifecycle.

Klassenbeschreibung

Yaconf {
/* Methoden */
public static get ( string $name , mixed $default_value = NULL ) : mixed
public static has ( string $name ) : bool
}

Inhaltsverzeichnis

  • Yaconf::get — Retrieve a item
  • Yaconf::has — Determine if a item exists


Retrieve a item

  • « Yaconf
  • Yaconf::has »
  • PHP Manual
  • Yaconf
  • Retrieve a item

Yaconf::get

(PECL yaconf >= 1.0.0)

Yaconf::get — Retrieve a item

Beschreibung

public static Yaconf::get ( string $name , mixed $default_value = NULL ) : mixed

Parameter-Liste

name

Configuration key, the key looks like "filename.key", or "filename.sectionName,key".

default_value

if the key doesn't exists, Yaconf::get will return this as result.

Rückgabewerte

Returns configuration result(string or array) if the key exists, return default_value if not.

Beispiele

Beispiel #1 INI()example

;filenmame foo.ini, placed in directory which is yaconf.directoy
[SectionA]
;key value pair
key=val
;hash[a]=val
hash.a=val
;arr[0]=val
arr.0=val
;or
arr[]=val

;SectionB inherits SectionA
[SectionB:SectionA]
;override configuration key in SectionA
key=new_val

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

php7 -r 'var_dump(Yaconf::get("foo.SectionA.key"));'
//string(3) "val"

php7 -r 'var_dump(Yaconf::get("foo.SectionB.key"));'
//string(7) "new_val"

php7 -r 'var_dump(Yaconf::get("foo")["SectionA"]["hash"]);'
//array(1)


Determine if a item exists

  • « Yaconf::get
  • Taint »
  • PHP Manual
  • Yaconf
  • Determine if a item exists

Yaconf::has

(PECL yaconf >= 1.0.0)

Yaconf::has — Determine if a item exists

Beschreibung

public static Yaconf::has ( string $name ) : bool

Parameter-Liste

name

Rückgabewerte


Taint

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • More Details
    • Functions and Statements which will spread the tainted mark of a tainted string
    • Functions and statements which will check tainted string
    • Functions which untaint the tainted string
  • Taint Funktionen
    • is_tainted — Checks whether a string is tainted
    • taint — Taint a string
    • untaint — Untaint strings


Einführung

Taint is an extension, which is used for detecting XSS codes(tainted string). And also can be used to spot sql injection vulnerabilities, and shell inject, etc.

When taint is enabled, if you pass a tainted string (comes from $_GET, $_POST or $_COOKIE) to some functions, taint will warn you about that.

Beispiel #1 Taint()example

<?php
$a = trim($_GET['a']);

$file_name = '/tmp' .  $a;
$output    = "Welcome, {$a} !!!";
$var       = "output";
$sql       = "Select *  from " . $a;
$sql      .= "ooxx";

echo $output;

print $$var;

include($file_name);

mysql_query($sql);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Warning: main() [function.echo]: Attempt to echo a string that might be tainted

Warning: main() [function.echo]: Attempt to print a string that might be tainted

Warning: include() [function.include]: File path contains data that might be tainted

Warning: mysql_query() [function.mysql-query]: SQL statement contains data that might be tainted


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/taint.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Taint Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
taint.enable | 0 | PHP_INI_SYSTEM |
taint.error_level | E_WARNING | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

taint.enable int

Whether enable the taint.

taint.error_level int

the error type which taint will report as when taint find a tainted string.


  • « Laufzeit-Konfiguration
  • More Details »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert keine Ressource-Typen.


More Details

Inhaltsverzeichnis

  • Functions and Statements which will spread the tainted mark of a tainted string
  • Functions and statements which will check tainted string
  • Functions which untaint the tainted string


Functions and Statements which will spread the tainted mark of a tainted string

Function/Statement | Since
= (assign) | 0.1.0
. (concat) | 0.1.0
"{$var}" (variable substitution) | 0.1.0
.= (assign concat) | 0.1.0
strval | 0.3.0
explode/split | 0.3.0
implode/join | 0.3.0
sprintf | 0.3.0
vsprintf | 0.3.0
trim | 0.4.0
rtrim | 0.4.0
ltrim | 0.4.0
strstr | 0.5.0
str_pad | 0.5.0
str_replace | 0.5.0
substr | 0.5.0
strtolower | 0.5.0
strtoupper | 0.5.0


Functions and statements which will check tainted string

Function/Statement | Since
Basic statments
eval | 0.1.0
include/include_once | 0.1.0
require/require_once | 0.1.0
Outputing Functions
echo | 0.1.0
print | 0.1.0
printf | 0.1.0
file_put_contents | 0.1.0
File System Functions
fopen | 0.2.0
opendir | 0.2.0
basename | 0.2.0
dirname | 0.2.0
file | 0.2.0
pathinfo | 0.2.0
Database relevant Functions
mysql_query | 0.2.0
mysqli_query/MySQLi::query | 0.2.0
sqlite_query/SqliteDataBase::query | 0.3.0
sqlite_single_query/SqliteDataBase::singleQuery | 0.3.0
oci_parse | 0.3.0
PDO::query | 0.3.0
PDO::prepare | 0.3.0
SQLite3::query | 2.0.1
SQLite3::prepare | 2.0.1
Command Line relevant Functions
system | 0.1.0
exec | 0.1.0
proc_open | 0.1.0
passthru | 0.1.0
shell_exec | 0.3.0


Functions which untaint the tainted string

Function | Since
addslashes | 0.1.0
addcslashes | 0.1.0
htmlspecialchars | 0.1.0
htmlentities | 0.1.0
escapeshellcmd | 0.1.0
mysql_escape_string | 0.1.0
mysql_real_escape_string | 0.1.0
mysqli_escape_string/MySQLi::escape_string | 0.1.0
mysqli_real_escape_string/MySQLi::real_escape_string | 0.1.0
sqlite_escape_string/SqliteDataBase::escapeString | 0.3.0
PDO::quote | 0.3.0


Taint Funktionen

Inhaltsverzeichnis

  • is_tainted — Checks whether a string is tainted
  • taint — Taint a string
  • untaint — Untaint strings


Checks whether a string is tainted

  • « Taint Funktionen
  • taint »
  • PHP Manual
  • Taint Funktionen
  • Checks whether a string is tainted

is_tainted

(PECL taint >=0.1.0)

is_tainted — Checks whether a string is tainted

Beschreibung

is_tainted ( string $string ) : bool

Checks whether a string is tainted

Parameter-Liste

string

Rückgabewerte

Return TRUE if the string is tainted, FALSE otherwise.


Taint a string

  • « is_tainted
  • untaint »
  • PHP Manual
  • Taint Funktionen
  • Taint a string

taint

(PECL taint >=0.1.0)

taint — Taint a string

Beschreibung

taint ( string &$string , string ...$strings ) : bool

Make a string tainted. This is used for testing purpose only.

Parameter-Liste

string

strings

Rückgabewerte

Return TRUE if the transformation is done. Always return TRUE if the taint extension is not enabled.


Untaint strings

  • « taint
  • Data Structures »
  • PHP Manual
  • Taint Funktionen
  • Untaint strings

untaint

(PECL taint >=0.1.0)

untaint — Untaint strings

Beschreibung

untaint ( string &$string , string ...$strings ) : bool

Untaint strings

Parameter-Liste

string

strings

Rückgabewerte


Data Structures

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
  • Vordefinierte Konstanten
  • Beispiele
  • Collection — The Collection interface
    • Ds\Collection::clear — Removes all values
    • Ds\Collection::copy — Returns a shallow copy of the collection
    • Ds\Collection::isEmpty — Returns whether the collection is empty
    • Ds\Collection::toArray — Converts the collection to an Array
  • Hashable — The Hashable interface
    • Ds\Hashable::equals — Determines whether an object is equal to the current instance
    • Ds\Hashable::hash — Returns a scalar value to be used as a hash value
  • Sequence — The Sequence interface
    • Ds\Sequence::allocate — Allocates enough memory for a required capacity
    • Ds\Sequence::apply — Updates all values by applying a callback function to each value
    • Ds\Sequence::capacity — Returns the current capacity
    • Ds\Sequence::contains — Determines if the sequence contains given values
    • Ds\Sequence::filter — Creates a new sequence using a callable to determine which values to include
    • Ds\Sequence::find — Attempts to find a value's index
    • Ds\Sequence::first — Returns the first value in the sequence
    • Ds\Sequence::get — Returns the value at a given index
    • Ds\Sequence::insert — Inserts values at a given index
    • Ds\Sequence::join — Joins all values together as a string
    • Ds\Sequence::last — Returns the last value
    • Ds\Sequence::map — Returns the result of applying a callback to each value
    • Ds\Sequence::merge — Returns the result of adding all given values to the sequence
    • Ds\Sequence::pop — Removes and returns the last value
    • Ds\Sequence::push — Adds values to the end of the sequence
    • Ds\Sequence::reduce — Reduces the sequence to a single value using a callback function
    • Ds\Sequence::remove — Removes and returns a value by index
    • Ds\Sequence::reverse — Reverses the sequence in-place
    • Ds\Sequence::reversed — Returns a reversed copy
    • Ds\Sequence::rotate — Rotates the sequence by a given number of rotations
    • Ds\Sequence::set — Updates a value at a given index
    • Ds\Sequence::shift — Removes and returns the first value
    • Ds\Sequence::slice — Returns a sub-sequence of a given range
    • Ds\Sequence::sort — Sorts the sequence in-place
    • Ds\Sequence::sorted — Returns a sorted copy
    • Ds\Sequence::sum — Returns the sum of all values in the sequence
    • Ds\Sequence::unshift — Adds values to the front of the sequence
  • Vector — The Vector class
    • Ds\Vector::allocate — Allocates enough memory for a required capacity
    • Ds\Vector::apply — Updates all values by applying a callback function to each value
    • Ds\Vector::capacity — Returns the current capacity
    • Ds\Vector::clear — Removes all values
    • Ds\Vector::__construct — Creates a new instance
    • Ds\Vector::contains — Determines if the vector contains given values
    • Ds\Vector::copy — Returns a shallow copy of the vector
    • Ds\Vector::count — Returns the number of values in the collection
    • Ds\Vector::filter — Creates a new vector using a callable to determine which values to include
    • Ds\Vector::find — Attempts to find a value's index
    • Ds\Vector::first — Returns the first value in the vector
    • Ds\Vector::get — Returns the value at a given index
    • Ds\Vector::insert — Inserts values at a given index
    • Ds\Vector::isEmpty — Returns whether the vector is empty
    • Ds\Vector::join — Joins all values together as a string
    • Ds\Vector::jsonSerialize — Returns a representation that can be converted to JSON
    • Ds\Vector::last — Returns the last value
    • Ds\Vector::map — Returns the result of applying a callback to each value
    • Ds\Vector::merge — Returns the result of adding all given values to the vector
    • Ds\Vector::pop — Removes and returns the last value
    • Ds\Vector::push — Adds values to the end of the vector
    • Ds\Vector::reduce — Reduces the vector to a single value using a callback function
    • Ds\Vector::remove — Removes and returns a value by index
    • Ds\Vector::reverse — Reverses the vector in-place
    • Ds\Vector::reversed — Returns a reversed copy
    • Ds\Vector::rotate — Rotates the vector by a given number of rotations
    • Ds\Vector::set — Updates a value at a given index
    • Ds\Vector::shift — Removes and returns the first value
    • Ds\Vector::slice — Returns a sub-vector of a given range
    • Ds\Vector::sort — Sorts the vector in-place
    • Ds\Vector::sorted — Returns a sorted copy
    • Ds\Vector::sum — Returns the sum of all values in the vector
    • Ds\Vector::toArray — Converts the vector to an Array
    • Ds\Vector::unshift — Adds values to the front of the vector
  • Deque — The Deque class
    • Ds\Deque::allocate — Allocates enough memory for a required capacity
    • Ds\Deque::apply — Updates all values by applying a callback function to each value
    • Ds\Deque::capacity — Returns the current capacity
    • Ds\Deque::clear — Removes all values from the deque
    • Ds\Deque::__construct — Creates a new instance
    • Ds\Deque::contains — Determines if the deque contains given values
    • Ds\Deque::copy — Returns a shallow copy of the deque
    • Ds\Deque::count — Returns the number of values in the collection
    • Ds\Deque::filter — Creates a new deque using a callable to determine which values to include
    • Ds\Deque::find — Attempts to find a value's index
    • Ds\Deque::first — Returns the first value in the deque
    • Ds\Deque::get — Returns the value at a given index
    • Ds\Deque::insert — Inserts values at a given index
    • Ds\Deque::isEmpty — Returns whether the deque is empty
    • Ds\Deque::join — Joins all values together as a string
    • Ds\Deque::jsonSerialize — Returns a representation that can be converted to JSON
    • Ds\Deque::last — Returns the last value
    • Ds\Deque::map — Returns the result of applying a callback to each value
    • Ds\Deque::merge — Returns the result of adding all given values to the deque
    • Ds\Deque::pop — Removes and returns the last value
    • Ds\Deque::push — Adds values to the end of the deque
    • Ds\Deque::reduce — Reduces the deque to a single value using a callback function
    • Ds\Deque::remove — Removes and returns a value by index
    • Ds\Deque::reverse — Reverses the deque in-place
    • Ds\Deque::reversed — Returns a reversed copy
    • Ds\Deque::rotate — Rotates the deque by a given number of rotations
    • Ds\Deque::set — Updates a value at a given index
    • Ds\Deque::shift — Removes and returns the first value
    • Ds\Deque::slice — Returns a sub-deque of a given range
    • Ds\Deque::sort — Sorts the deque in-place
    • Ds\Deque::sorted — Returns a sorted copy
    • Ds\Deque::sum — Returns the sum of all values in the deque
    • Ds\Deque::toArray — Converts the deque to an Array
    • Ds\Deque::unshift — Adds values to the front of the deque
  • Map — The Map class
    • Ds\Map::allocate — Allocates enough memory for a required capacity
    • Ds\Map::apply — Updates all values by applying a callback function to each value
    • Ds\Map::capacity — Returns the current capacity
    • Ds\Map::clear — Removes all values
    • Ds\Map::__construct — Creates a new instance
    • Ds\Map::copy — Returns a shallow copy of the map
    • Ds\Map::count — Returns the number of values in the map
    • Ds\Map::diff — Creates a new map using keys that aren't in another map
    • Ds\Map::filter — Creates a new map using a callable to determine which pairs to include
    • Ds\Map::first — Returns the first pair in the map
    • Ds\Map::get — Returns the value for a given key
    • Ds\Map::hasKey — Determines whether the map contains a given key
    • Ds\Map::hasValue — Determines whether the map contains a given value
    • Ds\Map::intersect — Creates a new map by intersecting keys with another map
    • Ds\Map::isEmpty — Returns whether the map is empty
    • Ds\Map::jsonSerialize — Returns a representation that can be converted to JSON
    • Ds\Map::keys — Returns a set of the map's keys
    • Ds\Map::ksort — Sorts the map in-place by key
    • Ds\Map::ksorted — Returns a copy, sorted by key
    • Ds\Map::last — Returns the last pair of the map
    • Ds\Map::map — Returns the result of applying a callback to each value
    • Ds\Map::merge — Returns the result of adding all given associations
    • Ds\Map::pairs — Returns a sequence containing all the pairs of the map
    • Ds\Map::put — Associates a key with a value
    • Ds\Map::putAll — Associates all key-value pairs of a traversable object or array
    • Ds\Map::reduce — Reduces the map to a single value using a callback function
    • Ds\Map::remove — Removes and returns a value by key
    • Ds\Map::reverse — Reverses the map in-place
    • Ds\Map::reversed — Returns a reversed copy
    • Ds\Map::skip — Returns the pair at a given positional index
    • Ds\Map::slice — Returns a subset of the map defined by a starting index and length
    • Ds\Map::sort — Sorts the map in-place by value
    • Ds\Map::sorted — Returns a copy, sorted by value
    • Ds\Map::sum — Returns the sum of all values in the map
    • Ds\Map::toArray — Converts the map to an Array
    • Ds\Map::union — Creates a new map using values from the current instance and another map
    • Ds\Map::values — Returns a sequence of the map's values
    • Ds\Map::xor — Creates a new map using keys of either the current instance or of another map, but not of both
  • Pair — The Pair class
    • Ds\Pair::clear — Removes all values
    • Ds\Pair::__construct — Creates a new instance
    • Ds\Pair::copy — Returns a shallow copy of the pair
    • Ds\Pair::isEmpty — Returns whether the pair is empty
    • Ds\Pair::jsonSerialize — Returns a representation that can be converted to JSON
    • Ds\Pair::toArray — Converts the pair to an Array
  • Set — The Set class
    • Ds\Set::add — Adds values to the set
    • Ds\Set::allocate — Allocates enough memory for a required capacity
    • Ds\Set::capacity — Returns the current capacity
    • Ds\Set::clear — Removes all values
    • Ds\Set::__construct — Creates a new instance
    • Ds\Set::contains — Determines if the set contains all values
    • Ds\Set::copy — Returns a shallow copy of the set
    • Ds\Set::count — Returns the number of values in the set
    • Ds\Set::diff — Creates a new set using values that aren't in another set
    • Ds\Set::filter — Creates a new set using a callable to determine which values to include
    • Ds\Set::first — Returns the first value in the set
    • Ds\Set::get — Returns the value at a given index
    • Ds\Set::intersect — Creates a new set by intersecting values with another set
    • Ds\Set::isEmpty — Returns whether the set is empty
    • Ds\Set::join — Joins all values together as a string
    • Ds\Set::jsonSerialize — Returns a representation that can be converted to JSON
    • Ds\Set::last — Returns the last value in the set
    • Ds\Set::merge — Returns the result of adding all given values to the set
    • Ds\Set::reduce — Reduces the set to a single value using a callback function
    • Ds\Set::remove — Removes all given values from the set
    • Ds\Set::reverse — Reverses the set in-place
    • Ds\Set::reversed — Returns a reversed copy
    • Ds\Set::slice — Returns a sub-set of a given range
    • Ds\Set::sort — Sorts the set in-place
    • Ds\Set::sorted — Returns a sorted copy
    • Ds\Set::sum — Returns the sum of all values in the set
    • Ds\Set::toArray — Converts the set to an Array
    • Ds\Set::union — Creates a new set using values from the current instance and another set
    • Ds\Set::xor — Creates a new set using values in either the current instance or in another set, but not in both
  • Stack — The Stack class
    • Ds\Stack::allocate — Allocates enough memory for a required capacity
    • Ds\Stack::capacity — Returns the current capacity
    • Ds\Stack::clear — Removes all values
    • Ds\Stack::__construct — Creates a new instance
    • Ds\Stack::copy — Returns a shallow copy of the stack
    • Ds\Stack::count — Returns the number of values in the stack
    • Ds\Stack::isEmpty — Returns whether the stack is empty
    • Ds\Stack::jsonSerialize — Returns a representation that can be converted to JSON
    • Ds\Stack::peek — Returns the value at the top of the stack
    • Ds\Stack::pop — Removes and returns the value at the top of the stack
    • Ds\Stack::push — Pushes values onto the stack
    • Ds\Stack::toArray — Converts the stack to an Array
  • Queue — The Queue class
    • Ds\Queue::allocate — Allocates enough memory for a required capacity
    • Ds\Queue::capacity — Returns the current capacity
    • Ds\Queue::clear — Removes all values
    • Ds\Queue::__construct — Creates a new instance
    • Ds\Queue::copy — Returns a shallow copy of the queue
    • Ds\Queue::count — Returns the number of values in the queue
    • Ds\Queue::isEmpty — Returns whether the queue is empty
    • Ds\Queue::jsonSerialize — Returns a representation that can be converted to JSON
    • Ds\Queue::peek — Returns the value at the front of the queue
    • Ds\Queue::pop — Removes and returns the value at the front of the queue
    • Ds\Queue::push — Pushes values into the queue
    • Ds\Queue::toArray — Converts the queue to an Array
  • PriorityQueue — The PriorityQueue class
    • Ds\PriorityQueue::allocate — Allocates enough memory for a required capacity
    • Ds\PriorityQueue::capacity — Returns the current capacity
    • Ds\PriorityQueue::clear — Removes all values
    • Ds\PriorityQueue::__construct — Creates a new instance
    • Ds\PriorityQueue::copy — Returns a shallow copy of the queue
    • Ds\PriorityQueue::count — Returns the number of values in the queue
    • Ds\PriorityQueue::isEmpty — Returns whether the queue is empty
    • Ds\PriorityQueue::jsonSerialize — Returns a representation that can be converted to JSON
    • Ds\PriorityQueue::peek — Returns the value at the front of the queue
    • Ds\PriorityQueue::pop — Removes and returns the value with the highest priority
    • Ds\PriorityQueue::push — Pushes values into the queue
    • Ds\PriorityQueue::toArray — Converts the queue to an Array


Einführung

Efficient data structures for PHP 7, provided as an alternative to the Array.

See » this blog post for benchmarks, discussion and frequently asked questions.


  • « Einführung
  • Anforderungen »
  • PHP Manual
  • Data Structures
  • Installation/Konfiguration

Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

PHP 7 is required by both the extension and the compatibility polyfill.


Installation

The easiest way to install the extension is via » PECL

pecl install ds

You can also build directly from source:

# Dependencies you might need to install
# sudo apt-get install git build-essential php7.0-dev

git clone https://github.com/php-ds/extension "php-ds"
cd php-ds

# Build and install the extension
phpize
./configure
make
make install

# Clean up the build files
make clean
phpize --clean

If you're on Windows, you can » download a compiled .dll on PECL

Hinweis:

If you're using Composer, it's highly recommended that you include » php-ds/php-ds in your project so that your code is still functional in an environment where the extension is not installed. The extension will take priority if installed.


  • « Installation
  • Beispiele »
  • PHP Manual
  • Data Structures
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Beispiele

Beispiel #1 Vector

<?php

$vector = new \Ds\Vector();

$vector->push('a');
$vector->push('b', 'c');

$vector[] = 'd';

print_r($vector);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)

Beispiel #2 Map

<?php

$map = new \Ds\Map();

$map->put('a', 1);
$map->put('b', 2);

$map['c'] = 3;

print_r($map);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


The Collection interface

(No version information available, might only be in Git)

Einführung

Collection is the base interface which covers functionality common to all the data structures in this library. It guarantees that all structures are traversable, countable, and can be converted to json using json_encode().

Interface-Übersicht

Ds\Collection implements Traversable , Countable , JsonSerializable {
/* Methoden */
abstract public clear ( ) : void
abstract public copy ( ) : Ds\Collection
abstract public isEmpty ( ) : bool
abstract public toArray ( ) : array
}

Inhaltsverzeichnis

  • Ds\Collection::clear — Removes all values
  • Ds\Collection::copy — Returns a shallow copy of the collection
  • Ds\Collection::isEmpty — Returns whether the collection is empty
  • Ds\Collection::toArray — Converts the collection to an Array


Removes all values

  • « Collection
  • Ds\Collection::copy »
  • PHP Manual
  • Collection
  • Removes all values

Ds\Collection::clear

(PECL ds >= 1.0.0)

Ds\Collection::clear — Removes all values

Beschreibung

abstract public Ds\Collection::clear ( ) : void

Removes all values from the collection.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Collection::clear() example

<?php
$collection = new \Ds\Vector([1, 2, 3]);
print_r($collection);

$collection->clear();
print_r($collection);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
)


Returns a shallow copy of the collection

  • « Ds\Collection::clear
  • Ds\Collection::isEmpty »
  • PHP Manual
  • Collection
  • Returns a shallow copy of the collection

Ds\Collection::copy

(PECL ds >= 1.0.0)

Ds\Collection::copy — Returns a shallow copy of the collection

Beschreibung

abstract public Ds\Collection::copy ( ) : Ds\Collection

Returns a shallow copy of the collection.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a shallow copy of the collection.

Beispiele

Beispiel #1 Ds\Collection::copy() example

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = $a->copy();

$b->push(4);

print_r($a);
print_r($b);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Returns whether the collection is empty

  • « Ds\Collection::copy
  • Ds\Collection::toArray »
  • PHP Manual
  • Collection
  • Returns whether the collection is empty

Ds\Collection::isEmpty

(PECL ds >= 1.0.0)

Ds\Collection::isEmpty — Returns whether the collection is empty

Beschreibung

abstract public Ds\Collection::isEmpty ( ) : bool

Returns whether the collection is empty.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the collection is empty, false otherwise.

Beispiele

Beispiel #1 Ds\Collection::isEmpty() example

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = new \Ds\Vector();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)


Converts the collection to an Array

  • « Ds\Collection::isEmpty
  • Hashable »
  • PHP Manual
  • Collection
  • Converts the collection to an Array

Ds\Collection::toArray

(PECL ds >= 1.0.0)

Ds\Collection::toArray — Converts the collection to an Array

Beschreibung

abstract public Ds\Collection::toArray ( ) : array

Converts the collection to an Array.

Hinweis:

Casting to an Array is not supported yet.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An Array containing all the values in the same order as the collection.

Beispiele

Beispiel #1 Ds\Collection::toArray() example

<?php
$collection = new \Ds\Vector([1, 2, 3]);

var_dump($collection->toArray());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


The Hashable interface

(No version information available, might only be in Git)

Einführung

Hashable is an interface which allows objects to be used as keys. It’s an alternative to spl_object_hash(), which determines an object’s hash based on its handle: this means that two objects that are considered equal by an implicit definition would not treated as equal because they are not the same instance.

hash() is used to return a scalar value to be used as the object's hash value, which determines where it goes in the hash table. While this value does not have to be unique, objects which are equal must have the same hash value.

equals() is used to determine if two objects are equal. It's guaranteed that the comparing object will be an instance of the same class as the subject.

Interface-Übersicht

Ds\Hashable {
/* Methoden */
abstract public equals ( object $obj ) : bool
abstract public hash ( ) : mixed
}

Inhaltsverzeichnis

  • Ds\Hashable::equals — Determines whether an object is equal to the current instance
  • Ds\Hashable::hash — Returns a scalar value to be used as a hash value


Determines whether an object is equal to the current instance

  • « Hashable
  • Ds\Hashable::hash »
  • PHP Manual
  • Hashable
  • Determines whether an object is equal to the current instance

Ds\Hashable::equals

(PECL ds >= 1.0.0)

Ds\Hashable::equals — Determines whether an object is equal to the current instance

Beschreibung

abstract public Ds\Hashable::equals ( object $obj ) : bool

Determines whether another object is equal to the current instance.

This method allows objects to be used as keys in structures such as Ds\Map and Ds\Set, or any other lookup structure that honors this interface.

Hinweis:

It's guaranteed that obj is an instance of the same class.

Achtung

It's important that objects which are equal also have the same hash value. See Ds\Hashable::hash().

Parameter-Liste

obj

The object to compare the current instance to, which is always an instance of the same class.

Rückgabewerte

true if equal, false otherwise.


Returns a scalar value to be used as a hash value

  • « Ds\Hashable::equals
  • Sequence »
  • PHP Manual
  • Hashable
  • Returns a scalar value to be used as a hash value

Ds\Hashable::hash

(PECL ds >= 1.0.0)

Ds\Hashable::hash — Returns a scalar value to be used as a hash value

Beschreibung

abstract public Ds\Hashable::hash ( ) : mixed

Returns a scalar value to be used as the hash value of the objects.

While the hash value does not define equality, all objects that are equal according to Ds\Hashable::equals() must have the same hash value. Hash values of equal objects don't have to be unique, for example you could just return true for all objects and nothing would break - the only implication would be that hash tables then turn into linked lists because all your objects will be hashed to the same bucket. It's therefore very important that you pick a good hash value, such as an ID or email address.

This method allows objects to be used as keys in structures such as Ds\Map and Ds\Set, or any other lookup structure that honors this interface.

Achtung

Do not pick a value that might change within the object, such as a public property. Hash table lookups would fail because the hash has changed.

Achtung

All objects that are equal must have the same hash value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A scalar value to be used as this object's hash value.

Beispiele

Beispiel #1 Ds\Hashable::hash() example

<?php
class HashableObject implements \Ds\Hashable
{
    private $name;
    private $email;

    public function __construct($name, $email)
    {
        $this->name  = $name;
        $this->email = $email;
    }

    /**
     * Should return the same value for all equal objects, but doesn't have to
     * be unique. This value will not be used to determine equality.
     */
    public function hash()
    {
        return $this->email;
    }

    /**
     * This determines equality, usually during a hash table lookup to determine
     * if the bucket's key matches the lookup key. The hash has to be equal if
     * the objects are equal, otherwise this determination wouldn't be reached.
     */
    public function equals($obj): bool
    {
        return $this->name  === $obj->name
            && $this->email === $obj->email;
    }
}
?>


The Sequence interface

(No version information available, might only be in Git)

Einführung

A Sequence describes the behaviour of values arranged in a single, linear dimension. Some languages refer to this as a "List". It’s similar to an array that uses incremental integer keys, with the exception of a few characteristics:

  • Values will always be indexed as [0, 1, 2, …, size - 1].
  • Only allowed to access values by index in the range [0, size - 1].

Use cases:

  • Wherever you would use an array as a list (not concerned with keys).
  • A more efficient alternative to SplDoublyLinkedList and SplFixedArray.

Interface-Übersicht

Ds\Sequence implements Ds\Collection , ArrayAccess {
/* Methoden */
abstract public allocate ( int $capacity ) : void
abstract public apply ( callable $callback ) : void
abstract public capacity ( ) : int
abstract public contains ( mixed ...$values ) : bool
abstract public filter ( callable $callback = ? ) : Ds\Sequence
abstract public find ( mixed $value ) : mixed
abstract public first ( ) : mixed
abstract public get ( int $index ) : mixed
abstract public insert ( int $index , mixed ...$values ) : void
abstract public join ( string $glue = ? ) : string
abstract public last ( ) : mixed
abstract public map ( callable $callback ) : Ds\Sequence
abstract public merge ( mixed $values ) : Ds\Sequence
abstract public pop ( ) : mixed
abstract public push ( mixed ...$values ) : void
abstract public reduce ( callable $callback , mixed $initial = ? ) : mixed
abstract public remove ( int $index ) : mixed
abstract public reverse ( ) : void
abstract public reversed ( ) : Ds\Sequence
abstract public rotate ( int $rotations ) : void
abstract public set ( int $index , mixed $value ) : void
abstract public shift ( ) : mixed
abstract public slice ( int $index , int $length = ? ) : Ds\Sequence
abstract public sort ( callable $comparator = ? ) : void
abstract public sorted ( callable $comparator = ? ) : Ds\Sequence
abstract public sum ( ) : int|float
abstract public unshift ( mixed $values = ? ) : void
}

Changelog

Version | Beschreibung
PECL ds 1.3.0 | The interface now extends ArrayAccess.

Inhaltsverzeichnis

  • Ds\Sequence::allocate — Allocates enough memory for a required capacity
  • Ds\Sequence::apply — Updates all values by applying a callback function to each value
  • Ds\Sequence::capacity — Returns the current capacity
  • Ds\Sequence::contains — Determines if the sequence contains given values
  • Ds\Sequence::filter — Creates a new sequence using a callable to determine which values to include
  • Ds\Sequence::find — Attempts to find a value's index
  • Ds\Sequence::first — Returns the first value in the sequence
  • Ds\Sequence::get — Returns the value at a given index
  • Ds\Sequence::insert — Inserts values at a given index
  • Ds\Sequence::join — Joins all values together as a string
  • Ds\Sequence::last — Returns the last value
  • Ds\Sequence::map — Returns the result of applying a callback to each value
  • Ds\Sequence::merge — Returns the result of adding all given values to the sequence
  • Ds\Sequence::pop — Removes and returns the last value
  • Ds\Sequence::push — Adds values to the end of the sequence
  • Ds\Sequence::reduce — Reduces the sequence to a single value using a callback function
  • Ds\Sequence::remove — Removes and returns a value by index
  • Ds\Sequence::reverse — Reverses the sequence in-place
  • Ds\Sequence::reversed — Returns a reversed copy
  • Ds\Sequence::rotate — Rotates the sequence by a given number of rotations
  • Ds\Sequence::set — Updates a value at a given index
  • Ds\Sequence::shift — Removes and returns the first value
  • Ds\Sequence::slice — Returns a sub-sequence of a given range
  • Ds\Sequence::sort — Sorts the sequence in-place
  • Ds\Sequence::sorted — Returns a sorted copy
  • Ds\Sequence::sum — Returns the sum of all values in the sequence
  • Ds\Sequence::unshift — Adds values to the front of the sequence


Allocates enough memory for a required capacity

  • « Sequence
  • Ds\Sequence::apply »
  • PHP Manual
  • Sequence
  • Allocates enough memory for a required capacity

Ds\Sequence::allocate

(PECL ds >= 1.0.0)

Ds\Sequence::allocate — Allocates enough memory for a required capacity

Beschreibung

abstract public Ds\Sequence::allocate ( int $capacity ) : void

Ensures that enough memory is allocated for a required capacity. This removes the need to reallocate the internal as values are added.

Parameter-Liste

capacity

The number of values for which capacity should be allocated.

Hinweis:

Capacity will stay the same if this value is less than or equal to the current capacity.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Sequence::allocate() example

<?php
$sequence = new \Ds\Vector();
var_dump($sequence->capacity());

$vector->allocate(100);
var_dump($sequence->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(10)
int(100)


Updates all values by applying a callback function to each value

  • « Ds\Sequence::allocate
  • Ds\Sequence::capacity »
  • PHP Manual
  • Sequence
  • Updates all values by applying a callback function to each value

Ds\Sequence::apply

(PECL ds >= 1.0.0)

Ds\Sequence::apply — Updates all values by applying a callback function to each value

Beschreibung

abstract public Ds\Sequence::apply ( callable $callback ) : void

Updates all values by applying a callback function to each value in the sequence.

Parameter-Liste

callback

callback ( mixed $value ) : mixed

A callable to apply to each value in the sequence.

The callback should return what the value should be replaced by.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Sequence::apply() example

<?php
$sequence = new \Ds\Sequence([1, 2, 3]);
$sequence->apply(function($value) { return $value * 2; });

print_r($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Returns the current capacity

  • « Ds\Sequence::apply
  • Ds\Sequence::contains »
  • PHP Manual
  • Sequence
  • Returns the current capacity

Ds\Sequence::capacity

(PECL ds >= 1.0.0)

Ds\Sequence::capacity — Returns the current capacity

Beschreibung

abstract public Ds\Sequence::capacity ( ) : int

Returns the current capacity.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current capacity.

Beispiele

Beispiel #1 Ds\Sequence::capacity() example

<?php
$sequence = new \Ds\Vector();
var_dump($sequence->capacity());

$sequence->push(...range(1, 50));
var_dump($sequence->capacity());

$sequence[] = "a";
var_dump($sequence->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(10)
int(50)
int(75)


Determines if the sequence contains given values

  • « Ds\Sequence::capacity
  • Ds\Sequence::filter »
  • PHP Manual
  • Sequence
  • Determines if the sequence contains given values

Ds\Sequence::contains

(PECL ds >= 1.0.0)

Ds\Sequence::contains — Determines if the sequence contains given values

Beschreibung

abstract public Ds\Sequence::contains ( mixed ...$values ) : bool

Determines if the sequence contains all values.

Parameter-Liste

values

Values to check.

Rückgabewerte

false if any of the provided values are not in the sequence, true otherwise.

Beispiele

Beispiel #1 Ds\Sequence::contains() example

<?php
$sequence = new \Ds\Vector(['a', 'b', 'c', 1, 2, 3]);

var_dump($sequence->contains('a'));                // true
var_dump($sequence->contains('a', 'b'));           // true
var_dump($sequence->contains('c', 'd'));           // false

var_dump($sequence->contains(...['c', 'b', 'a'])); // true

// Always strict
var_dump($sequence->contains(1));                  // true
var_dump($sequence->contains('1'));                // false

var_dump($sequece->contains(...[]));               // true
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Creates a new sequence using a callable to determine which values to include

  • « Ds\Sequence::contains
  • Ds\Sequence::find »
  • PHP Manual
  • Sequence
  • Creates a new sequence using a callable to determine which values to include

Ds\Sequence::filter

(PECL ds >= 1.0.0)

Ds\Sequence::filter — Creates a new sequence using a callable to determine which values to include

Beschreibung

abstract public Ds\Sequence::filter ( callable $callback = ? ) : Ds\Sequence

Creates a new sequence using a callable to determine which values to include.

Parameter-Liste

callback

callback ( mixed $value ) : bool

Optional callable which returns true if the value should be included, false otherwise.

If a callback is not provided, only values which are true (see converting to boolean) will be included.

Rückgabewerte

A new sequence containing all the values for which either the callback returned true, or all values that convert to true if a callback was not provided.

Beispiele

Beispiel #1 Ds\Sequence::filter() example using callback function

<?php
$sequence = new \Ds\Vector([1, 2, 3, 4, 5]);

var_dump($sequence->filter(function($value) {
    return $value % 2 == 0;
}));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Vector)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Beispiel #2 Ds\Sequence::filter() example without a callback function

<?php
$sequence = new \Ds\Vector([0, 1, 'a', true, false]);

var_dump($sequence->filter());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Attempts to find a value's index

  • « Ds\Sequence::filter
  • Ds\Sequence::first »
  • PHP Manual
  • Sequence
  • Attempts to find a value's index

Ds\Sequence::find

(PECL ds >= 1.0.0)

Ds\Sequence::find — Attempts to find a value's index

Beschreibung

abstract public Ds\Sequence::find ( mixed $value ) : mixed

Returns the index of the value, or false if not found.

Parameter-Liste

value

The value to find.

Rückgabewerte

The index of the value, or false if not found.

Hinweis:

Values will be compared by value and by type.

Beispiele

Beispiel #1 Ds\Sequence::find() example

<?php
$sequence = new \Ds\Vector(["a", 1, true]);

var_dump($sequence->find("a")); // 0
var_dump($sequence->find("b")); // false
var_dump($sequence->find("1")); // false
var_dump($sequence->find(1));   // 1
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(0)
bool(false)
bool(false)
int(1)


Returns the first value in the sequence

  • « Ds\Sequence::find
  • Ds\Sequence::get »
  • PHP Manual
  • Sequence
  • Returns the first value in the sequence

Ds\Sequence::first

(PECL ds >= 1.0.0)

Ds\Sequence::first — Returns the first value in the sequence

Beschreibung

abstract public Ds\Sequence::first ( ) : mixed

Returns the first value in the sequence.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The first value in the sequence.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Sequence::first() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->first());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)


Returns the value at a given index

  • « Ds\Sequence::first
  • Ds\Sequence::insert »
  • PHP Manual
  • Sequence
  • Returns the value at a given index

Ds\Sequence::get

(PECL ds >= 1.0.0)

Ds\Sequence::get — Returns the value at a given index

Beschreibung

abstract public Ds\Sequence::get ( int $index ) : mixed

Returns the value at a given index.

Parameter-Liste

index

The index to access, starting at 0.

Rückgabewerte

The value at the requested index.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Sequence::get() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->get(0));
var_dump($sequence->get(1));
var_dump($sequence->get(2));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"

Beispiel #2 Ds\Sequence::get() example using array syntax

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence[0]);
var_dump($sequence[1]);
var_dump($sequence[2]);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"


Inserts values at a given index

  • « Ds\Sequence::get
  • Ds\Sequence::join »
  • PHP Manual
  • Sequence
  • Inserts values at a given index

Ds\Sequence::insert

(PECL ds >= 1.0.0)

Ds\Sequence::insert — Inserts values at a given index

Beschreibung

abstract public Ds\Sequence::insert ( int $index , mixed ...$values ) : void

Inserts values into the sequence at a given index.

Parameter-Liste

index

The index at which to insert. 0 <= index <= count

Hinweis:

You can insert at the index equal to the number of values.

values

The value or values to insert.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Sequence::insert() example

<?php
$sequence = new \Ds\Vector();

$sequence->insert(0, "e");             // [e]
$sequence->insert(1, "f");             // [e, f]
$sequence->insert(2, "g");             // [e, f, g]
$sequence->insert(0, "a", "b");        // [a, b, e, f, g]
$sequence->insert(2, ...["c", "d"]);   // [a, b, c, d, e, f, g]

var_dump($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Vector)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Joins all values together as a string

  • « Ds\Sequence::insert
  • Ds\Sequence::last »
  • PHP Manual
  • Sequence
  • Joins all values together as a string

Ds\Sequence::join

(PECL ds >= 1.0.0)

Ds\Sequence::join — Joins all values together as a string

Beschreibung

abstract public Ds\Sequence::join ( string $glue = ? ) : string

Joins all values together as a string using an optional separator between each value.

Parameter-Liste

glue

An optional string to separate each value.

Rückgabewerte

All values of the sequence joined together as a string.

Beispiele

Beispiel #1 Ds\Sequence::join() example using a separator string

<?php
$sequence = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($sequence->join("|"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(11) "a|b|c|1|2|3"

Beispiel #2 Ds\Sequence::join() example without a separator string

<?php
$sequence = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($sequence->join());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(11) "abc123"


Returns the last value

  • « Ds\Sequence::join
  • Ds\Sequence::map »
  • PHP Manual
  • Sequence
  • Returns the last value

Ds\Sequence::last

(PECL ds >= 1.0.0)

Ds\Sequence::last — Returns the last value

Beschreibung

abstract public Ds\Sequence::last ( ) : mixed

Returns the last value in the sequence.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The last value in the sequence.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Sequence::last() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->last());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)


Returns the result of applying a callback to each value

  • « Ds\Sequence::last
  • Ds\Sequence::merge »
  • PHP Manual
  • Sequence
  • Returns the result of applying a callback to each value

Ds\Sequence::map

(PECL ds >= 1.0.0)

Ds\Sequence::map — Returns the result of applying a callback to each value

Beschreibung

abstract public Ds\Sequence::map ( callable $callback ) : Ds\Sequence

Returns the result of applying a callback function to each value in the sequence.

Parameter-Liste

callback

callback ( mixed $value ) : mixed

A callable to apply to each value in the sequence.

The callable should return what the new value will be in the new sequence.

Rückgabewerte

The result of applying a callback to each value in the sequence.

Hinweis:

The values of the current instance won't be affected.

Beispiele

Beispiel #1 Ds\Sequence::map() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

print_r($sequence->map(function($value) { return $value * 2; }));
print_r($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Returns the result of adding all given values to the sequence

  • « Ds\Sequence::map
  • Ds\Sequence::pop »
  • PHP Manual
  • Sequence
  • Returns the result of adding all given values to the sequence

Ds\Sequence::merge

(PECL ds >= 1.0.0)

Ds\Sequence::merge — Returns the result of adding all given values to the sequence

Beschreibung

abstract public Ds\Sequence::merge ( mixed $values ) : Ds\Sequence

Returns the result of adding all given values to the sequence.

Parameter-Liste

values

A traversable object or an Array.

Rückgabewerte

The result of adding all given values to the sequence, effectively the same as adding the values to a copy, then returning that copy.

Hinweis:

The current instance won't be affected.

Beispiele

Beispiel #1 Ds\Sequence::merge() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->merge([4, 5, 6]));
var_dump($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Vector)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Vector)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Removes and returns the last value

  • « Ds\Sequence::merge
  • Ds\Sequence::push »
  • PHP Manual
  • Sequence
  • Removes and returns the last value

Ds\Sequence::pop

(PECL ds >= 1.0.0)

Ds\Sequence::pop — Removes and returns the last value

Beschreibung

abstract public Ds\Sequence::pop ( ) : mixed

Removes and returns the last value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The removed last value.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Sequence::pop() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->pop());
var_dump($sequence->pop());
var_dump($sequence->pop());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)
int(2)
int(1)


Adds values to the end of the sequence

  • « Ds\Sequence::pop
  • Ds\Sequence::reduce »
  • PHP Manual
  • Sequence
  • Adds values to the end of the sequence

Ds\Sequence::push

(PECL ds >= 1.0.0)

Ds\Sequence::push — Adds values to the end of the sequence

Beschreibung

abstract public Ds\Sequence::push ( mixed ...$values ) : void

Adds values to the end of the sequence.

Parameter-Liste

values

The values to add.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Sequence::push() example

<?php
$sequence = new \Ds\Vector();

$sequence->push("a");
$sequence->push("b");
$sequence->push("c", "d");
$sequence->push(...["e", "f"]);

print_r($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Reduces the sequence to a single value using a callback function

  • « Ds\Sequence::push
  • Ds\Sequence::remove »
  • PHP Manual
  • Sequence
  • Reduces the sequence to a single value using a callback function

Ds\Sequence::reduce

(PECL ds >= 1.0.0)

Ds\Sequence::reduce — Reduces the sequence to a single value using a callback function

Beschreibung

abstract public Ds\Sequence::reduce ( callable $callback , mixed $initial = ? ) : mixed

Reduces the sequence to a single value using a callback function.

Parameter-Liste

callback
callback ( mixed $carry , mixed $value ) : mixed
carry

The return value of the previous callback, or initial if it's the first iteration.

value

The value of the current iteration.

initial

The initial value of the carry value. Can be null.

Rückgabewerte

The return value of the final callback.

Beispiele

Beispiel #1 Ds\Sequence::reduce() with initial value example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($sequence->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(30)

Beispiel #2 Ds\Sequence::reduce() without an initial value example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(21)


Removes and returns a value by index

  • « Ds\Sequence::reduce
  • Ds\Sequence::reverse »
  • PHP Manual
  • Sequence
  • Removes and returns a value by index

Ds\Sequence::remove

(PECL ds >= 1.0.0)

Ds\Sequence::remove — Removes and returns a value by index

Beschreibung

abstract public Ds\Sequence::remove ( int $index ) : mixed

Removes and returns a value by index.

Parameter-Liste

index

The index of the value to remove.

Rückgabewerte

The value that was removed.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Sequence::remove() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->remove(1));
var_dump($sequence->remove(0));
var_dump($sequence->remove(0));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "b"
string(1) "a"
string(1) "c"


Reverses the sequence in-place

  • « Ds\Sequence::remove
  • Ds\Sequence::reversed »
  • PHP Manual
  • Sequence
  • Reverses the sequence in-place

Ds\Sequence::reverse

(PECL ds >= 1.0.0)

Ds\Sequence::reverse — Reverses the sequence in-place

Beschreibung

abstract public Ds\Sequence::reverse ( ) : void

Reverses the sequence in-place.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Sequence::reverse() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);
$sequence->reverse();

print_r($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)


Returns a reversed copy

  • « Ds\Sequence::reverse
  • Ds\Sequence::rotate »
  • PHP Manual
  • Sequence
  • Returns a reversed copy

Ds\Sequence::reversed

(PECL ds >= 1.0.0)

Ds\Sequence::reversed — Returns a reversed copy

Beschreibung

abstract public Ds\Sequence::reversed ( ) : Ds\Sequence

Returns a reversed copy of the sequence.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A reversed copy of the sequence.

Hinweis:

The current instance is not affected.

Beispiele

Beispiel #1 Ds\Sequence::reversed() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

print_r($sequence->reversed());
print_r($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
)


Rotates the sequence by a given number of rotations

  • « Ds\Sequence::reversed
  • Ds\Sequence::set »
  • PHP Manual
  • Sequence
  • Rotates the sequence by a given number of rotations

Ds\Sequence::rotate

(PECL ds >= 1.0.0)

Ds\Sequence::rotate — Rotates the sequence by a given number of rotations

Beschreibung

abstract public Ds\Sequence::rotate ( int $rotations ) : void

Rotates the sequence by a given number of rotations, which is equivalent to successively calling $sequence->push($sequence->shift()) if the number of rotations is positive, or $sequence->unshift($sequence->pop()) if negative.

Parameter-Liste

rotations

The number of times the sequence should be rotated.

Rückgabewerte

Es wird kein Wert zurückgegeben.. The sequence of the current instance will be rotated.

Beispiele

Beispiel #1 Ds\Sequence::rotate() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c", "d"]);

$sequence->rotate(1);  // "a" is shifted, then pushed.
print_r($sequence);

$sequence->rotate(2);  // "b" and "c" are both shifted, the pushed.
print_r($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Vector Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Updates a value at a given index

  • « Ds\Sequence::rotate
  • Ds\Sequence::shift »
  • PHP Manual
  • Sequence
  • Updates a value at a given index

Ds\Sequence::set

(PECL ds >= 1.0.0)

Ds\Sequence::set — Updates a value at a given index

Beschreibung

abstract public Ds\Sequence::set ( int $index , mixed $value ) : void

Updates a value at a given index.

Parameter-Liste

index

The index of the value to update.

value

The new value.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Sequence::set() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

$sequence->set(1, "_");
print_r($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)

Beispiel #2 Ds\Sequence::set() example using array syntax

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

$sequence[1] = "_";
print_r($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)


Removes and returns the first value

  • « Ds\Sequence::set
  • Ds\Sequence::slice »
  • PHP Manual
  • Sequence
  • Removes and returns the first value

Ds\Sequence::shift

(PECL ds >= 1.0.0)

Ds\Sequence::shift — Removes and returns the first value

Beschreibung

abstract public Ds\Sequence::shift ( ) : mixed

Removes and returns the first value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The first value, which was removed.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Sequence::shift() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->shift());
var_dump($sequence->shift());
var_dump($sequence->shift());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"


Returns a sub-sequence of a given range

  • « Ds\Sequence::shift
  • Ds\Sequence::sort »
  • PHP Manual
  • Sequence
  • Returns a sub-sequence of a given range

Ds\Sequence::slice

(PECL ds >= 1.0.0)

Ds\Sequence::slice — Returns a sub-sequence of a given range

Beschreibung

abstract public Ds\Sequence::slice ( int $index , int $length = ? ) : Ds\Sequence

Creates a sub-sequence of a given range.

Parameter-Liste

index

The index at which the sub-sequence starts.

If positive, the sequence will start at that index in the sequence. If negative, the sequence will start that far from the end.

length

If a length is given and is positive, the resulting sequence will have up to that many values in it. If the length results in an overflow, only values up to the end of the sequence will be included. If a length is given and is negative, the sequence will stop that many values from the end. If a length is not provided, the resulting sequence will contain all values between the index and the end of the sequence.

Rückgabewerte

A sub-sequence of the given range.

Beispiele

Beispiel #1 Ds\Sequence::slice() example

<?php
$sequence = new \Ds\Vector(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($sequence->slice(2));

// Slice from 1, for a length of 3
print_r($sequence->slice(1, 3));

// Slice from 1 onwards
print_r($sequence->slice(1));

// Slice from 2 from the end onwards
print_r($sequence->slice(-2));

// Slice from 1 to 1 from the end
print_r($sequence->slice(1, -1));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Vector Object
(
    [0] => d
    [1] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)


Sorts the sequence in-place

  • « Ds\Sequence::slice
  • Ds\Sequence::sorted »
  • PHP Manual
  • Sequence
  • Sorts the sequence in-place

Ds\Sequence::sort

(PECL ds >= 1.0.0)

Ds\Sequence::sort — Sorts the sequence in-place

Beschreibung

abstract public Ds\Sequence::sort ( callable $comparator = ? ) : void

Sorts the sequence in-place, using an optional comparator function.

Parameter-Liste

comparator

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Sequence::sort() example

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);
$sequence->sort();

print_r($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Beispiel #2 Ds\Sequence::sort() example using a comparator

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

$sequence->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns a sorted copy

  • « Ds\Sequence::sort
  • Ds\Sequence::sum »
  • PHP Manual
  • Sequence
  • Returns a sorted copy

Ds\Sequence::sorted

(PECL ds >= 1.0.0)

Ds\Sequence::sorted — Returns a sorted copy

Beschreibung

abstract public Ds\Sequence::sorted ( callable $comparator = ? ) : Ds\Sequence

Returns a sorted copy, using an optional comparator function.

Parameter-Liste

comparator

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Rückgabewerte

Returns a sorted copy of the sequence.

Beispiele

Beispiel #1 Ds\Sequence::sorted() example

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

print_r($sequence->sorted());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Beispiel #2 Ds\Sequence::sorted() example using a comparator

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

$sorted = $sequence->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns the sum of all values in the sequence

  • « Ds\Sequence::sorted
  • Ds\Sequence::unshift »
  • PHP Manual
  • Sequence
  • Returns the sum of all values in the sequence

Ds\Sequence::sum

(PECL ds >= 1.0.0)

Ds\Sequence::sum — Returns the sum of all values in the sequence

Beschreibung

abstract public Ds\Sequence::sum ( ) : int|float

Returns the sum of all values in the sequence.

Hinweis:

Arrays and objects are considered equal to zero when calculating the sum.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The sum of all the values in the sequence as either a float or int depending on the values in the sequence.

Beispiele

Beispiel #1 Ds\Sequence::sum() integer example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->sum());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(6)

Beispiel #2 Ds\Sequence::sum() float example

<?php
$sequence = new \Ds\Vector([1, 2.5, 3]);
var_dump($sequence->sum());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

float(6.5)


Adds values to the front of the sequence

  • « Ds\Sequence::sum
  • Vector »
  • PHP Manual
  • Sequence
  • Adds values to the front of the sequence

Ds\Sequence::unshift

(PECL ds >= 1.0.0)

Ds\Sequence::unshift — Adds values to the front of the sequence

Beschreibung

abstract public Ds\Sequence::unshift ( mixed $values = ? ) : void

Adds values to the front of the sequence, moving all the current values forward to make room for the new values.

Parameter-Liste

values

The values to add to the front of the sequence.

Hinweis:

Multiple values will be added in the same order that they are passed.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Sequence::unshift() example

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

$sequence->unshift("a");
$sequence->unshift("b", "c");

print_r($sequence);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


The Vector class

(No version information available, might only be in Git)

Einführung

A Vector is a sequence of values in a contiguous buffer that grows and shrinks automatically. It’s the most efficient sequential structure because a value’s index is a direct mapping to its index in the buffer, and the growth factor isn't bound to a specific multiple or exponent.

Strengths

  • Supports array syntax (square brackets).
  • Uses less overall memory than an Array for the same number of values.
  • Automatically frees allocated memory when its size drops low enough.
  • Capacity does not have to be a power of 2.
  • get(),
set(),
push(),
pop() are all O(1).

Weaknesses

  • shift(),
unshift(),
insert() and
remove() are all O(n).

Klassenbeschreibung

Ds\Vector implements Ds\Sequence , ArrayAccess {
/* Constants */
const int MIN_CAPACITY = 10 ;
/* Methoden */
public allocate ( int $capacity ) : void
public apply ( callable $callback ) : void
public capacity ( ) : int
public clear ( ) : void
public contains ( mixed ...$values ) : bool
public copy ( ) : Ds\Vector
public filter ( callable $callback = ? ) : Ds\Vector
public find ( mixed $value ) : mixed
public first ( ) : mixed
public get ( int $index ) : mixed
public insert ( int $index , mixed ...$values ) : void
public isEmpty ( ) : bool
public join ( string $glue = ? ) : string
public last ( ) : mixed
public map ( callable $callback ) : Ds\Vector
public merge ( mixed $values ) : Ds\Vector
public pop ( ) : mixed
public push ( mixed ...$values ) : void
public reduce ( callable $callback , mixed $initial = ? ) : mixed
public remove ( int $index ) : mixed
public reverse ( ) : void
public reversed ( ) : Ds\Vector
public rotate ( int $rotations ) : void
public set ( int $index , mixed $value ) : void
public shift ( ) : mixed
public slice ( int $index , int $length = ? ) : Ds\Vector
public sort ( callable $comparator = ? ) : void
public sorted ( callable $comparator = ? ) : Ds\Vector
public sum ( ) : int|float
public toArray ( ) : array
public unshift ( mixed $values = ? ) : void
}

Vordefinierte Konstanten

Ds\Vector::MIN_CAPACITY

Changelog

Version | Beschreibung
PECL ds 1.3.0 | The class now implements ArrayAccess.

Inhaltsverzeichnis

  • Ds\Vector::allocate — Allocates enough memory for a required capacity
  • Ds\Vector::apply — Updates all values by applying a callback function to each value
  • Ds\Vector::capacity — Returns the current capacity
  • Ds\Vector::clear — Removes all values
  • Ds\Vector::__construct — Creates a new instance
  • Ds\Vector::contains — Determines if the vector contains given values
  • Ds\Vector::copy — Returns a shallow copy of the vector
  • Ds\Vector::count — Returns the number of values in the collection
  • Ds\Vector::filter — Creates a new vector using a callable to determine which values to include
  • Ds\Vector::find — Attempts to find a value's index
  • Ds\Vector::first — Returns the first value in the vector
  • Ds\Vector::get — Returns the value at a given index
  • Ds\Vector::insert — Inserts values at a given index
  • Ds\Vector::isEmpty — Returns whether the vector is empty
  • Ds\Vector::join — Joins all values together as a string
  • Ds\Vector::jsonSerialize — Returns a representation that can be converted to JSON
  • Ds\Vector::last — Returns the last value
  • Ds\Vector::map — Returns the result of applying a callback to each value
  • Ds\Vector::merge — Returns the result of adding all given values to the vector
  • Ds\Vector::pop — Removes and returns the last value
  • Ds\Vector::push — Adds values to the end of the vector
  • Ds\Vector::reduce — Reduces the vector to a single value using a callback function
  • Ds\Vector::remove — Removes and returns a value by index
  • Ds\Vector::reverse — Reverses the vector in-place
  • Ds\Vector::reversed — Returns a reversed copy
  • Ds\Vector::rotate — Rotates the vector by a given number of rotations
  • Ds\Vector::set — Updates a value at a given index
  • Ds\Vector::shift — Removes and returns the first value
  • Ds\Vector::slice — Returns a sub-vector of a given range
  • Ds\Vector::sort — Sorts the vector in-place
  • Ds\Vector::sorted — Returns a sorted copy
  • Ds\Vector::sum — Returns the sum of all values in the vector
  • Ds\Vector::toArray — Converts the vector to an Array
  • Ds\Vector::unshift — Adds values to the front of the vector


Allocates enough memory for a required capacity

  • « Vector
  • Ds\Vector::apply »
  • PHP Manual
  • Vector
  • Allocates enough memory for a required capacity

Ds\Vector::allocate

(PECL ds >= 1.0.0)

Ds\Vector::allocate — Allocates enough memory for a required capacity

Beschreibung

public Ds\Vector::allocate ( int $capacity ) : void

Ensures that enough memory is allocated for a required capacity. This removes the need to reallocate the internal as values are added.

Parameter-Liste

capacity

The number of values for which capacity should be allocated.

Hinweis:

Capacity will stay the same if this value is less than or equal to the current capacity.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Vector::allocate() example

<?php
$vector = new \Ds\Vector();
var_dump($vector->capacity());

$vector->allocate(100);
var_dump($vector->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(10)
int(100)


Updates all values by applying a callback function to each value

  • « Ds\Vector::allocate
  • Ds\Vector::capacity »
  • PHP Manual
  • Vector
  • Updates all values by applying a callback function to each value

Ds\Vector::apply

(PECL ds >= 1.0.0)

Ds\Vector::apply — Updates all values by applying a callback function to each value

Beschreibung

public Ds\Vector::apply ( callable $callback ) : void

Updates all values by applying a callback function to each value in the vector.

Parameter-Liste

callback

callback ( mixed $value ) : mixed

A callable to apply to each value in the vector.

The callback should return what the value should be replaced by.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Vector::apply() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);
$vector->apply(function($value) { return $value * 2; });

print_r($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Returns the current capacity

  • « Ds\Vector::apply
  • Ds\Vector::clear »
  • PHP Manual
  • Vector
  • Returns the current capacity

Ds\Vector::capacity

(PECL ds >= 1.0.0)

Ds\Vector::capacity — Returns the current capacity

Beschreibung

public Ds\Vector::capacity ( ) : int

Returns the current capacity.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current capacity.

Beispiele

Beispiel #1 Ds\Vector::capacity() example

<?php
$vector = new \Ds\Vector();
var_dump($vector->capacity());

$vector->push(...range(1, 50));
var_dump($vector->capacity());

$vector[] = "a";
var_dump($vector->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(10)
int(50)
int(75)


Removes all values

  • « Ds\Vector::capacity
  • Ds\Vector::__construct »
  • PHP Manual
  • Vector
  • Removes all values

Ds\Vector::clear

(PECL ds >= 1.0.0)

Ds\Vector::clear — Removes all values

Beschreibung

public Ds\Vector::clear ( ) : void

Removes all values from the vector.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Vector::clear() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);
print_r($vector);

$vector->clear();
print_r($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
)


Creates a new instance

  • « Ds\Vector::clear
  • Ds\Vector::contains »
  • PHP Manual
  • Vector
  • Creates a new instance

Ds\Vector::__construct

(PECL ds >= 1.0.0)

Ds\Vector::__construct — Creates a new instance

Beschreibung

public Ds\Vector::__construct ( mixed $values = ? )

Creates a new instance, using either a traversable object or an Array for the initial values.

Parameter-Liste

values

A traversable object or an Array to use for the initial values.

Beispiele

Beispiel #1 Ds\Vector::__construct() example

<?php
$vector = new \Ds\Vector();
var_dump($vector);

$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Vector)#2 (0) {
}
object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Determines if the vector contains given values

  • « Ds\Vector::__construct
  • Ds\Vector::copy »
  • PHP Manual
  • Vector
  • Determines if the vector contains given values

Ds\Vector::contains

(PECL ds >= 1.0.0)

Ds\Vector::contains — Determines if the vector contains given values

Beschreibung

public Ds\Vector::contains ( mixed ...$values ) : bool

Determines if the vector contains all values.

Parameter-Liste

values

Values to check.

Rückgabewerte

false if any of the provided values are not in the vector, true otherwise.

Beispiele

Beispiel #1 Ds\Vector::contains() example

<?php
$vector = new \Ds\Vector(['a', 'b', 'c', 1, 2, 3]);

var_dump($vector->contains('a'));                // true
var_dump($vector->contains('a', 'b'));           // true
var_dump($vector->contains('c', 'd'));           // false

var_dump($vector->contains(...['c', 'b', 'a'])); // true

// Always strict
var_dump($vector->contains(1));                  // true
var_dump($vector->contains('1'));                // false

var_dump($sequece->contains(...[]));               // true
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Returns a shallow copy of the vector

  • « Ds\Vector::contains
  • Ds\Vector::count »
  • PHP Manual
  • Vector
  • Returns a shallow copy of the vector

Ds\Vector::copy

(PECL ds >= 1.0.0)

Ds\Vector::copy — Returns a shallow copy of the vector

Beschreibung

public Ds\Vector::copy ( ) : Ds\Vector

Returns a shallow copy of the vector.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a shallow copy of the vector.

Beispiele

Beispiel #1 Ds\Vector::copy() example

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = $a->copy();

// Updating the copy doesn't affect the original
$b->push(4);

print_r($a);
print_r($b);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Returns the number of values in the collection

  • « Ds\Vector::copy
  • Ds\Vector::filter »
  • PHP Manual
  • Vector
  • Returns the number of values in the collection

Ds\Vector::count

(PECL ds >= 1.0.0)

Ds\Vector::count — Returns the number of values in the collection

See Countable::count()


Creates a new vector using a callable to determine which values to include

  • « Ds\Vector::count
  • Ds\Vector::find »
  • PHP Manual
  • Vector
  • Creates a new vector using a callable to determine which values to include

Ds\Vector::filter

(PECL ds >= 1.0.0)

Ds\Vector::filter — Creates a new vector using a callable to determine which values to include

Beschreibung

public Ds\Vector::filter ( callable $callback = ? ) : Ds\Vector

Creates a new vector using a callable to determine which values to include.

Parameter-Liste

callback

callback ( mixed $value ) : bool

Optional callable which returns true if the value should be included, false otherwise.

If a callback is not provided, only values which are true (see converting to boolean) will be included.

Rückgabewerte

A new vector containing all the values for which either the callback returned true, or all values that convert to true if a callback was not provided.

Beispiele

Beispiel #1 Ds\Vector::filter() example using callback function

<?php
$vector = new \Ds\Vector([1, 2, 3, 4, 5]);

var_dump($vector->filter(function($value) {
    return $value % 2 == 0;
}));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Vector)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Beispiel #2 Ds\Vector::filter() example without a callback function

<?php
$vector = new \Ds\Vector([0, 1, 'a', true, false]);

var_dump($vector->filter());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Attempts to find a value's index

  • « Ds\Vector::filter
  • Ds\Vector::first »
  • PHP Manual
  • Vector
  • Attempts to find a value's index

Ds\Vector::find

(PECL ds >= 1.0.0)

Ds\Vector::find — Attempts to find a value's index

Beschreibung

public Ds\Vector::find ( mixed $value ) : mixed

Returns the index of the value, or false if not found.

Parameter-Liste

value

The value to find.

Rückgabewerte

The index of the value, or false if not found.

Hinweis:

Values will be compared by value and by type.

Beispiele

Beispiel #1 Ds\Vector::find() example

<?php
$vector = new \Ds\Vector(["a", 1, true]);

var_dump($vector->find("a")); // 0
var_dump($vector->find("b")); // false
var_dump($vector->find("1")); // false
var_dump($vector->find(1));   // 1
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(0)
bool(false)
bool(false)
int(1)


Returns the first value in the vector

  • « Ds\Vector::find
  • Ds\Vector::get »
  • PHP Manual
  • Vector
  • Returns the first value in the vector

Ds\Vector::first

(PECL ds >= 1.0.0)

Ds\Vector::first — Returns the first value in the vector

Beschreibung

public Ds\Vector::first ( ) : mixed

Returns the first value in the vector.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The first value in the vector.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Vector::first() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->first());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)


Returns the value at a given index

  • « Ds\Vector::first
  • Ds\Vector::insert »
  • PHP Manual
  • Vector
  • Returns the value at a given index

Ds\Vector::get

(PECL ds >= 1.0.0)

Ds\Vector::get — Returns the value at a given index

Beschreibung

public Ds\Vector::get ( int $index ) : mixed

Returns the value at a given index.

Parameter-Liste

index

The index to access, starting at 0.

Rückgabewerte

The value at the requested index.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Vector::get() example

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->get(0));
var_dump($vector->get(1));
var_dump($vector->get(2));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"

Beispiel #2 Ds\Vector::get() example using array syntax

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector[0]);
var_dump($vector[1]);
var_dump($vector[2]);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"


Inserts values at a given index

  • « Ds\Vector::get
  • Ds\Vector::isEmpty »
  • PHP Manual
  • Vector
  • Inserts values at a given index

Ds\Vector::insert

(PECL ds >= 1.0.0)

Ds\Vector::insert — Inserts values at a given index

Beschreibung

public Ds\Vector::insert ( int $index , mixed ...$values ) : void

Inserts values into the vector at a given index.

Parameter-Liste

index

The index at which to insert. 0 <= index <= count

Hinweis:

You can insert at the index equal to the number of values.

values

The value or values to insert.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Vector::insert() example

<?php
$vector = new \Ds\Vector();

$vector->insert(0, "e");             // [e]
$vector->insert(1, "f");             // [e, f]
$vector->insert(2, "g");             // [e, f, g]
$vector->insert(0, "a", "b");        // [a, b, e, f, g]
$vector->insert(2, ...["c", "d"]);   // [a, b, c, d, e, f, g]

var_dump($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Vector)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Returns whether the vector is empty

  • « Ds\Vector::insert
  • Ds\Vector::join »
  • PHP Manual
  • Vector
  • Returns whether the vector is empty

Ds\Vector::isEmpty

(PECL ds >= 1.0.0)

Ds\Vector::isEmpty — Returns whether the vector is empty

Beschreibung

public Ds\Vector::isEmpty ( ) : bool

Returns whether the vector is empty.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the vector is empty, false otherwise.

Beispiele

Beispiel #1 Ds\Vector::isEmpty() example

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = new \Ds\Vector();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)


Joins all values together as a string

  • « Ds\Vector::isEmpty
  • Ds\Vector::jsonSerialize »
  • PHP Manual
  • Vector
  • Joins all values together as a string

Ds\Vector::join

(PECL ds >= 1.0.0)

Ds\Vector::join — Joins all values together as a string

Beschreibung

public Ds\Vector::join ( string $glue = ? ) : string

Joins all values together as a string using an optional separator between each value.

Parameter-Liste

glue

An optional string to separate each value.

Rückgabewerte

All values of the vector joined together as a string.

Beispiele

Beispiel #1 Ds\Vector::join() example using a separator string

<?php
$vector = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($vector->join("|"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(11) "a|b|c|1|2|3"

Beispiel #2 Ds\Vector::join() example without a separator string

<?php
$vector = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($vector->join());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(11) "abc123"


Returns a representation that can be converted to JSON

  • « Ds\Vector::join
  • Ds\Vector::last »
  • PHP Manual
  • Vector
  • Returns a representation that can be converted to JSON

Ds\Vector::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Vector::jsonSerialize — Returns a representation that can be converted to JSON

See JsonSerializable::jsonSerialize()

Hinweis:

You should never need to call this directly.


Returns the last value

  • « Ds\Vector::jsonSerialize
  • Ds\Vector::map »
  • PHP Manual
  • Vector
  • Returns the last value

Ds\Vector::last

(PECL ds >= 1.0.0)

Ds\Vector::last — Returns the last value

Beschreibung

public Ds\Vector::last ( ) : mixed

Returns the last value in the vector.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The last value in the vector.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Vector::last() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->last());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)


Returns the result of applying a callback to each value

  • « Ds\Vector::last
  • Ds\Vector::merge »
  • PHP Manual
  • Vector
  • Returns the result of applying a callback to each value

Ds\Vector::map

(PECL ds >= 1.0.0)

Ds\Vector::map — Returns the result of applying a callback to each value

Beschreibung

public Ds\Vector::map ( callable $callback ) : Ds\Vector

Returns the result of applying a callback function to each value in the vector.

Parameter-Liste

callback

callback ( mixed $value ) : mixed

A callable to apply to each value in the vector.

The callable should return what the new value will be in the new vector.

Rückgabewerte

The result of applying a callback to each value in the vector.

Hinweis:

The values of the current instance won't be affected.

Beispiele

Beispiel #1 Ds\Vector::map() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

print_r($vector->map(function($value) { return $value * 2; }));
print_r($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Returns the result of adding all given values to the vector

  • « Ds\Vector::map
  • Ds\Vector::pop »
  • PHP Manual
  • Vector
  • Returns the result of adding all given values to the vector

Ds\Vector::merge

(PECL ds >= 1.0.0)

Ds\Vector::merge — Returns the result of adding all given values to the vector

Beschreibung

public Ds\Vector::merge ( mixed $values ) : Ds\Vector

Returns the result of adding all given values to the vector.

Parameter-Liste

values

A traversable object or an Array.

Rückgabewerte

The result of adding all given values to the vector, effectively the same as adding the values to a copy, then returning that copy.

Hinweis:

The current instance won't be affected.

Beispiele

Beispiel #1 Ds\Vector::merge() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->merge([4, 5, 6]));
var_dump($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Vector)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Vector)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Removes and returns the last value

  • « Ds\Vector::merge
  • Ds\Vector::push »
  • PHP Manual
  • Vector
  • Removes and returns the last value

Ds\Vector::pop

(PECL ds >= 1.0.0)

Ds\Vector::pop — Removes and returns the last value

Beschreibung

public Ds\Vector::pop ( ) : mixed

Removes and returns the last value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The removed last value.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Vector::pop() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->pop());
var_dump($vector->pop());
var_dump($vector->pop());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)
int(2)
int(1)


Adds values to the end of the vector

  • « Ds\Vector::pop
  • Ds\Vector::reduce »
  • PHP Manual
  • Vector
  • Adds values to the end of the vector

Ds\Vector::push

(PECL ds >= 1.0.0)

Ds\Vector::push — Adds values to the end of the vector

Beschreibung

public Ds\Vector::push ( mixed ...$values ) : void

Adds values to the end of the vector.

Parameter-Liste

values

The values to add.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Vector::push() example

<?php
$vector = new \Ds\Vector();

$vector->push("a");
$vector->push("b");
$vector->push("c", "d");
$vector->push(...["e", "f"]);

print_r($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Reduces the vector to a single value using a callback function

  • « Ds\Vector::push
  • Ds\Vector::remove »
  • PHP Manual
  • Vector
  • Reduces the vector to a single value using a callback function

Ds\Vector::reduce

(PECL ds >= 1.0.0)

Ds\Vector::reduce — Reduces the vector to a single value using a callback function

Beschreibung

public Ds\Vector::reduce ( callable $callback , mixed $initial = ? ) : mixed

Reduces the vector to a single value using a callback function.

Parameter-Liste

callback
callback ( mixed $carry , mixed $value ) : mixed
carry

The return value of the previous callback, or initial if it's the first iteration.

value

The value of the current iteration.

initial

The initial value of the carry value. Can be null.

Rückgabewerte

The return value of the final callback.

Beispiele

Beispiel #1 Ds\Vector::reduce() with initial value example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($vector->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(30)

Beispiel #2 Ds\Vector::reduce() without an initial value example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(21)


Removes and returns a value by index

  • « Ds\Vector::reduce
  • Ds\Vector::reverse »
  • PHP Manual
  • Vector
  • Removes and returns a value by index

Ds\Vector::remove

(PECL ds >= 1.0.0)

Ds\Vector::remove — Removes and returns a value by index

Beschreibung

public Ds\Vector::remove ( int $index ) : mixed

Removes and returns a value by index.

Parameter-Liste

index

The index of the value to remove.

Rückgabewerte

The value that was removed.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Vector::remove() example

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->remove(1));
var_dump($vector->remove(0));
var_dump($vector->remove(0));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "b"
string(1) "a"
string(1) "c"


Reverses the vector in-place

  • « Ds\Vector::remove
  • Ds\Vector::reversed »
  • PHP Manual
  • Vector
  • Reverses the vector in-place

Ds\Vector::reverse

(PECL ds >= 1.0.0)

Ds\Vector::reverse — Reverses the vector in-place

Beschreibung

public Ds\Vector::reverse ( ) : void

Reverses the vector in-place.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Vector::reverse() example

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);
$vector->reverse();

print_r($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)


Returns a reversed copy

  • « Ds\Vector::reverse
  • Ds\Vector::rotate »
  • PHP Manual
  • Vector
  • Returns a reversed copy

Ds\Vector::reversed

(PECL ds >= 1.0.0)

Ds\Vector::reversed — Returns a reversed copy

Beschreibung

public Ds\Vector::reversed ( ) : Ds\Vector

Returns a reversed copy of the vector.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A reversed copy of the vector.

Hinweis:

The current instance is not affected.

Beispiele

Beispiel #1 Ds\Vector::reversed() example

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

print_r($vector->reversed());
print_r($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
)


Rotates the vector by a given number of rotations

  • « Ds\Vector::reversed
  • Ds\Vector::set »
  • PHP Manual
  • Vector
  • Rotates the vector by a given number of rotations

Ds\Vector::rotate

(PECL ds >= 1.0.0)

Ds\Vector::rotate — Rotates the vector by a given number of rotations

Beschreibung

public Ds\Vector::rotate ( int $rotations ) : void

Rotates the vector by a given number of rotations, which is equivalent to successively calling $vector->push($vector->shift()) if the number of rotations is positive, or $vector->unshift($vector->pop()) if negative.

Parameter-Liste

rotations

The number of times the vector should be rotated.

Rückgabewerte

Es wird kein Wert zurückgegeben.. The vector of the current instance will be rotated.

Beispiele

Beispiel #1 Ds\Vector::rotate() example

<?php
$vector = new \Ds\Vector(["a", "b", "c", "d"]);

$vector->rotate(1);  // "a" is shifted, then pushed.
print_r($vector);

$vector->rotate(2);  // "b" and "c" are both shifted, the pushed.
print_r($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Vector Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Updates a value at a given index

  • « Ds\Vector::rotate
  • Ds\Vector::shift »
  • PHP Manual
  • Vector
  • Updates a value at a given index

Ds\Vector::set

(PECL ds >= 1.0.0)

Ds\Vector::set — Updates a value at a given index

Beschreibung

public Ds\Vector::set ( int $index , mixed $value ) : void

Updates a value at a given index.

Parameter-Liste

index

The index of the value to update.

value

The new value.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Vector::set() example

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

$vector->set(1, "_");
print_r($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)

Beispiel #2 Ds\Vector::set() example using array syntax

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

$vector[1] = "_";
print_r($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)


Removes and returns the first value

  • « Ds\Vector::set
  • Ds\Vector::slice »
  • PHP Manual
  • Vector
  • Removes and returns the first value

Ds\Vector::shift

(PECL ds >= 1.0.0)

Ds\Vector::shift — Removes and returns the first value

Beschreibung

public Ds\Vector::shift ( ) : mixed

Removes and returns the first value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The first value, which was removed.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Vector::shift() example

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->shift());
var_dump($vector->shift());
var_dump($vector->shift());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"


Returns a sub-vector of a given range

  • « Ds\Vector::shift
  • Ds\Vector::sort »
  • PHP Manual
  • Vector
  • Returns a sub-vector of a given range

Ds\Vector::slice

(PECL ds >= 1.0.0)

Ds\Vector::slice — Returns a sub-vector of a given range

Beschreibung

public Ds\Vector::slice ( int $index , int $length = ? ) : Ds\Vector

Creates a sub-vector of a given range.

Parameter-Liste

index

The index at which the sub-vector starts.

If positive, the vector will start at that index in the vector. If negative, the vector will start that far from the end.

length

If a length is given and is positive, the resulting vector will have up to that many values in it. If the length results in an overflow, only values up to the end of the vector will be included. If a length is given and is negative, the vector will stop that many values from the end. If a length is not provided, the resulting vector will contain all values between the index and the end of the vector.

Rückgabewerte

A sub-vector of the given range.

Beispiele

Beispiel #1 Ds\Vector::slice() example

<?php
$vector = new \Ds\Vector(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($vector->slice(2));

// Slice from 1, for a length of 3
print_r($vector->slice(1, 3));

// Slice from 1 onwards
print_r($vector->slice(1));

// Slice from 2 from the end onwards
print_r($vector->slice(-2));

// Slice from 1 to 1 from the end
print_r($vector->slice(1, -1));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Vector Object
(
    [0] => d
    [1] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)


Sorts the vector in-place

  • « Ds\Vector::slice
  • Ds\Vector::sorted »
  • PHP Manual
  • Vector
  • Sorts the vector in-place

Ds\Vector::sort

(PECL ds >= 1.0.0)

Ds\Vector::sort — Sorts the vector in-place

Beschreibung

public Ds\Vector::sort ( callable $comparator = ? ) : void

Sorts the vector in-place, using an optional comparator function.

Parameter-Liste

comparator

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Vector::sort() example

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);
$vector->sort();

print_r($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Beispiel #2 Ds\Vector::sort() example using a comparator

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

$vector->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns a sorted copy

  • « Ds\Vector::sort
  • Ds\Vector::sum »
  • PHP Manual
  • Vector
  • Returns a sorted copy

Ds\Vector::sorted

(PECL ds >= 1.0.0)

Ds\Vector::sorted — Returns a sorted copy

Beschreibung

public Ds\Vector::sorted ( callable $comparator = ? ) : Ds\Vector

Returns a sorted copy, using an optional comparator function.

Parameter-Liste

comparator

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Rückgabewerte

Returns a sorted copy of the vector.

Beispiele

Beispiel #1 Ds\Vector::sorted() example

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

print_r($vector->sorted());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Beispiel #2 Ds\Vector::sorted() example using a comparator

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

$sorted = $vector->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns the sum of all values in the vector

  • « Ds\Vector::sorted
  • Ds\Vector::toArray »
  • PHP Manual
  • Vector
  • Returns the sum of all values in the vector

Ds\Vector::sum

(PECL ds >= 1.0.0)

Ds\Vector::sum — Returns the sum of all values in the vector

Beschreibung

public Ds\Vector::sum ( ) : int|float

Returns the sum of all values in the vector.

Hinweis:

Arrays and objects are considered equal to zero when calculating the sum.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The sum of all the values in the vector as either a float or int depending on the values in the vector.

Beispiele

Beispiel #1 Ds\Vector::sum() integer example

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->sum());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(6)

Beispiel #2 Ds\Vector::sum() float example

<?php
$vector = new \Ds\Vector([1, 2.5, 3]);
var_dump($vector->sum());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

float(6.5)


Converts the vector to an Array

  • « Ds\Vector::sum
  • Ds\Vector::unshift »
  • PHP Manual
  • Vector
  • Converts the vector to an Array

Ds\Vector::toArray

(PECL ds >= 1.0.0)

Ds\Vector::toArray — Converts the vector to an Array

Beschreibung

public Ds\Vector::toArray ( ) : array

Converts the vector to an Array.

Hinweis:

Casting to an Array is not supported yet.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An Array containing all the values in the same order as the vector.

Beispiele

Beispiel #1 Ds\Vector::toArray() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->toArray());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Adds values to the front of the vector

  • « Ds\Vector::toArray
  • Deque »
  • PHP Manual
  • Vector
  • Adds values to the front of the vector

Ds\Vector::unshift

(PECL ds >= 1.0.0)

Ds\Vector::unshift — Adds values to the front of the vector

Beschreibung

public Ds\Vector::unshift ( mixed $values = ? ) : void

Adds values to the front of the vector, moving all the current values forward to make room for the new values.

Parameter-Liste

values

The values to add to the front of the vector.

Hinweis:

Multiple values will be added in the same order that they are passed.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Vector::unshift() example

<?php
$vector = new \Ds\Vector([1, 2, 3]);

$vector->unshift("a");
$vector->unshift("b", "c");

print_r($vector);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


The Deque class

(No version information available, might only be in Git)

Einführung

A Deque (pronounced “deck”) is a sequence of values in a contiguous buffer that grows and shrinks automatically. The name is a common abbreviation of “double-ended queue” and is used internally by Ds\Queue.

Two pointers are used to keep track of a head and a tail. The pointers can “wrap around” the end of the buffer, which avoids the need to move other values around to make room. This makes shift and unshift very fast?—? something a Ds\Vector can’t compete with.

Accessing a value by index requires a translation between the index and its corresponding position in the buffer: ((head + position) % capacity).

Strengths

  • Supports array syntax (square brackets).
  • Uses less overall memory than an Array for the same number of values.
  • Automatically frees allocated memory when its size drops low enough.
  • get(),
set(),
push(),
pop(),
shift(), and
unshift() are all O(1).

Weaknesses

  • Capacity must be a power of 2.
  • insert() and remove() are O(n).

Klassenbeschreibung

Ds\Deque implements Ds\Sequence , ArrayAccess {
/* Constants */
const int MIN_CAPACITY = 8 ;
/* Methoden */
public allocate ( int $capacity ) : void
public apply ( callable $callback ) : void
public capacity ( ) : int
public clear ( ) : void
public contains ( mixed ...$values ) : bool
public copy ( ) : Ds\Deque
public filter ( callable $callback = ? ) : Ds\Deque
public find ( mixed $value ) : mixed
public first ( ) : mixed
public get ( int $index ) : mixed
public insert ( int $index , mixed ...$values ) : void
public isEmpty ( ) : bool
public join ( string $glue = ? ) : string
public last ( ) : mixed
public map ( callable $callback ) : Ds\Deque
public merge ( mixed $values ) : Ds\Deque
public pop ( ) : mixed
public push ( mixed ...$values ) : void
public reduce ( callable $callback , mixed $initial = ? ) : mixed
public remove ( int $index ) : mixed
public reverse ( ) : void
public reversed ( ) : Ds\Deque
public rotate ( int $rotations ) : void
public set ( int $index , mixed $value ) : void
public shift ( ) : mixed
public slice ( int $index , int $length = ? ) : Ds\Deque
public sort ( callable $comparator = ? ) : void
public sorted ( callable $comparator = ? ) : Ds\Deque
public sum ( ) : int|float
public toArray ( ) : array
public unshift ( mixed $values = ? ) : void
}

Vordefinierte Konstanten

Ds\Deque::MIN_CAPACITY

Changelog

Version | Beschreibung
PECL ds 1.3.0 | The class now implements ArrayAccess.

Inhaltsverzeichnis

  • Ds\Deque::allocate — Allocates enough memory for a required capacity
  • Ds\Deque::apply — Updates all values by applying a callback function to each value
  • Ds\Deque::capacity — Returns the current capacity
  • Ds\Deque::clear — Removes all values from the deque
  • Ds\Deque::__construct — Creates a new instance
  • Ds\Deque::contains — Determines if the deque contains given values
  • Ds\Deque::copy — Returns a shallow copy of the deque
  • Ds\Deque::count — Returns the number of values in the collection
  • Ds\Deque::filter — Creates a new deque using a callable to determine which values to include
  • Ds\Deque::find — Attempts to find a value's index
  • Ds\Deque::first — Returns the first value in the deque
  • Ds\Deque::get — Returns the value at a given index
  • Ds\Deque::insert — Inserts values at a given index
  • Ds\Deque::isEmpty — Returns whether the deque is empty
  • Ds\Deque::join — Joins all values together as a string
  • Ds\Deque::jsonSerialize — Returns a representation that can be converted to JSON
  • Ds\Deque::last — Returns the last value
  • Ds\Deque::map — Returns the result of applying a callback to each value
  • Ds\Deque::merge — Returns the result of adding all given values to the deque
  • Ds\Deque::pop — Removes and returns the last value
  • Ds\Deque::push — Adds values to the end of the deque
  • Ds\Deque::reduce — Reduces the deque to a single value using a callback function
  • Ds\Deque::remove — Removes and returns a value by index
  • Ds\Deque::reverse — Reverses the deque in-place
  • Ds\Deque::reversed — Returns a reversed copy
  • Ds\Deque::rotate — Rotates the deque by a given number of rotations
  • Ds\Deque::set — Updates a value at a given index
  • Ds\Deque::shift — Removes and returns the first value
  • Ds\Deque::slice — Returns a sub-deque of a given range
  • Ds\Deque::sort — Sorts the deque in-place
  • Ds\Deque::sorted — Returns a sorted copy
  • Ds\Deque::sum — Returns the sum of all values in the deque
  • Ds\Deque::toArray — Converts the deque to an Array
  • Ds\Deque::unshift — Adds values to the front of the deque


Allocates enough memory for a required capacity

  • « Deque
  • Ds\Deque::apply »
  • PHP Manual
  • Deque
  • Allocates enough memory for a required capacity

Ds\Deque::allocate

(PECL ds >= 1.0.0)

Ds\Deque::allocate — Allocates enough memory for a required capacity

Beschreibung

public Ds\Deque::allocate ( int $capacity ) : void

Ensures that enough memory is allocated for a required capacity. This removes the need to reallocate the internal as values are added.

Parameter-Liste

capacity

The number of values for which capacity should be allocated.

Hinweis:

Capacity will stay the same if this value is less than or equal to the current capacity.

Hinweis:

Capacity will always be rounded up to the nearest power of 2.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Deque::allocate() example

<?php
$deque = new \Ds\Deque();
var_dump($deque->capacity());

$deque->allocate(100);
var_dump($deque->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(8)
int(128)


Updates all values by applying a callback function to each value

  • « Ds\Deque::allocate
  • Ds\Deque::capacity »
  • PHP Manual
  • Deque
  • Updates all values by applying a callback function to each value

Ds\Deque::apply

(PECL ds >= 1.0.0)

Ds\Deque::apply — Updates all values by applying a callback function to each value

Beschreibung

public Ds\Deque::apply ( callable $callback ) : void

Updates all values by applying a callback function to each value in the deque.

Parameter-Liste

callback

callback ( mixed $value ) : mixed

A callable to apply to each value in the deque.

The callback should return what the value should be replaced by.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Deque::apply() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);
$deque->apply(function($value) { return $value * 2; });

print_r($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Returns the current capacity

  • « Ds\Deque::apply
  • Ds\Deque::clear »
  • PHP Manual
  • Deque
  • Returns the current capacity

Ds\Deque::capacity

(PECL ds >= 1.0.0)

Ds\Deque::capacity — Returns the current capacity

Beschreibung

public Ds\Deque::capacity ( ) : int

Returns the current capacity.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current capacity.

Beispiele

Beispiel #1 Ds\Deque::capacity() example

<?php
$deque = new \Ds\Deque();
var_dump($deque->capacity());

$deque->push(...range(1, 50));
var_dump($deque->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(8)
int(64)


Removes all values from the deque

  • « Ds\Deque::capacity
  • Ds\Deque::__construct »
  • PHP Manual
  • Deque
  • Removes all values from the deque

Ds\Deque::clear

(PECL ds >= 1.0.0)

Ds\Deque::clear — Removes all values from the deque

Beschreibung

public Ds\Deque::clear ( ) : void

Removes all values from the deque.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Deque::clear() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);
print_r($deque);

$deque->clear();
print_r($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Deque Object
(
)


Creates a new instance

  • « Ds\Deque::clear
  • Ds\Deque::contains »
  • PHP Manual
  • Deque
  • Creates a new instance

Ds\Deque::__construct

(PECL ds >= 1.0.0)

Ds\Deque::__construct — Creates a new instance

Beschreibung

public Ds\Deque::__construct ( mixed $values = ? )

Creates a new instance, using either a traversable object or an Array for the initial values.

Parameter-Liste

values

A traversable object or an Array to use for the initial values.

Beispiele

Beispiel #1 Ds\Deque::__construct() example

<?php
$deque = new \Ds\Deque();
var_dump($deque);

$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Deque)#2 (0) {
}
object(Ds\Deque)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Determines if the deque contains given values

  • « Ds\Deque::__construct
  • Ds\Deque::copy »
  • PHP Manual
  • Deque
  • Determines if the deque contains given values

Ds\Deque::contains

(PECL ds >= 1.0.0)

Ds\Deque::contains — Determines if the deque contains given values

Beschreibung

public Ds\Deque::contains ( mixed ...$values ) : bool

Determines if the deque contains all values.

Parameter-Liste

values

Values to check.

Rückgabewerte

false if any of the provided values are not in the deque, true otherwise.

Beispiele

Beispiel #1 Ds\Deque::contains() example

<?php
$deque = new \Ds\Deque(['a', 'b', 'c', 1, 2, 3]);

var_dump($deque->contains('a'));                // true
var_dump($deque->contains('a', 'b'));           // true
var_dump($deque->contains('c', 'd'));           // false

var_dump($deque->contains(...['c', 'b', 'a'])); // true

// Always strict
var_dump($deque->contains(1));                  // true
var_dump($deque->contains('1'));                // false

var_dump($sequece->contains(...[]));               // true
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Returns a shallow copy of the deque

  • « Ds\Deque::contains
  • Ds\Deque::count »
  • PHP Manual
  • Deque
  • Returns a shallow copy of the deque

Ds\Deque::copy

(PECL ds >= 1.0.0)

Ds\Deque::copy — Returns a shallow copy of the deque

Beschreibung

public Ds\Deque::copy ( ) : Ds\Deque

Returns a shallow copy of the deque.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A shallow copy of the deque.

Beispiele

Beispiel #1 Ds\Deque::copy() example

<?php
$a = new \Ds\Deque([1, 2, 3]);
$b = $a->copy();

$b->push(4);

print_r($a);
print_r($b);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Returns the number of values in the collection

  • « Ds\Deque::copy
  • Ds\Deque::filter »
  • PHP Manual
  • Deque
  • Returns the number of values in the collection

Ds\Deque::count

(PECL ds >= 1.0.0)

Ds\Deque::count — Returns the number of values in the collection

See Countable::count()


Creates a new deque using a callable to determine which values to include

  • « Ds\Deque::count
  • Ds\Deque::find »
  • PHP Manual
  • Deque
  • Creates a new deque using a callable to determine which values to include

Ds\Deque::filter

(PECL ds >= 1.0.0)

Ds\Deque::filter — Creates a new deque using a callable to determine which values to include

Beschreibung

public Ds\Deque::filter ( callable $callback = ? ) : Ds\Deque

Creates a new deque using a callable to determine which values to include.

Parameter-Liste

callback

callback ( mixed $value ) : bool

Optional callable which returns true if the value should be included, false otherwise.

If a callback is not provided, only values which are true (see converting to boolean) will be included.

Rückgabewerte

A new deque containing all the values for which either the callback returned true, or all values that convert to true if a callback was not provided.

Beispiele

Beispiel #1 Ds\Deque::filter() example using callback function

<?php
$deque = new \Ds\Deque([1, 2, 3, 4, 5]);

var_dump($deque->filter(function($value) {
    return $value % 2 == 0;
}));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Deque)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Beispiel #2 Ds\Deque::filter() example without a callback function

<?php
$deque = new \Ds\Deque([0, 1, 'a', true, false]);

var_dump($deque->filter());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Deque)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Attempts to find a value's index

  • « Ds\Deque::filter
  • Ds\Deque::first »
  • PHP Manual
  • Deque
  • Attempts to find a value's index

Ds\Deque::find

(PECL ds >= 1.0.0)

Ds\Deque::find — Attempts to find a value's index

Beschreibung

public Ds\Deque::find ( mixed $value ) : mixed

Returns the index of the value, or false if not found.

Parameter-Liste

value

The value to find.

Rückgabewerte

The index of the value, or false if not found.

Hinweis:

Values will be compared by value and by type.

Beispiele

Beispiel #1 Ds\Deque::find() example

<?php
$deque = new \Ds\Deque(["a", 1, true]);

var_dump($deque->find("a")); // 0
var_dump($deque->find("b")); // false
var_dump($deque->find("1")); // false
var_dump($deque->find(1));   // 1
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(0)
bool(false)
bool(false)
int(1)


Returns the first value in the deque

  • « Ds\Deque::find
  • Ds\Deque::get »
  • PHP Manual
  • Deque
  • Returns the first value in the deque

Ds\Deque::first

(PECL ds >= 1.0.0)

Ds\Deque::first — Returns the first value in the deque

Beschreibung

public Ds\Deque::first ( ) : mixed

Returns the first value in the deque.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The first value in the deque.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Deque::first() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->first());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)


Returns the value at a given index

  • « Ds\Deque::first
  • Ds\Deque::insert »
  • PHP Manual
  • Deque
  • Returns the value at a given index

Ds\Deque::get

(PECL ds >= 1.0.0)

Ds\Deque::get — Returns the value at a given index

Beschreibung

public Ds\Deque::get ( int $index ) : mixed

Returns the value at a given index.

Parameter-Liste

index

The index to access, starting at 0.

Rückgabewerte

The value at the requested index.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Deque::get() example

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->get(0));
var_dump($deque->get(1));
var_dump($deque->get(2));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"

Beispiel #2 Ds\Deque::get() example using array syntax

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque[0]);
var_dump($deque[1]);
var_dump($deque[2]);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"


Inserts values at a given index

  • « Ds\Deque::get
  • Ds\Deque::isEmpty »
  • PHP Manual
  • Deque
  • Inserts values at a given index

Ds\Deque::insert

(PECL ds >= 1.0.0)

Ds\Deque::insert — Inserts values at a given index

Beschreibung

public Ds\Deque::insert ( int $index , mixed ...$values ) : void

Inserts values into the deque at a given index.

Parameter-Liste

index

The index at which to insert. 0 <= index <= count

Hinweis:

You can insert at the index equal to the number of values.

values

The value or values to insert.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Deque::insert() example

<?php
$deque = new \Ds\Deque();

$deque->insert(0, "e");             // [e]
$deque->insert(1, "f");             // [e, f]
$deque->insert(2, "g");             // [e, f, g]
$deque->insert(0, "a", "b");        // [a, b, e, f, g]
$deque->insert(2, ...["c", "d"]);   // [a, b, c, d, e, f, g]

var_dump($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Deque)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Returns whether the deque is empty

  • « Ds\Deque::insert
  • Ds\Deque::join »
  • PHP Manual
  • Deque
  • Returns whether the deque is empty

Ds\Deque::isEmpty

(PECL ds >= 1.0.0)

Ds\Deque::isEmpty — Returns whether the deque is empty

Beschreibung

public Ds\Deque::isEmpty ( ) : bool

Returns whether the deque is empty.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the deque is empty, false otherwise.

Beispiele

Beispiel #1 Ds\Deque::isEmpty() example

<?php
$a = new \Ds\Deque([1, 2, 3]);
$b = new \Ds\Deque();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)


Joins all values together as a string

  • « Ds\Deque::isEmpty
  • Ds\Deque::jsonSerialize »
  • PHP Manual
  • Deque
  • Joins all values together as a string

Ds\Deque::join

(PECL ds >= 1.0.0)

Ds\Deque::join — Joins all values together as a string

Beschreibung

public Ds\Deque::join ( string $glue = ? ) : string

Joins all values together as a string using an optional separator between each value.

Parameter-Liste

glue

An optional string to separate each value.

Rückgabewerte

All values of the deque joined together as a string.

Beispiele

Beispiel #1 Ds\Deque::join() example using a separator string

<?php
$deque = new \Ds\Deque(["a", "b", "c", 1, 2, 3]);

var_dump($deque->join("|"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(11) "a|b|c|1|2|3"

Beispiel #2 Ds\Deque::join() example without a separator string

<?php
$deque = new \Ds\Deque(["a", "b", "c", 1, 2, 3]);

var_dump($deque->join());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(11) "abc123"


Returns a representation that can be converted to JSON

  • « Ds\Deque::join
  • Ds\Deque::last »
  • PHP Manual
  • Deque
  • Returns a representation that can be converted to JSON

Ds\Deque::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Deque::jsonSerialize — Returns a representation that can be converted to JSON

See JsonSerializable::jsonSerialize()

Hinweis:

You should never need to call this directly.


Returns the last value

  • « Ds\Deque::jsonSerialize
  • Ds\Deque::map »
  • PHP Manual
  • Deque
  • Returns the last value

Ds\Deque::last

(PECL ds >= 1.0.0)

Ds\Deque::last — Returns the last value

Beschreibung

public Ds\Deque::last ( ) : mixed

Returns the last value in the deque.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The last value in the deque.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Deque::last() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->last());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)


Returns the result of applying a callback to each value

  • « Ds\Deque::last
  • Ds\Deque::merge »
  • PHP Manual
  • Deque
  • Returns the result of applying a callback to each value

Ds\Deque::map

(PECL ds >= 1.0.0)

Ds\Deque::map — Returns the result of applying a callback to each value

Beschreibung

public Ds\Deque::map ( callable $callback ) : Ds\Deque

Returns the result of applying a callback function to each value in the deque.

Parameter-Liste

callback

callback ( mixed $value ) : mixed

A callable to apply to each value in the deque.

The callable should return what the new value will be in the new deque.

Rückgabewerte

The result of applying a callback to each value in the deque.

Hinweis:

The values of the current instance won't be affected.

Beispiele

Beispiel #1 Ds\Deque::map() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

print_r($deque->map(function($value) { return $value * 2; }));
print_r($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Returns the result of adding all given values to the deque

  • « Ds\Deque::map
  • Ds\Deque::pop »
  • PHP Manual
  • Deque
  • Returns the result of adding all given values to the deque

Ds\Deque::merge

(PECL ds >= 1.0.0)

Ds\Deque::merge — Returns the result of adding all given values to the deque

Beschreibung

public Ds\Deque::merge ( mixed $values ) : Ds\Deque

Returns the result of adding all given values to the deque.

Parameter-Liste

values

A traversable object or an Array.

Rückgabewerte

The result of adding all given values to the deque, effectively the same as adding the values to a copy, then returning that copy.

Hinweis:

The current instance won't be affected.

Beispiele

Beispiel #1 Ds\Deque::merge() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->merge([4, 5, 6]));
var_dump($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Deque)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Deque)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Removes and returns the last value

  • « Ds\Deque::merge
  • Ds\Deque::push »
  • PHP Manual
  • Deque
  • Removes and returns the last value

Ds\Deque::pop

(PECL ds >= 1.0.0)

Ds\Deque::pop — Removes and returns the last value

Beschreibung

public Ds\Deque::pop ( ) : mixed

Removes and returns the last value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The removed last value.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Deque::pop() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->pop());
var_dump($deque->pop());
var_dump($deque->pop());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)
int(2)
int(1)


Adds values to the end of the deque

  • « Ds\Deque::pop
  • Ds\Deque::reduce »
  • PHP Manual
  • Deque
  • Adds values to the end of the deque

Ds\Deque::push

(PECL ds >= 1.0.0)

Ds\Deque::push — Adds values to the end of the deque

Beschreibung

public Ds\Deque::push ( mixed ...$values ) : void

Adds values to the end of the deque.

Parameter-Liste

values

The values to add.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Deque::push() example

<?php
$deque = new \Ds\Deque();

$deque->push("a");
$deque->push("b");
$deque->push("c", "d");
$deque->push(...["e", "f"]);

print_r($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Reduces the deque to a single value using a callback function

  • « Ds\Deque::push
  • Ds\Deque::remove »
  • PHP Manual
  • Deque
  • Reduces the deque to a single value using a callback function

Ds\Deque::reduce

(PECL ds >= 1.0.0)

Ds\Deque::reduce — Reduces the deque to a single value using a callback function

Beschreibung

public Ds\Deque::reduce ( callable $callback , mixed $initial = ? ) : mixed

Reduces the deque to a single value using a callback function.

Parameter-Liste

callback
callback ( mixed $carry , mixed $value ) : mixed
carry

The return value of the previous callback, or initial if it's the first iteration.

value

The value of the current iteration.

initial

The initial value of the carry value. Can be null.

Rückgabewerte

The return value of the final callback.

Beispiele

Beispiel #1 Ds\Deque::reduce() with initial value example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($deque->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(30)

Beispiel #2 Ds\Deque::reduce() without an initial value example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(21)


Removes and returns a value by index

  • « Ds\Deque::reduce
  • Ds\Deque::reverse »
  • PHP Manual
  • Deque
  • Removes and returns a value by index

Ds\Deque::remove

(PECL ds >= 1.0.0)

Ds\Deque::remove — Removes and returns a value by index

Beschreibung

public Ds\Deque::remove ( int $index ) : mixed

Removes and returns a value by index.

Parameter-Liste

index

The index of the value to remove.

Rückgabewerte

The value that was removed.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Deque::remove() example

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->remove(1));
var_dump($deque->remove(0));
var_dump($deque->remove(0));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "b"
string(1) "a"
string(1) "c"


Reverses the deque in-place

  • « Ds\Deque::remove
  • Ds\Deque::reversed »
  • PHP Manual
  • Deque
  • Reverses the deque in-place

Ds\Deque::reverse

(PECL ds >= 1.0.0)

Ds\Deque::reverse — Reverses the deque in-place

Beschreibung

public Ds\Deque::reverse ( ) : void

Reverses the deque in-place.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Deque::reverse() example

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);
$deque->reverse();

print_r($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => c
    [1] => b
    [2] => a
)


Returns a reversed copy

  • « Ds\Deque::reverse
  • Ds\Deque::rotate »
  • PHP Manual
  • Deque
  • Returns a reversed copy

Ds\Deque::reversed

(PECL ds >= 1.0.0)

Ds\Deque::reversed — Returns a reversed copy

Beschreibung

public Ds\Deque::reversed ( ) : Ds\Deque

Returns a reversed copy of the deque.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A reversed copy of the deque.

Hinweis:

The current instance is not affected.

Beispiele

Beispiel #1 Ds\Deque::reversed() example

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

print_r($deque->reversed());
print_r($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Deque Object
(
    [0] => a
    [1] => b
    [2] => c
)


Rotates the deque by a given number of rotations

  • « Ds\Deque::reversed
  • Ds\Deque::set »
  • PHP Manual
  • Deque
  • Rotates the deque by a given number of rotations

Ds\Deque::rotate

(PECL ds >= 1.0.0)

Ds\Deque::rotate — Rotates the deque by a given number of rotations

Beschreibung

public Ds\Deque::rotate ( int $rotations ) : void

Rotates the deque by a given number of rotations, which is equivalent to successively calling $deque->push($deque->shift()) if the number of rotations is positive, or $deque->unshift($deque->pop()) if negative.

Parameter-Liste

rotations

The number of times the deque should be rotated.

Rückgabewerte

Es wird kein Wert zurückgegeben.. The deque of the current instance will be rotated.

Beispiele

Beispiel #1 Ds\Deque::rotate() example

<?php
$deque = new \Ds\Deque(["a", "b", "c", "d"]);

$deque->rotate(1);  // "a" is shifted, then pushed.
print_r($deque);

$deque->rotate(2);  // "b" and "c" are both shifted, the pushed.
print_r($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Deque Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Updates a value at a given index

  • « Ds\Deque::rotate
  • Ds\Deque::shift »
  • PHP Manual
  • Deque
  • Updates a value at a given index

Ds\Deque::set

(PECL ds >= 1.0.0)

Ds\Deque::set — Updates a value at a given index

Beschreibung

public Ds\Deque::set ( int $index , mixed $value ) : void

Updates a value at a given index.

Parameter-Liste

index

The index of the value to update.

value

The new value.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Deque::set() example

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

$deque->set(1, "_");
print_r($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => a
    [1] => _
    [2] => c
)

Beispiel #2 Ds\Deque::set() example using array syntax

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

$deque[1] = "_";
print_r($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => a
    [1] => _
    [2] => c
)


Removes and returns the first value

  • « Ds\Deque::set
  • Ds\Deque::slice »
  • PHP Manual
  • Deque
  • Removes and returns the first value

Ds\Deque::shift

(PECL ds >= 1.0.0)

Ds\Deque::shift — Removes and returns the first value

Beschreibung

public Ds\Deque::shift ( ) : mixed

Removes and returns the first value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The first value, which was removed.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Deque::shift() example

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->shift());
var_dump($deque->shift());
var_dump($deque->shift());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"


Returns a sub-deque of a given range

  • « Ds\Deque::shift
  • Ds\Deque::sort »
  • PHP Manual
  • Deque
  • Returns a sub-deque of a given range

Ds\Deque::slice

(PECL ds >= 1.0.0)

Ds\Deque::slice — Returns a sub-deque of a given range

Beschreibung

public Ds\Deque::slice ( int $index , int $length = ? ) : Ds\Deque

Creates a sub-deque of a given range.

Parameter-Liste

index

The index at which the sub-deque starts.

If positive, the deque will start at that index in the deque. If negative, the deque will start that far from the end.

length

If a length is given and is positive, the resulting deque will have up to that many values in it. If the length results in an overflow, only values up to the end of the deque will be included. If a length is given and is negative, the deque will stop that many values from the end. If a length is not provided, the resulting deque will contain all values between the index and the end of the deque.

Rückgabewerte

A sub-deque of the given range.

Beispiele

Beispiel #1 Ds\Deque::slice() example

<?php
$deque = new \Ds\Deque(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($deque->slice(2));

// Slice from 1, for a length of 3
print_r($deque->slice(1, 3));

// Slice from 1 onwards
print_r($deque->slice(1));

// Slice from 2 from the end onwards
print_r($deque->slice(-2));

// Slice from 1 to 1 from the end
print_r($deque->slice(1, -1));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Deque Object
(
    [0] => d
    [1] => e
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
)


Sorts the deque in-place

  • « Ds\Deque::slice
  • Ds\Deque::sorted »
  • PHP Manual
  • Deque
  • Sorts the deque in-place

Ds\Deque::sort

(PECL ds >= 1.0.0)

Ds\Deque::sort — Sorts the deque in-place

Beschreibung

public Ds\Deque::sort ( callable $comparator = ? ) : void

Sorts the deque in-place, using an optional comparator function.

Parameter-Liste

comparator

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Deque::sort() example

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);
$deque->sort();

print_r($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Beispiel #2 Ds\Deque::sort() example using a comparator

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

$deque->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns a sorted copy

  • « Ds\Deque::sort
  • Ds\Deque::sum »
  • PHP Manual
  • Deque
  • Returns a sorted copy

Ds\Deque::sorted

(PECL ds >= 1.0.0)

Ds\Deque::sorted — Returns a sorted copy

Beschreibung

public Ds\Deque::sorted ( callable $comparator = ? ) : Ds\Deque

Returns a sorted copy, using an optional comparator function.

Parameter-Liste

comparator

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Rückgabewerte

Returns a sorted copy of the deque.

Beispiele

Beispiel #1 Ds\Deque::sorted() example

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

print_r($deque->sorted());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Beispiel #2 Ds\Deque::sorted() example using a comparator

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

$sorted = $deque->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns the sum of all values in the deque

  • « Ds\Deque::sorted
  • Ds\Deque::toArray »
  • PHP Manual
  • Deque
  • Returns the sum of all values in the deque

Ds\Deque::sum

(PECL ds >= 1.0.0)

Ds\Deque::sum — Returns the sum of all values in the deque

Beschreibung

public Ds\Deque::sum ( ) : int|float

Returns the sum of all values in the deque.

Hinweis:

Arrays and objects are considered equal to zero when calculating the sum.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The sum of all the values in the deque as either a float or int depending on the values in the deque.

Beispiele

Beispiel #1 Ds\Deque::sum() integer example

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->sum());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(6)

Beispiel #2 Ds\Deque::sum() float example

<?php
$deque = new \Ds\Deque([1, 2.5, 3]);
var_dump($deque->sum());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

float(6.5)


Converts the deque to an Array

  • « Ds\Deque::sum
  • Ds\Deque::unshift »
  • PHP Manual
  • Deque
  • Converts the deque to an Array

Ds\Deque::toArray

(PECL ds >= 1.0.0)

Ds\Deque::toArray — Converts the deque to an Array

Beschreibung

public Ds\Deque::toArray ( ) : array

Converts the deque to an Array.

Hinweis:

Casting to an Array is not supported yet.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An Array containing all the values in the same order as the deque.

Beispiele

Beispiel #1 Ds\Deque::toArray() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->toArray());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Adds values to the front of the deque

  • « Ds\Deque::toArray
  • Map »
  • PHP Manual
  • Deque
  • Adds values to the front of the deque

Ds\Deque::unshift

(PECL ds >= 1.0.0)

Ds\Deque::unshift — Adds values to the front of the deque

Beschreibung

public Ds\Deque::unshift ( mixed $values = ? ) : void

Adds values to the front of the deque, moving all the current values forward to make room for the new values.

Parameter-Liste

values

The values to add to the front of the deque.

Hinweis:

Multiple values will be added in the same order that they are passed.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Deque::unshift() example

<?php
$deque = new \Ds\Deque([1, 2, 3]);

$deque->unshift("a");
$deque->unshift("b", "c");

print_r($deque);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


The Map class

(No version information available, might only be in Git)

Einführung

A Map is a sequential collection of key-value pairs, almost identical to an Array used in a similar context. Keys can be any type, but must be unique. Values are replaced if added to the map using the same key.

Strengths

  • Keys and values can be any type, including objects.
  • Supports array syntax (square brackets).
  • Insertion order is preserved.
  • Performance and memory efficiency is very similar to an Array.
  • Automatically frees allocated memory when its size drops low enough.

Weaknesses

  • Can’t be converted to an array when objects are used as keys.

Klassenbeschreibung

Ds\Map implements Ds\Collection , ArrayAccess {
/* Constants */
const int MIN_CAPACITY = 16 ;
/* Methoden */
public allocate ( int $capacity ) : void
public apply ( callable $callback ) : void
public capacity ( ) : int
public clear ( ) : void
public copy ( ) : Ds\Map
public diff ( Ds\Map $map ) : Ds\Map
public filter ( callable $callback = ? ) : Ds\Map
public first ( ) : Ds\Pair
public get ( mixed $key , mixed $default = ? ) : mixed
public hasKey ( mixed $key ) : bool
public hasValue ( mixed $value ) : bool
public intersect ( Ds\Map $map ) : Ds\Map
public isEmpty ( ) : bool
public keys ( ) : Ds\Set
public ksort ( callable $comparator = ? ) : void
public ksorted ( callable $comparator = ? ) : Ds\Map
public last ( ) : Ds\Pair
public map ( callable $callback ) : Ds\Map
public merge ( mixed $values ) : Ds\Map
public pairs ( ) : Ds\Sequence
public put ( mixed $key , mixed $value ) : void
public putAll ( mixed $pairs ) : void
public reduce ( callable $callback , mixed $initial = ? ) : mixed
public remove ( mixed $key , mixed $default = ? ) : mixed
public reverse ( ) : void
public reversed ( ) : Ds\Map
public skip ( int $position ) : Ds\Pair
public slice ( int $index , int $length = ? ) : Ds\Map
public sort ( callable $comparator = ? ) : void
public sorted ( callable $comparator = ? ) : Ds\Map
public sum ( ) : int|float
public toArray ( ) : array
public union ( Ds\Map $map ) : Ds\Map
public values ( ) : Ds\Sequence
public xor ( Ds\Map $map ) : Ds\Map
}

Vordefinierte Konstanten

Ds\Map::MIN_CAPACITY

Changelog

Version | Beschreibung
PECL ds 1.3.0 | The class now implements ArrayAccess.

Inhaltsverzeichnis

  • Ds\Map::allocate — Allocates enough memory for a required capacity
  • Ds\Map::apply — Updates all values by applying a callback function to each value
  • Ds\Map::capacity — Returns the current capacity
  • Ds\Map::clear — Removes all values
  • Ds\Map::__construct — Creates a new instance
  • Ds\Map::copy — Returns a shallow copy of the map
  • Ds\Map::count — Returns the number of values in the map
  • Ds\Map::diff — Creates a new map using keys that aren't in another map
  • Ds\Map::filter — Creates a new map using a callable to determine which pairs to include
  • Ds\Map::first — Returns the first pair in the map
  • Ds\Map::get — Returns the value for a given key
  • Ds\Map::hasKey — Determines whether the map contains a given key
  • Ds\Map::hasValue — Determines whether the map contains a given value
  • Ds\Map::intersect — Creates a new map by intersecting keys with another map
  • Ds\Map::isEmpty — Returns whether the map is empty
  • Ds\Map::jsonSerialize — Returns a representation that can be converted to JSON
  • Ds\Map::keys — Returns a set of the map's keys
  • Ds\Map::ksort — Sorts the map in-place by key
  • Ds\Map::ksorted — Returns a copy, sorted by key
  • Ds\Map::last — Returns the last pair of the map
  • Ds\Map::map — Returns the result of applying a callback to each value
  • Ds\Map::merge — Returns the result of adding all given associations
  • Ds\Map::pairs — Returns a sequence containing all the pairs of the map
  • Ds\Map::put — Associates a key with a value
  • Ds\Map::putAll — Associates all key-value pairs of a traversable object or array
  • Ds\Map::reduce — Reduces the map to a single value using a callback function
  • Ds\Map::remove — Removes and returns a value by key
  • Ds\Map::reverse — Reverses the map in-place
  • Ds\Map::reversed — Returns a reversed copy
  • Ds\Map::skip — Returns the pair at a given positional index
  • Ds\Map::slice — Returns a subset of the map defined by a starting index and length
  • Ds\Map::sort — Sorts the map in-place by value
  • Ds\Map::sorted — Returns a copy, sorted by value
  • Ds\Map::sum — Returns the sum of all values in the map
  • Ds\Map::toArray — Converts the map to an Array
  • Ds\Map::union — Creates a new map using values from the current instance and another map
  • Ds\Map::values — Returns a sequence of the map's values
  • Ds\Map::xor — Creates a new map using keys of either the current instance or of another map, but not of both


Allocates enough memory for a required capacity

  • « Map
  • Ds\Map::apply »
  • PHP Manual
  • Map
  • Allocates enough memory for a required capacity

Ds\Map::allocate

(PECL ds >= 1.0.0)

Ds\Map::allocate — Allocates enough memory for a required capacity

Beschreibung

public Ds\Map::allocate ( int $capacity ) : void

Allocates enough memory for a required capacity.

Parameter-Liste

capacity

The number of values for which capacity should be allocated.

Hinweis:

Capacity will stay the same if this value is less than or equal to the current capacity.

Hinweis:

Capacity will always be rounded up to the nearest power of 2.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Map::allocate() example

<?php
$map = new \Ds\Map();
var_dump($map->capacity());

$map->allocate(100);
var_dump($map->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(16)
int(128)


Updates all values by applying a callback function to each value

  • « Ds\Map::allocate
  • Ds\Map::capacity »
  • PHP Manual
  • Map
  • Updates all values by applying a callback function to each value

Ds\Map::apply

(PECL ds >= 1.0.0)

Ds\Map::apply — Updates all values by applying a callback function to each value

Beschreibung

public Ds\Map::apply ( callable $callback ) : void

Updates all values by applying a callback function to each value in the map.

Parameter-Liste

callback

callback ( mixed $key , mixed $value ) : mixed

A callable to apply to each value in the map.

The callback should return what the value should be replaced by.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Map::apply() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$map->apply(function($key, $value) { return $value * 2; });

print_r($map);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 4
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 6
        )

)


Returns the current capacity

  • « Ds\Map::apply
  • Ds\Map::clear »
  • PHP Manual
  • Map
  • Returns the current capacity

Ds\Map::capacity

(PECL ds >= 1.0.0)

Ds\Map::capacity — Returns the current capacity

Beschreibung

public Ds\Map::capacity ( ) : int

Returns the current capacity.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current capacity.

Beispiele

Beispiel #1 Ds\Map::capacity() example

<?php
$map = new \Ds\Map();
var_dump($map->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(16)


Removes all values

  • « Ds\Map::capacity
  • Ds\Map::__construct »
  • PHP Manual
  • Map
  • Removes all values

Ds\Map::clear

(PECL ds >= 1.0.0)

Ds\Map::clear — Removes all values

Beschreibung

public Ds\Map::clear ( ) : void

Removes all values from the map.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Map::clear() example

<?php
$map = new \Ds\Map([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);
print_r($map);

$map->clear();
print_r($map);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)
Ds\Map Object
(
)


Creates a new instance

  • « Ds\Map::clear
  • Ds\Map::copy »
  • PHP Manual
  • Map
  • Creates a new instance

Ds\Map::__construct

(PECL ds >= 1.0.0)

Ds\Map::__construct — Creates a new instance

Beschreibung

public Ds\Map::__construct ( mixed ...$values )

Creates a new instance, using either a traversable object or an Array for the initial values.

Parameter-Liste

values

A traversable object or an Array to use for the initial values.

Beispiele

Beispiel #1 Ds\Map::__construct() example

<?php
$map = new \Ds\Map();
var_dump($map);

$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Map)#1 (0) {
}
object(Ds\Map)#2 (3) {
  [0]=>
  object(Ds\Pair)#1 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
  [1]=>
  object(Ds\Pair)#3 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [2]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}


Returns a shallow copy of the map

  • « Ds\Map::__construct
  • Ds\Map::count »
  • PHP Manual
  • Map
  • Returns a shallow copy of the map

Ds\Map::copy

(PECL ds >= 1.0.0)

Ds\Map::copy — Returns a shallow copy of the map

Beschreibung

public Ds\Map::copy ( ) : Ds\Map

Returns a shallow copy of the map.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a shallow copy of the map.

Beispiele

Beispiel #1 Ds\Map::copy() example

<?php
$map = new \Ds\Map([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);

print_r($map->copy());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Returns the number of values in the map

  • « Ds\Map::copy
  • Ds\Map::diff »
  • PHP Manual
  • Map
  • Returns the number of values in the map

Ds\Map::count

(PECL ds >= 1.0.0)

Ds\Map::count — Returns the number of values in the map

See Countable::count()


Creates a new map using keys that aren't in another map

  • « Ds\Map::count
  • Ds\Map::filter »
  • PHP Manual
  • Map
  • Creates a new map using keys that aren't in another map

Ds\Map::diff

(PECL ds >= 1.0.0)

Ds\Map::diff — Creates a new map using keys that aren't in another map

Beschreibung

public Ds\Map::diff ( Ds\Map $map ) : Ds\Map

Returns the result of removing all keys from the current instance that are present in a given map.

A \ B = {x ? A | x ? B}

Parameter-Liste

map

The map containing the keys to exclude in the resulting map.

Rückgabewerte

The result of removing all keys from the current instance that are present in a given map.

See Also

  • » Compliment on Wikipedia

Beispiele

Beispiel #1 Ds\Map::diff() example

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

var_dump($a->diff($b));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Map)#3 (1) {
  [0]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
}


Creates a new map using a callable to determine which pairs to include

  • « Ds\Map::diff
  • Ds\Map::first »
  • PHP Manual
  • Map
  • Creates a new map using a callable to determine which pairs to include

Ds\Map::filter

(PECL ds >= 1.0.0)

Ds\Map::filter — Creates a new map using a callable to determine which pairs to include

Beschreibung

public Ds\Map::filter ( callable $callback = ? ) : Ds\Map

Creates a new map using a callable to determine which pairs to include.

Parameter-Liste

callback

callback ( mixed $key , mixed $value ) : bool

Optional callable which returns true if the pair should be included, false otherwise.

If a callback is not provided, only values which are true (see converting to boolean) will be included.

Rückgabewerte

A new map containing all the pairs for which either the callback returned true, or all values that convert to true if a callback was not provided.

Beispiele

Beispiel #1 Ds\Map::filter() example using callback function

<?php
$map = new \Ds\Map(["a", "b", "c", "d", "e"]);

var_dump($map->filter(function($key, $value) {
    return $key % 2 == 0;
}));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Map)#3 (3) {
  [0]=>
  object(Ds\Pair)#2 (2) {
    ["key"]=>
    int(0)
    ["value"]=>
    string(1) "a"
  }
  [1]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    int(2)
    ["value"]=>
    string(1) "c"
  }
  [2]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    int(4)
    ["value"]=>
    string(1) "e"
  }
}

Beispiel #2 Ds\Map::filter() example without a callback function

<?php
$map = new \Ds\Map(["a" => 0, "b" => 1, "c" => true, "d" => false]);

var_dump($map->filter());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Map)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Returns the first pair in the map

  • « Ds\Map::filter
  • Ds\Map::get »
  • PHP Manual
  • Map
  • Returns the first pair in the map

Ds\Map::first

(PECL ds >= 1.0.0)

Ds\Map::first — Returns the first pair in the map

Beschreibung

public Ds\Map::first ( ) : Ds\Pair

Returns the first pair in the map.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The first pair in the map.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Map::first() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->first());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "a"
  ["value"]=>
  int(1)
}


Returns the value for a given key

  • « Ds\Map::first
  • Ds\Map::hasKey »
  • PHP Manual
  • Map
  • Returns the value for a given key

Ds\Map::get

(PECL ds >= 1.0.0)

Ds\Map::get — Returns the value for a given key

Beschreibung

public Ds\Map::get ( mixed $key , mixed $default = ? ) : mixed

Returns the value for a given key, or an optional default value if the key could not be found.

Hinweis:

Keys of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

Hinweis:

You can also use array syntax to access values by key, eg. $map["key"].

Achtung

Be careful when using array syntax. Scalar keys will be coerced to integers by the engine. For example, $map["1"] will attempt to access int(1), while $map->get("1") will correctly look up the string key.

See Arrays.

Parameter-Liste

key

The key to look up.

default

The optional default value, returned if the key could not be found.

Rückgabewerte

The value mapped to the given key, or the default value if provided and the key could not be found in the map.

Fehler/Exceptions

OutOfBoundsException if the key could not be found and a default value was not provided.

Beispiele

Beispiel #1 Ds\Map::get() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->get("a"));       // 1
var_dump($map->get("d", 10));   // 10 (default used)
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)
int(10)

Beispiel #2 Ds\Map::get() example using array syntax

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map["a"])); // 1
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)


Determines whether the map contains a given key

  • « Ds\Map::get
  • Ds\Map::hasValue »
  • PHP Manual
  • Map
  • Determines whether the map contains a given key

Ds\Map::hasKey

(PECL ds >= 1.0.0)

Ds\Map::hasKey — Determines whether the map contains a given key

Beschreibung

public Ds\Map::hasKey ( mixed $key ) : bool

Determines whether the map contains a given key.

Parameter-Liste

key

The key to look for.

Rückgabewerte

Returns true if the key could found, false otherwise.

Beispiele

Beispiel #1 Ds\Map::hasKey() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->hasKey("a")); // true
var_dump($map->hasKey("e")); // false
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)


Determines whether the map contains a given value

  • « Ds\Map::hasKey
  • Ds\Map::intersect »
  • PHP Manual
  • Map
  • Determines whether the map contains a given value

Ds\Map::hasValue

(PECL ds >= 1.0.0)

Ds\Map::hasValue — Determines whether the map contains a given value

Beschreibung

public Ds\Map::hasValue ( mixed $value ) : bool

Determines whether the map contains a given value.

Parameter-Liste

value

The value to look for.

Rückgabewerte

Returns true if the value could found, false otherwise.

Beispiele

Beispiel #1 Ds\Map::hasValue() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->hasValue(1)); // true
var_dump($map->hasValue(4)); // false
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)


Creates a new map by intersecting keys with another map

  • « Ds\Map::hasValue
  • Ds\Map::isEmpty »
  • PHP Manual
  • Map
  • Creates a new map by intersecting keys with another map

Ds\Map::intersect

(PECL ds >= 1.0.0)

Ds\Map::intersect — Creates a new map by intersecting keys with another map

Beschreibung

public Ds\Map::intersect ( Ds\Map $map ) : Ds\Map

Creates a new map containing the pairs of the current instance whose keys are also present in the given map. In other words, returns a copy of the current instance with all keys removed that are not also in the other map.

A n B = {x : x ? A ? x ? B}

Hinweis:

Values from the current instance will be kept.

Parameter-Liste

map

The other map, containing the keys to intersect with.

Rückgabewerte

The key intersection of the current instance and another map.

See Also

  • » Intersection on Wikipedia

Beispiele

Beispiel #1 Ds\Map::intersect() example

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

var_dump($a->intersect($b));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Map)#3 (2) {
  [0]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [1]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}


Returns whether the map is empty

  • « Ds\Map::intersect
  • Ds\Map::jsonSerialize »
  • PHP Manual
  • Map
  • Returns whether the map is empty

Ds\Map::isEmpty

(PECL ds >= 1.0.0)

Ds\Map::isEmpty — Returns whether the map is empty

Beschreibung

public Ds\Map::isEmpty ( ) : bool

Returns whether the map is empty.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the map is empty, false otherwise.

Beispiele

Beispiel #1 Ds\Map::isEmpty() example

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)


Returns a representation that can be converted to JSON

  • « Ds\Map::isEmpty
  • Ds\Map::keys »
  • PHP Manual
  • Map
  • Returns a representation that can be converted to JSON

Ds\Map::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Map::jsonSerialize — Returns a representation that can be converted to JSON

See JsonSerializable::jsonSerialize()

Hinweis:

You should never need to call this directly.


Returns a set of the map's keys

  • « Ds\Map::jsonSerialize
  • Ds\Map::ksort »
  • PHP Manual
  • Map
  • Returns a set of the map's keys

Ds\Map::keys

(PECL ds >= 1.0.0)

Ds\Map::keys — Returns a set of the map's keys

Beschreibung

public Ds\Map::keys ( ) : Ds\Set

Returns a set containing all the keys of the map, in the same order.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Ds\Set containing all the keys of the map.

Beispiele

Beispiel #1 Ds\Map::keys() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->keys());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Set)#2 (3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
}


Sorts the map in-place by key

  • « Ds\Map::keys
  • Ds\Map::ksorted »
  • PHP Manual
  • Map
  • Sorts the map in-place by key

Ds\Map::ksort

(PECL ds >= 1.0.0)

Ds\Map::ksort — Sorts the map in-place by key

Beschreibung

public Ds\Map::ksort ( callable $comparator = ? ) : void

Sorts the map in-place by key, using an optional comparator function.

Parameter-Liste

comparator

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Map::ksort() example

<?php
$map = new \Ds\Map(["b" => 2, "c" => 3, "a" => 1]);
$map->ksort();

print_r($map);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Beispiel #2 Ds\Map::ksort() example using a comparator

<?php
$map = new \Ds\Map([1 => "x", 2 => "y", 0 => "z"]);

// Reverse
$map->ksort(function($a, $b) {
    return $b <=> $a;
});

print_r($map);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 2
            [value] => y
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => x
        )

    [2] => Ds\Pair Object
        (
            [key] => 0
            [value] => z
        )

)


Returns a copy, sorted by key

  • « Ds\Map::ksort
  • Ds\Map::last »
  • PHP Manual
  • Map
  • Returns a copy, sorted by key

Ds\Map::ksorted

(No version information available, might only be in Git)

Ds\Map::ksorted — Returns a copy, sorted by key

Beschreibung

public Ds\Map::ksorted ( callable $comparator = ? ) : Ds\Map

Returns a copy sorted by key, using an optional comparator function.

Parameter-Liste

comparator

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Rückgabewerte

Returns a copy of the map, sorted by key.

Beispiele

Beispiel #1 Ds\Map::ksorted() example

<?php
$map = new \Ds\Map(["b" => 2, "c" => 3, "a" => 1]);

print_r($map->ksorted());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Beispiel #2 Ds\Map::ksorted() example using a comparator

<?php
$map = new \Ds\Map([1 => "x", 2 => "y", 0 => "z"]);

// Reverse
$sorted = $map->ksorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 2
            [value] => y
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => x
        )

    [2] => Ds\Pair Object
        (
            [key] => 0
            [value] => z
        )

)


Returns the last pair of the map

  • « Ds\Map::ksorted
  • Ds\Map::map »
  • PHP Manual
  • Map
  • Returns the last pair of the map

Ds\Map::last

(PECL ds >= 1.0.0)

Ds\Map::last — Returns the last pair of the map

Beschreibung

public Ds\Map::last ( ) : Ds\Pair

Returns the last pair of the map.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The last pair of the map.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Map::last() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->last());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "c"
  ["value"]=>
  int(3)
}


Returns the result of applying a callback to each value

  • « Ds\Map::last
  • Ds\Map::merge »
  • PHP Manual
  • Map
  • Returns the result of applying a callback to each value

Ds\Map::map

(PECL ds >= 1.0.0)

Ds\Map::map — Returns the result of applying a callback to each value

Beschreibung

public Ds\Map::map ( callable $callback ) : Ds\Map

Returns the result of applying a callback function to each value of the map.

Parameter-Liste

callback

callback ( mixed $key , mixed $value ) : mixed

A callable to apply to each value in the map.

The callable should return what the key will be mapped to in the resulting map.

Rückgabewerte

The result of applying a callback to each value in the map.

Hinweis:

The keys and values of the current instance won't be affected.

Beispiele

Beispiel #1 Ds\Map::map() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->map(function($key, $value) { return $value * 2; }));
print_r($map);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 4
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 6
        )

)
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Returns the result of adding all given associations

  • « Ds\Map::map
  • Ds\Map::pairs »
  • PHP Manual
  • Map
  • Returns the result of adding all given associations

Ds\Map::merge

(PECL ds >= 1.0.0)

Ds\Map::merge — Returns the result of adding all given associations

Beschreibung

public Ds\Map::merge ( mixed $values ) : Ds\Map

Returns the result of associating all keys of a given traversable object or Array with their corresponding values, combined with the current instance.

Hinweis:

Values of the current instance will be overwritten by those provided where keys are equal.

Parameter-Liste

values

A traversable object or an Array.

Rückgabewerte

The result of associating all keys of a given traversable object or Array with their corresponding values, combined with the current instance.

Hinweis:

The current instance won't be affected.

Beispiele

Beispiel #1 Ds\Map::merge() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->merge(["a" => 10, "e" => 50]));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 10
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [3] => Ds\Pair Object
        (
            [key] => e
            [value] => 50
        )

)


Returns a sequence containing all the pairs of the map

  • « Ds\Map::merge
  • Ds\Map::put »
  • PHP Manual
  • Map
  • Returns a sequence containing all the pairs of the map

Ds\Map::pairs

(PECL ds >= 1.0.0)

Ds\Map::pairs — Returns a sequence containing all the pairs of the map

Beschreibung

public Ds\Map::pairs ( ) : Ds\Sequence

Returns a Ds\Sequence containing all the pairs of the map.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Ds\Sequence containing all the pairs of the map.

Beispiele

Beispiel #1 Ds\Map::pairs() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->pairs());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Map)#8 (3) {
  [0]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
  [1]=>
  object(Ds\Pair)#6 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [2]=>
  object(Ds\Pair)#7 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}
p


Associates a key with a value

  • « Ds\Map::pairs
  • Ds\Map::putAll »
  • PHP Manual
  • Map
  • Associates a key with a value

Ds\Map::put

(PECL ds >= 1.0.0)

Ds\Map::put — Associates a key with a value

Beschreibung

public Ds\Map::put ( mixed $key , mixed $value ) : void

Associates a key with a value, overwriting a previous association if one exists.

Hinweis:

Keys of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

Hinweis:

You can also use array syntax to associate values by key, eg. $map["key"] = $value.

Achtung

Be careful when using array syntax. Scalar keys will be coerced to integers by the engine. For example, $map["1"] will attempt to access int(1), while $map->get("1") will correctly look up the string key.

See Arrays.

Parameter-Liste

key

The key to associate the value with.

value

The value to be associated with the key.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Map::put() example

<?php
$map = new \Ds\Map();

$map->put("a", 1);
$map->put("b", 2);
$map->put("c", 3);

print_r($map);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Beispiel #2 Ds\Map::put() example using objects as keys

<?php
class HashableObject implements \Ds\Hashable
{
    /**
     * An arbitrary value to use as the hash value. Does not define equality.
     */
    private $value;

    public function __construct($value)
    {
        $this->value = $value;
    }

    public function hash()
    {
        return $this->value;
    }

    public function equals($obj): bool
    {
        return $this->value === $obj->value;
    }
}

$map = new \Ds\Map();

$obj = new \ArrayIterator([]);

// Using the same instance multiple times will overwrite the previous value.
$map->put($obj, 1);
$map->put($obj, 2);

// Using multiple instances of the same object will create new associations.
$map->put(new \stdClass(), 3);
$map->put(new \stdClass(), 4);

// Using multiple instances of equal hashable objects will overwrite previous values.
$map->put(new \HashableObject(1), 5);
$map->put(new \HashableObject(1), 6);
$map->put(new \HashableObject(2), 7);
$map->put(new \HashableObject(2), 8);

var_dump($map);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Map)#1 (5) {
  [0]=>
  object(Ds\Pair)#7 (2) {
    ["key"]=>
    object(ArrayIterator)#2 (1) {
      ["storage":"ArrayIterator":private]=>
      array(0) {
      }
    }
    ["value"]=>
    int(2)
  }
  [1]=>
  object(Ds\Pair)#8 (2) {
    ["key"]=>
    object(stdClass)#3 (0) {
    }
    ["value"]=>
    int(3)
  }
  [2]=>
  object(Ds\Pair)#9 (2) {
    ["key"]=>
    object(stdClass)#4 (0) {
    }
    ["value"]=>
    int(4)
  }
  [3]=>
  object(Ds\Pair)#10 (2) {
    ["key"]=>
    object(HashableObject)#5 (1) {
      ["value":"HashableObject":private]=>
      int(1)
    }
    ["value"]=>
    int(6)
  }
  [4]=>
  object(Ds\Pair)#11 (2) {
    ["key"]=>
    object(HashableObject)#6 (1) {
      ["value":"HashableObject":private]=>
      int(2)
    }
    ["value"]=>
    int(8)
  }
}


Associates all key-value pairs of a traversable object or array

  • « Ds\Map::put
  • Ds\Map::reduce »
  • PHP Manual
  • Map
  • Associates all key-value pairs of a traversable object or array

Ds\Map::putAll

(PECL ds >= 1.0.2)

Ds\Map::putAll — Associates all key-value pairs of a traversable object or array

Beschreibung

public Ds\Map::putAll ( mixed $pairs ) : void

Associates all key-value pairs of a traversable object or Array.

Hinweis:

Keys of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

Parameter-Liste

pairs

traversable object or Array.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Map::putAll() example

<?php
$map = new \Ds\Map();

$map->putAll([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);

print_r($map);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Reduces the map to a single value using a callback function

  • « Ds\Map::putAll
  • Ds\Map::remove »
  • PHP Manual
  • Map
  • Reduces the map to a single value using a callback function

Ds\Map::reduce

(PECL ds >= 1.0.0)

Ds\Map::reduce — Reduces the map to a single value using a callback function

Beschreibung

public Ds\Map::reduce ( callable $callback , mixed $initial = ? ) : mixed

Reduces the map to a single value using a callback function.

Parameter-Liste

callback
callback ( mixed $carry , mixed $key , mixed $value ) : mixed
carry

The return value of the previous callback, or initial if it's the first iteration.

key

The key of the current iteration.

value

The value of the current iteration.

initial

The initial value of the carry value. Can be null.

Rückgabewerte

The return value of the final callback.

Beispiele

Beispiel #1 Ds\Map::reduce() with initial value example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

$callback = function($carry, $key, $value) {
    return $carry * $value;
};

var_dump($map->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(30)

Beispiel #2 Ds\Map::reduce() without an initial value example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->reduce(function($carry, $key, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(21)


Removes and returns a value by key

  • « Ds\Map::reduce
  • Ds\Map::reverse »
  • PHP Manual
  • Map
  • Removes and returns a value by key

Ds\Map::remove

(PECL ds >= 1.0.0)

Ds\Map::remove — Removes and returns a value by key

Beschreibung

public Ds\Map::remove ( mixed $key , mixed $default = ? ) : mixed

Removes and returns a value by key, or return an optional default value if the key could not be found.

Hinweis:

Keys of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

Hinweis:

You can also use array syntax to access values by key, eg. $map["key"].

Achtung

Be careful when using array syntax. Scalar keys will be coerced to integers by the engine. For example, $map["1"] will attempt to access int(1), while $map->get("1") will correctly look up the string key.

See Arrays.

Parameter-Liste

key

The key to remove.

default

The optional default value, returned if the key could not be found.

Rückgabewerte

The value that was removed, or the default value if provided and the key could not be found in the map.

Fehler/Exceptions

OutOfBoundsException if the key could not be found and a default value was not provided.

Beispiele

Beispiel #1 Ds\Map::remove() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->remove("a"));      //  1
var_dump($map->remove("e", 10));  // 10 (default used)
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)
int(10)


Reverses the map in-place

  • « Ds\Map::remove
  • Ds\Map::reversed »
  • PHP Manual
  • Map
  • Reverses the map in-place

Ds\Map::reverse

(PECL ds >= 1.0.0)

Ds\Map::reverse — Reverses the map in-place

Beschreibung

public Ds\Map::reverse ( ) : void

Reverses the map in-place.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Map::reverse() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$map->reverse();

print_r($map);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

)


Returns a reversed copy

  • « Ds\Map::reverse
  • Ds\Map::skip »
  • PHP Manual
  • Map
  • Returns a reversed copy

Ds\Map::reversed

(PECL ds >= 1.0.0)

Ds\Map::reversed — Returns a reversed copy

Beschreibung

public Ds\Map::reversed ( ) : Ds\Map

Returns a reversed copy of the map.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A reversed copy of the map.

Hinweis:

The current instance is not affected.

Beispiele

Beispiel #1 Ds\Map::reversed() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->reversed());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

)


Returns the pair at a given positional index

  • « Ds\Map::reversed
  • Ds\Map::slice »
  • PHP Manual
  • Map
  • Returns the pair at a given positional index

Ds\Map::skip

(PECL ds >= 1.0.0)

Ds\Map::skip — Returns the pair at a given positional index

Beschreibung

public Ds\Map::skip ( int $position ) : Ds\Pair

Returns the pair at a given zero-based position.

Parameter-Liste

position

The zero-based positional index to return.

Rückgabewerte

Returns the Ds\Pair at the given position.

Fehler/Exceptions

OutOfRangeException if the position is not valid.

Beispiele

Beispiel #1 Ds\Map::skip() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->skip(1));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "b"
  ["value"]=>
  int(2)
}


Returns a subset of the map defined by a starting index and length

  • « Ds\Map::skip
  • Ds\Map::sort »
  • PHP Manual
  • Map
  • Returns a subset of the map defined by a starting index and length

Ds\Map::slice

(PECL ds >= 1.0.0)

Ds\Map::slice — Returns a subset of the map defined by a starting index and length

Beschreibung

public Ds\Map::slice ( int $index , int $length = ? ) : Ds\Map

Returns a subset of the map defined by a starting index and length.

Parameter-Liste

index

The index at which the range starts.

If positive, the range will start at that index in the map. If negative, the range will start that far from the end.

length

If a length is given and is positive, the resulting map will have up to that many pairs in it. If a length is given and is negative, the range will stop that many pairs from the end. If the length results in an overflow, only pairs up to the end of the map will be included. If a length is not provided, the resulting map will contain all pairs between the index and the end of the map.

Rückgabewerte

A subset of the map defined by a starting index and length.

Beispiele

Beispiel #1 Ds\Map::slice() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5]);

// Slice from 2 onwards
print_r($map->slice(2)->toArray());

// Slice from 1, for a length of 3
print_r($map->slice(1, 3)->toArray());

// Slice from 1 onwards
print_r($map->slice(1)->toArray());

// Slice from 2 from the end onwards
print_r($map->slice(-2)->toArray());

// Slice from 1 to 1 from the end
print_r($map->slice(1, -1)->toArray());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [c] => 3
    [d] => 4
    [e] => 5
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 5
)
Array
(
    [d] => 4
    [e] => 5
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
)


Sorts the map in-place by value

  • « Ds\Map::slice
  • Ds\Map::sorted »
  • PHP Manual
  • Map
  • Sorts the map in-place by value

Ds\Map::sort

(PECL ds >= 1.0.0)

Ds\Map::sort — Sorts the map in-place by value

Beschreibung

public Ds\Map::sort ( callable $comparator = ? ) : void

Sorts the map in-place by value, using an optional comparator function.

Parameter-Liste

comparator

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Map::sort() example

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);
$map->sort();

print_r($map);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

)

Beispiel #2 Ds\Map::sort() example using a comparator

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

$map->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($map);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

)


Returns a copy, sorted by value

  • « Ds\Map::sort
  • Ds\Map::sum »
  • PHP Manual
  • Map
  • Returns a copy, sorted by value

Ds\Map::sorted

(PECL ds >= 1.0.0)

Ds\Map::sorted — Returns a copy, sorted by value

Beschreibung

public Ds\Map::sorted ( callable $comparator = ? ) : Ds\Map

Returns a copy, sorted by value using an optional comparator function.

Parameter-Liste

comparator

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Rückgabewerte

Returns a copy of the map, sorted by value.

Beispiele

Beispiel #1 Ds\Map::sort() example

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

print_r($map->sorted());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

)

Beispiel #2 Ds\Map::sort() example using a comparator

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

// Reverse
$sorted = $map->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

)


Returns the sum of all values in the map

  • « Ds\Map::sorted
  • Ds\Map::toArray »
  • PHP Manual
  • Map
  • Returns the sum of all values in the map

Ds\Map::sum

(No version information available, might only be in Git)

Ds\Map::sum — Returns the sum of all values in the map

Beschreibung

public Ds\Map::sum ( ) : int|float

Returns the sum of all values in the map.

Hinweis:

Arrays and objects are considered equal to zero when calculating the sum.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The sum of all the values in the map as either a float or int depending on the values in the map.

Beispiele

Beispiel #1 Ds\Map::sum() integer example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->sum());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(6)

Beispiel #2 Ds\Map::sum() float example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2.5, "c" => 3]);
var_dump($map->sum());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

float(6.5)


Converts the map to an Array

  • « Ds\Map::sum
  • Ds\Map::union »
  • PHP Manual
  • Map
  • Converts the map to an Array

Ds\Map::toArray

(PECL ds >= 1.0.0)

Ds\Map::toArray — Converts the map to an Array

Beschreibung

public Ds\Map::toArray ( ) : array

Converts the map to an Array.

Achtung

Maps where non-scalar keys are can't be converted to an Array.

Achtung

An Array will treat all numeric keys as integers, eg. "1" and 1 as keys in the map will only result in 1 being included in the array.

Hinweis:

Casting to an Array is not supported yet.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An Array containing all the values in the same order as the map.

Beispiele

Beispiel #1 Ds\Map::toArray() example

<?php
$map = new \Ds\Map([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);

var_dump($map->toArray());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}


Creates a new map using values from the current instance and another map

  • « Ds\Map::toArray
  • Ds\Map::values »
  • PHP Manual
  • Map
  • Creates a new map using values from the current instance and another map

Ds\Map::union

(PECL ds >= 1.0.0)

Ds\Map::union — Creates a new map using values from the current instance and another map

Beschreibung

public Ds\Map::union ( Ds\Map $map ) : Ds\Map

Creates a new map that contains the pairs of the current instance as well as the pairs of another map.

A ? B = {x: x ? A ? x ? B}

Hinweis:

Values of the current instance will be overwritten by those provided where keys are equal.

Parameter-Liste

map

The other map, to combine with the current instance.

Rückgabewerte

A new map containing all the pairs of the current instance as well as another map.

See Also

  • » Union on Wikipedia

Beispiele

Beispiel #1 Ds\Map::union() example

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 3, "c" => 4, "d" => 5]);

print_r($a->union($b));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 4
        )

    [3] => Ds\Pair Object
        (
            [key] => d
            [value] => 5
        )

)


Returns a sequence of the map's values

  • « Ds\Map::union
  • Ds\Map::xor »
  • PHP Manual
  • Map
  • Returns a sequence of the map's values

Ds\Map::values

(PECL ds >= 1.0.0)

Ds\Map::values — Returns a sequence of the map's values

Beschreibung

public Ds\Map::values ( ) : Ds\Sequence

Returns a sequence containing all the values of the map, in the same order.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A Ds\Sequence containing all the values of the map.

Beispiele

Beispiel #1 Ds\Map::values() example

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->values());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Creates a new map using keys of either the current instance or of another map, but not of both

  • « Ds\Map::values
  • Pair »
  • PHP Manual
  • Map
  • Creates a new map using keys of either the current instance or of another map, but not of both

Ds\Map::xor

(PECL ds >= 1.0.0)

Ds\Map::xor — Creates a new map using keys of either the current instance or of another map, but not of both

Beschreibung

public Ds\Map::xor ( Ds\Map $map ) : Ds\Map

Creates a new map containing keys of the current instance as well as another map, but not of both.

A ? B = {x : x ? (A \ B) ? (B \ A)}

Parameter-Liste

map

The other map.

Rückgabewerte

A new map containing keys in the current instance as well as another map, but not in both.

See Also

  • » Symmetric Difference on Wikipedia

Beispiele

Beispiel #1 Ds\Map::xor() example

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

print_r($a->xor($b));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => d
            [value] => 6
        )

)


The Pair class

(No version information available, might only be in Git)

Einführung

A pair is used by Ds\Map to pair keys with values.

Klassenbeschreibung

Ds\Pair implements JsonSerializable {
/* Methoden */
public __construct ( mixed $key = ? , mixed $value = ? )
public clear ( ) : void
public copy ( ) : Ds\Pair
public isEmpty ( ) : bool
public toArray ( ) : array
}

Inhaltsverzeichnis

  • Ds\Pair::clear — Removes all values
  • Ds\Pair::__construct — Creates a new instance
  • Ds\Pair::copy — Returns a shallow copy of the pair
  • Ds\Pair::isEmpty — Returns whether the pair is empty
  • Ds\Pair::jsonSerialize — Returns a representation that can be converted to JSON
  • Ds\Pair::toArray — Converts the pair to an Array


Removes all values

  • « Pair
  • Ds\Pair::__construct »
  • PHP Manual
  • Pair
  • Removes all values

Ds\Pair::clear

(No version information available, might only be in Git)

Ds\Pair::clear — Removes all values

Beschreibung

public Ds\Pair::clear ( ) : void

Removes all values from the pair.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Pair::clear() example

<?php
$pair = new \Ds\Pair("a", 1);
print_r($pair);

$pair->clear();
print_r($pair);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Pair Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Pair Object
(
)


Creates a new instance

  • « Ds\Pair::clear
  • Ds\Pair::copy »
  • PHP Manual
  • Pair
  • Creates a new instance

Ds\Pair::__construct

(PECL ds >= 1.0.0)

Ds\Pair::__construct — Creates a new instance

Beschreibung

public Ds\Pair::__construct ( mixed $key = ? , mixed $value = ? )

Creates a new instance using a given key and value.

Parameter-Liste

key

The key.

value

The value.


Returns a shallow copy of the pair

  • « Ds\Pair::__construct
  • Ds\Pair::isEmpty »
  • PHP Manual
  • Pair
  • Returns a shallow copy of the pair

Ds\Pair::copy

(No version information available, might only be in Git)

Ds\Pair::copy — Returns a shallow copy of the pair

Beschreibung

public Ds\Pair::copy ( ) : Ds\Pair

Returns a shallow copy of the pair.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a shallow copy of the pair.

Beispiele

Beispiel #1 Ds\Pair::copy() example

<?php
$a = new \Ds\Pair("a", 1);
$b = $a->copy();

$a->key = "x";

print_r($a);
print_r($b);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Pair Object
(
    [key] => x
    [value] => 1
)
Ds\Pair Object
(
    [key] => a
    [value] => 1
)


Returns whether the pair is empty

  • « Ds\Pair::copy
  • Ds\Pair::jsonSerialize »
  • PHP Manual
  • Pair
  • Returns whether the pair is empty

Ds\Pair::isEmpty

(No version information available, might only be in Git)

Ds\Pair::isEmpty — Returns whether the pair is empty

Beschreibung

public Ds\Pair::isEmpty ( ) : bool

Returns whether the pair is empty.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the pair is empty, false otherwise.

Beispiele

Beispiel #1 Ds\Pair::isEmpty() example

<?php
$a = new \Ds\Pair("a", 1);
$b = new \Ds\Pair();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)


Returns a representation that can be converted to JSON

  • « Ds\Pair::isEmpty
  • Ds\Pair::toArray »
  • PHP Manual
  • Pair
  • Returns a representation that can be converted to JSON

Ds\Pair::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Pair::jsonSerialize — Returns a representation that can be converted to JSON

See JsonSerializable::jsonSerialize()

Hinweis:

You should never need to call this directly.


Converts the pair to an Array

  • « Ds\Pair::jsonSerialize
  • Set »
  • PHP Manual
  • Pair
  • Converts the pair to an Array

Ds\Pair::toArray

(PECL ds >= 1.0.0)

Ds\Pair::toArray — Converts the pair to an Array

Beschreibung

public Ds\Pair::toArray ( ) : array

Converts the pair to an Array.

Hinweis:

Casting to an Array is not supported yet.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An Array containing all the values in the same order as the pair.

Beispiele

Beispiel #1 Ds\Pair::toArray() example

<?php
$pair = new \Ds\Pair("a", 1);

var_dump($pair->toArray());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["key"]=>
  string(1) "a"
  ["value"]=>
  int(1)
}


The Set class

(No version information available, might only be in Git)

Einführung

A Set is a sequence of unique values. This implementation uses the same hash table as Ds\Map, where values are used as keys and the mapped value is ignored.

Strengths

  • Values can be any type, including objects.
  • Supports array syntax (square brackets).
  • Insertion order is preserved.
  • Automatically frees allocated memory when its size drops low enough.
  • add(),
remove() and
contains() are all O(1).

Weaknesses

  • Doesn’t support
                push(),
                pop(),
                insert(),
                shift(), or
                unshift().
  • get() is O(n) if there are deleted values in the buffer before the accessed index, O(1) otherwise.

Klassenbeschreibung

Ds\Set implements Ds\Collection , ArrayAccess {
/* Constants */
const int MIN_CAPACITY = 16 ;
/* Methoden */
public add ( mixed ...$values ) : void
public allocate ( int $capacity ) : void
public capacity ( ) : int
public clear ( ) : void
public contains ( mixed ...$values ) : bool
public copy ( ) : Ds\Set
public diff ( Ds\Set $set ) : Ds\Set
public filter ( callable $callback = ? ) : Ds\Set
public first ( ) : mixed
public get ( int $index ) : mixed
public intersect ( Ds\Set $set ) : Ds\Set
public isEmpty ( ) : bool
public join ( string $glue = ? ) : string
public last ( ) : mixed
public merge ( mixed $values ) : Ds\Set
public reduce ( callable $callback , mixed $initial = ? ) : mixed
public remove ( mixed ...$values ) : void
public reverse ( ) : void
public reversed ( ) : Ds\Set
public slice ( int $index , int $length = ? ) : Ds\Set
public sort ( callable $comparator = ? ) : void
public sorted ( callable $comparator = ? ) : Ds\Set
public sum ( ) : int|float
public toArray ( ) : array
public union ( Ds\Set $set ) : Ds\Set
public xor ( Ds\Set $set ) : Ds\Set
}

Vordefinierte Konstanten

Ds\Set::MIN_CAPACITY

Changelog

Version | Beschreibung
PECL ds 1.3.0 | The class now implements ArrayAccess.

Inhaltsverzeichnis

  • Ds\Set::add — Adds values to the set
  • Ds\Set::allocate — Allocates enough memory for a required capacity
  • Ds\Set::capacity — Returns the current capacity
  • Ds\Set::clear — Removes all values
  • Ds\Set::__construct — Creates a new instance
  • Ds\Set::contains — Determines if the set contains all values
  • Ds\Set::copy — Returns a shallow copy of the set
  • Ds\Set::count — Returns the number of values in the set
  • Ds\Set::diff — Creates a new set using values that aren't in another set
  • Ds\Set::filter — Creates a new set using a callable to determine which values to include
  • Ds\Set::first — Returns the first value in the set
  • Ds\Set::get — Returns the value at a given index
  • Ds\Set::intersect — Creates a new set by intersecting values with another set
  • Ds\Set::isEmpty — Returns whether the set is empty
  • Ds\Set::join — Joins all values together as a string
  • Ds\Set::jsonSerialize — Returns a representation that can be converted to JSON
  • Ds\Set::last — Returns the last value in the set
  • Ds\Set::merge — Returns the result of adding all given values to the set
  • Ds\Set::reduce — Reduces the set to a single value using a callback function
  • Ds\Set::remove — Removes all given values from the set
  • Ds\Set::reverse — Reverses the set in-place
  • Ds\Set::reversed — Returns a reversed copy
  • Ds\Set::slice — Returns a sub-set of a given range
  • Ds\Set::sort — Sorts the set in-place
  • Ds\Set::sorted — Returns a sorted copy
  • Ds\Set::sum — Returns the sum of all values in the set
  • Ds\Set::toArray — Converts the set to an Array
  • Ds\Set::union — Creates a new set using values from the current instance and another set
  • Ds\Set::xor — Creates a new set using values in either the current instance or in another set, but not in both


Adds values to the set

  • « Set
  • Ds\Set::allocate »
  • PHP Manual
  • Set
  • Adds values to the set

Ds\Set::add

(PECL ds >= 1.0.0)

Ds\Set::add — Adds values to the set

Beschreibung

public Ds\Set::add ( mixed ...$values ) : void

Adds all given values to the set that haven't already been added.

Hinweis:

Values of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

Achtung

All comparisons are strict (type and value).

Parameter-Liste

values

Values to add to the set.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Set::add() example using integers

<?php
$set = new \Ds\Set();

$set->add(1);
$set->add(1);
$set->add(2);
$set->add(3);

// Strict comparison would not treat these the same as int(1)
$set->add("1");
$set->add(true);

var_dump($set);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Set)#1 (5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  string(1) "1"
  [4]=>
  bool(true)
}

Beispiel #2 Ds\Set::add() example using objects

<?php
class HashableObject implements \Ds\Hashable
{
    /**
     * An arbitrary value to use as the hash value. Does not define equality.
     */
    private $value;

    public function __construct($value)
    {
        $this->value = $value;
    }

    public function hash()
    {
        return $this->value;
    }

    public function equals($obj): bool
    {
        return $this->value === $obj->value;
    }
}

$set = new \Ds\Set();

$obj = new \ArrayIterator([]);

// Adding the same instance multiple times will only add the first.
$set->add($obj);
$set->add($obj);

// Adding multiple instances of the same object will add them all.
$set->add(new \stdClass());
$set->add(new \stdClass());

// Adding multiple instances of equal hashable objects will only add the first.
$set->add(new \HashableObject(1));
$set->add(new \HashableObject(1));
$set->add(new \HashableObject(2));
$set->add(new \HashableObject(2));

var_dump($set);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Set)#1 (5) {
  [0]=>
  object(ArrayIterator)#2 (1) {
    ["storage":"ArrayIterator":private]=>
    array(0) {
    }
  }
  [1]=>
  object(stdClass)#3 (0) {
  }
  [2]=>
  object(stdClass)#4 (0) {
  }
  [3]=>
  object(HashableObject)#5 (1) {
    ["value":"HashableObject":private]=>
    int(1)
  }
  [4]=>
  object(HashableObject)#6 (1) {
    ["value":"HashableObject":private]=>
    int(2)
  }
}


Allocates enough memory for a required capacity

  • « Ds\Set::add
  • Ds\Set::capacity »
  • PHP Manual
  • Set
  • Allocates enough memory for a required capacity

Ds\Set::allocate

(PECL ds >= 1.0.0)

Ds\Set::allocate — Allocates enough memory for a required capacity

Beschreibung

public Ds\Set::allocate ( int $capacity ) : void

Allocates enough memory for a required capacity.

Parameter-Liste

capacity

The number of values for which capacity should be allocated.

Hinweis:

Capacity will stay the same if this value is less than or equal to the current capacity.

Hinweis:

Capacity will always be rounded up to the nearest power of 2.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Set::allocate() example

<?php
$set = new \Ds\Set();
var_dump($set->capacity());

$set->allocate(100);
var_dump($set->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(16)
int(128)


Returns the current capacity

  • « Ds\Set::allocate
  • Ds\Set::clear »
  • PHP Manual
  • Set
  • Returns the current capacity

Ds\Set::capacity

(PECL ds >= 1.0.0)

Ds\Set::capacity — Returns the current capacity

Beschreibung

public Ds\Set::capacity ( ) : int

Returns the current capacity.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current capacity.

Beispiele

Beispiel #1 Ds\Set::capacity() example

<?php
$set = new \Ds\Set();
var_dump($set->capacity());

$set->push(...range(1, 50));
var_dump($set->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(16)
int(64)


Removes all values

  • « Ds\Set::capacity
  • Ds\Set::__construct »
  • PHP Manual
  • Set
  • Removes all values

Ds\Set::clear

(PECL ds >= 1.0.0)

Ds\Set::clear — Removes all values

Beschreibung

public Ds\Set::clear ( ) : void

Removes all values from the set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Set::clear() example

<?php
$set = new \Ds\Set([1, 2, 3]);
print_r($set);

$set->clear();
print_r($set);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Set Object
(
)


Creates a new instance

  • « Ds\Set::clear
  • Ds\Set::contains »
  • PHP Manual
  • Set
  • Creates a new instance

Ds\Set::__construct

(PECL ds >= 1.0.0)

Ds\Set::__construct — Creates a new instance

Beschreibung

public Ds\Set::__construct ( mixed ...$values )

Creates a new instance, using either a traversable object or an Array for the initial values.

Parameter-Liste

values

A traversable object or an Array to use for the initial values.

Beispiele

Beispiel #1 Ds\Set::__construct() example

<?php
$set = new \Ds\Set();
var_dump($set);

$set = new \Ds\Set([1, 2, 3]);
var_dump($set);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Set)#1 (0) {
}
object(Ds\Set)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Determines if the set contains all values

  • « Ds\Set::__construct
  • Ds\Set::copy »
  • PHP Manual
  • Set
  • Determines if the set contains all values

Ds\Set::contains

(PECL ds >= 1.0.0)

Ds\Set::contains — Determines if the set contains all values

Beschreibung

public Ds\Set::contains ( mixed ...$values ) : bool

Determines if the set contains all values.

Hinweis:

Values of type object are supported. If an object implements Ds\Hashable, equality will be determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.

Achtung

All comparisons are strict (type and value).

Parameter-Liste

values

Values to check.

Rückgabewerte

false if any of the provided values are not in the set, true otherwise.

Beispiele

Beispiel #1 Ds\Set::contains() example

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->contains(1));                // true
var_dump($set->contains(1, 2));             // true
var_dump($set->contains(...[1, 2]));        // true

var_dump($set->contains("1"));              // false
var_dump($set->contains(...[1, 2, 3, 4]));  // false

var_dump($set->contains(...[]));            // true
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)


Returns a shallow copy of the set

  • « Ds\Set::contains
  • Ds\Set::count »
  • PHP Manual
  • Set
  • Returns a shallow copy of the set

Ds\Set::copy

(PECL ds >= 1.0.0)

Ds\Set::copy — Returns a shallow copy of the set

Beschreibung

public Ds\Set::copy ( ) : Ds\Set

Returns a shallow copy of the set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a shallow copy of the set.

Beispiele

Beispiel #1 Ds\Set::copy() example

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = $a->copy();

// Updating the copy doesn't affect the original
$b->add(4);

print_r($a);
print_r($b);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Returns the number of values in the set

  • « Ds\Set::copy
  • Ds\Set::diff »
  • PHP Manual
  • Set
  • Returns the number of values in the set

Ds\Set::count

(PECL ds >= 1.0.0)

Ds\Set::count — Returns the number of values in the set

See Countable::count()


Creates a new set using values that aren't in another set

  • « Ds\Set::count
  • Ds\Set::filter »
  • PHP Manual
  • Set
  • Creates a new set using values that aren't in another set

Ds\Set::diff

(PECL ds >= 1.0.0)

Ds\Set::diff — Creates a new set using values that aren't in another set

Beschreibung

public Ds\Set::diff ( Ds\Set $set ) : Ds\Set

Creates a new set using values that aren't in another set.

A \ B = {x ? A | x ? B}

Parameter-Liste

set

Set containing the values to exclude.

Rückgabewerte

A new set containing all values that were not in the other set.

See Also

  • » Compliment on Wikipedia

Beispiele

Beispiel #1 Ds\Set::diff() example

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->diff($b));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Set)#3 (2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}


Creates a new set using a callable to determine which values to include

  • « Ds\Set::diff
  • Ds\Set::first »
  • PHP Manual
  • Set
  • Creates a new set using a callable to determine which values to include

Ds\Set::filter

(PECL ds >= 1.0.0)

Ds\Set::filter — Creates a new set using a callable to determine which values to include

Beschreibung

public Ds\Set::filter ( callable $callback = ? ) : Ds\Set

Creates a new set using a callable to determine which values to include.

Parameter-Liste

callback

callback ( mixed $value ) : bool

Optional callable which returns true if the value should be included, false otherwise.

If a callback is not provided, only values which are true (see converting to boolean) will be included.

Rückgabewerte

A new set containing all the values for which either the callback returned true, or all values that convert to true if a callback was not provided.

Beispiele

Beispiel #1 Ds\Set::filter() example using callback function

<?php
$set = new \Ds\Set([1, 2, 3, 4, 5]);

var_dump($set->filter(function($value) {
    return $value % 2 == 0;
}));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Set)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Beispiel #2 Ds\Set::filter() example without a callback function

<?php
$set = new \Ds\Set([0, 1, 'a', true, false]);

var_dump($set->filter());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Set)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Returns the first value in the set

  • « Ds\Set::filter
  • Ds\Set::get »
  • PHP Manual
  • Set
  • Returns the first value in the set

Ds\Set::first

(PECL ds >= 1.0.0)

Ds\Set::first — Returns the first value in the set

Beschreibung

public Ds\Set::first ( ) : mixed

Returns the first value in the set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The first value in the set.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Set::first() example

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->first());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)


Returns the value at a given index

  • « Ds\Set::first
  • Ds\Set::intersect »
  • PHP Manual
  • Set
  • Returns the value at a given index

Ds\Set::get

(PECL ds >= 1.0.0)

Ds\Set::get — Returns the value at a given index

Beschreibung

public Ds\Set::get ( int $index ) : mixed

Returns the value at a given index.

Parameter-Liste

index

The index to access, starting at 0.

Rückgabewerte

The value at the requested index.

Fehler/Exceptions

OutOfRangeException if the index is not valid.

Beispiele

Beispiel #1 Ds\Set::get() example

<?php
$set = new \Ds\Set(["a", "b", "c"]);

var_dump($set->get(0));
var_dump($set->get(1));
var_dump($set->get(2));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"

Beispiel #2 Ds\Set::get() example using array syntax

<?php
$set = new \Ds\Set(["a", "b", "c"]);

var_dump($set[0]);
var_dump($set[1]);
var_dump($set[2]);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"


Creates a new set by intersecting values with another set

  • « Ds\Set::get
  • Ds\Set::isEmpty »
  • PHP Manual
  • Set
  • Creates a new set by intersecting values with another set

Ds\Set::intersect

(PECL ds >= 1.0.0)

Ds\Set::intersect — Creates a new set by intersecting values with another set

Beschreibung

public Ds\Set::intersect ( Ds\Set $set ) : Ds\Set

Creates a new set using values common to both the current instance and another set. In other words, returns a copy of the current instance with all values removed that are not in the other set.

A n B = {x : x ? A ? x ? B}

Parameter-Liste

set

The other set.

Rückgabewerte

The intersection of the current instance and another set.

See Also

  • » Intersection on Wikipedia

Beispiele

Beispiel #1 Ds\Set::intersect() example

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->intersect($b));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Set)#3 (1) {
  [0]=>
  int(3)
}


Returns whether the set is empty

  • « Ds\Set::intersect
  • Ds\Set::join »
  • PHP Manual
  • Set
  • Returns whether the set is empty

Ds\Set::isEmpty

(PECL ds >= 1.0.0)

Ds\Set::isEmpty — Returns whether the set is empty

Beschreibung

public Ds\Set::isEmpty ( ) : bool

Returns whether the set is empty.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the set is empty, false otherwise.

Beispiele

Beispiel #1 Ds\Set::isEmpty() example

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)


Joins all values together as a string

  • « Ds\Set::isEmpty
  • Ds\Set::jsonSerialize »
  • PHP Manual
  • Set
  • Joins all values together as a string

Ds\Set::join

(PECL ds >= 1.0.0)

Ds\Set::join — Joins all values together as a string

Beschreibung

public Ds\Set::join ( string $glue = ? ) : string

Joins all values together as a string using an optional separator between each value.

Parameter-Liste

glue

An optional string to separate each value.

Rückgabewerte

All values of the set joined together as a string.

Beispiele

Beispiel #1 Ds\Set::join() example using a separator string

<?php
$set = new \Ds\Set(["a", "b", "c", 1, 2, 3]);

var_dump($set->join("|"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(11) "a|b|c|1|2|3"

Beispiel #2 Ds\Set::join() example without a separator string

<?php
$set = new \Ds\Set(["a", "b", "c", 1, 2, 3]);

var_dump($set->join());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(11) "abc123"


Returns a representation that can be converted to JSON

  • « Ds\Set::join
  • Ds\Set::last »
  • PHP Manual
  • Set
  • Returns a representation that can be converted to JSON

Ds\Set::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Set::jsonSerialize — Returns a representation that can be converted to JSON

See JsonSerializable::jsonSerialize()

Hinweis:

You should never need to call this directly.


Returns the last value in the set

  • « Ds\Set::jsonSerialize
  • Ds\Set::merge »
  • PHP Manual
  • Set
  • Returns the last value in the set

Ds\Set::last

(PECL ds >= 1.0.0)

Ds\Set::last — Returns the last value in the set

Beschreibung

public Ds\Set::last ( ) : mixed

Returns the last value in the set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The last value in the set.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Set::last() example

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->last());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)


Returns the result of adding all given values to the set

  • « Ds\Set::last
  • Ds\Set::reduce »
  • PHP Manual
  • Set
  • Returns the result of adding all given values to the set

Ds\Set::merge

(PECL ds >= 1.0.3)

Ds\Set::merge — Returns the result of adding all given values to the set

Beschreibung

public Ds\Set::merge ( mixed $values ) : Ds\Set

Returns the result of adding all given values to the set.

Parameter-Liste

values

A traversable object or an Array.

Rückgabewerte

The result of adding all given values to the set, effectively the same as adding the values to a copy, then returning that copy.

Hinweis:

The current instance won't be affected.

Beispiele

Beispiel #1 Ds\Set::merge() example

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->merge([3, 4, 5]));
var_dump($set);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Set)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}
object(Ds\Set)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Reduces the set to a single value using a callback function

  • « Ds\Set::merge
  • Ds\Set::remove »
  • PHP Manual
  • Set
  • Reduces the set to a single value using a callback function

Ds\Set::reduce

(PECL ds >= 1.0.0)

Ds\Set::reduce — Reduces the set to a single value using a callback function

Beschreibung

public Ds\Set::reduce ( callable $callback , mixed $initial = ? ) : mixed

Reduces the set to a single value using a callback function.

Parameter-Liste

callback
callback ( mixed $carry , mixed $value ) : mixed
carry

The return value of the previous callback, or initial if it's the first iteration.

value

The value of the current iteration.

initial

The initial value of the carry value. Can be null.

Rückgabewerte

The return value of the final callback.

Beispiele

Beispiel #1 Ds\Set::reduce() with initial value example

<?php
$set = new \Ds\Set([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($set->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(30)

Beispiel #2 Ds\Set::reduce() without an initial value example

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(21)


Removes all given values from the set

  • « Ds\Set::reduce
  • Ds\Set::reverse »
  • PHP Manual
  • Set
  • Removes all given values from the set

Ds\Set::remove

(PECL ds >= 1.0.0)

Ds\Set::remove — Removes all given values from the set

Beschreibung

public Ds\Set::remove ( mixed ...$values ) : void

Removes all given values from the set, ignoring any that are not in the set.

Parameter-Liste

values

The values to remove.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Set::remove() example

<?php
$set = new \Ds\Set([1, 2, 3, 4, 5]);

$set->remove(1);            // Remove 1
$set->remove(1, 2);         // Can't find 1, but remove 2
$set->remove(...[3, 4]);    // Remove 3 and 4

var_dump($set);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Set)#1 (1) {
  [0]=>
  int(5)
}


Reverses the set in-place

  • « Ds\Set::remove
  • Ds\Set::reversed »
  • PHP Manual
  • Set
  • Reverses the set in-place

Ds\Set::reverse

(PECL ds >= 1.0.0)

Ds\Set::reverse — Reverses the set in-place

Beschreibung

public Ds\Set::reverse ( ) : void

Reverses the set in-place.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Set::reverse() example

<?php
$set = new \Ds\Set(["a", "b", "c"]);
$set->reverse();

print_r($set);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Set Object
(
    [0] => c
    [1] => b
    [2] => a
)


Returns a reversed copy

  • « Ds\Set::reverse
  • Ds\Set::slice »
  • PHP Manual
  • Set
  • Returns a reversed copy

Ds\Set::reversed

(PECL ds >= 1.0.0)

Ds\Set::reversed — Returns a reversed copy

Beschreibung

public Ds\Set::reversed ( ) : Ds\Set

Returns a reversed copy of the set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A reversed copy of the set.

Hinweis:

The current instance is not affected.

Beispiele

Beispiel #1 Ds\Set::reversed() example

<?php
$set = new \Ds\Set(["a", "b", "c"]);

print_r($set->reversed());
print_r($set);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Set Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Set Object
(
    [0] => a
    [1] => b
    [2] => c
)


Returns a sub-set of a given range

  • « Ds\Set::reversed
  • Ds\Set::sort »
  • PHP Manual
  • Set
  • Returns a sub-set of a given range

Ds\Set::slice

(PECL ds >= 1.0.0)

Ds\Set::slice — Returns a sub-set of a given range

Beschreibung

public Ds\Set::slice ( int $index , int $length = ? ) : Ds\Set

Creates a sub-set of a given range.

Parameter-Liste

index

The index at which the sub-set starts.

If positive, the set will start at that index in the set. If negative, the set will start that far from the end.

length

If a length is given and is positive, the resulting set will have up to that many values in it. If the length results in an overflow, only values up to the end of the set will be included. If a length is given and is negative, the set will stop that many values from the end. If a length is not provided, the resulting set will contain all values between the index and the end of the set.

Rückgabewerte

A sub-set of the given range.

Beispiele

Beispiel #1 Ds\Set::slice() example

<?php
$set = new \Ds\Set(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($set->slice(2));

// Slice from 1, for a length of 3
print_r($set->slice(1, 3));

// Slice from 1 onwards
print_r($set->slice(1));

// Slice from 2 from the end onwards
print_r($set->slice(-2));

// Slice from 1 to 1 from the end
print_r($set->slice(1, -1));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Set Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Set Object
(
    [0] => d
    [1] => e
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
)


Sorts the set in-place

  • « Ds\Set::slice
  • Ds\Set::sorted »
  • PHP Manual
  • Set
  • Sorts the set in-place

Ds\Set::sort

(PECL ds >= 1.0.0)

Ds\Set::sort — Sorts the set in-place

Beschreibung

public Ds\Set::sort ( callable $comparator = ? ) : void

Sorts the set in-place, using an optional comparator function.

Parameter-Liste

comparator

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Set::sort() example

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);
$set->sort();

print_r($set);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Beispiel #2 Ds\Set::sort() example using a comparator

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

$set->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($set);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Set Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns a sorted copy

  • « Ds\Set::sort
  • Ds\Set::sum »
  • PHP Manual
  • Set
  • Returns a sorted copy

Ds\Set::sorted

(PECL ds >= 1.0.0)

Ds\Set::sorted — Returns a sorted copy

Beschreibung

public Ds\Set::sorted ( callable $comparator = ? ) : Ds\Set

Returns a sorted copy, using an optional comparator function.

Parameter-Liste

comparator

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

Rückgabewerte

Returns a sorted copy of the set.

Beispiele

Beispiel #1 Ds\Set::sorted() example

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

print_r($set->sorted());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Beispiel #2 Ds\Set::sorted() example using a comparator

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

$sorted = $set->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Set Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Returns the sum of all values in the set

  • « Ds\Set::sorted
  • Ds\Set::toArray »
  • PHP Manual
  • Set
  • Returns the sum of all values in the set

Ds\Set::sum

(PECL ds >= 1.0.0)

Ds\Set::sum — Returns the sum of all values in the set

Beschreibung

public Ds\Set::sum ( ) : int|float

Returns the sum of all values in the set.

Hinweis:

Arrays and objects are considered equal to zero when calculating the sum.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The sum of all the values in the set as either a float or int depending on the values in the set.

Beispiele

Beispiel #1 Ds\Set::sum() integer example

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->sum());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(6)

Beispiel #2 Ds\Set::sum() float example

<?php
$set = new \Ds\Set([1, 2.5, 3]);
var_dump($set->sum());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

float(6.5)


Converts the set to an Array

  • « Ds\Set::sum
  • Ds\Set::union »
  • PHP Manual
  • Set
  • Converts the set to an Array

Ds\Set::toArray

(PECL ds >= 1.0.0)

Ds\Set::toArray — Converts the set to an Array

Beschreibung

public Ds\Set::toArray ( ) : array

Converts the set to an Array.

Hinweis:

Casting to an Array is not supported yet.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An Array containing all the values in the same order as the set.

Beispiele

Beispiel #1 Ds\Set::toArray() example

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->toArray());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Creates a new set using values from the current instance and another set

  • « Ds\Set::toArray
  • Ds\Set::xor »
  • PHP Manual
  • Set
  • Creates a new set using values from the current instance and another set

Ds\Set::union

(PECL ds >= 1.0.0)

Ds\Set::union — Creates a new set using values from the current instance and another set

Beschreibung

public Ds\Set::union ( Ds\Set $set ) : Ds\Set

Creates a new set that contains the values of the current instance as well as the values of another set.

A ? B = {x: x ? A ? x ? B}

Parameter-Liste

set

The other set, to combine with the current instance.

Rückgabewerte

A new set containing all the values of the current instance as well as another set.

See Also

  • » Union on Wikipedia

Beispiele

Beispiel #1 Ds\Set::union() example

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->union($b));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Set)#3 (5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}


Creates a new set using values in either the current instance or in another set, but not in both

  • « Ds\Set::union
  • Stack »
  • PHP Manual
  • Set
  • Creates a new set using values in either the current instance or in another set, but not in both

Ds\Set::xor

(PECL ds >= 1.0.0)

Ds\Set::xor — Creates a new set using values in either the current instance or in another set, but not in both

Beschreibung

public Ds\Set::xor ( Ds\Set $set ) : Ds\Set

Creates a new set containing values in the current instance as well as another set, but not in both.

A ? B = {x : x ? (A \ B) ? (B \ A)}

Parameter-Liste

set

The other set.

Rückgabewerte

A new set containing values in the current instance as well as another set, but not in both.

See Also

  • » Symmetric Difference on Wikipedia

Beispiele

Beispiel #1 Ds\Set::xor() example

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->xor($b));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Set)#3 (4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(4)
  [3]=>
  int(5)
}


The Stack class

(No version information available, might only be in Git)

Einführung

A Stack is a “last in, first out” or “LIFO” collection that only allows access to the value at the top of the structure and iterates in that order, destructively.

Uses a Ds\Vector internally.

Klassenbeschreibung

Ds\Stack implements Ds\Collection , ArrayAccess {
/* Methoden */
public allocate ( int $capacity ) : void
public capacity ( ) : int
public clear ( ) : void
public copy ( ) : Ds\Stack
public isEmpty ( ) : bool
public peek ( ) : mixed
public pop ( ) : mixed
public push ( mixed ...$values ) : void
public toArray ( ) : array
}

Changelog

Version | Beschreibung
PECL ds 1.3.0 | The class now implements ArrayAccess.

Inhaltsverzeichnis

  • Ds\Stack::allocate — Allocates enough memory for a required capacity
  • Ds\Stack::capacity — Returns the current capacity
  • Ds\Stack::clear — Removes all values
  • Ds\Stack::__construct — Creates a new instance
  • Ds\Stack::copy — Returns a shallow copy of the stack
  • Ds\Stack::count — Returns the number of values in the stack
  • Ds\Stack::isEmpty — Returns whether the stack is empty
  • Ds\Stack::jsonSerialize — Returns a representation that can be converted to JSON
  • Ds\Stack::peek — Returns the value at the top of the stack
  • Ds\Stack::pop — Removes and returns the value at the top of the stack
  • Ds\Stack::push — Pushes values onto the stack
  • Ds\Stack::toArray — Converts the stack to an Array


Allocates enough memory for a required capacity

  • « Stack
  • Ds\Stack::capacity »
  • PHP Manual
  • Stack
  • Allocates enough memory for a required capacity

Ds\Stack::allocate

(PECL ds >= 1.0.0)

Ds\Stack::allocate — Allocates enough memory for a required capacity

Beschreibung

public Ds\Stack::allocate ( int $capacity ) : void

Ensures that enough memory is allocated for a required capacity. This removes the need to reallocate the internal as values are added.

Parameter-Liste

capacity

The number of values for which capacity should be allocated.

Hinweis:

Capacity will stay the same if this value is less than or equal to the current capacity.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Returns the current capacity

  • « Ds\Stack::allocate
  • Ds\Stack::clear »
  • PHP Manual
  • Stack
  • Returns the current capacity

Ds\Stack::capacity

(PECL ds >= 1.0.0)

Ds\Stack::capacity — Returns the current capacity

Beschreibung

public Ds\Stack::capacity ( ) : int

Returns the current capacity.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current capacity.


Removes all values

  • « Ds\Stack::capacity
  • Ds\Stack::__construct »
  • PHP Manual
  • Stack
  • Removes all values

Ds\Stack::clear

(PECL ds >= 1.0.0)

Ds\Stack::clear — Removes all values

Beschreibung

public Ds\Stack::clear ( ) : void

Removes all values from the stack.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Stack::clear() example

<?php
$stack = new \Ds\Stack([1, 2, 3]);
print_r($stack);

$stack->clear();
print_r($stack);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)
Ds\Stack Object
(
)


Creates a new instance

  • « Ds\Stack::clear
  • Ds\Stack::copy »
  • PHP Manual
  • Stack
  • Creates a new instance

Ds\Stack::__construct

(PECL ds >= 1.0.0)

Ds\Stack::__construct — Creates a new instance

Beschreibung

public Ds\Stack::__construct ( mixed $values = ? )

Creates a new instance, using either a traversable object or an Array for the initial values.

Parameter-Liste

values

A traversable object or an Array to use for the initial values.

Beispiele

Beispiel #1 Ds\Stack::__construct() example

<?php
$stack = new \Ds\Stack();
print_r($stack);

$stack = new \Ds\Stack([1, 2, 3]);
print_r($stack);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Stack Object
(
)
Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)


Returns a shallow copy of the stack

  • « Ds\Stack::__construct
  • Ds\Stack::count »
  • PHP Manual
  • Stack
  • Returns a shallow copy of the stack

Ds\Stack::copy

(PECL ds >= 1.0.0)

Ds\Stack::copy — Returns a shallow copy of the stack

Beschreibung

public Ds\Stack::copy ( ) : Ds\Stack

Returns a shallow copy of the stack.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a shallow copy of the stack.

Beispiele

Beispiel #1 Ds\Stack::copy() example

<?php
$a = new \Ds\Stack([1, 2, 3]);
$b = $a->copy();

// Updating the copy doesn't affect the original
$b->push(4);

print_r($a);
print_r($b);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)
Ds\Stack Object
(
    [0] => 4
    [1] => 3
    [2] => 2
    [3] => 1
)


Returns the number of values in the stack

  • « Ds\Stack::copy
  • Ds\Stack::isEmpty »
  • PHP Manual
  • Stack
  • Returns the number of values in the stack

Ds\Stack::count

(PECL ds >= 1.0.0)

Ds\Stack::count — Returns the number of values in the stack

See Countable::count()


Returns whether the stack is empty

  • « Ds\Stack::count
  • Ds\Stack::jsonSerialize »
  • PHP Manual
  • Stack
  • Returns whether the stack is empty

Ds\Stack::isEmpty

(PECL ds >= 1.0.0)

Ds\Stack::isEmpty — Returns whether the stack is empty

Beschreibung

public Ds\Stack::isEmpty ( ) : bool

Returns whether the stack is empty.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the stack is empty, false otherwise.

Beispiele

Beispiel #1 Ds\Stack::isEmpty() example

<?php
$a = new \Ds\Stack([1, 2, 3]);
$b = new \Ds\Stack();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)


Returns a representation that can be converted to JSON

  • « Ds\Stack::isEmpty
  • Ds\Stack::peek »
  • PHP Manual
  • Stack
  • Returns a representation that can be converted to JSON

Ds\Stack::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Stack::jsonSerialize — Returns a representation that can be converted to JSON

See JsonSerializable::jsonSerialize()

Hinweis:

You should never need to call this directly.


Returns the value at the top of the stack

  • « Ds\Stack::jsonSerialize
  • Ds\Stack::pop »
  • PHP Manual
  • Stack
  • Returns the value at the top of the stack

Ds\Stack::peek

(PECL ds >= 1.0.0)

Ds\Stack::peek — Returns the value at the top of the stack

Beschreibung

public Ds\Stack::peek ( ) : mixed

Returns the value at the top of the stack, but does not remove it.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value at the top of the stack.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Stack::peek() example

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c");

var_dump($stack->peek());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "c"


Removes and returns the value at the top of the stack

  • « Ds\Stack::peek
  • Ds\Stack::push »
  • PHP Manual
  • Stack
  • Removes and returns the value at the top of the stack

Ds\Stack::pop

(PECL ds >= 1.0.0)

Ds\Stack::pop — Removes and returns the value at the top of the stack

Beschreibung

public Ds\Stack::pop ( ) : mixed

Removes and returns the value at the top of the stack.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The removed value which was at the top of the stack.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Stack::pop() example

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c");

var_dump($stack->pop());
var_dump($stack->pop());
var_dump($stack->pop());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "c"
string(1) "b"
string(1) "a"


Pushes values onto the stack

  • « Ds\Stack::pop
  • Ds\Stack::toArray »
  • PHP Manual
  • Stack
  • Pushes values onto the stack

Ds\Stack::push

(PECL ds >= 1.0.0)

Ds\Stack::push — Pushes values onto the stack

Beschreibung

public Ds\Stack::push ( mixed ...$values ) : void

Pushes values onto the stack.

Parameter-Liste

values

The values to push onto the stack.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Stack::push() example

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c", "d");
$stack->push(...["e", "f"]);

print_r($stack);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Stack Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Converts the stack to an Array

  • « Ds\Stack::push
  • Queue »
  • PHP Manual
  • Stack
  • Converts the stack to an Array

Ds\Stack::toArray

(PECL ds >= 1.0.0)

Ds\Stack::toArray — Converts the stack to an Array

Beschreibung

public Ds\Stack::toArray ( ) : array

Converts the stack to an Array.

Hinweis:

Casting to an Array is not supported yet.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An Array containing all the values in the same order as the stack.

Beispiele

Beispiel #1 Ds\Stack::toArray() example

<?php
$stack = new \Ds\Stack([1, 2, 3]);

var_dump($stack->toArray());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}


The Queue class

(No version information available, might only be in Git)

Einführung

A Queue is a “first in, first out” or “FIFO” collection that only allows access to the value at the front of the queue and iterates in that order, destructively.

Klassenbeschreibung

Ds\Queue implements Ds\Collection , ArrayAccess {
/* Constants */
const int MIN_CAPACITY = 8 ;
/* Methoden */
public allocate ( int $capacity ) : void
public capacity ( ) : int
public clear ( ) : void
public copy ( ) : Ds\Queue
public isEmpty ( ) : bool
public peek ( ) : mixed
public pop ( ) : mixed
public push ( mixed ...$values ) : void
public toArray ( ) : array
}

Vordefinierte Konstanten

Ds\Queue::MIN_CAPACITY

Changelog

Version | Beschreibung
PECL ds 1.3.0 | The class now implements ArrayAccess.

Inhaltsverzeichnis

  • Ds\Queue::allocate — Allocates enough memory for a required capacity
  • Ds\Queue::capacity — Returns the current capacity
  • Ds\Queue::clear — Removes all values
  • Ds\Queue::__construct — Creates a new instance
  • Ds\Queue::copy — Returns a shallow copy of the queue
  • Ds\Queue::count — Returns the number of values in the queue
  • Ds\Queue::isEmpty — Returns whether the queue is empty
  • Ds\Queue::jsonSerialize — Returns a representation that can be converted to JSON
  • Ds\Queue::peek — Returns the value at the front of the queue
  • Ds\Queue::pop — Removes and returns the value at the front of the queue
  • Ds\Queue::push — Pushes values into the queue
  • Ds\Queue::toArray — Converts the queue to an Array


Allocates enough memory for a required capacity

  • « Queue
  • Ds\Queue::capacity »
  • PHP Manual
  • Queue
  • Allocates enough memory for a required capacity

Ds\Queue::allocate

(PECL ds >= 1.0.0)

Ds\Queue::allocate — Allocates enough memory for a required capacity

Beschreibung

public Ds\Queue::allocate ( int $capacity ) : void

Ensures that enough memory is allocated for a required capacity. This removes the need to reallocate the internal as values are added.

Hinweis:

Capacity will always be rounded up to the nearest power of 2.

Parameter-Liste

capacity

The number of values for which capacity should be allocated.

Hinweis:

Capacity will stay the same if this value is less than or equal to the current capacity.

Hinweis:

Capacity will always be rounded up to the nearest power of 2.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Queue::allocate() example

<?php
$queue = new \Ds\Queue();
var_dump($queue->capacity());

$queue->allocate(100);
var_dump($queue->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(8)
int(128)


Returns the current capacity

  • « Ds\Queue::allocate
  • Ds\Queue::clear »
  • PHP Manual
  • Queue
  • Returns the current capacity

Ds\Queue::capacity

(PECL ds >= 1.0.0)

Ds\Queue::capacity — Returns the current capacity

Beschreibung

public Ds\Queue::capacity ( ) : int

Returns the current capacity.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current capacity.

Beispiele

Beispiel #1 Ds\Queue::capacity() example

<?php
$queue = new \Ds\Queue();
var_dump($queue->capacity());

$queue->push(...range(1, 50));
var_dump($queue->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(8)
int(64)


Removes all values

  • « Ds\Queue::capacity
  • Ds\Queue::__construct »
  • PHP Manual
  • Queue
  • Removes all values

Ds\Queue::clear

(PECL ds >= 1.0.0)

Ds\Queue::clear — Removes all values

Beschreibung

public Ds\Queue::clear ( ) : void

Removes all values from the queue.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Queue::clear() example

<?php
$queue = new \Ds\Queue([1, 2, 3]);
print_r($queue);

$queue->clear();
print_r($queue);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Queue Object
(
)


Creates a new instance

  • « Ds\Queue::clear
  • Ds\Queue::copy »
  • PHP Manual
  • Queue
  • Creates a new instance

Ds\Queue::__construct

(PECL ds >= 1.0.0)

Ds\Queue::__construct — Creates a new instance

Beschreibung

public Ds\Queue::__construct ( mixed $values = ? )

Creates a new instance, using either a traversable object or an Array for the initial values.

Parameter-Liste

values

A traversable object or an Array to use for the initial values.

Beispiele

Beispiel #1 Ds\Queue::__construct() example

<?php
$queue = new \Ds\Queue();
var_dump($queue);

$queue = new \Ds\Queue([1, 2, 3]);
var_dump($queue);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\Queue)#2 (0) {
}
object(Ds\Queue)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Returns a shallow copy of the queue

  • « Ds\Queue::__construct
  • Ds\Queue::count »
  • PHP Manual
  • Queue
  • Returns a shallow copy of the queue

Ds\Queue::copy

(PECL ds >= 1.0.0)

Ds\Queue::copy — Returns a shallow copy of the queue

Beschreibung

public Ds\Queue::copy ( ) : Ds\Queue

Returns a shallow copy of the queue.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a shallow copy of the queue.

Beispiele

Beispiel #1 Ds\Queue::copy() example

<?php
$a = new \Ds\Queue([1, 2, 3]);
$b = $a->copy();

// Updating the copy doesn't affect the original
$b->push(4);

print_r($a);
print_r($b);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Returns the number of values in the queue

  • « Ds\Queue::copy
  • Ds\Queue::isEmpty »
  • PHP Manual
  • Queue
  • Returns the number of values in the queue

Ds\Queue::count

(PECL ds >= 1.0.0)

Ds\Queue::count — Returns the number of values in the queue

See Countable::count()


Returns whether the queue is empty

  • « Ds\Queue::count
  • Ds\Queue::jsonSerialize »
  • PHP Manual
  • Queue
  • Returns whether the queue is empty

Ds\Queue::isEmpty

(PECL ds >= 1.0.0)

Ds\Queue::isEmpty — Returns whether the queue is empty

Beschreibung

public Ds\Queue::isEmpty ( ) : bool

Returns whether the queue is empty.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the queue is empty, false otherwise.

Beispiele

Beispiel #1 Ds\Queue::isEmpty() example

<?php
$a = new \Ds\Queue([1, 2, 3]);
$b = new \Ds\Queue();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)


Returns a representation that can be converted to JSON

  • « Ds\Queue::isEmpty
  • Ds\Queue::peek »
  • PHP Manual
  • Queue
  • Returns a representation that can be converted to JSON

Ds\Queue::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Queue::jsonSerialize — Returns a representation that can be converted to JSON

See JsonSerializable::jsonSerialize()

Hinweis:

You should never need to call this directly.


Returns the value at the front of the queue

  • « Ds\Queue::jsonSerialize
  • Ds\Queue::pop »
  • PHP Manual
  • Queue
  • Returns the value at the front of the queue

Ds\Queue::peek

(PECL ds >= 1.0.0)

Ds\Queue::peek — Returns the value at the front of the queue

Beschreibung

public Ds\Queue::peek ( ) : mixed

Returns the value at the front of the queue, but does not remove it.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value at the front of the queue.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Queue::peek() example

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c");

var_dump($queue->peek());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"


Removes and returns the value at the front of the queue

  • « Ds\Queue::peek
  • Ds\Queue::push »
  • PHP Manual
  • Queue
  • Removes and returns the value at the front of the queue

Ds\Queue::pop

(PECL ds >= 1.0.0)

Ds\Queue::pop — Removes and returns the value at the front of the queue

Beschreibung

public Ds\Queue::pop ( ) : mixed

Removes and returns the value at the front of the queue.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The removed value which was at the front of the queue.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\Queue::pop() example

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c");

var_dump($queue->pop());
var_dump($queue->pop());
var_dump($queue->pop());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"


Pushes values into the queue

  • « Ds\Queue::pop
  • Ds\Queue::toArray »
  • PHP Manual
  • Queue
  • Pushes values into the queue

Ds\Queue::push

(PECL ds >= 1.0.0)

Ds\Queue::push — Pushes values into the queue

Beschreibung

public Ds\Queue::push ( mixed ...$values ) : void

Pushes values into the queue.

Parameter-Liste

values

The values to push into the queue.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\Queue::push() example

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c", "d");
$queue->push(...["e", "f"]);

print_r($queue);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\Queue Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Converts the queue to an Array

  • « Ds\Queue::push
  • PriorityQueue »
  • PHP Manual
  • Queue
  • Converts the queue to an Array

Ds\Queue::toArray

(PECL ds >= 1.0.0)

Ds\Queue::toArray — Converts the queue to an Array

Beschreibung

public Ds\Queue::toArray ( ) : array

Converts the queue to an Array.

Hinweis:

Casting to an Array is not supported yet.

Hinweis:

This method is not destructive.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An Array containing all the values in the same order as the queue.

Beispiele

Beispiel #1 Ds\Queue::toArray() example

<?php
$queue = new \Ds\Queue([1, 2, 3]);

var_dump($queue->toArray());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


The PriorityQueue class

(No version information available, might only be in Git)

Einführung

A PriorityQueue is very similar to a Queue. Values are pushed into the queue with an assigned priority, and the value with the highest priority will always be at the front of the queue.

Implemented using a max heap.

Hinweis:

"First in, first out" ordering is preserved for values with the same priority.

Hinweis:

Iterating over a PriorityQueue is destructive, equivalent to successive pop operations until the queue is empty.

Klassenbeschreibung

Ds\PriorityQueue implements Ds\Collection {
/* Constants */
const int MIN_CAPACITY = 8 ;
/* Methoden */
public allocate ( int $capacity ) : void
public capacity ( ) : int
public clear ( ) : void
public copy ( ) : Ds\PriorityQueue
public isEmpty ( ) : bool
public peek ( ) : mixed
public pop ( ) : mixed
public push ( mixed $value , int $priority ) : void
public toArray ( ) : array
}

Vordefinierte Konstanten

Ds\PriorityQueue::MIN_CAPACITY

Inhaltsverzeichnis

  • Ds\PriorityQueue::allocate — Allocates enough memory for a required capacity
  • Ds\PriorityQueue::capacity — Returns the current capacity
  • Ds\PriorityQueue::clear — Removes all values
  • Ds\PriorityQueue::__construct — Creates a new instance
  • Ds\PriorityQueue::copy — Returns a shallow copy of the queue
  • Ds\PriorityQueue::count — Returns the number of values in the queue
  • Ds\PriorityQueue::isEmpty — Returns whether the queue is empty
  • Ds\PriorityQueue::jsonSerialize — Returns a representation that can be converted to JSON
  • Ds\PriorityQueue::peek — Returns the value at the front of the queue
  • Ds\PriorityQueue::pop — Removes and returns the value with the highest priority
  • Ds\PriorityQueue::push — Pushes values into the queue
  • Ds\PriorityQueue::toArray — Converts the queue to an Array


Allocates enough memory for a required capacity

  • « PriorityQueue
  • Ds\PriorityQueue::capacity »
  • PHP Manual
  • PriorityQueue
  • Allocates enough memory for a required capacity

Ds\PriorityQueue::allocate

(PECL ds >= 1.0.0)

Ds\PriorityQueue::allocate — Allocates enough memory for a required capacity

Beschreibung

public Ds\PriorityQueue::allocate ( int $capacity ) : void

Ensures that enough memory is allocated for a required capacity. This removes the need to reallocate the internal as values are added.

Parameter-Liste

capacity

The number of values for which capacity should be allocated.

Hinweis:

Capacity will stay the same if this value is less than or equal to the current capacity.

Hinweis:

Capacity will always be rounded up to the nearest power of 2.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\PriorityQueue::allocate() example

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue->capacity());

$queue->allocate(100);
var_dump($queue->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(8)
int(128)


Returns the current capacity

  • « Ds\PriorityQueue::allocate
  • Ds\PriorityQueue::clear »
  • PHP Manual
  • PriorityQueue
  • Returns the current capacity

Ds\PriorityQueue::capacity

(PECL ds >= 1.0.0)

Ds\PriorityQueue::capacity — Returns the current capacity

Beschreibung

public Ds\PriorityQueue::capacity ( ) : int

Returns the current capacity.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current capacity.

Beispiele

Beispiel #1 Ds\PriorityQueue::capacity() example

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue->capacity());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(8)


Removes all values

  • « Ds\PriorityQueue::capacity
  • Ds\PriorityQueue::__construct »
  • PHP Manual
  • PriorityQueue
  • Removes all values

Ds\PriorityQueue::clear

(PECL ds >= 1.0.0)

Ds\PriorityQueue::clear — Removes all values

Beschreibung

public Ds\PriorityQueue::clear ( ) : void

Removes all values from the queue.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\PriorityQueue::clear() example

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

$queue->clear();
print_r($queue);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\PriorityQueue Object
(
)


Creates a new instance

  • « Ds\PriorityQueue::clear
  • Ds\PriorityQueue::copy »
  • PHP Manual
  • PriorityQueue
  • Creates a new instance

Ds\PriorityQueue::__construct

(PECL ds >= 1.0.0)

Ds\PriorityQueue::__construct — Creates a new instance

Beschreibung

public Ds\PriorityQueue::__construct ( )

Creates a new instance.

Beispiele

Beispiel #1 Ds\PriorityQueue::__construct() example

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(Ds\PriorityQueue)#1 (0) {
}


Returns a shallow copy of the queue

  • « Ds\PriorityQueue::__construct
  • Ds\PriorityQueue::count »
  • PHP Manual
  • PriorityQueue
  • Returns a shallow copy of the queue

Ds\PriorityQueue::copy

(PECL ds >= 1.0.0)

Ds\PriorityQueue::copy — Returns a shallow copy of the queue

Beschreibung

public Ds\PriorityQueue::copy ( ) : Ds\PriorityQueue

Returns a shallow copy of the queue.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a shallow copy of the queue.

Beispiele

Beispiel #1 Ds\PriorityQueue::copy() example

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->copy());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ds\PriorityQueue Object
(
    [0] => b
    [1] => c
    [2] => a
)


Returns the number of values in the queue

  • « Ds\PriorityQueue::copy
  • Ds\PriorityQueue::isEmpty »
  • PHP Manual
  • PriorityQueue
  • Returns the number of values in the queue

Ds\PriorityQueue::count

(PECL ds >= 1.0.0)

Ds\PriorityQueue::count — Returns the number of values in the queue

See Countable::count()


Returns whether the queue is empty

  • « Ds\PriorityQueue::count
  • Ds\PriorityQueue::jsonSerialize »
  • PHP Manual
  • PriorityQueue
  • Returns whether the queue is empty

Ds\PriorityQueue::isEmpty

(PECL ds >= 1.0.0)

Ds\PriorityQueue::isEmpty — Returns whether the queue is empty

Beschreibung

public Ds\PriorityQueue::isEmpty ( ) : bool

Returns whether the queue is empty.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the queue is empty, false otherwise.

Beispiele

Beispiel #1 Ds\PriorityQueue::isEmpty() example

<?php
$a = new \Ds\PriorityQueue();
$b = new \Ds\PriorityQueue();

$a->push("a",  5);
$a->push("b", 15);
$a->push("c", 10);

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)


Returns a representation that can be converted to JSON

  • « Ds\PriorityQueue::isEmpty
  • Ds\PriorityQueue::peek »
  • PHP Manual
  • PriorityQueue
  • Returns a representation that can be converted to JSON

Ds\PriorityQueue::jsonSerialize

(PECL ds >= 1.0.0)

Ds\PriorityQueue::jsonSerialize — Returns a representation that can be converted to JSON

See JsonSerializable::jsonSerialize()

Hinweis:

You should never need to call this directly.


Returns the value at the front of the queue

  • « Ds\PriorityQueue::jsonSerialize
  • Ds\PriorityQueue::pop »
  • PHP Manual
  • PriorityQueue
  • Returns the value at the front of the queue

Ds\PriorityQueue::peek

(PECL ds >= 1.0.0)

Ds\PriorityQueue::peek — Returns the value at the front of the queue

Beschreibung

public Ds\PriorityQueue::peek ( ) : mixed

Returns the value at the front of the queue, but does not remove it.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value at the front of the queue.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\PriorityQueue::peek() example

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

var_dump($queue->peek());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "b"


Removes and returns the value with the highest priority

  • « Ds\PriorityQueue::peek
  • Ds\PriorityQueue::push »
  • PHP Manual
  • PriorityQueue
  • Removes and returns the value with the highest priority

Ds\PriorityQueue::pop

(PECL ds >= 1.0.0)

Ds\PriorityQueue::pop — Removes and returns the value with the highest priority

Beschreibung

public Ds\PriorityQueue::pop ( ) : mixed

Removes and returns the value at the front of the queue, ie. the value with the highest priority.

Hinweis:

Values with equal priority fall back to FIFO (first in first out).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The removed value which was at the front of the queue.

Fehler/Exceptions

UnderflowException if empty.

Beispiele

Beispiel #1 Ds\PriorityQueue::pop() example

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->pop());
print_r($queue->pop());
print_r($queue->pop());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "a"
string(1) "b"
string(1) "c"


Pushes values into the queue

  • « Ds\PriorityQueue::pop
  • Ds\PriorityQueue::toArray »
  • PHP Manual
  • PriorityQueue
  • Pushes values into the queue

Ds\PriorityQueue::push

(PECL ds >= 1.0.0)

Ds\PriorityQueue::push — Pushes values into the queue

Beschreibung

public Ds\PriorityQueue::push ( mixed $value , int $priority ) : void

Pushes a value with a given priority into the queue.

Parameter-Liste

value

The value to push into the queue.

priority

The priority associated with the value.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Ds\PriorityQueue::push() example

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->pop());
print_r($queue->pop());
print_r($queue->pop());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(1) "b"
string(1) "c"
string(1) "a"


Converts the queue to an Array

  • « Ds\PriorityQueue::push
  • Sonstige Dienste »
  • PHP Manual
  • PriorityQueue
  • Converts the queue to an Array

Ds\PriorityQueue::toArray

(PECL ds >= 1.0.0)

Ds\PriorityQueue::toArray — Converts the queue to an Array

Beschreibung

public Ds\PriorityQueue::toArray ( ) : array

Converts the queue to an Array.

Hinweis:

This method is not destructive.

Hinweis:

Casting to an Array is not supported yet.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An Array containing all the values in the same order as the queue.

Beispiele

Beispiel #1 Ds\PriorityQueue::toArray() example

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

var_dump($queue->toArray());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  string(1) "b"
  [1]=>
  string(1) "c"
  [2]=>
  string(1) "a"
}


Sonstige Dienste

  • cURL — CURL
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • cURL Funktionen
    • CURLFile — Die CURLFile Klasse
  • Event
    • Einführung
    • Installation/Konfiguration
    • Beispiele
    • Event flags
    • About event persistence
    • Event callbacks
    • Constructing signal events
    • Event — The Event class
    • EventBase — The EventBase class
    • EventBuffer — The EventBuffer class
    • EventBufferEvent — The EventBufferEvent class
    • About buffer event callbacks
    • EventConfig — The EventConfig class
    • EventDnsBase — The EventDnsBase class
    • EventHttp — The EventHttp class
    • EventHttpConnection — The EventHttpConnection class
    • EventHttpRequest — The EventHttpRequest class
    • EventListener — The EventListener class
    • EventSslContext — The EventSslContext class
    • EventUtil — The EventUtil class
  • FTP
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • FTP-Funktionen
  • Gearman
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • GearmanClient — The GearmanClient class
    • GearmanJob — The GearmanJob class
    • GearmanTask — The GearmanTask class
    • GearmanWorker — The GearmanWorker class
    • GearmanException — The GearmanException class
  • LDAP — Lightweight Directory Access Protocol
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Die LDAP-Funktionen PHP verwenden
    • LDAP controls
    • Beispiele
    • LDAP Funktionen
  • Memcache
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Memcache — Die Memcache Klasse
    • Memcache Funktionen
  • Memcached
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Expiration Times
    • Callbacks
    • Sessions support
    • Memcached — The Memcached class
    • MemcachedException — The MemcachedException class
  • mqseries
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • mqseries Funktionen
  • Network
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Netzwerk-Funktionen
  • RRD — RRDtool
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • RRD Funktionen
    • RRDCreator — The RRDCreator class
    • RRDGraph — The RRDGraph class
    • RRDUpdater — The RRDUpdater class
  • ScoutAPM
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Scoutapm Funktionen
  • SNMP
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • SNMP-Funktionen
    • SNMP — The SNMP class
    • SNMPException — The SNMPException class
  • Sockets
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Socket-Fehler
    • Socket-Funktionen
    • Socket — The Socket class
    • AddressInfo — The AddressInfo class
  • SSH2 — Secure Shell2
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • SSH2 Funktionen
  • Stomp — Stomp Client
    • Einführung
    • Installation/Konfiguration
    • Beispiele
    • Stomp Funktionen
    • Stomp — The Stomp class
    • StompFrame — The StompFrame class
    • StompException — The StompException class
  • SVM — Support Vector Machine
    • Einführung
    • Installation/Konfiguration
    • Beispiele
    • SVM — The SVM class
    • SVMModel — The SVMModel class
  • SVN — Subversion
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • SVN Funktionen
  • TCP — TCP Wrappers
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • TCP Funktionen
  • Varnish
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • VarnishAdmin — The VarnishAdmin class
    • VarnishStat — The VarnishStat class
    • VarnishLog — The VarnishLog class
  • YAZ
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • YAZ Funktionen
  • 0MQ messaging — ZMQ
    • Einführung
    • Installation/Konfiguration
    • ZMQ — The ZMQ class
    • ZMQContext — The ZMQContext class
    • ZMQSocket — The ZMQSocket class
    • ZMQPoll — The ZMQPoll class
    • ZMQDevice — The ZMQDevice class
  • ZooKeeper
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • ZooKeeper Funktionen
    • Zookeeper — The Zookeeper class
    • ZookeeperConfig — The ZookeeperConfig class
    • ZookeeperException — The ZookeeperException class
    • ZookeeperAuthenticationException — The ZookeeperAuthenticationException class
    • ZookeeperConnectionException — The ZookeeperConnectionException class
    • ZookeeperMarshallingException — The ZookeeperMarshallingException class
    • ZookeeperNoNodeException — The ZookeeperNoNodeException class
    • ZookeeperOperationTimeoutException — The ZookeeperOperationTimeoutException class
    • ZookeeperSessionException — The ZookeeperSessionException class


CURL

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Grundlegende Nutzung
  • cURL Funktionen
    • curl_close — Eine cURL-Session beenden
    • curl_copy_handle — Kopieren eines cURL-Handles inklusiver aller Voreinstellungen
    • curl_errno — Gibt die letzte Fehlernummer zurück
    • curl_error — Gibt einen String zurück, der den letzten Fehler der aktuellen Session enthält
    • curl_escape — URL-kodiert den angegebenen String
    • curl_exec — Eine cURL-Session ausführen
    • curl_file_create — Erstellt ein CURLFile-Objekt
    • curl_getinfo — Informationen zu einem bestimmten Transfer abfragen
    • curl_init — Eine cURL-Session initialisieren
    • curl_multi_add_handle — Fügt ein reguläres cURL-Handle einem cURL-Multi-Handle hinzu
    • curl_multi_close — Eine Gruppe von cURL-Handlern schließen
    • curl_multi_errno — Return the last multi curl error number
    • curl_multi_exec — Führt die Unter-Verbindungen des cURL-Handles aus
    • curl_multi_getcontent — Den Inhalt des cURL-Handles zurückgeben, falls CURLOPT_RETURNTRANSFER gesetzt ist
    • curl_multi_info_read — Informationen über die aktuellen Transfers abrufen
    • curl_multi_init — Gibt einen cURL-Multi-Handle zurück
    • curl_multi_remove_handle — Einen Multi-Handle von einer Menge aus cURL-Handles entfernen
    • curl_multi_select — Alle Sockets abfragen, die mit der cURL Erweiterung assoziiert sind und ausgewählt werden können
    • curl_multi_setopt — Setz eine Option für das cURL multi-Handle
    • curl_multi_strerror — Gibt einen den Fehler beschreibenden String zurück
    • curl_pause — Pausiert und setzt eine Verbindung fort
    • curl_reset — Reset all options of a libcurl session handle
    • curl_setopt_array — Mehrere Optionen für einen cURL-Transfer setzen
    • curl_setopt — Eine Option für einen cURL Transfer setzen
    • curl_share_close — Close a cURL share handle
    • curl_share_errno — Return the last share curl error number
    • curl_share_init — Initialize a cURL share handle
    • curl_share_setopt — Set an option for a cURL share handle
    • curl_share_strerror — Return string describing the given error code
    • curl_strerror — Return string describing the given error code
    • curl_unescape — Decodes the given URL encoded string
    • curl_version — Gibt die cURL-Version zurück
  • CURLFile — Die CURLFile Klasse
    • CURLFile::__construct — Erstellt ein CURLFile Objekt
    • CURLFile::getFilename — Ermittelt den Dateinamen
    • CURLFile::getMimeType — Ermittelt den Mime-Typ
    • CURLFile::getPostFilename — Ermittelt den Dateinamen für POST
    • CURLFile::setMimeType — Setzt den Mime-Typ fest
    • CURLFile::setPostFilename — Setzt den Dateinamen für POST fest


Einführung

PHP unterstützt libcurl, eine von Daniel Stenberg entwickelte Bibliothek, die Verbindungen zu verschiedensten Servern unter Verwendung diverser Protokolle erlaubt. Folgende Protokolle werden zur Zeit unterstützt: HTTP, HTTPS, FTP, gopher, telnet, DICT, FILE und LDAP. Libcurl unterstützt außerdem SSL-Zertifikate, HTTP POST, HTTP PUT, das Hochladen von Dateien mittels FTP (zu diesem Zweck kann auch die FTP-Erweiterung benutzt werden), Formular-basierte Datei-Uploads, Proxies, Cookies und Benutzer/Passwort-Authentifikation.


Anforderungen

Um cURL Funktionen nutzen zu können, muss man das » cURL-Paket installieren. PHP fordert libcurl 7.10.5 oder neuer.


Installation

Um PHP mit cURL-Unterstützung nutzen zu können, muss man PHP mit der Option --with-curl[=DIR] kompilieren, wobei DIR das Verzeichnis angibt in dem sich die Verzeichnisse lib und include befinden. In dem include Verzeichnis sollte ein Unterverzeichnis namens curl existieren, das die Dateien easy.h und curl.h enthält. Zudem sollte sich eine Datei namens libcurl.a in dem lib-Verzeichnis befinden. Vor PHP 5.5.0 konnte man PHP mit der Option --with-curlwrappers konfigurieren, um cURL für URL-Streams nutzen zu können.

Hinweis: Anmerkung für Win32-Nutzer
Um dieses Modul in einer Windows-Umgebung nutzen zu können, müssen libeay32.dll und ssleay32.dll oder, von OpenSSL 1.1 an, libcrypto-*.dll und libssl-*.dll im PATH verfügbar sein. Ebenfalls muss libssh2.dll im PATH verfügbar sein. libcurl.dll von der cURL-Webseite wird nicht benötigt.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

cURL-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
curl.cainfo | NULL | PHP_INI_SYSTEM | Verfügbar seit PHP 5.3.7.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

curl.cainfo string

Ein standardmäßiger Wert für die CURLOPT_CAINFO option. Dies ist für einen absoluten Pfad notwendig.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert zwei Ressource-Typen, ein cURL-Handle und ein cURL-Multi-Handle.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Beschreibungen und Funktionsweise dieser Konstanten sind unter curl_setopt(), curl_multi_setopt() und curl_getinfo() verfügbar.

CURLOPT_AUTOREFERER (integer)
Verfügbar seit PHP 5.1.0
CURLOPT_COOKIESESSION (integer)
Verfügbar seit PHP 5.1.0
CURLOPT_DNS_USE_GLOBAL_CACHE (integer)
CURLOPT_DNS_CACHE_TIMEOUT (integer)
CURLOPT_FTP_SSL (integer)
Verfügbar seit PHP 5.2.0
CURLFTP_CREATE_DIR (integer)
Verfübar seit PHP 7.0.7 und cURL 7.19.3
CURLFTP_CREATE_DIR_NONE (integer)
Vefügbar seit PHP 7.0.7 und cURL 7.19.3
CURLFTP_CREATE_DIR_RETRY (integer)
Verfübar seit PHP 7.0.7 und cURL 7.19.3
CURLFTPSSL_TRY (integer)
Verfügbar seit PHP 5.2.0
CURLFTPSSL_ALL (integer)
Verfügbar seit PHP 5.2.0
CURLFTPSSL_CONTROL (integer)
Verfügbar seit PHP 5.2.0
CURLFTPSSL_NONE (integer)
Verfügbar seit PHP 5.2.0
CURLOPT_PRIVATE (integer)
Verfügbar seit PHP 5.2.4
CURLOPT_FTPSSLAUTH (integer)
Verfügbar seit PHP 5.1.0
CURLOPT_PORT (integer)
CURLOPT_FILE (integer)
CURLOPT_INFILE (integer)
CURLOPT_INFILESIZE (integer)
CURLOPT_URL (integer)
CURLOPT_PROXY (integer)
CURLOPT_VERBOSE (integer)
CURLOPT_HEADER (integer)
CURLOPT_HTTPHEADER (integer)
CURLOPT_NOPROGRESS (integer)
CURLOPT_NOBODY (integer)
CURLOPT_FAILONERROR (integer)
CURLOPT_UPLOAD (integer)
CURLOPT_POST (integer)
CURLOPT_FTPLISTONLY (integer)
CURLOPT_FTPAPPEND (integer)
CURLOPT_FTP_CREATE_MISSING_DIRS (integer)
CURLOPT_NETRC (integer)
CURLOPT_FOLLOWLOCATION (integer)
Diese Konstante ist nicht verfügbar, wenn open_basedir aktiviert ist.
CURLOPT_FTPASCII (integer)
CURLOPT_PUT (integer)
CURLOPT_MUTE (integer)
CURLOPT_USERPWD (integer)
CURLOPT_PROXYUSERPWD (integer)
CURLOPT_RANGE (integer)
CURLOPT_TIMEOUT (integer)
CURLOPT_TIMEOUT_MS (integer)
CURLOPT_TCP_NODELAY (integer)
Verfügbar seit PHP 5.2.1
CURLOPT_POSTFIELDS (integer)
CURLOPT_PROGRESSFUNCTION (integer)
Verfügbar seit PHP 5.3.0
CURLOPT_REFERER (integer)
CURLOPT_USERAGENT (integer)
CURLOPT_FTPPORT (integer)
CURLOPT_FTP_USE_EPSV (integer)
CURLOPT_LOW_SPEED_LIMIT (integer)
CURLOPT_LOW_SPEED_TIME (integer)
CURLOPT_RESUME_FROM (integer)
CURLOPT_COOKIE (integer)
CURLOPT_COOKIELIST (integer)
Verfügabr seit PHP 5.5.0 und cURL 7.14.1
CURLOPT_SSLCERT (integer)
CURLOPT_SSLCERTPASSWD (integer)
CURLOPT_WRITEHEADER (integer)
CURLOPT_SSL_VERIFYHOST (integer)
CURLOPT_COOKIEFILE (integer)
CURLOPT_SSLVERSION (integer)
CURL_SSLVERSION_DEFAULT (integer)
CURL_SSLVERSION_TLSv1 (integer)
CURL_SSLVERSION_SSLv2 (integer)
CURL_SSLVERSION_SSLv3 (integer)
CURL_SSLVERSION_TLSv1_0 (integer)
Verfügbar seit PHP 5.5.19 und 5.6.3
CURL_SSLVERSION_TLSv1_1 (integer)
Verfügbar seit PHP 5.5.19 und 5.6.3
CURL_SSLVERSION_TLSv1_2 (integer)
Verfügbar seit PHP 5.5.19 und 5.6.3
CURLOPT_TIMECONDITION (integer)
CURLOPT_TIMEVALUE (integer)
CURLOPT_CUSTOMREQUEST (integer)
CURLOPT_STDERR (integer)
CURLOPT_TRANSFERTEXT (integer)
CURLOPT_RETURNTRANSFER (integer)
CURLOPT_QUOTE (integer)
CURLOPT_POSTQUOTE (integer)
CURLOPT_INTERFACE (integer)
CURLOPT_KRB4LEVEL (integer)
CURLOPT_HTTPPROXYTUNNEL (integer)
CURLOPT_FILETIME (integer)
CURLOPT_WRITEFUNCTION (integer)
CURLOPT_READFUNCTION (integer)
CURLOPT_PASSWDFUNCTION (integer)
CURLOPT_HEADERFUNCTION (integer)
CURLOPT_MAXREDIRS (integer)
CURLOPT_MAXCONNECTS (integer)
CURLOPT_CLOSEPOLICY (integer)
Entfernt in PHP 5.6.0.
CURLOPT_FRESH_CONNECT (integer)
CURLOPT_FORBID_REUSE (integer)
CURLOPT_RANDOM_FILE (integer)
CURLOPT_EGDSOCKET (integer)
CURLOPT_CONNECTTIMEOUT (integer)
CURLOPT_CONNECTTIMEOUT_MS (integer)
CURLOPT_SSL_VERIFYPEER (integer)
CURLOPT_CAINFO (integer)
CURLOPT_CAPATH (integer)
CURLOPT_COOKIEJAR (integer)
CURLOPT_SSL_CIPHER_LIST (integer)
CURLOPT_BINARYTRANSFER (integer)
CURLOPT_NOSIGNAL (integer)
CURLOPT_PROXYTYPE (integer)
Verfügbar seit cURL 7.10.
CURLOPT_BUFFERSIZE (integer)
CURLOPT_HTTPGET (integer)
CURLOPT_HTTP_VERSION (integer)
CURLOPT_SSLKEY (integer)
CURLOPT_SSLKEYTYPE (integer)
CURLOPT_SSLKEYPASSWD (integer)
CURLOPT_SSLENGINE (integer)
CURLOPT_SSLENGINE_DEFAULT (integer)
CURLOPT_SSLCERTTYPE (integer)
CURLOPT_CRLF (integer)
CURLOPT_ENCODING (integer)
CURLOPT_PROXYPORT (integer)
CURLOPT_UNRESTRICTED_AUTH (integer)
CURLOPT_FTP_USE_EPRT (integer)
CURLOPT_HTTP200ALIASES (integer)
CURLOPT_HTTPAUTH (integer)
CURLAUTH_BASIC (integer)
CURLAUTH_DIGEST (integer)
CURLAUTH_GSSNEGOTIATE (integer)
CURLAUTH_NEGOTIATE (integer)
Verfübar seit PHP 7.0.7 und cURL 7.38.0.
CURLAUTH_NTLM (integer)
CURLAUTH_NTLM_WB (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.22.0
CURLAUTH_ANY (integer)
CURLAUTH_ANYSAFE (integer)
CURLOPT_PROXYAUTH (integer)
CURLOPT_MAX_RECV_SPEED_LARGE (integer)
Verfügbar seit PHP 5.4.0 und cURL 7.15.5
CURLOPT_MAX_SEND_SPEED_LARGE (integer)
Verfügbar seit PHP 5.4.0 und cURL 7.15.5
CURLOPT_HEADEROPT (integer)
Verfübar seit PHP 7.0.7 und cURL 7.37.0
CURLOPT_PROXYHEADER (integer)
Verfübar seit PHP 7.0.7 und cURL 7.37.0
CURLCLOSEPOLICY_LEAST_RECENTLY_USED (integer)
Entfernt in PHP 5.6.0.
CURLCLOSEPOLICY_LEAST_TRAFFIC (integer)
Entfernt in PHP 5.6.0.
CURLCLOSEPOLICY_SLOWEST (integer)
Entfernt in PHP 5.6.0.
CURLCLOSEPOLICY_CALLBACK (integer)
Entfernt in PHP 5.6.0.
CURLCLOSEPOLICY_OLDEST (integer)
Entfernt in PHP 5.6.0.
CURLINFO_PRIVATE (integer)
Verfügbar seit PHP 5.2.4
CURLINFO_EFFECTIVE_URL (integer)
CURLINFO_HTTP_CODE (integer)
Von PHP 5.5.0 und cURL 7.10.8 an ist dies ein veralteter Alias von CURLINFO_RESPONSE_CODE
CURLINFO_RESPONSE_CODE (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.10.8
CURLINFO_HEADER_OUT (integer)
Verfügbar seit PHP 6.0.0
CURLINFO_HEADER_SIZE (integer)
CURLINFO_REQUEST_SIZE (integer)
CURLINFO_TOTAL_TIME (integer)
CURLINFO_NAMELOOKUP_TIME (integer)
CURLINFO_CONNECT_TIME (integer)
CURLINFO_PRETRANSFER_TIME (integer)
CURLINFO_SIZE_UPLOAD (integer)
CURLINFO_SIZE_DOWNLOAD (integer)
CURLINFO_SPEED_DOWNLOAD (integer)
CURLINFO_SPEED_UPLOAD (integer)
CURLINFO_FILETIME (integer)
CURLINFO_SSL_VERIFYRESULT (integer)
CURLINFO_CONTENT_LENGTH_DOWNLOAD (integer)
CURLINFO_CONTENT_LENGTH_UPLOAD (integer)
CURLINFO_STARTTRANSFER_TIME (integer)
CURLINFO_CONTENT_TYPE (integer)
CURLINFO_REDIRECT_TIME (integer)
CURLINFO_REDIRECT_COUNT (integer)
CURLINFO_REDIRECT_URL (string)
Verfügbar seit PHP 5.3.7
CURLINFO_PRIMARY_IP (string)
Verfügbar seit PHP 5.4.7
CURLINFO_PRIMARY_PORT (integer)
Verfügbar seit PHP 5.4.7
CURLINFO_LOCAL_IP (string)
Verfügbar seit PHP 5.4.7
CURLINFO_LOCAL_PORT (integer)
Verfügbar seit PHP 5.4.7
CURL_PUSH_OK (integer)
Verfügbar seit PHP 7.1.0 und cURL 7.44.0
CURL_PUSH_DENY (integer)
Verfügbar seit PHP 7.1.0 und cURL 7.44.0
CURL_REDIR_POST_301 (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.18.2
CURL_REDIR_POST_302 (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.18.2
CURL_REDIR_POST_303 (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.25.1
CURL_REDIR_POST_ALL (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.18.2
CURL_TIMECOND_IFMODSINCE (integer)
CURL_TIMECOND_IFUNMODSINCE (integer)
CURL_TIMECOND_LASTMOD (integer)
CURL_VERSION_ALTSVC (integer)
Verfügbar seit PHP 7.3.6 und cURL 7.64.1
CURL_VERSION_ASYNCHDNS (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.10.7
CURL_VERSION_BROTLI (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.57.0
CURL_VERSION_CONV (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.15.4
CURL_VERSION_CURLDEBUG (integer)
Verfügbar seit PHP 7.3.6 und cURL 7.19.6
CURL_VERSION_DEBUG (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.10.6
CURL_VERSION_GSSAPI (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.38.0
CURL_VERSION_GSSNEGOTIATE (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.10.6 (missbilligt seit 7.38.0)
CURL_VERSION_IDN (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.12.0
CURL_VERSION_MULTI_SSL (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.56.0
CURL_VERSION_NTLM (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.10.6
CURL_VERSION_NTLM_WB (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.22.0
CURL_VERSION_IPV6 (integer)
CURL_VERSION_KERBEROS4 (integer)
CURL_VERSION_KERBEROS5 (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.40.0
CURL_VERSION_HTTP2 (integer)
Verfügbar seit PHP 5.5.24 und 5.6.8 und cURL 7.33.0
CURL_VERSION_PSL (integer)
Verfügbar seit PHP 7.3.6 und cURL 7.47.0
CURL_VERSION_SPNEGO (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.10.8
CURL_VERSION_SSPI (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.13.2
CURL_VERSION_SSL (integer)
CURL_VERSION_TLSAUTH_SRP (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.21.4
CURL_VERSION_UNIX_SOCKETS (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.40.0
CURL_VERSION_LIBZ (integer)
CURLVERSION_NOW (integer)
CURLE_OK (integer)
CURLE_UNSUPPORTED_PROTOCOL (integer)
CURLE_FAILED_INIT (integer)
CURLE_URL_MALFORMAT (integer)
CURLE_URL_MALFORMAT_USER (integer)
CURLE_COULDNT_RESOLVE_PROXY (integer)
CURLE_COULDNT_RESOLVE_HOST (integer)
CURLE_COULDNT_CONNECT (integer)
CURLE_FTP_WEIRD_SERVER_REPLY (integer)
CURLE_FTP_ACCESS_DENIED (integer)
CURLE_FTP_USER_PASSWORD_INCORRECT (integer)
CURLE_FTP_WEIRD_PASS_REPLY (integer)
CURLE_FTP_WEIRD_USER_REPLY (integer)
CURLE_FTP_WEIRD_PASV_REPLY (integer)
CURLE_FTP_WEIRD_227_FORMAT (integer)
CURLE_FTP_CANT_GET_HOST (integer)
CURLE_FTP_CANT_RECONNECT (integer)
CURLE_FTP_COULDNT_SET_BINARY (integer)
CURLE_PARTIAL_FILE (integer)
CURLE_FTP_COULDNT_RETR_FILE (integer)
CURLE_FTP_WRITE_ERROR (integer)
CURLE_FTP_QUOTE_ERROR (integer)
CURLE_HTTP_NOT_FOUND (integer)
CURLE_WRITE_ERROR (integer)
CURLE_MALFORMAT_USER (integer)
CURLE_FTP_COULDNT_STOR_FILE (integer)
CURLE_READ_ERROR (integer)
CURLE_OUT_OF_MEMORY (integer)
CURLE_OPERATION_TIMEOUTED (integer)
CURLE_FTP_COULDNT_SET_ASCII (integer)
CURLE_FTP_PORT_FAILED (integer)
CURLE_FTP_COULDNT_USE_REST (integer)
CURLE_FTP_COULDNT_GET_SIZE (integer)
CURLE_HTTP_RANGE_ERROR (integer)
CURLE_HTTP_POST_ERROR (integer)
CURLE_SSL_CONNECT_ERROR (integer)
CURLE_FTP_BAD_DOWNLOAD_RESUME (integer)
CURLE_FILE_COULDNT_READ_FILE (integer)
CURLE_LDAP_CANNOT_BIND (integer)
CURLE_LDAP_SEARCH_FAILED (integer)
CURLE_LIBRARY_NOT_FOUND (integer)
CURLE_FUNCTION_NOT_FOUND (integer)
CURLE_ABORTED_BY_CALLBACK (integer)
CURLE_BAD_FUNCTION_ARGUMENT (integer)
CURLE_BAD_CALLING_ORDER (integer)
CURLE_HTTP_PORT_FAILED (integer)
CURLE_BAD_PASSWORD_ENTERED (integer)
CURLE_TOO_MANY_REDIRECTS (integer)
CURLE_UNKNOWN_TELNET_OPTION (integer)
CURLE_TELNET_OPTION_SYNTAX (integer)
CURLE_OBSOLETE (integer)
CURLE_SSL_PEER_CERTIFICATE (integer)
CURLE_GOT_NOTHING (integer)
CURLE_SSL_ENGINE_NOTFOUND (integer)
CURLE_SSL_ENGINE_SETFAILED (integer)
CURLE_SEND_ERROR (integer)
CURLE_RECV_ERROR (integer)
CURLE_SHARE_IN_USE (integer)
CURLE_SSL_CERTPROBLEM (integer)
CURLE_SSL_CIPHER (integer)
CURLE_SSL_CACERT (integer)
CURLE_BAD_CONTENT_ENCODING (integer)
CURLE_LDAP_INVALID_URL (integer)
CURLE_FILESIZE_EXCEEDED (integer)
CURLE_FTP_SSL_FAILED (integer)
CURLE_SSH (integer)
Verfügbar seit PHP 5.3.0 und cURL 7.16.1.
CURLFTPAUTH_DEFAULT (integer)
Verfügbar seit PHP 5.1.0
CURLFTPAUTH_SSL (integer)
Verfügbar seit PHP 5.1.0
CURLFTPAUTH_TLS (integer)
Verfügbar seit PHP 5.1.0
CURLPROXY_HTTP (integer)
Verfügbar seit cURL 7.1.0.
CURLPROXY_HTTP_1_0 (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.19.3
CURLPROXY_SOCKS4 (integer)
Verfübar seit PHP 5.2.10 und cURL 7.10.
CURLPROXY_SOCKS5 (integer)
Verfügbar seit cURL 7.10.
CURL_NETRC_OPTIONAL (integer)
CURL_NETRC_IGNORED (integer)
CURL_NETRC_REQUIRED (integer)
CURL_HTTP_VERSION_NONE (integer)
CURL_HTTP_VERSION_1_0 (integer)
CURL_HTTP_VERSION_1_1 (integer)
CURL_HTTP_VERSION_2 (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.43.0
CURL_HTTP_VERSION_2_0 (integer)
Verfügbar seit PHP 5.5.24 und 5.6.8 und cURL 7.33.0
CURL_HTTP_VERSION_2TLS (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.47.0
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.49.0
CURLM_CALL_MULTI_PERFORM (integer)
CURLM_OK (integer)
CURLM_BAD_HANDLE (integer)
CURLM_BAD_EASY_HANDLE (integer)
CURLM_OUT_OF_MEMORY (integer)
CURLM_INTERNAL_ERROR (integer)
CURLMSG_DONE (integer)
CURLOPT_KEYPASSWD (integer)
CURLOPT_SSH_AUTH_TYPES (integer)
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 (integer)
CURLOPT_SSH_PRIVATE_KEYFILE (integer)
CURLOPT_SSH_PUBLIC_KEYFILE (integer)
CURLOPT_SSL_OPTIONS (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.25.0
CURLSSLOPT_ALLOW_BEAST (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.25.0
CURLSSLOPT_NO_REVOKE (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.44.0
CURLOPT_USERNAME (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.19.1
CURLOPT_SASL_IR (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.31.0
CURLOPT_DNS_INTERFACE (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.33.0
CURLOPT_DNS_LOCAL_IP4 (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.33.0
CURLOPT_DNS_LOCAL_IP6 (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.33.0
CURLOPT_XOAUTH2_BEARER (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.33.0
CURLOPT_LOGIN_OPTIONS (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.34.0
CURLOPT_EXPECT_100_TIMEOUT_MS (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.36.0
CURLOPT_SSL_ENABLE_ALPN (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.36.0
CURLOPT_SSL_ENABLE_NPN (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.36.0
CURLOPT_PINNEDPUBLICKEY (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.39.0
CURLOPT_UNIX_SOCKET_PATH (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.40.0
CURLOPT_SSL_VERIFYSTATUS (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.41.0
CURLOPT_PATH_AS_IS (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.42.0
CURLOPT_SSL_FALSESTART (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.42.0
CURLOPT_PIPEWAIT (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.43.0
CURLOPT_PROXY_SERVICE_NAME (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.43.0
CURLOPT_SERVICE_NAME (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.43.0
CURLOPT_DEFAULT_PROTOCOL (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.45.0
CURLOPT_STREAM_WEIGHT (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.46.0
CURLOPT_TFTP_NO_OPTIONS (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.48.0
CURLOPT_CONNECT_TO (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.49.0
CURLOPT_TCP_FASTOPEN (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.49.0
CURLOPT_TCP_KEEPALIVE (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.25.0
CURLOPT_TCP_KEEPIDLE (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.25.0
CURLOPT_TCP_KEEPINTVL (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.25.0
CURLMOPT_PIPELINING (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.16.0.
CURLMOPT_MAXCONNECTS (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.16.3.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.30.0
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.30.0
CURLMOPT_MAX_HOST_CONNECTIONS (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.30.0
CURLMOPT_MAX_PIPELINE_LENGTH (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.30.0
CURLMOPT_MAX_TOTAL_CONNECTIONS (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.30.0
CURLMOPT_PUSHFUNCTION (integer)
Verfügbar seit PHP 7.1.0 und cURL 7.44.0
CURLSSH_AUTH_AGENT (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.28.0
CURLSSH_AUTH_ANY (integer)
CURLSSH_AUTH_DEFAULT (integer)
CURLSSH_AUTH_HOST (integer)
CURLSSH_AUTH_KEYBOARD (integer)
CURLSSH_AUTH_NONE (integer)
CURLSSH_AUTH_PASSWORD (integer)
CURLSSH_AUTH_PUBLICKEY (integer)
CURL_WRAPPERS_ENABLED (integer)
Definiert, wenn PHP mit --with-curlwrappers konfiguriert wurde. In PHP 5.5.0 nach PECL verschoben.
CURLPAUSE_ALL (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.18.0.
CURLPAUSE_CONT (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.18.0.
CURLPAUSE_RECV (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.18.0.
CURLPAUSE_RECV_CONT (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.18.0.
CURLPAUSE_SEND (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.18.0.
CURLPAUSE_SEND_CONT (integer)
Verfügbar seit PHP 5.5.0 und cURL 7.18.0.
CURLPIPE_NOTHING (integer)
Verfügbar seit PHP 7.0.0 und cURL 7.43.0.
CURLPIPE_HTTP1 (integer)
Verfügbar seit PHP 7.0.0 und cURL 7.43.0.
CURLPIPE_MULTIPLEX (integer)
Verfübar seit PHP 7.0.0 und cURL 7.43.0.
CURLPROXY_SOCKS4A (integer)
Verfügbar seit PHP 5.5.23 und PHP 5.6.7 und cURL 7.18.0.
CURLPROXY_SOCKS5_HOSTNAME (integer)
Verfügbar seit PHP 5.5.23 und PHP 5.6.7 und cURL 7.18.0.
CURLHEADER_SEPARATE (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.37.0.
CURLHEADER_UNIFIED (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.37.0.
CURLPROTO_SMB (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.40.0.
CURLPROTO_SMBS (integer)
Verfügbar seit PHP 7.0.7 und cURL 7.40.0.
CURLOPT_REQUEST_TARGET (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.55.0.
CURLAUTH_GSSAPI (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.54.1
CURLE_WEIRD_SERVER_REPLY (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.51.0
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.55.0
CURLINFO_CONTENT_LENGTH_UPLOAD_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.55.0
CURLINFO_HTTP_VERSION (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.50.0
CURLINFO_PROTOCOL (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLINFO_PROXY_SSL_VERIFYRESULT (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLINFO_SCHEME (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLINFO_SIZE_DOWNLOAD_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.50.0
CURLINFO_SIZE_UPLOAD_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.50.0
CURLINFO_SPEED_DOWNLOAD_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.50.0
CURLINFO_SPEED_UPLOAD_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.50.0
CURL_MAX_READ_SIZE (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.53.0
CURLOPT_ABSTRACT_UNIX_SOCKET (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.53.0
CURLOPT_KEEP_SENDING_ON_ERROR (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.51.0
CURLOPT_PRE_PROXY (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_CAINFO (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_CAPATH (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_CRLFILE (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_KEYPASSWD (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_PINNEDPUBLICKEY (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_SSLCERT (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_SSLCERTTYPE (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_SSL_CIPHER_LIST (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_SSLKEY (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_SSLKEYTYPE (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_SSL_OPTIONS (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_SSL_VERIFYHOST (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_SSL_VERIFYPEER (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_SSLVERSION (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_PASSWORD (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_TYPE (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_USERNAME (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLOPT_SOCKS5_AUTH (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.55.0
CURLOPT_SUPPRESS_CONNECT_HEADERS (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.54.0
CURLPROXY_HTTPS (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURL_SSLVERSION_MAX_DEFAULT (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.54.0
CURL_SSLVERSION_MAX_NONE (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_0 (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_1 (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_2 (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_3 (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.54.0
CURL_SSLVERSION_TLSv1_3 (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURL_VERSION_HTTPS_PROXY (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.52.0
CURLAUTH_BEARER (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.61.0.
CURLINFO_APPCONNECT_TIME_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.61.0
CURLINFO_CONNECT_TIME_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.61.0
CURLINFO_FILETIME_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.59.0
CURLINFO_NAMELOOKUP_TIME_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.61.0
CURLINFO_PRETRANSFER_TIME_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.61.0
CURLINFO_REDIRECT_TIME_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.61.0
CURLINFO_STARTTRANSFER_TIME_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.61.0
CURLINFO_TOTAL_TIME_T (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.61.0
CURL_LOCK_DATA_CONNECT (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.10.0
CURL_LOCK_DATA_PSL (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.61.0
CURLOPT_DISALLOW_USERNAME_IN_URL (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.61.0
CURLOPT_DNS_SHUFFLE_ADDRESSES (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.60.0
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.59.0
CURLOPT_HAPROXYPROTOCOL (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.60.0
CURLOPT_PROXY_TLS13_CIPHERS (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.61.0
CURLOPT_SSH_COMPRESSION (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.56.0
CURLOPT_TIMEVALUE_LARGE (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.59.0
CURLOPT_TLS13_CIPHERS (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.61.0
CURLSSH_AUTH_GSSAPI (integer)
Verfügbar seit PHP 7.3.0 und cURL 7.58.0
CURLOPT_HTTP09_ALLOWED (integer)
Verfügbar seit PHP 7.3.15 und 7.4.3, und cURL 7.64.0


  • « Vordefinierte Konstanten
  • Grundlegende Nutzung »
  • PHP Manual
  • cURL
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Grundlegende Nutzung


Grundlegende Nutzung

Wenn PHP mit cURL-Unterstützung kompiliert und installiert ist, kann mit der Benutzung der cURL-Funktionen begonnen werden. Die Idee die hinter den Funktionen steckt, ist dass man mit Hilfe von curl_init() eine cURL-Session initialisiert, alle für den Transfer nötigen Optionen unter Verwendung von curl_setopt() setzt und dann die Session mittels curl_exec() ausführt, um dann schließlich curl_close() zur Beendigung der Session zu nutzen. Folgendes Beispiel nutzt die cURL-Funktionen, um die Homepage von example.com in eine Datei zu speichern:

Beispiel #1 Nutzung von PHPs cURL-Modul, um die Homepage von example.com herunterzuladen

<?php

$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
if(curl_error($ch)) {
    fwrite($fp, curl_error($ch));
}
curl_close($ch);
fclose($fp);
?>


cURL Funktionen

Inhaltsverzeichnis

  • curl_close — Eine cURL-Session beenden
  • curl_copy_handle — Kopieren eines cURL-Handles inklusiver aller Voreinstellungen
  • curl_errno — Gibt die letzte Fehlernummer zurück
  • curl_error — Gibt einen String zurück, der den letzten Fehler der aktuellen Session enthält
  • curl_escape — URL-kodiert den angegebenen String
  • curl_exec — Eine cURL-Session ausführen
  • curl_file_create — Erstellt ein CURLFile-Objekt
  • curl_getinfo — Informationen zu einem bestimmten Transfer abfragen
  • curl_init — Eine cURL-Session initialisieren
  • curl_multi_add_handle — Fügt ein reguläres cURL-Handle einem cURL-Multi-Handle hinzu
  • curl_multi_close — Eine Gruppe von cURL-Handlern schließen
  • curl_multi_errno — Return the last multi curl error number
  • curl_multi_exec — Führt die Unter-Verbindungen des cURL-Handles aus
  • curl_multi_getcontent — Den Inhalt des cURL-Handles zurückgeben, falls CURLOPT_RETURNTRANSFER gesetzt ist
  • curl_multi_info_read — Informationen über die aktuellen Transfers abrufen
  • curl_multi_init — Gibt einen cURL-Multi-Handle zurück
  • curl_multi_remove_handle — Einen Multi-Handle von einer Menge aus cURL-Handles entfernen
  • curl_multi_select — Alle Sockets abfragen, die mit der cURL Erweiterung assoziiert sind und ausgewählt werden können
  • curl_multi_setopt — Setz eine Option für das cURL multi-Handle
  • curl_multi_strerror — Gibt einen den Fehler beschreibenden String zurück
  • curl_pause — Pausiert und setzt eine Verbindung fort
  • curl_reset — Reset all options of a libcurl session handle
  • curl_setopt_array — Mehrere Optionen für einen cURL-Transfer setzen
  • curl_setopt — Eine Option für einen cURL Transfer setzen
  • curl_share_close — Close a cURL share handle
  • curl_share_errno — Return the last share curl error number
  • curl_share_init — Initialize a cURL share handle
  • curl_share_setopt — Set an option for a cURL share handle
  • curl_share_strerror — Return string describing the given error code
  • curl_strerror — Return string describing the given error code
  • curl_unescape — Decodes the given URL encoded string
  • curl_version — Gibt die cURL-Version zurück


Eine cURL-Session beenden

  • « cURL Funktionen
  • curl_copy_handle »
  • PHP Manual
  • cURL Funktionen
  • Eine cURL-Session beenden

curl_close

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_close — Eine cURL-Session beenden

Beschreibung

curl_close ( resource $ch ) : void

Diese Funktion beendet eine cURL-Session und gibt alle Resourcen frei. Der cURL-Handle ch wird ebenfalls gelöscht.

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Initialisierung einer neuen cURL-Session und das abrufen einer Webseite

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>

Siehe auch

  • curl_init() - Eine cURL-Session initialisieren
  • curl_multi_close() - Eine Gruppe von cURL-Handlern schließen


Kopieren eines cURL-Handles inklusiver aller Voreinstellungen

  • « curl_close
  • curl_errno »
  • PHP Manual
  • cURL Funktionen
  • Kopieren eines cURL-Handles inklusiver aller Voreinstellungen

curl_copy_handle

(PHP 5, PHP 7, PHP 8)

curl_copy_handle — Kopieren eines cURL-Handles inklusiver aller Voreinstellungen

Beschreibung

curl_copy_handle ( resource $ch ) : resource

Diese Funktion kopiert ein cURL-Handle und gibt ein neues Handle mit den gleichen Voreinstellungen zurück.

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

Rückgabewerte

Gibt ein neues cURL-Handle zurück.

Beispiele

Beispiel #1 cURL-Handle kopieren

<?php
// erzeuge einen neuen cURL-Handle
$ch = curl_init();

// setze den URL und andere Optionen
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch, CURLOPT_HEADER, 0);

// handle kopieren
$ch2 = curl_copy_handle($ch);

// URL auslesen und im Browser ausgeben
curl_exec($ch2);

// schliesse die cURL-Handles
curl_close($ch2);
curl_close($ch);
?>


Gibt die letzte Fehlernummer zurück

  • « curl_copy_handle
  • curl_error »
  • PHP Manual
  • cURL Funktionen
  • Gibt die letzte Fehlernummer zurück

curl_errno

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

curl_errno — Gibt die letzte Fehlernummer zurück

Beschreibung

curl_errno ( resource $ch ) : int

Gibt die Fehlernummer der letzten cURL-Operation zurück.

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

Rückgabewerte

Gibt die Fehlernummer zurück oder 0 (null), wenn kein Fehler aufgetreten ist.

Beispiele

Beispiel #1 curl_errno()-Beispiel

<?php
// Eine cURL-Ressource für ein nicht existierendes Ziel erstellen
$ch = curl_init('http://404.php.net/');

// ausführen...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);

// prüfen, ob ein Fehler aufgetreten ist
if(curl_errno($ch))
{
    echo 'cURL-Fehler: ' . curl_error($ch);
}

// Ressource schließen
curl_close($ch);
?>

Siehe auch

  • curl_error() - Gibt einen String zurück, der den letzten Fehler der aktuellen Session enthält
  • » cURL-Fehler-Nummern


Gibt einen String zurück, der den letzten Fehler der aktuellen Session enthält

  • « curl_errno
  • curl_escape »
  • PHP Manual
  • cURL Funktionen
  • Gibt einen String zurück, der den letzten Fehler der aktuellen Session enthält

curl_error

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

curl_error — Gibt einen String zurück, der den letzten Fehler der aktuellen Session enthält

Beschreibung

curl_error ( resource $ch ) : string

Gibt eine Fehlermeldung in Klartext für die letzte cURL-Operation zurück.

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

Rückgabewerte

Gibt die Fehlermeldung oder, falls kein Fehler aufgetreten ist, '' (den leeren String) zurück.

Beispiele

Beispiel #1 curl_error()-Beispiel

<?php
// Eine cURL-Ressource für ein nicht existierendes Ziel erstellen
$ch = curl_init('http://404.php.net/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if(curl_exec($ch) === false)
{
    echo 'Curl-Fehler: ' . curl_error($ch);
}
else
{
    echo 'Operation ohne Fehler vollständig ausgeführt';
}

// Ressource schließen
curl_close($ch);
?>

Siehe auch

  • curl_errno() - Gibt die letzte Fehlernummer zurück
  • » cURL-Fehler-Meldungen


URL-kodiert den angegebenen String

  • « curl_error
  • curl_exec »
  • PHP Manual
  • cURL Funktionen
  • URL-kodiert den angegebenen String

curl_escape

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_escape — URL-kodiert den angegebenen String

Beschreibung

curl_escape ( resource $ch , string $str ) : string

Diese Funktion URL-kodiert den angegebenen String gemäß » RFC 3986.

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

str

Der zu kodierende String.

Rückgabewerte

Gibt den kodierten String zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 curl_escape() Beispiel

<?php
// Neues cURL-Handle erstellen
$ch = curl_init();

// String kodieren, der als GET-Parameter verwendet wird
$location = curl_escape($ch, 'Hofbräuhaus / München');
// Ergebnis: Hofbr%C3%A4uhaus%20%2F%20M%C3%BCnchen

// URL mit dem kodierten String erstellen
$url = "http://example.com/add_location.php?location={$location}";
// Ergebnis: http://example.com/add_location.php?location=Hofbr%C3%A4uhaus%20%2F%20M%C3%BCnchen

// HTTP-Anfrage senden und cURL-Handle schließen
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
?>

Siehe auch

  • curl_unescape() - Decodes the given URL encoded string
  • urlencode() - URL-kodiert einen String
  • rawurlencode() - URL-Kodierung nach RFC 3986
  • » RFC 3986


Eine cURL-Session ausführen

  • « curl_escape
  • curl_file_create »
  • PHP Manual
  • cURL Funktionen
  • Eine cURL-Session ausführen

curl_exec

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_exec — Eine cURL-Session ausführen

Beschreibung

curl_exec ( resource $ch ) : mixed

Ausführen der übergegebenen cURL-Session.

Diese Funktion sollte aufgerufen werden, nachdem eine cURL-Session initialisiert wurde und alle Optionen für jene gesetzt sind.

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Ist jedoch die Option CURLOPT_RETURNTRANSFER gesetzt so wird das Ergebnis des cURL-Transfers zurückgegeben, im Falle eines Fehlschlags false.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Hinweis:

Es ist zu beachten, dass Antwort-Statuscodes, die Fehler anzeigen (wie etwa 404 Not found), nicht als Fehlschlag angesehen werden. curl_getinfo() kann verwendet werden, um auf solche zu prüfen.

Beispiele

Beispiel #1 Abrufen einer Webseite

<?php
 // erzeuge einen neuen cURL-Handle
 $ch = curl_init();

 // setze die URL und andere Optionen
 curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
 curl_setopt($ch, CURLOPT_HEADER, 0);

 // führe die Aktion aus und gib die Daten an den Browser weiter
 curl_exec($ch);

 // schließe den cURL-Handle und gib die Systemresourcen frei
 curl_close($ch);
 ?>

Siehe auch

  • curl_multi_exec() - Führt die Unter-Verbindungen des cURL-Handles aus


Erstellt ein CURLFile-Objekt

  • « curl_exec
  • curl_getinfo »
  • PHP Manual
  • cURL Funktionen
  • Erstellt ein CURLFile-Objekt

curl_file_create

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_file_create — Erstellt ein CURLFile-Objekt

Beschreibung

Diese Funktion ist ein Alias für: CURLFile::__construct()


Informationen zu einem bestimmten Transfer abfragen

  • « curl_file_create
  • curl_init »
  • PHP Manual
  • cURL Funktionen
  • Informationen zu einem bestimmten Transfer abfragen

curl_getinfo

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

curl_getinfo — Informationen zu einem bestimmten Transfer abfragen

Beschreibung

curl_getinfo ( resource $ch , int $opt = ? ) : mixed

Gibt Informationen über den letzen Transfer zurück.

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

opt

Eine der folgenden Konstanten:

  • CURLINFO_EFFECTIVE_URL - Letzter effektiver URL
  • CURLINFO_HTTP_CODE - Der letzte Response-Code. Von PHP 5.5.0 und cURL 7.10.8 an ist dies ein veralteter Alias von CURLINFO_RESPONSE_CODE
  • CURLINFO_FILETIME - Letzte Änderung des Dokuments, bei aktivierter CURLOPT_FILETIME Option; wenn -1 zurückgegeben wird ist die Zeit unbekannt
  • CURLINFO_TOTAL_TIME - Gesamtdauer des letzten Transfers in Sekunden
  • CURLINFO_NAMELOOKUP_TIME - Zeit in Sekunden zur Auflösung des Hostnamens
  • CURLINFO_CONNECT_TIME - Dauer des Verbindungsaufbaus in Sekunden
  • CURLINFO_PRETRANSFER_TIME - Zeit in Sekunden zwischen dem Start und dem eigentlichen Beginn des Empfangs
  • CURLINFO_STARTTRANSFER_TIME - Zeit in Sekunden bis zur Übertragung des ersten Bytes
  • CURLINFO_REDIRECT_COUNT - Anzahl der Weiterleitungen, bei aktivierter CURLOPT_FOLLOWLOCATION Option
  • CURLINFO_REDIRECT_TIME - Zeit in Sekunden, die von allen Umleitungsschritten beansprucht wird, bevor der eigentliche Transfer beginnt
  • CURLINFO_REDIRECT_URL - Bei deaktivierter CURLOPT_FOLLOWLOCATION: die Weiterleitungs-URL, die in der letzten Transaktion gefunden wurde, und die als nächstes manuell angefordert werden sollte. Bei aktivierter CURLOPT_FOLLOWLOCATION Option ist dies immer leer. Die Weiterleitungs-URL ist in diesem Fall in CURLINFO_EFFECTIVE_URL verfügbar
  • CURLINFO_PRIMARY_IP - Die IP-Adresse der jüngsten Verbindung
  • CURLINFO_PRIMARY_PORT - Ziel-Port der jüngsten Verbindung
  • CURLINFO_LOCAL_IP - lokale (Quell-) IP-Adresse der jüngsten Verbindung
  • CURLINFO_LOCAL_PORT - lokaler (Quell-) Port der jüngsten Verbindung
  • CURLINFO_SIZE_UPLOAD - Anzahl der gesendeten Bytes
  • CURLINFO_SIZE_DOWNLOAD - Anzahl der empfangenen Bytes
  • CURLINFO_SPEED_DOWNLOAD - Durchschnittliche Download-Geschwindigkeit
  • CURLINFO_SPEED_UPLOAD - Durchschnittliche Upload-Geschwindigkeit
  • CURLINFO_HEADER_SIZE - Gesamtgröße aller empfangenen Header
  • CURLINFO_HEADER_OUT - Der gesendete Request. Damit dies funktioniert, muss die CURLINFO_HEADER_OUT Option durch Aufruf von curl_setopt() zum Handle hinzugefügt werden
  • CURLINFO_REQUEST_SIZE - Gesamtgröße aller Abfragen, momentan nur für HTTP verfügbar
  • CURLINFO_SSL_VERIFYRESULT - Ergebnis der SSL-Zertifikat-Überprüfung, angefordert durch das Setzen von CURLOPT_SSL_VERIFYPEER
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD - Die Größe des Downloads, ermittelt aus dem Content-Length-Header
  • CURLINFO_CONTENT_LENGTH_UPLOAD - Festgesetzte Größe des Uploads
  • CURLINFO_CONTENT_TYPE - Content-Type: des angeforderten Dokuments. NULL zeigt an, dass der Server keinen gültigen Content-Type: Header gesendet hat
  • CURLINFO_PRIVATE - Private Daten, die mit diesem cURL Handle zugehörig sind, und die zuvor mit der CURLOPT_PRIVATE Option von curl_setopt() gesetzt wurden
  • CURLINFO_RESPONSE_CODE - Der letzte Response-Code
  • CURLINFO_HTTP_CONNECTCODE - Der CONNECT Response-Code
  • CURLINFO_HTTPAUTH_AVAIL - Eine Bitmaske, die die verfügbaren Authentifikationsmethode(n) gemäß der vorherigen Response anzeigt
  • CURLINFO_PROXYAUTH_AVAIL - Eine Bitmaske, die die verfügbaren Proxy-Authentifikationsmethode(n) gemäß der vorherigen Response anzeigt
  • CURLINFO_OS_ERRNO - Errno eines Verbindungsfehlers. Die Zahl ist OS- und systemabhängig.
  • CURLINFO_NUM_CONNECTS - Die Anzahl der Verbindungen, die cURL erzeugen musste, um die vorherigen Übertragung durchzuführen
  • CURLINFO_SSL_ENGINES - Die unterstützten OpenSSL Crypto-Engines
  • CURLINFO_COOKIELIST - Alle bekannten Cookies
  • CURLINFO_FTP_ENTRY_PATH - Entry-Pfad des FTP-Server
  • CURLINFO_APPCONNECT_TIME - Die Zeitdauer in Sekunden, die bis zum SSL/SSH-Verbindungsaufbau/Handshake zum entfernten Server verstrichen ist
  • CURLINFO_CERTINFO - Die TLS Zertifikatskette
  • CURLINFO_CONDITION_UNMET - Info über eine nicht eingehaltene Zeitbedingung
  • CURLINFO_RTSP_CLIENT_CSEQ - Die nächste CSeq des RTSP-Clients
  • CURLINFO_RTSP_CSEQ_RECV - Die zuletzt empfangene CSeq
  • CURLINFO_RTSP_SERVER_CSEQ - Die nächste CSeq des RTSP-Servers
  • CURLINFO_RTSP_SESSION_ID - Die RTSP Session-ID
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD_T - Die Länge des Download-Rumpfs. Das ist der Wert, der aus dem Content-Type: Feld gelesen wurde. -1 wenn die Größe nicht bekannt ist
  • CURLINFO_CONTENT_LENGTH_UPLOAD_T - Die angegebene Größe des Uploads. -1 wenn die Größe nicht bekannt ist
  • CURLINFO_HTTP_VERSION - Die Version, die in der letzten HTTP-Verbindung verwendet wurde. Der Rückgabewert ist eine der definierten CURL_HTTP_VERSION_* Konstanten oder 0, wenn die Version nicht ermittelt werden kann
  • CURLINFO_PROTOCOL - Das Protokoll, das in der letzten HTTP-Verbindung verwendet wurde. Der Rückgabewert ist genau einer der CURLPROTO_* Werte
  • CURLINFO_PROXY_SSL_VERIFYRESULT - Das Ergebnis der Zertifikatsprüfung, die angefordert wurde (durch Verwendung der CURLOPT_PROXY_SSL_VERIFYPEER Option). Nur für HTTPS-Proxies verwendet
  • CURLINFO_SCHEME - Das URL-Schema, das für die jüngste Verbindung verwendet wurde
  • CURLINFO_SIZE_DOWNLOAD_T - Die Gesamtanzahl von Bytes, die heruntergeladen wurden. Die Anzahl betrifft nur die letzte Übertragung, und wird für jede neue Übertragung zurückgesetzt
  • CURLINFO_SIZE_UPLOAD_T - Die Gesamtanzahl von Bytes, die hochgeladen wurden
  • CURLINFO_SPEED_DOWNLOAD_T - Die durchschnittliche Download-Geschwindigkeit in Bytes pro Sekunde, die CURL für den vollständigen Download gemessen hat
  • CURLINFO_SPEED_UPLOAD_T - Die durchschnittliche Upload-Geschwindigkeit in Bytes pro Sekunde, die CURL für den vollständigen Upload gemessen hat
  • CURLINFO_APPCONNECT_TIME_T - Die Zeit in Mikrosekunden, die vom Beginn bis zur Vollendung des SSL/SSH-Verbindung/Handshake zum Remote-Host vergangen ist
  • CURLINFO_CONNECT_TIME_T - Die Gesamtdauer in Mikrosekunden, vom Beginn bis zur Vollendung der Verbindung zum Remote-Host (oder Proxy)
  • CURLINFO_FILETIME_T - Letzte Änderung des abgerufenen Dokuments (als Unix-Zeitstempel); eine Alternative zu CURLINFO_FILETIME, die es Systemen mit 32-Bit Ganzzahlvariablen ermöglicht, Daten außerhalb des 32-Bit-Zeitstempelbereichs zu extrahieren
  • CURLINFO_NAMELOOKUP_TIME_T - Dauer in Mikrosekunden vom Beginn bis zur Vervollständigung der Namensauflösung
  • CURLINFO_PRETRANSFER_TIME_T - benötigte Zeit vom Beginn bis zum eigentlichen Beginn der Dateiübertragung
  • CURLINFO_REDIRECT_TIME_T - Gesamtdauer in Mikrosekunden, für alle Weiterleitungsschritte, einschließlich Namenslookup, Verbindung, Vorübertragung und Übertragung, bis zum Beginn der eigentlichen Transaktion
  • CURLINFO_STARTTRANSFER_TIME_T - benötigte Zeit in Mikrosekunden vom Beginn bis zum Empfang des ersten Bytes
  • CURLINFO_TOTAL_TIME_T - Gesamtdauer in Mikrosekunden für die vorhergehende Übertragung, einschließlich Namensauflösung, TCP-Verbindung usw.

Rückgabewerte

Wird der Parameter opt angegeben, wird der entsprechende Wert zurückgegeben. Andernfalls liefert die Funktion ein assoziatives Array mit den folgenden Elementen zurück (analog dem Parameter opt), oder false im Fehlerfall:

  • "url"
  • "content_type"
  • "http_code"
  • "header_size"
  • "request_size"
  • "filetime"
  • "ssl_verify_result"
  • "redirect_count"
  • "total_time"
  • "namelookup_time"
  • "connect_time"
  • "pretransfer_time"
  • "size_upload"
  • "size_download"
  • "speed_download"
  • "speed_upload"
  • "download_content_length"
  • "upload_content_length"
  • "starttransfer_time"
  • "redirect_time"
  • "certinfo"
  • "primary_ip"
  • "primary_port"
  • "local_ip"
  • "local_port"
  • "redirect_url"
  • "request_header" (Dies ist nur gesetzt, wenn die CURLINFO_HEADER_OUT durch einen vorherigen Aufruf von curl_setopt() gesetzt wurde)
Es ist zu beachten, dass private Daten nicht im assoziativen Array enthalten sind, sondern individuell durch CURLINFO_PRIVATE Option abgerufen werden müssen.

Changelog

Version | Beschreibung
7.3.0 | CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, CURLINFO_SCHEME, CURLINFO_SIZE_DOWNLOAD_T, CURLINFO_SIZE_UPLOAD_T, CURLINFO_SPEED_DOWNLOAD_T, CURLINFO_SPEED_UPLOAD_T, CURLINFO_APPCONNECT_TIME_T, CURLINFO_CONNECT_TIME_T, CURLINFO_FILETIME_T, CURLINFO_NAMELOOKUP_TIME_T, CURLINFO_PRETRANSFER_TIME_T, CURLINFO_REDIRECT_TIME_T, CURLINFO_STARTTRANSFER_TIME_T, CURLINFO_TOTAL_TIME_T eingeführt.

Beispiele

Beispiel #1 curl_getinfo()-Beispiel

<?php
// Eine cURL-Resource erstellen
$ch = curl_init('http://www.example.com/');

// ausführen
curl_exec($ch);

// prüfen, ob ein Fehler aufgetreten ist
if(!curl_errno($ch))
{
    $info = curl_getinfo($ch);

    echo 'Es wurden ' . $info['total_time'] . ' Sekunden benötigt für einen Request an ' . $info['url'];
}

// Resource schliessen
curl_close($ch);
?>

Beispiel #2 curl_getinfo()-Beispiel mit opt Parameter

<?php
// Eine cURL-Resource erstellen
$ch = curl_init('http://www.example.com/');

// ausführen
curl_exec($ch);

// HTTP-Status-Code prüfen
if (!curl_errno($ch)) {
  switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
    case 200:  # OK
      break;
    default:
      echo 'Unerwarter HTTP-Code: ', $http_code, "\n";
  }
}

// Resource schliessen
curl_close($ch);
?>

Anmerkungen

Hinweis:

Informationen, die mit dieser Funktion gesammelt wurden, bleiben erhalten, wenn das Handle wiederverwendet wird. Das bedeutet, dass außer wenn eine Statistik von dieser Funktion intern überschrieben wird, die vorherige Info zurück gebeben wird.


Eine cURL-Session initialisieren

  • « curl_getinfo
  • curl_multi_add_handle »
  • PHP Manual
  • cURL Funktionen
  • Eine cURL-Session initialisieren

curl_init

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_init — Eine cURL-Session initialisieren

Beschreibung

curl_init ( string $url = null ) : resource

Initialisiert eine neue cURL-Session und gibt einen cURL-Handler zurück, der mit den curl_setopt(), curl_exec(), und curl_close() Funktionen genutzt werden kann.

Parameter-Liste

url

Sofern angegeben wird die Option CURLOPT_URL mit dem entsprechenden Wert initialisiert. Diese Option kann auch manuell per curl_setopt() gesetzt werden.

Hinweis:

Das file Protokoll wird von cURL deaktiviert, wenn open_basedir gesetzt ist.

Rückgabewerte

Gibt ein cURL-Handle im Erfolgsfall zurück, false im Fehlerfall.

Beispiele

Beispiel #1 Abrufen einer Webseite

<?php
 // erzeuge einen neuen cURL-Handle
 $ch = curl_init();

 // setze die URL und andere Optionen
 curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
 curl_setopt($ch, CURLOPT_HEADER, 0);

 // führe die Aktion aus und gib die Daten an den Browser weiter
 curl_exec($ch);

 // schließe den cURL-Handle und gib die Systemresourcen frei
 curl_close($ch);
 ?>

Siehe auch

  • curl_close() - Eine cURL-Session beenden
  • curl_multi_init() - Gibt einen cURL-Multi-Handle zurück


Fügt ein reguläres cURL-Handle einem cURL-Multi-Handle hinzu

  • « curl_init
  • curl_multi_close »
  • PHP Manual
  • cURL Funktionen
  • Fügt ein reguläres cURL-Handle einem cURL-Multi-Handle hinzu

curl_multi_add_handle

(PHP 5, PHP 7, PHP 8)

curl_multi_add_handle — Fügt ein reguläres cURL-Handle einem cURL-Multi-Handle hinzu

Beschreibung

curl_multi_add_handle ( resource $mh , resource $ch ) : int

Fügt das Handle ch dem Multi-Handle mh zu

Parameter-Liste

multi_handle

Ein von curl_multi_init() zurückgegebenes cURL-Multihandle.

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

Rückgabewerte

Gibt im Erfolgsfall 0 zurück, andernfalls einen der CURLM_XXX Fehler-Codes.

Beispiele

Beispiel #1 curl_multi_add_handle()-Beispiel

In diesem Beispiel werden zwei cURL-Handles erstellt, einem Mehrfach-Handle hinzugefügt und anschließend asynchron ausgeführt.

<?php
// zwei cURL Resourcen erstellen
$ch1 = curl_init();
$ch2 = curl_init();

// URL und weitere Optionen setzen
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

// Mehrfach-Handle erstellen
$mh = curl_multi_init();

// die zuvor erstellten Handles hinzufügen
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

// Mehrfach-Handle ausführen

do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh);
    }
} while ($active && $status == CURLM_OK);

// Alle Handles schließen
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>

Siehe auch

  • curl_multi_remove_handle() - Einen Multi-Handle von einer Menge aus cURL-Handles entfernen
  • curl_multi_init() - Gibt einen cURL-Multi-Handle zurück
  • curl_init() - Eine cURL-Session initialisieren


Eine Gruppe von cURL-Handlern schließen

  • « curl_multi_add_handle
  • curl_multi_errno »
  • PHP Manual
  • cURL Funktionen
  • Eine Gruppe von cURL-Handlern schließen

curl_multi_close

(PHP 5, PHP 7, PHP 8)

curl_multi_close — Eine Gruppe von cURL-Handlern schließen

Beschreibung

curl_multi_close ( resource $mh ) : void

Schließt eine Gruppe von cURL-Handlern.

Parameter-Liste

multi_handle

Ein von curl_multi_init() zurückgegebenes cURL-Multihandle.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 curl_multi_close() example

In diesem Beispiel werden zwei cURL-Handles erstellt, einem Mehrfach-Handle hinzugefügt und anschließend aysnchron ausgeführt.

<?php
// zwei cURL Resourcen erstellen
$ch1 = curl_init();
$ch2 = curl_init();

// URL und weitere Optionen setzen
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

// Mehrfach-Handle erstellen
$mh = curl_multi_init();

// die zuvor erstellten Handles hinzufügen
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

// Mehrfach-Handle ausführen

do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh);
    }
} while ($active && $status == CURLM_OK);

// Alle Handles schließen
curl_multi_remove_handle($mh, $ch1);
curl_close($ch1);
curl_multi_remove_handle($mh, $ch2);
curl_close($ch2);
curl_multi_close($mh);

?>

Siehe auch

  • curl_multi_init() - Gibt einen cURL-Multi-Handle zurück
  • curl_close() - Eine cURL-Session beenden


Return the last multi curl error number

  • « curl_multi_close
  • curl_multi_exec »
  • PHP Manual
  • cURL Funktionen
  • Return the last multi curl error number

curl_multi_errno

(PHP 7 >= 7.1.0, PHP 8)

curl_multi_errno — Return the last multi curl error number

Beschreibung

curl_multi_errno ( CurlMultiHandle $multi_handle ) : int

Return an integer containing the last multi curl error number.

Parameter-Liste

multi_handle

Ein von curl_multi_init() zurückgegebenes cURL-Multihandle.

Rückgabewerte

Return an integer containing the last multi curl error number.

Changelog

Version | Beschreibung
8.0.0 | The function no longer returns false on failure.
8.0.0 | multi_handle expects a CurlMultiHandle instance now; previously, a resource was expected.

Siehe auch

  • curl_errno() - Gibt die letzte Fehlernummer zurück


Führt die Unter-Verbindungen des cURL-Handles aus

  • « curl_multi_errno
  • curl_multi_getcontent »
  • PHP Manual
  • cURL Funktionen
  • Führt die Unter-Verbindungen des cURL-Handles aus

curl_multi_exec

(PHP 5, PHP 7, PHP 8)

curl_multi_exec — Führt die Unter-Verbindungen des cURL-Handles aus

Beschreibung

curl_multi_exec ( resource $mh , int &$still_running ) : int

Verarbeitet alle Handles; diese Methode kann unabhängig davon aufgerufen werden, ob eines der Handles Daten lesen oder schreiben muß.

Parameter-Liste

multi_handle

Ein von curl_multi_init() zurückgegebenes cURL-Multihandle.

still_running

Eine Referenz auf ein Flag um festzustellen, ob auf einem oder mehreren Handles noch gearbeitet wird.

Rückgabewerte

Ein cURL-Code der in den cURL Vordefinierten Konstanten definiert ist.

Hinweis:

Es werden nur Fehler zurückgegeben, die den Handle-Stack betreffen. Auch wenn CURLM_OK zurückgegeben wird können auf einzelnen Handles Fehler aufgetreten sein.

Beispiele

Beispiel #1 curl_multi_exec()-Beispiel

In diesem Beispiel werden zwei cURL-Handles erstellt, einem Mehrfach-Handle hinzugefügt und anschließend asynchron ausgeführt.

<?php
// zwei cURL Resourcen erstellen
$ch1 = curl_init();
$ch2 = curl_init();

// URL und weitere Optionen setzen
curl_setopt($ch1, CURLOPT_URL, "http://example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

// Mehrfach-Handle erstellen
$mh = curl_multi_init();

// die zuvor erstellten Handles hinzufügen
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

// Mehrfach-Handle ausführen

do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        // Einen Moment auf weitere Aktivität warten
        curl_multi_select($mh);
    }
} while ($active && $status == CURLM_OK);

// Alle Handles schließen
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

Siehe auch

  • curl_multi_init() - Gibt einen cURL-Multi-Handle zurück
  • curl_multi_select() - Alle Sockets abfragen, die mit der cURL Erweiterung assoziiert sind und ausgewählt werden können
  • curl_exec() - Eine cURL-Session ausführen


Den Inhalt des cURL-Handles zurückgeben, falls CURLOPT_RETURNTRANSFER gesetzt ist

  • « curl_multi_exec
  • curl_multi_info_read »
  • PHP Manual
  • cURL Funktionen
  • Den Inhalt des cURL-Handles zurückgeben, falls CURLOPT_RETURNTRANSFER gesetzt ist

curl_multi_getcontent

(PHP 5, PHP 7, PHP 8)

curl_multi_getcontent — Den Inhalt des cURL-Handles zurückgeben, falls CURLOPT_RETURNTRANSFER gesetzt ist

Beschreibung

curl_multi_getcontent ( resource $ch ) : string

Wenn CURLOPT_RETURNTRANSFER für ein cURL-Handle gesetzt ist dann gibt diese Funktion den Inhalt des Handles als String zurück.

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

Rückgabewerte

Den Inhalt des cURL-Handles zurückgeben, falls CURLOPT_RETURNTRANSFER gesetzt ist

Siehe auch

  • curl_multi_init() - Gibt einen cURL-Multi-Handle zurück


Informationen über die aktuellen Transfers abrufen

  • « curl_multi_getcontent
  • curl_multi_init »
  • PHP Manual
  • cURL Funktionen
  • Informationen über die aktuellen Transfers abrufen

curl_multi_info_read

(PHP 5, PHP 7, PHP 8)

curl_multi_info_read — Informationen über die aktuellen Transfers abrufen

Beschreibung

curl_multi_info_read ( resource $mh , int &$msgs_in_queue = null ) : array

Ruft Informationen oder Nachrichten der einzelnen Transfers ab sofern vorhanden. Dabei kann es sich beispielsweise um Fehlercodes handeln, aber auch schlicht um die Information, daß ein Transfer abgeschlossen ist.

Wiederholte Aufrufe dieser Funktion liefern immer ein neues Ergebnis, bis durch die Rückgabe von false signalisiert wird daß keine weiteren Informationen verfügbar sind. Der Parameter msgs_in_queue enthält die Anzahl der Informationen die nach Aufruf der Funktion verbleiben.

Warnung

Mit dem Aufruf von curl_multi_remove_handle(). werden diese Daten gelöscht.

Parameter-Liste

multi_handle

Ein von curl_multi_init() zurückgegebenes cURL-Multihandle.

msgs_in_queue

Anzahl der verbleibenden Informationen

Rückgabewerte

Gibt im Erfolgfall ein assoziatives Array zurück, andernfalls false.

Inhalt des zurückgegebenen Arrays
Key: | Value:
msg | Die Konstante CURLMSG_DONE . Andere Rückgabewerte sind derzeit nicht verfügbar.
result | Eine der CURLE_*-Konstanten. Wenn kein Fehler auftrat ist das Ergebnis CURLE_OK.
handle | Die entsprechende Resource vom Typ curl.

Beispiele

Beispiel #1 Ein curl_multi_info_read()-Beispiel

<?php

$urls = array(
   "http://www.cnn.com/",
   "http://www.bbc.co.uk/",
   "http://www.yahoo.com/"
);

$mh = curl_multi_init();

foreach ($urls as $i => $url) {
    $conn[$i] = curl_init($url);
    curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
    curl_multi_add_handle($mh, $conn[$i]);
}

do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh);
    }
    while (false !== ($info = curl_multi_info_read($mh))) {
        var_dump($info);
    }
} while ($active && $status == CURLM_OK);

foreach ($urls as $i => $url) {
    $res[$i] = curl_multi_getcontent($conn[$i]);
    curl_close($conn[$i]);
}

var_dump(curl_multi_info_read($mh));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(5) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(7) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(6) of type (curl)
}
bool(false)

Siehe auch

  • curl_multi_init() - Gibt einen cURL-Multi-Handle zurück


Gibt einen cURL-Multi-Handle zurück

  • « curl_multi_info_read
  • curl_multi_remove_handle »
  • PHP Manual
  • cURL Funktionen
  • Gibt einen cURL-Multi-Handle zurück

curl_multi_init

(PHP 5, PHP 7, PHP 8)

curl_multi_init — Gibt einen cURL-Multi-Handle zurück

Beschreibung

curl_multi_init ( ) : resource

Erlaubt die asynchrone Verarbeitung mehrerer cURL-Handles.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt im Erfolgsfall ein cURL-Handle zurück, andernfalls false.

Beispiele

Beispiel #1 curl_multi_init()-Beispiel

In diesem Beispiel werden zwei cURL-Handles erstellt, einem Mehrfach-Handle hinzugefügt und anschließend asynchron ausgeführt.

<?php
// zwei cURL Resourcen erstellen
$ch1 = curl_init();
$ch2 = curl_init();

// URL und weitere Optionen setzen
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

// Mehrfach-Handle erstellen
$mh = curl_multi_init();

// die zuvor erstellten Handles hinzufügen
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

// Mehrfach-Handle ausführen

do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh);
    }
} while ($active && $status == CURLM_OK);

// Handles schliessen
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

Siehe auch

  • curl_init() - Eine cURL-Session initialisieren
  • curl_multi_close() - Eine Gruppe von cURL-Handlern schließen


Einen Multi-Handle von einer Menge aus cURL-Handles entfernen

  • « curl_multi_init
  • curl_multi_select »
  • PHP Manual
  • cURL Funktionen
  • Einen Multi-Handle von einer Menge aus cURL-Handles entfernen

curl_multi_remove_handle

(PHP 5, PHP 7, PHP 8)

curl_multi_remove_handle — Einen Multi-Handle von einer Menge aus cURL-Handles entfernen

Beschreibung

curl_multi_remove_handle ( resource $mh , resource $ch ) : int

Etnfernt das angegebene ch Handle von der mh Handle-Gruppe. Nach dem Entfernen des Handle ch kann problemlos curl_exec() für dieses Handle aufgerufen werden. Das Entfernen des Handles ch während dessen Nutzung wird alle Transfers für dieses Handle beenden.

Parameter-Liste

multi_handle

Ein von curl_multi_init() zurückgegebenes cURL-Multihandle.

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

Rückgabewerte

Gibt im Erfolgsfall 0 zurück, andernfalls einen der CURLM_XXX Fehler-Codes.

Siehe auch

  • curl_init() - Eine cURL-Session initialisieren
  • curl_multi_init() - Gibt einen cURL-Multi-Handle zurück
  • curl_multi_add_handle() - Fügt ein reguläres cURL-Handle einem cURL-Multi-Handle hinzu


Alle Sockets abfragen, die mit der cURL Erweiterung assoziiert sind und ausgewählt werden können

  • « curl_multi_remove_handle
  • curl_multi_setopt »
  • PHP Manual
  • cURL Funktionen
  • Alle Sockets abfragen, die mit der cURL Erweiterung assoziiert sind und ausgewählt werden können

curl_multi_select

(PHP 5, PHP 7, PHP 8)

curl_multi_select — Alle Sockets abfragen, die mit der cURL Erweiterung assoziiert sind und ausgewählt werden können

Beschreibung

curl_multi_select ( resource $mh , float $timeout = 1.0 ) : int

Blockiert bis Aktivität auf einer der Verbindungen stattfindet.

Parameter-Liste

multi_handle

Ein von curl_multi_init() zurückgegebenes cURL-Multihandle.

timeout

Zeit in Sekunden die auf eine Antwort gewartet wird

Rückgabewerte

Gibt bei erfolgreicher Ausführung die Anzahl der Bezeichner in der Bezeichner-Sammlung zurück. Dies kann 0 sein, wenn es keine Aktivität bei einem der Bezeichner gab. Tritt ein Fehler oder Timeout auf gibt die Funktion -1 zurück.

Siehe auch

  • curl_multi_init() - Gibt einen cURL-Multi-Handle zurück


Setz eine Option für das cURL multi-Handle

  • « curl_multi_select
  • curl_multi_strerror »
  • PHP Manual
  • cURL Funktionen
  • Setz eine Option für das cURL multi-Handle

curl_multi_setopt

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_multi_setopt — Setz eine Option für das cURL multi-Handle

Beschreibung

curl_multi_setopt ( resource $mh , int $option , mixed $value ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

mh

option

Eine der CURLMOPT_* Konstanten.

value

Der zu option zu setzende Wert.

value sollte ein int sein für die folgenden Werte der option Parameter:

Option | Set value to
CURLMOPT_PIPELINING | Übergib 1 zum aktivieren oder 0 zum deaktivieren. Das Aktivieren von multi-Handles wird zu dem Versuch führen, PHP Pipelining so weit wie es für Transfers, die dieses Handle verwenden, möglich ist. Das bedeutet, dass wenn Sie eine zweite Anfrage hinzufügen, die eine bereits existierende Verbindung verwendet, wird diese auf der selben Verbindung "gepiped". Von cURL 7.43.0 an ist der Wert eine Bitmaske, und es kann ebenfalls 2 übergeben werden, um zu versuchen, den neuen Transfer über eine bestehende HTTP/2 Verbindung zu multiplexen, falls möglich. Das Übergeben von 3 weist cURL an, Pipelining und Multiplexing unabhängig voneinander zu versuchen. Von cURL 7.62.0 an hat das Setzen des Pipelining-Bit keine Wirkung. Anstelle der Interger-Literale können ebenfalls die CURLPIPE_* Konstanten verwendet werden, falls verfügbar.
CURLMOPT_MAXCONNECTS | Übergeben Sie eine Zahl, die als die maximale Menge an gleichzeitig geöffneten Verbindungen verwendet wird, die libcurl zwischenspeichern kann. Standardmäßig wird die Anzahl erhöht, so dass viermal soviele Verbindungen zwischengespeichert werden können, wie Handles mit curl_multi_add_handle() hinzugefügt wurden. Wenn der Cache gefüllt ist, schließt cURL die älteste Verbindung im Cache, um das Anwachsen der offenen Verbindungen zu vermeiden.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE | Eine Zahl, die den Chunklängenschwellenwert für das Pipelining in Bytes angibt, ist zu übergeben.
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE | Eine Zahl, die den Größenschwellenwert für das Pipelining in Bytes angibt, ist zu übergeben.
CURLMOPT_MAX_HOST_CONNECTIONS | Eine Zahl, die die Höchstanzahl von Verbindungen zu einem einzelnen Host angibt, ist zu übergeben.
CURLMOPT_MAX_PIPELINE_LENGTH | Eine Zahl, die die Höchstanzahl von Requests in einer Pipeline angibt, ist zu übergeben.
CURLMOPT_MAX_TOTAL_CONNECTIONS | Einze Zahl, die die Höchstanzahl von gleichzeitig offenen Verbindungen angibt, ist zu übergeben.
CURLMOPT_PUSHFUNCTION Ein callable, das registriert wird, um Server-Pushs zu behandeln, ist zu übergeben; es sollte folgende Signatur haben:
pushfunction ( resource $parent_ch , resource $pushed_ch , array $headers ) : int
parent_ch

Das Eltern-cURL-Handle (der vom Client durchgeführte Request).

pushed_ch

Ein neues cURL-Handle für den gepushten Request.

headers

Die Push-Promise-Header.

Die Push-Funktion soll entweder CURL_PUSH_OK, falls es den Push behandeln kann, oder CURL_PUSH_DENY, um diesen zurückzuweisen, zurückgeben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | CURLMOPT_PUSHFUNCTION wurde eingeführt.
7.0.7 | CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH und CURLMOPT_MAX_TOTAL_CONNECTIONS wurden eingeführt.


Gibt einen den Fehler beschreibenden String zurück

  • « curl_multi_setopt
  • curl_pause »
  • PHP Manual
  • cURL Funktionen
  • Gibt einen den Fehler beschreibenden String zurück

curl_multi_strerror

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_multi_strerror — Gibt einen den Fehler beschreibenden String zurück

Beschreibung

curl_multi_strerror ( int $errornum ) : string

Gibt eine Fehlermeldung in Textform zurück, die den gegebenen CURLM Fehlercode beschreibt.

Parameter-Liste

errornum

Eine der» CURLM Fehlercode Konstanten.

Rückgabewerte

Gibt einen Fehler-String für eienn gültigen Fehlercode zurück, andernfalls null

Beispiele

Beispiel #1 curl_multi_strerror() Beispiel

<?php
// Erzeugt cURL-handles
$ch1 = curl_init("http://example.com"/);
$ch2 = curl_init("http://php.net/");

// Erzeugt ein cURL multi-Handle
$mh = curl_multi_init();

// Fügt die Handles zum multi-handle hinzu
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);

// Führt das Multi-Handle aus
do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh);
    }
} while ($active && $status === CURLM_OK);

// Auf Fehler prüfen
if ($status != CURLM_OK) {
    // Fehlermeldung anzeigen
    echo "FEHLER!\n " . curl_multi_strerror($status);
}
?>

Siehe auch

  • curl_strerror() - Return string describing the given error code
  • » cURL Fehlercodes


Pausiert und setzt eine Verbindung fort

  • « curl_multi_strerror
  • curl_reset »
  • PHP Manual
  • cURL Funktionen
  • Pausiert und setzt eine Verbindung fort

curl_pause

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_pause — Pausiert und setzt eine Verbindung fort

Beschreibung

curl_pause ( resource $ch , int $bitmask ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

bitmask

Eine der CURLPAUSE_*-Konstanten.

Rückgabewerte

Gibt einen Error-Code (CURLE_OK für keine Fehler).


Reset all options of a libcurl session handle

  • « curl_pause
  • curl_setopt_array »
  • PHP Manual
  • cURL Funktionen
  • Reset all options of a libcurl session handle

curl_reset

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_reset — Reset all options of a libcurl session handle

Beschreibung

curl_reset ( CurlHandle $handle ) : void

This function re-initializes all options set on the given cURL handle to the default values.

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | handle expects a CurlHandle instance now; previously, a resource was expected.

Beispiele

Beispiel #1 curl_reset() example

<?php
// Create a curl handle
$ch = curl_init();

// Set CURLOPT_USERAGENT option
curl_setopt($ch, CURLOPT_USERAGENT, "My test user-agent");

// Reset all previously set options
curl_reset($ch);

// Send HTTP request
curl_setopt($ch, CURLOPT_URL, 'http://example.com/');
curl_exec($ch); // the previously set user-agent will be not sent, it has been reset by curl_reset

// Close the handle
curl_close($ch);
?>

Anmerkungen

Hinweis:

curl_reset() also resets the URL given as the curl_init() parameter.

Siehe auch

  • curl_setopt() - Eine Option für einen cURL Transfer setzen


Mehrere Optionen für einen cURL-Transfer setzen

  • « curl_reset
  • curl_setopt »
  • PHP Manual
  • cURL Funktionen
  • Mehrere Optionen für einen cURL-Transfer setzen

curl_setopt_array

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

curl_setopt_array — Mehrere Optionen für einen cURL-Transfer setzen

Beschreibung

curl_setopt_array ( resource $ch , array $options ) : bool

Setzt mehrere Optionen für eine cURL-Session. Diese Funktion ist nützlich, um eine große Anzahl an Optionen zu setzen, ohne wiederholt curl_setopt() aufrufen zu müssen.

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

options

Ein array das die zu setzenden Optionen und die entsprechenden Werte enthält. Die Array-Schlüssel sollten gültige curl_setopt()-Konstanten resp. deren Integer- Equivalent sein.

Rückgabewerte

Gibt true zurück, wenn alle Optionen erfolgreich gesetzt werden konnten. Konnte eine Option nicht gesetzt werden wird unmittelbar false zurückgegeben und alle folgenden Optionen im Parameter options werden ignoriert.

Beispiele

Beispiel #1 Initialisierung einer cURL-Session und holen einer Webseite

<?php
// neues cURL-Handle erstellen
$ch = curl_init();

// URL und andere Optionen setzen
$options = array(CURLOPT_URL => 'http://www.example.com/',
                 CURLOPT_HEADER => false
                );

curl_setopt_array($ch, $options);

// URL holen und an der Browser weitergeben
curl_exec($ch);

// cURL-Handle schließen und Systemresourcen freigeben
curl_close($ch);
?>

Für PHP-Versionen vor PHP 5.1.3 kann diese Funktion simuliert werden durch:

Beispiel #2 Eine eigene Implementierung von curl_setopt_array()

<?php
if (!function_exists('curl_setopt_array')) {
   function curl_setopt_array(&$ch, $curl_options)
   {
       foreach ($curl_options as $option => $value) {
           if (!curl_setopt($ch, $option, $value)) {
               return false;
           }
       }
       return true;
   }
}
?>

Anmerkungen

Hinweis:

Analog zu curl_setopt() wird ein für CURLOPT_POST übergebenes Array als multipart/form-data, ein URL-kodierter String als application/x-www-form-urlencoded kodiert.

Siehe auch

  • curl_setopt() - Eine Option für einen cURL Transfer setzen


Eine Option für einen cURL Transfer setzen

  • « curl_setopt_array
  • curl_share_close »
  • PHP Manual
  • cURL Funktionen
  • Eine Option für einen cURL Transfer setzen

curl_setopt

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_setopt — Eine Option für einen cURL Transfer setzen

Beschreibung

curl_setopt ( resource $ch , int $option , mixed $value ) : bool

Setzt eine Option für das angegeben cURL-Handle

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

option

Die zu setzende CURLOPT_XXX-Option

value

Der Wert für value

value sollte ein boolean für die folgenden Werte des Parameters option sein:

Option | Wert für value | Anmerkungen
CURLOPT_AUTOREFERER | true um automatisch den Referer: in Abfragen zu setzen, die einem Redirect per Location: folgen
CURLOPT_BINARYTRANSFER | true um die unbearbeiteten Daten zurückzugeben wenn CURLOPT_RETURNTRANSFER gesetzt ist. | Ab PHP 5.1.3 hat diese Option keine Auswirkungen mehr: die unbearbeitenten Daten werden immer zurückgegeben, wenn CURLOPT_RETURNTRANSFER gesetzt ist.
CURLOPT_COOKIESESSION | true um diesen Request als neue "Cookie Session" zu behandeln. Somit wird libcurl alle cookies die geladen werden sollen ignorieren, sofern es sich um "Session Cookies" einer vorherigen Session handelt. Standardmässig lädt und speichert libcurl alle cookies, unabhängig davon, ob es "Session Cookies" sind. Bei "Session Cookies" handelt es sich um Cookies ohne Ablaufdatum, die nur für die aktuelle Session gültig sind.
CURLOPT_CERTINFO | true um die SSL Zertifikatsinformation bei sicheren Übertragungen auf STDERR auszugeben. | Hinzugefügt in cURL 7.19.1. Verfügbar seit PHP 5.3.2. Erfordert, dass CURLOPT_VERBOSE gesetzt ist, um zu wirken.
CURLOPT_CONNECT_ONLY | true weist die Bibliothek an, die gesamte erforderlichen Proxy-Authentifizierung und den Verbindungsaufbau durchzuführen, aber keine Datenübertragung. Diese Option ist für HTTP, SMTP und POP3 implementiert. | Hinzugefügt in 7.15.2. Verfügbar seit PHP 5.5.0.
CURLOPT_CRLF | true um Unix-Zeilenumbrüche beim Transfer in CRLF-Zeilenumbrüche umzuwandeln.
CURLOPT_DISALLOW_USERNAME_IN_URL | true um URLs, die einen Benutzernamen enthalten, zu verbieten. Benutzernamen sind per Voreinstellung erlaubt (0). | Hinzugefügt in cURL 7.61.0. Verfügbar seit PHP 7.3.0.
CURLOPT_DNS_SHUFFLE_ADDRESSES | true um die Reihenfolge aller zurückgegeber Adressen zu mischen, so dass sie in zufälliger Reihenfolge verwendet werden, wenn ein Name aufgelöst wird, und mehr als eine IP-Adresse zurückgegeben wurde. Dies kann bewirken, dass IPv4 vor IPv6 verwendet wird, oder umgekehrt. | Hinzugefügt in cURL 7.60.0. Verfügbar seit PHP 7.3.0.
CURLOPT_HAPROXYPROTOCOL | true um einen HAProxy PROXY-Protokoll v1 Header zu Beginn der Verbindung zu senden. Standardmäßig wird dieser Header nicht gesendet. | Hinzugefügt in 7.60.0. Verfügbar seit PHP 7.3.0.
CURLOPT_SSH_COMPRESSION | true um die eingebaute SSH-Komprimierung zu aktivieren. Dies ist eine Anfrage, kein Befehl; der Server kann diese ignorieren. | Hinzugefügt in 7.56.0. Verfügbar seit PHP 7.3.0.
CURLOPT_DNS_USE_GLOBAL_CACHE | true um den globalen DNS-Cache zu nutzen. Diese Option ist nicht thread-safe. Sie ist standardmäßig aktiviert, wenn PHP für Singlethread-Verwendung kompiliert wurde (CLI, FCGI, Apache2-Prefork, etc.)
CURLOPT_FAILONERROR | true um PHP anzuweisen, bei Fehlern (HTTP-Code ist größer oder gleich 400) eine ausführliche Fehlermeldung zu liefern. Das Standardverhalten ist, die Seite normal zurückzugeben und den Code zu ignorieren.
CURLOPT_SSL_FALSESTART | true, um TLS-False-Start zu aktivieren. | Hinzugefügt in cURL 7.42.0. Verfügbar seit PHP 7.0.7.
CURLOPT_FILETIME | true um zu versuchen, das Änderungsdatum des serverseitigen Dokuments zu ermitteln. Der Wert kann über die Funktion curl_getinfo() unter Verwendung des Parameters CURLINFO_FILETIME ermittelt werden.
CURLOPT_FOLLOWLOCATION | true um jedem "Location: "-Header zu folgen, den der Server als Teil der HTTP-Header zurückgibt. Die Verarbeitung erfolgt rekursiv, PHP wird jedem "Location: "-Header folgen, sofern nicht CURLOPT_MAXREDIRS gesetzt ist.
CURLOPT_FORBID_REUSE | true um die Verbindung nach der Verarbeitung explizit zu schließen, so daß sie nicht wiederverwendet werden kann.
CURLOPT_FRESH_CONNECT | true um den expliziten Aufbau einer neuen Verbindung zu erzwingen, anstatt auf eine gecachte zurückzugreifen.
CURLOPT_FTP_USE_EPRT | true, um EPRT (und LPRT) für aktive FTP-Downloads zu nutzen. Auf false setzen, um EPRT und LPRT zu deaktivieren und ausschließlich PORT zu nutzen.
CURLOPT_FTP_USE_EPSV | true um vor dem Fallback auf PASV zunächst eine EPSV-Anweisung für einen FTP-Transfer auszuführen. Auf false setzen, um EPSV zu deaktivieren.
CURLOPT_FTP_CREATE_MISSING_DIRS | true um fehlende Verzeichnisse zu erzeugen, wenn eine FTP-Operation auf einen Pfad stößt, der zurzeit nicht existiert.
CURLOPT_FTPAPPEND | true um Daten an die serverseitige Datei anzuhängen anstatt diese zu überschreiben.
CURLOPT_TCP_NODELAY | true, um den Nagle-Algorithmus von TCP zu deaktivieren, der verucht, die Anzahl kleiner Pakete im Netzwerk zu reduzieren. | Verfügbar seit PHP 5.2.1 für Versionen, die mit libcurl 7.11.2 oder höher kompiliert wurden.
CURLOPT_FTPASCII | Ein Alias für CURLOPT_TRANSFERTEXT, das bevorzugt werden sollte.
CURLOPT_FTPLISTONLY | true um nur die Namen in einem FTP-Verzeichnis aufzulisten.
CURLOPT_HEADER | true um den Header in die Ausgabe aufzunehmen.
CURLINFO_HEADER_OUT | true um den Request-String des Handles zu verfolgen. | Verfügbar seit PHP 5.1.3. DasPrefix CURLINFO_ ist beabsichtigt.
CURLOPT_HTTP09_ALLOWED | Ob HTTP/0.9 Antworten erlaubt sind. Der Standardwert ist von libcurl 7.66.0 an false; zuvor war er true. | Verfügbar seit PHP 7.3.15 bzw. 7.4.3, wenn mit libcurl >= 7.64.0 kompiliert
CURLOPT_HTTPGET | true um die HTTP-Request-Methode auf GET zu setzen. Da dies die Standard-Methode ist sollte dies nur nach einem Wechsel der Request-Methode notwendig sein.
CURLOPT_HTTPPROXYTUNNEL | true um einen vorhandenen Proxy-Tunnel zu nutzen
CURLOPT_HTTP_CONTENT_DECODING | false um den Original-HTTP-Response-Body zu erhalten. | Verfügbar von PHP 5.5.0 an, wenn mit libcurl >= 7.16.2 kompiliert.
CURLOPT_KEEP_SENDING_ON_ERROR | true um den Anfragerumpf weiterhin zu senden, wenn der zurückgegebene HTTP-Code gleich oder größer als 300 ist. Standardmäßig würde das Senden beendet, und der Stream oder die Verbindung geschlossen. Zweckmäßig für manuelle NTML-Authentifizierung. Die meisten Anwendungen benötigen diese Option nicht. | Verfügbar von PHP 7.3.0 an, wenn mit libcurl >= 7.51.0 kompiliert.
CURLOPT_MUTE | true um jegliche Ausgabe der cURL-Funktionen zu unterbinden | Entfernt in cURL 7.15.5 (statt dessen kann CURLOPT_RETURNTRANSFER verwendet werden)
CURLOPT_NETRC | true um die lokale Datei ~/.netrc nach Benutzername/Passwort für die Authorisierung des Zugriffs zu durchsuchen.
CURLOPT_NOBODY | true um den Body nicht in die Ausgabe aufzunehmen.
CURLOPT_NOPROGRESS

true um die Fortschrittsanzeige für den Transfer auszublenden.

Hinweis:

PHP setzt die Option automatisch auf true. Dies sollte ausschließlich für die Fehlersuche geändert werden.

CURLOPT_NOSIGNAL | true um jegliche cURL-Funktion zu ignorieren, die ein Signal an den PHP-Prozess sendet. In multi-threaded SAPIs ist diese Option standardmässig aktiviert, so daß Timeouts weiterhin abgefangen werden können. | Hinzugefügt in cURL 7.10 und PHP 5.0.0.
CURLOPT_PATH_AS_IS | true, um Dot-Dot-Sequenzen nicht aufzulösen. | Hinzugefügt in cURL 7.42.0. Verfügbar seit PHP 7.0.7.
CURLOPT_PIPEWAIT | true, um auf Pipelining/Multiplexing zu warten. | Hinzugefügt in cURL 7.43.0. Verfügbar seit PHP 7.0.7.
CURLOPT_POST | true um einen HTTP-POST-Request abzusetzen. Dabei handelt es sich um das übliche application/x-www-form-urlencoded, wie es im Allgemeinen von HTML-Formularen erzeugt wird.
CURLOPT_PUT | true um ein HTTP-PUT für eine Datei abzusetzen. Die fragliche Datei muss dabei über die Konstanten CURLOPT_INFILE und CURLOPT_INFILESIZE gesetzt werden.
CURLOPT_RETURNTRANSFER | true um den Transfer als String zurückzuliefern, anstatt ihn direkt auszugeben.
CURLOPT_SAFE_UPLOAD | true um die Unterstützung des @-Präfix zum Upload von Dateien in CURLOPT_POSTFIELDS zu deaktivieren, was bedeutet, dass Werte, die mit @ beginnen, sicher als Felder übergeben werden können. Statt dessen kann CURLFile für Uploads verwendet werden. | Hinzugefügt in PHP 5.5.0 mit false als Voreinstellung. PHP 5.6.0 ändert die Voreinstellung zu true. PHP 7 entfernt diese Option; das CURLFile Interface muss zum Hochladen von Dateien verwendet werden.
CURLOPT_SASL_IR | true, um die Übertragung der ursprünglichen Response im ersten Paket zu aktivieren. | Hinzugefügt in cURL 7.31.10. Verfügbar seit PHP 7.0.7.
CURLOPT_SSL_ENABLE_ALPN | false, um ALPN im SSL-Handshake zu deaktivieren (wenn das SSL-Backend libcurl mit entsprechender Unterstüzung kompiliert wurde), was genutzt werden kann, um HTTP2 auszuhandeln. | Hinzugefügt in cURL 7.36.0. Verfügbar seit PHP 7.0.7.
CURLOPT_SSL_ENABLE_NPN | false, um NPN im SSL-Handshake zu deaktivieren (wenn das SSL-Backend libcurl mit entsprechender Unterstüzung kompiliert wurde), was genutzt werden kann, um HTTP2 auszuhandeln. | Added in cURL 7.36.0. Available since PHP 7.0.7.
CURLOPT_SSL_VERIFYPEER | false um die Überprüfung des Peerzertifikats seitens cURL zu unterdrücken. Alternative Zertifikate zur Überprüfung können mit der Option CURLOPT_CAINFO angegeben werden oder ein Zertifikat-Verzeichnis kann mit CURLOPT_CAPATH ausgewiesen werden. | true als Standard seit cURL 7.10.
CURLOPT_SSL_VERIFYSTATUS | true, um den Zertifikatsstatus zu überprüfen. | Hinzugefügt in cURL 7.41.0. Verfügbar seit PHP 7.0.7.
CURLOPT_PROXY_SSL_VERIFYPEER | false um cURL zu veranlassen, das Peer-Zertifikat nicht zu prüfen. Alternative Zertifikate zur Prüfung können mit der CURLOPT_CAINFO Option, ein Zertifikatsverzeichnis mit der CURLOPT_CAPATH Option angegeben werden. Wenn auf false gesetzt, wird die Peer-Zertifikatsprüfung immer gelingen. | true by default. Hinzugefügt in PHP 7.3.0 and libcurl >= cURL 7.52.0.
CURLOPT_SUPPRESS_CONNECT_HEADERS | true um Proxy CONNECT Antwortheader in den Benutzercallback-Funktionen CURLOPT_HEADERFUNCTION und CURLOPT_WRITEFUNCTION zu unterdrücken, wenn CURLOPT_HTTPPROXYTUNNEL verwendet wird, und ein CONNECT-Request durchgeführt wird. | Hinzugefügt in cURL 7.54.0. Verfügbar seit PHP 7.3.0.
CURLOPT_TCP_FASTOPEN | true, um TCP-Fast-Open zu aktivieren. | Hinzugefügt in cURL 7.49.0. Verfügbar seit PHP 7.0.7.
CURLOPT_TFTP_NO_OPTIONS | true, um keine TFTP-Optionen zu senden. | Hinzugefügt in cURL 7.48.0. Verfügbar seit PHP 7.0.7.
CURLOPT_TRANSFERTEXT | true um FTP-Transfers im ASCII-Modus durchzuführen. Für LDAP werden Daten in Klartext statt HTML übertragen. Unter Windows wird STDOUT nicht in den binären Modus gesetzt.
CURLOPT_UNRESTRICTED_AUTH | true um beim Folgen eines Location: -Headers (siehe CURLOPT_FOLLOWLOCATION) weiterhin Benutzername und Passwort zu senden, sogar nach einem Wechsel des Hostnamens.
CURLOPT_UPLOAD | true um einen Upload vorzubereiten
CURLOPT_VERBOSE | true um ausführliche Informationen auszugeben, entweder nach STDERR oder in die mittels der Option CURLOPT_STDERR gewählte Datei.

Für die folgenden option-Parameter sollte value ein Integer sein:

Option | Wert für value | Anmerkungen
CURLOPT_BUFFERSIZE | Die für jede Leseoperation zulässige Buffergröße. Es ist nicht garantiert, daß diese Einstellung genutzt wird. | Hinzugefügt in cURL 7.10 and PHP 5.0.0.
CURLOPT_CLOSEPOLICY Einer der CURLCLOSEPOLICY_* Werte.

Hinweis:

Diese Option ist überholt, da sie niemals in cURL implementiert wurde, und niemals wirkte.

Entfernt in PHP 5.6.0.
CURLOPT_CONNECTTIMEOUT | Die Anzahl Sekunden, die der Verbindungsaufbau maximal dauern darf; 0 hebt die Begrenzung auf.
CURLOPT_CONNECTTIMEOUT_MS | Die Anzahl Millisekunden, die der Verbindungsaufbau maximal dauern darf; 0 hebt die Begrenzung auf. Wenn libcurl so kompiliert wurde, dass die standard System-Namensauflösung verwendet wird, wird dieser Teil der Verbindung dennoch die volle Sekunden-Auflösung für Timeouts mit einem minimalen Timeout von einer Sekunde verwenden. | Hinzugefügt in cURL 7.16.2. Verfügbar seit PHP 5.2.3.
CURLOPT_DNS_CACHE_TIMEOUT | Die Dauer in Sekunden, die ein DNS-Eintrag im Speicher gehalten wird. Der Standard sind 120 Sekunden (2 Minuten).
CURLOPT_EXPECT_100_TIMEOUT_MS | Der Expect-Timeout: 100-continue Antworten in Millisekunden. Standardwert sind 1000 Millisekunden. | Hinzugefügt in cURL 7.36.0. Verfügbar seit PHP 7.0.7.
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS | Vorsprung für IPv6 für den Happy-Eyeballs-Algorithmus. Happy-Eyeballs versucht für Dual-Stack-Hosts sowohl zu IPv4- als auch IPv6-Adressen zu verbinden, wobei IPv6 für die angegebe Dauer in Millisekunden bevorzugt wird. Die Voreinstellung ist CURL_HET_DEFAULT, die zurzeit 200 Millisekunden beträgt. | Hinzugefügt in 7.59.0. Verfügbar seit PHP 7.3.0.
CURLOPT_FTPSSLAUTH | Die FTP-Authentisierungsmethode (wenn aktiviert): CURLFTPAUTH_SSL (versuche zunächst SSL), CURLFTPAUTH_TLS (versuche zunächst TLS), oder CURLFTPAUTH_DEFAULT (lass cURL entscheiden). | Hinzugefügt in cURL 7.12.2 und PHP 5.1.0.
CURLOPT_HEADEROPT | Wie mit Headern umzugehen ist. Eine der folgenden Konstanten: CURLHEADER_UNIFIED: die Header, die in CURLOPT_HTTPHEADER angegeben wurden, werden in Requests sowohl an Server wie auch Proxies verwendet. Ist diese Option aktiviert, hat CURLOPT_PROXYHEADER keinerlei Wirkung. CURLHEADER_SEPARATE: sendet CURLOPT_HTTPHEADER Header nur an einen Server, aber nicht an einen Proxy. Proxy-Header müssen mit CURLOPT_PROXYHEADER gesetzt werden, damit sie verwendet werden. Es ist zu beachten, dass bei einem non-CONNECT-Request, der an einen Proxy gesendet wird, libcurl sowohl die Server- als auch die Proxy-Header sendet. Bei einem CONNECT sendet libcurl CURLOPT_PROXYHEADER Header nur an den Proxy, und CURLOPT_HTTPHEADER Header nur an den Server. Standardwert ist CURLHEADER_SEPARATE von cURL 7.42.1 an, und CURLHEADER_UNIFIED zuvor. | Hinzugefügt in cURL 7.37.0. Verfügbar seit PHP 7.0.7.
CURLOPT_HTTP_VERSION | CURL_HTTP_VERSION_NONE (Standard, lässt cURL entscheiden, welche Version genutzt werden soll), CURL_HTTP_VERSION_1_0 (nutze HTTP/1.0), CURL_HTTP_VERSION_1_1 (nutze HTTP/1.1), CURL_HTTP_VERSION_2_0 (versucht HTTP 2), CURL_HTTP_VERSION_2 (Alias von CURL_HTTP_VERSION_2_0), CURL_HTTP_VERSION_2TLS (versucht HTTP 2 nur über TLS (HTTPS)) oder CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (stellt nicht-TLS HTTP Anfragen unter Verwendung von HTTP/2 ohne HTTP/1.1 Upgrade).
CURLOPT_HTTPAUTH

Die zu nutzende HTTP-Authentisierungsmethode; zur Verfügung stehen: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY, und CURLAUTH_ANYSAFE.

Um mehrere Methoden zu kombinieren kann der Bit-|(oder)-Operator verwendet werden; in diesem Fall wird cURL in Abstimmung mit dem Server die günstigste Methode auswählen.

CURLAUTH_ANY ist ein Alias für CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLAUTH_ANYSAFE ist ein Alias für CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLOPT_INFILESIZE | Die erwartete Dateigröße der hochzuladenden Datei in Bytes. Beachten Sie, dass die Verwendung dieser Option libcurl nicht daran hindern wird mehr Daten zu senden, da was genau gesendet wird von CURLOPT_READFUNCTION abhängt.
CURLOPT_LOW_SPEED_LIMIT | Die Transfergeschwindigkeit in Bytes pro Sekunde, die bei Unterschreitung in Kombination mit der Überschreitung von CURLOPT_LOW_SPEED_TIME Sekunden bewirkt, dass der Transfer aufgrund der zu niedrigen Transferrate abgebrochen wird.
CURLOPT_LOW_SPEED_TIME | Die Zeit in Sekunden, in der die Transferrate unter CURLOPT_LOW_SPEED_LIMIT gedultet wird. Nach dieser Zeit wird die Transferrate als zu langsam angesehen und der Transfer wird beendet.
CURLOPT_MAXCONNECTS | Die maximal erlaubte Anzahl persistenter Verbindungen; bei Erreichen des Limits wird mittels CURLOPT_CLOSEPOLICY entschieden, welche Verbindung geschlossen wird.
CURLOPT_MAXREDIRS | Die maximal erlaubte Anzahl von HTTP-Weiterleitungen. Verwenden Sie diese Option zusammen mit CURLOPT_FOLLOWLOCATION.
CURLOPT_PORT | Erlaubt das Setzen eines alternativen Ports für die Verbindung.
CURLOPT_POSTREDIR | Eine Bitmaske von 1 (301 Moved Permanently), 2 (302 Found) und 4 (303 See Other), ob die HTTP POST Methode beibehalten werden soll, wenn CURLOPT_FOLLOWLOCATION gesetzt ist, und ein sepzifischer Typ von Weiterleitung auftritt. | Hinzugefügt in cURL 7.19.1. Verfügbar seit PHP 5.3.2.
CURLOPT_PROTOCOLS

Eine Bitmaske von CURLPROTO_*-Werten. Mit dieser Einstellung lassen sich die Protokolle einschränken die libcurl für diesen Transfer nutzen darf. Damit wird es möglich ein libcurl mit einer Vielzahl an Protokollen zu benutzen, gleichzeitig aber lassen sich die für einen bestimmten Transfer zulässigen Protokolle beschränken. Standardmässig akzeptiert libcurl alle unterstützten Protokolle. Siehe auch CURLOPT_REDIR_PROTOCOLS.

Zulässige Optionen: CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_TFTP, CURLPROTO_ALL

Hinzugefügt in cURL 7.19.4.
CURLOPT_PROXYAUTH | Die HTTP-Authentisierungsmethode(n) für die Proxy-Verbindung. Nutzt die gleiche Bitmaske wie in CURLOPT_HTTPAUTH beschrieben. Nur CURLAUTH_BASIC und CURLAUTH_NTLM sind momentan für Proxy-Verbindungen zulässig. | Hinzugefügt in cURL 7.10.7 und PHP 5.1.0.
CURLOPT_PROXYPORT | Der Port, auf den die Proxy-Verbindung erfolgen soll; kann auch mittels CURLOPT_PROXY gesetzt werden.
CURLOPT_PROXYTYPE | Entweder CURLPROXY_HTTP (Standard), CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A oder CURLPROXY_SOCKS5_HOSTNAME. | Hinzugefügt in cURL 7.10.
CURLOPT_REDIR_PROTOCOLS | Eine Bitmaske von CURLPROTO_*-Werten. Mit dieser Einstellung lassen sich die Protokolle einschränken die libcurl für diesen Transfer nutzen darf, wenn eine Weiterleitung stattfindet (setzt voraus daß CURLOPT_FOLLOWLOCATION erlaubt ist). Damit wird es möglich ein libcurl mit einer Vielzahl an Protokollen zu benutzen, gleichzeitig aber lassen sich die für eine Weiterleitung zulässigen Protokolle beschränken. Standardmässig akzeptiert libcurl alle unterstützten Protokolle außer FILE und SCP. Siehe auch CURLOPT_PROTOCOLS für weitere Informationen zu den Protokoll-Konstanten. | Added in cURL 7.19.4.
CURLOPT_RESUME_FROM | Die Position in Bytes ab der ein Transfer fortgesetzt werden soll.
CURLOPT_SOCKS5_AUTH

Die zu verwendende SOCK5-Authentifizierungsmethode. Die Optionen sind: CURLAUTH_BASIC, CURLAUTH_GSSAPI, CURLAUTH_NONE.

Der bitweise | (oder) Operator kann verwendet werden, um mehr als eine Methode zu kombinieren. Wird dies getan, wird cURL den Server befragen, um zu sehen, welche Methoden unterstützt werden, und die beste zu wählen.

CURLAUTH_BASIC erlaubt Benutzernamen/Passwort Authentifizierung.

CURLAUTH_GSSAPI erlaubt GSS-API Authentifizierung.

CURLAUTH_NONE erlaubt keine Authentifizierung.

Voreinstellung ist CURLAUTH_BASIC|CURLAUTH_GSSAPI. Der eigentliche Benutzername und das Passwort werden mit der CURLOPT_PROXYUSERPWD Option gesetzt.

Verfügbar von PHP 7.3.0 mit curl >= 7.55.0 an.
CURLOPT_SSL_OPTIONS | Setze SSL-Verhaltensoptionen, die eine Bitmaske von beliebigen der folgenden Konstanten ist: CURLSSLOPT_ALLOW_BEAST: versuche keine Workarounds für Sicherheitsmängel in den SSL3 und TLS1.0 Protokollen. CURLSSLOPT_NO_REVOKE: deaktiviere Zertifikatswiderrufsprüfungen für SSL-Backends, die dies unterstützen. | Hinzugefügt in cURL 7.25.0. Verfügbar seit PHP 7.0.7.
CURLOPT_SSL_VERIFYHOST | 1 um auf die Existenz des Namens im Zertifikat zu prüfen, 2 stellt sicher, daß eine Übereinstimmung mit dem angegebenen Hostnamen vorliegt. 0, um die Namen nicht zu prüfen. In Produktsumgebungen sollte der Wert dieser Option 2 sein (Voreinstellung). | Die Unterstützung für Wert 1 wurde in cURL 7.28.1 entfernt
CURLOPT_SSLVERSION Entweder CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5) oder CURL_SSLVERSION_TLSv1_2 (6). Die maximale TLS-Version kann durch Verwendung einer der CURL_SSLVERSION_MAX_* Konstanten spezifiziert werden. Es ist ebenfalls möglich eine der CURL_SSLVERSION_* Konstanten mit einer der CURL_SSLVERSION_MAX_* Konstanten ODER zu verknüpfen. CURL_SSLVERSION_MAX_DEFAULT (die maximale Version, die von der Bibliothek unterstützt wird), CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1, CURL_SSLVERSION_MAX_TLSv1_2, oder CURL_SSLVERSION_MAX_TLSv1_3.

Hinweis:

Am besten ist es diese Option nicht zu setzen, und den Default zu verwenden. Die Werte 2 und 3 sind sehr gefährlich, angesichts der bekannten Sicherheitslücken in SSLv2 und SSLv3.

CURLOPT_PROXY_SSL_OPTIONS | Setzt Proxy-SSL-Verhaltensoptionen, was eine Bitmaske der folgenden Konstanten ist: CURLSSLOPT_ALLOW_BEAST: versuche nicht, irgendwelche Workarounds für einen Sicherheitsmangel in den SSL3 und TLS1.0 Protokollen zu nutzen. CURLSSLOPT_NO_REVOKE: deaktiviert Zertifikatswiderrufprüfungen für SSL-Backends, wo solches Verhalten vorhanden ist. (curl >= 7.44.0) CURLSSLOPT_NO_PARTIALCHAIN: akzeptiert keine "partiellen" Zertifikatsketten, was andernfalls per Voreinstellung erfolgt. (curl >= 7.68.0) | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSL_VERIFYHOST | 2 prüft Namensfelder im Zertifikat des HTTP-Proxies gegen den Proxy-Namen. Wenn auf 0 gesetzt, gelingt die Verbindung unabhängig von dem im Zertifikat verwendeten Namen. Diese Möglichkeit ist mit Vorsicht zu verwenden! 1 wird in curl 7.28.0 und früher als Debugoption behandelt. Von curl 7.28.1 bis 7.65.3 wird CURLE_BAD_FUNCTION_ARGUMENT zurückgegeben. Von curl 7.66.0 an wird 1 und 2 gleich behandelt. In Produktivumgebungen sollte der Wert dieser Option bei 2 belassen werden (Standardwert). | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLVERSION Eines aus CURL_SSLVERSION_DEFAULT, CURL_SSLVERSION_TLSv1, CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, CURL_SSLVERSION_TLSv1_2, CURL_SSLVERSION_TLSv1_3, CURL_SSLVERSION_MAX_DEFAULT, CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1, CURL_SSLVERSION_MAX_TLSv1_2, CURL_SSLVERSION_MAX_TLSv1_3 oder CURL_SSLVERSION_SSLv3.

Hinweis:

Am besten ist es, dies nicht zu setzen und den Standardwert CURL_SSLVERSION_DEFAULT zu verwenden, der versucht, die Remote-SSL-Protokollversion herauszufinden.

Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_STREAM_WEIGHT | Setze die numerische Streamgewichtung (eine Zahl zwischen 1 und 256). | Hinzugefügt in cURL 7.46.0. Verfügbar seit PHP 7.0.7.
CURLOPT_TCP_KEEPALIVE | Wenn auf 1 gesetzt, werden TCP-Keepalive-Sonden gesendet. Die Verzögerung und Häufigkeit dieser Sonden kann mit den CURLOPT_TCP_KEEPIDLE und CURLOPT_TCP_KEEPINTVL Optionen festgelegt werden, falls das Betriebssystem diese unterstützt. Wenn auf 0 gesetzt (Voreinstellung), sind Keepalive-Sonden deaktiviert. | Hinzugefügt in cURL 7.25.0. Verfügbar seit PHP 5.5.0.
CURLOPT_TCP_KEEPIDLE | Gibt die Verzögerung in Sekunden an, die das Betriebssystem im Fall, dass die Verbindung inaktiv ist, wartet bevor Keepalive-Sonden gesendet werden, wenn CURLOPT_TCP_KEEPALIVE aktiviert ist. Nicht alle Betriebssysteme unterstützen diese Option. Die Voreinstelung ist 60. | Hinzugefügt in cURL 7.25.0. Verfügbar seit PHP 5.5.0.
CURLOPT_TCP_KEEPINTVL | Gibt den Zeitraum in Sekunden an, den das Betriebssystem zwischen dem Senden von Keepalive-Sonden warten wird, wenn CURLOPT_TCP_KEEPALIVE aktiviert ist. Nicht alle Betriebssysteme unterstützen diese Option. Die Voreinstelung ist 60. | Hinzugefügt in cURL 7.25.0. Verfügbar seit PHP 5.5.0.
CURLOPT_TIMECONDITION | Dieser Wert gibt an, wie CURLOPT_TIMEVALUE behandelt werden soll. Mögliche Werte sind CURL_TIMECOND_IFMODSINCE (Standard) und CURL_TIMECOND_ISUNMODSINCE. Im ersten Fall wird geprüft, ob die Seite seit CURLOPT_TIMEVALUE geändert wurde; andernfalls wird ein "304 Not Modified"-Header zurückgegeben (vorausgesetzt CURLOPT_HEADER ist true). CURL_TIMECOND_ISUNMODSINCE bewirkt das gegenteilige Verhalten.
CURLOPT_TIMEOUT | Die maximale Ausführungszeit in Sekunden für cURL-Funktionen.
CURLOPT_TIMEOUT_MS | Die maximale Ausführungszeit in Millisekunden für cURL-Funktionen. Wenn libcurl so kompiliert wurde, dass die standard System-Namensauflösung verwendet wird, wird dieser Teil der Verbindung dennoch die volle Sekunden-Auflösung für Timeouts mit einem minimalen Timeout von einer Sekunde verwenden. | Added in cURL 7.16.2. Available since PHP 5.2.3.
CURLOPT_TIMEVALUE | Zeit in Sekunden seit dem 1. Januar 1970. Dieser Wert wird von CURLOPT_TIMECONDITION genutzt. Als Standard wird CURL_TIMECOND_IFMODSINCE genutzt.
CURLOPT_TIMEVALUE_LARGE | Die Zeit in Sekunden seit dem 1. Januar 1970. Die Zeit wird von CURLOPT_TIMECONDITION verwendet. Der Standardwert ist Null. Der Unterschied zwischen dieser Option und CURLOPT_TIMEVALUE ist der Typ des Arguments. Auf Systemen, auf denen 'long' nur aus 32-Bit besteht, muss diese Option verwendet werden, um Daten jenseits des Jahrs 2038 zu setzen. | Hinzugefügt in cURL 7.59.0. Verfügbar seit PHP 7.3.0.
CURLOPT_MAX_RECV_SPEED_LARGE | Wenn ein Download diese Geschwindigkeit (gezählt in Bytes pro Sekunde) im Gesamtdurchschnitt während der Übertragung überschreitet, wird die Übertragung angehalten, um die durschnittliche Rate kleiner oder gleich dem Parameter-Wert zu halten. Voreinstellung ist unbegrenzte Geschwindigkeit. | Hinzugefügt in cURL 7.15.5. Verfügbar seit PHP 5.4.0.
CURLOPT_MAX_SEND_SPEED_LARGE | Wenn ein Upload diese Geschwindigkeit (gezählt in Bytes pro Sekunde) im Gesamtdurchschnitt während der Übertragung überschreitet, wird die Übertragung angehalten, um die durschnittliche Rate kleiner oder gleich dem Parameter-Wert zu halten. Voreinstellung ist unbegrenzte Geschwindigkeit. | Hinzugefügt in cURL 7.15.5. Verfügbar seit PHP 5.4.0.
CURLOPT_SSH_AUTH_TYPES | Eine Bitmaske bestehend aus einer oder mehreren von CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD. CURLSSH_AUTH_ANY lässt libcurl eine wählen. | Hinzugefügt in cURL 7.16.1.
CURLOPT_IPRESOLVE | Erlaubt einer Applikation auszuwählen, welche Art von IP Adressen verwendet werden, wenn Hostnamen aufgelöst werden. Dies ist nur interessant, wenn Hostnamen verwendet werden, die Adressen unter mehr als einer IP-Version auflösen; mögliche Werte sind CURL_IPRESOLVE_WHATEVER, CURL_IPRESOLVE_V4, CURL_IPRESOLVE_V6; Voreinstellung ist CURL_IPRESOLVE_WHATEVER. | Hinzugefügt in cURL 7.10.8.
CURLOPT_FTP_FILEMETHOD | Die zu verwendende Methode, um eine Datei auf einem FTP(S) Server zu erreichen. Mögliche Werte sind CURLFTPMETHOD_MULTICWD, CURLFTPMETHOD_NOCWD und CURLFTPMETHOD_SINGLECWD. | Hinzugefügt in cURL 7.15.1. Verfügbar seit PHP 5.3.0.

Für die folgenden option-Parameter sollte value ein String sein:

Option | Wert für value | Anmerkungen
CURLOPT_ABSTRACT_UNIX_SOCKET | Aktiviert die Verwendung eines abstrakten Unix Domainsocket anstatt eine TCP-Verbindung zu einem Host aufzubauen, und setzt den Pfad auf den gegebenen string. Diese Option teilt sich die gleiche Bedeutung mit CURLOPT_UNIX_SOCKET_PATH. Diese beiden Optionen verwenden den selben Speicher, und daher kann nur eine pro Handle genutzt werden. | Verfügbar seit PHP 7.3.0 und cURL 7.53.0
CURLOPT_CAINFO | Der Name einer Datei, die ein oder mehrere Zerifikate enthält, gegen die der Peer geprüft wird. Macht nur Sinn in Verbindung mit CURLOPT_SSL_VERIFYPEER. | Erfodert möglicherweise einen absoluten Pfad.
CURLOPT_CAPATH | Ein Verzeichnis, das mehrere CA-Zertifikate enthält. Diese Option sollte In Kombination mit CURLOPT_SSL_VERIFYPEER genutzt werden.
CURLOPT_COOKIE | Der Inhalt des im HTTP-Request zu setzenden "Cookie: "-Headers Beachten Sie daß mehrere Cookies durch ein Semikolon gefolgt von einem Leerzeichen getrennt werden (z.B. "fruit=apple; colour=red")
CURLOPT_COOKIEFILE | Der Name einer Datei, die Cookiedaten enthält. Diese Datei kann im Netscape-Format sein oder HTTP-geformte Header enthalten. Wenn der Name eine leere Zeichenkette ist, werden keine Cookies geladen, aber die Cookie-Behandlung ist dennoch aktiviert.
CURLOPT_COOKIEJAR | Der Name einer Datei in der alle internen Cookies beim Schließen des Handles gespeichert werden, z.B. nach einem Aufruf von curl_close.
CURLOPT_COOKIELIST | Eine Cookie-Zeichenkette (d.h. eine einzelne Zeile im Netscape/Mozilla-Format, oder ein regulärer Set-Cookie-Header im HTTP-Stil), die dieses einzelne Cookie dem internen Cookie-Speicher hinzufügt. "ALL" löscht alle Cookies, die im Speicher vorgehalten werden. "SESS" löscht alle Sitzungscookies, die im Speicher vorgehalten werden. "FLUSH" schreibt alle bekannten Cookies in die durch CURLOPT_COOKIEJAR angegebene Datei. "RELOAD" lädt alle Cookies aus der durch CURLOPT_COOKIEFILE angegebenen Datei. | Verfügbar seit PHP 5.5.0 und cURL 7.14.1.
CURLOPT_CUSTOMREQUEST

Eine benutzerdefinierte Request-Methode, die anstelle von GET oder HEAD für den HTTP-Request benutzt werden soll. Dies ist nützlich bei DELETE oder anderen unüblichen Requests. Zulässige Werte sind GET, POST, CONNECT etc. Vollständige HTTP-Requests wie GET /index.html HTTP/1.0\r\n\r\n sind unzulässig!

Hinweis:

Führen Sie diese Anfragen nicht durch ohne sicherzugehen, daß Ihr Server die betreffenden Kommandos unterstützt.

CURLOPT_DEFAULT_PROTOCOL

Das Standardprotokoll, das verwendet werden soll, wenn die URL kein Schema angibt.

Hinzugefügt in cURL 7.45.0. Verfügbar seit PHP 7.0.7.
CURLOPT_DNS_INTERFACE

Setze den Namen der Netzwerkschnittstelle, an die sich der DNS-Resolver binden soll. Dies muss ein Schnittstellenname sein (keine Adresse).

Hinzugefügt in cURL 7.33.0. Verfügbar seit PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP4

Setze die lokale IPv4 Adresse, an die sich der Resolver binden soll. Das Argument sollte eine einzige numerische IPv4 Adresse als Zeichenkette enthalten.

Hinzugefügt in cURL 7.33.0. Verfügbar seit PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP6

Setze die lokale IPv6 Adresse, an die sich der Resolver binden soll. Das Argument sollte eine einzige numerische IPv6 Adresse als Zeichenkette enthalten.

Hinzugefügt in cURL 7.33.0. Verfügbar seit PHP 7.0.7.
CURLOPT_EGDSOCKET | Analog CURLOPT_RANDOM_FILE, hier wird der Dateiname eines Entropy Gathering Daemon Socket erwartet.
CURLOPT_ENCODING | Der Inhalt des "Accept-Encoding: "-Headers. Damit wird das Dekodieren der Serverantwort aktiviert. Unterstützte Kodierungen sind identity, deflate und gzip. Wird ein leerer String "" gesetzt wird ein Header mit allen unterstützten Kodierungen gesetzt. | Hinzugefügt in cURL 7.10.
CURLOPT_FTPPORT | Ein String, der genutzt wird, um die IP-Adresse zu erlangen, die von der FTP-PORT-Anweisung genutzt wird. Die PORT-Anweisung teilt dem entfernten Server mit, zu der angegebenen IP-Adresse zu verbinden. Der String kann eine einfache IP-Addresse, ein Hostname, der Name eines Netzwerkinterfaces (unter Unix) oder nur '-' sein, um die vordefinierte IP-Addresse (des Systems) zu nutzen.
CURLOPT_INTERFACE | Der Name des zu nutzenden Netzwerkinterfaces für ausgehende Daten. Statt des Namens des Interfaces kann auch eine IP-Adresse oder ein Hostname übergeben werden.
CURLOPT_KEYPASSWD | Das erforderliche Passwort, um die privaten CURLOPT_SSLKEY oder CURLOPT_SSH_PRIVATE_KEYFILE Schlüssel zu verwenden. | Hinzugefügt in cURL 7.16.1.
CURLOPT_KRB4LEVEL | Die KRB4 (Kerberos 4) Sicherheitsstufe. Folgende Werte (von niedriger zu höherer Stufe) sind gültig: clear, safe, confidential, private. Sollte der String keinen dieser Werte enthalten dann wird die höchste Stufe genutzt, d.h private. Sollte diese Option mit dem Wert NULL besetzt werden, wird KRB4 Security deaktiviert. Bislang wird KRB4 nur unter Verwendung des FTP unterstützt.
CURLOPT_LOGIN_OPTIONS | Kann verwendet werden, um Protokoll spezifische Anmeldeoptionen, wie den bevorzugten Authentifizierungsmechanismus per "AUTH=NUM" oder "AUTH=*", zu setzen, und sollte in Verbindung mit der CURLOPT_USERNAME Option verwendet werden. | Hinzugefügt in cURL 7.34.0. Verfügbar seit PHP 7.0.7.
CURLOPT_PINNEDPUBLICKEY | Setze den pinned öffentlichen Schlüssel. Die Zeichenkette kann der Dateiname des pinned öffentlichen Schlüssels sein. Das erwartete Dateiformat ist "PEM" oder "DER". Die Zeichenkette kann ebenfalls eine beliebige Anzahl von base64 kodierten SHA-256 Hashes sein, denen "sha256//" vorangestellt ist, und die durch ";" getrennt sind. | Hinzugefügt in cURL 7.39.0. Verfügbar seit PHP 7.0.7.
CURLOPT_POSTFIELDS | Die in einem HTTP-POST-Request zu nutzenden Daten. Um eine Datei zu posten stellen Sie dem Dateinamen @ voran; bitte geben Sie den vollen Pfad zur Datei an. Der Dateityp kann explizit dadurch angegeben werden, dass dem Dateinamen der Type im Format ';type=mimetype' nachgestellt wird. Als Wert für diesen Parameter kann entweder ein URL-kodierter String übergeben werden wie z.B. 'para1=val1&para2=val2&...' oder ein Array, wobei die Feldnamen als Schlüssel und die Felddaten als Wert verwendet werden. Wird ein Array für value dann wird der Content-Type-Header auf multipart/form-data gesetzt. Beginnend mit PHP 5.2.0 muss value ein Array sein, wenn Dateien mit dem @-Präfix an diese Option übergeben werden Beginned mit PHP 5.5.0 gilt das @-Präfix als veraltet, und Dateien können mit CURLFile gesendet werden. Das @-Präfix kann deaktiviert werden, um die sichere Übergabe von Werten, die mit @ beginnen, zu gewährleisten, indem CURLOPT_SAFE_UPLOAD auf true gesetzt wird.
CURLOPT_PRIVATE | Beliebige Daten, die mit diesem cURL-Handle assoziert werden sollen. Diese Daten können in der Folge mit der CURLINFO_PRIVATE Option von curl_getinfo() abgerufen werden. cURL tut sonst nichts mit diesen Daten. Bei cURL-Multi-Handles sind diese privaten Daten typischerweise ein eindeutiger Schlüssel, um ein Standard-cURL-Handle zu identifizieren. | Hinzugefügt in cURL 7.10.3.
CURLOPT_PRE_PROXY | Ein String, der den Hostnamen oder die IP-Adresse in Dezimalpunktschreibweise des Preproxys enthält, zu dem sich curl für den bevorstehenden Request verbinden soll bevor es sich zum HTTP(S) Proxy verbindet, der mit der CURLOPT_PROXY Option angegeben wurde. Der Preproxy kann nur ein SOCKS-Proxy sein, und er sollte mit vorangestelltem [scheme]:// angegeben werden, um anzugeben welche Art von socks verwendet wird. Eine numerische IPv6-Adresse muss in [eckigen Klammen] angegeben werden. Wird der Preproxy als leere Zeichenkette angegeben, deaktiviert dies ausdrücklich die Verwendung eines Preproxys. Um eine Portnummer in dieser Zeichenkette anzugeben, wird ein :[port] am Ende des Hostnamens angefügt. Die Portnummer des Proxys kann optinal mit der separaten Option CURLOPT_PROXYPORT angegeben werden. Per Voreinstellung wird Port 1080 für Proxys verwendet, wenn kein Port angegeben wurde. | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY | Der HTTP-Proxy, durch den Requests getunnelt werden sollen.
CURLOPT_PROXY_SERVICE_NAME | Der Name des Proxy-Authentifizierungsdienstes. | Hinzugefügt in cURL 7.34.0. Verfügbar seit PHP 7.0.7.
CURLOPT_PROXY_CAINFO | Der Pfad zu einem Proxy-Zertifikatsautoritätspaket (CA). Der Pfad wird als String angegeben, der eine Datei benennt, die ein oder mehrere Zertifikate enthält, die zur Prüfung des HTTPS-Proxys verwendet werden. Diese Option gilt für die Verbindung zu einem HTTP-Proxy, nicht zu einem HTTPS-Server. Der Standardwert ist der System-Pfad unter dem das cacert-Paket von libcurl erwartet wird. | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_CAPATH | Das Verzeichnis, das mehrere CA-Zertifikate enthält, mit denen der HTTPS-Proxy geprüft wird. | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_CRLFILE | Setzt den Dateinamen mit der Verkettung von CRL (Zertifikatswiderrufsliste) im PEM-Format, die in der Zertifikatsprüfung, die während des SSL-Austauschs stattfindet, verwendet wird. | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_KEYPASSWD | Setzt die Zeichenkette, die als Passwort erforderlich ist, um den CURLOPT_PROXY_SSLKEY privaten Schlüssel zu verwenden. Es wird niemals ein Passwort benötigt, um ein Zertifikat zu laden, aber es wird eins benötigt, um den privaten Schlüssel zu laden. Diese Option gilt für die Verbindung zu einem HTTPS-Proxy, nicht zu einem HTTPS-Server. | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_PINNEDPUBLICKEY | Setzt den festgesteckten (pinned) öffentlichen Schlüssel für den HTTPS-Proxy. Die Zeichenkette kann der Dateiname des festgesteckten öffentlichen Schlüssels sein. Das erwartete Dateiformat ist "PEM" oder "DER". Die Zeichenkette kann ebenfalls eine beliebige Anzahl von Base64-kodierten SHA256-Hashwerten enthalten, denen "sha256://" vorangestellt, und die durch ";" getrennt sind. | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLCERT | Der Dateiname des Client-Zertifikats, das zur Verbindung mit dem HTTPS-Proxy verwendet wird. Das Standardformat ist "P12" bei Secure Transport, und "PEM" bei anderen Engines, kann aber mit CURLOPT_PROXY_SSLCERTTYPE geändert werden. Bei Verwendung von NSS oder Secure Transport kann es ebenfalls der Spitzname des Zertifikats sein, das zur Authentifizierung verwendet werden soll, wie in der Sicherheitsdatenbank hinterlegt. Soll eine Datei im aktuellen Verzeichnis verwendet werden, sollte sie mit einem "./"-Präfix angegeben werden, um Verwechslungen mit einem Spitznamen zu vermeiden. | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLCERTTYPE | Das Format des Client-Zertifikats, das zur Verbindung mit dem HTTPS-Proxy verwendet wird. Unterstützte Formate sind "PEM" und "DER", außer bei Secure Transport. OpenSSL (Version 0.9.3 und später) und Secure Transport (unter iOS 5 oder später, oder OS X 10.7 oder später) unterstützen ebenso "P12" für PKCS#12-kodierte Dateien. Der Standardwert ist "PEM". | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSL_CIPHER_LIST | Die Liste von Chiffren, die zur Verbindung mit dem HTTPS-Proxy verwendet wird. Die Liste muss syntaktisch korrekt sein; sie besteht aus einer oder mehreren Chiffre-Zeichenketten, die durch Doppelpunkt getrennt sind. Kommas und Leerzeichen sind ebenfalls als Trennzeichen erlaubt, aber normalerweise werden Doppelpunkte verwendet; !, - und + können als Operatoren verwendet werden. | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLS13_CIPHERS | Die Liste von Chiffre-Folgen, die für die TLS 1.3 Verbindung zu einem Proxy verwendet werden. Die Liste muss syntaktisch korrekt sein; sie besteht aus einer oder mehreren Chiffre-Folgen-Zeichenketten, die durch Doppelpunkt getrennt sind. Die Option wird zurzeit nur verwendet, wenn curl mit OpenSSL 1.1.1 oder später kompiliert wurde. Wird ein anderes SSL-Backend verwendet, kann versucht werden die Chiffre-Folgen unter Verwendung der CURLOPT_PROXY_SSL_CIPHER_LIST Option zu setzen. | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.61.0. Verfügbar wenn mit OpenSSL >= 1.1.1 kompiliert.
CURLOPT_PROXY_SSLKEY | Der Dateiname des privaten Schlüssels, der für die Verbindung zum HTTPS-Proxy verwendet wird. Das Standardformat ist "PEM", und kann mit CURLOPT_PROXY_SSLKEYTYPE geändert werden. (nur für iOS und Mac OS X) Diese Option wird ignoriert, wenn curl mit Secure Transport kompiliert wurde. | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0. Verfügbar wenn beim Kompilieren TLS aktivert war.
CURLOPT_PROXY_SSLKEYTYPE | Das Format des privaten Schlüssels. Unterstützte Formate sind "PEM", "DER" und "ENG". | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_PASSWORD | Das Passwort, das für die TLS-Authentifizierungsmethode, die mit der CURLOPT_PROXY_TLSAUTH_TYPE Option angegeben wurde, verwendet werden soll. Erfordert, dass die CURLOPT_PROXY_TLSAUTH_USERNAME Option ebenfalls angegeben wird. | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_TYPE Die Methode der TLS-Authentifizierung, die für die HTTPS-Verbindung verwendet wird. Die unterstützte Methode is "SRP".

Hinweis:

Die Secure Remote Password (SRP) Authentifizierung für TLS bietet gegenseitige Authentifizierung, wenn beide Seiten ein geteiltes Geheimnis (shared secret) haben. Um TLS-SRP zu verwenden, müssen ebenfalls die CURLOPT_PROXY_TLSAUTH_USERNAME und CURLOPT_PROXY_TLSAUTH_PASSWORD Optionen gesetzt werden.

Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_USERNAME | Benutzername für die HTTPS-Proxy TLS-Authentifizierungsmethode, die mit der CURLOPT_PROXY_TLSAUTH_TYPE Option angegeben wurde. Erfordert, dass die CURLOPT_PROXY_TLSAUTH_PASSWORD Option ebenfalls angegeben wird. | Verfügbar seit PHP 7.3.0 and libcurl >= cURL 7.52.0.
CURLOPT_PROXYUSERPWD | Benutzername und Passwort in der Form "[benutzername]:[passwort]" für die Proxy-Verbindung.
CURLOPT_RANDOM_FILE | Ein Dateiname der zur Initialisierung des Zufallsgenerators für SSL benutzt wird.
CURLOPT_RANGE | Bereiche an Daten, die empfangen werden sollen. Das Format sollte "X-Y" sein, wobei X oder Y optional sind. HTTP-Transfers unterstützen auch mehrere Komma-getrennte Intervalle im Format "X-Y,N-M".
CURLOPT_REFERER | Der Inhalt des "Referer: "-Headers
CURLOPT_SERVICE_NAME | Der Name des Authentifizierungsdienstes. | Hinzugefügt in cURL 7.43.0. Verfügbar seit PHP 7.0.7.
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 | Eine Zeichenkette, die 32 hexadezimale Ziffern enthält. Die Zeichenkette sollte die MD5 Prüfsumme des öffentlichen Schlüssels des Remote-Hosts sein. libcurl wird die Verbindung zum Host zurückweisen, falls die Prüfsummen nicht übereinstimmen. Diese Option gilt nur für SCP und SFTP Übertragungen. | Hinzugefügt in cURL 7.17.1.
CURLOPT_SSH_PUBLIC_KEYFILE | Der Dateiname des öffentlichen Schlüssels. Wenn nicht gesetzt, nimmt libcurl $HOME/.ssh/id_dsa.pub an, falls die HOME Umgebungsvariable gesetzt ist, und andernfalls "id_dsa.pub" im aktuellen Verzeichnis. | Hinzugefügt in cURL 7.16.1.
CURLOPT_SSH_PRIVATE_KEYFILE | Der Dateiname des privaten Schlüssels. Wenn nicht gesetzt, nimmt libcurl $HOME/.ssh/id_dsa an, falls die HOME Umgebungsvariable gesetzt ist, und andernfalls "id_dsa" im aktuellen Verzeichnis. Wenn die Datei passwort geschützt ist, muss das Passwort mit CURLOPT_KEYPASSWD bestimmt werden. | Hinzugefügt in cURL 7.16.1.
CURLOPT_SSL_CIPHER_LIST | Eine Liste der für SSL zulässigen Chiffren. RC4-SHA und TLSv1 sind zulässig.
CURLOPT_SSLCERT | Der Name einer Datei die ein Zertifikat im PEM-Format enthält.
CURLOPT_SSLCERTPASSWD | Das Passwort für das CURLOPT_SSLCERT-Zertifikat.
CURLOPT_SSLCERTTYPE | Das Format des Zertifikats. Unterstützt werden PEM (Standard), DER und ENG. Von OpenSSL 0.9.3 an wird "P12" (für PKCS#12-kodierte Dateien) ebenfalls unterstützt. | Hinzugefügt in cURL 7.9.3.
CURLOPT_SSLENGINE | Der Bezeichner für die Crypto Engine des privaten SSL-Schlüssels, der in CURLOPT_SSLKEY definiert ist.
CURLOPT_SSLENGINE_DEFAULT | Der Bezeichner für die Crypto-Engine für asymmetrische kryptographische Operationen.
CURLOPT_SSLKEY | Der Name einer Datei, die einen privaten SSL-Schlüssel enthält.
CURLOPT_SSLKEYPASSWD

Das geheime Passwort das für den in CURLOPT_SSLKEY definierten privaten SSL-Schlüssel.

Hinweis:

Da diese Option sensible Daten enthält sollte das PHP-Script in einer sicheren Umgebung liegen.

CURLOPT_SSLKEYTYPE | Der Typ des in CURLOPT_SSLKEY definierten privaten SSL-Schlüssels. Unterstützte Schlüssel-Typen sind PEM (Standard), DER und ENG.
CURLOPT_TLS13_CIPHERS | Die Liste von Chiffre-Folgen, die für die TLS 1.3 Verbindung verwendet werden. Die List muss syntaktisch korrekt sein; sie besteht aus einer oder mehreren Chiffre-Folgen-Zeichenketten, die durch Doppelpunkt getrennt sind. Die Option wird zurzeit nur verwendet, wenn curl mit OpenSSL 1.1.1 oder später kompiliert wurde. Wird ein anderes SSL-Backend verwendet, kann versucht werden die TLS 1.3 Chiffre-Folgen unter Verwendung der CURLOPT_SSL_CIPHER_LIST Option zu setzen. | Verfügbar seit PHP 7.3.0 und libcurl >= cURL 7.61.0. Verfügbar wenn mit OpenSSL >= 1.1.1 kompiliert.
CURLOPT_UNIX_SOCKET_PATH | Aktiviert die Verwendung von Unix-Domain-Sockets als Verbindsendpunkt, und setzt den Pfad auf den angegebenen String. | Hinzugefügt in cURL 7.40.0. Verfügbar seit PHP 7.0.7.
CURLOPT_URL | Der abzurufende URL; kann auch beim initialisieren der Session mittels curl_init() gesetzt werden.
CURLOPT_USERAGENT | Der Wert des "User-Agent: "-Headers für den HTTP-Request
CURLOPT_USERNAME | Der für die Authentifizierung zu verwendende Benutzername. | Hinzugefügt in cURL 7.19.1. Verfügbar seit PHP 5.5.0.
CURLOPT_USERPWD | Benutzername und Passwort im Format "[benutzername]:[passwort]"
CURLOPT_XOAUTH2_BEARER | Gibt das OAuth 2.0 Access-Token an. | Hinzugefügt in cURL 7.33.0. Verfügbar seit PHP 7.0.7.

Für die folgenden option-Parameter sollte value ein Array sein:

Option | Wert für value | Anmerkungen
CURLOPT_CONNECT_TO | Verbinde zu einem bestimmten Host und Port anstatt dem Host und Port, der in der URL angegeben ist. Erwartet ein Array von Zeichenketten im Format HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT. | Hinzugefügt in cURL 7.49.0. Verfügbar seit PHP 7.0.7.
CURLOPT_HTTP200ALIASES | Ein Array von HTTP-200-Status die als gültige Antoworten und nicht als Fehler behandelt werden. | Hinzugefügt in cURL 7.10.3.
CURLOPT_HTTPHEADER | Ein Array von HTTP-Headern, im Format array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTE | Ein Array von FTP-Kommandos, die nach dem FTP-Request auf dem Server ausgeführt werden sollen.
CURLOPT_PROXYHEADER | Ein Array von benutzerdefinierten HTTP-Headern, die an Proxies gesendet werden sollen. | Hinzugefügt in cURL 7.37.0. Verfügbar seit PHP 7.0.7.
CURLOPT_QUOTE | Ein Array von FTP-Kommandos, die vor dem FTP-Request auf dem Server ausgeführt werden sollen.
CURLOPT_RESOLVE | Nutze eine benutzerdefinierte Adresse für eine bestimmte Host und Port-Kombination Ein Array von Hostname-, Port- und IP-Adressen-Zeichenketten, wobei jedes Element durch einen Doppelpunkt getrennt ist; im Format: array("example.com:80:127.0.0.1") | Hinzugefügt in cURL 7.21.3. Verfügbar seit PHP 5.5.0.

Für die folgenden option-Parameter sollte value eine Stream-Resource sein, so wie sie z.B. mittels fopen() erstellt werden kann

Option | Wert für value
CURLOPT_FILE | Die Datei, in die der Transfer geschrieben werden soll. Standard ist STDOUT (der Browser).
CURLOPT_INFILE | Die Datei die zum Upload gelesen werden soll.
CURLOPT_STDERR | Eine Datei, in die Fehler ausgegeben werden, alternativ zu STDERR.
CURLOPT_WRITEHEADER | In diese Datei werden die Header eines Transfers geschrieben.

Für die folgenden option-Parameter sollte value der Name einer gültigen Funktion oder eine Closure sein.

Option | Wert für value
CURLOPT_HEADERFUNCTION | Ein Callback, der zwei Parameter erwartet. Der erste ist die cURL-Resource, der zweite ist ein String mit den zu schreibenden Headern. Bei Nutzung dieser Callback-Funktion liegt die Verantwortung für das Schreiben der Header bei Ihnen. Die Funktion sollte die Anzahl der geschriebenen Bytes zurückgeben.
CURLOPT_PASSWDFUNCTION | Ein Callback, der drei Parameter erwartet. Der erste ist die cURL-Resource, der zweite ein String der ein Passwort-Prompt enthält, der dritte Parameter enthält die maximal zulässige Länge des Passworts. Die Funktion sollte das Passwort als String zurückgeben.
CURLOPT_PROGRESSFUNCTION

Ein Callback, die fünf Parameter erwartet. Der erste ist die cURL-Resource, der zweite ist die erwartete Gesamtanzahl von Bytes, die in dieser Übertragung herunter geladen werden, der dritte ist die Anzahl von Bytes die bisher herunter geladen wurden, der vierte ist die erwartete Gesamtanzahl von Bytes, die bei dieser Übertragung hoch geladen werden, und der fünfte ist die Anzahl von Bytes, die bisher hoch geladen wurden.

Hinweis:

Der Callback wird nur aufgerufen, wenn die CURLOPT_NOPROGRESS Option auf false gesetzt ist.

Ein Rückgabewert ungleich 0 bricht die Übertragung ab. In diesem Fall setzt der Transfer einen CURLE_ABORTED_BY_CALLBACK Fehler.

CURLOPT_READFUNCTION | Ein Callback, der drei Parameter erwartet. Der erste ist die cURL- Resource, der zweite ist eine Stream-Resource, die cURL durch die Option CURLOPT_INFILE zur Verfügung gestellt wird, und der dritte ist die Höchstmenge von Daten die gelesen werden. Der Callback muss eine Zeichenkette mit einer Länge gleich oder kleiner als der angeforderten Datenmenge zurückgeben, typischerweise durch Lesen von der übergebenen Stream-Resource. Er soll eine leere Zeichenkette zurückgeben, um EOF zu signalisieren.
CURLOPT_WRITEFUNCTION | Ein Callback, der zwei Parameter erwartet. Der erste ist die cURL-Resource, der zweite ist ein String mit den zu schreibenden Daten. Bei Nutzung dieser Callback-Funktion liegt die Verantwortung für das Speichern der Daten bei Ihnen. Die Funktion muss die genaue Anzahl geschriebener Bytes zurückgeben!

Andere Werte:

Option | Wert für value
CURLOPT_SHARE | Ein Ergebnis von curl_share_init(). Veranlasst das cURL-Handle die Daten des geteilten Handle zu verwenden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.3.15, 7.4.3 | CURLOPT_HTTP09_ALLOWED wurde eingeführt.
7.3.0 | CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPT_PRE_PROXY, CURLOPT_PROXY_CAINFO, CURLOPT_PROXY_CAPATH, CURLOPT_PROXY_CRLFILE, CURLOPT_PROXY_KEYPASSWD, CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPT_PROXY_SSLCERT, CURLOPT_PROXY_SSLCERTTYPE, CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPT_PROXY_SSLKEY, CURLOPT_PROXY_SSLKEYTYPE, CURLOPT_PROXY_SSL_OPTIONS, CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPT_PROXY_SSLVERSION, CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPT_SOCKS5_AUTH, CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPT_HAPROXYPROTOCOL, CURLOPT_PROXY_TLS13_CIPHERS, CURLOPT_SSH_COMPRESSION, CURLOPT_TIMEVALUE_LARGE und CURLOPT_TLS13_CIPHERS wurden eingeführt.
7.0.7 | CURL_HTTP_VERSION_2, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CURL_HTTP_VERSION_2TLS, CURL_REDIR_POST_301, CURL_REDIR_POST_302, CURL_REDIR_POST_303, CURL_REDIR_POST_ALL, CURL_VERSION_KERBEROS5, CURL_VERSION_PSL, CURL_VERSION_UNIX_SOCKETS, CURLAUTH_NEGOTIATE, CURLAUTH_NTLM_WB, CURLFTP_CREATE_DIR, CURLFTP_CREATE_DIR_NONE, CURLFTP_CREATE_DIR_RETRY, CURLHEADER_SEPARATE, CURLHEADER_UNIFIED, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPT_CONNECT_TO, CURLOPT_DEFAULT_PROTOCOL, CURLOPT_DNS_INTERFACE, CURLOPT_DNS_LOCAL_IP4, CURLOPT_DNS_LOCAL_IP6, CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPT_HEADEROPT, CURLOPT_LOGIN_OPTIONS, CURLOPT_PATH_AS_IS, CURLOPT_PINNEDPUBLICKEY, CURLOPT_PIPEWAIT, CURLOPT_PROXY_SERVICE_NAME, CURLOPT_PROXYHEADER, CURLOPT_SASL_IR, CURLOPT_SERVICE_NAME, CURLOPT_SSL_ENABLE_ALPN, CURLOPT_SSL_ENABLE_NPN, CURLOPT_SSL_FALSESTART, CURLOPT_SSL_VERIFYSTATUS, CURLOPT_STREAM_WEIGHT, CURLOPT_TCP_FASTOPEN, CURLOPT_TFTP_NO_OPTIONS, CURLOPT_UNIX_SOCKET_PATH, CURLOPT_XOAUTH2_BEARER, CURLPROTO_SMB, CURLPROTO_SMBS, CURLPROXY_HTTP_1_0, CURLSSH_AUTH_AGENT und CURLSSLOPT_NO_REVOKE wurden eingeführt.

Beispiele

Beispiel #1 Initialisierung einer neuen cURL-Session und das Abrufen einer Webseite

<?php
// erzeuge einen neuen cURL-Handle
$ch = curl_init();

// setze die URL und andere Optionen
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);

// führe die Aktion aus und gebe die Daten an den Browser weiter
curl_exec($ch);

// schließe den cURL-Handle und gebe die Systemresourcen frei
curl_close($ch);
?>

Beispiel #2 Datei-Upload (missbilligt von PHP 5.5.0 an)

<?php

/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/

$ch = curl_init();

$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');

curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); // erfoderlich von PHP 5.6.0 an
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [name] => Foo
)
Array
(
    [file] => Array
        (
            [name] => test.png
            [type] => image/png
            [tmp_name] => /tmp/phpcpjNeQ
            [error] => 0
            [size] => 279
        )

)

Anmerkungen

Hinweis:

Ein für CURLOPT_POST übergebenes Array wird als multipart/form-data, ein URL-kodierter String als application/x-www-form-urlencoded kodiert.

Siehe auch

  • curl_setopt_array() - Mehrere Optionen für einen cURL-Transfer setzen


Close a cURL share handle

  • « curl_setopt
  • curl_share_errno »
  • PHP Manual
  • cURL Funktionen
  • Close a cURL share handle

curl_share_close

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_close — Close a cURL share handle

Beschreibung

curl_share_close ( CurlShareHandle $share_handle ) : void

Closes a cURL share handle and frees all resources.

Parameter-Liste

share_handle

A cURL share handle returned by curl_share_init().

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | share_handle expects a CurlShareHandle instance now; previously, a resource was expected.

Beispiele

Beispiel #1 curl_share_setopt() example

This example will create a cURL share handle, add two cURL handles to it, and then run them with cookie data sharing.

<?php
// Create cURL share handle and set it to share cookie data
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Initialize the first cURL handle and assign the share handle to it
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Execute the first cURL handle
curl_exec($ch1);

// Initialize the second cURL handle and assign the share handle to it
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Execute the second cURL handle
//  all cookies from $ch1 handle are shared with $ch2 handle
curl_exec($ch2);

// Close the cURL share handle
curl_share_close($sh);

// Close the cURL handles
curl_close($ch1);
curl_close($ch2);
?>

Siehe auch

  • curl_share_init() - Initialize a cURL share handle


Return the last share curl error number

  • « curl_share_close
  • curl_share_init »
  • PHP Manual
  • cURL Funktionen
  • Return the last share curl error number

curl_share_errno

(PHP 7 >= 7.1.0, PHP 8)

curl_share_errno — Return the last share curl error number

Beschreibung

curl_share_errno ( CurlShareHandle $share_handle ) : int

Return an integer containing the last share curl error number.

Parameter-Liste

share_handle

A cURL share handle returned by curl_share_init().

Rückgabewerte

Returns an integer containing the last share curl error number, Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | The function no longer returns false on failure.
8.0.0 | share_handle expects a CurlShareHandle instance now; previously, a resource was expected.

Siehe auch

  • curl_errno() - Gibt die letzte Fehlernummer zurück


Initialize a cURL share handle

  • « curl_share_errno
  • curl_share_setopt »
  • PHP Manual
  • cURL Funktionen
  • Initialize a cURL share handle

curl_share_init

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_init — Initialize a cURL share handle

Beschreibung

curl_share_init ( ) : CurlShareHandle

Allows to share data between cURL handles.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a cURL share handle.

Changelog

Version | Beschreibung
8.0.0 | This function returns a CurlShareHandle instance now; previously, a resource was returned.

Beispiele

Beispiel #1 curl_share_init() example

This example will create a cURL share handle, add two cURL handles to it, and then run them with cookie data sharing.

<?php
// Create cURL share handle and set it to share cookie data
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Initialize the first cURL handle and assign the share handle to it
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Execute the first cURL handle
curl_exec($ch1);

// Initialize the second cURL handle and assign the share handle to it
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Execute the second cURL handle
//  all cookies from $ch1 handle are shared with $ch2 handle
curl_exec($ch2);

// Close the cURL share handle
curl_share_close($sh);

// Close the cURL handles
curl_close($ch1);
curl_close($ch2);
?>

Siehe auch

  • curl_share_setopt() - Set an option for a cURL share handle
  • curl_share_close() - Close a cURL share handle


Set an option for a cURL share handle

  • « curl_share_init
  • curl_share_strerror »
  • PHP Manual
  • cURL Funktionen
  • Set an option for a cURL share handle

curl_share_setopt

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_setopt — Set an option for a cURL share handle

Beschreibung

curl_share_setopt ( CurlShareHandle $share_handle , int $option , mixed $value ) : bool

Sets an option on the given cURL share handle.

Parameter-Liste

share_handle

A cURL share handle returned by curl_share_init().

option

Option | Description
CURLSHOPT_SHARE | Specifies a type of data that should be shared.
CURLSHOPT_UNSHARE | Specifies a type of data that will be no longer shared.

value

Value | Description
CURL_LOCK_DATA_COOKIE | Shares cookie data.
CURL_LOCK_DATA_DNS | Shares DNS cache. Note that when you use cURL multi handles, all handles added to the same multi handle will share DNS cache by default.
CURL_LOCK_DATA_SSL_SESSION | Shares SSL session IDs, reducing the time spent on the SSL handshake when reconnecting to the same server. Note that SSL session IDs are reused within the same handle by default.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | share_handle expects a CurlShareHandle instance now; previously, a resource was expected.

Beispiele

Beispiel #1 curl_share_setopt() example

This example will create a cURL share handle, add two cURL handles to it, and then run them with cookie data sharing.

<?php
// Create cURL share handle and set it to share cookie data
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Initialize the first cURL handle and assign the share handle to it
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Execute the first cURL handle
curl_exec($ch1);

// Initialize the second cURL handle and assign the share handle to it
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Execute the second cURL handle
//  all cookies from $ch1 handle are shared with $ch2 handle
curl_exec($ch2);

// Close the cURL share handle
curl_share_close($sh);

// Close the cURL handles
curl_close($ch1);
curl_close($ch2);
?>


Return string describing the given error code

  • « curl_share_setopt
  • curl_strerror »
  • PHP Manual
  • cURL Funktionen
  • Return string describing the given error code

curl_share_strerror

(PHP 7 >= 7.1.0, PHP 8)

curl_share_strerror — Return string describing the given error code

Beschreibung

curl_share_strerror ( int $error_code ) : string|null

Returns a text error message describing the given error code.

Parameter-Liste

error_code

One of the » cURL error codes constants.

Rückgabewerte

Returns error description or null for invalid error code.

Siehe auch

  • curl_share_errno() - Return the last share curl error number
  • curl_strerror() - Return string describing the given error code


Return string describing the given error code

  • « curl_share_strerror
  • curl_unescape »
  • PHP Manual
  • cURL Funktionen
  • Return string describing the given error code

curl_strerror

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_strerror — Return string describing the given error code

Beschreibung

curl_strerror ( int $error_code ) : string|null

Returns a text error message describing the given error code.

Parameter-Liste

error_code

One of the » cURL error codes constants.

Rückgabewerte

Returns error description or null for invalid error code.

Beispiele

Beispiel #1 curl_errno() example

<?php
// Create a curl handle with a misspelled protocol in URL
$ch = curl_init("htp://example.com/");

// Send request
curl_exec($ch);

// Check for errors and display the error message
if($errno = curl_errno($ch)) {
    $error_message = curl_strerror($errno);
    echo "cURL error ({$errno}):\n {$error_message}";
}

// Close the handle
curl_close($ch);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

cURL error (1):
 Unsupported protocol

Siehe auch

  • curl_errno() - Gibt die letzte Fehlernummer zurück
  • curl_error() - Gibt einen String zurück, der den letzten Fehler der aktuellen Session enthält
  • » Curl error codes


Decodes the given URL encoded string

  • « curl_strerror
  • curl_version »
  • PHP Manual
  • cURL Funktionen
  • Decodes the given URL encoded string

curl_unescape

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_unescape — Decodes the given URL encoded string

Beschreibung

curl_unescape ( CurlHandle $handle , string $string ) : string|false

This function decodes the given URL encoded string.

Parameter-Liste

handle

Ein von curl_init() zurückgegebenes cURL-Handle.

string

The URL encoded string to be decoded.

Rückgabewerte

Returns decoded string Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | handle expects a CurlHandle instance now; previously, a resource was expected.

Beispiele

Beispiel #1 curl_escape() example

<?php
// Create a curl handle
$ch = curl_init('http://example.com/redirect.php');

// Send HTTP request and follow redirections
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);

// Get the last effective URL
$effective_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
// ie. "http://example.com/show_location.php?loc=M%C3%BCnchen"

// Decode the URL
$effective_url_decoded = curl_unescape($ch, $effective_url);
// "http://example.com/show_location.php?loc=München"

// Close the handle
curl_close($ch);
?>

Anmerkungen

Hinweis:

curl_unescape() does not decode plus symbols (+) into spaces. urldecode() does.

Siehe auch

  • curl_escape() - URL-kodiert den angegebenen String
  • urlencode() - URL-kodiert einen String
  • urldecode() - Dekodiert eine URL-kodierte Zeichenkette
  • rawurlencode() - URL-Kodierung nach RFC 3986
  • rawurldecode() - Dekodiert URL-kodierte Strings


Gibt die cURL-Version zurück

  • « curl_unescape
  • CURLFile »
  • PHP Manual
  • cURL Funktionen
  • Gibt die cURL-Version zurück

curl_version

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_version — Gibt die cURL-Version zurück

Beschreibung

curl_version ( int $age = CURLVERSION_NOW ) : array

Gibt Informationen über die cURL-Version zurück.

Parameter-Liste

age

Rückgabewerte

Gibt ein assoziatives Array mit den folgenden Elementen zurück:

Schlüssel | Beschreibung
version_number | cURL 24-Bit Versions-Nummer
version | cURL-Version als String
ssl_version_number | OpenSSL 24Bt Versions-Nummer
ssl_version | OpenSSL-Version als String
libz_version | zlib-Version als String
host | Informationen zum Host, auf dem cURL kompiliert wurde
age |
features | Eine Bitmask der CURL_VERSION_XXX-Konstanten
protocols | Ein Array der von cURL unterstützten Protokollnamen

Beispiele

Beispiel #1 Beispiel für curl_version()

Dieses Beispiel prüft anhand der 'features' Bitmask die von curl_version() zurückgegeben wird, welche Features in dieser cURL-Version verfügbar sind.

<?php
// Hole Array mit Versions-Informationen
$version = curl_version();

// Diese Bitfelder können zur Prüfung benutzt werden
$bitfields = Array(
            'CURL_VERSION_IPV6',
            'CURL_VERSION_KERBEROS4',
            'CURL_VERSION_SSL',
            'CURL_VERSION_LIBZ'
            );

foreach($bitfields as $feature)
{
    echo $feature . ($version['features'] & constant($feature) ? ' ja' : ' nein');
    echo PHP_EOL;
}
?>


Die CURLFile Klasse

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Einführung

CURLFile sollte benutzt werden um eine Datei mit CURLOPT_POSTFIELDS hochzuladen.

Klassenbeschreibung

CURLFile {
/* Eigenschaften */
public mixed $name ;
public mixed $mime ;
public mixed $postname ;
/* Methoden */
public __construct ( string $filename , string $mimetype = "" , string $postname = "" )
public getFilename ( ) : string
public getMimeType ( ) : string
public getPostFilename ( ) : string
public setMimeType ( string $mime ) : void
public setPostFilename ( string $postname ) : void
}

Eigenschaften

name

Der Name der hochzuladenden Datei.

mime

Der MIME-Typ der Datei (Vorgabe ist application/octet-stream).

postname

Der Name der Datei in den Upload-Daten (Vorgabe ist die name Eigenschaft).

Siehe auch

  • curl_setopt()

Inhaltsverzeichnis

  • CURLFile::__construct — Erstellt ein CURLFile Objekt
  • CURLFile::getFilename — Ermittelt den Dateinamen
  • CURLFile::getMimeType — Ermittelt den Mime-Typ
  • CURLFile::getPostFilename — Ermittelt den Dateinamen für POST
  • CURLFile::setMimeType — Setzt den Mime-Typ fest
  • CURLFile::setPostFilename — Setzt den Dateinamen für POST fest


Erstellt ein CURLFile Objekt

  • « CURLFile
  • CURLFile::getFilename »
  • PHP Manual
  • CURLFile
  • Erstellt ein CURLFile Objekt

CURLFile::__construct

curl_file_create

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::__construct -- curl_file_create — Erstellt ein CURLFile Objekt

Beschreibung

Objektorientierter Stil

public CURLFile::__construct ( string $filename , string $mimetype = "" , string $postname = "" )

Prozeduraler Stil

curl_file_create ( string $filename , string $mimetype = "" , string $postname = "" ) : CURLFile

Erstellt ein CURLFile, welches zum Upload einer Datei via CURLOPT_POSTFIELDS verwendet wird.

Parameter-Liste

filename

Pfad zur Datei die hochgeladen wird.

mimetype

Mimetyp der Datei.

postname

Der in den Upload-Daten zu verwendende Dateiname.

Rückgabewerte

Gibt ein CURLFile-Objekt zurück.

Beispiele

Beispiel #1 CURLFile::__construct() Beispiel

Objektorientierter Stil

<?php
/* http://example.com/upload.php:
<?php var_dump($_FILES); ?>
*/

// Erstellt ein cURL handle
$ch = curl_init('http://example.com/upload.php');

// Erstellt ein CURLFile-Object
$cfile = new CURLFile('cats.jpg','image/jpeg','test_name');

// POST-Daten hinzufügen
$data = array('test_file' => $cfile);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Das Handle ausführen
curl_exec($ch);
?>

Prozeduraler Stil

<?php
/* http://example.com/upload.php:
<?php var_dump($_FILES); ?>
*/

// Erstellt ein cURL-Handle
$ch = curl_init('http://example.com/upload.php');

// Erstellt ein CURLFile-Object
$cfile = curl_file_create('cats.jpg','image/jpeg','test_name');

// POST-Daten hinzufügen
$data = array('test_file' => $cfile);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Handle ausführen
curl_exec($ch);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["test_file"]=>
  array(5) {
    ["name"]=>
    string(9) "test_name"
    ["type"]=>
    string(10) "image/jpeg"
    ["tmp_name"]=>
    string(14) "/tmp/phpPC9Kbx"
    ["error"]=>
    int(0)
    ["size"]=>
    int(46334)
  }
}

Beispiel #2 CURLFile::__construct() Beispiel zum Upload mehrerer Dateien

Objektorientierter Stil

<?php
$request = curl_init('http://www.example.com/upload.php');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request,
CURLOPT_SAFE_UPLOAD, true); curl_setopt(
    $request,
    CURLOPT_POSTFIELDS,
    [
        'blob[0]' => new CURLFile(realpath('erste-datei.jpg'), 'image/jpeg'),
        'blob[1]' => new CURLFile(realpath('zweite-datei.txt'), 'text/plain'),
        'blob[2]' => new CURLFile(realpath('dritte-datei.exe'), 'application/octet-stream'),
    ] );
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);

echo curl_exec($request);

var_dump(curl_getinfo($request));

curl_close($request);

Prozeduraler Stil

<?php
// procedural
$request = curl_init('http://www.example.com/upload.php');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_SAFE_UPLOAD, true); curl_setopt(
    $request,
    CURLOPT_POSTFIELDS,
    [
        'blob[0]' => curl_file_create(realpath('erste-datei.jpg'), 'image/jpeg'),
        'blob[1]' => curl_file_create(realpath('zweite-datei.txt'), 'text/plain'),
        'blob[2]' => curl_file_create(realpath('dritte-datei.exe'), 'application/octet-stream'),
    ] );
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);

echo curl_exec($request);

var_dump(curl_getinfo($request));

curl_close($request);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(26) {
  ["url"]=>
  string(31) "http://www.example.com/upload.php"
  ["content_type"]=>
  string(24) "text/html; CHARSET=Windows-1252"
  ["http_code"]=>
  int(200)
  ["header_size"]=>
  int(198)
  ["request_size"]=>
  int(196)
  ["filetime"]=>
  int(-1)
  ["ssl_verify_result"]=>
  int(0)
  ["redirect_count"]=>
  int(0)
  ["total_time"]=>
  float(0.060062)
  ["namelookup_time"]=>
  float(0.028575)
  ["connect_time"]=>
  float(0.029011)
  ["pretransfer_time"]=>
  float(0.029121)
  ["size_upload"]=>
  float(3230730)
  ["size_download"]=>
  float(811)
  ["speed_download"]=>
  float(13516)
  ["speed_upload"]=>
  float(53845500)
  ["download_content_length"]=>
  float(811)
  ["upload_content_length"]=>
  float(3230730)
  ["starttransfer_time"]=>
  float(0.030355)
  ["redirect_time"]=>
  float(0)
  ["redirect_url"]=>
  string(0) ""
  ["primary_ip"]=>
  string(13) "0.0.0.0"
  ["certinfo"]=>
  array(0) {
  }
  ["primary_port"]=>
  int(80)
  ["local_ip"]=>
  string(12) "0.0.0.0"
  ["local_port"]=>
  int(34856)
}

Siehe auch

  • curl_setopt() - Eine Option für einen cURL Transfer setzen


Ermittelt den Dateinamen

  • « CURLFile::__construct
  • CURLFile::getMimeType »
  • PHP Manual
  • CURLFile
  • Ermittelt den Dateinamen

CURLFile::getFilename

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::getFilename — Ermittelt den Dateinamen

Beschreibung

public CURLFile::getFilename ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Dateinamen zurück.


Ermittelt den Mime-Typ

  • « CURLFile::getFilename
  • CURLFile::getPostFilename »
  • PHP Manual
  • CURLFile
  • Ermittelt den Mime-Typ

CURLFile::getMimeType

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::getMimeType — Ermittelt den Mime-Typ

Beschreibung

public CURLFile::getMimeType ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Mime-Typ zurück.


Ermittelt den Dateinamen für POST

  • « CURLFile::getMimeType
  • CURLFile::setMimeType »
  • PHP Manual
  • CURLFile
  • Ermittelt den Dateinamen für POST

CURLFile::getPostFilename

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::getPostFilename — Ermittelt den Dateinamen für POST

Beschreibung

public CURLFile::getPostFilename ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Dateinamen für POST zurück.


Setzt den Mime-Typ fest

  • « CURLFile::getPostFilename
  • CURLFile::setPostFilename »
  • PHP Manual
  • CURLFile
  • Setzt den Mime-Typ fest

CURLFile::setMimeType

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::setMimeType — Setzt den Mime-Typ fest

Beschreibung

public CURLFile::setMimeType ( string $mime ) : void

Parameter-Liste

mime

Der in den POST-Daten zu verwendende MIME-Typ.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Setzt den Dateinamen für POST fest

  • « CURLFile::setMimeType
  • Event »
  • PHP Manual
  • CURLFile
  • Setzt den Dateinamen für POST fest

CURLFile::setPostFilename

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::setPostFilename — Setzt den Dateinamen für POST fest

Beschreibung

public CURLFile::setPostFilename ( string $postname ) : void

Parameter-Liste

postname

Der in den POST-Daten zu verwendende Dateiname.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Event

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Beispiele
  • Event flags
  • About event persistence
  • Event callbacks
  • Constructing signal events
  • Event — The Event class
    • Event::add — Makes event pending
    • Event::addSignal — Makes signal event pending
    • Event::addTimer — Makes timer event pending
    • Event::__construct — Constructs Event object
    • Event::del — Makes event non-pending
    • Event::delSignal — Makes signal event non-pending
    • Event::delTimer — Makes timer event non-pending
    • Event::free — Make event non-pending and free resources allocated for this event
    • Event::getSupportedMethods — Returns array with of the names of the methods supported in this version of Libevent
    • Event::pending — Detects whether event is pending or scheduled
    • Event::set — Re-configures event
    • Event::setPriority — Set event priority
    • Event::setTimer — Re-configures timer event
    • Event::signal — Constructs signal event object
    • Event::timer — Constructs timer event object
  • EventBase — The EventBase class
    • EventBase::__construct — Constructs EventBase object
    • EventBase::dispatch — Dispatch pending events
    • EventBase::exit — Stop dispatching events
    • EventBase::free — Free resources allocated for this event base
    • EventBase::getFeatures — Returns bitmask of features supported
    • EventBase::getMethod — Returns event method in use
    • EventBase::getTimeOfDayCached — Returns the current event base time
    • EventBase::gotExit — Checks if the event loop was told to exit
    • EventBase::gotStop — Checks if the event loop was told to exit
    • EventBase::loop — Dispatch pending events
    • EventBase::priorityInit — Sets number of priorities per event base
    • EventBase::reInit — Re-initialize event base(after a fork)
    • EventBase::stop — Tells event_base to stop dispatching events
  • EventBuffer — The EventBuffer class
    • EventBuffer::add — Append data to the end of an event buffer
    • EventBuffer::addBuffer — Move all data from a buffer provided to the current instance of EventBuffer
    • EventBuffer::appendFrom — Moves the specified number of bytes from a source buffer to the end of the current buffer
    • EventBuffer::__construct — Constructs EventBuffer object
    • EventBuffer::copyout — Copies out specified number of bytes from the front of the buffer
    • EventBuffer::drain — Removes specified number of bytes from the front of the buffer without copying it anywhere
    • EventBuffer::enableLocking — Beschreibung
    • EventBuffer::expand — Reserves space in buffer
    • EventBuffer::freeze — Prevent calls that modify an event buffer from succeeding
    • EventBuffer::lock — Acquires a lock on buffer
    • EventBuffer::prepend — Prepend data to the front of the buffer
    • EventBuffer::prependBuffer — Moves all data from source buffer to the front of current buffer
    • EventBuffer::pullup — Linearizes data within buffer and returns it's contents as a string
    • EventBuffer::read — Read data from an evbuffer and drain the bytes read
    • EventBuffer::readFrom — Read data from a file onto the end of the buffer
    • EventBuffer::readLine — Extracts a line from the front of the buffer
    • EventBuffer::search — Scans the buffer for an occurrence of a string
    • EventBuffer::searchEol — Scans the buffer for an occurrence of an end of line
    • EventBuffer::substr — Substracts a portion of the buffer data
    • EventBuffer::unfreeze — Re-enable calls that modify an event buffer
    • EventBuffer::unlock — Releases lock acquired by EventBuffer::lock
    • EventBuffer::write — Schreibt den Inhalt des Puffers in eine Datei oder ein Socket
  • EventBufferEvent — The EventBufferEvent class
    • EventBufferEvent::close — Closes file descriptor associated with the current buffer event
    • EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket
    • EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving
    • EventBufferEvent::__construct — Constructs EventBufferEvent object
    • EventBufferEvent::createPair — Creates two buffer events connected to each other
    • EventBufferEvent::disable — Disable events read, write, or both on a buffer event
    • EventBufferEvent::enable — Enable events read, write, or both on a buffer event
    • EventBufferEvent::free — Free a buffer event
    • EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt
    • EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event
    • EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event
    • EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event
    • EventBufferEvent::read — Read buffer's data
    • EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf
    • EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks
    • EventBufferEvent::setPriority — Assign a priority to a bufferevent
    • EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event
    • EventBufferEvent::setWatermark — Adjusts read and/or write watermarks
    • EventBufferEvent::sslError — Returns most recent OpenSSL error reported on the buffer event
    • EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event
    • EventBufferEvent::sslGetCipherInfo — Returns a textual description of the cipher
    • EventBufferEvent::sslGetCipherName — Returns the current cipher name of the SSL connection
    • EventBufferEvent::sslGetCipherVersion — Returns version of cipher used by current SSL connection
    • EventBufferEvent::sslGetProtocol — Returns the name of the protocol used for current SSL connection
    • EventBufferEvent::sslRenegotiate — Tells a bufferevent to begin SSL renegotiation
    • EventBufferEvent::sslSocket — Creates a new SSL buffer event to send its data over an SSL on a socket
    • EventBufferEvent::write — Fügt Daten zum Ausgabepuffer eines Pufferereignises hinzu
    • EventBufferEvent::writeBuffer — Adds contents of the entire buffer to a buffer event's output buffer
  • About buffer event callbacks
  • EventConfig — The EventConfig class
    • EventConfig::avoidMethod — Tells libevent to avoid specific event method
    • EventConfig::__construct — Constructs EventConfig object
    • EventConfig::requireFeatures — Enters a required event method feature that the application demands
    • EventConfig::setMaxDispatchInterval — Prevents priority inversion
  • EventDnsBase — The EventDnsBase class
    • EventDnsBase::addNameserverIp — Adds a nameserver to the DNS base
    • EventDnsBase::addSearch — Adds a domain to the list of search domains
    • EventDnsBase::clearSearch — Removes all current search suffixes
    • EventDnsBase::__construct — Constructs EventDnsBase object
    • EventDnsBase::countNameservers — Gets the number of configured nameservers
    • EventDnsBase::loadHosts — Loads a hosts file (in the same format as /etc/hosts) from hosts file
    • EventDnsBase::parseResolvConf — Scans the resolv.conf-formatted file
    • EventDnsBase::setOption — Set the value of a configuration option
    • EventDnsBase::setSearchNdots — Set the 'ndots' parameter for searches
  • EventHttp — The EventHttp class
    • EventHttp::accept — Makes an HTTP server accept connections on the specified socket stream or resource
    • EventHttp::addServerAlias — Adds a server alias to the HTTP server object
    • EventHttp::bind — Binds an HTTP server on the specified address and port
    • EventHttp::__construct — Constructs EventHttp object(the HTTP server)
    • EventHttp::removeServerAlias — Removes server alias
    • EventHttp::setAllowedMethods — Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks
    • EventHttp::setCallback — Sets a callback for specified URI
    • EventHttp::setDefaultCallback — Sets default callback to handle requests that are not caught by specific callbacks
    • EventHttp::setMaxBodySize — Sets maximum request body size
    • EventHttp::setMaxHeadersSize — Sets maximum HTTP header size
    • EventHttp::setTimeout — Sets the timeout for an HTTP request
  • EventHttpConnection — The EventHttpConnection class
    • EventHttpConnection::__construct — Constructs EventHttpConnection object
    • EventHttpConnection::getBase — Returns event base associated with the connection
    • EventHttpConnection::getPeer — Gets the remote address and port associated with the connection
    • EventHttpConnection::makeRequest — Makes an HTTP request over the specified connection
    • EventHttpConnection::setCloseCallback — Set callback for connection close
    • EventHttpConnection::setLocalAddress — Sets the IP address from which HTTP connections are made
    • EventHttpConnection::setLocalPort — Sets the local port from which connections are made
    • EventHttpConnection::setMaxBodySize — Sets maximum body size for the connection
    • EventHttpConnection::setMaxHeadersSize — Sets maximum header size
    • EventHttpConnection::setRetries — Sets the retry limit for the connection
    • EventHttpConnection::setTimeout — Sets the timeout for the connection
  • EventHttpRequest — The EventHttpRequest class
    • EventHttpRequest::addHeader — Adds an HTTP header to the headers of the request
    • EventHttpRequest::cancel — Cancels a pending HTTP request
    • EventHttpRequest::clearHeaders — Removes all output headers from the header list of the request
    • EventHttpRequest::closeConnection — Closes associated HTTP connection
    • EventHttpRequest::__construct — Constructs EventHttpRequest object
    • EventHttpRequest::findHeader — Finds the value belonging a header
    • EventHttpRequest::free — Frees the object and removes associated events
    • EventHttpRequest::getBufferEvent — Returns EventBufferEvent object
    • EventHttpRequest::getCommand — Returns the request command(method)
    • EventHttpRequest::getConnection — Returns EventHttpConnection object
    • EventHttpRequest::getHost — Returns the request host
    • EventHttpRequest::getInputBuffer — Returns the input buffer
    • EventHttpRequest::getInputHeaders — Returns associative array of the input headers
    • EventHttpRequest::getOutputBuffer — Returns the output buffer of the request
    • EventHttpRequest::getOutputHeaders — Returns associative array of the output headers
    • EventHttpRequest::getResponseCode — Returns the response code
    • EventHttpRequest::getUri — Returns the request URI
    • EventHttpRequest::removeHeader — Removes an HTTP header from the headers of the request
    • EventHttpRequest::sendError — Send an HTML error message to the client
    • EventHttpRequest::sendReply — Send an HTML reply to the client
    • EventHttpRequest::sendReplyChunk — Send another data chunk as part of an ongoing chunked reply
    • EventHttpRequest::sendReplyEnd — Complete a chunked reply, freeing the request as appropriate
    • EventHttpRequest::sendReplyStart — Initiate a chunked reply
  • EventListener — The EventListener class
    • EventListener::__construct — Creates new connection listener associated with an event base
    • EventListener::disable — Disables an event connect listener object
    • EventListener::enable — Enables an event connect listener object
    • EventListener::getBase — Returns event base associated with the event listener
    • EventListener::getSocketName — Retreives the current address to which the listener's socket is bound
    • EventListener::setCallback — The setCallback purpose
    • EventListener::setErrorCallback — Set event listener's error callback
  • EventSslContext — The EventSslContext class
    • EventSslContext::__construct — Constructs an OpenSSL context for use with Event classes
  • EventUtil — The EventUtil class
    • EventUtil::__construct — The abstract constructor
    • EventUtil::getLastSocketErrno — Returns the most recent socket error number
    • EventUtil::getLastSocketError — Returns the most recent socket error
    • EventUtil::getSocketFd — Returns numeric file descriptor of a socket, or stream
    • EventUtil::getSocketName — Retreives the current address to which the socket is bound
    • EventUtil::setSocketOption — Sets socket options
    • EventUtil::sslRandPoll — Generates entropy by means of OpenSSL's RAND_poll()


Einführung

This is an extension to efficiently schedule I/O, time and signal based events using the best I/O notification mechanism available for specific platform. This is a port of libevent to the PHP infrastructure.

Hinweis:

Note, Windows support introduced in event-1.9.0 .

Version 1.0.0 introduces new object-oriented API (breaking backwards compatibility), and support of libevent 2+ including HTTP, DNS, OpenSSL and the event listener.

Hinweis:

Note, event-1.0.0 and greater is not compatible with previous versions.


Anforderungen

This extension requires » libevent library. Most modern distributions provide packages for libevent.

OpenSSL features require » OpenSSL library.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/event .


Beispiele

Beispiel #1 Simple HTTP client

<?php
// Read callback
function readcb($bev, $base) {
    //$input = $bev->input; //$bev->getInput();

    //$pos = $input->search("TTP");
    $pos = $bev->input->search("TTP");

    while (($n = $bev->input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

// Event callback
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connected.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Closing\n";
        $base->exit();
        exit("Done\n");
    }
}

if ($argc != 3) {
    echo <<<EOS
Trivial HTTP 0.x client
Syntax: php {$argv[0]} [hostname] [resource]
Example: php {$argv[0]} www.google.com /

EOS;
    exit();
}

$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // We'll use async DNS resolving
if (!$dns_base) {
    exit("Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    "readcb", /* writecb */ NULL, "eventcb"
);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

//$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

$output = $bev->output; //$bev->getOutput();
if (!$output->add(
    "GET {$argv[2]} HTTP/1.0\r\n".
    "Host: {$argv[1]}\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

if (!$bev->connectHost($dns_base, $argv[1], 80, EventUtil::AF_UNSPEC)) {
    exit("Can't connect to host {$argv[1]}\n");
}

$base->dispatch();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Connected.
HTTP/1.1 301 Moved Permanently
Date: Fri, 01 Mar 2013 18:47:48 GMT
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1252
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Age: 133438
Expires: Sat, 30 Mar 2013 05:39:28 GMT
Connection: close

<HTML><HEAD><meta http-equiv="content-type" content="text/html;CHARSET=Windows-1252">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.co.uk/">here</A>.
</BODY></HTML>
Closing
Done

Beispiel #2 HTTP client using asynchronous DNS resolver

<?php
/*
 * 1. Connect to 127.0.0.1 at port 80
 * by means of EventBufferEvent::connect().
 *
 * 2. Request /index.cphp via HTTP/1.0
 * using the output buffer.
 *
 * 3. Asyncronously read the response and print it to stdout.
 */

// Read callback
function readcb($bev, $base) {
    $input = $bev->getInput();

    while (($n = $input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

// Event callback
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connected.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Closing\n";
        $base->exit();
        exit("Done\n");
    }
}

$base = new EventBase();

echo "step 1\n";
$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

echo "step 2\n";
$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

echo "step 3\n";
// Send request
$output = $bev->getOutput();
if (!$output->add(
    "GET /index.cphp HTTP/1.0\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

/* Connect to the host syncronously.
We know the IP, and don't need to resolve DNS. */
if (!$bev->connect("127.0.0.1:80")) {
    exit("Can't connect to host\n");
}

// Dispatch pending events
$base->dispatch();
?>

Beispiel #3 Echo server

<?php
/*
 * Simple echo server based on libevent's connection listener.
 *
 * Usage:
 * 1) In one terminal window run:
 *
 * $ php listener.php 9881
 *
 * 2) In another terminal window open up connection, e.g.:
 *
 * $ nc 127.0.0.1 9881
 *
 * 3) start typing. The server should repeat the input.
 */

class MyListenerConnection {
    private $bev, $base;

    public function __destruct() {
        $this->bev->free();
    }

    public function __construct($base, $fd) {
        $this->base = $base;

        $this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);

        $this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
            array($this, "echoEventCallback"), NULL);

        if (!$this->bev->enable(Event::READ)) {
            echo "Failed to enable READ\n";
            return;
        }
    }

    public function echoReadCallback($bev, $ctx) {
        // Copy all the data from the input buffer to the output buffer

        // Variant #1
        $bev->output->addBuffer($bev->input);

        /* Variant #2 */
        /*
        $input    = $bev->getInput();
        $output = $bev->getOutput();
        $output->addBuffer($input);
        */
    }

    public function echoEventCallback($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Error from bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            //$bev->free();
            $this->__destruct();
        }
    }
}

class MyListener {
    public $base,
        $listener,
        $socket;
    private $conn = array();

    public function __destruct() {
        foreach ($this->conn as &$c) $c = NULL;
    }

    public function __construct($port) {
        $this->base = new EventBase();
        if (!$this->base) {
            echo "Couldn't open event base";
            exit(1);
        }

        // Variant #1
        /*
        $this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        if (!socket_bind($this->socket, '0.0.0.0', $port)) {
            echo "Unable to bind socket\n";
            exit(1);
        }
        $this->listener = new EventListener($this->base,
            array($this, "acceptConnCallback"), $this->base,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1, $this->socket);
         */

        // Variant #2
         $this->listener = new EventListener($this->base,
             array($this, "acceptConnCallback"), $this->base,
             EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1,
             "0.0.0.0:$port");

        if (!$this->listener) {
            echo "Couldn't create listener";
            exit(1);
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }

    public function dispatch() {
        $this->base->dispatch();
    }

    // This callback is invoked when there is data to read on $bev
    public function acceptConnCallback($listener, $fd, $address, $ctx) {
        // We got a new connection! Set up a bufferevent for it. */
        $base = $this->base;
        $this->conn[] = new MyListenerConnection($base, $fd);
    }

    public function accept_error_cb($listener, $ctx) {
        $base = $this->base;

        fprintf(STDERR, "Got an error %d (%s) on the listener. "
            ."Shutting down.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $base->exit(NULL);
    }
}

$port = 9808;

if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$l = new MyListener($port);
$l->dispatch();
?>

Beispiel #4 SSL echo server

<?php
/*
 * SSL echo server
 *
 * To test:
 * 1) Run:
 * $ php examples/ssl-echo-server/server.php 9998
 *
 * 2) in another terminal window run:
 * $ socat - SSL:127.0.0.1:9998,verify=1,cafile=examples/ssl-echo-server/cert.pem
 */

class MySslEchoServer {
    public $port,
        $base,
        $bev,
        $listener,
        $ctx;

    function __construct ($port, $host = "127.0.0.1") {
        $this->port = $port;
        $this->ctx = $this->init_ssl();
        if (!$this->ctx) {
            exit("Failed creating SSL context\n");
        }

        $this->base = new EventBase();
        if (!$this->base) {
            exit("Couldn't open event base\n");
        }

        $this->listener = new EventListener($this->base,
            array($this, "ssl_accept_cb"), $this->ctx,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1, "$host:$port");
        if (!$this->listener) {
            exit("Couldn't create listener\n");
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }
    function dispatch() {
        $this->base->dispatch();
    }

    // This callback is invoked when there is data to read on $bev.
    function ssl_read_cb($bev, $ctx) {
        $in = $bev->input; //$bev->getInput();

        printf("Received %zu bytes\n", $in->length);
        printf("----- data ----\n");
        printf("%ld:\t%s\n", (int) $in->length, $in->pullup(-1));

        $bev->writeBuffer($in);
    }

    // This callback is invoked when some even occurs on the event listener,
    // e.g. connection closed, or an error occurred
    function ssl_event_cb($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            // Fetch errors from the SSL error stack
            while ($err = $bev->sslError()) {
                fprintf(STDERR, "Bufferevent error %s.\n", $err);
            }
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            $bev->free();
        }
    }

    // This callback is invoked when a client accepts new connection
    function ssl_accept_cb($listener, $fd, $address, $ctx) {
        // We got a new connection! Set up a bufferevent for it.
        $this->bev = EventBufferEvent::sslSocket($this->base, $fd, $this->ctx,
            EventBufferEvent::SSL_ACCEPTING, EventBufferEvent::OPT_CLOSE_ON_FREE);

        if (!$this->bev) {
            echo "Failed creating ssl buffer\n";
            $this->base->exit(NULL);
            exit(1);
        }

        $this->bev->enable(Event::READ);
        $this->bev->setCallbacks(array($this, "ssl_read_cb"), NULL,
            array($this, "ssl_event_cb"), NULL);
    }

    // This callback is invoked when we failed to setup new connection for a client
    function accept_error_cb($listener, $ctx) {
        fprintf(STDERR, "Got an error %d (%s) on the listener. "
            ."Shutting down.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $this->base->exit(NULL);
    }

    // Initialize SSL structures, create an EventSslContext
    // Optionally create self-signed certificates
    function init_ssl() {
        // We *must* have entropy. Otherwise there's no point to crypto.
        if (!EventUtil::sslRandPoll()) {
            exit("EventUtil::sslRandPoll failed\n");
        }

        $local_cert = __DIR__."/cert.pem";
        $local_pk   = __DIR__."/privkey.pem";

        if (!file_exists($local_cert) || !file_exists($local_pk)) {
            echo "Couldn't read $local_cert or $local_pk file.  To generate a key\n",
                "and self-signed certificate, run:\n",
                "  openssl genrsa -out $local_pk 2048\n",
                "  openssl req -new -key $local_pk -out cert.req\n",
                "  openssl x509 -req -days 365 -in cert.req -signkey $local_pk -out $local_cert\n";

            return FALSE;
        }

        $ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, array (
             EventSslContext::OPT_LOCAL_CERT  => $local_cert,
             EventSslContext::OPT_LOCAL_PK    => $local_pk,
             //EventSslContext::OPT_PASSPHRASE  => "echo server",
             EventSslContext::OPT_VERIFY_PEER => true,
             EventSslContext::OPT_ALLOW_SELF_SIGNED => false,
        ));

        return $ctx;
    }
}

// Allow to override the port
$port = 9999;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port\n");
}

$l = new MySslEchoServer($port);
$l->dispatch();
?>

Beispiel #5 Signal handler

<?php
/*
Launch it in a terminal window:

$ php examples/signal.php

In another terminal window find out the pid and send SIGTERM, e.g.:

$ ps aux | grep examp
ruslan    3976  0.2  0.0 139896 11256 pts/1    S+   10:25   0:00 php examples/signal.php
ruslan    3978  0.0  0.0   9572   864 pts/2    S+   10:26   0:00 grep --color=auto examp
$ kill -TERM 3976

At the first terminal window you should catch the following:

Caught signal 15
*/
class MyEventSignal {
    private $base;

    function __construct($base) {
        $this->base = $base;
    }

    function eventSighandler($no, $c) {
        echo "Caught signal $no\n";
        event_base_loopexit($c->base);
    }
}

$base = event_base_new();
$c    = new MyEventSignal($base);
$no   = SIGTERM;
$ev   = evsignal_new($base, $no, array($c,'eventSighandler'), $c);

evsignal_add($ev);

event_base_loop($base);
?>

Beispiel #6 Use libevent's loop to process requests of `eio' extension

<?php
// Callback for eio_nop()
function my_nop_cb($d, $r) {
    echo "step 6\n";
}

$dir = "/tmp/abc-eio-temp";
if (file_exists($dir)) {
    rmdir($dir);
}

echo "step 1\n";

$base = new EventBase();

echo "step 2\n";

eio_init();

eio_mkdir($dir, 0750, EIO_PRI_DEFAULT, "my_nop_cb");

$event = new Event($base, eio_get_event_stream(),
    Event::READ | Event::PERSIST, function ($fd, $events, $base) {
    echo "step 5\n";

    while (eio_nreqs()) {
        eio_poll();
    }

    $base->stop();
}, $base);

echo "step 3\n";

$event->add();

echo "step 4\n";

$base->dispatch();

echo "Done\n";
?>

Beispiel #7 Miscellaneous

<?php
/* {{{ Config & supported stuff */
echo "Supported methods:\n";
foreach (Event::getSupportedMethods() as $m) {
    echo $m, PHP_EOL;
}

// Avoiding "select" method
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "`select' method avoided\n";
}

// Create event_base associated with the config
$base = new EventBase($cfg);
echo "Event method used: ", $base->getMethod(), PHP_EOL;

echo "Features:\n";
$features = $base->getFeatures();
($features & EventConfig::FEATURE_ET) and print("ET - edge-triggered IO\n");
($features & EventConfig::FEATURE_O1) and print("O1 - O(1) operation for adding/deletting events\n");
($features & EventConfig::FEATURE_FDS) and print("FDS - arbitrary file descriptor types, and not just sockets\n");

// Require FDS feature
if ($cfg->requireFeatures(EventConfig::FEATURE_FDS)) {
    echo "FDS feature is now requried\n";

    $base = new EventBase($cfg);
    ($base->getFeatures() & EventConfig::FEATURE_FDS)
        and print("FDS - arbitrary file descriptor types, and not just sockets\n");
}
/* }}} */

/* {{{ Base */
$base = new EventBase();
$event = new Event($base, STDIN, Event::READ | Event::PERSIST, function ($fd, $events, $arg) {
    static $max_iterations = 0;

    if (++$max_iterations >= 5) {
        /* exit after 5 iterations with timeout of 2.33 seconds */
        echo "Stopping...\n";
        $arg[0]->exit(2.33);
    }

    echo fgets($fd);
}, array (&$base));

$event->add();
$base->loop();
/* Base }}} */
?>

Beispiel #8 Simple HTTP server

<?php
/*
 * Simple HTTP server.
 *
 * To test it:
 * 1) Run it on a port of your choice, e.g.:
 * $ php examples/http.php 8010
 * 2) In another terminal connect to some address on this port
 * and make GET or POST request(others are turned off here), e.g.:
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (press Enter)
 *
 * It will output
 * a=12
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * $ nc -t 127.0.0.1 8010
 * GET /dump HTTP/1.0
 * Content-Type: text/plain
 * Content-Encoding: UTF-8
 * Connection: close
 * (press Enter)
 *
 * It will output:
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 * (press Enter)
 *
 * $ nc -t 127.0.0.1 8010
 * GET /unknown HTTP/1.0
 * Connection: close
 *
 * It will output:
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) See what the server outputs on the previous terminal window.
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 2;

    if (++$counter >= $max_requests)  {
        echo "Counter reached max requests $max_requests. Exiting\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "request:"; var_dump($req);
    echo "data:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Command:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Input headers:"; var_dump($req->getInputHeaders());
    echo "Output headers:"; var_dump($req->getOutputHeaders());

    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    echo "\n >> Reading input buffer ...\n";
    $buf = $req->getInputBuffer();
    while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
        echo $s, PHP_EOL;
    }
    echo "No more data in the buffer\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close
(press Enter)

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Beispiel #9 Simple HTTPS server

<?php
/*
 * Simple HTTPS server.
 *
 * 1) Run the server: `php examples/https.php 9999`
 * 2) Test it: `php examples/ssl-connection.php 9999`
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 200;

    if (++$counter >= $max_requests)  {
        echo "Counter reached max requests $max_requests. Exiting\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "request:"; var_dump($req);
    echo "data:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Command:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Input headers:"; var_dump($req->getInputHeaders());
    echo "Output headers:"; var_dump($req->getOutputHeaders());

    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    $buf = $req->getInputBuffer();
    echo "\n >> Reading input buffer (", $buf->length, ") ...\n";
    while ($s = $buf->read(1024)) {
        echo $s;
    }
    echo "\nNo more data in the buffer\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_400($req) {
    $req->sendError(400);
}

function _init_ssl() {
    $local_cert = __DIR__."/ssl-echo-server/cert.pem";
    $local_pk   = __DIR__."/ssl-echo-server/privkey.pem";

    $ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, array (
        EventSslContext::OPT_LOCAL_CERT  => $local_cert,
        EventSslContext::OPT_LOCAL_PK    => $local_pk,
        //EventSslContext::OPT_PASSPHRASE  => "test",
        EventSslContext::OPT_ALLOW_SELF_SIGNED => true,
    ));

    return $ctx;
}

$port = 9999;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}
$ip = '0.0.0.0';

$base = new EventBase();
$ctx  = _init_ssl();
$http = new EventHttp($base, $ctx);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setCallback("/err400", "_http_400");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind($ip, $port);
$base->dispatch();

Beispiel #10 OpenSSL connection

<?php
/*
 * Sample OpenSSL client.
 *
 * Usage:
 * 1) Launch a server, e.g.:
 * $ php examples/https.php 9999
 *
 * 2) Launch the client in another terminal:
 * $ php examples/ssl-connection.php 9999
 */

function _request_handler($req, $base) {
    echo __FUNCTION__, PHP_EOL;

    if (is_null($req)) {
        echo "Timed out\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "Connection refused\n";
        } elseif ($response_code != 200) {
            echo "Unexpected response: $response_code\n";
        } else {
            echo "Success: $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Body:\n";
            while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo $s, PHP_EOL;
            }
        }
    }

    $base->exit(NULL);
}

function _init_ssl() {
    $ctx = new EventSslContext(EventSslContext::SSLv3_CLIENT_METHOD, array ());

    return $ctx;
}

// Allow to override the port
$port = 9999;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port\n");
}
$host = '127.0.0.1';

$ctx = _init_ssl();
if (!$ctx) {
    trigger_error("Failed creating SSL context", E_USER_ERROR);
}

$base = new EventBase();
if (!$base) {
    trigger_error("Failed to initialize event base", E_USER_ERROR);
}

$conn = new EventHttpConnection($base, NULL, $host, $port, $ctx);
$conn->setTimeout(50);

$req = new EventHttpRequest("_request_handler", $base);
$req->addHeader("Host", $host, EventHttpRequest::OUTPUT_HEADER);
$buf = $req->getOutputBuffer();
$buf->add("<html>HTML TEST</html>");
//$req->addHeader("Content-Length", $buf->length, EventHttpRequest::OUTPUT_HEADER);
//$req->addHeader("Connection", "close", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_POST, "/dump");

$base->dispatch();
echo "END\n";
?>

Beispiel #11 EventHttpConnection::makeRequest() example

<?php
function _request_handler($req, $base) {
    echo __FUNCTION__, PHP_EOL;

    if (is_null($req)) {
        echo "Timed out\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "Connection refused\n";
        } elseif ($response_code != 200) {
            echo "Unexpected response: $response_code\n";
        } else {
            echo "Success: $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Body:\n";
            while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo $s, PHP_EOL;
            }
        }
    }

    $base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

_request_handler
Success: 200
Body:
PHP, date:
2013-03-13T20:27:52+05:00

Beispiel #12 Connection listener based on a UNIX domain socket

<?php
/*
 * Simple echo server based on libevent's connection listener.
 *
 * Usage:
 * 1) In one terminal window run:
 *
 * $ php unix-domain-listener.php [path-to-socket]
 *
 * 2) In another terminal window open up connection
 * to the socket, e.g.:
 *
 * $ socat - GOPEN:/tmp/1.sock
 *
 * 3) Start typing. The server should repeat the input.
 */

class MyListenerConnection {
    private $bev, $base;

    public function __destruct() {
        if ($this->bev) {
            $this->bev->free();
        }
    }

    public function __construct($base, $fd) {
        $this->base = $base;

        $this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);

        $this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
            array($this, "echoEventCallback"), NULL);

        if (!$this->bev->enable(Event::READ)) {
            echo "Failed to enable READ\n";
            return;
        }
    }

    public function echoReadCallback($bev, $ctx) {
        // Copy all the data from the input buffer to the output buffer
        $bev->output->addBuffer($bev->input);
    }

    public function echoEventCallback($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Error from bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            $bev->free();
            $bev = NULL;
        }
    }
}

class MyListener {
    public $base,
        $listener,
        $socket;
    private $conn = array();

    public function __destruct() {
        foreach ($this->conn as &$c) $c = NULL;
    }

    public function __construct($sock_path) {
        $this->base = new EventBase();
        if (!$this->base) {
            echo "Couldn't open event base";
            exit(1);
        }

        if (file_exists($sock_path)) {
            unlink($sock_path);
        }

         $this->listener = new EventListener($this->base,
             array($this, "acceptConnCallback"), $this->base,
             EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1,
             "unix:$sock_path");

        if (!$this->listener) {
            trigger_error("Couldn't create listener", E_USER_ERROR);
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }

    public function dispatch() {
        $this->base->dispatch();
    }

    // This callback is invoked when there is data to read on $bev
    public function acceptConnCallback($listener, $fd, $address, $ctx) {
        // We got a new connection! Set up a bufferevent for it. */
        $base = $this->base;
        $this->conn[] = new MyListenerConnection($base, $fd);
    }

    public function accept_error_cb($listener, $ctx) {
        $base = $this->base;

        fprintf(STDERR, "Got an error %d (%s) on the listener. "
            ."Shutting down.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $base->exit(NULL);
    }
}

if ($argc <= 1) {
    exit("Socket path is not provided\n");
}
$sock_path = $argv[1];

$l = new MyListener($sock_path);
$l->dispatch();
?>

Beispiel #13 Simple SMTP server

<?php
 /*
 * Author: Andrew Rose <hello at andrewrose dot co dot uk>
 *
 * Usage:
 * 1) Prepare cert.pem certificate and privkey.pem private key files.
 * 2) Launch the server script
 * 3) Open TLS connection, e.g.:
 *      $ openssl s_client -connect localhost:25 -starttls smtp -crlf
 * 4) Start testing the commands listed in `cmd` method below.
 */

class Handler {
    public $domainName = FALSE;
    public $connections = [];
    public $buffers = [];
    public $maxRead = 256000;

    public function __construct() {
        $this->ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, [
            EventSslContext::OPT_LOCAL_CERT  => 'cert.pem',
            EventSslContext::OPT_LOCAL_PK    => 'privkey.pem',
            //EventSslContext::OPT_PASSPHRASE  => '',
            EventSslContext::OPT_VERIFY_PEER => false, // change to true with authentic cert
            EventSslContext::OPT_ALLOW_SELF_SIGNED => true // change to false with authentic cert
        ]);

        $this->base = new EventBase();
        if (!$this->base) {
            exit("Couldn't open event base\n");
        }

        if (!$this->listener = new EventListener($this->base,
            [$this, 'ev_accept'],
            $this->ctx,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1,
            '0.0.0.0:25'))
        {
            exit("Couldn't create listener\n");
        }

        $this->listener->setErrorCallback([$this, 'ev_error']);
        $this->base->dispatch();
    }

    public function ev_accept($listener, $fd, $address, $ctx) {
        static $id = 0;
        $id += 1;

        $this->connections[$id]['clientData'] = '';
        $this->connections[$id]['cnx'] = new EventBufferEvent($this->base, $fd,
            EventBufferEvent::OPT_CLOSE_ON_FREE);

        if (!$this->connections[$id]['cnx']) {
            echo "Failed creating buffer\n";
            $this->base->exit(NULL);
            exit(1);
        }

        $this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL,
            [$this, 'ev_error'], $id);
        $this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);

        $this->ev_write($id, '220 '.$this->domainName." wazzzap?\r\n");
    }

    function ev_error($listener, $ctx) {
        $errno = EventUtil::getLastSocketErrno();

        fprintf(STDERR, "Got an error %d (%s) on the listener. Shutting down.\n",
            $errno, EventUtil::getLastSocketError());

        if ($errno != 0) {
            $this->base->exit(NULL);
            exit();
        }
    }

    public function ev_close($id) {
        $this->connections[$id]['cnx']->disable(Event::READ | Event::WRITE);
        unset($this->connections[$id]);
    }

    protected function ev_write($id, $string) {
        echo 'S('.$id.'): '.$string;
        $this->connections[$id]['cnx']->write($string);
    }

    public function ev_read($buffer, $id) {
        while($buffer->input->length > 0) {
            $this->connections[$id]['clientData'] .= $buffer->input->read($this->maxRead);
            $clientDataLen = strlen($this->connections[$id]['clientData']);

            if($this->connections[$id]['clientData'][$clientDataLen-1] == "\n"
                && $this->connections[$id]['clientData'][$clientDataLen-2] == "\r")
            {
                // remove the trailing \r\n
                $line = substr($this->connections[$id]['clientData'], 0,
                    strlen($this->connections[$id]['clientData']) - 2);

                $this->connections[$id]['clientData'] = '';
                $this->cmd($buffer, $id, $line);
            }
        }
    }

    protected function cmd($buffer, $id, $line) {
        switch ($line) {
            case strncmp('EHLO ', $line, 4):
                $this->ev_write($id, "250-STARTTLS\r\n");
                $this->ev_write($id, "250 OK ehlo\r\n");
                break;

            case strncmp('HELO ', $line, 4):
                $this->ev_write($id, "250-STARTTLS\r\n");
                $this->ev_write($id, "250 OK helo\r\n");
                break;

            case strncmp('QUIT', $line, 3):
                $this->ev_write($id, "250 OK quit\r\n");
                $this->ev_close($id);
                break;

            case strncmp('STARTTLS', $line, 3):
                $this->ev_write($id, "220 Ready to start TLS\r\n");
                $this->connections[$id]['cnx'] = EventBufferEvent::sslFilter($this->base,
                    $this->connections[$id]['cnx'], $this->ctx,
                    EventBufferEvent::SSL_ACCEPTING,
                    EventBufferEvent::OPT_CLOSE_ON_FREE);
                $this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL, [$this, 'ev_error'], $id);
                $this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);
                break;

            default:
                echo 'unknown command: '.$line."\n";
                break;
        }
    }
}

new Handler();


Event flags

Event::READ This flag indicates an event that becomes active when the provided file descriptor (usually a stream resource, or socket) is ready for reading.

Event::WRITE flag indicates an event that becomes active when the provided file descriptor (usually a stream resource, or socket) is ready for writing.

Event::SIGNAL used to implement signal detection. See "Constructing signal events" below.

Event::TIMEOUT indicates an event that becomes active after a timeout elapses. The Event::TIMEOUT flag is ignored when constructing an event: one can either set a timeout when event is added , or not. It is set in the $what argument to the callback function when a timeout has occurred.

See also » Fast portable non-blocking network programming with Libevent, Working with events, Event flags


About event persistence

By default, whenever a pending event becomes active (because its file descriptor is ready to read or write, or because its timeout expires), it becomes non-pending right before its callback is executed. Thus, to make the event pending again one may call Event::add() on it again from inside the callback function.

If the Event::PERSIST flag is set on an event, however, the event is persistent . This means that event remains pending even when its callback is activated. Event::del() method can be called to make it non-pending.

The timeout on a persistent event resets whenever the event's callback runs. Thus, if one has an event with flags Event::READ | Event::PERSIST and a timeout of five seconds, the event will become active:

  1. Whenever the socket or file descriptor is ready for reading.

  2. Whenever five seconds have passed since the event last became active.

See also » Fast portable non-blocking network programming with Libevent, About Event Persistence


Event callbacks

If a callback is registered for an event, it will be called when the event becomes active. To associate a callback with event one can pass a callable to either Event::__construct() , or Event::set() , or one of the factory methods like Event::timer() .

An event callback should match the following prototype:

callback ( mixed $fd = null , int $what = ? , mixed $arg = null ) : void

fd

The file descriptor, stream resource or socket associated with the event. For signal event fd is equal to the signal number.

what

Bit mask of all events triggered.

arg

User custom data.

Event::timer() expects the callback to match the following prototype:

callback ( mixed $arg = null ) : void

arg

User custom data.

Event::signal() expects the callback to match the following prototype:

callback ( int $signum = ? , mixed $arg = null ) : void

signum

The number of the triggered signal(e.g. SIGTERM ).

arg

User custom data.


Constructing signal events

Event can also watch for POSIX-style signals. To construct a handler for a signal, use Event::__construct() constructor with Event::SIGNAL flag, or Event::signal() factory method.

Beispiel #1 Handling SIGTERM signal

<?php
/*
Launch it in a terminal window:

$ php examples/signal.php

In another terminal window find out the pid and send SIGTERM, e.g.:

$ ps aux | grep examp
ruslan    3976  0.2  0.0 139896 11256 pts/1    S+   10:25   0:00 php examples/signal.php
ruslan    3978  0.0  0.0   9572   864 pts/2    S+   10:26   0:00 grep --color=auto examp
$ kill -TERM 3976

At the first terminal window you should catch the following:

Caught signal 15
*/
class MyEventSignal {
    private $base, $ev;

    public function __construct($base) {
        $this->base = $base;
        $this->ev = Event::signal($base, SIGTERM, array($this, 'eventSighandler'));
        $this->ev->add();
    }

    public function eventSighandler($no, $c) {
        echo "Caught signal $no\n";
        $this->base->exit();
    }
}

$base = new EventBase();
$c    = new MyEventSignal($base);

$base->loop();
?>

Note that signal callbacks are run in the event loop after the signal occurs, so it is safe for them to call functions that you are not supposed to call from a regular POSIX signal handler.

See also » Fast portable non-blocking network programming with Libevent, Constructing Signal Events .


The Event class

(PECL event >= 1.2.6-beta)

Einführung

Event class represents and event firing on a file descriptor being ready to read from or write to; a file descriptor becoming ready to read from or write to(edge-triggered I/O only); a timeout expiring; a signal occuring; a user-triggered event.

Every event is associated with EventBase . However, event will never fire until it is added (via Event::add() ). An added event remains in pending state until the registered event occurs, thus turning it to active state. To handle events user may register a callback which is called when event becomes active. If event is configured persistent , it remains pending. If it is not persistent, it stops being pending when it's callback runs. Event::del() method deletes event, thus making it non-pending. By means of Event::add() method it could be added again.

Klassenbeschreibung

final Event {
/* Constants */
const int ET = 32 ;
const int PERSIST = 16 ;
const int READ = 2 ;
const int WRITE = 4 ;
const int SIGNAL = 8 ;
const int TIMEOUT = 1 ;
/* Eigenschaften */
public readonly bool $pending ;
/* Methoden */
public add ( float $timeout = ? ) : bool
public addSignal ( float $timeout = ? ) : bool
public addTimer ( float $timeout = ? ) : bool
public __construct ( EventBase $base , mixed $fd , int $what , callable $cb , mixed $arg = NULL )
public del ( ) : bool
public delSignal ( ) : bool
public delTimer ( ) : bool
public free ( ) : void
public static getSupportedMethods ( ) : array
public pending ( int $flags ) : bool
public set ( EventBase $base , mixed $fd , int $what = ? , callable $cb = ? , mixed $arg = ? ) : bool
public setPriority ( int $priority ) : bool
public setTimer ( EventBase $base , callable $cb , mixed $arg = ? ) : bool
public static signal ( EventBase $base , int $signum , callable $cb , mixed $arg = ? ) : Event
public static timer ( EventBase $base , callable $cb , mixed $arg = ? ) : Event
}

Eigenschaften

pending

Whether event is pending. See About event persistence .

Vordefinierte Konstanten

Event::ET

Indicates that the event should be edge-triggered, if the underlying event base backend supports edge-triggered events. This affects the semantics of Event::READ and Event::WRITE .

Event::PERSIST

Indicates that the event is persistent. See About event persistence .

Event::READ

This flag indicates an event that becomes active when the provided file descriptor(usually a stream resource, or socket) is ready for reading.

Event::WRITE

This flag indicates an event that becomes active when the provided file descriptor(usually a stream resource, or socket) is ready for reading.

Event::SIGNAL

Used to implement signal detection. See "Constructing signal events" below.

Event::TIMEOUT

This flag indicates an event that becomes active after a timeout elapses.

The Event::TIMEOUT flag is ignored when constructing an event: one can either set a timeout when event is added , or not. It is set in the $what argument to the callback function when a timeout has occurred.

Inhaltsverzeichnis

  • Event::add — Makes event pending
  • Event::addSignal — Makes signal event pending
  • Event::addTimer — Makes timer event pending
  • Event::__construct — Constructs Event object
  • Event::del — Makes event non-pending
  • Event::delSignal — Makes signal event non-pending
  • Event::delTimer — Makes timer event non-pending
  • Event::free — Make event non-pending and free resources allocated for this event
  • Event::getSupportedMethods — Returns array with of the names of the methods supported in this version of Libevent
  • Event::pending — Detects whether event is pending or scheduled
  • Event::set — Re-configures event
  • Event::setPriority — Set event priority
  • Event::setTimer — Re-configures timer event
  • Event::signal — Constructs signal event object
  • Event::timer — Constructs timer event object


Makes event pending

  • « Event
  • Event::addSignal »
  • PHP Manual
  • Event
  • Makes event pending

Event::add

(PECL event >= 1.2.6-beta)

Event::add — Makes event pending

Beschreibung

public Event::add ( float $timeout = ? ) : bool

Marks event pending. Non-pending event will never occur, and the event callback will never be called. In conjuction with Event::del() an event could be re-scheduled by user at any time.

If Event::add() is called on an already pending event, libevent will leave it pending and re-schedule it with the given timeout(if specified). If in this case timeout is not specified, Event::add() has no effect.

Parameter-Liste

timeout

Timeout in seconds.

Rückgabewerte

Returns true on success. Otherwise false

Siehe auch

  • Event::addSignal() - Makes signal event pending
  • Event::addTimer() - Makes timer event pending
  • Event::del() - Makes event non-pending


Makes signal event pending

  • « Event::add
  • Event::addTimer »
  • PHP Manual
  • Event
  • Makes signal event pending

Event::addSignal

(PECL event >= 1.2.6-beta)

Event::addSignal — Makes signal event pending

Beschreibung

public Event::addSignal ( float $timeout = ? ) : bool

Event::addSignal() is an alias of Event::add()

Beispiele

Beispiel #1 Event::addSignal() example

<?php
/*
Launch it in a terminal window:

$ php examples/signal.php

In another terminal window find out the pid and send SIGTERM, e.g.:

$ ps aux | grep examp
ruslan    3976  0.2  0.0 139896 11256 pts/1    S+   10:25   0:00 php examples/signal.php
ruslan    3978  0.0  0.0   9572   864 pts/2    S+   10:26   0:00 grep --color=auto examp
$ kill -TERM 3976

At the first terminal window you should catch the following:

Caught signal 15
*/
class MyEventSignal {
    private $base, $ev;

    public function __construct($base) {
        $this->base = $base;
        $this->ev = Event::signal($base, SIGTERM, array($this, 'eventSighandler'));
        $this->ev->addSignal();
    }

    public function eventSighandler($no, $c) {
        echo "Caught signal $no\n";
        $this->base->exit();
    }
}

$base = new EventBase();
$c    = new MyEventSignal($base);

$base->loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Caught signal 15

Siehe auch

  • Event::add() - Makes event pending
  • Event::del() - Makes event non-pending
  • Event::delSignal() - Makes signal event non-pending
  • Event::signal() - Constructs signal event object


Makes timer event pending

  • « Event::addSignal
  • Event::__construct »
  • PHP Manual
  • Event
  • Makes timer event pending

Event::addTimer

(PECL event >= 1.2.6-beta)

Event::addTimer — Makes timer event pending

Beschreibung

public Event::addTimer ( float $timeout = ? ) : bool

Event::addTimer() is an alias of Event::add()

Rückgabewerte

Beispiele

Beispiel #1 Event::addTimer() example

<?php
$base = new EventBase();
$n = 2;
$e = Event::timer($base, function($n) use (&$e) {
    echo "$n seconds elapsed\n";
    $e->delTimer();
}, $n);
$e->addTimer($n);
$base->loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

2 seconds elapsed

Siehe auch

  • Event::add() - Makes event pending
  • Event::del() - Makes event non-pending
  • Event::delTimer() - Makes timer event non-pending


Constructs Event object

  • « Event::addTimer
  • Event::del »
  • PHP Manual
  • Event
  • Constructs Event object

Event::__construct

(PECL event >= 1.2.6-beta)

Event::__construct — Constructs Event object

Beschreibung

public Event::__construct ( EventBase $base , mixed $fd , int $what , callable $cb , mixed $arg = NULL )

Constructs Event object.

Parameter-Liste

base

The event base to associate with.

fd

stream resource, socket resource, or numeric file descriptor. For timer events pass -1 . For signal events pass the signal number, e.g. SIGHUP .

what

Event flags. See Event flags .

cb

The event callback. See Event callbacks .

arg

Custom data. If specified, it will be passed to the callback when event triggers.

Rückgabewerte

Returns Event object.

Siehe auch

  • Event::signal() - Constructs signal event object
  • Event::timer() - Constructs timer event object


Makes event non-pending

  • « Event::__construct
  • Event::delSignal »
  • PHP Manual
  • Event
  • Makes event non-pending

Event::del

(PECL event >= 1.2.6-beta)

Event::del — Makes event non-pending

Beschreibung

public Event::del ( ) : bool

Removes an event from the set of monitored events, i.e. makes it non-pending.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true on success. Otherwise false

Siehe auch

  • Event::add() - Makes event pending


Makes signal event non-pending

  • « Event::del
  • Event::delTimer »
  • PHP Manual
  • Event
  • Makes signal event non-pending

Event::delSignal

(PECL event >= 1.2.6-beta)

Event::delSignal — Makes signal event non-pending

Beschreibung

public Event::delSignal ( ) : bool

Event::delSignal() is an alias of Event::del()

Siehe auch

  • Event::del() - Makes event non-pending


Makes timer event non-pending

  • « Event::delSignal
  • Event::free »
  • PHP Manual
  • Event
  • Makes timer event non-pending

Event::delTimer

(PECL event >= 1.2.6-beta)

Event::delTimer — Makes timer event non-pending

Beschreibung

public Event::delTimer ( ) : bool

Event::delTimer() is an alias of Event::del() .

Siehe auch

  • Event::del() - Makes event non-pending


Make event non-pending and free resources allocated for this event

  • « Event::delTimer
  • Event::getSupportedMethods »
  • PHP Manual
  • Event
  • Make event non-pending and free resources allocated for this event

Event::free

(PECL event >= 1.2.6-beta)

Event::free — Make event non-pending and free resources allocated for this event

Beschreibung

public Event::free ( ) : void

Removes event from the list of events monitored by libevent, and free resources allocated for the event.

Warnung

The Event::free() method currently doesn't destruct the object itself. To destruct the object completely call unset() , or assign null.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • Event::__construct() - Constructs Event object


Returns array with of the names of the methods supported in this version of Libevent

  • « Event::free
  • Event::pending »
  • PHP Manual
  • Event
  • Returns array with of the names of the methods supported in this version of Libevent

Event::getSupportedMethods

(PECL event >= 1.2.6-beta)

Event::getSupportedMethods — Returns array with of the names of the methods supported in this version of Libevent

Beschreibung

public static Event::getSupportedMethods ( ) : array

Returns array with of the names of the methods(backends) supported in this version of Libevent.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns array.

Siehe auch

  • EventConfig


Detects whether event is pending or scheduled

  • « Event::getSupportedMethods
  • Event::set »
  • PHP Manual
  • Event
  • Detects whether event is pending or scheduled

Event::pending

(PECL event >= 1.2.6-beta)

Event::pending — Detects whether event is pending or scheduled

Beschreibung

public Event::pending ( int $flags ) : bool

Detects whether event is pending or scheduled

Parameter-Liste

flags

One of, or a composition of the following constants: Event::READ , Event::WRITE , Event::TIMEOUT , Event::SIGNAL .

Rückgabewerte

Returns true if event is pending or scheduled. Otherwise false.


Re-configures event

  • « Event::pending
  • Event::setPriority »
  • PHP Manual
  • Event
  • Re-configures event

Event::set

(PECL event >= 1.2.6-beta)

Event::set — Re-configures event

Beschreibung

public Event::set ( EventBase $base , mixed $fd , int $what = ? , callable $cb = ? , mixed $arg = ? ) : bool

Re-configures event. Note, this function doesn't invoke obsolete libevent's event_set. It calls event_assign instead.

Parameter-Liste

base

The event base to associate the event with.

fd

Stream resource, socket resource, or numeric file descriptor. For timer events pass -1 . For signal events pass the signal number, e.g. SIGHUP .

what

See Event flags .

cb

The event callback. See Event callbacks .

arg

Custom data associated with the event. It will be passed to the callback when the event becomes active.

Rückgabewerte

Returns true on success. Otherwise false.


Set event priority

  • « Event::set
  • Event::setTimer »
  • PHP Manual
  • Event
  • Set event priority

Event::setPriority

(PECL event >= 1.2.6-beta)

Event::setPriority — Set event priority

Beschreibung

public Event::setPriority ( int $priority ) : bool

Set event priority.

Parameter-Liste

priority

The event priority.

Rückgabewerte

Returns true on success. Otherwise false.


Re-configures timer event

  • « Event::setPriority
  • Event::signal »
  • PHP Manual
  • Event
  • Re-configures timer event

Event::setTimer

(PECL event >= 1.2.6-beta)

Event::setTimer — Re-configures timer event

Beschreibung

public Event::setTimer ( EventBase $base , callable $cb , mixed $arg = ? ) : bool

Re-configures timer event. Note, this function doesn't invoke obsolete libevent's event_set . It calls event_assign instead.

Parameter-Liste

base

The event base to associate with.

cb

The timer event callback. See Event callbacks .

arg

Custom data. If specified, it will be passed to the callback when event triggers.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • Event::__construct() - Constructs Event object
  • Event::timer() - Constructs timer event object


Constructs signal event object

  • « Event::setTimer
  • Event::timer »
  • PHP Manual
  • Event
  • Constructs signal event object

Event::signal

(PECL event >= 1.2.6-beta)

Event::signal — Constructs signal event object

Beschreibung

public static Event::signal ( EventBase $base , int $signum , callable $cb , mixed $arg = ? ) : Event

Constructs signal event object. This is a straightforward method to create a signal event. Note, the generic Event::__construct() method can contruct signal event objects too.

Parameter-Liste

base

The associated event base object.

signum

The signal number.

cb

The signal event callback. See Event callbacks .

arg

Custom data. If specified, it will be passed to the callback when event triggers.

Rückgabewerte

Returns Event object on success. Otherwise false.

Siehe auch

  • Constructing signal events


Constructs timer event object

  • « Event::signal
  • EventBase »
  • PHP Manual
  • Event
  • Constructs timer event object

Event::timer

(PECL event >= 1.2.6-beta)

Event::timer — Constructs timer event object

Beschreibung

public static Event::timer ( EventBase $base , callable $cb , mixed $arg = ? ) : Event

Constructs timer event object. This is a straightforward method to create a timer event. Note, the generic Event::__construct() method can contruct signal event objects too.

Parameter-Liste

base

The associated event base object.

cb

The signal event callback. See Event callbacks .

arg

Custom data. If specified, it will be passed to the callback when event triggers.

Rückgabewerte

Returns Event object on success. Otherwise false.


The EventBase class

(PECL event >= 1.2.6-beta)

Einführung

EventBase class represents libevent's event base structure. It holds a set of events and can poll to determine which events are active.

Each event base has a method , or a backend that it uses to determine which events are ready. The recognized methods are: select , poll , epoll , kqueue , devpoll , evport and win32 .

To configure event base to use, or avoid specific backend EventConfig class can be used.

Warnung

Do NOT destroy the EventBase object as long as resources of the associated Event objects are not released. Otherwise, it will lead to unpredictable results!

Klassenbeschreibung

final EventBase {
/* Constants */
const int LOOP_ONCE = 1 ;
const int LOOP_NONBLOCK = 2 ;
const int NOLOCK = 1 ;
const int STARTUP_IOCP = 4 ;
const int NO_CACHE_TIME = 8 ;
const int EPOLL_USE_CHANGELIST = 16 ;
/* Methoden */
public __construct ( EventConfig $cfg = ? )
public dispatch ( ) : void
public exit ( float $timeout = ? ) : bool
public free ( ) : void
public getFeatures ( ) : int
public getMethod ( ) : string
public getTimeOfDayCached ( ) : float
public gotExit ( ) : bool
public gotStop ( ) : bool
public loop ( int $flags = ? ) : bool
public priorityInit ( int $n_priorities ) : bool
public reInit ( ) : bool
public stop ( ) : bool
}

Vordefinierte Konstanten

EventBase::LOOP_ONCE

Flag used with EventBase::loop() method which means: "block until libevent has an active event, then exit once all active events have had their callbacks run".

EventBase::LOOP_NONBLOCK

Flag used with EventBase::loop() method which means: "do not block: see which events are ready now, run the callbacks of the highest-priority ones, then exit".

EventBase::NOLOCK

Configuration flag. Do not allocate a lock for the event base, even if we have locking set up".

EventBase::STARTUP_IOCP

Windows-only configuration flag. Enables the IOCP dispatcher at startup.

EventBase::NO_CACHE_TIME

Configuration flag. Instead of checking the current time every time the event loop is ready to run timeout callbacks, check after each timeout callback.

EventBase::EPOLL_USE_CHANGELIST

If we are using the epoll backend, this flag says that it is safe to use Libevent's internal change-list code to batch up adds and deletes in order to try to do as few syscalls as possible.

Setting this flag can make code run faster, but it may trigger a Linux bug: it is not safe to use this flag if one has any fds cloned by dup(), or its variants. Doing so will produce strange and hard-to-diagnose bugs.

This flag can also be activated by settnig the EVENT_EPOLL_USE_CHANGELIST environment variable.

This flag has no effect if one winds up using a backend other than epoll .

Inhaltsverzeichnis

  • EventBase::__construct — Constructs EventBase object
  • EventBase::dispatch — Dispatch pending events
  • EventBase::exit — Stop dispatching events
  • EventBase::free — Free resources allocated for this event base
  • EventBase::getFeatures — Returns bitmask of features supported
  • EventBase::getMethod — Returns event method in use
  • EventBase::getTimeOfDayCached — Returns the current event base time
  • EventBase::gotExit — Checks if the event loop was told to exit
  • EventBase::gotStop — Checks if the event loop was told to exit
  • EventBase::loop — Dispatch pending events
  • EventBase::priorityInit — Sets number of priorities per event base
  • EventBase::reInit — Re-initialize event base(after a fork)
  • EventBase::stop — Tells event_base to stop dispatching events


Constructs EventBase object

  • « EventBase
  • EventBase::dispatch »
  • PHP Manual
  • EventBase
  • Constructs EventBase object

EventBase::__construct

(PECL event >= 1.2.6-beta)

EventBase::__construct — Constructs EventBase object

Beschreibung

public EventBase::__construct ( EventConfig $cfg = ? )

Constructs EventBase object

Parameter-Liste

cfg

Optional EventConfig object.

Rückgabewerte

Returns EventBase object.

Siehe auch

  • EventConfig


Dispatch pending events

  • « EventBase::__construct
  • EventBase::exit »
  • PHP Manual
  • EventBase
  • Dispatch pending events

EventBase::dispatch

(PECL event >= 1.2.6-beta)

EventBase::dispatch — Dispatch pending events

Beschreibung

public EventBase::dispatch ( ) : void

Wait for events to become active, and run their callbacks. The same as EventBase::loop() with no flags set.

Warnung

Do NOT destroy the EventBase object as long as resources of the associated Event objects are not released. Otherwise, it will lead to unpredictable results!

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBase::loop() - Dispatch pending events


Stop dispatching events

  • « EventBase::dispatch
  • EventBase::free »
  • PHP Manual
  • EventBase
  • Stop dispatching events

EventBase::exit

(PECL event >= 1.2.6-beta)

EventBase::exit — Stop dispatching events

Beschreibung

public EventBase::exit ( float $timeout = ? ) : bool

Tells event base to stop optionally after given number of seconds.

Parameter-Liste

timeout

Optional number of seconds after which the event base should stop dispatching events.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBase::stop() - Tells event_base to stop dispatching events


Free resources allocated for this event base

  • « EventBase::exit
  • EventBase::getFeatures »
  • PHP Manual
  • EventBase
  • Free resources allocated for this event base

EventBase::free

(PECL event >= 1.10.0)

EventBase::free — Free resources allocated for this event base

Beschreibung

public EventBase::free ( ) : void

Deallocates resources allocated by libevent for the EventBase object.

Warnung

The EventBase::free() method doesn't destruct the object itself. To destruct the object completely call unset() , or assign null.

This method does not deallocate or detach any of the events that are currently associated with the EventBase object, or close any of their sockets - beware.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventBase::__construct() - Constructs EventBase object


Returns bitmask of features supported

  • « EventBase::free
  • EventBase::getMethod »
  • PHP Manual
  • EventBase
  • Returns bitmask of features supported

EventBase::getFeatures

(PECL event >= 1.2.6-beta)

EventBase::getFeatures — Returns bitmask of features supported

Beschreibung

public EventBase::getFeatures ( ) : int

Returns bitmask of features supported.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns integer representing a bitmask of supported features. See EventConfig::FEATURE_* constants .

Beispiele

Beispiel #1 EventBase::getFeatures() example

<?php
// Avoiding "select" method
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "`select' method avoided\n";
}

$base = new EventBase($cfg);

echo "Features:\n";
$features = $base->getFeatures();
($features & EventConfig::FEATURE_ET) and print("ET - edge-triggered IO\n");
($features & EventConfig::FEATURE_O1) and print("O1 - O(1) operation for adding/deletting events\n");
($features & EventConfig::FEATURE_FDS) and print("FDS - arbitrary file descriptor types, and not just sockets\n");
?>

Siehe auch

  • EventBase::getMethod() - Returns event method in use
  • EventConfig


Returns event method in use

  • « EventBase::getFeatures
  • EventBase::getTimeOfDayCached »
  • PHP Manual
  • EventBase
  • Returns event method in use

EventBase::getMethod

(PECL event >= 1.2.6-beta)

EventBase::getMethod — Returns event method in use

Beschreibung

public EventBase::getMethod ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

String representing used event method(backend).

Beispiele

Beispiel #1 EventBase::getMethod() example

<?php
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "`select' method avoided\n";
}

// Create event_base associated with the config
$base = new EventBase($cfg);
echo "Event method used: ", $base->getMethod(), PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

`select' method avoided
Event method used: epoll

Siehe auch

  • EventBase::getFeatures() - Returns bitmask of features supported


Returns the current event base time

  • « EventBase::getMethod
  • EventBase::gotExit »
  • PHP Manual
  • EventBase
  • Returns the current event base time

EventBase::getTimeOfDayCached

(PECL event >= 1.2.6-beta)

EventBase::getTimeOfDayCached — Returns the current event base time

Beschreibung

public EventBase::getTimeOfDayCached ( ) : float

On success returns the current time(as returned by gettimeofday() ), looking at the cached value in base if possible, and calling gettimeofday() or clock_gettime() as appropriate if there is no cached time.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current event base time. On failure returns null.


Checks if the event loop was told to exit

  • « EventBase::getTimeOfDayCached
  • EventBase::gotStop »
  • PHP Manual
  • EventBase
  • Checks if the event loop was told to exit

EventBase::gotExit

(PECL event >= 1.2.6-beta)

EventBase::gotExit — Checks if the event loop was told to exit

Beschreibung

public EventBase::gotExit ( ) : bool

Checks if the event loop was told to exit by EventBase::exit() .

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true, event loop was told to exit by EventBase::exit() . Otherwise false.

Siehe auch

  • EventBase::exit() - Stop dispatching events
  • EventBase::stop() - Tells event_base to stop dispatching events
  • EventBase::gotStop() - Checks if the event loop was told to exit


Checks if the event loop was told to exit

  • « EventBase::gotExit
  • EventBase::loop »
  • PHP Manual
  • EventBase
  • Checks if the event loop was told to exit

EventBase::gotStop

(PECL event >= 1.2.6-beta)

EventBase::gotStop — Checks if the event loop was told to exit

Beschreibung

public EventBase::gotStop ( ) : bool

Checks if the event loop was told to exit by EventBase::stop() .

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true, event loop was told to stop by EventBase::stop() . Otherwise false.

Siehe auch

  • EventBase::exit() - Stop dispatching events
  • EventBase::stop() - Tells event_base to stop dispatching events
  • EventBase::gotExit() - Checks if the event loop was told to exit


Dispatch pending events

  • « EventBase::gotStop
  • EventBase::priorityInit »
  • PHP Manual
  • EventBase
  • Dispatch pending events

EventBase::loop

(PECL event >= 1.2.6-beta)

EventBase::loop — Dispatch pending events

Beschreibung

public EventBase::loop ( int $flags = ? ) : bool

Wait for events to become active, and run their callbacks.

Warnung

Do NOT destroy the EventBase object as long as resources of the associated Event objects are not released. Otherwise, it will lead to unpredictable results!

Parameter-Liste

flags

Optional flags. One of EventBase::LOOP_* constants. See EventBase constants .

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBase::dispatch() - Dispatch pending events


Sets number of priorities per event base

  • « EventBase::loop
  • EventBase::reInit »
  • PHP Manual
  • EventBase
  • Sets number of priorities per event base

EventBase::priorityInit

(PECL event >= 1.2.6-beta)

EventBase::priorityInit — Sets number of priorities per event base

Beschreibung

public EventBase::priorityInit ( int $n_priorities ) : bool

Sets number of priorities per event base.

Parameter-Liste

n_priorities

The number of priorities per event base.

Rückgabewerte

Returns true on success, otherwise false.

Siehe auch

  • Event::setPriority() - Set event priority


Re-initialize event base(after a fork)

  • « EventBase::priorityInit
  • EventBase::stop »
  • PHP Manual
  • EventBase
  • Re-initialize event base(after a fork)

EventBase::reInit

(PECL event >= 1.2.6-beta)

EventBase::reInit — Re-initialize event base(after a fork)

Beschreibung

public EventBase::reInit ( ) : bool

Re-initialize event base. Should be called after a fork.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true on success. Otherwise false.


Tells event_base to stop dispatching events

  • « EventBase::reInit
  • EventBuffer »
  • PHP Manual
  • EventBase
  • Tells event_base to stop dispatching events

EventBase::stop

(PECL event >= 1.2.6-beta)

EventBase::stop — Tells event_base to stop dispatching events

Beschreibung

public EventBase::stop ( ) : bool

Tells event_base to stop dispatching events

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBase::exit() - Stop dispatching events
  • EventBase::gotStop() - Checks if the event loop was told to exit


The EventBuffer class

(PECL event >= 1.5.0)

Einführung

EventBuffer represents Libevent's "evbuffer", an utility functionality for buffered I/O.

Event buffers are meant to be generally useful for doing the "buffer" part of buffered network I/O.

Klassenbeschreibung

EventBuffer {
/* Constants */
const int EOL_ANY = 0 ;
const int EOL_CRLF = 1 ;
const int EOL_CRLF_STRICT = 2 ;
const int EOL_LF = 3 ;
const int PTR_SET = 0 ;
const int PTR_ADD = 1 ;
/* Eigenschaften */
public readonly int $length ;
public readonly int $contiguous_space ;
/* Methoden */
public add ( string $data ) : bool
public addBuffer ( EventBuffer $buf ) : bool
public appendFrom ( EventBuffer $buf , int $len ) : int
public __construct ( )
public copyout ( string &$data , int $max_bytes ) : int
public drain ( int $len ) : bool
public enableLocking ( ) : void
public expand ( int $len ) : bool
public freeze ( bool $at_front ) : bool
public lock ( ) : void
public prepend ( string $data ) : bool
public prependBuffer ( EventBuffer $buf ) : bool
public pullup ( int $size ) : string
public read ( int $max_bytes ) : string
public read ( mixed $fd , int $howmuch ) : int
public readLine ( int $eol_style ) : string
public search ( string $what , int $start = -1 , int $end = -1 ) : mixed
public searchEol ( int $start = -1 , int $eol_style = EventBuffer::EOL_ANY ) : mixed
public substr ( int $start , int $length = ? ) : string
public unfreeze ( bool $at_front ) : bool
public unlock ( ) : bool
public write ( mixed $fd , int $howmuch = ? ) : int
}

Eigenschaften

length

The number of bytes stored in an event buffer.

contiguous_space

The number of bytes stored contiguously at the front of the buffer. The bytes in a buffer may be stored in multiple separate chunks of memory; the property returns the number of bytes currently stored in the first chunk.

Vordefinierte Konstanten

EventBuffer::EOL_ANY

The end of line is any sequence of any number of carriage return and linefeed characters. This format is not very useful; it exists mainly for backward compatibility.

EventBuffer::EOL_CRLF

The end of the line is an optional carriage return, followed by a linefeed. (In other words, it is either a "\r\n" or a "\n" .) This format is useful in parsing text-based Internet protocols, since the standards generally prescribe a "\r\n" line-terminator, but nonconformant clients sometimes say just "\n" .

EventBuffer::EOL_CRLF_STRICT

The end of a line is a single carriage return, followed by a single linefeed. (This is also known as "\r\n" . The ASCII values are 0x0D 0x0A ).

EventBuffer::EOL_LF

The end of a line is a single linefeed character. (This is also known as "\n" . It is ASCII value is 0x0A .)

EventBuffer::PTR_SET

Flag used as argument of EventBuffer::setPosition() method. If this flag specified, the position pointer is moved to an absolute position within the buffer.

EventBuffer::PTR_ADD

The same as EventBuffer::PTR_SET , except this flag causes EventBuffer::setPosition() method to move position forward up to the specified number of bytes(instead of setting absolute position).

Inhaltsverzeichnis

  • EventBuffer::add — Append data to the end of an event buffer
  • EventBuffer::addBuffer — Move all data from a buffer provided to the current instance of EventBuffer
  • EventBuffer::appendFrom — Moves the specified number of bytes from a source buffer to the end of the current buffer
  • EventBuffer::__construct — Constructs EventBuffer object
  • EventBuffer::copyout — Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain — Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::enableLocking — Beschreibung
  • EventBuffer::expand — Reserves space in buffer
  • EventBuffer::freeze — Prevent calls that modify an event buffer from succeeding
  • EventBuffer::lock — Acquires a lock on buffer
  • EventBuffer::prepend — Prepend data to the front of the buffer
  • EventBuffer::prependBuffer — Moves all data from source buffer to the front of current buffer
  • EventBuffer::pullup — Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::read — Read data from an evbuffer and drain the bytes read
  • EventBuffer::readFrom — Read data from a file onto the end of the buffer
  • EventBuffer::readLine — Extracts a line from the front of the buffer
  • EventBuffer::search — Scans the buffer for an occurrence of a string
  • EventBuffer::searchEol — Scans the buffer for an occurrence of an end of line
  • EventBuffer::substr — Substracts a portion of the buffer data
  • EventBuffer::unfreeze — Re-enable calls that modify an event buffer
  • EventBuffer::unlock — Releases lock acquired by EventBuffer::lock
  • EventBuffer::write — Schreibt den Inhalt des Puffers in eine Datei oder ein Socket


Append data to the end of an event buffer

  • « EventBuffer
  • EventBuffer::addBuffer »
  • PHP Manual
  • EventBuffer
  • Append data to the end of an event buffer

EventBuffer::add

(PECL event >= 1.2.6-beta)

EventBuffer::add — Append data to the end of an event buffer

Beschreibung

public EventBuffer::add ( string $data ) : bool

Append data to the end of an event buffer.

Parameter-Liste

data

String to be appended to the end of the buffer.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBuffer::addBuffer() - Move all data from a buffer provided to the current instance of EventBuffer


Move all data from a buffer provided to the current instance of EventBuffer

  • « EventBuffer::add
  • EventBuffer::appendFrom »
  • PHP Manual
  • EventBuffer
  • Move all data from a buffer provided to the current instance of EventBuffer

EventBuffer::addBuffer

(PECL event >= 1.2.6-beta)

EventBuffer::addBuffer — Move all data from a buffer provided to the current instance of EventBuffer

Beschreibung

public EventBuffer::addBuffer ( EventBuffer $buf ) : bool

Move all data from the buffer provided in buf parameter to the end of current EventBuffer . This is a destructive add. The data from one buffer moves into the other buffer. However, no unnecessary memory copies occur.

Parameter-Liste

buf

The source EventBuffer object.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBuffer::add() - Append data to the end of an event buffer


Moves the specified number of bytes from a source buffer to the end of the current buffer

  • « EventBuffer::addBuffer
  • EventBuffer::__construct »
  • PHP Manual
  • EventBuffer
  • Moves the specified number of bytes from a source buffer to the end of the current buffer

EventBuffer::appendFrom

(PECL event >= 1.6.0)

EventBuffer::appendFrom — Moves the specified number of bytes from a source buffer to the end of the current buffer

Beschreibung

public EventBuffer::appendFrom ( EventBuffer $buf , int $len ) : int

Moves the specified number of bytes from a source buffer to the end of the current buffer. If there are fewer number of bytes, it moves all the bytes available from the source buffer.

Parameter-Liste

buf

Source buffer.

len

Rückgabewerte

Returns the number of bytes read.

Changelog

Version | Beschreibung
PECL event 1.6.0 | Renamed EventBuffer::appendFrom()(the old method name) to EventBuffer::appendFrom().

Siehe auch

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read


Constructs EventBuffer object

  • « EventBuffer::appendFrom
  • EventBuffer::copyout »
  • PHP Manual
  • EventBuffer
  • Constructs EventBuffer object

EventBuffer::__construct

(PECL event >= 1.2.6-beta)

EventBuffer::__construct — Constructs EventBuffer object

Beschreibung

public EventBuffer::__construct ( )

Constructs EventBuffer object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns EventBuffer object.


Copies out specified number of bytes from the front of the buffer

  • « EventBuffer::__construct
  • EventBuffer::drain »
  • PHP Manual
  • EventBuffer
  • Copies out specified number of bytes from the front of the buffer

EventBuffer::copyout

(PECL event >= 1.2.6-beta)

EventBuffer::copyout — Copies out specified number of bytes from the front of the buffer

Beschreibung

public EventBuffer::copyout ( string &$data , int $max_bytes ) : int

Behaves just like EventBuffer::read() , but does not drain any data from the buffer. I.e. it copies the first max_bytes bytes from the front of the buffer into data . If there are fewer than max_bytes bytes available, the function copies all the bytes there are.

Parameter-Liste

data

Output string.

max_bytes

The number of bytes to copy.

Rückgabewerte

Returns the number of bytes copied, or -1 on failure.

Siehe auch

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Removes specified number of bytes from the front of the buffer without copying it anywhere

  • « EventBuffer::copyout
  • EventBuffer::enableLocking »
  • PHP Manual
  • EventBuffer
  • Removes specified number of bytes from the front of the buffer without copying it anywhere

EventBuffer::drain

(PECL event >= 1.2.6-beta)

EventBuffer::drain — Removes specified number of bytes from the front of the buffer without copying it anywhere

Beschreibung

public EventBuffer::drain ( int $len ) : bool

Behaves as EventBuffer::read() , except that it does not copy the data: it just removes it from the front of the buffer.

Parameter-Liste

len

The number of bytes to remove from the buffer.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Beschreibung

  • « EventBuffer::drain
  • EventBuffer::expand »
  • PHP Manual
  • EventBuffer
  • Beschreibung

EventBuffer::enableLocking

(PECL event >= 1.2.6-beta)

EventBuffer::enableLocking —

Beschreibung

public EventBuffer::enableLocking ( ) : void

Enable locking on an EventBuffer so that it can safely be used by multiple threads at the same time. When locking is enabled, the lock will be held when callbacks are invoked. This could result in deadlock if you aren't careful. Plan accordingly!

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • » Evbuffers and Thread-safety


Reserves space in buffer

  • « EventBuffer::enableLocking
  • EventBuffer::freeze »
  • PHP Manual
  • EventBuffer
  • Reserves space in buffer

EventBuffer::expand

(PECL event >= 1.2.6-beta)

EventBuffer::expand — Reserves space in buffer

Beschreibung

public EventBuffer::expand ( int $len ) : bool

Alters the last chunk of memory in the buffer, or adds a new chunk, such that the buffer is now large enough to contain len bytes without any further allocations.

Parameter-Liste

len

The number of bytes to reserve for the buffer

Rückgabewerte

Returns true on success. Otherwise false.


Prevent calls that modify an event buffer from succeeding

  • « EventBuffer::expand
  • EventBuffer::lock »
  • PHP Manual
  • EventBuffer
  • Prevent calls that modify an event buffer from succeeding

EventBuffer::freeze

(PECL event >= 1.2.6-beta)

EventBuffer::freeze — Prevent calls that modify an event buffer from succeeding

Beschreibung

public EventBuffer::freeze ( bool $at_front ) : bool

Prevent calls that modify an event buffer from succeeding

Parameter-Liste

at_front

Whether to disable changes to the front or end of the buffer.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBuffer::unfreeze() - Re-enable calls that modify an event buffer


Acquires a lock on buffer

  • « EventBuffer::freeze
  • EventBuffer::prepend »
  • PHP Manual
  • EventBuffer
  • Acquires a lock on buffer

EventBuffer::lock

(PECL event >= 1.2.6-beta)

EventBuffer::lock — Acquires a lock on buffer

Beschreibung

public EventBuffer::lock ( ) : void

Acquires a lock on buffer. Can be used in pair with EventBuffer::unlock() to make a set of operations atomic, i.e. thread-safe. Note, it is not needed to lock buffers for individual operations. When locking is enabled(see EventBuffer::enableLocking() ), individual operations on event buffers are already atomic.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventBuffer::unlock() - Releases lock acquired by EventBuffer::lock


Prepend data to the front of the buffer

  • « EventBuffer::lock
  • EventBuffer::prependBuffer »
  • PHP Manual
  • EventBuffer
  • Prepend data to the front of the buffer

EventBuffer::prepend

(PECL event >= 1.2.6-beta)

EventBuffer::prepend — Prepend data to the front of the buffer

Beschreibung

public EventBuffer::prepend ( string $data ) : bool

Prepend data to the front of the buffer.

Parameter-Liste

data

String to be prepended to the front of the buffer.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBuffer::prependBuffer() - Moves all data from source buffer to the front of current buffer
  • EventBuffer::add() - Append data to the end of an event buffer
  • EventBuffer::addBuffer() - Move all data from a buffer provided to the current instance of EventBuffer


Moves all data from source buffer to the front of current buffer

  • « EventBuffer::prepend
  • EventBuffer::pullup »
  • PHP Manual
  • EventBuffer
  • Moves all data from source buffer to the front of current buffer

EventBuffer::prependBuffer

(PECL event >= 1.2.6-beta)

EventBuffer::prependBuffer — Moves all data from source buffer to the front of current buffer

Beschreibung

public EventBuffer::prependBuffer ( EventBuffer $buf ) : bool

Behaves as EventBuffer::addBuffer() , except that it moves data to the front of the buffer.

Parameter-Liste

buf

Source buffer.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBuffer::add() - Append data to the end of an event buffer
  • EventBuffer::addBuffer() - Move all data from a buffer provided to the current instance of EventBuffer
  • EventBuffer::prepend() - Prepend data to the front of the buffer


Linearizes data within buffer and returns it's contents as a string

  • « EventBuffer::prependBuffer
  • EventBuffer::read »
  • PHP Manual
  • EventBuffer
  • Linearizes data within buffer and returns it's contents as a string

EventBuffer::pullup

(PECL event >= 1.2.6-beta)

EventBuffer::pullup — Linearizes data within buffer and returns it's contents as a string

Beschreibung

public EventBuffer::pullup ( int $size ) : string

"Linearizes" the first size bytes of the buffer, copying or moving them as needed to ensure that they are all contiguous and occupying the same chunk of memory. If size is negative, the function linearizes the entire buffer.

Warnung

Calling EventBuffer::pullup() with a large size can be quite slow, since it potentially needs to copy the entire buffer's contents.

Parameter-Liste

size

The number of bytes required to be contiguous within the buffer.

Rückgabewerte

If size is greater than the number of bytes in the buffer, the function returns null. Otherwise, EventBuffer::pullup() returns string.

Siehe auch

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Read data from an evbuffer and drain the bytes read

  • « EventBuffer::pullup
  • EventBuffer::readFrom »
  • PHP Manual
  • EventBuffer
  • Read data from an evbuffer and drain the bytes read

EventBuffer::read

(PECL event >= 1.6.0)

EventBuffer::read — Read data from an evbuffer and drain the bytes read

Beschreibung

public EventBuffer::read ( int $max_bytes ) : string

Read the first max_bytes from the buffer and drain the bytes read. If more max_bytes are requested than are available in the buffer, it only extracts as many bytes as available.

Parameter-Liste

max_bytes

Maxmimum number of bytes to read from the buffer.

Rückgabewerte

Returns string read, or false on failure.

Changelog

Version | Beschreibung
PECL event 1.6.0 | Renamed EventBuffer::read()(the old method name) to EventBuffer::read(). EventBuffer::read() now takes only max_bytes argument; returns string instead of integer.

Siehe auch

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Read data from a file onto the end of the buffer

  • « EventBuffer::read
  • EventBuffer::readLine »
  • PHP Manual
  • EventBuffer
  • Read data from a file onto the end of the buffer

EventBuffer::readFrom

(PECL event >= 1.7.0)

EventBuffer::readFrom — Read data from a file onto the end of the buffer

Beschreibung

public EventBuffer::read ( mixed $fd , int $howmuch ) : int

Read data from the file specified by fd onto the end of the buffer.

Parameter-Liste

fd

Socket resource, stream, or numeric file descriptor.

howmuch

Maxmimum number of bytes to read.

Rückgabewerte

Returns the number of bytes read, or false on failure.

Siehe auch

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Extracts a line from the front of the buffer

  • « EventBuffer::readFrom
  • EventBuffer::search »
  • PHP Manual
  • EventBuffer
  • Extracts a line from the front of the buffer

EventBuffer::readLine

(PECL event >= 1.2.6-beta)

EventBuffer::readLine — Extracts a line from the front of the buffer

Beschreibung

public EventBuffer::readLine ( int $eol_style ) : string

Extracts a line from the front of the buffer and returns it in a newly allocated string. If there is not a whole line to read, the function returns null. The line terminator is not included in the copied string.

Parameter-Liste

eol_style

One of EventBuffer:EOL_* constants .

Rückgabewerte

On success returns the line read from the buffer, otherwise null.

Siehe auch

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Scans the buffer for an occurrence of a string

  • « EventBuffer::readLine
  • EventBuffer::searchEol »
  • PHP Manual
  • EventBuffer
  • Scans the buffer for an occurrence of a string

EventBuffer::search

(PECL event >= 1.2.6-beta)

EventBuffer::search — Scans the buffer for an occurrence of a string

Beschreibung

public EventBuffer::search ( string $what , int $start = -1 , int $end = -1 ) : mixed

Scans the buffer for an occurrence of the string what . It returns numeric position of the string, or false if the string was not found.

If the start argument is provided, it points to the position at which the search should begin; otherwise, the search is performed from the start of the string. If end argument provided, the search is performed between start and end buffer positions.

Parameter-Liste

what

String to search.

start

Start search position.

end

End search position.

Rückgabewerte

Returns numeric position of the first occurance of the string in the buffer, or false if string is not found.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 EventBuffer::search() example

<?php
// Count total occurances of 'str' in 'buf'
function count_instances($buf, $str) {
    $total = 0;
    $p     = 0;
    $i     = 0;

    while (1) {
        $p = $buf->search($str, $p);
        if ($p === FALSE) {
            break;
        }
        ++$total;
        ++$p;
    }

    return $total;
}

$buf = new EventBuffer();
$buf->add("Some string within a string inside another string");
var_dump(count_instances($buf, "str"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)

Siehe auch

  • EventBuffer::searchEol() - Scans the buffer for an occurrence of an end of line


Scans the buffer for an occurrence of an end of line

  • « EventBuffer::search
  • EventBuffer::substr »
  • PHP Manual
  • EventBuffer
  • Scans the buffer for an occurrence of an end of line

EventBuffer::searchEol

(PECL event >= 1.5.0)

EventBuffer::searchEol — Scans the buffer for an occurrence of an end of line

Beschreibung

public EventBuffer::searchEol ( int $start = -1 , int $eol_style = EventBuffer::EOL_ANY ) : mixed

Scans the buffer for an occurrence of an end of line specified by eol_style parameter . It returns numeric position of the string, or false if the string was not found.

If the start argument is provided, it represents the position at which the search should begin; otherwise, the search is performed from the start of the string. If end argument provided, the search is performed between start and end buffer positions.

Parameter-Liste

start

Start search position.

eol_style

One of EventBuffer:EOL_* constants .

Rückgabewerte

Returns numeric position of the first occurance of end-of-line symbol in the buffer, or false if not found.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Siehe auch

  • EventBuffer::search() - Scans the buffer for an occurrence of a string


Substracts a portion of the buffer data

  • « EventBuffer::searchEol
  • EventBuffer::unfreeze »
  • PHP Manual
  • EventBuffer
  • Substracts a portion of the buffer data

EventBuffer::substr

(PECL event >= 1.6.0)

EventBuffer::substr — Substracts a portion of the buffer data

Beschreibung

public EventBuffer::substr ( int $start , int $length = ? ) : string

Substracts up to length bytes of the buffer data beginning at start position.

Parameter-Liste

start

The start position of data to be substracted.

length

Maximum number of bytes to substract.

Rückgabewerte

Returns the data substracted as a string on success, or false on failure.

Siehe auch

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read


Re-enable calls that modify an event buffer

  • « EventBuffer::substr
  • EventBuffer::unlock »
  • PHP Manual
  • EventBuffer
  • Re-enable calls that modify an event buffer

EventBuffer::unfreeze

(PECL event >= 1.2.6-beta)

EventBuffer::unfreeze — Re-enable calls that modify an event buffer

Beschreibung

public EventBuffer::unfreeze ( bool $at_front ) : bool

Re-enable calls that modify an event buffer.

Parameter-Liste

at_front

Whether to enable events at the front or at the end of the buffer.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBuffer::freeze() - Prevent calls that modify an event buffer from succeeding


Releases lock acquired by EventBuffer::lock

  • « EventBuffer::unfreeze
  • EventBuffer::write »
  • PHP Manual
  • EventBuffer
  • Releases lock acquired by EventBuffer::lock

EventBuffer::unlock

(PECL event >= 1.2.6-beta)

EventBuffer::unlock — Releases lock acquired by EventBuffer::lock

Beschreibung

public EventBuffer::unlock ( ) : bool

Releases lock acquired by EventBuffer::lock() .

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBuffer::lock() - Acquires a lock on buffer


Schreibt den Inhalt des Puffers in eine Datei oder ein Socket

  • « EventBuffer::unlock
  • EventBufferEvent »
  • PHP Manual
  • EventBuffer
  • Schreibt den Inhalt des Puffers in eine Datei oder ein Socket

EventBuffer::write

(PECL event >= 1.6.0)

EventBuffer::write — Schreibt den Inhalt des Puffers in eine Datei oder ein Socket

Beschreibung

public EventBuffer::write ( mixed $fd , int $howmuch = ? ) : int

Schreibt Inhalt des Puffers in einem Datei-Deskriptor. Der Puffer wird geleert, nachdem die Bytes erfolgreich geschrieben wurden.

Parameter-Liste

fd

Socket-Ressource, Stream oder numerischer Datei-Deskriptor normalerweise verbunden mit einem Socket.

howmuch

Die maximale Anzahl der zu schreibenen Bytes.

Rückgabewerte

Gibt die Anzahl der geschriebenen Bytes oder false bei einem Fehler zurück.

Siehe auch

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read


The EventBufferEvent class

(PECL event >= 1.2.6-beta)

Einführung

Represents Libevent's buffer event.

Usually an application wants to perform some amount of data buffering in addition to just responding to events. When we want to write data, for example, the usual pattern looks like:

  1. Decide that we want to write some data to a connection; put that data in a buffer.

  2. Wait for the connection to become writable

  3. Write as much of the data as we can

  4. Remember how much we wrote, and if we still have more data to write, wait for the connection to become writable again.

This buffered I/O pattern is common enough that Libevent provides a generic mechanism for it. A "buffer event" consists of an underlying transport (like a socket), a read buffer, and a write buffer. Instead of regular events, which give callbacks when the underlying transport is ready to be read or written, a buffer event invokes its user-supplied callbacks when it has read or written enough data.

Klassenbeschreibung

final EventBufferEvent {
/* Constants */
const int READING = 1 ;
const int WRITING = 2 ;
const int EOF = 16 ;
const int ERROR = 32 ;
const int TIMEOUT = 64 ;
const int CONNECTED = 128 ;
const int OPT_CLOSE_ON_FREE = 1 ;
const int OPT_THREADSAFE = 2 ;
const int OPT_DEFER_CALLBACKS = 4 ;
const int OPT_UNLOCK_CALLBACKS = 8 ;
const int SSL_OPEN = 0 ;
const int SSL_CONNECTING = 1 ;
const int SSL_ACCEPTING = 2 ;
/* Eigenschaften */
public int $fd ;
public int $priority ;
public readonly EventBuffer $input ;
public readonly EventBuffer $output ;
/* Methoden */
public close ( ) : void
public connect ( string $addr ) : bool
public connectHost ( EventDnsBase $dns_base , string $hostname , int $port , int $family = EventUtil::AF_UNSPEC ) : bool
public __construct ( EventBase $base , mixed $socket = null , int $options = 0 , callable $readcb = null , callable $writecb = null , callable $eventcb = null )
public static createPair ( EventBase $base , int $options = 0 ) : array
public disable ( int $events ) : bool
public enable ( int $events ) : bool
public free ( ) : void
public getDnsErrorString ( ) : string
public getEnabled ( ) : int
public getInput ( ) : EventBuffer
public getOutput ( ) : EventBuffer
public read ( int $size ) : string
public readBuffer ( EventBuffer $buf ) : bool
public setCallbacks ( callable $readcb , callable $writecb , callable $eventcb , string $arg = ? ) : void
public setPriority ( int $priority ) : bool
public setTimeouts ( float $timeout_read , float $timeout_write ) : bool
public setWatermark ( int $events , int $lowmark , int $highmark ) : void
public sslError ( ) : string
public static sslFilter ( EventBase $base , EventBufferEvent $underlying , EventSslContext $ctx , int $state , int $options = 0 ) : EventBufferEvent
public sslGetCipherInfo ( ) : string
public sslGetCipherName ( ) : string
public sslGetCipherVersion ( ) : string
public sslGetProtocol ( ) : string
public sslRenegotiate ( ) : void
public static sslSocket ( EventBase $base , mixed $socket , EventSslContext $ctx , int $state , int $options = ? ) : EventBufferEvent
public write ( string $data ) : bool
public writeBuffer ( EventBuffer $buf ) : bool
}

Eigenschaften

fd

Numeric file descriptor associated with the buffer event. Normally represents a bound socket. Equals to null, if there is no file descriptor(socket) associated with the buffer event.

priority

The priority of the events used to implement the buffer event.

input

Underlying input buffer object( EventBuffer )

output

Underlying output buffer object( EventBuffer )

Vordefinierte Konstanten

EventBufferEvent::READING

An event occurred during a read operation on the bufferevent. See the other flags for which event it was.

EventBufferEvent::WRITING

An event occurred during a write operation on the bufferevent. See the other flags for which event it was.

EventBufferEvent::EOF

Got an end-of-file indication on the buffer event.

EventBufferEvent::ERROR

An error occurred during a bufferevent operation. For more information on what the error was, call EventUtil::getLastSocketErrno() and/or EventUtil::getLastSocketError() .

EventBufferEvent::TIMEOUT

EventBufferEvent::CONNECTED

Finished a requested connection on the bufferevent.

EventBufferEvent::OPT_CLOSE_ON_FREE

When the buffer event is freed, close the underlying transport. This will close an underlying socket, free an underlying buffer event, etc.

EventBufferEvent::OPT_THREADSAFE

Automatically allocate locks for the bufferevent, so that it’s safe to use from multiple threads.

EventBufferEvent::OPT_DEFER_CALLBACKS

When this flag is set, the bufferevent defers all of its callbacks. See » Fast portable non-blocking network programming with Libevent, Deferred callbacks .

EventBufferEvent::OPT_UNLOCK_CALLBACKS

By default, when the bufferevent is set up to be threadsafe, the buffer event’s locks are held whenever the any user-provided callback is invoked. Setting this option makes Libevent release the buffer event’s lock when it’s invoking the callbacks.

EventBufferEvent::SSL_OPEN

The SSL handshake is done

EventBufferEvent::SSL_CONNECTING

SSL is currently performing negotiation as a client

EventBufferEvent::SSL_ACCEPTING

SSL is currently performing negotiation as a server

Inhaltsverzeichnis

  • EventBufferEvent::close — Closes file descriptor associated with the current buffer event
  • EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket
  • EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving
  • EventBufferEvent::__construct — Constructs EventBufferEvent object
  • EventBufferEvent::createPair — Creates two buffer events connected to each other
  • EventBufferEvent::disable — Disable events read, write, or both on a buffer event
  • EventBufferEvent::enable — Enable events read, write, or both on a buffer event
  • EventBufferEvent::free — Free a buffer event
  • EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt
  • EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event
  • EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event
  • EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event
  • EventBufferEvent::read — Read buffer's data
  • EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf
  • EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks
  • EventBufferEvent::setPriority — Assign a priority to a bufferevent
  • EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event
  • EventBufferEvent::setWatermark — Adjusts read and/or write watermarks
  • EventBufferEvent::sslError — Returns most recent OpenSSL error reported on the buffer event
  • EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event
  • EventBufferEvent::sslGetCipherInfo — Returns a textual description of the cipher
  • EventBufferEvent::sslGetCipherName — Returns the current cipher name of the SSL connection
  • EventBufferEvent::sslGetCipherVersion — Returns version of cipher used by current SSL connection
  • EventBufferEvent::sslGetProtocol — Returns the name of the protocol used for current SSL connection
  • EventBufferEvent::sslRenegotiate — Tells a bufferevent to begin SSL renegotiation
  • EventBufferEvent::sslSocket — Creates a new SSL buffer event to send its data over an SSL on a socket
  • EventBufferEvent::write — Fügt Daten zum Ausgabepuffer eines Pufferereignises hinzu
  • EventBufferEvent::writeBuffer — Adds contents of the entire buffer to a buffer event's output buffer


Closes file descriptor associated with the current buffer event

  • « EventBufferEvent
  • EventBufferEvent::connect »
  • PHP Manual
  • EventBufferEvent
  • Closes file descriptor associated with the current buffer event

EventBufferEvent::close

(PECL event >= 1.10.0)

EventBufferEvent::close — Closes file descriptor associated with the current buffer event

Beschreibung

public EventBufferEvent::close ( ) : void

Closes file descriptor associated with the current buffer event.

This method may be used in cases when the EventBufferEvent::OPT_CLOSE_ON_FREE option is not appropriate.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Connect buffer event's file descriptor to given address or UNIX socket

  • « EventBufferEvent::close
  • EventBufferEvent::connectHost »
  • PHP Manual
  • EventBufferEvent
  • Connect buffer event's file descriptor to given address or UNIX socket

EventBufferEvent::connect

(PECL event >= 1.2.6-beta)

EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket

Beschreibung

public EventBufferEvent::connect ( string $addr ) : bool

Connect buffer event's file descriptor to given address(optionally with port), or a UNIX domain socket.

If socket is not assigned to the buffer event, this function allocates a new socket and makes it non-blocking internally.

To resolve DNS names(asyncronously), use EventBufferEvent::connectHost() method.

Parameter-Liste

addr

Should contain an IP address with optional port number, or a path to UNIX domain socket. Recognized formats are:

[IPv6Address]:port
[IPv6Address]
IPv6Address
IPv4Address:port
IPv4Address
unix:path
Note, 'unix:' prefix is currently not case sensitive.

Rückgabewerte

Returns true on success. Otherwise false.

Beispiele

Beispiel #1 EventBufferEvent::connect() example

<?php
/*
 * 1. Connect to 127.0.0.1 at port 80
 * by means of EventBufferEvent::connect().
 *
 * 2. Request /index.cphp via HTTP/1.0
 * using the output buffer.
 *
 * 3. Asyncronously read the response and print it to stdout.
 */

/* Read callback */
function readcb($bev, $base) {
    $input = $bev->getInput();

    while (($n = $input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

/* Event callback */
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connected.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Closing\n";
        $base->exit();
        exit("Done\n");
    }
}

$base = new EventBase();

echo "step 1\n";
$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

echo "step 2\n";
$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

echo "step 3\n";
/* Send request */
$output = $bev->getOutput();
if (!$output->add(
    "GET /index.cphp HTTP/1.0\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

/* Connect to the host syncronously.
 * We know the IP, and don't need to resolve DNS. */
if (!$bev->connect("127.0.0.1:80")) {
    exit("Can't connect to host\n");
}

/* Dispatch pending events */
$base->dispatch();

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

step 1
step 2
step 3
Connected.
HTTP/1.1 200 OK
Server: nginx/1.2.6
Date: Sat, 09 Mar 2013 10:06:58 GMT
Content-Type: text/html; CHARSET=Windows-1252
Connection: close
X-Powered-By: PHP/5.4.11--pl2-gentoo

sdfsdfsf
Closing
Done

Beispiel #2 Connect to UNIX domain socket which presumably is served by a server, read response from the server and output it to the console

<?php
class MyUnixSocketClient {
    private $base, $bev;

    function __construct($base, $sock_path) {
        $this->base = $base;
        $this->bev = new EventBufferEvent($base, NULL, EventBufferEvent::OPT_CLOSE_ON_FREE,
            array ($this, "read_cb"), NULL, array ($this, "event_cb"));

        if (!$this->bev->connect("unix:$sock_path")) {
            trigger_error("Failed to connect to socket `$sock_path'", E_USER_ERROR);
        }

        $this->bev->enable(Event::READ);
    }

    function __destruct() {
        if ($this->bev) {
            $this->bev->free();
            $this->bev = NULL;
        }
    }

    function dispatch() {
        $this->base->dispatch();
    }

    function read_cb($bev, $unused) {
        $in = $bev->input;

        printf("Received %ld bytes\n", $in->length);
        printf("----- data ----\n");
        printf("%ld:\t%s\n", (int) $in->length, $in->pullup(-1));

        $this->bev->free();
        $this->bev = NULL;
        $this->base->exit(NULL);
    }

    function event_cb($bev, $events, $unused) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Error from bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            $bev->free();
            $bev = NULL;
        } elseif ($events & EventBufferEvent::CONNECTED) {
            $bev->output->add("test\n");
        }
    }
}

if ($argc <= 1) {
    exit("Socket path is not provided\n");
}
$sock_path = $argv[1];

$base = new EventBase();
$cl = new MyUnixSocketClient($base, $sock_path);
$cl->dispatch();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Received 5 bytes
----- data ----
5:  test

Siehe auch

  • EventBufferEvent::connectHost() - Connects to a hostname with optionally asyncronous DNS resolving


Connects to a hostname with optionally asyncronous DNS resolving

  • « EventBufferEvent::connect
  • EventBufferEvent::__construct »
  • PHP Manual
  • EventBufferEvent
  • Connects to a hostname with optionally asyncronous DNS resolving

EventBufferEvent::connectHost

(PECL event >= 1.2.6-beta)

EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving

Beschreibung

public EventBufferEvent::connectHost ( EventDnsBase $dns_base , string $hostname , int $port , int $family = EventUtil::AF_UNSPEC ) : bool

Resolves the DNS name hostname, looking for addresses of type family ( EventUtil::AF_* constants). If the name resolution fails, it invokes the event callback with an error event. If it succeeds, it launches a connection attempt just as EventBufferEvent::connect() would.

dns_base is optional. May be null, or an object created with EventDnsBase::__construct() . For asyncronous hostname resolving pass a valid event dns base resource. Otherwise the hostname resolving will block.

Hinweis:

EventDnsBase is available only if Event configured --with-event-extra ( event_extra library, libevent protocol-specific functionality support including HTTP, DNS, and RPC ).

Hinweis:

EventBufferEvent::connectHost() requires libevent-2.0.3-alpha or greater.

Parameter-Liste

dns_base

Object of EventDnsBase in case if DNS is to be resolved asyncronously. Otherwise null.

hostname

Hostname to connect to. Recognized formats are:

www.example.com (hostname)
 1.2.3.4 (ipv4address)
 ::1 (ipv6address)
[::1] ([ipv6address])

port

Port number

family

Address family. EventUtil::AF_UNSPEC , EventUtil::AF_INET , or EventUtil::AF_INET6 . See EventUtil constants .

Rückgabewerte

Returns true on success. Otherwise false.

Beispiele

Beispiel #1 EventBufferEvent::connectHost() example

<?php
/* Read callback */
function readcb($bev, $base) {
    //$input = $bev->input; //$bev->getInput();

    //$pos = $input->search("TTP");
    $pos = $bev->input->search("TTP");

    while (($n = $bev->input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

/* Event callback */
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connected.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Closing\n";
        $base->exit();
        exit("Done\n");
    }
}

$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // We'll use async DNS resolving
if (!$dns_base) {
    exit("Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    "readcb", /* writecb */ NULL, "eventcb", $base
);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

//$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

$output = $bev->output; //$bev->getOutput();
if (!$output->add(
    "GET {$argv[2]} HTTP/1.0\r\n".
    "Host: {$argv[1]}\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

if (!$bev->connectHost($dns_base, $argv[1], 80, EventUtil::AF_UNSPEC)) {
    exit("Can't connect to host {$argv[1]}\n");
}

$base->dispatch();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Connected.
HTTP/1.0 301 Moved Permanently
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1252
Date: Sat, 09 Mar 2013 12:21:19 GMT
Expires: Mon, 08 Apr 2013 12:21:19 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN

<HTML><HEAD><meta http-equiv="content-type" content="text/html;CHARSET=Windows-1252">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.co.uk/">here</A>.
</BODY></HTML>
Closing
Done

Siehe auch

  • EventBufferEvent::connect() - Connect buffer event's file descriptor to given address or UNIX socket


Constructs EventBufferEvent object

  • « EventBufferEvent::connectHost
  • EventBufferEvent::createPair »
  • PHP Manual
  • EventBufferEvent
  • Constructs EventBufferEvent object

EventBufferEvent::__construct

(PECL event >= 1.2.6-beta)

EventBufferEvent::__construct — Constructs EventBufferEvent object

Beschreibung

public EventBufferEvent::__construct ( EventBase $base , mixed $socket = null , int $options = 0 , callable $readcb = null , callable $writecb = null , callable $eventcb = null )

Create a buffer event on a socket, stream or a file descriptor. Passing null to socket means that the socket should be created later, e.g. by means of EventBufferEvent::connect() .

Parameter-Liste

base

Event base that should be associated with the new buffer event.

socket

May be created as a stream(not necessarily by means of sockets extension)

options

One of EventBufferEvent::OPT_* constants , or 0 .

readcb

Read event callback. See About buffer event callbacks .

writecb

Write event callback. See About buffer event callbacks .

eventcb

Status-change event callback. See About buffer event callbacks .

arg

A variable that will be passed to all the callbacks.

Rückgabewerte

Returns buffer event resource optionally associated with socket resource. */

Siehe auch

  • EventBufferEvent::sslFilter() - Create a new SSL buffer event to send its data over another buffer event
  • EventBufferEvent::sslSocket() - Creates a new SSL buffer event to send its data over an SSL on a socket


Creates two buffer events connected to each other

  • « EventBufferEvent::__construct
  • EventBufferEvent::disable »
  • PHP Manual
  • EventBufferEvent
  • Creates two buffer events connected to each other

EventBufferEvent::createPair

(PECL event >= 1.2.6-beta)

EventBufferEvent::createPair — Creates two buffer events connected to each other

Beschreibung

public static EventBufferEvent::createPair ( EventBase $base , int $options = 0 ) : array

Returns array of two EventBufferEvent objects connected to each other. All the usual options are supported, except for EventBufferEvent::OPT_CLOSE_ON_FREE , which has no effect, and EventBufferEvent::OPT_DEFER_CALLBACKS , which is always on.

Parameter-Liste

base

Associated event base

options

EventBufferEvent::OPT_* constants combined with bitwise OR operator.

Rückgabewerte

Returns array of two EventBufferEvent objects connected to each other.

Changelog

Version | Beschreibung
PECL event 1.9.0 | Method made static.


Disable events read, write, or both on a buffer event

  • « EventBufferEvent::createPair
  • EventBufferEvent::enable »
  • PHP Manual
  • EventBufferEvent
  • Disable events read, write, or both on a buffer event

EventBufferEvent::disable

(PECL event >= 1.2.6-beta)

EventBufferEvent::disable — Disable events read, write, or both on a buffer event

Beschreibung

public EventBufferEvent::disable ( int $events ) : bool

Disable events Event::READ , Event::WRITE , or Event::READ | Event::WRITE on a buffer event.

Parameter-Liste

events

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBufferEvent::enable() - Enable events read, write, or both on a buffer event


Enable events read, write, or both on a buffer event

  • « EventBufferEvent::disable
  • EventBufferEvent::free »
  • PHP Manual
  • EventBufferEvent
  • Enable events read, write, or both on a buffer event

EventBufferEvent::enable

(PECL event >= 1.2.6-beta)

EventBufferEvent::enable — Enable events read, write, or both on a buffer event

Beschreibung

public EventBufferEvent::enable ( int $events ) : bool

Enable events Event::READ , Event::WRITE , or Event::READ | Event::WRITE on a buffer event.

Parameter-Liste

events

Event::READ , Event::WRITE , or Event::READ | Event::WRITE on a buffer event.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBufferEvent::disable() - Disable events read, write, or both on a buffer event


Free a buffer event

  • « EventBufferEvent::enable
  • EventBufferEvent::getDnsErrorString »
  • PHP Manual
  • EventBufferEvent
  • Free a buffer event

EventBufferEvent::free

(PECL event >= 1.2.6-beta)

EventBufferEvent::free — Free a buffer event

Beschreibung

public EventBufferEvent::free ( ) : void

Free resources allocated by buffer event.

Usually there is no need to call this method, since normally it is done within internal object destructors. However, sometimes we have a long-time script allocating lots of instances, or a script with a heavy memory usage, where we need to free resources as soon as possible. In such cases EventBufferEvent::free() may be used to protect the script against running up to the memory_limit .

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Returns string describing the last failed DNS lookup attempt

  • « EventBufferEvent::free
  • EventBufferEvent::getEnabled »
  • PHP Manual
  • EventBufferEvent
  • Returns string describing the last failed DNS lookup attempt

EventBufferEvent::getDnsErrorString

(PECL event >= 1.2.6-beta)

EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt

Beschreibung

public EventBufferEvent::getDnsErrorString ( ) : string

Returns string describing the last failed DNS lookup attempt made by EventBufferEvent::connectHost() , or an empty string, if there is no DNS error detected.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string describing DNS lookup error, or an empty string for no error.

Siehe auch

  • EventBufferEvent::connectHost() - Connects to a hostname with optionally asyncronous DNS resolving


Returns bitmask of events currently enabled on the buffer event

  • « EventBufferEvent::getDnsErrorString
  • EventBufferEvent::getInput »
  • PHP Manual
  • EventBufferEvent
  • Returns bitmask of events currently enabled on the buffer event

EventBufferEvent::getEnabled

(PECL event >= 1.2.6-beta)

EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event

Beschreibung

public EventBufferEvent::getEnabled ( ) : int

Returns bitmask of events currently enabled on the buffer event

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns integer representing a bitmask of events currently enabled on the buffer event

Siehe auch

  • EventBufferEvent::enable() - Enable events read, write, or both on a buffer event
  • EventBufferEvent::disable() - Disable events read, write, or both on a buffer event


Returns underlying input buffer associated with current buffer event

  • « EventBufferEvent::getEnabled
  • EventBufferEvent::getOutput »
  • PHP Manual
  • EventBufferEvent
  • Returns underlying input buffer associated with current buffer event

EventBufferEvent::getInput

(PECL event >= 1.2.6-beta)

EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event

Beschreibung

public EventBufferEvent::getInput ( ) : EventBuffer

Returns underlying input buffer associated with current buffer event. An input buffer is a storage for data to read.

Note, there is also input property of EventBufferEvent class.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns instance of EventBuffer input buffer associated with current buffer event.

Beispiele

Beispiel #1 Buffer event's read callback

<?php
function readcb($bev, $base) {
    $input = $bev->input; //$bev->getInput();

    while (($n = $input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}
?>

Siehe auch

  • EventBufferEvent::getOutput() - Returns underlying output buffer associated with current buffer event


Returns underlying output buffer associated with current buffer event

  • « EventBufferEvent::getInput
  • EventBufferEvent::read »
  • PHP Manual
  • EventBufferEvent
  • Returns underlying output buffer associated with current buffer event

EventBufferEvent::getOutput

(PECL event >= 1.2.6-beta)

EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event

Beschreibung

public EventBufferEvent::getOutput ( ) : EventBuffer

Returns underlying output buffer associated with current buffer event. An output buffer is a storage for data to be written.

Note, there is also output property of EventBufferEvent class.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns instance of EventBuffer output buffer associated with current buffer event.

Beispiele

Beispiel #1 EventBufferEvent::getOutput() example

<?php
$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // Use async DNS resolving
if (!$dns_base) {
    exit("Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    "readcb", /* writecb */ NULL, "eventcb", $base
);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

$bev->enable(Event::READ | Event::WRITE);

$output = $bev->getOutput();
if (!$output->add(
    "GET {$argv[2]} HTTP/1.0\r\n".
    "Host: {$argv[1]}\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

/* ... */
?>

Siehe auch

  • EventBufferEvent::getInput() - Returns underlying input buffer associated with current buffer event


Read buffer's data

  • « EventBufferEvent::getOutput
  • EventBufferEvent::readBuffer »
  • PHP Manual
  • EventBufferEvent
  • Read buffer's data

EventBufferEvent::read

(PECL event >= 1.2.6-beta)

EventBufferEvent::read — Read buffer's data

Beschreibung

public EventBufferEvent::read ( int $size ) : string

Removes up to size bytes from the input buffer. Returns a string of data read from the input buffer.

Parameter-Liste

size

Maximum number of bytes to read

Rückgabewerte

Returns string of data read from the input buffer.

Siehe auch

  • EventBufferEvent::readBuffer() - Drains the entire contents of the input buffer and places them into buf


Drains the entire contents of the input buffer and places them into buf

  • « EventBufferEvent::read
  • EventBufferEvent::setCallbacks »
  • PHP Manual
  • EventBufferEvent
  • Drains the entire contents of the input buffer and places them into buf

EventBufferEvent::readBuffer

(PECL event >= 1.2.6-beta)

EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf

Beschreibung

public EventBufferEvent::readBuffer ( EventBuffer $buf ) : bool

Drains the entire contents of the input buffer and places them into buf .

Parameter-Liste

buf

Target buffer

Rückgabewerte

Returns true on success; Otherwise false.

Siehe auch

  • EventBufferEvent::read() - Read buffer's data


Assigns read, write and event(status) callbacks

  • « EventBufferEvent::readBuffer
  • EventBufferEvent::setPriority »
  • PHP Manual
  • EventBufferEvent
  • Assigns read, write and event(status) callbacks

EventBufferEvent::setCallbacks

(PECL event >= 1.2.6-beta)

EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks

Beschreibung

public EventBufferEvent::setCallbacks ( callable $readcb , callable $writecb , callable $eventcb , string $arg = ? ) : void

Assigns read, write and event(status) callbacks.

Parameter-Liste

readcb

Read event callback. See About buffer event callbacks .

writecb

Write event callback. See About buffer event callbacks .

eventcb

Status-change event callback. See About buffer event callbacks .

arg

A variable that will be passed to all the callbacks.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventBufferEvent::__construct() - Constructs EventBufferEvent object


Assign a priority to a bufferevent

  • « EventBufferEvent::setCallbacks
  • EventBufferEvent::setTimeouts »
  • PHP Manual
  • EventBufferEvent
  • Assign a priority to a bufferevent

EventBufferEvent::setPriority

(PECL event >= 1.2.6-beta)

EventBufferEvent::setPriority — Assign a priority to a bufferevent

Beschreibung

public EventBufferEvent::setPriority ( int $priority ) : bool

Assign a priority to a bufferevent

Warnung

Only supported for socket buffer events

Parameter-Liste

priority

Priority value.

Rückgabewerte

Returns true on success. Otherwise false.


Set the read and write timeout for a buffer event

  • « EventBufferEvent::setPriority
  • EventBufferEvent::setWatermark »
  • PHP Manual
  • EventBufferEvent
  • Set the read and write timeout for a buffer event

EventBufferEvent::setTimeouts

(PECL event >= 1.2.6-beta)

EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event

Beschreibung

public EventBufferEvent::setTimeouts ( float $timeout_read , float $timeout_write ) : bool

Set the read and write timeout for a buffer event

Parameter-Liste

timeout_read

Read timeout

timeout_write

Write timeout

Rückgabewerte

Returns true on success. Otherwise false.


Adjusts read and/or write watermarks

  • « EventBufferEvent::setTimeouts
  • EventBufferEvent::sslError »
  • PHP Manual
  • EventBufferEvent
  • Adjusts read and/or write watermarks

EventBufferEvent::setWatermark

(PECL event >= 1.2.6-beta)

EventBufferEvent::setWatermark — Adjusts read and/or write watermarks

Beschreibung

public EventBufferEvent::setWatermark ( int $events , int $lowmark , int $highmark ) : void

Adjusts the read watermarks, the write watermarks , or both, of a single buffer event.

A buffer event watermark is an edge, a value specifying number of bytes to be read or written before callback is invoked. By default every read/write event triggers a callback invokation. See » Fast portable non-blocking network programming with Libevent: Callbacks and watermarks

Parameter-Liste

events

Bitmask of Event::READ , Event::WRITE , or both.

lowmark

Minimum watermark value.

highmark

Maximum watermark value. 0 means "unlimited".

Rückgabewerte

Es wird kein Wert zurückgegeben.


Returns most recent OpenSSL error reported on the buffer event

  • « EventBufferEvent::setWatermark
  • EventBufferEvent::sslFilter »
  • PHP Manual
  • EventBufferEvent
  • Returns most recent OpenSSL error reported on the buffer event

EventBufferEvent::sslError

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslError — Returns most recent OpenSSL error reported on the buffer event

Beschreibung

public EventBufferEvent::sslError ( ) : string

Returns most recent OpenSSL error reported on the buffer event.

Hinweis:

This function is available only if Event is compiled with OpenSSL support.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns OpenSSL error string reported on the buffer event, or false, if there is no more error to return.

Beispiele

Beispiel #1 EventBufferEvent::sslError() example

<?php
// This callback is invoked when some even occurs on the event listener,
// e.g. connection closed, or an error occured
function ssl_event_cb($bev, $events, $ctx) {
    if ($events & EventBufferEvent::ERROR) {
        // Fetch errors from the SSL error stack
        while ($err = $bev->sslError()) {
            fprintf(STDERR, "Bufferevent error %s.\n", $err);
        }
    }

    if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
        $bev->free();
    }
}
?>

Siehe auch

  • EventBufferEvent::sslRenegotiate() - Tells a bufferevent to begin SSL renegotiation


Create a new SSL buffer event to send its data over another buffer event

  • « EventBufferEvent::sslError
  • EventBufferEvent::sslGetCipherInfo »
  • PHP Manual
  • EventBufferEvent
  • Create a new SSL buffer event to send its data over another buffer event

EventBufferEvent::sslFilter

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event

Beschreibung

public static EventBufferEvent::sslFilter ( EventBase $base , EventBufferEvent $underlying , EventSslContext $ctx , int $state , int $options = 0 ) : EventBufferEvent

Create a new SSL buffer event to send its data over another buffer event

Hinweis:

This function is available only if Event is compiled with OpenSSL support.

Parameter-Liste

base

Associated event base.

underlying

A socket buffer event to use for this SSL.

ctx

Object of EventSslContext class.

state

The current state of SSL connection: EventBufferEvent::SSL_OPEN , EventBufferEvent::SSL_ACCEPTING or EventBufferEvent::SSL_CONNECTING .

options

One or more buffer event options.

Rückgabewerte

Returns a new SSL EventBufferEvent object.

Beispiele

Beispiel #1 Simple SMTP server

<?php
 /*
 * Author: Andrew Rose <hello at andrewrose dot co dot uk>
 *
 * Usage:
 * 1) Prepare cert.pem certificate and privkey.pem private key files.
 * 2) Launch the server script
 * 3) Open TLS connection, e.g.:
 *      $ openssl s_client -connect localhost:25 -starttls smtp -crlf
 * 4) Start testing the commands listed in `cmd` method below.
 */

class Handler {
    public $domainName = FALSE;
    public $connections = [];
    public $buffers = [];
    public $maxRead = 256000;

    public function __construct() {
        $this->ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, [
            EventSslContext::OPT_LOCAL_CERT  => 'cert.pem',
            EventSslContext::OPT_LOCAL_PK    => 'privkey.pem',
            //EventSslContext::OPT_PASSPHRASE  => '',
            EventSslContext::OPT_VERIFY_PEER => false, // change to true with authentic cert
            EventSslContext::OPT_ALLOW_SELF_SIGNED => true // change to false with authentic cert
        ]);

        $this->base = new EventBase();
        if (!$this->base) {
            exit("Couldn't open event base\n");
        }

        if (!$this->listener = new EventListener($this->base,
            [$this, 'ev_accept'],
            $this->ctx,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1,
            '0.0.0.0:25'))
        {
            exit("Couldn't create listener\n");
        }

        $this->listener->setErrorCallback([$this, 'ev_error']);
        $this->base->dispatch();
    }

    public function ev_accept($listener, $fd, $address, $ctx) {
        static $id = 0;
        $id += 1;

        $this->connections[$id]['clientData'] = '';
        $this->connections[$id]['cnx'] = new EventBufferEvent($this->base, $fd,
            EventBufferEvent::OPT_CLOSE_ON_FREE);

        if (!$this->connections[$id]['cnx']) {
            echo "Failed creating buffer\n";
            $this->base->exit(NULL);
            exit(1);
        }

        $this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL,
            [$this, 'ev_error'], $id);
        $this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);

        $this->ev_write($id, '220 '.$this->domainName." wazzzap?\r\n");
    }

    function ev_error($listener, $ctx) {
        $errno = EventUtil::getLastSocketErrno();

        fprintf(STDERR, "Got an error %d (%s) on the listener. Shutting down.\n",
            $errno, EventUtil::getLastSocketError());

        if ($errno != 0) {
            $this->base->exit(NULL);
            exit();
        }
    }

    public function ev_close($id) {
        $this->connections[$id]['cnx']->disable(Event::READ | Event::WRITE);
        unset($this->connections[$id]);
    }

    protected function ev_write($id, $string) {
        echo 'S('.$id.'): '.$string;
        $this->connections[$id]['cnx']->write($string);
    }

    public function ev_read($buffer, $id) {
        while($buffer->input->length > 0) {
            $this->connections[$id]['clientData'] .= $buffer->input->read($this->maxRead);
            $clientDataLen = strlen($this->connections[$id]['clientData']);

            if($this->connections[$id]['clientData'][$clientDataLen-1] == "\n"
                && $this->connections[$id]['clientData'][$clientDataLen-2] == "\r")
            {
                // remove the trailing \r\n
                $line = substr($this->connections[$id]['clientData'], 0,
                    strlen($this->connections[$id]['clientData']) - 2);

                $this->connections[$id]['clientData'] = '';
                $this->cmd($buffer, $id, $line);
            }
        }
    }

    protected function cmd($buffer, $id, $line) {
        switch ($line) {
            case strncmp('EHLO ', $line, 4):
                $this->ev_write($id, "250-STARTTLS\r\n");
                $this->ev_write($id, "250 OK ehlo\r\n");
                break;

            case strncmp('HELO ', $line, 4):
                $this->ev_write($id, "250-STARTTLS\r\n");
                $this->ev_write($id, "250 OK helo\r\n");
                break;

            case strncmp('QUIT', $line, 3):
                $this->ev_write($id, "250 OK quit\r\n");
                $this->ev_close($id);
                break;

            case strncmp('STARTTLS', $line, 3):
                $this->ev_write($id, "220 Ready to start TLS\r\n");
                $this->connections[$id]['cnx'] = EventBufferEvent::sslFilter($this->base,
                    $this->connections[$id]['cnx'], $this->ctx,
                    EventBufferEvent::SSL_ACCEPTING,
                    EventBufferEvent::OPT_CLOSE_ON_FREE);
                $this->connections[$id]['cnx']->setCallbacks([$this, "ev_read"], NULL, [$this, 'ev_error'], $id);
                $this->connections[$id]['cnx']->enable(Event::READ | Event::WRITE);
                break;

            default:
                echo 'unknown command: '.$line."\n";
                break;
        }
    }
}

new Handler();

Siehe auch

  • EventBufferEvent::sslSocket() - Creates a new SSL buffer event to send its data over an SSL on a socket


Returns a textual description of the cipher

  • « EventBufferEvent::sslFilter
  • EventBufferEvent::sslGetCipherName »
  • PHP Manual
  • EventBufferEvent
  • Returns a textual description of the cipher

EventBufferEvent::sslGetCipherInfo

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherInfo — Returns a textual description of the cipher

Beschreibung

public EventBufferEvent::sslGetCipherInfo ( ) : string

Retrieves description of the current cipher by means of the SSL_CIPHER_description SSL API function (see SSL_CIPHER_get_name(3) man page).

Hinweis:

This function is available only if Event is compiled with OpenSSL support.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a textual description of the cipher on success, or false on error.


Returns the current cipher name of the SSL connection

  • « EventBufferEvent::sslGetCipherInfo
  • EventBufferEvent::sslGetCipherVersion »
  • PHP Manual
  • EventBufferEvent
  • Returns the current cipher name of the SSL connection

EventBufferEvent::sslGetCipherName

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherName — Returns the current cipher name of the SSL connection

Beschreibung

public EventBufferEvent::sslGetCipherName ( ) : string

Retrieves name of cipher used by current SSL connection.

Hinweis:

This function is available only if Event is compiled with OpenSSL support.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current cipher name of the SSL connection, or false on error.


Returns version of cipher used by current SSL connection

  • « EventBufferEvent::sslGetCipherName
  • EventBufferEvent::sslGetProtocol »
  • PHP Manual
  • EventBufferEvent
  • Returns version of cipher used by current SSL connection

EventBufferEvent::sslGetCipherVersion

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherVersion — Returns version of cipher used by current SSL connection

Beschreibung

public EventBufferEvent::sslGetCipherVersion ( ) : string

Retrieves version of cipher used by current SSL connection.

Hinweis:

This function is available only if Event is compiled with OpenSSL support.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current cipher version of the SSL connection, or false on error.


Returns the name of the protocol used for current SSL connection

  • « EventBufferEvent::sslGetCipherVersion
  • EventBufferEvent::sslRenegotiate »
  • PHP Manual
  • EventBufferEvent
  • Returns the name of the protocol used for current SSL connection

EventBufferEvent::sslGetProtocol

(PECL event >= 1.10.0)

EventBufferEvent::sslGetProtocol — Returns the name of the protocol used for current SSL connection

Beschreibung

public EventBufferEvent::sslGetProtocol ( ) : string

Returns the name of the protocol used for current SSL connection.

Hinweis:

This function is available only if Event is compiled with OpenSSL support.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the name of the protocol used for current SSL connection.


Tells a bufferevent to begin SSL renegotiation

  • « EventBufferEvent::sslGetProtocol
  • EventBufferEvent::sslSocket »
  • PHP Manual
  • EventBufferEvent
  • Tells a bufferevent to begin SSL renegotiation

EventBufferEvent::sslRenegotiate

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslRenegotiate — Tells a bufferevent to begin SSL renegotiation

Beschreibung

public EventBufferEvent::sslRenegotiate ( ) : void

Tells a bufferevent to begin SSL renegotiation.

Warnung

Calling this function tells the SSL to renegotiate, and the buffer event to invoke appropriate callbacks. This is an advanced topic; this should be generally avoided unless one really knows what he/she does, especially since many SSL versions have had known security issues related to renegotiation.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Creates a new SSL buffer event to send its data over an SSL on a socket

  • « EventBufferEvent::sslRenegotiate
  • EventBufferEvent::write »
  • PHP Manual
  • EventBufferEvent
  • Creates a new SSL buffer event to send its data over an SSL on a socket

EventBufferEvent::sslSocket

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslSocket — Creates a new SSL buffer event to send its data over an SSL on a socket

Beschreibung

public static EventBufferEvent::sslSocket ( EventBase $base , mixed $socket , EventSslContext $ctx , int $state , int $options = ? ) : EventBufferEvent

Creates a new SSL buffer event to send its data over an SSL on a socket.

Parameter-Liste

base

Associated event base.

socket

Socket to use for this SSL. Can be stream or socket resource, numeric file descriptor, or null. If socket is null, it is assumed that the file descriptor for the socket will be assigned later, for instance, by means of EventBufferEvent::connectHost() method.

ctx

Object of EventSslContext class.

state

The current state of SSL connection: EventBufferEvent::SSL_OPEN , EventBufferEvent::SSL_ACCEPTING or EventBufferEvent::SSL_CONNECTING .

options

The buffer event options.

Rückgabewerte

Returns EventBufferEvent object.

Siehe auch

  • EventBufferEvent::sslFilter() - Create a new SSL buffer event to send its data over another buffer event


Fügt Daten zum Ausgabepuffer eines Pufferereignises hinzu

  • « EventBufferEvent::sslSocket
  • EventBufferEvent::writeBuffer »
  • PHP Manual
  • EventBufferEvent
  • Fügt Daten zum Ausgabepuffer eines Pufferereignises hinzu

EventBufferEvent::write

(PECL event >= 1.2.6-beta)

EventBufferEvent::write — Fügt Daten zum Ausgabepuffer eines Pufferereignises hinzu

Beschreibung

public EventBufferEvent::write ( string $data ) : bool

Fügt data zum Ausgabepuffer eines Pufferereignisses hinzu.

Parameter-Liste

data

Die zum zugrundeliegenden Puffer hinzuzufügenden Daten.

Rückgabewerte

Gibt true bei Erfolg, sonst false zurück.

Siehe auch

  • EventBufferEvent::writeBuffer() - Adds contents of the entire buffer to a buffer event's output buffer


Adds contents of the entire buffer to a buffer event's output buffer

  • « EventBufferEvent::write
  • About buffer event callbacks »
  • PHP Manual
  • EventBufferEvent
  • Adds contents of the entire buffer to a buffer event's output buffer

EventBufferEvent::writeBuffer

(PECL event >= 1.2.6-beta)

EventBufferEvent::writeBuffer — Adds contents of the entire buffer to a buffer event's output buffer

Beschreibung

public EventBufferEvent::writeBuffer ( EventBuffer $buf ) : bool

Adds contents of the entire buffer to a buffer event's output buffer

Parameter-Liste

buf

Source EventBuffer object.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventBufferEvent::write() - Fügt Daten zum Ausgabepuffer eines Pufferereignises hinzu


About buffer event callbacks

An object of EventBufferEvent class represents a buffer event . The asynchronous nature of I/O performed by Libevent implies that a socket(or other kind of file descriptor) is not always available. Event invokes corresponding callbacks when the resource becomes available for reading or writing, or when some event occurs(e.g. error, "end of line" etc.).

Read and write callbacks should match the following prototype:

callback ( EventBufferEvent $bev = null , mixed $arg = null ) : void

bev

Associated EventBufferEvent object.

arg

Custom variable attached to all callbacks via EventBufferEvent::__construct() , or EventBufferEvent::setCallbacks() .

Event callback should match the following prototype:

callback ( EventBufferEvent $bev = null , int $events = 0 , mixed $arg = null ) : void

bev

Associated EventBufferEvent object.

events

Bit mask of events: EventBufferEvent::READING , EventBufferEvent::WRITING , EventBufferEvent::EOL , EventBufferEvent::ERROR and EventBufferEvent::TIMEOUT . See EventBufferEvent constants

arg

Custom variable attached to all callbacks via EventBufferEvent::__construct() , or EventBufferEvent::setCallbacks() .


The EventConfig class

(PECL event >= 1.2.6-beta)

Einführung

Represents configuration structure which could be used in construction of the EventBase .

Klassenbeschreibung

final EventConfig {
/* Constants */
const int FEATURE_ET = 1 ;
const int FEATURE_O1 = 2 ;
const int FEATURE_FDS = 4 ;
/* Methoden */
public avoidMethod ( string $method ) : bool
public __construct ( )
public requireFeatures ( int $feature ) : bool
public setMaxDispatchInterval ( int $max_interval , int $max_callbacks , int $min_priority ) : void
}

Vordefinierte Konstanten

EventConfig::FEATURE_ET

Requires a backend method that supports edge-triggered I/O.

EventConfig::FEATURE_O1

Requires a backend method where adding or deleting a single event, or having a single event become active, is an O(1) operation.

EventConfig::FEATURE_FDS

Requires a backend method that can support arbitrary file descriptor types, and not just sockets.

Inhaltsverzeichnis

  • EventConfig::avoidMethod — Tells libevent to avoid specific event method
  • EventConfig::__construct — Constructs EventConfig object
  • EventConfig::requireFeatures — Enters a required event method feature that the application demands
  • EventConfig::setMaxDispatchInterval — Prevents priority inversion


Tells libevent to avoid specific event method

  • « EventConfig
  • EventConfig::__construct »
  • PHP Manual
  • EventConfig
  • Tells libevent to avoid specific event method

EventConfig::avoidMethod

(PECL event >= 1.2.6-beta)

EventConfig::avoidMethod — Tells libevent to avoid specific event method

Beschreibung

public EventConfig::avoidMethod ( string $method ) : bool

Tells libevent to avoid specific event method(backend). See » Creating an event base .

Parameter-Liste

method

The backend method to avoid. See EventConfig constants .

Rückgabewerte

Returns true on success, otherwise false.

Beispiele

Beispiel #1 EventConfig::avoidMethod() example

<?php
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "`select' method avoided\n";
}
?>

Siehe auch

  • EventBase::__construct() - Constructs EventBase object


Constructs EventConfig object

  • « EventConfig::avoidMethod
  • EventConfig::requireFeatures »
  • PHP Manual
  • EventConfig
  • Constructs EventConfig object

EventConfig::__construct

(PECL event >= 1.2.6-beta)

EventConfig::__construct — Constructs EventConfig object

Beschreibung

public EventConfig::__construct ( )

Constructs EventConfig object which could be passed to EventBase::__construct() constructor.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns EventConfig object.

Beispiele

Beispiel #1 EventConfig::__construct() example

<?php
// Avoiding "select" method
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "`select' method avoided\n";
}

// Create event_base associated with the config
$base = new EventBase($cfg);

/* Now $base is configured to avoid select backend(method) */
?>

Siehe auch

  • EventBase::__construct() - Constructs EventBase object


Enters a required event method feature that the application demands

  • « EventConfig::__construct
  • EventConfig::setMaxDispatchInterval »
  • PHP Manual
  • EventConfig
  • Enters a required event method feature that the application demands

EventConfig::requireFeatures

(PECL event >= 1.2.6-beta)

EventConfig::requireFeatures — Enters a required event method feature that the application demands

Beschreibung

public EventConfig::requireFeatures ( int $feature ) : bool

Enters a required event method feature that the application demands

Parameter-Liste

feature

Bitmask of required features. See EventConfig::FEATURE_* constants

Rückgabewerte

Beispiele

Beispiel #1 EventConfig::requireFeatures() example

<?php
$cfg = new EventConfig();

// Create event_base associated with the config
$base = new EventBase($cfg);

// Require FDS feature
if ($cfg->requireFeatures(EventConfig::FEATURE_FDS)) {
    echo "FDS feature is now requried\n";

    $base = new EventBase($cfg);
    ($base->getFeatures() & EventConfig::FEATURE_FDS)
        and print("FDS - arbitrary file descriptor types, and not just sockets\n");
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

FDS feature is now requried
FDS - arbitrary file descriptor types, and not just sockets

Siehe auch

  • EventBase::getFeatures() - Returns bitmask of features supported


Prevents priority inversion

  • « EventConfig::requireFeatures
  • EventDnsBase »
  • PHP Manual
  • EventConfig
  • Prevents priority inversion

EventConfig::setMaxDispatchInterval

(No version information available, might only be in Git)

EventConfig::setMaxDispatchInterval — Prevents priority inversion

Beschreibung

public EventConfig::setMaxDispatchInterval ( int $max_interval , int $max_callbacks , int $min_priority ) : void

Prevents priority inversion by limiting how many low-priority event callbacks can be invoked before checking for more high-priority events.

Hinweis:

Available since libevent 2.1.0-alpha .

Parameter-Liste

max_interval

An interval after which Libevent should stop running callbacks and check for more events, or 0 , if there should be no such interval.

max_callbacks

A number of callbacks after which Libevent should stop running callbacks and check for more events, or -1 , if there should be no such limit.

min_priority

A priority below which max_interval and max_callbacks should not be enforced. If this is set to 0 , they are enforced for events of every priority; if it's set to 1 , they're enforced for events of priority 1 and above, and so on.

Rückgabewerte

Returns true on success, otherwise false.


The EventDnsBase class

(PECL event >= 1.2.6-beta)

Einführung

Represents Libevent's DNS base structure. Used to resolve DNS asyncronously, parse configuration files like resolv.conf etc.

Klassenbeschreibung

final EventDnsBase {
/* Constants */
const int OPTION_SEARCH = 1 ;
const int OPTION_NAMESERVERS = 2 ;
const int OPTION_MISC = 4 ;
const int OPTION_HOSTSFILE = 8 ;
const int OPTIONS_ALL = 15 ;
/* Methoden */
public addNameserverIp ( string $ip ) : bool
public addSearch ( string $domain ) : void
public clearSearch ( ) : void
public __construct ( EventBase $base , bool $initialize )
public countNameservers ( ) : int
public loadHosts ( string $hosts ) : bool
public parseResolvConf ( int $flags , string $filename ) : bool
public setOption ( string $option , string $value ) : bool
public setSearchNdots ( int $ndots ) : bool
}

Vordefinierte Konstanten

EventDnsBase::OPTION_SEARCH

Tells to read the domain and search fields from the resolv.conf file and the ndots option, and use them to decide which domains(if any) to search for hostnames that aren’t fully-qualified.

EventDnsBase::OPTION_NAMESERVERS

Tells to learn the nameservers from the resolv.conf file.

EventDnsBase::OPTION_MISC

EventDnsBase::OPTION_HOSTSFILE

Tells to read a list of hosts from /etc/hosts as part of loading the resolv.conf file.

EventDnsBase::OPTIONS_ALL

Tells to learn as much as it can from the resolv.conf file.

Inhaltsverzeichnis

  • EventDnsBase::addNameserverIp — Adds a nameserver to the DNS base
  • EventDnsBase::addSearch — Adds a domain to the list of search domains
  • EventDnsBase::clearSearch — Removes all current search suffixes
  • EventDnsBase::__construct — Constructs EventDnsBase object
  • EventDnsBase::countNameservers — Gets the number of configured nameservers
  • EventDnsBase::loadHosts — Loads a hosts file (in the same format as /etc/hosts) from hosts file
  • EventDnsBase::parseResolvConf — Scans the resolv.conf-formatted file
  • EventDnsBase::setOption — Set the value of a configuration option
  • EventDnsBase::setSearchNdots — Set the 'ndots' parameter for searches


Adds a nameserver to the DNS base

  • « EventDnsBase
  • EventDnsBase::addSearch »
  • PHP Manual
  • EventDnsBase
  • Adds a nameserver to the DNS base

EventDnsBase::addNameserverIp

(PECL event >= 1.2.6-beta)

EventDnsBase::addNameserverIp — Adds a nameserver to the DNS base

Beschreibung

public EventDnsBase::addNameserverIp ( string $ip ) : bool

Adds a nameserver to the evdns_base.

Parameter-Liste

ip

The nameserver string, either as an IPv4 address, an IPv6 address, an IPv4 address with a port ( IPv4:Port ), or an IPv6 address with a port ( [IPv6]:Port ).

Rückgabewerte

Returns true on success. Otherwise false.


Adds a domain to the list of search domains

  • « EventDnsBase::addNameserverIp
  • EventDnsBase::clearSearch »
  • PHP Manual
  • EventDnsBase
  • Adds a domain to the list of search domains

EventDnsBase::addSearch

(PECL event >= 1.2.6-beta)

EventDnsBase::addSearch — Adds a domain to the list of search domains

Beschreibung

public EventDnsBase::addSearch ( string $domain ) : void

Adds a domain to the list of search domains

Parameter-Liste

domain

Search domain.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Removes all current search suffixes

  • « EventDnsBase::addSearch
  • EventDnsBase::__construct »
  • PHP Manual
  • EventDnsBase
  • Removes all current search suffixes

EventDnsBase::clearSearch

(PECL event >= 1.2.6-beta)

EventDnsBase::clearSearch — Removes all current search suffixes

Beschreibung

public EventDnsBase::clearSearch ( ) : void

Removes all current search suffixes from the DNS base; the EventDnsBase::addSearch() function adds a suffix.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventDnsBase::addSearch() - Adds a domain to the list of search domains


Constructs EventDnsBase object

  • « EventDnsBase::clearSearch
  • EventDnsBase::countNameservers »
  • PHP Manual
  • EventDnsBase
  • Constructs EventDnsBase object

EventDnsBase::__construct

(PECL event >= 1.2.6-beta)

EventDnsBase::__construct — Constructs EventDnsBase object

Beschreibung

public EventDnsBase::__construct ( EventBase $base , bool $initialize )

Constructs EventDnsBase object.

Parameter-Liste

base

Event base.

initialize

If the initialize argument is true, it tries to configure the DNS base sensibly given your operating system’s default. Otherwise, it leaves the event DNS base empty, with no nameservers or options configured. In the latter case DNS base should be configured manually, e.g. with EventDnsBase::parseResolvConf() .

Rückgabewerte

Returns EventDnsBase object.


Gets the number of configured nameservers

  • « EventDnsBase::__construct
  • EventDnsBase::loadHosts »
  • PHP Manual
  • EventDnsBase
  • Gets the number of configured nameservers

EventDnsBase::countNameservers

(PECL event >= 1.2.6-beta)

EventDnsBase::countNameservers — Gets the number of configured nameservers

Beschreibung

public EventDnsBase::countNameservers ( ) : int

Gets the number of configured nameservers

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of configured nameservers(not necessarily the number of running nameservers). This is useful for double-checking whether our calls to the various nameserver configuration functions have been successful.


Loads a hosts file (in the same format as /etc/hosts) from hosts file

  • « EventDnsBase::countNameservers
  • EventDnsBase::parseResolvConf »
  • PHP Manual
  • EventDnsBase
  • Loads a hosts file (in the same format as /etc/hosts) from hosts file

EventDnsBase::loadHosts

(PECL event >= 1.2.6-beta)

EventDnsBase::loadHosts — Loads a hosts file (in the same format as /etc/hosts) from hosts file

Beschreibung

public EventDnsBase::loadHosts ( string $hosts ) : bool

Loads a hosts file (in the same format as /etc/hosts ) from hosts file.

Parameter-Liste

hosts

Path to the hosts' file.

Rückgabewerte

Returns true on success. Otherwise false.


Scans the resolv.conf-formatted file

  • « EventDnsBase::loadHosts
  • EventDnsBase::setOption »
  • PHP Manual
  • EventDnsBase
  • Scans the resolv.conf-formatted file

EventDnsBase::parseResolvConf

(PECL event >= 1.2.6-beta)

EventDnsBase::parseResolvConf — Scans the resolv.conf-formatted file

Beschreibung

public EventDnsBase::parseResolvConf ( int $flags , string $filename ) : bool

Scans the resolv.conf-formatted file stored in filename, and read in all the options from it that are listed in flags

Parameter-Liste

flags

Determines what information is parsed from the resolv.conf file. See the man page for resolv.conf for the format of this file.

The following directives are not parsed from the file: sortlist, rotate, no-check-names, inet6, debug .

If this function encounters an error, the possible return values are:

  • 1 = failed to open file
  • 2 = failed to stat file
  • 3 = file too large
  • 4 = out of memory
  • 5 = short read from file
  • 6 = no nameservers listed in the file

filename

Path to resolv.conf file.

Rückgabewerte

Returns true on success. Otherwise false.


Set the value of a configuration option

  • « EventDnsBase::parseResolvConf
  • EventDnsBase::setSearchNdots »
  • PHP Manual
  • EventDnsBase
  • Set the value of a configuration option

EventDnsBase::setOption

(PECL event >= 1.2.6-beta)

EventDnsBase::setOption — Set the value of a configuration option

Beschreibung

public EventDnsBase::setOption ( string $option , string $value ) : bool

Set the value of a configuration option.

Parameter-Liste

option

The currently available configuration options are: "ndots" , "timeout" , "max-timeouts" , "max-inflight" , and "attempts" .

value

Option value.

Rückgabewerte

Returns true on success. Otherwise false.


Set the 'ndots' parameter for searches

  • « EventDnsBase::setOption
  • EventHttp »
  • PHP Manual
  • EventDnsBase
  • Set the 'ndots' parameter for searches

EventDnsBase::setSearchNdots

(PECL event >= 1.2.6-beta)

EventDnsBase::setSearchNdots — Set the 'ndots' parameter for searches

Beschreibung

public EventDnsBase::setSearchNdots ( int $ndots ) : bool

Set the 'ndots' parameter for searches. Sets the number of dots which, when found in a name, causes the first query to be without any search domain.

Parameter-Liste

ndots

The number of dots.

Rückgabewerte

Returns true on success. Otherwise false.


The EventHttp class

(PECL event >= 1.4.0-beta)

Einführung

Represents HTTP server.

Klassenbeschreibung

final EventHttp {
/* Methoden */
public accept ( mixed $socket ) : bool
public addServerAlias ( string $alias ) : bool
public bind ( string $address , int $port ) : void
public __construct ( EventBase $base , EventSslContext $ctx = null )
public removeServerAlias ( string $alias ) : bool
public setAllowedMethods ( int $methods ) : void
public setCallback ( string $path , string $cb , string $arg = ? ) : void
public setDefaultCallback ( string $cb , string $arg = ? ) : void
public setMaxBodySize ( int $value ) : void
public setMaxHeadersSize ( int $value ) : void
public setTimeout ( int $value ) : void
}

Inhaltsverzeichnis

  • EventHttp::accept — Makes an HTTP server accept connections on the specified socket stream or resource
  • EventHttp::addServerAlias — Adds a server alias to the HTTP server object
  • EventHttp::bind — Binds an HTTP server on the specified address and port
  • EventHttp::__construct — Constructs EventHttp object(the HTTP server)
  • EventHttp::removeServerAlias — Removes server alias
  • EventHttp::setAllowedMethods — Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks
  • EventHttp::setCallback — Sets a callback for specified URI
  • EventHttp::setDefaultCallback — Sets default callback to handle requests that are not caught by specific callbacks
  • EventHttp::setMaxBodySize — Sets maximum request body size
  • EventHttp::setMaxHeadersSize — Sets maximum HTTP header size
  • EventHttp::setTimeout — Sets the timeout for an HTTP request


Makes an HTTP server accept connections on the specified socket stream or resource

  • « EventHttp
  • EventHttp::addServerAlias »
  • PHP Manual
  • EventHttp
  • Makes an HTTP server accept connections on the specified socket stream or resource

EventHttp::accept

(PECL event >= 1.2.6-beta)

EventHttp::accept — Makes an HTTP server accept connections on the specified socket stream or resource

Beschreibung

public EventHttp::accept ( mixed $socket ) : bool

Makes an HTTP server accept connections on the specified socket stream or resource. The socket should be ready to accept connections.

Can be called multiple times to accept connections on different sockets.

Hinweis:

To bind a socket, listen , and accept connections on the socket in s single call use EventHttp::bind() . EventHttp::accept() is needed only if one already has a socket ready to accept connections.

Parameter-Liste

socket

Socket resource, stream or numeric file descriptor representing a socket ready to accept connections.

Rückgabewerte

Returns true on success. Otherwise false.

Beispiele

Beispiel #1 EventHttp::accept() example

<?php
$base = new EventBase();
$http = new EventHttp($base);

$addresses = array (
     8091 => "127.0.0.1",
     8092 => "127.0.0.2",
);
$i = 0;

$socket = array();

foreach ($addresses as $port => $ip) {
    echo $ip, " ", $port, PHP_EOL;
    $socket[$i] = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if (!socket_bind($socket[$i], $ip, $port)) {
        exit("socket_bind failed\n");
    }
    socket_listen($socket[$i], 0);
    socket_set_nonblock($socket[$i]);

    if (!$http->accept($socket[$i])) {
        echo "Accept failed\n";
        exit(1);
    }

    ++$i;
}

$http->setCallback("/some-page", function() {
 echo "(some-page)\n";
    echo "URI: ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
    echo "OK\n";
});

$http->setDefaultCallback(function($req) {
    echo "URI: ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
    echo "OK\n";
});

$signal = Event::signal($base, SIGINT, function () use ($base) {
    echo "Caught SIGINT. Stopping...\n";
    $base->stop();
});
$signal->add();

$base->dispatch();
echo "END\n";
// We didn't close sockets, since Libevent already sets
// CLOSE_ON_FREE and CLOSE_ON_EXEC flags on the file
// descriptor associated with the sockets.
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Client:
$ nc 127.0.0.1 8091
GET /about HTTP/1.0
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Server:
127.0.0.1 8091
127.0.0.2 8092
URI: /about
OK

Siehe auch

  • EventHttp::bind() - Binds an HTTP server on the specified address and port


Adds a server alias to the HTTP server object

  • « EventHttp::accept
  • EventHttp::bind »
  • PHP Manual
  • EventHttp
  • Adds a server alias to the HTTP server object

EventHttp::addServerAlias

(PECL event >= 1.4.0-beta)

EventHttp::addServerAlias — Adds a server alias to the HTTP server object

Beschreibung

public EventHttp::addServerAlias ( string $alias ) : bool

Adds a server alias to the HTTP server object.

Parameter-Liste

alias

The alias to add.

Rückgabewerte

Returns true on success. Otherwise false.

Beispiele

Beispiel #1 EventHttp::addServerAlias() example

<?php
$base = new EventBase();
$http = new EventHttp($base);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$http->bind("127.0.0.1", 8088)) {
    exit("bind(1) failed\n");
};

if (!$http->addServerAlias("local.net")) {
    exit("Failed to add server alias\n");
}

$http->setCallback("/about", function($req) {
    echo "URI: ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
});
$base->dispatch();
?>

Siehe auch

  • EventHttp::removeServerAlias() - Removes server alias


Binds an HTTP server on the specified address and port

  • « EventHttp::addServerAlias
  • EventHttp::__construct »
  • PHP Manual
  • EventHttp
  • Binds an HTTP server on the specified address and port

EventHttp::bind

(PECL event >= 1.2.6-beta)

EventHttp::bind — Binds an HTTP server on the specified address and port

Beschreibung

public EventHttp::bind ( string $address , int $port ) : void

Binds an HTTP server on the specified address and port.

Can be called multiple times to bind the same HTTP server to multiple different ports.

Parameter-Liste

address

A string containing the IP address to listen(2) on.

port

The port number to listen on.

Rückgabewerte

Returns true on success. Otherwise false.

Beispiele

Beispiel #1 EventHttp::bind() example

<?php
$base = new EventBase();
$http = new EventHttp($base);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$http->bind("127.0.0.1", 8088)) {
    exit("bind(1) failed\n");
};
if (!$http->bind("127.0.0.1", 8089)) {
    exit("bind(2) failed\n");
};

$http->setCallback("/about", function($req) {
    echo "URI: ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
    echo "OK\n";
});

$base->dispatch();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Client:

$ nc 127.0.0.1 8088
GET /about HTTP/1.0
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

$ nc 127.0.0.1 8089
GET /unknown HTTP/1.0
Connection: close

HTTP/1.1 404 Not Found
Content-Type: text/html
Date: Wed, 13 Mar 2013 04:14:41 GMT
Content-Length: 149
Connection: close

<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL /unknown was not found on this server.</p></body></html>

Server:
URI: /about
OK

Siehe auch

  • EventHttp::accept() - Makes an HTTP server accept connections on the specified socket stream or resource


Constructs EventHttp object(the HTTP server)

  • « EventHttp::bind
  • EventHttp::removeServerAlias »
  • PHP Manual
  • EventHttp
  • Constructs EventHttp object(the HTTP server)

EventHttp::__construct

(PECL event >= 1.2.6-beta)

EventHttp::__construct — Constructs EventHttp object(the HTTP server)

Beschreibung

public EventHttp::__construct ( EventBase $base , EventSslContext $ctx = null )

Constructs the HTTP server object.

Parameter-Liste

base

Associated event base.

ctx

EventSslContext class object. Turns plain HTTP server into HTTPS server. It means that if ctx is configured correctly, then the underlying buffer events will be based on OpenSSL sockets. Thus, all traffic will pass through the SSL or TLS.

Hinweis:

This parameter is available only if Event is compiled with OpenSSL support and only with Libevent 2.1.0-alpha and higher.

Rückgabewerte

Returns EventHttp object.

Changelog

Version | Beschreibung
PECL event 1.9.0 | OpenSSL support (ctx) added.

Beispiele

Beispiel #1 Simple HTTP server

<?php
/*
 * Simple HTTP server.
 *
 * To test it:
 * 1) Run it on a port of your choice, e.g.:
 * $ php examples/http.php 8010
 * 2) In another terminal connect to some address on this port
 * and make GET or POST request(others are turned off here), e.g.:
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (press Enter)
 *
 * It will output
 * a=12
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * $ nc -t 127.0.0.1 8010
 * GET /dump HTTP/1.0
 * Content-Type: text/plain
 * Content-Encoding: UTF-8
 * Connection: close
 * (press Enter)
 *
 * It will output:
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 * (press Enter)
 *
 * $ nc -t 127.0.0.1 8010
 * GET /unknown HTTP/1.0
 * Connection: close
 *
 * It will output:
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) See what the server outputs on the previous terminal window.
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 2;

    if (++$counter >= $max_requests)  {
        echo "Counter reached max requests $max_requests. Exiting\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "request:"; var_dump($req);
    echo "data:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Command:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Input headers:"; var_dump($req->getInputHeaders());
    echo "Output headers:"; var_dump($req->getOutputHeaders());

    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    echo "\n >> Reading input buffer ...\n";
    $buf = $req->getInputBuffer();
    while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
        echo $s, PHP_EOL;
    }
    echo "No more data in the buffer\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close
(press Enter)

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close


Removes server alias

  • « EventHttp::__construct
  • EventHttp::setAllowedMethods »
  • PHP Manual
  • EventHttp
  • Removes server alias

EventHttp::removeServerAlias

(PECL event >= 1.4.0-beta)

EventHttp::removeServerAlias — Removes server alias

Beschreibung

public EventHttp::removeServerAlias ( string $alias ) : bool

Removes server alias added with EventHttp::addServerAlias()

Parameter-Liste

alias

The alias to remove.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventHttp::addServerAlias() - Adds a server alias to the HTTP server object


Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks

  • « EventHttp::removeServerAlias
  • EventHttp::setCallback »
  • PHP Manual
  • EventHttp
  • Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks

EventHttp::setAllowedMethods

(PECL event >= 1.4.0-beta)

EventHttp::setAllowedMethods — Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks

Beschreibung

public EventHttp::setAllowedMethods ( int $methods ) : void

Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks

If not supported they will generate a "405 Method not allowed" response.

By default this includes the following methods: GET , POST , HEAD , PUT , DELETE . See EventHttpRequest::CMD_* constants.

Parameter-Liste

methods

A bit mask of EventHttpRequest::CMD_* constants .

Rückgabewerte

Es wird kein Wert zurückgegeben.


Sets a callback for specified URI

  • « EventHttp::setAllowedMethods
  • EventHttp::setDefaultCallback »
  • PHP Manual
  • EventHttp
  • Sets a callback for specified URI

EventHttp::setCallback

(PECL event >= 1.4.0-beta)

EventHttp::setCallback — Sets a callback for specified URI

Beschreibung

public EventHttp::setCallback ( string $path , string $cb , string $arg = ? ) : void

Sets a callback for specified URI.

Parameter-Liste

path

The path for which to invoke the callback.

cb

The callback callable that gets invoked on requested path . It should match the following prototype:

callback ( EventHttpRequest $req = NULL , mixed $arg = NULL ) : void

req

EventHttpRequest object.

arg

Custom data.

arg

Custom data.

Rückgabewerte

Returns true on success. Otherwise false.

Beispiele

Beispiel #1 EventHttp::setCallback() example

<?php
/*
 * Simple HTTP server.
 *
 * To test it:
 * 1) Run it on a port of your choice, e.g.:
 * $ php examples/http.php 8010
 * 2) In another terminal connect to some address on this port
 * and make GET or POST request(others are turned off here), e.g.:
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (press Enter)
 *
 * It will output
 * a=12
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) See what the server outputs on the previous terminal window.
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 2;

    if (++$counter >= $max_requests)  {
        echo "Counter reached max requests $max_requests. Exiting\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "request:"; var_dump($req);
    echo "data:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Command:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Input headers:"; var_dump($req->getInputHeaders());
    echo "Output headers:"; var_dump($req->getOutputHeaders());

    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    echo "\n >> Reading input buffer ...\n";
    $buf = $req->getInputBuffer();
    while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
        echo $s, PHP_EOL;
    }
    echo "No more data in the buffer\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);

$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "custom data value");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Siehe auch

  • EventHttp::setDefaultCallback() - Sets default callback to handle requests that are not caught by specific callbacks


Sets default callback to handle requests that are not caught by specific callbacks

  • « EventHttp::setCallback
  • EventHttp::setMaxBodySize »
  • PHP Manual
  • EventHttp
  • Sets default callback to handle requests that are not caught by specific callbacks

EventHttp::setDefaultCallback

(PECL event >= 1.4.0-beta)

EventHttp::setDefaultCallback — Sets default callback to handle requests that are not caught by specific callbacks

Beschreibung

public EventHttp::setDefaultCallback ( string $cb , string $arg = ? ) : void

Sets default callback to handle requests that are not caught by specific callbacks

Parameter-Liste

cb

The callback callable . It should match the following prototype:

callback ( EventHttpRequest $req = NULL , mixed $arg = NULL ) : void

req

EventHttpRequest object.

arg

Custom data.

arg

User custom data passed to the callback.

Rückgabewerte

Returns true on success. Otherwise false.

Beispiele

Beispiel #1 EventHttp::setDefaultCallback() example

<?php
$base = new EventBase();
$http = new EventHttp($base);

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$http->bind("127.0.0.1", 8088)) {
    exit("bind(1) failed\n");
};

$http->setDefaultCallback(function($req) {
    echo "URI: ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
});

$base->dispatch();
?>

Siehe auch

  • EventHttp::setCallback() - Sets a callback for specified URI


Sets maximum request body size

  • « EventHttp::setDefaultCallback
  • EventHttp::setMaxHeadersSize »
  • PHP Manual
  • EventHttp
  • Sets maximum request body size

EventHttp::setMaxBodySize

(PECL event >= 1.4.0-beta)

EventHttp::setMaxBodySize — Sets maximum request body size

Beschreibung

public EventHttp::setMaxBodySize ( int $value ) : void

Sets maximum request body size.

Parameter-Liste

value

The body size in bytes.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventHttp::setMaxHeadersSize() - Sets maximum HTTP header size


Sets maximum HTTP header size

  • « EventHttp::setMaxBodySize
  • EventHttp::setTimeout »
  • PHP Manual
  • EventHttp
  • Sets maximum HTTP header size

EventHttp::setMaxHeadersSize

(PECL event >= 1.4.0-beta)

EventHttp::setMaxHeadersSize — Sets maximum HTTP header size

Beschreibung

public EventHttp::setMaxHeadersSize ( int $value ) : void

Sets maximum HTTP header size.

Parameter-Liste

value

The header size in bytes.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventHttp::setMaxHeadersSize()


Sets the timeout for an HTTP request

  • « EventHttp::setMaxHeadersSize
  • EventHttpConnection »
  • PHP Manual
  • EventHttp
  • Sets the timeout for an HTTP request

EventHttp::setTimeout

(PECL event >= 1.4.0-beta)

EventHttp::setTimeout — Sets the timeout for an HTTP request

Beschreibung

public EventHttp::setTimeout ( int $value ) : void

Sets the timeout for an HTTP request.

Parameter-Liste

value

The timeout in seconds.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The EventHttpConnection class

(PECL event >= 1.4.0-beta)

Einführung

Represents an HTTP connection.

Klassenbeschreibung

EventHttpConnection {
/* Methoden */
public __construct ( EventBase $base , EventDnsBase $dns_base , string $address , int $port , EventSslContext $ctx = null )
public getBase ( ) : EventBase
public getPeer ( string &$address , int &$port ) : void
public makeRequest ( EventHttpRequest $req , int $type , string $uri ) : bool
public setCloseCallback ( callable $callback , mixed $data = ? ) : void
public setLocalAddress ( string $address ) : void
public setLocalPort ( int $port ) : void
public setMaxBodySize ( string $max_size ) : void
public setMaxHeadersSize ( string $max_size ) : void
public setRetries ( int $retries ) : void
public setTimeout ( int $timeout ) : void
}

Inhaltsverzeichnis

  • EventHttpConnection::__construct — Constructs EventHttpConnection object
  • EventHttpConnection::getBase — Returns event base associated with the connection
  • EventHttpConnection::getPeer — Gets the remote address and port associated with the connection
  • EventHttpConnection::makeRequest — Makes an HTTP request over the specified connection
  • EventHttpConnection::setCloseCallback — Set callback for connection close
  • EventHttpConnection::setLocalAddress — Sets the IP address from which HTTP connections are made
  • EventHttpConnection::setLocalPort — Sets the local port from which connections are made
  • EventHttpConnection::setMaxBodySize — Sets maximum body size for the connection
  • EventHttpConnection::setMaxHeadersSize — Sets maximum header size
  • EventHttpConnection::setRetries — Sets the retry limit for the connection
  • EventHttpConnection::setTimeout — Sets the timeout for the connection


Constructs EventHttpConnection object

  • « EventHttpConnection
  • EventHttpConnection::getBase »
  • PHP Manual
  • EventHttpConnection
  • Constructs EventHttpConnection object

EventHttpConnection::__construct

(PECL event >= 1.2.6-beta)

EventHttpConnection::__construct — Constructs EventHttpConnection object

Beschreibung

public EventHttpConnection::__construct ( EventBase $base , EventDnsBase $dns_base , string $address , int $port , EventSslContext $ctx = null )

Constructs EventHttpConnection object.

Parameter-Liste

base

Associated event base.

dns_base

If dns_base is null, hostname resolution will block.

address

The address to connect to.

port

The port to connect to.

ctx

EventSslContext class object. Enables OpenSSL.

Hinweis:

This parameter is available only if Event is compiled with OpenSSL support and only with Libevent 2.1.0-alpha and higher.

Rückgabewerte

Returns EventHttpConnection object.

Changelog

Version | Beschreibung
PECL event 1.9.0 | OpenSSL support (ctx) added.


Returns event base associated with the connection

  • « EventHttpConnection::__construct
  • EventHttpConnection::getPeer »
  • PHP Manual
  • EventHttpConnection
  • Returns event base associated with the connection

EventHttpConnection::getBase

(PECL event >= 1.2.6-beta)

EventHttpConnection::getBase — Returns event base associated with the connection

Beschreibung

public EventHttpConnection::getBase ( ) : EventBase

Returns event base associated with the connection.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

On success returns EventBase object associated with the connection. Otherwise false.


Gets the remote address and port associated with the connection

  • « EventHttpConnection::getBase
  • EventHttpConnection::makeRequest »
  • PHP Manual
  • EventHttpConnection
  • Gets the remote address and port associated with the connection

EventHttpConnection::getPeer

(PECL event >= 1.2.6-beta)

EventHttpConnection::getPeer — Gets the remote address and port associated with the connection

Beschreibung

public EventHttpConnection::getPeer ( string &$address , int &$port ) : void

Gets the remote address and port associated with the connection

Parameter-Liste

address

Address of the peer.

port

Port of the peer.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Makes an HTTP request over the specified connection

  • « EventHttpConnection::getPeer
  • EventHttpConnection::setCloseCallback »
  • PHP Manual
  • EventHttpConnection
  • Makes an HTTP request over the specified connection

EventHttpConnection::makeRequest

(PECL event >= 1.4.0-beta)

EventHttpConnection::makeRequest — Makes an HTTP request over the specified connection

Beschreibung

public EventHttpConnection::makeRequest ( EventHttpRequest $req , int $type , string $uri ) : bool

Makes an HTTP request over the specified connection. type is one of EventHttpRequest::CMD_* constants.

Parameter-Liste

req

The connection object over which to send the request.

type

One of EventHttpRequest::CMD_* constants .

uri

The URI associated with the request.

Rückgabewerte

Returns true on success. Otherwise false.

Beispiele

Beispiel #1 EventHttpConnection::makeRequest() example

<?php
function _request_handler($req, $base) {
    echo __FUNCTION__, PHP_EOL;

    if (is_null($req)) {
        echo "Timed out\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "Connection refused\n";
        } elseif ($response_code != 200) {
            echo "Unexpected response: $response_code\n";
        } else {
            echo "Success: $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Body:\n";
            while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo $s, PHP_EOL;
            }
        }
    }

    $base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

_request_handler
Success: 200
Body:
PHP, date:
2013-03-13T20:27:52+05:00

Siehe auch

  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Set callback for connection close

  • « EventHttpConnection::makeRequest
  • EventHttpConnection::setLocalAddress »
  • PHP Manual
  • EventHttpConnection
  • Set callback for connection close

EventHttpConnection::setCloseCallback

(PECL event >= 1.8.0)

EventHttpConnection::setCloseCallback — Set callback for connection close

Beschreibung

public EventHttpConnection::setCloseCallback ( callable $callback , mixed $data = ? ) : void

Sets callback for connection close.

Parameter-Liste

callback

Callback which is called when connection is closed. Should match the following prototype:

callback ( EventHttpConnection $conn = null , mixed $arg = null ) : void

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 EventHttpConnection::setCloseCallback() example

<?php
/*
 * Setting up close-connection callback
 *
 * The script handles closed connections using HTTP API.
 *
 * Usage:
 * 1) Launch the server:
 * $ php examples/http_closecb.php 4242
 *
 * 2) Launch a client in another terminal. Telnet-like
 * session should look like the following:
 *
 * $ nc -t 127.0.0.1 4242
 * GET / HTTP/1.0
 * Connection: close
 *
 * The server will output something similar to the following:
 *
 * HTTP/1.0 200 OK
 * Content-Type: multipart/x-mixed-replace;boundary=boundarydonotcross
 * Connection: close
 *
 * <html>
 *
 * 3) Terminate the client connection abruptly,
 * i.e. kill the process, or just press Ctrl-C.
 *
 * 4) Check if the server called _close_callback.
 * The script should output "_close_callback" string to standard output.
 *
 * 5) Check if the server's process has no orphaned connections,
 * e.g. with `lsof` utility.
 */

function _close_callback($conn)
{
    echo __FUNCTION__, PHP_EOL;
}

function _http_default($req, $dummy)
{
    $conn = $req->getConnection();
    $conn->setCloseCallback('_close_callback', NULL);

    /*
    By enabling Event::READ we protect the server against unclosed conections.
    This is a peculiarity of Libevent. The library disables Event::READ events
     on this connection, and the server is not notified about terminated
    connections.

    So each time client terminates connection abruptly, we get an orphaned
    connection. For instance, the following is a part of `lsof -p $PID | grep TCP`
    command after client has terminated connection:

    57-php     15057 ruslan  6u  unix 0xffff8802fb59c780   0t0  125187 socket
    58:php     15057 ruslan  7u  IPv4             125189   0t0     TCP *:4242 (LISTEN)
    59:php     15057 ruslan  8u  IPv4             124342   0t0     TCP localhost:4242->localhost:37375 (CLOSE_WAIT)

    where $PID is our process ID.

    The following block of code fixes such kind of orphaned connections.
     */
    $bev = $req->getBufferEvent();
    $bev->enable(Event::READ);
    // We have to free it explicitly. See
EventHttpRequest::getConnection()
$bev->free(); // we have to free it explicitly

    $req->addHeader(
        'Content-Type',
        'multipart/x-mixed-replace;boundary=boundarydonotcross',
        EventHttpRequest::OUTPUT_HEADER
    );

    $buf = new EventBuffer();
    $buf->add('<html>');

    $req->sendReply(200, "OK");
    $req->sendReplyChunk($buf);
}

$port = 4242;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);

$http->setDefaultCallback("_http_default", NULL);
$http->bind("0.0.0.0", $port);
$base->loop();

?>


Sets the IP address from which HTTP connections are made

  • « EventHttpConnection::setCloseCallback
  • EventHttpConnection::setLocalPort »
  • PHP Manual
  • EventHttpConnection
  • Sets the IP address from which HTTP connections are made

EventHttpConnection::setLocalAddress

(PECL event >= 1.2.6-beta)

EventHttpConnection::setLocalAddress — Sets the IP address from which HTTP connections are made

Beschreibung

public EventHttpConnection::setLocalAddress ( string $address ) : void

Sets the IP address from which http connections are made.

Parameter-Liste

address

The IP address from which HTTP connections are made.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventHttpConnection::setLocalPort() - Sets the local port from which connections are made


Sets the local port from which connections are made

  • « EventHttpConnection::setLocalAddress
  • EventHttpConnection::setMaxBodySize »
  • PHP Manual
  • EventHttpConnection
  • Sets the local port from which connections are made

EventHttpConnection::setLocalPort

(PECL event >= 1.2.6-beta)

EventHttpConnection::setLocalPort — Sets the local port from which connections are made

Beschreibung

public EventHttpConnection::setLocalPort ( int $port ) : void

Sets the local port from which connections are made.

Parameter-Liste

port

The port number.

Rückgabewerte

Siehe auch

  • EventHttpConnection::setLocalAddress() - Sets the IP address from which HTTP connections are made


Sets maximum body size for the connection

  • « EventHttpConnection::setLocalPort
  • EventHttpConnection::setMaxHeadersSize »
  • PHP Manual
  • EventHttpConnection
  • Sets maximum body size for the connection

EventHttpConnection::setMaxBodySize

(PECL event >= 1.2.6-beta)

EventHttpConnection::setMaxBodySize — Sets maximum body size for the connection

Beschreibung

public EventHttpConnection::setMaxBodySize ( string $max_size ) : void

Sets maximum body size for the connection.

Parameter-Liste

max_size

The maximum body size in bytes.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventHttpConnection::setMaxHeadersSize() - Sets maximum header size


Sets maximum header size

  • « EventHttpConnection::setMaxBodySize
  • EventHttpConnection::setRetries »
  • PHP Manual
  • EventHttpConnection
  • Sets maximum header size

EventHttpConnection::setMaxHeadersSize

(PECL event >= 1.2.6-beta)

EventHttpConnection::setMaxHeadersSize — Sets maximum header size

Beschreibung

public EventHttpConnection::setMaxHeadersSize ( string $max_size ) : void

Sets maximum header size for the connection.

Parameter-Liste

max_size

The maximum header size in bytes.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventHttpConnection::setMaxBodySize() - Sets maximum body size for the connection


Sets the retry limit for the connection

  • « EventHttpConnection::setMaxHeadersSize
  • EventHttpConnection::setTimeout »
  • PHP Manual
  • EventHttpConnection
  • Sets the retry limit for the connection

EventHttpConnection::setRetries

(PECL event >= 1.2.6-beta)

EventHttpConnection::setRetries — Sets the retry limit for the connection

Beschreibung

public EventHttpConnection::setRetries ( int $retries ) : void

Sets the retry limit for the connection

Parameter-Liste

retries

The retry limit. -1 means infinity.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Sets the timeout for the connection

  • « EventHttpConnection::setRetries
  • EventHttpRequest »
  • PHP Manual
  • EventHttpConnection
  • Sets the timeout for the connection

EventHttpConnection::setTimeout

(PECL event >= 1.2.6-beta)

EventHttpConnection::setTimeout — Sets the timeout for the connection

Beschreibung

public EventHttpConnection::setTimeout ( int $timeout ) : void

Sets the timeout for the connection

Parameter-Liste

timeout

Timeout in seconds.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The EventHttpRequest class

(PECL event >= 1.4.0-beta)

Einführung

Represents an HTTP request.

Klassenbeschreibung

EventHttpRequest {
/* Constants */
const int CMD_GET = 1 ;
const int CMD_POST = 2 ;
const int CMD_HEAD = 4 ;
const int CMD_PUT = 8 ;
const int CMD_DELETE = 16 ;
const int CMD_OPTIONS = 32 ;
const int CMD_TRACE = 64 ;
const int CMD_CONNECT = 128 ;
const int CMD_PATCH = 256 ;
const int INPUT_HEADER = 1 ;
const int OUTPUT_HEADER = 2 ;
/* Methoden */
public addHeader ( string $key , string $value , int $type ) : bool
public cancel ( ) : void
public clearHeaders ( ) : void
public closeConnection ( ) : void
public __construct ( callable $callback , mixed $data = null )
public findHeader ( string $key , string $type ) : void
public free ( ) : void
public closeConnection ( ) : EventBufferEvent
public getCommand ( ) : void
public closeConnection ( ) : EventHttpConnection
public getHost ( ) : string
public getInputBuffer ( ) : EventBuffer
public getInputHeaders ( ) : array
public getOutputBuffer ( ) : EventBuffer
public getOutputHeaders ( ) : void
public getResponseCode ( ) : int
public getUri ( ) : string
public removeHeader ( string $key , string $type ) : void
public sendError ( int $error , string $reason = null ) : void
public sendReply ( int $code , string $reason , EventBuffer $buf = ? ) : void
public sendReplyChunk ( EventBuffer $buf ) : void
public sendReplyEnd ( ) : void
public sendReplyStart ( int $code , string $reason ) : void
}

Vordefinierte Konstanten

EventHttpRequest::CMD_GET

GET method(command)

EventHttpRequest::CMD_POST

POST method(command)

EventHttpRequest::CMD_HEAD

HEAD method(command)

EventHttpRequest::CMD_PUT

PUT method(command)

EventHttpRequest::CMD_DELETE

DELETE command(method)

EventHttpRequest::CMD_OPTIONS

OPTIONS method(command)

EventHttpRequest::CMD_TRACE

TRACE method(command)

EventHttpRequest::CMD_CONNECT

CONNECT method(command)

EventHttpRequest::CMD_PATCH

PATCH method(command)

EventHttpRequest::INPUT_HEADER

Request input header type.

EventHttpRequest::OUTPUT_HEADER

Request output header type.

Inhaltsverzeichnis

  • EventHttpRequest::addHeader — Adds an HTTP header to the headers of the request
  • EventHttpRequest::cancel — Cancels a pending HTTP request
  • EventHttpRequest::clearHeaders — Removes all output headers from the header list of the request
  • EventHttpRequest::closeConnection — Closes associated HTTP connection
  • EventHttpRequest::__construct — Constructs EventHttpRequest object
  • EventHttpRequest::findHeader — Finds the value belonging a header
  • EventHttpRequest::free — Frees the object and removes associated events
  • EventHttpRequest::getBufferEvent — Returns EventBufferEvent object
  • EventHttpRequest::getCommand — Returns the request command(method)
  • EventHttpRequest::getConnection — Returns EventHttpConnection object
  • EventHttpRequest::getHost — Returns the request host
  • EventHttpRequest::getInputBuffer — Returns the input buffer
  • EventHttpRequest::getInputHeaders — Returns associative array of the input headers
  • EventHttpRequest::getOutputBuffer — Returns the output buffer of the request
  • EventHttpRequest::getOutputHeaders — Returns associative array of the output headers
  • EventHttpRequest::getResponseCode — Returns the response code
  • EventHttpRequest::getUri — Returns the request URI
  • EventHttpRequest::removeHeader — Removes an HTTP header from the headers of the request
  • EventHttpRequest::sendError — Send an HTML error message to the client
  • EventHttpRequest::sendReply — Send an HTML reply to the client
  • EventHttpRequest::sendReplyChunk — Send another data chunk as part of an ongoing chunked reply
  • EventHttpRequest::sendReplyEnd — Complete a chunked reply, freeing the request as appropriate
  • EventHttpRequest::sendReplyStart — Initiate a chunked reply


Adds an HTTP header to the headers of the request

  • « EventHttpRequest
  • EventHttpRequest::cancel »
  • PHP Manual
  • EventHttpRequest
  • Adds an HTTP header to the headers of the request

EventHttpRequest::addHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::addHeader — Adds an HTTP header to the headers of the request

Beschreibung

public EventHttpRequest::addHeader ( string $key , string $value , int $type ) : bool

Adds an HTTP header to the headers of the request.

Parameter-Liste

key

Header name.

value

Header value.

type

One of EventHttpRequest::*_HEADER constants .

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventHttpRequest::removeHeader() - Removes an HTTP header from the headers of the request


Cancels a pending HTTP request

  • « EventHttpRequest::addHeader
  • EventHttpRequest::clearHeaders »
  • PHP Manual
  • EventHttpRequest
  • Cancels a pending HTTP request

EventHttpRequest::cancel

(PECL event >= 1.4.0-beta)

EventHttpRequest::cancel — Cancels a pending HTTP request

Beschreibung

public EventHttpRequest::cancel ( ) : void

Cancels a pending HTTP request.

Cancels an ongoing HTTP request. The callback associated with this request is not executed and the request object is freed. If the request is currently being processed, e.g. it is ongoing, the corresponding EventHttpConnection object is going to get reset.

A request cannot be canceled if its callback has executed already. A request may be canceled reentrantly from its chunked callback.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Removes all output headers from the header list of the request

  • « EventHttpRequest::cancel
  • EventHttpRequest::closeConnection »
  • PHP Manual
  • EventHttpRequest
  • Removes all output headers from the header list of the request

EventHttpRequest::clearHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::clearHeaders — Removes all output headers from the header list of the request

Beschreibung

public EventHttpRequest::clearHeaders ( ) : void

Removes all output headers from the header list of the request.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Closes associated HTTP connection

  • « EventHttpRequest::clearHeaders
  • EventHttpRequest::__construct »
  • PHP Manual
  • EventHttpRequest
  • Closes associated HTTP connection

EventHttpRequest::closeConnection

(PECL event >= 1.8.0)

EventHttpRequest::closeConnection — Closes associated HTTP connection

Beschreibung

public EventHttpRequest::closeConnection ( ) : void

Closes HTTP connection associated with the request.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Constructs EventHttpRequest object

  • « EventHttpRequest::closeConnection
  • EventHttpRequest::findHeader »
  • PHP Manual
  • EventHttpRequest
  • Constructs EventHttpRequest object

EventHttpRequest::__construct

(PECL event >= 1.4.0-beta)

EventHttpRequest::__construct — Constructs EventHttpRequest object

Beschreibung

public EventHttpRequest::__construct ( callable $callback , mixed $data = null )

Constructs EventHttpRequest object.

Parameter-Liste

callback

Gets invoked on requesting path. Should match the following prototype:

callback ( EventHttpRequest $req = null , mixed $arg = null ) : void
data

User custom data passed to the callback.

Rückgabewerte

Returns EventHttpRequest object.

Beispiele

Beispiel #1 EventHttpRequest::__construct() example

<?php

function _request_handler($req, $base) {
    echo __FUNCTION__, PHP_EOL;

    if (is_null($req)) {
        echo "Timed out\n";
    } else {
        $response_code = $req->getResponseCode();

        if ($response_code == 0) {
            echo "Connection refused\n";
        } elseif ($response_code != 200) {
            echo "Unexpected response: $response_code\n";
        } else {
            echo "Success: $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Body:\n";
            while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
                echo $s, PHP_EOL;
            }
        }
    }

    $base->exit(NULL);
}

$address = "127.0.0.1";
$port = 80;

$base = new EventBase();
$conn = new EventHttpConnection($base, NULL, $address, $port);
$conn->setTimeout(5);
$req = new EventHttpRequest("_request_handler", $base);

$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER);
$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER);
$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp");

$base->loop();
?>

Siehe auch

  • EventHttpRequest::cancel() - Cancels a pending HTTP request
  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Finds the value belonging a header

  • « EventHttpRequest::__construct
  • EventHttpRequest::free »
  • PHP Manual
  • EventHttpRequest
  • Finds the value belonging a header

EventHttpRequest::findHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::findHeader — Finds the value belonging a header

Beschreibung

public EventHttpRequest::findHeader ( string $key , string $type ) : void

Finds the value belonging a header.

Parameter-Liste

key

The header name.

type

One of EventHttpRequest::*_HEADER constants .

Rückgabewerte

Returns null if header not found.

Siehe auch

  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Frees the object and removes associated events

  • « EventHttpRequest::findHeader
  • EventHttpRequest::getBufferEvent »
  • PHP Manual
  • EventHttpRequest
  • Frees the object and removes associated events

EventHttpRequest::free

(PECL event >= 1.4.0-beta)

EventHttpRequest::free — Frees the object and removes associated events

Beschreibung

public EventHttpRequest::free ( ) : void

Frees the object and removes associated events.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Returns EventBufferEvent object

  • « EventHttpRequest::free
  • EventHttpRequest::getCommand »
  • PHP Manual
  • EventHttpRequest
  • Returns EventBufferEvent object

EventHttpRequest::getBufferEvent

(PECL event >= 1.8.0)

EventHttpRequest::getBufferEvent — Returns EventBufferEvent object

Beschreibung

public EventHttpRequest::closeConnection ( ) : EventBufferEvent

Returns EventBufferEvent object which represents buffer event that the connection is using.

Warnung

The reference counter of the returned object will be incremented by one to protect internal structures against premature destruction when the method is called from a user callback. So the EventBufferEvent object should be freed explicitly with EventBufferEvent::free() method. Otherwise memory will leak.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns EventBufferEvent object.

Siehe auch

  • EventHttpRequest::getConnection() - Returns EventHttpConnection object


Returns the request command(method)

  • « EventHttpRequest::getBufferEvent
  • EventHttpRequest::getConnection »
  • PHP Manual
  • EventHttpRequest
  • Returns the request command(method)

EventHttpRequest::getCommand

(PECL event >= 1.4.0-beta)

EventHttpRequest::getCommand — Returns the request command(method)

Beschreibung

public EventHttpRequest::getCommand ( ) : void

Returns the request command, one of EventHttpRequest::CMD_* constants.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the request command, one of EventHttpRequest::CMD_* constants.


Returns EventHttpConnection object

  • « EventHttpRequest::getCommand
  • EventHttpRequest::getHost »
  • PHP Manual
  • EventHttpRequest
  • Returns EventHttpConnection object

EventHttpRequest::getConnection

(PECL event >= 1.8.0)

EventHttpRequest::getConnection — Returns EventHttpConnection object

Beschreibung

public EventHttpRequest::closeConnection ( ) : EventHttpConnection

Returns EventHttpConnection object which represents HTTP connection associated with the request.

Warnung

Libevent API allows HTTP request objects to be not bound to any HTTP connection. Therefore we can't unambiguously associate EventHttpRequest with EventHttpConnection . Thus, we construct EventHttpConnection object on-the-fly. Having no information about the event base, DNS base and connection-close callback, we just leave these fields unset.

EventHttpRequest::getConnection() method is usually useful when we need to set up a callback on connection close. See EventHttpConnection::setCloseCallback() .

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns EventHttpConnection object.

Siehe auch

  • EventHttpConnection::setCloseCallback() - Set callback for connection close
  • EventHttpRequest::getBufferEvent() - Returns EventBufferEvent object


Returns the request host

  • « EventHttpRequest::getConnection
  • EventHttpRequest::getInputBuffer »
  • PHP Manual
  • EventHttpRequest
  • Returns the request host

EventHttpRequest::getHost

(PECL event >= 1.4.0-beta)

EventHttpRequest::getHost — Returns the request host

Beschreibung

public EventHttpRequest::getHost ( ) : string

Returns the request host.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the request host.

Siehe auch

  • EventHttpRequest::getUri() - Returns the request URI
  • EventHttpRequest::getCommand() - Returns the request command(method)


Returns the input buffer

  • « EventHttpRequest::getHost
  • EventHttpRequest::getInputHeaders »
  • PHP Manual
  • EventHttpRequest
  • Returns the input buffer

EventHttpRequest::getInputBuffer

(PECL event >= 1.4.0-beta)

EventHttpRequest::getInputBuffer — Returns the input buffer

Beschreibung

public EventHttpRequest::getInputBuffer ( ) : EventBuffer

Returns the input buffer.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the input buffer.

Siehe auch

  • EventHttpRequest::getOutputBuffer() - Returns the output buffer of the request


Returns associative array of the input headers

  • « EventHttpRequest::getInputBuffer
  • EventHttpRequest::getOutputBuffer »
  • PHP Manual
  • EventHttpRequest
  • Returns associative array of the input headers

EventHttpRequest::getInputHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::getInputHeaders — Returns associative array of the input headers

Beschreibung

public EventHttpRequest::getInputHeaders ( ) : array

Returns associative array of the input headers.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns associative array of the input headers.

Siehe auch

  • EventHttpRequest::getOutputHeaders() - Returns associative array of the output headers


Returns the output buffer of the request

  • « EventHttpRequest::getInputHeaders
  • EventHttpRequest::getOutputHeaders »
  • PHP Manual
  • EventHttpRequest
  • Returns the output buffer of the request

EventHttpRequest::getOutputBuffer

(PECL event >= 1.4.0-beta)

EventHttpRequest::getOutputBuffer — Returns the output buffer of the request

Beschreibung

public EventHttpRequest::getOutputBuffer ( ) : EventBuffer

Returns the output buffer of the request.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the output buffer of the request.

Siehe auch

  • EventHttpRequest::getInputBuffer() - Returns the input buffer


Returns associative array of the output headers

  • « EventHttpRequest::getOutputBuffer
  • EventHttpRequest::getResponseCode »
  • PHP Manual
  • EventHttpRequest
  • Returns associative array of the output headers

EventHttpRequest::getOutputHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::getOutputHeaders — Returns associative array of the output headers

Beschreibung

public EventHttpRequest::getOutputHeaders ( ) : void

Returns associative array of the output headers.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • EventHttpRequest::getInputHeaders() - Returns associative array of the input headers


Returns the response code

  • « EventHttpRequest::getOutputHeaders
  • EventHttpRequest::getUri »
  • PHP Manual
  • EventHttpRequest
  • Returns the response code

EventHttpRequest::getResponseCode

(PECL event >= 1.4.0-beta)

EventHttpRequest::getResponseCode — Returns the response code

Beschreibung

public EventHttpRequest::getResponseCode ( ) : int

Returns the response code.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the response code of the request.

Siehe auch

  • EventHttpRequest::getCommand() - Returns the request command(method)
  • EventHttpRequest::getHost() - Returns the request host
  • EventHttpRequest::getUri() - Returns the request URI


Returns the request URI

  • « EventHttpRequest::getResponseCode
  • EventHttpRequest::removeHeader »
  • PHP Manual
  • EventHttpRequest
  • Returns the request URI

EventHttpRequest::getUri

(PECL event >= 1.4.0-beta)

EventHttpRequest::getUri — Returns the request URI

Beschreibung

public EventHttpRequest::getUri ( ) : string

Returns the request URI

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the request URI

Siehe auch

  • EventHttpRequest::getCommand() - Returns the request command(method)
  • EventHttpRequest::getHost() - Returns the request host
  • EventHttpRequest::getResponseCode() - Returns the response code


Removes an HTTP header from the headers of the request

  • « EventHttpRequest::getUri
  • EventHttpRequest::sendError »
  • PHP Manual
  • EventHttpRequest
  • Removes an HTTP header from the headers of the request

EventHttpRequest::removeHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::removeHeader — Removes an HTTP header from the headers of the request

Beschreibung

public EventHttpRequest::removeHeader ( string $key , string $type ) : void

Removes an HTTP header from the headers of the request.

Parameter-Liste

key

The header name.

type

type is one of EventHttpRequest::*_HEADER constants.

Rückgabewerte

Removes an HTTP header from the headers of the request.

Siehe auch

  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Send an HTML error message to the client

  • « EventHttpRequest::removeHeader
  • EventHttpRequest::sendReply »
  • PHP Manual
  • EventHttpRequest
  • Send an HTML error message to the client

EventHttpRequest::sendError

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendError — Send an HTML error message to the client

Beschreibung

public EventHttpRequest::sendError ( int $error , string $reason = null ) : void

Send an HTML error message to the client.

Parameter-Liste

error

The HTTP error code.

reason

A brief explanation ofthe error. If null, the standard meaning of the error code will be used.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 EventHttpRequest::sendError() example

<?php
function _http_400($req) {
    $req->sendError(400);
}

$base = new EventBase();
$http = new EventHttp($base);

$http->setCallback("/err400", "_http_400");

$http->bind("0.0.0.0", 8010);
$base->loop();
?>

Siehe auch

  • EventHttpRequest::sendReply() - Send an HTML reply to the client


Send an HTML reply to the client

  • « EventHttpRequest::sendError
  • EventHttpRequest::sendReplyChunk »
  • PHP Manual
  • EventHttpRequest
  • Send an HTML reply to the client

EventHttpRequest::sendReply

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReply — Send an HTML reply to the client

Beschreibung

public EventHttpRequest::sendReply ( int $code , string $reason , EventBuffer $buf = ? ) : void

Send an HTML reply to the client. The body of the reply consists of data in optional buf parameter.

Parameter-Liste

code

The HTTP response code to send.

reason

A brief message to send with the response code.

buf

The body of the response.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventHttpRequest::sendError() - Send an HTML error message to the client
  • EventHttpRequest::sendReplyChunk() - Send another data chunk as part of an ongoing chunked reply


Send another data chunk as part of an ongoing chunked reply

  • « EventHttpRequest::sendReply
  • EventHttpRequest::sendReplyEnd »
  • PHP Manual
  • EventHttpRequest
  • Send another data chunk as part of an ongoing chunked reply

EventHttpRequest::sendReplyChunk

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyChunk — Send another data chunk as part of an ongoing chunked reply

Beschreibung

public EventHttpRequest::sendReplyChunk ( EventBuffer $buf ) : void

Send another data chunk as part of an ongoing chunked reply. After calling this method buf will be empty.

Parameter-Liste

buf

The data chunk to send as part of the reply.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventHttpRequest::sendReplyStart() - Initiate a chunked reply
  • EventHttpRequest::sendReplyEnd() - Complete a chunked reply, freeing the request as appropriate


Complete a chunked reply, freeing the request as appropriate

  • « EventHttpRequest::sendReplyChunk
  • EventHttpRequest::sendReplyStart »
  • PHP Manual
  • EventHttpRequest
  • Complete a chunked reply, freeing the request as appropriate

EventHttpRequest::sendReplyEnd

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyEnd — Complete a chunked reply, freeing the request as appropriate

Beschreibung

public EventHttpRequest::sendReplyEnd ( ) : void

Complete a chunked reply, freeing the request as appropriate.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventHttpRequest::sendReplyStart() - Initiate a chunked reply
  • EventHttpRequest::sendReplyChunk() - Send another data chunk as part of an ongoing chunked reply


Initiate a chunked reply

  • « EventHttpRequest::sendReplyEnd
  • EventListener »
  • PHP Manual
  • EventHttpRequest
  • Initiate a chunked reply

EventHttpRequest::sendReplyStart

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyStart — Initiate a chunked reply

Beschreibung

public EventHttpRequest::sendReplyStart ( int $code , string $reason ) : void

Initiate a reply that uses Transfer-Encoding chunked .

This allows the caller to stream the reply back to the client and is useful when either not all of the reply data is immediately available or when sending very large replies.

The caller needs to supply data chunks with EventHttpRequest::sendReplyChunk() and complete the reply by calling EventHttpRequest::sendReplyEnd() .

Parameter-Liste

code

The HTTP response code to send.

reason

A brief message to send with the response code.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • EventHttpRequest::sendReplyChunk() - Send another data chunk as part of an ongoing chunked reply
  • EventHttpRequest::sendReplyEnd() - Complete a chunked reply, freeing the request as appropriate


The EventListener class

(PECL event >= 1.5.0)

Einführung

Represents a connection listener.

Klassenbeschreibung

final EventListener {
/* Constants */
const int OPT_LEAVE_SOCKETS_BLOCKING = 1 ;
const int OPT_CLOSE_ON_FREE = 2 ;
const int OPT_CLOSE_ON_EXEC = 4 ;
const int OPT_REUSEABLE = 8 ;
const int OPT_THREADSAFE = 16 ;
/* Eigenschaften */
public readonly int $fd ;
/* Methoden */
public __construct ( EventBase $base , callable $cb , mixed $data , int $flags , int $backlog , mixed $target )
public disable ( ) : bool
public enable ( ) : bool
public getBase ( ) : void
public static getSocketName ( string &$address , mixed &$port = ? ) : bool
public setCallback ( callable $cb , mixed $arg = null ) : void
public setErrorCallback ( string $cb ) : void
}

Eigenschaften

fd

Numeric file descriptor of the underlying socket. (Added in event-1.6.0 .)

Vordefinierte Konstanten

EventListener::OPT_LEAVE_SOCKETS_BLOCKING

By default Libevent turns underlying file descriptors, or sockets, to non-blocking mode. This flag tells Libevent to leave them in blocking mode.

EventListener::OPT_CLOSE_ON_FREE

If this option is set, the connection listener closes its underlying socket when the EventListener object is freed.

EventListener::OPT_CLOSE_ON_EXEC

If this option is set, the connection listener sets the close-on-exec flag on the underlying listener socket. See platform documentation for fcntl and FD_CLOEXEC for more information.

EventListener::OPT_REUSEABLE

By default on some platforms, once a listener socket is closed, no other socket can bind to the same port until a while has passed. Setting this option makes Libevent mark the socket as reusable, so that once it is closed, another socket can be opened to listen on the same port.

EventListener::OPT_THREADSAFE

Allocate locks for the listener, so that it’s safe to use it from multiple threads.

Inhaltsverzeichnis

  • EventListener::__construct — Creates new connection listener associated with an event base
  • EventListener::disable — Disables an event connect listener object
  • EventListener::enable — Enables an event connect listener object
  • EventListener::getBase — Returns event base associated with the event listener
  • EventListener::getSocketName — Retreives the current address to which the listener's socket is bound
  • EventListener::setCallback — The setCallback purpose
  • EventListener::setErrorCallback — Set event listener's error callback


Creates new connection listener associated with an event base

  • « EventListener
  • EventListener::disable »
  • PHP Manual
  • EventListener
  • Creates new connection listener associated with an event base

EventListener::__construct

(PECL event >= 1.2.6-beta)

EventListener::__construct — Creates new connection listener associated with an event base

Beschreibung

public EventListener::__construct ( EventBase $base , callable $cb , mixed $data , int $flags , int $backlog , mixed $target )

Creates new connection listener associated with an event base.

Parameter-Liste

base

Associated event base.

cb

A callable that will be invoked when new connection received.

data

Custom user data attached to cb .

flags

Bit mask of EventListener::OPT_* constants. See EventListener constants .

backlog

Controls the maximum number of pending connections that the network stack should allow to wait in a not-yet-accepted state at any time; see documentation for your system’s listen function for more details. If backlog is negative, Libevent tries to pick a good value for the backlog ; if it is zero, Event assumes that listen is already called on the socket( target )

target

May be string, socket resource, or a stream associated with a socket. In case if target is a string, the string will be parsed as network address. It will be interpreted as a UNIX domain socket path, if prefixed with 'unix:' , e.g. 'unix:/tmp/my.sock' .

Rückgabewerte

Returns EventListener object representing the event connection listener.

Changelog

Version | Beschreibung
PECL event 1.5.0 | UNIX domain sockets' support added.

Beispiele

Beispiel #1 EventListener::__construct() example

<?php
/*
 * Simple echo server based on libevent's connection listener.
 *
 * Usage:
 * 1) In one terminal window run:
 *
 * $ php listener.php 9881
 *
 * 2) In another terminal window open up connection, e.g.:
 *
 * $ nc 127.0.0.1 9881
 *
 * 3) start typing. The server should repeat the input.
 */

class MyListenerConnection {
    private $bev, $base;

    public function __destruct() {
        $this->bev->free();
    }

    public function __construct($base, $fd) {
        $this->base = $base;

        $this->bev = new EventBufferEvent($base, $fd, EventBufferEvent::OPT_CLOSE_ON_FREE);

        $this->bev->setCallbacks(array($this, "echoReadCallback"), NULL,
            array($this, "echoEventCallback"), NULL);

        if (!$this->bev->enable(Event::READ)) {
            echo "Failed to enable READ\n";
            return;
        }
    }

    public function echoReadCallback($bev, $ctx) {
        // Copy all the data from the input buffer to the output buffer

        // Variant #1
        $bev->output->addBuffer($bev->input);

        /* Variant #2 */
        /*
        $input    = $bev->getInput();
        $output = $bev->getOutput();
        $output->addBuffer($input);
        */
    }

    public function echoEventCallback($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Error from bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            //$bev->free();
            $this->__destruct();
        }
    }
}

class MyListener {
    public $base,
        $listener,
        $socket;
    private $conn = array();

    public function __destruct() {
        foreach ($this->conn as &$c) $c = NULL;
    }

    public function __construct($port) {
        $this->base = new EventBase();
        if (!$this->base) {
            echo "Couldn't open event base";
            exit(1);
        }

        // Variant #1
        /*
        $this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        if (!socket_bind($this->socket, '0.0.0.0', $port)) {
            echo "Unable to bind socket\n";
            exit(1);
        }
        $this->listener = new EventListener($this->base,
            array($this, "acceptConnCallback"), $this->base,
            EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE,
            -1, $this->socket);
         */

        // Variant #2
         $this->listener = new EventListener($this->base,
             array($this, "acceptConnCallback"), $this->base,
             EventListener::OPT_CLOSE_ON_FREE | EventListener::OPT_REUSEABLE, -1,
             "0.0.0.0:$port");

        if (!$this->listener) {
            echo "Couldn't create listener";
            exit(1);
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }

    public function dispatch() {
        $this->base->dispatch();
    }

    // This callback is invoked when there is data to read on $bev
    public function acceptConnCallback($listener, $fd, $address, $ctx) {
        // We got a new connection! Set up a bufferevent for it. */
        $base = $this->base;
        $this->conn[] = new MyListenerConnection($base, $fd);
    }

    public function accept_error_cb($listener, $ctx) {
        $base = $this->base;

        fprintf(STDERR, "Got an error %d (%s) on the listener. "
            ."Shutting down.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $base->exit(NULL);
    }
}

$port = 9808;

if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$l = new MyListener($port);
$l->dispatch();
?>


Disables an event connect listener object

  • « EventListener::__construct
  • EventListener::enable »
  • PHP Manual
  • EventListener
  • Disables an event connect listener object

EventListener::disable

(PECL event >= 1.2.6-beta)

EventListener::disable — Disables an event connect listener object

Beschreibung

public EventListener::disable ( ) : bool

Disables an event connect listener object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventListener::enable() - Enables an event connect listener object


Enables an event connect listener object

  • « EventListener::disable
  • EventListener::getBase »
  • PHP Manual
  • EventListener
  • Enables an event connect listener object

EventListener::enable

(PECL event >= 1.2.6-beta)

EventListener::enable — Enables an event connect listener object

Beschreibung

public EventListener::enable ( ) : bool

Enables an event connect listener object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • EventListener::disable() - Disables an event connect listener object


Returns event base associated with the event listener

  • « EventListener::enable
  • EventListener::getSocketName »
  • PHP Manual
  • EventListener
  • Returns event base associated with the event listener

EventListener::getBase

(PECL event >= 1.2.6-beta)

EventListener::getBase — Returns event base associated with the event listener

Beschreibung

public EventListener::getBase ( ) : void

Returns event base associated with the event listener.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns event base associated with the event listener.


Retreives the current address to which the listener's socket is bound

  • « EventListener::getBase
  • EventListener::setCallback »
  • PHP Manual
  • EventListener
  • Retreives the current address to which the listener's socket is bound

EventListener::getSocketName

(PECL event >= 1.5.0)

EventListener::getSocketName — Retreives the current address to which the listener's socket is bound

Beschreibung

public static EventListener::getSocketName ( string &$address , mixed &$port = ? ) : bool

Retreives the current address to which the listener's socket is bound.

Parameter-Liste

address

Output parameter. IP-address depending on the socket address family.

port

Output parameter. The port the socket is bound to.

Rückgabewerte

Returns true on success. Otherwise false.


The setCallback purpose

  • « EventListener::getSocketName
  • EventListener::setErrorCallback »
  • PHP Manual
  • EventListener
  • The setCallback purpose

EventListener::setCallback

(PECL event >= 1.2.6-beta)

EventListener::setCallback — The setCallback purpose

Beschreibung

public EventListener::setCallback ( callable $cb , mixed $arg = null ) : void

Adjust event connect listener's callback and optionally the callback argument.

Parameter-Liste

cb

The new callback for new connections. Ignored if null.

Should match the following prototype:

callback ( EventListener $listener = null , mixed $fd = null , array $address = null , mixed $arg = null ) : void

listener

The EventListener object.

fd

The file descriptor or a resource associated with the listener.

address

Array of two elements: IP address and the server port.

arg

User custom data attached to the callback.

arg

Custom user data attached to the callback. Ignored if null.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Set event listener's error callback

  • « EventListener::setCallback
  • EventSslContext »
  • PHP Manual
  • EventListener
  • Set event listener's error callback

EventListener::setErrorCallback

(PECL event >= 1.2.6-beta)

EventListener::setErrorCallback — Set event listener's error callback

Beschreibung

public EventListener::setErrorCallback ( string $cb ) : void

Set event listener's error callback

Parameter-Liste

cb

The error callback. Should match the following prototype:

callback ( EventListener $listener = null , mixed $data = null ) : void

listener

The EventListener object.

data

User custom data attached to the callback.

Rückgabewerte

Siehe auch

  • EventListener::setCallback() - The setCallback purpose


The EventSslContext class

(PECL event >= 1.2.6-beta)

Einführung

Represents SSL_CTX structure. Provides methods and properties to configure the SSL context.

Klassenbeschreibung

final EventSslContext {
/* Constants */
const int SSLv2_CLIENT_METHOD = 1 ;
const int SSLv3_CLIENT_METHOD = 2 ;
const int SSLv23_CLIENT_METHOD = 3 ;
const int TLS_CLIENT_METHOD = 4 ;
const int SSLv2_SERVER_METHOD = 5 ;
const int SSLv3_SERVER_METHOD = 6 ;
const int SSLv23_SERVER_METHOD = 7 ;
const int TLS_SERVER_METHOD = 8 ;
const int OPT_LOCAL_CERT = 1 ;
const int OPT_LOCAL_PK = 2 ;
const int OPT_PASSPHRASE = 3 ;
const int OPT_CA_FILE = 4 ;
const int OPT_CA_PATH = 5 ;
const int OPT_ALLOW_SELF_SIGNED = 6 ;
const int OPT_VERIFY_PEER = 7 ;
const int OPT_VERIFY_DEPTH = 8 ;
const int OPT_CIPHERS = 9 ;
/* Eigenschaften */
public string $local_cert ;
public string $local_pk ;
/* Methoden */
public __construct ( string $method , string $options )
}

Eigenschaften

local_cert

Path to local certificate file on filesystem. It must be a PEM-encoded file which contains certificate. It can optionally contain the certificate chain of issuers.

local_pk

Path to local private key file

Vordefinierte Konstanten

EventSslContext::SSLv2_CLIENT_METHOD

SSLv2 client method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv3_CLIENT_METHOD

SSLv3 client method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv23_CLIENT_METHOD

SSLv23 client method. See SSL_CTX_new(3) man page.

EventSslContext::TLS_CLIENT_METHOD

TLS client method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv2_SERVER_METHOD

SSLv2 server method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv3_SERVER_METHOD

SSLv3 server method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv23_SERVER_METHOD

SSLv23 server method. See SSL_CTX_new(3) man page.

EventSslContext::TLS_SERVER_METHOD

TLS server method. See SSL_CTX_new(3) man page.

EventSslContext::OPT_LOCAL_CERT

Key for an item of the options' array used in EventSslContext::__construct() . The option points to path of local certificate.

EventSslContext::OPT_LOCAL_PK

Key for an item of the options' array used in EventSslContext::__construct() . The option points to path of the private key.

EventSslContext::OPT_PASSPHRASE

Key for an item of the options' array used in EventSslContext::__construct() . Represents passphrase of the certificate.

EventSslContext::OPT_CA_FILE

Key for an item of the options' array used in EventSslContext::__construct() . Represents path of the certificate authority file.

EventSslContext::OPT_CA_PATH

Key for an item of the options' array used in EventSslContext::__construct() . Represents path where the certificate authority file should be searched for.

EventSslContext::OPT_ALLOW_SELF_SIGNED

Key for an item of the options' array used in EventSslContext::__construct() . Represents option that allows self-signed certificates.

EventSslContext::OPT_VERIFY_PEER

Key for an item of the options' array used in EventSslContext::__construct() . Represents option that tells Event to verify peer.

EventSslContext::OPT_VERIFY_DEPTH

Key for an item of the options' array used in EventSslContext::__construct() . Represents maximum depth for the certificate chain verification that shall be allowed for the SSL context.

EventSslContext::OPT_CIPHERS

Key for an item of the options' array used in EventSslContext::__construct() . Represents the cipher list for the SSL context.

Inhaltsverzeichnis

  • EventSslContext::__construct — Constructs an OpenSSL context for use with Event classes


Constructs an OpenSSL context for use with Event classes

  • « EventSslContext
  • EventUtil »
  • PHP Manual
  • EventSslContext
  • Constructs an OpenSSL context for use with Event classes

EventSslContext::__construct

(PECL event >= 1.2.6-beta)

EventSslContext::__construct — Constructs an OpenSSL context for use with Event classes

Beschreibung

public EventSslContext::__construct ( string $method , string $options )

Creates SSL context holding pointer to SSL_CTX (see the system manual).

Parameter-Liste

method

One of EventSslContext::*_METHOD constants .

options

Associative array of SSL context options One of EventSslContext::OPT_* constants .

Rückgabewerte

Returns EventSslContext object.

Beispiele

Beispiel #1 EventSslContext::__construct() example

<?php
$ctx = new EventSslContext(EventSslContext::SSLv3_SERVER_METHOD, array(
     EventSslContext::OPT_LOCAL_CERT        => $local_cert,
     EventSslContext::OPT_LOCAL_PK          => $local_pk,
     EventSslContext::OPT_PASSPHRASE        => "echo server",
     EventSslContext::OPT_VERIFY_PEER       => true,
     EventSslContext::OPT_ALLOW_SELF_SIGNED => false,
));
?>


The EventUtil class

(PECL event >= 1.5.0)

Einführung

EventUtil is a singleton with supplimentary methods and constants.

Klassenbeschreibung

final EventUtil {
/* Constants */
const int AF_INET = 2 ;
const int AF_INET6 = 10 ;
const int AF_UNSPEC = 0 ;
const int LIBEVENT_VERSION_NUMBER = 33559808 ;
const int SO_DEBUG = 1 ;
const int SO_REUSEADDR = 2 ;
const int SO_KEEPALIVE = 9 ;
const int SO_DONTROUTE = 5 ;
const int SO_LINGER = 13 ;
const int SO_BROADCAST = 6 ;
const int SO_OOBINLINE = 10 ;
const int SO_SNDBUF = 7 ;
const int SO_RCVBUF = 8 ;
const int SO_SNDLOWAT = 19 ;
const int SO_RCVLOWAT = 18 ;
const int SO_SNDTIMEO = 21 ;
const int SO_RCVTIMEO = 20 ;
const int SO_TYPE = 3 ;
const int SO_ERROR = 4 ;
const int SOL_SOCKET = 1 ;
const int SOL_TCP = 6 ;
const int SOL_UDP = 17 ;
const int IPPROTO_IP = 0 ;
const int IPPROTO_IPV6 = 41 ;
/* Methoden */
abstract public __construct ( )
public static getLastSocketErrno ( mixed $socket = null ) : int
public static getLastSocketError ( mixed $socket = ? ) : string
public static getSocketFd ( mixed $socket ) : int
public static getSocketName ( mixed $socket , string &$address , mixed &$port = ? ) : bool
public static setSocketOption ( mixed $socket , int $level , int $optname , mixed $optval ) : bool
public static sslRandPoll ( ) : void
}

Vordefinierte Konstanten

EventUtil::AF_INET

IPv4 address family

EventUtil::AF_INET6

IPv6 address family

EventUtil::AF_UNSPEC

Unspecified IP address family

EventUtil::SO_DEBUG

Socket option. Enable socket debugging. Only allowed for processes with the CAP_NET_ADMIN capability or an effective user ID of 0 . (Added in event-1.6.0.)

EventUtil::SO_REUSEADDR

Socket option. Indicates that the rules used in validating addresses supplied in a bind(2) call should allow reuse of local addresses. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_KEEPALIVE

Socket option. Enable sending of keep-alive messages on connection-oriented sockets. Expects an integer boolean flag. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_DONTROUTE

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_LINGER

Socket option. When enabled, a close(2) or shutdown(2) will not return until all queued messages for the socket have been successfully sent or the linger timeout has been reached. Otherwise, the call returns immediately and the closing is done in the background. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_BROADCAST

Socket option. Reports whether transmission of broadcast messages is supported. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_OOBINLINE

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_SNDBUF

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_RCVBUF

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_SNDLOWAT

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_RCVLOWAT

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_SNDTIMEO

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_RCVTIMEO

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_TYPE

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_ERROR

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SOL_SOCKET

Socket option level. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SOL_TCP

Socket option level. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SOL_UDP

Socket option level. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::IPPROTO_IP

See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::IPPROTO_IPV6

See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::LIBEVENT_VERSION_NUMBER

Libevent' version number at the time when Event extension had been compiled with the library.

Inhaltsverzeichnis

  • EventUtil::__construct — The abstract constructor
  • EventUtil::getLastSocketErrno — Returns the most recent socket error number
  • EventUtil::getLastSocketError — Returns the most recent socket error
  • EventUtil::getSocketFd — Returns numeric file descriptor of a socket, or stream
  • EventUtil::getSocketName — Retreives the current address to which the socket is bound
  • EventUtil::setSocketOption — Sets socket options
  • EventUtil::sslRandPoll — Generates entropy by means of OpenSSL's RAND_poll()


The abstract constructor

  • « EventUtil
  • EventUtil::getLastSocketErrno »
  • PHP Manual
  • EventUtil
  • The abstract constructor

EventUtil::__construct

(PECL event >= 1.2.6-beta)

EventUtil::__construct — The abstract constructor

Beschreibung

abstract public EventUtil::__construct ( )

EventUtil is a singleton. Therefore the constructor is abstract, and it is impossible to create objects based on this class.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Returns the most recent socket error number

  • « EventUtil::__construct
  • EventUtil::getLastSocketError »
  • PHP Manual
  • EventUtil
  • Returns the most recent socket error number

EventUtil::getLastSocketErrno

(PECL event >= 1.2.6-beta)

EventUtil::getLastSocketErrno — Returns the most recent socket error number

Beschreibung

public static EventUtil::getLastSocketErrno ( mixed $socket = null ) : int

Returns the most recent socket error number( errno ).

Parameter-Liste

socket

Socket resource, stream or a file descriptor of a socket.

Rückgabewerte

Returns the most recent socket error number( errno ).

Siehe auch

  • EventUtil::getLastSocketError() - Returns the most recent socket error


Returns the most recent socket error

  • « EventUtil::getLastSocketErrno
  • EventUtil::getSocketFd »
  • PHP Manual
  • EventUtil
  • Returns the most recent socket error

EventUtil::getLastSocketError

(PECL event >= 1.2.6-beta)

EventUtil::getLastSocketError — Returns the most recent socket error

Beschreibung

public static EventUtil::getLastSocketError ( mixed $socket = ? ) : string

Returns the most recent socket error.

Parameter-Liste

socket

Socket resource, stream or a file descriptor of a socket.

Rückgabewerte

Returns the most recent socket error.

Siehe auch

  • EventUtil::getLastSocketErrno() - Returns the most recent socket error number


Returns numeric file descriptor of a socket, or stream

  • « EventUtil::getLastSocketError
  • EventUtil::getSocketName »
  • PHP Manual
  • EventUtil
  • Returns numeric file descriptor of a socket, or stream

EventUtil::getSocketFd

(PECL event >= 1.7.0)

EventUtil::getSocketFd — Returns numeric file descriptor of a socket, or stream

Beschreibung

public static EventUtil::getSocketFd ( mixed $socket ) : int

Returns numeric file descriptor of a socket or stream specified by socket argument just like the Event extension does it internally for all methods accepting socket resource or stream.

Parameter-Liste

socket

Socket resource or stream.

Rückgabewerte

Returns numeric file descriptor of a socket, or stream. EventUtil::getSocketFd() returns false in case if it is whether failed to recognize the type of the underlying file, or detected that the file descriptor associated with socket is not valid.


Retreives the current address to which the socket is bound

  • « EventUtil::getSocketFd
  • EventUtil::setSocketOption »
  • PHP Manual
  • EventUtil
  • Retreives the current address to which the socket is bound

EventUtil::getSocketName

(PECL event >= 1.5.0)

EventUtil::getSocketName — Retreives the current address to which the socket is bound

Beschreibung

public static EventUtil::getSocketName ( mixed $socket , string &$address , mixed &$port = ? ) : bool

Retreives the current address to which the socket is bound.

Parameter-Liste

socket

Socket resource, stream or a file descriptor of a socket.

address

Output parameter. IP-address, or the UNIX domain socket path depending on the socket address family.

port

Output parameter. The port the socket is bound to. Has no meaning for UNIX domain sockets.

Rückgabewerte

Returns true on success. Otherwise false.


Sets socket options

  • « EventUtil::getSocketName
  • EventUtil::sslRandPoll »
  • PHP Manual
  • EventUtil
  • Sets socket options

EventUtil::setSocketOption

(PECL event >= 1.6.0)

EventUtil::setSocketOption — Sets socket options

Beschreibung

public static EventUtil::setSocketOption ( mixed $socket , int $level , int $optname , mixed $optval ) : bool

Sets socket options.

Parameter-Liste

socket

Socket resource, stream, or numeric file descriptor associated with the socket.

level

One of EventUtil::SOL_* constants. Specifies the protocol level at which the option resides. For example, to retrieve options at the socket level, a level parameter of EventUtil::SOL_SOCKET would be used. Other levels, such as TCP, can be used by specifying the protocol number of that level. Protocol numbers can be found by using the getprotobyname() function. See EventUtil constants .

optname

Option name(type). Has the same meaning as corresponding parameter of socket_get_option() function. See EventUtil constants .

optval

Accepts the same values as optval parameter of the socket_get_option() function.

Rückgabewerte

Returns true on success. Otherwise false.

Siehe auch

  • socket_get_option() - Liefert die Socket-Optionen für einen Socket
  • socket_set_option() - Setzt die Optionen für einen Socket


Generates entropy by means of OpenSSL's RAND_poll()

  • « EventUtil::setSocketOption
  • FTP »
  • PHP Manual
  • EventUtil
  • Generates entropy by means of OpenSSL's RAND_poll()

EventUtil::sslRandPoll

(PECL event >= 1.2.6-beta)

EventUtil::sslRandPoll — Generates entropy by means of OpenSSL's RAND_poll()

Beschreibung

public static EventUtil::sslRandPoll ( ) : void

Generates entropy by means of OpenSSL's RAND_poll() (see the system manual).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


FTP

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Allgemeine Verwendung
  • FTP-Funktionen
    • ftp_alloc — Reserviert Platz für eine hochzuladende Datei
    • ftp_append — Append the contents of a file to another file on the FTP server
    • ftp_cdup — Wechselt in das darüberliegende Verzeichnis
    • ftp_chdir — Verzeichnis-Wechsel auf einem FTP-Server
    • ftp_chmod — Ändert die Zugriffsrechte einer Datei über FTP
    • ftp_close — Schließt eine FTP-Verbindung
    • ftp_connect — Stellt eine FTP-Verbindung her
    • ftp_delete — Löscht eine Datei auf dem FTP-Server
    • ftp_exec — Fordert die Ausführung eines Programmes auf dem FTP-Server an
    • ftp_fget — Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete Datei
    • ftp_fput — Überträgt eine geöffnete Datei auf einen FTP-Server
    • ftp_get_option — Ruft diverse Laufzeitoptionen des angegebenen FTP-Streams ab
    • ftp_get — Lädt eine Datei von einem FTP-Server herunter
    • ftp_login — Anmelden einer FTP-Verbindung (Login)
    • ftp_mdtm — Gibt den Zeitpunkt der letzten Änderung der angegebenen Datei zurück
    • ftp_mkdir — Erzeugt ein Verzeichnis
    • ftp_mlsd — Returns a list of files in the given directory
    • ftp_nb_continue — Nimmt die Übertragung einer Datei wieder auf (nicht-blockierend)
    • ftp_nb_fget — Lädt eine Datei vom FTP-Server und schreibt sie in eine lokale Datei (nicht-blockierend)
    • ftp_nb_fput — Speichert eine geöffnete Datei auf den FTP-Server (nicht blockierend)
    • ftp_nb_get — Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)
    • ftp_nb_put — Speichert eine Datei auf dem FTP-Server (nicht-blockierend)
    • ftp_nlist — Gibt eine Liste der im angegebenen Verzeichnis enthaltenen Dateien zurück
    • ftp_pasv — Schaltet den passiven Modus ein oder aus
    • ftp_put — Lädt eine Datei auf einen FTP-Server
    • ftp_pwd — Gibt den aktuellen Verzeichnisnamen zurück
    • ftp_quit — Alias von ftp_close
    • ftp_raw — Sendet ein beliebiges Kommando an den FTP-Server
    • ftp_rawlist — Gibt eine detaillierte Liste der Dateien in einem angegebenen Verzeichnis zurück
    • ftp_rename — Benennt eine Datei auf dem FTP-Server um
    • ftp_rmdir — Löscht ein Verzeichnis
    • ftp_set_option — Setzt diverse FTP-Laufzeitoptionen
    • ftp_site — Sendet ein SITE-Kommando zum Server
    • ftp_size — Gibt die Größe der angegebenen Datei zurück
    • ftp_ssl_connect — Öffnet eine sichere SSL-FTP-Verbindung
    • ftp_systype — Gibt den Systemtyp des entfernten FTP-Servers zurück


Einführung

Die Funktionen dieser Erweiterung implementieren den Zugriff auf Server über das File Transfer Protocol (FTP), wie unter » http://www.faqs.org/rfcs/rfc959 definiert. Diese Erweiterung ist gedacht für detaillierten Zugriff auf einen FTP-Server, so dass dem ausführenden Skript die größtmögliche Kontrolle ermöglicht wird. Wenn Sie ausschließlich eine Datei von einem FTP-Server lesen oder schreiben wollen, sollten Sie die Verwendung der ftp://-Wrapper zusammen mit den Dateiystem-Funktionen in Betracht ziehen. Dies ermöglicht einen einfacheren und intuitiveren Zugriff.


Installation

Um die FTP-Funktionen zu verwenden, muss die Option --enable-ftp bei der Installation von PHP verwendet werden.

In der Windowsversion von PHP 5 ist diese Extension fest integriert. Es ist nicht nötig zusätzliche Extensions zu laden, um diese Funktionen nutzen zu können.

Von PHP 7.0.0 an wird diese Extension unter Windows immer als Shared Extension kompiliert, und muss daher in php.ini aktiviert werden.


Ressource-Typen

Diese Erweiterung verwendet ausschließlich einen Ressourcen-Typ und zwar den Link-Identifier der FTP-Verbindung, der von ftp_connect() oder ftp_ssl_connect() zurückgeliefert wird.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

FTP_ASCII (integer)

FTP_AUTOSEEK (integer)

Weitere Informationen finden Sie unter ftp_set_option().

FTP_AUTORESUME (integer)

Ermittelt automatisch die Position zum Starten und Fortsetzen bei GET- und PUT-Befehlen (funktioniert nur wenn FTP_AUTOSEEK aktiviert ist)

FTP_FAILED (integer)

Die asynchrone Übertragung ist fehlgeschlagen

FTP_FINISHED (integer)

Die asynchrone Übertragung ist beendet

FTP_MOREDATA (integer)

Die asynchrone Übertragung läuft noch

FTP_TEXT (integer)

Alias von FTP_ASCII.

FTP_BINARY (integer)

FTP_IMAGE (integer)

Alias von FTP_BINARY.

FTP_TIMEOUT_SEC (integer)

Weitere Informationen finden Sie unter ftp_set_option().

FTP_USEPASVADDRESS (bool)

Weitere Informationen finden Sie unter ftp_set_option(). Verfügbar von PHP 5.6.0 an.


  • « Vordefinierte Konstanten
  • Allgemeine Verwendung »
  • PHP Manual
  • FTP
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Allgemeine Verwendung


Allgemeine Verwendung

Beispiel #1 FTP-Beispiel

<?php
// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) {
    echo "FTP-Verbindung ist fehlgeschlagen!";
    echo "Verbindungsaufbau zu $ftp_server mit Benutzername $ftp_user_name versucht.";
    exit;
} else {
    echo "Verbunden zu $ftp_server mit Benutzername $ftp_user_name";
}

// Datei hochladen
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// Upload überprüfen
if (!$upload) {
    echo "FTP-Upload ist fehlgeschlagen!";
} else {
    echo "Datei $source_file auf Server $ftp_server als $destination_file hochgeladen";
}

// Verbindung schließen
ftp_close($conn_id);
?>


FTP-Funktionen

Inhaltsverzeichnis

  • ftp_alloc — Reserviert Platz für eine hochzuladende Datei
  • ftp_append — Append the contents of a file to another file on the FTP server
  • ftp_cdup — Wechselt in das darüberliegende Verzeichnis
  • ftp_chdir — Verzeichnis-Wechsel auf einem FTP-Server
  • ftp_chmod — Ändert die Zugriffsrechte einer Datei über FTP
  • ftp_close — Schließt eine FTP-Verbindung
  • ftp_connect — Stellt eine FTP-Verbindung her
  • ftp_delete — Löscht eine Datei auf dem FTP-Server
  • ftp_exec — Fordert die Ausführung eines Programmes auf dem FTP-Server an
  • ftp_fget — Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete Datei
  • ftp_fput — Überträgt eine geöffnete Datei auf einen FTP-Server
  • ftp_get_option — Ruft diverse Laufzeitoptionen des angegebenen FTP-Streams ab
  • ftp_get — Lädt eine Datei von einem FTP-Server herunter
  • ftp_login — Anmelden einer FTP-Verbindung (Login)
  • ftp_mdtm — Gibt den Zeitpunkt der letzten Änderung der angegebenen Datei zurück
  • ftp_mkdir — Erzeugt ein Verzeichnis
  • ftp_mlsd — Returns a list of files in the given directory
  • ftp_nb_continue — Nimmt die Übertragung einer Datei wieder auf (nicht-blockierend)
  • ftp_nb_fget — Lädt eine Datei vom FTP-Server und schreibt sie in eine lokale Datei (nicht-blockierend)
  • ftp_nb_fput — Speichert eine geöffnete Datei auf den FTP-Server (nicht blockierend)
  • ftp_nb_get — Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)
  • ftp_nb_put — Speichert eine Datei auf dem FTP-Server (nicht-blockierend)
  • ftp_nlist — Gibt eine Liste der im angegebenen Verzeichnis enthaltenen Dateien zurück
  • ftp_pasv — Schaltet den passiven Modus ein oder aus
  • ftp_put — Lädt eine Datei auf einen FTP-Server
  • ftp_pwd — Gibt den aktuellen Verzeichnisnamen zurück
  • ftp_quit — Alias von ftp_close
  • ftp_raw — Sendet ein beliebiges Kommando an den FTP-Server
  • ftp_rawlist — Gibt eine detaillierte Liste der Dateien in einem angegebenen Verzeichnis zurück
  • ftp_rename — Benennt eine Datei auf dem FTP-Server um
  • ftp_rmdir — Löscht ein Verzeichnis
  • ftp_set_option — Setzt diverse FTP-Laufzeitoptionen
  • ftp_site — Sendet ein SITE-Kommando zum Server
  • ftp_size — Gibt die Größe der angegebenen Datei zurück
  • ftp_ssl_connect — Öffnet eine sichere SSL-FTP-Verbindung
  • ftp_systype — Gibt den Systemtyp des entfernten FTP-Servers zurück


Reserviert Platz für eine hochzuladende Datei

  • « FTP-Funktionen
  • ftp_append »
  • PHP Manual
  • FTP-Funktionen
  • Reserviert Platz für eine hochzuladende Datei

ftp_alloc

(PHP 5, PHP 7, PHP 8)

ftp_alloc — Reserviert Platz für eine hochzuladende Datei

Beschreibung

ftp_alloc ( resource $ftp_stream , int $filesize , string &$result = ? ) : bool

Sendet ein ALLO-Kommando an den entfernten FTP-Server, um Platz für eine hochzuladende Datei zu reservieren.

Hinweis:

Viele FTP-Server unterstützen dieses Kommando nicht. Diese Server können einen Fehlercode (false) zurückgegeben, der angibt, dass das Kommando nicht unterstützt wird, oder einen Erfolgscode (true), der angibt, dass die Reservierung nicht notwendig ist und dass der Client so weiterarbeiten soll als wenn die Operation erfolgreich gewesen wäre. Daher ist es am besten, diese Funktion nur für Server zu verwenden, die die Reservierung explizit unterstützen.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

filesize

Die Anzahl der zu reservierenden Bytes.

result

Eine Textrepräsentation der Serverantwort wird als Referenz in result zurückgegeben, wenn eine Variable übergeben wird.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ftp_alloc()-Beispiel

<?php

$file = "/home/user/myfile";

// Verbindung aufbauen
$conn_id = ftp_connect('ftp.example.com');
$login_result = ftp_login($conn_id, 'anonymous', 'user@example.com');

if (ftp_alloc($conn_id, filesize($file), $result)) {
  echo "Platz wurde erfolgreich auf dem Server reseviert. $file wird gesendet.\n";
  ftp_put($conn_id, '/incoming/myfile', $file, FTP_BINARY);
} else {
  echo "Platz konnte nicht auf dem Server reserviert werden. Serverantwort: $result\n";
}

ftp_close($conn_id);

?>

Siehe auch

  • ftp_put() - Lädt eine Datei auf einen FTP-Server
  • ftp_fput() - Überträgt eine geöffnete Datei auf einen FTP-Server


Append the contents of a file to another file on the FTP server

  • « ftp_alloc
  • ftp_cdup »
  • PHP Manual
  • FTP-Funktionen
  • Append the contents of a file to another file on the FTP server

ftp_append

(PHP 7 >= 7.2.0, PHP 8)

ftp_append — Append the contents of a file to another file on the FTP server

Beschreibung

ftp_append ( resource $ftp , string $remote_filename , string $local_filename , int $mode = FTP_BINARY ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

ftp

remote_filename

local_filename

mode

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Wechselt in das darüberliegende Verzeichnis

  • « ftp_append
  • ftp_chdir »
  • PHP Manual
  • FTP-Funktionen
  • Wechselt in das darüberliegende Verzeichnis

ftp_cdup

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_cdup — Wechselt in das darüberliegende Verzeichnis

Beschreibung

ftp_cdup ( resource $ftp_stream ) : bool

Wechselt eine Verzeichnisebene nach oben.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ftp_cdup()-Beispiel

<?php
// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Wechsele vom aktuellen Verzeichnis nach 'html'
ftp_chdir($conn_id, 'html');

echo ftp_pwd($conn_id); // /html

// in das darüberliegende Verzeichnis zurückspringen
if (ftp_cdup($conn_id)) {
  echo "cdup erfolgreich\n";
} else {
  echo "cdup nicht erfolgreich\n";
}

echo ftp_pwd($conn_id); // /

ftp_close($conn_id);
?>

Siehe auch

  • ftp_chdir() - Verzeichnis-Wechsel auf einem FTP-Server
  • ftp_pwd() - Gibt den aktuellen Verzeichnisnamen zurück


Verzeichnis-Wechsel auf einem FTP-Server

  • « ftp_cdup
  • ftp_chmod »
  • PHP Manual
  • FTP-Funktionen
  • Verzeichnis-Wechsel auf einem FTP-Server

ftp_chdir

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_chdir — Verzeichnis-Wechsel auf einem FTP-Server

Beschreibung

ftp_chdir ( resource $ftp_stream , string $directory ) : bool

Wechselt vom aktuellen Verzeichnis in das angegebene Verzeichnis.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

directory

Das Verzeichnis, in das gewechselt werden soll.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Wenn der Verzeichnis-Wechsel fehlschlägt, wird eine PHP-Warnung ausgegeben.

Beispiele

Beispiel #1 ftp_chdir()-Beispiel

<?php

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) {
    die("FTP-Verbindungsaufbau ist fehlgeschlagen!");
}

echo "Aktuelles Verzeichnis: " . ftp_pwd($conn_id) . "\n";

// Versuche, in das Verzeichnis "irgendwo" zu wechseln
if (ftp_chdir($conn_id, "irgendwo")) {
    echo "Aktuelles Verzeichnis: " . ftp_pwd($conn_id) . "\n";
} else {
    echo "Verzeichniswechsel ist fehlgeschlagen.\n";
}

// Verbindung schließen
ftp_close($conn_id);
?>

Siehe auch

  • ftp_cdup() - Wechselt in das darüberliegende Verzeichnis
  • ftp_pwd() - Gibt den aktuellen Verzeichnisnamen zurück


Ändert die Zugriffsrechte einer Datei über FTP

  • « ftp_chdir
  • ftp_close »
  • PHP Manual
  • FTP-Funktionen
  • Ändert die Zugriffsrechte einer Datei über FTP

ftp_chmod

(PHP 5, PHP 7, PHP 8)

ftp_chmod — Ändert die Zugriffsrechte einer Datei über FTP

Beschreibung

ftp_chmod ( resource $ftp_stream , int $mode , string $filename ) : int

Ändert die Zugriffsrechte der spezifierten Datei zu mode.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

mode

Die neuen Zugriffsrechte als octal-Wert.

filename

Der Name der Datei auf dem FTP-Server.

Rückgabewerte

Gibt die neuen Zugriffsrechte oder im Fehlerfall false zurück.

Beispiele

Beispiel #1 ftp_chmod()-Beispiel

<?php
$dateiname = 'public_html/index.php';

// einfacher Verbindungsaufbau
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_username, $ftp_passwort);

// Zugriffsrechte von $dateiname auf 644 ändern
if (ftp_chmod($conn_id, 0644, $dateiname) !== false) {
 echo "Zugriffsrechte der Datei $dateiname auf 644 geändert\n";
} else {
 echo "Änderung der Zugriffsrechte fehlgeschlagen\n";
}

// Verbindung schließen
ftp_close($conn_id);
?>

Siehe auch

  • chmod() - Ändert die Zugriffsrechte einer Datei


Schließt eine FTP-Verbindung

  • « ftp_chmod
  • ftp_connect »
  • PHP Manual
  • FTP-Funktionen
  • Schließt eine FTP-Verbindung

ftp_close

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ftp_close — Schließt eine FTP-Verbindung

Beschreibung

ftp_close ( resource $ftp_stream ) : bool

ftp_close() schließt die angegebene Verbindung und gibt die resource frei.

Hinweis:

Nach Aufruf dieser Funktion ist die FTP-Verbindung nicht länger verfügbar und es muss eine neue unter Verwendung von ftp_connect() erstellt werden.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ftp_close()-Beispiel

<?php

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// aktuelles Verzeichnis anzeigen
echo ftp_pwd($conn_id);

// Verbindung schließen
ftp_close($conn_id);
?>

Siehe auch

  • ftp_connect() - Stellt eine FTP-Verbindung her


Stellt eine FTP-Verbindung her

  • « ftp_close
  • ftp_delete »
  • PHP Manual
  • FTP-Funktionen
  • Stellt eine FTP-Verbindung her

ftp_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_connect — Stellt eine FTP-Verbindung her

Beschreibung

ftp_connect ( string $host , int $port = 21 , int $timeout = 90 ) : resource

ftp_connect() stellt eine FTP-Verbindung zum angegebenen host her.

Parameter-Liste

host

Die Adresse des FTP-Servers. Dieser Parameter sollte keinen abschließenden Schrägstrich und kein vorangestelltes ftp:// haben.

port

Gibt einen alternativen Port für die Verbindung an. Fehlt er oder wird er auf 0 gesetzt, wird der Standard-FTP-Port 21 benutzt.

timeout

Dieser Parameter bestimmt den Timeout in Sekunden für alle nachfolgenden Netzwerktätigkeiten. Falls er fehlt, wird er auf den Standardwert von 90 Sekunden gesetzt. Der Timeout kann jederzeit mittels ftp_set_option() gesetzt und mittels ftp_get_option() abgefragt werden.

Rückgabewerte

Gibt bei Erfolg einen FTP-Stream zurück oder false, falls ein Fehler auftrat.

Beispiele

Beispiel #1 ftp_connect()-Beispiel

<?php

$ftp_server = "ftp.example.com";

// stelle eine Verbindung her
$verbindungskennung = ftp_connect($ftp_server) or die("Konnte keine Verbindung zu $ftp_server aufbauen");

?>

Siehe auch

  • ftp_close() - Schließt eine FTP-Verbindung
  • ftp_ssl_connect() - Öffnet eine sichere SSL-FTP-Verbindung


Löscht eine Datei auf dem FTP-Server

  • « ftp_connect
  • ftp_exec »
  • PHP Manual
  • FTP-Funktionen
  • Löscht eine Datei auf dem FTP-Server

ftp_delete

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_delete — Löscht eine Datei auf dem FTP-Server

Beschreibung

ftp_delete ( resource $ftp_stream , string $path ) : bool

ftp_delete() löscht die per path angegebene Datei auf dem FTP-Server.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

path

Die zu löschende Datei.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ftp_delete()-Beispiel

<?php
$file = 'public_html/old.txt';

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Versuche die Datei $file zu löschen
if (ftp_delete($conn_id, $file)) {
 echo "$file deleted successful\n";
} else {
 echo "could not delete $file\n";
}

// Verbindung schließen
ftp_close($conn_id);
?>


Fordert die Ausführung eines Programmes auf dem FTP-Server an

  • « ftp_delete
  • ftp_fget »
  • PHP Manual
  • FTP-Funktionen
  • Fordert die Ausführung eines Programmes auf dem FTP-Server an

ftp_exec

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

ftp_exec — Fordert die Ausführung eines Programmes auf dem FTP-Server an

Beschreibung

ftp_exec ( resource $ftp_stream , string $command ) : bool

Sendet ein SITE EXEC-Kommando (command) an den FTP-Server.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

command

Das auszuführende Kommando.

Rückgabewerte

Gibt true zurück, wenn das Kommando erfolgreich war (d.h. der Server hat den Antwortcode 200 geliefert); sonst false.

Beispiele

Beispiel #1 ftp_exec()-Beispiel

<?php

// Variable initialisieren
$command = 'ls -al >files.txt';

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Kommando ausführen
if (ftp_exec($conn_id, $command)) {
    echo "$command wurde erfolgreich ausgeführt\n";
} else {
    echo "$command konnte nicht ausgeführt werden\n";
}

// Verbindung schließen
ftp_close($conn_id);

?>

Siehe auch

  • ftp_raw() - Sendet ein beliebiges Kommando an den FTP-Server


Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete Datei

  • « ftp_exec
  • ftp_fput »
  • PHP Manual
  • FTP-Funktionen
  • Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete Datei

ftp_fget

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_fget — Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete Datei

Beschreibung

ftp_fget ( resource $ftp_stream , resource $handle , string $remote_file , int $mode = FTP_BINARY , int $resumepos = 0 ) : bool

ftp_fget() lädt das remote_file vom FTP-Server und schreibt es in die per Dateizeiger angegebene Datei.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

handle

Ein geöffneter Dateizeiger, in den die Daten geschrieben werden sollen.

remote_file

Der Pfad zur Datei auf dem Server.

mode

Der Transfer-Modus. Muss entweder FTP_ASCII oder FTP_BINARY sein.

resumepos

Die Position in der entfernten Datei, ab der der Download beginnen soll.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.3.0 | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.

Beispiele

Beispiel #1 ftp_fget()-Beispiel

<?php

// Pfad zur entfernten Datei
$remote_file = 'somefile.txt';
$local_file = 'localfile.txt';

// Öffne eine Datei zum Schreiben
$handle = fopen($local_file, 'w');

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Versuche $remote_file zu laden und in $handle zu speichern
if (ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII, 0)) {
 echo "Erfolgreich in $local_file geschrieben\n";
} else {
 echo "Download von $remote_file zu $local_file war nicht möglich\n";
}

// Verbindung und Verbindungshandler schließen
ftp_close($conn_id);
fclose($handle);
?>

Siehe auch

  • ftp_get() - Lädt eine Datei von einem FTP-Server herunter
  • ftp_nb_get() - Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)
  • ftp_nb_fget() - Lädt eine Datei vom FTP-Server und schreibt sie in eine lokale Datei (nicht-blockierend)


Überträgt eine geöffnete Datei auf einen FTP-Server

  • « ftp_fget
  • ftp_get_option »
  • PHP Manual
  • FTP-Funktionen
  • Überträgt eine geöffnete Datei auf einen FTP-Server

ftp_fput

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_fput — Überträgt eine geöffnete Datei auf einen FTP-Server

Beschreibung

ftp_fput ( resource $ftp_stream , string $remote_file , resource $handle , int $mode = FTP_BINARY , int $startpos = 0 ) : bool

ftp_fput() lädt die Daten aus einem Dateizeiger in eine entfernte Datei auf dem FTP-Server.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

remote_file

Der Pfad zur Datei auf dem Server.

handle

Ein geöffneter Dateizeiger der lokalen Datei. Das Lesen wird am Dateiende beendet.

mode

Der Transfer-Modus. Muss entweder FTP_ASCII oder FTP_BINARY sein.

startpos

Die Startposition für den Upload in der entfernten Datei.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.3.0 | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.

Beispiele

Beispiel #1 ftp_fput()-Beispiel

<?php

// Öffne eine Datei zum Lesen
$file = 'somefile.txt';
$fp = fopen($file, 'r');

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Versuche $file hochzuladen
if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) {
    echo "$file wurde erfolgreich hochgeladen\n";
} else {
    echo "$file konnte nicht hochgeladen werden\n";
}

// Verbindung und Verbindungshandler schließen
ftp_close($conn_id);
fclose($fp);

?>

Siehe auch

  • ftp_put() - Lädt eine Datei auf einen FTP-Server
  • ftp_nb_fput() - Speichert eine geöffnete Datei auf den FTP-Server (nicht blockierend)
  • ftp_nb_put() - Speichert eine Datei auf dem FTP-Server (nicht-blockierend)


Ruft diverse Laufzeitoptionen des angegebenen FTP-Streams ab

  • « ftp_fput
  • ftp_get »
  • PHP Manual
  • FTP-Funktionen
  • Ruft diverse Laufzeitoptionen des angegebenen FTP-Streams ab

ftp_get_option

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ftp_get_option — Ruft diverse Laufzeitoptionen des angegebenen FTP-Streams ab

Beschreibung

ftp_get_option ( resource $ftp_stream , int $option ) : mixed

Diese Funktion gibt den Wert der angeforderten Option option von der angegebenen FTP-Verbindung zurück.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

option

Zur Zeit werden die folgenden Optionen unterstützt:

Unterstützte FTP-Laufzeitoptionen
FTP_TIMEOUT_SEC | Gibt den aktuellen Timeout für alle Netzwerkoperationen zurück.
FTP_AUTOSEEK | Gibt true zurück, wenn diese Option aktiv ist, sonst false.

Rückgabewerte

Gibt den Wert bei Erfolg zurück oder false, wenn die angegebene Option option nicht unterstützt wird. Im letzteren Fall wird zusätzlich eine Warnung geworfen.

Beispiele

Beispiel #1 ftp_get_option()-Beispiel

<?php
// Bestimme den Timeout des angegebenen FTP-Streams
$timeout = ftp_get_option($conn_id, FTP_TIMEOUT_SEC);
?>

Siehe auch

  • ftp_set_option() - Setzt diverse FTP-Laufzeitoptionen


Lädt eine Datei von einem FTP-Server herunter

  • « ftp_get_option
  • ftp_login »
  • PHP Manual
  • FTP-Funktionen
  • Lädt eine Datei von einem FTP-Server herunter

ftp_get

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_get — Lädt eine Datei von einem FTP-Server herunter

Beschreibung

ftp_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode = FTP_BINARY , int $resumepos = 0 ) : bool

ftp_get() lädt eine Datei vom FTP-Server und speichert sie in eine lokale Datei.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

local_file

Der lokale Dateipfad (wird überschrieben, falls die Datei schon existiert).

remote_file

Der Pfad zur Datei auf dem Server.

mode

Der Transfer-Modus. Muss entweder FTP_ASCII oder FTP_BINARY sein.

resumepos

Die Position in der entfernten Datei, ab der der Download beginnen soll.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.3.0 | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.

Beispiele

Beispiel #1 ftp_get()-Beispiel

<?php

// Variablen definieren
$local_file = 'local.zip';
$server_file = 'server.zip';

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Versuche $server_file herunterzuladen und in $local_file zu speichern
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    echo "$local_file wurde erfolgreich geschrieben\n";
} else {
    echo "Ein Fehler ist aufgetreten\n";
}

// Verbindung schließen
ftp_close($conn_id);

?>

Siehe auch

  • ftp_pasv() - Schaltet den passiven Modus ein oder aus
  • ftp_fget() - Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete Datei
  • ftp_nb_get() - Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)
  • ftp_nb_fget() - Lädt eine Datei vom FTP-Server und schreibt sie in eine lokale Datei (nicht-blockierend)


Anmelden einer FTP-Verbindung (Login)

  • « ftp_get
  • ftp_mdtm »
  • PHP Manual
  • FTP-Funktionen
  • Anmelden einer FTP-Verbindung (Login)

ftp_login

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_login — Anmelden einer FTP-Verbindung (Login)

Beschreibung

ftp_login ( resource $ftp_stream , string $username , string $password ) : bool

Anmelden beim angegebenen FTP-Stream.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

username

Der Benutzername (USER).

password

Das Passwort (PASS).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Wenn die Anmeldung fehlschlägt, wird PHP zusätzlich eine Warnung werfen.

Beispiele

Beispiel #1 ftp_login()-Beispiel

<?php

$ftp_server = "ftp.example.com";
$ftp_user = "foo";
$ftp_pass = "bar";

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

// Anmeldung versuchen
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    echo "Angemeldet als $ftp_user@$ftp_server\n";
} else {
    echo "Anmeldung als $ftp_user nicht möglich\n";
}

// Verbindung schließen
ftp_close($conn_id);
?>


Gibt den Zeitpunkt der letzten Änderung der angegebenen Datei zurück

  • « ftp_login
  • ftp_mkdir »
  • PHP Manual
  • FTP-Funktionen
  • Gibt den Zeitpunkt der letzten Änderung der angegebenen Datei zurück

ftp_mdtm

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_mdtm — Gibt den Zeitpunkt der letzten Änderung der angegebenen Datei zurück

Beschreibung

ftp_mdtm ( resource $ftp_stream , string $remote_file ) : int

ftp_mdtm() ermittelt den Zeitpunkt der letzten Änderung einer entfernten Datei.

Hinweis:

Nicht alle Server unterstützen diese Funktionalität.

Hinweis:

ftp_mdtm() funktioniert nicht mit Verzeichnissen.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

remote_file

Die Datei, von der der Zeitpunkt der letzten Änderung ermittelt werden soll.

Rückgabewerte

Gibt den Zeitpunkt der letzten Änderung als Unix-Timestamp bei Erfolg zurück oder -1 im Fehlerfall.

Beispiele

Beispiel #1 ftp_mdtm()-Beispiel

<?php

$file = 'somefile.txt';

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Zeitpunkt der letzten Änderung ermitteln
$buff = ftp_mdtm($conn_id, $file);

if ($buff != -1) {
    // somefile.txt wurde zuletzt geändert am: March 26 2003 14:16:41.
    echo "$file wurde zuletzt geändert am: " . date("F d Y H:i:s.", $buff);
} else {
    echo "Zeitpunkt konnte nicht ermittelt werden";
}

// Verbindung schließen
ftp_close($conn_id);

?>


Erzeugt ein Verzeichnis

  • « ftp_mdtm
  • ftp_mlsd »
  • PHP Manual
  • FTP-Funktionen
  • Erzeugt ein Verzeichnis

ftp_mkdir

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_mkdir — Erzeugt ein Verzeichnis

Beschreibung

ftp_mkdir ( resource $ftp_stream , string $directory ) : string

Erzeugt das angegebene Verzeichnis directory auf dem FTP-Server.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

directory

Der Name des zu erzeugenden Verzeichnissen.

Rückgabewerte

Gibt den neu erzeugten Verzeichnisnamen zurück oder false im Fehlerfall.

Beispiele

Beispiel #1 ftp_mkdir()-Beispiel

<?php

$dir = 'www';

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Versuche das Verzeichnis $dir zu erzeugen
if (ftp_mkdir($conn_id, $dir)) {
 echo "$dir erfolgreich erzeugt\n";
} else {
 echo "Es trat ein Fehler beim Erzeugen von $dir auf\n";
}

// Verbindung schließen
ftp_close($conn_id);
?>

Siehe auch

  • ftp_rmdir() - Löscht ein Verzeichnis


Returns a list of files in the given directory

  • « ftp_mkdir
  • ftp_nb_continue »
  • PHP Manual
  • FTP-Funktionen
  • Returns a list of files in the given directory

ftp_mlsd

(PHP 7 >= 7.2.0, PHP 8)

ftp_mlsd — Returns a list of files in the given directory

Beschreibung

ftp_mlsd ( resource $ftp , string $directory ) : array|false

Parameter-Liste

ftp

The link identifier of the FTP connection.

directory

The directory to be listed.

Rückgabewerte

Returns an array of arrays with file infos from the specified directory on success or false on error.

Beispiele

Beispiel #1 ftp_mlsd() example

<?php

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// get contents of the current directory
$contents = ftp_mlsd($conn_id, ".");

// output $contents
var_dump($contents);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(5) {
  [0]=>
  array(8) {
    ["name"]=>
    string(1) "."
    ["modify"]=>
    string(14) "20171212154511"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(4) "cdir"
    ["unique"]=>
    string(11) "811U5740002"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [1]=>
  array(8) {
    ["name"]=>
    string(2) ".."
    ["modify"]=>
    string(14) "20171212154511"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(4) "pdir"
    ["unique"]=>
    string(11) "811U5740002"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [2]=>
  array(8) {
    ["name"]=>
    string(11) "public_html"
    ["modify"]=>
    string(14) "20171211171525"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U5740525"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [3]=>
  array(8) {
    ["name"]=>
    string(10) "public_ftp"
    ["modify"]=>
    string(14) "20171211174536"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U57405EE"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [4]=>
  array(8) {
    ["name"]=>
    string(3) "www"
    ["modify"]=>
    string(14) "www"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U5740780"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
}

Siehe auch

  • ftp_rawlist() - Gibt eine detaillierte Liste der Dateien in einem angegebenen Verzeichnis zurück
  • ftp_nlist() - Gibt eine Liste der im angegebenen Verzeichnis enthaltenen Dateien zurück


Nimmt die Übertragung einer Datei wieder auf (nicht-blockierend)

  • « ftp_mlsd
  • ftp_nb_fget »
  • PHP Manual
  • FTP-Funktionen
  • Nimmt die Übertragung einer Datei wieder auf (nicht-blockierend)

ftp_nb_continue

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_continue — Nimmt die Übertragung einer Datei wieder auf (nicht-blockierend)

Beschreibung

ftp_nb_continue ( resource $ftp_stream ) : int

Nimmt die Übertragung einer Datei wieder auf (nicht-blockierend).

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

Rückgabewerte

Gibt FTP_FAILED oder FTP_FINISHED oder FTP_MOREDATA zurück.

Beispiele

Beispiel #1 ftp_nb_continue()-Beispiel

<?php

// Initiiere den Download
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Download fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Es gab einen Fehler bei der Übertragung.";
   exit(1);
}
?>


Lädt eine Datei vom FTP-Server und schreibt sie in eine lokale Datei (nicht-blockierend)

  • « ftp_nb_continue
  • ftp_nb_fput »
  • PHP Manual
  • FTP-Funktionen
  • Lädt eine Datei vom FTP-Server und schreibt sie in eine lokale Datei (nicht-blockierend)

ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_fget — Lädt eine Datei vom FTP-Server und schreibt sie in eine lokale Datei (nicht-blockierend)

Beschreibung

ftp_nb_fget ( resource $ftp_stream , resource $handle , string $remote_file , int $mode = FTP_BINARY , int $resumepos = 0 ) : int

ftp_nb_fget() lädt eine entfernte Datei von einem FTP-Server.

Der Unterschied zwischen dieser Funktion und ftp_fget() ist, dass diese Funktion die Datei asynchron überträgt, so dass Ihr Programm noch andere Operationen ausführen kann während die Datei gespeichert wird.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

handle

Ein geöffneter Dateizeiger, in dem die Daten gespeichert werden.

remote_file

Der Pfad zur Datei auf dem Server.

mode

Der Transfer-Modus. Muss entweder FTP_ASCII oder FTP_BINARY sein.

resumepos

Die Position in der entfernten Datei, an der der Download beginnen soll.

Rückgabewerte

Gibt FTP_FAILED oder FTP_FINISHED oder FTP_MOREDATA zurück.

Changelog

Version | Beschreibung
7.3.0 | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.

Beispiele

Beispiel #1 ftp_nb_fget()-Beispiel

<?php

// Öffne eine Datei zum Lesen
$file = 'index.php';
$fp = fopen($file, 'w');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Download initiieren
$ret = ftp_nb_fget($conn_id, $fp, $file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Irgendwas machen
   echo ".";

   // Download forsetzen
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "Es gab einen Fehler bei der Übertragung.";
   exit(1);
}

// Dateizeiger schließen
fclose($fp);
?>

Siehe auch

  • ftp_nb_get() - Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)
  • ftp_nb_continue() - Nimmt die Übertragung einer Datei wieder auf (nicht-blockierend)
  • ftp_fget() - Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete Datei
  • ftp_get() - Lädt eine Datei von einem FTP-Server herunter


Speichert eine geöffnete Datei auf den FTP-Server (nicht blockierend)

  • « ftp_nb_fget
  • ftp_nb_get »
  • PHP Manual
  • FTP-Funktionen
  • Speichert eine geöffnete Datei auf den FTP-Server (nicht blockierend)

ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_fput — Speichert eine geöffnete Datei auf den FTP-Server (nicht blockierend)

Beschreibung

ftp_nb_fput ( resource $ftp_stream , string $remote_file , resource $handle , int $mode = FTP_BINARY , int $startpos = 0 ) : int

ftp_nb_fput() lädt Datei von einem Dateizeiger in eine entfernte Datei auf einem FTP-Server.

Der Unterscheid zwischen dieser Funktion und ftp_fput() ist, dass diese Funktion die Datei asynchron hochlädt, so dass Ihr Programm noch andere Operationen ausführen kann während die Datei hochgeladen wird.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

remote_file

Der Pfad zur Datei auf dem Server.

handle

Ein geöffneter Dateizeiger zu einer lokalen Datei. Das Lesen wird am Dateiende beendet.

mode

Der Transfer-Modus. Muss entweder FTP_ASCII oder FTP_BINARY sein.

startpos

Die Startposition für den Upload in der entfernten Datei.

Rückgabewerte

Gibt FTP_FAILED oder FTP_FINISHED oder FTP_MOREDATA zurück.

Changelog

Version | Beschreibung
7.3.0 | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.

Beispiele

Beispiel #1 ftp_nb_fput()-Beispiel

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Upload initiieren
$ret = ftp_nb_fput($conn_id, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Irgendwas machen
   echo ".";

   // Upload fortsetzen
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "Beim Transfer trat ein Fehler auf";
   exit(1);
}

fclose($fp);
?>

Siehe auch

  • ftp_nb_put() - Speichert eine Datei auf dem FTP-Server (nicht-blockierend)
  • ftp_nb_continue() - Nimmt die Übertragung einer Datei wieder auf (nicht-blockierend)
  • ftp_put() - Lädt eine Datei auf einen FTP-Server
  • ftp_fput() - Überträgt eine geöffnete Datei auf einen FTP-Server


Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)

  • « ftp_nb_fput
  • ftp_nb_put »
  • PHP Manual
  • FTP-Funktionen
  • Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)

ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_get — Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)

Beschreibung

ftp_nb_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode = FTP_BINARY , int $resumepos = 0 ) : int

ftp_nb_get() retrieves a remote file from the FTP server, and saves it into a local file.

Der Unterscheid zwischen dieser Funktion und ftp_get() ist, dass diese Funktion die Datei asynchron überträgt, so dass Ihr Programm noch andere Operationen ausführen kann während die Datei heruntergeladen wird.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

local_file

Der Pfad zur lokalen Datei (wird überschrieben falls die Datei schon existiert).

remote_file

Der Pfad zur Datei auf dem Server.

mode

Der Transfer-Modus. Muss entweder FTP_ASCII oder FTP_BINARY sein.

resumepos

Die Position in der entfernten Datei, an der der Download beginnen soll.

Rückgabewerte

Gibt FTP_FAILED oder FTP_FINISHED oder FTP_MOREDATA zurück.

Changelog

Version | Beschreibung
7.3.0 | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.

Beispiele

Beispiel #1 ftp_nb_get()-Beispiel

<?php

// Download iniitieren
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Irgendwas machen
   echo ".";

   // Download fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Es gab einen Fehler bei der Übertragung.";
   exit(1);
}
?>

Beispiel #2 Einen Download mit ftp_nb_get() fortsetzen

<?php

// Iniitieren
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
                      filesize("test"));
// ODER: $ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
// FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

   // Irgendwas machen
   echo ".";

   // Download fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Es gab einen Fehler bei der Übertragung.";
   exit(1);
}
?>

Beispiel #3 Einen Download mit Hilfe von ftp_nb_get() an Position 100 fortsetzen und in eine neue Datei schreiben

<?php

// Autoseek deaktivieren
ftp_set_option($my_connection, FTP_AUTOSEEK, false);

// Initialisieren
$ret = ftp_nb_get($my_connection, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

   /* ... */

   // Download fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
?>

In dem obigen Beispiel ist newfile 100 Bytes kleiner als README auf dem FTP-Server, weil wir erst beim Offset 100 angefangen haben zu lesen. Hätten wir FTP_AUTOSEEK nicht deaktiviert, so bestünden die ersten 100 Bytes von newfile aus '\0'.

Siehe auch

  • ftp_nb_fget() - Lädt eine Datei vom FTP-Server und schreibt sie in eine lokale Datei (nicht-blockierend)
  • ftp_nb_continue() - Nimmt die Übertragung einer Datei wieder auf (nicht-blockierend)
  • ftp_fget() - Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete Datei
  • ftp_get() - Lädt eine Datei von einem FTP-Server herunter


Speichert eine Datei auf dem FTP-Server (nicht-blockierend)

  • « ftp_nb_get
  • ftp_nlist »
  • PHP Manual
  • FTP-Funktionen
  • Speichert eine Datei auf dem FTP-Server (nicht-blockierend)

ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_put — Speichert eine Datei auf dem FTP-Server (nicht-blockierend)

Beschreibung

ftp_nb_put ( resource $ftp_stream , string $remote_file , string $local_file , int $mode = FTP_BINARY , int $startpos = 0 ) : int

ftp_nb_put() speichert eine lokale Datei auf dem FTP-Server.

Der Unterschied zwischen dieser Funktion und ftp_put() ist, dass diese die Datei asynchron hochlädt, so dass Ihr Programm noch andere Operationen durchführen kann während die Datei hochgeladen wird.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

remote_file

Der Pfad zur Datei auf dem Server.

local_file

Der Pfad zur lokalen Datei.

mode

Der Transfer-Modus. Muss entweder FTP_ASCII oder FTP_BINARY sein.

startpos

Die Startposition für den Upload in der entfernten Datei.

Rückgabewerte

Gibt FTP_FAILED oder FTP_FINISHED oder FTP_MOREDATA zurück.

Changelog

Version | Beschreibung
7.3.0 | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.

Beispiele

Beispiel #1 ftp_nb_put()-Beispiel

<?php

// Initialisiere den Upload
$ret = ftp_nb_put($my_connection, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Irgendwas machen
   echo ".";

   // Upload fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Beim Transfer trat ein Fehler auf";
   exit(1);
}
?>

Beispiel #2 Einen Upload mit ftp_nb_put() wieder aufnehmen

<?php

// Initialisieren
$ret = ftp_nb_put($my_connection, "test.remote", "test.local",
                      FTP_BINARY, ftp_size("test.remote"));
// ODER: $ret = ftp_nb_put($my_connection, "test.remote", "test.local",
// FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

   // Irgendwas machen
   echo ".";

   // Upload fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Beim Transfer trat ein Fehler auf";
   exit(1);
}
?>

Siehe auch

  • ftp_nb_fput() - Speichert eine geöffnete Datei auf den FTP-Server (nicht blockierend)
  • ftp_nb_continue() - Nimmt die Übertragung einer Datei wieder auf (nicht-blockierend)
  • ftp_put() - Lädt eine Datei auf einen FTP-Server
  • ftp_fput() - Überträgt eine geöffnete Datei auf einen FTP-Server


Gibt eine Liste der im angegebenen Verzeichnis enthaltenen Dateien zurück

  • « ftp_nb_put
  • ftp_pasv »
  • PHP Manual
  • FTP-Funktionen
  • Gibt eine Liste der im angegebenen Verzeichnis enthaltenen Dateien zurück

ftp_nlist

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_nlist — Gibt eine Liste der im angegebenen Verzeichnis enthaltenen Dateien zurück

Beschreibung

ftp_nlist ( resource $ftp_stream , string $directory ) : array

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

directory

Das zu listende Verzeichnis. Dieser Parameter kann auch Argumente enthalten, z.B. ftp_nlist($conn_id, "-la /your/dir"); Beachten Sie, dass dieser Parameter nicht escapt ist und dass deswegen Probleme bei Dateinamen mit Leerzeichen oder anderen Zeichen auftreten können.

Rückgabewerte

Gibt ein Array von Dateinamen aus dem angegebenen Verzeichnis bei Erfolg zurück oder false im Fehlerfall.

Beispiele

Beispiel #1 ftp_nlist()-Beispiel

<?php

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

//Inhalt des aktuellen Verzeichnis auslesen
$contents = ftp_nlist($conn_id, ".");

// Ausgabe von $contents
var_dump($contents);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  string(11) "public_html"
  [1]=>
  string(10) "public_ftp"
  [2]=>
  string(3) "www"

Siehe auch

  • ftp_rawlist() - Gibt eine detaillierte Liste der Dateien in einem angegebenen Verzeichnis zurück
  • ftp_mlsd() - Returns a list of files in the given directory


Schaltet den passiven Modus ein oder aus

  • « ftp_nlist
  • ftp_put »
  • PHP Manual
  • FTP-Funktionen
  • Schaltet den passiven Modus ein oder aus

ftp_pasv

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_pasv — Schaltet den passiven Modus ein oder aus

Beschreibung

ftp_pasv ( resource $ftp_stream , bool $pasv ) : bool

ftp_pasv() schaltet den passiven Modus ein oder aus. Im passiven Modus werden Datenverbindung durch den Client initiiert und nicht durch den Server. Dies kann notwendig sein, wenn der Client sich hinter einer Firewall befindet.

Bitte beachten Sie, dass ftp_pasv() nur nach einem erfolgreichen Login aufgerufen werden kann. Andernfalls wird der Aufruf fehlschlagen.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

pasv

Wenn true, wird der passive Modus aktiviert, sonst wird der deaktiviert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ftp_pasv()-Beispiel

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Schalte passiven Modus ein
ftp_pasv($conn_id, true);

// Lade eine Datei hoch
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "$file erfolgreich hochgeladen\n";
} else {
 echo "Ein Fehler trat beim Hochladen von $file\n";
}

// Verbindung schließen
ftp_close($conn_id);
?>


Lädt eine Datei auf einen FTP-Server

  • « ftp_pasv
  • ftp_pwd »
  • PHP Manual
  • FTP-Funktionen
  • Lädt eine Datei auf einen FTP-Server

ftp_put

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_put — Lädt eine Datei auf einen FTP-Server

Beschreibung

ftp_put ( resource $ftp_stream , string $remote_file , string $local_file , int $mode = FTP_BINARY , int $startpos = 0 ) : bool

ftp_put() speichert eine lokale Datei auf einem FTP-Server.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

remote_file

Der Pfad zur Datei auf dem Server.

local_file

Der Pfad zur lokalen Datei.

mode

Der Transfer-Modus. Muss entweder FTP_ASCII oder FTP_BINARY sein.

startpos

Die Startposition für den Upload in der entfernten Datei.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.3.0 | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.

Beispiele

Beispiel #1 ftp_put()-Beispiel

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Datei hochladen
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "$file erfolgreich hochgeladen\n";
} else {
 echo "Ein Fehler trat beim Hochladen von $file auf\n";
}

// Verbindung schließen
ftp_close($conn_id);
?>

Siehe auch

  • ftp_pasv() - Schaltet den passiven Modus ein oder aus
  • ftp_fput() - Überträgt eine geöffnete Datei auf einen FTP-Server
  • ftp_nb_fput() - Speichert eine geöffnete Datei auf den FTP-Server (nicht blockierend)
  • ftp_nb_put() - Speichert eine Datei auf dem FTP-Server (nicht-blockierend)


Gibt den aktuellen Verzeichnisnamen zurück

  • « ftp_put
  • ftp_quit »
  • PHP Manual
  • FTP-Funktionen
  • Gibt den aktuellen Verzeichnisnamen zurück

ftp_pwd

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_pwd — Gibt den aktuellen Verzeichnisnamen zurück

Beschreibung

ftp_pwd ( resource $ftp_stream ) : string

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

Rückgabewerte

Gibt den aktuellen Verzeichnisnamen zurück oder false im Fehlerfall.

Beispiele

Beispiel #1 ftp_pwd()-Beispiel

<?php

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Wechsle das Verzeichnis zu public_html
ftp_chdir($conn_id, 'public_html');

// Gibt das aktuelle Verzeichnis aus
echo ftp_pwd($conn_id); // /public_html

// Verbindung schließen
ftp_close($conn_id);
?>

Siehe auch

  • ftp_chdir() - Verzeichnis-Wechsel auf einem FTP-Server
  • ftp_cdup() - Wechselt in das darüberliegende Verzeichnis


Alias von ftp_close

  • « ftp_pwd
  • ftp_raw »
  • PHP Manual
  • FTP-Funktionen
  • Alias von ftp_close

ftp_quit

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_quit — Alias von ftp_close()

Beschreibung

Diese Funktion ist ein Alias für: ftp_close().


Sendet ein beliebiges Kommando an den FTP-Server

  • « ftp_quit
  • ftp_rawlist »
  • PHP Manual
  • FTP-Funktionen
  • Sendet ein beliebiges Kommando an den FTP-Server

ftp_raw

(PHP 5, PHP 7, PHP 8)

ftp_raw — Sendet ein beliebiges Kommando an den FTP-Server

Beschreibung

ftp_raw ( resource $ftp_stream , string $command ) : array

Sendet ein beliebiges Kommando command an den FTP-Server.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

command

Das auszuführende Kommando.

Rückgabewerte

Gibt die Serverantwort als ein Array von Zeichenketten zurück. Die Ausgabe wird in keinster Weise ausgewertet. ftp_raw() versucht auch nicht zu bestimmen, ob das Kommando erfolgreich war.

Beispiele

Beispiel #1 ftp_raw() für den manuellen Login auf einem FTP-Server nutzen.

<?php
$fp = ftp_connect("ftp.example.com");

/* Dies entspricht:
   ftp_login($fp, "joeblow", "secret"); */
ftp_raw($fp, "USER joeblow");
ftp_raw($fp, "PASS secret");
?>

Siehe auch

  • ftp_exec() - Fordert die Ausführung eines Programmes auf dem FTP-Server an


Gibt eine detaillierte Liste der Dateien in einem angegebenen Verzeichnis zurück

  • « ftp_raw
  • ftp_rename »
  • PHP Manual
  • FTP-Funktionen
  • Gibt eine detaillierte Liste der Dateien in einem angegebenen Verzeichnis zurück

ftp_rawlist

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_rawlist — Gibt eine detaillierte Liste der Dateien in einem angegebenen Verzeichnis zurück

Beschreibung

ftp_rawlist ( resource $ftp_stream , string $directory , bool $recursive = false ) : array

ftp_rawlist() führt das FTP-LIST-Kommando aus und gibt das Ergebnis als Array zurück.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

directory

Der Verzeichnispfad. Kann Argumente für den LIST-Befehl enthalten.

recursive

Falls auf true gesetzt, wird als Kommando LIST -R ausgeführt.

Rückgabewerte

Gibt ein Array zurück, in dem jedes Element einer Textzeile entspricht. Gibt false zurück, wenn das übergebene directory ungültig ist.

Die Ausgabe wird in keinster Weise ausgewertet. Der Systemtyp, der von ftp_systype() zurückgegeben wird, kann benutzt werden, um zu bestimmen, wie die Ergebnisse interpretiert werden sollen.

Beispiele

Beispiel #1 ftp_rawlist()-Beispiel

<?php

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// get the file list for /
$buff = ftp_rawlist($conn_id, '/');

// close the connection
ftp_close($conn_id);

// output the buffer
var_dump($buff);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  [0]=>
  string(65) "drwxr-x---   3 vincent  vincent      4096 Jul 12 12:16 public_ftp"
  [1]=>
  string(66) "drwxr-x---  15 vincent  vincent      4096 Nov  3 21:31 public_html"
  [2]=>
  string(73) "lrwxrwxrwx   1 vincent  vincent        11 Jul 12 12:16 www -> public_html"
}

Siehe auch

  • ftp_nlist() - Gibt eine Liste der im angegebenen Verzeichnis enthaltenen Dateien zurück
  • ftp_mlsd() - Returns a list of files in the given directory


Benennt eine Datei auf dem FTP-Server um

  • « ftp_rawlist
  • ftp_rmdir »
  • PHP Manual
  • FTP-Funktionen
  • Benennt eine Datei auf dem FTP-Server um

ftp_rename

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_rename — Benennt eine Datei auf dem FTP-Server um

Beschreibung

ftp_rename ( resource $ftp_stream , string $oldname , string $newname ) : bool

ftp_rename() benennt eine Datei oder ein Verzeichnis auf dem FTP_Server um.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

oldname

Der alte Datei-/Verzeichnisname.

newname

Der neue Name.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Im Fehlerfall (wie dem Versuch eine nicht exisitierende Datei umzubenennen) wird ein E_WARNING Fehler erzeugt.

Beispiele

Beispiel #1 ftp_rename()-Beispiel

<?php
$old_file = 'somefile.txt.bak';
$new_file = 'somefile.txt';

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Versuche $old_file in $new_file umzubenennen
if (ftp_rename($conn_id, $old_file, $new_file)) {
 echo "$old_file erfolgreich in $new_file umbenannt\n";
} else {
 echo "Ein Fehler trat beim Umbenennen von $old_file in $new_file auf\n";
}

// Verbindung schließen
ftp_close($conn_id);
?>


Löscht ein Verzeichnis

  • « ftp_rename
  • ftp_set_option »
  • PHP Manual
  • FTP-Funktionen
  • Löscht ein Verzeichnis

ftp_rmdir

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_rmdir — Löscht ein Verzeichnis

Beschreibung

ftp_rmdir ( resource $ftp_stream , string $directory ) : bool

Löscht das angegebene directory vom FTP-Server.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

directory

Das zu löschende Verzeichnis. Dies muss entweder ein absoluter oder relativer Pfad zu einem leeren Verzeichnis sein.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ftp_rmdir()-Beispiel

<?php

$dir = 'www/';

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Versuche das Verzeichnis $dir zu löschen
if (ftp_rmdir($conn_id, $dir)) {
    echo "$dir erfolgreich gelöscht\n";
} else {
    echo "Ein Fehler trat beim Löschen von $dir auf\n";
}

ftp_close($conn_id);

?>

Siehe auch

  • ftp_mkdir() - Erzeugt ein Verzeichnis


Setzt diverse FTP-Laufzeitoptionen

  • « ftp_rmdir
  • ftp_site »
  • PHP Manual
  • FTP-Funktionen
  • Setzt diverse FTP-Laufzeitoptionen

ftp_set_option

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ftp_set_option — Setzt diverse FTP-Laufzeitoptionen

Beschreibung

ftp_set_option ( resource $ftp_stream , int $option , mixed $value ) : bool

Diese Funktion kontrolliert diverse FTP-Laufzeitoptionen für den angegebenen FTP-Stream.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

option

Zur Zeit werden folgende Optionen unterstützt:

Unterstützte FTP-Laufzeitoptionen
FTP_TIMEOUT_SEC | Ändert den Timeout in Sekunden für alle folgenden Netzwerkoperationen. value muss eine ganze Zahl sein, die größer als 0 ist. Der Standardwert des Timeouts ist 90 Sekunden.
FTP_AUTOSEEK | Falls aktiviert, werden GET- oder PUT-Anfragen mit einem resumepos- oder startpos-Parameter innerhalb der Datei erst die angegebene Position suchen. Dies ist standardmäßig aktiviert.
FTP_USEPASVADDRESS | Falls deaktiviert, ignoriert PHP die IP-Adresse, die vom FTP-Server als Antwort auf das PASV-Kommando zurückgeliefert wurde, und verwendet statt dessen die IP-Adresse, die im ftp_connect() Aufruf bereit gestellt wurde. value muss boolean sein.

value

Dieser Parameter hängt davon ab, welche option für die Änderung ausgewählt wurde.

Rückgabewerte

Gibt true zurück, wenn die Option gesetzt werden konnte, sonst false. Eine Warnung wird geworfen, falls die option nicht unterstützt wird oder falls der angegebene value nicht mit dem erwarteten Wert für die angegebene option übereinstimmt.

Beispiele

Beispiel #1 ftp_set_option()-Beispiel

<?php
// Setze den Netzwerk-Timeout auf 10 Sekunden
ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 10);
?>

Siehe auch

  • ftp_get_option() - Ruft diverse Laufzeitoptionen des angegebenen FTP-Streams ab


Sendet ein SITE-Kommando zum Server

  • « ftp_set_option
  • ftp_size »
  • PHP Manual
  • FTP-Funktionen
  • Sendet ein SITE-Kommando zum Server

ftp_site

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_site — Sendet ein SITE-Kommando zum Server

Beschreibung

ftp_site ( resource $ftp_stream , string $command ) : bool

ftp_site() sendet das angegebene SITE-Kommando zum FTP-Server.

SITE-Kommandos sind nicht standardisiert und unterscheiden sich von Server zu Server. Sie sind nützlich, um Dinge wie Datei-Zugriffsrechte und Gruppen-Mitgliedschaften zu handhaben.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

command

Das SITE-Kommando. Beachten Sie, dass dieser Parameter nicht escapt ist und dass deswegen Probleme bei Dateinamen mit Leerzeichen oder anderen Zeichen auftreten können.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Sending a SITE command to an ftp server

<?php
// Verbindung aufbauen
$conn = ftp_connect('ftp.example.com');
if (!$conn) die('Verbindung zu ftp.example.com konnte nicht aufgebaut werden');

// Login mit Benutzername und Passwort
if (!ftp_login($conn, 'user', 'pass')) die('Fehler beim Login zu ftp.example.com');

// Kommando "SITE CHMOD 0600 /home/user/privatefile" an den Server senden */
if (ftp_site($conn, 'CHMOD 0600 /home/user/privatefile')) {
   echo "Kommando erfolgreich ausgeführt.\n";
} else {
   die('Kommando fehlgeschlagen.');
}
?>

Siehe auch

  • ftp_raw() - Sendet ein beliebiges Kommando an den FTP-Server


Gibt die Größe der angegebenen Datei zurück

  • « ftp_site
  • ftp_ssl_connect »
  • PHP Manual
  • FTP-Funktionen
  • Gibt die Größe der angegebenen Datei zurück

ftp_size

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_size — Gibt die Größe der angegebenen Datei zurück

Beschreibung

ftp_size ( resource $ftp_stream , string $remote_file ) : int

ftp_size() gibt die Größe der angegebenen Datei in Bytes zurück.

Hinweis:

Nicht alle Server unterstützen dieses Feature.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

remote_file

Die entfernte Datei.

Rückgabewerte

Gibt bei Erfolg die Dateigröße zurück, sonst -1.

Beispiele

Beispiel #1 ftp_size() example

<?php

$file = 'somefile.txt';

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Ermitteln der Größe von $file
$res = ftp_size($conn_id, $file);

if ($res != -1) {
    echo "$file ist $res Bytes groß";
} else {
    echo "Größe konnte nicht bestimmt werden";
}

// Verbindung schließen
ftp_close($conn_id);

?>

Siehe auch

  • ftp_rawlist() - Gibt eine detaillierte Liste der Dateien in einem angegebenen Verzeichnis zurück


Öffnet eine sichere SSL-FTP-Verbindung

  • « ftp_size
  • ftp_systype »
  • PHP Manual
  • FTP-Funktionen
  • Öffnet eine sichere SSL-FTP-Verbindung

ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_ssl_connect — Öffnet eine sichere SSL-FTP-Verbindung

Beschreibung

ftp_ssl_connect ( string $host , int $port = 21 , int $timeout = 90 ) : resource

ftp_ssl_connect() öffnet eine explizite SSL-FTP-Verbindung zu dem angegebenen host. Das impliziert, dass ftp_ssl_connect() gelingen wird, selbst wenn der Server nicht für SSL-FTP konfiguriert ist, oder sein Zertifikat ungültig ist. Erst wenn ftp_login() aufgerufen wird, sendet der Client das entsprechende AUTH-FTP-Kommando, so dass ftp_login() in den genannten Fällen fehlschlagen wird.

Hinweis: Warum diese Funktion eventuell nicht vorhanden ist

Vor PHP 7.0.0 war ftp_ssl_connect() nur verfügbar, wenn sowohl das FTP-Modul als auch OpenSSL-Unterstützung statisch in PHP eingebunden wurde. Daher war diese Funktion in den offiziellen PHP-Builds unter Windows nicht definiert. Um diese Funktion auch unter Windows verfügbar zu machen, musste PHP selbst kompiliert werden.

Hinweis:

ftp_ssl_connect() ist nicht dazu gedacht, mit sFTP benutzt zu werden. Um sFTP mit PHP zu benutzen, verwenden Sie bitte ssh2_sftp().

Parameter-Liste

host

Die Adresse des FTP-Servers. Die Adresse des FTP-Servers. Dieser Parameter sollte keinen abschließenden Schrägstrich und kein vorangestelltes ftp:// haben.

port

Gibt einen alternativen Port für die Verbindung an. Fehlt er oder wird er auf 0 gesetzt, wird der Standard-FTP-Port 21 benutzt.

timeout

Dieser Parameter bestimmt den Timeout für alle nachfolgenden Netzwerktätigkeiten. Falls er fehlt, wird er auf den Standardwert von 90 Sekunden gesetzt. Der Timeout kann jederzeit mittels ftp_set_option() gesetzt und mittels ftp_get_option() abgefragt werden.

Rückgabewerte

Gibt bei Erfolg einen SSL-FTP-Stream zurück oder false, falls ein Fehler auftrat.

Changelog

Version | Beschreibung
5.2.2 | Diese Funktion gibt nun false zurück, wenn sie keine SSL-Verbindung aufbauen kann. Vorher gab es einen Fallback auf eine Nicht-SSL-Verbindung.

Beispiele

Beispiel #1 ftp_ssl_connect()-Beispiel

<?php

// SSL-Verbindung aufbauen
$conn_id = ftp_ssl_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if (!$login_result) {
    // PHP hat in diesem Fall bereits eine Nachricht der Stufe E_WARNING erzeugt
    die("Login nicht möglich");
}

echo ftp_pwd($conn_id); // /

// SSL-Verbindung schließen
ftp_close($conn_id);
?>

Siehe auch

  • ftp_connect() - Stellt eine FTP-Verbindung her


Gibt den Systemtyp des entfernten FTP-Servers zurück

  • « ftp_ssl_connect
  • Gearman »
  • PHP Manual
  • FTP-Funktionen
  • Gibt den Systemtyp des entfernten FTP-Servers zurück

ftp_systype

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_systype — Gibt den Systemtyp des entfernten FTP-Servers zurück

Beschreibung

ftp_systype ( resource $ftp_stream ) : string

Gibt den Systemtyp zurück des entfernten FTP-Servers zurück.

Parameter-Liste

ftp_stream

Der Verbindungshandler der FTP-Verbindung.

Rückgabewerte

Returns the remote system type, or false on error.

Beispiele

Beispiel #1 ftp_systype()-Beispiel

<?php

// Verbindung aufbauen
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'user', 'password');

// Systemtyp abfragen
if ($type = ftp_systype($ftp)) {
    echo "Example.com ist vom Typ $type\n";
} else {
    echo "Konnte den Systemtyp nicht bestimmen";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Example.com ist vom Typ UNIX


Gearman

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Basic usage
    • Basic Gearman client and worker, background
    • Basic Gearman client and worker, submitting tasks
  • GearmanClient — The GearmanClient class
    • GearmanClient::addOptions — Add client options
    • GearmanClient::addServer — Add a job server to the client
    • GearmanClient::addServers — Add a list of job servers to the client
    • GearmanClient::addTask — Add a task to be run in parallel
    • GearmanClient::addTaskBackground — Add a background task to be run in parallel
    • GearmanClient::addTaskHigh — Add a high priority task to run in parallel
    • GearmanClient::addTaskHighBackground — Add a high priority background task to be run in parallel
    • GearmanClient::addTaskLow — Add a low priority task to run in parallel
    • GearmanClient::addTaskLowBackground — Add a low priority background task to be run in parallel
    • GearmanClient::addTaskStatus — Add a task to get status
    • GearmanClient::clearCallbacks — Clear all task callback functions
    • GearmanClient::clone — Create a copy of a GearmanClient object
    • GearmanClient::__construct — Create a GearmanClient instance
    • GearmanClient::context — Get the application context
    • GearmanClient::data — Get the application data (deprecated)
    • GearmanClient::do — Run a single task and return a result [deprecated]
    • GearmanClient::doBackground — Run a task in the background
    • GearmanClient::doHigh — Run a single high priority task
    • GearmanClient::doHighBackground — Run a high priority task in the background
    • GearmanClient::doJobHandle — Get the job handle for the running task
    • GearmanClient::doLow — Run a single low priority task
    • GearmanClient::doLowBackground — Run a low priority task in the background
    • GearmanClient::doNormal — Run a single task and return a result
    • GearmanClient::doStatus — Get the status for the running task
    • GearmanClient::echo — Send data to all job servers to see if they echo it back [deprecated]
    • GearmanClient::error — Returns an error string for the last error encountered
    • GearmanClient::getErrno — Get an errno value
    • GearmanClient::jobStatus — Get the status of a background job
    • GearmanClient::ping — Send data to all job servers to see if they echo it back
    • GearmanClient::removeOptions — Remove client options
    • GearmanClient::returnCode — Get the last Gearman return code
    • GearmanClient::runTasks — Run a list of tasks in parallel
    • GearmanClient::setClientCallback — Callback function when there is a data packet for a task (deprecated)
    • GearmanClient::setCompleteCallback — Set a function to be called on task completion
    • GearmanClient::setContext — Set application context
    • GearmanClient::setCreatedCallback — Set a callback for when a task is queued
    • GearmanClient::setData — Set application data (deprecated)
    • GearmanClient::setDataCallback — Callback function when there is a data packet for a task
    • GearmanClient::setExceptionCallback — Set a callback for worker exceptions
    • GearmanClient::setFailCallback — Set callback for job failure
    • GearmanClient::setOptions — Set client options
    • GearmanClient::setStatusCallback — Set a callback for collecting task status
    • GearmanClient::setTimeout — Set socket I/O activity timeout
    • GearmanClient::setWarningCallback — Set a callback for worker warnings
    • GearmanClient::setWorkloadCallback — Set a callback for accepting incremental data updates
    • GearmanClient::timeout — Get current socket I/O activity timeout value
    • GearmanClient::wait — Wait for I/O activity on all connections in a client
  • GearmanJob — The GearmanJob class
    • GearmanJob::complete — Send the result and complete status (deprecated)
    • GearmanJob::__construct — Create a GearmanJob instance
    • GearmanJob::data — Send data for a running job (deprecated)
    • GearmanJob::exception — Send exception for running job (deprecated)
    • GearmanJob::fail — Send fail status (deprecated)
    • GearmanJob::functionName — Get function name
    • GearmanJob::handle — Get the job handle
    • GearmanJob::returnCode — Get last return code
    • GearmanJob::sendComplete — Send the result and complete status
    • GearmanJob::sendData — Send data for a running job
    • GearmanJob::sendException — Send exception for running job (exception)
    • GearmanJob::sendFail — Send fail status
    • GearmanJob::sendStatus — Send status
    • GearmanJob::sendWarning — Send a warning
    • GearmanJob::setReturn — Set a return value
    • GearmanJob::status — Send status (deprecated)
    • GearmanJob::unique — Get the unique identifier
    • GearmanJob::warning — Send a warning (deprecated)
    • GearmanJob::workload — Get workload
    • GearmanJob::workloadSize — Get size of work load
  • GearmanTask — The GearmanTask class
    • GearmanTask::__construct — Create a GearmanTask instance
    • GearmanTask::create — Create a task (deprecated)
    • GearmanTask::data — Get data returned for a task
    • GearmanTask::dataSize — Get the size of returned data
    • GearmanTask::function — Get associated function name (deprecated)
    • GearmanTask::functionName — Get associated function name
    • GearmanTask::isKnown — Determine if task is known
    • GearmanTask::isRunning — Test whether the task is currently running
    • GearmanTask::jobHandle — Get the job handle
    • GearmanTask::recvData — Read work or result data into a buffer for a task
    • GearmanTask::returnCode — Get the last return code
    • GearmanTask::sendData — Send data for a task (deprecated)
    • GearmanTask::sendWorkload — Send data for a task
    • GearmanTask::taskDenominator — Get completion percentage denominator
    • GearmanTask::taskNumerator — Get completion percentage numerator
    • GearmanTask::unique — Get the unique identifier for a task
    • GearmanTask::uuid — Get the unique identifier for a task (deprecated)
  • GearmanWorker — The GearmanWorker class
    • GearmanWorker::addFunction — Register and add callback function
    • GearmanWorker::addOptions — Add worker options
    • GearmanWorker::addServer — Add a job server
    • GearmanWorker::addServers — Add job servers
    • GearmanWorker::clone — Create a copy of the worker
    • GearmanWorker::__construct — Create a GearmanWorker instance
    • GearmanWorker::echo — Test job server response
    • GearmanWorker::error — Get the last error encountered
    • GearmanWorker::getErrno — Get errno
    • GearmanWorker::options — Get worker options
    • GearmanWorker::register — Register a function with the job server
    • GearmanWorker::removeOptions — Remove worker options
    • GearmanWorker::returnCode — Get last Gearman return code
    • GearmanWorker::setId — Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers
    • GearmanWorker::setOptions — Set worker options
    • GearmanWorker::setTimeout — Set socket I/O activity timeout
    • GearmanWorker::timeout — Get socket I/O activity timeout
    • GearmanWorker::unregister — Unregister a function name with the job servers
    • GearmanWorker::unregisterAll — Unregister all function names with the job servers
    • GearmanWorker::wait — Wait for activity from one of the job servers
    • GearmanWorker::work — Wait for and perform jobs
  • GearmanException — The GearmanException class


Einführung

» Gearman is a generic application framework for farming out work to multiple machines or processes. It allows applications to complete tasks in parallel, to load balance processing, and to call functions between languages. The framework can be used in a variety of applications, from high-availability web sites to the transport of database replication events.

This extension provides classes for writing Gearman clients and workers.


Anforderungen

This extension requires the » libgearman, » libevent and » uuid libraries, and a running Gearman server.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/gearman


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Return values. Always check GearmanClient::error() or GearmanWorker() for a string error, as it may contain more details:

GEARMAN_SUCCESS (int)
Whatever action was taken was successful.
GEARMAN_IO_WAIT (int)
When in non-blocking mode, an event is hit that would have blocked.
GEARMAN_ERRNO (int)
A system error. Check GearmanClient::errno() or GearmanWorker::errno() for the system error code that was returned.
GEARMAN_NO_ACTIVE_FDS (int)
GearmanClient::wait() or GearmanWorker() was called with no connections.
GEARMAN_UNEXPECTED_PACKET (int)
Indicates something going very wrong in gearmand. Applies only to GearmanWorker.
GEARMAN_GETADDRINFO (int)
DNS resolution failed (invalid host, port, etc).
GEARMAN_NO_SERVERS (int)
Did not call GearmanClient::addServer() before submitting jobs or tasks.
GEARMAN_LOST_CONNECTION (int)
Lost a connection during a request.
GEARMAN_MEMORY_ALLOCATION_FAILURE (int)
Memory allocation failed (ran out of memory).
GEARMAN_SERVER_ERROR (int)
Something went wrong in the Gearman server and it could not handle the request gracefully.
GEARMAN_WORK_DATA (int)
Notice return code obtained with GearmanClient::returnCode() when using GearmanClient::do(). Sent to update the client with data from a running job. A worker uses this when it needs to send updates, send partial results, or flush data during long running jobs.
GEARMAN_WORK_WARNING (int)
Notice return code obtained with GearmanClient::returnCode() when using GearmanClient::do(). Updates the client with a warning. The behavior is just like GEARMAN_WORK_DATA, but should be treated as a warning instead of normal response data.
GEARMAN_WORK_STATUS (int)
Notice return code obtained with GearmanClient::returnCode() when using GearmanClient::do(). Sent to update the status of a long running job. Use GearmanClient::doStatus() to obtain the percentage complete of the task.
GEARMAN_WORK_EXCEPTION (int)
Notice return code obtained with GearmanClient::returnCode() when using GearmanClient::do(). Indicates that a job failed with a given exception.
GEARMAN_WORK_FAIL (int)
Notice return code obtained with GearmanClient::returnCode() when using GearmanClient::do(). Indicates that the job failed.
GEARMAN_COULD_NOT_CONNECT (int)
Failed to connect to servers.
GEARMAN_INVALID_FUNCTION_NAME (int)
Trying to register a function name of NULL or using the callback interface without specifying callbacks.
GEARMAN_INVALID_WORKER_FUNCTION (int)
Trying to register a function with a NULL callback function.
GEARMAN_NO_REGISTERED_FUNCTIONS (int)
When a worker gets a job for a function it did not register.
GEARMAN_NO_JOBS (int)
For a non-blocking worker, when GearmanWorker::work() does not have any active jobs.
GEARMAN_ECHO_DATA_CORRUPTION (int)
After GearmanClient::echo() or GearmanWorker::echo() the data returned doesn't match the data sent.
GEARMAN_NEED_WORKLOAD_FN (int)
When the client opted to stream the workload of a task, but did not specify a workload callback function.
GEARMAN_PAUSE (int)
For the non-blocking client task interface, can be returned from the task callback to "pause" the call and return from GearmanClient::runTasks(). Call GearmanClient::runTasks() again to continue.
GEARMAN_UNKNOWN_STATE (int)
Internal client/worker state error.
GEARMAN_SEND_BUFFER_TOO_SMALL (int)
Internal error: trying to flush more data in one atomic chunk than is possible due to hard-coded buffer sizes.
GEARMAN_TIMEOUT (int)
Hit the timeout limit set by the client/worker.

GearmanClient options:

GEARMAN_CLIENT_GENERATE_UNIQUE (int)
Generate a unique id (UUID) for each task.
GEARMAN_CLIENT_NON_BLOCKING (int)
Run the cient in a non-blocking mode.
GEARMAN_CLIENT_UNBUFFERED_RESULT (int)
Allow the client to read data in chunks rather than have the library buffer the entire data result and pass that back.
GEARMAN_CLIENT_FREE_TASKS (int)
Automatically free task objects once they are complete. This is the default setting in this extension to prevent memory leaks.

GearmanWorker options:

GEARMAN_WORKER_NON_BLOCKING (int)
Run the worker in non-blocking mode.
GEARMAN_WORKER_GRAB_UNIQ (int)
Return the client assigned unique ID in addition to the job handle.

Base Gearman configuration:

GEARMAN_DEFAULT_TCP_HOST (string)
GEARMAN_DEFAULT_TCP_PORT (int)
GEARMAN_DEFAULT_SOCKET_TIMEOUT (int)
GEARMAN_DEFAULT_SOCKET_SEND_SIZE (int)
GEARMAN_DEFAULT_SOCKET_RECV_SIZE (int)
GEARMAN_MAX_ERROR_SIZE (int)
GEARMAN_PACKET_HEADER_SIZE (int)
GEARMAN_JOB_HANDLE_SIZE (int)
GEARMAN_OPTION_SIZE (int)
GEARMAN_UNIQUE_SIZE (int)
GEARMAN_MAX_COMMAND_ARGS (int)
GEARMAN_ARGS_BUFFER_SIZE (int)
GEARMAN_SEND_BUFFER_SIZE (int)
GEARMAN_RECV_BUFFER_SIZE (int)
GEARMAN_WORKER_WAIT_TIMEOUT (int)


Beispiele

Inhaltsverzeichnis

  • Basic usage
  • Basic Gearman client and worker, background
  • Basic Gearman client and worker, submitting tasks


Basic usage

Beispiel #1 Basic Gearman client and worker

This example shows a very simple client and worker. The client sends a string to the job server, and the worker reverses the string and sends it back. The job is performed synchronously.

<?php

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo "Sending job\n";

# Send reverse job
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");

  # Check for various return packets and errors.
  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      echo "Data: $result\n";
      break;
    case GEARMAN_WORK_STATUS:
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Status: $numerator/$denominator complete\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Failed\n";
      exit;
    case GEARMAN_SUCCESS:
      echo "Success: $result\n";
      break;
    default:
      echo "RET: " . $gmclient->returnCode() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

?>
<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server. Change the worker function to
# "reverse_fn_fast" for a faster worker with no output.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Received job: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload: $workload ($workload_size)\n";

  # This status loop is not needed, just showing how it works
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x, $workload_size);
    sleep(1);
  }

  $result= strrev($workload);
  echo "Result: $result\n";

  # Return what we want to send back to the client.
  return $result;
}

# A much simpler and less verbose version of the above function would be:
function reverse_fn_fast($job)
{
  return strrev($job->workload());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

% php reverse_worker.php
Starting
Waiting for job...
Received job: H:foo.local:36
Workload: Hello! (6)
Sending status: 1/6 complete
Sending status: 2/6 complete
Sending status: 3/6 complete
Sending status: 4/6 complete
Sending status: 5/6 complete
Sending status: 6/6 complete
Result: !olleH

% php reverse_client.php
Starting
Sending job
Status: 1/6 complete
Status: 2/6 complete
Status: 3/6 complete
Status: 4/6 complete
Status: 5/6 complete
Status: 6/6 complete
Success: !olleH


Basic Gearman client and worker, background

Beispiel #1 Basic Gearman client and worker, background

This example shows a very simple client and worker. The client sends a string to the job server as a background job, and the worker reverses the string. Note that since the work is performed asynchronously, the client does not wait for the job to complete and exits (and hence the client never receives the results).

<?php

# create our client object
$gmclient= new GearmanClient();

# add the default server (localhost)
$gmclient->addServer();

# run reverse client in the background
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "bad return code\n";
  exit;
}

echo "done!\n";

?>
<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server. Change the worker function to
# "reverse_fn_fast" for a faster worker with no output.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Received job: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload: $workload ($workload_size)\n";

  # This status loop is not needed, just showing how it works
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x, $workload_size);
    sleep(1);
  }

  $result= strrev($workload);
  echo "Result: $result\n";

  # Return what we want to send back to the client.
  return $result;
}

# A much simpler and less verbose version of the above function would be:
function reverse_fn_fast($job)
{
  return strrev($job->workload());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

% php reverse_worker.php
Starting
Waiting for job...
Received job: H:foo.local:41
Workload: this is a test (14)
1/14 complete
2/14 complete
3/14 complete
4/14 complete
5/14 complete
6/14 complete
7/14 complete
8/14 complete
9/14 complete
10/14 complete
11/14 complete
12/14 complete
13/14 complete
14/14 complete
Result: tset a si siht

% php reverse_client_bg.php
done!


Basic Gearman client and worker, submitting tasks

Beispiel #1 Basic Gearman client and worker, submitting tasks

In this example, the basic reverse client extended to run two tasks in parallel. The reverse worker is unchanged except to add sending of data back during processing.

<?php

# create the gearman client
$gmc= new GearmanClient();

# add the default server (localhost)
$gmc->addServer();

# register some callbacks
$gmc->setCreatedCallback("reverse_created");
$gmc->setDataCallback("reverse_data");
$gmc->setStatusCallback("reverse_status");
$gmc->setCompleteCallback("reverse_complete");
$gmc->setFailCallback("reverse_fail");

# set some arbitrary application data
$data['foo'] = 'bar';

# add two tasks
$task= $gmc->addTask("reverse", "foo", $data);
$task2= $gmc->addTaskLow("reverse", "bar", NULL);

# run the tasks in parallel (assuming multiple workers)
if (! $gmc->runTasks())
{
    echo "ERROR " . $gmc->error() . "\n";
    exit;
}

echo "DONE\n";

function reverse_created($task)
{
    echo "CREATED: " . $task->jobHandle() . "\n";
}

function reverse_status($task)
{
    echo "STATUS: " . $task->jobHandle() . " - " . $task->taskNumerator() .
         "/" . $task->taskDenominator() . "\n";
}

function reverse_complete($task)
{
    echo "COMPLETE: " . $task->jobHandle() . ", " . $task->data() . "\n";
}

function reverse_fail($task)
{
    echo "FAILED: " . $task->jobHandle() . "\n";
}

function reverse_data($task)
{
    echo "DATA: " . $task->data() . "\n";
}

?>
<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server. Change the worker function to
# "reverse_fn_fast" for a faster worker with no output.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Received job: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload: $workload ($workload_size)\n";

  # This status loop is not needed, just showing how it works
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Result: $result\n";

  # Return what we want to send back to the client.
  return $result;
}

# A much simpler and less verbose version of the above function would be:
function reverse_fn_fast($job)
{
  return strrev($job->workload());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

% php reverse_worker.php
Starting
Waiting for job...
Received job: H:foo.local:45
Workload: foo (3)
1/3 complete
2/3 complete
3/3 complete
Result: oof
Received job: H:foo.local:44
Workload: bar (3)
1/3 complete
2/3 complete
3/3 complete
Result: rab

% php reverse_client_task.php
CREATED: H:foo.local:44
CREATED: H:foo.local:45
STATUS: H:foo.local:45 - 1/3
DATA: f
STATUS: H:foo.local:45 - 2/3
DATA: o
STATUS: H:foo.local:45 - 3/3
DATA: o
COMPLETE: H:foo.local:45, oof
STATUS: H:foo.local:44 - 1/3
DATA: b
STATUS: H:foo.local:44 - 2/3
DATA: a
STATUS: H:foo.local:44 - 3/3
DATA: r
COMPLETE: H:foo.local:44, rab
DONE


The GearmanClient class

(PECL gearman >= 0.5.0)

Einführung

Represents a class for connecting to a Gearman job server and making requests to perform some function on provided data. The function performed must be one registered by a Gearman worker and the data passed is opaque to the job server.

Klassenbeschreibung

GearmanClient {
/* Methoden */
public addOptions ( int $options ) : bool
public addServer ( string $host = 127.0.0.1 , int $port = 4730 ) : bool
public addServers ( string $servers = 127.0.0.1:4730 ) : bool
public addTask ( string $function_name , string $workload , mixed &$context = ? , string $unique = ? ) : GearmanTask
public addTaskBackground ( string $function_name , string $workload , mixed &$context = ? , string $unique = ? ) : GearmanTask
public addTaskHigh ( string $function_name , string $workload , mixed &$context = ? , string $unique = ? ) : GearmanTask
public addTaskHighBackground ( string $function_name , string $workload , mixed &$context = ? , string $unique = ? ) : GearmanTask
public addTaskLow ( string $function_name , string $workload , mixed &$context = ? , string $unique = ? ) : GearmanTask
public addTaskLowBackground ( string $function_name , string $workload , mixed &$context = ? , string $unique = ? ) : GearmanTask
public addTaskStatus ( string $job_handle , string &$context = ? ) : GearmanTask
public clearCallbacks ( ) : bool
public clone ( ) : GearmanClient
public __construct ( )
public context ( ) : string
public data ( ) : string
public do ( string $function_name , string $workload , string $unique = ? ) : string
public doBackground ( string $function_name , string $workload , string $unique = ? ) : string
public doHigh ( string $function_name , string $workload , string $unique = ? ) : string
public doHighBackground ( string $function_name , string $workload , string $unique = ? ) : string
public doJobHandle ( ) : string
public doLow ( string $function_name , string $workload , string $unique = ? ) : string
public doLowBackground ( string $function_name , string $workload , string $unique = ? ) : string
public doNormal ( string $function_name , string $workload , string $unique = ? ) : string
public doStatus ( ) : array
public echo ( string $workload ) : bool
public error ( ) : string
public getErrno ( ) : int
public jobStatus ( string $job_handle ) : array
public ping ( string $workload ) : bool
public removeOptions ( int $options ) : bool
public returnCode ( ) : int
public runTasks ( ) : bool
public setClientCallback ( callable $callback ) : void
public setCompleteCallback ( callable $callback ) : bool
public setContext ( string $context ) : bool
public setCreatedCallback ( string $callback ) : bool
public setData ( string $data ) : bool
public setDataCallback ( callable $callback ) : bool
public setExceptionCallback ( callable $callback ) : bool
public setFailCallback ( callable $callback ) : bool
public setOptions ( int $options ) : bool
public setStatusCallback ( callable $callback ) : bool
public setTimeout ( int $timeout ) : bool
public setWarningCallback ( callable $callback ) : bool
public setWorkloadCallback ( callable $callback ) : bool
public timeout ( ) : int
public wait ( ) : bool
}

Inhaltsverzeichnis

  • GearmanClient::addOptions — Add client options
  • GearmanClient::addServer — Add a job server to the client
  • GearmanClient::addServers — Add a list of job servers to the client
  • GearmanClient::addTask — Add a task to be run in parallel
  • GearmanClient::addTaskBackground — Add a background task to be run in parallel
  • GearmanClient::addTaskHigh — Add a high priority task to run in parallel
  • GearmanClient::addTaskHighBackground — Add a high priority background task to be run in parallel
  • GearmanClient::addTaskLow — Add a low priority task to run in parallel
  • GearmanClient::addTaskLowBackground — Add a low priority background task to be run in parallel
  • GearmanClient::addTaskStatus — Add a task to get status
  • GearmanClient::clearCallbacks — Clear all task callback functions
  • GearmanClient::clone — Create a copy of a GearmanClient object
  • GearmanClient::__construct — Create a GearmanClient instance
  • GearmanClient::context — Get the application context
  • GearmanClient::data — Get the application data (deprecated)
  • GearmanClient::do — Run a single task and return a result [deprecated]
  • GearmanClient::doBackground — Run a task in the background
  • GearmanClient::doHigh — Run a single high priority task
  • GearmanClient::doHighBackground — Run a high priority task in the background
  • GearmanClient::doJobHandle — Get the job handle for the running task
  • GearmanClient::doLow — Run a single low priority task
  • GearmanClient::doLowBackground — Run a low priority task in the background
  • GearmanClient::doNormal — Run a single task and return a result
  • GearmanClient::doStatus — Get the status for the running task
  • GearmanClient::echo — Send data to all job servers to see if they echo it back [deprecated]
  • GearmanClient::error — Returns an error string for the last error encountered
  • GearmanClient::getErrno — Get an errno value
  • GearmanClient::jobStatus — Get the status of a background job
  • GearmanClient::ping — Send data to all job servers to see if they echo it back
  • GearmanClient::removeOptions — Remove client options
  • GearmanClient::returnCode — Get the last Gearman return code
  • GearmanClient::runTasks — Run a list of tasks in parallel
  • GearmanClient::setClientCallback — Callback function when there is a data packet for a task (deprecated)
  • GearmanClient::setCompleteCallback — Set a function to be called on task completion
  • GearmanClient::setContext — Set application context
  • GearmanClient::setCreatedCallback — Set a callback for when a task is queued
  • GearmanClient::setData — Set application data (deprecated)
  • GearmanClient::setDataCallback — Callback function when there is a data packet for a task
  • GearmanClient::setExceptionCallback — Set a callback for worker exceptions
  • GearmanClient::setFailCallback — Set callback for job failure
  • GearmanClient::setOptions — Set client options
  • GearmanClient::setStatusCallback — Set a callback for collecting task status
  • GearmanClient::setTimeout — Set socket I/O activity timeout
  • GearmanClient::setWarningCallback — Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback — Set a callback for accepting incremental data updates
  • GearmanClient::timeout — Get current socket I/O activity timeout value
  • GearmanClient::wait — Wait for I/O activity on all connections in a client


Add client options

  • « GearmanClient
  • GearmanClient::addServer »
  • PHP Manual
  • GearmanClient
  • Add client options

GearmanClient::addOptions

(PECL gearman >= 0.6.0)

GearmanClient::addOptions — Add client options

Beschreibung

public GearmanClient::addOptions ( int $options ) : bool

Adds one or more options to those already set.

Parameter-Liste

options

The options to add. One of the following constants, or a combination of them using the bitwise OR operator (|): GEARMAN_CLIENT_GENERATE_UNIQUE, GEARMAN_CLIENT_NON_BLOCKING, GEARMAN_CLIENT_UNBUFFERED_RESULT or GEARMAN_CLIENT_FREE_TASKS.

Rückgabewerte

Always returns true.


Add a job server to the client

  • « GearmanClient::addOptions
  • GearmanClient::addServers »
  • PHP Manual
  • GearmanClient
  • Add a job server to the client

GearmanClient::addServer

(PECL gearman >= 0.5.0)

GearmanClient::addServer — Add a job server to the client

Beschreibung

public GearmanClient::addServer ( string $host = 127.0.0.1 , int $port = 4730 ) : bool

Adds a job server to a list of servers that can be used to run a task. No socket I/O happens here; the server is simply added to the list.

Parameter-Liste

host

Der Hostname des Jobservers.

port

Der Port des Jobservers.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Adding two job servers

<?php

# Create our client object.
$gmclient= new GearmanClient();

# Add two job servers, the first on the default 4730 port
$gmclient->addServer("10.0.0.1");
$gmclient->addServer("10.0.0.2", 7003);

?>

Siehe auch

  • GearmanClient::addServers() - Add a list of job servers to the client


Add a list of job servers to the client

  • « GearmanClient::addServer
  • GearmanClient::addTask »
  • PHP Manual
  • GearmanClient
  • Add a list of job servers to the client

GearmanClient::addServers

(PECL gearman >= 0.5.0)

GearmanClient::addServers — Add a list of job servers to the client

Beschreibung

public GearmanClient::addServers ( string $servers = 127.0.0.1:4730 ) : bool

Adds a list of job servers that can be used to run a task. No socket I/O happens here; the servers are simply added to the full list of servers.

Parameter-Liste

servers

A comma-separated list of servers, each server specified in the format 'host:port'.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Add two job servers

<?php

# Create our client object.
$gmclient= new GearmanClient();

# Add multiple job servers, the first on the default 4730 port
$gmclient->addServers("10.0.0.1,10.0.0.2:7003");

?>

Siehe auch

  • GearmanClient::addServer() - Add a job server to the client


Add a task to be run in parallel

  • « GearmanClient::addServers
  • GearmanClient::addTaskBackground »
  • PHP Manual
  • GearmanClient
  • Add a task to be run in parallel

GearmanClient::addTask

(PECL gearman >= 0.5.0)

GearmanClient::addTask — Add a task to be run in parallel

Beschreibung

public GearmanClient::addTask ( string $function_name , string $workload , mixed &$context = ? , string $unique = ? ) : GearmanTask

Adds a task to be run in parallel with other tasks. Call this method for all the tasks to be run in parallel, then call GearmanClient::runTasks() to perform the work. Note that enough workers need to be available for the tasks to all run in parallel.

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

context

Der Anwendungskontext der mit einem Task verknüpft werden soll

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

A GearmanTask object or false if the task could not be added.

Beispiele

Beispiel #1 Basic submission of two tasks

<?php

# Create our gearman client
$gmclient= new GearmanClient();

# add the default job server
$gmclient->addServer();

# set a function to be called when the work is complete
$gmclient->setCompleteCallback("complete");

# add a task to perform the "reverse" function on the string "Hello World!"
$gmclient->addTask("reverse", "Hello World!", null, "1");

# add another task to perform the "reverse" function on the string "!dlroW olleH"
$gmclient->addTask("reverse", "!dlroW olleH", null, "2");

# run the tasks
$gmclient->runTasks();

function complete($task)
{
  print "COMPLETE: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

COMPLETE: 2, Hello World!
COMPLETE: 1, !dlroW olleH

Beispiel #2 Basic submission of two tasks with passing application context

<?php

$client = new GearmanClient();
$client->addServer();

# set a function to be called when the work is complete
$client->setCompleteCallback("reverse_complete");

# Add some tasks for a placeholder of where to put the results
$results = array();
$client->addTask("reverse", "Hello World!", &$results, "t1");
$client->addTask("reverse", "!dlroW olleH", &$results, "t2");

$client->runTasks();

# The results should now be filled in from the callbacks
foreach ($results as $id => $result)
   echo $id . ": " . $result['handle'] . ", " . $result['data'] . "\n";

function reverse_complete($task, $results)
{
   $results[$task->unique()] = array("handle"=>$task->jobHandle(), "data"=>$task->data());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

t2: H.foo:21, Hello World!
t1: H:foo:22, !dlroW olleH

Siehe auch

  • GearmanClient::addTaskHigh() - Add a high priority task to run in parallel
  • GearmanClient::addTaskLow() - Add a low priority task to run in parallel
  • GearmanClient::addTaskBackground() - Add a background task to be run in parallel
  • GearmanClient::addTaskHighBackground() - Add a high priority background task to be run in parallel
  • GearmanClient::addTaskLowBackground() - Add a low priority background task to be run in parallel
  • GearmanClient::runTasks() - Run a list of tasks in parallel


Add a background task to be run in parallel

  • « GearmanClient::addTask
  • GearmanClient::addTaskHigh »
  • PHP Manual
  • GearmanClient
  • Add a background task to be run in parallel

GearmanClient::addTaskBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskBackground — Add a background task to be run in parallel

Beschreibung

public GearmanClient::addTaskBackground ( string $function_name , string $workload , mixed &$context = ? , string $unique = ? ) : GearmanTask

Adds a background task to be run in parallel with other tasks. Call this method for all the tasks to be run in parallel, then call GearmanClient::runTasks() to perform the work.

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

context

Der Anwendungskontext der mit einem Task verknüpft werden soll

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

A GearmanTask object or false if the task could not be added.

Beispiele

Beispiel #1 Two tasks, one background and one not

This example illustrates the difference between running a background task and a normal task. The client adds two tasks to execute the same function, but one is added with addTaskBackground(). A callback is set so that progress of the job can be tracked. A simple worker with an artificial delay reports on the job progress and the client picks this up through the callback. Two workers are run for this example. Note that the background task does not show in the client output.

<?php

# The client script

# create our gearman client
$gmc= new GearmanClient();

# add the default job server
$gmc->addServer();

# set a couple of callbacks so we can track progress
$gmc->setCompleteCallback("reverse_complete");
$gmc->setStatusCallback("reverse_status");

# add a task for the "reverse" function
$task= $gmc->addTask("reverse", "Hello World!", null, "1");

# add another task, but this one to run in the background
$task= $gmc->addTaskBackground("reverse", "!dlroW olleH", null, "2");

if (! $gmc->runTasks())
{
    echo "ERROR " . $gmc->error() . "\n";
    exit;
}

echo "DONE\n";

function reverse_status($task)
{
    echo "STATUS: " . $task->unique() . ", " . $task->jobHandle() . " - " . $task->taskNumerator() .
         "/" . $task->taskDenominator() . "\n";
}

function reverse_complete($task)
{
    echo "COMPLETE: " . $task->unique() . ", " . $task->data() . "\n";
}

?>
<?php

# The worker script

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Received job: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload: $workload ($workload_size)\n";

  # This status loop is not needed, just showing how it works
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Result: $result\n";

  # Return what we want to send back to the client.
  return $result;
}

?>

Worker output for two workers running:

Received job: H:foo.local:65
Workload: !dlroW olleH (12)
1/12 complete
Received job: H:foo.local:66
Workload: Hello World! (12)
Sending status: 1/12 complete
Sending status: 2/12 complete
Sending status: 2/12 complete
Sending status: 3/12 complete
Sending status: 3/12 complete
Sending status: 4/12 complete
Sending status: 4/12 complete
Sending status: 5/12 complete
Sending status: 5/12 complete
Sending status: 6/12 complete
Sending status: 6/12 complete
Sending status: 7/12 complete
Sending status: 7/12 complete
Sending status: 8/12 complete
Sending status: 8/12 complete
Sending status: 9/12 complete
Sending status: 9/12 complete
Sending status: 10/12 complete
Sending status: 10/12 complete
Sending status: 11/12 complete
Sending status: 11/12 complete
Sending status: 12/12 complete
Sending status: 12/12 complete
Result: !dlroW olleH
Result: Hello World!

Client output:

STATUS: 1, H:foo.local:66 - 1/12
STATUS: 1, H:foo.local:66 - 2/12
STATUS: 1, H:foo.local:66 - 3/12
STATUS: 1, H:foo.local:66 - 4/12
STATUS: 1, H:foo.local:66 - 5/12
STATUS: 1, H:foo.local:66 - 6/12
STATUS: 1, H:foo.local:66 - 7/12
STATUS: 1, H:foo.local:66 - 8/12
STATUS: 1, H:foo.local:66 - 9/12
STATUS: 1, H:foo.local:66 - 10/12
STATUS: 1, H:foo.local:66 - 11/12
STATUS: 1, H:foo.local:66 - 12/12
COMPLETE: 1, !dlroW olleH
DONE

Siehe auch

  • GearmanClient::addTask() - Add a task to be run in parallel
  • GearmanClient::addTaskHigh() - Add a high priority task to run in parallel
  • GearmanClient::addTaskLow() - Add a low priority task to run in parallel
  • GearmanClient::addTaskHighBackground() - Add a high priority background task to be run in parallel
  • GearmanClient::addTaskLowBackground() - Add a low priority background task to be run in parallel
  • GearmanClient::runTasks() - Run a list of tasks in parallel


Add a high priority task to run in parallel

  • « GearmanClient::addTaskBackground
  • GearmanClient::addTaskHighBackground »
  • PHP Manual
  • GearmanClient
  • Add a high priority task to run in parallel

GearmanClient::addTaskHigh

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHigh — Add a high priority task to run in parallel

Beschreibung

public GearmanClient::addTaskHigh ( string $function_name , string $workload , mixed &$context = ? , string $unique = ? ) : GearmanTask

Adds a high priority task to be run in parallel with other tasks. Call this method for all the high priority tasks to be run in parallel, then call GearmanClient::runTasks() to perform the work. Tasks with a high priority will be selected from the queue before those of normal or low priority.

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

context

Der Anwendungskontext der mit einem Task verknüpft werden soll

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

A GearmanTask object or false if the task could not be added.

Beispiele

Beispiel #1 A high priority task along with two normal tasks

A high priority task is included among two other tasks. A single worker is available, so that tasks are run one at a time, with the high priority task run first.

<?php

# create the gearman client
$gmc= new GearmanClient();

# add the default job server
$gmc->addServer();

# set the callback for when the job is complete
$gmc->setCompleteCallback("reverse_complete");

# add tasks, one of which is high priority
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskHigh("reverse", "!dlroW olleH", null, "2");
$task= $gmc->addTask("reverse", "Hello World!", null, "3");

if (! $gmc->runTasks())
{
    echo "ERROR " . $gmc->error() . "\n";
    exit;
}
echo "DONE\n";

function reverse_complete($task)
{
    echo "COMPLETE: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

COMPLETE: 2, Hello World!
COMPLETE: 3, !dlroW olleH
COMPLETE: 1, !dlroW olleH
DONE

Siehe auch

  • GearmanClient::addTask() - Add a task to be run in parallel
  • GearmanClient::addTaskLow() - Add a low priority task to run in parallel
  • GearmanClient::addTaskBackground() - Add a background task to be run in parallel
  • GearmanClient::addTaskHighBackground() - Add a high priority background task to be run in parallel
  • GearmanClient::addTaskLowBackground() - Add a low priority background task to be run in parallel
  • GearmanClient::runTasks() - Run a list of tasks in parallel


Add a high priority background task to be run in parallel

  • « GearmanClient::addTaskHigh
  • GearmanClient::addTaskLow »
  • PHP Manual
  • GearmanClient
  • Add a high priority background task to be run in parallel

GearmanClient::addTaskHighBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskHighBackground — Add a high priority background task to be run in parallel

Beschreibung

public GearmanClient::addTaskHighBackground ( string $function_name , string $workload , mixed &$context = ? , string $unique = ? ) : GearmanTask

Adds a high priority background task to be run in parallel with other tasks. Call this method for all the tasks to be run in parallel, then call GearmanClient::runTasks() to perform the work. Tasks with a high priority will be selected from the queue before those of normal or low priority.

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

context

Der Anwendungskontext der mit einem Task verknüpft werden soll

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

A GearmanTask object or false if the task could not be added.

Siehe auch

  • GearmanClient::addTask() - Add a task to be run in parallel
  • GearmanClient::addTaskHigh() - Add a high priority task to run in parallel
  • GearmanClient::addTaskLow() - Add a low priority task to run in parallel
  • GearmanClient::addTaskBackground() - Add a background task to be run in parallel
  • GearmanClient::addTaskLowBackground() - Add a low priority background task to be run in parallel
  • GearmanClient::runTasks() - Run a list of tasks in parallel


Add a low priority task to run in parallel

  • « GearmanClient::addTaskHighBackground
  • GearmanClient::addTaskLowBackground »
  • PHP Manual
  • GearmanClient
  • Add a low priority task to run in parallel

GearmanClient::addTaskLow

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLow — Add a low priority task to run in parallel

Beschreibung

public GearmanClient::addTaskLow ( string $function_name , string $workload , mixed &$context = ? , string $unique = ? ) : GearmanTask

Adds a low priority background task to be run in parallel with other tasks. Call this method for all the tasks to be run in parallel, then call GearmanClient::runTasks() to perform the work. Tasks with a low priority will be selected from the queue after those of normal or low priority.

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

context

Der Anwendungskontext der mit einem Task verknüpft werden soll

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

A GearmanTask object or false if the task could not be added.

Beispiele

Beispiel #1 A low priority task along with two normal tasks

A low priority task is included among two other tasks. A single worker is available, so that tasks are run one at a time, with the low priority task run last.

<?php

# create the gearman client
$gmc= new GearmanClient();

# add the default job server
$gmc->addServer();

# set the callback for when the job is complete
$gmc->setCompleteCallback("reverse_complete");

# add tasks, one of which is low priority
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskLow("reverse", "!dlroW olleH", null, "2");
$task= $gmc->addTask("reverse", "Hello World!", null, "3");

if (! $gmc->runTasks())
{
    echo "ERROR " . $gmc->error() . "\n";
    exit;
}
echo "DONE\n";

function reverse_complete($task)
{
    echo "COMPLETE: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

COMPLETE: 3, !dlroW olleH
COMPLETE: 1, !dlroW olleH
COMPLETE: 2, Hello World!
DONE

Siehe auch

  • GearmanClient::addTask() - Add a task to be run in parallel
  • GearmanClient::addTaskHigh() - Add a high priority task to run in parallel
  • GearmanClient::addTaskBackground() - Add a background task to be run in parallel
  • GearmanClient::addTaskHighBackground() - Add a high priority background task to be run in parallel
  • GearmanClient::addTaskLowBackground() - Add a low priority background task to be run in parallel
  • GearmanClient::runTasks() - Run a list of tasks in parallel


Add a low priority background task to be run in parallel

  • « GearmanClient::addTaskLow
  • GearmanClient::addTaskStatus »
  • PHP Manual
  • GearmanClient
  • Add a low priority background task to be run in parallel

GearmanClient::addTaskLowBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLowBackground — Add a low priority background task to be run in parallel

Beschreibung

public GearmanClient::addTaskLowBackground ( string $function_name , string $workload , mixed &$context = ? , string $unique = ? ) : GearmanTask

Adds a low priority background task to be run in parallel with other tasks. Call this method for all the tasks to be run in parallel, then call GearmanClient::runTasks() to perform the work. Tasks with a low priority will be selected from the queue after those of normal or high priority.

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

context

Der Anwendungskontext der mit einem Task verknüpft werden soll

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

A GearmanTask object or false if the task could not be added.

Siehe auch

  • GearmanClient::addTask() - Add a task to be run in parallel
  • GearmanClient::addTaskHigh() - Add a high priority task to run in parallel
  • GearmanClient::addTaskLow() - Add a low priority task to run in parallel
  • GearmanClient::addTaskBackground() - Add a background task to be run in parallel
  • GearmanClient::addTaskHighBackground() - Add a high priority background task to be run in parallel
  • GearmanClient::runTasks() - Run a list of tasks in parallel


Add a task to get status

  • « GearmanClient::addTaskLowBackground
  • GearmanClient::clearCallbacks »
  • PHP Manual
  • GearmanClient
  • Add a task to get status

GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

GearmanClient::addTaskStatus — Add a task to get status

Beschreibung

public GearmanClient::addTaskStatus ( string $job_handle , string &$context = ? ) : GearmanTask

Used to request status information from the Gearman server, which will call the specified status callback (set using GearmanClient::setStatusCallback()).

Parameter-Liste

job_handle

The job handle for the task to get status for

context

Data to be passed to the status callback, generally a reference to an array or object

Rückgabewerte

A GearmanTask object.

Beispiele

Beispiel #1 Monitor completion of multiple background tasks

An artificial delay is introduced in the worker in this example to simulate a long running process. There is only one worker running for this example.

<?php

/* create our object */
$gmclient= new GearmanClient();

/* add the default server */
$gmclient->addServer();

/* start some background jobs and save the handles */
$handles = array();
$handles[0] = $gmclient->doBackground("reverse", "Hello World!");
$handles[1] = $gmclient->doBackground("reverse", "!dlroW olleH");

$gmclient->setStatusCallback("reverse_status");

/* Poll the server to see when those background jobs finish; */
/* a better method would be to use event callbacks */
do
{
   /* Use the context variable to track how many tasks have completed */
   $done = 0;
   $gmclient->addTaskStatus($handles[0], &$done);
   $gmclient->addTaskStatus($handles[1], &$done);
   $gmclient->runTasks();
   echo "Done: $done\n";
   sleep(1);
}
while ($done != 2);

function reverse_status($task, $done)
{
   if (!$task->isKnown())
      $done++;
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 0
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 1
Done: 2

Siehe auch

  • GearmanClient::setStatusCallback() - Set a callback for collecting task status


Clear all task callback functions

  • « GearmanClient::addTaskStatus
  • GearmanClient::clone »
  • PHP Manual
  • GearmanClient
  • Clear all task callback functions

GearmanClient::clearCallbacks

(PECL gearman >= 0.5.0)

GearmanClient::clearCallbacks — Clear all task callback functions

Beschreibung

public GearmanClient::clearCallbacks ( ) : bool

Clears all the task callback functions that have previously been set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Always returns true.

Siehe auch

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Create a copy of a GearmanClient object

  • « GearmanClient::clearCallbacks
  • GearmanClient::__construct »
  • PHP Manual
  • GearmanClient
  • Create a copy of a GearmanClient object

GearmanClient::clone

(PECL gearman >= 0.5.0)

GearmanClient::clone — Create a copy of a GearmanClient object

Beschreibung

public GearmanClient::clone ( ) : GearmanClient

Creates a copy of a GearmanClient object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A GearmanClient on success, false on failure.


Create a GearmanClient instance

  • « GearmanClient::clone
  • GearmanClient::context »
  • PHP Manual
  • GearmanClient
  • Create a GearmanClient instance

GearmanClient::__construct

(PECL gearman >= 0.5.0)

GearmanClient::__construct — Create a GearmanClient instance

Beschreibung

public GearmanClient::__construct ( )

Creates a GearmanClient instance representing a client that connects to the job server and submits tasks to complete.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A GearmanClient object.

Siehe auch

  • GearmanClient::clone() - Create a copy of a GearmanClient object


Get the application context

  • « GearmanClient::__construct
  • GearmanClient::data »
  • PHP Manual
  • GearmanClient
  • Get the application context

GearmanClient::context

(PECL gearman >= 0.6.0)

GearmanClient::context — Get the application context

Beschreibung

public GearmanClient::context ( ) : string

Get the application context previously set with GearmanClient::setContext().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The same context data structure set with GearmanClient::setContext()

Siehe auch

  • GearmanClient::setContext() - Set application context


Get the application data (deprecated)

  • « GearmanClient::context
  • GearmanClient::do »
  • PHP Manual
  • GearmanClient
  • Get the application data (deprecated)

GearmanClient::data

(PECL gearman <= 0.5.0)

GearmanClient::data — Get the application data (deprecated)

Beschreibung

public GearmanClient::data ( ) : string

Get the application data previously set with GearmanClient::setData().

Hinweis:

This method was replaced by GearmanClient::setContext() in the 0.6.0 release of the Gearman extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The same string data set with GearmanClient::setData()

Siehe auch

  • GearmanClient::setData() - Set application data (deprecated)


Run a single task and return a result [deprecated]

  • « GearmanClient::data
  • GearmanClient::doBackground »
  • PHP Manual
  • GearmanClient
  • Run a single task and return a result [deprecated]

GearmanClient::do

(PECL gearman >= 0.5.0)

GearmanClient::do — Run a single task and return a result [deprecated]

Beschreibung

public GearmanClient::do ( string $function_name , string $workload , string $unique = ? ) : string

The GearmanClient::do() method is deprecated as of pecl/gearman 1.0.0. Use GearmanClient::doNormal().

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

A string representing the results of running a task.

Beispiele

Beispiel #1 Simple job submission with immediate return

<?php

# Client code

echo "Starting\n";

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo "Sending job\n";

$result = $gmclient->doNormal("reverse", "Hello!");

echo "Success: $result\n";

?>
<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server. Change the worker function to
# "reverse_fn_fast" for a faster worker with no output.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Starting
Sending job
Success: !olleH

Beispiel #2 Submitting a job and retrieving incremental status

A job is submitted and the script loops to retrieve status information. The worker has an artificial delay which results in a long running job and sends status and data as processing occurs. Each subsequent call to GearmanClient::do() produces status information on the running job.

<?php

# Client code

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo "Sending job\n";

# Send reverse job
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");
  # Check for various return packets and errors.

  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      echo "Data: $result\n";
      break;
    case GEARMAN_WORK_STATUS:
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Status: $numerator/$denominator complete\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Failed\n";
      exit;
    case GEARMAN_SUCCESS:
      break;
    default:
      echo "RET: " . $gmclient->returnCode() . "\n";
      echo "Error: " . $gmclient->error() . "\n";
      echo "Errno: " . $gmclient->getErrno() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Success: $result\n";

?>
<?php

# Worker code

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Received job: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload: $workload ($workload_size)\n";

  # This status loop is not needed, just showing how it works
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Sending status: " + $x + 1 . "/$workload_size complete\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Result: $result\n";

  # Return what we want to send back to the client.
  return $result;
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Worker output:

Starting
Waiting for job...
Received job: H:foo.local:106
Workload: Hello! (6)
1/6 complete
2/6 complete
3/6 complete
4/6 complete
5/6 complete
6/6 complete
Result: !olleH

Client output:

Starting
Sending job
Status: 1/6 complete
Data: H
Status: 2/6 complete
Data: e
Status: 3/6 complete
Data: l
Status: 4/6 complete
Data: l
Status: 5/6 complete
Data: o
Status: 6/6 complete
Data: !
Success: !olleH

Siehe auch

  • GearmanClient::doHigh() - Run a single high priority task
  • GearmanClient::doLow() - Run a single low priority task
  • GearmanClient::doBackground() - Run a task in the background
  • GearmanClient::doHighBackground() - Run a high priority task in the background
  • GearmanClient::doLowBackground() - Run a low priority task in the background


Run a task in the background

  • « GearmanClient::do
  • GearmanClient::doHigh »
  • PHP Manual
  • GearmanClient
  • Run a task in the background

GearmanClient::doBackground

(PECL gearman >= 0.5.0)

GearmanClient::doBackground — Run a task in the background

Beschreibung

public GearmanClient::doBackground ( string $function_name , string $workload , string $unique = ? ) : string

Runs a task in the background, returning a job handle which can be used to get the status of the running task.

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

The job handle for the submitted task.

Beispiele

Beispiel #1 Submit and monitor a background job

The worker in this example has an artificial delay introduced to mimic a long running job. The client script periodically checks the status of the running job.

<?php

/* create our object */
$gmclient= new GearmanClient();

/* add the default server */
$gmclient->addServer();

/* run reverse client */
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "bad return code\n";
  exit;
}

$done = false;
do
{
   sleep(3);
   $stat = $gmclient->jobStatus($job_handle);
   if (!$stat[0]) // the job is known so it is not done
      $done = true;
   echo "Running: " . ($stat[1] ? "true" : "false") . ", numerator: " . $stat[2] . ", denominator: " . $stat[3] . "\n";
}
while(!$done);

echo "done!\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Running: true, numerator: 3, denominator: 14
Running: true, numerator: 6, denominator: 14
Running: true, numerator: 9, denominator: 14
Running: true, numerator: 12, denominator: 14
Running: false, numerator: 0, denominator: 0
done!

Siehe auch

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanClient::doHigh() - Run a single high priority task
  • GearmanClient::doLow() - Run a single low priority task
  • GearmanClient::doHighBackground() - Run a high priority task in the background
  • GearmanClient::doLowBackground() - Run a low priority task in the background


Run a single high priority task

  • « GearmanClient::doBackground
  • GearmanClient::doHighBackground »
  • PHP Manual
  • GearmanClient
  • Run a single high priority task

GearmanClient::doHigh

(PECL gearman >= 0.5.0)

GearmanClient::doHigh — Run a single high priority task

Beschreibung

public GearmanClient::doHigh ( string $function_name , string $workload , string $unique = ? ) : string

Runs a single high priority task and returns a string representation of the result. It is up to the GearmanClient and GearmanWorker to agree on the format of the result. High priority tasks will get precedence over normal and low priority tasks in the job queue.

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

A string representing the results of running a task.

Siehe auch

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanClient::doLow() - Run a single low priority task
  • GearmanClient::doBackground() - Run a task in the background
  • GearmanClient::doHighBackground() - Run a high priority task in the background
  • GearmanClient::doLowBackground() - Run a low priority task in the background


Run a high priority task in the background

  • « GearmanClient::doHigh
  • GearmanClient::doJobHandle »
  • PHP Manual
  • GearmanClient
  • Run a high priority task in the background

GearmanClient::doHighBackground

(PECL gearman >= 0.5.0)

GearmanClient::doHighBackground — Run a high priority task in the background

Beschreibung

public GearmanClient::doHighBackground ( string $function_name , string $workload , string $unique = ? ) : string

Runs a high priority task in the background, returning a job handle which can be used to get the status of the running task. High priority tasks take precedence over normal and low priority tasks in the job queue.

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

The job handle for the submitted task.

Siehe auch

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanClient::doHigh() - Run a single high priority task
  • GearmanClient::doLow() - Run a single low priority task
  • GearmanClient::doBackground() - Run a task in the background
  • GearmanClient::doLowBackground() - Run a low priority task in the background


Get the job handle for the running task

  • « GearmanClient::doHighBackground
  • GearmanClient::doLow »
  • PHP Manual
  • GearmanClient
  • Get the job handle for the running task

GearmanClient::doJobHandle

(PECL gearman >= 0.5.0)

GearmanClient::doJobHandle — Get the job handle for the running task

Beschreibung

public GearmanClient::doJobHandle ( ) : string

Gets that job handle for a running task. This should be used between repeated GearmanClient::doNormal() calls. The job handle can then be used to get information on the task.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The job handle for the running task.

Siehe auch

  • GearmanClient::jobStatus() - Get the status of a background job


Run a single low priority task

  • « GearmanClient::doJobHandle
  • GearmanClient::doLowBackground »
  • PHP Manual
  • GearmanClient
  • Run a single low priority task

GearmanClient::doLow

(PECL gearman >= 0.5.0)

GearmanClient::doLow — Run a single low priority task

Beschreibung

public GearmanClient::doLow ( string $function_name , string $workload , string $unique = ? ) : string

Runs a single low priority task and returns a string representation of the result. It is up to the GearmanClient and GearmanWorker to agree on the format of the result. Normal and high priority tasks will get precedence over low priority tasks in the job queue.

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

A string representing the results of running a task.

Siehe auch

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanClient::doHigh() - Run a single high priority task
  • GearmanClient::doBackground() - Run a task in the background
  • GearmanClient::doHighBackground() - Run a high priority task in the background
  • GearmanClient::doLowBackground() - Run a low priority task in the background


Run a low priority task in the background

  • « GearmanClient::doLow
  • GearmanClient::doNormal »
  • PHP Manual
  • GearmanClient
  • Run a low priority task in the background

GearmanClient::doLowBackground

(PECL gearman >= 0.5.0)

GearmanClient::doLowBackground — Run a low priority task in the background

Beschreibung

public GearmanClient::doLowBackground ( string $function_name , string $workload , string $unique = ? ) : string

Runs a low priority task in the background, returning a job handle which can be used to get the status of the running task. Normal and high priority tasks take precedence over low priority tasks in the job queue.

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

The job handle for the submitted task.

Siehe auch

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanClient::doHigh() - Run a single high priority task
  • GearmanClient::doLow() - Run a single low priority task
  • GearmanClient::doBackground() - Run a task in the background
  • GearmanClient::doHighBackground() - Run a high priority task in the background


Run a single task and return a result

  • « GearmanClient::doLowBackground
  • GearmanClient::doStatus »
  • PHP Manual
  • GearmanClient
  • Run a single task and return a result

GearmanClient::doNormal

(No version information available, might only be in Git)

GearmanClient::doNormal — Run a single task and return a result

Beschreibung

public GearmanClient::doNormal ( string $function_name , string $workload , string $unique = ? ) : string

Runs a single task and returns a string representation of the result. It is up to the GearmanClient and GearmanWorker to agree on the format of the result.

Parameter-Liste

function_name

Die registrierte Funktion, die der Worker ausführen soll

workload

Serialisierte Daten, die verarbeitet werden sollen

unique

Eine eindeutige ID, die einen bestimmten Task identifiziert

Rückgabewerte

A string representing the results of running a task.

Beispiele

Beispiel #1 Simple job submission with immediate return

<?php

?>
<?php

# Client code

echo "Starting\n";

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo "Sending job\n";

$result = $gmclient->doNormal("reverse", "Hello!");

echo "Success: $result\n";

?>
<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server. Change the worker function to
# "reverse_fn_fast" for a faster worker with no output.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Starting
Sending job
Success: !olleH

Beispiel #2 Submitting a job and retrieving incremental status

A job is submitted and the script loops to retrieve status information. The worker has an artificial delay which results in a long running job and sends status and data as processing occurs. Each subsequent call to GearmanClient::doNormal() produces status information on the running job.

<?php

# Client code

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo "Sending job\n";

# Send reverse job
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");
  # Check for various return packets and errors.

  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      echo "Data: $result\n";
      break;
    case GEARMAN_WORK_STATUS:
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Status: $numerator/$denominator complete\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Failed\n";
      exit;
    case GEARMAN_SUCCESS:
      break;
    default:
      echo "RET: " . $gmclient->returnCode() . "\n";
      echo "Error: " . $gmclient->error() . "\n";
      echo "Errno: " . $gmclient->getErrno() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Success: $result\n";

?>
<?php

# Worker code

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Received job: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload: $workload ($workload_size)\n";

  # This status loop is not needed, just showing how it works
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Sending status: " + $x + 1 . "/$workload_size complete\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Result: $result\n";

  # Return what we want to send back to the client.
  return $result;
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Worker output:

Starting
Waiting for job...
Received job: H:foo.local:106
Workload: Hello! (6)
1/6 complete
2/6 complete
3/6 complete
4/6 complete
5/6 complete
6/6 complete
Result: !olleH

Client output:

Starting
Sending job
Status: 1/6 complete
Data: H
Status: 2/6 complete
Data: e
Status: 3/6 complete
Data: l
Status: 4/6 complete
Data: l
Status: 5/6 complete
Data: o
Status: 6/6 complete
Data: !
Success: !olleH

Siehe auch

  • GearmanClient::doHigh() - Run a single high priority task
  • GearmanClient::doLow() - Run a single low priority task
  • GearmanClient::doBackground() - Run a task in the background
  • GearmanClient::doHighBackground() - Run a high priority task in the background
  • GearmanClient::doLowBackground() - Run a low priority task in the background


Get the status for the running task

  • « GearmanClient::doNormal
  • GearmanClient::echo »
  • PHP Manual
  • GearmanClient
  • Get the status for the running task

GearmanClient::doStatus

(PECL gearman >= 0.5.0)

GearmanClient::doStatus — Get the status for the running task

Beschreibung

public GearmanClient::doStatus ( ) : array

Returns the status for the running task. This should be used between repeated GearmanClient::doNormal() calls.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array representing the percentage completion given as a fraction, with the first element the numerator and the second element the denomintor.

Beispiele

Beispiel #1 Get the status of a long running job

The worker in this example has an artificial delay added during processing of the string to be reversed. After each delay it calls GearmanJob::status() which the client then picks up.

<?php

echo "Starting\n";

# Create our client object.
$gmclient= new GearmanClient();

# Add default server (localhost).
$gmclient->addServer();

echo "Sending job\n";

# Send reverse job
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");

  # Check for various return packets and errors.
  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      break;
    case GEARMAN_WORK_STATUS:
      # get the current job status
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Status: $numerator/$denominator complete\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Failed\n";
      exit;
    case GEARMAN_SUCCESS:
      break;
    default:
      echo "RET: " . $gmclient->returnCode() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Success: $result\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Starting
Sending job
Status: 1/6 complete
Status: 2/6 complete
Status: 3/6 complete
Status: 4/6 complete
Status: 5/6 complete
Status: 6/6 complete
Success: !olleH

Siehe auch

  • GearmanClient::doNormal() - Run a single task and return a result
  • GearmanJob::status() - Send status (deprecated)


Send data to all job servers to see if they echo it back [deprecated]

  • « GearmanClient::doStatus
  • GearmanClient::error »
  • PHP Manual
  • GearmanClient
  • Send data to all job servers to see if they echo it back [deprecated]

GearmanClient::echo

(PECL gearman >= 0.5.0)

GearmanClient::echo — Send data to all job servers to see if they echo it back [deprecated]

Beschreibung

public GearmanClient::echo ( string $workload ) : bool

The GearmanClient::echo() method is deprecated as of pecl/gearman 1.0.0. Use GearmanClient::ping().

Parameter-Liste

workload

Some arbitrary serialized data to be echo back

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Returns an error string for the last error encountered

  • « GearmanClient::echo
  • GearmanClient::getErrno »
  • PHP Manual
  • GearmanClient
  • Returns an error string for the last error encountered

GearmanClient::error

(PECL gearman >= 0.5.0)

GearmanClient::error — Returns an error string for the last error encountered

Beschreibung

public GearmanClient::error ( ) : string

Returns an error string for the last error encountered.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A human readable error string.

Siehe auch

  • GearmanClient::getErrno() - Get an errno value


Get an errno value

  • « GearmanClient::error
  • GearmanClient::jobStatus »
  • PHP Manual
  • GearmanClient
  • Get an errno value

GearmanClient::getErrno

(PECL gearman >= 0.5.0)

GearmanClient::getErrno — Get an errno value

Beschreibung

public GearmanClient::getErrno ( ) : int

Value of errno in the case of a GEARMAN_ERRNO return value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A valid Gearman errno.

Siehe auch

  • GearmanClient::error() - Returns an error string for the last error encountered


Get the status of a background job

  • « GearmanClient::getErrno
  • GearmanClient::ping »
  • PHP Manual
  • GearmanClient
  • Get the status of a background job

GearmanClient::jobStatus

gearman_job_status

(PECL gearman >= 0.5.0)

GearmanClient::jobStatus -- gearman_job_status — Get the status of a background job

Beschreibung

Objektorientierter Stil (method):

public GearmanClient::jobStatus ( string $job_handle ) : array

Gets the status for a background job given a job handle. The status information will specify whether the job is known, whether the job is currently running, and the percentage completion.

Parameter-Liste

job_handle

Das vom Gearman-Server zugewiesene Job-Handle

Rückgabewerte

An array containing status information for the job corresponding to the supplied job handle. The first array element is a boolean indicating whether the job is even known, the second is a boolean indicating whether the job is still running, and the third and fourth elements correspond to the numerator and denominator of the fractional completion percentage, respectively.

Beispiele

Beispiel #1 Monitor the status of a long running background job

<?php

/* create our object */
$gmclient= new GearmanClient();

/* add the default server */
$gmclient->addServer();

/* run reverse client */
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "bad return code\n";
  exit;
}

$done = false;
do
{
   sleep(3);
   $stat = $gmclient->jobStatus($job_handle);
   if (!$stat[0]) // the job is known so it is not done
      $done = true;
   echo "Running: " . ($stat[1] ? "true" : "false") . ", numerator: " . $stat[2] . ", denomintor: " . $stat[3] . "\n";
}
while(!$done);

echo "done!\n";

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Running: true, numerator: 3, denomintor: 14
Running: true, numerator: 6, denomintor: 14
Running: true, numerator: 9, denomintor: 14
Running: true, numerator: 12, denomintor: 14
Running: false, numerator: 0, denomintor: 0
done!

Siehe auch

  • GearmanClient::doStatus() - Get the status for the running task


Send data to all job servers to see if they echo it back

  • « GearmanClient::jobStatus
  • GearmanClient::removeOptions »
  • PHP Manual
  • GearmanClient
  • Send data to all job servers to see if they echo it back

GearmanClient::ping

(No version information available, might only be in Git)

GearmanClient::ping — Send data to all job servers to see if they echo it back

Beschreibung

public GearmanClient::ping ( string $workload ) : bool

Sends some arbitrary data to all job servers to see if they echo it back. The data sent is not used or processed in any other way. Primarily used for testing and debugging.

Parameter-Liste

workload

Some arbitrary serialized data to be echo back

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Remove client options

  • « GearmanClient::ping
  • GearmanClient::returnCode »
  • PHP Manual
  • GearmanClient
  • Remove client options

GearmanClient::removeOptions

(PECL gearman >= 0.6.0)

GearmanClient::removeOptions — Remove client options

Beschreibung

public GearmanClient::removeOptions ( int $options ) : bool

Removes (unsets) one or more options.

Parameter-Liste

options

The options to be removed (unset)

Rückgabewerte

Always returns true.


Get the last Gearman return code

  • « GearmanClient::removeOptions
  • GearmanClient::runTasks »
  • PHP Manual
  • GearmanClient
  • Get the last Gearman return code

GearmanClient::returnCode

(PECL gearman >= 0.5.0)

GearmanClient::returnCode — Get the last Gearman return code

Beschreibung

public GearmanClient::returnCode ( ) : int

Returns the last Gearman return code.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A valid Gearman return code.


Run a list of tasks in parallel

  • « GearmanClient::returnCode
  • GearmanClient::setClientCallback »
  • PHP Manual
  • GearmanClient
  • Run a list of tasks in parallel

GearmanClient::runTasks

(PECL gearman >= 0.5.0)

GearmanClient::runTasks — Run a list of tasks in parallel

Beschreibung

public GearmanClient::runTasks ( ) : bool

For a set of tasks previously added with GearmanClient::addTask(), GearmanClient::addTaskHigh(), GearmanClient::addTaskLow(), GearmanClient::addTaskBackground(), GearmanClient::addTaskHighBackground(), or GearmanClient::addTaskLowBackground(), this call starts running the tasks in parallel.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanClient::addTask() - Add a task to be run in parallel


Callback function when there is a data packet for a task (deprecated)

  • « GearmanClient::runTasks
  • GearmanClient::setCompleteCallback »
  • PHP Manual
  • GearmanClient
  • Callback function when there is a data packet for a task (deprecated)

GearmanClient::setClientCallback

(PECL gearman <= 0.5.0)

GearmanClient::setClientCallback — Callback function when there is a data packet for a task (deprecated)

Beschreibung

public GearmanClient::setClientCallback ( callable $callback ) : void

Sets the callback function for accepting data packets for a task. The callback function should take a single argument, a GearmanTask object.

Hinweis:

This method has been replaced by GearmanClient::setDataCallback() in the 0.6.0 release of the Gearman extension.

Parameter-Liste

callback

A function or method to call

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set a function to be called on task completion

  • « GearmanClient::setClientCallback
  • GearmanClient::setContext »
  • PHP Manual
  • GearmanClient
  • Set a function to be called on task completion

GearmanClient::setCompleteCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCompleteCallback — Set a function to be called on task completion

Beschreibung

public GearmanClient::setCompleteCallback ( callable $callback ) : bool

Use to set a function to be called when a GearmanTask is completed, or when GearmanJob::sendComplete() is invoked by a worker (whichever happens first).

This callback executes only when executing a GearmanTask using GearmanClient::runTasks(). It is not used for individual jobs.

Parameter-Liste

callback

A function to be called

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set application context

  • « GearmanClient::setCompleteCallback
  • GearmanClient::setCreatedCallback »
  • PHP Manual
  • GearmanClient
  • Set application context

GearmanClient::setContext

(PECL gearman >= 0.6.0)

GearmanClient::setContext — Set application context

Beschreibung

public GearmanClient::setContext ( string $context ) : bool

Sets an arbitrary string to provide application context that can later be retrieved by GearmanClient::context().

Parameter-Liste

context

Arbitrary context data

Rückgabewerte

Always returns true.

Siehe auch

  • GearmanClient::context() - Get the application context


Set a callback for when a task is queued

  • « GearmanClient::setContext
  • GearmanClient::setData »
  • PHP Manual
  • GearmanClient
  • Set a callback for when a task is queued

GearmanClient::setCreatedCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCreatedCallback — Set a callback for when a task is queued

Beschreibung

public GearmanClient::setCreatedCallback ( string $callback ) : bool

Sets a function to be called when a task is received and queued by the Gearman job server. The callback should accept a single argument, a GearmanTask object.

Parameter-Liste

callback

A function to call

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set application data (deprecated)

  • « GearmanClient::setCreatedCallback
  • GearmanClient::setDataCallback »
  • PHP Manual
  • GearmanClient
  • Set application data (deprecated)

GearmanClient::setData

(PECL gearman <= 0.5.0)

GearmanClient::setData — Set application data (deprecated)

Beschreibung

public GearmanClient::setData ( string $data ) : bool

Sets some arbitrary application data that can later be retrieved by GearmanClient::data().

Hinweis:

This method has been replaced by GearmanCient::setContext() in the 0.6.0 release of the Gearman extension.

Parameter-Liste

data

Rückgabewerte

Always returns true.

Siehe auch

  • GearmanClient::data() - Get the application data (deprecated)


Callback function when there is a data packet for a task

  • « GearmanClient::setData
  • GearmanClient::setExceptionCallback »
  • PHP Manual
  • GearmanClient
  • Callback function when there is a data packet for a task

GearmanClient::setDataCallback

(PECL gearman >= 0.6.0)

GearmanClient::setDataCallback — Callback function when there is a data packet for a task

Beschreibung

public GearmanClient::setDataCallback ( callable $callback ) : bool

Sets the callback function for accepting data packets for a task. The callback function should take a single argument, a GearmanTask object.

Parameter-Liste

callback

A function or method to call

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set a callback for worker exceptions

  • « GearmanClient::setDataCallback
  • GearmanClient::setFailCallback »
  • PHP Manual
  • GearmanClient
  • Set a callback for worker exceptions

GearmanClient::setExceptionCallback

(PECL gearman >= 0.5.0)

GearmanClient::setExceptionCallback — Set a callback for worker exceptions

Beschreibung

public GearmanClient::setExceptionCallback ( callable $callback ) : bool

Specifies a function to call when a worker for a task sends an exception.

Parameter-Liste

callback

Function to call when the worker throws an exception

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set callback for job failure

  • « GearmanClient::setExceptionCallback
  • GearmanClient::setOptions »
  • PHP Manual
  • GearmanClient
  • Set callback for job failure

GearmanClient::setFailCallback

(PECL gearman >= 0.5.0)

GearmanClient::setFailCallback — Set callback for job failure

Beschreibung

public GearmanClient::setFailCallback ( callable $callback ) : bool

Sets the callback function to be used when a task does not complete successfully. The function should accept a single argument, a GearmanTask object.

Parameter-Liste

callback

A function to call

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set client options

  • « GearmanClient::setFailCallback
  • GearmanClient::setStatusCallback »
  • PHP Manual
  • GearmanClient
  • Set client options

GearmanClient::setOptions

(PECL gearman >= 0.5.0)

GearmanClient::setOptions — Set client options

Beschreibung

public GearmanClient::setOptions ( int $options ) : bool

Sets one or more client options.

Parameter-Liste

options

The options to be set

Rückgabewerte

Always returns true.


Set a callback for collecting task status

  • « GearmanClient::setOptions
  • GearmanClient::setTimeout »
  • PHP Manual
  • GearmanClient
  • Set a callback for collecting task status

GearmanClient::setStatusCallback

(PECL gearman >= 0.5.0)

GearmanClient::setStatusCallback — Set a callback for collecting task status

Beschreibung

public GearmanClient::setStatusCallback ( callable $callback ) : bool

Sets a callback function used for getting updated status information from a worker. The function should accept a single argument, a GearmanTask object.

Parameter-Liste

callback

A function to call

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set socket I/O activity timeout

  • « GearmanClient::setStatusCallback
  • GearmanClient::setWarningCallback »
  • PHP Manual
  • GearmanClient
  • Set socket I/O activity timeout

GearmanClient::setTimeout

(PECL gearman >= 0.6.0)

GearmanClient::setTimeout — Set socket I/O activity timeout

Beschreibung

public GearmanClient::setTimeout ( int $timeout ) : bool

Sets the timeout for socket I/O activity.

Parameter-Liste

timeout

An interval of time in milliseconds

Rückgabewerte

Always returns true.


Set a callback for worker warnings

  • « GearmanClient::setTimeout
  • GearmanClient::setWorkloadCallback »
  • PHP Manual
  • GearmanClient
  • Set a callback for worker warnings

GearmanClient::setWarningCallback

(PECL gearman >= 0.5.0)

GearmanClient::setWarningCallback — Set a callback for worker warnings

Beschreibung

public GearmanClient::setWarningCallback ( callable $callback ) : bool

Sets a function to be called when a worker sends a warning. The callback should accept a single argument, a GearmanTask object.

Parameter-Liste

callback

A function to call

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates


Set a callback for accepting incremental data updates

  • « GearmanClient::setWarningCallback
  • GearmanClient::timeout »
  • PHP Manual
  • GearmanClient
  • Set a callback for accepting incremental data updates

GearmanClient::setWorkloadCallback

(PECL gearman >= 0.5.0)

GearmanClient::setWorkloadCallback — Set a callback for accepting incremental data updates

Beschreibung

public GearmanClient::setWorkloadCallback ( callable $callback ) : bool

Sets a function to be called when a worker needs to send back data prior to job completion. A worker can do this when it needs to send updates, send partial results, or flush data during long running jobs. The callback should accept a single argument, a GearmanTask object.

Parameter-Liste

callback

A function to call

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanClient::setDataCallback() - Callback function when there is a data packet for a task
  • GearmanClient::setCompleteCallback() - Set a function to be called on task completion
  • GearmanClient::setCreatedCallback() - Set a callback for when a task is queued
  • GearmanClient::setExceptionCallback() - Set a callback for worker exceptions
  • GearmanClient::setFailCallback() - Set callback for job failure
  • GearmanClient::setStatusCallback() - Set a callback for collecting task status
  • GearmanClient::setWarningCallback() - Set a callback for worker warnings


Get current socket I/O activity timeout value

  • « GearmanClient::setWorkloadCallback
  • GearmanClient::wait »
  • PHP Manual
  • GearmanClient
  • Get current socket I/O activity timeout value

GearmanClient::timeout

(PECL gearman >= 0.6.0)

GearmanClient::timeout — Get current socket I/O activity timeout value

Beschreibung

public GearmanClient::timeout ( ) : int

Returns the timeout in milliseconds to wait for I/O activity.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Timeout in milliseconds to wait for I/O activity. A negative value means an infinite timeout.

Siehe auch

  • GearmanClient::setTimeout() - Set socket I/O activity timeout


Wait for I/O activity on all connections in a client

  • « GearmanClient::timeout
  • GearmanJob »
  • PHP Manual
  • GearmanClient
  • Wait for I/O activity on all connections in a client

GearmanClient::wait

(PECL gearman >= 0.6.0)

GearmanClient::wait — Wait for I/O activity on all connections in a client

Beschreibung

public GearmanClient::wait ( ) : bool

This waits for activity from any one of the connected servers.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true on success false on an error.

Siehe auch

  • GearmanWorker::wait() - Wait for activity from one of the job servers


The GearmanJob class

(PECL gearman >= 0.5.0)

Einführung

Klassenbeschreibung

GearmanJob {
/* Methoden */
public complete ( string $result ) : bool
public __construct ( )
public data ( string $data ) : bool
public exception ( string $exception ) : bool
public fail ( ) : bool
public functionName ( ) : string
public handle ( ) : string
public returnCode ( ) : int
public sendComplete ( string $result ) : bool
public sendData ( string $data ) : bool
public sendException ( string $exception ) : bool
public sendFail ( ) : bool
public sendStatus ( int $numerator , int $denominator ) : bool
public sendWarning ( string $warning ) : bool
public setReturn ( int $gearman_return_t ) : bool
public status ( int $numerator , int $denominator ) : bool
public unique ( ) : string
public warning ( string $warning ) : bool
public workload ( ) : string
public workloadSize ( ) : int
}

Inhaltsverzeichnis

  • GearmanJob::complete — Send the result and complete status (deprecated)
  • GearmanJob::__construct — Create a GearmanJob instance
  • GearmanJob::data — Send data for a running job (deprecated)
  • GearmanJob::exception — Send exception for running job (deprecated)
  • GearmanJob::fail — Send fail status (deprecated)
  • GearmanJob::functionName — Get function name
  • GearmanJob::handle — Get the job handle
  • GearmanJob::returnCode — Get last return code
  • GearmanJob::sendComplete — Send the result and complete status
  • GearmanJob::sendData — Send data for a running job
  • GearmanJob::sendException — Send exception for running job (exception)
  • GearmanJob::sendFail — Send fail status
  • GearmanJob::sendStatus — Send status
  • GearmanJob::sendWarning — Send a warning
  • GearmanJob::setReturn — Set a return value
  • GearmanJob::status — Send status (deprecated)
  • GearmanJob::unique — Get the unique identifier
  • GearmanJob::warning — Send a warning (deprecated)
  • GearmanJob::workload — Get workload
  • GearmanJob::workloadSize — Get size of work load


Send the result and complete status (deprecated)

  • « GearmanJob
  • GearmanJob::__construct »
  • PHP Manual
  • GearmanJob
  • Send the result and complete status (deprecated)

GearmanJob::complete

(PECL gearman <= 0.5.0)

GearmanJob::complete — Send the result and complete status (deprecated)

Beschreibung

public GearmanJob::complete ( string $result ) : bool

Sends result data and the complete status update for this job.

Hinweis:

This method has been replaced by GearmanJob::sendComplete() in the 0.6.0 release of the Gearman extension.

Parameter-Liste

result

Serialized result data.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanJob::sendFail() - Send fail status
  • GearmanJob::setReturn() - Set a return value


Create a GearmanJob instance

  • « GearmanJob::complete
  • GearmanJob::data »
  • PHP Manual
  • GearmanJob
  • Create a GearmanJob instance

GearmanJob::__construct

(PECL gearman >= 0.5.0)

GearmanJob::__construct — Create a GearmanJob instance

Beschreibung

public GearmanJob::__construct ( )

Creates a GearmanJob instance representing a job the worker is to complete.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A GearmanJob object.


Send data for a running job (deprecated)

  • « GearmanJob::__construct
  • GearmanJob::exception »
  • PHP Manual
  • GearmanJob
  • Send data for a running job (deprecated)

GearmanJob::data

(PECL gearman <= 0.5.0)

GearmanJob::data — Send data for a running job (deprecated)

Beschreibung

public GearmanJob::data ( string $data ) : bool

Sends data to the job server (and any listening clients) for this job.

Hinweis:

This method has been replaced by GearmanJob::sendData() in the 0.6.0 release of the Gearman extension.

Parameter-Liste

data

Arbitrary serialized data.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanJob::workload() - Get workload
  • GearmanTask::data() - Get data returned for a task


Send exception for running job (deprecated)

  • « GearmanJob::data
  • GearmanJob::fail »
  • PHP Manual
  • GearmanJob
  • Send exception for running job (deprecated)

GearmanJob::exception

(PECL gearman <= 0.5.0)

GearmanJob::exception — Send exception for running job (deprecated)

Beschreibung

public GearmanJob::exception ( string $exception ) : bool

Sends the supplied exception when this job is running.

Hinweis:

This method has been replaced by GearmanJob::sendException() in the 0.6.0 release of the Gearman extension.

Parameter-Liste

exception

An exception description.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanJob::setReturn() - Set a return value
  • GearmanJob::sendStatus() - Send status
  • GearmanJob::sendWarning() - Send a warning


Send fail status (deprecated)

  • « GearmanJob::exception
  • GearmanJob::functionName »
  • PHP Manual
  • GearmanJob
  • Send fail status (deprecated)

GearmanJob::fail

(PECL gearman <= 0.5.0)

GearmanJob::fail — Send fail status (deprecated)

Beschreibung

public GearmanJob::fail ( ) : bool

Sends failure status for this job, indicating that the job failed in a known way (as opposed to failing due to a thrown exception).

Hinweis:

This method has been replaced by GearmanJob::sendFail() in the 0.6.0 release of the Gearman extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanJob::sendException() - Send exception for running job (exception)
  • GearmanJob::setReturn() - Set a return value
  • GearmanJob::sendStatus() - Send status
  • GearmanJob::sendWarning() - Send a warning


Get function name

  • « GearmanJob::fail
  • GearmanJob::handle »
  • PHP Manual
  • GearmanJob
  • Get function name

GearmanJob::functionName

(PECL gearman >= 0.5.0)

GearmanJob::functionName — Get function name

Beschreibung

public GearmanJob::functionName ( ) : string

Returns the function name for this job. This is the function the work will execute to perform the job.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The name of a function.

Siehe auch

  • GearmanTask::function() - Get associated function name (deprecated)


Get the job handle

  • « GearmanJob::functionName
  • GearmanJob::returnCode »
  • PHP Manual
  • GearmanJob
  • Get the job handle

GearmanJob::handle

(PECL gearman >= 0.5.0)

GearmanJob::handle — Get the job handle

Beschreibung

public GearmanJob::handle ( ) : string

Returns the opaque job handle assigned by the job server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An opaque job handle.

Siehe auch

  • GearmanTask::jobHandle() - Get the job handle


Get last return code

  • « GearmanJob::handle
  • GearmanJob::sendComplete »
  • PHP Manual
  • GearmanJob
  • Get last return code

GearmanJob::returnCode

(PECL gearman >= 0.5.0)

GearmanJob::returnCode — Get last return code

Beschreibung

public GearmanJob::returnCode ( ) : int

Returns the last return code issued by the job server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A valid Gearman return code.

Siehe auch

  • GearmanTask::returnCode() - Get the last return code


Send the result and complete status

  • « GearmanJob::returnCode
  • GearmanJob::sendData »
  • PHP Manual
  • GearmanJob
  • Send the result and complete status

GearmanJob::sendComplete

(PECL gearman >= 0.6.0)

GearmanJob::sendComplete — Send the result and complete status

Beschreibung

public GearmanJob::sendComplete ( string $result ) : bool

Sends result data and the complete status update for this job.

Parameter-Liste

result

Serialized result data.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanJob::sendFail() - Send fail status
  • GearmanJob::setReturn() - Set a return value


Send data for a running job

  • « GearmanJob::sendComplete
  • GearmanJob::sendException »
  • PHP Manual
  • GearmanJob
  • Send data for a running job

GearmanJob::sendData

(PECL gearman >= 0.6.0)

GearmanJob::sendData — Send data for a running job

Beschreibung

public GearmanJob::sendData ( string $data ) : bool

Sends data to the job server (and any listening clients) for this job.

Parameter-Liste

data

Arbitrary serialized data.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanJob::workload() - Get workload
  • GearmanTask::data() - Get data returned for a task


Send exception for running job (exception)

  • « GearmanJob::sendData
  • GearmanJob::sendFail »
  • PHP Manual
  • GearmanJob
  • Send exception for running job (exception)

GearmanJob::sendException

(PECL gearman >= 0.6.0)

GearmanJob::sendException — Send exception for running job (exception)

Beschreibung

public GearmanJob::sendException ( string $exception ) : bool

Sends the supplied exception when this job is running.

Parameter-Liste

exception

An exception description.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanJob::setReturn() - Set a return value
  • GearmanJob::sendStatus() - Send status
  • GearmanJob::sendWarning() - Send a warning


Send fail status

  • « GearmanJob::sendException
  • GearmanJob::sendStatus »
  • PHP Manual
  • GearmanJob
  • Send fail status

GearmanJob::sendFail

(PECL gearman >= 0.6.0)

GearmanJob::sendFail — Send fail status

Beschreibung

public GearmanJob::sendFail ( ) : bool

Sends failure status for this job, indicating that the job failed in a known way (as opposed to failing due to a thrown exception).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanJob::sendException() - Send exception for running job (exception)
  • GearmanJob::setReturn() - Set a return value
  • GearmanJob::sendStatus() - Send status
  • GearmanJob::sendWarning() - Send a warning


Send status

  • « GearmanJob::sendFail
  • GearmanJob::sendWarning »
  • PHP Manual
  • GearmanJob
  • Send status

GearmanJob::sendStatus

(PECL gearman >= 0.6.0)

GearmanJob::sendStatus — Send status

Beschreibung

public GearmanJob::sendStatus ( int $numerator , int $denominator ) : bool

Sends status information to the job server and any listening clients. Use this to specify what percentage of the job has been completed.

Parameter-Liste

numerator

The numerator of the precentage completed expressed as a fraction.

denominator

The denominator of the precentage completed expressed as a fraction.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanClient::jobStatus() - Get the status of a background job
  • GearmanTask::taskDenominator() - Get completion percentage denominator
  • GearmanTask::taskNumerator() - Get completion percentage numerator


Send a warning

  • « GearmanJob::sendStatus
  • GearmanJob::setReturn »
  • PHP Manual
  • GearmanJob
  • Send a warning

GearmanJob::sendWarning

(PECL gearman >= 0.6.0)

GearmanJob::sendWarning — Send a warning

Beschreibung

public GearmanJob::sendWarning ( string $warning ) : bool

Sends a warning for this job while it is running.

Parameter-Liste

warning

A warning message.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanJob::sendComplete() - Send the result and complete status
  • GearmanJob::sendException() - Send exception for running job (exception)
  • GearmanJob::sendFail() - Send fail status


Set a return value

  • « GearmanJob::sendWarning
  • GearmanJob::status »
  • PHP Manual
  • GearmanJob
  • Set a return value

GearmanJob::setReturn

(PECL gearman >= 0.5.0)

GearmanJob::setReturn — Set a return value

Beschreibung

public GearmanJob::setReturn ( int $gearman_return_t ) : bool

Sets the return value for this job, indicates how the job completed.

Parameter-Liste

gearman_return_t

A valid Gearman return value.

Rückgabewerte

Description...


Send status (deprecated)

  • « GearmanJob::setReturn
  • GearmanJob::unique »
  • PHP Manual
  • GearmanJob
  • Send status (deprecated)

GearmanJob::status

(PECL gearman <= 0.5.0)

GearmanJob::status — Send status (deprecated)

Beschreibung

public GearmanJob::status ( int $numerator , int $denominator ) : bool

Sends status information to the job server and any listening clients. Use this to specify what percentage of the job has been completed.

Hinweis:

This method has been replaced by GearmanJob::sendStatus() in the 0.6.0 release of the Gearman extenstion.

Parameter-Liste

numerator

The numerator of the precentage completed expressed as a fraction.

denominator

The denominator of the precentage completed expressed as a fraction.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanClient::jobStatus() - Get the status of a background job
  • GearmanTask::taskDenominator() - Get completion percentage denominator
  • GearmanTask::taskNumerator() - Get completion percentage numerator


Get the unique identifier

  • « GearmanJob::status
  • GearmanJob::warning »
  • PHP Manual
  • GearmanJob
  • Get the unique identifier

GearmanJob::unique

(PECL gearman >= 0.5.0)

GearmanJob::unique — Get the unique identifier

Beschreibung

public GearmanJob::unique ( ) : string

Returns the unique identifier for this job. The identifier is assigned by the client.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An opaque unique identifier.

Siehe auch

  • GearmanClient::do() - Run a single task and return a result [deprecated]
  • GearmanTask::uuid() - Get the unique identifier for a task (deprecated)


Send a warning (deprecated)

  • « GearmanJob::unique
  • GearmanJob::workload »
  • PHP Manual
  • GearmanJob
  • Send a warning (deprecated)

GearmanJob::warning

(PECL gearman <= 0.5.0)

GearmanJob::warning — Send a warning (deprecated)

Beschreibung

public GearmanJob::warning ( string $warning ) : bool

Sends a warning for this job while it is running.

Hinweis:

This method has been replaced by GearmanJob::sendWarning() in the 0.6.0 release of the Gearman extension.

Parameter-Liste

warning

A warning messages.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • GearmanJob::sendComplete() - Send the result and complete status
  • GearmanJob::sendException() - Send exception for running job (exception)
  • GearmanJob::sendFail() - Send fail status


Get workload

  • « GearmanJob::warning
  • GearmanJob::workloadSize »
  • PHP Manual
  • GearmanJob
  • Get workload

GearmanJob::workload

(PECL gearman >= 0.5.0)

GearmanJob::workload — Get workload

Beschreibung

public GearmanJob::workload ( ) : string

Returns the workload for the job. This is serialized data that is to be processed by the worker.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Serialized data.

Siehe auch

  • GearmanClient::do() - Run a single task and return a result [deprecated]
  • GearmanJob::workloadSize() - Get size of work load


Get size of work load

  • « GearmanJob::workload
  • GearmanTask »
  • PHP Manual
  • GearmanJob
  • Get size of work load

GearmanJob::workloadSize

(PECL gearman >= 0.5.0)

GearmanJob::workloadSize — Get size of work load

Beschreibung

public GearmanJob::workloadSize ( ) : int

Returns the size of the job's work load (the data the worker is to process) in bytes.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The size in bytes.

Siehe auch

  • GearmanJob::workload() - Get workload


The GearmanTask class

(PECL gearman >= 0.5.0)

Einführung

Klassenbeschreibung

GearmanTask {
/* Methoden */
public __construct ( )
public create ( ) : GearmanTask|false
public data ( ) : string
public dataSize ( ) : int
public function ( ) : string
public functionName ( ) : string
public isKnown ( ) : bool
public isRunning ( ) : bool
public jobHandle ( ) : string
public recvData ( int $data_len ) : array
public returnCode ( ) : int
public sendData ( string $data ) : int
public sendWorkload ( string $data ) : int
public taskDenominator ( ) : int
public taskNumerator ( ) : int
public unique ( ) : string
public uuid ( ) : string
}

Inhaltsverzeichnis

  • GearmanTask::__construct — Create a GearmanTask instance
  • GearmanTask::create — Create a task (deprecated)
  • GearmanTask::data — Get data returned for a task
  • GearmanTask::dataSize — Get the size of returned data
  • GearmanTask::function — Get associated function name (deprecated)
  • GearmanTask::functionName — Get associated function name
  • GearmanTask::isKnown — Determine if task is known
  • GearmanTask::isRunning — Test whether the task is currently running
  • GearmanTask::jobHandle — Get the job handle
  • GearmanTask::recvData — Read work or result data into a buffer for a task
  • GearmanTask::returnCode — Get the last return code
  • GearmanTask::sendData — Send data for a task (deprecated)
  • GearmanTask::sendWorkload — Send data for a task
  • GearmanTask::taskDenominator — Get completion percentage denominator
  • GearmanTask::taskNumerator — Get completion percentage numerator
  • GearmanTask::unique — Get the unique identifier for a task
  • GearmanTask::uuid — Get the unique identifier for a task (deprecated)


Create a GearmanTask instance

  • « GearmanTask
  • GearmanTask::create »
  • PHP Manual
  • GearmanTask
  • Create a GearmanTask instance

GearmanTask::__construct

(PECL gearman >= 0.5.0)

GearmanTask::__construct — Create a GearmanTask instance

Beschreibung

public GearmanTask::__construct ( )

Creates a GearmanTask instance representing a task to be submitted to a job server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A GearmanTask object.


Create a task (deprecated)

  • « GearmanTask::__construct
  • GearmanTask::data »
  • PHP Manual
  • GearmanTask
  • Create a task (deprecated)

GearmanTask::create

(PECL gearman <= 0.5.0)

GearmanTask::create — Create a task (deprecated)

Beschreibung

public GearmanTask::create ( ) : GearmanTask|false

Returns a new GearmanTask object.

Hinweis:

This method was removed in the 0.6.0 version of the Gearman extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A GearmanTask ojectIm Fehlerfall wird false zurückgegeben..


Get data returned for a task

  • « GearmanTask::create
  • GearmanTask::dataSize »
  • PHP Manual
  • GearmanTask
  • Get data returned for a task

GearmanTask::data

(PECL gearman >= 0.5.0)

GearmanTask::data — Get data returned for a task

Beschreibung

public GearmanTask::data ( ) : string

Returns data being returned for a task by a worker.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The serialized data, or false if no data is present.

Siehe auch

  • GearmanTask::dataSize() - Get the size of returned data


Get the size of returned data

  • « GearmanTask::data
  • GearmanTask::function »
  • PHP Manual
  • GearmanTask
  • Get the size of returned data

GearmanTask::dataSize

(PECL gearman >= 0.5.0)

GearmanTask::dataSize — Get the size of returned data

Beschreibung

public GearmanTask::dataSize ( ) : int

Returns the size of the data being returned for a task.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The data size, or false if there is no data.

Siehe auch

  • GearmanTask::data() - Get data returned for a task


Get associated function name (deprecated)

  • « GearmanTask::dataSize
  • GearmanTask::functionName »
  • PHP Manual
  • GearmanTask
  • Get associated function name (deprecated)

GearmanTask::function

(PECL gearman <= 0.5.0)

GearmanTask::function — Get associated function name (deprecated)

Beschreibung

public GearmanTask::function ( ) : string

Returns the name of the function this task is associated with, i.e., the function the Gearman worker calls.

Hinweis:

This method has been replaced by GearmanTask::functionName() in the 0.6.0 release of the Gearman extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A function name.


Get associated function name

  • « GearmanTask::function
  • GearmanTask::isKnown »
  • PHP Manual
  • GearmanTask
  • Get associated function name

GearmanTask::functionName

(PECL gearman >= 0.6.0)

GearmanTask::functionName — Get associated function name

Beschreibung

public GearmanTask::functionName ( ) : string

Returns the name of the function this task is associated with, i.e., the function the Gearman worker calls.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A function name.


Determine if task is known

  • « GearmanTask::functionName
  • GearmanTask::isRunning »
  • PHP Manual
  • GearmanTask
  • Determine if task is known

GearmanTask::isKnown

(PECL gearman >= 0.5.0)

GearmanTask::isKnown — Determine if task is known

Beschreibung

public GearmanTask::isKnown ( ) : bool

Gets the status information for whether or not this task is known to the job server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the task is known, false otherwise.


Test whether the task is currently running

  • « GearmanTask::isKnown
  • GearmanTask::jobHandle »
  • PHP Manual
  • GearmanTask
  • Test whether the task is currently running

GearmanTask::isRunning

(PECL gearman >= 0.5.0)

GearmanTask::isRunning — Test whether the task is currently running

Beschreibung

public GearmanTask::isRunning ( ) : bool

Indicates whether or not this task is currently running.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the task is running, false otherwise.


Get the job handle

  • « GearmanTask::isRunning
  • GearmanTask::recvData »
  • PHP Manual
  • GearmanTask
  • Get the job handle

GearmanTask::jobHandle

gearman_job_handle

(PECL gearman >= 0.5.0)

GearmanTask::jobHandle -- gearman_job_handle — Get the job handle

Beschreibung

public GearmanTask::jobHandle ( ) : string

Returns the job handle for this task.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The opaque job handle.

Siehe auch

  • GearmanClient::doJobHandle() - Get the job handle for the running task


Read work or result data into a buffer for a task

  • « GearmanTask::jobHandle
  • GearmanTask::returnCode »
  • PHP Manual
  • GearmanTask
  • Read work or result data into a buffer for a task

GearmanTask::recvData

(PECL gearman >= 0.5.0)

GearmanTask::recvData — Read work or result data into a buffer for a task

Beschreibung

public GearmanTask::recvData ( int $data_len ) : array

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

data_len

Length of data to be read.

Rückgabewerte

An array whose first element is the length of data read and the second is the data buffer. Returns false if the read failed.

Siehe auch

  • GearmanTask::sendData() - Send data for a task (deprecated)


Get the last return code

  • « GearmanTask::recvData
  • GearmanTask::sendData »
  • PHP Manual
  • GearmanTask
  • Get the last return code

GearmanTask::returnCode

(PECL gearman >= 0.5.0)

GearmanTask::returnCode — Get the last return code

Beschreibung

public GearmanTask::returnCode ( ) : int

Returns the last Gearman return code for this task.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A valid Gearman return code.

Siehe auch

  • GearmanClient::returnCode() - Get the last Gearman return code


Send data for a task (deprecated)

  • « GearmanTask::returnCode
  • GearmanTask::sendWorkload »
  • PHP Manual
  • GearmanTask
  • Send data for a task (deprecated)

GearmanTask::sendData

(PECL gearman <= 0.5.0)

GearmanTask::sendData — Send data for a task (deprecated)

Beschreibung

public GearmanTask::sendData ( string $data ) : int

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

data

Data to send to the worker.

Rückgabewerte

The length of data sent, or false if the send failed.

Siehe auch

  • GearmanTask::recvData() - Read work or result data into a buffer for a task


Send data for a task

  • « GearmanTask::sendData
  • GearmanTask::taskDenominator »
  • PHP Manual
  • GearmanTask
  • Send data for a task

GearmanTask::sendWorkload

(PECL gearman >= 0.6.0)

GearmanTask::sendWorkload — Send data for a task

Beschreibung

public GearmanTask::sendWorkload ( string $data ) : int

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

data

Data to send to the worker.

Rückgabewerte

The length of data sent, or false if the send failed.

Siehe auch

  • GearmanTask::recvData() - Read work or result data into a buffer for a task


Get completion percentage denominator

  • « GearmanTask::sendWorkload
  • GearmanTask::taskNumerator »
  • PHP Manual
  • GearmanTask
  • Get completion percentage denominator

GearmanTask::taskDenominator

(PECL gearman >= 0.5.0)

GearmanTask::taskDenominator — Get completion percentage denominator

Beschreibung

public GearmanTask::taskDenominator ( ) : int

Returns the denominator of the percentage of the task that is complete expressed as a fraction.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A number between 0 and 100, or false if cannot be determined.

Siehe auch

  • GearmanTask::taskNumerator() - Get completion percentage numerator


Get completion percentage numerator

  • « GearmanTask::taskDenominator
  • GearmanTask::unique »
  • PHP Manual
  • GearmanTask
  • Get completion percentage numerator

GearmanTask::taskNumerator

(PECL gearman >= 0.5.0)

GearmanTask::taskNumerator — Get completion percentage numerator

Beschreibung

public GearmanTask::taskNumerator ( ) : int

Returns the numerator of the percentage of the task that is complete expressed as a fraction.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A number between 0 and 100, or false if cannot be determined.

Siehe auch

  • GearmanTask::taskDenominator() - Get completion percentage denominator


Get the unique identifier for a task

  • « GearmanTask::taskNumerator
  • GearmanTask::uuid »
  • PHP Manual
  • GearmanTask
  • Get the unique identifier for a task

GearmanTask::unique

(PECL gearman >= 0.6.0)

GearmanTask::unique — Get the unique identifier for a task

Beschreibung

public GearmanTask::unique ( ) : string

Returns the unique identifier for this task. This is assigned by the GearmanClient, as opposed to the job handle which is set by the Gearman job server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The unique identifier, or false if no identifier is assigned.

Siehe auch

  • GearmanClient::do() - Run a single task and return a result [deprecated]
  • GearmanClient::addTask() - Add a task to be run in parallel


Get the unique identifier for a task (deprecated)

  • « GearmanTask::unique
  • GearmanWorker »
  • PHP Manual
  • GearmanTask
  • Get the unique identifier for a task (deprecated)

GearmanTask::uuid

(PECL gearman <= 0.5.0)

GearmanTask::uuid — Get the unique identifier for a task (deprecated)

Beschreibung

public GearmanTask::uuid ( ) : string

Returns the unique identifier for this task. This is assigned by the GearmanClient, as opposed to the job handle which is set by the Gearman job server.

Hinweis:

This method has been replaced by GearmanTask::unique() in the 0.6.0 release of the Gearman extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The unique identifier, or false if no identifier is assigned.

Siehe auch

  • GearmanClient::do() - Run a single task and return a result [deprecated]
  • GearmanClient::addTask() - Add a task to be run in parallel


The GearmanWorker class

(PECL gearman >= 0.5.0)

Einführung

Klassenbeschreibung

GearmanWorker {
/* Methoden */
public addFunction ( string $function_name , callable $function , mixed &$context = ? , int $timeout = ? ) : bool
public addOptions ( int $option ) : bool
public addServer ( string $host = 127.0.0.1 , int $port = 4730 ) : bool
public addServers ( string $servers = 127.0.0.1:4730 ) : bool
public clone ( ) : void
public __construct ( )
public echo ( string $workload ) : bool
public error ( ) : string
public getErrno ( ) : int
public options ( ) : int
public register ( string $function_name , int $timeout = ? ) : bool
public removeOptions ( int $option ) : bool
public returnCode ( ) : int
public setId ( string $id ) : bool
public setOptions ( int $option ) : bool
public setTimeout ( int $timeout ) : bool
public timeout ( ) : int
public unregister ( string $function_name ) : bool
public unregisterAll ( ) : bool
public wait ( ) : bool
public work ( ) : bool
}

Inhaltsverzeichnis

  • GearmanWorker::addFunction — Register and add callback function
  • GearmanWorker::addOptions — Add worker options
  • GearmanWorker::addServer — Add a job server
  • GearmanWorker::addServers — Add job servers
  • GearmanWorker::clone — Create a copy of the worker
  • GearmanWorker::__construct — Create a GearmanWorker instance
  • GearmanWorker::echo — Test job server response
  • GearmanWorker::error — Get the last error encountered
  • GearmanWorker::getErrno — Get errno
  • GearmanWorker::options — Get worker options
  • GearmanWorker::register — Register a function with the job server
  • GearmanWorker::removeOptions — Remove worker options
  • GearmanWorker::returnCode — Get last Gearman return code
  • GearmanWorker::setId — Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers
  • GearmanWorker::setOptions — Set worker options
  • GearmanWorker::setTimeout — Set socket I/O activity timeout
  • GearmanWorker::timeout — Get socket I/O activity timeout
  • GearmanWorker::unregister — Unregister a function name with the job servers
  • GearmanWorker::unregisterAll — Unregister all function names with the job servers
  • GearmanWorker::wait — Wait for activity from one of the job servers
  • GearmanWorker::work — Wait for and perform jobs


Register and add callback function

  • « GearmanWorker
  • GearmanWorker::addOptions »
  • PHP Manual
  • GearmanWorker
  • Register and add callback function

GearmanWorker::addFunction

(PECL gearman >= 0.5.0)

GearmanWorker::addFunction — Register and add callback function

Beschreibung

public GearmanWorker::addFunction ( string $function_name , callable $function , mixed &$context = ? , int $timeout = ? ) : bool

Registers a function name with the job server and specifies a callback corresponding to that function. Optionally specify extra application context data to be used when the callback is called and a timeout.

Parameter-Liste

function_name

The name of a function to register with the job server

function

A callback that gets called when a job for the registered function name is submitted

context

A reference to arbitrary application context data that can be modified by the worker function

timeout

An interval of time in seconds

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Simple worker making use of extra application context data

<?php

# get a gearman worker
$worker= new GearmanWorker();

# add the default server (localhost)
$worker->addServer();

# define a variable to hold application data
$count= 0;

# add the "reverse" function
$worker->addFunction("reverse", "reverse_cb", $count);

# start the worker
while ($worker->work());

function reverse_cb($job, &$count)
{
  $count++;
  return "$count: " . strrev($job->workload());
}

?>

Running a client that submits two jobs for the reverse function would have output similar to the following:

1: olleh
2: dlrow

Siehe auch

  • GearmanClient::do() - Run a single task and return a result [deprecated]


Add worker options

  • « GearmanWorker::addFunction
  • GearmanWorker::addServer »
  • PHP Manual
  • GearmanWorker
  • Add worker options

GearmanWorker::addOptions

(PECL gearman >= 0.6.0)

GearmanWorker::addOptions — Add worker options

Beschreibung

public GearmanWorker::addOptions ( int $option ) : bool

Adds one or more options to the options previously set.

Parameter-Liste

option

The options to be added

Rückgabewerte

Always returns true.

Siehe auch

  • GearmanWorker::options() - Get worker options
  • GearmanClient::setOptions() - Set client options
  • GearmanClient::removeOptions() - Remove client options


Add a job server

  • « GearmanWorker::addOptions
  • GearmanWorker::addServers »
  • PHP Manual
  • GearmanWorker
  • Add a job server

GearmanWorker::addServer

(PECL gearman >= 0.5.0)

GearmanWorker::addServer — Add a job server

Beschreibung

public GearmanWorker::addServer ( string $host = 127.0.0.1 , int $port = 4730 ) : bool

Adds a job server to this worker. This goes into a list of servers than can be used to run jobs. No socket I/O happens here.

Parameter-Liste

host

Der Hostname des Jobservers.

port

Der Port des Jobservers.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Add alternate Gearman servers

<?php
$worker= new GearmanWorker();
$worker->addServer("10.0.0.1");
$worker->addServer("10.0.0.2", 7003);
?>

Siehe auch

  • GearmanWorker::addServers() - Add job servers


Add job servers

  • « GearmanWorker::addServer
  • GearmanWorker::clone »
  • PHP Manual
  • GearmanWorker
  • Add job servers

GearmanWorker::addServers

(PECL gearman >= 0.5.0)

GearmanWorker::addServers — Add job servers

Beschreibung

public GearmanWorker::addServers ( string $servers = 127.0.0.1:4730 ) : bool

Adds one or more job servers to this worker. These go into a list of servers that can be used to run jobs. No socket I/O happens here.

Parameter-Liste

servers

A comma separated list of job servers in the format host:port. If no port is specified, it defaults to 4730.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Add two job servers

<?php

$worker= new GearmanWorker();
$worker->addServers("10.0.0.1,10.0.0.2:7003");

?>

Siehe auch

  • GearmanWorker::addServer() - Add a job server


Create a copy of the worker

  • « GearmanWorker::addServers
  • GearmanWorker::__construct »
  • PHP Manual
  • GearmanWorker
  • Create a copy of the worker

GearmanWorker::clone

(PECL gearman >= 0.5.0)

GearmanWorker::clone — Create a copy of the worker

Beschreibung

public GearmanWorker::clone ( ) : void

Creates a copy of the worker.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A GearmanWorker object


Create a GearmanWorker instance

  • « GearmanWorker::clone
  • GearmanWorker::echo »
  • PHP Manual
  • GearmanWorker
  • Create a GearmanWorker instance

GearmanWorker::__construct

(PECL gearman >= 0.5.0)

GearmanWorker::__construct — Create a GearmanWorker instance

Beschreibung

public GearmanWorker::__construct ( )

Creates a GearmanWorker instance representing a worker that connects to the job server and accepts tasks to run.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A GearmanWorker object

Siehe auch

  • GearmanWorker::clone() - Create a copy of the worker


Test job server response

  • « GearmanWorker::__construct
  • GearmanWorker::error »
  • PHP Manual
  • GearmanWorker
  • Test job server response

GearmanWorker::echo

(PECL gearman >= 0.6.0)

GearmanWorker::echo — Test job server response

Beschreibung

public GearmanWorker::echo ( string $workload ) : bool

Sends data to all job servers to see if they echo it back. This is a test function to see if job servers are responding properly.

Parameter-Liste

workload

Arbitrary serialized data

Rückgabewerte

Standard Gearman return value.

Siehe auch

  • GearmanClient::echo() - Send data to all job servers to see if they echo it back [deprecated]


Get the last error encountered

  • « GearmanWorker::echo
  • GearmanWorker::getErrno »
  • PHP Manual
  • GearmanWorker
  • Get the last error encountered

GearmanWorker::error

(PECL gearman >= 0.5.0)

GearmanWorker::error — Get the last error encountered

Beschreibung

public GearmanWorker::error ( ) : string

Returns an error string for the last error encountered.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An error string.

Siehe auch

  • GearmanWorker::getErrno() - Get errno


Get errno

  • « GearmanWorker::error
  • GearmanWorker::options »
  • PHP Manual
  • GearmanWorker
  • Get errno

GearmanWorker::getErrno

(PECL gearman >= 0.5.0)

GearmanWorker::getErrno — Get errno

Beschreibung

public GearmanWorker::getErrno ( ) : int

Returns the value of errno in the case of a GEARMAN_ERRNO return value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A valid errno.

Siehe auch

  • GearmanWorker::error() - Get the last error encountered


Get worker options

  • « GearmanWorker::getErrno
  • GearmanWorker::register »
  • PHP Manual
  • GearmanWorker
  • Get worker options

GearmanWorker::options

(PECL gearman >= 0.6.0)

GearmanWorker::options — Get worker options

Beschreibung

public GearmanWorker::options ( ) : int

Gets the options previously set for the worker.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The options currently set for the worker.

Siehe auch

  • GearmanWorker::setOptions() - Set worker options


Register a function with the job server

  • « GearmanWorker::options
  • GearmanWorker::removeOptions »
  • PHP Manual
  • GearmanWorker
  • Register a function with the job server

GearmanWorker::register

(PECL gearman >= 0.6.0)

GearmanWorker::register — Register a function with the job server

Beschreibung

public GearmanWorker::register ( string $function_name , int $timeout = ? ) : bool

Registers a function name with the job server with an optional timeout. The timeout specifies how many seconds the server will wait before marking a job as failed. If the timeout is set to zero, there is no timeout.

Parameter-Liste

function_name

The name of a function to register with the job server

timeout

An interval of time in seconds

Rückgabewerte

A standard Gearman return value.

Siehe auch

  • GearmanWorker::unregister() - Unregister a function name with the job servers
  • GearmanWorker::unregisterAll() - Unregister all function names with the job servers


Remove worker options

  • « GearmanWorker::register
  • GearmanWorker::returnCode »
  • PHP Manual
  • GearmanWorker
  • Remove worker options

GearmanWorker::removeOptions

(PECL gearman >= 0.6.0)

GearmanWorker::removeOptions — Remove worker options

Beschreibung

public GearmanWorker::removeOptions ( int $option ) : bool

Removes (unsets) one or more worker options.

Parameter-Liste

option

The options to be removed (unset)

Rückgabewerte

Always returns true.

Siehe auch

  • GearmanWorker::options() - Get worker options
  • GearmanWorker::setOptions() - Set worker options
  • GearmanWorker::addOptions() - Add worker options


Get last Gearman return code

  • « GearmanWorker::removeOptions
  • GearmanWorker::setId »
  • PHP Manual
  • GearmanWorker
  • Get last Gearman return code

GearmanWorker::returnCode

(PECL gearman >= 0.5.0)

GearmanWorker::returnCode — Get last Gearman return code

Beschreibung

public GearmanWorker::returnCode ( ) : int

Returns the last Gearman return code.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A valid Gearman return code.

Siehe auch

  • GearmanWorker::error() - Get the last error encountered
  • GearmanWorker::getErrno() - Get errno


Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers

  • « GearmanWorker::returnCode
  • GearmanWorker::setOptions »
  • PHP Manual
  • GearmanWorker
  • Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers

GearmanWorker::setId

(No version information available, might only be in Git)

GearmanWorker::setId — Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers

Beschreibung

public GearmanWorker::setId ( string $id ) : bool

Assigns the worker an identifier.

Parameter-Liste

id

A string identifier.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 GearmanWorker::setId() example

Set an identifier for a simple worker.

<?php
$worker= new GearmanWorker();
$worker->setId('test');
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Run the following command:
gearadmin --workers

Output:
30 ::3a3a:3361:3361:3a33%976303667 - : test


Set worker options

  • « GearmanWorker::setId
  • GearmanWorker::setTimeout »
  • PHP Manual
  • GearmanWorker
  • Set worker options

GearmanWorker::setOptions

(PECL gearman >= 0.5.0)

GearmanWorker::setOptions — Set worker options

Beschreibung

public GearmanWorker::setOptions ( int $option ) : bool

Sets one or more options to the supplied value.

Parameter-Liste

option

The options to be set

Rückgabewerte

Always returns true.

Siehe auch

  • GearmanWorker::options() - Get worker options
  • GearmanWorker::addOptions() - Add worker options
  • GearmanWorker::removeOptions() - Remove worker options
  • GearmanClient::setOptions() - Set client options


Set socket I/O activity timeout

  • « GearmanWorker::setOptions
  • GearmanWorker::timeout »
  • PHP Manual
  • GearmanWorker
  • Set socket I/O activity timeout

GearmanWorker::setTimeout

(PECL gearman >= 0.6.0)

GearmanWorker::setTimeout — Set socket I/O activity timeout

Beschreibung

public GearmanWorker::setTimeout ( int $timeout ) : bool

Sets the interval of time to wait for socket I/O activity.

Parameter-Liste

timeout

An interval of time in milliseconds. A negative value indicates an infinite timeout.

Rückgabewerte

Always returns true.

Beispiele

Beispiel #1 A simple worker with a 5 second timeout

<?php

echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server.
$gmworker->addFunction("reverse", "reverse_fn");

# Set the timeout to 5 seconds
$gmworker->setTimeout(5000);

echo "Waiting for job...\n";
while(@$gmworker->work() || $gmworker->returnCode() == GEARMAN_TIMEOUT)
{
  if ($gmworker->returnCode() == GEARMAN_TIMEOUT)
  {
    # Normally one would want to do something useful here ...
    echo "Timeout. Waiting for next job...\n";
    continue;
  }

  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

echo "Done\n";

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

Running the worker with no submitted jobs will generate output that looks like the following:

Starting
Waiting for job...
Timeout. Waiting for next job...
Timeout. Waiting for next job...
Timeout. Waiting for next job...

Siehe auch

  • GearmanWorker::timeout() - Get socket I/O activity timeout


Get socket I/O activity timeout

  • « GearmanWorker::setTimeout
  • GearmanWorker::unregister »
  • PHP Manual
  • GearmanWorker
  • Get socket I/O activity timeout

GearmanWorker::timeout

(PECL gearman >= 0.6.0)

GearmanWorker::timeout — Get socket I/O activity timeout

Beschreibung

public GearmanWorker::timeout ( ) : int

Returns the current time to wait, in milliseconds, for socket I/O activity.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A time period is milliseconds. A negative value indicates an infinite timeout.

Siehe auch

  • GearmanWorker::setTimeout() - Set socket I/O activity timeout


Unregister a function name with the job servers

  • « GearmanWorker::timeout
  • GearmanWorker::unregisterAll »
  • PHP Manual
  • GearmanWorker
  • Unregister a function name with the job servers

GearmanWorker::unregister

(PECL gearman >= 0.6.0)

GearmanWorker::unregister — Unregister a function name with the job servers

Beschreibung

public GearmanWorker::unregister ( string $function_name ) : bool

Unregisters a function name with the job servers ensuring that no more jobs (for that function) are sent to this worker.

Parameter-Liste

function_name

The name of a function to register with the job server

Rückgabewerte

A standard Gearman return value.

Siehe auch

  • GearmanWorker::register() - Register a function with the job server
  • GearmanWorker::unregisterAll() - Unregister all function names with the job servers


Unregister all function names with the job servers

  • « GearmanWorker::unregister
  • GearmanWorker::wait »
  • PHP Manual
  • GearmanWorker
  • Unregister all function names with the job servers

GearmanWorker::unregisterAll

(PECL gearman >= 0.6.0)

GearmanWorker::unregisterAll — Unregister all function names with the job servers

Beschreibung

public GearmanWorker::unregisterAll ( ) : bool

Unregisters all previously registered functions, ensuring that no more jobs are sent to this worker.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A standard Gearman return value.

Siehe auch

  • GearmanWorker::register() - Register a function with the job server
  • GearmanWorker::unregister() - Unregister a function name with the job servers


Wait for activity from one of the job servers

  • « GearmanWorker::unregisterAll
  • GearmanWorker::work »
  • PHP Manual
  • GearmanWorker
  • Wait for activity from one of the job servers

GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::wait — Wait for activity from one of the job servers

Beschreibung

public GearmanWorker::wait ( ) : bool

Causes the worker to wait for activity from one of the Gearman job servers when operating in non-blocking I/O mode. On failure, issues a E_WARNING with the last Gearman error encountered.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Running worker in non-blocking mode

<?php

echo "Starting\n";

# Create our worker object
$worker= new GearmanWorker();

# Make the worker non-blocking
$worker->addOptions(GEARMAN_WORKER_NON_BLOCKING);

# Add the default server (localhost, port 4730)
$worker->addServer();

# Add our reverse function
$worker->addFunction('reverse', 'reverse_fn');

# Try to grab a job
while (@$worker->work() ||
       $worker->returnCode() == GEARMAN_IO_WAIT ||
       $worker->returnCode() == GEARMAN_NO_JOBS)
{
  if ($worker->returnCode() == GEARMAN_SUCCESS)
    continue;

  echo "Waiting for next job...\n";
  if (!@$worker->wait())
  {
    if ($worker->returnCode() == GEARMAN_NO_ACTIVE_FDS)
    {
      # We are not connected to any servers, so wait a bit before
      # trying to reconnect.
      sleep(5);
      continue;
    }
    break;
  }
}

echo "Worker Error: " . $worker->error() . "\n";

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

Siehe auch

  • GearmanWorker::work() - Wait for and perform jobs


Wait for and perform jobs

  • « GearmanWorker::wait
  • GearmanException »
  • PHP Manual
  • GearmanWorker
  • Wait for and perform jobs

GearmanWorker::work

(PECL gearman >= 0.5.0)

GearmanWorker::work — Wait for and perform jobs

Beschreibung

public GearmanWorker::work ( ) : bool

Waits for a job to be assigned and then calls the appropriate callback function. Issues an E_WARNING with the last Gearman error if the return code is not one of GEARMAN_SUCCESS, GEARMAN_IO_WAIT, or GEARMAN_WORK_FAIL.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 GearmanWorker::work() example

<?php

# create the worker
$worker = new GearmanWorker();

# add the default job server (localhost)
$worker->addServer();

# add the reverse function
$worker->addFunction("reverse", "my_reverse_function");

# start te worker listening for job submissions
while ($worker->work());

function my_reverse_function($job)
{
  return strrev($job->workload());
}

?>

Siehe auch

  • GearmanWorker::addFunction() - Register and add callback function


The GearmanException class

(PECL gearman >= 0.5.0)

Einführung

Klassenbeschreibung

GearmanException extends Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


Lightweight Directory Access Protocol

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Die LDAP-Funktionen PHP verwenden
  • LDAP controls
  • Beispiele
    • Grundlegende Nutzung
    • LDAP-Steuerbefehle
  • LDAP Funktionen
    • ldap_8859_to_t61 — Übersetzt 8859-Zeichen in t61-Zeichen
    • ldap_add_ext — Add entries to LDAP directory
    • ldap_add — Fügt einem LDAP-Verzeichnis Einträge hinzu
    • ldap_bind_ext — Bind to LDAP directory
    • ldap_bind — Anmeldung an einem LDAP-Verzeichnis (LDAP Bind)
    • ldap_close — Alias von ldap_unbind
    • ldap_compare — Vergleicht den Wert eines Merkmals mit dem eines Eintrags
    • ldap_connect — Verbindet mit einem LDAP-Server
    • ldap_control_paged_result_response — Retrieve the LDAP pagination cookie
    • ldap_control_paged_result — Send LDAP pagination control
    • ldap_count_entries — Liefert bei einer Suche die Anzahl der Einträge
    • ldap_delete_ext — Delete an entry from a directory
    • ldap_delete — Löscht einen Eintrag aus einem Verzeichnis
    • ldap_dn2ufn — Konvertiert einen DN in ein benutzerfreundliches Namensformat
    • ldap_err2str — Konvertiert eine LDAP-Fehlernummer in einen Fehlertext
    • ldap_errno — Liefert die LDAP-Fehlernummer des letzten LDAP-Kommandos
    • ldap_error — Liefert die LDAP-Fehlermeldung des letzten LDAP-Kommandos
    • ldap_escape — Escape a string for use in an LDAP filter or DN
    • ldap_exop_passwd — PASSWD extended operation helper
    • ldap_exop_refresh — Refresh extended operation helper
    • ldap_exop_whoami — WHOAMI extended operation helper
    • ldap_exop — Performs an extended operation
    • ldap_explode_dn — Trennt einen DN in seine Bestandteile
    • ldap_first_attribute — Liefert das erste Merkmal
    • ldap_first_entry — Liefert die Kennung des ersten Ergebnisses
    • ldap_first_reference — Liefert die erste Referenz
    • ldap_free_result — Gibt den Ergebnisspeicher frei
    • ldap_get_attributes — Liefert die Merkmale eines Eintrags aus einem Suchergebnis
    • ldap_get_dn — Liefert den DN eines Eintrags aus einem Suchergebnis
    • ldap_get_entries — Liefert alle Einträge aus einem Ergebnis
    • ldap_get_option — Liefert den aktuellen Wert einer gegebenen Option
    • ldap_get_values_len — Liefert alle binären Werte eines Eintrags aus einem Ergebnis
    • ldap_get_values — Liefert alle Werte eines Eintrags aus einem Ergebnis
    • ldap_list — Suche in einer Ebene
    • ldap_mod_add_ext — Add attribute values to current attributes
    • ldap_mod_add — Fügt Merkmalswerte zum aktuellen Eintrag hinzu
    • ldap_mod_del_ext — Delete attribute values from current attributes
    • ldap_mod_del — Löscht Merkmalswerte des aktuellen Eintrags
    • ldap_mod_replace_ext — Replace attribute values with new ones
    • ldap_mod_replace — Ersetzt Merkmalswerte durch neue Merkmalswerte
    • ldap_modify_batch — Batch and execute modifications on an LDAP entry
    • ldap_modify — Alias von ldap_mod_replace
    • ldap_next_attribute — Liefert das nächste Merkmal im Ergebnis
    • ldap_next_entry — Liefert den nächsten Eintrag eines Ergebnisses
    • ldap_next_reference — Holt die nächste Referenz
    • ldap_parse_exop — Parse result object from an LDAP extended operation
    • ldap_parse_reference — Extrahiert Informationen aus einem Referenz-Eintrag
    • ldap_parse_result — Extrahiert Informationen aus einem Ergebnis
    • ldap_read — Liest einen Eintrag
    • ldap_rename_ext — Modify the name of an entry
    • ldap_rename — Ändert den Namen eines Eintrags
    • ldap_sasl_bind — Bind to LDAP directory using SASL
    • ldap_search — Sucht im LDAP-Baum
    • ldap_set_option — Setzt den Wert der gegebenen Option
    • ldap_set_rebind_proc — Setzt einen Callback um Rebinds bei der Verweisverfolgung durchzuführen
    • ldap_sort — Sortiert LDAP-Ergebniseinträge clientseitig
    • ldap_start_tls — Startet TLS
    • ldap_t61_to_8859 — Übersetzt t61-Zeichen in 8859-Zeichen
    • ldap_unbind — Löst die Bindung zu einem LDAP-Verzeichnis


Einführung

LDAP steht für Lightweight Directory Access Protocol und ist ein Protokoll um auf "Directory Servers" - Verzeichnis- Server - zuzugreifen. Das Verzeichnis ist dabei eine spezielle Art einer Datenbank, das Informationen in einer Baumstruktur bereithält.

Das Konzept ist dabei ähnlich der Verzeichnisstruktur Ihrer Festplatte, mit der Ausnahme, dass in diesem Zusammenhang das Wurzelverzeichnis "Die Welt" ist und die Unterverzeichnisse der ersten Ebene "Länder" abbilden. Die weiteren Verzeichnisse unterhalb der Länderebene enthalten Einträge für Firmen, Organisationen oder Städte. Noch tiefer geschachtelt stehen Verzeichniseinträge für Personen und vielleicht für Ausstattung oder Dokumente.

Um auf eine Datei in einem Unterverzeichnis auf Ihrer Festplatte zu verweisen, könnten Sie eine Schreibweise wie folgt verwenden

  /usr/local/meine_daten/doku

Die Schrägstriche markieren jeden Teil in diesem Verweis und die Sequenz wird von links nach rechts gelesen.

Das entsprechende Gegenstück zu einer voll qualifizierten Dateireferenz ist in LDAP der Eindeutige Name ("distinguished name"), der Einfachheit halber als "dn" bezeichnet. Ein Beispiel für einen solchen dn könnte sein

  cn=Hans Mustermann,ou=Buchhaltung,o=Meine Firma,c=DE

Das Komma markiert jeden Teil in diesem Verweis und die Sequenz wird von rechts nach links gelesen. Diesen dn würden Sie wie folgt lesen:

  Land = DE
  Organisation (organisation) = Meine Firma
  Organisationseinheit (organisationalUnit) = Buchhaltung
  Einfacher Name (commonName) = Hans Mustermann

In der gleichen Weise, in der es keine allgemeinverbindlichen Regeln gibt, wie Sie die Verzeichnisstruktur Ihrer Festplatte organsieren, kann der Verwalter eines Verzeichnis-Servers jede beliebige Struktur implementieren, die für den Einsatzzweck sinnvoll ist. Die Botschaft ist folgende: Sie können keinen Code schreiben um auf einen Verzeichnis-Server zuzugreifen, ohne etwas über dessen Struktur zu wissen. Genauso wenig können Sie eine Datenbank nutzen ohne Kenntnis darüber, was in derselben vorhanden ist.

Weitere nützliche Informationen zu LDAP finden Sie unter

  • » Mozilla

  • » OpenLDAP Project

  • Internet Engineering Taskforce RFCs » 4510 bis » 4519.

Das Netscape SDK enthält einen hilfreichen » Programmer´s Guide im HTML Format.


Anforderungen

Sie benötigen die LDAP Client Bibliotheken von » OpenLDAP oder » Bind9.net um PHP mit LDAP Unterstützung zu kompilieren. Für PHP 5.6 oder neuer wird OpenLDAP 2.4 oder neuer benötigt.


Installation

LDAP Unterstützung ist in PHP im Standard nicht aktiviert. Sie müssen die Konfigurationsoption --with-ldap[=DIR] beim Übersetzen von PHP angeben. DIR bezeichnet LDAP Installationsverzeichnis. Um zusätzlich SASL Unterstützung zu aktivieren müssen Sie die --with-ldap-sasl[=DIR] Konfigurationsoption hinzufügen und sicherstellen das die Datei sasl.h auf Ihrem System vorhanden ist.

Hinweis: Hinweis für Win32 Benutzer

Diese Extension benötigt DLL-Dateien. die für Windows verfügbar seien müssen. Der FAQ-Eintrag " Wie füge ich unter Windows PATH mein PHP-Verzeichnis hinzu?" gibt hierzu weitere Informationen. Obwohl ein einfaches Kopieren der DLL-Dateien vom PHP-Verzeichnis in den Windows-Systemordner auch funktioniert (weil der Systemordner immer im PATH enthalten ist), ist dieses Vorgehen nicht empfehlenswert. Diese Extension benötigt die folgenden Dateien im PATH: libeay32.dll und ssleay32.dll oder, von OpenSSL 1.1 an, libcrypto-*.dll und libssl-*.dll

Wenn Sie die Oracle LDAP Bibliotheken nutzen wollen, müssen Sie sicherstellen, dass eine gültige Oracle Umgebung aufgesetzt ist.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

LDAP Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
ldap.max_links | "-1" | PHP_INI_SYSTEM |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

ldap.max_links int

Die maximale Anzahl von LDAP-Verbindungen pro Prozess.


Ressource-Typen

Die meisten LDAP Funktionen geben entweder Resourcen zurück oder erwarten diese als Eingabe (so gibt z.B. ldap_connect() eine LDAP Verbindungsresource zurück die von den meisten anderen LDAP Funktionen benötigt wird.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

LDAP_DEREF_NEVER (int)
Alias-Dereferenzierungsregel – Nie.
LDAP_DEREF_SEARCHING (int)
Alias-Dereferenzierungsregel – Während der Namensauflösung.
LDAP_DEREF_FINDING (int)
Alias-Dereferenzierungsregel – Nach der Namensauflösung.
LDAP_DEREF_ALWAYS (int)
Alias-Dereferenzierungsregel – Immer.
LDAP_OPT_DEREF (int)
Gibt alternative Regeln für das Verfolgen von Aliasen auf dem Server an.
LDAP_OPT_SIZELIMIT (int)

Gibt die Höchstanzahl von Einträgen an, die bei einer Suchoperation zurückgegeben werden können.

Hinweis: Die tatsächliche Höchstanzahl für Operationen ist auch durch die auf dem Server konfigurierte Höchstanzahl von Rückgabe-Einträgen beschränkt. Die kleinere dieser beiden Einstellungen ist die tatsächliche Höchstanzahl.

LDAP_OPT_TIMELIMIT (int)
Gibt die Anzahl von Sekunden an, für die auf Suchergebnisse gewartet werden soll.

Hinweis: Die tatsächliche Höchstdauer für Operationen ist auch durch die auf dem Server konfigurierte Höchstdauer beschränkt. Die kleinere dieser beiden Einstellungen ist die tatsächliche Höchstdauer.

LDAP_OPT_NETWORK_TIMEOUT (int)
Option für ldap_set_option() um den Netzwerk-Timeout festzulegen (ab PHP 5.3.0).
LDAP_OPT_PROTOCOL_VERSION (int)
Gibt das zu verwendende LDAP-Protokoll an (V2 oder V3).
LDAP_OPT_ERROR_NUMBER (int)
Die letzte Fehlernummer der Sitzung.
LDAP_OPT_REFERRALS (int)
Gibt an, ob vom LDAP-Server zurückgegebenen Verweisen automatisch gefolgt werden soll.
LDAP_OPT_RESTART (int)
Bestimmt, ob die Verbindung implizit neu gestartet werden soll oder nicht.
LDAP_OPT_HOST_NAME (int)
Setzt oder liest eine durch Leerzeichen getrennte Liste von Hosts für den Verbindungsversuch.
LDAP_OPT_ERROR_STRING (int)
Alias von LDAP_OPT_DIAGNOSTIC_MESSAGE.
LDAP_OPT_DIAGNOSTIC_MESSAGE (int)
Ermittelt die letzte Fehlermeldung der Sitzung.
LDAP_OPT_MATCHED_DN (int)
Setzt oder ermittelt den zutreffenden DN, der der Verbindung zugeordnet ist.
LDAP_OPT_SERVER_CONTROLS (int)
Gibt eine Standardliste von Server-Steuerbefehlen an, die mit jeder Anfrage gesendet werden.
LDAP_OPT_CLIENT_CONTROLS (int)
Gibt eine Standardliste von Client-Steuerbefehlen an, die bei jeder Anfrage verarbeitet werden.
LDAP_OPT_DEBUG_LEVEL (int)
Gibt eine Binärstufe für Debug-Ablaufverfolgung an.
LDAP_OPT_X_KEEPALIVE_IDLE (int)
Gibt die Anzahl von Sekunden an, für die eine Verbindung inaktiv sein muss, bevor TCP beginnt, Keepalive-Pakete zu senden.
LDAP_OPT_X_KEEPALIVE_PROBES (int)
Gibt die Höchstanzahl von Keepalive-Paketen an, die TCP senden soll, bevor die Verbindung abgebrochen wird.
LDAP_OPT_X_KEEPALIVE_INTERVAL (int)
Gibt die Zeitspanne in Sekunden zwischen einzelnen Keepalive-Paketen an.
LDAP_OPT_X_TLS_CACERTDIR (string)
Gibt den Pfad des Verzeichnisses an, das die CA-Zertifikate enthält.
LDAP_OPT_X_TLS_CACERTFILE (string)
Gibt den vollständigen Pfad der CA-Zertifikatsdatei an.
LDAP_OPT_X_TLS_CERTFILE (string)
Gibt den vollständigen Pfad der Zertifikatsdatei an.
LDAP_OPT_X_TLS_CIPHER_SUITE (string)
Gibt die erlaubte Chiffrensammlung an.
LDAP_OPT_X_TLS_CRLCHECK (int)
Legt die CRL-Auswertungsstrategie fest. Entweder LDAP_OPT_X_TLS_CRL_NONE, LDAP_OPT_X_TLS_CRL_PEER oder LDAP_OPT_X_TLS_CRL_ALL.

Hinweis: Diese Option ist nur für OpenSSL gültig.

LDAP_OPT_X_TLS_CRLFILE (string)
Gibt den vollständigen Pfad der CRL-Datei an.

Hinweis: Diese Option ist nur für GnuTLS gültig.

LDAP_OPT_X_TLS_DHFILE (string)
Gibt den vollständigen Pfad der Datei an, die die Parameter für den Ephemeral-Diffie-Hellman-Schlüsselaustausch enthält.

Hinweis: Diese Option wird von GnuTLS und Mozilla NSS ignoriert.

LDAP_OPT_X_TLS_KEYFILE (string)
Gibt den vollständigen Pfad der Zertifikats-Schlüsseldatei an.
LDAP_OPT_X_TLS_PROTOCOL_MIN (int)
Gibt die Mindestprotokolversion an. Entweder LDAP_OPT_X_TLS_PROTOCOL_SSL2, LDAP_OPT_X_TLS_PROTOCOL_SSL3, LDAP_OPT_X_TLS_PROTOCOL_TLS1_0, LDAP_OPT_X_TLS_PROTOCOL_TLS1_1 oder LDAP_OPT_X_TLS_PROTOCOL_TLS1_2.
LDAP_OPT_X_TLS_RANDOM_FILE (string)
Setzt oder ermittelt die Zufallsdatei, wenn eine Standard-Systemdatei nicht verfügbar ist.
LDAP_OPT_X_TLS_REQUIRE_CERT (int)
Gibt die Zertifikatsprüfungsstrategie an. Entweder LDAP_OPT_X_TLS_NEVER, LDAP_OPT_X_TLS_HARD, LDAP_OPT_X_TLS_DEMAND, LDAP_OPT_X_TLS_ALLOW oder LDAP_OPT_X_TLS_TRY. Verfügbar seit PHP 7.0.0.
GSLC_SSL_NO_AUTH (int)
SSL-Authentifizierungsmodus – Keine Authentifizierung nötig. (Nur für Oracle LDAP)
GSLC_SSL_ONEWAY_AUTH (int)
SSL-Authentifizierungsmodus – Nur Serverauthentifizierung nötig. (Nur für Oracle LDAP)
GSLC_SSL_TWOWAY_AUTH (int)
SSL-Authentifizierungsmodus – Sowohl Server- als auch Clientauthentifizierung nötig. (Nur für Oracle LDAP)
LDAP_EXOP_START_TLS (string)
Konstante des erweiterten Betriebs - Start TLS (» RFC 4511).
LDAP_EXOP_MODIFY_PASSWD (string)
Konstante des erweiterten Betriebs - Passwort ändern (» RFC 3062).
LDAP_EXOP_REFRESH (string)
Konstante des erweiterten Betriebs - Aktualisieren (» RFC 2589).
LDAP_EXOP_WHO_AM_I (string)
Konstante des erweiterten Betriebs - WHOAMI (» RFC 4532).
LDAP_EXOP_TURN (string)
Konstante des erweiterten Betriebs - Umkehren (» RFC 4531).
LDAP_CONTROL_MANAGEDSAIT (string)
Konstante zur Steuerung - DSA IT verwalten (» RFC 3296). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_PROXY_AUTHZ (string)
Konstante zur Steuerung - Proxy-Autorisierung (» RFC 4370). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_SUBENTRIES (string)
Konstante zur Steuerung - Untereinträge (» RFC 3672). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_VALUESRETURNFILTER (string)
Konstante zur Steuerung - Rückgabewerte filtern (» RFC 3876). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_ASSERT (string)
Konstante zur Steuerung - Bestätigung (» RFC 4528). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_PRE_READ (string)
Konstante zur Steuerung - Vor dem Lesen (» RFC 4527). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_POST_READ (string)
Konstante zur Steuerung - Nach dem Lesen (» RFC 4527). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_SORTREQUEST (string)
Konstante zur Steuerung - Sortieranforderung (» RFC 2891). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_SORTRESPONSE (string)
Konstante zur Steuerung - Sortierantwort (» RFC 2891). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_PAGEDRESULTS (string)
Konstante zur Steuerung - Ergebnisse seitenweise (» RFC 2696). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_AUTHZID_REQUEST (string)
Konstante zur Steuerung - Anfrage zur Identitätsautorisierung (» RFC 3829). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_AUTHZID_RESPONSE (string)
Konstante zur Steuerung - Antwort zur Identitätsautorisierung (» RFC 3829). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_SYNC (string)
Konstante zur Steuerung - Synchronisationsvorgang des Inhalts (» RFC 4533). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_SYNC_STATE (string)
Konstante zur Steuerung - Status der Inhaltssynchronisation (» RFC 4533). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_SYNC_DONE (string)
Konstante zur Steuerung - Synchronisationsvorgang des Inhalts abgeschlossen (» RFC 4533). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_DONTUSECOPY (string)
Konstante zur Steuerung - Keine Kopie verwenden (» RFC 6171). Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_PASSWORDPOLICYREQUEST (string)
Konstante zur Steuerung - Anforderung der Kennwortrichtlinie. Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_PASSWORDPOLICYRESPONSE (string)
Konstante zur Steuerung - Antwort der Passwortrichtlinie. Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_X_INCREMENTAL_VALUES (string)
Konstante zur Steuerung - Inkrementelle Werte des aktiven Verzeichnisses. Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_X_DOMAIN_SCOPE (string)
Konstante zur Steuerung - Bereich der Domäne des aktiven Verzeichnisses. Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_X_PERMISSIVE_MODIFY (string)
Konstante zur Steuerung - Berechtigung zum Ändern des aktiven Verzeichnisses. Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_X_SEARCH_OPTIONS (string)
Konstante zur Steuerung - Suchoptionen für das aktive Verzeichnis. Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_X_TREE_DELETE (string)
Konstante zur Steuerung - Löschen eines Baums aus dem aktiven Verzeichnis. Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_X_EXTENDED_DN (string)
Konstante zur Steuerung - Erweiterter DN des Aktiven Verzeichnisses. Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_VLVREQUEST (string)
Konstante zur Steuerung - Anforderung der virtuellen Listenansicht. Verfügbar von PHP 7.3.0 an.
LDAP_CONTROL_VLVRESPONSE (string)
Konstante zur Steuerung - Antwort der virtuellen Listenansicht. Verfügbar von PHP 7.3.0 an.


Die LDAP-Funktionen PHP verwenden

Bevor Sie die LDAP-Funktionen verwenden können, müssen Sie folgendes wissen...

  • Den Namen oder die Adresse des Verzeichnis-Servers, den Sie benutzen wollen

  • Den Basis-DN (Distinguished Name) des Servers (den Teil des Weltverzeichnisses, das auf diesem Server eingerichtet ist, das könnte "o=Meine Firma,c=DE" sein.

  • Brauchen Sie ein Passwort um auf den Server zuzugreifen? Viele Server bieten einen anonymen Lesezugriff, verlangen aber ein Passwort für alles weitere.

Die typische Abfolge von LDAP-Aufrufen in einer Anwendung folgen diesem Muster

  ldap_connect()    // Aufbau einer Verbindung zum Server
     |
  connection to server
     |
  ldap_bind()       // anonymes oder authentifiziertes "login"
     |
  mache irgendwas, z.B. Verzeichnis durchsuchen oder aktualisieren
  und stelle das Ergebnis dar
     |
  ldap_close()      // "logout"


LDAP controls

Controls are special objects which may be sent alongside an LDAP request to alter LDAP server behavior while performing the request. There may also be controls sent by the server alongside the response to provide more information, usually to answer a control object from the request.

Hinweis:

Not all controls are supported by all LDAP servers. To know which controls are supported by a server, you need to query the root DSE by reading an empty dn with the filter (objectClass=*).

Beispiel #1 Testing support for paged result control

<?php

// $ds is a valid link identifier for a directory server

$result = ldap_read($ds, '', '(objectClass=*)', ['supportedControl']);
if (!in_array(LDAP_CONTROL_PAGEDRESULTS, ldap_get_entries($ds, $result)[0]['supportedcontrol'])) {
  die("This server does not support paged result control");
}

?>

As of PHP 7.3, you can send controls with your request in all request functions using the serverctrls parameter. When a ext version of a function exists, you should use it if you want to get access to the full response object and be able to parse response controls from it using ldap_parse_result().

serverctrls must be an array containing an array for each control to send, containing the following keys:

oid (string)
The OID of the control. You should use constants starting with LDAP_CONTROL_ for this. See LDAP Constants.
iscritical (bool)
If a control is noted as critical, the request will fail if the control is not supported by the server, or if it fails to be applied. Note that some controls should always be marked as critical as noted in the RFC introducing them. Defaults to false.
value (mixed)
If applicable, the value of the control. Read below for more information.

Most control values are sent to the server BER-encoded. You may either BER-encode the value yourself, or you can instead pass an array with the correct keys so that the encoding is done for you. Supported controls to be passed as an array are:

  • LDAP_CONTROL_PAGEDRESULTS Expected keys are [size] and [cookie]

  • LDAP_CONTROL_ASSERT Expected key is filter

  • LDAP_CONTROL_VALUESRETURNFILTER Expected key is filter

  • LDAP_CONTROL_PRE_READ Expected key is attrs

  • LDAP_CONTROL_POST_READ Expected key is attrs

  • LDAP_CONTROL_SORTREQUEST Expects an array of arrays with keys attr, [oid], [reverse].

  • LDAP_CONTROL_VLVREQUEST Expected keys are before, after, attrvalue|(offset, count), [context]

The following controls do not need any value:

  • LDAP_CONTROL_PASSWORDPOLICYREQUEST

  • LDAP_CONTROL_MANAGEDSAIT

  • LDAP_CONTROL_DONTUSECOPY

The control LDAP_CONTROL_PROXY_AUTHZ is a special case as its value is not expected to be BER-encoded, so you can directly use a string for its value.

When controls are parsed by ldap_parse_result(), values are turned into an array if supported. This is supported for:

  • LDAP_CONTROL_PASSWORDPOLICYRESPONSE Keys are expire, grace, [error]

  • LDAP_CONTROL_PAGEDRESULTS Keys are size, cookie

  • LDAP_CONTROL_PRE_READ Keys are dn and LDAP attributes names

  • LDAP_CONTROL_POST_READ Keys are dn and LDAP attributes names

  • LDAP_CONTROL_SORTRESPONSE Keys are errcode, [attribute]

  • LDAP_CONTROL_VLVRESPONSE Keys are target, count, errcode, context


  • « LDAP controls
  • Grundlegende Nutzung »
  • PHP Manual
  • LDAP
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Grundlegende Nutzung
  • LDAP-Steuerbefehle


Grundlegende Nutzung

Informationen von einem Verzeichnis-Server beziehen für alle Einträge bei denen der Nachname mit "S" beginnt. Darstellung eines Auszugs mit Name und Email-Adresse.

Beispiel #1 LDAP Such-Beispiel

<?php
// Grundlegende Abfolge bei LDAP ist verbinden, binden, suchen,
// interpretieren des Sucheergebnisses, Verbindung schließen

echo "<h3>LDAP query Test</h3>";
echo "Verbindung ...";
$ds=ldap_connect("localhost");  // muss ein gültiger LDAP Server
                               // sein!
    echo "Ergebnis der Verbindung: ".$ds."<br />";

if ($ds) {
    echo "Bindung ...";
    $r=ldap_bind($ds);     // das ist ein "anonymer" bind,
                           // typischerweise nur Lese Zugriff
    echo "Ergebnis der Bindung ".$r."<br />";

    echo "Suche nach (sn=S*) ...";
    // Suchen des Nachnamen-Eintrags
    $sr=ldap_search($ds,"o=Meine Firma, c=DE", "sn=S*");
    echo "Ergebnis der Suche ".$sr."<br />";

    echo "Anzahl gefundenen Einträge ".ldap_count_entries($ds,$sr)."<br />";

    echo "Einträge holen ...<br />";
    $info = ldap_get_entries($ds, $sr);
    echo "Daten für ".$info["count"]." Items gefunden:<br />";

    for ($i=0; $i<$info["count"]; $i++) {
        echo "dn ist: ". $info[$i]["dn"] ."<br />";
        echo "erster cn Eintrag: ". $info[$i]["cn"][0] ."<br />";
        echo "erster email Eintrag: ". $info[$i]["mail"][0] ."<br /><hr />";
    }

    echo "Verbindung schließen";
    ldap_close($ds);

} else {
    echo "<h4>Verbindung zum LDAP Server nicht möglich</h4>";
}
?>


LDAP-Steuerbefehle

Hier sind einige Beispiele für die Verwendung von LDAP-Steuerbefehlen unter PHP >= 7.3.0.

Beispiel #1 Binden mit Ppolicy Information

<?php

$user   = 'cn=admin,dc=example,dc=com';
$passwd = 'adminpassword';

$ds = ldap_connect('ldap://localhost');

if ($ds) {
    $r = ldap_bind_ext($ds, $user, $passwd, [['oid' => LDAP_CONTROL_PASSWORDPOLICYREQUEST]]);

    if (ldap_parse_result($ds, $r, $errcode, $matcheddn, $errmsg, $referrals, $ctrls)) {
        if ($errcode != 0) {
            die("Fehler: $errmsg ($errcode)");
        }
        if (isset($ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE])) {
            $value = $ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE]['value'];
            echo "Verfällt in: ".$value['expire']." Sekunden\n";
            echo "Anzahl der verfügbaren Authentifizierungsversuche: ".$value['grace']."\n";
            if (isset($value['error'])) {
                echo "Ppolicy Fehlercode: ".$value['error'];
            }
        }
    }
} else {
    die("Verbindung mit dem LDAP-Server nicht möglich");
}
?>

Beispiel #2 Ändern der Beschreibung, falls diese nicht leer ist

<?php
// $link ist eine LDAP-Verbindung

$result = ldap_mod_replace_ext(
    $link,
    'o=test,dc=example,dc=com',
    ['description' => 'New description'],
    [
        [
            'oid'         => LDAP_CONTROL_ASSERT,
            'iscritical'  => TRUE,
            'value'       => ['filter' => '(!(description=*))']
        ]
    ]
);

// Nun ist ldap_parse_result zu verwenden
?>

Beispiel #3 Lesen einiger Werte vor dem Löschen

<?php
// $link ist eine LDAP-Verbindung

$result = ldap_delete_ext(
    $link,
    'o=test,dc=example,dc=com',
    [
        [
            'oid'         => LDAP_CONTROL_PRE_READ,
            'iscritical'  => TRUE,
            'value'       => ['attrs' => ['o', 'description']]
        ]
    ]
);

// Nun ist ldap_parse_result zu verwenden
?>

Beispiel #4 Löschen einer Referenz

<?php
// $link ist eine LDAP-Verbindung

// Ohne den Steuerbefehl würde der referenzierte Knoten gelöscht.
// Der Steuerbefehl muss als kritisch markiert werden, um dies zu vermeiden.
$result = ldap_delete_ext(
    $link,
    'cn=reference,dc=example,dc=com',
    [['oid' => LDAP_CONTROL_MANAGEDSAIT, 'iscritical' => TRUE]]
);

// Nun ist ldap_parse_result zu verwenden
?>

Beispiel #5 Paginierung für eine Suche verwenden

<?php
// $link ist eine LDAP-Verbindung

$cookie = '';

do {
    $result = ldap_search(
        $link, 'dc=example,dc=base', '(cn=*)', ['cn'], 0, 0, 0, LDAP_DEREF_NEVER,
        [['oid' => LDAP_CONTROL_PAGEDRESULTS, 'value' => ['size' => 2, 'cookie' => $cookie]]]
    );
    ldap_parse_result($link, $result, $errcode , $matcheddn , $errmsg , $referrals, $controls);
    // Um das Beispiel übersichtlich zu halten, wird nicht auf Fehler geprüft
    $entries = ldap_get_entries($link, $result);
    foreach ($entries as $entry) {
        echo "cn: ".$entry['cn'][0]."\n";
    }
    if (isset($controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'])) {
        // Das Cookie des letzten Aufrufs muss an den Folgenden übergeben werden
        $cookie = $controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'];
    } else {
        $cookie = '';
    }
    // Ein leeres Cookie bedeutet die letzte Seite
} while (!empty($cookie));
?>


LDAP Funktionen

Inhaltsverzeichnis

  • ldap_8859_to_t61 — Übersetzt 8859-Zeichen in t61-Zeichen
  • ldap_add_ext — Add entries to LDAP directory
  • ldap_add — Fügt einem LDAP-Verzeichnis Einträge hinzu
  • ldap_bind_ext — Bind to LDAP directory
  • ldap_bind — Anmeldung an einem LDAP-Verzeichnis (LDAP Bind)
  • ldap_close — Alias von ldap_unbind
  • ldap_compare — Vergleicht den Wert eines Merkmals mit dem eines Eintrags
  • ldap_connect — Verbindet mit einem LDAP-Server
  • ldap_control_paged_result_response — Retrieve the LDAP pagination cookie
  • ldap_control_paged_result — Send LDAP pagination control
  • ldap_count_entries — Liefert bei einer Suche die Anzahl der Einträge
  • ldap_delete_ext — Delete an entry from a directory
  • ldap_delete — Löscht einen Eintrag aus einem Verzeichnis
  • ldap_dn2ufn — Konvertiert einen DN in ein benutzerfreundliches Namensformat
  • ldap_err2str — Konvertiert eine LDAP-Fehlernummer in einen Fehlertext
  • ldap_errno — Liefert die LDAP-Fehlernummer des letzten LDAP-Kommandos
  • ldap_error — Liefert die LDAP-Fehlermeldung des letzten LDAP-Kommandos
  • ldap_escape — Escape a string for use in an LDAP filter or DN
  • ldap_exop_passwd — PASSWD extended operation helper
  • ldap_exop_refresh — Refresh extended operation helper
  • ldap_exop_whoami — WHOAMI extended operation helper
  • ldap_exop — Performs an extended operation
  • ldap_explode_dn — Trennt einen DN in seine Bestandteile
  • ldap_first_attribute — Liefert das erste Merkmal
  • ldap_first_entry — Liefert die Kennung des ersten Ergebnisses
  • ldap_first_reference — Liefert die erste Referenz
  • ldap_free_result — Gibt den Ergebnisspeicher frei
  • ldap_get_attributes — Liefert die Merkmale eines Eintrags aus einem Suchergebnis
  • ldap_get_dn — Liefert den DN eines Eintrags aus einem Suchergebnis
  • ldap_get_entries — Liefert alle Einträge aus einem Ergebnis
  • ldap_get_option — Liefert den aktuellen Wert einer gegebenen Option
  • ldap_get_values_len — Liefert alle binären Werte eines Eintrags aus einem Ergebnis
  • ldap_get_values — Liefert alle Werte eines Eintrags aus einem Ergebnis
  • ldap_list — Suche in einer Ebene
  • ldap_mod_add_ext — Add attribute values to current attributes
  • ldap_mod_add — Fügt Merkmalswerte zum aktuellen Eintrag hinzu
  • ldap_mod_del_ext — Delete attribute values from current attributes
  • ldap_mod_del — Löscht Merkmalswerte des aktuellen Eintrags
  • ldap_mod_replace_ext — Replace attribute values with new ones
  • ldap_mod_replace — Ersetzt Merkmalswerte durch neue Merkmalswerte
  • ldap_modify_batch — Batch and execute modifications on an LDAP entry
  • ldap_modify — Alias von ldap_mod_replace
  • ldap_next_attribute — Liefert das nächste Merkmal im Ergebnis
  • ldap_next_entry — Liefert den nächsten Eintrag eines Ergebnisses
  • ldap_next_reference — Holt die nächste Referenz
  • ldap_parse_exop — Parse result object from an LDAP extended operation
  • ldap_parse_reference — Extrahiert Informationen aus einem Referenz-Eintrag
  • ldap_parse_result — Extrahiert Informationen aus einem Ergebnis
  • ldap_read — Liest einen Eintrag
  • ldap_rename_ext — Modify the name of an entry
  • ldap_rename — Ändert den Namen eines Eintrags
  • ldap_sasl_bind — Bind to LDAP directory using SASL
  • ldap_search — Sucht im LDAP-Baum
  • ldap_set_option — Setzt den Wert der gegebenen Option
  • ldap_set_rebind_proc — Setzt einen Callback um Rebinds bei der Verweisverfolgung durchzuführen
  • ldap_sort — Sortiert LDAP-Ergebniseinträge clientseitig
  • ldap_start_tls — Startet TLS
  • ldap_t61_to_8859 — Übersetzt t61-Zeichen in 8859-Zeichen
  • ldap_unbind — Löst die Bindung zu einem LDAP-Verzeichnis


Übersetzt 8859-Zeichen in t61-Zeichen

  • « LDAP Funktionen
  • ldap_add_ext »
  • PHP Manual
  • LDAP Funktionen
  • Übersetzt 8859-Zeichen in t61-Zeichen

ldap_8859_to_t61

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

ldap_8859_to_t61 — Übersetzt 8859-Zeichen in t61-Zeichen

Beschreibung

ldap_8859_to_t61 ( string $value ) : string|false

Übersetzt ISO-8859 Zeichen in t61-Zeichen.

Diese Funktion ist nützlich, wenn es erforderlich ist, mit einem alten LDAPv2-Server zu sprechen.

Parameter-Liste

value

Der zu übersetzende Text.

Rückgabewerte

Gibt die t61-Übersetzung von value zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ldap_t61_to_8859() - Übersetzt t61-Zeichen in 8859-Zeichen


Add entries to LDAP directory

  • « ldap_8859_to_t61
  • ldap_add »
  • PHP Manual
  • LDAP Funktionen
  • Add entries to LDAP directory

ldap_add_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_add_ext — Add entries to LDAP directory

Beschreibung

ldap_add_ext ( resource $ldap , string $dn , array $entry , array|null $controls = null ) : resource|false

Does the same thing as ldap_add() but returns the LDAP result resource to be parsed with ldap_parse_result().

Parameter-Liste

See ldap_add()

Rückgabewerte

Returns an LDAP result identifier or false on error.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • ldap_add() - Fügt einem LDAP-Verzeichnis Einträge hinzu
  • ldap_parse_result() - Extrahiert Informationen aus einem Ergebnis


Fügt einem LDAP-Verzeichnis Einträge hinzu

  • « ldap_add_ext
  • ldap_bind_ext »
  • PHP Manual
  • LDAP Funktionen
  • Fügt einem LDAP-Verzeichnis Einträge hinzu

ldap_add

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_add — Fügt einem LDAP-Verzeichnis Einträge hinzu

Beschreibung

ldap_add ( resource $ldap , string $dn , array $entry , array|null $controls = null ) : bool

Fügt Einträge in ein LDAP-Verzeichnis ein.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, die von ldap_connect() zurückgegeben wurde.

dn

Der Distinguished Name eines LDAP-Datenobjekts.

entry

Ein Array, das die Informationen des Eintrags bestimmt. Die Werte in den Einträgen werden durch individuelle Merkmale indiziert. Im Fall von mehreren Werten für ein Merkmal werden diese durch die Verwendung von Zahlen indiziert, die bei 0 beginnen.

<?php
$entry["merkmal1"] = "wert";
$entry["merkmal2"][0] = "wert1";
$entry["merkmal2"][1] = "wert2";
?>

controls

Ein Array von LDAP-Steuerbefehlen, die mit der Anfrage versendet werden sollen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Die Unterstützung für controls wurde hinzugefügt.

Beispiele

Beispiel #1 Komplettes Beispiel mit authentifizierter Verbindung

<?php
$ds = ldap_connect("localhost");  // Annahme: der LDAP-Server befindet
                                  // sich auf diesem Host

if ($ds) {
    // Verbindung mit passendem DN für aktualisierenden Zugriff
    $r = ldap_bind($ds,"cn=root, o=Meine Firma, c=DE", "geheim");

    // Daten vorbereiten
    $info["cn"] = "Hans Mustermann";
    $info["sn"] = "Mustermann";
    $info["objectclass"] = "person";

    // Hinzufügen der Daten zum Verzeichnis
    $r = ldap_add($ds, "cn=Hans Mustermann, o=Meine Firma, c=DE", $info);

    ldap_close($ds);
} else {
    echo "Verbindung zum LDAP-Server nicht möglich!";
}
?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • ldap_add_ext() - Add entries to LDAP directory
  • ldap_delete() - Löscht einen Eintrag aus einem Verzeichnis


Bind to LDAP directory

  • « ldap_add
  • ldap_bind »
  • PHP Manual
  • LDAP Funktionen
  • Bind to LDAP directory

ldap_bind_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_bind_ext — Bind to LDAP directory

Beschreibung

ldap_bind_ext ( resource $ldap , string|null $dn = null , string|null $password = null , array|null $controls = null ) : resource|false

Does the same thing as ldap_bind() but returns the LDAP result resource to be parsed with ldap_parse_result().

Parameter-Liste

See ldap_bind()

Rückgabewerte

Returns an LDAP result identifier or false on error.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].

Siehe auch

  • ldap_bind() - Anmeldung an einem LDAP-Verzeichnis (LDAP Bind)
  • ldap_parse_result() - Extrahiert Informationen aus einem Ergebnis


Anmeldung an einem LDAP-Verzeichnis (LDAP Bind)

  • « ldap_bind_ext
  • ldap_close »
  • PHP Manual
  • LDAP Funktionen
  • Anmeldung an einem LDAP-Verzeichnis (LDAP Bind)

ldap_bind

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_bind — Anmeldung an einem LDAP-Verzeichnis (LDAP Bind)

Beschreibung

ldap_bind ( resource $ldap , string|null $dn = null , string|null $password = null ) : bool

Anmeldung an einem LDAP-Verzeichnis (LDAP Bind) mit angegebenem RDN und Kennwort.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, die durch ldap_connect() zurückgegeben wurde.

dn

password

Wenn password nicht angegeben wurde oder leer ist, wird ein anonymes Bind versucht. Der Parameter dn kann ebenfalls ausgelassen werden, um ein anonymes Bind durchzuführen. Dies ist in https://tools.ietf.org/html/rfc2251#section-4.2.2 spezifiziert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Authentifizierung mit LDAP

<?php

// LDAP-Elemente zur Authentifizierung
$ldaprdn  = 'uname';     // LDAP-RDN oder -DN
$ldappass = 'password';  // entsprechendes Passwort

// Verbinden mit dem LDAP-Server
$ldapconn = ldap_connect("ldap://ldap.example.com")
    or die("Keine Verbindung zum LDAP-Server möglich.");

if ($ldapconn) {

    // Anmelden am LDAP-Server (ans LDAP-Verzeichnis binden)
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // Überprüfung der Authentifizierung
    if ($ldapbind) {
        echo "LDAP Bind erfolgreich...";
    } else {
        echo "LDAP Bind fehlgeschlagen...";
    }

}

?>

Beispiel #2 Anonymes LDAP Bind

<?php

// Verwenden von anonymem LDAP Bind

// Verbinden mit dem LDAP-Server
$ldapconn = ldap_connect("ldap://ldap.example.com")
    or die("Keine Verbindung zum LDAP-Server möglich.");

if ($ldapconn) {

    // Anonyme Anmeldung
    $ldapbind = ldap_bind($ldapconn);

    if ($ldapbind) {
        echo "anonymes LDAP Bind erfolgreich...";
    } else {
        echo "anonymes LDAP Bind fehlgeschlagen...";
    }

}

?>

Siehe auch

  • ldap_bind_ext() - Bind to LDAP directory
  • ldap_unbind() - Löst die Bindung zu einem LDAP-Verzeichnis


Alias von ldap_unbind

  • « ldap_bind
  • ldap_compare »
  • PHP Manual
  • LDAP Funktionen
  • Alias von ldap_unbind

ldap_close

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_close — Alias von ldap_unbind()

Beschreibung

Diese Funktion ist ein Alias für: ldap_unbind().


Vergleicht den Wert eines Merkmals mit dem eines Eintrags

  • « ldap_close
  • ldap_connect »
  • PHP Manual
  • LDAP Funktionen
  • Vergleicht den Wert eines Merkmals mit dem eines Eintrags

ldap_compare

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

ldap_compare — Vergleicht den Wert eines Merkmals mit dem eines Eintrags

Beschreibung

ldap_compare ( resource $ldap , string $dn , string $attribute , string $value , array|null $controls = null ) : bool|int

Vergleicht den Wert (value des Merkmals attribute mit dem Wert desselben Merkmals in einem LDAP-Verzeichniseintrag.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

dn

Der Distinguished Name eines LDAP-Datenobjekts.

attribute

Der Name des Merkmals.

value

Der zu vergleichende Wert.

controls

Ein Array von LDAP-Steuerbefehlen, die mit der Anfrage versendet werden sollen.

Rückgabewerte

Gibt true zurück, wenn value übereinstimmt, falls nicht, wird false zurückgegeben. Im Fehlerfall wird -1 zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Die Unterstützung für controls wurde hinzugefügt.

Beispiele

Das folgende Beispiel zeigt, wie überprüft wird, ob ein gegebenes Kennwort mit dem Kennwort übereinstimmt, das in dem durch DN bestimmten Eintrag gespeichert ist.

Beispiel #1 Komplettes Beispiel einer Kennwort-Überprüfung

<?php

$ds=ldap_connect("localhost");  // Annahme: der LDAP-Server befindet
                                // sich auf diesem Host

if ($ds) {

    // Anmelden
    if(ldap_bind($ds)) {

        // Daten vobereiten
        $dn = "cn=Matti Meikku, ou=Meine Einheit, o=Meine Firma, c=FI";
        $value = "Geheimes Kennwort";
        $attr = "kennwort";

        // Werte vergleichen
        $r=ldap_compare($ds, $dn, $attr, $value);

        if ($r === -1) {
            echo "Fehler: ".ldap_error($ds);
        } elseif ($r === TRUE) {
            echo "Kennwort korrekt.";
        } elseif ($r === FALSE) {
            echo "Falsch geraten! Kennwort nicht korrekt.";
        }

    } else {
        echo "Keine Bindung zum LDAP-Server möglich.";
    }

    ldap_close($ds);

} else {
    echo "Keine Verbindung zum LDAP-Server möglich.";
}
?>

Anmerkungen

Warnung

ldap_compare() kann NICHT für Vergleiche von BINÄREN Werten verwendet werden!


Verbindet mit einem LDAP-Server

  • « ldap_compare
  • ldap_control_paged_result_response »
  • PHP Manual
  • LDAP Funktionen
  • Verbindet mit einem LDAP-Server

ldap_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_connect — Verbindet mit einem LDAP-Server

Beschreibung

ldap_connect ( string|null $uri = null ) : resource|false
Warnung

Die folgende Signatur wird aus Gründen der Abwärtskompatibilität (von der Verwendung benannter Parameter abgesehen) weiterhin unterstützt, wird aber als veraltet betrachtet und sollte nicht mehr verwendet werden!

ldap_connect ( string $host = null , int $port = 389 ) : resource|false

Erzeugt eine LDAP-Verbindungskennung und prüft, ob der angegebene uri plausibel ist.

Hinweis: Es ist zu beachten, dass diese Funktion keine Verbindung öffnet. Sie prüft, ob die übergebenen Parameter plausibel sind, und kann verwendet werden, um eine Verbindung zu öffnen, sobald eine benötigt wird.

Parameter-Liste

uri

Ein vollständiger LDAP-URI der Form ldap://hostname:port oder ldaps://hostname:port für SSL-Verschlüsselung.

Es können auch mehrere LDAP-URIs, getrennt durch ein Leerzeichen, als eine Zeichenkette angegeben werden.

Es muss beachtet werden, dass hostname:port kein unterstützter LDAP-URI ist, da das Schema fehlt.

host

Der Hostname, zu dem eine Verbindung aufgebaut werden soll.

port

Der Port, zu dem eine Verbindung aufgebaut werden soll.

Rückgabewerte

Gibt eine postive LDAP-Verbindungskennung zurück, wenn der angegebene LDAP-URI plausibel scheint. Es handelt sich um eine Syntaxprüfung der übergebenen Parameter, aber Server werden nicht kontaktiert! Schlägt die Syntaxprüfung fehl, wird false zurückgegeben. Andernfalls gibt ldap_connect() immer eine gültige Ressource mit positiver Verbindungskennung zurück. Die Verbindung zum LDAP-Server wird noch nicht hergestellt, sie wird lediglich initialisiert. Der Verbindungsaufbau erfolgt bei der nächsten Nutzung einer ldap_*-Funktion; normalerweise ist dies ldap_bind().

Wird kein Argumente angegeben, wird die Verbindungskennung einer bereits geöffneten Verbindung zurückgegeben.

Beispiele

Beispiel #1 Verbindung zu einem LDAP-Server

<?php

// LDAP-Variablen
$ldapuri = "ldap://ldap.example.com:389";  // Ihr LDAP-URI

// Verbindung zu LDAP
$ldapconn = ldap_connect($ldapuri)
          or die( "Der LDAP-URI konnte nicht geparst werden" );

?>

Beispiel #2 Sichere Verbindung zu einem LDAP-Server

<?php

// Stellen Sie sicher, dass Sie den korrekten Host angeben,
// für den das Zertifikat ausgestellt wurde
$ldaphost = "ldaps://ldap.example.com/";

// Verbindung zu LDAP
$ldapconn = ldap_connect($ldaphost)
          or die( "Der LDAP-URI konnte nicht geparst werden" );

?>

Siehe auch

  • ldap_bind() - Anmeldung an einem LDAP-Verzeichnis (LDAP Bind)


Retrieve the LDAP pagination cookie

  • « ldap_connect
  • ldap_control_paged_result »
  • PHP Manual
  • LDAP Funktionen
  • Retrieve the LDAP pagination cookie

ldap_control_paged_result_response

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_result_response — Retrieve the LDAP pagination cookie

Warnung

This function has been DEPRECATED as of PHP 7.4.0, and REMOVED as of PHP 8.0.0. Instead the controls parameter of ldap_search() should be used. See also LDAP Controls for details.

Beschreibung

ldap_control_paged_result_response ( resource $link , resource $result , string &$cookie = ? , int &$estimated = ? ) : bool

Retrieve the pagination information send by the server.

Parameter-Liste

link

An LDAP link identifier, returned by ldap_connect().

result

cookie

An opaque structure sent by the server.

estimated

The estimated number of entries to retrieve.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.4.0 | This function has been deprecated.

Siehe auch

  • ldap_control_paged_result() - Send LDAP pagination control
  • » RFC2696 : LDAP Control Extension for Simple Paged Results Manipulation


Send LDAP pagination control

  • « ldap_control_paged_result_response
  • ldap_count_entries »
  • PHP Manual
  • LDAP Funktionen
  • Send LDAP pagination control

ldap_control_paged_result

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_result — Send LDAP pagination control

Warnung

This function has been DEPRECATED as of PHP 7.4.0, and REMOVED as of PHP 8.0.0. Instead the controls parameter of ldap_search() should be used. See also LDAP Controls for details.

Beschreibung

ldap_control_paged_result ( resource $link , int $pagesize , bool $iscritical = false , string $cookie = "" ) : bool

Enable LDAP pagination by sending the pagination control (page size, cookie...).

Parameter-Liste

link

An LDAP link identifier, returned by ldap_connect().

pagesize

The number of entries by page.

iscritical

Indicates whether the pagination is critical or not. If true and if the server doesn't support pagination, the search will return no result.

cookie

An opaque structure sent by the server (ldap_control_paged_result_response()).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.4.0 | This function has been deprecated.

Beispiele

The example below show the retrieval of the first page of a search paginated with one entry by page.

Beispiel #1 LDAP pagination

<?php
     // $ds is a valid link identifier (see ldap_connect)
     ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

     $dn        = 'ou=example,dc=org';
     $filter    = '(|(sn=Doe*)(givenname=John*))';
     $justthese = array('ou', 'sn', 'givenname', 'mail');

     // enable pagination with a page size of 1.
     ldap_control_paged_result($ds, 1);

     $sr = ldap_search($ds, $dn, $filter, $justthese);

     $info = ldap_get_entries($ds, $sr);

     echo $info['count'] . ' entries returned' . PHP_EOL;

The example below show the retrieval of all the result paginated with 100 entries by page.

Beispiel #2 LDAP pagination

<?php
     // $ds is a valid link identifier (see ldap_connect)
     ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

     $dn        = 'ou=example,dc=org';
     $filter    = '(|(sn=Doe*)(givenname=John*))';
     $justthese = array('ou', 'sn', 'givenname', 'mail');

     // enable pagination with a page size of 100.
     $pageSize = 100;

     $cookie = '';
     do {
         ldap_control_paged_result($ds, $pageSize, true, $cookie);

         $result  = ldap_search($ds, $dn, $filter, $justthese);
         $entries = ldap_get_entries($ds, $result);

         foreach ($entries as $e) {
             echo $e['dn'] . PHP_EOL;
         }

         ldap_control_paged_result_response($ds, $result, $cookie);

     } while($cookie !== null && $cookie != '');

Anmerkungen

Hinweis:

Pagination control is a LDAPv3 protocol feature.

Siehe auch

  • ldap_control_paged_result_response() - Retrieve the LDAP pagination cookie
  • » RFC2696 : LDAP Control Extension for Simple Paged Results Manipulation


Liefert bei einer Suche die Anzahl der Einträge

  • « ldap_control_paged_result
  • ldap_delete_ext »
  • PHP Manual
  • LDAP Funktionen
  • Liefert bei einer Suche die Anzahl der Einträge

ldap_count_entries

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_count_entries — Liefert bei einer Suche die Anzahl der Einträge

Beschreibung

ldap_count_entries ( resource $ldap , resource $result ) : int

Gibt die Anzahl der Einträge zurück, die im Ergebnis der vorherigen Suchoperation gespeichert sind.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

result

Das interne LDAP-Ergebnis.

Rückgabewerte

Gibt die Anzahl der Einträge im Ergebnis zurück oder false im Fehlerfall.

Beispiele

Beispiel #1 ldap_count_entries()-Beispiel

Abrufen der Anzahl der Einträge im Ergebnis.

// $ds ist eine gültige Verbindungskennung (siehe ldap_connect)

$dn        = 'ou=example,dc=org';
$filter    = '(|(sn=Doe*)(givenname=John*))';
$justthese = array('ou', 'sn', 'givenname', 'mail');

$sr = ldap_search($ds, $dn, $filter, $justthese);

var_dump(ldap_count_entries($ds, $sr));

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(1)


Delete an entry from a directory

  • « ldap_count_entries
  • ldap_delete »
  • PHP Manual
  • LDAP Funktionen
  • Delete an entry from a directory

ldap_delete_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_delete_ext — Delete an entry from a directory

Beschreibung

ldap_delete_ext ( resource $ldap , string $dn , array|null $controls = null ) : resource|false

Does the same thing as ldap_delete() but returns the LDAP result resource to be parsed with ldap_parse_result().

Parameter-Liste

See ldap_delete()

Rückgabewerte

Returns an LDAP result identifier or false on error.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].

Siehe auch

  • ldap_delete() - Löscht einen Eintrag aus einem Verzeichnis
  • ldap_parse_result() - Extrahiert Informationen aus einem Ergebnis


Löscht einen Eintrag aus einem Verzeichnis

  • « ldap_delete_ext
  • ldap_dn2ufn »
  • PHP Manual
  • LDAP Funktionen
  • Löscht einen Eintrag aus einem Verzeichnis

ldap_delete

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_delete — Löscht einen Eintrag aus einem Verzeichnis

Beschreibung

ldap_delete ( resource $ldap , string $dn , array|null $controls = null ) : bool

Löscht einen bestimmten Eintrag aus einem LDAP-Verzeichnis.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

dn

Der Distinguished Name eines LDAP-Datenobjekts.

controls

Ein Array von LDAP-Steuerbefehlen, die mit der Anfrage versendet werden sollen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Die Unterstützung für controls wurde hinzugefügt.

Siehe auch

  • ldap_delete_ext() - Delete an entry from a directory
  • ldap_add() - Fügt einem LDAP-Verzeichnis Einträge hinzu


Konvertiert einen DN in ein benutzerfreundliches Namensformat

  • « ldap_delete
  • ldap_err2str »
  • PHP Manual
  • LDAP Funktionen
  • Konvertiert einen DN in ein benutzerfreundliches Namensformat

ldap_dn2ufn

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_dn2ufn — Konvertiert einen DN in ein benutzerfreundliches Namensformat

Beschreibung

ldap_dn2ufn ( string $dn ) : string|false

Wandelt den angegebenen dn in ein benutzerfreundlicheres Format, in dem die Typnamen entfernt wurden.

Parameter-Liste

dn

Der Distinguished Name eines LDAP-Datenobjekts.

Rückgabewerte

Gibt den benutzerfreundlichen Namen zurück. Im Fehlerfall wird false zurückgegeben.


Konvertiert eine LDAP-Fehlernummer in einen Fehlertext

  • « ldap_dn2ufn
  • ldap_errno »
  • PHP Manual
  • LDAP Funktionen
  • Konvertiert eine LDAP-Fehlernummer in einen Fehlertext

ldap_err2str

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_err2str — Konvertiert eine LDAP-Fehlernummer in einen Fehlertext

Beschreibung

ldap_err2str ( int $errno ) : string

Gibt den Fehlertext zurück, der die Fehlernummer errno erklärt. Während LDAP-Fehlernummern standardisiert sind, liefern unterschiedliche Bibliotheken unterschiedliche oder sogar lokalisierte Fehlermeldungen. Deshalb sollte nie auf eine spezielle Fehlermeldung geprüft, sondern immer eine Fehlernummer verwendet werden.

Parameter-Liste

errno

Die Fehlernummer.

Rückgabewerte

Gibt die Fehlermeldung als Zeichenkette zurück.

Beispiele

Beispiel #1 Aufzählung aller LDAP-Fehlermeldungen

<?php
  for($i=0; $i<100; $i++) {
    printf("Fehler $i: %s<br />\n", ldap_err2str($i));
  }
?>

Siehe auch

  • ldap_errno() - Liefert die LDAP-Fehlernummer des letzten LDAP-Kommandos
  • ldap_error() - Liefert die LDAP-Fehlermeldung des letzten LDAP-Kommandos


Liefert die LDAP-Fehlernummer des letzten LDAP-Kommandos

  • « ldap_err2str
  • ldap_error »
  • PHP Manual
  • LDAP Funktionen
  • Liefert die LDAP-Fehlernummer des letzten LDAP-Kommandos

ldap_errno

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_errno — Liefert die LDAP-Fehlernummer des letzten LDAP-Kommandos

Beschreibung

ldap_errno ( resource $ldap ) : int

Gibt die standardisierte Fehlernummer des zuletzt ausgeführten LDAP-Kommandos zurück. Diese Nummer kann mit der Funktion ldap_err2str() in einen Fehlertext konvertiert werden.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

Rückgabewerte

Gibt die LDAP-Fehlernummer des letzten LDAP-Kommandos für diese Verbindung zurück.

Beispiele

Solange Sie die Stufe der Fehlerwarnungen in Ihrer php.ini nicht herabsetzen oder vor Ihre LDAP-Komanndos ein @ (at) setzen, um die Ausgabe von Fehlermeldungen zu unterdrücken, werden die aufgetretenen Fehler auch in Ihrer HTML-Ausgabe zu sehen sein.

Beispiel #1 Erzeugen und Abfangen eines Fehlers

<?php
// Dieses Beispiel enhält einen Fehler, der abgefangen wird.
$ld = ldap_connect("localhost");
$bind = ldap_bind($ld);
// Syntax Fehler im Filterausdruck (errno 87),
// müsste "objectclass=*" heißen, um zu funktionieren.
$res = @ldap_search($ld, "o=Meine Firma, c=DE", "objectclass");
if (!$res) {
    echo "LDAP-Fehlernummer: " . ldap_errno($ld) . "<br />\n";
    echo "LDAP-Fehler: " . ldap_error($ld) . "<br />\n";
    die("Argh!<br />\n");
}
$info = ldap_get_entries($ld, $res);
echo $info["count"] . " passende Einträge.<br />\n";
?>

Siehe auch

  • ldap_err2str() - Konvertiert eine LDAP-Fehlernummer in einen Fehlertext
  • ldap_error() - Liefert die LDAP-Fehlermeldung des letzten LDAP-Kommandos


Liefert die LDAP-Fehlermeldung des letzten LDAP-Kommandos

  • « ldap_errno
  • ldap_escape »
  • PHP Manual
  • LDAP Funktionen
  • Liefert die LDAP-Fehlermeldung des letzten LDAP-Kommandos

ldap_error

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_error — Liefert die LDAP-Fehlermeldung des letzten LDAP-Kommandos

Beschreibung

ldap_error ( resource $ldap ) : string

Gibt den erklärenden Fehlertext für den Fehler zurück, der vom zuletzt ausgeführten LDAP-Kommando mit der angegebenen Verbindungskennung ldap erzeugt wurde. Während LDAP-Fehlernummern standardisiert sind, liefern unterschiedliche Bibliotheken unterschiedliche oder sogar lokalisierte Fehlermeldungen. Deshalb sollte nie auf eine spezielle Fehlermeldung geprüft, sondern immer eine Fehlernummer verwendet werden.

Solange Sie die Stufe der Fehlerwarnungen in Ihrer php.ini nicht herabsetzen oder vor Ihre LDAP-Kommandos ein @ (at) setzen, um die Ausgabe von Fehlermeldungen zu unterdrücken, werden die aufgetretenen Fehler auch in Ihrer HTML-Ausgabe zu sehen sein.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

Rückgabewerte

Gibt die Fehlermeldung als Zeichenkette zurück.

Siehe auch

  • ldap_err2str() - Konvertiert eine LDAP-Fehlernummer in einen Fehlertext
  • ldap_errno() - Liefert die LDAP-Fehlernummer des letzten LDAP-Kommandos


Escape a string for use in an LDAP filter or DN

  • « ldap_error
  • ldap_exop_passwd »
  • PHP Manual
  • LDAP Funktionen
  • Escape a string for use in an LDAP filter or DN

ldap_escape

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

ldap_escape — Escape a string for use in an LDAP filter or DN

Beschreibung

ldap_escape ( string $value , string $ignore = "" , int $flags = 0 ) : string

Escapes value for use in the context implied by flags.

Parameter-Liste

value

The value to escape.

ignore

Characters to ignore when escaping.

flags

The context the escaped string will be used in: LDAP_ESCAPE_FILTER for filters to be used with ldap_search(), or LDAP_ESCAPE_DN for DNs. If neither flag is passed, all chars are escaped.

Rückgabewerte

Returns the escaped string.

Beispiele

When building an LDAP filter, you should use ldap_escape with LDAP_ESCAPE_FILTER flag.

Beispiel #1 Searching for an email address

<?php
// $ds is a valid link identifier for a directory server

// $mail is an email address provided by the user in a form

$base   = "o=My Company, c=US";
$filter = "(mail=".ldap_escape($mail, "", LDAP_ESCAPE_FILTER).")";

$sr = ldap_search($ds, $base, $filter, array("sn", "givenname", "mail"));

$info = ldap_get_entries($ds, $sr);

echo $info["count"]." entries returned\n";
?>


PASSWD extended operation helper

  • « ldap_escape
  • ldap_exop_refresh »
  • PHP Manual
  • LDAP Funktionen
  • PASSWD extended operation helper

ldap_exop_passwd

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop_passwd — PASSWD extended operation helper

Beschreibung

ldap_exop_passwd ( resource $ldap , string $user = "" , string $old_password = "" , string $new_password = "" , array &$controls = null ) : string|bool

Performs a PASSWD extended operation.

Parameter-Liste

ldap

An LDAP link identifier, returned by ldap_connect().

user

dn of the user to change the password of.

old_password

The old password of this user. May be ommited depending of server configuration.

new_password

The new password for this user. May be omitted or empty to have a generated password.

controls

If provided, a password policy request control is send with the request and this is filled with an array of LDAP Controls returned with the request.

Rückgabewerte

Returns the generated password if new_password is empty or omitted. Otherwise returns true on success and false on failure.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Support for controls added

Beispiele

Beispiel #1 PASSWD extended operation

<?php
$ds = ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {
    // bind with appropriate dn to give update access
    $bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
    if (!$bind) {
      echo "Unable to bind to LDAP server";
      exit;
    }

    // use PASSWD EXOP to change the user password for a generated one
    $genpw = ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", "secret");
    if ($genpw) {
      // use the generated password to bind
      $bind = ldap_bind($ds, "cn=root, o=My Company, c=US", $genpw);
    }

    // set the password back to "secret"
    ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", $genpw, "secret");

    ldap_close($ds);
} else {
    echo "Unable to connect to LDAP server";
}
?>

Siehe auch

  • ldap_exop() - Performs an extended operation
  • ldap_parse_exop() - Parse result object from an LDAP extended operation


Refresh extended operation helper

  • « ldap_exop_passwd
  • ldap_exop_whoami »
  • PHP Manual
  • LDAP Funktionen
  • Refresh extended operation helper

ldap_exop_refresh

(PHP 7 >= 7.3.0, PHP 8)

ldap_exop_refresh — Refresh extended operation helper

Beschreibung

ldap_exop_refresh ( resource $ldap , string $dn , int $ttl ) : int|false

Performs a Refresh extended operation and returns the data.

Parameter-Liste

ldap

An LDAP link identifier, returned by ldap_connect().

dn

dn of the entry to refresh.

ttl

Time in seconds (between 1 and 31557600) that the client requests that the entry exists in the directory before being automatically removed.

Rückgabewerte

From RFC: The responseTtl field is the time in seconds which the server chooses to have as the time-to-live field for that entry. It must not be any smaller than that which the client requested, and it may be larger. However, to allow servers to maintain a relatively accurate directory, and to prevent clients from abusing the dynamic extensions, servers are permitted to shorten a client-requested time-to-live value, down to a minimum of 86400 seconds (one day). false will be returned on error.

Siehe auch

  • ldap_exop() - Performs an extended operation


WHOAMI extended operation helper

  • « ldap_exop_refresh
  • ldap_exop »
  • PHP Manual
  • LDAP Funktionen
  • WHOAMI extended operation helper

ldap_exop_whoami

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop_whoami — WHOAMI extended operation helper

Beschreibung

ldap_exop_whoami ( resource $ldap ) : string|false

Performs a WHOAMI extended operation and returns the data.

Parameter-Liste

ldap

An LDAP link identifier, returned by ldap_connect().

Rückgabewerte

The data returned by the server, or false on error.

Siehe auch

  • ldap_exop() - Performs an extended operation


Performs an extended operation

  • « ldap_exop_whoami
  • ldap_explode_dn »
  • PHP Manual
  • LDAP Funktionen
  • Performs an extended operation

ldap_exop

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop — Performs an extended operation

Beschreibung

ldap_exop ( resource $link , string $reqoid , string $reqdata = null , array $serverctrls = null , string &$retdata = ? , string &$retoid = ? ) : mixed

Performs an extended operation on the specified link with reqoid the OID of the operation and reqdata the data.

Parameter-Liste

link

An LDAP link identifier, returned by ldap_connect().

reqoid

The extended operation request OID. You may use one of LDAP_EXOP_START_TLS, LDAP_EXOP_MODIFY_PASSWD, LDAP_EXOP_REFRESH, LDAP_EXOP_WHO_AM_I, LDAP_EXOP_TURN, or a string with the OID of the operation you want to send.

reqdata

The extended operation request data. May be NULL for some operations like LDAP_EXOP_WHO_AM_I, may also need to be BER encoded.

serverctrls

Array of LDAP Controls to send with the request.

retdata

Will be filled with the extended operation response data if provided. If not provided you may use ldap_parse_exop on the result object later to get this data.

retoid

Will be filled with the response OID if provided, usually equal to the request OID.

Rückgabewerte

When used with retdata, returns true on success or false on error. When used without retdata, returns a result identifier or false on error.

Changelog

Version | Beschreibung
7.3 | Support for serverctrls added

Beispiele

Beispiel #1 Whoami extended operation

<?php
$ds = ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {
    // bind with appropriate dn to give update access
    $bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
    if (!$bind) {
      echo "Unable to bind to LDAP server";
      exit;
    }

    // Call WHOAMI EXOP
    $r = ldap_exop($ds, LDAP_EXOP_WHO_AM_I);

    // Parse the result object
    ldap_parse_exop($ds, $r, $retdata);
    // Output: string(31) "dn:cn=root, o=My Company, c=US"
    var_dump($retdata);

    // Same thing using $retdata parameter
    $success = ldap_exop($ds, LDAP_EXOP_WHO_AM_I, NULL, NULL, $retdata, $retoid);
    if ($success) {
      var_dump($retdata);
    }

    ldap_close($ds);
} else {
    echo "Unable to connect to LDAP server";
}
?>

Siehe auch

  • ldap_parse_result() - Extrahiert Informationen aus einem Ergebnis
  • ldap_parse_exop() - Parse result object from an LDAP extended operation
  • ldap_exop_whoami() - WHOAMI extended operation helper
  • ldap_exop_refresh() - Refresh extended operation helper
  • ldap_exop_passwd() - PASSWD extended operation helper


Trennt einen DN in seine Bestandteile

  • « ldap_exop
  • ldap_first_attribute »
  • PHP Manual
  • LDAP Funktionen
  • Trennt einen DN in seine Bestandteile

ldap_explode_dn

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_explode_dn — Trennt einen DN in seine Bestandteile

Beschreibung

ldap_explode_dn ( string $dn , int $with_attrib ) : array|false

Teilt einen von ldap_get_dn() gelieferten DN auf und zerlegt ihn in seine Bestandteile. Jeder Teil wird als Relative Distinguished Name, RDN, bezeichnet.

Parameter-Liste

dn

Der Distinguished Name eines LDAP-Datenobjekts.

with_attrib

Wird verwendet, um zu bestimmen, ob die RDNs nur mit Werten oder zusätzlich mit ihren Merkmalen angefragt werden. Um RDNs mit Merkmalen (d.h. im Format Merkmal=Wert) zu erhalten, ist with_attrib auf 0 zu setzen, um nur Werte zu erhalten, auf 1.

Rückgabewerte

Gibt ein Array aller DN-Bestandteile zurück, Im Fehlerfall wird false zurückgegeben. Das erste Element im Array hat einen count-Schlüssel, und stellt die Anzahl der zurückgegebenen Werte dar; die folgenden Elemente sind numerisch indexierte DN-Bestandteile.


Liefert das erste Merkmal

  • « ldap_explode_dn
  • ldap_first_entry »
  • PHP Manual
  • LDAP Funktionen
  • Liefert das erste Merkmal

ldap_first_attribute

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_first_attribute — Liefert das erste Merkmal

Beschreibung

ldap_first_attribute ( resource $ldap , resource $entry ) : string|false

Liefert das erste Merkmal im angegebenen Eintrag. Verbleibende Merkmale werden durch wiederholte Aufrufe von ldap_next_attribute() abgerufen.

Analog zum Lesen von Einträgen werden Merkmale ebenfalls eines nach dem anderen aus einem bestimmten Eintrag gelesen.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

entry

ber_identifier

Der Parameter ber_identifier ist die Kennung eines internen Speicherplatzzeigers. Die Übergabe erfolgt per Referenz. Die gleiche ber_identifier wird an die Funktion ldap_next_attribute() weitergegeben, die diesen Zeiger dann verändert.

Hinweis:

Dieser Parameter wird nicht mehr verwendet, da dies nun automatisch von PHP abgewickelt wird. Aus Gründen der Abwärtskompatibilität erzeugt PHP keinen Fehler, wenn dieser Parameter übergeben wird.

Rückgabewerte

Gibt im Erfolgsfall das erste Merkmal im Eintrag zurück und false im Fehlerfall.

Siehe auch

  • ldap_next_attribute() - Liefert das nächste Merkmal im Ergebnis
  • ldap_get_attributes() - Liefert die Merkmale eines Eintrags aus einem Suchergebnis


Liefert die Kennung des ersten Ergebnisses

  • « ldap_first_attribute
  • ldap_first_reference »
  • PHP Manual
  • LDAP Funktionen
  • Liefert die Kennung des ersten Ergebnisses

ldap_first_entry

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_first_entry — Liefert die Kennung des ersten Ergebnisses

Beschreibung

ldap_first_entry ( resource $ldap , resource $result ) : resource|false

Gibt die Eintragskennung des ersten Eintrags im Ergbnis zurück. Diese Eintragskennung wird dann an die ldap_next_entry() Funktion übergeben, um die folgenden Einträge des Ergebnisses zu erhalten.

Einträge eines LDAP-Ergebnisses werden unter Verwendung der Funktionen ldap_first_entry() und ldap_next_entry() sequentiell gelesen.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

result

Rückgabewerte

Gibt im Erfolgsfall die Ergebnis-Eintragskennung des ersten Eintrags zurück und false im Fehlerfall.

Siehe auch

  • ldap_get_entries() - Liefert alle Einträge aus einem Ergebnis


Liefert die erste Referenz

  • « ldap_first_entry
  • ldap_free_result »
  • PHP Manual
  • LDAP Funktionen
  • Liefert die erste Referenz

ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_first_reference — Liefert die erste Referenz

Beschreibung

ldap_first_reference ( resource $ldap , resource $result ) : resource|false
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Gibt den Ergebnisspeicher frei

  • « ldap_first_reference
  • ldap_get_attributes »
  • PHP Manual
  • LDAP Funktionen
  • Gibt den Ergebnisspeicher frei

ldap_free_result

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_free_result — Gibt den Ergebnisspeicher frei

Beschreibung

ldap_free_result ( resource $ldap ) : bool

Gibt den intern belegten Speicher, um das Ergebis zu speichern, frei. Der gesamte Ergebnisspeicher wird automatisch bei Beendigung des Skripts freigegeben.

Typischerweise wird nach Beendigung des Skripts der gesamte Ergebnisspeicher automatisch freigegeben. Falls das Skript sukzessive Suchoperationen durchführt, die große Ergebnismengen liefern, kann ldap_free_result() aufgerufen werden, um den Speicherverbrauch zur Laufzeit niedrig zu halten.

Parameter-Liste

ldap

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Liefert die Merkmale eines Eintrags aus einem Suchergebnis

  • « ldap_free_result
  • ldap_get_dn »
  • PHP Manual
  • LDAP Funktionen
  • Liefert die Merkmale eines Eintrags aus einem Suchergebnis

ldap_get_attributes

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_attributes — Liefert die Merkmale eines Eintrags aus einem Suchergebnis

Beschreibung

ldap_get_attributes ( resource $ldap , resource $entry ) : array

Liest Merkmale und Werte eines Eintrags im Suchergebnis.

Nachdem ein bestimmter Eintrag in dem Verzeichnis lokalisiert wurde, kann mit dieser Funktion herausgefunden werden, welche Informationen für diesen Eintrag verfügbar sind. Diese Funktion würde in einer Anwendung verwendet werden, die Verzeichniseinträge "durchstöbert" und/oder wo die Struktur der Verzeichniseinträge nicht bekannt ist. In vielen Anwendungen wird nach einem bestimmten Merkmal, wie z.B. einer E-Mail-Adresse oder einem Nachnamen gesucht, und welche anderen Daten verfügbar sind, interessiert nicht.

return_value["count"] = Anzahl der Merkmale des Eintrags
return_value[0] = das erste Merkmal
return_value[n] = das n-te Merkmal

return_value["merkmal"]["count"] = Anzahl der Werte des Merkmals
return_value["merkmal"][0] = der erste Wert des Merkmals
return_value["merkmal"][i] = der i+1-te Wert des Merkmals

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

entry

Rückgabewerte

Gibt im Erfolgfall die vollständige Eintragsinformation in einem mehrdimensionalen Array zurück und false im Fehlerfall.

Beispiele

Beispiel #1 Anzeigen der Liste der Merkmale für einen ausgewählten Verzeichnis-Eintrag

<?php
// $ds ist die Verbindungskennung für das Verzeichnis

// $sr ist ein gültiges Suchergebnis eines früheren Aufrufs
// einer der LDAP-Verzeichnis-Suchfunktionen

$entry = ldap_first_entry($ds, $sr);

$attrs = ldap_get_attributes($ds, $entry);

echo $attrs["count"] . " Merkmale für diesen Eintrag:<p>";

for ($i=0; $i<$attrs["count"]; $i++) {
    echo $attrs[$i] . "<br />";
}
?>

Siehe auch

  • ldap_first_attribute() - Liefert das erste Merkmal
  • ldap_next_attribute() - Liefert das nächste Merkmal im Ergebnis


Liefert den DN eines Eintrags aus einem Suchergebnis

  • « ldap_get_attributes
  • ldap_get_entries »
  • PHP Manual
  • LDAP Funktionen
  • Liefert den DN eines Eintrags aus einem Suchergebnis

ldap_get_dn

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_dn — Liefert den DN eines Eintrags aus einem Suchergebnis

Beschreibung

ldap_get_dn ( resource $ldap , resource $entry ) : string|false

Ermittelt den DN eines Eintrags aus einem Suchergebnis.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

entry

Rückgabewerte

Gibt den DN eines Ergebniseintrags zurück und false im Fehlerfall.


Liefert alle Einträge aus einem Ergebnis

  • « ldap_get_dn
  • ldap_get_option »
  • PHP Manual
  • LDAP Funktionen
  • Liefert alle Einträge aus einem Ergebnis

ldap_get_entries

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_entries — Liefert alle Einträge aus einem Ergebnis

Beschreibung

ldap_get_entries ( resource $ldap , resource $result ) : array|false

Liest mehrere Einträge aus dem angegebenen Ergebnis und dann die Merkmale und mehreren Werte.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

result

Rückgabewerte

Gibt im Erfolgsfall die gesamten Informationen aus einem Ergebnis in einem mehrdimensionalen Array zurück und false im Fehlerfall.

Die Struktur dieses Arrays sieht wie folgt aus. Der Merkmal-Index wird in Kleinbuchstaben umgewandelt (Verzeichnis-Server unterscheiden nicht zwischen Groß- und Kleinschreibung hinsichtlich der Merkmake, aber der Unterschied ist wichtig, wenn diese Merkmale als Array-Indizes verwendet werden).

return_value["count"] = Anzahl der Einträge im Ergebnis
return_value[0] : bezieht sich auf Einzelheiten des ersten Eintrags

return_value[i]["dn"] = DN des i-ten Eintrags im Ergebnis

return_value[i]["count"] = Anzahl der Merkmale im i-ten Eintrag
return_value[i][j]       = NAME des j-ten Merkmals des i-ten Eintrags im Ergebnis

return_value[i]["merkmal"]["count"] = Anzahl der Werte für das
                                      Merkmal im i-ten Eintrag
return_value[i]["merkmal"][j]       = der j-te Wert des Merkmals im i-ten
                                      Eintrag

Siehe auch

  • ldap_first_entry() - Liefert die Kennung des ersten Ergebnisses
  • ldap_next_entry() - Liefert den nächsten Eintrag eines Ergebnisses


Liefert den aktuellen Wert einer gegebenen Option

  • « ldap_get_entries
  • ldap_get_values_len »
  • PHP Manual
  • LDAP Funktionen
  • Liefert den aktuellen Wert einer gegebenen Option

ldap_get_option

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ldap_get_option — Liefert den aktuellen Wert einer gegebenen Option

Beschreibung

ldap_get_option ( resource $ldap , int $option , array|string|int &$value = null ) : bool

Setzt value auf den Wert der angegebenen Option.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennng, geliefert von ldap_connect().

option

Der Parameter option ist einer der folgenden:

Option | Type | seit
LDAP_OPT_DEREF | int
LDAP_OPT_SIZELIMIT | int
LDAP_OPT_TIMELIMIT | int
LDAP_OPT_NETWORK_TIMEOUT | int
LDAP_OPT_PROTOCOL_VERSION | int
LDAP_OPT_ERROR_NUMBER | int
LDAP_OPT_DIAGNOSTIC_MESSAGE | int
LDAP_OPT_REFERRALS | int
LDAP_OPT_RESTART | int
LDAP_OPT_HOST_NAME | string
LDAP_OPT_ERROR_STRING | string
LDAP_OPT_MATCHED_DN | string
LDAP_OPT_SERVER_CONTROLS | array
LDAP_OPT_CLIENT_CONTROLS | array
LDAP_OPT_X_KEEPALIVE_IDLE | int | 7.1
LDAP_OPT_X_KEEPALIVE_PROBES | int | 7.1
LDAP_OPT_X_KEEPALIVE_INTERVAL | int | 7.1
LDAP_OPT_X_TLS_CACERTDIR | string | 7.1
LDAP_OPT_X_TLS_CACERTFILE | string | 7.1
LDAP_OPT_X_TLS_CERTFILE | string | 7.1
LDAP_OPT_X_TLS_CIPHER_SUITE | string | 7.1
LDAP_OPT_X_TLS_CRLCHECK | int | 7.1
LDAP_OPT_X_TLS_CRL_NONE | int | 7.1
LDAP_OPT_X_TLS_CRL_PEER | int | 7.1
LDAP_OPT_X_TLS_CRL_ALL | int | 7.1
LDAP_OPT_X_TLS_CRLFILE | string | 7.1
LDAP_OPT_X_TLS_DHFILE | string | 7.1
LDAP_OPT_X_TLS_KEYFILE | string | 7.1
LDAP_OPT_X_TLS_PACKAGE | string | 7.1
LDAP_OPT_X_TLS_PROTOCOL_MIN | int | 7.1
LDAP_OPT_X_TLS_RANDOM_FILE | string | 7.1
LDAP_OPT_X_TLS_REQUIRE_CERT | int

value

Dies wird auf den Wert der Option gesetzt.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Prüfen der Protokollversion

<?php
// $ds ist eine gültige Verbindungskennung für einen Verzeichnis-Server

if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
    echo "Sie verwenden die Protokollversion $version\n";
} else {
    echo "Protokollversion konnte nicht bestimmt werden\n";
}
?>

Anmerkungen

Hinweis:

Diese Funktion steht nur zur Verfügung, wenn Sie OpenLDAP 2.x.x ODER Netscape Directory SDK x.x verwenden.

Siehe auch

  • ldap_set_option() - Setzt den Wert der gegebenen Option


Liefert alle binären Werte eines Eintrags aus einem Ergebnis

  • « ldap_get_option
  • ldap_get_values »
  • PHP Manual
  • LDAP Funktionen
  • Liefert alle binären Werte eines Eintrags aus einem Ergebnis

ldap_get_values_len

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_values_len — Liefert alle binären Werte eines Eintrags aus einem Ergebnis

Beschreibung

ldap_get_values_len ( resource $ldap , resource $entry , string $attribute ) : array|false

Liest alle Werte eines Merkmals im Ergebniseintrag.

Diese Funktion wird exakt gleich verwendet wie die Funktion ldap_get_values(), mit der Aussnahme, dass hier binäre Daten statt Textdaten behandelt werden.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

entry

attribute

Rückgabewerte

Gibt im Erfolgsfall ein Array mit den Werten des Merkmals zurück und false im Fehlerfall. Auf einzelne Werte kann über die numerischen Indizes des Arrays zugegriffen werden. Der erste Indexwert ist 0. Die Anzahl der zurückgegebenen Werte steht im Index "count" des zurückgegebenen Arrays zur Verfügung.

Siehe auch

  • ldap_get_values() - Liefert alle Werte eines Eintrags aus einem Ergebnis


Liefert alle Werte eines Eintrags aus einem Ergebnis

  • « ldap_get_values_len
  • ldap_list »
  • PHP Manual
  • LDAP Funktionen
  • Liefert alle Werte eines Eintrags aus einem Ergebnis

ldap_get_values

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_values — Liefert alle Werte eines Eintrags aus einem Ergebnis

Beschreibung

ldap_get_values ( resource $ldap , resource $entry , string $attribute ) : array|false

Liest alle Werte eines Merkmals im Ergebniseintrag.

Da diese Funktion eine Ergebniseintragskennung (entry) benötigt, muss ein Aufruf einer der LDAP-Suchfunktionen und einer der Funktionen, die einen einzelnen Eintrag liefern, vorausgehen.

Die Anwendung ist entweder hart kodiert, um bestimmte Merkmale (wie z.B. "Nachname" oder "E-Mail") zu suchen, oder die Funktion ldap_get_attributes() muss verwendet werden, um herauszufinden, welche Merkmale für einen gegebenen Eintrag vorhanden sind.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

entry

attribute

Rückgabewerte

Gibt im Erfolgsfall ein Array mit den Werten des Merkmals zurück und false im Fehlerfall. Die Anzahl der zurückgegebenen Werte steht im Index "count" des zurückgegebenen Arrays zur Verfügung. Der Zugriff auf einzelne Werte erfolgt durch einen numerischen Index im Array. Der erste Indexwert ist 0.

LDAP erlaubt mehr als einen Eintrag für ein Merkmal, so dass es z.B. sein kann, dass der Verzeichnis-Eintrag einer Person mehrere E-Mail-Adressen enthält, die alle mit dem Merkmal "mail" bezeichnet sind.

     return_value["count"] = Anzahl der Werte eines Merkmals
     return_value[0]       = der erste Wert des Merkmals
     return_value[i]       = der i-te Wert des Merkmals

Beispiele

Beispiel #1 Liste alle Werte des Merkmals "mail" für einen Verzeichnis-Eintrag auf

<?php
// $ds ist eine gültige Verbindungskennung für einen Verzeichnis-Server

// $sr ist ein gültiges Suchergebnis eines früheren Aufrufs einer der
//     LDAP-Verzeichnis-Suchfunktionen

// $entry gültige Eintrag-Kennung eines früheren Aufrufs einer
//        der Funktionen, die einen Verzeichnis-Eintrag zurückgeben

$values = ldap_get_values($ds, $entry, "mail");

echo $values["count"] . " E-Mail-Adressen für diesen Eintrag.<br />";

for ($i=0; $i < $values["count"]; $i++) {
    echo $values[$i] . "<br />";
}
?>

Siehe auch

  • ldap_get_values_len() - Liefert alle binären Werte eines Eintrags aus einem Ergebnis


Suche in einer Ebene

  • « ldap_get_values
  • ldap_mod_add_ext »
  • PHP Manual
  • LDAP Funktionen
  • Suche in einer Ebene

ldap_list

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_list — Suche in einer Ebene

Beschreibung

ldap_list ( resource|array $ldap , array|string $base , array|string $filter , array $attributes = [] , int $attributes_only = 0 , int $sizelimit = -1 , int $timelimit = -1 , int $deref = LDAP_DEREF_NEVER , array|null $controls = null ) : resource|array|false

Führt eine Suche für einen angegeben filter im Verzeichnis mit dem Geltungsbereich LDAP_SCOPE_ONELEVEL durch.

LDAP_SCOPE_ONELEVEL bedeutet, dass die Suche nur Informationen liefert, die direkt innerhalb der Ebene liegen, die durch die Angabe des base im Aufruf bestimmt wird. Das entspricht der Eingabe von "ls", die eine Liste von Dateien und Verzeichnissen des aktuellen Arbeitsverzeichnisses anzeigt.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

base

Der Basis-DN für das Verzeichnis.

filter

attributes

Ein Array von erforderlichen Merkmalen, z.B. array("mail", "sn", "cn"). Es ist zu beachten, dass der "dn" immer zurückgegeben wird, unabhängig davon, welche Merkmalstypen angefordert wurden.

Die Verwendung dieses Parameters ist effizienter als die Standardaktion (die alle Merkmale und deren assoziierte Werte zurückgibt). Die Verwendung dieses Parameters sollte daher als gute Praxis eingestuft werden.

attributes_only

Sollte auf 1 gesetzt werden, wenn nur Merkmalstypen erwünscht sind. Wird 0 übergeben, werden sowohl Merkmalstypen als auch Merkmalswerte abgerufen, was das Standardverhalten ist.

sizelimit

Ermöglicht die Begrenzung der Anzahl der abgerufenen Einträge. Wird hier 0 übergeben, besteht keine Begrenzung.

Hinweis:

Dieser Parameter kann ein serverseitig voreingestelltes sizelimit NICHT überschreiben. Es kann allerdings kleiner gewählt werden.

Verzeichnis-Server können so konfiguriert werden, dass sie nicht mehr als eine voreingestellte Anzahl von Einträgen zurückgeben. Wenn dies der Fall ist, dann zeigt der Server an, dass nur eine teilweise Ergebnismenge zurückgegeben wurde. Das geschieht ebenfalls, wenn dieser Parameter verwendet wird, um die Zahl der abgerufenen Einträge zu begrenzen.

timelimit

Setzt die Anzahl von Sekunden, die auf die Suche verwendet wird. Die Übergabe von 0 bedeutet keine Begrenzung.

Hinweis:

Dieser Parameter kann ein serverseitig voreingestelltes timelimit NICHT überschreiben. Es kann allerdings kleiner gewählt werden.

deref

Gibt an, wie Aliase während der Suche behandelt werden sollen. Es kann einen der folgenden Werte annehmen:

  • LDAP_DEREF_NEVER - (standard) Aliase werden nie dereferenziert.
  • LDAP_DEREF_SEARCHING - Aliase sollen während der Suche dereferenziert werden, aber nicht wenn das Basis-Objekt der Suche lokalisiert wird.
  • LDAP_DEREF_FINDING - Aliase sollen für die Lokalisierung des Basis-Objekt dereferenziert werden, aber nicht während der Suche.
  • LDAP_DEREF_ALWAYS - Aliase sollen immer dereferenziert werden.

controls

Ein Array von LDAP-Steuerbefehlen, die mit der Anfrage versendet werden sollen.

Rückgabewerte

Gibt eine Suchergebniskennung zurück oder false im Fehlerfall.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Die Unterstützung für controls wurde hinzugefügt.

Beispiele

Beispiel #1 Erzeuge einer Liste aller Organisationseinheiten einer Organisation

<?php
// $ds ist eine gültige Verbindungskennung für einen Verzeichnis-Server

$basis_dn = "o=Meine Firma, c=DE";
$nur_dieses = array("ou");

$sr = ldap_list($ds, $basis_dn, "ou=*", $nur_dieses);

$info = ldap_get_entries($ds, $sr);

for ($i=0; $i < $info["count"]; $i++) {
    echo $info[$i]["ou"][0] ;
}
?>

Siehe auch

  • ldap_search() - Sucht im LDAP-Baum


Add attribute values to current attributes

  • « ldap_list
  • ldap_mod_add »
  • PHP Manual
  • LDAP Funktionen
  • Add attribute values to current attributes

ldap_mod_add_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_mod_add_ext — Add attribute values to current attributes

Beschreibung

ldap_mod_add_ext ( resource $ldap , string $dn , array $entry , array|null $controls = null ) : resource|false

Does the same thing as ldap_mod_add() but returns the LDAP result resource to be parsed with ldap_parse_result().

Parameter-Liste

See ldap_mod_add()

Rückgabewerte

Returns an LDAP result identifier or false on error.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Support for controls added

Siehe auch

  • ldap_mod_add() - Fügt Merkmalswerte zum aktuellen Eintrag hinzu
  • ldap_parse_result() - Extrahiert Informationen aus einem Ergebnis


Fügt Merkmalswerte zum aktuellen Eintrag hinzu

  • « ldap_mod_add_ext
  • ldap_mod_del_ext »
  • PHP Manual
  • LDAP Funktionen
  • Fügt Merkmalswerte zum aktuellen Eintrag hinzu

ldap_mod_add

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_mod_add — Fügt Merkmalswerte zum aktuellen Eintrag hinzu

Beschreibung

ldap_mod_add ( resource $ldap , string $dn , array $entry , array|null $controls = null ) : bool

Fügt ein oder mehrere Merkmalswerte zum angegebenen dn hinzu. Um ein ganz neues Objekt hinzuzufügen, ist ldap_add() zu verwenden.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

dn

Der Distinguished Name eines LDAP-Datenobjekts.

entry

Ein assoziatives Array, das die Merkmalswerte aufführt, die hinzugefügt werden sollen. Existiert ein Merkmal noch nicht, wird es hinzugefügt. Existiert ein Merkmal bereits, können nur dann Werte hinzugefügt werden, wenn es mehrere Werte unterstützt.

controls

Ein Array von LDAP-Steuerbefehlen, die mit der Anfrage versendet werden sollen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Die Unterstützung für controls wurde hinzugefügt.

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • ldap_mod_add_ext() - Add attribute values to current attributes
  • ldap_mod_del() - Löscht Merkmalswerte des aktuellen Eintrags
  • ldap_mod_replace() - Ersetzt Merkmalswerte durch neue Merkmalswerte
  • ldap_modify_batch() - Batch and execute modifications on an LDAP entry


Delete attribute values from current attributes

  • « ldap_mod_add
  • ldap_mod_del »
  • PHP Manual
  • LDAP Funktionen
  • Delete attribute values from current attributes

ldap_mod_del_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_mod_del_ext — Delete attribute values from current attributes

Beschreibung

ldap_mod_del_ext ( resource $ldap , string $dn , array $entry , array|null $controls = null ) : resource|false

Does the same thing as ldap_mod_del() but returns the LDAP result resource to be parsed with ldap_parse_result().

Parameter-Liste

See ldap_mod_del()

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Support for controls added

Rückgabewerte

Returns an LDAP result identifier or false on error.

Siehe auch

  • ldap_mod_del() - Löscht Merkmalswerte des aktuellen Eintrags
  • ldap_parse_result() - Extrahiert Informationen aus einem Ergebnis


Löscht Merkmalswerte des aktuellen Eintrags

  • « ldap_mod_del_ext
  • ldap_mod_replace_ext »
  • PHP Manual
  • LDAP Funktionen
  • Löscht Merkmalswerte des aktuellen Eintrags

ldap_mod_del

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_mod_del — Löscht Merkmalswerte des aktuellen Eintrags

Beschreibung

ldap_mod_del ( resource $ldap , string $dn , array $entry , array|null $controls = null ) : bool

Entfernt ein oder mehrere Merkmalswerte vom angegebenen dn. Das Löschen von Objekten erfolgt mit der Funktion ldap_delete().

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

dn

Der Distinguished Name eines LDAP-Datenobjekts.

entry

controls

Ein Array von LDAP-Steuerbefehlen, die mit der Anfrage versendet werden sollen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Die Unterstützung für controls wurde hinzugefügt.

Siehe auch

  • ldap_mod_del_ext() - Delete attribute values from current attributes
  • ldap_mod_add() - Fügt Merkmalswerte zum aktuellen Eintrag hinzu
  • ldap_mod_replace() - Ersetzt Merkmalswerte durch neue Merkmalswerte
  • ldap_modify_batch() - Batch and execute modifications on an LDAP entry


Replace attribute values with new ones

  • « ldap_mod_del
  • ldap_mod_replace »
  • PHP Manual
  • LDAP Funktionen
  • Replace attribute values with new ones

ldap_mod_replace_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_mod_replace_ext — Replace attribute values with new ones

Beschreibung

ldap_mod_replace_ext ( resource $ldap , string $dn , array $entry , array|null $controls = null ) : resource|false

Does the same thing as ldap_mod_replace() but returns the LDAP result resource to be parsed with ldap_parse_result().

Parameter-Liste

See ldap_mod_replace()

Rückgabewerte

Returns an LDAP result identifier or false on error.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Support for controls added

Siehe auch

  • ldap_mod_replace() - Ersetzt Merkmalswerte durch neue Merkmalswerte
  • ldap_parse_result() - Extrahiert Informationen aus einem Ergebnis


Ersetzt Merkmalswerte durch neue Merkmalswerte

  • « ldap_mod_replace_ext
  • ldap_modify_batch »
  • PHP Manual
  • LDAP Funktionen
  • Ersetzt Merkmalswerte durch neue Merkmalswerte

ldap_mod_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_mod_replace — Ersetzt Merkmalswerte durch neue Merkmalswerte

Beschreibung

ldap_mod_replace ( resource $ldap , string $dn , array $entry , array|null $controls = null ) : bool

Ersetzt ein oder mehrere Merkmale des angegeben dn. Es können auch Merkmale hinzugefügt oder gelöscht werden.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

dn

Der Distinguished Name eines LDAP-Datenobjekts.

entry

Ein assoziatives Array, das die zu ersetzenden Merkmale aufführt. Die Übergabe eines leeren Arrays als Wert entfernt das Merkmal, während das Übergeben eines noch nicht existierenden Merkmals dieses hinzufügt.

controls

Ein Array von LDAP-Steuerbefehlen, die mit der Anfrage versendet werden sollen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Die Unterstützung für controls wurde hinzugefügt.

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • ldap_mod_replace_ext() - Replace attribute values with new ones
  • ldap_mod_del() - Löscht Merkmalswerte des aktuellen Eintrags
  • ldap_mod_add() - Fügt Merkmalswerte zum aktuellen Eintrag hinzu
  • ldap_modify_batch() - Batch and execute modifications on an LDAP entry


Batch and execute modifications on an LDAP entry

  • « ldap_mod_replace
  • ldap_modify »
  • PHP Manual
  • LDAP Funktionen
  • Batch and execute modifications on an LDAP entry

ldap_modify_batch

(PHP 5.4 >= 5.4.26, PHP 5.5 >= 5.5.10, PHP 5.6 >= 5.6.0, PHP 7, PHP 8)

ldap_modify_batch — Batch and execute modifications on an LDAP entry

Beschreibung

ldap_modify_batch ( resource $ldap , string $dn , array $modifications_info , array|null $controls = null ) : bool

Modifies an existing entry in the LDAP directory. Allows detailed specification of the modifications to perform.

Parameter-Liste

ldap

An LDAP link identifier, returned by ldap_connect().

dn

The distinguished name of an LDAP entity.

modifications_info

An array that specifies the modifications to make. Each entry in this array is an associative array with two or three keys: attrib maps to the name of the attribute to modify, modtype maps to the type of modification to perform, and (depending on the type of modification) values maps to an array of attribute values relevant to the modification.

Possible values for modtype include:

LDAP_MODIFY_BATCH_ADD

Each value specified through values is added (as an additional value) to the attribute named by attrib.

LDAP_MODIFY_BATCH_REMOVE

Each value specified through values is removed from the attribute named by attrib. Any value of the attribute not contained in the values array will remain untouched.

LDAP_MODIFY_BATCH_REMOVE_ALL

All values are removed from the attribute named by attrib. A values entry must not be provided.

LDAP_MODIFY_BATCH_REPLACE

All current values of the attribute named by attrib are replaced with the values specified through values.

Note that any value for attrib must be a string, any value for values must be an array of strings, and any value for modtype must be one of the LDAP_MODIFY_BATCH_* constants listed above.

controls

Array of LDAP Controls to send with the request.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Support for controls added

Beispiele

Beispiel #1 Add a telephone number to a contact

<?php
$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "telephoneNumber",
        "modtype" => LDAP_MODIFY_BATCH_ADD,
        "values"  => ["+1 555 555 1717"],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);
?>

Beispiel #2 Rename a user

<?php
$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "sn",
        "modtype" => LDAP_MODIFY_BATCH_REPLACE,
        "values"  => ["Smith-Jones"],
    ],
    [
        "attrib"  => "givenName",
        "modtype" => LDAP_MODIFY_BATCH_REPLACE,
        "values"  => ["Jack"],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);
ldap_rename($connection, $dn, "cn=Jack Smith-Jones", NULL, TRUE);
?>

Beispiel #3 Add two e-mail addresses to a user

<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "mail",
        "modtype" => LDAP_MODIFY_BATCH_ADD,
        "values"  => [
            "jack.smith@example.com",
            "jack.smith-jones@example.com",
        ],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);
?>

Beispiel #4 Change a user's password

<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "userPassword",
        "modtype" => LDAP_MODIFY_BATCH_REMOVE,
        "values"  => ["Tr0ub4dor&3"],
    ],
    [
        "attrib"  => "userPassword",
        "modtype" => LDAP_MODIFY_BATCH_ADD,
        "values"  => ["correct horse battery staple"],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);
?>

Beispiel #5 Change a user's password (Active Directory)

<?php
function adifyPw($pw)
{
    return iconv("UTF-8", "UTF-16LE", '"' . $pw . '"');
}

$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=ad,dc=example,dc=com";
$modifs = [
    [
        "attrib"  => "unicodePwd",
        "modtype" => LDAP_MODIFY_BATCH_REMOVE,
        "values"  => [adifyPw("Tr0ub4dor&3")],
    ],
    [
        "attrib"  => "unicodePwd",
        "modtype" => LDAP_MODIFY_BATCH_ADD,
        "values"  => [adifyPw("correct horse battery staple")],
    ],
];
ldap_modify_batch($connection, $dn, $modifs);


Alias von ldap_mod_replace

  • « ldap_modify_batch
  • ldap_next_attribute »
  • PHP Manual
  • LDAP Funktionen
  • Alias von ldap_mod_replace

ldap_modify

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_modify — Alias von ldap_mod_replace()

Beschreibung

Diese Funktion ist ein Alias für: ldap_mod_replace().

Siehe auch

  • ldap_rename() - Ändert den Namen eines Eintrags


Liefert das nächste Merkmal im Ergebnis

  • « ldap_modify
  • ldap_next_entry »
  • PHP Manual
  • LDAP Funktionen
  • Liefert das nächste Merkmal im Ergebnis

ldap_next_attribute

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_next_attribute — Liefert das nächste Merkmal im Ergebnis

Beschreibung

ldap_next_attribute ( resource $ldap , resource $entry ) : string|false

Ermittelt die Merkmale eines Eintrags. Der erste Aufruf von ldap_next_attribute() wird mit dem Eintrag entry durchgeführt, der von ldap_first_attribute() zurückgegeben wurde.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

entry

ber_identifier

Der interne Zustand des Zeigers wird durch diesen Parameter verwaltet.

Hinweis:

Dieser Parameter wird nicht mehr verwendet, da dies nun automatisch von PHP abgewickelt wird. Aus Gründen der Abwärtskompatibilität erzeugt PHP keinen Fehler, wenn dieser Parameter übergeben wird.

Rückgabewerte

Gibt im Erfolgsfall das nächste Merkmal eines Eintrags zurück und false im Fehlerfall.

Siehe auch

  • ldap_get_attributes() - Liefert die Merkmale eines Eintrags aus einem Suchergebnis


Liefert den nächsten Eintrag eines Ergebnisses

  • « ldap_next_attribute
  • ldap_next_reference »
  • PHP Manual
  • LDAP Funktionen
  • Liefert den nächsten Eintrag eines Ergebnisses

ldap_next_entry

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_next_entry — Liefert den nächsten Eintrag eines Ergebnisses

Beschreibung

ldap_next_entry ( resource $ldap , resource $result ) : resource|false

Ermittle die Einträge, die im Ergebnis gespeichert sind. Wiederholtes Aufrufen von ldap_next_entry() liefert einen Eintrag nach dem anderen, solange bis kein Eintrag mehr vorliegt. Der erste Aufruf von ldap_next_entry() erfolgt nach dem Aufruf von ldap_first_entry() mit result, das von ldap_first_entry() zurückgegeben wurde.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

result

Rückgabewerte

Gibt die Eintragskennung für den nächsten Eintrag des Ergebnisses zurück, dessen Einträge beginnend mit ldap_first_entry() gelesen werden. Wenn keine weiteren Einträge im Ergebnis vorhanden sind, wird false zurückgegeben.

Siehe auch

  • ldap_get_entries() - Liefert alle Einträge aus einem Ergebnis


Holt die nächste Referenz

  • « ldap_next_entry
  • ldap_parse_exop »
  • PHP Manual
  • LDAP Funktionen
  • Holt die nächste Referenz

ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_next_reference — Holt die nächste Referenz

Beschreibung

ldap_next_reference ( resource $ldap , resource $entry ) : resource|false
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Parse result object from an LDAP extended operation

  • « ldap_next_reference
  • ldap_parse_reference »
  • PHP Manual
  • LDAP Funktionen
  • Parse result object from an LDAP extended operation

ldap_parse_exop

(PHP 7 >= 7.2.0, PHP 8)

ldap_parse_exop — Parse result object from an LDAP extended operation

Beschreibung

ldap_parse_exop ( resource $ldap , resource $result , string &$response_data = null , string &$response_oid = null ) : bool

Parse LDAP extended operation data from result object result

Parameter-Liste

ldap

An LDAP link identifier, returned by ldap_connect().

result

An LDAP result resource, returned by ldap_exop().

response_data

Will be filled by the response data.

response_oid

Will be filled by the response OID.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ldap_exop() - Performs an extended operation


Extrahiert Informationen aus einem Referenz-Eintrag

  • « ldap_parse_exop
  • ldap_parse_result »
  • PHP Manual
  • LDAP Funktionen
  • Extrahiert Informationen aus einem Referenz-Eintrag

ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_parse_reference — Extrahiert Informationen aus einem Referenz-Eintrag

Beschreibung

ldap_parse_reference ( resource $ldap , resource $entry , array &$referrals ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Extrahiert Informationen aus einem Ergebnis

  • « ldap_parse_reference
  • ldap_read »
  • PHP Manual
  • LDAP Funktionen
  • Extrahiert Informationen aus einem Ergebnis

ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_parse_result — Extrahiert Informationen aus einem Ergebnis

Beschreibung

ldap_parse_result ( resource $ldap , resource $result , int &$error_code , string &$matched_dn = null , string &$error_message = null , array &$referrals = null , array &$controls = null ) : bool

Parst ein LDAP-Suchergebnis.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

result_identifier

Eine LDAP-Ergebnisressource, geliefert von ldap_list() oder ldap_search().

error_code

Eine Referenz auf eine Variable, die auf den LDAP-Fehlercode des Ergebnisses gesetzt wird, oder 0, wenn kein Fehler auftrat.

matched_dn

Eine Referenz auf eine Variable, die auf den übereinstimmenden DN gesetzt wird, wenn einer in der Anfrage erkannt wurde; andernfalls wird sie auf null gesetzt.

error_message

Eine Referenz auf eine Variable, die auf die LDAP-Fehlermeldung des Ergebnisses gesetzt wird, oder eine leere Zeichenkette, wenn kein Fehler auftrat.

referrals

Eine Referenz auf eine Variable, die auf ein Array gesetzt wird, dass alle Verweiszeichenketten im Ergebnis enthält, oder ein leeres Array, wenn keine Verweise zurückgegeben wurden.

controls

Ein Array von LDAP-Steuerbefehlen, die mit der Antwort versendet wurden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.3 | Die Unterstützung für controls wurde hinzugefügt.

Beispiele

Beispiel #1 ldap_parse_result()-Beispiel

<?php
$result = ldap_search($link, "cn=userref,dc=my-domain,dc=com", "(cn=user*)");
$errcode = $dn = $errmsg = $refs =  null;
if (ldap_parse_result($link, $result, $errcode, $dn, $errmsg, $refs)) {
    // mache etwas mit $errcode, $dn, $errmsg und $refs
}
?>


Liest einen Eintrag

  • « ldap_parse_result
  • ldap_rename_ext »
  • PHP Manual
  • LDAP Funktionen
  • Liest einen Eintrag

ldap_read

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_read — Liest einen Eintrag

Beschreibung

ldap_read ( resource|array $ldap , array|string $base , array|string $filter , array $attributes = [] , int $attributes_only = 0 , int $sizelimit = -1 , int $timelimit = -1 , int $deref = LDAP_DEREF_NEVER , array|null $controls = null ) : resource|array|false

Führt eine Suche nach dem angegeben filter im Verzeichnis mit dem Geltungsbereich LDAP_SCOPE_BASE durch. Somit ist es gleichwertig zum Lesen eines Eintrags aus dem Verzeichnis.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

base

Der Basis-DN für das Verzeichnis.

filter

Ein leerer Filter ist nicht erlaubt. Soll die gesamte Information zu einem Eintrag ermittelt werden, ist ein objectClass=* Filter zu verwenden. Wenn bekannt ist, welche Eintragstypen auf dem Verzeichnis-Server verwendet werden, könnte ein entsprechender Filter, wie objectClass=inetOrgPerson verwendet werden.

attributes

Ein Array von erforderlichen Merkmalen, z.B. array("mail", "sn", "cn"). Es ist zu beachten, dass der "dn" immer zurückgegeben wird, unabhängig davon, welche Merkmalstypen angefordert wurden.

Die Verwendung dieses Parameters ist effizienter als die Standardaktion (die alle Merkmale und deren assoziierte Werte zurückgibt). Die Verwendung dieses Parameter sollte daher als gute Praxis eingestuft werden.

attributes_only

Sollte auf 1 gesetzt werden, wenn nur Merkmalstypen erwünscht sind. Wird 0 übergeben, werden sowohl Merkmalstypen als auch Merkmalswerte abgerufen, was das Standardverhalten ist.

sizelimit

Ermöglicht die Begrenzung der Anzahl der abgerufenen Einträge. Wird hier 0 übergeben, besteht keine Begrenzung.

Hinweis:

Dieser Parameter kann ein serverseitig voreingestelltes sizelimit NICHT überschreiben. Es kann allerdings kleiner gewählt werden.

Verzeichnis-Server können so konfiguriert werden, dass sie nicht mehr als eine voreingestellte Anzahl von Einträgen zurückgeben. Wenn dies der Fall ist, dann zeigt der Server an, dass nur eine teilweise Ergebnismenge zurückgegeben wurde. Das geschieht ebenfalls, wenn dieser Parameter verwendet wird, um die Zahl der abgerufenen Einträge zu begrenzen.

timelimit

Setzt die Anzahl von Sekunden, die auf die Suche verwendet wird. Die Übergabe von 0 bedeutet keine Begrenzung.

Hinweis:

Dieser Parameter kann ein serverseitig voreingestelltes timelimit NICHT überschreiben. Es kann allerdings kleiner gewählt werden.

deref

Gibt an, wie Aliase während der Suche behandelt werden sollen. Es kann einen der folgenden Werte annehmen:

  • LDAP_DEREF_NEVER - (standard) Aliase werden nie dereferenziert.
  • LDAP_DEREF_SEARCHING - Aliase sollen während der Suche dereferenziert werden, aber nicht wenn das Basis-Objekt der Suche lokalisiert wird.
  • LDAP_DEREF_FINDING - Aliase sollen für die Lokalisierung des Basis-Objekt dereferenziert werden, aber nicht während der Suche.
  • LDAP_DEREF_ALWAYS - Aliase sollen immer dereferenziert werden.

controls

Ein Array von LDAP-Steuerbefehlen, die mit der Anfrage versendet werden sollen.

Rückgabewerte

Gibt eine Suchergebniskennung zurück oder false im Fehlerfall.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
4.0.5 | Die Unterstützung für parallele Suchen wurde hinzugefügt. Siehe ldap_search() für Details.
7.3 | Die Unterstützung für controls wurde hinzugefügt.


Modify the name of an entry

  • « ldap_read
  • ldap_rename »
  • PHP Manual
  • LDAP Funktionen
  • Modify the name of an entry

ldap_rename_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_rename_ext — Modify the name of an entry

Beschreibung

ldap_rename_ext ( resource $ldap , string $dn , string $new_rdn , string $new_parent , bool $delete_old_rdn , array|null $controls = null ) : resource|false

Does the same thing as ldap_rename() but returns the LDAP result resource to be parsed with ldap_parse_result().

Parameter-Liste

See ldap_rename()

Rückgabewerte

Returns an LDAP result identifier or false on error.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Support for controls added

Siehe auch

  • ldap_rename() - Ändert den Namen eines Eintrags
  • ldap_parse_result() - Extrahiert Informationen aus einem Ergebnis


Ändert den Namen eines Eintrags

  • « ldap_rename_ext
  • ldap_sasl_bind »
  • PHP Manual
  • LDAP Funktionen
  • Ändert den Namen eines Eintrags

ldap_rename

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_rename — Ändert den Namen eines Eintrags

Beschreibung

ldap_rename ( resource $ldap , string $dn , string $new_rdn , string $new_parent , bool $delete_old_rdn , array|null $controls = null ) : bool

Der Eintrag, der durch dn gegeben ist, wird umbenannt/verschoben.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

dn

Der Distinguished Name eines LDAP-Datenobjekts.

new_rdn

Der neue RDN.

new_parent

Der neue übergeordnete Eintrag.

delete_old_rdn

Wenn true, dann wird der alte RDN-Wert entfernt; ansonsten bleibt der alte RDN-Wert als nicht-unterscheidbarer Wert des Eintrags erhalten.

controls

Ein Array von LDAP-Steuerbefehlen, die mit der Anfrage versendet werden sollen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Die Unterstützung für controls wurde hinzugefügt.

Anmerkungen

Hinweis:

Diese Funktion arbeitet zum gegenwärtigen Zeitpunkt nur mit LDAPv3. Gegebenenfalls muss ldap_set_option() zuvor verwendet werden, um für eine Bindung LDAPv3 nutzen zu können. Diese Funktion steht nur zur Verfügung, wenn OpenLDAP 2.x.x ODER Netscape Directory SDK x.x verwendet wird.

Siehe auch

  • ldap_rename_ext() - Modify the name of an entry
  • ldap_modify() - Alias von ldap_mod_replace


Bind to LDAP directory using SASL

  • « ldap_rename
  • ldap_search »
  • PHP Manual
  • LDAP Funktionen
  • Bind to LDAP directory using SASL

ldap_sasl_bind

(PHP 5, PHP 7, PHP 8)

ldap_sasl_bind — Bind to LDAP directory using SASL

Beschreibung

ldap_sasl_bind ( resource $ldap , string|null $dn = null , string|null $password = null , string|null $mech = null , string|null $realm = null , string|null $authc_id = null , string|null $authz_id = null , string|null $props = null ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | dn, password, mech, realm, authc_id, authz_id and props are nullable now.

Anmerkungen

Hinweis: Requirement
ldap_sasl_bind() requires SASL support (sasl.h). Be sure --with-ldap-sasl is used when configuring PHP otherwise this function will be undefined.


Sucht im LDAP-Baum

  • « ldap_sasl_bind
  • ldap_set_option »
  • PHP Manual
  • LDAP Funktionen
  • Sucht im LDAP-Baum

ldap_search

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_search — Sucht im LDAP-Baum

Beschreibung

ldap_search ( resource|array $ldap , array|string $base , array|string $filter , array $attributes = [] , int $attributes_only = 0 , int $sizelimit = -1 , int $timelimit = -1 , int $deref = LDAP_DEREF_NEVER , array|null $controls = null ) : resource|array|false

Führt eine Suche für einen gegebenen Filter im Verzeichnis mit der Reichweite von LDAP_SCOPE_SUBTREE durch. Das ist äquivalent zu einer Suche im ganzen Verzeichnis.

Von 4.0.5 an ist es außerdem möglich, parallele Suchen durchzuführen. Um dies zu tun, wird ein Array von Verbindungskennungen statt einer einzelnen Verbindungskennung als erstes Argument verwendet. Soll nicht der gleiche Basis-DN und der gleiche Filter für alle Suchen verwenden werden, kann ebenso ein Array von Basis-DNs und/oder ein Array von Filtern verwendet werden. Diese Arrays müssen die gleiche Größe wie das Array der Verbindungskennungen haben, da die ersten Einträge der Arrays für eine Suche verwendet werden, die zweiten Einträge für eine andere Suche und so weiter. Wenn parallel gesucht wird, wird ein Array von Suchergebniskennungen zurückgegeben, außer im Fehlerfall; dann gibt der Eintrag zur entsprechenden Suche false zurück. Das entspricht im Prinzip dem Wert, der normalerweise zurückgegeben wird, außer dass immer eine Ergebniskennung zurückgegeben wird, wenn eine Suche durchgeführt wurde. Es treten einige seltene Fälle auf, wo eine normale Suche false zurückgibt, während die parallele Suche eine Kennung zurückgibt.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

base

Der Basis-DN für das Verzeichnis.

filter

Der Suchfilter kann einfach oder erweitert sein, und boolesche Operatoren in dem Format verwenden, das in der LDAP-Dokumentation beschrieben wird (siehe das » Netscape Directory SDK oder » RFC4515 für vollständige Informationen zu Filtern).

attributes

Ein Array von erforderlichen Merkmalen, z.B. array("mail", "sn", "cn"). Es ist zu beachten, dass der "dn" immer zurückgegeben wird, unabhängig davon, welche Merkmalstypen angefragt wurden.

Die Verwendung dieses Parameters ist effizienter als die Standardaktion (die alle Merkmale und deren assoziierte Werte zurückgibt). Die Verwendung dieses Parameter sollte daher als gute Praxis eingestuft werden.

attributes_only

Sollte auf 1 gesetzt werden, wenn nur Merkmalstypen erwünscht sind. Wird 0 übergeben, werden sowohl Merkmalstypen als auch Merkmalswerte abgerufen, was das Standardverhalten ist.

sizelimit

Ermöglicht die Begrenzung der Anzahl der abgerufenen Einträge. Wird hier 0 übergeben, besteht keine Begrenzung.

Hinweis:

Dieser Parameter kann ein serverseitig voreingestelltes sizelimit NICHT überschreiben. Es kann allerdings kleiner gewählt werden.

Verzeichnis-Server können so konfiguriert werden, dass sie nicht mehr als eine voreingestellte Anzahl von Einträgen zurückgeben. Wenn dies der Fall ist, dann zeigt der Server an, dass nur eine teilweise Ergebnismenge zurückgegeben wurde. Das geschieht ebenfalls, wenn dieser Parameter verwendet wird, um die Zahl der abgerufenen Einträge zu begrenzen.

timelimit

Setzt die Anzahl von Sekunden, die auf die Suche verwendet wird. Die Übergabe von 0 bedeutet keine Begrenzung.

Hinweis:

Dieser Parameter kann ein serverseitig voreingestelltes timelimit NICHT überschreiben. Es kann allerdings kleiner gewählt werden.

deref

Gibt an, wie Aliase während der Suche behandelt werden sollen. Es kann einen der folgenden Werte annehmen:

  • LDAP_DEREF_NEVER - (standard) Aliase werden nie dereferenziert.
  • LDAP_DEREF_SEARCHING - Aliase sollen während der Suche dereferenziert werden, aber nicht wenn das Basis-Objekt der Suche lokalisiert wird.
  • LDAP_DEREF_FINDING - Aliase sollen für die Lokalisierung des Basis-Objekt dereferenziert werden, aber nicht während der Suche.
  • LDAP_DEREF_ALWAYS - Aliase sollen immer dereferenziert werden.

controls

Ein Array von LDAP-Steuerbefehlen, die mit der Anfrage versendet werden sollen.

Rückgabewerte

Gibt eine Suchergebniskennung zurück oder false im Fehlerfall.

Changelog

Version | Beschreibung
8.0.0 | controls is nullable now; previously, it defaulted to [].
7.3 | Die Unterstützung für controls wurde hinzugefügt.

Beispiele

Das untenstehende Beispiel liefert die Organisationseinheit, den Familiennamen, den Vornamen und die E-Mail-Adresse aller Personen in "Meine Firma", deren Familien- oder Vorname die Zeichenkette $person enhält. In diesem Beispiel wird ein boolescher Filter verwendet, um den Server zu veranlassen, nach Informationen in mehr als einem Merkmal zu suchen.

Beispiel #1 LDAP-Suche

// $ds ist eine gültige Verbindungskennung für einen Verzeichnis-Server

// $person ist ein Teil oder der vollständige Name einer Person, z.B. "Jo"

$dn = "o=Meine Firma, c=DE";
$filter = "(|(sn=$person*)(vorname=$person*))";
$justthese = array( "ou", "sn", "vorname", "mail");

$sr=ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo $info["count"] . " Einträge gefundene\n";


Setzt den Wert der gegebenen Option

  • « ldap_search
  • ldap_set_rebind_proc »
  • PHP Manual
  • LDAP Funktionen
  • Setzt den Wert der gegebenen Option

ldap_set_option

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ldap_set_option — Setzt den Wert der gegebenen Option

Beschreibung

ldap_set_option ( resource|null $ldap , int $option , array|string|int|bool $value ) : bool

Setzt den Wert der angegebenen Option auf value.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

option

Der Parameter option kann einer der folgenden Werte sein:

Option | Typ | Verfügbar seit
LDAP_OPT_DEREF | int
LDAP_OPT_SIZELIMIT | int
LDAP_OPT_TIMELIMIT | int
LDAP_OPT_NETWORK_TIMEOUT | int
LDAP_OPT_PROTOCOL_VERSION | int
LDAP_OPT_ERROR_NUMBER | int
LDAP_OPT_REFERRALS | bool
LDAP_OPT_RESTART | bool
LDAP_OPT_HOST_NAME | string
LDAP_OPT_ERROR_STRING | string
LDAP_OPT_DIAGNOSTIC_MESSAGE | string
LDAP_OPT_MATCHED_DN | string
LDAP_OPT_SERVER_CONTROLS | array
LDAP_OPT_CLIENT_CONTROLS | array
LDAP_OPT_X_KEEPALIVE_IDLE | int | PHP 7.1.0
LDAP_OPT_X_KEEPALIVE_PROBES | int | PHP 7.1.0
LDAP_OPT_X_KEEPALIVE_INTERVAL | int | PHP 7.1.0
LDAP_OPT_X_TLS_CACERTDIR | string | PHP 7.1.0
LDAP_OPT_X_TLS_CACERTFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_CERTFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_CIPHER_SUITE | string | PHP 7.1.0
LDAP_OPT_X_TLS_CRLCHECK | int | PHP 7.1.0
LDAP_OPT_X_TLS_CRLFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_DHFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_KEYFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_PROTOCOL_MIN | int | PHP 7.1.0
LDAP_OPT_X_TLS_RANDOM_FILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_REQUIRE_CERT | int | PHP 7.0.5

Die Optionen LDAP_OPT_SERVER_CONTROLS und LDAP_OPT_CLIENT_CONTROLS benötigen eine Liste von Steuerelementen, d.h. der Wert muss ein Array aus Steuerelementen sein. Ein Steuerelement besteht aus einer oid, die das Steuerelement identifiziert, einem optionalen wert, und einem optionalen Kennzeichen für criticality. Bei PHP wird ein Steuerelement durch ein Array angegeben. Dieses Array enthält ein Element mit dem Schlüssel oid und einer Zeichenkette als Wert und zwei optionalen Elementen. Die optionalen Elemente sind Schlüssel wert mit einer Zeichenkette als Wert und dem Schlüssel iscritical mit einem booleschen Wert. Der vorgegebene Wert von iscritical ist false, falls nicht angegeben. Siehe » draft-ietf-ldapext-ldap-c-api-xx.txt für Details. Ebenso ist das zweite Beispiel weiter unten zu konsultieren.

value

Der neue Wert für die angegebene option.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Setzen der Protokollversion

<?php
// $ds ist eine gültige Verbindungskennung für einen Verzeichnis-Server
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3))
    echo "Verwenden von LDAPv3";
} else {
    echo "Kann das Protokoll nicht auf Version 3 setzen";
}
?>

Beispiel #2 Setzen der Server Kontrollen

<?php
// $ds ist eine gültige Verbindungskennung für einen Verzeichnis-Server
// Steuerelement ohne Wert
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => true);
// iscritical hat den vorgegebenen Wert FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// Versuch, beide Kontrollen zu setzen
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2))) {
    echo "Kann die Server-Steuerelemente nicht setzen";
}
?>

Anmerkungen

Hinweis:

Diese Funktion steht nur zur Verfügung, wenn Sie OpenLDAP 2.x.x ODER Netscape Directory SDK x.x verwenden.

Siehe auch

  • ldap_get_option() - Liefert den aktuellen Wert einer gegebenen Option


Setzt einen Callback um Rebinds bei der Verweisverfolgung durchzuführen

  • « ldap_set_option
  • ldap_sort »
  • PHP Manual
  • LDAP Funktionen
  • Setzt einen Callback um Rebinds bei der Verweisverfolgung durchzuführen

ldap_set_rebind_proc

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ldap_set_rebind_proc — Setzt einen Callback um Rebinds bei der Verweisverfolgung durchzuführen

Beschreibung

ldap_set_rebind_proc ( resource $ldap , callable|null $callback ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Changelog

Version | Beschreibung
8.0.0 | callback ist nun ein Nullable-Typ.


Sortiert LDAP-Ergebniseinträge clientseitig

  • « ldap_set_rebind_proc
  • ldap_start_tls »
  • PHP Manual
  • LDAP Funktionen
  • Sortiert LDAP-Ergebniseinträge clientseitig

ldap_sort

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ldap_sort — Sortiert LDAP-Ergebniseinträge clientseitig

Beschreibung

ldap_sort ( resource $link , resource $result , string $sortfilter ) : bool

Sortiert das Ergebnis einer LDAP-Suche, das von ldap_search() zurückgegeben wurde.

Da diese Funktion die zurückgegebenen Werte clientseitig sortiert, ist es möglich, dass unerwartete Ergebnisse geliefert werden, falls entweder das serverseitige sizelimit oder dasjenige, das mit ldap_search() festgelegt wurde, erreicht wurde.

Warnung

Dieses Feature ist seit PHP 7.0.0 DEPRECATED (veraltet). Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Parameter-Liste

link

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

result

Eine Suchergebniskennung, geliefert von ldap_search().

sortfilter

Das als Sortierschlüssel zu verwendende Merkmal.

Beispiele

Sortieren eines Suchergebnisses.

Beispiel #1 LDAP-Sortierung

<?php
// $ds ist eine gültige Verbindungskennung (siehe ldap_connect)

$dn        = 'ou=example,dc=org';
$filter    = '(|(sn=Doe*)(givenname=John*))';
$justthese = array('ou', 'sn', 'givenname', 'mail');

$sr = ldap_search($ds, $dn, $filter, $justthese);

// Sortiere
ldap_sort($ds, $sr, 'sn');

// Hole die Daten
$info = ldap_get_entries($ds, $sr);


Startet TLS

  • « ldap_sort
  • ldap_t61_to_8859 »
  • PHP Manual
  • LDAP Funktionen
  • Startet TLS

ldap_start_tls

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ldap_start_tls — Startet TLS

Beschreibung

ldap_start_tls ( resource $ldap ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Übersetzt t61-Zeichen in 8859-Zeichen

  • « ldap_start_tls
  • ldap_unbind »
  • PHP Manual
  • LDAP Funktionen
  • Übersetzt t61-Zeichen in 8859-Zeichen

ldap_t61_to_8859

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

ldap_t61_to_8859 — Übersetzt t61-Zeichen in 8859-Zeichen

Beschreibung

ldap_t61_to_8859 ( string $value ) : string|false
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Löst die Bindung zu einem LDAP-Verzeichnis

  • « ldap_t61_to_8859
  • Memcache »
  • PHP Manual
  • LDAP Funktionen
  • Löst die Bindung zu einem LDAP-Verzeichnis

ldap_unbind

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_unbind — Löst die Bindung zu einem LDAP-Verzeichnis

Beschreibung

ldap_unbind ( resource $ldap ) : bool

Löst die Bindung zu einem LDAP-Verzeichnis.

Parameter-Liste

ldap

Eine LDAP-Verbindungskennung, geliefert von ldap_connect().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ldap_bind() - Anmeldung an einem LDAP-Verzeichnis (LDAP Bind)


Memcache

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Grundlegende Verwendung
  • Memcache — Die Memcache Klasse
    • Memcache::add — Add an item to the server
    • Memcache::addServer — Add a memcached server to connection pool
    • Memcache::close — Close memcached server connection
    • Memcache::connect — Open memcached server connection
    • Memcache::decrement — Decrement item's value
    • Memcache::delete — Delete item from the server
    • Memcache::flush — Flush all existing items at the server
    • Memcache::get — Retrieve item from the server
    • Memcache::getExtendedStats — Get statistics from all servers in pool
    • Memcache::getServerStatus — Returns server status
    • Memcache::getStats — Get statistics of the server
    • Memcache::getVersion — Return version of the server
    • Memcache::increment — Increment item's value
    • Memcache::pconnect — Open memcached server persistent connection
    • Memcache::replace — Replace value of the existing item
    • Memcache::set — Store data at the server
    • Memcache::setCompressThreshold — Enable automatic compression of large values
    • Memcache::setServerParams — Changes server parameters and status at runtime
  • Memcache Funktionen
    • memcache_debug — Turn debug output on/off


Einführung

Das Memcache-Modul bietet eine praktische Schnittstelle zu Memcached, einem effizienten Cache, welcher speziell entwickelt wurde, um die Datenbanklast in dynamischen Webanwendungen zu senken.

Das Memcache-Modul stellt außerdem einen Sessionhandler zur Verfügung (memcache).

Weitere Informationen über Memcache gibt es unter » http://www.memcached.org/.


Anforderungen

Dieses Modul verwendet » zlib-Funktionen um Daten "on the fly" zu komprimieren. Zlib muss installiert sein, um dieses Modul verwenden zu können.


Installation

Diese » PECL-Extension ist nicht Teil von PHP. Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/memcache.

Hinweis:

Es ist möglich, die Unterstützung für den Memcache-Sessionhandler zu deaktivieren. Die Option 'pecl install' fragt danach (standardmäßig aktiviert). Bei der Kompilierung kann die Option --disable-memcache-session verwendet werden.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Memcache-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
memcache.allow_failover | "1" | PHP_INI_ALL | Verfügbar seit Memcache 2.0.2.
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Verfügbar seit Memcache 2.1.0.
memcache.chunk_size | "8192" | PHP_INI_ALL | Verfügbar seit Memcache 2.0.2.
memcache.default_port | "11211" | PHP_INI_ALL | Verfügbar seit Memcache 2.0.2.
memcache.hash_strategy | "standard" | PHP_INI_ALL | Verfügbar seit Memcache 2.2.0.
memcache.hash_function | "crc32" | PHP_INI_ALL | Verfügbar seit Memcache 2.2.0.
session.save_handler | "files" | PHP_INI_ALL | Verfügbar seit Memcache 2.1.2
session.save_path | "" | PHP_INI_ALL | Unterstützt seit Memcache 2.1.2
memcache.protocol | ascii | >PHP_INI_ALL | Unterstützt seit Memcache 3.0.0
memcache.redundancy | 1 | >PHP_INI_ALL | Unterstützt seit Memcache 3.0.0
memcache.session_redundancy | 2 | >PHP_INI_ALL | Unterstützt seit Memcache 3.0.0
memcache.compress_threshold | 20000 | >PHP_INI_ALL | Unterstützt seit Memcache 3.0.3
memcache.lock_timeout | 15 | >PHP_INI_ALL | Unterstützt seit Memcache 3.0.4
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

memcache.allow_failover bool

Bestimmt, ob bei einem Fehler auf andere Server ausgewichen werden soll.

memcache.max_failover_attempts int

Gibt an, wie viele Server angefragt werden sollen, um Daten zu lesen oder zu schreiben. Diese Einstellung wird nur verwendet, wenn memcache.allow_failover aktiviert wurde.

memcache.chunk_size int

Daten werden in Blöcken dieser Größe (in Bytes) übertragen. Ein niedrigerer Wert erfordert mehr Schreibvorgänge im Netzwerk. Versuchen Sie diesen Wert auf 32768 zu erhöhen, wenn Sie sonst unerklärliche Verzögerungen bemerken.

memcache.default_port string

Der Standard-Port, welcher für den Verbindungsaufbau verwendet wird, sofern kein anderer Port angegeben wurde.

memcache.hash_strategy string

Bestimmt die Strategie, die verwendet wird, um Schlüssel auf dem Server abzubilden. Der Wert consistent steht für konsistentes Hashing. Dies bedeutet, dass Server jederzeit zum Server-Pool hinzugefügt oder entfernt werden können, ohne die Schlüssel erneut zuzuweisen. Der Wert standard hingegen verwendet die alte Hash-Strategie, welche diese Vorgehensweise nicht unterstützt.

memcache.hash_function string

Bestimmt die Hash-Funktion, die für die Verteilung der Schlüssel auf die Server verwendet wird. Mögliche Werte sind crc32 für den CRC32-Hash-Algorithmus oder fnv für die Verwendung von FNV-1a.

session.save_handler string

Um Memcache als Sessionhandler zu verwenden, muss dieser Wert auf memcache gesetzt werden.

session.save_path string

Eine ine durch Komma getrennte Liste von Server-URLs, die für die Speicherung von Sessions verwendet wird. Z.B. "tcp://host1:11211, tcp://host2:11211".

Jede URL kann die gleichen Parameter enthalten, die auch für Memcache::addServer() verwendet werden können, z.B. "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

memcache.protocol string

memcache.redundancy int

memcache.session_redundancy int

memcache.compress_threshold int

memcache.lock_timeout int


Ressource-Typen

Der einzige Ressourcen-Typ, der verwendet wird, ist die Verbindungskennung für die Verbindung zum Memcache-Server.


Vordefinierte Konstanten

Memcache-Konstanten
Name | Beschreibung
MEMCACHE_COMPRESSED (int) | Aktiviert die Datenkomprimerung für Memcache::set(), Memcache::add() und Memcache::replace().
MEMCACHE_HAVE_SESSION (int) | Ist 1, wenn ein Memcache-Sessionhandler verfügbar ist, sonst 0.
MEMCACHE_USER1 (int) | Wird verwendet, um ein benutzerdefiniertes Anwendungsflag mit Memcache::set(), Memcache::add() und Memcache::replace() anzuschalten.
MEMCACHE_USER2 (int) | Wird verwendet, um ein benutzerdefiniertes Anwendungsflag mit Memcache::set(), Memcache::add() und Memcache::replace() anzuschalten.
MEMCACHE_USER3 (int) | Wird verwendet, um ein benutzerdefiniertes Anwendungsflag mit Memcache::set(), Memcache::add() und Memcache::replace() anzuschalten.
MEMCACHE_USER4 (int) | Wird verwendet, um ein benutzerdefiniertes Anwendungsflag mit Memcache::set(), Memcache::add() und Memcache::replace() anzuschalten.


  • « Vordefinierte Konstanten
  • Grundlegende Verwendung »
  • PHP Manual
  • Memcache
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Grundlegende Verwendung


Grundlegende Verwendung

Beispiel #1 Memcache Beispiele

In diesem Beispiel wird ein Objekt im Cache gespeichert und anschließend wieder ausgelesen. Objekte und andere nicht-skalare Typen werden vor dem Speichern serialisiert. Somit ist es nicht möglich, Ressourcen im Cache zu speichern.

<?php

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Verbindung fehlgeschlagen");

$version = $memcache->getVersion();
echo "Server-Version: " . $version . "<br/>\n";

$objekt = new stdClass;
$objekt->string_attribut = 'test';
$objekt->integer_attribut = 123;

$memcache->set('schlüssel', $objekt, false, 10) or die ("Speichern des Objekts fehlgeschlagen");
echo "Objekt wurde erfolgreich mit einer Lebensdauer von 10 Sekunden gespeichert<br/>\n";

$gespeichertes_objekt = $memcache->get('schlüssel');
echo "Daten wurden aus dem Cache gelesen:<br/>\n";

var_dump($gespeichertes_objekt);

?>

Beispiel #2 Memcache als Session-Handler verwenden

<?php

$session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10, ,tcp://$host:$port";
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', $session_save_path);

?>


Die Memcache Klasse

(PECL memcache >= 0.2.0)

Einführung

Stellt eine Verbindung zu Memcache-Servern dar.

Klassenbeschreibung

Memcache {
add ( string $key , mixed $var , int $flag = ? , int $expire = ? ) : bool
addServer ( string $host , int $port = 11211 , bool $persistent = ? , int $weight = ? , int $timeout = ? , int $retry_interval = ? , bool $status = ? , callable $failure_callback = ? , int $timeoutms = ? ) : bool
close ( ) : bool
connect ( string $host , int $port = ? , int $timeout = ? ) : bool
decrement ( string $key , int $value = 1 ) : int|false
delete ( string $key , int $timeout = 0 ) : bool
flush ( ) : bool
get ( string $key , int &$flags = ? ) : string
getExtendedStats ( string $type = ? , int $slabid = ? , int $limit = 100 ) : array
getServerStatus ( string $host , int $port = 11211 ) : int
getStats ( string $type = ? , int $slabid = ? , int $limit = 100 ) : array|false
getVersion ( ) : string|false
increment ( string $key , int $value = 1 ) : int|false
pconnect ( string $host , int $port = ? , int $timeout = ? ) : mixed
replace ( string $key , mixed $var , int $flag = ? , int $expire = ? ) : bool
set ( string $key , mixed $var , int $flag = ? , int $expire = ? ) : bool
setCompressThreshold ( int $threshold , float $min_savings = ? ) : bool
setServerParams ( string $host , int $port = 11211 , int $timeout = ? , int $retry_interval = false , bool $status = ? , callable $failure_callback = ? ) : bool
}

Inhaltsverzeichnis

  • Memcache::add — Add an item to the server
  • Memcache::addServer — Add a memcached server to connection pool
  • Memcache::close — Close memcached server connection
  • Memcache::connect — Open memcached server connection
  • Memcache::decrement — Decrement item's value
  • Memcache::delete — Delete item from the server
  • Memcache::flush — Flush all existing items at the server
  • Memcache::get — Retrieve item from the server
  • Memcache::getExtendedStats — Get statistics from all servers in pool
  • Memcache::getServerStatus — Returns server status
  • Memcache::getStats — Get statistics of the server
  • Memcache::getVersion — Return version of the server
  • Memcache::increment — Increment item's value
  • Memcache::pconnect — Open memcached server persistent connection
  • Memcache::replace — Replace value of the existing item
  • Memcache::set — Store data at the server
  • Memcache::setCompressThreshold — Enable automatic compression of large values
  • Memcache::setServerParams — Changes server parameters and status at runtime


Add an item to the server

  • « Memcache
  • Memcache::addServer »
  • PHP Manual
  • Memcache
  • Add an item to the server

Memcache::add

(PECL memcache >= 0.2.0)

Memcache::add — Add an item to the server

Beschreibung

Memcache::add ( string $key , mixed $var , int $flag = ? , int $expire = ? ) : bool

Memcache::add() stores variable var with key only if such key doesn't exist at the server yet. Also you can use memcache_add() function.

Parameter-Liste

key

The key that will be associated with the item.

var

The variable to store. Strings and integers are stored as is, other types are stored serialized.

flag

Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).

expire

Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Returns false if such key already exist. For the rest Memcache::add() behaves similarly to Memcache::set().

Beispiele

Beispiel #1 Memcache::add() example

<?php

$memcache_obj = memcache_connect("localhost", 11211);

/* procedural API */
memcache_add($memcache_obj, 'var_key', 'test variable', false, 30);

/* OO API */
$memcache_obj->add('var_key', 'test variable', false, 30);

?>

Siehe auch

  • Memcache::set() - Store data at the server
  • Memcache::replace() - Replace value of the existing item


Add a memcached server to connection pool

  • « Memcache::add
  • Memcache::close »
  • PHP Manual
  • Memcache
  • Add a memcached server to connection pool

Memcache::addServer

(PECL memcache >= 2.0.0)

Memcache::addServer — Add a memcached server to connection pool

Beschreibung

Memcache::addServer ( string $host , int $port = 11211 , bool $persistent = ? , int $weight = ? , int $timeout = ? , int $retry_interval = ? , bool $status = ? , callable $failure_callback = ? , int $timeoutms = ? ) : bool

Memcache::addServer() adds a server to the connection pool. You can also use the memcache_add_server() function.

When using this method (as opposed to Memcache::connect() and Memcache::pconnect()) the network connection is not established until actually needed. Thus there is no overhead in adding a large number of servers to the pool, even though they might not all be used.

Failover may occur at any stage in any of the methods, as long as other servers are available the request the user won't notice. Any kind of socket or Memcached server level errors (except out-of-memory) may trigger the failover. Normal client errors such as adding an existing key will not trigger a failover.

Hinweis:

This function has been added to Memcache version 2.0.0.

Parameter-Liste

host

Point to the host where memcached is listening for connections. This parameter may also specify other transports like unix:///path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.

port

Point to the port where memcached is listening for connections. Set this parameter to 0 when using UNIX domain sockets.

Please note: port defaults to memcache.default_port if not specified. For this reason it is wise to specify the port explicitly in this method call.

persistent

Controls the use of a persistent connection. Default to true.

weight

Number of buckets to create for this server which in turn control its probability of it being selected. The probability is relative to the total weight of all servers.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

retry_interval

Controls how often a failed server will be retried, the default value is 15 seconds. Setting this parameter to -1 disables automatic retry. Neither this nor the persistent parameter has any effect when the extension is loaded dynamically via dl().

Each failed connection struct has its own timeout and before it has expired the struct will be skipped when selecting backends to serve a request. Once expired the connection will be successfully reconnected or marked as failed for another retry_interval seconds. The typical effect is that each web server child will retry the connection about every retry_interval seconds when serving a page.

status

Controls if the server should be flagged as online. Setting this parameter to false and retry_interval to -1 allows a failed server to be kept in the pool so as not to affect the key distribution algorithm. Requests for this server will then failover or fail immediately depending on the memcache.allow_failover setting. Default to true, meaning the server should be considered online.

failure_callback

Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted. The function takes two parameters, the hostname and port of the failed server.

timeoutms

Anmerkungen

Warnung

When the port is unspecified, this method defaults to the value set of the PHP ini directive memcache.default_port If this value was changed elsewhere in your application it might lead to unexpected results: for this reason it is wise to always specify the port explicitly in this method call.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Memcache::addServer() example

<?php

/* OO API */

$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
$memcache->addServer('memcache_host2', 11211);

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_add_server($memcache_obj, 'memcache_host2', 11211);

?>

Siehe auch

  • Memcache::connect() - Open memcached server connection
  • Memcache::pconnect() - Open memcached server persistent connection
  • Memcache::close() - Close memcached server connection
  • Memcache::setServerParams() - Changes server parameters and status at runtime
  • Memcache::getServerStatus() - Returns server status


Close memcached server connection

  • « Memcache::addServer
  • Memcache::connect »
  • PHP Manual
  • Memcache
  • Close memcached server connection

Memcache::close

(PECL memcache >= 0.4.0)

Memcache::close — Close memcached server connection

Beschreibung

Memcache::close ( ) : bool

Memcache::close() closes connection to memcached server. This function doesn't close persistent connections, which are closed only during web-server shutdown/restart. Also you can use memcache_close() function.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Memcache::close() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/*
do something here...
*/
memcache_close($memcache_obj);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/*
do something here...
*/
$memcache_obj->close();

?>

Siehe auch

  • Memcache::connect() - Open memcached server connection
  • Memcache::pconnect() - Open memcached server persistent connection


Open memcached server connection

  • « Memcache::close
  • Memcache::decrement »
  • PHP Manual
  • Memcache
  • Open memcached server connection

Memcache::connect

(PECL memcache >= 0.2.0)

Memcache::connect — Open memcached server connection

Beschreibung

Memcache::connect ( string $host , int $port = ? , int $timeout = ? ) : bool

Memcache::connect() establishes a connection to the memcached server. The connection, which was opened using Memcache::connect() will be automatically closed at the end of script execution. Also you can close it with Memcache::close(). Also you can use memcache_connect() function.

Parameter-Liste

host

Point to the host where memcached is listening for connections. This parameter may also specify other transports like unix:///path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.

port

Point to the port where memcached is listening for connections. Set this parameter to 0 when using UNIX domain sockets.

Please note: port defaults to memcache.default_port if not specified. For this reason it is wise to specify the port explicitly in this method call.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

Anmerkungen

Warnung

When the port is unspecified, this method defaults to the value set of the PHP ini directive memcache.default_port If this value was changed elsewhere in your application it might lead to unexpected results: for this reason it is wise to always specify the port explicitly in this method call.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Memcache::connect() example

<?php

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);

/* OO API */

$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);

?>

Siehe auch

  • Memcache::pconnect() - Open memcached server persistent connection
  • Memcache::close() - Close memcached server connection


Decrement item's value

  • « Memcache::connect
  • Memcache::delete »
  • PHP Manual
  • Memcache
  • Decrement item's value

Memcache::decrement

(PECL memcache >= 0.2.0)

Memcache::decrement — Decrement item's value

Beschreibung

Memcache::decrement ( string $key , int $value = 1 ) : int|false

Memcache::decrement() decrements value of the item by value. Similarly to Memcache::increment(), current value of the item is being converted to numerical and after that value is subtracted.

Hinweis:

New item's value will not be less than zero.

Hinweis:

Do not use Memcache::decrement() with item, which was stored compressed, because consequent call to Memcache::get() will fail.

Memcache::decrement() does not create an item if it didn't exist. Also you can use memcache_decrement() function.

Parameter-Liste

key

Key of the item do decrement.

value

Decrement the item by value.

Rückgabewerte

Returns item's new value on successIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Memcache::decrement() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* decrement item by 2 */
$new_value = memcache_decrement($memcache_obj, 'test_item', 2);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* decrement item by 3 */
$new_value = $memcache_obj->decrement('test_item', 3);
?>

Siehe auch

  • Memcache::increment() - Increment item's value
  • Memcache::replace() - Replace value of the existing item


Delete item from the server

  • « Memcache::decrement
  • Memcache::flush »
  • PHP Manual
  • Memcache
  • Delete item from the server

Memcache::delete

(PECL memcache >= 0.2.0)

Memcache::delete — Delete item from the server

Beschreibung

Memcache::delete ( string $key , int $timeout = 0 ) : bool

Memcache::delete() deletes an item with the key.

Parameter-Liste

key

The key associated with the item to delete.

timeout

This deprecated parameter is not supported, and defaults to 0 seconds. Do not use this parameter.

Changelog

Version | Beschreibung
Unknown | It's not recommended to use the timeout parameter. The behavior differs between memcached versions, but setting to 0 is safe. Other values for this deprecated feature may cause the memcache delete to fail.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Memcache::delete() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);

/* item will be deleted by the server */
memcache_delete($memcache_obj, 'key_to_delete');

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->delete('key_to_delete');

?>

Siehe auch

  • Memcache::set() - Store data at the server
  • Memcache::replace() - Replace value of the existing item


Flush all existing items at the server

  • « Memcache::delete
  • Memcache::get »
  • PHP Manual
  • Memcache
  • Flush all existing items at the server

Memcache::flush

(PECL memcache >= 1.0.0)

Memcache::flush — Flush all existing items at the server

Beschreibung

Memcache::flush ( ) : bool

Memcache::flush() immediately invalidates all existing items. Memcache::flush() doesn't actually free any resources, it only marks all the items as expired, so occupied memory will be overwritten by new items. Also you can use memcache_flush() function.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Memcache::flush() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);

memcache_flush($memcache_obj);

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->flush();

?>


Retrieve item from the server

  • « Memcache::flush
  • Memcache::getExtendedStats »
  • PHP Manual
  • Memcache
  • Retrieve item from the server

Memcache::get

(PECL memcache >= 0.2.0)

Memcache::get — Retrieve item from the server

Beschreibung

Memcache::get ( string $key , int &$flags = ? ) : string
Memcache::get ( array $keys , array &$flags = ? ) : array

Memcache::get() returns previously stored data of an item, if such key exists on the server at this moment.

You can pass array of keys to Memcache::get() to get array of values. The result array will contain only found key-value pairs.

Parameter-Liste

key

The key or array of keys to fetch.

flags

If present, flags fetched along with the values will be written to this parameter. These flags are the same as the ones given to for example Memcache::set(). The lowest byte of the int is reserved for pecl/memcache internal usage (e.g. to indicate compression and serialization status).

Rückgabewerte

Returns the value associated with the key or an array of found key-value pairs when key is an array. Returns false on failure, key is not found or key is an empty array.

Beispiele

Beispiel #1 Memcache::get() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, 'some_key');

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get('some_key');

/*
You also can use array of keys as a parameter.
If such item wasn't found at the server, the result
array simply will not include such key.
*/

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, Array('some_key', 'another_key'));

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get(Array('some_key', 'second_key'));

?>


Get statistics from all servers in pool

  • « Memcache::get
  • Memcache::getServerStatus »
  • PHP Manual
  • Memcache
  • Get statistics from all servers in pool

Memcache::getExtendedStats

(PECL memcache >= 2.0.0)

Memcache::getExtendedStats — Get statistics from all servers in pool

Beschreibung

Memcache::getExtendedStats ( string $type = ? , int $slabid = ? , int $limit = 100 ) : array

Memcache::getExtendedStats() returns a two-dimensional associative array with server statistics. Array keys correspond to host:port of server and values contain the individual server statistics. A failed server will have its corresponding entry set to false. You can also use the memcache_get_extended_stats() function.

Hinweis:

This function has been added to Memcache version 2.0.0.

Parameter-Liste

type

The type of statistics to fetch. Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".

slabid

Used in conjunction with type set to cachedump to identify the slab to dump from. The cachedump command ties up the server and is strictly to be used for debugging purposes.

limit

Used in conjunction with type set to cachedump to limit the number of entries to dump.

Warnung

The cachedump stat type has been removed from the memcached daemon due to security reasons.

Rückgabewerte

Returns a two-dimensional associative array of server statistics or false on failure.

Beispiele

Beispiel #1 Memcache::getExtendedStats() example

<?php
    $memcache_obj = new Memcache;
    $memcache_obj->addServer('memcache_host', 11211);
    $memcache_obj->addServer('failed_host', 11211);

    $stats = $memcache_obj->getExtendedStats();
    print_r($stats);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [memcache_host:11211] => Array
        (
            [pid] => 3756
            [uptime] => 603011
            [time] => 1133810435
            [version] => 1.1.12
            [rusage_user] => 0.451931
            [rusage_system] => 0.634903
            [curr_items] => 2483
            [total_items] => 3079
            [bytes] => 2718136
            [curr_connections] => 2
            [total_connections] => 807
            [connection_structures] => 13
            [cmd_get] => 9748
            [cmd_set] => 3096
            [get_hits] => 5976
            [get_misses] => 3772
            [bytes_read] => 3448968
            [bytes_written] => 2318883
            [limit_maxbytes] => 33554432
        )

    [failed_host:11211] => false
)

Siehe auch

  • Memcache::getVersion() - Return version of the server
  • Memcache::getStats() - Get statistics of the server


Returns server status

  • « Memcache::getExtendedStats
  • Memcache::getStats »
  • PHP Manual
  • Memcache
  • Returns server status

Memcache::getServerStatus

(PECL memcache >= 2.1.0)

Memcache::getServerStatus — Returns server status

Beschreibung

Memcache::getServerStatus ( string $host , int $port = 11211 ) : int

Memcache::getServerStatus() returns a the servers online/offline status. You can also use memcache_get_server_status() function.

Hinweis:

This function has been added to Memcache version 2.1.0.

Parameter-Liste

host

Point to the host where memcached is listening for connections.

port

Point to the port where memcached is listening for connections.

Rückgabewerte

Returns a the servers status. 0 if server is failed, non-zero otherwise

Beispiele

Beispiel #1 Memcache::getServerStatus() example

<?php

/* OO API */
$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
echo $memcache->getServerStatus('memcache_host', 11211);

/* procedural API */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_server_status($memcache, 'memcache_host', 11211);

?>

Siehe auch

  • Memcache::addServer() - Add a memcached server to connection pool
  • Memcache::setServerParams() - Changes server parameters and status at runtime


Get statistics of the server

  • « Memcache::getServerStatus
  • Memcache::getVersion »
  • PHP Manual
  • Memcache
  • Get statistics of the server

Memcache::getStats

(PECL memcache >= 0.2.0)

Memcache::getStats — Get statistics of the server

Beschreibung

Memcache::getStats ( string $type = ? , int $slabid = ? , int $limit = 100 ) : array|false

Memcache::getStats() returns an associative array with server's statistics. Array keys correspond to stats parameters and values to parameter's values. Also you can use memcache_get_stats() function.

Parameter-Liste

type

The type of statistics to fetch. Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".

slabid

Used in conjunction with type set to cachedump to identify the slab to dump from. The cachedump command ties up the server and is strictly to be used for debugging purposes.

limit

Used in conjunction with type set to cachedump to limit the number of entries to dump.

Rückgabewerte

Returns an associative array of server statisticsIm Fehlerfall wird false zurückgegeben..

Siehe auch

  • Memcache::getVersion() - Return version of the server
  • Memcache::getExtendedStats() - Get statistics from all servers in pool


Return version of the server

  • « Memcache::getStats
  • Memcache::increment »
  • PHP Manual
  • Memcache
  • Return version of the server

Memcache::getVersion

(PECL memcache >= 0.2.0)

Memcache::getVersion — Return version of the server

Beschreibung

Memcache::getVersion ( ) : string|false

Memcache::getVersion() returns a string with server's version number. Also you can use memcache_get_version() function.

Rückgabewerte

Returns a string of server version numberIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Memcache::getVersion() example

<?php

/* OO API */
$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);
echo $memcache->getVersion();

/* procedural API */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_version($memcache);

?>

Siehe auch

  • Memcache::getExtendedStats() - Get statistics from all servers in pool
  • Memcache::getStats() - Get statistics of the server


Increment item's value

  • « Memcache::getVersion
  • Memcache::pconnect »
  • PHP Manual
  • Memcache
  • Increment item's value

Memcache::increment

(PECL memcache >= 0.2.0)

Memcache::increment — Increment item's value

Beschreibung

Memcache::increment ( string $key , int $value = 1 ) : int|false

Memcache::increment() increments value of an item by the specified value. If item specified by key was not numeric and cannot be converted to a number, it will change its value to value. Memcache::increment() does not create an item if it doesn't already exist.

Hinweis:

Do not use Memcache::increment() with items that have been stored compressed because subsequent calls to Memcache::get() will fail.

Also you can use memcache_increment() function.

Parameter-Liste

key

Key of the item to increment.

value

Increment the item by value.

Rückgabewerte

Returns new items value on success Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Memcache::increment() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* increment counter by 2 */
$current_value = memcache_increment($memcache_obj, 'counter', 2);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* increment counter by 3 */
$current_value = $memcache_obj->increment('counter', 3);

?>

Siehe auch

  • Memcache::decrement() - Decrement item's value
  • Memcache::replace() - Replace value of the existing item


Open memcached server persistent connection

  • « Memcache::increment
  • Memcache::replace »
  • PHP Manual
  • Memcache
  • Open memcached server persistent connection

Memcache::pconnect

(PECL memcache >= 0.4.0)

Memcache::pconnect — Open memcached server persistent connection

Beschreibung

Memcache::pconnect ( string $host , int $port = ? , int $timeout = ? ) : mixed

Memcache::pconnect() is similar to Memcache::connect() with the difference, that the connection it establishes is persistent. This connection is not closed after the end of script execution and by Memcache::close() function. Also you can use memcache_pconnect() function.

Parameter-Liste

host

Point to the host where memcached is listening for connections. This parameter may also specify other transports like unix:///path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.

port

Point to the port where memcached is listening for connections. Set this parameter to 0 when using UNIX domain sockets.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

Rückgabewerte

Returns a Memcache objectIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Memcache::pconnect() example

<?php

/* procedural API */
$memcache_obj = memcache_pconnect('memcache_host', 11211);

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->pconnect('memcache_host', 11211);

?>

Siehe auch

  • Memcache::connect() - Open memcached server connection


Replace value of the existing item

  • « Memcache::pconnect
  • Memcache::set »
  • PHP Manual
  • Memcache
  • Replace value of the existing item

Memcache::replace

(PECL memcache >= 0.2.0)

Memcache::replace — Replace value of the existing item

Beschreibung

Memcache::replace ( string $key , mixed $var , int $flag = ? , int $expire = ? ) : bool

Memcache::replace() should be used to replace value of
existing item with key. In case if item with such
key doesn't exists, Memcache::replace() returns
false. For the rest Memcache::replace() behaves
similarly to Memcache::set().
Also you can use memcache_replace() function.

Parameter-Liste

key

The key that will be associated with the item.

var

The variable to store. Strings and integers are stored as is, other types are stored serialized.

flag

Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).

expire

Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Memcache::replace() example

<?php

$memcache_obj = memcache_connect('memcache_host', 11211);

/* procedural API */
memcache_replace($memcache_obj, "test_key", "some variable", false, 30);

/* OO API */
$memcache_obj->replace("test_key", "some variable", false, 30);

?>

Siehe auch

  • Memcache::set() - Store data at the server
  • Memcache::add() - Add an item to the server


Store data at the server

  • « Memcache::replace
  • Memcache::setCompressThreshold »
  • PHP Manual
  • Memcache
  • Store data at the server

Memcache::set

(PECL memcache >= 0.2.0)

Memcache::set — Store data at the server

Beschreibung

Memcache::set ( string $key , mixed $var , int $flag = ? , int $expire = ? ) : bool

Memcache::set() stores an item var with key on the memcached server. Parameter expire is expiration time in seconds. If it's 0, the item never expires (but memcached server doesn't guarantee this item to be stored all the time, it could be deleted from the cache to make place for other items). You can use MEMCACHE_COMPRESSED constant as flag value if you want to use on-the-fly compression (uses zlib).

Hinweis:

Remember that resource variables (i.e. file and connection descriptors) cannot be stored in the cache, because they cannot be adequately represented in serialized state.

Also you can use memcache_set() function.

Parameter-Liste

key

The key that will be associated with the item.

var

The variable to store. Strings and integers are stored as is, other types are stored serialized.

flag

Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).

expire

Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Memcache::set() example

<?php
/* procedural API */

/* connect to memcached server */
$memcache_obj = memcache_connect('memcache_host', 11211);

/*
set value of item with key 'var_key'
using 0 as flag value, compression is not used
expire time is 30 seconds
*/
memcache_set($memcache_obj, 'var_key', 'some variable', 0, 30);

echo memcache_get($memcache_obj, 'var_key');

?>

Beispiel #2 Memcache::set() example

<?php
/* OO API */

$memcache_obj = new Memcache;

/* connect to memcached server */
$memcache_obj->connect('memcache_host', 11211);

/*
set value of item with key 'var_key', using on-the-fly compression
expire time is 50 seconds
*/
$memcache_obj->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 50);

echo $memcache_obj->get('var_key');

?>

Siehe auch

  • Memcache::add() - Add an item to the server
  • Memcache::replace() - Replace value of the existing item


Enable automatic compression of large values

  • « Memcache::set
  • Memcache::setServerParams »
  • PHP Manual
  • Memcache
  • Enable automatic compression of large values

Memcache::setCompressThreshold

(PECL memcache >= 2.0.0)

Memcache::setCompressThreshold — Enable automatic compression of large values

Beschreibung

Memcache::setCompressThreshold ( int $threshold , float $min_savings = ? ) : bool

Memcache::setCompressThreshold() enables automatic compression of large values. You can also use the memcache_set_compress_threshold() function.

Hinweis:

This function has been added to Memcache version 2.0.0.

Parameter-Liste

threshold

Controls the minimum value length before attempting to compress automatically.

min_saving

Specifies the minimum amount of savings to actually store the value compressed. The supplied value must be between 0 and 1. Default value is 0.2 giving a minimum 20% compression savings.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Memcache::setCompressThreshold() example

<?php

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->addServer('memcache_host', 11211);
$memcache_obj->setCompressThreshold(20000, 0.2);

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_compress_threshold($memcache_obj, 20000, 0.2);

?>


Changes server parameters and status at runtime

  • « Memcache::setCompressThreshold
  • Memcache Funktionen »
  • PHP Manual
  • Memcache
  • Changes server parameters and status at runtime

Memcache::setServerParams

(PECL memcache >= 2.1.0)

Memcache::setServerParams — Changes server parameters and status at runtime

Beschreibung

Memcache::setServerParams ( string $host , int $port = 11211 , int $timeout = ? , int $retry_interval = false , bool $status = ? , callable $failure_callback = ? ) : bool

Memcache::setServerParams() changes server parameters at runtime. You can also use the memcache_set_server_params() function.

Hinweis:

This function has been added to Memcache version 2.1.0.

Parameter-Liste

host

Point to the host where memcached is listening for connections.

port

Point to the port where memcached is listening for connections.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

retry_interval

Controls how often a failed server will be retried, the default value is 15 seconds. Setting this parameter to -1 disables automatic retry. Neither this nor the persistent parameter has any effect when the extension is loaded dynamically via dl().

status

Controls if the server should be flagged as online. Setting this parameter to false and retry_interval to -1 allows a failed server to be kept in the pool so as not to affect the key distribution algorithm. Requests for this server will then failover or fail immediately depending on the memcache.allow_failover setting. Default to true, meaning the server should be considered online.

failure_callback

Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted. The function takes two parameters, the hostname and port of the failed server.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Memcache::setServerParams() example

<?php

function _callback_memcache_failure($host, $port) {
    print "memcache '$host:$port' failed";
}

/* OO API */

$memcache = new Memcache;

// Add the server in offline mode
$memcache->addServer('memcache_host', 11211, false, 1, 1, -1, false);

// Bring the server back online
$memcache->setServerParams('memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_server_params($memcache_obj, 'memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

?>

Siehe auch

  • Memcache::addServer() - Add a memcached server to connection pool
  • Memcache::getServerStatus() - Returns server status


  • « Memcache::setServerParams
  • memcache_debug »
  • PHP Manual
  • Memcache
  • Memcache Funktionen

Memcache Funktionen

Inhaltsverzeichnis

  • memcache_debug — Turn debug output on/off


Turn debug output on/off

  • « Memcache Funktionen
  • Memcached »
  • PHP Manual
  • Memcache Funktionen
  • Turn debug output on/off

memcache_debug

(PECL memcache >= 0.2.0)

memcache_debug — Turn debug output on/off

Beschreibung

memcache_debug ( bool $on_off ) : bool

memcache_debug() turns on debug output if parameter on_off is equal to true and turns off if it's false.

Hinweis:

memcache_debug() is accessible only if PHP was built with --enable-debug option and always returns true in this case. Otherwise, this function has no effect and always returns false.

Parameter-Liste

on_off

Turns debug output on if equals to true. Turns debug output off if equals to false.

Rückgabewerte

Returns true if PHP was built with --enable-debug option, otherwise returns false.


Memcached

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Expiration Times
  • Callbacks
    • Result callbacks
    • Read-through cache callbacks
  • Sessions support
  • Memcached — The Memcached class
    • Memcached::add — Add an item under a new key
    • Memcached::addByKey — Add an item under a new key on a specific server
    • Memcached::addServer — Add a server to the server pool
    • Memcached::addServers — Add multiple servers to the server pool
    • Memcached::append — Append data to an existing item
    • Memcached::appendByKey — Append data to an existing item on a specific server
    • Memcached::cas — Compare and swap an item
    • Memcached::casByKey — Compare and swap an item on a specific server
    • Memcached::__construct — Create a Memcached instance
    • Memcached::decrement — Decrement numeric item's value
    • Memcached::decrementByKey — Decrement numeric item's value, stored on a specific server
    • Memcached::delete — Delete an item
    • Memcached::deleteByKey — Delete an item from a specific server
    • Memcached::deleteMulti — Delete multiple items
    • Memcached::deleteMultiByKey — Delete multiple items from a specific server
    • Memcached::fetch — Fetch the next result
    • Memcached::fetchAll — Fetch all the remaining results
    • Memcached::flush — Invalidate all items in the cache
    • Memcached::get — Retrieve an item
    • Memcached::getAllKeys — Gets the keys stored on all the servers
    • Memcached::getByKey — Retrieve an item from a specific server
    • Memcached::getDelayed — Request multiple items
    • Memcached::getDelayedByKey — Request multiple items from a specific server
    • Memcached::getMulti — Retrieve multiple items
    • Memcached::getMultiByKey — Retrieve multiple items from a specific server
    • Memcached::getOption — Retrieve a Memcached option value
    • Memcached::getResultCode — Return the result code of the last operation
    • Memcached::getResultMessage — Return the message describing the result of the last operation
    • Memcached::getServerByKey — Map a key to a server
    • Memcached::getServerList — Get the list of the servers in the pool
    • Memcached::getStats — Get server pool statistics
    • Memcached::getVersion — Get server pool version info
    • Memcached::increment — Increment numeric item's value
    • Memcached::incrementByKey — Increment numeric item's value, stored on a specific server
    • Memcached::isPersistent — Check if a persitent connection to memcache is being used
    • Memcached::isPristine — Check if the instance was recently created
    • Memcached::prepend — Prepend data to an existing item
    • Memcached::prependByKey — Prepend data to an existing item on a specific server
    • Memcached::quit — Close any open connections
    • Memcached::replace — Replace the item under an existing key
    • Memcached::replaceByKey — Replace the item under an existing key on a specific server
    • Memcached::resetServerList — Clears all servers from the server list
    • Memcached::set — Store an item
    • Memcached::setByKey — Store an item on a specific server
    • Memcached::setMulti — Store multiple items
    • Memcached::setMultiByKey — Store multiple items on a specific server
    • Memcached::setOption — Set a Memcached option
    • Memcached::setOptions — Set Memcached options
    • Memcached::setSaslAuthData — Set the credentials to use for authentication
    • Memcached::touch — Set a new expiration on an item
    • Memcached::touchByKey — Set a new expiration on an item on a specific server
  • MemcachedException — The MemcachedException class


Einführung

» memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

This extension uses the libmemcached library to provide an API for communicating with memcached servers. It also provides a session handler (memcached).

Information about libmemcached can be found at » http://libmemcached.org/libMemcached.html.


Anforderungen

This extension requires » libmemcached client library (version 1.0.0 or greater). For SASL authentication support, libmemcached must be built with SASL enabled.

Since version 0.2.0, this extension requires PHP version 5.2.0 or higher.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/memcached.

If libmemcached is installed in a non-standard location, use --with-libmemcached-dir=DIR switch, where DIR is the libmemcached install prefix. This directory has to contain the include/libmemcached/memcached.h file.

Zlib is required for compression support. To specify non-standard installation of Zlib, use --with-zlib-dir=DIR switch, where DIR is the Zlib install prefix.

Session handler support is enabled by default. To disable it, use --disable-memcached-session switch.

SASL authentication support is disabled by default. To enable it, use --enable-memcached-sasl switch. This requires that libsasl2 has been installed and that libmemcached has been built with SASL support enabled.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Memcached Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
memcached.sess_locking | On | PHP_INI_ALL | Available as of memcached 0.1.0.
memcached.sess_consistent_hash | On | PHP_INI_ALL | Available as of memcached 2.1.0. Default value is On as of memcached 3.0.0.
memcached.sess_binary | Off | PHP_INI_ALL | Available as of memcached 2.0.0. Replaced by memcached.sess_binary_protocol as of memcached 3.0.0.
memcached.sess_lock_wait | 150000 | PHP_INI_ALL | Available as of memcached 0.1.0. Removed as of memcached 3.0.0.
memcached.sess_prefix | memc.sess.key. | PHP_INI_ALL | Available as of memcached 0.1.0.
memcached.sess_number_of_replicas | 0 | PHP_INI_ALL | Available as of memcached 2.1.0.
memcached.sess_randomize_replica_read | Off | PHP_INI_ALL | Available as of memcached 2.1.0.
memcached.sess_remove_failed | On | PHP_INI_ALL | Available as of memcached 2.1.0. Replaced by memcached.sess_remove_failed_servers as of memcached 3.0.0.
memcached.compression_type | fastlz | PHP_INI_ALL | Available as of memcached 0.1.0.
memcached.compression_factor | 1.3 | PHP_INI_ALL | Available as of memcached 0.1.0.
memcached.compression_threshold | 2000 | PHP_INI_ALL | Available as of memcached 0.1.0.
memcached.serializer | igbinary | PHP_INI_ALL | Available as of memcached 0.1.0.
memcached.use_sasl | Off | PHP_INI_ALL | Available as of memcached 2.2.0. Removed as of memcached 3.0.0.
memcached.default_binary_protocol | Off | PHP_INI_ALL | Available as of memcached 3.0.0.
memcached.default_connect_timeout | 0 | PHP_INI_ALL | Available as of memcached 3.0.0.
memcached.default_consistent_hash | Off | PHP_INI_ALL | Available as of memcached 3.0.0.
memcached.sess_binary_protocol | On | PHP_INI_ALL | Available as of memcached 3.0.0. Replace memcached.sess_binary.
memcached.sess_connect_timeout | 1000 | PHP_INI_ALL | Available as of memcached 2.2.0.
memcached.sess_consistent_hash_type | ketama | PHP_INI_ALL | Available as of memcached 3.1.0.
memcached.sess_lock_expire | 0 | PHP_INI_ALL | Available as of memcached 2.2.0.
memcached.sess_lock_retries | 5 | PHP_INI_ALL | Available as of memcached 3.0.0.
memcached.sess_lock_wait_max | 150 | PHP_INI_ALL | Available as of memcached 3.0.0. Default value 150 as of memcached 3.1.0 (previously 2000).
memcached.sess_lock_wait_min | 150 | PHP_INI_ALL | Available as of memcached 3.0.0. Default value 150 as of memcached 3.1.0 (previously 1000).
memcached.sess_persistent | Off | PHP_INI_ALL | Available as of memcached 3.0.0.
memcached.sess_remove_failed_servers | Off | PHP_INI_ALL | Available as of memcached 3.0.0. Replace memcached.sess_remove_failed.
memcached.sess_server_failure_limit | 0 | PHP_INI_ALL | Available as of memcached 3.0.0.
memcached.sess_sasl_password | null | PHP_INI_ALL | Available as of memcached 2.2.0.
memcached.sess_sasl_username | null | PHP_INI_ALL | Available as of memcached 2.2.0.
memcached.store_retry_count | 2 | PHP_INI_ALL | Available as of memcached 2.2.0.

Hier eine kurze Erklärung der Konfigurationsoptionen:

memcached.sess_locking bool

Use session locking. Valid values: On, Off, the default is On.

memcached.sess_consistent_hash bool

If set to On, consistent hashing (libketama) is used for session handling. When consistent hashing is used, one can add or remove cache node(s) without messing up too much with existing keys. Default is On.

memcached.sess_binary bool

Use memcached session binary mode. Libmemcached replicas only work if binary mode is enabled. The default is Off.

memcached.sess_lock_wait int

Session spin lock retry wait time in microseconds. Be careful when setting this value. Valid values are integers, where 0 is interpreted as the default value. Negative values result in a reduces locking to a try lock. The default is 150000.

memcached.sess_prefix string

Memcached session key prefix. Valid values are strings less than 219 bytes long. The default value is "memc.sess.key."

memcached.sess_number_of_replicas int

Write data to a number of additional memcached servers. This is "poor man's HA" as libmemcached calls it. If this value is positive and sess_remove_failed_servers is enabled when a memcached server fails the session will continue to be available from a replica. However, if the failed memcache server becomes available again it will read the session from there which could have old data or no data at all. Default is 0.

memcached.sess_randomize_replica_read bool

Memcached session replica read randomize.

memcached.sess_remove_failed int

Allow failed memcached server to automatically be removed.

memcached.compression_type string

Set the compression type, valid values are: fastlz, zlib. The default is fastlz.

memcached.compression_factor float

Compression factor. Store compressed value only if the compression factor (saving) exceeds the set limit. Store compressed if: plain_len > comp_len * factor. The default value is 1.3 (23% space saving).

memcached.compression_threshold int

The compression threshold. Do not compress serialized values below this threshold. The default is 2000 bytes.

memcached.serializer string

Set the default serializer for new memcached objects. Valid values are: php, igbinary, json, json_array, msgpack.

json

Standard php JSON encoding. This serializer is fast and compact but only works on UTF-8 encoded data and does not fully implement serializing. See the JSON extension. Available as of memcached 0.2.0.

json_array

As json, but decodes into arrays. Available as of memcached 2.0.0.

php

The standard PHP serializer.

igbinary

A binary serializer. Available as of memcached 0.1.4.

msgpack

A cross-language binary serializer. Available as of memcached 2.2.0.

The default is igbinary if available, then msgpack if available, then php otherwise.

memcached.use_sasl bool

Use SASL authentication for connections. Valid values: On, Off. The default is Off.

memcached.default_binary_protocol bool

Sets the default memcached protocol for new connections. (To configure the memcached protocol for connections used by sessions, use memcached.sess_binary_protocol instead) If set to On, the memcached binary protocol is used by default. If set to Off, the memcached text protocol is used. Default is Off

memcached.default_connect_timeout int

Sets the default memcached connection timeout for new connections. (To configure the memcached connection timeout for sessions, use memcached.sess_connect_timeout instead) In non-blocking mode this changes the value of the timeout. during socket connection in milliseconds. Specifying -1 means an infinite timeout. Specifying 0 means using the memcached library's default connection timeout. Default is 0.

memcached.default_consistent_hash bool

Sets the default for consistent hashing for new connections. (To configure consistent hashing for session connections, use memcached.sess_consistent_hash instead) If set to On, consistent hashing (libketama) is used for session handling. When consistent hashing is used, one can add or remove cache node(s) without messing up too much with existing keys default is Off

memcached.sess_binary_protocol bool

Use the memcached binary protocol for memcached sessions (Instead of the text protocol) libmemcached replicas work only if binary mode is enabled. However, certain proxies (such as twemproxy) will work only if the binary protocol is disabled. In older versions of php-memcached, this setting was Off and was called memcached.sess_binary. Default is On with libmemcached 1.0.18 or newer. Default is Off with older version.

memcached.sess_connect_timeout int

memcached connect timeout value In non-blocking mode this changes the value of the timeout during socket connection in milliseconds. Specifying -1 means an infinite timeout.

memcached.sess_consistent_hash_type string

Memcached session consistent hash type. If set to 'ketama', consistent hashing (libketama) is used for session handling (default for php-memcached 3.x) if set to 'ketama_weighted', weighted consistent hashing (libketama) is used for session handling (default for php-memcached 2.x). Default is "ketama".

memcached.sess_lock_expire int

The time, in seconds, before a lock should release itself. Setting to 0 results in the default behaviour, which is to use PHP's max_execution_time. Default is 0.

memcached.sess_lock_retries int

The number of times to retry locking the session lock, not including the first attempt. Default is 5.

memcached.sess_lock_wait_max int

The maximum time, in milliseconds, to wait between session lock attempts. The default is 150.

memcached.sess_lock_wait_min int

The minimum time, in milliseconds, to wait between session lock attempts. This value is double on each lock retry until memcached.sess_lock_wait_max is reached, after which any further retries will take sess_lock_wait_max seconds. The default is 150.

memcached.sess_persistent bool

Whether or not to re-use the memcached connections corresponding to the value(s) of session.save_path after the execution of the script ends. Don't use this if certain settings (e.g. SASL settings, sess_binary_protocol) would be overridden between requests. Default is Off.

memcached.sess_remove_failed_servers bool

Allow failed memcached server to automatically be removed. Default is Off. (In previous versions, this setting was called memcached.sess_remove_failed)

memcached.sess_server_failure_limit int

Set this value to enable the server be removed after configured number of continuous times connection failure. Default is 0.

memcached.sess_sasl_password string

Session SASL password Both username and password need to be set for SASL to be enabled

memcached.sess_sasl_username string

Session SASL username Both username and password need to be set for SASL to be enabled

memcached.store_retry_count int

The amount of retries for failed store commands. This mechanism allows transparent fail-over to secondary servers when set/increment/decrement/setMulti operations fail on the desired server in a multi-server environment. the default is 2


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Memcached::OPT_COMPRESSION

Enables or disables payload compression. When enabled, item values longer than a certain threshold (currently 100 bytes) will be compressed during storage and decompressed during retrieval transparently.

Type: boolean, default: true.

Memcached::OPT_SERIALIZER

Specifies the serializer to use for serializing non-scalar values. The valid serializers are Memcached::SERIALIZER_PHP or Memcached::SERIALIZER_IGBINARY. The latter is supported only when memcached is configured with --enable-memcached-igbinary option and the igbinary extension is loaded.

Type: integer, default: Memcached::SERIALIZER_PHP.

Memcached::SERIALIZER_PHP

The default PHP serializer.

Memcached::SERIALIZER_IGBINARY

The » igbinary serializer. Instead of textual representation it stores PHP data structures in a compact binary form, resulting in space and time gains.

Memcached::SERIALIZER_JSON

The JSON serializer. Requires PHP 5.2.10+.

Memcached::OPT_PREFIX_KEY

This can be used to create a "domain" for your item keys. The value specified here will be prefixed to each of the keys. It cannot be longer than 128 characters and will reduce the maximum available key size. The prefix is applied only to the item keys, not to the server keys.

Type: string, default: "".

Memcached::OPT_HASH

Specifies the hashing algorithm used for the item keys. The valid values are supplied via Memcached::HASH_* constants. Each hash algorithm has its advantages and its disadvantages. Go with the default if you don't know or don't care.

Type: integer, default: Memcached::HASH_DEFAULT

Memcached::HASH_DEFAULT

The default (Jenkins one-at-a-time) item key hashing algorithm.

Memcached::HASH_MD5

MD5 item key hashing algorithm.

Memcached::HASH_CRC

CRC item key hashing algorithm.

Memcached::HASH_FNV1_64

FNV1_64 item key hashing algorithm.

Memcached::HASH_FNV1A_64

FNV1_64A item key hashing algorithm.

Memcached::HASH_FNV1_32

FNV1_32 item key hashing algorithm.

Memcached::HASH_FNV1A_32

FNV1_32A item key hashing algorithm.

Memcached::HASH_HSIEH

Hsieh item key hashing algorithm.

Memcached::HASH_MURMUR

Murmur item key hashing algorithm.

Memcached::OPT_DISTRIBUTION

Specifies the method of distributing item keys to the servers. Currently supported methods are modulo and consistent hashing. Consistent hashing delivers better distribution and allows servers to be added to the cluster with minimal cache losses.

Type: integer, default: Memcached::DISTRIBUTION_MODULA.

Memcached::DISTRIBUTION_MODULA

Modulo-based key distribution algorithm.

Memcached::DISTRIBUTION_CONSISTENT

Consistent hashing key distribution algorithm (based on libketama).

Memcached::OPT_LIBKETAMA_COMPATIBLE

Enables or disables compatibility with libketama-like behavior. When enabled, the item key hashing algorithm is set to MD5 and distribution is set to be weighted consistent hashing distribution. This is useful because other libketama-based clients (Python, Ruby, etc.) with the same server configuration will be able to access the keys transparently.

Hinweis:

It is highly recommended to enable this option if you want to use consistent hashing, and it may be enabled by default in future releases.

Type: boolean, default: false.

Memcached::OPT_BUFFER_WRITES

Enables or disables buffered I/O. Enabling buffered I/O causes storage commands to "buffer" instead of being sent. Any action that retrieves data causes this buffer to be sent to the remote connection. Quitting the connection or closing down the connection will also cause the buffered data to be pushed to the remote connection.

Type: boolean, default: false.

Memcached::OPT_BINARY_PROTOCOL

Enable the use of the binary protocol. Please note that you cannot toggle this option on an open connection.

Type: boolean, default: false.

Memcached::OPT_NO_BLOCK

Enables or disables asynchronous I/O. This is the fastest transport available for storage functions.

Type: boolean, default: false.

Memcached::OPT_TCP_NODELAY

Enables or disables the no-delay feature for connecting sockets (may be faster in some environments).

Type: boolean, default: false.

Memcached::OPT_SOCKET_SEND_SIZE

The maximum socket send buffer in bytes.

Type: integer, default: varies by platform/kernel configuration.

Memcached::OPT_SOCKET_RECV_SIZE

The maximum socket receive buffer in bytes.

Type: integer, default: varies by platform/kernel configuration.

Memcached::OPT_CONNECT_TIMEOUT

In non-blocking mode this set the value of the timeout during socket connection, in milliseconds.

Type: integer, default: 1000.

Memcached::OPT_RETRY_TIMEOUT

The amount of time, in seconds, to wait until retrying a failed connection attempt.

Type: integer, default: 0.

Memcached::OPT_SEND_TIMEOUT

Socket sending timeout, in microseconds. In cases where you cannot use non-blocking I/O this will allow you to still have timeouts on the sending of data.

Type: integer, default: 0.

Memcached::OPT_RECV_TIMEOUT

Socket reading timeout, in microseconds. In cases where you cannot use non-blocking I/O this will allow you to still have timeouts on the reading of data.

Type: integer, default: 0.

Memcached::OPT_POLL_TIMEOUT

Timeout for connection polling, in milliseconds.

Type: integer, default: 1000.

Memcached::OPT_CACHE_LOOKUPS

Enables or disables caching of DNS lookups.

Type: boolean, default: false.

Memcached::OPT_SERVER_FAILURE_LIMIT

Specifies the failure limit for server connection attempts. The server will be removed after this many continuous connection failures.

Type: integer, default: 0.

Memcached::HAVE_IGBINARY

Indicates whether igbinary serializer support is available.

Type: boolean.

Memcached::HAVE_JSON

Indicates whether JSON serializer support is available.

Type: boolean.

Memcached::HAVE_MSGPACK

Indicates whether msgpack serializer support is available.

Type: boolean.

Available as of Memcached 3.0.0.

Memcached::HAVE_SESSION

Type: boolean.

Available as of Memcached 3.0.0.

Memcached::HAVE_SASL

Type: boolean.

Available as of Memcached 3.0.0.

Memcached::GET_EXTENDED

A flag for Memcached::get(), Memcached::getMulti() and Memcached::getMultiByKey() to ensure that the CAS token values are returned as well.

Available as of Memcached 3.0.0.

Memcached::GET_PRESERVE_ORDER

A flag for Memcached::getMulti() and Memcached::getMultiByKey() to ensure that the keys are returned in the same order as they were requested in. Non-existing keys get a default value of NULL.

Memcached::RES_SUCCESS

The operation was successful.

Memcached::RES_FAILURE

The operation failed in some fashion.

Memcached::RES_HOST_LOOKUP_FAILURE

DNS lookup failed.

Memcached::RES_UNKNOWN_READ_FAILURE

Failed to read network data.

Memcached::RES_PROTOCOL_ERROR

Bad command in memcached protocol.

Memcached::RES_CLIENT_ERROR

Error on the client side.

Memcached::RES_SERVER_ERROR

Error on the server side.

Memcached::RES_WRITE_FAILURE

Failed to write network data.

Memcached::RES_DATA_EXISTS

Failed to do compare-and-swap: item you are trying to store has been modified since you last fetched it.

Memcached::RES_NOTSTORED

Item was not stored: but not because of an error. This normally means that either the condition for an "add" or a "replace" command wasn't met, or that the item is in a delete queue.

Memcached::RES_NOTFOUND

Item with this key was not found (with "get" operation or "cas" operations).

Memcached::RES_PARTIAL_READ

Partial network data read error.

Memcached::RES_SOME_ERRORS

Some errors occurred during multi-get.

Memcached::RES_NO_SERVERS

Server list is empty.

Memcached::RES_END

End of result set.

Memcached::RES_ERRNO

System error.

Memcached::RES_BUFFERED

The operation was buffered.

Memcached::RES_TIMEOUT

The operation timed out.

Memcached::RES_BAD_KEY_PROVIDED

Bad key.

Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE

Failed to create network socket.

Memcached::RES_PAYLOAD_FAILURE

Payload failure: could not compress/decompress or serialize/unserialize the value.

Memcached::RES_AUTH_PROBLEM

Available as of Memcached 3.0.0.

Memcached::RES_AUTH_FAILURE

Available as of Memcached 3.0.0.

Memcached::RES_AUTH_CONTINUE

Available as of Memcached 3.0.0.

Memcached::RES_E2BIG

Available as of Memcached 3.0.0.

Memcached::RES_KEY_TOO_BIG

Available as of Memcached 3.0.0.

Memcached::RES_SERVER_TEMPORARILY_DISABLED

Available as of Memcached 3.0.0.

Memcached::RES_SERVER_MEMORY_ALLOCATION_FAILURE

Available as of Memcached 3.0.0.


Expiration Times

Some storage commands involve sending an expiration value (relative to an item or to an operation requested by the client) to the server. In all such cases, the actual value sent may either be Unix time (number of seconds since January 1, 1970, as an integer), or a number of seconds starting from current time. In the latter case, this number of seconds may not exceed 60*60*24*30 (number of seconds in 30 days); if the expiration value is larger than that, the server will consider it to be real Unix time value rather than an offset from current time.

If the expiration value is 0 (the default), the item never expires (although it may be deleted from the server to make place for other items).


  • « Expiration Times
  • Result callbacks »
  • PHP Manual
  • Memcached
  • Callbacks

Callbacks

Inhaltsverzeichnis

  • Result callbacks
  • Read-through cache callbacks


Result callbacks

Result callables are invoked by Memcached::getDelayed() or Memcached::getDelayedBykey() methods for each item in the result set. The callback is passed the Memcached object and the array with the item information. The callback does not have to return anything.

Beispiel #1 Result callback example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items);
$m->getDelayed(array('key1', 'key3'), true, 'result_cb');

function result_cb($memc, $item)
{
    var_dump($item);
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  ["key"]=>
  string(4) "key1"
  ["value"]=>
  string(6) "value1"
  ["cas"]=>
  float(49)
}
array(3) {
  ["key"]=>
  string(4) "key3"
  ["value"]=>
  string(6) "value3"
  ["cas"]=>
  float(50)
}


Read-through cache callbacks

Read-through cache callbacks are invoked when an item cannot be retrieved from the server. The callback is passed the Memcached object, the requested key, and the by-reference value variable. The callback is responsible for setting the value and returning true or false. If the callback returns true, Memcached will store the populated value on the server and return it to the original calling function. Only Memcached::get() and Memcached::getByKey() support these callbacks, because the memcache protocol does not provide information on which keys were not found in the multi-key request.

Beispiel #1 Read-through callback example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$profile_info = $m->get('user:'.$user_id, 'user_info_cb');

function user_info_cb($memc, $key, &$value)
{
    $user_id = substr($key, 5);
    /* lookup profile info in the DB */
    /* ... */
    $value = $profile_info;
    return true;
}
?>


Sessions support

Memcached provides a custom session handler that can be used to store user sessions in memcache. A completely separate memcached instance is used for that internally, so you can use a different server pool if necessary. The session keys are stored under the prefix memc.sess.key., so be aware of this if you use the same server pool for sessions and generic caching.

session.save_handler string

Set to memcached to enable sessions support.

session.save_path string

Defines a comma separated of hostname:port entries to use for session server pool, for example "sess1:11211, sess2:11211".


The Memcached class

(PECL memcached >= 0.1.0)

Einführung

Represents a connection to a set of memcached servers.

Klassenbeschreibung

Memcached {
public __construct ( string $persistent_id = ? )
public add ( string $key , mixed $value , int $expiration = ? ) : bool
public addByKey ( string $server_key , string $key , mixed $value , int $expiration = ? ) : bool
public addServer ( string $host , int $port , int $weight = 0 ) : bool
public addServers ( array $servers ) : bool
public append ( string $key , string $value ) : bool
public appendByKey ( string $server_key , string $key , string $value ) : bool
public cas ( float $cas_token , string $key , mixed $value , int $expiration = ? ) : bool
public casByKey ( float $cas_token , string $server_key , string $key , mixed $value , int $expiration = ? ) : bool
public decrement ( string $key , int $offset = 1 , int $initial_value = 0 , int $expiry = 0 ) : int|false
public decrementByKey ( string $server_key , string $key , int $offset = 1 , int $initial_value = 0 , int $expiry = 0 ) : int|false
public delete ( string $key , int $time = 0 ) : bool
public deleteByKey ( string $server_key , string $key , int $time = 0 ) : bool
public deleteMulti ( array $keys , int $time = 0 ) : array
public deleteMultiByKey ( string $server_key , array $keys , int $time = 0 ) : bool
public fetch ( ) : array
public fetchAll ( ) : array|false
public flush ( int $delay = 0 ) : bool
public get ( string $key , callable $cache_cb = ? , int $$flags = ? ) : mixed
public getAllKeys ( ) : array|false
public getByKey ( string $server_key , string $key , callable $cache_cb = ? , int $flags = ? ) : mixed
public getDelayed ( array $keys , bool $with_cas = ? , callable $value_cb = ? ) : bool
public getDelayedByKey ( string $server_key , array $keys , bool $with_cas = ? , callable $value_cb = ? ) : bool
public getMulti ( array $keys , int $flags = ? ) : mixed
public getMultiByKey ( string $server_key , array $keys , int $flags = ? ) : array|false
public getOption ( int $option ) : mixed
public getResultCode ( ) : int
public getResultMessage ( ) : string
public getServerByKey ( string $server_key ) : array
public getServerList ( ) : array
public getStats ( ) : array|false
public getVersion ( ) : array
public increment ( string $key , int $offset = 1 , int $initial_value = 0 , int $expiry = 0 ) : int|false
public incrementByKey ( string $server_key , string $key , int $offset = 1 , int $initial_value = 0 , int $expiry = 0 ) : int|false
public isPersistent ( ) : bool
public isPristine ( ) : bool
public prepend ( string $key , string $value ) : bool
public prependByKey ( string $server_key , string $key , string $value ) : bool
public quit ( ) : bool
public replace ( string $key , mixed $value , int $expiration = ? ) : bool
public replaceByKey ( string $server_key , string $key , mixed $value , int $expiration = ? ) : bool
public resetServerList ( ) : bool
public set ( string $key , mixed $value , int $expiration = ? ) : bool
public setByKey ( string $server_key , string $key , mixed $value , int $expiration = ? ) : bool
public setMulti ( array $items , int $expiration = ? ) : bool
public setMultiByKey ( string $server_key , array $items , int $expiration = ? ) : bool
public setOption ( int $option , mixed $value ) : bool
public setOptions ( array $options ) : bool
public setSaslAuthData ( string $username , string $password ) : void
public touch ( string $key , int $expiration ) : bool
public touchByKey ( string $server_key , string $key , int $expiration ) : bool
}

Inhaltsverzeichnis

  • Memcached::add — Add an item under a new key
  • Memcached::addByKey — Add an item under a new key on a specific server
  • Memcached::addServer — Add a server to the server pool
  • Memcached::addServers — Add multiple servers to the server pool
  • Memcached::append — Append data to an existing item
  • Memcached::appendByKey — Append data to an existing item on a specific server
  • Memcached::cas — Compare and swap an item
  • Memcached::casByKey — Compare and swap an item on a specific server
  • Memcached::__construct — Create a Memcached instance
  • Memcached::decrement — Decrement numeric item's value
  • Memcached::decrementByKey — Decrement numeric item's value, stored on a specific server
  • Memcached::delete — Delete an item
  • Memcached::deleteByKey — Delete an item from a specific server
  • Memcached::deleteMulti — Delete multiple items
  • Memcached::deleteMultiByKey — Delete multiple items from a specific server
  • Memcached::fetch — Fetch the next result
  • Memcached::fetchAll — Fetch all the remaining results
  • Memcached::flush — Invalidate all items in the cache
  • Memcached::get — Retrieve an item
  • Memcached::getAllKeys — Gets the keys stored on all the servers
  • Memcached::getByKey — Retrieve an item from a specific server
  • Memcached::getDelayed — Request multiple items
  • Memcached::getDelayedByKey — Request multiple items from a specific server
  • Memcached::getMulti — Retrieve multiple items
  • Memcached::getMultiByKey — Retrieve multiple items from a specific server
  • Memcached::getOption — Retrieve a Memcached option value
  • Memcached::getResultCode — Return the result code of the last operation
  • Memcached::getResultMessage — Return the message describing the result of the last operation
  • Memcached::getServerByKey — Map a key to a server
  • Memcached::getServerList — Get the list of the servers in the pool
  • Memcached::getStats — Get server pool statistics
  • Memcached::getVersion — Get server pool version info
  • Memcached::increment — Increment numeric item's value
  • Memcached::incrementByKey — Increment numeric item's value, stored on a specific server
  • Memcached::isPersistent — Check if a persitent connection to memcache is being used
  • Memcached::isPristine — Check if the instance was recently created
  • Memcached::prepend — Prepend data to an existing item
  • Memcached::prependByKey — Prepend data to an existing item on a specific server
  • Memcached::quit — Close any open connections
  • Memcached::replace — Replace the item under an existing key
  • Memcached::replaceByKey — Replace the item under an existing key on a specific server
  • Memcached::resetServerList — Clears all servers from the server list
  • Memcached::set — Store an item
  • Memcached::setByKey — Store an item on a specific server
  • Memcached::setMulti — Store multiple items
  • Memcached::setMultiByKey — Store multiple items on a specific server
  • Memcached::setOption — Set a Memcached option
  • Memcached::setOptions — Set Memcached options
  • Memcached::setSaslAuthData — Set the credentials to use for authentication
  • Memcached::touch — Set a new expiration on an item
  • Memcached::touchByKey — Set a new expiration on an item on a specific server


Add an item under a new key

  • « Memcached
  • Memcached::addByKey »
  • PHP Manual
  • Memcached
  • Add an item under a new key

Memcached::add

(PECL memcached >= 0.1.0)

Memcached::add — Add an item under a new key

Beschreibung

public Memcached::add ( string $key , mixed $value , int $expiration = ? ) : bool

Memcached::add() is similar to Memcached::set(), but the operation fails if the key already exists on the server.

Parameter-Liste

key

Der Schlüssel, unter dem der Wert abgelegt werden soll.

value

Der zu speichernde Wert.

expiration

Die Verfallszeit, Vorgabewert ist 0. Siehe Verfallszeiten für weiterführende Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_NOTSTORED if the key already exists.

Siehe auch

  • Memcached::addByKey() - Add an item under a new key on a specific server
  • Memcached::set() - Store an item
  • Memcached::replace() - Replace the item under an existing key


Add an item under a new key on a specific server

  • « Memcached::add
  • Memcached::addServer »
  • PHP Manual
  • Memcached
  • Add an item under a new key on a specific server

Memcached::addByKey

(PECL memcached >= 0.1.0)

Memcached::addByKey — Add an item under a new key on a specific server

Beschreibung

public Memcached::addByKey ( string $server_key , string $key , mixed $value , int $expiration = ? ) : bool

Memcached::addByKey() is functionally equivalent to Memcached::add(), except that the free-form server_key can be used to map the key to a specific server. This is useful if you need to keep a bunch of related keys on a certain server.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

key

Der Schlüssel, unter dem der Wert abgelegt werden soll.

value

Der zu speichernde Wert.

expiration

Die Verfallszeit, Vorgabewert ist 0. Siehe Verfallszeiten für weiterführende Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_NOTSTORED if the key already exists.

Siehe auch

  • Memcached::add() - Add an item under a new key
  • Memcached::set() - Store an item
  • Memcached::replace() - Replace the item under an existing key


Add a server to the server pool

  • « Memcached::addByKey
  • Memcached::addServers »
  • PHP Manual
  • Memcached
  • Add a server to the server pool

Memcached::addServer

(PECL memcached >= 0.1.0)

Memcached::addServer — Add a server to the server pool

Beschreibung

public Memcached::addServer ( string $host , int $port , int $weight = 0 ) : bool

Memcached::addServer() adds the specified server to the server pool. No connection is established to the server at this time, but if you are using consistent key distribution option (via Memcached::DISTRIBUTION_CONSISTENT or Memcached::OPT_LIBKETAMA_COMPATIBLE), some of the internal data structures will have to be updated. Thus, if you need to add multiple servers, it is better to use Memcached::addServers() as the update then happens only once.

The same server may appear multiple times in the server pool, because no duplication checks are made. This is not advisable; instead, use the weight option to increase the selection weighting of this server.

Parameter-Liste

host

The hostname of the memcache server. If the hostname is invalid, data-related operations will set Memcached::RES_HOST_LOOKUP_FAILURE result code. As of version 2.0.0b1, this parameter may also specify the path of a unix socket filepath ex. /path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.

port

The port on which memcache is running. Usually, this is 11211. As of version 2.0.0b1, set this parameter to 0 when using UNIX domain sockets.

weight

The weight of the server relative to the total weight of all the servers in the pool. This controls the probability of the server being selected for operations. This is used only with consistent distribution option and usually corresponds to the amount of memory available to memcache on that server.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Memcached::addServer() example

<?php
$m = new Memcached();

/* Add 2 servers, so that the second one
   is twice as likely to be selected. */
$m->addServer('mem1.domain.com', 11211, 33);
$m->addServer('mem2.domain.com', 11211, 67);
?>

Siehe auch

  • Memcached::addServers() - Add multiple servers to the server pool
  • Memcached::resetServerList() - Clears all servers from the server list


Add multiple servers to the server pool

  • « Memcached::addServer
  • Memcached::append »
  • PHP Manual
  • Memcached
  • Add multiple servers to the server pool

Memcached::addServers

(PECL memcached >= 0.1.1)

Memcached::addServers — Add multiple servers to the server pool

Beschreibung

public Memcached::addServers ( array $servers ) : bool

Memcached::addServers() adds servers to the server pool. Each entry in servers is supposed to be an array containing hostname, port, and, optionally, weight of the server. No connection is established to the servers at this time.

The same server may appear multiple times in the server pool, because no duplication checks are made. This is not advisable; instead, use the weight option to increase the selection weighting of this server.

Parameter-Liste

array

Array of the servers to add to the pool.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Memcached::addServers() example

<?php
$m = new Memcached();

$servers = array(
    array('mem1.domain.com', 11211, 33),
    array('mem2.domain.com', 11211, 67)
);
$m->addServers($servers);
?>

Siehe auch

  • Memcached::addServer() - Add a server to the server pool
  • Memcached::resetServerList() - Clears all servers from the server list


Append data to an existing item

  • « Memcached::addServers
  • Memcached::appendByKey »
  • PHP Manual
  • Memcached
  • Append data to an existing item

Memcached::append

(PECL memcached >= 0.1.0)

Memcached::append — Append data to an existing item

Beschreibung

public Memcached::append ( string $key , string $value ) : bool

Memcached::append() appends the given value string to the value of an existing item. The reason that value is forced to be a string is that appending mixed types is not well-defined.

Hinweis:

If the Memcached::OPT_COMPRESSION is enabled, the operation will fail and a warning will be issued, because appending compressed data to a value that is potentially already compressed is not possible.

Parameter-Liste

key

Der Schlüssel, unter dem der Wert abgelegt werden soll.

value

The string to append.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_NOTSTORED if the key does not exist.

Beispiele

Beispiel #1 Memcached::append() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);

$m->set('foo', 'abc');
$m->append('foo', 'def');
var_dump($m->get('foo'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(6) "abcdef"

Siehe auch

  • Memcached::appendByKey() - Append data to an existing item on a specific server
  • Memcached::prepend() - Prepend data to an existing item


Append data to an existing item on a specific server

  • « Memcached::append
  • Memcached::cas »
  • PHP Manual
  • Memcached
  • Append data to an existing item on a specific server

Memcached::appendByKey

(PECL memcached >= 0.1.0)

Memcached::appendByKey — Append data to an existing item on a specific server

Beschreibung

public Memcached::appendByKey ( string $server_key , string $key , string $value ) : bool

Memcached::appendByKey() is functionally equivalent to Memcached::append(), except that the free-form server_key can be used to map the key to a specific server.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

key

Der Schlüssel, unter dem der Wert abgelegt werden soll.

value

The string to append.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_NOTSTORED if the key does not exist.

Siehe auch

  • Memcached::append() - Append data to an existing item
  • Memcached::prepend() - Prepend data to an existing item


Compare and swap an item

  • « Memcached::appendByKey
  • Memcached::casByKey »
  • PHP Manual
  • Memcached
  • Compare and swap an item

Memcached::cas

(PECL memcached >= 0.1.0)

Memcached::cas — Compare and swap an item

Beschreibung

public Memcached::cas ( float $cas_token , string $key , mixed $value , int $expiration = ? ) : bool

Memcached::cas() performs a "check and set" operation, so that the item will be stored only if no other client has updated it since it was last fetched by this client. The check is done via the cas_token parameter which is a unique 64-bit value assigned to the existing item by memcache. See the documentation for Memcached::get*() methods for how to obtain this token. Note that the token is represented as a double due to the limitations of PHP's integer space.

Parameter-Liste

cas_token

Unique value associated with the existing item. Generated by memcache.

key

Der Schlüssel, unter dem der Wert abgelegt werden soll.

value

Der zu speichernde Wert.

expiration

Die Verfallszeit, Vorgabewert ist 0. Siehe Verfallszeiten für weiterführende Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_DATA_EXISTS if the item you are trying to store has been modified since you last fetched it.

Beispiele

Beispiel #1 Memcached::cas() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

do {
    /* fetch IP list and its token */
    $ips = $m->get('ip_block', null, $cas);
    /* if list doesn't exist yet, create it and do
       an atomic add which will fail if someone else already added it */
    if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
        $ips = array($_SERVER['REMOTE_ADDR']);
        $m->add('ip_block', $ips);
    /* otherwise, add IP to the list and store via compare-and-swap
       with the token, which will fail if someone else updated the list */
    } else {
        $ips[] = $_SERVER['REMOTE_ADDR'];
        $m->cas($cas, 'ip_block', $ips);
    }
} while ($m->getResultCode() != Memcached::RES_SUCCESS);

?>

Siehe auch

  • Memcached::casByKey() - Compare and swap an item on a specific server


Compare and swap an item on a specific server

  • « Memcached::cas
  • Memcached::__construct »
  • PHP Manual
  • Memcached
  • Compare and swap an item on a specific server

Memcached::casByKey

(PECL memcached >= 0.1.0)

Memcached::casByKey — Compare and swap an item on a specific server

Beschreibung

public Memcached::casByKey ( float $cas_token , string $server_key , string $key , mixed $value , int $expiration = ? ) : bool

Memcached::casByKey() is functionally equivalent to Memcached::cas(), except that the free-form server_key can be used to map the key to a specific server. This is useful if you need to keep a bunch of related keys on a certain server.

Parameter-Liste

cas_token

Unique value associated with the existing item. Generated by memcache.

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

key

Der Schlüssel, unter dem der Wert abgelegt werden soll.

value

Der zu speichernde Wert.

expiration

Die Verfallszeit, Vorgabewert ist 0. Siehe Verfallszeiten für weiterführende Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_DATA_EXISTS if the item you are trying to store has been modified since you last fetched it.

Siehe auch

  • Memcached::cas() - Compare and swap an item


Create a Memcached instance

  • « Memcached::casByKey
  • Memcached::decrement »
  • PHP Manual
  • Memcached
  • Create a Memcached instance

Memcached::__construct

(PECL memcached >= 0.1.0)

Memcached::__construct — Create a Memcached instance

Beschreibung

public Memcached::__construct ( string $persistent_id = ? )

Creates a Memcached instance representing the connection to the memcache servers.

Parameter-Liste

persistent_id

By default the Memcached instances are destroyed at the end of the request. To create an instance that persists between requests, use persistent_id to specify a unique ID for the instance. All instances created with the same persistent_id will share the same connection.

Rückgabewerte

A Memcached object.

Beispiele

Beispiel #1 Creating a Memcached object

<?php
/* Create a regular instance */
$m = new Memcached();
echo get_class($m);

/* Create a persistent instance */
$m2 = new Memcached('story_pool');
$m3 = new Memcached('story_pool');

/* now $m2 and $m3 share the same connection */
?>


Decrement numeric item's value

  • « Memcached::__construct
  • Memcached::decrementByKey »
  • PHP Manual
  • Memcached
  • Decrement numeric item's value

Memcached::decrement

(PECL memcached >= 0.1.0)

Memcached::decrement — Decrement numeric item's value

Beschreibung

public Memcached::decrement ( string $key , int $offset = 1 , int $initial_value = 0 , int $expiry = 0 ) : int|false

Memcached::decrement() decrements a numeric item's value by the specified offset. If the item's value is not numeric, an error will result. If the operation would decrease the value below 0, the new value will be 0. Memcached::decrement() will set the item to the initial_value parameter if the key doesn't exist.

Parameter-Liste

key

The key of the item to decrement.

offset

The amount by which to decrement the item's value.

initial_value

The value to set the item to if it doesn't currently exist.

expiry

The expiry time to set on the item.

Rückgabewerte

Returns item's new value on successIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Memcached::decrement() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('counter', 5);
$n = $m->decrement('counter');
var_dump($n);

$n = $m->decrement('counter', 10);
var_dump($n);

var_dump($m->get('counter'));

$m->set('counter', 'abc');
$n = $m->increment('counter');
// ^ will fail due to item value not being numeric
var_dump($n);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(4)
int(0)
int(0)
bool(false)

Siehe auch

  • Memcached::increment() - Increment numeric item's value
  • Memcached::incrementByKey() - Increment numeric item's value, stored on a specific server
  • Memcached::decrementByKey() - Decrement numeric item's value, stored on a specific server


Decrement numeric item's value, stored on a specific server

  • « Memcached::decrement
  • Memcached::delete »
  • PHP Manual
  • Memcached
  • Decrement numeric item's value, stored on a specific server

Memcached::decrementByKey

(PECL memcached >= 2.0.0)

Memcached::decrementByKey — Decrement numeric item's value, stored on a specific server

Beschreibung

public Memcached::decrementByKey ( string $server_key , string $key , int $offset = 1 , int $initial_value = 0 , int $expiry = 0 ) : int|false

Memcached::decrementByKey() decrements a numeric item's value by the specified offset. If the item's value is not numeric, an error will result. If the operation would decrease the value below 0, the new value will be 0. Memcached::decrementByKey() will set the item to the initial_value parameter if the key doesn't exist.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

key

The key of the item to decrement.

offset

The amount by which to decrement the item's value.

initial_value

The value to set the item to if it doesn't currently exist.

expiry

The expiry time to set on the item.

Rückgabewerte

Returns item's new value on successIm Fehlerfall wird false zurückgegeben..

Siehe auch

  • Memcached::decrement() - Decrement numeric item's value
  • Memcached::increment() - Increment numeric item's value
  • Memcached::incrementByKey() - Increment numeric item's value, stored on a specific server


Delete an item

  • « Memcached::decrementByKey
  • Memcached::deleteByKey »
  • PHP Manual
  • Memcached
  • Delete an item

Memcached::delete

(PECL memcached >= 0.1.0)

Memcached::delete — Delete an item

Beschreibung

public Memcached::delete ( string $key , int $time = 0 ) : bool

Memcached::delete() deletes the key from the server. The time parameter is the amount of time in seconds (or Unix time until which) the client wishes the server to refuse add and replace commands for this key. For this amount of time, the item is put into a delete queue, which means that it won't possible to retrieve it by the get command, but add and replace command with this key will also fail (the set command will succeed, however). After the time passes, the item is finally deleted from server memory. The parameter time defaults to 0 (which means that the item will be deleted immediately and further storage commands with this key will succeed).

Parameter-Liste

key

The key to be deleted.

time

The amount of time the server will wait to delete the item.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_NOTFOUND if the key does not exist.

Beispiele

Beispiel #1 Memcached::delete() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->delete('key1');
?>

Siehe auch

  • Memcached::deleteByKey() - Delete an item from a specific server
  • Memcached::deleteMulti() - Delete multiple items


Delete an item from a specific server

  • « Memcached::delete
  • Memcached::deleteMulti »
  • PHP Manual
  • Memcached
  • Delete an item from a specific server

Memcached::deleteByKey

(PECL memcached >= 0.1.0)

Memcached::deleteByKey — Delete an item from a specific server

Beschreibung

public Memcached::deleteByKey ( string $server_key , string $key , int $time = 0 ) : bool

Memcached::deleteByKey() is functionally equivalent to Memcached::delete(), except that the free-form server_key can be used to map the key to a specific server.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

key

The key to be deleted.

time

The amount of time the server will wait to delete the item.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_NOTFOUND if the key does not exist.

Siehe auch

  • Memcached::delete() - Delete an item
  • Memcached::deleteMulti() - Delete multiple items
  • Memcached::deleteMultiByKey() - Delete multiple items from a specific server


Delete multiple items

  • « Memcached::deleteByKey
  • Memcached::deleteMultiByKey »
  • PHP Manual
  • Memcached
  • Delete multiple items

Memcached::deleteMulti

(PECL memcached >= 2.0.0)

Memcached::deleteMulti — Delete multiple items

Beschreibung

public Memcached::deleteMulti ( array $keys , int $time = 0 ) : array

Memcached::deleteMulti() deletes the array of keys from the server. The time parameter is the amount of time in seconds (or Unix time until which) the client wishes the server to refuse add and replace commands for these keys. For this amount of time, the item is put into a delete queue, which means that it won't be possible to retrieve it by the get command, but add and replace command with these keys will also fail (the set command will succeed, however). After the time passes, the item is finally deleted from server memory. The parameter time defaults to 0 (which means that the item will be deleted immediately and further storage commands with these keys will succeed).

Parameter-Liste

keys

The keys to be deleted.

time

The amount of time the server will wait to delete the items.

Rückgabewerte

Returns array indexed by keys and where values are indicating whether operation succeeded or not. The Memcached::getResultCode() will return Memcached::RES_NOTFOUND if the key does not exist.

Siehe auch

  • Memcached::delete() - Delete an item
  • Memcached::deleteByKey() - Delete an item from a specific server
  • Memcached::deleteMultiByKey() - Delete multiple items from a specific server


Delete multiple items from a specific server

  • « Memcached::deleteMulti
  • Memcached::fetch »
  • PHP Manual
  • Memcached
  • Delete multiple items from a specific server

Memcached::deleteMultiByKey

(PECL memcached >= 2.0.0)

Memcached::deleteMultiByKey — Delete multiple items from a specific server

Beschreibung

public Memcached::deleteMultiByKey ( string $server_key , array $keys , int $time = 0 ) : bool

Memcached::deleteMultiByKey() is functionally equivalent to Memcached::deleteMulti(), except that the free-form server_key can be used to map the keys to a specific server.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

keys

The keys to be deleted.

time

The amount of time the server will wait to delete the items.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_NOTFOUND if the key does not exist.

Siehe auch

  • Memcached::delete() - Delete an item
  • Memcached::deleteByKey() - Delete an item from a specific server
  • Memcached::deleteMulti() - Delete multiple items


Fetch the next result

  • « Memcached::deleteMultiByKey
  • Memcached::fetchAll »
  • PHP Manual
  • Memcached
  • Fetch the next result

Memcached::fetch

(PECL memcached >= 0.1.0)

Memcached::fetch — Fetch the next result

Beschreibung

public Memcached::fetch ( ) : array

Memcached::fetch() retrieves the next result from the last request.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the next result or false otherwise. The Memcached::getResultCode() will return Memcached::RES_END if result set is exhausted.

Beispiele

Beispiel #1 Memcached::fetch() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
while ($result = $m->fetch()) {
    var_dump($result);
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  ["key"]=>
  string(3) "int"
  "value"]=>
  int(99)
  ["cas"]=>
  float(2363)
}
array(3) {
  ["key"]=>
  string(5) "array"
  ["value"]=>
  array(2) {
    [0]=>
    int(11)
    [1]=>
    int(12)
  }
  ["cas"]=>
  float(2365)
}

Siehe auch

  • Memcached::fetchAll() - Fetch all the remaining results
  • Memcached::getDelayed() - Request multiple items


Fetch all the remaining results

  • « Memcached::fetch
  • Memcached::flush »
  • PHP Manual
  • Memcached
  • Fetch all the remaining results

Memcached::fetchAll

(PECL memcached >= 0.1.0)

Memcached::fetchAll — Fetch all the remaining results

Beschreibung

public Memcached::fetchAll ( ) : array|false

Memcached::fetchAll() retrieves all the remaining results from the last request.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the resultsIm Fehlerfall wird false zurückgegeben.. Benutzen Sie wenn nötig Memcached::getResultCode().

Beispiele

Beispiel #1 Memcached::getDelayed() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

Siehe auch

  • Memcached::fetch() - Fetch the next result
  • Memcached::getDelayed() - Request multiple items


Invalidate all items in the cache

  • « Memcached::fetchAll
  • Memcached::get »
  • PHP Manual
  • Memcached
  • Invalidate all items in the cache

Memcached::flush

(PECL memcached >= 0.1.0)

Memcached::flush — Invalidate all items in the cache

Beschreibung

public Memcached::flush ( int $delay = 0 ) : bool

Memcached::flush() invalidates all existing cache items immediately (by default) or after the delay specified. After invalidation none of the items will be returned in response to a retrieval command (unless it's stored again under the same key after Memcached::flush() has invalidated the items). The flush does not actually free all the memory taken up by the existing items; that will happen gradually as new items are stored.

Parameter-Liste

delay

Number of seconds to wait before invalidating the items.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Benutzen Sie wenn nötig Memcached::getResultCode().

Beispiele

Beispiel #1 Memcached::flush() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

/* flush all items in 10 seconds */
$m->flush(10);
?>


Retrieve an item

  • « Memcached::flush
  • Memcached::getAllKeys »
  • PHP Manual
  • Memcached
  • Retrieve an item

Memcached::get

(PECL memcached >= 0.1.0)

Memcached::get — Retrieve an item

Beschreibung

public Memcached::get ( string $key , callable $cache_cb = ? , int $$flags = ? ) : mixed

Memcached::get() returns the item that was previously stored under the key. If the item is found and the flags is given Memcached::GET_EXTENDED, it will also return the CAS token value for the item. See Memcached::cas() for how to use CAS tokens. Read-through caching callback may be specified via cache_cb parameter.

Parameter-Liste

key

The key of the item to retrieve.

cache_cb

Read-through caching callback or null.

flags

Flags to control the returned result. When Memcached::GET_EXTENDED is given, the function will also return the CAS token.

Rückgabewerte

Returns the value stored in the cache or false otherwise. If the flags is set to Memcached::GET_EXTENDED, an array containing the value and the CAS token is returned instead of only the value. The Memcached::getResultCode() will return Memcached::RES_NOTFOUND if the key does not exist.

Beispiele

Beispiel #1 Memcached::get() example #1

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('foo', 100);
var_dump($m->get('foo'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(100)

Beispiel #2 Memcached::get() example #2

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

if (!($ip = $m->get('ip_block'))) {
    if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
        $ip = array();
        $m->set('ip_block', $ip);
    } else {
        /* log error */
        /* ...       */
    }
}
?>

Changelog

Version | Beschreibung
PECL memcached 3.0.0 | The &cas_token parameter was removed. Instead flags was added and when it is given the value of Memcached::GET_EXTENDED it will ensure the CAS token to be fetched.

Siehe auch

  • Memcached::getByKey() - Retrieve an item from a specific server
  • Memcached::getMulti() - Retrieve multiple items
  • Memcached::getDelayed() - Request multiple items


Gets the keys stored on all the servers

  • « Memcached::get
  • Memcached::getByKey »
  • PHP Manual
  • Memcached
  • Gets the keys stored on all the servers

Memcached::getAllKeys

(PECL memcached >= 2.0.0)

Memcached::getAllKeys — Gets the keys stored on all the servers

Beschreibung

public Memcached::getAllKeys ( ) : array|false

Memcached::getAllKeys() queries each memcache server and retrieves an array of all keys stored on them at that point in time. This is not an atomic operation, so it isn't a truly consistent snapshot of the keys at point in time. As memcache doesn't guarantee to return all keys you also cannot assume that all keys have been returned.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the keys stored on all the servers on successIm Fehlerfall wird false zurückgegeben..


Retrieve an item from a specific server

  • « Memcached::getAllKeys
  • Memcached::getDelayed »
  • PHP Manual
  • Memcached
  • Retrieve an item from a specific server

Memcached::getByKey

(PECL memcached >= 0.1.0)

Memcached::getByKey — Retrieve an item from a specific server

Beschreibung

public Memcached::getByKey ( string $server_key , string $key , callable $cache_cb = ? , int $flags = ? ) : mixed

Memcached::getByKey() is functionally equivalent to Memcached::get(), except that the free-form server_key can be used to map the key to a specific server.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

key

The key of the item to fetch.

cache_cb

Read-through caching callback or null

flags

Flags to control the returned result. When value of Memcached::GET_EXTENDED is given will return the CAS token.

Rückgabewerte

Returns the value stored in the cache or false otherwise. The Memcached::getResultCode() will return Memcached::RES_NOTFOUND if the key does not exist.

Changelog

Version | Beschreibung
PECL memcached 3.0.0 | The &cas_token parameter was removed. Instead flags was added and when it is given the value of Memcached::GET_EXTENDED it will ensure the CAS token to be fetched.

Siehe auch

  • Memcached::get() - Retrieve an item
  • Memcached::getMulti() - Retrieve multiple items
  • Memcached::getDelayed() - Request multiple items


Request multiple items

  • « Memcached::getByKey
  • Memcached::getDelayedByKey »
  • PHP Manual
  • Memcached
  • Request multiple items

Memcached::getDelayed

(PECL memcached >= 0.1.0)

Memcached::getDelayed — Request multiple items

Beschreibung

public Memcached::getDelayed ( array $keys , bool $with_cas = ? , callable $value_cb = ? ) : bool

Memcached::getDelayed() issues a request to memcache for multiple items the keys of which are specified in the keys array. The method does not wait for response and returns right away. When you are ready to collect the items, call either Memcached::fetch() or Memcached::fetchAll(). If with_cas is true, the CAS token values will also be requested.

Instead of fetching the results explicitly, you can specify a result callback via value_cb parameter.

Parameter-Liste

keys

Array of keys to request.

with_cas

Whether to request CAS token values also.

value_cb

The result callback or null.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Benutzen Sie wenn nötig Memcached::getResultCode().

Beispiele

Beispiel #1 Memcached::getDelayed() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));

$m->getDelayed(array('int', 'array'), true);
var_dump($m->fetchAll());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  array(3) {
    ["key"]=>
    string(3) "int"
    ["value"]=>
    int(99)
    ["cas"]=>
    float(2363)
  }
  [1]=>
  array(3) {
    ["key"]=>
    string(5) "array"
    ["value"]=>
    array(2) {
      [0]=>
      int(11)
      [1]=>
      int(12)
    }
    ["cas"]=>
    float(2365)
  }
}

Siehe auch

  • Memcached::getDelayedByKey() - Request multiple items from a specific server
  • Memcached::fetch() - Fetch the next result
  • Memcached::fetchAll() - Fetch all the remaining results


Request multiple items from a specific server

  • « Memcached::getDelayed
  • Memcached::getMulti »
  • PHP Manual
  • Memcached
  • Request multiple items from a specific server

Memcached::getDelayedByKey

(PECL memcached >= 0.1.0)

Memcached::getDelayedByKey — Request multiple items from a specific server

Beschreibung

public Memcached::getDelayedByKey ( string $server_key , array $keys , bool $with_cas = ? , callable $value_cb = ? ) : bool

Memcached::getDelayedByKey() is functionally equivalent to Memcached::getDelayed(), except that the free-form server_key can be used to map the keys to a specific server.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

keys

Array of keys to request.

with_cas

Whether to request CAS token values also.

value_cb

The result callback or null.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Benutzen Sie wenn nötig Memcached::getResultCode().

Siehe auch

  • Memcached::getDelayed() - Request multiple items
  • Memcached::fetch() - Fetch the next result
  • Memcached::fetchAll() - Fetch all the remaining results


Retrieve multiple items

  • « Memcached::getDelayedByKey
  • Memcached::getMultiByKey »
  • PHP Manual
  • Memcached
  • Retrieve multiple items

Memcached::getMulti

(PECL memcached >= 0.1.0)

Memcached::getMulti — Retrieve multiple items

Beschreibung

public Memcached::getMulti ( array $keys , int $flags = ? ) : mixed

Memcached::getMulti() is similar to Memcached::get(), but instead of a single key item, it retrieves multiple items the keys of which are specified in the keys array.

Hinweis:

Before v3.0 a second argument &cas_tokens was in use. It was filled with the CAS token values for the found items. The &cas_tokens parameter was removed in v3.0 of the extension. It was replaced with a new flag Memcached::GET_EXTENDED that needs is to be used as the value for flags.

The flags parameter can be used to specify additional options for Memcached::getMulti(). Memcached::GET_PRESERVE_ORDER ensures that the keys are returned in the same order as they were requested in. Memcached::GET_EXTENDED ensures that the CAS tokens will be fetched too.

Parameter-Liste

keys

Array of keys to retrieve.

flags

The flags for the get operation.

Rückgabewerte

Returns the array of found itemsIm Fehlerfall wird false zurückgegeben.. Benutzen Sie wenn nötig Memcached::getResultCode().

Beispiele

Beispiel #1 Memcached::getMulti() example for Memcached v3

<?php
// Valid for v3 of the extension

$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'));
var_dump($result);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}

Beispiel #2 Memcached::getMulti() example for Memcached v1 and v2

<?php
// Valid for v1 and v2 of the extension

$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items);
$result = $m->getMulti(array('key1', 'key3', 'badkey'), $cas);
var_dump($result, $cas);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}
array(2) {
  ["key1"]=>
  float(2360)
  ["key3"]=>
  float(2362)
}

Beispiel #3 Memcached::GET_PRESERVE_ORDER example for Memcached v3

<?php
// Valid for v3 of the extension

$m = new Memcached();
$m->addServer('localhost', 11211);

$data = array(
    'foo' => 'foo-data',
    'bar' => 'bar-data',
    'baz' => 'baz-data',
    'lol' => 'lol-data',
    'kek' => 'kek-data',
);

$m->setMulti($data, 3600);

$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, Memcached::GET_PRESERVE_ORDER);

foreach ($got as $k => $v) {
    echo "$k $v\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo

Beispiel #4 Memcached::GET_PRESERVE_ORDER example for Memcached v1 and v2

<?php
// Valid for v1 and v2 of the extension

$m = new Memcached();
$m->addServer('localhost', 11211);

$data = array(
    'foo' => 'foo-data',
    'bar' => 'bar-data',
    'baz' => 'baz-data',
    'lol' => 'lol-data',
    'kek' => 'kek-data',
);

$m->setMulti($data, 3600);

$null = null;
$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, $null, Memcached::GET_PRESERVE_ORDER);

foreach ($got as $k => $v) {
    echo "$k $v\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo

Changelog

Version | Beschreibung
PECL memcached 3.0.0 | The &cas_tokens parameter was removed. The Memcached::GET_EXTENDED was added and when passed as a flag it ensures the CAS tokens to be fetched.

Siehe auch

  • Memcached::getMultiByKey() - Retrieve multiple items from a specific server
  • Memcached::get() - Retrieve an item
  • Memcached::getDelayed() - Request multiple items


Retrieve multiple items from a specific server

  • « Memcached::getMulti
  • Memcached::getOption »
  • PHP Manual
  • Memcached
  • Retrieve multiple items from a specific server

Memcached::getMultiByKey

(PECL memcached >= 0.1.0)

Memcached::getMultiByKey — Retrieve multiple items from a specific server

Beschreibung

public Memcached::getMultiByKey ( string $server_key , array $keys , int $flags = ? ) : array|false

Memcached::getMultiByKey() is functionally equivalent to Memcached::getMulti(), except that the free-form server_key can be used to map the keys to a specific server.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

keys

Array of keys to retrieve.

flags

The flags for the get operation.

Rückgabewerte

Returns the array of found itemsIm Fehlerfall wird false zurückgegeben.. Benutzen Sie wenn nötig Memcached::getResultCode().

Changelog

Version | Beschreibung
PECL memcached 3.0.0 | The &cas_tokens parameter was removed. The Memcached::GET_EXTENDED was added and when passed as a flag it ensures the CAS tokens to be fetched.

Siehe auch

  • Memcached::getMulti() - Retrieve multiple items
  • Memcached::get() - Retrieve an item
  • Memcached::getDelayed() - Request multiple items


Retrieve a Memcached option value

  • « Memcached::getMultiByKey
  • Memcached::getResultCode »
  • PHP Manual
  • Memcached
  • Retrieve a Memcached option value

Memcached::getOption

(PECL memcached >= 0.1.0)

Memcached::getOption — Retrieve a Memcached option value

Beschreibung

public Memcached::getOption ( int $option ) : mixed

This method returns the value of a Memcached option. Some options correspond to the ones defined by libmemcached, and some are specific to the extension. See Memcached Constants for more information.

Parameter-Liste

option

One of the Memcached::OPT_* constants.

Rückgabewerte

Returns the value of the requested option, or false on error.

Beispiele

Beispiel #1 Retrieving Memcached options

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_COMPRESSION));
var_dump($m->getOption(Memcached::OPT_POLL_TIMEOUT));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
int(1000)

Siehe auch

  • Memcached::getOption()
  • Memcached::setOption() - Set a Memcached option
  • Memcached Constants


Return the result code of the last operation

  • « Memcached::getOption
  • Memcached::getResultMessage »
  • PHP Manual
  • Memcached
  • Return the result code of the last operation

Memcached::getResultCode

(PECL memcached >= 0.1.0)

Memcached::getResultCode — Return the result code of the last operation

Beschreibung

public Memcached::getResultCode ( ) : int

Memcached::getResultCode() returns one of the Memcached::RES_* constants that is the result of the last executed Memcached method.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Result code of the last Memcached operation.

Beispiele

Beispiel #1 Memcached::getResultCode() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->add('foo', 'bar');
if ($m->getResultCode() == Memcached::RES_NOTSTORED) {
    /* ... */
}
?>


Return the message describing the result of the last operation

  • « Memcached::getResultCode
  • Memcached::getServerByKey »
  • PHP Manual
  • Memcached
  • Return the message describing the result of the last operation

Memcached::getResultMessage

(PECL memcached >= 1.0.0)

Memcached::getResultMessage — Return the message describing the result of the last operation

Beschreibung

public Memcached::getResultMessage ( ) : string

Memcached::getResultMessage() returns a string that describes the result code of the last executed Memcached method.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Message describing the result of the last Memcached operation.

Beispiele

Beispiel #1 Memcached::getResultMessage() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->add('foo', 'bar'); // first time should succeed
$m->add('foo', 'bar');
echo $m->getResultMessage(),"\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NOT STORED


Map a key to a server

  • « Memcached::getResultMessage
  • Memcached::getServerList »
  • PHP Manual
  • Memcached
  • Map a key to a server

Memcached::getServerByKey

(PECL memcached >= 0.1.0)

Memcached::getServerByKey — Map a key to a server

Beschreibung

public Memcached::getServerByKey ( string $server_key ) : array

Memcached::getServerByKey() returns the server that would be selected by a particular server_key in all the Memcached::*ByKey() operations.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

Rückgabewerte

Returns an array containing three keys of host, port, and weight on success or false on failure. Benutzen Sie wenn nötig Memcached::getResultCode().

Beispiele

Beispiel #1 Memcached::getServerByKey() example

<?php
$m = new Memcached();
$m->addServers(array(
    array('mem1.domain.com', 11211, 40),
    array('mem2.domain.com', 11211, 40),
    array('mem3.domain.com', 11211, 20),
));

$m->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);

var_dump($m->getServerByKey('user'));
var_dump($m->getServerByKey('log'));
var_dump($m->getServerByKey('ip'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  ["host"]=>
  string(15) "mem3.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(20)
}
array(3) {
  ["host"]=>
  string(15) "mem2.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(40)
}
array(3) {
  ["host"]=>
  string(15) "mem2.domain.com"
  ["port"]=>
  int(11211)
  ["weight"]=>
  int(40)
}


Get the list of the servers in the pool

  • « Memcached::getServerByKey
  • Memcached::getStats »
  • PHP Manual
  • Memcached
  • Get the list of the servers in the pool

Memcached::getServerList

(PECL memcached >= 0.1.0)

Memcached::getServerList — Get the list of the servers in the pool

Beschreibung

public Memcached::getServerList ( ) : array

Memcached::getServerList() returns the list of all servers that are in its server pool.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The list of all servers in the server pool.

Beispiele

Beispiel #1 Memcached::getServerList() example

<?php
$m = new Memcached();
$m->addServers(array(
    array('mem1.domain.com', 11211, 20),
    array('mem2.domain.com', 11311, 80),
));
var_dump($m->getServerList());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  array(3) {
    ["host"]=>
    string(15) "mem1.domain.com"
    ["port"]=>
    int(11211)
    ["weight"]=>
    int(20)
  }
  [1]=>
  array(3) {
    ["host"]=>
    string(15) "mem2.domain.com"
    ["port"]=>
    int(11311)
    ["weight"]=>
    int(80)
  }
}


Get server pool statistics

  • « Memcached::getServerList
  • Memcached::getVersion »
  • PHP Manual
  • Memcached
  • Get server pool statistics

Memcached::getStats

(PECL memcached >= 0.1.0)

Memcached::getStats — Get server pool statistics

Beschreibung

public Memcached::getStats ( ) : array|false

Memcached::getStats() returns an array containing the state of all available memcache servers. See » memcache protocol specification for details on these statistics.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Array of server statistics, one entry per server, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Memcached::getStats() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

print_r($m->getStats());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [localhost:11211] => Array
        (
            [pid] => 4933
            [uptime] => 786123
            [threads] => 1
            [time] => 1233868010
            [pointer_size] => 32
            [rusage_user_seconds] => 0
            [rusage_user_microseconds] => 140000
            [rusage_system_seconds] => 23
            [rusage_system_microseconds] => 210000
            [curr_items] => 145
            [total_items] => 2374
            [limit_maxbytes] => 67108864
            [curr_connections] => 2
            [total_connections] => 151
            [connection_structures] => 3
            [bytes] => 20345
            [cmd_get] => 213343
            [cmd_set] => 2381
            [get_hits] => 204223
            [get_misses] => 9120
            [evictions] => 0
            [bytes_read] => 9092476
            [bytes_written] => 15420512
            [version] => 1.2.6
        )

)


Get server pool version info

  • « Memcached::getStats
  • Memcached::increment »
  • PHP Manual
  • Memcached
  • Get server pool version info

Memcached::getVersion

(PECL memcached >= 0.1.5)

Memcached::getVersion — Get server pool version info

Beschreibung

public Memcached::getVersion ( ) : array

Memcached::getVersion() returns an array containing the version info for all available memcache servers.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Array of server versions, one entry per server.

Beispiele

Beispiel #1 Memcached::getVersion() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

print_r($m->getVersion());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [localhost:11211] => 1.2.6
)


Increment numeric item's value

  • « Memcached::getVersion
  • Memcached::incrementByKey »
  • PHP Manual
  • Memcached
  • Increment numeric item's value

Memcached::increment

(PECL memcached >= 0.1.0)

Memcached::increment — Increment numeric item's value

Beschreibung

public Memcached::increment ( string $key , int $offset = 1 , int $initial_value = 0 , int $expiry = 0 ) : int|false

Memcached::increment() increments a numeric item's value by the specified offset. If the item's value is not numeric, an error will result. Memcached::increment() will set the item to the initial_value parameter if the key doesn't exist.

Parameter-Liste

key

The key of the item to increment.

offset

The amount by which to increment the item's value.

initial_value

The value to set the item to if it doesn't currently exist.

expiry

The expiry time to set on the item.

Rückgabewerte

Returns new item's value on successIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Memcached::increment() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('counter', 0);
$m->increment('counter');
$n = $m->increment('counter', 10);
var_dump($n);

$m->set('counter', 'abc');
$n = $m->increment('counter');
// ^ will fail due to item value not being numeric
var_dump($n);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(11)
bool(false)

Siehe auch

  • Memcached::decrement() - Decrement numeric item's value
  • Memcached::decrementByKey() - Decrement numeric item's value, stored on a specific server
  • Memcached::incrementByKey() - Increment numeric item's value, stored on a specific server


Increment numeric item's value, stored on a specific server

  • « Memcached::increment
  • Memcached::isPersistent »
  • PHP Manual
  • Memcached
  • Increment numeric item's value, stored on a specific server

Memcached::incrementByKey

(PECL memcached >= 2.0.0)

Memcached::incrementByKey — Increment numeric item's value, stored on a specific server

Beschreibung

public Memcached::incrementByKey ( string $server_key , string $key , int $offset = 1 , int $initial_value = 0 , int $expiry = 0 ) : int|false

Memcached::incrementByKey() increments a numeric item's value by the specified offset. If the item's value is not numeric, an error will result. Memcached::incrementByKey() will set the item to the initial_value parameter if the key doesn't exist.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

key

The key of the item to increment.

offset

The amount by which to increment the item's value.

initial_value

The value to set the item to if it doesn't currently exist.

expiry

The expiry time to set on the item.

Rückgabewerte

Returns new item's value on successIm Fehlerfall wird false zurückgegeben..

Siehe auch

  • Memcached::decrement() - Decrement numeric item's value
  • Memcached::decrementByKey() - Decrement numeric item's value, stored on a specific server
  • Memcached::increment() - Increment numeric item's value


Check if a persitent connection to memcache is being used

  • « Memcached::incrementByKey
  • Memcached::isPristine »
  • PHP Manual
  • Memcached
  • Check if a persitent connection to memcache is being used

Memcached::isPersistent

(PECL memcached >= 2.0.0)

Memcached::isPersistent — Check if a persitent connection to memcache is being used

Beschreibung

public Memcached::isPersistent ( ) : bool

Memcached::isPersistent() checks if the connections to the memcache servers are persistent connections.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if Memcache instance uses a persistent connection, false otherwise.

Siehe auch

  • Memcached::isPristine() - Check if the instance was recently created


Check if the instance was recently created

  • « Memcached::isPersistent
  • Memcached::prepend »
  • PHP Manual
  • Memcached
  • Check if the instance was recently created

Memcached::isPristine

(PECL memcached >= 2.0.0)

Memcached::isPristine — Check if the instance was recently created

Beschreibung

public Memcached::isPristine ( ) : bool

Memcached::isPristine() checks if the Memcache instance was recently created.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the true if instance is recently created, false otherwise.

Siehe auch

  • Memcached::isPersistent() - Check if a persitent connection to memcache is being used


Prepend data to an existing item

  • « Memcached::isPristine
  • Memcached::prependByKey »
  • PHP Manual
  • Memcached
  • Prepend data to an existing item

Memcached::prepend

(PECL memcached >= 0.1.0)

Memcached::prepend — Prepend data to an existing item

Beschreibung

public Memcached::prepend ( string $key , string $value ) : bool

Memcached::prepend() prepends the given value string to the value of an existing item. The reason that value is forced to be a string is that prepending mixed types is not well-defined.

Hinweis:

If the Memcached::OPT_COMPRESSION is enabled, the operation will fail and a warning will be issued, because prepending compressed data to a value that is potentially already compressed is not possible.

Parameter-Liste

key

The key of the item to prepend the data to.

value

The string to prepend.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_NOTSTORED if the key does not exist.

Beispiele

Beispiel #1 Memcached::prepend() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);

$m->set('foo', 'abc');
$m->prepend('foo', 'def');
var_dump($m->get('foo'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(6) "defabc"

Siehe auch

  • Memcached::prependByKey() - Prepend data to an existing item on a specific server
  • Memcached::append() - Append data to an existing item


Prepend data to an existing item on a specific server

  • « Memcached::prepend
  • Memcached::quit »
  • PHP Manual
  • Memcached
  • Prepend data to an existing item on a specific server

Memcached::prependByKey

(PECL memcached >= 0.1.0)

Memcached::prependByKey — Prepend data to an existing item on a specific server

Beschreibung

public Memcached::prependByKey ( string $server_key , string $key , string $value ) : bool

Memcached::prependByKey() is functionally equivalent to Memcached::prepend(), except that the free-form server_key can be used to map the key to a specific server.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

key

The key of the item to prepend the data to.

value

The string to prepend.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_NOTSTORED if the key does not exist.

Siehe auch

  • Memcached::prepend() - Prepend data to an existing item
  • Memcached::append() - Append data to an existing item


Close any open connections

  • « Memcached::prependByKey
  • Memcached::replace »
  • PHP Manual
  • Memcached
  • Close any open connections

Memcached::quit

(PECL memcached >= 2.0.0)

Memcached::quit — Close any open connections

Beschreibung

public Memcached::quit ( ) : bool

Memcached::quit() closes any open connections to the memcache servers.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Replace the item under an existing key

  • « Memcached::quit
  • Memcached::replaceByKey »
  • PHP Manual
  • Memcached
  • Replace the item under an existing key

Memcached::replace

(PECL memcached >= 0.1.0)

Memcached::replace — Replace the item under an existing key

Beschreibung

public Memcached::replace ( string $key , mixed $value , int $expiration = ? ) : bool

Memcached::replace() is similar to Memcached::set(), but the operation fails if the key does not exist on the server.

Parameter-Liste

key

Der Schlüssel, unter dem der Wert abgelegt werden soll.

value

Der zu speichernde Wert.

expiration

Die Verfallszeit, Vorgabewert ist 0. Siehe Verfallszeiten für weiterführende Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_NOTSTORED if the key does not exist.

Siehe auch

  • Memcached::replaceByKey() - Replace the item under an existing key on a specific server
  • Memcached::set() - Store an item
  • Memcached::add() - Add an item under a new key


Replace the item under an existing key on a specific server

  • « Memcached::replace
  • Memcached::resetServerList »
  • PHP Manual
  • Memcached
  • Replace the item under an existing key on a specific server

Memcached::replaceByKey

(PECL memcached >= 0.1.0)

Memcached::replaceByKey — Replace the item under an existing key on a specific server

Beschreibung

public Memcached::replaceByKey ( string $server_key , string $key , mixed $value , int $expiration = ? ) : bool

Memcached::replaceByKey() is functionally equivalent to Memcached::replace(), except that the free-form server_key can be used to map the key to a specific server. This is useful if you need to keep a bunch of related keys on a certain server.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

key

Der Schlüssel, unter dem der Wert abgelegt werden soll.

value

Der zu speichernde Wert.

expiration

Die Verfallszeit, Vorgabewert ist 0. Siehe Verfallszeiten für weiterführende Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. The Memcached::getResultCode() will return Memcached::RES_NOTSTORED if the key does not exist.

Siehe auch

  • Memcached::replace() - Replace the item under an existing key
  • Memcached::set() - Store an item
  • Memcached::add() - Add an item under a new key


Clears all servers from the server list

  • « Memcached::replaceByKey
  • Memcached::set »
  • PHP Manual
  • Memcached
  • Clears all servers from the server list

Memcached::resetServerList

(PECL memcached >= 2.0.0)

Memcached::resetServerList — Clears all servers from the server list

Beschreibung

public Memcached::resetServerList ( ) : bool

Memcached::resetserverlist() removes all memcache servers from the known server list, resetting it back to empty.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • Memcached::addServer() - Add a server to the server pool
  • Memcached::addServers() - Add multiple servers to the server pool


Store an item

  • « Memcached::resetServerList
  • Memcached::setByKey »
  • PHP Manual
  • Memcached
  • Store an item

Memcached::set

(PECL memcached >= 0.1.0)

Memcached::set — Store an item

Beschreibung

public Memcached::set ( string $key , mixed $value , int $expiration = ? ) : bool

Memcached::set() stores the value on a memcache server under the specified key. The expiration parameter can be used to control when the value is considered expired.

The value can be any valid PHP type except for resources, because those cannot be represented in a serialized form. If the Memcached::OPT_COMPRESSION option is turned on, the serialized value will also be compressed before storage.

Parameter-Liste

key

Der Schlüssel, unter dem der Wert abgelegt werden soll.

value

Der zu speichernde Wert.

expiration

Die Verfallszeit, Vorgabewert ist 0. Siehe Verfallszeiten für weiterführende Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Benutzen Sie wenn nötig Memcached::getResultCode().

Beispiele

Beispiel #1 Memcached::set() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));
/* expire 'object' key in 5 minutes */
$m->set('object', new stdclass, time() + 300);

var_dump($m->get('int'));
var_dump($m->get('string'));
var_dump($m->get('array'));
var_dump($m->get('object'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(99)
string(15) "a simple string"
array(2) {
  [0]=>
  int(11)
  [1]=>
  int(12)
}
object(stdClass)#1 (0) {
}

Siehe auch

  • Memcached::setByKey() - Store an item on a specific server
  • Memcached::add() - Add an item under a new key
  • Memcached::replace() - Replace the item under an existing key


Store an item on a specific server

  • « Memcached::set
  • Memcached::setMulti »
  • PHP Manual
  • Memcached
  • Store an item on a specific server

Memcached::setByKey

(PECL memcached >= 0.1.0)

Memcached::setByKey — Store an item on a specific server

Beschreibung

public Memcached::setByKey ( string $server_key , string $key , mixed $value , int $expiration = ? ) : bool

Memcached::setByKey() is functionally equivalent to Memcached::set(), except that the free-form server_key can be used to map the key to a specific server. This is useful if you need to keep a bunch of related keys on a certain server.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

key

Der Schlüssel, unter dem der Wert abgelegt werden soll.

value

Der zu speichernde Wert.

expiration

Die Verfallszeit, Vorgabewert ist 0. Siehe Verfallszeiten für weiterführende Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Benutzen Sie wenn nötig Memcached::getResultCode().

Beispiele

Beispiel #1 Memcached::setByKey() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

/* keep IP blocks on a certain server */
$m->setByKey('api-cache', 'block-ip:169.254.253.252', 1);
$m->setByKey('api-cache', 'block-ip:169.127.127.202', 1);
?>

Siehe auch

  • Memcached::set() - Store an item


Store multiple items

  • « Memcached::setByKey
  • Memcached::setMultiByKey »
  • PHP Manual
  • Memcached
  • Store multiple items

Memcached::setMulti

(PECL memcached >= 0.1.0)

Memcached::setMulti — Store multiple items

Beschreibung

public Memcached::setMulti ( array $items , int $expiration = ? ) : bool

Memcached::setMulti() is similar to Memcached::set(), but instead of a single key/value item, it works on multiple items specified in items. The expiration time applies to all the items at once.

Parameter-Liste

items

Ein Array von Schlüssel-/Wert-Paaren, die auf dem Server gespeichert werden sollen.

expiration

Die Verfallszeit, Vorgabewert ist 0. Siehe Verfallszeiten für weiterführende Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Benutzen Sie wenn nötig Memcached::getResultCode().

Beispiele

Beispiel #1 Memcached::setMulti() example

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$items = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);
$m->setMulti($items, time() + 300);
?>

Siehe auch

  • Memcached::setMultiByKey() - Store multiple items on a specific server
  • Memcached::set() - Store an item


Store multiple items on a specific server

  • « Memcached::setMulti
  • Memcached::setOption »
  • PHP Manual
  • Memcached
  • Store multiple items on a specific server

Memcached::setMultiByKey

(PECL memcached >= 0.1.0)

Memcached::setMultiByKey — Store multiple items on a specific server

Beschreibung

public Memcached::setMultiByKey ( string $server_key , array $items , int $expiration = ? ) : bool

Memcached::setMultiByKey() is functionally equivalent to Memcached::setMulti(), except that the free-form server_key can be used to map the keys from items to a specific server. This is useful if you need to keep a bunch of related keys on a certain server.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

items

Ein Array von Schlüssel-/Wert-Paaren, die auf dem Server gespeichert werden sollen.

expiration

Die Verfallszeit, Vorgabewert ist 0. Siehe Verfallszeiten für weiterführende Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Benutzen Sie wenn nötig Memcached::getResultCode().

Siehe auch

  • Memcached::setMulti() - Store multiple items
  • Memcached::set() - Store an item


Set a Memcached option

  • « Memcached::setMultiByKey
  • Memcached::setOptions »
  • PHP Manual
  • Memcached
  • Set a Memcached option

Memcached::setOption

(PECL memcached >= 0.1.0)

Memcached::setOption — Set a Memcached option

Beschreibung

public Memcached::setOption ( int $option , mixed $value ) : bool

This method sets the value of a Memcached option. Some options correspond to the ones defined by libmemcached, and some are specific to the extension. See Memcached Constants for more information.

The options listed below require values specified via constants.

  • Memcached::OPT_HASH requires Memcached::HASH_* values.

  • Memcached::OPT_DISTRIBUTION requires Memcached::DISTRIBUTION_* values.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Setting a Memcached option

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);
$m->setOption(Memcached::OPT_HASH, Memcached::HASH_MURMUR);
$m->setOption(Memcached::OPT_PREFIX_KEY, "widgets");
echo "Prefix key is now: ", $m->getOption(Memcached::OPT_PREFIX_KEY), "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
Prefix key is now: widgets

Siehe auch

  • Memcached::getOption() - Retrieve a Memcached option value
  • Memcached::setOptions() - Set Memcached options
  • Memcached Constants


Set Memcached options

  • « Memcached::setOption
  • Memcached::setSaslAuthData »
  • PHP Manual
  • Memcached
  • Set Memcached options

Memcached::setOptions

(PECL memcached >= 2.0.0)

Memcached::setOptions — Set Memcached options

Beschreibung

public Memcached::setOptions ( array $options ) : bool

Memcached::setOptions() is a variation of the Memcached::setOption() that takes an array of options to be set.

Parameter-Liste

options

An associative array of options where the key is the option to set and the value is the new value for the option.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Setting Memcached options

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);

$m->setOptions(array(Memcached::OPT_HASH => Memcached::HASH_MURMUR, Memcached::OPT_PREFIX_KEY => "widgets"));

var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);
echo "Prefix key is now: ", $m->getOption(Memcached::OPT_PREFIX_KEY), "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
Prefix key is now: widgets

Siehe auch

  • Memcached::getOption() - Retrieve a Memcached option value
  • Memcached::setOption() - Set a Memcached option
  • Memcached Constants


Set the credentials to use for authentication

  • « Memcached::setOptions
  • Memcached::touch »
  • PHP Manual
  • Memcached
  • Set the credentials to use for authentication

Memcached::setSaslAuthData

(PECL memcached >= 2.0.0)

Memcached::setSaslAuthData — Set the credentials to use for authentication

Beschreibung

public Memcached::setSaslAuthData ( string $username , string $password ) : void

Memcached::setSaslAuthData() sets the username and password that should be used for SASL authentication with the memcache servers.

This method is only available when the memcached extension is built with SASL support. Please refer to Memcached setup for how to do this.

Parameter-Liste

username

The username to use for authentication.

password

The password to use for authentication.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Set a new expiration on an item

  • « Memcached::setSaslAuthData
  • Memcached::touchByKey »
  • PHP Manual
  • Memcached
  • Set a new expiration on an item

Memcached::touch

(PECL memcached >= 2.0.0)

Memcached::touch — Set a new expiration on an item

Beschreibung

public Memcached::touch ( string $key , int $expiration ) : bool

Memcached::touch() sets a new expiration value on the given key.

Parameter-Liste

key

Der Schlüssel, unter dem der Wert abgelegt werden soll.

expiration

Die Verfallszeit, Vorgabewert ist 0. Siehe Verfallszeiten für weiterführende Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Benutzen Sie wenn nötig Memcached::getResultCode().

Siehe auch

  • Memcached::touchByKey() - Set a new expiration on an item on a specific server


Set a new expiration on an item on a specific server

  • « Memcached::touch
  • MemcachedException »
  • PHP Manual
  • Memcached
  • Set a new expiration on an item on a specific server

Memcached::touchByKey

(PECL memcached >= 2.0.0)

Memcached::touchByKey — Set a new expiration on an item on a specific server

Beschreibung

public Memcached::touchByKey ( string $server_key , string $key , int $expiration ) : bool

Memcached::touchByKey() is functionally equivalent to Memcached::touch(), except that the free-form server_key can be used to map the key to a specific server.

Parameter-Liste

server_key

Ein Schlüssel, der den Server bestimmt, auf dem die Daten abgelegt oder von dem Daten abgerufen werden sollen. Anstatt den tatsächlichen Schlüssel des Wertes zu hashen wird der Server-Key gehasht um den Memcached-Server mit dem gesprochen werden soll ausfindig zu machen. Dies erlaubt es alle zusammengehörigen Daten auf einem einzigen Server abzulegen um multiple Operationen effizienter zu gestalten.

key

Der Schlüssel, unter dem der Wert abgelegt werden soll.

expiration

Die Verfallszeit, Vorgabewert ist 0. Siehe Verfallszeiten für weiterführende Informationen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Benutzen Sie wenn nötig Memcached::getResultCode().

Siehe auch

  • Memcached::touch() - Set a new expiration on an item


The MemcachedException class

(PECL memcached >= 0.1.0)

Einführung

Klassenbeschreibung

MemcachedException extends RuntimeException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


mqseries

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • mqseries Funktionen
    • mqseries_back — MQSeries MQBACK
    • mqseries_begin — MQseries MQBEGIN
    • mqseries_close — MQSeries MQCLOSE
    • mqseries_cmit — MQSeries MQCMIT
    • mqseries_conn — MQSeries MQCONN
    • mqseries_connx — MQSeries MQCONNX
    • mqseries_disc — MQSeries MQDISC
    • mqseries_get — MQSeries MQGET
    • mqseries_inq — MQSeries MQINQ
    • mqseries_open — MQSeries MQOPEN
    • mqseries_put1 — MQSeries MQPUT1
    • mqseries_put — MQSeries MQPUT
    • mqseries_set — MQSeries MQSET
    • mqseries_strerror — Returns the error message corresponding to a result code (MQRC)


Einführung

This extension aims to provide an interface for communicating with IBMs WebSphere MQ series Queue managers.

The interface mimics the C-API client interface of WebSphere MQ Series as close as possible. Using the same naming conventions and possibilities of the C-API. In order to understand the workings of this extension some level of understanding the C-API is required.

For MQ-options, MQ-structures, MQ-results etc. please read the WebSphere MQ Application Programming Guide and WebSphere MQ Application Programming Reference.


Anforderungen

A working IBM WebSphere MQ installation. If building the extension the SDK for IBM WebSphere MQ is also required.

Hinweis: Be aware that when running against a IBM WebSphere MQ Client installation some methods are not available. This is not a problem of the extension but just the way the WebSphere MQ Client Interface works.

Installation requirements on non windows platforms

Build the extension and put it in the PHP extension directory.

Installation requirements on Windows

No additional requirements.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/mqseries.

Hinweis: The official name of this extension is mqseries.

There are two ways to connect to a queue manager. These depend on the way the extension is compiled and linked.

  • First one and also the default one is using the mqic libraries. Compiling and linking the extension against these IBM WebSphere MQSeries libraries allows the extension to connect to the Queue manager using the client interface. Remote connections are possible this way.

  • The other way is to compile and link against the mqm libraries. Using these libraries it is possible to make use of the transaction management of a queue manager.

Currently selecting the libraries to use is done by changing the config.m4 file.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

There are no extra configuration parameters.


Ressource-Typen

This extension defines a connection and object_handle resources.

The mqseries_conn() and mqseries_connx() define the connectionn handles.

The mqseries_open() defines the object handle.


Vordefinierte Konstanten

For each WebSphere MQ Constant there is a mqseries counterpart.

For definitions and usage see the WebSphere MQ Application Programming Guide and WebSphere MQ Application Programming Reference red books.

The name of the mqseries counterpart is made by appending the WebSphere MQ constant with MQSERIES_, for example the CompletionCode constants are:

mqseries constants
PHP Constant | MQ Constant
MQSERIES_MQCC_OK | MQCC_OK
MQSERIES_MQCC_WARNING | MQCC_WARNING
MQSERIES_MQCC_FAILED | MQCC_FAILED
MQSERIES_MQCC_UNKNOWN | MQCC_UNKNOWN


mqseries Funktionen

Inhaltsverzeichnis

  • mqseries_back — MQSeries MQBACK
  • mqseries_begin — MQseries MQBEGIN
  • mqseries_close — MQSeries MQCLOSE
  • mqseries_cmit — MQSeries MQCMIT
  • mqseries_conn — MQSeries MQCONN
  • mqseries_connx — MQSeries MQCONNX
  • mqseries_disc — MQSeries MQDISC
  • mqseries_get — MQSeries MQGET
  • mqseries_inq — MQSeries MQINQ
  • mqseries_open — MQSeries MQOPEN
  • mqseries_put1 — MQSeries MQPUT1
  • mqseries_put — MQSeries MQPUT
  • mqseries_set — MQSeries MQSET
  • mqseries_strerror — Returns the error message corresponding to a result code (MQRC)


MQSeries MQBACK

  • « mqseries Funktionen
  • mqseries_begin »
  • PHP Manual
  • mqseries Funktionen
  • MQSeries MQBACK

mqseries_back

(PECL mqseries >= 0.10.0)

mqseries_back — MQSeries MQBACK

Beschreibung

mqseries_back ( resource $hconn , resource &$compCode , resource &$reason ) : void

The mqseries_back() (MQBACK) call indicates to the queue manager that all the message gets and puts that have occurred since the last syncpoint are to be backed out. Messages put as part of a unit of work are deleted; messages retrieved as part of a unit of work are reinstated on the queue.

Using mqseries_back() only works in conjunction with mqseries_begin() and only function when connecting directly to a Queueu manager. Not via the mqclient interface.

Parameter-Liste

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 mqseries_back() example

<?php
    mqseries_back($conn, $comp_code, $reason);

    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

Anmerkungen

Hinweis:

mqseries_back() will not function when using MQSeries Client to connect to a Queueu Manager.

Siehe auch

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_begin() - MQseries MQBEGIN


MQseries MQBEGIN

  • « mqseries_back
  • mqseries_close »
  • PHP Manual
  • mqseries Funktionen
  • MQseries MQBEGIN

mqseries_begin

(PECL mqseries >= 0.10.0)

mqseries_begin — MQseries MQBEGIN

Beschreibung

mqseries_begin ( resource $hconn , array $beginOptions , resource &$compCode , resource &$reason ) : void

The mqseries_begin() (MQBEGIN) call begins a unit of work that is coordinated by the queue manager, and that may involve external resource managers.

Using mqseries_begin() starts the unit of work. Either mqseries_back() or mqseries_cmit() ends the unit of work.

Parameter-Liste

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 mqseries_begin() example

<?php
    $mqbo = array();
    mqseries_begin( $conn,
                    $mqbo,
                    $comp_code,
                    $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        /* reason code 2121 is a warning for more information see MQSeries reference manual.*/
        if ($reason !== 2121) {
            printf("CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        }
    }
?>

Anmerkungen

Hinweis:

mqseries_begin() will not function when using MQSeries Client to connect to a Queueu Manager.

Siehe auch

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_back() - MQSeries MQBACK
  • mqseries_cmit() - MQSeries MQCMIT


MQSeries MQCLOSE

  • « mqseries_begin
  • mqseries_cmit »
  • PHP Manual
  • mqseries Funktionen
  • MQSeries MQCLOSE

mqseries_close

(PECL mqseries >= 0.10.0)

mqseries_close — MQSeries MQCLOSE

Beschreibung

mqseries_close ( resource $hconn , resource $hobj , int $options , resource &$compCode , resource &$reason ) : void

The mqseries_close() (MQCLOSE) call relinquishes access to an object, and is the inverse of the mqseries_open() (MQOPEN) call.

Parameter-Liste

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

options

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 mqseries_close() example

<?php
    mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("close CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

Siehe auch

  • mqseries_open() - MQSeries MQOPEN
  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX


MQSeries MQCMIT

  • « mqseries_close
  • mqseries_conn »
  • PHP Manual
  • mqseries Funktionen
  • MQSeries MQCMIT

mqseries_cmit

(PECL mqseries >= 0.10.0)

mqseries_cmit — MQSeries MQCMIT

Beschreibung

mqseries_cmit ( resource $hconn , resource &$compCode , resource &$reason ) : void

The mqseries_cmit() (MQCMIT) call indicates to the queue manager that the application has reached a syncpoint, and that all of the message gets and puts that have occurred since the last syncpoint are to be made permanent. Messages put as part of a unit of work are made available to other applications; messages retrieved as part of a unit of work are deleted.

Parameter-Liste

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 mqseries_cmit() example

<?php
    mqseries_cmit($conn, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("cmit CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

Anmerkungen

Hinweis:

mqseries_back() will not function when using MQSeries Client to connect to a Queueu Manager.

Siehe auch

  • mqseries_begin() - MQseries MQBEGIN
  • mqseries_back() - MQSeries MQBACK
  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX


MQSeries MQCONN

  • « mqseries_cmit
  • mqseries_connx »
  • PHP Manual
  • mqseries Funktionen
  • MQSeries MQCONN

mqseries_conn

(PECL mqseries >= 0.10.0)

mqseries_conn — MQSeries MQCONN

Beschreibung

mqseries_conn ( string $qManagerName , resource &$hconn , resource &$compCode , resource &$reason ) : void

The mqseries_conn() (MQCONN) call connects an application program to a queue manager. It provides a queue manager connection handle, which is used by the application on subsequent message queuing calls.

Parameter-Liste

qManagerName

Name of queue manager.

Name of the queue manager the application wishes to connect.

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 mqseries_conn() example

<?php
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("conn CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }
?>

Siehe auch

  • mqseries_disc() - MQSeries MQDISC


MQSeries MQCONNX

  • « mqseries_conn
  • mqseries_disc »
  • PHP Manual
  • mqseries Funktionen
  • MQSeries MQCONNX

mqseries_connx

(PECL mqseries >= 0.10.0)

mqseries_connx — MQSeries MQCONNX

Beschreibung

mqseries_connx ( string $qManagerName , array &$connOptions , resource &$hconn , resource &$compCode , resource &$reason ) : void

The mqseries_connx() (MQCONNX) call connects an application program to a queue manager. It provides a queue manager connection handle, which is used by the application on subsequent MQ calls.

The mqseries_connx() call is like the mqseries_conn() (MQCONN) call, except that MQCONNX allows options to be specified to control the way that the call works.

Parameter-Liste

qManagerName

Name of queue manager.

Name of the queue manager the application wishes to connect.

connOps

Options that control the action of function

See also the MQCNO structure.

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 mqseries_connx() example

<?php
    $mqcno = array(
        'Version' => MQSERIES_MQCNO_VERSION_2,
        'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
        'MQCD' => array('ChannelName' => 'MQNX9420.CLIENT',
        'ConnectionName' => 'localhost',
        'TransportType' => MQSERIES_MQXPT_TCP)
    );

    mqseries_connx('MQNX9420', $mqcno, $conn, $comp_code,$reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("Connx CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }

?>

Beispiel #2 mqseries_connx() example using SSL connection & OCSP Responder URL

<?php
    $mqcno = array(
        'Version' => 4, //MQCNO_VERSION_4
        'Options' => MQSERIES_MQCNO_STANDARD_BINDING,
        'MQCD' => array(
            'Version' => 7, //MQCD_VERSION_7
            'ConnectionName' => 'localhost',
            'TransportType' => MQSERIES_MQXPT_TCP,
            'ChannelName' => 'CONNECTIONCHANNEL',
            'SSLCipherSpec' => 'NULL_SHA'
        ),
        'MQSCO' => array(
            'KeyRepository' => '/var/mqm/qmgrs/QUEUEMGR/ssl/key', //Local path where the SSL key repository can be found
            'MQAIR' => array(
                'Version' => 2, //MQAIR_VERSION_2
                'AuthInfoType' => 2, //MQAIT_OCSP
                'OCSPResponderURL' => 'http://dummy.OCSP.responder'
            )
        )
    );

    mqseries_connx('QUEUEMGR', $mqcno, $conn, $comp_code,$reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("Connx CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }

?>

Siehe auch

  • mqseries_disc() - MQSeries MQDISC


MQSeries MQDISC

  • « mqseries_connx
  • mqseries_get »
  • PHP Manual
  • mqseries Funktionen
  • MQSeries MQDISC

mqseries_disc

(PECL mqseries >= 0.10.0)

mqseries_disc — MQSeries MQDISC

Beschreibung

mqseries_disc ( resource $hconn , resource &$compCode , resource &$reason ) : void

The mqseries_disc() (MQDISC) call breaks the connection between the queue manager and the application program, and is the inverse of the mqseries_conn() (MQCONN) or mqseries_connx() (MQCONNX) call.

Parameter-Liste

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 mqseries_disc() example

<?php
    mqseries_disc($conn, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("disc CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }
?>

Siehe auch

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX


MQSeries MQGET

  • « mqseries_disc
  • mqseries_inq »
  • PHP Manual
  • mqseries Funktionen
  • MQSeries MQGET

mqseries_get

(PECL mqseries >= 0.10.0)

mqseries_get — MQSeries MQGET

Beschreibung

mqseries_get ( resource $hConn , resource $hObj , array &$md , array &$gmo , int &$bufferLength , string &$msg , int &$data_length , resource &$compCode , resource &$reason ) : void

The mqseries_get() (MQGET) call retrieves a message from a local queue that has been opened using the mqseries_open() (MQOPEN) call

Parameter-Liste

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

md

Message descriptor (MQMD).

gmo

Get message options (MQGMO).

bufferLength

Expected length of the result buffer

msg

Buffer holding the message that was retrieved from the object.

data_length

Actual buffer length

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 mqseries_get() example

<?php
// open connection to the queue manager
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connection to the testq queue
    mqseries_open(
                $conn,
                array('ObjectName' => 'TESTQ'),
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
// $obj now holds the reference to the object (TESTQ)

// setup empty message descriptor.
    $mdg = array();
// setup get message options
    $gmo = array('Options' => MQSERIES_MQGMO_FAIL_IF_QUIESCING | MQSERIES_MQGMO_WAIT, 'WaitInterval' => 3000);

// get the message from the queue
    mqseries_get($conn, $obj, $mdg, $gmo, 255, $msg, $data_length, $comp_code, $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("GET CompCode:%d Reason:%d Text:%s<br>", $comp_code, $reason, mqseries_strerror($reason));
    }

// close the object reference $obj
    mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);

// disconnect from the queue manager.
    mqseries_disc($conn, $comp_code, $reason);

?>

Siehe auch

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_put() - MQSeries MQPUT


MQSeries MQINQ

  • « mqseries_get
  • mqseries_open »
  • PHP Manual
  • mqseries Funktionen
  • MQSeries MQINQ

mqseries_inq

(PECL mqseries >= 0.10.0)

mqseries_inq — MQSeries MQINQ

Beschreibung

mqseries_inq ( resource $hconn , resource $hobj , int $selectorCount , array $selectors , int $intAttrCount , resource &$intAttr , int $charAttrLength , resource &$charAttr , resource &$compCode , resource &$reason ) : void

The mqseries_inq() (MQINQ) call returns an array of integers and a set of character strings containing the attributes of an object.

Parameter-Liste

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

selectorCount

Count of selectors.

selectors

Array of attribute selectors.

intAttrLength

Count of integer attributes.

intAttr

Array of integer attributes.

charAttrLength

Length of character attributes buffer.

charAttr

Character attributes.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 mqseries_inq() example

<?php
    $int_attr = array();
    $char_attr = "";

    mqseries_inq($conn, $obj, 1, array(MQSERIES_MQCA_Q_MGR_NAME), 0, $int_attr, 48, $char_attr, $comp_code, $reason);

    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("INQ CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    } else {
        echo "INQ QManager name result ".$char_attr."<br>\n";
    }
?>

Siehe auch

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN


MQSeries MQOPEN

  • « mqseries_inq
  • mqseries_put1 »
  • PHP Manual
  • mqseries Funktionen
  • MQSeries MQOPEN

mqseries_open

(PECL mqseries >= 0.10.0)

mqseries_open — MQSeries MQOPEN

Beschreibung

mqseries_open ( resource $hconn , array &$objDesc , int $option , resource &$hobj , resource &$compCode , resource &$reason ) : void

The mqseries_open() (MQOPEN) call establishes access to an object.

Parameter-Liste

hConn

Connection handle.

This handle represents the connection to the queue manager.

objDesc

Object descriptor. (MQOD)

options

Options that control the action of the function.

hObj

Object handle.

This handle represents the object to be used.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 mqseries_open() example

<?php
    $mqods = array('ObjectName' => 'TESTQ');
    mqseries_open(
                $conn,
                $mqods,
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("open CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }
?>

Siehe auch

  • mqseries_close() - MQSeries MQCLOSE


MQSeries MQPUT1

  • « mqseries_open
  • mqseries_put »
  • PHP Manual
  • mqseries Funktionen
  • MQSeries MQPUT1

mqseries_put1

(PECL mqseries >= 0.10.0)

mqseries_put1 — MQSeries MQPUT1

Beschreibung

mqseries_put1 ( resource $hconn , resource &$objDesc , resource &$msgDesc , resource &$pmo , string $buffer , resource &$compCode , resource &$reason ) : void

The mqseries_put1() (MQPUT1) call puts one message on a queue. The queue need not be open.

You can use both the mqseries_put() and mqseries_put1() calls to put messages on a queue; which call to use depends on the circumstances. Use the mqseries_put() (MQPUT) call to place multiple messages on the same queue. Use the mqseries_put1() (MQPUT1) call to put only one message on a queue. This call encapsulates the MQOPEN, MQPUT, and MQCLOSE calls into a single call, minimizing the number of calls that must be issued.

Parameter-Liste

hConn

Connection handle.

This handle represents the connection to the queue manager.

objDesc

Object descriptor. (MQOD)

This is a structure which identifies the queue to which the message is added.

msgDesc

Message descriptor (MQMD).

pmo

Put message options (MQPMO).

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_get() - MQSeries MQGET


MQSeries MQPUT

  • « mqseries_put1
  • mqseries_set »
  • PHP Manual
  • mqseries Funktionen
  • MQSeries MQPUT

mqseries_put

(PECL mqseries >= 0.10.0)

mqseries_put — MQSeries MQPUT

Beschreibung

mqseries_put ( resource $hConn , resource $hObj , array &$md , array &$pmo , string $message , resource &$compCode , resource &$reason ) : void

The mqseries_put() (MQPUT) call puts a message on a queue or distribution list. The queue or distribution list must already be open.

Parameter-Liste

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

md

Message descriptor (MQMD).

pmo

Put message options (MQPMO).

message

The actual message to put onto the queue.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 mqseries_put() example

<?php
// open connection to the queue manager
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connectio to the testq queueu
    mqseries_open(
                $conn,
                array('ObjectName' => 'TESTQ'),
                MQSERIES_MQOO_INPUT_AS_Q_DEF | MQSERIES_MQOO_FAIL_IF_QUIESCING | MQSERIES_MQOO_OUTPUT,
                $obj,
                $comp_code,
                $reason);
// $obj now holds the reference to the object (TESTQ)

// setup the message descriptor array. Check MQSeries reference manuals.
    $md = array(
                'Version' => MQSERIES_MQMD_VERSION_1,
                'Expiry' => MQSERIES_MQEI_UNLIMITED,
                'Report' => MQSERIES_MQRO_NONE,
                'MsgType' => MQSERIES_MQMT_DATAGRAM,
                'Format' => MQSERIES_MQFMT_STRING,
                'Priority' => 1,
                'Persistence' => MQSERIES_MQPER_PERSISTENT);

// setup the put message options.
    $pmo = array('Options' => MQSERIES_MQPMO_NEW_MSG_ID|MQSERIES_MQPMO_SYNCPOINT);

// put the message 'Ping' on the queueu.
    mqseries_put($conn, $obj, $md, $pmo, 'Ping', $comp_code, $reason);

    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("put CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
    }

// close the object reference $obj
    mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);

// disconnect from the queue manager.
    mqseries_disc($conn, $comp_code, $reason);

?>

Siehe auch

  • mqseries_conn() - MQSeries MQCONN
  • mqseries_connx() - MQSeries MQCONNX
  • mqseries_open() - MQSeries MQOPEN
  • mqseries_get() - MQSeries MQGET


MQSeries MQSET

  • « mqseries_put
  • mqseries_strerror »
  • PHP Manual
  • mqseries Funktionen
  • MQSeries MQSET

mqseries_set

(PECL mqseries >= 0.10.0)

mqseries_set — MQSeries MQSET

Beschreibung

mqseries_set ( resource $hConn , resource $hObj , int $selectorCount , array $selectors , int $intAttrCount , array $intAttrs , int $charAttrLength , array $charAttrs , resource &$compCode , resource &$reason ) : void

The mqseries_set() (MQSET) call is used to change the attributes of an object represented by a handle. The object must be a queue.

Parameter-Liste

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

selectorCount

Count of selectors.

selectors

Array of attribute selectors.

intAttrCount

Count of integer attributes.

intAttrs

Array of integer attributes.

charAttrLength

Length of character attributes buffer.

charAttrs

Character attributes.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • mqseries_inq() - MQSeries MQINQ


Returns the error message corresponding to a result code (MQRC)

  • « mqseries_set
  • Network »
  • PHP Manual
  • mqseries Funktionen
  • Returns the error message corresponding to a result code (MQRC)

mqseries_strerror

(PECL mqseries >= 0.10.0)

mqseries_strerror — Returns the error message corresponding to a result code (MQRC)

Beschreibung

mqseries_strerror ( int $reason ) : string

mqseries_strerror() returns the message that correspond to the reason result code.

Parameter-Liste

reason

Reason code qualifying the compCode.

Rückgabewerte

string representation of the reason code message.

Beispiele

Beispiel #1 mqseries_strerror() example

<?php
    if ($comp_code !== MQSERIES_MQCC_OK) {
        printf("open CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        exit;
    }
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Connx CompCode:2 Reason:2059 Text:Queue manager not available for connection.


Network

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Netzwerk-Funktionen
    • checkdnsrr — Prüft DNS-Einträge auf Übereinstimmung mit einem gegebenen Internet-Hostnamen oder einer IP-Adresse
    • closelog — Schließt die Verbindung zum System-Logger
    • dns_check_record — Alias von checkdnsrr
    • dns_get_mx — Alias von getmxrr
    • dns_get_record — Liefert die zu einem Hostnamen gehörenden DNS-Einträge
    • fsockopen — Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
    • gethostbyaddr — Liefert den zur angegebenen IP-Adresse passenden Internet-Hostnamen
    • gethostbyname — Ermittelt die zum angegebenen Internet-Hostnamen passende IPv4-Adresse
    • gethostbynamel — Liefert eine Liste von IPv4-Adressen passend zum angegebenen Internet-Hostnamen
    • gethostname — Gets the host name
    • getmxrr — Ermittelt die zu einem Internet-Hostnamen passenden MX-Records
    • getprotobyname — Liefert die Protokollnummer anhand des Protokollnamens
    • getprotobynumber — Liefert den Protokollnamen anhand der Protokollnummer
    • getservbyname — Liefert die Portnummer passend zu einem Internet-Dienst und -Protokoll
    • getservbyport — Liefert den Internet-Dienst passend zu einem Port und Protokoll
    • header_register_callback — Call a header function
    • header_remove — Remove previously set headers
    • header — Sendet einen HTTP-Header in Rohform
    • headers_list — Gibt eine Liste der gesendeten (oder zum Senden vorbereiteten) Response Header zurück
    • headers_sent — Prüft, ob oder wo die Header bereits gesendet wurden
    • http_response_code — Get or Set the HTTP response code
    • inet_ntop — Konvertiert eine komprimierte IP-Adresse in ein menschenlesbares Format
    • inet_pton — Konvertiert eine IP-Adresse im menschenlesbaren Format in eine komprimierte in_addr-Darstellung
    • ip2long — Konvertiert eine gemäß IPv4-Protokoll angegebene IP-Adresse vom Punkt-Format in ein Long Integer
    • long2ip — Konvertiert eine Long-Integer-Adresse in einen String, der das (IPv4) Internet-Standard-Punktformat enthält ("Dotted-Format")
    • openlog — Stellt eine Verbindung zum Log-Dienst des Systems her
    • pfsockopen — Öffnet eine persistente Verbindung zum Internet oder zu einem Unix-Domainsocket
    • setcookie — Sendet ein Cookie
    • setrawcookie — Sendet ein Cookie, ohne seinen Wert zu URL-kodieren
    • socket_get_status — Alias von stream_get_meta_data
    • socket_set_blocking — Alias von stream_set_blocking
    • socket_set_timeout — Alias von stream_set_timeout
    • syslog — Erzeugt eine Meldung im System-Logging


  • « Network
  • Installation/Konfiguration »
  • PHP Manual
  • Network
  • Einführung

Einführung

Diese Extension stellt verschiedene Netzwerkfunktionen zur Verfügung.


Anforderungen

Unter Linux erfordern die Funktionen checkdnsrr(), getmxrr() und dns_get_record() das Vorhandensein von Bind.


Ressource-Typen

Diese Erweiterung definiert eine Dateizeiger-Ressource, die von fsockopen() und pfsockopen() zurückgegeben wird.


Vordefinierte Konstanten

Die aufgelisteten Konstanten stehen immer zur Verfügung, da sie zum Grundbestand von PHP gehören.

openlog()-Optionen
Konstante | Beschreibung
LOG_CONS | Tritt ein Fehler auf, wenn Daten an den Systemlogger gesendet werden, leite die Ausgabe direkt an die Konsole um.
LOG_NDELAY | Öffnet die Verbindung zum Logger sofort.
LOG_ODELAY | (Standardwert); öffnet die Verbindung erst, wenn die erste Meldung geloggt werden soll.
LOG_NOWAIT |
LOG_PERROR | Schreibt den Logeintrag auch in das Standard-Error-Device
LOG_PID | Fügt die PID an jede Message an
openlog()-Möglichkeiten
Konstante | Beschreibung
LOG_AUTH | Sicherheits-/Authorisierungsmeldungen (benutzt statt dessen LOG_AUTHPRIV in Systemen, wo diese Konstante definiert ist).
LOG_AUTHPRIV | Sicherheits-/Authorisierungsmeldungen (private)
LOG_CRON | Zeitabhängig gestartete Dienste (cron und at)
LOG_DAEMON | Andere Systemdienste
LOG_KERN | Kernel-Meldungen
LOG_LOCAL0 ... LOG_LOCAL7 | Reserviert für lokale Benutzung, diese Konstanten stehen unter Windows nicht zur Verfügung.
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
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
dns_get_record()-Optionen
Konstante | Beschreibung
DNS_A | IPv4-Adress-Ressource
DNS_CAA | Certification Authority Authorization Resource (verfügbar von PHP 7.0.16 und 7.1.2 an)
DNS_MX | Mail-Exchanger-Ressource
DNS_CNAME | Alias (Canonical Name)-Ressource
DNS_NS | Authoritative-Nameserver-Ressource
DNS_PTR | DNS-Pointer-Ressource
DNS_HINFO | Hostinfo-Ressource (Siehe auch » Operating System Names der IANA, wenn Sie mehr über die Bedeutung dieser Werte wissen wollen.)
DNS_SOA | Start of Authority-Ressource
DNS_TXT | Textressource
DNS_ANY | Any-Ressource-Eintrag. Auf den meisten System werden hierauf alle Ressource-Einträge zurückgegeben, die Option sollte allerdings nicht für kritische Anwendungen eingesetzt werden. Verwenden Sie statt dessen DNS_ALL.
DNS_AAAA | IPv6-Adress-Ressource
DNS_ALL | Iterative Anfrage an den Nameserver für jeden verfügbaren Eintragstyp.


Netzwerk-Funktionen

Inhaltsverzeichnis

  • checkdnsrr — Prüft DNS-Einträge auf Übereinstimmung mit einem gegebenen Internet-Hostnamen oder einer IP-Adresse
  • closelog — Schließt die Verbindung zum System-Logger
  • dns_check_record — Alias von checkdnsrr
  • dns_get_mx — Alias von getmxrr
  • dns_get_record — Liefert die zu einem Hostnamen gehörenden DNS-Einträge
  • fsockopen — Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
  • gethostbyaddr — Liefert den zur angegebenen IP-Adresse passenden Internet-Hostnamen
  • gethostbyname — Ermittelt die zum angegebenen Internet-Hostnamen passende IPv4-Adresse
  • gethostbynamel — Liefert eine Liste von IPv4-Adressen passend zum angegebenen Internet-Hostnamen
  • gethostname — Gets the host name
  • getmxrr — Ermittelt die zu einem Internet-Hostnamen passenden MX-Records
  • getprotobyname — Liefert die Protokollnummer anhand des Protokollnamens
  • getprotobynumber — Liefert den Protokollnamen anhand der Protokollnummer
  • getservbyname — Liefert die Portnummer passend zu einem Internet-Dienst und -Protokoll
  • getservbyport — Liefert den Internet-Dienst passend zu einem Port und Protokoll
  • header_register_callback — Call a header function
  • header_remove — Remove previously set headers
  • header — Sendet einen HTTP-Header in Rohform
  • headers_list — Gibt eine Liste der gesendeten (oder zum Senden vorbereiteten) Response Header zurück
  • headers_sent — Prüft, ob oder wo die Header bereits gesendet wurden
  • http_response_code — Get or Set the HTTP response code
  • inet_ntop — Konvertiert eine komprimierte IP-Adresse in ein menschenlesbares Format
  • inet_pton — Konvertiert eine IP-Adresse im menschenlesbaren Format in eine komprimierte in_addr-Darstellung
  • ip2long — Konvertiert eine gemäß IPv4-Protokoll angegebene IP-Adresse vom Punkt-Format in ein Long Integer
  • long2ip — Konvertiert eine Long-Integer-Adresse in einen String, der das (IPv4) Internet-Standard-Punktformat enthält ("Dotted-Format")
  • openlog — Stellt eine Verbindung zum Log-Dienst des Systems her
  • pfsockopen — Öffnet eine persistente Verbindung zum Internet oder zu einem Unix-Domainsocket
  • setcookie — Sendet ein Cookie
  • setrawcookie — Sendet ein Cookie, ohne seinen Wert zu URL-kodieren
  • socket_get_status — Alias von stream_get_meta_data
  • socket_set_blocking — Alias von stream_set_blocking
  • socket_set_timeout — Alias von stream_set_timeout
  • syslog — Erzeugt eine Meldung im System-Logging


Prüft DNS-Einträge auf Übereinstimmung mit einem gegebenen Internet-Hostnamen oder einer IP-Adresse

  • « Netzwerk-Funktionen
  • closelog »
  • PHP Manual
  • Netzwerk-Funktionen
  • Prüft DNS-Einträge auf Übereinstimmung mit einem gegebenen Internet-Hostnamen oder einer IP-Adresse

checkdnsrr

(PHP 4, PHP 5, PHP 7, PHP 8)

checkdnsrr — Prüft DNS-Einträge auf Übereinstimmung mit einem gegebenen Internet-Hostnamen oder einer IP-Adresse

Beschreibung

checkdnsrr ( string $hostname , string $type = "MX" ) : bool

Durchsucht den DNS (Domain-Name-Service) nach Einträgen des Typs type, die zum übergebenen hostname gehören.

Parameter-Liste

hostname

hostname kann entweder eine durch Punkte getrennte IP-Adresse oder der Hostname sein.

type

type kann einer der folgenden Werte sein: A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT oder ANY.

Rückgabewerte

Gibt true zurück, wenn mindestens ein Eintrag gefunden wurde. Wurde kein Eintrag gefunden oder trat ein Fehler auf, wird false zurückgegeben.

Anmerkungen

Hinweis:

Die Funktion stand unter Windows nicht immer zur Verfügung. Verwenden Sie daher ggf. die » PEAR-Klasse » Net_DNS.

Siehe auch

  • dns_get_record() - Liefert die zu einem Hostnamen gehörenden DNS-Einträge
  • getmxrr() - Ermittelt die zu einem Internet-Hostnamen passenden MX-Records
  • gethostbyaddr() - Liefert den zur angegebenen IP-Adresse passenden Internet-Hostnamen
  • gethostbyname() - Ermittelt die zum angegebenen Internet-Hostnamen passende IPv4-Adresse
  • gethostbynamel() - Liefert eine Liste von IPv4-Adressen passend zum angegebenen Internet-Hostnamen
  • the named(8) manual page


Schließt die Verbindung zum System-Logger

  • « checkdnsrr
  • dns_check_record »
  • PHP Manual
  • Netzwerk-Funktionen
  • Schließt die Verbindung zum System-Logger

closelog

(PHP 4, PHP 5, PHP 7, PHP 8)

closelog — Schließt die Verbindung zum System-Logger

Beschreibung

closelog ( ) : bool

closelog() schließt den Descriptor, der benötigt wird, um in den System-Logger zu schreiben. Der Gebrauch von closelog() ist optional.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • syslog() - Erzeugt eine Meldung im System-Logging
  • openlog() - Stellt eine Verbindung zum Log-Dienst des Systems her


Alias von checkdnsrr

  • « closelog
  • dns_get_mx »
  • PHP Manual
  • Netzwerk-Funktionen
  • Alias von checkdnsrr

dns_check_record

(PHP 5, PHP 7, PHP 8)

dns_check_record — Alias von checkdnsrr()

Beschreibung

Diese Funktion ist ein Alias für: checkdnsrr().


Alias von getmxrr

  • « dns_check_record
  • dns_get_record »
  • PHP Manual
  • Netzwerk-Funktionen
  • Alias von getmxrr

dns_get_mx

(PHP 5, PHP 7, PHP 8)

dns_get_mx — Alias von getmxrr()

Beschreibung

Diese Funktion ist ein Alias für: getmxrr().


Liefert die zu einem Hostnamen gehörenden DNS-Einträge

  • « dns_get_mx
  • fsockopen »
  • PHP Manual
  • Netzwerk-Funktionen
  • Liefert die zu einem Hostnamen gehörenden DNS-Einträge

dns_get_record

(PHP 5, PHP 7, PHP 8)

dns_get_record — Liefert die zu einem Hostnamen gehörenden DNS-Einträge

Beschreibung

dns_get_record ( string $hostname , int $type = DNS_ANY , array &$authoritative_name_servers = null , array &$additional_records = null , bool $raw = false ) : array|false

Fragt die zum übergebenen hostname gehörenden DNS Resource Records ab.

Parameter-Liste

hostname

hostname sollte ein gültiger Hostname wie z.B. "www.example.com". sein. Reverse Lookups sind mit der in-addr.arpa-Notation möglich, jedoch sollte für diesen Fall gethostbyaddr() genutzt werden.

Hinweis:

Gemäß dem DNS-Standard werden E-Mail-Adressen in der Form user.host (zum Beispiel: hostmaster.example.com statt hostmaster@example.com) zurückgegeben. Darum ist es wichtig, diesen Wert zu überprüfen und ihn ggf. zu ändern, bevor Sie ihn in Funktionen wie z.B mail() verwenden.

type

Standardmäßig sucht dns_get_record() nach jedem Resource Record für den hostname. Um die Anfrage zu einzuschränken, muss type gegeben sein. Dieser Paramter kann einen der folgenden Werte annehmen: DNS_A, DNS_CAA, DNS_CNAME, DNS_HINFO, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_A6, DNS_ALL oder DNS_ANY.

Hinweis:

Durch Eigenheiten in der Performance von libresolv auf verschiedenen Plattformen kann es passieren, dass DNS_ANY nicht alle Records zurückgibt. Das langsamere DNS_ALL arbeitet in diesem Fall zuverlässiger.

Hinweis:

DNS_CAA wird unter Windows nicht unterstützt.

authoritative_name_servers

Wird per Referenz übergeben und wird, wenn es angegeben wurde, mit den Records für die Autoritativen Nameserver gefüllt.

additional_records

Wird per Referenz übergeben und wird, wenn es angegeben wurde, mit zusätzlichen Records gefüllt.

raw

Der Parameter type wird als unverarbeitete DNS-Typ-ID interpretiert (die DNS_*-Konstanten können nicht verwendet werden). Der Rückgabewert enthält einen data-Schlüssel, der manuell geparst werden muss.

Rückgabewerte

Diese Funktion gibt ein Array an assioziativen Arrays zurück. Im Fehlerfall wird false zurückgegeben. Jedes assoziative Array enthält mindestens die folgenden Keys:

Grundlegende DNS-Attribute
Attribut | Bedeutung
host | Der Host im DNS-Namensraum, auf den sich die restlichen Werte in dem assoziativen Array beziehen.
class | dns_get_record() gibt nur Internet Class Records zurück, wodurch dieser Paramater immer IN zurückgibt.
type | Ein String, in dem der Record-Typ hinterlegt ist. Zusätzliche Attribute sind, abhängig vom Typ, ebenfalls in dem Array enthalten. Siehe untere Tabelle.
ttl | "Time To Live", die Zeit, die für diesen Record noch verbleibt. Diese ist nicht identisch mit der ursprünglichen ttl des Records, sondern entspricht der ursprünglichen ttl abzüglich der Zeit, die seit der Abfrage des autoritativen Namensservers vergangen ist.

Andere Keys im assoziativen Array abhängig von 'type'
Type | Extra Spalten
A | ip: Eine IPv4-Addresse in dezimaler Punktnotation.
MX | pri: Die Priorität des MX-Records. Niedrigere Zahlen bedeuten eine höhere Priorität. target: FQDN des MX-Records. Siehe auch: dns_get_mx().
CNAME | target: Die FQDN des Ziels, auf das dieser Alias zeigt.
NS | target: Die FQDN des Nameservers, der der autorative Nameserver für dieses Zone ist.
PTR | target: Die Stelle im DNS-Namensraum, auf den dieser Record zeigt.
TXT | txt: Ein beliebieger String, der diesem Record zugeordnet ist.
HINFO | cpu: Die IANA-Nummer für die CPU des Hosts, der durch diesen Record referenziert wird. os: Die IANA-Nummer für das Betriebssystem des Hosts, der durch diesen Record referenziert wird. Siehe IANAs » Operating System Names für die Bedeutung dieses Records.
CAA | flags: Ein Ein-Byte-Bitfeld; zurzeit ist nur Bit 0 definiert, was "kritisch" bedeutet; andere Bits sind reserviert und sollten ignoriert werden. tag: Der CAA-Tag-Name (alphanumerische ASCII-Zeichenkette). value: Der CAA-Tag-Wert (Binärstring, der Unterformate verwenden kann). Für weitere Information siehe » RFC 6844
SOA | mname: Der FQDN für den Host, von dem diese Resource Records kommen. rname: Die E-Mail-Adresse des Administrators dieser Domain. serial: Die aufsteigende Nummer für die Revision der angefragten Domain. refresh: Das Aktualisierungsintervall, das die sekundären Nameserver nutzen sollten, wenn sie ihre gespiegelten Kopien der Zone aktualisieren wollen. retry: Die Zeit, die nach einem fehlerhaften Versuch gewartet werden soll. expire: Die maximale Zeit, die ein sekundärer Nameserver Kopien der Zone behalten soll. Wird nach jedem erfolgreichen Refresh neu gezählt. minimum-ttl: Die Anzahl der Sekunden, die eine Anfrage im Cache behalten wird. Kann von individuellen Resource Records überschrieben werden.
AAAA | ipv6: Die IPv6-Addresse.
A6 (PHP >= 5.1.0) | masklen: Die Anzahl der Bits, die von dem durch chain vorgegeben Ziel geerbt werden. ipv6: Die Adresse für diesen speziellen Record, der mit chain zusammengeführt werden soll. chain: Der übergeordnete Record, der mit den ipv6-Daten zusammengeführt werden soll.
SRV | pri: (Priorität) Die niedrigsten Prioritäten sollten zuerst verwendet werden. weight: Die Rangfolge der Gewichtung, welche der üblicherweise priorisierten targets zufällig ausgewählt werden sollen. Bsp.: Ziel A: 3, Ziel B: 2. Ziel A wird im Mittel in 60% der Fälle gewählt. target und port: Hostname und Port, unter dem der Service erreicht werden kann. Für weitere Information siehe: » RFC 2782.
NAPTR | order und pref: Gleichwertig zu pri und weight oben. flags, services, regex, und replacement: Parameter wie in » RFC 2915 definiert.

Changelog

Version | Beschreibung
7.0.16, 7.1.2 | Die Unterstützung für den CAA-Record-Typ wurde hinzugefügt.

Beispiele

Beispiel #1 Benutzung von dns_get_record()

<?php
$result = dns_get_record("php.net");
print_r($result);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)

Beispiel #2 Benutzung von dns_get_record() und DNS_ANY

Da man häufig auch die IP des Mailservers für einen MX-Record benötigt, gibt dns_get_record() auch ein Array in additional_records zurück, in dem die zugehörigen Records zu finden sind. Ebenso wird authoritative_name_servers mit einer Liste der autorativen Nameserver zurückgegeben.

<?php
/* Request "ANY" record for php.net,
   and create $authns and $addtl arrays
   containing list of name servers and
   any additional records which go with
   them */
$result = dns_get_record("php.net", DNS_ANY, $authns, $addtl);
echo "Result = ";
print_r($result);
echo "Auth NS = ";
print_r($authns);
echo "Additional = ";
print_r($addtl);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Result = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)
Auth NS = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [1] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [2] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [3] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

)
Additional = Array
(
    [0] => Array
        (
            [host] => pair2.php.net
            [type] => A
            [ip] => 216.92.131.5
            [class] => IN
            [ttl] => 6766
        )

    [1] => Array
        (
            [host] => remote1.easydns.com
            [type] => A
            [ip] => 64.39.29.212
            [class] => IN
            [ttl] => 100384
        )

    [2] => Array
        (
            [host] => remote2.easydns.com
            [type] => A
            [ip] => 212.100.224.80
            [class] => IN
            [ttl] => 81241
        )

    [3] => Array
        (
            [host] => ns1.easydns.com
            [type] => A
            [ip] => 216.220.40.243
            [class] => IN
            [ttl] => 81241
        )

    [4] => Array
        (
            [host] => ns2.easydns.com
            [type] => A
            [ip] => 216.220.40.244
            [class] => IN
            [ttl] => 81241
        )

)

Anmerkungen

Hinweis:

Für die Kompatibilität auf einigen Betriebsystemem mit Versionen vor PHP 5.3.0 kann die » PEAR-Klasse » Net_DNS benutzt werden.

Siehe auch

  • dns_get_mx() - Alias von getmxrr
  • dns_check_record() - Alias von checkdnsrr


Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her

  • « dns_get_record
  • gethostbyaddr »
  • PHP Manual
  • Netzwerk-Funktionen
  • Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her

fsockopen

(PHP 4, PHP 5, PHP 7, PHP 8)

fsockopen — Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her

Beschreibung

fsockopen ( string $hostname , int $port = -1 , int &$error_code = null , string &$error_message = null , float|null $timeout = null ) : resource|false

Initialisiert eine Socket-Verbindung zu der in hostname angegebenen Ressource.

PHP unterstützt Ziele in Internet- und Unixdomänen, wie sie unter Liste der unterstützten Socket-Transporter beschrieben sind. Eine Liste unterstützter Transportarten können Sie auch mittels stream_get_transports() abrufen.

Der Socket wird standardmäßig im blockierenden Modus geöffnet. Sie können mit der Funktion stream_set_blocking() auf den nichtblockierenden Modus wechseln.

Die Funktion stream_socket_client() ist ähnlich, bietet aber eine umfangreichere Auswahl von Optionen an, einschließlich blockierungsfreier Verbindungen und der Möglichkeit, einen Stream-Kontext zu übergeben.

Parameter-Liste

hostname

Ist die OpenSSL-Unterstützung installiert, können dem Parameter hostname entweder ein ssl:// oder ein tls:// vorangestellt werden, um bei der Verbindung zum entfernten Host eine SSL- oder TLS-Clientverbindung über TCP/IP zu verwenden.

port

Die Portnummer. Diese kann ausgelassen und mit -1 übersprungen werden, wenn der Transport keinen Port verwendet, wie z.B. unix://.

error_code

Falls angegeben, enthält der Parameter die Fehlernummer auf Systemebene, die beim Aufruf der Funktion connect() auftrat.

Wenn der Rückgabewert von error_code 0 ist und die Funktion false zurückgibt, ist dies ein Zeichen, dass der Fehler vor dem Aufruf von connect() auftrat. Dies ist meist der Fall, wenn es ein Problem beim Initialisieren des Sockets gibt.

error_message

Die Fehlermeldung als String.

timeout

Der Verbindungs-Timeout in Sekunden.

Hinweis:

Wenn Sie einen Timeout für das Lesen oder Schreiben von Daten über den Socket setzen wollen, verwenden Sie stream_set_timeout(), da der Parameter timeout von fsockopen() nur für den Verbindungsaufbau mit dem Socket gedacht ist.

Rückgabewerte

Die Funktion fsockopen() gibt einen Zeiger auf eine Datei zurück, der zusammen mit den anderen Dateifunktionen (wie fgets(), fgetss(), fwrite(), fclose() und feof()) verwendet werden kann. Wenn der Aufruf fehlschlägt, wird false zurückgegeben.

Fehler/Exceptions

Löst eine E_WARNING-Warnung aus, wenn hostname keine gültige Domain ist.

Changelog

Version | Beschreibung
8.0.0 | timeout ist nun ein Nullable-Typ.

Beispiele

Beispiel #1 fsockopen()-Beispiel

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

Beispiel #2 Eine UDP-Verbindung nutzen

Das folgende Beispiel zeigt, wie Sie den Tag und die Zeit vom UDP-Service "daytime" (Port 13) Ihrer Maschine abfragen können.

<?php
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Anmerkungen

Hinweis:

Abhängig von der Systemumgebung kann es vorkommen, dass die Unix-Domäne oder der optionale Verbindungs-Timeout nicht verfügbar sind.

Warnung

UDP-Sockets werden manchmal ohne die Rückgabe eines Fehlermeldung geöffnet, obwohl der entfernte Host nicht erreichbar ist. Der Fehler wird nur sichtbar, wenn Sie Daten vom Socket lesen oder zum Socket schreiben wollen. Der Grund dafür ist, dass UDP ein "verbindungsloses" Protokoll ist, was bedeutet, dass das Betriebssystem nicht versucht, eine Verbindung zum Socket herzustellen, solange es nicht wirklich Daten senden oder empfangen muss.

Hinweis: Wenn Sie eine numerische IPv6-Adresse angeben, z.B. fe80::1, müssen Sie die IP in eckige Klammern schreiben, z.B. tcp://[fe80::1]:80.

Siehe auch

  • pfsockopen() - Öffnet eine persistente Verbindung zum Internet oder zu einem Unix-Domainsocket
  • stream_socket_client() - Open Internet or Unix domain socket connection
  • stream_set_blocking() - Set blocking/non-blocking mode on a stream
  • stream_set_timeout() - Set timeout period on a stream
  • fgets() - Liest eine Zeile von der Position des Dateizeigers
  • fgetss() - Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
  • fwrite() - Binär-sicheres Dateischreiben
  • fclose() - Schließt einen offenen Dateizeiger
  • feof() - Prüft, ob ein Dateizeiger am Ende der Datei steht
  • socket_connect() - Baut eine Verbindung über einen Socket auf
  • Die Curl-Erweiterung


Liefert den zur angegebenen IP-Adresse passenden Internet-Hostnamen

  • « fsockopen
  • gethostbyname »
  • PHP Manual
  • Netzwerk-Funktionen
  • Liefert den zur angegebenen IP-Adresse passenden Internet-Hostnamen

gethostbyaddr

(PHP 4, PHP 5, PHP 7, PHP 8)

gethostbyaddr — Liefert den zur angegebenen IP-Adresse passenden Internet-Hostnamen

Beschreibung

gethostbyaddr ( string $ip ) : string|false

Gibt den Internet-Hostnamen passend zur angegebenen ip zurück.

Parameter-Liste

ip

Die IP-Adresse des Hosts.

Rückgabewerte

Gibt bei Erfolg den Hostnamen zurück, im Fehlerfall die unmodifizierte ip oder false bei einer fehlerhaften Eingabe.

Beispiele

Beispiel #1 Ein einfaches gethostbyaddr()-Beispiel

<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

echo $hostname;
?>

Siehe auch

  • gethostbyname() - Ermittelt die zum angegebenen Internet-Hostnamen passende IPv4-Adresse
  • gethostbynamel() - Liefert eine Liste von IPv4-Adressen passend zum angegebenen Internet-Hostnamen


Ermittelt die zum angegebenen Internet-Hostnamen passende IPv4-Adresse

  • « gethostbyaddr
  • gethostbynamel »
  • PHP Manual
  • Netzwerk-Funktionen
  • Ermittelt die zum angegebenen Internet-Hostnamen passende IPv4-Adresse

gethostbyname

(PHP 4, PHP 5, PHP 7, PHP 8)

gethostbyname — Ermittelt die zum angegebenen Internet-Hostnamen passende IPv4-Adresse

Beschreibung

gethostbyname ( string $hostname ) : string

Gibt die IPv4-Adresse des in hostname angegebenen Internet-Hosts zurück.

Parameter-Liste

hostname

Der Hostname.

Rückgabewerte

Gibt die IPv4-Adresse oder im Fehlerfall einen String zurück, der den unveränderten hostname enthält.

Beispiele

Beispiel #1 Ein einfaches gethostbyname()-Beispiel

<?php
$ip = gethostbyname('www.example.com');

echo $ip;
?>

Siehe auch

  • gethostbyaddr() - Liefert den zur angegebenen IP-Adresse passenden Internet-Hostnamen
  • gethostbynamel() - Liefert eine Liste von IPv4-Adressen passend zum angegebenen Internet-Hostnamen
  • inet_pton() - Konvertiert eine IP-Adresse im menschenlesbaren Format in eine komprimierte in_addr-Darstellung
  • inet_ntop() - Konvertiert eine komprimierte IP-Adresse in ein menschenlesbares Format


Liefert eine Liste von IPv4-Adressen passend zum angegebenen Internet-Hostnamen

  • « gethostbyname
  • gethostname »
  • PHP Manual
  • Netzwerk-Funktionen
  • Liefert eine Liste von IPv4-Adressen passend zum angegebenen Internet-Hostnamen

gethostbynamel

(PHP 4, PHP 5, PHP 7, PHP 8)

gethostbynamel — Liefert eine Liste von IPv4-Adressen passend zum angegebenen Internet-Hostnamen

Beschreibung

gethostbynamel ( string $hostname ) : array|false

Gibt eine Liste von IPv4-Adressen zurück, zu denen der angegebene Internet-Host hostname aufgelöst wurde.

Parameter-Liste

hostname

Der Hostname.

Rückgabewerte

Gibt ein Array von IPv4-Adressen zurück. Kann hostname nicht aufgelöst werden, wird false zurückgegeben.

Beispiele

Beispiel #1 gethostbynamel()-Beispiel

<?php
$hosts = gethostbynamel('www.example.com');
print_r($hosts);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => 192.0.34.166
)

Siehe auch

  • gethostbyname() - Ermittelt die zum angegebenen Internet-Hostnamen passende IPv4-Adresse
  • gethostbyaddr() - Liefert den zur angegebenen IP-Adresse passenden Internet-Hostnamen
  • checkdnsrr() - Prüft DNS-Einträge auf Übereinstimmung mit einem gegebenen Internet-Hostnamen oder einer IP-Adresse
  • getmxrr() - Ermittelt die zu einem Internet-Hostnamen passenden MX-Records
  • the named(8) manual page


Gets the host name

  • « gethostbynamel
  • getmxrr »
  • PHP Manual
  • Netzwerk-Funktionen
  • Gets the host name

gethostname

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gethostname — Gets the host name

Beschreibung

gethostname ( ) : string|false

gethostname() gets the standard host name for the local machine.

Rückgabewerte

Returns a string with the hostname on success, otherwise false is returned.

Beispiele

Beispiel #1 A simple gethostname() example

<?php
echo gethostname(); // may output e.g,: sandie

// Or, an option that also works before PHP 5.3
echo php_uname('n'); // may output e.g,: sandie
?>

Siehe auch

  • gethostbyname() - Ermittelt die zum angegebenen Internet-Hostnamen passende IPv4-Adresse
  • gethostbyaddr() - Liefert den zur angegebenen IP-Adresse passenden Internet-Hostnamen
  • php_uname() - Returns information about the operating system PHP is running on


Ermittelt die zu einem Internet-Hostnamen passenden MX-Records

  • « gethostname
  • getprotobyname »
  • PHP Manual
  • Netzwerk-Funktionen
  • Ermittelt die zu einem Internet-Hostnamen passenden MX-Records

getmxrr

(PHP 4, PHP 5, PHP 7, PHP 8)

getmxrr — Ermittelt die zu einem Internet-Hostnamen passenden MX-Records

Beschreibung

getmxrr ( string $hostname , array &$hosts , array &$weights = null ) : bool

Sucht im DNS nach MX-Records, die zu hostname passen.

Parameter-Liste

hostname

Der Internet-Hostname.

hosts

Eine Liste der gefundenen MX-Records wird im Array hosts abgelegt.

weights

Wenn ein weights-Array übergeben wurde, werden darin die Gewichtungsinformationen gesammelt.

Rückgabewerte

Gibt true zurück, wenn mindestens ein Eintrag gefunden wurde. Wurde kein Eintrag gefunden oder trat ein Fehler auf, wird false zurückgegeben.

Anmerkungen

Hinweis:

Diese Funktion sollte nicht zur Adressverifikation verwendet werden. Nur die im DNS gefundenen Mailserver werden zurückgegeben; daher sollte entsprechend » RFC 2821 der hostname selbst mit der Priorität 0 als einziger MX verwendet werden, wenn kein MX-Record gefunden wurde.

Hinweis:

Die Funktion stand unter Windows nicht immer zur Verfügung. Verwenden Sie daher ggf. die » PEAR-Klasse » Net_DNS.

Siehe auch

  • checkdnsrr() - Prüft DNS-Einträge auf Übereinstimmung mit einem gegebenen Internet-Hostnamen oder einer IP-Adresse
  • dns_get_record() - Liefert die zu einem Hostnamen gehörenden DNS-Einträge
  • gethostbyname() - Ermittelt die zum angegebenen Internet-Hostnamen passende IPv4-Adresse
  • gethostbynamel() - Liefert eine Liste von IPv4-Adressen passend zum angegebenen Internet-Hostnamen
  • gethostbyaddr() - Liefert den zur angegebenen IP-Adresse passenden Internet-Hostnamen
  • die named(8)-Manpage


Liefert die Protokollnummer anhand des Protokollnamens

  • « getmxrr
  • getprotobynumber »
  • PHP Manual
  • Netzwerk-Funktionen
  • Liefert die Protokollnummer anhand des Protokollnamens

getprotobyname

(PHP 4, PHP 5, PHP 7, PHP 8)

getprotobyname — Liefert die Protokollnummer anhand des Protokollnamens

Beschreibung

getprotobyname ( string $protocol ) : int|false

Die Funktion getprotobyname() gibt die Protokollnummer passend zu dem Protokoll protocol zurück. Der Wert wird anhand der Datei /etc/protocols ermittelt.

Parameter-Liste

protocol

Der Protokollname.

Rückgabewerte

Gibt die Protokollnummer zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 getprotobyname()-Beispiel

<?php
$protocol = 'tcp';
$get_prot = getprotobyname($protocol);
if ($get_prot === FALSE) {
    echo 'Ungueltiges Protokoll';
} else {
    echo 'Protokoll #' . $get_prot;
}
?>

Siehe auch

  • getprotobynumber() - Liefert den Protokollnamen anhand der Protokollnummer


Liefert den Protokollnamen anhand der Protokollnummer

  • « getprotobyname
  • getservbyname »
  • PHP Manual
  • Netzwerk-Funktionen
  • Liefert den Protokollnamen anhand der Protokollnummer

getprotobynumber

(PHP 4, PHP 5, PHP 7, PHP 8)

getprotobynumber — Liefert den Protokollnamen anhand der Protokollnummer

Beschreibung

getprotobynumber ( int $protocol ) : string|false

Die Funktion getprotobynumber() gibt den Protokollnamen passend zur angegebenen Protokollnummer protocol zurück. Der Wert wird anhand der Datei /etc/protocols ermittelt.

Parameter-Liste

protocol

Die Protokollnummer.

Rückgabewerte

Gibt den Protokollnamen als String zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • getprotobyname() - Liefert die Protokollnummer anhand des Protokollnamens


Liefert die Portnummer passend zu einem Internet-Dienst und -Protokoll

  • « getprotobynumber
  • getservbyport »
  • PHP Manual
  • Netzwerk-Funktionen
  • Liefert die Portnummer passend zu einem Internet-Dienst und -Protokoll

getservbyname

(PHP 4, PHP 5, PHP 7, PHP 8)

getservbyname — Liefert die Portnummer passend zu einem Internet-Dienst und -Protokoll

Beschreibung

getservbyname ( string $service , string $protocol ) : int|false

Die Funktion getservbyname() gibt den Port zurück, der zum service für das angegebene protocol gehört. Der Wert wird anhand des Eintrags in der /etc/services ermittelt.

Parameter-Liste

service

Der Name des Internet-Dienstes als String.

protocol

protocol ist entweder "tcp" oder "udp" (in Kleinschreibung).

Rückgabewerte

Gibt die Portnummer zurück. Wird service oder protocol nicht gefunden, wird false zurückgegeben.

Beispiele

Beispiel #1 getservbyname()-Beispiel

<?php
$services = array('http', 'ftp', 'ssh', 'telnet', 'imap',
'smtp', 'nicname', 'gopher', 'finger', 'pop3', 'www');

foreach ($services as $service) {
    $port = getservbyname($service, 'tcp');
    echo $service . ": " . $port . "<br />\n";
}
?>

Siehe auch

  • getservbyport() - Liefert den Internet-Dienst passend zu einem Port und Protokoll
  • » http://www.iana.org/assignments/port-numbers für die komplette Liste der Portnummern.


Liefert den Internet-Dienst passend zu einem Port und Protokoll

  • « getservbyname
  • header_register_callback »
  • PHP Manual
  • Netzwerk-Funktionen
  • Liefert den Internet-Dienst passend zu einem Port und Protokoll

getservbyport

(PHP 4, PHP 5, PHP 7, PHP 8)

getservbyport — Liefert den Internet-Dienst passend zu einem Port und Protokoll

Beschreibung

getservbyport ( int $port , string $protocol ) : string|false

Die Funktion getservbyport() gibt den Internet-Dienst zurück, der zum port für das angegebene protocol passt (der Service wird anhand der Datei /etc/services ermittelt).

Parameter-Liste

port

Die Portnummer.

protocol

protocol ist entweder "tcp" oder "udp" (in Kleinschreibung).

Rückgabewerte

Gibt den Namen des Internet-Dienstes als String zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • getservbyname() - Liefert die Portnummer passend zu einem Internet-Dienst und -Protokoll


Call a header function

  • « getservbyport
  • header_remove »
  • PHP Manual
  • Netzwerk-Funktionen
  • Call a header function

header_register_callback

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

header_register_callback — Call a header function

Beschreibung

header_register_callback ( callable $callback ) : bool

Registers a function that will be called when PHP starts sending output.

The callback is executed just after PHP prepares all headers to be sent, and before any other output is sent, creating a window to manipulate the outgoing headers before being sent.

Parameter-Liste

callback

Function called just before the headers are sent. It gets no parameters and the return value is ignored.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 header_register_callback() example

<?php

header('Content-Type: text/plain');
header('X-Test: foo');

function foo() {
 foreach (headers_list() as $header) {
   if (strpos($header, 'X-Powered-By:') !== false) {
     header_remove('X-Powered-By');
   }
   header_remove('X-Test');
 }
}

$result = header_register_callback('foo');
echo "a";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Content-Type: text/plain

a

Anmerkungen

header_register_callback() is executed just as the headers are about to be sent out, so any output from this function can break output.

Hinweis:

Header sind nur dann zugänglich und werden nur dann gesendet, wenn die genutzte SAPI sie unterstützt.

Siehe auch

  • headers_list() - Gibt eine Liste der gesendeten (oder zum Senden vorbereiteten) Response Header zurück
  • header_remove() - Remove previously set headers
  • header() - Sendet einen HTTP-Header in Rohform


Remove previously set headers

  • « header_register_callback
  • header »
  • PHP Manual
  • Netzwerk-Funktionen
  • Remove previously set headers

header_remove

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

header_remove — Remove previously set headers

Beschreibung

header_remove ( string $name = ? ) : void

Removes an HTTP header previously set using header().

Parameter-Liste

name

The header name to be removed.

Hinweis: This parameter is case-insensitive.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Unsetting specific header.

<?php
header("X-Foo: Bar");
header("X-Bar: Baz");
header_remove("X-Foo");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

X-Bar: Baz

Beispiel #2 Unsetting all previously set headers.

<?php
header("X-Foo: Bar");
header("X-Bar: Baz");
header_remove();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Anmerkungen

Achtung

    This function will remove all headers set by PHP,
    including cookies, session and the X-Powered-By headers.

Hinweis:

  Header sind nur dann zugänglich und werden nur dann gesendet,
  wenn die genutzte SAPI sie unterstützt.

Siehe auch

  • header() - Sendet einen HTTP-Header in Rohform
    •

  • headers_sent() - Prüft, ob oder wo die Header bereits gesendet wurden
    •


Sendet einen HTTP-Header in Rohform

  • « header_remove
  • headers_list »
  • PHP Manual
  • Netzwerk-Funktionen
  • Sendet einen HTTP-Header in Rohform

header

(PHP 4, PHP 5, PHP 7, PHP 8)

header — Sendet einen HTTP-Header in Rohform

Beschreibung

header ( string $header , bool $replace = true , int $response_code = 0 ) : void

header() wird zum Senden von HTTP-Anfangsinformationen (Headern) im Rohformat benutzt. Weitere Informationen über die HTTP-Header finden Sie in der » HTTP/1.1-Spezifikation.

Beachten Sie, dass Sie die Funktion header() aufrufen müssen, bevor Sie irgendeine andere Art von Ausgabe (seien es normale HTML-Tags, Leerzeilen in einer Datei oder von PHP) zum Client schicken. Es handelt sich hier um einen typischen Fehler, der zum Beispiel auftritt, wenn Sie Code mit Leerzeichen oder Leerzeilen, die ausgegeben werden, mittels include oder require oder einer anderen Dateizugriffs-Funktion einlesen, bevor header() aufgerufen wird. Das gleiche Problem kann auch auftreten, wenn Sie eine Datei verwenden, in der HTML und PHP vermischt wurden.

<html>
<?php
/* Dies wird einen Fehler provozieren. Beachten Sie die vorangehende
 * Ausgabe, die vor dem Aufruf von header() erzeugt wird */
header('Location: http://www.example.com/');
exit;
?>

Parameter-Liste

header

Der Header-String.

Es gibt zwei Spezialfälle von Header-Aufrufen. Der erste ist ein Header, der mit "HTTP/" beginnt (ob Groß- oder Kleinschreibung ist nicht relevant) und zum Herausfinden des zu sendenden HTTP-Statuscodes verwendet wird. Wenn Sie zum Beispiel Apache konfiguriert haben, um ein PHP-Skript zum Bearbeiten von Anforderungen fehlender Dateien (mittels der ErrorDocument-Direktive) zu verwenden, möchten Sie bestimmt sicherstellen, dass Ihr Skript den passenden Statuscode generiert.

<?php
header("HTTP/1.0 404 Not Found");
?>

Der zweite Spezialfall ist der "Location:"-Header. Es wird nicht nur der Header an den Browser geschickt, sondern auch ein REDIRECT (302) Statuscode, wenn nicht bereits der 201- oder ein 3xx-Statuscode gesendet wurde.

<?php
header("Location: http://www.example.com/"); /* Browser umleiten */

/* Stellen Sie sicher, dass der nachfolgende Code nicht ausgefuehrt wird,
   wenn eine Umleitung stattfindet. */
exit;
?>

replace

Der optionale Parameter replace gibt an, ob der Header einen vorhergehenden gleichartigen Header ersetzten soll, oder ob ein zweiter Header des selben Typs hinzugefügt werden soll. Standardmäßig wird ersetzt; wenn Sie als zweites Argument false übergeben, können Sie so mehrere Header desselben Typs erzwingen. Zum Beispiel:

<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>

response_code

Forciert einen HTTP-Response-Code des angegebenen Wertes. Dieser Parameter hat nur einen Effekt, wenn header nicht leer ist.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Download-Dialog

Wollen Sie den Benutzer auffordern, die von Ihnen gesendeten Daten wie z.B. eine generierte PDF-Datei zu speichern, können Sie den Header » Content-Disposition verwenden, um einen empfohlenen Dateinamen anzubieten und den Browser zu zwingen, den Dialog zum Speichern anzuzeigen.

<?php
// Wir werden eine PDF-Datei ausgeben
header('Content-Type: application/pdf');

// Es wird downloaded.pdf benannt
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// Die originale PDF-Datei heißt original.pdf
readfile('original.pdf');
?>

Beispiel #2 Caching-Direktiven

PHP-Skripte erzeugen oft dynamische Inhalte, die weder vom Browser noch von irgendeinem Proxy zwischen Web-Server und Client-Browser gepuffert ("gecached") werden sollen bzw. dürfen. Bei vielen Proxies und Browsern kann das Cachen wie folgt unterbunden werden:

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Datum in der Vergangenheit
?>

Hinweis:

Es könnte auch sein, dass Ihre Seiten nicht zwischengespeichert werden, auch wenn Sie obigen Header nicht ausgeben. Es gibt eine Anzahl Optionen, welche die Benutzer in ihren Browser einstellen können, um das standardmäßige Caching-Verhalten zu verändern. Durch das Senden obiger Header sollten Sie jedwede Einstellungen, die die Ausgabe Ihres Skriptes zwischenspeichern würden, außer Kraft setzen.

Weiterhin können Sie session_cache_limiter() und die Konfigurationsoption session.cache_limiter verwenden, um die korrekten Header bezüglich Caching automatisch generieren zu lassen, sollten Sie Sessions benutzen.

Anmerkungen

Hinweis:

Header sind nur dann zugänglich und werden nur dann gesendet, wenn die genutzte SAPI sie unterstützt.

Hinweis:

Sie können die Limitierung, dass Header vor jeglicher Ausgabe gesendet werden müssen, umgehen, indem Sie die Ausgabepufferung benutzen, mit dem Overhead, dass Ihre gesamten Ausgaben an den Browser auf dem Server gepuffert werden, bis Sie diese senden. Sie können dies tun, indem Sie in Ihrem Skript ob_start() und ob_end_flush() verwenden, oder indem Sie die Konfigurationsdirektive output_buffering in der php.ini bzw. in den Server-Konfigurationsdateien auf "On" setzen.

Hinweis:

Die HTTP-Status-Headerzeile wird immer die erste zum Client gesendete sein, egal ob der aktuelle header()-Aufruf der erste ist oder nicht. Der Status kann mittels header() jederzeit mit einer neuen Statuszeile überschrieben werden, sofern die HTTP-Header noch nicht gesendet wurden.

Hinweis:

Der Microsoft Internet Explorer 4.01 hat einen Bug, der diese Funktionalität verhindert, und es gibt keinen Workaround. Auch im Microsoft Internet Explorer 5.5 existiert ein Bug, der dies behindert, dieser kann jedoch mittels eines Upgrades auf Service Pack 2 oder höher behoben werden.

Hinweis:

Die meisten zeitgemäßen Clients akzeptieren relative URIs als Argument für » Location:, aber einige ältere Clients benötigen einen absoluten URI inklusive dem Schema, Hostnamen und absoluten Pfad. Gewöhnlich können Sie mittels $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] und dirname() aus einem relativen Link einen absoluten URI selbst erstellen:

<?php
/* Redirect auf eine andere Seite im aktuell angeforderten Verzeichnis */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>

Hinweis:

Die Session-ID wird nicht mit dem Location-Header übermittelt, selbst wenn session.use_trans_sid eingeschaltet ist. Sie muss daher manuell durch Verwendung der Konstante SID hinzugefügt werden.

Siehe auch

  • headers_sent() - Prüft, ob oder wo die Header bereits gesendet wurden
  • setcookie() - Sendet ein Cookie
  • http_response_code() - Get or Set the HTTP response code
  • header_remove() - Remove previously set headers
  • Den Abschnitt über HTTP-Authentifizierung mit PHP


Gibt eine Liste der gesendeten (oder zum Senden vorbereiteten) Response Header zurück

  • « header
  • headers_sent »
  • PHP Manual
  • Netzwerk-Funktionen
  • Gibt eine Liste der gesendeten (oder zum Senden vorbereiteten) Response Header zurück

headers_list

(PHP 5, PHP 7, PHP 8)

headers_list — Gibt eine Liste der gesendeten (oder zum Senden vorbereiteten) Response Header zurück

Beschreibung

headers_list ( ) : array

headers_list() gibt ein Array der Header zurück, die zum Browser/Client gesendet werden. Um festzustellen, ob diese Header bereits gesendet worden sind, verwenden Sie headers_sent().

Rückgabewerte

Gibt ein numerisch indeziertes Array der Header zurück.

Beispiele

Beispiel #1 Beispiele zur Verwendung von headers_list()

<?php

/* setcookie() fügt für sich einen eigenen Response Header ein */
setcookie('foo', 'bar');

/* Einen eigenen Response Header definieren
   Dieser wird von den meisten Clients ignoriert */
header("X-Sample-Test: foo");

/* Specify plain text content in our response */
header('Content-type: text/plain');

/* Welche Header wurden gesendet? */
var_dump(headers_list());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  [0]=>
  string(23) "X-Powered-By: PHP/5.1.3"
  [1]=>
  string(19) "Set-Cookie: foo=bar"
  [2]=>
  string(18) "X-Sample-Test: foo"
  [3]=>
  string(24) "Content-type: text/plain"
}

Anmerkungen

Hinweis:

Header sind nur dann zugänglich und werden nur dann gesendet, wenn die genutzte SAPI sie unterstützt.

Siehe auch

  • headers_sent() - Prüft, ob oder wo die Header bereits gesendet wurden
  • header() - Sendet einen HTTP-Header in Rohform
  • setcookie() - Sendet ein Cookie
  • apache_response_headers() - Liefert alle HTTP-Responseheader
  • http_response_code() - Get or Set the HTTP response code


Prüft, ob oder wo die Header bereits gesendet wurden

  • « headers_list
  • http_response_code »
  • PHP Manual
  • Netzwerk-Funktionen
  • Prüft, ob oder wo die Header bereits gesendet wurden

headers_sent

(PHP 4, PHP 5, PHP 7, PHP 8)

headers_sent — Prüft, ob oder wo die Header bereits gesendet wurden

Beschreibung

headers_sent ( string &$filename = null , int &$line = null ) : bool

Prüft, ob oder wo die Header bereits gesendet wurden.

Sobald der Header-Block gesendet wurde, können Sie keine weiteren Header-Zeilen mit der Funktion header() hinzufügen. Mittels dieser Funktion können Sie aber zumindest Fehlermeldungen bezüglich der HTTP-Header vermeiden. Eine andere Möglichkeit ist die Verwendung von Ausgabepufferung.

Parameter-Liste

filename

Sind die optionalen Parameter filename und line angegeben, schreibt headers_sent() den PHP-Dateinamen und die Zeilennummer, an denen die Ausgabe begann, in die Variablen filename und line.

line

Die Zeilennummer, an der die Ausgabe begann.

Rückgabewerte

headers_sent() gibt false zurück, wenn noch keine HTTP-Header gesendet wurden, ansonsten true.

Beispiele

Beispiel #1 Beispiel zur Verwendung von headers_sent()

<?php

// Wenn keine Header gesendet wurden, sende einen
if (!headers_sent()) {
    header ('Location: http://www.example.com/');
    exit;
}

// Ein Beispiel für den Einsatz der optionalen Parameter filename und
// line. Beachten Sie, dass $filename und $linenum für einen späteren
// Einsatz übergeben werden. Weisen Sie ihnen davor keine Werte zu.
if (!headers_sent($filename, $linenum)) {
    header ('Location: http://www.example.com/');
    exit;

// Wahrscheinlich wollen Sie hier eine Fehlermeldung auslösen
} else {

    echo "Header bereits gesendet in $filename in Zeile $linenum\n" .
         "Redirect nicht moeglich, klicken Sie daher statt dessen <a " .
         "href=\"http://www.example.com\">diesen Link</a> an\n";
    exit;
}

?>

Anmerkungen

Hinweis:

Header sind nur dann zugänglich und werden nur dann gesendet, wenn die genutzte SAPI sie unterstützt.

Siehe auch

  • ob_start() - Ausgabepufferung aktivieren
  • trigger_error() - Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung
  • headers_list() - Gibt eine Liste der gesendeten (oder zum Senden vorbereiteten) Response Header zurück
  • header() - Sendet einen HTTP-Header in Rohform für eine detailliertere Darlegung der relevanten Konzepte.


Get or Set the HTTP response code

  • « headers_sent
  • inet_ntop »
  • PHP Manual
  • Netzwerk-Funktionen
  • Get or Set the HTTP response code

http_response_code

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

http_response_code — Get or Set the HTTP response code

Beschreibung

http_response_code ( int $response_code = 0 ) : int|bool

Gets or sets the HTTP response status code.

Parameter-Liste

response_code

The optional response_code will set the response code.

Rückgabewerte

If response_code is provided, then the previous status code will be returned. If response_code is not provided, then the current status code will be returned. Both of these values will default to a 200 status code if used in a web server environment.

false will be returned if response_code is not provided and it is not invoked in a web server environment (such as from a CLI application). true will be returned if response_code is provided and it is not invoked in a web server environment (but only when no previous response status has been set).

Beispiele

Beispiel #1 Using http_response_code() in a web server environment

<?php

// Get the current response code and set a new one
var_dump(http_response_code(404));

// Get the new response code
var_dump(http_response_code());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(200)
int(404)

Beispiel #2 Using http_response_code() in a CLI environment

<?php

// Get the current default response code
var_dump(http_response_code());

// Set a response code
var_dump(http_response_code(201));

// Get the new response code
var_dump(http_response_code());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)
int(201)

Siehe auch

  • header() - Sendet einen HTTP-Header in Rohform
  • headers_list() - Gibt eine Liste der gesendeten (oder zum Senden vorbereiteten) Response Header zurück


Konvertiert eine komprimierte IP-Adresse in ein menschenlesbares Format

  • « http_response_code
  • inet_pton »
  • PHP Manual
  • Netzwerk-Funktionen
  • Konvertiert eine komprimierte IP-Adresse in ein menschenlesbares Format

inet_ntop

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

inet_ntop — Konvertiert eine komprimierte IP-Adresse in ein menschenlesbares Format

Beschreibung

inet_ntop ( string $ip ) : string|false

Die Funktion konvertiert eine 32-bittige IPv4- oder eine 128-bittige IPv6-Adresse (sofern PHP mit IPv6-Unterstützung kompiliert wurde) in ein für die Adressfamilie geeignetes Format.

Parameter-Liste

ip

Eine 32-bittige IPv4- or 128-bittige IPv6-Adresse.

Rückgabewerte

Gibt eine Stringdarstellung der Adresse zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 inet_ntop()-Beispiel

<?php
$packed = chr(127) . chr(0) . chr(0) . chr(1);
$expanded = inet_ntop($packed);

/* Ausgabe: 127.0.0.1 */
echo $expanded;

$packed = str_repeat(chr(0), 15) . chr(1);
$expanded = inet_ntop($packed);

/* Ausgabe: ::1 */
echo $expanded;
?>

Siehe auch

  • long2ip() - Konvertiert eine Long-Integer-Adresse in einen String, der das (IPv4) Internet-Standard-Punktformat enthält ("Dotted-Format")
  • ip2long() - Konvertiert eine gemäß IPv4-Protokoll angegebene IP-Adresse vom Punkt-Format in ein Long Integer
  • inet_pton() - Konvertiert eine IP-Adresse im menschenlesbaren Format in eine komprimierte in_addr-Darstellung


Konvertiert eine IP-Adresse im menschenlesbaren Format in eine komprimierte in_addr-Darstellung

  • « inet_ntop
  • ip2long »
  • PHP Manual
  • Netzwerk-Funktionen
  • Konvertiert eine IP-Adresse im menschenlesbaren Format in eine komprimierte in_addr-Darstellung

inet_pton

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

inet_pton — Konvertiert eine IP-Adresse im menschenlesbaren Format in eine komprimierte in_addr-Darstellung

Beschreibung

inet_pton ( string $ip ) : string|false

Die Funktion konvertiert eine menschenlesbare IPv4- oder IPv6-Adresse (sofern PHP mit IPv6-Support kompiliert wurde) in eine für die Adressfamilie geeignete 32-bittige oder 128-bittige Binärstruktur.

Parameter-Liste

ip

Eine menschenlesbare IPv4- oder IPv6-Adresse.

Rückgabewerte

Gibt die in_addr-Darstellung der übergebenen ip zurück oder false, wenn eine syntaktisch ungültige ip angegeben wurde, z.B. eine IPv4-Adresse ohne Punkte oder eine IPv6-Adresse ohne Doppelpunkte.

Beispiele

Beispiel #1 inet_pton()-Beispiel

<?php
$in_addr = inet_pton('127.0.0.1');

$in6_addr = inet_pton('::1');
?>

Siehe auch

  • ip2long() - Konvertiert eine gemäß IPv4-Protokoll angegebene IP-Adresse vom Punkt-Format in ein Long Integer
  • long2ip() - Konvertiert eine Long-Integer-Adresse in einen String, der das (IPv4) Internet-Standard-Punktformat enthält ("Dotted-Format")
  • inet_ntop() - Konvertiert eine komprimierte IP-Adresse in ein menschenlesbares Format


Konvertiert eine gemäß IPv4-Protokoll angegebene IP-Adresse vom Punkt-Format in ein Long Integer

  • « inet_pton
  • long2ip »
  • PHP Manual
  • Netzwerk-Funktionen
  • Konvertiert eine gemäß IPv4-Protokoll angegebene IP-Adresse vom Punkt-Format in ein Long Integer

ip2long

(PHP 4, PHP 5, PHP 7, PHP 8)

ip2long — Konvertiert eine gemäß IPv4-Protokoll angegebene IP-Adresse vom Punkt-Format in ein Long Integer

Beschreibung

ip2long ( string $ip ) : int|false

Die Funktion ip2long() erzeugt aus einer im Punkt-Format angegebenen IPv4-Adresse ein Long Integer.

ip2long() funktioniert auch mit unvollständigen IP-Adressen. Lesen Sie » http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm, um weitere Informationen zu erhalten.

Parameter-Liste

ip

Eine Adresse im Standardformat.

Rückgabewerte

Gibt ein Long Integer zurück. Ist ip ungültig, wird false zurückgegeben.

Beispiele

Beispiel #1 ip2long()-Beispiel:

<?php
$ip = gethostbyname('www.example.com');
$out = "Die folgenden URLs entsprechen sich:<br />\n";
$out .= 'http://www.example.com/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>

Beispiel #2 Eine IP-Adresse anzeigen

Das zweite Beispiel zeigt, wie eine konvertierte Adresse mittels printf() ausgegeben werden kann:

<?php
$ip   = gethostbyname('www.example.com');
$long = ip2long($ip);

if ($long == -1 || $long === FALSE) {
    echo 'Ungültige IP, versuchen Sie es noch einmal';
} else {
    echo $ip   . "\n";            // 192.0.34.166
    echo $long . "\n";            // 3221234342 (-1073732954 auf 32-bit Systemen aufgrund des Integer-Überlaufs)
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

Anmerkungen

Hinweis:

Da der int-Typ von PHP vorzeichenbehaftet ist und viele IP-Adressen auf 32-bit Architekturen in einen negativen Integerwert aufgelöst werden, sollten Sie dort die Formatierungsangabe "%u" für sprintf() und printf() verwenden, um eine Stringdarstellung der vorzeichenlosen IP-Adresse zu erhalten.

Hinweis:

ip2long() gibt in PHP 5 <= 5.0.2 für die IP-Adresse 255.255.255.255 false, und -1 auf 64-bit Systemen in PHP 5 <=5.2.4 zurück. Der Fehler wurde in PHP 5.2.25 gefixt, so dass wieder 4294967295 zurückgegeben wird. 32-bit-Systeme geben aufgrund des Integer-Überlaufs -1 zurück.

Siehe auch

  • long2ip() - Konvertiert eine Long-Integer-Adresse in einen String, der das (IPv4) Internet-Standard-Punktformat enthält ("Dotted-Format")
  • sprintf() - Gibt einen formatierten String zurück


Konvertiert eine Long-Integer-Adresse in einen String, der das (IPv4) Internet-Standard-Punktformat enthält ("Dotted-Format")

  • « ip2long
  • openlog »
  • PHP Manual
  • Netzwerk-Funktionen
  • Konvertiert eine Long-Integer-Adresse in einen String, der das (IPv4) Internet-Standard-Punktformat enthält ("Dotted-Format")

long2ip

(PHP 4, PHP 5, PHP 7, PHP 8)

long2ip — Konvertiert eine Long-Integer-Adresse in einen String, der das (IPv4) Internet-Standard-Punktformat enthält ("Dotted-Format")

Beschreibung

long2ip ( int $ip ) : string|false

Die Funktion long2ip() erzeugt eine IP-Adresse im Punktformat (also: www.xxx.yyy.zzz) anhand der Long-Integer-Adresse.

Parameter-Liste

ip

Eine korrekte Adressdarstellung als Long Integer.

Rückgabewerte

Gibt die IP-Adresse als String zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | Der Parametertyp von ip wurde von string zu int geändert.

Anmerkungen

Hinweis:

Auf 32-bit-Architekturen ergibt die Umwandlung von Integer-Darstellungen von IP-Adresssen von string nach int für Zahlen, die PHP_INT_MAX überschreiten, keine richtigen Ergebnisse.

Siehe auch

  • ip2long() - Konvertiert eine gemäß IPv4-Protokoll angegebene IP-Adresse vom Punkt-Format in ein Long Integer


Stellt eine Verbindung zum Log-Dienst des Systems her

  • « long2ip
  • pfsockopen »
  • PHP Manual
  • Netzwerk-Funktionen
  • Stellt eine Verbindung zum Log-Dienst des Systems her

openlog

(PHP 4, PHP 5, PHP 7, PHP 8)

openlog — Stellt eine Verbindung zum Log-Dienst des Systems her

Beschreibung

openlog ( string $prefix , int $flags , int $facility ) : bool

Die Funktion openlog() öffnet eine Verbindung zum System-Log-Dienst eines Programmes.

Die Verwendung von openlog() ist optional. Die Funktion wird - falls erforderlich - automatisch von syslog() aufgerufen, dabei wird prefix standardmäßig mit false belegt.

Parameter-Liste

prefix

Die Zeichenkette prefix wird jeder Meldung hinzugefügt.

flags

Der Parameter flags wird verwendet, um anzuzeigen, welche Logging-Optionen bei der Generierung einer Log-Meldung verwendet wurden.

openlog()-Optionen
Konstante | Beschreibung
LOG_CONS | Tritt ein Fehler auf, während Daten an den Systemlogger gesendet werden, leite die Ausgabe direkt an die Konsole um.
LOG_NDELAY | Öffnet die Verbindung zum Log-Dienst sofort.
LOG_ODELAY | (Standardwert); öffnet die Verbindung erst, wenn die erste Meldung geloggt werden soll.
LOG_PERROR | Schreibt den Log-Eintrag auch in das Standard-Error-Device
LOG_PID | Fügt die PID an jede Meldung an
Sie können eine oder mehrere dieser Optionen verwenden. Benutzen Sie mehrere, müssen diese per OR getrennt werden. Um zum Beispiel die Verbindung sofort herzustellen, auf die Konsole zu schreiben und zugleich die PID in jede Meldung aufzunehmen, müssen Sie folgendes angeben: LOG_CONS | LOG_NDELAY | LOG_PID.

facility

Das Argument facility wird verwendet, um die Art des Programmes festzulegen, das die Nachricht loggt. Dies erlaubt Ihnen (in Ihrer speziellen SysLog-Konfiguration) die Festlegung der Behandlungsweise von Log-Meldungen.

openlog()-Möglichkeiten
Konstante | Beschreibung
LOG_AUTH | Sicherheits-/Authorisierungsmeldungen (benutzt statt dessen LOG_AUTHPRIV auf Systemen, wo diese Konstante definiert ist).
LOG_AUTHPRIV | Sicherheits-/Authorisierungsmeldungen (private).
LOG_CRON | Zeitabhängig gestartete Dienste (cron und at).
LOG_DAEMON | Andere Systemdienste.
LOG_KERN | Kernel-Meldungen
LOG_LOCAL0 ... LOG_LOCAL7 | Reserviert für lokale Benutzung. Diese Konstanten stehen unter Windows nicht zur Verfügung.
LOG_LPR | Zeilendrucker-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

Hinweis:

LOG_USER ist der einzige unter Windows-Betriebssystemen gültige Logtyp.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • syslog() - Erzeugt eine Meldung im System-Logging
  • closelog() - Schließt die Verbindung zum System-Logger


Öffnet eine persistente Verbindung zum Internet oder zu einem Unix-Domainsocket

  • « openlog
  • setcookie »
  • PHP Manual
  • Netzwerk-Funktionen
  • Öffnet eine persistente Verbindung zum Internet oder zu einem Unix-Domainsocket

pfsockopen

(PHP 4, PHP 5, PHP 7, PHP 8)

pfsockopen — Öffnet eine persistente Verbindung zum Internet oder zu einem Unix-Domainsocket

Beschreibung

pfsockopen ( string $hostname , int $port = -1 , int &$errno = ? , string &$errstr = ? , float $timeout = ini_get("default_socket_timeout") ) : resource

Diese Funktion verhält sich genauso wie fsockopen() mit dem Unterschied, dass die Verbindung nicht geschlossen wird, wenn das Script beendet wird. Sie ist die permanente Version von fsockopen().

Parameter-Liste

Bitte schlagen Sie für Informationen über die Parameter in der Dokumentation der Funktion fsockopen() nach.

Siehe auch

  • fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her


Sendet ein Cookie

  • « pfsockopen
  • setrawcookie »
  • PHP Manual
  • Netzwerk-Funktionen
  • Sendet ein Cookie

setcookie

(PHP 4, PHP 5, PHP 7, PHP 8)

setcookie — Sendet ein Cookie

Beschreibung

setcookie ( string $name , string $value = "" , int $expires = 0 , string $path = "" , string $domain = "" , bool $secure = false , bool $httponly = false ) : bool

Alternative Signatur, verfügbar ab PHP 7.3.0:

setcookie ( string $name , string $value = "" , array $options = [] ) : bool

setcookie() definiert ein mit den HTTP-Header-Informationen zu übertragendes Cookie. Wie andere Header auch, müssen Cookies vor jeglicher Ausgabe Ihres Skriptes gesendet werden (dies ist eine Einschränkung des Protokolls). Das bedeutet, dass Sie diese Funktion vor allen anderen Ausgaben, einschließlich der Ausgabe von <html>- oder <head>-Tags sowie jede Art von Whitespaces, aufrufen müssen.

Sind die Cookies einmal gesetzt, können Sie beim nächsten Seitenaufruf anhand des $_COOKIE-Arrays auf diese zugreifen. Die Cookie-Werte können auch in $_REQUEST vorhanden sein.

Parameter-Liste

» RFC 6265 liefert die normative Referenz, wie die jeweiligen setcookie()-Parameter interpretiert werden.

name

Der Name des Cookies.

value

Der Wert des Cookies. Dieser Wert wird auf dem Computer des Benutzers gespeichert, speichern Sie deshalb darin keine sensiblen Informationen. Angenommen der Parameter name ist 'cookiename', so erhält man seinen Wert mittels $_COOKIE['cookiename'].

expires

Der Zeitpunkt, an dem das Cookie ungültig wird. Dies ist ein Unix-Timestamp, also die Anzahl Sekunden seit Beginn der Unix-Epoche (1. Januar 1970). Mit anderen Worten, Sie werden diesen Wert wahrscheinlich mittels der Funktion time() plus der Anzahl Sekunden bis zum gewünschten Ablauf des Cookies setzen. Sie könnten aber auch mktime() verwenden. time()+60*60*24*30 wird das Cookie in 30 Tagen ablaufen lassen. Hat der Parameter den Wert 0 oder ist er nicht gesetzt, verfällt das Cookie am Ende der Session (wenn der Browser geschlossen wird).

Hinweis:

Beachten Sie, dass der Parameter expires einen Unix-Timestamp enthält, im Gegensatz zum Datumsformat Wdy, DD-Mon-YYYY HH:MM:SS GMT. Die Konvertierung wird von PHP intern durchgeführt.

path

Der Pfad auf dem Server, innerhalb dem das Cookie verfügbar sein wird. Ist er auf '/' gesetzt, wird das Cookie innerhalb der gesamten domain verfügbar. Ist er auf '/foo/' gesetzt, wird das Cookie nur innerhalb des Verzeichnisses /foo/ sowie allen Unterverzeichnissen wie z.B. /foo/bar/ der domain verfügbar. Der Standardwert ist das aktuelle Verzeichnis, in dem das Cookie gesetzt wurde.

domain

Die (Sub)-Domain, der das Cookie zur Verfügung steht. Wird dies auf eine Subdomain (wie 'www.example.com') gesetzt, dann steht dieser Subdomain und allen anderen Subdomains davon (z.B. w2.www.example.com) das Cookie zur Verfügung. Um das Cookie der ganzen Domain zur Verfügung zu stellen (einschließlich aller Subdomains davon), muss der Wert einfach auf den Domainnamen (in diesem Fall 'example.com') gesetzt werden.

Ältere Browser, die noch immer das veraltete » RFC 2109 implementieren, können ein führendes . benötigen, um alle Subdomains abzudecken.

secure

Gibt an, dass das Cookie vom Client nur über eine sichere HTTPS-Verbindung übertragen werden soll. Ist der Wert auf true gesetzt, wird das Cookie nur gesendet, wenn eine sichere Verbindung besteht. Auf der Serverseite muss der Programmierer selbst darauf achten, dass entsprechende Cookies über eine sichere Verbindung gesendet werden (z.B. unter Berücksichtigung von $_SERVER["HTTPS"]).

httponly

Wenn auf true gesetzt, ist das Cookie nur via HTTP-Protokoll zugänglich. Das bedeutet, dass das Cookie nicht mehr für Skriptsprachen wie z.B. JavaScript, auslesbar/veränderbar ist. Es wird vermutet, dass diese Einstellung eine effektive Hilfe sein kann, um Identitätsdiebstahl per XSS-Angriff zu vermindern (obwohl sie nicht von allen Browsern unterstützt wird), diese Behauptung wird jedoch oft angezweifelt. true oder false

options

Ein assoziatives array, das die Schlüssel expires, path, domain, secure, httponly und samesite enthalten kann. Ist irgendein anderer Schlüssel vorhanden, wird ein Fehler der Stufe E_WARNING generiert. Die Werte haben dieselbe Bedeutung wie für die gleichnamigen Parameter beschrieben. Der Wert des samesite-Elements sollte entweder None, Lax oder Strict sein. Ist eine der erlaubten Optionen nicht angegeben, dann ist ihr Standardwert derselbe wie für den expliziten Parameter. Wird das samesite-Element nicht angegeben, dann wird kein SameSite-Cookie-Attribut gesetzt.

Rückgabewerte

Erfolgt eine Ausgabe vor dem Aufruf dieser Funktion, wird setcookie() fehlschlagen und false zurückgeben. Wenn setcookie() erfolgreich durchgeführt wird, wird true zurückgegeben. Dies sagt jedoch nichts darüber aus, ob der Benutzer das Cookie auch akzeptiert hat.

Beispiele

Einige Beispiele, wie Cookies gesetzt werden:

Beispiel #1 setcookie()-Beispiele:

<?php
$value = 'irgendetwas von irgendwo';

setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  /* verfällt in 1 Stunde */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
?>

Beachten Sie, dass der Wertebereich des Cookies automatisch URL-konform kodiert (urlencoded) wird, sobald Sie das Cookie senden, und es beim Erhalt automatisch dekodiert und einer Variablen zugewiesen wird, die denselben Namen wie das Cookie trägt. Wenn Sie dies nicht möchten, können Sie stattdessen setrawcookie() verwenden. Um die Inhalte unseres Test-Cookies in einem Skript sichtbar zu machen, verwenden Sie einfach eines der folgenden Beispiele:

<?php
// ein bestimmtes Cookie ausgeben
echo $_COOKIE["TestCookie"];

// Ein anderer Weg zu Debuggen/Testen ist, alle Cookies anzuzeigen
print_r($_COOKIE);
?>

Beispiel #2 setcookie()-Beispiele zum Löschen

Beim Löschen eines Cookies sollten Sie sicherstellen, dass das Verfallsdatum in der Vergangenheit liegt, um den Mechanismus zum Löschen des Cookies im Browser auszulösen. Die folgenden Beispiele zeigen, wie die im vorigen Beispiel gesendeten Cookies wieder gelöscht werden:

<?php
// Setzen des Verfalls-Zeitpunktes auf 1 Stunde in der Vergangenheit
setcookie("TestCookie", "", time() - 3600);
setcookie("TestCookie", "", time() - 3600, "/~rasmus/", "example.com", 1);
?>

Beispiel #3 setcookie() und Arrays

Sie können auch ein Array von Cookies setzen, in dem Sie die Array-Schreibweise im Cookienamen verwenden. 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 Cookienamen eingelesen:

<?php
// Setzen der Cookies
setcookie ("cookie[three]", "cookiethree");
setcookie ("cookie[two]", "cookietwo");
setcookie ("cookie[one]", "cookieone");

// Nach dem Neuladen der Seite wieder ausgeben
if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
        $name = htmlspecialchars($name);
        $value = htmlspecialchars($value);
        echo "$name : $value <br />\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

three : cookiethree
two : cookietwo
one : cookieone

Hinweis: Die Verwendung von Trennzeichen wie [ und ] als Teil des Cookie-Namens ist nicht konform mit RFC 6265, Abschnitt 4, soll aber laut RFC 6265, Abschnitt 5, von User-Agents unterstützt werden.

Changelog

Version | Beschreibung
7.3.0 | Eine alternative Signatur, die ein options-Array unterstützt, wurde hinzugefügt. Diese Signatur unterstützt ebenfalls das Setzen des SameSite-Cookie-Attributs.

Anmerkungen

Hinweis:

Sie können den Ausgabepuffer verwenden, um Ausgaben vor dem Aufruf dieser Funktion duchführen zu können. Dies hat allerdings zur Folge, dass alle Ihre Ausgaben zum Browser am Server zwischengespeichert werden, bis Sie diese senden. Sie können dies in Ihrem Skript mittels der Funktionen ob_start() und ob_end_flush() oder mittels der Konfigurationseinstellung output_buffering in Ihrer php.ini mitteilen, oder Sie ändern entsprechende Konfigurationseinstellungen am Server.

Häufige Probleme:

  • Cookies werden nicht sichtbar, bevor nicht eine Seite geladen wird, für die das Cookie sichtbar sein soll. Um zu testen, ob ein Cookie erfolgreich gesetzt wurde, prüfen Sie noch vor der Ablaufzeit auf der nächsten geladenen Seite, ob das Cookie vorhanden ist. Die Ablaufzeit wird mittels des Parameters expires gesetzt. Eine gute Möglichkeit, die Existenz von Cookies zu prüfen, ist einfach print_r($_COOKIE); aufzurufen.
  • Cookies müssen mit denselben Parametern gelöscht werden, mit denen sie gesetzt wurden. Ist der value-Parameter ein leerer String oder false und alle anderen Werte entsprechen dem früheren Aufruf von setcookie, wird das Cookie mit dem angegebenen Namen vom Client gelöscht. Die wird intern ausgeführt, indem der Wert auf 'deleted' und die Verfallszeit auf ein Jahr in der Vergangenheit gesetzt wird.
  • Da beim Setzen eines Cookies mit dem Value false versucht wird, das entsprechende Cookie zu löschen, sollten Sie keine boolschen Werte verwenden. Nutzen Sie statt dessen 0 für false und 1 für true.
  • Namen von Cookies können auch als Arraynamen gesetzt werden und stehen dann in Ihren Skripten als Arrays zu Verfügung, während sie auf dem System des Benutzers als separate Cookies abgespeichert werden. Erwägen Sie den Einsatz von explode(), um ein Cookie mit mehreren Namen und Werten zu setzen. Es ist nicht empfehlenswert, zu diesem Zweck serialize() einzusetzen, da hieraus Sicherheitslöcher erwachsen können.

Mehrfache Aufrufe von setcookie() werden in der Reihenfolge ihres Aufrufs ausgeführt.

Siehe auch

  • header() - Sendet einen HTTP-Header in Rohform
  • setrawcookie() - Sendet ein Cookie, ohne seinen Wert zu URL-kodieren
  • Cookies
  • » RFC 6265
  • » RFC 2109


Sendet ein Cookie, ohne seinen Wert zu URL-kodieren

  • « setcookie
  • socket_get_status »
  • PHP Manual
  • Netzwerk-Funktionen
  • Sendet ein Cookie, ohne seinen Wert zu URL-kodieren

setrawcookie

(PHP 5, PHP 7, PHP 8)

setrawcookie — Sendet ein Cookie, ohne seinen Wert zu URL-kodieren

Beschreibung

setrawcookie ( string $name , string $value = ? , int $expires = 0 , string $path = ? , string $domain = ? , bool $secure = false , bool $httponly = false ) : bool

Alternative Signatur, verfügbar ab PHP 7.3.0:

setrawcookie ( string $name , string $value = ? , array $options = [] ) : bool

setrawcookie() ist exakt das Gleiche wie setcookie() bis auf die Tatsache, dass der Wert des Cookie nicht automatisch URL-kodiert zum Browser gesendet wird.

Parameter-Liste

Bitte schlagen Sie für Informationen über die Parameter in der Dokumentation der Funktion setcookie() nach.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.3.0 | Eine alternative Signatur, die ein options-Array unterstützt, wurde hinzugefügt. Diese Signatur unterstützt ebenfalls das Setzen des SameSite-Cookie-Attributs.

Siehe auch

  • setcookie() - Sendet ein Cookie


Alias von stream_get_meta_data

  • « setrawcookie
  • socket_set_blocking »
  • PHP Manual
  • Netzwerk-Funktionen
  • Alias von stream_get_meta_data

socket_get_status

(PHP 4, PHP 5, PHP 7, PHP 8)

socket_get_status — Alias von stream_get_meta_data()

Beschreibung

Diese Funktion ist ein Alias für: stream_get_meta_data().


Alias von stream_set_blocking

  • « socket_get_status
  • socket_set_timeout »
  • PHP Manual
  • Netzwerk-Funktionen
  • Alias von stream_set_blocking

socket_set_blocking

(PHP 4, PHP 5, PHP 7, PHP 8)

socket_set_blocking — Alias von stream_set_blocking()

Beschreibung

Diese Funktion ist ein Alias für: stream_set_blocking().


Alias von stream_set_timeout

  • « socket_set_blocking
  • syslog »
  • PHP Manual
  • Netzwerk-Funktionen
  • Alias von stream_set_timeout

socket_set_timeout

(PHP 4, PHP 5, PHP 7, PHP 8)

socket_set_timeout — Alias von stream_set_timeout()

Beschreibung

Diese Funktion ist ein Alias für: stream_set_timeout().


Erzeugt eine Meldung im System-Logging

  • « socket_set_timeout
  • RRD »
  • PHP Manual
  • Netzwerk-Funktionen
  • Erzeugt eine Meldung im System-Logging

syslog

(PHP 4, PHP 5, PHP 7, PHP 8)

syslog — Erzeugt eine Meldung im System-Logging

Beschreibung

syslog ( int $priority , string $message ) : bool

Die Funktion syslog() erzeugt eine Status-Meldung, die an die System-Log-Funktion weitergereicht wird.

Weitere Informationen zum benutzerdefinierten Loghandler finden Sie unter syslog.conf (5) der Unix-Manpages. Zusätzliche Informationen zu den SysLog-Möglichkeiten und -Optionen finden Sie in den Manpages zu syslog (3) (auf UNIX-Systemen).

Parameter-Liste

priority

Der Parameter priority ist eine Kombination der System-Möglichkeiten und dem Level. Mögliche Werte sind:

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.

message

Die zu sendende Nachricht, in der die beiden Zeichen %m durch den Fehlertext (strerror) ersetzt werden, der dem Wert errno entspricht.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Die Verwendung von syslog():

<?php
// öffne SysLog, schließe die Prozess-ID (PID) ein, sende
// die Log-Meldungen an die Standard-Fehler-Ausgabe und benutze
// einen userdefinierten 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 "
        . "{$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})");
}

closelog();
?>

Anmerkungen

Unter Windows-NT wird der Syslog-Dienst emuliert, indem der Ereignis-Protokolldienst genutzt wird.

Hinweis:

Die Verwendung von LOG_LOCAL0 bis LOG_LOCAL7 für den Parameter facility von openlog() ist unter Windowssystemen nicht möglich.

Siehe auch

  • openlog() - Stellt eine Verbindung zum Log-Dienst des Systems her
  • closelog() - Schließt die Verbindung zum System-Logger


RRDtool

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Procedural PECL/rrd example
    • OOP PECL/rrd example
  • RRD Funktionen
    • rrd_create — Creates rrd database file
    • rrd_error — Gets latest error message
    • rrd_fetch — Fetch the data for graph as array
    • rrd_first — Gets the timestamp of the first sample from rrd file
    • rrd_graph — Creates image from a data
    • rrd_info — Gets information about rrd file
    • rrd_last — Gets unix timestamp of the last sample
    • rrd_lastupdate — Gets information about last updated data
    • rrd_restore — Restores the RRD file from XML dump
    • rrd_tune — Tunes some RRD database file header options
    • rrd_update — Updates the RRD database
    • rrd_version — Gets information about underlying rrdtool library
    • rrd_xport — Exports the information about RRD database
    • rrdc_disconnect — Close any outstanding connection to rrd caching daemon
  • RRDCreator — The RRDCreator class
    • RRDCreator::addArchive — Adds RRA - archive of data values for each data source
    • RRDCreator::addDataSource — Adds data source definition for RRD database
    • RRDCreator::__construct — Creates new RRDCreator instance
    • RRDCreator::save — Saves the RRD database to a file
  • RRDGraph — The RRDGraph class
    • RRDGraph::__construct — Creates new RRDGraph instance
    • RRDGraph::save — Saves the result of query into image
    • RRDGraph::saveVerbose — Saves the RRD database query into image and returns the verbose information about generated graph
    • RRDGraph::setOptions — Sets the options for rrd graph export
  • RRDUpdater — The RRDUpdater class
    • RRDUpdater::__construct — Creates new RRDUpdater instance
    • RRDUpdater::update — Update the RRD database file


Einführung

The PECL/rrd extension provides bindings to the RRDtool C library. RRDtool is the open source industry standard, high performance data logging and graphing system for time series data.

The RRDtool homepage is » http://www.mrtg.org/rrdtool/.


Anforderungen

You need to install librrd first to be able to use PECL/rrd. Most common option is using of librrd-dev package from your favourite linux distro. PECL/rrd is tested with librrd 1.4.3, older or newer versions might or might not work for you. PECL/rrd installation is tested with PHP 5.3.2 or newer.

Warnung

Librrd and hence extension itself aren't mostly thread safe. There are many global and shared states in librrd. It can be dangerous use this extension in multi threaded environments like Apache2 mpm worker. If there are many parallel requests, one request can change some global librrd state of other runnig requests.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/rrd.


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • RRD
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


  • « Vordefinierte Konstanten
  • Procedural PECL/rrd example »
  • PHP Manual
  • RRD
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Procedural PECL/rrd example
  • OOP PECL/rrd example


Procedural PECL/rrd example

Beispiel #1 Procedural usage of rrd

<?php
$rrdFile = dirname(__FILE__) . "/speed.rrd";

//create rrd file
rrd_create($rrdFile,
 array(
  "--start",920804400,
  "DS:speed:COUNTER:600:U:U",
  "RRA:AVERAGE:0.5:1:24",
  "RRA:AVERAGE:0.5:6:10"
  )
);

//update rrd file
rrd_update($rrdFile,
 array(
  "920804700:12345",
  "920805000:12357"
  )
);

//graph output
rrd_graph(dirname(__FILE__) . "/speed.png",
 array(
  "--start", "920804400",
  "--end", "920808000",
  "--vertical-label", "m/s",
  "DEF:myspeed=$rrdFile:speed:AVERAGE",
  "CDEF:realspeed=myspeed,1000,*",
  "LINE2:realspeed#FF0000"
 )
);
?>


OOP PECL/rrd example

Beispiel #1 OO usage of rrd

<?php
$rrdFile = dirname(__FILE__) . "/speed.rrd";
$outputPngFile = dirname(__FILE__) . "/speed.png";

$creator = new RRDCreator($rrdFile, "now -10d", 500);
$creator->addDataSource("speed:COUNTER:600:U:U");
$creator->addArchive("AVERAGE:0.5:1:24");
$creator->addArchive("AVERAGE:0.5:6:10");
$creator->save();

$updater = new RRDUpdater($rrdFile);
$updater->update(array("speed" => "12345"), "920804700");
$updater->update(array("speed" => "12357"), "920805000");

$graphObj = new RRDGraph($outputPngFile);
$graphObj->setOptions(
    array(
        "--start" => "920804400",
        "--end" => 920808000,
        "--vertical-label" => "m/s",
        "DEF:myspeed=$rrdFile:speed:AVERAGE",
        "CDEF:realspeed=myspeed,1000,*",
        "LINE2:realspeed#FF0000"
    )
);
$graphObj->save();
?>


RRD Funktionen

Inhaltsverzeichnis

  • rrd_create — Creates rrd database file
  • rrd_error — Gets latest error message
  • rrd_fetch — Fetch the data for graph as array
  • rrd_first — Gets the timestamp of the first sample from rrd file
  • rrd_graph — Creates image from a data
  • rrd_info — Gets information about rrd file
  • rrd_last — Gets unix timestamp of the last sample
  • rrd_lastupdate — Gets information about last updated data
  • rrd_restore — Restores the RRD file from XML dump
  • rrd_tune — Tunes some RRD database file header options
  • rrd_update — Updates the RRD database
  • rrd_version — Gets information about underlying rrdtool library
  • rrd_xport — Exports the information about RRD database
  • rrdc_disconnect — Close any outstanding connection to rrd caching daemon


Creates rrd database file

  • « RRD Funktionen
  • rrd_error »
  • PHP Manual
  • RRD Funktionen
  • Creates rrd database file

rrd_create

(PECL rrd >= 0.9.0)

rrd_create — Creates rrd database file

Beschreibung

rrd_create ( string $filename , array $options ) : bool

Creates the rdd database file.

Parameter-Liste

filename

Filename for newly created rrd file.

options

Options for rrd create - list of strings. See man page of rrd create for whole list of options.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Gets latest error message

  • « rrd_create
  • rrd_fetch »
  • PHP Manual
  • RRD Funktionen
  • Gets latest error message

rrd_error

(PECL rrd >= 0.9.0)

rrd_error — Gets latest error message

Beschreibung

rrd_error ( ) : string

Returns latest global rrd error message.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Latest error message.


Fetch the data for graph as array

  • « rrd_error
  • rrd_first »
  • PHP Manual
  • RRD Funktionen
  • Fetch the data for graph as array

rrd_fetch

(PECL rrd >= 0.9.0)

rrd_fetch — Fetch the data for graph as array

Beschreibung

rrd_fetch ( string $filename , array $options ) : array

Gets data for graph output from RRD database file as array. This function has same result as rrd_graph(), but fetched data are returned as array, no image file is created.

Parameter-Liste

filename

RRD database file name.

options

Array of options for resolution specification.

Rückgabewerte

Returns information about retrieved graph data.


Gets the timestamp of the first sample from rrd file

  • « rrd_fetch
  • rrd_graph »
  • PHP Manual
  • RRD Funktionen
  • Gets the timestamp of the first sample from rrd file

rrd_first

(PECL rrd >= 0.9.0)

rrd_first — Gets the timestamp of the first sample from rrd file

Beschreibung

rrd_first ( string $file , int $raaindex = 0 ) : int

Returns the first data sample from the specified RRA of the RRD file.

Parameter-Liste

file

RRD database file name.

raaindex

The index number of the RRA that is to be examined. Default value is 0.

Rückgabewerte

Integer number of unix timestamp, false if some error occurs.


Creates image from a data

  • « rrd_first
  • rrd_info »
  • PHP Manual
  • RRD Funktionen
  • Creates image from a data

rrd_graph

(PECL rrd >= 0.9.0)

rrd_graph — Creates image from a data

Beschreibung

rrd_graph ( string $filename , array $options ) : array

Creates image for a particular data from RRD file.

Parameter-Liste

filename

The filename to output the graph to. This will generally end in either .png, .svg or .eps, depending on the format you want to output.

options

Options for generating image. See man page of rrd graph for all possible options. All options (data definitions, variable defintions, etc.) are allowed.

Rückgabewerte

Array with information about generated image is returned, false when error occurs.


Gets information about rrd file

  • « rrd_graph
  • rrd_last »
  • PHP Manual
  • RRD Funktionen
  • Gets information about rrd file

rrd_info

(PECL rrd >= 0.9.0)

rrd_info — Gets information about rrd file

Beschreibung

rrd_info ( string $filename ) : array

Returns information about particular RRD database file.

Parameter-Liste

file

RRD database file name.

Rückgabewerte

Array with information about requsted RRD file, false when error occurs.


Gets unix timestamp of the last sample

  • « rrd_info
  • rrd_lastupdate »
  • PHP Manual
  • RRD Funktionen
  • Gets unix timestamp of the last sample

rrd_last

(PECL rrd >= 0.9.0)

rrd_last — Gets unix timestamp of the last sample

Beschreibung

rrd_last ( string $filename ) : int

Returns the UNIX timestamp of the most recent update of the RRD database.

Parameter-Liste

filename

RRD database file name.

Rückgabewerte

Integer as unix timestamp of the most recent data from the RRD database.


Gets information about last updated data

  • « rrd_last
  • rrd_restore »
  • PHP Manual
  • RRD Funktionen
  • Gets information about last updated data

rrd_lastupdate

(PECL rrd >= 0.9.0)

rrd_lastupdate — Gets information about last updated data

Beschreibung

rrd_lastupdate ( string $filename ) : array

Gets array of the UNIX timestamp and the values stored for each date in the most recent update of the RRD database file.

Parameter-Liste

file

RRD database file name.

Rückgabewerte

Array of information about last update, false when error occurs.


Restores the RRD file from XML dump

  • « rrd_lastupdate
  • rrd_tune »
  • PHP Manual
  • RRD Funktionen
  • Restores the RRD file from XML dump

rrd_restore

(PECL rrd >= 0.9.0)

rrd_restore — Restores the RRD file from XML dump

Beschreibung

rrd_restore ( string $xml_file , string $rrd_file , array $options = ? ) : bool

Restores the RRD file from the XML dump.

Parameter-Liste

xml_file

XML filename with the dump of the original RRD database file.

rrd_file

Restored RRD database file name.

options

Array of options for restoring. See man page for rrd restore.

Rückgabewerte

Returns true on success, false otherwise.


Tunes some RRD database file header options

  • « rrd_restore
  • rrd_update »
  • PHP Manual
  • RRD Funktionen
  • Tunes some RRD database file header options

rrd_tune

(PECL rrd >= 0.9.0)

rrd_tune — Tunes some RRD database file header options

Beschreibung

rrd_tune ( string $filename , array $options ) : bool

Change some options in the RRD dabase header file. E.g. renames the source for the data etc.

Parameter-Liste

filename

RRD database file name.

options

Options with RRD database file properties which will be changed. See rrd tune man page for details.

Rückgabewerte

Returns true on success, false otherwise.


Updates the RRD database

  • « rrd_tune
  • rrd_version »
  • PHP Manual
  • RRD Funktionen
  • Updates the RRD database

rrd_update

(PECL rrd >= 0.9.0)

rrd_update — Updates the RRD database

Beschreibung

rrd_update ( string $filename , array $options ) : bool

Updates the RRD database file. The input data is time interpolated according to the properties of the RRD database file.

Parameter-Liste

filename

RRD database file name. This database will be updated.

options

Options for updating the RRD database. This is list of strings. See man page of rrd update for whole list of options.

Rückgabewerte

Returns true on success, false when error occurs.


Gets information about underlying rrdtool library

  • « rrd_update
  • rrd_xport »
  • PHP Manual
  • RRD Funktionen
  • Gets information about underlying rrdtool library

rrd_version

(PECL rrd >= 1.0.0)

rrd_version — Gets information about underlying rrdtool library

Beschreibung

rrd_version ( ) : string

Returns information about underlying rrdtool library.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

String with rrdtool version number e.g. "1.4.3".


Exports the information about RRD database

  • « rrd_version
  • rrdc_disconnect »
  • PHP Manual
  • RRD Funktionen
  • Exports the information about RRD database

rrd_xport

(PECL rrd >= 0.9.0)

rrd_xport — Exports the information about RRD database

Beschreibung

rrd_xport ( array $options ) : array

Exports the information about RRD database file. This data can be converted to XML file via user space PHP script and then restored back as RRD database file.

Parameter-Liste

options

Array of options for the export, see rrd xport man page.

Rückgabewerte

Array with information about RRD database file, false when error occurs.


Close any outstanding connection to rrd caching daemon

  • « rrd_xport
  • RRDCreator »
  • PHP Manual
  • RRD Funktionen
  • Close any outstanding connection to rrd caching daemon

rrdc_disconnect

(PECL rrd >= 1.1.2)

rrdc_disconnect — Close any outstanding connection to rrd caching daemon

Beschreibung

rrdc_disconnect ( ) : void

Close any outstanding connection to rrd caching daemon.

This function is automatically called when the whole PHP process is terminated. It depends on used SAPI. For example, it's called automatically at the end of command line script.

It's up user whether he wants to call this function at the end of every request or otherwise.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The RRDCreator class

(PECL rrd >= 0.9.0)

Einführung

Class for creation of RRD database file.

Klassenbeschreibung

RRDCreator {
/* Methoden */
public addArchive ( string $description ) : void
public addDataSource ( string $description ) : void
public __construct ( string $path , string $startTime = ? , int $step = 0 )
public save ( ) : bool
}

Inhaltsverzeichnis

  • RRDCreator::addArchive — Adds RRA - archive of data values for each data source
  • RRDCreator::addDataSource — Adds data source definition for RRD database
  • RRDCreator::__construct — Creates new RRDCreator instance
  • RRDCreator::save — Saves the RRD database to a file


Adds RRA - archive of data values for each data source

  • « RRDCreator
  • RRDCreator::addDataSource »
  • PHP Manual
  • RRDCreator
  • Adds RRA - archive of data values for each data source

RRDCreator::addArchive

(PECL rrd >= 0.9.0)

RRDCreator::addArchive — Adds RRA - archive of data values for each data source

Beschreibung

public RRDCreator::addArchive ( string $description ) : void

Adds RRA definition by description of archive. Archive consists of a number of data values or statistics for each of the defined data-sources (DS). Data sources are defined by method RRDCreator::addDataSource(). You need call this method for each requested archive.

Parameter-Liste

description

Definition of archive - RRA. This has same format as RRA definition in rrd create command. See man page of rrd create for more details.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Adds data source definition for RRD database

  • « RRDCreator::addArchive
  • RRDCreator::__construct »
  • PHP Manual
  • RRDCreator
  • Adds data source definition for RRD database

RRDCreator::addDataSource

(PECL rrd >= 0.9.0)

RRDCreator::addDataSource — Adds data source definition for RRD database

Beschreibung

public RRDCreator::addDataSource ( string $description ) : void

RRD can accept input from several data sources (DS), e.g incoming and outgoing traffic. This method adds data source by description. You need call this method for each data source.

Parameter-Liste

description

Definition of data source - DS. This has same format as DS definition in rrd create command. See man page of rrd create for more details.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Creates new RRDCreator instance

  • « RRDCreator::addDataSource
  • RRDCreator::save »
  • PHP Manual
  • RRDCreator
  • Creates new RRDCreator instance

RRDCreator::__construct

(PECL rrd >= 0.9.0)

RRDCreator::__construct — Creates new RRDCreator instance

Beschreibung

public RRDCreator::__construct ( string $path , string $startTime = ? , int $step = 0 )

Creates new RRDCreator instance.

Parameter-Liste

path

Path for newly created RRD database file.

startTime

Time for the first value in RRD database. Parameter supports all formats which are supported by rrd create call.

intstep

Base interval in seconds with which data will be fed into the RRD database.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Saves the RRD database to a file

  • « RRDCreator::__construct
  • RRDGraph »
  • PHP Manual
  • RRDCreator
  • Saves the RRD database to a file

RRDCreator::save

(PECL rrd >= 0.9.0)

RRDCreator::save — Saves the RRD database to a file

Beschreibung

public RRDCreator::save ( ) : bool

Saves the RRD database into file, which name is defined by RRDCreator::__construct().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


The RRDGraph class

(PECL rrd >= 0.9.0)

Einführung

Class for exporting data from RRD database to image file.

Klassenbeschreibung

RRDGraph {
/* Methoden */
public __construct ( string $path )
public save ( ) : array
public saveVerbose ( ) : array
public setOptions ( array $options ) : void
}

Inhaltsverzeichnis

  • RRDGraph::__construct — Creates new RRDGraph instance
  • RRDGraph::save — Saves the result of query into image
  • RRDGraph::saveVerbose — Saves the RRD database query into image and returns the verbose information about generated graph
  • RRDGraph::setOptions — Sets the options for rrd graph export


Creates new RRDGraph instance

  • « RRDGraph
  • RRDGraph::save »
  • PHP Manual
  • RRDGraph
  • Creates new RRDGraph instance

RRDGraph::__construct

(PECL rrd >= 0.9.0)

RRDGraph::__construct — Creates new RRDGraph instance

Beschreibung

public RRDGraph::__construct ( string $path )

Creates new RRDGraph instance. This instance is responsible for rendering the result of RRD database query into image.

Parameter-Liste

path

Full path for the newly created image.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Saves the result of query into image

  • « RRDGraph::__construct
  • RRDGraph::saveVerbose »
  • PHP Manual
  • RRDGraph
  • Saves the result of query into image

RRDGraph::save

(PECL rrd >= 0.9.0)

RRDGraph::save — Saves the result of query into image

Beschreibung

public RRDGraph::save ( ) : array

Saves the result of RRD database query into image defined by RRDGraph::__construct().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Array with information about generated image is returned, false if error occurs.


Saves the RRD database query into image and returns the verbose information about generated graph

  • « RRDGraph::save
  • RRDGraph::setOptions »
  • PHP Manual
  • RRDGraph
  • Saves the RRD database query into image and returns the verbose information about generated graph

RRDGraph::saveVerbose

(PECL rrd >= 0.9.0)

RRDGraph::saveVerbose — Saves the RRD database query into image and returns the verbose information about generated graph

Beschreibung

public RRDGraph::saveVerbose ( ) : array

Saves the RRD database query into image file defined by method RRDGraph::__construct() and returns the verbose information about generated graph, if "-" is used as image filename, image data are also returned in result array.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Array with detailed information about generated image is returned, optionally with image data, false if error occurs.


Sets the options for rrd graph export

  • « RRDGraph::saveVerbose
  • RRDUpdater »
  • PHP Manual
  • RRDGraph
  • Sets the options for rrd graph export

RRDGraph::setOptions

(PECL rrd >= 0.9.0)

RRDGraph::setOptions — Sets the options for rrd graph export

Beschreibung

public RRDGraph::setOptions ( array $options ) : void

Parameter-Liste

options

List of options for the image generation from the RRD database file. It can be list of strings or list of strings with keys for better readability. Read the rrd graph man pages for list of available options.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 RRDGraph::setOptions() example

<?php
$graphObj->setOptions(array(
    "--start" => "920804400",
    "--end" => 920808000,
    "--vertical-label" => "m/s",
    "DEF:myspeed=$rrdFile:speed:AVERAGE",
    "CDEF:realspeed=myspeed,1000,*",
    "LINE2:realspeed#FF0000"
));
?>

Beispiel #2 Set multiple color options

<?php
$graphObj->setOptions(array(
    "--start" => "920804400",
    "--end" => 920808000,
    "--vertical-label" => "m/s",
    "--color=BACK#00000000",
    "--color=GRID#00000000",
    "--color=MGRID#00000000",
    "DEF:myspeed=$rrdFile:speed:AVERAGE",
    "CDEF:realspeed=myspeed,1000,*",
    "LINE2:realspeed#FF0000"
));
?>

Don't use key value syntax for same rrd option. It looks more readable, but it doesn't work.

<?php
$graphObj->setOptions(array(
    "--color" => "BACK#00000000",
    "--color" => "GRID#00000000",
    "--color" => "MGRID#00000000"
));
?>

In nature of php it's same as

<?php
$graphObj->setOptions(array(
    "--color" => "MGRID#00000000"
));
?>


The RRDUpdater class

(PECL rrd >= 0.9.0)

Einführung

Class for updating RDD database file.

Klassenbeschreibung

RRDUpdater {
/* Methoden */
public __construct ( string $path )
public update ( array $values , string $time = time() ) : bool
}

Inhaltsverzeichnis

  • RRDUpdater::__construct — Creates new RRDUpdater instance
  • RRDUpdater::update — Update the RRD database file


Creates new RRDUpdater instance

  • « RRDUpdater
  • RRDUpdater::update »
  • PHP Manual
  • RRDUpdater
  • Creates new RRDUpdater instance

RRDUpdater::__construct

(PECL rrd >= 0.9.0)

RRDUpdater::__construct — Creates new RRDUpdater instance

Beschreibung

public RRDUpdater::__construct ( string $path )

Creates new RRDUpdater instance. This instance is responsible for updating the RRD database file.

Parameter-Liste

path

Filesystem path for RRD database file, which will be updated.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Update the RRD database file

  • « RRDUpdater::__construct
  • ScoutAPM »
  • PHP Manual
  • RRDUpdater
  • Update the RRD database file

RRDUpdater::update

(PECL rrd >= 0.9.0)

RRDUpdater::update — Update the RRD database file

Beschreibung

public RRDUpdater::update ( array $values , string $time = time() ) : bool

Updates the RRD file defined via RRDUpdater::__construct(). The file is updated with a specific values.

Parameter-Liste

values

Data for update. Key is data source name.

time

Time value for updating the RRD with a particulat data. Default value is current time.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Throws a Exception on error.

Beispiele

Beispiel #1 RRDUpdater::update() examples

<?php
$updator = new RRDUpdater("speed.rrd");
//updates the data source "speed" with value "12411"
//for time defined by timestamp "920807700"
$updator->update(array("speed" => "12411"), "920807700");
?>


ScoutAPM

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
  • Vordefinierte Konstanten
  • Scoutapm Funktionen
    • scoutapm_get_calls — Returns a list of instrumented calls that have occurred
    • scoutapm_list_instrumented_functions — List functions scoutapm will instrument.


Einführung

Hinweis: Diese Erweiterung steht auf Windows-Betriebssystemen nicht zur Verfügung.

ScoutAPM's extension for PHP provides additional capabilities to application monitoring over just using the base PHP userland library.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

  • PHP >= 7.1.0
  • Windows is not currently supported


Installation

This extension is available on PECL. Run:

$ sudo pecl install scoutapm
You may need to add Scout to your php.ini, for example:
extension=scoutapm.so


  • « Laufzeit-Konfiguration
  • Scoutapm Funktionen »
  • PHP Manual
  • ScoutAPM
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Scoutapm Funktionen

Inhaltsverzeichnis

  • scoutapm_get_calls — Returns a list of instrumented calls that have occurred
  • scoutapm_list_instrumented_functions — List functions scoutapm will instrument.


Returns a list of instrumented calls that have occurred

  • « Scoutapm Funktionen
  • scoutapm_list_instrumented_functions »
  • PHP Manual
  • Scoutapm Funktionen
  • Returns a list of instrumented calls that have occurred

scoutapm_get_calls

(PECL scoutapm >= 1.0.0)

scoutapm_get_calls — Returns a list of instrumented calls that have occurred

Beschreibung

scoutapm_get_calls ( ) : array

Returns a list of any instrumented function calls since scoutapm_get_calls() was last called. The list is cleared each time the function is called.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

scoutapm_get_calls() returns an array containing a list of all recorded calls to instrumented function calls.

Beispiele

Beispiel #1 Fetch instrumented calls

<?php

file_get_contents('a.txt');
file_get_contents('b.txt');

print_r(scoutapm_get_calls());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [function] => file_get_contents
            [entered] => 1576839727.7934
            [exited] => 1576839727.7935
            [time_taken] => 2.7894973754883E-5
            [argv] => Array
                (
                    [0] => a.txt
                )

        )

    [1] => Array
        (
            [function] => file_get_contents
            [entered] => 1576839727.7935
            [exited] => 1576839727.7935
            [time_taken] => 7.8678131103516E-6
            [argv] => Array
                (
                    [0] => b.txt
                )

        )

)


List functions scoutapm will instrument.

  • « scoutapm_get_calls
  • SNMP »
  • PHP Manual
  • Scoutapm Funktionen
  • List functions scoutapm will instrument.

scoutapm_list_instrumented_functions

(PECL scoutapm >= 1.0.2)

scoutapm_list_instrumented_functions — List functions scoutapm will instrument.

Beschreibung

scoutapm_list_instrumented_functions ( ) : array

Returns a list of the functions the extension will instrument.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

scoutapm_list_instrumented_functions() returns an array containing a list of all functions that the scoutapm extension is able to instrument in the current installation.

Beispiele

Beispiel #1 Fetch the list of functions scoutapm will instrument

<?php
print_r(scoutapm_list_instrumented_functions());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => file_get_contents
    [1] => file_put_contents
    [2] => fopen
    [3] => fread
    [4] => fwrite
    [5] => pdo->exec
    [6] => pdo->query
    [7] => pdo->prepare
    [8] => pdostatement->execute
)


SNMP

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • SNMP-Funktionen
    • snmp_get_quick_print — Holt den aktuellen Wert der quick_print-Einstellung der NET-SNMP-Bibliothek
    • snmp_get_valueretrieval — Return the method how the SNMP values will be returned
    • snmp_read_mib — Reads and parses a MIB file into the active MIB tree
    • snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer
    • snmp_set_oid_numeric_print — Set the OID output format
    • snmp_set_oid_output_format — Set the OID output format
    • snmp_set_quick_print — Setzt den Wert von enable innerhalb der NET-SNMP-Bibliothek
    • snmp_set_valueretrieval — Specify the method how the SNMP values will be returned
    • snmp2_get — Fetch an SNMP object
    • snmp2_getnext — Fetch the SNMP object which follows the given object id
    • snmp2_real_walk — Return all objects including their respective object ID within the specified one
    • snmp2_set — Set the value of an SNMP object
    • snmp2_walk — Fetch all the SNMP objects from an agent
    • snmp3_get — Fetch an SNMP object
    • snmp3_getnext — Fetch the SNMP object which follows the given object id
    • snmp3_real_walk — Return all objects including their respective object ID within the specified one
    • snmp3_set — Set the value of an SNMP object
    • snmp3_walk — Fetch all the SNMP objects from an agent
    • snmpget — Holt ein SNMP-Objekt
    • snmpgetnext — Fetch the SNMP object which follows the given object id
    • snmprealwalk — Return all objects including their respective object ID within the specified one
    • snmpset — Setzt den Wert eines SNMP-Objekts
    • snmpwalk — Holt alle SNMP-Objekte eines Agenten
    • snmpwalkoid — Abfrage über einen Baum einer Netzwerkeinheit
  • SNMP — The SNMP class
    • SNMP::close — Close SNMP session
    • SNMP::__construct — Creates SNMP instance representing session to remote SNMP agent
    • SNMP::get — Fetch an SNMP object
    • SNMP::getErrno — Get last error code
    • SNMP::getError — Get last error message
    • SNMP::getnext — Fetch an SNMP object which follows the given object id
    • SNMP::set — Set the value of an SNMP object
    • SNMP::setSecurity — Configures security-related SNMPv3 session parameters
    • SNMP::walk — Fetch SNMP object subtree
  • SNMPException — The SNMPException class


Einführung

Die SNMP-Erweiterung bietet ein sehr einfaches und leicht bedienbares Toolset zur Verwaltung entfernter Geräte über das Simple Network Management Protocol.

Da diese Erweiterung um die Net-SNMP-Bibliothek herum implementiert ist, werden alle grundlegenden Konzepte von dieser übernommen. Auch ändern die PHP-Funktionen ihr Verhalten abhängig von Net-SNMP-Konfigurationsdateien und Umgebungsvariablen.

Mehr Informationen über Net-SNMP können unter » http://www.net-snmp.org/ gefunden werden.


Anforderungen

Um die SNMP-Funktionen nutzen zu können, muss das » NET-SNMP-Paket installiert sein. Die SNMPv3-Funktionen sind nur verfügbar, wenn ebenfalls das » OpenSSL-Paket installiert ist.

Net-SNMP Version 5.3+ wird für Unix-Installationen, und Net-SNMP Version 5.4+ für Windows benötigt.


Installation

Die Windowsdistribution von Net-SNMP enthält Unterstützungsdateien für SNMP im Verzeichnis mibs. Dieses Verzeichnis sollte als MIBDIRS zu den Windows-Umgebungsvariablen hinzugefügt werden, wobei der Wert der vollständige Pfad zum mibs-Verzeichnis sein sollte, z.B. c:\usr\mibs.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Für snmp_set_oid_output_format()
SNMP_OID_OUTPUT_SUFFIX (int)
SNMP_OID_OUTPUT_MODULE (int)
SNMP_OID_OUTPUT_FULL (int)
SNMP_OID_OUTPUT_NUMERIC (int)
SNMP_OID_OUTPUT_UCD (int)
SNMP_OID_OUTPUT_NONE (int)
Für snmp_set_valueretrieval()
SNMP_VALUE_LIBRARY (int)
SNMP_VALUE_PLAIN (int)
SNMP_VALUE_OBJECT (int)
SNMP-Typen wie zurückgegeben, wenn SNMP_VALUE_OBJECT mit snmp_set_valueretrieval() verwendet wurde.
SNMP_BIT_STR (int)
SNMP_OCTET_STR (int)
SNMP_OPAQUE (int)
SNMP_NULL (int)
SNMP_OBJECT_ID (int)
SNMP_IPADDRESS (int)
SNMP_COUNTER (int)
SNMP_UNSIGNED (int)
SNMP_TIMETICKS (int)
SNMP_UINTEGER (int)
SNMP_INTEGER (int)
SNMP_COUNTER64 (int)


SNMP-Funktionen

Inhaltsverzeichnis

  • snmp_get_quick_print — Holt den aktuellen Wert der quick_print-Einstellung der NET-SNMP-Bibliothek
  • snmp_get_valueretrieval — Return the method how the SNMP values will be returned
  • snmp_read_mib — Reads and parses a MIB file into the active MIB tree
  • snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer
  • snmp_set_oid_numeric_print — Set the OID output format
  • snmp_set_oid_output_format — Set the OID output format
  • snmp_set_quick_print — Setzt den Wert von enable innerhalb der NET-SNMP-Bibliothek
  • snmp_set_valueretrieval — Specify the method how the SNMP values will be returned
  • snmp2_get — Fetch an SNMP object
  • snmp2_getnext — Fetch the SNMP object which follows the given object id
  • snmp2_real_walk — Return all objects including their respective object ID within the specified one
  • snmp2_set — Set the value of an SNMP object
  • snmp2_walk — Fetch all the SNMP objects from an agent
  • snmp3_get — Fetch an SNMP object
  • snmp3_getnext — Fetch the SNMP object which follows the given object id
  • snmp3_real_walk — Return all objects including their respective object ID within the specified one
  • snmp3_set — Set the value of an SNMP object
  • snmp3_walk — Fetch all the SNMP objects from an agent
  • snmpget — Holt ein SNMP-Objekt
  • snmpgetnext — Fetch the SNMP object which follows the given object id
  • snmprealwalk — Return all objects including their respective object ID within the specified one
  • snmpset — Setzt den Wert eines SNMP-Objekts
  • snmpwalk — Holt alle SNMP-Objekte eines Agenten
  • snmpwalkoid — Abfrage über einen Baum einer Netzwerkeinheit


Holt den aktuellen Wert der quick_print-Einstellung der NET-SNMP-Bibliothek

  • « SNMP-Funktionen
  • snmp_get_valueretrieval »
  • PHP Manual
  • SNMP-Funktionen
  • Holt den aktuellen Wert der quick_print-Einstellung der NET-SNMP-Bibliothek

snmp_get_quick_print

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp_get_quick_print — Holt den aktuellen Wert der quick_print-Einstellung der NET-SNMP-Bibliothek

Beschreibung

snmp_get_quick_print ( ) : bool

Gibt den aktuellen Wert von quick_print der NET-SNMP-Bibliothek zurück. quick_print ist standardmäßig abgeschaltet.

Rückgabewerte

Gibt true zurück, wenn quick_print aktiviert ist, anderfalls false.

Beispiele

Beispiel #1 snmp_get_quick_print()-Beispiel

<?php
$quickprint = snmp_get_quick_print();
?>

Siehe auch

  • snmp_set_quick_print() - Setzt den Wert von enable innerhalb der NET-SNMP-Bibliothek für die vollständige Beschreibung der Wirkung von quick_print.


Return the method how the SNMP values will be returned

  • « snmp_get_quick_print
  • snmp_read_mib »
  • PHP Manual
  • SNMP-Funktionen
  • Return the method how the SNMP values will be returned

snmp_get_valueretrieval

(PHP 4 >= 4.3.3, PHP 5, PHP 7, PHP 8)

snmp_get_valueretrieval — Return the method how the SNMP values will be returned

Beschreibung

snmp_get_valueretrieval ( ) : int

Rückgabewerte

OR-ed combitantion of constants ( SNMP_VALUE_LIBRARY or SNMP_VALUE_PLAIN ) with possible SNMP_VALUE_OBJECT set.

Beispiele

Beispiel #1 Using snmp_get_valueretrieval

<?php
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 if (snmp_get_valueretrieval() & SNMP_VALUE_OBJECT) {
   echo $ret->value;
 } else {
   echo $ret;
 }
?>

Siehe auch

  • snmp_set_valueretrieval() - Specify the method how the SNMP values will be returned
  • Vordefinierte Konstanten


Reads and parses a MIB file into the active MIB tree

  • « snmp_get_valueretrieval
  • snmp_set_enum_print »
  • PHP Manual
  • SNMP-Funktionen
  • Reads and parses a MIB file into the active MIB tree

snmp_read_mib

(PHP 5, PHP 7, PHP 8)

snmp_read_mib — Reads and parses a MIB file into the active MIB tree

Beschreibung

snmp_read_mib ( string $filename ) : bool

This function is used to load additional, e.g. vendor specific, MIBs so that human readable OIDs like VENDOR-MIB::foo.1 instead of error prone numeric OIDs can be used.

The order in which the MIBs are loaded does matter as the underlying Net-SNMP libary will print warnings if referenced objects cannot be resolved.

Parameter-Liste

filename

The filename of the MIB.

Beispiele

Beispiel #1 Using snmp_read_mib()

<?php
 print_r( snmprealwalk('localhost', 'public', '.1.3.6.1.2.1.2.3.4.5') );

 snmp_read_mib('./FOO-BAR-MIB.txt');
 print_r( snmprealwalk('localhost', 'public', 'FOO-BAR-MIB::someTable' );
?>

The above example is made up but the results would look like:

Array
(
    [iso.3.6.1.2.1.2.3.4.5.0] => Gauge32: 6
)
Array
(
    [FOO-BAR-MIB::someTable.0] => Gauge32: 6
)


Return all values that are enums with their enum value instead of the raw integer

  • « snmp_read_mib
  • snmp_set_oid_numeric_print »
  • PHP Manual
  • SNMP-Funktionen
  • Return all values that are enums with their enum value instead of the raw integer

snmp_set_enum_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer

Beschreibung

snmp_set_enum_print ( bool $enable ) : bool

This function toggles if snmpwalk/snmpget etc. should automatically lookup enum values in the MIB and return them together with their human readable string.

Parameter-Liste

enable

As the value is interpreted as boolean by the Net-SNMP library, it can only be "0" or "1".

Beispiele

Beispiel #1 Using snmp_set_enum_print()

<?php
 snmp_set_enum_print(0);
 echo snmpget('localhost', 'public', 'IF-MIB::ifOperStatus.3') . "\n";
 snmp_set_enum_print(1);
 echo snmpget('localhost', 'public', 'IF-MIB::ifOperStatus.3') . "\n";
?>

The above would return

 INTEGER: up(1)
 INTEGER: 1


Set the OID output format

  • « snmp_set_enum_print
  • snmp_set_oid_output_format »
  • PHP Manual
  • SNMP-Funktionen
  • Set the OID output format

snmp_set_oid_numeric_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

snmp_set_oid_numeric_print — Set the OID output format

Beschreibung

snmp_set_oid_numeric_print ( int $format ) : bool

Diese Funktion ist ein Alias für: snmp_set_oid_output_format().

Siehe auch

  • snmp_set_oid_output_format() - Set the OID output format


Set the OID output format

  • « snmp_set_oid_numeric_print
  • snmp_set_quick_print »
  • PHP Manual
  • SNMP-Funktionen
  • Set the OID output format

snmp_set_oid_output_format

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

snmp_set_oid_output_format — Set the OID output format

Beschreibung

snmp_set_oid_output_format ( int $format ) : bool

snmp_set_oid_output_format() sets the output format to be full or numeric.

Parameter-Liste

format
OID .1.3.6.1.2.1.1.3.0 representation for various format values
SNMP_OID_OUTPUT_FULL | .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NUMERIC | .1.3.6.1.2.1.1.3.0

Begining from PHP 5.4.0 four additional constants available:

SNMP_OID_OUTPUT_MODULE | DISMAN-EVENT-MIB::sysUpTimeInstance
SNMP_OID_OUTPUT_SUFFIX | sysUpTimeInstance
SNMP_OID_OUTPUT_UCD | system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NONE | Undefined

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Using snmprealwalk()

<?php

 snmp_read_mib("/usr/share/mibs/netsnmp/NET-SNMP-TC");

 // default or SNMP_OID_OUTPUT_MODULE in PHP >= 5.3.6
 print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );

 snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC);
 print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );

 snmp_set_oid_output_format(SNMP_OID_OUTPUT_FULL);
 print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );
?>

The above would output:

 Array
 (
    [RFC1213-MIB::sysObjectID.0] => OID: NET-SNMP-TC::linux
 )
 Array
 (
    [.1.3.6.1.2.1.1.2.0] => OID: .1.3.6.1.4.1.8072.3.2.10
 )
 Array
 (
    [.iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0] => OID: .iso.org.dod.internet.private.enterprises.netSnmp.netSnmpEnumerations.netSnmpAgentOIDs.linux
 )


Setzt den Wert von enable innerhalb der NET-SNMP-Bibliothek

  • « snmp_set_oid_output_format
  • snmp_set_valueretrieval »
  • PHP Manual
  • SNMP-Funktionen
  • Setzt den Wert von enable innerhalb der NET-SNMP-Bibliothek

snmp_set_quick_print

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp_set_quick_print — Setzt den Wert von enable innerhalb der NET-SNMP-Bibliothek

Beschreibung

snmp_set_quick_print ( bool $enable ) : bool

Setzt den Wert von enable innerhalb der NET-SNMP-Bibliothek. Falls es gesetzt ist (1), wird die SNMP-Bibliothek 'quick printed'-Werte zurückgeben. Das bedeutet, dass nur der Wert ausgegeben wird. Wenn enable nicht aktiviert ist (Standardeinstellung), gibt die NET-SNMP-Bibliothek zusätzliche Informationen aus, die den Typ des Wertes (z.B. IpAddress oder OID) enhalten. Zusätzlich gibt die Bibliothek für alle Werte, die weniger als vier Zeichen haben, Hex-Werte aus, wenn quick_print nicht aktiviert ist.

Standardmäßig gibt die NET-SNMP-Bibliothek ausführliche Werte zurück; quick_print wird verwendet, um nur den Wert zurückzugeben.

Zurzeit werden Zeichenketten immer noch mit zusätzlichen Anführungszeichen zurückgegeben; dies wird in einer späteren Version korrigiert.

Parameter-Liste

enable

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

quick_print wird oft verwendet, um die Informationen, die zurückgegeben werden, weiterzuverwenden anstatt sie auszugeben.

Beispiel #1 Verwendung von snmp_set_quick_print()

<?php
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\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\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

'Timeticks: (0) 0:00:00.00'
'0:00:00.00'

Siehe auch

  • snmp_get_quick_print() - Holt den aktuellen Wert der quick_print-Einstellung der NET-SNMP-Bibliothek


Specify the method how the SNMP values will be returned

  • « snmp_set_quick_print
  • snmp2_get »
  • PHP Manual
  • SNMP-Funktionen
  • Specify the method how the SNMP values will be returned

snmp_set_valueretrieval

(PHP 4 >= 4.3.3, PHP 5, PHP 7, PHP 8)

snmp_set_valueretrieval — Specify the method how the SNMP values will be returned

Beschreibung

snmp_set_valueretrieval ( int $method ) : bool

Parameter-Liste

method
types
SNMP_VALUE_LIBRARY | The return values will be as returned by the Net-SNMP library.
SNMP_VALUE_PLAIN | The return values will be the plain value without the SNMP type hint.
SNMP_VALUE_OBJECT | The return values will be objects with the properties "value" and "type", where the latter is one of the SNMP_OCTET_STR, SNMP_COUNTER etc. constants. The way "value" is returned is based on which one of constants SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN is set.

Beispiele

Beispiel #1 Using snmp_set_valueretrieval()

<?php
 snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // $ret = "STRING: lo"

 snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // $ret = "lo";

 snmp_set_valueretrieval(SNMP_VALUE_OBJECT);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, see constants
 //   [value] => lo
 // )

 // PHP 5.4+ examples
 snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_PLAIN);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, see constants
 //   [value] => lo
 // )

 snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_LIBRARY);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, see constants
 //   [value] => STRING: lo
 // )

?>

Siehe auch

  • snmp_get_valueretrieval() - Return the method how the SNMP values will be returned
  • Vordefinierte Konstanten


Fetch an SNMP object

  • « snmp_set_valueretrieval
  • snmp2_getnext »
  • PHP Manual
  • SNMP-Funktionen
  • Fetch an SNMP object

snmp2_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

snmp2_get — Fetch an SNMP object

Beschreibung

snmp2_get ( string $hostname , string $community , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : stdClass|array|string|bool

The snmp2_get() function is used to read the value of an SNMP object specified by the object_id.

Parameter-Liste

hostname

The SNMP agent.

community

The read community.

object_id

The SNMP object.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Rückgabewerte

Returns SNMP object value on success or false on error.

Beispiele

Beispiel #1 Using snmp2_get()

<?php
$syscontact = snmp2_get("127.0.0.1", "public", "system.SysContact.0");
?>

Siehe auch

  • snmp2_set() - Set the value of an SNMP object


Fetch the SNMP object which follows the given object id

  • « snmp2_get
  • snmp2_real_walk »
  • PHP Manual
  • SNMP-Funktionen
  • Fetch the SNMP object which follows the given object id

snmp2_getnext

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_getnext — Fetch the SNMP object which follows the given object id

Beschreibung

snmp2_getnext ( string $hostname , string $community , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : stdClass|array|string|bool

The snmp2_get_next() function is used to read the value of the SNMP object that follows the specified object_id.

Parameter-Liste

hostname

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Rückgabewerte

Returns SNMP object value on success or false on error. In case of an error, an E_WARNING message is shown.

Beispiele

Beispiel #1 Using snmp2_get_next()

<?php
$nameOfSecondInterface = snmp2_get_next('localhost', 'public', 'IF-MIB::ifName.1';
?>

Siehe auch

  • snmp2_get() - Fetch an SNMP object
  • snmp2_walk() - Fetch all the SNMP objects from an agent


Return all objects including their respective object ID within the specified one

  • « snmp2_getnext
  • snmp2_set »
  • PHP Manual
  • SNMP-Funktionen
  • Return all objects including their respective object ID within the specified one

snmp2_real_walk

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_real_walk — Return all objects including their respective object ID within the specified one

Beschreibung

snmp2_real_walk ( string $hostname , string $community , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : array|bool

The snmp2_real_walk() function is used to traverse over a number of SNMP objects starting from object_id and return not only their values but also their object ids.

Parameter-Liste

hostname

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Rückgabewerte

Returns an associative array of the SNMP object ids and their values on success or false on error. In case of an error, an E_WARNING message is shown.

Beispiele

Beispiel #1 Using snmp2_real_walk()

<?php
 print_r(snmp2_real_walk("localhost", "public", "IF-MIB::ifName"));
?>

The above will output something like:

    Array
      (
      [IF-MIB::ifName.1] => STRING: lo
      [IF-MIB::ifName.2] => STRING: eth0
      [IF-MIB::ifName.3] => STRING: eth2
      [IF-MIB::ifName.4] => STRING: sit0
      [IF-MIB::ifName.5] => STRING: sixxs
    )

Siehe auch

  • snmp2_walk() - Fetch all the SNMP objects from an agent


Set the value of an SNMP object

  • « snmp2_real_walk
  • snmp2_walk »
  • PHP Manual
  • SNMP-Funktionen
  • Set the value of an SNMP object

snmp2_set

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_set — Set the value of an SNMP object

Beschreibung

snmp2_set ( string $hostname , string $community , array|string $object_id , array|string $type , array|string $value , int $timeout = -1 , int $retries = -1 ) : array|bool

snmp2_set() is used to set the value of an SNMP object specified by the object_id.

Parameter-Liste

hostname

The hostname of the SNMP agent (server).

community

The write community.

object_id

The SNMP object id.

type

The MIB defines the type of each object id. It has to be specified as a single character from the below list.

types
= The type is taken from the MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

If OPAQUE_SPECIAL_TYPES was defined while compiling the SNMP library, the following are also valid:

types
U | unsigned int64
I | signed int64
F | float
D | double

Most of these will use the obvious corresponding ASN.1 type. 's', 'x', 'd' and 'b' are all different ways of specifying an OCTET STRING value, and the 'u' unsigned type is also used for handling Gauge32 values.

If the MIB-Files are loaded by into the MIB Tree with "snmp_read_mib" or by specifying it in the libsnmp config, '=' may be used as the type parameter for all object ids as the type can then be automatically read from the MIB.

Note that there are two ways to set a variable of the type BITS like e.g. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • Using type "b" and a list of bit numbers. This method is not recommended since GET query for the same OID would return e.g. 0xF8.
  • Using type "x" and a hex number but without(!) the usual "0x" prefix.

See examples section for more details.

value

The new value.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or invalid OID is specified the warning probably reads "Could not add variable".

Beispiele

Beispiel #1 Using snmp2_set()

<?php
  snmp2_set("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Beispiel #2 Using snmp2_set() for setting BITS SNMP object id

<?php
  snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>

Siehe auch

  • snmp2_get() - Fetch an SNMP object


Fetch all the SNMP objects from an agent

  • « snmp2_set
  • snmp3_get »
  • PHP Manual
  • SNMP-Funktionen
  • Fetch all the SNMP objects from an agent

snmp2_walk

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_walk — Fetch all the SNMP objects from an agent

Beschreibung

snmp2_walk ( string $hostname , string $community , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : array|bool

snmp2_walk() function is used to read all the values from an SNMP agent specified by the hostname.

Parameter-Liste

hostname

The SNMP agent (server).

community

The read community.

object_id

If 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.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Rückgabewerte

Returns an array of SNMP object values starting from the object_id as root or false on error.

Beispiele

Beispiel #1 snmp2_walk() Example

<?php
$a = snmp2_walk("127.0.0.1", "public", "");

foreach ($a as $val) {
    echo "$val\n";
}

?>

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

Siehe auch

  • snmp2_real_walk() - Return all objects including their respective object ID within the specified one


Fetch an SNMP object

  • « snmp2_walk
  • snmp3_getnext »
  • PHP Manual
  • SNMP-Funktionen
  • Fetch an SNMP object

snmp3_get

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_get — Fetch an SNMP object

Beschreibung

snmp3_get ( string $hostname , string $security_name , string $security_level , string $auth_protocol , string $auth_passphrase , string $privacy_protocol , string $privacy_passphrase , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : stdClass|array|string|bool

The snmp3_get() function is used to read the value of an SNMP object specified by the object_id.

Parameter-Liste

hostname

The hostname of the SNMP agent (server).

security_name

the security name, usually some kind of username

security_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

privacy_protocol

the privacy protocol (DES or AES)

privacy_passphrase

the privacy pass phrase

object_id

The SNMP object id.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Rückgabewerte

Returns SNMP object value on success or false on error.

Beispiele

Beispiel #1 Using snmp3_get()

<?php
$nameOfSecondInterface = snmp3_get('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName.2');
?>

Siehe auch

  • snmp3_set() - Set the value of an SNMP object


Fetch the SNMP object which follows the given object id

  • « snmp3_get
  • snmp3_real_walk »
  • PHP Manual
  • SNMP-Funktionen
  • Fetch the SNMP object which follows the given object id

snmp3_getnext

(PHP 5, PHP 7, PHP 8)

snmp3_getnext — Fetch the SNMP object which follows the given object id

Beschreibung

snmp3_getnext ( string $hostname , string $security_name , string $security_level , string $auth_protocol , string $auth_passphrase , string $privacy_protocol , string $privacy_passphrase , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : stdClass|array|string|bool

The snmp3_getnext() function is used to read the value of the SNMP object that follows the specified object_id.

Parameter-Liste

hostname

The hostname of the SNMP agent (server).

security_name

the security name, usually some kind of username

security_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

privacy_protocol

the privacy protocol (DES or AES)

privacy_passphrase

the privacy pass phrase

object_id

The SNMP object id.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Rückgabewerte

Returns SNMP object value on success or false on error. In case of an error, an E_WARNING message is shown.

Beispiele

Beispiel #1 Using snmp3_getnext()

<?php
$nameOfSecondInterface = snmp3_getnext('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName.1');
?>

Siehe auch

  • snmp3_get() - Fetch an SNMP object
  • snmp3_walk() - Fetch all the SNMP objects from an agent


Return all objects including their respective object ID within the specified one

  • « snmp3_getnext
  • snmp3_set »
  • PHP Manual
  • SNMP-Funktionen
  • Return all objects including their respective object ID within the specified one

snmp3_real_walk

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_real_walk — Return all objects including their respective object ID within the specified one

Beschreibung

snmp3_real_walk ( string $hostname , string $security_name , string $security_level , string $auth_protocol , string $auth_passphrase , string $privacy_protocol , string $privacy_passphrase , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : array|bool

The snmp3_real_walk() function is used to traverse over a number of SNMP objects starting from object_id and return not only their values but also their object ids.

Parameter-Liste

hostname

The hostname of the SNMP agent (server).

security_name

the security name, usually some kind of username

security_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

privacy_protocol

the privacy protocol (DES or AES)

privacy_passphrase

the privacy pass phrase

object_id

The SNMP object id.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Rückgabewerte

Returns an associative array of the SNMP object ids and their values on success or false on error. In case of an error, an E_WARNING message is shown.

Beispiele

Beispiel #1 Using snmp3_real_walk()

<?php
 var_export(snmp3_real_walk('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName'));
?>

The above will output something like:

array (
  'IF-MIB::ifName.1' => 'STRING: lo',
  'IF-MIB::ifName.2' => 'STRING: eth0',
  'IF-MIB::ifName.3' => 'STRING: eth2',
  'IF-MIB::ifName.4' => 'STRING: sit0',
  'IF-MIB::ifName.5' => 'STRING: sixxs',
)

Siehe auch

  • snmpwalk() - Holt alle SNMP-Objekte eines Agenten


Set the value of an SNMP object

  • « snmp3_real_walk
  • snmp3_walk »
  • PHP Manual
  • SNMP-Funktionen
  • Set the value of an SNMP object

snmp3_set

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_set — Set the value of an SNMP object

Beschreibung

snmp3_set ( string $hostname , string $security_name , string $security_level , string $auth_protocol , string $auth_passphrase , string $privacy_protocol , string $privacy_passphrase , array|string $object_id , array|string $type , array|string $value , int $timeout = -1 , int $retries = -1 ) : array|bool

snmp3_set() is used to set the value of an SNMP object specified by the object_id.

Even if the security level does not use an auth or priv protocol/password valid values have to be specified.

Parameter-Liste

hostname

The hostname of the SNMP agent (server).

security_name

the security name, usually some kind of username

security_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

privacy_protocol

the privacy protocol (DES or AES)

privacy_passphrase

the privacy pass phrase

object_id

The SNMP object id.

type

The MIB defines the type of each object id. It has to be specified as a single character from the below list.

types
= The type is taken from the MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

If OPAQUE_SPECIAL_TYPES was defined while compiling the SNMP library, the following are also valid:

types
U | unsigned int64
I | signed int64
F | float
D | double

Most of these will use the obvious corresponding ASN.1 type. 's', 'x', 'd' and 'b' are all different ways of specifying an OCTET STRING value, and the 'u' unsigned type is also used for handling Gauge32 values.

If the MIB-Files are loaded by into the MIB Tree with "snmp_read_mib" or by specifying it in the libsnmp config, '=' may be used as the type parameter for all object ids as the type can then be automatically read from the MIB.

Note that there are two ways to set a variable of the type BITS like e.g. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • Using type "b" and a list of bit numbers. This method is not recommended since GET query for the same OID would return e.g. 0xF8.
  • Using type "x" and a hex number but without(!) the usual "0x" prefix.

See examples section for more details.

value

The new value

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or invalid OID is specified the warning probably reads "Could not add variable".

Beispiele

Beispiel #1 Using snmp3_set()

<?php
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifAlias.3', 's', "foo");
?>

Beispiel #2 Using snmp3_set() for setting BITS SNMP object id

<?php
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'x', 'F0');
?>


Fetch all the SNMP objects from an agent

  • « snmp3_set
  • snmpget »
  • PHP Manual
  • SNMP-Funktionen
  • Fetch all the SNMP objects from an agent

snmp3_walk

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_walk — Fetch all the SNMP objects from an agent

Beschreibung

snmp3_walk ( string $hostname , string $security_name , string $security_level , string $auth_protocol , string $auth_passphrase , string $privacy_protocol , string $privacy_passphrase , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : array|bool

snmp3_walk() function is used to read all the values from an SNMP agent specified by the hostname.

Even if the security level does not use an auth or priv protocol/password valid values have to be specified.

Parameter-Liste

hostname

The hostname of the SNMP agent (server).

security_name

the security name, usually some kind of username

security_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

privacy_protocol

the privacy protocol (DES or AES)

privacy_passphrase

the privacy pass phrase

object_id

If 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.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Rückgabewerte

Returns an array of SNMP object values starting from the object_id as root or false on error.

Beispiele

Beispiel #1 snmp3_walk() Example

<?php
$ret = snmp3_walk('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName');
var_export($ret);
?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost:

array (
  0 => 'STRING: lo',
  1 => 'STRING: eth0',
  2 => 'STRING: eth2',
  3 => 'STRING: sit0',
  4 => 'STRING: sixxs',
)

Siehe auch

  • snmp3_real_walk() - Return all objects including their respective object ID within the specified one


Holt ein SNMP-Objekt

  • « snmp3_walk
  • snmpgetnext »
  • PHP Manual
  • SNMP-Funktionen
  • Holt ein SNMP-Objekt

snmpget

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpget — Holt ein SNMP-Objekt

Beschreibung

snmpget ( string $hostname , string $community , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : stdClass|array|string|bool

Die Funktion snmpget() wird verwendet, um den Wert eines SNMP-Objekts zu ermitteln, das mit object_id näher bestimmt ist.

Parameter-Liste

hostname

Der SNMP-Agent.

community

Die "read community".

object_id

Das SNMP-Objekt.

timeout

Die Zahl der Mikrosekunden bis zum ersten Timeout.

retries

Die Anzahl der Wiederholungsversuche, wenn Timeouts auftreten.

Rückgabewerte

Gibt im Erfolgsfall den Wert eines SNMP-Objekts zurück, oder false im Fehlerfall.

Beispiele

Beispiel #1 Verwendung von snmpget()

<?php
$syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0");
?>

Siehe auch

  • snmpset() - Setzt den Wert eines SNMP-Objekts


Fetch the SNMP object which follows the given object id

  • « snmpget
  • snmprealwalk »
  • PHP Manual
  • SNMP-Funktionen
  • Fetch the SNMP object which follows the given object id

snmpgetnext

(PHP 5, PHP 7, PHP 8)

snmpgetnext — Fetch the SNMP object which follows the given object id

Beschreibung

snmpgetnext ( string $hostname , string $community , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : stdClass|array|string|bool

The snmpgetnext() function is used to read the value of the SNMP object that follows the specified object_id.

Parameter-Liste

hostname

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Rückgabewerte

Returns SNMP object value on success or false on error. In case of an error, an E_WARNING message is shown.

Beispiele

Beispiel #1 Using snmpgetnext()

<?php
$nameOfSecondInterface = snmpgetnetxt('localhost', 'public', 'IF-MIB::ifName.1';
?>

Siehe auch

  • snmpget() - Holt ein SNMP-Objekt
  • snmpwalk() - Holt alle SNMP-Objekte eines Agenten


Return all objects including their respective object ID within the specified one

  • « snmpgetnext
  • snmpset »
  • PHP Manual
  • SNMP-Funktionen
  • Return all objects including their respective object ID within the specified one

snmprealwalk

(PHP 4, PHP 5, PHP 7, PHP 8)

snmprealwalk — Return all objects including their respective object ID within the specified one

Beschreibung

snmprealwalk ( string $hostname , string $community , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : array|bool

The snmprealwalk() function is used to traverse over a number of SNMP objects starting from object_id and return not only their values but also their object ids.

Parameter-Liste

hostname

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Rückgabewerte

Returns an associative array of the SNMP object ids and their values on success or false on error. In case of an error, an E_WARNING message is shown.

Beispiele

Beispiel #1 Using snmprealwalk()

<?php
 print_r(snmprealwalk("localhost", "public", "IF-MIB::ifName"));
?>

The above will output something like:

    Array
      (
      [IF-MIB::ifName.1] => STRING: lo
      [IF-MIB::ifName.2] => STRING: eth0
      [IF-MIB::ifName.3] => STRING: eth2
      [IF-MIB::ifName.4] => STRING: sit0
      [IF-MIB::ifName.5] => STRING: sixxs
    )

Siehe auch

  • snmpwalk() - Holt alle SNMP-Objekte eines Agenten


Setzt den Wert eines SNMP-Objekts

  • « snmprealwalk
  • snmpwalk »
  • PHP Manual
  • SNMP-Funktionen
  • Setzt den Wert eines SNMP-Objekts

snmpset

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpset — Setzt den Wert eines SNMP-Objekts

Beschreibung

snmpset ( string $hostname , string $community , array|string $object_id , array|string $type , array|string $value , int $timeout = -1 , int $retries = -1 ) : array|bool

Die Funktion snmpset() wird benutzt, um den Wert eines SNMP-Objekts zu setzen, das mit object_id angegeben wird.

Parameter-Liste

hostname

Der Hostname des SNMP-Agenten (Server).

community

Die "write community".

object_id

Die SNMP-Objektkennung.

type

The MIB defines the type of each object id. It has to be specified as a single character from the below list.

types
= The type is taken from the MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

If OPAQUE_SPECIAL_TYPES was defined while compiling the SNMP library, the following are also valid:

types
U | unsigned int64
I | signed int64
F | float
D | double

Most of these will use the obvious corresponding ASN.1 type. 's', 'x', 'd' and 'b' are all different ways of specifying an OCTET STRING value, and the 'u' unsigned type is also used for handling Gauge32 values.

If the MIB-Files are loaded by into the MIB Tree with "snmp_read_mib" or by specifying it in the libsnmp config, '=' may be used as the type parameter for all object ids as the type can then be automatically read from the MIB.

Note that there are two ways to set a variable of the type BITS like e.g. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • Using type "b" and a list of bit numbers. This method is not recommended since GET query for the same OID would return e.g. 0xF8.
  • Using type "x" and a hex number but without(!) the usual "0x" prefix.

See examples section for more details.

value

Der neue Wert.

timeout

Die Zahl der Mikrosekunden bis zum ersten Timeout.

retries

Die Anzahl der Wiederholungsversuche, wenn Timeouts auftreten.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Wenn der SNMP-Host den Datentyp zurückweist, wird eine E_WARNING-Meldung in der Art "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." erzeugt. Wenn eine unbekannte oder ungültige OID angegeben wird, wird die Warnung wohl "Could not add variable" lauten.

Beispiele

Beispiel #1 Verwendung von snmpset()

<?php
  snmpset("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Beispiel #2 Verwendung von snmpset() zum Setzen von BITS-SNMP-Objektkennungen

<?php
  snmpset("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  snmpset("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>

Siehe auch

  • snmpget() - Holt ein SNMP-Objekt


Holt alle SNMP-Objekte eines Agenten

  • « snmpset
  • snmpwalkoid »
  • PHP Manual
  • SNMP-Funktionen
  • Holt alle SNMP-Objekte eines Agenten

snmpwalk

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpwalk — Holt alle SNMP-Objekte eines Agenten

Beschreibung

snmpwalk ( string $hostname , string $community , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : array|bool

Die Funktion snmpwalk() wird verwendet, um alle Werte von dem SNMP-Agenten zu lesen, der bei hostname angegeben wurde.

Parameter-Liste

hostname

Der SNMP-Agent (Server).

community

Die "read community".

object_id

Wenn null, wird object_id als Wurzel des SNMP-Objektbaums interpretiert und alle Objekte in diesem Baum werden als Array zurückgegegeben.

Wird object_id angegeben, werden alle SNMP-Objekte unter dieser object_id zurückgegeben.

timeout

Die Zahl der Mikrosekunden bis zum ersten Timeout.

retries

Die Anzahl der Wiederholungsversuche, wenn Timeouts auftreten.

Rückgabewerte

Gibt ein Array von SNMP-Objektwerten beginnend mit object_id als Wurzel zurück, oder false im Fehlerfall.

Beispiele

Beispiel #1 snmpwalk()-Beispiel

<?php
$a = snmpwalk("127.0.0.1", "public", "");

foreach ($a as $val) {
    echo "$val\n";
}

?>

Der obige Funktionsaufruf gibt alle SNMP-Objekte des Agenten, der auf localhost läuft, zurück. In einer Schleife können alle Werte durchlaufen werden.

Siehe auch

  • snmprealwalk() - Return all objects including their respective object ID within the specified one


Abfrage über einen Baum einer Netzwerkeinheit

  • « snmpwalk
  • SNMP »
  • PHP Manual
  • SNMP-Funktionen
  • Abfrage über einen Baum einer Netzwerkeinheit

snmpwalkoid

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpwalkoid — Abfrage über einen Baum einer Netzwerkeinheit

Beschreibung

snmpwalkoid ( string $hostname , string $community , array|string $object_id , int $timeout = -1 , int $retries = -1 ) : array|bool

Die Funktion snmpwalkoid() wird verwendet, um alle Objektkennungen und deren Werte von dem SNMP-Agenten zu lesen, der bei hostname angegeben wurde.

Die Existenz von snmpwalkoid() und snmpwalk() hat historische Gründe. Beide Funktionen gibt es aus Kompatiblitätsgründen. Stattdessen ist snmprealwalk() zu verwenden.

Parameter-Liste

hostname

Der SNMP-Agent.

community

Die "read community".

object_id

Wenn null, wird object_id als Wurzel des SNMP-Objektbaums interpretiert und alle Objekte in diesem Baum werden als Array zurückgegegeben.

Wird object_id angegeben, werden alle SNMP-Objekte unter dieser object_id zurückgegeben.

timeout

Die Zahl der Mikrosekunden bis zum ersten Timeout.

retries

Die Anzahl der Wiederholungsversuche, wenn Timeouts auftreten.

Rückgabewerte

Gibt ein assoziatives Array mit Objektkennungen und deren entsprechenden Objektwerten, beginnend mit object_id als Wurzel, zurück, oder false im Fehlerfall.

Beispiele

Beispiel #1 snmpwalkoid()-Beispiel

<?php
$a = snmpwalkoid("127.0.0.1", "public", "");
for (reset($a); $i = key($a); next($a)) {
    echo "$i: $a[$i]<br />\n";
}
?>

Der obige Funktionsaufruf gibt alle SNMP-Objekte des Agenten, der auf localhost läuft, zurück. In einer Schleife können alle Werte durchlaufen werden.

Siehe auch

  • snmprealwalk() - Return all objects including their respective object ID within the specified one


The SNMP class

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Einführung

Represents SNMP session.

Klassenbeschreibung

SNMP {
/* Eigenschaften */
public int $max_oids ;
public int $valueretrieval ;
public bool $quick_print ;
public bool $enum_print ;
public int $oid_output_format ;
public bool $oid_increasing_check ;
public int $exceptions_enabled ;
public array $info ;
/* Methoden */
public __construct ( int $version , string $hostname , string $community , int $timeout = -1 , int $retries = -1 )
public close ( ) : bool
public get ( array|string $objectId , bool $preserveKeys = false ) : array|bool
public getErrno ( ) : int
public getError ( ) : string
public getnext ( array|string $objectId ) : array|bool
public set ( array|string $objectId , array|string $type , array|string $value ) : array|bool
public setSecurity
 ( string $securityLevel
, string $authProtocol = ""
, string $authPassphrase = ""
, string $privacyProtocol = ""
, string $privacyPassphrase = ""
, string $contextName = ""
, string $contextEngineId = ""
) : bool
public walk ( array|string $objectId , bool $suffixAsKey = false , int $maxRepetitions = -1 , int $nonRepeaters = -1 ) : array|bool
/* Konstanten */
const int ERRNO_NOERROR = 0 ;
const int ERRNO_GENERIC = 2 ;
const int ERRNO_TIMEOUT = 4 ;
const int ERRNO_ERROR_IN_REPLY = 8 ;
const int ERRNO_OID_NOT_INCREASING = 16 ;
const int ERRNO_OID_PARSING_ERROR = 32 ;
const int ERRNO_MULTIPLE_SET_QUERIES = 64 ;
const int ERRNO_ANY = 126 ;
const int VERSION_1 = 0 ;
const int VERSION_2C = 1 ;
const int VERSION_2c = 1 ;
const int VERSION_3 = 3 ;
}

Eigenschaften

max_oids

Maximum OID per GET/SET/GETBULK request

valueretrieval

Controls the method how the SNMP values will be returned

SNMP_VALUE_LIBRARY | The return values will be as returned by the Net-SNMP library.
SNMP_VALUE_PLAIN | The return values will be the plain value without the SNMP type hint.
SNMP_VALUE_OBJECT | The return values will be objects with the properties "value" and "type", where the latter is one of the SNMP_OCTET_STR, SNMP_COUNTER etc. constants. The way "value" is returned is based on which one of SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN is set
quick_print

Value of quick_print within the NET-SNMP library

Sets the value of quick_print within the NET-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 NET-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.

enum_print

Controls the way enum values are printed

Parameter toggles if walk/get etc. should automatically lookup enum values in the MIB and return them together with their human readable string.

oid_output_format

Controls OID output format

OID .1.3.6.1.2.1.1.3.0 representation for various oid_output_format values
SNMP_OID_OUTPUT_FULL | .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NUMERIC | .1.3.6.1.2.1.1.3.0
SNMP_OID_OUTPUT_MODULE | DISMAN-EVENT-MIB::sysUpTimeInstance
SNMP_OID_OUTPUT_SUFFIX | sysUpTimeInstance
SNMP_OID_OUTPUT_UCD | system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NONE | Undefined
oid_increasing_check

Controls disabling check for increasing OID while walking OID tree

Some SNMP agents are known for returning OIDs out of order but can complete the walk anyway. Other agents return OIDs that are out of order and can cause SNMP::walk() to loop indefinitely until memory limit will be reached. PHP SNMP library by default performs OID increasing check and stops walking on OID tree when it detects possible loop with issuing warning about non-increasing OID faced. Set oid_increasing_check to false to disable this check.

exceptions_enabled

Controls which failures will raise SNMPException instead of warning. Use bitwise OR'ed SNMP::ERRNO_* constants. By default all SNMP exceptions are disabled.

info

Read-only property with remote agent configuration: hostname, port, default timeout, default retries count

Vordefinierte Konstanten

SNMP Error Types

SNMP::ERRNO_NOERROR

No SNMP-specific error occurred.

SNMP::ERRNO_GENERIC

A generic SNMP error occurred.

SNMP::ERRNO_TIMEOUT

Request to SNMP agent timed out.

SNMP::ERRNO_ERROR_IN_REPLY

SNMP agent returned an error in reply.

SNMP::ERRNO_OID_NOT_INCREASING

SNMP agent faced OID cycling reporning non-increasing OID while executing (BULK)WALK command. This indicates bogus remote SNMP agent.

SNMP::ERRNO_OID_PARSING_ERROR

Library failed while parsing OID (and/or type for SET command). No queries has been made.

SNMP::ERRNO_MULTIPLE_SET_QUERIES

Library will use multiple queries for SET operation requested. That means that operation will be performed in a non-transaction manner and second or subsequent chunks may fail if a type or value failure will be faced.

SNMP::ERRNO_ANY

All SNMP::ERRNO_* codes bitwise OR'ed.

SNMP Protocol Versions

SNMP::VERSION_1

SNMP::VERSION_2C, SNMP::VERSION_2c

SNMP::VERSION_3

Inhaltsverzeichnis

  • SNMP::close — Close SNMP session
  • SNMP::__construct — Creates SNMP instance representing session to remote SNMP agent
  • SNMP::get — Fetch an SNMP object
  • SNMP::getErrno — Get last error code
  • SNMP::getError — Get last error message
  • SNMP::getnext — Fetch an SNMP object which follows the given object id
  • SNMP::set — Set the value of an SNMP object
  • SNMP::setSecurity — Configures security-related SNMPv3 session parameters
  • SNMP::walk — Fetch SNMP object subtree


Close SNMP session

  • « SNMP
  • SNMP::__construct »
  • PHP Manual
  • SNMP
  • Close SNMP session

SNMP::close

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::close — Close SNMP session

Beschreibung

public SNMP::close ( ) : bool

Frees previously allocated SNMP session object.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 SNMP::close() example

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  # ...
  # get, walk, etc goes here
  # ...
  $session->close();
?>

Siehe auch

  • SNMP::__construct() - Creates SNMP instance representing session to remote SNMP agent


Creates SNMP instance representing session to remote SNMP agent

  • « SNMP::close
  • SNMP::get »
  • PHP Manual
  • SNMP
  • Creates SNMP instance representing session to remote SNMP agent

SNMP::__construct

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::__construct — Creates SNMP instance representing session to remote SNMP agent

Beschreibung

public SNMP::__construct ( int $version , string $hostname , string $community , int $timeout = -1 , int $retries = -1 )

The function description goes here.

Parameter-Liste

version

SNMP protocol version:
SNMP::VERSION_1,
SNMP::VERSION_2C,
SNMP::VERSION_3.

hostname

The SNMP agent. hostname may be suffixed with optional SNMP agent port after colon. IPv6 addresses must be enclosed in square brackets if used with port. If FQDN is used for hostname it will be resolved by php-snmp library, not by Net-SNMP engine. Usage of IPv6 addresses when specifying FQDN may be forced by enclosing FQDN into square brackets. Here it is some examples:

IPv4 with default port | 127.0.0.1
IPv6 with default port | ::1 or [::1]
IPv4 with specific port | 127.0.0.1:1161
IPv6 with specific port | [::1]:1161
FQDN with default port | host.domain
FQDN with specific port | host.domain:1161
FQDN with default port, force usage of IPv6 address | [host.domain]
FQDN with specific port, force usage of IPv6 address | [host.domain]:1161

community

The purpuse of community is SNMP version specific:

SNMP::VERSION_1 | SNMP community
SNMP::VERSION_2C | SNMP community
SNMP::VERSION_3 | SNMPv3 securityName
timeout

The number of microseconds until the first timeout.

retries

The number of retries in case timeout occurs.

Rückgabewerte

Returns SNMP object representing remote SNMP agent.

Fehler/Exceptions

SNMP::__construct() throws an exception when parameters count or types are wrong or unknown SNMP protocol version specified.

Beispiele

Beispiel #1 Fetching sysLocation

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $sysdescr = $session->get("sysDescr.0");
  echo "$sysdescr\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

STRING: Test server

Siehe auch

  • SNMP::close() - Close SNMP session


Fetch an SNMP object

  • « SNMP::__construct
  • SNMP::getErrno »
  • PHP Manual
  • SNMP
  • Fetch an SNMP object

SNMP::get

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::get — Fetch an SNMP object

Beschreibung

public SNMP::get ( array|string $objectId , bool $preserveKeys = false ) : array|bool

Fetch an SNMP object specified in objectId using GET query.

Parameter-Liste

If objectId is a string, then SNMP::get() will return SNMP object as string. If objectId is a array, all requested SNMP objects will be returned as associative array of the SNMP object ids and their values.

objectId

The SNMP object (OID) or objects

preserveKeys

When objectId is a array and preserveKeys set to true keys in results will be taken exactly as in objectId, otherwise SNMP::oid_output_format property is used to determinate the form of keys.

Rückgabewerte

Returns SNMP objects requested as string or array depending on objectId type or false on error.

Fehler/Exceptions

This method do not throw any exceptions by default. To enable throwing an SNMPException exception when some of library errors occure user should set exceptions_enabled SNMP class parameter to corresponding value. See SNMP::$exceptions_enabled explanation for more details.

Beispiele

Beispiel #1 Single SNMP object

Single SNMP object may be requested in two ways: as string resulting string return value or as single-element array with associative array as output.

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $sysdescr = $session->get("sysDescr.0");
  echo "$sysdescr\n";
  $sysdescr = $session->get(array("sysDescr.0"));
  print_r($sysdescr);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

STRING: Test server
Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
)

Beispiel #2 Multiple SNMP objects

$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $results = $session->get(array("sysDescr.0", "sysName.0"));
  print_r($results);
  $session->close();

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
    [SNMPv2-MIB::sysName.0] => STRING: myhost.nodomain
)

Siehe auch

  • SNMP::getErrno() - Get last error code
  • SNMP::getError() - Get last error message


Get last error code

  • « SNMP::get
  • SNMP::getError »
  • PHP Manual
  • SNMP
  • Get last error code

SNMP::getErrno

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::getErrno — Get last error code

Beschreibung

public SNMP::getErrno ( ) : int

Returns error code from last SNMP request.

Rückgabewerte

Returns one of SNMP error code values described in constants chapter.

Beispiele

Beispiel #1 SNMP::getErrno() example

<?php
$session = new SNMP(SNMP::VERSION_2c, '127.0.0.1', 'boguscommunity');
var_dump(@$session->get('.1.3.6.1.2.1.1.1.0'));
var_dump($session->getErrno() == SNMP::ERRNO_TIMEOUT);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)

Siehe auch

  • SNMP::getError() - Get last error message


Get last error message

  • « SNMP::getErrno
  • SNMP::getnext »
  • PHP Manual
  • SNMP
  • Get last error message

SNMP::getError

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::getError — Get last error message

Beschreibung

public SNMP::getError ( ) : string

Returns string with error from last SNMP request.

Rückgabewerte

String describing error from last SNMP request.

Beispiele

Beispiel #1 SNMP::getError() example

<?php
$session = new SNMP(SNMP::VERSION_2c, '127.0.0.1', 'boguscommunity');
var_dump(@$session->get('.1.3.6.1.2.1.1.1.0'));
var_dump($session->getError());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
string(26) "No response from 127.0.0.1"

Siehe auch

  • SNMP::getErrno() - Get last error code


Fetch an SNMP object which follows the given object id

  • « SNMP::getError
  • SNMP::set »
  • PHP Manual
  • SNMP
  • Fetch an SNMP object which follows the given object id

SNMP::getnext

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::getnext — Fetch an SNMP object which follows the given object id

Beschreibung

public SNMP::getnext ( array|string $objectId ) : array|bool

Fetch an SNMP object that follows specified objectId.

Parameter-Liste

If objectId is a string, then SNMP::getnext() will return SNMP object as string. If objectId is a array, all requested SNMP objects will be returned as associative array of the SNMP object ids and their values.

objectId

The SNMP object (OID) or objects

Rückgabewerte

Returns SNMP objects requested as string or array depending on objectId type or false on error.

Fehler/Exceptions

This method do not throw any exceptions by default. To enable throwing an SNMPException exception when some of library errors occure user should set exceptions_enabled SNMP class parameter to corresponding value. See SNMP::$exceptions_enabled explanation for more details.

Beispiele

Beispiel #1 Single SNMP object

Single SNMP object may be requested in two ways: as string resulting string return value or as single-element array with associative array as output.

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $nsysdescr = $session->getnext("sysDescr.0");
  echo "$nsysdescr\n";
  $nsysdescr = $session->getnext(array("sysDescr.0"));
  print_r($nsysdescr);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
Array
(
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
)

Beispiel #2 Miltiple SNMP objects

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $results = $session->getnext(array("sysDescr.0", "sysName.0"));
  print_r($results);
  $session->close();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
    [SNMPv2-MIB::sysLocation.0] => STRING: Nowhere
)

Siehe auch

  • SNMP::getErrno() - Get last error code
  • SNMP::getError() - Get last error message


Set the value of an SNMP object

  • « SNMP::getnext
  • SNMP::setSecurity »
  • PHP Manual
  • SNMP
  • Set the value of an SNMP object

SNMP::set

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::set — Set the value of an SNMP object

Beschreibung

public SNMP::set ( array|string $objectId , array|string $type , array|string $value ) : array|bool

Requests remote SNMP agent setting the value of one or more SNMP objects specified by the objectId.

Parameter-Liste

If objectId is string, both type and value must be string too. If objectId is array value must be equal-sized array containing corresponding values, type may be either string (it's value will be used for all objectId-value pairs) or equal-sized array with per-OID value. When any other parameters' combinations are used, a number of E_WARNING messages may be shown with detailed description.

objectId

The SNMP object id

When count of OIDs in object_id array is greater than max_oids object property set method will have to use multiple queries to perform requested value updates. In this case type and value checks are made per-chunk so second or subsequent requests may fail due to wrong type or value for OID requested. To mark this a warning is raised when count of OIDs in object_id array is greater than max_oids.

type

The MIB defines the type of each object id. It has to be specified as a single character from the below list.

types
= The type is taken from the MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

If OPAQUE_SPECIAL_TYPES was defined while compiling the SNMP library, the following are also valid:

types
U | unsigned int64
I | signed int64
F | float
D | double

Most of these will use the obvious corresponding ASN.1 type. 's', 'x', 'd' and 'b' are all different ways of specifying an OCTET STRING value, and the 'u' unsigned type is also used for handling Gauge32 values.

If the MIB-Files are loaded by into the MIB Tree with "snmp_read_mib" or by specifying it in the libsnmp config, '=' may be used as the type parameter for all object ids as the type can then be automatically read from the MIB.

Note that there are two ways to set a variable of the type BITS like e.g. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • Using type "b" and a list of bit numbers. This method is not recommended since GET query for the same OID would return e.g. 0xF8.
  • Using type "x" and a hex number but without(!) the usual "0x" prefix.

See examples section for more details.

value

The new value.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

This method do not throw any exceptions by default. To enable throwing an SNMPException exception when some of library errors occure user should set exceptions_enabled SNMP class parameter to corresponding value. See SNMP::$exceptions_enabled explanation for more details.

Beispiele

Beispiel #1 Set single SNMP object id

<?php
  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
  $session->set('SNMPv2-MIB::sysContact.0', 's', "Nobody");
?>

Beispiel #2 Set multiple values using single SNMP::set() call

<?php
  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
  $session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), array('s', 's'), array("Nobody", "Nowhere"));
// or
  $session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), 's', array("Nobody", "Nowhere"));
?>

Beispiel #3 Using SNMP::set() for setting BITS SNMP object id

<?php
  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
  $session->set('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  $session->set('FOO-MIB::bar.42', 'x', 'F0');
?>

Siehe auch

  • SNMP::get() - Fetch an SNMP object


Configures security-related SNMPv3 session parameters

  • « SNMP::set
  • SNMP::walk »
  • PHP Manual
  • SNMP
  • Configures security-related SNMPv3 session parameters

SNMP::setSecurity

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::setSecurity — Configures security-related SNMPv3 session parameters

Beschreibung

public SNMP::setSecurity
 ( string $securityLevel
, string $authProtocol = ""
, string $authPassphrase = ""
, string $privacyProtocol = ""
, string $privacyPassphrase = ""
, string $contextName = ""
, string $contextEngineId = ""
) : bool

setSecurity configures security-related session parameters used in SNMP protocol version 3

Parameter-Liste

securityLevel

the security level (noAuthNoPriv|authNoPriv|authPriv)

authProtocol

the authentication protocol (MD5 or SHA)

authPassphrase

the authentication pass phrase

privacyProtocol

the privacy protocol (DES or AES)

privacyPassphrase

the privacy pass phrase

contextName

the context name

contextEngineId

the context EngineID

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 SNMP::setSecurity() example

<?php
  $session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
  $session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '', 'aeeeff');
?>

Siehe auch

  • SNMP::__construct() - Creates SNMP instance representing session to remote SNMP agent


Fetch SNMP object subtree

  • « SNMP::setSecurity
  • SNMPException »
  • PHP Manual
  • SNMP
  • Fetch SNMP object subtree

SNMP::walk

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::walk — Fetch SNMP object subtree

Beschreibung

public SNMP::walk ( array|string $objectId , bool $suffixAsKey = false , int $maxRepetitions = -1 , int $nonRepeaters = -1 ) : array|bool

SNMP::walk() is used to read SNMP subtree rooted at specified objectId.

Parameter-Liste

objectId

Root of subtree to be fetched

suffixAsKey

By default full OID notation is used for keys in output array. If set to true subtree prefix will be removed from keys leaving only suffix of object_id.

nonRepeaters

This specifies the number of supplied variables that should not be iterated over. The default is to use this value from SNMP object.

maxRepetitions

This specifies the maximum number of iterations over the repeating variables. The default is to use this value from SNMP object.

Rückgabewerte

Returns an associative array of the SNMP object ids and their values on success or false on error. When a SNMP error occures SNMP::getErrno() and SNMP::getError() can be used for retrieving error number (specific to SNMP extension, see class constants) and error message respectively.

Fehler/Exceptions

This method do not throw any exceptions by default. To enable throwing an SNMPException exception when some of library errors occure user should set exceptions_enabled SNMP class parameter to corresponding value. See SNMP::$exceptions_enabled explanation for more details.

Beispiele

Beispiel #1 SNMP::walk() example

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $fulltree = $session->walk(".");
  print_r($fulltree);
  $session->close();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
    [DISMAN-EVENT-MIB::sysUpTimeInstance] => Timeticks: (1150681750) 133 days, 4:20:17.50
    [SNMPv2-MIB::sysContact.0] => STRING: Nobody
    [SNMPv2-MIB::sysName.0] => STRING: server.localdomain
    ...
)

Beispiel #2 suffixAsKey example

suffixAsKey may be used when merging multiple SNMP subtrees into one. This example maps interface names to their type.

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $session->valueretrieval = SNMP_VALUE_PLAIN;
  $ifDescr = $session->walk(".1.3.6.1.2.1.2.2.1.2", TRUE);
  $session->valueretrieval = SNMP_VALUE_LIBRARY;
  $ifType = $session->walk(".1.3.6.1.2.1.2.2.1.3", TRUE);
  print_r($ifDescr);
  print_r($ifType);
  $result = array();
  foreach($ifDescr as $i => $n) {
    $result[$n] = $ifType[$i];
  }
  print_r($result);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [1] => igb0
    [2] => igb1
    [3] => ipfw0
    [4] => lo0
    [5] => lagg0
)
Array
(
    [1] => INTEGER: ieee8023adLag(161)
    [2] => INTEGER: ieee8023adLag(161)
    [3] => INTEGER: ethernetCsmacd(6)
    [4] => INTEGER: softwareLoopback(24)
    [5] => INTEGER: ethernetCsmacd(6)
)
Array
(
    [igb0] => INTEGER: ieee8023adLag(161)
    [igb1] => INTEGER: ieee8023adLag(161)
    [ipfw0] => INTEGER: ethernetCsmacd(6)
    [lo0] => INTEGER: softwareLoopback(24)
    [lagg0] => INTEGER: ethernetCsmacd(6)
)

Siehe auch

  • SNMP::getErrno() - Get last error code
  • SNMP::getError() - Get last error message


The SNMPException class

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Einführung

Represents an error raised by SNMP. You should not throw a SNMPException from your own code. See Exceptions for more information about Exceptions in PHP.

Klassenbeschreibung

SNMPException extends RuntimeException {
/* Eigenschaften */
protected string $code ;
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

code

SNMPlibrary error code. Use Exception::getCode() to access it.


Sockets

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Socket-Fehler
  • Socket-Funktionen
    • socket_accept — Akzeptiert eine Verbindung an einem Socket
    • socket_addrinfo_bind — Create and bind to a socket from a given addrinfo
    • socket_addrinfo_connect — Create and connect to a socket from a given addrinfo
    • socket_addrinfo_explain — Get information about addrinfo
    • socket_addrinfo_lookup — Get array with contents of getaddrinfo about the given hostname
    • socket_bind — Verknüpft einen Socket mit einem Namen
    • socket_clear_error — Löscht entweder einen Fehler oder den letzten Fehlercode eines Sockets
    • socket_close — Schließt eine Socket-Instanz
    • socket_cmsg_space — Calculate message buffer size
    • socket_connect — Baut eine Verbindung über einen Socket auf
    • socket_create_listen — Öffnet einen Socket, um Verbindungen über einem gegebenen Port aufzubauen
    • socket_create_pair — Erzeugt ein Paar nicht zu unterscheidender Sockets und speichert sie in einem Array
    • socket_create — Erzeugt einen Socket (Endpunkt für die Kommunikation)
    • socket_export_stream — Export a socket into a stream that encapsulates a socket
    • socket_get_option — Liefert die Socket-Optionen für einen Socket
    • socket_getopt — Alias von socket_get_option
    • socket_getpeername — Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems
    • socket_getsockname — Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems
    • socket_import_stream — Import a stream
    • socket_last_error — Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
    • socket_listen — Hört einen Socket nach Verbindungsanforderungen ab
    • socket_read — Liest höchstens die angegebene Anzahl Bytes von einem Socket
    • socket_recv — Empfängt Daten von einem verbundenen Socket
    • socket_recvfrom — Empfängt Daten von einem Socket, egal, ob verbindungsorientiert oder nicht
    • socket_recvmsg — Read a message
    • socket_select — Führt einen select()-Systemaufruf auf den gegebenen Socket-Arrays aus, wobei ein Zeitlimit bestimmt wird
    • socket_send — Sendet Daten an einen verbundenen Socket
    • socket_sendmsg — Send a message
    • socket_sendto — Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht
    • socket_set_block — Setzt einen Socket auf den blockieren-Modus
    • socket_set_nonblock — Setzt den nonblocking-Modus für den Dateideskriptor fd
    • socket_set_option — Setzt die Optionen für einen Socket
    • socket_setopt — Alias von socket_set_option
    • socket_shutdown — Schließt einen Socket der zum Senden, Empfangen oder beidem geöffnet wurde
    • socket_strerror — Gibt einen String zurück, der einen Socket-Fehler beschreibt
    • socket_write — Schreibt in einen Socket
    • socket_wsaprotocol_info_export — Exports the WSAPROTOCOL_INFO Structure
    • socket_wsaprotocol_info_import — Imports a Socket from another Process
    • socket_wsaprotocol_info_release — Releases an exported WSAPROTOCOL_INFO Structure
  • Socket — The Socket class
  • AddressInfo — The AddressInfo class


Einführung

Die Socket-Erweiterung stellt eine hardwarenahe Schnittstelle zu den Datenaustauschfunktionen über eine Socket-Verbindung zur Verfügung. Diese bauen auf den bekannten BSD-Sockets auf, und bieten die Möglichkeit, entweder als Socket-Server oder als Client zu agieren.

Allgemeinere clientseitige Socket-Schnittstellen bieten die Funktionen
stream_socket_client(),
stream_socket_server(),
fsockopen() und pfsockopen().

Wenn man diese Funktionen benutzt, darf man nicht vergessen, dass, obwohl viele der Funktionen gleichlautende Namen wie ihre Entsprechungen in C haben, sie dennoch oft unterschiedliche Deklarationen haben. Bitte lesen Sie die Beschreibungen, um Verwirrung zu vermeiden.

Wem Socketprogrammierung fremd ist, der findet eine große Menge nützlicher Materialien in den entsprechenden Unix-manpages und es gibt jede Menge Tutorials und Informationen über Socketprogrammierung mit C im Internet. Vieles davon kann mit leichten Änderungen für die Socketprogrammierung mit PHP verwendet werden. Die » UNIX Socket FAQ ist dafür ein guter Startpunkt.


Installation

Die hier beschriebenen Socket-Funktionen sind Teil einer PHP-Extension, die zum Zeitpunkt des Kompilierens eingeschaltet sein muss. Verwenden Sie dazu die Option --enable-sockets des configure-Kommandos.


Ressource-Typen

Vor PHP 8.0.0 gaben socket_accept(),
socket_import_stream(),
socket_addrinfo_connect(),
socket_addrinfo_bind(),
socket_create_listen(),
socket_wsaprotocol_info_import() und
socket_create() Socket-Ressourcen zurück.

Vor PHP 8.0.0 gab socket_addrinfo_lookup() ein Array von AddressInfo-Ressourcen zurück.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

AF_UNIX (int)
AF_INET (int)
AF_INET6 (int)
Nur verfügbar, wenn mit IPv6-Unterstützung kompiliert wurde.
SOCK_STREAM (int)
SOCK_DGRAM (int)
SOCK_RAW (int)
SOCK_SEQPACKET (int)
SOCK_RDM (int)
MSG_OOB (int)
MSG_WAITALL (int)
MSG_PEEK (int)
MSG_DONTROUTE (int)
MSG_EOR (int)
Unter Windows nicht verfügbar.
MSG_EOF (int)
Unter Windows nicht verfügbar.
SO_DEBUG (int)
SO_REUSEADDR (int)
SO_REUSEPORT (int)
Diese Konstante ist nur in PHP 5.4.10 oder höher auf Platformen verfügbar, die die Socketoption SO_REUSEPORT unterstützen: dies schließt macOS und FreeBSD ein, aber nicht Linux und Windows.
SO_KEEPALIVE (int)
SO_DONTROUTE (int)
SO_LINGER (int)
SO_BROADCAST (int)
SO_OOBINLINE (int)
SO_SNDBUF (int)
SO_RCVBUF (int)
SO_SNDLOWAT (int)
SO_RCVLOWAT (int)
SO_SNDTIMEO (int)
SO_RCVTIMEO (int)
SO_TYPE (int)
SO_ERROR (int)
TCP_NODELAY (int)
Nutzung um den Nagle TCP-Algorithmus auszuschalten. Hinzugefügt in PHP 5.2.7.
SOL_SOCKET (int)
PHP_NORMAL_READ (int)
PHP_BINARY_READ (int)
SOL_TCP (int)
SOL_UDP (int)

Die folgenden Konstanten sind unter Windows und UNIX-ähnlichen Systemen definiert. Jede Konstante ist nur definiert, wenn ihre Entsprechung auf diesem Betriebsystem verfügbar ist.

SOCKET_EINTR (int)
Unterbrochener System-Aufruf.
SOCKET_EBADF (int)
Falsche Dateinummer.
SOCKET_EACCES (int)
Berechtigung verweigert.
SOCKET_EFAULT (int)
Falsche Adresse.
SOCKET_EINVAL (int)
Ungültiges Argument.
SOCKET_EMFILE (int)
Zu viele offene Dateien.
SOCKET_ENAMETOOLONG (int)
Dateiname zu lang.
SOCKET_ENOTEMPTY (int)
Verzeichnis nicht leer.
SOCKET_ELOOP (int)
Zu viele symbolische Links gefunden.
SOCKET_EWOULDBLOCK (int)
Die Operation würde blockieren.
SOCKET_EREMOTE (int)
Dies ist ein entferntes Objekt.
SOCKET_EUSERS (int)
Zu viele Benutzer.
SOCKET_ENOTSOCK (int)
Socket-Operation an einem nicht-Socket.
SOCKET_EDESTADDRREQ (int)
Es ist eine Zieladresse notwendig.
SOCKET_EMSGSIZE (int)
Die Nachricht ist zu lang.
SOCKET_EPROTOTYPE (int)
Das Protokoll passt nicht zu dem Socket.
SOCKET_EPROTONOSUPPORT (int)
Das Protokoll wird nicht unterstützt.
SOCKET_ESOCKTNOSUPPORT (int)
Der Socket-Typ wird nicht unterstützt.
SOCKET_EOPNOTSUPP (int)
Die Operation wird am Transport-Endpunkt nicht unterstützt.
SOCKET_EPFNOSUPPORT (int)
Die Protokollfamilie wird nicht unterstützt.
SOCKET_EAFNOSUPPORT (int)
Die Adressfamilie wird vom Protokoll nicht unterstützt.
SOCKET_EADDRNOTAVAIL (int)
Die angeforderte Adresse kann nicht zugewiesen werden.
SOCKET_ENETDOWN (int)
Das Netzwerk ist nicht aktiv.
SOCKET_ENETUNREACH (int)
Das Netzwerk ist nicht erreichbar.
SOCKET_ENETRESET (int)
Das Netzwerk hat die Verbindung nach einem Reset beendet.
SOCKET_ECONNABORTED (int)
Das Programm verursachte den Abbruch der Verbindung.
SOCKET_ECONNRESET (int)
Die Verbindung wurde vom Kommunikationspartner zurückgesetzt.
SOCKET_ENOBUFS (int)
Kein Hauptspeicher für den Puffer verfügbar.
SOCKET_EISCONN (int)
Der Socket ist bereits verbunden.
SOCKET_ENOTCONN (int)
Der Socket ist nicht verbunden.
SOCKET_ESHUTDOWN (int)
Ein Senden nach dem Beenden des Sockets ist nicht möglich.
SOCKET_ETIMEDOUT (int)
Die Wartezeit für die Verbindung ist abgelaufen.
SOCKET_ECONNREFUSED (int)
Verbindungsaufbau abgelehnt.
SOCKET_EHOSTDOWN (int)
Der Rechner ist nicht aktiv.
SOCKET_EHOSTUNREACH (int)
Keine Route zum Zielrechner.
SOCKET_EALREADY (int)
Die Operation wird bereits ausgeführt.
SOCKET_EINPROGRESS (int)
Die Operation wird nun ausgeführt.

Die folgenden Konstanten sind nur unter Windows definiert.

SOCKET_ENOPROTOOPT (int)
SOCKET_EADDRINUSE (int)
SOCKET_ETOOMYREFS (int)
SOCKET_EPROCLIM (int)
SOCKET_EDUOT (int)
SOCKET_ESTALE (int)
SOCKET_EDISCON (int)
SOCKET_SYSNOTREADY (int)
SOCKET_VERNOTSUPPORTED (int)
SOCKET_NOTINITIALISED (int)
SOCKET_HOST_NOT_FOUND (int)
SOCKET_TRY_AGAIN (int)
SOCKET_NO_RECOVERY (int)
SOCKET_NO_DATA (int)
SOCKET_NO_ADDRESS (int)

Die folgenden Konstanten stehen nur unter UNIX-ähnlichen Systemen zur Verfügung. Eine Konstante ist nur dann definiert, wenn auch ihre Entsprechung auf diesem Betriebssystem verfügbar ist.

SOCKET_EPERM (int)
Die Operation ist nicht erlaubt.
SOCKET_ENOENT (int)
Die Datei oder das Verzeichnis existiert nicht.
SOCKET_EIO (int)
I/O-Fehler.
SOCKET_ENXIO (int)
Das Gerät oder die Adresse existiert nicht.
SOCKET_E2BIG (int)
Die Liste der Argumente ist zu lang.
SOCKET_EAGAIN (int)
Versuchen Sie es noch einmal.
SOCKET_ENOMEM (int)
Kein Speicher mehr vorhanden.
SOCKET_ENOTBLK (int)
Blockorientiertes Gerät erforderlich.
SOCKET_EBUSY (int)
Gerät oder Datenquelle ist beschäftigt.
SOCKET_EEXIST (int)
Die Datei existiert.
SOCKET_EXDEV (int)
Geräteübergreifender Link.
SOCKET_ENODEV (int)
Kein solches Gerät vorhanden.
SOCKET_ENOTDIR (int)
Das ist kein Verzeichnis.
SOCKET_EISDIR (int)
Das ist ein Verzeichnis.
SOCKET_ENFILE (int)
Überlauf der Dateizuordnungstabelle.
SOCKET_ENOTTY (int)
Keine Schreibmaschine.
SOCKET_ENOSPC (int)
Das Gerät hat keinen freien Speicher mehr.
SOCKET_ESPIPE (int)
Unzulässige Suche.
SOCKET_EROFS (int)
Das Dateisystem kann nur gelesen werden.
SOCKET_EMLINK (int)
Zu viele Verbindungen.
SOCKET_EPIPE (int)
Die Leitung ist unterbrochen.
SOCKET_ENOLCK (int)
Es gibt keine Datensatz-Sperren.
SOCKET_ENOSYS (int)
Die Funktion ist nicht implementiert.
SOCKET_ENOMSG (int)
Es gibt keine Nachricht des gewünschten Typs.
SOCKET_EIDRM (int)
Bezeichner wurde entfernt.
SOCKET_ECHRNG (int)
Die Kanalnummer ist außerhalb des zulässigen Bereichs.
SOCKET_EL2NSYNC (int)
Ebene 2 ist nicht synchronisiert.
SOCKET_EL3HLT (int)
Ebene 3 wurde angehalten.
SOCKET_EL3RST (int)
Ebene 3 wurde zurückgesetzt.
SOCKET_ELNRNG (int)
Die Nummer der Verbindung ist außerhalb des zulässigen Bereichs.
SOCKET_EUNATCH (int)
Der Protokoll-Treiber ist nicht beigefügt.
SOCKET_ENOCSI (int)
CSI-Struktur nicht vorhanden.
SOCKET_EL2HLT (int)
Ebene 2 wurde angehalten.
SOCKET_EBADE (int)
Ungültiger Austausch.
SOCKET_EBADR (int)
Ungültiger Anfrage-Deskriptor.
SOCKET_EXFULL (int)
Autausch komplett.
SOCKET_ENOANO (int)
Keine Anode.
SOCKET_EBADRQC (int)
Ungültier Anfrage-Code.
SOCKET_EBADSLT (int)
Ungültiger Steckplatz.
SOCKET_ENOSTR (int)
Das Gerät ist kein Stream.
SOCKET_ENODATA (int)
Es gibt keine Daten.
SOCKET_ETIME (int)
Timer abgelaufen.
SOCKET_ENOSR (int)
Keine Stream-Ressourcen mehr verfügbar.
SOCKET_ENONET (int)
Die Maschine ist nicht ins Netz eingebunden.
SOCKET_ENOLINK (int)
Die Verbindung wurde getrennt.
SOCKET_EADV (int)
Anzeigefehler.
SOCKET_ESRMNT (int)
Srmount-Fehler.
SOCKET_ECOMM (int)
Kommunikationsfehler beim Senden.
SOCKET_EPROTO (int)
Protokollfehler.
SOCKET_EMULTIHOP (int)
Ein »Multihop« wurde versucht.
SOCKET_EBADMSG (int)
Das ist keine »data message«.
SOCKET_ENOTUNIQ (int)
Der Name ist im Netzwerk nicht eindeutig.
SOCKET_EBADFD (int)
Der Dateideskriptor hat einen falschen Status.
SOCKET_EREMCHG (int)
Die Adresse der Gegenstelle hat sich geändert.
SOCKET_ERESTART (int)
Der unterbrochene Betriebssystemaufruf sollte neu gestartet werden.
SOCKET_ESTRPIPE (int)
Fehler in Stream-Pipe.
SOCKET_EPROTOOPT (int)
Das Protokoll steht nicht zur Verfügung.
SOCKET_ADDRINUSE (int)
Die Adresse wird bereits verwendet.
SOCKET_ETOOMANYREFS (int)
Zu viele Referenzen: can't splice.
SOCKET_EISNAM (int)
Ist eine named type file.
SOCKET_EREMOTEIO (int)
Ein-/Ausgabefehler der Gegenstelle.
SOCKET_EDQUOT (int)
Quota überschritten.
SOCKET_ENOMEDIUM (int)
Kein Medium gefunden.
SOCKET_EMEDIUMTYPE (int)
Falscher Medientyp.
SCM_RIGHTS (int)
Sende oder empfange einen Satz von offenen Dateideskriptoren von einem anderen Prozess.
SCM_CREDENTIALS (int)


Beispiele

Beispiel #1 Socket-Beispiel: Einfacher TCP/IP-Server

Dieses Beispiel zeigt einen einfachen Echo-Server. Passen Sie die Variablen address und port an Ihre Systemumgebung an und führen Sie das Skript aus. Dann können Sie sich mit einem Befehl wie: telnet 192.168.1.53 10000 (bei dem adress und port an Ihre Umgebung angepasst ist) mit dem Server verbinden. Alles, was Sie eingeben, wird an den Server geschickt und von diesem wieder an Sie zurückgegeben. Um die Verbindung zu trennen, geben Sie 'quit' ein.

#!/usr/local/bin/php -q
<?php
error_reporting (E_ALL);

/* Das Skript wartet auf hereinkommende Verbindungsanforderungen. */
set_time_limit (0);

/* Die implizite Ausgabe wird eingeschaltet, so dass man sieht,
 * was gesendet wurde. */
ob_implicit_flush ();

$address = '192.168.1.53';
$port = 10000;

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
    echo "socket_create() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error()) . "\n";
}

if (socket_bind($sock, $address, $port) === false) {
    echo "socket_bind() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error($sock)) . "\n";
}

if (socket_listen($sock, 5) === false) {
    echo "socket_listen() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error($sock)) . "\n";
}

do {
    if (($msgsock = socket_accept($sock)) === false) {
        echo "socket_accept() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error($sock)) . "\n";
        break;
    }
    /* Anweisungen senden. */
    $msg = "\nWillkommen auf dem PHP-Testserver.  \n" .
        "Um zu beenden, geben Sie 'quit' ein. Um den Server herunterzufahren, geben Sie 'shutdown' ein.\n";
    socket_write($msgsock, $msg, strlen($msg));

    do {
        if (false === ($buf = socket_read ($msgsock, 2048, PHP_NORMAL_READ))) {
            echo "socket_read() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error($msgsock)) . "\n";
            break 2;
        }
        if (!$buf = trim ($buf)) {
            continue;
        }
        if ($buf == 'quit') {
            break;
        }
        if ($buf == 'shutdown') {
            socket_close ($msgsock);
            break 2;
        }
        $talkback = "PHP: Sie haben '$buf' eingegeben.\n";
        socket_write ($msgsock, $talkback, strlen ($talkback));
        echo "$buf\n";
    } while (true);
    socket_close ($msgsock);
} while (true);

socket_close ($sock);
?>

Beispiel #2 Socket-Beispiel: Einfacher TCP/IP-Client

Dieses Beispiel zeigt einen einfachen HTTP-Client für eine einmalige Verbindung. Es wird eine Verbindung zu einer Seite geöffnet, ein HEAD-Request gesendet, die Antwort zurück übertragen und die Verbindung wieder geschlossen.

<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP-Verbindung</h2>\n";

/* Den Port für den WWW-Dienst ermitteln. */
$service_port = getservbyname('www', 'tcp');

/* Die  IP-Adresse des Zielrechners ermitteln. */
$address = gethostbyname('www.example.com');

/* Einen TCP/IP-Socket erzeugen. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() fehlgeschlagen: Grund: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "OK.\n";
}

echo "Versuche, zu '$address' auf Port '$service_port' zu verbinden ...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "socket_connect() fehlgeschlagen.\nGrund: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "HTTP HEAD request senden ...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Serverantwort lesen:\n\n";
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

echo "Socket schließen ...";
socket_close($socket);
echo "OK.\n\n";
?>


Socket-Fehler

Die Socket-Erweiterung wurde geschrieben, um eine brauchbare Schnittstelle zu den mächtigen BSD-Sockets zur Verfügung zu stellen. Es wurde darauf geachtet, dass die Funktionen sowohl unter Win32 als auch unter Unix-Implementierungen arbeiten. Fast alle Socket-Funktionen können unter bestimmten Umständen fehlschlagen und deshalb eine E_WARNING- Meldung ausgeben, die den aufgetretenen Fehler beschreibt. Manchmal geschieht dies nicht so, wie sich Entwickler das wünschen. Zum Beispiel kann die Funktion socket_read() plötzlich eine E_WARNING-Meldung ausgeben, weil die Verbindung unerwartet beendet wurde. Üblicherweise werden solche Meldungen mit dem @-Operator unterdrückt und der Fehlercode innerhalb der Anwendung mit der Funktion socket_last_error() aufgefangen. Sie können auch die Funktion socket_strerror() mit diesem Fehlercode aufrufen, um eine Fehlerbeschreibung zu erhalten. Nähere Informationen finden Sie bei diesen beiden Funktionen.

Hinweis:

Die E_WARNING-Meldungen, die von der Socket-Erweiterung generiert werden, sind in Englisch, aber die Meldungen, die Sie extra abfragen können, erscheinen in der Sprache, die Sie eingestellt haben (LC_MESSAGES):

Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet


Socket-Funktionen

Inhaltsverzeichnis

  • socket_accept — Akzeptiert eine Verbindung an einem Socket
  • socket_addrinfo_bind — Create and bind to a socket from a given addrinfo
  • socket_addrinfo_connect — Create and connect to a socket from a given addrinfo
  • socket_addrinfo_explain — Get information about addrinfo
  • socket_addrinfo_lookup — Get array with contents of getaddrinfo about the given hostname
  • socket_bind — Verknüpft einen Socket mit einem Namen
  • socket_clear_error — Löscht entweder einen Fehler oder den letzten Fehlercode eines Sockets
  • socket_close — Schließt eine Socket-Instanz
  • socket_cmsg_space — Calculate message buffer size
  • socket_connect — Baut eine Verbindung über einen Socket auf
  • socket_create_listen — Öffnet einen Socket, um Verbindungen über einem gegebenen Port aufzubauen
  • socket_create_pair — Erzeugt ein Paar nicht zu unterscheidender Sockets und speichert sie in einem Array
  • socket_create — Erzeugt einen Socket (Endpunkt für die Kommunikation)
  • socket_export_stream — Export a socket into a stream that encapsulates a socket
  • socket_get_option — Liefert die Socket-Optionen für einen Socket
  • socket_getopt — Alias von socket_get_option
  • socket_getpeername — Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems
  • socket_getsockname — Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems
  • socket_import_stream — Import a stream
  • socket_last_error — Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  • socket_listen — Hört einen Socket nach Verbindungsanforderungen ab
  • socket_read — Liest höchstens die angegebene Anzahl Bytes von einem Socket
  • socket_recv — Empfängt Daten von einem verbundenen Socket
  • socket_recvfrom — Empfängt Daten von einem Socket, egal, ob verbindungsorientiert oder nicht
  • socket_recvmsg — Read a message
  • socket_select — Führt einen select()-Systemaufruf auf den gegebenen Socket-Arrays aus, wobei ein Zeitlimit bestimmt wird
  • socket_send — Sendet Daten an einen verbundenen Socket
  • socket_sendmsg — Send a message
  • socket_sendto — Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht
  • socket_set_block — Setzt einen Socket auf den blockieren-Modus
  • socket_set_nonblock — Setzt den nonblocking-Modus für den Dateideskriptor fd
  • socket_set_option — Setzt die Optionen für einen Socket
  • socket_setopt — Alias von socket_set_option
  • socket_shutdown — Schließt einen Socket der zum Senden, Empfangen oder beidem geöffnet wurde
  • socket_strerror — Gibt einen String zurück, der einen Socket-Fehler beschreibt
  • socket_write — Schreibt in einen Socket
  • socket_wsaprotocol_info_export — Exports the WSAPROTOCOL_INFO Structure
  • socket_wsaprotocol_info_import — Imports a Socket from another Process
  • socket_wsaprotocol_info_release — Releases an exported WSAPROTOCOL_INFO Structure


Akzeptiert eine Verbindung an einem Socket

  • « Socket-Funktionen
  • socket_addrinfo_bind »
  • PHP Manual
  • Socket-Funktionen
  • Akzeptiert eine Verbindung an einem Socket

socket_accept

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_accept — Akzeptiert eine Verbindung an einem Socket

Beschreibung

socket_accept ( Socket $socket ) : Socket|false

Nachdem der Socket socket mit socket_create() erzeugt, mit socket_bind() mit einem Namen verknüpft und mit socket_listen() angewiesen wurde, nach eingehenden Verbindungsanforderungen zu horchen, werden sie mit dieser Funktion an dem Socket zugelassen. Nach einem erfogreichen Verbindungsaufbau wird eine neue Socket-Instanz zurückgegeben, welche zur Kommunikation benutzt werden kann. Gibt es an diesem Socket mehrere Verbindungen in der Warteschlange wird die erste benutzt. Falls es keine wartenden Verbindungen gibt, blockiert die Funktion socket_accept() so lange, bis eine Verbindung angefordert wird. Falls der Socket socket mit den Funktionen socket_set_blocking() oder socket_set_nonblock() auf 'nicht blockieren' gesetzt wurde, wird false zurückgegeben.

Die Socket-Instanz, die von socket_accept() zurückgegeben wird, sollte nicht dazu benutzt werden, neue Verbindungen zuzulassen. Der ursprüngliche wartende Socket socket bleibt dagegen geöffnet und kann wiederverwendet werden.

Parameter-Liste

socket

Eine Socket-Instanz, die mit der Funktion socket_create() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg eine neue Socket-Instanz zurück oder false, falls ein Fehler auftritt. Der aktuelle Fehlercode kann mit der Funktion socket_last_error() ermittelt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine Socket-Instanz zurück; vorher wurde eine resource zurückgegeben.

Siehe auch

  • socket_connect() - Baut eine Verbindung über einen Socket auf
  • socket_listen() - Hört einen Socket nach Verbindungsanforderungen ab
  • socket_create() - Erzeugt einen Socket (Endpunkt für die Kommunikation)
  • socket_bind() - Verknüpft einen Socket mit einem Namen
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt


Create and bind to a socket from a given addrinfo

  • « socket_accept
  • socket_addrinfo_connect »
  • PHP Manual
  • Socket-Funktionen
  • Create and bind to a socket from a given addrinfo

socket_addrinfo_bind

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_bind — Create and bind to a socket from a given addrinfo

Beschreibung

socket_addrinfo_bind ( AddressInfo $address ) : Socket|false

Create a Socket instance, and bind it to the provided AddressInfo. The return value of this function may be used with socket_listen().

Parameter-Liste

address

AddressInfo instance created from socket_addrinfo_lookup().

Rückgabewerte

Returns a Socket instance on success or false on failure.

Changelog

Version | Beschreibung
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.
8.0.0 | address ist nun eine AddressInfo-Instanz; vorher war es eine resource.

Siehe auch

  • socket_addrinfo_connect() - Create and connect to a socket from a given addrinfo
  • socket_addrinfo_explain() - Get information about addrinfo
  • socket_addrinfo_lookup() - Get array with contents of getaddrinfo about the given hostname
  • socket_listen() - Hört einen Socket nach Verbindungsanforderungen ab


Create and connect to a socket from a given addrinfo

  • « socket_addrinfo_bind
  • socket_addrinfo_explain »
  • PHP Manual
  • Socket-Funktionen
  • Create and connect to a socket from a given addrinfo

socket_addrinfo_connect

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_connect — Create and connect to a socket from a given addrinfo

Beschreibung

socket_addrinfo_connect ( AddressInfo $address ) : Socket|false

Create a Socket instance, and connect it to the provided AddressInfo instance. The return value of this function may be used with the rest of the socket functions.

Parameter-Liste

address

AddressInfo instance created from socket_addrinfo_lookup()

Rückgabewerte

Returns a Socket instance on success or false on failure.

Changelog

Version | Beschreibung
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.
8.0.0 | address ist nun eine AddressInfo-Instanz; vorher war es eine resource.

Siehe auch

  • socket_addrinfo_bind() - Create and bind to a socket from a given addrinfo
  • socket_addrinfo_explain() - Get information about addrinfo
  • socket_addrinfo_lookup() - Get array with contents of getaddrinfo about the given hostname


Get information about addrinfo

  • « socket_addrinfo_connect
  • socket_addrinfo_lookup »
  • PHP Manual
  • Socket-Funktionen
  • Get information about addrinfo

socket_addrinfo_explain

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_explain — Get information about addrinfo

Beschreibung

socket_addrinfo_explain ( AddressInfo $address ) : array

socket_addrinfo_explain() exposed the underlying addrinfo structure.

Parameter-Liste

address

AddressInfo instance created from socket_addrinfo_lookup()

Rückgabewerte

Returns an array containing the fields in the addrinfo structure.

Changelog

Version | Beschreibung
8.0.0 | address ist nun eine AddressInfo-Instanz; vorher war es eine resource.

Siehe auch

  • socket_addrinfo_bind() - Create and bind to a socket from a given addrinfo
  • socket_addrinfo_connect() - Create and connect to a socket from a given addrinfo
  • socket_addrinfo_lookup() - Get array with contents of getaddrinfo about the given hostname


Get array with contents of getaddrinfo about the given hostname

  • « socket_addrinfo_explain
  • socket_bind »
  • PHP Manual
  • Socket-Funktionen
  • Get array with contents of getaddrinfo about the given hostname

socket_addrinfo_lookup

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_lookup — Get array with contents of getaddrinfo about the given hostname

Beschreibung

socket_addrinfo_lookup ( string $host , string|null $service = null , array $hints = [] ) : array|false

Lookup different ways we can connect to host. The returned array contains a set of AddressInfo instances that we can bind to using socket_addrinfo_bind().

Parameter-Liste

host

Hostname to search.

service

The service to connect to. If service is a name, it is translated to the corresponding port number.

hints

Hints provide criteria for selecting addresses returned. You may specify the hints as defined by getadrinfo.

Rückgabewerte

Returns an array of AddressInfo instances that can be used with the other socket_addrinfo functions. On failure, false is returned.

Changelog

Version | Beschreibung
8.0.0 | On success, this function returns a array of AddressInfo instances now; previously, an array of resources was returned.
8.0.0 | service is nullable now.

Siehe auch

  • socket_addrinfo_bind() - Create and bind to a socket from a given addrinfo
  • socket_addrinfo_connect() - Create and connect to a socket from a given addrinfo
  • socket_addrinfo_explain() - Get information about addrinfo


Verknüpft einen Socket mit einem Namen

  • « socket_addrinfo_lookup
  • socket_clear_error »
  • PHP Manual
  • Socket-Funktionen
  • Verknüpft einen Socket mit einem Namen

socket_bind

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_bind — Verknüpft einen Socket mit einem Namen

Beschreibung

socket_bind ( Socket $socket , string $address , int $port = 0 ) : bool

socket_bind() verknüpft den Namen, der in address angegeben ist, mit dem Socket socket. Dies muss geschehen, bevor eine Verbindung mittels socket_connect() oder socket_listen()aufgebaut wird.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() erzeugt wurde.

address

Falls der Socket zur AF_INET-Familie gehört, ist der Parameter address eine IP in Punktnotation (z.B. 127.0.0.1)

Falls der Socket zur AF_UNIX-Familie gehört, ist der Parameter address der Pfad eines Unix-Domain Sockets (z.B. /tmp/my.sock).

port (ojptional)

Der Parameter port wird nur benutzt, wenn an einen Socket der AF_INET-Familie gebunden wird und gibt den Port an, an dem auf Verbindungen gelauscht wird.

Rückgabewerte

Der Fehlercode kann mit der Funktion socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Beispiele

Beispiel #1 Beispiel: Quell-Adresse setzen mit socket_bind():

<?php
// Einen neuen Socket erzeugen
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// Eine (Beispiel-) Liste von IP-Adressen dieses Computers
$sourceips['kevin']    = '127.0.0.1';
$sourceips['madcoder'] = '127.0.0.2';

// Eine Quell-Adresse an den Socket binden
socket_bind($sock, $sourceips['madcoder']);

// Zur Zieladresse verbinden
socket_connect($sock, '127.0.0.1', 80);

// Schreiben
$request = 'GET / HTTP/1.1' . "\r\n" .
           'Host: example.com' . "\r\n\r\n";
socket_write($sock, $request);

// Die Socketverbindung schlieen
socket_close($sock);

?>

Anmerkungen

Hinweis:

Diese Funktion muss vor socket_connect() aufgerufen werden.

Hinweis:

Kompatibilität mit Windows 9x/ME: socket_last_error() kann einen falschen Fehlercode zurückgeben, wenn versucht wird, den Socket an eine Adresse zu binden, die nicht dem aktuellen Rechner gehört.

Siehe auch

  • socket_connect() - Baut eine Verbindung über einen Socket auf
  • socket_listen() - Hört einen Socket nach Verbindungsanforderungen ab
  • socket_create() - Erzeugt einen Socket (Endpunkt für die Kommunikation)
  • socket_last_error() - Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt


Löscht entweder einen Fehler oder den letzten Fehlercode eines Sockets

  • « socket_bind
  • socket_close »
  • PHP Manual
  • Socket-Funktionen
  • Löscht entweder einen Fehler oder den letzten Fehlercode eines Sockets

socket_clear_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

socket_clear_error — Löscht entweder einen Fehler oder den letzten Fehlercode eines Sockets

Beschreibung

socket_clear_error ( Socket|null $socket = null ) : void

Diese Funktion löscht entweder einen Fehlercode für einen gegebenen Socket oder global den letzten Socket-Fehler, wenn kein Socket angegeben wurde.

Mit dieser Funktion kann der Wert eines Fehlercodes explizit zurückgesetzt werden, entweder ein Fehlercode für einen bestimmten Socket oder global der Code des letzten Fehlers innerhalb dieser Extension. Dies kann ganz nützlich sein, wenn man prüfen möchte, ob in einem Teil einer Anwendung ein Fehler aufgetreten ist.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() erzeugt wurde.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.
8.0.0 | socket ist nun ein Nullable-Typ.

Siehe auch

  • socket_last_error() - Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt


Schließt eine Socket-Instanz

  • « socket_clear_error
  • socket_cmsg_space »
  • PHP Manual
  • Socket-Funktionen
  • Schließt eine Socket-Instanz

socket_close

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_close — Schließt eine Socket-Instanz

Beschreibung

socket_close ( Socket $socket ) : void

socket_close() schließt die Socket-Instanz, die durch socket gegeben ist.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() oder socket_accept() erzeugt wurde.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Siehe auch

  • socket_bind() - Verknüpft einen Socket mit einem Namen
  • socket_listen() - Hört einen Socket nach Verbindungsanforderungen ab
  • socket_create() - Erzeugt einen Socket (Endpunkt für die Kommunikation)
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt


Calculate message buffer size

  • « socket_close
  • socket_connect »
  • PHP Manual
  • Socket-Funktionen
  • Calculate message buffer size

socket_cmsg_space

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

socket_cmsg_space — Calculate message buffer size

Beschreibung

socket_cmsg_space ( int $level , int $type , int $num = 0 ) : int|null

Calculates the size of the buffer that should be allocated for receiving the ancillary data.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

level

type

Rückgabewerte

Siehe auch

  • socket_recvmsg() - Read a message
  • socket_sendmsg() - Send a message


Baut eine Verbindung über einen Socket auf

  • « socket_cmsg_space
  • socket_create_listen »
  • PHP Manual
  • Socket-Funktionen
  • Baut eine Verbindung über einen Socket auf

socket_connect

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_connect — Baut eine Verbindung über einen Socket auf

Beschreibung

socket_connect ( Socket $socket , string $address , int|null $port = null ) : bool

Baut über die Socket-Instanz socket, die mittels socket_create() erzeugt worden sein muss, eine Verbindung zu address auf.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() erzeugt wurde.

address

Der Parameter address ist entweder eine IPv4-Adresse in Punktnotation (z.B. 127.0.0.1), falls socket zur AF_INET-Familie gehört, oder eine gültige IPv6-Adresse (z.B ::1), falls die IPv6-Unterstützung aktiviert ist und socket zur AF_INET6-Familie gehört, oder der Pfadname eines Unix-Domain socket, falls der Socket zur AF_UNIX-Familie gehört.

port

Der Parameter port wird nur benutzt und ist dann zwingend erforderlich, wenn eine Verbindung zu einem AF_INET- oder einem AF_INET6-Socket aufgebaut wird. Er gibt an, zu welchem Port des entfernten Hosts eine Verbindung hergestellt werden soll.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Der Fehlercode kann mit der Funktion socket_last_error() ermittelt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Hinweis:

Falls der Socket nicht blockiert ist, gibt diese Funktion false sowie die Fehlermeldung Operation now in progress zurück.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.
8.0.0 | port ist nun ein Nullable-Typ.

Siehe auch

  • socket_bind() - Verknüpft einen Socket mit einem Namen
  • socket_listen() - Hört einen Socket nach Verbindungsanforderungen ab
  • socket_create() - Erzeugt einen Socket (Endpunkt für die Kommunikation)
  • socket_last_error() - Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt


Öffnet einen Socket, um Verbindungen über einem gegebenen Port aufzubauen

  • « socket_connect
  • socket_create_pair »
  • PHP Manual
  • Socket-Funktionen
  • Öffnet einen Socket, um Verbindungen über einem gegebenen Port aufzubauen

socket_create_listen

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_create_listen — Öffnet einen Socket, um Verbindungen über einem gegebenen Port aufzubauen

Beschreibung

socket_create_listen ( int $port , int $backlog = 128 ) : Socket|false

socket_create_listen() erzeugt eine neue Socket-Instanz vom Typ AF_INET, der an allen lokalen Schnittstellen eines gegebenen Ports auf neue Verbindungen wartet.

Diese Funktion soll die Erzeugung eines neuen Sockets erleichtern, der nur auf neue Verbindungsanforderungen wartet, um sie zu akzeptieren.

Parameter-Liste

port

Der Port, den alle Schnittstellen abhören.

backlog

Der Parameter backlog gibt an, wie groß die Warteschlange mit wartenden Verbindungen maximal werden darf. SOMAXCONN kann als backlog übergeben werden. Mehr Informationen hierzu finden Sie bei socket_listen().

Rückgabewerte

socket_create_listen() gibt bei Erfolg eine neue Socket-Instanz zurück oder false, falls ein Fehler aufgetreten ist. Der Fehlercode kann mit der Funktion socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Anmerkungen

Hinweis:

Falls Sie einen Socket erzeugen möchten, der nur bestimmte Schnittstellen abhört, müssen Sie socket_create(), socket_bind() und socket_listen() verwenden.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine Socket-Instanz zurück; zuvor wurde eine resource zurückgegeben.

Siehe auch

  • socket_create() - Erzeugt einen Socket (Endpunkt für die Kommunikation)
  • socket_create_pair() - Erzeugt ein Paar nicht zu unterscheidender Sockets und speichert sie in einem Array
  • socket_bind() - Verknüpft einen Socket mit einem Namen
  • socket_listen() - Hört einen Socket nach Verbindungsanforderungen ab
  • socket_last_error() - Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt


Erzeugt ein Paar nicht zu unterscheidender Sockets und speichert sie in einem Array

  • « socket_create_listen
  • socket_create »
  • PHP Manual
  • Socket-Funktionen
  • Erzeugt ein Paar nicht zu unterscheidender Sockets und speichert sie in einem Array

socket_create_pair

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_create_pair — Erzeugt ein Paar nicht zu unterscheidender Sockets und speichert sie in einem Array

Beschreibung

socket_create_pair ( int $domain , int $type , int $protocol , array &$pair ) : bool

socket_create_pair() erzeugt zwei nicht unterscheidbare, verbundene Sockets und speichert sie im Array pair. Diese Funktion wird allgemein bei der Interprozesskommunikation (IPC) verwendet.

Parameter-Liste

domain

Der Parameter domain bestimmt die Protokollfamilie, die von den Sockets benutzt wird. Eine komplette Liste finden Sie bei der Funktion socket_create().

type

Der Parameter type bestimmt den Kommunikationstyp, den die Sockets verwenden sollen. Eine komplette Liste finden Sie bei der Funktion socket_create().

protocol

Der Parameter protocol legt das spezifische Protokoll fest, das vom zurückgegebenen Socket für die Kommunikation innerhalb der angegebenen domain benutzt werden soll. Der passende Wert kann ermittelt werden, indem der Name an die Funktion getprotobyname() übergeben wird. Wenn TCP oder UDP gewünscht werden, können auch die entsprechenden Konstanten SOL_TCP oder SOL_UDP benutzt werden.

Eine vollständige Liste aller unterstützter Protokolle finden Sie bei der Funktion socket_create().

pair

Referenz auf das Array, in das die beiden Socket-Instanzen eingefügt werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | pair ist nun ein Verweis auf ein Array von Socket-Instanzen; vorher war es ein Verweis auf ein Array von resources.

Beispiele

Beispiel #1 socket_create_pair()-Beispiel

<?php
$sockets = array();

/* Unter Windows muss man AF_INET benutzen */
$domain = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' ? AF_INET : AF_UNIX);

/* Socket-Paar erzeugen */
if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $sockets) === false) {
    echo "socket_create_pair fehlgeschlagen. Grund: ".socket_strerror(socket_last_error());
}
/* Daten senden und empfangen */
if (socket_write($sockets[0], "ABCdef123\n", strlen("ABCdef123\n")) === false) {
    echo "socket_write() fehlgeschlagen. Grund: ".socket_strerror(socket_last_error($sockets[0]));
}
if (($data = socket_read($sockets[1], strlen("ABCdef123\n"), PHP_BINARY_READ)) === false) {
    echo "socket_read() fehlgeschlagen. Grund: ".socket_strerror(socket_last_error($sockets[1]));
}
var_dump($data);

/* Sockets schließen */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>

Beispiel #2 socket_create_pair()-IPC-Beispiel

<?php
$ary = array();
$strone = 'Nachricht vom Elternprozess.';
$strtwo = 'Nachricht vom Kindprozess.';

if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $ary) === false) {
    echo "socket_create_pair() fehlgeschlagen. Grund: ".socket_strerror(socket_last_error());
}
$pid = pcntl_fork();
if ($pid == -1) {
    echo 'Konnte keinen Kindprozess erzeugen.';
} elseif ($pid) {
    /* Elternprozess */
    socket_close($ary[0]);
    if (socket_write($ary[1], $strone, strlen($strone)) === false) {
        echo "socket_write() fehlgeschlagen. Grund: ".socket_strerror(socket_last_error($ary[1]));
    }
    if (socket_read($ary[1], strlen($strtwo), PHP_BINARY_READ) == $strtwo) {
        echo "Empfangen: $strtwo\n";
    }
    socket_close($ary[1]);
} else {
    /* Kindprozess */
    socket_close($ary[1]);
    if (socket_write($ary[0], $strtwo, strlen($strtwo)) === false) {
        echo "socket_write() fehlgeschlagen. Grund: ".socket_strerror(socket_last_error($ary[0]));
    }
    if (socket_read($ary[0], strlen($strone), PHP_BINARY_READ) == $strone) {
        echo "Empfangen: $strone\n";
    }
    socket_close($ary[0]);
}
?>

Siehe auch

  • socket_create() - Erzeugt einen Socket (Endpunkt für die Kommunikation)
  • socket_create_listen() - Öffnet einen Socket, um Verbindungen über einem gegebenen Port aufzubauen
  • socket_bind() - Verknüpft einen Socket mit einem Namen
  • socket_listen() - Hört einen Socket nach Verbindungsanforderungen ab
  • socket_last_error() - Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt


Erzeugt einen Socket (Endpunkt für die Kommunikation)

  • « socket_create_pair
  • socket_export_stream »
  • PHP Manual
  • Socket-Funktionen
  • Erzeugt einen Socket (Endpunkt für die Kommunikation)

socket_create

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_create — Erzeugt einen Socket (Endpunkt für die Kommunikation)

Beschreibung

socket_create ( int $domain , int $type , int $protocol ) : Socket|false

Erzeugt eine Socket-Instanz (auch als Kommunikations-Endpunkt bezeichnet) und gibt sie zurück. Eine typische Netzwerkverbindung besteht aus zwei Sockets, von denen der eine die Rolle des Clients und der andere die Rolle des Servers übernimmt.

Parameter-Liste

domain

Der domain-Parameter legt die Protokollfamilie fest, die für die Kommunikation vom Socket benutzt wird.

Folgende Adressen/Protokollfamilien sind verfügbar:
Domain | Beschreibung
AF_INET | IPv4-basierte Internet-Protokolle. TCP und UDP sind allgemein gebräuchliche Protokolle dieser Familie.
AF_INET6 | IPv6-basierte Internet-Protokolle. TCP und UDP sind allgemein gebräuchliche Protokolle dieser Familie.
AF_UNIX | Protokollfamilie für die lokale Kommunikation. Hohe Effizienz und ein geringer Overhead machen sie zur ersten Wahl für die IPC (Inter-Process Communication).
type

Der Parameter type bestimmt den Kommunikationstyp, den der Socket verwenden soll.

Mögliche Socket-Typen
Typ | Beschreibung
SOCK_STREAM | Stellt zuverlässige, sequentielle verbindungsorientierte Byte-Streams im Vollduplexmodus zur Verfügung. Auch bandexterne Mechanismen zur Datenübertragung können unterstützt werden. Das TCP-Protokoll beruht auf diesem Socket-Typ.
SOCK_DGRAM | Unterstützt Datagramme (verbindunglos, Nachrichten vorgegebener Maximallänge, deren Übertragung nicht zuverlässig ist). Das UDP-Protokoll beruht auf diesem Socket-Typ.
SOCK_SEQPACKET | Stellt einen zuverlässigen, sequentiellen, bidirektionalen, verbindungsorientierten Übertragungsweg für Datagramme vorgegebener Maximallänge zur Verfügung. Ein Empfänger muss bei jeder Leseanforderung das gesamte Datenpaket lesen.
SOCK_RAW | Stellt einen Zugang mit einem nicht bestimmten Netzwerkprotokoll zur Verfügung. Dieser spezielle Socket-Typ kann dazu benutzt werden, um manuell ein Protokoll eines beliebigen Typs zu erstellen. Solche Sockets werden üblicherweise benutzt, um ICMP-Requests zu senden (wie etwa bei ping).
SOCK_RDM | Stellt eine zuverlässige Schicht für Datagramme zur Verfügung, in der die Reihenfolge der Datagramme nicht garantiert wird. Dies ist in den meisten Betriebssytemen nicht implementiert.
protocol

Der Parameter protocol setzt das spezifische Protokoll innerhalb der angegebenen domain, das vom zurückgegebenen Socket für die Kommunikation benutzt wird. Der passende Wert kann ermittelt werden, indem der Name des Protokolls an die Funktion getprotobyname() übergeben wird. Wenn TCP oder UDP gewünscht werden, können auch die entsprechenden Konstanten SOL_TCP und SOL_UDP benutzt werden.

Gebräuchliche Protokolle
Name | Beschreibung
icmp | Das Internet Control Message Protocol wird hauptsächlich von Gateways und Hosts benutzt, um Kommunikationsfehler bei Datagrammen zu melden. Das Kommando "ping" (das in den meisten modernen Betriebssystemen enthalten ist) ist ein Beispiel für eine Anwendung von ICMP.
udp | Das User Datagram Protocol ist ein verbindungsloses, unzuverlässiges Protokoll, mit dem Datensätze fester Länge versendet werden können. Aufgrund dieser geringen Anforderungen braucht UDP nur einen minimalen Protokoll-Overhead.
tcp | Das Transmission Control Protocol ist ein zuverlässiges, verbindungsorientiertes, Stream-orientiertes Protokoll für den Vollduplex-Betrieb. Bei TCP ist garantiert, dass alle Datenpakete in derselben Reihenfolge empfangen werden, in der sie gesendet wurden. Falls während der Übertragung ein Datenpaket verlorengeht, wird es von TCP erneut versendet, und zwar solange, bis der Empfängerhost den Eingang dieses Paktes zurückmeldet. Aus Gründen der Zuverlässigkeit und Leistung ist TCP so implementiert, dass es eigenständig die Oktet-Grenzen der darunterliegenden Datagramm-Kommunikationschicht bestimmen kann. Aus diesem Grund müssen TCP Anwendungen in der Lage sein, auch Teilübertragungen empfangen zu können.

Rückgabewerte

Bei Erfolg gibt socket_create() eine Socket-Instanz zurück, bei einem Fehler wird false zurückgegeben. Der aktuelle Fehlercode kann mit socket_last_error() ermittelt und an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibing des Fehlers zu erhalten.

Changelog

Version | Beschreibung
8.0.0 | Bei Erfolg gibt diese Funktion nun eine Socket-Instanz zurück; zuvor wurde eine resource zurückgegeben.

Fehler/Exceptions

Falls eine ungültige domain oder ein ungültiger type angegbeben wird, fällt socket_create() auf seine Standardeinstellungen AF_INET bzw. SOCK_STREAM zurück, und gibt zusätzlich eine E_WARNING-Meldung aus.

Siehe auch

  • socket_accept() - Akzeptiert eine Verbindung an einem Socket
  • socket_bind() - Verknüpft einen Socket mit einem Namen
  • socket_connect() - Baut eine Verbindung über einen Socket auf
  • socket_listen() - Hört einen Socket nach Verbindungsanforderungen ab
  • socket_last_error() - Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt


Export a socket into a stream that encapsulates a socket

  • « socket_create
  • socket_get_option »
  • PHP Manual
  • Socket-Funktionen
  • Export a socket into a stream that encapsulates a socket

socket_export_stream

(PHP 7 >= 7.0.7, PHP 8)

socket_export_stream — Export a socket into a stream that encapsulates a socket

Beschreibung

socket_export_stream ( Socket $socket ) : resource|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

socket

Rückgabewerte

Return resourceIm Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.


Liefert die Socket-Optionen für einen Socket

  • « socket_export_stream
  • socket_getopt »
  • PHP Manual
  • Socket-Funktionen
  • Liefert die Socket-Optionen für einen Socket

socket_get_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

socket_get_option — Liefert die Socket-Optionen für einen Socket

Beschreibung

socket_get_option ( Socket $socket , int $level , int $option ) : array|int|false

socket_get_option() gibt den Wert der Option zurück, die im Parameter option für den Socket socket angegeben wurde.

Parameter-Liste

socket

Eine Socket-Instanz, die mit der Funktion socket_create() oder socket_accept() erzeugt wurde.

level

Der Parameter level enthält die Protokollebene, für die die Option gilt. Beispiel: Um Optionen auf der Socketebene abzufragen, würde level den Wert SOL_SOCKET enthalten. Andere Ebenen, etwa TCP, können abgefragt werden, indem man die Protokollnummer dieser Ebene angibt. Protokollnummern können mit einem Aufruf von getprotobyname() ermittelt werden.

option
Mögliche Socket-Optionen
Option | Beschreibung | Typ
SO_DEBUG | Gibt an, ob Debug-Informationen mitgeschrieben werden. | int
SO_BROADCAST | Gibt an, ob die Übermittlung von Rundsende-Nachrichten unterstützt wird. | int
SO_REUSEADDR | Gibt an, ob lokale Adressen wiederverwendet werden können. | int
SO_REUSEPORT | Gibt an, ob lokale Ports wiederverwendet werden können. | int
SO_KEEPALIVE | Gibt an, ob Verbindungen durch periodische Aussendungen von Nachrichten aufrecht erhalten werden. Falls der verbundene Socket nicht auf diese Nachrichten antwortet, wird die Verbindung unterbrochen und Prozesse, die auf diesen Socket schreiben, erhalten ein SIGPIPE-Signal. | int
SO_LINGER

Gibt an, ob der socket einen Aufruf von socket_close() verzögert, falls noch Daten vorhanden sind. In der Standardeinstellung versucht ein Socket vor dem Schließen, alle noch nicht gesendeten Daten zu übermitteln. Im Falle eines verbindungsorientierten Sockets wartet socket_close() auf die Empfangsbestätigung seiner Gegenstelle.

Falls l_onoff von 0 verschieden und l_linger gleich 0 ist, werden alle noch nicht gesendeten Daten verworfen und im Fall eines verbindungsorientierten Sockets das Signal RST (Reset) an die Gegenstelle gesendet.

Andererseits, falls sowohl l_onoff als auch l_linger von 0 verschieden sind, blockiert der Aufruf von socket_close() den Socket so lange, bis entweder alle Daten gesendet sind oder das Zeitlimit erreicht ist, das in l_linger gesetzt wurde. Wenn der Socket auf nicht-blockieren gesetzt ist, schlägt socket_close() fehl und gibt einen Fehler zurück.

array. Das Array enthält zwei Schlüssel: l_onoff und l_linger.
SO_OOBINLINE | Gibt an, ob socket die Übertragung von bandexternen Daten in der Reihenfolge überträgt, wie sie auftreten. | int
SO_SNDBUF | Gibt die Größe des Sendepuffers zurück. | int
SO_RCVBUF | Gibt die Größe des Empfangspuffers zurück. | int
SO_ERROR | Gibt den Fehlerstatus zurück und löscht ihn. | int (dieser Wert kann nicht von socket_set_option() gesetzt werden.)
SO_TYPE | Gibt den Typ von socket zurück (z. B. SOCK_STREAM). | int (dieser Wert kann nicht von socket_set_option() gesetzt werden.)
SO_DONTROUTE | Gibt an, ob ausgehende Nachrichten das standardmäßige Routing umgehen. | int
SO_RCVLOWAT | Gibt die Mindestanzahl Bytes an, die socket bei einer Empfangsoperation verarbeiten soll. | int
SO_RCVTIMEO | Gibt den Wert der Zeitspanne bis zu einer Zeitüberschreitung bei Empfangsoperationen an. | array. Das Array enthält zwei Schlüssel: sec, den Sekunden-Anteil der Zeitspanne und usec, den Mikrosekunden-Anteil der Zeitspanne bis zu einer Zeitüberschreitung.
SO_SNDTIMEO | Gibt die Zeitspanne an, nach der eine Zeitüberschreitung bei Sendeoperationen ausgelöst wird. Eine Ausgabefunktion darf während der angegebenen Zeitspanne blockieren, falls die Ablaufsteuerung den Versand der Daten verhindert. | array. Das Array enthält zwei Schlüssel: sec den Sekunden-Anteil der Zeitspanne und usec den Mikrosekunden-Anteil der Zeitspanne bis zu einer Zeitüberschreitung.
SO_SNDLOWAT | Gibt die Mindestanzahl Bytes an, die socket bei einer Ausgabeoperation verarbeiten soll. | int
TCP_NODELAY | Gibt an, ob der TCP Nagle Algorithmus deaktiviert ist. | int
MCAST_JOIN_GROUP | Tritt einer Multicast-Gruppe bei. (hinzugefügt in PHP 5.4) | array mit den Schlüsseln "group", der eine IPv4 oder IPv6 Multicast-Adresse als string angibt, und "interface", der entweder eine Schnittstellennummer als int oder einen Schnittstellennamen als string, wie etwa "eth0", angibt. 0 kann angegeben werden, um festzulegen, dass die Schnittstelle unter Verwendung von Routing-Regeln gewählt werden soll. (Dies kann nur für socket_set_option() verwendet werden.)
MCAST_LEAVE_GROUP | Verläßt eine Multicast-Gruppe. (hinzugefügt in PHP 5.4) | array. Siehe MCAST_JOIN_GROUP für weitere Information. (Dies kann nur für socket_set_option() verwendet werden.)
MCAST_BLOCK_SOURCE | Blockiert Pakete, die von einer bestimmten Quelle an eine bestimmte Multicast-Gruppe, der man zuvor beigetreten ist, gesendet wurden. (hinzugefügt in PHP 5.4) | array mit denselben Schlüsseln wie MCAST_JOIN_GROUP, plus einem zusätzlichen Schlüssel, source, der die IPv4 oder IPv6 Adresse der zu blockierenden Quelle als string angibt. (Dies kann nur für socket_set_option() verwendet werden.)
MCAST_UNBLOCK_SOURCE | Unblockiert Pakete, die von einer bestimmten Quelle an eine bestimmte Multicast-Gruppe, der man zuvor beigetreten ist, gesendet wurden; d.h. entsprechende Pakete werden wieder empfangen. (hinzugefügt in PHP 5.4) | array mit demselben Format wie MCAST_BLOCK_SOURCE. (Dies kann nur für socket_set_option() verwendet werden.)
MCAST_JOIN_SOURCE_GROUP | Empfange Pakete, die an eine bestimmte Multicast-Gruppe gesendet wurden, deren Quelladresse mit einem bestimmten Wert übereinstimmt. (hinzugefügt in PHP 5.4) | array mit demselben Format wie MCAST_BLOCK_SOURCE. (Dies kann nur für socket_set_option() verwendet werden.)
MCAST_LEAVE_SOURCE_GROUP | Beende den Empfang von Paketen, die an eine bestimmte Multicast-Gruppe gesendet wurden, deren Quelladresse mit einem bestimmten Wert übereinstimmt. (hinzugefügt in PHP 5.4) | array mit demselben Format wie MCAST_BLOCK_SOURCE. (Dies kann nur für socket_set_option() verwendet werden.)
IP_MULTICAST_IF | Die ausgehende Schnittstelle für IPv4 Multicast-Pakete. (hinzugefügt in PHP 5.4) | Entweder int, um die Schnittstellennummer anzugeben, oder ein string mit dem Schnittstellennamen, wie eth0. Der Wert 0 kann verwendet werden, um festzulegen, dass die Routingtabelle für die Schnittstellenauswahl genutzt werden soll. Die Funktion socket_get_option() gibt einen Schnittstellenindex zurück. Es ist zu beachten, dass im Gegensatz zur C-API, diese Option KEINE IP-Adresse akzeptiert. Das beseitigt den Schnittstellenunterschied zwischen IP_MULTICAST_IF und IPV6_MULTICAST_IF.
IPV6_MULTICAST_IF | Die ausgehende Schnittstelle für IPv6 Multicast-Pakete. (hinzugefügt in PHP 5.4) | Identisch zu IP_MULTICAST_IF.
IP_MULTICAST_LOOP | Die Multicast-Loopback-Richtlinie für IPv4 Pakete, die festlegt, ob Multicast-Pakete, die von diesem Socket versendet wurden, ebenfalls Empfänger auf demselben Host erreichen, die auf der ausgehenden Schnittstelle, die von diesem Socket verwendet wird, derselben Multicast-Gruppe beigetreten sind. Dies ist die Voreinstellung. (hinzugefügt in PHP 5.4) | int (entweder 0 oder 1). Für socket_set_option() wird jeder Wert akzeptiert, und gemäß den übelichen PHP-Regeln in booleschen Wert konvertiert.
IPV6_MULTICAST_LOOP | Analog zu IP_MULTICAST_LOOP, aber für IPv6. (hinzugefügt in PHP 5.4) | int. Siehe IP_MULTICAST_LOOP.
IP_MULTICAST_TTL | Die Lebensdauer ausgehender IPv4 Multicast-Pakete. Dies sollte ein Wert zwischen 0 (verlasse nicht die Schnittstelle) und 255 sein. Der Vorgabewert ist 1 (nur das lokale Netzwerk wird erreicht). (hinzugefügt in PHP 5.4) | int zwischen 0 und 255.
IPV6_MULTICAST_HOPS | Analog zu IP_MULTICAST_TTL, aber für IPv6 Pakete. Der Wert -1 wird ebenfalls akzeptiert, und bedeutet, dass die Vorgabewert der Route verwendet werden soll. (hinzugefügt in PHP 5.4) | int zwischen -1 und 255.

Rückgabewerte

Gibt den Wert der angegebenen Option zurück oder false, falls ein Fehler auftrat.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Beispiele

Beispiel #1 socket_get_option()-Beispiel

<?php
$socket = socket_create_listen(1223);

$linger = array('l_linger' => 1, 'l_onoff' => 1);
socket_set_option($socket, SOL_SOCKET, SO_LINGER, $linger);

var_dump(socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR));
?>

Siehe auch

  • socket_create_listen() - Öffnet einen Socket, um Verbindungen über einem gegebenen Port aufzubauen
  • socket_set_option() - Setzt die Optionen für einen Socket


Alias von socket_get_option

  • « socket_get_option
  • socket_getpeername »
  • PHP Manual
  • Socket-Funktionen
  • Alias von socket_get_option

socket_getopt

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_getopt — Alias von socket_get_option()

Beschreibung

Diese Funktion ist ein Alias für: socket_get_option().


Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems

  • « socket_getopt
  • socket_getsockname »
  • PHP Manual
  • Socket-Funktionen
  • Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems

socket_getpeername

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_getpeername — Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems

Beschreibung

socket_getpeername ( Socket $socket , string &$address , int &$port = null ) : bool

Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() oder socket_accept() erzeugt wurde.

address

Falls der angegebene Socket vom Typ AF_INET oder AF_INET6 ist, gibt socket_getpeername() die IP-Addresse des entfernten Peers in der passenden Notation (z.B.127.0.0.1 oder fe80::1) im Parameter address zurück. Falls der optionale Parameter port angegeben ist, wird der zugehörige Port ebenfalls zurückgegeben.

Falls der angegebene Socket vom Typ AF_UNIX ist, gibt socket_getpeername() den Pfad des Unix-Dateisystems (z.B. /var/run/daemon.sock) in dem Parameter address zurück.

port

Falls angegeben, wird hier der mit address verknüpfte Port zurückgegeben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. socket_getpeername() kann aber auch false zurückgeben, falls der Socket weder vom Typ AF_INET noch vom Typ AF_INET6 oder AF_UNIX ist. In diesem Fall wird der letzte Fehlercode für den Socket nicht aktualisiert.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Anmerkungen

Hinweis:

socket_getpeername() sollte nicht mit AF_UNIX-Sockets verwendet werden, die mit socket_accept() erzeugt wurden. Nur Sockets, die mit socket_connect() erzeugt wurden oder primäre Server-Sockets, nach einem Aufruf von socket_bind(), geben brauchbare Ergebnisse zurück.

Hinweis:

Damit socket_getpeername() einen sinnvollen Wert zurückgibt, muss für den Socket, auf den sie angewendet wird, das Konzept "peer" sinnvoll sein.

Siehe auch

  • socket_getsockname() - Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems
  • socket_last_error() - Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt


Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems

  • « socket_getpeername
  • socket_import_stream »
  • PHP Manual
  • Socket-Funktionen
  • Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems

socket_getsockname

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_getsockname — Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems

Beschreibung

socket_getsockname ( Socket $socket , string &$address , int &$port = null ) : bool

Hinweis: socket_getpeername() sollte nicht mit AF_UNIX-Sockets verwendet werden, die mit socket_connect() erzeugt wurden. Nur Sockets, die mit socket_accept() erzeugt wurden oder primäre Server-Sockets, nach einem Aufruf von socket_bind(), geben brauchbare Ergebnisse zurück.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() oder socket_accept() erzeugt wurde.

address

Falls der angegebene Socket vom Typ AF_INET oder AF_INET6 ist, gibt socket_getsockname() die IP-Addresse des lokalen Rechners im Parameter address in Punktnotation zurück (z.B. 127.0.0.1 oder fe80::1). Falls der optionale Parameter port angegeben ist, wird der zugehörige Port ebenfalls zurückgegeben.

Falls der angegebene Socket vom Typ AF_UNIX ist, gibt socket_getsockname() den Pfad des Unix-Dateisystems (z.B. /var/run/daemon.sock) im Parameter address zurück.

port

Falls angegeben, wird hier der mit address verknüpfte Port zurückgegeben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. socket_getsockname() kann auch false zurückgeben, wenn der Socket weder vom Typ AF_INET noch vom Typ AF_INET6 oder AF_UNIX ist. In diesem Fall wird der letzte Socket-Fehlercode nicht aktualisiert.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Siehe auch

  • socket_getpeername() - Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems
  • socket_last_error() - Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt


Import a stream

  • « socket_getsockname
  • socket_last_error »
  • PHP Manual
  • Socket-Funktionen
  • Import a stream

socket_import_stream

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

socket_import_stream — Import a stream

Beschreibung

socket_import_stream ( resource $stream ) : Socket|false

Imports a stream that encapsulates a socket into a socket extension resource.

Parameter-Liste

stream

The stream resource to import.

Rückgabewerte

Returns false on failure.

Changelog

Version | Beschreibung
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.

Beispiele

Beispiel #1 socket_import_stream() example

<?php
$stream = stream_socket_server("udp://0.0.0.0:58380", $errno, $errstr, STREAM_SERVER_BIND);
$sock   = socket_import_stream($stream);
?>

Siehe auch

  • stream_socket_server() - Create an Internet or Unix domain server socket


Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist

  • « socket_import_stream
  • socket_listen »
  • PHP Manual
  • Socket-Funktionen
  • Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist

socket_last_error

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_last_error — Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist

Beschreibung

socket_last_error ( Socket|null $socket = null ) : int

Wenn eine Socket-Instanz an diese Funktion übergeben wird, wird der letzte Fehler, der an diesem bestimmten Socket aufgetreten ist, zurückgegeben. Falls socket null ist, wird der Fehlercode der letzten fehlgeschlagenen Socket-Funktion zurückgegeben. Letzteres ist besonders hilfreich für Funktionen wie socket_create(), die bei einem Fehler keinen Socket zurückgibt, oder socket_select(), die aus anderen Gründen, die nichts mit einem bestimmten Socket zu tun haben, fehlschlagen kann. Der Fehlercode kann an die Funktion socket_strerror() übergeben werden, die eine textuelle Beschreibung dieses Fehlercodes zurückgibt.

Trat kein Fehler auf, oder der Fehler wurde per socket_clear_error() gelöscht, dann gibt die Funktion 0 zurück.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() erzeugt wurde.

Rückgabewerte

Diese Funktion gibt den Fehlercode eines Socket-Fehlers zurück.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.
8.0.0 | socket ist nun ein Nullable-Typ.

Beispiele

Beispiel #1 socket_last_error()-Beispiel

<?php
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if ($socket === false) {
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);

    die("Konnte keinen Socket erzeugen: [$errorcode] $errormsg");
}
?>

Anmerkungen

Hinweis:

socket_last_error() löscht den Fehlercode nicht. Dazu müssesn Sie socket_clear_error() aufrufen.


Hört einen Socket nach Verbindungsanforderungen ab

  • « socket_last_error
  • socket_read »
  • PHP Manual
  • Socket-Funktionen
  • Hört einen Socket nach Verbindungsanforderungen ab

socket_listen

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_listen — Hört einen Socket nach Verbindungsanforderungen ab

Beschreibung

socket_listen ( Socket $socket , int $backlog = 0 ) : bool

Nachdem der Socket socket mit socket_create() erzeugt und mit socket_bind() mit einem Namen verknüpft wurde, wird er angewiesen, nach hereinkommenden Verbindungsanforderungen an dem Socket socket zu horchen.

socket_listen() kann nur zusammen mit Sockets vom Typ SOCK_STREAM oder SOCK_SEQPACKET verwendet werden.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() oder socket_addrinfo_bind() erzeugt wurde.

backlog

Maximal werden backlog hereinkommende Verbindungsanforderungen zur späteren Verarbeitung in die Warteschlange gestellt. Falls eine Verbindungsanforderung ankommt, wenn die Warteschlange voll ist, bekommt der Client eine Fehlermeldung mit dem Hinweis ECONNREFUSED. Oder, falls das zugrundeliegende Protokoll eine wiederholte Übertragung unterstützt, wird die Anforderung ignoriert, so dass weitere Verbindungsversuche möglicherweise erfolgreich sind.

Hinweis:

Die maximale Anzahl der im Parameter backlog angegebenen Einträge der Warteschlange hängt entscheidend vom darunterliegenden Betriebssystem ab. Auf Linux-Systemen wird die Zahl stillschweigend auf SOMAXCONN begrenzt. Wenn auf Win32-Systemen SOMAXCONN gesetzt ist, ist der Dienstanbieter verantwortlich für den Socket und muss die Warteschlange auf einen vernünftigen Maximalwert begrenzen. Es gibt für diese Systeme keine standardmäßige Möglichkeit, den aktuellen Wert herauszufinden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Der Fehlercode kann mit der Funktion socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Siehe auch

  • socket_accept() - Akzeptiert eine Verbindung an einem Socket
  • socket_bind() - Verknüpft einen Socket mit einem Namen
  • socket_connect() - Baut eine Verbindung über einen Socket auf
  • socket_create() - Erzeugt einen Socket (Endpunkt für die Kommunikation)
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt
  • socket_addrinfo_bind() - Create and bind to a socket from a given addrinfo


Liest höchstens die angegebene Anzahl Bytes von einem Socket

  • « socket_listen
  • socket_recv »
  • PHP Manual
  • Socket-Funktionen
  • Liest höchstens die angegebene Anzahl Bytes von einem Socket

socket_read

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_read — Liest höchstens die angegebene Anzahl Bytes von einem Socket

Beschreibung

socket_read ( Socket $socket , int $length , int $mode = PHP_BINARY_READ ) : string|false

Die Funktion socket_read() liest von der Socket-Instanz socket, die entweder mit socket_create() oder mit socket_accept() erzeugt wurde.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() oder socket_accept() erzeugt wurde.

length

Die Anzahl Bytes, die höchstens gelesen werden, wird in dem Parameter length angegeben. Anderenfalls können Sie mit \r, \n, oder \0 den Lesevorgang beenden (dies ist abhängig von dem Parameter mode, siehe weiter unten).

mode

Der optionale Parameter mode ist eine vordefinierte Konstante:

  • PHP_BINARY_READ (Standardwert) - benutzt die Systemfunktion recv(). Das ist sicher zum Lesen von Binärdaten.
  • PHP_NORMAL_READ - Lesevorgänge werden bei \n oder \r beendet.

Rückgabewerte

socket_read() gibt bei Erfolg die Daten als String zurück oder false, falls ein Fehler aufgetreten ist (einschließlich, wenn der entfernte Host die Verbindung abgebrochen hat). Der Fehlercode kann mit socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Hinweis:

socket_read() gibt einen leeren String ("") zurück, wenn es keine Daten mehr zu lesen gibt.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Siehe auch

  • socket_accept() - Akzeptiert eine Verbindung an einem Socket
  • socket_bind() - Verknüpft einen Socket mit einem Namen
  • socket_connect() - Baut eine Verbindung über einen Socket auf
  • socket_listen() - Hört einen Socket nach Verbindungsanforderungen ab
  • socket_last_error() - Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt
  • socket_write() - Schreibt in einen Socket


Empfängt Daten von einem verbundenen Socket

  • « socket_read
  • socket_recvfrom »
  • PHP Manual
  • Socket-Funktionen
  • Empfängt Daten von einem verbundenen Socket

socket_recv

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_recv — Empfängt Daten von einem verbundenen Socket

Beschreibung

socket_recv ( Socket $socket , string|null &$data , int $length , int $flags ) : int|false

Die Funktion socket_recv() empfängt length Bytes Daten in data von socket. socket_recv() kann genutzt werden, um Daten von verbundenen Sockets zu lesen. Zusätzlich können einer oder mehrere Flags angegeben werden, um das Verhalten der Funktion zu modifizieren.

data wird als Referenz übergeben, daher muss er als Variable in der Liste der Argumente angegeben werden. Gelesene Daten von socket durch socket_recv() werden in data zurückgegeben.

Parameter-Liste

socket

Der socket muss eine Socket-Instanz sein, die zuvor mit socket_create() erzeugt wurde.

data

Empfangene Daten werden in die Variable geschrieben, die durch data spezifiziert ist. Tritt ein Fehler auf, wird die Verbindung zurückgesetzt oder, wenn keine Daten verfügbar sind, wird data auf null gesetzt.

length

Maximal length Bytes werden von dem entfernten System abgerufen.

flags

Der Wert von flags kann jede beliebige Kombination der folgenden Flags sein, verknüpft mit dem binären ODER- (|) Operator.

Mögliche Werte von flags
Flag | Beschreibung
MSG_OOB | Verarbeite bandexterne (out-of-band) Daten.
MSG_PEEK | Lies Daten ab Anfang der Empfangs-Warteschlange, ohne die Daten aus der Warteschlange zu löschen.
MSG_WAITALL | Blockiere so lange, bis mindestens length Daten gelesen wurden. Wenn jedoch ein Signal empfangen wurde oder der entfernte Host die Verbindung beendet, kann die Funktion auch weniger Daten zurückgeben.
MSG_DONTWAIT | Wenn dieses Flag gesetzt ist, kehrt die Funktion zurück, auch wenn sie normalerweise blockieren würde.

Rückgabewerte

socket_recv() gibt die Anzahl der empfangenen Bytes zurück oder false, falls ein Fehler auftrat. Der aktuelle Fehlercode kann mit socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Beispiele

Beispiel #1 socket_recv()-Beispiel

Dies ist eine einfache Umformulierung des ersten Beispiels von Beispiele unter Nutzung von socket_recv().

<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP-Verbindung</h2>\n";

/* Erhalte Port für den WWW-Service. */
$service_port = getservbyname('www', 'tcp');

/* Erhalte die IP-Adresse des Ziel Hosts. */
$address = gethostbyname('www.example.com');

/* Erzeuge ein TCP/IP-Socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() schlug fehl: Grund: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "OK.\n";
}

echo "Versuche Verbing zu '$address' auf Port '$service_port' aufzubauen...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "socket_connect() schulg fehl.\nGrund: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Sende HTTP HEAD Request...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Lese Response:\n\n";
$buf = 'Dies ist mein Puffer.';
if (false !== ($bytes = socket_recv($socket, $buf, 2048, MSG_WAITALL))) {
    echo "Las $bytes bytes von socket_recv(). Schliesse Socket...";
} else {
    echo "socket_recv() schlug fehl; Grund: " . socket_strerror(socket_last_error($socket)) . "\n";
}
socket_close($socket);

echo $buf . "\n";
echo "OK.\n\n";
?>

Obiges Beispiel erzeugt eine Ausgabe ähnlich wie:

<h2>TCP/IP-Verbindung</h2>
OK.
Versuche Verbing zu '208.77.188.166' auf Port '80' aufzubauen...OK.
Sende HTTP HEAD Request...OK.
Lese Response:

Las 123 bytes von socket_recv(). Schliesse Socket...HTTP/1.1 200 OK
Date: Mon, 14 Sep 2009 08:56:36 GMT
Server: Apache/2.2.3 (Red Hat)
Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
ETag: "b80f4-1b6-80bfd280"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; CHARSET=Windows-1252

OK.


Empfängt Daten von einem Socket, egal, ob verbindungsorientiert oder nicht

  • « socket_recv
  • socket_recvmsg »
  • PHP Manual
  • Socket-Funktionen
  • Empfängt Daten von einem Socket, egal, ob verbindungsorientiert oder nicht

socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_recvfrom — Empfängt Daten von einem Socket, egal, ob verbindungsorientiert oder nicht

Beschreibung

socket_recvfrom ( Socket $socket , string &$data , int $length , int $flags , string &$address , int &$port = null ) : int|false

Die Funktion socket_recvfrom() empfängt über den Socket socket length Bytes von address über den Port port (falls der Socket nicht vom Typ AF_UNIX ist) und liest sie in den Puffer data ein. socket_recvfrom() kann dazu verwendet werden, um Daten sowohl von verbundenen als auch unverbundenen Sockets zu lesen. Außerdem können ein oder mehrere Flags gesetzt werden, um das Verhalten dieser Funktion zu beeinflussen.

Die Parameter address und port müsssen als Referenz übergeben werden. Wenn der Socket verbindungslos ist, wird address auf die Internet-Protokolladresse des entfernten Host oder auf den Pfad zum UNIX-Socket gesetzt. Ist der Socket verbindungsorientiert, ist address null. Zusätzlich enthält der Parameter port den Port des entfernten Host, falls es sich um einen nicht verbundenen AF_INET oder AF_INET6-Socket handelt.

Hinweis: Diese Funktion ist binary safe.

Parameter-Liste

socket

socket muss eine Socket-Instanz sein, die zuvor mit socket_create() erzeugt wurde.

data

Die empfangenen Daten werden in die Variable data eingelesen.

length

Bis zu length Bytes werden vom entfernten Host gelesen.

flags

Der Wert von flags kann eine beliebige Kombination der folgenden Flags sein, die mit dem binären OR (|) verknüpft werden.

Mögliche Werte für flags
Flag | Beschreibung
MSG_OOB | Verarbeite bandexterne Daten.
MSG_PEEK | Lies Daten ab Anfang der Empfangs-Warteschlange, ohne die Daten aus der Warteschlange zu löschen.
MSG_WAITALL | Blockiere so lange, bis mindestens length Daten gelesen wurden. Wenn jedoch ein Signal empfangen wurde oder der entfernte Host die Verbindung beendet, kann die Funktion auch weniger Daten zurückgeben.
MSG_DONTWAIT | Wenn dieses Flag gesetzt ist, kehrt die Funktion zurück, auch wenn sie normalerweise blockieren würde.
address

Wenn der Socket vom Typ AF_UNIX ist, enthält address den Pfad zu einer Datei. Anderenfalls, bei nicht verbundenen Sockets, enthält address die IP-Adresse des entfernten Hosts oder null, falls der Socket verbindungsorientiert ist.

port

Dieses Argument gilt nur für Sockets vom Typ AF_INET und AF_INET6 und gibt den entfernten Port an, über den Daten empfangen werden. Falls der Socket verbindungsorientiert ist, ist port null.

Rückgabewerte

socket_recvfrom() gibt die Anzahl der empfangenen Bytes zurück oder false, falls ein Fehler auftrat. Der aktuelle Fehlercode kann mit socket_last_error() abgefragt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Beispiele

Beispiel #1 socket_recvfrom()-Beispiel

<?php
error_reporting(E_ALL | E_STRICT);

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);

$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);

echo "$buf von entfernter Adresse $from über den entfernten Port $port empfangen." . PHP_EOL;
?>

Dieses Beispiel erzeugt einen UDP-Socket über Port 1223 des Hosts 127.0.0.1 und gibt höchstens 12 Zeichen aus, die von einem entfernten Host empfangen wurden.

Siehe auch

  • socket_recv() - Empfängt Daten von einem verbundenen Socket
  • socket_send() - Sendet Daten an einen verbundenen Socket
  • socket_sendto() - Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht
  • socket_create() - Erzeugt einen Socket (Endpunkt für die Kommunikation)


Read a message

  • « socket_recvfrom
  • socket_select »
  • PHP Manual
  • Socket-Funktionen
  • Read a message

socket_recvmsg

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

socket_recvmsg — Read a message

Beschreibung

socket_recvmsg ( Socket $socket , array &$message , int $flags = 0 ) : int|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

socket

message

flags

Rückgabewerte

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Siehe auch

  • socket_sendmsg() - Send a message
  • socket_cmsg_space() - Calculate message buffer size


Führt einen select()-Systemaufruf auf den gegebenen Socket-Arrays aus, wobei ein Zeitlimit bestimmt wird

  • « socket_recvmsg
  • socket_send »
  • PHP Manual
  • Socket-Funktionen
  • Führt einen select()-Systemaufruf auf den gegebenen Socket-Arrays aus, wobei ein Zeitlimit bestimmt wird

socket_select

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_select — Führt einen select()-Systemaufruf auf den gegebenen Socket-Arrays aus, wobei ein Zeitlimit bestimmt wird

Beschreibung

socket_select ( array|null &$read , array|null &$write , array|null &$except , int|null $seconds , int $microseconds = 0 ) : int|false

socket_select() nimmt als Parameter Socket-Arrays entgegen und wartet, ob diese ihren Status ändern. Diejenigen, die Hintergrundwissen über BSD-Sockets haben, werden feststellen, dass diese Socket-Arrays in Wirklichkeit die sogenannten Dateideskriptor-Mengen sind. Drei voneinander unabhängige Arrays mit Sockets werden überwacht.

Parameter-Liste

read

Die Sockets, die im read-Array aufgelistet sind, werden daraufhin überwacht, ob Zeichen zum Auslesen zur Verfügung gestellt werden. (Um genauer zu sein: es wird überwacht, ob ein Lesevorgang nicht blockiert würde - ein Socket ist nämlich auch dann bereit, wenn er bis zum Dateiende gelesen hat. In diesem Fall gibt socket_read() einen leeren String zurück.)

write

Die Sockets, die im write-Array aufgelistet sind, werden daraufhin überwacht, ob ein Schreibvorgang nicht blockiert würde.

except

Die Sockets, die im except-Array aufgelistet sind, werden auf Ausnahmen überwacht.

seconds

seconds und microseconds bilden zusammen den timeout-Parameter. Der timeout ist eine obere Schranke für die Zeit, die verstreichen kann, bis socket_select() zurückkehrt. seconds kann 0 sein, wodurch socket_select() sofort zurückkehrt. Dies ist nützlich beim Polling. Falls der Parameter seconds null ist (kein Timeout), kann socket_select() unendlich lange blockieren.

microseconds

Warnung

Beim Beenden werden alle Arrays aktualisiert, und zeigen an, welche Sockets ihren Status geändert haben.

Sie brauchen nicht jedes Array einzeln an socket_select() übergeben. Sie können die Arrays auch weglassen und stattdessen leere Arrays oder null angeben. Vergessen Sie nicht, dass diese Arrays per Referenz übergeben werden, und dass sie verändert werden, nachdem die Funktion socket_select() beendet ist.

Hinweis:

Wegen einer Einschränkung in der aktuellen Zend Engine ist es nicht möglich, eine Konstante, wie etwa null, direkt als Parameter an Funktionen zu übergeben, die ihre Argumente als Referenzen erwarten. Statt dessen kann eine temporäre Variable oder eine Ausdruck, in dem der am weitesten links stehende Teilausdruck eine temporäre Variable ist, verwendet werden.

Beispiel #1 null mit socket_select() benutzen:

<?php
$e = NULL;
socket_select($r, $w, $e, 0);
?>

Rückgabewerte

Bei Erfolg gibt socket_select() die Anzahl der Sockets zurück, die in den aktualisierten Arrays enthalten sind. Falls der Timeout wirksam wird, bevor irgend etwas Interessantes passiert, ist das Funktionsergebnis 0. Falls ein Fehler auftritt, wird false zurückgegeben. Der Fehlercode kann dann mit socket_last_error() abgefragt werden.

Hinweis:

Wenn ein Fehler aufgespürt werden soll, muss unbedingt der Operator === benutzt werden. Weil socket_select() auch 0 zurückgeben kann, wird der Vergleich mit == sonst zu true ausgewertet.

Beispiel #2 Rückgaben von socket_select() verstehen

<?php
$e = NULL;
if (false === socket_select($r, $w, $e, 0)) {
    echo "socket_select() fehlgeschlagen, Grund: " .
        socket_strerror(socket_last_error()) . "\n";
}
?>

Beispiele

Beispiel #3 socket_select()-Beispiel

<?php
/* Das Array read vorbereiten */
$read   = array($socket1, $socket2);
$write  = NULL;
$except = NULL;
$num_changed_sockets = socket_select($read, $write, $except, 0);

if ($num_changed_sockets === false) {
    /* Fehlerbehandlung */
} else if ($num_changed_sockets > 0) {
    /* Mindestens an einem Socket ist etwas Interessantes passiert */
}
?>

Anmerkungen

Hinweis:

Seien Sie sich bewusst, dass manche Socket-Implementierungen sehr sorgfältig benutzt werden müssen. Ein paar grundsätzliche Regeln:

  • Sie sollten immer versuchen, socket_select() ohne Timeout zu benutzen. Ihr Programm sollte nichts zu tun haben, wenn keine Daten verfügbar sind. Code, der von Zeitbegrenzungen abhängig ist, ist normalerweise nicht portierbar und schwierig zu debuggen.
  • Es darf kein Socket in die Arrays eingefügt werden, wenn Sie nicht vorhaben, die Ergebnisse nach der Ausführung von socket_select() zu prüfen und entsprechend darauf zu reagieren. Nachdem socket_select() beendet ist, müssen alle Sockets in allen Socket-Arrays geprüft werden. Jeder Socket, der zum Schreiben zur Verfügung steht, muss beschrieben werden und aus jedem Socket, der zum Lesen verfügbar ist, muss gelesen werden.
  • Bei Schreib-/Leseoperationen auf den Sockets in den Arrays muss damit gerechnnet werden, dass nicht notwendigerweise alle Daten geschrieben/gelesen werden, die angeben wurden. Seien Sie darauf vorbereitet, dass Sie möglicherweise nur ein einziges Byte schreiben/lesen können.
  • Fast allen Socket-Implementierungen ist gemeinsam, dass sie nur eine einzige Ausnahme in dem Array except auffangen können. Und zwar, wenn bandexterne Daten von einem Socket empfangen werden.

Siehe auch

  • socket_read() - Liest höchstens die angegebene Anzahl Bytes von einem Socket
  • socket_write() - Schreibt in einen Socket
  • socket_last_error() - Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt


Sendet Daten an einen verbundenen Socket

  • « socket_select
  • socket_sendmsg »
  • PHP Manual
  • Socket-Funktionen
  • Sendet Daten an einen verbundenen Socket

socket_send

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_send — Sendet Daten an einen verbundenen Socket

Beschreibung

socket_send ( Socket $socket , string $data , int $length , int $flags ) : int|false

Die Funktion socket_send() sendet length Bytes aus dem Puffer data an den Socket socket.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() oder socket_accept() erzeugt wurde.

data

Ein Puffer, der die Daten enthält, die an den entfernten Host gesendet werden.

length

Die Anzahl Bytes, die aus dem Puffer data an den entfernten Host gesendet werden.

flags

Der Parameter flags kann beliebige Kombinationen der folgenden Flags enthalten, die mit einem binären OR (|) verknüpft werden.

Mögliche Werte von flags
MSG_OOB | Sende OOB-Daten (out-of-band).
MSG_EOR | Setze eine Ende-Marke für den Datensatz. Die gesendeten Daten beenden die Übertragung.
MSG_EOF | Schließe den Socket auf der Senderseite und füge eine entsprechende Benachrichtigung an das Ende der gesendeten Daten an. Die gesendeten Daten beenden die Übertragung.
MSG_DONTROUTE | Umgehe das Routing, sende direkt ber die Schnittstelle.

Rückgabewerte

socket_send() gibt die Anzahl der gesendeten Bytes zurück oder false, falls ein Fehler auftrat.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Siehe auch

  • socket_sendto() - Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht


Send a message

  • « socket_send
  • socket_sendto »
  • PHP Manual
  • Socket-Funktionen
  • Send a message

socket_sendmsg

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

socket_sendmsg — Send a message

Beschreibung

socket_sendmsg ( Socket $socket , array $message , int $flags = 0 ) : int|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

socket

message

flags

Rückgabewerte

Returns the number of bytes sent, Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Siehe auch

  • socket_recvmsg() - Read a message
  • socket_cmsg_space() - Calculate message buffer size


Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht

  • « socket_sendmsg
  • socket_set_block »
  • PHP Manual
  • Socket-Funktionen
  • Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht

socket_sendto

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_sendto — Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht

Beschreibung

socket_sendto ( Socket $socket , string $data , int $length , int $flags , string $address , int|null $port = null ) : int|false

Die Funktion socket_sendto() sendet length Bytes aus dem Puffer data über den Port port an den Socket socket mit der Adresse address.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() erzeugt wurde.

data

Die Sendedaten werden aus dem Puffer data gelesen.

length

Die Anzahl Bytes, die aus dem Puffer data gesendet werden.

flags

Der Parameter flags kann beliebige Kombinationen der folgenden Flags enthalten, die mit einem binären OR (|) verknüpft werden.

Mögliche Werte von flags
MSG_OOB | Sende OOB (out-of-band) Daten.
MSG_EOR | Setze eine Ende-Marke für den Datensatz. Die gesendeten Daten beenden die Übertragung.
MSG_EOF | Schließe den Socket auf der Senderseite und füge eine entsprechende Benachrichtigung an das Ende der gesendeten Daten an. Die gesendeten Daten beenden die Übertragung.
MSG_DONTROUTE | Umgehe das Routing; sende direkt über die Schnittstelle.

address

Die IP-Adresse des enfernten Hosts.

port

port ist die Portnummer des entfernten Rechners, an den die Daten gesendet werden.

Rückgabewerte

socket_sendto() gibt die Anzahl der an den entfernten Host gesendeten Bytes zurück oder false, falls ein Fehler auftrat.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.
8.0.0 | port ist nun ein Nullable-Typ.

Beispiele

Beispiel #1 socket_sendto()-Beispiel

<?php
    $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

    $msg = "Ping !";
    $len = strlen($msg);

    socket_sendto($sock, $msg, $len, 0, '127.0.0.1', 1223);
    socket_close($sock);
?>

Siehe auch

  • socket_send() - Sendet Daten an einen verbundenen Socket


Setzt einen Socket auf den blockieren-Modus

  • « socket_sendto
  • socket_set_nonblock »
  • PHP Manual
  • Socket-Funktionen
  • Setzt einen Socket auf den blockieren-Modus

socket_set_block

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

socket_set_block — Setzt einen Socket auf den blockieren-Modus

Beschreibung

socket_set_block ( Socket $socket ) : bool

Die Funktion socket_set_block() entfernt das Flag O_NONBLOCK vom Socket socket.

Wenn eine Operation (etwa empfangen, senden, verbinden, akzeptieren, ...) an einem blockierenden Socket ausgeführt wird, wird die Ausführung des Skripts so lange unterbrochen, bis es ein Signal erhält oder die Operation ausführen kann.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() oder socket_accept() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Beispiele

Beispiel #1 socket_set_block()-Beispiel

<?php
$socket = socket_create_listen(1223);
socket_set_block($socket);

socket_accept($socket);
?>

In diesem Beispiel wird ein Socket für alle Schnittstellen erzeugt, der den Port 1223 abhört und der in den O_BLOCK-Modus versetzt wird. socket_accept() wartet auf eine Verbindung, um sie zu akzeptieren.

Siehe auch

  • socket_set_nonblock() - Setzt den nonblocking-Modus für den Dateideskriptor fd
  • socket_set_option() - Setzt die Optionen für einen Socket


Setzt den nonblocking-Modus für den Dateideskriptor fd

  • « socket_set_block
  • socket_set_option »
  • PHP Manual
  • Socket-Funktionen
  • Setzt den nonblocking-Modus für den Dateideskriptor fd

socket_set_nonblock

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_set_nonblock — Setzt den nonblocking-Modus für den Dateideskriptor fd

Beschreibung

socket_set_nonblock ( Socket $socket ) : bool

Die Funktion socket_set_nonblock() setzt das Flag O_NONBLOCK für den Socket socket.

Wenn eine Operation (etwa empfangen, senden, verbinden, akzeptieren, ...) an einem nicht-blockierenden Socket ausgeführt wird, wird die Ausführung des Skripts so lange nicht unterbrochen, bis es ein Signal erhält oder die Operation ausgeführt ist. Wenn allerdings die Operation zu einer Blockierung führen würde, schlägt die aufgerufene Funktion fehl.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() oder socket_accept() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Beispiele

Beispiel #1 socket_set_nonblock()-Beispiel

<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);

socket_accept($socket);
?>

In diesem Beispiel wird ein Socket für alle Schnittstellen erzeugt, der den Port 1223 abhört und der in den O_NONBLOCK-Modus versetzt wird. socket_accept() schlägt sofort fehl, es sei denn, es gibt exakt in diesem Moment eine wartende Verbindung.

Siehe auch

  • socket_set_block() - Setzt einen Socket auf den blockieren-Modus
  • socket_set_option() - Setzt die Optionen für einen Socket
  • stream_set_blocking() - Set blocking/non-blocking mode on a stream


Setzt die Optionen für einen Socket

  • « socket_set_nonblock
  • socket_setopt »
  • PHP Manual
  • Socket-Funktionen
  • Setzt die Optionen für einen Socket

socket_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

socket_set_option — Setzt die Optionen für einen Socket

Beschreibung

socket_set_option ( Socket $socket , int $level , int $option , array|string|int $value ) : bool

Mit socket_set_option() wird die Option, die mit option angegeben wurde, auf der Protokollebene level für den Socket socket auf den Wert gesetzt, der in value übergeben wurde.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() oder socket_accept() erzeugt wurde.

level

Der Parameter level gibt die Protokollebene an, auf der diese Option gilt. Um beispielsweise Optionen auf dem Socket-Level abzufragen würde man den Parameter level auf den Wert SOL_SOCKET setzen. Andere Ebenen, wie etwa TCP können benutzt werden, indem man die Protokollnummer dieser Ebene benutzt. Protokollnummern erhält man mit der Funktion getprotobyname().

option

Es sind dieselben Socket-Optionen verfügbar, wie bei der Funktion socket_get_option() beschrieben.

value

Der Wert der Option.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Beispiele

Beispiel #1 socket_set_option()-Beispiel

<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!is_resource($socket)) {
    echo 'Kann keinen Socket erzeugen: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo 'Kann keine Option setzen für Socket: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_bind($socket, '127.0.0.1', 1223)) {
    echo 'Kann den Socket nicht benennen: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);

if ($rval === false) {
    echo 'Kann keine Socket-Optionen ermitteln: '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if ($rval !== 0) {
    echo 'SO_REUSEADDR ist für den Socket gesetzt!' . PHP_EOL;
}
?>

Siehe auch

  • socket_create() - Erzeugt einen Socket (Endpunkt für die Kommunikation)
  • socket_bind() - Verknüpft einen Socket mit einem Namen
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt
  • socket_last_error() - Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  • socket_get_option() - Liefert die Socket-Optionen für einen Socket


Alias von socket_set_option

  • « socket_set_option
  • socket_shutdown »
  • PHP Manual
  • Socket-Funktionen
  • Alias von socket_set_option

socket_setopt

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_setopt — Alias von socket_set_option()

Beschreibung

Diese Funktion ist ein Alias für: socket_set_option().


Schließt einen Socket der zum Senden, Empfangen oder beidem geöffnet wurde

  • « socket_setopt
  • socket_strerror »
  • PHP Manual
  • Socket-Funktionen
  • Schließt einen Socket der zum Senden, Empfangen oder beidem geöffnet wurde

socket_shutdown

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_shutdown — Schließt einen Socket der zum Senden, Empfangen oder beidem geöffnet wurde

Beschreibung

socket_shutdown ( Socket $socket , int $mode = 2 ) : bool

Mit socket_shutdown() können Sie die Übertragung hereinkommender, ausgehender oder aller Daten (die Standardeinstellung) über diesen socket abbrechen.

Hinweis:

Zugehörige Puffer werden geleert, oder auch nicht.

Parameter-Liste

socket

Eine Socket-Instanz, die mit socket_create() erzeugt wurde.

mode

Der Parameter mode kann folgende Werte annehmen:

Mögliche Werte für mode
0 | Schließe den Socket für hereinkommende Daten (Lesen)
1 | Schließe den Socket für ausgehende Daten (Schreiben)
2 | Schließe den Socket in beiden Richtungen

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.


Gibt einen String zurück, der einen Socket-Fehler beschreibt

  • « socket_shutdown
  • socket_write »
  • PHP Manual
  • Socket-Funktionen
  • Gibt einen String zurück, der einen Socket-Fehler beschreibt

socket_strerror

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_strerror — Gibt einen String zurück, der einen Socket-Fehler beschreibt

Beschreibung

socket_strerror ( int $error_code ) : string

socket_strerror() nimmt im Parameter error_code einen Fehlercode, der von der Funktion socket_last_error() zurückgegeben wurde, entgegen und gibt seinerseits den entsprechenden Erklärungstext aus.

Hinweis:

Obwohl die Fehlermeldungen der Socket-Erweiterung englisch sind, erscheinen die Systemmeldungen, die mit dieser Funktion abgerufen werden, in der Sprache der aktuellen Locale-Einstellung (LC_MESSAGES).

Parameter-Liste

error_code

Ein gültiger Fehlercode eines Socket-Fehlers, ähnlich der Funktion socket_last_error().

Rückgabewerte

Zurückgegeben wird die Fehlermeldung, die dem Fehlercode error_code entspricht.

Beispiele

Beispiel #1 socket_strerror()-Beispiel

<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
   echo "socket_create() fehlgeschlagen. Grund: " . socket_strerror(socket_last_error()) . "\n";
}

if (false == (@socket_bind($socket, '127.0.0.1', 80))) {
   echo "socket_bind() fehlgeschlagen. Grund: " . socket_strerror(socket_last_error($socket)) . "\n";
}
?>

Die erwartete Ausgabe des obigen Beispiels (vorausgesetzt, das Skript wird nicht mit root-Rechten ausgeführt):

socket_bind() fehlgeschlagen. Grund: Permission denied

Siehe auch

  • socket_accept() - Akzeptiert eine Verbindung an einem Socket
  • socket_bind() - Verknüpft einen Socket mit einem Namen
  • socket_connect() - Baut eine Verbindung über einen Socket auf
  • socket_listen() - Hört einen Socket nach Verbindungsanforderungen ab
  • socket_create() - Erzeugt einen Socket (Endpunkt für die Kommunikation)


Schreibt in einen Socket

  • « socket_strerror
  • socket_wsaprotocol_info_export »
  • PHP Manual
  • Socket-Funktionen
  • Schreibt in einen Socket

socket_write

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_write — Schreibt in einen Socket

Beschreibung

socket_write ( Socket $socket , string $data , int|null $length = null ) : int|false

Die Funktion socket_write() schreibt aus dem Puffer data in den Socket socket.

Parameter-Liste

socket

data

Der Puffer, dessen Inhalt geschrieben werden soll.

length

Mit dem optionalen Parameter length kann man alternativ eine Anzahl von Bytes angeben, die in den Socket geschrieben werden sollen. Falls diese Anzahl größer ist, als der Puffer, wird sie stillschweigend auf die Puffergröße gekürzt.

Rückgabewerte

Gibt die Anzahl der erfolgreich in den Socket geschriebenen Bytes zurück. Im Fehlerfall wird false zurückgegeben.. Der Fehlercode kann mit der Funktion socket_last_error() ermittelt werden. Dieser Fehlercode kann an die Funktion socket_strerror() übergeben werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

Hinweis:

Es ist durchaus möglich, dass socket_write() den Wert 0 zurckgibt, was bedeutet, dass kein einziges Byte geschrieben wurde. Vergewissern Sie sich, dass Sie den Operator === benutzen, um im Falle eines Fehlers auf false zu testen.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.
8.0.0 | length ist nun ein Nullable-Typ.

Anmerkungen

Hinweis:

socket_write() schreibt nicht notwendigerweise alle Bytes aus dem angegebenen Puffer. Es ist auch möglich, dass, abhängig von den Puffern im Netzwerk usw., nur eine bestimmte Datenmenge, sogar auch nur ein Byte, geschrieben wird, obwohl der Puffer größer ist. Dies müssen Sie beobachten, damit Sie nicht versehentlich versäumen, den Rest Ihrer Daten zu senden.

Siehe auch

  • socket_accept() - Akzeptiert eine Verbindung an einem Socket
  • socket_bind() - Verknüpft einen Socket mit einem Namen
  • socket_connect() - Baut eine Verbindung über einen Socket auf
  • socket_listen() - Hört einen Socket nach Verbindungsanforderungen ab
  • socket_read() - Liest höchstens die angegebene Anzahl Bytes von einem Socket
  • socket_strerror() - Gibt einen String zurück, der einen Socket-Fehler beschreibt


Exports the WSAPROTOCOL_INFO Structure

  • « socket_write
  • socket_wsaprotocol_info_import »
  • PHP Manual
  • Socket-Funktionen
  • Exports the WSAPROTOCOL_INFO Structure

socket_wsaprotocol_info_export

(PHP 7 >= 7.3.0, PHP 8)

socket_wsaprotocol_info_export — Exports the WSAPROTOCOL_INFO Structure

Beschreibung

socket_wsaprotocol_info_export ( Socket $socket , int $process_id ) : string|false

Exports the WSAPROTOCOL_INFO structure into shared memory and returns an identifier to be used with socket_wsaprotocol_info_import(). The exported ID is only valid for the given process_id.

Hinweis: This function is available only on Windows.

Parameter-Liste

socket

A Socket instance.

process_id

The ID of the process which will import the socket.

Rückgabewerte

Returns an identifier to be used for the import, Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | socket ist nun eine Socket-Instanz; vorher war es eine resource.

Siehe auch

  • socket_wsaprotocol_info_import() - Imports a Socket from another Process
  • socket_wsaprotocol_info_release() - Releases an exported WSAPROTOCOL_INFO Structure


Imports a Socket from another Process

  • « socket_wsaprotocol_info_export
  • socket_wsaprotocol_info_release »
  • PHP Manual
  • Socket-Funktionen
  • Imports a Socket from another Process

socket_wsaprotocol_info_import

(PHP 7 >= 7.3.0, PHP 8)

socket_wsaprotocol_info_import — Imports a Socket from another Process

Beschreibung

socket_wsaprotocol_info_import ( string $info_id ) : Socket|false

Imports a socket which has formerly been exported from another process.

Hinweis: This function is available only on Windows.

Parameter-Liste

info_id

The ID which has been returned by a former call to socket_wsaprotocol_info_export().

Rückgabewerte

Returns a Socket instance on success, Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.

Siehe auch

  • socket_wsaprotocol_info_export() - Exports the WSAPROTOCOL_INFO Structure


Releases an exported WSAPROTOCOL_INFO Structure

  • « socket_wsaprotocol_info_import
  • Socket »
  • PHP Manual
  • Socket-Funktionen
  • Releases an exported WSAPROTOCOL_INFO Structure

socket_wsaprotocol_info_release

(PHP 7 >= 7.3.0, PHP 8)

socket_wsaprotocol_info_release — Releases an exported WSAPROTOCOL_INFO Structure

Beschreibung

socket_wsaprotocol_info_release ( string $info_id ) : bool

Releases the shared memory corresponding to the given info_id.

Hinweis: This function is available only on Windows.

Parameter-Liste

info_id

The ID which has been returned by a former call to socket_wsaprotocol_info_export().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • socket_wsaprotocol_info_export() - Exports the WSAPROTOCOL_INFO Structure


The Socket class

(PHP 8)

Einführung

A fully opaque class which replaces Socket resources as of PHP 8.0.0.

Klassenbeschreibung

final Socket {
}


The AddressInfo class

(PHP 8)

Einführung

A fully opaque class which replaces AddressInfo resources as of PHP 8.0.0.

Klassenbeschreibung

final AddressInfo {
}


Secure Shell2

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • SSH2 Funktionen
    • ssh2_auth_agent — Authenticate over SSH using the ssh agent
    • ssh2_auth_hostbased_file — Authenticate using a public hostkey
    • ssh2_auth_none — Authenticate as "none"
    • ssh2_auth_password — Authenticate over SSH using a plain password
    • ssh2_auth_pubkey_file — Authenticate using a public key
    • ssh2_connect — Connect to an SSH server
    • ssh2_disconnect — Close a connection to a remote SSH server
    • ssh2_exec — Execute a command on a remote server
    • ssh2_fetch_stream — Fetch an extended data stream
    • ssh2_fingerprint — Retrieve fingerprint of remote server
    • ssh2_forward_accept — Accept a connection created by a listener
    • ssh2_forward_listen — Bind a port on the remote server and listen for connections
    • ssh2_methods_negotiated — Return list of negotiated methods
    • ssh2_poll — Poll the channels/listeners/streams for events
    • ssh2_publickey_add — Add an authorized publickey
    • ssh2_publickey_init — Initialize Publickey subsystem
    • ssh2_publickey_list — List currently authorized publickeys
    • ssh2_publickey_remove — Remove an authorized publickey
    • ssh2_scp_recv — Request a file via SCP
    • ssh2_scp_send — Send a file via SCP
    • ssh2_sftp_chmod — Changes file mode
    • ssh2_sftp_lstat — Stat a symbolic link
    • ssh2_sftp_mkdir — Create a directory
    • ssh2_sftp_readlink — Return the target of a symbolic link
    • ssh2_sftp_realpath — Resolve the realpath of a provided path string
    • ssh2_sftp_rename — Rename a remote file
    • ssh2_sftp_rmdir — Remove a directory
    • ssh2_sftp_stat — Stat a file on a remote filesystem
    • ssh2_sftp_symlink — Create a symlink
    • ssh2_sftp_unlink — Delete a file
    • ssh2_sftp — Initialize SFTP subsystem
    • ssh2_shell — Request an interactive shell
    • ssh2_tunnel — Open a tunnel through a remote server


Einführung

Bindungen zur » libssh2 Bibliothek, die, unter Verwendung eines sicheren kryptografischen Transports, Zugriff auf Ressourcen (Shell, Remote-Ausführung, Tunneling, Dateiübertragung) auf einem entfernten Gerät bereitstellt.


Anforderungen

The » OpenSSL and » libssh2 libraries are required. Ensure that the development libraries are installed, where a typical package name might be openssl-dev.

Version 1.2 or newer of the libssh2 library is required, although it's possible newer releases of pecl/ssh2 may require newer versions (see the release notes).

The ssh2_auth_agent() function will only be available with libssh >= 1.2.3.

support for stream_set_timeout() to channel streams will only be available with libssh >= 1.2.9.

Libssh2 comes in two flavours: gcrypt or openssl. Some linux distributions build libssh2 with the gcrypt library, some use openssl. Libssh2 has some issues when compiled with gcrypt, please use openssl.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/ssh2.

Windows binaries (DLL files) for this PECL extension are available from the PECL website.


Ressource-Typen

This extension defines the following resource types:

  • SSH2 Session
  • SSH2 Listener
  • SSH2 SFTP
  • SSH2 Publickey Subsystem (as of ssh2 0.10)


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SSH2_FINGERPRINT_MD5 (int)
Flag to ssh2_fingerprint() requesting hostkey fingerprint as an MD5 hash.
SSH2_FINGERPRINT_SHA1 (int)
Flag to ssh2_fingerprint() requesting hostkey fingerprint as an SHA1 hash.
SSH2_FINGERPRINT_HEX (int)
Flag to ssh2_fingerprint() requesting hostkey fingerprint as a string of hexits.
SSH2_FINGERPRINT_RAW (int)
Flag to ssh2_fingerprint() requesting hostkey fingerprint as a raw string of 8-bit characters.
SSH2_TERM_UNIT_CHARS (int)
Flag to ssh2_shell() specifying that width and height are provided as character sizes.
SSH2_TERM_UNIT_PIXELS (int)
Flag to ssh2_shell() specifying that width and height are provided in pixel units.
SSH2_DEFAULT_TERM_WIDTH (int)
Default terminal width requested by ssh2_shell().
SSH2_DEFAULT_TERM_HEIGHT (int)
Default terminal height requested by ssh2_shell().
SSH2_DEFAULT_TERM_UNIT (int)
Default terminal units requested by ssh2_shell().
SSH2_STREAM_STDIO (int)
Flag to ssh2_fetch_stream() requesting STDIO subchannel.
SSH2_STREAM_STDERR (int)
Flag to ssh2_fetch_stream() requesting STDERR subchannel.
SSH2_DEFAULT_TERMINAL (string)
Default terminal type (e.g. vt102, ansi, xterm, vanilla) requested by ssh2_shell().
SSH2_POLLIN (int)
SSH2_POLLEXT (int)
SSH2_POLLOUT (int)
SSH2_POLLERR (int)
SSH2_POLLHUP (int)
SSH2_POLLNVAL (int)
SSH2_POLL_SESSION_CLOSED (int)
SSH2_POLL_CHANNEL_CLOSED (int)
SSH2_POLL_LISTENER_CLOSED (int)


SSH2 Funktionen

Inhaltsverzeichnis

  • ssh2_auth_agent — Authenticate over SSH using the ssh agent
  • ssh2_auth_hostbased_file — Authenticate using a public hostkey
  • ssh2_auth_none — Authenticate as "none"
  • ssh2_auth_password — Authenticate over SSH using a plain password
  • ssh2_auth_pubkey_file — Authenticate using a public key
  • ssh2_connect — Connect to an SSH server
  • ssh2_disconnect — Close a connection to a remote SSH server
  • ssh2_exec — Execute a command on a remote server
  • ssh2_fetch_stream — Fetch an extended data stream
  • ssh2_fingerprint — Retrieve fingerprint of remote server
  • ssh2_forward_accept — Accept a connection created by a listener
  • ssh2_forward_listen — Bind a port on the remote server and listen for connections
  • ssh2_methods_negotiated — Return list of negotiated methods
  • ssh2_poll — Poll the channels/listeners/streams for events
  • ssh2_publickey_add — Add an authorized publickey
  • ssh2_publickey_init — Initialize Publickey subsystem
  • ssh2_publickey_list — List currently authorized publickeys
  • ssh2_publickey_remove — Remove an authorized publickey
  • ssh2_scp_recv — Request a file via SCP
  • ssh2_scp_send — Send a file via SCP
  • ssh2_sftp_chmod — Changes file mode
  • ssh2_sftp_lstat — Stat a symbolic link
  • ssh2_sftp_mkdir — Create a directory
  • ssh2_sftp_readlink — Return the target of a symbolic link
  • ssh2_sftp_realpath — Resolve the realpath of a provided path string
  • ssh2_sftp_rename — Rename a remote file
  • ssh2_sftp_rmdir — Remove a directory
  • ssh2_sftp_stat — Stat a file on a remote filesystem
  • ssh2_sftp_symlink — Create a symlink
  • ssh2_sftp_unlink — Delete a file
  • ssh2_sftp — Initialize SFTP subsystem
  • ssh2_shell — Request an interactive shell
  • ssh2_tunnel — Open a tunnel through a remote server


Authenticate over SSH using the ssh agent

  • « SSH2 Funktionen
  • ssh2_auth_hostbased_file »
  • PHP Manual
  • SSH2 Funktionen
  • Authenticate over SSH using the ssh agent

ssh2_auth_agent

(PECL ssh2 >= 0.12)

ssh2_auth_agent — Authenticate over SSH using the ssh agent

Beschreibung

ssh2_auth_agent ( resource $session , string $username ) : bool

Authenticate over SSH using the ssh agent

Hinweis: The ssh2_auth_agent() function will only be available when the ssh2 extension is compiled with libssh >= 1.2.3.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

Remote user name.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Authenticating with a ssh agent

<?php
$connection = ssh2_connect('shell.example.com', 22);

if (ssh2_auth_agent($connection, 'username')) {
  echo "Authentication Successful!\n";
} else {
  die('Authentication Failed...');
}
?>


Authenticate using a public hostkey

  • « ssh2_auth_agent
  • ssh2_auth_none »
  • PHP Manual
  • SSH2 Funktionen
  • Authenticate using a public hostkey

ssh2_auth_hostbased_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_hostbased_file — Authenticate using a public hostkey

Beschreibung

ssh2_auth_hostbased_file ( resource $session , string $username , string $hostname , string $pubkeyfile , string $privkeyfile , string $passphrase = ? , string $local_username = ? ) : bool

Authenticate using a public hostkey read from a file.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

hostname

pubkeyfile

privkeyfile

passphrase

If privkeyfile is encrypted (which it should be), the passphrase must be provided.

local_username

If local_username is omitted, then the value for username will be used for it.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Authentication using a public hostkey

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_hostbased_file($connection, 'remoteusername', 'myhost.example.com',
                             '/usr/local/etc/hostkey_rsa.pub',
                             '/usr/local/etc/hostkey_rsa', 'secret',
                             'localusername')) {
  echo "Public Key Hostbased Authentication Successful\n";
} else {
  die('Public Key Hostbased Authentication Failed');
}
?>

Anmerkungen

Hinweis:

ssh2_auth_hostbased_file() requires libssh2 >= 0.7 and PHP/SSH2 >= 0.7


Authenticate as "none"

  • « ssh2_auth_hostbased_file
  • ssh2_auth_password »
  • PHP Manual
  • SSH2 Funktionen
  • Authenticate as "none"

ssh2_auth_none

(PECL ssh2 >= 0.9.0)

ssh2_auth_none — Authenticate as "none"

Beschreibung

ssh2_auth_none ( resource $session , string $username ) : mixed

Attempt "none" authentication which usually will (and should) fail. As part of the failure, this function will return an array of accepted authentication methods.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

Remote user name.

Rückgabewerte

Returns true if the server does accept "none" as an authentication method, or an array of accepted authentication methods on failure.

Beispiele

Beispiel #1 Retrieving a list of authentication methods

<?php
$connection = ssh2_connect('shell.example.com', 22);

$auth_methods = ssh2_auth_none($connection, 'user');

if (in_array('password', $auth_methods)) {
  echo "Server supports password based authentication\n";
}
?>


Authenticate over SSH using a plain password

  • « ssh2_auth_none
  • ssh2_auth_pubkey_file »
  • PHP Manual
  • SSH2 Funktionen
  • Authenticate over SSH using a plain password

ssh2_auth_password

(PECL ssh2 >= 0.9.0)

ssh2_auth_password — Authenticate over SSH using a plain password

Beschreibung

ssh2_auth_password ( resource $session , string $username , string $password ) : bool

Authenticate over SSH using a plain password. Since version 0.12 this function also supports keyboard_interactive method.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

Remote user name.

password

Password for username

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Authenticating with a password

<?php
$connection = ssh2_connect('shell.example.com', 22);

if (ssh2_auth_password($connection, 'username', 'secret')) {
  echo "Authentication Successful!\n";
} else {
  die('Authentication Failed...');
}
?>


Authenticate using a public key

  • « ssh2_auth_password
  • ssh2_connect »
  • PHP Manual
  • SSH2 Funktionen
  • Authenticate using a public key

ssh2_auth_pubkey_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_pubkey_file — Authenticate using a public key

Beschreibung

ssh2_auth_pubkey_file ( resource $session , string $username , string $pubkeyfile , string $privkeyfile , string $passphrase = ? ) : bool

Authenticate using a public key read from a file.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

username

pubkeyfile

The public key file needs to be in OpenSSH's format. It should look something like:

ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110

privkeyfile

passphrase

If privkeyfile is encrypted (which it should be), the passphrase must be provided.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Authentication using a public key

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_pubkey_file($connection, 'username',
                          '/home/username/.ssh/id_rsa.pub',
                          '/home/username/.ssh/id_rsa', 'secret')) {
  echo "Public Key Authentication Successful\n";
} else {
  die('Public Key Authentication Failed');
}
?>

Anmerkungen

Hinweis:

The underlying libssh library doesn't support partial auths very cleanly That is, if you need to supply both a public key and a password it will appear as if this function has failed. In this particular case a failure from this call may just mean that auth hasn't been completed yet. You would need to ignore this failure and continue on and call ssh2_auth_password() in order to complete authentication.


Connect to an SSH server

  • « ssh2_auth_pubkey_file
  • ssh2_disconnect »
  • PHP Manual
  • SSH2 Funktionen
  • Connect to an SSH server

ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connect — Connect to an SSH server

Beschreibung

ssh2_connect ( string $host , int $port = 22 , array $methods = ? , array $callbacks = ? ) : resource

Establish a connection to a remote SSH server.

Once connected, the client should verify the server's hostkey using ssh2_fingerprint(), then authenticate using either password or public key.

Parameter-Liste

host

port

methods

methods may be an associative array with up to four parameters as described below.

methods may be an associative array with any or all of the following parameters.
Index | Meaning | Supported Values*
kex | List of key exchange methods to advertise, comma separated in order of preference. | diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, and diffie-hellman-group-exchange-sha1
hostkey | List of hostkey methods to advertise, comma separated in order of preference. | ssh-rsa and ssh-dss
client_to_server | Associative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from client to server.
server_to_client | Associative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from server to client.

* - Supported Values are dependent on methods supported by underlying library. See » libssh2 documentation for additional information.

client_to_server and server_to_client may be an associative array with any or all of the following parameters.
Index | Meaning | Supported Values*
crypt | List of crypto methods to advertise, comma separated in order of preference. | rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, and none**
comp | List of compression methods to advertise, comma separated in order of preference. | zlib and none
mac | List of MAC methods to advertise, comma separated in order of preference. | hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, and none**

Hinweis: Crypt and MAC method "none"

For security reasons, none is disabled by the underlying » libssh2 library unless explicitly enabled during build time by using the appropriate ./configure options. See documentation for the underlying library for more information.

callbacks

callbacks may be an associative array with any or all of the following parameters.

Callbacks parameters
Index | Meaning | Prototype
ignore | Name of function to call when an SSH2_MSG_IGNORE packet is received | void ignore_cb($message)
debug | Name of function to call when an SSH2_MSG_DEBUG packet is received | void debug_cb($message, $language, $always_display)
macerror | Name of function to call when a packet is received but the message authentication code failed. If the callback returns true, the mismatch will be ignored, otherwise the connection will be terminated. | bool macerror_cb($packet)
disconnect | Name of function to call when an SSH2_MSG_DISCONNECT packet is received | void disconnect_cb($reason, $message, $language)

Rückgabewerte

Returns a resource on success, or false on error.

Beispiele

Beispiel #1 ssh2_connect() example

Open a connection forcing 3des-cbc when sending packets, any strength aes cipher when receiving packets, no compression in either direction, and Group1 key exchange.

<?php
/* Notify the user if the server terminates the connection */
function my_ssh_disconnect($reason, $message, $language) {
  printf("Server disconnected with reason code [%d] and message: %s\n",
         $reason, $message);
}

$methods = array(
  'kex' => 'diffie-hellman-group1-sha1',
  'client_to_server' => array(
    'crypt' => '3des-cbc',
    'comp' => 'none'),
  'server_to_client' => array(
    'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
    'comp' => 'none'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection = ssh2_connect('shell.example.com', 22, $methods, $callbacks);
if (!$connection) die('Connection failed');
?>

Siehe auch

  • ssh2_fingerprint() - Retrieve fingerprint of remote server
  • ssh2_auth_none() - Authenticate as "none"
  • ssh2_auth_password() - Authenticate over SSH using a plain password
  • ssh2_auth_pubkey_file() - Authenticate using a public key
  • ssh2_disconnect() - Close a connection to a remote SSH server


Close a connection to a remote SSH server

  • « ssh2_connect
  • ssh2_exec »
  • PHP Manual
  • SSH2 Funktionen
  • Close a connection to a remote SSH server

ssh2_disconnect

(PECL ssh2 >= 1.0)

ssh2_disconnect — Close a connection to a remote SSH server

Beschreibung

ssh2_disconnect ( resource $session ) : bool

Close a connection to a remote SSH server.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ssh2_connect() - Connect to an SSH server


Execute a command on a remote server

  • « ssh2_disconnect
  • ssh2_fetch_stream »
  • PHP Manual
  • SSH2 Funktionen
  • Execute a command on a remote server

ssh2_exec

(PECL ssh2 >= 0.9.0)

ssh2_exec — Execute a command on a remote server

Beschreibung

ssh2_exec ( resource $session , string $command , string $pty = ? , array $env = ? , int $width = 80 , int $height = 25 , int $width_height_type = SSH2_TERM_UNIT_CHARS ) : resource|false

Execute a command at the remote end and allocate a channel for it.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

command

pty

env

env may be passed as an associative array of name/value pairs to set in the target environment.

width

Width of the virtual terminal.

height

Height of the virtual terminal.

width_height_type

width_height_type should be one of SSH2_TERM_UNIT_CHARS or SSH2_TERM_UNIT_PIXELS.

Rückgabewerte

Returns a stream on successIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Executing a command

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_exec($connection, '/usr/local/bin/php -i');
?>

Siehe auch

  • ssh2_connect() - Connect to an SSH server
  • ssh2_shell() - Request an interactive shell
  • ssh2_tunnel() - Open a tunnel through a remote server


Fetch an extended data stream

  • « ssh2_exec
  • ssh2_fingerprint »
  • PHP Manual
  • SSH2 Funktionen
  • Fetch an extended data stream

ssh2_fetch_stream

(PECL ssh2 >= 0.9.0)

ssh2_fetch_stream — Fetch an extended data stream

Beschreibung

ssh2_fetch_stream ( resource $channel , int $streamid ) : resource

Fetches an alternate substream associated with an SSH2 channel stream. The SSH2 protocol currently defines only one substream, STDERR, which has a substream ID of SSH2_STREAM_STDERR (defined as 1).

Parameter-Liste

channel

streamid

An SSH2 channel stream.

Rückgabewerte

Returns the requested stream resource.

Beispiele

Beispiel #1 Opening a shell and retrieving the stderr stream associated with it

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stdio_stream = ssh2_shell($connection);
$stderr_stream = ssh2_fetch_stream($stdio_stream, SSH2_STREAM_STDERR);
?>

Siehe auch

  • ssh2_shell() - Request an interactive shell
  • ssh2_exec() - Execute a command on a remote server
  • ssh2_connect() - Connect to an SSH server


Retrieve fingerprint of remote server

  • « ssh2_fetch_stream
  • ssh2_forward_accept »
  • PHP Manual
  • SSH2 Funktionen
  • Retrieve fingerprint of remote server

ssh2_fingerprint

(PECL ssh2 >= 0.9.0)

ssh2_fingerprint — Retrieve fingerprint of remote server

Beschreibung

ssh2_fingerprint ( resource $session , int $flags = SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX ) : string

Returns a server hostkey hash from an active session.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

flags

flags may be either of SSH2_FINGERPRINT_MD5 or SSH2_FINGERPRINT_SHA1 logically ORed with SSH2_FINGERPRINT_HEX or SSH2_FINGERPRINT_RAW.

Rückgabewerte

Returns the hostkey hash as a string.

Beispiele

Beispiel #1 Checking the fingerprint against a known value

<?php
$known_host = '6F89C2F0A719B30CC38ABDF90755F2E4';

$connection = ssh2_connect('shell.example.com', 22);

$fingerprint = ssh2_fingerprint($connection,
               SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX);

if ($fingerprint != $known_host) {
  die("HOSTKEY MISMATCH!\n" .
      "Possible Man-In-The-Middle Attack?");
}
?>


Accept a connection created by a listener

  • « ssh2_fingerprint
  • ssh2_forward_listen »
  • PHP Manual
  • SSH2 Funktionen
  • Accept a connection created by a listener

ssh2_forward_accept

(PECL ssh2 >= 0.9.0)

ssh2_forward_accept — Accept a connection created by a listener

Beschreibung

ssh2_forward_accept ( resource $listener ) : resource|false

Accepts a connection created by a listener.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

desc

An SSH2 Listener resource, obtained from a call to ssh2_forward_listen().

Rückgabewerte

Returns a stream resource, Im Fehlerfall wird false zurückgegeben..


Bind a port on the remote server and listen for connections

  • « ssh2_forward_accept
  • ssh2_methods_negotiated »
  • PHP Manual
  • SSH2 Funktionen
  • Bind a port on the remote server and listen for connections

ssh2_forward_listen

(PECL ssh2 >= 0.9.0)

ssh2_forward_listen — Bind a port on the remote server and listen for connections

Beschreibung

ssh2_forward_listen ( resource $session , int $port , string $host = ? , int $max_connections = 16 ) : resource|false

Binds a port on the remote server and listen for connections.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

session

An SSH Session resource, obtained from a call to ssh2_connect().

port

The port of the remote server.

host

max_connections

Rückgabewerte

Returns an SSH2 Listener, Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • ssh2_forward_accept() - Accept a connection created by a listener


Return list of negotiated methods

  • « ssh2_forward_listen
  • ssh2_poll »
  • PHP Manual
  • SSH2 Funktionen
  • Return list of negotiated methods

ssh2_methods_negotiated

(PECL ssh2 >= 0.9.0)

ssh2_methods_negotiated — Return list of negotiated methods

Beschreibung

ssh2_methods_negotiated ( resource $session ) : array

Returns list of negotiated methods.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

Rückgabewerte

Beispiele

Beispiel #1 Determining what methods were negotiated

<?php
$connection = ssh2_connect('shell.example.com', 22);
$methods = ssh2_methods_negotiated($connection);

echo "Encryption keys were negotiated using: {$methods['kex']}\n";
echo "Server identified using an {$methods['hostkey']} with ";
echo "fingerprint: " . ssh2_fingerprint($connection) . "\n";

echo "Client to Server packets will use methods:\n";
echo "\tCrypt: {$methods['client_to_server']['crypt']}\n";
echo "\tComp: {$methods['client_to_server']['comp']}\n";
echo "\tMAC: {$methods['client_to_server']['mac']}\n";

echo "Server to Client packets will use methods:\n";
echo "\tCrypt: {$methods['server_to_client']['crypt']}\n";
echo "\tComp: {$methods['server_to_client']['comp']}\n";
echo "\tMAC: {$methods['server_to_client']['mac']}\n";

?>

Siehe auch

  • ssh2_connect() - Connect to an SSH server


Poll the channels/listeners/streams for events

  • « ssh2_methods_negotiated
  • ssh2_publickey_add »
  • PHP Manual
  • SSH2 Funktionen
  • Poll the channels/listeners/streams for events

ssh2_poll

(PECL ssh2 >= 0.9.0)

ssh2_poll — Poll the channels/listeners/streams for events

Beschreibung

ssh2_poll ( array &$desc , int $timeout = 30 ) : int

Polls the channels/listeners/streams for events, and returns the number of descriptors which returned non-zero revents.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

desc

An indexed array of subarrays with the keys 'resource' and 'events'. The value of the resource is a (channel) stream or an SSH2 Listener resource. The value of the event are SSH2_POLL* flags bitwise ORed together. Each subarray will be populated with an 'revents' element on return, whose values are SSH2_POLL* flags bitwise ORed together of the events that occurred.

timeout

The timeout in seconds.

Rückgabewerte

Returns the number of descriptors which returned non-zero revents.


Add an authorized publickey

  • « ssh2_poll
  • ssh2_publickey_init »
  • PHP Manual
  • SSH2 Funktionen
  • Add an authorized publickey

ssh2_publickey_add

(PECL ssh2 >= 0.10)

ssh2_publickey_add — Add an authorized publickey

Beschreibung

ssh2_publickey_add ( resource $pkey , string $algoname , string $blob , bool $overwrite = false , array $attributes = ? ) : bool

Hinweis: Das Publickey-Subsystem wird benötigt, um öffentliche Schlüssel auf einem Server zu verwalten, für welche der Client bereits authentifiziert ist. Sie können sich gegenüber einem anderen System mit Publickey-Authentifizierung authentifizieren, indem Sie die ssh2_auth_pubkey_file() nutzen.

Parameter-Liste

pkey

Publickey Subsystem resource created by ssh2_publickey_init().

algoname

Publickey algorithm (e.g.): ssh-dss, ssh-rsa

blob

Publickey blob as raw binary data

overwrite

If the specified key already exists, should it be overwritten?

attributes

Associative array of attributes to assign to this public key. Refer to ietf-secsh-publickey-subsystem for a list of supported attributes. To mark an attribute as mandatory, precede its name with an asterisk. If the server is unable to support an attribute marked mandatory, it will abort the add process.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Adding a publickey with ssh2_publickey_add()

<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'password');
$pkey = ssh2_publickey_init($ssh2);

$keyblob = base64_decode('
AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5PTrLRdjNONxXH1tVFGn0
Bd26BF0aCP9qyJRlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xj
zaLpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VEHYckxQ16CjSTibI5X
69GmnYC9PNqEYq/1TP+HF10=');

ssh2_publickey_add($pkey, 'ssh-rsa', $keyblob, false, array('comment'=>"John's Key"));
?>

Siehe auch

  • ssh2_publickey_init() - Initialize Publickey subsystem
  • ssh2_publickey_remove() - Remove an authorized publickey
  • ssh2_publickey_list() - List currently authorized publickeys


Initialize Publickey subsystem

  • « ssh2_publickey_add
  • ssh2_publickey_list »
  • PHP Manual
  • SSH2 Funktionen
  • Initialize Publickey subsystem

ssh2_publickey_init

(PECL ssh2 >= 0.10)

ssh2_publickey_init — Initialize Publickey subsystem

Beschreibung

ssh2_publickey_init ( resource $session ) : resource|false

Request the Publickey subsystem from an already connected SSH2 server.

The publickey subsystem allows an already connected and authenticated client to manage the list of authorized public keys stored on the target server in an implementation agnostic manner. If the remote server does not support the publickey subsystem, the ssh2_publickey_init() function will return false.

Parameter-Liste

session

Rückgabewerte

Returns an SSH2 Publickey Subsystem resource for use with all other ssh2_publickey_*() methodsIm Fehlerfall wird false zurückgegeben..

Anmerkungen

Hinweis: Das Publickey-Subsystem wird benötigt, um öffentliche Schlüssel auf einem Server zu verwalten, für welche der Client bereits authentifiziert ist. Sie können sich gegenüber einem anderen System mit Publickey-Authentifizierung authentifizieren, indem Sie die ssh2_auth_pubkey_file() nutzen.

Siehe auch

  • ssh2_publickey_add() - Add an authorized publickey
  • ssh2_publickey_remove() - Remove an authorized publickey
  • ssh2_publickey_list() - List currently authorized publickeys


List currently authorized publickeys

  • « ssh2_publickey_init
  • ssh2_publickey_remove »
  • PHP Manual
  • SSH2 Funktionen
  • List currently authorized publickeys

ssh2_publickey_list

(PECL ssh2 >= 0.10)

ssh2_publickey_list — List currently authorized publickeys

Beschreibung

ssh2_publickey_list ( resource $pkey ) : array

List currently authorized publickeys.

Parameter-Liste

pkey

Publickey Subsystem resource

Rückgabewerte

Returns a numerically indexed array of keys, each of which is an associative array containing: name, blob, and attrs elements.

Publickey elements
Array Key | Meaning
name | Name of algorithm used by this publickey, for example: ssh-dss or ssh-rsa.
blob | Publickey blob as raw binary data.
attrs | Attributes assigned to this publickey. The most common attribute, and the only one supported by publickey version 1 servers, is comment, which may be any freeform string.

Beispiele

Beispiel #1 Listing authorized keys with ssh2_publickey_list()

<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'secret');
$pkey = ssh2_publickey_init($ssh2);

$list = ssh2_publickey_list($pkey);

foreach($list as $key) {
  echo "Key: {$key['name']}\n";
  echo "Blob: " . chunk_split(base64_encode($key['blob']), 40, "\n") . "\n";
  echo "Comment: {$key['attrs']['comment']}\n\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Key: ssh-rsa
Blob: AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5P
TrLRdjNONxXH1tVFGn0Bd26BF0aCP9qyJRlvdJ3j
4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xjza
Lpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VE
HYckxQ16CjSTibI5X69GmnYC9PNqEYq/1TP+HF10
Comment: John's Key

Key: ssh-rsa
Blob: AAAAB3NzaHVt6VqSGd5C1yc2EAAAABIwA232dnJA
AIEA5HVt6VqSGd5PTrLRdjNONxX/1TP+HF1HVt6V
qSGd50H1tVFGn0BB3NzaC1yc2EAd26BF0aCP9qyJ
RlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26HVt6Vq
SGd5sDHwfL351xjzaLpipu\BGB3NzaC1yc2EA/1T
Comment: Alice's Key

Anmerkungen

Hinweis: Das Publickey-Subsystem wird benötigt, um öffentliche Schlüssel auf einem Server zu verwalten, für welche der Client bereits authentifiziert ist. Sie können sich gegenüber einem anderen System mit Publickey-Authentifizierung authentifizieren, indem Sie die ssh2_auth_pubkey_file() nutzen.

Siehe auch

  • ssh2_publickey_init() - Initialize Publickey subsystem
  • ssh2_publickey_add() - Add an authorized publickey
  • ssh2_publickey_remove() - Remove an authorized publickey


Remove an authorized publickey

  • « ssh2_publickey_list
  • ssh2_scp_recv »
  • PHP Manual
  • SSH2 Funktionen
  • Remove an authorized publickey

ssh2_publickey_remove

(PECL ssh2 >= 0.10)

ssh2_publickey_remove — Remove an authorized publickey

Beschreibung

ssh2_publickey_remove ( resource $pkey , string $algoname , string $blob ) : bool

Removes an authorized publickey.

Parameter-Liste

pkey

Publickey Subsystem Resource

algoname

Publickey algorithm (e.g.): ssh-dss, ssh-rsa

blob

Publickey blob as raw binary data

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis: Das Publickey-Subsystem wird benötigt, um öffentliche Schlüssel auf einem Server zu verwalten, für welche der Client bereits authentifiziert ist. Sie können sich gegenüber einem anderen System mit Publickey-Authentifizierung authentifizieren, indem Sie die ssh2_auth_pubkey_file() nutzen.

Siehe auch

  • ssh2_publickey_init() - Initialize Publickey subsystem
  • ssh2_publickey_add() - Add an authorized publickey
  • ssh2_publickey_list() - List currently authorized publickeys


Request a file via SCP

  • « ssh2_publickey_remove
  • ssh2_scp_send »
  • PHP Manual
  • SSH2 Funktionen
  • Request a file via SCP

ssh2_scp_recv

(PECL ssh2 >= 0.9.0)

ssh2_scp_recv — Request a file via SCP

Beschreibung

ssh2_scp_recv ( resource $session , string $remote_file , string $local_file ) : bool

Copy a file from the remote server to the local filesystem using the SCP protocol.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

remote_file

Path to the remote file.

local_file

Path to the local file.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Downloading a file via SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_recv($connection, '/remote/filename', '/local/filename');
?>

Siehe auch

  • ssh2_scp_send() - Send a file via SCP
  • copy() - Kopiert eine Datei


Send a file via SCP

  • « ssh2_scp_recv
  • ssh2_sftp_chmod »
  • PHP Manual
  • SSH2 Funktionen
  • Send a file via SCP

ssh2_scp_send

(PECL ssh2 >= 0.9.0)

ssh2_scp_send — Send a file via SCP

Beschreibung

ssh2_scp_send ( resource $session , string $local_file , string $remote_file , int $create_mode = 0644 ) : bool

Copy a file from the local filesystem to the remote server using the SCP protocol.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

local_file

Path to the local file.

remote_file

Path to the remote file.

create_mode

The file will be created with the mode specified by create_mode.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Uploading a file via SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>

Siehe auch

  • ssh2_scp_recv() - Request a file via SCP
  • copy() - Kopiert eine Datei


Changes file mode

  • « ssh2_scp_send
  • ssh2_sftp_lstat »
  • PHP Manual
  • SSH2 Funktionen
  • Changes file mode

ssh2_sftp_chmod

(PECL ssh2 >= 0.12)

ssh2_sftp_chmod — Changes file mode

Beschreibung

ssh2_sftp_chmod ( resource $sftp , string $filename , int $mode ) : bool

Attempts to change the mode of the specified file to that given in mode.

Parameter-Liste

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

filename

Path to the file.

mode

Permissions on the file. See the chmod() for more details on this parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Changing the mode of a file on a remote server

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_chmod($sftp, '/somedir/somefile', 0755);
?>

Siehe auch

  • chmod() - Ändert die Zugriffsrechte einer Datei
  • ssh2_sftp() - Initialize SFTP subsystem
  • ssh2_connect() - Connect to an SSH server


Stat a symbolic link

  • « ssh2_sftp_chmod
  • ssh2_sftp_mkdir »
  • PHP Manual
  • SSH2 Funktionen
  • Stat a symbolic link

ssh2_sftp_lstat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_lstat — Stat a symbolic link

Beschreibung

ssh2_sftp_lstat ( resource $sftp , string $path ) : array

Stats a symbolic link on the remote filesystem without following the link.

This function is similar to using the lstat() function with the ssh2.sftp:// wrapper in PHP 5 and returns the same values.

Parameter-Liste

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

path

Path to the remote symbolic link.

Rückgabewerte

See the documentation for stat() for details on the values which may be returned.

Beispiele

Beispiel #1 Stating a symbolic link via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_lstat($sftp, '/path/to/symlink');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

Siehe auch

  • ssh2_sftp_stat() - Stat a file on a remote filesystem
  • lstat() - Sammelt Informationen über eine Datei oder einen symbolischen Link
  • stat() - Sammelt Informationen über eine Datei


Create a directory

  • « ssh2_sftp_lstat
  • ssh2_sftp_readlink »
  • PHP Manual
  • SSH2 Funktionen
  • Create a directory

ssh2_sftp_mkdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_mkdir — Create a directory

Beschreibung

ssh2_sftp_mkdir ( resource $sftp , string $dirname , int $mode = 0777 , bool $recursive = false ) : bool

Creates a directory on the remote file server with permissions set to mode.

This function is similar to using mkdir() with the ssh2.sftp:// wrapper.

Parameter-Liste

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

dirname

Path of the new directory.

mode

Permissions on the new directory. The actual mode is affected by the current umask.

recursive

If recursive is true any parent directories required for dirname will be automatically created as well.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Creating a directory on a remote server

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_mkdir($sftp, '/home/username/newdir');
/* Or:  mkdir("ssh2.sftp://$sftp/home/username/newdir"); */
?>

Siehe auch

  • mkdir() - Erstellt ein Verzeichnis
  • ssh2_sftp_rmdir() - Remove a directory


Return the target of a symbolic link

  • « ssh2_sftp_mkdir
  • ssh2_sftp_realpath »
  • PHP Manual
  • SSH2 Funktionen
  • Return the target of a symbolic link

ssh2_sftp_readlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_readlink — Return the target of a symbolic link

Beschreibung

ssh2_sftp_readlink ( resource $sftp , string $link ) : string

Returns the target of a symbolic link.

Parameter-Liste

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

link

Path of the symbolic link.

Rückgabewerte

Returns the target of the symbolic link.

Beispiele

Beispiel #1 Reading a symbolic link

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$target = ssh2_sftp_readlink($sftp, '/tmp/mysql.sock');
/* $target is now (e.g.): '/var/run/mysql.sock' */
?>

Siehe auch

  • readlink() - Liefert das Ziel eines symbolischen Links
  • ssh2_sftp_symlink() - Create a symlink


Resolve the realpath of a provided path string

  • « ssh2_sftp_readlink
  • ssh2_sftp_rename »
  • PHP Manual
  • SSH2 Funktionen
  • Resolve the realpath of a provided path string

ssh2_sftp_realpath

(PECL ssh2 >= 0.9.0)

ssh2_sftp_realpath — Resolve the realpath of a provided path string

Beschreibung

ssh2_sftp_realpath ( resource $sftp , string $filename ) : string

Translates filename into the effective real path on the remote filesystem.

Parameter-Liste

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

filename

Rückgabewerte

Returns the real path as a string.

Beispiele

Beispiel #1 Resolving a pathname

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$realpath = ssh2_sftp_realpath($sftp, '/home/username/../../../..//./usr/../etc/passwd');
/* $realpath is now: '/etc/passwd' */
?>

Siehe auch

  • realpath() - Löst einen Pfad in einen absoluten und eindeutigen auf
  • ssh2_sftp_symlink() - Create a symlink
  • ssh2_sftp_readlink() - Return the target of a symbolic link


Rename a remote file

  • « ssh2_sftp_realpath
  • ssh2_sftp_rmdir »
  • PHP Manual
  • SSH2 Funktionen
  • Rename a remote file

ssh2_sftp_rename

(PECL ssh2 >= 0.9.0)

ssh2_sftp_rename — Rename a remote file

Beschreibung

ssh2_sftp_rename ( resource $sftp , string $from , string $to ) : bool

Renames a file on the remote filesystem.

Parameter-Liste

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

from

The current file that is being renamed.

to

The new file name that replaces from.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Renaming a file via sftp

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rename($sftp, '/home/username/oldname', '/home/username/newname');
?>

Siehe auch

  • rename() - Benennt eine Datei oder ein Verzeichnis um


Remove a directory

  • « ssh2_sftp_rename
  • ssh2_sftp_stat »
  • PHP Manual
  • SSH2 Funktionen
  • Remove a directory

ssh2_sftp_rmdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_rmdir — Remove a directory

Beschreibung

ssh2_sftp_rmdir ( resource $sftp , string $dirname ) : bool

Removes a directory from the remote file server.

This function is similar to using rmdir() with the ssh2.sftp:// wrapper.

Parameter-Liste

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

dirname

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Removing a directory on a remote server

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rmdir($sftp, '/home/username/deltodel');
/* Or:  rmdir("ssh2.sftp://$sftp/home/username/dirtodel"); */
?>

Siehe auch

  • rmdir() - Löscht ein Verzeichnis
  • ssh2_sftp_mkdir() - Create a directory


Stat a file on a remote filesystem

  • « ssh2_sftp_rmdir
  • ssh2_sftp_symlink »
  • PHP Manual
  • SSH2 Funktionen
  • Stat a file on a remote filesystem

ssh2_sftp_stat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_stat — Stat a file on a remote filesystem

Beschreibung

ssh2_sftp_stat ( resource $sftp , string $path ) : array

Stats a file on the remote filesystem following any symbolic links.

This function is similar to using the stat() function with the ssh2.sftp:// wrapper in PHP 5 and returns the same values.

Parameter-Liste

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

path

Rückgabewerte

See the documentation for stat() for details on the values which may be returned.

Beispiele

Beispiel #1 Stating a file via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_stat($sftp, '/path/to/file');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

Siehe auch

  • ssh2_sftp_lstat() - Stat a symbolic link
  • lstat() - Sammelt Informationen über eine Datei oder einen symbolischen Link
  • stat() - Sammelt Informationen über eine Datei


Create a symlink

  • « ssh2_sftp_stat
  • ssh2_sftp_unlink »
  • PHP Manual
  • SSH2 Funktionen
  • Create a symlink

ssh2_sftp_symlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_symlink — Create a symlink

Beschreibung

ssh2_sftp_symlink ( resource $sftp , string $target , string $link ) : bool

Creates a symbolic link named link on the remote filesystem pointing to target.

Parameter-Liste

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

target

Target of the symbolic link.

link

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Creating a symbolic link

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_symlink($sftp, '/var/run/mysql.sock', '/tmp/mysql.sock');
?>

Siehe auch

  • ssh2_sftp_readlink() - Return the target of a symbolic link
  • symlink() - Erzeugt einen symbolischen Link


Delete a file

  • « ssh2_sftp_symlink
  • ssh2_sftp »
  • PHP Manual
  • SSH2 Funktionen
  • Delete a file

ssh2_sftp_unlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_unlink — Delete a file

Beschreibung

ssh2_sftp_unlink ( resource $sftp , string $filename ) : bool

Deletes a file on the remote filesystem.

Parameter-Liste

sftp

An SSH2 SFTP resource opened by ssh2_sftp().

filename

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Deleting a file

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_unlink($sftp, '/home/username/stale_file');
?>

Siehe auch

  • unlink() - Löscht eine Datei


Initialize SFTP subsystem

  • « ssh2_sftp_unlink
  • ssh2_shell »
  • PHP Manual
  • SSH2 Funktionen
  • Initialize SFTP subsystem

ssh2_sftp

(PECL ssh2 >= 0.9.0)

ssh2_sftp — Initialize SFTP subsystem

Beschreibung

ssh2_sftp ( resource $session ) : resource|false

Request the SFTP subsystem from an already connected SSH2 server.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

Rückgabewerte

This method returns an SSH2 SFTP resource for use with all other ssh2_sftp_*() methods and the ssh2.sftp:// fopen wrapper, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Opening a file via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);

$stream = fopen('ssh2.sftp://' . intval($sftp) . '/path/to/file', 'r');
?>

Siehe auch

  • ssh2_scp_recv() - Request a file via SCP
  • ssh2_scp_send() - Send a file via SCP


Request an interactive shell

  • « ssh2_sftp
  • ssh2_tunnel »
  • PHP Manual
  • SSH2 Funktionen
  • Request an interactive shell

ssh2_shell

(PECL ssh2 >= 0.9.0)

ssh2_shell — Request an interactive shell

Beschreibung

ssh2_shell ( resource $session , string $term_type = "vanilla" , array|null $env = null , int $width = 80 , int $height = 25 , int $width_height_type = SSH2_TERM_UNIT_CHARS ) : resource|false

Open a shell at the remote end and allocate a stream for it.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

term_type

term_type should correspond to one of the entries in the target system's /etc/termcap file.

env

env may be passed as an associative array of name/value pairs to set in the target environment.

width

Width of the virtual terminal.

height

Height of the virtual terminal.

width_height_type

width_height_type should be one of SSH2_TERM_UNIT_CHARS or SSH2_TERM_UNIT_PIXELS.

Rückgabewerte

Returns a stream Ressource on success, Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Requesting an interactive shell

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_shell($connection, 'vt102', null, 80, 24, SSH2_TERM_UNIT_CHARS);
?>

Siehe auch

  • ssh2_exec() - Execute a command on a remote server
  • ssh2_tunnel() - Open a tunnel through a remote server
  • ssh2_fetch_stream() - Fetch an extended data stream


Open a tunnel through a remote server

  • « ssh2_shell
  • Stomp »
  • PHP Manual
  • SSH2 Funktionen
  • Open a tunnel through a remote server

ssh2_tunnel

(PECL ssh2 >= 0.9.0)

ssh2_tunnel — Open a tunnel through a remote server

Beschreibung

ssh2_tunnel ( resource $session , string $host , int $port ) : resource

Open a socket stream to an arbitrary host/port by way of the currently connected SSH server.

Parameter-Liste

session

An SSH connection link identifier, obtained from a call to ssh2_connect().

host

port

Rückgabewerte

Beispiele

Beispiel #1 Opening a tunnel to an arbitrary host

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_pubkey_file($connection, 'username', 'id_dsa.pub', 'id_dsa');

$tunnel = ssh2_tunnel($connection, '10.0.0.101', 12345);
?>

Siehe auch

  • ssh2_connect() - Connect to an SSH server
  • fsockopen() - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her


Stomp Client

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Beispiele
  • Stomp Funktionen
    • stomp_connect_error — Returns a string description of the last connect error
    • stomp_version — Gets the current stomp extension version
  • Stomp — The Stomp class
    • Stomp::abort — Rolls back a transaction in progress
    • Stomp::ack — Acknowledges consumption of a message
    • Stomp::begin — Starts a transaction
    • Stomp::commit — Commits a transaction in progress
    • Stomp::__construct — Opens a connection
    • Stomp::__destruct — Closes stomp connection
    • Stomp::error — Gets the last stomp error
    • Stomp::getReadTimeout — Gets read timeout
    • Stomp::getSessionId — Gets the current stomp session ID
    • Stomp::hasFrame — Indicates whether or not there is a frame ready to read
    • Stomp::readFrame — Reads the next frame
    • Stomp::send — Sends a message
    • Stomp::setReadTimeout — Sets read timeout
    • Stomp::subscribe — Registers to listen to a given destination
    • Stomp::unsubscribe — Removes an existing subscription
  • StompFrame — The StompFrame class
    • StompFrame::__construct — Constructor
  • StompException — The StompException class
    • StompException::getDetails — Get exception details


Einführung

This extension allows php applications to communicate with any Stomp compliant Message Brokers through easy object oriented and procedural interfaces. » Stomp official site


Anforderungen

PECL/stomp requires PHP 5.2.2 or newer.

The » OpenSSL package >= 0.9.6 and the openssl extension may also be required to use stomp over SSL.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/stomp


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Stomp Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
stomp.default_broker | tcp://localhost:61613 | PHP_INI_ALL |
stomp.default_connection_timeout_sec | 2 | PHP_INI_ALL |
stomp.default_connection_timeout_usec | 0 | PHP_INI_ALL |
stomp.default_read_timeout_sec | 2 | PHP_INI_ALL |
stomp.default_read_timeout_usec | 0 | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

stomp.default_broker string

The default broker URI to use when connecting to the message broker if no other URI is specified.

stomp.default_connection_timeout_sec int

The seconds part of the default connection timeout.

stomp.default_connection_timeout_usec int

The microseconds part of the default connection timeout.

stomp.default_read_timeout_sec int

The seconds part of the default reading timeout.

stomp.default_read_timeout_usec int

The microseconds part of the default reading timeout.


Ressource-Typen

There is only one resource type used in the stomp extension - it's the link identifier for a stomp connection.


Beispiele

Beispiel #1 Objektorientierter Stil

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* connection */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

/* send a message to the queue 'foo' */
$stomp->send($queue, $msg);

/* subscribe to messages from the queue 'foo' */
$stomp->subscribe($queue);

/* read a frame */
$frame = $stomp->readFrame();

if ($frame->body === $msg) {
    var_dump($frame);

    /* acknowledge that the frame was received */
    $stomp->ack($frame);
}

/* close connection */
unset($stomp);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(StompFrame)#2 (3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["headers"]=>
  array(5) {
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:2:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257226805828"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
  ["body"]=>
  string(3) "bar"
}

Beispiel #2 Prozeduraler Stil

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

/* begin a transaction */
stomp_begin($link, 't1');

/* send a message to the queue 'foo' */
stomp_send($link, $queue, $msg, array('transaction' => 't1'));

/* commit a transaction */
stomp_commit($link, 't1');

/* subscribe to messages from the queue 'foo' */
stomp_subscribe($link, $queue);

/* read a frame */
$frame = stomp_read_frame($link);

if ($frame['body'] === $msg) {
    var_dump($frame);

    /* acknowledge that the frame was received */
    stomp_ack($link, $frame['headers']['message-id']);
}

/* close connection */
stomp_close($link);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["body"]=>
  string(3) "bar"
  ["headers"]=>
  array(6) {
    ["transaction"]=>
    string(2) "t1"
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:3:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257227037059"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
}


Stomp Funktionen

Inhaltsverzeichnis

  • stomp_connect_error — Returns a string description of the last connect error
  • stomp_version — Gets the current stomp extension version


Returns a string description of the last connect error

  • « Stomp Funktionen
  • stomp_version »
  • PHP Manual
  • Stomp Funktionen
  • Returns a string description of the last connect error

stomp_connect_error

(PECL stomp >= 0.3.0)

stomp_connect_error — Returns a string description of the last connect error

Beschreibung

stomp_connect_error ( ) : string

Returns a string description of the last connect error.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A string that describes the error, or null if no error occurred.

Beispiele

Beispiel #1 stomp_connect_error() example

<?php
$link = stomp_connect('http://localhost:61613');

if(!$link) {
    die('Connection failed: ' . stomp_connect_error());
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Connection failed: Invalid Broker URI scheme


Gets the current stomp extension version

  • « stomp_connect_error
  • Stomp »
  • PHP Manual
  • Stomp Funktionen
  • Gets the current stomp extension version

stomp_version

(PECL stomp >= 0.1.0)

stomp_version — Gets the current stomp extension version

Beschreibung

stomp_version ( ) : string

Returns a string containing the version of the current stomp extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

It returns the current stomp extension version

Beispiele

Beispiel #1 stomp_version() example

<?php

var_dump(stomp_version());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(5) "0.2.0"


The Stomp class

(PECL stomp >= 0.1.0)

Einführung

Represents a connection between PHP and a Stomp compliant Message Broker.

Klassenbeschreibung

Stomp {
/* Methoden */
public abort ( string $transaction_id , array $headers = ? ) : bool
public ack ( mixed $msg , array $headers = ? ) : bool
public begin ( string $transaction_id , array $headers = ? ) : bool
public commit ( string $transaction_id , array $headers = ? ) : bool
public __construct ( string $broker = ini_get("stomp.default_broker_uri") , string $username = ? , string $password = ? , array $headers = ? )
public __destruct ( ) : bool
public error ( ) : string
public getReadTimeout ( ) : array
public getSessionId ( ) : string|false
public hasFrame ( ) : bool
public readFrame ( string $class_name = "stompFrame" ) : stompframe
public send ( string $destination , mixed $msg , array $headers = ? ) : bool
public setReadTimeout ( int $seconds , int $microseconds = ? ) : void
public subscribe ( string $destination , array $headers = ? ) : bool
public unsubscribe ( string $destination , array $headers = ? ) : bool
}

Inhaltsverzeichnis

  • Stomp::abort — Rolls back a transaction in progress
  • Stomp::ack — Acknowledges consumption of a message
  • Stomp::begin — Starts a transaction
  • Stomp::commit — Commits a transaction in progress
  • Stomp::__construct — Opens a connection
  • Stomp::__destruct — Closes stomp connection
  • Stomp::error — Gets the last stomp error
  • Stomp::getReadTimeout — Gets read timeout
  • Stomp::getSessionId — Gets the current stomp session ID
  • Stomp::hasFrame — Indicates whether or not there is a frame ready to read
  • Stomp::readFrame — Reads the next frame
  • Stomp::send — Sends a message
  • Stomp::setReadTimeout — Sets read timeout
  • Stomp::subscribe — Registers to listen to a given destination
  • Stomp::unsubscribe — Removes an existing subscription


Rolls back a transaction in progress

  • « Stomp
  • Stomp::ack »
  • PHP Manual
  • Stomp
  • Rolls back a transaction in progress

Stomp::abort

stomp_abort

(PECL stomp >= 0.1.0)

Stomp::abort -- stomp_abort — Rolls back a transaction in progress

Beschreibung

Objektorientierter Stil (method):

public Stomp::abort ( string $transaction_id , array $headers = ? ) : bool

Prozeduraler Stil:

stomp_abort ( resource $link , string $transaction_id , array $headers = ? ) : bool

Rolls back a transaction in progress.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

transaction_id

The transaction to abort.

headers

Assoziatives Array, welches alle zusätzlichen Header beinhaltet (z.B: receipt).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Tipp

Eine grundlegende Eigenschaft von Stomp ist die Synchronität. Synchrone Kommunikation kann durch das Hinzufügen eines Empfangsheaders (receipt-Header) implementiert werden. Dies wird dazu führen, dass Methoden nicht zurückkehren, bis der Server den Empfang der Nachricht bestätigt hat oder der Lese-Timeout übershcritten wurde.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php

/* connection */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

/* begin a transaction */
$stomp->begin('t1');

/* send a message to the queue */
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1'));

/* rollback */
$stomp->abort('t1');

/* close connection */
unset($stomp);
?>

Beispiel #2 Prozeduraler Stil

<?php

/* connection */
$link = stomp_connect('tcp://localhost:61613');

/* check connection */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

/* begin a transaction */
stomp_begin($link, 't1');

/* send a message to the queue 'foo' */
stomp_send($link, '/queue/foo', 'bar', array('transaction' => 't1'));

/* rollback */
stomp_abort($link, 't1');

/* close connection */
stomp_close($link);

?>


Acknowledges consumption of a message

  • « Stomp::abort
  • Stomp::begin »
  • PHP Manual
  • Stomp
  • Acknowledges consumption of a message

Stomp::ack

stomp_ack

(PECL stomp >= 0.1.0)

Stomp::ack -- stomp_ack — Acknowledges consumption of a message

Beschreibung

Objektorientierter Stil (method):

public Stomp::ack ( mixed $msg , array $headers = ? ) : bool

Prozeduraler Stil:

stomp_ack ( resource $link , mixed $msg , array $headers = ? ) : bool

Acknowledges consumption of a message from a subscription using client acknowledgment.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

msg

The message/messageId to be acknowledged.

headers

Assoziatives Array, welches alle zusätzlichen Header beinhaltet (z.B: receipt).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

Ein Transaktionsheader kann angegeben werden. Dies zeigt an, dass die Bestätigung der Nachricht ein Bestandteil der benanten Transaktion sein soll.

Tipp

Eine grundlegende Eigenschaft von Stomp ist die Synchronität. Synchrone Kommunikation kann durch das Hinzufügen eines Empfangsheaders (receipt-Header) implementiert werden. Dies wird dazu führen, dass Methoden nicht zurückkehren, bis der Server den Empfang der Nachricht bestätigt hat oder der Lese-Timeout übershcritten wurde.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* connection */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

/* send a message to the queue 'foo' */
$stomp->send($queue, $msg);

/* subscribe to messages from the queue 'foo' */
$stomp->subscribe($queue);

/* read a frame */
$frame = $stomp->readFrame();

if ($frame->body === $msg) {
    /* acknowledge that the frame was received */
    $stomp->ack($frame);
}

/* remove the subscription */
$stomp->unsubscribe($queue);

/* close connection */
unset($stomp);

?>

Beispiel #2 Prozeduraler Stil

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

/* begin a transaction */
stomp_begin($link, 't1');

/* send a message to the queue 'foo' */
stomp_send($link, $queue, $msg, array('transaction' => 't1'));

/* commit a transaction */
stomp_commit($link, 't1');

/* subscribe to messages from the queue 'foo' */
stomp_subscribe($link, $queue);

/* read a frame */
$frame = stomp_read_frame($link);

if ($frame['body'] === $msg) {
    /* acknowledge that the frame was received */
    stomp_ack($link, $frame['headers']['message-id']);
}

/* remove the subscription */
stomp_unsubscribe($link, $queue);

/* close connection */
stomp_close($link);

?>


Starts a transaction

  • « Stomp::ack
  • Stomp::commit »
  • PHP Manual
  • Stomp
  • Starts a transaction

Stomp::begin

stomp_begin

(PECL stomp >= 0.1.0)

Stomp::begin -- stomp_begin — Starts a transaction

Beschreibung

Objektorientierter Stil (method):

public Stomp::begin ( string $transaction_id , array $headers = ? ) : bool

Prozeduraler Stil:

stomp_begin ( resource $link , string $transaction_id , array $headers = ? ) : bool

Starts a transaction.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

transaction_id

The transaction id.

headers

Assoziatives Array, welches alle zusätzlichen Header beinhaltet (z.B: receipt).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Tipp

Eine grundlegende Eigenschaft von Stomp ist die Synchronität. Synchrone Kommunikation kann durch das Hinzufügen eines Empfangsheaders (receipt-Header) implementiert werden. Dies wird dazu führen, dass Methoden nicht zurückkehren, bis der Server den Empfang der Nachricht bestätigt hat oder der Lese-Timeout übershcritten wurde.

Beispiele

See stomp_commit() or stomp_abort().


Commits a transaction in progress

  • « Stomp::begin
  • Stomp::__construct »
  • PHP Manual
  • Stomp
  • Commits a transaction in progress

Stomp::commit

stomp_commit

(PECL stomp >= 0.1.0)

Stomp::commit -- stomp_commit — Commits a transaction in progress

Beschreibung

Objektorientierter Stil (method):

public Stomp::commit ( string $transaction_id , array $headers = ? ) : bool

Prozeduraler Stil:

stomp_commit ( resource $link , string $transaction_id , array $headers = ? ) : bool

Commits a transaction in progress.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

transaction_id

The transaction id.

headers

Assoziatives Array, welches alle zusätzlichen Header beinhaltet (z.B: receipt).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Tipp

Eine grundlegende Eigenschaft von Stomp ist die Synchronität. Synchrone Kommunikation kann durch das Hinzufügen eines Empfangsheaders (receipt-Header) implementiert werden. Dies wird dazu führen, dass Methoden nicht zurückkehren, bis der Server den Empfang der Nachricht bestätigt hat oder der Lese-Timeout übershcritten wurde.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php

/* connection */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

/* begin a transaction */
$stomp->begin('t1');

/* send a message to the queue */
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1'));

/* commit */
$stomp->commit('t1');

/* close connection */
unset($stomp);

?>

Beispiel #2 Prozeduraler Stil

<?php

/* connection */
$link = stomp_connect('tcp://localhost:61613');

/* check connection */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

/* begin a transaction */
stomp_begin($link, 't1');

/* send a message to the queue 'foo' */
stomp_send($link, '/queue/foo', 'bar', array('transaction' => 't1'));

/* commit */
stomp_commit($link, 't1');

/* close connection */
stomp_close($link);

?>


Opens a connection

  • « Stomp::commit
  • Stomp::__destruct »
  • PHP Manual
  • Stomp
  • Opens a connection

Stomp::__construct

stomp_connect

(PECL stomp >= 0.1.0)

Stomp::__construct -- stomp_connect — Opens a connection

Beschreibung

Objektorientierter Stil (constructor):

public Stomp::__construct ( string $broker = ini_get("stomp.default_broker_uri") , string $username = ? , string $password = ? , array $headers = ? )

Prozeduraler Stil:

stomp_connect ( string $broker = ini_get("stomp.default_broker_uri") , string $username = ? , string $password = ? , array $headers = ? ) : resource

Opens a connection to a stomp compliant Message Broker.

Parameter-Liste

broker

The broker URI

username

The username.

password

The password.

headers

Assoziatives Array, welches alle zusätzlichen Header beinhaltet (z.B: receipt).

Rückgabewerte

Hinweis:

Ein Transaktionsheader kann angegeben werden. Dies zeigt an, dass die Bestätigung der Nachricht ein Bestandteil der benanten Transaktion sein soll.

Changelog

Version | Beschreibung
PECL stomp 1.0.1 | The headers parameter was added

Beispiele

Beispiel #1 Objektorientierter Stil

<?php

/* connection */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

/* close connection */
unset($stomp);

?>

Beispiel #2 Prozeduraler Stil

<?php

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

/* close connection */
stomp_close($link);

?>


Closes stomp connection

  • « Stomp::__construct
  • Stomp::error »
  • PHP Manual
  • Stomp
  • Closes stomp connection

Stomp::__destruct

stomp_close

(PECL stomp >= 0.1.0)

Stomp::__destruct -- stomp_close — Closes stomp connection

Beschreibung

Objektorientierter Stil (destructor):

public Stomp::__destruct ( ) : bool

Prozeduraler Stil:

stomp_close ( resource $link ) : bool

Closes a previously opened connection.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

See stomp_connect().


Gets the last stomp error

  • « Stomp::__destruct
  • Stomp::getReadTimeout »
  • PHP Manual
  • Stomp
  • Gets the last stomp error

Stomp::error

stomp_error

(PECL stomp >= 0.1.0)

Stomp::error -- stomp_error — Gets the last stomp error

Beschreibung

Objektorientierter Stil (method):

public Stomp::error ( ) : string

Prozeduraler Stil:

stomp_error ( resource $link ) : string

Gets the last stomp error.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

Rückgabewerte

Returns an error string or false if no error occurred.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php

/* connection */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

var_dump($stomp->error());

if (!$stomp->abort('unknown-transaction', array('receipt' => 'foo'))) {
    var_dump($stomp->error());
}

/* close connection */
unset($stomp);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
string(43) "Invalid transaction id: unknown-transaction"

Beispiel #2 Prozeduraler Stil

<?php

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

var_dump(stomp_error($link));

if (!stomp_abort($link, 'unknown-transaction', array('receipt' => 'foo'))) {
    var_dump(stomp_error($link));
}

/* close connection */
stomp_close($link);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
string(43) "Invalid transaction id: unknown-transaction"


Gets read timeout

  • « Stomp::error
  • Stomp::getSessionId »
  • PHP Manual
  • Stomp
  • Gets read timeout

Stomp::getReadTimeout

stomp_get_read_timeout

(PECL stomp >= 0.3.0)

Stomp::getReadTimeout -- stomp_get_read_timeout — Gets read timeout

Beschreibung

Objektorientierter Stil (method):

public Stomp::getReadTimeout ( ) : array

Prozeduraler Stil:

stomp_get_read_timeout ( resource $link ) : array

Gets read timeout

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

Rückgabewerte

Returns an array with 2 elements: sec and usec.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php

/* connection */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

var_dump($stomp->getReadTimeout());

/* close connection */
unset($stomp);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["sec"]=>
  int(2)
  ["usec"]=>
  int(0)
}

Beispiel #2 Prozeduraler Stil

<?php

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

var_dump(stomp_get_read_timeout($link));

/* close connection */
stomp_close($link);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  ["sec"]=>
  int(2)
  ["usec"]=>
  int(0)
}


Gets the current stomp session ID

  • « Stomp::getReadTimeout
  • Stomp::hasFrame »
  • PHP Manual
  • Stomp
  • Gets the current stomp session ID

Stomp::getSessionId

stomp_get_session_id

(PECL stomp >= 0.1.0)

Stomp::getSessionId -- stomp_get_session_id — Gets the current stomp session ID

Beschreibung

Objektorientierter Stil (method):

public Stomp::getSessionId ( ) : string|false

Prozeduraler Stil:

stomp_get_session_id ( resource $link ) : string|false

Gets the current stomp session ID.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

Rückgabewerte

String session id on successIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Objektorientierter Stil

<?php

/* connection */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

var_dump($stomp->getSessionId());

/* close connection */
unset($stomp);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(35) "ID:php.net-52873-1257291895530-4:14"

Beispiel #2 Prozeduraler Stil

<?php

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

var_dump(stomp_get_session_id($link));

/* close connection */
stomp_close($link);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(35) "ID:php.net-52873-1257291895530-4:14"


Indicates whether or not there is a frame ready to read

  • « Stomp::getSessionId
  • Stomp::readFrame »
  • PHP Manual
  • Stomp
  • Indicates whether or not there is a frame ready to read

Stomp::hasFrame

stomp_has_frame

(PECL stomp >= 0.1.0)

Stomp::hasFrame -- stomp_has_frame — Indicates whether or not there is a frame ready to read

Beschreibung

Objektorientierter Stil (method):

public Stomp::hasFrame ( ) : bool

Prozeduraler Stil:

stomp_has_frame ( resource $link ) : bool

Indicates whether or not there is a frame ready to read.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

Rückgabewerte

Returns true if a frame is ready to read, or false otherwise.


Reads the next frame

  • « Stomp::hasFrame
  • Stomp::send »
  • PHP Manual
  • Stomp
  • Reads the next frame

Stomp::readFrame

stomp_read_frame

(PECL stomp >= 0.1.0)

Stomp::readFrame -- stomp_read_frame — Reads the next frame

Beschreibung

Objektorientierter Stil (method):

public Stomp::readFrame ( string $class_name = "stompFrame" ) : stompframe

Prozeduraler Stil:

stomp_read_frame ( resource $link ) : array

Reads the next frame. It is possible to instantiate an object of a specific class, and pass parameters to that class's constructor.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

class_name

The name of the class to instantiate. If not specified, a stompFrame object is returned.

Rückgabewerte

Hinweis:

Ein Transaktionsheader kann angegeben werden. Dies zeigt an, dass die Bestätigung der Nachricht ein Bestandteil der benanten Transaktion sein soll.

Changelog

Version | Beschreibung
Stomp 0.4.0 | class_name parameter was added.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php

/* connection */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

/* subscribe to messages from the queue 'foo' */
$stomp->subscribe('/queue/foo');

/* read a frame */
var_dump($stomp->readFrame());

/* close connection */
unset($stomp);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(StompFrame)#2 (3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["headers"]=>
  array(5) {
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:2:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257226805828"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
  ["body"]=>
  string(3) "bar"
}

Beispiel #2 Prozeduraler Stil

<?php

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

/* subscribe to messages from the queue 'foo' */
stomp_subscribe($link, '/queue/foo');

/* read a frame */
$frame = stomp_read_frame($link);

/* close connection */
stomp_close($link);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(3) {
  ["command"]=>
  string(7) "MESSAGE"
  ["body"]=>
  string(3) "bar"
  ["headers"]=>
  array(6) {
    ["transaction"]=>
    string(2) "t1"
    ["message-id"]=>
    string(41) "ID:php.net-55293-1257226743606-4:3:-1:1:1"
    ["destination"]=>
    string(10) "/queue/foo"
    ["timestamp"]=>
    string(13) "1257227037059"
    ["expires"]=>
    string(1) "0"
    ["priority"]=>
    string(1) "0"
  }
}


Sends a message

  • « Stomp::readFrame
  • Stomp::setReadTimeout »
  • PHP Manual
  • Stomp
  • Sends a message

Stomp::send

stomp_send

(PECL stomp >= 0.1.0)

Stomp::send -- stomp_send — Sends a message

Beschreibung

Objektorientierter Stil (method):

public Stomp::send ( string $destination , mixed $msg , array $headers = ? ) : bool

Prozeduraler Stil:

stomp_send ( resource $link , string $destination , mixed $msg , array $headers = ? ) : bool

Sends a message to the Message Broker.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

destination

Where to send the message

msg

Message to send.

headers

Assoziatives Array, welches alle zusätzlichen Header beinhaltet (z.B: receipt).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

Ein Transaktionsheader kann angegeben werden. Dies zeigt an, dass die Bestätigung der Nachricht ein Bestandteil der benanten Transaktion sein soll.

Tipp

Eine grundlegende Eigenschaft von Stomp ist die Synchronität. Synchrone Kommunikation kann durch das Hinzufügen eines Empfangsheaders (receipt-Header) implementiert werden. Dies wird dazu führen, dass Methoden nicht zurückkehren, bis der Server den Empfang der Nachricht bestätigt hat oder der Lese-Timeout übershcritten wurde.

Beispiele

See stomp_ack().


Sets read timeout

  • « Stomp::send
  • Stomp::subscribe »
  • PHP Manual
  • Stomp
  • Sets read timeout

Stomp::setReadTimeout

stomp_set_read_timeout

(PECL stomp >= 0.3.0)

Stomp::setReadTimeout -- stomp_set_read_timeout — Sets read timeout

Beschreibung

Objektorientierter Stil (method):

public Stomp::setReadTimeout ( int $seconds , int $microseconds = ? ) : void

Prozeduraler Stil:

stomp_set_read_timeout ( resource $link , int $seconds , int $microseconds = ? ) : void

Sets read timeout.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

seconds

The seconds part of the timeout to be set.

microseconds

The microseconds part of the timeout to be set.

Beispiele

Beispiel #1 Objektorientierter Stil

<?php

/* connection */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $e->getMessage());
}

$stomp->setReadTimeout(10);

/* close connection */
unset($stomp);

?>

Beispiel #2 Prozeduraler Stil

<?php

/* connection */
$link = stomp_connect('ssl://localhost:61612');

/* check connection */
if (!$link) {
    die('Connection failed: ' . stomp_connect_error());
}

stomp_set_read_timeout($link, 10);

/* close connection */
stomp_close($link);

?>


Registers to listen to a given destination

  • « Stomp::setReadTimeout
  • Stomp::unsubscribe »
  • PHP Manual
  • Stomp
  • Registers to listen to a given destination

Stomp::subscribe

stomp_subscribe

(PECL stomp >= 0.1.0)

Stomp::subscribe -- stomp_subscribe — Registers to listen to a given destination

Beschreibung

Objektorientierter Stil (method):

public Stomp::subscribe ( string $destination , array $headers = ? ) : bool

Prozeduraler Stil:

stomp_subscribe ( resource $link , string $destination , array $headers = ? ) : bool

Registers to listen to a given destination.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

destination

Destination to subscribe to.

headers

Assoziatives Array, welches alle zusätzlichen Header beinhaltet (z.B: receipt).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Tipp

Eine grundlegende Eigenschaft von Stomp ist die Synchronität. Synchrone Kommunikation kann durch das Hinzufügen eines Empfangsheaders (receipt-Header) implementiert werden. Dies wird dazu führen, dass Methoden nicht zurückkehren, bis der Server den Empfang der Nachricht bestätigt hat oder der Lese-Timeout übershcritten wurde.

Beispiele

See stomp_ack().


Removes an existing subscription

  • « Stomp::subscribe
  • StompFrame »
  • PHP Manual
  • Stomp
  • Removes an existing subscription

Stomp::unsubscribe

stomp_unsubscribe

(PECL stomp >= 0.1.0)

Stomp::unsubscribe -- stomp_unsubscribe — Removes an existing subscription

Beschreibung

Objektorientierter Stil (method):

public Stomp::unsubscribe ( string $destination , array $headers = ? ) : bool

Prozeduraler Stil:

stomp_unsubscribe ( resource $link , string $destination , array $headers = ? ) : bool

Removes an existing subscription.

Parameter-Liste

link

Nur für prozedurale Aufrufe: Die Stomp-Verbindung, die von stomp_connect() zurückgegeben wurde.

destination

Subscription to remove.

headers

Assoziatives Array, welches alle zusätzlichen Header beinhaltet (z.B: receipt).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Tipp

Eine grundlegende Eigenschaft von Stomp ist die Synchronität. Synchrone Kommunikation kann durch das Hinzufügen eines Empfangsheaders (receipt-Header) implementiert werden. Dies wird dazu führen, dass Methoden nicht zurückkehren, bis der Server den Empfang der Nachricht bestätigt hat oder der Lese-Timeout übershcritten wurde.

Beispiele

See stomp_ack().


The StompFrame class

(PECL stomp >= 0.1.0)

Einführung

Represents a message which was sent or received from a Stomp compliant Message Broker.

Klassenbeschreibung

StompFrame {
/* Eigenschaften */
public $command ;
public $headers ;
public $body ;
/* Methoden */
__construct ( string $command = ? , array $headers = ? , string $body = ? )
}

Eigenschaften

command

Frame command.

headers

Frame headers (Array).

body

Frame body.

Inhaltsverzeichnis

  • StompFrame::__construct — Constructor


Constructor

  • « StompFrame
  • StompException »
  • PHP Manual
  • StompFrame
  • Constructor

StompFrame::__construct

(PECL stomp >= 0.1.0)

StompFrame::__construct — Constructor

Beschreibung

StompFrame::__construct ( string $command = ? , array $headers = ? , string $body = ? )

Constructor.

Parameter-Liste

command

Frame command

headers

Frame headers (Array).

body

Frame body.


The StompException class

(PECL stomp >= 0.1.0)

Einführung

Represents an error raised by the stomp extension. See Exceptions for more information about Exceptions in PHP.

Klassenbeschreibung

StompException extends Exception {
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
/* Methoden */
public getDetails ( ) : string
}

Inhaltsverzeichnis

  • StompException::getDetails — Get exception details


Get exception details

  • « StompException
  • SVM »
  • PHP Manual
  • StompException
  • Get exception details

StompException::getDetails

(PECL stomp >= 0.1.0)

StompException::getDetails — Get exception details

Beschreibung

public StompException::getDetails ( ) : string

Get exception details.

Rückgabewerte

String containing the error details.


Support Vector Machine

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Beispiele
  • SVM — The SVM class
    • SVM::__construct — Construct a new SVM object
    • SVM::crossvalidate — Test training params on subsets of the training data
    • SVM::getOptions — Return the current training parameters
    • SVM::setOptions — Set training parameters
    • SVM::train — Create a SVMModel based on training data
  • SVMModel — The SVMModel class
    • SVMModel::checkProbabilityModel — Returns true if the model has probability information
    • SVMModel::__construct — Construct a new SVMModel
    • SVMModel::getLabels — Get the labels the model was trained on
    • SVMModel::getNrClass — Returns the number of classes the model was trained with
    • SVMModel::getSvmType — Get the SVM type the model was trained with
    • SVMModel::getSvrProbability — Get the sigma value for regression types
    • SVMModel::load — Load a saved SVM Model
    • SVMModel::predict_probability — Return class probabilities for previous unseen data
    • SVMModel::predict — Predict a value for previously unseen data
    • SVMModel::save — Save a model to a file


Einführung

LibSVM is an efficient solver for SVM classification and regression problems. The svm extension wraps this in a PHP interface for easy use in PHP scripts.


Anforderungen

Libsvm itself is required, and is available through some package management - libsvm-devel for RPM based system or libsvm-dev for Debian based ones. Alternatively it is available direct from the website. If installing from the » official website then some steps will need to be taken as the package does not install automatically. For example, assuming the latest version is 3.1:

wget http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm.cgi?+http://www.csie.ntu.edu.tw/~cjlin/libsvm+tar.gz
tar xvzf libsvm-3.1.tar.gz
cd libsvm-3.1
make lib
cp libsvm.so.1 /usr/lib
ln -s libsvm.so.1 libsvm.so
ldconfig
ldconfig --print | grep libsvm

This last step should show libsvm is installed.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/svm


Beispiele

The basic process is to define parameters, supply training data to generate a model on, then make predictions based on the model. There are a default set of parameters that should get some results with most any input, so we'll start by looking at the data.

Data is supplied in either a file, a stream, or as an array. If supplied in a file or a stream, it must contain one line per training example, which must be formatted as an integer class (usually 1 and -1) followed by a series of feature/value pairs, in increasing feature order. The features are integers, the values floats, usually scaled 0-1. For example:

-1 1:0.43 3:0.12 9284:0.2

In a document classification problem, say a spam checker, each line would represent a document. There would be two classes, -1 for spam, 1 for ham. Each feature would represent some word, and the value would represent that importance of that word to the document (perhaps the frequency count, with the total scaled to unit length). Features that were 0 (e.g. the word did not appear in the document at all) would simply not be included.

In array mode, the data must be passed as an array of arrays. Each sub-array must have the class as the first element, then key => value sets for the feature values pairs.

This data is passed to the SVM class's train function, which will return an SVM model is successful.

Once a model has been generated, it can be used to make predictions about previously unseen data. This can be passed as an array to the model's predict function, in the same format as before, but without the label. The response will be the class.

Models can be saved and restored as required, using the save and load functions, which both take a file location.

Beispiel #1 Train from array

<?php
$data = array(
    array(-1, 1 => 0.43, 3 => 0.12, 9284 => 0.2),
    array(1, 1 => 0.22, 5 => 0.01, 94 => 0.11),
);

$svm = new SVM();
$model = $svm->train($data);

$data = array(1 => 0.43, 3 => 0.12, 9284 => 0.2);
$result = $model->predict($data);
var_dump($result);
$model->save('model.svm');
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(-1)

Beispiel #2 Train from a file

<?php
$svm = new SVM();
$model = $svm->train("traindata.txt");
?>


The SVM class

(PECL svm >= 0.1.0)

Einführung

Klassenbeschreibung

SVM {
/* Constants */
const int C_SVC = 0 ;
const int NU_SVC = 1 ;
const int ONE_CLASS = 2 ;
const int EPSILON_SVR = 3 ;
const int NU_SVR = 4 ;
const int KERNEL_LINEAR = 0 ;
const int KERNEL_POLY = 1 ;
const int KERNEL_RBF = 2 ;
const int KERNEL_SIGMOID = 3 ;
const int KERNEL_PRECOMPUTED = 4 ;
const int OPT_TYPE = 101 ;
const int OPT_KERNEL_TYPE = 102 ;
const int OPT_DEGREE = 103 ;
const int OPT_SHRINKING = 104 ;
const int OPT_PROPABILITY = 105 ;
const int OPT_GAMMA = 201 ;
const int OPT_NU = 202 ;
const int OPT_EPS = 203 ;
const int OPT_P = 204 ;
const int OPT_COEF_ZERO = 205 ;
const int OPT_C = 206 ;
const int OPT_CACHE_SIZE = 207 ;
/* Methods */
public __construct ( )
public svm::crossvalidate ( array $problem , int $number_of_folds ) : float
public getOptions ( ) : array
public setOptions ( array $params ) : bool
public svm::train ( array $problem , array $weights = ? ) : SVMModel
}

Vordefinierte Konstanten

SVM Constants

SVM::C_SVC

The basic C_SVC SVM type. The default, and a good starting point

SVM::NU_SVC

The NU_SVC type uses a different, more flexible, error weighting

SVM::ONE_CLASS

One class SVM type. Train just on a single class, using outliers as negative examples

SVM::EPSILON_SVR

A SVM type for regression (predicting a value rather than just a class)

SVM::NU_SVR

A NU style SVM regression type

SVM::KERNEL_LINEAR

A very simple kernel, can work well on large document classification problems

SVM::KERNEL_POLY

A polynomial kernel

SVM::KERNEL_RBF

The common Gaussian RBD kernel. Handles non-linear problems well and is a good default for classification

SVM::KERNEL_SIGMOID

A kernel based on the sigmoid function. Using this makes the SVM very similar to a two layer sigmoid based neural network

SVM::KERNEL_PRECOMPUTED

A precomputed kernel - currently unsupported.

SVM::OPT_TYPE

The options key for the SVM type

SVM::OPT_KERNEL_TYPE

The options key for the kernel type

SVM::OPT_DEGREE

SVM::OPT_SHRINKING

Training parameter, boolean, for whether to use the shrinking heuristics

SVM::OPT_PROBABILITY

Training parameter, boolean, for whether to collect and use probability estimates

SVM::OPT_GAMMA

Algorithm parameter for Poly, RBF and Sigmoid kernel types.

SVM::OPT_NU

The option key for the nu parameter, only used in the NU_ SVM types

SVM::OPT_EPS

The option key for the Epsilon parameter, used in epsilon regression

SVM::OPT_P

Training parameter used by Episilon SVR regression

SVM::OPT_COEF_ZERO

Algorithm parameter for poly and sigmoid kernels

SVM::OPT_C

The option for the cost parameter that controls tradeoff between errors and generality - effectively the penalty for misclassifying training examples.

SVM::OPT_CACHE_SIZE

Memory cache size, in MB

Inhaltsverzeichnis

  • SVM::__construct — Construct a new SVM object
  • SVM::crossvalidate — Test training params on subsets of the training data
  • SVM::getOptions — Return the current training parameters
  • SVM::setOptions — Set training parameters
  • SVM::train — Create a SVMModel based on training data


Construct a new SVM object

  • « SVM
  • SVM::crossvalidate »
  • PHP Manual
  • SVM
  • Construct a new SVM object

SVM::__construct

(PECL svm >= 0.1.0)

SVM::__construct — Construct a new SVM object

Beschreibung

public SVM::__construct ( )

Constructs a new SVM object ready to accept training data.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Throws SVMException if the libsvm library could not be loaded


Test training params on subsets of the training data

  • « SVM::__construct
  • SVM::getOptions »
  • PHP Manual
  • SVM
  • Test training params on subsets of the training data

SVM::crossvalidate

(PECL svm >= 0.1.0)

SVM::crossvalidate — Test training params on subsets of the training data

Beschreibung

public svm::crossvalidate ( array $problem , int $number_of_folds ) : float

Crossvalidate can be used to test the effectiveness of the current parameter set on a subset of the training data. Given a problem set and a n "folds", it separates the problem set into n subsets, and the repeatedly trains on one subset and tests on another. While the accuracy will generally be lower than a SVM trained on the enter data set, the accuracy score returned should be relatively useful, so it can be used to test different training parameters.

Parameter-Liste

problem

The problem data. This can either be in the form of an array, the URL of an SVMLight formatted file, or a stream to an opened SVMLight formatted datasource.

number_of_folds

The number of sets the data should be divided into and cross tested. A higher number means smaller training sets and less reliability. 5 is a good number to start with.

Rückgabewerte

The correct percentage, expressed as a floating point number from 0-1. In the case of NU_SVC or EPSILON_SVR kernels the mean squared error will returned instead.

Siehe auch

  • SVM::train() - Create a SVMModel based on training data


Return the current training parameters

  • « SVM::crossvalidate
  • SVM::setOptions »
  • PHP Manual
  • SVM
  • Return the current training parameters

SVM::getOptions

(PECL svm >= 0.1.0)

SVM::getOptions — Return the current training parameters

Beschreibung

public SVM::getOptions ( ) : array

Retrieve an array containing the training parameters. The parameters will be keyed on the predefined SVM constants.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array of configuration settings.


Set training parameters

  • « SVM::getOptions
  • SVM::train »
  • PHP Manual
  • SVM
  • Set training parameters

SVM::setOptions

(PECL svm >= 0.1.0)

SVM::setOptions — Set training parameters

Beschreibung

public SVM::setOptions ( array $params ) : bool

Set one or more training parameters.

Parameter-Liste

params

An array of training parameters, keyed on the SVM constants.

Rückgabewerte

Return true on success, throws SVMException on error.


Create a SVMModel based on training data

  • « SVM::setOptions
  • SVMModel »
  • PHP Manual
  • SVM
  • Create a SVMModel based on training data

SVM::train

(PECL svm >= 0.1.0)

SVM::train — Create a SVMModel based on training data

Beschreibung

public svm::train ( array $problem , array $weights = ? ) : SVMModel

Train a support vector machine based on the supplied training data.

Parameter-Liste

problem

The problem can be provided in three different ways. An array, where the data should start with the class label (usually 1 or -1) then followed by a sparse data set of dimension => data pairs. A URL to a file containing a SVM Light formatted problem, with the each line being a new training example, the start of each line containing the class (1, -1) then a series of tab separated data values shows as key:value. A opened stream pointing to a data source formatted as in the file above.

weights

Weights are an optional set of weighting parameters for the different classes, to help account for unbalanced training sets. For example, if the classes were 1 and -1, and -1 had significantly more example than one, the weight for -1 could be 0.5. Weights should be in the range 0-1.

Rückgabewerte

Returns an SVMModel that can be used to classify previously unseen data. Throws SVMException on error


The SVMModel class

(PECL svm >= 0.1.0)

Einführung

The SVMModel is the end result of the training process. It can be used to classify previously unseen data.

Klassenbeschreibung

SVMModel {
/* Methods */
public checkProbabilityModel ( ) : bool
public __construct ( string $filename = ? )
public getLabels ( ) : array
public getNrClass ( ) : int
public getSvmType ( ) : int
public getSvrProbability ( ) : float
public load ( string $filename ) : bool
public predict_probability ( array $data ) : float
public predict ( array $data ) : float
public save ( string $filename ) : bool
}

Inhaltsverzeichnis

  • SVMModel::checkProbabilityModel — Returns true if the model has probability information
  • SVMModel::__construct — Construct a new SVMModel
  • SVMModel::getLabels — Get the labels the model was trained on
  • SVMModel::getNrClass — Returns the number of classes the model was trained with
  • SVMModel::getSvmType — Get the SVM type the model was trained with
  • SVMModel::getSvrProbability — Get the sigma value for regression types
  • SVMModel::load — Load a saved SVM Model
  • SVMModel::predict_probability — Return class probabilities for previous unseen data
  • SVMModel::predict — Predict a value for previously unseen data
  • SVMModel::save — Save a model to a file


Returns true if the model has probability information

  • « SVMModel
  • SVMModel::__construct »
  • PHP Manual
  • SVMModel
  • Returns true if the model has probability information

SVMModel::checkProbabilityModel

(PECL svm >= 0.1.5)

SVMModel::checkProbabilityModel — Returns true if the model has probability information

Beschreibung

public SVMModel::checkProbabilityModel ( ) : bool

Returns true if the model contains probability information.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return a boolean value


Construct a new SVMModel

  • « SVMModel::checkProbabilityModel
  • SVMModel::getLabels »
  • PHP Manual
  • SVMModel
  • Construct a new SVMModel

SVMModel::__construct

(PECL svm >= 0.1.0)

SVMModel::__construct — Construct a new SVMModel

Beschreibung

public SVMModel::__construct ( string $filename = ? )

Build a new SVMModel. Models will usually be created from the SVM::train function, but then saved models may be restored directly.

Parameter-Liste

filename

The filename for the saved model file this model should load.

Rückgabewerte

Throws SVMException on error

Siehe auch

  • SVMModel::load() - Load a saved SVM Model


Get the labels the model was trained on

  • « SVMModel::__construct
  • SVMModel::getNrClass »
  • PHP Manual
  • SVMModel
  • Get the labels the model was trained on

SVMModel::getLabels

(PECL svm >= 0.1.5)

SVMModel::getLabels — Get the labels the model was trained on

Beschreibung

public SVMModel::getLabels ( ) : array

Return an array of labels that the model was trained on. For regression and one class models an empty array is returned.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return an array of labels

Siehe auch

  • SVMModel::getNrClass() - Returns the number of classes the model was trained with


Returns the number of classes the model was trained with

  • « SVMModel::getLabels
  • SVMModel::getSvmType »
  • PHP Manual
  • SVMModel
  • Returns the number of classes the model was trained with

SVMModel::getNrClass

(PECL svm >= 0.1.5)

SVMModel::getNrClass — Returns the number of classes the model was trained with

Beschreibung

public SVMModel::getNrClass ( ) : int

Returns the number of classes the model was trained with, will return 2 for one class and regression models.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return an integer number of classes


Get the SVM type the model was trained with

  • « SVMModel::getNrClass
  • SVMModel::getSvrProbability »
  • PHP Manual
  • SVMModel
  • Get the SVM type the model was trained with

SVMModel::getSvmType

(PECL svm >= 0.1.5)

SVMModel::getSvmType — Get the SVM type the model was trained with

Beschreibung

public SVMModel::getSvmType ( ) : int

Returns an integer value representing the type of the SVM model used, e.g SVM::C_SVC.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Return an integer SVM type


Get the sigma value for regression types

  • « SVMModel::getSvmType
  • SVMModel::load »
  • PHP Manual
  • SVMModel
  • Get the sigma value for regression types

SVMModel::getSvrProbability

(PECL svm >= 0.1.5)

SVMModel::getSvrProbability — Get the sigma value for regression types

Beschreibung

public SVMModel::getSvrProbability ( ) : float

For regression models, returns a sigma value. If there is no probability information or the model is not SVR, 0 is returned.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a sigma value


Load a saved SVM Model

  • « SVMModel::getSvrProbability
  • SVMModel::predict_probability »
  • PHP Manual
  • SVMModel
  • Load a saved SVM Model

SVMModel::load

(PECL svm >= 0.1.00.1.0)

SVMModel::load — Load a saved SVM Model

Beschreibung

public SVMModel::load ( string $filename ) : bool

Load a model file ready for classification or regression.

Parameter-Liste

filename

The filename of the model.

Rückgabewerte

Throws SVMException on error. Returns true on success.

Siehe auch

  • SVMModel::save() - Save a model to a file


Return class probabilities for previous unseen data

  • « SVMModel::load
  • SVMModel::predict »
  • PHP Manual
  • SVMModel
  • Return class probabilities for previous unseen data

SVMModel::predict_probability

(PECL svm >= 0.1.4)

SVMModel::predict_probability — Return class probabilities for previous unseen data

Beschreibung

public SVMModel::predict_probability ( array $data ) : float

This function accepts an array of data and attempts to predict the class, as with the predict function. Additionally, however, this function returns an array of probabilities, one per class in the model, which represent the estimated chance of the data supplied being a member of that class. Requires that the model to be used has been trained with the probability parameter set to true.

Parameter-Liste

data

The array to be classified. This should be a series of key => value pairs in increasing key order, but not necessarily continuous.

probabilities

The supplied value will be filled with the probabilities. This will be either null, in the case of a model without probability information, or an array where the index is the class name and the value the predicted probability.

Rückgabewerte

Float the predicted value. This will be a class label in the case of classification, a real value in the case of regression. Throws SVMException on error

Siehe auch

  • SVM::predict()


Predict a value for previously unseen data

  • « SVMModel::predict_probability
  • SVMModel::save »
  • PHP Manual
  • SVMModel
  • Predict a value for previously unseen data

SVMModel::predict

(PECL svm >= 0.1.0)

SVMModel::predict — Predict a value for previously unseen data

Beschreibung

public SVMModel::predict ( array $data ) : float

This function accepts an array of data and attempts to predict the class or regression value based on the model extracted from previously trained data.

Parameter-Liste

data

The array to be classified. This should be a series of key => value pairs in increasing key order, but not necessarily continuous.

Rückgabewerte

Float the predicted value. This will be a class label in the case of classification, a real value in the case of regression. Throws SVMException on error

Siehe auch

  • SVM::train() - Create a SVMModel based on training data


Save a model to a file

  • « SVMModel::predict
  • SVN »
  • PHP Manual
  • SVMModel
  • Save a model to a file

SVMModel::save

(PECL svm >= 0.1.0)

SVMModel::save — Save a model to a file

Beschreibung

public SVMModel::save ( string $filename ) : bool

Save the model data to a file, for later use.

Parameter-Liste

filename

The file to save the model to.

Rückgabewerte

Throws SVMException on error. Returns true on success.

Siehe auch

  • SVMModel::load() - Load a saved SVM Model


Subversion

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • SVN Funktionen
    • svn_add — Schedules the addition of an item in a working directory
    • svn_auth_get_parameter — Retrieves authentication parameter
    • svn_auth_set_parameter — Sets an authentication parameter
    • svn_blame — Get the SVN blame for a file
    • svn_cat — Returns the contents of a file in a repository
    • svn_checkout — Checks out a working copy from the repository
    • svn_cleanup — Recursively cleanup a working copy directory, finishing incomplete operations and removing locks
    • svn_client_version — Returns the version of the SVN client libraries
    • svn_commit — Sends changes from the local working copy to the repository
    • svn_delete — Delete items from a working copy or repository
    • svn_diff — Recursively diffs two paths
    • svn_export — Export the contents of a SVN directory
    • svn_fs_abort_txn — Abort a transaction, returns true if everything is okay, false otherwise
    • svn_fs_apply_text — Creates and returns a stream that will be used to replace
    • svn_fs_begin_txn2 — Create a new transaction
    • svn_fs_change_node_prop — Return true if everything is ok, false otherwise
    • svn_fs_check_path — Determines what kind of item lives at path in a given repository fsroot
    • svn_fs_contents_changed — Return true if content is different, false otherwise
    • svn_fs_copy — Copies a file or a directory, returns true if all is ok, false otherwise
    • svn_fs_delete — Deletes a file or a directory, return true if all is ok, false otherwise
    • svn_fs_dir_entries — Enumerates the directory entries under path; returns a hash of dir names to file type
    • svn_fs_file_contents — Returns a stream to access the contents of a file from a given version of the fs
    • svn_fs_file_length — Returns the length of a file from a given version of the fs
    • svn_fs_is_dir — Return true if the path points to a directory, false otherwise
    • svn_fs_is_file — Return true if the path points to a file, false otherwise
    • svn_fs_make_dir — Creates a new empty directory, returns true if all is ok, false otherwise
    • svn_fs_make_file — Creates a new empty file, returns true if all is ok, false otherwise
    • svn_fs_node_created_rev — Returns the revision in which path under fsroot was created
    • svn_fs_node_prop — Returns the value of a property for a node
    • svn_fs_props_changed — Return true if props are different, false otherwise
    • svn_fs_revision_prop — Fetches the value of a named property
    • svn_fs_revision_root — Get a handle on a specific version of the repository root
    • svn_fs_txn_root — Creates and returns a transaction root
    • svn_fs_youngest_rev — Returns the number of the youngest revision in the filesystem
    • svn_import — Imports an unversioned path into a repository
    • svn_log — Returns the commit log messages of a repository URL
    • svn_ls — Returns list of directory contents in repository URL, optionally at revision number
    • svn_mkdir — Creates a directory in a working copy or repository
    • svn_repos_create — Create a new subversion repository at path
    • svn_repos_fs_begin_txn_for_commit — Create a new transaction
    • svn_repos_fs_commit_txn — Commits a transaction and returns the new revision
    • svn_repos_fs — Gets a handle on the filesystem for a repository
    • svn_repos_hotcopy — Make a hot-copy of the repos at repospath; copy it to destpath
    • svn_repos_open — Open a shared lock on a repository
    • svn_repos_recover — Run recovery procedures on the repository located at path
    • svn_revert — Revert changes to the working copy
    • svn_status — Returns the status of working copy files and directories
    • svn_update — Update working copy


Einführung

This extension implements PHP bindings for » Subversion (SVN), a version control system, allowing PHP scripts to communicate with SVN repositories and working copies without direct command line calls to the svn executable.

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.


Anforderungen

The Subversion binaries are not necessary to use this extension. However, when compiling the extension, libsvn (the Subversion headers) must be available.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/svn

If ./configure is having trouble finding the SVN files (for example, Subversion was installed with a different prefix directory), use ./configure --with-svn=$USR_PATH to specify the directory where the include/subversion-1/ folder is located.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.

Warnung

If the extension is compiled against libsvn 1.3, functions that work with working copies will fail when used on working copies created by Subversion 1.4.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SVN_REVISION_HEAD (int)
Magic number (-1) specifying the HEAD revision
Constants usable with svn_auth_set_parameter()
SVN_AUTH_PARAM_DEFAULT_USERNAME (string)
Property for default username to use when performing basic authentication
SVN_AUTH_PARAM_DEFAULT_PASSWORD (string)
Property for default password to use when performing basic authentication
SVN_AUTH_PARAM_NON_INTERACTIVE (string)
SVN_AUTH_PARAM_DONT_STORE_PASSWORDS (string)
SVN_AUTH_PARAM_NO_AUTH_CACHE (string)
SVN_AUTH_PARAM_SSL_SERVER_FAILURES (string)
SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO (string)
SVN_AUTH_PARAM_CONFIG (string)
SVN_AUTH_PARAM_SERVER_GROUP (string)
SVN_AUTH_PARAM_CONFIG_DIR (string)
PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS (string)
Custom property for ignoring SSL cert verification errors
Filesystem constants
SVN_FS_CONFIG_FS_TYPE (string)
Configuration key that determines filesystem type
SVN_FS_TYPE_BDB (string)
Filesystem is Berkeley-DB implementation
SVN_FS_TYPE_FSFS (string)
Filesystem is native-filesystem implementation
Reserved property constants
SVN_PROP_REVISION_DATE (string)
svn:date
SVN_PROP_REVISION_ORIG_DATE (string)
svn:original-date
SVN_PROP_REVISION_AUTHOR (string)
svn:author
SVN_PROP_REVISION_LOG (string)
svn:log
Working copy status constants
SVN_WC_STATUS_NONE (int)
Status does not exist
SVN_WC_STATUS_UNVERSIONED (int)
Item is not versioned in working copy
SVN_WC_STATUS_NORMAL (int)
Item exists, nothing else is happening
SVN_WC_STATUS_ADDED (int)
Item is scheduled for addition
SVN_WC_STATUS_MISSING (int)
Item is versioned but missing from the working copy
SVN_WC_STATUS_DELETED (int)
Item is scheduled for deletion
SVN_WC_STATUS_REPLACED (int)
Item was deleted and then re-added
SVN_WC_STATUS_MODIFIED (int)
Item (text or properties) was modified
SVN_WC_STATUS_MERGED (int)
Item's local modifications were merged with repository modifications
SVN_WC_STATUS_CONFLICTED (int)
Item's local modifications conflicted with repository modifications
SVN_WC_STATUS_IGNORED (int)
Item is unversioned but configured to be ignored
SVN_WC_STATUS_OBSTRUCTED (int)
Unversioned item is in the way of a versioned resource
SVN_WC_STATUS_EXTERNAL (int)
Unversioned path that is populated using svn:externals
SVN_WC_STATUS_INCOMPLETE (int)
Directory does not contain complete entries list
Node type constants
SVN_NODE_NONE (int)
Absent
SVN_NODE_FILE (int)
File
SVN_NODE_DIR (int)
Directory
SVN_NODE_UNKNOWN (int)
Something Subversion cannot identify


SVN Funktionen

Inhaltsverzeichnis

  • svn_add — Schedules the addition of an item in a working directory
  • svn_auth_get_parameter — Retrieves authentication parameter
  • svn_auth_set_parameter — Sets an authentication parameter
  • svn_blame — Get the SVN blame for a file
  • svn_cat — Returns the contents of a file in a repository
  • svn_checkout — Checks out a working copy from the repository
  • svn_cleanup — Recursively cleanup a working copy directory, finishing incomplete operations and removing locks
  • svn_client_version — Returns the version of the SVN client libraries
  • svn_commit — Sends changes from the local working copy to the repository
  • svn_delete — Delete items from a working copy or repository
  • svn_diff — Recursively diffs two paths
  • svn_export — Export the contents of a SVN directory
  • svn_fs_abort_txn — Abort a transaction, returns true if everything is okay, false otherwise
  • svn_fs_apply_text — Creates and returns a stream that will be used to replace
  • svn_fs_begin_txn2 — Create a new transaction
  • svn_fs_change_node_prop — Return true if everything is ok, false otherwise
  • svn_fs_check_path — Determines what kind of item lives at path in a given repository fsroot
  • svn_fs_contents_changed — Return true if content is different, false otherwise
  • svn_fs_copy — Copies a file or a directory, returns true if all is ok, false otherwise
  • svn_fs_delete — Deletes a file or a directory, return true if all is ok, false otherwise
  • svn_fs_dir_entries — Enumerates the directory entries under path; returns a hash of dir names to file type
  • svn_fs_file_contents — Returns a stream to access the contents of a file from a given version of the fs
  • svn_fs_file_length — Returns the length of a file from a given version of the fs
  • svn_fs_is_dir — Return true if the path points to a directory, false otherwise
  • svn_fs_is_file — Return true if the path points to a file, false otherwise
  • svn_fs_make_dir — Creates a new empty directory, returns true if all is ok, false otherwise
  • svn_fs_make_file — Creates a new empty file, returns true if all is ok, false otherwise
  • svn_fs_node_created_rev — Returns the revision in which path under fsroot was created
  • svn_fs_node_prop — Returns the value of a property for a node
  • svn_fs_props_changed — Return true if props are different, false otherwise
  • svn_fs_revision_prop — Fetches the value of a named property
  • svn_fs_revision_root — Get a handle on a specific version of the repository root
  • svn_fs_txn_root — Creates and returns a transaction root
  • svn_fs_youngest_rev — Returns the number of the youngest revision in the filesystem
  • svn_import — Imports an unversioned path into a repository
  • svn_log — Returns the commit log messages of a repository URL
  • svn_ls — Returns list of directory contents in repository URL, optionally at revision number
  • svn_mkdir — Creates a directory in a working copy or repository
  • svn_repos_create — Create a new subversion repository at path
  • svn_repos_fs_begin_txn_for_commit — Create a new transaction
  • svn_repos_fs_commit_txn — Commits a transaction and returns the new revision
  • svn_repos_fs — Gets a handle on the filesystem for a repository
  • svn_repos_hotcopy — Make a hot-copy of the repos at repospath; copy it to destpath
  • svn_repos_open — Open a shared lock on a repository
  • svn_repos_recover — Run recovery procedures on the repository located at path
  • svn_revert — Revert changes to the working copy
  • svn_status — Returns the status of working copy files and directories
  • svn_update — Update working copy


Schedules the addition of an item in a working directory

  • « SVN Funktionen
  • svn_auth_get_parameter »
  • PHP Manual
  • SVN Funktionen
  • Schedules the addition of an item in a working directory

svn_add

(PECL svn >= 0.1.0)

svn_add — Schedules the addition of an item in a working directory

Beschreibung

svn_add ( string $path , bool $recursive = true , bool $force = false ) : bool

Adds the file, directory or symbolic link at path to the working directory. The item will be added to the repository the next time you call svn_commit() on the working copy.

Parameter-Liste

path

Path of item to add.

Hinweis: Relative Pfade werden so aufgelöst, als ob das aktuelle Verzeichnis das wäre, in dem sich das PHP-Binary befindet. Um stattdessen das aktuelle Verzeichnis des aufrufenden Skripts zu nutzen, müssen sie die realpath()-Funktion oder dirname(__FILE__) zu Hilfe ziehen.

recursive

If item is directory, whether or not to recursively add all of its contents. Default is true

force

If true, Subversion will recurse into already versioned directories in order to add unversioned files that may be hiding in those directories. Default is false

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 svn_add() example

In a working directory where svn status returns:

$ svn status
?      foobar.txt

...this code:

<?php
svn_add('foobar.txt');
?>

...will schedule foobar.txt for addition into the repository.

Siehe auch

  • » SVN documentation on svn add


Retrieves authentication parameter

  • « svn_add
  • svn_auth_set_parameter »
  • PHP Manual
  • SVN Funktionen
  • Retrieves authentication parameter

svn_auth_get_parameter

(PECL svn >= 0.1.0)

svn_auth_get_parameter — Retrieves authentication parameter

Beschreibung

svn_auth_get_parameter ( string $key ) : string

Retrieves authentication parameter at key. For a list of valid keys and their meanings, consult the authentication constants list.

Parameter-Liste

key

String key name. Use the authentication constants defined by this extension to specify a key.

Rückgabewerte

Returns the string value of the parameter at key; returns null if parameter does not exist.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • svn_auth_set_parameter() - Sets an authentication parameter
  • Authentication constants


Sets an authentication parameter

  • « svn_auth_get_parameter
  • svn_blame »
  • PHP Manual
  • SVN Funktionen
  • Sets an authentication parameter

svn_auth_set_parameter

(PECL svn >= 0.1.0)

svn_auth_set_parameter — Sets an authentication parameter

Beschreibung

svn_auth_set_parameter ( string $key , string $value ) : void

Sets authentication parameter at key to value. For a list of valid keys and their meanings, consult the authentication constants list.

Parameter-Liste

key

String key name. Use the authentication constants defined by this extension to specify a key.

value

String value to set to parameter at key. Format of value varies with the parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 Default authentication example

This example configures SVN so that the default username to use is 'Bob' and the default password is 'abc123':

<?php
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
?>

Siehe auch

  • svn_auth_get_parameter() - Retrieves authentication parameter
  • Authentication constants


Get the SVN blame for a file

  • « svn_auth_set_parameter
  • svn_cat »
  • PHP Manual
  • SVN Funktionen
  • Get the SVN blame for a file

svn_blame

(PECL svn >= 0.3.0)

svn_blame — Get the SVN blame for a file

Beschreibung

svn_blame ( string $repository_url , int $revision_no = SVN_REVISION_HEAD ) : array

Get the SVN blame of a file from a repository URL.

Parameter-Liste

repository_url

The repository URL.

revision_no

The revision number.

Rückgabewerte

An array of SVN blame information separated by line which includes the revision number, line number, line of code, author, and date.

Beispiele

Beispiel #1 svn_blame() example

<?php
$svnurl = 'http://svn.example.org/svnroot/foo/trunk/index.php';

print_r( svn_blame($svnurl) );

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] = Array
          (
           [rev] = 1
           [line_no] = 1
           [line] = Hello World
           [author] = joesmith
           [date] = 2007-07-02T05:51:26.628396Z
          )
    [1] = Array
          ...

Siehe auch

  • svn_diff() - Recursively diffs two paths
  • svn_logs()
  • svn_status() - Returns the status of working copy files and directories


Returns the contents of a file in a repository

  • « svn_blame
  • svn_checkout »
  • PHP Manual
  • SVN Funktionen
  • Returns the contents of a file in a repository

svn_cat

(PECL svn >= 0.1.0)

svn_cat — Returns the contents of a file in a repository

Beschreibung

svn_cat ( string $repos_url , int $revision_no = ? ) : string

Returns the contents of the URL repos_url to a file in the repository, optionally at revision number revision_no.

Parameter-Liste

repos_url

String URL path to item in a repository.

revision_no

Integer revision number of item to retrieve, default is the HEAD revision.

Rückgabewerte

Returns the string contents of the item from the repository on success, and false on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 Basic example

This example retrieves the contents of a file at revision 28:

<?php
$contents = svn_cat('http://www.example.com/svnroot/calc/gui.c', 28)
?>

Siehe auch

  • svn_list()
  • » SVN documentation on svn cat


Checks out a working copy from the repository

  • « svn_cat
  • svn_cleanup »
  • PHP Manual
  • SVN Funktionen
  • Checks out a working copy from the repository

svn_checkout

(PECL svn >= 0.1.0)

svn_checkout — Checks out a working copy from the repository

Beschreibung

svn_checkout ( string $repos , string $targetpath , int $revision = ? , int $flags = 0 ) : bool

Checks out a working copy from the repository at repos to targetpath at revision revision.

Parameter-Liste

repos

String URL path to directory in repository to check out.

targetpath

String local path to directory to check out in to

Hinweis: Relative Pfade werden so aufgelöst, als ob das aktuelle Verzeichnis das wäre, in dem sich das PHP-Binary befindet. Um stattdessen das aktuelle Verzeichnis des aufrufenden Skripts zu nutzen, müssen sie die realpath()-Funktion oder dirname(__FILE__) zu Hilfe ziehen.

revision

Integer revision number of repository to check out. Default is HEAD, the most recent revision.

flags

Any combination of SVN_NON_RECURSIVE and SVN_IGNORE_EXTERNALS.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 Basic example

This example demonstrates how to check out a directory from a repository to a directory named calc:

<?php
svn_checkout('http://www.example.com/svnroot/calc/trunk', dirname(__FILE__) . '/calc');
?>

The dirname(__FILE__) call is necessary in order to convert the calc relative path into an absolute one. If calc exists, you can also use realpath() to retrieve an absolute path.

Siehe auch

  • svn_add() - Schedules the addition of an item in a working directory
  • svn_commit() - Sends changes from the local working copy to the repository
  • svn_status() - Returns the status of working copy files and directories
  • svn_update() - Update working copy
  • » SVN documentation on svn checkout


Recursively cleanup a working copy directory, finishing incomplete operations and removing locks

  • « svn_checkout
  • svn_client_version »
  • PHP Manual
  • SVN Funktionen
  • Recursively cleanup a working copy directory, finishing incomplete operations and removing locks

svn_cleanup

(PECL svn >= 0.1.0)

svn_cleanup — Recursively cleanup a working copy directory, finishing incomplete operations and removing locks

Beschreibung

svn_cleanup ( string $workingdir ) : bool

Recursively cleanup working copy directory workingdir, finishing any incomplete operations and removing working copy locks. Use when a working copy is in limbo and needs to be usable again.

Parameter-Liste

workingdir

String path to local working directory to cleanup

Hinweis: Relative Pfade werden so aufgelöst, als ob das aktuelle Verzeichnis das wäre, in dem sich das PHP-Binary befindet. Um stattdessen das aktuelle Verzeichnis des aufrufenden Skripts zu nutzen, müssen sie die realpath()-Funktion oder dirname(__FILE__) zu Hilfe ziehen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 Basic example

This example demonstrates clean up of a working copy in a directory named help-me:

<?php
svn_cleanup(realpath('help-me'));
?>

The realpath() call is necessary due to SVN's quirky handling of relative paths.

Siehe auch

  • update()
  • » SVN documentation on svn cleanup


Returns the version of the SVN client libraries

  • « svn_cleanup
  • svn_commit »
  • PHP Manual
  • SVN Funktionen
  • Returns the version of the SVN client libraries

svn_client_version

(PECL svn >= 0.1.0)

svn_client_version — Returns the version of the SVN client libraries

Beschreibung

svn_client_version ( ) : string

Returns the version of the SVN client libraries

Rückgabewerte

String version number, usually in form of x.y.z.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 Basic example

<?php
echo svn_client_version();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1.3.1


Sends changes from the local working copy to the repository

  • « svn_client_version
  • svn_delete »
  • PHP Manual
  • SVN Funktionen
  • Sends changes from the local working copy to the repository

svn_commit

(PECL svn >= 0.1.0)

svn_commit — Sends changes from the local working copy to the repository

Beschreibung

svn_commit ( string $log , array $targets , bool $recursive = true ) : array

Commits changes made in the local working copy files enumerated in the targets array to the repository, with the log message log. Directories in the targets array will be recursively committed unless recursive is set to false.

Hinweis: This function does not have any parameters for specifying authentication, so a username and password must be set using svn_auth_set_parameter()

Parameter-Liste

log

String log text to commit

targets

Array of local paths of files to be committed

Warnung

This parameter must be an array, a string for a single target is not acceptable.

Hinweis: Relative Pfade werden so aufgelöst, als ob das aktuelle Verzeichnis das wäre, in dem sich das PHP-Binary befindet. Um stattdessen das aktuelle Verzeichnis des aufrufenden Skripts zu nutzen, müssen sie die realpath()-Funktion oder dirname(__FILE__) zu Hilfe ziehen.

recursive

Boolean flag to disable recursive committing of directories in the targets array. Default is true.

Rückgabewerte

Returns array in form of:

array(
    0 => integer revision number of commit
    1 => string ISO 8601 date and time of commit
    2 => name of committer
)

Returns false on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 Basic example

This example commits the calculator directory to a repository, using the username Bob and the password abc123 (hopefully, his password is stronger):

<?php
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
var_dump(svn_commit('Log message of Bob\'s commit', array(realpath('calculator'))));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(
  0 => 1415,
  1 => '2007-05-26T01:44:28.453125Z',
  2 => 'Bob'
)

Siehe auch

  • svn_auth_set_parameter() - Sets an authentication parameter
  • » SVN documentation on svn commit


Delete items from a working copy or repository

  • « svn_commit
  • svn_diff »
  • PHP Manual
  • SVN Funktionen
  • Delete items from a working copy or repository

svn_delete

(PECL svn >= 0.4.0)

svn_delete — Delete items from a working copy or repository

Beschreibung

svn_delete ( string $path , bool $force = false ) : bool

Deletes the file, directory or symbolic link at path from the working directory. The item will be deleted from the repository the next time you call svn_commit() on the working copy.

Parameter-Liste

path

Path of item to delete.

Hinweis: Relative Pfade werden so aufgelöst, als ob das aktuelle Verzeichnis das wäre, in dem sich das PHP-Binary befindet. Um stattdessen das aktuelle Verzeichnis des aufrufenden Skripts zu nutzen, müssen sie die realpath()-Funktion oder dirname(__FILE__) zu Hilfe ziehen.

force

If true, the file will be deleted even if it has local modifications. Otherwise, local modifications will result in a failure. Default is false

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Siehe auch

  • » SVN documentation on svn delete


Recursively diffs two paths

  • « svn_delete
  • svn_export »
  • PHP Manual
  • SVN Funktionen
  • Recursively diffs two paths

svn_diff

(PECL svn >= 0.1.0)

svn_diff — Recursively diffs two paths

Beschreibung

svn_diff ( string $path1 , int $rev1 , string $path2 , int $rev2 ) : array

Recursively diffs two paths, path1 and path2.

Hinweis:

This is not a general-purpose diff utility. Only local files that are versioned may be diffed: other files will fail.

Parameter-Liste

path1

First path to diff. This can be a URL to a file/directory in an SVN repository or a local file/directory path.

Hinweis: Relative Pfade werden so aufgelöst, als ob das aktuelle Verzeichnis das wäre, in dem sich das PHP-Binary befindet. Um stattdessen das aktuelle Verzeichnis des aufrufenden Skripts zu nutzen, müssen sie die realpath()-Funktion oder dirname(__FILE__) zu Hilfe ziehen.

Warnung

If a local file path has only backslashes and no forward slashes, this extension will fail to find the path. Always replace all backslashes with forward slashes when using this function.

rev1

First path's revision number. Use SVN_REVISION_HEAD to specify the most recent revision.

path2

Second path to diff. See path1 for description.

rev2

Second path's revision number. See rev1 for description.

Rückgabewerte

Returns an array-list consisting of two streams: the first is the diff output and the second contains error stream output. The streams can be read using fread(). Returns false or null on error.

The diff output will, by default, be in the form of Subversion's custom unified diff format, but an » external diff engine may be used depending on Subversion's configuration.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 Basic example

This example demonstrates the basic usage of this function, and the retrieval of contents from the stream:

<?php
list($diff, $errors) = svn_diff(
    'http://www.example.com/svnroot/trunk/foo', SVN_REVISION_HEAD,
    'http://www.example.com/svnroot/branches/dev/foo', SVN_REVISION_HEAD
);
if (!$diff) exit;
$contents = '';
while (!feof($diff)) {
  $contents .= fread($diff, 8192);
}
fclose($diff);
fclose($errors);
var_dump($contents);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Index: http://www.example.com/svnroot/trunk/foo
===================================================================
--- http://www.example.com/svnroot/trunk/foo        (.../foo) (revision 23)
+++ http://www.example.com/svnroot/branches/dev/foo (.../foo) (revision 27)
 // further diff output

Beispiel #2 Diffing two revisions of a repository path

This example implements a wrapper function that allows a user to easily diff two revisions of the same item using an external repository path (the default syntax is somewhat verbose):

<?php
function svn_diff_same_item($path, $rev1, $rev2) {
    return svn_diff($path, $rev1, $path, $rev2);
}
?>

Beispiel #3 Portably diffing two local files

This example implements a wrapper function that portably diffs two local files, compensating for the realpath() fix and the backslashes bug:

<?php
function svn_diff_local($path1, $rev1, $path2, $rev2) {
    $path1 = str_replace('\\', '/', realpath($path1));
    $path2 = str_replace('\\', '/', realpath($path2));
    return svn_diff($path1, $rev1, $path2, $rev2);
}
?>

Siehe auch

  • » SVN documentation on svn diff


Export the contents of a SVN directory

  • « svn_diff
  • svn_fs_abort_txn »
  • PHP Manual
  • SVN Funktionen
  • Export the contents of a SVN directory

svn_export

(PECL svn >= 0.3.0)

svn_export — Export the contents of a SVN directory

Beschreibung

svn_export ( string $frompath , string $topath , bool $working_copy = true , int $revision_no = -1 ) : bool

Export the contents of either a working copy or repository into a 'clean' directory.

Parameter-Liste

frompath

The path to the current repository.

topath

The path to the new repository.

working_copy

If true, it will export uncommitted files from the working copy.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 svn_export() example

<?php
$working_dir     = '../';
$new_working_dir = '/home/user/devel/foo/trunk';

svn_export($working_dir, $new_working_dir);
?>

Siehe auch

  • svn_import() - Imports an unversioned path into a repository


Abort a transaction, returns true if everything is okay, false otherwise

  • « svn_export
  • svn_fs_apply_text »
  • PHP Manual
  • SVN Funktionen
  • Abort a transaction, returns true if everything is okay, false otherwise

svn_fs_abort_txn

(PECL svn >= 0.2.0)

svn_fs_abort_txn — Abort a transaction, returns true if everything is okay, false otherwise

Beschreibung

svn_fs_abort_txn ( resource $txn ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Abort a transaction, returns true if everything is okay, false otherwise

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Creates and returns a stream that will be used to replace

  • « svn_fs_abort_txn
  • svn_fs_begin_txn2 »
  • PHP Manual
  • SVN Funktionen
  • Creates and returns a stream that will be used to replace

svn_fs_apply_text

(PECL svn >= 0.2.0)

svn_fs_apply_text — Creates and returns a stream that will be used to replace

Beschreibung

svn_fs_apply_text ( resource $root , string $path ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Creates and returns a stream that will be used to replace

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Create a new transaction

  • « svn_fs_apply_text
  • svn_fs_change_node_prop »
  • PHP Manual
  • SVN Funktionen
  • Create a new transaction

svn_fs_begin_txn2

(PECL svn >= 0.2.0)

svn_fs_begin_txn2 — Create a new transaction

Beschreibung

svn_fs_begin_txn2 ( resource $repos , int $rev ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Create a new transaction

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Return true if everything is ok, false otherwise

  • « svn_fs_begin_txn2
  • svn_fs_check_path »
  • PHP Manual
  • SVN Funktionen
  • Return true if everything is ok, false otherwise

svn_fs_change_node_prop

(PECL svn >= 0.2.0)

svn_fs_change_node_prop — Return true if everything is ok, false otherwise

Beschreibung

svn_fs_change_node_prop ( resource $root , string $path , string $name , string $value ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Return true if everything is ok, false otherwise

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Determines what kind of item lives at path in a given repository fsroot

  • « svn_fs_change_node_prop
  • svn_fs_contents_changed »
  • PHP Manual
  • SVN Funktionen
  • Determines what kind of item lives at path in a given repository fsroot

svn_fs_check_path

(PECL svn >= 0.1.0)

svn_fs_check_path — Determines what kind of item lives at path in a given repository fsroot

Beschreibung

svn_fs_check_path ( resource $fsroot , string $path ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Determines what kind of item lives at path in a given repository fsroot

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Return true if content is different, false otherwise

  • « svn_fs_check_path
  • svn_fs_copy »
  • PHP Manual
  • SVN Funktionen
  • Return true if content is different, false otherwise

svn_fs_contents_changed

(PECL svn >= 0.2.0)

svn_fs_contents_changed — Return true if content is different, false otherwise

Beschreibung

svn_fs_contents_changed ( resource $root1 , string $path1 , resource $root2 , string $path2 ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Return true if content is different, false otherwise

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Copies a file or a directory, returns true if all is ok, false otherwise

  • « svn_fs_contents_changed
  • svn_fs_delete »
  • PHP Manual
  • SVN Funktionen
  • Copies a file or a directory, returns true if all is ok, false otherwise

svn_fs_copy

(PECL svn >= 0.2.0)

svn_fs_copy — Copies a file or a directory, returns true if all is ok, false otherwise

Beschreibung

svn_fs_copy ( resource $from_root , string $from_path , resource $to_root , string $to_path ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Copies a file or a directory, returns true if all is ok, false otherwise

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Deletes a file or a directory, return true if all is ok, false otherwise

  • « svn_fs_copy
  • svn_fs_dir_entries »
  • PHP Manual
  • SVN Funktionen
  • Deletes a file or a directory, return true if all is ok, false otherwise

svn_fs_delete

(PECL svn >= 0.2.0)

svn_fs_delete — Deletes a file or a directory, return true if all is ok, false otherwise

Beschreibung

svn_fs_delete ( resource $root , string $path ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Deletes a file or a directory, return true if all is ok, false otherwise

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Enumerates the directory entries under path; returns a hash of dir names to file type

  • « svn_fs_delete
  • svn_fs_file_contents »
  • PHP Manual
  • SVN Funktionen
  • Enumerates the directory entries under path; returns a hash of dir names to file type

svn_fs_dir_entries

(PECL svn >= 0.1.0)

svn_fs_dir_entries — Enumerates the directory entries under path; returns a hash of dir names to file type

Beschreibung

svn_fs_dir_entries ( resource $fsroot , string $path ) : array
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Enumerates the directory entries under path; returns a hash of dir names to file type

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Returns a stream to access the contents of a file from a given version of the fs

  • « svn_fs_dir_entries
  • svn_fs_file_length »
  • PHP Manual
  • SVN Funktionen
  • Returns a stream to access the contents of a file from a given version of the fs

svn_fs_file_contents

(PECL svn >= 0.1.0)

svn_fs_file_contents — Returns a stream to access the contents of a file from a given version of the fs

Beschreibung

svn_fs_file_contents ( resource $fsroot , string $path ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns a stream to access the contents of a file from a given version of the fs

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Returns the length of a file from a given version of the fs

  • « svn_fs_file_contents
  • svn_fs_is_dir »
  • PHP Manual
  • SVN Funktionen
  • Returns the length of a file from a given version of the fs

svn_fs_file_length

(PECL svn >= 0.1.0)

svn_fs_file_length — Returns the length of a file from a given version of the fs

Beschreibung

svn_fs_file_length ( resource $fsroot , string $path ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the length of a file from a given version of the fs

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Return true if the path points to a directory, false otherwise

  • « svn_fs_file_length
  • svn_fs_is_file »
  • PHP Manual
  • SVN Funktionen
  • Return true if the path points to a directory, false otherwise

svn_fs_is_dir

(PECL svn >= 0.2.0)

svn_fs_is_dir — Return true if the path points to a directory, false otherwise

Beschreibung

svn_fs_is_dir ( resource $root , string $path ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Return true if the path points to a directory, false otherwise

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Return true if the path points to a file, false otherwise

  • « svn_fs_is_dir
  • svn_fs_make_dir »
  • PHP Manual
  • SVN Funktionen
  • Return true if the path points to a file, false otherwise

svn_fs_is_file

(PECL svn >= 0.2.0)

svn_fs_is_file — Return true if the path points to a file, false otherwise

Beschreibung

svn_fs_is_file ( resource $root , string $path ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Return true if the path points to a file, false otherwise

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Creates a new empty directory, returns true if all is ok, false otherwise

  • « svn_fs_is_file
  • svn_fs_make_file »
  • PHP Manual
  • SVN Funktionen
  • Creates a new empty directory, returns true if all is ok, false otherwise

svn_fs_make_dir

(PECL svn >= 0.2.0)

svn_fs_make_dir — Creates a new empty directory, returns true if all is ok, false otherwise

Beschreibung

svn_fs_make_dir ( resource $root , string $path ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Creates a new empty directory, returns true if all is ok, false otherwise

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Creates a new empty file, returns true if all is ok, false otherwise

  • « svn_fs_make_dir
  • svn_fs_node_created_rev »
  • PHP Manual
  • SVN Funktionen
  • Creates a new empty file, returns true if all is ok, false otherwise

svn_fs_make_file

(PECL svn >= 0.2.0)

svn_fs_make_file — Creates a new empty file, returns true if all is ok, false otherwise

Beschreibung

svn_fs_make_file ( resource $root , string $path ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Creates a new empty file, returns true if all is ok, false otherwise

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Returns the revision in which path under fsroot was created

  • « svn_fs_make_file
  • svn_fs_node_prop »
  • PHP Manual
  • SVN Funktionen
  • Returns the revision in which path under fsroot was created

svn_fs_node_created_rev

(PECL svn >= 0.1.0)

svn_fs_node_created_rev — Returns the revision in which path under fsroot was created

Beschreibung

svn_fs_node_created_rev ( resource $fsroot , string $path ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the revision in which path under fsroot was created

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Returns the value of a property for a node

  • « svn_fs_node_created_rev
  • svn_fs_props_changed »
  • PHP Manual
  • SVN Funktionen
  • Returns the value of a property for a node

svn_fs_node_prop

(PECL svn >= 0.1.0)

svn_fs_node_prop — Returns the value of a property for a node

Beschreibung

svn_fs_node_prop ( resource $fsroot , string $path , string $propname ) : string
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the value of a property for a node

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Return true if props are different, false otherwise

  • « svn_fs_node_prop
  • svn_fs_revision_prop »
  • PHP Manual
  • SVN Funktionen
  • Return true if props are different, false otherwise

svn_fs_props_changed

(PECL svn >= 0.2.0)

svn_fs_props_changed — Return true if props are different, false otherwise

Beschreibung

svn_fs_props_changed ( resource $root1 , string $path1 , resource $root2 , string $path2 ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Return true if props are different, false otherwise

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Fetches the value of a named property

  • « svn_fs_props_changed
  • svn_fs_revision_root »
  • PHP Manual
  • SVN Funktionen
  • Fetches the value of a named property

svn_fs_revision_prop

(PECL svn >= 0.1.0)

svn_fs_revision_prop — Fetches the value of a named property

Beschreibung

svn_fs_revision_prop ( resource $fs , int $revnum , string $propname ) : string
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Fetches the value of a named property

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Get a handle on a specific version of the repository root

  • « svn_fs_revision_prop
  • svn_fs_txn_root »
  • PHP Manual
  • SVN Funktionen
  • Get a handle on a specific version of the repository root

svn_fs_revision_root

(PECL svn >= 0.1.0)

svn_fs_revision_root — Get a handle on a specific version of the repository root

Beschreibung

svn_fs_revision_root ( resource $fs , int $revnum ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Get a handle on a specific version of the repository root

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Creates and returns a transaction root

  • « svn_fs_revision_root
  • svn_fs_youngest_rev »
  • PHP Manual
  • SVN Funktionen
  • Creates and returns a transaction root

svn_fs_txn_root

(PECL svn >= 0.2.0)

svn_fs_txn_root — Creates and returns a transaction root

Beschreibung

svn_fs_txn_root ( resource $txn ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Creates and returns a transaction root

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Returns the number of the youngest revision in the filesystem

  • « svn_fs_txn_root
  • svn_import »
  • PHP Manual
  • SVN Funktionen
  • Returns the number of the youngest revision in the filesystem

svn_fs_youngest_rev

(PECL svn >= 0.1.0)

svn_fs_youngest_rev — Returns the number of the youngest revision in the filesystem

Beschreibung

svn_fs_youngest_rev ( resource $fs ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Returns the number of the youngest revision in the filesystem

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Imports an unversioned path into a repository

  • « svn_fs_youngest_rev
  • svn_log »
  • PHP Manual
  • SVN Funktionen
  • Imports an unversioned path into a repository

svn_import

(PECL svn >= 0.2.0)

svn_import — Imports an unversioned path into a repository

Beschreibung

svn_import ( string $path , string $url , bool $nonrecursive ) : bool

Commits unversioned path into repository at url. If path is a directory and nonrecursive is false, the directory will be imported recursively.

Parameter-Liste

path

Path of file or directory to import.

Hinweis: Relative Pfade werden so aufgelöst, als ob das aktuelle Verzeichnis das wäre, in dem sich das PHP-Binary befindet. Um stattdessen das aktuelle Verzeichnis des aufrufenden Skripts zu nutzen, müssen sie die realpath()-Funktion oder dirname(__FILE__) zu Hilfe ziehen.

url

Repository URL to import into.

nonrecursive

Whether or not to refrain from recursively processing directories.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 Basic example

This example demonstrates a basic use-case of this function. To import a directory named new-files into the repository at http://www.example.com/svnroot/incoming/abc, use:

<?php
svn_import(realpath('new-files'), 'http://www.example.com/svnroot/incoming/abc', false);
?>

Siehe auch

  • svn_add() - Schedules the addition of an item in a working directory
  • » SVN documentation for svn import


Returns the commit log messages of a repository URL

  • « svn_import
  • svn_ls »
  • PHP Manual
  • SVN Funktionen
  • Returns the commit log messages of a repository URL

svn_log

(PECL svn >= 0.1.0)

svn_log — Returns the commit log messages of a repository URL

Beschreibung

svn_log ( string $repos_url , int $start_revision = ? , int $end_revision = ? , int $limit = 0 , int $flags = SVN_DISCOVER_CHANGED_PATHS | SVN_STOP_ON_COPY ) : array

svn_log() returns the complete history of the item at the repository URL repos_url, or the history of a specific revision if start_revision is set. This function is equivalent to svn log --verbose -r $start_revision $repos_url.

Parameter-Liste

repos_url

Repository URL of the item to retrieve log history from.

start_revision

Revision number of the first log to retrieve. Use SVN_REVISION_HEAD to retrieve the log from the most recent revision.

end_revision

Revision number of the last log to retrieve. Defaults to start_revision if specified or to SVN_REVISION_INITIAL otherwise.

limit

Number of logs to retrieve.

flags

Any combination of SVN_OMIT_MESSAGES, SVN_DISCOVER_CHANGED_PATHS and SVN_STOP_ON_COPY.

Rückgabewerte

On success, this function returns an array file listing in the format of:

[0] => Array, ordered most recent (highest) revision first
(
    [rev] => integer revision number
    [author] => string author name
    [msg] => string log message
    [date] => string date formatted per ISO 8601, i.e. date('c')
    [paths] => Array, describing changed files
        (
            [0] => Array
                (
                    [action] => string letter signifying change
                    [path] =>  absolute repository path of changed file
                )
            [1] => ...
        )
)
[1] => ...

Hinweis:

The output will always be a numerically indexed array of arrays, even when there are none or only one log message(s).

The value of action is a subset of the » status output in the first column, where possible values are:

Actions
Letter | Description
M | Item/props was modified
A | Item was added
D | Item was deleted
R | Item was replaced

If no changes were made to the item, an empty array is returned.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 svn_log() example

<?php
print_r( svn_log('http://www.example.com/', 23) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
    (
        [rev] => 23
        [author] => 'joe'
        [msg] => 'Add cheese and salami to our sandwich.'
        [date] => '2007-04-06T16:00:27-04:00'
        [paths] => Array
            (
                [0] => Array
                    (
                        [action] => 'M'
                        [path] =>  '/sandwich.txt'
                    )
            )
    )
)

Siehe auch

  • » SVN documentation on svn log


Returns list of directory contents in repository URL, optionally at revision number

  • « svn_log
  • svn_mkdir »
  • PHP Manual
  • SVN Funktionen
  • Returns list of directory contents in repository URL, optionally at revision number

svn_ls

(PECL svn >= 0.1.0)

svn_ls — Returns list of directory contents in repository URL, optionally at revision number

Beschreibung

svn_ls ( string $repos_url , int $revision_no = SVN_REVISION_HEAD , bool $recurse = false , bool $peg = false ) : array

This function queries the repository URL and returns a list of files and directories, optionally from a specific revision. This is equivalent to svn list $repos_url[@$revision_no]

Hinweis:

This function does not work with working copies. repos_url must be a repository URL.

Parameter-Liste

url

URL of the repository, eg. http://www.example.com/svnroot. To access a local Subversion repository via filesystem, use the file URI scheme, eg. file:///home/user/svn-repos

revision

Integer revision number to retrieve listing of. When omitted, the HEAD revision is used.

recurse

Enables recursion.

Rückgabewerte

On success, this function returns an array file listing in the format of:

[0] => Array
    (
        [created_rev] => integer revision number of last edit
        [last_author] => string author name of last edit
        [size] => integer byte file size of file
        [time] => string date of last edit in form 'M d H:i'
                  or 'M d Y', depending on how old the file is
        [time_t] => integer unix timestamp of last edit
        [name] => name of file/directory
        [type] => type, can be 'file' or 'dir'
    )
[1] => ...

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 svn_ls() example

<?php
print_r( svn_ls('http://www.example.com/svnroot/') );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Array
        (
            [created_rev] => 20
            [last_author] => Joe
            [size] => 0
            [time] => Apr 02 09:28
            [time_t] => 1175520529
            [name] => tags
            [type] => dir
        )
    [1] => Array
        (
            [created_rev] => 23
            [last_author] => Bob
            [size] => 0
            [time] => Apr 02 15:15
            [time_t] => 1175541322
            [name] => trunk
            [type] => dir
        )
)

Siehe auch

  • » SVN documentation on svn list


Creates a directory in a working copy or repository

  • « svn_ls
  • svn_repos_create »
  • PHP Manual
  • SVN Funktionen
  • Creates a directory in a working copy or repository

svn_mkdir

(PECL svn >= 0.4.0)

svn_mkdir — Creates a directory in a working copy or repository

Beschreibung

svn_mkdir ( string $path , string $log_message = ? ) : bool

Creates a directory in a working copy or repository.

Parameter-Liste

path

The path to the working copy or repository.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • svn_add() - Schedules the addition of an item in a working directory
  • svn_copy()


Create a new subversion repository at path

  • « svn_mkdir
  • svn_repos_fs_begin_txn_for_commit »
  • PHP Manual
  • SVN Funktionen
  • Create a new subversion repository at path

svn_repos_create

(PECL svn >= 0.1.0)

svn_repos_create — Create a new subversion repository at path

Beschreibung

svn_repos_create ( string $path , array $config = ? , array $fsconfig = ? ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Create a new subversion repository at path

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Create a new transaction

  • « svn_repos_create
  • svn_repos_fs_commit_txn »
  • PHP Manual
  • SVN Funktionen
  • Create a new transaction

svn_repos_fs_begin_txn_for_commit

(PECL svn >= 0.2.0)

svn_repos_fs_begin_txn_for_commit — Create a new transaction

Beschreibung

svn_repos_fs_begin_txn_for_commit ( resource $repos , int $rev , string $author , string $log_msg ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Create a new transaction

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Commits a transaction and returns the new revision

  • « svn_repos_fs_begin_txn_for_commit
  • svn_repos_fs »
  • PHP Manual
  • SVN Funktionen
  • Commits a transaction and returns the new revision

svn_repos_fs_commit_txn

(PECL svn >= 0.2.0)

svn_repos_fs_commit_txn — Commits a transaction and returns the new revision

Beschreibung

svn_repos_fs_commit_txn ( resource $txn ) : int
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Commits a transaction and returns the new revision

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Gets a handle on the filesystem for a repository

  • « svn_repos_fs_commit_txn
  • svn_repos_hotcopy »
  • PHP Manual
  • SVN Funktionen
  • Gets a handle on the filesystem for a repository

svn_repos_fs

(PECL svn >= 0.1.0)

svn_repos_fs — Gets a handle on the filesystem for a repository

Beschreibung

svn_repos_fs ( resource $repos ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Gets a handle on the filesystem for a repository

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Make a hot-copy of the repos at repospath; copy it to destpath

  • « svn_repos_fs
  • svn_repos_open »
  • PHP Manual
  • SVN Funktionen
  • Make a hot-copy of the repos at repospath; copy it to destpath

svn_repos_hotcopy

(PECL svn >= 0.1.0)

svn_repos_hotcopy — Make a hot-copy of the repos at repospath; copy it to destpath

Beschreibung

svn_repos_hotcopy ( string $repospath , string $destpath , bool $cleanlogs ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Make a hot-copy of the repos at repospath; copy it to destpath

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Open a shared lock on a repository

  • « svn_repos_hotcopy
  • svn_repos_recover »
  • PHP Manual
  • SVN Funktionen
  • Open a shared lock on a repository

svn_repos_open

(PECL svn >= 0.1.0)

svn_repos_open — Open a shared lock on a repository

Beschreibung

svn_repos_open ( string $path ) : resource
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Open a shared lock on a repository.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Run recovery procedures on the repository located at path

  • « svn_repos_open
  • svn_revert »
  • PHP Manual
  • SVN Funktionen
  • Run recovery procedures on the repository located at path

svn_repos_recover

(PECL svn >= 0.1.0)

svn_repos_recover — Run recovery procedures on the repository located at path

Beschreibung

svn_repos_recover ( string $path ) : bool
Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Run recovery procedures on the repository located at path.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.


Revert changes to the working copy

  • « svn_repos_recover
  • svn_status »
  • PHP Manual
  • SVN Funktionen
  • Revert changes to the working copy

svn_revert

(PECL svn >= 0.3.0)

svn_revert — Revert changes to the working copy

Beschreibung

svn_revert ( string $path , bool $recursive = false ) : bool

Revert any local changes to the path in a working copy.

Parameter-Liste

path

The path to the working repository.

recursive

Optionally make recursive changes.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • svn_delete() - Delete items from a working copy or repository
  • svn_export() - Export the contents of a SVN directory


Returns the status of working copy files and directories

  • « svn_revert
  • svn_update »
  • PHP Manual
  • SVN Funktionen
  • Returns the status of working copy files and directories

svn_status

(PECL svn >= 0.1.0)

svn_status — Returns the status of working copy files and directories

Beschreibung

svn_status ( string $path , int $flags = 0 ) : array

Returns the status of working copy files and directories, giving modifications, additions, deletions and other changes to items in the working copy.

Parameter-Liste

path

Local path to file or directory to retrieve status of.

Hinweis: Relative Pfade werden so aufgelöst, als ob das aktuelle Verzeichnis das wäre, in dem sich das PHP-Binary befindet. Um stattdessen das aktuelle Verzeichnis des aufrufenden Skripts zu nutzen, müssen sie die realpath()-Funktion oder dirname(__FILE__) zu Hilfe ziehen.

flags

Any combination of Svn::NON_RECURSIVE, Svn::ALL (regardless of modification status), Svn::SHOW_UPDATES (entries will be added for items that are out-of-date), Svn::NO_IGNORE (disregard svn:ignore properties when scanning for new files) and Svn::IGNORE_EXTERNALS.

Rückgabewerte

Returns a numerically indexed array of associative arrays detailing the status of items in the repository:

Array (
    [0] => Array (
        // information on item
    )
    [1] => ...
)

The information on the item is an associative array that can contain the following keys:

path
String path to file/directory of this entry on local filesystem.
text_status
Status of item's text. Siehe auch Status-Konstanten für mögliche Werte.
repos_text_status
Status of item's text in repository. Only accurate if update was set to true. Siehe auch Status-Konstanten für mögliche Werte.
prop_status
Status of item's properties. Siehe auch Status-Konstanten für mögliche Werte.
repos_prop_status
Status of item's property in repository. Only accurate if update was set to true. Siehe auch Status-Konstanten für mögliche Werte.
locked
Whether or not the item is locked. (Only set if true.)
copied
Whether or not the item was copied (scheduled for addition with history). (Only set if true.)
switched
Whether or not the item was switched using the switch command. (Only set if true)

These keys are only set if the item is versioned:

name
Base name of item in repository.
url
URL of item in repository.
repos
Base URL of repository.
revision
Integer revision of item in working copy.
kind
Type of item, i.e. file or directory. Siehe auch Type-Konstanten für mögliche Werte.
schedule
Scheduled action for item, i.e. addition or deletion. Constants for these magic numbers are not available, they can be emulated by using:
<?php
if (!defined('svn_wc_schedule_normal')) {
    define('svn_wc_schedule_normal',  0); // nothing special
    define('svn_wc_schedule_add',     1); // item will be added
    define('svn_wc_schedule_delete',  2); // item will be deleted
    define('svn_wc_schedule_replace', 3); // item will be added and deleted
}
?>
deleted
Whether or not the item was deleted, but parent revision lags behind. (Only set if true.)
absent
Whether or not the item is absent, that is, Subversion knows that there should be something there but there isn't. (Only set if true.)
incomplete
Whether or not the entries file for a directory is incomplete. (Only set if true.)
cmt_date
Integer Unix timestamp of last commit date. (Unaffected by update.)
cmt_rev
Integer revision of last commit. (Unaffected by update.)
cmt_author
String author of last commit. (Unaffected by update.)
prop_time
Integer Unix timestamp of last up-to-date time for properties
text_time
Integer Unix timestamp of last up-to-date time for text

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 Basic example

This example demonstrates a basic, theoretical usage of this function.

<?php
print_r(svn_status(realpath('wc')));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array (
    [0] => Array (
        [path] => /home/bob/wc/sandwich.txt
        [text_status] => 8 // item was modified
        [repos_text_status] => 1 // no information available, use update
        [prop_status] => 3 // no changes
        [repos_prop_status] => 1 // no information available, use update
        [name] => sandwich.txt
        [url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt
        [repos] => http://www.example.com/svnroot/
        [revision] => 123
        [kind] => 1 // file
        [schedule] => 0 // no special actions scheduled
        [cmt_date] => 1165543135
        [cmt_rev] => 120
        [cmt_author] => Alice
        [prop_time] => 1180201728
        [text_time] => 1180201729
    )
)

Siehe auch

  • svn_update() - Update working copy
  • svn_log() - Returns the commit log messages of a repository URL
  • » SVN documentation for svn status


Update working copy

  • « svn_status
  • TCP »
  • PHP Manual
  • SVN Funktionen
  • Update working copy

svn_update

(PECL svn >= 0.1.0)

svn_update — Update working copy

Beschreibung

svn_update ( string $path , int $revno = SVN_REVISION_HEAD , bool $recurse = true ) : int

Update working copy at path to revision revno. If recurse is true, directories will be recursively updated.

Parameter-Liste

path

Path to local working copy.

Hinweis: Relative Pfade werden so aufgelöst, als ob das aktuelle Verzeichnis das wäre, in dem sich das PHP-Binary befindet. Um stattdessen das aktuelle Verzeichnis des aufrufenden Skripts zu nutzen, müssen sie die realpath()-Funktion oder dirname(__FILE__) zu Hilfe ziehen.

revno

Revision number to update to, default is SVN_REVISION_HEAD.

recurse

Whether or not to recursively update directories.

Rückgabewerte

Returns new revision number on success, returns false on failure.

Anmerkungen

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Beispiele

Beispiel #1 Basic example

This example demonstrates basic usage of this function:

<?php
echo svn_update(realpath('working-copy'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

234

Siehe auch

  • svn_checkout() - Checks out a working copy from the repository
  • svn_commit() - Sends changes from the local working copy to the repository
  • » SVN documentation for svn update


TCP Wrappers

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • TCP Funktionen
    • tcpwrap_check — Performs a tcpwrap check


Einführung

The TCP wrappers provides a classical Unix mechanism which has been designed to check if the remote client is able to connect from the given IP address.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/tcpwrap.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


  • « Ressource-Typen
  • TCP Funktionen »
  • PHP Manual
  • TCP
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


  • « Vordefinierte Konstanten
  • tcpwrap_check »
  • PHP Manual
  • TCP
  • TCP Funktionen

TCP Funktionen

Inhaltsverzeichnis

  • tcpwrap_check — Performs a tcpwrap check


Performs a tcpwrap check

  • « TCP Funktionen
  • Varnish »
  • PHP Manual
  • TCP Funktionen
  • Performs a tcpwrap check

tcpwrap_check

(PECL tcpwrap >= 0.1.0)

tcpwrap_check — Performs a tcpwrap check

Beschreibung

tcpwrap_check ( string $daemon , string $address , string $user = ? , bool $nodns = false ) : bool

This function consults the /etc/hosts.allow and /etc/hosts.deny files to check if access to service daemon should be granted or denied for a client.

Parameter-Liste

daemon

The service name.

address

The client remote address. Can be either an IP address or a domain name.

user

An optional user name.

nodns

If address looks like domain name then DNS is used to resolve it to IP address; set nodns to true to avoid this.

Rückgabewerte

This function returns true if access should be granted, false otherwise.

Beispiele

Beispiel #1 Deny all connections from localhost

If your /etc/hosts.deny file contains:

php: 127.0.0.1

And your code looks like:

<?php
if (!tcpwrap_check('php', $_SERVER['REMOTE_ADDR'])) {
  die('You are not welcome here');
}
?>

Siehe auch

For more details please consult hosts_access(3) man page.


Varnish

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Basic VarnishAdmin usage
    • Basic VarnishStat usage
    • Basic VarnishLog usage
  • VarnishAdmin — The VarnishAdmin class
    • VarnishAdmin::auth — Authenticate on a varnish instance
    • VarnishAdmin::ban — Ban URLs using a VCL expression
    • VarnishAdmin::banUrl — Ban an URL using a VCL expression
    • VarnishAdmin::clearPanic — Clear varnish instance panic messages
    • VarnishAdmin::connect — Connect to a varnish instance administration interface
    • VarnishAdmin::__construct — VarnishAdmin constructor
    • VarnishAdmin::disconnect — Disconnect from a varnish instance administration interface
    • VarnishAdmin::getPanic — Get the last panic message on a varnish instance
    • VarnishAdmin::getParams — Fetch current varnish instance configuration parameters
    • VarnishAdmin::isRunning — Check if the varnish slave process is currently running
    • VarnishAdmin::setCompat — Set the class compat configuration param
    • VarnishAdmin::setHost — Set the class host configuration param
    • VarnishAdmin::setIdent — Set the class ident configuration param
    • VarnishAdmin::setParam — Set configuration param on the current varnish instance
    • VarnishAdmin::setPort — Set the class port configuration param
    • VarnishAdmin::setSecret — Set the class secret configuration param
    • VarnishAdmin::setTimeout — Set the class timeout configuration param
    • VarnishAdmin::start — Start varnish worker process
    • VarnishAdmin::stop — Stop varnish worker process
  • VarnishStat — The VarnishStat class
    • VarnishStat::__construct — VarnishStat constructor
    • VarnishStat::getSnapshot — Get the current varnish instance statistics snapshot
  • VarnishLog — The VarnishLog class
    • VarnishLog::__construct — Varnishlog constructor
    • VarnishLog::getLine — Get next log line
    • VarnishLog::getTagName — Get the log tag string representation by its index


Einführung

Varnish Cache is an open source, state of the art web application accelerator. The extension makes it possible to interact with a running varnish instance through TCP socket or shared memory.


Anforderungen

To use this extension, you will need Varnish Cache of the version >=3.0 installed, available on the » Varnish Cache homepage


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/varnish.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/varnish/.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

VARNISH_STATUS_SYNTAX (int)
VARNISH_STATUS_UNKNOWN (int)
VARNISH_STATUS_UNIMPL (int)
VARNISH_STATUS_TOOFEW (int)
VARNISH_STATUS_TOOMANY (int)
VARNISH_STATUS_PARAM (int)
VARNISH_STATUS_AUTH (int)
VARNISH_STATUS_OK (int)
VARNISH_STATUS_CANT (int)
VARNISH_STATUS_COMMS (int)
VARNISH_STATUS_CLOSE (int)
VARNISH_CONFIG_IDENT (string)
VARNISH_CONFIG_HOST (string)
VARNISH_CONFIG_PORT (string)
VARNISH_CONFIG_TIMEOUT (string)
VARNISH_CONFIG_SECRET (string)
VARNISH_CONFIG_COMPAT (string)
VARNISH_COMPAT_2 (int)
VARNISH_COMPAT_3 (int)


Beispiele

Inhaltsverzeichnis

  • Basic VarnishAdmin usage
  • Basic VarnishStat usage
  • Basic VarnishLog usage


Basic VarnishAdmin usage

The example illustrates a simple usage of the ban functionality

Beispiel #1 Ban an URL

<?php

$args = array(
    VARNISH_CONFIG_HOST    => "::1",
    VARNISH_CONFIG_PORT    => 6082,
    VARNISH_CONFIG_SECRET  => "5174826b-8595-4958-aa7a-0609632ad7ca",
    VARNISH_CONFIG_TIMEOUT => 300,
);

$va = new VarnishAdmin($args);

try {
    if(!$va->connect()) {
        throw new VarnishException("Connection failed\n");
    }
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

try {
    if(!$va->auth()) {
        throw new VarnishException("Auth failed\n");
    }
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

try {
    $status = $va->ban('req.url ~ "^/$"');
    if (VARNISH_STATUS_OK != $status) {
        throw new VarnishException("Ban method returned $status status\n");
    }
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

exit(0);

?>


Basic VarnishStat usage

The example illustrates getting varnish statistic snapshot from shared memory

Beispiel #1 Get statistic snapshot

<?php

$vs = new VarnishStat;

try {
    $data = $vs->getSnapshot();
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

exit(0);
?>


Basic VarnishLog usage

The example illustrates reading varnish log lines from shared memory

Beispiel #1 Read varnish shared memory log

<?php

$vl = new VarnishLog;
while(1) {
    $line = $vl->getLine();
    printf("%s %d %s", VarnishLog::getTagName($line['tag'], $line['id'],
    $line['data']);
}

exit(0);
?>


The VarnishAdmin class

(PECL varnish >= 0.3)

Einführung

Klassenbeschreibung

VarnishAdmin {
/* Methoden */
public auth ( ) : bool
public ban ( string $vcl_regex ) : int
public banUrl ( string $vcl_regex ) : int
public clearPanic ( ) : int
public connect ( ) : bool
public __construct ( array $args = ? )
public disconnect ( ) : bool
public getPanic ( ) : string
public getParams ( ) : array
public isRunning ( ) : bool
public setCompat ( int $compat ) : void
public setHost ( string $host ) : void
public setIdent ( string $ident ) : void
public setParam ( string $name , string|int $value ) : int
public setPort ( int $port ) : void
public setSecret ( string $secret ) : void
public setTimeout ( int $timeout ) : void
public start ( ) : int
public stop ( ) : int
}

Inhaltsverzeichnis

  • VarnishAdmin::auth — Authenticate on a varnish instance
  • VarnishAdmin::ban — Ban URLs using a VCL expression
  • VarnishAdmin::banUrl — Ban an URL using a VCL expression
  • VarnishAdmin::clearPanic — Clear varnish instance panic messages
  • VarnishAdmin::connect — Connect to a varnish instance administration interface
  • VarnishAdmin::__construct — VarnishAdmin constructor
  • VarnishAdmin::disconnect — Disconnect from a varnish instance administration interface
  • VarnishAdmin::getPanic — Get the last panic message on a varnish instance
  • VarnishAdmin::getParams — Fetch current varnish instance configuration parameters
  • VarnishAdmin::isRunning — Check if the varnish slave process is currently running
  • VarnishAdmin::setCompat — Set the class compat configuration param
  • VarnishAdmin::setHost — Set the class host configuration param
  • VarnishAdmin::setIdent — Set the class ident configuration param
  • VarnishAdmin::setParam — Set configuration param on the current varnish instance
  • VarnishAdmin::setPort — Set the class port configuration param
  • VarnishAdmin::setSecret — Set the class secret configuration param
  • VarnishAdmin::setTimeout — Set the class timeout configuration param
  • VarnishAdmin::start — Start varnish worker process
  • VarnishAdmin::stop — Stop varnish worker process


Authenticate on a varnish instance

  • « VarnishAdmin
  • VarnishAdmin::ban »
  • PHP Manual
  • VarnishAdmin
  • Authenticate on a varnish instance

VarnishAdmin::auth

(PECL varnish >= 0.3)

VarnishAdmin::auth — Authenticate on a varnish instance

Beschreibung

public VarnishAdmin::auth ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Ban URLs using a VCL expression

  • « VarnishAdmin::auth
  • VarnishAdmin::banUrl »
  • PHP Manual
  • VarnishAdmin
  • Ban URLs using a VCL expression

VarnishAdmin::ban

(PECL varnish >= 0.3)

VarnishAdmin::ban — Ban URLs using a VCL expression

Beschreibung

public VarnishAdmin::ban ( string $vcl_regex ) : int

Parameter-Liste

vcl_regex

Varnish VCL expression. It's based on the varnish ban command.

Rückgabewerte

Returns the varnish command status.


Ban an URL using a VCL expression

  • « VarnishAdmin::ban
  • VarnishAdmin::clearPanic »
  • PHP Manual
  • VarnishAdmin
  • Ban an URL using a VCL expression

VarnishAdmin::banUrl

(PECL varnish >= 0.3)

VarnishAdmin::banUrl — Ban an URL using a VCL expression

Beschreibung

public VarnishAdmin::banUrl ( string $vcl_regex ) : int

Parameter-Liste

vcl_regex

URL regular expression in PCRE compatible syntax. It's based on the ban.url varnish command.

Rückgabewerte

Returns the varnish command status.


Clear varnish instance panic messages

  • « VarnishAdmin::banUrl
  • VarnishAdmin::connect »
  • PHP Manual
  • VarnishAdmin
  • Clear varnish instance panic messages

VarnishAdmin::clearPanic

(PECL varnish >= 0.4)

VarnishAdmin::clearPanic — Clear varnish instance panic messages

Beschreibung

public VarnishAdmin::clearPanic ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the varnish command status.


Connect to a varnish instance administration interface

  • « VarnishAdmin::clearPanic
  • VarnishAdmin::__construct »
  • PHP Manual
  • VarnishAdmin
  • Connect to a varnish instance administration interface

VarnishAdmin::connect

(PECL varnish >= 0.3)

VarnishAdmin::connect — Connect to a varnish instance administration interface

Beschreibung

public VarnishAdmin::connect ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


VarnishAdmin constructor

  • « VarnishAdmin::connect
  • VarnishAdmin::disconnect »
  • PHP Manual
  • VarnishAdmin
  • VarnishAdmin constructor

VarnishAdmin::__construct

(PECL varnish >= 0.3)

VarnishAdmin::__construct — VarnishAdmin constructor

Beschreibung

public VarnishAdmin::__construct ( array $args = ? )

Parameter-Liste

args

Configuration arguments. The possible keys are:

VARNISH_CONFIG_IDENT - local varnish instance ident
VARNISH_CONFIG_HOST - varnish instance ip
VARNISH_CONFIG_PORT - varnish instance port
VARNISH_CONFIG_SECRET - varnish instance secret
VARNISH_CONFIG_TIMEOUT - connection read timeout
VARNISH_CONFIG_COMPAT - varnish major version compatibility

Rückgabewerte

Beispiele

Beispiel #1 VarnishAdmin::__construct() example

<?php
    $args = array(
        VARNISH_CONFIG_HOST => "::1",
        VARNISH_CONFIG_PORT => 6082,
        VARNISH_CONFIG_SECRET => "5174826b-8595-4958-aa7a-0609632ad7ca",
        VARNISH_CONFIG_TIMEOUT => 300,
    );
    $va = new VarnishAdmin($args);
?>


Disconnect from a varnish instance administration interface

  • « VarnishAdmin::__construct
  • VarnishAdmin::getPanic »
  • PHP Manual
  • VarnishAdmin
  • Disconnect from a varnish instance administration interface

VarnishAdmin::disconnect

(PECL varnish >= 1.0.0)

VarnishAdmin::disconnect — Disconnect from a varnish instance administration interface

Beschreibung

public VarnishAdmin::disconnect ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Get the last panic message on a varnish instance

  • « VarnishAdmin::disconnect
  • VarnishAdmin::getParams »
  • PHP Manual
  • VarnishAdmin
  • Get the last panic message on a varnish instance

VarnishAdmin::getPanic

(PECL varnish >= 0.4)

VarnishAdmin::getPanic — Get the last panic message on a varnish instance

Beschreibung

public VarnishAdmin::getPanic ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the last panic message on the current varnish instance.


Fetch current varnish instance configuration parameters

  • « VarnishAdmin::getPanic
  • VarnishAdmin::isRunning »
  • PHP Manual
  • VarnishAdmin
  • Fetch current varnish instance configuration parameters

VarnishAdmin::getParams

(PECL varnish >= 0.4)

VarnishAdmin::getParams — Fetch current varnish instance configuration parameters

Beschreibung

public VarnishAdmin::getParams ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array with the varnish configuration parameters.


Check if the varnish slave process is currently running

  • « VarnishAdmin::getParams
  • VarnishAdmin::setCompat »
  • PHP Manual
  • VarnishAdmin
  • Check if the varnish slave process is currently running

VarnishAdmin::isRunning

(PECL varnish >= 0.3)

VarnishAdmin::isRunning — Check if the varnish slave process is currently running

Beschreibung

public VarnishAdmin::isRunning ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set the class compat configuration param

  • « VarnishAdmin::isRunning
  • VarnishAdmin::setHost »
  • PHP Manual
  • VarnishAdmin
  • Set the class compat configuration param

VarnishAdmin::setCompat

(PECL varnish >= 0.9.2)

VarnishAdmin::setCompat — Set the class compat configuration param

Beschreibung

public VarnishAdmin::setCompat ( int $compat ) : void

Parameter-Liste

compat

Varnish compatibility option.

Rückgabewerte


Set the class host configuration param

  • « VarnishAdmin::setCompat
  • VarnishAdmin::setIdent »
  • PHP Manual
  • VarnishAdmin
  • Set the class host configuration param

VarnishAdmin::setHost

(PECL varnish >= 0.8)

VarnishAdmin::setHost — Set the class host configuration param

Beschreibung

public VarnishAdmin::setHost ( string $host ) : void

Parameter-Liste

host

Connection host configuration parameter.

Rückgabewerte


Set the class ident configuration param

  • « VarnishAdmin::setHost
  • VarnishAdmin::setParam »
  • PHP Manual
  • VarnishAdmin
  • Set the class ident configuration param

VarnishAdmin::setIdent

(PECL varnish >= 0.8)

VarnishAdmin::setIdent — Set the class ident configuration param

Beschreibung

public VarnishAdmin::setIdent ( string $ident ) : void

Parameter-Liste

ident

Connection ident configuration parameter.

Rückgabewerte


Set configuration param on the current varnish instance

  • « VarnishAdmin::setIdent
  • VarnishAdmin::setPort »
  • PHP Manual
  • VarnishAdmin
  • Set configuration param on the current varnish instance

VarnishAdmin::setParam

(PECL varnish >= 0.4)

VarnishAdmin::setParam — Set configuration param on the current varnish instance

Beschreibung

public VarnishAdmin::setParam ( string $name , string|int $value ) : int

Parameter-Liste

name

Varnish configuration param name.

value

Varnish configuration param value.

Rückgabewerte

Returns the varnish command status.


Set the class port configuration param

  • « VarnishAdmin::setParam
  • VarnishAdmin::setSecret »
  • PHP Manual
  • VarnishAdmin
  • Set the class port configuration param

VarnishAdmin::setPort

(PECL varnish >= 0.8)

VarnishAdmin::setPort — Set the class port configuration param

Beschreibung

public VarnishAdmin::setPort ( int $port ) : void

Parameter-Liste

port

Connection port configuration parameter.

Rückgabewerte


Set the class secret configuration param

  • « VarnishAdmin::setPort
  • VarnishAdmin::setTimeout »
  • PHP Manual
  • VarnishAdmin
  • Set the class secret configuration param

VarnishAdmin::setSecret

(PECL varnish >= 0.8)

VarnishAdmin::setSecret — Set the class secret configuration param

Beschreibung

public VarnishAdmin::setSecret ( string $secret ) : void

Parameter-Liste

secret

Connection secret configuration parameter.

Rückgabewerte


Set the class timeout configuration param

  • « VarnishAdmin::setSecret
  • VarnishAdmin::start »
  • PHP Manual
  • VarnishAdmin
  • Set the class timeout configuration param

VarnishAdmin::setTimeout

(PECL varnish >= 0.8)

VarnishAdmin::setTimeout — Set the class timeout configuration param

Beschreibung

public VarnishAdmin::setTimeout ( int $timeout ) : void

Parameter-Liste

timeout

Connection timeout configuration parameter.

Rückgabewerte


Start varnish worker process

  • « VarnishAdmin::setTimeout
  • VarnishAdmin::stop »
  • PHP Manual
  • VarnishAdmin
  • Start varnish worker process

VarnishAdmin::start

(PECL varnish >= 0.3)

VarnishAdmin::start — Start varnish worker process

Beschreibung

public VarnishAdmin::start ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the varnish command status.


Stop varnish worker process

  • « VarnishAdmin::start
  • VarnishStat »
  • PHP Manual
  • VarnishAdmin
  • Stop varnish worker process

VarnishAdmin::stop

(PECL varnish >= 0.3)

VarnishAdmin::stop — Stop varnish worker process

Beschreibung

public VarnishAdmin::stop ( ) : int

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the varnish command status.


The VarnishStat class

(PECL varnish >= 0.3)

Einführung

Klassenbeschreibung

VarnishStat {
/* Methoden */
public __construct ( array $args = ? )
public getSnapshot ( ) : array
}

Inhaltsverzeichnis

  • VarnishStat::__construct — VarnishStat constructor
  • VarnishStat::getSnapshot — Get the current varnish instance statistics snapshot


VarnishStat constructor

  • « VarnishStat
  • VarnishStat::getSnapshot »
  • PHP Manual
  • VarnishStat
  • VarnishStat constructor

VarnishStat::__construct

(PECL varnish >= 0.3)

VarnishStat::__construct — VarnishStat constructor

Beschreibung

public VarnishStat::__construct ( array $args = ? )

Parameter-Liste

args

Configuration arguments. The possible keys are:

VARNISH_CONFIG_IDENT - local varnish instance ident path

Rückgabewerte


Get the current varnish instance statistics snapshot

  • « VarnishStat::__construct
  • VarnishLog »
  • PHP Manual
  • VarnishStat
  • Get the current varnish instance statistics snapshot

VarnishStat::getSnapshot

(PECL varnish >= 0.3)

VarnishStat::getSnapshot — Get the current varnish instance statistics snapshot

Beschreibung

public VarnishStat::getSnapshot ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Array with the varnish statistic snapshot. The array keys are identical to that in the varnishstat tool.


The VarnishLog class

(PECL varnish >= 0.6)

Einführung

Klassenbeschreibung

VarnishLog {
/* Constants */
const int TAG_Debug = 0 ;
const int TAG_Error = 1 ;
const int TAG_CLI = 2 ;
const int TAG_StatSess = 3 ;
const int TAG_ReqEnd = 4 ;
const int TAG_SessionOpen = 5 ;
const int TAG_SessionClose = 6 ;
const int TAG_BackendOpen = 7 ;
const int TAG_BackendXID = 8 ;
const int TAG_BackendReuse = 9 ;
const int TAG_BackendClose = 10 ;
const int TAG_HttpGarbage = 11 ;
const int TAG_Backend = 12 ;
const int TAG_Length = 13 ;
const int TAG_FetchError = 14 ;
const int TAG_RxRequest = 15 ;
const int TAG_RxResponse = 16 ;
const int TAG_RxStatus = 17 ;
const int TAG_RxURL = 18 ;
const int TAG_RxProtocol = 19 ;
const int TAG_RxHeader = 20 ;
const int TAG_TxRequest = 21 ;
const int TAG_TxResponse = 22 ;
const int TAG_TxStatus = 23 ;
const int TAG_TxURL = 24 ;
const int TAG_TxProtocol = 25 ;
const int TAG_TxHeader = 26 ;
const int TAG_ObjRequest = 27 ;
const int TAG_ObjResponse = 28 ;
const int TAG_ObjStatus = 29 ;
const int TAG_ObjURL = 30 ;
const int TAG_ObjProtocol = 31 ;
const int TAG_ObjHeader = 32 ;
const int TAG_LostHeader = 33 ;
const int TAG_TTL = 34 ;
const int TAG_Fetch_Body = 35 ;
const int TAG_VCL_acl = 36 ;
const int TAG_VCL_call = 37 ;
const int TAG_VCL_trace = 38 ;
const int TAG_VCL_return = 39 ;
const int TAG_VCL_error = 40 ;
const int TAG_ReqStart = 41 ;
const int TAG_Hit = 42 ;
const int TAG_HitPass = 43 ;
const int TAG_ExpBan = 44 ;
const int TAG_ExpKill = 45 ;
const int TAG_WorkThread = 46 ;
const int TAG_ESI_xmlerror = 47 ;
const int TAG_Hash = 48 ;
const int TAG_Backend_health = 49 ;
const int TAG_VCL_Log = 50 ;
const int TAG_Gzip = 51 ;
/* Methoden */
public __construct ( array $args = ? )
public getLine ( ) : array
public static getTagName ( int $index ) : string
}

Vordefinierte Konstanten

VarnishLog::TAG_Debug

VarnishLog::TAG_Error

VarnishLog::TAG_CLI

VarnishLog::TAG_StatSess

VarnishLog::TAG_ReqEnd

VarnishLog::TAG_SessionOpen

VarnishLog::TAG_SessionClose

VarnishLog::TAG_BackendOpen

VarnishLog::TAG_BackendXID

VarnishLog::TAG_BackendReuse

VarnishLog::TAG_BackendClose

VarnishLog::TAG_HttpGarbage

VarnishLog::TAG_Backend

VarnishLog::TAG_Length

VarnishLog::TAG_FetchError

VarnishLog::TAG_RxRequest

VarnishLog::TAG_RxResponse

VarnishLog::TAG_RxStatus

VarnishLog::TAG_RxURL

VarnishLog::TAG_RxProtocol

VarnishLog::TAG_RxHeader

VarnishLog::TAG_TxRequest

VarnishLog::TAG_TxResponse

VarnishLog::TAG_TxStatus

VarnishLog::TAG_TxURL

VarnishLog::TAG_TxProtocol

VarnishLog::TAG_TxHeader

VarnishLog::TAG_ObjRequest

VarnishLog::TAG_ObjResponse

VarnishLog::TAG_ObjStatus

VarnishLog::TAG_ObjURL

VarnishLog::TAG_ObjProtocol

VarnishLog::TAG_ObjHeader

VarnishLog::TAG_LostHeader

VarnishLog::TAG_TTL

VarnishLog::TAG_Fetch_Body

VarnishLog::TAG_VCL_acl

VarnishLog::TAG_VCL_call

VarnishLog::TAG_VCL_trace

VarnishLog::TAG_VCL_return

VarnishLog::TAG_VCL_error

VarnishLog::TAG_ReqStart

VarnishLog::TAG_Hit

VarnishLog::TAG_HitPass

VarnishLog::TAG_ExpBan

VarnishLog::TAG_ExpKill

VarnishLog::TAG_WorkThread

VarnishLog::TAG_ESI_xmlerror

VarnishLog::TAG_Hash

VarnishLog::TAG_Backend_health

VarnishLog::TAG_VCL_Log

VarnishLog::TAG_Gzip

Inhaltsverzeichnis

  • VarnishLog::__construct — Varnishlog constructor
  • VarnishLog::getLine — Get next log line
  • VarnishLog::getTagName — Get the log tag string representation by its index


Varnishlog constructor

  • « VarnishLog
  • VarnishLog::getLine »
  • PHP Manual
  • VarnishLog
  • Varnishlog constructor

VarnishLog::__construct

(PECL varnish >= 0.6)

VarnishLog::__construct — Varnishlog constructor

Beschreibung

public VarnishLog::__construct ( array $args = ? )

Parameter-Liste

args

Configuration arguments. The possible keys are:

VARNISH_CONFIG_IDENT - local varnish instance ident path

Rückgabewerte


Get next log line

  • « VarnishLog::__construct
  • VarnishLog::getTagName »
  • PHP Manual
  • VarnishLog
  • Get next log line

VarnishLog::getLine

(PECL varnish >= 0.6)

VarnishLog::getLine — Get next log line

Beschreibung

public VarnishLog::getLine ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array with the log line data.


Get the log tag string representation by its index

  • « VarnishLog::getLine
  • YAZ »
  • PHP Manual
  • VarnishLog
  • Get the log tag string representation by its index

VarnishLog::getTagName

(PECL varnish >= 0.6)

VarnishLog::getTagName — Get the log tag string representation by its index

Beschreibung

public static VarnishLog::getTagName ( int $index ) : string

Parameter-Liste

index

Log tag index.

Rückgabewerte

Returns the log tag name as String.


YAZ

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • YAZ Funktionen
    • yaz_addinfo — Returns additional error information
    • yaz_ccl_conf — Configure CCL parser
    • yaz_ccl_parse — Invoke CCL Parser
    • yaz_close — Close YAZ connection
    • yaz_connect — Prepares for a connection to a Z39.50 server
    • yaz_database — Specifies the databases within a session
    • yaz_element — Specifies Element-Set Name for retrieval
    • yaz_errno — Returns error number
    • yaz_error — Returns error description
    • yaz_es_result — Inspects Extended Services Result
    • yaz_es — Prepares for an Extended Service Request
    • yaz_get_option — Returns value of option for connection
    • yaz_hits — Returns number of hits for last search
    • yaz_itemorder — Prepares for Z39.50 Item Order with an ILL-Request package
    • yaz_present — Prepares for retrieval (Z39.50 present)
    • yaz_range — Specifies a range of records to retrieve
    • yaz_record — Returns a record
    • yaz_scan_result — Returns Scan Response result
    • yaz_scan — Prepares for a scan
    • yaz_schema — Specifies schema for retrieval
    • yaz_search — Prepares for a search
    • yaz_set_option — Sets one or more options for connection
    • yaz_sort — Sets sorting criteria
    • yaz_syntax — Specifies the preferred record syntax for retrieval
    • yaz_wait — Wait for Z39.50 requests to complete


Einführung

This extension offers a PHP interface to the YAZ toolkit that implements the » Z39.50 Protocol for Information Retrieval. With this extension you can easily implement a Z39.50 origin (client) that searches or scans Z39.50 targets (servers) in parallel.

The module hides most of the complexity of Z39.50 so it should be fairly easy to use. It supports persistent stateless connections very similar to those offered by the various RDB APIs that are available for PHP. This means that sessions are stateless but shared among users, thus saving the connect and initialize phase steps in most cases.

YAZ is available at » http://www.indexdata.dk/yaz/. You can find news information, example scripts, etc. for this extension at » http://www.indexdata.dk/phpyaz/.

Hinweis:

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 5.0.0.


Anforderungen

Obtain YAZ (ANSI/NISO Z39.50 support) and install it. YAZ can be fetched in source or in various prebuilt packages from the » YAZ archive. Systems such as Debian GNU/Linux, Suse Linux, FreeBSD also has YAZ as part of their distribution.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/yaz

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.

Hinweis: Information specific to Windows users

php_yaz.dll depends on yaz.dll. The yaz.dll is part of the Win32 ZIP from the PHP site. It is also part of the Windows YAZ install available from the » YAZ WIN32 area.

On windows, don't forget to add the PHP directory to the PATH, so that the yaz.dll file can be found by the system.

Warnung

Die IMAP , recode und YAZ Extensions können nicht zusammen verwendet werden. Diese Tatsache liegt darin begründet, dass alle diese Erweiterungen die gleichen internen Symbole benutzen. Hinweis: Yaz 2.0 und höher hat dieses Problem nicht.


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • YAZ
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Beispiele

PHP/YAZ keeps track of connections with targets (Z-Associations). A resource represents a connection to a target.

The script below demonstrates the parallel searching feature of the API. When invoked with no arguments it prints a query form; else (arguments are supplied) it searches the targets as given in array host.

Beispiel #1 Parallel searching using Yaz

<?php
$host=$_REQUEST[host];
$query=$_REQUEST[query];
$num_hosts = count($host);
if (empty($query) || count($host) == 0) {
    echo '<form method="get">
    <input type="checkbox"
    name="host[]" value="bagel.indexdata.dk/gils" />
        GILS test
    <input type="checkbox"
    name="host[]" value="localhost:9999/Default" />
        local test
    <input type="checkbox" checked="checked"
    name="host[]" value="z3950.loc.gov:7090/voyager" />
        Library of Congress
    <br />
    RPN Query:
    <input type="text" size="30" name="query" />
    <input type="submit" name="action" value="Search" />
    </form>
    ';
} else {
    echo 'You searched for ' . htmlspecialchars($query) . '<br />';
    for ($i = 0; $i < $num_hosts; $i++) {
        $id[] = yaz_connect($host[$i]);
        yaz_syntax($id[$i], "usmarc");
        yaz_range($id[$i], 1, 10);
        yaz_search($id[$i], "rpn", $query);
    }
    yaz_wait();
    for ($i = 0; $i < $num_hosts; $i++) {
        echo '<hr />' . $host[$i] . ':';
        $error = yaz_error($id[$i]);
        if (!empty($error)) {
            echo "Error: $error";
        } else {
            $hits = yaz_hits($id[$i]);
            echo "Result Count $hits";
        }
        echo '<dl>';
        for ($p = 1; $p <= 10; $p++) {
            $rec = yaz_record($id[$i], $p, "string");
            if (empty($rec)) continue;
            echo "<dt><b>$p</b></dt><dd>";
            echo nl2br($rec);
            echo "</dd>";
        }
        echo '</dl>';
    }
}
?>


YAZ Funktionen

Inhaltsverzeichnis

  • yaz_addinfo — Returns additional error information
  • yaz_ccl_conf — Configure CCL parser
  • yaz_ccl_parse — Invoke CCL Parser
  • yaz_close — Close YAZ connection
  • yaz_connect — Prepares for a connection to a Z39.50 server
  • yaz_database — Specifies the databases within a session
  • yaz_element — Specifies Element-Set Name for retrieval
  • yaz_errno — Returns error number
  • yaz_error — Returns error description
  • yaz_es_result — Inspects Extended Services Result
  • yaz_es — Prepares for an Extended Service Request
  • yaz_get_option — Returns value of option for connection
  • yaz_hits — Returns number of hits for last search
  • yaz_itemorder — Prepares for Z39.50 Item Order with an ILL-Request package
  • yaz_present — Prepares for retrieval (Z39.50 present)
  • yaz_range — Specifies a range of records to retrieve
  • yaz_record — Returns a record
  • yaz_scan_result — Returns Scan Response result
  • yaz_scan — Prepares for a scan
  • yaz_schema — Specifies schema for retrieval
  • yaz_search — Prepares for a search
  • yaz_set_option — Sets one or more options for connection
  • yaz_sort — Sets sorting criteria
  • yaz_syntax — Specifies the preferred record syntax for retrieval
  • yaz_wait — Wait for Z39.50 requests to complete


Returns additional error information

  • « YAZ Funktionen
  • yaz_ccl_conf »
  • PHP Manual
  • YAZ Funktionen
  • Returns additional error information

yaz_addinfo

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_addinfo — Returns additional error information

Beschreibung

yaz_addinfo ( resource $id ) : string

Returns additional error information for the last request on the server.

With some servers, this function may return the same string as yaz_error().

Parameter-Liste

id

The connection resource returned by yaz_connect().

Rückgabewerte

A string containing additional error information or an empty string if the last operation was successful or if no additional information was provided by the server.

Siehe auch

  • yaz_error() - Returns error description
  • yaz_errno() - Returns error number


Configure CCL parser

  • « yaz_addinfo
  • yaz_ccl_parse »
  • PHP Manual
  • YAZ Funktionen
  • Configure CCL parser

yaz_ccl_conf

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_conf — Configure CCL parser

Beschreibung

yaz_ccl_conf ( resource $id , array $config ) : void

This function configures the CCL query parser for a server with definitions of access points (CCL qualifiers) and their mapping to RPN.

To map a specific CCL query to RPN afterwards call the yaz_ccl_parse() function.

Parameter-Liste

id

The connection resource returned by yaz_connect().

config

An array of configuration. Each key of the array 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.

Additional information can be found on the » CCL page.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

In the example below, the CCL parser is configured to support three CCL fields: ti, au and isbn. Each field is mapped to their BIB-1 equivalent. It is assumed that variable $id is the connection ID.

Beispiel #1 CCL configuration

<?php
$fields = array(
  "ti" => "1=4",
  "au"   => "1=1",
  "isbn" => "1=7"
);
yaz_ccl_conf($id, $fields);
?>

Siehe auch

  • yaz_ccl_parse() - Invoke CCL Parser


Invoke CCL Parser

  • « yaz_ccl_conf
  • yaz_close »
  • PHP Manual
  • YAZ Funktionen
  • Invoke CCL Parser

yaz_ccl_parse

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_parse — Invoke CCL Parser

Beschreibung

yaz_ccl_parse ( resource $id , string $query , array &$result ) : bool

This function invokes a CCL parser. It converts a given CCL FIND query to an RPN query which may be passed to the yaz_search() function to perform a search.

To define a set of valid CCL fields call yaz_ccl_conf() prior to this function.

Parameter-Liste

id

The connection resource returned by yaz_connect().

query

The CCL FIND query.

result

If the function was executed successfully, this will be an array containing the valid RPN query under the key rpn.

Upon failure, three indexes are set in this array to indicate the cause of failure:

  • errorcode - the CCL error code (integer)

  • errorstring - the CCL error string

  • errorpos - approximate position in query of failure (integer is character position)

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 CCL Parsing

We will try to search using CCL. In the example below, $ccl is a CCL query.

<?php

yaz_ccl_conf($id, $fields);  // see example for yaz_ccl_conf
if (!yaz_ccl_parse($id, $ccl, &$cclresult)) {
    echo 'Error: ' . $cclresult["errorstring"];
} else {
    $rpn = $cclresult["rpn"];
    yaz_search($id, "rpn", $rpn);
}
?>


Close YAZ connection

  • « yaz_ccl_parse
  • yaz_connect »
  • PHP Manual
  • YAZ Funktionen
  • Close YAZ connection

yaz_close

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_close — Close YAZ connection

Beschreibung

yaz_close ( resource $id ) : bool

Closes the connection given by parameter id.

Hinweis:

This function will only close a non-persistent connection opened by setting the persistent option to false with yaz_connect().

Parameter-Liste

id

The connection resource returned by yaz_connect().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • yaz_connect() - Prepares for a connection to a Z39.50 server


Prepares for a connection to a Z39.50 server

  • « yaz_close
  • yaz_database »
  • PHP Manual
  • YAZ Funktionen
  • Prepares for a connection to a Z39.50 server

yaz_connect

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_connect — Prepares for a connection to a Z39.50 server

Beschreibung

yaz_connect ( string $zurl , mixed $options = ? ) : mixed

This function returns a connection resource on success, zero on failure.

yaz_connect() prepares for a connection to a Z39.50 server. This function is non-blocking and does not attempt to establish a connection - it merely prepares a connect to be performed later when yaz_wait() is called.

Hinweis:

The » YAZ proxy is a freely available Z39.50 proxy.

Parameter-Liste

zurl

A string that takes the form host[:port][/database]. If port is omitted, port 210 is used. If database is omitted Default is used.

options

If given as a string, it is treated as the Z39.50 V2 authentication string (OpenAuth).

If given as an array, the contents of the array serves as options.

user

Username for authentication.

group

Group for authentication.

password

Password for authentication.

cookie

Cookie for session (YAZ proxy).

proxy

Proxy for connection (YAZ proxy).

persistent

A boolean. If true the connection is persistent; If false the connection is not persistent. By default connections are persistent.

Hinweis:

If you open a persistent connection, you won't be able to close it later with yaz_close().

piggyback

A boolean. If true piggyback is enabled for searches; If false piggyback is disabled. By default piggyback is enabled.

Enabling piggyback is more efficient and usually saves a network-round-trip for first time fetches of records. However, a few Z39.50 servers do not support piggyback or they ignore element set names. For those, piggyback should be disabled.

charset

A string that specifies character set to be used in Z39.50 language and character set negotiation. Use strings such as: ISO-8859-1, UTF-8, UTF-16.

Most Z39.50 servers do not support this feature (and thus, this is ignored). Many servers use the ISO-8859-1 encoding for queries and messages. MARC21/USMARC records are not affected by this setting.

preferredMessageSize

An integer that specifies the maximum byte size of all records to be returned by a target during retrieval. See the » Z39.50 standard for more information.

Hinweis:

This option is supported in PECL YAZ 1.0.5 or later.

maximumRecordSize

An integer that specifies the maximum byte size of a single record to be returned by a target during retrieval. This entity is referred to as Exceptional-record-size in the » Z39.50 standard.

Hinweis:

This option is supported in PECL YAZ 1.0.5 or later.

Rückgabewerte

A connection resource on success, false on error.

Changelog

Version | Beschreibung
4.1.0 | The parameter options was added.

Siehe auch

  • yaz_close() - Close YAZ connection


Specifies the databases within a session

  • « yaz_connect
  • yaz_element »
  • PHP Manual
  • YAZ Funktionen
  • Specifies the databases within a session

yaz_database

(PHP 4 >= 4.0.6, PECL yaz >= 0.9.0)

yaz_database — Specifies the databases within a session

Beschreibung

yaz_database ( resource $id , string $databases ) : bool

This function allows you to change databases within a session by specifying one or more databases to be used in search, retrieval, etc. - overriding databases specified in call to yaz_connect().

Parameter-Liste

id

The connection resource returned by yaz_connect().

databases

A string containing one or more databases. Multiple databases are separated by a plus sign +.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Specifies Element-Set Name for retrieval

  • « yaz_database
  • yaz_errno »
  • PHP Manual
  • YAZ Funktionen
  • Specifies Element-Set Name for retrieval

yaz_element

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_element — Specifies Element-Set Name for retrieval

Beschreibung

yaz_element ( resource $id , string $elementset ) : bool

This function sets the element set name for retrieval.

Call this function before yaz_search() or yaz_present() to specify the element set name for records to be retrieved.

Hinweis:

If this function appears to have no effect, see the description of the piggybacking option in yaz_connect().

Parameter-Liste

id

The connection resource returned by yaz_connect().

elementset

Most servers support F (for full records) and B (for brief records).

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Returns error number

  • « yaz_element
  • yaz_error »
  • PHP Manual
  • YAZ Funktionen
  • Returns error number

yaz_errno

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_errno — Returns error number

Beschreibung

yaz_errno ( resource $id ) : int

Returns an error number for the server (last request) identified by id.

yaz_errno() should be called after network activity for each server - (after yaz_wait() returns) to determine the success or failure of the last operation (e.g. search).

Parameter-Liste

id

The connection resource returned by yaz_connect().

Rückgabewerte

Returns an error code. The error code is either a Z39.50 diagnostic code (usually a Bib-1 diagnostic) or a client side error code which is generated by PHP/YAZ itself, such as "Connect failed", "Init Rejected", etc.

Siehe auch

  • yaz_error() - Returns error description
  • yaz_addinfo() - Returns additional error information


Returns error description

  • « yaz_errno
  • yaz_es_result »
  • PHP Manual
  • YAZ Funktionen
  • Returns error description

yaz_error

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_error — Returns error description

Beschreibung

yaz_error ( resource $id ) : string

yaz_error() returns an English text message corresponding to the last error number as returned by yaz_errno().

Parameter-Liste

id

The connection resource returned by yaz_connect().

Rückgabewerte

Returns an error text message for server (last request), identified by parameter id. An empty string is returned if the last operation was successful.

Siehe auch

  • yaz_errno() - Returns error number
  • yaz_addinfo() - Returns additional error information


Inspects Extended Services Result

  • « yaz_error
  • yaz_es »
  • PHP Manual
  • YAZ Funktionen
  • Inspects Extended Services Result

yaz_es_result

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_es_result — Inspects Extended Services Result

Beschreibung

yaz_es_result ( resource $id ) : array

This function inspects the last returned Extended Service result from a server. An Extended Service is initiated by either yaz_item_order() or yaz_es().

Parameter-Liste

id

The connection resource returned by yaz_connect().

Rückgabewerte

Returns array with element targetReference for the reference for the extended service operation (generated and returned from the server).

Siehe auch

  • yaz_es() - Prepares for an Extended Service Request


Prepares for an Extended Service Request

  • « yaz_es_result
  • yaz_get_option »
  • PHP Manual
  • YAZ Funktionen
  • Prepares for an Extended Service Request

yaz_es

(PECL yaz >= 0.9.0)

yaz_es — Prepares for an Extended Service Request

Beschreibung

yaz_es ( resource $id , string $type , array $args ) : void

This function prepares for an Extended Service Request. Extended Services is family of various Z39.50 facilities, such as Record Update, Item Order, Database administration etc.

Hinweis:

Many Z39.50 Servers do not support Extended Services.

The yaz_es() creates an Extended Service Request packages and puts it into a queue of operations. Use yaz_wait() to send the request(s) to the server. After completion of yaz_wait() the result of the Extended Service operation should be expected with a call to yaz_es_result().

Parameter-Liste

id

The connection resource returned by yaz_connect().

type

A string which represents the type of the Extended Service: itemorder (Item Order), create (Create Database), drop (Drop Database), commit (Commit Operation), update (Update Record), xmlupdate (XML Update). Each type is specified in the following section.

args

An array with extended service options plus package specific options. The options are identical to those offered in the C API of ZOOM C. Refer to the ZOOM » Extended Services.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Record Update

<?php
$con = yaz_connect("myhost/database");
$args = array (
    "record" => "<gils><title>some title</title></gils>",
    "syntax" => "xml",
    "action" => "specialUpdate"
);
yaz_es($con, "update", $args);
yaz_wait();
$result = yaz_es_result($id);
?>

Siehe auch

  • yaz_es_result() - Inspects Extended Services Result


Returns value of option for connection

  • « yaz_es
  • yaz_hits »
  • PHP Manual
  • YAZ Funktionen
  • Returns value of option for connection

yaz_get_option

(PECL yaz >= 0.9.0)

yaz_get_option — Returns value of option for connection

Beschreibung

yaz_get_option ( resource $id , string $name ) : string

Returns the value of the option specified with name.

Parameter-Liste

id

The connection resource returned by yaz_connect().

name

The option name.

Rückgabewerte

Returns the value of the specified option or an empty string if the option wasn't set.

Siehe auch

  • The description of yaz_set_option() - Sets one or more options for connection for available options


Returns number of hits for last search

  • « yaz_get_option
  • yaz_itemorder »
  • PHP Manual
  • YAZ Funktionen
  • Returns number of hits for last search

yaz_hits

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_hits — Returns number of hits for last search

Beschreibung

yaz_hits ( resource $id , array &$searchresult = ? ) : int

yaz_hits() returns the number of hits for the last search.

Parameter-Liste

id

The connection resource returned by yaz_connect().

searchresult

Result array for detailed search result information.

Rückgabewerte

Returns the number of hits for the last search or 0 if no search was performed.

The search result array (if supplied) holds information that is returned by a Z39.50 server in the SearchResult-1 format part of a search response. The SearchResult-1 format can be used to obtain information about hit counts for various parts of the query (subquery). In particular, it is possible to obtain hit counts for the individual search terms in a query. Information for first subquery is in $array[0], second subquery in $array[1], and so forth.

searchresult members
Element | Description
id | Sub query ID2 (string)
count | Result count / hits (integer)
subquery.term | Sub query term (string)
interpretation.term | Interpretated sub query term (string)
recommendation.term | Recommended sub query term (string)

Hinweis:

The SearchResult facility requires PECL YAZ 1.0.5 or later and YAZ 2.1.9 or later.

Hinweis:

Very few Z39.50 implementations support the SearchResult facility.


Prepares for Z39.50 Item Order with an ILL-Request package

  • « yaz_hits
  • yaz_present »
  • PHP Manual
  • YAZ Funktionen
  • Prepares for Z39.50 Item Order with an ILL-Request package

yaz_itemorder

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_itemorder — Prepares for Z39.50 Item Order with an ILL-Request package

Beschreibung

yaz_itemorder ( resource $id , array $args ) : void

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.

Parameter-Liste

id

The connection resource returned by yaz_connect().

args

Must be an associative 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

Rückgabewerte

Es wird kein Wert zurückgegeben.


Prepares for retrieval (Z39.50 present)

  • « yaz_itemorder
  • yaz_range »
  • PHP Manual
  • YAZ Funktionen
  • Prepares for retrieval (Z39.50 present)

yaz_present

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_present — Prepares for retrieval (Z39.50 present)

Beschreibung

yaz_present ( resource $id ) : bool

This function prepares for retrieval of records after a successful search.

The yaz_range() function should be called prior to this function to specify the range of records to be retrieved.

Parameter-Liste

id

The connection resource returned by yaz_connect().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Specifies a range of records to retrieve

  • « yaz_present
  • yaz_record »
  • PHP Manual
  • YAZ Funktionen
  • Specifies a range of records to retrieve

yaz_range

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_range — Specifies a range of records to retrieve

Beschreibung

yaz_range ( resource $id , int $start , int $number ) : void

Specifies a range of records to retrieve.

This function should be called before yaz_search() or yaz_present().

Parameter-Liste

id

The connection resource returned by yaz_connect().

start

Specifies the position of the first record to be retrieved. The records numbers goes from 1 to yaz_hits().

number

Specifies the number of records to be retrieved.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Returns a record

  • « yaz_range
  • yaz_scan_result »
  • PHP Manual
  • YAZ Funktionen
  • Returns a record

yaz_record

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_record — Returns a record

Beschreibung

yaz_record ( resource $id , int $pos , string $type ) : string

The yaz_record() function inspects a record in the current result set at the position specified by parameter pos.

Parameter-Liste

id

The connection resource returned by yaz_connect().

pos

The record position. Records positions in a result set are numbered 1, 2, ... $hits where $hits is the count returned by yaz_hits().

type

The type specifies the form of the returned record.

Hinweis:

It is the application which is responsible for actually ensuring that the records are returned from the Z39.50/SRW server in the proper format. The type given only specifies a conversion to take place on the client side (in PHP/YAZ).

Besides conversion of the transfer record to a string/array, PHP/YAZ it is also possible to perform a character set conversion of the record. Especially for USMARC/MARC21 that is recommended since these are typically returned in the character set MARC-8 that is not supported by browsers, etc. To specify a conversion, add ; charset=from, to where from is the original character set of the record and to is the resulting character set (as seen by PHP).

string

The record is returned as a string for simple display. In this mode, all MARC records are converted to a line-by-line format since ISO2709 is hardly readable. XML records and SUTRS are returned in their original format. GRS-1 are returned in a (ugly) line-by-line format.

This format is suitable if records are to be displayed in a quick way - for debugging - or because it is not feasible to perform proper display.

xml

The record is returned as an XML string if possible. In this mode, all MARC records are converted to » MARCXML. XML records and SUTRS are returned in their original format. GRS-1 is not supported.

This format is similar to string except that MARC records are converted to MARCXML

This format is suitable if records are processed by an XML parser or XSLT processor afterwards.

raw

The record is returned as a string in its original form. This type is suitable for MARC, XML and SUTRS. It does not work for GRS-1.

MARC records are returned as a ISO2709 string. XML and SUTRS are returned as strings.

syntax

The syntax of the record is returned as a string, i.e. USmarc, GRS-1, XML, etc.

database

The name of database associated with record at the position is returned as a string.

array

The record is returned as an array that reflects the GRS-1 structure. This type is suitable for MARC and GRS-1. XML, SUTRS are not supported and if the actual record is XML or SUTRS an empty string will be returned.

The array returned consists of a list corresponding to each leaf/internal node of GRS-1. Each list item consists a sub list with first element path and data (if data is available).

The path which is a string holds a list of each tree component (of the structured GRS-1 record) from root to leaf. Each component is a tag type, tag value pair of the form (type, value

String tags normally has a corresponding tag type 3. MARC can also be returned as an array (they are converted to GRS-1 internally).

Rückgabewerte

Returns the record at position pos or an empty string if no record exists at the given position.

If no database record exists at the given position an empty string is returned.

Beispiele

Beispiel #1 Array for GRS-1 record

Consider this GRS-1 record:

(4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd.
This record has two nodes at root level. First element at root level is (4,52) [tag type 4, tag value 52], and has data Robert M. Pirsig. Second element at root level (4,70) has a subtree with a single element (4,90). (4,90) has yet another sub tree (2,7) with data Transworld Publishers, ltd..

If this record is present at position $p, then

<?php

$ar = yaz_record($id, $p, "array");
print_r($ar);

?>
will output:
Array
(
    [0] => Array
        (
            [0] => (4,52)
            [1] => Robert M. Pirsig
        )
    [1] => Array
        (
            [0] => (4,70)
        )
    [2] => Array
        (
            [0] => (4,70)(4,90)
        )
    [3] => Array
        (
            [0] => (4,70)(4,90)(2,7)
            [1] => Transworld Publishers, ltd.
        )
)

Beispiel #2 Working with MARCXML

The following PHP snippet returns a MARC21/USMARC record as MARCXML. The original record is returned in marc-8 (unknown to most XML parsers), so we convert it to UTF-8 (which all XML parsers must support).

<?php
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");
?>

The record $rec can be processed with the Sablotron XSLT processor as follows:

<?php

$xslfile = 'display.xsl';
$processor = xslt_create();
$parms = array('/_xml' => $rec);
$res = xslt_process($processor, 'arg:/_xml', $xslfile, NULL, $parms);
xslt_free($processor);
$res = preg_replace("'</?html[^>]*>'", '', $res);
echo $res;

?>

For PHP 5 the XSL extension must be used instead of Sablotron XSLT.


Returns Scan Response result

  • « yaz_record
  • yaz_scan »
  • PHP Manual
  • YAZ Funktionen
  • Returns Scan Response result

yaz_scan_result

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scan_result — Returns Scan Response result

Beschreibung

yaz_scan_result ( resource $id , array &$result = ? ) : array

yaz_scan_result() returns terms and associated information as received from the server in the last performed yaz_scan().

Parameter-Liste

id

The connection resource returned by yaz_connect().

result

If given, this array 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

Rückgabewerte

Returns an array (0..n-1) where n is the number of terms returned. Each value is a pair where the first item is the term, and the second item is the result-count.


Prepares for a scan

  • « yaz_scan_result
  • yaz_schema »
  • PHP Manual
  • YAZ Funktionen
  • Prepares for a scan

yaz_scan

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scan — Prepares for a scan

Beschreibung

yaz_scan ( resource $id , string $type , string $startterm , array $flags = ? ) : void

This function prepares for a Z39.50 Scan Request on the specified connection.

To actually transfer the Scan Request to the server and receive the Scan Response, yaz_wait() must be called. Upon completion of yaz_wait() call yaz_error() and yaz_scan_result() to handle the response.

Parameter-Liste

id

The connection resource returned by yaz_connect().

type

Currently only type rpn is supported.

startterm

Starting term point for the scan.

The form in which the starting term is specified is given by parameter type.

The syntax this parameter is similar to the RPN query as described in yaz_search(). It consists of zero or more @attr-operator specifications, then followed by exactly one token.

flags

This optional parameter specifies additional information to control the behaviour of the scan request. Three indexes are currently read from the flags array: number (number of terms requested), position (preferred position of term) and stepSize (preferred step size).

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 PHP function that scans titles

<?php
function scan_titles($id, $startterm)
{
  yaz_scan($id, "rpn", "@attr 1=4 " . $startterm);
  yaz_wait();
  $errno = yaz_errno($id);
  if ($errno == 0) {
    $ar = yaz_scan_result($id, $options);
    echo 'Scan ok; ';
    foreach ($options as $key => $val) {
      echo "$key = $val &nbsp;";
    }
    echo '<br /><table>';
    while (list($key, list($k, $term, $tcount)) = each($ar)) {
      if (empty($k)) continue;
      echo "<tr><td>$term</td><td>$tcount</td></tr>";
    }
    echo '</table>';
  } else {
    echo "Scan failed. Error: " . yaz_error($id) . "<br />";
  }
}
?>


Specifies schema for retrieval

  • « yaz_scan
  • yaz_search »
  • PHP Manual
  • YAZ Funktionen
  • Specifies schema for retrieval

yaz_schema

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_schema — Specifies schema for retrieval

Beschreibung

yaz_schema ( resource $id , string $schema ) : void

yaz_schema() specifies the schema for retrieval.

This function should be called before yaz_search() or yaz_present().

Parameter-Liste

id

The connection resource returned by yaz_connect().

schema

Must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.13.4) or as one of the known registered schemas: GILS-schema, Holdings, Zthes, ...

Rückgabewerte

Es wird kein Wert zurückgegeben.


Prepares for a search

  • « yaz_schema
  • yaz_set_option »
  • PHP Manual
  • YAZ Funktionen
  • Prepares for a search

yaz_search

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_search — Prepares for a search

Beschreibung

yaz_search ( resource $id , string $type , string $query ) : bool

yaz_search() prepares for a search on the given connection.

Like yaz_connect() this function is non-blocking and only prepares for a search to be executed later when yaz_wait() is called.

Parameter-Liste

id

The connection resource returned by yaz_connect().

type

This parameter represents the query type - only "rpn" is supported now in which case the third argument specifies a Type-1 query in prefix query notation.

query

The RPN query is a textual representation of the Type-1 query as defined by the Z39.50 standard. However, in the text representation as used by YAZ a prefix notation is used, that is the operator precedes the operands. The query string is a sequence of tokens where white space is ignored unless surrounded by double quotes. Tokens beginning with an at-character (@) are considered operators, otherwise they are treated as search terms.

RPN Operators
Construct | Description
@and query1 query2 | intersection of query1 and query2
@or query1 query2 | union of query1 and query2
@not query1 query2 | query1 and not query2
@set name | result set reference
@attrset set query | specifies attribute-set for query. This construction is only allowed once - in the beginning of the whole query
@attr [set] type=value query | applies attribute to query. The type and value are integers specifying the attribute-type and attribute-value respectively. The set, if given, specifies the attribute-set.

You can find information about attributes at the » Z39.50 Maintenance Agency site.

Hinweis:

If you would like to use a more friendly notation, use the CCL parser - functions yaz_ccl_conf() and yaz_ccl_parse().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Query Examples

You can search for simple terms, like this:

computer
which matches documents where "computer" occur. No attributes are specified.

The query

"knuth donald"
matches documents where "knuth donald" occur (provided that the server supports phrase search).

This query applies two attributes for the same phrase.

@attr 1=1003 @attr 4=1 "knuth donald"
First attribute is type 1 (Bib-1 use), attribute value is 1003 (Author). Second attribute has is type 4 (structure), value 1 (phrase), so this should match documents where Donald Knuth is author.

The query

@and @or a b @not @or c d e
would in infix notation look like (a or b) and ((c or d) not e).

Another, more complex, one:

@attrset gils @and @attr 1=4 art @attr 1=2000 company
The query as a whole uses the GILS attributeset. The query matches documents where art occur in the title (GILS,BIB-1) and in which company occur as Distributor (GILS).


Sets one or more options for connection

  • « yaz_search
  • yaz_sort »
  • PHP Manual
  • YAZ Funktionen
  • Sets one or more options for connection

yaz_set_option

(PECL yaz >= 0.9.0)

yaz_set_option — Sets one or more options for connection

Beschreibung

yaz_set_option ( resource $id , string $name , string $value ) : void
yaz_set_option ( resource $id , array $options ) : void

Sets one or more options on the given connection.

Parameter-Liste

id

The connection resource returned by yaz_connect().

name or options

May be either a string or an array.

If given as a string, this will be the name of the option to set. You'll need to give it's value.

If given as an array, this will be an associative array (option name => option value).

PHP/YAZ Connection Options
Name | Description
implementationName | implementation name of server
implementationVersion | implementation version of server
implementationId | implementation ID of server
schema | schema for retrieval. By default, no schema is used. Setting this option is equivalent to using function yaz_schema()
preferredRecordSyntax | record syntax for retrieval. By default, no syntax is used. Setting this option is equivalent to using function yaz_syntax()
start | offset for first record to be retrieved via yaz_search() or yaz_present(). First record is numbered has a start value of 0. Second record has start value 1. Setting this option in combination with option count has the same effect as calling yaz_range() except that records are numbered from 1 in yaz_range()
count | maximum number of records to be retrieved via yaz_search() or yaz_present().
elementSetName | element-set-name for retrieval. Setting this option is equivalent to calling yaz_element().
value

The new value of the option. Use this only if the previous argument is a string.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Sets sorting criteria

  • « yaz_set_option
  • yaz_syntax »
  • PHP Manual
  • YAZ Funktionen
  • Sets sorting criteria

yaz_sort

(PHP 4 >= 4.0.7, PECL yaz >= 0.9.0)

yaz_sort — Sets sorting criteria

Beschreibung

yaz_sort ( resource $id , string $criteria ) : void

This function sets sorting criteria and enables Z39.50 Sort.

Call this function before yaz_search(). Using this function alone does not have any effect. When used in conjunction with yaz_search(), a Z39.50 Sort will be sent after a search response has been received and before any records are retrieved with Z39.50 Present (yaz_present().

Parameter-Liste

id

The connection resource returned by yaz_connect().

criteria

A string that takes the form field1 flags1 field2 flags2 where field1 specifies the primary attributes for sort, field2 seconds, etc..

The field specifies either a numerical attribute combinations consisting of type=value pairs separated by comma (e.g. 1=4,2=1) ; or the field may specify a plain string criteria (e.g. title. The flags is a sequence of the following characters which may not be separated by any white space.

Sort Flags
a

Sort ascending

d

Sort descending

i

Case insensitive sorting

s

Case sensitive sorting

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Sort Criterias

To sort on Bib1 attribute title, case insensitive, and ascending you would use the following sort criteria:

1=4 ia

If the secondary sorting criteria should be author, case sensitive and ascending you would use:

1=4 ia 1=1003 sa


Specifies the preferred record syntax for retrieval

  • « yaz_sort
  • yaz_wait »
  • PHP Manual
  • YAZ Funktionen
  • Specifies the preferred record syntax for retrieval

yaz_syntax

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_syntax — Specifies the preferred record syntax for retrieval

Beschreibung

yaz_syntax ( resource $id , string $syntax ) : void

yaz_syntax() specifies the preferred record syntax for retrieval

This function should be called before yaz_search() or yaz_present().

Parameter-Liste

id

The connection resource returned by yaz_connect().

syntax

The syntax must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.5.10) or as one of the known registered record syntaxes (sutrs, usmarc, grs1, xml, etc.).

Rückgabewerte

Es wird kein Wert zurückgegeben.


Wait for Z39.50 requests to complete

  • « yaz_syntax
  • 0MQ messaging »
  • PHP Manual
  • YAZ Funktionen
  • Wait for Z39.50 requests to complete

yaz_wait

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_wait — Wait for Z39.50 requests to complete

Beschreibung

yaz_wait ( array &$options = ? ) : mixed

This function carries out networked (blocked) activity for outstanding
requests which have been prepared by the functions
yaz_connect(), yaz_search(),
yaz_present(), yaz_scan() and
yaz_itemorder().

yaz_wait() returns when all servers have either completed all requests or aborted (in case of errors).

Parameter-Liste

options

An associative array of options:

timeout

Sets timeout in seconds. If a server has not responded within the timeout it is considered dead and yaz_wait() returns. The default value for timeout is 15 seconds.

event

A boolean.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. In event mode, returns resource Im Fehlerfall wird false zurückgegeben..


ZMQ

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
  • ZMQ — The ZMQ class
    • ZMQ::__construct — ZMQ constructor
  • ZMQContext — The ZMQContext class
    • ZMQContext::__construct — Construct a new ZMQContext object
    • ZMQContext::getOpt — Get context option
    • ZMQContext::getSocket — Create a new socket
    • ZMQContext::isPersistent — Whether the context is persistent
    • ZMQContext::setOpt — Set a socket option
  • ZMQSocket — The ZMQSocket class
    • ZMQSocket::bind — Bind the socket
    • ZMQSocket::connect — Connect the socket
    • ZMQSocket::__construct — Construct a new ZMQSocket
    • ZMQSocket::disconnect — Disconnect a socket
    • ZMQSocket::getEndpoints — Get list of endpoints
    • ZMQSocket::getPersistentId — Get the persistent id
    • ZMQSocket::getSocketType — Get the socket type
    • ZMQSocket::getSockOpt — Get socket option
    • ZMQSocket::isPersistent — Whether the socket is persistent
    • ZMQSocket::recv — Receives a message
    • ZMQSocket::recvMulti — Receives a multipart message
    • ZMQSocket::send — Sends a message
    • ZMQSocket::sendmulti — Sends a multipart message
    • ZMQSocket::setSockOpt — Set a socket option
    • ZMQSocket::unbind — Unbind the socket
  • ZMQPoll — The ZMQPoll class
    • ZMQPoll::add — Add item to the poll set
    • ZMQPoll::clear — Clear the poll set
    • ZMQPoll::count — Count items in the poll set
    • ZMQPoll::getLastErrors — Get poll errors
    • ZMQPoll::poll — Poll the items
    • ZMQPoll::remove — Remove item from poll set
  • ZMQDevice — The ZMQDevice class
    • ZMQDevice::__construct — Construct a new device
    • ZMQDevice::getIdleTimeout — Get the idle timeout
    • ZMQDevice::getTimerTimeout — Get the timer timeout
    • ZMQDevice::run — Run the new device
    • ZMQDevice::setIdleCallback — Set the idle callback function
    • ZMQDevice::setIdleTimeout — Set the idle timeout
    • ZMQDevice::setTimerCallback — Set the timer callback function
    • ZMQDevice::setTimerTimeout — Set the timer timeout


Einführung

"ØMQ is a software library that lets you quickly design and implement a fast message-based application." --0MQ Website

For more information about 0MQ, see » http://zeromq.org/.


  • « Einführung
  • Anforderungen »
  • PHP Manual
  • 0MQ messaging
  • Installation/Konfiguration

Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen


Anforderungen

ZMQ extension requires 0MQ version 2.0.7 or higher. 0MQ can be acquired from » http://zeromq.org/area:download.

Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/zmq


The ZMQ class

(PECL zmq >= 0.5.0)

Einführung

Klassenbeschreibung

ZMQ {
/* Constants */
const int SOCKET_PAIR ;
const int SOCKET_PUB ;
const int SOCKET_SUB ;
const int SOCKET_REQ ;
const int SOCKET_REP ;
const int SOCKET_XREQ ;
const int SOCKET_XREP ;
const int SOCKET_PUSH ;
const int SOCKET_PULL ;
const int SOCKET_ROUTER ;
const int SOCKET_DEALER ;
const int SOCKET_XPUB ;
const int SOCKET_XSUB ;
const int SOCKET_STREAM ;
const int SOCKOPT_HWM ;
const int SOCKOPT_SNDHWM ;
const int SOCKOPT_RCVHWM ;
const int SOCKOPT_AFFINITY ;
const int SOCKOPT_IDENTITY ;
const int SOCKOPT_SUBSCRIBE ;
const int SOCKOPT_UNSUBSCRIBE ;
const int SOCKOPT_RATE ;
const int SOCKOPT_RECOVERY_IVL ;
const int SOCKOPT_RECONNECT_IVL ;
const int SOCKOPT_RECONNECT_IVL_MAX ;
const int SOCKOPT_MCAST_LOOP ;
const int SOCKOPT_SNDBUF ;
const int SOCKOPT_RCVBUF ;
const int SOCKOPT_RCVMORE ;
const int SOCKOPT_TYPE ;
const int SOCKOPT_LINGER ;
const int SOCKOPT_BACKLOG ;
const int SOCKOPT_MAXMSGSIZE ;
const int SOCKOPT_SNDTIMEO ;
const int SOCKOPT_RCVTIMEO ;
const int SOCKOPT_IPV4ONLY ;
const int SOCKOPT_LAST_ENDPOINT ;
const int SOCKOPT_TCP_KEEPALIVE_IDLE ;
const int SOCKOPT_TCP_KEEPALIVE_CNT ;
const int SOCKOPT_TCP_KEEPALIVE_INTVL ;
const int SOCKOPT_TCP_ACCEPT_FILTER ;
const int SOCKOPT_TCP_ACCEPT_FILTER ;
const int SOCKOPT_DELAY_ATTACH_ON_CONNECT ;
const int SOCKOPT_XPUB_VERBOSE ;
const int SOCKOPT_ROUTER_RAW ;
const int SOCKOPT_IPV6 ;
const int CTXOPT_MAX_SOCKETS ;
const int POLL_IN ;
const int POLL_OUT ;
const int MODE_NOBLOCK ;
const int MODE_DONTWAIT ;
const int MODE_SNDMORE ;
const int ERR_INTERNAL ;
const int ERR_EAGAIN ;
const int ERR_ENOTSUP ;
const int ERR_EFSM ;
const int ERR_ETERM ;
/* Methods */
private __construct ( )
}

Vordefinierte Konstanten

ZMQ Constant Types

ZMQ::SOCKET_PAIR

Exclusive pair pattern

ZMQ::SOCKET_PUB

Publisher socket

ZMQ::SOCKET_SUB

Subscriber socket

ZMQ::SOCKET_REQ

Request socket

ZMQ::SOCKET_REP

Reply socket

ZMQ::SOCKET_XREQ

Alias for SOCKET_DEALER

ZMQ::SOCKET_XREP

Alias for SOCKET_ROUTER

ZMQ::SOCKET_PUSH

Pipeline upstream push socket

ZMQ::SOCKET_PULL

Pipeline downstream pull socket

ZMQ::SOCKET_ROUTER

Extended REP socket that can route replies to requesters

ZMQ::SOCKET_DEALER

Extended REQ socket that load balances to all connected peers

ZMQ::SOCKET_XPUB

Similar to SOCKET_PUB, except you can receive subscriptions as messages. The subscription message is 0 (unsubscribe) or 1 (subscribe) followed by the topic.

ZMQ::SOCKET_XSUB

Similar to SOCKET_SUB, except you can send subscriptions as messages. See SOCKET_XPUB for format.

ZMQ::SOCKET_STREAM

Used to send and receive TCP data from a non-ØMQ peer. Available if compiled against ZeroMQ 4.x or higher (Value: Integer).

ZMQ::SOCKOPT_HWM

The high water mark for inbound and outbound messages is a hard limit on the maximum number of outstanding messages ØMQ shall queue in memory for any single peer that the specified socket is communicating with. Setting this option on a socket will only affect connections made after the option has been set. On ZeroMQ 3.x this is a wrapper for setting both SNDHWM and RCVHWM. (Value: Integer).

ZMQ::SOCKOPT_SNDHWM

The ZMQ_SNDHWM option shall set the high water mark for outbound messages on the specified socket. Available if compiled against ZeroMQ 3.x or higher (Value: Integer).

ZMQ::SOCKOPT_RCVHWM

The SOCKOPT_RCVHWM option shall set the high water mark for inbound messages on the specified socket. Available if compiled against ZeroMQ 3.x or higher (Value: Integer).

ZMQ::SOCKOPT_AFFINITY

Set I/O thread affinity (Value: Integer)

ZMQ::SOCKOPT_IDENTITY

Set socket identity (Value: String)

ZMQ::SOCKOPT_SUBSCRIBE

Establish message filter. Valid for subscriber socket (Value: String)

ZMQ::SOCKOPT_UNSUBSCRIBE

Remove message filter. Valid for subscriber socket (Value: String)

ZMQ::SOCKOPT_RATE

Set rate for multicast sockets (pgm) (Value: Integer >= 0)

ZMQ::SOCKOPT_RECOVERY_IVL

Set multicast recovery interval (Value: Integer >= 0)

ZMQ::SOCKOPT_RECONNECT_IVL

Set the initial reconnection interval (Value: Integer >= 0)

ZMQ::SOCKOPT_RECONNECT_IVL_MAX

Set the max reconnection interval (Value: Integer >= 0)

ZMQ::SOCKOPT_MCAST_LOOP

Control multicast loopback (Value: Integer >= 0)

ZMQ::SOCKOPT_SNDBUF

Set kernel transmit buffer size (Value: Integer >= 0)

ZMQ::SOCKOPT_RCVBUF

Set kernel receive buffer size (Value: Integer >= 0)

ZMQ::SOCKOPT_RCVMORE

Receive multi-part messages (Value: Integer)

ZMQ::SOCKOPT_TYPE

Get the socket type. Valid for getSockOpt (Value: Integer)

ZMQ::SOCKOPT_LINGER

The linger value of the socket. Specifies how long the socket blocks trying flush messages after it has been closed (Value: Integer)

ZMQ::SOCKOPT_BACKLOG

The SOCKOPT_BACKLOG option shall set the maximum length of the queue of outstanding peer connections for the specified socket; this only applies to connection-oriented transports. (Value: Integer)

ZMQ::SOCKOPT_MAXMSGSIZE

Limits the maximum size of the inbound message. Value -1 means no limit. Available if compiled against ZeroMQ 3.x or higher (Value: Integer)

ZMQ::SOCKOPT_SNDTIMEO

Sets the timeout for send operation on the socket. Value -1 means no limit. Available if compiled against ZeroMQ 3.x or higher (Value: Integer)

ZMQ::SOCKOPT_RCVTIMEO

Sets the timeout for receive operation on the socket. Value -1 means no limit. Available if compiled against ZeroMQ 3.x or higher (Value: Integer)

ZMQ::SOCKOPT_IPV4ONLY

Disable IPV6 support if 1. Available if compiled against ZeroMQ 3.x (Value: Integer)

ZMQ::SOCKOPT_LAST_ENDPOINT

Retrieve the last connected endpoint - for use with * wildcard ports. Available if compiled against ZeroMQ 3.x or higher (Value: String)

ZMQ::SOCKOPT_TCP_KEEPALIVE_IDLE

Idle time for TCP keepalive. Available if compiled against ZeroMQ 3.x or higher (Value: Integer)

ZMQ::SOCKOPT_TCP_KEEPALIVE_CNT

Count time for TCP keepalive. Available if compiled against ZeroMQ 3.x or higher (Value: Integer)

ZMQ::SOCKOPT_TCP_KEEPALIVE_INTVL

Interval for TCP keepalive. Available if compiled against ZeroMQ 3.x or higher (Value: Integer)

ZMQ::SOCKOPT_DELAY_ATTACH_ON_CONNECT

Set a CIDR string to match against incoming TCP connections. Available if compiled against ZeroMQ 3.x or higher (Value: String)

ZMQ::SOCKOPT_TCP_ACCEPT_FILTER

Set a CIDR string to match against incoming TCP connections. Available if compiled against ZeroMQ 3.x or higher (Value: String)

ZMQ::SOCKOPT_XPUB_VERBOSE

Set the XPUB to receive an application message on each instance of a subscription. Available if compiled against ZeroMQ 3.x or higher (Value: String)

ZMQ::SOCKOPT_ROUTER_RAW

Sets the raw mode on the ROUTER, when set to 1. In raw mode when using tcp:// transport the socket will read and write without ZeroMQ framing. Available if compiled against ZeroMQ 4.0 or higher (Value: String)

ZMQ::SOCKOPT_IPV6

Enable IPV6. Available if compiled against ZeroMQ 4.0 or higher (Value: String)

ZMQ::CTXOPT_MAX_SOCKETS

The socket limit for this context. Available if compiled against ZeroMQ 3.x or higher (Value: Integer)

ZMQ::POLL_IN

Poll for incoming data

ZMQ::POLL_OUT

Poll for outgoing data

ZMQ::MODE_NOBLOCK

Non-blocking operation. Deprecated, use ZMQ::MODE_DONTWAIT instead

ZMQ::MODE_DONTWAIT

Non-blocking operation

ZMQ::MODE_SNDMORE

Send multi-part message

ZMQ::DEVICE_FORWARDER

Forwarder device

ZMQ::DEVICE_QUEUE

Queue device

ZMQ::DEVICE_STREAMER

Streamer device

ZMQ::ERR_INTERNAL

ZMQ extension internal error

ZMQ::ERR_EAGAIN

Implies that the operation would block when ZMQ::MODE_DONTWAIT is used

ZMQ::ERR_ENOTSUP

The operation is not supported by the socket type

ZMQ::ERR_EFSM

The operation can not be executed because the socket is not in correct state

ZMQ::ERR_ETERM

The context has been terminated

Inhaltsverzeichnis

  • ZMQ::__construct — ZMQ constructor


ZMQ constructor

  • « ZMQ
  • ZMQContext »
  • PHP Manual
  • ZMQ
  • ZMQ constructor

ZMQ::__construct

(PECL zmq >= 0.5.0)

ZMQ::__construct — ZMQ constructor

Beschreibung

private ZMQ::__construct ( )

Private constructor to prevent direct initialization. This class holds the constants for ZMQ extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The ZMQContext class

(PECL zmq >= 0.5.0)

Einführung

Klassenbeschreibung

ZMQContext {
/* Methods */
public __construct ( int $io_threads = 1 , bool $is_persistent = true )
public getOpt ( string $key ) : mixed
public getSocket ( int $type , string $persistent_id = null , callable $on_new_socket = null ) : ZMQSocket
public isPersistent ( ) : bool
public setOpt ( int $key , mixed $value ) : ZMQContext
}

Inhaltsverzeichnis

  • ZMQContext::__construct — Construct a new ZMQContext object
  • ZMQContext::getOpt — Get context option
  • ZMQContext::getSocket — Create a new socket
  • ZMQContext::isPersistent — Whether the context is persistent
  • ZMQContext::setOpt — Set a socket option


Construct a new ZMQContext object

  • « ZMQContext
  • ZMQContext::getOpt »
  • PHP Manual
  • ZMQContext
  • Construct a new ZMQContext object

ZMQContext::__construct

(PECL zmq >= 0.5.0)

ZMQContext::__construct — Construct a new ZMQContext object

Beschreibung

public ZMQContext::__construct ( int $io_threads = 1 , bool $is_persistent = true )

Constructs a new ZMQ context. The context is used to initialize sockets. A persistent context is required to initialize persistent sockets.

Parameter-Liste

io_threads

Number of io-threads in the context.

is_persistent

Whether the context is persistent. Persistent context is stored over multiple requests and is a requirement for persistent sockets.

Beispiele

Beispiel #1 A ZMQContext() example

Construct a new context and allocate request socket from it

<?php
/* Allocate a new context */
$context = new ZMQContext();

/* Create a new socket */
$socket = $context->getSocket(ZMQ::SOCKET_REQ, 'my sock');

/* Connect the socket */
$socket->connect("tcp://example.com:1234");

/* Send a request */
$socket->send("Hello there");

/* Receive back the response */
$message = $socket->recv();
?>

Rückgabewerte

Throws ZMQContextException if context initialization fails.


Get context option

  • « ZMQContext::__construct
  • ZMQContext::getSocket »
  • PHP Manual
  • ZMQContext
  • Get context option

ZMQContext::getOpt

(PECL zmq >= 1.0.4)

ZMQContext::getOpt — Get context option

Beschreibung

public ZMQContext::getOpt ( string $key ) : mixed

Returns the value of a context option.

Parameter-Liste

key

An integer representing the option. See the ZMQ::CTXOPT_* constants.

Rückgabewerte

Returns either a String or an Integer depending on key. Throws ZMQContextException on error.


Create a new socket

  • « ZMQContext::getOpt
  • ZMQContext::isPersistent »
  • PHP Manual
  • ZMQContext
  • Create a new socket

ZMQContext::getSocket

(PECL zmq >= 0.5.0)

ZMQContext::getSocket — Create a new socket

Beschreibung

public ZMQContext::getSocket ( int $type , string $persistent_id = null , callable $on_new_socket = null ) : ZMQSocket

Shortcut for creating new sockets from the context. If the context is not persistent the persistent_id parameter is ignored and the socket falls back to being non-persistent. The on_new_socket is called only when a new underlying socket structure is created.

Parameter-Liste

type

ZMQ::SOCKET_* constant to specify socket type.

persistent_id

If persistent_id is specified the socket will be persisted over multiple requests.

on_new_socket

Callback function, which is executed when a new socket structure is created. This function does not get invoked if the underlying persistent connection is re-used. The callback takes ZMQSocket and persistent_id as two arguments.

Beispiele

Beispiel #1 A ZMQContext() example

Basic usage

<?php
/* Allocate a new context */
$context = new ZMQContext();

/* Create a new socket */
$socket = $context->getSocket(ZMQ::SOCKET_REQ, 'my sock');

/* Connect the socket */
$socket->connect("tcp://example.com:1234");

/* Send a request */
$socket->send("Hello there");

/* Receive back the response */
$message = $socket->recv();
echo "Received message: {$message}\n";
?>

Rückgabewerte

Returns a ZMQSocket object on success. Throws ZMQSocketException on error.


Whether the context is persistent

  • « ZMQContext::getSocket
  • ZMQContext::setOpt »
  • PHP Manual
  • ZMQContext
  • Whether the context is persistent

ZMQContext::isPersistent

(PECL zmq >= 0.5.0)

ZMQContext::isPersistent — Whether the context is persistent

Beschreibung

public ZMQContext::isPersistent ( ) : bool

Whether the context is persistent. Persistent context is needed for persistent connections as each socket is allocated from a context.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the context is persistent and false if the context is non-persistent.


Set a socket option

  • « ZMQContext::isPersistent
  • ZMQSocket »
  • PHP Manual
  • ZMQContext
  • Set a socket option

ZMQContext::setOpt

(PECL zmq >= 1.0.4)

ZMQContext::setOpt — Set a socket option

Beschreibung

public ZMQContext::setOpt ( int $key , mixed $value ) : ZMQContext

Sets a ZMQ context option. The type of the value depends on the key. See ZMQ Constant Types for more information.

Parameter-Liste

key

One of the ZMQ::CTXOPT_* constants.

value

The value of the parameter.

Rückgabewerte

Returns the current object. Throws ZMQContextException on error.


The ZMQSocket class

(PECL zmq >= 0.5.0)

Einführung

Klassenbeschreibung

ZMQSocket {
/* Methods */
public bind ( string $dsn , bool $force = false ) : ZMQSocket
public connect ( string $dsn , bool $force = false ) : ZMQSocket
public __construct ( ZMQContext $context , int $type , string $persistent_id = null , callable $on_new_socket = null )
public disconnect ( string $dsn ) : ZMQSocket
public getEndpoints ( ) : array
public getPersistentId ( ) : string
public getSocketType ( ) : int
public getSockOpt ( string $key ) : mixed
public isPersistent ( ) : bool
public recv ( int $mode = 0 ) : string
public recvMulti ( int $mode = 0 ) : array
public send ( string $message , int $mode = 0 ) : ZMQSocket
public sendmulti ( array $message , int $mode = 0 ) : ZMQSocket
public setSockOpt ( int $key , mixed $value ) : ZMQSocket
public unbind ( string $dsn ) : ZMQSocket
}

Inhaltsverzeichnis

  • ZMQSocket::bind — Bind the socket
  • ZMQSocket::connect — Connect the socket
  • ZMQSocket::__construct — Construct a new ZMQSocket
  • ZMQSocket::disconnect — Disconnect a socket
  • ZMQSocket::getEndpoints — Get list of endpoints
  • ZMQSocket::getPersistentId — Get the persistent id
  • ZMQSocket::getSocketType — Get the socket type
  • ZMQSocket::getSockOpt — Get socket option
  • ZMQSocket::isPersistent — Whether the socket is persistent
  • ZMQSocket::recv — Receives a message
  • ZMQSocket::recvMulti — Receives a multipart message
  • ZMQSocket::send — Sends a message
  • ZMQSocket::sendmulti — Sends a multipart message
  • ZMQSocket::setSockOpt — Set a socket option
  • ZMQSocket::unbind — Unbind the socket


Bind the socket

  • « ZMQSocket
  • ZMQSocket::connect »
  • PHP Manual
  • ZMQSocket
  • Bind the socket

ZMQSocket::bind

(PECL zmq >= 0.5.0)

ZMQSocket::bind — Bind the socket

Beschreibung

public ZMQSocket::bind ( string $dsn , bool $force = false ) : ZMQSocket

Bind the socket to an endpoint. The endpoint is defined in format transport://address where transport is one of the following: inproc, ipc, tcp, pgm or epgm.

Parameter-Liste

dsn

The bind dsn, for example transport://address.

force

Tries to bind even if the socket has already been bound to the given endpoint.

Rückgabewerte

Returns the current object. Throws ZMQSocketException on error.


Connect the socket

  • « ZMQSocket::bind
  • ZMQSocket::__construct »
  • PHP Manual
  • ZMQSocket
  • Connect the socket

ZMQSocket::connect

(PECL zmq >= 0.5.0)

ZMQSocket::connect — Connect the socket

Beschreibung

public ZMQSocket::connect ( string $dsn , bool $force = false ) : ZMQSocket

Connect the socket to a remote endpoint. The endpoint is defined in format transport://address where transport is one of the following: inproc, ipc, tcp, pgm or epgm.

Parameter-Liste

dsn

The connect dsn, for example transport://address.

force

Tries to connect even if the socket has already been connected to given endpoint.

Beispiele

Beispiel #1 A ZMQContext() example

Construct a new context and allocate request socket from it

<?php
/* Server hostname */
$dsn = "tcp://127.0.0.1:5555";

/* Create a socket */
$socket = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REQ, 'my socket');

/* Get list of connected endpoints */
$endpoints = $socket->getEndpoints();

/* Check if the socket is connected */
if (!in_array($dsn, $endpoints['connect'])) {
    echo "<p>Connecting to $dsn</p>";
    $socket->connect($dsn);
} else {
    echo "<p>Already connected to $dsn</p>";
}

/* Send and receive */
$socket->send("Hello!");
$message = $socket->recv();

echo "<p>Server said: {$message}</p>";
?>

Rückgabewerte

Returns the current object. Throws ZMQSocketException on error.


Construct a new ZMQSocket

  • « ZMQSocket::connect
  • ZMQSocket::disconnect »
  • PHP Manual
  • ZMQSocket
  • Construct a new ZMQSocket

ZMQSocket::__construct

(PECL zmq >= 0.5.0)

ZMQSocket::__construct — Construct a new ZMQSocket

Beschreibung

public ZMQSocket::__construct ( ZMQContext $context , int $type , string $persistent_id = null , callable $on_new_socket = null )

Constructs a ZMQSocket object. persistent_id parameter can be used to allocated a persistent socket. A persistent socket has to be allocated from a persistent context and it stays connected over multiple requests. The persistent_id parameter can be used to recall the same socket over multiple requests. The on_new_socket is called only when a new underlying socket structure is created.

Parameter-Liste

context

ZMQContext object.

type

The socket type. See ZMQ::SOCKET_* constants.

persistent_id

If persistent_id is specified the socket will be persisted over multiple requests. If context is not persistent the socket falls back to non-persistent mode.

on_new_socket

Callback function, which is executed when a new socket structure is created. This function does not get invoked if the underlying persistent connection is re-used.

Beispiele

Beispiel #1 A ZMQSocket() example

Using callback the bind/connect socket

<?php

/*
  The socket is persistent so this function is called only on the
  first request to the script.
*/
function on_new_socket_cb(ZMQSocket $socket, $persistent_id = null)
{
    if ($persistent_id === 'server') {
        $socket->bind("tcp://localhost:12122");
    } else {
        $socket->connect("tcp://localhost:12122");
    }
}

/* Allocate a new context */
$context = new ZMQContext();

/* Create a new socket */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'server', 'on_new_socket_cb');

$message = $socket->recv();
echo "Received message: {$message}\n";
?>

The callback signature

Hinweis:

function on_new_socket_cb(ZMQSocket $socket, string $persistent_id = null);

Rückgabewerte

Throws ZMQSocketException on error.


Disconnect a socket

  • « ZMQSocket::__construct
  • ZMQSocket::getEndpoints »
  • PHP Manual
  • ZMQSocket
  • Disconnect a socket

ZMQSocket::disconnect

(PECL zmq >= 1.0.4)

ZMQSocket::disconnect — Disconnect a socket

Beschreibung

public ZMQSocket::disconnect ( string $dsn ) : ZMQSocket

Disconnect the socket from a previously connected remote endpoint. The endpoint is defined in format transport://address where transport is one of the following: inproc, ipc, tcp, pgm or epgm.

Parameter-Liste

dsn

The connect dsn, for example transport://address.

Rückgabewerte

Returns the current object. Throws ZMQSocketException on error.


Get list of endpoints

  • « ZMQSocket::disconnect
  • ZMQSocket::getPersistentId »
  • PHP Manual
  • ZMQSocket
  • Get list of endpoints

ZMQSocket::getEndpoints

(PECL zmq >= 0.5.0)

ZMQSocket::getEndpoints — Get list of endpoints

Beschreibung

public ZMQSocket::getEndpoints ( ) : array

Returns a list of endpoints where the socket is connected or bound to.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing elements 'bind' and 'connect'.


Get the persistent id

  • « ZMQSocket::getEndpoints
  • ZMQSocket::getSocketType »
  • PHP Manual
  • ZMQSocket
  • Get the persistent id

ZMQSocket::getPersistentId

(PECL zmq >= 0.5.0)

ZMQSocket::getPersistentId — Get the persistent id

Beschreibung

public ZMQSocket::getPersistentId ( ) : string

Returns the persistent id of the socket.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the persistent id string assigned of the object and null if socket is not persistent.


Get the socket type

  • « ZMQSocket::getPersistentId
  • ZMQSocket::getSockOpt »
  • PHP Manual
  • ZMQSocket
  • Get the socket type

ZMQSocket::getSocketType

(PECL zmq >= 0.5.0)

ZMQSocket::getSocketType — Get the socket type

Beschreibung

public ZMQSocket::getSocketType ( ) : int

Gets the socket type.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer representing the socket type. The integer can be compared against ZMQ::SOCKET_* constants.


Get socket option

  • « ZMQSocket::getSocketType
  • ZMQSocket::isPersistent »
  • PHP Manual
  • ZMQSocket
  • Get socket option

ZMQSocket::getSockOpt

(PECL zmq >= 0.5.0)

ZMQSocket::getSockOpt — Get socket option

Beschreibung

public ZMQSocket::getSockOpt ( string $key ) : mixed

Returns the value of a socket option.

Parameter-Liste

key

An integer representing the option. See the ZMQ::SOCKOPT_* constants.

Rückgabewerte

Returns either a String or an Integer depending on key. Throws ZMQSocketException on error.


Whether the socket is persistent

  • « ZMQSocket::getSockOpt
  • ZMQSocket::recv »
  • PHP Manual
  • ZMQSocket
  • Whether the socket is persistent

ZMQSocket::isPersistent

(PECL zmq >= 0.5.0)

ZMQSocket::isPersistent — Whether the socket is persistent

Beschreibung

public ZMQSocket::isPersistent ( ) : bool

Check whether the socket is persistent.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a Boolean based on whether the socket is persistent or not.


Receives a message

  • « ZMQSocket::isPersistent
  • ZMQSocket::recvMulti »
  • PHP Manual
  • ZMQSocket
  • Receives a message

ZMQSocket::recv

(PECL zmq >= 0.5.0)

ZMQSocket::recv — Receives a message

Beschreibung

public ZMQSocket::recv ( int $mode = 0 ) : string

Receive a message from a socket. By default receiving will block until a message is available unless ZMQ::MODE_DONTWAIT flag is used. ZMQ::SOCKOPT_RCVMORE socket option can be used for receiving multi-part messages. See ZMQSocket::setSockOpt() for more information.

Parameter-Liste

mode

Pass mode flags to receive multipart messages or non-blocking operation. See ZMQ::MODE_* constants.

Beispiele

Beispiel #1 A send/recv example

Non-blocking send / receive

<?php

/* Create new queue object, there needs to be a server at the other end */
$queue = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REQ);
$queue->connect("tcp://127.0.0.1:5555");

/* Assign socket 1 to the queue, send and receive */
$retries = 5;
$sending = true;

/* Start a loop */
do {
    try {
        /* Try to send / receive */
        if ($sending) {
            echo "Sending message\n";
            $queue->send("This is a message", ZMQ::MODE_DONTWAIT);
            $sending = false;
        } else {
            echo "Got response: " . $queue->recv(ZMQ::MODE_DONTWAIT) . "\n";
            break;
        }
    } catch (ZMQSocketException $e) {
        /* EAGAIN means that the operation would have blocked, retry */
        if ($e->getCode() === ZMQ::ERR_EAGAIN) {
            echo " - Got EAGAIN, retrying ($retries)\n";
        } else {
            die(" - Error: " . $e->getMessage());
        }
    }
    /* Sleep a bit between operations */
    usleep(5);
} while (--$retries);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Sending message
 - Unable to execute operation, retrying (4)
Got response: This is a message

Rückgabewerte

Returns the message. Throws ZMQSocketException in error. If ZMQ::MODE_DONTWAIT is used and the operation would block Boolean false shall be returned.


Receives a multipart message

  • « ZMQSocket::recv
  • ZMQSocket::send »
  • PHP Manual
  • ZMQSocket
  • Receives a multipart message

ZMQSocket::recvMulti

(PECL zmq >= 0.8.0)

ZMQSocket::recvMulti — Receives a multipart message

Beschreibung

public ZMQSocket::recvMulti ( int $mode = 0 ) : array

Receive an array multipart message from a socket. By default receiving will block until a message is available unless ZMQ::MODE_NOBLOCK flag is used.

Parameter-Liste

mode

Pass mode flags to receive multipart messages or non-blocking operation. See ZMQ::MODE_* constants.

Rückgabewerte

Returns the array of message parts. Throws ZMQSocketException in error. If ZMQ::MODE_NOBLOCK is used and the operation would block Boolean false shall be returned.


Sends a message

  • « ZMQSocket::recvMulti
  • ZMQSocket::sendmulti »
  • PHP Manual
  • ZMQSocket
  • Sends a message

ZMQSocket::send

(PECL zmq >= 0.5.0)

ZMQSocket::send — Sends a message

Beschreibung

public ZMQSocket::send ( string $message , int $mode = 0 ) : ZMQSocket

Send a message using the socket. The operation can block unless ZMQ::MODE_NOBLOCK is used.

Parameter-Liste

message

The message to send.

mode

Pass mode flags to receive multipart messages or non-blocking operation. See ZMQ::MODE_* constants.

Rückgabewerte

Returns the current object. Throws ZMQSocketException on error. If ZMQ::MODE_NOBLOCK is used and the operation would block Boolean false shall be returned.


Sends a multipart message

  • « ZMQSocket::send
  • ZMQSocket::setSockOpt »
  • PHP Manual
  • ZMQSocket
  • Sends a multipart message

ZMQSocket::sendmulti

(PECL zmq >= 0.8.0)

ZMQSocket::sendmulti — Sends a multipart message

Beschreibung

public ZMQSocket::sendmulti ( array $message , int $mode = 0 ) : ZMQSocket

Send a multipart message using the socket. The operation can block unless ZMQ::MODE_NOBLOCK is used.

Parameter-Liste

message

The message to send - an array of strings

mode

Pass mode flags to receive multipart messages or non-blocking operation. See ZMQ::MODE_* constants.

Rückgabewerte

Returns the current object. Throws ZMQSocketException on error. If ZMQ::MODE_NOBLOCK is used and the operation would block Boolean false shall be returned.


Set a socket option

  • « ZMQSocket::sendmulti
  • ZMQSocket::unbind »
  • PHP Manual
  • ZMQSocket
  • Set a socket option

ZMQSocket::setSockOpt

(PECL zmq >= 0.5.0)

ZMQSocket::setSockOpt — Set a socket option

Beschreibung

public ZMQSocket::setSockOpt ( int $key , mixed $value ) : ZMQSocket

Sets a ZMQ socket option. The type of the value depends on the key. See ZMQ Constant Types for more information.

Parameter-Liste

key

One of the ZMQ::SOCKOPT_* constants.

value

The value of the parameter.

Rückgabewerte

Returns the current object. Throws ZMQSocketException on error.


Unbind the socket

  • « ZMQSocket::setSockOpt
  • ZMQPoll »
  • PHP Manual
  • ZMQSocket
  • Unbind the socket

ZMQSocket::unbind

(PECL zmq >= 1.0.4)

ZMQSocket::unbind — Unbind the socket

Beschreibung

public ZMQSocket::unbind ( string $dsn ) : ZMQSocket

Unbind the socket from an endpoint. The endpoint is defined in format transport://address where transport is one of the following: inproc, ipc, tcp, pgm or epgm.

Parameter-Liste

dsn

The previously bound dsn, for example transport://address.

Rückgabewerte

Returns the current object. Throws ZMQSocketException on error.


The ZMQPoll class

(PECL zmq >= 0.5.0)

Einführung

Klassenbeschreibung

ZMQPoll {
/* Methods */
public add ( mixed $entry , int $type ) : string
public clear ( ) : ZMQPoll
public count ( ) : int
public getLastErrors ( ) : array
public poll ( array &$readable , array &$writable , int $timeout = -1 ) : int
public remove ( mixed $item ) : bool
}

Inhaltsverzeichnis

  • ZMQPoll::add — Add item to the poll set
  • ZMQPoll::clear — Clear the poll set
  • ZMQPoll::count — Count items in the poll set
  • ZMQPoll::getLastErrors — Get poll errors
  • ZMQPoll::poll — Poll the items
  • ZMQPoll::remove — Remove item from poll set


Add item to the poll set

  • « ZMQPoll
  • ZMQPoll::clear »
  • PHP Manual
  • ZMQPoll
  • Add item to the poll set

ZMQPoll::add

(PECL zmq >= 0.5.0)

ZMQPoll::add — Add item to the poll set

Beschreibung

public ZMQPoll::add ( mixed $entry , int $type ) : string

Adds a new item to the poll set and returns the internal id of the added item. The item can be removed from the poll set using the returned string id.

Parameter-Liste

entry

ZMQSocket object or a PHP stream resource

type

Defines what activity the socket is polled for. See ZMQ::POLL_IN and ZMQ::POLL_OUT constants.

Rückgabewerte

Returns a string id of the added item which can be later used to remove the item. Throws ZMQPollException on error.


Clear the poll set

  • « ZMQPoll::add
  • ZMQPoll::count »
  • PHP Manual
  • ZMQPoll
  • Clear the poll set

ZMQPoll::clear

(PECL zmq >= 0.5.0)

ZMQPoll::clear — Clear the poll set

Beschreibung

public ZMQPoll::clear ( ) : ZMQPoll

Clears all elements from the poll set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current object.


Count items in the poll set

  • « ZMQPoll::clear
  • ZMQPoll::getLastErrors »
  • PHP Manual
  • ZMQPoll
  • Count items in the poll set

ZMQPoll::count

(PECL zmq >= 0.5.0)

ZMQPoll::count — Count items in the poll set

Beschreibung

public ZMQPoll::count ( ) : int

Count the items in the poll set.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an Integer representing the amount of items in the poll set.


Get poll errors

  • « ZMQPoll::count
  • ZMQPoll::poll »
  • PHP Manual
  • ZMQPoll
  • Get poll errors

ZMQPoll::getLastErrors

(PECL zmq >= 0.5.0)

ZMQPoll::getLastErrors — Get poll errors

Beschreibung

public ZMQPoll::getLastErrors ( ) : array

Returns the ids of the objects that had errors in the last poll.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing ids for the items that had errors in the last poll. Empty array is returned if there were no errors.


Poll the items

  • « ZMQPoll::getLastErrors
  • ZMQPoll::remove »
  • PHP Manual
  • ZMQPoll
  • Poll the items

ZMQPoll::poll

(PECL zmq >= 0.5.0)

ZMQPoll::poll — Poll the items

Beschreibung

public ZMQPoll::poll ( array &$readable , array &$writable , int $timeout = -1 ) : int

Polls the items in the current poll set. The readable and writable items are returned in the readable and writable parameters. ZMQPoll::getLastErrors() can be used to check if there were errors.

Parameter-Liste

readable

Array where readable ZMQSockets/PHP streams are returned. The array will be cleared at the beginning of the operation.

writable

Array where writable ZMQSockets/PHP streams are returned. The array will be cleared at the beginning of the operation.

timeout

Timeout for the operation. -1 means that poll waits until at least one item has activity. Please note that starting from version 1.0.0 the poll timeout is defined in milliseconds, rather than microseconds.

Beispiele

Beispiel #1 A ZMQPoll() example

Create a simple poll server

<?php

/* Create socket, request-reply pattern (reply socket) */
$context = new ZMQContext();
$server  = $context->getSocket(ZMQ::SOCKET_REP);

/* Bind to port 5555 on 127.0.0.1 */
$server->bind("tcp://127.0.0.1:5555");

/* Create new pollset for incoming/outgoing message */
$poll = new ZMQPoll();

/* Add the object and listen for poll in/out */
$id = $poll->add($server, ZMQ::POLL_IN | ZMQ::POLL_OUT);
echo "Added object with id " . $id . "\n";

/* Initialise readable and writable arrays */
$readable = array();
$writable = array();

while (true) {
   /* Amount of events retrieved */
   $events = 0;

   try {
       /* Poll until there is something to do */
       $events = $poll->poll($readable, $writable, -1);
       $errors = $poll->getLastErrors();

       if (count($errors) > 0) {
           foreach ($errors as $error) {
               echo "Error polling object " . $error . "\n";
           }
       }
   } catch (ZMQPollException $e) {
       echo "poll failed: " . $e->getMessage() . "\n";
   }

   if ($events > 0) {
       /* Loop through readable objects and recv messages */
       foreach ($readable as $r) {
           try {
               echo "Received message: " . $r->recv() . "\n";
           } catch (ZMQException $e) {
               echo "recv failed: " . $e->getMessage() . "\n";
           }
       }

       /* Loop through writable and send back messages */
       foreach ($writable as $w) {
           try {
               $w->send("Got it!");
           } catch (ZMQException $e) {
               echo "send failed: " . $e->getMessage() . "\n";
           }
       }
   }
}
?>

Rückgabewerte

Returns an integer representing amount of items with activity. Throws ZMQPollException on error.


Remove item from poll set

  • « ZMQPoll::poll
  • ZMQDevice »
  • PHP Manual
  • ZMQPoll
  • Remove item from poll set

ZMQPoll::remove

(PECL zmq >= 0.5.0)

ZMQPoll::remove — Remove item from poll set

Beschreibung

public ZMQPoll::remove ( mixed $item ) : bool

Remove item from the poll set. The item parameter can be ZMQSocket object, a stream resource or the id returned from ZMQPoll::add() method.

Parameter-Liste

item

The ZMQSocket object, PHP stream or String id of the item.

Rückgabewerte

Returns true if the item was removed and false if the object with given id does not exist in the poll set.


The ZMQDevice class

(PECL zmq >= 0.5.0)

Einführung

Klassenbeschreibung

ZMQDevice {
/* Methods */
public __construct ( ZMQSocket $frontend , ZMQSocket $backend , ZMQSocket $listener = ? )
public getIdleTimeout ( ) : ZMQDevice
public getTimerTimeout ( ) : ZMQDevice
public run ( ) : void
public setIdleCallback ( callable $cb_func , int $timeout , mixed $user_data = ? ) : ZMQDevice
public setIdleTimeout ( int $timeout ) : ZMQDevice
public setTimerCallback ( callable $cb_func , int $timeout , mixed $user_data = ? ) : ZMQDevice
public setTimerTimeout ( int $timeout ) : ZMQDevice
}

Inhaltsverzeichnis

  • ZMQDevice::__construct — Construct a new device
  • ZMQDevice::getIdleTimeout — Get the idle timeout
  • ZMQDevice::getTimerTimeout — Get the timer timeout
  • ZMQDevice::run — Run the new device
  • ZMQDevice::setIdleCallback — Set the idle callback function
  • ZMQDevice::setIdleTimeout — Set the idle timeout
  • ZMQDevice::setTimerCallback — Set the timer callback function
  • ZMQDevice::setTimerTimeout — Set the timer timeout


Construct a new device

  • « ZMQDevice
  • ZMQDevice::getIdleTimeout »
  • PHP Manual
  • ZMQDevice
  • Construct a new device

ZMQDevice::__construct

(PECL zmq >= 0.5.0)

ZMQDevice::__construct — Construct a new device

Beschreibung

public ZMQDevice::__construct ( ZMQSocket $frontend , ZMQSocket $backend , ZMQSocket $listener = ? )

"ØMQ devices can do intermediation of addresses, services, queues, or any other abstraction you care to define above the message and socket layers." -- zguide

Parameter-Liste

frontend

Frontend parameter for the devices. Usually where there messages are coming.

backend

Backend parameter for the devices. Usually where there messages going to.

listener

Listener socket, which receives a copy of all messages going both directions. The type of this socket should be SUB, PULL or DEALER.

Rückgabewerte

Call to this method will prepare the device. Usually devices are very long running processes so running this method from interactive script is not recommended. This method throw ZMQDeviceException if the device cannot be started.


Get the idle timeout

  • « ZMQDevice::__construct
  • ZMQDevice::getTimerTimeout »
  • PHP Manual
  • ZMQDevice
  • Get the idle timeout

ZMQDevice::getIdleTimeout

(No version information available, might only be in Git)

ZMQDevice::getIdleTimeout — Get the idle timeout

Beschreibung

public ZMQDevice::getIdleTimeout ( ) : ZMQDevice

Gets the idle callback timeout value. Added in ZMQ extension version 1.1.0.

Rückgabewerte

This method returns the idle callback timeout value.


Get the timer timeout

  • « ZMQDevice::getIdleTimeout
  • ZMQDevice::run »
  • PHP Manual
  • ZMQDevice
  • Get the timer timeout

ZMQDevice::getTimerTimeout

(No version information available, might only be in Git)

ZMQDevice::getTimerTimeout — Get the timer timeout

Beschreibung

public ZMQDevice::getTimerTimeout ( ) : ZMQDevice

Gets the timer callback timeout value. Added in ZMQ extension version 1.1.0.

Rückgabewerte

This method returns the timer timeout value.


Run the new device

  • « ZMQDevice::getTimerTimeout
  • ZMQDevice::setIdleCallback »
  • PHP Manual
  • ZMQDevice
  • Run the new device

ZMQDevice::run

(No version information available, might only be in Git)

ZMQDevice::run — Run the new device

Beschreibung

public ZMQDevice::run ( ) : void

Runs the device.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Call to this method will block until the device is running. It is not recommended that devices are used from interactive scripts. On failure this method will throw ZMQDeviceException.


Set the idle callback function

  • « ZMQDevice::run
  • ZMQDevice::setIdleTimeout »
  • PHP Manual
  • ZMQDevice
  • Set the idle callback function

ZMQDevice::setIdleCallback

(No version information available, might only be in Git)

ZMQDevice::setIdleCallback — Set the idle callback function

Beschreibung

public ZMQDevice::setIdleCallback ( callable $cb_func , int $timeout , mixed $user_data = ? ) : ZMQDevice

Sets the idle callback function. If idle timeout is defined the idle callback function shall be called if the internal poll loop times out without events. If the callback function returns false or a value that evaluates to false the device is stopped. The callback function signature is callback (mixed $user_data).

Parameter-Liste

cb_func

Callback function to invoke when the device is idle. Returning false or a value that evaluates to false from this function will cause the device to stop.

timeout

How often to invoke the idle callback in milliseconds. The idle callback is invoked periodically when there is no activity on the device. The timeout value guarantees that there is at least this amount of milliseconds between invocations of the callback function.

user_data

Additional data to pass to the callback function.

Rückgabewerte

On success this method returns the current object.


Set the idle timeout

  • « ZMQDevice::setIdleCallback
  • ZMQDevice::setTimerCallback »
  • PHP Manual
  • ZMQDevice
  • Set the idle timeout

ZMQDevice::setIdleTimeout

(No version information available, might only be in Git)

ZMQDevice::setIdleTimeout — Set the idle timeout

Beschreibung

public ZMQDevice::setIdleTimeout ( int $timeout ) : ZMQDevice

Sets the idle callback timeout value. The idle callback is invoked periodically when the device is idle.

Parameter-Liste

timeout

The idle callback timeout value.

Rückgabewerte

On success this method returns the current object.


Set the timer callback function

  • « ZMQDevice::setIdleTimeout
  • ZMQDevice::setTimerTimeout »
  • PHP Manual
  • ZMQDevice
  • Set the timer callback function

ZMQDevice::setTimerCallback

(No version information available, might only be in Git)

ZMQDevice::setTimerCallback — Set the timer callback function

Beschreibung

public ZMQDevice::setTimerCallback ( callable $cb_func , int $timeout , mixed $user_data = ? ) : ZMQDevice

Sets the timer callback function. The timer callback will be invoked after timeout has passed. The difference between idle and timer callbacks are that idle callback is invoked only when the device is idle. The callback function signature is callback (mixed $user_data). Added in ZMQ extension version 1.1.0.

Parameter-Liste

cb_func

Callback function to invoke when the device is idle. Returning false or a value that evaluates to false from this function will cause the device to stop.

timeout

How often to invoke the idle callback in milliseconds. The idle callback is invoked periodically when there is no activity on the device. The timeout value guarantees that there is at least this amount of milliseconds between invocations of the callback function.

user_data

Additional data to pass to the callback function.

Rückgabewerte

On success this method returns the current object.


Set the timer timeout

  • « ZMQDevice::setTimerCallback
  • ZooKeeper »
  • PHP Manual
  • ZMQDevice
  • Set the timer timeout

ZMQDevice::setTimerTimeout

(No version information available, might only be in Git)

ZMQDevice::setTimerTimeout — Set the timer timeout

Beschreibung

public ZMQDevice::setTimerTimeout ( int $timeout ) : ZMQDevice

Sets the timer callback timeout value. The timer callback is invoked periodically if it's set. Added in ZMQ extension version 1.1.0.

Parameter-Liste

timeout

The timer callback timeout value.

Rückgabewerte

On success this method returns the current object.


ZooKeeper

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • ZooKeeper Funktionen
    • zookeeper_dispatch — Calls callbacks for pending operations
  • Zookeeper — The Zookeeper class
    • Zookeeper::addAuth — Specify application credentials
    • Zookeeper::close — Close the zookeeper handle and free up any resources
    • Zookeeper::connect — Create a handle to used communicate with zookeeper
    • Zookeeper::__construct — Create a handle to used communicate with zookeeper
    • Zookeeper::create — Create a node synchronously
    • Zookeeper::delete — Delete a node in zookeeper synchronously
    • Zookeeper::exists — Checks the existence of a node in zookeeper synchronously
    • Zookeeper::get — Gets the data associated with a node synchronously
    • Zookeeper::getAcl — Gets the acl associated with a node synchronously
    • Zookeeper::getChildren — Lists the children of a node synchronously
    • Zookeeper::getClientId — Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
    • Zookeeper::getConfig — Get instance of ZookeeperConfig
    • Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect
    • Zookeeper::getState — Get the state of the zookeeper connection
    • Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered
    • Zookeeper::set — Sets the data associated with a node
    • Zookeeper::setAcl — Sets the acl associated with a node synchronously
    • Zookeeper::setDebugLevel — Sets the debugging level for the library
    • Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization
    • Zookeeper::setLogStream — Sets the stream to be used by the library for logging
    • Zookeeper::setWatcher — Set a watcher function
  • ZookeeperConfig — The ZookeeperConfig class
    • ZookeeperConfig::add — Add servers to the ensemble
    • ZookeeperConfig::get — Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
    • ZookeeperConfig::remove — Remove servers from the ensemble
    • ZookeeperConfig::set — Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperException — The ZookeeperException class
  • ZookeeperAuthenticationException — The ZookeeperAuthenticationException class
  • ZookeeperConnectionException — The ZookeeperConnectionException class
  • ZookeeperMarshallingException — The ZookeeperMarshallingException class
  • ZookeeperNoNodeException — The ZookeeperNoNodeException class
  • ZookeeperOperationTimeoutException — The ZookeeperOperationTimeoutException class
  • ZookeeperSessionException — The ZookeeperSessionException class


Einführung

This extension uses libzookeeper library to provide API for communicating with ZooKeeper service.

ZooKeeper is an Apache project that enables centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.


Anforderungen

This extension requires » ZooKeeper C Binding (version 3.4.1 or greater). For more information, see » ZooKeeper Programmer's Guide.

This extension requires PHP version 5.2.0 or higher. Since 0.6.0, it requires PHP version 7.0.0 or higher.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/zookeeper.

To enable zookeeper support, configure with --with-libzookeeper-dir=DIR. DIR is the install prefix of ZooKeeper C Binding, which must contain the include/zookeeper/zookeeper.h

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Zookeeper Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
zookeeper.recv_timeout | 10000 | PHP_INI_ALL |
zookeeper.session_lock | 1 | PHP_INI_SYSTEM |
zookeeper.sess_lock_wait | 150000 | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

zookeeper.recv_timeout int

Default the timeout for any ZooKeeper session.

zookeeper.session_lock int

Enable PHP session locking.

zookeeper.sess_lock_wait int

PHP Session spin lock retry wait time in microseconds. Be carefull when setting this value. Valid values are integers, where 0 is interpreted as the default value. Negative values result in a reduces locking to a try lock.


  • « Ressource-Typen
  • ZooKeeper Funktionen »
  • PHP Manual
  • ZooKeeper
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


  • « Vordefinierte Konstanten
  • zookeeper_dispatch »
  • PHP Manual
  • ZooKeeper
  • ZooKeeper Funktionen

ZooKeeper Funktionen

Inhaltsverzeichnis

  • zookeeper_dispatch — Calls callbacks for pending operations


Calls callbacks for pending operations

  • « ZooKeeper Funktionen
  • Zookeeper »
  • PHP Manual
  • ZooKeeper Funktionen
  • Calls callbacks for pending operations

zookeeper_dispatch

(PECL zookeeper >= 0.4.0)

zookeeper_dispatch — Calls callbacks for pending operations

Beschreibung

zookeeper_dispatch ( ) : void

The zookeeper_dispatch() function calls the callbacks passwd by operations like Zookeeper::get() or Zookeeper::exists().

Achtung

Since version 0.4.0, this function must be called manually to achieve asynchronous operations. If you want that to be done automatically, you also can declare ticks at the beginning of your program.

After PHP 7.1, you can ignore this function. This extension uses EG(vm_interrupt) to implement async dispatch.

Fehler/Exceptions

This method emits PHP warning when callback could not be invoked.

Beispiele

Beispiel #1 zookeeper_dispatch() example #1

Dispatch callbacks manually.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->get('/zookeeper', function() {
    echo "Callback was called".PHP_EOL;
});
while(true) {
    sleep(1);
    zookeeper_dispatch();
}
?>

Beispiel #2 zookeeper_dispatch() example #2

Declare ticks.

<?php
declare(ticks=1);

$client = new Zookeeper();
$client->connect('localhost:2181');
$client->get('/zookeeper', function() {
    echo "Callback was called".PHP_EOL;
});
while(true) {
    sleep(1);
}
?>

Siehe auch

  • Zookeeper::addAuth() - Specify application credentials
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::exists() - Checks the existence of a node in zookeeper synchronously
  • Zookeeper::get() - Gets the data associated with a node synchronously
  • Zookeeper::getChildren() - Lists the children of a node synchronously
  • Zookeeper::setWatcher() - Set a watcher function


The Zookeeper class

(PECL zookeeper >= 0.1.0)

Einführung

Represents ZooKeeper session.

Klassenbeschreibung

Zookeeper {
/* Methoden */
public __construct ( string $host = '' , callable $watcher_cb = null , int $recv_timeout = 10000 )
public addAuth ( string $scheme , string $cert , callable $completion_cb = null ) : bool
public close ( ) : void
public connect ( string $host , callable $watcher_cb = null , int $recv_timeout = 10000 ) : void
public create ( string $path , string $value , array $acls , int $flags = null ) : string
public delete ( string $path , int $version = -1 ) : bool
public exists ( string $path , callable $watcher_cb = null ) : array
public get ( string $path , callable $watcher_cb = null , array &$stat = null , int $max_size = 0 ) : string
public getAcl ( string $path ) : array
public getChildren ( string $path , callable $watcher_cb = null ) : array
public getClientId ( ) : int
public getConfig ( ) : ZookeeperConfig
public getRecvTimeout ( ) : int
public getState ( ) : int
public isRecoverable ( ) : bool
public set ( string $path , string $value , int $version = -1 , array &$stat = null ) : bool
public setAcl ( string $path , int $version , array $acl ) : bool
public static setDebugLevel ( int $logLevel ) : bool
public static setDeterministicConnOrder ( bool $yesOrNo ) : bool
public setLogStream ( resource $stream ) : bool
public setWatcher ( callable $watcher_cb ) : bool
/* Konstanten */
const int PERM_READ = 1 ;
const int PERM_WRITE = 2 ;
const int PERM_CREATE = 4 ;
const int PERM_DELETE = 8 ;
const int PERM_ADMIN = 16 ;
const int PERM_ALL = 31 ;
const int EPHEMERAL = 1 ;
const int SEQUENCE = 2 ;
const int LOG_LEVEL_ERROR = 1 ;
const int LOG_LEVEL_WARN = 2 ;
const int LOG_LEVEL_INFO = 3 ;
const int LOG_LEVEL_DEBUG = 4 ;
const int EXPIRED_SESSION_STATE = -112 ;
const int AUTH_FAILED_STATE = -113 ;
const int CONNECTING_STATE = 1 ;
const int ASSOCIATING_STATE = 2 ;
const int CONNECTED_STATE = 3 ;
const int READONLY_STATE = 5 ;
const int NOTCONNECTED_STATE = 999 ;
const int CREATED_EVENT = 1 ;
const int DELETED_EVENT = 2 ;
const int CHANGED_EVENT = 3 ;
const int CHILD_EVENT = 4 ;
const int SESSION_EVENT = -1 ;
const int NOTWATCHING_EVENT = -2 ;
const int SYSTEMERROR = -1 ;
const int RUNTIMEINCONSISTENCY = -2 ;
const int DATAINCONSISTENCY = -3 ;
const int CONNECTIONLOSS = -4 ;
const int MARSHALLINGERROR = -5 ;
const int UNIMPLEMENTED = -6 ;
const int OPERATIONTIMEOUT = -7 ;
const int BADARGUMENTS = -8 ;
const int INVALIDSTATE = -9 ;
const int NEWCONFIGNOQUORUM = -13 ;
const int RECONFIGINPROGRESS = -14 ;
const int OK = 0 ;
const int APIERROR = -100 ;
const int NONODE = -101 ;
const int NOAUTH = -102 ;
const int BADVERSION = -103 ;
const int NOCHILDRENFOREPHEMERALS = -108 ;
const int NODEEXISTS = -110 ;
const int NOTEMPTY = -111 ;
const int SESSIONEXPIRED = -112 ;
const int INVALIDCALLBACK = -113 ;
const int INVALIDACL = -114 ;
const int AUTHFAILED = -115 ;
const int CLOSING = -116 ;
const int NOTHING = -117 ;
const int SESSIONMOVED = -118 ;
const int NOTREADONLY = -119 ;
const int EPHEMERALONLOCALSESSION = -120 ;
const int NOWATCHER = -121 ;
const int RECONFIGDISABLED = -122 ;
}

Vordefinierte Konstanten

ZooKeeper Permissions

Zookeeper::PERM_READ

Can read nodes value and list its children

Zookeeper::PERM_WRITE

Can set the nodes value

Zookeeper::PERM_CREATE

Can create children

Zookeeper::PERM_DELETE

Can delete children

Zookeeper::PERM_ADMIN

Can execute set_acl()

Zookeeper::PERM_ALL

All of the above flags ORd together

ZooKeeper Create Flags

Zookeeper::EPHEMERAL

If Zookeeper::EPHEMERAL flag is set, the node will automatically get removed if the client session goes away.

Zookeeper::SEQUENCE

If the Zookeeper::SEQUENCE flag is set, a unique monotonically increasing sequence number is appended to the path name. The sequence number is always fixed length of 10 digits, 0 padded.

ZooKeeper Log Levels

Zookeeper::LOG_LEVEL_ERROR

Outputs only error mesages

Zookeeper::LOG_LEVEL_WARN

Outputs errors/warnings

Zookeeper::LOG_LEVEL_INFO

Outputs big action messages besides errors/warnings

Zookeeper::LOG_LEVEL_DEBUG

Outputs all

ZooKeeper States

Zookeeper::EXPIRED_SESSION_STATE

Connected but session expired

Zookeeper::AUTH_FAILED_STATE

Connected but auth failed

Zookeeper::CONNECTING_STATE

Connecting

Zookeeper::ASSOCIATING_STATE

Associating

Zookeeper::CONNECTED_STATE

Connected

Zookeeper::READONLY_STATE

TODO: help us improve this extension.

Zookeeper::NOTCONNECTED_STATE

Connection failed

ZooKeeper Watch Types

Zookeeper::CREATED_EVENT

A node has been created

This is only generated by watches on non-existent nodes. These watches are set using Zookeeper::exists.

Zookeeper::DELETED_EVENT

A node has been deleted

This is only generated by watches on nodes. These watches are set using Zookeeper::exists and Zookeeper::get.

Zookeeper::CHANGED_EVENT

A node has changed

This is only generated by watches on nodes. These watches are set using Zookeeper::exists and Zookeeper::get.

Zookeeper::CHILD_EVENT

A change as occurred in the list of children

This is only generated by watches on the child list of a node. These watches are set using Zookeeper::getChildren.

Zookeeper::SESSION_EVENT

A session has been lost

This is generated when a client loses contact or reconnects with a server.

Zookeeper::NOTWATCHING_EVENT

A watch has been removed

This is generated when the server for some reason, probably a resource constraint, will no longer watch a node for a client.

ZooKeeper System and Server-side Errors

Zookeeper::SYSTEMERROR

This is never thrown by the server, it shouldn't be used other than to indicate a range. Specifically error codes greater than this value, but lesser than Zookeeper::APIERROR, are system errors.

Zookeeper::RUNTIMEINCONSISTENCY

A runtime inconsistency was found.

Zookeeper::DATAINCONSISTENCY

A data inconsistency was found.

Zookeeper::CONNECTIONLOSS

Connection to the server has been lost.

Zookeeper::MARSHALLINGERROR

Error while marshalling or unmarshalling data.

Zookeeper::UNIMPLEMENTED

Operation is unimplemented.

Zookeeper::OPERATIONTIMEOUT

Operation timeout.

Zookeeper::BADARGUMENTS

Invalid arguments.

Zookeeper::INVALIDSTATE

Invliad zhandle state.

Zookeeper::NEWCONFIGNOQUORUM

No quorum of new config is connected and up-to-date with the leader of last committed config - try invoking reconfiguration after new servers are connected and synced.

Available as of ZooKeeper 3.5.0

Zookeeper::RECONFIGINPROGRESS

Reconfiguration requested while another reconfiguration is currently in progress. This is currently not supported. Please retry.

Available as of ZooKeeper 3.5.0

ZooKeeper API Errors

Zookeeper::OK

Everything is OK.

Zookeeper::APIERROR

This is never thrown by the server, it shouldn't be used other than to indicate a range. Specifically error codes greater than this value are API errors (while values less than this indicate a Zookeeper::SYSTEMERROR).

Zookeeper::NONODE

Node does not exist.

Zookeeper::NOAUTH

Not authenticated.

Zookeeper::BADVERSION

Version conflict.

Zookeeper::NOCHILDRENFOREPHEMERALS

Ephemeral nodes may not have children.

Zookeeper::NODEEXISTS

The node already exists.

Zookeeper::NOTEMPTY

The node has children.

Zookeeper::SESSIONEXPIRED

The session has been expired by the server.

Zookeeper::INVALIDCALLBACK

Invalid callback specified.

Zookeeper::INVALIDACL

Invalid ACL specified.

Zookeeper::AUTHFAILED

Client authentication failed.

Zookeeper::CLOSING

ZooKeeper is closing.

Zookeeper::NOTHING

(not error) No server responses to process.

Zookeeper::SESSIONMOVED

Session moved to another server, so operation is ignored.

Zookeeper::NOTREADONLY

State-changing request is passed to read-only server.

Zookeeper::EPHEMERALONLOCALSESSION

Attempt to create ephemeral node on a local session.

Zookeeper::NOWATCHER

The watcher couldn't be found.

Zookeeper::RECONFIGDISABLED

Attempts to perform a reconfiguration operation when reconfiguration feature is disabled.

Inhaltsverzeichnis

  • Zookeeper::addAuth — Specify application credentials
  • Zookeeper::close — Close the zookeeper handle and free up any resources
  • Zookeeper::connect — Create a handle to used communicate with zookeeper
  • Zookeeper::__construct — Create a handle to used communicate with zookeeper
  • Zookeeper::create — Create a node synchronously
  • Zookeeper::delete — Delete a node in zookeeper synchronously
  • Zookeeper::exists — Checks the existence of a node in zookeeper synchronously
  • Zookeeper::get — Gets the data associated with a node synchronously
  • Zookeeper::getAcl — Gets the acl associated with a node synchronously
  • Zookeeper::getChildren — Lists the children of a node synchronously
  • Zookeeper::getClientId — Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • Zookeeper::getConfig — Get instance of ZookeeperConfig
  • Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect
  • Zookeeper::getState — Get the state of the zookeeper connection
  • Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered
  • Zookeeper::set — Sets the data associated with a node
  • Zookeeper::setAcl — Sets the acl associated with a node synchronously
  • Zookeeper::setDebugLevel — Sets the debugging level for the library
  • Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization
  • Zookeeper::setLogStream — Sets the stream to be used by the library for logging
  • Zookeeper::setWatcher — Set a watcher function


Specify application credentials

  • « Zookeeper
  • Zookeeper::close »
  • PHP Manual
  • Zookeeper
  • Specify application credentials

Zookeeper::addAuth

(PECL zookeeper >= 0.1.0)

Zookeeper::addAuth — Specify application credentials

Beschreibung

public Zookeeper::addAuth ( string $scheme , string $cert , callable $completion_cb = null ) : bool

The application calls this function to specify its credentials for purposes of authentication. The server will use the security provider specified by the scheme parameter to authenticate the client connection. If the authentication request has failed: - the server connection is dropped. - the watcher is called with the ZOO_AUTH_FAILED_STATE value as the state parameter.

Parameter-Liste

scheme

The id of authentication scheme. Natively supported: "digest" password-based authentication

cert

Application credentials. The actual value depends on the scheme.

completion_cb

The routine to invoke when the request completes. One of the following result codes may be passed into the completion callback: - ZOK operation completed successfully - ZAUTHFAILED authentication failed

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Beispiele

Beispiel #1 Zookeeper::addAuth() example

Add auth before requesting node value.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$zookeeper->set($path, $value);

$zookeeper->addAuth('digest', 'user0:passwd0');
$r = $zookeeper->get($path);
if ($r)
  echo $r;
else
  echo 'ERR';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

nodevalue

Siehe auch

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::setAcl() - Sets the acl associated with a node synchronously
  • Zookeeper::getAcl() - Gets the acl associated with a node synchronously
  • ZooKeeper States
  • ZookeeperException


Close the zookeeper handle and free up any resources

  • « Zookeeper::addAuth
  • Zookeeper::connect »
  • PHP Manual
  • Zookeeper
  • Close the zookeeper handle and free up any resources

Zookeeper::close

(PECL zookeeper >= 0.5.0)

Zookeeper::close — Close the zookeeper handle and free up any resources

Beschreibung

public Zookeeper::close ( ) : void

Fehler/Exceptions

This method emits ZookeeperException and it's derivatives when closing an uninitialized instance.

Siehe auch

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Create a handle to used communicate with zookeeper

  • « Zookeeper::close
  • Zookeeper::__construct »
  • PHP Manual
  • Zookeeper
  • Create a handle to used communicate with zookeeper

Zookeeper::connect

(PECL zookeeper >= 0.2.0)

Zookeeper::connect — Create a handle to used communicate with zookeeper

Beschreibung

public Zookeeper::connect ( string $host , callable $watcher_cb = null , int $recv_timeout = 10000 ) : void

This method creates a new handle and a zookeeper session that corresponds to that handle. Session establishment is asynchronous, meaning that the session should not be considered established until (and unless) an event of state ZOO_CONNECTED_STATE is received.

Parameter-Liste

host

Comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"

watcher_cb

The global watcher callback function. When notifications are triggered this function will be invoked.

recv_timeout

The timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE).

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or could not init instance.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Siehe auch

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Create a handle to used communicate with zookeeper

  • « Zookeeper::connect
  • Zookeeper::create »
  • PHP Manual
  • Zookeeper
  • Create a handle to used communicate with zookeeper

Zookeeper::__construct

(PECL zookeeper >= 0.1.0)

Zookeeper::__construct — Create a handle to used communicate with zookeeper

Beschreibung

public Zookeeper::__construct ( string $host = '' , callable $watcher_cb = null , int $recv_timeout = 10000 )

This method creates a new handle and a zookeeper session that corresponds to that handle. Session establishment is asynchronous, meaning that the session should not be considered established until (and unless) an event of state ZOO_CONNECTED_STATE is received.

Parameter-Liste

host

comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"

watcher_cb

the global watcher callback function. When notifications are triggered this function will be invoked.

recv_timeout

the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE).

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or could not init instance.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Siehe auch

  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Create a node synchronously

  • « Zookeeper::__construct
  • Zookeeper::delete »
  • PHP Manual
  • Zookeeper
  • Create a node synchronously

Zookeeper::create

(PECL zookeeper >= 0.1.0)

Zookeeper::create — Create a node synchronously

Beschreibung

public Zookeeper::create ( string $path , string $value , array $acls , int $flags = null ) : string

This method will create a node in ZooKeeper. A node can only be created if it does not already exists. The Create Flags affect the creation of nodes. If ZOO_EPHEMERAL flag is set, the node will automatically get removed if the client session goes away. If the ZOO_SEQUENCE flag is set, a unique monotonically increasing sequence number is appended to the path name.

Parameter-Liste

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

value

The data to be stored in the node.

acls

The initial ACL of the node. The ACL must not be null or empty.

flags

this parameter can be set to 0 for normal create or an OR of the Create Flags

Rückgabewerte

Returns the path of the new node (this might be different than the supplied path because of the ZOO_SEQUENCE flag) on success, and false on failure.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to create node.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Beispiele

Beispiel #1 Zookeeper::create() example

Create a new node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
  array(
    'perms'  => Zookeeper::PERM_ALL,
    'scheme' => 'world',
    'id'     => 'anyone',
  )
);
$path = '/path/to/newnode';
$realPath = $zookeeper->create($path, null, $aclArray);
if ($realPath)
  echo $realPath;
else
  echo 'ERR';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

/path/to/newnode

Siehe auch

  • Zookeeper::delete() - Delete a node in zookeeper synchronously
  • Zookeeper::getChildren() - Lists the children of a node synchronously
  • ZooKeeper Permissions
  • ZookeeperException


Delete a node in zookeeper synchronously

  • « Zookeeper::create
  • Zookeeper::exists »
  • PHP Manual
  • Zookeeper
  • Delete a node in zookeeper synchronously

Zookeeper::delete

(PECL zookeeper >= 0.2.0)

Zookeeper::delete — Delete a node in zookeeper synchronously

Beschreibung

public Zookeeper::delete ( string $path , int $version = -1 ) : bool

Parameter-Liste

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to delete node.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Beispiele

Beispiel #1 Zookeeper::delete() example

Delete a existing node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$r = $zookeeper->delete($path);
if ($r)
  echo 'SUCCESS';
else
  echo 'ERR';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

SUCCESS

Siehe auch

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::getChildren() - Lists the children of a node synchronously
  • ZookeeperException


Checks the existence of a node in zookeeper synchronously

  • « Zookeeper::delete
  • Zookeeper::get »
  • PHP Manual
  • Zookeeper
  • Checks the existence of a node in zookeeper synchronously

Zookeeper::exists

(PECL zookeeper >= 0.1.0)

Zookeeper::exists — Checks the existence of a node in zookeeper synchronously

Beschreibung

public Zookeeper::exists ( string $path , callable $watcher_cb = null ) : array

Parameter-Liste

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

if nonzero, a watch will be set at the server to notify the client if the node changes. The watch will be set even if the node does not

Rückgabewerte

Returns the value of stat for the path if the given node exists, otherwise false.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to check the existence of a node.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Beispiele

Beispiel #1 Zookeeper::exists() example

Check the existence of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$r = $zookeeper->exists($path);
if ($r)
  echo 'EXISTS';
else
  echo 'N/A or ERR';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

EXISTS

Siehe auch

  • Zookeeper::get() - Gets the data associated with a node synchronously
  • ZookeeperException


Gets the data associated with a node synchronously

  • « Zookeeper::exists
  • Zookeeper::getAcl »
  • PHP Manual
  • Zookeeper
  • Gets the data associated with a node synchronously

Zookeeper::get

(PECL zookeeper >= 0.1.0)

Zookeeper::get — Gets the data associated with a node synchronously

Beschreibung

public Zookeeper::get ( string $path , callable $watcher_cb = null , array &$stat = null , int $max_size = 0 ) : string

Parameter-Liste

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

If nonzero, a watch will be set at the server to notify the client if the node changes.

stat

If not NULL, will hold the value of stat for the path on return.

max_size

Max size of the data. If 0 is used, this method will return the whole data.

Rückgabewerte

Returns the data on success, and false on failure.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to get value from node.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Beispiele

Beispiel #1 Zookeeper::get() example

Get value from node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$zookeeper->set($path, $value);

$r = $zookeeper->get($path);
if ($r)
  echo $r;
else
  echo 'ERR';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

nodevalue

Beispiel #2 Zookeeper::get() stat example

Get node stat info.

<?php
$zookeeper = new Zookeeper('localhost:2181');
$path = '/path/to/node';
$stat = [];
$zookeeper->get($path, null, $stat);
var_dump($stat);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(11) {
  ["czxid"]=>
  float(0)
  ["mzxid"]=>
  float(0)
  ["ctime"]=>
  float(0)
  ["mtime"]=>
  float(0)
  ["version"]=>
  int(0)
  ["cversion"]=>
  int(-2)
  ["aversion"]=>
  int(0)
  ["ephemeralOwner"]=>
  float(0)
  ["dataLength"]=>
  int(0)
  ["numChildren"]=>
  int(2)
  ["pzxid"]=>
  float(0)
}

Siehe auch

  • Zookeeper::set() - Sets the data associated with a node
  • ZookeeperException


Gets the acl associated with a node synchronously

  • « Zookeeper::get
  • Zookeeper::getChildren »
  • PHP Manual
  • Zookeeper
  • Gets the acl associated with a node synchronously

Zookeeper::getAcl

(PECL zookeeper >= 0.1.0)

Zookeeper::getAcl — Gets the acl associated with a node synchronously

Beschreibung

public Zookeeper::getAcl ( string $path ) : array

Parameter-Liste

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

Rückgabewerte

Return acl array on success and false on failure.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to get ACL of a node.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Beispiele

Beispiel #1 Zookeeper::getAcl() example

Get ACL of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
  array(
    'perms'  => Zookeeper::PERM_ALL,
    'scheme' => 'world',
    'id'     => 'anyone',
  )
);
$path = '/path/to/newnode';
$zookeeper->setAcl($path, $aclArray);

$r = $zookeeper->getAcl($path);
if ($r)
  var_dump($r);
else
  echo 'ERR';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  [0]=>
  array(3) {
    ["perms"]=>
    int(31)
    ["scheme"]=>
    string(5) "world"
    ["id"]=>
    string(6) "anyone"
  }
}

Siehe auch

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::setAcl() - Sets the acl associated with a node synchronously
  • ZooKeeper Permissions
  • ZookeeperException


Lists the children of a node synchronously

  • « Zookeeper::getAcl
  • Zookeeper::getClientId »
  • PHP Manual
  • Zookeeper
  • Lists the children of a node synchronously

Zookeeper::getChildren

(PECL zookeeper >= 0.1.0)

Zookeeper::getChildren — Lists the children of a node synchronously

Beschreibung

public Zookeeper::getChildren ( string $path , callable $watcher_cb = null ) : array

Parameter-Liste

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

If nonzero, a watch will be set at the server to notify the client if the node changes.

Rückgabewerte

Returns an array with children paths on success, and false on failure.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to list children of a node.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Beispiele

Beispiel #1 Zookeeper::getChildren() example

Lists children of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/zookeeper';
$r = $zookeeper->getchildren($path);
if ($r)
  var_dump($r);
else
  echo 'ERR';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  [0]=>
  string(6) "config"
}

Siehe auch

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::delete() - Delete a node in zookeeper synchronously
  • ZookeeperException


Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

  • « Zookeeper::getChildren
  • Zookeeper::getConfig »
  • PHP Manual
  • Zookeeper
  • Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

Zookeeper::getClientId

(PECL zookeeper >= 0.1.0)

Zookeeper::getClientId — Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

Beschreibung

public Zookeeper::getClientId ( ) : int

Rückgabewerte

Returns the client session id on success, and false on failure.

Fehler/Exceptions

This method emits PHP error/warning when it could not get client session id.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Siehe auch

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • Zookeeper::getState() - Get the state of the zookeeper connection
  • ZooKeeper States
  • ZookeeperException


Get instance of ZookeeperConfig

  • « Zookeeper::getClientId
  • Zookeeper::getRecvTimeout »
  • PHP Manual
  • Zookeeper
  • Get instance of ZookeeperConfig

Zookeeper::getConfig

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

Zookeeper::getConfig — Get instance of ZookeeperConfig

Beschreibung

public Zookeeper::getConfig ( ) : ZookeeperConfig

Rückgabewerte

Returns instance of ZookeeperConfig.

Siehe auch

  • ZookeeperConfig


Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect

  • « Zookeeper::getConfig
  • Zookeeper::getState »
  • PHP Manual
  • Zookeeper
  • Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect

Zookeeper::getRecvTimeout

(PECL zookeeper >= 0.1.0)

Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect

Beschreibung

public Zookeeper::getRecvTimeout ( ) : int

Rückgabewerte

Returns the timeout for this session on success, and false on failure.

Fehler/Exceptions

This method emits PHP error/warning when operation fails.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Siehe auch

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Get the state of the zookeeper connection

  • « Zookeeper::getRecvTimeout
  • Zookeeper::isRecoverable »
  • PHP Manual
  • Zookeeper
  • Get the state of the zookeeper connection

Zookeeper::getState

(PECL zookeeper >= 0.1.0)

Zookeeper::getState — Get the state of the zookeeper connection

Beschreibung

public Zookeeper::getState ( ) : int

Rückgabewerte

Returns the state of zookeeper connection on success, and false on failure.

Fehler/Exceptions

This method emits PHP error/warning when it fails to get state of zookeeper connection.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Siehe auch

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • Zookeeper::getClientId() - Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • ZooKeeper States
  • ZookeeperException


Checks if the current zookeeper connection state can be recovered

  • « Zookeeper::getState
  • Zookeeper::set »
  • PHP Manual
  • Zookeeper
  • Checks if the current zookeeper connection state can be recovered

Zookeeper::isRecoverable

(PECL zookeeper >= 0.1.0)

Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered

Beschreibung

public Zookeeper::isRecoverable ( ) : bool

The application must close the handle and try to reconnect.

Rückgabewerte

Returns true/false on success, and false on failure.

Fehler/Exceptions

This method emits PHP error/warning when operation fails.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Siehe auch

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • Zookeeper::getClientId() - Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • ZooKeeper States
  • ZookeeperException


Sets the data associated with a node

  • « Zookeeper::isRecoverable
  • Zookeeper::setAcl »
  • PHP Manual
  • Zookeeper
  • Sets the data associated with a node

Zookeeper::set

(PECL zookeeper >= 0.1.0)

Zookeeper::set — Sets the data associated with a node

Beschreibung

public Zookeeper::set ( string $path , string $value , int $version = -1 , array &$stat = null ) : bool

Parameter-Liste

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

value

The data to be stored in the node.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to save value to node.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Beispiele

Beispiel #1 Zookeeper::set() example

Save value to node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$r = $zookeeper->set($path, $value);
if ($r)
  echo 'SUCCESS';
else
  echo 'ERR';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

SUCCESS

Siehe auch

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::get() - Gets the data associated with a node synchronously
  • ZookeeperException


Sets the acl associated with a node synchronously

  • « Zookeeper::set
  • Zookeeper::setDebugLevel »
  • PHP Manual
  • Zookeeper
  • Sets the acl associated with a node synchronously

Zookeeper::setAcl

(PECL zookeeper >= 0.1.0)

Zookeeper::setAcl — Sets the acl associated with a node synchronously

Beschreibung

public Zookeeper::setAcl ( string $path , int $version , array $acl ) : bool

Parameter-Liste

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

version

The expected version of the path.

acl

The acl to be set on the path.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to set ACL for a node.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Beispiele

Beispiel #1 Zookeeper::setAcl() example

Set ACL for a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
  array(
    'perms'  => Zookeeper::PERM_ALL,
    'scheme' => 'world',
    'id'     => 'anyone',
  )
);
$path = '/path/to/newnode';
$zookeeper->setAcl($path, $aclArray);

$r = $zookeeper->getAcl($path);
if ($r)
  var_dump($r);
else
  echo 'ERR';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  [0]=>
  array(3) {
    ["perms"]=>
    int(31)
    ["scheme"]=>
    string(5) "world"
    ["id"]=>
    string(6) "anyone"
  }
}

Siehe auch

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::getAcl() - Gets the acl associated with a node synchronously
  • ZooKeeper Permissions
  • ZookeeperException


Sets the debugging level for the library

  • « Zookeeper::setAcl
  • Zookeeper::setDeterministicConnOrder »
  • PHP Manual
  • Zookeeper
  • Sets the debugging level for the library

Zookeeper::setDebugLevel

(PECL zookeeper >= 0.1.0)

Zookeeper::setDebugLevel — Sets the debugging level for the library

Beschreibung

public static Zookeeper::setDebugLevel ( int $logLevel ) : bool

Parameter-Liste

logLevel

ZooKeeper log level constants.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to set debug level.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Beispiele

Beispiel #1 Zookeeper::setDebugLevel() example

Set debugl level.

<?php
$r = Zookeeper::setDebugLevel(Zookeeper::LOG_LEVEL_WARN);
if ($r)
  echo 'SUCCESS';
else
  echo 'ERR';
?>
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

SUCCESS

Siehe auch

  • ZooKeeper Log Levels
  • ZookeeperException


Enable/disable quorum endpoint order randomization

  • « Zookeeper::setDebugLevel
  • Zookeeper::setLogStream »
  • PHP Manual
  • Zookeeper
  • Enable/disable quorum endpoint order randomization

Zookeeper::setDeterministicConnOrder

(PECL zookeeper >= 0.1.0)

Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization

Beschreibung

public static Zookeeper::setDeterministicConnOrder ( bool $yesOrNo ) : bool

If passed a true value, will make the client connect to quorum peers in the order as specified in the zookeeper_init() call. A false value causes zookeeper_init() to permute the peer endpoints which is good for more even client connection distribution among the quorum peers. ZooKeeper C Client uses false by default.

Parameter-Liste

yesOrNo

Disable/enable quorum endpoint order randomization.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Siehe auch

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Sets the stream to be used by the library for logging

  • « Zookeeper::setDeterministicConnOrder
  • Zookeeper::setWatcher »
  • PHP Manual
  • Zookeeper
  • Sets the stream to be used by the library for logging

Zookeeper::setLogStream

(PECL zookeeper >= 0.1.0)

Zookeeper::setLogStream — Sets the stream to be used by the library for logging

Beschreibung

public Zookeeper::setLogStream ( resource $stream ) : bool

The zookeeper library uses stderr as its default log stream. Application must make sure the stream is writable. Passing in NULL resets the stream to its default value (stderr).

Parameter-Liste

stream

The stream to be used by the library for logging.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Siehe auch

  • Zookeeper::setDebugLevel() - Sets the debugging level for the library
  • ZookeeperException


Set a watcher function

  • « Zookeeper::setLogStream
  • ZookeeperConfig »
  • PHP Manual
  • Zookeeper
  • Set a watcher function

Zookeeper::setWatcher

(PECL zookeeper >= 0.1.0)

Zookeeper::setWatcher — Set a watcher function

Beschreibung

public Zookeeper::setWatcher ( callable $watcher_cb ) : bool

Parameter-Liste

watcher_cb

A watch will be set at the server to notify the client if the node changes.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to set watcher.

Achtung

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Siehe auch

  • Zookeeper::exists() - Checks the existence of a node in zookeeper synchronously
  • Zookeeper::get() - Gets the data associated with a node synchronously
  • ZookeeperException


The ZookeeperConfig class

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

Einführung

The ZooKeeper Config handling class.

Klassenbeschreibung

ZookeeperConfig {
/* Methoden */
public add ( string $members , int $version = -1 , array &$stat = null ) : void
public get ( callable $watcher_cb = null , array &$stat = null ) : string
public remove ( string $id_list , int $version = -1 , array &$stat = null ) : void
public set ( string $members , int $version = -1 , array &$stat = null ) : void
}

Inhaltsverzeichnis

  • ZookeeperConfig::add — Add servers to the ensemble
  • ZookeeperConfig::get — Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::remove — Remove servers from the ensemble
  • ZookeeperConfig::set — Change ZK cluster ensemble membership and roles of ensemble peers


Add servers to the ensemble

  • « ZookeeperConfig
  • ZookeeperConfig::get »
  • PHP Manual
  • ZookeeperConfig
  • Add servers to the ensemble

ZookeeperConfig::add

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::add — Add servers to the ensemble

Beschreibung

public ZookeeperConfig::add ( string $members , int $version = -1 , array &$stat = null ) : void

Parameter-Liste

members

Comma separated list of servers to be added to the ensemble. Each has a configuration line for a server to be added (as would appear in a configuration file), only for maj. quorums.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Fehler/Exceptions

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to save value to node.

Beispiele

Beispiel #1 ZookeeperConfig::add() example

Add members.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->addAuth('digest', 'timandes:timandes');
$zkConfig = $client->getConfig();
$zkConfig->set("server.1=localhost:2888:3888:participant;0.0.0.0:2181");
$zkConfig->add("server.2=localhost:2889:3889:participant;0.0.0.0:2182");
$r = $zkConfig->get();
if ($r)
  echo $r;
else
  echo 'ERR';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

server.1=localhost:2888:3888:participant;0.0.0.0:2181
server.2=localhost:2889:3889:participant;0.0.0.0:2182
version=0xca01e881a2

Siehe auch

  • ZookeeperConfig::get() - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::set() - Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperConfig::remove() - Remove servers from the ensemble
  • ZookeeperException


Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously

  • « ZookeeperConfig::add
  • ZookeeperConfig::remove »
  • PHP Manual
  • ZookeeperConfig
  • Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously

ZookeeperConfig::get

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::get — Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously

Beschreibung

public ZookeeperConfig::get ( callable $watcher_cb = null , array &$stat = null ) : string

Parameter-Liste

watcher_cb

If nonzero, a watch will be set at the server to notify the client if the node changes.

stat

If not NULL, will hold the value of stat for the path on return.

Rückgabewerte

Returns the configuration string on success, and false on failure.

Fehler/Exceptions

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to get configuration.

Beispiele

Beispiel #1 ZookeeperConfig::get() example

Get configuration.

<?php
$zk = new Zookeeper();
$zk->connect('localhost:2181');
$zk->addAuth('digest', 'timandes:timandes');
$zkConfig = $zk->getConfig();
$r = $zkConfig->get();
if ($r)
  echo $r;
else
  echo 'ERR';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

server.1=localhost:2888:3888:participant;0.0.0.0:2181
version=0xca01e881a2

Siehe auch

  • ZookeeperConfig::set() - Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperConfig::add() - Add servers to the ensemble
  • ZookeeperConfig::remove() - Remove servers from the ensemble
  • ZookeeperException


Remove servers from the ensemble

  • « ZookeeperConfig::get
  • ZookeeperConfig::set »
  • PHP Manual
  • ZookeeperConfig
  • Remove servers from the ensemble

ZookeeperConfig::remove

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::remove — Remove servers from the ensemble

Beschreibung

public ZookeeperConfig::remove ( string $id_list , int $version = -1 , array &$stat = null ) : void

Parameter-Liste

id_list

Comma separated list of server IDs to be removed from the ensemble. Each has an id of a server to be removed, only for maj. quorums.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Fehler/Exceptions

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to save value to node.

Beispiele

Beispiel #1 ZookeeperConfig::remove() example

Remove members.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->addAuth('digest', 'timandes:timandes');
$zkConfig = $client->getConfig();
$zkConfig->set("server.1=localhost:2888:3888:participant;0.0.0.0:2181,server.2=localhost:2889:3889:participant;0.0.0.0:2182");
$zkConfig->remove("2");
echo $zkConfig->get();
if ($r)
  echo $r;
else
  echo 'ERR';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

server.1=localhost:2888:3888:participant;0.0.0.0:2181
version=0xca01e881a2

Siehe auch

  • ZookeeperConfig::get() - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::add() - Add servers to the ensemble
  • ZookeeperConfig::set() - Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperException


Change ZK cluster ensemble membership and roles of ensemble peers

  • « ZookeeperConfig::remove
  • ZookeeperException »
  • PHP Manual
  • ZookeeperConfig
  • Change ZK cluster ensemble membership and roles of ensemble peers

ZookeeperConfig::set

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::set — Change ZK cluster ensemble membership and roles of ensemble peers

Beschreibung

public ZookeeperConfig::set ( string $members , int $version = -1 , array &$stat = null ) : void

Parameter-Liste

members

Comma separated list of new membership (e.g., contents of a membership configuration file) - for use only with a non-incremental reconfiguration.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Fehler/Exceptions

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to save value to node.

Beispiele

Beispiel #1 ZookeeperConfig::set() example

Reconfig.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->addAuth('digest', 'timandes:timandes');
$zkConfig = $client->getConfig();
$zkConfig->set("server.1=localhost:2888:3888:participant;0.0.0.0:2181");
?>

Siehe auch

  • ZookeeperConfig::get() - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::add() - Add servers to the ensemble
  • ZookeeperConfig::remove() - Remove servers from the ensemble
  • ZookeeperException


The ZookeeperException class

(PECL zookeeper >= 0.3.0)

Einführung

The ZooKeeper exception handling class.

Klassenbeschreibung

ZookeeperException extends Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The ZookeeperAuthenticationException class

(PECL zookeeper >= 0.3.0)

Einführung

The ZooKeeper authentication exception handling class.

Klassenbeschreibung

ZookeeperAuthenticationException extends ZookeeperException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The ZookeeperConnectionException class

(PECL zookeeper >= 0.3.0)

Einführung

The ZooKeeper connection exception handling class.

Klassenbeschreibung

ZookeeperConnectionException extends ZookeeperException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The ZookeeperMarshallingException class

(PECL zookeeper >= 0.3.0)

Einführung

The ZooKeeper exception (while marshalling or unmarshalling data) handling class.

Klassenbeschreibung

ZookeeperMarshallingException extends ZookeeperException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The ZookeeperNoNodeException class

(PECL zookeeper >= 0.3.0)

Einführung

The ZooKeeper exception (when node does not exist) handling class.

Klassenbeschreibung

ZookeeperNoNodeException extends ZookeeperException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The ZookeeperOperationTimeoutException class

(PECL zookeeper >= 0.3.0)

Einführung

The ZooKeeper operation timeout exception handling class.

Klassenbeschreibung

ZookeeperOperationTimeoutException extends ZookeeperException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The ZookeeperSessionException class

(PECL zookeeper >= 0.3.0)

Einführung

The ZooKeeper session exception handling class.

Klassenbeschreibung

ZookeeperSessionException extends ZookeeperException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


Suchmaschinenerweiterungen

  • Solr — Apache Solr
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Solr Funktionen
    • Beispiele
    • SolrUtils — The SolrUtils class
    • SolrInputDocument — The SolrInputDocument class
    • SolrDocument — The SolrDocument class
    • SolrDocumentField — The SolrDocumentField class
    • SolrObject — The SolrObject class
    • SolrClient — The SolrClient class
    • SolrResponse — The SolrResponse class
    • SolrQueryResponse — The SolrQueryResponse class
    • SolrUpdateResponse — The SolrUpdateResponse class
    • SolrPingResponse — The SolrPingResponse class
    • SolrGenericResponse — The SolrGenericResponse class
    • SolrParams — The SolrParams class
    • SolrModifiableParams — The SolrModifiableParams class
    • SolrQuery — The SolrQuery class
    • SolrDisMaxQuery — The SolrDisMaxQuery class
    • SolrCollapseFunction — The SolrCollapseFunction class
    • SolrException — The SolrException class
    • SolrClientException — The SolrClientException class
    • SolrServerException — The SolrServerException class
    • SolrIllegalArgumentException — The SolrIllegalArgumentException class
    • SolrIllegalOperationException — The SolrIllegalOperationException class
    • SolrMissingMandatoryParameterException — The SolrMissingMandatoryParameterException class
  • Sphinx — Sphinx Client
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • SphinxClient — The SphinxClient class


Apache Solr

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Solr Funktionen
    • solr_get_version — Returns the current version of the Apache Solr extension
  • Beispiele
  • SolrUtils — The SolrUtils class
    • SolrUtils::digestXmlResponse — Parses an response XML string into a SolrObject
    • SolrUtils::escapeQueryChars — Escapes a lucene query string
    • SolrUtils::getSolrVersion — Returns the current version of the Solr extension
    • SolrUtils::queryPhrase — Prepares a phrase from an unescaped lucene string
  • SolrInputDocument — The SolrInputDocument class
    • SolrInputDocument::addChildDocument — Adds a child document for block indexing
    • SolrInputDocument::addChildDocuments — Adds an array of child documents
    • SolrInputDocument::addField — Adds a field to the document
    • SolrInputDocument::clear — Resets the input document
    • SolrInputDocument::__clone — Creates a copy of a SolrDocument
    • SolrInputDocument::__construct — Constructor
    • SolrInputDocument::deleteField — Removes a field from the document
    • SolrInputDocument::__destruct — Destructor
    • SolrInputDocument::fieldExists — Checks if a field exists
    • SolrInputDocument::getBoost — Retrieves the current boost value for the document
    • SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount — Returns the number of child documents
    • SolrInputDocument::getField — Retrieves a field by name
    • SolrInputDocument::getFieldBoost — Retrieves the boost value for a particular field
    • SolrInputDocument::getFieldCount — Returns the number of fields in the document
    • SolrInputDocument::getFieldNames — Returns an array containing all the fields in the document
    • SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents
    • SolrInputDocument::merge — Merges one input document into another
    • SolrInputDocument::reset — This is an alias of SolrInputDocument::clear
    • SolrInputDocument::setBoost — Sets the boost value for this document
    • SolrInputDocument::setFieldBoost — Sets the index-time boost value for a field
    • SolrInputDocument::sort — Sorts the fields within the document
    • SolrInputDocument::toArray — Returns an array representation of the input document
  • SolrDocument — The SolrDocument class
    • SolrDocument::addField — Adds a field to the document
    • SolrDocument::clear — Drops all the fields in the document
    • SolrDocument::__clone — Creates a copy of a SolrDocument object
    • SolrDocument::__construct — Constructor
    • SolrDocument::current — Retrieves the current field
    • SolrDocument::deleteField — Removes a field from the document
    • SolrDocument::__destruct — Destructor
    • SolrDocument::fieldExists — Checks if a field exists in the document
    • SolrDocument::__get — Access the field as a property
    • SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)
    • SolrDocument::getChildDocumentsCount — Returns the number of child documents
    • SolrDocument::getField — Retrieves a field by name
    • SolrDocument::getFieldCount — Returns the number of fields in this document
    • SolrDocument::getFieldNames — Returns an array of fields names in the document
    • SolrDocument::getInputDocument — Returns a SolrInputDocument equivalent of the object
    • SolrDocument::hasChildDocuments — Checks whether the document has any child documents
    • SolrDocument::__isset — Checks if a field exists
    • SolrDocument::key — Retrieves the current key
    • SolrDocument::merge — Merges source to the current SolrDocument
    • SolrDocument::next — Moves the internal pointer to the next field
    • SolrDocument::offsetExists — Checks if a particular field exists
    • SolrDocument::offsetGet — Retrieves a field
    • SolrDocument::offsetSet — Adds a field to the document
    • SolrDocument::offsetUnset — Removes a field
    • SolrDocument::reset — This is an alias to SolrDocument::clear()
    • SolrDocument::rewind — Resets the internal pointer to the beginning
    • SolrDocument::serialize — Used for custom serialization
    • SolrDocument::__set — Adds another field to the document
    • SolrDocument::sort — Sorts the fields in the document
    • SolrDocument::toArray — Returns an array representation of the document
    • SolrDocument::unserialize — Custom serialization of SolrDocument objects
    • SolrDocument::__unset — Removes a field from the document
    • SolrDocument::valid — Checks if the current position internally is still valid
  • SolrDocumentField — The SolrDocumentField class
    • SolrDocumentField::__construct — Constructor
    • SolrDocumentField::__destruct — Destructor
  • SolrObject — The SolrObject class
    • SolrObject::__construct — Creates Solr object
    • SolrObject::__destruct — Destructor
    • SolrObject::getPropertyNames — Returns an array of all the names of the properties
    • SolrObject::offsetExists — Checks if the property exists
    • SolrObject::offsetGet — Used to retrieve a property
    • SolrObject::offsetSet — Sets the value for a property
    • SolrObject::offsetUnset — Unsets the value for the property
  • SolrClient — The SolrClient class
    • SolrClient::addDocument — Adds a document to the index
    • SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index
    • SolrClient::commit — Finalizes all add/deletes made to the index
    • SolrClient::__construct — Constructor for the SolrClient object
    • SolrClient::deleteById — Delete by Id
    • SolrClient::deleteByIds — Deletes by Ids
    • SolrClient::deleteByQueries — Removes all documents matching any of the queries
    • SolrClient::deleteByQuery — Deletes all documents matching the given query
    • SolrClient::__destruct — Destructor for SolrClient
    • SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getDebug — Returns the debug data for the last connection attempt
    • SolrClient::getOptions — Returns the client options set internally
    • SolrClient::optimize — Defragments the index
    • SolrClient::ping — Checks if Solr server is still up
    • SolrClient::query — Sends a query to the server
    • SolrClient::request — Sends a raw update request
    • SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit
    • SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr
    • SolrClient::setServlet — Changes the specified servlet type to a new value
    • SolrClient::system — Retrieve Solr Server information
    • SolrClient::threads — Checks the threads status
  • SolrResponse — The SolrResponse class
    • SolrResponse::getDigestedResponse — Returns the XML response as serialized PHP data
    • SolrResponse::getHttpStatus — Returns the HTTP status of the response
    • SolrResponse::getHttpStatusMessage — Returns more details on the HTTP status
    • SolrResponse::getRawRequest — Returns the raw request sent to the Solr server
    • SolrResponse::getRawRequestHeaders — Returns the raw request headers sent to the Solr server
    • SolrResponse::getRawResponse — Returns the raw response from the server
    • SolrResponse::getRawResponseHeaders — Returns the raw response headers from the server
    • SolrResponse::getRequestUrl — Returns the full URL the request was sent to
    • SolrResponse::getResponse — Returns a SolrObject representing the XML response from the server
    • SolrResponse::setParseMode — Sets the parse mode
    • SolrResponse::success — Was the request a success
  • SolrQueryResponse — The SolrQueryResponse class
    • SolrQueryResponse::__construct — Constructor
    • SolrQueryResponse::__destruct — Destructor
  • SolrUpdateResponse — The SolrUpdateResponse class
    • SolrUpdateResponse::__construct — Constructor
    • SolrUpdateResponse::__destruct — Destructor
  • SolrPingResponse — The SolrPingResponse class
    • SolrPingResponse::__construct — Constructor
    • SolrPingResponse::__destruct — Destructor
    • SolrPingResponse::getResponse — Returns the response from the server
  • SolrGenericResponse — The SolrGenericResponse class
    • SolrGenericResponse::__construct — Constructor
    • SolrGenericResponse::__destruct — Destructor
  • SolrParams — The SolrParams class
    • SolrParams::add — This is an alias for SolrParams::addParam
    • SolrParams::addParam — Adds a parameter to the object
    • SolrParams::get — This is an alias for SolrParams::getParam
    • SolrParams::getParam — Returns a parameter value
    • SolrParams::getParams — Returns an array of non URL-encoded parameters
    • SolrParams::getPreparedParams — Returns an array of URL-encoded parameters
    • SolrParams::serialize — Used for custom serialization
    • SolrParams::set — An alias of SolrParams::setParam
    • SolrParams::setParam — Sets the parameter to the specified value
    • SolrParams::toString — Returns all the name-value pair parameters in the object
    • SolrParams::unserialize — Used for custom serialization
  • SolrModifiableParams — The SolrModifiableParams class
    • SolrModifiableParams::__construct — Constructor
    • SolrModifiableParams::__destruct — Destructor
  • SolrQuery — The SolrQuery class
    • SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group
    • SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter)
    • SolrQuery::addFacetDateField — Maps to facet.date
    • SolrQuery::addFacetDateOther — Adds another facet.date.other parameter
    • SolrQuery::addFacetField — Adds another field to the facet
    • SolrQuery::addFacetQuery — Adds a facet query
    • SolrQuery::addField — Specifies which fields to return in the result
    • SolrQuery::addFilterQuery — Specifies a filter query
    • SolrQuery::addGroupField — Add a field to be used to group results
    • SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter)
    • SolrQuery::addGroupQuery — Allows grouping of documents that match the given query
    • SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter)
    • SolrQuery::addHighlightField — Maps to hl.fl
    • SolrQuery::addMltField — Sets a field to use for similarity
    • SolrQuery::addMltQueryField — Maps to mlt.qf
    • SolrQuery::addSortField — Used to control how the results should be sorted
    • SolrQuery::addStatsFacet — Requests a return of sub results for values within the given facet
    • SolrQuery::addStatsField — Maps to stats.field parameter
    • SolrQuery::collapse — Collapses the result set to a single document per group
    • SolrQuery::__construct — Constructor
    • SolrQuery::__destruct — Destructor
    • SolrQuery::getExpand — Returns true if group expanding is enabled
    • SolrQuery::getExpandFilterQueries — Returns the expand filter queries
    • SolrQuery::getExpandQuery — Returns the expand query expand.q parameter
    • SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)
    • SolrQuery::getExpandSortFields — Returns an array of fields
    • SolrQuery::getFacet — Returns the value of the facet parameter
    • SolrQuery::getFacetDateEnd — Returns the value for the facet.date.end parameter
    • SolrQuery::getFacetDateFields — Returns all the facet.date fields
    • SolrQuery::getFacetDateGap — Returns the value of the facet.date.gap parameter
    • SolrQuery::getFacetDateHardEnd — Returns the value of the facet.date.hardend parameter
    • SolrQuery::getFacetDateOther — Returns the value for the facet.date.other parameter
    • SolrQuery::getFacetDateStart — Returns the lower bound for the first date range for all date faceting on this field
    • SolrQuery::getFacetFields — Returns all the facet fields
    • SolrQuery::getFacetLimit — Returns the maximum number of constraint counts that should be returned for the facet fields
    • SolrQuery::getFacetMethod — Returns the value of the facet.method parameter
    • SolrQuery::getFacetMinCount — Returns the minimum counts for facet fields should be included in the response
    • SolrQuery::getFacetMissing — Returns the current state of the facet.missing parameter
    • SolrQuery::getFacetOffset — Returns an offset into the list of constraints to be used for pagination
    • SolrQuery::getFacetPrefix — Returns the facet prefix
    • SolrQuery::getFacetQueries — Returns all the facet queries
    • SolrQuery::getFacetSort — Returns the facet sort type
    • SolrQuery::getFields — Returns the list of fields that will be returned in the response
    • SolrQuery::getFilterQueries — Returns an array of filter queries
    • SolrQuery::getGroup — Returns true if grouping is enabled
    • SolrQuery::getGroupCachePercent — Returns group cache percent value
    • SolrQuery::getGroupFacet — Returns the group.facet parameter value
    • SolrQuery::getGroupFields — Returns group fields (group.field parameter values)
    • SolrQuery::getGroupFormat — Returns the group.format value
    • SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)
    • SolrQuery::getGroupLimit — Returns the group.limit value
    • SolrQuery::getGroupMain — Returns the group.main value
    • SolrQuery::getGroupNGroups — Returns the group.ngroups value
    • SolrQuery::getGroupOffset — Returns the group.offset value
    • SolrQuery::getGroupQueries — Returns all the group.query parameter values
    • SolrQuery::getGroupSortFields — Returns the group.sort value
    • SolrQuery::getGroupTruncate — Returns the group.truncate value
    • SolrQuery::getHighlight — Returns the state of the hl parameter
    • SolrQuery::getHighlightAlternateField — Returns the highlight field to use as backup or default
    • SolrQuery::getHighlightFields — Returns all the fields that Solr should generate highlighted snippets for
    • SolrQuery::getHighlightFormatter — Returns the formatter for the highlighted output
    • SolrQuery::getHighlightFragmenter — Returns the text snippet generator for highlighted text
    • SolrQuery::getHighlightFragsize — Returns the number of characters of fragments to consider for highlighting
    • SolrQuery::getHighlightHighlightMultiTerm — Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
    • SolrQuery::getHighlightMaxAlternateFieldLength — Returns the maximum number of characters of the field to return
    • SolrQuery::getHighlightMaxAnalyzedChars — Returns the maximum number of characters into a document to look for suitable snippets
    • SolrQuery::getHighlightMergeContiguous — Returns whether or not the collapse contiguous fragments into a single fragment
    • SolrQuery::getHighlightRegexMaxAnalyzedChars — Returns the maximum number of characters from a field when using the regex fragmenter
    • SolrQuery::getHighlightRegexPattern — Returns the regular expression for fragmenting
    • SolrQuery::getHighlightRegexSlop — Returns the deviation factor from the ideal fragment size
    • SolrQuery::getHighlightRequireFieldMatch — Returns if a field will only be highlighted if the query matched in this particular field
    • SolrQuery::getHighlightSimplePost — Returns the text which appears after a highlighted term
    • SolrQuery::getHighlightSimplePre — Returns the text which appears before a highlighted term
    • SolrQuery::getHighlightSnippets — Returns the maximum number of highlighted snippets to generate per field
    • SolrQuery::getHighlightUsePhraseHighlighter — Returns the state of the hl.usePhraseHighlighter parameter
    • SolrQuery::getMlt — Returns whether or not MoreLikeThis results should be enabled
    • SolrQuery::getMltBoost — Returns whether or not the query will be boosted by the interesting term relevance
    • SolrQuery::getMltCount — Returns the number of similar documents to return for each result
    • SolrQuery::getMltFields — Returns all the fields to use for similarity
    • SolrQuery::getMltMaxNumQueryTerms — Returns the maximum number of query terms that will be included in any generated query
    • SolrQuery::getMltMaxNumTokens — Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support
    • SolrQuery::getMltMaxWordLength — Returns the maximum word length above which words will be ignored
    • SolrQuery::getMltMinDocFrequency — Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
    • SolrQuery::getMltMinTermFrequency — Returns the frequency below which terms will be ignored in the source document
    • SolrQuery::getMltMinWordLength — Returns the minimum word length below which words will be ignored
    • SolrQuery::getMltQueryFields — Returns the query fields and their boosts
    • SolrQuery::getQuery — Returns the main query
    • SolrQuery::getRows — Returns the maximum number of documents
    • SolrQuery::getSortFields — Returns all the sort fields
    • SolrQuery::getStart — Returns the offset in the complete result set
    • SolrQuery::getStats — Returns whether or not stats is enabled
    • SolrQuery::getStatsFacets — Returns all the stats facets that were set
    • SolrQuery::getStatsFields — Returns all the statistics fields
    • SolrQuery::getTerms — Returns whether or not the TermsComponent is enabled
    • SolrQuery::getTermsField — Returns the field from which the terms are retrieved
    • SolrQuery::getTermsIncludeLowerBound — Returns whether or not to include the lower bound in the result set
    • SolrQuery::getTermsIncludeUpperBound — Returns whether or not to include the upper bound term in the result set
    • SolrQuery::getTermsLimit — Returns the maximum number of terms Solr should return
    • SolrQuery::getTermsLowerBound — Returns the term to start at
    • SolrQuery::getTermsMaxCount — Returns the maximum document frequency
    • SolrQuery::getTermsMinCount — Returns the minimum document frequency to return in order to be included
    • SolrQuery::getTermsPrefix — Returns the term prefix
    • SolrQuery::getTermsReturnRaw — Whether or not to return raw characters
    • SolrQuery::getTermsSort — Returns an integer indicating how terms are sorted
    • SolrQuery::getTermsUpperBound — Returns the term to stop at
    • SolrQuery::getTimeAllowed — Returns the time in milliseconds allowed for the query to finish
    • SolrQuery::removeExpandFilterQuery — Removes an expand filter query
    • SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter
    • SolrQuery::removeFacetDateField — Removes one of the facet date fields
    • SolrQuery::removeFacetDateOther — Removes one of the facet.date.other parameters
    • SolrQuery::removeFacetField — Removes one of the facet.date parameters
    • SolrQuery::removeFacetQuery — Removes one of the facet.query parameters
    • SolrQuery::removeField — Removes a field from the list of fields
    • SolrQuery::removeFilterQuery — Removes a filter query
    • SolrQuery::removeHighlightField — Removes one of the fields used for highlighting
    • SolrQuery::removeMltField — Removes one of the moreLikeThis fields
    • SolrQuery::removeMltQueryField — Removes one of the moreLikeThis query fields
    • SolrQuery::removeSortField — Removes one of the sort fields
    • SolrQuery::removeStatsFacet — Removes one of the stats.facet parameters
    • SolrQuery::removeStatsField — Removes one of the stats.field parameters
    • SolrQuery::setEchoHandler — Toggles the echoHandler parameter
    • SolrQuery::setEchoParams — Determines what kind of parameters to include in the response
    • SolrQuery::setExpand — Enables/Disables the Expand Component
    • SolrQuery::setExpandQuery — Sets the expand.q parameter
    • SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5
    • SolrQuery::setExplainOther — Sets the explainOther common query parameter
    • SolrQuery::setFacet — Maps to the facet parameter. Enables or disables facetting
    • SolrQuery::setFacetDateEnd — Maps to facet.date.end
    • SolrQuery::setFacetDateGap — Maps to facet.date.gap
    • SolrQuery::setFacetDateHardEnd — Maps to facet.date.hardend
    • SolrQuery::setFacetDateStart — Maps to facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency — Sets the minimum document frequency used for determining term count
    • SolrQuery::setFacetLimit — Maps to facet.limit
    • SolrQuery::setFacetMethod — Specifies the type of algorithm to use when faceting a field
    • SolrQuery::setFacetMinCount — Maps to facet.mincount
    • SolrQuery::setFacetMissing — Maps to facet.missing
    • SolrQuery::setFacetOffset — Sets the offset into the list of constraints to allow for pagination
    • SolrQuery::setFacetPrefix — Specifies a string prefix with which to limits the terms on which to facet
    • SolrQuery::setFacetSort — Determines the ordering of the facet field constraints
    • SolrQuery::setGroup — Enable/Disable result grouping (group parameter)
    • SolrQuery::setGroupCachePercent — Enables caching for result grouping
    • SolrQuery::setGroupFacet — Sets group.facet parameter
    • SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter)
    • SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1
    • SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
    • SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results
    • SolrQuery::setGroupOffset — Sets the group.offset parameter
    • SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query
    • SolrQuery::setHighlight — Enables or disables highlighting
    • SolrQuery::setHighlightAlternateField — Specifies the backup field to use
    • SolrQuery::setHighlightFormatter — Specify a formatter for the highlight output
    • SolrQuery::setHighlightFragmenter — Sets a text snippet generator for highlighted text
    • SolrQuery::setHighlightFragsize — The size of fragments to consider for highlighting
    • SolrQuery::setHighlightHighlightMultiTerm — Use SpanScorer to highlight phrase terms
    • SolrQuery::setHighlightMaxAlternateFieldLength — Sets the maximum number of characters of the field to return
    • SolrQuery::setHighlightMaxAnalyzedChars — Specifies the number of characters into a document to look for suitable snippets
    • SolrQuery::setHighlightMergeContiguous — Whether or not to collapse contiguous fragments into a single fragment
    • SolrQuery::setHighlightRegexMaxAnalyzedChars — Specify the maximum number of characters to analyze
    • SolrQuery::setHighlightRegexPattern — Specify the regular expression for fragmenting
    • SolrQuery::setHighlightRegexSlop — Sets the factor by which the regex fragmenter can stray from the ideal fragment size
    • SolrQuery::setHighlightRequireFieldMatch — Require field matching during highlighting
    • SolrQuery::setHighlightSimplePost — Sets the text which appears after a highlighted term
    • SolrQuery::setHighlightSimplePre — Sets the text which appears before a highlighted term
    • SolrQuery::setHighlightSnippets — Sets the maximum number of highlighted snippets to generate per field
    • SolrQuery::setHighlightUsePhraseHighlighter — Whether to highlight phrase terms only when they appear within the query phrase
    • SolrQuery::setMlt — Enables or disables moreLikeThis
    • SolrQuery::setMltBoost — Set if the query will be boosted by the interesting term relevance
    • SolrQuery::setMltCount — Set the number of similar documents to return for each result
    • SolrQuery::setMltMaxNumQueryTerms — Sets the maximum number of query terms included
    • SolrQuery::setMltMaxNumTokens — Specifies the maximum number of tokens to parse
    • SolrQuery::setMltMaxWordLength — Sets the maximum word length
    • SolrQuery::setMltMinDocFrequency — Sets the mltMinDoc frequency
    • SolrQuery::setMltMinTermFrequency — Sets the frequency below which terms will be ignored in the source docs
    • SolrQuery::setMltMinWordLength — Sets the minimum word length
    • SolrQuery::setOmitHeader — Exclude the header from the returned results
    • SolrQuery::setQuery — Sets the search query
    • SolrQuery::setRows — Specifies the maximum number of rows to return in the result
    • SolrQuery::setShowDebugInfo — Flag to show debug information
    • SolrQuery::setStart — Specifies the number of rows to skip
    • SolrQuery::setStats — Enables or disables the Stats component
    • SolrQuery::setTerms — Enables or disables the TermsComponent
    • SolrQuery::setTermsField — Sets the name of the field to get the Terms from
    • SolrQuery::setTermsIncludeLowerBound — Include the lower bound term in the result set
    • SolrQuery::setTermsIncludeUpperBound — Include the upper bound term in the result set
    • SolrQuery::setTermsLimit — Sets the maximum number of terms to return
    • SolrQuery::setTermsLowerBound — Specifies the Term to start from
    • SolrQuery::setTermsMaxCount — Sets the maximum document frequency
    • SolrQuery::setTermsMinCount — Sets the minimum document frequency
    • SolrQuery::setTermsPrefix — Restrict matches to terms that start with the prefix
    • SolrQuery::setTermsReturnRaw — Return the raw characters of the indexed term
    • SolrQuery::setTermsSort — Specifies how to sort the returned terms
    • SolrQuery::setTermsUpperBound — Sets the term to stop at
    • SolrQuery::setTimeAllowed — The time allowed for search to finish
  • SolrDisMaxQuery — The SolrDisMaxQuery class
    • SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)
    • SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)
    • SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)
    • SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)
    • SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)
    • SolrDisMaxQuery::__construct — Class Constructor
    • SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)
    • SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)
    • SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)
    • SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)
    • SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)
    • SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)
    • SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter)
    • SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)
    • SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)
    • SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)
    • SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)
    • SolrDisMaxQuery::setQueryPhraseSlop — Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
    • SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)
    • SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)
    • SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)
    • SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax
  • SolrCollapseFunction — The SolrCollapseFunction class
    • SolrCollapseFunction::__construct — Constructor
    • SolrCollapseFunction::getField — Returns the field that is being collapsed on
    • SolrCollapseFunction::getHint — Returns collapse hint
    • SolrCollapseFunction::getMax — Returns max parameter
    • SolrCollapseFunction::getMin — Returns min parameter
    • SolrCollapseFunction::getNullPolicy — Returns null policy
    • SolrCollapseFunction::getSize — Returns size parameter
    • SolrCollapseFunction::setField — Sets the field to collapse on
    • SolrCollapseFunction::setHint — Sets collapse hint
    • SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query
    • SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::setNullPolicy — Sets the NULL Policy
    • SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function
  • SolrException — The SolrException class
    • SolrException::getInternalInfo — Returns internal information where the Exception was thrown
  • SolrClientException — The SolrClientException class
    • SolrClientException::getInternalInfo — Returns internal information where the Exception was thrown
  • SolrServerException — The SolrServerException class
    • SolrServerException::getInternalInfo — Returns internal information where the Exception was thrown
  • SolrIllegalArgumentException — The SolrIllegalArgumentException class
    • SolrIllegalArgumentException::getInternalInfo — Returns internal information where the Exception was thrown
  • SolrIllegalOperationException — The SolrIllegalOperationException class
    • SolrIllegalOperationException::getInternalInfo — Returns internal information where the Exception was thrown
  • SolrMissingMandatoryParameterException — The SolrMissingMandatoryParameterException class


Einführung

The Solr extension allows you to communicate effectively with the Apache Solr Server in PHP.

The Solr extension is an extremely fast, light-weight, feature-rich library that allows PHP developers to communicate effectively with Solr server instances.

Versions 1.x of The PECL Extension supports Apache Solr Server 1.3-3.x

Versions 2.x of The PECL Extension supports Apache Solr Server 4.0+

There are built-in tools to add documents and make updates to the solr server.

It also contains tools that allows you to build advanced queries to the server when searching for documents.


Anforderungen

PHP version 5.2.11 or later is required.

The libxml and curl extensions must also be enabled for the Apache Solr extension to be available.

libxml2 2.6.31 or later is required.

libcurl 7.18.0 or later is also required.

The above library versions are required and attempting to hack the code to make it compile is strongly discouraged. It will fail, possibly with errors that could be hard to debug


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/solr.

For help and support, please visit the extension google group. » Apache Solr PHP Extension

Windows binaries (DLL files) for this PECL extension are available from the PECL website.

Hinweis:

The solr module can be compiled in debug mode by passing the --enable-solr-debug flag to configure

When building manually, be sure to include curl and libxml support within the build.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SOLR_MAJOR_VERSION (int)
SOLR_MINOR_VERSION (int)
SOLR_PATCH_VERSION (int)
SOLR_EXTENSION_VERSION (string)


Solr Funktionen

Inhaltsverzeichnis

  • solr_get_version — Returns the current version of the Apache Solr extension


Returns the current version of the Apache Solr extension

  • « Solr Funktionen
  • Beispiele »
  • PHP Manual
  • Solr Funktionen
  • Returns the current version of the Apache Solr extension

solr_get_version

(PECL solr >= 0.9.1)

solr_get_version — Returns the current version of the Apache Solr extension

Beschreibung

solr_get_version ( ) : string

This function returns the current version of the extension as a string.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

It returns a string on success and false on failure.

Fehler/Exceptions

This function throws no errors or exceptions.

Beispiele

Beispiel #1 solr_get_version() example

<?php

$solr_version = solr_get_version();

print $solr_version;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

0.9.6

Siehe auch

  • SolrUtils::getSolrVersion() - Returns the current version of the Solr extension


Beispiele

Examples of how to use the Apache Solr extension in PHP

Beispiel #1 Contents of the BootStrap file

<?php

/* Domain name of the Solr server */
define('SOLR_SERVER_HOSTNAME', 'solr.example.com');

/* Whether or not to run in secure mode */
define('SOLR_SECURE', true);

/* HTTP Port to connection */
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8443 : 8983));

/* HTTP Basic Authentication Username */
define('SOLR_SERVER_USERNAME', 'admin');

/* HTTP Basic Authentication password */
define('SOLR_SERVER_PASSWORD', 'changeit');

/* HTTP connection timeout */
/* This is maximum time in seconds allowed for the http data transfer operation. Default value is 30 seconds */
define('SOLR_SERVER_TIMEOUT', 10);

/* File name to a PEM-formatted private key + private certificate (concatenated in that order) */
define('SOLR_SSL_CERT', 'certs/combo.pem');

/* File name to a PEM-formatted private certificate only */
define('SOLR_SSL_CERT_ONLY', 'certs/solr.crt');

/* File name to a PEM-formatted private key */
define('SOLR_SSL_KEY', 'certs/solr.key');

/* Password for PEM-formatted private key file */
define('SOLR_SSL_KEYPASSWORD', 'StrongAndSecurePassword');

/* Name of file holding one or more CA certificates to verify peer with*/
define('SOLR_SSL_CAINFO', 'certs/cacert.crt');

/* Name of directory holding multiple CA certificates to verify peer with */
define('SOLR_SSL_CAPATH', 'certs/');

?>

Beispiel #2 Adding a document to the index

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

print_r($updateResponse->getResponse());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 446
        )

)

Beispiel #3 Merging one document into another document

<?php

include "bootstrap.php";

$doc = new SolrDocument();

$second_doc = new SolrDocument();

$doc->addField('id', 1123);

$doc->features = "PHP Client Side";
$doc->features = "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat   = 'Information Technology';

$second_doc->addField('cat', 'Lucene Search');

$second_doc->merge($doc, true);

print_r($second_doc->toArray());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [document_boost] => 0
    [field_count] => 3
    [fields] => Array
        (
            [0] => SolrDocumentField Object
                (
                    [name] => cat
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => Software
                            [1] => Custom Search
                            [2] => Information Technology
                        )

                )

            [1] => SolrDocumentField Object
                (
                    [name] => id
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => 1123
                        )

                )

            [2] => SolrDocumentField Object
                (
                    [name] => features
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => PHP Client Side
                            [1] => Fast development cycles
                        )

                )

        )

)

Beispiel #4 Searching for documents - SolrObject responses

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [wt] => xml
                    [rows] => 50
                    [start] => 0
                    [indent] => on
                    [q] => lucene
                    [fl] => cat,features,id,timestamp
                    [version] => 2.2
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 3
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => Software
                                    [1] => Lucene
                                )

                            [id] => 334456
                        )

                    [1] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => Software
                                    [1] => Lucene
                                )

                            [id] => 334455
                        )

                    [2] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => software
                                    [1] => search
                                )

                            [features] => Array
                                (
                                    [0] => Advanced Full-Text Search Capabilities using Lucene
                                    [1] => Optimized for High Volume Web Traffic
                                    [2] => Standards Based Open Interfaces - XML and HTTP
                                    [3] => Comprehensive HTML Administration Interfaces
                                    [4] => Scalability - Efficient Replication to other Solr Search Servers
                                    [5] => Flexible and Adaptable with XML configuration and Schema
                                    [6] => Good unicode support: héllo (hello with an accent over the e)
                                )

                            [id] => SOLR1000
                            [timestamp] => 2009-09-04T20:38:55.906
                        )

                )

        )

)

Beispiel #5 Searching for documents - SolrDocument responses

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$query_response->setParseMode(SolrQueryResponse::PARSE_SOLR_DOC);

$response = $query_response->getResponse();

print_r($response);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [wt] => xml
                    [rows] => 50
                    [start] => 0
                    [indent] => on
                    [q] => lucene
                    [fl] => cat,features,id,timestamp
                    [version] => 2.2
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 3
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 19740
                        )

                    [1] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 25485
                        )

                    [2] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 25052
                        )

                )

        )

)

Beispiel #6 Simple TermsComponent example - basic

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

$query->setTermsField('cat');

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [electronics] => 14
                    [Lucene] => 4
                    [Software] => 4
                    [memory] => 3
                    [card] => 2
                    [connector] => 2
                    [drive] => 2
                    [graphics] => 2
                    [hard] => 2
                    [monitor] => 2
                )

        )

)

Beispiel #7 Simple TermsComponent example - using a prefix

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix = 'c';

$query->setTermsField('cat')->setTermsPrefix($prefix);

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [card] => 2
                    [connector] => 2
                    [camera] => 1
                    [copier] => 1
                )

        )

)

Beispiel #8 Simple TermsComponent example - specifying a minimum frequency

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix = 'c';

/* Return only terms with a frequency of 2 or greater */
$min_frequency = 2;

$query->setTermsField('cat')->setTermsPrefix($prefix)->setTermsMinCount($min_frequency);

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 0
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [card] => 2
                    [connector] => 2
                )

        )

)

Beispiel #9 Simple Facet Example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2);

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
            [1] => 3
            [184] => 3
            [2] => 3
            [3200] => 3
            [400] => 3
            [500] => 3
            [ddr] => 3
            [i] => 3
            [ipod] => 3
            [memori] => 3
            [pc] => 3
            [pin] => 3
            [pod] => 3
            [sdram] => 3
            [system] => 3
            [unbuff] => 3
            [canon] => 2
            [corsair] => 2
            [drive] => 2
            [hard] => 2
            [mb] => 2
            [n] => 2
            [power] => 2
            [retail] => 2
            [video] => 2
            [x] => 2
        )

)

Beispiel #10 Simple Facet Example - with optional field override for mincount

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4, 'name');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
        )

)

Beispiel #11 Facet Date Example

<?php

include "bootstrap.php";

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetDateField('manufacturedate_dt');

$query->setFacetDateStart('2006-02-13T00:00:00Z');

$query->setFacetDateEnd('2012-02-13T00:00:00Z');

$query->setFacetDateGap('+1YEAR');

$query->setFacetDateHardEnd(1);

$query->addFacetDateOther('before');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_dates;

print_r($facet_data);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [manufacturedate_dt] => SolrObject Object
        (
            [2006-02-13T00:00:00Z] => 9
            [2007-02-13T00:00:00Z] => 0
            [2008-02-13T00:00:00Z] => 0
            [2009-02-13T00:00:00Z] => 0
            [2010-02-13T00:00:00Z] => 0
            [2011-02-13T00:00:00Z] => 0
            [gap] => +1YEAR
            [start] => 2006-02-13T00:00:00Z
            [end] => 2012-02-13T00:00:00Z
            [before] => 2
        )

)

Beispiel #12 Connecting to SSL-Enabled Server

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'timeout'  => SOLR_SERVER_TIMEOUT,
    'secure'   => SOLR_SECURE,
    'ssl_cert' => SOLR_SSL_CERT_ONLY,
    'ssl_key'  => SOLR_SSL_KEY,
    'ssl_keypassword' => SOLR_SSL_KEYPASSWORD,
    'ssl_cainfo' => SOLR_SSL_CAINFO,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4, 'name');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
        )

)

Beispiel #13 Collapsing a SolrQuery

<?php
include "bootstrap.php";

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
        'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$collapseFunction = new SolrCollapseFunction('manu_id_s');

$collapseFunction
->setSize(2)
->setNullPolicy(SolrCollapseFunction::NULLPOLICY_IGNORE);

$query
->collapse($collapseFunction)
->setRows(4);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [q] => *:*
                    [indent] => on
                    [fq] => {!collapse field=manu_id_s size=2 nullPolicy=ignore}
                    [rows] => 4
                    [version] => 2.2
                    [wt] => xml
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 14
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SP2514N
                            [name] => Array
                                (
                                    [0] => Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133
                                )

                            [manu] => Array
                                (
                                    [0] => Samsung Electronics Co. Ltd.
                                )

                            [manu_id_s] => samsung
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => 7200RPM, 8MB cache, IDE Ultra ATA-133
                                    [1] => NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor
                                )

                            [price] => Array
                                (
                                    [0] => 92
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [store] => Array
                                (
                                    [0] => 35.0752,-97.032
                                )

                            [_version_] => 1510294336412057600
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                    [2] => SolrObject Object
                        (
                            [id] => F8V7067-APL-KIT
                            [name] => Array
                                (
                                    [0] => Belkin Mobile Power Cord for iPod w/ Dock
                                )

                            [manu] => Array
                                (
                                    [0] => Belkin
                                )

                            [manu_id_s] => belkin
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => connector
                                )

                            [features] => Array
                                (
                                    [0] => car power adapter, white
                                )

                            [weight] => Array
                                (
                                    [0] => 4
                                )

                            [price] => Array
                                (
                                    [0] => 19.95
                                )

                            [popularity] => Array
                                (
                                    [0] => 1
                                )

                            [inStock] => Array
                                (
                                    [0] =>
                                )

                            [store] => Array
                                (
                                    [0] => 45.18014,-93.87741
                                )

                            [manufacturedate_dt] => 2005-08-01T16:30:25Z
                            [_version_] => 1510294336458194944
                        )

                    [3] => SolrObject Object
                        (
                            [id] => MA147LL/A
                            [name] => Array
                                (
                                    [0] => Apple 60 GB iPod with Video Playback Black
                                )

                            [manu] => Array
                                (
                                    [0] => Apple Computer Inc.
                                )

                            [manu_id_s] => apple
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => music
                                )

                            [features] => Array
                                (
                                    [0] => iTunes, Podcasts, Audiobooks
                                    [1] => Stores up to 15,000 songs, 25,000 photos, or 150 hours of video
                                    [2] => 2.5-inch, 320x240 color TFT LCD display with LED backlight
                                    [3] => Up to 20 hours of battery life
                                    [4] => Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video
                                    [5] => Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication
                                )

                            [includes] => Array
                                (
                                    [0] => earbud headphones, USB cable
                                )

                            [weight] => Array
                                (
                                    [0] => 5.5
                                )

                            [price] => Array
                                (
                                    [0] => 399
                                )

                            [popularity] => Array
                                (
                                    [0] => 10
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 37.7752,-100.0232
                                )

                            [manufacturedate_dt] => 2005-10-12T08:00:00Z
                            [_version_] => 1510294336562003968
                        )

                )

        )

)

Beispiel #14 Solr Real Time Get (RTG) example SolrClient::getById()

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getById('GB18030TEST');
print_r($response->getResponse());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [doc] => SolrObject Object
        (
            [id] => GB18030TEST
            [name] => Array
                (
                    [0] => Test with some GB18030 encoded characters
                )

            [features] => Array
                (
                    [0] => No accents here
                    [1] => ??????
                    [2] => This is a feature (translated)
                    [3] => ?????????
                    [4] => This document is very shiny (translated)
                )

            [price] => Array
                (
                    [0] => 0
                )

            [inStock] => Array
                (
                    [0] => 1
                )

            [_version_] => 1510294336239042560
        )

)


The SolrUtils class

(PECL solr >= 0.9.2)

Einführung

Contains utility methods for retrieving the current extension version and preparing query phrases.

Also contains method for escaping query strings and parsing XML responses.

Klassenbeschreibung

abstract SolrUtils {
/* Methoden */
public static digestXmlResponse ( string $xmlresponse , int $parse_mode = 0 ) : SolrObject
public static escapeQueryChars ( string $str ) : string|false
public static getSolrVersion ( ) : string
public static queryPhrase ( string $str ) : string
}

Inhaltsverzeichnis

  • SolrUtils::digestXmlResponse — Parses an response XML string into a SolrObject
  • SolrUtils::escapeQueryChars — Escapes a lucene query string
  • SolrUtils::getSolrVersion — Returns the current version of the Solr extension
  • SolrUtils::queryPhrase — Prepares a phrase from an unescaped lucene string


Parses an response XML string into a SolrObject

  • « SolrUtils
  • SolrUtils::escapeQueryChars »
  • PHP Manual
  • SolrUtils
  • Parses an response XML string into a SolrObject

SolrUtils::digestXmlResponse

(PECL solr >= 0.9.2)

SolrUtils::digestXmlResponse — Parses an response XML string into a SolrObject

Beschreibung

public static SolrUtils::digestXmlResponse ( string $xmlresponse , int $parse_mode = 0 ) : SolrObject

This method parses an response XML string from the Apache Solr server into a SolrObject. It throws a SolrException if there was an error.

Parameter-Liste

xmlresponse

The XML response string from the Solr server.

parse_mode

Use SolrResponse::PARSE_SOLR_OBJ or SolrResponse::PARSE_SOLR_DOC

Rückgabewerte

Returns the SolrObject representing the XML response.

If the parse_mode parameter is set to SolrResponse::PARSE_SOLR_OBJ Solr documents will be parses as SolrObject instances.

If it is set to SolrResponse::PARSE_SOLR_DOC, they will be parsed as SolrDocument instances.


Escapes a lucene query string

  • « SolrUtils::digestXmlResponse
  • SolrUtils::getSolrVersion »
  • PHP Manual
  • SolrUtils
  • Escapes a lucene query string

SolrUtils::escapeQueryChars

(PECL solr >= 0.9.2)

SolrUtils::escapeQueryChars — Escapes a lucene query string

Beschreibung

public static SolrUtils::escapeQueryChars ( string $str ) : string|false

Lucene supports escaping special characters that are part of the query syntax.

The current list special characters are:

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /

These characters are part of the query syntax and must be escaped

Parameter-Liste

str

This is the query string to be escaped.

Rückgabewerte

Returns the escaped stringIm Fehlerfall wird false zurückgegeben..


Returns the current version of the Solr extension

  • « SolrUtils::escapeQueryChars
  • SolrUtils::queryPhrase »
  • PHP Manual
  • SolrUtils
  • Returns the current version of the Solr extension

SolrUtils::getSolrVersion

(PECL solr >= 0.9.2)

SolrUtils::getSolrVersion — Returns the current version of the Solr extension

Beschreibung

public static SolrUtils::getSolrVersion ( ) : string

Returns the current Solr version.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current version of the Apache Solr extension.


Prepares a phrase from an unescaped lucene string

  • « SolrUtils::getSolrVersion
  • SolrInputDocument »
  • PHP Manual
  • SolrUtils
  • Prepares a phrase from an unescaped lucene string

SolrUtils::queryPhrase

(PECL solr >= 0.9.2)

SolrUtils::queryPhrase — Prepares a phrase from an unescaped lucene string

Beschreibung

public static SolrUtils::queryPhrase ( string $str ) : string

Prepares a phrase from an unescaped lucene string.

Parameter-Liste

str

The lucene phrase.

Rückgabewerte

Returns the phrase contained in double quotes.


The SolrInputDocument class

(PECL solr >= 0.9.2)

Einführung

This class represents a Solr document that is about to be submitted to the Solr index.

Klassenbeschreibung

final SolrInputDocument {
/* Konstanten */
const int SORT_DEFAULT = 1 ;
const int SORT_ASC = 1 ;
const int SORT_DESC = 2 ;
const int SORT_FIELD_NAME = 1 ;
const int SORT_FIELD_VALUE_COUNT = 2 ;
const int SORT_FIELD_BOOST_VALUE = 4 ;
/* Methoden */
public addChildDocument ( SolrInputDocument $child ) : void
public addChildDocuments ( array &$docs ) : void
public addField ( string $fieldName , string $fieldValue , float $fieldBoostValue = 0.0 ) : bool
public clear ( ) : bool
public __clone ( ) : void
public __construct ( )
public deleteField ( string $fieldName ) : bool
public __destruct ( ) : void
public fieldExists ( string $fieldName ) : bool
public getBoost ( ) : float
public getChildDocuments ( ) : array
public getChildDocumentsCount ( ) : int
public getField ( string $fieldName ) : SolrDocumentField
public getFieldBoost ( string $fieldName ) : float
public getFieldCount ( ) : int|false
public getFieldNames ( ) : array
public hasChildDocuments ( ) : bool
public merge ( SolrInputDocument $sourceDoc , bool $overwrite = true ) : bool
public reset ( ) : bool
public setBoost ( float $documentBoostValue ) : bool
public setFieldBoost ( string $fieldName , float $fieldBoostValue ) : bool
public sort ( int $sortOrderBy , int $sortDirection = SolrInputDocument::SORT_ASC ) : bool
public toArray ( ) : array
}

Vordefinierte Konstanten

SolrInputDocument Class Constants

SolrInputDocument::SORT_DEFAULT

Sorts the fields in ascending order.

SolrInputDocument::SORT_ASC

Sorts the fields in ascending order.

SolrInputDocument::SORT_DESC

Sorts the fields in descending order.

SolrInputDocument::SORT_FIELD_NAME

Sorts the fields by name

SolrInputDocument::SORT_FIELD_VALUE_COUNT

Sorts the fields by number of values.

SolrInputDocument::SORT_FIELD_BOOST_VALUE

Sorts the fields by boost value.

Inhaltsverzeichnis

  • SolrInputDocument::addChildDocument — Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments — Adds an array of child documents
  • SolrInputDocument::addField — Adds a field to the document
  • SolrInputDocument::clear — Resets the input document
  • SolrInputDocument::__clone — Creates a copy of a SolrDocument
  • SolrInputDocument::__construct — Constructor
  • SolrInputDocument::deleteField — Removes a field from the document
  • SolrInputDocument::__destruct — Destructor
  • SolrInputDocument::fieldExists — Checks if a field exists
  • SolrInputDocument::getBoost — Retrieves the current boost value for the document
  • SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount — Returns the number of child documents
  • SolrInputDocument::getField — Retrieves a field by name
  • SolrInputDocument::getFieldBoost — Retrieves the boost value for a particular field
  • SolrInputDocument::getFieldCount — Returns the number of fields in the document
  • SolrInputDocument::getFieldNames — Returns an array containing all the fields in the document
  • SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents
  • SolrInputDocument::merge — Merges one input document into another
  • SolrInputDocument::reset — This is an alias of SolrInputDocument::clear
  • SolrInputDocument::setBoost — Sets the boost value for this document
  • SolrInputDocument::setFieldBoost — Sets the index-time boost value for a field
  • SolrInputDocument::sort — Sorts the fields within the document
  • SolrInputDocument::toArray — Returns an array representation of the input document


Adds a child document for block indexing

  • « SolrInputDocument
  • SolrInputDocument::addChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Adds a child document for block indexing

SolrInputDocument::addChildDocument

(PECL solr >= 2.3.0)

SolrInputDocument::addChildDocument — Adds a child document for block indexing

Beschreibung

public SolrInputDocument::addChildDocument ( SolrInputDocument $child ) : void

Adds a child document to construct a document block with nested documents.

Parameter-Liste

child

A SolrInputDocument object.

Fehler/Exceptions

Throws SolrIllegalArgumentException on failure.

Throws SolrException on internal failure.

Rückgabewerte

Beispiele

Beispiel #1 SolrInputDocument::addChildDocument() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_STORE_PATH,
);

$client = new SolrClient($options);

$product = new SolrInputDocument();

$product->addField('id', 'P-BLACK');
$product->addField('cat', 'tshirt');
$product->addField('cat', 'polo');
$product->addField('content_type', 'product');

$small = new SolrInputDocument();
$small->addField('id', 'TS-BLK-S');
$small->addField('content_type', 'sku');
$small->addField('size', 'S');
$small->addField('inventory', 100);

$medium = new SolrInputDocument();
$medium->addField('id', 'TS-BLK-M');
$medium->addField('content_type', 'sku');
$medium->addField('size', 'M');
$medium->addField('inventory', 200);

$large = new SolrInputDocument();
$large->addField('id', 'TS-BLK-L');
$large->addField('content_type', 'sku');
$large->addField('size', 'L');
$large->addField('inventory', 300);

// add child documents
$product->addChildDocument($small);
$product->addChildDocument($medium);
$product->addChildDocument($large);

// add product document block to the index
$updateResponse = $client->addDocument(
        $product,
        true, // overwrite if the document exists
        10000 // commit within 10 seconds
);

print_r($updateResponse->getResponse());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 5
        )
)

Siehe auch

  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Adds an array of child documents

  • « SolrInputDocument::addChildDocument
  • SolrInputDocument::addField »
  • PHP Manual
  • SolrInputDocument
  • Adds an array of child documents

SolrInputDocument::addChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::addChildDocuments — Adds an array of child documents

Beschreibung

public SolrInputDocument::addChildDocuments ( array &$docs ) : void

Adds an array of child documents to the current input document.

Parameter-Liste

docs

An array of SolrInputDocument objects.

Fehler/Exceptions

Throws SolrIllegalArgumentException on failure.

Throws SolrException on internal failure.

Rückgabewerte

Beispiele

Beispiel #1 SolrInputDocument::addChildDocuments() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_STORE_PATH,
);

$client = new SolrClient($options);

$product = new SolrInputDocument();

$product->addField('id', 'P-BLACK');
$product->addField('cat', 'tshirt');
$product->addField('cat', 'polo');
$product->addField('content_type', 'product');

$small = new SolrInputDocument();
$small->addField('id', 'TS-BLK-S');
$small->addField('content_type', 'sku');
$small->addField('size', 'S');
$small->addField('inventory', 100);

$medium = new SolrInputDocument();
$medium->addField('id', 'TS-BLK-M');
$medium->addField('content_type', 'sku');
$medium->addField('size', 'M');
$medium->addField('inventory', 200);

$large = new SolrInputDocument();
$large->addField('id', 'TS-BLK-L');
$large->addField('content_type', 'sku');
$large->addField('size', 'L');
$large->addField('inventory', 300);

// add child documents
$skus = [$small, $medium, $large];
$product->addChildDocuments($skus);

// add the product document block to the index
$updateResponse = $client->addDocument(
        $product,
        true, // overwrite if the document exists
        10000 // commit within 10 seconds
);

print_r($updateResponse->getResponse());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 5
        )
)

Siehe auch

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Adds a field to the document

  • « SolrInputDocument::addChildDocuments
  • SolrInputDocument::clear »
  • PHP Manual
  • SolrInputDocument
  • Adds a field to the document

SolrInputDocument::addField

(PECL solr >= 0.9.2)

SolrInputDocument::addField — Adds a field to the document

Beschreibung

public SolrInputDocument::addField ( string $fieldName , string $fieldValue , float $fieldBoostValue = 0.0 ) : bool

For multi-value fields, if a valid boost value is specified, the specified value will be multiplied by the current boost value for this field.

Parameter-Liste

fieldName

The name of the field

fieldValue

The value for the field.

fieldBoostValue

The index time boost for the field. Though this cannot be negative, you can still pass values less than 1.0 but they must be greater than zero.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Resets the input document

  • « SolrInputDocument::addField
  • SolrInputDocument::__clone »
  • PHP Manual
  • SolrInputDocument
  • Resets the input document

SolrInputDocument::clear

(PECL solr >= 0.9.2)

SolrInputDocument::clear — Resets the input document

Beschreibung

public SolrInputDocument::clear ( ) : bool

Resets the document by dropping all the fields and resets the document boost to zero.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Creates a copy of a SolrDocument

  • « SolrInputDocument::clear
  • SolrInputDocument::__construct »
  • PHP Manual
  • SolrInputDocument
  • Creates a copy of a SolrDocument

SolrInputDocument::__clone

(PECL solr >= 0.9.2)

SolrInputDocument::__clone — Creates a copy of a SolrDocument

Beschreibung

public SolrInputDocument::__clone ( ) : void

Should not be called directly. It is used to create a deep copy of a SolrInputDocument.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Creates a new SolrInputDocument instance.


Constructor

  • « SolrInputDocument::__clone
  • SolrInputDocument::deleteField »
  • PHP Manual
  • SolrInputDocument
  • Constructor

SolrInputDocument::__construct

(PECL solr >= 0.9.2)

SolrInputDocument::__construct — Constructor

Beschreibung

public SolrInputDocument::__construct ( )

Constructor.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None.


Removes a field from the document

  • « SolrInputDocument::__construct
  • SolrInputDocument::__destruct »
  • PHP Manual
  • SolrInputDocument
  • Removes a field from the document

SolrInputDocument::deleteField

(PECL solr >= 0.9.2)

SolrInputDocument::deleteField — Removes a field from the document

Beschreibung

public SolrInputDocument::deleteField ( string $fieldName ) : bool

Removes a field from the document.

Parameter-Liste

fieldName

The name of the field.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Destructor

  • « SolrInputDocument::deleteField
  • SolrInputDocument::fieldExists »
  • PHP Manual
  • SolrInputDocument
  • Destructor

SolrInputDocument::__destruct

(PECL solr >= 0.9.2)

SolrInputDocument::__destruct — Destructor

Beschreibung

public SolrInputDocument::__destruct ( ) : void

Destructor

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None.


Checks if a field exists

  • « SolrInputDocument::__destruct
  • SolrInputDocument::getBoost »
  • PHP Manual
  • SolrInputDocument
  • Checks if a field exists

SolrInputDocument::fieldExists

(PECL solr >= 0.9.2)

SolrInputDocument::fieldExists — Checks if a field exists

Beschreibung

public SolrInputDocument::fieldExists ( string $fieldName ) : bool

Checks if a field exists

Parameter-Liste

fieldName

Name of the field.

Rückgabewerte

Returns true if the field was found and false if it was not found.


Retrieves the current boost value for the document

  • « SolrInputDocument::fieldExists
  • SolrInputDocument::getChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Retrieves the current boost value for the document

SolrInputDocument::getBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getBoost — Retrieves the current boost value for the document

Beschreibung

public SolrInputDocument::getBoost ( ) : float

Retrieves the current boost value for the document.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the boost value on success and false on failure.


Returns an array of child documents (SolrInputDocument)

  • « SolrInputDocument::getBoost
  • SolrInputDocument::getChildDocumentsCount »
  • PHP Manual
  • SolrInputDocument
  • Returns an array of child documents (SolrInputDocument)

SolrInputDocument::getChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)

Beschreibung

public SolrInputDocument::getChildDocuments ( ) : array

Returns an array of child documents (SolrInputDocument)

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Returns the number of child documents

  • « SolrInputDocument::getChildDocuments
  • SolrInputDocument::getField »
  • PHP Manual
  • SolrInputDocument
  • Returns the number of child documents

SolrInputDocument::getChildDocumentsCount

(PECL solr >= 2.3.0)

SolrInputDocument::getChildDocumentsCount — Returns the number of child documents

Beschreibung

public SolrInputDocument::getChildDocumentsCount ( ) : int

Returns the number of child documents

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)


Retrieves a field by name

  • « SolrInputDocument::getChildDocumentsCount
  • SolrInputDocument::getFieldBoost »
  • PHP Manual
  • SolrInputDocument
  • Retrieves a field by name

SolrInputDocument::getField

(PECL solr >= 0.9.2)

SolrInputDocument::getField — Retrieves a field by name

Beschreibung

public SolrInputDocument::getField ( string $fieldName ) : SolrDocumentField

Retrieves a field in the document.

Parameter-Liste

fieldName

The name of the field.

Rückgabewerte

Returns a SolrDocumentField object on success and false on failure.


Retrieves the boost value for a particular field

  • « SolrInputDocument::getField
  • SolrInputDocument::getFieldCount »
  • PHP Manual
  • SolrInputDocument
  • Retrieves the boost value for a particular field

SolrInputDocument::getFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldBoost — Retrieves the boost value for a particular field

Beschreibung

public SolrInputDocument::getFieldBoost ( string $fieldName ) : float

Retrieves the boost value for a particular field.

Parameter-Liste

fieldName

The name of the field.

Rückgabewerte

Returns the boost value for the field or false if there was an error.


Returns the number of fields in the document

  • « SolrInputDocument::getFieldBoost
  • SolrInputDocument::getFieldNames »
  • PHP Manual
  • SolrInputDocument
  • Returns the number of fields in the document

SolrInputDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldCount — Returns the number of fields in the document

Beschreibung

public SolrInputDocument::getFieldCount ( ) : int|false

Returns the number of fields in the document.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on successIm Fehlerfall wird false zurückgegeben..


Returns an array containing all the fields in the document

  • « SolrInputDocument::getFieldCount
  • SolrInputDocument::hasChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Returns an array containing all the fields in the document

SolrInputDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldNames — Returns an array containing all the fields in the document

Beschreibung

public SolrInputDocument::getFieldNames ( ) : array

Returns an array containing all the fields in the document.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array on success and false on failure.


Returns true if the document has any child documents

  • « SolrInputDocument::getFieldNames
  • SolrInputDocument::merge »
  • PHP Manual
  • SolrInputDocument
  • Returns true if the document has any child documents

SolrInputDocument::hasChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents

Beschreibung

public SolrInputDocument::hasChildDocuments ( ) : bool

Checks whether the document has any child documents

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Merges one input document into another

  • « SolrInputDocument::hasChildDocuments
  • SolrInputDocument::reset »
  • PHP Manual
  • SolrInputDocument
  • Merges one input document into another

SolrInputDocument::merge

(PECL solr >= 0.9.2)

SolrInputDocument::merge — Merges one input document into another

Beschreibung

public SolrInputDocument::merge ( SolrInputDocument $sourceDoc , bool $overwrite = true ) : bool

Merges one input document into another.

Parameter-Liste

sourceDoc

The source document.

overwrite

If this is true it will replace matching fields in the destination document.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. In the future, this will be modified to return the number of fields in the new document.


This is an alias of SolrInputDocument::clear

  • « SolrInputDocument::merge
  • SolrInputDocument::setBoost »
  • PHP Manual
  • SolrInputDocument
  • This is an alias of SolrInputDocument::clear

SolrInputDocument::reset

(PECL solr >= 0.9.2)

SolrInputDocument::reset — This is an alias of SolrInputDocument::clear

Beschreibung

public SolrInputDocument::reset ( ) : bool

This is an alias of SolrInputDocument::clear

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Sets the boost value for this document

  • « SolrInputDocument::reset
  • SolrInputDocument::setFieldBoost »
  • PHP Manual
  • SolrInputDocument
  • Sets the boost value for this document

SolrInputDocument::setBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setBoost — Sets the boost value for this document

Beschreibung

public SolrInputDocument::setBoost ( float $documentBoostValue ) : bool

Sets the boost value for this document.

Parameter-Liste

documentBoostValue

The index-time boost value for this document.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Sets the index-time boost value for a field

  • « SolrInputDocument::setBoost
  • SolrInputDocument::sort »
  • PHP Manual
  • SolrInputDocument
  • Sets the index-time boost value for a field

SolrInputDocument::setFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setFieldBoost — Sets the index-time boost value for a field

Beschreibung

public SolrInputDocument::setFieldBoost ( string $fieldName , float $fieldBoostValue ) : bool

Sets the index-time boost value for a field. This replaces the current boost value for this field.

Parameter-Liste

fieldName

The name of the field.

fieldBoostValue

The index time boost value.


Sorts the fields within the document

  • « SolrInputDocument::setFieldBoost
  • SolrInputDocument::toArray »
  • PHP Manual
  • SolrInputDocument
  • Sorts the fields within the document

SolrInputDocument::sort

(PECL solr >= 0.9.2)

SolrInputDocument::sort — Sorts the fields within the document

Beschreibung

public SolrInputDocument::sort ( int $sortOrderBy , int $sortDirection = SolrInputDocument::SORT_ASC ) : bool

The fields are rearranged according to the specified criteria and sort direction

   Fields can be sorted by boost values, field names and number of values.

   The $order_by parameter must be one of :

   * SolrInputDocument::SORT_FIELD_NAME
   * SolrInputDocument::SORT_FIELD_BOOST_VALUE
   * SolrInputDocument::SORT_FIELD_VALUE_COUNT

   The sort direction can be one of :

   * SolrInputDocument::SORT_DEFAULT
   * SolrInputDocument::SORT_ASC
   * SolrInputDocument::SORT_DESC

Parameter-Liste

sortOrderBy

The sort criteria

sortDirection

The sort direction

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Returns an array representation of the input document

  • « SolrInputDocument::sort
  • SolrDocument »
  • PHP Manual
  • SolrInputDocument
  • Returns an array representation of the input document

SolrInputDocument::toArray

(PECL solr >= 0.9.2)

SolrInputDocument::toArray — Returns an array representation of the input document

Beschreibung

public SolrInputDocument::toArray ( ) : array

Returns an array representation of the input document.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing the fields. It returns false on failure.


The SolrDocument class

(PECL solr >= 0.9.2)

Einführung

Represents a Solr document retrieved from a query response.

Klassenbeschreibung

final SolrDocument implements ArrayAccess , Iterator , Serializable {
/* Konstanten */
const int SORT_DEFAULT = 1 ;
const int SORT_ASC = 1 ;
const int SORT_DESC = 2 ;
const int SORT_FIELD_NAME = 1 ;
const int SORT_FIELD_VALUE_COUNT = 2 ;
const int SORT_FIELD_BOOST_VALUE = 4 ;
/* Methoden */
public addField ( string $fieldName , string $fieldValue ) : bool
public clear ( ) : bool
public __clone ( ) : void
public __construct ( )
public current ( ) : SolrDocumentField
public deleteField ( string $fieldName ) : bool
public __destruct ( ) : void
public fieldExists ( string $fieldName ) : bool
public __get ( string $fieldName ) : SolrDocumentField
public getChildDocuments ( ) : array
public getChildDocumentsCount ( ) : int
public getField ( string $fieldName ) : SolrDocumentField
public getFieldCount ( ) : int
public getFieldNames ( ) : array
public getInputDocument ( ) : SolrInputDocument
public hasChildDocuments ( ) : bool
public __isset ( string $fieldName ) : bool
public key ( ) : string
public merge ( SolrDocument $sourceDoc , bool $overwrite = true ) : bool
public next ( ) : void
public offsetExists ( string $fieldName ) : bool
public offsetGet ( string $fieldName ) : SolrDocumentField
public offsetSet ( string $fieldName , string $fieldValue ) : void
public offsetUnset ( string $fieldName ) : void
public reset ( ) : bool
public rewind ( ) : void
public serialize ( ) : string
public __set ( string $fieldName , string $fieldValue ) : bool
public sort ( int $sortOrderBy , int $sortDirection = SolrDocument::SORT_ASC ) : bool
public toArray ( ) : array
public unserialize ( string $serialized ) : void
public __unset ( string $fieldName ) : bool
public valid ( ) : bool
}

Vordefinierte Konstanten

SolrDocument::SORT_DEFAULT

Default mode for sorting fields within the document.

SolrDocument::SORT_ASC

Sorts the fields in ascending order

SolrDocument::SORT_DESC

Sorts the fields in descending order

SolrDocument::SORT_FIELD_NAME

Sorts the fields by field name.

SolrDocument::SORT_FIELD_VALUE_COUNT

Sorts the fields by number of values in each field.

SolrDocument::SORT_FIELD_BOOST_VALUE

Sorts the fields by thier boost values.

Inhaltsverzeichnis

  • SolrDocument::addField — Adds a field to the document
  • SolrDocument::clear — Drops all the fields in the document
  • SolrDocument::__clone — Creates a copy of a SolrDocument object
  • SolrDocument::__construct — Constructor
  • SolrDocument::current — Retrieves the current field
  • SolrDocument::deleteField — Removes a field from the document
  • SolrDocument::__destruct — Destructor
  • SolrDocument::fieldExists — Checks if a field exists in the document
  • SolrDocument::__get — Access the field as a property
  • SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)
  • SolrDocument::getChildDocumentsCount — Returns the number of child documents
  • SolrDocument::getField — Retrieves a field by name
  • SolrDocument::getFieldCount — Returns the number of fields in this document
  • SolrDocument::getFieldNames — Returns an array of fields names in the document
  • SolrDocument::getInputDocument — Returns a SolrInputDocument equivalent of the object
  • SolrDocument::hasChildDocuments — Checks whether the document has any child documents
  • SolrDocument::__isset — Checks if a field exists
  • SolrDocument::key — Retrieves the current key
  • SolrDocument::merge — Merges source to the current SolrDocument
  • SolrDocument::next — Moves the internal pointer to the next field
  • SolrDocument::offsetExists — Checks if a particular field exists
  • SolrDocument::offsetGet — Retrieves a field
  • SolrDocument::offsetSet — Adds a field to the document
  • SolrDocument::offsetUnset — Removes a field
  • SolrDocument::reset — This is an alias to SolrDocument::clear()
  • SolrDocument::rewind — Resets the internal pointer to the beginning
  • SolrDocument::serialize — Used for custom serialization
  • SolrDocument::__set — Adds another field to the document
  • SolrDocument::sort — Sorts the fields in the document
  • SolrDocument::toArray — Returns an array representation of the document
  • SolrDocument::unserialize — Custom serialization of SolrDocument objects
  • SolrDocument::__unset — Removes a field from the document
  • SolrDocument::valid — Checks if the current position internally is still valid


Adds a field to the document

  • « SolrDocument
  • SolrDocument::clear »
  • PHP Manual
  • SolrDocument
  • Adds a field to the document

SolrDocument::addField

(PECL solr >= 0.9.2)

SolrDocument::addField — Adds a field to the document

Beschreibung

public SolrDocument::addField ( string $fieldName , string $fieldValue ) : bool

This method adds a field to the SolrDocument instance.

Parameter-Liste

fieldName

The name of the field

fieldValue

The value of the field.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Drops all the fields in the document

  • « SolrDocument::addField
  • SolrDocument::__clone »
  • PHP Manual
  • SolrDocument
  • Drops all the fields in the document

SolrDocument::clear

(PECL solr >= 0.9.2)

SolrDocument::clear — Drops all the fields in the document

Beschreibung

public SolrDocument::clear ( ) : bool

Resets the current object. Discards all the fields and resets the document boost to zero.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Creates a copy of a SolrDocument object

  • « SolrDocument::clear
  • SolrDocument::__construct »
  • PHP Manual
  • SolrDocument
  • Creates a copy of a SolrDocument object

SolrDocument::__clone

(PECL solr >= 0.9.2)

SolrDocument::__clone — Creates a copy of a SolrDocument object

Beschreibung

public SolrDocument::__clone ( ) : void

Creates a copy of a SolrDocument object. Not to be called directly.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None.


Constructor

  • « SolrDocument::__clone
  • SolrDocument::current »
  • PHP Manual
  • SolrDocument
  • Constructor

SolrDocument::__construct

(PECL solr >= 0.9.2)

SolrDocument::__construct — Constructor

Beschreibung

public SolrDocument::__construct ( )

Constructor for SolrDocument

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Retrieves the current field

  • « SolrDocument::__construct
  • SolrDocument::deleteField »
  • PHP Manual
  • SolrDocument
  • Retrieves the current field

SolrDocument::current

(PECL solr >= 0.9.2)

SolrDocument::current — Retrieves the current field

Beschreibung

public SolrDocument::current ( ) : SolrDocumentField

Retrieves the current field

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the field


Removes a field from the document

  • « SolrDocument::current
  • SolrDocument::__destruct »
  • PHP Manual
  • SolrDocument
  • Removes a field from the document

SolrDocument::deleteField

(PECL solr >= 0.9.2)

SolrDocument::deleteField — Removes a field from the document

Beschreibung

public SolrDocument::deleteField ( string $fieldName ) : bool

Removes a field from the document.

Parameter-Liste

fieldName

Name of the field

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Destructor

  • « SolrDocument::deleteField
  • SolrDocument::fieldExists »
  • PHP Manual
  • SolrDocument
  • Destructor

SolrDocument::__destruct

(PECL solr >= 0.9.2)

SolrDocument::__destruct — Destructor

Beschreibung

public SolrDocument::__destruct ( ) : void

Destructor for SolrDocument.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Checks if a field exists in the document

  • « SolrDocument::__destruct
  • SolrDocument::__get »
  • PHP Manual
  • SolrDocument
  • Checks if a field exists in the document

SolrDocument::fieldExists

(PECL solr >= 0.9.2)

SolrDocument::fieldExists — Checks if a field exists in the document

Beschreibung

public SolrDocument::fieldExists ( string $fieldName ) : bool

Checks if the requested field as a valid fieldname in the document.

Parameter-Liste

fieldName

The name of the field.

Rückgabewerte

Returns true if the field is present and false if it does not.


Access the field as a property

  • « SolrDocument::fieldExists
  • SolrDocument::getChildDocuments »
  • PHP Manual
  • SolrDocument
  • Access the field as a property

SolrDocument::__get

(PECL solr >= 0.9.2)

SolrDocument::__get — Access the field as a property

Beschreibung

public SolrDocument::__get ( string $fieldName ) : SolrDocumentField

Magic method for accessing the field as a property.

Parameter-Liste

fieldName

The name of the field.

Rückgabewerte

Returns a SolrDocumentField instance.


Returns an array of child documents (SolrDocument)

  • « SolrDocument::__get
  • SolrDocument::getChildDocumentsCount »
  • PHP Manual
  • SolrDocument
  • Returns an array of child documents (SolrDocument)

SolrDocument::getChildDocuments

(PECL solr >= 2.3.0)

SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)

Beschreibung

public SolrDocument::getChildDocuments ( ) : array

Returns an array of child documents (SolrDocument)

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrDocument::hasChildDocuments() - Checks whether the document has any child documents
  • SolrDocument::getChildDocumentsCount() - Returns the number of child documents


Returns the number of child documents

  • « SolrDocument::getChildDocuments
  • SolrDocument::getField »
  • PHP Manual
  • SolrDocument
  • Returns the number of child documents

SolrDocument::getChildDocumentsCount

(PECL solr >= 2.3.0)

SolrDocument::getChildDocumentsCount — Returns the number of child documents

Beschreibung

public SolrDocument::getChildDocumentsCount ( ) : int

Returns the number of child documents

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrDocument::hasChildDocuments() - Checks whether the document has any child documents
  • SolrDocument::getChildDocuments() - Returns an array of child documents (SolrDocument)


Retrieves a field by name

  • « SolrDocument::getChildDocumentsCount
  • SolrDocument::getFieldCount »
  • PHP Manual
  • SolrDocument
  • Retrieves a field by name

SolrDocument::getField

(PECL solr >= 0.9.2)

SolrDocument::getField — Retrieves a field by name

Beschreibung

public SolrDocument::getField ( string $fieldName ) : SolrDocumentField

Retrieves a field by name.

Parameter-Liste

fieldName

Name of the field.

Rückgabewerte

Returns a SolrDocumentField on success and false on failure.


Returns the number of fields in this document

  • « SolrDocument::getField
  • SolrDocument::getFieldNames »
  • PHP Manual
  • SolrDocument
  • Returns the number of fields in this document

SolrDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrDocument::getFieldCount — Returns the number of fields in this document

Beschreibung

public SolrDocument::getFieldCount ( ) : int

Returns the number of fields in this document. Multi-value fields are only counted once.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and false on failure.


Returns an array of fields names in the document

  • « SolrDocument::getFieldCount
  • SolrDocument::getInputDocument »
  • PHP Manual
  • SolrDocument
  • Returns an array of fields names in the document

SolrDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrDocument::getFieldNames — Returns an array of fields names in the document

Beschreibung

public SolrDocument::getFieldNames ( ) : array

Returns an array of fields names in the document.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing the names of the fields in this document.


Returns a SolrInputDocument equivalent of the object

  • « SolrDocument::getFieldNames
  • SolrDocument::hasChildDocuments »
  • PHP Manual
  • SolrDocument
  • Returns a SolrInputDocument equivalent of the object

SolrDocument::getInputDocument

(PECL solr >= 0.9.2)

SolrDocument::getInputDocument — Returns a SolrInputDocument equivalent of the object

Beschreibung

public SolrDocument::getInputDocument ( ) : SolrInputDocument

Returns a SolrInputDocument equivalent of the object. This is useful if one wishes to resubmit/update a document retrieved from a query.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a SolrInputDocument on success and null on failure.


Checks whether the document has any child documents

  • « SolrDocument::getInputDocument
  • SolrDocument::__isset »
  • PHP Manual
  • SolrDocument
  • Checks whether the document has any child documents

SolrDocument::hasChildDocuments

(PECL solr >= 2.3.0)

SolrDocument::hasChildDocuments — Checks whether the document has any child documents

Beschreibung

public SolrDocument::hasChildDocuments ( ) : bool

Checks whether the document has any child documents

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrDocument::getChildDocuments() - Returns an array of child documents (SolrDocument)
  • SolrDocument::getChildDocumentsCount() - Returns the number of child documents


Checks if a field exists

  • « SolrDocument::hasChildDocuments
  • SolrDocument::key »
  • PHP Manual
  • SolrDocument
  • Checks if a field exists

SolrDocument::__isset

(PECL solr >= 0.9.2)

SolrDocument::__isset — Checks if a field exists

Beschreibung

public SolrDocument::__isset ( string $fieldName ) : bool

Checks if a field exists

Parameter-Liste

fieldName

Name of the field.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Retrieves the current key

  • « SolrDocument::__isset
  • SolrDocument::merge »
  • PHP Manual
  • SolrDocument
  • Retrieves the current key

SolrDocument::key

(PECL solr >= 0.9.2)

SolrDocument::key — Retrieves the current key

Beschreibung

public SolrDocument::key ( ) : string

Retrieves the current key.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current key.


Merges source to the current SolrDocument

  • « SolrDocument::key
  • SolrDocument::next »
  • PHP Manual
  • SolrDocument
  • Merges source to the current SolrDocument

SolrDocument::merge

(PECL solr >= 0.9.2)

SolrDocument::merge — Merges source to the current SolrDocument

Beschreibung

public SolrDocument::merge ( SolrDocument $sourceDoc , bool $overwrite = true ) : bool

Merges source to the current SolrDocument.

Parameter-Liste

sourceDoc

The source document.

overwrite

If this is true then fields with the same name in the destination document will be overwritten.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Moves the internal pointer to the next field

  • « SolrDocument::merge
  • SolrDocument::offsetExists »
  • PHP Manual
  • SolrDocument
  • Moves the internal pointer to the next field

SolrDocument::next

(PECL solr >= 0.9.2)

SolrDocument::next — Moves the internal pointer to the next field

Beschreibung

public SolrDocument::next ( ) : void

Moves the internal pointer to the next field.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This method has no return value.


Checks if a particular field exists

  • « SolrDocument::next
  • SolrDocument::offsetGet »
  • PHP Manual
  • SolrDocument
  • Checks if a particular field exists

SolrDocument::offsetExists

(PECL solr >= 0.9.2)

SolrDocument::offsetExists — Checks if a particular field exists

Beschreibung

public SolrDocument::offsetExists ( string $fieldName ) : bool

Checks if a particular field exists. This is used when the object is treated as an array.

Parameter-Liste

fieldName

The name of the field.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Retrieves a field

  • « SolrDocument::offsetExists
  • SolrDocument::offsetSet »
  • PHP Manual
  • SolrDocument
  • Retrieves a field

SolrDocument::offsetGet

(PECL solr >= 0.9.2)

SolrDocument::offsetGet — Retrieves a field

Beschreibung

public SolrDocument::offsetGet ( string $fieldName ) : SolrDocumentField

This is used to retrieve the field when the object is treated as an array.

Parameter-Liste

fieldName

The name of the field.

Rückgabewerte

Returns a SolrDocumentField object.


Adds a field to the document

  • « SolrDocument::offsetGet
  • SolrDocument::offsetUnset »
  • PHP Manual
  • SolrDocument
  • Adds a field to the document

SolrDocument::offsetSet

(PECL solr >= 0.9.2)

SolrDocument::offsetSet — Adds a field to the document

Beschreibung

public SolrDocument::offsetSet ( string $fieldName , string $fieldValue ) : void

Used when the object is treated as an array to add a field to the document.

Parameter-Liste

fieldName

The name of the field.

fieldValue

The value for this field.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Removes a field

  • « SolrDocument::offsetSet
  • SolrDocument::reset »
  • PHP Manual
  • SolrDocument
  • Removes a field

SolrDocument::offsetUnset

(PECL solr >= 0.9.2)

SolrDocument::offsetUnset — Removes a field

Beschreibung

public SolrDocument::offsetUnset ( string $fieldName ) : void

Removes a field from the document.

Parameter-Liste

fieldName

The name of the field.

Rückgabewerte

No return value.


This is an alias to SolrDocument::clear()

  • « SolrDocument::offsetUnset
  • SolrDocument::rewind »
  • PHP Manual
  • SolrDocument
  • This is an alias to SolrDocument::clear()

SolrDocument::reset

(PECL solr >= 0.9.2)

SolrDocument::reset — This is an alias to SolrDocument::clear()

Beschreibung

public SolrDocument::reset ( ) : bool

This is an alias to SolrDocument::clear()

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Resets the internal pointer to the beginning

  • « SolrDocument::reset
  • SolrDocument::serialize »
  • PHP Manual
  • SolrDocument
  • Resets the internal pointer to the beginning

SolrDocument::rewind

(PECL solr >= 0.9.2)

SolrDocument::rewind — Resets the internal pointer to the beginning

Beschreibung

public SolrDocument::rewind ( ) : void

Resets the internal pointer to the beginning.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

This method has no return value.


Used for custom serialization

  • « SolrDocument::rewind
  • SolrDocument::__set »
  • PHP Manual
  • SolrDocument
  • Used for custom serialization

SolrDocument::serialize

(PECL solr >= 0.9.2)

SolrDocument::serialize — Used for custom serialization

Beschreibung

public SolrDocument::serialize ( ) : string

Used for custom serialization.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string representing the serialized Solr document.


Adds another field to the document

  • « SolrDocument::serialize
  • SolrDocument::sort »
  • PHP Manual
  • SolrDocument
  • Adds another field to the document

SolrDocument::__set

(PECL solr >= 0.9.2)

SolrDocument::__set — Adds another field to the document

Beschreibung

public SolrDocument::__set ( string $fieldName , string $fieldValue ) : bool

Adds another field to the document. Used to set the fields as new properties.

Parameter-Liste

fieldName

Name of the field.

fieldValue

Field value.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Sorts the fields in the document

  • « SolrDocument::__set
  • SolrDocument::toArray »
  • PHP Manual
  • SolrDocument
  • Sorts the fields in the document

SolrDocument::sort

(PECL solr >= 0.9.2)

SolrDocument::sort — Sorts the fields in the document

Beschreibung

public SolrDocument::sort ( int $sortOrderBy , int $sortDirection = SolrDocument::SORT_ASC ) : bool

The fields are rearranged according to the specified criteria and sort direction

   Fields can be sorted by boost values, field names and number of values.

   The sortOrderBy parameter must be one of :

   * SolrDocument::SORT_FIELD_NAME
   * SolrDocument::SORT_FIELD_BOOST_VALUE
   * SolrDocument::SORT_FIELD_VALUE_COUNT

   The sortDirection can be one of :

   * SolrDocument::SORT_DEFAULT
   * SolrDocument::SORT_ASC
   * SolrDocument::SORT_DESC

   The default way is to sort in ascending order.

Parameter-Liste

sortOrderBy

The sort criteria.

sortDirection

The sort direction.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Returns an array representation of the document

  • « SolrDocument::sort
  • SolrDocument::unserialize »
  • PHP Manual
  • SolrDocument
  • Returns an array representation of the document

SolrDocument::toArray

(PECL solr >= 0.9.2)

SolrDocument::toArray — Returns an array representation of the document

Beschreibung

public SolrDocument::toArray ( ) : array

Returns an array representation of the document.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array representation of the document.

Beispiele

Beispiel #1 SolrDocument::toArray() example

<?php

$doc = new SolrDocument();

$doc->addField('id', 1123);

$doc->features = "PHP Client Side";
$doc->features = "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat   = 'Information Technology';

print_r($doc->toArray());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [document_boost] => 0
    [field_count] => 3
    [fields] => Array
        (
            [0] => SolrDocumentField Object
                (
                    [name] => id
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => 1123
                        )

                )

            [1] => SolrDocumentField Object
                (
                    [name] => features
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => PHP Client Side
                            [1] => Fast development cycles
                        )

                )

            [2] => SolrDocumentField Object
                (
                    [name] => cat
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => Software
                            [1] => Custom Search
                            [2] => Information Technology
                        )

                )

        )

)


Custom serialization of SolrDocument objects

  • « SolrDocument::toArray
  • SolrDocument::__unset »
  • PHP Manual
  • SolrDocument
  • Custom serialization of SolrDocument objects

SolrDocument::unserialize

(PECL solr >= 0.9.2)

SolrDocument::unserialize — Custom serialization of SolrDocument objects

Beschreibung

public SolrDocument::unserialize ( string $serialized ) : void

Custom serialization of SolrDocument objects

Parameter-Liste

serialized

An XML representation of the document.

Rückgabewerte

None.


Removes a field from the document

  • « SolrDocument::unserialize
  • SolrDocument::valid »
  • PHP Manual
  • SolrDocument
  • Removes a field from the document

SolrDocument::__unset

(PECL solr >= 0.9.2)

SolrDocument::__unset — Removes a field from the document

Beschreibung

public SolrDocument::__unset ( string $fieldName ) : bool

Removes a field from the document when the field is access as an object property.

Parameter-Liste

fieldName

The name of the field.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Checks if the current position internally is still valid

  • « SolrDocument::__unset
  • SolrDocumentField »
  • PHP Manual
  • SolrDocument
  • Checks if the current position internally is still valid

SolrDocument::valid

(PECL solr >= 0.9.2)

SolrDocument::valid — Checks if the current position internally is still valid

Beschreibung

public SolrDocument::valid ( ) : bool

Checks if the current position internally is still valid. It is used during foreach operations.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true on success and false if the current position is no longer valid.


The SolrDocumentField class

(PECL solr >= 0.9.2)

Einführung

This represents a field in a Solr document. All its properties are read-only.

Klassenbeschreibung

final SolrDocumentField {
/* Eigenschaften */
public readonly string $name ;
public readonly float $boost ;
public readonly array $values ;
/* Methoden */
public __construct ( )
public __destruct ( ) : void
}

Eigenschaften

name

The name of the field.

boost

The boost value for the field

values

An array of values for this field

Inhaltsverzeichnis

  • SolrDocumentField::__construct — Constructor
  • SolrDocumentField::__destruct — Destructor


Constructor

  • « SolrDocumentField
  • SolrDocumentField::__destruct »
  • PHP Manual
  • SolrDocumentField
  • Constructor

SolrDocumentField::__construct

(PECL solr >= 0.9.2)

SolrDocumentField::__construct — Constructor

Beschreibung

public SolrDocumentField::__construct ( )

Constructor.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None.


Destructor

  • « SolrDocumentField::__construct
  • SolrObject »
  • PHP Manual
  • SolrDocumentField
  • Destructor

SolrDocumentField::__destruct

(PECL solr >= 0.9.2)

SolrDocumentField::__destruct — Destructor

Beschreibung

public SolrDocumentField::__destruct ( ) : void

Destructor.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None.


The SolrObject class

(PECL solr >= 0.9.2)

Einführung

This is an object whose properties can also by accessed using the array syntax. All its properties are read-only.

Klassenbeschreibung

final SolrObject implements ArrayAccess {
/* Methoden */
public __construct ( )
public __destruct ( ) : void
public getPropertyNames ( ) : array
public offsetExists ( string $property_name ) : bool
public offsetGet ( string $property_name ) : mixed
public offsetSet ( string $property_name , string $property_value ) : void
public offsetUnset ( string $property_name ) : void
}

Inhaltsverzeichnis

  • SolrObject::__construct — Creates Solr object
  • SolrObject::__destruct — Destructor
  • SolrObject::getPropertyNames — Returns an array of all the names of the properties
  • SolrObject::offsetExists — Checks if the property exists
  • SolrObject::offsetGet — Used to retrieve a property
  • SolrObject::offsetSet — Sets the value for a property
  • SolrObject::offsetUnset — Unsets the value for the property


Creates Solr object

  • « SolrObject
  • SolrObject::__destruct »
  • PHP Manual
  • SolrObject
  • Creates Solr object

SolrObject::__construct

(PECL solr >= 0.9.2)

SolrObject::__construct — Creates Solr object

Beschreibung

public SolrObject::__construct ( )

Creates Solr object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None

Beispiele

Beispiel #1 SolrObject::__construct() example

<?php
/* ... */
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

...

Siehe auch

  • Classname::Method()


Destructor

  • « SolrObject::__construct
  • SolrObject::getPropertyNames »
  • PHP Manual
  • SolrObject
  • Destructor

SolrObject::__destruct

(PECL solr >= 0.9.2)

SolrObject::__destruct — Destructor

Beschreibung

public SolrObject::__destruct ( ) : void

The destructor

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None.


Returns an array of all the names of the properties

  • « SolrObject::__destruct
  • SolrObject::offsetExists »
  • PHP Manual
  • SolrObject
  • Returns an array of all the names of the properties

SolrObject::getPropertyNames

(PECL solr >= 0.9.2)

SolrObject::getPropertyNames — Returns an array of all the names of the properties

Beschreibung

public SolrObject::getPropertyNames ( ) : array

Returns an array of all the names of the properties

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array.


Checks if the property exists

  • « SolrObject::getPropertyNames
  • SolrObject::offsetGet »
  • PHP Manual
  • SolrObject
  • Checks if the property exists

SolrObject::offsetExists

(PECL solr >= 0.9.2)

SolrObject::offsetExists — Checks if the property exists

Beschreibung

public SolrObject::offsetExists ( string $property_name ) : bool

Checks if the property exists. This is used when the object is treated as an array.

Parameter-Liste

property_name

The name of the property.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Used to retrieve a property

  • « SolrObject::offsetExists
  • SolrObject::offsetSet »
  • PHP Manual
  • SolrObject
  • Used to retrieve a property

SolrObject::offsetGet

(PECL solr >= 0.9.2)

SolrObject::offsetGet — Used to retrieve a property

Beschreibung

public SolrObject::offsetGet ( string $property_name ) : mixed

Used to get the value of a property. This is used when the object is treated as an array.

Parameter-Liste

property_name

Name of the property.

Rückgabewerte

Returns the property value.


Sets the value for a property

  • « SolrObject::offsetGet
  • SolrObject::offsetUnset »
  • PHP Manual
  • SolrObject
  • Sets the value for a property

SolrObject::offsetSet

(PECL solr >= 0.9.2)

SolrObject::offsetSet — Sets the value for a property

Beschreibung

public SolrObject::offsetSet ( string $property_name , string $property_value ) : void

Sets the value for a property. This is used when the object is treated as an array. This object is read-only. This should never be attempted.

Parameter-Liste

property_name

The name of the property.

property_value

The new value.

Rückgabewerte

None.


Unsets the value for the property

  • « SolrObject::offsetSet
  • SolrClient »
  • PHP Manual
  • SolrObject
  • Unsets the value for the property

SolrObject::offsetUnset

(PECL solr >= 0.9.2)

SolrObject::offsetUnset — Unsets the value for the property

Beschreibung

public SolrObject::offsetUnset ( string $property_name ) : void

Unsets the value for the property. This is used when the object is treated as an array. This object is read-only. This should never be attempted.

Parameter-Liste

property_name

The name of the property.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 SolrObject::offsetUnset() example

<?php
/* ... */
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

...

Siehe auch

  • Classname::Method()


The SolrClient class

(PECL solr >= 0.9.2)

Einführung

Used to send requests to a Solr server. Currently, cloning and serialization of SolrClient instances is not supported.

Klassenbeschreibung

final SolrClient {
/* Konstanten */
const int SEARCH_SERVLET_TYPE = 1 ;
const int UPDATE_SERVLET_TYPE = 2 ;
const int THREADS_SERVLET_TYPE = 4 ;
const int PING_SERVLET_TYPE = 8 ;
const int TERMS_SERVLET_TYPE = 16 ;
const int SYSTEM_SERVLET_TYPE = 32 ;
const string DEFAULT_SEARCH_SERVLET = select ;
const string DEFAULT_UPDATE_SERVLET = update ;
const string DEFAULT_THREADS_SERVLET = admin/threads ;
const string DEFAULT_PING_SERVLET = admin/ping ;
const string DEFAULT_TERMS_SERVLET = terms ;
const string DEFAULT_SYSTEM_SERVLET = admin/system ;
/* Methoden */
public addDocument ( SolrInputDocument $doc , bool $overwrite = true , int $commitWithin = 0 ) : SolrUpdateResponse
public addDocuments ( array $docs , bool $overwrite = true , int $commitWithin = 0 ) : void
public commit ( bool $softCommit = false , bool $waitSearcher = true , bool $expungeDeletes = false ) : SolrUpdateResponse
public __construct ( array $clientOptions )
public deleteById ( string $id ) : SolrUpdateResponse
public deleteByIds ( array $ids ) : SolrUpdateResponse
public deleteByQueries ( array $queries ) : SolrUpdateResponse
public deleteByQuery ( string $query ) : SolrUpdateResponse
public __destruct ( ) : void
public getById ( string $id ) : SolrQueryResponse
public getByIds ( array $ids ) : SolrQueryResponse
public getDebug ( ) : string
public getOptions ( ) : array
public optimize ( int $maxSegments = 1 , bool $softCommit = true , bool $waitSearcher = true ) : SolrUpdateResponse
public ping ( ) : SolrPingResponse
public query ( SolrParams $query ) : SolrQueryResponse
public request ( string $raw_request ) : SolrUpdateResponse
public rollback ( ) : SolrUpdateResponse
public setResponseWriter ( string $responseWriter ) : void
public setServlet ( int $type , string $value ) : bool
public system ( ) : void
public threads ( ) : void
}

Vordefinierte Konstanten

SolrClient::SEARCH_SERVLET_TYPE

Used when updating the search servlet.

SolrClient::UPDATE_SERVLET_TYPE

Used when updating the update servlet.

SolrClient::THREADS_SERVLET_TYPE

Used when updating the threads servlet.

SolrClient::PING_SERVLET_TYPE

Used when updating the ping servlet.

SolrClient::TERMS_SERVLET_TYPE

Used when updating the terms servlet.

SolrClient::SYSTEM_SERVLET_TYPE

Used when retrieving system information from the system servlet.

SolrClient::DEFAULT_SEARCH_SERVLET

This is the initial value for the search servlet.

SolrClient::DEFAULT_UPDATE_SERVLET

This is the initial value for the update servlet.

SolrClient::DEFAULT_THREADS_SERVLET

This is the initial value for the threads servlet.

SolrClient::DEFAULT_PING_SERVLET

This is the initial value for the ping servlet.

SolrClient::DEFAULT_TERMS_SERVLET

This is the initial value for the terms servlet used for the TermsComponent

SolrClient::DEFAULT_SYSTEM_SERVLET

This is the initial value for the system servlet used to obtain Solr Server information

Inhaltsverzeichnis

  • SolrClient::addDocument — Adds a document to the index
  • SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index
  • SolrClient::commit — Finalizes all add/deletes made to the index
  • SolrClient::__construct — Constructor for the SolrClient object
  • SolrClient::deleteById — Delete by Id
  • SolrClient::deleteByIds — Deletes by Ids
  • SolrClient::deleteByQueries — Removes all documents matching any of the queries
  • SolrClient::deleteByQuery — Deletes all documents matching the given query
  • SolrClient::__destruct — Destructor for SolrClient
  • SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG)
  • SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)
  • SolrClient::getDebug — Returns the debug data for the last connection attempt
  • SolrClient::getOptions — Returns the client options set internally
  • SolrClient::optimize — Defragments the index
  • SolrClient::ping — Checks if Solr server is still up
  • SolrClient::query — Sends a query to the server
  • SolrClient::request — Sends a raw update request
  • SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit
  • SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr
  • SolrClient::setServlet — Changes the specified servlet type to a new value
  • SolrClient::system — Retrieve Solr Server information
  • SolrClient::threads — Checks the threads status


Adds a document to the index

  • « SolrClient
  • SolrClient::addDocuments »
  • PHP Manual
  • SolrClient
  • Adds a document to the index

SolrClient::addDocument

(PECL solr >= 0.9.2)

SolrClient::addDocument — Adds a document to the index

Beschreibung

public SolrClient::addDocument ( SolrInputDocument $doc , bool $overwrite = true , int $commitWithin = 0 ) : SolrUpdateResponse

This method adds a document to the index.

Parameter-Liste

doc

The SolrInputDocument instance.

overwrite

Whether to overwrite existing document or not. If false there will be duplicates (several documents with the same ID).

Warnung

PECL Solr < 2.0 $allowDups was used instead of $overwrite, which does the same functionality with exact opposite bool flag.

$allowDups = false is the same as $overwrite = true

commitWithin

Number of milliseconds within which to auto commit this document. Available since Solr 1.4 . Default (0) means disabled.

When this value specified, it leaves the control of when to do the commit to Solr itself, optimizing number of commits to a minimum while still fulfilling the update latency requirements, and Solr will automatically do a commit when the oldest add in the buffer is due.

Rückgabewerte

Returns a SolrUpdateResponse object or throws an Exception on failure.

Fehler/Exceptions

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Beispiele

Beispiel #1 SolrClient::addDocument() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

// you will have to commit changes to be written if you didn't use $commitWithin
$client->commit();

print_r($updateResponse->getResponse());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Beispiel #2 SolrClient::addDocument() example 2

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

// No need to call commit() because $commitWithin is passed, so Solr Server will auto commit within 10 seconds
$updateResponse = $client->addDocument($doc, false, 10000);

print_r($updateResponse->getResponse());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Siehe auch

  • SolrClient::addDocuments() - Adds a collection of SolrInputDocument instances to the index
  • SolrClient::commit() - Finalizes all add/deletes made to the index


Adds a collection of SolrInputDocument instances to the index

  • « SolrClient::addDocument
  • SolrClient::commit »
  • PHP Manual
  • SolrClient
  • Adds a collection of SolrInputDocument instances to the index

SolrClient::addDocuments

(PECL solr >= 0.9.2)

SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index

Beschreibung

public SolrClient::addDocuments ( array $docs , bool $overwrite = true , int $commitWithin = 0 ) : void

Adds a collection of documents to the index.

Parameter-Liste

docs

An array containing the collection of SolrInputDocument instances. This array must be an actual variable.

overwrite

Whether to overwrite existing documents or not. If false there will be duplicates (several documents with the same ID).

Warnung

PECL Solr < 2.0 $allowDups was used instead of $overwrite, which does the same functionality with exact opposite bool flag.

$allowDups = false is the same as $overwrite = true

commitWithin

Number of milliseconds within which to auto commit this document. Available since Solr 1.4 . Default (0) means disabled.

When this value specified, it leaves the control of when to do the commit to Solr itself, optimizing number of commits to a minimum while still fulfilling the update latency requirements, and Solr will automatically do a commit when the oldest add in the buffer is due.

Rückgabewerte

Returns a SolrUpdateResponse object or throws an exception on failure.

Fehler/Exceptions

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Beispiele

Beispiel #1 SolrClient::addDocuments() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$doc2 = clone $doc;

$doc2->deleteField('id');
$doc2->addField('id', 334456);

$docs = array($doc, $doc2);

$updateResponse = $client->addDocuments($docs);

// no changes will be written to disk unless $commitWithin is passed or SolrClient::commit is called

print_r($updateResponse->getResponse());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

)

Siehe auch

  • SolrClient::addDocument() - Adds a document to the index
  • SolrClient::commit() - Finalizes all add/deletes made to the index


Finalizes all add/deletes made to the index

  • « SolrClient::addDocuments
  • SolrClient::__construct »
  • PHP Manual
  • SolrClient
  • Finalizes all add/deletes made to the index

SolrClient::commit

(PECL solr >= 0.9.2)

SolrClient::commit — Finalizes all add/deletes made to the index

Beschreibung

public SolrClient::commit ( bool $softCommit = false , bool $waitSearcher = true , bool $expungeDeletes = false ) : SolrUpdateResponse

This method finalizes all add/deletes made to the index.

Parameter-Liste

softCommit

This will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees. (Solr4.0+)

A soft commit is much faster since it only makes index changes visible and does not fsync index files or write a new index descriptor. If the JVM crashes or there is a loss of power, changes that occurred after the last hard commit will be lost. Search collections that have near-real-time requirements (that want index changes to be quickly visible to searches) will want to soft commit often but hard commit less frequently.

waitSearcher

block until a new searcher is opened and registered as the main query searcher, making the changes visible.

expungeDeletes

Merge segments with deletes away. (Solr1.4+)

Rückgabewerte

Returns a SolrUpdateResponse object on success or throws an exception on failure.

Fehler/Exceptions

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Changelog

Version | Beschreibung
PECL solr 1.1.0, 2.0.0 | $maxSegments removed
PECL solr 2.0.0b | API Changed: SolrClient::commit ([ int $maxSegments = 0 [, bool $softCommit = false [, bool $waitSearcher = true[, bool $expungeDeletes = false ]]] )
PECL solr 0.9.2 | Signature: SolrClient::commit ([ int $maxSegments = 1 [, bool $waitFlush = true [, bool $waitSearcher = true ]]] ). $waitFlush: Block until index changes are flushed to disk.

Anmerkungen

Warnung

PECL Solr >= 2.0 only supports Solr Server >= 4.0

Siehe auch

  • SolrClient::optimize() - Defragments the index
  • SolrClient::rollback() - Rollbacks all add/deletes made to the index since the last commit


Constructor for the SolrClient object

  • « SolrClient::commit
  • SolrClient::deleteById »
  • PHP Manual
  • SolrClient
  • Constructor for the SolrClient object

SolrClient::__construct

(PECL solr >= 0.9.2)

SolrClient::__construct — Constructor for the SolrClient object

Beschreibung

public SolrClient::__construct ( array $clientOptions )

Constructor for the SolrClient object

Parameter-Liste

clientOptions

This is an array containing one of the following keys :

- secure          (Boolean value indicating whether or not to connect in secure mode)
 - hostname        (The hostname for the Solr server)
 - port            (The port number)
 - path            (The path to solr)
 - wt              (The name of the response writer e.g. xml, json)
 - login           (The username used for HTTP Authentication, if any)
 - password        (The HTTP Authentication password)
 - proxy_host      (The hostname for the proxy server, if any)
 - proxy_port      (The proxy port)
 - proxy_login     (The proxy username)
 - proxy_password  (The proxy password)
 - timeout         (This is maximum time in seconds allowed for the http data transfer operation. Default is 30 seconds)
 - ssl_cert        (File name to a PEM-formatted file containing the private key + private certificate (concatenated in that order) )
 - ssl_key         (File name to a PEM-formatted private key file only)
 - ssl_keypassword (Password for private key)
 - ssl_cainfo      (Name of file holding one or more CA certificates to verify peer with)
 - ssl_capath      (Name of directory holding multiple CA certificates to verify peer with )

 Please note the if the ssl_cert file only contains the private certificate, you have to specify a separate ssl_key file

 The ssl_keypassword option is required if the ssl_cert or ssl_key options are set.

Fehler/Exceptions

Throws SolrIllegalArgumentException on failure.

Beispiele

Beispiel #1 SolrClient::__construct() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_PATH_TO_SOLR,
    'wt'       => 'xml',
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Siehe auch

  • SolrClient::getOptions() - Returns the client options set internally


Delete by Id

  • « SolrClient::__construct
  • SolrClient::deleteByIds »
  • PHP Manual
  • SolrClient
  • Delete by Id

SolrClient::deleteById

(PECL solr >= 0.9.2)

SolrClient::deleteById — Delete by Id

Beschreibung

public SolrClient::deleteById ( string $id ) : SolrUpdateResponse

Deletes the document with the specified ID. Where ID is the value of the uniqueKey field declared in the schema

Parameter-Liste

id

The value of the uniqueKey field declared in the schema

Rückgabewerte

Returns a SolrUpdateResponse on success and throws an exception on failure.

Fehler/Exceptions

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Siehe auch

  • SolrClient::deleteByIds() - Deletes by Ids
  • SolrClient::deleteByQuery() - Deletes all documents matching the given query
  • SolrClient::deleteByQueries() - Removes all documents matching any of the queries


Deletes by Ids

  • « SolrClient::deleteById
  • SolrClient::deleteByQueries »
  • PHP Manual
  • SolrClient
  • Deletes by Ids

SolrClient::deleteByIds

(PECL solr >= 0.9.2)

SolrClient::deleteByIds — Deletes by Ids

Beschreibung

public SolrClient::deleteByIds ( array $ids ) : SolrUpdateResponse

Deletes a collection of documents with the specified set of ids.

Parameter-Liste

ids

An array of IDs representing the uniqueKey field declared in the schema for each document to be deleted. This must be an actual php variable.

Rückgabewerte

Returns a SolrUpdateResponse on success and throws an exception on failure.

Fehler/Exceptions

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Siehe auch

  • SolrClient::deleteById() - Delete by Id
  • SolrClient::deleteByQuery() - Deletes all documents matching the given query
  • SolrClient::deleteByQueries() - Removes all documents matching any of the queries


Removes all documents matching any of the queries

  • « SolrClient::deleteByIds
  • SolrClient::deleteByQuery »
  • PHP Manual
  • SolrClient
  • Removes all documents matching any of the queries

SolrClient::deleteByQueries

(PECL solr >= 0.9.2)

SolrClient::deleteByQueries — Removes all documents matching any of the queries

Beschreibung

public SolrClient::deleteByQueries ( array $queries ) : SolrUpdateResponse

Removes all documents matching any of the queries

Parameter-Liste

queries

The array of queries. This must be an actual php variable.

Rückgabewerte

Returns a SolrUpdateResponse on success and throws a SolrClientException on failure.

Fehler/Exceptions

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Siehe auch

  • SolrClient::deleteById() - Delete by Id
  • SolrClient::deleteByIds() - Deletes by Ids
  • SolrClient::deleteByQuery() - Deletes all documents matching the given query


Deletes all documents matching the given query

  • « SolrClient::deleteByQueries
  • SolrClient::__destruct »
  • PHP Manual
  • SolrClient
  • Deletes all documents matching the given query

SolrClient::deleteByQuery

(PECL solr >= 0.9.2)

SolrClient::deleteByQuery — Deletes all documents matching the given query

Beschreibung

public SolrClient::deleteByQuery ( string $query ) : SolrUpdateResponse

Deletes all documents matching the given query.

Parameter-Liste

query

The query

Rückgabewerte

Returns a SolrUpdateResponse on success and throws an exception on failure.

Fehler/Exceptions

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Beispiele

Beispiel #1 SolrQuery::deleteByQuery() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

//This will erase the entire index
$client->deleteByQuery("*:*");
$client->commit();

?>

Siehe auch

  • SolrClient::deleteById() - Delete by Id
  • SolrClient::deleteByIds() - Deletes by Ids
  • SolrClient::deleteByQueries() - Removes all documents matching any of the queries


Destructor for SolrClient

  • « SolrClient::deleteByQuery
  • SolrClient::getById »
  • PHP Manual
  • SolrClient
  • Destructor for SolrClient

SolrClient::__destruct

(PECL solr >= 0.9.2)

SolrClient::__destruct — Destructor for SolrClient

Beschreibung

public SolrClient::__destruct ( ) : void

Destructor

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Destructor for SolrClient

Siehe auch

  • SolrClient::__construct() - Constructor for the SolrClient object


Get Document By Id. Utilizes Solr Realtime Get (RTG)

  • « SolrClient::__destruct
  • SolrClient::getByIds »
  • PHP Manual
  • SolrClient
  • Get Document By Id. Utilizes Solr Realtime Get (RTG)

SolrClient::getById

(PECL solr >= 2.2.0)

SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG)

Beschreibung

public SolrClient::getById ( string $id ) : SolrQueryResponse

Get Document By Id. Utilizes Solr Realtime Get (RTG).

Parameter-Liste

id

Document ID

Rückgabewerte

SolrQueryResponse

Beispiele

Beispiel #1 SolrClient::getById() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getById('GB18030TEST');
print_r($response->getResponse());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [doc] => SolrObject Object
        (
            [id] => GB18030TEST
            [name] => Array
                (
                    [0] => Test with some GB18030 encoded characters
                )

            [features] => Array
                (
                    [0] => No accents here
                    [1] => ??????
                    [2] => This is a feature (translated)
                    [3] => ?????????
                    [4] => This document is very shiny (translated)
                )

            [price] => Array
                (
                    [0] => 0
                )

            [inStock] => Array
                (
                    [0] => 1
                )

            [_version_] => 1510294336239042560
        )

)

Siehe auch

  • SolrClient::getByIds() - Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)


Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)

  • « SolrClient::getById
  • SolrClient::getDebug »
  • PHP Manual
  • SolrClient
  • Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)

SolrClient::getByIds

(PECL solr >= 2.2.0)

SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)

Beschreibung

public SolrClient::getByIds ( array $ids ) : SolrQueryResponse

Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).

Parameter-Liste

ids

Document ids

Rückgabewerte

SolrQueryResponse

Beispiele

Beispiel #1 SolrClient::getByIds() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getByIds(['GB18030TEST', '6H500F0']);

print_r($response->getResponse());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [response] => SolrObject Object
        (
            [numFound] => 2
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => GB18030TEST
                            [name] => Array
                                (
                                    [0] => Test with some GB18030 encoded characters
                                )

                            [features] => Array
                                (
                                    [0] => No accents here
                                    [1] => ??????
                                    [2] => This is a feature (translated)
                                    [3] => ?????????
                                    [4] => This document is very shiny (translated)
                                )

                            [price] => Array
                                (
                                    [0] => 0
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [_version_] => 1510294336239042560
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                )

        )

)

Siehe auch

  • SolrClient::getById() - Get Document By Id. Utilizes Solr Realtime Get (RTG)


Returns the debug data for the last connection attempt

  • « SolrClient::getByIds
  • SolrClient::getOptions »
  • PHP Manual
  • SolrClient
  • Returns the debug data for the last connection attempt

SolrClient::getDebug

(PECL solr >= 0.9.7)

SolrClient::getDebug — Returns the debug data for the last connection attempt

Beschreibung

public SolrClient::getDebug ( ) : string

Returns the debug data for the last connection attempt

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string on success and null if there is nothing to return.


Returns the client options set internally

  • « SolrClient::getDebug
  • SolrClient::optimize »
  • PHP Manual
  • SolrClient
  • Returns the client options set internally

SolrClient::getOptions

(PECL solr >= 0.9.6)

SolrClient::getOptions — Returns the client options set internally

Beschreibung

public SolrClient::getOptions ( ) : array

Returns the client options set internally. Very useful for debugging. The values returned are readonly and can only be set when the object is instantiated.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing all the options for the SolrClient object set internally.

Siehe auch

  • SolrClient::__construct() - Constructor for the SolrClient object


Defragments the index

  • « SolrClient::getOptions
  • SolrClient::ping »
  • PHP Manual
  • SolrClient
  • Defragments the index

SolrClient::optimize

(PECL solr >= 0.9.2)

SolrClient::optimize — Defragments the index

Beschreibung

public SolrClient::optimize ( int $maxSegments = 1 , bool $softCommit = true , bool $waitSearcher = true ) : SolrUpdateResponse

Defragments the index for faster search performance.

Parameter-Liste

maxSegments

Optimizes down to at most this number of segments. Since Solr 1.3

softCommit

This will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees. (Solr4.0+)

waitSearcher

Block until a new searcher is opened and registered as the main query searcher, making the changes visible.

Rückgabewerte

Returns a SolrUpdateResponse on success or throws an exception on failure.

Fehler/Exceptions

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Anmerkungen

Warnung

PECL Solr >= 2.0 only supports Solr Server >= 4.0

Prior to PECL Solr 2.0 this method used to accept these arguments "int $maxSegments, bool $waitFlush, bool $waitSearcher".

Siehe auch

  • SolrClient::commit() - Finalizes all add/deletes made to the index
  • SolrClient::rollback() - Rollbacks all add/deletes made to the index since the last commit


Checks if Solr server is still up

  • « SolrClient::optimize
  • SolrClient::query »
  • PHP Manual
  • SolrClient
  • Checks if Solr server is still up

SolrClient::ping

(PECL solr >= 0.9.2)

SolrClient::ping — Checks if Solr server is still up

Beschreibung

public SolrClient::ping ( ) : SolrPingResponse

Checks if the Solr server is still alive. Sends a HEAD request to the Apache Solr server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a SolrPingResponse object on success and throws an exception on failure.

Fehler/Exceptions

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to satisfy the request.

Beispiele

Beispiel #1 SolrClient::ping() example

<?php
$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$pingresponse = $client->ping();

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:


Sends a query to the server

  • « SolrClient::ping
  • SolrClient::request »
  • PHP Manual
  • SolrClient
  • Sends a query to the server

SolrClient::query

(PECL solr >= 0.9.2)

SolrClient::query — Sends a query to the server

Beschreibung

public SolrClient::query ( SolrParams $query ) : SolrQueryResponse

Sends a query to the server.

Parameter-Liste

query

A SolrParams object. It is recommended to use SolrQuery for advanced queries.

Rückgabewerte

Returns a SolrQueryResponse object on success and throws an exception on failure.

Fehler/Exceptions

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to satisfy the query.

Beispiele

Beispiel #1 SolrClient::query() example

<?php

$options = array
(
    'hostname' => 'localhost',
    'login'    => 'username',
    'password' => 'password',
    'port'     => '8983',
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 3
            [params] => SolrObject Object
                (
                    [fl] => cat,features,id,timestamp
                    [indent] => on
                    [start] => 0
                    [q] => lucene
                    [wt] => xml
                    [version] => 2.2
                    [rows] => 50
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 1
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SOLR1000
                            [cat] => Array
                                (
                                    [0] => software
                                    [1] => search
                                )

                            [features] => Array
                                (
                                    [0] => Advanced Full-Text Search Capabilities using Lucene
                                    [1] => Optimized for High Volume Web Traffic
                                    [2] => Standards Based Open Interfaces - XML and HTTP
                                    [3] => Comprehensive HTML Administration Interfaces
                                    [4] => Scalability - Efficient Replication to other Solr Search Servers
                                    [5] => Flexible and Adaptable with XML configuration and Schema
                                    [6] => Good unicode support: héllo (hello with an accent over the e)
                                )

                        )

                )

        )

)


Sends a raw update request

  • « SolrClient::query
  • SolrClient::rollback »
  • PHP Manual
  • SolrClient
  • Sends a raw update request

SolrClient::request

(PECL solr >= 0.9.2)

SolrClient::request — Sends a raw update request

Beschreibung

public SolrClient::request ( string $raw_request ) : SolrUpdateResponse

Sends a raw XML update request to the server

Parameter-Liste

raw_request

An XML string with the raw request to the server.

Rückgabewerte

Returns a SolrUpdateResponse on success. Throws an exception on failure.

Fehler/Exceptions

Throws SolrIllegalArgumentException if raw_request was an empty string

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to satisfy the query.

Beispiele

Beispiel #1 SolrClient::request() example

<?php
$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$update_response = $client->request("<commit/>");

$response = $update_response->getResponse();

print_r($response);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

...


Rollbacks all add/deletes made to the index since the last commit

  • « SolrClient::request
  • SolrClient::setResponseWriter »
  • PHP Manual
  • SolrClient
  • Rollbacks all add/deletes made to the index since the last commit

SolrClient::rollback

(PECL solr >= 0.9.2)

SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit

Beschreibung

public SolrClient::rollback ( ) : SolrUpdateResponse

Rollbacks all add/deletes made to the index since the last commit. It neither calls any event listeners nor creates a new searcher.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a SolrUpdateResponse on success or throws a SolrClientException on failure.

Siehe auch

  • SolrClient::commit() - Finalizes all add/deletes made to the index
  • SolrClient::optimize() - Defragments the index


Sets the response writer used to prepare the response from Solr

  • « SolrClient::rollback
  • SolrClient::setServlet »
  • PHP Manual
  • SolrClient
  • Sets the response writer used to prepare the response from Solr

SolrClient::setResponseWriter

(PECL solr >= 0.9.11)

SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr

Beschreibung

public SolrClient::setResponseWriter ( string $responseWriter ) : void

Sets the response writer used to prepare the response from Solr

Parameter-Liste

responseWriter

One of the following:

  • json
  • phps
  • xml

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SolrClient::setResponseWriter() example

<?php

// This is my custom class for objects
class SolrClass
{
   public $_properties = array();

   public function __get($property_name) {

      if (property_exists($this, $property_name)) {

          return $this->$property_name;

      } else if (isset($_properties[$property_name])) {

          return $_properties[$property_name];
      }

      return null;
   }
}

$options = array
(
  'hostname' => 'localhost',
  'port' => 8983,
  'path' => '/solr/core1'
);

$client = new SolrClient($options);

$client->setResponseWriter("json");

//$response = $client->ping();

$query = new SolrQuery();

$query->setQuery("*:*");

$query->set("objectClassName", "SolrClass");

$query->set("objectPropertiesStorageMode", 1); // 0 for independent properties, 1 for combined

try
{

$response = $client->query($query);

$resp = $response->getResponse();

print_r($response);

print_r($resp);

} catch (Exception $e) {

print_r($e);

}

?>


Changes the specified servlet type to a new value

  • « SolrClient::setResponseWriter
  • SolrClient::system »
  • PHP Manual
  • SolrClient
  • Changes the specified servlet type to a new value

SolrClient::setServlet

(PECL solr >= 0.9.2)

SolrClient::setServlet — Changes the specified servlet type to a new value

Beschreibung

public SolrClient::setServlet ( int $type , string $value ) : bool

Changes the specified servlet type to a new value

Parameter-Liste

type

One of the following :

- SolrClient::SEARCH_SERVLET_TYPE
 - SolrClient::UPDATE_SERVLET_TYPE
 - SolrClient::THREADS_SERVLET_TYPE
 - SolrClient::PING_SERVLET_TYPE
 - SolrClient::TERMS_SERVLET_TYPE

value

The new value for the servlet

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Retrieve Solr Server information

  • « SolrClient::setServlet
  • SolrClient::threads »
  • PHP Manual
  • SolrClient
  • Retrieve Solr Server information

SolrClient::system

(PECL solr >= 2.0.0)

SolrClient::system — Retrieve Solr Server information

Beschreibung

public SolrClient::system ( ) : void

Retrieve Solr Server information

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a SolrGenericResponse object on success.

Fehler/Exceptions

Emits SolrClientException if the client failed, or there was a connection issue.

Emits SolrServerException if the Solr Server failed to satisfy the query.


Checks the threads status

  • « SolrClient::system
  • SolrResponse »
  • PHP Manual
  • SolrClient
  • Checks the threads status

SolrClient::threads

(PECL solr >= 0.9.2)

SolrClient::threads — Checks the threads status

Beschreibung

public SolrClient::threads ( ) : void

Checks the threads status

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a SolrGenericResponse object.

Fehler/Exceptions

Throws SolrClientException if the client failed, or there was a connection issue.

throws SolrServerException if the Solr Server failed to process the request.


The SolrResponse class

(PECL solr >= 0.9.2)

Einführung

Represents a response from the Solr server.

Klassenbeschreibung

abstract SolrResponse {
/* Konstanten */
const int PARSE_SOLR_OBJ = 0 ;
const int PARSE_SOLR_DOC = 1 ;
/* Eigenschaften */
protected int $http_status ;
protected int $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Methoden */
public getDigestedResponse ( ) : string
public getHttpStatus ( ) : int
public getHttpStatusMessage ( ) : string
public getRawRequest ( ) : string
public getRawRequestHeaders ( ) : string
public getRawResponse ( ) : string
public getRawResponseHeaders ( ) : string
public getRequestUrl ( ) : string
public getResponse ( ) : SolrObject
public setParseMode ( int $parser_mode = 0 ) : bool
public success ( ) : bool
}

Eigenschaften

http_status

The http status of the response.

parser_mode

Whether to parse the solr documents as SolrObject or SolrDocument instances.

success

Was there an error during the request

http_status_message

Detailed message on http status

http_request_url

The request URL

http_raw_request_headers

A string of raw headers sent during the request.

http_raw_request

The raw request sent to the server

http_raw_response_headers

Response headers from the Solr server.

http_raw_response

The response message from the server.

http_digested_response

The response in PHP serialized format.

Vordefinierte Konstanten

SolrResponse Class Constants

SolrResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Inhaltsverzeichnis

  • SolrResponse::getDigestedResponse — Returns the XML response as serialized PHP data
  • SolrResponse::getHttpStatus — Returns the HTTP status of the response
  • SolrResponse::getHttpStatusMessage — Returns more details on the HTTP status
  • SolrResponse::getRawRequest — Returns the raw request sent to the Solr server
  • SolrResponse::getRawRequestHeaders — Returns the raw request headers sent to the Solr server
  • SolrResponse::getRawResponse — Returns the raw response from the server
  • SolrResponse::getRawResponseHeaders — Returns the raw response headers from the server
  • SolrResponse::getRequestUrl — Returns the full URL the request was sent to
  • SolrResponse::getResponse — Returns a SolrObject representing the XML response from the server
  • SolrResponse::setParseMode — Sets the parse mode
  • SolrResponse::success — Was the request a success


Returns the XML response as serialized PHP data

  • « SolrResponse
  • SolrResponse::getHttpStatus »
  • PHP Manual
  • SolrResponse
  • Returns the XML response as serialized PHP data

SolrResponse::getDigestedResponse

(PECL solr >= 0.9.2)

SolrResponse::getDigestedResponse — Returns the XML response as serialized PHP data

Beschreibung

public SolrResponse::getDigestedResponse ( ) : string

Returns the XML response as serialized PHP data

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the XML response as serialized PHP data


Returns the HTTP status of the response

  • « SolrResponse::getDigestedResponse
  • SolrResponse::getHttpStatusMessage »
  • PHP Manual
  • SolrResponse
  • Returns the HTTP status of the response

SolrResponse::getHttpStatus

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatus — Returns the HTTP status of the response

Beschreibung

public SolrResponse::getHttpStatus ( ) : int

Returns the HTTP status of the response.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the HTTP status of the response.


Returns more details on the HTTP status

  • « SolrResponse::getHttpStatus
  • SolrResponse::getRawRequest »
  • PHP Manual
  • SolrResponse
  • Returns more details on the HTTP status

SolrResponse::getHttpStatusMessage

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatusMessage — Returns more details on the HTTP status

Beschreibung

public SolrResponse::getHttpStatusMessage ( ) : string

Returns more details on the HTTP status.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns more details on the HTTP status


Returns the raw request sent to the Solr server

  • « SolrResponse::getHttpStatusMessage
  • SolrResponse::getRawRequestHeaders »
  • PHP Manual
  • SolrResponse
  • Returns the raw request sent to the Solr server

SolrResponse::getRawRequest

(PECL solr >= 0.9.2)

SolrResponse::getRawRequest — Returns the raw request sent to the Solr server

Beschreibung

public SolrResponse::getRawRequest ( ) : string

Returns the raw request sent to the Solr server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the raw request sent to the Solr server


Returns the raw request headers sent to the Solr server

  • « SolrResponse::getRawRequest
  • SolrResponse::getRawResponse »
  • PHP Manual
  • SolrResponse
  • Returns the raw request headers sent to the Solr server

SolrResponse::getRawRequestHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawRequestHeaders — Returns the raw request headers sent to the Solr server

Beschreibung

public SolrResponse::getRawRequestHeaders ( ) : string

Returns the raw request headers sent to the Solr server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the raw request headers sent to the Solr server


Returns the raw response from the server

  • « SolrResponse::getRawRequestHeaders
  • SolrResponse::getRawResponseHeaders »
  • PHP Manual
  • SolrResponse
  • Returns the raw response from the server

SolrResponse::getRawResponse

(PECL solr >= 0.9.2)

SolrResponse::getRawResponse — Returns the raw response from the server

Beschreibung

public SolrResponse::getRawResponse ( ) : string

Returns the raw response from the server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the raw response from the server.


Returns the raw response headers from the server

  • « SolrResponse::getRawResponse
  • SolrResponse::getRequestUrl »
  • PHP Manual
  • SolrResponse
  • Returns the raw response headers from the server

SolrResponse::getRawResponseHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawResponseHeaders — Returns the raw response headers from the server

Beschreibung

public SolrResponse::getRawResponseHeaders ( ) : string

Returns the raw response headers from the server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the raw response headers from the server.


Returns the full URL the request was sent to

  • « SolrResponse::getRawResponseHeaders
  • SolrResponse::getResponse »
  • PHP Manual
  • SolrResponse
  • Returns the full URL the request was sent to

SolrResponse::getRequestUrl

(PECL solr >= 0.9.2)

SolrResponse::getRequestUrl — Returns the full URL the request was sent to

Beschreibung

public SolrResponse::getRequestUrl ( ) : string

Returns the full URL the request was sent to.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the full URL the request was sent to


Returns a SolrObject representing the XML response from the server

  • « SolrResponse::getRequestUrl
  • SolrResponse::setParseMode »
  • PHP Manual
  • SolrResponse
  • Returns a SolrObject representing the XML response from the server

SolrResponse::getResponse

(PECL solr >= 0.9.2)

SolrResponse::getResponse — Returns a SolrObject representing the XML response from the server

Beschreibung

public SolrResponse::getResponse ( ) : SolrObject

Returns a SolrObject representing the XML response from the server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a SolrObject representing the XML response from the server


Sets the parse mode

  • « SolrResponse::getResponse
  • SolrResponse::success »
  • PHP Manual
  • SolrResponse
  • Sets the parse mode

SolrResponse::setParseMode

(PECL solr >= 0.9.2)

SolrResponse::setParseMode — Sets the parse mode

Beschreibung

public SolrResponse::setParseMode ( int $parser_mode = 0 ) : bool

Sets the parse mode.

Parameter-Liste

parser_mode

SolrResponse::PARSE_SOLR_DOC parses documents in SolrDocument instances. SolrResponse::PARSE_SOLR_OBJ parses document into SolrObjects.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Was the request a success

  • « SolrResponse::setParseMode
  • SolrQueryResponse »
  • PHP Manual
  • SolrResponse
  • Was the request a success

SolrResponse::success

(PECL solr >= 0.9.2)

SolrResponse::success — Was the request a success

Beschreibung

public SolrResponse::success ( ) : bool

Used to check if the request to the server was successful.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if it was successful and false if it was not.


The SolrQueryResponse class

(PECL solr >= 0.9.2)

Einführung

Represents a response to a query request.

Klassenbeschreibung

final SolrQueryResponse extends SolrResponse {
/* Konstanten */
const int PARSE_SOLR_OBJ = 0 ;
const int PARSE_SOLR_DOC = 1 ;
/* Geerbte Eigenschaften */
const int SolrResponse::PARSE_SOLR_OBJ = 0 ;
const int SolrResponse::PARSE_SOLR_DOC = 1 ;
protected int $http_status ;
protected int $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Methoden */
public __construct ( )
public __destruct ( ) : void
/* Geerbte Methoden */
public SolrResponse::getDigestedResponse ( ) : string
public SolrResponse::getHttpStatus ( ) : int
public SolrResponse::getHttpStatusMessage ( ) : string
public SolrResponse::getRawRequest ( ) : string
public SolrResponse::getRawRequestHeaders ( ) : string
public SolrResponse::getRawResponse ( ) : string
public SolrResponse::getRawResponseHeaders ( ) : string
public SolrResponse::getRequestUrl ( ) : string
public SolrResponse::getResponse ( ) : SolrObject
public SolrResponse::setParseMode ( int $parser_mode = 0 ) : bool
public SolrResponse::success ( ) : bool
}

Vordefinierte Konstanten

SolrQueryResponse Class constants

SolrQueryResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrQueryResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Inhaltsverzeichnis

  • SolrQueryResponse::__construct — Constructor
  • SolrQueryResponse::__destruct — Destructor


Constructor

  • « SolrQueryResponse
  • SolrQueryResponse::__destruct »
  • PHP Manual
  • SolrQueryResponse
  • Constructor

SolrQueryResponse::__construct

(PECL solr >= 0.9.2)

SolrQueryResponse::__construct — Constructor

Beschreibung

public SolrQueryResponse::__construct ( )

Constructor

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None


Destructor

  • « SolrQueryResponse::__construct
  • SolrUpdateResponse »
  • PHP Manual
  • SolrQueryResponse
  • Destructor

SolrQueryResponse::__destruct

(PECL solr >= 0.9.2)

SolrQueryResponse::__destruct — Destructor

Beschreibung

public SolrQueryResponse::__destruct ( ) : void

Destructor.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None


The SolrUpdateResponse class

(PECL solr >= 0.9.2)

Einführung

Represents a response to an update request.

Klassenbeschreibung

final SolrUpdateResponse extends SolrResponse {
/* Konstanten */
const int PARSE_SOLR_OBJ = 0 ;
const int PARSE_SOLR_DOC = 1 ;
/* Geerbte Eigenschaften */
const int SolrResponse::PARSE_SOLR_OBJ = 0 ;
const int SolrResponse::PARSE_SOLR_DOC = 1 ;
protected int $http_status ;
protected int $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Methoden */
public __construct ( )
public __destruct ( ) : void
/* Geerbte Methoden */
public SolrResponse::getDigestedResponse ( ) : string
public SolrResponse::getHttpStatus ( ) : int
public SolrResponse::getHttpStatusMessage ( ) : string
public SolrResponse::getRawRequest ( ) : string
public SolrResponse::getRawRequestHeaders ( ) : string
public SolrResponse::getRawResponse ( ) : string
public SolrResponse::getRawResponseHeaders ( ) : string
public SolrResponse::getRequestUrl ( ) : string
public SolrResponse::getResponse ( ) : SolrObject
public SolrResponse::setParseMode ( int $parser_mode = 0 ) : bool
public SolrResponse::success ( ) : bool
}

Vordefinierte Konstanten

SolrUpdateResponse Class Constants

SolrUpdateResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrUpdateResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Inhaltsverzeichnis

  • SolrUpdateResponse::__construct — Constructor
  • SolrUpdateResponse::__destruct — Destructor


Constructor

  • « SolrUpdateResponse
  • SolrUpdateResponse::__destruct »
  • PHP Manual
  • SolrUpdateResponse
  • Constructor

SolrUpdateResponse::__construct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__construct — Constructor

Beschreibung

public SolrUpdateResponse::__construct ( )

Constructor

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None


Destructor

  • « SolrUpdateResponse::__construct
  • SolrPingResponse »
  • PHP Manual
  • SolrUpdateResponse
  • Destructor

SolrUpdateResponse::__destruct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__destruct — Destructor

Beschreibung

public SolrUpdateResponse::__destruct ( ) : void

Destructor

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None


The SolrPingResponse class

(PECL solr >= 0.9.2)

Einführung

Represents a response to a ping request to the server

Klassenbeschreibung

final SolrPingResponse extends SolrResponse {
/* Konstanten */
const int PARSE_SOLR_OBJ = 0 ;
const int PARSE_SOLR_DOC = 1 ;
/* Eigenschaften */
/* Methoden */
public __construct ( )
public __destruct ( ) : void
public getResponse ( ) : string
/* Geerbte Methoden */
public SolrResponse::getDigestedResponse ( ) : string
public SolrResponse::getHttpStatus ( ) : int
public SolrResponse::getHttpStatusMessage ( ) : string
public SolrResponse::getRawRequest ( ) : string
public SolrResponse::getRawRequestHeaders ( ) : string
public SolrResponse::getRawResponse ( ) : string
public SolrResponse::getRawResponseHeaders ( ) : string
public SolrResponse::getRequestUrl ( ) : string
public SolrResponse::getResponse ( ) : SolrObject
public SolrResponse::setParseMode ( int $parser_mode = 0 ) : bool
public SolrResponse::success ( ) : bool
}

Eigenschaften

http_status

The http status of the response.

parser_mode

Whether to parse the solr documents as SolrObject or SolrDocument instances.

success

Was there an error during the request

http_status_message

Detailed message on http status

http_request_url

The request URL

http_raw_request_headers

A string of raw headers sent during the request

http_raw_request

The raw request sent to the server

http_raw_response_headers

Response headers from the Solr server

http_raw_response

The response message from the server

http_digested_response

The response in PHP serialized format.

Vordefinierte Konstanten

SolrPingResponse Class Constants

SolrPingResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrPingResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Inhaltsverzeichnis

  • SolrPingResponse::__construct — Constructor
  • SolrPingResponse::__destruct — Destructor
  • SolrPingResponse::getResponse — Returns the response from the server


Constructor

  • « SolrPingResponse
  • SolrPingResponse::__destruct »
  • PHP Manual
  • SolrPingResponse
  • Constructor

SolrPingResponse::__construct

(PECL solr >= 0.9.2)

SolrPingResponse::__construct — Constructor

Beschreibung

public SolrPingResponse::__construct ( )

Constructor

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None


Destructor

  • « SolrPingResponse::__construct
  • SolrPingResponse::getResponse »
  • PHP Manual
  • SolrPingResponse
  • Destructor

SolrPingResponse::__destruct

(PECL solr >= 0.9.2)

SolrPingResponse::__destruct — Destructor

Beschreibung

public SolrPingResponse::__destruct ( ) : void

Destructor

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None


Returns the response from the server

  • « SolrPingResponse::__destruct
  • SolrGenericResponse »
  • PHP Manual
  • SolrPingResponse
  • Returns the response from the server

SolrPingResponse::getResponse

(PECL solr >= 0.9.2)

SolrPingResponse::getResponse — Returns the response from the server

Beschreibung

public SolrPingResponse::getResponse ( ) : string

Returns the response from the server. This should be empty because the request as a HEAD request.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an empty string.


The SolrGenericResponse class

(PECL solr >= 0.9.2)

Einführung

Represents a response from the solr server.

Klassenbeschreibung

final SolrGenericResponse extends SolrResponse {
/* Konstanten */
const int PARSE_SOLR_OBJ = 0 ;
const int PARSE_SOLR_DOC = 1 ;
/* Geerbte Eigenschaften */
const int SolrResponse::PARSE_SOLR_OBJ = 0 ;
const int SolrResponse::PARSE_SOLR_DOC = 1 ;
protected int $http_status ;
protected int $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Methoden */
public __construct ( )
public __destruct ( ) : void
/* Geerbte Methoden */
public SolrResponse::getDigestedResponse ( ) : string
public SolrResponse::getHttpStatus ( ) : int
public SolrResponse::getHttpStatusMessage ( ) : string
public SolrResponse::getRawRequest ( ) : string
public SolrResponse::getRawRequestHeaders ( ) : string
public SolrResponse::getRawResponse ( ) : string
public SolrResponse::getRawResponseHeaders ( ) : string
public SolrResponse::getRequestUrl ( ) : string
public SolrResponse::getResponse ( ) : SolrObject
public SolrResponse::setParseMode ( int $parser_mode = 0 ) : bool
public SolrResponse::success ( ) : bool
}

Vordefinierte Konstanten

SolrGenericResponse Class constants

SolrGenericResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrGenericResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Inhaltsverzeichnis

  • SolrGenericResponse::__construct — Constructor
  • SolrGenericResponse::__destruct — Destructor


Constructor

  • « SolrGenericResponse
  • SolrGenericResponse::__destruct »
  • PHP Manual
  • SolrGenericResponse
  • Constructor

SolrGenericResponse::__construct

(PECL solr >= 0.9.2)

SolrGenericResponse::__construct — Constructor

Beschreibung

public SolrGenericResponse::__construct ( )

Constructor

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None


Destructor

  • « SolrGenericResponse::__construct
  • SolrParams »
  • PHP Manual
  • SolrGenericResponse
  • Destructor

SolrGenericResponse::__destruct

(PECL solr >= 0.9.2)

SolrGenericResponse::__destruct — Destructor

Beschreibung

public SolrGenericResponse::__destruct ( ) : void

Destructor.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None


The SolrParams class

(PECL solr >= 0.9.2)

Einführung

Represents a collection of name-value pairs sent to the Solr server during a request.

Klassenbeschreibung

abstract SolrParams implements Serializable {
/* Methoden */
final public add ( string $name , string $value ) : SolrParams
public addParam ( string $name , string $value ) : SolrParams
final public get ( string $param_name ) : mixed
final public getParam ( string $param_name = ? ) : mixed
final public getParams ( ) : array
final public getPreparedParams ( ) : array
final public serialize ( ) : string
final public set ( string $name , string $value ) : void
public setParam ( string $name , string $value ) : SolrParams
final public toString ( bool $url_encode = false ) : string
final public unserialize ( string $serialized ) : void
}

Inhaltsverzeichnis

  • SolrParams::add — This is an alias for SolrParams::addParam
  • SolrParams::addParam — Adds a parameter to the object
  • SolrParams::get — This is an alias for SolrParams::getParam
  • SolrParams::getParam — Returns a parameter value
  • SolrParams::getParams — Returns an array of non URL-encoded parameters
  • SolrParams::getPreparedParams — Returns an array of URL-encoded parameters
  • SolrParams::serialize — Used for custom serialization
  • SolrParams::set — An alias of SolrParams::setParam
  • SolrParams::setParam — Sets the parameter to the specified value
  • SolrParams::toString — Returns all the name-value pair parameters in the object
  • SolrParams::unserialize — Used for custom serialization


This is an alias for SolrParams::addParam

  • « SolrParams
  • SolrParams::addParam »
  • PHP Manual
  • SolrParams
  • This is an alias for SolrParams::addParam

SolrParams::add

(PECL solr >= 0.9.2)

SolrParams::add — This is an alias for SolrParams::addParam

Beschreibung

final public SolrParams::add ( string $name , string $value ) : SolrParams

This is an alias for SolrParams::addParam

Parameter-Liste

name

The name of the parameter

value

The value of the parameter

Rückgabewerte

Returns a SolrParams instance on success


Adds a parameter to the object

  • « SolrParams::add
  • SolrParams::get »
  • PHP Manual
  • SolrParams
  • Adds a parameter to the object

SolrParams::addParam

(PECL solr >= 0.9.2)

SolrParams::addParam — Adds a parameter to the object

Beschreibung

public SolrParams::addParam ( string $name , string $value ) : SolrParams

Adds a parameter to the object. This is used for parameters that can be specified multiple times.

Parameter-Liste

name

Name of parameter

value

Value of parameter

Rückgabewerte

Returns a SolrParam object on success and false on failure.


This is an alias for SolrParams::getParam

  • « SolrParams::addParam
  • SolrParams::getParam »
  • PHP Manual
  • SolrParams
  • This is an alias for SolrParams::getParam

SolrParams::get

(PECL solr >= 0.9.2)

SolrParams::get — This is an alias for SolrParams::getParam

Beschreibung

final public SolrParams::get ( string $param_name ) : mixed

This is an alias for SolrParams::getParam

Parameter-Liste

param_name

Then name of the parameter

Rückgabewerte

Returns an array or string depending on the type of parameter


Returns a parameter value

  • « SolrParams::get
  • SolrParams::getParams »
  • PHP Manual
  • SolrParams
  • Returns a parameter value

SolrParams::getParam

(PECL solr >= 0.9.2)

SolrParams::getParam — Returns a parameter value

Beschreibung

final public SolrParams::getParam ( string $param_name = ? ) : mixed

Returns a parameter with name param_name

Parameter-Liste

param_name

The name of the parameter

Rückgabewerte

Returns a string or an array depending on the type of the parameter


Returns an array of non URL-encoded parameters

  • « SolrParams::getParam
  • SolrParams::getPreparedParams »
  • PHP Manual
  • SolrParams
  • Returns an array of non URL-encoded parameters

SolrParams::getParams

(PECL solr >= 0.9.2)

SolrParams::getParams — Returns an array of non URL-encoded parameters

Beschreibung

final public SolrParams::getParams ( ) : array

Returns an array of non URL-encoded parameters

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array of non URL-encoded parameters


Returns an array of URL-encoded parameters

  • « SolrParams::getParams
  • SolrParams::serialize »
  • PHP Manual
  • SolrParams
  • Returns an array of URL-encoded parameters

SolrParams::getPreparedParams

(PECL solr >= 0.9.2)

SolrParams::getPreparedParams — Returns an array of URL-encoded parameters

Beschreibung

final public SolrParams::getPreparedParams ( ) : array

Returns an array on URL-encoded parameters

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array on URL-encoded parameters


Used for custom serialization

  • « SolrParams::getPreparedParams
  • SolrParams::set »
  • PHP Manual
  • SolrParams
  • Used for custom serialization

SolrParams::serialize

(PECL solr >= 0.9.2)

SolrParams::serialize — Used for custom serialization

Beschreibung

final public SolrParams::serialize ( ) : string

Used for custom serialization

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Used for custom serialization


An alias of SolrParams::setParam

  • « SolrParams::serialize
  • SolrParams::setParam »
  • PHP Manual
  • SolrParams
  • An alias of SolrParams::setParam

SolrParams::set

(PECL solr >= 0.9.2)

SolrParams::set — An alias of SolrParams::setParam

Beschreibung

final public SolrParams::set ( string $name , string $value ) : void

An alias of SolrParams::setParam

Parameter-Liste

name

Then name of the parameter

value

The parameter value

Rückgabewerte

Returns an instance of the SolrParams object on success


Sets the parameter to the specified value

  • « SolrParams::set
  • SolrParams::toString »
  • PHP Manual
  • SolrParams
  • Sets the parameter to the specified value

SolrParams::setParam

(PECL solr >= 0.9.2)

SolrParams::setParam — Sets the parameter to the specified value

Beschreibung

public SolrParams::setParam ( string $name , string $value ) : SolrParams

Sets the query parameter to the specified value. This is used for parameters that can only be specified once. Subsequent calls with the same parameter name will override the existing value

Parameter-Liste

name

Name of the parameter

value

Value of the parameter

Rückgabewerte

Returns a SolrParam object on success and false on value.

Beispiele

Beispiel #1 SolrParams::setParam() example

<?php

$param = new SolrParams();

$param->setParam('q', 'solr')->setParam('rows', 2);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:


Returns all the name-value pair parameters in the object

  • « SolrParams::setParam
  • SolrParams::unserialize »
  • PHP Manual
  • SolrParams
  • Returns all the name-value pair parameters in the object

SolrParams::toString

(PECL solr >= 0.9.2)

SolrParams::toString — Returns all the name-value pair parameters in the object

Beschreibung

final public SolrParams::toString ( bool $url_encode = false ) : string

Returns all the name-value pair parameters in the object

Parameter-Liste

url_encode

Whether to return URL-encoded values

Rückgabewerte

Returns a string on success and false on failure.


Used for custom serialization

  • « SolrParams::toString
  • SolrModifiableParams »
  • PHP Manual
  • SolrParams
  • Used for custom serialization

SolrParams::unserialize

(PECL solr >= 0.9.2)

SolrParams::unserialize — Used for custom serialization

Beschreibung

final public SolrParams::unserialize ( string $serialized ) : void

Used for custom serialization

Parameter-Liste

serialized

The serialized representation of the object

Rückgabewerte

None


The SolrModifiableParams class

(PECL solr >= 0.9.2)

Einführung

Represents a collection of name-value pairs sent to the Solr server during a request.

Klassenbeschreibung

SolrModifiableParams extends SolrParams implements Serializable {
/* Methoden */
public __construct ( )
public __destruct ( ) : void
/* Geerbte Methoden */
final public SolrParams::add ( string $name , string $value ) : SolrParams
public SolrParams::addParam ( string $name , string $value ) : SolrParams
final public SolrParams::get ( string $param_name ) : mixed
final public SolrParams::getParam ( string $param_name = ? ) : mixed
final public SolrParams::getParams ( ) : array
final public SolrParams::getPreparedParams ( ) : array
final public SolrParams::serialize ( ) : string
final public SolrParams::set ( string $name , string $value ) : void
public SolrParams::setParam ( string $name , string $value ) : SolrParams
final public SolrParams::toString ( bool $url_encode = false ) : string
final public SolrParams::unserialize ( string $serialized ) : void
}

Inhaltsverzeichnis

  • SolrModifiableParams::__construct — Constructor
  • SolrModifiableParams::__destruct — Destructor


Constructor

  • « SolrModifiableParams
  • SolrModifiableParams::__destruct »
  • PHP Manual
  • SolrModifiableParams
  • Constructor

SolrModifiableParams::__construct

(PECL solr >= 0.9.2)

SolrModifiableParams::__construct — Constructor

Beschreibung

public SolrModifiableParams::__construct ( )

Constructor

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None


Destructor

  • « SolrModifiableParams::__construct
  • SolrQuery »
  • PHP Manual
  • SolrModifiableParams
  • Destructor

SolrModifiableParams::__destruct

(PECL solr >= 0.9.2)

SolrModifiableParams::__destruct — Destructor

Beschreibung

public SolrModifiableParams::__destruct ( ) : void

Destructor

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None


The SolrQuery class

(PECL solr >= 0.9.2)

Einführung

Represents a collection of name-value pairs sent to the Solr server during a request.

Klassenbeschreibung

SolrQuery extends SolrModifiableParams implements Serializable {
/* Konstanten */
const int ORDER_ASC = 0 ;
const int ORDER_DESC = 1 ;
const int FACET_SORT_INDEX = 0 ;
const int FACET_SORT_COUNT = 1 ;
const int TERMS_SORT_INDEX = 0 ;
const int TERMS_SORT_COUNT = 1 ;
/* Eigenschaften */
/* Methoden */
public addExpandFilterQuery ( string $fq ) : SolrQuery
public addExpandSortField ( string $field , string $order = ? ) : SolrQuery
public addFacetDateField ( string $dateField ) : SolrQuery
public addFacetDateOther ( string $value , string $field_override = ? ) : SolrQuery
public addFacetField ( string $field ) : SolrQuery
public addFacetQuery ( string $facetQuery ) : SolrQuery
public addField ( string $field ) : SolrQuery
public addFilterQuery ( string $fq ) : SolrQuery
public addGroupField ( string $value ) : SolrQuery
public addGroupFunction ( string $value ) : SolrQuery
public addGroupQuery ( string $value ) : SolrQuery
public addGroupSortField ( string $field , int $order = ? ) : SolrQuery
public addHighlightField ( string $field ) : SolrQuery
public addMltField ( string $field ) : SolrQuery
public addMltQueryField ( string $field , float $boost ) : SolrQuery
public addSortField ( string $field , int $order = SolrQuery::ORDER_DESC ) : SolrQuery
public addStatsFacet ( string $field ) : SolrQuery
public addStatsField ( string $field ) : SolrQuery
public collapse ( SolrCollapseFunction $collapseFunction ) : SolrQuery
public __construct ( string $q = ? )
public __destruct ( ) : void
public getExpand ( ) : bool
public getExpandFilterQueries ( ) : array
public getExpandQuery ( ) : array
public getExpandRows ( ) : int
public getExpandSortFields ( ) : array
public getFacet ( ) : bool
public getFacetDateEnd ( string $field_override = ? ) : string
public getFacetDateFields ( ) : array
public getFacetDateGap ( string $field_override = ? ) : string
public getFacetDateHardEnd ( string $field_override = ? ) : string
public getFacetDateOther ( string $field_override = ? ) : array
public getFacetDateStart ( string $field_override = ? ) : string
public getFacetFields ( ) : array
public getFacetLimit ( string $field_override = ? ) : int
public getFacetMethod ( string $field_override = ? ) : string
public getFacetMinCount ( string $field_override = ? ) : int
public getFacetMissing ( string $field_override = ? ) : bool
public getFacetOffset ( string $field_override = ? ) : int
public getFacetPrefix ( string $field_override = ? ) : string
public getFacetQueries ( ) : array
public getFacetSort ( string $field_override = ? ) : int
public getFields ( ) : array
public getFilterQueries ( ) : array
public getGroup ( ) : bool
public getGroupCachePercent ( ) : int
public getGroupFacet ( ) : bool
public getGroupFields ( ) : array
public getGroupFormat ( ) : string
public getGroupFunctions ( ) : array
public getGroupLimit ( ) : int
public getGroupMain ( ) : bool
public getGroupNGroups ( ) : bool
public getGroupOffset ( ) : int
public getGroupQueries ( ) : array
public getGroupSortFields ( ) : array
public getGroupTruncate ( ) : bool
public getHighlight ( ) : bool
public getHighlightAlternateField ( string $field_override = ? ) : string
public getHighlightFields ( ) : array
public getHighlightFormatter ( string $field_override = ? ) : string
public getHighlightFragmenter ( string $field_override = ? ) : string
public getHighlightFragsize ( string $field_override = ? ) : int
public getHighlightHighlightMultiTerm ( ) : bool
public getHighlightMaxAlternateFieldLength ( string $field_override = ? ) : int
public getHighlightMaxAnalyzedChars ( ) : int
public getHighlightMergeContiguous ( string $field_override = ? ) : bool
public getHighlightRegexMaxAnalyzedChars ( ) : int
public getHighlightRegexPattern ( ) : string
public getHighlightRegexSlop ( ) : float
public getHighlightRequireFieldMatch ( ) : bool
public getHighlightSimplePost ( string $field_override = ? ) : string
public getHighlightSimplePre ( string $field_override = ? ) : string
public getHighlightSnippets ( string $field_override = ? ) : int
public getHighlightUsePhraseHighlighter ( ) : bool
public getMlt ( ) : bool
public getMltBoost ( ) : bool
public getMltCount ( ) : int
public getMltFields ( ) : array
public getMltMaxNumQueryTerms ( ) : int
public getMltMaxNumTokens ( ) : int
public getMltMaxWordLength ( ) : int
public getMltMinDocFrequency ( ) : int
public getMltMinTermFrequency ( ) : int
public getMltMinWordLength ( ) : int
public getMltQueryFields ( ) : array
public getQuery ( ) : string
public getRows ( ) : int
public getSortFields ( ) : array
public getStart ( ) : int
public getStats ( ) : bool
public getStatsFacets ( ) : array
public getStatsFields ( ) : array
public getTerms ( ) : bool
public getTermsField ( ) : string
public getTermsIncludeLowerBound ( ) : bool
public getTermsIncludeUpperBound ( ) : bool
public getTermsLimit ( ) : int
public getTermsLowerBound ( ) : string
public getTermsMaxCount ( ) : int
public getTermsMinCount ( ) : int
public getTermsPrefix ( ) : string
public getTermsReturnRaw ( ) : bool
public getTermsSort ( ) : int
public getTermsUpperBound ( ) : string
public getTimeAllowed ( ) : int
public removeExpandFilterQuery ( string $fq ) : SolrQuery
public removeExpandSortField ( string $field ) : SolrQuery
public removeFacetDateField ( string $field ) : SolrQuery
public removeFacetDateOther ( string $value , string $field_override = ? ) : SolrQuery
public removeFacetField ( string $field ) : SolrQuery
public removeFacetQuery ( string $value ) : SolrQuery
public removeField ( string $field ) : SolrQuery
public removeFilterQuery ( string $fq ) : SolrQuery
public removeHighlightField ( string $field ) : SolrQuery
public removeMltField ( string $field ) : SolrQuery
public removeMltQueryField ( string $queryField ) : SolrQuery
public removeSortField ( string $field ) : SolrQuery
public removeStatsFacet ( string $value ) : SolrQuery
public removeStatsField ( string $field ) : SolrQuery
public setEchoHandler ( bool $flag ) : SolrQuery
public setEchoParams ( string $type ) : SolrQuery
public setExpand ( bool $value ) : SolrQuery
public setExpandQuery ( string $q ) : SolrQuery
public setExpandRows ( int $value ) : SolrQuery
public setExplainOther ( string $query ) : SolrQuery
public setFacet ( bool $flag ) : SolrQuery
public setFacetDateEnd ( string $value , string $field_override = ? ) : SolrQuery
public setFacetDateGap ( string $value , string $field_override = ? ) : SolrQuery
public setFacetDateHardEnd ( bool $value , string $field_override = ? ) : SolrQuery
public setFacetDateStart ( string $value , string $field_override = ? ) : SolrQuery
public setFacetEnumCacheMinDefaultFrequency ( int $frequency , string $field_override = ? ) : SolrQuery
public setFacetLimit ( int $limit , string $field_override = ? ) : SolrQuery
public setFacetMethod ( string $method , string $field_override = ? ) : SolrQuery
public setFacetMinCount ( int $mincount , string $field_override = ? ) : SolrQuery
public setFacetMissing ( bool $flag , string $field_override = ? ) : SolrQuery
public setFacetOffset ( int $offset , string $field_override = ? ) : SolrQuery
public setFacetPrefix ( string $prefix , string $field_override = ? ) : SolrQuery
public setFacetSort ( int $facetSort , string $field_override = ? ) : SolrQuery
public setGroup ( bool $value ) : SolrQuery
public setGroupCachePercent ( int $percent ) : SolrQuery
public setGroupFacet ( bool $value ) : SolrQuery
public setGroupFormat ( string $value ) : SolrQuery
public setGroupLimit ( int $value ) : SolrQuery
public setGroupMain ( string $value ) : SolrQuery
public setGroupNGroups ( bool $value ) : SolrQuery
public setGroupOffset ( int $value ) : SolrQuery
public setGroupTruncate ( bool $value ) : SolrQuery
public setHighlight ( bool $flag ) : SolrQuery
public setHighlightAlternateField ( string $field , string $field_override = ? ) : SolrQuery
public setHighlightFormatter ( string $formatter , string $field_override = ? ) : SolrQuery
public setHighlightFragmenter ( string $fragmenter , string $field_override = ? ) : SolrQuery
public setHighlightFragsize ( int $size , string $field_override = ? ) : SolrQuery
public setHighlightHighlightMultiTerm ( bool $flag ) : SolrQuery
public setHighlightMaxAlternateFieldLength ( int $fieldLength , string $field_override = ? ) : SolrQuery
public setHighlightMaxAnalyzedChars ( int $value ) : SolrQuery
public setHighlightMergeContiguous ( bool $flag , string $field_override = ? ) : SolrQuery
public setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars ) : SolrQuery
public setHighlightRegexPattern ( string $value ) : SolrQuery
public setHighlightRegexSlop ( float $factor ) : SolrQuery
public setHighlightRequireFieldMatch ( bool $flag ) : SolrQuery
public setHighlightSimplePost ( string $simplePost , string $field_override = ? ) : SolrQuery
public setHighlightSimplePre ( string $simplePre , string $field_override = ? ) : SolrQuery
public setHighlightSnippets ( int $value , string $field_override = ? ) : SolrQuery
public setHighlightUsePhraseHighlighter ( bool $flag ) : SolrQuery
public setMlt ( bool $flag ) : SolrQuery
public setMltBoost ( bool $flag ) : SolrQuery
public setMltCount ( int $count ) : SolrQuery
public setMltMaxNumQueryTerms ( int $value ) : SolrQuery
public setMltMaxNumTokens ( int $value ) : SolrQuery
public setMltMaxWordLength ( int $maxWordLength ) : SolrQuery
public setMltMinDocFrequency ( int $minDocFrequency ) : SolrQuery
public setMltMinTermFrequency ( int $minTermFrequency ) : SolrQuery
public setMltMinWordLength ( int $minWordLength ) : SolrQuery
public setOmitHeader ( bool $flag ) : SolrQuery
public setQuery ( string $query ) : SolrQuery
public setRows ( int $rows ) : SolrQuery
public setShowDebugInfo ( bool $flag ) : SolrQuery
public setStart ( int $start ) : SolrQuery
public setStats ( bool $flag ) : SolrQuery
public setTerms ( bool $flag ) : SolrQuery
public setTermsField ( string $fieldname ) : SolrQuery
public setTermsIncludeLowerBound ( bool $flag ) : SolrQuery
public setTermsIncludeUpperBound ( bool $flag ) : SolrQuery
public setTermsLimit ( int $limit ) : SolrQuery
public setTermsLowerBound ( string $lowerBound ) : SolrQuery
public setTermsMaxCount ( int $frequency ) : SolrQuery
public setTermsMinCount ( int $frequency ) : SolrQuery
public setTermsPrefix ( string $prefix ) : SolrQuery
public setTermsReturnRaw ( bool $flag ) : SolrQuery
public setTermsSort ( int $sortType ) : SolrQuery
public setTermsUpperBound ( string $upperBound ) : SolrQuery
public setTimeAllowed ( int $timeAllowed ) : SolrQuery
/* Geerbte Methoden */
public SolrModifiableParams::__construct ( )
public SolrModifiableParams::__destruct ( ) : void
}

Vordefinierte Konstanten

SolrQuery::ORDER_ASC

Used to specify that the sorting should be in acending order

SolrQuery::ORDER_DESC

Used to specify that the sorting should be in descending order

SolrQuery::FACET_SORT_INDEX

Used to specify that the facet should sort by index

SolrQuery::FACET_SORT_COUNT

Used to specify that the facet should sort by count

SolrQuery::TERMS_SORT_INDEX

Used in the TermsComponent

SolrQuery::TERMS_SORT_COUNT

Used in the TermsComponent

Inhaltsverzeichnis

  • SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::addFacetDateField — Maps to facet.date
  • SolrQuery::addFacetDateOther — Adds another facet.date.other parameter
  • SolrQuery::addFacetField — Adds another field to the facet
  • SolrQuery::addFacetQuery — Adds a facet query
  • SolrQuery::addField — Specifies which fields to return in the result
  • SolrQuery::addFilterQuery — Specifies a filter query
  • SolrQuery::addGroupField — Add a field to be used to group results
  • SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery — Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter)
  • SolrQuery::addHighlightField — Maps to hl.fl
  • SolrQuery::addMltField — Sets a field to use for similarity
  • SolrQuery::addMltQueryField — Maps to mlt.qf
  • SolrQuery::addSortField — Used to control how the results should be sorted
  • SolrQuery::addStatsFacet — Requests a return of sub results for values within the given facet
  • SolrQuery::addStatsField — Maps to stats.field parameter
  • SolrQuery::collapse — Collapses the result set to a single document per group
  • SolrQuery::__construct — Constructor
  • SolrQuery::__destruct — Destructor
  • SolrQuery::getExpand — Returns true if group expanding is enabled
  • SolrQuery::getExpandFilterQueries — Returns the expand filter queries
  • SolrQuery::getExpandQuery — Returns the expand query expand.q parameter
  • SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)
  • SolrQuery::getExpandSortFields — Returns an array of fields
  • SolrQuery::getFacet — Returns the value of the facet parameter
  • SolrQuery::getFacetDateEnd — Returns the value for the facet.date.end parameter
  • SolrQuery::getFacetDateFields — Returns all the facet.date fields
  • SolrQuery::getFacetDateGap — Returns the value of the facet.date.gap parameter
  • SolrQuery::getFacetDateHardEnd — Returns the value of the facet.date.hardend parameter
  • SolrQuery::getFacetDateOther — Returns the value for the facet.date.other parameter
  • SolrQuery::getFacetDateStart — Returns the lower bound for the first date range for all date faceting on this field
  • SolrQuery::getFacetFields — Returns all the facet fields
  • SolrQuery::getFacetLimit — Returns the maximum number of constraint counts that should be returned for the facet fields
  • SolrQuery::getFacetMethod — Returns the value of the facet.method parameter
  • SolrQuery::getFacetMinCount — Returns the minimum counts for facet fields should be included in the response
  • SolrQuery::getFacetMissing — Returns the current state of the facet.missing parameter
  • SolrQuery::getFacetOffset — Returns an offset into the list of constraints to be used for pagination
  • SolrQuery::getFacetPrefix — Returns the facet prefix
  • SolrQuery::getFacetQueries — Returns all the facet queries
  • SolrQuery::getFacetSort — Returns the facet sort type
  • SolrQuery::getFields — Returns the list of fields that will be returned in the response
  • SolrQuery::getFilterQueries — Returns an array of filter queries
  • SolrQuery::getGroup — Returns true if grouping is enabled
  • SolrQuery::getGroupCachePercent — Returns group cache percent value
  • SolrQuery::getGroupFacet — Returns the group.facet parameter value
  • SolrQuery::getGroupFields — Returns group fields (group.field parameter values)
  • SolrQuery::getGroupFormat — Returns the group.format value
  • SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)
  • SolrQuery::getGroupLimit — Returns the group.limit value
  • SolrQuery::getGroupMain — Returns the group.main value
  • SolrQuery::getGroupNGroups — Returns the group.ngroups value
  • SolrQuery::getGroupOffset — Returns the group.offset value
  • SolrQuery::getGroupQueries — Returns all the group.query parameter values
  • SolrQuery::getGroupSortFields — Returns the group.sort value
  • SolrQuery::getGroupTruncate — Returns the group.truncate value
  • SolrQuery::getHighlight — Returns the state of the hl parameter
  • SolrQuery::getHighlightAlternateField — Returns the highlight field to use as backup or default
  • SolrQuery::getHighlightFields — Returns all the fields that Solr should generate highlighted snippets for
  • SolrQuery::getHighlightFormatter — Returns the formatter for the highlighted output
  • SolrQuery::getHighlightFragmenter — Returns the text snippet generator for highlighted text
  • SolrQuery::getHighlightFragsize — Returns the number of characters of fragments to consider for highlighting
  • SolrQuery::getHighlightHighlightMultiTerm — Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
  • SolrQuery::getHighlightMaxAlternateFieldLength — Returns the maximum number of characters of the field to return
  • SolrQuery::getHighlightMaxAnalyzedChars — Returns the maximum number of characters into a document to look for suitable snippets
  • SolrQuery::getHighlightMergeContiguous — Returns whether or not the collapse contiguous fragments into a single fragment
  • SolrQuery::getHighlightRegexMaxAnalyzedChars — Returns the maximum number of characters from a field when using the regex fragmenter
  • SolrQuery::getHighlightRegexPattern — Returns the regular expression for fragmenting
  • SolrQuery::getHighlightRegexSlop — Returns the deviation factor from the ideal fragment size
  • SolrQuery::getHighlightRequireFieldMatch — Returns if a field will only be highlighted if the query matched in this particular field
  • SolrQuery::getHighlightSimplePost — Returns the text which appears after a highlighted term
  • SolrQuery::getHighlightSimplePre — Returns the text which appears before a highlighted term
  • SolrQuery::getHighlightSnippets — Returns the maximum number of highlighted snippets to generate per field
  • SolrQuery::getHighlightUsePhraseHighlighter — Returns the state of the hl.usePhraseHighlighter parameter
  • SolrQuery::getMlt — Returns whether or not MoreLikeThis results should be enabled
  • SolrQuery::getMltBoost — Returns whether or not the query will be boosted by the interesting term relevance
  • SolrQuery::getMltCount — Returns the number of similar documents to return for each result
  • SolrQuery::getMltFields — Returns all the fields to use for similarity
  • SolrQuery::getMltMaxNumQueryTerms — Returns the maximum number of query terms that will be included in any generated query
  • SolrQuery::getMltMaxNumTokens — Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support
  • SolrQuery::getMltMaxWordLength — Returns the maximum word length above which words will be ignored
  • SolrQuery::getMltMinDocFrequency — Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
  • SolrQuery::getMltMinTermFrequency — Returns the frequency below which terms will be ignored in the source document
  • SolrQuery::getMltMinWordLength — Returns the minimum word length below which words will be ignored
  • SolrQuery::getMltQueryFields — Returns the query fields and their boosts
  • SolrQuery::getQuery — Returns the main query
  • SolrQuery::getRows — Returns the maximum number of documents
  • SolrQuery::getSortFields — Returns all the sort fields
  • SolrQuery::getStart — Returns the offset in the complete result set
  • SolrQuery::getStats — Returns whether or not stats is enabled
  • SolrQuery::getStatsFacets — Returns all the stats facets that were set
  • SolrQuery::getStatsFields — Returns all the statistics fields
  • SolrQuery::getTerms — Returns whether or not the TermsComponent is enabled
  • SolrQuery::getTermsField — Returns the field from which the terms are retrieved
  • SolrQuery::getTermsIncludeLowerBound — Returns whether or not to include the lower bound in the result set
  • SolrQuery::getTermsIncludeUpperBound — Returns whether or not to include the upper bound term in the result set
  • SolrQuery::getTermsLimit — Returns the maximum number of terms Solr should return
  • SolrQuery::getTermsLowerBound — Returns the term to start at
  • SolrQuery::getTermsMaxCount — Returns the maximum document frequency
  • SolrQuery::getTermsMinCount — Returns the minimum document frequency to return in order to be included
  • SolrQuery::getTermsPrefix — Returns the term prefix
  • SolrQuery::getTermsReturnRaw — Whether or not to return raw characters
  • SolrQuery::getTermsSort — Returns an integer indicating how terms are sorted
  • SolrQuery::getTermsUpperBound — Returns the term to stop at
  • SolrQuery::getTimeAllowed — Returns the time in milliseconds allowed for the query to finish
  • SolrQuery::removeExpandFilterQuery — Removes an expand filter query
  • SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter
  • SolrQuery::removeFacetDateField — Removes one of the facet date fields
  • SolrQuery::removeFacetDateOther — Removes one of the facet.date.other parameters
  • SolrQuery::removeFacetField — Removes one of the facet.date parameters
  • SolrQuery::removeFacetQuery — Removes one of the facet.query parameters
  • SolrQuery::removeField — Removes a field from the list of fields
  • SolrQuery::removeFilterQuery — Removes a filter query
  • SolrQuery::removeHighlightField — Removes one of the fields used for highlighting
  • SolrQuery::removeMltField — Removes one of the moreLikeThis fields
  • SolrQuery::removeMltQueryField — Removes one of the moreLikeThis query fields
  • SolrQuery::removeSortField — Removes one of the sort fields
  • SolrQuery::removeStatsFacet — Removes one of the stats.facet parameters
  • SolrQuery::removeStatsField — Removes one of the stats.field parameters
  • SolrQuery::setEchoHandler — Toggles the echoHandler parameter
  • SolrQuery::setEchoParams — Determines what kind of parameters to include in the response
  • SolrQuery::setExpand — Enables/Disables the Expand Component
  • SolrQuery::setExpandQuery — Sets the expand.q parameter
  • SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExplainOther — Sets the explainOther common query parameter
  • SolrQuery::setFacet — Maps to the facet parameter. Enables or disables facetting
  • SolrQuery::setFacetDateEnd — Maps to facet.date.end
  • SolrQuery::setFacetDateGap — Maps to facet.date.gap
  • SolrQuery::setFacetDateHardEnd — Maps to facet.date.hardend
  • SolrQuery::setFacetDateStart — Maps to facet.date.start
  • SolrQuery::setFacetEnumCacheMinDefaultFrequency — Sets the minimum document frequency used for determining term count
  • SolrQuery::setFacetLimit — Maps to facet.limit
  • SolrQuery::setFacetMethod — Specifies the type of algorithm to use when faceting a field
  • SolrQuery::setFacetMinCount — Maps to facet.mincount
  • SolrQuery::setFacetMissing — Maps to facet.missing
  • SolrQuery::setFacetOffset — Sets the offset into the list of constraints to allow for pagination
  • SolrQuery::setFacetPrefix — Specifies a string prefix with which to limits the terms on which to facet
  • SolrQuery::setFacetSort — Determines the ordering of the facet field constraints
  • SolrQuery::setGroup — Enable/Disable result grouping (group parameter)
  • SolrQuery::setGroupCachePercent — Enables caching for result grouping
  • SolrQuery::setGroupFacet — Sets group.facet parameter
  • SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupOffset — Sets the group.offset parameter
  • SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setHighlight — Enables or disables highlighting
  • SolrQuery::setHighlightAlternateField — Specifies the backup field to use
  • SolrQuery::setHighlightFormatter — Specify a formatter for the highlight output
  • SolrQuery::setHighlightFragmenter — Sets a text snippet generator for highlighted text
  • SolrQuery::setHighlightFragsize — The size of fragments to consider for highlighting
  • SolrQuery::setHighlightHighlightMultiTerm — Use SpanScorer to highlight phrase terms
  • SolrQuery::setHighlightMaxAlternateFieldLength — Sets the maximum number of characters of the field to return
  • SolrQuery::setHighlightMaxAnalyzedChars — Specifies the number of characters into a document to look for suitable snippets
  • SolrQuery::setHighlightMergeContiguous — Whether or not to collapse contiguous fragments into a single fragment
  • SolrQuery::setHighlightRegexMaxAnalyzedChars — Specify the maximum number of characters to analyze
  • SolrQuery::setHighlightRegexPattern — Specify the regular expression for fragmenting
  • SolrQuery::setHighlightRegexSlop — Sets the factor by which the regex fragmenter can stray from the ideal fragment size
  • SolrQuery::setHighlightRequireFieldMatch — Require field matching during highlighting
  • SolrQuery::setHighlightSimplePost — Sets the text which appears after a highlighted term
  • SolrQuery::setHighlightSimplePre — Sets the text which appears before a highlighted term
  • SolrQuery::setHighlightSnippets — Sets the maximum number of highlighted snippets to generate per field
  • SolrQuery::setHighlightUsePhraseHighlighter — Whether to highlight phrase terms only when they appear within the query phrase
  • SolrQuery::setMlt — Enables or disables moreLikeThis
  • SolrQuery::setMltBoost — Set if the query will be boosted by the interesting term relevance
  • SolrQuery::setMltCount — Set the number of similar documents to return for each result
  • SolrQuery::setMltMaxNumQueryTerms — Sets the maximum number of query terms included
  • SolrQuery::setMltMaxNumTokens — Specifies the maximum number of tokens to parse
  • SolrQuery::setMltMaxWordLength — Sets the maximum word length
  • SolrQuery::setMltMinDocFrequency — Sets the mltMinDoc frequency
  • SolrQuery::setMltMinTermFrequency — Sets the frequency below which terms will be ignored in the source docs
  • SolrQuery::setMltMinWordLength — Sets the minimum word length
  • SolrQuery::setOmitHeader — Exclude the header from the returned results
  • SolrQuery::setQuery — Sets the search query
  • SolrQuery::setRows — Specifies the maximum number of rows to return in the result
  • SolrQuery::setShowDebugInfo — Flag to show debug information
  • SolrQuery::setStart — Specifies the number of rows to skip
  • SolrQuery::setStats — Enables or disables the Stats component
  • SolrQuery::setTerms — Enables or disables the TermsComponent
  • SolrQuery::setTermsField — Sets the name of the field to get the Terms from
  • SolrQuery::setTermsIncludeLowerBound — Include the lower bound term in the result set
  • SolrQuery::setTermsIncludeUpperBound — Include the upper bound term in the result set
  • SolrQuery::setTermsLimit — Sets the maximum number of terms to return
  • SolrQuery::setTermsLowerBound — Specifies the Term to start from
  • SolrQuery::setTermsMaxCount — Sets the maximum document frequency
  • SolrQuery::setTermsMinCount — Sets the minimum document frequency
  • SolrQuery::setTermsPrefix — Restrict matches to terms that start with the prefix
  • SolrQuery::setTermsReturnRaw — Return the raw characters of the indexed term
  • SolrQuery::setTermsSort — Specifies how to sort the returned terms
  • SolrQuery::setTermsUpperBound — Sets the term to stop at
  • SolrQuery::setTimeAllowed — The time allowed for search to finish


Overrides main filter query, determines which documents to include in the main group

  • « SolrQuery
  • SolrQuery::addExpandSortField »
  • PHP Manual
  • SolrQuery
  • Overrides main filter query, determines which documents to include in the main group

SolrQuery::addExpandFilterQuery

(PECL solr >= 2.2.0)

SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group

Beschreibung

public SolrQuery::addExpandFilterQuery ( string $fq ) : SolrQuery

Overrides main filter query, determines which documents to include in the main group.

Parameter-Liste

fq

Rückgabewerte

SolrQuery

Siehe auch

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Orders the documents within the expanded groups (expand.sort parameter)

  • « SolrQuery::addExpandFilterQuery
  • SolrQuery::addFacetDateField »
  • PHP Manual
  • SolrQuery
  • Orders the documents within the expanded groups (expand.sort parameter)

SolrQuery::addExpandSortField

(PECL solr >= 2.2.0)

SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter)

Beschreibung

public SolrQuery::addExpandSortField ( string $field , string $order = ? ) : SolrQuery

Orders the documents within the expanded groups (expand.sort parameter).

Parameter-Liste

field

field name

order

Order ASC/DESC, utilizes SolrQuery::ORDER_* constants.

Default: SolrQuery::ORDER_DESC

Rückgabewerte

SolrQuery

Siehe auch

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Maps to facet.date

  • « SolrQuery::addExpandSortField
  • SolrQuery::addFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date

SolrQuery::addFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateField — Maps to facet.date

Beschreibung

public SolrQuery::addFacetDateField ( string $dateField ) : SolrQuery

This method allows you to specify a field which should be treated as a facet.

It can be used multiple times with different field names to indicate multiple facet fields

Parameter-Liste

dateField

The name of the date field.

Rückgabewerte

Returns a SolrQuery object.


Adds another facet.date.other parameter

  • « SolrQuery::addFacetDateField
  • SolrQuery::addFacetField »
  • PHP Manual
  • SolrQuery
  • Adds another facet.date.other parameter

SolrQuery::addFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateOther — Adds another facet.date.other parameter

Beschreibung

public SolrQuery::addFacetDateOther ( string $value , string $field_override = ? ) : SolrQuery

Sets the facet.date.other parameter. Accepts an optional field override

Parameter-Liste

value

The value to use.

field_override

The field name for the override.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Adds another field to the facet

  • « SolrQuery::addFacetDateOther
  • SolrQuery::addFacetQuery »
  • PHP Manual
  • SolrQuery
  • Adds another field to the facet

SolrQuery::addFacetField

(PECL solr >= 0.9.2)

SolrQuery::addFacetField — Adds another field to the facet

Beschreibung

public SolrQuery::addFacetField ( string $field ) : SolrQuery

Adds another field to the facet

Parameter-Liste

field

The name of the field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.

Beispiele

Beispiel #1 SolrQuery::addFacetField() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery($query);

$query->addField('price')->addField('color');

$query->setFacet(true);

$query->addFacetField('price')->addFacetField('color');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response['facet_counts']['facet_fields']);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [color] => SolrObject Object
        (
            [blue] => 20
            [green] => 100
        )

)


Adds a facet query

  • « SolrQuery::addFacetField
  • SolrQuery::addField »
  • PHP Manual
  • SolrQuery
  • Adds a facet query

SolrQuery::addFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::addFacetQuery — Adds a facet query

Beschreibung

public SolrQuery::addFacetQuery ( string $facetQuery ) : SolrQuery

Adds a facet query

Parameter-Liste

facetQuery

The facet query

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.

Beispiele

Beispiel #1 SolrQuery::addFacetField() example

<?php

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetQuery('price:[* TO 500]')->addFacetQuery('price:[500 TO *]');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response->facet_counts->facet_queries);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [price:[* TO 500]] => 14
    [price:[500 TO *]] => 2
)


Specifies which fields to return in the result

  • « SolrQuery::addFacetQuery
  • SolrQuery::addFilterQuery »
  • PHP Manual
  • SolrQuery
  • Specifies which fields to return in the result

SolrQuery::addField

(PECL solr >= 0.9.2)

SolrQuery::addField — Specifies which fields to return in the result

Beschreibung

public SolrQuery::addField ( string $field ) : SolrQuery

This method is used to used to specify a set of fields to return, thereby restricting the amount of data returned in the response.

It should be called multiple time, once for each field name.

Parameter-Liste

field

The name of the field

Rückgabewerte

Returns the current SolrQuery object


Specifies a filter query

  • « SolrQuery::addField
  • SolrQuery::addGroupField »
  • PHP Manual
  • SolrQuery
  • Specifies a filter query

SolrQuery::addFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::addFilterQuery — Specifies a filter query

Beschreibung

public SolrQuery::addFilterQuery ( string $fq ) : SolrQuery

Specifies a filter query

Parameter-Liste

fq

The filter query

Rückgabewerte

Returns the current SolrQuery object.

Beispiele

Beispiel #1 SolrQuery::addFilterQuery() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('*:*');

$query->addFilterQuery('color:blue,green');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response['facet_counts']['facet_fields']);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

 &fq=color:blue,green


Add a field to be used to group results

  • « SolrQuery::addFilterQuery
  • SolrQuery::addGroupFunction »
  • PHP Manual
  • SolrQuery
  • Add a field to be used to group results

SolrQuery::addGroupField

(PECL solr >= 2.2.0)

SolrQuery::addGroupField — Add a field to be used to group results

Beschreibung

public SolrQuery::addGroupField ( string $value ) : SolrQuery

The name of the field by which to group results. The field must be single-valued, and either be indexed or a field type that has a value source and works in a function query, such as ExternalFileField. It must also be a string-based field, such as StrField or TextField Uses group.field parameter

Parameter-Liste

value

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Allows grouping results based on the unique values of a function query (group.func parameter)

  • « SolrQuery::addGroupField
  • SolrQuery::addGroupQuery »
  • PHP Manual
  • SolrQuery
  • Allows grouping results based on the unique values of a function query (group.func parameter)

SolrQuery::addGroupFunction

(PECL solr >= 2.2.0)

SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter)

Beschreibung

public SolrQuery::addGroupFunction ( string $value ) : SolrQuery

Adds a group function (group.func parameter) Allows grouping results based on the unique values of a function query.

Parameter-Liste

value

Rückgabewerte

SolrQuery

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Allows grouping of documents that match the given query

  • « SolrQuery::addGroupFunction
  • SolrQuery::addGroupSortField »
  • PHP Manual
  • SolrQuery
  • Allows grouping of documents that match the given query

SolrQuery::addGroupQuery

(PECL solr >= 2.2.0)

SolrQuery::addGroupQuery — Allows grouping of documents that match the given query

Beschreibung

public SolrQuery::addGroupQuery ( string $value ) : SolrQuery

Allows grouping of documents that match the given query. Adds query to the group.query parameter

Parameter-Liste

value

Rückgabewerte

SolrQuery

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Add a group sort field (group.sort parameter)

  • « SolrQuery::addGroupQuery
  • SolrQuery::addHighlightField »
  • PHP Manual
  • SolrQuery
  • Add a group sort field (group.sort parameter)

SolrQuery::addGroupSortField

(PECL solr >= 2.2.0)

SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter)

Beschreibung

public SolrQuery::addGroupSortField ( string $field , int $order = ? ) : SolrQuery

Allow sorting group documents, using group sort field (group.sort parameter).

Parameter-Liste

field

Field name

order

Order ASC/DESC, utilizes SolrQuery::ORDER_* constants

Rückgabewerte

Beispiele

Beispiel #1 SolrQuery::addGroupSortField() example

<?php

$solrQuery = new SolrQuery('*:*');
$solrQuery
    ->setGroup(true)
    ->addGroupSortField('price', SolrQuery::ORDER_ASC);

echo $solrQuery;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=*:*&group=true&group.sort=price asc

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Maps to hl.fl

  • « SolrQuery::addGroupSortField
  • SolrQuery::addMltField »
  • PHP Manual
  • SolrQuery
  • Maps to hl.fl

SolrQuery::addHighlightField

(PECL solr >= 0.9.2)

SolrQuery::addHighlightField — Maps to hl.fl

Beschreibung

public SolrQuery::addHighlightField ( string $field ) : SolrQuery

Maps to hl.fl. This is used to specify that highlighted snippets should be generated for a particular field

Parameter-Liste

field

Name of the field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets a field to use for similarity

  • « SolrQuery::addHighlightField
  • SolrQuery::addMltQueryField »
  • PHP Manual
  • SolrQuery
  • Sets a field to use for similarity

SolrQuery::addMltField

(PECL solr >= 0.9.2)

SolrQuery::addMltField — Sets a field to use for similarity

Beschreibung

public SolrQuery::addMltField ( string $field ) : SolrQuery

Maps to mlt.fl. It specifies that a field should be used for similarity.

Parameter-Liste

field

The name of the field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Maps to mlt.qf

  • « SolrQuery::addMltField
  • SolrQuery::addSortField »
  • PHP Manual
  • SolrQuery
  • Maps to mlt.qf

SolrQuery::addMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::addMltQueryField — Maps to mlt.qf

Beschreibung

public SolrQuery::addMltQueryField ( string $field , float $boost ) : SolrQuery

Maps to mlt.qf. It is used to specify query fields and their boosts

Parameter-Liste

field

The name of the field

boost

Its boost value

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Used to control how the results should be sorted

  • « SolrQuery::addMltQueryField
  • SolrQuery::addStatsFacet »
  • PHP Manual
  • SolrQuery
  • Used to control how the results should be sorted

SolrQuery::addSortField

(PECL solr >= 0.9.2)

SolrQuery::addSortField — Used to control how the results should be sorted

Beschreibung

public SolrQuery::addSortField ( string $field , int $order = SolrQuery::ORDER_DESC ) : SolrQuery

Used to control how the results should be sorted.

Parameter-Liste

field

The name of the field

order

The sort direction. This should be either SolrQuery::ORDER_ASC or SolrQuery::ORDER_DESC.

Rückgabewerte

Returns the current SolrQuery object.


Requests a return of sub results for values within the given facet

  • « SolrQuery::addSortField
  • SolrQuery::addStatsField »
  • PHP Manual
  • SolrQuery
  • Requests a return of sub results for values within the given facet

SolrQuery::addStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::addStatsFacet — Requests a return of sub results for values within the given facet

Beschreibung

public SolrQuery::addStatsFacet ( string $field ) : SolrQuery

Requests a return of sub results for values within the given facet. Maps to the stats.facet field

Parameter-Liste

field

The name of the field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Maps to stats.field parameter

  • « SolrQuery::addStatsFacet
  • SolrQuery::collapse »
  • PHP Manual
  • SolrQuery
  • Maps to stats.field parameter

SolrQuery::addStatsField

(PECL solr >= 0.9.2)

SolrQuery::addStatsField — Maps to stats.field parameter

Beschreibung

public SolrQuery::addStatsField ( string $field ) : SolrQuery

Maps to stats.field parameter This methods adds another stats.field parameter.

Parameter-Liste

field

The name of the field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Collapses the result set to a single document per group

  • « SolrQuery::addStatsField
  • SolrQuery::__construct »
  • PHP Manual
  • SolrQuery
  • Collapses the result set to a single document per group

SolrQuery::collapse

(No version information available, might only be in Git)

SolrQuery::collapse — Collapses the result set to a single document per group

Beschreibung

public SolrQuery::collapse ( SolrCollapseFunction $collapseFunction ) : SolrQuery

Collapses the result set to a single document per group before it forwards the result set to the rest of the search components.

So all downstream components (faceting, highlighting, etc...) will work with the collapsed result set.

Parameter-Liste

collapseFunction

Rückgabewerte

Returns the current SolrQuery object

Beispiele

Beispiel #1 SolrQuery::collapse() example

<?php

include "bootstrap.php";

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
        'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$collapseFunction = new SolrCollapseFunction('manu_id_s');

$collapseFunction
->setSize(2)
->setNullPolicy(SolrCollapseFunction::NULLPOLICY_IGNORE);

$query
->collapse($collapseFunction)
->setRows(4);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [q] => *:*
                    [indent] => on
                    [fq] => {!collapse field=manu_id_s size=2 nullPolicy=ignore}
                    [rows] => 4
                    [version] => 2.2
                    [wt] => xml
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 14
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SP2514N
                            [name] => Array
                                (
                                    [0] => Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133
                                )

                            [manu] => Array
                                (
                                    [0] => Samsung Electronics Co. Ltd.
                                )

                            [manu_id_s] => samsung
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => 7200RPM, 8MB cache, IDE Ultra ATA-133
                                    [1] => NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor
                                )

                            [price] => Array
                                (
                                    [0] => 92
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [store] => Array
                                (
                                    [0] => 35.0752,-97.032
                                )

                            [_version_] => 1510294336412057600
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                    [2] => SolrObject Object
                        (
                            [id] => F8V7067-APL-KIT
                            [name] => Array
                                (
                                    [0] => Belkin Mobile Power Cord for iPod w/ Dock
                                )

                            [manu] => Array
                                (
                                    [0] => Belkin
                                )

                            [manu_id_s] => belkin
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => connector
                                )

                            [features] => Array
                                (
                                    [0] => car power adapter, white
                                )

                            [weight] => Array
                                (
                                    [0] => 4
                                )

                            [price] => Array
                                (
                                    [0] => 19.95
                                )

                            [popularity] => Array
                                (
                                    [0] => 1
                                )

                            [inStock] => Array
                                (
                                    [0] =>
                                )

                            [store] => Array
                                (
                                    [0] => 45.18014,-93.87741
                                )

                            [manufacturedate_dt] => 2005-08-01T16:30:25Z
                            [_version_] => 1510294336458194944
                        )

                    [3] => SolrObject Object
                        (
                            [id] => MA147LL/A
                            [name] => Array
                                (
                                    [0] => Apple 60 GB iPod with Video Playback Black
                                )

                            [manu] => Array
                                (
                                    [0] => Apple Computer Inc.
                                )

                            [manu_id_s] => apple
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => music
                                )

                            [features] => Array
                                (
                                    [0] => iTunes, Podcasts, Audiobooks
                                    [1] => Stores up to 15,000 songs, 25,000 photos, or 150 hours of video
                                    [2] => 2.5-inch, 320x240 color TFT LCD display with LED backlight
                                    [3] => Up to 20 hours of battery life
                                    [4] => Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video
                                    [5] => Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication
                                )

                            [includes] => Array
                                (
                                    [0] => earbud headphones, USB cable
                                )

                            [weight] => Array
                                (
                                    [0] => 5.5
                                )

                            [price] => Array
                                (
                                    [0] => 399
                                )

                            [popularity] => Array
                                (
                                    [0] => 10
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 37.7752,-100.0232
                                )

                            [manufacturedate_dt] => 2005-10-12T08:00:00Z
                            [_version_] => 1510294336562003968
                        )

                )

        )

)


Constructor

  • « SolrQuery::collapse
  • SolrQuery::__destruct »
  • PHP Manual
  • SolrQuery
  • Constructor

SolrQuery::__construct

(PECL solr >= 0.9.2)

SolrQuery::__construct — Constructor

Beschreibung

public SolrQuery::__construct ( string $q = ? )

Constructor.

Parameter-Liste

q

Optional search query

Rückgabewerte

None

Fehler/Exceptions

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Changelog

Version | Beschreibung
PECL solr 2.0.0 | If q was invalid, then a SolrIllegalArgumentException is now thrown. Previously an error was emitted.


Destructor

  • « SolrQuery::__construct
  • SolrQuery::getExpand »
  • PHP Manual
  • SolrQuery
  • Destructor

SolrQuery::__destruct

(PECL solr >= 0.9.2)

SolrQuery::__destruct — Destructor

Beschreibung

public SolrQuery::__destruct ( ) : void

Destructor

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

None.


Returns true if group expanding is enabled

  • « SolrQuery::__destruct
  • SolrQuery::getExpandFilterQueries »
  • PHP Manual
  • SolrQuery
  • Returns true if group expanding is enabled

SolrQuery::getExpand

(PECL solr >= 2.2.0)

SolrQuery::getExpand — Returns true if group expanding is enabled

Beschreibung

public SolrQuery::getExpand ( ) : bool

Returns true if group expanding is enabled


Returns the expand filter queries

  • « SolrQuery::getExpand
  • SolrQuery::getExpandQuery »
  • PHP Manual
  • SolrQuery
  • Returns the expand filter queries

SolrQuery::getExpandFilterQueries

(PECL solr >= 2.2.0)

SolrQuery::getExpandFilterQueries — Returns the expand filter queries

Beschreibung

public SolrQuery::getExpandFilterQueries ( ) : array

Returns the expand filter queries


Returns the expand query expand.q parameter

  • « SolrQuery::getExpandFilterQueries
  • SolrQuery::getExpandRows »
  • PHP Manual
  • SolrQuery
  • Returns the expand query expand.q parameter

SolrQuery::getExpandQuery

(PECL solr >= 2.2.0)

SolrQuery::getExpandQuery — Returns the expand query expand.q parameter

Beschreibung

public SolrQuery::getExpandQuery ( ) : array

Returns the expand query expand.q parameter


Returns The number of rows to display in each group (expand.rows)

  • « SolrQuery::getExpandQuery
  • SolrQuery::getExpandSortFields »
  • PHP Manual
  • SolrQuery
  • Returns The number of rows to display in each group (expand.rows)

SolrQuery::getExpandRows

(PECL solr >= 2.2.0)

SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)

Beschreibung

public SolrQuery::getExpandRows ( ) : int

Returns The number of rows to display in each group (expand.rows)


Returns an array of fields

  • « SolrQuery::getExpandRows
  • SolrQuery::getFacet »
  • PHP Manual
  • SolrQuery
  • Returns an array of fields

SolrQuery::getExpandSortFields

(PECL solr >= 2.2.0)

SolrQuery::getExpandSortFields — Returns an array of fields

Beschreibung

public SolrQuery::getExpandSortFields ( ) : array

Returns an array of fields


Returns the value of the facet parameter

  • « SolrQuery::getExpandSortFields
  • SolrQuery::getFacetDateEnd »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet parameter

SolrQuery::getFacet

(PECL solr >= 0.9.2)

SolrQuery::getFacet — Returns the value of the facet parameter

Beschreibung

public SolrQuery::getFacet ( ) : bool

Returns the value of the facet parameter.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a boolean on success and null if not set


Returns the value for the facet.date.end parameter

  • « SolrQuery::getFacet
  • SolrQuery::getFacetDateFields »
  • PHP Manual
  • SolrQuery
  • Returns the value for the facet.date.end parameter

SolrQuery::getFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateEnd — Returns the value for the facet.date.end parameter

Beschreibung

public SolrQuery::getFacetDateEnd ( string $field_override = ? ) : string

Returns the value for the facet.date.end parameter. This method accepts an optional field override

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a string on success and null if not set


Returns all the facet.date fields

  • « SolrQuery::getFacetDateEnd
  • SolrQuery::getFacetDateGap »
  • PHP Manual
  • SolrQuery
  • Returns all the facet.date fields

SolrQuery::getFacetDateFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateFields — Returns all the facet.date fields

Beschreibung

public SolrQuery::getFacetDateFields ( ) : array

Returns all the facet.date fields

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns all the facet.date fields as an array or null if none was set


Returns the value of the facet.date.gap parameter

  • « SolrQuery::getFacetDateFields
  • SolrQuery::getFacetDateHardEnd »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet.date.gap parameter

SolrQuery::getFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateGap — Returns the value of the facet.date.gap parameter

Beschreibung

public SolrQuery::getFacetDateGap ( string $field_override = ? ) : string

Returns the value of the facet.date.gap parameter. It accepts an optional field override

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a string on success and null if not set


Returns the value of the facet.date.hardend parameter

  • « SolrQuery::getFacetDateGap
  • SolrQuery::getFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet.date.hardend parameter

SolrQuery::getFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateHardEnd — Returns the value of the facet.date.hardend parameter

Beschreibung

public SolrQuery::getFacetDateHardEnd ( string $field_override = ? ) : string

Returns the value of the facet.date.hardend parameter. Accepts an optional field override

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a string on success and null if not set


Returns the value for the facet.date.other parameter

  • « SolrQuery::getFacetDateHardEnd
  • SolrQuery::getFacetDateStart »
  • PHP Manual
  • SolrQuery
  • Returns the value for the facet.date.other parameter

SolrQuery::getFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateOther — Returns the value for the facet.date.other parameter

Beschreibung

public SolrQuery::getFacetDateOther ( string $field_override = ? ) : array

Returns the value for the facet.date.other parameter. This method accepts an optional field override.

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns an Array on success and null if not set.


Returns the lower bound for the first date range for all date faceting on this field

  • « SolrQuery::getFacetDateOther
  • SolrQuery::getFacetFields »
  • PHP Manual
  • SolrQuery
  • Returns the lower bound for the first date range for all date faceting on this field

SolrQuery::getFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateStart — Returns the lower bound for the first date range for all date faceting on this field

Beschreibung

public SolrQuery::getFacetDateStart ( string $field_override = ? ) : string

Returns the lower bound for the first date range for all date faceting on this field. Accepts an optional field override

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a string on success and null if not set


Returns all the facet fields

  • « SolrQuery::getFacetDateStart
  • SolrQuery::getFacetLimit »
  • PHP Manual
  • SolrQuery
  • Returns all the facet fields

SolrQuery::getFacetFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetFields — Returns all the facet fields

Beschreibung

public SolrQuery::getFacetFields ( ) : array

Returns all the facet fields

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array of all the fields and null if none was set


Returns the maximum number of constraint counts that should be returned for the facet fields

  • « SolrQuery::getFacetFields
  • SolrQuery::getFacetMethod »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of constraint counts that should be returned for the facet fields

SolrQuery::getFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::getFacetLimit — Returns the maximum number of constraint counts that should be returned for the facet fields

Beschreibung

public SolrQuery::getFacetLimit ( string $field_override = ? ) : int

Returns the maximum number of constraint counts that should be returned for the facet fields. This method accepts an optional field override

Parameter-Liste

field_override

The name of the field to override for

Rückgabewerte

Returns an integer on success and null if not set


Returns the value of the facet.method parameter

  • « SolrQuery::getFacetLimit
  • SolrQuery::getFacetMinCount »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet.method parameter

SolrQuery::getFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::getFacetMethod — Returns the value of the facet.method parameter

Beschreibung

public SolrQuery::getFacetMethod ( string $field_override = ? ) : string

Returns the value of the facet.method parameter. This accepts an optional field override.

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a string on success and null if not set


Returns the minimum counts for facet fields should be included in the response

  • « SolrQuery::getFacetMethod
  • SolrQuery::getFacetMissing »
  • PHP Manual
  • SolrQuery
  • Returns the minimum counts for facet fields should be included in the response

SolrQuery::getFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::getFacetMinCount — Returns the minimum counts for facet fields should be included in the response

Beschreibung

public SolrQuery::getFacetMinCount ( string $field_override = ? ) : int

Returns the minimum counts for facet fields should be included in the response. It accepts an optional field override

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns an integer on success and null if not set


Returns the current state of the facet.missing parameter

  • « SolrQuery::getFacetMinCount
  • SolrQuery::getFacetOffset »
  • PHP Manual
  • SolrQuery
  • Returns the current state of the facet.missing parameter

SolrQuery::getFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::getFacetMissing — Returns the current state of the facet.missing parameter

Beschreibung

public SolrQuery::getFacetMissing ( string $field_override = ? ) : bool

Returns the current state of the facet.missing parameter. This accepts an optional field override

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a boolean on success and null if not set


Returns an offset into the list of constraints to be used for pagination

  • « SolrQuery::getFacetMissing
  • SolrQuery::getFacetPrefix »
  • PHP Manual
  • SolrQuery
  • Returns an offset into the list of constraints to be used for pagination

SolrQuery::getFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::getFacetOffset — Returns an offset into the list of constraints to be used for pagination

Beschreibung

public SolrQuery::getFacetOffset ( string $field_override = ? ) : int

Returns an offset into the list of constraints to be used for pagination. Accepts an optional field override

Parameter-Liste

field_override

The name of the field to override for.

Rückgabewerte

Returns an integer on success and null if not set


Returns the facet prefix

  • « SolrQuery::getFacetOffset
  • SolrQuery::getFacetQueries »
  • PHP Manual
  • SolrQuery
  • Returns the facet prefix

SolrQuery::getFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::getFacetPrefix — Returns the facet prefix

Beschreibung

public SolrQuery::getFacetPrefix ( string $field_override = ? ) : string

Returns the facet prefix

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a string on success and null if not set.


Returns all the facet queries

  • « SolrQuery::getFacetPrefix
  • SolrQuery::getFacetSort »
  • PHP Manual
  • SolrQuery
  • Returns all the facet queries

SolrQuery::getFacetQueries

(PECL solr >= 0.9.2)

SolrQuery::getFacetQueries — Returns all the facet queries

Beschreibung

public SolrQuery::getFacetQueries ( ) : array

Returns all the facet queries

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array on success and null if not set.


Returns the facet sort type

  • « SolrQuery::getFacetQueries
  • SolrQuery::getFields »
  • PHP Manual
  • SolrQuery
  • Returns the facet sort type

SolrQuery::getFacetSort

(PECL solr >= 0.9.2)

SolrQuery::getFacetSort — Returns the facet sort type

Beschreibung

public SolrQuery::getFacetSort ( string $field_override = ? ) : int

Returns an integer (SolrQuery::FACET_SORT_INDEX or SolrQuery::FACET_SORT_COUNT)

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns an integer (SolrQuery::FACET_SORT_INDEX or SolrQuery::FACET_SORT_COUNT) on success or null if not set.


Returns the list of fields that will be returned in the response

  • « SolrQuery::getFacetSort
  • SolrQuery::getFilterQueries »
  • PHP Manual
  • SolrQuery
  • Returns the list of fields that will be returned in the response

SolrQuery::getFields

(PECL solr >= 0.9.2)

SolrQuery::getFields — Returns the list of fields that will be returned in the response

Beschreibung

public SolrQuery::getFields ( ) : array

Returns the list of fields that will be returned in the response

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array on success and null if not set.


Returns an array of filter queries

  • « SolrQuery::getFields
  • SolrQuery::getGroup »
  • PHP Manual
  • SolrQuery
  • Returns an array of filter queries

SolrQuery::getFilterQueries

(PECL solr >= 0.9.2)

SolrQuery::getFilterQueries — Returns an array of filter queries

Beschreibung

public SolrQuery::getFilterQueries ( ) : array

Returns an array of filter queries. These are queries that can be used to restrict the super set of documents that can be returned, without influencing score

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array on success and null if not set.


Returns true if grouping is enabled

  • « SolrQuery::getFilterQueries
  • SolrQuery::getGroupCachePercent »
  • PHP Manual
  • SolrQuery
  • Returns true if grouping is enabled

SolrQuery::getGroup

(PECL solr >= 2.2.0)

SolrQuery::getGroup — Returns true if grouping is enabled

Beschreibung

public SolrQuery::getGroup ( ) : bool

Returns true if grouping is enabled

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)


Returns group cache percent value

  • « SolrQuery::getGroup
  • SolrQuery::getGroupFacet »
  • PHP Manual
  • SolrQuery
  • Returns group cache percent value

SolrQuery::getGroupCachePercent

(PECL solr >= 2.2.0)

SolrQuery::getGroupCachePercent — Returns group cache percent value

Beschreibung

public SolrQuery::getGroupCachePercent ( ) : int

Returns group cache percent value

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Returns the group.facet parameter value

  • « SolrQuery::getGroupCachePercent
  • SolrQuery::getGroupFields »
  • PHP Manual
  • SolrQuery
  • Returns the group.facet parameter value

SolrQuery::getGroupFacet

(PECL solr >= 2.2.0)

SolrQuery::getGroupFacet — Returns the group.facet parameter value

Beschreibung

public SolrQuery::getGroupFacet ( ) : bool

Returns the group.facet parameter value

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrQuery::setGroupFacet() - Sets group.facet parameter


Returns group fields (group.field parameter values)

  • « SolrQuery::getGroupFacet
  • SolrQuery::getGroupFormat »
  • PHP Manual
  • SolrQuery
  • Returns group fields (group.field parameter values)

SolrQuery::getGroupFields

(PECL solr >= 2.2.0)

SolrQuery::getGroupFields — Returns group fields (group.field parameter values)

Beschreibung

public SolrQuery::getGroupFields ( ) : array

Returns group fields (group.field parameter values)

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrQuery::addGroupField() - Add a field to be used to group results


Returns the group.format value

  • « SolrQuery::getGroupFields
  • SolrQuery::getGroupFunctions »
  • PHP Manual
  • SolrQuery
  • Returns the group.format value

SolrQuery::getGroupFormat

(PECL solr >= 2.2.0)

SolrQuery::getGroupFormat — Returns the group.format value

Beschreibung

public SolrQuery::getGroupFormat ( ) : string

Returns the group.format value

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)


Returns group functions (group.func parameter values)

  • « SolrQuery::getGroupFormat
  • SolrQuery::getGroupLimit »
  • PHP Manual
  • SolrQuery
  • Returns group functions (group.func parameter values)

SolrQuery::getGroupFunctions

(PECL solr >= 2.2.0)

SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)

Beschreibung

public SolrQuery::getGroupFunctions ( ) : array

Returns group functions (group.func parameter values)

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)


Returns the group.limit value

  • « SolrQuery::getGroupFunctions
  • SolrQuery::getGroupMain »
  • PHP Manual
  • SolrQuery
  • Returns the group.limit value

SolrQuery::getGroupLimit

(PECL solr >= 2.2.0)

SolrQuery::getGroupLimit — Returns the group.limit value

Beschreibung

public SolrQuery::getGroupLimit ( ) : int

Returns the group.limit value

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1


Returns the group.main value

  • « SolrQuery::getGroupLimit
  • SolrQuery::getGroupNGroups »
  • PHP Manual
  • SolrQuery
  • Returns the group.main value

SolrQuery::getGroupMain

(PECL solr >= 2.2.0)

SolrQuery::getGroupMain — Returns the group.main value

Beschreibung

public SolrQuery::getGroupMain ( ) : bool

Returns the group.main value

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple


Returns the group.ngroups value

  • « SolrQuery::getGroupMain
  • SolrQuery::getGroupOffset »
  • PHP Manual
  • SolrQuery
  • Returns the group.ngroups value

SolrQuery::getGroupNGroups

(PECL solr >= 2.2.0)

SolrQuery::getGroupNGroups — Returns the group.ngroups value

Beschreibung

public SolrQuery::getGroupNGroups ( ) : bool

Returns the group.ngroups value

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results


Returns the group.offset value

  • « SolrQuery::getGroupNGroups
  • SolrQuery::getGroupQueries »
  • PHP Manual
  • SolrQuery
  • Returns the group.offset value

SolrQuery::getGroupOffset

(PECL solr >= 2.2.0)

SolrQuery::getGroupOffset — Returns the group.offset value

Beschreibung

public SolrQuery::getGroupOffset ( ) : int

Returns the group.offset value

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrQuery::setGroupOffset() - Sets the group.offset parameter


Returns all the group.query parameter values

  • « SolrQuery::getGroupOffset
  • SolrQuery::getGroupSortFields »
  • PHP Manual
  • SolrQuery
  • Returns all the group.query parameter values

SolrQuery::getGroupQueries

(PECL solr >= 2.2.0)

SolrQuery::getGroupQueries — Returns all the group.query parameter values

Beschreibung

public SolrQuery::getGroupQueries ( ) : array

Returns all the group.query parameter values

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

array

Siehe auch

  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query


Returns the group.sort value

  • « SolrQuery::getGroupQueries
  • SolrQuery::getGroupTruncate »
  • PHP Manual
  • SolrQuery
  • Returns the group.sort value

SolrQuery::getGroupSortFields

(PECL solr >= 2.2.0)

SolrQuery::getGroupSortFields — Returns the group.sort value

Beschreibung

public SolrQuery::getGroupSortFields ( ) : array

Returns the group.sort value

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)


Returns the group.truncate value

  • « SolrQuery::getGroupSortFields
  • SolrQuery::getHighlight »
  • PHP Manual
  • SolrQuery
  • Returns the group.truncate value

SolrQuery::getGroupTruncate

(PECL solr >= 2.2.0)

SolrQuery::getGroupTruncate — Returns the group.truncate value

Beschreibung

public SolrQuery::getGroupTruncate ( ) : bool

Returns the group.truncate value

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query


Returns the state of the hl parameter

  • « SolrQuery::getGroupTruncate
  • SolrQuery::getHighlightAlternateField »
  • PHP Manual
  • SolrQuery
  • Returns the state of the hl parameter

SolrQuery::getHighlight

(PECL solr >= 0.9.2)

SolrQuery::getHighlight — Returns the state of the hl parameter

Beschreibung

public SolrQuery::getHighlight ( ) : bool

Returns a boolean indicating whether or not to enable highlighted snippets to be generated in the query response.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a boolean on success and null if not set.


Returns the highlight field to use as backup or default

  • « SolrQuery::getHighlight
  • SolrQuery::getHighlightFields »
  • PHP Manual
  • SolrQuery
  • Returns the highlight field to use as backup or default

SolrQuery::getHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::getHighlightAlternateField — Returns the highlight field to use as backup or default

Beschreibung

public SolrQuery::getHighlightAlternateField ( string $field_override = ? ) : string

Returns the highlight field to use as backup or default. It accepts an optional override.

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a string on success and null if not set.


Returns all the fields that Solr should generate highlighted snippets for

  • « SolrQuery::getHighlightAlternateField
  • SolrQuery::getHighlightFormatter »
  • PHP Manual
  • SolrQuery
  • Returns all the fields that Solr should generate highlighted snippets for

SolrQuery::getHighlightFields

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFields — Returns all the fields that Solr should generate highlighted snippets for

Beschreibung

public SolrQuery::getHighlightFields ( ) : array

Returns all the fields that Solr should generate highlighted snippets for

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array on success and null if not set.


Returns the formatter for the highlighted output

  • « SolrQuery::getHighlightFields
  • SolrQuery::getHighlightFragmenter »
  • PHP Manual
  • SolrQuery
  • Returns the formatter for the highlighted output

SolrQuery::getHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFormatter — Returns the formatter for the highlighted output

Beschreibung

public SolrQuery::getHighlightFormatter ( string $field_override = ? ) : string

Returns the formatter for the highlighted output

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a string on success and null if not set.


Returns the text snippet generator for highlighted text

  • « SolrQuery::getHighlightFormatter
  • SolrQuery::getHighlightFragsize »
  • PHP Manual
  • SolrQuery
  • Returns the text snippet generator for highlighted text

SolrQuery::getHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragmenter — Returns the text snippet generator for highlighted text

Beschreibung

public SolrQuery::getHighlightFragmenter ( string $field_override = ? ) : string

Returns the text snippet generator for highlighted text. Accepts an optional field override.

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a string on success and null if not set.


Returns the number of characters of fragments to consider for highlighting

  • « SolrQuery::getHighlightFragmenter
  • SolrQuery::getHighlightHighlightMultiTerm »
  • PHP Manual
  • SolrQuery
  • Returns the number of characters of fragments to consider for highlighting

SolrQuery::getHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragsize — Returns the number of characters of fragments to consider for highlighting

Beschreibung

public SolrQuery::getHighlightFragsize ( string $field_override = ? ) : int

Returns the number of characters of fragments to consider for highlighting. Zero implies no fragmenting. The entire field should be used.

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns an integer on success or null if not set.


Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

  • « SolrQuery::getHighlightFragsize
  • SolrQuery::getHighlightMaxAlternateFieldLength »
  • PHP Manual
  • SolrQuery
  • Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

SolrQuery::getHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::getHighlightHighlightMultiTerm — Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

Beschreibung

public SolrQuery::getHighlightHighlightMultiTerm ( ) : bool

Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a boolean on success and null if not set.


Returns the maximum number of characters of the field to return

  • « SolrQuery::getHighlightHighlightMultiTerm
  • SolrQuery::getHighlightMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of characters of the field to return

SolrQuery::getHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAlternateFieldLength — Returns the maximum number of characters of the field to return

Beschreibung

public SolrQuery::getHighlightMaxAlternateFieldLength ( string $field_override = ? ) : int

Returns the maximum number of characters of the field to return

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns an integer on success and null if not set.


Returns the maximum number of characters into a document to look for suitable snippets

  • « SolrQuery::getHighlightMaxAlternateFieldLength
  • SolrQuery::getHighlightMergeContiguous »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of characters into a document to look for suitable snippets

SolrQuery::getHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAnalyzedChars — Returns the maximum number of characters into a document to look for suitable snippets

Beschreibung

public SolrQuery::getHighlightMaxAnalyzedChars ( ) : int

Returns the maximum number of characters into a document to look for suitable snippets

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns whether or not the collapse contiguous fragments into a single fragment

  • « SolrQuery::getHighlightMaxAnalyzedChars
  • SolrQuery::getHighlightRegexMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Returns whether or not the collapse contiguous fragments into a single fragment

SolrQuery::getHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMergeContiguous — Returns whether or not the collapse contiguous fragments into a single fragment

Beschreibung

public SolrQuery::getHighlightMergeContiguous ( string $field_override = ? ) : bool

Returns whether or not the collapse contiguous fragments into a single fragment. Accepts an optional field override.

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a boolean on success and null if not set.


Returns the maximum number of characters from a field when using the regex fragmenter

  • « SolrQuery::getHighlightMergeContiguous
  • SolrQuery::getHighlightRegexPattern »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of characters from a field when using the regex fragmenter

SolrQuery::getHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexMaxAnalyzedChars — Returns the maximum number of characters from a field when using the regex fragmenter

Beschreibung

public SolrQuery::getHighlightRegexMaxAnalyzedChars ( ) : int

Returns the maximum number of characters from a field when using the regex fragmenter

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns the regular expression for fragmenting

  • « SolrQuery::getHighlightRegexMaxAnalyzedChars
  • SolrQuery::getHighlightRegexSlop »
  • PHP Manual
  • SolrQuery
  • Returns the regular expression for fragmenting

SolrQuery::getHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexPattern — Returns the regular expression for fragmenting

Beschreibung

public SolrQuery::getHighlightRegexPattern ( ) : string

Returns the regular expression used for fragmenting

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string on success and null if not set.


Returns the deviation factor from the ideal fragment size

  • « SolrQuery::getHighlightRegexPattern
  • SolrQuery::getHighlightRequireFieldMatch »
  • PHP Manual
  • SolrQuery
  • Returns the deviation factor from the ideal fragment size

SolrQuery::getHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexSlop — Returns the deviation factor from the ideal fragment size

Beschreibung

public SolrQuery::getHighlightRegexSlop ( ) : float

Returns the factor by which the regex fragmenter can deviate from the ideal fragment size to accomodate the regular expression

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a double on success and null if not set.


Returns if a field will only be highlighted if the query matched in this particular field

  • « SolrQuery::getHighlightRegexSlop
  • SolrQuery::getHighlightSimplePost »
  • PHP Manual
  • SolrQuery
  • Returns if a field will only be highlighted if the query matched in this particular field

SolrQuery::getHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRequireFieldMatch — Returns if a field will only be highlighted if the query matched in this particular field

Beschreibung

public SolrQuery::getHighlightRequireFieldMatch ( ) : bool

Returns if a field will only be highlighted if the query matched in this particular field.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a boolean on success and null if not set.


Returns the text which appears after a highlighted term

  • « SolrQuery::getHighlightRequireFieldMatch
  • SolrQuery::getHighlightSimplePre »
  • PHP Manual
  • SolrQuery
  • Returns the text which appears after a highlighted term

SolrQuery::getHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePost — Returns the text which appears after a highlighted term

Beschreibung

public SolrQuery::getHighlightSimplePost ( string $field_override = ? ) : string

Returns the text which appears after a highlighted term. Accepts an optional field override

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a string on success and null if not set.


Returns the text which appears before a highlighted term

  • « SolrQuery::getHighlightSimplePost
  • SolrQuery::getHighlightSnippets »
  • PHP Manual
  • SolrQuery
  • Returns the text which appears before a highlighted term

SolrQuery::getHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePre — Returns the text which appears before a highlighted term

Beschreibung

public SolrQuery::getHighlightSimplePre ( string $field_override = ? ) : string

Returns the text which appears before a highlighted term. Accepts an optional field override

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns a string on success and null if not set.


Returns the maximum number of highlighted snippets to generate per field

  • « SolrQuery::getHighlightSimplePre
  • SolrQuery::getHighlightUsePhraseHighlighter »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of highlighted snippets to generate per field

SolrQuery::getHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSnippets — Returns the maximum number of highlighted snippets to generate per field

Beschreibung

public SolrQuery::getHighlightSnippets ( string $field_override = ? ) : int

Returns the maximum number of highlighted snippets to generate per field. Accepts an optional field override

Parameter-Liste

field_override

The name of the field

Rückgabewerte

Returns an integer on success and null if not set.


Returns the state of the hl.usePhraseHighlighter parameter

  • « SolrQuery::getHighlightSnippets
  • SolrQuery::getMlt »
  • PHP Manual
  • SolrQuery
  • Returns the state of the hl.usePhraseHighlighter parameter

SolrQuery::getHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightUsePhraseHighlighter — Returns the state of the hl.usePhraseHighlighter parameter

Beschreibung

public SolrQuery::getHighlightUsePhraseHighlighter ( ) : bool

Returns whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a boolean on success and null if not set.


Returns whether or not MoreLikeThis results should be enabled

  • « SolrQuery::getHighlightUsePhraseHighlighter
  • SolrQuery::getMltBoost »
  • PHP Manual
  • SolrQuery
  • Returns whether or not MoreLikeThis results should be enabled

SolrQuery::getMlt

(PECL solr >= 0.9.2)

SolrQuery::getMlt — Returns whether or not MoreLikeThis results should be enabled

Beschreibung

public SolrQuery::getMlt ( ) : bool

Returns whether or not MoreLikeThis results should be enabled

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a boolean on success and null if not set.


Returns whether or not the query will be boosted by the interesting term relevance

  • « SolrQuery::getMlt
  • SolrQuery::getMltCount »
  • PHP Manual
  • SolrQuery
  • Returns whether or not the query will be boosted by the interesting term relevance

SolrQuery::getMltBoost

(PECL solr >= 0.9.2)

SolrQuery::getMltBoost — Returns whether or not the query will be boosted by the interesting term relevance

Beschreibung

public SolrQuery::getMltBoost ( ) : bool

Returns whether or not the query will be boosted by the interesting term relevance

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a boolean on success and null if not set.


Returns the number of similar documents to return for each result

  • « SolrQuery::getMltBoost
  • SolrQuery::getMltFields »
  • PHP Manual
  • SolrQuery
  • Returns the number of similar documents to return for each result

SolrQuery::getMltCount

(PECL solr >= 0.9.2)

SolrQuery::getMltCount — Returns the number of similar documents to return for each result

Beschreibung

public SolrQuery::getMltCount ( ) : int

Returns the number of similar documents to return for each result

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns all the fields to use for similarity

  • « SolrQuery::getMltCount
  • SolrQuery::getMltMaxNumQueryTerms »
  • PHP Manual
  • SolrQuery
  • Returns all the fields to use for similarity

SolrQuery::getMltFields

(PECL solr >= 0.9.2)

SolrQuery::getMltFields — Returns all the fields to use for similarity

Beschreibung

public SolrQuery::getMltFields ( ) : array

Returns all the fields to use for similarity

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array on success and null if not set.


Returns the maximum number of query terms that will be included in any generated query

  • « SolrQuery::getMltFields
  • SolrQuery::getMltMaxNumTokens »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of query terms that will be included in any generated query

SolrQuery::getMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumQueryTerms — Returns the maximum number of query terms that will be included in any generated query

Beschreibung

public SolrQuery::getMltMaxNumQueryTerms ( ) : int

Returns the maximum number of query terms that will be included in any generated query

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support

  • « SolrQuery::getMltMaxNumQueryTerms
  • SolrQuery::getMltMaxWordLength »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support

SolrQuery::getMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumTokens — Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support

Beschreibung

public SolrQuery::getMltMaxNumTokens ( ) : int

Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns the maximum word length above which words will be ignored

  • « SolrQuery::getMltMaxNumTokens
  • SolrQuery::getMltMinDocFrequency »
  • PHP Manual
  • SolrQuery
  • Returns the maximum word length above which words will be ignored

SolrQuery::getMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxWordLength — Returns the maximum word length above which words will be ignored

Beschreibung

public SolrQuery::getMltMaxWordLength ( ) : int

Returns the maximum word length above which words will be ignored

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

  • « SolrQuery::getMltMaxWordLength
  • SolrQuery::getMltMinTermFrequency »
  • PHP Manual
  • SolrQuery
  • Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

SolrQuery::getMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinDocFrequency — Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

Beschreibung

public SolrQuery::getMltMinDocFrequency ( ) : int

Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns the frequency below which terms will be ignored in the source document

  • « SolrQuery::getMltMinDocFrequency
  • SolrQuery::getMltMinWordLength »
  • PHP Manual
  • SolrQuery
  • Returns the frequency below which terms will be ignored in the source document

SolrQuery::getMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinTermFrequency — Returns the frequency below which terms will be ignored in the source document

Beschreibung

public SolrQuery::getMltMinTermFrequency ( ) : int

Returns the frequency below which terms will be ignored in the source document

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns the minimum word length below which words will be ignored

  • « SolrQuery::getMltMinTermFrequency
  • SolrQuery::getMltQueryFields »
  • PHP Manual
  • SolrQuery
  • Returns the minimum word length below which words will be ignored

SolrQuery::getMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMinWordLength — Returns the minimum word length below which words will be ignored

Beschreibung

public SolrQuery::getMltMinWordLength ( ) : int

Returns the minimum word length below which words will be ignored

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns the query fields and their boosts

  • « SolrQuery::getMltMinWordLength
  • SolrQuery::getQuery »
  • PHP Manual
  • SolrQuery
  • Returns the query fields and their boosts

SolrQuery::getMltQueryFields

(PECL solr >= 0.9.2)

SolrQuery::getMltQueryFields — Returns the query fields and their boosts

Beschreibung

public SolrQuery::getMltQueryFields ( ) : array

Returns the query fields and their boosts

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array on success and null if not set.


Returns the main query

  • « SolrQuery::getMltQueryFields
  • SolrQuery::getRows »
  • PHP Manual
  • SolrQuery
  • Returns the main query

SolrQuery::getQuery

(PECL solr >= 0.9.2)

SolrQuery::getQuery — Returns the main query

Beschreibung

public SolrQuery::getQuery ( ) : string

Returns the main search query

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string on success and null if not set.


Returns the maximum number of documents

  • « SolrQuery::getQuery
  • SolrQuery::getSortFields »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of documents

SolrQuery::getRows

(PECL solr >= 0.9.2)

SolrQuery::getRows — Returns the maximum number of documents

Beschreibung

public SolrQuery::getRows ( ) : int

Returns the maximum number of documents from the complete result set to return to the client for every request

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns all the sort fields

  • « SolrQuery::getRows
  • SolrQuery::getStart »
  • PHP Manual
  • SolrQuery
  • Returns all the sort fields

SolrQuery::getSortFields

(PECL solr >= 0.9.2)

SolrQuery::getSortFields — Returns all the sort fields

Beschreibung

public SolrQuery::getSortFields ( ) : array

Returns all the sort fields

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array on success and null if none of the parameters was set.


Returns the offset in the complete result set

  • « SolrQuery::getSortFields
  • SolrQuery::getStats »
  • PHP Manual
  • SolrQuery
  • Returns the offset in the complete result set

SolrQuery::getStart

(PECL solr >= 0.9.2)

SolrQuery::getStart — Returns the offset in the complete result set

Beschreibung

public SolrQuery::getStart ( ) : int

Returns the offset in the complete result set for the queries where the set of returned documents should begin.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns whether or not stats is enabled

  • « SolrQuery::getStart
  • SolrQuery::getStatsFacets »
  • PHP Manual
  • SolrQuery
  • Returns whether or not stats is enabled

SolrQuery::getStats

(PECL solr >= 0.9.2)

SolrQuery::getStats — Returns whether or not stats is enabled

Beschreibung

public SolrQuery::getStats ( ) : bool

Returns whether or not stats is enabled

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a boolean on success and null if not set.


Returns all the stats facets that were set

  • « SolrQuery::getStats
  • SolrQuery::getStatsFields »
  • PHP Manual
  • SolrQuery
  • Returns all the stats facets that were set

SolrQuery::getStatsFacets

(PECL solr >= 0.9.2)

SolrQuery::getStatsFacets — Returns all the stats facets that were set

Beschreibung

public SolrQuery::getStatsFacets ( ) : array

Returns all the stats facets that were set

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array on success and null if not set.


Returns all the statistics fields

  • « SolrQuery::getStatsFacets
  • SolrQuery::getTerms »
  • PHP Manual
  • SolrQuery
  • Returns all the statistics fields

SolrQuery::getStatsFields

(PECL solr >= 0.9.2)

SolrQuery::getStatsFields — Returns all the statistics fields

Beschreibung

public SolrQuery::getStatsFields ( ) : array

Returns all the statistics fields

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array on success and null if not set.


Returns whether or not the TermsComponent is enabled

  • « SolrQuery::getStatsFields
  • SolrQuery::getTermsField »
  • PHP Manual
  • SolrQuery
  • Returns whether or not the TermsComponent is enabled

SolrQuery::getTerms

(PECL solr >= 0.9.2)

SolrQuery::getTerms — Returns whether or not the TermsComponent is enabled

Beschreibung

public SolrQuery::getTerms ( ) : bool

Returns whether or not the TermsComponent is enabled

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a boolean on success and null if not set.


Returns the field from which the terms are retrieved

  • « SolrQuery::getTerms
  • SolrQuery::getTermsIncludeLowerBound »
  • PHP Manual
  • SolrQuery
  • Returns the field from which the terms are retrieved

SolrQuery::getTermsField

(PECL solr >= 0.9.2)

SolrQuery::getTermsField — Returns the field from which the terms are retrieved

Beschreibung

public SolrQuery::getTermsField ( ) : string

Returns the field from which the terms are retrieved

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string on success and null if not set.


Returns whether or not to include the lower bound in the result set

  • « SolrQuery::getTermsField
  • SolrQuery::getTermsIncludeUpperBound »
  • PHP Manual
  • SolrQuery
  • Returns whether or not to include the lower bound in the result set

SolrQuery::getTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeLowerBound — Returns whether or not to include the lower bound in the result set

Beschreibung

public SolrQuery::getTermsIncludeLowerBound ( ) : bool

Returns whether or not to include the lower bound in the result set

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a boolean on success and null if not set.


Returns whether or not to include the upper bound term in the result set

  • « SolrQuery::getTermsIncludeLowerBound
  • SolrQuery::getTermsLimit »
  • PHP Manual
  • SolrQuery
  • Returns whether or not to include the upper bound term in the result set

SolrQuery::getTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeUpperBound — Returns whether or not to include the upper bound term in the result set

Beschreibung

public SolrQuery::getTermsIncludeUpperBound ( ) : bool

Returns whether or not to include the upper bound term in the result set

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a boolean on success and null if not set.


Returns the maximum number of terms Solr should return

  • « SolrQuery::getTermsIncludeUpperBound
  • SolrQuery::getTermsLowerBound »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of terms Solr should return

SolrQuery::getTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::getTermsLimit — Returns the maximum number of terms Solr should return

Beschreibung

public SolrQuery::getTermsLimit ( ) : int

Returns the maximum number of terms Solr should return

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns the term to start at

  • « SolrQuery::getTermsLimit
  • SolrQuery::getTermsMaxCount »
  • PHP Manual
  • SolrQuery
  • Returns the term to start at

SolrQuery::getTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsLowerBound — Returns the term to start at

Beschreibung

public SolrQuery::getTermsLowerBound ( ) : string

Returns the term to start at

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string on success and null if not set.


Returns the maximum document frequency

  • « SolrQuery::getTermsLowerBound
  • SolrQuery::getTermsMinCount »
  • PHP Manual
  • SolrQuery
  • Returns the maximum document frequency

SolrQuery::getTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMaxCount — Returns the maximum document frequency

Beschreibung

public SolrQuery::getTermsMaxCount ( ) : int

Returns the maximum document frequency

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns the minimum document frequency to return in order to be included

  • « SolrQuery::getTermsMaxCount
  • SolrQuery::getTermsPrefix »
  • PHP Manual
  • SolrQuery
  • Returns the minimum document frequency to return in order to be included

SolrQuery::getTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMinCount — Returns the minimum document frequency to return in order to be included

Beschreibung

public SolrQuery::getTermsMinCount ( ) : int

Returns the minimum document frequency to return in order to be included

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns the term prefix

  • « SolrQuery::getTermsMinCount
  • SolrQuery::getTermsReturnRaw »
  • PHP Manual
  • SolrQuery
  • Returns the term prefix

SolrQuery::getTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::getTermsPrefix — Returns the term prefix

Beschreibung

public SolrQuery::getTermsPrefix ( ) : string

Returns the prefix to which matching terms must be restricted. This will restrict matches to only terms that start with the prefix

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string on success and null if not set.


Whether or not to return raw characters

  • « SolrQuery::getTermsPrefix
  • SolrQuery::getTermsSort »
  • PHP Manual
  • SolrQuery
  • Whether or not to return raw characters

SolrQuery::getTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::getTermsReturnRaw — Whether or not to return raw characters

Beschreibung

public SolrQuery::getTermsReturnRaw ( ) : bool

Returns a boolean indicating whether or not to return the raw characters of the indexed term, regardless of if it is human readable

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a boolean on success and null if not set.


Returns an integer indicating how terms are sorted

  • « SolrQuery::getTermsReturnRaw
  • SolrQuery::getTermsUpperBound »
  • PHP Manual
  • SolrQuery
  • Returns an integer indicating how terms are sorted

SolrQuery::getTermsSort

(PECL solr >= 0.9.2)

SolrQuery::getTermsSort — Returns an integer indicating how terms are sorted

Beschreibung

public SolrQuery::getTermsSort ( ) : int

SolrQuery::TERMS_SORT_INDEX indicates that the terms are returned by index order. SolrQuery::TERMS_SORT_COUNT implies that the terms are sorted by term frequency (highest count first)

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an integer on success and null if not set.


Returns the term to stop at

  • « SolrQuery::getTermsSort
  • SolrQuery::getTimeAllowed »
  • PHP Manual
  • SolrQuery
  • Returns the term to stop at

SolrQuery::getTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsUpperBound — Returns the term to stop at

Beschreibung

public SolrQuery::getTermsUpperBound ( ) : string

Returns the term to stop at

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string on success and null if not set.


Returns the time in milliseconds allowed for the query to finish

  • « SolrQuery::getTermsUpperBound
  • SolrQuery::removeExpandFilterQuery »
  • PHP Manual
  • SolrQuery
  • Returns the time in milliseconds allowed for the query to finish

SolrQuery::getTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::getTimeAllowed — Returns the time in milliseconds allowed for the query to finish

Beschreibung

public SolrQuery::getTimeAllowed ( ) : int

Returns the time in milliseconds allowed for the query to finish.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns and integer on success and null if it is not set.


Removes an expand filter query

  • « SolrQuery::getTimeAllowed
  • SolrQuery::removeExpandSortField »
  • PHP Manual
  • SolrQuery
  • Removes an expand filter query

SolrQuery::removeExpandFilterQuery

(PECL solr >= 2.2.0)

SolrQuery::removeExpandFilterQuery — Removes an expand filter query

Beschreibung

public SolrQuery::removeExpandFilterQuery ( string $fq ) : SolrQuery

Removes an expand filter query.

Parameter-Liste

fq

Rückgabewerte

SolrQuery

Siehe auch

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group


Removes an expand sort field from the expand.sort parameter

  • « SolrQuery::removeExpandFilterQuery
  • SolrQuery::removeFacetDateField »
  • PHP Manual
  • SolrQuery
  • Removes an expand sort field from the expand.sort parameter

SolrQuery::removeExpandSortField

(PECL solr >= 2.2.0)

SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter

Beschreibung

public SolrQuery::removeExpandSortField ( string $field ) : SolrQuery

Removes an expand sort field from the expand.sort parameter.

Parameter-Liste

field

field name

Rückgabewerte

SolrQuery

Siehe auch

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Removes one of the facet date fields

  • « SolrQuery::removeExpandSortField
  • SolrQuery::removeFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet date fields

SolrQuery::removeFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateField — Removes one of the facet date fields

Beschreibung

public SolrQuery::removeFacetDateField ( string $field ) : SolrQuery

The name of the field

Parameter-Liste

field

The name of the date field to remove

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Removes one of the facet.date.other parameters

  • « SolrQuery::removeFacetDateField
  • SolrQuery::removeFacetField »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet.date.other parameters

SolrQuery::removeFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateOther — Removes one of the facet.date.other parameters

Beschreibung

public SolrQuery::removeFacetDateOther ( string $value , string $field_override = ? ) : SolrQuery

Removes one of the facet.date.other parameters

Parameter-Liste

value

The value

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Removes one of the facet.date parameters

  • « SolrQuery::removeFacetDateOther
  • SolrQuery::removeFacetQuery »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet.date parameters

SolrQuery::removeFacetField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetField — Removes one of the facet.date parameters

Beschreibung

public SolrQuery::removeFacetField ( string $field ) : SolrQuery

Removes one of the facet.date parameters

Parameter-Liste

field

The name of the field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Removes one of the facet.query parameters

  • « SolrQuery::removeFacetField
  • SolrQuery::removeField »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet.query parameters

SolrQuery::removeFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFacetQuery — Removes one of the facet.query parameters

Beschreibung

public SolrQuery::removeFacetQuery ( string $value ) : SolrQuery

Removes one of the facet.query parameters.

Parameter-Liste

value

The value

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Removes a field from the list of fields

  • « SolrQuery::removeFacetQuery
  • SolrQuery::removeFilterQuery »
  • PHP Manual
  • SolrQuery
  • Removes a field from the list of fields

SolrQuery::removeField

(PECL solr >= 0.9.2)

SolrQuery::removeField — Removes a field from the list of fields

Beschreibung

public SolrQuery::removeField ( string $field ) : SolrQuery

Removes a field from the list of fields

Parameter-Liste

field

Name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Removes a filter query

  • « SolrQuery::removeField
  • SolrQuery::removeHighlightField »
  • PHP Manual
  • SolrQuery
  • Removes a filter query

SolrQuery::removeFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFilterQuery — Removes a filter query

Beschreibung

public SolrQuery::removeFilterQuery ( string $fq ) : SolrQuery

Removes a filter query.

Parameter-Liste

fq

The filter query to remove

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Removes one of the fields used for highlighting

  • « SolrQuery::removeFilterQuery
  • SolrQuery::removeMltField »
  • PHP Manual
  • SolrQuery
  • Removes one of the fields used for highlighting

SolrQuery::removeHighlightField

(PECL solr >= 0.9.2)

SolrQuery::removeHighlightField — Removes one of the fields used for highlighting

Beschreibung

public SolrQuery::removeHighlightField ( string $field ) : SolrQuery

Removes one of the fields used for highlighting.

Parameter-Liste

field

The name of the field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Removes one of the moreLikeThis fields

  • « SolrQuery::removeHighlightField
  • SolrQuery::removeMltQueryField »
  • PHP Manual
  • SolrQuery
  • Removes one of the moreLikeThis fields

SolrQuery::removeMltField

(PECL solr >= 0.9.2)

SolrQuery::removeMltField — Removes one of the moreLikeThis fields

Beschreibung

public SolrQuery::removeMltField ( string $field ) : SolrQuery

Removes one of the moreLikeThis fields.

Parameter-Liste

field

Name of the field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Removes one of the moreLikeThis query fields

  • « SolrQuery::removeMltField
  • SolrQuery::removeSortField »
  • PHP Manual
  • SolrQuery
  • Removes one of the moreLikeThis query fields

SolrQuery::removeMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::removeMltQueryField — Removes one of the moreLikeThis query fields

Beschreibung

public SolrQuery::removeMltQueryField ( string $queryField ) : SolrQuery

Removes one of the moreLikeThis query fields.

Parameter-Liste

queryField

The query field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Removes one of the sort fields

  • « SolrQuery::removeMltQueryField
  • SolrQuery::removeStatsFacet »
  • PHP Manual
  • SolrQuery
  • Removes one of the sort fields

SolrQuery::removeSortField

(PECL solr >= 0.9.2)

SolrQuery::removeSortField — Removes one of the sort fields

Beschreibung

public SolrQuery::removeSortField ( string $field ) : SolrQuery

Removes one of the sort fields

Parameter-Liste

field

The name of the field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Removes one of the stats.facet parameters

  • « SolrQuery::removeSortField
  • SolrQuery::removeStatsField »
  • PHP Manual
  • SolrQuery
  • Removes one of the stats.facet parameters

SolrQuery::removeStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::removeStatsFacet — Removes one of the stats.facet parameters

Beschreibung

public SolrQuery::removeStatsFacet ( string $value ) : SolrQuery

Removes one of the stats.facet parameters

Parameter-Liste

value

The value

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Removes one of the stats.field parameters

  • « SolrQuery::removeStatsFacet
  • SolrQuery::setEchoHandler »
  • PHP Manual
  • SolrQuery
  • Removes one of the stats.field parameters

SolrQuery::removeStatsField

(PECL solr >= 0.9.2)

SolrQuery::removeStatsField — Removes one of the stats.field parameters

Beschreibung

public SolrQuery::removeStatsField ( string $field ) : SolrQuery

Removes one of the stats.field parameters

Parameter-Liste

field

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Toggles the echoHandler parameter

  • « SolrQuery::removeStatsField
  • SolrQuery::setEchoParams »
  • PHP Manual
  • SolrQuery
  • Toggles the echoHandler parameter

SolrQuery::setEchoHandler

(PECL solr >= 0.9.2)

SolrQuery::setEchoHandler — Toggles the echoHandler parameter

Beschreibung

public SolrQuery::setEchoHandler ( bool $flag ) : SolrQuery

If set to true, Solr places the name of the handle used in the response to the client for debugging purposes.

Parameter-Liste

flag

true or false

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Determines what kind of parameters to include in the response

  • « SolrQuery::setEchoHandler
  • SolrQuery::setExpand »
  • PHP Manual
  • SolrQuery
  • Determines what kind of parameters to include in the response

SolrQuery::setEchoParams

(PECL solr >= 0.9.2)

SolrQuery::setEchoParams — Determines what kind of parameters to include in the response

Beschreibung

public SolrQuery::setEchoParams ( string $type ) : SolrQuery

Instructs Solr what kinds of Request parameters should be included in the response for debugging purposes, legal values include:

- none - don't include any request parameters for debugging
- explicit - include the parameters explicitly specified by the client in the request
- all - include all parameters involved in this request, either specified explicitly by the client, or implicit because of the request handler configuration.

Parameter-Liste

type

The type of parameters to include

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Enables/Disables the Expand Component

  • « SolrQuery::setEchoParams
  • SolrQuery::setExpandQuery »
  • PHP Manual
  • SolrQuery
  • Enables/Disables the Expand Component

SolrQuery::setExpand

(PECL solr >= 2.2.0)

SolrQuery::setExpand — Enables/Disables the Expand Component

Beschreibung

public SolrQuery::setExpand ( bool $value ) : SolrQuery

Enables/Disables the Expand Component.

Parameter-Liste

value

Bool flag

Rückgabewerte

SolrQuery

Beispiele

Beispiel #1 SolrQuery::setExpand() example

<?php

$query = new SolrQuery('lucene');

$query
    ->setExpand(true)
    ->setExpandRows(50)
    ->setExpandQuery('text:product')
    ->addExpandFilterQuery('manu:apple')
    ->addExpandFilterQuery('inStock:true')
    ->addExpandSortField('score', SolrQuery::ORDER_DESC)
    ->addExpandSortField('title', SolrQuery::ORDER_ASC);

echo $query.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&expand=true&expand.rows=50&expand.q=text:product&expand.fq=manu:apple&expand.fq=inStock:true&expand.sort=score desc,title asc

Siehe auch

  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the expand.q parameter

  • « SolrQuery::setExpand
  • SolrQuery::setExpandRows »
  • PHP Manual
  • SolrQuery
  • Sets the expand.q parameter

SolrQuery::setExpandQuery

(PECL solr >= 2.2.0)

SolrQuery::setExpandQuery — Sets the expand.q parameter

Beschreibung

public SolrQuery::setExpandQuery ( string $q ) : SolrQuery

Sets the expand.q parameter.

Overrides the main q parameter, determines which documents to include in the main group.

Parameter-Liste

q

Rückgabewerte

SolrQuery

Siehe auch

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the number of rows to display in each group (expand.rows). Server Default 5

  • « SolrQuery::setExpandQuery
  • SolrQuery::setExplainOther »
  • PHP Manual
  • SolrQuery
  • Sets the number of rows to display in each group (expand.rows). Server Default 5

SolrQuery::setExpandRows

(PECL solr >= 2.2.0)

SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5

Beschreibung

public SolrQuery::setExpandRows ( int $value ) : SolrQuery

Sets the number of rows to display in each group (expand.rows). Server Default 5

Parameter-Liste

value

Rückgabewerte

SolrQuery

Siehe auch

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter)
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the explainOther common query parameter

  • « SolrQuery::setExpandRows
  • SolrQuery::setFacet »
  • PHP Manual
  • SolrQuery
  • Sets the explainOther common query parameter

SolrQuery::setExplainOther

(PECL solr >= 0.9.2)

SolrQuery::setExplainOther — Sets the explainOther common query parameter

Beschreibung

public SolrQuery::setExplainOther ( string $query ) : SolrQuery

Sets the explainOther common query parameter

Parameter-Liste

query

The Lucene query to identify a set of documents

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Maps to the facet parameter. Enables or disables facetting

  • « SolrQuery::setExplainOther
  • SolrQuery::setFacetDateEnd »
  • PHP Manual
  • SolrQuery
  • Maps to the facet parameter. Enables or disables facetting

SolrQuery::setFacet

(PECL solr >= 0.9.2)

SolrQuery::setFacet — Maps to the facet parameter. Enables or disables facetting

Beschreibung

public SolrQuery::setFacet ( bool $flag ) : SolrQuery

Enables or disables faceting.

Parameter-Liste

value

true enables faceting and false disables it.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.end

  • « SolrQuery::setFacet
  • SolrQuery::setFacetDateGap »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.end

SolrQuery::setFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateEnd — Maps to facet.date.end

Beschreibung

public SolrQuery::setFacetDateEnd ( string $value , string $field_override = ? ) : SolrQuery

Maps to facet.date.end

Parameter-Liste

value

See facet.date.end

field_override

Name of the field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.gap

  • « SolrQuery::setFacetDateEnd
  • SolrQuery::setFacetDateHardEnd »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.gap

SolrQuery::setFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateGap — Maps to facet.date.gap

Beschreibung

public SolrQuery::setFacetDateGap ( string $value , string $field_override = ? ) : SolrQuery

Maps to facet.date.gap

Parameter-Liste

value

See facet.date.gap

field_override

The name of the field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.hardend

  • « SolrQuery::setFacetDateGap
  • SolrQuery::setFacetDateStart »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.hardend

SolrQuery::setFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateHardEnd — Maps to facet.date.hardend

Beschreibung

public SolrQuery::setFacetDateHardEnd ( bool $value , string $field_override = ? ) : SolrQuery

Maps to facet.date.hardend

Parameter-Liste

value

See facet.date.hardend

field_override

The name of the field

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.start

  • « SolrQuery::setFacetDateHardEnd
  • SolrQuery::setFacetEnumCacheMinDefaultFrequency »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.start

SolrQuery::setFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateStart — Maps to facet.date.start

Beschreibung

public SolrQuery::setFacetDateStart ( string $value , string $field_override = ? ) : SolrQuery

Maps to facet.date.start

Parameter-Liste

value

See facet.date.start

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the minimum document frequency used for determining term count

  • « SolrQuery::setFacetDateStart
  • SolrQuery::setFacetLimit »
  • PHP Manual
  • SolrQuery
  • Sets the minimum document frequency used for determining term count

SolrQuery::setFacetEnumCacheMinDefaultFrequency

(PECL solr >= 0.9.2)

SolrQuery::setFacetEnumCacheMinDefaultFrequency — Sets the minimum document frequency used for determining term count

Beschreibung

public SolrQuery::setFacetEnumCacheMinDefaultFrequency ( int $frequency , string $field_override = ? ) : SolrQuery

Sets the minimum document frequency used for determining term count

Parameter-Liste

value

The minimum frequency

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Maps to facet.limit

  • « SolrQuery::setFacetEnumCacheMinDefaultFrequency
  • SolrQuery::setFacetMethod »
  • PHP Manual
  • SolrQuery
  • Maps to facet.limit

SolrQuery::setFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::setFacetLimit — Maps to facet.limit

Beschreibung

public SolrQuery::setFacetLimit ( int $limit , string $field_override = ? ) : SolrQuery

Maps to facet.limit. Sets the maximum number of constraint counts that should be returned for the facet fields.

Parameter-Liste

limit

The maximum number of constraint counts

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Specifies the type of algorithm to use when faceting a field

  • « SolrQuery::setFacetLimit
  • SolrQuery::setFacetMinCount »
  • PHP Manual
  • SolrQuery
  • Specifies the type of algorithm to use when faceting a field

SolrQuery::setFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::setFacetMethod — Specifies the type of algorithm to use when faceting a field

Beschreibung

public SolrQuery::setFacetMethod ( string $method , string $field_override = ? ) : SolrQuery

Specifies the type of algorithm to use when faceting a field. This method accepts optional field override.

Parameter-Liste

method

The method to use.

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Maps to facet.mincount

  • « SolrQuery::setFacetMethod
  • SolrQuery::setFacetMissing »
  • PHP Manual
  • SolrQuery
  • Maps to facet.mincount

SolrQuery::setFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::setFacetMinCount — Maps to facet.mincount

Beschreibung

public SolrQuery::setFacetMinCount ( int $mincount , string $field_override = ? ) : SolrQuery

Sets the minimum counts for facet fields that should be included in the response

Parameter-Liste

mincount

The minimum count

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Maps to facet.missing

  • « SolrQuery::setFacetMinCount
  • SolrQuery::setFacetOffset »
  • PHP Manual
  • SolrQuery
  • Maps to facet.missing

SolrQuery::setFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::setFacetMissing — Maps to facet.missing

Beschreibung

public SolrQuery::setFacetMissing ( bool $flag , string $field_override = ? ) : SolrQuery

Used to indicate that in addition to the Term-based constraints of a facet field, a count of all matching results which have no value for the field should be computed

Parameter-Liste

flag

true turns this feature on. false disables it.

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the offset into the list of constraints to allow for pagination

  • « SolrQuery::setFacetMissing
  • SolrQuery::setFacetPrefix »
  • PHP Manual
  • SolrQuery
  • Sets the offset into the list of constraints to allow for pagination

SolrQuery::setFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::setFacetOffset — Sets the offset into the list of constraints to allow for pagination

Beschreibung

public SolrQuery::setFacetOffset ( int $offset , string $field_override = ? ) : SolrQuery

Sets the offset into the list of constraints to allow for pagination.

Parameter-Liste

offset

The offset

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Specifies a string prefix with which to limits the terms on which to facet

  • « SolrQuery::setFacetOffset
  • SolrQuery::setFacetSort »
  • PHP Manual
  • SolrQuery
  • Specifies a string prefix with which to limits the terms on which to facet

SolrQuery::setFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::setFacetPrefix — Specifies a string prefix with which to limits the terms on which to facet

Beschreibung

public SolrQuery::setFacetPrefix ( string $prefix , string $field_override = ? ) : SolrQuery

Specifies a string prefix with which to limits the terms on which to facet.

Parameter-Liste

prefix

The prefix string

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Determines the ordering of the facet field constraints

  • « SolrQuery::setFacetPrefix
  • SolrQuery::setGroup »
  • PHP Manual
  • SolrQuery
  • Determines the ordering of the facet field constraints

SolrQuery::setFacetSort

(PECL solr >= 0.9.2)

SolrQuery::setFacetSort — Determines the ordering of the facet field constraints

Beschreibung

public SolrQuery::setFacetSort ( int $facetSort , string $field_override = ? ) : SolrQuery

Determines the ordering of the facet field constraints

Parameter-Liste

facetSort

Use SolrQuery::FACET_SORT_INDEX for sorting by index order or SolrQuery::FACET_SORT_COUNT for sorting by count.

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Enable/Disable result grouping (group parameter)

  • « SolrQuery::setFacetSort
  • SolrQuery::setGroupCachePercent »
  • PHP Manual
  • SolrQuery
  • Enable/Disable result grouping (group parameter)

SolrQuery::setGroup

(PECL solr >= 2.2.0)

SolrQuery::setGroup — Enable/Disable result grouping (group parameter)

Beschreibung

public SolrQuery::setGroup ( bool $value ) : SolrQuery

Enable/Disable result grouping (group parameter)

Parameter-Liste

value

Rückgabewerte

Siehe auch

  • SolrQuery::getGroup() - Returns true if grouping is enabled
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Enables caching for result grouping

  • « SolrQuery::setGroup
  • SolrQuery::setGroupFacet »
  • PHP Manual
  • SolrQuery
  • Enables caching for result grouping

SolrQuery::setGroupCachePercent

(PECL solr >= 2.2.0)

SolrQuery::setGroupCachePercent — Enables caching for result grouping

Beschreibung

public SolrQuery::setGroupCachePercent ( int $percent ) : SolrQuery

Setting this parameter to a number greater than 0 enables caching for result grouping. Result Grouping executes two searches; this option caches the second search. The server default value is 0. Testing has shown that group caching only improves search time with Boolean, wildcard, and fuzzy queries. For simple queries like term or "match all" queries, group caching degrades performance. group.cache.percent parameter

Parameter-Liste

percent

Rückgabewerte

Fehler/Exceptions

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)


Sets group.facet parameter

  • « SolrQuery::setGroupCachePercent
  • SolrQuery::setGroupFormat »
  • PHP Manual
  • SolrQuery
  • Sets group.facet parameter

SolrQuery::setGroupFacet

(PECL solr >= 2.2.0)

SolrQuery::setGroupFacet — Sets group.facet parameter

Beschreibung

public SolrQuery::setGroupFacet ( bool $value ) : SolrQuery

Determines whether to compute grouped facets for the field facets specified in facet.field parameters. Grouped facets are computed based on the first specified group.

Parameter-Liste

value

Rückgabewerte

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Sets the group format, result structure (group.format parameter)

  • « SolrQuery::setGroupFacet
  • SolrQuery::setGroupLimit »
  • PHP Manual
  • SolrQuery
  • Sets the group format, result structure (group.format parameter)

SolrQuery::setGroupFormat

(PECL solr >= 2.2.0)

SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter)

Beschreibung

public SolrQuery::setGroupFormat ( string $value ) : SolrQuery

Sets the group.format parameter. If this parameter is set to simple, the grouped documents are presented in a single flat list, and the start and rows parameters affect the numbers of documents instead of groups. Accepts: grouped/simple

Parameter-Liste

value

Rückgabewerte

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Specifies the number of results to return for each group. The server default value is 1

  • « SolrQuery::setGroupFormat
  • SolrQuery::setGroupMain »
  • PHP Manual
  • SolrQuery
  • Specifies the number of results to return for each group. The server default value is 1

SolrQuery::setGroupLimit

(PECL solr >= 2.2.0)

SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1

Beschreibung

public SolrQuery::setGroupLimit ( int $value ) : SolrQuery

Specifies the number of results to return for each group. The server default value is 1.

Parameter-Liste

value

Rückgabewerte

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple

  • « SolrQuery::setGroupLimit
  • SolrQuery::setGroupNGroups »
  • PHP Manual
  • SolrQuery
  • If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple

SolrQuery::setGroupMain

(PECL solr >= 2.2.0)

SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple

Beschreibung

public SolrQuery::setGroupMain ( string $value ) : SolrQuery

If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.

Parameter-Liste

value

Rückgabewerte

Siehe auch

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupMain()
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, Solr includes the number of groups that have matched the query in the results

  • « SolrQuery::setGroupMain
  • SolrQuery::setGroupOffset »
  • PHP Manual
  • SolrQuery
  • If true, Solr includes the number of groups that have matched the query in the results

SolrQuery::setGroupNGroups

(PECL solr >= 2.2.0)

SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results

Beschreibung

public SolrQuery::setGroupNGroups ( bool $value ) : SolrQuery

If true, Solr includes the number of groups that have matched the query in the results.

Parameter-Liste

value

Rückgabewerte

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Sets the group.offset parameter

  • « SolrQuery::setGroupNGroups
  • SolrQuery::setGroupTruncate »
  • PHP Manual
  • SolrQuery
  • Sets the group.offset parameter

SolrQuery::setGroupOffset

(PECL solr >= 2.2.0)

SolrQuery::setGroupOffset — Sets the group.offset parameter

Beschreibung

public SolrQuery::setGroupOffset ( int $value ) : SolrQuery

Sets the group.offset parameter.

Parameter-Liste

value

Rückgabewerte

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, facet counts are based on the most relevant document of each group matching the query

  • « SolrQuery::setGroupOffset
  • SolrQuery::setHighlight »
  • PHP Manual
  • SolrQuery
  • If true, facet counts are based on the most relevant document of each group matching the query

SolrQuery::setGroupTruncate

(PECL solr >= 2.2.0)

SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query

Beschreibung

public SolrQuery::setGroupTruncate ( bool $value ) : SolrQuery

If true, facet counts are based on the most relevant document of each group matching the query. The server default value is false. group.truncate parameter

Parameter-Liste

value

Rückgabewerte

Siehe auch

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter)
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter)
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter)
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Enables or disables highlighting

  • « SolrQuery::setGroupTruncate
  • SolrQuery::setHighlightAlternateField »
  • PHP Manual
  • SolrQuery
  • Enables or disables highlighting

SolrQuery::setHighlight

(PECL solr >= 0.9.2)

SolrQuery::setHighlight — Enables or disables highlighting

Beschreibung

public SolrQuery::setHighlight ( bool $flag ) : SolrQuery

Setting it to true enables highlighted snippets to be generated in the query response.

Setting it to false disables highlighting

Parameter-Liste

flag

Enable or disable highlighting

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Specifies the backup field to use

  • « SolrQuery::setHighlight
  • SolrQuery::setHighlightFormatter »
  • PHP Manual
  • SolrQuery
  • Specifies the backup field to use

SolrQuery::setHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::setHighlightAlternateField — Specifies the backup field to use

Beschreibung

public SolrQuery::setHighlightAlternateField ( string $field , string $field_override = ? ) : SolrQuery

If a snippet cannot be generated because there were no matching terms, one can specify a field to use as the backup or default summary

Parameter-Liste

field

The name of the backup field

field_override

The name of the field we are overriding this setting for.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Specify a formatter for the highlight output

  • « SolrQuery::setHighlightAlternateField
  • SolrQuery::setHighlightFragmenter »
  • PHP Manual
  • SolrQuery
  • Specify a formatter for the highlight output

SolrQuery::setHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFormatter — Specify a formatter for the highlight output

Beschreibung

public SolrQuery::setHighlightFormatter ( string $formatter , string $field_override = ? ) : SolrQuery

Specify a formatter for the highlight output.

Parameter-Liste

formatter

Currently the only legal value is "simple"

field_override

The name of the field.


Sets a text snippet generator for highlighted text

  • « SolrQuery::setHighlightFormatter
  • SolrQuery::setHighlightFragsize »
  • PHP Manual
  • SolrQuery
  • Sets a text snippet generator for highlighted text

SolrQuery::setHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragmenter — Sets a text snippet generator for highlighted text

Beschreibung

public SolrQuery::setHighlightFragmenter ( string $fragmenter , string $field_override = ? ) : SolrQuery

Specify a text snippet generator for highlighted text.

Parameter-Liste

fragmenter

The standard fragmenter is gap. Another option is regex, which tries to create fragments that resembles a certain regular expression

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


The size of fragments to consider for highlighting

  • « SolrQuery::setHighlightFragmenter
  • SolrQuery::setHighlightHighlightMultiTerm »
  • PHP Manual
  • SolrQuery
  • The size of fragments to consider for highlighting

SolrQuery::setHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragsize — The size of fragments to consider for highlighting

Beschreibung

public SolrQuery::setHighlightFragsize ( int $size , string $field_override = ? ) : SolrQuery

Sets the size, in characters, of fragments to consider for highlighting. "0" indicates that the whole field value should be used (no fragmenting).

Parameter-Liste

size

The size, in characters, of fragments to consider for highlighting

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Use SpanScorer to highlight phrase terms

  • « SolrQuery::setHighlightFragsize
  • SolrQuery::setHighlightMaxAlternateFieldLength »
  • PHP Manual
  • SolrQuery
  • Use SpanScorer to highlight phrase terms

SolrQuery::setHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::setHighlightHighlightMultiTerm — Use SpanScorer to highlight phrase terms

Beschreibung

public SolrQuery::setHighlightHighlightMultiTerm ( bool $flag ) : SolrQuery

Use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document.

Parameter-Liste

flag

Whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of characters of the field to return

  • « SolrQuery::setHighlightHighlightMultiTerm
  • SolrQuery::setHighlightMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of characters of the field to return

SolrQuery::setHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAlternateFieldLength — Sets the maximum number of characters of the field to return

Beschreibung

public SolrQuery::setHighlightMaxAlternateFieldLength ( int $fieldLength , string $field_override = ? ) : SolrQuery

If SolrQuery::setHighlightAlternateField() was passed the value true, this parameter specifies the maximum number of characters of the field to return

Any value less than or equal to 0 means unlimited.

Parameter-Liste

fieldLength

The length of the field

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Specifies the number of characters into a document to look for suitable snippets

  • « SolrQuery::setHighlightMaxAlternateFieldLength
  • SolrQuery::setHighlightMergeContiguous »
  • PHP Manual
  • SolrQuery
  • Specifies the number of characters into a document to look for suitable snippets

SolrQuery::setHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAnalyzedChars — Specifies the number of characters into a document to look for suitable snippets

Beschreibung

public SolrQuery::setHighlightMaxAnalyzedChars ( int $value ) : SolrQuery

Specifies the number of characters into a document to look for suitable snippets

Parameter-Liste

value

The number of characters into a document to look for suitable snippets

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Whether or not to collapse contiguous fragments into a single fragment

  • « SolrQuery::setHighlightMaxAnalyzedChars
  • SolrQuery::setHighlightRegexMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Whether or not to collapse contiguous fragments into a single fragment

SolrQuery::setHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMergeContiguous — Whether or not to collapse contiguous fragments into a single fragment

Beschreibung

public SolrQuery::setHighlightMergeContiguous ( bool $flag , string $field_override = ? ) : SolrQuery

Whether or not to collapse contiguous fragments into a single fragment

Parameter-Liste

value

Whether or not to collapse contiguous fragments into a single fragment

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Specify the maximum number of characters to analyze

  • « SolrQuery::setHighlightMergeContiguous
  • SolrQuery::setHighlightRegexPattern »
  • PHP Manual
  • SolrQuery
  • Specify the maximum number of characters to analyze

SolrQuery::setHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexMaxAnalyzedChars — Specify the maximum number of characters to analyze

Beschreibung

public SolrQuery::setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars ) : SolrQuery

Specify the maximum number of characters to analyze from a field when using the regex fragmenter

Parameter-Liste

maxAnalyzedChars

The maximum number of characters to analyze from a field when using the regex fragmenter

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Specify the regular expression for fragmenting

  • « SolrQuery::setHighlightRegexMaxAnalyzedChars
  • SolrQuery::setHighlightRegexSlop »
  • PHP Manual
  • SolrQuery
  • Specify the regular expression for fragmenting

SolrQuery::setHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexPattern — Specify the regular expression for fragmenting

Beschreibung

public SolrQuery::setHighlightRegexPattern ( string $value ) : SolrQuery

Specifies the regular expression for fragmenting. This could be used to extract sentences

Parameter-Liste

value

The regular expression for fragmenting. This could be used to extract sentences

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the factor by which the regex fragmenter can stray from the ideal fragment size

  • « SolrQuery::setHighlightRegexPattern
  • SolrQuery::setHighlightRequireFieldMatch »
  • PHP Manual
  • SolrQuery
  • Sets the factor by which the regex fragmenter can stray from the ideal fragment size

SolrQuery::setHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexSlop — Sets the factor by which the regex fragmenter can stray from the ideal fragment size

Beschreibung

public SolrQuery::setHighlightRegexSlop ( float $factor ) : SolrQuery

The factor by which the regex fragmenter can stray from the ideal fragment size ( specfied by SolrQuery::setHighlightFragsize )to accommodate the regular expression

Parameter-Liste

factor

The factor by which the regex fragmenter can stray from the ideal fragment size

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Require field matching during highlighting

  • « SolrQuery::setHighlightRegexSlop
  • SolrQuery::setHighlightSimplePost »
  • PHP Manual
  • SolrQuery
  • Require field matching during highlighting

SolrQuery::setHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRequireFieldMatch — Require field matching during highlighting

Beschreibung

public SolrQuery::setHighlightRequireFieldMatch ( bool $flag ) : SolrQuery

If true, then a field will only be highlighted if the query matched in this particular field.

This will only work if SolrQuery::setHighlightUsePhraseHighlighter() was set to true

Parameter-Liste

flag

true or false

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the text which appears after a highlighted term

  • « SolrQuery::setHighlightRequireFieldMatch
  • SolrQuery::setHighlightSimplePre »
  • PHP Manual
  • SolrQuery
  • Sets the text which appears after a highlighted term

SolrQuery::setHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePost — Sets the text which appears after a highlighted term

Beschreibung

public SolrQuery::setHighlightSimplePost ( string $simplePost , string $field_override = ? ) : SolrQuery

Sets the text which appears before a highlighted term

Parameter-Liste

simplePost

Sets the text which appears after a highlighted term

The default is </em>

field_override

The name of the field.


Sets the text which appears before a highlighted term

  • « SolrQuery::setHighlightSimplePost
  • SolrQuery::setHighlightSnippets »
  • PHP Manual
  • SolrQuery
  • Sets the text which appears before a highlighted term

SolrQuery::setHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePre — Sets the text which appears before a highlighted term

Beschreibung

public SolrQuery::setHighlightSimplePre ( string $simplePre , string $field_override = ? ) : SolrQuery

Sets the text which appears before a highlighted term

The default is <em>

Parameter-Liste

simplePre

The text which appears before a highlighted term

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of highlighted snippets to generate per field

  • « SolrQuery::setHighlightSimplePre
  • SolrQuery::setHighlightUsePhraseHighlighter »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of highlighted snippets to generate per field

SolrQuery::setHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSnippets — Sets the maximum number of highlighted snippets to generate per field

Beschreibung

public SolrQuery::setHighlightSnippets ( int $value , string $field_override = ? ) : SolrQuery

Sets the maximum number of highlighted snippets to generate per field

Parameter-Liste

value

The maximum number of highlighted snippets to generate per field

field_override

The name of the field.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Whether to highlight phrase terms only when they appear within the query phrase

  • « SolrQuery::setHighlightSnippets
  • SolrQuery::setMlt »
  • PHP Manual
  • SolrQuery
  • Whether to highlight phrase terms only when they appear within the query phrase

SolrQuery::setHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightUsePhraseHighlighter — Whether to highlight phrase terms only when they appear within the query phrase

Beschreibung

public SolrQuery::setHighlightUsePhraseHighlighter ( bool $flag ) : SolrQuery

Sets whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document

Parameter-Liste

value

Whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Enables or disables moreLikeThis

  • « SolrQuery::setHighlightUsePhraseHighlighter
  • SolrQuery::setMltBoost »
  • PHP Manual
  • SolrQuery
  • Enables or disables moreLikeThis

SolrQuery::setMlt

(PECL solr >= 0.9.2)

SolrQuery::setMlt — Enables or disables moreLikeThis

Beschreibung

public SolrQuery::setMlt ( bool $flag ) : SolrQuery

Enables or disables moreLikeThis

Parameter-Liste

flag

true enables it and false turns it off.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Set if the query will be boosted by the interesting term relevance

  • « SolrQuery::setMlt
  • SolrQuery::setMltCount »
  • PHP Manual
  • SolrQuery
  • Set if the query will be boosted by the interesting term relevance

SolrQuery::setMltBoost

(PECL solr >= 0.9.2)

SolrQuery::setMltBoost — Set if the query will be boosted by the interesting term relevance

Beschreibung

public SolrQuery::setMltBoost ( bool $flag ) : SolrQuery

Set if the query will be boosted by the interesting term relevance

Parameter-Liste

value

Sets to true or false

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Set the number of similar documents to return for each result

  • « SolrQuery::setMltBoost
  • SolrQuery::setMltMaxNumQueryTerms »
  • PHP Manual
  • SolrQuery
  • Set the number of similar documents to return for each result

SolrQuery::setMltCount

(PECL solr >= 0.9.2)

SolrQuery::setMltCount — Set the number of similar documents to return for each result

Beschreibung

public SolrQuery::setMltCount ( int $count ) : SolrQuery

Set the number of similar documents to return for each result

Parameter-Liste

count

The number of similar documents to return for each result

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of query terms included

  • « SolrQuery::setMltCount
  • SolrQuery::setMltMaxNumTokens »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of query terms included

SolrQuery::setMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumQueryTerms — Sets the maximum number of query terms included

Beschreibung

public SolrQuery::setMltMaxNumQueryTerms ( int $value ) : SolrQuery

Sets the maximum number of query terms that will be included in any generated query.

Parameter-Liste

value

The maximum number of query terms that will be included in any generated query

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Specifies the maximum number of tokens to parse

  • « SolrQuery::setMltMaxNumQueryTerms
  • SolrQuery::setMltMaxWordLength »
  • PHP Manual
  • SolrQuery
  • Specifies the maximum number of tokens to parse

SolrQuery::setMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumTokens — Specifies the maximum number of tokens to parse

Beschreibung

public SolrQuery::setMltMaxNumTokens ( int $value ) : SolrQuery

Specifies the maximum number of tokens to parse in each example doc field that is not stored with TermVector support.

Parameter-Liste

value

The maximum number of tokens to parse

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the maximum word length

  • « SolrQuery::setMltMaxNumTokens
  • SolrQuery::setMltMinDocFrequency »
  • PHP Manual
  • SolrQuery
  • Sets the maximum word length

SolrQuery::setMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxWordLength — Sets the maximum word length

Beschreibung

public SolrQuery::setMltMaxWordLength ( int $maxWordLength ) : SolrQuery

Sets the maximum word length above which words will be ignored.

Parameter-Liste

maxWordLength

The maximum word length above which words will be ignored

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the mltMinDoc frequency

  • « SolrQuery::setMltMaxWordLength
  • SolrQuery::setMltMinTermFrequency »
  • PHP Manual
  • SolrQuery
  • Sets the mltMinDoc frequency

SolrQuery::setMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinDocFrequency — Sets the mltMinDoc frequency

Beschreibung

public SolrQuery::setMltMinDocFrequency ( int $minDocFrequency ) : SolrQuery

The frequency at which words will be ignored which do not occur in at least this many docs.

Parameter-Liste

minDocFrequency

Sets the frequency at which words will be ignored which do not occur in at least this many docs.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the frequency below which terms will be ignored in the source docs

  • « SolrQuery::setMltMinDocFrequency
  • SolrQuery::setMltMinWordLength »
  • PHP Manual
  • SolrQuery
  • Sets the frequency below which terms will be ignored in the source docs

SolrQuery::setMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinTermFrequency — Sets the frequency below which terms will be ignored in the source docs

Beschreibung

public SolrQuery::setMltMinTermFrequency ( int $minTermFrequency ) : SolrQuery

Sets the frequency below which terms will be ignored in the source docs

Parameter-Liste

minTermFrequency

The frequency below which terms will be ignored in the source docs

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the minimum word length

  • « SolrQuery::setMltMinTermFrequency
  • SolrQuery::setOmitHeader »
  • PHP Manual
  • SolrQuery
  • Sets the minimum word length

SolrQuery::setMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMinWordLength — Sets the minimum word length

Beschreibung

public SolrQuery::setMltMinWordLength ( int $minWordLength ) : SolrQuery

Sets the minimum word length below which words will be ignored.

Parameter-Liste

minWordLength

The minimum word length below which words will be ignored

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Exclude the header from the returned results

  • « SolrQuery::setMltMinWordLength
  • SolrQuery::setQuery »
  • PHP Manual
  • SolrQuery
  • Exclude the header from the returned results

SolrQuery::setOmitHeader

(PECL solr >= 0.9.2)

SolrQuery::setOmitHeader — Exclude the header from the returned results

Beschreibung

public SolrQuery::setOmitHeader ( bool $flag ) : SolrQuery

Exclude the header from the returned results.

Parameter-Liste

flag

true excludes the header from the result.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the search query

  • « SolrQuery::setOmitHeader
  • SolrQuery::setRows »
  • PHP Manual
  • SolrQuery
  • Sets the search query

SolrQuery::setQuery

(PECL solr >= 0.9.2)

SolrQuery::setQuery — Sets the search query

Beschreibung

public SolrQuery::setQuery ( string $query ) : SolrQuery

Sets the search query.

Parameter-Liste

query

The search query

Rückgabewerte

Returns the current SolrQuery object


Specifies the maximum number of rows to return in the result

  • « SolrQuery::setQuery
  • SolrQuery::setShowDebugInfo »
  • PHP Manual
  • SolrQuery
  • Specifies the maximum number of rows to return in the result

SolrQuery::setRows

(PECL solr >= 0.9.2)

SolrQuery::setRows — Specifies the maximum number of rows to return in the result

Beschreibung

public SolrQuery::setRows ( int $rows ) : SolrQuery

Specifies the maximum number of rows to return in the result

Parameter-Liste

rows

The maximum number of rows to return

Rückgabewerte

Returns the current SolrQuery object.


Flag to show debug information

  • « SolrQuery::setRows
  • SolrQuery::setStart »
  • PHP Manual
  • SolrQuery
  • Flag to show debug information

SolrQuery::setShowDebugInfo

(PECL solr >= 0.9.2)

SolrQuery::setShowDebugInfo — Flag to show debug information

Beschreibung

public SolrQuery::setShowDebugInfo ( bool $flag ) : SolrQuery

Whether to show debug info

Parameter-Liste

flag

Whether to show debug info. true or false

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Specifies the number of rows to skip

  • « SolrQuery::setShowDebugInfo
  • SolrQuery::setStats »
  • PHP Manual
  • SolrQuery
  • Specifies the number of rows to skip

SolrQuery::setStart

(PECL solr >= 0.9.2)

SolrQuery::setStart — Specifies the number of rows to skip

Beschreibung

public SolrQuery::setStart ( int $start ) : SolrQuery

Specifies the number of rows to skip. Useful in pagination of results.

Parameter-Liste

start

The number of rows to skip.

Rückgabewerte

Returns the current SolrQuery object.


Enables or disables the Stats component

  • « SolrQuery::setStart
  • SolrQuery::setTerms »
  • PHP Manual
  • SolrQuery
  • Enables or disables the Stats component

SolrQuery::setStats

(PECL solr >= 0.9.2)

SolrQuery::setStats — Enables or disables the Stats component

Beschreibung

public SolrQuery::setStats ( bool $flag ) : SolrQuery

Enables or disables the Stats component.

Parameter-Liste

flag

true turns on the stats component and false disables it.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Enables or disables the TermsComponent

  • « SolrQuery::setStats
  • SolrQuery::setTermsField »
  • PHP Manual
  • SolrQuery
  • Enables or disables the TermsComponent

SolrQuery::setTerms

(PECL solr >= 0.9.2)

SolrQuery::setTerms — Enables or disables the TermsComponent

Beschreibung

public SolrQuery::setTerms ( bool $flag ) : SolrQuery

Enables or disables the TermsComponent

Parameter-Liste

flag

true enables it. false turns it off

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the name of the field to get the Terms from

  • « SolrQuery::setTerms
  • SolrQuery::setTermsIncludeLowerBound »
  • PHP Manual
  • SolrQuery
  • Sets the name of the field to get the Terms from

SolrQuery::setTermsField

(PECL solr >= 0.9.2)

SolrQuery::setTermsField — Sets the name of the field to get the Terms from

Beschreibung

public SolrQuery::setTermsField ( string $fieldname ) : SolrQuery

Sets the name of the field to get the terms from

Parameter-Liste

fieldname

The field name

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Include the lower bound term in the result set

  • « SolrQuery::setTermsField
  • SolrQuery::setTermsIncludeUpperBound »
  • PHP Manual
  • SolrQuery
  • Include the lower bound term in the result set

SolrQuery::setTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeLowerBound — Include the lower bound term in the result set

Beschreibung

public SolrQuery::setTermsIncludeLowerBound ( bool $flag ) : SolrQuery

Include the lower bound term in the result set.

Parameter-Liste

flag

Include the lower bound term in the result set

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Include the upper bound term in the result set

  • « SolrQuery::setTermsIncludeLowerBound
  • SolrQuery::setTermsLimit »
  • PHP Manual
  • SolrQuery
  • Include the upper bound term in the result set

SolrQuery::setTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeUpperBound — Include the upper bound term in the result set

Beschreibung

public SolrQuery::setTermsIncludeUpperBound ( bool $flag ) : SolrQuery

Include the upper bound term in the result set.

Parameter-Liste

flag

true or false

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of terms to return

  • « SolrQuery::setTermsIncludeUpperBound
  • SolrQuery::setTermsLowerBound »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of terms to return

SolrQuery::setTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::setTermsLimit — Sets the maximum number of terms to return

Beschreibung

public SolrQuery::setTermsLimit ( int $limit ) : SolrQuery

Sets the maximum number of terms to return

Parameter-Liste

limit

The maximum number of terms to return. All the terms will be returned if the limit is negative.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Specifies the Term to start from

  • « SolrQuery::setTermsLimit
  • SolrQuery::setTermsMaxCount »
  • PHP Manual
  • SolrQuery
  • Specifies the Term to start from

SolrQuery::setTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsLowerBound — Specifies the Term to start from

Beschreibung

public SolrQuery::setTermsLowerBound ( string $lowerBound ) : SolrQuery

Specifies the Term to start from

Parameter-Liste

lowerBound

The lower bound Term

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the maximum document frequency

  • « SolrQuery::setTermsLowerBound
  • SolrQuery::setTermsMinCount »
  • PHP Manual
  • SolrQuery
  • Sets the maximum document frequency

SolrQuery::setTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMaxCount — Sets the maximum document frequency

Beschreibung

public SolrQuery::setTermsMaxCount ( int $frequency ) : SolrQuery

Sets the maximum document frequency.

Parameter-Liste

frequency

The maximum document frequency.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the minimum document frequency

  • « SolrQuery::setTermsMaxCount
  • SolrQuery::setTermsPrefix »
  • PHP Manual
  • SolrQuery
  • Sets the minimum document frequency

SolrQuery::setTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMinCount — Sets the minimum document frequency

Beschreibung

public SolrQuery::setTermsMinCount ( int $frequency ) : SolrQuery

Sets the minimum doc frequency to return in order to be included

Parameter-Liste

frequency

The minimum frequency

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Restrict matches to terms that start with the prefix

  • « SolrQuery::setTermsMinCount
  • SolrQuery::setTermsReturnRaw »
  • PHP Manual
  • SolrQuery
  • Restrict matches to terms that start with the prefix

SolrQuery::setTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::setTermsPrefix — Restrict matches to terms that start with the prefix

Beschreibung

public SolrQuery::setTermsPrefix ( string $prefix ) : SolrQuery

Restrict matches to terms that start with the prefix

Parameter-Liste

prefix

Restrict matches to terms that start with the prefix

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Return the raw characters of the indexed term

  • « SolrQuery::setTermsPrefix
  • SolrQuery::setTermsSort »
  • PHP Manual
  • SolrQuery
  • Return the raw characters of the indexed term

SolrQuery::setTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::setTermsReturnRaw — Return the raw characters of the indexed term

Beschreibung

public SolrQuery::setTermsReturnRaw ( bool $flag ) : SolrQuery

If true, return the raw characters of the indexed term, regardless of if it is human readable

Parameter-Liste

value

true or false

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Specifies how to sort the returned terms

  • « SolrQuery::setTermsReturnRaw
  • SolrQuery::setTermsUpperBound »
  • PHP Manual
  • SolrQuery
  • Specifies how to sort the returned terms

SolrQuery::setTermsSort

(PECL solr >= 0.9.2)

SolrQuery::setTermsSort — Specifies how to sort the returned terms

Beschreibung

public SolrQuery::setTermsSort ( int $sortType ) : SolrQuery

If SolrQuery::TERMS_SORT_COUNT, sorts the terms by the term frequency (highest count first). If SolrQuery::TERMS_SORT_INDEX, returns the terms in index order

Parameter-Liste

sortType

SolrQuery::TERMS_SORT_INDEX or SolrQuery::TERMS_SORT_COUNT

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


Sets the term to stop at

  • « SolrQuery::setTermsSort
  • SolrQuery::setTimeAllowed »
  • PHP Manual
  • SolrQuery
  • Sets the term to stop at

SolrQuery::setTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsUpperBound — Sets the term to stop at

Beschreibung

public SolrQuery::setTermsUpperBound ( string $upperBound ) : SolrQuery

Sets the term to stop at

Parameter-Liste

upperBound

The term to stop at

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


The time allowed for search to finish

  • « SolrQuery::setTermsUpperBound
  • SolrDisMaxQuery »
  • PHP Manual
  • SolrQuery
  • The time allowed for search to finish

SolrQuery::setTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::setTimeAllowed — The time allowed for search to finish

Beschreibung

public SolrQuery::setTimeAllowed ( int $timeAllowed ) : SolrQuery

The time allowed for a search to finish. This value only applies to the search and not to requests in general. Time is in milliseconds. Values less than or equal to zero implies no time restriction. Partial results may be returned, if there are any.

Parameter-Liste

timeAllowed

The time allowed for a search to finish.

Rückgabewerte

Returns the current SolrQuery object, if the return value is used.


The SolrDisMaxQuery class

(No version information available, might only be in Git)

Einführung

Klassenbeschreibung

SolrDisMaxQuery extends SolrQuery implements Serializable {
/* Geerbte Eigenschaften */
const int SolrQuery::ORDER_ASC = 0 ;
const int SolrQuery::ORDER_DESC = 1 ;
const int SolrQuery::FACET_SORT_INDEX = 0 ;
const int SolrQuery::FACET_SORT_COUNT = 1 ;
const int SolrQuery::TERMS_SORT_INDEX = 0 ;
const int SolrQuery::TERMS_SORT_COUNT = 1 ;
/* Methoden */
public addBigramPhraseField ( string $field , string $boost , string $slop = ? ) : SolrDisMaxQuery
public addBoostQuery ( string $field , string $value , string $boost = ? ) : SolrDisMaxQuery
public addPhraseField ( string $field , string $boost , string $slop = ? ) : SolrDisMaxQuery
public addQueryField ( string $field , string $boost = ? ) : SolrDisMaxQuery
public addTrigramPhraseField ( string $field , string $boost , string $slop = ? ) : SolrDisMaxQuery
public addUserField ( string $field ) : SolrDisMaxQuery
public __construct ( string $q = ? )
public removeBigramPhraseField ( string $field ) : SolrDisMaxQuery
public removeBoostQuery ( string $field ) : SolrDisMaxQuery
public removePhraseField ( string $field ) : SolrDisMaxQuery
public removeQueryField ( string $field ) : SolrDisMaxQuery
public removeTrigramPhraseField ( string $field ) : SolrDisMaxQuery
public removeUserField ( string $field ) : SolrDisMaxQuery
public setBigramPhraseFields ( string $fields ) : SolrDisMaxQuery
public setBigramPhraseSlop ( string $slop ) : SolrDisMaxQuery
public setBoostFunction ( string $function ) : SolrDisMaxQuery
public setBoostQuery ( string $q ) : SolrDisMaxQuery
public setMinimumMatch ( string $value ) : SolrDisMaxQuery
public setPhraseFields ( string $fields ) : SolrDisMaxQuery
public setPhraseSlop ( string $slop ) : SolrDisMaxQuery
public setQueryAlt ( string $q ) : SolrDisMaxQuery
public setQueryPhraseSlop ( string $slop ) : SolrDisMaxQuery
public setTieBreaker ( string $tieBreaker ) : SolrDisMaxQuery
public setTrigramPhraseFields ( string $fields ) : SolrDisMaxQuery
public setTrigramPhraseSlop ( string $slop ) : SolrDisMaxQuery
public setUserFields ( string $fields ) : SolrDisMaxQuery
public useDisMaxQueryParser ( ) : SolrDisMaxQuery
public useEDisMaxQueryParser ( ) : SolrDisMaxQuery
/* Geerbte Methoden */
public SolrQuery::addExpandFilterQuery ( string $fq ) : SolrQuery
public SolrQuery::addExpandSortField ( string $field , string $order = ? ) : SolrQuery
public SolrQuery::addFacetDateField ( string $dateField ) : SolrQuery
public SolrQuery::addFacetDateOther ( string $value , string $field_override = ? ) : SolrQuery
public SolrQuery::addFacetField ( string $field ) : SolrQuery
public SolrQuery::addFacetQuery ( string $facetQuery ) : SolrQuery
public SolrQuery::addField ( string $field ) : SolrQuery
public SolrQuery::addFilterQuery ( string $fq ) : SolrQuery
public SolrQuery::addGroupField ( string $value ) : SolrQuery
public SolrQuery::addGroupFunction ( string $value ) : SolrQuery
public SolrQuery::addGroupQuery ( string $value ) : SolrQuery
public SolrQuery::addGroupSortField ( string $field , int $order = ? ) : SolrQuery
public SolrQuery::addHighlightField ( string $field ) : SolrQuery
public SolrQuery::addMltField ( string $field ) : SolrQuery
public SolrQuery::addMltQueryField ( string $field , float $boost ) : SolrQuery
public SolrQuery::addSortField ( string $field , int $order = SolrQuery::ORDER_DESC ) : SolrQuery
public SolrQuery::addStatsFacet ( string $field ) : SolrQuery
public SolrQuery::addStatsField ( string $field ) : SolrQuery
public SolrQuery::collapse ( SolrCollapseFunction $collapseFunction ) : SolrQuery
public SolrQuery::__construct ( string $q = ? )
public SolrQuery::__destruct ( ) : void
public SolrQuery::getExpand ( ) : bool
public SolrQuery::getExpandFilterQueries ( ) : array
public SolrQuery::getExpandQuery ( ) : array
public SolrQuery::getExpandRows ( ) : int
public SolrQuery::getExpandSortFields ( ) : array
public SolrQuery::getFacet ( ) : bool
public SolrQuery::getFacetDateEnd ( string $field_override = ? ) : string
public SolrQuery::getFacetDateFields ( ) : array
public SolrQuery::getFacetDateGap ( string $field_override = ? ) : string
public SolrQuery::getFacetDateHardEnd ( string $field_override = ? ) : string
public SolrQuery::getFacetDateOther ( string $field_override = ? ) : array
public SolrQuery::getFacetDateStart ( string $field_override = ? ) : string
public SolrQuery::getFacetFields ( ) : array
public SolrQuery::getFacetLimit ( string $field_override = ? ) : int
public SolrQuery::getFacetMethod ( string $field_override = ? ) : string
public SolrQuery::getFacetMinCount ( string $field_override = ? ) : int
public SolrQuery::getFacetMissing ( string $field_override = ? ) : bool
public SolrQuery::getFacetOffset ( string $field_override = ? ) : int
public SolrQuery::getFacetPrefix ( string $field_override = ? ) : string
public SolrQuery::getFacetQueries ( ) : array
public SolrQuery::getFacetSort ( string $field_override = ? ) : int
public SolrQuery::getFields ( ) : array
public SolrQuery::getFilterQueries ( ) : array
public SolrQuery::getGroup ( ) : bool
public SolrQuery::getGroupCachePercent ( ) : int
public SolrQuery::getGroupFacet ( ) : bool
public SolrQuery::getGroupFields ( ) : array
public SolrQuery::getGroupFormat ( ) : string
public SolrQuery::getGroupFunctions ( ) : array
public SolrQuery::getGroupLimit ( ) : int
public SolrQuery::getGroupMain ( ) : bool
public SolrQuery::getGroupNGroups ( ) : bool
public SolrQuery::getGroupOffset ( ) : int
public SolrQuery::getGroupQueries ( ) : array
public SolrQuery::getGroupSortFields ( ) : array
public SolrQuery::getGroupTruncate ( ) : bool
public SolrQuery::getHighlight ( ) : bool
public SolrQuery::getHighlightAlternateField ( string $field_override = ? ) : string
public SolrQuery::getHighlightFields ( ) : array
public SolrQuery::getHighlightFormatter ( string $field_override = ? ) : string
public SolrQuery::getHighlightFragmenter ( string $field_override = ? ) : string
public SolrQuery::getHighlightFragsize ( string $field_override = ? ) : int
public SolrQuery::getHighlightHighlightMultiTerm ( ) : bool
public SolrQuery::getHighlightMaxAlternateFieldLength ( string $field_override = ? ) : int
public SolrQuery::getHighlightMaxAnalyzedChars ( ) : int
public SolrQuery::getHighlightMergeContiguous ( string $field_override = ? ) : bool
public SolrQuery::getHighlightRegexMaxAnalyzedChars ( ) : int
public SolrQuery::getHighlightRegexPattern ( ) : string
public SolrQuery::getHighlightRegexSlop ( ) : float
public SolrQuery::getHighlightRequireFieldMatch ( ) : bool
public SolrQuery::getHighlightSimplePost ( string $field_override = ? ) : string
public SolrQuery::getHighlightSimplePre ( string $field_override = ? ) : string
public SolrQuery::getHighlightSnippets ( string $field_override = ? ) : int
public SolrQuery::getHighlightUsePhraseHighlighter ( ) : bool
public SolrQuery::getMlt ( ) : bool
public SolrQuery::getMltBoost ( ) : bool
public SolrQuery::getMltCount ( ) : int
public SolrQuery::getMltFields ( ) : array
public SolrQuery::getMltMaxNumQueryTerms ( ) : int
public SolrQuery::getMltMaxNumTokens ( ) : int
public SolrQuery::getMltMaxWordLength ( ) : int
public SolrQuery::getMltMinDocFrequency ( ) : int
public SolrQuery::getMltMinTermFrequency ( ) : int
public SolrQuery::getMltMinWordLength ( ) : int
public SolrQuery::getMltQueryFields ( ) : array
public SolrQuery::getQuery ( ) : string
public SolrQuery::getRows ( ) : int
public SolrQuery::getSortFields ( ) : array
public SolrQuery::getStart ( ) : int
public SolrQuery::getStats ( ) : bool
public SolrQuery::getStatsFacets ( ) : array
public SolrQuery::getStatsFields ( ) : array
public SolrQuery::getTerms ( ) : bool
public SolrQuery::getTermsField ( ) : string
public SolrQuery::getTermsIncludeLowerBound ( ) : bool
public SolrQuery::getTermsIncludeUpperBound ( ) : bool
public SolrQuery::getTermsLimit ( ) : int
public SolrQuery::getTermsLowerBound ( ) : string
public SolrQuery::getTermsMaxCount ( ) : int
public SolrQuery::getTermsMinCount ( ) : int
public SolrQuery::getTermsPrefix ( ) : string
public SolrQuery::getTermsReturnRaw ( ) : bool
public SolrQuery::getTermsSort ( ) : int
public SolrQuery::getTermsUpperBound ( ) : string
public SolrQuery::getTimeAllowed ( ) : int
public SolrQuery::removeExpandFilterQuery ( string $fq ) : SolrQuery
public SolrQuery::removeExpandSortField ( string $field ) : SolrQuery
public SolrQuery::removeFacetDateField ( string $field ) : SolrQuery
public SolrQuery::removeFacetDateOther ( string $value , string $field_override = ? ) : SolrQuery
public SolrQuery::removeFacetField ( string $field ) : SolrQuery
public SolrQuery::removeFacetQuery ( string $value ) : SolrQuery
public SolrQuery::removeField ( string $field ) : SolrQuery
public SolrQuery::removeFilterQuery ( string $fq ) : SolrQuery
public SolrQuery::removeHighlightField ( string $field ) : SolrQuery
public SolrQuery::removeMltField ( string $field ) : SolrQuery
public SolrQuery::removeMltQueryField ( string $queryField ) : SolrQuery
public SolrQuery::removeSortField ( string $field ) : SolrQuery
public SolrQuery::removeStatsFacet ( string $value ) : SolrQuery
public SolrQuery::removeStatsField ( string $field ) : SolrQuery
public SolrQuery::setEchoHandler ( bool $flag ) : SolrQuery
public SolrQuery::setEchoParams ( string $type ) : SolrQuery
public SolrQuery::setExpand ( bool $value ) : SolrQuery
public SolrQuery::setExpandQuery ( string $q ) : SolrQuery
public SolrQuery::setExpandRows ( int $value ) : SolrQuery
public SolrQuery::setExplainOther ( string $query ) : SolrQuery
public SolrQuery::setFacet ( bool $flag ) : SolrQuery
public SolrQuery::setFacetDateEnd ( string $value , string $field_override = ? ) : SolrQuery
public SolrQuery::setFacetDateGap ( string $value , string $field_override = ? ) : SolrQuery
public SolrQuery::setFacetDateHardEnd ( bool $value , string $field_override = ? ) : SolrQuery
public SolrQuery::setFacetDateStart ( string $value , string $field_override = ? ) : SolrQuery
public SolrQuery::setFacetEnumCacheMinDefaultFrequency ( int $frequency , string $field_override = ? ) : SolrQuery
public SolrQuery::setFacetLimit ( int $limit , string $field_override = ? ) : SolrQuery
public SolrQuery::setFacetMethod ( string $method , string $field_override = ? ) : SolrQuery
public SolrQuery::setFacetMinCount ( int $mincount , string $field_override = ? ) : SolrQuery
public SolrQuery::setFacetMissing ( bool $flag , string $field_override = ? ) : SolrQuery
public SolrQuery::setFacetOffset ( int $offset , string $field_override = ? ) : SolrQuery
public SolrQuery::setFacetPrefix ( string $prefix , string $field_override = ? ) : SolrQuery
public SolrQuery::setFacetSort ( int $facetSort , string $field_override = ? ) : SolrQuery
public SolrQuery::setGroup ( bool $value ) : SolrQuery
public SolrQuery::setGroupCachePercent ( int $percent ) : SolrQuery
public SolrQuery::setGroupFacet ( bool $value ) : SolrQuery
public SolrQuery::setGroupFormat ( string $value ) : SolrQuery
public SolrQuery::setGroupLimit ( int $value ) : SolrQuery
public SolrQuery::setGroupMain ( string $value ) : SolrQuery
public SolrQuery::setGroupNGroups ( bool $value ) : SolrQuery
public SolrQuery::setGroupOffset ( int $value ) : SolrQuery
public SolrQuery::setGroupTruncate ( bool $value ) : SolrQuery
public SolrQuery::setHighlight ( bool $flag ) : SolrQuery
public SolrQuery::setHighlightAlternateField ( string $field , string $field_override = ? ) : SolrQuery
public SolrQuery::setHighlightFormatter ( string $formatter , string $field_override = ? ) : SolrQuery
public SolrQuery::setHighlightFragmenter ( string $fragmenter , string $field_override = ? ) : SolrQuery
public SolrQuery::setHighlightFragsize ( int $size , string $field_override = ? ) : SolrQuery
public SolrQuery::setHighlightHighlightMultiTerm ( bool $flag ) : SolrQuery
public SolrQuery::setHighlightMaxAlternateFieldLength ( int $fieldLength , string $field_override = ? ) : SolrQuery
public SolrQuery::setHighlightMaxAnalyzedChars ( int $value ) : SolrQuery
public SolrQuery::setHighlightMergeContiguous ( bool $flag , string $field_override = ? ) : SolrQuery
public SolrQuery::setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars ) : SolrQuery
public SolrQuery::setHighlightRegexPattern ( string $value ) : SolrQuery
public SolrQuery::setHighlightRegexSlop ( float $factor ) : SolrQuery
public SolrQuery::setHighlightRequireFieldMatch ( bool $flag ) : SolrQuery
public SolrQuery::setHighlightSimplePost ( string $simplePost , string $field_override = ? ) : SolrQuery
public SolrQuery::setHighlightSimplePre ( string $simplePre , string $field_override = ? ) : SolrQuery
public SolrQuery::setHighlightSnippets ( int $value , string $field_override = ? ) : SolrQuery
public SolrQuery::setHighlightUsePhraseHighlighter ( bool $flag ) : SolrQuery
public SolrQuery::setMlt ( bool $flag ) : SolrQuery
public SolrQuery::setMltBoost ( bool $flag ) : SolrQuery
public SolrQuery::setMltCount ( int $count ) : SolrQuery
public SolrQuery::setMltMaxNumQueryTerms ( int $value ) : SolrQuery
public SolrQuery::setMltMaxNumTokens ( int $value ) : SolrQuery
public SolrQuery::setMltMaxWordLength ( int $maxWordLength ) : SolrQuery
public SolrQuery::setMltMinDocFrequency ( int $minDocFrequency ) : SolrQuery
public SolrQuery::setMltMinTermFrequency ( int $minTermFrequency ) : SolrQuery
public SolrQuery::setMltMinWordLength ( int $minWordLength ) : SolrQuery
public SolrQuery::setOmitHeader ( bool $flag ) : SolrQuery
public SolrQuery::setQuery ( string $query ) : SolrQuery
public SolrQuery::setRows ( int $rows ) : SolrQuery
public SolrQuery::setShowDebugInfo ( bool $flag ) : SolrQuery
public SolrQuery::setStart ( int $start ) : SolrQuery
public SolrQuery::setStats ( bool $flag ) : SolrQuery
public SolrQuery::setTerms ( bool $flag ) : SolrQuery
public SolrQuery::setTermsField ( string $fieldname ) : SolrQuery
public SolrQuery::setTermsIncludeLowerBound ( bool $flag ) : SolrQuery
public SolrQuery::setTermsIncludeUpperBound ( bool $flag ) : SolrQuery
public SolrQuery::setTermsLimit ( int $limit ) : SolrQuery
public SolrQuery::setTermsLowerBound ( string $lowerBound ) : SolrQuery
public SolrQuery::setTermsMaxCount ( int $frequency ) : SolrQuery
public SolrQuery::setTermsMinCount ( int $frequency ) : SolrQuery
public SolrQuery::setTermsPrefix ( string $prefix ) : SolrQuery
public SolrQuery::setTermsReturnRaw ( bool $flag ) : SolrQuery
public SolrQuery::setTermsSort ( int $sortType ) : SolrQuery
public SolrQuery::setTermsUpperBound ( string $upperBound ) : SolrQuery
public SolrQuery::setTimeAllowed ( int $timeAllowed ) : SolrQuery
}

Vordefinierte Konstanten

SolrDisMaxQuery::ORDER_ASC

Used to specify that the sorting should be in acending order (Duplicated for easier migration)

SolrDisMaxQuery::ORDER_DESC

Used to specify that the sorting should be in descending order (Duplicated for easier migration)

SolrDisMaxQuery::FACET_SORT_INDEX

Used to specify that the facet should sort by index (Duplicated for easier migration)

SolrDisMaxQuery::FACET_SORT_COUNT

Used to specify that the facet should sort by count (Duplicated for easier migration)

SolrDisMaxQuery::TERMS_SORT_INDEX

Used in the TermsComponent (Duplicated for easier migration)

SolrDisMaxQuery::TERMS_SORT_COUNT

Used in the TermsComponent (Duplicated for easier migration)

Inhaltsverzeichnis

  • SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)
  • SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)
  • SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)
  • SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::__construct — Class Constructor
  • SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)
  • SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)
  • SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)
  • SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)
  • SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter)
  • SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)
  • SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)
  • SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)
  • SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)
  • SolrDisMaxQuery::setQueryPhraseSlop — Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
  • SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)
  • SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)
  • SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser
  • SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax


Adds a Phrase Bigram Field (pf2 parameter)

  • « SolrDisMaxQuery
  • SolrDisMaxQuery::addBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Phrase Bigram Field (pf2 parameter)

SolrDisMaxQuery::addBigramPhraseField

(No version information available, might only be in Git)

SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)

Beschreibung

public SolrDisMaxQuery::addBigramPhraseField ( string $field , string $boost , string $slop = ? ) : SolrDisMaxQuery

Adds a Phrase Bigram Field (pf2 parameter) output format: field~slop^boost OR field^boost Slop is optional

Parameter-Liste

field

boost

slop

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::addBigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBigramPhraseField('cat', 2, 5.1)
    ->addBigramPhraseField('feature', 4.5)
;
echo $dismaxQuery;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5

Siehe auch

  • SolrDisMaxQuery::removeBigramPhraseField() - Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::setBigramPhraseFields() - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)


Adds a boost query field with value and optional boost (bq parameter)

  • « SolrDisMaxQuery::addBigramPhraseField
  • SolrDisMaxQuery::addPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a boost query field with value and optional boost (bq parameter)

SolrDisMaxQuery::addBoostQuery

(No version information available, might only be in Git)

SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)

Beschreibung

public SolrDisMaxQuery::addBoostQuery ( string $field , string $value , string $boost = ? ) : SolrDisMaxQuery

Adds a Boost Query field with value [and boost] (bq parameter)

Parameter-Liste

field

value

boost

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::addBoostQuery() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBoostQuery('cat', 'clothing', 2)
    ->addBoostQuery('cat', 'electronics', 5.1)
;
echo $dismaxQuery.PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&bq=cat:clothing^2 cat:electronics^5.1

Siehe auch

  • SolrDisMaxQuery::removeBoostQuery() - Removes a boost query partial by field name (bq)
  • SolrDisMaxQuery::setBoostQuery() - Directly Sets Boost Query Parameter (bq)


Adds a Phrase Field (pf parameter)

  • « SolrDisMaxQuery::addBoostQuery
  • SolrDisMaxQuery::addQueryField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Phrase Field (pf parameter)

SolrDisMaxQuery::addPhraseField

(No version information available, might only be in Git)

SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)

Beschreibung

public SolrDisMaxQuery::addPhraseField ( string $field , string $boost , string $slop = ? ) : SolrDisMaxQuery

Adds a Phrase Field (pf parameter)

Parameter-Liste

field

field name

boost

slop

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::addPhraseField() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addPhraseField('cat', 3, 1)
    ->addPhraseField('third', 4, 2)
    ->addPhraseField('source', 55)
;
echo $dismaxQuery;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&pf=cat~1^3 third~2^4 source^55

Siehe auch

  • SolrDisMaxQuery::removePhraseField() - Removes a Phrase Field (pf parameter)
  • SolrDisMaxQuery::setPhraseFields() - Sets Phrase Fields and their boosts (and slops) using pf2 parameter


Add a query field with optional boost (qf parameter)

  • « SolrDisMaxQuery::addPhraseField
  • SolrDisMaxQuery::addTrigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Add a query field with optional boost (qf parameter)

SolrDisMaxQuery::addQueryField

(No version information available, might only be in Git)

SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)

Beschreibung

public SolrDisMaxQuery::addQueryField ( string $field , string $boost = ? ) : SolrDisMaxQuery

Add a query field with optional boost (qf parameter)

Parameter-Liste

field

field name

boost

Boost value. Boosts documents with matching terms.

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::addQueryField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addQueryField("location", 4)
    ->addQueryField("price")
    ->addQueryField("sku")
    ->addQueryField("title",3.4)
;
echo $dismaxQuery;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&qf=location^4 price sku title^3.4

Siehe auch

  • SolrDisMaxQuery::removeQueryField() - Removes a Query Field (qf parameter)


Adds a Trigram Phrase Field (pf3 parameter)

  • « SolrDisMaxQuery::addQueryField
  • SolrDisMaxQuery::addUserField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Trigram Phrase Field (pf3 parameter)

SolrDisMaxQuery::addTrigramPhraseField

(No version information available, might only be in Git)

SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)

Beschreibung

public SolrDisMaxQuery::addTrigramPhraseField ( string $field , string $boost , string $slop = ? ) : SolrDisMaxQuery

Adds a Trigram Phrase Field (pf3 parameter)

Parameter-Liste

field

Field Name

boost

Field Boost

slop

Field Slop

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::addTrigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addTrigramPhraseField('cat', 2, 5.1)
->addTrigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

q=lucene&defType=%s&pf3=cat~5.1^2 feature^4.5

Siehe auch

  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Adds a field to User Fields Parameter (uf)

  • « SolrDisMaxQuery::addTrigramPhraseField
  • SolrDisMaxQuery::__construct »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a field to User Fields Parameter (uf)

SolrDisMaxQuery::addUserField

(No version information available, might only be in Git)

SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)

Beschreibung

public SolrDisMaxQuery::addUserField ( string $field ) : SolrDisMaxQuery

Adds a field to The User Fields Parameter (uf)

Parameter-Liste

field

Field Name

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::addUserField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addUserField('cat')
->addUserField('text')
->addUserField('*_dt');

echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&uf=cat text *_dt

Siehe auch

  • SolrDisMaxQuery::removeUserField() - Removes a field from The User Fields Parameter (uf)
  • SolrDisMaxQuery::setUserFields() - Sets User Fields parameter (uf)


Class Constructor

  • « SolrDisMaxQuery::addUserField
  • SolrDisMaxQuery::removeBigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Class Constructor

SolrDisMaxQuery::__construct

(No version information available, might only be in Git)

SolrDisMaxQuery::__construct — Class Constructor

Beschreibung

public SolrDisMaxQuery::__construct ( string $q = ? )

Class constructor initializes the object and sets the q parameter if passed

Parameter-Liste

q

Search Query (q parameter)

Rückgabewerte

Fehler/Exceptions

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Beispiele

Beispiel #1 SolrDisMaxQuery::__construct() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
echo $dismaxQuery;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

q=lucene&defType=edismax

Siehe auch


Removes phrase bigram field (pf2 parameter)

  • « SolrDisMaxQuery::__construct
  • SolrDisMaxQuery::removeBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes phrase bigram field (pf2 parameter)

SolrDisMaxQuery::removeBigramPhraseField

(No version information available, might only be in Git)

SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)

Beschreibung

public SolrDisMaxQuery::removeBigramPhraseField ( string $field ) : SolrDisMaxQuery

Removes a Bigram Phrase Field (pf2 parameter) that was previously added using SolrDisMaxQuery::addBigramPhraseField()

Parameter-Liste

field

The Field Name

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::removeBigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBigramPhraseField('cat', 2, 5.1)
    ->addBigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;

// remove cat from pf2
$dismaxQuery
    ->removeBigramPhraseField('cat');
echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5
q=lucene&defType=edismax&pf2=feature^4.5

Siehe auch

  • SolrDisMaxQuery::addBigramPhraseField() - Adds a Phrase Bigram Field (pf2 parameter)
  • SolrDisMaxQuery::setBigramPhraseFields() - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)


Removes a boost query partial by field name (bq)

  • « SolrDisMaxQuery::removeBigramPhraseField
  • SolrDisMaxQuery::removePhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a boost query partial by field name (bq)

SolrDisMaxQuery::removeBoostQuery

(No version information available, might only be in Git)

SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)

Beschreibung

public SolrDisMaxQuery::removeBoostQuery ( string $field ) : SolrDisMaxQuery

Removes a boost query partial from the existing query, only if SolrDisMaxQuery::addBoostQuery() was used.

Parameter-Liste

field

Field Name

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::removeBoostQuery() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBoostQuery('cat', 'electronics', 5.1)
    ->addBoostQuery('cat', 'hard drive')
;
echo $dismaxQuery.PHP_EOL;
// now remove a query part with field 'cat'
$dismaxQuery
->removeBoostQuery('cat');
echo $dismaxQuery . PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&bq=cat:electronics^5.1 cat:hard drive
q=lucene&defType=edismax&bq=cat:hard drive

Siehe auch

  • SolrDisMaxQuery::addBoostQuery() - Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::setBoostQuery() - Directly Sets Boost Query Parameter (bq)


Removes a Phrase Field (pf parameter)

  • « SolrDisMaxQuery::removeBoostQuery
  • SolrDisMaxQuery::removeQueryField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Phrase Field (pf parameter)

SolrDisMaxQuery::removePhraseField

(No version information available, might only be in Git)

SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)

Beschreibung

public SolrDisMaxQuery::removePhraseField ( string $field ) : SolrDisMaxQuery

Removes a Phrase Field (pf parameter) that was previously added using SolrDisMaxQuery::addPhraseField

Parameter-Liste

field

Field Name

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::removePhraseField() example

<?php
$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
    ->addPhraseField('first', 3, 1)
    ->addPhraseField('second', 4, 1)
    ->addPhraseField('cat', 55);
echo $dismaxQuery . PHP_EOL;
echo $dismaxQuery->removePhraseField('second');
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&pf=first~1^3 second~1^4 cat^55
q=lucene&defType=edismax&pf=first~1^3 cat^55

Siehe auch

  • SolrDisMaxQuery::addPhraseField() - Adds a Phrase Field (pf parameter)
  • SolrDisMaxQuery::setPhraseFields() - Sets Phrase Fields and their boosts (and slops) using pf2 parameter


Removes a Query Field (qf parameter)

  • « SolrDisMaxQuery::removePhraseField
  • SolrDisMaxQuery::removeTrigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Query Field (qf parameter)

SolrDisMaxQuery::removeQueryField

(No version information available, might only be in Git)

SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)

Beschreibung

public SolrDisMaxQuery::removeQueryField ( string $field ) : SolrDisMaxQuery

Removes a Query Field (qf parameter) from the field list added by SolrDisMaxQuery::addQueryField()

qf: When building DisjunctionMaxQueries from the user's query it specifies the fields to search in, and boosts for those fields.

Parameter-Liste

field

Field Name

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::removeQueryField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
    ->addQueryField('first', 3)
    ->addQueryField('second', 0.2)
    ->addQueryField('cat');
echo $dismaxQuery . PHP_EOL;
// remove field 'second'
echo $dismaxQuery->removeQueryField('second');
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&qf=first^3 second^0.2 cat
q=lucene&defType=edismax&qf=first^3 cat

Siehe auch

  • SolrDisMaxQuery::addQueryField() - Add a query field with optional boost (qf parameter)


Removes a Trigram Phrase Field (pf3 parameter)

  • « SolrDisMaxQuery::removeQueryField
  • SolrDisMaxQuery::removeUserField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Trigram Phrase Field (pf3 parameter)

SolrDisMaxQuery::removeTrigramPhraseField

(No version information available, might only be in Git)

SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)

Beschreibung

public SolrDisMaxQuery::removeTrigramPhraseField ( string $field ) : SolrDisMaxQuery

Removes a Trigram Phrase Field (pf3 parameter)

Parameter-Liste

field

Field Name

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::removeTrigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addTrigramPhraseField('cat', 2, 5.1)
->addTrigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;
// reverse
$dismaxQuery
->removeTrigramPhraseField('cat');
echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

q=lucene&defType=%s&pf3=cat~5.1^2 feature^4.5
q=lucene&defType=%s&pf3=feature^4.5

Siehe auch

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Removes a field from The User Fields Parameter (uf)

  • « SolrDisMaxQuery::removeTrigramPhraseField
  • SolrDisMaxQuery::setBigramPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a field from The User Fields Parameter (uf)

SolrDisMaxQuery::removeUserField

(No version information available, might only be in Git)

SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)

Beschreibung

public SolrDisMaxQuery::removeUserField ( string $field ) : SolrDisMaxQuery

Removes a field from The User Fields Parameter (uf)

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

field

Field Name

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::removeUserField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addUserField('cat')
->addUserField('text')
->addUserField('*_dt')
;
echo $dismaxQuery.PHP_EOL;

// remove field named 'text'
$dismaxQuery
->removeUserField('text');
echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=%s&uf=cat text *_dt
q=lucene&defType=%s&uf=cat *_dt

Siehe auch

  • SolrDisMaxQuery::addUserField() - Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::setUserFields() - Sets User Fields parameter (uf)


Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

  • « SolrDisMaxQuery::removeUserField
  • SolrDisMaxQuery::setBigramPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

SolrDisMaxQuery::setBigramPhraseFields

(No version information available, might only be in Git)

SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

Beschreibung

public SolrDisMaxQuery::setBigramPhraseFields ( string $fields ) : SolrDisMaxQuery

Sets Bigram Phrase Fields (pf2) and their boosts (and slops)

Parameter-Liste

fields

Fields boosts (slops)

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setBigramPhraseFields() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery->setBigramPhraseFields("cat~5.1^2 feature^4.5");
echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5

Siehe auch

  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)
  • SolrDisMaxQuery::addBigramPhraseFields()
  • SolrDisMaxQuery::removeBigramPhraseField() - Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)


Sets Bigram Phrase Slop (ps2 parameter)

  • « SolrDisMaxQuery::setBigramPhraseFields
  • SolrDisMaxQuery::setBoostFunction »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Bigram Phrase Slop (ps2 parameter)

SolrDisMaxQuery::setBigramPhraseSlop

(No version information available, might only be in Git)

SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)

Beschreibung

public SolrDisMaxQuery::setBigramPhraseSlop ( string $slop ) : SolrDisMaxQuery

Sets Bigram Phrase Slop (ps2 parameter). A default slop for Bigram phrase fields.

Parameter-Liste

slop

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setBigramPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$dismaxQuery->setBigramPhraseSlop(5);
echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&ps2=5

Siehe auch


Sets a Boost Function (bf parameter)

  • « SolrDisMaxQuery::setBigramPhraseSlop
  • SolrDisMaxQuery::setBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets a Boost Function (bf parameter)

SolrDisMaxQuery::setBoostFunction

(No version information available, might only be in Git)

SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter)

Beschreibung

public SolrDisMaxQuery::setBoostFunction ( string $function ) : SolrDisMaxQuery

Sets Boost Function (bf parameter).

Functions (with optional boosts) that will be included in the user's query to influence the score. Any function supported natively by Solr can be used, along with a boost value. e.g.:

recip(rord(myfield),1,2,3)^1.5

Parameter-Liste

function

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setBoostFunction() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$boostRecentDocsFunction = "recip(ms(NOW,mydatefield),3.16e-11,1,1)";
$dismaxQuery->setBoostFunction($boostRecentDocsFunction);

echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&bf=recip(ms(NOW,mydatefield),3.16e-11,1,1)

Siehe auch


Directly Sets Boost Query Parameter (bq)

  • « SolrDisMaxQuery::setBoostFunction
  • SolrDisMaxQuery::setMinimumMatch »
  • PHP Manual
  • SolrDisMaxQuery
  • Directly Sets Boost Query Parameter (bq)

SolrDisMaxQuery::setBoostQuery

(No version information available, might only be in Git)

SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)

Beschreibung

public SolrDisMaxQuery::setBoostQuery ( string $q ) : SolrDisMaxQuery

Sets Boost Query Parameter (bq)

Parameter-Liste

q

query

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setBoostQuery() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");

$dismaxQuery->setBoostQuery('cat:electronics manu:local^2');
echo $dismaxQuery.PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&bq=cat:electronics manu:local^2

Siehe auch

  • SolrDisMaxQuery::addBoostQuery() - Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::removeBoostQuery() - Removes a boost query partial by field name (bq)


Set Minimum "Should" Match (mm)

  • « SolrDisMaxQuery::setBoostQuery
  • SolrDisMaxQuery::setPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Set Minimum "Should" Match (mm)

SolrDisMaxQuery::setMinimumMatch

(No version information available, might only be in Git)

SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)

Beschreibung

public SolrDisMaxQuery::setMinimumMatch ( string $value ) : SolrDisMaxQuery

Set Minimum "Should" Match parameter (mm). If the default query operator is AND then mm=100%, if the default query operator (q.op) is OR, then mm=0%.

Parameter-Liste

value

Minimum match value/expression

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setMinimumMatch() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
// 75% of the query clauses must match
$dismaxQuery->setMinimumMatch("75%");
echo $dismaxQuery . PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

q=lucene&defType=edismax&mm=75%


Sets Phrase Fields and their boosts (and slops) using pf2 parameter

  • « SolrDisMaxQuery::setMinimumMatch
  • SolrDisMaxQuery::setPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Phrase Fields and their boosts (and slops) using pf2 parameter

SolrDisMaxQuery::setPhraseFields

(No version information available, might only be in Git)

SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter

Beschreibung

public SolrDisMaxQuery::setPhraseFields ( string $fields ) : SolrDisMaxQuery

Sets Phrase Fields (pf) and their boosts (and slops)

Parameter-Liste

fields

Fields, boosts [, slops]

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setPhraseFields() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery->setPhraseFields("cat~5.1^2 feature^4.5");
echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&pf=cat~5.1^2 feature^4.5

Siehe auch

  • SolrDisMaxQuery::addPhraseFields()
  • SolrDisMaxQuery::removePhraseField() - Removes a Phrase Field (pf parameter)


Sets the default slop on phrase queries (ps parameter)

  • « SolrDisMaxQuery::setPhraseFields
  • SolrDisMaxQuery::setQueryAlt »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets the default slop on phrase queries (ps parameter)

SolrDisMaxQuery::setPhraseSlop

(No version information available, might only be in Git)

SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)

Beschreibung

public SolrDisMaxQuery::setPhraseSlop ( string $slop ) : SolrDisMaxQuery

Sets the default amount of slop on phrase queries built with "pf", "pf2" and/or "pf3" fields (affects boosting). "ps" parameter

Parameter-Liste

slop

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$dismaxQuery->setPhraseSlop(4);
echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

q=lucene&defType=edismax&ps=4

Siehe auch


Set Query Alternate (q.alt parameter)

  • « SolrDisMaxQuery::setPhraseSlop
  • SolrDisMaxQuery::setQueryPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Set Query Alternate (q.alt parameter)

SolrDisMaxQuery::setQueryAlt

(No version information available, might only be in Git)

SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)

Beschreibung

public SolrDisMaxQuery::setQueryAlt ( string $q ) : SolrDisMaxQuery

Set Query Alternate (q.alt parameter)

When the main q parameter is not specified or is blank. The q.alt parameter is used

Parameter-Liste

q

Query String

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setQueryAlt() example

<?php

$dismaxQuery = new DisMaxQuery();
$dismaxQuery->setQueryAlt('*:*');

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

defType=edismax&q.alt=*:*&q=


Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

  • « SolrDisMaxQuery::setQueryAlt
  • SolrDisMaxQuery::setTieBreaker »
  • PHP Manual
  • SolrDisMaxQuery
  • Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

SolrDisMaxQuery::setQueryPhraseSlop

(No version information available, might only be in Git)

SolrDisMaxQuery::setQueryPhraseSlop — Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

Beschreibung

public SolrDisMaxQuery::setQueryPhraseSlop ( string $slop ) : SolrDisMaxQuery

The Query Phrase Slop is the amount of slop permitted on phrase queries explicitly included in the user's query string with the qf parameter.

slop refers to the number of positions one token needs to be moved in relation to another token in order to match a phrase specified in a query.

Parameter-Liste

slop

Amount of slop

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setQueryPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->setQueryPhraseSlop(3);
echo $dismaxQuery;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

defType=edismax&qs=3


Sets Tie Breaker parameter (tie parameter)

  • « SolrDisMaxQuery::setQueryPhraseSlop
  • SolrDisMaxQuery::setTrigramPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Tie Breaker parameter (tie parameter)

SolrDisMaxQuery::setTieBreaker

(No version information available, might only be in Git)

SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)

Beschreibung

public SolrDisMaxQuery::setTieBreaker ( string $tieBreaker ) : SolrDisMaxQuery

Sets Tie Breaker parameter (tie parameter)

Parameter-Liste

tieBreaker

The tie parameter specifies a float value (which should be something much less than 1) to use as tiebreaker in DisMax queries.

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setTieBreaker() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->setTieBreaker(0.1);

echo $dismaxQuery;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

defType=edismax&tie=0.1


Directly Sets Trigram Phrase Fields (pf3 parameter)

  • « SolrDisMaxQuery::setTieBreaker
  • SolrDisMaxQuery::setTrigramPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Directly Sets Trigram Phrase Fields (pf3 parameter)

SolrDisMaxQuery::setTrigramPhraseFields

(No version information available, might only be in Git)

SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)

Beschreibung

public SolrDisMaxQuery::setTrigramPhraseFields ( string $fields ) : SolrDisMaxQuery

Directly Sets Trigram Phrase Fields (pf3 parameter)

Parameter-Liste

fields

Trigram Phrase Fields

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setTrigramPhraseFields() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setTrigramPhraseFields('cat~5.1^2 feature^4.5');
echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

q=lucene&defType=edismax&pf3=cat~5.1^2 feature^4.5

Siehe auch

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Sets Trigram Phrase Slop (ps3 parameter)

  • « SolrDisMaxQuery::setTrigramPhraseFields
  • SolrDisMaxQuery::setUserFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Trigram Phrase Slop (ps3 parameter)

SolrDisMaxQuery::setTrigramPhraseSlop

(No version information available, might only be in Git)

SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)

Beschreibung

public SolrDisMaxQuery::setTrigramPhraseSlop ( string $slop ) : SolrDisMaxQuery

Sets Trigram Phrase Slop (ps3 parameter)

Parameter-Liste

slop

Phrase slop

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setTrigramPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setTrigramPhraseSlop(2);
echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&ps3=2

Siehe auch

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)


Sets User Fields parameter (uf)

  • « SolrDisMaxQuery::setTrigramPhraseSlop
  • SolrDisMaxQuery::useDisMaxQueryParser »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets User Fields parameter (uf)

SolrDisMaxQuery::setUserFields

(No version information available, might only be in Git)

SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)

Beschreibung

public SolrDisMaxQuery::setUserFields ( string $fields ) : SolrDisMaxQuery

Sets User Fields parameter (uf)

User Fields: Specifies which schema fields the end user shall be allowed to query.

Parameter-Liste

fields

Fields names separated by space

This parameter supports wildcards.

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::setUserFields() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setUserFields('field1 field2 *_txt');
echo $dismaxQuery.PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

q=lucene&defType=edismax&uf=field1 field2 *_txt

Siehe auch

  • SolrDisMaxQuery::addUserField() - Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::removeUserField() - Removes a field from The User Fields Parameter (uf)


Switch QueryParser to be DisMax Query Parser

  • « SolrDisMaxQuery::setUserFields
  • SolrDisMaxQuery::useEDisMaxQueryParser »
  • PHP Manual
  • SolrDisMaxQuery
  • Switch QueryParser to be DisMax Query Parser

SolrDisMaxQuery::useDisMaxQueryParser

(No version information available, might only be in Git)

SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser

Beschreibung

public SolrDisMaxQuery::useDisMaxQueryParser ( ) : SolrDisMaxQuery

Switch QueryParser to be DisMax Query Parser

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::useDisMaxQueryParser() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->useDisMaxQueryParser();
echo $dismaxQuery;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

defType=dismax

Siehe auch

  • SolrDisMaxQuery::useDisMaxQueryParser()


Switch QueryParser to be EDisMax

  • « SolrDisMaxQuery::useDisMaxQueryParser
  • SolrCollapseFunction »
  • PHP Manual
  • SolrDisMaxQuery
  • Switch QueryParser to be EDisMax

SolrDisMaxQuery::useEDisMaxQueryParser

(No version information available, might only be in Git)

SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax

Beschreibung

public SolrDisMaxQuery::useEDisMaxQueryParser ( ) : SolrDisMaxQuery

Switch QueryParser to be EDisMax. By default the query builder uses edismax, if it was switched using SolrDisMaxQuery::useDisMaxQueryParser(), it can be switched back using this method.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

SolrDisMaxQuery

Beispiele

Beispiel #1 SolrDisMaxQuery::useEDisMaxQueryParser() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->useEDisMaxQueryParser();
echo $dismaxQuery;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

defType=edismax

Siehe auch


The SolrCollapseFunction class

(PECL solr >= 2.2.0)

Einführung

Klassenbeschreibung

SolrCollapseFunction {
/* Constants */
const string NULLPOLICY_IGNORE = ignore ;
const string NULLPOLICY_EXPAND = expand ;
const string NULLPOLICY_COLLAPSE = collapse ;
/* Methoden */
public __construct ( string $field = ? )
public getField ( ) : string
public getHint ( ) : string
public getMax ( ) : string
public getMin ( ) : string
public getNullPolicy ( ) : string
public getSize ( ) : int
public setField ( string $fieldName ) : SolrCollapseFunction
public setHint ( string $hint ) : SolrCollapseFunction
public setMax ( string $max ) : SolrCollapseFunction
public setMin ( string $min ) : SolrCollapseFunction
public setNullPolicy ( string $nullPolicy ) : SolrCollapseFunction
public setSize ( int $size ) : SolrCollapseFunction
public __toString ( ) : string
}

Vordefinierte Konstanten

SolrCollapseFunction::NULLPOLICY_IGNORE

SolrCollapseFunction::NULLPOLICY_EXPAND

SolrCollapseFunction::NULLPOLICY_COLLAPSE

Inhaltsverzeichnis

  • SolrCollapseFunction::__construct — Constructor
  • SolrCollapseFunction::getField — Returns the field that is being collapsed on
  • SolrCollapseFunction::getHint — Returns collapse hint
  • SolrCollapseFunction::getMax — Returns max parameter
  • SolrCollapseFunction::getMin — Returns min parameter
  • SolrCollapseFunction::getNullPolicy — Returns null policy
  • SolrCollapseFunction::getSize — Returns size parameter
  • SolrCollapseFunction::setField — Sets the field to collapse on
  • SolrCollapseFunction::setHint — Sets collapse hint
  • SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query
  • SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only
  • SolrCollapseFunction::setNullPolicy — Sets the NULL Policy
  • SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only
  • SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function


Constructor

  • « SolrCollapseFunction
  • SolrCollapseFunction::getField »
  • PHP Manual
  • SolrCollapseFunction
  • Constructor

SolrCollapseFunction::__construct

(PECL solr >= 2.2.0)

SolrCollapseFunction::__construct — Constructor

Beschreibung

public SolrCollapseFunction::__construct ( string $field = ? )

Collapse Function constructor

Parameter-Liste

field

The field name to collapse on.

In order to collapse a result. The field type must be a single valued String, Int or Float.

Beispiele

Beispiel #1 SolrCollapseFunction::__construct() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$func = new SolrCollapseFunction('field_name');

$func->setMax('sum(cscore(),field(some_other_field))');
$func->setSize(100);
$func->setNullPolicy(SolrCollapseFunction::NULLPOLICY_EXPAND);

$query->collapse($func);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);

?>

Siehe auch

  • SolrQuery::collapse() - Collapses the result set to a single document per group


Returns the field that is being collapsed on

  • « SolrCollapseFunction::__construct
  • SolrCollapseFunction::getHint »
  • PHP Manual
  • SolrCollapseFunction
  • Returns the field that is being collapsed on

SolrCollapseFunction::getField

(PECL solr >= 2.2.0)

SolrCollapseFunction::getField — Returns the field that is being collapsed on

Beschreibung

public SolrCollapseFunction::getField ( ) : string

Returns the field that is being collapsed on.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrCollapseFunction::setField() - Sets the field to collapse on


Returns collapse hint

  • « SolrCollapseFunction::getField
  • SolrCollapseFunction::getMax »
  • PHP Manual
  • SolrCollapseFunction
  • Returns collapse hint

SolrCollapseFunction::getHint

(PECL solr >= 2.2.0)

SolrCollapseFunction::getHint — Returns collapse hint

Beschreibung

public SolrCollapseFunction::getHint ( ) : string

Returns collapse hint

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrCollapseFunction::setHint() - Sets collapse hint


Returns max parameter

  • « SolrCollapseFunction::getHint
  • SolrCollapseFunction::getMin »
  • PHP Manual
  • SolrCollapseFunction
  • Returns max parameter

SolrCollapseFunction::getMax

(PECL solr >= 2.2.0)

SolrCollapseFunction::getMax — Returns max parameter

Beschreibung

public SolrCollapseFunction::getMax ( ) : string

Returns max parameter

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrCollapseFunction::setMax() - Selects the group heads by the max value of a numeric field or function query


Returns min parameter

  • « SolrCollapseFunction::getMax
  • SolrCollapseFunction::getNullPolicy »
  • PHP Manual
  • SolrCollapseFunction
  • Returns min parameter

SolrCollapseFunction::getMin

(PECL solr >= 2.2.0)

SolrCollapseFunction::getMin — Returns min parameter

Beschreibung

public SolrCollapseFunction::getMin ( ) : string

Returns min parameter

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrCollapseFunction::setMin() - Sets the initial size of the collapse data structures when collapsing on a numeric field only


Returns null policy

  • « SolrCollapseFunction::getMin
  • SolrCollapseFunction::getSize »
  • PHP Manual
  • SolrCollapseFunction
  • Returns null policy

SolrCollapseFunction::getNullPolicy

(PECL solr >= 2.2.0)

SolrCollapseFunction::getNullPolicy — Returns null policy

Beschreibung

public SolrCollapseFunction::getNullPolicy ( ) : string

Returns null policy used or null

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrCollapseFunction::setNullPolicy() - Sets the NULL Policy


Returns size parameter

  • « SolrCollapseFunction::getNullPolicy
  • SolrCollapseFunction::setField »
  • PHP Manual
  • SolrCollapseFunction
  • Returns size parameter

SolrCollapseFunction::getSize

(PECL solr >= 2.2.0)

SolrCollapseFunction::getSize — Returns size parameter

Beschreibung

public SolrCollapseFunction::getSize ( ) : int

Gets the initial size of the collapse data structures when collapsing on a numeric field only

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • SolrCollapseFunction::setSize() - Sets the initial size of the collapse data structures when collapsing on a numeric field only


Sets the field to collapse on

  • « SolrCollapseFunction::getSize
  • SolrCollapseFunction::setHint »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the field to collapse on

SolrCollapseFunction::setField

(PECL solr >= 2.2.0)

SolrCollapseFunction::setField — Sets the field to collapse on

Beschreibung

public SolrCollapseFunction::setField ( string $fieldName ) : SolrCollapseFunction

The field name to collapse on. In order to collapse a result. The field type must be a single valued String, Int or Float.

Parameter-Liste

fieldName

Rückgabewerte

SolrCollapseFunction


Sets collapse hint

  • « SolrCollapseFunction::setField
  • SolrCollapseFunction::setMax »
  • PHP Manual
  • SolrCollapseFunction
  • Sets collapse hint

SolrCollapseFunction::setHint

(PECL solr >= 2.2.0)

SolrCollapseFunction::setHint — Sets collapse hint

Beschreibung

public SolrCollapseFunction::setHint ( string $hint ) : SolrCollapseFunction

Sets collapse hint

Parameter-Liste

hint

Currently there is only one hint available "top_fc", which stands for top level FieldCache

Rückgabewerte

SolrCollapseFunction

Beispiele

Beispiel #1 SolrCollapseFunction::setHint() example

<?php

/* ... */

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

...


Selects the group heads by the max value of a numeric field or function query

  • « SolrCollapseFunction::setHint
  • SolrCollapseFunction::setMin »
  • PHP Manual
  • SolrCollapseFunction
  • Selects the group heads by the max value of a numeric field or function query

SolrCollapseFunction::setMax

(PECL solr >= 2.2.0)

SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query

Beschreibung

public SolrCollapseFunction::setMax ( string $max ) : SolrCollapseFunction

Selects the group heads by the max value of a numeric field or function query.

Parameter-Liste

max

Rückgabewerte

SolrCollapseFunction

Beispiele

Beispiel #1 SolrCollapseFunction::setMax() example

<?php

$func = new SolrCollapseFunction('field_name');

$func->setMax('sum(cscore(),field(some_field))');

$query = new SolrQuery('*:*');

$query->collapse($func);

?>


Sets the initial size of the collapse data structures when collapsing on a numeric field only

  • « SolrCollapseFunction::setMax
  • SolrCollapseFunction::setNullPolicy »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the initial size of the collapse data structures when collapsing on a numeric field only

SolrCollapseFunction::setMin

(PECL solr >= 2.2.0)

SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only

Beschreibung

public SolrCollapseFunction::setMin ( string $min ) : SolrCollapseFunction

Sets the initial size of the collapse data structures when collapsing on a numeric field only

Parameter-Liste

min

Rückgabewerte

SolrCollapseFunction


Sets the NULL Policy

  • « SolrCollapseFunction::setMin
  • SolrCollapseFunction::setSize »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the NULL Policy

SolrCollapseFunction::setNullPolicy

(PECL solr >= 2.2.0)

SolrCollapseFunction::setNullPolicy — Sets the NULL Policy

Beschreibung

public SolrCollapseFunction::setNullPolicy ( string $nullPolicy ) : SolrCollapseFunction

Sets the NULL Policy. One of the 3 policies defined as class constants shall be passed. Accepts ignore, expand, or collapse policies.

Parameter-Liste

nullPolicy

Rückgabewerte

SolrCollapseFunction


Sets the initial size of the collapse data structures when collapsing on a numeric field only

  • « SolrCollapseFunction::setNullPolicy
  • SolrCollapseFunction::__toString »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the initial size of the collapse data structures when collapsing on a numeric field only

SolrCollapseFunction::setSize

(PECL solr >= 2.2.0)

SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only

Beschreibung

public SolrCollapseFunction::setSize ( int $size ) : SolrCollapseFunction

Sets the initial size of the collapse data structures when collapsing on a numeric field only.

Parameter-Liste

size

Rückgabewerte

SolrCollapseFunction


Returns a string representing the constructed collapse function

  • « SolrCollapseFunction::setSize
  • SolrException »
  • PHP Manual
  • SolrCollapseFunction
  • Returns a string representing the constructed collapse function

SolrCollapseFunction::__toString

(PECL solr >= 2.2.0)

SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function

Beschreibung

public SolrCollapseFunction::__toString ( ) : string

Returns a string representing the constructed collapse function

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The SolrException class

(PECL solr >= 0.9.2)

Einführung

This is the base class for all exception thrown by the Solr extension classes.

Klassenbeschreibung

SolrException extends Exception {
/* Eigenschaften */
protected int $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
public getInternalInfo ( ) : array
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

sourceline

The line in c-space source file where exception was generated

sourcefile

The c-space source file where exception was generated

zif_name

The c-space function where exception was generated

Inhaltsverzeichnis

  • SolrException::getInternalInfo — Returns internal information where the Exception was thrown


Returns internal information where the Exception was thrown

  • « SolrException
  • SolrClientException »
  • PHP Manual
  • SolrException
  • Returns internal information where the Exception was thrown

SolrException::getInternalInfo

(PECL solr >= 0.9.2)

SolrException::getInternalInfo — Returns internal information where the Exception was thrown

Beschreibung

public SolrException::getInternalInfo ( ) : array

Returns internal information where the Exception was thrown.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing internal information where the error was thrown. Used only for debugging by extension developers.


The SolrClientException class

(PECL solr >= 0.9.2)

Einführung

An exception thrown when there is an error while making a request to the server from the client.

Klassenbeschreibung

SolrClientException extends SolrException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected int $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Methoden */
public getInternalInfo ( ) : array
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
public SolrException::getInternalInfo ( ) : array
}

Inhaltsverzeichnis

  • SolrClientException::getInternalInfo — Returns internal information where the Exception was thrown


Returns internal information where the Exception was thrown

  • « SolrClientException
  • SolrServerException »
  • PHP Manual
  • SolrClientException
  • Returns internal information where the Exception was thrown

SolrClientException::getInternalInfo

(PECL solr >= 0.9.2)

SolrClientException::getInternalInfo — Returns internal information where the Exception was thrown

Beschreibung

public SolrClientException::getInternalInfo ( ) : array

Returns internal information where the Exception was thrown.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing internal information where the error was thrown. Used only for debugging by extension developers.


The SolrServerException class

(PECL Solr >= 1.1.0, >=2.0.0)

Einführung

An exception thrown when there is an error produced by the Solr Server itself.

Klassenbeschreibung

SolrServerException extends SolrException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected int $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Methoden */
public getInternalInfo ( ) : array
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
public SolrException::getInternalInfo ( ) : array
}

Inhaltsverzeichnis

  • SolrServerException::getInternalInfo — Returns internal information where the Exception was thrown


Returns internal information where the Exception was thrown

  • « SolrServerException
  • SolrIllegalArgumentException »
  • PHP Manual
  • SolrServerException
  • Returns internal information where the Exception was thrown

SolrServerException::getInternalInfo

(PECL solr >= 1.1.0, >=2.0.0)

SolrServerException::getInternalInfo — Returns internal information where the Exception was thrown

Beschreibung

public SolrServerException::getInternalInfo ( ) : array

Returns internal information where the Exception was thrown.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing internal information where the error was thrown. Used only for debugging by extension developers.


The SolrIllegalArgumentException class

(PECL solr >= 0.9.2)

Einführung

This object is thrown when an illegal or invalid argument is passed to a method.

Klassenbeschreibung

SolrIllegalArgumentException extends SolrException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected int $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Methoden */
public getInternalInfo ( ) : array
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
public SolrException::getInternalInfo ( ) : array
}

Inhaltsverzeichnis

  • SolrIllegalArgumentException::getInternalInfo — Returns internal information where the Exception was thrown


Returns internal information where the Exception was thrown

  • « SolrIllegalArgumentException
  • SolrIllegalOperationException »
  • PHP Manual
  • SolrIllegalArgumentException
  • Returns internal information where the Exception was thrown

SolrIllegalArgumentException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalArgumentException::getInternalInfo — Returns internal information where the Exception was thrown

Beschreibung

public SolrIllegalArgumentException::getInternalInfo ( ) : array

Returns internal information where the Exception was thrown.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing internal information where the error was thrown. Used only for debugging by extension developers.


The SolrIllegalOperationException class

(PECL solr >= 0.9.2)

Einführung

This object is thrown when an illegal or unsupported operation is performed on an object.

Klassenbeschreibung

SolrIllegalOperationException extends SolrException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected int $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Methoden */
public getInternalInfo ( ) : array
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
public SolrException::getInternalInfo ( ) : array
}

Inhaltsverzeichnis

  • SolrIllegalOperationException::getInternalInfo — Returns internal information where the Exception was thrown


Returns internal information where the Exception was thrown

  • « SolrIllegalOperationException
  • SolrMissingMandatoryParameterException »
  • PHP Manual
  • SolrIllegalOperationException
  • Returns internal information where the Exception was thrown

SolrIllegalOperationException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalOperationException::getInternalInfo — Returns internal information where the Exception was thrown

Beschreibung

public SolrIllegalOperationException::getInternalInfo ( ) : array

Returns internal information where the Exception was thrown.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing internal information where the error was thrown. Used only for debugging by extension developers.


The SolrMissingMandatoryParameterException class

(No version information available, might only be in Git)

Einführung

Klassenbeschreibung

SolrMissingMandatoryParameterException extends SolrException {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected int $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
public SolrException::getInternalInfo ( ) : array
}


Sphinx Client

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • SphinxClient — The SphinxClient class
    • SphinxClient::addQuery — Add query to multi-query batch
    • SphinxClient::buildExcerpts — Build text snippets
    • SphinxClient::buildKeywords — Extract keywords from query
    • SphinxClient::close — Closes previously opened persistent connection
    • SphinxClient::__construct — Create a new SphinxClient object
    • SphinxClient::escapeString — Escape special characters
    • SphinxClient::getLastError — Get the last error message
    • SphinxClient::getLastWarning — Get the last warning
    • SphinxClient::open — Opens persistent connection to the server
    • SphinxClient::query — Execute search query
    • SphinxClient::resetFilters — Clear all filters
    • SphinxClient::resetGroupBy — Clear all group-by settings
    • SphinxClient::runQueries — Run a batch of search queries
    • SphinxClient::setArrayResult — Change the format of result set array
    • SphinxClient::setConnectTimeout — Set connection timeout
    • SphinxClient::setFieldWeights — Set field weights
    • SphinxClient::setFilter — Add new integer values set filter
    • SphinxClient::setFilterFloatRange — Add new float range filter
    • SphinxClient::setFilterRange — Add new integer range filter
    • SphinxClient::setGeoAnchor — Set anchor point for a geosphere distance calculations
    • SphinxClient::setGroupBy — Set grouping attribute
    • SphinxClient::setGroupDistinct — Set attribute name for per-group distinct values count calculations
    • SphinxClient::setIDRange — Set a range of accepted document IDs
    • SphinxClient::setIndexWeights — Set per-index weights
    • SphinxClient::setLimits — Set offset and limit of the result set
    • SphinxClient::setMatchMode — Set full-text query matching mode
    • SphinxClient::setMaxQueryTime — Set maximum query time
    • SphinxClient::setOverride — Sets temporary per-document attribute value overrides
    • SphinxClient::setRankingMode — Set ranking mode
    • SphinxClient::setRetries — Set retry count and delay
    • SphinxClient::setSelect — Set select clause
    • SphinxClient::setServer — Set searchd host and port
    • SphinxClient::setSortMode — Set matches sorting mode
    • SphinxClient::status — Queries searchd status
    • SphinxClient::updateAttributes — Update document attributes


Einführung

This extension provides bindings for Sphinx search client library. Sphinx is a standalone search engine meant to provide fast, size-efficient and relevant fulltext search functions to other applications. Sphinx was specially designed to integrate well with SQL databases and scripting languages. Both Sphinx and its client library can be obtained from the » official site


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

PECL/sphinx requires PHP 5.2.2 or newer.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/sphinx.

If the ./configure script generated by phpize is having trouble finding the libsphinxclient files (for example, it was installed into a custom prefix directory), use ./configure --with-sphinx=$PREFIX, where $PREFIX is installation prefix of libsphinxclient.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SEARCHD_OK (int)
SEARCHD_ERROR (int)
SEARCHD_RETRY (int)
SEARCHD_WARNING (int)
SPH_MATCH_ALL (int)
SPH_MATCH_ANY (int)
SPH_MATCH_PHRASE (int)
SPH_MATCH_BOOLEAN (int)
SPH_MATCH_EXTENDED (int)
SPH_MATCH_FULLSCAN (int)
SPH_MATCH_EXTENDED2 (int)
SPH_RANK_PROXIMITY_BM25 (int)
SPH_RANK_BM25 (int)
SPH_RANK_NONE (int)
SPH_RANK_WORDCOUNT (int)
SPH_SORT_RELEVANCE (int)
SPH_SORT_ATTR_DESC (int)
SPH_SORT_ATTR_ASC (int)
SPH_SORT_TIME_SEGMENTS (int)
SPH_SORT_EXTENDED (int)
SPH_SORT_EXPR (int)
SPH_FILTER_VALUES (int)
SPH_FILTER_RANGE (int)
SPH_FILTER_FLOATRANGE (int)
SPH_ATTR_INTEGER (int)
SPH_ATTR_TIMESTAMP (int)
SPH_ATTR_ORDINAL (int)
SPH_ATTR_BOOL (int)
SPH_ATTR_FLOAT (int)
SPH_ATTR_MULTI (int)
SPH_GROUPBY_DAY (int)
SPH_GROUPBY_WEEK (int)
SPH_GROUPBY_MONTH (int)
SPH_GROUPBY_YEAR (int)
SPH_GROUPBY_ATTR (int)
SPH_GROUPBY_ATTRPAIR (int)


Beispiele

Beispiel #1 Basic usage example

<?php

$s = new SphinxClient;
$s->setServer("localhost", 6712);
$s->setMatchMode(SPH_MATCH_ANY);
$s->setMaxQueryTime(3);

$result = $s->query("test");

var_dump($result);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(10) {
  ["error"]=>
  string(0) ""
  ["warning"]=>
  string(0) ""
  ["status"]=>
  int(0)
  ["fields"]=>
  array(3) {
    [0]=>
    string(7) "subject"
    [1]=>
    string(4) "body"
    [2]=>
    string(6) "author"
  }
  ["attrs"]=>
  array(0) {
  }
  ["matches"]=>
  array(1) {
    [3]=>
    array(2) {
      ["weight"]=>
      int(1)
      ["attrs"]=>
      array(0) {
      }
    }
  }
  ["total"]=>
  int(1)
  ["total_found"]=>
  int(1)
  ["time"]=>
  float(0)
  ["words"]=>
  array(1) {
    ["to"]=>
    array(2) {
      ["docs"]=>
      int(1)
      ["hits"]=>
      int(1)
    }
  }
}


The SphinxClient class

(PECL sphinx >= 0.1.0)

Einführung

The SphinxClient class provides object-oriented interface to Sphinx.

Klassenbeschreibung

SphinxClient {
/* Methoden */
public addQuery ( string $query , string $index = "*" , string $comment = "" ) : int
public buildExcerpts ( array $docs , string $index , string $words , array $opts = ? ) : array|false
public buildKeywords ( string $query , string $index , bool $hits ) : array
public close ( ) : bool
public __construct ( )
public escapeString ( string $string ) : string
public getLastError ( ) : string
public getLastWarning ( ) : string
public open ( ) : bool
public query ( string $query , string $index = "*" , string $comment = "" ) : array
public resetFilters ( ) : void
public resetGroupBy ( ) : void
public runQueries ( ) : array
public setArrayResult ( bool $array_result = false ) : bool
public setConnectTimeout ( float $timeout ) : bool
public setFieldWeights ( array $weights ) : bool
public setFilter ( string $attribute , array $values , bool $exclude = false ) : bool
public setFilterFloatRange ( string $attribute , float $min , float $max , bool $exclude = false ) : bool
public setFilterRange ( string $attribute , int $min , int $max , bool $exclude = false ) : bool
public setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude ) : bool
public setGroupBy ( string $attribute , int $func , string $groupsort = "@group desc" ) : bool
public setGroupDistinct ( string $attribute ) : bool
public setIDRange ( int $min , int $max ) : bool
public setIndexWeights ( array $weights ) : bool
public setLimits ( int $offset , int $limit , int $max_matches = 0 , int $cutoff = 0 ) : bool
public setMatchMode ( int $mode ) : bool
public setMaxQueryTime ( int $qtime ) : bool
public setOverride ( string $attribute , int $type , array $values ) : bool
public setRankingMode ( int $ranker ) : bool
public setRetries ( int $count , int $delay = 0 ) : bool
public setSelect ( string $clause ) : bool
public setServer ( string $server , int $port ) : bool
public setSortMode ( int $mode , string $sortby = ? ) : bool
public status ( ) : array
public updateAttributes ( string $index , array $attributes , array $values , bool $mva = false ) : int
}

Inhaltsverzeichnis

  • SphinxClient::addQuery — Add query to multi-query batch
  • SphinxClient::buildExcerpts — Build text snippets
  • SphinxClient::buildKeywords — Extract keywords from query
  • SphinxClient::close — Closes previously opened persistent connection
  • SphinxClient::__construct — Create a new SphinxClient object
  • SphinxClient::escapeString — Escape special characters
  • SphinxClient::getLastError — Get the last error message
  • SphinxClient::getLastWarning — Get the last warning
  • SphinxClient::open — Opens persistent connection to the server
  • SphinxClient::query — Execute search query
  • SphinxClient::resetFilters — Clear all filters
  • SphinxClient::resetGroupBy — Clear all group-by settings
  • SphinxClient::runQueries — Run a batch of search queries
  • SphinxClient::setArrayResult — Change the format of result set array
  • SphinxClient::setConnectTimeout — Set connection timeout
  • SphinxClient::setFieldWeights — Set field weights
  • SphinxClient::setFilter — Add new integer values set filter
  • SphinxClient::setFilterFloatRange — Add new float range filter
  • SphinxClient::setFilterRange — Add new integer range filter
  • SphinxClient::setGeoAnchor — Set anchor point for a geosphere distance calculations
  • SphinxClient::setGroupBy — Set grouping attribute
  • SphinxClient::setGroupDistinct — Set attribute name for per-group distinct values count calculations
  • SphinxClient::setIDRange — Set a range of accepted document IDs
  • SphinxClient::setIndexWeights — Set per-index weights
  • SphinxClient::setLimits — Set offset and limit of the result set
  • SphinxClient::setMatchMode — Set full-text query matching mode
  • SphinxClient::setMaxQueryTime — Set maximum query time
  • SphinxClient::setOverride — Sets temporary per-document attribute value overrides
  • SphinxClient::setRankingMode — Set ranking mode
  • SphinxClient::setRetries — Set retry count and delay
  • SphinxClient::setSelect — Set select clause
  • SphinxClient::setServer — Set searchd host and port
  • SphinxClient::setSortMode — Set matches sorting mode
  • SphinxClient::status — Queries searchd status
  • SphinxClient::updateAttributes — Update document attributes


Add query to multi-query batch

  • « SphinxClient
  • SphinxClient::buildExcerpts »
  • PHP Manual
  • SphinxClient
  • Add query to multi-query batch

SphinxClient::addQuery

(PECL sphinx >= 0.1.0)

SphinxClient::addQuery — Add query to multi-query batch

Beschreibung

public SphinxClient::addQuery ( string $query , string $index = "*" , string $comment = "" ) : int

Adds query with the current settings to multi-query batch. This method doesn't affect current settings (sorting, filtering, grouping etc.) in any way.

Parameter-Liste

query

Query string.

index

An index name (or names).

comment

Rückgabewerte

Returns an index in an array of results that will be returned by SphinxClient::runQueries call or false on error.

Siehe auch

  • SphinxClient::runQueries
  • SphinxClient::query


Build text snippets

  • « SphinxClient::addQuery
  • SphinxClient::buildKeywords »
  • PHP Manual
  • SphinxClient
  • Build text snippets

SphinxClient::buildExcerpts

(PECL sphinx >= 0.1.0)

SphinxClient::buildExcerpts — Build text snippets

Beschreibung

public SphinxClient::buildExcerpts ( array $docs , string $index , string $words , array $opts = ? ) : array|false

Connects to searchd, requests it to generate excerpts (snippets) from the given documents, and returns the results.

Parameter-Liste

docs

Array of strings with documents' contents.

index

Index name.

words

Keywords to highlight.

opts

Associative array of additional highlighting options (see below).

Highlighting options
Option | Description
"before_match" | A string to insert before a keyword match. Default is "<b>".
"after_match" | A string to insert after a keyword match. Default is "</b>".
"chunk_separator" | A string to insert between snippet chunks (passages). Default is " ... ".
"limit" | Maximum snippet size, in symbols (codepoints). Integer, default is 256.
"around" | How much words to pick around each matching keywords block. Integer, default is 5.
"exact_phrase" | Whether to highlight exact query phrase matches only instead of individual keywords. Boolean, default is false.
"single_passage" | Whether to extract single best passage only. Boolean, default is false.

Rückgabewerte

Returns array of snippets on successIm Fehlerfall wird false zurückgegeben..


Extract keywords from query

  • « SphinxClient::buildExcerpts
  • SphinxClient::close »
  • PHP Manual
  • SphinxClient
  • Extract keywords from query

SphinxClient::buildKeywords

(PECL sphinx >= 0.1.0)

SphinxClient::buildKeywords — Extract keywords from query

Beschreibung

public SphinxClient::buildKeywords ( string $query , string $index , bool $hits ) : array

Extracts keywords from query using tokenizer settings for the given index, optionally with per-keyword occurrence statistics.

Parameter-Liste

query

A query to extract keywords from.

index

An index to get tokenizing settings and keyword occurrence statistics from.

hits

A boolean flag to enable/disable keyword statistics generation.

Rückgabewerte

Returns an array of associative arrays with per-keyword information.


Closes previously opened persistent connection

  • « SphinxClient::buildKeywords
  • SphinxClient::__construct »
  • PHP Manual
  • SphinxClient
  • Closes previously opened persistent connection

SphinxClient::close

(PECL sphinx >= 1.0.3)

SphinxClient::close — Closes previously opened persistent connection

Beschreibung

public SphinxClient::close ( ) : bool

Closes previously opened persistent connection.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Changelog

PECL/sphinx Version | Beschreibung
PECL sphinx 1.0.3 | Added SphinxClient::close(), available only if compiled with libsphinxclient >= 0.9.9.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::open


Create a new SphinxClient object

  • « SphinxClient::close
  • SphinxClient::escapeString »
  • PHP Manual
  • SphinxClient
  • Create a new SphinxClient object

SphinxClient::__construct

(PECL sphinx >= 0.1.0)

SphinxClient::__construct — Create a new SphinxClient object

Beschreibung

public SphinxClient::__construct ( )

Creates a new SphinxClient object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Escape special characters

  • « SphinxClient::__construct
  • SphinxClient::getLastError »
  • PHP Manual
  • SphinxClient
  • Escape special characters

SphinxClient::escapeString

(PECL sphinx >= 0.1.0)

SphinxClient::escapeString — Escape special characters

Beschreibung

public SphinxClient::escapeString ( string $string ) : string

Escapes characters that are treated as special operators by the query language parser.

Parameter-Liste

string

String to escape.

Rückgabewerte

Returns escaped string.


Get the last error message

  • « SphinxClient::escapeString
  • SphinxClient::getLastWarning »
  • PHP Manual
  • SphinxClient
  • Get the last error message

SphinxClient::getLastError

(PECL sphinx >= 0.1.0)

SphinxClient::getLastError — Get the last error message

Beschreibung

public SphinxClient::getLastError ( ) : string

Returns string with the last error message. If there were no errors during the previous API call, empty string is returned. This method doesn't reset the error message, so you can safely call it several times.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the last error message or an empty string if there were no errors.

Siehe auch

  • SphinxClient::getLastWarning


Get the last warning

  • « SphinxClient::getLastError
  • SphinxClient::open »
  • PHP Manual
  • SphinxClient
  • Get the last warning

SphinxClient::getLastWarning

(PECL sphinx >= 0.1.0)

SphinxClient::getLastWarning — Get the last warning

Beschreibung

public SphinxClient::getLastWarning ( ) : string

Returns last warning message. If there were no warnings during the previous API call, empty string is returned. This method doesn't reset the warning, so you can safely call it several times.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the last warning message or an empty string if there were no warnings.

Siehe auch

  • SphinxClient::getLastError


Opens persistent connection to the server

  • « SphinxClient::getLastWarning
  • SphinxClient::query »
  • PHP Manual
  • SphinxClient
  • Opens persistent connection to the server

SphinxClient::open

(PECL sphinx >= 1.0.3)

SphinxClient::open — Opens persistent connection to the server

Beschreibung

public SphinxClient::open ( ) : bool

Opens persistent connection to the server.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Changelog

PECL/sphinx Version | Beschreibung
PECL sphinx 1.0.3 | Added SphinxClient::open(), available only if compiled with libsphinxclient >= 0.9.9.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::close


Execute search query

  • « SphinxClient::open
  • SphinxClient::resetFilters »
  • PHP Manual
  • SphinxClient
  • Execute search query

SphinxClient::query

(PECL sphinx >= 0.1.0)

SphinxClient::query — Execute search query

Beschreibung

public SphinxClient::query ( string $query , string $index = "*" , string $comment = "" ) : array

Connects to searchd server, runs the given search query with the current settings, obtains and returns the result set.

Parameter-Liste

query

Query string.

index

An index name (or names).

comment

Rückgabewerte

On success, SphinxClient::query() returns a list of found matches and additional per-query statistics. The result set is a hash utilize other structures instead of hash) with the following keys and values:

Result set structure
Key | Value description
"matches" | An array with found document IDs as keys and their weight and attributes values as values
"total" | Total number of matches found and retrieved (depends on your settings)
"total_found" | Total number of found documents matching the query
"words" | An array with words (case-folded and stemmed) as keys and per-word statistics as values
"error" | Query error message reported by searchd
"warning" | Query warning reported by searchd

Siehe auch

  • SphinxClient::runQueries
  • SphinxClient::addQuery


Clear all filters

  • « SphinxClient::query
  • SphinxClient::resetGroupBy »
  • PHP Manual
  • SphinxClient
  • Clear all filters

SphinxClient::resetFilters

(PECL sphinx >= 0.1.0)

SphinxClient::resetFilters — Clear all filters

Beschreibung

public SphinxClient::resetFilters ( ) : void

Clears all currently set filters. This call is normally required when using multi-queries. You might want to set different filters for different queries in the batch. To do that, you should call SphinxClient::resetFilters() and add new filters using the respective calls.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • SphinxClient::resetGroupBy


Clear all group-by settings

  • « SphinxClient::resetFilters
  • SphinxClient::runQueries »
  • PHP Manual
  • SphinxClient
  • Clear all group-by settings

SphinxClient::resetGroupBy

(PECL sphinx >= 0.1.0)

SphinxClient::resetGroupBy — Clear all group-by settings

Beschreibung

public SphinxClient::resetGroupBy ( ) : void

Clears all currently group-by settings, and disables group-by. This call is normally required only when using multi-queries.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • SphinxClient::resetGroupBy


Run a batch of search queries

  • « SphinxClient::resetGroupBy
  • SphinxClient::setArrayResult »
  • PHP Manual
  • SphinxClient
  • Run a batch of search queries

SphinxClient::runQueries

(PECL sphinx >= 0.1.0)

SphinxClient::runQueries — Run a batch of search queries

Beschreibung

public SphinxClient::runQueries ( ) : array

Connects to searchd, runs a batch of all queries added using SphinxClient::addQuery, obtains and returns the result sets.

Rückgabewerte

Returns false on failure and array of result sets on success.

Siehe auch

  • SphinxClient::addQuery
  • SphinxClient::query


Change the format of result set array

  • « SphinxClient::runQueries
  • SphinxClient::setConnectTimeout »
  • PHP Manual
  • SphinxClient
  • Change the format of result set array

SphinxClient::setArrayResult

(PECL sphinx >= 0.1.0)

SphinxClient::setArrayResult — Change the format of result set array

Beschreibung

public SphinxClient::setArrayResult ( bool $array_result = false ) : bool

Controls the format of search results set arrays (whether matches should be returned as an array or a hash).

Parameter-Liste

array_result

If array_result is false, matches are returned as a hash with document IDs as keys, and other information (weight, attributes) as values. If array_result is true, matches are returned as a plain array with complete per-match information including document IDs.

Rückgabewerte

Always returns true.


Set connection timeout

  • « SphinxClient::setArrayResult
  • SphinxClient::setFieldWeights »
  • PHP Manual
  • SphinxClient
  • Set connection timeout

SphinxClient::setConnectTimeout

(PECL sphinx >= 0.1.0)

SphinxClient::setConnectTimeout — Set connection timeout

Beschreibung

public SphinxClient::setConnectTimeout ( float $timeout ) : bool

Sets connection timeout (in seconds) for searchd connection.

Parameter-Liste

timeout

Timeout in seconds.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::setMaxQueryTime


Set field weights

  • « SphinxClient::setConnectTimeout
  • SphinxClient::setFilter »
  • PHP Manual
  • SphinxClient
  • Set field weights

SphinxClient::setFieldWeights

(PECL sphinx >= 0.1.0)

SphinxClient::setFieldWeights — Set field weights

Beschreibung

public SphinxClient::setFieldWeights ( array $weights ) : bool

Binds per-field weights by name.

Match ranking can be affected by per-field weights. See » Sphinx documentation for an explanation on how phrase proximity ranking is affected. This call lets you specify non-default weights for full-text fields.

The weights must be positive 32-bit integers, so be careful not to hit 32-bit integer maximum. The final weight is a 32-bit integer too. Default weight value is 1. Unknown field names are silently ignored.

Parameter-Liste

weights

Associative array of field names and field weights.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::setIndexWeights


Add new integer values set filter

  • « SphinxClient::setFieldWeights
  • SphinxClient::setFilterFloatRange »
  • PHP Manual
  • SphinxClient
  • Add new integer values set filter

SphinxClient::setFilter

(PECL sphinx >= 0.1.0)

SphinxClient::setFilter — Add new integer values set filter

Beschreibung

public SphinxClient::setFilter ( string $attribute , array $values , bool $exclude = false ) : bool

Adds new integer values set filter to the existing list of filters.

Parameter-Liste

attribute

An attribute name.

values

Plain array of integer values.

exclude

If set to true, matching documents are excluded from the result set.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilterRange
  • SphinxClient::resetFilters


Add new float range filter

  • « SphinxClient::setFilter
  • SphinxClient::setFilterRange »
  • PHP Manual
  • SphinxClient
  • Add new float range filter

SphinxClient::setFilterFloatRange

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterFloatRange — Add new float range filter

Beschreibung

public SphinxClient::setFilterFloatRange ( string $attribute , float $min , float $max , bool $exclude = false ) : bool

Adds new float range filter to the existing list of filters. Only those documents which have attribute value stored in the index between min and max (including values that are exactly equal to min or max) will be matched (or rejected, if exclude is true).

Parameter-Liste

attribute

An attribute name.

min

Minimum value.

max

Maximum value.

exclude

If set to true, matching documents are excluded from the result set.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::setFilterRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters


Add new integer range filter

  • « SphinxClient::setFilterFloatRange
  • SphinxClient::setGeoAnchor »
  • PHP Manual
  • SphinxClient
  • Add new integer range filter

SphinxClient::setFilterRange

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterRange — Add new integer range filter

Beschreibung

public SphinxClient::setFilterRange ( string $attribute , int $min , int $max , bool $exclude = false ) : bool

Adds new integer range filter to the existing list of filters. Only those documents which have attribute value stored in the index between min and max (including values that are exactly equal to min or max) will be matched (or rejected, if exclude is true).

Parameter-Liste

attribute

An attribute name.

min

Minimum value.

max

Maximum value.

exclude

If set to true, matching documents are excluded from the result set.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters


Set anchor point for a geosphere distance calculations

  • « SphinxClient::setFilterRange
  • SphinxClient::setGroupBy »
  • PHP Manual
  • SphinxClient
  • Set anchor point for a geosphere distance calculations

SphinxClient::setGeoAnchor

(PECL sphinx >= 0.1.0)

SphinxClient::setGeoAnchor — Set anchor point for a geosphere distance calculations

Beschreibung

public SphinxClient::setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude ) : bool

Sets anchor point for a geosphere distance (geodistance) calculations and enables them.

Once an anchor point is set, you can use magic "@geodist" attribute name in your filters and/or sorting expressions.

Parameter-Liste

attrlat

Name of a latitude attribute.

attrlong

Name of a longitude attribute.

latitude

Anchor latitude in radians.

longitude

Anchor longitude in radians.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilterRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters


Set grouping attribute

  • « SphinxClient::setGeoAnchor
  • SphinxClient::setGroupDistinct »
  • PHP Manual
  • SphinxClient
  • Set grouping attribute

SphinxClient::setGroupBy

(PECL sphinx >= 0.1.0)

SphinxClient::setGroupBy — Set grouping attribute

Beschreibung

public SphinxClient::setGroupBy ( string $attribute , int $func , string $groupsort = "@group desc" ) : bool

Sets grouping attribute, function, and group sorting mode, and enables grouping.

Grouping feature is very similar to GROUP BY clause in SQL. Results produced by this function call are going to be the same as produced by the following pseudo code: SELECT ... GROUP BY $func($attribute) ORDER BY $groupsort.

Parameter-Liste

attribute

A string containing group-by attribute name.

func

Constant, which sets a function applied to the attribute value in order to compute group-by key.

groupsort

An optional clause controlling how the groups are sorted.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::resetGroupBy
  • SphinxClient::setSortMode
  • SphinxClient::setGroupDistinct


Set attribute name for per-group distinct values count calculations

  • « SphinxClient::setGroupBy
  • SphinxClient::setIDRange »
  • PHP Manual
  • SphinxClient
  • Set attribute name for per-group distinct values count calculations

SphinxClient::setGroupDistinct

(PECL sphinx >= 0.1.0)

SphinxClient::setGroupDistinct — Set attribute name for per-group distinct values count calculations

Beschreibung

public SphinxClient::setGroupDistinct ( string $attribute ) : bool

Sets attribute name for per-group distinct values count calculations. Only available for grouping queries. For each group, all values of attribute will be stored, then the amount of distinct values will be calculated and returned to the client. This feature is similar to COUNT(DISTINCT) clause in SQL.

Parameter-Liste

attribute

A string containing group-by attribute name.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::setSortMode
  • SphinxClient::setGroupBy
  • SphinxClient::resetGroupBy


Set a range of accepted document IDs

  • « SphinxClient::setGroupDistinct
  • SphinxClient::setIndexWeights »
  • PHP Manual
  • SphinxClient
  • Set a range of accepted document IDs

SphinxClient::setIDRange

(PECL sphinx >= 0.1.0)

SphinxClient::setIDRange — Set a range of accepted document IDs

Beschreibung

public SphinxClient::setIDRange ( int $min , int $max ) : bool

Sets an accepted range of document IDs. Default range is from 0 to 0, i.e. no limit. Only those records that have document ID between min and max (including IDs exactly equal to min or max) will be matched.

Parameter-Liste

min

Minimum ID value.

max

Maximum ID value.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set per-index weights

  • « SphinxClient::setIDRange
  • SphinxClient::setLimits »
  • PHP Manual
  • SphinxClient
  • Set per-index weights

SphinxClient::setIndexWeights

(PECL sphinx >= 0.1.0)

SphinxClient::setIndexWeights — Set per-index weights

Beschreibung

public SphinxClient::setIndexWeights ( array $weights ) : bool

Sets per-index weights and enables weighted summing of match weights across different indexes.

Parameter-Liste

weights

An associative array mapping string index names to integer weights. Default is empty array, i.e. weighting summing is disabled.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set offset and limit of the result set

  • « SphinxClient::setIndexWeights
  • SphinxClient::setMatchMode »
  • PHP Manual
  • SphinxClient
  • Set offset and limit of the result set

SphinxClient::setLimits

(PECL sphinx >= 0.1.0)

SphinxClient::setLimits — Set offset and limit of the result set

Beschreibung

public SphinxClient::setLimits ( int $offset , int $limit , int $max_matches = 0 , int $cutoff = 0 ) : bool

Sets offset into server-side result set and amount of matches to return to client starting from that offset (limit). Can additionally control maximum server-side result set size for current query (max_matches) and the threshold amount of matches to stop searching at (cutoff).

Parameter-Liste

offset

Result set offset.

limit

Amount of matches to return.

max_matches

Controls how much matches searchd will keep in RAM while searching.

cutoff

Used for advanced performance control. It tells searchd to forcibly stop search query once cutoff matches have been found and processed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set full-text query matching mode

  • « SphinxClient::setLimits
  • SphinxClient::setMaxQueryTime »
  • PHP Manual
  • SphinxClient
  • Set full-text query matching mode

SphinxClient::setMatchMode

(PECL sphinx >= 0.1.0)

SphinxClient::setMatchMode — Set full-text query matching mode

Beschreibung

public SphinxClient::setMatchMode ( int $mode ) : bool

Sets full-text query matching mode. mode is one of the constants listed below.

Match modes
Constant | Description
SPH_MATCH_ALL | Match all query words (default mode).
SPH_MATCH_ANY | Match any of query words.
SPH_MATCH_PHRASE | Match query as a phrase, requiring perfect match.
SPH_MATCH_BOOLEAN | Match query as a boolean expression.
SPH_MATCH_EXTENDED | Match query as an expression in Sphinx internal query language.
SPH_MATCH_FULLSCAN | Enables fullscan.
SPH_MATCH_EXTENDED2 | The same as SPH_MATCH_EXTENDED plus ranking and quorum searching support.

Parameter-Liste

mode

Matching mode.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::setRankingMode
  • SphinxClient::setSortMode


Set maximum query time

  • « SphinxClient::setMatchMode
  • SphinxClient::setOverride »
  • PHP Manual
  • SphinxClient
  • Set maximum query time

SphinxClient::setMaxQueryTime

(PECL sphinx >= 0.1.0)

SphinxClient::setMaxQueryTime — Set maximum query time

Beschreibung

public SphinxClient::setMaxQueryTime ( int $qtime ) : bool

Sets maximum search query time.

Parameter-Liste

qtime

Maximum query time, in milliseconds. It must be a non-negative integer. Default value is 0, i.e. no limit.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Sets temporary per-document attribute value overrides

  • « SphinxClient::setMaxQueryTime
  • SphinxClient::setRankingMode »
  • PHP Manual
  • SphinxClient
  • Sets temporary per-document attribute value overrides

SphinxClient::setOverride

(PECL sphinx >= 1.0.3)

SphinxClient::setOverride — Sets temporary per-document attribute value overrides

Beschreibung

public SphinxClient::setOverride ( string $attribute , int $type , array $values ) : bool

Sets temporary (per-query) per-document attribute value overrides. Override feature lets you "temporary" update attribute values for some documents within a single query, leaving all other queries unaffected. This might be useful for personalized data

Parameter-Liste

attribute

An attribute name.

type

An attribute type. Only supports scalar attributes.

values

Array of attribute values that maps document IDs to overridden attribute values.

Changelog

PECL/sphinx Version | Beschreibung
PECL sphinx 1.0.3 | Added SphinxClient::setOverride(), available only if compiled with libsphinxclient >= 0.9.9.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set ranking mode

  • « SphinxClient::setOverride
  • SphinxClient::setRetries »
  • PHP Manual
  • SphinxClient
  • Set ranking mode

SphinxClient::setRankingMode

(PECL sphinx >= 0.1.0)

SphinxClient::setRankingMode — Set ranking mode

Beschreibung

public SphinxClient::setRankingMode ( int $ranker ) : bool

Sets ranking mode. Only available in SPH_MATCH_EXTENDED2 matching mode.

Ranking modes
Constant | Description
SPH_RANK_PROXIMITY_BM25 | Default ranking mode which uses both proximity and BM25 ranking.
SPH_RANK_BM25 | Statistical ranking mode which uses BM25 ranking only (similar to most of other full-text engines). This mode is faster, but may result in worse quality on queries which contain more than 1 keyword.
SPH_RANK_NONE | Disables ranking. This mode is the fastest. It is essentially equivalent to boolean searching, a weight of 1 is assigned to all matches.

Parameter-Liste

ranker

Ranking mode.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::setMatchMode


Set retry count and delay

  • « SphinxClient::setRankingMode
  • SphinxClient::setSelect »
  • PHP Manual
  • SphinxClient
  • Set retry count and delay

SphinxClient::setRetries

(PECL sphinx >= 0.1.0)

SphinxClient::setRetries — Set retry count and delay

Beschreibung

public SphinxClient::setRetries ( int $count , int $delay = 0 ) : bool

Sets distributed retry count and delay.

On temporary failures searchd will attempt up to count retries per agent. delay is the delay between the retries, in milliseconds. Retries are disabled by default. Note that this call will not make the API itself retry on temporary failure; it only tells searchd to do so.

Parameter-Liste

count

Number of retries.

delay

Delay between retries, in milliseconds.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set select clause

  • « SphinxClient::setRetries
  • SphinxClient::setServer »
  • PHP Manual
  • SphinxClient
  • Set select clause

SphinxClient::setSelect

(PECL sphinx >= 1.0.1)

SphinxClient::setSelect — Set select clause

Beschreibung

public SphinxClient::setSelect ( string $clause ) : bool

Sets the select clause, listing specific attributes to fetch, and expressions to compute and fetch.

Parameter-Liste

clause

SQL-like clause.

Changelog

PECL/sphinx Version | Beschreibung
PECL sphinx 1.0.1 | Added SphinxClient::setSelect(), available only if compiled with libsphinxclient >= 0.9.9.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set searchd host and port

  • « SphinxClient::setSelect
  • SphinxClient::setSortMode »
  • PHP Manual
  • SphinxClient
  • Set searchd host and port

SphinxClient::setServer

(PECL sphinx >= 0.1.0)

SphinxClient::setServer — Set searchd host and port

Beschreibung

public SphinxClient::setServer ( string $server , int $port ) : bool

Sets searchd host name and TCP port. All subsequent requests will use the new host and port settings. Default host and port are 'localhost' and 3312, respectively.

Parameter-Liste

server

IP or hostname.

port

Port number.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set matches sorting mode

  • « SphinxClient::setServer
  • SphinxClient::status »
  • PHP Manual
  • SphinxClient
  • Set matches sorting mode

SphinxClient::setSortMode

(PECL sphinx >= 0.1.0)

SphinxClient::setSortMode — Set matches sorting mode

Beschreibung

public SphinxClient::setSortMode ( int $mode , string $sortby = ? ) : bool

Sets matches sorting mode. See available modes below.

Sorting modes
Constant | Description
SPH_SORT_RELEVANCE | Sort by relevance in descending order (best matches first).
SPH_SORT_ATTR_DESC | Sort by an attribute in descending order (bigger attribute values first).
SPH_SORT_ATTR_ASC | Sort by an attribute in ascending order (smaller attribute values first).
SPH_SORT_TIME_SEGMENTS | Sort by time segments (last hour/day/week/month) in descending order, and then by relevance in descending order.
SPH_SORT_EXTENDED | Sort by SQL-like combination of columns in ASC/DESC order.
SPH_SORT_EXPR | Sort by an arithmetic expression.

Parameter-Liste

mode

Sorting mode.

sortby

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • SphinxClient::setMatchMode
  • SphinxClient::setSortMode


Queries searchd status

  • « SphinxClient::setSortMode
  • SphinxClient::updateAttributes »
  • PHP Manual
  • SphinxClient
  • Queries searchd status

SphinxClient::status

(PECL sphinx >= 1.0.3)

SphinxClient::status — Queries searchd status

Beschreibung

public SphinxClient::status ( ) : array

Queries searchd status, and returns an array of status variable name and value pairs.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Changelog

PECL/sphinx Version | Beschreibung
PECL sphinx 1.0.3 | Added SphinxClient::status(), available only if compiled with libsphinxclient >= 0.9.9.

Rückgabewerte

Returns an associative array of search server statisticsIm Fehlerfall wird false zurückgegeben..


Update document attributes

  • « SphinxClient::status
  • Serverspezifische Erweiterungen »
  • PHP Manual
  • SphinxClient
  • Update document attributes

SphinxClient::updateAttributes

(PECL sphinx >= 0.1.0)

SphinxClient::updateAttributes — Update document attributes

Beschreibung

public SphinxClient::updateAttributes ( string $index , array $attributes , array $values , bool $mva = false ) : int

Instantly updates given attribute values in given documents.

Parameter-Liste

index

Name of the index (or indexes) to be updated.

attributes

Array of attribute names, listing attributes that are updated.

values

Associative array containing document IDs as keys and array of attribute values as values.

Rückgabewerte

Returns number of actually updated documents (0 or more) on success, or false on failure.


Serverspezifische Erweiterungen

  • Apache
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Apache Funktionen
  • FastCGI Process Manager
    • Einführung
    • Installation/Konfiguration
    • FPM Funktionen


Apache

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Apache Funktionen
    • apache_child_terminate — Beendet einen Apacheprozess nach der Anfrage
    • apache_get_modules — Liefert eine Liste der geladenen Apachemodule
    • apache_get_version — Liefert die Apacheversion
    • apache_getenv — Liefert eine Apache-Subprocess_env-Variable
    • apache_lookup_uri — Führt eine Teilanfrage für einen angegebenen URI durch und liefert alle Informationen darüber zurück
    • apache_note — Setzt und liest Apache Request Notes
    • apache_request_headers — Liefert alle HTTP-Requestheader
    • apache_response_headers — Liefert alle HTTP-Responseheader
    • apache_setenv — Setzt eine Apache-Subprocess_env-Variable
    • getallheaders — Liefert alle HTTP-Request-Header
    • virtual — Führt eine Apache-Unteranfrage durch


Einführung

Diese Funktionen stehen nur zur Verfügung, wenn PHP als Apachemodul läuft.


  • « Anforderungen
  • Laufzeit-Konfiguration »
  • PHP Manual
  • Installation/Konfiguration
  • Installation

Installation

Informationen zur Installation von PHP unter Apache finden Sie im Kapitel Installation.


Laufzeit-Konfiguration

Das Verhalten des Apache PHP-Moduls wird durch Einstellungen in der php.ini beeinflusst. Konfigurationseinstellungen aus der php.ini können Sie durch php_flag Einstellungen in der Server Konfigurationsdatei oder lokal in .htaccess Dateien überschreiben.

Beispiel #1 Parsen von PHP für ein Verzeichnis ausschalten mittels .htaccess

php_flag engine off

Apache Konfigurations Optionen
Name | Standard | Veränderbar | Changelog
engine | On | PHP_INI_ALL |
child_terminate | Off | PHP_INI_ALL |
last_modified | Off | PHP_INI_ALL |
xbithack | Off | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

engine boolean

Parsen von PHP ein/-auschalten. Diese Option ist in erster Linie nur sinnvoll, wenn PHP als Modul unter Apache läuft. 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 gezielt aktiviert bzw. deaktiviert werden.

child_terminate boolean

Gibt an, ob PHP Skripte veranlassen, dass Kindprozesse nach dem Request beendet werden, siehe auch apache_child_terminate().

last_modified boolean

Das letzte Datum der Änderung des PHP Skripts wird als Last-Modified: header für diesen Request gesendet.

xbithack boolean

Dateien mit gesetztem ausführbaren Bit werden unabhängig von ihrer Dateiendung durch PHP geparst.


  • « Ressource-Typen
  • Apache Funktionen »
  • PHP Manual
  • Apache
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Apache Funktionen

Inhaltsverzeichnis

  • apache_child_terminate — Beendet einen Apacheprozess nach der Anfrage
  • apache_get_modules — Liefert eine Liste der geladenen Apachemodule
  • apache_get_version — Liefert die Apacheversion
  • apache_getenv — Liefert eine Apache-Subprocess_env-Variable
  • apache_lookup_uri — Führt eine Teilanfrage für einen angegebenen URI durch und liefert alle Informationen darüber zurück
  • apache_note — Setzt und liest Apache Request Notes
  • apache_request_headers — Liefert alle HTTP-Requestheader
  • apache_response_headers — Liefert alle HTTP-Responseheader
  • apache_setenv — Setzt eine Apache-Subprocess_env-Variable
  • getallheaders — Liefert alle HTTP-Request-Header
  • virtual — Führt eine Apache-Unteranfrage durch


Beendet einen Apacheprozess nach der Anfrage

  • « Apache Funktionen
  • apache_get_modules »
  • PHP Manual
  • Apache Funktionen
  • Beendet einen Apacheprozess nach der Anfrage

apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

apache_child_terminate — Beendet einen Apacheprozess nach der Anfrage

Beschreibung

apache_child_terminate ( ) : bool

apache_child_terminate() registriert den Apacheprozess, der die aktuelle PHP-Anfrage ausführt, um ihn nach vollständiger Beendigung des PHP-Prozesses zu terminieren. Die Funktion kann verwendet werden, um einen Prozess zu terminieren, nachdem ein Skript mit hohem Speicherverbrauch gelaufen ist, der normalerweise nur intern wieder freigegeben wird, aber nicht wieder für das Betriebsystem freigegeben wird.

Rückgabewerte

Gibt true zurück, wenn PHP als Modul unter Apache 1 läuft, die Apacheversion nicht multithreaded läuft und die PHP-Direktive child_terminate eingeschaltet ist (diese ist standardmäßig ausgeschaltet). Wenn diese Bedingungen nicht zutreffen, wird false zurückgegeben und ein Fehler vom Typ E_WARNING generiert.

Changelog

Version | Beschreibung
5.4.0 | Diese Funktion wurde unter FastCGI verfügbar. Vorher wurde sie nur unterstützt, wenn PHP als Apache Modul installiert war.

Anmerkungen

Hinweis: Diese Funktion ist auf Windows-Plattformen nicht verfügbar.

Siehe auch

  • exit() - Gibt eine Meldung aus und beendet das aktuelle Skript


Liefert eine Liste der geladenen Apachemodule

  • « apache_child_terminate
  • apache_get_version »
  • PHP Manual
  • Apache Funktionen
  • Liefert eine Liste der geladenen Apachemodule

apache_get_modules

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

apache_get_modules — Liefert eine Liste der geladenen Apachemodule

Beschreibung

apache_get_modules ( ) : array

Liefert eine Liste der geladenen Apachemodule.

Rückgabewerte

Ein Array der geladenen Apachemodule.

Beispiele

Beispiel #1 apache_get_modules()-Beispiel

<?php
print_r(apache_get_modules());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => core
    [1] => http_core
    [2] => mod_so
    [3] => sapi_apache2
    [4] => mod_mime
    [5] => mod_rewrite
)


Liefert die Apacheversion

  • « apache_get_modules
  • apache_getenv »
  • PHP Manual
  • Apache Funktionen
  • Liefert die Apacheversion

apache_get_version

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

apache_get_version — Liefert die Apacheversion

Beschreibung

apache_get_version ( ) : string

Holt die Apacheversion.

Rückgabewerte

Gibt bei Erfolg die Apacheversion zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 apache_get_version()-Beispiel

<?php
$version = apache_get_version();
echo "$version\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Apache/1.3.29 (Unix) PHP/4.3.4

Siehe auch

  • phpinfo() - Gibt Informationen zur PHP-Konfiguration aus


Liefert eine Apache-Subprocess_env-Variable

  • « apache_get_version
  • apache_lookup_uri »
  • PHP Manual
  • Apache Funktionen
  • Liefert eine Apache-Subprocess_env-Variable

apache_getenv

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

apache_getenv — Liefert eine Apache-Subprocess_env-Variable

Beschreibung

apache_getenv ( string $variable , bool $walk_to_top = false ) : string

Liefert die durch variable angegebene Apache-Umgebungsvariable.

Diese Funktion erfordert Apache 2, andernfalls ist sie nicht definiert.

Parameter-Liste

variable

Die Apache-Umgebungsvariable

walk_to_top

Legt fest, ob die geholte Toplevel-Variable allen Apache-Layern verfügbar gemacht werden soll.

Rückgabewerte

Der Wert der Apache-Umgebungsvariablen im Erfolgsfall; im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 apache_getenv()-Beispiel

Das folgende Beispiel zeigt, wie man den Wert der Apache-Umgebungsvariablen SERVER_ADDR abfragen kann.

<?php
$ret = apache_getenv("SERVER_ADDR");
echo $ret;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

42.24.42.240

Siehe auch

  • apache_setenv() - Setzt eine Apache-Subprocess_env-Variable
  • getenv() - Liefert den Wert einer Umgebungsvariable
  • Superglobals


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

  • « apache_getenv
  • apache_note »
  • PHP Manual
  • Apache Funktionen
  • Führt eine Teilanfrage für einen angegebenen URI durch und liefert alle Informationen darüber zurück

apache_lookup_uri

(PHP 4, PHP 5, PHP 7, PHP 8)

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

Beschreibung

apache_lookup_uri ( string $filename ) : object

Die Funktion führt eine Teilanfragefür einen URI durch. Diese geht gerade weit genug, um alle wichtigen Informationen über die angegebene Ressource zu erhalten.

Diese Funktion wird unterstützt, wenn PHP als Apache-Modul installiert wurde.

Parameter-Liste

filename

Der Dateiname (URI), der angefragt wird.

Rückgabewerte

Ein Objekt, das die URI-relevanten Informationen enthält. Die Eigenschaften dieses Objekts sind:

  • 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

Beispiele

Beispiel #1 apache_lookup_uri()-Beispiel

<?php
$info = apache_lookup_uri('index.php?var=value');
print_r($info);

if (file_exists($info->filename)) {
    echo 'file exists!';
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

stdClass Object
(
    [status] => 200
    [the_request] => GET /dir/file.php HTTP/1.1
    [method] => GET
    [mtime] => 0
    [clength] => 0
    [chunked] => 0
    [content_type] => application/x-httpd-php
    [no_cache] => 0
    [no_local_copy] => 1
    [unparsed_uri] => /dir/index.php?var=value
    [uri] => /dir/index.php
    [filename] => /home/htdocs/dir/index.php
    [args] => var=value
    [allowed] => 0
    [sent_bodyct] => 0
    [bytes_sent] => 0
    [request_time] => 1074282764
)
file exists!


Setzt und liest Apache Request Notes

  • « apache_lookup_uri
  • apache_request_headers »
  • PHP Manual
  • Apache Funktionen
  • Setzt und liest Apache Request Notes

apache_note

(PHP 4, PHP 5, PHP 7, PHP 8)

apache_note — Setzt und liest Apache Request Notes

Beschreibung

apache_note ( string $note_name ) : string
apache_note ( string $note_name , string $note_value ) : string

Diese Funktion ist ein Wrapper für das table_get und table_set von Apache. Sie editiert die Notestabelle, die während eines Requests existiert. Der Sinn dieser Tabelle ist es, die Kommunikation zwischen Apachemodulen zu ermöglichen.

Der primäre Anwendungsfall für apache_note() ist die Übergabe von Informationen von einem Modul an ein anderes während der Abarbeitung eines bestimmten Requests.

Parameter-Liste

note_name

Der Name der Note.

note_value

Der Wert der Note.

Rückgabewerte

Wenn die Funktion mit einem Argument aufgerufen wird, gibt sie den aktuellen Wert der Note note_name zurück. Wird sie mit zwei Argumenten aufgerufen, setzt sie den Wert der Note note_name auf note_value und gibt den vorigen Wert der Note note_name zurück. Wenn die Note nicht angesprochen werden kann, wird false zurückgegeben.

Beispiele

Beispiel #1 Übergeben von Informationen zwischen PHP und Perl

<?php

apache_note('name', 'Fredrik Ekengren');

// Perl-Skript aufrufen
virtual("/perl/some_script.pl");

$result = apache_note("resultdata");
?>
# Hole das Apache Request Objekt
my $r = Apache->request()->main();

# Hole die übergebenen Daten
my $name = $r->notes('name');

# beliebige Verarbeitung

# Reiche das Ergebnis an PHP zurück
$r->notes('resultdata', $result);

Beispiel #2 Werte in access.log loggen

<?php

apache_note('sessionID', session_id());

?>
# "%{sessionID}n" kann in der LogFormat-Direktive verwendet werden

Siehe auch

  • virtual() - Führt eine Apache-Unteranfrage durch


Liefert alle HTTP-Requestheader

  • « apache_note
  • apache_response_headers »
  • PHP Manual
  • Apache Funktionen
  • Liefert alle HTTP-Requestheader

apache_request_headers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

apache_request_headers — Liefert alle HTTP-Requestheader

Beschreibung

apache_request_headers ( ) : array

Liefert alle HTTP-Requestheader von der aktuellen Anfrage. Verfügbar unter Apache-, FastCGI-, CLI- und FPM-Webservern.

Rückgabewerte

Ein assoziatives Array aller HTTP-Header der aktuellen Anfrage, im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.3.0 | Diese Funktion wurde in der FPM SAPI verfügbar.

Beispiele

Beispiel #1 apache_request_headers()-Beispiel

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Host: www.example.com
Connection: Keep-Alive

Anmerkungen

Hinweis:

Die Werte der gebräuchlichsten CGI-Variablen können Sie auch durch das Auslesen der Umgebungsvariablen erhalten. Dieser Weg funktioniert unabhängig davon, ob Sie PHP als Modul für Apache benutzen. Verwenden Sie phpinfo(), um eine Liste aller zur Verfügung stehenden Umgebungsvariablen zu erhalten.

Siehe auch

  • apache_response_headers() - Liefert alle HTTP-Responseheader


Liefert alle HTTP-Responseheader

  • « apache_request_headers
  • apache_setenv »
  • PHP Manual
  • Apache Funktionen
  • Liefert alle HTTP-Responseheader

apache_response_headers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

apache_response_headers — Liefert alle HTTP-Responseheader

Beschreibung

apache_response_headers ( ) : array|false

Liefert alle HTTP-Responseheader. Verfügbar unter Apache-, FastCGI-, CLI- und FPM-Webservern.

Rückgabewerte

Ein Array aller Apache-Responseheader im Erfolgsfall. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 apache_response_headers()-Beispiel

<?php
print_r(apache_response_headers());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [Accept-Ranges] => bytes
    [X-Powered-By] => PHP/4.3.8
)

Siehe auch

  • apache_request_headers() - Liefert alle HTTP-Requestheader
  • headers_sent() - Prüft, ob oder wo die Header bereits gesendet wurden
  • headers_list() - Gibt eine Liste der gesendeten (oder zum Senden vorbereiteten) Response Header zurück


Setzt eine Apache-Subprocess_env-Variable

  • « apache_response_headers
  • getallheaders »
  • PHP Manual
  • Apache Funktionen
  • Setzt eine Apache-Subprocess_env-Variable

apache_setenv

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

apache_setenv — Setzt eine Apache-Subprocess_env-Variable

Beschreibung

apache_setenv ( string $variable , string $value , bool $walk_to_top = false ) : bool

apache_setenv() setzt den Wert der Apache-Umgebungsvariable, die mit variable angegeben wurde.

Hinweis:

Wenn eine Apache-Umgebungsvariable verändert wird, ändert sich die korrespondierende $_SERVER-Variable nicht.

Parameter-Liste

variable

Die neu zu setzende Umgebungsvariable.

value

Der neue Wert von variable.

walk_to_top

Legt fest, ob die gesetzte Toplevel-Variable für alle Apachelayer verfügbar gemacht werden soll.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Eine Apache-Umgebungsvariable mit apache_setenv() setzen

<?php
apache_setenv("BEISPIEL_VAR", "Beispielwert");
?>

Anmerkungen

Hinweis:

apache_setenv() kann mit apache_getenv() über mehrere unabhängige Seiten hinweg kombiniert werden. Es ist außerdem möglich, Variablen zu setzen, die an in PHP-Skripte einzubindende Server Side Includes (SSI, .shtml) übergeben werden.

Siehe auch

  • apache_getenv() - Liefert eine Apache-Subprocess_env-Variable


Liefert alle HTTP-Request-Header

  • « apache_setenv
  • virtual »
  • PHP Manual
  • Apache Funktionen
  • Liefert alle HTTP-Request-Header

getallheaders

(PHP 4, PHP 5, PHP 7, PHP 8)

getallheaders — Liefert alle HTTP-Request-Header

Beschreibung

getallheaders ( ) : array

Liefert alle HTTP-Header des aktuellen Requests.

Diese Funktion ist ein Alias für apache_request_headers(). Bitte lesen Sie die Dokumentation zu apache_request_headers(), wenn Sie mehr Informationen darüber benötigen, wie die Funktion arbeitet.

Rückgabewerte

Ein assoziatives Array aller HTTP-Header der aktuellen Anfrage; im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.3.0 | Diese Funktion wurde in der FPM SAPI verfügbar.

Beispiele

Beispiel #1 getallheaders()-Beispiel

<?php

foreach (getallheaders() as $name => $value) {
    echo "$name: $value\n";
}

?>

Siehe auch

  • apache_response_headers() - Liefert alle HTTP-Responseheader


Führt eine Apache-Unteranfrage durch

  • « getallheaders
  • FastCGI Process Manager »
  • PHP Manual
  • Apache Funktionen
  • Führt eine Apache-Unteranfrage durch

virtual

(PHP 4, PHP 5, PHP 7, PHP 8)

virtual — Führt eine Apache-Unteranfrage durch

Beschreibung

virtual ( string $filename ) : bool

virtual() ist eine apachespezifische Funktion ähnlich wie <!--#include virtual...--> in mod_include. Sie führt eine Apache-Unteranfrage aus. Dies ist hilfreich, wenn man CGI-Skripte oder .shtml-Dateien oder irgendetwas anderes einbinden will, das Sie vom Apache parsen lassen möchten. Beachten Sie bei CGI-Skripten, dass diese valide CGI-Header erzeugen. Dies bedeutet, dass zumindest der Content-Type-Header generiert werden muss.

Um die Unteranfrage auszuführen, werden alle Buffer beendet und der Inhalt an den Browser ausgegeben. Anstehende Header werden ebenfalls abgeschickt.

Diese Funktion wird unterstützt, wenn PHP als Apache-Modul installiert wurde.

Parameter-Liste

filename

Die Datei, die das virtuelle Kommando ausführen soll.

Rückgabewerte

Führt bei Erfolg ein virtuelles Kommando aus, im Fehlerfall wird false zurückgegeben.

Beispiele

Ein passendes Beispiel finden Sie unter apache_note().

Anmerkungen

Warnung

Der Querystring kann an das eingebundene File übergeben werden, aber $_GET wird vom Elternskript kopiert und nur $_SERVER['QUERY_STRING'] wird mit dem übergebenen Querystring befüllt. Der Querystring kann nur übergeben werden, wenn Apache 2 verwendet wird. Die angeforderte Datei wird nicht im Zugriffslog des Apache aufgeführt.

Hinweis:

Umgebungsvariablen, die in der aufgerufenen Datei gesetzt werden, sind nicht für das aufrufende Skript sichtbar.

Hinweis:

Diese Funktion kann auf PHP-Dateien angewendet werden. Es ist allerdings deutlich sinnvoller, in diesem Fall die Funktionen include oder require zu verwenden.

Siehe auch

  • apache_note() - Setzt und liest Apache Request Notes


FastCGI Process Manager

  • Einführung
  • Installation/Konfiguration
  • FPM Funktionen
    • fastcgi_finish_request — Flushes all response data to the client


Einführung

FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features (mostly) useful for heavy-loaded sites.

This SAPI is bundled with PHP 5.3.3 and later.


Installation/Konfiguration

Information on installing and configuring FPM can be found in the installation and configuration section of the PHP manual.


  • « Installation/Konfiguration
  • fastcgi_finish_request »
  • PHP Manual
  • FastCGI Process Manager
  • FPM Funktionen

FPM Funktionen

Inhaltsverzeichnis

  • fastcgi_finish_request — Flushes all response data to the client


Flushes all response data to the client

  • « FPM Funktionen
  • Session-Erweiterungen »
  • PHP Manual
  • FPM Funktionen
  • Flushes all response data to the client

fastcgi_finish_request

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

fastcgi_finish_request — Flushes all response data to the client

Beschreibung

fastcgi_finish_request ( ) : bool

This function flushes all response data to the client and finishes the request. This allows for time consuming tasks to be performed without leaving the connection to the client open.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Session-Erweiterungen

  • Sessions — Sessionbehandlung
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Session-Upload-Fortschritt
    • Sessions and Security
    • Session-Funktionen
    • SessionHandler — The SessionHandler class
    • SessionHandlerInterface — The SessionHandlerInterface class
    • SessionIdInterface — The SessionIdInterface interface
    • SessionUpdateTimestampHandlerInterface — The SessionUpdateTimestampHandlerInterface interface


Sessionbehandlung

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Grundlegende Anwendung
    • Übermittlung der Session-ID
    • Individuelle Session-Routinen
  • Session-Upload-Fortschritt
  • Sessions and Security
    • Session Management Basics
    • Securing Session INI Settings
  • Session-Funktionen
    • session_abort — Discard session array changes and finish session
    • session_cache_expire — Liefert und/oder setzt die aktuelle Cache-Verfallszeit
    • session_cache_limiter — Liefert und/oder setzt die aktuelle Cacheverwaltung
    • session_commit — Alias von session_write_close
    • session_create_id — Create new session id
    • session_decode — Dekodiert die Daten einer Session aus einer session-kodierten Zeichenkette
    • session_destroy — Löscht alle in einer Session registrierten Daten
    • session_encode — Kodiert die Daten der aktuellen Session als session-kodierte Zeichenkette
    • session_gc — Perform session data garbage collection
    • session_get_cookie_params — Liefert die Session-Cookie Parameter
    • session_id — Liefert und/oder setzt die aktuelle Session-ID
    • session_is_registered — Überprüft, ob eine globale Variable in einer Session registriert ist
    • session_module_name — Liefert und/oder setzt das aktuelle Session-Modul
    • session_name — Liefert und/oder setzt den Namen der aktuellen Session
    • session_regenerate_id — Ersetzt die aktuelle Session-ID durch eine neu erzeugte
    • session_register_shutdown — Funktion zum Schließen von Sitzungen
    • session_reset — Re-initialize session array with original values
    • session_save_path — Liefert und/oder setzt den aktuellen Speicherpfad der Session
    • session_set_cookie_params — Setzt die Session-Cookie-Parameter
    • session_set_save_handler — Setzt benutzerdefinierte Session-Speicherfunktionen
    • session_start — Erzeugt eine neue Session oder setzt eine vorhandene fort
    • session_status — Liefert den Status der aktuellen Session
    • session_unregister — Hebt die Registrierung einer globalen Variablen in der aktuellen Session auf
    • session_unset — Löscht alle Session-Variablen
    • session_write_close — Speichert die Session-Daten und beendet die Session
  • SessionHandler — The SessionHandler class
    • SessionHandler::close — Close the session
    • SessionHandler::create_sid — Return a new session ID
    • SessionHandler::destroy — Destroy a session
    • SessionHandler::gc — Cleanup old sessions
    • SessionHandler::open — Initialize session
    • SessionHandler::read — Read session data
    • SessionHandler::write — Write session data
  • SessionHandlerInterface — The SessionHandlerInterface class
    • SessionHandlerInterface::close — Close the session
    • SessionHandlerInterface::destroy — Destroy a session
    • SessionHandlerInterface::gc — Cleanup old sessions
    • SessionHandlerInterface::open — Initialize session
    • SessionHandlerInterface::read — Read session data
    • SessionHandlerInterface::write — Write session data
  • SessionIdInterface — The SessionIdInterface interface
    • SessionIdInterface::create_sid — Create session ID
  • SessionUpdateTimestampHandlerInterface — The SessionUpdateTimestampHandlerInterface interface
    • SessionUpdateTimestampHandlerInterface::updateTimestamp — Update timestamp
    • SessionUpdateTimestampHandlerInterface::validateId — Validate ID


Einführung

Die Unterstützung von Sessions in PHP bietet die Möglichkeit, bestimmte Daten während einer Folge von Aufrufen Ihrer Website festzuhalten.

Einem Besucher wird beim Aufruf Ihrer Website eine eindeutige ID, die sogenannte Session-ID, zugeordnet. Diese wird entweder benutzerseitig in einem Cookie abgelegt oder in der URL übermittelt.

Die Unterstützung von Sessions erlaubt Ihnen, Daten zwischen Anfragen im superglobalen Array $_SESSION zu speichern. 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()), ob mit der Anfrage schon eine bestimmte Session-ID gesendet wurde. Wenn dies der Fall ist, wird die zuvor gespeicherte Umgebung wiederhergestellt.

Achtung

Falls Sie session.auto_start aktivieren, können Objekte nur in Ihre Sessions aufgenommen werden, indem die Klassendefinition mittels auto_prepend_file geladen wird. Andernfalls müssen Sie Ihr Objekt mittels serialize() serialisieren und danach mittels unserialize() deserialisieren.

$_SESSION (und alle registrierten Variablen) werden intern von PHP unter Verwendung der in der Konfigurationseinstellung session.serialize_handler festgelegten Serialisierungsroutine serialisiert, nachdem die Anfrage beendet ist. Registrierte Variablen, die nicht definiert sind, werden als nicht definiert gekennzeichnet. Auch bei darauf folgenden Zugriffen werden sie nicht vom Session-Modul definiert, außer der Benutzer definiert sie später.

Warnung

Weil Session-Daten serialisiert werden, können resource-Variablen nicht in der Session gespeichert werden.

Die Serialisierungsroutinen (php und php_binary) erben die Beschränkungen für register_globals. Daher können numerische Indizes oder alphanumerische Indizes, die Sonderzeichen (| und !) enthalten, nicht verwendet werden. Deren Verwendung erzeugt Fehler beim Beenden des Scripts. php_serialize hat diese Einschränkungen nicht.

Hinweis:

Bitte beachten Sie beim Arbeiten mit Sessions, dass der Datensatz einer Session nicht angelegt wird, bevor eine Variable mit der Funktion session_register() registriert oder dem superglobalen Array $_SESSION ein neuer Schlüssel hinzugefügt wird. Das gilt auch dann, wenn eine Session mit der Funktion session_start() gestartet wurde.


Anforderungen

Diese Erweiterung benötigt für die Kompilierung keine externen Bibliotheken.

Hinweis:

Optional können Sie für die Speicherung von Sessions die von Ralf S. Engelschall entwickelte Shared Memory Allocation (mm) verwenden. Sie müssen dazu » mm herunterladen und installieren. Für Windows-Plattformen steht diese Option nicht zur Verfügung. Beachten Sie, dass das Sessionspeicherungs-Modul für mm nicht dafür garantiert, dass gleichzeitige Zugriffe auf die selbe Session richtig gesperrt sind. Die Verwendung eines auf Shared Memory basierenden Dateisystems (wie z.B. tmpfs unter Solaris/Linux oder /dev/md unter BSD) könnte für die Speicherung von Sessions in Dateien geeigneter sein, weil sie entsprechend gesperrt sind. Die Session-Daten werden im Hauptspeicher gespeichert und folglich bei einem Neustart des Webservers gelöscht.


Installation

Die Unterstützung von Sessions ist in PHP standardmäßig aktiviert. Falls Sie Ihr PHP ohne Unterstützung von Sessions bauen wollen, müssen Sie bei der Konfiguration die Option --disable-session angeben. Um für die Speicherung von Sessions die shared memory allocation (mm) zu benutzen, müssen Sie PHP mit der Option --with-mm[=DIR] konfigurieren.

Die Windowsversion von PHP enthält diese Erweiterung. Um diese Funktionen zu verwenden, müssen Sie keine zusätzlichen Erweiterungen aktivieren.

Hinweis:

Standardmäßig werden alle Daten, die zu einer bestimmten Session gehören, in einer Datei gespeichert, die in dem Verzeichnis liegt, das durch die INI Option session.save_path bestimmt ist. Für jede Session wird (unabhängig davon, ob sie überhaupt Daten enthält) eine Datei erzeugt. Das liegt daran, dass eine Session geöffnet wird (eine Datei wird erzeugt), ohne dass jemals Daten in diese Datei geschrieben werden. Beachten Sie, dass es sich bei diesem Verhalten um einen Nebeneffekt der Beschränkungen beim Arbeiten mit dem Dateisystem handelt und dass es mit einer benutzerdefinierten Session-Speicherfunktion (wie z.B. mit einer, die eine Datenbank verwendet) möglich ist, Sessions nicht zu verfolgen, wenn sie keine Daten enthalten.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Session-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
session.save_path | "" | PHP_INI_ALL |
session.name | "PHPSESSID" | PHP_INI_ALL |
session.save_handler | "files" | PHP_INI_ALL |
session.auto_start | "0" | PHP_INI_PERDIR |
session.gc_probability | "1" | PHP_INI_ALL |
session.gc_divisor | "100" | PHP_INI_ALL |
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.serialize_handler | "php" | PHP_INI_ALL |
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL |
session.cookie_httponly | "" | PHP_INI_ALL |
session.cookie_samesite | "" | PHP_INI_ALL | Seit PHP 7.3.0 verfügbar.
session.use_strict_mode | "0" | PHP_INI_ALL |
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "1" | PHP_INI_ALL |
session.referer_check | "" | PHP_INI_ALL |
session.cache_limiter | "nocache" | PHP_INI_ALL |
session.cache_expire | "180" | PHP_INI_ALL |
session.use_trans_sid | "0" | PHP_INI_ALL |
session.trans_sid_tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Verfügbar ab PHP 7.1.0.
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | PHP_INI_ALL | Verfügbar ab PHP 7.1.0.
session.sid_length | "32" | PHP_INI_ALL | Verfügbar ab PHP 7.1.0.
session.sid_bits_per_character | "4" | PHP_INI_ALL | Verfügbar ab PHP 7.1.0.
session.upload_progress.enabled | "1" | PHP_INI_PERDIR |
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR |
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR |
session.upload_progress.freq | "1%" | PHP_INI_PERDIR |
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR |
session.lazy_write | "1" | PHP_INI_ALL |
session.hash_function | "0" | PHP_INI_ALL | Entfernt ab PHP 7.1.0.
session.hash_bits_per_character | "4" | PHP_INI_ALL | Entfernt ab PHP 7.1.0.
session.entropy_file | "" | PHP_INI_ALL | Entfernt ab PHP 7.1.0.
session.entropy_length | "0" | PHP_INI_ALL | Entfernt ab PHP 7.1.0.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Das Session-Managementsystem unterstützt eine Anzahl von Konfigurationsoptionen, die in der php.ini gesetzt werden können. Wir geben dazu einen kleinen Überblick.

session.save_handler string
session.save_handler definiert den Namen der Routine, die benutzt wird, um die Daten zu speichern und abzurufen, die mit der Session in Verbindung stehen. Grundeinstellung files. Zu beachten ist, dass einzelne Erweiterungen ihre eigenen save_handler registrieren können. Welche Routinen registriert sind, kann auf Basis der jeweiligen Installation mit phpinfo() ermittelt werden. Siehe auch session_set_save_handler().
session.save_path string
session.save_path definiert das Argument, das an die Speicherroutine übergeben wird. Wenn Sie die standardmäßige files-Routine wählen, ist das der Pfad, unter dem die Dateien erzeugt werden. Siehe auch session_save_path().

Für diese Anweisung gibt es ein optionales Argument N, das die Anzahl der Verzeichnisebenen bestimmt, über welche die Session-Dateien verteilt werden. Wird sie zum Beispiel auf '5;/tmp' gesetzt, kann das das Anlegen einer Session-Datei und -Speicherstelle wie /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If bewirken. Um N verwenden zu können, müssen alle diese Verzeichnisse vorher angelegt werden. In ext/session gibt es für diesen Zweck ein kleines Shell-Script namens mod_files.sh und eine Version für Windows namens mod_files.bat. Zu beachten ist, dass die automatische Speicherbereinigung (garbage collection) nicht durchgeführt wird, wenn N verwendet wird und größer 0 ist (für weitere Informationen siehe eine Kopie der php.ini). Außerdem muss bei der Verwendung von N beachtet werden, dass session.save_path zwischen Anführungsstriche gesetzt wird, weil der Trenner (;) in der php.ini auch für Kommentare benutzt wird.

Standardmäßig erzeugt die files-Speicherroutine Dateien mit dem Modus 600. Dieser Wert kann mit dem optionalen Argument MODE geändert werden: N;MODE;/pfad, wobei MODE die oktale Darstellung des Modus ist. Die Angabe von MODE hat keine Auswirkungen auf den Prozess umask.

Warnung

Wenn ein Verzeichnis gewählt wurde, 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 die Sessions entführen.

Achtung

Wird das optionale Argument N für die Verzeichnisebenen wie oben beschrieben verwendet, ist zu beachten, dass ein Wert größer als 1 oder 2 wegen der großen Anzahl an benötigten Verzeichnissen für die meisten Websites unangemessen ist: z.B. bedeutet ein Wert von 3, dass (2 ** session.sid_bits_per_character) ** 3 Verzeichnisse im Dateisystem existieren, was eine große Verschwendung an Speicher und Inodes zur Folge haben kann.

Verwenden Sie N größer als 2 nur, wenn Sie absolut sicher sind, dass Ihre Website so groß ist, dass Sie es benötigen.

session.name string
session.name definiert den Namen der Session, der als Cookie-Name verwendet wird. Grundeinstellung PHPSESSID. Siehe auch session_name().
session.auto_start bool
session.auto_start definiert, ob das Session-Modul zu Beginn einer Anfrage automatisch eine Session startet. Grundeinstellung 0 (deaktiviert).
session.serialize_handler string
session.serialize_handler definiert den Namen der Routine, die benutzt wird, um Daten zu serialisieren/deserialisieren. Unterstützt werden das PHP-Serialisierungsformat (Name php_serialize), die internen PHP-Formate (Namen php und php_binary) und WDDX (Name wddx). WDDX steht nur zur Verfügung, wenn PHP mit WDDX-Unterstützung kompiliert wurde. php_serialize steht ab PHP 5.5.4. zur Verfügung. php_serialize verwendet intern die einfachen serialize/unserialize-Funktionen und hat nicht die Einschränkungen, die php und php_binary haben. Ältere Serialisierungsroutinen können aus $_SESSION weder numerische Indizes speichern, noch alphanumerische Indizes, die Sonderzeichen (| und !) enthalten. Verwenden Sie php_serialize um Fehler wegen solcher Indizes am Ende des Skripts zu vermeiden. Grundeinstellung php.
session.gc_probability int
session.gc_probability wird in Verbindung mit session.gc_divisor dazu verwendet, die Wahrscheinlichkeit zu regeln, mit der die gc-Routine (gc=garbage collection, Speicherbereinigung) gestartet wird. Grundeinstellung 1. Siehe auch session.gc_divisor.
session.gc_divisor int
session.gc_divisor definiert gekoppelt mit session.gc_probability die Wahrscheinlichkeit, mit der die gc-Routine (gc=garbage collection, Speicherbereinigung) bei jeder Initialisierung einer Session gestartet wird. Die Wahrscheinlichkeit errechnet sich aus gc_probability/gc_divisor. 1/100 bedeutet z.B., dass die gc-Routine bei jeder Anfrage mit einer Wahrscheinlichkeit von 1% gestartet wird. Grundeinstellung 100.
session.gc_maxlifetime int
session.gc_maxlifetime definiert die Anzahl der Sekunden, nach denen Daten als 'garbage' ('Müll') betrachtet und möglicherweise entsorgt werden. Die Speicherbereinigung kann zu Beginn einer Session durchgeführt werden (abhängig von session.gc_probability und session.gc_divisor).

Hinweis: Falls sich der Wert von session.gc_maxlifetime in verschiedenen Skripten unterscheidet, aber sie die Sessiondaten an der selben Stelle speichern, löscht das Skript mit dem kleinsten Wert die Daten. Verwenden Sie die Anweisung in diesem Fall zusammen mit der Anweisung session.save_path.

session.referer_check string
session.referer_check enthält die Zeichenkette, auf die Sie jeden HTTP-Referer überprüfen wollen. Wenn der Referer vom Client gesendet und die Zeichenkette nicht gefunden wurde, wird die eingebettete Session-ID als ungültig gekennzeichnet. Grundeinstellung ist eine leere Zeichenkette.
session.entropy_file string
session.entropy_file gibt den Pfad zu einer externen Quelle (Datei) an, die bei der Erzeugung einer Session-ID als zusätzliche Entropiequelle verwendet wird. Beispiele sind /dev/random oder /dev/urandom, die auf vielen Unix-Systemen zur Verfügung stehen. Diese Einstellung wird unter Windows seit PHP 5.3.3 unterstützt. Wenn session.entropy_length auf einen von Null verschiedenen Wert gesetzt wird, verwendet PHP die Windows-Zufalls-API als Entropie-Quelle.

Hinweis: Entfernt in PHP 7.1.0. Ab PHP 5.4.0 ist die Grundeinstellung für session.entropy_file /dev/urandom oder /dev/arandom, falls es verfügbar ist. In PHP 5.3.0 ist diese Konfigurationsoption in der Grundeinstellung leer.

session.entropy_length int
session.entropy_length definiert die Anzahl der Bytes, die von der oben spezifizierten Datei gelesen werden. Grundeinstellung 32 (deaktiviert). Entfernt in PHP 7.1.0.
session.use_strict_mode bool
session.use_strict_mode definiert ob das Modul den strikten Modus für die Session-ID verwendet. Wenn dieser Modus aktiviert ist, akzeptiert das Modul keine Session-ID, die nicht initialisiert ist. Falls ein Browser eine uninitialisierte Session-ID sendet, wird eine neue Session-ID zum Browser gesendet. Im strikten Modus sind Anwendungen vor der Übernahme der Session durch Session-Fixation geschützt. Grundeinstellung 0 (deaktiviert).

Hinweis: Das Aktivieren von session.use_strict_mode ist für grundsätzliche Session-Sicherheit verpflichtend. Es wird empfohlen, dass alle Sites dies aktiveren. Verdeutlichender Beispielcode kann der Dokumentation von session_create_id() entnommen werden.

Warnung

Wenn ein benutzerdefinierter Session-Handler, der per session_set_save_handler() registriert wurde, weder SessionUpdateTimestampHandlerInterface::validateId() implementiert, noch einen validate_sid-Callback übergibt, ist der strikte Session-ID-Modus praktisch deaktiviert, unabhängig vom Wert dieser Anweisung. Im Besonderen ist zu beachten, dass SessionHandler SessionHandler::validateId() nicht implementiert.

session.use_cookies bool
session.use_cookies definiert, ob das Modul Cookies verwendet, um die Session-ID clientseitig zu speichern. Grundeinstellung 1 (aktiviert).
session.use_only_cookies bool
session.use_only_cookies definiert, ob das Modul nur Cookies verwendet, um die Session-ID clientseitig zu speichern. Mit Aktivierung dieser Einstellung wird möglichen Angriffen durch Übermittlung von Session-IDs in URLs vorgebeugt. Ab PHP 5.3.0 ist die Grundeinstellung 1 (aktiviert).
session.cookie_lifetime int
session.cookie_lifetime definiert die Cookie-Lebensdauer, die an den Browser geschickt wird, in Sekunden. Der Wert 0 bedeutet "bis der Browser geschlossen wird." Grundeinstellung 0. Siehe auch session_get_cookie_params() und session_set_cookie_params().

Hinweis: Der Verfalls-Zeitstempel wird relativ zur Serverzeit gesetzt, die nicht unbedingt mit der Browserzeit des Clients übereinstimmt.

session.cookie_path string
session.cookie_path definiert den Pfad, der im Session-Cookie gesetzt wird. Grundeinstellung /. Siehe auch session_get_cookie_params() und session_set_cookie_params().
session.cookie_domain string
session.cookie_domain definiert die Domain, die im Session-Cookie gesetzt wird. In der Grundeinstellung überhaupt keine, was bedeutet, dass entsprechend der Spezifikation für Cookies der Hostname des Servers verwendet wird, der das Cookie erzeugt hat. Siehe auch session_get_cookie_params() und session_set_cookie_params().
session.cookie_secure bool
session.cookie_secure definiert, ob Cookies nur über sichere Verbindungen geschickt werden sollen. Grundeinstellung off. Siehe auch session_get_cookie_params() und session_set_cookie_params().
session.cookie_httponly bool
session.cookie_httponly markiert das Cookie als nur über das HTTP-Protokoll zugänglich. Das bedeutet, dass für Skriptsprachen wie z.B. JavaScript nicht zugänglich ist. Diese Einstellung kann helfen, Identitätsdiebstahl durch XSS-Angriffe zu reduzieren (obwohl es nicht von allen Browsern unterstützt wird).
session.cookie_samesite string
Erlaubt es Servern zu bestätigen, dass ein Cookie nicht mit seitenübergreifenden Anfragen gesendet werden sollte. Diese Bestätigung ermöglicht es User Agents die Gefahr von herkunftsübergreifenden Informationslecks zu lindern, und bietet etwas Schutz gegen Fälschungsangriffe auf seitenübergreifende Anfragen (Cross-Site Request Forgery Attacks). Es ist zu beachten, dass diese nicht von allen Browsern unterstützt wird. Ein leerer Wert bedeutet, dass kein SameSite-Cookie-Attribut gesetzt wird. Lax und Strict bedeuten, dass das Cookie bei POST-Anfragen nicht domainübergreifend gesendet wird; Lax sendet das Cookie für domainübergreifende GET-Anfragen, während Strict das nicht tut.
session.cache_limiter string
session.cache_limiter definiert die Methode der Cacheverwaltung, die bei Session-Seiten benutzt wird. Das kann einer der folgenden Werte sein: nocache, private, private_no_expire oder public. Grundeinstellung nocache. Informationen über die Bedeutung dieser Werte finden Sie in der session_cache_limiter()-Dokumentation.
session.cache_expire int
session.cache_expire definiert in Minuten, wie lange Session-Seiten im Cache bleiben. Bei nocache ist diese Angabe wirkungslos. Grundeinstellung 180. Siehe auch session_cache_expire().
session.use_trans_sid bool
session.use_trans_sid bestimmt ob transparente SID-Unterstützung aktiviert ist oder nicht. Grundeinstellung 0 (deaktiviert).

Hinweis: URL-basiertes Session-Management hat im Vergleich zu Cookie-basiertem Session-Management zusätzliche Sicherheitsrisiken. Benutzer können zum Beispiel eine URL, die eine aktive Session-ID enthält, per E-Mail an Freunde schicken oder in ihren Bookmarks speichern und immer mit der selben Session-ID auf Ihre Seite zugreifen. Seit PHP 7.1.0 werden auch vollständige URL-Pfade, z.B. https://php.net/, vom trans-sid-Feature unterstützt. Vorherige PHP-Versionen unterstützten nur relative URL-Pfade. Rewrite-Ziel-Hosts werden durch session.trans_sid_hosts definiert.

session.trans_sid_tags string
session.trans_sid_tags gibt an, welche HTML-Tags umgeschrieben werden, um die Session-ID zu enthalten, wenn transparente SID-Unterstützung aktiviert ist. Die Voreinstellung ist a=href,area=href,frame=src,input=src,form=. form ist ein besonderes Tag. <input hidden="session_id" name="session_name"> wird als Form-Variable hinzugefügt.

Hinweis: Vor PHP 7.1.0, wurde url_rewriter.tags für diesen Zweck verwendet. Seit PHP 7.1.0 wird fieldset nicht mehr als besonderes Tag angesehen.

session.trans_sid_hosts string
session.trans_sid_hosts gibt an, welche Hosts umgeschrieben werden, um die Session-ID zu enthalten, wenn transparente SID-Unterstützung aktiviert ist. Die Voreinstellung ist $_SERVER['HTTP_HOST']. Mehrere Hosts können durch "," getrennt angegeben werden; Leerzeichen sind nicht erlaubt. Beispiel: php.net,wiki.php.net,bugs.php.net.
session.sid_length int
session.sid_length erlaubt die Angabe der Länge der Session-ID-Zeichenkette. Diese Länge kann zwischen 22 und 256 liegen. Die Voreinstellung ist 32. Wird Kompatibilität benötigt, kann 32, 40, etc. angegeben werden. Längere Session-IDs sind schwieriger zu erraten. Wenigstens 32 Zeichen werden empfohlen.
Tipp

Hinweis zur Kompatibiliät: Verwenden Sie 32 anstatt
session.hash_function=0 (MD5) und
session.hash_bits_per_character=4,
session.hash_function=1 (SHA1) und
session.hash_bits_per_character=6. Verwenden Sie 26
anstatt session.hash_function=0 (MD5) und
session.hash_bits_per_character=5. Verwenden Sie 22
anstatt session.hash_function=0 (MD5) und
session.hash_bits_per_character=6. Die INI Werte
müssen so konfiguriert werden, dass sie wenigstens 128 bits in der
Session-ID haben. Vergessen Sie nicht,
session.sid_bits_per_character den entsprechenden
Wert zuzuweisen; andernfalls erhalten Sie schwächere Session-IDs.

Hinweis: Diese Einstellung wurde in PHP 7.1.0 eingeführt.

session.sid_bits_per_character int
session.sid_per_character erlaubt die Angabe der Anzahl der Bits in kodierten Session-ID-Zeichen. Die möglichen Werte sind '4' (0-9, a-f), '5' (0-9, a-v) und '6' (0-9, a-z, A-Z, "-", ","). Die Voreinstellung ist 4. Mehr Bits ergeben stärkere Session-IDs. 5 wird für die meisten Umgebungen empfohlen.

Hinweis: Diese Einstellung wurde in PHP 7.1.0 eingeführt.

session.hash_function mixed
session.hash_function gibt Ihnen die Möglichkeit, den Prüfsummen-Algorithmus für die Erzeugung von Session-IDs selbst zu bestimmen. '0' bedeutet MD5 (128 Bit) und '1' bedeutet SHA-1 (160 Bit).

Ab PHP 5.3.0 ist es auch möglich, einen der Algorithmen zu bestimmen, die durch die Hash-Erweiterung (falls vorhanden) zur Verfügung stehen, wie z.B. sha512 oder whirlpool. Eine vollständige Liste unterstützter Algorithmen erhalten Sie mit der Funktion hash_algos().

Hinweis: Diese Einstellung wurde in PHP 5 eingeführt. Entfernt in PHP 7.1.0.

session.hash_bits_per_character int
session.hash_bits_per_character gibt Ihnen die Möglichkeit, zu definieren wieviele Bit bei der Umwandlung der binären Prüfsummen-Daten in etwas Lesbares in jedem Zeichen gespeichert werden. Mögliche Werte sind '4' (0-9, a-f), '5' (0-9, a-v) und '6' (0-9, a-z, A-Z, "-", ",").

Hinweis: Entfernt in PHP 7.1.0.

session.upload_progress.enabled bool
Aktiviert die Überwachung des Upload-Fortschritts und füllt die entsprechende $_SESSION-Variable. Grundeinstellung 1 (aktiviert).
session.upload_progress.cleanup bool
Löscht die Fortschritts-Informationen, sobald alle POST-Daten gelesen wurden (also der Upload abgeschlossen ist). Grundeinstellung 1 (aktiviert).

Hinweis: Es wird dringend empfohlen diese Funktion aktiviert zu lassen.

session.upload_progress.prefix string
Ein Präfix für den Namen des Schlüssels für den Upload-Fortschritt im $_SESSION-Array. An diesen wird der Wert von $_POST[ini_get("session.upload_progress.name")] angehängt, um einen eindeutigen Schlüssel zu erhalten. Grundeinstellung "upload_progress_".
session.upload_progress.name string
Der Name des Schlüssels im $_SESSION-Array, in welchem die Fortschritts-Informationen gespeichert werden sollen. Siehe auch session.upload_progress.prefix. Falls $_POST[ini_get("session.upload_progress.name")] nicht übergeben wird oder nicht verfügbar ist, wird kein Upload-Fortschritt aufgezeichnet. Grundeinstellung "PHP_SESSION_UPLOAD_PROGRESS".
session.upload_progress.freq mixed
Definiert, wie oft die Fortschritts-Information aktualisiert werden soll. Dieser Wert kann entweder in Bytes (d.h. Aktualisierung nachdem eine bestimmte Anzahl an Bytes empfangen wurde) oder in Prozent (d.h. Aktualisierung nachdem eine bestimmte Prozentzahl der gesamten Dateigröße empfangen wurde) angegeben werden. Grundeinstellung "1%".
session.upload_progress.min_freq int
Die Zeit, die mindestens zwischen zwei Aktualisierungen vergehen muss. Grundeinstellung "1" (eine Sekunde).
session.lazy_write bool
Falls session.lazy_write auf 1 gesetzt ist, werden Daten nur gespeichert, nachdem sie sich geändert haben. Grundeinstellung 1 (aktiviert).

Der Upload-Fortschritt wird nur aufgezeichnet, wenn session.upload_progress.enabled aktiviert ist und die Variable $_POST[ini_get("session.upload_progress.name")] gesetzt ist. Siehe Session Upload Progress für weitere diesbezügliche Informationen.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SID (string)
Konstante, die entweder den Namen und die ID der Session in der Form "name=ID" enthält oder eine leere Zeichenkette, falls die Session-ID in einem entsprechenden Cookie gesetzt wurde. Es ist dieselbe ID, die auch von session_id() zurückgegeben wird.
PHP_SESSION_DISABLED (int)
Ab PHP 5.4.0. Der Rückgabewert von session_status(), falls Sessions deaktiviert sind.
PHP_SESSION_NONE (int)
Ab PHP 5.4.0. Der Rückgabewert von session_status(), falls Sessions aktiviert sind, aber keine Session existiert.
PHP_SESSION_ACTIVE (int)
Ab PHP 5.4.0. Der Rückgabewert von session_status(), falls Sessions aktiviert sind und eine Session existiert.


Beispiele

Inhaltsverzeichnis

  • Grundlegende Anwendung
  • Übermittlung der Session-ID
  • Individuelle Session-Routinen


Grundlegende Anwendung

Sessions bieten eine einfache Möglichkeit, Daten für individuelle Benutzer unter einer eindeutigen Session-ID zu speichern. Sie können verwendet werden, damit Daten zwischen Seitenanforderungen bestehen bleiben. Session-IDs werden in der Regel über Session-Cookies an den Browser gesendet und die ID wird verwendet, um vorhandene Sessiondaten abzurufen. Das Fehlen einer ID oder eines Session-Cookies veranlasst PHP, eine neue Session zu erstellen und eine neue Session-ID zu erzeugen.

Sessions folgen einem einfachen Ablauf. Wenn eine Session gestartet wird, ruft PHP entweder eine vorhandene Session unter Verwendung einer (normalerweise von einem Session-Cookie) übergebenen ID ab oder erzeugt eine neue Session, falls keine Session-ID übergeben wurde. Nachdem die Session gestartet wurde, füllt PHP die $_SESSION-Superglobale mit allen Sessiondaten. Am Ende des Skripts nimmt PHP automatisch den Inhalt der $_SESSION-Superglobalen, serialisiert ihn und verwendet Session-Speicherfunktion um ihn zu speichern.

Standardmäßig verwendet PHP die interne files-Speicherroutine, die mittels session.save_handler festgelegt ist. Diese speichert die Sessiondaten auf dem Server an der mit der Konfigurationsanweisung session.save_path angegebenen Stelle.

Sessions können über die Funktion session_start() gestartet werden. Falls die Konfigurationsanweisung session.auto_start auf 1 gesetzt ist, wird eine Session automatisch zu Beginn einer Anfrage gestartet.

Sessions werden normalerweise automatisch geschlossen, wenn PHP am Ende eines Skripts ist, können aber über session_write_close() auch manuell geschlossen werden.

Beispiel #1 Registrierung einer Variablen mit $_SESSION.

<?php
session_start();
if (!isset($_SESSION['zaehler'])) {
  $_SESSION['zaehler'] = 0;
} else {
  $_SESSION['zaehler']++;
}
?>

Beispiel #2 Aufheben der Registrierung einer Variablen mit $_SESSION.

<?php
session_start();
unset($_SESSION['zaehler']);
?>

Achtung

Heben Sie NICHT die Registrierung der gesamten $_SESSION mit unset($_SESSION) auf, weil dies die Registrierung von Variablen durch die Superglobale $_SESSION deaktivieren würde.

Warnung

Sie können in Session-Variablen keine Referenzen verwenden, weil es keine praktikable Möglichkeit gibt, eine Referenz in eine andere Variable zurückzuführen.

Hinweis:

Bei dateibasierten Sessions (der Standard in PHP) wird die Sessiondatei gesperrt, wenn eine Session über session_start() oder implizit über session.auto_start geöffnet wurde. Einmal gesperrt, kann solange kein anderes Skript auf die selbe Sessiondatei zugreifen, bis die Session durch Beenden des ersten Skripts oder durch den Aufruf von session_write_close() geschlossen wurde.

Dies ist wahrscheinlich ein Problem auf Websites, die verstärkt AJAX verwenden und mehrere gleichzeitige Zugriffe haben. Der einfachste Weg, damit umzugehen, ist, session_write_close() möglichst früh im Skript aufzurufen, sobald alle nötigen Änderungen an der Session vorgenommen wurden. Alternativ könnte ein Session-Backend verwendet werden, das gleichzeitige Zugriffe unterstützt.


Übermittlung der Session-ID

Es gibt zwei Methoden, eine Session-ID zu übermitteln:

  • Cookies
  • URL-Parameter

Das Session-Modul unterstützt beide Methoden. Cookies sind optimal, aber da sie nicht immer zur Verfügung stehen, bieten wir auch noch eine Alternative an. Die zweite Methode hängt die Session-ID direkt an die URLs.

PHP ist in der Lage, Links transparent umzuwandeln. Ist die Laufzeit-Option session.use_trans_sid aktiviert, werden relative URIs automatisch so geändert, dass sie die Session-ID enthalten.

Hinweis:

Die php.ini-Anweisung arg_separator.output ermöglicht es, die Trennung von Argumenten anzupassen. Geben Sie dort für volle XHTML-Konformität &amp; an.

Alternativ kann die Konstante SID verwendet werden, die definiert ist, nachdem die Session gestartet wurde. Falls der Client kein geeignetes Session-Cookie gesendet hat, hat sie die Form session_name=session_id. Andernfalls wird sie zu einer leeren Zeichenkette erweitert. Aus diesem Grund kann sie bedingungslos in URLs eingebettet werden.

Das folgende Beispiel demonstriert, wie eine Variable registriert wird und wie unter Verwendung einer SID korrekt auf eine andere Seite verwiesen wird.

Beispiel #1 Zählen der Seitenaufrufe eines einzelnen Benutzers

<?php

session_start();

if (empty($_SESSION['zaehler'])) {
    $_SESSION['zaehler'] = 1;
} else {
    $_SESSION['zaehler']++;
}
?>

<p>
Hallo Besucher, Sie haben diese Seite <?php echo $_SESSION['zaehler']; ?> mal
aufgerufen.
</p>

<p>
Hier gehts
<a href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">weiter</a>.
</p>

Die Funktion htmlspecialchars() kann dazu verwendet werden, um bei der Ausgabe der SID XSS-ähnliche Angriffe zu verhindern.

Die oben gezeigte Ausgabe der SID ist nicht nötig, wenn PHP mit --enable-trans-sid übersetzt wurde.

Hinweis:

Bei nichtrelativen URLs wird davon ausgegangen, dass sie auf externe Seiten zeigen und deshalb keine SID angehängt, weil es ein Sicherheitsrisiko wäre, die SID an einen anderen Server zu übermitteln.


Individuelle Session-Routinen

Wenn die Speicherung in einer Datenbank oder irgendeine andere Art der Speicherung realisiert werden soll, kann session_set_save_handler() verwendet werden, um eine Reihe von benutzerdefinierten Speicherfunktionen zu erstellen. Ab PHP 5.4.0 können mit dem SessionHandlerInterface Session-Routinen erstellt werden oder interne PHP-Routinen durch Beerbung von SessionHandler erweitert werden.

Die in session_set_save_handler() definierten Callback-Funktionen sind Methoden, die von PHP während des Lebenszyklus einer Session aufgerufen werden: open, read, write und close und für Verwaltungsaufgaben: destroy um eine Session zu löschen und gc für die regelmäßige Speicherbereinigung.

Deshalb benötigt PHP immer Session-Speicherroutinen. Der Standard ist normalerweise die interne 'files'-Speicherroutine. Eine benutzerdefinierte Speicherroutine kann mittels session_set_save_handler() erstellt werden. Alternative interne Speicherroutinen werden auch von PHP-Erweiterungen, wie z.B. sqlite, memcache und memcached zur Verfügung gestellt und können mittels session.save_handler festgelegt werden.

Wenn die Session beginnt, ruft PHP intern die open-Routine, gefolgt vom read-Callback auf, der eine verschlüsselte Zeichenkette genau so zurückgeben sollte, wie sie ursprünglich für die Speicherung übergeben wurde. Nachdem der read-Callback die verschlüsselte Zeichenkette zurückgegeben hat, wird sie von PHP entschlüsselt und die $_SESSION-Superglobale mit dem resultierenden Array gefüllt.

Wenn das PHP-Skript endet (oder wenn session_write_close() aufgerufen wird), wird die $_SESSION-Superglobale intern verschlüsselt und zusammen mit der Session-ID an den write-Callback übergeben. Nach dem write-Callback ruft PHP intern den close-Callback auf.

Wenn eine Session gelöscht werden soll, ruft PHP die destroy-Routine mit der Session-ID auf.

Von Zeit zu Zeit ruft PHP den gc-Callback auf, um Sessions zu löschen, die entsprechend ihrer eingestellten maximalen Lebensdauer abgelaufen sind. Diese Routine sollte alle gespeicherten Datensätze löschen, auf die länger als die in $lifetime festgelegte Zeitspanne nicht mehr zugegriffen wurde.


Session-Upload-Fortschritt

Hinweis: Dieses Feature ist von PHP 5.4.0 an verfügbar.

Wenn die session.upload_progress.enabled Ini-Option aktiviert ist, kann PHP den Upload-Fortschritt der hochgeladenen Dateien verarbeiten. Die von PHP bereitgestellten Daten sind für den eigentlichen Upload-Vorgang nicht nutzbar. Um den Status des Uploads zu verarbeiten, muss die Anwendung eine POST-Anfrage an einen separaten Endpunkt (zum Beispiel via XHR) ausführen.

Der Upload-Fortschritt steht in der Superglobalen $_SESSION zur Verfügung, wenn der Upload-Vorgang stattfindet und wenn ein POST-Feld, mit dem in der Ini-Konfiguration session.upload_progress.name hinterlegten Namen, enthalten ist. Wenn PHP eine solche POST-Anfrage erkennt, wird ein Array mit Informationen in der $_SESSION hinterlegt. Die Information wird mit dem aus den Ini-Konfigurationen session.upload_progress.prefix und session.upload_progress.name zusammengesetzten Index gespeichert. Der Schlüssel wird dabei typischerweise aus den Ini-Konfigurationen zusammengesetzt, zum Beispiel:

<?php
$key = ini_get("session.upload_progress.prefix") . $_POST[ini_get("session.upload_progress.name")];
var_dump($_SESSION[$key]);
?>

Es ist auch möglich, den Upload-Vorgang, durch setzen des Session-Wertes $_SESSION[$key]["cancel_upload"] auf true, abzubrechen. Wenn mehrere Dateien in der gleichen Anfrage übertragen werden, wird dabei nur die in der Verarbeitung befindliche Datei und alle ausstehenden Dateien abgebrochen. Bereits erfolgreich übertragene Dateien werden nicht entfernt. Wenn ein Upload auf diese Weise abgebrochen wird, enthält der error Schlüssel des $_FILES Array den Wert UPLOAD_ERR_EXTENSION.

Die Ini-Konfigurationen session.upload_progress.freq und session.upload_progress.min_freq steuern, wie häufig die Upload-Fortschrittsinformationen neu berechnet werden sollen. Mit angemessenen Einstellungen bei diesen zwei Optionen ist der Aufwand für diese Funktion sehr gering.

Beispiel #1 Beispiel-Informationen

Beispiel für den Formularaufbau des Upload-Fortschritts.

<form action="upload.php" method="POST" enctype="multipart/form-data">
 <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="123" />
 <input type="file" name="file1" />
 <input type="file" name="file2" />
 <input type="submit" />
</form>

Die gespeicherten Daten in der Session sehen wie folgt aus:

<?php
$_SESSION["upload_progress_123"] = array(
 "start_time" => 1234567890,   // Anfragezeitpunkt
 "content_length" => 57343257, // POST Gesamtdatenmenge (in Bytes)
 "bytes_processed" => 453489,  // Menge der empfangenen und verabreiteten Daten (in Bytes)
 "done" => false,              // true, wenn die POST Datenverarbeitung beendet ist (erfolgreich oder nicht)
 "files" => array(
  0 => array(
   "field_name" => "file1",       // Name des <input/> Feldes
   // Die nächsten drei Elemente entsprechen den Angaben in $_FILES
   "name" => "foo.avi",
   "tmp_name" => "/tmp/phpxxxxxx",
   "error" => 0,
   "done" => true,                // true wenn die POST Datenverarbeitung dieser Datei beendet ist
   "start_time" => 1234567890,    // Zeitpunkt, wann die Verarbeitung der Datei begonnen hat
   "bytes_processed" => 57343250, // Menge der empfangenen und verarbeiteten Daten dieser Datei (in Bytes)
  ),
  // Eine weitere, noch nicht Komplett hochgeladene Datei, der selben Anfrage
  1 => array(
   "field_name" => "file2",
   "name" => "bar.avi",
   "tmp_name" => NULL,
   "error" => 0,
   "done" => false,
   "start_time" => 1234567899,
   "bytes_processed" => 54554,
  ),
 )
);

Warnung

In der Anfrage des Servers muss Pufferung deaktiviert sein, damit dies richtig funktioniert. Server wie z.B. Nginx sind bekannt dafür, große Anfragen zu puffern.

Achtung

Die Upload-Fortschrittsinformationen werden in die Session geschrieben, bevor irgendein Skript ausgeführt wird. Daher führt die Änderung des Session-Namens per ini_set() oder session_name() zu einer Session ohne die Upload-Fortschrittsinformationen.


Sessions and Security

Inhaltsverzeichnis

  • Session Management Basics
  • Securing Session INI Settings

External links: » Session fixation

HTTP session management represents the core of web security. All possible mitigation measures SHOULD be adopted to ensure sessions are secured. Developers should also enable/use applicable security measures.


Session Management Basics

Session Security

The session module can not guarantee that the information stored in a session is only viewed by the user who created the session. Additional measures are needed to protect the confidentiality of the session, depending on the value associated with it.

The importance of the data carried in the session needs to be assessed and further protection may be deployed; this typically comes at a price, such as reduced convenience for the user. For example, to protect users from a simple social engineering tactic, session.use_only_cookies needs to be enabled. In that case, cookies must be enabled unconditionally on the client side, or sessions will not work.

There are several ways to leak an existing session ID to third parties. E.g. JavaScript injections, session IDs in URLs, packet sniffing, physical access to the device, etc. A leaked session ID enables the third party to access all resources associated with a specific ID. First, URLs carrying session IDs. If there are links to an external site or resource, the URL including the session ID might be stored in the external site's referrer logs. Second, a more active attacker might listen to network traffic. If it is unencrypted, session IDs will flow in plain text over the network. The solution is to implement SSL/TLS on the server and make it mandatory for users. HSTS should be used for improved security.

Hinweis: Even HTTPS can not protect confidential data at all times. For example the CRIME and Beast vulnerabilities may enable an attacker to read the data. Also, note that many networks employ HTTPS MITM proxies for audit purposes. Attackers may also set up such a proxy.

Nonadaptive Session Management

PHP's session manager is adaptive by default currently. An adaptive session manager bears additional risks.

As of PHP 5.5.2, session.use_strict_mode is available. When it is enabled, and the session save handler supports it, an uninitialized session ID is rejected and a new one is created. This prevents an attack that forces users to use a known session ID. An attacker may paste links or send emails that contains the session ID. E.g. http://example.com/page.php?PHPSESSID=123456789 if session.use_trans_sid is enabled, the victim will start a session using the session ID provided by the attacker. session.use_strict_mode mitigate this risk.

Warnung

User defined save handlers can also support strict session mode by implementing session ID validation. All user defined save handlers should implement session ID validation.

The session ID cookie may be set with the domain, path, httponly, secure and, as of PHP 7.3, SameSite attributes. There is precedence defined by browsers. By using the precedence, an attacker can set session ID that could be used permanently. Use of session.use_only_cookies will not solve this issue. session.use_strict_mode mitigates this risk. With session.use_strict_mode=On, the uninitialized session ID will be refused.

Hinweis: Even though session.use_strict_mode mitigates the risk of adaptive session management, an attacker can force users to use an initialized session ID which has been created by an attacker. E.g. JavaScript injection. This attack can be mitigated by this manual's recommendations. By following this manual, developers should enable, session.use_strict_mode, use timestamp based session management, and regenerate session IDs using session_regenerate_id() with recommended procedures. If developers follow all of the above, an attacker generated session ID will eventually be deleted. When an access to an obsolete session occurs, developers should save all active session data of the user. As this information will be relevant for an ensuing investigation. The user should be forcefully logged out of all sessions, i.e. require them to reauthenticate. This prevents attackers from abusing stolen sessions.

Warnung

Access to an obsolete session does not necessarily suggest an attack. An unstable network and/or immediate deletion of the active session will result in legitimate users using obsolete sessions.

As of PHP 7.1.0, session_create_id() has been added. This function may be operated to access all active sessions of a user efficiently by prefixing the session IDs with the user ID. Enabling session.use_strict_mode is vital with this setup. Otherwise, malicious users can set malicious session ID for other users.

Hinweis: Users prior to PHP 7.1.0 SHOULD use CSPRNG, e.g. /dev/urandom, or random_bytes() and hash functions to generate a new session ID. session_create_id() has collision detection and generates a session ID according to the session's INI settings. Use of session_create_id() is preferred.

Session ID Regeneration

session.use_strict_mode is a good mitigation, however not sufficient. Developers must equally use session_regenerate_id() for session security.

Session ID regeneration reduces the risk of stolen session IDs, thus session_regenerate_id() must be called periodically. E.g. Regenerate the session ID every 15 minutes for security sensitive content. Even in the case that a session ID is stolen, both the legitimate user's and the attacker's session will expire. In other words access by the user or the attacker will generate an obsolete session access error.

Session IDs must be regenerated when user privileges are elevated, such as after authenticating. session_regenerate_id() must be called prior to setting the authentication information to $_SESSION. (As of PHP 7.0.0, session_regenerate_id() saves the current session data automatically in order to save timestamp/etc. to the current session.) Ensure only the new session contains the authenticated flag.

Developers must not rely on session ID expiration by session.gc_maxlifetime. Attackers may access a victim's session ID periodically to prevent its expiration and keep exploiting it, including an authenticated session.

Instead, developers must implement timestamp based session data management.

Warnung

Although the session manager can manage timestamps transparently, this feature is not implemented. Old session data must be kept until GC. Simultaneously, developers must assure themselves obsolete session data is removed. However, developers must not remove active session data immediately. I.e. session_regenerate_id(true); and session_destroy() must never be called together for an active session. This may sound contradictory, but this is a mandatory requirement.

session_regenerate_id() does not delete outdated sessions by default. Obsolete authenticated sessions may be present for use. Developers must prevent outdated sessions to be consumed by anyone. They must prohibit access to obsolete session data by themselves using timestamps.

Warnung

The sudden removal of an active session produces undesirable side effects. Sessions can vanish when there are concurrent connections to the web application and/or the network is unstable.

Potential malicious access is undetectable with the sudden removal of active sessions.

Instead of deleting outdated sessions immediately, developers must set a short-term expiration time (timestamp) in $_SESSION, and prohibit access to the session data by themselves.

Developers must not prohibit access to old session data immediately after session_regenerate_id(). It must be prohibited at a later stage. E.g. a few seconds later for stable networks, like a wired network, and a few minutes later for unstable networks such as cell phones or Wi-Fi.

If a user accesses an obsolete session (expired session), access to it should be denied. It is also recommended to remove the authenticated status from all of the user's sessions to as it is likely to represent an attack.

Proper use of session.use_only_cookies and session_regenerate_id() can cause personal DoS with undeletable cookies set by attackers. In this case, developers may invite users to remove cookies and advise them they may be affected by a security issue. Attackers may set malicious cookies via a vulnerable web application, an exposed/vicious browser plugin, a physically compromised device, etc.

Warnung

Do not misunderstand the DoS risk. use_strict_mode=On is mandatory for general session ID security! All sites are advised to enable use_strict_mode.

DoS can only happen when the account is under attack. A JavaScript injection vulnerability in an application represents the most common cause.

Session Data Deletion

Obsolete session data must be inaccessible and deleted. The current session module does not handle this well.

Obsolete session data should be removed as soon as possible. However, active sessions must not be removed instantly. To satisfy those requirements, developers must implement timestamp based session data management by themselves.

Set and manage expiration timestamp in $_SESSION. Prohibit access to outdated session data. When access to obsolete session data is detected, it is advised to remove all authenticated status from the user's sessions and force them to re-authenticate. Access to obsolete session data can represent an attack. To achieve this, developers must keep track of all active sessions of every user.

Hinweis: Access to an obsolete session can also happen because of an unstable network and/or concurrent access to the web site. E.g the server tried to set a new session ID via a cookie, but the Set-Cookie packet may not have reached the client due to loss of connection. One connection may issue a new session ID by session_regenerate_id(), but another concurrent connection may not have received the new session ID yet. Therefore, developers must prohibit access to obsolete session at a later stage. I.e. timestamp based session management is mandatory.

In summary, session data must not be destroyed with session_regenerate_id() nor session_destroy(), but timestamps must be used to control access to session data. Let session_gc() remove obsolete data from the session data storage.

Session and Locking

Session data is locked to avoid race conditions by default. Locking is mandatory to keep session data consistent across requests.

However, session-locking can be abused by attackers to perform DoS attacks. To mitigate the risk of a DoS attack by session-locking, minimize locks. Use read only sessions when session data does not need to be updated. Use the 'read_and_close' option with session_start(). session_start(['read_and_close'=>1]); Close the session as soon as possible after updating $_SESSION by using session_commit().

The current session module does not detect any modification of $_SESSION when the session is inactive. It is the developer's responsibility not to modify $_SESSION when the session is inactive.

Active Sessions

Developers should keep track of all active sessions for every user. And notify them of how many active sessions, from which IP (and area), how long it has been active, etc. PHP does not keep track of these. Developers are supposed to do so.

Various ways to implement this exist. One possible implementation is setting up a database that keeps track of the required data and stores any relevant information. Since session data is GCed, developers must take care of the GCed data to maintain the active session database consistency.

One of the simplest implementations is "User ID prefixed session ID" and store the required information in $_SESSION. Many databases posses good performance for selecting string prefix. Developers MAY use session_regenerate_id() and session_create_id() for this.

Warnung

Never employ confidential data as a prefix. If the user ID is confidential, consider using hash_hmac().

Warnung

Enabling session.use_strict_mode is mandatory for this setup. Ensure it is enabled. Otherwise the active session database can be compromised.

Timestamp based session management is mandatory to detect access to obsolete sessions. When access to an obsolete session is detected, authentication flags should be removed from all active sessions of the user. This prevents attackers to keep exploiting stolen sessions.

Session and Auto-login

Developers must not use long life session IDs for auto-login because it increases the risk of stolen sessions. An auto-login feature should be implemented by the developer.

Use a secure one time hash key as an auto-login key using setcookie(). Use a secure hash stronger than SHA-2. E.g. SHA-256 or greater with random data from random_bytes() or /dev/urandom.

If the user is unauthenticated, check whether the one-time auto-login key is valid or not. In the case it is valid, authenticate the user and set a new secure one-time hash key. An auto-login key must only be used once, i.e. never reuse an auto-login key, always generate a new one.

An auto-login key is a long life authentication key, it should be protected as much as possible. Use path/httponly/secure/SameSite cookie attributes to secure it. I.e. never transmit the auto-login key unless required.

Developer must implement the features that disables auto-login and removes unneeded auto-login key cookie.

CSRF (Cross-Site Request Forgeries) attacks

Sessions and authentication do not protect against CSRF attacks. Developers must implement CSRF protection by themselves.

output_add_rewrite_var() can be used for CSRF protection. Refer to the manual page for more details.

Hinweis: PHP prior to 7.2.0 uses the same output buffer and INI setting as trans sid. Therefore, use of output_add_rewrite_var() with PHP prior to version 7.2.0 is not advised.

Most web application frameworks support CSRF protection. Refer to the web application framework manual for more details.

As of PHP 7.3 the SameSite attribute for the session cookie can be set. This is an additional measure which can mitigate CSRF vulnerabilities.


Securing Session INI Settings

By securing session related INI settings, developers can improve session security. Some important INI settings do not have any recommended settings. Developers are responsible for hardening session settings.

  • session.cookie_lifetime=0

    0 possesses a particular meaning. It informs browsers not to store the cookie to permanent storage. Therefore, when the browser is terminated, the session ID cookie is deleted immediately. If developers set this other than 0, it may allow other users to use the session ID. Most applications should use "0" for this.

    If an auto-login feature is required, developers must implement their own secure auto-login feature. Do not use long life session IDs for this. More information can be found above in the relevant section.

  • session.use_cookies=On

    session.use_only_cookies=On

    Although HTTP cookies suffer some problems, cookies remain the preferred way to manage session IDs. Only use cookies for session ID management when it is possible. Most applications should use a cookie for the session ID.

    If session.use_only_cookies=Off, the session module will use the session ID values set by GET/POST/URL provided the session ID cookie is uninitialized.

  • session.use_strict_mode=On

    Although, enabling session.use_strict_mode is mandatory for secure sessions. It is disabled by default.

    This prevents the session module to use an uninitialized session ID. Put differently, the session module only accepts valid session IDs generated by the session module. It rejects any session ID supplied by users.

    Due to the cookie specification, attackers are capable to place non removable session ID cookies by locally setting a cookie database or JavaScript injections. session.use_strict_mode can prevent an attacker initialized session ID of being used.

    Hinweis:

    Attackers may initialize a session ID with their device and may set the session ID of the victim. They must keep the session ID active to abuse. Attackers require additional steps to perform an attack in this scenario. Therefore, session.use_strict_mode works as a mitigation.

  • session.cookie_httponly=On

    Refuses access to the session cookie from JavaScript. This setting prevents cookies snatched by a JavaScript injection.

    It is possible to use a session ID as a CSRF token, but this is not recommended. For example, HTML sources may be saved and sent to other users. Developers should not write session IDs in web pages for better security. Almost all applications must use the httponly attribute for the session ID cookie.

    Hinweis:

    The CSRF token should be renewed periodically just like the session ID.

  • session.cookie_secure=On

    Allow access to the session ID cookie only when the protocol is HTTPS. If a website is only accessible via HTTPS, it should enable this setting.

    HSTS should be considered for websites accessible only via HTTPS.

  • session.cookie_samesite="Lax" or session.cookie_samesite="Strict"

    As of PHP 7.3 the "SameSite" attribute can be set for the session ID cookie. This attribute is a way to mitigate CSRF (Cross Site Request Forgery) attacks.

    The difference between Lax and Strict is the accessibility of the cookie in requests originating from another registrable domain employing the HTTP GET method. Cookies using Lax will be accessible in a GET request originated from another registrable domain, whereas cookies using Strict will not.

  • session.gc_maxlifetime=[choose smallest possible]

    session.gc_maxlifetime is a setting for deleting obsolete session ID. Reliance on this setting is not recommended. Developers should manage the lifetime of sessions with a timestamp by themselves.

    Session GC (garbage collection) is best performed by using session_gc(). The session_gc() function should be executed by a task managers. E.g. cron on UNIX like systems.

    GC is performed by probability by default. This setting does not guarantee that an outdated session is deleted. Although developers cannot rely on this setting, specifying it to the smallest possible value is recommended. Adjusting session.gc_probability and session.gc_divisor so that obsolete sessions are deleted at an appropriate frequency. If an auto-login feature is required, developers must implement their own secure auto-login feature, see above for more information. Never use long life session ID for this feature.

    Hinweis:

    Some session save handler modules do not use this setting for probability based expiration. E.g. memcached, memcache. Refer to the session save handler documentation for details.

  • session.use_trans_sid=Off

    Use of a transparent session ID management is not prohibited. Developers may employ it when it is required. However, disabling transparent session ID management improves the general session ID security by eliminating the possibility of a session ID injection and/or leak.

    Hinweis:

    Session ID may leak from bookmarked URLs, e-mailed URLs, saved HTML source, etc.

  • session.trans_sid_tags=[limited tags]

    (PHP 7.1.0 >=) Developers should not rewrite unneeded HTML tags. Default value should be sufficient for most usages. Older PHP versions use url_rewriter.tags instead.

  • session.trans_sid_hosts=[limited hosts]

    (PHP 7.1.0 >=) This INI defines whitelist hosts that allows trans sid rewrite. Never add untrusted hosts. Session module only allows $_SERVER['HTTP_HOST'] when this setting is empty.

  • session.referer_check=[originating URL]

    When session.use_trans_sid is enabled. It reduces the risk of session ID injection. If a website is http://example.com/, set http://example.com/ to it. Note that with HTTPS browsers will not send the referrer header. Browsers may not send the referrer header by configuration. Therefore, this setting is not a reliable security measure. Use of this setting is recommended.

  • session.cache_limiter=nocache

    Ensure HTTP content are uncached for authenticated sessions. Allow caching only when the content is not private. Otherwise, content may be exposed. "private" may be employed if HTTP content does not include security sensitive data. Note that "private" may transmit private data cached by shared clients. "public" must only be used when HTTP content does not contain any private data at all.

  • session.sid_length="48"

    (PHP 7.1.0 >=) Longer session IDs results in stronger session IDs. Developers should consider a session ID length of 32 characters or more. At least 26 characters are required when session.sid_bits_per_character="5".

  • session.sid_bits_per_character="6"

    (PHP 7.1.0 >=) The more bits there are in a session ID character, the stronger the session ID generated by the session module is for an identical session ID length.

  • session.hash_function="sha256"

    (PHP 7.1.0 <) A stronger hash function will generate a stronger session ID. Although hash collision is unlikely even with the MD5 hashing algorithm, developers should use SHA-2 or a stronger hashing algorithm like sha384 and sha512. Developers must ensure they feed a long enough entropy for the hashing function used.

  • session.save_path=[non world-readable directory]

    If this is set to a world-readable directory, such as /tmp (the default), other users on the server may be able to hijack sessions by getting the list of files in that directory.


Session-Funktionen

Inhaltsverzeichnis

  • session_abort — Discard session array changes and finish session
  • session_cache_expire — Liefert und/oder setzt die aktuelle Cache-Verfallszeit
  • session_cache_limiter — Liefert und/oder setzt die aktuelle Cacheverwaltung
  • session_commit — Alias von session_write_close
  • session_create_id — Create new session id
  • session_decode — Dekodiert die Daten einer Session aus einer session-kodierten Zeichenkette
  • session_destroy — Löscht alle in einer Session registrierten Daten
  • session_encode — Kodiert die Daten der aktuellen Session als session-kodierte Zeichenkette
  • session_gc — Perform session data garbage collection
  • session_get_cookie_params — Liefert die Session-Cookie Parameter
  • session_id — Liefert und/oder setzt die aktuelle Session-ID
  • session_is_registered — Überprüft, ob eine globale Variable in einer Session registriert ist
  • session_module_name — Liefert und/oder setzt das aktuelle Session-Modul
  • session_name — Liefert und/oder setzt den Namen der aktuellen Session
  • session_regenerate_id — Ersetzt die aktuelle Session-ID durch eine neu erzeugte
  • session_register_shutdown — Funktion zum Schließen von Sitzungen
  • session_reset — Re-initialize session array with original values
  • session_save_path — Liefert und/oder setzt den aktuellen Speicherpfad der Session
  • session_set_cookie_params — Setzt die Session-Cookie-Parameter
  • session_set_save_handler — Setzt benutzerdefinierte Session-Speicherfunktionen
  • session_start — Erzeugt eine neue Session oder setzt eine vorhandene fort
  • session_status — Liefert den Status der aktuellen Session
  • session_unregister — Hebt die Registrierung einer globalen Variablen in der aktuellen Session auf
  • session_unset — Löscht alle Session-Variablen
  • session_write_close — Speichert die Session-Daten und beendet die Session


Discard session array changes and finish session

  • « Session-Funktionen
  • session_cache_expire »
  • PHP Manual
  • Session-Funktionen
  • Discard session array changes and finish session

session_abort

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

session_abort — Discard session array changes and finish session

Beschreibung

session_abort ( ) : bool

session_abort() finishes session without saving data. Thus the original values in session data are kept.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.2.0 | The return type of this function is bool now. Formerly, it has been void.

Siehe auch

  • $_SESSION
  • The session.auto_start configuration directive
  • session_start() - Erzeugt eine neue Session oder setzt eine vorhandene fort
  • session_reset() - Re-initialize session array with original values
  • session_commit() - Alias von session_write_close


Liefert und/oder setzt die aktuelle Cache-Verfallszeit

  • « session_abort
  • session_cache_limiter »
  • PHP Manual
  • Session-Funktionen
  • Liefert und/oder setzt die aktuelle Cache-Verfallszeit

session_cache_expire

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

session_cache_expire — Liefert und/oder setzt die aktuelle Cache-Verfallszeit

Beschreibung

session_cache_expire ( int|null $value = null ) : int|false

session_cache_expire() gibt die aktuelle Einstellung von session.cache_expire zurück.

Die Cache-Verfallszeit wird zu Beginn einer Anfrage auf den standardmäßigen Wert von 180, der in session.cache_expire gespeichert ist, zurückgesetzt. Folglich müssen Sie session_cache_expire() bei jeder Anfrage (und vor dem Aufruf von session_start()) aufrufen.

Parameter-Liste

value

Wenn value angegeben wurde und nicht null ist, wird die aktuelle Cache-Verfallszeit durch value ersetzt.

Hinweis: Das Setzen von value bewirkt nur dann etwas, wenn session.cache_limiter auf einen anderen Wert als nocache gesetzt ist.

Rückgabewerte

Gibt die aktuelle Einstellung von session.cache_expire zurück. Der zurückgegebene Wert wird in Minuten angegeben und ist standardmäßig auf 180 gesetzt. Falls die Änderung des Werts fehlschlägt, wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | value ist jetzt ein Nullable-Typ.

Beispiele

Beispiel #1 session_cache_expire()-Beispiel

<?php

/* setzen der Cacheverwaltung auf 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* setzen der Cache-Verfallszeit auf 30 Minuten */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* starten der Session */

session_start();

echo "Die Cacheverwaltung ist jetzt auf $cache_limiter gesetzt<br />";
echo "Die Session wird für $cache_expire Minuten im Cache gespeichert";
?>

Siehe auch

  • session.cache_expire
  • session.cache_limiter
  • session_cache_limiter() - Liefert und/oder setzt die aktuelle Cacheverwaltung


Liefert und/oder setzt die aktuelle Cacheverwaltung

  • « session_cache_expire
  • session_commit »
  • PHP Manual
  • Session-Funktionen
  • Liefert und/oder setzt die aktuelle Cacheverwaltung

session_cache_limiter

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

session_cache_limiter — Liefert und/oder setzt die aktuelle Cacheverwaltung

Beschreibung

session_cache_limiter ( string|null $value = null ) : string|false

session_cache_limiter() gibt die Bezeichnung der aktuellen Cacheverwaltung zurück.

Die Cacheverwaltung definiert, welche Cache-Kontroll-HTTP-Header, zum Client geschickt werden. Diese Header bestimmen die Regel, nach der der Seiteninhalt von Client und dazwischenliegenden Proxies in den Cachespeicher aufgenommen werden darf. Wird die Cacheverwaltung auf nocache gesetzt, so ist eine client-/proxyseitige Speicherung im Cache nicht erlaubt. Der Wert public erlaubt die Aufnahme in den Cachespeicher durch Proxies und den Client, wohingegen private Proxies die Speicherung im Cache verbietet und dem Client erlaubt, den Seiteninhalt im Cache zu speichern.

Im private-Modus könnte ein zum Client gesendeter Expire-Header manche Browser, inklusive Mozilla, verwirren. Sie können dieses Problem durch Verwendung des private_no_expire-Modus vermeiden. In diesem Modus wird nie ein Expire-Header zum Client gesendet.

Wenn die Cacheverwaltung auf '' gesetzt wird, werden überhaupt keine Cache-Header mehr automatisch gesendet.

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).

Parameter-Liste

value

Wenn value angegeben wurde und nicht null ist, wird die Cacheverwaltung dem neuen Wert entsprechend geändert.

Mögliche Werte
Wert Gesendete Header
public
Expires: (entsprechend session.cache_expire irgendwann in der Zukunft)
Cache-Control: public, max-age=(entsprechend session.cache_expire irgendwann
                                in der Zukunft)
Last-Modified: (der Zeitstempel der letzten Session-Speicherung)
private_no_expire
Cache-Control: private, max-age=(session.cache_expire in der Zukunft),
               pre-check=(session.cache_expire in der Zukunft)
Last-Modified: (der Zeitstempel der letzten Session-Speicherung)
private
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private, max-age=(session.cache_expire in der Zukunft),
               pre-check=(session.cache_expire in der Zukunft)
Last-Modified: (der Zeitstempel der letzten Session-Speicherung)
nocache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

Rückgabewerte

Gibt die Bezeichnung der aktuellen Cacheverwaltung zurück. Falls die Änderung des Werts fehlschlägt, wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | value ist jetzt ein Nullable-Typ.

Beispiele

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<br />";
?>

Siehe auch

  • session.cache_limiter


Alias von session_write_close

  • « session_cache_limiter
  • session_create_id »
  • PHP Manual
  • Session-Funktionen
  • Alias von session_write_close

session_commit

(PHP 4 >= 4.4.0, PHP 5, PHP 7, PHP 8)

session_commit — Alias von session_write_close()

Beschreibung

Diese Funktion ist ein Alias für: session_write_close().


Create new session id

  • « session_commit
  • session_decode »
  • PHP Manual
  • Session-Funktionen
  • Create new session id

session_create_id

(PHP 7 >= 7.1.0, PHP 8)

session_create_id — Create new session id

Beschreibung

session_create_id ( string $prefix = "" ) : string|false

session_create_id() is used to create new session id for the current session. It returns collision free session id.

If session is not active, collision check is omitted.

Session ID is created according to php.ini settings.

It is important to use the same user ID of your web server for GC task script. Otherwise, you may have permission problems especially with files save handler.

Parameter-Liste

prefix

If prefix is specified, new session id is prefixed by prefix. Not all characters are allowed within the session id. Characters in the range a-z A-Z 0-9 , (comma) and - (minus) are allowed.

Rückgabewerte

session_create_id() returns new collision free session id for the current session. If it is used without active session, it omits collision check. On failure, false is returned.

Beispiele

Beispiel #1 session_create_id() example with session_regenerate_id()

<?php
// My session start function support timestamp management
function my_session_start() {
    session_start();
    // Do not allow to use too old session ID
    if (!empty($_SESSION['deleted_time']) && $_SESSION['deleted_time'] < time() - 180) {
        session_destroy();
        session_start();
    }
}

// My session regenerate id function
function my_session_regenerate_id() {
    // Call session_create_id() while session is active to
    // make sure collision free.
    if (session_status() != PHP_SESSION_ACTIVE) {
        session_start();
    }
    // WARNING: Never use confidential strings for prefix!
    $newid = session_create_id('myprefix-');
    // Set deleted timestamp. Session data must not be deleted immediately for reasons.
    $_SESSION['deleted_time'] = time();
    // Finish session
    session_commit();
    // Make sure to accept user defined session ID
    // NOTE: You must enable use_strict_mode for normal operations.
    ini_set('session.use_strict_mode', 0);
    // Set new custom session ID
    session_id($newid);
    // Start with custom session ID
    session_start();
}

// Make sure use_strict_mode is enabled.
// use_strict_mode is mandatory for security reasons.
ini_set('session.use_strict_mode', 1);
my_session_start();

// Session ID must be regenerated when
//  - User logged in
//  - User logged out
//  - Certain period has passed
my_session_regenerate_id();

// Write useful codes
?>

Siehe auch

  • session_regenerate_id() - Ersetzt die aktuelle Session-ID durch eine neu erzeugte
  • session_start() - Erzeugt eine neue Session oder setzt eine vorhandene fort
  • session.use_strict_mode
  • SessionHandler::create_sid() - Return a new session ID


Dekodiert die Daten einer Session aus einer session-kodierten Zeichenkette

  • « session_create_id
  • session_destroy »
  • PHP Manual
  • Session-Funktionen
  • Dekodiert die Daten einer Session aus einer session-kodierten Zeichenkette

session_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

session_decode — Dekodiert die Daten einer Session aus einer session-kodierten Zeichenkette

Beschreibung

session_decode ( string $data ) : bool

session_decode() dekodiert die mittels data übergebenen serialisierten Daten der Session und füllt die $_SESSION-Superglobale damit.

Standardmäßig ist das verwendete Deserialisierungsverfahren ein PHP-internes, und nicht dasselbe ist, wie bei unserialize(). Das Serialisierungsverfahren kann mit der Konfigurationsoption session.serialize_handler festgelegt werden.

Parameter-Liste

data

Die kodierten Daten, die gespeichert werden sollen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • session_encode() - Kodiert die Daten der aktuellen Session als session-kodierte Zeichenkette
  • session.serialize_handler


Löscht alle in einer Session registrierten Daten

  • « session_decode
  • session_encode »
  • PHP Manual
  • Session-Funktionen
  • Löscht alle in einer Session registrierten Daten

session_destroy

(PHP 4, PHP 5, PHP 7, PHP 8)

session_destroy — Löscht alle in einer Session registrierten Daten

Beschreibung

session_destroy ( ) : bool

session_destroy() löscht alle in Verbindung mit der aktuellen Session stehenden Daten. Mit der Session zusammenhängende globale Variablen und das Session-Cookie werden nicht gelöscht. Um wieder Session-Variablen verwenden zu können, muss session_start() aufgerufen werden.

Hinweis: Normalerweise ist es nicht erforderlich session_destroy() aufzurufen; statt dessen sollte das $_SESSION-Array bereinigt werden.

Um die Session komplett zu löschen, muss auch die Session-ID gelöscht werden. Wenn zum Verfolgen der Session ein Cookie benutzt wird (standardmäßige Einstellung), muss das Session-Cookie gelöscht werden. Dafür kann setcookie() verwendet werden.

Ist session.use_strict_mode aktiviert, dann ist es nicht nötig, veraltete Session-ID-Cookies zu löschen, da das Session-Modul dann kein Session-ID-Cookie akzeptiert, wenn keine zu dieser Session-ID gehörigen Daten vorhanden sind, so dass ein neues Session-ID-Cookie gesetzt würde. Das Aktivieren von session.use_strict_mode wird grundsätzlich empfohlen.

Warnung

Das sofortige Löschen der Session kann zu unerwünschten Ergebnissen führen. Wenn es gleichzeitige Anfragen gibt, können andere Verbindungen, z.B. Anfragen von JavaScript und/oder Anfragen von URL-Links, plötzlich Session-Daten verlieren.

Das aktuelle Session-Modul akzeptiert zwar keine leeres Session-ID-Cookie, aber das sofortige Löschen der Sitzung kann aufgrund einer Client- (Browser-) seitigen Race-Condition zu einem leeren Session-ID-Cookie führen. Dies würde dazu führen, dass der Client unnötig viele Session-IDs erzeugt.

Um diese zu vermeiden, müssen Sie den Löschzeitstempel auf $_SESSION setzen und den Zugriff zu einem späteren Zeitpunkt verweigern. Oder stellen Sie sicher, dass Ihre Anwendung keine gleichzeitige Anfragen hat. Dies gilt auch für session_regenerate_id().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Löschen einer Session mit $_SESSION

<?php
// Initialisierung der Session.
// Wenn Sie session_name("irgendwas") verwenden, vergessen Sie es
// jetzt nicht!
session_start();

// Löschen aller Session-Variablen.
$_SESSION = array();

// Falls die Session gelöscht werden soll, löschen Sie auch das
// Session-Cookie.
// Achtung: Damit wird die Session gelöscht, nicht nur die Session-Daten!
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000, $params["path"],
        $params["domain"], $params["secure"], $params["httponly"]
    );
}

// Zum Schluß, löschen der Session.
session_destroy();
?>

Anmerkungen

Hinweis:

Verwenden Sie session_unset() nur bei veraltetem Code, bei dem nicht $_SESSION benutzt wird.

Siehe auch

  • session.use_strict_mode
  • session_reset() - Re-initialize session array with original values
  • session_regenerate_id() - Ersetzt die aktuelle Session-ID durch eine neu erzeugte
  • unset() - Löschen einer angegebenen Variablen
  • setcookie() - Sendet ein Cookie


Kodiert die Daten der aktuellen Session als session-kodierte Zeichenkette

  • « session_destroy
  • session_gc »
  • PHP Manual
  • Session-Funktionen
  • Kodiert die Daten der aktuellen Session als session-kodierte Zeichenkette

session_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

session_encode — Kodiert die Daten der aktuellen Session als session-kodierte Zeichenkette

Beschreibung

session_encode ( ) : string|false

session_encode() gibt eine serialisierte Zeichenkette des Inhalts der aktuellen Session, der in der $_SESSION-Superglobalen gespeichert ist, zurück.

Standardmäßig ist das verwendete Serialisierungsverfahren PHP-intern, und nicht dasselbe wie bei serialize(). Das Serialisierungsverfahren kann mit der Konfigurationsoption session.serialize_handler festgelegt werden.

Rückgabewerte

Gibt Inhalt der aktuellen Session kodiert zurück. Im Fehlerfall wird false zurückgegeben..

Anmerkungen

Warnung

session_start() muss vor session_encode() aufgerufen werden.

Siehe auch

  • session_decode() - Dekodiert die Daten einer Session aus einer session-kodierten Zeichenkette
  • session.serialize_handler


Perform session data garbage collection

  • « session_encode
  • session_get_cookie_params »
  • PHP Manual
  • Session-Funktionen
  • Perform session data garbage collection

session_gc

(PHP 7 >= 7.1.0, PHP 8)

session_gc — Perform session data garbage collection

Beschreibung

session_gc ( ) : int|false

session_gc() is used to perform session data GC(garbage collection). PHP does probability based session GC by default.

Probability based GC works somewhat but it has few problems. 1) Low traffic sites' session data may not be deleted within the preferred duration. 2) High traffic sites' GC may be too frequent GC. 3) GC is performed on the user's request and the user will experience a GC delay.

Therefore, it is recommended to execute GC periodically for production systems using, e.g., "cron" for UNIX-like systems. Make sure to disable probability based GC by setting session.gc_probability to 0.

Rückgabewerte

session_gc() returns number of deleted session data for success, false for failure.

Old save handlers do not return number of deleted session data, but only success/failure flag. If this is the case, number of deleted session data became 1 regardless of actually deleted data.

Beispiele

Beispiel #1 session_gc() example for task managers like cron

<?php
// Note: This script should be executed by the same user of web server process.

// Need active session to initialize session data storage access.
session_start();

// Executes GC immediately
session_gc();

// Clean up session ID created by session_gc()
session_destroy();
?>

Beispiel #2 session_gc() example for user accessible script

<?php
// Note: session_gc() is recommended to be used by task manager script, but
// it may be used as follows.

// Used for last GC time check
$gc_time = '/tmp/php_session_last_gc';
$gc_period = 1800;

session_start();
// Execute GC only when GC period elapsed.
// i.e. Calling session_gc() every request is waste of resources.
if (file_exists($gc_time)) {
    if (filemtime($gc_time) < time() - $gc_period) {
        session_gc();
        touch($gc_time);
    }
} else {
    touch($gc_time);
}
?>

Siehe auch

  • session_start() - Erzeugt eine neue Session oder setzt eine vorhandene fort
  • session_destroy() - Löscht alle in einer Session registrierten Daten
  • session.gc_probability


Liefert die Session-Cookie Parameter

  • « session_gc
  • session_id »
  • PHP Manual
  • Session-Funktionen
  • Liefert die Session-Cookie Parameter

session_get_cookie_params

(PHP 4, PHP 5, PHP 7, PHP 8)

session_get_cookie_params — Liefert die Session-Cookie Parameter

Beschreibung

session_get_cookie_params ( ) : array

Liefert die Parameter des Session-Cookie.

Rückgabewerte

Gibt ein Array mit der Information des aktuellen Session-Cookies zurück. Das Array enthält folgende Elemente:

  • "lifetime" - Die Lebensdauer des Cookies in Sekunden.
  • "path" - Der Pfad, unter dem Informationen gespeichert sind.
  • "domain" - Die Domain des Cookies.
  • "secure" - Das Cookie soll nur über sichere Verbindungen gesendet werden.
  • "httponly" - Auf das Cookie kann nur durch das HTTP-Protokoll zugegriffen werden.
  • "samesite" - Steuert das cross-domain Versenden des Cookies.

Changelog

Version | Beschreibung
7.3.0 | Das Element "samesite" wurde im zurückgegebenen Array hinzugefügt.

Siehe auch

  • session.cookie_lifetime
  • session.cookie_path
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session.cookie_samesite
  • session_set_cookie_params() - Setzt die Session-Cookie-Parameter


Liefert und/oder setzt die aktuelle Session-ID

  • « session_get_cookie_params
  • session_is_registered »
  • PHP Manual
  • Session-Funktionen
  • Liefert und/oder setzt die aktuelle Session-ID

session_id

(PHP 4, PHP 5, PHP 7, PHP 8)

session_id — Liefert und/oder setzt die aktuelle Session-ID

Beschreibung

session_id ( string|null $id = null ) : string|false

session_id() wird verwendet, um die Session-ID der aktuellen Session zu erhalten oder zu setzen.

Die Konstante SID kann auch dazu verwendet werden, den aktuellen Namen und die Session-ID als Zeichenkette passend zum Anhängen an URLs zu erhalten. Siehe auch Session Funktionen.

Parameter-Liste

id

Wenn id angegeben wird und nicht null ist, wird die aktuelle Session-ID ersetzt. session_id() muss zu diesem Zweck vor session_start() aufgerufen werden. In Abhängigkeit von der Session-Prozedur sind in der Session-ID nicht alle Zeichen erlaubt. Zum Beispiel erlaubt die dateibasierte Session-Prozedur nur Zeichen im Bereich a-z A-Z 0-9 , (Komma) und - (Minus)!

Hinweis: Falls Session-Cookies verwendet werden und für session_id() eine id angegeben wird, wird ungeachtet dessen, ob die aktuelle Session-ID mit der neuen identisch ist, bei jedem Aufruf von session_start() ein neues Cookie gesendet.

Rückgabewerte

session_id() gibt die Session-ID der aktuellen Session zurück oder die leere Zeichenkette (""), falls es keine aktuelle Session gibt (es existiert keine aktuelle Session-ID). Bei Auftreten eines Fehlers wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | id ist jetzt ein Nullable-Typ.

Siehe auch

  • session_regenerate_id() - Ersetzt die aktuelle Session-ID durch eine neu erzeugte
  • session_start() - Erzeugt eine neue Session oder setzt eine vorhandene fort
  • session_set_save_handler() - Setzt benutzerdefinierte Session-Speicherfunktionen
  • session.save_handler


Überprüft, ob eine globale Variable in einer Session registriert ist

  • « session_id
  • session_module_name »
  • PHP Manual
  • Session-Funktionen
  • Überprüft, ob eine globale Variable in einer Session registriert ist

session_is_registered

(No version information available, might only be in Git)

session_is_registered — Überprüft, ob eine globale Variable in einer Session registriert ist

Beschreibung

session_is_registered ( string $name ) : bool

Überprüft, ob eine globale Variable in einer Session registriert ist.

Warnung

Diese Funktion wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und ist seit PHP 5.4.0 ENTFERNT (entfernt).

Parameter-Liste

name

Der Variablenname

Rückgabewerte

Falls in der aktuellen Session eine globale Variable mit dem Namen name registriert ist, gibt session_is_registered() true zurück, andernfalls false.

Anmerkungen

Hinweis:

Benutzen Sie bei Verwendung von $_SESSION isset() um zu prüfen, ob eine Variable in $_SESSION registriert ist.

Achtung

Wenn Sie $_SESSION (oder
$HTTP_SESSION_VARS) verwenden, sollten Sie nicht
session_register(),
session_is_registered() und
session_unregister() verwenden.


Liefert und/oder setzt das aktuelle Session-Modul

  • « session_is_registered
  • session_name »
  • PHP Manual
  • Session-Funktionen
  • Liefert und/oder setzt das aktuelle Session-Modul

session_module_name

(PHP 4, PHP 5, PHP 7, PHP 8)

session_module_name — Liefert und/oder setzt das aktuelle Session-Modul

Beschreibung

session_module_name ( string|null $module = null ) : string|false

session_module_name() gibt den Namen des aktuellen Session-Moduls zurück, das auch unter dem Namen session.save_handler bekannt ist.

Parameter-Liste

module

Wenn module angegeben wird und nicht null ist, wird stattdessen dieses Modul verwendet. Die Übergabe von "user" an diesen Parameter ist verboten. Statt dessen sollte session_set_save_handler() aufgerufen werden, um einen benutzerdefinierten Session-Handler festzulegen.

Rückgabewerte

Gibt den Namen des aktuellen Session-Moduls zurück. Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | module ist jetzt ein Nullable-Typ.
7.2.0 | Es ist nun explizit verboten, den Modulnamen auf "user" festzulegen. Zuvor wurde dies stillschweigend ignoriert.


Liefert und/oder setzt den Namen der aktuellen Session

  • « session_module_name
  • session_regenerate_id »
  • PHP Manual
  • Session-Funktionen
  • Liefert und/oder setzt den Namen der aktuellen Session

session_name

(PHP 4, PHP 5, PHP 7, PHP 8)

session_name — Liefert und/oder setzt den Namen der aktuellen Session

Beschreibung

session_name ( string|null $name = null ) : string|false

session_name() gibt den Namen der aktuellen Session zurück. Falls name angegeben wurde, aktualisiert session_name() den Namen der Session und gibt den alten Namen der Session zurück.

Wird ein neuer Sessionname (name) angegeben, ändert session_name() das HTTP-Cookie (und den Inhalt der Ausgabe, wenn session.transid aktiv ist). Ist das HTTP-Cookie gesendet, erzeugt session_name() einen Fehler. session_name() muss vor session_start() aufgerufen werden, damit die Session ordnungsgemäß funktioniert.

Der Sessionname 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() aufgerufen wurde).

Parameter-Liste

name

Der Sessionname referenziert den Namen der Session, der in Cookies und URLs verwendet wird (z.B. PHPSESSID). Er sollte nur alphanumerische Zeichen enthalten und sollte kurz und beschreibend sein (z.B. für Benutzer mit aktivierter Cookie-Warnung). Wenn name angegeben wird und nicht null ist, wird der Name der aktuellen Session durch dessen Wert ersetzt.

Warnung

Der Sessionname kann nicht nur aus Zahlen bestehen, sondern muss mindestens einen Buchstaben enthalten. Andernfalls wird jedesmal eine neue Session-ID erzeugt.

Rückgabewerte

Gibt den Namen der aktuellen Session zurück. Wird name übergegeben und die Funktion aktualisiert den Sessionnamen, wird der Name der alten Sitzung zurückgegeben. Im Fehlerfall wird false zurückgegeben..

Changelog

Version | Beschreibung
8.0.0 | name ist jetzt ein Nullable-Typ.
7.2.0 | session_name() prüft den Session-Status; zuvor wurde nur der Cookie-Status geprüft. Somit war es zuvor möglich, dass session_name() nach session_start() aufgerufen wurde, was möglicherweise PHP zum Absturz brachte, und zu anderem Fehlverhalten führen konnte.

Beispiele

Beispiel #1 session_name()-Beispiel

<?php
/* den Sessionnamen auf WebsiteID setzen */
$name_vorher = session_name ("WebsiteID");
echo "Der vorhergehende Sessionname war $name_vorher<br />";
?>

Siehe auch

  • Die Konfigurationsanweisung session.name


Ersetzt die aktuelle Session-ID durch eine neu erzeugte

  • « session_name
  • session_register_shutdown »
  • PHP Manual
  • Session-Funktionen
  • Ersetzt die aktuelle Session-ID durch eine neu erzeugte

session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

session_regenerate_id — Ersetzt die aktuelle Session-ID durch eine neu erzeugte

Beschreibung

session_regenerate_id ( bool $delete_old_session = false ) : bool

Die Funktion session_regenerate_id() ersetzt die aktuelle Session-ID durch eine neue und übernimmt die aktuellen Session-Informationen.

Wenn session.use_trans_sid aktiviert ist, darf die Ausgabe erst nach dem Aufruf von session_regenerate_id() beginnen. Andernfalls wird die alte Session-ID verwendet.

Warnung

Zurzeit kann session_regenerate_id nicht gut mit unstabilen Netzwerken umgehen, wie z.B. mobilen und WiFi-Netzwerken. Daher kann es zu verlorenen Sessions kommen, wenn session_regenerate_id aufgerufen wird.

Die alten Session-Daten sollten nicht sofort zerstört werden, sondern es sollte ein Destroy-Zeitstempel verwendet werden, und der Zugriff auf die alte Session-ID sollte kontrolliert werden. Andernfalls kann der konkurrierende Zugriff auf die Seite möglicherweise zu einem inkonsistenten Zustand führen, oder die Session kann gänzlich verloren werden, oder es kann sich eine Race Condition im Client (Browser) ergeben, und viele Session-IDs könnten nutzlos erzeugt werden. Die sofortige Löschung der Session-Daten verhindert die Erkennung von Session-Hijack-Angriffen, und ebenfalls deren Vorbeugung.

Parameter-Liste

delete_old_session

Legt fest, ob die zugehörige alte Sessiondatei gelöscht werden soll oder nicht. Die alten Session-Daten sollten nicht gelöscht werden, wenn Race Conditions, die durch die Löschung verursacht werden, verhindert, oder Session-Hijack-Angriffe erkannt oder vermieden werden müssen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ein session_regenerate_id()-Beispiel

<?php
// ACHTUNG: dieser Code ist nicht voll funktionsfähig, sondern dient nur als Beispiel!

session_start();

// Prüfe den Destroy-Zeitstempel
if (isset($_SESSION['destroyed'])
    && $_SESSION['destroyed'] < time() - 300) {
    // Dies sollte normalerweise nicht passieren. Es könnte durch einen Angriff
    // oder ein unstabiles Netzwerk verursacht worden sein.
    // Entferne den Authentifizierungsstatus dieser Nutzer-Session.
    remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
    throw(new DestroyedSessionAccessException);
}

$old_sessionid = session_id();

// Lege den Destroy-Zeitstempel fest
$_SESSION['destroyed'] = time(); // Von PHP 7.0.0 an speichert session_regenerate_id() die alten Session-Daten

// Der einfache Aufruf von session_regenerate_id() kann in einer verlorenen
// Session resultieren, etc. Siehe das nächste Beispiel.
session_regenerate_id();

// Die neue Session braucht keinen Destroy-Zeitstempel
unset($_SESSION['destroyed']);

$new_sessionid = session_id();

echo "Alte Session: $old_sessionid<br />";
echo "Neue Session: $new_sessionid<br />";

print_r($_SESSION);
?>

Zurzeit kann das Session-Modul nicht gut mit unstabilen Netzwerken umgehen. Die Session-ID sollte selbst verwaltet werden, um verlorene Sessions durch session_regenarate_id zu verhindern.

Beispiel #2 Verhindern von verlorenen Sessions durch session_regenerate_id()

<?php
// ACHTUNG: dieser Code ist nicht voll funktionsfähig, sondern dient nur als Beispiel!
// my_session_start() und my_session_regenerate_id() verhindern verlorene Session
// durch unstabile Netzwerke. Zusätzlich kann dieser Code dem Ausnutzen einer
// gestohlenen Session durch Angreifer vorbeugen.

function my_session_start() {
    session_start();
    if (isset($_SESSION['destroyed'])) {
       if ($_SESSION['destroyed'] < time()-300) {
           // Dies sollte normalerweise nicht passieren. Es könnte durch einen Angriff
           // oder ein unstabiles Netzwerk verursacht worden sein.
           // Entferne den Authentifizierungsstatus dieser Nutzer-Session.
           remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
           throw(new DestroyedSessionAccessException);
       }
       if (isset($_SESSION['new_session_id'])) {
           // Noch nicht vollständig abgelaufen. Könnte an einem verlorenen Cookie durch ein unstabiles Netzwerk liegen.
           // Noch einmal versuchen das ordnungsgemäße Session-ID-Cookie zu setzen.
           // ACHTUNG: es sollte nicht versucht werden, die Session-ID erneut festzulegen,
           // wenn das Authentifizierungsflag entfernt werden soll.
           session_commit();
           session_id($_SESSION['new_session_id']);
           // Die neue Session-ID sollte existieren
           session_start();
           return;
       }
   }
}

function my_session_regenerate_id() {
    // Eine neue Session-ID wird benötigt, um die richtige Session-ID festzulegen,
    // wenn die Session-ID aufgrund eines unstabilen Netzwerks nicht gesetzt wurde.
    $new_session_id = session_create_id();
    $_SESSION['new_session_id'] = $new_session_id;

    // Lege den Destroy-Zeitstempel fest
    $_SESSION['destroyed'] = time();

    // Schreibe und schließe die aktuelle Session
    session_commit();

    // Starte die Session mit einer neuen Session-ID
    session_id($new_session_id);
    ini_set('session.use_strict_mode', 0);
    session_start();
    ini_set('session.use_strict_mode', 1);

    // Die neue Session braucht sie nicht
    unset($_SESSION['destroyed']);
    unset($_SESSION['new_session_id']);
}
?>

Siehe auch

  • session_id() - Liefert und/oder setzt die aktuelle Session-ID
  • session_create_id() - Create new session id
  • session_start() - Erzeugt eine neue Session oder setzt eine vorhandene fort
  • session_destroy() - Löscht alle in einer Session registrierten Daten
  • session_reset() - Re-initialize session array with original values
  • session_name() - Liefert und/oder setzt den Namen der aktuellen Session


Funktion zum Schließen von Sitzungen

  • « session_regenerate_id
  • session_reset »
  • PHP Manual
  • Session-Funktionen
  • Funktion zum Schließen von Sitzungen

session_register_shutdown

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

session_register_shutdown — Funktion zum Schließen von Sitzungen

Beschreibung

session_register_shutdown ( ) : void

Registriert session_write_close() als eine Schließ-Funktion..

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Gibt E_WARNING zurück, wenn das Registrieren der Schließ-Funktion scheitert.


Re-initialize session array with original values

  • « session_register_shutdown
  • session_save_path »
  • PHP Manual
  • Session-Funktionen
  • Re-initialize session array with original values

session_reset

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

session_reset — Re-initialize session array with original values

Beschreibung

session_reset ( ) : bool

session_reset() reinitializes a session with original values stored in session storage. This function requires an active session and discards changes in $_SESSION.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.2.0 | The return type of this function is bool now. Formerly, it has been void.

Siehe auch

  • $_SESSION
  • The session.auto_start configuration directive
  • session_start() - Erzeugt eine neue Session oder setzt eine vorhandene fort
  • session_abort() - Discard session array changes and finish session
  • session_commit() - Alias von session_write_close


Liefert und/oder setzt den aktuellen Speicherpfad der Session

  • « session_reset
  • session_set_cookie_params »
  • PHP Manual
  • Session-Funktionen
  • Liefert und/oder setzt den aktuellen Speicherpfad der Session

session_save_path

(PHP 4, PHP 5, PHP 7, PHP 8)

session_save_path — Liefert und/oder setzt den aktuellen Speicherpfad der Session

Beschreibung

session_save_path ( string|null $path = null ) : string|false

session_save_path() gibt den Pfad des aktuellen Verzeichnisses zurück, das zum Speichern der Session-Daten verwendet wird.

Parameter-Liste

path

Der Pfad der Session-Daten. Sofern angegeben und nicht null, wird der Pfad, unter dem Daten gespeichert werden, entsprechend geändert. Zu diesem Zweck muss session_save_path() vor session_start() aufgerufen werden.

Hinweis:

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.

Rückgabewerte

Gibt den Pfad des aktuellen Verzeichnisses zurück, das zum Speichern der Session-Daten verwendet wird. Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • Die Konfigurationsanweisung session.save_path

Changelog

Version | Beschreibung
8.0.0 | path ist jetzt ein Nullable-Typ.


Setzt die Session-Cookie-Parameter

  • « session_save_path
  • session_set_save_handler »
  • PHP Manual
  • Session-Funktionen
  • Setzt die Session-Cookie-Parameter

session_set_cookie_params

(PHP 4, PHP 5, PHP 7, PHP 8)

session_set_cookie_params — Setzt die Session-Cookie-Parameter

Beschreibung

session_set_cookie_params ( int $lifetime_or_options , string|null $path = null , string|null $domain = null , bool|null $secure = null , bool|null $httponly = null ) : bool

Alternative Signatur, verfügbar ab PHP 7.3.0:

session_set_cookie_params ( array $lifetime_or_options ) : bool

Setzen der Cookie-Parameter, die in der php.ini definiert sind. Diese Funktion wirkt sich nur für die Dauer des Scripts aus. Folglich müssen Sie session_set_cookie_params() bei jeder Anfrage und noch vor dem Aufruf von session_start() aufrufen.

Diese Funktion aktualisiert die Laufzeitwerte der zugehörigen Konfigurationsschlüssel, die mittels ini_get() abgefragt werden können.

Parameter-Liste

lifetime_or_options

Bei Verwendung der ersten Signatur, die Lebensdauer des Session-Cookies in Sekunden.

Ein assoziatives Array, das die Schlüssel lifetime, path, domain, secure, httponly und samesite enthalten kann. Die Werte haben dieselbe Bedeutung wie für die gleichnamigen Parameter beschrieben. Der Wert des samesite-Elements sollte entweder Lax oder Strict sein. Ist eine der erlaubten Optionen nicht angegeben, dann ist ihr Standardwert derselbe wie für den expliziten Parameter. Wird das samesite-Element nicht angegeben, dann wird das SameSite-Attribut des Cookies nicht gesetzt.

path

Der Pfad der Domain, in dem das Cookie zur Verfügung steht. Mit einem einfachen Schrägstrich ('/') gilt es für alle Pfade der Domain.

domain

Die Cookie-Domain, z.B. 'www.php.net'. Damit die Cookies auf allen Subdomains zur Verfügung stehen, muss der Domain wie in '.php.net' ein Punkt vorangestellt werden.

secure

Falls auf true gesetzt, wird das Cookie nur über sichere Verbindungen gesendet.

httponly

Falls auf true gesetzt, versucht PHP das httponly-Flag zu senden wenn das Session-Cookie gesetzt wird.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | path, domain, secure und httponly sind jetzt Nullable-Typen.
7.3.0 | Eine alternative Signatur, die ein options Array unterstützt, wurde hinzugefügt. Diese Signatur unterstützt ebenfalls das Setzen des SameSite-Cookie-Attributs.
7.2.0 | Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Zuvor gab die Funktion void zurück.

Siehe auch

  • session.cookie_lifetime
  • session.cookie_path
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session.cookie_samesite
  • session_get_cookie_params() - Liefert die Session-Cookie Parameter


Setzt benutzerdefinierte Session-Speicherfunktionen

  • « session_set_cookie_params
  • session_start »
  • PHP Manual
  • Session-Funktionen
  • Setzt benutzerdefinierte Session-Speicherfunktionen

session_set_save_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

session_set_save_handler — Setzt benutzerdefinierte Session-Speicherfunktionen

Beschreibung

session_set_save_handler ( callable $open , callable $close , callable $read , callable $write , callable $destroy , callable $gc , callable $create_sid = ? , callable $validate_sid = ? , callable $update_timestamp = ? ) : bool

Seit PHP 5.4 ist es möglich folgenden Prototypen zu registrieren:

session_set_save_handler ( object $sessionhandler , bool $register_shutdown = true ) : bool

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.

Parameter-Liste

Diese Funktion hat zwei Prototypen.

sessionhandler

Ein Exemplar einer Klasse, die SessionHandlerInterface, und optional SessionIdInterface und/oder SessionUpdateTimestampHandlerInterface implementiert, wie beispielsweise SessionHandler, das als benutzerdefinierte Session-Speicherfunktion registriert werden soll. Erst seit PHP 5.4.

register_shutdown

Registriert session_write_close() als eine register_shutdown_function()-Funktion.

oder
open

Ein Callable mit folgender Signatur:

open ( string $savePath , string $sessionName ) : bool

Der open Callback funktionert wie ein Konstruktor in einer Klasse und wird ausgeführt, wenn die Session geöffnet wird. Es ist die erste Callback-Funktion, die ausgeführt wird, wenn die Session automatisch oder manuell durch session_start() gestartet wird. Der Rückgabewert ist true im Erfolgs-, und false im Fehlerfall.

close

Ein Callable mit folgender Signatur:

close ( ) : bool

Der close Callback funktionert wie ein Destruktor in einer Klasse und wird ausgeführt nachdem der Session write Callback aufgerufen wurde. Sie wird ebenfalls aufgerufen, wenn session_write_close() aufgerufen wurde. Der Rückgabewert sollte true im Erfolgs- und false im Fehlerfall sein.

read

Ein Callable mit folgender Signatur:

read ( string $sessionId ) : string

Der read-Callback muss immer eine sitzungskodierte (serialisierte) Zeichenkette zurückgeben, oder eine leere Zeichenkette, falls keine Daten zu lesen sind.

Dieser Callback wird intern von PHP aufgerufen, wenn die Session startet, oder wenn session_start() aufgerufen wird. Noch bevor dieser Callback aufgerufen wird, wird PHP den open-Callback ausführen.

Der Wert, den dieser Callback zurückgibt, muss in genau demselben serialisierten Format vorliegen, das ursprünglich für die Speicherung an den write-Callback übergeben wurde. Der zurückgegebene Wert wird von PHP automatisch deserialisiert, und verwendet, um die superglobale $_SESSION-Variable zu initialisieren. Obgleich die Daten ähnlich wie bei serialize() aussehen, ist zu beachten, dass es sich um ein unterschiedliches Format handelt, das in der Dokumentation zur ini-Einstellung session.serialize_handler beschrieben wird.

write

Ein Callable mit folgender Signatur:

write ( string $sessionId , string $data ) : bool

Der write-Callback wird aufgerufen, wenn die Session gespeichert und geschlossen werden muss. Dieser Callback nimmt die aktuelle Sessionkennung und eine serialisierte Version der superglobalen $_SESSION-Variablen entgegen. Die intern von PHP verwendete Serialisierungsmethode wird in der Dokumentation zur ini-Einstellung session.serialize_handler beschrieben.

Die serialisierten Sessiondaten, die an diesen Callback übergeben werden, sollten als zu der übergebenen Sessionkennung zugehörig gespeichert werden. Werden diese Daten wieder gelesen, dann muss der read-Callback den genauen Wert liefern, der ursprünglich an den write-Callback übergeben wurde.

Dieser Callback wird aufgerufen, wenn PHP herunterfährt, oder explizit, wenn session_write_close() aufgerufen wird. Es ist zu beachten, dass PHP intern nach Ausführung dieser Funktion den close-Callback ausführen wird.

Hinweis:

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.

destroy

Ein Callable mit folgender Signatur:

destroy ( string $sessionId ) : bool

Dieser Callback wird ausgeführt, wenn eine Session duch session_destroy() oder session_regenerate_id(), mit dem $destroy-Parameter auf true gesetzt, zerstört wird. Der Rückgabewert sollte true im Erfolgs- und false im Fehlerfall sein.

gc

Ein Callable mit folgender Signatur:

gc ( int $lifetime ) : bool

Der Garbage-Collection-Callback wird von PHP intern aufgerufen, um alte Sessiondaten zu löschen. Die Häufigkeit wird durch session.gc_probability und session.gc_divisor gesteuert. Der Wert der Lebensdauer, die diesem Callback übergeben wird, kann mit session.gc_maxlifetime festgelegt werden. Der Rückgabewert sollte true im Erfolgs- und false im Fehlerfall sein.

create_sid

Ein Callable mit folgender Signatur:

create_sid ( ) : string

Dieser Callback wird ausgeführt, wenn eine neue Session-ID benötigt wird. Es werden keine Parameter übergeben, und der Rückgabewert sollte eine Zeichenkette sein, die eine gültige Session-ID für den Handler darstellt.

validate_sid

Ein Callable mit folgender Signatur:

validate_sid ( string $key ) : bool

Dieser Callback wird ausgeführt, gerade bevor eine Session gestartet werden soll, eine Session-ID bereitgestellt wurde, und session.use_strict_mode aktiv ist. Der key ist die zu validierende Session-ID. Eine Session-ID is gültig, wenn eine Session mit dieser ID bereits existiert. Der Rückgabewert sollte true bei Erfolg und false im Fehlerfall sein.

update_timestamp

Ein Callable mit folgender Signatur:

update_timestamp ( string $key , string $val ) : bool

Dieser Callback wird ausgeführt, wenn eine Session aktualisiert wird. key ist die Session-ID, val sind die Session-Daten. Der Rückgabewert sollte true bei Erfolg und false im Fehlerfall sein.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Benutzerdefierter Session-Handler; der vollständige Code ist bei SessionHandlerInterface aufgeführt

Der folgende Code ist für PHP-Version 5.4.0 und höher. Hier wird nur der Aufruf gezeigt; der vollständige Beispielcode ist in der Dokumentation von SessionHandlerInterface zu finden.

Es ist zu beachten, dass der OOP-Prototyp mit session_set_save_handler() verwendet wird, und dass die Shutdown-Funktion unter Verwendung des Parameters flag der Funktion registriert wird. Dies wird grundsätzlich empfohlen, wenn Objekte als Session-Save-Handler registriert werden.

<?php
class MySessionHandler implements SessionHandlerInterface
{
    // hier wird das Interface implementiert
}

$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

// fahre fort und setze und hole Werte per Schlüssel von $_SESSION

Beispiel #2 Benutzerdefinierter Session-Save-Handler, der Objekte verwendet

Der folgende Code ist für PHP-Versionen kleiner als 5.4.0.

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.

Es ist zu beachten, dass zusätzlich die Shutdown-Funktion session_write_close() unter Verwendung von register_shutdown_function() unter PHP kleiner 5.4.0 registriert wird. Dies wird grundsätzlich empfohlen, wenn Objekte als Session-Save-Handler unter PHP kleiner 5.4.0 registriert werden.

class FileSessionHandler
{
    private $savePath;

    function open($savePath, $sessionName)
    {
        $this->savePath = $savePath;
        if (!is_dir($this->savePath)) {
            mkdir($this->savePath, 0777);
        }

        return true;
    }

    function close()
    {
        return true;
    }

    function read($id)
    {
        return (string)@file_get_contents("$this->savePath/sess_$id");
    }

    function write($id, $data)
    {
        return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
    }

    function destroy($id)
    {
        $file = "$this->savePath/sess_$id";
        if (file_exists($file)) {
            unlink($file);
        }

        return true;
    }

    function gc($maxlifetime)
    {
        foreach (glob("$this->savePath/sess_*") as $file) {
            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                unlink($file);
            }
        }

        return true;
    }
}

$handler = new FileSessionHandler();
session_set_save_handler(
    array($handler, 'open'),
    array($handler, 'close'),
    array($handler, 'read'),
    array($handler, 'write'),
    array($handler, 'destroy'),
    array($handler, 'gc')
    );

// das folgende verhindert unerwartete Effekte, wenn Objekte als Save-Handler verwendet werden
register_shutdown_function('session_write_close');

session_start();
// fahre fort Werte per Schlüssel in $_SESSION zu setzen und zu holen

Anmerkungen

Warnung

Werden Objekte als Session-Save-Handler verwendet, ist es wichtig die Shutdown-Funktion mit PHP zu registrieren, um unerwartete Nebenwirkungen in Verbindung mit der Art wie PHP intern Objekte beim Herunterfahren zerstört zu verhindern, was dazu führen kann, dass write und close nicht aufgerufen werden. Üblicherweise sollte 'session_write_close' unter Verwendung von register_shutdown_function() registriert werden.

Von PHP 5.4.0 an kann session_register_shutdown() verwendet werden, oder einfach das 'register shutdown'-Flag gesetzt werden, wenn session_set_save_handler() unter Verwendung der OOP-Methode und der Übergabe eines Exemplars, das SessionHandlerInterface implementiert, aufgerufen wird.

Warnung

Ab PHP 5.0.5 werden die Routinen write und close nach dem Zerstören von Objekten aufgerufen und können deshalb keine Objekte verwenden oder Exceptions (Fehler-, Ausnahmesituationen) auslösen. Exceptions können nicht abgefangen werden, und es wird auch kein Exception-Trace angezeigt; die Ausführung wird einfach unerwartet abgebrochen. Objekt-Destruktoren können aber Sessions verwenden.

Es ist möglich, session_write_close() über den Destruktor aufzurufen, um dieses Henne-Ei Problem zu lösen, aber der verlässlichste Weg ist das Registrieren einer Shutdown-Funktion wie oben beschrieben.

Warnung

Bei manchen SAPIs ändert sich das aktuelle Arbeitsverzeichnis, falls die Session durch die Beendigung des Skripts geschlossen wird. Mittels session_write_close() ist es möglich, die Session schon früher zu schließen.

Siehe auch

  • Die Konfigurationsanweisung session.save_handler
  • Die Konfigurationsanweisung session.serialize_handler
  • register_shutdown_function() - Registriert eine Funktion zur Ausführung beim Skript-Abschluss
  • session_register_shutdown() - Funktion zum Schließen von Sitzungen (von PHP 5.4.0 an)
  • Eine vollständige prozedurale Referenzimplementierung kann » save_handler.inc entnommen werden


Erzeugt eine neue Session oder setzt eine vorhandene fort

  • « session_set_save_handler
  • session_status »
  • PHP Manual
  • Session-Funktionen
  • Erzeugt eine neue Session oder setzt eine vorhandene fort

session_start

(PHP 4, PHP 5, PHP 7, PHP 8)

session_start — Erzeugt eine neue Session oder setzt eine vorhandene fort

Beschreibung

session_start ( array $options = [] ) : bool

session_start() erzeugt eine Session oder nimmt die aktuelle wieder auf, die auf der Session-Kennung basiert, die mit einer GET- oder POST-Anfrage oder mit einem Cookie übermittelt wurde.

Wenn session_start() aufgerufen wird oder eine Session automatisch startet, ruft PHP die Öffnen- und Lesen-Routinen der Session-Speicherfunktion auf. Dies ist entweder eine eingebaute Speicherfunktion, die standardmäßig mitgeliefert wird oder von Erweiterungen (wie z.B. SQLite oder Memcached) zur Verfügung gestellt wird oder eine eigene Funktion, die mittels session_set_save_handler() definiert wurde. Die Lesen-Routine ruft alle vorhandenen Sessiondaten (abgespeichert in einem speziellen serialisierten Format) ab und deserialisiert sie, um damit die $_SESSION-Superglobale zu füllen.

Um eine benannte Session zu verwenden, rufen Sie session_name() auf, bevor Sie session_start() aufrufen.

Wenn session.use_trans_sid aktiviert ist, registriert die Funktion session_start() eine interne Ausgaberoutine für das Umschreiben von URLs.

Verwendet ein Benutzer ob_gzhandler oder ähnliches mit ob_start(), dann ist die Reihenfolge der Funktionen wichtig für eine korrekte Ausgabe. Zum Beispiel muss ob_gzhandler vor Beginn der Session registriert werden.

Parameter-Liste

options

Als optionaler Parameter kann ein assoziatives Array mit Optionen angegeben werden, das die aktuell gesetzten Sessionkonfigurationsanweisungen übersteuert. Die Schlüssel sollten nicht das session.-Präfix beinhalten.

Zusätzlich zu den normalen Konfigurationsanweisungen kann auch eine read_and_close-Option angegeben werden. Falls auf true gesetzt, führt sie dazu, dass die Session unmittelbar nach dem Auslesen geschlossen wird. Dadurch lässt sich eine unnötige Sperre vermeiden, wenn die Sessiondaten nicht verändert werden.

Rückgabewerte

Falls die Session erfolgreich gestartet wurde, gibt diese Funktion true zurück, andernfalls false.

Changelog

Version | Beschreibung
7.1.0 | session_start() gibt nun false zurück, und initialisiert $_SESSION nicht mehr, wenn das Starten der Session fehlschlug.

Beispiele

Ein grundlegendes Session-Beispiel

Beispiel #1 seite1.php

<?php
// seite1.php

session_start();

echo 'Willkommen auf Seite #1';

$_SESSION['farbe'] = 'grün';
$_SESSION['tier'] = 'Spinne';
$_SESSION['zeit'] = time();

// Funktioniert, falls das Session-Cookie akzeptiert wurde
echo '<br /><a href="seite2.php">Seite 2</a>';

// Oder die Session-ID mit übergeben, für den Fall, dass sie benötigt wird
echo '<br /><a href="seite2.php?' . SID . '">Seite 2</a>';
?>

Nach dem Aufruf von seite1.php enthält automatisch auch die zweite Seite, seite2.php, die Session-Daten. Lesen Sie Session Funktionen, um weitere Informationen über die Übermittlung der Session-ID zu erhalten. Dort wird zum Beispiel erklärt, worum es sich bei der Konstanten SID handelt.

Beispiel #2 seite2.php

<?php
// seite2.php

session_start();

echo 'Willkommen auf Seite #2<br />';

echo $_SESSION['farbe'];  // grün
echo $_SESSION['tier'];   // Spinne
echo date('d.m.Y H:i:s', $_SESSION['zeit']);

// Sie können auch hier, genauso wie bei seite1.php, SID verwenden
echo '<br /><a href="seite1.php">Seite 1</a>';
?>

Optionen an session_start() übergeben

Beispiel #3 Die Cookie-Gültigkeitsdauer übersteuern

<?php
// Einen persistenten Cookie senden, der einen Tag lang gültig ist.
session_start([
    'cookie_lifetime' => 86400,
]);
?>

Beispiel #4 Die Session lesen und schließen

<?php
// Sofern wir wissen, dass wir keine Daten zu verändern brauchen,
// können wir die Session unmittelbar nach dem Auslesen automatisch
// schließen, um eine Sperre für die Session zu vermeiden und
// andere Seiten während der Zeit am Zugriff nicht zu behindern.
session_start([
    'cookie_lifetime' => 86400,
    'read_and_close'  => true,
]);

Anmerkungen

Hinweis:

Um Cookie-basierte Sessions zu verwenden muss session_start() aufgerufen werden, bevor irgend etwas an den Browser geschickt wird.

Hinweis:

Die Verwendung von zlib.output_compression ist ob_gzhandler() vorzuziehen.

Hinweis:

In Abhängigkeit von der Konfiguration sendet diese Funktion verschiedene HTTP-Header. Siehe session_cache_limiter() um diese Header anzupassen,

Siehe auch

  • $_SESSION
  • Die Konfigurationsanweisung session.auto_start
  • session_id() - Liefert und/oder setzt die aktuelle Session-ID


Liefert den Status der aktuellen Session

  • « session_start
  • session_unregister »
  • PHP Manual
  • Session-Funktionen
  • Liefert den Status der aktuellen Session

session_status

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

session_status — Liefert den Status der aktuellen Session

Beschreibung

session_status ( ) : int

session_status() wird für die Rückgabe des Status der aktuellen Session verwendet.

Rückgabewerte

  • PHP_SESSION_DISABLED, wenn Sessions deaktiviert sind.
  • PHP_SESSION_NONE, wenn Sessions aktiviert sind, aber keine existiert.
  • PHP_SESSION_ACTIVE, wenn Sessions aktiviert sind und eine existiert.

Siehe auch

  • session_start() - Erzeugt eine neue Session oder setzt eine vorhandene fort


Hebt die Registrierung einer globalen Variablen in der aktuellen Session auf

  • « session_status
  • session_unset »
  • PHP Manual
  • Session-Funktionen
  • Hebt die Registrierung einer globalen Variablen in der aktuellen Session auf

session_unregister

(No version information available, might only be in Git)

session_unregister — Hebt die Registrierung einer globalen Variablen in der aktuellen Session auf

Beschreibung

session_unregister ( string $name ) : bool

session_unregister() hebt die Registrierung der globalen Variablen namens name in der aktuellen Session auf.

Warnung

Diese Funktion wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und ist seit PHP 5.4.0 ENTFERNT (entfernt).

Parameter-Liste

name

Der Variablenname

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Anmerkungen

Hinweis:

Benutzen Sie bei Verwendung von $_SESSION unset() um die Registrierung einer Session-Variablen aufzuheben. Heben Sie aber nicht $_SESSION selbst mit unset() auf, weil dies die besondere Funktion der Superglobalen $_SESSION deaktivieren würde.

Achtung

Diese Funktion löscht die name entsprechende globale Variable nicht, sondern verhindert nur, dass die Variable als Teil der Session gespeichert wird. Sie müssen unset() aufrufen, um die entsprechende globale Variable zu entfernen.

Achtung

Wenn Sie $_SESSION (oder
$HTTP_SESSION_VARS) verwenden, sollten Sie nicht
session_register(),
session_is_registered() und
session_unregister() verwenden.


Löscht alle Session-Variablen

  • « session_unregister
  • session_write_close »
  • PHP Manual
  • Session-Funktionen
  • Löscht alle Session-Variablen

session_unset

(PHP 4, PHP 5, PHP 7, PHP 8)

session_unset — Löscht alle Session-Variablen

Beschreibung

session_unset ( ) : bool

Die Funktion session_unset() löscht alle Session-Variablen, die gegenwärtig registriert sind.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.2.0 | Der Rückgabetyp dieser Funktion ist nun bool. Zuvor war er void.

Anmerkungen

Hinweis:

Benutzen Sie bei Verwendung von $_SESSION unset(), um die Registrierung einer Session-Variablen aufzuheben, d.h. unset ($_SESSION['varname']);.

Achtung

Heben Sie NICHT die Registrierung der gesamten $_SESSION mit unset($_SESSION) auf, weil dies die Registrierung von Variablen durch die Superglobale $_SESSION deaktivieren würde.

Hinweis:

session_unset() sollte nur in alten Anwendungen verwendet werden, die nicht die Superglobale $_SESSION verwenden.


Speichert die Session-Daten und beendet die Session

  • « session_unset
  • SessionHandler »
  • PHP Manual
  • Session-Funktionen
  • Speichert die Session-Daten und beendet die Session

session_write_close

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

session_write_close — Speichert die Session-Daten und beendet die Session

Beschreibung

session_write_close ( ) : bool

Beendet die aktuelle Session und speichert die Session-Daten.

Session-Daten werden normalerweise nach Beenden eines Scripts gespeichert, ohne dass session_write_close() aufgerufen werden muss, aber da Session-Daten gesperrt werden, um gleichzeitiges Schreiben zu verhindern, kann jeweils immer nur ein Script auf eine Session einwirken. Bei der Verwendung von Framesets zusammen mit Sessions werden Sie merken, dass wegen dieser Sperrung ein Frame nach dem anderen geladen wird. Sie können die Zeit zum Laden aller Frames reduzieren, indem Sie die Session beenden, sobald alle Änderungen an den Session-Variablen durchgeführt sind.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.2.0 | Der Rückgabetyp dieser Funktion ist nun bool. Zuvor war er void.

Siehe auch

  • session_register_shutdown() - Funktion zum Schließen von Sitzungen


The SessionHandler class

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Einführung

SessionHandler is a special class that can be used to expose the current internal PHP session save handler by inheritance. There are seven methods which wrap the seven internal session save handler callbacks (open, close, read, write, destroy, gc and create_sid). By default, this class will wrap whatever internal save handler is set as defined by the session.save_handler configuration directive which is usually files by default. Other internal session save handlers are provided by PHP extensions such as SQLite (as sqlite), Memcache (as memcache), and Memcached (as memcached).

When a plain instance of SessionHandler is set as the save handler using session_set_save_handler() it will wrap the current save handlers. A class extending from SessionHandler allows you to override the methods or intercept or filter them by calls the parent class methods which ultimately wrap the internal PHP session handlers.

This allows you, for example, to intercept the read and write methods to encrypt/decrypt the session data and then pass the result to and from the parent class. Alternatively one might chose to entirely override a method like the garbage collection callback gc.

Because the SessionHandler wraps the current internal save handler methods, the above example of encryption can be applied to any internal save handler without having to know the internals of the handlers.

To use this class, first set the save handler you wish to expose using session.save_handler and then pass an instance of SessionHandler or one extending it to session_set_save_handler().

Please note the callback methods of this class are designed to be called internally by PHP and are not meant to be called from user-space code. The return values are equally processed internally by PHP. For more information on the session workflow, please refer session_set_save_handler().

Klassenbeschreibung

SessionHandler implements SessionHandlerInterface , SessionIdInterface {
/* Methoden */
public close ( ) : bool
public create_sid ( ) : string
public destroy ( string $id ) : bool
public gc ( int $max_lifetime ) : int|bool
public open ( string $path , string $name ) : bool
public read ( string $id ) : string
public write ( string $id , string $data ) : bool
}
Warnung

This class is designed to expose the current internal PHP session save handler, if you want to write your own custom save handlers, please implement the SessionHandlerInterface interface instead of extending from SessionHandler.

Changelog

Version | Beschreibung
5.5.1 | Added SessionHandler::create_sid().

Beispiel #1 Using SessionHandler to add encryption to internal PHP save handlers.

<?php

 /**
  * decrypt AES 256
  *
  * @param data $edata
  * @param string $password
  * @return decrypted data
  */
function decrypt($edata, $password) {
    $data = base64_decode($edata);
    $salt = substr($data, 0, 16);
    $ct = substr($data, 16);

    $rounds = 3; // depends on key length
    $data00 = $password.$salt;
    $hash = array();
    $hash[0] = hash('sha256', $data00, true);
    $result = $hash[0];
    for ($i = 1; $i < $rounds; $i++) {
        $hash[$i] = hash('sha256', $hash[$i - 1].$data00, true);
        $result .= $hash[$i];
    }
    $key = substr($result, 0, 32);
    $iv  = substr($result, 32,16);

    return openssl_decrypt($ct, 'AES-256-CBC', $key, true, $iv);
  }

/**
 * crypt AES 256
 *
 * @param data $data
 * @param string $password
 * @return base64 encrypted data
 */
function encrypt($data, $password) {
    // Set a random salt
    $salt = openssl_random_pseudo_bytes(16);

    $salted = '';
    $dx = '';
    // Salt the key(32) and iv(16) = 48
    while (strlen($salted) < 48) {
      $dx = hash('sha256', $dx.$password.$salt, true);
      $salted .= $dx;
    }

    $key = substr($salted, 0, 32);
    $iv  = substr($salted, 32,16);

    $encrypted_data = openssl_encrypt($data, 'AES-256-CBC', $key, true, $iv);
    return base64_encode($salt . $encrypted_data);
}

class EncryptedSessionHandler extends SessionHandler
{
    private $key;

    public function __construct($key)
    {
        $this->key = $key;
    }

    public function read($id)
    {
        $data = parent::read($id);

        if (!$data) {
            return "";
        } else {
            return decrypt($data, $this->key);
        }
    }

    public function write($id, $data)
    {
        $data = encrypt($data, $this->key);

        return parent::write($id, $data);
    }
}

// we'll intercept the native 'files' handler, but will equally work
// with other internal native handlers like 'sqlite', 'memcache' or 'memcached'
// which are provided by PHP extensions.
ini_set('session.save_handler', 'files');

$key = 'secret_string';
$handler = new EncryptedSessionHandler($key);
session_set_save_handler($handler, true);
session_start();

// proceed to set and retrieve values by key from $_SESSION

Hinweis:

Since this class' methods are designed to be called internally by PHP as part of the normal session workflow, child class calls to parent methods (i.e. the actual internal native handlers) will return false unless the session has actually been started (either automatically, or by explicit session_start(). This is important to consider when writing unit tests where the class methods might be invoked manually.

Inhaltsverzeichnis

  • SessionHandler::close — Close the session
  • SessionHandler::create_sid — Return a new session ID
  • SessionHandler::destroy — Destroy a session
  • SessionHandler::gc — Cleanup old sessions
  • SessionHandler::open — Initialize session
  • SessionHandler::read — Read session data
  • SessionHandler::write — Write session data


Close the session

  • « SessionHandler
  • SessionHandler::create_sid »
  • PHP Manual
  • SessionHandler
  • Close the session

SessionHandler::close

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::close — Close the session

Beschreibung

public SessionHandler::close ( ) : bool

Closes the current session. This method is automatically executed internally by PHP when closing the session, or explicitly via session_write_close() (which first calls the SessionHandler::write()).

This method wraps the internal PHP save handler defined in the session.save_handler ini setting that was set before this handler was activated by session_set_save_handler().

If this class is extended by inheritiance, calling the parent close method will invoke the wrapper for this method and therefore invoke the associated internal callback. This allows the method to be overridden and or intercepted.

For more information on what this method is expected to do, please refer to the documentation at SessionHandlerInterface::close().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Der Rückgabewert (normalerweise true bei Erfolg und false bei Misserfolg). Beachten Sie, dass dieser Wert intern PHP zur Verarbeitung zurückgegeben wird.


Return a new session ID

  • « SessionHandler::close
  • SessionHandler::destroy »
  • PHP Manual
  • SessionHandler
  • Return a new session ID

SessionHandler::create_sid

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

SessionHandler::create_sid — Return a new session ID

Beschreibung

public SessionHandler::create_sid ( ) : string

Generates and returns a new session ID.

Rückgabewerte

A session ID valid for the default session handler.

Siehe auch

  • session_id() - Liefert und/oder setzt die aktuelle Session-ID
  • session_create_id() - Create new session id


Destroy a session

  • « SessionHandler::create_sid
  • SessionHandler::gc »
  • PHP Manual
  • SessionHandler
  • Destroy a session

SessionHandler::destroy

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::destroy — Destroy a session

Beschreibung

public SessionHandler::destroy ( string $id ) : bool

Destroys a session. Called internally by PHP with session_regenerate_id() (assuming the $destroy is set to true, by session_destroy() or when session_decode() fails.

This method wraps the internal PHP save handler defined in the session.save_handler ini setting that was set before this handler was set by session_set_save_handler().

If this class is extended by inheritiance, calling the parent destroy method will invoke the wrapper for this method and therefore invoke the associated internal callback. This allows this method to be overridden and or intercepted and filtered.

For more information on what this method is expected to do, please refer to the documentation at SessionHandlerInterface::destroy().

Parameter-Liste

id

The session ID being destroyed.

Rückgabewerte

Der Rückgabewert (normalerweise true bei Erfolg und false bei Misserfolg). Beachten Sie, dass dieser Wert intern PHP zur Verarbeitung zurückgegeben wird.


Cleanup old sessions

  • « SessionHandler::destroy
  • SessionHandler::open »
  • PHP Manual
  • SessionHandler
  • Cleanup old sessions

SessionHandler::gc

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::gc — Cleanup old sessions

Beschreibung

public SessionHandler::gc ( int $max_lifetime ) : int|bool

Cleans up expired sessions. Called randomly by PHP internally when a session starts or when session_start() is invoked. The frequency this is called is based on the session.gc_divisor and session.gc_probability configuration directives.

This method wraps the internal PHP save handler defined in the session.save_handler ini setting that was set before this handler was set by session_set_save_handler().

If this class is extended by inheritiance, calling the parent gc method will invoke the wrapper for this method and therefore invoke the associated internal callback. This allows this method to be overridden and or intercepted and filtered.

For more information on what this method is expected to do, please refer to the documentation at SessionHandlerInterface::gc().

Parameter-Liste

max_lifetime

Sessions that have not updated for the last max_lifetime seconds will be removed.

Rückgabewerte

Returns the number of deleted sessions on success, Im Fehlerfall wird false zurückgegeben.. Note this value is returned internally to PHP for processing.

Changelog

Version | Beschreibung
7.1.0 | Prior to this version, the function returned true on success.


Initialize session

  • « SessionHandler::gc
  • SessionHandler::read »
  • PHP Manual
  • SessionHandler
  • Initialize session

SessionHandler::open

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::open — Initialize session

Beschreibung

public SessionHandler::open ( string $path , string $name ) : bool

Create new session, or re-initialize existing session. Called internally by PHP when a session starts either automatically or when session_start() is invoked.

This method wraps the internal PHP save handler defined in the session.save_handler ini setting that was set before this handler was set by session_set_save_handler().

If this class is extended by inheritiance, calling the parent open method will invoke the wrapper for this method and therefore invoke the associated internal callback. This allows this method to be overridden and or intercepted and filtered.

For more information on what this method is expected to do, please refer to the documentation at SessionHandlerInterface::open().

Parameter-Liste

path

The path where to store/retrieve the session.

name

The session name.

Rückgabewerte

Der Rückgabewert (normalerweise true bei Erfolg und false bei Misserfolg). Beachten Sie, dass dieser Wert intern PHP zur Verarbeitung zurückgegeben wird.

Siehe auch

  • The session.auto-start configuration directive.


Read session data

  • « SessionHandler::open
  • SessionHandler::write »
  • PHP Manual
  • SessionHandler
  • Read session data

SessionHandler::read

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::read — Read session data

Beschreibung

public SessionHandler::read ( string $id ) : string

Reads the session data from the session storage, and returns the result back to PHP for internal processing. This method is called automatically by PHP when a session is started (either automatically or explicitly with session_start() and is preceded by an internal call to the SessionHandler::open().

This method wraps the internal PHP save handler defined in the session.save_handler ini setting that was set before this handler was set by session_set_save_handler().

If this class is extended by inheritance, calling the parent read method will invoke the wrapper for this method and therefore invoke the associated internal callback. This allows the method to be overridden and or intercepted and filtered (for example, decrypting $data value returned by the parent read method).

For more information on what this method is expected to do, please refer to the documentation at SessionHandlerInterface::read().

Parameter-Liste

id

The session id to read data for.

Rückgabewerte

Returns an encoded string of the read data. If nothing was read, it must return an empty string. Note this value is returned internally to PHP for processing.

Siehe auch

  • The session.serialize_handler configuration directive.


Write session data

  • « SessionHandler::read
  • SessionHandlerInterface »
  • PHP Manual
  • SessionHandler
  • Write session data

SessionHandler::write

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::write — Write session data

Beschreibung

public SessionHandler::write ( string $id , string $data ) : bool

Writes the session data to the session storage. Called by normal PHP shutdown, by session_write_close(), or when session_register_shutdown() fails. PHP will call SessionHandler::close() immediately after this method returns.

This method wraps the internal PHP save handler defined in the session.save_handler ini setting that was set before this handler was set by session_set_save_handler().

If this class is extended by inheritiance, calling the parent write method will invoke the wrapper for this method and therefore invoke the associated internal callback. This allows this method to be overridden and or intercepted and filtered (for example, encrypting the $data value before sending it to the parent write method).

For more information on what this method is expected to do, please refer to the documentation at SessionHandlerInterface::write().

Parameter-Liste

id

The session id.

data

The encoded session data. This data is the result of the PHP internally encoding the $_SESSION superglobal to a serialized string and passing it as this parameter. Please note sessions use an alternative serialization method.

Rückgabewerte

Der Rückgabewert (normalerweise true bei Erfolg und false bei Misserfolg). Beachten Sie, dass dieser Wert intern PHP zur Verarbeitung zurückgegeben wird.

Siehe auch

  • The session.serialize_handler configuration directive.


The SessionHandlerInterface class

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Einführung

SessionHandlerInterface is an interface which defines the minimal prototype for creating a custom session handler. In order to pass a custom session handler to session_set_save_handler() using its OOP invocation, the class can implement this interface.

Please note the callback methods of this class are designed to be called internally by PHP and are not meant to be called from user-space code.

Klassenbeschreibung

SessionHandlerInterface {
/* Methoden */
abstract public close ( ) : bool
abstract public destroy ( string $id ) : bool
abstract public gc ( int $max_lifetime ) : int|bool
abstract public open ( string $path , string $name ) : bool
abstract public read ( string $id ) : string
abstract public write ( string $id , string $data ) : bool
}

Beispiel #1 Example using SessionHandlerInterface

The following example provides file based session storage similar to the PHP sessions default save handler files. This example could easily be extended to cover database storage using your favorite PHP supported database engine.

Note we use the OOP prototype with session_set_save_handler() and register the shutdown function using the function's parameter flag. This is generally advised when registering objects as session save handlers.

Achtung

For brevity, this example omits input validation. However, the $id parameters are actually user supplied values which require proper validation/sanitization to avoid vulnerabilities, such as path traversal issues. So do not use this example unmodified in production environments.

<?php
class MySessionHandler implements SessionHandlerInterface
{
    private $savePath;

    public function open($savePath, $sessionName)
    {
        $this->savePath = $savePath;
        if (!is_dir($this->savePath)) {
            mkdir($this->savePath, 0777);
        }

        return true;
    }

    public function close()
    {
        return true;
    }

    public function read($id)
    {
        return (string)@file_get_contents("$this->savePath/sess_$id");
    }

    public function write($id, $data)
    {
        return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
    }

    public function destroy($id)
    {
        $file = "$this->savePath/sess_$id";
        if (file_exists($file)) {
            unlink($file);
        }

        return true;
    }

    public function gc($maxlifetime)
    {
        foreach (glob("$this->savePath/sess_*") as $file) {
            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                unlink($file);
            }
        }

        return true;
    }
}

$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

// proceed to set and retrieve values by key from $_SESSION

Inhaltsverzeichnis

  • SessionHandlerInterface::close — Close the session
  • SessionHandlerInterface::destroy — Destroy a session
  • SessionHandlerInterface::gc — Cleanup old sessions
  • SessionHandlerInterface::open — Initialize session
  • SessionHandlerInterface::read — Read session data
  • SessionHandlerInterface::write — Write session data


Close the session

  • « SessionHandlerInterface
  • SessionHandlerInterface::destroy »
  • PHP Manual
  • SessionHandlerInterface
  • Close the session

SessionHandlerInterface::close

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::close — Close the session

Beschreibung

abstract public SessionHandlerInterface::close ( ) : bool

Closes the current session. This function is automatically executed when closing the session, or explicitly via session_write_close().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Der Rückgabewert (normalerweise true bei Erfolg und false bei Misserfolg). Beachten Sie, dass dieser Wert intern PHP zur Verarbeitung zurückgegeben wird.


Destroy a session

  • « SessionHandlerInterface::close
  • SessionHandlerInterface::gc »
  • PHP Manual
  • SessionHandlerInterface
  • Destroy a session

SessionHandlerInterface::destroy

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::destroy — Destroy a session

Beschreibung

abstract public SessionHandlerInterface::destroy ( string $id ) : bool

Destroys a session. Called by session_regenerate_id() (with $destroy = true), session_destroy() and when session_decode() fails.

Parameter-Liste

id

The session ID being destroyed.

Rückgabewerte

Der Rückgabewert (normalerweise true bei Erfolg und false bei Misserfolg). Beachten Sie, dass dieser Wert intern PHP zur Verarbeitung zurückgegeben wird.


Cleanup old sessions

  • « SessionHandlerInterface::destroy
  • SessionHandlerInterface::open »
  • PHP Manual
  • SessionHandlerInterface
  • Cleanup old sessions

SessionHandlerInterface::gc

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::gc — Cleanup old sessions

Beschreibung

abstract public SessionHandlerInterface::gc ( int $max_lifetime ) : int|bool

Cleans up expired sessions. Called by session_start(), based on session.gc_divisor, session.gc_probability and session.gc_maxlifetime settings.

Parameter-Liste

max_lifetime

Sessions that have not updated for the last max_lifetime seconds will be removed.

Rückgabewerte

Returns the number of deleted sessions on success, Im Fehlerfall wird false zurückgegeben.. Note this value is returned internally to PHP for processing.

Changelog

Version | Beschreibung
7.1.0 | Prior to this version, the function returned true on success.


Initialize session

  • « SessionHandlerInterface::gc
  • SessionHandlerInterface::read »
  • PHP Manual
  • SessionHandlerInterface
  • Initialize session

SessionHandlerInterface::open

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::open — Initialize session

Beschreibung

abstract public SessionHandlerInterface::open ( string $path , string $name ) : bool

Re-initialize existing session, or creates a new one. Called when a session starts or when session_start() is invoked.

Parameter-Liste

path

The path where to store/retrieve the session.

name

The session name.

Rückgabewerte

Der Rückgabewert (normalerweise true bei Erfolg und false bei Misserfolg). Beachten Sie, dass dieser Wert intern PHP zur Verarbeitung zurückgegeben wird.

Siehe auch

  • session_name() - Liefert und/oder setzt den Namen der aktuellen Session
  • The session.auto-start configuration directive.


Read session data

  • « SessionHandlerInterface::open
  • SessionHandlerInterface::write »
  • PHP Manual
  • SessionHandlerInterface
  • Read session data

SessionHandlerInterface::read

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::read — Read session data

Beschreibung

abstract public SessionHandlerInterface::read ( string $id ) : string

Reads the session data from the session storage, and returns the results. Called right after the session starts or when session_start() is called. Please note that before this method is called SessionHandlerInterface::open() is invoked.

This method is called by PHP itself when the session is started. This method should retrieve the session data from storage by the session ID provided. The string returned by this method must be in the same serialized format as when originally passed to the SessionHandlerInterface::write() If the record was not found, return an empty string.

The data returned by this method will be decoded internally by PHP using the unserialization method specified in session.serialize_handler. The resulting data will be used to populate the $_SESSION superglobal.

Note that the serialization scheme is not the same as unserialize() and can be accessed by session_decode().

Parameter-Liste

id

The session id.

Rückgabewerte

Returns an encoded string of the read data. If nothing was read, it must return an empty string. Note this value is returned internally to PHP for processing.

Siehe auch

  • The session.serialize_handler configuration directive.


Write session data

  • « SessionHandlerInterface::read
  • SessionIdInterface »
  • PHP Manual
  • SessionHandlerInterface
  • Write session data

SessionHandlerInterface::write

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::write — Write session data

Beschreibung

abstract public SessionHandlerInterface::write ( string $id , string $data ) : bool

Writes the session data to the session storage. Called by session_write_close(), when session_register_shutdown() fails, or during a normal shutdown. Note: SessionHandlerInterface::close() is called immediately after this function.

PHP will call this method when the session is ready to be saved and closed. It encodes the session data from the $_SESSION superglobal to a serialized string and passes this along with the session ID to this method for storage. The serialization method used is specified in the session.serialize_handler setting.

Note this method is normally called by PHP after the output buffers have been closed unless explicitly called by session_write_close()

Parameter-Liste

id

The session id.

data

The encoded session data. This data is the result of the PHP internally encoding the $_SESSION superglobal to a serialized string and passing it as this parameter. Please note sessions use an alternative serialization method.

Rückgabewerte

Der Rückgabewert (normalerweise true bei Erfolg und false bei Misserfolg). Beachten Sie, dass dieser Wert intern PHP zur Verarbeitung zurückgegeben wird.

Siehe auch

  • The session.serialize_handler configuration directive.


The SessionIdInterface interface

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

Einführung

SessionIdInterface is an interface which defines optional methods for creating a custom session handler. In order to pass a custom session handler to session_set_save_handler() using its OOP invocation, the class can implement this interface.

Note that the callback methods of classes implementing this interface are designed to be called internally by PHP and are not meant to be called from user-space code.

Klassenbeschreibung

SessionIdInterface {
/* Methoden */
abstract public create_sid ( ) : string
}

Inhaltsverzeichnis

  • SessionIdInterface::create_sid — Create session ID


Create session ID

  • « SessionIdInterface
  • SessionUpdateTimestampHandlerInterface »
  • PHP Manual
  • SessionIdInterface
  • Create session ID

SessionIdInterface::create_sid

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

SessionIdInterface::create_sid — Create session ID

Beschreibung

abstract public SessionIdInterface::create_sid ( ) : string

Creates a new session ID.This function is automatically executed when a new session ID needs to be created.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The new session ID. Note that this value is returned internally to PHP for processing.

Siehe auch

  • SessionHandler::create_sid() - Return a new session ID


The SessionUpdateTimestampHandlerInterface interface

(PHP 7, PHP 8)

Einführung

SessionUpdateTimestampHandlerInterface is an interface which defines optional methods for creating a custom session handler. In order to pass a custom session handler to session_set_save_handler() using its OOP invocation, the class can implement this interface.

Note that the callback methods of classes implementing this interface are designed to be called internally by PHP and are not meant to be called from user-space code.

Klassenbeschreibung

SessionUpdateTimestampHandlerInterface {
/* Methoden */
abstract public updateTimestamp ( string $id , string $data ) : bool
abstract public validateId ( string $id ) : bool
}

Inhaltsverzeichnis

  • SessionUpdateTimestampHandlerInterface::updateTimestamp — Update timestamp
  • SessionUpdateTimestampHandlerInterface::validateId — Validate ID


Update timestamp

  • « SessionUpdateTimestampHandlerInterface
  • SessionUpdateTimestampHandlerInterface::validateId »
  • PHP Manual
  • SessionUpdateTimestampHandlerInterface
  • Update timestamp

SessionUpdateTimestampHandlerInterface::updateTimestamp

(PHP 7, PHP 8)

SessionUpdateTimestampHandlerInterface::updateTimestamp — Update timestamp

Beschreibung

abstract public SessionUpdateTimestampHandlerInterface::updateTimestamp ( string $id , string $data ) : bool

Updates the last modification timestamp of the session. This function is automatically executed when a session is updated.

Parameter-Liste

id

The session ID.

data

The session data.

Rückgabewerte

Returns true if the timestamp was updated, false otherwise. Note that this value is returned internally to PHP for processing.


Validate ID

  • « SessionUpdateTimestampHandlerInterface::updateTimestamp
  • Textverarbeitung »
  • PHP Manual
  • SessionUpdateTimestampHandlerInterface
  • Validate ID

SessionUpdateTimestampHandlerInterface::validateId

(PHP 7, PHP 8)

SessionUpdateTimestampHandlerInterface::validateId — Validate ID

Beschreibung

abstract public SessionUpdateTimestampHandlerInterface::validateId ( string $id ) : bool

Validates a given session ID. A session ID is valid, if a session with that ID already exists. This function is automatically executed when a session is to be started, a session ID is supplied and session.use_strict_mode is enabled.

Parameter-Liste

id

The session ID.

Rückgabewerte

Returns true for valid ID, false otherwise. Note that this value is returned internally to PHP for processing.


Textverarbeitung

  • CommonMark
    • Einführung
    • Installation/Konfiguration
    • CommonMark\Node\Document — Document concrete CommonMark\Node
    • CommonMark\Node\Heading — Heading concrete CommonMark\Node
    • CommonMark\Node\Paragraph — Paragraph concrete CommonMark\Node
    • CommonMark\Node\BlockQuote — BlockQuote concrete CommonMark\Node
    • CommonMark\Node\BulletList — BulletList concrete CommonMark\Node
    • CommonMark\Node\OrderedList — OrderedList concrete CommonMark\Node
    • CommonMark\Node\Item — Item concrete CommonMark\Node
    • CommonMark\Node\Text — Text concrete CommonMark\Node
    • CommonMark\Node\Text\Strong — Strong concrete CommonMark\Node
    • CommonMark\Node\Text\Emphasis — Emphasis concrete CommonMark\Node
    • CommonMark\Node\ThematicBreak — ThematicBreak concrete CommonMark\Node
    • CommonMark\Node\SoftBreak — SoftBreak concrete CommonMark\Node
    • CommonMark\Node\LineBreak — LineBreak concrete CommonMark\Node
    • CommonMark\Node\Code — Code concrete CommonMark\Node
    • CommonMark\Node\CodeBlock — CodeBlock concrete CommonMark\Node
    • CommonMark\Node\HTMLBlock — HTMLBlock concrete CommonMark\Node
    • CommonMark\Node\HTMLInline — HTMLInline concrete CommonMark\Node
    • CommonMark\Node\Image — Image concrete CommonMark\Node
    • CommonMark\Node\Link — Link concrete CommonMark\Node
    • CommonMark\Node\CustomBlock — CustomBlock concrete CommonMark\Node
    • CommonMark\Node\CustomInline — CustomInline concrete CommonMark\Node
    • CommonMark\Node — Abstract CommonMark\Node
    • CommonMark\Interfaces\IVisitor — The CommonMark\Interfaces\IVisitor interface
    • CommonMark\Interfaces\IVisitable — The CommonMark\Interfaces\IVisitable interface
    • CommonMark\Parser — The CommonMark\Parser class
    • CommonMark\CQL — The CommonMark\CQL class
    • CommonMark Funktionen
  • Parle — Parsing and lexing
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Pattern matching — Parle pattern matching
    • Beispiele
    • Parle\Lexer — The Parle\Lexer class
    • Parle\RLexer — The Parle\RLexer class
    • Parle\Parser — The Parle\Parser class
    • Parle\RParser — The Parle\RParser class
    • Parle\Stack — The Parle\Stack class
    • Parle\Token — The Parle\Token class
    • Parle\ErrorInfo — The Parle\ErrorInfo class
    • Parle\LexerException — The Parle\LexerException class
    • Parle\ParserException — The Parle\ParserException class
  • PCRE — Reguläre Ausdrücke (Perl-kompatibel)
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • PCRE-Suchmuster
    • PCRE-Funktionen
  • POSIX Regex — Reguläre Ausdrücke (POSIX-erweitert)
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • POSIX Regex-Funktionen
  • ssdeep — ssdeep Fuzzy Hashing
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • ssdeep Funktionen
  • Zeichenketten
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • String-Funktionen
    • Changelog


CommonMark

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
  • CommonMark\Node\Document — Document concrete CommonMark\Node
  • CommonMark\Node\Heading — Heading concrete CommonMark\Node
    • CommonMark\Node\Heading::__construct — Heading Construction
  • CommonMark\Node\Paragraph — Paragraph concrete CommonMark\Node
  • CommonMark\Node\BlockQuote — BlockQuote concrete CommonMark\Node
  • CommonMark\Node\BulletList — BulletList concrete CommonMark\Node
    • CommonMark\Node\BulletList::__construct — BulletList Construction
  • CommonMark\Node\OrderedList — OrderedList concrete CommonMark\Node
    • CommonMark\Node\OrderedList::__construct — OrderedList Construction
  • CommonMark\Node\Item — Item concrete CommonMark\Node
  • CommonMark\Node\Text — Text concrete CommonMark\Node
    • CommonMark\Node\Text::__construct — Text Construction
  • CommonMark\Node\Text\Strong — Strong concrete CommonMark\Node
  • CommonMark\Node\Text\Emphasis — Emphasis concrete CommonMark\Node
  • CommonMark\Node\ThematicBreak — ThematicBreak concrete CommonMark\Node
  • CommonMark\Node\SoftBreak — SoftBreak concrete CommonMark\Node
  • CommonMark\Node\LineBreak — LineBreak concrete CommonMark\Node
  • CommonMark\Node\Code — Code concrete CommonMark\Node
  • CommonMark\Node\CodeBlock — CodeBlock concrete CommonMark\Node
    • CommonMark\Node\CodeBlock::__construct — CodeBlock Construction
  • CommonMark\Node\HTMLBlock — HTMLBlock concrete CommonMark\Node
  • CommonMark\Node\HTMLInline — HTMLInline concrete CommonMark\Node
  • CommonMark\Node\Image — Image concrete CommonMark\Node
    • CommonMark\Node\Image::__construct — Image Construction
  • CommonMark\Node\Link — Link concrete CommonMark\Node
    • CommonMark\Node\Link::__construct — Link Construction
  • CommonMark\Node\CustomBlock — CustomBlock concrete CommonMark\Node
  • CommonMark\Node\CustomInline — CustomInline concrete CommonMark\Node
  • CommonMark\Node — Abstract CommonMark\Node
    • CommonMark\Node::appendChild — AST Manipulation
    • CommonMark\Node::prependChild — AST Manipulation
    • CommonMark\Node::insertAfter — AST Manipulation
    • CommonMark\Node::insertBefore — AST Manipulation
    • CommonMark\Node::replace — AST Manipulation
    • CommonMark\Node::unlink — AST Manipulation
    • CommonMark\Node::accept — Visitation
  • CommonMark\Interfaces\IVisitor — The CommonMark\Interfaces\IVisitor interface
    • CommonMark\Interfaces\IVisitor::enter — Visitation
    • CommonMark\Interfaces\IVisitor::leave — Visitation
  • CommonMark\Interfaces\IVisitable — The CommonMark\Interfaces\IVisitable interface
    • CommonMark\Interfaces\IVisitable::accept — Visitation
  • CommonMark\Parser — The CommonMark\Parser class
    • CommonMark\Parser::__construct — Parsing
    • CommonMark\Parser::parse — Parsing
    • CommonMark\Parser::finish — Parsing
  • CommonMark\CQL — The CommonMark\CQL class
    • CommonMark\CQL::__construct — CQL Construction
    • CommonMark\CQL::__invoke — CQL Execution
  • CommonMark Funktionen
    • CommonMark\Parse — Parsing
    • CommonMark\Render — Rendering
    • CommonMark\Render\HTML — Rendering
    • CommonMark\Render\Latex — Rendering
    • CommonMark\Render\Man — Rendering
    • CommonMark\Render\XML — Rendering


Einführung

This extension provides access to the reference implementation of CommonMark, a rationalized version of Markdown syntax with a specification.

Parsing:

The CommonMark extension provides a simple parsing API:

CommonMark\Parse ( string $content , int $options = ? ) : CommonMark\Node

Rendering:

The CommonMark extension provides simple rendering API that supports multiple formats:

CommonMark\Render ( CommonMark\Node $node , int $options = ? , int $width = ? ) : string
CommonMark\Render\HTML ( CommonMark\Node $node , int $options = ? ) : string
CommonMark\Render\XML ( CommonMark\Node $node , int $options = ? ) : string
CommonMark\Render\Man ( CommonMark\Node $node , int $options = ? , int $width = ? ) : string
CommonMark\Render\Latex ( CommonMark\Node $node , int $options = ? , int $width = ? ) : string

AST:

The CommonMark extension implements visitation for CommonMark\Node objects:

public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void

CQL:

The CommonMark extension provides an interface to CQL, CommonMark Query Language:

public CommonMark\CQL::__construct ( string $query )


  • « Einführung
  • Anforderungen »
  • PHP Manual
  • CommonMark
  • Installation/Konfiguration

Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

The CommonMark extension requires the (C) reference implementation of » cmark.


Installation

The CommonMark extension releases are hosted by PECL and source is hosted on » github, the easiest route to installation is the normal PECL route: » https://pecl.php.net/package/cmark.

Windows users can download prebuilt release binaries from the » PECL website.

Achtung

Windows users need to take the additional step of adding cmark.dll (distributed with Windows releases) to their PATH.


Document concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\Document extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


Heading concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\Heading extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Eigenschaften */
public int $level ;
/* Constructor */
public __construct ( )
public __construct ( int $level )
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Inhaltsverzeichnis

  • CommonMark\Node\Heading::__construct — Heading Construction


Heading Construction

  • « CommonMark\Node\Heading
  • CommonMark\Node\Paragraph »
  • PHP Manual
  • CommonMark\Node\Heading
  • Heading Construction

CommonMark\Node\Heading::__construct

(cmark >= 1.0.0)

CommonMark\Node\Heading::__construct — Heading Construction

Beschreibung

public CommonMark\Node\Heading::__construct ( )
public CommonMark\Node\Heading::__construct ( int $level )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Paragraph concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\Paragraph extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


BlockQuote concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\BlockQuote extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


BulletList concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\BulletList extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Eigenschaften */
public bool $tight ;
public int $delimiter ;
/* Constructor */
public __construct ( )
public __construct ( int $tight )
public __construct ( int $tight , int $delimiter )
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Inhaltsverzeichnis

  • CommonMark\Node\BulletList::__construct — BulletList Construction


BulletList Construction

  • « CommonMark\Node\BulletList
  • CommonMark\Node\OrderedList »
  • PHP Manual
  • CommonMark\Node\BulletList
  • BulletList Construction

CommonMark\Node\BulletList::__construct

(cmark >= 1.0.0)

CommonMark\Node\BulletList::__construct — BulletList Construction

Beschreibung

public CommonMark\Node\BulletList::__construct ( )
public CommonMark\Node\BulletList::__construct ( int $tight )
public CommonMark\Node\BulletList::__construct ( int $tight , int $delimiter )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.


OrderedList concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\OrderedList extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Eigenschaften */
public bool $tight ;
public int $delimiter ;
public int $start ;
/* Constructor */
public __construct ( )
public __construct ( int $tight )
public __construct ( int $tight , int $delimiter )
public __construct ( int $tight , int $delimiter , int $start )
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Inhaltsverzeichnis

  • CommonMark\Node\OrderedList::__construct — OrderedList Construction


OrderedList Construction

  • « CommonMark\Node\OrderedList
  • CommonMark\Node\Item »
  • PHP Manual
  • CommonMark\Node\OrderedList
  • OrderedList Construction

CommonMark\Node\OrderedList::__construct

(cmark >= 1.0.0)

CommonMark\Node\OrderedList::__construct — OrderedList Construction

Beschreibung

public CommonMark\Node\OrderedList::__construct ( )
public CommonMark\Node\OrderedList::__construct ( int $tight )
public CommonMark\Node\OrderedList::__construct ( int $tight , int $delimiter )
public CommonMark\Node\OrderedList::__construct ( int $tight , int $delimiter , int $start )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

tight

delimiter

start


Item concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\Item extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


Text concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\Text extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Eigenschaften */
public string|null $literal ;
/* Constructor */
public __construct ( )
public __construct ( string $literal )
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Inhaltsverzeichnis

  • CommonMark\Node\Text::__construct — Text Construction


Text Construction

  • « CommonMark\Node\Text
  • CommonMark\Node\Text\Strong »
  • PHP Manual
  • CommonMark\Node\Text
  • Text Construction

CommonMark\Node\Text::__construct

(cmark >= 1.0.0)

CommonMark\Node\Text::__construct — Text Construction

Beschreibung

public CommonMark\Node\Text::__construct ( )
public CommonMark\Node\Text::__construct ( string $literal )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

literal


Strong concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\Text\Strong extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


Emphasis concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\Text\Emphasis extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


ThematicBreak concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\ThematicBreak extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


SoftBreak concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\SoftBreak extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


LineBreak concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\LineBreak extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


Code concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\Code extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
public string|null $literal ;
/* Constructor */
public CommonMark\Node\Text::__construct ( )
public CommonMark\Node\Text::__construct ( string $literal )
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


CodeBlock concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\CodeBlock extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
public string|null $literal ;
/* Eigenschaften */
public string|null $fence ;
/* Constructor */
public CommonMark\Node\Text::__construct ( )
public CommonMark\Node\Text::__construct ( string $literal )
public __construct ( string $fence , string $literal )
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Inhaltsverzeichnis

  • CommonMark\Node\CodeBlock::__construct — CodeBlock Construction


CodeBlock Construction

  • « CommonMark\Node\CodeBlock
  • CommonMark\Node\HTMLBlock »
  • PHP Manual
  • CommonMark\Node\CodeBlock
  • CodeBlock Construction

CommonMark\Node\CodeBlock::__construct

(cmark >= 1.0.0)

CommonMark\Node\CodeBlock::__construct — CodeBlock Construction

Beschreibung

public CommonMark\Node\CodeBlock::__construct ( string $fence , string $literal )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

fence

literal


HTMLBlock concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\HTMLBlock extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
public string|null $literal ;
/* Constructor */
public CommonMark\Node\Text::__construct ( )
public CommonMark\Node\Text::__construct ( string $literal )
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


HTMLInline concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\HTMLInline extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
public string|null $literal ;
/* Constructor */
public CommonMark\Node\Text::__construct ( )
public CommonMark\Node\Text::__construct ( string $literal )
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


Image concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\Image extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Eigenschaften */
public string|null $url ;
public string|null $title ;
/* Constructor */
public __construct ( )
public __construct ( string $url )
public __construct ( string $url , string $title )
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Inhaltsverzeichnis

  • CommonMark\Node\Image::__construct — Image Construction


Image Construction

  • « CommonMark\Node\Image
  • CommonMark\Node\Link »
  • PHP Manual
  • CommonMark\Node\Image
  • Image Construction

CommonMark\Node\Image::__construct

(cmark >= 1.0.0)

CommonMark\Node\Image::__construct — Image Construction

Beschreibung

public CommonMark\Node\Image::__construct ( )
public CommonMark\Node\Image::__construct ( string $url )
public CommonMark\Node\Image::__construct ( string $url , string $title )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

url

title


Link concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\Link extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Eigenschaften */
public string|null $url ;
public string|null $title ;
/* Constructor */
public __construct ( )
public __construct ( string $url )
public __construct ( string $url , string $title )
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Inhaltsverzeichnis

  • CommonMark\Node\Link::__construct — Link Construction


Link Construction

  • « CommonMark\Node\Link
  • CommonMark\Node\CustomBlock »
  • PHP Manual
  • CommonMark\Node\Link
  • Link Construction

CommonMark\Node\Link::__construct

(cmark >= 1.0.0)

CommonMark\Node\Link::__construct — Link Construction

Beschreibung

public CommonMark\Node\Link::__construct ( )
public CommonMark\Node\Link::__construct ( string $url )
public CommonMark\Node\Link::__construct ( string $url , string $title )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

url

title


CustomBlock concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\CustomBlock extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Eigenschaften */
public string|null $onEnter ;
public string|null $onLeave ;
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


CustomInline concrete CommonMark\Node

(cmark >= 1.0.0)

Klassenbeschreibung

final CommonMark\Node\CustomInline extends CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Geerbte Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Eigenschaften */
public string|null $onEnter ;
public string|null $onLeave ;
/* Geerbte Methoden */
public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node
public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node
public CommonMark\Node::unlink ( ) : void
public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}


Abstract CommonMark\Node

(cmark >= 1.0.0)

Einführung

Represents an Abstract Node, this final abstract is not for direct use by the programmer.

Klassenbeschreibung

final abstract CommonMark\Node implements CommonMark\Interfaces\IVisitable , Traversable {
/* Eigenschaften */
public readonly Node|null $parent ;
public readonly Node|null $previous ;
public readonly Node|null $next ;
public readonly Node|null $lastChild ;
public readonly Node|null $firstChild ;
public readonly int $startLine ;
public readonly int $endLine ;
public readonly int $startColumn ;
public readonly int $endColumn ;
/* Methoden */
public appendChild ( CommonMark\Node $child ) : CommonMark\Node
public prependChild ( CommonMark\Node $child ) : CommonMark\Node
public insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node
public insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node
public replace ( CommonMark\Node $target ) : CommonMark\Node
public unlink ( ) : void
public accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Inhaltsverzeichnis

  • CommonMark\Node::appendChild — AST Manipulation
  • CommonMark\Node::prependChild — AST Manipulation
  • CommonMark\Node::insertAfter — AST Manipulation
  • CommonMark\Node::insertBefore — AST Manipulation
  • CommonMark\Node::replace — AST Manipulation
  • CommonMark\Node::unlink — AST Manipulation
  • CommonMark\Node::accept — Visitation


AST Manipulation

  • « CommonMark\Node
  • CommonMark\Node::prependChild »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::appendChild

(cmark >= 1.0.0)

CommonMark\Node::appendChild — AST Manipulation

Beschreibung

public CommonMark\Node::appendChild ( CommonMark\Node $child ) : CommonMark\Node

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

child

Rückgabewerte


AST Manipulation

  • « CommonMark\Node::appendChild
  • CommonMark\Node::insertAfter »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::prependChild

(cmark >= 1.0.0)

CommonMark\Node::prependChild — AST Manipulation

Beschreibung

public CommonMark\Node::prependChild ( CommonMark\Node $child ) : CommonMark\Node

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

child

Rückgabewerte


AST Manipulation

  • « CommonMark\Node::prependChild
  • CommonMark\Node::insertBefore »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::insertAfter

(cmark >= 1.0.0)

CommonMark\Node::insertAfter — AST Manipulation

Beschreibung

public CommonMark\Node::insertAfter ( CommonMark\Node $sibling ) : CommonMark\Node

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

sibling

Rückgabewerte


AST Manipulation

  • « CommonMark\Node::insertAfter
  • CommonMark\Node::replace »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::insertBefore

(cmark >= 1.0.0)

CommonMark\Node::insertBefore — AST Manipulation

Beschreibung

public CommonMark\Node::insertBefore ( CommonMark\Node $sibling ) : CommonMark\Node

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

sibling

Rückgabewerte


AST Manipulation

  • « CommonMark\Node::insertBefore
  • CommonMark\Node::unlink »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::replace

(cmark >= 1.0.0)

CommonMark\Node::replace — AST Manipulation

Beschreibung

public CommonMark\Node::replace ( CommonMark\Node $target ) : CommonMark\Node

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

target

Rückgabewerte


AST Manipulation

  • « CommonMark\Node::replace
  • CommonMark\Node::accept »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::unlink

(cmark >= 1.0.0)

CommonMark\Node::unlink — AST Manipulation

Beschreibung

public CommonMark\Node::unlink ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Visitation

  • « CommonMark\Node::unlink
  • CommonMark\Interfaces\IVisitor »
  • PHP Manual
  • CommonMark\Node
  • Visitation

CommonMark\Node::accept

(cmark >= 1.0.0)

CommonMark\Node::accept — Visitation

Beschreibung

public CommonMark\Node::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void

Parameter-Liste

visitor

An object implementing CommonMark\Interfaces\IVisitor

Siehe auch

  • CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitor::leave


The CommonMark\Interfaces\IVisitor interface

(cmark >= 1.0.0)

Einführung

Klassenbeschreibung

final CommonMark\Interfaces\IVisitor {
/* Constants */
const int Done ;
const int Enter ;
const int Leave ;
/* Methoden */
abstract public enter ( IVisitable $visitable ) : int|IVisitable|null
abstract public leave ( IVisitable $visitable ) : int|IVisitable|null
}

Inhaltsverzeichnis

  • CommonMark\Interfaces\IVisitor::enter — Visitation
  • CommonMark\Interfaces\IVisitor::leave — Visitation


Visitation

  • « CommonMark\Interfaces\IVisitor
  • CommonMark\Interfaces\IVisitor::leave »
  • PHP Manual
  • CommonMark\Interfaces\IVisitor
  • Visitation

CommonMark\Interfaces\IVisitor::enter

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitor::enter — Visitation

Beschreibung

abstract public CommonMark\Interfaces\IVisitor::enter ( IVisitable $visitable ) : int|IVisitable|null

Parameter-Liste

visitable

The current CommonMark\Interfaces\IVisitable being entered

Rückgabewerte

Returning CommonMark\Interfaces\IVisitor::Done will cause the backing iterator to exit.

Returning CommonMark\Interfaces\IVisitor::Enter will reset the backing iterator at entering the current IVisitable

Returning CommonMark\Interfaces\IVisitor::Leave will reset the backing iterator at exiting the current IVisitable

Returning an IVisitable will reset the backing iterator at entering the given IVisitable

Returning nothing will allow the backing iterator to continue

Siehe auch

  • CommonMark\Interfaces\IVisitable::accept


Visitation

  • « CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitable »
  • PHP Manual
  • CommonMark\Interfaces\IVisitor
  • Visitation

CommonMark\Interfaces\IVisitor::leave

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitor::leave — Visitation

Beschreibung

abstract public CommonMark\Interfaces\IVisitor::leave ( IVisitable $visitable ) : int|IVisitable|null

Parameter-Liste

visitable

The current CommonMark\Interfaces\IVisitable being exited

Rückgabewerte

Returning CommonMark\Interfaces\IVisitor::Done will cause the backing iterator to exit.

Returning CommonMark\Interfaces\IVisitor::Enter will reset the backing iterator at entering the current IVisitable

Returning CommonMark\Interfaces\IVisitor::Leave will reset the backing iterator at exiting the current IVisitable

Returning an IVisitable will reset the backing iterator at exiting the given IVisitable

Returning nothing will allow the backing iterator to continue

Siehe auch

  • CommonMark\Interfaces\IVisitable::accept


The CommonMark\Interfaces\IVisitable interface

(cmark >= 1.0.0)

Einführung

Klassenbeschreibung

final CommonMark\Interfaces\IVisitable {
abstract public accept ( CommonMark\Interfaces\IVisitor $visitor ) : void
}

Inhaltsverzeichnis

  • CommonMark\Interfaces\IVisitable::accept — Visitation


Visitation

  • « CommonMark\Interfaces\IVisitable
  • CommonMark\Parser »
  • PHP Manual
  • CommonMark\Interfaces\IVisitable
  • Visitation

CommonMark\Interfaces\IVisitable::accept

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitable::accept — Visitation

Beschreibung

abstract public CommonMark\Interfaces\IVisitable::accept ( CommonMark\Interfaces\IVisitor $visitor ) : void

Parameter-Liste

visitor

An object implementing CommonMark\Interfaces\IVisitor

Siehe auch

  • CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitor::leave


The CommonMark\Parser class

(cmark >= 1.0.0)

Einführung

Provides an incremental parser as an alternative to the simple Parsing API function

Klassenbeschreibung

final CommonMark\Parser {
/* Constructor */
public __construct ( int $options = ? )
/* Methoden */
public parse ( string $buffer ) : void
public finish ( ) : CommonMark\Node
}

Inhaltsverzeichnis

  • CommonMark\Parser::__construct — Parsing
  • CommonMark\Parser::parse — Parsing
  • CommonMark\Parser::finish — Parsing


Parsing

  • « CommonMark\Parser
  • CommonMark\Parser::parse »
  • PHP Manual
  • CommonMark\Parser
  • Parsing

CommonMark\Parser::__construct

(cmark >= 1.0.0)

CommonMark\Parser::__construct — Parsing

Beschreibung

public CommonMark\Parser::__construct ( int $options = ? )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

options

A mask of:

CommonMark\Parser\Normal (int)
CommonMark\Parser\Normalize (int)
CommonMark\Parser\ValidateUTF8 (int)
CommonMark\Parser\Smart (int)


Parsing

  • « CommonMark\Parser::__construct
  • CommonMark\Parser::finish »
  • PHP Manual
  • CommonMark\Parser
  • Parsing

CommonMark\Parser::parse

(cmark >= 1.0.0)

CommonMark\Parser::parse — Parsing

Beschreibung

public CommonMark\Parser::parse ( string $buffer ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

buffer

Rückgabewerte


Parsing

  • « CommonMark\Parser::parse
  • CommonMark\CQL »
  • PHP Manual
  • CommonMark\Parser
  • Parsing

CommonMark\Parser::finish

(cmark >= 1.0.0)

CommonMark\Parser::finish — Parsing

Beschreibung

public CommonMark\Parser::finish ( ) : CommonMark\Node

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The CommonMark\CQL class

(cmark >= 1.1.0)

Einführung

CommonMark Query Language is a DSL for describing how to travel through a CommonMark Node tree implemented as a parser and compiler for a small set of instructions, and a virtual machine for executing those instructions.

Paths:

In it's most simplistic form, a CQL query combines the following paths and / to describe how to travel through a tree:

  • firstChild
  • lastChild
  • previous
  • next
  • parent
For example, /firstChild/lastChild would travel to the last child node of the first child node.

Loops

CQL can be instructed to loop, for example through the children of, or siblings to a particular node, by using the path children, or siblings. For example, /firstChild/children will travel to all the children of the first child node.

Subqueries

CQL can be instructed how to travel by using a subquery like [/firstChild]. For example, /firstChild/children[/firstChild] will travel to the first child node of all the children of the first child node.

Loop Constraints

While looping, CQL can be instructed to constrict the travelled path to nodes of particular type. For example /children(BlockQuote) will travel to the children of a node where the type is BlockQuote. The following types are recognized (case insensitively):

  • BlockQuote
  • List
  • Item
  • CodeBlock
  • HtmlBlock
  • CustomBlock
  • Paragraph
  • Heading
  • ThematicBreak
  • Text
  • SoftBreak
  • LineBreak
  • Code
  • HtmlInline
  • CustomInline
  • Emphasis
  • Strong
  • Link
  • Image
Types may be used as a union, for example /children(BlockQuote|List) will travel to the children of a node where the type is BlockQuote or List. Types, or unions of types, may be also negated. For example /children(~BlockQuote) will travel to the children of a node where the type is not BlockQuote, and /children(~BlockQuote|Paragraph) will travel to the children of a node where the type is not BlockQuote or Paragraph

Path Constraints

CQL can be instructed to create a loop to travel to a node of a particular type, at a particular path. For example, /firstChild(BlockQuote) will travel to the first child node where the type is BlockQuote. Note that like other loops for children and siblings, this kind of path can only be followed by a subquery.

Implementation Notes

While CQL has been implemented as part of the PHP CommonMark extension, it stands separately from PHP and does not use PHP's virtual machine or internal representation of values.

Klassenbeschreibung

CommonMark\CQL {
/* Constructor */
public __construct ( string $query )
/* Methoden */
public __invoke ( CommonMark\Node $root , callable $handler )
}

Inhaltsverzeichnis

  • CommonMark\CQL::__construct — CQL Construction
  • CommonMark\CQL::__invoke — CQL Execution


CQL Construction

  • « CommonMark\CQL
  • CommonMark\CQL::__invoke »
  • PHP Manual
  • CommonMark\CQL
  • CQL Construction

CommonMark\CQL::__construct

(cmark >= 1.1.0)

CommonMark\CQL::__construct — CQL Construction

Beschreibung

public CommonMark\CQL::__construct ( string $query )

Parameter-Liste

query

a CQL string


CQL Execution

  • « CommonMark\CQL::__construct
  • CommonMark Funktionen »
  • PHP Manual
  • CommonMark\CQL
  • CQL Execution

CommonMark\CQL::__invoke

(cmark >= 1.1.0)

CommonMark\CQL::__invoke — CQL Execution

Beschreibung

public CommonMark\CQL::__invoke ( CommonMark\Node $root , callable $handler )

Shall invoke the current CQL function on the given root, executing the given handler on entry to a CommonMark\Node

Parameter-Liste

root

the root node of a tree

handler

should have the prototype:

handler ( CommonMark\Node $root , CommonMark\Node $entering ) : bool|null
  • Should handler fail to return (void), or return null, CQL will continue executing
  • Should the handler return a truthy value, CQL will continue executing.
  • Should the handler return a falsy value, CQL will stop executing


CommonMark Funktionen

Inhaltsverzeichnis

  • CommonMark\Parse — Parsing
  • CommonMark\Render — Rendering
  • CommonMark\Render\HTML — Rendering
  • CommonMark\Render\Latex — Rendering
  • CommonMark\Render\Man — Rendering
  • CommonMark\Render\XML — Rendering


Parsing

  • « CommonMark Funktionen
  • CommonMark\Render »
  • PHP Manual
  • CommonMark Funktionen
  • Parsing

CommonMark\Parse

(cmark >= 1.0.0)

CommonMark\Parse — Parsing

Beschreibung

CommonMark\Parse ( string $content , int $options = ? ) : CommonMark\Node

Shall parse content

Parameter-Liste

content

markdown string

options

A mask of:

CommonMark\Parser\Normal (int)
CommonMark\Parser\Normalize (int)
CommonMark\Parser\ValidateUTF8 (int)
CommonMark\Parser\Smart (int)

Rückgabewerte

Shall return root CommonMark\Node


Rendering

  • « CommonMark\Parse
  • CommonMark\Render\HTML »
  • PHP Manual
  • CommonMark Funktionen
  • Rendering

CommonMark\Render

(cmark >= 1.0.0)

CommonMark\Render — Rendering

Beschreibung

CommonMark\Render ( CommonMark\Node $node , int $options = ? , int $width = ? ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)
width

Rückgabewerte


Rendering

  • « CommonMark\Render
  • CommonMark\Render\Latex »
  • PHP Manual
  • CommonMark Funktionen
  • Rendering

CommonMark\Render\HTML

(cmark >= 1.0.0)

CommonMark\Render\HTML — Rendering

Beschreibung

CommonMark\Render\HTML ( CommonMark\Node $node , int $options = ? ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)

Rückgabewerte


Rendering

  • « CommonMark\Render\HTML
  • CommonMark\Render\Man »
  • PHP Manual
  • CommonMark Funktionen
  • Rendering

CommonMark\Render\Latex

(cmark >= 1.0.0)

CommonMark\Render\Latex — Rendering

Beschreibung

CommonMark\Render\Latex ( CommonMark\Node $node , int $options = ? , int $width = ? ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)
width

Rückgabewerte


Rendering

  • « CommonMark\Render\Latex
  • CommonMark\Render\XML »
  • PHP Manual
  • CommonMark Funktionen
  • Rendering

CommonMark\Render\Man

(cmark >= 1.0.0)

CommonMark\Render\Man — Rendering

Beschreibung

CommonMark\Render\Man ( CommonMark\Node $node , int $options = ? , int $width = ? ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)
width

Rückgabewerte


Rendering

  • « CommonMark\Render\Man
  • Parle »
  • PHP Manual
  • CommonMark Funktionen
  • Rendering

CommonMark\Render\XML

(cmark >= 1.0.0)

CommonMark\Render\XML — Rendering

Beschreibung

CommonMark\Render\XML ( CommonMark\Node $node , int $options = ? ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)

Rückgabewerte


Parsing and lexing

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
  • Vordefinierte Konstanten
  • Pattern matching — Parle pattern matching
    • Character representations
    • Character classes
    • Unicode character classes
    • Alternation and repetition
    • Anchors
    • Grouping
  • Beispiele
    • Lexer examples
    • Parser examples
  • Parle\Lexer — The Parle\Lexer class
    • Parle\Lexer::advance — Process next lexer rule
    • Parle\Lexer::build — Finalize the lexer rule set
    • Parle\Lexer::callout — Define token callback
    • Parle\Lexer::consume — Pass the data for processing
    • Parle\Lexer::dump — Dump the state machine
    • Parle\Lexer::getToken — Retrieve the current token
    • Parle\Lexer::insertMacro — Insert regex macro
    • Parle\Lexer::push — Add a lexer rule
    • Parle\Lexer::reset — Reset lexer
  • Parle\RLexer — The Parle\RLexer class
    • Parle\RLexer::advance — Process next lexer rule
    • Parle\RLexer::build — Finalize the lexer rule set
    • Parle\RLexer::callout — Define token callback
    • Parle\RLexer::consume — Pass the data for processing
    • Parle\RLexer::dump — Dump the state machine
    • Parle\RLexer::getToken — Retrieve the current token
    • Parle\RLexer::insertMacro — Insert regex macro
    • Parle\RLexer::push — Add a lexer rule
    • Parle\RLexer::pushState — Push a new start state
    • Parle\RLexer::reset — Reset lexer
  • Parle\Parser — The Parle\Parser class
    • Parle\Parser::advance — Process next parser rule
    • Parle\Parser::build — Finalize the grammar rules
    • Parle\Parser::consume — Consume the data for processing
    • Parle\Parser::dump — Dump the grammar
    • Parle\Parser::errorInfo — Retrieve the error information
    • Parle\Parser::left — Declare a token with left-associativity
    • Parle\Parser::nonassoc — Declare a token with no associativity
    • Parle\Parser::precedence — Declare a precedence rule
    • Parle\Parser::push — Add a grammar rule
    • Parle\Parser::reset — Reset parser state
    • Parle\Parser::right — Declare a token with right-associativity
    • Parle\Parser::sigil — Retrieve a matching part of a rule
    • Parle\Parser::token — Declare a token
    • Parle\Parser::tokenId — Get token id
    • Parle\Parser::trace — Trace the parser operation
    • Parle\Parser::validate — Validate input
  • Parle\RParser — The Parle\RParser class
    • Parle\RParser::advance — Process next parser rule
    • Parle\RParser::build — Finalize the grammar rules
    • Parle\RParser::consume — Consume the data for processing
    • Parle\RParser::dump — Dump the grammar
    • Parle\RParser::errorInfo — Retrieve the error information
    • Parle\RParser::left — Declare a token with left-associativity
    • Parle\RParser::nonassoc — Declare a token with no associativity
    • Parle\RParser::precedence — Declare a precedence rule
    • Parle\RParser::push — Add a grammar rule
    • Parle\RParser::reset — Reset parser state
    • Parle\RParser::right — Declare a token with right-associativity
    • Parle\RParser::sigil — Retrieve a matching part of a rule
    • Parle\RParser::token — Declare a token
    • Parle\RParser::tokenId — Get token id
    • Parle\RParser::trace — Trace the parser operation
    • Parle\RParser::validate — Validate input
  • Parle\Stack — The Parle\Stack class
    • Parle\Stack::pop — Pop an item from the stack
    • Parle\Stack::push — Push an item into the stack
  • Parle\Token — The Parle\Token class
  • Parle\ErrorInfo — The Parle\ErrorInfo class
  • Parle\LexerException — The Parle\LexerException class
  • Parle\ParserException — The Parle\ParserException class


Einführung

The parle extension provides general purpose lexing and parsing facilities. The implementation is based on » Ben Hanson's libraries and requires a » C++14 capable compiler. The lexer is based on the regex matching, the parser is LALR(1). Lexers and parsers are generated on the fly and can be used immediately after they've been finalized. Parle deals with parsing and lexing, the appropriate data structures representation and processing are the implementer's task. Serialization and code generation are not supported by the extension, yet.

Lexer analysis is a process of splitting a character sequence into a list of lexemes. The lexeme list can be then used for the syntax analysis against a formal grammar. These operations are also known as lexing and parsing. This documentation doesn't aim to provide an exhaustive information on lexing and parsing. Good information in this regard is available on the numerous resources on the net. Several usage examples are included, to show the functionality. The extension is useful for PHP programmers both willing to learn or to utilize parsing and lexing. State machines and grammar parsing don't have to be implemented manually, these complex tasks are taken away by parle. Thanks to that, the development can be focused on the actual problem solving.

The common use case for parle is, when a data format is too complex to be handled by the regex matching with PCRE. The practical application is herewith wide. Be it a specific data format, a behavior modification of existing functions, even an own programming language and beyond. The helper methods such as Parle\Lexer::dump() to inspect the generated state machine, or Parle\Parser::dump() to inspect the generated grammar, are useful. The method Parle\Parser::trace() can also be used to track the parsing operation.


  • « Einführung
  • Anforderungen »
  • PHP Manual
  • Parle
  • Installation/Konfiguration

Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation


Anforderungen

PHP 7.0 or above is supported. A C++14 capable compiler is required. A successful extension build was produced with at least clang 5.0, GCC 5.0 and Visual Studio 2015.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/parle.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/parle/.

Available configure options
Option | Description
--enable-parle | Enable parle extension.
--enable-parle-utf32 | Enable internal UTF-32 support. Available since parle 0.7.2.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Parle\INTERNAL_UTF32 bool
Flag whether the internal UTF-32 support is compiled in. Available since parle 0.7.2.


Parle pattern matching

Inhaltsverzeichnis

  • Character representations
  • Character classes
  • Unicode character classes
  • Alternation and repetition
  • Anchors
  • Grouping

Parle supports regex matching similar to flex. Also supported are the following POSIX character sets: [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] and [:xdigit:].

The Unicode character classes are currently not enabled by default, pass --enable-parle-utf32 to make them available. A particular encoding can be mapped with a correctly constructed regex. For example, to match the EURO symbol encoded in UTF-8, the regular expression [\xe2][\x82][\xac] can be used. The pattern for an UTF-8 encoded string could be [ -\x7f]{+}[\x80-\xbf]{+}[\xc2-\xdf]{+}[\xe0-\xef]{+}[\xf0-\xff]+.


Character representations

Character representations
Sequence | Description
\a | Alert (bell).
\b | Backspace.
\e | ESC character, \x1b.
\n | Newline.
\r | Carriage return.
\f | Form feed, \x0c.
\t | Horizontal tab, \x09.
\v | Vertical tab, \x0b.
\oct | Character specified by a three-digit octal code.
\xhex | Character specified by a hex code.
\cchar | Named control character.


Character classes

Character classes
Sequence | Description
[...] | A single character listed or contained within a listed range. Ranges can be combined with the {+} and {-} operators. For example [a-z]{+}[0-9] is the same as [0-9a-z] and [a-z]{-}[aeiou] is the same as [b-df-hj-np-tv-z].
[^...] | A single character not listed and not contained within a listed range.
. | Any character, default [^\n].
\d | Digit character, [0-9].
\D | Non-digit character, [^0-9].
\s | White space character, [ \t\n\r\f\v].
\S | Non-white space character, [^ \t\n\r\f\v].
\w | Word caracter, [a-zA-Z0-9_].
\W | Non-word caracter, [^a-zA-Z0-9_].


Unicode character classes

Unicode character classes
Sequence | Description
\p{C} | Other.
\p{Cc} | Other, control.
\p{Cf} | Other, format.
\p{Co} | Other, private use.
\p{Cs} | Other, surrogate.
\p{L} | Letter.
\p{LC} | Letter, cased.
\p{Ll} | Letter, lowercase.
\p{Lm} | Letter, modifier.
\p{Lo} | Letter, other.
\p{Lt} | Letter, titlecase.
\p{Lu} | Letter, uppercase.
\p{M} | Mark.
\p{Mc} | Mark, space combining.
\p{Me} | Mark, enclosing.
\p{Mn} | Mark, nonspacing.
\p{N} | Number.
\p{Nd} | Number, decimal digit.
\p{Nl} | Number, letter.
\p{No} | Number, other.
\p{P} | Punctuation.
\p{Pc} | Punctiation, connector.
\p{Pd} | Punctuation, dash.
\p{Pe} | Punctuation, close.
\p{Pf} | Punctuation, final quote.
\p{Pi} | Punctuation, initial quote.
\p{Po} | Punctuation, other.
\p{Ps} | Punctuation, open.
\p{S} | Symbol.
\p{Sc} | Symbol, currency.
\p{Sk} | Symbol, modifier.
\p{Sm} | Symbol, math.
\p{So} | Symbol, other.
\p{Z} | Separator.
\p{Zl} | Separator, line.
\p{Zp} | Separator, paragraph.
\p{Zs} | Separator, space.

These character clasess are only available, if the option --enable-parle-utf32 was passed at the compilation time.


Alternation and repetition

Alternation and repetition
Sequence | Greedy | Description
...|... | - | Try subpatterns in alternation.
* | yes | Match 0 or more times.
+ | yes | Match 1 or more times.
? | yes | Match 0 or 1 times.
{n} | no | Match exactly n times.
{n,} | yes | Match at least n times.
{n,m} | yes | Match at least n times but no more than m times.
*? | no | Match 0 or more times.
+? | no | Match 1 or more times.
?? | no | Match 0 or 1 times.
{n,}? | no | Match at least n times.
{n,m}? | no | Match at least n times but no more than m times.
{MACRO} | - | Include the regex MACRO in the current regex.


Anchors

Anchors
Sequence | Description
^ | Start of string or after a newline.
$ | End of string or before a newline.


Grouping

Grouping
Sequence | Description
(...) Group a regular expression to override default operator precedence.
(?r-s:pattern) Apply option r and omit option s while interpreting pattern. Options may be zero or more of the characters i, s, or x.
Options
Option | Description
i | Case insensitive.
-i | Case sensitive.
s | Alters the meaning of '.' to match any character whatsoever.
-s | "lters the meaning of '.' to match any character except '\n'.
x | Ignores comments and whitespace in patterns. Whitespace is ignored unless it is backslash-escaped, contained within ""s, or appears inside a character range.
These options can be applied globally at the rules level by passing a combination of the bit flags to the lexer.
(?# comment ) | Omit everything within (). The first ) character encountered ends the pattern. It is not possible for the comment to contain a ) character. The comment may span lines.


  • « Grouping
  • Lexer examples »
  • PHP Manual
  • Parle
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Lexer examples
  • Parser examples


Lexer examples

Beispiel #1 Tokenize comma separated integer list

<?php

use Parle\Token;
use Parle\Lexer;
use Parle\LexerException;

/* name => id */
$token = array(
        "COMMA" => 1,
        "CRLF" => 2,
        "DECIMAL" => 3,
);
/* id => name */
$tokenIdToName = array_flip($token);

$lex = new Lexer;
$lex->push("[\x2c]", $token["COMMA"]);
$lex->push("[\r][\n]", $token["CRLF"]);
$lex->push("[\d]+", $token["DECIMAL"]);
$lex->build();

$in = "0,1,2\r\n3,42,5\r\n6,77,8\r\n";

$lex->consume($in);

do {
        $lex->advance();
        $tok = $lex->getToken();

        if (Token::UNKNOWN == $tok->id) {
                throw new LexerException("Unknown token '{$tok->value}' at offset {$lex->marker}.");
        }

        echo "TOKEN: ", $tokenIdToName[$tok->id], PHP_EOL;
} while (Token::EOI != $tok->id);

Beispiel #2 Tokenize assign statement

<?php

use Parle\{Token, Lexer};

$lex = new Lexer;

$lex->push("\$[a-zA-Z_][a-zA-Z0-9_]*", 1);
$lex->push("=", 2);
$lex->push("\d+", 3);
$lex->push(";", 4);

$lex->build();

$lex->consume('$x = 42; $y = 24;');

do {
    $lex->advance();
    $tok = $lex->getToken();
    var_dump($tok);
} while (Token::EOI != $tok->id);


Parser examples

Beispiel #1 Simple calculator

<?php

use Parle\{Parser, ParserException, Lexer, Token};

$p = new Parser;
$p->token("INTEGER");
$p->left("'+' '-' '*' '/'");

$p->push("start", "exp");
$prod_add = $p->push("exp", "exp '+' exp");
$prod_sub = $p->push("exp", "exp '-' exp");
$prod_mul = $p->push("exp", "exp '*' exp");
$prod_div = $p->push("exp", "exp '/' exp");
$p->push("exp", "INTEGER"); /* Production index unused. */

$p->build();

$lex = new Lexer;
$lex->push("[+]", $p->tokenId("'+'"));
$lex->push("[-]", $p->tokenId("'-'"));
$lex->push("[*]", $p->tokenId("'*'"));
$lex->push("[/]", $p->tokenId("'/'"));
$lex->push("\\d+", $p->tokenId("INTEGER"));
$lex->push("\\s+", Token::SKIP);

$lex->build();

$exp = array(
    "1 + 1",
    "33 / 10",
    "100 * 45",
    "17 - 45",
);

foreach ($exp as $in) {
    if (!$p->validate($in, $lex)) {
        throw new ParserException("Failed to validate input");
    }

    $p->consume($in, $lex);

    while (Parser::ACTION_ERROR != $p->action && Parser::ACTION_ACCEPT != $p->action) {
        switch ($p->action) {
            case Parser::ACTION_ERROR:
                throw new ParserException("Parser error");
                break;
            case Parser::ACTION_SHIFT:
            case Parser::ACTION_GOTO:
            case Parser::ACTION_ACCEPT:
                break;
            case Parser::ACTION_REDUCE:
                switch ($p->reduceId) {
                    case $prod_add:
                        $l = $p->sigil(0);
                        $r = $p->sigil(2);
                        echo "$l + $r = " . ($l + $r) . "\n";
                        break;
                    case $prod_sub:
                        $l = $p->sigil(0);
                        $r = $p->sigil(2);
                        echo "$l - $r = " . ($l - $r) . "\n";
                        break;
                    case $prod_mul:
                        $l = $p->sigil(0);
                        $r = $p->sigil(2);
                        echo "$l * $r = " . ($l * $r) . "\n";
                        break;
                    case $prod_div:
                        $l = $p->sigil(0);
                        $r = $p->sigil(2);
                    echo "$l / $r = " . ($l / $r) . "\n";
                        break;
            }
            break;
        }
        $p->advance();
    }
}

Beispiel #2 Parse words out from a sentence

<?php

use Parle\{Lexer, Token, Parser, ParserException};

$p = new Parser;
$p->token("WORD");
$p->push("START", "SENTENCE");
$p->push("SENTENCE", "WORDS");
$prod_word_0 = $p->push("WORDS", "WORDS WORD");
$prod_word_1 = $p->push("WORDS", "WORD");
$p->build();

$lex = new Lexer;
$lex->push("[^\s]{-}[\.,\:\;\?]+", $p->tokenId("WORD"));
$lex->push("[\s\.,\:\;\?]+", Token::SKIP);
$lex->build();

$in = "Dis-moi où est ton papa?";
$p->consume($in, $lex);
do {
    switch ($p->action) {
    case Parser::ACTION_ERROR:
        throw new ParserException("Error");
        break;
    case Parser::ACTION_SHIFT:
    case Parser::ACTION_GOTO:
        /* var_dump($p->trace());*/
        break;
    case Parser::ACTION_REDUCE:
        $rid = $p->reduceId();
        if ($rid == $prod_word_1) {
            var_dump($p->sigil(0));
        } if ($rid == $prod_word_0) {
            var_dump($p->sigil(1));
        }
        break;
    }
    $p->advance();
} while (Parser::ACTION_ACCEPT != $p->action);


The Parle\Lexer class

(PECL parle >= 0.5.1)

Einführung

Single state lexer class. Lexemes can be defined on the fly. If the particular lexer instance is meant to be used with Parle\Parser, the token IDs need to be taken from there. Otherwise, arbitrary token IDs can be supplied. This lexer can give a certain performance advantage over Parle\RLexer, if no multiple states are required. Note, that Parle\RParser is not compatible with this lexer.

Klassenbeschreibung

Parle\Lexer {
/* Constants */
const int ICASE = 1 ;
const int DOT_NOT_LF = 2 ;
const int DOT_NOT_CRLF = 4 ;
const int SKIP_WS = 8 ;
const int MATCH_ZERO_LEN = 16 ;
/* Eigenschaften */
public bool $bol = false ;
public int $flags = 0 ;
public int $state = 0 ;
public int $marker = 0 ;
public int $cursor = 0 ;
/* Methoden */
public advance ( ) : void
public build ( ) : void
public callout ( int $id , callable $callback ) : void
public consume ( string $data ) : void
public dump ( ) : void
public getToken ( ) : Parle\Token
public insertMacro ( string $name , string $regex ) : void
public push ( string $regex , int $id ) : void
public reset ( int $pos ) : void
}

Vordefinierte Konstanten

Parle\Lexer::ICASE

Parle\Lexer::DOT_NOT_LF

Parle\Lexer::DOT_NOT_CRLF

Parle\Lexer::SKIP_WS

Parle\Lexer::MATCH_ZERO_LEN

Eigenschaften

bol

Start of input flag.

flags

Lexer flags.

state

Current lexer state, readonly.

marker

Position of the latest token match, readonly.

cursor

Current input offset, readonly.

Inhaltsverzeichnis

  • Parle\Lexer::advance — Process next lexer rule
  • Parle\Lexer::build — Finalize the lexer rule set
  • Parle\Lexer::callout — Define token callback
  • Parle\Lexer::consume — Pass the data for processing
  • Parle\Lexer::dump — Dump the state machine
  • Parle\Lexer::getToken — Retrieve the current token
  • Parle\Lexer::insertMacro — Insert regex macro
  • Parle\Lexer::push — Add a lexer rule
  • Parle\Lexer::reset — Reset lexer


Process next lexer rule

  • « Parle\Lexer
  • Parle\Lexer::build »
  • PHP Manual
  • Parle\Lexer
  • Process next lexer rule

Parle\Lexer::advance

(PECL parle >= 0.5.1)

Parle\Lexer::advance — Process next lexer rule

Beschreibung

public Parle\Lexer::advance ( ) : void

Processes the next rule and prepares the resulting token data.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Finalize the lexer rule set

  • « Parle\Lexer::advance
  • Parle\Lexer::callout »
  • PHP Manual
  • Parle\Lexer
  • Finalize the lexer rule set

Parle\Lexer::build

(PECL parle >= 0.5.1)

Parle\Lexer::build — Finalize the lexer rule set

Beschreibung

public Parle\Lexer::build ( ) : void

Rules, previously added with Parle\Lexer::push() are finalized. This method call has to be done after all the necessary rules was pushed. The rule set becomes read only. The lexing can begin.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Define token callback

  • « Parle\Lexer::build
  • Parle\Lexer::consume »
  • PHP Manual
  • Parle\Lexer
  • Define token callback

Parle\Lexer::callout

(PECL parle >= 0.7.2)

Parle\Lexer::callout — Define token callback

Beschreibung

public Parle\Lexer::callout ( int $id , callable $callback ) : void

Define a callback to be invoked once lexer encounters a particular token.

Parameter-Liste

id

Token id.

callback

Callable to be invoked. The callable doesn't receive any arguments and its return value is ignored.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Pass the data for processing

  • « Parle\Lexer::callout
  • Parle\Lexer::dump »
  • PHP Manual
  • Parle\Lexer
  • Pass the data for processing

Parle\Lexer::consume

(PECL parle >= 0.5.1)

Parle\Lexer::consume — Pass the data for processing

Beschreibung

public Parle\Lexer::consume ( string $data ) : void

Consume the data for lexing.

Parameter-Liste

data

Data to be lexed.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Dump the state machine

  • « Parle\Lexer::consume
  • Parle\Lexer::getToken »
  • PHP Manual
  • Parle\Lexer
  • Dump the state machine

Parle\Lexer::dump

(PECL parle >= 0.5.1)

Parle\Lexer::dump — Dump the state machine

Beschreibung

public Parle\Lexer::dump ( ) : void

Dump the current state machine to stdout.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Retrieve the current token

  • « Parle\Lexer::dump
  • Parle\Lexer::insertMacro »
  • PHP Manual
  • Parle\Lexer
  • Retrieve the current token

Parle\Lexer::getToken

(PECL parle >= 0.5.1)

Parle\Lexer::getToken — Retrieve the current token

Beschreibung

public Parle\Lexer::getToken ( ) : Parle\Token

Retrieve the current token.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an instance of Parle\Token.


Insert regex macro

  • « Parle\Lexer::getToken
  • Parle\Lexer::push »
  • PHP Manual
  • Parle\Lexer
  • Insert regex macro

Parle\Lexer::insertMacro

(PECL parle >= 0.5.1)

Parle\Lexer::insertMacro — Insert regex macro

Beschreibung

public Parle\Lexer::insertMacro ( string $name , string $regex ) : void

Insert a regex macro, that can be later used as a shortcut and included in other regular expressions.

Parameter-Liste

name

Name of the macros.

regex

Regular expression.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Add a lexer rule

  • « Parle\Lexer::insertMacro
  • Parle\Lexer::reset »
  • PHP Manual
  • Parle\Lexer
  • Add a lexer rule

Parle\Lexer::push

(PECL parle >= 0.5.1)

Parle\Lexer::push — Add a lexer rule

Beschreibung

public Parle\Lexer::push ( string $regex , int $id ) : void

Push a pattern for lexeme recognition.

Parameter-Liste

regex

Regular expression used for token matching.

id

Token id. If the lexer instance is meant to be used standalone, this can be an arbitrary number. If the lexer instance is going to be passed to the parser, it has to be an id returned by Parle\Parser::tokenid().

Rückgabewerte

Es wird kein Wert zurückgegeben.


Reset lexer

  • « Parle\Lexer::push
  • Parle\RLexer »
  • PHP Manual
  • Parle\Lexer
  • Reset lexer

Parle\Lexer::reset

(PECL parle >= 0.7.1)

Parle\Lexer::reset — Reset lexer

Beschreibung

public Parle\Lexer::reset ( int $pos ) : void

Reset lexing optionally supplying the desired offset.

Parameter-Liste

pos

Reset position.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The Parle\RLexer class

(PECL parle >= 0.5.1)

Einführung

Multistate lexer class. Lexemes can be defined on the fly. If the particular lexer instance is meant to be used with Parle\RParser, the token IDs need to be taken from there. Otherwise, arbitrary token IDs can be supplied. Note, that Parle\Parser is not compatible with this lexer.

Klassenbeschreibung

Parle\RLexer {
/* Constants */
const int ICASE = 1 ;
const int DOT_NOT_LF = 2 ;
const int DOT_NOT_CRLF = 4 ;
const int SKIP_WS = 8 ;
const int MATCH_ZERO_LEN = 16 ;
/* Eigenschaften */
public bool $bol = false ;
public int $flags = 0 ;
public int $state = 0 ;
public int $marker = 0 ;
public int $cursor = 0 ;
/* Methoden */
public advance ( ) : void
public build ( ) : void
public callout ( int $id , callable $callback ) : void
public consume ( string $data ) : void
public dump ( ) : void
public getToken ( ) : Parle\Token
public insertMacro ( string $name , string $regex ) : void
public push ( string $regex , int $id ) : void
public push ( string $state , string $regex , int $id , string $newState ) : void
public push ( string $state , string $regex , string $newState ) : void
public pushState ( string $state ) : int
public reset ( int $pos ) : void
}

Vordefinierte Konstanten

Parle\RLexer::ICASE

Parle\RLexer::DOT_NOT_LF

Parle\RLexer::DOT_NOT_CRLF

Parle\RLexer::SKIP_WS

Parle\RLexer::MATCH_ZERO_LEN

Eigenschaften

bol

Start of input flag.

flags

Lexer flags.

state

Current lexer state, readonly.

marker

Position of the latest token match, readonly.

cursor

Current input offset, readonly.

Inhaltsverzeichnis

  • Parle\RLexer::advance — Process next lexer rule
  • Parle\RLexer::build — Finalize the lexer rule set
  • Parle\RLexer::callout — Define token callback
  • Parle\RLexer::consume — Pass the data for processing
  • Parle\RLexer::dump — Dump the state machine
  • Parle\RLexer::getToken — Retrieve the current token
  • Parle\RLexer::insertMacro — Insert regex macro
  • Parle\RLexer::push — Add a lexer rule
  • Parle\RLexer::pushState — Push a new start state
  • Parle\RLexer::reset — Reset lexer


Process next lexer rule

  • « Parle\RLexer
  • Parle\RLexer::build »
  • PHP Manual
  • Parle\RLexer
  • Process next lexer rule

Parle\RLexer::advance

(PECL parle >= 0.5.1)

Parle\RLexer::advance — Process next lexer rule

Beschreibung

public Parle\RLexer::advance ( ) : void

Processes the next rule and prepares the resulting token data.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Finalize the lexer rule set

  • « Parle\RLexer::advance
  • Parle\RLexer::callout »
  • PHP Manual
  • Parle\RLexer
  • Finalize the lexer rule set

Parle\RLexer::build

(PECL parle >= 0.5.1)

Parle\RLexer::build — Finalize the lexer rule set

Beschreibung

public Parle\RLexer::build ( ) : void

Rules, previously added with Parle\RLexer::push() are finalized. This method call has to be done after all the necessary rules was pushed. The rule set becomes read only. The lexing can begin.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Define token callback

  • « Parle\RLexer::build
  • Parle\RLexer::consume »
  • PHP Manual
  • Parle\RLexer
  • Define token callback

Parle\RLexer::callout

(PECL parle >= 0.7.2)

Parle\RLexer::callout — Define token callback

Beschreibung

public Parle\RLexer::callout ( int $id , callable $callback ) : void

Define a callback to be invoked once lexer encounters a particular token.

Parameter-Liste

id

Token id.

callback

Callable to be invoked. The callable doesn't receive any arguments and its return value is ignored.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Pass the data for processing

  • « Parle\RLexer::callout
  • Parle\RLexer::dump »
  • PHP Manual
  • Parle\RLexer
  • Pass the data for processing

Parle\RLexer::consume

(PECL parle >= 0.5.1)

Parle\RLexer::consume — Pass the data for processing

Beschreibung

public Parle\RLexer::consume ( string $data ) : void

Consume the data for lexing.

Parameter-Liste

data

Data to be lexed.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Dump the state machine

  • « Parle\RLexer::consume
  • Parle\RLexer::getToken »
  • PHP Manual
  • Parle\RLexer
  • Dump the state machine

Parle\RLexer::dump

(PECL parle >= 0.5.1)

Parle\RLexer::dump — Dump the state machine

Beschreibung

public Parle\RLexer::dump ( ) : void

Dump the current state machine to stdout.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Retrieve the current token

  • « Parle\RLexer::dump
  • Parle\RLexer::insertMacro »
  • PHP Manual
  • Parle\RLexer
  • Retrieve the current token

Parle\RLexer::getToken

(PECL parle >= 0.5.1)

Parle\RLexer::getToken — Retrieve the current token

Beschreibung

public Parle\RLexer::getToken ( ) : Parle\Token

Retrive the current token.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an instance of Parle\Token.


Insert regex macro

  • « Parle\RLexer::getToken
  • Parle\RLexer::push »
  • PHP Manual
  • Parle\RLexer
  • Insert regex macro

Parle\RLexer::insertMacro

(PECL parle >= 0.5.1)

Parle\RLexer::insertMacro — Insert regex macro

Beschreibung

public Parle\RLexer::insertMacro ( string $name , string $regex ) : void

Insert a regex macro, that can be later used as a shortcut and included in other regular expressions.

Parameter-Liste

name

Name of the macros.

regex

Regular expression.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Add a lexer rule

  • « Parle\RLexer::insertMacro
  • Parle\RLexer::pushState »
  • PHP Manual
  • Parle\RLexer
  • Add a lexer rule

Parle\RLexer::push

(PECL parle >= 0.5.1)

Parle\RLexer::push — Add a lexer rule

Beschreibung

public Parle\RLexer::push ( string $regex , int $id ) : void
public Parle\RLexer::push ( string $state , string $regex , int $id , string $newState ) : void
public Parle\RLexer::push ( string $state , string $regex , string $newState ) : void

Push a pattern for lexeme recognition.

A 'start state' and 'exit state' can be specified by using a suitable signature.

Parameter-Liste

regex

Regular expression used for token matching.

id

Token id. If the lexer instance is meant to be used standalone, this can be an arbitrary number. If the lexer instance is going to be passed to the parser, it has to be an id returned by Parle\RParser::tokenid().

state

State name. If '*' is used as start state, then the rule is applied to all lexer states.

newState

New state name, after the rule was applied.

If '.' is specified as the exit state, then the lexer state is unchanged when that rule matches. An exit state with '>' before the name means push. Use the signature without id for either continuation or to start matching, when a continuation or recursion is required.

If '<' is specified as exit state, it means pop. In that case, the signature containing the id can be used to identify the match. Note that even in the case an id is specified, the rule will finish first when all the previous pushes popped.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Push a new start state

  • « Parle\RLexer::push
  • Parle\RLexer::reset »
  • PHP Manual
  • Parle\RLexer
  • Push a new start state

Parle\RLexer::pushState

(PECL parle >= 0.5.1)

Parle\RLexer::pushState — Push a new start state

Beschreibung

public Parle\RLexer::pushState ( string $state ) : int

This lexer type can have more than one state machine. This allows you to lex different tokens depending on context, thus allowing simple parsing to take place. Once a state pushed, it can be used with a suitable Parle\RLexer::push() signature variant.

Parameter-Liste

state

Name of the state.

Rückgabewerte


Reset lexer

  • « Parle\RLexer::pushState
  • Parle\Parser »
  • PHP Manual
  • Parle\RLexer
  • Reset lexer

Parle\RLexer::reset

(PECL parle >= 0.7.1)

Parle\RLexer::reset — Reset lexer

Beschreibung

public Parle\RLexer::reset ( int $pos ) : void

Reset lexing optionally supplying the desired offset.

Parameter-Liste

pos

Reset position.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The Parle\Parser class

(PECL parle >= 0.5.1)

Einführung

Parser class. Rules can be defined on the fly. Once finalized, a Parle\Lexer instance is required to deliver the token stream.

Klassenbeschreibung

Parle\Parser {
/* Constants */
const int ACTION_ERROR = 0 ;
const int ACTION_SHIFT = 1 ;
const int ACTION_REDUCE = 2 ;
const int ACTION_GOTO = 3 ;
const int ACTION_ACCEPT = 4 ;
const int ERROR_SYNTAX = 0 ;
const int ERROR_NON_ASSOCIATIVE = 1 ;
const int ERROR_UNKNOWN_TOKEN = 2 ;
/* Eigenschaften */
public int $action = 0 ;
public int $reduceId = 0 ;
/* Methoden */
public advance ( ) : void
public build ( ) : void
public consume ( string $data , Parle\Lexer $lexer ) : void
public dump ( ) : void
public errorInfo ( ) : Parle\ErrorInfo
public left ( string $tok ) : void
public nonassoc ( string $tok ) : void
public precedence ( string $tok ) : void
public push ( string $name , string $rule ) : int
public reset ( int $tokenId = ? ) : void
public right ( string $tok ) : void
public sigil ( int $idx ) : string
public token ( string $tok ) : void
public tokenId ( string $tok ) : int
public trace ( ) : string
public validate ( string $data , Parle\Lexer $lexer ) : bool
}

Vordefinierte Konstanten

Parle\Parser::ACTION_ERROR

Parle\Parser::ACTION_SHIFT

Parle\Parser::ACTION_REDUCE

Parle\Parser::ACTION_GOTO

Parle\Parser::ACTION_ACCEPT

Parle\Parser::ERROR_SYNTAX

Parle\Parser::ERROR_NON_ASSOCIATIVE

Parle\Parser::ERROR_UNKNOWN_TOKEN

Eigenschaften

action

Current parser action that matches one of the action class constants, readonly.

reduceId

Grammar rule id just processed in the reduce action. The value corresponds either to a token or to a production id. Readonly.

Inhaltsverzeichnis

  • Parle\Parser::advance — Process next parser rule
  • Parle\Parser::build — Finalize the grammar rules
  • Parle\Parser::consume — Consume the data for processing
  • Parle\Parser::dump — Dump the grammar
  • Parle\Parser::errorInfo — Retrieve the error information
  • Parle\Parser::left — Declare a token with left-associativity
  • Parle\Parser::nonassoc — Declare a token with no associativity
  • Parle\Parser::precedence — Declare a precedence rule
  • Parle\Parser::push — Add a grammar rule
  • Parle\Parser::reset — Reset parser state
  • Parle\Parser::right — Declare a token with right-associativity
  • Parle\Parser::sigil — Retrieve a matching part of a rule
  • Parle\Parser::token — Declare a token
  • Parle\Parser::tokenId — Get token id
  • Parle\Parser::trace — Trace the parser operation
  • Parle\Parser::validate — Validate input


Process next parser rule

  • « Parle\Parser
  • Parle\Parser::build »
  • PHP Manual
  • Parle\Parser
  • Process next parser rule

Parle\Parser::advance

(PECL parle >= 0.5.1)

Parle\Parser::advance — Process next parser rule

Beschreibung

public Parle\Parser::advance ( ) : void

Process next parser rule.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Finalize the grammar rules

  • « Parle\Parser::advance
  • Parle\Parser::consume »
  • PHP Manual
  • Parle\Parser
  • Finalize the grammar rules

Parle\Parser::build

(PECL parle >= 0.5.1)

Parle\Parser::build — Finalize the grammar rules

Beschreibung

public Parle\Parser::build ( ) : void

Any tokens and grammar rules previously added are finalized. The rule set becomes readonly and the parser is ready to start.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Consume the data for processing

  • « Parle\Parser::build
  • Parle\Parser::dump »
  • PHP Manual
  • Parle\Parser
  • Consume the data for processing

Parle\Parser::consume

(PECL parle >= 0.5.1)

Parle\Parser::consume — Consume the data for processing

Beschreibung

public Parle\Parser::consume ( string $data , Parle\Lexer $lexer ) : void

Consume the data for parsing.

Parameter-Liste

data

Data to be parsed.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Dump the grammar

  • « Parle\Parser::consume
  • Parle\Parser::errorInfo »
  • PHP Manual
  • Parle\Parser
  • Dump the grammar

Parle\Parser::dump

(PECL parle >= 0.5.1)

Parle\Parser::dump — Dump the grammar

Beschreibung

public Parle\Parser::dump ( ) : void

Dump the current grammar to stdout.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Retrieve the error information

  • « Parle\Parser::dump
  • Parle\Parser::left »
  • PHP Manual
  • Parle\Parser
  • Retrieve the error information

Parle\Parser::errorInfo

(PECL parle >= 0.5.1)

Parle\Parser::errorInfo — Retrieve the error information

Beschreibung

public Parle\Parser::errorInfo ( ) : Parle\ErrorInfo

Retrieve the error information in case Parle\Parser::action() returned the error action.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an instance of Parle\ErrorInfo.


Declare a token with left-associativity

  • « Parle\Parser::errorInfo
  • Parle\Parser::nonassoc »
  • PHP Manual
  • Parle\Parser
  • Declare a token with left-associativity

Parle\Parser::left

(PECL parle >= 0.5.1)

Parle\Parser::left — Declare a token with left-associativity

Beschreibung

public Parle\Parser::left ( string $tok ) : void

Declare a terminal with left associativity.

Parameter-Liste

tok

Token name.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Declare a token with no associativity

  • « Parle\Parser::left
  • Parle\Parser::precedence »
  • PHP Manual
  • Parle\Parser
  • Declare a token with no associativity

Parle\Parser::nonassoc

(PECL parle >= 0.5.1)

Parle\Parser::nonassoc — Declare a token with no associativity

Beschreibung

public Parle\Parser::nonassoc ( string $tok ) : void

Declare a terminal, that cannot appear more than once in the row.

Parameter-Liste

tok

Token name.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Declare a precedence rule

  • « Parle\Parser::nonassoc
  • Parle\Parser::push »
  • PHP Manual
  • Parle\Parser
  • Declare a precedence rule

Parle\Parser::precedence

(PECL parle >= 0.5.1)

Parle\Parser::precedence — Declare a precedence rule

Beschreibung

public Parle\Parser::precedence ( string $tok ) : void

Declares a precedence rule for a fictitious terminal symbol. This rule can be later used in the specific grammar rules.

Parameter-Liste

tok

Token name.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Add a grammar rule

  • « Parle\Parser::precedence
  • Parle\Parser::reset »
  • PHP Manual
  • Parle\Parser
  • Add a grammar rule

Parle\Parser::push

(PECL parle >= 0.5.1)

Parle\Parser::push — Add a grammar rule

Beschreibung

public Parle\Parser::push ( string $name , string $rule ) : int

Push a grammar rule. The production id returned can be used later in the parsing process to identify the rule matched.

Parameter-Liste

name

Rule name.

rule

The rule to be added. The syntax is Bison compatible.

Rückgabewerte

Returns Integer representing the rule index.


Reset parser state

  • « Parle\Parser::push
  • Parle\Parser::right »
  • PHP Manual
  • Parle\Parser
  • Reset parser state

Parle\Parser::reset

(PECL parle >= 0.7.1)

Parle\Parser::reset — Reset parser state

Beschreibung

public Parle\Parser::reset ( int $tokenId = ? ) : void

Reset parser state using the given token id.

Parameter-Liste

tokenId

Token id.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Declare a token with right-associativity

  • « Parle\Parser::reset
  • Parle\Parser::sigil »
  • PHP Manual
  • Parle\Parser
  • Declare a token with right-associativity

Parle\Parser::right

(PECL parle >= 0.5.1)

Parle\Parser::right — Declare a token with right-associativity

Beschreibung

public Parle\Parser::right ( string $tok ) : void

Declare a terminal with right associativity.

Parameter-Liste

tok

Token name.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Retrieve a matching part of a rule

  • « Parle\Parser::right
  • Parle\Parser::token »
  • PHP Manual
  • Parle\Parser
  • Retrieve a matching part of a rule

Parle\Parser::sigil

(PECL parle >= 0.5.1)

Parle\Parser::sigil — Retrieve a matching part of a rule

Beschreibung

public Parle\Parser::sigil ( int $idx ) : string

Retrieve a part of the match by a rule. This method is equivalent to the pseudo variable functionality in Bison.

Parameter-Liste

idx

Match index, zero based.

Rückgabewerte

Returns a String with the matched part.


Declare a token

  • « Parle\Parser::sigil
  • Parle\Parser::tokenId »
  • PHP Manual
  • Parle\Parser
  • Declare a token

Parle\Parser::token

(PECL parle >= 0.5.1)

Parle\Parser::token — Declare a token

Beschreibung

public Parle\Parser::token ( string $tok ) : void

Declare a terminal to be used in the grammar.

Parameter-Liste

tok

Token name.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Get token id

  • « Parle\Parser::token
  • Parle\Parser::trace »
  • PHP Manual
  • Parle\Parser
  • Get token id

Parle\Parser::tokenId

(PECL parle >= 0.5.1)

Parle\Parser::tokenId — Get token id

Beschreibung

public Parle\Parser::tokenId ( string $tok ) : int

Retrieve the id of the named token.

Parameter-Liste

tok

Name of the token as used in Parle\Parser::token().

Rückgabewerte

Returns Integer representing the token id.


Trace the parser operation

  • « Parle\Parser::tokenId
  • Parle\Parser::validate »
  • PHP Manual
  • Parle\Parser
  • Trace the parser operation

Parle\Parser::trace

(PECL parle >= 0.5.1)

Parle\Parser::trace — Trace the parser operation

Beschreibung

public Parle\Parser::trace ( ) : string

Retrieve the current parser operation description. This can be especially useful for studying the parser and to optimize the grammar.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a String with the trace information.


Validate input

  • « Parle\Parser::trace
  • Parle\RParser »
  • PHP Manual
  • Parle\Parser
  • Validate input

Parle\Parser::validate

(PECL parle >= 0.5.1)

Parle\Parser::validate — Validate input

Beschreibung

public Parle\Parser::validate ( string $data , Parle\Lexer $lexer ) : bool

Validate an input string. The string is parsed internally, thus this method is useful for the quick input validation.

Parameter-Liste

data

String to be validated.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Rückgabewerte

Returns Boolean witnessing whether the input chimes or not with the defined rules.


The Parle\RParser class

(PECL parle >= 0.7.0)

Einführung

Parser class. Rules can be defined on the fly. Once finalized, a Parle\RLexer instance is required to deliver the token stream.

Klassenbeschreibung

Parle\RParser {
/* Constants */
const int ACTION_ERROR = 0 ;
const int ACTION_SHIFT = 1 ;
const int ACTION_REDUCE = 2 ;
const int ACTION_GOTO = 3 ;
const int ACTION_ACCEPT = 4 ;
const int ERROR_SYNTAX = 0 ;
const int ERROR_NON_ASSOCIATIVE = 1 ;
const int ERROR_UNKNOWN_TOKEN = 2 ;
/* Eigenschaften */
public int $action = 0 ;
public int $reduceId = 0 ;
/* Methoden */
public advance ( ) : void
public build ( ) : void
public consume ( string $data , Parle\RLexer $rlexer ) : void
public dump ( ) : void
public errorInfo ( ) : Parle\ErrorInfo
public left ( string $tok ) : void
public nonassoc ( string $tok ) : void
public precedence ( string $tok ) : void
public push ( string $name , string $rule ) : int
public reset ( int $tokenId = ? ) : void
public right ( string $tok ) : void
public sigil ( int $idx = ? ) : string
public token ( string $tok ) : void
public tokenId ( string $tok ) : int
public trace ( ) : string
public validate ( string $data , Parle\RLexer $lexer ) : bool
}

Vordefinierte Konstanten

Parle\RParser::ACTION_ERROR

Parle\RParser::ACTION_SHIFT

Parle\RParser::ACTION_REDUCE

Parle\RParser::ACTION_GOTO

Parle\RParser::ACTION_ACCEPT

Parle\RParser::ERROR_SYNTAX

Parle\RParser::ERROR_NON_ASSOCIATIVE

Parle\RParser::ERROR_UNKNOWN_TOKEN

Eigenschaften

action

Current parser action that matches one of the action class constants, readonly.

reduceId

Grammar rule id just processed in the reduce action. The value corresponds either to a token or to a production id. Readonly.

Inhaltsverzeichnis

  • Parle\RParser::advance — Process next parser rule
  • Parle\RParser::build — Finalize the grammar rules
  • Parle\RParser::consume — Consume the data for processing
  • Parle\RParser::dump — Dump the grammar
  • Parle\RParser::errorInfo — Retrieve the error information
  • Parle\RParser::left — Declare a token with left-associativity
  • Parle\RParser::nonassoc — Declare a token with no associativity
  • Parle\RParser::precedence — Declare a precedence rule
  • Parle\RParser::push — Add a grammar rule
  • Parle\RParser::reset — Reset parser state
  • Parle\RParser::right — Declare a token with right-associativity
  • Parle\RParser::sigil — Retrieve a matching part of a rule
  • Parle\RParser::token — Declare a token
  • Parle\RParser::tokenId — Get token id
  • Parle\RParser::trace — Trace the parser operation
  • Parle\RParser::validate — Validate input


Process next parser rule

  • « Parle\RParser
  • Parle\RParser::build »
  • PHP Manual
  • Parle\RParser
  • Process next parser rule

Parle\RParser::advance

(PECL parle >= 0.7.0)

Parle\RParser::advance — Process next parser rule

Beschreibung

public Parle\RParser::advance ( ) : void

Prosess next parser rule.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Finalize the grammar rules

  • « Parle\RParser::advance
  • Parle\RParser::consume »
  • PHP Manual
  • Parle\RParser
  • Finalize the grammar rules

Parle\RParser::build

(PECL parle >= 0.7.0)

Parle\RParser::build — Finalize the grammar rules

Beschreibung

public Parle\RParser::build ( ) : void

Any tokens and grammar rules previously added are finalized. The rule set becomes readonly and the parser is ready to start.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Consume the data for processing

  • « Parle\RParser::build
  • Parle\RParser::dump »
  • PHP Manual
  • Parle\RParser
  • Consume the data for processing

Parle\RParser::consume

(PECL parle >= 0.7.0)

Parle\RParser::consume — Consume the data for processing

Beschreibung

public Parle\RParser::consume ( string $data , Parle\RLexer $rlexer ) : void

Consume the data for parsing.

Parameter-Liste

data

Data to be parsed.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Dump the grammar

  • « Parle\RParser::consume
  • Parle\RParser::errorInfo »
  • PHP Manual
  • Parle\RParser
  • Dump the grammar

Parle\RParser::dump

(PECL parle >= 0.7.0)

Parle\RParser::dump — Dump the grammar

Beschreibung

public Parle\RParser::dump ( ) : void

Dump the current grammar to stdout.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Retrieve the error information

  • « Parle\RParser::dump
  • Parle\RParser::left »
  • PHP Manual
  • Parle\RParser
  • Retrieve the error information

Parle\RParser::errorInfo

(PECL parle >= 0.7.0)

Parle\RParser::errorInfo — Retrieve the error information

Beschreibung

public Parle\RParser::errorInfo ( ) : Parle\ErrorInfo

Retrieve the error information in case Parle\RParser::action() returned the error action.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an instance of Parle\ErrorInfo.


Declare a token with left-associativity

  • « Parle\RParser::errorInfo
  • Parle\RParser::nonassoc »
  • PHP Manual
  • Parle\RParser
  • Declare a token with left-associativity

Parle\RParser::left

(PECL parle >= 0.7.0)

Parle\RParser::left — Declare a token with left-associativity

Beschreibung

public Parle\RParser::left ( string $tok ) : void

Declare a terminal with left associativity.

Parameter-Liste

tok

Token name.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Declare a token with no associativity

  • « Parle\RParser::left
  • Parle\RParser::precedence »
  • PHP Manual
  • Parle\RParser
  • Declare a token with no associativity

Parle\RParser::nonassoc

(PECL parle >= 0.7.0)

Parle\RParser::nonassoc — Declare a token with no associativity

Beschreibung

public Parle\RParser::nonassoc ( string $tok ) : void

Declare a terminal, that cannot appear more than once in the row.

Parameter-Liste

tok

Token name.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Declare a precedence rule

  • « Parle\RParser::nonassoc
  • Parle\RParser::push »
  • PHP Manual
  • Parle\RParser
  • Declare a precedence rule

Parle\RParser::precedence

(PECL parle >= 0.7.0)

Parle\RParser::precedence — Declare a precedence rule

Beschreibung

public Parle\RParser::precedence ( string $tok ) : void

Declares a precedence rule for a fictious terminal symbol. This rule can be later used in the specific grammar rules.

Parameter-Liste

tok

Token name.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Add a grammar rule

  • « Parle\RParser::precedence
  • Parle\RParser::reset »
  • PHP Manual
  • Parle\RParser
  • Add a grammar rule

Parle\RParser::push

(PECL parle >= 0.7.0)

Parle\RParser::push — Add a grammar rule

Beschreibung

public Parle\RParser::push ( string $name , string $rule ) : int

Push a grammar rule. The production id returned can be used later in the parsing process to identify the rule matched.

Parameter-Liste

name

Rule name.

rule

The rule to be added. The syntax is Bison compatible.

Rückgabewerte

Returns Integer representing the rule index.


Reset parser state

  • « Parle\RParser::push
  • Parle\RParser::right »
  • PHP Manual
  • Parle\RParser
  • Reset parser state

Parle\RParser::reset

(PECL parle >= 0.7.1)

Parle\RParser::reset — Reset parser state

Beschreibung

public Parle\RParser::reset ( int $tokenId = ? ) : void

Reset parser state using the given token id.

Parameter-Liste

tokenId

Token id.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Declare a token with right-associativity

  • « Parle\RParser::reset
  • Parle\RParser::sigil »
  • PHP Manual
  • Parle\RParser
  • Declare a token with right-associativity

Parle\RParser::right

(PECL parle >= 0.7.0)

Parle\RParser::right — Declare a token with right-associativity

Beschreibung

public Parle\RParser::right ( string $tok ) : void

Declare a terminal with right associativity.

Parameter-Liste

tok

Token name.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Retrieve a matching part of a rule

  • « Parle\RParser::right
  • Parle\RParser::token »
  • PHP Manual
  • Parle\RParser
  • Retrieve a matching part of a rule

Parle\RParser::sigil

(PECL parle >= 0.7.0)

Parle\RParser::sigil — Retrieve a matching part of a rule

Beschreibung

public Parle\RParser::sigil ( int $idx = ? ) : string

Retrieve a part of the match by a rule. This method is equivalent to the pseudo variable functionality in Bison.

Parameter-Liste

idx

Match index, zero based.

Rückgabewerte

Returns a String with the matched part.


Declare a token

  • « Parle\RParser::sigil
  • Parle\RParser::tokenId »
  • PHP Manual
  • Parle\RParser
  • Declare a token

Parle\RParser::token

(PECL parle >= 0.7.0)

Parle\RParser::token — Declare a token

Beschreibung

public Parle\RParser::token ( string $tok ) : void

Declare a terminal to be used in the grammar.

Parameter-Liste

tok

Token name.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Get token id

  • « Parle\RParser::token
  • Parle\RParser::trace »
  • PHP Manual
  • Parle\RParser
  • Get token id

Parle\RParser::tokenId

(PECL parle >= 0.7.0)

Parle\RParser::tokenId — Get token id

Beschreibung

public Parle\RParser::tokenId ( string $tok ) : int

Retrieve the id of the named token.

Parameter-Liste

tok

Name of the token as used in Parle\RParser::token().

Rückgabewerte

Returns Integer representing the token id.


Trace the parser operation

  • « Parle\RParser::tokenId
  • Parle\RParser::validate »
  • PHP Manual
  • Parle\RParser
  • Trace the parser operation

Parle\RParser::trace

(PECL parle >= 0.7.0)

Parle\RParser::trace — Trace the parser operation

Beschreibung

public Parle\RParser::trace ( ) : string

Retrieve the current parser operation description. This can be especially useful to study the parser and to optimize the grammar.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a String with the trace information.


Validate input

  • « Parle\RParser::trace
  • Parle\Stack »
  • PHP Manual
  • Parle\RParser
  • Validate input

Parle\RParser::validate

(PECL parle >= 0.7.0)

Parle\RParser::validate — Validate input

Beschreibung

public Parle\RParser::validate ( string $data , Parle\RLexer $lexer ) : bool

Validate an input string. The string is parsed internally, thus this method is useful for the quick input validation.

Parameter-Liste

data

String to be validated.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Rückgabewerte

Returns Boolean whitnessing whether the input chimes or not with the defined rules.


The Parle\Stack class

(PECL parle >= 0.7.0)

Einführung

Parle\Stack is a LIFO stack. The elements are inserted and removed only from one end.

Klassenbeschreibung

Parle\Stack {
/* Eigenschaften */
public bool $empty = true ;
public int $size = 0 ;
public mixed $top ;
/* Methoden */
public pop ( ) : void
public push ( mixed $item ) : void
}

Eigenschaften

empty

Whether the stack is empty, readonly.

size

Stack size, readonly.

top

Element on the top of the stack.

Inhaltsverzeichnis

  • Parle\Stack::pop — Pop an item from the stack
  • Parle\Stack::push — Push an item into the stack


Pop an item from the stack

  • « Parle\Stack
  • Parle\Stack::push »
  • PHP Manual
  • Parle\Stack
  • Pop an item from the stack

Parle\Stack::pop

(PECL parle >= 0.5.1)

Parle\Stack::pop — Pop an item from the stack

Beschreibung

public Parle\Stack::pop ( ) : void

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.


Push an item into the stack

  • « Parle\Stack::pop
  • Parle\Token »
  • PHP Manual
  • Parle\Stack
  • Push an item into the stack

Parle\Stack::push

(PECL parle >= 0.5.1)

Parle\Stack::push — Push an item into the stack

Beschreibung

public Parle\Stack::push ( mixed $item ) : void

Parameter-Liste

item

Variable to be pushed.

Rückgabewerte

Es wird kein Wert zurückgegeben.


The Parle\Token class

(PECL parle >= 0.5.2)

Einführung

This class represents a token. Lexer returns instances of this class.

Klassenbeschreibung

Parle\Token {
/* Constants */
const int EOI = 0 ;
const int UNKNOWN = -1 ;
const int SKIP = -2 ;
/* Eigenschaften */
public int $id ;
public string $value ;
/* Methoden */
}

Eigenschaften

id

Token id.

value

Token value.

Vordefinierte Konstanten

Parle\Token::EOI

End of input token id.

Parle\Token::UNKNOWN

Unknown token id.

Parle\Token::SKIP

Skip token id.


The Parle\ErrorInfo class

(PECL parle >= 0.5.2)

Einführung

The class represents detailed error information as supplied by Parle\Parser::errorInfo()

Klassenbeschreibung

Parle\ErrorInfo {
/* Eigenschaften */
public int $id ;
public int $position ;
public mixed $token ;
/* Methoden */
}

Eigenschaften

id

Error id.

position

Position in the input, where the error occurred.

token

If applicable - the Parle\Token related to the error, otherwise null.


The Parle\LexerException class

(PECL parle >= 0.5.1)

Einführung

Klassenbeschreibung

Parle\LexerException extends Exception implements Throwable {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


The Parle\ParserException class

(PECL parle >= 0.5.1)

Einführung

Klassenbeschreibung

Parle\ParserException extends Exception implements Throwable {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


Reguläre Ausdrücke (Perl-kompatibel)

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • PCRE-Suchmuster
    • PCRE regex syntax — Pattern Syntax
    • Mögliche Modifikatoren in RegEx-Suchmustern — Suchmuster-Modifikatoren
    • Differences From Perl — Perl Differences
    • Differences from POSIX regex
  • PCRE-Funktionen
    • preg_filter — Sucht und ersetzt mit regulären Ausdrücken
    • preg_grep — Liefert Array-Elemente, die auf ein Suchmuster passen
    • preg_last_error_msg — Returns the error message of the last PCRE regex execution
    • preg_last_error — Liefert den Fehlercode der letzten PCRE RegEx-Auswertung
    • preg_match_all — Führt eine umfassende Suche nach Übereinstimmungen mit regulärem Ausdruck durch
    • preg_match — Führt eine Suche mit einem regulären Ausdruck durch
    • preg_quote — Maskiert Zeichen regulärer Ausdrücke
    • preg_replace_callback_array — Perform a regular expression search and replace using callbacks
    • preg_replace_callback — Sucht und ersetzt mit regulären Ausdrücken unter Verwendung eines Callbacks
    • preg_replace — Sucht und ersetzt mit regulären Ausdrücken
    • preg_split — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks


Einführung

Die Syntax für Suchmuster, die in diesen Funktionen verwendet werden, ist Perl sehr ähnlich. Der Ausdruck muss zwischen Begrenzungszeichen, z.B. Schrägstrichen (/), stehen. Als Begrenzungszeichen darf jedes Zeichen verwendet werden, das nicht alphanumerisch ist und das, mit Ausnahme des Backslashs (\) und des Nullzeichens, kein ASCII-Leerzeichen ist. Falls das Begrenzungszeichen im Ausdruck selbst verwendet wird, muss es mit dem Backslash als Escape-Zeichen maskiert werden. Sie können auch dem Perl-Stil entsprechend (), {}, [] und <> als Begrenzung für Suchmuster verwenden. Für eine ausführliche Erklärung siehe Suchmuster-Syntax.

An die Schlussbegrenzung können verschiedene Modifikatoren angehängt werden, die das Suchergebnis beeinflussen. Siehe Modifikatoren für Suchmuster.

Bei Verwendung der POSIX-erweiterten Reguläre Ausdrücke Funktionen unterstützt PHP auch reguläre Ausdrücke mit POSIX-erweiterter Syntax.

Hinweis:

Diese Erweiterung unterhält pro Thread einen globalen Cache mit compilierten regulären Ausdrücken (bis zu 4096).

Warnung

Sie sollten sich über ein paar Einschränkungen von PCRE bewusst sein. Lesen Sie bitte » http://www.pcre.org/pcre.txt für weitere Informationen.

Die PCRE-Bibliothek ist ein Satz von Funktionen, der die Suche nach regulären Ausdrücken mit der, von wenigen Unterschieden (siehe unten) abgesehen, gleichen Syntax und Semantik wie Perl 5 realisiert. Die aktuelle Implementierung entspricht Perl 5.005.


Installation

Die PCRE-Erweiterung ist eine native PHP-Erweiterung und deshalb immer aktiviert. Standardmäßig wird diese Erweiterung unter Verwendung der mitgelieferten PCRE-Bibliothek kompiliert. Alternativ kann eine externe PCRE-Bibliothek verwendet werden, indem die Konfigurationsoption --with-pcre-regex=VERZEICHNIS übergeben wird, wobei VERZEICHNIS der Speicherort der Include- und Bibliotheks-Dateien von PCRE ist. Es wird empfohlen, PCRE 8.10 oder neuer zu verwenden. Ab PHP 7.3.0 wird PCRE2 benötigt.

Die Just-In-Time-Kompilation von PCRE ist standardmäßig aktiviert, was durch Angabe der Konfigurationsoption --without-pcre-jit von PHP 7.0.12 an deaktiviert werden kann.

Die Windowsversion von PHP enthält diese Erweiterung. Um diese Funktionen zu verwenden, müssen Sie keine zusätzlichen Erweiterungen aktivieren.

PCRE ist ein aktives Projekt und mit den Änderungen ändert sich auch die davon abhängige PHP-Funktionalität. Es ist möglich, dass bestimmte Teile der PHP-Dokumentation veraltet sind und die neuesten Fähigkeiten von PCRE nicht behandeln. Eine Liste der Änderungen gibt es in der » ChangeLog der PCRE-Bibliothek und im folgenden Verlauf der mitgelieferten PCRE-Bibliothek:

Aktualisierungsverlauf der mitgelieferten PCRE-Bibliothek
PHP-Version | Aktualisierte PCRE-Version | Bemerkung
7.4.12, 8.0.0 | 10.35 |
7.4.6 | 10.34 |
7.4.0 | 10.33 |
7.3.0 | 10.32 |
7.2.0 | 8.41 |
7.0.3 | 8.38 | Siehe CVE-2015-8383, CVE-2015-8386, CVE-2015-8387, CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-8394
7.0.0 | 8.37 | Siehe CVE-2015-2325, CVE-2015-2326


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

PCRE-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
pcre.backtrack_limit | "1000000" | PHP_INI_ALL | Steht ab PHP 5.2.0 zur Verfügung
pcre.recursion_limit | "100000" | PHP_INI_ALL | Steht ab PHP 5.2.0 zur Verfügung
pcre.jit | "1" | PHP_INI_ALL | Steht ab PHP 7.0.0 zur Verfügung
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

pcre.backtrack_limit int

PCREs Backtracking-Limit. Vor PHP 5.3.7 war der Standardwert 100000 (jetzt 1000000).

pcre.recursion_limit int

PCREs Rekursionslimit. Bitte beachten Sie, dass bei einem hohen Wert der gesamte verfügbare Prozess-Stack verwendet werden könnte und PHP schließlich (wenn es das vom Betriebssystem vorgegebene Limit für die Stackgröße erreicht) abstürzen könnte.

pcre.jit bool

Legt fest, ob der Just-in-Time-Compiler von PCRE verwendet wird.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

PREG-Konstanten
Konstanten | Beschreibung | Ab
PREG_PATTERN_ORDER | Sortiert die Ergebnisse so, dass $matches[0] ein Array von Übereinstimmungen mit dem ganzen Suchmuster ist, $matches[1] ein Array von Zeichenketten, die mit dem ersten geklammerten Teilsuchmuster übereinstimmen und so weiter. Dieses Flag wird nur bei preg_match_all() verwendet. |
PREG_SET_ORDER | Sortiert die Ergebnisse so, dass $matches[0] ein Array des ersten Satzes von Übereinstimmungen ist, $matches[1] ein Array des zweiten Satzes von Übereinstimmungen und so weiter. Dieses Flag wird nur bei preg_match_all() verwendet. |
PREG_OFFSET_CAPTURE | Siehe Beschreibung von PREG_SPLIT_OFFSET_CAPTURE. |
PREG_SPLIT_NO_EMPTY | Dieses Flag teilt der Funktion preg_split() mit, dass sie nur nicht-leere Teile zurückgeben soll. |
PREG_SPLIT_DELIM_CAPTURE | Dieses Flag teilt der Funktion preg_split() mit, dass sie auch die eingeklammerten Ausdrücke des Trennsymbol-Musters zurückgeben soll. |
PREG_SPLIT_OFFSET_CAPTURE | Wenn dieses Flag gesetzt ist, wird für jede gefundene Übereinstimmung auch der dazugehörige Versatz zurückgegeben. Beachten Sie, dass dies die Rückgabewerte in einem Array dahingehend ändert, dass jedes Element ein Array ist, das aus der übereinstimmenden Zeichenkette als erstem und deren Stelle im durchsuchten Text als zweitem Element besteht. Dieses Flag wird nur für preg_split() verwendet. |
PREG_UNMATCHED_AS_NULL | Dieses Flag teilt der Funktion preg_match() und preg_match_all() mit, dass nicht gefundene Teilsuchmuster in $matches als null-Werte enthalten sein sollen. Ohne dieses Flag werden nicht gefundene Teilsuchmuster als leere Zeichenketten angegeben, so als ob es leere Übereinstimmungen wären. Das Setzen dieses Flags erlaubt es zwischen diesen beiden Fällen zu unterscheiden. | 7.2.0
PREG_NO_ERROR | Dieses Flag wird von preg_last_error() zurückgegeben, falls kein Fehler aufgetreten ist. | 5.2.0
PREG_INTERNAL_ERROR | Dieses Flag wird von preg_last_error() zurückgegeben, falls ein interner PCRE-Fehler aufgetreten ist. | 5.2.0
PREG_BACKTRACK_LIMIT_ERROR | Dieses Flag wird von preg_last_error() zurückgegeben, falls das Limit der Zurückverfolgung (Backtracking) überschritten wurde. | 5.2.0
PREG_RECURSION_LIMIT_ERROR | Dieses Flag wird von preg_last_error() zurückgegeben, falls das Rekursionslimit überschritten wurde. | 5.2.0
PREG_BAD_UTF8_ERROR | Dieses Flag wird von preg_last_error() zurückgegeben, falls der letzte Fehler durch fehlerhafte UTF-8-Daten verursacht wurde (nur bei RegEx, die im UTF-8-Modus laufen). | 5.2.0
PREG_BAD_UTF8_OFFSET_ERROR | Dieses Flag wird von preg_last_error() zurückgegeben, falls sich der Versatz nicht mit dem Anfang eines gültigen UTF-8-Codepoints deckt (nur wenn die RegEx im UTF-8-Modus ausgeführt wird). | 5.3.0
PREG_JIT_STACKLIMIT_ERROR | Dieses Flag wird von preg_last_error() zurückgegeben, falls die letzte PCRE-Funktion wegen begrenzten Speichers im JIT-Stack fehlschlug. | 7.0.0
PCRE_VERSION | Die PCRE-Version und das Freigabedatum (z.B. "7.0 18-Dec-2006"). | 5.2.4


Beispiele

Beispiel #1 Beispiele gültiger Suchmuster

  • /<\/\w+>/
  • |(\d{3})-\d+|Sm
  • /^(?i)php[34]/
  • {^\s+(\s+)?$}

Beispiel #2 Beispiele ungültiger Suchmuster

  • /href='(.*)' - fehlender Begrenzer am Ende
  • /\w+\s*\w+/J - ungültiger Modifikator 'J'
  • 1-\d3-\d3-\d4| - fehlender Begrenzer am Anfang


PCRE-Suchmuster

Inhaltsverzeichnis

  • PCRE regex syntax
  • Mögliche Modifikatoren in RegEx-Suchmustern
  • Differences From Perl
  • Differences from POSIX regex


Pattern Syntax

Inhaltsverzeichnis

  • Introduction
  • Delimiters
  • Meta-characters
  • Escape sequences
  • Unicode character properties
  • Anchors
  • Dot
  • Character classes
  • Alternation
  • Internal option setting
  • Subpatterns
  • Repetition
  • Back references
  • Assertions
  • Once-only subpatterns
  • Conditional subpatterns
  • Comments
  • Recursive patterns
  • Performance


Introduction

The syntax and semantics of the regular expressions supported by PCRE are described below. Regular expressions are also described in the Perl documentation and in a number of other books, some of which have copious examples. Jeffrey Friedl's "Mastering Regular Expressions", published by O'Reilly (ISBN 1-56592-257-3), covers them in great detail. The description here is intended as reference documentation.

A regular expression is a pattern that is matched against a subject string from left to right. Most characters stand for themselves in a pattern, and match the corresponding characters in the subject. As a trivial example, the pattern The quick brown fox matches a portion of a subject string that is identical to itself.


Delimiters

When using the PCRE functions, it is required that the pattern is enclosed by delimiters. A delimiter can be any non-alphanumeric, non-backslash, non-whitespace character.

Often used delimiters are forward slashes (/), hash signs (#) and tildes (~). The following are all examples of valid delimited patterns.

/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%

It is also possible to use bracket style delimiters where the opening and closing brackets are the starting and ending delimiter, respectively. (), {}, [] and <> are all valid bracket style delimiter pairs.

(this [is] a (pattern))
{this [is] a (pattern)}
[this [is] a (pattern)]
<this [is] a (pattern)>
Bracket style delimiters do not need to be escaped when they are used as meta characters within the pattern, but as with other delimiters they must be escaped when they are used as literal characters.

If the delimiter needs to be matched inside the pattern it must be escaped using a backslash. If the delimiter appears often inside the pattern, it is a good idea to choose another delimiter in order to increase readability.

/http:\/\//
#http://#
The preg_quote() function may be used to escape a string for injection into a pattern and its optional second parameter may be used to specify the delimiter to be escaped.

You may add pattern modifiers after the ending delimiter. The following is an example of case-insensitive matching:

#[a-z]#i


Meta-characters

The power of regular expressions comes from the ability to include alternatives and repetitions in the pattern. These are encoded in the pattern by the use of meta-characters, which do not stand for themselves but instead are interpreted in some special way.

There are two different sets of meta-characters: those that are recognized anywhere in the pattern except within square brackets, and those that are recognized in square brackets. Outside square brackets, the meta-characters are as follows:

Meta-characters outside square brackets
Meta-character | Description
\ | general escape character with several uses
^ | assert start of subject (or line, in multiline mode)
$ | assert end of subject or before a terminating newline (or end of line, in multiline mode)
. | match any character except newline (by default)
[ | start character class definition
] | end character class definition
| | start of alternative branch
( | start subpattern
) | end subpattern
? | extends the meaning of (, also 0 or 1 quantifier, also makes greedy quantifiers lazy (see repetition)
* | 0 or more quantifier
+ | 1 or more quantifier
{ | start min/max quantifier
} | end min/max quantifier
Part of a pattern that is in square brackets is called a character class. In a character class the only meta-characters are:
Meta-characters inside square brackets (character classes)
Meta-character | Description
\ | general escape character
^ | negate the class, but only if the first character
- | indicates character range
The following sections describe the use of each of the meta-characters.


Escape sequences

The backslash character has several uses. Firstly, if it is followed by a non-alphanumeric character, it takes away any special meaning that character may have. This use of backslash as an escape character applies both inside and outside character classes.

For example, if you want to match a "*" character, you write "\*" in the pattern. This applies whether or not the following character would otherwise be interpreted as a meta-character, so it is always safe to precede a non-alphanumeric with "\" to specify that it stands for itself. In particular, if you want to match a backslash, you write "\\".

Hinweis:

Single and double quoted PHP strings have special meaning of backslash. Thus if \ has to be matched with a regular expression \\, then "\\\\" or '\\\\' must be used in PHP code.

If a pattern is compiled with the PCRE_EXTENDED option, whitespace in the pattern (other than in a character class) and characters between a "#" outside a character class and the next newline character are ignored. An escaping backslash can be used to include a whitespace or "#" character as part of the pattern.

A second use of backslash provides a way of encoding non-printing characters in patterns in a visible manner. There is no restriction on the appearance of non-printing characters, apart from the binary zero that terminates a pattern, but when a pattern is being prepared by text editing, it is usually easier to use one of the following escape sequences than the binary character it represents:

\a
alarm, that is, the BEL character (hex 07)
\cx
"control-x", where x is any character
\e
escape (hex 1B)
\f
formfeed (hex 0C)
\n
newline (hex 0A)
\p{xx}
a character with the xx property, see unicode properties for more info
\P{xx}
a character without the xx property, see unicode properties for more info
\r
carriage return (hex 0D)
\R
line break: matches \n, \r and \r\n
\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). In UTF-8 mode, "\x{...}" is allowed, where the contents of the braces is a string of hexadecimal digits. It is interpreted as a UTF-8 character whose code number is the given hexadecimal number. The original hexadecimal escape sequence, \xhh, matches a two-byte UTF-8 character if the value is greater than 127.

After "\0" up to two further octal digits are read. In both cases, if there are fewer than two digits, just those that are present are used. Thus the sequence "\0\x\07" specifies two binary zeros followed by a BEL character. Make sure you supply two digits after the initial zero if the character that follows is itself an octal digit.

The handling of a backslash followed by a digit other than 0 is complicated. Outside a character class, PCRE reads it and any following digits as a decimal number. If the number is less than 10, or if there have been at least that many previous capturing left parentheses in the expression, the entire sequence is taken as a back reference. A description of how this works is given later, following the discussion of parenthesized subpatterns.

Inside a character class, or if the decimal number is greater than 9 and there have not been that many capturing subpatterns, PCRE re-reads up to three octal digits following the backslash, and generates a single byte from the least significant 8 bits of the value. Any subsequent digits stand for themselves. For example:

\040
is another way of writing a space
\40
is the same, provided there are fewer than 40 previous capturing subpatterns
\7
is always a back reference
\11
might be a back reference, or another way of writing a tab
\011
is always a tab
\0113
is a tab followed by the character "3"
\113
is the character with octal code 113 (since there can be no more than 99 back references)
\377
is a byte consisting entirely of 1 bits
\81
is either a back reference, or a binary zero followed by the two characters "8" and "1"

Note that octal values of 100 or greater must not be introduced by a leading zero, because no more than three octal digits are ever read.

All the sequences that define a single byte value can be used both inside and outside character classes. In addition, inside a character class, the sequence "\b" is interpreted as the backspace character (hex 08). Outside a character class it has a different meaning (see below).

The third use of backslash is for specifying generic character types:

\d
any decimal digit
\D
any character that is not a decimal digit
\h
any horizontal whitespace character (since PHP 5.2.4)
\H
any character that is not a horizontal whitespace character (since PHP 5.2.4)
\s
any whitespace character
\S
any character that is not a whitespace character
\v
any vertical whitespace character (since PHP 5.2.4)
\V
any character that is not a vertical whitespace character (since PHP 5.2.4)
\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.

The "whitespace" characters are HT (9), LF (10), FF (12), CR (13), and space (32). However, if locale-specific matching is happening, characters with code points in the range 128-255 may also be considered as whitespace characters, for instance, NBSP (A0).

A "word" character is any letter or digit or the underscore character, that is, any character which can be part of a Perl "word". The definition of letters and digits is controlled by PCRE's character tables, and may vary if locale-specific matching is taking place. For example, in the "fr" (French) locale, some character codes greater than 128 are used for accented letters, and these are matched by \w.

These character type sequences can appear both inside and outside character classes. They each match one character of the appropriate type. If the current matching point is at the end of the subject string, all of them fail, since there is no character to match.

The fourth use of backslash is for certain simple assertions. An assertion specifies a condition that has to be met at a particular point in a match, without consuming any characters from the subject string. The use of subpatterns for more complicated assertions is described below. The backslashed assertions are

\b
word boundary
\B
not a word boundary
\A
start of subject (independent of multiline mode)
\Z
end of subject or newline at end (independent of multiline mode)
\z
end of subject (independent of multiline mode)
\G
first matching position in subject

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 in anchors ) in that they only ever match at the very start and end of the subject string, whatever options are set. They are not affected by the PCRE_MULTILINE or PCRE_DOLLAR_ENDONLY options. The difference between \Z and \z is that \Z matches before a newline that is the last character of the string as well as at the end of the string, whereas \z matches only at the end.

The \G assertion is true only when the current matching position is at the start point of the match, as specified by the offset argument of preg_match(). It differs from \A when the value of offset is non-zero.

\Q and \E can be used to ignore regexp metacharacters in the pattern. For example: \w+\Q.$.\E$ will match one or more word characters, followed by literals .$. and anchored at the end of the string.

\K can be used to reset the match start since PHP 5.2.4. For example, the pattern foo\Kbar matches "foobar", but reports that it has matched "bar". The use of \K does not interfere with the setting of captured substrings. For example, when the pattern (foo)\Kbar matches "foobar", the first substring is still set to "foo".


Unicode character properties

Since 5.1.0, three additional escape sequences to match generic character types are available when UTF-8 mode is selected. They are:

\p{xx}
a character with the xx property
\P{xx}
a character without the xx property
\X
an extended Unicode sequence

The property names represented by xx above are limited to the Unicode general category properties. Each character has exactly one such property, specified by a two-letter abbreviation. For compatibility with Perl, negation can be specified by including a circumflex between the opening brace and the property name. For example, \p{^Lu} is the same as \P{Lu}.

If only one letter is specified with \p or \P, it includes all the properties that start with that letter. In this case, in the absence of negation, the curly brackets in the escape sequence are optional; these two examples have the same effect:

\p{L}
\pL

Supported property codes
Property | Matches | Notes
C | Other |
Cc | Control |
Cf | Format |
Cn | Unassigned |
Co | Private use |
Cs | Surrogate |
L | Letter | Includes the following properties: Ll, Lm, Lo, Lt and Lu.
Ll | Lower case letter |
Lm | Modifier letter |
Lo | Other letter |
Lt | Title case letter |
Lu | Upper case letter |
M | Mark |
Mc | Spacing mark |
Me | Enclosing mark |
Mn | Non-spacing mark |
N | Number |
Nd | Decimal number |
Nl | Letter number |
No | Other number |
P | Punctuation |
Pc | Connector punctuation |
Pd | Dash punctuation |
Pe | Close punctuation |
Pf | Final punctuation |
Pi | Initial punctuation |
Po | Other punctuation |
Ps | Open punctuation |
S | Symbol |
Sc | Currency symbol |
Sk | Modifier symbol |
Sm | Mathematical symbol |
So | Other symbol |
Z | Separator |
Zl | Line separator |
Zp | Paragraph separator |
Zs | Space separator |

Extended properties such as InMusicalSymbols are not supported by PCRE.

Specifying case-insensitive (caseless) matching does not affect these escape sequences. For example, \p{Lu} always matches only upper case letters.

Sets of Unicode characters are defined as belonging to certain scripts. A character from one of these sets can be matched using a script name. For example:

  • \p{Greek}
  • \P{Han}

Those that are not part of an identified script are lumped together as Common. The current list of scripts is:

Supported scripts
Arabic | Armenian | Avestan | Balinese | Bamum
Batak | Bengali | Bopomofo | Brahmi | Braille
Buginese | Buhid | Canadian_Aboriginal | Carian | Chakma
Cham | Cherokee | Common | Coptic | Cuneiform
Cypriot | Cyrillic | Deseret | Devanagari | Egyptian_Hieroglyphs
Ethiopic | Georgian | Glagolitic | Gothic | Greek
Gujarati | Gurmukhi | Han | Hangul | Hanunoo
Hebrew | Hiragana | Imperial_Aramaic | Inherited | Inscriptional_Pahlavi
Inscriptional_Parthian | Javanese | Kaithi | Kannada | Katakana
Kayah_Li | Kharoshthi | Khmer | Lao | Latin
Lepcha | Limbu | Linear_B | Lisu | Lycian
Lydian | Malayalam | Mandaic | Meetei_Mayek | Meroitic_Cursive
Meroitic_Hieroglyphs | Miao | Mongolian | Myanmar | New_Tai_Lue
Nko | Ogham | Old_Italic | Old_Persian | Old_South_Arabian
Old_Turkic | Ol_Chiki | Oriya | Osmanya | Phags_Pa
Phoenician | Rejang | Runic | Samaritan | Saurashtra
Sharada | Shavian | Sinhala | Sora_Sompeng | Sundanese
Syloti_Nagri | Syriac | Tagalog | Tagbanwa | Tai_Le
Tai_Tham | Tai_Viet | Takri | Tamil | Telugu
Thaana | Thai | Tibetan | Tifinagh | Ugaritic
Vai | Yi |  |  |

The \X escape matches a Unicode extended grapheme cluster. An extended grapheme cluster is one or more Unicode characters that combine to form a single glyph. In effect, this can be thought of as the Unicode equivalent of . as it will match one composed character, regardless of how many individual characters are actually used to render it.

In versions of PCRE older than 8.32 (which corresponds to PHP versions before 5.4.14 when using the bundled PCRE library), \X is equivalent to (?>\PM\pM*). That is, it matches a character without the "mark" property, followed by zero or more characters with the "mark" property, and treats the sequence as an atomic group (see below). Characters with the "mark" property are typically accents that affect the preceding character.

Matching characters by Unicode property is not fast, because PCRE has to search a structure that contains data for over fifteen thousand characters. That is why the traditional escape sequences such as \d and \w do not use Unicode properties in PCRE.


Anchors

Outside a character class, in the default matching mode, the circumflex character (^) is an assertion which is true only if the current matching point is at the start of the subject string. Inside a character class, circumflex (^) has an entirely different meaning (see below).

Circumflex (^) need not be the first character of the pattern if a number of alternatives are involved, but it should be the first thing in each alternative in which it appears if the pattern is ever to match that branch. If all possible alternatives start with a circumflex (^), that is, if the pattern is constrained to match only at the start of the subject, it is said to be an "anchored" pattern. (There are also other constructs that can cause a pattern to be anchored.)

A dollar character ($) is an assertion which is true only if the current matching point is at the end of the subject string, or immediately before a newline character that is the last character in the string (by default). Dollar ($) need not be the last character of the pattern if a number of alternatives are involved, but it should be the last item in any branch in which it appears. Dollar has no special meaning in a character class.

The meaning of dollar can be changed so that it matches only at the very end of the string, by setting the PCRE_DOLLAR_ENDONLY option at compile or matching time. This does not affect the \Z assertion.

The meanings of the circumflex and dollar characters are changed if the PCRE_MULTILINE option is set. When this is the case, they match immediately after and immediately before an internal "\n" character, respectively, in addition to matching at the start and end of the subject string. For example, the pattern /^abc$/ matches the subject string "def\nabc" in multiline mode, but not otherwise. Consequently, patterns that are anchored in single line mode because all branches start with "^" are not anchored in multiline mode. The PCRE_DOLLAR_ENDONLY option is ignored if PCRE_MULTILINE is set.

Note that the sequences \A, \Z, and \z can be used to match the start and end of the subject in both modes, and if all branches of a pattern start with \A is it always anchored, whether PCRE_MULTILINE is set or not.


Dot

Outside a character class, a dot in the pattern matches any one character in the subject, including a non-printing character, but not (by default) newline. If the PCRE_DOTALL option is set, then dots match newlines as well. The handling of dot is entirely independent of the handling of circumflex and dollar, the only relationship being that they both involve newline characters. Dot has no special meaning in a character class.

\C can be used to match single byte. It makes sense in UTF-8 mode where full stop matches the whole character which can consist of multiple bytes.


Character classes

An opening square bracket introduces a character class, terminated by a closing square bracket. A closing square bracket on its own is not special. If a closing square bracket is required as a member of the class, it should be the first data character in the class (after an initial circumflex, if present) or escaped with a backslash.

A character class matches a single character in the subject; the character must be in the set of characters defined by the class, unless the first character in the class is a circumflex, in which case the subject character must not be in the set defined by the class. If a circumflex is actually required as a member of the class, ensure it is not the first character, or escape it with a backslash.

For example, the character class [aeiou] matches any lower case vowel, while [^aeiou] matches any character that is not a lower case vowel. Note that a circumflex is just a convenient notation for specifying the characters which are in the class by enumerating those that are not. It is not an assertion: it still consumes a character from the subject string, and fails if the current pointer is at the end of the string.

When case-insensitive (caseless) matching is set, any letters in a class represent both their upper case and lower case versions, so for example, an insensitive [aeiou] matches "A" as well as "a", and an insensitive [^aeiou] does not match "A", whereas a sensitive (caseful) version would.

The newline character is never treated in any special way in character classes, whatever the setting of the PCRE_DOTALL or PCRE_MULTILINE options is. A class such as [^a] will always match a newline.

The minus (hyphen) character can be used to specify a range of characters in a character class. For example, [d-m] matches any letter between d and m, inclusive. If a minus character is required in a class, it must be escaped with a backslash or appear in a position where it cannot be interpreted as indicating a range, typically as the first or last character in the class.

It is not possible to have the literal character "]" as the end character of a range. A pattern such as [W-]46] is interpreted as a class of two characters ("W" and "-") followed by a literal string "46]", so it would match "W46]" or "-46]". However, if the "]" is escaped with a backslash it is interpreted as the end of range, so [W-\]46] is interpreted as a single class containing a range followed by two separate characters. The octal or hexadecimal representation of "]" can also be used to end a range.

Ranges operate in ASCII collating sequence. They can also be used for characters specified numerically, for example [\000-\037]. If a range that includes letters is used when case-insensitive (caseless) matching is set, it matches the letters in either case. For example, [W-c] is equivalent to [][\^_`wxyzabc], matched case-insensitively, and if character tables for the "fr" locale are in use, [\xc8-\xcb] matches accented E characters in both cases.

The character types \d, \D, \s, \S, \w, and \W may also appear in a character class, and add the characters that they match to the class. For example, [\dABCDEF] matches any hexadecimal digit. A circumflex can conveniently be used with the upper case character types to specify a more restricted set of characters than the matching lower case type. For example, the class [^\W_] matches any letter or digit, but not underscore.

All non-alphanumeric characters other than \, -, ^ (at the start) and the terminating ] are non-special in character classes, but it does no harm if they are escaped. The pattern terminator is always special and must be escaped when used within an expression.

Perl supports the POSIX notation for character classes. This uses names enclosed by [: and :] within the enclosing square brackets. PCRE also supports this notation. For example, [01[:alpha:]%] matches "0", "1", any alphabetic character, or "%". The supported class names are:

Character classes
alnum | letters and digits
alpha | letters
ascii | character codes 0 - 127
blank | space or tab only
cntrl | control characters
digit | decimal digits (same as \d)
graph | printing characters, excluding space
lower | lower case letters
print | printing characters, including space
punct | printing characters, excluding letters and digits
space | white space (not quite the same as \s)
upper | upper case letters
word | "word" characters (same as \w)
xdigit | hexadecimal digits
The space characters are HT (9), LF (10), VT (11), FF (12), CR (13), and space (32). Notice that this list includes the VT character (code 11). This makes "space" different to \s, which does not include VT (for Perl compatibility).

The name word is a Perl extension, and blank is a GNU extension from Perl 5.8. Another Perl extension is negation, which is indicated by a ^ character after the colon. For example, [12[:^digit:]] matches "1", "2", or any non-digit.

In UTF-8 mode, characters with values greater than 128 do not match any of the POSIX character classes. As of PHP 5.3.0 and libpcre 8.10 some character classes are changed to use Unicode character properties, in which case the mentioned restriction does not apply. Refer to the » PCRE(3) manual for details.

Unicode character properties can appear inside a character class. They can not be part of a range. The minus (hyphen) character after a Unicode character class will match literally. Trying to end a range with a Unicode character property will result in a warning.


Alternation

Vertical bar characters are used to separate alternative patterns. For example, the pattern gilbert|sullivan matches either "gilbert" or "sullivan". Any number of alternatives may appear, and an empty alternative is permitted (matching the empty string). The matching process tries each alternative in turn, from left to right, and the first one that succeeds is used. If the alternatives are within a subpattern (defined below), "succeeds" means matching the rest of the main pattern as well as the alternative in the subpattern.


Internal option setting

The settings of PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, PCRE_UNGREEDY, PCRE_EXTRA, PCRE_EXTENDED and PCRE_DUPNAMES can be changed from within the pattern by a sequence of Perl option letters enclosed between "(?" and ")". The option letters are:

Internal option letters
i | for PCRE_CASELESS
m | for PCRE_MULTILINE
s | for PCRE_DOTALL
x | for PCRE_EXTENDED
U | for PCRE_UNGREEDY
X | for PCRE_EXTRA (no longer supported as of PHP 7.3.0)
J | for PCRE_INFO_JCHANGED

For example, (?im) sets case-insensitive (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.

When an option change occurs at top level (that is, not inside subpattern parentheses), the change applies to the remainder of the pattern that follows. So /ab(?i)c/ matches only "abc" and "abC".

If an option change occurs inside a subpattern, the effect is different. This is a change of behaviour in Perl 5.005. An option change inside a subpattern affects only that part of the subpattern that follows it, so (a(?i)b)c matches abc and aBc and no other strings (assuming PCRE_CASELESS is not used). By this means, options can be made to have different settings in different parts of the pattern. Any changes made in one alternative do carry on into subsequent branches within the same subpattern. For example, (a(?i)b|c) matches "ab", "aB", "c", and "C", even though when matching "C" the first branch is abandoned before the option setting. This is because the effects of option settings happen at compile time. There would be some very weird behaviour otherwise.

The PCRE-specific options PCRE_UNGREEDY and PCRE_EXTRA can be changed in the same way as the Perl-compatible options by using the characters U and X respectively. The (?X) flag setting is special in that it must always occur earlier in the pattern than any of the additional features it turns on, even when it is at top level. It is best put at the start.


Subpatterns

Subpatterns are delimited by parentheses (round brackets), which can be nested. Marking part of a pattern as a subpattern does two things:

  1. It localizes a set of alternatives. For example, the pattern cat(aract|erpillar|) matches one of the words "cat", "cataract", or "caterpillar". Without the parentheses, it would match "cataract", "erpillar" or the empty string.

  2. It sets up the subpattern as a capturing subpattern (as defined above). When the whole pattern matches, that portion of the subject string that matched the subpattern is passed back to the caller via the ovector argument of pcre_exec(). Opening parentheses are counted from left to right (starting from 1) to obtain the numbers of the capturing subpatterns.

For example, if the string "the red king" is matched against the pattern the ((red|white) (king|queen)) the captured substrings are "red king", "red", and "king", and are numbered 1, 2, and 3.

The fact that plain parentheses fulfill two functions is not always helpful. There are often times when a grouping subpattern is required without a capturing requirement. If an opening parenthesis is followed by "?:", the subpattern does not do any capturing, and is not counted when computing the number of any subsequent capturing subpatterns. For example, if the string "the white queen" is matched against the pattern the ((?:red|white) (king|queen)) the captured substrings are "white queen" and "queen", and are numbered 1 and 2. The maximum number of captured substrings is 65535. It may not be possible to compile such large patterns, however, depending on the configuration options of libpcre.

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".

It is possible to name a subpattern using the syntax (?P<name>pattern). This subpattern will then be indexed in the matches array by its normal numeric position and also by name. PHP 5.2.2 introduced two alternative syntaxes (?<name>pattern) and (?'name'pattern).

Sometimes it is necessary to have multiple matching, but alternating subgroups in a regular expression. Normally, each of these would be given their own backreference number even though only one of them would ever possibly match. To overcome this, the (?| syntax allows having duplicate numbers. Consider the following regex matched against the string Sunday:

(?:(Sat)ur|(Sun))day

Here Sun is stored in backreference 2, while backreference 1 is empty. Matching yields Sat in backreference 1 while backreference 2 does not exist. Changing the pattern to use the (?| fixes this problem:

(?|(Sat)ur|(Sun))day

Using this pattern, both Sun and Sat would be stored in backreference 1.


Repetition

Repetition is specified by quantifiers, which can follow any of the following items:

  • a single character, possibly escaped
  • the . metacharacter
  • a character class
  • a back reference (see next section)
  • a parenthesized subpattern (unless it is an assertion - see below)

The general repetition quantifier specifies a minimum and maximum number of permitted matches, by giving the two numbers in curly brackets (braces), separated by a comma. The numbers must be less than 65536, and the first must be less than or equal to the second. For example: z{2,4} matches "zz", "zzz", or "zzzz". A closing brace on its own is not a special character. If the second number is omitted, but the comma is present, there is no upper limit; if the second number and the comma are both omitted, the quantifier specifies an exact number of required matches. Thus [aeiou]{3,} matches at least 3 successive vowels, but may match many more, while \d{8} matches exactly 8 digits. An opening curly bracket that appears in a position where a quantifier is not allowed, or one that does not match the syntax of a quantifier, is taken as a literal character. For example, {,6} is not a quantifier, but a literal string of four characters.

The quantifier {0} is permitted, causing the expression to behave as if the previous item and the quantifier were not present.

For convenience (and historical compatibility) the three most common quantifiers have single-character abbreviations:

Single-character quantifiers
* | equivalent to {0,}
+ | equivalent to {1,}
? | equivalent to {0,1}

It is possible to construct infinite loops by following a subpattern that can match no characters with a quantifier that has no upper limit, for example: (a?)*

Earlier versions of Perl and PCRE used to give an error at compile time for such patterns. However, because there are cases where this can be useful, such patterns are now accepted, but if any repetition of the subpattern does in fact match no characters, the loop is forcibly broken.

By default, the quantifiers are "greedy", that is, they match as much as possible (up to the maximum number of permitted times), without causing the rest of the pattern to fail. The classic example of where this gives problems is in trying to match comments in C programs. These appear between the sequences /* and */ and within the sequence, individual * and / characters may appear. An attempt to match C comments by applying the pattern /\*.*\*/ to the string /* first comment */ 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 becomes lazy, and instead matches the minimum number of times possible, so the pattern /\*.*?\*/ does the right thing with the C comments. The meaning of the various quantifiers is not otherwise changed, just the preferred number of matches. Do not confuse this use of question mark with its use as a quantifier in its own right. Because it has two uses, it can sometimes appear doubled, as in \d??\d which matches one digit by preference, but can match two if that is the only way the rest of the pattern matches.

If the PCRE_UNGREEDY option is set (an option which is not available in Perl) then the quantifiers are not greedy by default, but individual ones can be made greedy by following them with a question mark. In other words, it inverts the default behaviour.

Quantifiers followed by + are "possessive". They eat as many characters as possible and don't return to match the rest of the pattern. Thus .*abc matches "aabc" but .*+abc doesn't because .*+ eats the whole string. Possessive quantifiers can be used to speed up processing.

When a parenthesized subpattern is quantified with a minimum repeat count that is greater than 1 or with a limited maximum, more store is required for the compiled pattern, in proportion to the size of the minimum or maximum.

If a pattern starts with .* or .{0,} and the PCRE_DOTALL option (equivalent to Perl's /s) is set, thus allowing the . to match newlines, then the pattern is implicitly anchored, because whatever follows will be tried against every character position in the subject string, so there is no point in retrying the overall match at any position after the first. PCRE treats such a pattern as though it were preceded by \A. In cases where it is known that the subject string contains no newlines, it is worth setting PCRE_DOTALL when the pattern begins with .* in order to obtain this optimization, or alternatively using ^ to indicate anchoring explicitly.

When a capturing subpattern is repeated, the value captured is the substring that matched the final iteration. For example, after (tweedle[dume]{3}\s*)+ has matched "tweedledum tweedledee" the value of the captured substring is "tweedledee". However, if there are nested capturing subpatterns, the corresponding captured values may have been set in previous iterations. For example, after /(a|(b))+/ matches "aba" the value of the second captured substring is "b".


Back references

Outside a character class, a backslash followed by a digit greater than 0 (and possibly further digits) is a back reference to a capturing subpattern earlier (i.e. to its left) in the pattern, provided there have been that many previous capturing left parentheses.

However, if the decimal number following the backslash is less than 10, it is always taken as a back reference, and causes an error only if there are not that many capturing left parentheses in the entire pattern. In other words, the parentheses that are referenced need not be to the left of the reference for numbers less than 10. A "forward back reference" can make sense when a repetition is involved and the subpattern to the right has participated in an earlier iteration. See the section entitled "Backslash" above for further details of the handling of digits following a backslash.

A back reference matches whatever actually matched the capturing subpattern in the current subject string, rather than anything matching the subpattern itself. So the pattern (sens|respons)e and \1ibility matches "sense and sensibility" and "response and responsibility", but not "sense and responsibility". If case-sensitive (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-insensitively (caselessly).

There may be more than one back reference to the same subpattern. If a subpattern has not actually been used in a particular match, then any back references to it always fail. For example, the pattern (a|(bc))\2 always fails if it starts to match "a" rather than "bc". Because there may be up to 99 back references, all digits following the backslash are taken as part of a potential back reference number. If the pattern continues with a digit character, then some delimiter must be used to terminate the back reference. If the PCRE_EXTENDED option is set, this can be whitespace. Otherwise an empty comment can be used.

A back reference that occurs inside the parentheses to which it refers fails when the subpattern is first used, so, for example, (a\1) never matches. However, such references can be useful inside repeated subpatterns. For example, the pattern (a|b\1)+ matches any number of "a"s and also "aba", "ababba" etc. At each iteration of the subpattern, the back reference matches the character string corresponding to the previous iteration. In order for this to work, the pattern must be such that the first iteration does not need to match the back reference. This can be done using alternation, as in the example above, or by a quantifier with a minimum of zero.

As of PHP 5.2.2, the \g escape sequence can be used for absolute and relative referencing of subpatterns. This escape sequence must be followed by an unsigned number or a negative number, optionally enclosed in braces. The sequences \1, \g1 and \g{1} are synonymous with one another. The use of this pattern with an unsigned number can help remove the ambiguity inherent when using digits following a backslash. The sequence helps to distinguish back references from octal characters and also makes it easier to have a back reference followed by a literal number, e.g. \g{2}1.

The use of the \g sequence with a negative number signifies a relative reference. For example, (foo)(bar)\g{-1} would match the sequence "foobarbar" and (foo)(bar)\g{-2} matches "foobarfoo". This can be useful in long patterns as an alternative to keeping track of the number of subpatterns in order to reference a specific previous subpattern.

Back references to the named subpatterns can be achieved by (?P=name) or, since PHP 5.2.2, also by \k<name> or \k'name'. Additionally PHP 5.2.4 added support for \k{name} and \g{name}, and PHP 5.2.7 for \g<name> and \g'name'.


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 in escape sequences. More complicated assertions are coded as subpatterns. There are two kinds: those that look ahead of the current position in the subject string, and those that look behind it.

An assertion subpattern is matched in the normal way, except that it does not cause the current matching position to be changed. Lookahead assertions start with (?= for positive assertions and (?! for negative assertions. For example, \w+(?=;) matches a word followed by a semicolon, but does not include the semicolon in the match, and foo(?!bar) matches any occurrence of "foo" that is not followed by "bar". Note that the apparently similar pattern (?!foo)bar does not find an occurrence of "bar" that is preceded by something other than "foo"; it finds any occurrence of "bar" whatsoever, because the assertion (?!foo) is always true when the next three characters are "bar". A lookbehind assertion is needed to achieve this effect.

Lookbehind assertions start with (?<= for positive assertions and (?<! for negative assertions. For example, (?<!foo)bar does find an occurrence of "bar" that is not preceded by "foo". The contents of a lookbehind assertion are restricted such that all the strings it matches must have a fixed length. However, if there are several alternatives, they do not all have to have the same fixed length. Thus (?<=bullock|donkey) is permitted, but (?<!dogs?|cats?) causes an error at compile time. Branches that match different length strings are permitted only at the top level of a lookbehind assertion. This is an extension compared with Perl 5.005, which requires all branches to match the same length of string. An assertion such as (?<=ab(c|de)) is not permitted, because its single top-level branch can match two different lengths, but it is acceptable if rewritten to use two top-level branches: (?<=abc|abde) The implementation of lookbehind assertions is, for each alternative, to temporarily move the current position back by the fixed width and then try to match. If there are insufficient characters before the current position, the match is deemed to fail. Lookbehinds in conjunction with once-only subpatterns can be particularly useful for matching at the ends of strings; an example is given at the end of the section on once-only subpatterns.

Several assertions (of any sort) may occur in succession. For example, (?<=\d{3})(?<!999)foo matches "foo" preceded by three digits that are not "999". Notice that each of the assertions is applied independently at the same point in the subject string. First there is a check that the previous three characters are all digits, then there is a check that the same three characters are not "999". This pattern does not match "foo" preceded by six characters, the first of which are digits and the last three of which are not "999". For example, it doesn't match "123abcfoo". A pattern to do that is (?<=\d{3}...)(?<!999)foo

This time the first assertion looks at the preceding six characters, checking that the first three are digits, and then the second assertion checks that the preceding three characters are not "999".

Assertions can be nested in any combination. For example, (?<=(?<!foo)bar)baz matches an occurrence of "baz" that is preceded by "bar" which in turn is not preceded by "foo", while (?<=\d{3}...(?<!999))foo is another pattern which matches "foo" preceded by three digits and any three characters that are not "999".

Assertion subpatterns are not capturing subpatterns, and may not be repeated, because it makes no sense to assert the same thing several times. If any kind of assertion contains capturing subpatterns within it, these are counted for the purposes of numbering the capturing subpatterns in the whole pattern. However, substring capturing is carried out only for positive assertions, because it does not make sense for negative assertions.

Assertions count towards the maximum of 200 parenthesized subpatterns.


Once-only subpatterns

With both maximizing and minimizing repetition, failure of what follows normally causes the repeated item to be re-evaluated to see if a different number of repeats allows the rest of the pattern to match. Sometimes it is useful to prevent this, either to change the nature of the match, or to cause it fail earlier than it otherwise might, when the author of the pattern knows there is no point in carrying on.

Consider, for example, the pattern \d+foo when applied to the subject line 123456bar

After matching all 6 digits and then failing to match "foo", the normal action of the matcher is to try again with only 5 digits matching the \d+ item, and then with 4, and so on, before ultimately failing. Once-only subpatterns provide the means for specifying that once a portion of the pattern has matched, it is not to be re-evaluated in this way, so the matcher would give up immediately on failing to match "foo" the first time. The notation is another kind of special parenthesis, starting with (?> as in this example: (?>\d+)bar

This kind of parenthesis "locks up" the part of the pattern it contains once it has matched, and a failure further into the pattern is prevented from backtracking into it. Backtracking past it to previous items, however, works as normal.

An alternative description is that a subpattern of this type matches the string of characters that an identical standalone pattern would match, if anchored at the current point in the subject string.

Once-only subpatterns are not capturing subpatterns. Simple cases such as the above example can be thought of as a maximizing repeat that must swallow everything it can. So, while both \d+ and \d+? are prepared to adjust the number of digits they match in order to make the rest of the pattern match, (?>\d+) can only match an entire sequence of digits.

This construction can of course contain arbitrarily complicated subpatterns, and it can be nested.

Once-only subpatterns can be used in conjunction with lookbehind assertions to specify efficient matching at the end of the subject string. Consider a simple pattern such as abcd$ when applied to a long string which does not match. Because matching proceeds from left to right, PCRE will look for each "a" in the subject and then see if what follows matches the rest of the pattern. If the pattern is specified as ^.*abcd$ then the initial .* matches the entire string at first, but when this fails (because there is no following "a"), it backtracks to match all but the last character, then all but the last two characters, and so on. Once again the search for "a" covers the entire string, from right to left, so we are no better off. However, if the pattern is written as ^(?>.*)(?<=abcd) then there can be no backtracking for the .* item; it can match only the entire string. The subsequent lookbehind assertion does a single test on the last four characters. If it fails, the match fails immediately. For long strings, this approach makes a significant difference to the processing time.

When a pattern contains an unlimited repeat inside a subpattern that can itself be repeated an unlimited number of times, the use of a once-only subpattern is the only way to avoid some failing matches taking a very long time indeed. The pattern (\D+|<\d+>)*[!?] matches an unlimited number of substrings that either consist of non-digits, or digits enclosed in <>, followed by either ! or ?. When it matches, it runs quickly. However, if it is applied to aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa it takes a long time before reporting failure. This is because the string can be divided between the two repeats in a large number of ways, and all have to be tried. (The example used [!?] rather than a single character at the end, because both PCRE and Perl have an optimization that allows for fast failure when a single character is used. They remember the last single character that is required for a match, and fail early if it is not present in the string.) If the pattern is changed to ((?>\D+)|<\d+>)*[!?] sequences of non-digits cannot be broken, and failure happens quickly.


Conditional subpatterns

It is possible to cause the matching process to obey a subpattern conditionally or to choose between two alternative subpatterns, depending on the result of an assertion, or whether a previous capturing subpattern matched or not. The two possible forms of conditional subpattern are

(?(condition)yes-pattern)
(?(condition)yes-pattern|no-pattern)

If the condition is satisfied, the yes-pattern is used; otherwise the no-pattern (if present) is used. If there are more than two alternatives in the subpattern, a compile-time error occurs.

There are two kinds of condition. If the text between the parentheses consists of a sequence of digits, then the condition is satisfied if the capturing subpattern of that number has previously matched. Consider the following pattern, which contains non-significant white space to make it more readable (assume the PCRE_EXTENDED option) and to divide it into three parts for ease of discussion:

( \( )?    [^()]+    (?(1) \) )

The first part matches an optional opening parenthesis, and if that character is present, sets it as the first captured substring. The second part matches one or more characters that are not parentheses. The third part is a conditional subpattern that tests whether the first set of parentheses matched or not. If they did, that is, if subject started with an opening parenthesis, the condition is true, and so the yes-pattern is executed and a closing parenthesis is required. Otherwise, since no-pattern is not present, the subpattern matches nothing. In other words, this pattern matches a sequence of non-parentheses, optionally enclosed in parentheses.

If the condition is the string (R), it is satisfied if a recursive call to the pattern or subpattern has been made. At "top level", the condition is false.

If the condition is not a sequence of digits or (R), it must be an assertion. This may be a positive or negative lookahead or lookbehind assertion. Consider this pattern, again containing non-significant white space, and with the two alternatives on the second line:

(?(?=[^a-z]*[a-z])
\d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} )

The condition is a positive lookahead assertion that matches an optional sequence of non-letters followed by a letter. In other words, it tests for the presence of at least one letter in the subject. If a letter is found, the subject is matched against the first alternative; otherwise it is matched against the second. This pattern matches strings in one of the two forms dd-aaa-dd or dd-dd-dd, where aaa are letters and dd are digits.


Comments

The sequence (?# marks the start of a comment which continues up to the next closing parenthesis. Nested parentheses are not permitted. The characters that make up a comment play no part in the pattern matching at all.

If the PCRE_EXTENDED option is set, an unescaped # character outside a character class introduces a comment that continues up to the next newline character in the pattern.


Recursive patterns

Consider the problem of matching a string in parentheses, allowing for unlimited nested parentheses. Without the use of recursion, the best that can be done is to use a pattern that matches up to some fixed depth of nesting. It is not possible to handle an arbitrary nesting depth. Perl 5.6 has provided an experimental facility that allows regular expressions to recurse (among other things). The special item (?R) is provided for the specific case of recursion. This PCRE pattern solves the parentheses problem (assume the PCRE_EXTENDED option is set so that white space is ignored): \( ( (?>[^()]+) | (?R) )* \)

First it matches an opening parenthesis. Then it matches any number of substrings which can either be a sequence of non-parentheses, or a recursive match of the pattern itself (i.e. a correctly parenthesized substring). Finally there is a closing parenthesis.

This particular example pattern contains nested unlimited repeats, and so the use of a once-only subpattern for matching strings of non-parentheses is important when applying the pattern to strings that do not match. For example, when it is applied to (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() it yields "no match" quickly. However, if a once-only subpattern is not used, the match runs for a very long time indeed because there are so many different ways the + and * repeats can carve up the subject, and all have to be tested before failure can be reported.

The values set for any capturing subpatterns are those from the outermost level of the recursion at which the subpattern value is set. If the pattern above is matched against (ab(cd)ef) the value for the capturing parentheses is "ef", which is the last value taken on at the top level. If additional parentheses are added, giving \( ( ( (?>[^()]+) | (?R) )* ) \) then the string they capture is "ab(cd)ef", the contents of the top level parentheses. If there are more than 15 capturing parentheses in a pattern, PCRE has to obtain extra memory to store data during a recursion, which it does by using pcre_malloc, freeing it via pcre_free afterwards. If no memory can be obtained, it saves data for the first 15 capturing parentheses only, as there is no way to give an out-of-memory error from within a recursion.

(?1), (?2) and so on can be used for recursive subpatterns too. It is also possible to use named subpatterns: (?P>name) or (?&name).

If the syntax for a recursive subpattern reference (either by number or by name) is used outside the parentheses to which it refers, it operates like a subroutine in a programming language. An earlier example pointed out that the pattern (sens|respons)e and \1ibility matches "sense and sensibility" and "response and responsibility", but not "sense and responsibility". If instead the pattern (sens|respons)e and (?1)ibility is used, it does match "sense and responsibility" as well as the other two strings. Such references must, however, follow the subpattern to which they refer.

The maximum length of a subject string is the largest positive number that an integer variable can hold. However, PCRE uses recursion to handle subpatterns and indefinite repetition. This means that the available stack space may limit the size of a subject string that can be processed by certain patterns.


Performance

Certain items that may appear in patterns are more efficient than others. It is more efficient to use a character class like [aeiou] than a set of alternatives such as (a|e|i|o|u). In general, the simplest construction that provides the required behaviour is usually the most efficient. Jeffrey Friedl's book contains a lot of discussion about optimizing regular expressions for efficient performance.

When a pattern begins with .* and the PCRE_DOTALL option is set, the pattern is implicitly anchored by PCRE, since it can match only at the start of a subject string. However, if PCRE_DOTALL is not set, PCRE cannot make this optimization, because the . metacharacter does not then match a newline, and if the subject string contains newlines, the pattern may match from the character immediately following one of them instead of from the very start. For example, the pattern (.*) second matches the subject "first\nand second" (where \n stands for a newline character) with the first captured substring being "and". In order to do this, PCRE has to retry the match starting after every newline in the subject.

If you are using such a pattern with subject strings that do not contain newlines, the best performance is obtained by setting PCRE_DOTALL, or starting the pattern with ^.* to indicate explicit anchoring. That saves PCRE from having to scan along the subject looking for a newline to restart at.

Beware of patterns that contain nested indefinite repeats. These can take a long time to run when applied to a string that does not match. Consider the pattern fragment (a+)*

This can match "aaaa" in 33 different ways, and this number increases very rapidly as the string gets longer. (The * repeat can match 0, 1, 2, 3, or 4 times, and for each of those cases other than 0, the + repeats can match different numbers of times.) When the remainder of the pattern is such that the entire match is going to fail, PCRE has in principle to try every possible variation, and this can take an extremely long time.

An optimization catches some of the more simple cases such as (a+)*b where a literal character follows. Before embarking on the standard matching procedure, PCRE checks that there is a "b" later in the subject string, and if there is not, it fails the match immediately. However, when there is no following literal this optimization cannot be used. You can see the difference by comparing the behaviour of (a+)*\d with the pattern above. The former gives a failure almost instantly when applied to a whole line of "a" characters, whereas the latter takes an appreciable time with strings longer than about 20 characters.


Suchmuster-Modifikatoren

Die zurzeit möglichen PCRE-Modifikatoren sind unten aufgelistet. Die Bezeichnungen in Klammern beziehen sich auf die internen PCRE-Bezeichnungen für diese Modifikatoren. Leerzeichen und Zeilenumbrüche in Modifikatoren werden ignoriert. Andere Zeichen führen zu einem Fehler.

i (PCRE_CASELESS)
Wenn dieser Modifikator gesetzt ist, passen Buchstaben im Suchmuster sowohl auf groß- als auch auf kleingeschriebene Buchstaben.
m (PCRE_MULTILINE)
Standardmäßig behandelt PCRE eine zu durchsuchende Zeichenkette wie eine einzige Zeile von Zeichen (auch wenn sie tatsächlich mehrere Zeilenumbrüche enthält). Das Metazeichen für einen Zeilenanfang (^) passt nur auf den Anfang der Zeichenkette, das Metazeichen für ein Zeilenende ($) nur auf das Ende der Zeichenkette (falls der Modifikator D nicht gesetzt ist). Das ist genauso wie bei Perl. Wenn dieser Modifikator gesetzt ist, passen die Zeilenanfang- und Zeilenende-Konstrukte in der Zeichenkette sowohl direkt nach, bzw. vor einem Zeilenumbruch als auch auf deren Anfang und Ende. Das entspricht dem Perl-Modifikator /m. Falls die Zeichenkette keine Sequenz "\n" enthält, oder im Suchmuster kein ^ oder $ vorkommt, hat dieser Modifikator keine Wirkung.
s (PCRE_DOTALL)
Wenn dieser Modifikator gesetzt ist, passt das Metazeichen Punkt im Suchmuster auf alle Zeichen inklusive Zeilenumbrüche. Ohne diesen Modifikator sind Zeilenumbrüche ausgeschlossen. Dieser Modifikator entspricht dem Perl-Modifikator /s. Unabhängig davon, ob dieser Modifikator gesetzt ist, passt eine verneinende Zeichenklasse wie z.B. [^a] immer auf einen Zeilenumbruch.
x (PCRE_EXTENDED)
Wenn dieser Modifikator gesetzt ist, werden Leerräume im Suchmuster ignoriert, sofern sie nicht maskiert sind oder sich innerhalb einer Zeichenklasse befinden. Außerdem werden Zeichen, die außerhalb einer Zeichenklasse zwischen nicht maskierten # stehen, einschließlich dem nächsten Zeilenumbruch ignoriert. Das entspricht dem Perl-Modifikator /x und bietet die Möglichkeit, Kommentare in komplizierte Suchmuster einzufügen. Beachten Sie aber, dass dies nur für Datenzeichen gilt. Leerräume dürfen niemals innerhalb einer Folge spezieller Zeichen auftreten, zum Beispiel in der Folge (?(, die einen bedingten Teilausdruck einleitet.
e (PREG_REPLACE_EVAL)
Warnung

Dieses Feature ist seit PHP 5.5.0 DEPRECATED (veraltet) und seit PHP 7.0.0 ENTFERNT.

Wenn dieser veraltete Modifikator gesetzt ist, macht preg_replace() in der Ersetzungszeichenkette eine normale Ersetzung von Rückrefenzen, wertet sie als PHP-Code aus und verwendet das Ergebnis um damit die gesuchte Zeichenkette zu ersetzen. Einfache Anführungszeichen, doppelte Anführungszeichen, Backslashes (\) und NULL-Zeichen werden in den ersetzten Rückreferenzen mit einem Backslash maskiert.
Achtung

Bei jeder passenden Rückreferenz wird die Funktion addslashes() aufgerufen, bevor sie ersetzt wird. Wenn die Rückreferenz als Zeichenkette in Anführungszeichen verwendet wird, werden von daher maskierte Zeichen in Buchstabensymbole umgewandelt. Allerdings behalten maskierte Zeichen, die normalerweise nicht umgewandelt würden, ihre Backslashes. Das macht die Verwendung dieses Modifikators sehr kompliziert.

Achtung

Stellen Sie sicher, dass replacement gültigen PHP-Code erzeugt, weil sich PHP sonst über einen Parse Error in der Zeile beschwert, die den Aufruf von preg_replace() enthält.

Achtung

Von der Verwendung dieses Modifikators wird abgeraten, weil damit sehr leicht Sicherheitslücken zur Ausführung von Code von außen (Remote Code Execution) entstehen können. Um diese zu vermeiden, sollte stattdessen die Funktion preg_replace_callback() verwendet werden:

Wenn das obige Beispiel unter Verwendung von preg_replace() mit dem e Modifikator geschrieben worden wäre, könnte der Code durch Übergabe einer Zeichenkette wie z.B. <h1>{${eval($_GET[php_code])}}</h1> leicht ausgenutzt werden. Das gäbe Angreifern die Möglichkeit, beliebigen PHP-Code auszuführen und gäbe ihnen somit beinahe vollständigen Zugriff auf den Server.

<?php
$html = $_POST['html'];

// großgeschriebene Überschriften
$html = preg_replace_callback(
    '(<h([1-6])>(.*?)</h\1>)',
    function ($m) {
        return "<h$m[1]>" . strtoupper($m[2]) . "</h$m[1]>";
    },
    $html
);

Hinweis:

Dieser Modifikator wird nur von preg_replace() verwendet; von anderen PCRE-Funktionen wird er ignoriert.

A (PCRE_ANCHORED)
Wenn dieser Modifikator gesetzt ist, wird das Suchmuster "verankert", das bedeutet, dass es gezwungen wird, nur auf den Anfang der durchsuchten Zeichenkette zu passen. Diese Wirkung kann auch durch geeignete Konstrukte im Suchmuster selbst erreicht werden, was in Perl die einzige Möglichkeit ist, sie zu realisieren.
D (PCRE_DOLLAR_ENDONLY)
Wenn dieser Modifikator gesetzt ist, passt ein Dollar-Metazeichen im Suchmuster nur auf das Ende der durchsuchten Zeichenkette. Ohne diesen Modifikator passt ein Dollarzeichen auch direkt vor dem letzten Zeichen, falls es ein Zeilenumbruch ist (aber nicht vor anderen Zeilenumbrüchen). Wenn der Modifikator m gesetzt ist, wird dieser Modifikator ignoriert. Für diesen Modifikator gibt es in Perl keine Entsprechung.
S
Wenn ein Suchmuster mehrmals verwendet werden soll, lohnt es sich, mehr Zeit für dessen Analyse aufzubringen um die Suche zu optimieren. Wenn dieser Modifikator gesetzt ist, wird diese zusätzliche Analyse durchgeführt. Gegenwärtig ist die Untersuchung eines Suchmusters nur für nicht verankerte Suchmuster brauchbar, die am Anfang kein einzelnes fixiertes Zeichen haben.
U (PCRE_UNGREEDY)
Dieser Modifikator kehrt die Gier von Quantifikatoren um, sodass sie standardmäßig nicht gierig sind, aber gierig werden, wenn ihnen ein ? folgt. Das ist nicht mit Perl kompatibel. Es kann auch innerhalb des Suchmusters mit dem Modifikator (?U) oder durch ein Fragezeichen hinter dem Quantifikator (z.B. .*?) gesetzt werden.

Hinweis:

Im Ungreedy-Modus ist es nicht möglich, mehr als pcre.backtrack_limit Übereinstimmungen zu treffen.

X (PCRE_EXTRA)
Dieser Modifikator schaltet zusätzliche PCRE-Funktionalität ein, die nicht mit Perl kompatibel ist. Ein Backslash vor einem Buchstaben, der keine spezielle Bedeutung hat, verursacht eine Fehlermeldung und reserviert diese Kombinationen somit für künftige Erweiterungen. Standardmäßig wird ein Backslash vor einem Buchstaben, der keine spezielle Bedeutung hat, wie in Perl als Buchstabensymbol behandelt. Gegenwärtig werden von diesem Modifikator keine weiteren Eigenschaften kontrolliert.
J (PCRE_INFO_JCHANGED)
Die interne Option (?J) ändert die lokale Option PCRE_DUPNAMES. Erlaubt doppelte Namen für Teilsuchmuster. Von PHP 7.2.0 an wird der J-Modifikator ebenfalls unterstützt.
u (PCRE_UTF8)
Dieser Modifikator schaltet zusätzliche PCRE-Funktionalität ein, die nicht mit Perl kompatibel ist. Suchmuster und durchsuchte Zeichenketten werden als UTF-8 behandelt. Eine ungültige Zeichenkette bewirkt, dass die preg_*-Funktionen keine Übereinstimmungen finden. Ein ungültiges Suchmuster erzeugt einen Fehler der Stufe E_WARNING. UTF-8-Zeichenfolgen mit fünf oder sechs Oktetten werden seit PHP 5.3.4, bzw. PCRE 7.3 2007-08-28 als ungültig betrachtet; davor wurden sie als gültiges UTF-8 betrachtet.


Perl Differences

The differences described here are with respect to Perl 5.005.

  1. By default, a whitespace character is any character that the C library function isspace() recognizes, though it is possible to compile PCRE with alternative character type tables. Normally isspace() matches space, formfeed, newline, carriage return, horizontal tab, and vertical tab. Perl 5 no longer includes vertical tab in its set of whitespace characters. The \v escape that was in the Perl documentation for a long time was never in fact recognized. However, the character itself was treated as whitespace at least up to 5.002. In 5.004 and 5.005 it does not match \s.
  2. PCRE does not allow repeat quantifiers on lookahead assertions. Perl permits them, but they do not mean what you might think. For example, (?!a){3} does not assert that the next three characters are not "a". It just asserts that the next character is not "a" three times.
  3. Capturing subpatterns that occur inside negative lookahead assertions are counted, but their entries in the offsets vector are never set. Perl sets its numerical variables from any such patterns that are matched before the assertion fails to match something (thereby succeeding), but only if the negative lookahead assertion contains just one branch.
  4. Though binary zero characters are supported in the subject string, they are not allowed in a pattern string because it is passed as a normal C string, terminated by zero. The escape sequence "\x00" can be used in the pattern to represent a binary zero.
  5. The following Perl escape sequences are not supported: \l, \u, \L, \U. In fact these are implemented by Perl's general string-handling and are not part of its pattern matching engine.
  6. The Perl \G assertion is not supported as it is not relevant to single pattern matches.
  7. Fairly obviously, PCRE does not support the (?{code}) and (??{code}) construction. However, there is support for recursive patterns.
  8. There are at the time of writing some oddities in Perl 5.005_02 concerned with the settings of captured strings when part of a pattern is repeated. For example, matching "aba" against the pattern /^(a(b)?)+$/ sets $2 to the value "b", but matching "aabbaa" against /^(aa(bb)?)+$/ leaves $2 unset. However, if the pattern is changed to /^(aa(b(b))?)+$/ then $2 (and $3) get set. In Perl 5.004 $2 is set in both cases, and that is also true of PCRE. If in the future Perl changes to a consistent state that is different, PCRE may change to follow.
  9. Another as yet unresolved discrepancy is that in Perl 5.005_02 the pattern /^(a)?(?(1)a|b)+$/ matches the string "a", whereas in PCRE it does not. However, in both Perl and PCRE /^(a)?a/ matched against "a" leaves $1 unset.

  10. PCRE provides some extensions to the Perl regular expression facilities:

    1. Although lookbehind assertions must match fixed length strings, each alternative branch of a lookbehind assertion can match a different length of string. Perl 5.005 requires them all to have the same length.
    2. If PCRE_DOLLAR_ENDONLY is set and PCRE_MULTILINE is not set, the $ meta-character matches only at the very end of the string.
    3. If PCRE_EXTRA is set, a backslash followed by a letter with no special meaning is faulted.
    4. If PCRE_UNGREEDY is set, the greediness of the repetition quantifiers is inverted, that is, by default they are not greedy, but if followed by a question mark they are.


Differences from POSIX regex

As of PHP 5.3.0, the POSIX Regex extension is deprecated. There are a number of differences between POSIX regex and PCRE regex. This page lists the most notable ones that are necessary to know when converting to PCRE.

  1. The PCRE functions require that the pattern is enclosed by delimiters.
  2. Unlike POSIX, the PCRE extension does not have dedicated functions for case-insensitive matching. Instead, this is supported using the i (PCRE_CASELESS) pattern modifier. Other pattern modifiers are also available for changing the matching strategy.
  3. The POSIX functions find the longest of the leftmost match, but PCRE stops on the first valid match. If the string doesn't match at all it makes no difference, but if it matches it may have dramatic effects on both the resulting match and the matching speed. To illustrate this difference, consider the following example from "Mastering Regular Expressions" by Jeffrey Friedl. Using the pattern one(self)?(selfsufficient)? on the string oneselfsufficient with PCRE will result in matching oneself, but using POSIX the result will be the full string oneselfsufficient. Both (sub)strings match the original string, but POSIX requires that the longest be the result.
  4. The POSIX definition of a "character class" differs from that of PCRE. Simple bracket expressions to match a set of explicit characters are supported in the form of PCRE character classes but POSIX collating elements, character classes and character equivalents are not supported. Supplying an expression with a character class that both starts and ends with :, . or = characters to PCRE is interpreted as an attempt to use one of these unsupported features and causes a compilation error.

Function replacements
POSIX | PCRE
ereg_replace() | preg_replace()
ereg() | preg_match()
eregi_replace() | preg_replace()
eregi() | preg_match()
split() | preg_split()
spliti() | preg_split()
sql_regcase() | No equivalent


PCRE-Funktionen

Inhaltsverzeichnis

  • preg_filter — Sucht und ersetzt mit regulären Ausdrücken
  • preg_grep — Liefert Array-Elemente, die auf ein Suchmuster passen
  • preg_last_error_msg — Returns the error message of the last PCRE regex execution
  • preg_last_error — Liefert den Fehlercode der letzten PCRE RegEx-Auswertung
  • preg_match_all — Führt eine umfassende Suche nach Übereinstimmungen mit regulärem Ausdruck durch
  • preg_match — Führt eine Suche mit einem regulären Ausdruck durch
  • preg_quote — Maskiert Zeichen regulärer Ausdrücke
  • preg_replace_callback_array — Perform a regular expression search and replace using callbacks
  • preg_replace_callback — Sucht und ersetzt mit regulären Ausdrücken unter Verwendung eines Callbacks
  • preg_replace — Sucht und ersetzt mit regulären Ausdrücken
  • preg_split — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks


Sucht und ersetzt mit regulären Ausdrücken

  • « PCRE-Funktionen
  • preg_grep »
  • PHP Manual
  • PCRE-Funktionen
  • Sucht und ersetzt mit regulären Ausdrücken

preg_filter

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

preg_filter — Sucht und ersetzt mit regulären Ausdrücken

Beschreibung

preg_filter ( string|array $pattern , string|array $replacement , string|array $subject , int $limit = -1 , int &$count = null ) : string|array|null

Davon abgesehen, dass preg_filter() nur bei Übereinstimmungen die (möglicherweise umgewandelten) Zeichenketten zurückgibt, ist sie mit preg_replace() identisch. Details über die Funktionsweise dieser Funktion finden Sie in der preg_replace()-Dokumentation.

Rückgabewerte

Gibt ein Array zurück, falls subject ein Array ist, andernfalls eine Zeichenkette.

Falls keine Übereinstimmungen gefunden wurden oder ein Fehler auftrat, wird ein leeres Array zurückgegeben, wenn subject ein Array ist, andernfalls null.

Beispiele

Beispiel #1 Beispiel zum Vergleich von preg_filter() und preg_replace()

<?php
$zeichenkette = array('1', 'a', '2', 'b', '3', 'A', 'B', '4');
$suchmuster = array('/\d/', '/[a-z]/', '/[1a]/');
$ersatz = array('A:$0', 'B:$0', 'C:$0');

echo "preg_filter liefert\n";
print_r(preg_filter($suchmuster, $ersatz, $zeichenkette));

echo "preg_replace liefert\n";
print_r(preg_replace($suchmuster, $ersatz, $zeichenkette));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

preg_filter liefert
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [7] => A:4
)
preg_replace liefert
Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [5] => A
    [6] => B
    [7] => A:4
)

Siehe auch

  • PCRE-Suchmuster
  • preg_quote() - Maskiert Zeichen regulärer Ausdrücke
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
  • preg_replace_callback() - Sucht und ersetzt mit regulären Ausdrücken unter Verwendung eines Callbacks
  • preg_grep() - Liefert Array-Elemente, die auf ein Suchmuster passen
  • preg_last_error() - Liefert den Fehlercode der letzten PCRE RegEx-Auswertung


Liefert Array-Elemente, die auf ein Suchmuster passen

  • « preg_filter
  • preg_last_error_msg »
  • PHP Manual
  • PCRE-Funktionen
  • Liefert Array-Elemente, die auf ein Suchmuster passen

preg_grep

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_grep — Liefert Array-Elemente, die auf ein Suchmuster passen

Beschreibung

preg_grep ( string $pattern , array $array , int $flags = 0 ) : array|false

Gibt ein Array zurück, das aus den Elementen des array-Arrays besteht, die auf das angegebene Suchmuster pattern passen.

Parameter-Liste

pattern

Der Ausdruck, nach dem gesucht werden soll, als Zeichenkette

array

Das Eingabe-Array

flags

Falls auf PREG_GREP_INVERT gesetzt, gibt die Funktion die Elemente des Eingabe-Arrays zurück, die nicht auf das angegebene Suchmuster pattern passen.

Rückgabewerte

Gibt ein Array zurück, das mit den Schlüsseln des array-Arrays indiziert ist.

Beispiele

Beispiel #1 preg_grep()-Beispiel

<?php
// liefert alle Array-Elemente,
// die Fließkommazahlen enthalten
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
?>

Siehe auch

  • PCRE-Suchmuster
  • preg_quote() - Maskiert Zeichen regulärer Ausdrücke
  • preg_match_all() - Führt eine umfassende Suche nach Übereinstimmungen mit regulärem Ausdruck durch
  • preg_filter() - Sucht und ersetzt mit regulären Ausdrücken
  • preg_last_error() - Liefert den Fehlercode der letzten PCRE RegEx-Auswertung


Returns the error message of the last PCRE regex execution

  • « preg_grep
  • preg_last_error »
  • PHP Manual
  • PCRE-Funktionen
  • Returns the error message of the last PCRE regex execution

preg_last_error_msg

(PHP 8)

preg_last_error_msg — Returns the error message of the last PCRE regex execution

Beschreibung

preg_last_error_msg ( ) : string

Returns the error message of the last PCRE regex execution.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the error message on success, or "No error" if no error has occurred.

Beispiele

Beispiel #1 preg_last_error_msg() example

<?php

preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');

if (preg_last_error() !== PREG_NO_ERROR) {
    echo preg_last_error_msg();
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Backtrack limit exhausted

Siehe auch

  • preg_last_error() - Liefert den Fehlercode der letzten PCRE RegEx-Auswertung


Liefert den Fehlercode der letzten PCRE RegEx-Auswertung

  • « preg_last_error_msg
  • preg_match_all »
  • PHP Manual
  • PCRE-Funktionen
  • Liefert den Fehlercode der letzten PCRE RegEx-Auswertung

preg_last_error

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

preg_last_error — Liefert den Fehlercode der letzten PCRE RegEx-Auswertung

Beschreibung

preg_last_error ( ) : int

Liefert den Fehlercode der letzten PCRE RegEx-Auswertung.

Beispiel #1 preg_last_error()-Beispiel

<?php

preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');

if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    echo 'Das Backtrack-Limit wurde erreicht!';
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Das Backtrack-Limit wurde erreicht!

Rückgabewerte

Diese Funktion liefert eine der folgenden Konstanten:

  • PREG_NO_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_BACKTRACK_LIMIT_ERROR (siehe auch pcre.backtrack_limit)
  • PREG_RECURSION_LIMIT_ERROR (siehe auch pcre.recursion_limit)
  • PREG_BAD_UTF8_ERROR
  • PREG_BAD_UTF8_OFFSET_ERROR (ab PHP 5.3.0)
  • PREG_JIT_STACKLIMIT_ERROR (ab PHP 7.0.0)

Siehe auch

  • preg_last_error_msg() - Returns the error message of the last PCRE regex execution


Führt eine umfassende Suche nach Übereinstimmungen mit regulärem Ausdruck durch

  • « preg_last_error
  • preg_match »
  • PHP Manual
  • PCRE-Funktionen
  • Führt eine umfassende Suche nach Übereinstimmungen mit regulärem Ausdruck durch

preg_match_all

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_match_all — Führt eine umfassende Suche nach Übereinstimmungen mit regulärem Ausdruck durch

Beschreibung

preg_match_all ( string $pattern , string $subject , array &$matches = null , int $flags = 0 , int $offset = 0 ) : int|false|null

Durchsucht subject nach allen Übereinstimmungen mit dem in pattern angegebenen regulären Ausdruck und legt sie in der durch flags festgelegten Reihenfolge in matches ab.

Nachdem die erste Übereinstimmung gefunden wurde, wird die nachfolgende Suche jeweils am Ende der letzten Übereinstimmung fortgesetzt.

Parameter-Liste

pattern

Der Ausdruck, nach dem gesucht werden soll, als Zeichenkette.

subject

Die zu durchsuchende Zeichenkette.

matches

Ein mehrdimensionales Array mit allen gefundenen Übereinstimmungen, das den flags entsprechend sortiert ist.

flags

Kann eine Kombination folgender Flags sein (beachten Sie, dass es keinen Sinn hat, PREG_PATTERN_ORDER zusammen mit PREG_SET_ORDER zu verwenden):

PREG_PATTERN_ORDER

Ordnet die Ergebnisse so an, dass $matches[0] ein Array von Übereinstimmungen mit dem kompletten Suchmuster ist, $matches[1] ein Array von Zeichenketten, die auf das erste eingeklammerte Teilsuchmuster passen und so weiter.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>Beispiel: </b><div align=left>das ist ein Test</div>",
    $ausgabe, PREG_PATTERN_ORDER);
echo $ausgabe[0][0] . ", " . $ausgabe[0][1] . "\n";
echo $ausgabe[1][0] . ", " . $ausgabe[1][1] . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<b>Beispiel: </b>, <div align=left>das ist ein Test</div>
Beispiel: , das ist ein Test

Also enthält $ausgabe[0] ein Array von Zeichenketten, die auf das komplette Suchmuster passen und $ausgabe[1] ein Array von Zeichenketten, die sich zwischen Tags befinden.

Enthält das Suchmuster benannte Teilsuchmuster, dann enthält $matches zusätzlich Elemente mit dem Namen der Teilsuchmuster als Schlüssel.

Enthält das Suchmuster duplizierte benannte Teilsuchmuster, wird nur das letzte Teilsuchmuster in $matches[NAME] gespeichert.

<?php
preg_match_all(
    '/(?J)(?<match>foo)|(?<match>bar)/',
    'foo bar',
    $matches,
    PREG_PATTERN_ORDER
);
print_r($matches['match']);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] =>
    [1] => bar
)

PREG_SET_ORDER

Ordnet die Ergebnisse so an, dass $matches[0] ein Array aus dem ersten Satz von Übereinstimmungen ist, $matches[1] ein Array aus dem zweiten Satz von Übereinstimmungen und so weiter.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>Beispiel: </b><div align=\"left\">das ist ein Test</div>",
    $ausgabe, PREG_SET_ORDER);
echo $ausgabe[0][0] . ", " . $ausgabe[0][1] . "\n";
echo $ausgabe[1][0] . ", " . $ausgabe[1][1] . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<b>Beispiel: </b>, Beispiel:
<div align="left">das ist ein Test</div>, das ist ein Test

PREG_OFFSET_CAPTURE

Wenn dieses Flag gesetzt ist, wird mit jeder gefundenen Übereinstimmung der dazugehörige Versatz (in Bytes) in der Zeichenkette zurückgegeben. Beachten Sie, dass dies den Wert von matches in ein Array von Arrays ändert, in dem jedes Element ein Array ist, das aus der übereinstimmenden Zeichenkette als Element 0 und deren Stelle in subject als Element 1 besteht.

<?php
preg_match_all('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => foobarbaz
                    [1] => 0
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [0] => foo
                    [1] => 0
                )

        )

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

        )

    [3] => Array
        (
            [0] => Array
                (
                    [0] => baz
                    [1] => 6
                )

        )

)

PREG_UNMATCHED_AS_NULL

Wird dieses Flag angegeben werden nicht gefundene Teilsuchmuster als null geliefert; andernfalls werden sie als eine leere Zeichenkette (string) geliefert.

Falls kein Flag für die Anordnung angegeben wurde, wird PREG_PATTERN_ORDER angenommen.

offset

Normalerweise beginnt die Suche am Anfang der Zeichenkette. Der optionale Parameter offset kann verwendet werden, um eine andere Stelle in Bytes anzugeben, ab der gesucht werden soll.

Hinweis:

Die Verwendung von offset entspricht nicht der Übergabe von substr($zeichenkette, $versatz) an Stelle der Zeichenkette an preg_match_all(), weil pattern Angaben wie zum Beispiel ^, $ oder (?<=x) enthalten kann. Für Beispiele siehe preg_match().

Rückgabewerte

Gibt die Anzahl der Übereinstimmungen mit dem kompletten Suchmuster zurück (die auch Null sein kann) oder false, falls ein Fehler auftrat.

Changelog

Version | Beschreibung
7.2.0 | Die Konstante PREG_UNMATCHED_AS_NULL wird nun für den Parameter $flags unterstützt.

Beispiele

Beispiel #1 Alle Telefonnummern aus einem Text holen.

<?php
preg_match_all("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
                "Wählen Sie 555-1212 oder 1-800-555-1212", $telefon);
?>

Beispiel #2 Zusammengehörende HTML-Tags finden (gierig)

<?php
// Das \\2 ist ein Beispiel für Rückreferenzierung. Es teilt pcre mit, dass
// der reguläre Ausdruck auf den für das zweite Klammerpaar gefundenen
// Ausdruck selbst, also in diesem Fall auf den für ([\w]+) gefundenen
// Ausdruck passen muss.
// Der zusätzliche Backslash wird wegen der doppelten Anführungsstriche
// benötigt.
$html = "<b>fett gedruckter Text</b><a href=howdy.html>klick mich an</a>";

preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $treffer, PREG_SET_ORDER);

foreach ($treffer as $wert) {
  echo "gefunden: " . $wert[0] . "\n";
  echo "Teil 1: " . $wert[1] . "\n";
  echo "Teil 2: " . $wert[2] . "\n";
  echo "Teil 3: " . $wert[3] . "\n";
  echo "Teil 4: " . $wert[4] . "\n\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

gefunden: <b>fett gedruckter Text</b>
Teil 1: <b>
Teil 2: b
Teil 3: fett gedruckter Text
Teil 4: </b>

gefunden: <a href=howdy.html>klick mich an</a>
Teil 1: <a href=howdy.html>
Teil 2: a
Teil 3: klick mich an
Teil 4: </a>

Beispiel #3 Benannte Teilsuchmuster (named subpatterns)

<?php

$str = <<<FOO
a: 1
b: 2
c: 3
FOO;

preg_match_all('/(?P<name>\w+): (?P<zahl>\d+)/', $str, $treffer);

/* Folgendes funktioniert ab PHP 5.2.2 (PCRE 7.0) ebenfalls, für die
 * Rückwärtskompatibilität wird aber die vorherige Form empfohlen. */
// preg_match_all('/(?<name>\w+): (?<zahl>\d+)/', $str, $treffer);

print_r($treffer);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Array
        (
            [0] => a: 1
            [1] => b: 2
            [2] => c: 3
        )

    [name] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

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

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

)

Siehe auch

  • PCRE-Suchmuster
  • preg_quote() - Maskiert Zeichen regulärer Ausdrücke
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
  • preg_split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
  • preg_last_error() - Liefert den Fehlercode der letzten PCRE RegEx-Auswertung


Führt eine Suche mit einem regulären Ausdruck durch

  • « preg_match_all
  • preg_quote »
  • PHP Manual
  • PCRE-Funktionen
  • Führt eine Suche mit einem regulären Ausdruck durch

preg_match

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_match — Führt eine Suche mit einem regulären Ausdruck durch

Beschreibung

preg_match ( string $pattern , string $subject , array &$matches = null , int $flags = 0 , int $offset = 0 ) : int|false

Durchsucht subject nach Übereinstimmungen mit dem in pattern angegebenen regulären Ausdruck.

Parameter-Liste

pattern

Der Ausdruck, nach dem gesucht werden soll, als Zeichenkette.

subject

Die zu durchsuchende Zeichenkette.

matches

Falls der Parameter matches angegeben wurde, wird er mit den Suchergebnissen gefüllt. $matches[0] enthält dann den Text, der auf das komplette Suchmuster passt, $matches[1] den Text, der auf das erste eingeklammerte Teilsuchmuster passt und so weiter.

flags

flags kann eine Kombination der folgenden Flags sein:

PREG_OFFSET_CAPTURE

Wenn dieses Flag gesetzt ist, wird mit jeder gefundenen Übereinstimmung der dazugehörige Versatz in der Zeichenkette (in Bytes) zurückgegeben. Beachten Sie, dass dies den Wert von matches in ein Array ändert, in dem jedes Element ein Array ist, das aus der übereinstimmenden Zeichenkette als Element 0 und deren Stelle in subject als Element 1 besteht.

<?php
preg_match('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Array
        (
            [0] => foobarbaz
            [1] => 0
        )

    [1] => Array
        (
            [0] => foo
            [1] => 0
        )

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

    [3] => Array
        (
            [0] => baz
            [1] => 6
        )

)

PREG_UNMATCHED_AS_NULL

Wird dieses Flag angegeben werden nicht gefundene Teilsuchmuster als null geliefert; andernfalls werden sie als eine leere Zeichenkette (string) geliefert.

<?php
preg_match('/(a)(b)*(c)/', 'ac', $matches);
var_dump($matches);
preg_match('/(a)(b)*(c)/', 'ac', $matches, PREG_UNMATCHED_AS_NULL);
var_dump($matches);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  [0]=>
  string(2) "ac"
  [1]=>
  string(1) "a"
  [2]=>
  string(0) ""
  [3]=>
  string(1) "c"
}
array(4) {
  [0]=>
  string(2) "ac"
  [1]=>
  string(1) "a"
  [2]=>
  NULL
  [3]=>
  string(1) "c"
}

offset

Normalerweise beginnt die Suche am Anfang der Zeichenkette. Der optionale Parameter offset kann verwendet werden, um eine andere Stelle in Bytes anzugeben, ab der gesucht werden soll.

Hinweis:

Die Verwendung von offset entspricht nicht der Übergabe von substr($subject, $offset) an Stelle der zu Zeichenkette an preg_match(), weil pattern Angaben wie zum Beispiel ^, $ oder (?<=x) enthalten kann. Vergleiche:

<?php
$zeichenkette = "abcdef";
$suchmuster = '/^def/';
preg_match($suchmuster, $zeichenkette, $treffer, PREG_OFFSET_CAPTURE, 3);
print_r($treffer);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
)

während dieses Beispiel

<?php
$zeichenkette = "abcdef";
$suchmuster = '/^def/';
preg_match($suchmuster, substr($zeichenkette,3), $treffer, PREG_OFFSET_CAPTURE);
print_r($treffer);
?>

folgende Ausgabe erzeugt

Array
(
    [0] => Array
        (
            [0] => def
            [1] => 0
        )
)

Als Alternative um die Verwendung von substr() zu vermeiden, kann die \G-Assertion statt des ^-Ankers verwendet werden, oder statt dessen der A-Modifikator; beide funktionieren in Kombination mit dem Parameter offset.

Rückgabewerte

preg_match() gibt 1 zurück, falls eine Übereinstimmung zwischen pattern und subject gefunden wurde, 0, falls nicht oder false, falls ein Fehler auftrat.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Changelog

Version | Beschreibung
7.2.0 | Die Konstante PREG_UNMATCHED_AS_NULL wird nun für den Parameter $flags unterstützt.

Beispiele

Beispiel #1 Die Zeichenkette "php" finden

<?php
// Das "i" nach der Suchmuster-Begrenzung kennzeichnet eine Suche ohne
// Berücksichtigung von Groß- und Kleinschreibung
if (preg_match("/php/i", "PHP ist die Web-Scripting-Sprache der Wahl.")) {
   echo "Es wurde eine Übereinstimmung gefunden.";
} else {
   echo "Es wurde keine Übereinstimmung gefunden.";
}
?>

Beispiel #2 Die Zeichenkette "web" finden

<?php
// Das \b im Suchmuster kennzeichnet eine Wortgrenze, weshalb nur eine
// Übereinstimmung mit der einzelnen Zeichenkette "web" gefunden wird und
// nicht ein Teilwort in "webbing" oder "cobweb"
if (preg_match("/\bweb\b/i", "Für das Web ist PHP die Scripting-Sprache der Wahl.")) {
   echo "Es wurde eine Übereinstimmung gefunden.";
} else {
   echo "Es wurde keine Übereinstimmung gefunden.";
}

if (preg_match("/\bweb\b/i", "PHP ist die Web-Scripting-Sprache der Wahl.")) {
   echo "Es wurde eine Übereinstimmung gefunden.";
} else {
   echo "Es wurde keine Übereinstimmung gefunden.";
}
?>

Beispiel #3 Den Domänen-Namen aus einer URL holen

<?php
// den Hostnamen aus URL holen
preg_match('@^(?:http://)?([^/]+)@i',
    "http://www.php.net/index.html", $treffer);
$host = $treffer[1];

// die letzten beiden Segmente aus Hostnamen holen
preg_match('/[^.]+\.[^.]+$/', $host, $treffer);
echo "Der Domänen-Name lautet: {$treffer[0]}\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der Domänen-Name lautet: php.net

Beispiel #4 Benannte Teilsuchmuster (named subpatterns)

<?php

$str = 'foobar: 2008';

preg_match('/(?P<name>\w+): (?P<zahl>\d+)/', $str, $treffer);

/* Folgendes funktioniert ab PHP 5.2.2 (PCRE 7.0) ebenfalls, für die
 * Rückwärtskompatibilität wird aber die vorherige Form empfohlen. */
// preg_match('/(?<name>\w+): (?<zahl>\d+)/', $str, $treffer);

print_r($treffer);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => foobar: 2008
    [name] => foobar
    [1] => foobar
    [zahl] => 2008
    [2] => 2008
)

Anmerkungen

Tipp

Verwenden Sie nicht preg_match(), wenn Sie nur überprüfen wollen, ob eine Zeichenkette in einer anderen Zeichenkette enthalten ist. Verwenden Sie dafür stattdessen die Funktion strpos(), die das schneller erledigt.

Siehe auch

  • PCRE-Suchmuster
  • preg_quote() - Maskiert Zeichen regulärer Ausdrücke
  • preg_match_all() - Führt eine umfassende Suche nach Übereinstimmungen mit regulärem Ausdruck durch
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
  • preg_split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
  • preg_last_error() - Liefert den Fehlercode der letzten PCRE RegEx-Auswertung
  • preg_last_error_msg() - Returns the error message of the last PCRE regex execution


Maskiert Zeichen regulärer Ausdrücke

  • « preg_match
  • preg_replace_callback_array »
  • PHP Manual
  • PCRE-Funktionen
  • Maskiert Zeichen regulärer Ausdrücke

preg_quote

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_quote — Maskiert Zeichen regulärer Ausdrücke

Beschreibung

preg_quote ( string $str , string|null $delimiter = null ) : string

preg_quote() setzt einen Backslash vor jedes Zeichen von str, das zur Syntax eines regulären Ausdrucks gehört. Das ist nützlich, wenn Sie einen Text nach Übereinstimmungen mit einer zur Laufzeit erzeugten Zeichenkette durchsuchen müssen, die spezielle RegEx-Zeichen enthalten könnte.

Spezielle Zeichen regulärer Ausdrücke sind: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : - #

Es ist zu beachten, dass / kein besonderes RegEx-Zeichen ist.

Hinweis:

Es ist zu beachten, dass preg_quote() nicht dazu gedacht ist, auf die $replacement Zeichenkette(n) von preg_replace() etc. angewendet zu werden.

Parameter-Liste

str

Die zu durchsuchende Zeichenkette

delimiter

Falls der optionale delimiter angegeben wurde, wird dieser ebenfalls maskiert. Das ist nützlich, um den Begrenzer zu maskieren, der von den PCRE-Funktionen benötigt wird. Der / ist der am häufigsten verwendete Begrenzer.

Rückgabewerte

Gibt die maskierte Zeichenkette zurück.

Changelog

Version | Beschreibung
7.3.0 | Das Zeichen # wird nun maskiert.
7.2.0 | delimiter ist jetzt ein Nullable-Typ.

Beispiele

Beispiel #1 preg_quote()-Beispiel

<?php
$schluesselwoerter = '$40 für einen G3/400';
$schluesselwoerter = preg_quote($schluesselwoerter, '/');
echo $schluesselwoerter; // liefert \$40 für einen G3\/400
?>

Beispiel #2 Kursivdruck eines Wortes in einem Text

<?php
// In diesem Beispiel wird preg_quote($wort) verwendet, damit die
// Asterisks (*) für den regulären Ausdruck keine spezielle Bedeutung haben.

$text = "Dieses Buch ist *sehr* schwer zu finden.";
$wort = "*sehr*";
$text = preg_replace("/" . preg_quote($wort, '/') . "/",
                          "<i>" . $wort . "</i>",
                          $text);
?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • PCRE-Suchmuster
  • escapeshellcmd() - Maskiert Shell-Metazeichen


Perform a regular expression search and replace using callbacks

  • « preg_quote
  • preg_replace_callback »
  • PHP Manual
  • PCRE-Funktionen
  • Perform a regular expression search and replace using callbacks

preg_replace_callback_array

(PHP 7, PHP 8)

preg_replace_callback_array — Perform a regular expression search and replace using callbacks

Beschreibung

preg_replace_callback_array ( array $pattern , string|array $subject , int $limit = -1 , int &$count = null , int $flags = 0 ) : string|array|null

The behavior of this function is similar to preg_replace_callback(), except that callbacks are executed on a per-pattern basis.

Parameter-Liste

pattern

An associative array mapping patterns (keys) to callables (values).

subject

The string or an array with strings to search and replace.

limit

The maximum possible replacements for each pattern in each subject string. Defaults to -1 (no limit).

count

If specified, this variable will be filled with the number of replacements done.

flags

flags can be a combination of the PREG_OFFSET_CAPTURE and PREG_UNMATCHED_AS_NULL flags, which influence the format of the matches array. See the description in preg_match() for more details.

Rückgabewerte

preg_replace_callback_array() returns an array if the subject parameter is an array, or a string otherwise. On errors the return value is null

If matches are found, the new subject will be returned, otherwise subject will be returned unchanged.

Changelog

Version | Beschreibung
7.4.0 | The flags parameter was added.

Beispiele

Beispiel #1 preg_replace_callback_array() example

<?php
$subject = 'Aaaaaa Bbb';

preg_replace_callback_array(
    [
        '~[a]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for "a" found', PHP_EOL;
        },
        '~[b]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for "b" found', PHP_EOL;
        }
    ],
    $subject
);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

6 matches for "a" found
3 matches for "b" found

Siehe auch

  • PCRE Patterns
  • preg_replace_callback() - Sucht und ersetzt mit regulären Ausdrücken unter Verwendung eines Callbacks
  • preg_quote() - Maskiert Zeichen regulärer Ausdrücke
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
  • preg_last_error() - Liefert den Fehlercode der letzten PCRE RegEx-Auswertung
  • Anonymous functions


Sucht und ersetzt mit regulären Ausdrücken unter Verwendung eines Callbacks

  • « preg_replace_callback_array
  • preg_replace »
  • PHP Manual
  • PCRE-Funktionen
  • Sucht und ersetzt mit regulären Ausdrücken unter Verwendung eines Callbacks

preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

preg_replace_callback — Sucht und ersetzt mit regulären Ausdrücken unter Verwendung eines Callbacks

Beschreibung

preg_replace_callback ( string|array $pattern , callable $callback , string|array $subject , int $limit = -1 , int &$count = null , int $flags = 0 ) : string|array|null

Abgesehen von der Tatsache, dass statt des Parameters replacement ein callback angegeben werden soll, ist das Verhalten dieser Funktion identisch zu preg_replace().

Parameter-Liste

pattern

Der Ausdruck, nach dem gesucht werden soll. Es kann entweder eine Zeichenkette oder ein Array mit Zeichenketten sein.

callback

Ein Callback, dem ein Array von Übereinstimmungen mit subject übergeben wird. Der Callback sollte die Ersetzungs-Zeichenkette liefern. Das ist die Callback-Signatur:

handler ( array $matches ) : string

Häufig werden Sie die callback-Funktion für preg_replace_callback() nur an einer Stelle benötigen. In diesem Fall können Sie eine Anonyme Funktion verwenden, um innerhalb des Aufrufs von preg_replace_callback() den Callback zu deklarieren. Auf diese Weise haben Sie alle Informationen für den Aufruf an einer Stelle und stopfen den Namensraum für Funktionen nicht mit Namen für Callback-Funktionen voll, die sonst nirgends verwendet werden.

Beispiel #1 preg_replace_callback() und Anonyme Funktion

<?php
// ein Kommandozeilen-Filter im Unix-Stil zum Umwandeln von Groß- in
// Kleinschreibung am Beginn eines Abschnitts
$fp = fopen("php://stdin", "r") or die("kann stdin nicht lesen");
while (!feof($fp)) {
  $zeile = fgets($fp);
  $zeile = preg_replace_callback(
    '|<p>\s*\w|',
    function ($treffer) {
      return strtolower($treffer[0]);
    },
    $zeile
  );
  echo $zeile;
}
fclose($fp);
?>

subject

Die Zeichenkette oder ein Array mit Zeichenketten zum Suchen und Ersetzen.

limit

Die Höchstzahl der Ersetzungen für jedes Suchmuster in jeder subject. Standardmäßig -1 (unbegrenzt).

count

Falls angegeben, wird dieser Variable die Anzahl vorgenommener Ersetzungen zugewiesen.

flags

flags ist eine Kombination der PREG_OFFSET_CAPTURE und PREG_UNMATCHED_AS_NULL Flags, die das Format des matches-Arrays beeinflussen. Details sind der Beschreibung in preg_match() zu entnehmen.

Rückgabewerte

Falls subject ein Array ist, gibt preg_replace_callback() ein Array zurück und andernfalls eine Zeichenkette. Bei einem Fehler ist der Rückgabewert null.

Falls Übereinstimmungen gefunden werden, wird die neue Zeichenkette zurückgegeben und andernfalls die unveränderte Zeichenkette subject

Changelog

Version | Beschreibung
7.4.0 | Der flags Parameter wurde hinzugefügt.

Beispiele

Beispiel #2 preg_replace_callback()-Beispiel

<?php
// dieser Text wurde 2002 verwendet
// wir wollen ihn für 2003 aktualisieren
$text = "Aprilscherze gibts am 01.04.2002\n";
$text.= "Das letzte Weihnachten war am 24.12.2001\n";
// die Callback-Funktion
function naechstes_jahr($treffer)
{
  // wie üblich: $treffer[0] ist die Übereinstimmung mit dem
  // kompletten Suchmuster, $treffer[1] die Übereinstimmung mit
  // dem ersten eingeklammerten Teilsuchmuster und so weiter
  return $treffer[1].($treffer[2]+1);
}
echo preg_replace_callback(
            "|(\d{2}\.\d{2}\.)(\d{4})|",
            "naechstes_jahr",
            $text);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Aprilscherze gibts am 01.04.2003
Das letzte Weihnachten war am 24.12.2002

Beispiel #3 preg_replace_callback() unter Verwendung einer rekursiven Struktur um gekapselten BB-Code zu verarbeiten

<?php
$eingabe = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain";

function parseTagsRecursive($eingabe)
{
  $regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';

  if (is_array($eingabe)) {
    $eingabe = '<div style="margin-left: 10px">'.$eingabe[1].'</div>';
  }

  return preg_replace_callback($regex, 'parseTagsRecursive', $eingabe);
}

$ausgabe = parseTagsRecursive($eingabe);

echo $ausgabe;
?>

Siehe auch

  • PCRE-Suchmuster
  • preg_replace_callback_array() - Perform a regular expression search and replace using callbacks
  • preg_quote() - Maskiert Zeichen regulärer Ausdrücke
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
  • preg_last_error() - Liefert den Fehlercode der letzten PCRE RegEx-Auswertung
  • Anonymous functions


Sucht und ersetzt mit regulären Ausdrücken

  • « preg_replace_callback
  • preg_split »
  • PHP Manual
  • PCRE-Funktionen
  • Sucht und ersetzt mit regulären Ausdrücken

preg_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_replace — Sucht und ersetzt mit regulären Ausdrücken

Beschreibung

preg_replace ( string|array $pattern , string|array $replacement , string|array $subject , int $limit = -1 , int &$count = null ) : string|array|null

Durchsucht die Zeichenkette subject nach Übereinstimmungen mit pattern und ersetzt sie mit replacement.

Parameter-Liste

pattern

Der Ausdruck, nach dem gesucht wird. Es kann entweder eine Zeichenkette oder ein Array mit Zeichenketten sein.

Es stehen auch einige PCRE-Modifikatoren zur Verfügung.

replacement

Die Zeichenkette oder das Array mit Zeichenketten zum Ersetzen. Falls dieser Parameter eine Zeichenkette ist und der Parameter pattern ein Array, werden alle Suchmuster durch diese Zeichenkette ersetzt. Falls sowohl pattern als auch replacement Arrays sind, wird jedes Suchmuster pattern durch das Gegenstück aus replacement ersetzt. Wenn das replacement-Array weniger Elemente hat als das pattern-Array, wird jedes überzählige pattern durch die leere Zeichenkette ersetzt.

replacement darf Referenzen in der Form \n oder $n enthalten, wobei Letztere vorzuziehen ist. Jede dieser Referenzen wird mit dem Text ersetzt, der vom n-ten eingeklammerten Suchmuster erfasst wurde. n kann einen Wert von 0 bis 99 haben. \0 oder $0 beziehen sich auf den Text, der auf das komplette Suchmuster passt. Um die Nummer des erfassenden Teil-Suchmusters zu erhalten, werden öffnende Klammern mit 1 beginnend von links nach rechts gezählt. Es ist zu beachten, dass Rückwärtsschrägstriche in String-Literalen ggf. maskiert werden müssen.

Wenn Sie mit einer Ersetzung arbeiten wollen, in der auf eine Rückreferenzierung direkt eine weitere Zahl folgt (d.h., direkt nach der Übereinstimmmung mit einem Suchmuster soll eine Zahl kommen), können Sie für Ihre Rückreferenzierung nicht die Schreibweise \1 verwenden. So würde z.B. \11 die Funktion preg_replace() verwirren, weil sie nicht weiß, ob Sie die Rückreferenzierung \1 gefolgt von der Zahl 1 wollen oder nur die Rückreferenzierung \11. In diesem Fall ist die Lösung, ${1}1 zu verwenden. Damit wird eine isolierte Rückreferenzierung $1 erzeugt und die 1 bleibt ein Buchstabensymbol.

Wenn Sie den veralteten Modifikator e verwenden, maskiert diese Funktion ein paar Zeichen (nämlich ', ", \ und NULL) in den Zeichenketten, mit denen die Rückreferenzierungen ersetzen werden. Das wird gemacht, um sicherzustellen, dass keine Syntaxfehler entstehen, wenn Rückreferenzierungen verwendet werden, die einfache oder doppelte Anführungszeichen enthalten (z.B. 'strlen(\'$1\')+strlen("$2")'). Vergewissern Sie sich, dass Sie die Zeichenketten-Syntax von PHP kennen, um genau zu wissen, wie die ausgewertete Zeichenkette aussieht.

subject

Die Zeichenkette oder ein Array mit Zeichenketten zum Durchsuchen.

Falls subject ein Array ist, wird das Suchen und Ersetzen auf jedes Element von subject angewandt und der Rückgabewert ist ebenfalls ein Array.

limit

Die maximal mögliche Anzahl von Ersetzungen für jedes Suchmuster in jeder subject. Standardmäßiger Wert: -1 (kein Limit).

count

Falls angegeben, wird dieser Variable die Anzahl vorgenommener Ersetzungen zugewiesen.

Rückgabewerte

preg_replace() gibt ein Array zurück, falls subject ein Array ist, andernfalls eine Zeichenkette.

Falls Übereinstimmungen gefunden wurden, wird die neue Zeichenkette subject zurückgegeben, andernfalls wird subject unverändert zurückgegeben oder null, falls ein Fehler auftrat.

Fehler/Exceptions

Ab PHP 5.5.0 wird bei Übergabe des Modifikators "\e" ein Fehler der Stufe E_DEPRECATED ausgegeben. Ab PHP 7.0.0 ist die Verwendung des "\e" Modifikators ein Fehler; ein E_WARNING wird in diesem Fall ausgegeben.

Beispiele

Beispiel #1 Die Verwendung von Rückreferenzierungen mit darauf folgenden numerischen Literalen

<?php
$zeichenkette = '15. April 2003';
$suchmuster = '/(\d+)\. (\w+) (\d+)/i';
$ersetzung = '${2}1,$3';
echo preg_replace($suchmuster, $ersetzung, $zeichenkette);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

April1,2003

Beispiel #2 Die Verwendung von preg_replace() mit indizierten Arrays

<?php
$zeichenkette = 'Der schnelle braune Fuchs springt über den faulen Hund.';

$suchmuster = array();
$suchmuster[0] = '/schnelle/';
$suchmuster[1] = '/braune/';
$suchmuster[2] = '/Fuchs/';

$ersetzungen = array();
$ersetzungen[2] = 'Bär';
$ersetzungen[1] = 'schwarze';
$ersetzungen[0] = 'langsame';

echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der Bär schwarze langsame springt über den faulen Hund.

Wenn wir Suchmuster und Ersetzungen mit ksort() sortieren, sollten wir bekommen was wir wollten.

<?php
ksort($suchmuster);
ksort($ersetzungen);
echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der langsame schwarze Bär springt über den faulen Hund.

Beispiel #3 Ersetzen mehrerer Werte

<?php
$suchmuster = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/',
                     '/^\s*{(\w+)}\s*=/');
$ersetzen = array ('\4.\3.\1\2', '$\1 =');
echo preg_replace($suchmuster, $ersetzen, '{startDatum} = 1999-5-27');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

$startDatum = 27.5.1999

Beispiel #4 Leerzeichen entfernen

Dieses Beispiel entfernt überschüssige Leerzeichen aus einer Zeichenkette.

<?php
$str = 'foo   o';
$str = preg_replace('/\s\s+/', ' ', $str);
// Das ist jetzt 'foo o'
echo $str;
?>

Beispiel #5 Die Verwendung des Parameters count

<?php
$anzahl = 0;

echo preg_replace(array('/\d/', '/\s/'), '*', 'xp 4 to', -1 , $anzahl);
echo $anzahl; //3
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

xp***to
3

Anmerkungen

Hinweis:

Bei Verwendung von Arrays für pattern und replacement werden die Schlüssel in der Reihenfolge bearbeitet, in der sie im Array vorliegen. Das ist nicht notwendigerweise dieselbe, wie die numerische Reihenfolge der Indizes. Wenn Sie Indizes verwenden, um festzulegen welches pattern durch welchen Ersatz replacement ersetzt werden soll, sollten Sie vor dem Aufruf von preg_replace() ksort() auf jedes Array anwenden.

Siehe auch

  • PCRE-Suchmuster
  • preg_quote() - Maskiert Zeichen regulärer Ausdrücke
  • preg_filter() - Sucht und ersetzt mit regulären Ausdrücken
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • preg_replace_callback() - Sucht und ersetzt mit regulären Ausdrücken unter Verwendung eines Callbacks
  • preg_split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
  • preg_last_error() - Liefert den Fehlercode der letzten PCRE RegEx-Auswertung


Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks

  • « preg_replace
  • POSIX Regex »
  • PHP Manual
  • PCRE-Funktionen
  • Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks

preg_split

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_split — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks

Beschreibung

preg_split ( string $pattern , string $subject , int $limit = -1 , int $flags = 0 ) : array|false

Zerlegt die angegebene Zeichenkette anhand eines regulären Ausdrucks.

Parameter-Liste

pattern

Der Ausdruck, nach dem gesucht werden soll, als Zeichenkette.

subject

Die zu zerlegende Zeichenkette.

limit

Falls angegeben, werden maximal limit Teilzeichenketten zurückgegeben, wobei der Rest der Zeichenkette in der letzten Teilzeichenkette abgelegt wird. Ein limit von -1 oder 0 bedeutet "kein Limit".

flags

flags kann jede Kombination der folgenden Flags sein (verknüpft mit dem bitweisen | Operator):

PREG_SPLIT_NO_EMPTY
Falls dieses Flag gesetzt ist, werden von preg_split() nur die Teile zurückgegeben, die nicht leer sind.
PREG_SPLIT_DELIM_CAPTURE
Falls dieses Flag gesetzt ist, werden auch die eingeklammerten Ausdrücke des Trennsymbol-Suchmusters erfasst und zurückgegeben.
PREG_SPLIT_OFFSET_CAPTURE

Falls dieses Flag gesetzt ist, wird mit jeder gefundenen Übereinstimmung der dazugehörige Versatz in der Zeichenkette zurückgegeben. Beachten Sie, dass dies die Rückgabewerte in einem Array dahingehend ändert, dass jedes Element ein Array ist, das aus der übereinstimmenden Zeichenkette als Element 0 und deren Stelle in subject als Element 1 besteht.

Rückgabewerte

Gibt ein Array zurück, bestehend aus Teilzeichenketten der Zeichenkette subject, die an den auf das Suchmuster pattern passenden Stellen zerlegt wurde. Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 preg_split()-Beispiel: Eine Zeichenkette in ihre Bestandteile zerlegen

<?php
// zerlegt die Zeichenkette an Stellen mit beliebiger Anzahl von
// Kommata oder Leerzeichen, die " ", \r, \t, \n und \f umfassen
$schluesselwoerter = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($schluesselwoerter);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => hypertext
    [1] => language
    [2] => programming
)

Beispiel #2 Eine Zeichenkette in einzelne Zeichen zerlegen

<?php
$str = 'string';
$zeichen = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($zeichen);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => s
    [1] => t
    [2] => r
    [3] => i
    [4] => n
    [5] => g
)

Beispiel #3 Eine Zeichenkette in Übereinstimmungen mit dem Suchmuster und deren Versatz zerlegen

<?php
$str = 'hypertext language programming';
$zeichen = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($zeichen);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )

)

Anmerkungen

Tipp

Falls Sie die Leistung regulärer Ausdrücke nicht benötigen, können Sie stattdessen schnellere (wenngleich einfachere) Alternativen wie explode() oder str_split() verwenden.

Tipp

Falls keine Übereinstimmungen gefunden wurden, wird ein Array mit nur einem Element zurückgegeben, das die übergebene Zeichenkette enthält.

Siehe auch

  • PCRE-Suchmuster
  • preg_quote() - Maskiert Zeichen regulärer Ausdrücke
  • implode() - Verbindet Array-Elemente zu einem String
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • preg_match_all() - Führt eine umfassende Suche nach Übereinstimmungen mit regulärem Ausdruck durch
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
  • preg_last_error() - Liefert den Fehlercode der letzten PCRE RegEx-Auswertung


Reguläre Ausdrücke (POSIX-erweitert)

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • POSIX Regex-Funktionen
    • ereg_replace — Ersetzt einen regulären Ausdruck
    • ereg — Sucht Übereinstimmungen mit einem regulären Ausdruck
    • eregi_replace — Ersetzt einen regulären Ausdrück ohne Berücksichtigung von Groß-/Kleinschreibung
    • eregi — Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung
    • split — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array
    • spliti — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks ohne Berücksichtigung von Groß-/Kleinschreibung in ein Array
    • sql_regcase — Erstellt einen regulären Ausdruck für eine Suche nach Übereinstimmungen ohne Berücksichtigung von Groß-/Kleinschreibung


Einführung

Warnung

Dieses Feature wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Features verwendet werden:

  • PCRE (für vollständige Unterstützung regulärer Ausdrücke)
  • fnmatch() (für einfacheren shellartigen Platzhalter-Mustervergleich)
Tipp

Bei Verwendung der PCRE Funktionen unterstützt PHP auch Reguläre Ausdrücke mit einer zu Perl kompatiblen Syntax. Diese Funktionen unterstützen nicht-gieriges (non-greedy) Matching, Assertions, bedingte Teilsuchmuster und viele andere Merkmale, die von der POSIX-erweiterten Syntax regulärer Ausdrücke nicht unterstützt werden.

Warnung

Diese Funktionen regulärer Ausdrücke sind im Gegensatz zu den PCRE Funktionen nicht binärsicher.

Reguläre Ausdrücke werden für komplexe Manipulationen an Zeichenketten verwendet. 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.


Installation

PHP 7

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/regex.

PHP 5

Warnung

Sie sollten TYPE nur ändern, wenn Sie wissen, was Sie tun.

Um die regexp-Unterstützung zu aktivieren, müssen Sie PHP mit der Option --with-regex[=TYPE] übersetzen. TYPE kann entweder system, apache oder php sein. Der voreingestellte Wert ist php.

Die Windowsversion von PHP enthält diese Erweiterung. Um diese Funktionen zu verwenden, müssen Sie keine zusätzlichen Erweiterungen aktivieren.


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • POSIX Regex
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Beispiele

Beispiel #1 Beispiele regulärer Ausdrücke

<?php
// Gibt true zurück, falls "abc" irgendwo in $zeichenkette gefunden wird.
ereg("abc", $zeichenkette);

// Gibt true zurück, falls "abc" am Anfang von $zeichenkette gefunden wird.
ereg("^abc", $zeichenkette);

// Gibt true zurück, falls "abc" am Ende von $zeichenkette gefunden wird.
ereg("abc$", $zeichenkette);

// Gibt true zurück, falls es sich beim Client Browser um Netscape 2, 3 oder
// MSIE 3 handelt.
eregi("(ozilla.[23]|MSIE.3)", $_SERVER["HTTP_USER_AGENT"]);

// Setzt drei Wörter, die durch Leerzeichen getrennt sind, in $regs[1],
// $regs[2] und $regs[3] ein.
ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $zeichenkette, $regs);

// Setzt ein <br /> Tag vor $zeichenkette.
$zeichenkette = ereg_replace("^", "<br />", $zeichenkette);

// Setzt ein <br /> Tag hinter $zeichenkette.
$zeichenkette = ereg_replace("$", "<br />", $zeichenkette);

// Entfernt alle Zeilenumbrüche aus $zeichenkette.
$zeichenkette = ereg_replace("\n", "", $zeichenkette);
?>


POSIX Regex-Funktionen

Siehe auch

Warnung

Dieses Feature wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Features verwendet werden:

  • PCRE (für vollständige Unterstützung regulärer Ausdrücke)
  • fnmatch() (für einfacheren shellartigen Platzhalter-Mustervergleich)

Inhaltsverzeichnis

  • ereg_replace — Ersetzt einen regulären Ausdruck
  • ereg — Sucht Übereinstimmungen mit einem regulären Ausdruck
  • eregi_replace — Ersetzt einen regulären Ausdrück ohne Berücksichtigung von Groß-/Kleinschreibung
  • eregi — Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung
  • split — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array
  • spliti — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks ohne Berücksichtigung von Groß-/Kleinschreibung in ein Array
  • sql_regcase — Erstellt einen regulären Ausdruck für eine Suche nach Übereinstimmungen ohne Berücksichtigung von Groß-/Kleinschreibung


Ersetzt einen regulären Ausdruck

  • « POSIX Regex-Funktionen
  • ereg »
  • PHP Manual
  • POSIX Regex-Funktionen
  • Ersetzt einen regulären Ausdruck

ereg_replace

(PHP 4, PHP 5)

ereg_replace — Ersetzt einen regulären Ausdruck

Warnung

Diese Funktion wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Funktionen verwendet werden:

  • preg_replace()

Beschreibung

ereg_replace ( string $pattern , string $replacement , string $string ) : string

Diese Funktion durchsucht string nach Übereinstimmungen mit pattern und ersetzt dann den übereinstimmenden Text durch replacement.

Parameter-Liste

pattern

Ein POSIX-erweiterter regulärer Ausdruck

replacement

Wenn pattern eingeklammerte Teilzeichenketten enthält, darf replacement 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.

string

Die zu durchsuchende Zeichenkette

Rückgabewerte

Zurückgegeben wird die geänderte Zeichenkette. Wenn in string keine Übereinstimmungen gefunden werden, wird sie unverändert zurückgegeben.

Beispiele

Der folgende Code-Schnipsel gibt zum Beispiel dreimal "Das war ein Test" aus:

Beispiel #1 ereg_replace()-Beispiel

<?php

$string = "Das ist ein Test";
echo ereg_replace(" ist", " war", $string);
echo ereg_replace("( )ist", "\\1war", $string);
echo ereg_replace("(( )ist)", "\\2war", $string);

?>

Folgendes ist zu beachten: Wenn Sie als replacement einen ganzzahligen Wert verwenden, bekommen sie vielleicht nicht das erwartete Ergebnis. Das liegt daran, dass ereg_replace() die Zahl als Ordinalwert eines Zeichens betrachtet und dieses verwendet. Zum Beispiel:

Beispiel #2 ereg_replace()-Beispiel

<?php
/* Dieses funktioniert nicht wie erwartet. */
$zahl = 4;
$zeichenkette = "Diese Zeichenkette hat vier Wörter.";
$zeichenkette = ereg_replace('vier', $zahl, $zeichenkette);
echo $zeichenkette;   /* Ausgabe: 'Diese Zeichenkette hat   Wörter.' */

/* Dieses funktioniert. */
$zahl = '4';
$zeichenkette = "Diese Zeichenkette hat vier Wörter.";
$zeichenkette = ereg_replace('vier', $zahl, $zeichenkette);
echo $zeichenkette;   /* Output: 'Diese Zeichenkette hat 4 Wörter.' */
?>

Beispiel #3 Ersetzen von URLs durch Links

<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     '<a href="\\0">\\0</a>', $text);
?>

Siehe auch

  • ereg() - Sucht Übereinstimmungen mit einem 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
  • str_replace() - Ersetzt alle Vorkommen des Suchstrings durch einen anderen String
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
  • quotemeta() - Maskiert (quotet) Meta-Zeichen


Sucht Übereinstimmungen mit einem regulären Ausdruck

  • « ereg_replace
  • eregi_replace »
  • PHP Manual
  • POSIX Regex-Funktionen
  • Sucht Übereinstimmungen mit einem regulären Ausdruck

ereg

(PHP 4, PHP 5)

ereg — Sucht Übereinstimmungen mit einem regulären Ausdruck

Warnung

Diese Funktion wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Funktionen verwendet werden:

  • preg_match()

Beschreibung

ereg ( string $pattern , string $string , array &$regs = ? ) : int

Sucht in string unter Berücksichtigung der Groß- und Kleinschreibung nach Übereinstimmungen mit dem regulären Ausdruck, der in pattern angegeben wurde.

Parameter-Liste

pattern

Regulärer Ausdruck mit Berücksichtigung der Groß- und Kleinschreibung

string

Die zu durchsuchende Zeichenkette

regs

Wenn Übereinstimmungen mit eingeklammerten Teilzeichenketten von pattern 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 die Teilzeichenkette der ersten Klammer, $regs[2] die Teilzeichenkette der zweiten usw. $regs[0] enthält bei Übereinstimmung mit string eine Kopie der kompletten Zeichenkette string.

Rückgabewerte

Gibt die Länge der übereinstimmenden Zeichenkette zurück, falls in string eine Übereinstimmung mit pattern gefunden wurde oder false, wenn keine Übereinstimmung gefunden wurde oder wenn ein Fehler aufgetreten ist.

Falls der optionale Parameter regs nicht übergeben wurde oder die Länge der übereinstimmenden Zeichenkette 0 ist, gibt diese Funktion 1 zurück.

Changelog

Version | Beschreibung
4.1.0 | Bis (und inklusive) PHP 4.1.0 wird $regs mit genau zehn Elementen gefüllt, auch wenn es tatsächlich mehr oder weniger Übereinstimmungen mit den eingeklammerten Teilzeichenketten gibt. Dies wirkt sich aber nicht auf ereg()s Fähigkeit aus, mehr übereinstimmende Teilzeichenketten zu finden. Falls keine Übereinstimmungen gefunden werden, wird $regs nicht von ereg() verändert.

Beispiele

Beispiel #1 ereg()-Beispiel

Das folgende Code-Schnipsel mimmt ein Datum im ISO-Format (JJJJ-MM-TT) und gibt es im Format TT.MM.JJJJ aus:

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
    echo "$regs[3].$regs[2].$regs[1]";
} else {
    echo "Ungültiges Datumsformat: $date";
}
?>

Siehe auch

  • eregi() - Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung
  • ereg_replace() - Ersetzt einen regulären Ausdruck
  • eregi_replace() - Ersetzt einen regulären Ausdrück ohne Berücksichtigung von Groß-/Kleinschreibung
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • strpos() - Sucht die Position des ersten Vorkommens des Suchstrings in einem String
  • strstr() - Findet das erste Vorkommen eines Strings
  • quotemeta() - Maskiert (quotet) Meta-Zeichen


Ersetzt einen regulären Ausdrück ohne Berücksichtigung von Groß-/Kleinschreibung

  • « ereg
  • eregi »
  • PHP Manual
  • POSIX Regex-Funktionen
  • Ersetzt einen regulären Ausdrück ohne Berücksichtigung von Groß-/Kleinschreibung

eregi_replace

(PHP 4, PHP 5)

eregi_replace — Ersetzt einen regulären Ausdrück ohne Berücksichtigung von Groß-/Kleinschreibung

Warnung

Diese Funktion wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Funktionen verwendet werden:

  • preg_replace() (mit dem i (PCRE_CASELESS) Modifikator)

Beschreibung

eregi_replace ( string $pattern , string $replacement , string $string ) : string

Diese Funktion entspricht ereg_replace() mit dem Unterschied, dass sie übereinstimmende Buchstaben nicht nach Groß- und Kleinschreibung unterscheidet.

Parameter-Liste

pattern

Ein POSIX-erweiterter regulärer Ausdruck

replacement

Wenn pattern eingeklammerte Teilzeichenketten enthält, darf replacement 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.

string

Die zu durchsuchende Zeichenkette

Rückgabewerte

Zurückgegeben wird die geänderte Zeichenkette. Wenn in string keine Übereinstimmungen gefunden werden, wird sie unverändert zurückgegeben.

Beispiele

Beispiel #1 Suchergebnisse hervorheben

<?php
$suchmuster = '(>[^<]*)('. quotemeta($_GET['suche']) .')';
$ersatz = '\\1<span class="suche">\\2</span>';
$inhalt = eregi_replace($suchmuster, $ersatz, $inhalt);
?>

Siehe auch

  • ereg() - Sucht Übereinstimmungen mit einem regulären Ausdruck
  • eregi() - Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung
  • ereg_replace() - Ersetzt einen regulären Ausdruck
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
  • quotemeta() - Maskiert (quotet) Meta-Zeichen


Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung

  • « eregi_replace
  • split »
  • PHP Manual
  • POSIX Regex-Funktionen
  • Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung

eregi

(PHP 4, PHP 5)

eregi — Sucht Übereinstimmung mit regulärem Ausdruck ohne Berücksichtigung von Groß-/Kleinschreibung

Warnung

Diese Funktion wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Funktionen verwendet werden:

  • preg_match() (mit dem i (PCRE_CASELESS) Modifikator)

Beschreibung

eregi ( string $pattern , string $string , array &$regs = ? ) : int

Diese Funktion entspricht ereg() mit dem Unterschied, dass sie übereinstimmende Buchstaben nicht nach Groß- und Kleinschreibung unterscheidet.

Parameter-Liste

pattern

Regulärer Ausdruck ohne Berücksichtigung der Groß- und Kleinschreibung

string

Die zu durchsuchende Zeichenkette

regs

Wenn Übereinstimmungen mit eingeklammerten Teilzeichenketten von pattern 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 die Teilzeichenkette der ersten Klammer, $regs[2] die Teilzeichenkette der zweiten usw. $regs[0] enthält bei Übereinstimmung mit string eine Kopie der kompletten Zeichenkette string.

Rückgabewerte

Gibt die Länge der übereinstimmenden Zeichenkette zurück, falls in string eine Übereinstimmung mit pattern gefunden wurde oder false, wenn keine Übereinstimmung gefunden wurde oder wenn ein Fehler aufgetreten ist.

Falls der optionale Parameter regs nicht übergeben wurde oder die Länge der übereinstimmenden Zeichenkette 0 ist, gibt diese Funktion 1 zurück.

Beispiele

Beispiel #1 eregi()-Beispiel

<?php
$string = 'XYZ';
if (eregi('z', $string)) {
    echo "'$string' contains a 'z' or 'Z'!";
}
?>

Siehe auch

  • ereg() - Sucht Übereinstimmungen mit einem regulären Ausdruck
  • ereg_replace() - Ersetzt einen regulären Ausdruck
  • eregi_replace() - Ersetzt einen regulären Ausdrück ohne Berücksichtigung von Groß-/Kleinschreibung
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • stripos() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • quotemeta() - Maskiert (quotet) Meta-Zeichen


Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array

  • « eregi
  • spliti »
  • PHP Manual
  • POSIX Regex-Funktionen
  • Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array

split

(PHP 4, PHP 5)

split — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array

Warnung

Diese Funktion wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Funktionen verwendet werden:

  • preg_split()
  • explode()
  • str_split()

Beschreibung

split ( string $pattern , string $string , int $limit = -1 ) : array

Zerlegt string anhand eines regulären Ausdrucks in ein Array.

Parameter-Liste

pattern

Regulärer Ausdruck mit Berücksichtigung der Groß- und Kleinschreibung

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.

string

Die zu durchsuchende Zeichenkette

limit

Wenn limit gesetzt wurde, enthält das zurückgegebene Array höchstens limit Elemente, von denen das letzte den ganzen Rest von string enthält.

Rückgabewerte

Gibt ein Array mit Zeichenketten zurück, die jeweils eine Teilzeichenkette von string sind. Diese Teilzeichenketten entstehen durch Zerlegung von string an den durch den regulären Ausdruck pattern bestimmten Stellen unter Berücksichtigung der Groß- und Kleinschreibung.

Wenn pattern n mal vorkommt, enhält das zurückgegebene Array n+1 Elemente. Kommt pattern zum Beispiel überhaupt nicht vor, wird ein Array mit nur einem Element zurückgegeben. Das gilt natürlich auch, wenn string leer ist. Bei Auftreten eines Fehlers gibt split() false zurück.

Beispiele

Beispiel #1 split()-Beispiel

Um die ersten vier Felder einer Zeile von /etc/passwd abzuspalten:

<?php
list($user, $pass, $uid, $gid, $extra) =
    split(":", $passwd_line, 5);
?>

Beispiel #2 split()-Beispiel

Um ein Datum zu analysieren, das durch Schrägstriche, Punkte oder Bindestriche getrennt ist:

<?php
// Trennzeichen darf ein Schrägstrich, Punkt oder Bindestrich sein
$datum = "04/30/1973";
list ($monat, $tag, $jahr) = split('[/.-]', $datum);
echo "Monat: $monat; Tag: $tag; Jahr: $jahr<br />\n";
?>

Anmerkungen

Tipp

split() ist ab PHP 5.3.0 veraltet. Verwenden Sie stattdessen preg_split(). Wenn Sie die Fähigkeiten regulärer Ausdrücke nicht benötigen, ist die Verwendung von explode() schneller, weil diese Funktion ohne die Engine für reguläre Ausdrücke auskommt.

Tipp

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() oder
str_split() an.

Siehe auch

  • preg_split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
  • spliti() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks ohne Berücksichtigung von Groß-/Kleinschreibung in ein Array
  • str_split() - Konvertiert einen String in ein Array
  • explode() - Teilt eine Zeichenkette anhand einer Zeichenkette
  • implode() - Verbindet Array-Elemente zu einem String
  • chunk_split() - Zerlegt einen String in Teile gleicher Länge
  • wordwrap() - Umbricht einen String nach einer bestimmten Anzahl Zeichen


Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks ohne Berücksichtigung von Groß-/Kleinschreibung in ein Array

  • « split
  • sql_regcase »
  • PHP Manual
  • POSIX Regex-Funktionen
  • Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks ohne Berücksichtigung von Groß-/Kleinschreibung in ein Array

spliti

(PHP 4 >= 4.0.1, PHP 5)

spliti — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks ohne Berücksichtigung von Groß-/Kleinschreibung in ein Array

Warnung

Diese Funktion wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Funktionen verwendet werden:

  • preg_split() (mit dem i (PCRE_CASELESS) Modifikator)

Beschreibung

spliti ( string $pattern , string $string , int $limit = -1 ) : array

Zerlegt string anhand eines regulären Ausdrucks in ein Array.

Diese Funktion entspricht split() mit dem Unterschied, dass sie übereinstimmende Buchstaben nicht nach Groß- und Kleinschreibung unterscheidet.

Parameter-Liste

pattern

Regulärer Ausdruck ohne Berücksichtigung der Groß- und Kleinschreibung

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, spliti() (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.

string

Die zu durchsuchende Zeichenkette

limit

Wenn limit gesetzt wurde, enthält das zurückgegebene Array höchstens limit Elemente, von denen das letzte den ganzen Rest von string enthält.

Rückgabewerte

Gibt ein Array mit Zeichenketten zurück, die jeweils eine Teilzeichenkette von string sind. Diese Teilzeichenketten entstehen durch Zerlegung von string an den durch den regulären Ausdruck pattern bestimmten Stellen ohne Berücksichtigung der Groß- und Kleinschreibung.

Wenn pattern n mal vorkommt, enhält das zurückgegebene Array n+1 Elemente. Kommt pattern zum Beispiel überhaupt nicht vor, wird ein Array mit nur einem Element zurückgegeben. Das gilt natürlich auch, wenn string leer ist. Bei Auftreten eines Fehlers gibt spliti() false zurück.

Beispiele

Dieses Beispiel verwendet 'a' als Trennzeichen um eine Zeichenkette zu zerlegen:

Beispiel #1 spliti()-Beispiel

<?php
$zeichenkette = "aBBBaCCCADDDaEEEaGGGA";
$stuecke = spliti ("a", $zeichenkette, 5);
print_r($stuecke);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
  [0] =>
  [1] => BBB
  [2] => CCC
  [3] => DDD
  [4] => EEEaGGGA
)

Siehe auch

  • preg_split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
  • split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array
  • explode() - Teilt eine Zeichenkette anhand einer Zeichenkette
  • implode() - Verbindet Array-Elemente zu einem String


Erstellt einen regulären Ausdruck für eine Suche nach Übereinstimmungen ohne Berücksichtigung von Groß-/Kleinschreibung

  • « spliti
  • ssdeep »
  • PHP Manual
  • POSIX Regex-Funktionen
  • Erstellt einen regulären Ausdruck für eine Suche nach Übereinstimmungen ohne Berücksichtigung von Groß-/Kleinschreibung

sql_regcase

(PHP 4, PHP 5)

sql_regcase — Erstellt einen regulären Ausdruck für eine Suche nach Übereinstimmungen ohne Berücksichtigung von Groß-/Kleinschreibung

Warnung

Diese Funktion wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und in PHP 7.0.0 REMOVED entfernt.

Alternativ können die folgenden Funktionen verwendet werden:

  • preg_match()
  • preg_quote()

Beschreibung

sql_regcase ( string $string ) : string

Erstellt einen regulären Ausdruck für eine Suche nach Übereinstimmungen ohne Berücksichtigung von Groß- und Kleinschreibung.

Parameter-Liste

string

Die umzuwandelnde Zeichenkette

Rückgabewerte

Gibt einen korrekten regulären Ausdruck zurück, der auf string ohne Berücksichtigung von Groß- und Kleinschreibung passt. Dieser Ausdruck entspricht string, wobei jeder Buchstabe in einen Klammerausdruck umgewandelt wird. Die Klammer enthält diesen Buchstaben in groß- und kleingeschriebener Form. Andere Zeichen bleiben unverändert.

Beispiele

Beispiel #1 sql_regcase()-Beispiel

<?php
echo sql_regcase("Foo - bar");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

[Ff][Oo][Oo] - [Bb][Aa][Rr].

Dies kann bei Produkten, die nur reguläre Ausdrücke mit Berücksichtigung von Groß- und Kleinschreibung unterstützen, verwendet werden, um eine Übereinstimmung mit Suchmustern ohne Berücksichtigung von Groß- und Kleinschreibung zu erreichen.


ssdeep Fuzzy Hashing

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • ssdeep Funktionen
    • ssdeep_fuzzy_compare — Calculates the match score between two fuzzy hash signatures
    • ssdeep_fuzzy_hash_filename — Create a fuzzy hash from a file
    • ssdeep_fuzzy_hash — Create a fuzzy hash from a string


Einführung

ssdeep is a utility for creating and comparing fuzzy hashes or » context-triggered piecewise hashing.

Fuzzy hashing can match signatures which have "...sequences of identical bytes in the same order, although bytes in between these sequences may be different in both content and length". (» ssdeep project page)

This extension provides functions for creating and comparing fuzzy hashes.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

This extension requires the » ssdeep library.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/ssdeep.


  • « Ressource-Typen
  • ssdeep Funktionen »
  • PHP Manual
  • ssdeep
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


ssdeep Funktionen

Inhaltsverzeichnis

  • ssdeep_fuzzy_compare — Calculates the match score between two fuzzy hash signatures
  • ssdeep_fuzzy_hash_filename — Create a fuzzy hash from a file
  • ssdeep_fuzzy_hash — Create a fuzzy hash from a string


Calculates the match score between two fuzzy hash signatures

  • « ssdeep Funktionen
  • ssdeep_fuzzy_hash_filename »
  • PHP Manual
  • ssdeep Funktionen
  • Calculates the match score between two fuzzy hash signatures

ssdeep_fuzzy_compare

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_compare — Calculates the match score between two fuzzy hash signatures

Beschreibung

ssdeep_fuzzy_compare ( string $signature1 , string $signature2 ) : int

Calculates the match score between signature1 and signature2 using » context-triggered piecewise hashing, and returns the match score.

Parameter-Liste

signature1

The first fuzzy hash signature string.

signature2

The second fuzzy hash signature string.

Rückgabewerte

Returns an integer from 0 to 100 on success, false otherwise.


Create a fuzzy hash from a file

  • « ssdeep_fuzzy_compare
  • ssdeep_fuzzy_hash »
  • PHP Manual
  • ssdeep Funktionen
  • Create a fuzzy hash from a file

ssdeep_fuzzy_hash_filename

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_hash_filename — Create a fuzzy hash from a file

Beschreibung

ssdeep_fuzzy_hash_filename ( string $file_name ) : string

ssdeep_fuzzy_hash_filename() calculates the hash of the file specified by file_name using » context-triggered piecewise hashing, and returns that hash.

Parameter-Liste

file_name

The filename of the file to hash.

Rückgabewerte

Returns a string on success, false otherwise.


Create a fuzzy hash from a string

  • « ssdeep_fuzzy_hash_filename
  • Zeichenketten »
  • PHP Manual
  • ssdeep Funktionen
  • Create a fuzzy hash from a string

ssdeep_fuzzy_hash

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_hash — Create a fuzzy hash from a string

Beschreibung

ssdeep_fuzzy_hash ( string $to_hash ) : string

ssdeep_fuzzy_hash() calculates the hash of to_hash using » context-triggered piecewise hashing, and returns that hash.

Parameter-Liste

to_hash

The input string.

Rückgabewerte

Returns a string on success, false otherwise.


Zeichenketten

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • String-Funktionen
    • addcslashes — Stellt bestimmten Zeichen eines Strings ein "\" voran (wie in C)
    • addslashes — Stellt bestimmten Zeichen eines Strings ein "\" voran
    • bin2hex — Wandelt Binär-Daten in ihre hexadezimale Entsprechung um
    • chop — Alias von rtrim
    • chr — Erzeugt eine Ein-Byte-Zeichenkette aus einer Zahl
    • chunk_split — Zerlegt einen String in Teile gleicher Länge
    • convert_cyr_string — Konvertiert Strings von einem kyrillischen Zeichensatz in einen anderen
    • convert_uudecode — Dekodiert eine UU-kodierte Zeichenkette
    • convert_uuencode — UU-kodiert eine Zeichenkette
    • count_chars — Gibt Informationen über die in einem String enthaltenen Zeichen zurück
    • crc32 — Berechnet den polynomischen CRC32-Wert eines Strings
    • crypt — Einweg-String-Hashing
    • echo — Gibt einen oder mehrere Strings aus
    • explode — Teilt eine Zeichenkette anhand einer Zeichenkette
    • fprintf — Schreibt einen formatierten String in einen Stream
    • get_html_translation_table — Gibt die Umwandlungs-Tabelle zurück, die von htmlspecialchars und htmlentities verwendet wird
    • hebrev — Konvertiert logischen hebräischen Text in sichtbaren Text
    • hebrevc — Konvertiert (natürlichen) hebräischen Text in sichtbaren Text inkl. Anpassung von Zeilenumbrüchen
    • hex2bin — Dekodiert einen hexadezimal kodierten Binärstring
    • html_entity_decode — Konvertiert HTML-Entities in ihre entsprechenden Zeichen
    • htmlentities — Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um
    • htmlspecialchars_decode — Konvertiert besondere HTML-Auszeichnungen zurück in Buchstaben
    • htmlspecialchars — Wandelt Sonderzeichen in HTML-Codes um
    • implode — Verbindet Array-Elemente zu einem String
    • join — Alias von implode
    • lcfirst — Wandelt den ersten Buchstaben eines Strings in einen Kleinbuchstaben um
    • levenshtein — Berechnet die Levenshtein-Distanz zwischen zwei Strings
    • localeconv — Ermittelt die Formatierungsinformationen für Zahlen
    • ltrim — Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings
    • md5_file — Berechnet den MD5-Code einer Datei
    • md5 — Errechnet den MD5-Hash eines Strings
    • metaphone — Berechnet den Metaphone-Schlüssel eines Strings
    • money_format — Formatiert eine Zahl als Währungs-Zeichenkette
    • nl_langinfo — Query-Language und Locale-Information
    • nl2br — Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein
    • number_format — Formatiert eine Zahl mit Tausender-Trennzeichen
    • ord — Konvertiert das erste Byte einer Zeichenkette in einen Wert zwischen 0 und 255
    • parse_str — Überträgt einen String in Variablen
    • print — Ausgabe eines Strings
    • printf — Gibt einen formatierten String aus
    • quoted_printable_decode — Konvertiert einen "quoted-printable"-String in einen 8-Bit-String
    • quoted_printable_encode — Wandelt einen 8Bit-String in sein 'Quoted Printable' Gegenstück
    • quotemeta — Maskiert (quotet) Meta-Zeichen
    • rtrim — Entfernt Leerraum (oder andere Zeichen) vom Ende eines Strings
    • setlocale — Legt regionale (locale) Einstellungen fest
    • sha1_file — Berechnet den SHA1-Hash einer Datei
    • sha1 — Berechnet den SHA1-Hash eines Strings
    • similar_text — Berechnet die Ähnlichkeit zweier Zeichenketten
    • soundex — Berechnet die Laut-Ähnlichkeit eines Strings
    • sprintf — Gibt einen formatierten String zurück
    • sscanf — Überträgt einen String in ein angegebenes Format
    • str_contains — Determine if a string contains a given substring
    • str_ends_with — Checks if a string ends with a given substring
    • str_getcsv — Parst einen CSV-String in ein Array
    • str_ireplace — Groß- und kleinschreibungsunabhängige Version von str_replace
    • str_pad — Erweitert einen String unter Verwendung eines anderen Strings auf eine bestimmte Länge
    • str_repeat — Wiederholt einen String
    • str_replace — Ersetzt alle Vorkommen des Suchstrings durch einen anderen String
    • str_rot13 — Führt die ROT13-Transformation auf einen String aus
    • str_shuffle — Mischt einen String nach dem Zufallsprinzip
    • str_split — Konvertiert einen String in ein Array
    • str_starts_with — Checks if a string starts with a given substring
    • str_word_count — Gibt Informationen über in einem String verwendete Worte zurück
    • strcasecmp — Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)
    • strchr — Alias von strstr
    • strcmp — Vergleich zweier Strings (Binary safe)
    • strcoll — Locale-basierter Zeichenkettenvergleich
    • strcspn — Ermittelt die Anzahl der nicht übereinstimmenden Zeichen
    • strip_tags — Entfernt HTML- und PHP-Tags aus einem String
    • stripcslashes — Entfernt Quotes aus mit addcslashes behandelten Strings
    • stripos — Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
    • stripslashes — Entfernt Maskierungszeichen aus einem String
    • stristr — Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
    • strlen — Ermitteln der String-Länge
    • strnatcasecmp — String-Vergleich "natürlicher Ordnung" ohne Berücksichtigung der Groß- und Kleinschreibung
    • strnatcmp — String-Vergleich unter Verwendung einer "natürlichen Ordnung"
    • strncasecmp — Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen
    • strncmp — String-Vergleich der ersten n Zeichen (Binary safe)
    • strpbrk — Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen
    • strpos — Sucht die Position des ersten Vorkommens des Suchstrings in einem String
    • strrchr — Sucht das letzte Vorkommen eines Zeichens in einem String
    • strrev — Kehrt einen String um
    • strripos — Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
    • strrpos — Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
    • strspn — Ermittelt die Länge des initialen Abschnitts einer Zeichenkette, der ausschließlich aus Zeichen besteht, die in einer übergebenen Maske enthalten sind
    • strstr — Findet das erste Vorkommen eines Strings
    • strtok — Zerlegt einen String
    • strtolower — Setzt einen String in Kleinbuchstaben um
    • strtoupper — Wandelt alle Zeichen eines Strings in Großbuchstaben um
    • strtr — Tauscht Zeichen aus oder ersetzt Zeichenketten
    • substr_compare — Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge
    • substr_count — Ermittelt, wie oft eine Zeichenkette in einem String vorkommt
    • substr_replace — Ersetzt Text innerhalb einer Zeichenkette
    • substr — Gibt einen Teil eines Strings zurück
    • trim — Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings
    • ucfirst — Verwandelt das erste Zeichen eines Strings in einen Großbuchstaben
    • ucwords — Wandelt jeden ersten Buchstaben eines Wortes innerhalb eines Strings in einen Großbuchstaben um
    • vfprintf — Schreibt einen formatierten String in einen Stream
    • vprintf — Gibt einen formatierten String aus
    • vsprintf — Gibt einen formatierten String zurück
    • wordwrap — Umbricht einen String nach einer bestimmten Anzahl Zeichen
  • Changelog


Einführung

Mit diesen Funktionen werden Strings (Zeichenketten) auf verschiedene Arten verändert. Spezielle Anwendungen können in den Abschnitten zu regulären Ausdrücken (regular expression) und der URL-Handhabung gefunden werden.

Informationen zur Funktionsweise von Strings (insbesondere beim Gebrauch von einfachen bzw. doppelten Anführungszeichen und Escape-Sequenzen) erhalten Sie unter dem Strings-Eintrag im Kapitel Typen des Manuals.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

CRYPT_SALT_LENGTH int
CRYPT_STD_DES int
Gibt an, ob Standard-DES-basierte Hashes von crypt() unterstützt werden. Immer 1.
CRYPT_EXT_DES int
Gibt an, ob erweiterte DES-basierte Hashes von crypt() unterstützt werden. Immer 1.
CRYPT_MD5 int
Gibt an, ob MD5-Hashes von crypt() unterstützt werden. Immer 1.
CRYPT_BLOWFISH int
Gibt an, ob Blowfish-Hashes von crypt() unterstützt werden. Immer 1.
CRYPT_SHA256 int
Gibt an, ob SHA-256-Hashes von crypt() unterstützt werden. Immer 1.
CRYPT_SHA512 int
Gibt an, ob SHA-512-Hashes von crypt() unterstützt werden. Immer 1.
HTML_SPECIALCHARS (int)
HTML_ENTITIES (int)
ENT_COMPAT (int)
ENT_QUOTES (int)
ENT_NOQUOTES (int)
ENT_IGNORE (int)
ENT_SUBSTITUTE (int)
ENT_DISALLOWED (int)
ENT_HTML401 (int)
ENT_XML1 (int)
ENT_XHTML (int)
ENT_HTML5 (int)
CHAR_MAX (int)
LC_CTYPE (int)
LC_NUMERIC (int)
LC_TIME (int)
LC_COLLATE (int)
LC_MONETARY (int)
LC_ALL (int)
LC_MESSAGES (int)
STR_PAD_LEFT (int)
STR_PAD_RIGHT (int)
STR_PAD_BOTH (int)


String-Funktionen

Siehe auch

Schauen Sie sich die Perl-kompatiblen Funktionen für reguläre Ausdrücke an, wenn Sie noch mächtigere Funktionen zur String-Verarbeitung nutzen möchten. Zur Arbeit mit Multibyte-Zeichenkodierungen stehen die Multibyte String Funktionen zur Verfügung.

Inhaltsverzeichnis

  • addcslashes — Stellt bestimmten Zeichen eines Strings ein "\" voran (wie in C)
  • addslashes — Stellt bestimmten Zeichen eines Strings ein "\" voran
  • bin2hex — Wandelt Binär-Daten in ihre hexadezimale Entsprechung um
  • chop — Alias von rtrim
  • chr — Erzeugt eine Ein-Byte-Zeichenkette aus einer Zahl
  • chunk_split — Zerlegt einen String in Teile gleicher Länge
  • convert_cyr_string — Konvertiert Strings von einem kyrillischen Zeichensatz in einen anderen
  • convert_uudecode — Dekodiert eine UU-kodierte Zeichenkette
  • convert_uuencode — UU-kodiert eine Zeichenkette
  • count_chars — Gibt Informationen über die in einem String enthaltenen Zeichen zurück
  • crc32 — Berechnet den polynomischen CRC32-Wert eines Strings
  • crypt — Einweg-String-Hashing
  • echo — Gibt einen oder mehrere Strings aus
  • explode — Teilt eine Zeichenkette anhand einer Zeichenkette
  • fprintf — Schreibt einen formatierten String in einen Stream
  • get_html_translation_table — Gibt die Umwandlungs-Tabelle zurück, die von htmlspecialchars und htmlentities verwendet wird
  • hebrev — Konvertiert logischen hebräischen Text in sichtbaren Text
  • hebrevc — Konvertiert (natürlichen) hebräischen Text in sichtbaren Text inkl. Anpassung von Zeilenumbrüchen
  • hex2bin — Dekodiert einen hexadezimal kodierten Binärstring
  • html_entity_decode — Konvertiert HTML-Entities in ihre entsprechenden Zeichen
  • htmlentities — Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um
  • htmlspecialchars_decode — Konvertiert besondere HTML-Auszeichnungen zurück in Buchstaben
  • htmlspecialchars — Wandelt Sonderzeichen in HTML-Codes um
  • implode — Verbindet Array-Elemente zu einem String
  • join — Alias von implode
  • lcfirst — Wandelt den ersten Buchstaben eines Strings in einen Kleinbuchstaben um
  • levenshtein — Berechnet die Levenshtein-Distanz zwischen zwei Strings
  • localeconv — Ermittelt die Formatierungsinformationen für Zahlen
  • ltrim — Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings
  • md5_file — Berechnet den MD5-Code einer Datei
  • md5 — Errechnet den MD5-Hash eines Strings
  • metaphone — Berechnet den Metaphone-Schlüssel eines Strings
  • money_format — Formatiert eine Zahl als Währungs-Zeichenkette
  • nl_langinfo — Query-Language und Locale-Information
  • nl2br — Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein
  • number_format — Formatiert eine Zahl mit Tausender-Trennzeichen
  • ord — Konvertiert das erste Byte einer Zeichenkette in einen Wert zwischen 0 und 255
  • parse_str — Überträgt einen String in Variablen
  • print — Ausgabe eines Strings
  • printf — Gibt einen formatierten String aus
  • quoted_printable_decode — Konvertiert einen "quoted-printable"-String in einen 8-Bit-String
  • quoted_printable_encode — Wandelt einen 8Bit-String in sein 'Quoted Printable' Gegenstück
  • quotemeta — Maskiert (quotet) Meta-Zeichen
  • rtrim — Entfernt Leerraum (oder andere Zeichen) vom Ende eines Strings
  • setlocale — Legt regionale (locale) Einstellungen fest
  • sha1_file — Berechnet den SHA1-Hash einer Datei
  • sha1 — Berechnet den SHA1-Hash eines Strings
  • similar_text — Berechnet die Ähnlichkeit zweier Zeichenketten
  • soundex — Berechnet die Laut-Ähnlichkeit eines Strings
  • sprintf — Gibt einen formatierten String zurück
  • sscanf — Überträgt einen String in ein angegebenes Format
  • str_contains — Determine if a string contains a given substring
  • str_ends_with — Checks if a string ends with a given substring
  • str_getcsv — Parst einen CSV-String in ein Array
  • str_ireplace — Groß- und kleinschreibungsunabhängige Version von str_replace
  • str_pad — Erweitert einen String unter Verwendung eines anderen Strings auf eine bestimmte Länge
  • str_repeat — Wiederholt einen String
  • str_replace — Ersetzt alle Vorkommen des Suchstrings durch einen anderen String
  • str_rot13 — Führt die ROT13-Transformation auf einen String aus
  • str_shuffle — Mischt einen String nach dem Zufallsprinzip
  • str_split — Konvertiert einen String in ein Array
  • str_starts_with — Checks if a string starts with a given substring
  • str_word_count — Gibt Informationen über in einem String verwendete Worte zurück
  • strcasecmp — Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)
  • strchr — Alias von strstr
  • strcmp — Vergleich zweier Strings (Binary safe)
  • strcoll — Locale-basierter Zeichenkettenvergleich
  • strcspn — Ermittelt die Anzahl der nicht übereinstimmenden Zeichen
  • strip_tags — Entfernt HTML- und PHP-Tags aus einem String
  • stripcslashes — Entfernt Quotes aus mit addcslashes behandelten Strings
  • stripos — Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
  • stripslashes — Entfernt Maskierungszeichen aus einem String
  • stristr — Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • strlen — Ermitteln der String-Länge
  • strnatcasecmp — String-Vergleich "natürlicher Ordnung" ohne Berücksichtigung der Groß- und Kleinschreibung
  • strnatcmp — String-Vergleich unter Verwendung einer "natürlichen Ordnung"
  • strncasecmp — Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen
  • strncmp — String-Vergleich der ersten n Zeichen (Binary safe)
  • strpbrk — Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen
  • strpos — Sucht die Position des ersten Vorkommens des Suchstrings in einem String
  • strrchr — Sucht das letzte Vorkommen eines Zeichens in einem String
  • strrev — Kehrt einen String um
  • strripos — Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
  • strrpos — Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
  • strspn — Ermittelt die Länge des initialen Abschnitts einer Zeichenkette, der ausschließlich aus Zeichen besteht, die in einer übergebenen Maske enthalten sind
  • strstr — Findet das erste Vorkommen eines Strings
  • strtok — Zerlegt einen String
  • strtolower — Setzt einen String in Kleinbuchstaben um
  • strtoupper — Wandelt alle Zeichen eines Strings in Großbuchstaben um
  • strtr — Tauscht Zeichen aus oder ersetzt Zeichenketten
  • substr_compare — Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge
  • substr_count — Ermittelt, wie oft eine Zeichenkette in einem String vorkommt
  • substr_replace — Ersetzt Text innerhalb einer Zeichenkette
  • substr — Gibt einen Teil eines Strings zurück
  • trim — Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings
  • ucfirst — Verwandelt das erste Zeichen eines Strings in einen Großbuchstaben
  • ucwords — Wandelt jeden ersten Buchstaben eines Wortes innerhalb eines Strings in einen Großbuchstaben um
  • vfprintf — Schreibt einen formatierten String in einen Stream
  • vprintf — Gibt einen formatierten String aus
  • vsprintf — Gibt einen formatierten String zurück
  • wordwrap — Umbricht einen String nach einer bestimmten Anzahl Zeichen


Stellt bestimmten Zeichen eines Strings ein "\" voran (wie in C)

  • « String-Funktionen
  • addslashes »
  • PHP Manual
  • String-Funktionen
  • Stellt bestimmten Zeichen eines Strings ein "\" voran (wie in C)

addcslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

addcslashes — Stellt bestimmten Zeichen eines Strings ein "\" voran (wie in C)

Beschreibung

addcslashes ( string $string , string $characters ) : string

Gibt eine Zeichenkette zurück, in der allen Zeichen, die in characters aufgeführt sind, ein "\" vorangestellt ist.

Parameter-Liste

string

Die zu maskierende Zeichenkette.

characters

Eine Liste der zu maskierenden Zeichen. Wenn characters Zeichen wie \n, \r etc. enthält, werden diese im C-Stil konvertiert, während andere nicht-alphanumerische Zeichen mit einem ASCII-Wert kleiner als 32 oder höher als 126 in ihre oktale Repräsentation umgewandelt werden.

Wenn Sie eine Zeichensequenz im charlist-Parameter notieren, informieren Sie sich darüber, welche Zeichen sich zwischen dem ersten und dem letzten Zeichen befinden!

<?php
echo addcslashes('foo[ ]', 'A..z');
// Ausgabe:  \f\o\o\[ \]
// Alle groß- und kleingeschriebenen Buchstaben werden maskiert
// ... aber ebenfalls die Zeichen [\]^_`
?>
Beachten Sie zudem, dass sofern das erste Zeichen einer Sequenz einen höheren ASCII-Wert hat, als das zweite, keine Sequenz erstellt wird. Nur das erste und das letzte Zeichen sowie Punkte werden dann maskiert. Verwenden Sie die Funktion ord(), um den ASCII-Wert eines Zeichens zu ermitteln.
<?php
echo addcslashes("zoo['.']", 'z..A');
// Ausgabe:  \zoo['\.']
?>

Seien Sie besonders vorsichtig, wenn Sie Zeichen wie 0, a, b, f, n, r, t oder v maskieren möchten. Sie werden zu \0, \a, \b, \f, \n, \r, \t oder \v gewandelt, die in C sämtlich vordefinierte Escape-Sequenzen sind. Viele dieser Sequenzen sind ebenfalls in anderen von C abgeleiteten Sprachen, einschließlich PHP, vordefiniert. Das bedeutet, dass Sie u.U. nicht das gewünschte Ergebnis erhalten, wenn Sie die Rückgabe von addslashes() verwenden, um Code in diesen Sprachen zu erzeugen, wenn diese Zeichen in charlist definiert sind.

Rückgabewerte

Gibt die maskierte Zeichenkette zurück.

Beispiele

characters-Angaben wie "\0..\37" (oktal) bewirken ein Maskieren aller Zeichen mit einem ASCII-Code zwischen 0 und 31 (dezimal).

Beispiel #1 addcslashes()-Beispiel

<?php
$maskiert = addcslashes($nicht_maskiert, "\0..\37!@\177..\377");
?>

Siehe auch

  • stripcslashes() - Entfernt Quotes aus mit addcslashes behandelten Strings
  • stripslashes() - Entfernt Maskierungszeichen aus einem String
  • addslashes() - Stellt bestimmten Zeichen eines Strings ein "\" voran
  • htmlspecialchars() - Wandelt Sonderzeichen in HTML-Codes um
  • quotemeta() - Maskiert (quotet) Meta-Zeichen


Stellt bestimmten Zeichen eines Strings ein "\" voran

  • « addcslashes
  • bin2hex »
  • PHP Manual
  • String-Funktionen
  • Stellt bestimmten Zeichen eines Strings ein "\" voran

addslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

addslashes — Stellt bestimmten Zeichen eines Strings ein "\" voran

Beschreibung

addslashes ( string $string ) : string

Gibt einen String (Zeichenkette) zurück, in dem bestimmten Zeichen ein Backslash "\" voran gestellt wurde. Die behandelten Zeichen sind:

  • einfaches Anführungszeichen (')
  • doppeltes Anführungszeichen (")
  • Backslash (\)
  • NUL (das NUL-Byte)

Ein Anwendungsfall für die Verwendung von addslashes() ist das Maskieren der zuvor erwähnten Zeichen in einer Zeichenkette, die von PHP ausgewertet werden soll.

<?php
$str = "O'Reilly?";
eval("echo '" . addslashes($str) . "';");
?>

Vor PHP 5.4.0 war die Direktive magic_quotes_gpc standardmäßig on, und diese führt im Wesentlichen addslashes() auf alle GET-, POST- und COOKIE-Daten aus. addslashes() darf nicht auf Zeichenketten angewendet werden, die bereits mit magic_quotes_gpc maskiert wurden, da die Zeichenketten sonst doppelt maskiert werden. get_magic_quotes_gpc() kann verwendet werden, um zu prüfen, ob magic_quotes_gpc gleich on ist.

Die Funktion addslashes() wird manchmal fälschlicherweise verwendet, um zu versuchen SQL-Injection zu verhinden. Statt dessen sollten datenbankspezifische Maskierungfunktionen und/oder vorbereitete Anweisungen verwendet werden.

Parameter-Liste

string

Die zu maskierende Zeichenkette.

Rückgabewerte

Gibt die maskierte Zeichenkette zurück.

Beispiele

Beispiel #1 Ein addslashes()-Beispiel

<?php
$str = "Ist dein Name wirklich O'Reilly?";

// Ausgabe: Ist dein Name wirklich O\'Reilly?
echo addslashes($str);
?>

Siehe auch

  • stripcslashes() - Entfernt Quotes aus mit addcslashes behandelten Strings
  • stripslashes() - Entfernt Maskierungszeichen aus einem String
  • addcslashes() - Stellt bestimmten Zeichen eines Strings ein "\" voran (wie in C)
  • htmlspecialchars() - Wandelt Sonderzeichen in HTML-Codes um
  • quotemeta() - Maskiert (quotet) Meta-Zeichen
  • get_magic_quotes_gpc() - Ermittelt die aktuelle Konfiguration von magic_quotes_gpc


Wandelt Binär-Daten in ihre hexadezimale Entsprechung um

  • « addslashes
  • chop »
  • PHP Manual
  • String-Funktionen
  • Wandelt Binär-Daten in ihre hexadezimale Entsprechung um

bin2hex

(PHP 4, PHP 5, PHP 7, PHP 8)

bin2hex — Wandelt Binär-Daten in ihre hexadezimale Entsprechung um

Beschreibung

bin2hex ( string $string ) : string

Gibt einen ASCII-String zurück, der die hexadezimale Wiedergabe des Parameters string enthält. Die Umwandlung geschieht byteweise mit dem höchsten Anteil (4 Bit, "high-nibble") zuerst.

Parameter-Liste

string

Eine Zeichenkette.

Rückgabewerte

Gibt die hexadezimale Darstellung des übergebenen Strings zurück.

Siehe auch

  • hex2bin() - Dekodiert einen hexadezimal kodierten Binärstring
  • pack() - Packt Daten in eine binäre Zeichenkette


Alias von rtrim

  • « bin2hex
  • chr »
  • PHP Manual
  • String-Funktionen
  • Alias von rtrim

chop

(PHP 4, PHP 5, PHP 7, PHP 8)

chop — Alias von rtrim()

Beschreibung

Diese Funktion ist ein Alias für: rtrim().

Anmerkungen

Hinweis:

chop() unterscheidet sich von der Perl-Funktion chop(), die das letzte Zeichen eines Strings entfernt.


Erzeugt eine Ein-Byte-Zeichenkette aus einer Zahl

  • « chop
  • chunk_split »
  • PHP Manual
  • String-Funktionen
  • Erzeugt eine Ein-Byte-Zeichenkette aus einer Zahl

chr

(PHP 4, PHP 5, PHP 7, PHP 8)

chr — Erzeugt eine Ein-Byte-Zeichenkette aus einer Zahl

Beschreibung

chr ( int $codepoint ) : string

Gibt einen Ein-Zeichen-String zurück, der das angegebene Zeichen enthält, wobei codepoint als vorzeichenlose Ganzzahl interpretiert wird.

Dies kann verwendet werden, um einen Ein-Zeichen-String in einer Ein-Byte-Kodierung wie ASCII, ISO-8859 oder Windows 1252 zu erzeugen, indem die Position des gewünschten Zeichens in der Kodierungszuordnungstabelle übergeben wird. Allerdings ist zu beachten, dass diese Funktion die Zeichenkettenkodierung ignoriert, und insbesondere kein Unicode-Codepoint übergeben werden kann, um eine Zeichenkette in einer Multi-Byte-Kodierung wie UTF-8 oder UTF-16 zu erzeugen.

Die Funktion ergänzt ord().

Parameter-Liste

bytevalue

Ein Integer zwischen 0 und 255.

Werte außerhalb des gültigen Bereichs (0..255) werden bitweise mit 255 und-verknüpft, was gleichwertig zu folgendem Algorithmus ist:

while ($bytevalue < 0) {
    $bytevalue += 256;
}
$bytevalue %= 256;

Rückgabewerte

Ein Ein-Zeichen-String, der das angegebene Byte enthält.

Changelog

Version | Beschreibung
7.4.0 | Die Funktion akzeptiert nicht unterstütze codepoints nicht mehr stillschweigend und setzt diese auf 0.

Beispiele

Beispiel #1 chr()-Beispiel

<?php
// Es wird angenommen, dass die Zeichenkette als ASCII oder ASCII-kompatible Kodierung verwendet wird
$str = "Dieser String endet mit einem Escape-Zeichen: ";
$str .= chr(27); /* fügt das Escape-Zeichen an das Ende von $str an */

/* Die häufig praktischere Lösung: */

$str = sprintf("Dieser String endet mit einem Escape-Zeichen: %c", 27);
?>

Beispiel #2 Überlauf-Verhalten

<?php
echo chr(-159), chr(833), PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

aA

Beispiel #3 Erstellen eines UTF-8-String aus einzelnen Bytes

<?php
$str = chr(240) . chr(159) . chr(144) . chr(152);
echo $str;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

??

Siehe auch

  • sprintf() - Gibt einen formatierten String zurück mit der Formatierungsanweisung %c
  • ord()
  • Eine » ASCII-Tabelle
  • mb_chr()


Zerlegt einen String in Teile gleicher Länge

  • « chr
  • convert_cyr_string »
  • PHP Manual
  • String-Funktionen
  • Zerlegt einen String in Teile gleicher Länge

chunk_split

(PHP 4, PHP 5, PHP 7, PHP 8)

chunk_split — Zerlegt einen String in Teile gleicher Länge

Beschreibung

chunk_split ( string $string , int $length = 76 , string $separator = "\r\n" ) : string

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 RFC 2045 entsprechen müssen. Die Funktion fügt die in separator angegebene Zeichenkette nach jeweils length Zeichen in den ursprünglichen String ein.

Parameter-Liste

string

Die zu zerlegende Zeichenkette.

length

Die Länge der einzelnen Teilstücke.

separator

Die Zeilenend-Sequenz.

Rückgabewerte

Gibt den zerteilten String zurück.

Beispiele

Beispiel #1 chunk_split()-Beispiel

<?php
// formatiert $data unter Beachtung von RFC 2045
$neuer_string = chunk_split(base64_encode($data));
?>

Siehe auch

  • str_split() - Konvertiert einen String in ein Array
  • explode() - Teilt eine Zeichenkette anhand einer Zeichenkette
  • split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array
  • wordwrap() - Umbricht einen String nach einer bestimmten Anzahl Zeichen
  • » RFC 2045


Konvertiert Strings von einem kyrillischen Zeichensatz in einen anderen

  • « chunk_split
  • convert_uudecode »
  • PHP Manual
  • String-Funktionen
  • Konvertiert Strings von einem kyrillischen Zeichensatz in einen anderen

convert_cyr_string

(PHP 4, PHP 5, PHP 7)

convert_cyr_string — Konvertiert Strings von einem kyrillischen Zeichensatz in einen anderen

Warnung

Diese Funktion ist seit PHP 7.4.0 VERALTET und seit PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

convert_cyr_string ( string $str , string $from , string $to ) : string

Konvertiert Strings von einem kyrillischen Zeichensatz in einen anderen.

Parameter-Liste

str

Die zu konvertierende Zeichenkette.

from

Der kyrillische Herkunftszeichensatz als einzelnes Zeichen.

to

Der kyrillische Zielzeichensatz als einzelnes Zeichen.

Unterstützte Zeichen sind:

  • k - koi8-r
  • w - windows-1251
  • i - iso8859-5
  • a - x-cp866
  • d - x-cp866
  • m - x-mac-cyrillic

Rückgabewerte

Gibt die konvertierte Zeichenkette zurück.

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • mb_convert_encoding() - Convert character encoding
  • iconv() - Konvertiert Zeichenketten in einen anderen Zeichensatz


Dekodiert eine UU-kodierte Zeichenkette

  • « convert_cyr_string
  • convert_uuencode »
  • PHP Manual
  • String-Funktionen
  • Dekodiert eine UU-kodierte Zeichenkette

convert_uudecode

(PHP 5, PHP 7, PHP 8)

convert_uudecode — Dekodiert eine UU-kodierte Zeichenkette

Beschreibung

convert_uudecode ( string $string ) : string|false

convert_uudecode() dekodiert eine UU-kodierte Zeichenkette.

Hinweis: convert_uudecode() akzeptiert weder die begin- noch die end-Zeile, die Teil von UU-kodierten Dateien sind.

Parameter-Liste

string

Die UU-kodierten Daten.

Rückgabewerte

Gibt die dekodierten Daten als Zeichenkette zurück. Im Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 convert_uudecode()-Beispiel

<?php
echo convert_uudecode("+22!L;W9E(%!(4\"$`\n`");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

I love PHP!

Siehe auch

  • convert_uuencode() - UU-kodiert eine Zeichenkette


UU-kodiert eine Zeichenkette

  • « convert_uudecode
  • count_chars »
  • PHP Manual
  • String-Funktionen
  • UU-kodiert eine Zeichenkette

convert_uuencode

(PHP 5, PHP 7, PHP 8)

convert_uuencode — UU-kodiert eine Zeichenkette

Beschreibung

convert_uuencode ( string $string ) : string

convert_uuencode() kodiert eine Zeichenkette unter Verwendung des UUencode-Algorithmus (Unix-to-Unix-Kodierung).

Die Unix-zu-Unix-Kodierung wandelt alle Zeichenketten (einschließlich Binärdaten) in druckbare Zeichen um, damit ihre korrekte Übermittlung über ein Netzwerk sichergestellt werden kann. UU-kodierte Daten sind etwa 35 % länger als ihr Original.

Hinweis: convert_uuencode() erzeugt weder die begin- noch die end-Zeile, die Teil von UU-kodierten Dateien sind.

Parameter-Liste

string

Die zu kodierenden Daten.

Rückgabewerte

Gibt die UU-kodierten Daten zurück.

Changelog

Version | Beschreibung
8.0.0 | Vor dieser Version wurde beim Versuch, eine leere Zeichenkette zu konvertieren, ohne besonderen Grund false zurückgegeben.

Beispiele

Beispiel #1 convert_uuencode()-Beispiel

<?php
$some_string = "test\ntext text\r\n";

echo convert_uuencode($some_string);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0=&5S=`IT97AT('1E>'0-"@``
`

Siehe auch

  • convert_uudecode() - Dekodiert eine UU-kodierte Zeichenkette
  • base64_encode() - Kodiert Daten MIME base64


Gibt Informationen über die in einem String enthaltenen Zeichen zurück

  • « convert_uuencode
  • crc32 »
  • PHP Manual
  • String-Funktionen
  • Gibt Informationen über die in einem String enthaltenen Zeichen zurück

count_chars

(PHP 4, PHP 5, PHP 7, PHP 8)

count_chars — Gibt Informationen über die in einem String enthaltenen Zeichen zurück

Beschreibung

count_chars ( string $string , int $mode = 0 ) : array|string

Zählt die Häufigkeit des Vorkommens jedes einzelnen Byte-Wertes (0..255) in string und gibt sie auf verschiedene Arten zurück.

Parameter-Liste

string

Die zu untersuchende Zeichenkette.

mode

Siehe Rückgabewerte.

Rückgabewerte

Abhängig von mode gibt count_chars() eine der folgenden Möglichkeiten zurück:

  • 0 - ein Array mit den Byte-Werten als Schlüssel und deren jeweiliger Häufigkeit als Wert.
  • 1 - wie 0, allerdings werden nur Byte-Werte ausgegeben, die mindestens einmal vorkommen.
  • 2 - wie 0, allerdings werden nur Byte-Werte, die nicht vorkommen, aufgelistet.
  • 3 - eine Zeichenkette, die alle vorkommenden Zeichen enthält.
  • 4 - eine Zeichenkette, die alle nicht vorkommenden Zeichen enthält.

Changelog

Version | Beschreibung
8.0.0 | Vor dieser Version hat die Funktion bei Auftreten eines Fehlers false zurückgegeben.

Beispiele

Beispiel #1 count_chars()-Beispiel

<?php
$data = "Zwei Z und ein F.";

foreach (count_chars($data, 1) as $i => $val) {
   echo "Es gibt $val Vorkommen von \"" , chr($i) , "\" in der Zeichenkette.\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Es gibt 4 Vorkommen von " " in der Zeichenkette.
Es gibt 1 Vorkommen von "." in der Zeichenkette.
Es gibt 1 Vorkommen von "F" in der Zeichenkette.
Es gibt 2 Vorkommen von "Z" in der Zeichenkette.
Es gibt 1 Vorkommen von "d" in der Zeichenkette.
Es gibt 2 Vorkommen von "e" in der Zeichenkette.
Es gibt 2 Vorkommen von "i" in der Zeichenkette.
Es gibt 2 Vorkommen von "n" in der Zeichenkette.
Es gibt 1 Vorkommen von "u" in der Zeichenkette.
Es gibt 1 Vorkommen von "w" in der Zeichenkette.

Siehe auch

  • strpos() - Sucht die Position des ersten Vorkommens des Suchstrings in einem String
  • substr_count() - Ermittelt, wie oft eine Zeichenkette in einem String vorkommt


Berechnet den polynomischen CRC32-Wert eines Strings

  • « count_chars
  • crypt »
  • PHP Manual
  • String-Funktionen
  • Berechnet den polynomischen CRC32-Wert eines Strings

crc32

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

crc32 — Berechnet den polynomischen CRC32-Wert eines Strings

Beschreibung

crc32 ( string $string ) : int

Berechnet die zyklisch redundante polynomische Prüfsumme mit einer Länge von 32 Bit für string. Dies wird gewöhnlich für die Integritätsprüfung übermittelter Daten verwendet.

Warnung

Da der Datentyp Integer von PHP vorzeichenbehaftet ("signed") ist, resultieren viele Prüfsummen auf 32bit Plattformen in negativen Integer-Werten. In 64bit Installationen sind jedoch alle crc32()-Ergebnisse positive Ganzzahlen.

Daher ist die "%u" Typangabe von sprintf() oder printf() nötig, um die Stringrepräsentation der vorzeichenlosen crc32()-Prüfsumme im Dezimalformat zu erhalten.

Für die hexadezimale Repräsentation der Prüfsumme kann entweder
die "%x" Typangabe von sprintf() oder
printf() oder die
dechex()-Umwandlungsfunktion verwendet werden; beide
sorgen für die Konvertierung des
crc32()-Ergebnisses in eine vorzeichenlose Ganzzahl.

Es wurde in Erwägung gezogen, auch in 64bit-Installationen negative Ganzzahlen für höhere Ergebniswerte zurückzugeben, aber das hätte die Hexadezimalumwandlung ruiniert, da dann negative Ganzzahlen ein zusätzliches 0xFFFFFFFF########-Offset erhielten. Da die hexadezimale Repräsentation der meist verbreitete Anwendungsfall scheint, wurde entschieden das nicht zu tun, auch wenn es direkte dezimale Vergleiche in etwa 50% der Fälle ruiniert, wenn von 32bit auf 64bit gewechselt wird.

Die Funktion eine Ganzzahl zurückgeben zu lassen, war im Nachhinein gesehen möglicherweise nicht die beste Idee, und gleich einen Hex-String zurückzugeben (wie z.B. md5()) könnte gleich zu Anfang ein besserer Plan gewesen sein.

Für eine portablere Lösung ist das generische hash() in Erwägung zu ziehen. hash("crc32b", $str) liefert die gleiche Zeichenkette wie str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT).

Parameter-Liste

string

Die Daten.

Rückgabewerte

Gibt die CRC32-Prüfsumme von string als Integer zurück.

Beispiele

Beispiel #1 Anzeigen einer CRC32-Prüfsumme

Das folgende Beispiel zeigt, wie eine konvertierte Prüfsumme mittels der Funktion printf() ausgegeben wird:

<?php
$pruefsumme = crc32("Der schnelle braune Fuchs sprang über den trägen Hund.");
printf("%u\n", $pruefsumme);
?>

Siehe auch

  • hash() - Berechnet den Hash einer Nachricht
  • md5() - Errechnet den MD5-Hash eines Strings
  • sha1() - Berechnet den SHA1-Hash eines Strings


Einweg-String-Hashing

  • « crc32
  • echo »
  • PHP Manual
  • String-Funktionen
  • Einweg-String-Hashing

crypt

(PHP 4, PHP 5, PHP 7, PHP 8)

crypt — Einweg-String-Hashing

Warnung

Diese Funktion ist (bis jetzt) nicht binary safe!

Beschreibung

crypt ( string $string , string $salt ) : string

crypt() gibt einen Hash-String zurück, der unter Verwendung des DES-basierten Unix-Standard-Hashingalgorithmus oder eines anderen Algorithmus erstellt wurde.

Der salt-Parameter ist optional. Allerdings erzeugt crypt() ohne das salt einen schwachen Hash und einen E_NOTICE-Fehler. Es ist darauf zu achten ein ausreichend starkes Salt für bessere Sicherheit anzugeben.

password_hash() verwendet einen starken Hash, erzeugt
ein starkes Salt und wendet eine angemessene Anzahl von Runden automatisch
an. password_hash() ist ein einfacher
crypt()-Wrapper und kompatibel zu bestehenden
Passwort-Hashes. Die Verwendung von password_hash() wird
empfohlen.

Der verwendete Algorithmus wird durch das Salt-Argument bestimmt. Wird kein Salt angegeben, erzeugt PHP entweder einen 12-Zeichen-MD5-Salt oder, falls MD5 nicht verfügbar ist, einen 2-Zeichen-DES-Salt. PHP setzt eine Konstante CRYPT_SALT_LENGTH, welche die Länge des längsten von den Algorithmen unterstützen Salts enthält.

Der Standard-DES-Algorithmus gibt den Salt als erste 2 Zeichen zurück. Weiterhin werden nur die ersten acht Zeichen von string genutzt. Wenn also eine längere Zeichenkette verwendet wird, die mit den selben 8 Buchstaben beginnt, so erhalten Sie denselben Rückgabewert (sofern Sie ebenfalls den gleichen Salt genutzt haben).

Die folgenden Hash-Typen werden unterstützt.

  • CRYPT_STD_DES - Standard DES-Hash mit einem 2-Zeichen-Salt aus dem Alphabet "./0-9A-Za-z". Bei Nutzung eines ungültigen Zeichens schlägt crypt() fehl.
  • CRYPT_EXT_DES - Erweitertes DES-basiertes Hashing mit einem 9-Zeichen-Salt, welcher aus einem Unterstrich, 4 Zeichen Iterationsanzahl und 4 Zeichen Salt besteht. Iterationsanzahl und Salt werden durch Zeichen aus dem Alphabet "./0-9A-Za-z" dargestellt. Bei Nutzung eines ungültigen Zeichens schlägt crypt() fehl.
  • CRYPT_MD5 - MD5-Hashing mit 12-Zeichen-Salt, beginnend mit "$1$"
  • CRYPT_BLOWFISH - Blowfish-Hash mit einem Salt folgenden Aufbaus: "$2a$", "$2x$" oder "$2y$", gefolgt von einem zweistelligen Kostenparameter, einem weiteren "$" und 22 Zeichen des Alphabets "./0-9A-Za-z". Bei Nutzung eines ungültigen Zeichens gibt crypt() einen leeren String zurück. Der zweistellige Kostenparameter ist der binäre Logarithmus der Iterationsanzahl für den zugrundeliegenden Blowfish-basierten Hash-Algorithmus und muss im Bereich von 04-31 liegen. Bei Nutzung von Werten außerhalb dieses Bereichs schlägt crypt() fehl. "$2x$"-Hashes sind potenziell schwach; "$2a$"-Hashes sind kompatibel und entschärfen diese Schwäche. Für neue Hashes sollte "$2y$" verwendet werden. Für vollständige Informationen zur zugehörigen Sicherheitskorrektur siehe » dieses Dokument.
  • CRYPT_SHA256 - SHA-256 Hash mit einem 16-Zeichen-Salt, beginnend mit "$5$". Wenn anschließend "rounds=<N>$" folgt, gibt der Zahlenwert von N die Iterationsanzahl an, ansonsten wird 5000 als Anzahl angenommen. Die Anzahl muss zwischen 1000 und 999,999,999 liegen. Falls ein Wert außerhalb dieses Bereichs angegeben wird, wird die jeweils näher liegende Grenze als Anzahl genutzt.
  • CRYPT_SHA512 - SHA-512 Hash mit einem 16-Zeichen-Salt, beginnend mit "$6$". Wenn anschließend "rounds=<N>$" folgt, gibt der Zahlenwert von N die Iterationsanzahl an, ansonsten wird 5000 als Anzahl angenommen. Die Anzahl muss zwischen 1000 und 999,999,999 liegen. Falls ein Wert außerhalb dieses Bereichs angegeben wird, wird die jeweils näher liegende Grenze als Anzahl genutzt.

Parameter-Liste

string

Die zu hashende Zeichenkette.

Achtung

Die Verwendung des CRYPT_BLOWFISH-Algorithmus hat zur Folge, dass der string-Parameter auf eine Länge von maximal 72 Zeichen gekürzt wird.

salt

Ein optionaler Salt-String, der die Schlüsselbasis bildet. Falls dieser nicht angegeben wird, hängt das Verhalten von der Implementierung des Algorithmus ab und kann daher zu unerwarteten Ergebnissen führen. (Wenn beispielsweise ein Server MD5 unterstützt und der andere nur DES, dann würden beide unterschiedliche Rückgabewerte produzieren, obwohl der String eigentlich gleich ist.)

Rückgabewerte

Gibt die gehashte Zeichenkette zurück oder im Fehlerfall eine Zeichenkette, die kürzer ist als 13 Zeichen und garantiert ist, nicht dem Salt zu entsprechen.

Warnung

Wenn Passwörter überprüft werden, sollte eine Zeichenkettenvergleichsfunktion, die nicht anfällig für Rechenzeitangriffe ist, verwendet werden, um die Ausgabe von crypt() mit dem zuvor bekannten Hash zu vergleichen. PHP stellt zu diesem Zweck hash_equals() zur Verfügung.

Changelog

Version | Beschreibung
8.0.0 | salt ist nicht mehr optional.

Beispiele

Beispiel #1 crypt()-Beispiele

<?php
// Den Salt automatisch generieren lassen; nicht empfohlen
$gehashtes_passwort = crypt('mein_Pwd');

/* Sie sollten das vollständige Ergebnis von crypt() als Salt zum
   Passwort-Vergleich übergeben, um Problemen mit unterschiedlichen
   Hash-Algorithmen vorzubeugen. (Wie bereits ausgeführt, verwendet
   ein Standard-DES-Passwort-Hash einen 2-Zeichen-Salt, ein
   MD5-basierter hingegen nutzt 12 Zeichen. */
if (crypt($benutzer_eingabe, $gehashtes_passwort) == $gehashtes_passwort) {
   echo "Passwort stimmt überein!";
}
?>

Beispiel #2 Verwendung von crypt() für htpasswd

<?php
// Passwort setzen
$passwort = 'mein_Pwd';

// Hash mit automatisch erstelltem Salt generieren lassen; nicht empfohlen
$hash = crypt($passwort);
?>

Beispiel #3 Verwendung von crypt() mit verschiedenen Hash-Arten

<?php
/* Die im folgenden Code genutzen Salts sind nur Beispiele und sollten nicht
   in dieser Form benutzt werden. Stattdessen muss für jedes Password ein neuer,
   korrekt formatierter Salt generiert werden.
*/
echo 'Standard DES: ',
    crypt('rasmuslerdorf', 'rl'),
    "\n";
echo 'Extended DES: ',
    crypt('rasmuslerdorf', '_J9..rasm'),
    "\n";
echo 'MD5:          ',
    crypt('rasmuslerdorf', '$1$rasmusle$'),
    "\n";
echo 'Blowfish:     ',
    crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$'),
    "\n";
echo 'SHA-256:      ',
    crypt('rasmuslerdorf', '$5$rounds=5000$usesomesillystringforsalt$'),
    "\n";
echo 'SHA-512:      ',
    crypt('rasmuslerdorf', '$6$rounds=5000$usesomesillystringforsalt$'),
    "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Standard DES: rl.3StKT.4T8M
Extended DES: _J9..rasmBYk8r9AiWNc
MD5:          $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish:     $2y$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi
SHA-256:      $5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6
SHA-512:      $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21

Anmerkungen

Hinweis: Es existiert keine decrypt-Funktion, da crypt() ein Einweg-Algorithmus ist.

Siehe auch

  • hash_equals() - Timing attack safe string comparison
  • password_hash() - Erstellt einen Passwort-Hash
  • md5() - Errechnet den MD5-Hash eines Strings
  • Lesen Sie die Man-Pages ihres Unix-Systems, wenn Sie weitere Informationen zu crypt benötigen.


Gibt einen oder mehrere Strings aus

  • « crypt
  • explode »
  • PHP Manual
  • String-Funktionen
  • Gibt einen oder mehrere Strings aus

echo

(PHP 4, PHP 5, PHP 7, PHP 8)

echo — Gibt einen oder mehrere Strings aus

Beschreibung

echo ( string ...$expressions ) : void

Gibt einen oder mehrere Ausdrücke ohne zusätzliche Zeilenumbrüche oder Leerzeichen aus.

echo ist keine Funktion, sondern ein Sprachkonstrukt. Seine Argumente sind eine Liste von Ausdrücken, die dem Schlüsselwort echo folgen und nicht durch Kommas getrennt und durch Klammern abgegrenzt sind. Im Gegensatz zu einigen anderen Sprachkonstrukten hat echo keinen Rückgabewert, sodass es nicht im Zusammenhang mit einem Ausdruck verwendet werden kann.

echo besitzt zusätzlich eine Syntax-Kurzform, bei der Sie ein Gleichheitszeichen direkt nach einem öffnenden PHP-Tag anfügen. Diese Syntax ist auch bei deaktivierter Konfigurationseinstellung short_open_tag verfügbar.

Ich habe <?=$foo?> foo.

Der Hauptunterschied zu print ist, dass echo mehrere Argumente entgegennimmt, und keinen Rückgabewert hat.

Parameter-Liste

expressions

Ein oder mehrere durch Kommas getrennte String-Ausdrücke, die ausgegeben werden sollen. Nicht-String-Werte werden in Strings umgewandelt, auch wenn die Direktive strict_types aktiviert ist.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 echo-Beispiele

<?php
echo "echo benötigt keine Klammern.";

// Strings können entweder individuell als mehrere Argumente oder
// miteinander verbunden als einzelnes Argument übergeben werden
echo 'Dieser ', 'String ', 'besteht ', 'aus ', 'mehreren Parametern.', "\n";
echo 'Dieser  ' . 'String ' . 'wurde ' . 'mit ' . 'Stringverkettung erzeugt.' . "\n";

// Es wird kein Zeilenumbruch oder Leerzeichen eingefügt; das Folgende gibt
// "HalloWelt" in einer Zeile aus
echo "Hallo";
echo "Welt";

// Dasselbe wie oben
echo "Hallo", "Welt";

echo "Dieser String umfasst
mehrere Zeilen. Die Zeilenumbrüche
werden mit ausgegeben.";

echo "Dieser String umfasst\nmehrere Zeilen. Die Zeilenumbrüche\nwerden mit ausgegeben.";

// Das Argument kann ein beliebiger Ausdruck sein, der einen String erzeugt
$foo = "ein Beispiel";
echo "foo ist $foo"; // foo ist ein Beispiel

$fruechte = ["Zitrone", "Orange", "Banane"];
echo implode(" und ", $fruechte); // Zitrone und Orange und Banane

// Nicht-String-Ausdrücke werden in String umgewandelt, auch wenn
// declare(strict_types=1) verwendet wird
echo 6 * 7; // 42

// Da echo sich nicht wie ein Ausdruck verhält, ist der folgende Code ungültig.
($eine_variable) ? echo 'true' : echo 'false';

// Folgende Beispiele funktionieren hingegen:
($eine_variable) ? print 'true' : print 'false'; // print ist auch ein Konstrukt,
                         // aber es ist ein gültiger Ausdruck, der 1 zurückgibt,
                         // also kann es in diesem Kontext verwendet werden.

echo $eine_variable ? 'true': 'false'; // den Ausdruck zuerst auswerten und dann an
                                       // echo übergeben
?>

Anmerkungen

Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen verwenden.

Hinweis: Die Verwendung mit Klammern

Wenn ein einzelnes Argument in Klammern an echo übergeben wird, löst das keinen Syntaxfehler aus und erzeugt eine Syntax, die wie ein normaler Funktionsaufruf aussieht. Dies kann jedoch irreführend sein, denn die Klammern sind tatsächlich Teil des auszugebenden Ausdrucks und nicht Teil der echo-Syntax selbst.

<?php
echo "Hallo";
// gibt "Hallo" aus

echo("Hallo");
// gibt auch "Hallo" aus, weil ("Hallo") ein gültiger Ausdruck ist

echo(1 + 2) * 3;
// gibt "9" aus; die Klammern bewirken, dass zuerst 1+2 ausgewertet wird, dann 3*3
// Die echo-Anweisung sieht den gesamten Ausdruck als ein Argument

echo "Hallo", " Welt";
// gibt "Hallo Welt" aus

echo("Hallo"), (" Welt");
// gibt "Hallo Welt" aus; the parentheses are part of each expression

echo("Hallo", " Welt");
// löst eine Syntaxfehler aus, weil ("Hallo", " Welt") kein gültiger Ausdruck ist
?>

Tipp

Die Übergabe mehrerer Argumente an echo kann Schwierigkeiten vermeiden, die durch den Vorrang des Verkettungsoperators in PHP entstehen. Zum Beispiel hat der Verkettungsoperator eine höhere Priorität als der Ternäre und vor PHP 8.0.0 hatte er die gleiche Rangfolge wie die Addition und die Subtraktion:

<?php
// Im Folgenden wird der Ausdruck 'Hallo ' . isset($name) zuerst ausgewertet
// und ist immer wahr, daher ist das Argument für echo immer $name
echo 'Hallo ' . isset($name) ? $name : 'Max Mustermann' . '!';

// Das beabsichtigte Verhalten erfordert zusätzliche Klammern
echo 'Hallo ' . (isset($name) ? $name : 'Max Mustermann') . '!';

// Vor PHP 8.0.0 gibt das folgende "2" aus, statt "Summe: 3"
echo 'Sum: ' . 1 + 2;

// Auch hier stellt das Hinzufügen von Klammern die beabsichtigte Reihenfolge
// der Auswertung sicher
echo 'Summe: ' . (1 + 2);

Falls mehrere Argumente übergeben werden, dann sind Klammern nicht erforderlich, um die Vorrangigkeit zu erzwingen, da jeder Ausdruck für sich steht:

<?php
echo "Hallo ", isset($name) ? $name : "Max Mustermann", "!";

echo "Summe: ", 1 + 2;

Siehe auch

  • print - Ausgabe eines Strings
  • printf() - Gibt einen formatierten String aus
  • flush() - Leert (sendet) den System-Ausgabepuffer
  • Möglichkeiten literale Strings anzugeben


Teilt eine Zeichenkette anhand einer Zeichenkette

  • « echo
  • fprintf »
  • PHP Manual
  • String-Funktionen
  • Teilt eine Zeichenkette anhand einer Zeichenkette

explode

(PHP 4, PHP 5, PHP 7, PHP 8)

explode — Teilt eine Zeichenkette anhand einer Zeichenkette

Beschreibung

explode ( string $separator , string $string , int $limit = PHP_INT_MAX ) : array

Gibt ein Array aus Strings zurück, die jeweils Teil von string sind. Die Abtrennung erfolgt dabei an der mit separator angegebenen Zeichenkette.

Parameter-Liste

separator

Die Begrenzungszeichenkette.

string

Die Eingabezeichenkette.

limit

Ist der Parameter limit angegeben und positiv, enthält das zurückgegebene Array maximal limit Elemente, wobei das letzte Element den Rest von string beinhaltet.

Ist der Parameter limit negativ, werden alle Teilstrings bis auf die letzten -limit-Teile zurückgegeben.

Wenn der Parameter limit gleich 0 ist, wird er wie 1 behandelt.

Hinweis:

Vor PHP 8.0 akzeptierte implode() die Parameter in beliebiger Reihenfolge. explode() hat dies nie unterstützt. Stellen Sie daher sicher, dass Sie den Parameter separator vor dem Parameter string notieren.

Rückgabewerte

Gibt ein array von strings zurück, die durch Aufsplitten des string-Parameters an Begrenzungen durch separator erzeugt werden.

Ist separator ein leerer String (""), so gibt explode() false zurück. Enthält separator einen Wert, der nicht in string vorkommt und wird ein negativer Wert für limit verwendet, wird ein leeres array zurückgegeben. Für alle anderen Werte von limit wird ein array zurückgegeben, das den string als einziges Element enthält.

Beispiele

Beispiel #1 explode()-Beispiele

<?php
// Beispiel 1
$pizza  = "Teil1 Teil2 Teil3 Teil4 Teil5 Teil6";
$teile = explode(" ", $pizza);
echo $teile[0]; // Teil1
echo $teile[1]; // Teil2

// Beispiel 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

Beispiel #2 explode()-Rückgabe-Beispiel

<?php
/*
   Eine Zeichenkette, die nicht das Trennzeichen enthält, wird einfach
   ein ein-elementiges Array mit der ursprünglichen Zeichenkette liefern.
*/
$input1 = "hallo";
$input2 = "hallo,da";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1)
(
    [0] => string(5) "hallo"
)
array(2)
(
    [0] => string(5) "hallo"
    [1] => string(5) "da"
)
array(2)
(
    [0] => string(0) ""
    [1] => string(0) ""
)

Beispiel #3 limit-Parameterbeispiele

<?php
$str = 'eins|zwei|drei|vier';

// positiver Wert in "limit"
print_r(explode('|', $str, 2));

// negative Wert in "limit" (ab PHP 5.1)
print_r(explode('|', $str, -1));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => eins
    [1] => zwei|drei|vier
)
Array
(
    [0] => eins
    [1] => zwei
    [2] => drei
)

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • preg_split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
  • str_split() - Konvertiert einen String in ein Array
  • mb_split() - Split multibyte string using regular expression
  • str_word_count() - Gibt Informationen über in einem String verwendete Worte zurück
  • strtok() - Zerlegt einen String
  • implode() - Verbindet Array-Elemente zu einem String


Schreibt einen formatierten String in einen Stream

  • « explode
  • get_html_translation_table »
  • PHP Manual
  • String-Funktionen
  • Schreibt einen formatierten String in einen Stream

fprintf

(PHP 5, PHP 7, PHP 8)

fprintf — Schreibt einen formatierten String in einen Stream

Beschreibung

fprintf ( resource $stream , string $format , mixed ...$values ) : int

Schreibt einen gemäß format erstellten String in den Stream handle.

Parameter-Liste

stream

Eine Dateisystemressource (resource), wie sie in der Regel von fopen() zurückgegeben wird.

format

Der Formatstring setzt sich aus keiner oder mehreren Anweisungen zusammen: Normale Zeichen (abgesehen von %), die direkt in das Ergebnis kopiert werden und Konvertierungsanweisungen, die jeweils ihre eigenen Parameter abrufen.

Eine Konvertierungsanweisung folgt diesem Prototypen: %[ArgNum$][Flags][Weite][.Präzision]Spezifizierer.

ArgNum

Eine Ganzzahl gefolgt von einem Dollarzeichen $, die die Nummer des Arguments angibt, das für die Konversion verwendet werden soll.

Flags
Flag | Beschreibung
- Linksbündig innerhalb der angegebenen Feldbreite; Rechtsbündig ist der Standard
+ Positive Zahlen mit einem Pluszeichen +; Standardmäßig werden nur negative Zahlen mit negativen Vorzeichen ausgegeben
(Leerzeichen) | Füllt das Ergebnis mit Leerzeichen auf. Dies ist der Standard.
0 | Füllt nach Links mit Nullen auf. Mit dem s-Spezifizierer kann dies auch nach rechts mit Nullen auffüllen.
'(Zeichen) | Füllt das Ergebnis mit dem angegebenen Zeichen auf.

Weite

Eine Ganzzahle die angibt, wie viele Zeichen (Minimum) das Konvertierungsergebnis haben soll.

Präzision

Die Bedeutung eines Punkts . gefolgt von einer Ganzzahl hängt vom Spezifizierer ab:

  • Für die Spezifizierer e, E, f und F: Dies stellt die Anzahl der Nachkommastellen an, die nach dem Dezimaltrennzeichen ausgegeben werden soll (Standradmäßig ist dies 6).
  • Für die Spezifizierer g und G: Die maximale Anzahl der auszugebenenden signifikanten Nachkommastellen.
  • Für den s Spezifizierer: Verhält sich wie ein Abschneidepunkt, der eine maximale Anzahl an Zeichen in der Zeichenkette angibt.

Hinweis: Wenn der Punkt ohne einen expliziten Wert für die Präzision angegeben wird, wird 0 angenommen.

Hinweis: Wird ein Spezifizierer angegeben, der größer ist als PHP_INT_MAX, so wird eine Warnung ausgegeben.

Spezifizierer
Spezifizierer | Beschreibung
% Ein Prozentzeichen. Kein Parameter nötig.
b | Der Parameter wird als Ganzzahl behandelt und als Binärzahl ausgegeben.
c | Der Parameter wird als Ganzzahl behandelt und als Zeichen aus dem ASCII-Zeichensatz ausgegeben.
d | Der Parameter wird als Ganzzahl behandelt und als (vorzeichenbehaftete) Dezimalzahl ausgegeben.
e | Der Parameter wird als Zahl in wissenschaftlicher Schreibweise (z.B. 1.2e+2) behandelt. Die Angabe der Präzision steht seit PHP 5.2.1 für die Anzahl Zeichen nach dem Dezimalpunkt. In früheren Versionen wurde dies als die Anzahl signifikanter Dezimalstellen betrachtet (eins weniger).
E | Wie der Spezifizierer e, aber schreibt einen Großbuchstaben (z.B. 1.2E+2).
f | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl ausgegeben (abhängig von der Locale).
F | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl (unabhängig von der Locale) ausgegeben. Verfügbar seit PHP 5.0.3.
g

Generelles Format.

Sei P die Präzision wenn nicht Null, 6 wenn die Präzision nicht angegeben ist oder 1 wenn die Präzision Null ist. Dann, wenn eine Konvertierung mittels E einen Exponenten von X hätte:

Wenn P > X = -4 ist die Konvertierung mit Spezifizierer f und Präzision P - (X + 1). Andernfalls wie mit Spezifizierer e und Präzision P - 1.

G | Wie der Spezifizierer g, aber es wird E und f verwendet.
h | Wie der Spezifizierer g, aber es werden F verwendet. Verfügbar ab PHP 8.0.0.
H | Wie der Spezifizierer g, aber es werden E und F verwendet. Verfügbar ab PHP 8.0.0.
o | Der Parameter wird als Ganzzahl betrachtet und als Oktalzahl ausgegeben.
s | Der Parameter wird als Zeichenkette betrachtet und ausgegeben.
u | Der Parameter wird als Ganzzahl betrachtet und als vorzeichenlose Dezimalzahl ausgegeben.
x | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Kleinbuchstaben) ausgegeben.
X | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Großbuchstaben) ausgegeben.

Warnung

Der Spezifizierer c ignoriert Auffüllung und Weite.

Warnung

Der Versuch, die Kombination aus Zeichenketten mit Weite-Spezifizierern und Zeichensätzen die mehr als ein Byte pro zeichen erwarten zu verwenden, führt zu unvorhersehbaren Ergebnissen.

Variablen werden auf einen für den Spezifizier passenden Typen umgewandelt:

Typ-Behandlung
Typ | Spezifizierer
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

values

Rückgabewerte

Gibt die Länge der geschriebenen Zeichenkette zurück.

Beispiele

Beispiel #1 fprintf(): Integer mit vorangestellten Nullen

<?php
if (!($fp = fopen('date.txt', 'w'))) {
    return;
}

fprintf($fp, "%04d-%02d-%02d", $year, $month, $day);
// schreibt ein ISO-formatiertes Datum in die Datei date.txt
?>

Beispiel #2 fprintf(): Formatieren einer Währung

<?php
if (!($fp = fopen('waehrung.txt', 'w'))) {
    return;
}

$betrag1 = 68.75;
$betrag2 = 54.35;
$summe = $betrag1 + $betrag2;
// echo $summe würde "123.1" ausgeben;
$laenge = fprintf($fp, '%01.2f', $summe);
// schreibt "123.10" in waehrung.txt

echo "$laenge Bytes wurden in waehrung.txt geschrieben";
// verwendet den Rückgabewert von fprintf um die Anzahl der geschriebenen Bytes herauszufinden
?>

Siehe auch

  • printf() - Gibt einen formatierten String aus
  • sprintf() - Gibt einen formatierten String zurück
  • vprintf() - Gibt einen formatierten String aus
  • vsprintf() - Gibt einen formatierten String zurück
  • vfprintf() - Schreibt einen formatierten String in einen Stream
  • sscanf() - Überträgt einen String in ein angegebenes Format
  • fscanf() - Interpretiert den Input einer Datei entsprechend einem angegebenen Format
  • number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen
  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum


Gibt die Umwandlungs-Tabelle zurück, die von htmlspecialchars und htmlentities verwendet wird

  • « fprintf
  • hebrev »
  • PHP Manual
  • String-Funktionen
  • Gibt die Umwandlungs-Tabelle zurück, die von htmlspecialchars und htmlentities verwendet wird

get_html_translation_table

(PHP 4, PHP 5, PHP 7, PHP 8)

get_html_translation_table — Gibt die Umwandlungs-Tabelle zurück, die von htmlspecialchars() und htmlentities() verwendet wird

Beschreibung

get_html_translation_table ( int $table = HTML_SPECIALCHARS , int $flags = ENT_COMPAT , string $encoding = "UTF-8" ) : array

get_html_translation_table() gibt die Umwandlungs-Tabelle zurück, die intern in den Funktionen htmlspecialchars() und htmlentities() verwendet wird.

Hinweis:

Sonderzeichen können auf unterschiedliche Weise kodiert werden. " kann kodiert werden als &quot;, &#34; oder &#x22. get_html_translation_table() gibt nur die von htmlspecialchars() und htmlentities() genutze Form zurück.

Parameter-Liste

table

Welche Tabelle zurückgegeben werden soll. Entweder HTML_ENTITIES oder HTML_SPECIALCHARS.

flags

Eine Bitmaske von einem oder mehreren der folgenden Flags, welche festlegen, welche Anführungszeichen die Tabelle enthalten wird, sowie für welchen Dokumenttyp sie ist. Der Standardwert ist ENT_COMPAT | ENT_HTML401.

Verfügbare flags-Konstanten
Konstantenname | Beschreibung
ENT_COMPAT | Tabelle soll Entities für doppelte Anführungszeichen enthalten, aber nicht für einfache.
ENT_QUOTES | Tabelle soll Entities sowohl für einfache, als auch doppelte Anführungszeichen enthalten.
ENT_NOQUOTES | Tabelle soll weder Entities für einfache, noch für doppelte Anführungszeichen enthalten.
ENT_HTML401 | Tabelle für HTML 4.01.
ENT_XML1 | Tabelle für XML 1.
ENT_XHTML | Tabelle für XHTML.
ENT_HTML5 | Tabelle für HTML 5.

encoding

Definiert die zu verwendende Zeichenkodierung. Wenn nicht angegeben, ist der Standardwert für dieses Argument UTF-8.

Die folgenden Zeichensätze werden unterstützt:

Unterstützte Zeichensätze
Zeichensatz | Alias | Beschreibung
ISO-8859-1 | ISO8859-1 | Westeuropäisch, Latin-1.
ISO-8859-5 | ISO8859-5 | Wenig verwendeter kyrillischer Zeichensatz (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Westeuropäisch, Latin-9. Enthält das Euro-Zeichen sowie französische und finnische Buchstaben, die in Latin-1(ISO-8859-1) fehlen.
UTF-8 | ASCII-kompatibles Multi-Byte 8-Bit Unicode.
cp866 | ibm866, 866 | DOS-spezifischer kyrillischer Zeichensatz.
cp1251 | Windows-1251, win-1251, 1251 | Windows-spezifischer kyrillischer Zeichensatz.
cp1252 | Windows-1252, 1252 | Windows spezifischer Zeichensatz für westeuropäische Sprachen.
KOI8-R | koi8-ru, koi8r | Russisch.
BIG5 | 950 | Traditionelles Chinesisch, hauptsächlich in Taiwan verwendet.
GB2312 | 936 | Vereinfachtes Chinesisch, nationaler Standard-Zeichensatz.
BIG5-HKSCS | Big5 mit Hongkong-spezifischen Erweiterungen; traditionelles Chinesisch.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japanisch
EUC-JP | EUCJP, eucJP-win | Japanisch
MacRoman | Zeichensatz, der von Mac OS verwendet wurde.
'' Eine leere Zeichenkette aktiviert die Erkennung durch die Kodierung des Skripts (Zend multibyte), default_charset und die aktuelle Sprachumgebung (siehe nl_langinfo() und setlocale()), in dieser Reihenfolge. Nicht empfehlenswert.

Hinweis: Weitere Zeichensätze sind nicht implementiert. Statt dessen wird die Standard-Kodierung verwendet und eine Warnung ausgegeben.

Rückgabewerte

Gibt die Umwandlungstabelle als Array zurück, wobei die ursprünglichen Zeichen die Schlüssel sind und die Entities die Werte.

Beispiele

Beispiel #1 Umwandlungs-Tabellen-Beispiel

<?php
var_dump(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES | ENT_HTML5));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1510) {
  ["
"]=>
  string(9) "&NewLine;"
  ["!"]=>
  string(6) "&excl;"
  ["""]=>
  string(6) "&quot;"
  ["#"]=>
  string(5) "&num;"
  ["$"]=>
  string(8) "&dollar;"
  ["%"]=>
  string(8) "&percnt;"
  ["&"]=>
  string(5) "&amp;"
  ["'"]=>
  string(6) "&apos;"
  // ...
}

Siehe auch

  • htmlspecialchars() - Wandelt Sonderzeichen in HTML-Codes um
  • htmlentities() - Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um
  • html_entity_decode() - Konvertiert HTML-Entities in ihre entsprechenden Zeichen


Konvertiert logischen hebräischen Text in sichtbaren Text

  • « get_html_translation_table
  • hebrevc »
  • PHP Manual
  • String-Funktionen
  • Konvertiert logischen hebräischen Text in sichtbaren Text

hebrev

(PHP 4, PHP 5, PHP 7, PHP 8)

hebrev — Konvertiert logischen hebräischen Text in sichtbaren Text

Beschreibung

hebrev ( string $string , int $max_chars_per_line = 0 ) : string

Konvertiert logischen hebräischen Text in sichtbaren Text.

Die Funktion versucht, Umbrüche in Wörtern zu vermeiden.

Parameter-Liste

string

Eine hebräische Eingabezeichenkette.

max_chars_per_line

Der optionale Parameter gibt die maximale Zeichenanzahl pro Ausgabe-Zeile an.

Rückgabewerte

Gibt eine sichtbare Zeichenkette zurück.

Siehe auch

  • hebrevc() - Konvertiert (natürlichen) hebräischen Text in sichtbaren Text inkl. Anpassung von Zeilenumbrüchen


Konvertiert (natürlichen) hebräischen Text in sichtbaren Text inkl. Anpassung von Zeilenumbrüchen

  • « hebrev
  • hex2bin »
  • PHP Manual
  • String-Funktionen
  • Konvertiert (natürlichen) hebräischen Text in sichtbaren Text inkl. Anpassung von Zeilenumbrüchen

hebrevc

(PHP 4, PHP 5, PHP 7)

hebrevc — Konvertiert (natürlichen) hebräischen Text in sichtbaren Text inkl. Anpassung von Zeilenumbrüchen

Warnung

Diese Funktion ist seit PHP 7.4.0 VERALTET und seit PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

hebrevc ( string $hebrew_text , int $max_chars_per_line = 0 ) : string

Diese Funktion entspricht hebrev() mit dem Unterschied, dass Zeilenumbrüche (\n) zu "<br>\n" umgewandelt werden.

Die Funktion versucht, Umbrüche in Wörtern zu vermeiden.

Parameter-Liste

hebrew_text

Eine hebräische Eingabezeichenkette.

max_chars_per_line

Der optionale Parameter gibt die maximale Zeichenanzahl pro Ausgabezeile an.

Rückgabewerte

Gibt eine sichtbare Zeichenkette zurück.

Siehe auch

  • hebrev() - Konvertiert logischen hebräischen Text in sichtbaren Text


Dekodiert einen hexadezimal kodierten Binärstring

  • « hebrevc
  • html_entity_decode »
  • PHP Manual
  • String-Funktionen
  • Dekodiert einen hexadezimal kodierten Binärstring

hex2bin

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

hex2bin — Dekodiert einen hexadezimal kodierten Binärstring

Beschreibung

hex2bin ( string $string ) : string|false

Dekodiert einen hexadezimal kodierten Binärstring.

Achtung

Diese Funktion konvertiert eine Hexadezimalzahl NICHT in eine Binärzahl. Dafür kann stattdessen die base_convert() Funktion verwendet werden.

Parameter-Liste

string

Hexadezimale Repräsentation von Daten.

Rückgabewerte

Gibt die binäre Repräsentation der Daten zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Falls die Länge des Eingabestrings ungerade ist, oder dieser ein ungültiger hexadezimaler String ist, wird ein E_WARNING-Fehler geworfen.

Beispiele

Beispiel #1 hex2bin()-Beispiel

<?php
$hex = hex2bin("4865786164657a696d616c6520426569737069656c646174656e");
var_dump($hex);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(26) "Hexadezimale Beispieldaten"

Siehe auch

  • bin2hex() - Wandelt Binär-Daten in ihre hexadezimale Entsprechung um
  • unpack() - Entpackt die Daten einer binäre Zeichenkette


Konvertiert HTML-Entities in ihre entsprechenden Zeichen

  • « hex2bin
  • htmlentities »
  • PHP Manual
  • String-Funktionen
  • Konvertiert HTML-Entities in ihre entsprechenden Zeichen

html_entity_decode

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

html_entity_decode — Konvertiert HTML-Entities in ihre entsprechenden Zeichen

Beschreibung

html_entity_decode ( string $string , int $flags = ENT_COMPAT , string|null $encoding = null ) : string

html_entity_decode() ist das Gegenstück zu htmlentities(), welches HTML-Entities innerhalb von string in ihre entsprechenden Zeichen zurückwandelt.

Genau gesagt dekodiert diese Funktion alle Entities (einschließlich aller numerischen Entities), die a) auf jeden Fall gültig für den gewählten Dokumenttyp sind — d.h. für XML dekodiert diese Funktion keine benannten Entities, die in einer DTD definiert sein könnten — und b) deren Zeichen in der Zeichenkodierung und im gewählten Dokumenttyp erlaubt sind. Alle anderen Entities bleiben wie sie sind.

Parameter-Liste

string

Die Eingabezeichenkette.

flags

Eine Bitmaske von einem oder mehreren der folgenden Flags, die die Behandlung von Anführungszeichen, sowie den zu nutzenden Dokumententyp festlegen. Der Standardwert ist ENT_COMPAT | ENT_HTML401.

Verfügbare flags-Konstanten
Konstantenname | Beschreibung
ENT_COMPAT | Konvertiert doppelte Anführungszeichen und lässt einfache Anführungszeichen unberührt.
ENT_QUOTES | Konvertiert sowohl doppelte als auch einfache Anführungszeichen.
ENT_NOQUOTES | Lässt sowohl doppelte als auch einfache Anführungszeichen unberührt.
ENT_HTML401 | Behandle Code als HTML 4.01.
ENT_XML1 | Behandle Code als XML 1.
ENT_XHTML | Behandle Code als XHTML.
ENT_HTML5 | Behandle Code als HTML 5.

encoding

Ein optionaler Parameter, der die Zeichenkodierung für eine Konvertierung definiert.

Wird der Parameter encoding ausgelassen, so wird der Wert der Konfigurationsoption default_charset als Standardwert dafür verwendet.

Obwohl dieser Parameter technisch gesehen optional ist, wird dringend empfohlen, den korrekten Wert für den jeweiligen Code anzugeben, falls die Konfigurationsoption default_charset für die jeweilige Eingabe möglicherweise falsch gesetzt ist.

Die folgenden Zeichensätze werden unterstützt:

Unterstützte Zeichensätze
Zeichensatz | Alias | Beschreibung
ISO-8859-1 | ISO8859-1 | Westeuropäisch, Latin-1.
ISO-8859-5 | ISO8859-5 | Wenig verwendeter kyrillischer Zeichensatz (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Westeuropäisch, Latin-9. Enthält das Euro-Zeichen sowie französische und finnische Buchstaben, die in Latin-1(ISO-8859-1) fehlen.
UTF-8 | ASCII-kompatibles Multi-Byte 8-Bit Unicode.
cp866 | ibm866, 866 | DOS-spezifischer kyrillischer Zeichensatz.
cp1251 | Windows-1251, win-1251, 1251 | Windows-spezifischer kyrillischer Zeichensatz.
cp1252 | Windows-1252, 1252 | Windows spezifischer Zeichensatz für westeuropäische Sprachen.
KOI8-R | koi8-ru, koi8r | Russisch.
BIG5 | 950 | Traditionelles Chinesisch, hauptsächlich in Taiwan verwendet.
GB2312 | 936 | Vereinfachtes Chinesisch, nationaler Standard-Zeichensatz.
BIG5-HKSCS | Big5 mit Hongkong-spezifischen Erweiterungen; traditionelles Chinesisch.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japanisch
EUC-JP | EUCJP, eucJP-win | Japanisch
MacRoman | Zeichensatz, der von Mac OS verwendet wurde.
'' Eine leere Zeichenkette aktiviert die Erkennung durch die Kodierung des Skripts (Zend multibyte), default_charset und die aktuelle Sprachumgebung (siehe nl_langinfo() und setlocale()), in dieser Reihenfolge. Nicht empfehlenswert.

Hinweis: Weitere Zeichensätze sind nicht implementiert. Statt dessen wird die Standard-Kodierung verwendet und eine Warnung ausgegeben.

Rückgabewerte

Gibt die dekodierte Zeichenkette zurück.

Changelog

Version | Beschreibung
8.0.0 | encoding ist jetzt ein Nullable-Typ.

Beispiele

Beispiel #1 Dekodieren benannter HTML-Zeichen

<?php
$orig = "I'll \"walk\" the <b>dog</b> now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b; // I'll "walk" the <b>dog</b> now
?>

Anmerkungen

Hinweis:

Sie wundern sich vielleicht, warum trim(html_entity_decode('&nbsp;')); den String nicht zu einem leeren Sting reduziert. Der Grund dafür ist, dass '&nbsp;' in der Standard-Kodierung nicht dem Zeichen mit ASCII-Code 32 entspricht (dieses wird von trim() entfernt), sondern dem Zeichen mit ASCII-Code 160 (0xa0).

Siehe auch

  • htmlentities() - Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um
  • htmlspecialchars() - Wandelt Sonderzeichen in HTML-Codes um
  • get_html_translation_table() - Gibt die Umwandlungs-Tabelle zurück, die von htmlspecialchars und htmlentities verwendet wird
  • urldecode() - Dekodiert eine URL-kodierte Zeichenkette


Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um

  • « html_entity_decode
  • htmlspecialchars_decode »
  • PHP Manual
  • String-Funktionen
  • Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um

htmlentities

(PHP 4, PHP 5, PHP 7, PHP 8)

htmlentities — Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um

Beschreibung

htmlentities ( string $string , int $flags = ENT_COMPAT , string|null $encoding = null , bool $double_encode = true ) : string

Die Funktion ist komplett identisch zu htmlspecialchars(), allerdings wandelt htmlentities() wirklich alle Zeichen, die eine HTML-Code-Entsprechung haben, in diese Entsprechung um.

Möchten Sie stattdessen die HTML-Entities dekodieren, verwenden Sie bitte die Funktion html_entity_decode().

Parameter-Liste

string

Die Eingabezeichenkette.

flags

Eine Bitmaske von einem oder mehreren der folgenden Flags, die die Behandlung von Anführungszeichen, ungültigen Zeichenfolgen und den genutzten Dokumententyp festlegen. Der Standardwert ist ENT_COMPAT | ENT_HTML401.

Verfügbare flags-Konstanten
Konstante | Beschreibung
ENT_COMPAT | Konvertiert nur doppelte Anführungszeichen und lässt einfache Anführungszeichen unverändert.
ENT_QUOTES | Konvertiert sowohl doppelte als auch einfache Anführungszeichen.
ENT_NOQUOTES | Lässt doppelte und einfache Anführungszeichen unverändert.
ENT_IGNORE | Verwirft ungültige Code-Unit-Sequenzen anstatt eine leere Zeichenkette zurückzugeben. Die Nutzung dieser Option ist nicht empfehlenswert, da sie » Auswirkungen auf die Sicherheit haben kann.
ENT_SUBSTITUTE | Ersetzt ungültige Code-Unit-Sequenzen mit einem Unicode-Ersatzzeichen U+FFFD (UTF-8) oder &#FFFD; (andernfalls).
ENT_DISALLOWED | Ersetzt Codepoints, welche in dem angegebenen Dokumenttyp ungültig sind, mit einem Unicode-Ersatzzeichen U+FFFD (UTF-8) oder &#FFFD; (andernfalls), anstatt sie zu belassen wie sie sind. Dies kann zum Beispiel nützlich sein, um die Wohlgeformtheit von XML-Dokumenten mit eingebetteten externen Inhalten sicherzustellen.
ENT_HTML401 | Behandle Code als HTML 4.01.
ENT_XML1 | Behandle Code als XML 1.
ENT_XHTML | Behandle Code als XHTML.
ENT_HTML5 | Behandle Code als HTML 5.

encoding

Ein optionaler Parameter, der die Zeichenkodierung für eine Konvertierung definiert.

Wird der Parameter encoding ausgelassen, so wird der Wert der Konfigurationsoption default_charset als Standardwert dafür verwendet.

Obwohl dieser Parameter technisch gesehen optional ist, wird dringend empfohlen, den korrekten Wert für den jeweiligen Code anzugeben, falls die Konfigurationsoption default_charset für die jeweilige Eingabe möglicherweise falsch gesetzt ist.

Die folgenden Zeichensätze werden unterstützt:

Unterstützte Zeichensätze
Zeichensatz | Alias | Beschreibung
ISO-8859-1 | ISO8859-1 | Westeuropäisch, Latin-1.
ISO-8859-5 | ISO8859-5 | Wenig verwendeter kyrillischer Zeichensatz (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Westeuropäisch, Latin-9. Enthält das Euro-Zeichen sowie französische und finnische Buchstaben, die in Latin-1(ISO-8859-1) fehlen.
UTF-8 | ASCII-kompatibles Multi-Byte 8-Bit Unicode.
cp866 | ibm866, 866 | DOS-spezifischer kyrillischer Zeichensatz.
cp1251 | Windows-1251, win-1251, 1251 | Windows-spezifischer kyrillischer Zeichensatz.
cp1252 | Windows-1252, 1252 | Windows spezifischer Zeichensatz für westeuropäische Sprachen.
KOI8-R | koi8-ru, koi8r | Russisch.
BIG5 | 950 | Traditionelles Chinesisch, hauptsächlich in Taiwan verwendet.
GB2312 | 936 | Vereinfachtes Chinesisch, nationaler Standard-Zeichensatz.
BIG5-HKSCS | Big5 mit Hongkong-spezifischen Erweiterungen; traditionelles Chinesisch.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japanisch
EUC-JP | EUCJP, eucJP-win | Japanisch
MacRoman | Zeichensatz, der von Mac OS verwendet wurde.
'' Eine leere Zeichenkette aktiviert die Erkennung durch die Kodierung des Skripts (Zend multibyte), default_charset und die aktuelle Sprachumgebung (siehe nl_langinfo() und setlocale()), in dieser Reihenfolge. Nicht empfehlenswert.

Hinweis: Weitere Zeichensätze sind nicht implementiert. Statt dessen wird die Standard-Kodierung verwendet und eine Warnung ausgegeben.

double_encode

Wenn double_encode ausgeschaltet ist, verändert PHP keine bereits vorhandenen HTML-Entities. Standardmäßig wird jedoch alles konvertiert.

Rückgabewerte

Gibt die kodierte Zeichenkette zurück.

Enthält der string eine in dem übergebenen encoding ungültige Code-Unit-Sequenz, wird eine leere Zeichenkette zurückgegeben, sofern weder das ENT_IGNORE- noch das ENT_SUBSITUTE-Flag gesetzt sind.

Changelog

Version | Beschreibung
8.0.0 | encoding ist jetzt ein Nullable-Typ.

Beispiele

Beispiel #1 Ein htmlentities()-Beispiel

<?php
$str = "Ein 'Anführungszeichen' ist <b>fett</b>";

// Gibt aus: Ein 'Anf&uuml;hrungszeichen' ist &lt;b&gt;fett&lt;/b&gt;
echo htmlentities($str);

// Gibt aus: Ein &#039;Anf&uuml;hrungszeichen&#039; ist &lt;b&gt;fett&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>

Beispiel #2 Nutzung von ENT_IGNORE

<?php
$str = "\x8F!!!";

// Gibt eine leere Zeichenkette aus
echo htmlentities($str, ENT_QUOTES, "UTF-8");

// Gibt "!!!" aus
echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8");
?>

Siehe auch

  • html_entity_decode() - Konvertiert HTML-Entities in ihre entsprechenden Zeichen
  • get_html_translation_table() - Gibt die Umwandlungs-Tabelle zurück, die von htmlspecialchars und htmlentities verwendet wird
  • htmlspecialchars() - Wandelt Sonderzeichen in HTML-Codes um
  • nl2br() - Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein
  • urlencode() - URL-kodiert einen String


Konvertiert besondere HTML-Auszeichnungen zurück in Buchstaben

  • « htmlentities
  • htmlspecialchars »
  • PHP Manual
  • String-Funktionen
  • Konvertiert besondere HTML-Auszeichnungen zurück in Buchstaben

htmlspecialchars_decode

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

htmlspecialchars_decode — Konvertiert besondere HTML-Auszeichnungen zurück in Buchstaben

Beschreibung

htmlspecialchars_decode ( string $string , int $flags = ENT_COMPAT ) : string

Diese Funktion ist das Gegenstück zu htmlspecialchars(). Sie konvertiert besondere HTML-Auszeichnungen zurück in Buchstaben.

Die konvertierten Auszeichnungen sind: &amp;, &quot; (wenn ENT_NOQUOTES nicht gesetzt ist), &#039; (wenn ENT_QUOTES gesetzt ist), &lt; und &gt;.

Parameter-Liste

string

Der zu dekodierende String.

flags

Eine Bitmaske von einem oder mehreren der folgenden Flags, die die Behandlung von Anführungszeichen, sowie den zu nutzenden Dokumententyp festlegen. Der Standardwert ist ENT_COMPAT | ENT_HTML401.

Verfügbare flags-Konstanten
Konstantenname | Beschreibung
ENT_COMPAT | Konvertiert doppelte Anführungszeichen und lässt einfache Anführungszeichen unberührt.
ENT_QUOTES | Konvertiert sowohl doppelte als auch einfache Anführungszeichen.
ENT_NOQUOTES | Lässt sowohl doppelte als auch einfache Anführungszeichen unberührt.
ENT_HTML401 | Behandle Code als HTML 4.01.
ENT_XML1 | Behandle Code als XML 1.
ENT_XHTML | Behandle Code als XHTML.
ENT_HTML5 | Behandle Code als HTML 5.

Rückgabewerte

Gibt den dekodierten String zurück.

Beispiele

Beispiel #1 Ein htmlspecialchars_decode()-Beispiel

<?php
$str = "<p>this -&gt; &quot;</p>\n";

echo htmlspecialchars_decode($str);

// Beachten Sie, dass die Anführungszeichen nicht konvertiert werden
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<p>this -> "</p>
<p>this -> &quot;</p>

Siehe auch

  • htmlspecialchars() - Wandelt Sonderzeichen in HTML-Codes um
  • html_entity_decode() - Konvertiert HTML-Entities in ihre entsprechenden Zeichen
  • get_html_translation_table() - Gibt die Umwandlungs-Tabelle zurück, die von htmlspecialchars und htmlentities verwendet wird


Wandelt Sonderzeichen in HTML-Codes um

  • « htmlspecialchars_decode
  • implode »
  • PHP Manual
  • String-Funktionen
  • Wandelt Sonderzeichen in HTML-Codes um

htmlspecialchars

(PHP 4, PHP 5, PHP 7, PHP 8)

htmlspecialchars — Wandelt Sonderzeichen in HTML-Codes um

Beschreibung

htmlspecialchars ( string $string , int $flags = ENT_COMPAT , string|null $encoding = null , bool $double_encode = true ) : string

Bestimmte Zeichen haben in HTML eine spezielle Bedeutung und sollten in HTML-Code dargestellt werden, um ihre Bedeutung zu behalten. Diese Funktion liefert einen String zurück, in dem diese Konvertierungen durchgeführt wurden. Ist es erforderlich, dass alle Eingabeteilzeichenketten, die zugeordnete benannte Entities haben, übersetzt werden, sollten Sie stattdessen htmlentities() verwenden.

Wenn die Eingabezeichenkette, die dieser Funktion übergeben wird, und das endgültige Dokument den gleichen Zeichensatz haben, ist diese Funktion ausreichend, um Eingaben für die meisten Kontexte eines HTML-Dokuments vorzubereiten. Wenn allerdings die Eingabe Zeichen repräsentieren kann, die nicht im Zeichensatz des endgültigen Dokuments kodiert sind, und Sie wünschen diese Zeichen zu erhalten (als numerische oder benannte Entities), kann sowohl diese Funktion wie auch htmlentities() (die nur Teilzeichenketten, die benannte Entity-Entsprechungen haben, kodiert) ungenügend sein. Sie müssen u.U. stattdessen mb_encode_numericentity() verwenden.

Durchgeführte Ersetzungen
Zeichen | Ersetzung
& (Kaufmanns-Und) | &amp;
" (doppeltes Anführungszeichen) | &quot;, falls ENT_NOQUOTES nicht gesetzt ist
' (einfaches Anführungszeichen) | &#039; (für ENT_HTML401) oder &apos; (für ENT_XML1, ENT_XHTML oder ENT_HTML5), aber nur wenn ENT_QUOTES gesetzt ist
< (kleiner als) | &lt;
> (größer als) | &gt;

Parameter-Liste

string

Die zu konvertierende Zeichenkette.

flags

Eine Bitmaske von einem oder mehreren der folgenden Flags, die die Behandlung von Anführungszeichen, ungültigen Zeichenfolgen und den genutzten Dokumententyp festlegen. Der Standardwert ist ENT_COMPAT | ENT_HTML401.

Verfügbare flags-Konstanten
Konstante | Beschreibung
ENT_COMPAT | Konvertiert nur doppelte Anführungszeichen und lässt einfache Anführungszeichen unverändert.
ENT_QUOTES | Konvertiert sowohl doppelte als auch einfache Anführungszeichen.
ENT_NOQUOTES | Lässt doppelte und einfache Anführungszeichen unverändert.
ENT_IGNORE | Verwirft ungültige Code-Unit-Sequenzen, anstatt eine leere Zeichenkette zurückzugeben. Die Nutzung dieser Option ist nicht empfehlenswert, da sie » Auswirkungen auf die Sicherheit haben kann.
ENT_SUBSTITUTE | Ersetzt ungültige Code-Unit-Sequenzen mit einem Unicode-Ersatzzeichen U+FFFD (UTF-8) oder &#xFFFD; (andernfalls), anstatt eine leere Zeichenkette zurückzugeben.
ENT_DISALLOWED | Ersetzt Codepoints, welche in dem angegebenen Dokumenttyp ungültig sind, mit einem Unicode-Ersatzzeichen U+FFFD (UTF-8) oder &#xFFFD; (andernfalls), anstatt sie zu belassen. Das kann zum Beispiel nützlich sein, um die Wohlgeformtheit von XML-Dokumenten mit eingebetteten externen Inhalten sicherzustellen.
ENT_HTML401 | Behandle Code als HTML 4.01.
ENT_XML1 | Behandle Code als XML 1.
ENT_XHTML | Behandle Code als XHTML.
ENT_HTML5 | Behandle Code als HTML 5.

charset

Ein optionaler Parameter, der die Zeichenkodierung für eine Konvertierung definiert.

Wird der Parameter encoding ausgelassen, so wird der Wert der Konfigurationsoption default_charset als Standardwert dafür verwendet.

Obwohl dieser Parameter technisch gesehen optional ist, wird dringend empfohlen, den korrekten Wert für den jeweiligen Code anzugeben, falls die Konfigurationsoption default_charset für die jeweilige Eingabe möglicherweise falsch gesetzt ist.

Für den Gebrauch dieser Funktion sind die Zeichenkodierungen ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252 und KOI8-R tatsächlich äquivalent, vorausgesetzt der string selbst ist gültig in der Zeichenkodierung, da die von htmlspecialchars() betroffenen Zeichen in allen genannten Zeichenkodierungen an gleicher Position stehen.

Die folgenden Zeichensätze werden unterstützt:

Unterstützte Zeichensätze
Zeichensatz | Alias | Beschreibung
ISO-8859-1 | ISO8859-1 | Westeuropäisch, Latin-1.
ISO-8859-5 | ISO8859-5 | Wenig verwendeter kyrillischer Zeichensatz (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Westeuropäisch, Latin-9. Enthält das Euro-Zeichen sowie französische und finnische Buchstaben, die in Latin-1(ISO-8859-1) fehlen.
UTF-8 | ASCII-kompatibles Multi-Byte 8-Bit Unicode.
cp866 | ibm866, 866 | DOS-spezifischer kyrillischer Zeichensatz.
cp1251 | Windows-1251, win-1251, 1251 | Windows-spezifischer kyrillischer Zeichensatz.
cp1252 | Windows-1252, 1252 | Windows spezifischer Zeichensatz für westeuropäische Sprachen.
KOI8-R | koi8-ru, koi8r | Russisch.
BIG5 | 950 | Traditionelles Chinesisch, hauptsächlich in Taiwan verwendet.
GB2312 | 936 | Vereinfachtes Chinesisch, nationaler Standard-Zeichensatz.
BIG5-HKSCS | Big5 mit Hongkong-spezifischen Erweiterungen; traditionelles Chinesisch.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Japanisch
EUC-JP | EUCJP, eucJP-win | Japanisch
MacRoman | Zeichensatz, der von Mac OS verwendet wurde.
'' Eine leere Zeichenkette aktiviert die Erkennung durch die Kodierung des Skripts (Zend multibyte), default_charset und die aktuelle Sprachumgebung (siehe nl_langinfo() und setlocale()), in dieser Reihenfolge. Nicht empfehlenswert.

Hinweis: Weitere Zeichensätze sind nicht implementiert. Statt dessen wird die Standard-Kodierung verwendet und eine Warnung ausgegeben.

double_encode

Wird der Parameter double_encode ausgeschaltet, kodiert PHP bereits existierende HTML-Entities nicht noch einmal. Standardmäßig werden jedoch alle Zeichen konvertiert.

Rückgabewerte

Der konvertierte string.

Enthält der string eine in dem übergebenen encoding ungültige Code-Unit-Sequenz, wird eine leere Zeichenkette zurückgegeben, sofern weder das ENT_IGNORE- noch das ENT_SUBSITUTE-Flag gesetzt sind.

Beispiele

Beispiel #1 htmlspecialchars()-Beispiel

<?php
$neu = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $neu; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

Anmerkungen

Hinweis:

Beachten Sie, dass diese Funktion nur die o.a. Umwandlungen durchführt. Für vollständige Code-Umwandlung verwenden Sie bitte htmlentities().

Hinweis:

Im Fall von mehrdeutigen flags-Werten, gelten die folgenden Regeln:

  • Wird weder ENT_COMPAT, ENT_QUOTES oder ENT_NOQUOTES angegeben, ist der Standardwert ENT_NOQUOTES.
  • Werden mehrere von ENT_COMPAT, ENT_QUOTES und ENT_NOQUOTES angegeben, erhält ENT_QUOTES den Vorrang, gefolgt von ENT_COMPAT.
  • Wird weder ENT_HTML401, ENT_HTML5, ENT_XHTML noch ENT_XML1 angegeben, ist der Standardwert ENT_HTML401.
  • Werden mehrere von ENT_HTML401, ENT_HTML5, ENT_XHTML und ENT_XML1 angegeben, erhält ENT_HTML5 den Vorrang, gefolgt von ENT_XHTML, ENT_XML1 und ENT_HTML401.
  • Werden mehrere von ENT_DISALLOWED, ENT_IGNORE und ENT_SUBSTITUTE angegeben, erhält ENT_IGNORE den Vorrang, gefolgt von ENT_SUBSTITUTE.

Siehe auch

  • get_html_translation_table() - Gibt die Umwandlungs-Tabelle zurück, die von htmlspecialchars und htmlentities verwendet wird
  • htmlspecialchars_decode() - Konvertiert besondere HTML-Auszeichnungen zurück in Buchstaben
  • strip_tags() - Entfernt HTML- und PHP-Tags aus einem String
  • htmlentities() - Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um
  • nl2br() - Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein


Verbindet Array-Elemente zu einem String

  • « htmlspecialchars
  • join »
  • PHP Manual
  • String-Funktionen
  • Verbindet Array-Elemente zu einem String

implode

(PHP 4, PHP 5, PHP 7, PHP 8)

implode — Verbindet Array-Elemente zu einem String

Beschreibung

implode ( string $separator , array $array ) : string

Alternative Signatur (wird bei benannten Argumenten nicht unterstützt):

implode ( array $array ) : string

Alte Signatur (veraltet ab PHP 7.4.0, entfernt ab PHP 8.0.0):

implode ( array $array , string $separator ) : string

Verbindet die Elemente eines Array mittels separator zu einer Zeichenkette.

Parameter-Liste

separator

Standardmäßig eine leere Zeichenkette.

array

Das Array mit den zusammenzufügenden Zeichenketten.

Rückgabewerte

Gibt einen String mit einer String-Repräsentation aller Array-Elemente in der gleichen Reihenfolge wie im Array zurück, bei dem die einzelnen Array-Elemente mit dem im Parameter separator angegebenen String verbunden werden.

Changelog

Version | Beschreibung
8.0.0 | Die Übergabe des separators nach dem array wird nicht mehr unterstützt.
7.4.0 | Das Übergeben des separators nach dem array (d.h. nicht die dokumentierte Reihenfolge der Parameter zu verwenden) wurde missbilligt.

Beispiele

Beispiel #1 implode()-Beispiel

<?php

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

// Leere Zeichenkette wenn leeres Array genutzt wird
var_dump(implode('hello', array())); // string(0) ""

?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • explode() - Teilt eine Zeichenkette anhand einer Zeichenkette
  • preg_split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
  • http_build_query() - Liefert einen URL-kodierten Query-String


Alias von implode

  • « implode
  • lcfirst »
  • PHP Manual
  • String-Funktionen
  • Alias von implode

join

(PHP 4, PHP 5, PHP 7, PHP 8)

join — Alias von implode()

Beschreibung

Diese Funktion ist ein Alias für: implode().


Wandelt den ersten Buchstaben eines Strings in einen Kleinbuchstaben um

  • « join
  • levenshtein »
  • PHP Manual
  • String-Funktionen
  • Wandelt den ersten Buchstaben eines Strings in einen Kleinbuchstaben um

lcfirst

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

lcfirst — Wandelt den ersten Buchstaben eines Strings in einen Kleinbuchstaben um

Beschreibung

lcfirst ( string $string ) : string

Gibt einen verarbeitete Version von string zurück, in der das erste Zeichen in einen Kleinbuchstaben umgewandelt wurde, sofern es sich um einen Buchstaben handelte.

Beachten Sie, dass die möglichen "Buchstaben" von der aktuellen locale-Einstellung bestimmt werden. Ist diese zum Beispiel "C", werden Zeichen wie ein Ä nicht konvertiert.

Parameter-Liste

string

Der Eingabestring.

Rückgabewerte

Gibt die verarbeitete Zeichenkette zurück.

Beispiele

Beispiel #1 lcfirst()-Beispiel

<?php
$foo = 'HalloWelt';
$foo = lcfirst($foo);             // halloWelt

$bar = 'HALLO WELT!';
$bar = lcfirst($bar);             // hALLO WELT!
$bar = lcfirst(strtoupper($bar)); // hALLO WELT!
?>

Siehe auch

  • ucfirst() - Verwandelt das erste Zeichen eines Strings in einen Großbuchstaben
  • strtolower() - Setzt einen String in Kleinbuchstaben um
  • strtoupper() - Wandelt alle Zeichen eines Strings in Großbuchstaben um
  • ucwords() - Wandelt jeden ersten Buchstaben eines Wortes innerhalb eines Strings in einen Großbuchstaben um


Berechnet die Levenshtein-Distanz zwischen zwei Strings

  • « lcfirst
  • localeconv »
  • PHP Manual
  • String-Funktionen
  • Berechnet die Levenshtein-Distanz zwischen zwei Strings

levenshtein

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

levenshtein — Berechnet die Levenshtein-Distanz zwischen zwei Strings

Beschreibung

levenshtein ( string $string1 , string $string2 , int $insertion_cost = 1 , int $replacement_cost = 1 , int $deletion_cost = 1 ) : int

Die Levenshtein-Distanz bezeichnet die minimale Anzahl von Zeichen, die Sie ersetzen, einfügen oder löschen müssen, um string1 in string2 umzuwandeln. Die Komplexität des Algorithmus ist O(m*n), wobei n und m die Länge von string1 und string2 darstellen (recht gut, im Vergleich zu similar_text(), das O(max(n,m)**3) ist, aber trotzdem immer noch aufwendig).

Wenn insertion_cost, replacement_cost und/oder deletion_cost ungleich 1 sind, passt sich der Algorithmus an, um die günstigsten Transformationen zu wählen. Wenn z.B. $insertion_cost + $deletion_cost < $replacement_cost, werden keine Ersetzungen durchgeführt, sondern stattdessen Einfügungen und Löschungen.

Parameter-Liste

string1

Eine der Zeichenketten, für die die Levenshtein-Distanz zu berechnen ist.

string2

Eine der Zeichenketten, für die die Levenshtein-Distanz zu berechnen ist.

insertion_cost

Definiert die Kosten des Einfügens.

replacement_cost

Definiert die Kosten des Ersetzens.

deletion_cost

Definiert die Kosten des Löschens.

Rückgabewerte

Die Funktion gibt die Levenshtein-Distanz zwischen den beiden Argument-Strings oder -1 zurück, sofern eines der Argumente länger als 255 Zeichen ist.

Changelog

Version | Beschreibung
8.0.0 | Vor dieser Version musste levenshtein() entweder mit zwei oder fünf Argumenten aufgerufen werden.

Beispiele

Beispiel #1 levenshtein()-Beispiel

<?php
// eingegebenes falsch geschriebenes Wort
$input = 'carrrot';

// Wörterarray als Vergleichsquelle
$words  = array('apple','pineapple','banana','orange',
                'radish','carrot','pea','bean','potato');

// noch keine kürzeste Distanz gefunden
$shortest = -1;

// durch die Wortliste gehen, um das ähnlichste Wort zu finden
foreach ($words as $word) {

    // berechne die Distanz zwischen Inputwort und aktuellem Wort
    $lev = levenshtein($input, $word);

    // auf einen exakten Treffer prüfen
    if ($lev == 0) {

        // das nächste Wort ist das Wort selbst (exakter Treffer)
        $closest = $word;
        $shortest = 0;

        // Schleife beenden, da wir einen exakten Treffer gefunden haben
        break;
    }

    // Wenn die Distanz kleiner ist als die nächste gefundene kleinste Distanz
    // ODER wenn ein nächstkleineres Wort noch nicht gefunden wurde
    if ($lev <= $shortest || $shortest < 0) {
        // setze den nächstliegenden Treffer und die kürzestes Distanz
        $closest  = $word;
        $shortest = $lev;
    }
}

echo "Eingegebenes Wort: $input\n";
if ($shortest == 0) {
    echo "Exakter Treffer gefunden: $closest\n";
} else {
    echo "Meinten Sie: $closest?\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Eingegebenes Word: carrrot
Meinten Sie: carrot?

Siehe auch

  • soundex() - Berechnet die Laut-Ähnlichkeit eines Strings
  • similar_text() - Berechnet die Ähnlichkeit zweier Zeichenketten
  • metaphone() - Berechnet den Metaphone-Schlüssel eines Strings


Ermittelt die Formatierungsinformationen für Zahlen

  • « levenshtein
  • ltrim »
  • PHP Manual
  • String-Funktionen
  • Ermittelt die Formatierungsinformationen für Zahlen

localeconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

localeconv — Ermittelt die Formatierungsinformationen für Zahlen

Beschreibung

localeconv ( ) : array

Gibt ein assoziatives Array zurück, das die lokalisierten Informationen zur Formatierung von Zahlen und Geldbeträgen enthält.

Rückgabewerte

localeconv() gibt Daten basierend auf den aktuellen Locale-Einstellungen, wie sie mittels setlocale() festgelegt werden können, zurück. Das assoziative Array, das zurückgegeben wird, enthält folgende Felder:

Arrayelement | Beschreibung
decimal_point | Dezimaltrennzeichen
thousands_sep | Tausendertrennzeichen
grouping | Array mit numerischen Gruppierungen
int_curr_symbol | Internationales Währungssymbol (i.e. USD)
currency_symbol | Lokales Währungssymbol (i.e. $)
mon_decimal_point | Dezimaltrennzeichen bei Geldbeträgen
mon_thousands_sep | Tausendertrennzeichen bei Geldbeträgen
mon_grouping | Array mit Geldbetragsgruppierungen
positive_sign | Vorzeichen für positive Werte
negative_sign | Vorzeichen für negative WerteS
int_frac_digits | Internationale Dezimalbrüche
frac_digits | Lokale Dezimalbrüche
p_cs_precedes | Ist true, wenn das Währungssymbol einem positiver Wert voransteht, oder false, wenn es einem positiven Wert folgt.
p_sep_by_space | Ist true, wenn ein Leerzeichen das Währungssymbol von einem positiven Wert trennt, ansonsten false.
n_cs_precedes | Ist true, wenn das Währungssymbol einem negativer Wert voransteht, oder false, wenn es einem negativen Wert folgt.
n_sep_by_space | Ist true, wenn ein Leerzeichen das Währungssymbol von einem negativen Wert trennt, ansonsten false.
p_sign_posn
  • 0 - Klammern um Menge und Währungssymbol
  • 1 - Das Vorzeichen steht vor Menge und Währungssymbol
  • 2 - Das Vorzeichen steht hinter Menge und Währungssymbol
  • 3 - Das Vorzeichen steht direkt vor Menge und Währungssymbol
  • 4 - Das Vorzeichen steht direkt hinter Menge und Währungssymbol
n_sign_posn
  • 0 - Klammern um Menge und Währungssymbol
  • 1 - Das Vorzeichen steht vor Menge und Währungssymbol
  • 2 - Das Vorzeichen steht hinter Menge und Währungssymbol
  • 3 - Das Vorzeichen steht direkt vor Menge und Währungssymbol
  • 4 - Das Vorzeichen steht direkt hinter Menge und Währungssymbol

p_sign_posn und n_sign_posn enthalten einen String mit Formatierungsinformationen. Jeder Wert repräsentiert eine der oben aufgeführten Bedingungen.

Die Gruppierungsfelder enthalten Arrays, die die Art und Weise definieren, in der Zahlen gruppiert werden sollten. Beispielsweise würde das Gruppierungsfeld für Geldbeträge unter einer nl_NL-Locale (im UTF-8-Modus mit dem Euro-Zeichen) ein Array mit zwei Einträgen mit den Werten 3 und 3 enthalten. Je höher der Index im Array, desto weiter links wird gruppiert. Wenn ein Arrayelement CHAR_MAX entspricht, wird keine weitere Gruppierung angewendet. Ist ein Arrayelement gleich 0, sollte das vorangegangene Element verwendet werden.

Beispiele

Beispiel #1 localeconv()-Beispiel

<?php
if (false !== setlocale(LC_ALL, 'nl_NL.UTF-8@euro')) {
    $locale_info = localeconv();
    print_r($locale_info);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [decimal_point] => .
    [thousands_sep] =>
    [int_curr_symbol] => EUR
    [currency_symbol] => €
    [mon_decimal_point] => ,
    [mon_thousands_sep] =>
    [positive_sign] =>
    [negative_sign] => -
    [int_frac_digits] => 2
    [frac_digits] => 2
    [p_cs_precedes] => 1
    [p_sep_by_space] => 1
    [n_cs_precedes] => 1
    [n_sep_by_space] => 1
    [p_sign_posn] => 1
    [n_sign_posn] => 2
    [grouping] => Array
        (
        )

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

)

Siehe auch

  • setlocale() - Legt regionale (locale) Einstellungen fest


Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings

  • « localeconv
  • md5_file »
  • PHP Manual
  • String-Funktionen
  • Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings

ltrim

(PHP 4, PHP 5, PHP 7, PHP 8)

ltrim — Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings

Beschreibung

ltrim ( string $string , string $characters = " \n\r\t\v\0" ) : string

Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings.

Parameter-Liste

string

Die Eingabezeichenkette.

characters

Sie können mittels des characters-Parameters eigene Zeichen angeben, die Sie entfernen lassen möchten. Führen Sie einfach alle zu löschenden Zeichen auf. Mittels .. können Sie einen Bereich von Zeichen benennen.

Rückgabewerte

Diese Funktion gibt den String string zurück, von dessen Anfang alle Whitespaces entfernt wurden. Ohne den zweiten Parameter entfernt ltrim() diese Zeichen:

  • " " (ASCII 32 (0x20)), ein einfaches Leerzeichen.
  • "\t" (ASCII 9 (0x09)), ein Tabulator.
  • "\n" (ASCII 10 (0x0A)), ein Zeilenvorschub (line feed).
  • "\r" (ASCII 13 (0x0D)), ein Wagenrücklauf-Zeichen (carriage return).
  • "\0" (ASCII 0 (0x00)), das NUL-Byte.
  • "\v" (ASCII 11 (0x0B)), ein vertikaler Tabulator.

Beispiele

Beispiel #1 Beispiel zur Verwendung von ltrim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = ltrim($text);
var_dump($trimmed);

$trimmed = ltrim($text, " \t.");
var_dump($trimmed);

$trimmed = ltrim($hello, "Hdle");
var_dump($trimmed);

// entfernt die ASCII Steuerzeichen vom Beginn von $binary
// (von 0 bis einschließlich 31)
$clean = ltrim($binary, "\x00..\x1F");
var_dump($clean);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "These are a few words :) ...  "
string(30) "These are a few words :) ...  "
string(7) "o World"
string(15) "Example string
"

Siehe auch

  • trim() - Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings
  • rtrim() - Entfernt Leerraum (oder andere Zeichen) vom Ende eines Strings


Berechnet den MD5-Code einer Datei

  • « ltrim
  • md5 »
  • PHP Manual
  • String-Funktionen
  • Berechnet den MD5-Code einer Datei

md5_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

md5_file — Berechnet den MD5-Code einer Datei

Beschreibung

md5_file ( string $filename , bool $binary = false ) : string|false

Berechnet den MD5-Code einer Datei, deren Dateiname mit filename übergeben wurde, gemäß des » RSA Data Security, Inc. MD5 Message-Digest Algorithm, und liefert das Ergebnis zurück. Der Code ist eine 32 Zeichen lange Hexadezimalnummer.

Parameter-Liste

filename

Der Dateiname

binary

Sofern true, wird der MD5-Wert im Raw-Binary-Format mit einer Länge von 16 Zeichen zurückgegeben.

Rückgabewerte

Gibt bei Erfolg einen String zurück, sonst false.

Beispiele

Beispiel #1 Anwendungsbeispiel für md5_file()

<?php
$file = 'php-5.3.0alpha2-Win32-VC9-x64.zip';

echo 'MD5-Dateihash von ' . $file . ': ' . md5_file($file);
?>

Siehe auch

  • md5() - Errechnet den MD5-Hash eines Strings
  • sha1_file() - Berechnet den SHA1-Hash einer Datei
  • crc32() - Berechnet den polynomischen CRC32-Wert eines Strings


Errechnet den MD5-Hash eines Strings

  • « md5_file
  • metaphone »
  • PHP Manual
  • String-Funktionen
  • Errechnet den MD5-Hash eines Strings

md5

(PHP 4, PHP 5, PHP 7, PHP 8)

md5 — Errechnet den MD5-Hash eines Strings

Warnung

Es ist nicht empfohlen, diese Funktion zu verwenden um Passwörter zu hashen, da dieser Passwortalgorithmus relativ schnell ist. Die Seite Password Hashing FAQ enthält weitere Informationen und Best Practices zum Hashen von Passwörtern.

Beschreibung

md5 ( string $string , bool $binary = false ) : string

Berechnet den MD5-Hash von str unter Verwendung des » RSA Data Security, Inc. MD5 Message-Digest Algorithm und gibt das Ergebnis zurück.

Parameter-Liste

string

Die Zeichenkette.

binary

Wurde der optionale Parameter binary mit true angegeben, wird der MD5-Wert im Raw-Binary-Format mit einer Länge von 16 Zeichen zurückgegeben.

Rückgabewerte

Gibt den Hash als 32 Zeichen lange Hexadezimalzahl zurück.

Beispiele

Beispiel #1 Ein md5()-Beispiel

<?php
$str = 'apple';

if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo "Haetten Sie lieber einen gruenen oder einen roten Apfel?";
}
?>

Siehe auch

  • md5_file() - Berechnet den MD5-Code einer Datei
  • sha1_file() - Berechnet den SHA1-Hash einer Datei
  • crc32() - Berechnet den polynomischen CRC32-Wert eines Strings
  • sha1() - Berechnet den SHA1-Hash eines Strings
  • hash() - Berechnet den Hash einer Nachricht
  • crypt() - Einweg-String-Hashing
  • password_hash() - Erstellt einen Passwort-Hash


Berechnet den Metaphone-Schlüssel eines Strings

  • « md5
  • money_format »
  • PHP Manual
  • String-Funktionen
  • Berechnet den Metaphone-Schlüssel eines Strings

metaphone

(PHP 4, PHP 5, PHP 7, PHP 8)

metaphone — Berechnet den Metaphone-Schlüssel eines Strings

Beschreibung

metaphone ( string $string , int $max_phonemes = 0 ) : string

Errechnet den Metaphone-Schlüssel von string.

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üssel sind von variabler Länge.

Der Metaphone-Algorithmus wurde von Lawrence Philips <lphilips at verity dot com> entwickelt und in ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995] beschrieben.

Parameter-Liste

string

Die Eingabezeichenkette.

max_phonemes

Dieser Parameter begrenzt den zurückgegebenen Metaphone-Schlüssel auf die Länge von max_phonemes Zeichen. Die resultierenden Phoneme werden jedoch immer vollständig umgeschrieben, so dass die resultierende Zeichenkettenlänge etwas größer sein kann, als max_phonemes. Der Standardwert von 0 bedeutet keine Begrenzung.

Rückgabewerte

Gibt den Metaphon-Schlüssel als Zeichenkette zurück.

Changelog

Version | Beschreibung
8.0.0 | Die Funktion gab bei Auftreten eines Fehlers false zurück.

Beispiele

Beispiel #1 Einfaches metaphone()-Beispiel

<?php
var_dump(metaphone('programming'));
var_dump(metaphone('programmer'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(7) "PRKRMNK"
string(6) "PRKRMR"

Beispiel #2 Verwendung des max_phonemes-Parameters

<?php
var_dump(metaphone('programming', 5));
var_dump(metaphone('programmer', 5));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(5) "PRKRM"
string(5) "PRKRM"

Beispiel #3 Verwendung des max_phonemes-Parameters

In diesem Beispiel soll metaphone() eine Zeichenkette mit fünf Zeichen erzeugen, aber dazu müsste das letzte Phonem getrennt werden ('x' soll in 'KS' umgeschrieben werden). Daher gibt die Funktion eine Zeichenkette mit sechs Zeichen zurück.

<?php
var_dump(metaphone('Asterix', 5));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(6) "ASTRKS"


Formatiert eine Zahl als Währungs-Zeichenkette

  • « metaphone
  • nl_langinfo »
  • PHP Manual
  • String-Funktionen
  • Formatiert eine Zahl als Währungs-Zeichenkette

money_format

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

money_format — Formatiert eine Zahl als Währungs-Zeichenkette

Warnung

Diese Funktion ist seit PHP 7.4.0 VERALTET und seit PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

money_format ( string $format , float $number ) : string

money_format() gibt eine formatierte Version von number zurück. Diese Funktion nutzt die C-Funktion strfmon(), mit dem Unterschied, dass diese Implementierung jeweils nur eine Zahl auf einmal konvertiert.

Parameter-Liste

format

Die Formatangabe besteht aus folgender Sequenz:

  • ein %-Zeichen

  • optionales Flag

  • optionale Feldbreite

  • optionale Links-Genauigkeit

  • optionale Rechts-Genauigkeit

  • ein erforderliches Umwandlungszeichen

Flags

Eines oder mehrere der folgenden optionalen Flags können benutzt werden:

=f

Das Zeichen = , gefolgt von einem (single byte) Zeichen f wird als numerisches Füllzeichen benutzt. Das Standard-Füllzeichen ist das Leerzeichen.

^

Deaktiviert die Verwendung von Gruppierungszeichen (wie in der aktuellen Locale-Einstellung definiert).

+ or (

Gibt den Formatierungsstil für positive und negative Zahlen an. Wird + benutzt, wird das Locale-Äquivalent für + und - benutzt. Wird ( benutzt, werden negative Beträge von Klammern umschlossen. Ist kein Formatierungsstil angegeben, wird der Standardwert + benutzt.

!

Unterdrückt das Währungssymbol aus dem Ausgabestring.

-

Falls vorhanden, werden alle Felder linksbündig angeordnet, im Gegensatz zum Standardverhalten, welches die Felder rechtsbündig anordnet.

Feldbreite

w

Eine aus dezimalen Ziffern bestehende Zeichenkette, die die Mindestfeldbreite angibt. Das Feld wird rechtsbündig ausgerichtet, es sei denn, das Flag - wird verwendet. Der Standardwert ist 0 (Null).

Links-Genauigkeit

#n

Die Höchstanzahl von Ziffern (n), die links vom Dezimaltrenner (z.B. dem Dezimalkomma) erwartet werden. Dies wird üblicherweise verwendet, um die formatierten Ausgabe an derselben Spalte auszurichten, wobei das Füllzeichen verwendet wird, wenn die Ziffernanzahl kleiner ist als n. Ist die Anzahl der tatsächlichen Ziffern größer als n, dann wird diese Angabe ignoriert.

Wurde die Gruppierung nicht durch die Verwendung des Flags ^ unterdrückt, werden die Gruppentrennzeichen eingefügt, bevor die Füllzeichen (falls es welche gibt) ergänzt werden. Gruppentrenner werden nicht auf die Füllzeichen angewandt, auch wenn das Füllzeichen eine Ziffer sein sollte.

Um die Ausrichtung zu gewährleisten, werden jegliche Zeichen vor oder nach der Zahl in der formatierten Ausgabe, wie etwa Währungs- oder Vorzeichen, mit Leerzeichen aufgefüllt, sodass die positiven und negativen Formate die gleiche Länge haben.

Rechts-Genauigkeit

.p

Ein Punkt, gefolgt von der Ziffernanzahl (p) nach dem Dezimaltrenner. Ist der Wert von p gleich 0 (Null), werden der Dezimaltrenner und die Ziffern rechts davon ausgelassen. Ist keine Rechts-Genauigkeit angegeben, wird der Standardwert durch das aktuelle Locale bestimmt. Der zu formatierende Betrag wird vor der Formatierung auf die angegebene Ziffernanzahl gerundet.

Umwandlungszeichen

i

Die Zahl wird gemäß des internationalen Währungsformats der Locale formatiert (z.B. für das USA Locale: USD 1,234.56).

n

Die Zahl wird gemäß des nationalen Währungsformats der Locale formatiert (z.B. für die de_DE Locale: EU1.234,56).

%

Gibt das %-Zeichen zurück.

number

Die zu formatierende Zahl.

Rückgabewerte

Gibt die formatierte Zeichenkette zurück. Zeichen vor und nach der Formatzeichenkette werden unverändert zurückgegeben. Eine nichtnumerische number führt zur Rückgabe von null und dem Erzeugen einer E_WARNING-Warnung.

Changelog

Version | Beschreibung
7.4.0 | Diese Funktion wird missbilligt. Stattdessen soll NumberFormatter::formatCurrency() verwendet werden.

Anmerkungen

Hinweis:

Die Funktion money_format() ist nur definiert, wenn das System strfmon unterstützt. Beispielsweise ist dies unter Windows nicht so, sodass money_format() unter Windows nicht definiert ist.

Hinweis:

Die Kategorie LC_MONETARY der Locale-Einstellungen hat Einfluss auf das Verhalten dieser Funktion. setlocal() ist zu verwenden, um die gewünschte Locale einzustellen bevor diese Funktion verwendet wird.

Beispiele

Beispiel #1 money_format()-Beispiel

Wir verwenden unterschiedliche Locales und Formatangaben, um die Verwendung dieser Funktion zu verdeutlichen.

<?php

$number = 1234.56;

// wir geben das internationale Format für die en_US Locale aus
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number) . "\n";
// USD 1,234.56

// das italienische nationale Format mit 2 Dezimalstellen
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number) . "\n";
// Eu 1.234,56

// Verwendung einer negativen Zahl
$number = -1234.5672;

// das nationale US-Format, unter Verwendung von () für negative Zahlen
// und 10 Ziffern für die Links-Genauigkeit
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number) . "\n";
// ($        1,234.57)

// ein ähnliches Format wie zuvor, aber mit zusätzlich 2 Ziffern
// Rechts-Genauigkeit und '*' al Füllzeichen
echo money_format('%=*(#10.2n', $number) . "\n";
// ($********1,234.57)

// wir richten linksbündig aus, mit 14 Zeichen Breite, 8 Ziffern
// Links-Genauigkeit, 2 Rechts-Genauigkeit, ohne Gruppentrenner
// und unter Verwendung des internationalen Formats für die de_DE Locale.
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i', 1234.56) . "\n";
// Eu 1234,56****

// wir ergänzen etwas Text vor und nach der Formatangabe
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'Der Endwert ist %i (mit 10%% Nachlass)';
echo money_format($fmt, 1234.56) . "\n";
// Der Endwert ist  GBP 1,234.56 (mit 10% Nachlass)

?>

Siehe auch

  • setlocale() - Legt regionale (locale) Einstellungen fest
  • sscanf() - Überträgt einen String in ein angegebenes Format
  • sprintf() - Gibt einen formatierten String zurück
  • printf() - Gibt einen formatierten String aus
  • number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen


Query-Language und Locale-Information

  • « money_format
  • nl2br »
  • PHP Manual
  • String-Funktionen
  • Query-Language und Locale-Information

nl_langinfo

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

nl_langinfo — Query-Language und Locale-Information

Beschreibung

nl_langinfo ( int $item ) : string|false

nl_langinfo() wird verwendet, um auf ein bestimmtes Element der Locale-Angaben zuzugreifen. Im Gegensatz zu localeconv(), die alle Elemente zurück gibt, erlaubt Ihnen nl_langinfo(), ein bestimmtes Element auszuwählen.

Parameter-Liste

item

item kann der Integerwert oder der Konstantenname des Elements sein. Folgend eine Liste der verwendbaren Konstantennamen für den Parameter item sowie eine kurze Beschreibung. Einige der Konstanten können für bestimmte Locales nicht definiert sein oder keinen Wert besitzen.

nl_langinfo Konstanten
Konstante | Beschreibung
LC_TIME Konstanten
ABDAY_(1-7) | Abgekürzter des n-ten Tages einer Woche.
DAY_(1-7) | Name des n-ten Tages einer Woche (DAY_1 = Sonntag).
ABMON_(1-12) | Abgekürzter Name des n-ten Monats eines Jahres.
MON_(1-12) | Name des n-ten Monats eines Jahres.
AM_STR | String für Ante meridian. (vor dem Mittag)
PM_STR | String für Post meridian. (nach dem Mittag)
D_T_FMT | String, der als Formatierung für strftime() verwendet werden kann, um Zeit und Datum darzustellen.
D_FMT | String, der als Formatierung für strftime() verwendet werden kann, um das Datum darzustellen.
T_FMT | String, der als Formatierung für strftime() verwendet werden kann, um die Zeit darzustellen.
T_FMT_AMPM | String, der als Formatierung für strftime() verwendet werden kann, um die Zeit im 12-Stunden-Format mit AM/PM-Angabe darzustellen.
ERA | Alternative Zeitrechnung.
ERA_YEAR | Jahresangabe für eine alternative Zeitrechnung.
ERA_D_T_FMT | Datums- und Zeitangabe für eine alternative Zeitrechnung (der String kann in strftime() verwendet werden).
ERA_D_FMT | Datumsangabe für eine alternative Zeitrechnung (der String kann in strftime() verwendet werden).
ERA_T_FMT | Zeitangabe für eine alternative Zeitrechnung (der String kann in strftime() verwendet werden).
LC_MONETARY Konstanten
INT_CURR_SYMBOL | Internationales Währungssymbol.
CURRENCY_SYMBOL | Lokales Währungssymbol.
CRNCYSTR | Gleicher Wert wie CURRENCY_SYMBOL.
MON_DECIMAL_POINT | Dezimal-Trennzeichen.
MON_THOUSANDS_SEP | Tausender-Trennzeichen (Gruppierung von drei Ziffern).
MON_GROUPING | Wie "grouping" Element.
POSITIVE_SIGN | Vorzeichen für positive Werte.
NEGATIVE_SIGN | Vorzeichen für negative Werte.
INT_FRAC_DIGITS | Internationale Trennzeichen.
FRAC_DIGITS | Lokale Trennzeichen.
P_CS_PRECEDES | Gibt 1 zurück, wenn CURRENCY_SYMBOL einem positiven Wert vorausgeht.
P_SEP_BY_SPACE | Gibt 1 zurück, wenn ein Leerzeichen CURRENCY_SYMBOL von einem positiven Wert trennt.
N_CS_PRECEDES | Gibt 1 zurück, wenn CURRENCY_SYMBOL einem negativen Wert vorausgeht.
N_SEP_BY_SPACE | Gibt 1 zurück, wenn ein Leerzeichen CURRENCY_SYMBOL von einem negativen Wert trennt.
P_SIGN_POSN
  • Gibt 0 zurück, wenn um Geldmenge und CURRENCY_SYMBOL Klammern gesetzt sind.
  • Gibt 1 zurück, wenn das Vorzeichen der Geldmenge und dem CURRENCY_SYMBOL vorausgeht.
  • Gibt 2 zurück, wenn das Vorzeichen der Geldmenge und CURRENCY_SYMBOL nachfolgt.
  • Gibt 3 zurück, wenn das Vorzeichen direkt vor dem CURRENCY_SYMBOL steht.
  • Gibt 4 zurück, wenn das Vorzeichen direkt hinter dem CURRENCY_SYMBOL steht.
N_SIGN_POSN
LC_NUMERIC-Konstanten
DECIMAL_POINT | Dezimal-Trennzeichen.
RADIXCHAR | Der gleiche Wert wie DECIMAL_POINT.
THOUSANDS_SEP | Tausender-Trennzeichen (Gruppen von drei Ziffern).
THOUSEP | Der gleiche Wert wie THOUSANDS_SEP.
GROUPING
LC_MESSAGES-Konstanten
YESEXPR | Regex-String für eine "yes"-Eingabe.
NOEXPR | Regex-String für eine "no"-Eingabe.
YESSTR | Gibt den String für "yes" aus.
NOSTR | Gibt den String für "no" aus.
LC_CTYPE-Konstanten
CODESET | Gibt einen String mit der Bezeichnung des Character-Encoding zurück.

Rückgabewerte

Gibt das Element als Zeichenkette zurück. Enthält item keinen gültigen Wert, wird false zurück gegeben.

Anmerkungen

Hinweis: Diese Funktion ist auf Windows-Plattformen nicht verfügbar.

Siehe auch

  • setlocale() - Legt regionale (locale) Einstellungen fest
  • localeconv() - Ermittelt die Formatierungsinformationen für Zahlen


Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein

  • « nl_langinfo
  • number_format »
  • PHP Manual
  • String-Funktionen
  • Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein

nl2br

(PHP 4, PHP 5, PHP 7, PHP 8)

nl2br — Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein

Beschreibung

nl2br ( string $string , bool $use_xhtml = true ) : string

Gibt den string mit einem vor allen Neue-Zeile-Zeichen eingefügten <br /> oder <br> zurück (\r\n, \n\r, \n und \r).

Parameter-Liste

string

Die Eingabezeichenkette.

use5_xhtml

Bestimmt, ob XHTML-kompatible Zeilenumbrüche verwendet werden sollen oder nicht.

Rückgabewerte

Gibt die veränderte Zeichenkette zurück.

Beispiele

Beispiel #1 Verwenden von nl2br()

<?php
echo nl2br("foo ist nicht\n bar");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

foo ist nicht<br />
 bar

Beispiel #2 Erstellen von validem HTML-Markup unter Verwendung des use_xhtml-Parameters

<?php
echo nl2br("Willkommen\r\nDies ist mein HTML-Dokument", false);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Willkommen<br>
Dies ist mein HTML-Dokument

Beispiel #3 Verschiedene Zeilentrenner

<?php
$string = "This\r\nis\n\ra\nstring\r";
echo nl2br($string);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

This<br />
is<br />
a<br />
string<br />

Siehe auch

  • htmlspecialchars() - Wandelt Sonderzeichen in HTML-Codes um
  • htmlentities() - Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um
  • wordwrap() - Umbricht einen String nach einer bestimmten Anzahl Zeichen
  • str_replace() - Ersetzt alle Vorkommen des Suchstrings durch einen anderen String


Formatiert eine Zahl mit Tausender-Trennzeichen

  • « nl2br
  • ord »
  • PHP Manual
  • String-Funktionen
  • Formatiert eine Zahl mit Tausender-Trennzeichen

number_format

(PHP 4, PHP 5, PHP 7, PHP 8)

number_format — Formatiert eine Zahl mit Tausender-Trennzeichen

Beschreibung

number_format ( float $num , int $decimals = 0 , string|null $decimal_separator = "." , string|null $thousands_separator = "," ) : string

Formatiert eine Zahl mit Tausender-Trennzeichen und optionalen Dezimalziffern.

Parameter-Liste

num

Die zu formatierende Zahl.

decimals

Bestimmt die Anzahl an Nachkommastellen.

decimal_separator

Bestimmt das Trennzeichen für die Nachkommastellen.

thousands_separator

Bestimmt das Tausendertrennzeichen.

Rückgabewerte

Eine formatierte Version von num.

Changelog

Version | Beschreibung
8.0.0 | Vor dieser Version akzeptierte number_format() einen, zwei oder vier Parameter (aber nicht drei).
7.2.0 | number_format() wurde geändert, so dass es nicht mehr -0 zurückgeben kann; zuvor konnte -0 zurückgegeben werden, z.B. wenn num gleich -0.01 war.

Beispiele

Beispiel #1 number_format()-Beispiel

Beispielsweise notiert man in Frankreich normalerweise zwei Dezimalstellen mit einem Komma (',') als Trennzeichen sowie ein Leerzeichen (' ') zur Gruppierung der Tausender. Das folgende Beispiel zeigt verschiedene Varianten eine Zahl zu formatieren:

<?php

$number = 1234.56;

// Englische Notation (Standard)
$english_format_number = number_format($number);
// 1,235

// Französische Notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// Englische Notation ohne Tausendergruppierung
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

Siehe auch

  • money_format() - Formatiert eine Zahl als Währungs-Zeichenkette
  • sprintf() - Gibt einen formatierten String zurück
  • printf() - Gibt einen formatierten String aus
  • sscanf() - Überträgt einen String in ein angegebenes Format


Konvertiert das erste Byte einer Zeichenkette in einen Wert zwischen 0 und 255

  • « number_format
  • parse_str »
  • PHP Manual
  • String-Funktionen
  • Konvertiert das erste Byte einer Zeichenkette in einen Wert zwischen 0 und 255

ord

(PHP 4, PHP 5, PHP 7, PHP 8)

ord — Konvertiert das erste Byte einer Zeichenkette in einen Wert zwischen 0 und 255

Beschreibung

ord ( string $character ) : int

Interpretiert den ASCII-Wert des ersten Bytes von character als vorzeichenlose Ganzzahl zwischen 0 und 255.

Liegt die Zeichenkette in einer Ein-Byte-Kodierung, wie ASCII, ISO-8859 oder Windows 1252, vor, ist dies gleichwertig zur Rückgabe der Position des Zeichens in der Zuordnungstabelle des Zeichensatzes. Allerdings ist zu beachten, dass diese Funktion die Zeichenkettenkodierung ignoriert, und insbesondere niemals einen Unicode Code-Point in einer Multi-Byte-Kodierung wie UTF-8 oder UTF-16 erkennt.

Die Funktion ist das Gegenstück zu chr().

Parameter-Liste

character

Ein Zeichen.

Rückgabewerte

Ein Integer zwischen 0 und 255.

Beispiele

Beispiel #1 ord()-Beispiel

<?php
$str = "\n";
if (ord($str) == 10) {
    echo "Das erste Zeichen von \$str ist ein Zeilenvorschub.\n";
}
?>

Beispiel #2 Untersuchen der einzelnen Bytes einer UTF-8-Zeichenkette

<?php
declare(encoding='UTF-8');
$str = "??";
for ( $pos=0; $pos < strlen($str); $pos ++ ) {
 $byte = substr($str, $pos);
 echo 'Byte ' . $pos . ' von $str hat den Wert ' . ord($byte) . PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Byte 0 von $str hat den Wert 240
Byte 1 von $str hat den Wert 159
Byte 2 von $str hat den Wert 144
Byte 3 von $str hat den Wert 152

Siehe auch

  • chr() - Erzeugt eine Ein-Byte-Zeichenkette aus einer Zahl
  • Eine » ASCII-Tabelle
  • mb_ord() - Get code point of character


Überträgt einen String in Variablen

  • « ord
  • print »
  • PHP Manual
  • String-Funktionen
  • Überträgt einen String in Variablen

parse_str

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_str — Überträgt einen String in Variablen

Beschreibung

parse_str ( string $string , array &$result ) : void

Verarbeitet string, als ob er der Query-String einer URL-Übergabe via GET wäre, und erstellt Variablen im aktuellen Geltungsbereich (oder im Array, wenn der Parameter result übergeben wurde).

Parameter-Liste

string

Die Eingabezeichenkette.

result

Ist der zweite Parameter arr angegeben, werden die Variablen in diesem Array als dessen Elemente gespeichert.

Warnung

Von der Verwendung dieser Funktion ohne den zweiten Parameter wird unbedingt ABGERATEN, und von PHP 7.2 an MISSBILLIGT.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | result ist nicht mehr optional.
7.2.0 | Die Verwendung von parse_str() ohne den zweiten Parameter erzeugt nun einen E_DEPRECATED-Fehler.

Beispiele

Beispiel #1 Der Gebrauch von parse_str()

<?php
$str = "erstes=wert&arr[]=foo+bar&arr[]=baz";

// Empfohlen
parse_str($str, $output);
echo $output['erstes'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

// NICHT EMPFOHLEN
parse_str($str);
echo $erstes;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>

Weil PHP-Variablen keine Punkte oder Leerzeichen im Namen enthalten dürfen, werden dieser in Unterstriche umgewandelt. Dasselbe gilt für die entsprechenden Schlüsselnamen, für den Fall, dass diese Funktion mit dem Parameter result verwendet wird.

Beispiel #2 parse_str()-Namens-Manipulation

<?php
parse_str("Mein Wert=Etwas");
echo $Mein_Wert; // Etwas

parse_str("Mein Wert=Etwas", $output);
echo $output['Mein_Wert']; // Etwas
?>

Anmerkungen

Hinweis:

Alle erzeugten Variablen (oder Werte, die im Array zurückgegeben werden, wenn der zweite Parameter übergeben wurde) wurden bereits mit urldecode() vorbereitet.

Hinweis:

Um auf den aktuellen QUERY_STRING zuzugreifen, kann die Variable $_SERVER['QUERY_STRING'] verwendet werden. Weitere Informationen finden sich auch im Abschnitt Variablen aus externen Quellen.

Hinweis:

Die magic_quotes_gpc-Einstellung beeinflusst die Ausgabe dieser Funktion, da parse_str() dieselben Mechanismen verwendet, die PHP zum Füllen der Variablen $_GET, $_POST, etc. nutzt.

Siehe auch

  • parse_url() - Analysiert eine URL und gibt ihre Bestandteile zurück
  • pathinfo() - Liefert Informationen über einen Dateipfad
  • http_build_query() - Liefert einen URL-kodierten Query-String
  • urldecode() - Dekodiert eine URL-kodierte Zeichenkette


Ausgabe eines Strings

  • « parse_str
  • printf »
  • PHP Manual
  • String-Funktionen
  • Ausgabe eines Strings

print

(PHP 4, PHP 5, PHP 7, PHP 8)

print — Ausgabe eines Strings

Beschreibung

print ( string $expression ) : int

Gibt expression aus.

print ist keine Funktion, sondern ein Sprachkonstrukt. Sein Argument ist der Ausdruck, der auf das Schlüsselwort print folgt, und wird nicht durch Klammern abgegrenzt.

Der Hauptunterschied zu echo besteht darin, dass print nur ein einziges Argument entgegennimmt, und immer 1 zurückgibt.

Parameter-Liste

expression

Der Ausdruck, der ausgegeben werden soll. Nicht-String-Werte werden in Strings umgewandelt, auch wenn die Direktive strict_types aktiviert ist.

Rückgabewerte

Gibt immer 1 zurück.

Beispiele

Beispiel #1 print-Beispiele

<?php
print "print benötigt keine Klammern.";

// Es wird kein Zeilenumbruch oder Leerzeichen eingefügt; das Folgende gibt
// "HalloWelt" in einer Zeile aus
print "Hallo";
print "Welt";

print "Dieser String umfasst
mehrere Zeilen. Die Zeilenumbrüche
werden mit ausgegeben.";

print "Dieser String umfasst\nmehrere Zeilen. Die Zeilenumbrüche\nwerden mit ausgegeben.";

// Das Argument kann ein beliebiger Ausdruck sein, der einen String erzeugt
$foo = "ein Beispiel";
print "foo ist $foo"; // foo ist ein Beispiel

$fruechte = ["Zitrone", "Orange", "Banane"];
print implode(" und ", $fruechte); // Zitrone und Orange und Banane

// Nicht-String-Ausdrücke werden in String umgewandelt, auch wenn
// declare(strict_types=1) verwendet wird
print 6 * 7; // 42

// Da print einen Rückgabewert hat, kann es in Ausdrücken verwendet werden
// Das Folgende gibt "Hallo Welt" aus
if ( print "Hallo" ) {
    echo " Welt";
}

// Das Folgende gibt "wahr" aus
( 1 === 1 ) ? print 'wahr' : print 'falsch';
?>

Anmerkungen

Hinweis: Die Verwendung mit Klammern

Wenn das Argument in Klammern an print übergeben wird, löst das keinen Syntaxfehler aus und erzeugt eine Syntax, die wie ein normaler Funktionsaufruf aussieht. Dies kann jedoch irreführend sein, denn die Klammern sind tatsächlich Teil des auszugebenden Ausdrucks und nicht Teil der print-Syntax selbst.

<?php
print "Hallo";
// gibt "Hallo" aus

print("Hallo");
// gibt auch "Hallo" aus, weil ("Hallo") ein gültiger Ausdruck ist

print(1 + 2) * 3;
// gibt "9" aus; die Klammern bewirken, dass zuerst 1+2 ausgewertet wird, dann 3*3
// Die print-Anweisung sieht den gesamten Ausdruck als ein Argument

if ( print("Hallo") && false ) {
    print " - inside if";
}
else {
    print " - inside else";
}
// gibt " - inside if" aus
// Der Ausdruck ("Hallo") && false wird zuerst ausgewertet und ergibt false
// Dies wird in die leere Zeichenkette "" umgewandelt und gedruckt
// Das print-Konstrukt gibt dann 1 zurück, also wird der Code im if-Block ausgeführt
?>

Wenn print in einem größeren Ausdruck verwendet wird, könnte es nötig sein, sowohl das Schlüsselwort als auch sein Argument in Klammern zu setzen, um das gewünschte Ergebnis zu erhalten:

<?php
if ( (print "Hallo") && false ) {
    print " - inside if";
}
else {
    print " - inside else";
}
// gibt "Hallo - inside else" aus
// Im Gegensatz zum vorherigen Beispiel wird der Ausdruck (print "Hallo")
// zuerst ausgewertet
// Nach der Ausgabe von "Hallo" gibt print 1 zurück
// Da 1 && false falsch ist, wird der Code im else-Block ausgeführt

print "Hallo " && print "Welt";
// gibt "Welt1" aus; print "Welt" wird zuerst ausgewertet,
// dann wird der Ausdruck "Hallo " && 1 an den linken print übergeben

(print "Hallo ") && (print "Welt");
// gibt "Hallo Welt" aus; die Klammern erzwingen, dass die print-Ausdrücke
// vor dem && ausgewertet werden.
?>

Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen verwenden.

Siehe auch

  • echo - Gibt einen oder mehrere Strings aus
  • printf() - Gibt einen formatierten String aus
  • flush() - Leert (sendet) den System-Ausgabepuffer
  • Möglichkeiten literale Strings anzugeben


Gibt einen formatierten String aus

  • « print
  • quoted_printable_decode »
  • PHP Manual
  • String-Funktionen
  • Gibt einen formatierten String aus

printf

(PHP 4, PHP 5, PHP 7, PHP 8)

printf — Gibt einen formatierten String aus

Beschreibung

printf ( string $format , mixed ...$values ) : int

Erzeugt eine Ausgabe abhängig von format.

Parameter-Liste

format

Der Formatstring setzt sich aus keiner oder mehreren Anweisungen zusammen: Normale Zeichen (abgesehen von %), die direkt in das Ergebnis kopiert werden und Konvertierungsanweisungen, die jeweils ihre eigenen Parameter abrufen.

Eine Konvertierungsanweisung folgt diesem Prototypen: %[ArgNum$][Flags][Weite][.Präzision]Spezifizierer.

ArgNum

Eine Ganzzahl gefolgt von einem Dollarzeichen $, die die Nummer des Arguments angibt, das für die Konversion verwendet werden soll.

Flags
Flag | Beschreibung
- Linksbündig innerhalb der angegebenen Feldbreite; Rechtsbündig ist der Standard
+ Positive Zahlen mit einem Pluszeichen +; Standardmäßig werden nur negative Zahlen mit negativen Vorzeichen ausgegeben
(Leerzeichen) | Füllt das Ergebnis mit Leerzeichen auf. Dies ist der Standard.
0 | Füllt nach Links mit Nullen auf. Mit dem s-Spezifizierer kann dies auch nach rechts mit Nullen auffüllen.
'(Zeichen) | Füllt das Ergebnis mit dem angegebenen Zeichen auf.

Weite

Eine Ganzzahle die angibt, wie viele Zeichen (Minimum) das Konvertierungsergebnis haben soll.

Präzision

Die Bedeutung eines Punkts . gefolgt von einer Ganzzahl hängt vom Spezifizierer ab:

  • Für die Spezifizierer e, E, f und F: Dies stellt die Anzahl der Nachkommastellen an, die nach dem Dezimaltrennzeichen ausgegeben werden soll (Standradmäßig ist dies 6).
  • Für die Spezifizierer g und G: Die maximale Anzahl der auszugebenenden signifikanten Nachkommastellen.
  • Für den s Spezifizierer: Verhält sich wie ein Abschneidepunkt, der eine maximale Anzahl an Zeichen in der Zeichenkette angibt.

Hinweis: Wenn der Punkt ohne einen expliziten Wert für die Präzision angegeben wird, wird 0 angenommen.

Hinweis: Wird ein Spezifizierer angegeben, der größer ist als PHP_INT_MAX, so wird eine Warnung ausgegeben.

Spezifizierer
Spezifizierer | Beschreibung
% Ein Prozentzeichen. Kein Parameter nötig.
b | Der Parameter wird als Ganzzahl behandelt und als Binärzahl ausgegeben.
c | Der Parameter wird als Ganzzahl behandelt und als Zeichen aus dem ASCII-Zeichensatz ausgegeben.
d | Der Parameter wird als Ganzzahl behandelt und als (vorzeichenbehaftete) Dezimalzahl ausgegeben.
e | Der Parameter wird als Zahl in wissenschaftlicher Schreibweise (z.B. 1.2e+2) behandelt. Die Angabe der Präzision steht seit PHP 5.2.1 für die Anzahl Zeichen nach dem Dezimalpunkt. In früheren Versionen wurde dies als die Anzahl signifikanter Dezimalstellen betrachtet (eins weniger).
E | Wie der Spezifizierer e, aber schreibt einen Großbuchstaben (z.B. 1.2E+2).
f | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl ausgegeben (abhängig von der Locale).
F | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl (unabhängig von der Locale) ausgegeben. Verfügbar seit PHP 5.0.3.
g

Generelles Format.

Sei P die Präzision wenn nicht Null, 6 wenn die Präzision nicht angegeben ist oder 1 wenn die Präzision Null ist. Dann, wenn eine Konvertierung mittels E einen Exponenten von X hätte:

Wenn P > X = -4 ist die Konvertierung mit Spezifizierer f und Präzision P - (X + 1). Andernfalls wie mit Spezifizierer e und Präzision P - 1.

G | Wie der Spezifizierer g, aber es wird E und f verwendet.
h | Wie der Spezifizierer g, aber es werden F verwendet. Verfügbar ab PHP 8.0.0.
H | Wie der Spezifizierer g, aber es werden E und F verwendet. Verfügbar ab PHP 8.0.0.
o | Der Parameter wird als Ganzzahl betrachtet und als Oktalzahl ausgegeben.
s | Der Parameter wird als Zeichenkette betrachtet und ausgegeben.
u | Der Parameter wird als Ganzzahl betrachtet und als vorzeichenlose Dezimalzahl ausgegeben.
x | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Kleinbuchstaben) ausgegeben.
X | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Großbuchstaben) ausgegeben.

Warnung

Der Spezifizierer c ignoriert Auffüllung und Weite.

Warnung

Der Versuch, die Kombination aus Zeichenketten mit Weite-Spezifizierern und Zeichensätzen die mehr als ein Byte pro zeichen erwarten zu verwenden, führt zu unvorhersehbaren Ergebnissen.

Variablen werden auf einen für den Spezifizier passenden Typen umgewandelt:

Typ-Behandlung
Typ | Spezifizierer
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

values

Rückgabewerte

Gibt die Länge des ausgegebenen Strings zurück.

Beispiele

Beispiel #1 printf(): Verschiedene Beispiele

<?php
$n =  43951789;
$u = -43951789;
$c = 65; // ASCII 65 is 'A'

// Beachten Sie das doppelte %%, dies gibt ein '%'-Zeichen aus
printf("%%b = '%b'\n", $n); // Binärdarstellung
printf("%%c = '%c'\n", $c); // Ausgabe des ASCII-Zeichens; gleicht der chr() Funktion
printf("%%d = '%d'\n", $n); // Standard-Integerdarstellung
printf("%%e = '%e'\n", $n); // Wissenschaftliche Notation
printf("%%u = '%u'\n", $n); // vorzeichenlose Integerdarstellung einer positiven Zahl
printf("%%u = '%u'\n", $u); // vorzeichenlose Integerdarstellung einer negativen Zahl
printf("%%f = '%f'\n", $n); // Fließkommazahldarstellung
printf("%%o = '%o'\n", $n); // Oktaldarstellung
printf("%%s = '%s'\n", $n); // Stringdarstellung
printf("%%x = '%x'\n", $n); // Hexadezimaldarstellung (Kleinbuchstaben)
printf("%%X = '%X'\n", $n); // Hexadezimaldarstellung (Großbuchstaben)

printf("%%+d = '%+d'\n", $n); // Vorzeichenangabe für positive Integerzahlen
printf("%%+d = '%+d'\n", $u); // Vorzeichenangabe für negative Integerzahlen
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

%b = '10100111101010011010101101'
%c = 'A'
%d = '43951789'
%e = '4.39518e+7'
%u = '43951789'
%u = '4251015507'
%f = '43951789.000000'
%o = '247523255'
%s = '43951789'
%x = '29ea6ad'
%X = '29EA6AD'
%+d = '+43951789'
%+d = '-43951789'

Beispiel #2 printf(): Stringformatierung

<?php
$s = 'monkey';
$t = 'many monkeys';

printf("[%s]\n",      $s); // normale rechtsbündige Ausgabe
printf("[%10s]\n",    $s); // rechtsbündige Ausgabe, mit Leerzeichen aufgefüllt
printf("[%-10s]\n",   $s); // linksbündige Ausgabe, mit Leerzeichen aufgefüllt
printf("[%010s]\n",   $s); // auffüllen mit Nullen funktioniert auch bei Strings
printf("[%'#10s]\n",  $s); // Verwendung des benutzerdefinierten Auffüllzeichens '#'
printf("[%10.9s]\n", $t); // rechtsbündige Ausgabe mit Abschneiden überflüssiger
                           // Buchstaben nach der achten Stelle
printf("[%-10.9s]\n", $t); // linksbündige Ausgabe mit Abschneiden überflüssiger
                           // Buchstaben nach der achten Stelle
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

[monkey]
[    monkey]
[monkey    ]
[0000monkey]
[####monkey]
[ many monk]
[many monk ]

Siehe auch

  • print - Ausgabe eines Strings
  • sprintf() - Gibt einen formatierten String zurück
  • fprintf() - Schreibt einen formatierten String in einen Stream
  • vprintf() - Gibt einen formatierten String aus
  • vsprintf() - Gibt einen formatierten String zurück
  • vfprintf() - Schreibt einen formatierten String in einen Stream
  • sscanf() - Überträgt einen String in ein angegebenes Format
  • fscanf() - Interpretiert den Input einer Datei entsprechend einem angegebenen Format
  • number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen
  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum
  • flush() - Leert (sendet) den System-Ausgabepuffer


Konvertiert einen "quoted-printable"-String in einen 8-Bit-String

  • « printf
  • quoted_printable_encode »
  • PHP Manual
  • String-Funktionen
  • Konvertiert einen "quoted-printable"-String in einen 8-Bit-String

quoted_printable_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

quoted_printable_decode — Konvertiert einen "quoted-printable"-String in einen 8-Bit-String

Beschreibung

quoted_printable_decode ( string $string ) : string

Diese Funktion gibt einen 8-Bit-String zurück, der der Konvertierung aus einem "quoted-printable"-String entspricht (gemäß » RFC2045, Kapitel 6.7, aber nicht » RFC2821, Kapitel 4.5.2, da zusätzliche Punkte am Zeilenanfang nicht herausgefiltert werden).

Diese Funktion ist ähnlich wie imap_qprint() bis auf die Tatsache, dass sie kein IMAP-Modul erfordert.

Parameter-Liste

string

Die Eingabezeichenkette.

Rückgabewerte

Gibt den 8-Bit-Binärstring zurück.

Siehe auch

  • quoted_printable_encode() - Wandelt einen 8Bit-String in sein 'Quoted Printable' Gegenstück


Wandelt einen 8Bit-String in sein 'Quoted Printable' Gegenstück

  • « quoted_printable_decode
  • quotemeta »
  • PHP Manual
  • String-Funktionen
  • Wandelt einen 8Bit-String in sein 'Quoted Printable' Gegenstück

quoted_printable_encode

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

quoted_printable_encode — Wandelt einen 8Bit-String in sein 'Quoted Printable' Gegenstück

Beschreibung

quoted_printable_encode ( string $string ) : string

Gibt einen 'Quoted Printable'-String zurück wie in » RFC2045, Abschnitt 6.7 definiert.

Die Funktion ist vergleichbar mit imap_8bit(), benötigt aber nicht die IMAP-Extension.

Parameter-Liste

string

Der Eingabestring.

Rückgabewerte

Gibt den kodierten String zurück.

Siehe auch

  • quoted_printable_decode() - Konvertiert einen "quoted-printable"-String in einen 8-Bit-String
  • iconv_mime_encode() - Composes a MIME header field


Maskiert (quotet) Meta-Zeichen

  • « quoted_printable_encode
  • rtrim »
  • PHP Manual
  • String-Funktionen
  • Maskiert (quotet) Meta-Zeichen

quotemeta

(PHP 4, PHP 5, PHP 7, PHP 8)

quotemeta — Maskiert (quotet) Meta-Zeichen

Beschreibung

quotemeta ( string $string ) : string

Der Inhalt von string wird mit einem Rückstrich ("Backslash", \) vor jedem Vorkommen von

. \ + *
? [ ^ ] ( $ )
versehen ("quoten") und zurückgegeben.

Parameter-Liste

string

Die Eingabezeichenkette.

Rückgabewerte

Gibt die Zeichenkette mit maskierten Metazeichen zurück, oder false, falls eine leere Zeichenkette als string übergeben wurde.

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • addslashes() - Stellt bestimmten Zeichen eines Strings ein "\" voran
  • addcslashes() - Stellt bestimmten Zeichen eines Strings ein "\" voran (wie in C)
  • htmlentities() - Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um
  • htmlspecialchars() - Wandelt Sonderzeichen in HTML-Codes um
  • nl2br() - Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein
  • stripslashes() - Entfernt Maskierungszeichen aus einem String
  • stripcslashes() - Entfernt Quotes aus mit addcslashes behandelten Strings
  • ereg() - Sucht Übereinstimmungen mit einem regulären Ausdruck
  • preg_quote() - Maskiert Zeichen regulärer Ausdrücke


Entfernt Leerraum (oder andere Zeichen) vom Ende eines Strings

  • « quotemeta
  • setlocale »
  • PHP Manual
  • String-Funktionen
  • Entfernt Leerraum (oder andere Zeichen) vom Ende eines Strings

rtrim

(PHP 4, PHP 5, PHP 7, PHP 8)

rtrim — Entfernt Leerraum (oder andere Zeichen) vom Ende eines Strings

Beschreibung

rtrim ( string $string , string $characters = " \n\r\t\v\0" ) : string

Diese Funktion gibt den String string zurück, von dessen Ende alle Whitespaces (oder andere Zeichen) entfernt wurden.

Ohne den zweiten Parameter entfernt rtrim() diese Zeichen:

  • " " (ASCII 32 (0x20)), ein einfaches Leerzeichen.
  • "\t" (ASCII 9 (0x09)), ein Tabulator.
  • "\n" (ASCII 10 (0x0A)), ein Zeilenvorschub (line feed).
  • "\r" (ASCII 13 (0x0D)), ein Wagenrücklauf-Zeichen (carriage return).
  • "\0" (ASCII 0 (0x00)), das NULL-Byte.
  • "\v" (ASCII 11 (0x0B)), ein vertikaler Tabulator.

Parameter-Liste

string

Die Eingabezeichenkette.

characters

Sie können mittels des characters-Parameters eigene Zeichen angeben, die Sie entfernen lassen möchten. Führen Sie einfach alle zu löschenden Zeichen auf. Mittels .. können Sie einen Bereich von Zeichen benennen.

Rückgabewerte

Gibt die modifizierte Zeichenkette zurück.

Beispiele

Beispiel #1 Beispiel zur Verwendung von rtrim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = rtrim($text);
var_dump($trimmed);

$trimmed = rtrim($text, " \t.");
var_dump($trimmed);

$trimmed = rtrim($hello, "Hdle");
var_dump($trimmed);

// entfernt die ASCII Steuerzeichen vom Ende von $binary
// (von 0 bis einschließlich 31)
$clean = rtrim($binary, "\x00..\x1F");
var_dump($clean);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "        These are a few words :) ..."
string(26) "        These are a few words :)"
string(9) "Hello Wor"
string(15) "    Example string"

Siehe auch

  • trim() - Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings
  • ltrim() - Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings


Legt regionale (locale) Einstellungen fest

  • « rtrim
  • sha1_file »
  • PHP Manual
  • String-Funktionen
  • Legt regionale (locale) Einstellungen fest

setlocale

(PHP 4, PHP 5, PHP 7, PHP 8)

setlocale — Legt regionale (locale) Einstellungen fest

Beschreibung

setlocale ( int $category , string $locales , string ...$rest ) : string|false

Alternative Signatur (wird bei benannten Argumenten nicht unterstützt):

setlocale ( int $category , array $locale_array ) : string|false

Legt regionale (locale) Einstellungen fest.

Warnung

Die Locale-Informationen wirken auf den Prozess, nicht auf den Thread. Sofern Sie PHP mit einer Multithreaded Server API, rechnen Sie mit unerwarteten Änderungen der Locale-Einstellungen zur Laufzeit des Skripts, auch wenn das Skript selbst keinen setlocale()-Aufruf durchführt. Dies passiert, da andere Skripte in verschiedenen Threads des selben Prozesses zur selben Zeit prozessweit die Locale-Einstellungen mittels setlocale() ändern. Unter Windows wird die Locale-Einstellung von PHP 5.6.20 bzw. PHP 7.0.5 an per Thread verwaltet.

Parameter-Liste

category

category ist eine benannte Konstante (oder Zeichenkette), die die Kategorie der von den regionalen Einstellungen (Locales) betroffenen Funktionen angibt:

  • LC_ALL für alle folgenden Werte
  • LC_COLLATE für String-Vergleiche, siehe strcoll()
  • LC_CTYPE für Klassifizierung und Umwandlung von Zeichen, zum Beispiel strtoupper()
  • LC_MONETARY für localeconv()
  • LC_NUMERIC für das Dezimal-Trennzeichen (Siehe auch localeconv())
  • LC_TIME für Zeit- und Datums-Formatierungen mittels strftime()
  • LC_MESSAGES für Systemmeldungen (verfügbar, wenn PHP mit liblintl kompiliert wurde)

locales

Ist locales der leere String "", werden die Namen der Locales von den Werten der Umgebungsvariablen gleichen Namens wie die obigen Kategorien oder von "LANG" bestimmt.

Ist locales "0", sind keine regionalen Einstellungen betroffen, und es wird die aktuelle Einstellung zurückgegeben.

Folgen auf locales weitere Parameter, dann wird für jeden Parameter versucht, ihn als neuen Locale-Wert zu setzen, bis es gelingt. Dies ist dann sinnvoll, wenn eine Locale-Angabe auf unterschiedlichen Systemen unter verschiedenen Namen bekannt ist oder auch als Fallback für eine eventuell nicht vorhandene Locale-Angabe.

rest

Optionale String-Parameter die als Locale-Einstellung durchprobiert werden, bis zum Erfolg.

locale_array

Für jedes Array-Element wird versucht, es als neue Locale zu setzen, bis zum Erfolg. Dies ist nützlich, wenn eine Locale unter verschiedenen Namen auf verschiedenen Systemen bekannt ist oder als Fallback für eine möglicherweise nicht verfügbare Locale.

Hinweis:

Unter Windows setzt setlocale(LC_ALL, '') die Locale-Namen aus den Regional/Sprache Einstellungen des Systems; (erreichbar über die Systemsteuerung).

Rückgabewerte

Gibt die neue Locale-Einstellung oder false zurück, wenn die Locale-Funktionalität von Ihrer Plattform nicht unterstützt wird, die angegebene Locale nicht existiert oder der Kategorie-Name ungültig ist.

Ein ungültiger Kategorie-Name erzeugt zusätzlich eine Warnmeldung. Kategorien- und Locale-Namen können sie unter » RFC 1766 und » ISO 639 nachlesen. Unterschiedliche Systeme verwenden differierende Namensräume für die Locales.

Hinweis:

Der Rückgabewert von setlocale() ist von dem System abhängig, auf dem PHP läuft. Es wird genau das zurückgegeben, was die Systemfunktion setlocale zurückgibt.

Beispiele

Beispiel #1 setlocale()-Beispiele

<?php
/* locale auf Holländisch setzen */
setlocale (LC_ALL, 'nl_NL');

/* Ausgabe: vrijdag 22 december 1978 */
echo strftime ("%A %e %B %Y", mktime (0, 0, 0, 12, 22, 1978));

/* versuche verschiedene mögliche locale Namen für Deutsch */
$loc_de = setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "Preferred locale for german on this system is '$loc_de'";
?>

Beispiel #2 setlocale()-Beispiele for Windows

<?php
/* locale auf Holländisch setzen */
setlocale(LC_ALL, 'nld_nld');

/* Ausgabe: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* versuche verschiedene mögliche locale Namen für Deutsch ab PHP 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Preferred locale for german on this system is '$loc_de'";
?>

Anmerkungen

Tipp

Windowsuser finden weitergehende Informationen über locales-Strings auf Microsofts MSDN-Webseite. Unterstützte Language-Strings können Sie in der » Language Strings Dokumentation, Country/Region-Strings in der » Country/Region Strings Dokumentation nachschlagen.


Berechnet den SHA1-Hash einer Datei

  • « setlocale
  • sha1 »
  • PHP Manual
  • String-Funktionen
  • Berechnet den SHA1-Hash einer Datei

sha1_file

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

sha1_file — Berechnet den SHA1-Hash einer Datei

Beschreibung

sha1_file ( string $filename , bool $binary = false ) : string|false

Berechnet den SHA1-Hash der Datei spezifiert durch filename unter Verwendung des » US Secure Hash Algorithmus 1 und gibt den Hashwert zurück. Der Hash ist ein 40 Zeichen langer Hexadezimalwert.

Parameter-Liste

filename

Der Dateiname der Datei deren Hash-Wert berechnet wird.

binary

Falls true, wird der SHA1-Extrakt im Raw-Binary-Format mit einer Länge von 20 Zeichen zurückgegeben.

Rückgabewerte

Gibt bei Erfolg einen String zurück, ansonsten false.

Beispiele

Beispiel #1 sha1_file()-Beispiel

<?php
foreach(glob('/home/kalle/meinprojekt/*.php') as $ent)
{
    if(is_dir($ent))
    {
        continue;
    }

    echo $ent . ' (SHA1: ' . sha1_file($ent) . ')', PHP_EOL;
}
?>

Siehe auch

  • sha1() - Berechnet den SHA1-Hash eines Strings
  • md5_file() - Berechnet den MD5-Code einer Datei
  • crc32() - Berechnet den polynomischen CRC32-Wert eines Strings


Berechnet den SHA1-Hash eines Strings

  • « sha1_file
  • similar_text »
  • PHP Manual
  • String-Funktionen
  • Berechnet den SHA1-Hash eines Strings

sha1

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

sha1 — Berechnet den SHA1-Hash eines Strings

Warnung

Es ist nicht empfohlen, diese Funktion zu verwenden um Passwörter zu hashen, da dieser Passwortalgorithmus relativ schnell ist. Die Seite Password Hashing FAQ enthält weitere Informationen und Best Practices zum Hashen von Passwörtern.

Beschreibung

sha1 ( string $string , bool $binary = false ) : string

Berechnet den SHA1 Hash von string unter Verwendung des » US Secure Hash Algorithmus 1.

Parameter-Liste

string

Die Eingabezeichenkette.

binary

Ist der optionale Parameter binary true, wird der SHA1-Extrakt im Raw-Binary-Format mit einer Länge von 20 Zeichen zurückgegeben. Ansonsten ist der Rückgabewert ein 40 Zeichen langer Hexadezimalwert.

Rückgabewerte

Gibt den SHA1-Hash als Zeichenkette zurück.

Beispiele

Beispiel #1 Ein sha1()-Beispiel

<?php
$str = 'Apfel';

if (sha1($str) === 'df589122eac0f6a7bd8795436e692e3675cadc3b') {
    echo "Hätten Sie gern einen grünen oder einen roten Apfel?";
}
?>

Siehe auch

  • sha1_file() - Berechnet den SHA1-Hash einer Datei
  • crc32() - Berechnet den polynomischen CRC32-Wert eines Strings
  • md5() - Errechnet den MD5-Hash eines Strings
  • hash() - Berechnet den Hash einer Nachricht
  • crypt() - Einweg-String-Hashing
  • password_hash() - Erstellt einen Passwort-Hash


Berechnet die Ähnlichkeit zweier Zeichenketten

  • « sha1
  • soundex »
  • PHP Manual
  • String-Funktionen
  • Berechnet die Ähnlichkeit zweier Zeichenketten

similar_text

(PHP 4, PHP 5, PHP 7, PHP 8)

similar_text — Berechnet die Ähnlichkeit zweier Zeichenketten

Beschreibung

similar_text ( string $string1 , string $string2 , float &$percent = null ) : int

Die Berechnung der Ähnlichkeit zweier Strings erfolgt nach der in Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1) beschriebenen 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.

Parameter-Liste

string1

Die erste Zeichenkette.

string2

Die zweite Zeichenkette.

Hinweis:

Das Vertauschen der Parameter first und second kann ein anderes Ergebnis zur Folge haben; siehe das Beispiel weiter unten.

percent

Falls Sie als Referenz ein drittes Argument angeben, wird similar_text() die Ähnlichkeit als Prozentwert errechnen. Dazu wird das Ergebnis von similar_text() durch den Durchschnitt der Längen der angegebenen Zeichenketten dividiert und mit 100 multipliziert.

Rückgabewerte

Gibt die Anzahl übereinstimmender Zeichen in beiden Zeichenketten zurück.

Die Anzahl übereinstimmender Zeichen wird berechnet, indem die längste erste gemeinsame Teilzeichenkette gesucht wird und dies dann rekursiv für die Prä- und Suffixe wiederholt wird. Die Längen aller gefundenen gemeinsamen Teilzeichenketten werden aufsummiert.

Beispiele

Beispiel #1 Beispiel für die Vertauschung der Argumente von similar_text()

Dieses Beispiel verdeutlicht, dass das Vertauschen des first und second Arguments ein anderes Ergebnis zur Folge haben kann.

<?php
$sim = similar_text('bafoobar', 'barfoo', $perc);
echo "Ähnlichkeit: $sim ($perc %)\n";
$sim = similar_text('barfoo', 'bafoobar', $perc);
echo "Ähnlichkeit: $sim ($perc %)\n";

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Ähnlichkeit: 5 (71.428571428571 %)
Ähnlichkeit: 3 (42.857142857143 %)

Siehe auch

  • levenshtein() - Berechnet die Levenshtein-Distanz zwischen zwei Strings
  • soundex() - Berechnet die Laut-Ähnlichkeit eines Strings


Berechnet die Laut-Ähnlichkeit eines Strings

  • « similar_text
  • sprintf »
  • PHP Manual
  • String-Funktionen
  • Berechnet die Laut-Ähnlichkeit eines Strings

soundex

(PHP 4, PHP 5, PHP 7, PHP 8)

soundex — Berechnet die Laut-Ähnlichkeit eines Strings

Beschreibung

soundex ( string $string ) : string

Errechnet den Wert der Laut-Ähnlichkeit von string.

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.

Diese besondere soundex-Funktion ist u.a. von Donald Knuth in "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley-Verlag (1973), Seiten 391 bis 392 beschrieben.

Parameter-Liste

string

Die Eingabezeichenkette.

Rückgabewerte

Gibt den Soundex-Schlüssel als String mit vier Zeichen zurück. Wenn mindestens ein Buchstabe in string enthalten ist, beginnt der zurückgegebene String mit einem Buchstaben. Andernfalls wird "0000" zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Vor dieser Version wurde beim Aufruf der Funktion mit einer leeren Zeichenkette ohne besonderen Grund false zurückgegeben.

Beispiele

Beispiel #1 Soundex-Beispiele

<?php
soundex("Euler")       == soundex("Ellery");    // E460
soundex("Gauss")       == soundex("Ghosh");     // G200
soundex("Hilbert")     == soundex("Heilbronn"); // H416
soundex("Knuth")       == soundex("Kant");      // K530
soundex("Lloyd")       == soundex("Ladd");      // L300
soundex("Lukasiewicz") == soundex("Lissajous"); // L222
?>

Siehe auch

  • levenshtein() - Berechnet die Levenshtein-Distanz zwischen zwei Strings
  • metaphone() - Berechnet den Metaphone-Schlüssel eines Strings
  • similar_text() - Berechnet die Ähnlichkeit zweier Zeichenketten


Gibt einen formatierten String zurück

  • « soundex
  • sscanf »
  • PHP Manual
  • String-Funktionen
  • Gibt einen formatierten String zurück

sprintf

(PHP 4, PHP 5, PHP 7, PHP 8)

sprintf — Gibt einen formatierten String zurück

Beschreibung

sprintf ( string $format , mixed ...$values ) : string

Gibt eine anhand des Formatierungs-Strings format gebildete Zeichenkette zurück.

Parameter-Liste

format

Der Formatstring setzt sich aus keiner oder mehreren Anweisungen zusammen: Normale Zeichen (abgesehen von %), die direkt in das Ergebnis kopiert werden und Konvertierungsanweisungen, die jeweils ihre eigenen Parameter abrufen.

Eine Konvertierungsanweisung folgt diesem Prototypen: %[ArgNum$][Flags][Weite][.Präzision]Spezifizierer.

ArgNum

Eine Ganzzahl gefolgt von einem Dollarzeichen $, die die Nummer des Arguments angibt, das für die Konversion verwendet werden soll.

Flags
Flag | Beschreibung
- Linksbündig innerhalb der angegebenen Feldbreite; Rechtsbündig ist der Standard
+ Positive Zahlen mit einem Pluszeichen +; Standardmäßig werden nur negative Zahlen mit negativen Vorzeichen ausgegeben
(Leerzeichen) | Füllt das Ergebnis mit Leerzeichen auf. Dies ist der Standard.
0 | Füllt nach Links mit Nullen auf. Mit dem s-Spezifizierer kann dies auch nach rechts mit Nullen auffüllen.
'(Zeichen) | Füllt das Ergebnis mit dem angegebenen Zeichen auf.

Weite

Eine Ganzzahle die angibt, wie viele Zeichen (Minimum) das Konvertierungsergebnis haben soll.

Präzision

Die Bedeutung eines Punkts . gefolgt von einer Ganzzahl hängt vom Spezifizierer ab:

  • Für die Spezifizierer e, E, f und F: Dies stellt die Anzahl der Nachkommastellen an, die nach dem Dezimaltrennzeichen ausgegeben werden soll (Standradmäßig ist dies 6).
  • Für die Spezifizierer g und G: Die maximale Anzahl der auszugebenenden signifikanten Nachkommastellen.
  • Für den s Spezifizierer: Verhält sich wie ein Abschneidepunkt, der eine maximale Anzahl an Zeichen in der Zeichenkette angibt.

Hinweis: Wenn der Punkt ohne einen expliziten Wert für die Präzision angegeben wird, wird 0 angenommen.

Hinweis: Wird ein Spezifizierer angegeben, der größer ist als PHP_INT_MAX, so wird eine Warnung ausgegeben.

Spezifizierer
Spezifizierer | Beschreibung
% Ein Prozentzeichen. Kein Parameter nötig.
b | Der Parameter wird als Ganzzahl behandelt und als Binärzahl ausgegeben.
c | Der Parameter wird als Ganzzahl behandelt und als Zeichen aus dem ASCII-Zeichensatz ausgegeben.
d | Der Parameter wird als Ganzzahl behandelt und als (vorzeichenbehaftete) Dezimalzahl ausgegeben.
e | Der Parameter wird als Zahl in wissenschaftlicher Schreibweise (z.B. 1.2e+2) behandelt. Die Angabe der Präzision steht seit PHP 5.2.1 für die Anzahl Zeichen nach dem Dezimalpunkt. In früheren Versionen wurde dies als die Anzahl signifikanter Dezimalstellen betrachtet (eins weniger).
E | Wie der Spezifizierer e, aber schreibt einen Großbuchstaben (z.B. 1.2E+2).
f | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl ausgegeben (abhängig von der Locale).
F | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl (unabhängig von der Locale) ausgegeben. Verfügbar seit PHP 5.0.3.
g

Generelles Format.

Sei P die Präzision wenn nicht Null, 6 wenn die Präzision nicht angegeben ist oder 1 wenn die Präzision Null ist. Dann, wenn eine Konvertierung mittels E einen Exponenten von X hätte:

Wenn P > X = -4 ist die Konvertierung mit Spezifizierer f und Präzision P - (X + 1). Andernfalls wie mit Spezifizierer e und Präzision P - 1.

G | Wie der Spezifizierer g, aber es wird E und f verwendet.
h | Wie der Spezifizierer g, aber es werden F verwendet. Verfügbar ab PHP 8.0.0.
H | Wie der Spezifizierer g, aber es werden E und F verwendet. Verfügbar ab PHP 8.0.0.
o | Der Parameter wird als Ganzzahl betrachtet und als Oktalzahl ausgegeben.
s | Der Parameter wird als Zeichenkette betrachtet und ausgegeben.
u | Der Parameter wird als Ganzzahl betrachtet und als vorzeichenlose Dezimalzahl ausgegeben.
x | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Kleinbuchstaben) ausgegeben.
X | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Großbuchstaben) ausgegeben.

Warnung

Der Spezifizierer c ignoriert Auffüllung und Weite.

Warnung

Der Versuch, die Kombination aus Zeichenketten mit Weite-Spezifizierern und Zeichensätzen die mehr als ein Byte pro zeichen erwarten zu verwenden, führt zu unvorhersehbaren Ergebnissen.

Variablen werden auf einen für den Spezifizier passenden Typen umgewandelt:

Typ-Behandlung
Typ | Spezifizierer
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

values

Rückgabewerte

Gibt eine anhand des Formatierungs-Strings format gebildete Zeichenkette zurück.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion gibt bei Auftreten eines Fehlers nicht mehr false zurück.

Beispiele

Beispiel #1 Argumente tauschen

Der Formatstring unterstützt nummerierte Argumente und kann daher auch ihre Position bestimmen (argument numbering/swapping).

<?php
$anzahl = 5;
$ort    = 'Baum';

$format = 'Es sind %d Affen auf dem %s';
echo sprintf($format, $anzahl, $ort);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Es sind 5 Affen auf dem Baum

Aber nehmen wir einmal an, dass wir den Formatstring in einer separaten Datei erstellen, da wir ihn internationalisieren wollen und deshalb wie folgt umschreiben:

<?php
$format = 'Der %s enthält %d Affen';
echo sprintf($format, $anzahl, $ort);
?>

Nun haben wir ein Problem. Die Reihenfolge der Platzhalter im Formatstrings entspricht nicht mehr der Reihenfolge der Argumente im Code. Wir würden gern den Code belassen wie er ist und einfach im Formatstring angeben, welche Argumenten welchen Platzhaltern entsprechen. Wir würden dann den Formatstring wie folgt schreiben:

<?php
$format = 'Der %2$s enthält %1$d Affen';
echo sprintf($format, $anzahl, $ort);
?>

Ein weiterer Vorteil ist, dass die Platzhalter wiederholt werden können, ohne mehr Argumente im Code hinzufügen zu müssen.

<?php
$format = 'Der %2$s enthält %1$d Affen.
           %1$d Affen sind ziemlich viel für einen %2$s.';
echo sprintf($format, $anzahl, $ort);
?>

Wenn Argumenttausch verwendet wird, muss die n$-Positionsangabe direkt nach dem Prozentzeichen (%) folgen, vor jeglichen anderen Angaben, wie unten zu sehen ist.

Beispiel #2 Angabe von Füllzeichen

<?php
echo sprintf("%'.9d\n", 123);
echo sprintf("%'.09d\n", 123);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

......123
000000123

Beispiel #3 Positionstausch mit weiteren Spezifikatoren

<?php
$format= 'Der %2$s enthält %1$04d Affen';
echo sprintf($format, $anzahl, $ort);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der Baum enthält 0005 Affen.

Beispiel #4 sprintf(): Mit Nullen aufgefüllte Integer

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Beispiel #5 sprintf(): Währungsformatierung

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
echo $money;
echo "\n";
$formatted = sprintf("%01.2f", $money);
echo $formatted;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

123.1
123.10

Beispiel #6 sprintf(): Wissenschaftliche Notation

<?php
$number = 362525200;

echo sprintf("%.3e", $number);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3.625e+8

Siehe auch

  • printf() - Gibt einen formatierten String aus
  • fprintf() - Schreibt einen formatierten String in einen Stream
  • vprintf() - Gibt einen formatierten String aus
  • vsprintf() - Gibt einen formatierten String zurück
  • vfprintf() - Schreibt einen formatierten String in einen Stream
  • sscanf() - Überträgt einen String in ein angegebenes Format
  • fscanf() - Interpretiert den Input einer Datei entsprechend einem angegebenen Format
  • number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen
  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum


Überträgt einen String in ein angegebenes Format

  • « sprintf
  • str_contains »
  • PHP Manual
  • String-Funktionen
  • Überträgt einen String in ein angegebenes Format

sscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

sscanf — Überträgt einen String in ein angegebenes Format

Beschreibung

sscanf ( string $string , string $format , mixed &...$vars ) : array|int|null

Die Funktion sscanf() ist das Eingabegegenstück zu printf(). sscanf() liest den String string und interpretiert ihn entsprechend dem übergegebenen format-Parameter, der in der Dokumentation zu sprintf() näher beschrieben ist.

Beliebige Whitespaces im Formatstring entsprechen beliebigen Whitespaces im Inputstring. Das heißt, dass auch ein Tabulator \t im Formatstring einem einzelnen Leerzeichen des Inputstrings entsprechen kann.

Parameter-Liste

string

Der zu parsende Eingabestring.

format

Das interpretierte Format für string, wie es in der Dokumentation zu sprintf() beschrieben ist; folgende Unterschiede bestehen:

  • Die Funktion beachtet nicht Locale Einstellungen.
  • F, g, G und b sind nicht unterstützt.
  • D steht für eine Dezimal Ziffer.
  • i steht für Ganzzahlen mit Angabe der Basis.
  • n steht für die Anzahl der bisher prozessierten Zeichen.
  • s beendet das Lesen am ersten Whitespace-Zeichen.

vars

Optionale als Referenz übergebene Variablen, die die geparsten Werte enthalten.

Rückgabewerte

Werden nur 2 Parameter an die Funktion übergeben, werden die analysierten Werte als Array zurückgegeben. Andernfalls, wenn optionale Parameter übergeben wurden, gibt die Funktion die Anzahl der ermittelten Werte zurück. Die optionalen Parameter müssen als Referenz übergeben werden.

Werden mehr Teilzeichenketten in format erwartet als in string verfügbar sind, wird null zurückgegeben.

Beispiele

Beispiel #1 sscanf()-Beispiel

<?php
// Ermittlung der Serien-Nr.
list($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.

Beispiel #2 sscanf() - Verwendung optionaler Parameter

<?php
// Auslesen 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

  • printf() - Gibt einen formatierten String aus
  • sprintf() - Gibt einen formatierten String zurück
  • fprintf() - Schreibt einen formatierten String in einen Stream
  • vprintf() - Gibt einen formatierten String aus
  • vsprintf() - Gibt einen formatierten String zurück
  • vfprintf() - Schreibt einen formatierten String in einen Stream
  • fscanf() - Interpretiert den Input einer Datei entsprechend einem angegebenen Format
  • number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen
  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum


Determine if a string contains a given substring

  • « sscanf
  • str_ends_with »
  • PHP Manual
  • String-Funktionen
  • Determine if a string contains a given substring

str_contains

(PHP 8)

str_contains — Determine if a string contains a given substring

Beschreibung

str_contains ( string $haystack , string $needle ) : bool

Performs a case-sensitive check indicating if needle is contained in haystack.

Parameter-Liste

haystack

The string to search in.

needle

The substring to search for in the haystack.

Rückgabewerte

Returns true if needle is in haystack, false otherwise.

Beispiele

Beispiel #1 Using the empty string ''

<?php
if (str_contains('abc', '')) {
    echo "Checking the existence of the empty string will always return true";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Checking the existence of the empty string will always return true

Beispiel #2 Showing case-sensitivity

<?php
$string = 'The lazy fox jumped over the fence';

if (str_contains($string, 'lazy')) {
    echo "The string 'lazy' was found in the string\n";
}

if (str_contains($string, 'Lazy')) {
    echo 'The string "Lazy" was found in the string';
} else {
    echo '"Lazy" was not found because the case does not match';
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The string 'lazy' was found in the string
"Lazy" was not found because the case does not match

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • str_ends_with() - Checks if a string ends with a given substring
  • str_starts_with() - Checks if a string starts with a given substring
  • stripos() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
  • strrpos() - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
  • strripos() - Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
  • strstr() - Findet das erste Vorkommen eines Strings
  • strpbrk() - Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen
  • substr() - Gibt einen Teil eines Strings zurück
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch


Checks if a string ends with a given substring

  • « str_contains
  • str_getcsv »
  • PHP Manual
  • String-Funktionen
  • Checks if a string ends with a given substring

str_ends_with

(PHP 8)

str_ends_with — Checks if a string ends with a given substring

Beschreibung

str_ends_with ( string $haystack , string $needle ) : bool

Performs a case-sensitive check indicating if haystack ends with needle.

Parameter-Liste

haystack

The string to search in.

needle

The substring to search for in the haystack.

Rückgabewerte

Returns true if haystack ends with needle, false otherwise.

Beispiele

Beispiel #1 Using the empty string ''

<?php
if (str_ends_with('abc', '')) {
    echo "All strings end with the empty string";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

All strings end with the empty string

Beispiel #2 Showing case-sensitivity

<?php
$string = 'The lazy fox jumped over the fence';

if (str_ends_with($string, 'fence')) {
    echo "The string ends with 'fence'\n";
}

if (str_ends_with($string, 'Fence')) {
    echo 'The string ends with "fence"';
} else {
    echo '"fence" was not found because the case does not match';
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The string ends with 'fence'
"fence" was not found because the case does not match

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • str_contains() - Determine if a string contains a given substring
  • str_starts_with() - Checks if a string starts with a given substring
  • stripos() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
  • strrpos() - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
  • strripos() - Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
  • strstr() - Findet das erste Vorkommen eines Strings
  • strpbrk() - Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen
  • substr() - Gibt einen Teil eines Strings zurück
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch


Parst einen CSV-String in ein Array

  • « str_ends_with
  • str_ireplace »
  • PHP Manual
  • String-Funktionen
  • Parst einen CSV-String in ein Array

str_getcsv

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

str_getcsv — Parst einen CSV-String in ein Array

Beschreibung

str_getcsv ( string $string , string $separator = "," , string $enclosure = "\"" , string $escape = '\\' ) : array

Parst eine Zeichenketten Eingabe für Felder im CSV Format und gibt ein Array mit den gelesenen Feldern zurück.

Hinweis:

Diese Funktion berücksichtigt die Locale-Einstellungen. Ist LC_CTYPE beispielsweise de_DE.UTF-8, werden Zeichenketten in Ein-Byte-Kodierungen von dieser Funktion möglicherweise falsch geparst.

Parameter-Liste

string

Die zu parsende Zeichenkette.

separator

Bestimmt das Feldtrennzeichen (nur ein Zeichen).

enclosure

Bestimmt das Textmarkierungszeichen (nur ein Zeichen).

escape

Bestimmt das Maskierungszeichen (höchstens ein Zeichen). Standardmäßig wird ein Backslash (\) verwendet. Eine leere Zeichenkette ("") deaktiviert den proprietären Maskierungsmechanismus.

Hinweis: Normalerweise wird ein enclosure-Zeichen innerhalb eines Feldes maskiert, indem es verdoppelt wird; allerdings kann das escape-Zeichen als Alternative verwendet werden. Also haben für die Standard-Parameterwerte "" und \" dieselbe Bedeutung. Außer der möglichen Maskierung des enclosure-Zeichens hat das escape-Zeichen keine besondere Bedeutung; es kann nicht einmal verwendet werden, um sich selbst zu maskieren.

Rückgabewerte

Gibt ein indexiertes Array zurück, das die eingelesenen Felder enthält.

Changelog

Version | Beschreibung
7.4.0 | Der escape-Parameter interpretiert nun eine leere Zeichenkette als Signal, um den proprietären Maskierungsmechanismus zu deaktivieren. Zuvor wurde eine leere Zeichenkette wie der Vorgabewert behandelt.

Siehe auch

  • fgetcsv() - Liest eine Zeile von der Position des Dateizeigers und prüft diese auf Komma-Separierte-Werte (CSV)


Groß- und kleinschreibungsunabhängige Version von str_replace

  • « str_getcsv
  • str_pad »
  • PHP Manual
  • String-Funktionen
  • Groß- und kleinschreibungsunabhängige Version von str_replace

str_ireplace

(PHP 5, PHP 7, PHP 8)

str_ireplace — Groß- und kleinschreibungsunabhängige Version von str_replace()

Beschreibung

str_ireplace ( array|string $search , array|string $replace , string|array $subject , int &$count = null ) : string|array

Die Funktion gibt einen String oder ein Array zurück, in dem alle Vorkommen von search innerhalb von subject unabhängig von deren Groß- oder Kleinschreibung gegen den entsprechenden replace-Wert ausgetauscht wurden. Sofern Sie keine speziellen Ersetzungsregeln verwenden, sollten Sie diese Funktion grundsätzlich anstelle von preg_replace() mit i-Modifier verwenden.

Parameter-Liste

Wenn search und replace Arrays sind, nimmt str_ireplace() einen Wert von jedem Array und sucht/ersetzt mit diesen im subject. Wenn replace weniger Werte als search besitzt, wird eine leere Zeichenkette für die verbleibenden Ersetzungswerte verwendet. Wenn search ein Array ist und replace eine Zeichenkette, wird dieser Ersetzungswert für alle Werte des search genutzt. Die Umkehrung jedoch wäre sinnlos.

Wenn search oder replace Arrays sind, werden ihre Elemente in aufsteigender Reihenfolge bearbeitet.

search

Der gesuchte Wert, auch Nadel (needle) genannt. Ein Array kann genutzt werden, um mehrere Nadeln zu bestimmen.

replace

Der Ersetzungswert, der gefundene search Werte ersetzt. Ein Array kann genutzt werden, um mehrere Nadeln zu bestimmen.

subject

Die zu durchsuchende und darin ersetzende Zeichenkette oder das Array, auch Heuhaufen (haystack) genannt.

Ist subject ein Array, wird die Suchen-Ersetzen-Funktionalität auf jedes Element von subject angewendet. Die Funktion gibt dann natürlich ein Array zurück.

count

Falls übergeben, wird dies auf die Anzahl der durchgeführten Ersetzungen gesetzt.

Rückgabewerte

Gibt eine Zeichenkette oder ein Array mit ersetzten Werten zurück.

Beispiele

Beispiel #1 str_ireplace()-Beispiel

<?php
$bodytag = str_ireplace("%body%", "schwarz", "<body text=%BODY%>");
echo $bodytag; // <body text=black>
?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Achtung

Überraschende Reihenfolge der Ersetzungen

Da str_ireplace() von links nach rechts ersetzt, kann sie einen zuvor behandelten Wert ersetzen, falls mehrere Ersetzungen durchgeführt werden. Beispiel #2 in der Dokumentation von str_replace() zeigt die Auswirkungen in der Praxis.

Siehe auch

  • str_replace() - Ersetzt alle Vorkommen des Suchstrings durch einen anderen String
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
  • strtr() - Tauscht Zeichen aus oder ersetzt Zeichenketten


Erweitert einen String unter Verwendung eines anderen Strings auf eine bestimmte Länge

  • « str_ireplace
  • str_repeat »
  • PHP Manual
  • String-Funktionen
  • Erweitert einen String unter Verwendung eines anderen Strings auf eine bestimmte Länge

str_pad

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

str_pad — Erweitert einen String unter Verwendung eines anderen Strings auf eine bestimmte Länge

Beschreibung

str_pad ( string $string , int $length , string $pad_string = " " , int $pad_type = STR_PAD_RIGHT ) : string

Diese Funktion gibt den String string, erweitert auf der linken, rechten oder auf beiden Seiten auf die angegebene Länge, zurück. Wenn das optionale Argument pad_string nicht angegeben ist, wird string durch Leerzeichen erweitert, anderenfalls bis zum Ende durch die in pad_string angegebenen Zeichen.

Parameter-Liste

string

Die Eingabezeichenkette.

length

Wenn der Wert von length negativ, kürzer als oder gleich der Länge der Eingabezeichenkette ist, wird keine Erweiterung durchgeführt, und string wird unverändert zurückgegeben.

pad_string

Hinweis:

pad_string wird abgeschnitten, falls die benötigte Anzahl der zu ergänzenden Zeichen nicht gleichmäßig durch die Länge von pad_string geteilt werden kann.

pad_type

Das optionale Argument pad_type kann STR_PAD_RIGHT, STR_PAD_LEFT oder STR_PAD_BOTH sein. Wird pad_type nicht angegeben, so wird standardmäßig von STR_PAD_RIGHT ausgegangen.

Rückgabewerte

Gibt die erweiterte Zeichenkette zurück.

Beispiele

Beispiel #1 str_pad()-Beispiel

<?php
$input = "Alien";
echo str_pad($input, 10);                      // ergibt "Alien     "
echo str_pad($input, 10, "-=", STR_PAD_LEFT);  // ergibt "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH);   // ergibt "__Alien___"
echo str_pad($input,  6, "___");               // ergibt "Alien_"
echo str_pad($input,  3, "*");                 // produces "Alien"
?>


Wiederholt einen String

  • « str_pad
  • str_replace »
  • PHP Manual
  • String-Funktionen
  • Wiederholt einen String

str_repeat

(PHP 4, PHP 5, PHP 7, PHP 8)

str_repeat — Wiederholt einen String

Beschreibung

str_repeat ( string $string , int $times ) : string

Gibt string times mal wiederholt zurück.

Parameter-Liste

string

Die zu wiederholende Zeichenkette.

times

Die Anzahl der Wiederholungen, die auf string angewendet werden sollen.

times muss größer als oder gleich 0 sein. Wenn times den Wert 0 hat, gibt die Funktion einen leeren String zurück.

Rückgabewerte

Gibt die wiederholte Zeichenkette zurück.

Beispiele

Beispiel #1 str_repeat()-Beispiel

<?php
echo str_repeat("-=", 10);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

-=-=-=-=-=-=-=-=-=-=

Siehe auch

  • for
  • str_pad() - Erweitert einen String unter Verwendung eines anderen Strings auf eine bestimmte Länge
  • substr_count() - Ermittelt, wie oft eine Zeichenkette in einem String vorkommt


Ersetzt alle Vorkommen des Suchstrings durch einen anderen String

  • « str_repeat
  • str_rot13 »
  • PHP Manual
  • String-Funktionen
  • Ersetzt alle Vorkommen des Suchstrings durch einen anderen String

str_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

str_replace — Ersetzt alle Vorkommen des Suchstrings durch einen anderen String

Beschreibung

str_replace ( array|string $search , array|string $replace , string|array $subject , int &$count = null ) : string|array

Diese Funktion gibt einen String oder ein Array zurück, in dem alle Vorkommen von search innerhalb von subject durch den angegebenen replace-Wert ersetzt wurden.

Wenn Sie keine ausgefallenen Ersetzungsregeln (wie Reguläre Ausdrücke) benötigen, sollten Sie diese Funktion anstelle von preg_replace() verwenden.

Parameter-Liste

Sind search und replace Arrays, nimmt str_replace() je einen Wert beider Arrays und verwendet diese zum Suchen und Ersetzen in subject. Hat replace weniger Werte als search, so wird ein leerer String zum Ersetzen für den Rest der Werte verwendet. Ist search ein Array und replace ein String, dann wird dieser String für jeden Wert von search angewandt. Das Gegenteil ist nicht sinnvoll.

Sind search und/oder replace Arrays, werden ihre Elemente vom ersten zum letzten hin verarbeitet.

search

Der gesuchte Wert, auch Nadel (needle) genannt. Ein Array kann genutzt werden, um mehrere Nadeln zu bestimmen.

replace

Der Ersetzungswert, der gefundene search Werte ersetzt. Ein Array kann genutzt werden, um mehrere Werte zu bestimmen.

subject

Die zu durchsuchende und darin enthaltene zu ersetzende Zeichenkette oder das Array, auch Heuhaufen (haystack) genannt.

Ist subject ein Array, erfolgt das Suchen und Ersetzen für jeden Wert von subject, und der Rückgabewert ist ebenfalls ein Array.

count

Falls übergeben, wird dies auf die Anzahl der durchgeführten Ersetzungen gesetzt.

Rückgabewerte

Diese Funktion gibt eine Zeichenkette oder ein Array mit ersetzten Werten zurück.

Beispiele

Beispiel #1 Grundlegende str_replace()-Beispiele

<?php
// Liefert: <body text='schwarz'>
$bodytag = str_replace("%body%", "schwarz", "<body text='%body%'>");

// Liefert: Hll PHP-Wlt
$vokale = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vokale, "", "Hallo PHP-Welt");

// Liefert: Sie sollten taeglich Pizza, Bier und Eiscreme essen.
$phrase = "Sie sollten taeglich Fruechte, Gemuese und Ballaststoffe essen.";
$gesund = array("Fruechte", "Gemuese", "Ballaststoffe");
$lecker = array("Pizza", "Bier", "Eiscreme");

$newphrase = str_replace($gesund, $lecker, $phrase);

// Liefert: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>

Beispiel #2 Beispiele möglicher Probleme durch str_replace()

<?php
// Reihenfolge von Ersetzungen
$str     = "Zeile 1\nZeile 2\rZeile 3\r\nZeile 4\n";
$order   = array("\r\n", "\n", "\r");
$replace = '<br />';
// Verarbeitet \r\n's zuerst, so dass sie nicht doppelt konvertiert werden
$newstr = str_replace($order, $replace, $str);

// Ausgabe: F da A durch B ersetzt wird, dann B durch C, und so weiter...
// Letztlich wird E durch F ersetzt, wegen der Ersetzung von Links nach Rechts
$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

// Ausgabe: apearpearle pear
// Aus dem gleichen Grund wie oben beschrieben
$letters = array('a', 'p');
$fruit   = array('apple', 'pear');
$text    = 'a p';
$output  = str_replace($letters, $fruit, $text);
echo $output;
?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Achtung

Mögliche Probleme durch Reihenfolge der Ersetzungen

Weil str_replace() von links nach rechts ersetzt, kann ein zuvor eingesetzter Wert ersetzt werden, wenn mehrere Ersetzungen durchgeführt werden. Das letzte Beispiel zeigt, was dies für Auswirkungen hat.

Hinweis:

Die Funktion berücksichtigt Groß- und Kleinschreibung. Verwenden Sie str_ireplace(), wenn Sie unabhängig von Groß- und Kleinschreibung ersetzen möchten.

Siehe auch

  • str_ireplace() - Groß- und kleinschreibungsunabhängige Version von str_replace
  • substr_replace() - Ersetzt Text innerhalb einer Zeichenkette
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken
  • strtr() - Tauscht Zeichen aus oder ersetzt Zeichenketten


Führt die ROT13-Transformation auf einen String aus

  • « str_replace
  • str_shuffle »
  • PHP Manual
  • String-Funktionen
  • Führt die ROT13-Transformation auf einen String aus

str_rot13

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

str_rot13 — Führt die ROT13-Transformation auf einen String aus

Beschreibung

str_rot13 ( string $string ) : string

Diese Funktion führt die ROT13-Transformation auf die Zeichenkette string aus und liefert den Ergebnisstring zurück.

Die ROT13-Kodierung verschiebt einfach jeden Buchstaben um 13 Stellen im Alphabet. Zeichen, die keine Buchstaben sind, bleiben unverändert. Verschlüsselung und Entschlüsselung werden von derselben Funktion durchgeführt. Bei Übergabe eines verschlüsselten Strings wird der Originalstring zurückgegeben.

Parameter-Liste

string

Die Eingabezeichenkette.

Rückgabewerte

Gibt die ROT13-Version der angegebenen Zeichenkette zurück.

Beispiele

Beispiel #1 str_rot13()-Beispiel

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>


Mischt einen String nach dem Zufallsprinzip

  • « str_rot13
  • str_split »
  • PHP Manual
  • String-Funktionen
  • Mischt einen String nach dem Zufallsprinzip

str_shuffle

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

str_shuffle — Mischt einen String nach dem Zufallsprinzip

Beschreibung

str_shuffle ( string $string ) : string

str_shuffle() mischt eine Zeichenkette. Es entsteht eine Permutation aller vorhandenen Zeichen.

Achtung

Diese Funktion erzeugt keine kryptographisch sicheren Werte und sollte nicht für kryptographische Zwecke verwendet werden. Wenn kryptographisch sichere Werte benötigt werden, sollten stattdessen die Funktionen random_int(), random_bytes() oder openssl_random_pseudo_bytes() verwendet werden.

Parameter-Liste

string

Die Eingabezeichenkette.

Rückgabewerte

Gibt die vermischte Zeichenkette zurück.

Changelog

Version | Beschreibung
7.1.0 | Der interne Zufallsalgorithmus wurde geändert, und verwendet nun den » Mersenne Twister Zufallszahlengenerator statt der rand Funktion von libc.

Beispiele

Beispiel #1 str_shuffle()-Beispiel

<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// erzeugt eine Ausgabe wie: bfdaec
echo $shuffled;
?>

Siehe auch

  • shuffle() - Mischt die Elemente eines Arrays
  • rand() - Erzeugt eine zufällige Zahl


Konvertiert einen String in ein Array

  • « str_shuffle
  • str_starts_with »
  • PHP Manual
  • String-Funktionen
  • Konvertiert einen String in ein Array

str_split

(PHP 5, PHP 7, PHP 8)

str_split — Konvertiert einen String in ein Array

Beschreibung

str_split ( string $string , int $length = 1 ) : array

Konvertiert einen String in ein Array.

Parameter-Liste

string

Die Eingabezeichenkette.

length

Maximale Länge eines Teilstücks.

Rückgabewerte

Wenn der optionale Parameter length angegeben ist, enthält das zurückgegebene Array Elemente mit der in length definierten Länge, andernfalls enthält jedes Element ein einzelnes Zeichen.

false wird zurückgegeben, wenn length kleiner als 1 ist. Wenn der Parameter length größer als string ist, wird der gesamte String als ein erstes (und einziges) Array-Element zurückgegeben.

Beispiele

Beispiel #1 Beispiel für die Verwendung von str_split()

<?php

$str = "Hallo Freund";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => H
    [1] => a
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => e
    [9] => u
    [10] => n
    [11] => d
)

Array
(
    [0] => Hal
    [1] => lo
    [2] => Fre
    [3] => und
)

Anmerkungen

Hinweis:

str_split() trennt in Bytes anstatt Zeichen, wenn Multibyte kodierte Zeichenketten vorliegen.

Siehe auch

  • chunk_split() - Zerlegt einen String in Teile gleicher Länge
  • preg_split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
  • explode() - Teilt eine Zeichenkette anhand einer Zeichenkette
  • count_chars() - Gibt Informationen über die in einem String enthaltenen Zeichen zurück
  • str_word_count() - Gibt Informationen über in einem String verwendete Worte zurück
  • for


Checks if a string starts with a given substring

  • « str_split
  • str_word_count »
  • PHP Manual
  • String-Funktionen
  • Checks if a string starts with a given substring

str_starts_with

(PHP 8)

str_starts_with — Checks if a string starts with a given substring

Beschreibung

str_starts_with ( string $haystack , string $needle ) : bool

Performs a case-sensitive check indicating if haystack begins with needle.

Parameter-Liste

haystack

The string to search in.

needle

The substring to search for in the haystack.

Rückgabewerte

Returns true if haystack begins with needle, false otherwise.

Beispiele

Beispiel #1 Using the empty string ''

<?php
if (str_starts_with('abc', '')) {
    echo "All strings start with the empty string";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

All strings start with the empty string

Beispiel #2 Showing case-sensitivity

<?php
$string = 'The lazy fox jumped over the fence';

if (str_starts_with($string, 'The')) {
    echo "The string starts with 'The'\n";
}

if (str_starts_with($string, 'the')) {
    echo 'The string starts with "the"';
} else {
    echo '"the" was not found because the case does not match';
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The string starts with 'The'
"the" was not found because the case does not match

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • str_contains() - Determine if a string contains a given substring
  • str_ends_with() - Checks if a string ends with a given substring
  • stripos() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
  • strrpos() - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
  • strripos() - Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
  • strstr() - Findet das erste Vorkommen eines Strings
  • strpbrk() - Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen
  • substr() - Gibt einen Teil eines Strings zurück
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch


Gibt Informationen über in einem String verwendete Worte zurück

  • « str_starts_with
  • strcasecmp »
  • PHP Manual
  • String-Funktionen
  • Gibt Informationen über in einem String verwendete Worte zurück

str_word_count

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

str_word_count — Gibt Informationen über in einem String verwendete Worte zurück

Beschreibung

str_word_count ( string $string , int $format = 0 , string|null $characters = null ) : array|int

Zählt die Wörter in string. Wenn der optionale Parameter format nicht angegeben ist, wird ein Integer mit der Anzahl der gefundenen Wörter zurückgegeben. Falls format angegeben ist, ist der Rückgabewert ein Array, dessen Inhalt von format abhängt. Die möglichen Werte von format und die daraus resultierenden Ausgaben sind unten aufgelistet.

Beachten Sie bei der Verwendung dieser Funktion, dass "Wörter" als Locale-abhängige Strings interpretiert werden, die nur die Buchstaben des Alphabets enthalten. Sie dürfen außerdem "'"- und "-"-Zeichen enthalten, jedoch nicht damit beginnen.

Parameter-Liste

string

Die Zeichenkette

format

Gibt den Rückgabewert der Funktion an. Die folgenden Werte werden derzeit unterstützt:

  • 0 - gibt die Anzahl der gefundenen Wörter zurück
  • 1 - gibt einen Array zurück, das alle innerhalb von string gefundenen Wörter enthält.
  • 2 - gibt ein asoziatives Array zurück, dessen Schlüssel die numerische Position des Wortes innerhalb von string angibt und dessen Wert das eigentliche Wort ist

characters

Eine Liste zusätzlicher Zeichen, die ebenfalls als 'Wort' betrachtet werden

Rückgabewerte

Gibt abhängig vom gewählten format ein Array oder ein Integer zurück.

Changelog

Version | Beschreibung
8.0.0 | characters ist jetzt ein Nullable-Typ.

Beispiele

Beispiel #1 Ein str_word_count()-Beispiel

<?php

$str = "Hello fri3nd, you're
       looking          good today!";

print_r(str_word_count($str, 1));
print_r(str_word_count($str, 2));
print_r(str_word_count($str, 1, 'àáãç3'));

echo str_word_count($str);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Hello
    [1] => fri
    [2] => nd
    [3] => you're
    [4] => looking
    [5] => good
    [6] => today
)

Array
(
    [0] => Hello
    [6] => fri
    [10] => nd
    [14] => you're
    [29] => looking
    [46] => good
    [51] => today
)

Array
(
    [0] => Hello
    [1] => fri3nd
    [2] => you're
    [3] => looking
    [4] => good
    [5] => today
)

7

Siehe auch

  • explode() - Teilt eine Zeichenkette anhand einer Zeichenkette
  • preg_split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
  • split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array
  • count_chars() - Gibt Informationen über die in einem String enthaltenen Zeichen zurück
  • substr_count() - Ermittelt, wie oft eine Zeichenkette in einem String vorkommt


Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)

  • « str_word_count
  • strchr »
  • PHP Manual
  • String-Funktionen
  • Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)

strcasecmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strcasecmp — Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)

Beschreibung

strcasecmp ( string $str1 , string $str2 ) : int

Groß- und kleinschreibungsunabhängiger Vergleich zweier Zeichenketten, der binary safe ausgeführt wird.

Parameter-Liste

str1

Die erste Zeichenkette.

str2

Die zweite Zeichenkette.

Rückgabewerte

Ist str1 kleiner als str2 wird ein Wert < 0 zurückgegeben, ist str1 größer als str2 ein Wert > 0, und bei Gleichheit gibt die Funktion 0 zurück.

Beispiele

Beispiel #1 strcasecmp()-Beispiel

<?php
$var1 = "Hallo";
$var2 = "hallo";
if (strcasecmp($var1, $var2) == 0) {
    echo '$var1 ist gleich $var2 bei einem String-Vergleich'
       . ' ohne Berücksichtigung von Groß- und Kleinschreibung';
}
?>

Siehe auch

  • strcmp() - Vergleich zweier Strings (Binary safe)
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • substr_compare() - Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge
  • strncasecmp() - Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen
  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • substr() - Gibt einen Teil eines Strings zurück


Alias von strstr

  • « strcasecmp
  • strcmp »
  • PHP Manual
  • String-Funktionen
  • Alias von strstr

strchr

(PHP 4, PHP 5, PHP 7, PHP 8)

strchr — Alias von strstr()

Beschreibung

Diese Funktion ist ein Alias für: strstr().


Vergleich zweier Strings (Binary safe)

  • « strchr
  • strcoll »
  • PHP Manual
  • String-Funktionen
  • Vergleich zweier Strings (Binary safe)

strcmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strcmp — Vergleich zweier Strings (Binary safe)

Beschreibung

strcmp ( string $str1 , string $str2 ) : int

Beachten Sie, dass zwischen Groß- und Kleinschreibung unterschieden wird.

Parameter-Liste

str1

Die erste Zeichenkette.

str2

Die zweite Zeichenkette.

Rückgabewerte

Ist str1 kleiner als str2 wird ein Wert < 0 zurückgegeben, ist str1 größer als str2 ein Wert > 0, und bei Gleichheit gibt die Funktion 0 zurück.

Beispiele

Beispiel #1 strcmp() Beispiel

<?php
$var1 = "Hallo";
$var2 = "hallo";
if (strcmp($var1, $var2) !== 0) {
    echo '$var1 ist ungleich $var2 bei einem Vergleich, der Groß-/Kleinschreibung berücksichtigt';
}
?>

Siehe auch

  • strcasecmp() - Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • substr_compare() - Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge
  • strncmp() - String-Vergleich der ersten n Zeichen (Binary safe)
  • strstr() - Findet das erste Vorkommen eines Strings
  • substr() - Gibt einen Teil eines Strings zurück


Locale-basierter Zeichenkettenvergleich

  • « strcmp
  • strcspn »
  • PHP Manual
  • String-Funktionen
  • Locale-basierter Zeichenkettenvergleich

strcoll

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

strcoll — Locale-basierter Zeichenkettenvergleich

Beschreibung

strcoll ( string $string1 , string $string2 ) : int

Beachten Sie, dass der Vergleich Groß- und Kleinschreibung berücksichtigt. Im Gegensatz zu strcmp() ist die Funktion zudem nicht binary safe.

strcoll() legt dem Vergleich die aktuellen Locale-Angabe zu Grunde. Ist deren Wert C oder POSIX, verhält sich diese Funktion äquivalent zu strcmp().

Parameter-Liste

string1

Die erste Zeichenkette.

string2

Die zweite Zeichenkette.

Rückgabewerte

Gibt einen Wert < 0 zurück, wenn string1 kleiner ist als string2, einen Wert > 0, wenn string1 größer ist als string2, und 0, wenn sie gleich sind.

Siehe auch

  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • strcmp() - Vergleich zweier Strings (Binary safe)
  • strcasecmp() - Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)
  • substr() - Gibt einen Teil eines Strings zurück
  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • strncasecmp() - Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen
  • strncmp() - String-Vergleich der ersten n Zeichen (Binary safe)
  • strstr() - Findet das erste Vorkommen eines Strings
  • setlocale() - Legt regionale (locale) Einstellungen fest


Ermittelt die Anzahl der nicht übereinstimmenden Zeichen

  • « strcoll
  • strip_tags »
  • PHP Manual
  • String-Funktionen
  • Ermittelt die Anzahl der nicht übereinstimmenden Zeichen

strcspn

(PHP 4, PHP 5, PHP 7, PHP 8)

strcspn — Ermittelt die Anzahl der nicht übereinstimmenden Zeichen

Beschreibung

strcspn ( string $string , string $characters , int $offset = 0 , int|null $length = null ) : int

Gibt die Länge von string zurück, bis zu der kein Zeichen aus characters vorkommt.

Wenn die Parameter offset und length ausgelassen werden, dann wird das gesamte string untersucht. Werden sie angegeben, dann ist es gleichwertig zum Aufruf von strcspn(substr($subject, $start, $length), $mask) (siehe substr für weitere Informationen).

Parameter-Liste

string

Die zu untersuchende Zeichenkette.

characters

Die Zeichenkette, die jedes nicht erlaubte Zeichen enthält.

offset

Die Position in string, an der die Suche beginnt.

Wird offset angegeben und ist nicht negativ, dann beginnt strcspn()string an der offset-Position zu untersuchen. Beispielsweise ist in der Zeichenkette 'abcdef' das Zeichen an Position 0 ein 'a', das Zeichen an Position 2 ein 'c', usw.

Wird offset angegeben und ist negativ, dann beginnt strcspn() string an der offset-Position vom Ende von string zu untersuchen.

length

Die Länge des Segments von string, das untersucht werden soll.

Wird length angegeben und ist nicht negativ, dann wird string für length Zeichen nach der Anfangsposition untersucht.

Wird length angegeben und ist negativ, dann wird string von der Anfangsposition bis zu length Zeichen vom Ende von string untersucht.

Rückgabewerte

Gibt die Länge des Anfangssegments von string zurück, das ausschließlich aus Zeichen besteht, die nicht in characters vorkommen.

Hinweis:

Wird der offset-Parameter angegeben, dann zählt die zurückgegebene Länge von dieser Position, nicht vom Anfang von string.

Changelog

Version | Beschreibung
8.0.0 | length ist jetzt ein Nullable-Typ.

Beispiele

Beispiel #1 strcspn()-Beispiel

<?php
$a = strcspn('abcd',  'apple');
$b = strcspn('abcd',  'banana');
$c = strcspn('hello', 'l');
$d = strcspn('hello', 'world');
$e = strcspn('abcdhelloabcd', 'abcd', -9);
$f = strcspn('abcdhelloabcd', 'abcd', -9, -5);

var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($e);
var_dump($f);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)
int(0)
int(2)
int(2)
int(5)
int(4)

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • strspn() - Ermittelt die Länge des initialen Abschnitts einer Zeichenkette, der ausschließlich aus Zeichen besteht, die in einer übergebenen Maske enthalten sind


Entfernt HTML- und PHP-Tags aus einem String

  • « strcspn
  • stripcslashes »
  • PHP Manual
  • String-Funktionen
  • Entfernt HTML- und PHP-Tags aus einem String

strip_tags

(PHP 4, PHP 5, PHP 7, PHP 8)

strip_tags — Entfernt HTML- und PHP-Tags aus einem String

Beschreibung

strip_tags ( string $string , array|string|null $allowed_tags = null ) : string

Diese Funktion versucht, einen String zurückzugeben, der die um alle NULL-Bytes, HTML- und PHP-Tags reduzierte Version von string darstellt. Sie verwendet die gleiche Engine zum Entfernen der Tags wie fgetss().

Parameter-Liste

string

Die Eingabezeichenkette.

allowed_tags

Sie können den optionalen zweiten Parameter verwenden, um die Tags anzugeben, die nicht entfernt werden sollen. Diese werden entweder als String, oder von PHP 7.4.0 an, als Array angegeben. Dem Beispiel weiter unten kann das Format dieses Parameters entnommen werden.

Hinweis:

HTML-Kommentare und PHP-Tags werden ebenfalls entfernt. Dieses Verhalten ist hartkodiert und kann nicht mittels allowed_tags verändert werden.

Hinweis:

In PHP 5.3.4 und neuer werden selbst-schließende XHTML-Tags ignoriert, und nur nicht-selbst-schließende Tags sollten in allowed_tags verwendet werden. Um beispielsweise sowohl <br;> als auch <br/> zu erlauben, sollte folgendes verwendet werden:

<?php
strip_tags($input, '<br>');
?>

Rückgabewerte

Gibt die reduzierte Zeichenkette zurück.

Changelog

Version | Beschreibung
8.0.0 | allowed_tags ist jetzt ein Nullable-Typ.
7.4.0 | Der allowed_tags-Parameter akzeptiert nun alternativ ein Array.

Beispiele

Beispiel #1 strip_tags()-Beispiel

<?php
$text = '<p>Test-Absatz.</p><!-- Kommentar --> <a href="#fragment">Anderer Text</a>';
echo strip_tags($text);
echo "\n";

// <p> und <a> zulassen
echo strip_tags($text, '<p><a>');

// von PHP 7.4.0 an kann die vorherige Zeile wie folgt geschrieben werden:
// echo strip_tags($text, ['p', 'a']);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Test-Absatz. Anderer Text
<p>Test-Absatz.</p> <a href="#fragment">Anderer Text</a>

Anmerkungen

Warnung

Diese Funktion sollte nicht verwendet werden, um zu versuchen XSS-Attacken zu verhindern. Statt dessen sind geeignetere Funktionen wie htmlspecialchars() oder andere Mittel, abhängig vom Ausgabekontext, zu verwenden.

Warnung

Da strip_tags() HTML nicht wirklich validiert, kann es passieren, dass bei unvollständigen oder unkorrekten Tags mehr Text/Daten gelöscht werden als erwartet.

Warnung

Diese Funktion modifiziert keine Attribute bei Tags, die via allowed_tags erlaubt wurden. Dies betrifft auch style- und onmouseover-Attribute, die ein böswilliger User verwenden kann, um einen Text zu posten, der von anderen Usern gesehen werden soll.

Hinweis:

Tagnamen im Eingabe-HTML, die länger als 1023 Bytes sind, werden behandelt, als ob sie ungültig seien, unabhängig vom allowed_tags-Parameter.

Siehe auch

  • htmlspecialchars() - Wandelt Sonderzeichen in HTML-Codes um


Entfernt Quotes aus mit addcslashes behandelten Strings

  • « strip_tags
  • stripos »
  • PHP Manual
  • String-Funktionen
  • Entfernt Quotes aus mit addcslashes behandelten Strings

stripcslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

stripcslashes — Entfernt Quotes aus mit addcslashes() behandelten Strings

Beschreibung

stripcslashes ( string $string ) : string

Gibt einen String zurück, aus dem die Backslashes ("\") entfernt wurden. Wie in C werden \n, \r ..., oktal- und hexadezimal-Vorkommen erkannt.

Parameter-Liste

string

Die zu demaskierende Zeichenkette.

Rückgabewerte

Gibt die demaskierte Zeichenkette zurück.

Siehe auch

  • addcslashes() - Stellt bestimmten Zeichen eines Strings ein "\" voran (wie in C)


Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung

  • « stripcslashes
  • stripslashes »
  • PHP Manual
  • String-Funktionen
  • Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung

stripos

(PHP 5, PHP 7, PHP 8)

stripos — Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung

Beschreibung

stripos ( string $haystack , string $needle , int $offset = 0 ) : int|false

Sucht die numerische Position des ersten Vorkommens von needle innerhalb des Strings haystack.

Im Gegensatz zu strpos() ist stripos() unabhängig von Groß- und Kleinschreibung.

Parameter-Liste

haystack

Die Zeichenkette, in der gesucht werden soll.

needle

Beachten Sie, dass needle eine Zeichenkette von einem oder mehreren Zeichen sein kann.

Wenn der Parameter needle keine Zeichenkette ist, wird er vor PHP 8.0.0 in eine Ganzzahl umgewandelt und als ordinaler Wert eines Zeichens betrachtet. Dieses Verhalten gilt seit PHP 7.3.0 als veraltet und es wird dringend empfohlen, sich nicht darauf zu verlassen. Ist das Verhalten gewünscht, so sollte needle explizit in eine Zeichenkette umgewandelt werden oder explizit die Funktion chr() aufgerufen werden.

offset

Wenn angegeben, dann beginnt die Suche diese Anzahl an Zeichen gezählt vom Beginn des Strings. Ist der Offset negativ, beginnt die Suche diese Anzahl von Zeichen gezählt vom Ende der Zeichenkette.

Rückgabewerte

Gibt die Position, an der sich die Needle befindet, relativ zum Beginn der haystack Zeichenkette zurück (unabhängig vom Offset). Es ist zu beachten, dass Stringpositionen mit 0, und nicht mit 1 beginnen.

Gibt false zurück, wenn die Needle nicht gefunden wurde.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Changelog

Version | Beschreibung
8.0.0 | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
7.3.0 | Die Übergabe eines Integer als needle wird missbilligt.
7.1.0 | Unterstützung für negative offset-Werte wurde hinzugefügt.

Beispiele

Beispiel #1 stripos()-Beispiele

<?php
$findmich  = 'a';
$meinstring1 = 'xyz';
$meinstring2 = 'ABC';

$pos1 = stripos($meinstring1, $findmich);
$pos2 = stripos($meinstring2, $findmich);

// 'a' ist natürlich nicht in 'xyz' enthalten
if ($pos1 === false) {
    echo "Die Zeichenkette '$findmich' kommt nicht im String '$meinstring1' vor.";
}

// Beachten Sie die Verwendung von ===. Ein einfaches == funktioniert nicht wie
// erwartet, da 'a' an Position 0 (also erster!) Stelle steht
if ($pos2 !== false) {
    echo "Die Zeichenkette '$findmich' wurde in '$meinstring2' an Position $pos2 gefunden";
}
?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • mb_stripos() - Finds position of first occurrence of a string within another, case insensitive
  • strpos() - Sucht die Position des ersten Vorkommens des Suchstrings in einem String
  • strrpos() - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
  • strripos() - Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • substr() - Gibt einen Teil eines Strings zurück
  • str_ireplace() - Groß- und kleinschreibungsunabhängige Version von str_replace


Entfernt Maskierungszeichen aus einem String

  • « stripos
  • stristr »
  • PHP Manual
  • String-Funktionen
  • Entfernt Maskierungszeichen aus einem String

stripslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

stripslashes — Entfernt Maskierungszeichen aus einem String

Beschreibung

stripslashes ( string $string ) : string

Entfernt Maskierungszeichen aus einem String.

Eine exemplarische Anwendung für stripslashes() ergibt sich, wenn die PHP-Direktive magic_quotes_gpc auf On gesetzt ist (Default-Einstellung vor PHP 5.4), und Sie die übermittelten Daten an anderer Stelle, die eigenes Escaping erfordert (wie z.B. eine Datenbank), einfügen wollen. Zum Beispiel, wenn Sie Daten direkt aus einem HTML-Formular verarbeiten wollen.

Parameter-Liste

string

Die Eingabezeichenkette.

Rückgabewerte

Gibt einen String zurück, aus dem alle Backslashes ("\") entfernt wurden. (\' wird zu ' usw.). Doppelte Backslashes (\\) werden zu einem einfachen Backslash (\) umgesetzt.

Beispiele

Beispiel #1 Ein stripslashes()-Beispiel

<?php
$str = "Ist Ihr Name O\'reilly?";

// Ausgabe: Ist Ihr Name O'reilly?
echo stripslashes($str);
?>

Hinweis:

stripslashes() ist nicht rekursiv. Wenn Sie die Funktion auf ein mehrdimensionales Array anwenden wollen, müssen Sie eine rekursive Funktion verwenden.

Beispiel #2 Verwendung von stripslashes() in einem Array

<?php
function stripslashes_deep($value)
{
    $value = is_array($value) ?
                array_map('stripslashes_deep', $value) :
                stripslashes($value);

    return $value;
}

// Beispiel
$array = array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar"));
$array = stripslashes_deep($array);

// Ausgabe
print_r($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => f'oo
    [1] => b'ar
    [2] => Array
        (
            [0] => fo'o
            [1] => b'ar
        )

)

Siehe auch

  • addslashes() - Stellt bestimmten Zeichen eines Strings ein "\" voran
  • get_magic_quotes_gpc() - Ermittelt die aktuelle Konfiguration von magic_quotes_gpc


Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung

  • « stripslashes
  • strlen »
  • PHP Manual
  • String-Funktionen
  • Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung

stristr

(PHP 4, PHP 5, PHP 7, PHP 8)

stristr — Wie strstr(), aber unabhängig von Groß- bzw. Kleinschreibung

Beschreibung

stristr ( string $haystack , string $needle , bool $before_needle = false ) : string|false

Gibt den String haystack ab dem ersten Vorkommen (inklusive) von needle bis zum Ende zurück.

Parameter-Liste

haystack

Die Zeichenkette, in der gesucht werden soll.

needle

Wenn der Parameter needle keine Zeichenkette ist, wird er vor PHP 8.0.0 in eine Ganzzahl umgewandelt und als ordinaler Wert eines Zeichens betrachtet. Dieses Verhalten gilt seit PHP 7.3.0 als veraltet und es wird dringend empfohlen, sich nicht darauf zu verlassen. Ist das Verhalten gewünscht, so sollte needle explizit in eine Zeichenkette umgewandelt werden oder explizit die Funktion chr() aufgerufen werden.

before_needle

Wenn der Wert auf true gesetzt ist, gibt stristr() den Teil von haystack vor dem ersten Auftreten von needle zurück (ohne needle selbst).

needle und haystack werden ohne Rücksicht auf Groß- oder Kleinschreibung untersucht.

Rückgabewerte

Gibt den gefundenen Teilstring zurück. Wenn needle nicht gefunden wurde, gibt die Funktion false zurück.

Changelog

Version | Beschreibung
8.0.0 | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
7.3.0 | Die Übergabe eines Integer als needle wird missbilligt.

Beispiele

Beispiel #1 stristr()-Beispiel

<?php
  $email = 'USER@EXAMPLE.com';
  echo stristr($email, 'e');       // Ausgabe: ER@EXAMPLE.com
  echo stristr($email, 'e', true); // Ab PHP 5.3.0, Ausgabe: US
?>

Beispiel #2 Prüfen, ob ein String gefunden wurde oder nicht

<?php
  $string = 'Hallo Welt!';
  if(stristr($string, 'Erde') === FALSE) {
      echo '"Erde" nicht gefunden';
  }
// Ausgabe: "Erde" nicht gefunden
?>

Beispiel #3 Verwendung eines Wertes, der kein String ist

<?php
  $string = 'APFEL';
  echo stristr($string, 97); // 97 = kleines a
// Ausgabe: APFEL
?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • strstr() - Findet das erste Vorkommen eines Strings
  • strrchr() - Sucht das letzte Vorkommen eines Zeichens in einem String
  • stripos() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
  • strpbrk() - Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch


Ermitteln der String-Länge

  • « stristr
  • strnatcasecmp »
  • PHP Manual
  • String-Funktionen
  • Ermitteln der String-Länge

strlen

(PHP 4, PHP 5, PHP 7, PHP 8)

strlen — Ermitteln der String-Länge

Beschreibung

strlen ( string $string ) : int

Gibt die Länge der Zeichenkette string zurück.

Parameter-Liste

string

Der string wird auf seine Länge hin untersucht.

Rückgabewerte

Die Länge von string im Erfolgsfall, und 0 wenn string leer ist.

Beispiele

Beispiel #1 Ein strlen()-Beispiel

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

Anmerkungen

Hinweis:

strlen() gibt die Anzahl von Bytes statt der Anzahl von Zeichen in einer Zeichenkette zurück.

Hinweis:

strlen() gibt null zurück, falls sie mit Arrays aufgerufen wird und ein E_WARNING Level Fehler wird ausgelöst.

Siehe auch

  • count() - Zählt alle Elemente eines Arrays oder etwas in einem Objekt
  • grapheme_strlen() - Get string length in grapheme units
  • iconv_strlen() - Returns the character count of string
  • mb_strlen() - Get string length


String-Vergleich "natürlicher Ordnung" ohne Berücksichtigung der Groß- und Kleinschreibung

  • « strlen
  • strnatcmp »
  • PHP Manual
  • String-Funktionen
  • String-Vergleich "natürlicher Ordnung" ohne Berücksichtigung der Groß- und Kleinschreibung

strnatcasecmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strnatcasecmp — String-Vergleich "natürlicher Ordnung" ohne Berücksichtigung der Groß- und Kleinschreibung

Beschreibung

strnatcasecmp ( string $string1 , string $string2 ) : int

Die Funktion implementiert einen Vergleichsalgorithmus, der alphanumerische Strings sortiert, wie es ein Mensch täte. Das Verhalten der Funktion entspricht strnatcmp() mit der Ausnahme, dass der Vergleich ohne Berücksichtigung von Groß- und Kleinschreibung durchgeführt wird. Weitere Informationen finden sie auf Martin Pools » Natural Order String Comparison-Seite.

Parameter-Liste

string1

Die erste Zeichenkette.

string2

Die zweite Zeichenkette.

Rückgabewerte

Ähnlich anderen String-Vergleichs-Funktionen gibt diese < 0 zurück, wenn string1 kleiner ist als string2, bzw. > 0, wenn string1 größer ist als string2, oder 0, wenn sie gleich sind.

Siehe auch

  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • strcmp() - Vergleich zweier Strings (Binary safe)
  • strcasecmp() - Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)
  • substr() - Gibt einen Teil eines Strings zurück
  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • strncasecmp() - Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen
  • strncmp() - String-Vergleich der ersten n Zeichen (Binary safe)
  • strstr() - Findet das erste Vorkommen eines Strings
  • setlocale() - Legt regionale (locale) Einstellungen fest


String-Vergleich unter Verwendung einer "natürlichen Ordnung"

  • « strnatcasecmp
  • strncasecmp »
  • PHP Manual
  • String-Funktionen
  • String-Vergleich unter Verwendung einer "natürlichen Ordnung"

strnatcmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strnatcmp — String-Vergleich unter Verwendung einer "natürlichen Ordnung"

Beschreibung

strnatcmp ( string $string1 , string $string2 ) : int

Diese Funktion implemetiert einen Vergleichsalgorithmus, der alphanumerische Zeichenketten "menschlich" ordnet (auch "natürliche Ordnung" genannt). Beachten Sie, dass der Vergleich Groß- und Kleinschreibung berücksichtigt.

Parameter-Liste

string1

Die erste Zeichenkette.

string2

Die zweite Zeichenkette.

Rückgabewerte

Gibt einen Wert < 0 zurück, wenn string1 in der natürlichen Sortierung vor string2 steht, einen Wert > 0, wenn string1 in der natürlichen Sortierung hinter string2 steht, und 0, wenn sie gleich sind.

Beispiele

Der Unterschied zwischen dieser und der regulären String-Sortierung eines Computers (wie sie strcmp() verwendet) wird in dem folgenden Beispiel gezeigt:

<?php
$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);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Normaler String-Vergleich
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Vergleich mittels natürlicher Ordnung
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)
Weitere Informationen finden Sie auf Martin Pools » Natural Order String Comparison-Seite.

Siehe auch

  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • strcasecmp() - Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)
  • substr() - Gibt einen Teil eines Strings zurück
  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • strcmp() - Vergleich zweier Strings (Binary safe)
  • strncmp() - String-Vergleich der ersten n Zeichen (Binary safe)
  • strncasecmp() - Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen
  • strnatcasecmp() - String-Vergleich "natürlicher Ordnung" ohne Berücksichtigung der Groß- und Kleinschreibung
  • strstr() - Findet das erste Vorkommen eines Strings
  • natsort() - Sortiert ein Array in "natürlicher Reihenfolge"
  • natcasesort() - Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert


Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen

  • « strnatcmp
  • strncmp »
  • PHP Manual
  • String-Funktionen
  • Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen

strncasecmp

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

strncasecmp — Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen

Beschreibung

strncasecmp ( string $str1 , string $str2 , int $len ) : int

Diese Funktion ist identisch zu strcasecmp() bis auf den Unterschied, dass Sie die (Mindest-) Anzahl von Zeichen, die von jeder Zeichenkette in den Vergleich einfließen sollen, angeben können.

Parameter-Liste

str1

Die erste Zeichenkette.

str2

Die zweite Zeichenkette.

len

Die Länge der Zeichenkette, die für den Vergleich herangezogen werden soll.

Rückgabewerte

Gibt einen Wert <0 zurück, wenn str1 kürzer ist als str2, einen Wert >0, wenn str1 länger ist als str2, und 0, wenn sie gleich sind.

Siehe auch

  • strncmp() - String-Vergleich der ersten n Zeichen (Binary safe)
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • substr_compare() - Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge
  • strcasecmp() - Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)
  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • substr() - Gibt einen Teil eines Strings zurück


String-Vergleich der ersten n Zeichen (Binary safe)

  • « strncasecmp
  • strpbrk »
  • PHP Manual
  • String-Funktionen
  • String-Vergleich der ersten n Zeichen (Binary safe)

strncmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strncmp — String-Vergleich der ersten n Zeichen (Binary safe)

Beschreibung

strncmp ( string $str1 , string $str2 , int $len ) : int

Diese Funktion ist ähnlich strcmp() mit dem Unterschied, dass Sie die (maximale) Anzahl Zeichen (len) angeben können, die bei jedem String verglichen werden soll.

Beachten Sie, dass der Vergleich Groß- und Kleinschreibung berücksichtigt.

Parameter-Liste

str1

Die erste Zeichenkette.

str2

Die zweite Zeichenkette.

len

Die Anzahl der Zeichen, die für den Vergleich herangezogen werden soll.

Rückgabewerte

Ist str1 kleiner als str2 wird < 0 zurückgegeben, ist str1 größer als str2 > 0, und bei Gleichheit gibt die Funktion 0 zurück.

Siehe auch

  • strncasecmp() - Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • substr_compare() - Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge
  • strcmp() - Vergleich zweier Strings (Binary safe)
  • strstr() - Findet das erste Vorkommen eines Strings
  • substr() - Gibt einen Teil eines Strings zurück


Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen

  • « strncmp
  • strpos »
  • PHP Manual
  • String-Funktionen
  • Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen

strpbrk

(PHP 5, PHP 7, PHP 8)

strpbrk — Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen

Beschreibung

strpbrk ( string $string , string $characters ) : string|false

strpbrk() durchsucht den String string nach dem ersten Vorkommen eines Zeichens aus characters.

Parameter-Liste

string

Die Zeichenkette, in der characters gesucht werden soll.

characters

Dieser Parameter berücksichtigt Groß- und Kleinschreibung.

Rückgabewerte

Gibt den Rest des Strings, beginnend bei der ersten Fundstelle, zurück; falls kein Zeichen gefunden wird jedoch false.

Beispiele

Beispiel #1 strpbrk()-Beispiel

<?php

$text = 'Dies ist ein einfacher Text.';

// Gibt "ies ist ein einfacher Text." aus, da 'i' als erstes gefunden wird
echo strpbrk($text, 'ti');

// Gibt "Text." aus, da Groß- und Kleinschreibung berücksichtigt wird
echo strpbrk($text, 'T');
?>

Siehe auch

  • strpos() - Sucht die Position des ersten Vorkommens des Suchstrings in einem String
  • strstr() - Findet das erste Vorkommen eines Strings
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch


Sucht die Position des ersten Vorkommens des Suchstrings in einem String

  • « strpbrk
  • strrchr »
  • PHP Manual
  • String-Funktionen
  • Sucht die Position des ersten Vorkommens des Suchstrings in einem String

strpos

(PHP 4, PHP 5, PHP 7, PHP 8)

strpos — Sucht die Position des ersten Vorkommens des Suchstrings in einem String

Beschreibung

strpos ( string $haystack , string $needle , int $offset = 0 ) : int|false

Gibt die numerische Position des ersten Vorkommens von needle innerhalb der Zeichenkette haystack zurück.

Parameter-Liste

haystack

Die Zeichenkette, in der gesucht werden soll.

needle

Wenn der Parameter needle keine Zeichenkette ist, wird er vor PHP 8.0.0 in eine Ganzzahl umgewandelt und als ordinaler Wert eines Zeichens betrachtet. Dieses Verhalten gilt seit PHP 7.3.0 als veraltet und es wird dringend empfohlen, sich nicht darauf zu verlassen. Ist das Verhalten gewünscht, so sollte needle explizit in eine Zeichenkette umgewandelt werden oder explizit die Funktion chr() aufgerufen werden.

offset

Wenn angegeben, wird die Suche diese Anzahl an Zeichen vom Anfang der Zeichenkette gezählt beginnen. Ist der Wert negativ, beginnt die Suche stattdessen diese Anzahl an Zeichen vom Ende des Strings gezählt.

Rückgabewerte

Gibt die Position des Vorkommens von needle relativ zum Anfang der Zeichenkette haystack (unabhängig von offset). Es ist ebenfalls zu beachten, dass Stringpositionen bei 0 beginnen, und nicht bei 1.

Gibt false zurück, wenn needle nicht gefunden wurde.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Changelog

Version | Beschreibung
8.0.0 | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
7.3.0 | Die Übergabe eines Integer als needle wird missbilligt.
7.1.0 | Unterstützung für negative offset-Werte wurde hinzugefügt.

Beispiele

Beispiel #1 Verwendung von ===

<?php
$meinString = 'abc';
$findMich   = 'a';
$pos = strpos($meinString, $findMich);

// Beachten Sie die Verwendung von ===. Ein einfacher Vergleich (==) liefert
// nicht das erwartete Ergebnis, da die Position von 'a' die nullte Stelle
// (also das erste Zeichen) ist
if ($pos === false) {
    echo "Der String '$findMich' wurde nicht im String '$meinString' gefunden";
} else {
    echo "Der String '$findMich' wurde im String '$meinString' gefunden";
    echo " und befindet sich an Position $pos";
}
?>

Beispiel #2 Verwendung von !==

<?php
$meinString = 'abc';
$findMich   = 'a';
$pos = strpos($meinString, $findMich);

// Der !==-Operator kann ebenfalls verwendet werden. Die Verwendung von !=
// würde in unserem Beispiel nicht wie erwartet arbeiten, da die Position
// von 'a' 0 ist. Das Statement (0 != false) evaluiert hierbei zu false.
if ($pos !== false) {
    echo "Der String '$findMich' wurde im String '$meinString' gefunden";
    echo " und befindet sich an Position $pos";
} else {
    echo "Der String '$findMich' wurde nicht im String '$meinString' gefunden";
}
?>

Beispiel #3 Verwendung eines Offsets

<?php
// Wir koennen nach einem Zeichen suchen und dabei alles vor dem Offset ignorieren
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, nicht 0
?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • stripos() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
  • str_contains() - Determine if a string contains a given substring
  • str_ends_with() - Checks if a string ends with a given substring
  • str_starts_with() - Checks if a string starts with a given substring
  • strrpos() - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
  • strripos() - Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
  • strstr() - Findet das erste Vorkommen eines Strings
  • strpbrk() - Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen
  • substr() - Gibt einen Teil eines Strings zurück
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch


Sucht das letzte Vorkommen eines Zeichens in einem String

  • « strpos
  • strrev »
  • PHP Manual
  • String-Funktionen
  • Sucht das letzte Vorkommen eines Zeichens in einem String

strrchr

(PHP 4, PHP 5, PHP 7, PHP 8)

strrchr — Sucht das letzte Vorkommen eines Zeichens in einem String

Beschreibung

strrchr ( string $haystack , string $needle ) : string|false

Diese Funktion gibt den letzten Teil von haystack beginnend mit dem letzten Vorkommen von needle bis zum Ende von haystack zurück.

Parameter-Liste

haystack

Die Zeichenkette, in der gesucht werden soll.

needle

Enthält needle mehr als ein Zeichen, wird nur das erste Zeichen verwendet. Damit unterscheidet sich das Verhalten der Funktion gegenüber strstr().

Wenn der Parameter needle keine Zeichenkette ist, wird er vor PHP 8.0.0 in eine Ganzzahl umgewandelt und als ordinaler Wert eines Zeichens betrachtet. Dieses Verhalten gilt seit PHP 7.3.0 als veraltet und es wird dringend empfohlen, sich nicht darauf zu verlassen. Ist das Verhalten gewünscht, so sollte needle explizit in eine Zeichenkette umgewandelt werden oder explizit die Funktion chr() aufgerufen werden.

Rückgabewerte

Die Funktion gibt einen Teil der Zeichenkette zurück. Wird needle nicht gefunden, ist der Rückgabewert false.

Changelog

Version | Beschreibung
8.0.0 | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
7.3.0 | Die Übergabe eines Integer als needle wird missbilligt.

Beispiele

Beispiel #1 strrchr()-Beispiel

<?php
// 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 );
?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • strstr() - Findet das erste Vorkommen eines Strings
  • strrpos() - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette


Kehrt einen String um

  • « strrchr
  • strripos »
  • PHP Manual
  • String-Funktionen
  • Kehrt einen String um

strrev

(PHP 4, PHP 5, PHP 7, PHP 8)

strrev — Kehrt einen String um

Beschreibung

strrev ( string $string ) : string

Gibt string in umgekehrter Reihenfolge zurück.

Parameter-Liste

string

Die umzukehrende Zeichenkette.

Rückgabewerte

Gibt die umgekehrte Zeichenfolge zurück.

Beispiele

Beispiel #1 Umkehren eines Strings mit strrev()

<?php
echo strrev("Hallo Welt!"); // Ausgabe: "!tleW ollaH"
?>


Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung

  • « strrev
  • strrpos »
  • PHP Manual
  • String-Funktionen
  • Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung

strripos

(PHP 5, PHP 7, PHP 8)

strripos — Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung

Beschreibung

strripos ( string $haystack , string $needle , int $offset = 0 ) : int|false

Findet das letzte Vorkommen von needle im String haystack.

Im Gegensatz zu strrpos() beachtet strripos() die Groß- und Kleinschreibung nicht.

Parameter-Liste

haystack

Die Zeichenkette, in der gesucht werden soll.

needle

Wenn der Parameter needle keine Zeichenkette ist, wird er vor PHP 8.0.0 in eine Ganzzahl umgewandelt und als ordinaler Wert eines Zeichens betrachtet. Dieses Verhalten gilt seit PHP 7.3.0 als veraltet und es wird dringend empfohlen, sich nicht darauf zu verlassen. Ist das Verhalten gewünscht, so sollte needle explizit in eine Zeichenkette umgewandelt werden oder explizit die Funktion chr() aufgerufen werden.

offset

Wenn null (0) oder positiv, wird die Suche von links nach rechts durchgeführt, wobei die ersten offset Bytes des haystack übersprungen werden.

Wenn negativ, wird die Suche von rechts nach links durchgeführt, wobei die letzten offset Bytes des haystack übersprungen werden.

Hinweis:

Dies bedeutet, dass das letzte Vorkommen von needle vor den letzten offset Bytes gesucht wird.

Rückgabewerte

Gibt die Position zurück, an der needle relativ zum Anfang der Zeichenkette haystack vorkommt (unabhängig von Suchrichtung oder Offset).

Hinweis: Positionen in Zeichenketten werden ab 0 gezählt, und nicht ab 1.

Wenn needle nicht gefunden wird, gibt die Funktion false zurück.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Changelog

Version | Beschreibung
8.0.0 | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
7.3.0 | Die Übergabe eines Integer als needle wird missbilligt.

Beispiele

Beispiel #1 Ein einfaches strripos()-Beispiel

<?php
$haystack = 'ababcd';
$needle   = 'aB';

$pos      = strripos($haystack, $needle);

if ($pos === false) {
    echo "Leider wurde ($needle) nicht in ($haystack) gefunden.";
} else {
    echo "Glückwunsch!\n";
    echo "Das letzte Vorkommen von ($needle) in ($haystack) ist an Position ($pos).";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

   Glückwunsch!
   Das letzte Vorkommen von (aB) in (ababcd) ist an Position (2).

Siehe auch

  • strpos() - Sucht die Position des ersten Vorkommens des Suchstrings in einem String
  • stripos() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
  • strrpos() - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
  • strrchr() - Sucht das letzte Vorkommen eines Zeichens in einem String
  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • substr() - Gibt einen Teil eines Strings zurück


Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette

  • « strripos
  • strspn »
  • PHP Manual
  • String-Funktionen
  • Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette

strrpos

(PHP 4, PHP 5, PHP 7, PHP 8)

strrpos — Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette

Beschreibung

strrpos ( string $haystack , string $needle , int $offset = 0 ) : int|false

Gibt die numerische Position des letzten Vorkommens von needle innerhalb der Zeichenkette haystack zurück.

Parameter-Liste

haystack

Die Zeichenkette in der gesucht werden soll.

needle

Wenn der Parameter needle keine Zeichenkette ist, wird er vor PHP 8.0.0 in eine Ganzzahl umgewandelt und als ordinaler Wert eines Zeichens betrachtet. Dieses Verhalten gilt seit PHP 7.3.0 als veraltet und es wird dringend empfohlen, sich nicht darauf zu verlassen. Ist das Verhalten gewünscht, so sollte needle explizit in eine Zeichenkette umgewandelt werden oder explizit die Funktion chr() aufgerufen werden.

offset

Wenn null (0) oder positiv, wird die Suche von links nach rechts durchgeführt, wobei die ersten offset Bytes des haystack übersprungen werden.

Wenn negativ, wird die Suche von rechts nach links durchgeführt, wobei die letzten offset Bytes des haystack übersprungen werden.

Hinweis:

Dies bedeutet, dass das letzte Vorkommen von needle vor den letzten offset Bytes gesucht wird.

Rückgabewerte

Gibt die Position des Vorkommens des gesuchten Teilstrings relativ zum Anfang der Zeichenkette haystack (unabhängig von Suchrichtung oder Offset) zurück.

Hinweis: Positionen in Zeichenketten werden ab 0 gezählt, und nicht ab 1.

Gibt false zurück, falls der gesuchte Teilstring nicht gefunden wurde.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Changelog

Version | Beschreibung
8.0.0 | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
7.3.0 | Die Übergabe eines Integer als needle wird missbilligt.

Beispiele

Beispiel #1 Prüfen ob needle in haystack vorkommt

Es liegt nahe, einen Fehler bei der Auswertung der Rückgabewerte von "Zeichen an Position 0 gefunden" und "Zeichen nicht gefunden" zu begehen. Am einfachsten finden Sie den Unterschied wie folgt heraus:

<?php

$pos = strrpos($meinstring, "b");
if ($pos === false) { // Beachten sie die drei Gleichheitszeichen
    // nicht gefunden ...
}

?>

Beispiel #2 Mit Offsets suchen

<?php
$foo = "0123456789a123456789b123456789c";

// Sucht '0' ab dem nullten Byte (vom Anfang an)
var_dump(strrpos($foo, '0', 0));

// Sucht '0' ab dem ersten Byte (nach Byte "0")
var_dump(strrpos($foo, '0', 1));

// Sucht '7' ab dem 21ten Byte (nach Byte 20)
var_dump(strrpos($foo, '7', 20));

// Sucht '7' ab dem 29ten Byte (nach Byte 28)
var_dump(strrpos($foo, '7', 28));

// Sucht '7' von rechts nach links ab dem fünften Byte vom Ende
var_dump(strrpos($foo, '7', -5));

// Sucht 'c' von rechts nach links ab dem zweiten Byte vom Ende
var_dump(strrpos($foo, 'c', -2));

// Sucht '9c' von rechts nach links ab dem zweiten Byte vom Ende
var_dump(strrpos($foo, '9c', -2));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)
bool(false)
int(27)
bool(false)
int(17)
bool(false)
int(29)

Siehe auch

  • strpos() - Sucht die Position des ersten Vorkommens des Suchstrings in einem String
  • stripos() - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
  • strripos() - Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
  • strrchr() - Sucht das letzte Vorkommen eines Zeichens in einem String
  • substr() - Gibt einen Teil eines Strings zurück


Ermittelt die Länge des initialen Abschnitts einer Zeichenkette, der ausschließlich aus Zeichen besteht, die in einer übergebenen Maske enthalten sind

  • « strrpos
  • strstr »
  • PHP Manual
  • String-Funktionen
  • Ermittelt die Länge des initialen Abschnitts einer Zeichenkette, der ausschließlich aus Zeichen besteht, die in einer übergebenen Maske enthalten sind

strspn

(PHP 4, PHP 5, PHP 7, PHP 8)

strspn — Ermittelt die Länge des initialen Abschnitts einer Zeichenkette, der ausschließlich aus Zeichen besteht, die in einer übergebenen Maske enthalten sind

Beschreibung

strspn ( string $string , string $characters , int $offset = 0 , int|null $length = null ) : int

Ermittelt die Länge des initialen Abschnitts von string derausschließlich Zeichen aus characters enthält.

Wenn offset und length ausgelassen werden, werden alle Zeichen von string untersucht. Wenn sie enthalten sind, ist das Ergebnis das Gleiche, wie der Aufruf strspn(substr($subject, $start, $length), $mask) (siehe substr für mehr Informationen).

Die Zeile

<?php
$var = strspn("42 ist die Antwort, was auf die 128. Frage?", "1234567890");
?>
ordnet 2 der Variable $var zu, da der String "42" das ist der initiale Abschnitt des string das ausschließlich aus Zeichen besteht, die in der Menge "1234567890" enthalten sind.

Parameter-Liste

string

Die zu untersuchende Zeichenkette.

characters

Die Menge der erlaubten Zeichen.

offset

Die Position in string an der die Suche startet.

Wurde offset übergeben und ist nicht negativ, beginnt strspn() die Untersuchung von string an der offset'ten Position. Zum Beispiel ist in der Zeichenkette 'abcdef' das Zeichen an Position 0 'a', das Zeichen an Position 2 ist 'c' usw.

Wurdeoffset übergeben und ist negativ, beginnt strspn() die Untersuchung von string an der offset'ten Position vom Ende von string aus betrachtet.

length

Die zu untersuchende Länge des Abschnitts von string.

Wurde offset übergeben und ist nicht-negativ, werden length Zeichen von string nach der Startposition untersucht.

Wurde offset übergeben und ist negativ, wird string von der Startposition bis zu length Zeichen vom Ende von string untersucht.

Rückgabewerte

Gibt die Länge des Abschnittes am Anfang von string zurück, der vollständig aus in characters angegebenen Zeichen besteht.

Hinweis:

Wird der offset-Parameter angegeben, dann zählt die zurückgegebene Länge von dieser Position, nicht vom Anfang von string.

Changelog

Version | Beschreibung
8.0.0 | length ist jetzt ein Nullable-Typ.

Beispiele

Beispiel #1 strspn()-Beispiel

<?php
// subject beginnt nicht mit einem der Zeichen aus mask
var_dump(strspn("foo", "o"));

// Untersuche zwei Zeichen aus subject beginnend bei Offset 1
var_dump(strspn("foo", "o", 1, 2));

// Untersuche ein Zeichen aus subject beginnend bei Offset 1
var_dump(strspn("foo", "o", 1, 1));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(0)
int(2)
int(1)

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • strcspn() - Ermittelt die Anzahl der nicht übereinstimmenden Zeichen


Findet das erste Vorkommen eines Strings

  • « strspn
  • strtok »
  • PHP Manual
  • String-Funktionen
  • Findet das erste Vorkommen eines Strings

strstr

(PHP 4, PHP 5, PHP 7, PHP 8)

strstr — Findet das erste Vorkommen eines Strings

Beschreibung

strstr ( string $haystack , string $needle , bool $before_needle = false ) : string|false

Gibt den Teil der Zeichenkette haystack ab dem ersten Vorkommen (inklusive) von needle bis zum Ende von haystack zurück.

Hinweis:

Diese Funktion unterscheidet zwischen Groß- und Kleinschreibung. Soll die Suche nicht zwischen Groß- und Kleinschreibung unterscheiden, verwenden Sie stristr().

Hinweis:

Wenn Sie nur herausfinden möchten, ob ein bestimmter needle innerhalb von haystack vorkommt, verwenden Sie stattdessen die schnellere und weniger speicherintensive Funktion strpos().

Parameter-Liste

haystack

Die Eingabezeichenkette.

needle

Wenn der Parameter needle keine Zeichenkette ist, wird er vor PHP 8.0.0 in eine Ganzzahl umgewandelt und als ordinaler Wert eines Zeichens betrachtet. Dieses Verhalten gilt seit PHP 7.3.0 als veraltet und es wird dringend empfohlen, sich nicht darauf zu verlassen. Ist das Verhalten gewünscht, so sollte needle explizit in eine Zeichenkette umgewandelt werden oder explizit die Funktion chr() aufgerufen werden.

before_needle

Ist der Wert auf true gesetzt, gibt strstr() den Teil von haystack zurück, der sich vor dem ersten Vorkommen von needle befindet (ohne needle selbst).

Rückgabewerte

Gibt einen Teil der Zeichenkette zurück. Wird needle nicht gefunden, wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
7.3.0 | Die Übergabe eines Integer als needle wird missbilligt.

Beispiele

Beispiel #1 strstr()-Beispiel

<?php
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // Ausgabe: @example.com

$user = strstr($email, '@', true); // Ab PHP 5.3.0
echo $user; // Ausgabe: name
?>

Siehe auch

  • stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
  • strrchr() - Sucht das letzte Vorkommen eines Zeichens in einem String
  • strpos() - Sucht die Position des ersten Vorkommens des Suchstrings in einem String
  • strpbrk() - Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch


Zerlegt einen String

  • « strstr
  • strtolower »
  • PHP Manual
  • String-Funktionen
  • Zerlegt einen String

strtok

(PHP 4, PHP 5, PHP 7, PHP 8)

strtok — Zerlegt einen String

Beschreibung

strtok ( string $string , string $token ) : string|false

Alternative Signatur (wird bei benannten Argumenten nicht unterstützt):

strtok ( string $token ) : string|false

strtok() zerlegt einen String (string) in kürzere Strings (Token), wobei jeder Token von im Parameter token festgelegten Zeichen begrenzt wird. Das bedeutet, dass, wenn Sie eine Zeichenkette wie "Dies ist ein Beispiel-String" haben, Sie ihn in seine einzelnen Worte zerlegen können, wenn Sie das Leerzeichen als token verwenden.

Beachten Sie, dass nur der erste Aufruf von strtok das string-Argument verwendet. Jeder Folgeaufruf von strtok benötigt nur den zu beachtenden token, um herauszufinden, wo sich diese im aktuellen String befinden. Um neu zu beginnen oder einen neuen String zu zerlegen, müssen Sie nur erneut strtok mit dem string-Parameter aufrufen, damit die Funktion neu initialisiert wird. Beachten Sie, dass Sie mehrere Token im token-Parameter angeben können. Der String wird dann an jeder Stelle zerlegt, an der eines der im token-Argument angegebenen Zeichen gefunden wird.

Parameter-Liste

string

Der String, der in kleinere Zeichenketten (Token) zerlegt werden soll.

token

Die Trennzeichen, die auf string angewendet werden sollen.

Rückgabewerte

Der aktuelle String-Token oder false, falls keine weiteren Token mehr vorhanden sind

Beispiele

Beispiel #1 strtok()-Beispiel

<?php
$string = "Dies ist\tein Beispiel-\nString";
/* Sowohl das Tabulator- als auch das Newline-Zeichen werden
   zusätzlich zum Leerzeichen als Token zum Zerlegen verwendet */
$tok = strtok($string, " \n\t");

while ($tok !== false) {
    echo "Wort=$tok<br />";
    $tok = strtok(" \n\t");
}
?>

Beispiel #2 Verhalten von strtok() beim Auffinden eines leeren Teils

<?php
$erster_token  = strtok('/irgendetwas', '/');
$zweiter_token = strtok('/');
var_dump($erster_token, $zweiter_token);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    string(11) "irgendetwas"
    bool(false)

Anmerkungen

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Siehe auch

  • split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks in ein Array
  • explode() - Teilt eine Zeichenkette anhand einer Zeichenkette


Setzt einen String in Kleinbuchstaben um

  • « strtok
  • strtoupper »
  • PHP Manual
  • String-Funktionen
  • Setzt einen String in Kleinbuchstaben um

strtolower

(PHP 4, PHP 5, PHP 7, PHP 8)

strtolower — Setzt einen String in Kleinbuchstaben um

Beschreibung

strtolower ( string $string ) : string

Gibt einen string zurück, in dem alle Buchstaben in Kleinbuchstaben umgewandelt wurden.

Beachten Sie, dass 'Buchstaben' vom aktuellen Gebietschema abhängig ist. Ist z. B. die Voreinstellung für das Gebietschema "C", werden Sonderzeichen wie Umlaute (Ä, Ö, Ü) nicht umgewandelt.

Parameter-Liste

string

Die Eingabezeichenkette.

Rückgabewerte

Gibt die Zeichenkette in Kleinbuchstaben zurück.

Beispiele

Beispiel #1 strtolower()-Beispiel

<?php
$str = "Mary Hat Ein Kleines Lamm, und Sie LIEBT Es So.";
$str = strtolower($str);
echo $str; // Gibt aus: mary hat ein kleines lamm, und sie liebt es so.
?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • strtoupper() - Wandelt alle Zeichen eines Strings in Großbuchstaben um
  • ucfirst() - Verwandelt das erste Zeichen eines Strings in einen Großbuchstaben
  • ucwords() - Wandelt jeden ersten Buchstaben eines Wortes innerhalb eines Strings in einen Großbuchstaben um
  • mb_strtolower() - Make a string lowercase


Wandelt alle Zeichen eines Strings in Großbuchstaben um

  • « strtolower
  • strtr »
  • PHP Manual
  • String-Funktionen
  • Wandelt alle Zeichen eines Strings in Großbuchstaben um

strtoupper

(PHP 4, PHP 5, PHP 7, PHP 8)

strtoupper — Wandelt alle Zeichen eines Strings in Großbuchstaben um

Beschreibung

strtoupper ( string $string ) : string

Gibt string zurück, in dem alle Buchstaben in Großbuchstaben umgewandelt wurden.

Beachten Sie, dass die Erkennung von 'Buchstaben' vom Wert locale abhängig ist. Ist z. B. die Voreinstellung für locale "C", werden Sonderzeichen wie Umlaute (ä, ö, ü) nicht umgewandelt.

Parameter-Liste

string

Die Eingabezeichenkette.

Rückgabewerte

Gibt die Zeichenkette in Großbuchstaben zurück.

Beispiele

Beispiel #1 strtoupper()-Beispiel

<?php
$str = "Mary Hat Ein Kleines Lamm, und Sie LIEBT Es So.";
$str = strtoupper($str);
echo $str; // Gibt aus: MARY HAT EIN KLEINES LAMM, UND SIE LIEBT ES SO.
?>

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • strtolower() - Setzt einen String in Kleinbuchstaben um
  • ucfirst() - Verwandelt das erste Zeichen eines Strings in einen Großbuchstaben
  • ucwords() - Wandelt jeden ersten Buchstaben eines Wortes innerhalb eines Strings in einen Großbuchstaben um
  • mb_strtoupper() - Make a string uppercase


Tauscht Zeichen aus oder ersetzt Zeichenketten

  • « strtoupper
  • substr_compare »
  • PHP Manual
  • String-Funktionen
  • Tauscht Zeichen aus oder ersetzt Zeichenketten

strtr

(PHP 4, PHP 5, PHP 7, PHP 8)

strtr — Tauscht Zeichen aus oder ersetzt Zeichenketten

Beschreibung

strtr ( string $string , string $from , string $to ) : string

Alternative Signatur (wird bei benannten Argumenten nicht unterstützt):

strtr ( string $string , array $replace_pairs ) : string

Diese Funktion gibt eine Kopie von string zurück, in der alle Vorkommen jedes Zeichens von from in das korrespondierende Zeichen in to umgewandelt wurden. Mit drei Argumenten gibt diese Funktion eine Kopie von string zurück, in der alle Vorkommen jedes (single-byte) Zeichens von from in das korrespondierende Zeichen in to übersetzt wurden; d. h., jedes Vorkommen von $from[$n] wurde ersetzt durch $to[$n], wobei $n ein gültiger Offset in beiden Argumenten ist.

Haben from und to eine unterschiedliche Länge, werden die überzähligen Zeichen im jeweils längeren Parameter ignoriert. Die Länge von string wird die gleiche wie die des Rückgabewertes sein.

Wurden zwei Argumente übergeben, sollte das zweite ein array in der Form array('from' => 'to', ...) sein. Der Rückgabewert ist ein string, in dem alle Vorkommen der Array Schlüssel durch die entsprechenden Werte ersetzt wurden. Die längsten Schlüssel werden zuerst getestet werden. Wurde eine Teilzeichenkette ersetzt, wird ihr neuer Wert nicht nochmals durchsucht.

In diesem Fall können die Schlüssel und Werte beliebige Längen haben, vorausgesetzt, es gibt keinen leeren Schlüssel; zusätzlich kann die Länge des Rückgabewertes von der des string abweichen. Diese Funktion ist jedoch dann am effizientesten, wenn alle Schlüssel die gleiche Größe besitzen.

Parameter-Liste

string

Der String, in dem die Ersetzungen vorgenommen werden sollen.

from

Der String, der gegen to ausgetauscht werden soll.

to

Der String, der from ersetzen soll.

replace_pairs

Der replace_pairs-Parameter kann anstatt der Parameter to und from verwendet werden. In diesem Fall muss ein array in der Form array('von' => 'nach', ...) übergeben werden.

Wenn replace_pairs einen Schlüssel enthält, der ein leerer string ("") ist, wird das Element ignoriert; ab PHP wird in diesem Fall ein E_WARNING erzeugt.

Rückgabewerte

Gibt den übersetzten string zurück.

Beispiele

Beispiel #1 strtr()-Beispiel

<?php
//In dieser Form, strtr() übersetzt byte-zu-byte
//Daher gehen wir hier von einer single-byte Kodierung aus.
$addr = strtr($addr, "äåö", "aao");
?>

Das nächste Beispiel zeigt das Verhalten von strtr(), aufgerufen mit nur zwei Argumenten. Beachten Sie den Vorrang der Ersetzungen ("h" wird nicht gewählt, da es längere Übereinstimmungen gibt) und dass der ersetzte Text nicht erneut durchsucht wurde.

Beispiel #2 strtr()-Beispiel mit zwei Argumenten

<?php
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

hello all, I said hi

Die zwei Verhaltensweisen unterscheiden sich wesentlich. Mit 3 Argumenten esetzt strtr() Bytes; mit zweien kann sie längere Teilzeichenketten ersetzen.

Beispiel #3 strtr(): Vergleich der Verhaltensweisen

<?php
echo strtr("baab", "ab", "01"),"\n";

$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1001
ba01

Siehe auch

  • str_replace() - Ersetzt alle Vorkommen des Suchstrings durch einen anderen String
  • preg_replace() - Sucht und ersetzt mit regulären Ausdrücken


Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge

  • « strtr
  • substr_count »
  • PHP Manual
  • String-Funktionen
  • Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge

substr_compare

(PHP 5, PHP 7, PHP 8)

substr_compare — Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge

Beschreibung

substr_compare ( string $haystack , string $needle , int $offset , int|null $length = null , bool $case_insensitive = false ) : int

substr_compare() vergleicht haystack ab der in offset definierten Position mit needle. Die Länge des verglichenen String-Bestandteils wird vom length-Parameter bestimmt.

Parameter-Liste

haystack

Die zu vergleichende Hauptzeichenkette.

needle

Die zweite zu vergleichende Zeichenkette.

offset

Die Anfangsposition für den Vergleich. Wenn der Wert negativ ist, wird rückwärts vom Ende der Zeichenkette an gezählt.

length

Die Länge der zu vergleichenden Zeichensequenz. Standardwert ist der größere Wert des Vergleiches der Länge des needle mit der Länge von haystack minus offset.

case_insensitive

Wenn case_insensitive den Wert true hat, wird der Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung durchgeführt.

Rückgabewerte

Gibt eine Zahl < 0 zurück, wenn haystack ab der in offset festgelegten Position kleiner ist als needle, eine Zahl > 0, wenn der ermittelte String größer ist als needle, und 0, wenn sie gleich sind. Wenn der Parameter offset gleich (vor PHP 7.2.18, 7.3.5) oder größer als die Länge von haystack ist oder length gesetzt und kleiner als 0 ist (oder, vor PHP 5.5.11, kleiner als 1), gibt substr_compare() eine Warnung aus und hat den Rückgabewert false.

Changelog

Version | Beschreibung
8.0.0 | length ist jetzt ein Nullable-Typ.
7.2.18, 7.3.5 | offset kann nun gleich der Länge des haystack sein.

Beispiele

Beispiel #1 Ein substr_compare()-Beispiel

<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // warning
?>

Siehe auch

  • strncmp() - String-Vergleich der ersten n Zeichen (Binary safe)


Ermittelt, wie oft eine Zeichenkette in einem String vorkommt

  • « substr_compare
  • substr_replace »
  • PHP Manual
  • String-Funktionen
  • Ermittelt, wie oft eine Zeichenkette in einem String vorkommt

substr_count

(PHP 4, PHP 5, PHP 7, PHP 8)

substr_count — Ermittelt, wie oft eine Zeichenkette in einem String vorkommt

Beschreibung

substr_count ( string $haystack , string $needle , int $offset = 0 , int $length = ? ) : int

Die Funktion substr_count() ermittelt, wie oft needle in dem String haystack vorkommt, und gibt die Anzahl der Vorkommen zurück. Beachten Sie, dass bei needle zwischen Groß- und Kleinschreibung unterschieden wird.

Hinweis:

Die Funktion zählt einander überlappende Substrings nicht mit. Beachten Sie das untenstehende Beispiel!

Parameter-Liste

haystack

Der String, in dem gesucht werden soll

needle

Der Substring, nach dem gesucht werden soll

offset

Die Zeichenposition, an der die Zählung begonnen werden soll. Ist diese negativ, beginnt die Zählung am Ende der Zeichenkette.

length

Die maximale Länge nach dem angegebenen Offset, in der nach dem Substring gesucht werden soll. Es wird eine Warnung ausgegeben, wenn Offset plus Länge größer als die Länge von haystack ist. Eine negative Länge zählt vom Ende des haystack an.

Rückgabewerte

Die Funktion gibt einen Wert vom Typ integer zurück.

Changelog

Version | Beschreibung
8.0.0 | length ist jetzt ein Nullable-Typ.
7.1.0 | Unterstützung für negative offset- und length-Argumente wurde hinzugefügt. length kann nun auch 0 sein.

Beispiele

Beispiel #1 Ein substr_count()-Beispiel

<?php
$text = 'Dies ist ein Test';
echo strlen($text); // 17

echo substr_count($text, 'es'); // 2

// wird der String auf 's ist ein Test' reduziert,
// lautet das ausgegebene Ergebnis 1
echo substr_count($text, 'es', 3);

// wird der String auf 's i' reduziert,
// lautet das Ergebnis 0
echo substr_count($text, 'es', 3, 3);

// generiert eine Warnung, da 5+13 > 17
echo substr_count($text, 'es', 5, 13);

// gibt 1 aus, da überlappende Substrings nicht gezählt werden
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');
?>

Siehe auch

  • count_chars() - Gibt Informationen über die in einem String enthaltenen Zeichen zurück
  • strpos() - Sucht die Position des ersten Vorkommens des Suchstrings in einem String
  • substr() - Gibt einen Teil eines Strings zurück
  • strstr() - Findet das erste Vorkommen eines Strings


Ersetzt Text innerhalb einer Zeichenkette

  • « substr_count
  • substr »
  • PHP Manual
  • String-Funktionen
  • Ersetzt Text innerhalb einer Zeichenkette

substr_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

substr_replace — Ersetzt Text innerhalb einer Zeichenkette

Beschreibung

substr_replace ( array|string $string , array|string $replace , array|int $offset , array|int|null $length = null ) : string|array

substr_replace() ersetzt in einer Kopie von string alle Zeichen, die sich innerhalb der durch die Parameter offset und (optional) length festgelegten Grenze befinden, mit der in replace angegebenen Zeichenkette.

Parameter-Liste

string

Die Eingabezeichenkette.

Ein array von strings kann übergeben werden; die Ersetzungen erfolgen dann bei jeder Zeichenkette der Reihe nach. In diesem Fall können die Parameter replace, offset und length entweder als Skalar übergeben werden, die auf jede Eingabezeichenkette der Reihe nach angewandt werden, oder als arrays; in diesem Fall wird das entsprechende Array-Element für jede Eingabezeichenkette genutzt.

replace

Die Ersetzungszeichenkette

offset

Ist offset nicht negativ, beginnt die Ersetzung ab der im Parameter offset definierten Stelle innerhalb von string.

Ist offset negativ, wird vom Ende der Zeichenkette string bis zum Wert von offset rückwärts gezählt und dort mit dem Austausch begonnen.

length

Ist der Parameter angegeben und positiv, stellt dieser Parameter die Länge des auszuwechselnden Teils von string dar. Ist der Wert 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 der Parameter nicht angegeben, wird standardmäßig eine Ersetzung bis zum Ende des Strings (strlen(string )) durchgeführt, das heißt, die Ersetzung endet mit dem Ende von string. Sollte length den Wert Null (0) haben, wird die Funktion die Zeichenkette replace in string an der durch offset bezeichneten Stelle einfügen.

Rückgabewerte

Der entstehende String wird zurückgegeben. Ist string ein Array, wird auch ein Array zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | length ist jetzt ein Nullable-Typ.

Beispiele

Beispiel #1 Einfache substr_replace()-Beispiele

<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr />\n";

/* Die beiden Beispiele ersetzen alle Vorkommen von
   $var durch 'bob'. */
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";

/* Einfügen von 'bob' direkt am Anfang von $var. */
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";

/* Die nächsten beiden Beispiele ersetzen 'MNRPQR' in $var
   durch 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";

/* Entfernen von 'MNRPQR' aus $var. */
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>

Beispiel #2 Nutzung von substr_replace() um mehrere Zeichenketten auf einmal zu ersetzen.

<?php
$input = array('A: XXX', 'B: XXX', 'C: XXX');

// Ein einfacher Fall: ersetze XXX in jeder Zeichenkette mit YYY.
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."\n";

// Ein komplizierterer Fall bei dem jede Ersetzung unterschiedlich ist.
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."\n";

// Ersetze eine jedesmal unterschiedliche Anzahl von Zeichen
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

A: YYY; B: YYY; C: YYY
A: AAA; B: BBB; C: CCC
A: AAAXX; B: BBBX; C: CCC

Anmerkungen

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • str_replace() - Ersetzt alle Vorkommen des Suchstrings durch einen anderen String
  • substr() - Gibt einen Teil eines Strings zurück
  • Zeichenketten-Zugriff und -Veränderung je Zeichen


Gibt einen Teil eines Strings zurück

  • « substr_replace
  • trim »
  • PHP Manual
  • String-Funktionen
  • Gibt einen Teil eines Strings zurück

substr

(PHP 4, PHP 5, PHP 7, PHP 8)

substr — Gibt einen Teil eines Strings zurück

Beschreibung

substr ( string $string , int $offset , int|null $length = null ) : string

Gibt den Teil von string zurück, der durch die Parameter offset und length definiert wurde.

Parameter-Liste

string

Die Eingabezeichenkette.

offset

Wenn offset nicht negativ ist, beginnt der zurückgegebene String an der offset-Position von string, angefangen bei 0 (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.

Ist offset negativ, beginnt der zurückgegebene String bei dem in offset festgelegten Zeichen vom Ende von string aus betrachtet.

Ist string kürzer als offset Zeichen, wird false zurückgegeben.

Beispiel #1 Einen negativen offset-Wert verwenden

<?php
$rest = substr("abcdef", -1);    // gibt "f" zurück
$rest = substr("abcdef", -2);    // gibt "ef" zurück
$rest = substr("abcdef", -3, 1); // gibt "d" zurück
?>

length

Ist length angegeben und positiv, enthält der zurückgegebene String höchstens length Zeichen ab offset (abhängig von der Länge von string).

Ist length angegeben und negativ, werden genau so viele Zeichen vom Ende von string abgeschnitten (nachdem die Startposition ermittelt wurde, sollte offset negativ sein). Gibt offset die Position des abzuschneidenden Teiles oder dahinter an, wird false zurückgegeben.

Wenn length gegeben ist und den Wert 0, false oder null hat, wird ein leerer String zurückgegeben.

Wird length ausgelassen, wird die Teilzeichenkette beginnend von offset bis zum Ende des Strings zurückgegeben.

Beispiel #2 Negativen length-Wert verwenden

<?php
$rest = substr("abcdef", 0, -1);  // gibt "abcde" zurück
$rest = substr("abcdef", 2, -1);  // gibt "cde" zurück
$rest = substr("abcdef", 4, -4);  // gibt false zurück
$rest = substr("abcdef", -3, -1); // gibt "de" zurück
?>

Rückgabewerte

Gibt den extrahierten Teil von string zurück. Im Fehlerfall wird false zurückgegeben. oder einen leeren String.

Changelog

Version | Beschreibung
8.0.0 | length ist jetzt ein Nullable-Typ.
8.0.0 | Die Funktion gibt einen leeren String zurück, wo sie vorher false zurückgegeben hat.

Beispiele

Beispiel #3 Generelle Verwendung von substr()

<?php
echo substr('abcdef', 1);     // bcdef
echo substr('abcdef', 1, 3);  // bcd
echo substr('abcdef', 0, 4);  // abcd
echo substr('abcdef', 0, 8);  // abcdef
echo substr('abcdef', -1, 1); // f

// Auf ein einzelnes Zeichen eines Strings kann auch mittels
// eckiger Klammern zugegriffen werden
$string = 'abcdef';
echo $string[0];                 // a
echo $string[3];                 // d
echo $string[strlen($string)-1]; // f

?>

Beispiel #4 substr()-Typumwandlungs-Verhalten

<?php
class apple {
    public function __toString() {
        return "green";
    }
}

echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) ''
6) ''
7) '1200'

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) false
6) false
7) '1200'

Fehler/Exceptions

Gibt im Fehlerfall false zurück.

<?php
var_dump(substr('a', 2)); // bool(false)
?>

Siehe auch

  • strrchr() - Sucht das letzte Vorkommen eines Zeichens in einem String
  • substr_replace() - Ersetzt Text innerhalb einer Zeichenkette
  • preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
  • trim() - Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings
  • mb_substr() - Get part of string
  • wordwrap() - Umbricht einen String nach einer bestimmten Anzahl Zeichen
  • String-Zugriff und -Veränderung je Zeichen


Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings

  • « substr
  • ucfirst »
  • PHP Manual
  • String-Funktionen
  • Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings

trim

(PHP 4, PHP 5, PHP 7, PHP 8)

trim — Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings

Beschreibung

trim ( string $string , string $characters = " \n\r\t\v\0" ) : string

Die Funktion entfernt Whitespaces am Anfang und Ende von string und gibt den String dann zurück. Ohne Verwendung des zweiten Parameters entfernt trim() folgende Zeichen:

  • " " (ASCII 32 (0x20)), ein normales Leerzeichen.
  • "\t" (ASCII 9 (0x09)), ein Tabulatorzeichen.
  • "\n" (ASCII 10 (0x0A)), einen Zeilenvorschub (Line Feed).
  • "\r" (ASCII 13 (0x0D)), ein Wagenrücklaufzeichen (Carriage Return).
  • "\0" (ASCII 0 (0x00)), das NUL-Byte.
  • "\v" (ASCII 11 (0x0B)), ein vertikaler Tabulator.

Parameter-Liste

string

string erwartet die zu trimmende Zeichenkette.

characters

Optional kann die Liste der Zeichen angegeben werden, die an Anfang und Ende der Zeichenkette entfernt werden sollen. Um diese Zeichen anzugeben, wird der characters-Parameter verwendet. Er enthält eine Liste aller zu entfernenden Zeichen. Mit .. können darüber hinaus auch ganze Bereiche von Zeichen angegeben werden.

Rückgabewerte

Der gekürzte String.

Beispiele

Beispiel #1 Beispiel zur Verwendung von trim()

<?php

$text = "\t\tDieser Text besteht aus mehreren Wörtern :) ...  ";
$binary = "\x09Beispielhafter String\x0A";
$hello  = "Hallo Welt";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = trim($text);
var_dump($trimmed);

$trimmed = trim($text, " \t.");
var_dump($trimmed);

$trimmed = trim($hello, "Htla");
var_dump($trimmed);

$trimmed = trim($hello, 'HtWr');
var_dump($trimmed);

// Trimmen der ASCII Steuerzeichen an Anfang und Ende von $binary
// (inklusive der Zeichen von ASCII 0 bis 31)
$clean = trim($binary, "\x00..\x1F");
var_dump($clean);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(51) "  Dieser Text besteht aus mehreren Wörtern :) ...  "
string(23) " Beispielhafter String
"
string(10) "Hallo Welt"

string(47) "Dieser Text besteht aus mehreren Wörtern :) ..."
string(43) "Dieser Text besteht aus mehreren Wörtern :)"
string(4) "o We"
string(8) "allo Wel"
string(21) "Beispeilhafter String"

Beispiel #2 Trimmen von Array-Werten mittels trim()

<?php
function trim_value(&$value)
{
    $value = trim($value);
}

$fruechte = array('Apfel','Banane ', ' Preiselbeere ');
var_dump($fruechte);

array_walk($fruechte, 'trim_value');
var_dump($fruechte);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  string(5) "Apfel"
  [1]=>
  string(7) "Banane "
  [2]=>
  string(11) " Preiselbeere "
}
array(3) {
  [0]=>
  string(5) "Apfel"
  [1]=>
  string(6) "Banane"
  [2]=>
  string(9) "Preiselbeere"
}

Anmerkungen

Hinweis: Mögliche Überraschungen: Entfernung mittlerer Zeichen

Weil trim() Zeichen vom Anfang und Ende einer Zeichenkette (string) entfernt, kann es verwirrend sein, wenn Zeichen aus der Mitte gelöscht (oder nicht) werden. trim('abc', 'bad') entfernt 'a' und 'b', weil es 'a' entfernt, verschiebt daher 'b' an den Anfang um ebenfalls entfernt zu werden. Daher "funktioniert" es, trim('abc', 'b') dagegen scheinbar nicht.

Siehe auch

  • ltrim() - Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings
  • rtrim() - Entfernt Leerraum (oder andere Zeichen) vom Ende eines Strings
  • str_replace() - Ersetzt alle Vorkommen des Suchstrings durch einen anderen String


Verwandelt das erste Zeichen eines Strings in einen Großbuchstaben

  • « trim
  • ucwords »
  • PHP Manual
  • String-Funktionen
  • Verwandelt das erste Zeichen eines Strings in einen Großbuchstaben

ucfirst

(PHP 4, PHP 5, PHP 7, PHP 8)

ucfirst — Verwandelt das erste Zeichen eines Strings in einen Großbuchstaben

Beschreibung

ucfirst ( string $string ) : string

Wandelt das erste Zeichen von string in einen Großbuchstaben um, wenn es ein Zeichen des Alphabets ist, und gibt den veränderten String zurück.

Beachten Sie, dass die Zeichen des Alphabets abhängig vom Wert des gesetzten Locale erkannt werden. In der Voreinstellung "C" werden Sonderzeichen wie die deutschen Umlaute (ä, ö, ü) nicht erkannt und daher nicht umgewandelt.

Parameter-Liste

string

Die Eingabezeichenkette.

Rückgabewerte

Gibt den umgewandelten String zurück.

Beispiele

Beispiel #1 ucfirst()-Beispiel

<?php
$foo = 'hallo welt!';
$foo = ucfirst($foo);             // Hallo welt!

$bar = 'HALLO WELT!';
$bar = ucfirst($bar);             // HALLO WELT!
$bar = ucfirst(strtolower($bar)); // Hallo welt!
?>

Siehe auch

  • lcfirst() - Wandelt den ersten Buchstaben eines Strings in einen Kleinbuchstaben um
  • strtolower() - Setzt einen String in Kleinbuchstaben um
  • strtoupper() - Wandelt alle Zeichen eines Strings in Großbuchstaben um
  • ucwords() - Wandelt jeden ersten Buchstaben eines Wortes innerhalb eines Strings in einen Großbuchstaben um


Wandelt jeden ersten Buchstaben eines Wortes innerhalb eines Strings in einen Großbuchstaben um

  • « ucfirst
  • vfprintf »
  • PHP Manual
  • String-Funktionen
  • Wandelt jeden ersten Buchstaben eines Wortes innerhalb eines Strings in einen Großbuchstaben um

ucwords

(PHP 4, PHP 5, PHP 7, PHP 8)

ucwords — Wandelt jeden ersten Buchstaben eines Wortes innerhalb eines Strings in einen Großbuchstaben um

Beschreibung

ucwords ( string $string , string $separators = " \t\r\n\f\v" ) : string

Gibt einen String zurück, in dem das erste Zeichen eines jeden Wortes innerhalb von string in einen Großbuchstaben umgewandelt wurde, sofern es sich dabei um Buchstaben handelt.

Als Wort wird hierbei eine Zeichenkette verstanden, die einem Zeichen, das im separators Parameter enthalten ist folgt. (Standardmäßig sind dies: Leerzeichen, Seitenvorschub, Zeilenvorschub, Wagenrücklauf sowie horizontales und vertikales Tabulatorzeichen).

Parameter-Liste

string

Die Eingabezeichenkette.

separators

Der optionale separators Parameter enthält die Wort-Trenzeichen.

Rückgabewerte

Gibt die modifizierte Zeichenkette zurück.

Beispiele

Beispiel #1 ucwords()-Beispiel

<?php
$foo = 'hallo welt!';
$foo = ucwords ($foo);          // Hallo Welt!

$bar = 'HALLO WELT!';
$bar = ucwords($bar);             // HALLO WELT!
$bar = ucwords(strtolower($bar)); // Hallo Welt!
?>

Beispiel #2 ucwords()-Beispiel mit benutzerdefinierten Trenzeichen

<?php
$foo = 'hello|world!';
$bar = ucwords($foo);             // Hello|world!

$baz = ucwords($foo, "|");        // Hello|World!
?>

Beispiel #3 ucwords()-Beispiel mit zusätzlichen Trennzeichen

<?php
$foo = "mike o'hara";
$bar = ucwords($foo);                 // Mike O'hara

$baz = ucwords($foo, " \t\r\n\f\v'"); // Mike O'Hara
?>

Anmerkungen

Hinweis: Diese Funktion ist Locale-abhängig und behandelt Eingaben entsprechend dem aktuell gewählten Locale. Dies funktioniert allerdings nur mit Zeichensätzen, die Zeichen immer als einzelnes Byte kodieren. Werden Zeichenkodierungen verwendet, die abhängig vom zu kodierenden Zeichen unterschiedlich viele Bytes verwenden (die meisten nicht westeuropäischen Sprachen), sollten die multibyte oder intl Extensions verwendet werden.

Hinweis: Diese Funktion ist binary safe.

Siehe auch

  • strtoupper() - Wandelt alle Zeichen eines Strings in Großbuchstaben um
  • strtolower() - Setzt einen String in Kleinbuchstaben um
  • ucfirst() - Verwandelt das erste Zeichen eines Strings in einen Großbuchstaben
  • mb_convert_case() - Perform case folding on a string


Schreibt einen formatierten String in einen Stream

  • « ucwords
  • vprintf »
  • PHP Manual
  • String-Funktionen
  • Schreibt einen formatierten String in einen Stream

vfprintf

(PHP 5, PHP 7, PHP 8)

vfprintf — Schreibt einen formatierten String in einen Stream

Beschreibung

vfprintf ( resource $stream , string $format , array $values ) : int

Schreibt einen der format-Anweisung entsprechenden String in den in stream definierten Stream.

Verhält sich wie fprintf(), akzeptiert jedoch ein Array anstelle einer Gruppe von Werten als Parameter.

Parameter-Liste

stream

format

Der Formatstring setzt sich aus keiner oder mehreren Anweisungen zusammen: Normale Zeichen (abgesehen von %), die direkt in das Ergebnis kopiert werden und Konvertierungsanweisungen, die jeweils ihre eigenen Parameter abrufen.

Eine Konvertierungsanweisung folgt diesem Prototypen: %[ArgNum$][Flags][Weite][.Präzision]Spezifizierer.

ArgNum

Eine Ganzzahl gefolgt von einem Dollarzeichen $, die die Nummer des Arguments angibt, das für die Konversion verwendet werden soll.

Flags
Flag | Beschreibung
- Linksbündig innerhalb der angegebenen Feldbreite; Rechtsbündig ist der Standard
+ Positive Zahlen mit einem Pluszeichen +; Standardmäßig werden nur negative Zahlen mit negativen Vorzeichen ausgegeben
(Leerzeichen) | Füllt das Ergebnis mit Leerzeichen auf. Dies ist der Standard.
0 | Füllt nach Links mit Nullen auf. Mit dem s-Spezifizierer kann dies auch nach rechts mit Nullen auffüllen.
'(Zeichen) | Füllt das Ergebnis mit dem angegebenen Zeichen auf.

Weite

Eine Ganzzahle die angibt, wie viele Zeichen (Minimum) das Konvertierungsergebnis haben soll.

Präzision

Die Bedeutung eines Punkts . gefolgt von einer Ganzzahl hängt vom Spezifizierer ab:

  • Für die Spezifizierer e, E, f und F: Dies stellt die Anzahl der Nachkommastellen an, die nach dem Dezimaltrennzeichen ausgegeben werden soll (Standradmäßig ist dies 6).
  • Für die Spezifizierer g und G: Die maximale Anzahl der auszugebenenden signifikanten Nachkommastellen.
  • Für den s Spezifizierer: Verhält sich wie ein Abschneidepunkt, der eine maximale Anzahl an Zeichen in der Zeichenkette angibt.

Hinweis: Wenn der Punkt ohne einen expliziten Wert für die Präzision angegeben wird, wird 0 angenommen.

Hinweis: Wird ein Spezifizierer angegeben, der größer ist als PHP_INT_MAX, so wird eine Warnung ausgegeben.

Spezifizierer
Spezifizierer | Beschreibung
% Ein Prozentzeichen. Kein Parameter nötig.
b | Der Parameter wird als Ganzzahl behandelt und als Binärzahl ausgegeben.
c | Der Parameter wird als Ganzzahl behandelt und als Zeichen aus dem ASCII-Zeichensatz ausgegeben.
d | Der Parameter wird als Ganzzahl behandelt und als (vorzeichenbehaftete) Dezimalzahl ausgegeben.
e | Der Parameter wird als Zahl in wissenschaftlicher Schreibweise (z.B. 1.2e+2) behandelt. Die Angabe der Präzision steht seit PHP 5.2.1 für die Anzahl Zeichen nach dem Dezimalpunkt. In früheren Versionen wurde dies als die Anzahl signifikanter Dezimalstellen betrachtet (eins weniger).
E | Wie der Spezifizierer e, aber schreibt einen Großbuchstaben (z.B. 1.2E+2).
f | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl ausgegeben (abhängig von der Locale).
F | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl (unabhängig von der Locale) ausgegeben. Verfügbar seit PHP 5.0.3.
g

Generelles Format.

Sei P die Präzision wenn nicht Null, 6 wenn die Präzision nicht angegeben ist oder 1 wenn die Präzision Null ist. Dann, wenn eine Konvertierung mittels E einen Exponenten von X hätte:

Wenn P > X = -4 ist die Konvertierung mit Spezifizierer f und Präzision P - (X + 1). Andernfalls wie mit Spezifizierer e und Präzision P - 1.

G | Wie der Spezifizierer g, aber es wird E und f verwendet.
h | Wie der Spezifizierer g, aber es werden F verwendet. Verfügbar ab PHP 8.0.0.
H | Wie der Spezifizierer g, aber es werden E und F verwendet. Verfügbar ab PHP 8.0.0.
o | Der Parameter wird als Ganzzahl betrachtet und als Oktalzahl ausgegeben.
s | Der Parameter wird als Zeichenkette betrachtet und ausgegeben.
u | Der Parameter wird als Ganzzahl betrachtet und als vorzeichenlose Dezimalzahl ausgegeben.
x | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Kleinbuchstaben) ausgegeben.
X | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Großbuchstaben) ausgegeben.

Warnung

Der Spezifizierer c ignoriert Auffüllung und Weite.

Warnung

Der Versuch, die Kombination aus Zeichenketten mit Weite-Spezifizierern und Zeichensätzen die mehr als ein Byte pro zeichen erwarten zu verwenden, führt zu unvorhersehbaren Ergebnissen.

Variablen werden auf einen für den Spezifizier passenden Typen umgewandelt:

Typ-Behandlung
Typ | Spezifizierer
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

values

Rückgabewerte

Gibt die Länge des Ausgabestrings zurück.

Beispiele

Beispiel #1 vfprintf(): Integer-Werte mit führenden Nullen

<?php
if (!($fp = fopen('date.txt', 'w')))
    return;

vfprintf($fp, "%04d-%02d-%02d", array($year, $month, $day));
// schreibt das ISO-formatierte Datum in die Daten date.txt
?>

Siehe auch

  • printf() - Gibt einen formatierten String aus
  • sprintf() - Gibt einen formatierten String zurück
  • fprintf() - Schreibt einen formatierten String in einen Stream
  • vprintf() - Gibt einen formatierten String aus
  • vsprintf() - Gibt einen formatierten String zurück
  • sscanf() - Überträgt einen String in ein angegebenes Format
  • fscanf() - Interpretiert den Input einer Datei entsprechend einem angegebenen Format
  • number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen
  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum


Gibt einen formatierten String aus

  • « vfprintf
  • vsprintf »
  • PHP Manual
  • String-Funktionen
  • Gibt einen formatierten String aus

vprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

vprintf — Gibt einen formatierten String aus

Beschreibung

vprintf ( string $format , array $values ) : int

Zeigt die Werte eines Arrays als formatierten String entsprechend der format-Anweisungen (siehe Beschreibung der Formatierungsmöglichkeiten der Funktion sprintf()) an.

Arbeitet wie printf(), akzeptiert jedoch ein Array anstelle mehrerer Werte als Argument.

Parameter-Liste

format

Der Formatstring setzt sich aus keiner oder mehreren Anweisungen zusammen: Normale Zeichen (abgesehen von %), die direkt in das Ergebnis kopiert werden und Konvertierungsanweisungen, die jeweils ihre eigenen Parameter abrufen.

Eine Konvertierungsanweisung folgt diesem Prototypen: %[ArgNum$][Flags][Weite][.Präzision]Spezifizierer.

ArgNum

Eine Ganzzahl gefolgt von einem Dollarzeichen $, die die Nummer des Arguments angibt, das für die Konversion verwendet werden soll.

Flags
Flag | Beschreibung
- Linksbündig innerhalb der angegebenen Feldbreite; Rechtsbündig ist der Standard
+ Positive Zahlen mit einem Pluszeichen +; Standardmäßig werden nur negative Zahlen mit negativen Vorzeichen ausgegeben
(Leerzeichen) | Füllt das Ergebnis mit Leerzeichen auf. Dies ist der Standard.
0 | Füllt nach Links mit Nullen auf. Mit dem s-Spezifizierer kann dies auch nach rechts mit Nullen auffüllen.
'(Zeichen) | Füllt das Ergebnis mit dem angegebenen Zeichen auf.

Weite

Eine Ganzzahle die angibt, wie viele Zeichen (Minimum) das Konvertierungsergebnis haben soll.

Präzision

Die Bedeutung eines Punkts . gefolgt von einer Ganzzahl hängt vom Spezifizierer ab:

  • Für die Spezifizierer e, E, f und F: Dies stellt die Anzahl der Nachkommastellen an, die nach dem Dezimaltrennzeichen ausgegeben werden soll (Standradmäßig ist dies 6).
  • Für die Spezifizierer g und G: Die maximale Anzahl der auszugebenenden signifikanten Nachkommastellen.
  • Für den s Spezifizierer: Verhält sich wie ein Abschneidepunkt, der eine maximale Anzahl an Zeichen in der Zeichenkette angibt.

Hinweis: Wenn der Punkt ohne einen expliziten Wert für die Präzision angegeben wird, wird 0 angenommen.

Hinweis: Wird ein Spezifizierer angegeben, der größer ist als PHP_INT_MAX, so wird eine Warnung ausgegeben.

Spezifizierer
Spezifizierer | Beschreibung
% Ein Prozentzeichen. Kein Parameter nötig.
b | Der Parameter wird als Ganzzahl behandelt und als Binärzahl ausgegeben.
c | Der Parameter wird als Ganzzahl behandelt und als Zeichen aus dem ASCII-Zeichensatz ausgegeben.
d | Der Parameter wird als Ganzzahl behandelt und als (vorzeichenbehaftete) Dezimalzahl ausgegeben.
e | Der Parameter wird als Zahl in wissenschaftlicher Schreibweise (z.B. 1.2e+2) behandelt. Die Angabe der Präzision steht seit PHP 5.2.1 für die Anzahl Zeichen nach dem Dezimalpunkt. In früheren Versionen wurde dies als die Anzahl signifikanter Dezimalstellen betrachtet (eins weniger).
E | Wie der Spezifizierer e, aber schreibt einen Großbuchstaben (z.B. 1.2E+2).
f | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl ausgegeben (abhängig von der Locale).
F | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl (unabhängig von der Locale) ausgegeben. Verfügbar seit PHP 5.0.3.
g

Generelles Format.

Sei P die Präzision wenn nicht Null, 6 wenn die Präzision nicht angegeben ist oder 1 wenn die Präzision Null ist. Dann, wenn eine Konvertierung mittels E einen Exponenten von X hätte:

Wenn P > X = -4 ist die Konvertierung mit Spezifizierer f und Präzision P - (X + 1). Andernfalls wie mit Spezifizierer e und Präzision P - 1.

G | Wie der Spezifizierer g, aber es wird E und f verwendet.
h | Wie der Spezifizierer g, aber es werden F verwendet. Verfügbar ab PHP 8.0.0.
H | Wie der Spezifizierer g, aber es werden E und F verwendet. Verfügbar ab PHP 8.0.0.
o | Der Parameter wird als Ganzzahl betrachtet und als Oktalzahl ausgegeben.
s | Der Parameter wird als Zeichenkette betrachtet und ausgegeben.
u | Der Parameter wird als Ganzzahl betrachtet und als vorzeichenlose Dezimalzahl ausgegeben.
x | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Kleinbuchstaben) ausgegeben.
X | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Großbuchstaben) ausgegeben.

Warnung

Der Spezifizierer c ignoriert Auffüllung und Weite.

Warnung

Der Versuch, die Kombination aus Zeichenketten mit Weite-Spezifizierern und Zeichensätzen die mehr als ein Byte pro zeichen erwarten zu verwenden, führt zu unvorhersehbaren Ergebnissen.

Variablen werden auf einen für den Spezifizier passenden Typen umgewandelt:

Typ-Behandlung
Typ | Spezifizierer
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

values

Rückgabewerte

Gibt die Länge des Ausgabestrings zurück.

Beispiele

Beispiel #1 vprintf(): mit Nullen aufgefüllte Ganzzahlen

<?php
vprintf("%04d-%02d-%02d", explode('-', '1988-8-1'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1988-08-01

Siehe auch

  • printf() - Gibt einen formatierten String aus
  • sprintf() - Gibt einen formatierten String zurück
  • fprintf() - Schreibt einen formatierten String in einen Stream
  • vsprintf() - Gibt einen formatierten String zurück
  • vfprintf() - Schreibt einen formatierten String in einen Stream
  • sscanf() - Überträgt einen String in ein angegebenes Format
  • fscanf() - Interpretiert den Input einer Datei entsprechend einem angegebenen Format
  • number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen
  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum


Gibt einen formatierten String zurück

  • « vprintf
  • wordwrap »
  • PHP Manual
  • String-Funktionen
  • Gibt einen formatierten String zurück

vsprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

vsprintf — Gibt einen formatierten String zurück

Beschreibung

vsprintf ( string $format , array $values ) : string

Verhält sich wie sprintf(), akzeptiert jedoch ein Array anstelle mehrerer Werte als Parameter.

Parameter-Liste

format

Der Formatstring setzt sich aus keiner oder mehreren Anweisungen zusammen: Normale Zeichen (abgesehen von %), die direkt in das Ergebnis kopiert werden und Konvertierungsanweisungen, die jeweils ihre eigenen Parameter abrufen.

Eine Konvertierungsanweisung folgt diesem Prototypen: %[ArgNum$][Flags][Weite][.Präzision]Spezifizierer.

ArgNum

Eine Ganzzahl gefolgt von einem Dollarzeichen $, die die Nummer des Arguments angibt, das für die Konversion verwendet werden soll.

Flags
Flag | Beschreibung
- Linksbündig innerhalb der angegebenen Feldbreite; Rechtsbündig ist der Standard
+ Positive Zahlen mit einem Pluszeichen +; Standardmäßig werden nur negative Zahlen mit negativen Vorzeichen ausgegeben
(Leerzeichen) | Füllt das Ergebnis mit Leerzeichen auf. Dies ist der Standard.
0 | Füllt nach Links mit Nullen auf. Mit dem s-Spezifizierer kann dies auch nach rechts mit Nullen auffüllen.
'(Zeichen) | Füllt das Ergebnis mit dem angegebenen Zeichen auf.

Weite

Eine Ganzzahle die angibt, wie viele Zeichen (Minimum) das Konvertierungsergebnis haben soll.

Präzision

Die Bedeutung eines Punkts . gefolgt von einer Ganzzahl hängt vom Spezifizierer ab:

  • Für die Spezifizierer e, E, f und F: Dies stellt die Anzahl der Nachkommastellen an, die nach dem Dezimaltrennzeichen ausgegeben werden soll (Standradmäßig ist dies 6).
  • Für die Spezifizierer g und G: Die maximale Anzahl der auszugebenenden signifikanten Nachkommastellen.
  • Für den s Spezifizierer: Verhält sich wie ein Abschneidepunkt, der eine maximale Anzahl an Zeichen in der Zeichenkette angibt.

Hinweis: Wenn der Punkt ohne einen expliziten Wert für die Präzision angegeben wird, wird 0 angenommen.

Hinweis: Wird ein Spezifizierer angegeben, der größer ist als PHP_INT_MAX, so wird eine Warnung ausgegeben.

Spezifizierer
Spezifizierer | Beschreibung
% Ein Prozentzeichen. Kein Parameter nötig.
b | Der Parameter wird als Ganzzahl behandelt und als Binärzahl ausgegeben.
c | Der Parameter wird als Ganzzahl behandelt und als Zeichen aus dem ASCII-Zeichensatz ausgegeben.
d | Der Parameter wird als Ganzzahl behandelt und als (vorzeichenbehaftete) Dezimalzahl ausgegeben.
e | Der Parameter wird als Zahl in wissenschaftlicher Schreibweise (z.B. 1.2e+2) behandelt. Die Angabe der Präzision steht seit PHP 5.2.1 für die Anzahl Zeichen nach dem Dezimalpunkt. In früheren Versionen wurde dies als die Anzahl signifikanter Dezimalstellen betrachtet (eins weniger).
E | Wie der Spezifizierer e, aber schreibt einen Großbuchstaben (z.B. 1.2E+2).
f | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl ausgegeben (abhängig von der Locale).
F | Der Parameter wird als Gleitkommazahl betrachtet und als Gleitkommazahl (unabhängig von der Locale) ausgegeben. Verfügbar seit PHP 5.0.3.
g

Generelles Format.

Sei P die Präzision wenn nicht Null, 6 wenn die Präzision nicht angegeben ist oder 1 wenn die Präzision Null ist. Dann, wenn eine Konvertierung mittels E einen Exponenten von X hätte:

Wenn P > X = -4 ist die Konvertierung mit Spezifizierer f und Präzision P - (X + 1). Andernfalls wie mit Spezifizierer e und Präzision P - 1.

G | Wie der Spezifizierer g, aber es wird E und f verwendet.
h | Wie der Spezifizierer g, aber es werden F verwendet. Verfügbar ab PHP 8.0.0.
H | Wie der Spezifizierer g, aber es werden E und F verwendet. Verfügbar ab PHP 8.0.0.
o | Der Parameter wird als Ganzzahl betrachtet und als Oktalzahl ausgegeben.
s | Der Parameter wird als Zeichenkette betrachtet und ausgegeben.
u | Der Parameter wird als Ganzzahl betrachtet und als vorzeichenlose Dezimalzahl ausgegeben.
x | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Kleinbuchstaben) ausgegeben.
X | Der Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit Großbuchstaben) ausgegeben.

Warnung

Der Spezifizierer c ignoriert Auffüllung und Weite.

Warnung

Der Versuch, die Kombination aus Zeichenketten mit Weite-Spezifizierern und Zeichensätzen die mehr als ein Byte pro zeichen erwarten zu verwenden, führt zu unvorhersehbaren Ergebnissen.

Variablen werden auf einen für den Spezifizier passenden Typen umgewandelt:

Typ-Behandlung
Typ | Spezifizierer
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

values

Rückgabewerte

Gibt Array-Werte als formatierten String entsprechend der format-Anweisung. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion gibt bei Auftreten eines Fehlers nicht mehr false zurück.

Beispiele

Beispiel #1 vsprintf(): mit Nullen aufgefüllte Ganzzahlen

<?php
print vsprintf("%04d-%02d-%02d", explode('-', '1988-8-1'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1988-08-01

Siehe auch

  • printf() - Gibt einen formatierten String aus
  • sprintf() - Gibt einen formatierten String zurück
  • fprintf() - Schreibt einen formatierten String in einen Stream
  • vprintf() - Gibt einen formatierten String aus
  • vfprintf() - Schreibt einen formatierten String in einen Stream
  • sscanf() - Überträgt einen String in ein angegebenes Format
  • fscanf() - Interpretiert den Input einer Datei entsprechend einem angegebenen Format
  • number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen
  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum


Umbricht einen String nach einer bestimmten Anzahl Zeichen

  • « vsprintf
  • Changelog »
  • PHP Manual
  • String-Funktionen
  • Umbricht einen String nach einer bestimmten Anzahl Zeichen

wordwrap

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

wordwrap — Umbricht einen String nach einer bestimmten Anzahl Zeichen

Beschreibung

wordwrap ( string $string , int $width = 75 , string $break = "\n" , bool $cut_long_words = false ) : string

Umbricht einen String nach einer bestimmten Anzahl Zeichen mittels eines angegebenen Trennzeichens.

Parameter-Liste

string

Die Eingabezeichenkette.

width

Die Anzahl von Zeichen nach denen die Zeichenkette umbrochen wird.

break

Der optionale Parameter break wird als Zeichen(kette) für den Zeilenumbruch verwendet.

cut_long_words

Wenn der Parameter cut_long_words auf true gesetzt ist, wird die Zeichenkette spätestens nach der angegebenen width umbrochen. Wenn sie also ein Wort haben, das länger als die angegebene Maximallänge ist, wird der Umbruch im Wort selbst durchgeführt (siehe zweites Beispiel). Bei false trennt die Funktion das Wort nicht, selbst wenn der width kleiner ist als die Wortlänge.

Rückgabewerte

Gibt die übergebene Zeichenkette zurück, die an der angegebenen Trennstelle umbrochen wurde.

Beispiele

Beispiel #1 wordwrap()-Beispiel

$text = "Der schnelle braune Fuchs sprang über den faulen Hund.";
$neuertext = wordwrap( $text, 20, "<br />\n" );

echo $neuertext;

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der schnelle braune<br />
Fuchs sprang über<br />
den faulen Hund.

Beispiel #2 wordwrap()-Beispiel

$text = "Ein sehr langes Wooooooooooort.";
$neuertext = wordwrap($text, 8, "\n", true);

echo "$neuertext\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ein sehr
langes
Wooooooo
oooort.

Beispiel #3 wordwrap()-Beispiel

<?php
$text = "Ein sehr langes Woooooooooooooooooort. Und noch mehr.";
$newtext = wordwrap($text, 8, "\n", false);

echo "$newtext\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ein sehr
langes
Woooooooooooooooooort.
Und noch
mehr.

Siehe auch

  • nl2br() - Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein
  • chunk_split() - Zerlegt einen String in Teile gleicher Länge


Changelog

Folgende Änderungen wurden an den Klassen/Funktionen/Methoden dieser Extension vorgenommen.

Version | Function | Description
8.0.0 | convert_uuencode | Vor dieser Version wurde beim Versuch, eine leere Zeichenkette zu konvertieren, ohne besonderen Grund false zurückgegeben.
 | count_chars | Vor dieser Version hat die Funktion bei Auftreten eines Fehlers false zurückgegeben.
 | crypt | salt ist nicht mehr optional.
 | html_entity_decode | encoding ist jetzt ein Nullable-Typ.
 | htmlentities | encoding ist jetzt ein Nullable-Typ.
 | implode | Die Übergabe des separators nach dem array wird nicht mehr unterstützt.
 | levenshtein | Vor dieser Version musste levenshtein entweder mit zwei oder fünf Argumenten aufgerufen werden.
 | metaphone | Die Funktion gab bei Auftreten eines Fehlers false zurück.
 | number_format | Vor dieser Version akzeptierte number_format einen, zwei oder vier Parameter (aber nicht drei).
 | parse_str | result ist nicht mehr optional.
 | soundex | Vor dieser Version wurde beim Aufruf der Funktion mit einer leeren Zeichenkette ohne besonderen Grund false zurückgegeben.
 | sprintf | Diese Funktion gibt bei Auftreten eines Fehlers nicht mehr false zurück.
 | str_word_count | characters ist jetzt ein Nullable-Typ.
 | strcspn | length ist jetzt ein Nullable-Typ.
 | strip_tags | allowed_tags ist jetzt ein Nullable-Typ.
 | stripos | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
 | stristr | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
 | strpos | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
 | strrchr | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
 | strripos | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
 | strrpos | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
 | strspn | length ist jetzt ein Nullable-Typ.
 | strstr | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
 | substr | length ist jetzt ein Nullable-Typ.
 | substr | Die Funktion gibt einen leeren String zurück, wo sie vorher false zurückgegeben hat.
 | substr_compare | length ist jetzt ein Nullable-Typ.
 | substr_count | length ist jetzt ein Nullable-Typ.
 | substr_replace | length ist jetzt ein Nullable-Typ.
 | vsprintf | Diese Funktion gibt bei Auftreten eines Fehlers nicht mehr false zurück.
7.4.0 | chr | Die Funktion akzeptiert nicht unterstütze codepoints nicht mehr stillschweigend und setzt diese auf 0.
 | implode | Das Übergeben des separators nach dem array (d.h. nicht die dokumentierte Reihenfolge der Parameter zu verwenden) wurde missbilligt.
 | money_format | Diese Funktion wird missbilligt. Stattdessen soll NumberFormatter::formatCurrency verwendet werden.
 | str_getcsv | Der escape-Parameter interpretiert nun eine leere Zeichenkette als Signal, um den proprietären Maskierungsmechanismus zu deaktivieren. Zuvor wurde eine leere Zeichenkette wie der Vorgabewert behandelt.
 | strip_tags | Der allowed_tags-Parameter akzeptiert nun alternativ ein Array.
7.3.0 | stripos | Die Übergabe eines Integer als needle wird missbilligt.
 | stristr | Die Übergabe eines Integer als needle wird missbilligt.
 | strpos | Die Übergabe eines Integer als needle wird missbilligt.
 | strrchr | Die Übergabe eines Integer als needle wird missbilligt.
 | strripos | Die Übergabe eines Integer als needle wird missbilligt.
 | strrpos | Die Übergabe eines Integer als needle wird missbilligt.
 | strstr | Die Übergabe eines Integer als needle wird missbilligt.
7.2.18, 7.3.5 | substr_compare | offset kann nun gleich der Länge des haystack sein.
7.2.0 | number_format | number_format wurde geändert, so dass es nicht mehr -0 zurückgeben kann; zuvor konnte -0 zurückgegeben werden, z.B. wenn num gleich -0.01 war.
 | parse_str | Die Verwendung von parse_str ohne den zweiten Parameter erzeugt nun einen E_DEPRECATED-Fehler.
7.1.0 | str_shuffle | Der interne Zufallsalgorithmus wurde geändert, und verwendet nun den Mersenne Twister Zufallszahlengenerator statt der rand Funktion von libc.
 | stripos | Unterstützung für negative offset-Werte wurde hinzugefügt.
 | strpos | Unterstützung für negative offset-Werte wurde hinzugefügt.
 | substr_count | Unterstützung für negative offset- und length-Argumente wurde hinzugefügt. length kann nun auch 0 sein.


Variablen- und typbezogene Erweiterungen

  • Arrays
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Arrays sortieren
    • Array Funktionen
  • Klassen/Objekte — Klassen- und Objektinformationen
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Klassen- und Objekt-Funktionen
  • Classkit
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Classkit Funktionen
  • Ctype — Zeichentypprüfung
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Ctype Funktionen
  • Filter — Datenfilterung
    • Einführung
    • Installation/Konfiguration
    • Types of filters
    • Vordefinierte Konstanten
    • Beispiele
    • Filter-Funktionen
  • Function Handling
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Function handling Funktionen
  • Quickhash
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • QuickHashIntSet — The QuickHashIntSet class
    • QuickHashIntHash — The QuickHashIntHash class
    • QuickHashStringIntHash — The QuickHashStringIntHash class
    • QuickHashIntStringHash — The QuickHashIntStringHash class
  • Reflection
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Extending
    • Reflection — Die Reflection Klasse
    • ReflectionClass — The ReflectionClass class
    • ReflectionClassConstant — The ReflectionClassConstant class
    • ReflectionZendExtension — The ReflectionZendExtension class
    • ReflectionExtension — The ReflectionExtension class
    • ReflectionFunction — The ReflectionFunction class
    • ReflectionFunctionAbstract — The ReflectionFunctionAbstract class
    • ReflectionMethod — The ReflectionMethod class
    • ReflectionNamedType — The ReflectionNamedType class
    • ReflectionObject — The ReflectionObject class
    • ReflectionParameter — The ReflectionParameter class
    • ReflectionProperty — The ReflectionProperty class
    • ReflectionType — The ReflectionType class
    • ReflectionUnionType — The ReflectionUnionType class
    • ReflectionGenerator — The ReflectionGenerator class
    • ReflectionReference — The ReflectionReference class
    • Reflector — The Reflector interface
    • ReflectionException — The ReflectionException class
  • Variablenbehandlung
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Funktionen zur Behandlung von Variablen


Arrays

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Arrays sortieren
  • Array Funktionen
    • array_change_key_case — Ändert die Groß- oder Kleinschreibung aller Schlüssel in einem Array
    • array_chunk — Splittet ein Array in Teile auf
    • array_column — Return the values from a single column in the input array
    • array_combine — Erzeugt ein Array, indem es ein Array für die Schlüssel und ein anderes für die Werte verwendet
    • array_count_values — Zählt die Werte eines Arrays
    • array_diff_assoc — Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
    • array_diff_key — Berechnet den Unterschied zwischen Arrays, indem es die Schlüssel vergleicht
    • array_diff_uassoc — Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
    • array_diff_ukey — Berechnet den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Vergleich der Schlüssel
    • array_diff — Ermittelt die Unterschiede zwischen Arrays
    • array_fill_keys — Befüllt ein Array mit Werten mit den übergebenen Schlüsseln
    • array_fill — Füllt ein Array mit Werten
    • array_filter — Filtert Elemente eines Arrays mittels einer Callback-Funktion
    • array_flip — Vertauscht alle Schlüssel mit ihren zugehörigen Werten in einem Array
    • array_intersect_assoc — Ermittelt die Schnittmenge von Arrays mit Indexprüfung
    • array_intersect_key — Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht
    • array_intersect_uassoc — Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion
    • array_intersect_ukey — Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches
    • array_intersect — Ermittelt die Schnittmenge von Arrays
    • array_key_exists — Prüft, ob ein Schlüssel in einem Array existiert
    • array_key_first — Gets the first key of an array
    • array_key_last — Gets the last key of an array
    • array_keys — Liefert alle Schlüssel oder eine Teilmenge aller Schlüssel eines Arrays
    • array_map — Wendet eine Callback-Funktion auf die Elemente von Arrays an
    • array_merge_recursive — Führt ein oder mehrere Arrays rekursiv zusammen
    • array_merge — Führt zwei oder mehr Arrays zusammen
    • array_multisort — Sortiert mehrere oder multidimensionale Arrays
    • array_pad — Füllt ein Array bis auf die angegebene Länge mit einem Wert auf
    • array_pop — Liefert und entfernt das letzte Element eines Arrays
    • array_product — Ermittelt das Produkt von Werten in einem Array
    • array_push — Fügt ein oder mehr Elemente an das Ende eines Arrays an
    • array_rand — Liefert einen oder mehrere zufällige Schlüssel eines Arrays
    • array_reduce — Iterative Reduktion eines Arrays zu einem Wert mittels einer Callbackfunktion
    • array_replace_recursive — Replaces elements from passed arrays into the first array recursively
    • array_replace — Ersetzt Elemente von übergebenen Arrays im ersten Array
    • array_reverse — Liefert ein Array mit umgekehrter Reihenfolge der Elemente
    • array_search — Durchsucht ein Array nach einem Wert und liefert bei Erfolg den zugehörigen Schlüssel
    • array_shift — Liefert und entfernt das erste Element eines Arrays
    • array_slice — Extrahiert einen Ausschnitt eines Arrays
    • array_splice — Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes
    • array_sum — Liefert die Summe der Werte in einem Array
    • array_udiff_assoc — Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
    • array_udiff_uassoc — Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
    • array_udiff — Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
    • array_uintersect_assoc — Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
    • array_uintersect_uassoc — Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen
    • array_uintersect — Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion
    • array_unique — Entfernt doppelte Werte aus einem Array
    • array_unshift — Fügt ein oder mehr Elemente am Anfang eines Arrays ein
    • array_values — Liefert alle Werte eines Arrays
    • array_walk_recursive — Wendet eine Benutzerfunktion rekursiv auf jedes Element eines Arrays an
    • array_walk — Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an
    • array — Erstellt ein Array
    • arsort — Sortiert ein Array in umgekehrter Reihenfolge und erhält die Index-Assoziation
    • asort — Sortiert ein Array und erhält die Index-Assoziation
    • compact — Erstellt ein Array mit Variablen und deren Werten
    • count — Zählt alle Elemente eines Arrays oder etwas in einem Objekt
    • current — Liefert das aktuelle Element eines Arrays
    • each — Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor
    • end — Positioniert den internen Zeiger eines Arrays auf dessen letztes Element
    • extract — Importiert Variablen eines Arrays in die aktuelle Symboltabelle
    • in_array — Prüft, ob ein Wert in einem Array existiert
    • key_exists — Alias von array_key_exists
    • key — Liefert einen Schlüssel eines Arrays
    • krsort — Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge
    • ksort — Sortiert ein Array nach Schlüsseln
    • list — Weist Variablen zu, als wären sie ein Array
    • natcasesort — Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert
    • natsort — Sortiert ein Array in "natürlicher Reihenfolge"
    • next — Rückt den internen Zeiger eines Arrays vor
    • pos — Alias von current
    • prev — Setzt den internen Zeiger eines Arrays um ein Element zurück
    • range — Erstellt ein Array mit einem Bereich von Elementen
    • reset — Setzt den internen Zeiger eines Arrays auf sein erstes Element
    • rsort — Sortiert ein Array in umgekehrter Reihenfolge
    • shuffle — Mischt die Elemente eines Arrays
    • sizeof — Alias von count
    • sort — Sortiert ein Array
    • uasort — Sortiert ein Array mittels einer benutzerdefinierten Vergleichsfunktion und behält Indexassoziationen bei
    • uksort — Sortiert ein Array nach Schlüsseln mittels einer benutzerdefinierten Vergleichsfunktion
    • usort — Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion


Einführung

Diese Funktionen erlauben es, Arrays auf verschiedene Arten zu manipulieren bzw. mit ihnen zu interagieren. Arrays sind wichtig, um Gruppen von Variablen zu verwalten, zu bearbeiten, oder zu speichern.

Es werden einfache und mehrdimensionale Arrays unterstützt, welche entweder vom Benutzer oder von einer anderen Funktion erstellt werden können. Es gibt bestimmte Datenbankfunktionen, welche die Ergebnisse aus Datenbankabfragen in Arrays speichern, und verschiedene andere Funktionen, die Arrays als Rückgabewerte haben.

Im Abschnitt Arrays finden Sie eine detaillierte Erklärung, wie Arrays in PHP implementiert sind und wie sie benutzt werden. Für weitere Arten, Arrays zu verändern, siehe auch Array Operatoren.


Vordefinierte Konstanten

Die aufgelisteten Konstanten stehen immer zur Verfügung, da sie zum Grundbestand von PHP gehören.

CASE_LOWER (integer)
CASE_LOWER wird benutzt mit array_change_key_case(), um die Schlüssel von Arrays in Kleinbuchstaben umzuwandeln. Dies ist auch der Standard für array_change_key_case().
CASE_UPPER (integer)
CASE_UPPER wird benutzt mit array_change_key_case(), um die Schlüssel von Arrays in Großbuchstaben umzuwandeln.

Sortierreihenfolgen-Flags

SORT_ASC (integer)
SORT_ASC wird benutzt mit array_multisort(), um in aufsteigender Reihenfolge zu sortieren.
SORT_DESC (integer)
SORT_DESC wird benutzt mit array_multisort(), um in absteigender Reihenfolge zu sortieren.

Sortiertypen-Flags: benutzt von verschiedenen Sortierfunktionen

SORT_REGULAR (integer)
SORT_REGULAR wird benutzt, um Elemente normal zu sortieren.
SORT_NUMERIC (integer)
SORT_NUMERIC wird benutzt, um Elemente numerisch zu sortieren.
SORT_STRING (integer)
SORT_STRING wird benutzt, um Elemente als Strings zu sortieren.
SORT_LOCALE_STRING (integer)
SORT_LOCALE_STRING wird benutzt, um Elemente als Strings basierend auf dem aktuellen Locale zu sortieren. In PHP 5.0.2 hinzugefügt.
SORT_NATURAL (integer)
SORT_NATURAL wird benutzt, um Elemente als Strings natürlich zu sortieren, wie es die Funktion natsort() tut. Hinzugefügt in PHP 5.4.0
SORT_FLAG_CASE (integer)
SORT_FLAG_CASE kann (durch ein bitweises ODER) kombiniert werden mit: SORT_STRING oder SORT_NATURAL um alle Strings unabhängig von ihrer Gross- und Kleinschreibung zu sortieren. Hinzugefügt in PHP 5.4.0.

Filter flags:

ARRAY_FILTER_USE_KEY (integer)
ARRAY_FILTER_USE_KEY wird benutzt für array_filter(), um jeden Schlüssel als erstes Argument an die angegebene Callback-Funktion zu übergeben. Hinzugefügt in PHP 5.6.0.
ARRAY_FILTER_USE_BOTH (integer)
ARRAY_FILTER_USE_BOTH wird benutzt für array_filter() um sowohl Wert als auch Schlüssel an die angegebene Callback-Funktion zu übergeben. Hinzugefügt in PHP 5.6.0.

COUNT_NORMAL (integer)
COUNT_RECURSIVE (integer)
EXTR_OVERWRITE (integer)
EXTR_SKIP (integer)
EXTR_PREFIX_SAME (integer)
EXTR_PREFIX_ALL (integer)
EXTR_PREFIX_INVALID (integer)
EXTR_PREFIX_IF_EXISTS (integer)
EXTR_IF_EXISTS (integer)
EXTR_REFS (integer)


Arrays sortieren

PHP bietet mehrere Funktionen um Arrays zu sortieren. Diese Seite beinhaltet eine Übersicht über diese Funktionen.

Die Hauptunterschiede:

  • Einige Sortierungen basieren auf den Array Schlüsseln, während andere auf den Werten: $array['key'] = 'value'; basieren.
  • Die Korrelation zwischen den Schlüsseln und den Werten wird nach der Sortierung gepflegt, was bedeuted, dass die Schlüssel numerisch (0,1,2 ...) zurückgesetzt werden.
  • Die Reihenfolge der Sortierung: Alphabetisch, Niedrig nach Hoch (aufsteigend), Hoch zu Niedrig (absteigend), numerisch, natürlich, zufällig oder Benutzerdefiniert.
  • Hinweis: Alle Sortierungen werden direkt auf die Array-Variable selbst angewendet, entgegen der Rückgabe eines neu sortierten Arrays.
  • Wenn eine dieser Sortierfunktionen zwei Schlüssel/Werte als gleich ausstellt, dann ist die Ordnung undefiniert (die Sortierung ist nicht stabil).

Sortierfunktionsattribute
Funktionsname | Sortiert nach | Pflegt Schlüssel Assoziation | Art der Sortierung | Ähnliche Funktionen
array_multisort() | Wert | Assoziativ: Ja, Numerisch: Nein | Erste Array- oder Sortieroptionen | array_walk()
asort() | Wert | Ja | Aufsteigend | arsort()
arsort() | Wert | Ja | Absteigend | asort()
krsort() | Schlüssel | Ja | Absteigend | ksort()
ksort() | Schlüssel | Ja | Aufsteigend | asort()
natcasesort() | Wert | Ja | Natürlich, Beachtet Groß-/Kleinschreibung | natsort()
natsort() | Wert | Ja | Natürlich | natcasesort()
rsort() | Wert | Nein | Absteigend | sort()
shuffle() | Wert | Nein | Zufällig | array_rand()
sort() | Wert | Nein | Aufsteigend | rsort()
uasort() | Wert | Ja | Benutzerdefiniert | uksort()
uksort() | Schlüssel | Ja | Benutzerdefiniert | uasort()
usort() | Wert | Nein | Benutzerdefiniert | uasort()


Array Funktionen

Siehe auch

Siehe auch is_array(), explode(),
implode(), split(),
preg_split() und unset().

Inhaltsverzeichnis

  • array_change_key_case — Ändert die Groß- oder Kleinschreibung aller Schlüssel in einem Array
  • array_chunk — Splittet ein Array in Teile auf
  • array_column — Return the values from a single column in the input array
  • array_combine — Erzeugt ein Array, indem es ein Array für die Schlüssel und ein anderes für die Werte verwendet
  • array_count_values — Zählt die Werte eines Arrays
  • array_diff_assoc — Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
  • array_diff_key — Berechnet den Unterschied zwischen Arrays, indem es die Schlüssel vergleicht
  • array_diff_uassoc — Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
  • array_diff_ukey — Berechnet den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Vergleich der Schlüssel
  • array_diff — Ermittelt die Unterschiede zwischen Arrays
  • array_fill_keys — Befüllt ein Array mit Werten mit den übergebenen Schlüsseln
  • array_fill — Füllt ein Array mit Werten
  • array_filter — Filtert Elemente eines Arrays mittels einer Callback-Funktion
  • array_flip — Vertauscht alle Schlüssel mit ihren zugehörigen Werten in einem Array
  • array_intersect_assoc — Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_intersect_key — Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht
  • array_intersect_uassoc — Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion
  • array_intersect_ukey — Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches
  • array_intersect — Ermittelt die Schnittmenge von Arrays
  • array_key_exists — Prüft, ob ein Schlüssel in einem Array existiert
  • array_key_first — Gets the first key of an array
  • array_key_last — Gets the last key of an array
  • array_keys — Liefert alle Schlüssel oder eine Teilmenge aller Schlüssel eines Arrays
  • array_map — Wendet eine Callback-Funktion auf die Elemente von Arrays an
  • array_merge_recursive — Führt ein oder mehrere Arrays rekursiv zusammen
  • array_merge — Führt zwei oder mehr Arrays zusammen
  • array_multisort — Sortiert mehrere oder multidimensionale Arrays
  • array_pad — Füllt ein Array bis auf die angegebene Länge mit einem Wert auf
  • array_pop — Liefert und entfernt das letzte Element eines Arrays
  • array_product — Ermittelt das Produkt von Werten in einem Array
  • array_push — Fügt ein oder mehr Elemente an das Ende eines Arrays an
  • array_rand — Liefert einen oder mehrere zufällige Schlüssel eines Arrays
  • array_reduce — Iterative Reduktion eines Arrays zu einem Wert mittels einer Callbackfunktion
  • array_replace_recursive — Replaces elements from passed arrays into the first array recursively
  • array_replace — Ersetzt Elemente von übergebenen Arrays im ersten Array
  • array_reverse — Liefert ein Array mit umgekehrter Reihenfolge der Elemente
  • array_search — Durchsucht ein Array nach einem Wert und liefert bei Erfolg den zugehörigen Schlüssel
  • array_shift — Liefert und entfernt das erste Element eines Arrays
  • array_slice — Extrahiert einen Ausschnitt eines Arrays
  • array_splice — Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes
  • array_sum — Liefert die Summe der Werte in einem Array
  • array_udiff_assoc — Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
  • array_udiff_uassoc — Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
  • array_udiff — Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
  • array_uintersect_assoc — Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
  • array_uintersect_uassoc — Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen
  • array_uintersect — Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion
  • array_unique — Entfernt doppelte Werte aus einem Array
  • array_unshift — Fügt ein oder mehr Elemente am Anfang eines Arrays ein
  • array_values — Liefert alle Werte eines Arrays
  • array_walk_recursive — Wendet eine Benutzerfunktion rekursiv auf jedes Element eines Arrays an
  • array_walk — Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an
  • array — Erstellt ein Array
  • arsort — Sortiert ein Array in umgekehrter Reihenfolge und erhält die Index-Assoziation
  • asort — Sortiert ein Array und erhält die Index-Assoziation
  • compact — Erstellt ein Array mit Variablen und deren Werten
  • count — Zählt alle Elemente eines Arrays oder etwas in einem Objekt
  • current — Liefert das aktuelle Element eines Arrays
  • each — Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor
  • end — Positioniert den internen Zeiger eines Arrays auf dessen letztes Element
  • extract — Importiert Variablen eines Arrays in die aktuelle Symboltabelle
  • in_array — Prüft, ob ein Wert in einem Array existiert
  • key_exists — Alias von array_key_exists
  • key — Liefert einen Schlüssel eines Arrays
  • krsort — Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge
  • ksort — Sortiert ein Array nach Schlüsseln
  • list — Weist Variablen zu, als wären sie ein Array
  • natcasesort — Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert
  • natsort — Sortiert ein Array in "natürlicher Reihenfolge"
  • next — Rückt den internen Zeiger eines Arrays vor
  • pos — Alias von current
  • prev — Setzt den internen Zeiger eines Arrays um ein Element zurück
  • range — Erstellt ein Array mit einem Bereich von Elementen
  • reset — Setzt den internen Zeiger eines Arrays auf sein erstes Element
  • rsort — Sortiert ein Array in umgekehrter Reihenfolge
  • shuffle — Mischt die Elemente eines Arrays
  • sizeof — Alias von count
  • sort — Sortiert ein Array
  • uasort — Sortiert ein Array mittels einer benutzerdefinierten Vergleichsfunktion und behält Indexassoziationen bei
  • uksort — Sortiert ein Array nach Schlüsseln mittels einer benutzerdefinierten Vergleichsfunktion
  • usort — Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion


Ändert die Groß- oder Kleinschreibung aller Schlüssel in einem Array

  • « Array Funktionen
  • array_chunk »
  • PHP Manual
  • Array Funktionen
  • Ändert die Groß- oder Kleinschreibung aller Schlüssel in einem Array

array_change_key_case

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

array_change_key_case — Ändert die Groß- oder Kleinschreibung aller Schlüssel in einem Array

Beschreibung

array_change_key_case ( array $array , int $case = CASE_LOWER ) : array

Gibt ein Array zurück, in dem alle Schlüssel aus array in Klein- oder Großbuchstaben umgewandelt wurden. Numerische Indizes werden nicht geändert.

Parameter-Liste

array

Das Eingabe-Array

case

Entweder CASE_UPPER oder CASE_LOWER (Standard)

Rückgabewerte

Gibt ein Array zurück, dessen Schlüssel in Klein- oder Großbuchstaben umgewandelt wurden, oder false, wenn array kein Array ist.

Fehler/Exceptions

Wirft E_WARNING, wenn array kein Array ist.

Beispiele

Beispiel #1 array_change_key_case()-Beispiel

<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [FIRST] => 1
    [SECOND] => 4
)

Anmerkungen

Hinweis:

Hat ein Array Indizes, die nach einem Durchlauf durch diese Funktion gleich sind (z.B. "keY" und "kEY"), überschreibt der spätere Wert im Array andere Indizes.


Splittet ein Array in Teile auf

  • « array_change_key_case
  • array_column »
  • PHP Manual
  • Array Funktionen
  • Splittet ein Array in Teile auf

array_chunk

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

array_chunk — Splittet ein Array in Teile auf

Beschreibung

array_chunk ( array $array , int $size , bool $preserve_keys = false ) : array

array_chunk() teilt das Array in Arrays mit size Elementen auf. Das letzte Array kann weniger als size Werte enthalten.

Parameter-Liste

array

Das Eingabe-Array

size

Die Größe jedes Arrays

preserve_keys

Falls auf true gesetzt, bleiben die Schlüssel erhalten. Der Standard ist false, wodurch jedes Stück neue numerische Indizes erhält.

Rückgabewerte

Gibt ein mehrdimensionales Array zurück, das beginnend mit Null jeweils size Elemente enthält.

Fehler/Exceptions

Wenn size kleiner als 1 ist, wird E_WARNING geworfen und null zurückgegeben.

Beispiele

Beispiel #1 array_chunk()-Beispiel

<?php
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, true));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
        )

)
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [2] => c
            [3] => d
        )

    [2] => Array
        (
            [4] => e
        )

)

Siehe auch

  • array_slice() - Extrahiert einen Ausschnitt eines Arrays


Return the values from a single column in the input array

  • « array_chunk
  • array_combine »
  • PHP Manual
  • Array Funktionen
  • Return the values from a single column in the input array

array_column

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

array_column — Return the values from a single column in the input array

Beschreibung

array_column ( array $array , int|string|null $column_key , int|string|null $index_key = null ) : array

array_column() returns the values from a single column of the array, identified by the column_key. Optionally, an index_key may be provided to index the values in the returned array by the values from the index_key column of the input array.

Parameter-Liste

array

A multi-dimensional array or an array of objects from which to pull a column of values from. If an array of objects is provided, then public properties can be directly pulled. In order for protected or private properties to be pulled, the class must implement both the __get() and __isset() magic methods.

column_key

The column of values to return. This value may be an integer key of the column you wish to retrieve, or it may be a string key name for an associative array or property name. It may also be null to return complete arrays or objects (this is useful together with index_key to reindex the array).

index_key

The column to use as the index/keys for the returned array. This value may be the integer key of the column, or it may be the string key name. The value is cast as usual for array keys (however, objects supporting conversion to string are also allowed).

Rückgabewerte

Returns an array of values representing a single column from the input array.

Changelog

Version | Beschreibung
7.0.0 | Added the ability for the array parameter to be an array of objects.

Beispiele

Beispiel #1 Get the column of first names from a recordset

<?php
// Array representing a possible record set returned from a database
$records = array(
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);

$first_names = array_column($records, 'first_name');
print_r($first_names);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)

Beispiel #2 Get the column of last names from a recordset, indexed by the "id" column

<?php
// Using the $records array from Example #1
$last_names = array_column($records, 'last_name', 'id');
print_r($last_names);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [2135] => Doe
    [3245] => Smith
    [5342] => Jones
    [5623] => Doe
)

Beispiel #3 Get the column of usernames from the public "username" property of an object

<?php

class User
{
    public $username;

    public function __construct(string $username)
    {
        $this->username = $username;
    }
}

$users = [
    new User('user 1'),
    new User('user 2'),
    new User('user 3'),
];

print_r(array_column($users, 'username'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Beispiel #4 Get the column of names from the private "name" property of an object using the magic __get() method.

<?php

class Person
{
    private $name;

    public function __construct(string $name)
    {
        $this->name = $name;
    }

    public function __get($prop)
    {
        return $this->$prop;
    }

    public function __isset($prop) : bool
    {
        return isset($this->$prop);
    }
}

$people = [
    new Person('Fred'),
    new Person('Jane'),
    new Person('John'),
];

print_r(array_column($people, 'name'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Fred
    [1] => Jane
    [2] => John
)
If __isset() is not provided, then an empty array will be returned.

Siehe auch

  • » Recommended userland implementation for PHP lower than 5.5


Erzeugt ein Array, indem es ein Array für die Schlüssel und ein anderes für die Werte verwendet

  • « array_column
  • array_count_values »
  • PHP Manual
  • Array Funktionen
  • Erzeugt ein Array, indem es ein Array für die Schlüssel und ein anderes für die Werte verwendet

array_combine

(PHP 5, PHP 7, PHP 8)

array_combine — Erzeugt ein Array, indem es ein Array für die Schlüssel und ein anderes für die Werte verwendet

Beschreibung

array_combine ( array $keys , array $values ) : array

Erzeugt ein Array, in dem die Werte des keys-Arrays als Schlüssel und die Werte aus dem values-Array als die zugehörigen Werte verwendet werden.

Parameter-Liste

keys

Array mit den zu verwendenden Schlüsseln. Für Schlüssel ungültige Werte werden in einen String umgewandelt.

values

Array mit den zu verwendenden Werten

Rückgabewerte

Gibt das kombinierte Array oder false zurück, wenn die Anzahl von Elementen nicht in beiden Arrays identisch ist.

Fehler/Exceptions

Wirft einen Fehler der Stufe E_WARNING, wenn die Anzahl der Elemente in keys und values nicht übereinstimmt.

Beispiele

Beispiel #1 Ein einfaches array_combine()-Beispiel

<?php
$a = array('gruen', 'rot', 'gelb');
$b = array('avokado', 'apfel', 'banane');
$c = array_combine($a, $b);

print_r($c);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [gruen]  => avokado
    [rot]    => apfel
    [gelb]   => banane
)

Siehe auch

  • array_merge() - Führt zwei oder mehr Arrays zusammen
  • array_walk() - Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an
  • array_values() - Liefert alle Werte eines Arrays


Zählt die Werte eines Arrays

  • « array_combine
  • array_diff_assoc »
  • PHP Manual
  • Array Funktionen
  • Zählt die Werte eines Arrays

array_count_values

(PHP 4, PHP 5, PHP 7, PHP 8)

array_count_values — Zählt die Werte eines Arrays

Beschreibung

array_count_values ( array $array ) : array

array_count_values() gibt ein Array zurück, in dem die Werte des Arrays array als Schlüssel, und die Häufigkeit ihres Auftretens als Werte angegeben sind.

Parameter-Liste

array

Das Array mit den zu zählenden Werten

Rückgabewerte

Gibt ein assoziatives Array mit den Werten aus array als Schlüsseln und der Anzahl als Werten zurück.

Fehler/Exceptions

Erzeugt ein E_WARNING für jedes Element, welches kein string oder integer ist.

Beispiele

Beispiel #1 array_count_values()-Beispiel

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

Siehe auch

  • count() - Zählt alle Elemente eines Arrays oder etwas in einem Objekt
  • array_unique() - Entfernt doppelte Werte aus einem Array
  • array_values() - Liefert alle Werte eines Arrays
  • count_chars() - Gibt Informationen über die in einem String enthaltenen Zeichen zurück


Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung

  • « array_count_values
  • array_diff_key »
  • PHP Manual
  • Array Funktionen
  • Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung

array_diff_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

array_diff_assoc — Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung

Beschreibung

array_diff_assoc ( array $array1 , array $array2 , array $... = ? ) : array

Vergleicht array1 mit array2 und gibt den Unterschied zurück. Im Gegensatz zu array_diff() werden die Schlüssel des Arrays ebenfalls beim Vergleich herangezogen.

Parameter-Liste

array1

Das Array, das verglichen werden soll

array2

Das Array, mit dem verglichen werden soll

...

Weitere Arrays, mit denen vergleichen werden soll

Rückgabewerte

Gibt ein Array zurück, das alle Werte aus array1 enthält, die in keinem der anderen Arrays vorhanden ist.

Beispiele

Beispiel #1 array_diff_assoc()-Beispiel

In diesem Beispiel sieht man, dass das "a" => "gruen"-Paar in beiden Arrays enthalten ist und daher nicht in der Ausgabe der Funktion auftaucht. Andererseits ist das Paar 0 => "rot" in der Ausgabe, weil "red" im zweiten Array den Wert 1 enthält.

<?php
$array1 = array("a" => "gruen", "b" => "braun", "c" => "blau", "rot");
$array2 = array("a" => "gruen", "gelb", "rot");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [b] => braun
    [c] => blau
    [0] => rot
)

Beispiel #2 array_diff_assoc()-Beispiel

Zwei Werte von Schlüssel => Wert-Paaren werden nur dann als gleich betrachtet, wenn (string) $elem1 === (string) $elem2 gilt. Anders ausgedrückt findet eine strikte Prüfung statt, in der die String-Repräsentationen gleich sein müssen.

<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Anmerkungen

Hinweis: Diese Funktion überprüft nur eine Dimension eines n-dimensionalen Arrays. Natürlich kann man tiefere Dimensionen überprüfen, indem man zum Beispiel array_diff_assoc($array1[0], $array2[0]); verwendet.

Hinweis: Stellen Sie sicher, dass Sie die Parameter in der korrekten Reihenfolge übergeben, wenn Sie mit ähnlichen Arrays mit mehr Schlüsseln vergleichen. Das neue Array sollte das erste in der Liste sein.

Siehe auch

  • array_diff() - Ermittelt die Unterschiede zwischen Arrays
  • array_diff_uassoc() - Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
  • array_udiff_assoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
  • array_udiff_uassoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung


Berechnet den Unterschied zwischen Arrays, indem es die Schlüssel vergleicht

  • « array_diff_assoc
  • array_diff_uassoc »
  • PHP Manual
  • Array Funktionen
  • Berechnet den Unterschied zwischen Arrays, indem es die Schlüssel vergleicht

array_diff_key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_diff_key — Berechnet den Unterschied zwischen Arrays, indem es die Schlüssel vergleicht

Beschreibung

array_diff_key ( array $array1 , array $array2 , array $... = ? ) : array

Vergleicht die Schlüssel von array1 mit den Schlüsseln von array2 und gibt die Unterschiede zurück. Diese Funktion arbeitet wie array_diff() mit dem Unterschied, dass der Vergleich mit den Schlüsseln statt den Werten arbeitet.

Parameter-Liste

array1

Das Array, das verglichen werden soll

array2

Das Array, mit dem verglichen werden soll

...

Weitere Arrays, mit denen verglichen werden soll

Rückgabewerte

Gibt ein Array mit allen Einträgen von array1 zurück, deren Schlüssel in keinem der anderen Arrays vorhanden sind.

Beispiele

Beispiel #1 array_diff_key()-Beispiel

Die beiden Schlüssel des Schlüssel => Wert-Paares werden als gleich erachtet, genau dann wenn (string) $Schlüssel1 === (string) $Schlüssel2 . Anders ausgedrückt findet eine strikte Prüfung statt, in der die String-Repräsentationen gleich sein müssen.

<?php
$array1 = array('blau' => 1, 'rot' => 2, 'grün' => 3, 'violett' => 4);
$array2 = array('grün' => 5, 'gelb' => 7, 'türkis' => 8);

var_dump(array_diff_key($array1, $array2));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  ["blau"]=>
  int(1)
  ["rot"]=>
  int(2)
  ["violett"]=>
  int(4)
}
<?php
$array1 = array('blau' => 1, 'rot' => 2, 'grün' => 3, 'violett' => 4);
$array2 = array('grün' => 5, 'gelb' => 7, 'türkis' => 8);
$array3 = array('blau' => 6, 'gelb' => 7, 'blasslila' => 8);

var_dump(array_diff_key($array1, $array2, $array3));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["rot"]=>
  int(2)
  ["violett"]=>
  int(4)
}

Anmerkungen

Hinweis:

Diese Funktion überprüft nur eine Dimension eines n-dimensionalen Arrays. Natürlich kann man tiefere Dimensionen überprüfen, indem man array_diff_key($array1[0], $array2[0]); verwendet.

Siehe auch

  • array_diff() - Ermittelt die Unterschiede zwischen Arrays
  • array_udiff() - Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
  • array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
  • array_diff_uassoc() - Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
  • array_udiff_assoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
  • array_udiff_uassoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
  • array_diff_ukey() - Berechnet den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Vergleich der Schlüssel
  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_intersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion
  • array_intersect_key() - Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht
  • array_intersect_ukey() - Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches


Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird

  • « array_diff_key
  • array_diff_ukey »
  • PHP Manual
  • Array Funktionen
  • Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird

array_diff_uassoc

(PHP 5, PHP 7, PHP 8)

array_diff_uassoc — Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird

Beschreibung

array_diff_uassoc ( array $array1 , array $array2 , array $... = ? , callable $key_compare_func ) : array

Vergleicht array1 mit array2 und gibt den Unterschied zurück. Im Gegensatz zu array_diff() werden die Arrays anhand ihrer Schlüssel verglichen.

Im Gegensatz zu array_diff_assoc() wird für den Vergleich der Indizes keine interne Funktion verwendet, sondern eine benutzerdefinierte Callback-Funktion.

Parameter-Liste

array1

Das Array für den Vergleich.

array2

Das Array, das damit verglichen wird.

...

Weitere Arrays, die damit verglichen werden.

key_compare_func

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int

Rückgabewerte

Gibt ein array zurück, welches alle Werte aus array1 enthält, die in keinem der anderen Arrays enthalten sind.

Beispiele

Beispiel #1 array_diff_uassoc()-Beispiel

Das "a" => "gruen"-Paar ist in beiden Arrays enthalten und daher nicht in der Ausgabe der Funktion. Im Gegensatz dazu ist das Paar 0 => "rot" in der Ausgabe, weil "rot" im zweiten Argument 1 als Schlüssel hat.

<?php
function key_compare_func($a, $b)
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b)? 1:-1;
}

$array1 = array("a" => "gruen", "b" => "braun", "c" => "blau", "rot");
$array2 = array("a" => "gruen", "gelb", "rot");
$ergebnis = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($ergebnis);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [b] => braun
    [c] => blau
    [0] => rot
)

Die Gleichheit von zwei Indizes wird durch die benutzerdefinierte Callback-Funktion überprüft.

Anmerkungen

Hinweis:

Diese Funktion prüft nur eine Dimension eines n-dimensionalen Arrays. Natürlich können tiefere Ebenen überprüft werden, indem zum Beispiel array_diff_uassoc($array1[0], $array2[0], "key_compare_func"); verwendet wird.

Siehe auch

  • array_diff() - Ermittelt die Unterschiede zwischen Arrays
  • array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
  • array_udiff() - Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
  • array_udiff_assoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
  • array_udiff_uassoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_uintersect() - Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion
  • array_uintersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
  • array_uintersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen


Berechnet den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Vergleich der Schlüssel

  • « array_diff_uassoc
  • array_diff »
  • PHP Manual
  • Array Funktionen
  • Berechnet den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Vergleich der Schlüssel

array_diff_ukey

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_diff_ukey — Berechnet den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Vergleich der Schlüssel

Beschreibung

array_diff_ukey ( array $array1 , array $array2 , array $... = ? , callable $key_compare_func ) : array

Vergleicht die Schlüssel von array1 mit den Schlüsseln von array2 und gibt die Unterschiede zurück. Diese Funktion arbeitet wie array_diff() mit dem Unterschied, dass der Vergleich mit den Schlüsseln statt den Werten arbeitet.

Anders als von array_diff_key() wird eine vom Benutzer definierte Callbackfunktion für die Vergleiche anstelle einer eingebauten Funktion verwendet.

Parameter-Liste

array1

Das Array, das verglichen werden soll

array2

Das Array, mit dem verglichen werden soll

...

Weitere Arrays, mit denen verglichen werden soll

key_compare_func

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int

Rückgabewerte

Gibt ein Array mit allen Einträgen von array1 zurück, die in keinem der anderen Arrays vorhanden sind.

Beispiele

Beispiel #1 array_diff_ukey()-Beispiel

<?php
function key_compare_func($key1, $key2)
{
    if ($key1 == $key2)
        return 0;
    else if ($key1 > $key2)
        return 1;
    else
        return -1;
}

$array1 = array('blau' => 1, 'rot'  => 2, 'grün' => 3, 'violett' => 4);
$array2 = array('grün' => 5, 'blau' => 6, 'gelb' => 7, 'türkis'  => 8);

var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["rot"]=>
  int(2)
  ["violett"]=>
  int(4)
}

Anmerkungen

Hinweis:

Diese Funktion prüft nur eine Dimension eines n-dimensionalen Arrays. Natürlich können Sie tiefere Dimensionen prüfen, indem Sie z.B. array_diff_ukey($array1[0], $array2[0], 'callback_func'); benutzen.

Siehe auch

  • array_diff() - Ermittelt die Unterschiede zwischen Arrays
  • array_udiff() - Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
  • array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
  • array_diff_uassoc() - Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
  • array_udiff_assoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
  • array_udiff_uassoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
  • array_diff_key() - Berechnet den Unterschied zwischen Arrays, indem es die Schlüssel vergleicht
  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_intersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion
  • array_intersect_key() - Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht
  • array_intersect_ukey() - Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches


Ermittelt die Unterschiede zwischen Arrays

  • « array_diff_ukey
  • array_fill_keys »
  • PHP Manual
  • Array Funktionen
  • Ermittelt die Unterschiede zwischen Arrays

array_diff

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_diff — Ermittelt die Unterschiede zwischen Arrays

Beschreibung

array_diff ( array $array1 , array $array2 , array $... = ? ) : array

Vergleicht array1 mit einem oder mehr anderen Arrays und gibt die Werte aus array1 zurück, die in keinem der anderen Arrays enthalten sind.

Parameter-Liste

array1

Das Array, das verglichen werden soll

array2

Das Array, mit dem verglichen werden soll

...

Weitere Arrays, mit denen verglichen werden soll

Rückgabewerte

Gibt ein Array mit allen Werten von array1 zurück, die in keinem der anderen Arrays vorhanden sind. Schlüssel im array1 Array bleiben erhalten.

Beispiele

Beispiel #1 array_diff()-Beispiel

<?php
$array1 = array("a" => "grün", "rot", "blau", "rot");
$array2 = array("b" => "grün", "gelb", "rot");
$result = array_diff($array1, $array2);

print_r($result);
?>

Wiederholte Elemente in $array1 werden alle gleich behandelt. Dies wird folgendes ausgeben:

Array
(
    [1] => blau
)

Beispiel #2 array_diff()-Beispiel mit nicht übereinstimmenden Typen

Zwei Elemente werden nur dann als gleich angesehen, wenn (string) $elem1 === (string) $elem2. In anderen Worten: Wenn die String-Repräsentation die gleiche ist.

<?php
// Dies generiert eine Notice dass ein Array nicht in einen String umgewandelt werden kann.
$source = [1, 2, 3, 4];
$filter = [3, 4, [5], 6];
$result = array_diff($source, $filter);

// Wohingegen dies in Ordnung ist, da die Objekte in einen String umgewandelt werden können.
class S {
  private $v;

  public function __construct(string $v) {
    $this->v = $v;
  }

  public function __toString() {
    return $this->v;
  }
}

$source = [new S('a'), new S('b'), new S('c')];
$filter = [new S('b'), new S('c'), new S('d')];

$result = array_diff($source, $filter);

// $result enthält nun ein Exemplar von S('a');
?>

To use an alternate comparison function, see array_udiff().

Anmerkungen

Hinweis:

Beachten Sie, dass diese Funktion nur eine Dimension eines n-dimensionalen Arrays prüft. Natürlich können Sie tiefere Dimensionen prüfen, indem Sie z.B. array_diff($array1[0], $array2[0]); benutzen.

Siehe auch

  • array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
  • array_udiff() - Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung


Befüllt ein Array mit Werten mit den übergebenen Schlüsseln

  • « array_diff
  • array_fill »
  • PHP Manual
  • Array Funktionen
  • Befüllt ein Array mit Werten mit den übergebenen Schlüsseln

array_fill_keys

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

array_fill_keys — Befüllt ein Array mit Werten mit den übergebenen Schlüsseln

Beschreibung

array_fill_keys ( array $keys , mixed $value ) : array

Befüllt ein Array mit dem Wert, der im Parameter value übergeben wurde, und verwendet dabei die Werte des Arrays keys als Schlüssel.

Parameter-Liste

keys

Ein Array mit den Werten, die als Schlüssel verwendet werden. Für Schlüssel ungültige Werte werden in einen String konvertiert.

value

Der Wert, der zum Befüllen des Arrays verwendet wird

Rückgabewerte

Gibt das befüllte Array zurück

Beispiele

Beispiel #1 array_fill_keys()-Beispiel

<?php
$keys = array('foo', 5, 10, 'bar');
$a = array_fill_keys($keys, 'Banane');
print_r($a);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [foo] => Banane
    [5] => Banane
    [10] => Banane
    [bar] => Banane
)

Siehe auch

  • array_fill() - Füllt ein Array mit Werten
  • array_combine() - Erzeugt ein Array, indem es ein Array für die Schlüssel und ein anderes für die Werte verwendet


Füllt ein Array mit Werten

  • « array_fill_keys
  • array_filter »
  • PHP Manual
  • Array Funktionen
  • Füllt ein Array mit Werten

array_fill

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

array_fill — Füllt ein Array mit Werten

Beschreibung

array_fill ( int $start_index , int $num , mixed $value ) : array

array_fill() füllt ein Array mit num Einträgen des Wertes des value Parameters. Die Indizes des Arrays beginnen mit dem start_index Parameter.

Parameter-Liste

start_index

Der erste Index des zurückgegebenen Arrays. Nur nicht-negative Indizes werden unterstützt.

Wenn start_index negativ ist, ist der erste Index des zurückgebenen Arrays start_index; alle weiteren Indexe starten bei 0 (siehe Beispiel).

num

Anzahl der einzufügenden Elemente. Muss größer oder gleich 0 sein.

value

Einzufügender Wert

Rückgabewerte

Gibt das gefüllte Array zurück

Fehler/Exceptions

Wirft eine E_WARNING wenn num kleiner als 0 ist.

Changelog

Version | Beschreibung
5.6.0 | num kann nun 0 sein. Zuvor musste num größer als 0 sein.

Beispiele

Beispiel #1 array_fill()-Beispiel

<?php
$a = array_fill(5, 6, 'Banane');
$b = array_fill(-2, 4, 'Birne');
print_r($a);
print_r($b);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [5]  => Banane
    [6]  => Banane
    [7]  => Banane
    [8]  => Banane
    [9]  => Banane
    [10] => Banane
)
Array
(
    [-2] => Birne
    [0] => Birne
    [1] => Birne
    [2] => Birne
\

Anmerkungen

Beachten Sie auch den Array-Abschnitt des Handbuchs für eine detaillierte Erklärung von negativen Schlüsseln.

Siehe auch

  • array_fill_keys() - Befüllt ein Array mit Werten mit den übergebenen Schlüsseln
  • str_repeat() - Wiederholt einen String
  • range() - Erstellt ein Array mit einem Bereich von Elementen


Filtert Elemente eines Arrays mittels einer Callback-Funktion

  • « array_fill
  • array_flip »
  • PHP Manual
  • Array Funktionen
  • Filtert Elemente eines Arrays mittels einer Callback-Funktion

array_filter

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

array_filter — Filtert Elemente eines Arrays mittels einer Callback-Funktion

Beschreibung

array_filter ( array $array , callable $callback = ? , int $flag = 0 ) : array

Iteriert über jeden Wert im Array array und übergibt diesen der Callbackfunktion callback. Gibt die Funktion callback true zurück, so wird der aktuelle Wert von array in das Ergebnis-Array geschrieben.

Die Schlüssel bleiben erhalten, was zu Lücken führen kann, wenn array indexiert war. Das resultierende Array kann unter Verwendung der array_values() Funktion reindexiert werden.

Parameter-Liste

array

Das Array, über das iteriert werden soll

callback

Die zu verwendende Callbackfunktion

Falls die Funktion callback nicht angegeben wurde, werden alle leeren Einträge aus array entfernt. Siehe empty() zu Informationen was leer in diesem Fall bedeutet.

flag

Flag, welches bestimmt welche Parameter an callback gesendet werden:

  • ARRAY_FILTER_USE_KEY - nur der Schlüssel wird als einziger Parameter an callback gesendet statt des Wertes.
  • ARRAY_FILTER_USE_BOTH - sowohl der Schlüssel als auch der Wert werden als Parameter an callback übergeben statt des Wertes.
Der Standardwert ist 0, was bedeutet, dass nur der Wert als Parameter an callback übergeben wird.

Rückgabewerte

Gibt das gefilterte Array zurück.

Changelog

Version | Beschreibung
5.6.0 | Der optionale Parameter flag und die Konstanten ARRAY_FILTER_USE_KEY und ARRAY_FILTER_USE_BOTH wurden hinzugefügt.

Beispiele

Beispiel #1 array_filter()-Beispiel

<?php
function ungerade($var)
{
    // Gibt zurück, ob der Eingabewert ungerade ist
    return $var & 1;
}

function gerade($var)
{
    // Gibt zurück, ob der Eingabewert gerade ist
    return !($var & 1);
}

$array1 = ["a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5];
$array2 = [6, 7, 8, 9, 10, 11, 12];

echo "Ungerade :\n";
print_r(array_filter($array1, "ungerade"));
echo "Gerade:\n";
print_r(array_filter($array2, "gerade"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ungerade :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Gerade:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Beispiel #2 array_filter() ohne callback

<?php

$entry = [
    0 => 'foo',
    1 => false,
    2 => -1,
    3 => null,
    4 => '',
    5 => '0',
    6 => 0,
];

print_r(array_filter($entry));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => foo
    [2] => -1
)

Beispiel #3 array_filter() mit flag

<?php

$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];

var_dump(array_filter($arr, function($k) {
    return $k == 'b';
}, ARRAY_FILTER_USE_KEY));

var_dump(array_filter($arr, function($v, $k) {
    return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}

Anmerkungen

Achtung

Wird das Array durch die Callbackfunktion verändert (z.B. hinzufügen oder löschen von Elementen oder ein unset-Aufruf), so ist das Verhalten dieser Funktion undefiniert.

Siehe auch

  • array_map() - Wendet eine Callback-Funktion auf die Elemente von Arrays an
  • array_reduce() - Iterative Reduktion eines Arrays zu einem Wert mittels einer Callbackfunktion
  • array_walk() - Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an


Vertauscht alle Schlüssel mit ihren zugehörigen Werten in einem Array

  • « array_filter
  • array_intersect_assoc »
  • PHP Manual
  • Array Funktionen
  • Vertauscht alle Schlüssel mit ihren zugehörigen Werten in einem Array

array_flip

(PHP 4, PHP 5, PHP 7, PHP 8)

array_flip — Vertauscht alle Schlüssel mit ihren zugehörigen Werten in einem Array

Beschreibung

array_flip ( array $array ) : array

array_flip() gibt ein Array in vertauschter Reihenfolge aus, d.h. die Schlüssel von array werden zu Werten und die Werte von array werden zu Schlüsseln.

Beachten Sie, dass die Werte von array gültige Schlüssel sein müssen, d.h. sie müssen entweder Integer oder String sein. Ist ein Wert vom falschen Typ, so wird eine Warnung ausgegeben, und das Schlüssel/Wert-Paar wird nicht ins Ergebnis übernommen.

Kommt ein Wert mehrfach vor, so wird der letzte Schlüssel als Wert verwendet und alle anderen Werte gehen verloren.

Parameter-Liste

array

Ein Array mit Schlüssel/Wertpaaren die vertauscht werden sollen.

Rückgabewerte

Gibt im Erfolgsfall das vertauschte Array zurück und im Fehlerfall null.

Beispiele

Beispiel #1 array_flip()-Beispiel

<?php
$input = array("Orange", "Apfel", "Birne");
$flipped = array_flip($input);

print_r($flipped);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [Orange] => 0
    [Apfel] => 1
    [Birne] => 2
)

Beispiel #2 array_flip()-Beispiel: Kollision

<?php
$input = array("a" => 1, "b" => 1, "c" => 2);
$flipped = array_flip($input);

print_r($flipped);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [1] => b
    [2] => c
)

Siehe auch

  • array_values() - Liefert alle Werte eines Arrays
  • array_keys() - Liefert alle Schlüssel oder eine Teilmenge aller Schlüssel eines Arrays
  • array_reverse() - Liefert ein Array mit umgekehrter Reihenfolge der Elemente


Ermittelt die Schnittmenge von Arrays mit Indexprüfung

  • « array_flip
  • array_intersect_key »
  • PHP Manual
  • Array Funktionen
  • Ermittelt die Schnittmenge von Arrays mit Indexprüfung

array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

array_intersect_assoc — Ermittelt die Schnittmenge von Arrays mit Indexprüfung

Beschreibung

array_intersect_assoc ( array $array1 , array $array2 , array $... = ? ) : array

array_intersect_assoc() gibt ein Array mit allen Werten von array1, die auch in allen anderen Argumenten enthalten sind, zurück. Beachten Sie, dass anders als von array_intersect() ebenfalls die Schlüssel zum Vergleich herangezogen werden.

Parameter-Liste

array1

Ein Array mit den Hauptwerten, die geprüft werden sollen.

array2

Ein Array, gegen welches die Werte geprüft werden sollen.

...

Weitere Arrays gegen welche geprüft werden soll.

Rückgabewerte

Gibt ein assoziatives Array zurück, welches alle Werte aus array1 enthält, welche auch in allen anderen Argumenten enthalten sind.

Beispiele

Beispiel #1 array_intersect_assoc() Beispiel

<?php
$array1 = array("a" => "grün", "b" => "braun", "c" => "blau", "rot");
$array2 = array("a" => "grün", "b"=>"gelb", "blau", "rot");
$ergebnis_array = array_intersect_assoc($array1, $array2);
print_r($ergebnis_array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [a] => grün
)

In unserem Beispiel sehen Sie, dass einzig das Paar "a" => "green" in beiden Arrays enthalten ist und daher zurückgegeben wird. Der Wert "rot" wird nicht zurückgegeben, weil sein Schlüsselwert in $array1 0 ist, wohingegen der Schlüssel von "rot" in $array2 den Wert 1 hat. Der Schlüssel "b" wird nicht zurückgegeben, weil er in beiden Arrays einen anderen Wert hat.

Die beiden Werte des Schlüssel => Wert Paares werden als gleich erachtet, genau dann wenn (string) $elem1 === (string) $elem2 . Anders ausgedrückt wird eine strikte Typenprüfung durchgeführt, so dass die Stringrepresentation gleich sein muss.

Siehe auch

  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_uintersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
  • array_intersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion
  • array_uintersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen
  • array_diff() - Ermittelt die Unterschiede zwischen Arrays
  • array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung


Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht

  • « array_intersect_assoc
  • array_intersect_uassoc »
  • PHP Manual
  • Array Funktionen
  • Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht

array_intersect_key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_intersect_key — Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht

Beschreibung

array_intersect_key ( array $array1 , array $array2 , array $... = ? ) : array

array_intersect_key() gibt ein Array zurück, welches alle Werte von array1 enthält, die Schlüssel besitzen, die in allen anderen Argumenten enthalten sind.

Parameter-Liste

array1

Das Array mit den Hauptschlüsseln, auf die geprüft werden soll.

array2

Ein Array, gegen welches die Schlüssel geprüft werden.

...

Eine variable Liste zu vergleichender Arrays.

Rückgabewerte

Gibt ein assoziatives Array zurück, welches alle Einträge von array1 enthält, deren Schlüssel in allen weiteren Arrays vorhanden sind.

Beispiele

Beispiel #1 array_intersect_key()-Beispiel

<?php
$array1 = array('blau' => 1, 'rot'  => 2, 'grün' => 3, 'violett' => 4);
$array2 = array('grün' => 5, 'blau' => 6, 'gelb' => 7, 'türkis'  => 8);

var_dump(array_intersect_key($array1, $array2));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["blau"]=>
  int(1)
  ["grün"]=>
  int(3)
})

In unserem Beispiel sehen Sie, dass nur die Schlüssel 'blau' und 'grün' in beiden Arrays vorhanden sind und daher zurückgegeben werden. Beachten Sie auch, dass 'blau' und 'grün' in beiden Arrays unterschiedliche Werte besitzen. Eine Übereinstimmung wird dennoch festgestellt, da nur die Schlüssel geprüft werden. Die zurückgegebenen Werte sind diejenigen aus array1.

Die beiden Schlüssel des Schlüssel => Wert-Paares werden als gleich erachtet, genau dann wenn (string) $key1 === (string) $key2 . Anders ausgedrückt findet eine strikte Prüfung statt, in der die String-Repräsentationen gleich sein müssen.

Siehe auch

  • array_diff() - Ermittelt die Unterschiede zwischen Arrays
  • array_udiff() - Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
  • array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
  • array_diff_uassoc() - Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
  • array_udiff_assoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
  • array_udiff_uassoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
  • array_diff_key() - Berechnet den Unterschied zwischen Arrays, indem es die Schlüssel vergleicht
  • array_diff_ukey() - Berechnet den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Vergleich der Schlüssel
  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_intersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion
  • array_intersect_ukey() - Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches


Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion

  • « array_intersect_key
  • array_intersect_ukey »
  • PHP Manual
  • Array Funktionen
  • Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion

array_intersect_uassoc

(PHP 5, PHP 7, PHP 8)

array_intersect_uassoc — Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion

Beschreibung

array_intersect_uassoc ( array $array1 , array $array2 , array $ ... = ? , callable $key_compare_func ) : array

array_intersect_uassoc() gibt ein Array mit allen Werten von array1, die auch in allen anderen Argumenten enthalten sind, zurück. Beachten Sie, dass anders als von array_intersect() die Schlüssel zum Vergleich herangezogen werden.

Parameter-Liste

array1

Eingabe-Array für den Vergleich der Arrays.

array2

Erstes Array gegen das die Schlüssel verglichen werden sollen.

...

Variable Liste von Array-Argumenten, gegen die die Werte verglichen werden sollen.

key_compare_func

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int

Rückgabewerte

Gibt alle Werte von array1 zurück, deren Werte in allen Argumenten existieren.

Beispiele

Beispiel #1 array_intersect_uassoc()-Beispiel

<?php
$array1 = array("a" => "grün", "b" => "braun", "c" => "blau", "rot");
$array2 = array("a" => "GRÜN", "B" => "braun", "gelb", "rot");

print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [b] => braun
)

Siehe auch

  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_uintersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
  • array_uintersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen
  • array_intersect_key() - Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht
  • array_intersect_ukey() - Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches


Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches

  • « array_intersect_uassoc
  • array_intersect »
  • PHP Manual
  • Array Funktionen
  • Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches

array_intersect_ukey

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_intersect_ukey — Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches

Beschreibung

array_intersect_ukey ( array $array1 , array $array2 , array $... = ? , callable $key_compare_func ) : array

array_intersect_ukey() gibt ein Array zurück, welches alle Werte von array1 enthält, die Schlüssel besitzen, die in allen anderen Argumenten enthalten sind.

Parameter-Liste

array1

Eingabe-Array für den Vergleich der Arrays.

array2

Erstes Array gegen das die Schlüssel verglichen werden sollen.

...

Variable Liste von Array-Argumenten, gegen die die Schlüssel verglichen werden sollen.

key_compare_func

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int

Rückgabewerte

Gibt alle Werte von array1 zurück, deren Schlüssel in allen Argumenten existieren.

Beispiele

Beispiel #1 array_intersect_ukey()-Beispiel

<?php
function key_compare_func($key1, $key2)
{
    if ($key1 == $key2)
        return 0;
    else if ($key1 > $key2)
        return 1;
    else
        return -1;
}

$array1 = array('blau'  => 1, 'rot'  => 2, 'grün'  => 3, 'violett' => 4);
$array2 = array('grün' => 5, 'blau' => 6, 'gelb' => 7, 'türkis'   => 8);

var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["blau"]=>
  int(1)
  ["grün"]=>
  int(3)
})

In unserem Beispiel sehen Sie, dass nur die Schlüssel 'blau' und 'grün' in beiden Arrays vorhanden sind und daher zurückgegeben werden. Beachten Sie auch, dass die Werte zu den Schlüsseln 'blau' und 'grün' sich in beiden Arrays voneinander unterscheiden. Eine Übereinstimmung wird dennoch festgestellt, da nur die Schlüssel überprüft werden. Die zurückgegebenen Werte sind diejenigen aus array1.

Siehe auch

  • array_diff() - Ermittelt die Unterschiede zwischen Arrays
  • array_udiff() - Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
  • array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
  • array_diff_uassoc() - Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
  • array_udiff_assoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
  • array_udiff_uassoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
  • array_diff_key() - Berechnet den Unterschied zwischen Arrays, indem es die Schlüssel vergleicht
  • array_diff_ukey() - Berechnet den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Vergleich der Schlüssel
  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_intersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion
  • array_intersect_key() - Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht


Ermittelt die Schnittmenge von Arrays

  • « array_intersect_ukey
  • array_key_exists »
  • PHP Manual
  • Array Funktionen
  • Ermittelt die Schnittmenge von Arrays

array_intersect

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_intersect — Ermittelt die Schnittmenge von Arrays

Beschreibung

array_intersect ( array $array1 , array $array2 , array $... = ? ) : array

array_intersect() gibt ein Array mit allen Werten von array1 zurück, die auch in allen anderen Argumenten enthalten sind. Beachten Sie, dass die Schlüssel erhalten bleiben.

Parameter-Liste

array1

Das Array mit den Hauptwerten, auf die überprüft werden soll.

array2

Ein Array, mit dessen Werten verglichen wird.

...

Eine variable Liste von Arrays, mit denen verglichen wird.

Rückgabewerte

Gibt ein Array mit allen Werten von array1 zurück, die auch in allen anderen Argumenten enthalten sind.

Beispiele

Beispiel #1 array_intersect()-Beispiel

<?php
$array1 = array("a" => "grün", "rot", "blau");
$array2 = array("b" => "grün", "gelb", "rot");
$ergebnis = array_intersect($array1, $array2);
print_r($ergebnis);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [a] => grün
    [0] => rot
)

Anmerkungen

Hinweis: Zwei Elemente werden genau dann als gleich angesehen, wenn (string) $elem1 === (string) $elem2. In Worten: Wenn die String-Repräsentationen identisch sind.

Siehe auch

  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_diff() - Ermittelt die Unterschiede zwischen Arrays
  • array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung


Prüft, ob ein Schlüssel in einem Array existiert

  • « array_intersect
  • array_key_first »
  • PHP Manual
  • Array Funktionen
  • Prüft, ob ein Schlüssel in einem Array existiert

array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

array_key_exists — Prüft, ob ein Schlüssel in einem Array existiert

Beschreibung

array_key_exists ( mixed $key , array $array ) : bool

array_key_exists() gibt true zurück, wenn key in dem Array vorhanden ist. key kann jeder für einen Array-Index mögliche Wert sein.

Parameter-Liste

key

Der zu prüfende Wert.

array

Ein Array mit den zu prüfenden Schlüsseln.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Hinweis:

array_key_exists() sucht nur nach Schlüsseln in der ersten Dimension. Verschachtelte Schlüssel in mehrdimensionalen Arrays werden nicht gesucht.

Beispiele

Beispiel #1 array_key_exists()-Beispiel

<?php
$search_array = array('erstes' => 1, 'zweites' => 4);
if (array_key_exists('erstes', $search_array)) {
    echo "Das Element 'erstes' ist in dem Array vorhanden";
}
?>

Beispiel #2 array_key_exists() vs. isset()

isset() gibt nicht true zurück für Schlüssel eines Arrays, die zu einem null-Wert gehören, array_key_exists() tut dies hingegen.

<?php
$search_array = array('erstes' => null, 'zweites' => 4);

// Gibt false zurück
isset($search_array['erstes']);

// Gibt true zurück
array_key_exists('erstes', $search_array);
?>

Anmerkungen

Hinweis:

Aus Gründen der Abwärtskompatibilität gibt array_key_exists() auch dann true zurück, wenn key eine Eigenschaft ist, die in einem Objekt, das als array übergeben wurde, definiert ist. Auf dieses Verhalten sollte man sich nicht verlassen, und es sollte darauf geachtet werden, dass array ein Array ist.

Um zu prüfen, ob eine Eigenschaft in einem Objekt existiert, verwenden Sie property_exists().

Siehe auch

  • isset() - Prüft, ob eine Variable deklariert ist und sich von null unterscheidet
  • array_keys() - Liefert alle Schlüssel oder eine Teilmenge aller Schlüssel eines Arrays
  • in_array() - Prüft, ob ein Wert in einem Array existiert
  • property_exists() - Prüft auf die Existenz einer Eigenschaft eines Objektes bzw. einer Klasse


Gets the first key of an array

  • « array_key_exists
  • array_key_last »
  • PHP Manual
  • Array Funktionen
  • Gets the first key of an array

array_key_first

(PHP 7 >= 7.3.0, PHP 8)

array_key_first — Gets the first key of an array

Beschreibung

array_key_first ( array $array ) : int|string|null

Get the first key of the given array without affecting the internal array pointer.

Parameter-Liste

array

An array.

Rückgabewerte

Returns the first key of array if the array is not empty; null otherwise.

Beispiele

Beispiel #1 Basic array_key_first() Usage

<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];

$firstKey = array_key_first($array);

var_dump($firstKey);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(1) "a"

Anmerkungen

Tipp

There are several ways to provide this functionality for versions prior to PHP 7.3.0. It is possible to use array_keys(), but that may be rather inefficient. It is also possible to use reset() and key(), but that may change the internal array pointer. An efficient solution, which does not change the internal array pointer, written as polyfill:

<?php
if (!function_exists('array_key_first')) {
    function array_key_first(array $arr) {
        foreach($arr as $key => $unused) {
            return $key;
        }
        return NULL;
    }
}
?>

Siehe auch

  • array_key_last() - Gets the last key of an array
  • reset() - Setzt den internen Zeiger eines Arrays auf sein erstes Element


Gets the last key of an array

  • « array_key_first
  • array_keys »
  • PHP Manual
  • Array Funktionen
  • Gets the last key of an array

array_key_last

(PHP 7 >= 7.3.0, PHP 8)

array_key_last — Gets the last key of an array

Beschreibung

array_key_last ( array $array ) : int|string|null

Get the last key of the given array without affecting the internal array pointer.

Parameter-Liste

array

An array.

Rückgabewerte

Returns the last key of array if the array is not empty; null otherwise.

Siehe auch

  • array_key_first() - Gets the first key of an array
  • end() - Positioniert den internen Zeiger eines Arrays auf dessen letztes Element


Liefert alle Schlüssel oder eine Teilmenge aller Schlüssel eines Arrays

  • « array_key_last
  • array_map »
  • PHP Manual
  • Array Funktionen
  • Liefert alle Schlüssel oder eine Teilmenge aller Schlüssel eines Arrays

array_keys

(PHP 4, PHP 5, PHP 7, PHP 8)

array_keys — Liefert alle Schlüssel oder eine Teilmenge aller Schlüssel eines Arrays

Beschreibung

array_keys ( array $array ) : array
array_keys ( array $array , mixed $search_value , bool $strict = false ) : array

array_keys() gibt die Schlüssel (numerisch und als String) des Arrays array zurück.

Ist der Parameter search_value angegeben, werden nur die Schlüssel für diesen Wert zurückgegeben. Andernfalls werden alle Schlüssel von array zurückgegeben.

Parameter-Liste

array

Ein Array mit den zurückzugebenden Schlüsseln.

search_value

Wenn angegeben, werden nur Schlüssel mit diesen Werten zurückgegeben.

strict

Bestimmt, ob ein strikter Vergleich (===) während der Suche verwendet werden soll.

Rückgabewerte

Gibt ein Array mit allen Schlüsseln des Arrays array zurück.

Beispiele

Beispiel #1 array_keys()-Beispiel

<?php
$array = array(0 => 100, "Farbe" => "rot");
print_r(array_keys($array));

$array = array("blau", "rot", "grün", "blau", "blau");
print_r(array_keys($array, "blau"));

$array = array("Farbe" => array("blau", "rot", "grün"),
               "Größe" => array("klein", "mittel", "groß"));
print_r(array_keys($array));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => 0
    [1] => Farbe
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => Farbe
    [1] => Größe
)

Siehe auch

  • array_values() - Liefert alle Werte eines Arrays
  • array_combine() - Erzeugt ein Array, indem es ein Array für die Schlüssel und ein anderes für die Werte verwendet
  • array_key_exists() - Prüft, ob ein Schlüssel in einem Array existiert
  • array_search() - Durchsucht ein Array nach einem Wert und liefert bei Erfolg den zugehörigen Schlüssel


Wendet eine Callback-Funktion auf die Elemente von Arrays an

  • « array_keys
  • array_merge_recursive »
  • PHP Manual
  • Array Funktionen
  • Wendet eine Callback-Funktion auf die Elemente von Arrays an

array_map

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

array_map — Wendet eine Callback-Funktion auf die Elemente von Arrays an

Beschreibung

array_map ( callable $callback , array $array1 , array $... = ? ) : array

array_map() gibt ein Array zurück, das die Ergebnisse der Anwendung des callback auf den entsprechenden Index von array1 (und ..., wenn weitere Arrays angegeben wurden) als Callback-Argumente enthält. Die Anzahl Parameter, welche die Callback-Funktion callback akzeptiert, sollte der Anzahl der an array_map() übergebenen Arrays entsprechen.

Das zurückgelieferte Array erhält die Schlüssel des Array-Arguments nur, wenn genau ein Array übergeben wurde. Wird mehr als ein Array übergeben, hat das zurückgelieferte Array sequentielle Integer-Schlüssel.

Parameter-Liste

callback

Ein callable, das für jedes Element in jedem Array aufgerufen werden soll.

null kann als Wert an callback übergeben werden, um eine zip-Operation auf mehrere Arrays durchzuführen. Wird nur array1 übergeben, gibt array_map() das Eingabe-Array zurück.

array1

Ein Array, auf das die callback-Funktion angewendet werden soll.

...

Zusätzliche variable Liste von Array-Argumenten, auf die die callback-Funktion angewendet werden soll.

Rückgabewerte

array_map() gibt ein Array zurück, das die Ergebnisse der Anwendung der callback Funktion auf den entsprechenden Index von array1 (und ..., wenn weitere Arrays angegeben wurden) als Callback-Argumente enthält.

Beispiele

Beispiel #1 array_map()-Beispiel

<?php
function cube($n)
{
    return ($n * $n * $n);
}

$a = [1, 2, 3, 4, 5];
$b = array_map('cube', $a);
print_r($b);
?>

Dies speichert in $b:

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Beispiel #2 array_map() mit einer Lambda-Funktion (seit PHP 5.3.0)

<?php

/* Seit PHP 5.3.0 */

$func = function($value) { return $value * 2; };

print_r(array_map($func, range(1, 5)));

?>
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)

Beispiel #3 array_map() - Verwendung mehrerer Arrays

<?php
function show_Spanish($n, $m)
{
    return "Die Zahl {$n} heißt auf Spanisch {$m}";
}

function map_Spanish($n, $m)
{
    return [$n => $m];
}

$a = [1, 2, 3, 4, 5];
$b = ['uno', 'dos', 'tres', 'cuatro', 'cinco'];

$c = array_map('show_Spanish', $a, $b);
print_r($c);

$d = array_map('map_Spanish', $a , $b);
print_r($d);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

// Ausgabe von $c
Array
(
    [0] => Die Zahl 1 heißt auf Spanisch uno
    [1] => Die Zahl 2 heißt auf Spanisch dos
    [2] => Die Zahl 3 heißt auf Spanisch tres
    [3] => Die Zahl 4 heißt auf Spanisch cuatro
    [4] => Die Zahl 5 heißt auf Spanisch cinco
)

// Ausgabe von $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

Bei Verwendung von zwei oder mehr Arrays sollten diese gewöhnlich die gleiche Länge besitzen, da die Callback-Funktion parallel auf die entsprechenden Elemente angewandt wird. Haben die Arrays unterschiedliche Längen, werden kürzere um leere Elemente erweitert, um mit der Länge des längsten übereinzustimmen.

Eine interessante Anwendung dieser Funktion ist die Konstruktion eines Arrays bestehend aus Arrays, was mit null als Name der Callback-Funktion leicht realisiert werden kann.

Beispiel #4 Durchführen einer zip-Operation von Arrays

<?php
$a = [1, 2, 3, 4, 5];
$b = ['eins', 'zwei', 'drei', 'vier', 'fünf'];
$c = ['uno', 'dos', 'tres', 'cuatro', 'cinco'];

$d = array_map(null, $a, $b, $c);
print_r($d);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => eins
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => zwei
            [2] => dos
        )

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

    [3] => Array
        (
            [0] => 4
            [1] => vier
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => fünf
            [2] => cinco
        )

)

Beispiel #5 null callback nur mit array1

<?php
$array = [1, 2, 3];
var_dump(array_map(null, $array));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Beispiel #6 array_map() - mit String-Schlüsseln

<?php
$arr = ['stringkey' => 'value'];
function cb1($a) {
    return [$a];
}
function cb2($a, $b) {
    return [$a, $b];
}
var_dump(array_map('cb1', $arr));
var_dump(array_map('cb2', $arr, $arr));
var_dump(array_map(null,  $arr));
var_dump(array_map(null, $arr, $arr));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["stringkey"]=>
  array(1) {
    [0]=>
    string(5) "value"
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}
array(1) {
  ["stringkey"]=>
  string(5) "value"
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}

Siehe auch

  • array_filter() - Filtert Elemente eines Arrays mittels einer Callback-Funktion
  • array_reduce() - Iterative Reduktion eines Arrays zu einem Wert mittels einer Callbackfunktion
  • array_walk() - Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an


Führt ein oder mehrere Arrays rekursiv zusammen

  • « array_map
  • array_merge »
  • PHP Manual
  • Array Funktionen
  • Führt ein oder mehrere Arrays rekursiv zusammen

array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_merge_recursive — Führt ein oder mehrere Arrays rekursiv zusammen

Beschreibung

array_merge_recursive ( array $... = ? ) : array

array_merge_recursive() fügt die Elemente von einem oder mehreren Arrays zusammen, so dass die Werte eines Arrays an die des voherigen angehängt werden. Das daraus resultierende Array wird zurückgegeben.

Falls die angegebenen Arrays die selben String-Schlüssel haben, so werden die Werte dieser Schlüssel in einem Array zusammengeführt. Dies geschieht rekursiv, so dass, falls einer der Werte selbst ein Array ist, auch dieser Wert mit dem entsprechenden Eintrag eines anderen Arrays zusammengeführt wird. Falls jedoch die Arrays den gleichen numerischen Schlüssel haben, so wird der spätere Wert nicht den ursprünglichen Wert überschreiben, sondern er wird angehängt.

Parameter-Liste

...

Variable Liste der Arrays, die rekursiv zusammengeführt werden sollen.

Rückgabewerte

Ein Array mit Werten, die aus dem Zusammenführen der Argumente resultieren. Bei Aufruf ohne Argument wird ein leeres Array zurückgeliefert.

Changelog

Version | Beschreibung
7.4.0 | Diese Funktion kann nun ohne Parameter aufgerufen werden. Zuvor war mindestens ein Parameter erforderlich.

Beispiele

Beispiel #1 array_merge_recursive()-Beispiel

<?php
$ar1 = array("farbe" => array ("favorit" => "rot"), 5);
$ar2 = array(10, "farbe" => array ("favorit" => "grün", "blau"));
$result = array_merge_recursive ($ar1, $ar2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [farbe] => Array
        (
            [favorit] => Array
                (
                    [0] => rot
                    [1] => grün
                )

            [0] => blau
        )

    [0] => 5
    [1] => 10
)

Siehe auch

  • array_merge() - Führt zwei oder mehr Arrays zusammen
  • array_replace_recursive() - Replaces elements from passed arrays into the first array recursively


Führt zwei oder mehr Arrays zusammen

  • « array_merge_recursive
  • array_multisort »
  • PHP Manual
  • Array Funktionen
  • Führt zwei oder mehr Arrays zusammen

array_merge

(PHP 4, PHP 5, PHP 7, PHP 8)

array_merge — Führt zwei oder mehr Arrays zusammen

Beschreibung

array_merge ( array $... = ? ) : array

Fügt die Elemente von zwei oder mehr Arrays zusammen, indem die Werte des einen an das Ende des vorherigen angehängt werden. Das daraus resultierende Array wird zurückgegeben.

Haben die angegebenen Arrays die selben alphanumerischen Schlüssel, dann überschreibt der spätere Wert den vorhergehenden. Falls die Arrays aber gleiche numerische Schlüssel enthalten, überschreibt der spätere Wert den ursprünglichen Wert nicht und wird stattdessen angehängt.

Werte in den Eingangsarrays mit numerischen Schlüsseln werden im resultierenden Array mit aufsteigenden Schlüsseln, die bei Null beginnen, neu nummeriert.

Parameter-Liste

...

Variable Liste von zusammenzufügenden Arrays.

Rückgabewerte

Gibt das resultierende Array zurück. Bei Aufruf ohne Argument wird ein leeres Array zurückgeliefert.

Changelog

Version | Beschreibung
7.4.0 | Diese Funktion kann nun ohne Parameter aufgerufen werden. Zuvor war mindestens ein Parameter erforderlich.

Beispiele

Beispiel #1 array_merge()-Beispiel

<?php
$array1 = array("farbe" => "rot", 2, 4);
$array2 = array("a", "b", "farbe" => "grün", "form" => "trapezoid", 4);
$ergebnis = array_merge($array1, $array2);
print_r($ergebnis);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [farbe] => grün
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [form] => trapezoid
    [4] => 4
)

Beispiel #2 Ein einfaches array_merge()-Beispiel

<?php
$array1 = array();
$array2 = array(1 => "daten");
$ergebnis = array_merge($array1, $array2);
?>

Vergessen Sie nicht, dass numerische Schlüssel neu nummeriert werden!

Array
(
    [0] => daten
)

Falls Array-Elemente des zweiten Arrays an das erste Array angehängt werden sollen, ohne dass Elemente des ersten Arrays überschrieben werden und neu indexiert wird, kann der Vereinigungs-Operator + verwendet werden:

<?php
$array1 = array(0 => 'null_a', 2 => 'zwei_a', 3 => 'drei_a');
$array2 = array(1 => 'eins_b', 3 => 'drei_b', 4 => 'vier_b');
$ergebnis = $array1 + $array2;
var_dump($ergebnis);
?>

Die Schlüssel des ersten Arrays werden beibehalten. Falls ein Schlüssel in beiden Arrays vorkommt, wird das Element des ersten Arrays verwendet und das entsprechende Element des zweiten Arrays ignoriert.

array(5) {
  [0]=>
  string(6) "null_a"
  [2]=>
  string(5) "zwei_a"
  [3]=>
  string(7) "drei_a"
  [1]=>
  string(5) "eins_b"
  [4]=>
  string(6) "vier_b"
}

Beispiel #3 array_merge() mit nicht-Array-Typen

<?php
$anfang = 'foo';
$ende = array(1 => 'bar');
$ergebnis = array_merge((array)$anfang, (array)$ende);
print_r($ergebnis);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    Array
    (
        [0] => foo
        [1] => bar
    )

Siehe auch

  • array_merge_recursive() - Führt ein oder mehrere Arrays rekursiv zusammen
  • array_replace() - Ersetzt Elemente von übergebenen Arrays im ersten Array
  • array_combine() - Erzeugt ein Array, indem es ein Array für die Schlüssel und ein anderes für die Werte verwendet
  • array operators


Sortiert mehrere oder multidimensionale Arrays

  • « array_merge
  • array_pad »
  • PHP Manual
  • Array Funktionen
  • Sortiert mehrere oder multidimensionale Arrays

array_multisort

(PHP 4, PHP 5, PHP 7, PHP 8)

array_multisort — Sortiert mehrere oder multidimensionale Arrays

Beschreibung

array_multisort ( array &$array1 , mixed $array1_sort_order = SORT_ASC , mixed $array1_sort_flags = SORT_REGULAR , mixed $... = ? ) : bool

array_multisort() wird zum Sortieren von entweder mehreren Arrays auf einmal, oder eines multidimensionalen Arrays nach einer oder mehreren Dimensionen benutzt.

Assoziative (string) Schlüssel werden beibehalten, während numerische Schlüssel neu indexiert werden.

Parameter-Liste

array1

Ein zu sortierendes array.

array1_sort_order

Die Reihenfolge, die verwendet wird, um das vorangehende array Argument zu sortieren. Entweder SORT_ASC um aufsteigend, oder SORT_DESC um absteigend zu sortieren.

Dieses Argument kann mit array1_sort_flags vertauscht werden, oder ganz entfallen, in welchem Fall SORT_ASC angenommen wird.

array1_sort_flags

Sortieroptionen für das vorangehende array Argument:

Sortier-Flags:

  • SORT_REGULAR - vergleiche Elemente normal (ändere nicht die Typen)
  • SORT_NUMERIC - vergleiche Elemente numerisch
  • SORT_STRING - vergleiche Elemente als Zeichenketten
  • SORT_LOCALE_STRING - vergleiche Elemente als Zeichenketten, basierend auf dem aktuellen Gebietschema. Es verwendet das Gebietsschema, das unter Verwendung von setlocale() geändert werden kann
  • SORT_NATURAL - vergleiche Elemente als Zeichenketten unter Verwendung einer "natürlichen Ordnung" wie natsort()
  • SORT_FLAG_CASE - kann kombiniert werden (bitweises OR) mit SORT_STRING oder SORT_NATURAL um Zeichenketten case-insensitive zu sortieren

Dieses Argument kann mit array1_sort_order vertauscht werden, oder ganz entfallen, in welchem Fall SORT_REGULAR angenommen wird.

...

Weitere Arrays, optional gefolgt von Sortierreihenfolge und -Flags. Nur zu äquivalenten Elementen in vorherigen Arrays korrespondierende Elemente werden verglichen. Anders ausgedrückt erfolgt die Sortierung lexikographisch.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Sortieren mehrerer Arrays

<?php
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>

In diesem Beispiel enthält das erste Array nach dem Sortieren 0, 10, 100, 100. Das zweite Array wird 4, 1, 2, 3 enthalten. Die Einträge des zweiten Arrays, welche den identischen Einträgen des ersten Arrays entsprechen (100 und 100), wurden ebenfalls sortiert.

array(4) {
  [0]=> int(0)
  [1]=> int(10)
  [2]=> int(100)
  [3]=> int(100)
}
array(4) {
  [0]=> int(4)
  [1]=> int(1)
  [2]=> int(2)
  [3]=> int(3)
}

Beispiel #2 Sortieren eines mehrdimensionalen Arrays

<?php
$ar = array(
       array("10", 11, 100, 100, "a"),
       array(   1,  2, "2",   3,   1)
      );
array_multisort($ar[0], SORT_ASC, SORT_STRING,
                $ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>

In diesem Beispiel wird sich das erste Array nach der Sortierung in "10", 100, 100, 11, "a" ändern (es wurde als Strings in aufsteigender Reihenfolge sortiert). Das zweite wird 1, 3, "2", 2, 1 enthalten (sortiert als Zahlen in absteigender Reihe).

array(2) {
  [0]=> array(5) {
    [0]=> string(2) "10"
    [1]=> int(100)
    [2]=> int(100)
    [3]=> int(11)
    [4]=> string(1) "a"
  }
  [1]=> array(5) {
    [0]=> int(1)
    [1]=> int(3)
    [2]=> string(1) "2"
    [3]=> int(2)
    [4]=> int(1)
  }
}

Beispiel #3 Datenbankdaten sortieren

In diesem Beispiel repräsentiert jedes Element des Arrays data eine Zeile einer Tabelle. Dieser Typ von Datensätzen ist typisch für Datenbankinhalte.

Beispieldaten:

Band   | Auflage
-------+--------
    67 |       2
    86 |       1
    85 |       6
    98 |       2
    86 |       6
    67 |       7

Die Daten als data genanntes Array. Dieses würde man üblicherweise erhalten, indem man zum Beispiel mit mysql_fetch_assoc() eine Schleife baut.

<?php
$data[] = array('Band' => 67, 'Auflage' => 2);
$data[] = array('Band' => 86, 'Auflage' => 1);
$data[] = array('Band' => 85, 'Auflage' => 6);
$data[] = array('Band' => 98, 'Auflage' => 2);
$data[] = array('Band' => 86, 'Auflage' => 6);
$data[] = array('Band' => 67, 'Auflage' => 7);
?>

In diesem Beispiel werden wir nach Band absteigend sortieren und nach Auflage aufsteigend.

Wir haben ein Array von Zeilen, aber array_multisort() benötigt ein Array von Spalten, daher benutzen wir den Code unten, um die Spalten zu bekommen und dann die Sortierung durchzuführen.

<?php
// Hole eine Liste von Spalten
foreach ($data as $key => $row) {
    $band[$key]    = $row['Band'];
    $auflage[$key] = $row['Auflage'];
}

// von PHP 5.5.0 an kann array_column() statt des obigen Codes verwendet werden
$band  = array_column($data, 'Band');
$auflage = array_column($data, 'Auflage');

// Die Daten mit 'Band' absteigend, die mit 'Auflage' aufsteigend sortieren.
// Geben Sie $data als letzten Parameter an, um nach dem gemeinsamen
// Schlüssel zu sortieren.
array_multisort($band, SORT_DESC, $auflage, SORT_ASC, $data);
?>

Der Datensatz ist jetzt sortiert und wird wie folgt aussehen:

Band | Auflage
-----+--------
  98 |       2
  86 |       1
  86 |       6
  85 |       6
  67 |       2
  67 |       7

Beispiel #4 Groß-/Kleinschreibung nicht-beachtende Sortierung

Sowohl SORT_STRING als auch SORT_REGULAR beachten die Groß-/Kleinschreibung, weshalb Strings, welche mit großem Buchstaben beginnen, vor Strings einsortiert werden, die mit kleinem Buchstaben anfangen.

Um eine Suche durchzuführen, die die Groß-/Kleinschreibung nicht beachtet, muss man erzwingen, dass die Sortierreihenfolge von einer Kopie des Originalarrays in Kleinschreibung festgelegt wird.

<?php
$array = array('Alpha', 'atomar', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array);

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);

print_r($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Alpha
    [1] => atomar
    [2] => bank
    [3] => Beta
)

Siehe auch

  • usort() - Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion
  • Den Vergleich von Arraysortierungsfunktionen


Füllt ein Array bis auf die angegebene Länge mit einem Wert auf

  • « array_multisort
  • array_pop »
  • PHP Manual
  • Array Funktionen
  • Füllt ein Array bis auf die angegebene Länge mit einem Wert auf

array_pad

(PHP 4, PHP 5, PHP 7, PHP 8)

array_pad — Füllt ein Array bis auf die angegebene Länge mit einem Wert auf

Beschreibung

array_pad ( array $array , int $size , mixed $value ) : array

array_pad() gibt eine Kopie von array zurück, welche auf die mit size angegebene Größe mit dem Wert value aufgefüllt wurde. Ist der Parameter size positiv, wird das Array rechts erweitert, ist er negativ, dann erfolgt die Erweiterung links. Ist der Betrag von size kleiner oder gleich der Länge von array, erfolgt keine Erweiterung. Es können pro Aufruf maximal 1048576 Elemente hinzugefügt werden.

Parameter-Liste

array

Das Array, das aufgefüllt werden soll.

size

Die neue Größe des Arrays.

value

Der Wert, mit dem das Array array aufgefüllt wird, falls es kleiner als size ist.

Rückgabewerte

Gibt eine Kopie von array zurück, welche auf die mit size angegebene Größe mit dem Wert value aufgefüllt wurde. Ist der Parameter size positiv, wird das Array rechts erweitert, ist er negativ, dann erfolgt die Erweiterung links. Ist der Betrag von size kleiner oder gleich der Länge von array, erfolgt keine Erweiterung.

Beispiele

Beispiel #1 array_pad()-Beispiel

<?php
$eingabe = array(12, 10, 9);

$ergebnis = array_pad($eingabe, 5, 0);
// Ergebnis ist array(12, 10, 9, 0, 0)

$ergebnis = array_pad($eingabe, -7, -1);
// Ergebnis ist array(-1, -1, -1, -1, 12, 10, 9)

$ergebnis = array_pad($eingabe, 2, "noop");
// nicht erweitert
?>

Siehe auch

  • array_fill() - Füllt ein Array mit Werten
  • range() - Erstellt ein Array mit einem Bereich von Elementen


Liefert und entfernt das letzte Element eines Arrays

  • « array_pad
  • array_product »
  • PHP Manual
  • Array Funktionen
  • Liefert und entfernt das letzte Element eines Arrays

array_pop

(PHP 4, PHP 5, PHP 7, PHP 8)

array_pop — Liefert und entfernt das letzte Element eines Arrays

Beschreibung

array_pop ( array &$array ) : mixed

array_pop() liefert den Wert des letzten Elements von array, und verkürzt array um ein Element.

Hinweis: Diese Funktion setzt (reset()) nach Verwendung den array-Zeiger zurück.

Parameter-Liste

array

Das Array, aus dem der Wert geholt werden soll.

Rückgabewerte

Gibt den Wert des letzten Elements von array zurück. Wenn array leer ist (oder kein Array), wird null zurückgegeben.

Fehler/Exceptions

Diese Funktion erzeugt einen Fehler der Stufe E_WARNING wenn sie auf etwas angewendet wird, das kein Array ist.

Beispiele

Beispiel #1 array_pop()-Beispiel

<?php
$stack = array("Orange", "Banane", "Apfel", "Himbeere");
$fruit = array_pop($stack);
print_r($stack);
?>

Danach hat $stack nur 3 Elemente:

Array
(
    [0] => Orange
    [1] => Banane
    [2] => Apfel
)

und Himbeere wird $fruit zugewiesen.

Siehe auch

  • array_push() - Fügt ein oder mehr Elemente an das Ende eines Arrays an
  • array_shift() - Liefert und entfernt das erste Element eines Arrays
  • array_unshift() - Fügt ein oder mehr Elemente am Anfang eines Arrays ein


Ermittelt das Produkt von Werten in einem Array

  • « array_pop
  • array_push »
  • PHP Manual
  • Array Funktionen
  • Ermittelt das Produkt von Werten in einem Array

array_product

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_product — Ermittelt das Produkt von Werten in einem Array

Beschreibung

array_product ( array $array ) : number

array_product() gibt das Produkt von Werten in einem Array.

Parameter-Liste

array

Das Array.

Rückgabewerte

Gibt das Produkt als Integer oder Float zurück.

Beispiele

Beispiel #1 array_product() Beispiel

<?php

$a = array(2, 4, 6, 8);
echo "Produkt(a) = " . array_product($a) . "\n";
echo "product(array()) = " . array_product(array()) . "\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Produkt(a) = 384
product(array()) = 1


Fügt ein oder mehr Elemente an das Ende eines Arrays an

  • « array_product
  • array_rand »
  • PHP Manual
  • Array Funktionen
  • Fügt ein oder mehr Elemente an das Ende eines Arrays an

array_push

(PHP 4, PHP 5, PHP 7, PHP 8)

array_push — Fügt ein oder mehr Elemente an das Ende eines Arrays an

Beschreibung

array_push ( array &$array , mixed $... = ? ) : int

array_push() behandelt array als Stapel (Stack), und fügt die übergebenen Variablen an das Ende von array an. Die Länge von array wird dabei um die Anzahl der angefügten Variablen erhöht. Dies hat den selben Effekt wie:

<?php
$array[] = $var;
?>
für jeden übergebenen Wert wiederholt.

Hinweis: Wenn Sie array_push() verwenden, um ein Element an ein Array anzuhängen, ist es besser $array[] = zu benutzen, da dies den zusätzlichen Aufwand vermeidet, eine Funktion aufzurufen

Hinweis: array_push() gibt eine Warnung aus, wenn das erste Argument kein Array ist. Dies unterscheidet sich vom Verhalten von $var[], welches ein neues Array erzeugt.

Parameter-Liste

array

Das Eingabe-Array.

...

Die Werte, die am Ende von array angefügt werden sollen.

Rückgabewerte

Liefert die neue Anzahl Elemente des Arrays.

Changelog

Version | Beschreibung
7.3.0 | Diese Funktion kann nun mit nur einem Parameter aufgerufen werden. Zuvor waren mindestens zwei Parameter erforderlich.

Beispiele

Beispiel #1 array_push() Beispiel

<?php
$stack = array("Orange", "Banane");
array_push($stack, "Apfel", "Himbeere");
print_r($stack);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Orange
    [1] => Banane
    [2] => Apfel
    [3] => Himbeere
)

Siehe auch

  • array_pop() - Liefert und entfernt das letzte Element eines Arrays
  • array_shift() - Liefert und entfernt das erste Element eines Arrays
  • array_unshift() - Fügt ein oder mehr Elemente am Anfang eines Arrays ein


Liefert einen oder mehrere zufällige Schlüssel eines Arrays

  • « array_push
  • array_reduce »
  • PHP Manual
  • Array Funktionen
  • Liefert einen oder mehrere zufällige Schlüssel eines Arrays

array_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

array_rand — Liefert einen oder mehrere zufällige Schlüssel eines Arrays

Beschreibung

array_rand ( array $array , int $num = 1 ) : mixed

Wählt einen oder mehrere Einträge aus einem Array aus und gibt den Schlüssel des zufälligen Eintrags bzw. die Schlüssel der zufälligen Einträge zurück. Es wird ein Pseudozufallszahlengenerator verwendet der nicht für kryptographische Zwecke geeignet ist.

Parameter-Liste

array

Das Eingabe-Array.

num

Gibt an, wie viele Einträge ausgewählt werden sollen.

Rückgabewerte

Wenn nur ein Eintrag ausgewählt wird, liefert array_rand() den Schlüssel eines zufälligen Eintrages. Andernfalls wird ein Array mit den Schlüsseln der zufälligen Einträge zurückgegeben. Dies hat den Zweck, dass zufällige Schlüssel und auch Werte aus dem Array ausgewählt werden können. Der Versuch mehr Elemente auszuwählen als im Array vorhanden sind, ergibt einen Fehler der Stufe E_WARNING und NULL wird zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | Zur Erzeugung der Zufallszahlen kommt intern nun der » Mersenne-Primzahlen-Zufallsgenerator statt der vorherigen libc-rand-Funktion zum Einsatz.

Beispiele

Beispiel #1 array_rand()-Beispiel

<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>

Siehe auch

  • shuffle() - Mischt die Elemente eines Arrays


Iterative Reduktion eines Arrays zu einem Wert mittels einer Callbackfunktion

  • « array_rand
  • array_replace_recursive »
  • PHP Manual
  • Array Funktionen
  • Iterative Reduktion eines Arrays zu einem Wert mittels einer Callbackfunktion

array_reduce

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

array_reduce — Iterative Reduktion eines Arrays zu einem Wert mittels einer Callbackfunktion

Beschreibung

array_reduce ( array $array , callable $callback , mixed $initial = null ) : mixed

array_reduce() wendet die Funktion callback iterativ auf die Elemente des Arrays array so an, dass das Array auf einen einzigen Wert reduziert wird.

Parameter-Liste

array

Das Eingabe-Array.

callback
callback ( mixed $carry , mixed $item ) : mixed
carry

Enthält den Rückgabewert des vorherigen Durchgangs. Im Fall des ersten Durchlaufs enthält dies stattdessen den Wert von initial.

item

Enthält den Wert des aktuellen Durchgangs.

initial

Ist der optionale Parameter intial angegeben, wird er am Anfang des Prozesses benutzt oder als Resultat verwendet, sollte das Array leer sein.

Rückgabewerte

Gibt den sich ergebenden Wert zurück.

Falls das Array leer ist und initial nicht angegeben wurde, so wird array_reduce() null zurückgeben.

Beispiele

Beispiel #1 array_reduce()-Beispiel

<?php
function summe($carry, $item)
{
    $carry += $item;
    return $carry;
}

function produkt($carry, $item)
{
    $carry *= $item;
    return $carry;
}

$a = array(1, 2, 3, 4, 5);
$x = array();

var_dump(array_reduce($a, "summe")); // int(15)
var_dump(array_reduce($a, "produkt", 10)); // int(1200), da: 10*1*2*3*4*5
var_dump(array_reduce($x, "summe", "Keine Daten für die Reduktion"));
   // string(29) "Keine Daten für die Reduktion"
?>

Siehe auch

  • array_filter() - Filtert Elemente eines Arrays mittels einer Callback-Funktion
  • array_map() - Wendet eine Callback-Funktion auf die Elemente von Arrays an
  • array_unique() - Entfernt doppelte Werte aus einem Array
  • array_count_values() - Zählt die Werte eines Arrays


Replaces elements from passed arrays into the first array recursively

  • « array_reduce
  • array_replace »
  • PHP Manual
  • Array Funktionen
  • Replaces elements from passed arrays into the first array recursively

array_replace_recursive

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

array_replace_recursive — Replaces elements from passed arrays into the first array recursively

Beschreibung

array_replace_recursive ( array $array , array ...$replacements ) : array

array_replace_recursive() replaces the values of array with the same values from all the following arrays. If a key from the first array exists in the second array, its value will be replaced by the value from the second array. If the key exists in the second array, and not the first, it will be created in the first array. If a key only exists in the first array, it will be left as is. If several arrays are passed for replacement, they will be processed in order, the later array overwriting the previous values.

array_replace_recursive() is recursive : it will recurse into arrays and apply the same process to the inner value.

When the value in the first array is scalar, it will be replaced by the value in the second array, may it be scalar or array. When the value in the first array and the second array are both arrays, array_replace_recursive() will replace their respective value recursively.

Parameter-Liste

array

The array in which elements are replaced.

replacements

Arrays from which elements will be extracted.

Rückgabewerte

Returns an array, or null if an error occurs.

Beispiele

Beispiel #1 array_replace_recursive() example

<?php
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));

$basket = array_replace_recursive($base, $replacements);
print_r($basket);

$basket = array_replace($base, $replacements);
print_r($basket);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )

)
Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
        )

)

Beispiel #2 array_replace_recursive() and recursive behavior

<?php
$base = array('citrus' => array("orange") , 'berries' => array("blackberry", "raspberry"), 'others' => 'banana' );
$replacements = array('citrus' => 'pineapple', 'berries' => array('blueberry'), 'others' => array('litchis'));
$replacements2 = array('citrus' => array('pineapple'), 'berries' => array('blueberry'), 'others' => 'litchis');

$basket = array_replace_recursive($base, $replacements, $replacements2);
print_r($basket);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )

    [others] => litchis
)

Siehe auch

  • array_replace() - Ersetzt Elemente von übergebenen Arrays im ersten Array
  • array_merge_recursive() - Führt ein oder mehrere Arrays rekursiv zusammen


Ersetzt Elemente von übergebenen Arrays im ersten Array

  • « array_replace_recursive
  • array_reverse »
  • PHP Manual
  • Array Funktionen
  • Ersetzt Elemente von übergebenen Arrays im ersten Array

array_replace

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

array_replace — Ersetzt Elemente von übergebenen Arrays im ersten Array

Beschreibung

array_replace ( array $array1 , array $... = ? ) : array

array_replace() ersetzt die Werte von array1 mit Werten, die die selben Schlüssel in den folgenden Arrays haben. Wenn ein Schlüssel des ersten Arrays im zweiten Array existiert, wird der Wert durch den Wert im zweiten Array ersetzt. Wenn der Schlüssel im zweiten, jedoch nicht im ersten Array existiert, wird dieser im ersten angelegt. Wenn ein Schlüssel nur im ersten Array existiert, bleibt dieser erhalten. Wenn mehrere Arrays zur Ersetzung übergeben werden, läuft die Abarbeitung der Reihe nach und spätere Arrays überschreiben vorherige Werte.

array_replace() ist nicht rekursiv: Werte im ersten Array werden, egal mit welchem Datentyp aus dem Zweiten Array ersetzt.

Parameter-Liste

array1

Das Array in welchem die Elemente ersetzt werden.

...

Arrays, aus denen Elemente extrahiert werden. Werte späterer Arrays überschreiben die vorherigen Werte.

Rückgabewerte

Gibt ein array zurück, oder null falls ein Fehler auftritt.

Beispiele

Beispiel #1 array_replace() Beispiel

<?php
$base = array("Orange", "Banane", "Apfel", "Himbeere");
$replacements = array(0 => "Ananas", 4 => "Kirsche");
$replacements2 = array(0 => "Traube");

$basket = array_replace($base, $replacements, $replacements2);
print_r($basket);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Traube
    [1] => Banane
    [2] => Apfel
    [3] => Himbeere
    [4] => Kirsche
)

Siehe auch

  • array_replace_recursive() - Replaces elements from passed arrays into the first array recursively
  • array_merge() - Führt zwei oder mehr Arrays zusammen


Liefert ein Array mit umgekehrter Reihenfolge der Elemente

  • « array_replace
  • array_search »
  • PHP Manual
  • Array Funktionen
  • Liefert ein Array mit umgekehrter Reihenfolge der Elemente

array_reverse

(PHP 4, PHP 5, PHP 7, PHP 8)

array_reverse — Liefert ein Array mit umgekehrter Reihenfolge der Elemente

Beschreibung

array_reverse ( array $array , bool $preserve_keys = false ) : array

Ausgehend vom Eingabe-Array array wird ein neues Array mit umgekehrter Reihenfolge der Elemente zurückgegeben.

Parameter-Liste

array

Das Eingabe-Array.

preserve_keys

Wenn auf true gesetzt, bleiben die Schlüssel erhalten. Nicht numerische Schlüssel sind nicht von diesem Parameter betroffen, und bleiben immer erhalten.

Rückgabewerte

Gibt das "umgekehrte" Array zurück.

Beispiele

Beispiel #1 array_reverse()-Beispiel

<?php
$input  = array("php", 4.0, array("grün", "rot"));
$reversed = array_reverse($input);
$preserved = array_reverse($input, true);

print_r($input);
print_r($reversed);
print_r($preserved);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => php
    [1] => 4
    [2] => Array
        (
            [0] => grün
            [1] => rot
        )

)
Array
(
    [0] => Array
        (
            [0] => grün
            [1] => rot
        )

    [1] => 4
    [2] => php
)
Array
(
    [2] => Array
        (
            [0] => grün
            [1] => rot
        )

    [1] => 4
    [0] => php
)

Siehe auch

  • array_flip() - Vertauscht alle Schlüssel mit ihren zugehörigen Werten in einem Array


Durchsucht ein Array nach einem Wert und liefert bei Erfolg den zugehörigen Schlüssel

  • « array_reverse
  • array_shift »
  • PHP Manual
  • Array Funktionen
  • Durchsucht ein Array nach einem Wert und liefert bei Erfolg den zugehörigen Schlüssel

array_search

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

array_search — Durchsucht ein Array nach einem Wert und liefert bei Erfolg den zugehörigen Schlüssel

Beschreibung

array_search ( mixed $needle , array $haystack , bool $strict = false ) : mixed

Sucht needle in haystack.

Parameter-Liste

needle

Der zu suchende Wert.

Hinweis:

Wenn needle ein String ist, wird der Vergleich unter Berücksichtigung der Groß-/Kleinschreibung vorgenommen.

haystack

Das Array.

strict

Ist der dritte Parameter strict auf true gesetzt, so wird array_search() nach identischen Elementen in haystack suchen. Das bedeutet, dass ebenfalls ein typstarker Vergleich von needle in haystack durchgeführt wird und die Objekte die selbe Instanz sind.

Rückgabewerte

Gibt den Schlüssel für needle zurück, wenn es gefunden wurde, ansonsten false.

Wenn needle in haystack mehrfach gefunden wurde, so wird der erste passende Schlüssel zurückgegeben. Um die Schlüssel für alle gefundenen Werte zurückzugeben, können Sie stattdessen array_keys() mit dem optionalen Parameter search_value verwenden.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 array_search()-Beispiel

<?php
$array = array(0 => 'blau', 1 => 'rot', 2 => 'grün', 3 => 'rot');

$key = array_search('grün', $array);  // $key = 2;
$key = array_search('rot', $array);   // $key = 1;
?>

Siehe auch

  • array_keys() - Liefert alle Schlüssel oder eine Teilmenge aller Schlüssel eines Arrays
  • array_values() - Liefert alle Werte eines Arrays
  • array_key_exists() - Prüft, ob ein Schlüssel in einem Array existiert
  • in_array() - Prüft, ob ein Wert in einem Array existiert


Liefert und entfernt das erste Element eines Arrays

  • « array_search
  • array_slice »
  • PHP Manual
  • Array Funktionen
  • Liefert und entfernt das erste Element eines Arrays

array_shift

(PHP 4, PHP 5, PHP 7, PHP 8)

array_shift — Liefert und entfernt das erste Element eines Arrays

Beschreibung

array_shift ( array &$array ) : mixed

array_shift() liefert den ersten Wert von array, verschiebt die anderen Werte hinunter, und verkürzt array um ein Element. Alle numerischen Schlüssel werden so modifiziert, dass bei null zu zählen begonnen wird. Strings als Schlüssel bleiben unverändert.

Hinweis: Diese Funktion setzt (reset()) nach Verwendung den array-Zeiger zurück.

Parameter-Liste

array

Das zu verarbeitende Array

Rückgabewerte

Gibt den ersten Wert zurück oder null, wenn array leer oder kein Array ist.

Beispiele

Beispiel #1 array_shift()-Beispiel

<?php
$stack = array("Orange", "Banane", "Apfel", "Himbeere");
$fruit = array_shift($stack);
print_r($stack);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Banane
    [1] => Apfel
    [2] => Himbeere
)

und Orange wird der Variable $fruit zugewiesen.

Siehe auch

  • array_unshift() - Fügt ein oder mehr Elemente am Anfang eines Arrays ein
  • array_push() - Fügt ein oder mehr Elemente an das Ende eines Arrays an
  • array_pop() - Liefert und entfernt das letzte Element eines Arrays


Extrahiert einen Ausschnitt eines Arrays

  • « array_shift
  • array_splice »
  • PHP Manual
  • Array Funktionen
  • Extrahiert einen Ausschnitt eines Arrays

array_slice

(PHP 4, PHP 5, PHP 7, PHP 8)

array_slice — Extrahiert einen Ausschnitt eines Arrays

Beschreibung

array_slice ( array $array , int $offset , int $length = null , bool $preserve_keys = false ) : array

array_slice() liefert die mittels offset und length spezifizierte Sequenz von Elementen des Arrays array.

Parameter-Liste

array

Das Eingabe-Array.

offset

Ist offset nicht negativ, beginnt die Sequenz bei diesem Offset in dem array.

Ist offset negativ, beginnt die Sequenz so viele Elemente vor dem Ende von array.

Hinweis:

Der offset Parameter gibt die Position im Array an, nicht den Schlüssel.

length

Ist length angegeben und positiv, enthält die Sequenz bis zu so viele Elemente.

Ist das Array kürzer als length, dann werden nur die verfügbaren Array-Elemente vorhanden sein.

Ist length angegeben und negativ, endet die Sequenz so viele Elemente vor dem Ende des Arrays.

Wenn nicht angegeben, enthält die Sequenz alle Elemente von offset bis zum Ende von array.

preserve_keys

Hinweis:

array_slice() setzt standardmäßig ganzzahlige Schlüssel des Arrays zurück und vergibt sie neu. Dieses Verhalten kann geändert werden, indem preserve_keys auf true gesetzt wird. Zeichenkettenschlüssel werden immer erhalten, unabhängig von diesem Parameter.

Rückgabewerte

Gibt den Ausschnitt zurück. Ist der gewählte offset größer als die Anzahl an Array-Elementen, wird ein leeres Array zurückgegeben.

Beispiele

Beispiel #1 array_slice()-Beispiele

<?php
$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2);      // liefert "c", "d" und "e"
$output = array_slice($input, -2, 1);  // liefert "d"
$output = array_slice($input, 0, 3);   // liefert "a", "b" und "c"

// beachten Sie die Unterschiede in den Schlüsseln
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Beispiel #2 array_slice() und ein mit 1 beginnendes Array

<?php
$input = array(1 => "a", "b", "c", "d", "e");
print_r(array_slice($input, 1, 2));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => b
    [1] => c
)

Beispiel #3 array_slice() und Array mit gemischten Schlüsseln

<?php
$ar = array('a'=>'Apfel', 'b'=>'Banane', '42'=>'Pfirsisch', 'd'=>'Orange');
print_r(array_slice($ar, 0, 3));
print_r(array_slice($ar, 0, 3, true));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [a] => Apfel
    [b] => Banane
    [0] => Pfirsisch
)
Array
(
    [a] => Apfel
    [b] => Banane
    [42] => Pfirsisch
)

Siehe auch

  • array_chunk() - Splittet ein Array in Teile auf
  • array_splice() - Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes
  • unset() - Löschen einer angegebenen Variablen


Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes

  • « array_slice
  • array_sum »
  • PHP Manual
  • Array Funktionen
  • Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes

array_splice

(PHP 4, PHP 5, PHP 7, PHP 8)

array_splice — Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes

Beschreibung

array_splice ( array &$input , int $offset , int $length = count($input) , mixed $replacement = array() ) : array

Entfernt die durch offset und length angegebenen Elemente aus dem Array input, und ersetzt diese durch die Elemente des Arrays replacement, wenn angegeben.

Hinweis:

Numerische Schlüssel in input werden nicht erhalten.

Hinweis: Wenn replacement kein Array ist, wird es in ein Array umgewandelt (dies entspricht (array) $parameter). Dies kann zu unerwartetem Verhalten führen, wenn replacement ein Objekt oder null ist.

Parameter-Liste

input

Das Eingabe-Array.

offset

Ist offset positiv, beginnt der zu entfernende Bereich bei diesem Offset vom Anfang des Arrays input.

Ist offset negativ, beginnt der zu entfernende Bereich so viele Elemente vor dem Ende des Arrays input.

length

Ist length nicht angegeben, wird alles von offset bis zum Ende des Arrays entfernt.

Ist length angegeben und positiv, werden so viele Elemente entfernt.

Ist length angegeben und negativ, so ist das Ende des entfernten Bereichs so viele Elemente vor dem Ende des Array.

Wenn length angegeben und 0 ist, werden keine Elemente entfernt.

Tipp

Um alles von offset bis zum Ende des Arrays zu entfernen, wenn replacement ebenfalls angegeben ist, verwenden Sie count($input) als length.

replacement

Ist das Array replacement angegeben, werden die entfernten Elemente durch die Elemente dieses Arrays ersetzt.

Sind offset und length so angegeben, dass nichts entfernt wird, werden die Elemente von replacement an der von offset spezifizierten Stelle eingefügt.

Hinweis:

Schlüssel werden bei der Ersetzung nicht erhalten.

Wenn replacement nur aus einem Element besteht, ist es nicht notwendig, array() oder eckige Klammern anzugeben, sofern das Element nicht selbst ein Array, ein Objekt oder null ist.

Rückgabewerte

Gibt ein Array zurück, das aus den ausgeschnittenen Elementen besteht.

Beispiele

Beispiel #1 array_splice()-Beispiele

<?php
$input = array("rot", "grün", "blau", "gelb");
array_splice($input, 2);
var_dump($input);

$input = array("rot", "grün", "blau", "gelb");
array_splice($input, 1, -1);
var_dump($input);

$input = array("rot", "grün", "blau", "gelb");
array_splice($input, 1, count($input), "orange");
var_dump($input);

$input = array("rot", "grün", "blau", "gelb");
array_splice($input, -1, 1, array("schwarz", "braun"));
var_dump($input);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  string(3) "rot"
  [1]=>
  string(5) "grün"
}
array(2) {
  [0]=>
  string(3) "rot"
  [1]=>
  string(4) "gelb"
}
array(2) {
  [0]=>
  string(3) "rot"
  [1]=>
  string(6) "orange"
}
array(5) {
  [0]=>
  string(3) "rot"
  [1]=>
  string(5) "grün"
  [2]=>
  string(4) "blau"
  [3]=>
  string(7) "schwarz"
  [4]=>
  string(5) "braun"
}

Beispiel #2 array_splice()-Beispiele zu gleichwertigen Anweisungen

Die folgenden Anweisungen sind gleichwertig:

<?php
// füge zwei Elemente an $input an
array_push($input, $x, $y);
array_splice($input, count($input), 0, array($x, $y));

// entferne das letzte Element von $input
array_pop($input);
array_splice($input, -1);

// entferne das erste Element von $input
array_shift($input);
array_splice($input, 0, 1);

// füge ein Element am Anfang von $input ein
array_unshift($input, $x, $y);
array_splice($input, 0, 0, array($x, $y));

// ersetze den Wert von $input am Index $x
$input[$x] = $y; // für Arrays, bei denen der Schlüssel dem Offset entspricht
array_splice($input, $x, 1, $y);
?>

Siehe auch

  • array_merge() - Führt zwei oder mehr Arrays zusammen
  • array_slice() - Extrahiert einen Ausschnitt eines Arrays
  • unset() - Löschen einer angegebenen Variablen


Liefert die Summe der Werte in einem Array

  • « array_splice
  • array_udiff_assoc »
  • PHP Manual
  • Array Funktionen
  • Liefert die Summe der Werte in einem Array

array_sum

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

array_sum — Liefert die Summe der Werte in einem Array

Beschreibung

array_sum ( array $array ) : number

array_sum() liefert die Summe der Werte eines Arrays.

Parameter-Liste

array

Das Eingabearray.

Rückgabewerte

Liefert die Summe der Elemente als Integer oder Float; 0 wenn das array leer ist.

Beispiele

Beispiel #1 array_sum()

<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";

$b = array("a"=>1.2, "b"=>2.3, "c"=>3.4);
echo "sum(b) = " . array_sum($b) . "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

sum(a) = 20
sum(b) = 6.9


Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion

  • « array_sum
  • array_udiff_uassoc »
  • PHP Manual
  • Array Funktionen
  • Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion

array_udiff_assoc

(PHP 5, PHP 7, PHP 8)

array_udiff_assoc — Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion

Beschreibung

array_udiff_assoc ( array $array1 , array $array2 , array $... = ? , callable $value_compare_func ) : array

Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion.

Hinweis: Bitte beachten Sie, dass diese Funktion nur eine Dimension eines n-dimensionalen Arrays überprüft. Natürlich können Sie tiefere Dimensionen prüfen, indem Sie array_udiff_assoc($array1[0], $array2[0], "data_compare_func"); verwenden.

Parameter-Liste

array1

Das erste Array.

array2

Das zweite Array.

value_compare_func

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int

Rückgabewerte

array_udiff_assoc() gibt ein array mit allen Werten von array1, welche in keinem der anderen Argumente enthalten sind, zurück. Beachten Sie, dass Schlüssel anders als von array_diff() und array_udiff() für den Vergleich herangezogen werden. Der Vergleich der Arrayinhalte wird von einer benutzerdefinierten Callbackfunktion durchgeführt. In dieser Hinsicht ist das Verhalten anders als jenes von array_diff_assoc(), welche eine eingebaute Vergleichsfunktion verwendet.

Beispiele

Beispiel #1 array_udiff_assoc() Beispiel

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    static function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}

$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

In unserem Beispiel sehen Sie, dass das "1" => new cr(4) Paar in beiden Arrays enthalten ist und daher nicht in der Ausgabe der Funktion auftaucht.

Siehe auch

  • array_diff() - Ermittelt die Unterschiede zwischen Arrays
  • array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
  • array_diff_uassoc() - Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
  • array_udiff() - Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
  • array_udiff_uassoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_uintersect() - Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion
  • array_uintersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
  • array_uintersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen


Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion

  • « array_udiff_assoc
  • array_udiff »
  • PHP Manual
  • Array Funktionen
  • Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion

array_udiff_uassoc

(PHP 5, PHP 7, PHP 8)

array_udiff_uassoc — Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion

Beschreibung

array_udiff_uassoc ( array $array1 , array $array2 , array $... = ? , callable $value_compare_func , callable $key_compare_func ) : array

Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion.

Beachten Sie, dass anders als bei array_diff() und array_udiff() Schlüssel für den Vergleich herangezogen werden.

Parameter-Liste

array1

Das erste Array.

array2

Das zweite Array.

value_compare_func

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
key_compare_func

Ebenso wird der Vergleich der Schlüssel (Indizes) von der benutzerdefinierten Callbackfunktion data_compare_func durchgeführt. In dieser Hinsicht ist das Verhalten anders als jenes von array_diff_assoc(), welches die Indizes mit einer eingebauten Vergleichsfunktion vergleicht.

Rückgabewerte

Gibt ein Array mit allen Werten von array1, welche in keinem der anderen Argumente enthalten sind, zurück.

Beispiele

Beispiel #1 array_udiff_uassoc() Beispiel

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    static function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }

    static function comp_func_key($a, $b)
    {
        if ($a === $b) return 0;
        return ($a > $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), array("cr", "comp_func_key"));
print_r($result);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

In unserem Beispiel sehen Sie, dass das "1" => new cr(4) Paar in beiden Arrays enthalten ist und daher nicht in der Ausgabe der Funktion auftaucht. Denken Sie daran, dass Sie zwei Callbackfunktionen angeben müssen.

Anmerkungen

Hinweis: Bitte beachten Sie, dass diese Funktion nur eine Dimension eines n-dimensionalen Arrays überprüft. Natürlich können Sie tiefere Dimensionen prüfen, indem Sie array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func"); verwenden.

Siehe auch

  • array_diff() - Ermittelt die Unterschiede zwischen Arrays
  • array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
  • array_udiff() - Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
  • array_udiff_assoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_uintersect() - Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion
  • array_uintersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
  • array_uintersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen


Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich

  • « array_udiff_uassoc
  • array_uintersect_assoc »
  • PHP Manual
  • Array Funktionen
  • Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich

array_udiff

(PHP 5, PHP 7, PHP 8)

array_udiff — Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich

Beschreibung

array_udiff ( array $array1 , array $array2 , array $ ... = ? , callable $value_compare_func ) : array

Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich. Dies ist anders als bei array_diff(), das eine interne Funktion zum Vergleichen der Daten verwendet.

Parameter-Liste

array1

Das erste Array.

array2

Das zweite array.

value_compare_func

Die Callback-Vergleichsfunktion.

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int

Rückgabewerte

Gibt ein Array zurück, das alle Werte von array1 enthält, die nicht in einem der anderen Argumente vorhanden sind.

Beispiele

Beispiel #1 array_udiff() Beispiel mit stdClass Objekten

<?php
// Die zu vergleichenden Arrays
$array1 = array(new stdclass, new stdclass,
                new stdclass, new stdclass,
               );

$array2 = array(
                new stdclass, new stdclass,
               );

// Setze einige Eigenschaften für jedes Objekt
$array1[0]->width = 11; $array1[0]->height = 3;
$array1[1]->width = 7;  $array1[1]->height = 1;
$array1[2]->width = 2;  $array1[2]->height = 9;
$array1[3]->width = 5;  $array1[3]->height = 7;

$array2[0]->width = 7;  $array2[0]->height = 5;
$array2[1]->width = 9;  $array2[1]->height = 2;

function compare_by_area($a, $b) {
    $areaA = $a->width * $a->height;
    $areaB = $b->width * $b->height;

    if ($areaA < $areaB) {
        return -1;
    } elseif ($areaA > $areaB) {
        return 1;
    } else {
        return 0;
    }
}

print_r(array_udiff($array1, $array2, 'compare_by_area'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => stdClass Object
        (
            [width] => 11
            [height] => 3
        )

    [1] => stdClass Object
        (
            [width] => 7
            [height] => 1
        )

)

Beispiel #2 array_udiff() Beispiel mit DateTime Objekten

<?php
class MyCalendar {
    public $free = array();
    public $booked = array();

    public function __construct($week = 'now') {
        $start = new DateTime($week);
        $start->modify('Monday this week midnight');
        $end = clone $start;
        $end->modify('Friday this week midnight');
        $interval = new DateInterval('P1D');
        foreach (new DatePeriod($start, $interval, $end) as $freeTime) {
            $this->free[] = $freeTime;
        }
    }

    public function bookAppointment(DateTime $date, $note) {
        $this->booked[] = array('date' => $date->modify('midnight'), 'note' => $note);
    }

    public function checkAvailability() {
        return array_udiff($this->free, $this->booked, array($this, 'customCompare'));
    }

    public function customCompare($free, $booked) {
        if (is_array($free)) $a = $free['date'];
        else $a = $free;
        if (is_array($booked)) $b = $booked['date'];
        else $b = $booked;
        if ($a == $b) {
            return 0;
        } elseif ($a > $b) {
            return 1;
        } else {
            return -1;
        }
    }
}

// Erzeuge einen Kalender für wöchentliche Termine
$myCalendar = new MyCalendar;

// Buche einige Termine für diese Woche
$myCalendar->bookAppointment(new DateTime('Monday this week'), "GoogleGuys Wohnung reinigen.");
$myCalendar->bookAppointment(new DateTime('Wednesday this week'), "Snowboard fahren gehen.");
$myCalendar->bookAppointment(new DateTime('Friday this week'), "Fehlerhaften Code beheben.");

// Prüfe die Verfügbarkeit von Tagen durch Vergleichen von $booked Daten mit $free Daten
echo "Ich bin an den folgenden Tagen dieser Woche verfügbar...\n\n";
foreach ($myCalendar->checkAvailability() as $free) {
    echo $free->format('l'), "\n";
}
echo "\n\n";
echo "Ich bin an den folgenden Tagen dieser Woche beschäftigt...\n\n";
foreach ($myCalendar->booked as $booked) {
    echo $booked['date']->format('l'), ": ", $booked['note'], "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ich bin an den folgenden Tagen dieser Woche verfügbar...

Tuesday
Thursday

Ich bin an den folgenden Tagen dieser Woche beschäftigt...

Monday: GoogleGuys Wohnung reinigen.
Wednesday: Snowboard fahren gehen.
Friday: Fehlerhaften Code beheben.

Anmerkungen

Hinweis: Bitte beachten Sie, dass diese Funktion nur eine Dimension eines n-dimensionalen Arrays überprüft. Natürlich können Sie tiefere Dimensionen prüfen, indem Sie array_udiff($array1[0], $array2[0], "data_compare_func"); verwenden.

Siehe auch

  • array_diff() - Ermittelt die Unterschiede zwischen Arrays
  • array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
  • array_diff_uassoc() - Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
  • array_udiff_assoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
  • array_udiff_uassoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_uintersect() - Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion
  • array_uintersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
  • array_uintersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen


Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion

  • « array_udiff
  • array_uintersect_uassoc »
  • PHP Manual
  • Array Funktionen
  • Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion

array_uintersect_assoc

(PHP 5, PHP 7, PHP 8)

array_uintersect_assoc — Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion

Beschreibung

array_uintersect_assoc ( array $array1 , array $array2 , array $... = ? , callable $value_compare_func ) : array

Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion.

Beachten Sie, dass anders als bei array_uintersect() die Schlüssel zum Vergleich herangezogen werden. Die Daten werden durch eine Callbackfunktion verglichen.

Parameter-Liste

array1

Das erste Array.

array2

Das zweite Array.

value_compare_func

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int

Rückgabewerte

Gibt ein Array mit allen Werten aus array1 zurück, die ebenfalls in allen anderen Argumenten enthalten sind.

Beispiele

Beispiel #1 array_uintersect_assoc() Beispiel

<?php
$array1 = array("a" => "grün", "b" => "braun", "c" => "blau", "rot");
$array2 = array("a" => "GRÜN", "B" => "braun", "gelb", "rot");

print_r(array_uintersect_assoc($array1, $array2, "strcasecmp"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [a] => grün
)

Siehe auch

  • array_uintersect() - Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_intersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion
  • array_uintersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen


Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen

  • « array_uintersect_assoc
  • array_uintersect »
  • PHP Manual
  • Array Funktionen
  • Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen

array_uintersect_uassoc

(PHP 5, PHP 7, PHP 8)

array_uintersect_uassoc — Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen

Beschreibung

array_uintersect_uassoc ( array $array1 , array $array2 , array $... = ? , callable $value_compare_func , callable $key_compare_func ) : array

Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen.

Parameter-Liste

array1

Das erste Array.

array2

Das zweite Array.

value_compare_func

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
key_compare_func

Callbackfunktion für den Schlüssel-Vergleich.

Rückgabewerte

Gibt ein Array mit allen Werten aus array1 zurück, die ebenfalls in allen anderen Argumenten enthalten sind.

Beispiele

Beispiel #1 array_uintersect_uassoc() Beispiel

<?php
$array1 = array("a" => "grün", "b" => "braun", "c" => "blau", "rot");
$array2 = array("a" => "GRÜN", "B" => "braun", "gelb", "rot");

print_r(array_uintersect_uassoc($array1, $array2, "strcasecmp", "strcasecmp"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [a] => grün
    [b] => braun
)

Siehe auch

  • array_uintersect() - Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_intersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion
  • array_uintersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion


Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion

  • « array_uintersect_uassoc
  • array_unique »
  • PHP Manual
  • Array Funktionen
  • Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion

array_uintersect

(PHP 5, PHP 7, PHP 8)

array_uintersect — Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion

Beschreibung

array_uintersect ( array $array1 , array $array2 , array $... = ? , callable $value_compare_func ) : array

Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion.

Parameter-Liste

array1

Das erste Array.

array2

Das zweite Array.

value_compare_func

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int

Rückgabewerte

Gibt ein Array mit allen Werten aus array1 zurück, die ebenfalls in allen anderen Argumenten enthalten sind.

Beispiele

Beispiel #1 array_uintersect() Beispiel

<?php
$array1 = array("a" => "grün", "b" => "braun", "c" => "blau", "rot");
$array2 = array("a" => "GRÜN", "B" => "braun", "gelb", "rot");

print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [a] => grün
    [b] => braun
    [0] => rot
)

Siehe auch

  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
  • array_uintersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
  • array_uintersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen


Entfernt doppelte Werte aus einem Array

  • « array_uintersect
  • array_unshift »
  • PHP Manual
  • Array Funktionen
  • Entfernt doppelte Werte aus einem Array

array_unique

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_unique — Entfernt doppelte Werte aus einem Array

Beschreibung

array_unique ( array $array , int $sort_flags = SORT_STRING ) : array

Erwartet ein array und gibt ein neues Array zurück, aus dem alle doppelten Einträge entfernt wurden.

Beachten Sie, dass Schlüssel bewahrt bleiben. Werden mehrere Elemente gemäß den angegebenen sort_flags als gleich interpretiert, dann werden Schlüssel und Wert des ersten gleichen Elements bewahrt.

Hinweis: Zwei Elemente werden nur dann als gleich angesehen, wenn (string) $elem1 === (string) $elem2, d.h. wenn die String-Repräsentation die gleiche ist, wird das erste Element verwendet.

Parameter-Liste

array

Das Eingabe-Array.

sort_flags

Der optionale zweite Parameter sort_flags kann mit den folgenden Werten genutzt werden, um das Sortierverhalten zu ändern:

Sorting type flags:

  • SORT_REGULAR - vergleicht die Einträge normal (keine Typänderung)
  • SORT_NUMERIC - vergleicht die Einträge numerisch
  • SORT_STRING - vergleicht die Einträge als Strings
  • SORT_LOCALE_STRING - vergleicht die Einträge als Strings, basierend auf der aktuellen Locale.

Rückgabewerte

Gibt das gefilterte Array zurück.

Changelog

Version | Beschreibung
7.2.0 | Ist sort_flags gleich SORT_STRING, wurde früher array kopiert, und doppelte Elemente darin entfernt (ohne das Array danach zu packen), aber nun wird ein neues Array durch Hinzufügen der einzigartigen Elemente aufgebaut. Dies kann unterschiedliche numerische Indexe ergeben.

Beispiele

Beispiel #1 array_unique()-Beispiel

<?php
$input = array("a" => "grün", "rot", "b" => "grün", "blau", "rot");
$result = array_unique($input);
print_r($result);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [a] => grün
    [0] => rot
    [1] => blau
)

Beispiel #2 array_unique() und Typen

<?php
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

Siehe auch

  • array_count_values() - Zählt die Werte eines Arrays

Anmerkungen

Hinweis: Beachten Sie, dass array_unique() nicht dazu gedacht ist, auf mehrdimensionalen Arrays zu arbeiten.


Fügt ein oder mehr Elemente am Anfang eines Arrays ein

  • « array_unique
  • array_values »
  • PHP Manual
  • Array Funktionen
  • Fügt ein oder mehr Elemente am Anfang eines Arrays ein

array_unshift

(PHP 4, PHP 5, PHP 7, PHP 8)

array_unshift — Fügt ein oder mehr Elemente am Anfang eines Arrays ein

Beschreibung

array_unshift ( array &$array , mixed $... = ? ) : int

array_unshift() fügt die übergebenen Elemente am Anfang von array ein. Beachten Sie, dass die Liste von Elementen als Ganzes eingefügt wird, sodass die eingefügten Elemente die selbe Reihenfolge haben. Die numerischen Schlüssel werden so modifiziert, dass bei 0 zu zählen begonnen wird, Strings als Schlüssel bleiben unverändert.

Parameter-Liste

array

Das Eingabe-Array.

...

Die einzufügenden Werte.

Rückgabewerte

Gibt die neue Anzahl der in array enthaltenen Elemente zurück.

Changelog

Version | Beschreibung
7.3.0 | Diese Funktion kann nun mit nur einem Parameter aufgerufen werden. Zuvor waren mindestens zwei Parameter erforderlich.

Beispiele

Beispiel #1 array_unshift() Beispiel

<?php
$queue = array("Orange", "Banane");
array_unshift($queue, "Apfel", "Himbeere");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => Apfel
    [1] => Himbeere
    [2] => Orange
    [3] => Banane
)

Siehe auch

  • array_shift() - Liefert und entfernt das erste Element eines Arrays
  • array_push() - Fügt ein oder mehr Elemente an das Ende eines Arrays an
  • array_pop() - Liefert und entfernt das letzte Element eines Arrays


Liefert alle Werte eines Arrays

  • « array_unshift
  • array_walk_recursive »
  • PHP Manual
  • Array Funktionen
  • Liefert alle Werte eines Arrays

array_values

(PHP 4, PHP 5, PHP 7, PHP 8)

array_values — Liefert alle Werte eines Arrays

Beschreibung

array_values ( array $array ) : array

array_values() liefert alle Werte des Arrays array mit einem numerischen Index.

Parameter-Liste

array

Das Array.

Rückgabewerte

Liefert ein indiziertes Array von Werten zurück.

Beispiele

Beispiel #1 array_values()-Beispiel

<?php
$array = array("größe" => "XL", "farbe" => "gold");
print_r(array_values($array));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => XL
    [1] => gold
)

Siehe auch

  • array_keys() - Liefert alle Schlüssel oder eine Teilmenge aller Schlüssel eines Arrays
  • array_combine() - Erzeugt ein Array, indem es ein Array für die Schlüssel und ein anderes für die Werte verwendet


Wendet eine Benutzerfunktion rekursiv auf jedes Element eines Arrays an

  • « array_values
  • array_walk »
  • PHP Manual
  • Array Funktionen
  • Wendet eine Benutzerfunktion rekursiv auf jedes Element eines Arrays an

array_walk_recursive

(PHP 5, PHP 7, PHP 8)

array_walk_recursive — Wendet eine Benutzerfunktion rekursiv auf jedes Element eines Arrays an

Beschreibung

array_walk_recursive ( array &$array , callable $callback , mixed $userdata = null ) : bool

Wendet die mittels callback angegebene Benutzerfunktion auf jedes Element von array an. Diese Funktion steigt tiefer in Arrays hinab.

Parameter-Liste

array

Das Eingabe-Array.

callback

Üblicherweise benötigt callback zwei Parameter. Der Wert von array wird als erster übergeben, und der Schlüssel/Index als zweites.

Hinweis:

Falls callback mit den tatsächlichen Werten des Arrays arbeiten muss, muss man den ersten Parameter von callback als Referenz übergeben. Dann werden alle Änderungen an den Elementen im ursprünglichen Array selbst vorgenommen.

userdata

Ist der optionale Parameter userdata angegeben, so wird er als dritter Parameter an die Funktion callback übergeben.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 array_walk_recursive() Beispiel

<?php
$sweet = array('a' => 'Apfel', 'b' => 'Banane');
$fruits = array('süß' => $sweet, 'sauer' => 'Zitrone');

function test_print($item, $key)
{
    echo "$key beinhaltet $item\n";
}

array_walk_recursive($fruits, 'test_print');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a beinhaltet Apfel
b beinhaltet Banane
sauer beinhaltet Zitrone

Sie werden bemerken, dass der Schlüssel 'süß' nicht angezeigt wird. Jeder Schlüssel, der ein array beinhaltet, wird nicht an die Funktion übergeben.

Siehe auch

  • array_walk() - Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an


Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an

  • « array_walk_recursive
  • array »
  • PHP Manual
  • Array Funktionen
  • Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an

array_walk

(PHP 4, PHP 5, PHP 7, PHP 8)

array_walk — Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an

Beschreibung

array_walk ( array &$array , callable $callback , mixed $userdata = null ) : bool

Wendet die mittels callback angegebene Benutzerfunktion auf jedes Element von array an.

array_walk() ist nicht von dem internen Arrayzeiger von array betroffen. array_walk() geht ungeachtet der Zeigerposition das gesamte Array durch.

Parameter-Liste

array

Das Eingabe-Array.

callback

Typischerweise akzeptiert callback zwei Parameter. Der Wert von array wird als erster übergeben, und der Schlüssel/Index als zweiter.

Hinweis:

Wenn callback direkt mit den Werten des Arrays arbeiten soll, spezifizieren Sie den ersten Parameter von callback als Referenz. Dann werden alle Änderungen an diesen Elementen direkt in dem originalen Array durchgeführt.

Hinweis:

Viele interne Funktionen (wie z.B. strtolower()) erzeugen eine Warnung, wenn mehr als die erwartete Anzahl von Parametern übergeben wird; sie sind auch nicht direkt nutzbar als callback.

Nur die Werte von array können geändert werden. Die Struktur des Arrays kann nicht geändert werden, d.h. dass der Programmierer keine Elemente hinzufügen oder löschen kann und dass die Reihenfolge der Elemente nicht geändert werden kann. Falls die Callback-Funktion diese Anforderung nicht beachtet, ist der Verhalten dieser Funktion nicht definiert und auch nicht vorhersagbar.

userdata

Wenn der optionale Parameter userdata angegeben ist, wird er als dritter Parameter dem Callback callback übergeben.

Rückgabewerte

Gibt true zurück.

Fehler/Exceptions

Von PHP 7.1.0 an wird ein ArgumentCountError ausgelöst, wenn die callback-Funktion mehr als 2 Parameter benötigt (der Wert und Schlüssel des Array-Elements). Zuvor wurde, falls die callback-Funktion mehr als 2 Parameter benötigte, bei jedem Aufruf von callback durch array_walk() eine Fehlermeldung der Stufe E_WARNING generiert.

Beispiele

Beispiel #1 array_walk()-Beispiel

<?php
$fruits = array("d" => "Zitrone", "a" => "Orange", "b" => "Banane", "c" => "Apfel");

function test_alter(&$item1, $key, $prefix)
{
    $item1 = "$prefix: $item1";
}

function test_print($item2, $key)
{
    echo "$key. $item2<br>\n";
}

echo "Vorher ...:\n";
array_walk($fruits, 'test_print');

array_walk($fruits, 'test_alter', 'Frucht');
echo "... und nachher:\n";

array_walk($fruits, 'test_print');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Vorher ...:
d. Zitrone
a. Orange
b. Banane
c. Apfel
... und nachher:
d. Frucht: Zitrone
a. Frucht: Orange
b. Frucht: Banane
c. Frucht: Apfel

Siehe auch

  • array_walk_recursive() - Wendet eine Benutzerfunktion rekursiv auf jedes Element eines Arrays an
  • iterator_apply() - Call a function for every element in an iterator
  • list() - Weist Variablen zu, als wären sie ein Array
  • each() - Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor
  • call_user_func_array() - Call a callback with an array of parameters
  • array_map() - Wendet eine Callback-Funktion auf die Elemente von Arrays an
  • foreach


Erstellt ein Array

  • « array_walk
  • arsort »
  • PHP Manual
  • Array Funktionen
  • Erstellt ein Array

array

(PHP 4, PHP 5, PHP 7, PHP 8)

array — Erstellt ein Array

Beschreibung

array ( mixed $... = ? ) : array

Erstellt ein Array. Um mehr darüber zu erfahren, was ein Array ist, lesen Sie den Abschnitt zum Array-Typ.

Parameter-Liste

...

Die Syntax "Index => Werte", durch Kommas getrennt, definiert Index und Werte. Index kann vom Typ String oder numerisch sein. Wird der Index weggelassen, erstellt die Funktion automatisch einen numerischen Index, der bei 0 beginnt. Ist der Index als Integer-Wert angegeben, wird der nächste generierte Index der größte Integer Index + 1. Beachten Sie, dass wenn zwei identische Indexe definiert sind, der letzte den ersten überschreibt.

Ein hinter dem letzten definierten Arrayeintrag angehängtes Komma ist zwar unüblich, aber dennoch gültige Syntax.

Rückgabewerte

Gibt ein den Parametern entsprechendes Array zurück. Mit dem => Operator können die Parameter indiziert werden. Um mehr darüber zu erfahren, was ein Array ist, lesen Sie den Abschnitt zum Array-Typ.

Beispiele

Das folgende Beispiel zeigt wie man ein zweidimensionales Array erstellt, wie man Schlüssel für assoziative Arrays festlegt, und wie man numerische Indizes in normalen Arrays überspringt und fortsetzt.

Beispiel #1 array()-Beispiel

<?php
$fruits = array (
    "fruits"  => array("a" => "Orange", "b" => "Banane", "c" => "Apfel"),
    "numbers" => array(1, 2, 3, 4, 5, 6),
    "holes"   => array("erstes", 5 => "zweites", "drittes")
);
?>

Beispiel #2 Automatischer Index mit array()

<?php
$array = array(1, 1, 1, 1,  1, 8 => 1,  4 => 1, 19, 3 => 13);
print_r($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
)

Beachten Sie, dass Index '3' doppelt definiert ist, und den letzten definierten Wert 13 behält. Index 4 wurde nach dem Index 8 definiert, und der nächste generierte Index (Wert 19) ist 9, da der größte Index 8 war.

Dieses Beispiel erstellt ein auf dem Index 1 basierendes Array.

Beispiel #3 1-basierter Index mit array()

<?php
$erstesquartal = array(1 => 'Januar', 'Februar', 'März');
print_r($erstesquartal);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [1] => Januar
    [2] => Februar
    [3] => März
)

Man kann, ebenso wie in Perl, einen Wert des Arrays innerhalb doppelter Anführungszeichen ansprechen. Jedoch muss man in PHP das Array in geschweifte Klammern einschließen.

Beispiel #4 Auf ein Array innerhalb von doppelten Anführungszeichen zugreifen

<?php

$foo = array('bar' => 'baz');
echo "Hallo {$foo['bar']}!"; // Hallo baz!

?>

Anmerkungen

Hinweis:

array() ist ein Sprachkonstrukt, mit dem man Arrays vorgeben kann und keine reguläre Funktion.

Siehe auch

  • array_pad() - Füllt ein Array bis auf die angegebene Länge mit einem Wert auf
  • list() - Weist Variablen zu, als wären sie ein Array
  • count() - Zählt alle Elemente eines Arrays oder etwas in einem Objekt
  • range() - Erstellt ein Array mit einem Bereich von Elementen
  • foreach
  • The array type


Sortiert ein Array in umgekehrter Reihenfolge und erhält die Index-Assoziation

  • « array
  • asort »
  • PHP Manual
  • Array Funktionen
  • Sortiert ein Array in umgekehrter Reihenfolge und erhält die Index-Assoziation

arsort

(PHP 4, PHP 5, PHP 7, PHP 8)

arsort — Sortiert ein Array in umgekehrter Reihenfolge und erhält die Index-Assoziation

Beschreibung

arsort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool

Diese Funktion sortiert ein Array so, dass der Zusammenhang zwischen den Indizes und den entsprechenden Elementen des Arrays erhalten bleibt.

Dies wird hauptsächlich zur Sortierung assoziativer Arrays verwendet, bei denen die aktuelle Reihenfolge der Elemente bedeutend ist.

Hinweis:

Wenn zwei Mitglieder als identisch verglichen werden, ist die relative Sortierung im sortierten Array nicht definiert.

Parameter-Liste

array

Das Eingabe-Array.

sort_flags

Sie können das Verhalten der Sortierung mittels dem optionalen Parameter sort_flags beeinflussen, für Details siehe sort().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 arsort()-Beispiel

<?php
$fruits = array("d" => "Zitrone", "a" => "Orange", "b" => "Banane", "c" => "Apfel");
arsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

d = Zitrone
a = Orange
b = Banane
c = Apfel

Die Früchte wurden in umgekehrter alphabetischer Reihenfolge sortiert und die Zuordnung zwischen Index und Element blieb erhalten.

Siehe auch

  • asort() - Sortiert ein Array und erhält die Index-Assoziation
  • Den Vergleich von Arraysortierungsfunktionen


Sortiert ein Array und erhält die Index-Assoziation

  • « arsort
  • compact »
  • PHP Manual
  • Array Funktionen
  • Sortiert ein Array und erhält die Index-Assoziation

asort

(PHP 4, PHP 5, PHP 7, PHP 8)

asort — Sortiert ein Array und erhält die Index-Assoziation

Beschreibung

asort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool

Diese Funktion sortiert ein Array so, dass der Zusammenhang zwischen den Indizes und den entsprechenden Elementen des Arrays erhalten bleibt. Dies wird hauptsächlich zur Sortierung assoziativer Arrays verwendet, bei denen die aktuelle Reihenfolge der Elemente bedeutend ist.

Hinweis:

Wenn zwei Mitglieder als identisch verglichen werden, ist die relative Sortierung im sortierten Array nicht definiert.

Parameter-Liste

array

Das Eingabe-Array.

sort_flags

Sie können das Verhalten der Sortierung mittels dem optionalen Parameter sort_flags beeinflussen, für Details siehe sort().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 asort()-Beispiel

<?php
$fruits = array("d" => "Zitrone", "a" => "Orange", "b" => "Banane", "c" => "Apfel");
asort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

c = Apfel
b = Banane
a = Orange
d = Zitrone

Die Früchte wurden alphabetisch sortiert und die Zuordnung zwischen Index und Element blieb erhalten.

Siehe auch

  • arsort() - Sortiert ein Array in umgekehrter Reihenfolge und erhält die Index-Assoziation
  • Den Vergleich von Arraysortierungsfunktionen


Erstellt ein Array mit Variablen und deren Werten

  • « asort
  • count »
  • PHP Manual
  • Array Funktionen
  • Erstellt ein Array mit Variablen und deren Werten

compact

(PHP 4, PHP 5, PHP 7, PHP 8)

compact — Erstellt ein Array mit Variablen und deren Werten

Beschreibung

compact ( mixed $varname1 , mixed $... = ? ) : array

Erstellt ein Array mit Variablen und deren Werten.

Für alle diese sucht compact() nach einer Variablen in der aktuellen Symboltabelle, und fügt diese dem zurückzugebenden Array hinzu, wobei der Variablenname als Schlüssel, und der Inhalt der Variablen als Wert gespeichert wird. Kurz, diese Funktion tut das Gegenteil von extract().

Hinweis:

Vor PHP 7.3 wurden Strings, welche nicht gesetzt sind, stillschweigend ignoriert.

Parameter-Liste

varname1

compact() übernimmt eine variable Anzahl von Parametern. Jeder Parameter kann entweder ein String mit einem Variablennamen, oder ein Array mit Variablennamen sein. Dieses Array kann auch andere Arrays mit Variablennamen enthalten; compact() behandelt sie rekursiv.

Rückgabewerte

Gibt ein Array mit allen Variablen zurück.

Fehler/Exceptions

compact() erzeugt eine Fehlermeldung der Stufe E_NOTICE, wenn sich ein gegebener String auf eine nicht gesetzte Variable bezieht.

Changelog

Version | Beschreibung
7.3.0 | compact() erzeugt nun eine Fehlermeldung der Stufe E_NOTICE, wenn sich ein gegebener String auf eine nicht gesetzte Variable bezieht. Zuvor wurden solche Strings stillschweigend ausgelassen.

Beispiele

Beispiel #1 compact() Beispiel

<?php
$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", $location_vars);
print_r($result);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

Anmerkungen

Hinweis: Achtung

Weil variable Variablen in Funktionen nicht mit PHPs superglobalen Arrays verwendet werden dürfen, können die superglobalen Arrays nicht an compact() übergeben werden.

Siehe auch

  • extract() - Importiert Variablen eines Arrays in die aktuelle Symboltabelle


Zählt alle Elemente eines Arrays oder etwas in einem Objekt

  • « compact
  • current »
  • PHP Manual
  • Array Funktionen
  • Zählt alle Elemente eines Arrays oder etwas in einem Objekt

count

(PHP 4, PHP 5, PHP 7, PHP 8)

count — Zählt alle Elemente eines Arrays oder etwas in einem Objekt

Beschreibung

count ( mixed $array_or_countable , int $mode = COUNT_NORMAL ) : int

Zählt alle Elemente eines Arrays oder etwas in einem Objekt.

Wenn Sie die SPL installiert haben, können Sie in Objekten eine count()-Funktion nutzen, indem Sie das Interface Countable implementieren. Das Interface hat exakt eine Methode, nämlich Countable::count(), die den Rückgabewert der Funktion count() zurückliefert.

In der Sektion Arrays finden Sie eine detaillierte Erklärung, wie Arrays in PHP implementiert sind und wie sie benutzt werden.

Parameter-Liste

array_or_countable

Ein Array oder Countable Objekt.

mode

Wenn der optionale Parameter mode auf COUNT_RECURSIVE (oder 1) gesetzt ist, wird count() rekursiv durch das Array zählen. Dies kann besonders nützlich sein, um alle Elemente eines mehrdimensionalen Arrays zu zählen.

Achtung

count() kann Rekursion erkennen, um eine Endlosschleife zu vermeiden, wird aber jedes Mal, wenn es das tut, ein E_WARNING erzeugen (im Fall, dass das Array sich selbst mehr als einmal enthält), und gibt dann eine höhere Anzahl zurück als möglicherweise erwartet.

Rückgabewerte

Liefert die Anzahl von Elementen in array_or_countable. Ist der Parameter weder ein Array noch ein Objekt mit implementiertem Countable Interface, wird 1 zurückgegeben. Es besteht eine Ausnahme, wenn array_or_countable null ist, wird 0 zurückgegeben.

Beispiele

Beispiel #1 count()-Beispiel

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));

$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));

var_dump(count(null));

var_dump(count(false));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(3)
int(3)

Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12 // as of PHP 7.2
int(0)

Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14 // as of PHP 7.2
int(1)

Beispiel #2 Rekursives count()-Beispiel

<?php
$food = array('Obst' => array('Orange', 'Banane', 'Apfel'),
              'Gemüse' => array('Karotte', 'Kohl', 'Erbse'));

// rekursiv zählen
echo count($food, COUNT_RECURSIVE); // gibt 8 aus

// normales zählen
echo count($food); // gibt 2 aus

?>

Changelog

Version | Beschreibung
7.2.0 | count() erzeugt nun eine Warnung für ungültige zählbare Typen, die an den array_or_countable-Parameter übergeben wurden.

Siehe auch

  • is_array() - Prüft, ob die Variable ein Array ist
  • isset() - Prüft, ob eine Variable deklariert ist und sich von null unterscheidet
  • empty() - Prüft, ob eine Variable einen Wert enthält
  • strlen() - Ermitteln der String-Länge
  • is_countable() - Verify that the contents of a variable is a countable value


Liefert das aktuelle Element eines Arrays

  • « count
  • each »
  • PHP Manual
  • Array Funktionen
  • Liefert das aktuelle Element eines Arrays

current

(PHP 4, PHP 5, PHP 7, PHP 8)

current — Liefert das aktuelle Element eines Arrays

Beschreibung

current ( array $array ) : mixed

Jedes Array hat einen internen Zeiger auf sein "aktuelles" Element, welcher auf das erste in das Array eingefügte Element initialisiert wird.

Parameter-Liste

array

Das Array.

Rückgabewerte

Die Funktion current() liefert den Wert des Array Elements, auf das gerade vom internen Zeiger gezeigt wird. Sie bewegt den Zeiger in keiner Weise. Zeigt der interne Zeiger hinter das Ende der Elementenliste, gibt current() false zurück.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Changelog

Version | Beschreibung
7.0.0 | array wird nun immer als Wert übergeben. Vor dieser Version wurde es, wenn möglich, als Referenz übergeben, und andernfalls als Wert.

Beispiele

Beispiel #1 Beispiel für die Verwendung von current() und anderen

<?php
$transport = array('zu Fuß', 'Fahrrad', 'Auto', 'Flugzeug');
$mode = current($transport); // $mode = 'zu Fuß';
$mode = next($transport);    // $mode = 'Fahrrad';
$mode = next($transport);    // $mode = 'Auto';
$mode = prev($transport);    // $mode = 'Fahrrad';
$mode = end($transport);     // $mode = 'Flugzeug';

$arr = array();
var_dump(current($arr)); // bool(false)

$arr = array(array());
var_dump(current($arr)); // array(0) { }
?>

Anmerkungen

Hinweis: Das Ergebnis des Aufrufs von current() auf ein leeres Array und auf ein Array, dessen interner Zeiger hinter das Ende der Elemente zeigt, sind nicht unterscheidbar von einem boolean false Element. Um ein Array, das false Elemente enthalten kann, korrekt zu Durchlaufen, siehe die Funktion foreach(). Um dennoch current() zu verwenden, und korrekt zu prüfen, ob der Wert tatsächlich ein Element des Arrays ist, sollte überprüft werden, ob der key() des current() Elements sich strikt von null unterscheidet.

Siehe auch

  • end() - Positioniert den internen Zeiger eines Arrays auf dessen letztes Element
  • key() - Liefert einen Schlüssel eines Arrays
  • each() - Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor
  • prev() - Setzt den internen Zeiger eines Arrays um ein Element zurück
  • reset() - Setzt den internen Zeiger eines Arrays auf sein erstes Element
  • next() - Rückt den internen Zeiger eines Arrays vor


Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor

  • « current
  • end »
  • PHP Manual
  • Array Funktionen
  • Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor

each

(PHP 4, PHP 5, PHP 7)

each — Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor

Warnung

Diese Funktion ist seit PHP 7.2.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

each ( array &$array ) : array

Liefert das aktuelle Schlüssel-Wert-Paare des Arrays array, und erhöht den Arrayzeiger.

Nachdem each() ausgeführt wurde, bleibt der Arrayzeiger beim nächsten Element des Arrays, oder wenn am Ende des Arrays angelangt, nach dem letzten Element. Sie müssen reset() verwenden, wenn Sie das Array erneut mittels each durchgehen wollen.

Parameter-Liste

array

Das Eingabe-Array.

Rückgabewerte

Gibt das aktuelle Schlüssel-Wert-Paar aus dem Array array zurück. Dieses Paar wird als Array mit vier Elementen zurückgegeben, und zwar mit den Schlüsseln 0, 1, key, und value. Die Elemente 0 und key enthalten den Namen des Schlüssels, 1 und value den Wert.

Zeigt der interne Zeiger hinter das Ende der Array-Inhalte, gibt each() false zurück.

Beispiele

Beispiel #1 each()-Beispiele

<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>

$bar enthält nun die folgenden Schlüssel-Wert-Paare:

Array
(
    [1] => bob
    [value] => bob
    [0] => 0
    [key] => 0
)

<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>

$bar enthält nun die folgenden Schlüssel-Wert-Paare:

Array
(
    [1] => Bob
    [value] => Bob
    [0] => Robert
    [key] => Robert
)

each() wird typischerweise in Verbindung mit list() verwendet, um ein Array durchzugehen:

Beispiel #2 Durchgehen eines Arrays mit each()

<?php
$fruit = array('a' => 'Apfel', 'b' => 'Banane', 'c' => 'Preiselbeere');

reset($fruit);
while (list($key, $val) = each($fruit)) {
    echo "$key => $val\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a => Apfel
b => Banane
c => Preiselbeere

Achtung

Da die Zuweisung eines Arrays zu einer anderen Variable den originalen Arrayzeiger zurücksetzt, würde unser obiges Beispiel in eine Endlosschleife geraten, hätten wir $fruit innerhalb der Schleife einer anderen Variable zugeordnet.

Warnung

each() akzeptiert ebenfalls Objekte, liefert aber eventuell unerwartete Ergebnisse zurück. Es wird daher nicht empfohlen, über Objekteigenschaften mit each() zu iterieren.

Siehe auch

  • key() - Liefert einen Schlüssel eines Arrays
  • list() - Weist Variablen zu, als wären sie ein Array
  • current() - Liefert das aktuelle Element eines Arrays
  • reset() - Setzt den internen Zeiger eines Arrays auf sein erstes Element
  • next() - Rückt den internen Zeiger eines Arrays vor
  • prev() - Setzt den internen Zeiger eines Arrays um ein Element zurück
  • foreach
  • Objektiteration


Positioniert den internen Zeiger eines Arrays auf dessen letztes Element

  • « each
  • extract »
  • PHP Manual
  • Array Funktionen
  • Positioniert den internen Zeiger eines Arrays auf dessen letztes Element

end

(PHP 4, PHP 5, PHP 7, PHP 8)

end — Positioniert den internen Zeiger eines Arrays auf dessen letztes Element

Beschreibung

end ( array &$array ) : mixed

end() rückt den internen Zeiger von array bis zum letzten Element vor, und gibt dessen Wert zurück.

Parameter-Liste

array

Das Array. Das Array wird per Referenz übergeben, weil es von der Funktion bearbeitet wird. Das bedeutet, dass der Funktion eine echte Variable übergeben werden muss und nicht beispielsweise der Rückgabewert einer Funktion.

Rückgabewerte

Gibt den Wert des letzten Arrayelements zurück oder false bei einem leeren Array.

Beispiele

Beispiel #1 end() example

<?php

$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry

?>

Siehe auch

  • current() - Liefert das aktuelle Element eines Arrays
  • each() - Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor
  • prev() - Setzt den internen Zeiger eines Arrays um ein Element zurück
  • reset() - Setzt den internen Zeiger eines Arrays auf sein erstes Element
  • next() - Rückt den internen Zeiger eines Arrays vor
  • array_key_last() - Gets the last key of an array


Importiert Variablen eines Arrays in die aktuelle Symboltabelle

  • « end
  • in_array »
  • PHP Manual
  • Array Funktionen
  • Importiert Variablen eines Arrays in die aktuelle Symboltabelle

extract

(PHP 4, PHP 5, PHP 7, PHP 8)

extract — Importiert Variablen eines Arrays in die aktuelle Symboltabelle

Beschreibung

extract ( array &$array , int $flags = EXTR_OVERWRITE , string $prefix = "" ) : int

Diese Funktion wird verwendet, um Variablen eines Arrays in die aktuelle Symboltabelle zu importieren.

Jeder Schlüssel wird geprüft, ob er einen gültigen Variablennamen ergibt und ob es Kollisionen mit existierenden Variablen in der Symboltabelle gibt.

Warnung

Verwenden Sie extract() nicht für nicht vertrauenswürdige Daten wie Benutzereingaben (z.B. $_GET, $_FILES).

Parameter-Liste

array

Ein assoziatives Array. Die Funktion behandelt Schlüssel als Variablennamen und Werte als Variablenwerte. Für jedes Paar Schlüssel/Wert wird - abhängig von den Parametern flags und prefix - eine Variable in der aktuellen Symboltabelle eingetragen.

Sie müssen ein assoziatives Array verwenden, da ein numerisch indiziertes Array zu keinem Ergebnis führt, außer Sie verwenden EXTR_PREFIX_ALL oder EXTR_PREFIX_INVALID.

flags

Die Art, wie ungültige/numerische Schlüssel und Kollisionen behandelt werden, wird durch flags bestimmt. Die folgenden Werte sind erlaubt:

EXTR_OVERWRITE
Im Falle einer Kollision wird die existierende Variable überschrieben.
EXTR_SKIP
Im Falle einer Kollision wird die existierende Variable nicht überschrieben.
EXTR_PREFIX_SAME
Im Falle einer Kollision wird dem Variablennamen prefix vorangestellt.
EXTR_PREFIX_ALL
Allen Variablennamen wird prefix vorangestellt.
EXTR_PREFIX_INVALID
Nur ungültigen/numerischen Variablennamen wird prefix vorangestellt.
EXTR_IF_EXISTS
Überschreibt die Variable nur, wenn sie bereits in der aktuellen Symboltabelle existiert, sonst geschieht nichts. Dies ist dann hilfreich, wenn Sie eine Liste mit gültigen Variablen definieren, und dann z.B. nur jene Variablen extrahieren, welche Sie aus $_REQUEST definiert haben.
EXTR_PREFIX_IF_EXISTS
Erstellt nur Variablennamen mit Präfix, wenn die Version ohne Präfix der selben Variable in der aktuellen Symboltabelle existiert.
EXTR_REFS
Extrahiert Variablen als Referenzen. Das heißt, dass die Werte der importierten Variablen immer noch die Werte des Parameters array referenzieren. Sie können dieses Flag alleine oder auch in Kombination mit einem anderen Flag verwenden, indem Sie die flags mit OR verknüpfen.

Ist flags nicht angegeben, so wird EXTR_OVERWRITE angenommen.

prefix

Beachten Sie, dass prefix nur dann nötig ist, wenn flags EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID oder EXTR_PREFIX_IF_EXISTS ist. Ist das Resultat trotz Präfix kein gültiger Variablenname, wird es nicht in die Symboltabelle importiert. Präfixe werden automatisch mit einem Unterstrich vom Schlüssel des Arrays getrennt.

Rückgabewerte

extract() gibt die Anzahl der erfolgreich in die Symboltabelle importierten Variablen zurück.

Beispiele

Beispiel #1 extract()-Beispiel

Eine mögliche Verwendung für extract() ist, Variablen in die Symboltabelle zu importieren, die in einem von wddx_deserialize() zurückgegebenen assoziativen Array enthalten sind.

<?php

/* Annahme: $var_array ist ein von wddx_deserialize
   zurückgegebenes Array */

$groesse = "groß";
$var_array = array("farbe"   => "blau",
                   "groesse" => "mittel",
                   "form"    => "Kugel");
extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$farbe, $groesse, $form, $wddx_groesse\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

blau, groß, Kugel, mittel

$groesse wurde nicht überschrieben, da wir EXTR_PREFIX_SAME angegeben haben. Das führte dazu, dass $wddx_groesse erstellt wurde. Mit der Angabe EXTR_SKIP wäre $wddx_groesse nicht erstellt worden. EXTR_OVERWRITE hätte $groesse mit dem Wert "mittel" überschrieben, und EXTR_PREFIX_ALL hätte die neuen Variablen $wddx_farbe, $wddx_groesse, und $wddx_form erstellt.

Anmerkungen

Warnung

Verwenden Sie extract() nicht für nicht vertrauenswürdige Daten wie Benutzereingaben (d.h. $_GET, $_FILES, ...). Wenn Sie das tun, stellen Sie sicher, dass Sie einen der nicht überschreibenden flags-Werte wie z.B. EXTR_SKIP verwenden und beachten Sie, dass Sie die Daten in der selben Reihenfolge extrahieren müssen, die in variables_order in der php.ini angegeben wurde.

Siehe auch

  • compact() - Erstellt ein Array mit Variablen und deren Werten
  • list() - Weist Variablen zu, als wären sie ein Array


Prüft, ob ein Wert in einem Array existiert

  • « extract
  • key_exists »
  • PHP Manual
  • Array Funktionen
  • Prüft, ob ein Wert in einem Array existiert

in_array

(PHP 4, PHP 5, PHP 7, PHP 8)

in_array — Prüft, ob ein Wert in einem Array existiert

Beschreibung

in_array ( mixed $needle , array $haystack , bool $strict = false ) : bool

Diese Funktion sucht nach needle in haystack. Wenn strict gesetzt ist, wird dabei auch der Typ des Elements beachtet.

Parameter-Liste

needle

Der gesuchte Wert.

Hinweis:

Ist needle ein String, so wird bei der Suche Groß- und Kleinschreibung beachtet.

haystack

Das zu durchsuchende Array.

strict

Wenn der dritte Parameter auf true gesetzt wird, vergleicht in_array() nicht nur den Wert sondern auch den Typ des gesuchten Wertes needle mit den Elementen des Arrays.

Rückgabewerte

Gibt true zurück wenn needle im Array gefunden wird, sonst false.

Beispiele

Beispiel #1 in_array() Beispiel

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Irix enthalten";
}
if (in_array("mac", $os)) {
    echo "mac enthalten";
}
?>

Der zweite Vergleich schlägt fehl, da in_array() Groß- und Kleinschreibung unterscheidet, die Ausgabe sieht daher so aus:

Irix enthalten

Beispiel #2 in_array() Beispiel mit 'strict'

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {
    echo "'12.4' bei strenger Prüfung gefunden\n";
}

if (in_array(1.13, $a, true)) {
    echo "1.13 Bei strenger Prüfung gefunden\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1.13 bei strenger Prüfung gefunden

Beispiel #3 in_array() mit Array als Suchwert

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
    echo "'ph' gefunden\n";
}

if (in_array(array('f', 'i'), $a)) {
    echo "'fi' gefunden\n";
}

if (in_array('o', $a)) {
    echo "'o' gefunden\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

  'ph' gefunden
  'o' gefunden

Siehe auch

  • array_search() - Durchsucht ein Array nach einem Wert und liefert bei Erfolg den zugehörigen Schlüssel
  • isset() - Prüft, ob eine Variable deklariert ist und sich von null unterscheidet
  • array_key_exists() - Prüft, ob ein Schlüssel in einem Array existiert


Alias von array_key_exists

  • « in_array
  • key »
  • PHP Manual
  • Array Funktionen
  • Alias von array_key_exists

key_exists

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

key_exists — Alias von array_key_exists()

Beschreibung

Diese Funktion ist ein Alias für: array_key_exists().


Liefert einen Schlüssel eines Arrays

  • « key_exists
  • krsort »
  • PHP Manual
  • Array Funktionen
  • Liefert einen Schlüssel eines Arrays

key

(PHP 4, PHP 5, PHP 7, PHP 8)

key — Liefert einen Schlüssel eines Arrays

Beschreibung

key ( array $array ) : mixed

key() liefert das Index Element der aktuellen Position im Array.

Parameter-Liste

array

Das Array.

Rückgabewerte

Die key() Funktion gibt einfach den Schlüssel des Arrayelements zurück, auf das momentan durch den internen Zeiger gezeigt wird. Sie bewegt den Zeiger in keiner Weise. Zeigt der interne Zeiger über das Ende der Elementliste hinaus oder ist das Array leer, gibt key() null zurück.

Changelog

Version | Beschreibung
7.0.0 | array wird nun immer als Wert übergeben. Vor dieser Version wurde es, wenn möglich, als Referenz übergeben, und andernfalls als Wert.

Beispiele

Beispiel #1 key() Beispiel

<?php
$array = array(
    'Frucht1' => 'Apfel',
    'Frucht2' => 'Orange',
    'Frucht3' => 'Traube',
    'Frucht4' => 'Apfel',
    'Frucht5' => 'Apfel');

// Diese Schleife gibt alle Schlüssel des assoziativen
// Arrays aus, deren Wert "Apfel" ist.
while ($fruit_name = current($array)) {
    if ($fruit_name == 'Apfel') {
        echo key($array).'<br />';
    }
    next($array);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Frucht1<br />
Frucht4<br />
Frucht5<br />

Siehe auch

  • current() - Liefert das aktuelle Element eines Arrays
  • next() - Rückt den internen Zeiger eines Arrays vor
  • foreach


Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge

  • « key
  • ksort »
  • PHP Manual
  • Array Funktionen
  • Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge

krsort

(PHP 4, PHP 5, PHP 7, PHP 8)

krsort — Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge

Beschreibung

krsort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool

Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge, wobei die Zuordnungen zwischen Schlüssel und Wert erhalten bleiben. Dies ist hauptsächlich bei assoziativen Arrays hilfreich.

Parameter-Liste

array

Das Eingabe-Array.

sort_flags

Sie können das Verhalten der Sortierung mittels dem optionalen Parameter sort_flags beeinflussen, für Details siehe sort().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 krsort()-Beispiel

<?php
$fruits = array("d" => "Zitrone", "a" => "Orange", "b" => "Banane", "c" => "Apfel");
krsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

d = Zitrone
c = Apfel
b = Banane
a = Orange

Siehe auch

  • arsort() - Sortiert ein Array in umgekehrter Reihenfolge und erhält die Index-Assoziation
  • ksort() - Sortiert ein Array nach Schlüsseln
  • Den Vergleich von Arraysortierungsfunktionen


Sortiert ein Array nach Schlüsseln

  • « krsort
  • list »
  • PHP Manual
  • Array Funktionen
  • Sortiert ein Array nach Schlüsseln

ksort

(PHP 4, PHP 5, PHP 7, PHP 8)

ksort — Sortiert ein Array nach Schlüsseln

Beschreibung

ksort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool

Sortiert ein Array nach Schlüsseln, wobei die Zuordnungen zwischen Schlüssel und Wert erhalten bleiben. Dies ist hauptsächlich bei assoziativen Arrays hilfreich.

Parameter-Liste

array

Das Eingabe-Array.

sort_flags

Sie können das Verhalten der Sortierung mittels dem optionalen Parameter sort_flags beeinflussen, für Details siehe sort().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ksort()-Beispiel

<?php
$fruits = array("d" => "Zitrone", "a" => "Orange", "b" => "Banane", "c" => "Apfel");
ksort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a = Orange
b = Banane
c = Apfel
d = Zitrone

Siehe auch

  • asort() - Sortiert ein Array und erhält die Index-Assoziation
  • Den Vergleich von Arraysortierungsfunktionen


Weist Variablen zu, als wären sie ein Array

  • « ksort
  • natcasesort »
  • PHP Manual
  • Array Funktionen
  • Weist Variablen zu, als wären sie ein Array

list

(PHP 4, PHP 5, PHP 7, PHP 8)

list — Weist Variablen zu, als wären sie ein Array

Beschreibung

list ( mixed $var1 , mixed ...$... = ? ) : array

Wie array() ist auch dies keine wirkliche Funktion, sondern ein Sprachkonstrukt. list() wird verwendet, um eine Liste von Variablen mit einer Operation zuzuweisen.

Hinweis:

Vor PHP 7.1.0 funktionierte list() nur bei numerischen Arrays und basierte auf der Annahme, dass die numerischen Indizes bei 0 beginnen.

Warnung

In PHP 5 weist list() die Werte von rechts beginnend zu. In PHP 7 beginnt list() von links.

Wenn Sie einfache Variablen benutzen, brauchen Sie sich nicht darum zu kümmern. Wenn Sie jedoch Arrays mit Indizes verwenden, erwarten Sie gewöhnlich die Reihenfolge der Indizes in dem Array genau so, wie Sie sie in list() geschrieben haben (von links nach rechts), was jedoch in PHP 5 nicht der Fall ist. Es wird in der umgekehrten Reihenfolge zugewiesen.

Allgemein gesagt, ist es ratsam sich nicht auf eine bestimmte Operations-Reihenfolge zu verlassen, da sich diese zukünftig wieder ändern könnte.

Parameter-Liste

var1

Eine Variable.

Rückgabewerte

Gibt das zugewiesene Array zurück.

Changelog

Version | Beschreibung
7.3.0 | Unterstützung von Referenzzuweisungen bei der Arraydestrukturierung wurde hinzugefügt.
7.1.0 | Es ist nun möglich Schlüssel in list() anzugeben. Dies ermöglicht die Destrukturierung von Arrays mit nicht numerischen oder nicht fortlaufenden Schlüsseln.
7.0.0 | Die Reihenfolge, in der die Zuweisungsoperationen durchgeführt werden, wurde geändert.
7.0.0 | Ausdrücke dürfen nicht mehr vollständig leer sein.
7.0.0 | Zeichenketten können nicht mehr entpackt werden.

Beispiele

Beispiel #1 list() Beispiele

<?php

$info = array('Kaffee', 'braun', 'Koffein');

// Auflisten aller Variablen
list($drink, $color, $power) = $info;
echo "$drink ist $color und $power macht es zu etwas besonderem.\n";

// Ein paar davon auflisten
list($drink, , $power) = $info;
echo "$drink hat $power.\n";

// Oder nur die dritte ausgeben
list( , , $power) = $info;
echo "Ich brauche $power!\n";

// list() funktioniert nicht mit Zeichenketten
list($bar) = "abcde";
var_dump($bar); // NULL
?>

Beispiel #2 Eine Beispielverwendung von list()

<table>
 <tr>
  <th>Mitarbeitername</th>
  <th>Gehalt</th>
 </tr>

<?php

$result = $pdo->query("SELECT id, name, salary FROM employees");
while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) {
    echo " <tr>\n".
         "  <td><a href=\"info.php?id=$id\">$name</a></td>\n".
         "  <td>$salary</td>\n".
         " </tr>\n";
}

?>

</table>

Beispiel #3 Verschachtelte list() verwenden

<?php

list($a, list($b, $c)) = array(1, array(2, 3));

var_dump($a, $b, $c);

?>
int(1)
int(2)
int(3)

Beispiel #4 list() mit Array Indizes verwenden

<?php

$info = array('Kaffee', 'braun', 'Koffein');

list($a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>

Erzeugt folgende Ausgabe (beachten Sie die Reihenfolge der Elemente verglichen mit der in list() eingetragenen Reihenfolge):

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

array(3) {
  [0]=>
  string(6) "Kaffee"
  [1]=>
  string(5) "braun"
  [2]=>
  string(7) "Koffein"
}

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

array(3) {
  [2]=>
  string(7) "Koffein"
  [1]=>
  string(5) "braun"
  [0]=>
  string(6) "Kaffee"
}

Beispiel #5 list() und die Reihenfolge der Index-Definitionen

Die Reihenfolge, in der die Indizes des von list() zu konsumierenden Arrays definiert wurden, ist irrelevant.

<?php
$foo = array(2 => 'a', 'foo' => 'b', 0 => 'c');
$foo[1] = 'd';
list($x, $y, $z) = $foo;
var_dump($foo, $x, $y, $z);

Erzeugt folgende Ausgabe (beachten Sie die Reihenfolge der Elemente verglichen mit der in list() eingetragenen Reihenfolge):

array(4) {
  [2]=>
  string(1) "a"
  ["foo"]=>
  string(1) "b"
  [0]=>
  string(1) "c"
  [1]=>
  string(1) "d"
}
string(1) "c"
string(1) "d"
string(1) "a"

Beispiel #6 list() mit Schlüsseln

Von PHP 7.1.0 an kann list() nun ebenfalls explizite Schlüssel enthalten, die als beliebige Ausdrücke angegeben werden können. Die Kombination von Integer- und Zeichenkettenschlüsseln ist erlaubt; allerdings dürfen Elemente mit und ohne Schlüssel nicht kombiniert werden.

<?php
$data = [
    ["id" => 1, "name" => 'Tom'],
    ["id" => 2, "name" => 'Fred'],
];
foreach ($data as ["id" => $id, "name" => $name]) {
    echo "id: $id, name: $name\n";
}
echo PHP_EOL;
list(1 => $second, 3 => $fourth) = [1, 2, 3, 4];
echo "$second, $fourth\n";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

id: 1, name: Tom
id: 2, name: Fred

2, 4

Siehe auch

  • each() - Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor
  • array() - Erstellt ein Array
  • extract() - Importiert Variablen eines Arrays in die aktuelle Symboltabelle


Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert

  • « list
  • natsort »
  • PHP Manual
  • Array Funktionen
  • Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert

natcasesort

(PHP 4, PHP 5, PHP 7, PHP 8)

natcasesort — Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert

Beschreibung

natcasesort ( array &$array ) : bool

natcasesort() ist eine Groß-/Kleinschreibung ignorierende Version von natsort().

Diese Funktion implementiert einen Sortieralgorithmus, welcher alphanumerische Zeichenketten reiht, wie es auch ein Mensch tun würde, wobei Sie die Schlüssel-Wert-Zuordnung beibehält. Das wird als "natürliche Reihenfolge" bezeichnet.

Hinweis:

Wenn zwei Mitglieder als identisch verglichen werden, ist die relative Sortierung im sortierten Array nicht definiert.

Parameter-Liste

array

Das Eingabe-Array.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 natcasesort() Beispiel

<?php
$array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

sort($array1);
echo "Standard Reihenfolge\n";
print_r($array1);

natcasesort($array2);
echo "\nNatürliche Reihenfolge (Groß-/Kleinschreibung ignorierend)\n";
print_r($array2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Standard Reihenfolge
Array
(
    [0] => IMG0.png
    [1] => IMG3.png
    [2] => img1.png
    [3] => img10.png
    [4] => img12.png
    [5] => img2.png
)

Natürliche Reihenfolge (Groß-/Kleinschreibung ignorierend)
Array
(
    [0] => IMG0.png
    [4] => img1.png
    [3] => img2.png
    [5] => IMG3.png
    [2] => img10.png
    [1] => img12.png
)

Detailliertere Informationen finden Sie auf Martin Pools » Natural Order String Comparison Seite.

Siehe auch

  • natsort() - Sortiert ein Array in "natürlicher Reihenfolge"
  • Den Vergleich von Arraysortierungsfunktionen
  • strnatcmp() - String-Vergleich unter Verwendung einer "natürlichen Ordnung"
  • strnatcasecmp() - String-Vergleich "natürlicher Ordnung" ohne Berücksichtigung der Groß- und Kleinschreibung


Sortiert ein Array in "natürlicher Reihenfolge"

  • « natcasesort
  • next »
  • PHP Manual
  • Array Funktionen
  • Sortiert ein Array in "natürlicher Reihenfolge"

natsort

(PHP 4, PHP 5, PHP 7, PHP 8)

natsort — Sortiert ein Array in "natürlicher Reihenfolge"

Beschreibung

natsort ( array &$array ) : bool

Diese Funktion implementiert einen Sortieralgorithmus, welcher alphanumerische Zeichenketten reiht, wie es auch ein Mensch tun würde, wobei Sie die Schlüssel-Wert-Zuordnung beibehält. Das wird als "natürliche Reihenfolge" bezeichnet. Ein Beispiel für den Unterschied zwischen diesem und dem normalen Sortieralgorithmus für Strings eines Computers (verwendet in sort()) ist weiter unten zu sehen.

Hinweis:

Wenn zwei Mitglieder als identisch verglichen werden, ist die relative Sortierung im sortierten Array nicht definiert.

Parameter-Liste

array

Das Eingabe-Array.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 natsort() Beispiele, die die grundlegende Verwendung demonstrieren

<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

sort ($array1);
echo "Standardsortierung\n";
print_r ($array1);

natsort ($array2);
echo "\nSortieren mit natürlicher Reihenfolge\n";
print_r ($array2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Standardsortierung
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Sortieren mit natürlicher Reihenfolge
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Detailliertere Informationen finden Sie auf Martin Pools » Natural Order String Comparison Seite.

Beispiel #2 natsort() Beispiele, die potentielle Tücken demonstrieren

<?php
echo "Negative Zahlen\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);

echo "0-Füllung\n";
$zeros = array('09', '8', '10', '009', '011', '0');
print_r($zeros);
natsort($zeros);
print_r($zeros);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Negative Zahlen
Array
(
    [0] => -5
    [1] => 3
    [2] => -2
    [3] => 0
    [4] => -1000
    [5] => 9
    [6] => 1
)
Array
(
    [2] => -2
    [0] => -5
    [4] => -1000
    [3] => 0
    [6] => 1
    [1] => 3
    [5] => 9
)

0-Füllung
Array
(
    [0] => 09
    [1] => 8
    [2] => 10
    [3] => 009
    [4] => 011
    [5] => 0
)
Array
(
    [5] => 0
    [1] => 8
    [3] => 009
    [0] => 09
    [2] => 10
    [4] => 011
)

Siehe auch

  • natcasesort() - Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert
  • Den Vergleich von Arraysortierungsfunktionen
  • strnatcmp() - String-Vergleich unter Verwendung einer "natürlichen Ordnung"
  • strnatcasecmp() - String-Vergleich "natürlicher Ordnung" ohne Berücksichtigung der Groß- und Kleinschreibung


Rückt den internen Zeiger eines Arrays vor

  • « natsort
  • pos »
  • PHP Manual
  • Array Funktionen
  • Rückt den internen Zeiger eines Arrays vor

next

(PHP 4, PHP 5, PHP 7, PHP 8)

next — Rückt den internen Zeiger eines Arrays vor

Beschreibung

next ( array &$array ) : mixed

next() verhält sich ähnlich wie current(), mit einem Unterschied. Der interne Zeiger wird um ein Element vorgerückt, bevor der Wert des Elements zurückgegeben wird, d.h. es wird der Wert des nächsten Elements zurückgegeben, und der interne Zeiger um eins erhöht.

Parameter-Liste

array

Das zu beeinflussende array.

Rückgabewerte

Gibt den Wert des nächsten Elements des Arrays zurück, auf das der interne Zeiger des Arrays gerade zeigt. Sind keine Elemente mehr vorhanden, wird false zurückgegeben.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 Beispiel für die Verwendung von next() und anderen

<?php
$transport = array('zu Fuß', 'Fahrrad', 'Auto', 'Flugzeug');
$mode = current($transport); // $mode = 'zu Fuß';
$mode = next($transport);    // $mode = 'Fahrrad';
$mode = next($transport);    // $mode = 'Auto';
$mode = prev($transport);    // $mode = 'Fahrrad';
$mode = end($transport);     // $mode = 'Flugzeug';
?>

Anmerkungen

Hinweis: Das Ende eines Arrays ist von einem boolean false Element nicht zu unterscheiden. Um ein Array, das möglicherweise false Elemente enthält, ordnungsgemäß zu durchlaufen, kann foreach() verwendet werden. Um dennoch next() verwenden zu können, und ordnungsgemäß zu prüfen, ob das Ende des Arrays erreicht wurde, sollte geprüft werden, ob der key() null ist.

Siehe auch

  • current() - Liefert das aktuelle Element eines Arrays
  • end() - Positioniert den internen Zeiger eines Arrays auf dessen letztes Element
  • prev() - Setzt den internen Zeiger eines Arrays um ein Element zurück
  • reset() - Setzt den internen Zeiger eines Arrays auf sein erstes Element
  • each() - Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor


Alias von current

  • « next
  • prev »
  • PHP Manual
  • Array Funktionen
  • Alias von current

pos

(PHP 4, PHP 5, PHP 7, PHP 8)

pos — Alias von current()

Beschreibung

Diese Funktion ist ein Alias für: current()


Setzt den internen Zeiger eines Arrays um ein Element zurück

  • « pos
  • range »
  • PHP Manual
  • Array Funktionen
  • Setzt den internen Zeiger eines Arrays um ein Element zurück

prev

(PHP 4, PHP 5, PHP 7, PHP 8)

prev — Setzt den internen Zeiger eines Arrays um ein Element zurück

Beschreibung

prev ( array &$array ) : mixed

Setzt den internen Arrayzeiger ein Element zurück.

prev() verhält sich genauso wie next(), abgesehen davon, dass es den Zeiger ein Element nach hinten bewegt, nicht nach vorne.

Parameter-Liste

array

Das Array, dessen Zeiger verschoben werden soll.

Rückgabewerte

Liefert den Wert des Elements vor der Position des Arrays, auf die der interne Zeiger gerade zeigt. Sind keine Elemente mehr vorhanden, wird false zurückgegeben.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 Beispiel für die Verwendung von prev() und anderen

<?php
$transport = array('zu Fuß', 'Fahrrad', 'Auto', 'Flugzeug');
$mode = current($transport); // $mode = 'zu Fuß';
$mode = next($transport);    // $mode = 'Fahrrad';
$mode = next($transport);    // $mode = 'Auto';
$mode = prev($transport);    // $mode = 'Fahrrad';
$mode = end($transport);     // $mode = 'Flugzeug';
?>

Anmerkungen

Hinweis: Es ist nicht möglich, den Anfang eines Arrays von einem boolean false-Wert zu unterscheiden. Dieser Fall kann unterschieden werden, indem geprüft wird, dass der key() des prev() Elements nicht null ist.

Siehe auch

  • current() - Liefert das aktuelle Element eines Arrays
  • end() - Positioniert den internen Zeiger eines Arrays auf dessen letztes Element
  • next() - Rückt den internen Zeiger eines Arrays vor
  • reset() - Setzt den internen Zeiger eines Arrays auf sein erstes Element
  • each() - Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor


Erstellt ein Array mit einem Bereich von Elementen

  • « prev
  • reset »
  • PHP Manual
  • Array Funktionen
  • Erstellt ein Array mit einem Bereich von Elementen

range

(PHP 4, PHP 5, PHP 7, PHP 8)

range — Erstellt ein Array mit einem Bereich von Elementen

Beschreibung

range ( mixed $start , mixed $end , number $step = 1 ) : array

Erstellt ein Array mit einem Bereich von Elementen.

Parameter-Liste

start

Erster Wert der Sequenz.

end

Die Sequenz endet, wenn der end Wert erreicht ist.

step

Ist ein step Wert angegeben, wird er schrittweite zwischen den Elementen in der Sequenz verwendet. step sollte als positive Zahl angegeben werden. Ist step nicht angegeben, wird automatisch der Wert 1 angenommen.

Rückgabewerte

Gibt ein Array mit Elementen im Bereich von start bis einschließlich end zurück.

Beispiele

Beispiel #1 range() Beispiele

<?php
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach(range(0, 12) as $number) {
    echo $number;
}

// Der step Parameter
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach(range(0, 100, 10) as $number) {
    echo $number;
}

// Verwendung von Zeichenfolgen
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
foreach(range('a', 'i') as $letter) {
    echo $letter;
}
// array('c','b','a');
foreach(range('c', 'a') as $letter) {
    echo $letter;
}
?>

Anmerkungen

Hinweis:

Werte mit Zeichenfolgen sind auf eine Länge von 1 limitiert. Wird eine Länge größer als 1 eingegeben, wird nur das erste Zeichen verwendet.

Siehe auch

  • shuffle() - Mischt die Elemente eines Arrays
  • array_fill() - Füllt ein Array mit Werten
  • foreach


Setzt den internen Zeiger eines Arrays auf sein erstes Element

  • « range
  • rsort »
  • PHP Manual
  • Array Funktionen
  • Setzt den internen Zeiger eines Arrays auf sein erstes Element

reset

(PHP 4, PHP 5, PHP 7, PHP 8)

reset — Setzt den internen Zeiger eines Arrays auf sein erstes Element

Beschreibung

reset ( array &$array ) : mixed

reset() setzt den internen Zeiger von array auf das erste Element, und gibt den Wert des ersten Arrayelements oder false, wenn das Array leer ist, zurück.

Parameter-Liste

array

Das Eingabearray.

Rückgabewerte

Gibt das erste Element des Arrays zurück oder false wenn das Array leer ist.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Beispiel #1 reset() Beispiel

<?php

$array = array('step one', 'step two', 'step three', 'step four');

// normalerweise steht der interne Zeiger auf dem ersten Element
echo current($array) . "<br />\n"; // "step one"

// Zwei Elemente überspringen
next($array);
next($array);
echo current($array) . "<br />\n"; // "step three"

// Zeiger zurücksetzen auf das erste Element
reset($array);
echo current($array) . "<br />\n"; // "step one"

?>

Anmerkungen

Hinweis: Der Rückgabewert für ein leeres Array ist nicht vom Rückgabewert eines Arrays, das ein boolean false als erstes Element hat, zu unterscheiden. Um den Wert des ersten Elements eines Arrays, das false Elemente enthalten kann, ordnungsgemäß zu prüfen, ist zunächst der count() des Arrays, zu prüfen, oder dass key() nicht null ist, nachdem reset() aufgerufen wurde.

Siehe auch

  • current() - Liefert das aktuelle Element eines Arrays
  • each() - Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor
  • end() - Positioniert den internen Zeiger eines Arrays auf dessen letztes Element
  • next() - Rückt den internen Zeiger eines Arrays vor
  • prev() - Setzt den internen Zeiger eines Arrays um ein Element zurück
  • array_key_first() - Gets the first key of an array


Sortiert ein Array in umgekehrter Reihenfolge

  • « reset
  • shuffle »
  • PHP Manual
  • Array Funktionen
  • Sortiert ein Array in umgekehrter Reihenfolge

rsort

(PHP 4, PHP 5, PHP 7, PHP 8)

rsort — Sortiert ein Array in umgekehrter Reihenfolge

Beschreibung

rsort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool

Diese Funktion sortiert ein Array in umgekehrter Reihenfolge (vom höchsten zum niedrigsten Wert).

Hinweis:

Wenn zwei Mitglieder als identisch verglichen werden, ist die relative Sortierung im sortierten Array nicht definiert.

Parameter-Liste

array

Das Eingabe-Array.

sort_flags

Sie können das Verhalten der Sortierung mittels dem optionalen Parameter sort_flags beeinflussen, für Details siehe sort().

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 rsort()-Beispiel

<?php
$fruits = array("Orange", "Apfel", "Zitrone", "Banane");
rsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0 = Zitrone
1 = Orange
2 = Banane
3 = Apfel

Die Früchte wurden in umgekehrter alphabetischer Reihenfolge sortiert.

Anmerkungen

Hinweis: Diese Funktion weist den Elementen des Arrays array neue Schlüssel zu. Bestehende Schlüssel, die Sie eventuell zugewiesen haben, werden entfernt statt einfach nur die Schlüssel neu anzuordnen

Siehe auch

  • arsort() - Sortiert ein Array in umgekehrter Reihenfolge und erhält die Index-Assoziation
  • krsort() - Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge
  • Den Vergleich von Arraysortierungsfunktionen


Mischt die Elemente eines Arrays

  • « rsort
  • sizeof »
  • PHP Manual
  • Array Funktionen
  • Mischt die Elemente eines Arrays

shuffle

(PHP 4, PHP 5, PHP 7, PHP 8)

shuffle — Mischt die Elemente eines Arrays

Beschreibung

shuffle ( array &$array ) : bool

Diese Funktion mischt die Reihenfolge der Elemente eines Arrays zufällig (shuffle). Der verwendete Pseudo-Zufallszahlengenerator ist nicht für kryptografische Zwecke geeignet.

Parameter-Liste

array

Das zu modifizierende Array.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
7.1.0 | Zur Erzeugung der Zufallszahlen kommt intern nun der » Mersenne-Primzahlen-Zufallsgenerator statt der vorherigen libc-rand-Funktion zum Einsatz.

Beispiele

Beispiel #1 shuffle()-Beispiel

<?php
$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
?>

Anmerkungen

Hinweis: Diese Funktion weist den Elementen des Arrays array neue Schlüssel zu. Bestehende Schlüssel, die Sie eventuell zugewiesen haben, werden entfernt statt einfach nur die Schlüssel neu anzuordnen

Siehe auch

  • array_rand() - Liefert einen oder mehrere zufällige Schlüssel eines Arrays
  • Den Vergleich von Arraysortierungsfunktionen


Alias von count

  • « shuffle
  • sort »
  • PHP Manual
  • Array Funktionen
  • Alias von count

sizeof

(PHP 4, PHP 5, PHP 7, PHP 8)

sizeof — Alias von count()

Beschreibung

Diese Funktion ist ein Alias für: count().


Sortiert ein Array

  • « sizeof
  • uasort »
  • PHP Manual
  • Array Funktionen
  • Sortiert ein Array

sort

(PHP 4, PHP 5, PHP 7, PHP 8)

sort — Sortiert ein Array

Beschreibung

sort ( array &$array , int $sort_flags = SORT_REGULAR ) : bool

Diese Funktion sortiert ein Array. Die Elemente werden aufsteigend vom niedrigsten zum höchsten Wert sortiert.

Hinweis:

Wenn zwei Mitglieder als identisch verglichen werden, ist die relative Sortierung im sortierten Array nicht definiert.

Parameter-Liste

array

Das Eingabe-Array.

sort_flags

Der optionale zweite Parameter sort_flags kann mit folgenden Werten genutzt werden, um das Sortierverhalten zu ändern:

Sortiertypen-Flags:

  • SORT_REGULAR - vergleiche Einträge normal; Details sind dem Abschnitt über Vergleichsoperatoren zu entnehmen
  • SORT_NUMERIC - vergleiche Einträge numerisch
  • SORT_STRING - vergleiche Einträge als Strings
  • SORT_LOCALE_STRING - vergleiche Einträge als Strings, basierend auf den aktuellen Locale-Einstellungen. Es wird die System-Locale benutzt, die mittels setlocale() geändert werden kann.
  • SORT_NATURAL - vergleicht mittels eines Sortieralgorithmus für "natürlicher Reihenfolge" ähnlich zu natsort()
  • SORT_FLAG_CASE - kann kombiniert werden (bitweises OR) mit SORT_STRING oder SORT_NATURAL um Strings unabhängig von Groß- und Kleinschreibung zu sortieren

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 sort()-Beispiel

<?php

$fruits = array("Zitrone", "Orange", "Banane", "Apfel");
sort($fruits);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

fruits[0] = Apfel
fruits[1] = Banane
fruits[2] = Orange
fruits[3] = Zitrone

Die Früchte wurden in alphabetischer Reihenfolge sortiert.

Beispiel #2 sort()-Beispiel mit natürlicher Sortierung ohne Beachtung der Groß- und Kleinschreibung

<?php

$fruits = array(
    "Orange1", "orange2", "Orange3", "orange20"
);
sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

fruits[0] = Orange1
fruits[1] = orange2
fruits[2] = Orange3
fruits[3] = orange20

Die Früchte wurden wie durch natcasesort() sortiert.

Anmerkungen

Hinweis: Diese Funktion weist den Elementen des Arrays array neue Schlüssel zu. Bestehende Schlüssel, die Sie eventuell zugewiesen haben, werden entfernt statt einfach nur die Schlüssel neu anzuordnen

Hinweis: Wie die meisten PHP-Sortierfunktionen benutzt sort() eine Implementierung von » Quicksort. Das Pivotelement wird aus der Mitte der Partition gewählt, was zu optimaler Laufzeit für bereits sortierte Arrays führt. Das ist jedoch ein Implementierungsdetail auf dass Sie sich nicht verlassen sollten.

Warnung

Seien Sie vorsichtig bei der Sortierung von Arrays mit unterschiedlichen Typen, weil sort() unerwartete Ergebnisse liefern kann, wenn sort_flags SORT_REGULAR ist.

Siehe auch

  • asort() - Sortiert ein Array und erhält die Index-Assoziation
  • rsort() - Sortiert ein Array in umgekehrter Reihenfolge
  • Den Vergleich von Arraysortierungsfunktionen


Sortiert ein Array mittels einer benutzerdefinierten Vergleichsfunktion und behält Indexassoziationen bei

  • « sort
  • uksort »
  • PHP Manual
  • Array Funktionen
  • Sortiert ein Array mittels einer benutzerdefinierten Vergleichsfunktion und behält Indexassoziationen bei

uasort

(PHP 4, PHP 5, PHP 7, PHP 8)

uasort — Sortiert ein Array mittels einer benutzerdefinierten Vergleichsfunktion und behält Indexassoziationen bei

Beschreibung

uasort ( array &$array , callable $value_compare_func ) : bool

Diese Funktion sortiert ein Array so, dass die Beziehung der Indexe zu den Arrayelementen beibehalten bleibt. Dabei wird eine vom Benutzer definierte Vergleichsfunktion benutzt.

Dies wird hauptsächlich bei assoziativen Arrays angewandt, wenn die aktuelle Reihenfolge der Arrayelemente signifikant ist.

Hinweis:

Wenn zwei Mitglieder als identisch verglichen werden, ist die relative Sortierung im sortierten Array nicht definiert.

Parameter-Liste

array

Das zu sortierende Array.

value_compare_func

Siehe usort() und uksort() für Beispiele benutzerdefinierter Vergleichsfunktionen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Einfaches uasort()-Beispiel

<?php
// Vergleichsfunktion
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

// Zu sortierendes Array
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
print_r($array);

// Sortieren und Ausgeben des Arrays
uasort($array, 'cmp');
print_r($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [a] => 4
    [b] => 8
    [c] => -1
    [d] => -9
    [e] => 2
    [f] => 5
    [g] => 3
    [h] => -4
)
Array
(
    [d] => -9
    [h] => -4
    [c] => -1
    [e] => 2
    [g] => 3
    [a] => 4
    [f] => 5
    [b] => 8
)

Siehe auch

  • usort() - Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion
  • Den Vergleich von Arraysortierungsfunktionen


Sortiert ein Array nach Schlüsseln mittels einer benutzerdefinierten Vergleichsfunktion

  • « uasort
  • usort »
  • PHP Manual
  • Array Funktionen
  • Sortiert ein Array nach Schlüsseln mittels einer benutzerdefinierten Vergleichsfunktion

uksort

(PHP 4, PHP 5, PHP 7, PHP 8)

uksort — Sortiert ein Array nach Schlüsseln mittels einer benutzerdefinierten Vergleichsfunktion

Beschreibung

uksort ( array &$array , callable $key_compare_func ) : bool

uksort() sortiert die Schlüssel eines Arrays mittels einer benutzerdefinierten Vergleichsfunktion. Soll das Array nach nicht trivialen Kriterien sortiert werden, sollten Sie diese Funktion verwenden.

Hinweis:

Wenn zwei Mitglieder als identisch verglichen werden, ist die relative Sortierung im sortierten Array nicht definiert.

Parameter-Liste

array

Das zu sortierende Array.

key_compare_func

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 uksort() Beispiel

<?php
function cmp($a, $b)
{
    $a = preg_replace('@^(a|an|the) @', '', $a);
    $b = preg_replace('@^(a|an|the) @', '', $b);
    return strcasecmp($a, $b);
}

$a = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);

uksort($a, "cmp");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

an apple: 3
a banana: 4
the Earth: 2
John: 1

Siehe auch

  • usort() - Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion
  • Den Vergleich von Arraysortierungsfunktionen


Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion

  • « uksort
  • Klassen/Objekte »
  • PHP Manual
  • Array Funktionen
  • Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion

usort

(PHP 4, PHP 5, PHP 7, PHP 8)

usort — Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion

Beschreibung

usort ( array &$array , callable $value_compare_func ) : bool

Diese Funktion sortiert ein Array nach seinen Werten mittels einer benutzerdefinierten Vergleichsfunktion. Soll das Array nach nicht trivialen Kriterien sortiert werden, sollten Sie diese Funktion verwenden.

Hinweis:

Wenn zwei Mitglieder als identisch verglichen werden, ist die relative Sortierung im sortierten Array nicht definiert.

Hinweis: Diese Funktion weist den Elementen des Arrays array neue Schlüssel zu. Bestehende Schlüssel, die Sie eventuell zugewiesen haben, werden entfernt statt einfach nur die Schlüssel neu anzuordnen

Parameter-Liste

array

Das zu sortierende Array.

value_compare_func

Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

callback ( mixed $a, mixed $b ) : int
Achtung

Werden von der Vergleichsfunktion nicht-integer Werte zurückgegeben so werden diese auf integer gecastet. Gibt die Funktion zB. float Werte zurück so werden Werte wie 0.99 oder 0.1 zu 0 und die verglichenen Werte werden als gleich angesehen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 usort()-Beispiel

<?php
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0: 1
1: 2
2: 3
3: 5
4: 6

Hinweis:

Für dieses einfache Beispiel wäre die sort()-Funktion offensichtlich die bessere Wahl.

Beispiel #2 usort()-Beispiel für multidimensionale Arrays

<?php
function cmp($a, $b)
{
    return strcmp($a["frucht"], $b["frucht"]);
}

$fruechte[0]["frucht"] = "Zitronen";
$fruechte[1]["frucht"] = "Aepfel";
$fruechte[2]["frucht"] = "Orangen";

usort($fruechte, "cmp");

while (list($key, $value) = each($fruits)) {
    echo "\$fruechte[$key]: " . $value["frucht"] . "\n";
}
?>

Wenn ein mehrdimensionales Array sortiert wird, enthalten $a und $b Verweise auf den ersten Index des Arrays.

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

$fruechte[0]: Aepfel
$fruechte[1]: Orangen
$fruechte[2]: Zitronen

Beispiel #3 usort()-Beispiel, das die Methode eines Objekts benutzt

<?php
class TestObj {
    var $name;

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

    /* Dies ist die statische Vergleichsfunktion */
    static function cmp_obj($a, $b)
    {
        $al = strtolower($a->name);
        $bl = strtolower($b->name);
        if ($al == $bl) {
            return 0;
        }
        return ($al > $bl) ? +1 : -1;
    }
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

usort($a, array("TestObj", "cmp_obj"));

foreach ($a as $item) {
    echo $item->name . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

b
c
d

Beispiel #4 usort() Beispiel zum Einsatz einer Closure zum Sortieren eines mehrdimensionalen Arrays

<?php
$array[0] = array('key_a' => 'z', 'key_b' => 'c');
$array[1] = array('key_a' => 'x', 'key_b' => 'b');
$array[2] = array('key_a' => 'y', 'key_b' => 'a');

function build_sorter($key) {
    return function ($a, $b) use ($key) {
        return strnatcmp($a[$key], $b[$key]);
    };
}

usort($array, build_sorter('key_b'));

foreach ($array as $item) {
    echo $item['key_a'] . ', ' . $item['key_b'] . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

y, a
x, b
z, c

Siehe auch

  • uasort() - Sortiert ein Array mittels einer benutzerdefinierten Vergleichsfunktion und behält Indexassoziationen bei
  • Den Vergleich von Arraysortierungsfunktionen


Klassen- und Objektinformationen

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Klassen- und Objekt-Funktionen
    • __autoload — Attempt to load undefined class
    • class_alias — Creates an alias for a class
    • class_exists — Checks if the class has been defined
    • get_called_class — The "Late Static Binding" class name
    • get_class_methods — Ermittelt die Namen der definierten Methoden einer Klasse
    • get_class_vars — Liefert die Vorgabeeigenschaften einer Klasse
    • get_class — Ermittelt den Klassennamen eines Objekts
    • get_declared_classes — Ermittelt die Namen der definierten Klassen
    • get_declared_interfaces — Gibt ein Array mit allen definierten Interfaces zurück
    • get_declared_traits — Returns an array of all declared traits
    • get_object_vars — Liefert die Eigenschaften eines Objekts
    • get_parent_class — Gibt den Namen der Elternklasse eines Objektes zurück
    • interface_exists — Prüft ob ein bestimmtes Interface definiert wurde
    • is_a — Checks if the object is of this class or has this class as one of its parents
    • is_subclass_of — Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert
    • method_exists — Prüft ob eine Methode innerhalb eines Objekts existiert
    • property_exists — Prüft auf die Existenz einer Eigenschaft eines Objektes bzw. einer Klasse
    • trait_exists — Checks if the trait exists


Einführung

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).

Im Objekte-Abschnitt des Handbuchs findet sich eine detaillierte Erklärung wie Klassen und Objekte in PHP implementiert sind und verwendet werden.


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • Klassen/Objekte
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Beispiele

In diesem Beispiel definieren wir zuerst eine Basisklasse und eine Erweiterung dieser Klasse. Die Basisklasse beschreibt ein beliebiges Gemüse, ob es essbar 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 __construct( $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 __construct()
    {
        parent::__construct( 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);
    foreach (get_object_vars($obj) as $prop => $val) {
        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($GLOBALS[$obj]);
        echo ", einer Subklasse von $class\n";
    } else {
        echo "Object $obj gehört nicht zu einer Subklasse von $class\n";
    }
}

// Instantiiere zwei Objekte

$veggie = new Gemuese(true,"blau");
$leafy = new Spinat();

// Informationen über die Objekte ausgeben
echo "veggie: KLASSE ".get_class($veggie)."\n";
echo "leafy: KLASSE ".get_class($leafy);
echo ", ELTERN ".get_parent_class($leafy)."\n";

// Zeige Eigenschaften von veggie
echo "\nveggie: Eigenschaften\n";
zeige_vars($veggie);

// und Methoden von leafy
echo "\nleafy: Methoden\n";
zeige_methoden($leafy);

echo "\nAbstammung:\n";
klassen_abstammung("leafy", "Spinat");
klassen_abstammung("leafy", "Gemuese");
?>
</pre>

Wichtig ist in diesem Beispiel, dass das Objekt $leafy eine Instanz der Klasse Spinat ist, die eine Subklasse von Gemuese ist. Darum gibt der letzte Teil des obigen Skripts folgendes aus:

       [...]
Abstammung:
Objekt leafy gehört nicht zu einer Subklasse von Spinat
Objekt leafy gehört zur Klasse spinat, einer Subklasse von Gemuese


Klassen- und Objekt-Funktionen

Inhaltsverzeichnis

  • __autoload — Attempt to load undefined class
  • class_alias — Creates an alias for a class
  • class_exists — Checks if the class has been defined
  • get_called_class — The "Late Static Binding" class name
  • get_class_methods — Ermittelt die Namen der definierten Methoden einer Klasse
  • get_class_vars — Liefert die Vorgabeeigenschaften einer Klasse
  • get_class — Ermittelt den Klassennamen eines Objekts
  • get_declared_classes — Ermittelt die Namen der definierten Klassen
  • get_declared_interfaces — Gibt ein Array mit allen definierten Interfaces zurück
  • get_declared_traits — Returns an array of all declared traits
  • get_object_vars — Liefert die Eigenschaften eines Objekts
  • get_parent_class — Gibt den Namen der Elternklasse eines Objektes zurück
  • interface_exists — Prüft ob ein bestimmtes Interface definiert wurde
  • is_a — Checks if the object is of this class or has this class as one of its parents
  • is_subclass_of — Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert
  • method_exists — Prüft ob eine Methode innerhalb eines Objekts existiert
  • property_exists — Prüft auf die Existenz einer Eigenschaft eines Objektes bzw. einer Klasse
  • trait_exists — Checks if the trait exists


Attempt to load undefined class

  • « Klassen- und Objekt-Funktionen
  • class_alias »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Attempt to load undefined class

__autoload

(PHP 5, PHP 7)

__autoload — Attempt to load undefined class

Warnung

Diese Funktion ist seit PHP 7.2.0 VERALTET und seit PHP 8.0.0 ENTFERNT. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

__autoload ( string $class ) : void

You can define this function to enable classes autoloading.

Parameter-Liste

class

Name of the class to load

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • spl_autoload_register() - Register given function as __autoload() implementation


Creates an alias for a class

  • « __autoload
  • class_exists »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Creates an alias for a class

class_alias

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

class_alias — Creates an alias for a class

Beschreibung

class_alias ( string $original , string $alias , bool $autoload = true ) : bool

Creates an alias named alias based on the user defined class original. The aliased class is exactly the same as the original class.

Parameter-Liste

original

The original class.

alias

The alias name for the class.

autoload

Whether to autoload if the original class is not found.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 class_alias() example

<?php

class foo { }

class_alias('foo', 'bar');

$a = new foo;
$b = new bar;

// the objects are the same
var_dump($a == $b, $a === $b);
var_dump($a instanceof $b);

// the classes are the same
var_dump($a instanceof foo);
var_dump($a instanceof bar);

var_dump($b instanceof foo);
var_dump($b instanceof bar);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Siehe auch

  • get_parent_class() - Gibt den Namen der Elternklasse eines Objektes zurück
  • is_subclass_of() - Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert


Checks if the class has been defined

  • « class_alias
  • get_called_class »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Checks if the class has been defined

class_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

class_exists — Checks if the class has been defined

Beschreibung

class_exists ( string $class_name , bool $autoload = true ) : bool

Diese Funktion prüft ob eine bestimmte Klasse definiert wurde.

Parameter-Liste

class_name

Der Klassenname. Groß- und Kleinschreibung wird beim Vergleich nicht beachtet.

autoload

Gibt an ob __autoload genutzt werden soll.

Rückgabewerte

Gibt true zurück falls die Klasse class_name definiert ist, sonst false.

Beispiele

Beispiel #1 class_exists() Beispiel

<?php
// prüft vor Benutzung ob die gewünschte Klasse definiert ist
if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>

Beispiel #2 autoload Parameter Beispiel

<?php
function __autoload($class)
{
    include($class . '.php');

    // Prüft ob die includierte Datei die Klasse tatsächlich definiert
    if (!class_exists($class, false)) {
        trigger_error("Die Klasse $class kann nicht geladen werden", E_USER_WARNING);
    }
}

if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>

Siehe auch

  • function_exists() - Falls die angegebene Funktion definiert ist, wird true zurück gegeben
  • interface_exists() - Prüft ob ein bestimmtes Interface definiert wurde
  • get_declared_classes() - Ermittelt die Namen der definierten Klassen


The "Late Static Binding" class name

  • « class_exists
  • get_class_methods »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • The "Late Static Binding" class name

get_called_class

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

get_called_class — The "Late Static Binding" class name

Beschreibung

get_called_class ( ) : string

Gets the name of the class the static method is called in.

Rückgabewerte

Returns the class name. Returns false if called from outside a class.

Beispiele

Beispiel #1 Using get_called_class()

<?php

class foo {
    static public function test() {
        var_dump(get_called_class());
    }
}

class bar extends foo {
}

foo::test();
bar::test();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "foo"
string(3) "bar"

Siehe auch

  • get_parent_class() - Gibt den Namen der Elternklasse eines Objektes zurück
  • get_class() - Ermittelt den Klassennamen eines Objekts
  • is_subclass_of() - Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert


Ermittelt die Namen der definierten Methoden einer Klasse

  • « get_called_class
  • get_class_vars »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Ermittelt die Namen der definierten Methoden einer Klasse

get_class_methods

(PHP 4, PHP 5, PHP 7, PHP 8)

get_class_methods — Ermittelt die Namen der definierten Methoden einer Klasse

Beschreibung

get_class_methods ( mixed $class_name ) : array

Ermittelt die Namen der definierten Methoden einer Klasse.

Parameter-Liste

class_name

Ein Klassenname oder eine Objektinstanz.

Rückgabewerte

Liefert ein Array mit den Namen der in der Klasse class_name definierten Methoden oder null bei Fehlern.

Beispiele

Beispiel #1 get_class_methods() Beispiel

<?php

class myclass {
    // constructor
    function __construct()
    {
        return(true);
    }

    // method 1
    function myfunc1()
    {
        return(true);
    }

    // method 2
    function myfunc2()
    {
        return(true);
    }
}

$class_methods = get_class_methods('myclass');
// or
$class_methods = get_class_methods(new myclass());

foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

myclass
myfunc1
myfunc2

Siehe auch

  • get_class() - Ermittelt den Klassennamen eines Objekts
  • get_class_vars() - Liefert die Vorgabeeigenschaften einer Klasse
  • get_object_vars() - Liefert die Eigenschaften eines Objekts


Liefert die Vorgabeeigenschaften einer Klasse

  • « get_class_methods
  • get_class »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Liefert die Vorgabeeigenschaften einer Klasse

get_class_vars

(PHP 4, PHP 5, PHP 7, PHP 8)

get_class_vars — Liefert die Vorgabeeigenschaften einer Klasse

Beschreibung

get_class_vars ( string $class_name ) : array

Liefert die Vorgabeeigenschaften der angegebenen Klasse.

Parameter-Liste

class_name

Der Klassenname

Rückgabewerte

Liefert ein assoziatives Array von deklarierten Eigenschaften, die im aktuellen Geltungsbereich sichtbar sind, mit ihren Vorgabewerten. Die Arrayeinträge haben dabei die Form varname => value. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 get_class_vars() Beispiel

<?php

class myclass {

    var $var1; // kein Defaultwert
    var $var2 = "xyz";
    var $var3 = 100;
    private $var4;

    // Konstruktor
    function __construct() {
        // Änderung einiger Werte
        $this->var1 = "foo";
        $this->var2 = "bar";
        return true;
    }

}

$my_class = new myclass();

$class_vars = get_class_vars(get_class($my_class));

foreach ($class_vars as $name => $value) {
    echo "$name : $value\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

var1 :
var2 : xyz
var3 : 100

Beispiel #2 get_class_vars() und geltungsbereichsabhängiges Verhalten

<?php
function format($array)
{
    return implode('|', array_keys($array)) . "\r\n";
}

class TestCase
{
    public $a    = 1;
    protected $b = 2;
    private $c   = 3;

    public static function expose()
    {
        echo format(get_class_vars(__CLASS__));
    }
}

TestCase::expose();
echo format(get_class_vars('TestCase'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

// 5.0.0
a| * b| TestCase c
a| * b| TestCase c

// 5.0.1 - 5.0.2
a|b|c
a|b|c

// 5.0.3 +
a|b|c
a

Siehe auch

  • get_class_methods() - Ermittelt die Namen der definierten Methoden einer Klasse
  • get_object_vars() - Liefert die Eigenschaften eines Objekts


Ermittelt den Klassennamen eines Objekts

  • « get_class_vars
  • get_declared_classes »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Ermittelt den Klassennamen eines Objekts

get_class

(PHP 4, PHP 5, PHP 7, PHP 8)

get_class — Ermittelt den Klassennamen eines Objekts

Beschreibung

get_class ( object $object = ? ) : string

Ermittelt den Klassennamen für das übergebene object.

Parameter-Liste

object

Das gewünschte Objekt. Dieser Parameter kann innerhalb einer Klasse ausgelassen werden.

Hinweis: Die explizite Übergabe von null als object ist von PHP 7.2.0 an nicht mehr erlaubt. Der Parameter ist nach wie vor optional, und der Aufruf von get_class() ohne Parameter innerhalb einer Klasse funktioniert, aber die Übergabe von null erzeugt nun einen E_WARNING Hinweis.

Rückgabewerte

Liefert den Namen der Klasse deren Instanz object ist. Ist object kein Objekt, so wird false zurückgegeben.

Wenn object innerhalb einer Klasse ausgelassen wird, wird der Name dieser Klasse zurück gegeben.

Ist object eine Instanz einer Klasse in einem Namensraum, wird der qualifizierte Name dieser Klasse zurückgeliefert.

Fehler/Exceptions

Wenn get_class() mit etwas anderem als einem Objekt aufgerufen wird, wird ein Fehler der Stufe E_WARNING erzeugt.

Changelog

Version | Beschreibung
7.2.0 | Vor dieser Version war der Standardwert für object null, was denselben Effekt hatte wie das Auslassen dieses Parameters. Nun wurde null als Standardwert für object entfernt, und ist nicht länger eine gültige Eingabe.

Beispiele

Beispiel #1 get_class()-Beispiel

<?php

class foo {
    function name()
    {
        echo "Mein Name ist " , get_class($this) , "\n";
    }
}

// create an object
$bar = new foo();

// external call
echo "Der Name ist " , get_class($bar) , "\n";

// internal call
$bar->name();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der Name ist foo
Mein Name ist foo

Beispiel #2 Einsatz von get_class() in einer Elternklasse

<?php

abstract class bar {
    public function __construct()
    {
        var_dump(get_class($this));
        var_dump(get_class());
    }
}

class foo extends bar {
}

new foo;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "foo"
string(3) "bar"

Beispiel #3 Verwendung von get_class() mit Klassen in Namensräumen

<?php

namespace Foo\Bar;

class Baz {
    public function __construct()
    {

    }
}

$baz = new \Foo\Bar\Baz;

var_dump(get_class($baz));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(11) "Foo\Bar\Baz"

Siehe auch

  • get_called_class() - The "Late Static Binding" class name
  • get_parent_class() - Gibt den Namen der Elternklasse eines Objektes zurück
  • gettype() - Liefert den Datentyp einer Variablen
  • is_subclass_of() - Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert


Ermittelt die Namen der definierten Klassen

  • « get_class
  • get_declared_interfaces »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Ermittelt die Namen der definierten Klassen

get_declared_classes

(PHP 4, PHP 5, PHP 7, PHP 8)

get_declared_classes — Ermittelt die Namen der definierten Klassen

Beschreibung

get_declared_classes ( ) : array

Ermittelt die Namen der definierten Klassen

Rückgabewerte

Liefert ein Array mit den Namen der zur Zeit definierten Klassen.

Hinweis:

Bitte beachten Sie, dass je nachdem, welche Extensions in Ihrer PHP-Installation einkompiliert oder geladen sind, weitere Klassen vordefiniert sein können. Dies bedeutet, dass Sie keine eigenen Klassen mit dem gleichen Namen anlegen können. Eine Liste der möglicherweise vordefinierten Klassen finden Sie im Anhang Predefined Classes

Changelog

Version | Beschreibung
7.4.0 | Zuvor gab get_declared_classes() immer die Elternklassen vor den Kindklassen zurück. Dies ist nicht länger der Fall. Für den Rückgabewert von get_declared_classes() wird keine bestimmte Reihenfolge zugesichert.

Beispiele

Beispiel #1 get_declared_classes()-Beispiel

<?php
print_r(get_declared_classes());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => stdClass
    [1] => __PHP_Incomplete_Class
    [2] => Directory
)

Siehe auch

  • class_exists() - Checks if the class has been defined
  • get_declared_interfaces() - Gibt ein Array mit allen definierten Interfaces zurück
  • get_declared_functions()


Gibt ein Array mit allen definierten Interfaces zurück

  • « get_declared_classes
  • get_declared_traits »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Gibt ein Array mit allen definierten Interfaces zurück

get_declared_interfaces

(PHP 5, PHP 7, PHP 8)

get_declared_interfaces — Gibt ein Array mit allen definierten Interfaces zurück

Beschreibung

get_declared_interfaces ( ) : array

Liefert die definierten Interfaces.

Rückgabewerte

Gibt ein Array der Namen aller definierten Interfaces des aktuellen Scripts zurück.

Beispiele

Beispiel #1 get_declared_interfaces() Beispiel

<?php
print_r(get_declared_interfaces());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Traversable
    [1] => IteratorAggregate
    [2] => Iterator
    [3] => ArrayAccess
    [4] => reflector
    [5] => RecursiveIterator
    [6] => SeekableIterator
)

Siehe auch

  • interface_exists() - Prüft ob ein bestimmtes Interface definiert wurde
  • get_declared_classes() - Ermittelt die Namen der definierten Klassen
  • class_implements() - Return the interfaces which are implemented by the given class or interface


Returns an array of all declared traits

  • « get_declared_interfaces
  • get_object_vars »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Returns an array of all declared traits

get_declared_traits

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

get_declared_traits — Returns an array of all declared traits

Beschreibung

get_declared_traits ( ) : array

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array with names of all declared traits in values. Returns null in case of a failure.

Siehe auch

  • class_uses() - Return the traits used by the given class
  • trait_exists() - Checks if the trait exists


Liefert die Eigenschaften eines Objekts

  • « get_declared_traits
  • get_parent_class »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Liefert die Eigenschaften eines Objekts

get_object_vars

(PHP 4, PHP 5, PHP 7, PHP 8)

get_object_vars — Liefert die Eigenschaften eines Objekts

Beschreibung

get_object_vars ( object $object ) : array

Liefert die zugreifbaren nichtstatischen Eigenschaften des gegebenen Objekts object entsprechend des Gültigkeitsbereichs.

Parameter-Liste

object

Ein Objektexemplar.

Rückgabewerte

Gibt ein assoziatives Array der definierten nicht-statischen Elemente des mit object spezifizierten Objekts zurück, auf die im aktuellen Gültigkeitsbereich zugegriffen werden kann.

Beispiele

Beispiel #1 Nutzung der get_object_vars()-Funktion

<?php

class foo {
    private $a;
    public $b = 1;
    public $c;
    private $d;
    static $e;

    public function test() {
      var_dump(get_object_vars($this));
    }
}

$test = new foo;
var_dump(get_object_vars($test));

$test->test();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
}
array(4) {
  ["a"]=>
  NULL
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
  ["d"]=>
  NULL
}

Siehe auch

  • get_class_methods() - Ermittelt die Namen der definierten Methoden einer Klasse
  • get_class_vars() - Liefert die Vorgabeeigenschaften einer Klasse


Gibt den Namen der Elternklasse eines Objektes zurück

  • « get_object_vars
  • interface_exists »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Gibt den Namen der Elternklasse eines Objektes zurück

get_parent_class

(PHP 4, PHP 5, PHP 7, PHP 8)

get_parent_class — Gibt den Namen der Elternklasse eines Objektes zurück

Beschreibung

get_parent_class ( mixed $object = ? ) : string

Gibt den Namen der Elternklasse eines Objekts oder einer Klasse zurück.

Parameter-Liste

object

Das untersuchte Objekt oder der untersuchte Klassenname. Der Parameter ist optional, falls die Funktion von einer Methode des Objekts aufgerufen wird.

Rückgabewerte

Gibt den Namen der Elternklasse der Klasse zurück, von der object eine Instanz oder der Name ist.

Hinweis:

Falls das Objekt keine Elternklasse hat oder die angegebene Klasse nicht existiert, wird false zurückgegeben.

Falls die Funktion außerhalb eines Objekts ohne Parameter aufgerufen wird, gibt sie false zurück.

Beispiele

Beispiel #1 Die Verwendung von get_parent_class()

<?php

class vater {
  function vater()
  {
  // implementiert etwas Logik
  }
}

class kind extends vater {
  function kind()
  {
    echo "Ich bin das Kind von " , get_parent_class($this) , "\n";
  }
}

class kind2 extends vater {
  function kind2()
  {
    echo "Ich bin ebenfalls das Kind von " , get_parent_class('kind2') , "\n";
  }
}

$foo = new kind();
$bar = new kind2();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ich bin das Kind von vater
Ich bin ebenfalls das Kind von vater

Siehe auch

  • get_class() - Ermittelt den Klassennamen eines Objekts
  • is_subclass_of() - Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert
  • class_parents() - Return the parent classes of the given class


Prüft ob ein bestimmtes Interface definiert wurde

  • « get_parent_class
  • is_a »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Prüft ob ein bestimmtes Interface definiert wurde

interface_exists

(PHP 5 >= 5.0.2, PHP 7, PHP 8)

interface_exists — Prüft ob ein bestimmtes Interface definiert wurde

Beschreibung

interface_exists ( string $interface_name , bool $autoload = true ) : bool

Prüft ob das übergebene Interface definiert wurde.

Parameter-Liste

interface_name

Name des Interface.

autoload

Bestimmt ob __autoload automatisch ausgeführt werden soll.

Rückgabewerte

Gibt true zurück, wenn das durch interface_name bezeichnete Interface definiert ist, sonst false.

Beispiele

Beispiel #1 interface_exists() Beispiel

<?php
// Prüft ob ein Interface existiert bevor es benutzt wird
if (interface_exists('MyInterface')) {
    class MyClass implements MyInterface
    {
        // Methoden
    }
}

?>

Siehe auch

  • get_declared_interfaces() - Gibt ein Array mit allen definierten Interfaces zurück
  • class_implements() - Return the interfaces which are implemented by the given class or interface
  • class_exists() - Checks if the class has been defined


Checks if the object is of this class or has this class as one of its parents

  • « interface_exists
  • is_subclass_of »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Checks if the object is of this class or has this class as one of its parents

is_a

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_a — Checks if the object is of this class or has this class as one of its parents

Beschreibung

is_a ( mixed $object , string $class_name , bool $allow_string = false ) : bool

Checks if the given object is of this class or has this class as one of its parents.

Parameter-Liste

object

A class name or an object instance.

class_name

The class name

allow_string

If this parameter set to false, string class name as object is not allowed. This also prevents from calling autoloader if the class doesn't exist.

Rückgabewerte

Returns true if the object is of this class or has this class as one of its parents, false otherwise.

Beispiele

Beispiel #1 is_a() example

<?php
// define a class
class WidgetFactory
{
  var $oink = 'moo';
}

// create a new object
$WF = new WidgetFactory();

if (is_a($WF, 'WidgetFactory')) {
  echo "yes, \$WF is still a WidgetFactory\n";
}
?>

Beispiel #2 Using the instanceof operator in PHP 5

<?php
if ($WF instanceof WidgetFactory) {
    echo 'Yes, $WF is a WidgetFactory';
}
?>

Siehe auch

  • get_class() - Ermittelt den Klassennamen eines Objekts
  • get_parent_class() - Gibt den Namen der Elternklasse eines Objektes zurück
  • is_subclass_of() - Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert


Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert

  • « is_a
  • method_exists »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert

is_subclass_of

(PHP 4, PHP 5, PHP 7, PHP 8)

is_subclass_of — Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert

Beschreibung

is_subclass_of ( mixed $object , string $class_name , bool $allow_string = true ) : bool

Diese Funktion prüft ob das Objekt objekt von der Klasse class_name abstammt oder sie implementiert.

Parameter-Liste

object

Ein Klassenname oder eine Objektinstanz. Es wird kein Fehler generiert, wenn die Klasse nicht existiert.

class_name

Ein Klassenname

allow_string

Wenn dieser Parameter false ist, ist ein Zeichenketten-Klassenname als object nicht erlaubt. Dies verhindert ebenso den Aufruf vom Autoloader, wenn die Klasse nicht existiert.

Rückgabewerte

Die Funktion liefert true wenn die Klasse des Objekts object eine Unterklasse von class_name ist, sonst false.

Beispiele

Beispiel #1 is_subclass_of() Beispiel

<?php
// Definition einer Klasse
class WidgetFactory
{
  var $oink = 'moo';
}

// Definition einer Kindklasse
class WidgetFactory_Child extends WidgetFactory
{
  var $oink = 'oink';
}

// Erzeugung von Objekten
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();

if (is_subclass_of($WFC, 'WidgetFactory')) {
  echo "Ja, \$WFC ist eine Unterklasse von WidgetFactory\n";
} else {
  echo "Nein, \$WFC ist keine Unterklasse von WidgetFactory\n";
}

if (is_subclass_of($WF, 'WidgetFactory')) {
  echo "Ja, \$WF ist eine Unterklasse von WidgetFactory\n";
} else {
  echo "Nein, \$WF ist keine Unterklasse von WidgetFactory\n";
}

// ab PHP 5.0.3 funktioniert auch
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
  echo "Ja, WidgetFactory_Child ist eine Unterklasse von WidgetFactory\n";
} else {
  echo "Nein, WidgetFactory_Child ist keine Unterklasse von WidgetFactory\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ja, $WFC ist eine Unterklasse von WidgetFactory
Nein, $WF ist keine Unterklasse von WidgetFactory
Ja, WidgetFactory_Child ist eine Unterklasse von WidgetFactory

Beispiel #2 Verwendung von is_subclass_of() mit einem Interface

<?php
// Definition des Interface
interface MyInterface
{
  public function MyFunction();
}

// Definition der Klassenimplementierung des Interface
class MyClass implements MyInterface
{
  public function MyFunction()
  {
    return "MyClass implementiert MyInterface!";
  }
}

// Objekt-Erzeugung
$my_object = new MyClass;

// Funktioniert seit 5.3.7

// Prüfung unter Verwendung des Objektexemplars der Klasse
if (is_subclass_of($my_object, 'MyInterface')) {
  echo "Ja, \$my_object ist eine Unterklasse von MyInterface\n";
} else {
  echo "Nein, \$my_object ist keine Unterklasse von MyInterface\n";
}

// Prüfung unter Verwendung des Klassennamens als Zeichenkette
if (is_subclass_of('MyClass', 'MyInterface')) {
  echo "Ja, MyClass ist eine Unterklasse von MyInterface\n";
} else {
  echo "Nein, MyClass ist keine Unterklasse von MyInterface\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ja, $my_object ist eine Unterklasse von MyInterface
Ja, MyClass ist eine Unterklasse von MyInterface

Anmerkungen

Hinweis:

Die Verwendung dieser Funktion wird jegliche registrierte Autoloader verwenden, falls die Klasse nicht bereits bekannt ist.

Siehe auch

  • get_class() - Ermittelt den Klassennamen eines Objekts
  • get_parent_class() - Gibt den Namen der Elternklasse eines Objektes zurück
  • is_a() - Checks if the object is of this class or has this class as one of its parents
  • class_parents() - Return the parent classes of the given class


Prüft ob eine Methode innerhalb eines Objekts existiert

  • « is_subclass_of
  • property_exists »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Prüft ob eine Methode innerhalb eines Objekts existiert

method_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

method_exists — Prüft ob eine Methode innerhalb eines Objekts existiert

Beschreibung

method_exists ( mixed $object , string $method_name ) : bool

Prüft ob eine Methode mit Namen method_name im Objekt objekt definiert ist.

Parameter-Liste

object

Eine Objektinstanz oder ein Klassenname

method_name

Der gewünschte Methodenname

Rückgabewerte

Liefert true wenn die Methode method_name im Objekt objekt definiert ist, sonst false.

Anmerkungen

Hinweis:

Die Verwendung dieser Funktion wird jegliche registrierte Autoloader verwenden, falls die Klasse nicht bereits bekannt ist.

Beispiele

Beispiel #1 method_exists() Beispiel

<?php
$directory = new Directory('.');
var_dump(method_exists($directory,'read'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)

Beispiel #2 Statisches method_exists() Beispiel

<?php
var_dump(method_exists('Directory','read'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)

Siehe auch

  • function_exists() - Falls die angegebene Funktion definiert ist, wird true zurück gegeben
  • is_callable() - Prüft, ob der Inhalt einer Variable als Funktion aufgerufen werden kann
  • class_exists() - Checks if the class has been defined


Prüft auf die Existenz einer Eigenschaft eines Objektes bzw. einer Klasse

  • « method_exists
  • trait_exists »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Prüft auf die Existenz einer Eigenschaft eines Objektes bzw. einer Klasse

property_exists

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

property_exists — Prüft auf die Existenz einer Eigenschaft eines Objektes bzw. einer Klasse

Beschreibung

property_exists ( mixed $class , string $property ) : bool

Prüft ob die Eigenschaft property in der angegebenen Klasse existiert.

Hinweis:

Anders als isset() gibt property_exists() auch dann true zurück, wenn eine Eigenschaft den Wert null hat.

Parameter-Liste

class

Objektexemplar oder Name der Klasse.

property

Name der zu prüfenden Eigenschaft.

Rückgabewerte

Gibt true zurück, wenn die Eigenschaft existiert, false wenn nicht, und null im Fehlerfall.

Anmerkungen

Hinweis:

Die Verwendung dieser Funktion wird jegliche registrierte Autoloader verwenden, falls die Klasse nicht bereits bekannt ist.

Hinweis:

Die property_exists() Funktion kann keine Eigenschaften erkennen die über die 'magische' Methode __get implementiert sind.

Beispiele

Beispiel #1 Ein property_exists() Beispiel

<?php

class myClass {
    public $mine;
    private $xpto;
    static protected $test;

    static function test() {
        var_dump(property_exists('myClass', 'xpto')); //true
    }
}

var_dump(property_exists('myClass', 'mine'));   //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto'));   //true  ab PHP 5.3.0
var_dump(property_exists('myClass', 'bar'));    //false
var_dump(property_exists('myClass', 'test'));   //true ab PHP 5.3.0
myClass::test();

?>

Siehe auch

  • method_exists() - Prüft ob eine Methode innerhalb eines Objekts existiert


Checks if the trait exists

  • « property_exists
  • Classkit »
  • PHP Manual
  • Klassen- und Objekt-Funktionen
  • Checks if the trait exists

trait_exists

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

trait_exists — Checks if the trait exists

Beschreibung

trait_exists ( string $traitname , bool $autoload = ? ) : bool

Parameter-Liste

traitname

Name of the trait to check

autoload

Whether to autoload if not already loaded.

Rückgabewerte

Returns true if trait exists, false if not, null in case of an error.


Classkit

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Classkit Funktionen
    • classkit_import — Import new class method definitions from a file
    • classkit_method_add — Dynamically adds a new method to a given class
    • classkit_method_copy — Copies a method from class to another
    • classkit_method_redefine — Dynamically changes the code of the given method
    • classkit_method_remove — Dynamically removes the given method
    • classkit_method_rename — Dynamically changes the name of the given method


Einführung

These functions allow the dynamic manipulation of PHP classes, at runtime.

Hinweis:

This extension has been replaced by runkit, which is not limited to class manipulation but has function manipulation, as well.


Installation

Diese Erweiterung wird als nicht mehr gepflegt betrachtet und es gibt dort keine Aktivität mehr. Der Quellcode für diese Erweiterung steht jedoch weiterhin innerhalb des PECL SVN hier zur Verfügung: » https://svn.php.net/viewvc/pecl/classkit.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

CLASSKIT_ACC_PRIVATE (int)
Marks the method private
CLASSKIT_ACC_PROTECTED (int)
Marks the method protected
CLASSKIT_ACC_PUBLIC (int)
Marks the method public


Classkit Funktionen

Inhaltsverzeichnis

  • classkit_import — Import new class method definitions from a file
  • classkit_method_add — Dynamically adds a new method to a given class
  • classkit_method_copy — Copies a method from class to another
  • classkit_method_redefine — Dynamically changes the code of the given method
  • classkit_method_remove — Dynamically removes the given method
  • classkit_method_rename — Dynamically changes the name of the given method


Import new class method definitions from a file

  • « Classkit Funktionen
  • classkit_method_add »
  • PHP Manual
  • Classkit Funktionen
  • Import new class method definitions from a file

classkit_import

(PECL classkit >= 0.3)

classkit_import — Import new class method definitions from a file

Beschreibung

classkit_import ( string $filename ) : array

Hinweis: Diese Funktion kann nicht genutzt werden, um die aktuell ausgeführte (oder verkette) Methode zu manipulieren.

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

filename

The filename of the class method definitions to import

Rückgabewerte

Associative array of imported methods

Beispiele

Beispiel #1 classkit_import() example

<?php
// file: newclass.php
class Example {
    function foo() {
        return "bar!\n";
    }
}
?>
<?php
// requires newclass.php (see above)
class Example {
    function foo() {
        return "foo!\n";
    }
}

$e = new Example();

// output original
echo $e->foo();

// import replacement method
classkit_import('newclass.php');

// output imported
echo $e->foo();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

foo!
bar!

Siehe auch

  • classkit_method_add() - Dynamically adds a new method to a given class
  • classkit_method_copy() - Copies a method from class to another


Dynamically adds a new method to a given class

  • « classkit_import
  • classkit_method_copy »
  • PHP Manual
  • Classkit Funktionen
  • Dynamically adds a new method to a given class

classkit_method_add

(PECL classkit >= 0.1)

classkit_method_add — Dynamically adds a new method to a given class

Beschreibung

classkit_method_add ( string $classname , string $methodname , string $args , string $code , int $flags = CLASSKIT_ACC_PUBLIC ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

classname

The class to which this method will be added

methodname

The name of the method to add

args

Comma-delimited list of arguments for the newly-created method

code

The code to be evaluated when methodname is called

flags

The type of method to create, can be CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED or CLASSKIT_ACC_PRIVATE

Hinweis:

This parameter is only used as of PHP 5, because, prior to this, all methods were public.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 classkit_method_add() example

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// create an Example object
$e = new Example();

// Add a new public method
classkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    CLASSKIT_ACC_PUBLIC
);

// add 12 + 4
echo $e->add(12, 4);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

16

Siehe auch

  • classkit_method_copy() - Copies a method from class to another
  • classkit_method_redefine() - Dynamically changes the code of the given method
  • classkit_method_remove() - Dynamically removes the given method
  • classkit_method_rename() - Dynamically changes the name of the given method
  • create_function() - Erzeugen einer anonymen (Lambda-Stil) Funktion


Copies a method from class to another

  • « classkit_method_add
  • classkit_method_redefine »
  • PHP Manual
  • Classkit Funktionen
  • Copies a method from class to another

classkit_method_copy

(PECL classkit >= 0.2)

classkit_method_copy — Copies a method from class to another

Beschreibung

classkit_method_copy ( string $dClass , string $dMethod , string $sClass , string $sMethod = ? ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

dClass

Destination class for copied method

dMethod

Destination method name

sClass

Source class of the method to copy

sMethod

Name of the method to copy from the source class. If this parameter is omitted, the value of dMethod is assumed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 classkit_method_copy() example

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // initially, no methods
}

// copy the example() method from the Foo class to the Bar class, as baz()
classkit_method_copy('Bar', 'baz', 'Foo', 'example');

// output copied function
echo Bar::baz();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

foo!

Siehe auch

  • classkit_method_add() - Dynamically adds a new method to a given class
  • classkit_method_redefine() - Dynamically changes the code of the given method
  • classkit_method_remove() - Dynamically removes the given method
  • classkit_method_rename() - Dynamically changes the name of the given method


Dynamically changes the code of the given method

  • « classkit_method_copy
  • classkit_method_remove »
  • PHP Manual
  • Classkit Funktionen
  • Dynamically changes the code of the given method

classkit_method_redefine

(PECL classkit >= 0.1)

classkit_method_redefine — Dynamically changes the code of the given method

Beschreibung

classkit_method_redefine ( string $classname , string $methodname , string $args , string $code , int $flags = CLASSKIT_ACC_PUBLIC ) : bool

Hinweis: Diese Funktion kann nicht genutzt werden, um die aktuell ausgeführte (oder verkette) Methode zu manipulieren.

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

classname

The class in which to redefine the method

methodname

The name of the method to redefine

args

Comma-delimited list of arguments for the redefined method

code

The new code to be evaluated when methodname is called

flags

The redefined method can be CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED or CLASSKIT_ACC_PRIVATE

Hinweis:

This parameter is only used as of PHP 5, because, prior to this, all methods were public.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 classkit_method_redefine() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// create an Example object
$e = new Example();

// output Example::foo() (before redefine)
echo "Before: " . $e->foo();

// Redefine the 'foo' method
classkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    CLASSKIT_ACC_PUBLIC
);

// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Before: foo!
After: bar!

Siehe auch

  • classkit_method_add() - Dynamically adds a new method to a given class
  • classkit_method_copy() - Copies a method from class to another
  • classkit_method_remove() - Dynamically removes the given method
  • classkit_method_rename() - Dynamically changes the name of the given method


Dynamically removes the given method

  • « classkit_method_redefine
  • classkit_method_rename »
  • PHP Manual
  • Classkit Funktionen
  • Dynamically removes the given method

classkit_method_remove

(PECL classkit >= 0.1)

classkit_method_remove — Dynamically removes the given method

Beschreibung

classkit_method_remove ( string $classname , string $methodname ) : bool

Hinweis: Diese Funktion kann nicht genutzt werden, um die aktuell ausgeführte (oder verkette) Methode zu manipulieren.

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

classname

The class in which to remove the method

methodname

The name of the method to remove

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 classkit_method_remove() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Remove the 'foo' method
classkit_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bar

Siehe auch

  • classkit_method_add() - Dynamically adds a new method to a given class
  • classkit_method_copy() - Copies a method from class to another
  • classkit_method_redefine() - Dynamically changes the code of the given method
  • classkit_method_rename() - Dynamically changes the name of the given method


Dynamically changes the name of the given method

  • « classkit_method_remove
  • Ctype »
  • PHP Manual
  • Classkit Funktionen
  • Dynamically changes the name of the given method

classkit_method_rename

(PECL classkit >= 0.1)

classkit_method_rename — Dynamically changes the name of the given method

Beschreibung

classkit_method_rename ( string $classname , string $methodname , string $newname ) : bool

Hinweis: Diese Funktion kann nicht genutzt werden, um die aktuell ausgeführte (oder verkette) Methode zu manipulieren.

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

classname

The class in which to rename the method

methodname

The name of the method to rename

newname

The new name to give to the renamed method

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 classkit_method_rename() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Rename the 'foo' method to 'bar'
classkit_method_rename(
    'Example',
    'foo',
    'bar'
);

// output renamed function
echo Example::bar();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

foo!

Siehe auch

  • classkit_method_add() - Dynamically adds a new method to a given class
  • classkit_method_copy() - Copies a method from class to another
  • classkit_method_redefine() - Dynamically changes the code of the given method
  • classkit_method_remove() - Dynamically removes the given method


Zeichentypprüfung

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Ctype Funktionen
    • ctype_alnum — Auf alphanumerische Zeichen überprüfen
    • ctype_alpha — Auf Buchstabe(n) überprüfen
    • ctype_cntrl — Auf Steuerzeichen überprüfen
    • ctype_digit — Auf Ziffern überprüfen
    • ctype_graph — Auf druckbare Zeichen (außer Leerzeichen) überprüfen
    • ctype_lower — Auf Kleinbuchstaben überprüfen
    • ctype_print — Auf druckbare Zeichen überprüfen
    • ctype_punct — Prüft auf Sonderzeichen, d.h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.
    • ctype_space — Auf Leerzeichen überprüfen
    • ctype_upper — Auf Großbuchstaben prüfen
    • ctype_xdigit — Auf Hexadezimalziffern überprüfen


Einführung

Die Funktionen dieser Extension überprüfen, ob ein Zeichen oder eine Zeichenkette in eine bestimmte Zeichenklasse fällt, unter Berücksichtigung der momentanen locale-Einstellung (Siehe auch setlocale()).

Beim Aufruf mit einem Integer-Argument verhalten sich diese Funktionen exakt wie ihre C-Gegenstücke aus ctype.h, d.h. das Integer-Parameter zwischen 0 und 255 als ASCII-Codes interpretiert und das entsprechende Zeichen geprüft wird. Für Werte zwischen -128 und -1 wird vor der Prüfungen 256 addiert.

Beim Aufruf mit einem String-Argument überprüfen Sie jedes einzelne Zeichen und geben nur true zurück, wenn jedes einzelne Zeichen die angeforderten entsprechenden Kriterien erfüllt. Beim Aufruf mit einer leeren Zeichenkette wird in PHP < 5.1 immer true zurückgegeben, ab PHP 5.1 false.

Sobald irgendetwas anderes als ein String oder Integer als Argument übergeben wird, wird sofort false zurückgegeben.

Die ctype Funktionen sind grundsätzlich performanter als die entsprechenden regular Expressions und oft auch schneller als die equivalenten str_* und is_* Funktionen da sie direkt in C geschrieben und optimiert sind.

Hinweis:

Diese Funktionen sind in keiner Weise mit der Python "ctypes" Bibliothek verwandt. Der Name der Erweiterung stammt von der ctype.h C Header-Datei an, in der ihre Equivalente definiert sind.

Diese Erweiterung ist auch älter als Python "ctypes", so dass jegliche Verwirrung, die durch diese Namensgebung verursacht wird, kaum unser Fehler ist ...


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

Keine außer der Funktionen aus der C-Standardbibliothek die immer verfügbar sind.


Installation

cytpe-Unterstützung kann mit --disable-ctype abgeschaltet werden.

Die Windowsversion von PHP enthält diese Erweiterung. Um diese Funktionen zu verwenden, müssen Sie keine zusätzlichen Erweiterungen aktivieren.


  • « Ressource-Typen
  • Ctype Funktionen »
  • PHP Manual
  • Ctype
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Ctype Funktionen

Inhaltsverzeichnis

  • ctype_alnum — Auf alphanumerische Zeichen überprüfen
  • ctype_alpha — Auf Buchstabe(n) überprüfen
  • ctype_cntrl — Auf Steuerzeichen überprüfen
  • ctype_digit — Auf Ziffern überprüfen
  • ctype_graph — Auf druckbare Zeichen (außer Leerzeichen) überprüfen
  • ctype_lower — Auf Kleinbuchstaben überprüfen
  • ctype_print — Auf druckbare Zeichen überprüfen
  • ctype_punct — Prüft auf Sonderzeichen, d.h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.
  • ctype_space — Auf Leerzeichen überprüfen
  • ctype_upper — Auf Großbuchstaben prüfen
  • ctype_xdigit — Auf Hexadezimalziffern überprüfen


Auf alphanumerische Zeichen überprüfen

  • « Ctype Funktionen
  • ctype_alpha »
  • PHP Manual
  • Ctype Funktionen
  • Auf alphanumerische Zeichen überprüfen

ctype_alnum

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_alnum — Auf alphanumerische Zeichen überprüfen

Beschreibung

ctype_alnum ( mixed $text ) : bool

Gibt true zurück, wenn alle Zeichen in text entweder ein Buchstabe oder eine Ziffer sind. Anderenfalls wird false zurückgegeben.

Parameter-Liste

text

Der zu prüfende String.

Hinweis:

Wenn ein int zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII-Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des erweiterten ASCII-Zeichensatzes zu erlauben). Alle anderen Integer werden wie eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.

Rückgabewerte

Liefert true wenn jedes Zeichen in text ein Buchstabe oder eine Ziffer ist, sonst false.

Beispiele

Beispiel #1 ctype_alnum() Beispiel (standard-locale vorausgesetzt)

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
    if (ctype_alnum($testcase)) {
        echo "Der String $testcase enthält nur Buchstaben und Ziffern.\n";
    } else {
        echo "Der String $testcase besteht nicht nur aus Buchstaben und Ziffern.\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der String AbCd1zyZ9 enthält nur Buchstaben und Ziffern.
Der String foo!#$bar besteht nicht nur aus Buchstaben und Ziffern.

Siehe auch

  • ctype_alpha() - Auf Buchstabe(n) überprüfen
  • ctype_digit() - Auf Ziffern überprüfen
  • setlocale() - Legt regionale (locale) Einstellungen fest


Auf Buchstabe(n) überprüfen

  • « ctype_alnum
  • ctype_cntrl »
  • PHP Manual
  • Ctype Funktionen
  • Auf Buchstabe(n) überprüfen

ctype_alpha

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_alpha — Auf Buchstabe(n) überprüfen

Beschreibung

ctype_alpha ( mixed $text ) : bool

Gibt true zurück, wenn alle Zeichen in text Buchstaben im Sinne der aktuellen locale-Einstellung sind. Anderenfalls wird false zurückgegeben. In der Standardeinstellung für locale C gelten nur [A-Za-z] als Buchstaben und ctype_alpha() ist gleichbedeutend zu (ctype_upper($text) || ctype_lower($text)), wenn $text nur ein Zeichen enthält. Es gibt jedoch auch Sprachen, in denen einzelne Buchstaben weder als groß- noch als kleingeschrieben gelten.

Parameter-Liste

text

Der zu prüfende String.

Hinweis:

Wenn ein int zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII-Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des erweiterten ASCII-Zeichensatzes zu erlauben). Alle anderen Integer werden wie eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.

Rückgabewerte

Liefert true wenn jedes Zeichen in text ein Buchstabe ist, sonst false.

Beispiele

Beispiel #1 ctype_alpha()-Beispiel (standard-locale vorausgesetzt)

<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
    if (ctype_alpha($testcase)) {
        echo "Der String $testcase besteht nur aus Buchstaben.\n";
    } else {
        echo "Der String $testcase enthält nicht nur Buchstaben.\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der String KjgWZC besteht nur aus Buchstaben.
Der String arf12 enthält nicht nur Buchstaben.

Siehe auch

  • ctype_upper() - Auf Großbuchstaben prüfen
  • ctype_lower() - Auf Kleinbuchstaben überprüfen
  • setlocale() - Legt regionale (locale) Einstellungen fest


Auf Steuerzeichen überprüfen

  • « ctype_alpha
  • ctype_digit »
  • PHP Manual
  • Ctype Funktionen
  • Auf Steuerzeichen überprüfen

ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_cntrl — Auf Steuerzeichen überprüfen

Beschreibung

ctype_cntrl ( mixed $text ) : bool

Prüft ob alle Zeichen des übergebenen Strings Steuerzeichen sind. Steuerzeichen sind z.B. Zeilenumbruch, Tabulator, Escape.

Parameter-Liste

text

Der zu prüfende String.

Hinweis:

Wenn ein int zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII-Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des erweiterten ASCII-Zeichensatzes zu erlauben). Alle anderen Integer werden wie eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.

Rückgabewerte

Liefert true wenn jedes Zeichen in text ein Steuerzeichen ist, sonst false.

Beispiele

Beispiel #1 ctype_cntrl() Beispiel

<?php
$strings = array('string1' => "\n\r\t", 'string2' => 'arf12');
foreach ($strings as $name => $testcase) {
    if (ctype_cntrl($testcase)) {
        echo "Der String '$name' besteht nur aus Steuerzeichen.\n";
    } else {
        echo "Der String '$name' enthält nicht nur Steuerzeichen.\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der String 'string1' besteht nur aus Steuerzeichen.
Der String 'string2' enthält nicht nur Steuerzeichen.

Siehe auch

  • ctype_print() - Auf druckbare Zeichen überprüfen


Auf Ziffern überprüfen

  • « ctype_cntrl
  • ctype_graph »
  • PHP Manual
  • Ctype Funktionen
  • Auf Ziffern überprüfen

ctype_digit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_digit — Auf Ziffern überprüfen

Beschreibung

ctype_digit ( mixed $text ) : bool

Prüft ob der übergebene String nur aus Ziffern besteht.

Parameter-Liste

text

Der zu prüfende String.

Hinweis:

Wenn ein int zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII-Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des erweiterten ASCII-Zeichensatzes zu erlauben). Alle anderen Integer werden wie eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.

Rückgabewerte

Liefert true wenn jedes Zeichen in text eine Ziffer ist, ansonsten false.

Beispiele

Beispiel #1 ctype_digit() Beispiel

<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
    if (ctype_digit($testcase)) {
        echo "Der String $testcase besteht aus Ziffern.\n";
    } else {
        echo "Der String $testcase enthält nicht nur Ziffern.\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der String 1820.20 enthält nicht nur Ziffern.
Der String 10002 besteht aus Ziffern.
Der String wsl!12 enthält nicht nur Ziffern.

Beispiel #2 A ctype_digit() example comparing strings with integers

<?php

$numeric_string = '42';
$integer        = 42;

ctype_digit($numeric_string);  // true
ctype_digit($integer);         // false

is_numeric($numeric_string);   // true
is_numeric($integer);          // true
?>

Siehe auch

  • ctype_alnum() - Auf alphanumerische Zeichen überprüfen
  • ctype_xdigit() - Auf Hexadezimalziffern überprüfen
  • is_numeric() - Prüft, ob eine Variable eine Zahl oder ein numerischer String ist
  • is_int() - Prüft, ob eine Variable vom Typ int ist
  • is_string() - Prüft, ob Variable vom Typ string ist


Auf druckbare Zeichen (außer Leerzeichen) überprüfen

  • « ctype_digit
  • ctype_lower »
  • PHP Manual
  • Ctype Funktionen
  • Auf druckbare Zeichen (außer Leerzeichen) überprüfen

ctype_graph

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_graph — Auf druckbare Zeichen (außer Leerzeichen) überprüfen

Beschreibung

ctype_graph ( mixed $text ) : bool

Prüft ob jedes Zeichen in text druckbar ist und tatsächlich eine sichtbare Ausgabe produziert (kein Leerzeichen).

Parameter-Liste

text

Der zu prüfende String.

Hinweis:

Wenn ein int zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII-Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des erweiterten ASCII-Zeichensatzes zu erlauben). Alle anderen Integer werden wie eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.

Rückgabewerte

Liefert true wenn jedes Zeichen in text druckbar ist und eine sichtbare Ausgabe produziert (keine Leerzeichen), ansonsten false.

Beispiele

Beispiel #1 ctype_graph() Beispiel

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
    if (ctype_graph($testcase)) {
        echo "Der String '$name' besteht aus druckbaren Zeichen.\n";
    } else {
        echo "Der String '$name' enthält nicht nur druckbare Zeichen.\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der String 'string1' enthält nicht nur druckbare Zeichen.
Der String 'string2' besteht aus druckbaren Zeichen.
Der String 'string3' besteht aus druckbaren Zeichen.

Siehe auch

  • ctype_alnum() - Auf alphanumerische Zeichen überprüfen
  • ctype_print() - Auf druckbare Zeichen überprüfen
  • ctype_punct() - Prüft auf Sonderzeichen, d.h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.


Auf Kleinbuchstaben überprüfen

  • « ctype_graph
  • ctype_print »
  • PHP Manual
  • Ctype Funktionen
  • Auf Kleinbuchstaben überprüfen

ctype_lower

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_lower — Auf Kleinbuchstaben überprüfen

Beschreibung

ctype_lower ( mixed $text ) : bool

Prüft ob jedes Zeichen in text ein Kleinbuchstabe im Sinne der aktuellen locale-Einstellung ist.

Parameter-Liste

text

Der zu prüfende String.

Hinweis:

Wenn ein int zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII-Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des erweiterten ASCII-Zeichensatzes zu erlauben). Alle anderen Integer werden wie eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.

Rückgabewerte

Liefert true wenn jedes Zeichen in text in den aktuellen Locale-Einstellungen ein Kleinbuchstabe ist.

Beispiele

Beispiel #1 ctype_lower() Beispiel

<?php
$strings = array('aac123', 'qiutoas', 'QASsdks');
foreach ($strings as $testcase) {
    if (ctype_lower($testcase)) {
        echo "Der String $testcase besteht aus Kleinbuchstaben.\n";
    } else {
        echo "Der String $testcase enthält nicht nur Kleinbuchstaben.\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der String aac123 enthält nicht nur Kleinbuchstaben.
Der String qiutoas besteht aus Kleinbuchstaben.
Der String QASsdks enthält nicht nur Kleinbuchstaben.

Siehe auch

  • ctype_alpha() - Auf Buchstabe(n) überprüfen
  • ctype_upper() - Auf Großbuchstaben prüfen
  • setlocale() - Legt regionale (locale) Einstellungen fest


Auf druckbare Zeichen überprüfen

  • « ctype_lower
  • ctype_punct »
  • PHP Manual
  • Ctype Funktionen
  • Auf druckbare Zeichen überprüfen

ctype_print

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_print — Auf druckbare Zeichen überprüfen

Beschreibung

ctype_print ( mixed $text ) : bool

Prüft ob jedes Zeichen in text tatsächtlich eine Ausgabe bewirkt (inkl. Leerzeichen). Wenn text Steuerzeichen oder Zeichen, die keine Ausgabe- oder Steuerungsfunktion haben, enthält, wird false zurückgegeben.

Parameter-Liste

text

Der zu prüfende String.

Hinweis:

Wenn ein int zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII-Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des erweiterten ASCII-Zeichensatzes zu erlauben). Alle anderen Integer werden wie eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.

Rückgabewerte

Liefert true wenn alle Zeichen in text druckbar sind, sonst false.

Beispiele

Beispiel #1 ctype_print() Beispiel

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
    if (ctype_print($testcase)) {
        echo "Der String '$name' besteht aus druckbaren Zeichen.\n";
    } else {
        echo "Der String '$name' enthält nicht nur druckbare Zeichen.\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der String 'string1' enthält nicht nur druckbare Zeichen.
Der String 'string2' besteht aus printable druckbare Zeichen.
Der String 'string3' besteht aus printable druckbare Zeichen.

Siehe auch

  • ctype_cntrl() - Auf Steuerzeichen überprüfen
  • ctype_graph() - Auf druckbare Zeichen (außer Leerzeichen) überprüfen
  • ctype_punct() - Prüft auf Sonderzeichen, d.h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.


Prüft auf Sonderzeichen, d.h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.

  • « ctype_print
  • ctype_space »
  • PHP Manual
  • Ctype Funktionen
  • Prüft auf Sonderzeichen, d.h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.

ctype_punct

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_punct — Prüft auf Sonderzeichen, d.h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.

Beschreibung

ctype_punct ( mixed $text ) : bool

Prüft ob alle Zeichen des Strings text Sonderzeichen, d.h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.

Parameter-Liste

text

Der zu prüfende String.

Hinweis:

Wenn ein int zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII-Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des erweiterten ASCII-Zeichensatzes zu erlauben). Alle anderen Integer werden wie eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.

Rückgabewerte

Liefert true wenn alle Zeichen in text Sonderzeichen sind, sonst false.

Beispiele

Beispiel #1 ctype_punct() Beispiel

<?php
$strings = array('ABasdk!@!$#', '!@ # $', '*&$()');
foreach ($strings as $testcase) {
    if (ctype_punct($testcase)) {
        echo "Der String $testcase enthält ausschließlich Sonderzeichen.\n";
    } else {
        echo "Der String $testcase enthält nicht nur Sonderzeichen.\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der String ABasdk!@!$# enthält nicht nur Sonderzeichen.
Der String !@ # $ enthält nicht nur Sonderzeichen.
Der String *&$() enthält ausschließlich Sonderzeichen.

Siehe auch

  • ctype_cntrl() - Auf Steuerzeichen überprüfen
  • ctype_graph() - Auf druckbare Zeichen (außer Leerzeichen) überprüfen


Auf Leerzeichen überprüfen

  • « ctype_punct
  • ctype_upper »
  • PHP Manual
  • Ctype Funktionen
  • Auf Leerzeichen überprüfen

ctype_space

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_space — Auf Leerzeichen überprüfen

Description

ctype_space ( mixed $text ) : bool

Prüft ob jedes Zeichen in text irgendeine Art Leerzeichen erzeugt. Neben dem eigentlichen Leerzeichen schließt das auch TAB, Zeilenvorschub, Carriage Return und Formularvorschub mit ein.

Parameter-Liste

text

Der zu prüfende String.

Hinweis:

Wenn ein int zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII-Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des erweiterten ASCII-Zeichensatzes zu erlauben). Alle anderen Integer werden wie eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.

Rückgabewerte

Liefert true wenn jedes Zeichen in text ein Leerzeichen ist (space, tab, linefeed ...), sonst false.

Beispiele

Beispiel #1 ctype_space() Beispiel

<?php
$strings = array(
    'string1' => "\n\r\t",
    'string2' => "\narf12",
    'string3' => '\n\r\t' // beachte die einfachen Anführungszeichen
);
foreach ($strings as $name => $testcase) {
    if (ctype_space($testcase)) {
        echo "Der String '$name' besteht aus Leerzeichen.\n";
    } else {
        echo "Der String '$name' enthält nicht nur Leerzeichen.\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der String 'string1' besteht aus Leerzeichen.
Der String 'string2' enthält nicht nur Leerzeichen.
Der String 'string3' enthält nicht nur Leerzeichen.

Siehe auch

  • ctype_cntrl() - Auf Steuerzeichen überprüfen
  • ctype_graph() - Auf druckbare Zeichen (außer Leerzeichen) überprüfen
  • ctype_punct() - Prüft auf Sonderzeichen, d.h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.


Auf Großbuchstaben prüfen

  • « ctype_space
  • ctype_xdigit »
  • PHP Manual
  • Ctype Funktionen
  • Auf Großbuchstaben prüfen

ctype_upper

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_upper — Auf Großbuchstaben prüfen

Beschreibung

ctype_upper ( mixed $text ) : bool

Prüft ob jedes Zeichen in text ein Großbuchstabe im Sinne der aktuellen locale-Einstellung ist.

Parameter-Liste

text

Der zu prüfende String.

Hinweis:

Wenn ein int zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII-Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des erweiterten ASCII-Zeichensatzes zu erlauben). Alle anderen Integer werden wie eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.

Rückgabewerte

Liefert true wenn jedes Zeichen in text im aktuellen Locale ein Großbuchstabe ist, sonst false.

Beispiele

Beispiel #1 ctype_upper() Beispiel (using the default locale)

<?php
$strings = array('AKLWC139', 'LMNSDO', 'akwSKWsm');
foreach ($strings as $testcase) {
    if (ctype_upper($testcase)) {
        echo "Der String $testcase besteht aus Großbochstaben.\n";
    } else {
        echo "Der String $testcase enthält nicht nur Großbuchstaben.\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der String AKLWC139 enthält nicht nur Großbuchstaben.
Der String LMNSDO besteht aus Großbuchstaben.
Der String akwSKWsm enthält nicht nur Großbuchstaben.

Siehe auch

  • ctype_alpha() - Auf Buchstabe(n) überprüfen
  • ctype_lower() - Auf Kleinbuchstaben überprüfen
  • setlocale() - Legt regionale (locale) Einstellungen fest


Auf Hexadezimalziffern überprüfen

  • « ctype_upper
  • Filter »
  • PHP Manual
  • Ctype Funktionen
  • Auf Hexadezimalziffern überprüfen

ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_xdigit — Auf Hexadezimalziffern überprüfen

Beschreibung

ctype_xdigit ( mixed $text ) : bool

Prüft jedes Zeichen in text eine Hexadezimalziffer ist, also eine Dezimalziffer oder ein Zeichen aus [A-Fa-f].

Parameter-Liste

text

Der zu prüfende String.

Hinweis:

Wenn ein int zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII-Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des erweiterten ASCII-Zeichensatzes zu erlauben). Alle anderen Integer werden wie eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.

Rückgabewerte

Liefert true wenn jedes Zeichen in text eine Hexadezimalziffer ist, sonst false.

Beispiele

Beispiel #1 ctype_xdigit() Beispiel

<?php
$strings = array('AB10BC99', 'AR1012', 'ab12bc99');
foreach ($strings as $testcase) {
    if (ctype_xdigit($testcase)) {
        echo "Der String $testcase besteht aus Hexadezimalziffern.\n";
    } else {
        echo "Der String $testcase enthält nicht nur Hexadezimalziffern.\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der String AB10BC99 besteht aus Hexadezimalziffern.
Der String AR1012 enthält nicht nur Hexadezimalziffern.
Der String ab12bc99 besteht aus Hexadezimalziffern.

Siehe auch

  • ctype_digit() - Auf Ziffern überprüfen


Datenfilterung

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Types of filters
    • Validate filters
    • Sanitize filters
    • Other filters
    • Filter flags
  • Vordefinierte Konstanten
  • Beispiele
    • Validation
    • Sanitization
  • Filter-Funktionen
    • filter_has_var — Prüft, ob eine Variable des angegebenen Typs existiert
    • filter_id — Liefert die Filter-ID zu einem Filternamen
    • filter_input_array — Nimmt mehrere Variablen von Außen entgegen und filtert sie optional
    • filter_input — Nimmt eine Variable von Außen entgegen und filtert sie optional
    • filter_list — Liefert eine Liste aller unterstützten Filter
    • filter_var_array — Nimmt mehrere Variablen entgegen und filtert sie optional
    • filter_var — Filtern einer Variablen mit einem angegebenen Filter


Einführung

Diese Erweiterung filtert Daten, indem sie diese entweder validiert oder säubert. Dies ist besonders nützlich, wenn die Datenquelle unbekannte (oder fremde) Daten enthält, wie eine Eingabe vom Nutzer. Zum Beispiel können diese Daten aus einem HTML-Formular stammen.

Es gibt zwei Haupttypen der Filterung: Validierung und Säuberung.

Validierung wird genutzt, um zu prüfen, ob die Daten gewisse Bedingungen erfüllen. Zum Beispiel führt die Angabe von FILTER_VALIDATE_EMAIL dazu, dass entschieden wird, ob die Daten eine gültige E-Mail-Adresse bilden, aber es wird keine Änderung an den Daten selbst vorgenommen.

Säuberung wird die Daten säubern, indem es sie so verändert, dass unerwünschte Zeichen entfernt werden. Zum Beispiel führt die Angabe von FILTER_SANITIZE_EMAIL dazu, dass Zeichen entfernt werden, die nicht in einer E-Mail-Adresse enthalten sein sollten. Das bedeutet, dass die Daten nicht validiert werden.

Flags werden optional sowohl bei der Validierung als auch bei der Säuberung genutzt, um das Verhalten an Ihre Anforderungen anzupassen. Zum Beispiel führt die Angabe von FILTER_FLAG_PATH_REQUIRED bei der Filterung eines URL dazu, dass ein Pfad (wie /foo in http://example.org/foo) erzwungen wird.


Installation

Die Filter-Extension ist seit PHP 5.2.0 standardmäßig aktiviert. Um die Filter-Extension zu deaktivieren, kann --disable-filter verwendet werden.

Vor PHP 5.2 wurde eine experimentelle PECL-Extension verwendet, die aber nicht mehr empfohlen und auch nicht mehr aktualisiert wird.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Filter-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
filter.default | "unsafe_raw" | PHP_INI_PERDIR | PHP_INI_ALL in filter <= 0.9.4. Verfügbar seit PHP 5.2.0.
filter.default_flags | NULL | PHP_INI_PERDIR | PHP_INI_ALL in filter <= 0.9.4. Verfügbar seit PHP 5.2.0.
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

filter.default string

Filtere alle $_GET-, $_POST-, $_COOKIE-, $_REQUEST- und $_SERVER-Daten mit diesem Filter. Auf die Originaldaten kann mit filter_input() zugegriffen werden.

Akzeptiert den Namen des Filters, der standardmäßig verwendet werden soll. Die verfügbaren Filter sind in der Liste der existierenden Filter zu finden.

Hinweis:

Seien Sie vorsichtig bezüglich der Standardflags für die Standardfilter. Sie sollten diese explizit auf den gewünschten Wert setzen. Um zum Beispiel den Standardfilter so zu konfigurieren, dass er sich genau wie htmlspecialchars() verhält, müssen Sie die Standardflags, wie weiter unten gezeigt, auf 0 setzen.

Beispiel #1 Den Standardfilters so einstellen, dass er sich wie htmlspecialchars verhält

filter.default = full_special_chars
filter.default_flags = 0

filter.default_flags int

Anzuwendende Standardflags, wenn der Standardfilter eingestellt ist. Aus Gründen der Abwärtskompatibilität ist der Vorgabewert FILTER_FLAG_NO_ENCODE_QUOTES . Alle verfügbaren Flagnamen sind in der Flag-Liste zu finden.


  • « Laufzeit-Konfiguration
  • Types of filters »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert keine Ressource-Typen.


Types of filters

Inhaltsverzeichnis

  • Validate filters
  • Sanitize filters
  • Other filters
  • Filter flags


Validate filters

Liste der Filter für die Validierung
ID | Name | Optionen | Flags | Beschreibung
FILTER_VALIDATE_BOOLEAN | "boolean" | default | FILTER_NULL_ON_FAILURE | Gibt true für die Werte "1", "true", "on" und "yes" zurück. Sonst false. If FILTER_NULL_ON_FAILURE is set, false is returned only for "0", "false", "off", "no", and "", and null is returned for all non-boolean values.
FILTER_VALIDATE_DOMAIN | "validate_domain" | default | FILTER_FLAG_HOSTNAME | Prüft, ob die Länge der Domainnamen-Labels gültig ist. Validiert Domainnamen gegen RFC 1034, RFC 1035, RFC 952, RFC 1123, RFC 2732, RFC 2181 und RFC 1123. Das optionale Flag FILTER_FLAG_HOSTNAME ermöglicht es im Besonderen Hostnamen zu validieren (diese müssen mit einem alphanumerischen Zeichen beginnen, und dürfen nur alphanumerische Zeichen und Bindestriche enthalten).
FILTER_VALIDATE_EMAIL | "validate_email" | default | FILTER_FLAG_EMAIL_UNICODE | Prüft, ob der Wert eine gültige E-Mail-Adresse darstellt. Im Allgemeinen validiert dies E-Mail-Adressen gegen die Syntax in RFC 822, mit den Ausnahmen, dass Kommentare und Whitespace-Folding und punktlose Domainnamen nicht unterstützt werden.
FILTER_VALIDATE_FLOAT | "float" | default, decimal, min_range, max_range | FILTER_FLAG_ALLOW_THOUSAND | Prüft ob der Wert ein Float Wert ist, optional ob der Wert in der definierten Spanne liegt, und konvertiert im Erfolgsfall zu float.
FILTER_VALIDATE_INT | "int" | default, min_range, max_range | FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX | Prüft ob der Wert ein Integer Wert ist, optional ob der Wert in der definierten Spanne liegt, und konvertiert im Erfolgsfall zu int.
FILTER_VALIDATE_IP | "validate_ip" | default | FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE | Prüft ob der Wert eine gültige IP Adresse ist. Optional kann angegeben werden ob der Wert eine IPv4, IPv6 Adresse sein soll. Oder das die IP Adresse nicht aus einem Privaten oder Reservierten Bereich stammen soll.
FILTER_VALIDATE_MAC | "validate_mac_address" | default |  | Validiert Werte als MAC-Adresse.
FILTER_VALIDATE_REGEXP | "validate_regexp" | default, regexp |  | Validates value against regexp, a Perl-compatible regular expression.
FILTER_VALIDATE_URL | "validate_url" | default | FILTER_FLAG_SCHEME_REQUIRED, FILTER_FLAG_HOST_REQUIRED, FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED | Validates value as URL (according to » http://www.faqs.org/rfcs/rfc2396), optionally with required components. Beware a valid URL may not specify the HTTP protocol http:// so further validation may be required to determine the URL uses an expected protocol, e.g. ssh:// or mailto:. Note that the function will only find ASCII URLs to be valid; internationalized domain names (containing non-ASCII characters) will fail.

Hinweis:

As of PHP 5.4.11, the numbers +0 and -0 validate as both integers as well as floats (using FILTER_VALIDATE_FLOAT and FILTER_VALIDATE_INT). Before PHP 5.4.11 they only validated as floats (using FILTER_VALIDATE_FLOAT).

When default is set to option, default's value is used if value is not validated.

Changelog

Version | Beschreibung
7.4.0 | min_range und max_range Optionen für FILTER_VALIDATE_FLOAT hinzugefügt.
7.0.0 | FILTER_FLAG_HOSTNAME hinzugefügt
5.5.0 | FILTER_VALIDATE_MAC hinzugefügt
5.2.1 | FILTER_VALIDATE_URL verwendet nun implizit FILTER_FLAG_SCHEME_REQUIRED und FILTER_FLAG_HOST_REQUIRED.


Sanitize filters

List of filters for sanitization
ID | Name | Flags | Description
FILTER_SANITIZE_EMAIL | "email" |  | Remove all characters except letters, digits and !#$%&'*+-=?^_`{|}~@.[].
FILTER_SANITIZE_ENCODED | "encoded" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH | URL-encode string, optionally strip or encode special characters.
FILTER_SANITIZE_MAGIC_QUOTES | "magic_quotes" |  | Apply addslashes().
FILTER_SANITIZE_NUMBER_FLOAT | "number_float" | FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC | Remove all characters except digits, +- and optionally .,eE.
FILTER_SANITIZE_NUMBER_INT | "number_int" |  | Remove all characters except digits, plus and minus sign.
FILTER_SANITIZE_SPECIAL_CHARS | "special_chars" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_HIGH | HTML-escape '"<>& and characters with ASCII value less than 32, optionally strip or encode other special characters.
FILTER_SANITIZE_FULL_SPECIAL_CHARS | "full_special_chars" | FILTER_FLAG_NO_ENCODE_QUOTES, | Equivalent to calling htmlspecialchars() with ENT_QUOTES set. Encoding quotes can be disabled by setting FILTER_FLAG_NO_ENCODE_QUOTES. Like htmlspecialchars(), this filter is aware of the default_charset and if a sequence of bytes is detected that makes up an invalid character in the current character set then the entire string is rejected resulting in a 0-length string. When using this filter as a default filter, see the warning below about setting the default flags to 0.
FILTER_SANITIZE_STRING | "string" | FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Strip tags, optionally strip or encode special characters.
FILTER_SANITIZE_STRIPPED | "stripped" |  | Alias of "string" filter.
FILTER_SANITIZE_URL | "url" |  | Remove all characters except letters, digits and $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_UNSAFE_RAW | "unsafe_raw" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Do nothing, optionally strip or encode special characters. Dieser Filter hat den Alias FILTER_DEFAULT.

Warnung

When using one of these filters as a default filter either through your ini file or through your web server's configuration, the default flags is set to FILTER_FLAG_NO_ENCODE_QUOTES. You need to explicitly set filter.default_flags to 0 to have quotes encoded by default. Like this:

Beispiel #1 Configuring the default filter to act like htmlspecialchars

filter.default = full_special_chars
filter.default_flags = 0

Changelog

Version | Beschreibung
5.2.11/5.3.1 | Schrägstriche (/) werden von FILTER_SANITIZE_EMAIL entfernt. Zuvor blieben sie erhalten.


Other filters

List of miscellaneous filters
ID | Name | Options | Flags | Description
FILTER_CALLBACK | "callback" | callable function or method | All flags are ignored | Call user-defined function to filter data.


Filter flags

List of filter flags
ID | Used with | Description
FILTER_FLAG_STRIP_LOW | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Strips characters that have a numerical value <32.
FILTER_FLAG_STRIP_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Strips characters that have a numerical value >127.
FILTER_FLAG_STRIP_BACKTICK | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Entfernt Backtick-Zeichen.
FILTER_FLAG_ALLOW_FRACTION | FILTER_SANITIZE_NUMBER_FLOAT | Allows a period (.) as a fractional separator in numbers.
FILTER_FLAG_ALLOW_THOUSAND | FILTER_SANITIZE_NUMBER_FLOAT, FILTER_VALIDATE_FLOAT | Allows a comma (,) as a thousands separator in numbers.
FILTER_FLAG_ALLOW_SCIENTIFIC | FILTER_SANITIZE_NUMBER_FLOAT | Allows an e or E for scientific notation in numbers.
FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_SANITIZE_STRING | If this flag is present, single (') and double (") quotes will not be encoded.
FILTER_FLAG_ENCODE_LOW | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Encodes all characters with a numerical value <32.
FILTER_FLAG_ENCODE_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Encodes all characters with a numerical value >127.
FILTER_FLAG_ENCODE_AMP | FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Encodes ampersands (&).
FILTER_NULL_ON_FAILURE | FILTER_VALIDATE_BOOLEAN | Returns null for unrecognized boolean values.
FILTER_FLAG_ALLOW_OCTAL | FILTER_VALIDATE_INT | Regards inputs starting with a zero (0) as octal numbers. This only allows the succeeding digits to be 0-7.
FILTER_FLAG_ALLOW_HEX | FILTER_VALIDATE_INT | Regards inputs starting with 0x or 0X as hexadecimal numbers. This only allows succeeding characters to be a-fA-F0-9.
FILTER_FLAG_EMAIL_UNICODE | FILTER_VALIDATE_EMAIL | Erlaubt, dass der lokale Teil der E-Mail-Adresse Unicode-Zeichen enthalten kann.
FILTER_FLAG_IPV4 | FILTER_VALIDATE_IP | Allows the IP address to be in IPv4 format.
FILTER_FLAG_IPV6 | FILTER_VALIDATE_IP | Allows the IP address to be in IPv6 format.
FILTER_FLAG_NO_PRIV_RANGE FILTER_VALIDATE_IP

Fails validation for the following private IPv4 ranges: 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16.

Fails validation for the IPv6 addresses starting with FD or FC.

FILTER_FLAG_NO_RES_RANGE FILTER_VALIDATE_IP

Die Validierung schlägt für die folgenden reservierten IPv4-Bereiche fehl: 0.0.0.0/8, 169.254.0.0/16, 127.0.0.0/8 and 240.0.0.0/4.

Die Validierung schlägt für die folgenden reservierten IPv6-Bereiche fehl: ::1/128, ::/128, ::ffff:0:0/96 and fe80::/10.

FILTER_FLAG_SCHEME_REQUIRED | FILTER_VALIDATE_URL | Verlangt, dass der URL ein Schema enthält.
FILTER_FLAG_HOST_REQUIRED | FILTER_VALIDATE_URL | Verlangt, dass der URL einen Host enthält.
FILTER_FLAG_PATH_REQUIRED | FILTER_VALIDATE_URL | Requires the URL to contain a path part.
FILTER_FLAG_QUERY_REQUIRED | FILTER_VALIDATE_URL | Requires the URL to contain a query string.
FILTER_REQUIRE_SCALAR | Verlangt, dass der Wert skalar ist.
FILTER_REQUIRE_ARRAY | Verlangt, dass der Wert ein Array ist.
FILTER_FORCE_ARRAY | Ist der Wert skalar, wird er als Array mit dem skalaren Wert als einzigem Element behandelt.

Changelog

Version | Beschreibung
7.3.0 | Die explizite Verwendung von FILTER_FLAG_SCHEME_REQUIRED und FILTER_FLAG_HOST_REQUIRED wurde missbilligt.
7.1.0 | FILTER_FLAG_EMAIL_UNICODE wurde hinzugefügt.
5.3.2 | FILTER_FLAG_STRIP_BACKTICK wurde hinzugefügt.
5.2.10 | FILTER_FLAG_NO_RES_RANGE unterstützt nun auch IPv6-Adressen.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

INPUT_POST (integer)
POST-Variablen.
INPUT_GET (integer)
GET-Variablen.
INPUT_COOKIE (integer)
COOKIE-Variablen.
INPUT_ENV (integer)
ENV-Variablen.
INPUT_SERVER (integer)
SERVER-Variablen.
INPUT_SESSION (integer)
SESSION-Variablen. (noch nicht implementiert)
INPUT_REQUEST (integer)
REQUEST-Variablen. (noch nicht implementiert)
FILTER_FLAG_NONE (integer)
Keine Flags.
FILTER_REQUIRE_SCALAR (integer)
Flag fordert skalare Werte als Eingabe.
FILTER_REQUIRE_ARRAY (integer)
Fordert ein Array als Eingabe.
FILTER_FORCE_ARRAY (integer)
Gibt immer ein Array zurück.
FILTER_NULL_ON_FAILURE (integer)
NULL anstelle von FALSE bei Fehlern verwenden.
FILTER_VALIDATE_INT (integer)
ID des "int"-Filters.
FILTER_VALIDATE_BOOLEAN (integer)
ID des "boolean"-Filters.
FILTER_VALIDATE_FLOAT (integer)
ID des "float"-Filters.
FILTER_VALIDATE_REGEXP (integer)
ID des "validate_regexp"-Filters.
FILTER_VALIDATE_URL (integer)
ID des "validate_url"-Filters.
FILTER_VALIDATE_DOMAIN (integer)
ID des "validate_domain"-Filters. (Verfügbar von PHP 7.0.0 an)
FILTER_VALIDATE_EMAIL (integer)
ID des "validate_email"-Filters.
FILTER_VALIDATE_IP (integer)
ID des "validate_ip"-Filters.
FILTER_VALIDATE_MAC (integer)
ID des "validate_mac_address"-Filters. (Verfügbar ab PHP 5.5.0)
FILTER_DEFAULT (integer)
ID des Standard-Filters ("unsafe_raw"). Das ist gleichwertig zu FILTER_UNSAFE_RAW.
FILTER_UNSAFE_RAW (integer)
ID des "unsafe_raw"-Filters.
FILTER_SANITIZE_STRING (integer)
ID des "string"-Filters.
FILTER_SANITIZE_STRIPPED (integer)
ID des "stripped"-Filters.
FILTER_SANITIZE_ENCODED (integer)
ID des "encoded"-Filters.
FILTER_SANITIZE_SPECIAL_CHARS (integer)
ID des "special_chars"-Filters.
FILTER_SANITIZE_EMAIL (integer)
ID des "email"-Filters.
FILTER_SANITIZE_URL (integer)
ID des "url"-Filters.
FILTER_SANITIZE_NUMBER_INT (integer)
ID des "number_int"-Filters.
FILTER_SANITIZE_NUMBER_FLOAT (integer)
ID des "number_float"-Filters.
FILTER_SANITIZE_MAGIC_QUOTES (integer)
ID des "magic_quotes"-Filters. (Missbilligt seit PHP 7.3.0; statt dessen ist FILTER_SANITIZE_ADD_SLASHES zu verwenden.)
FILTER_SANITIZE_ADD_SLASHES (integer)
ID des "add_slashes"-Filters. (Verfügbar von PHP 7.3.0 an)
FILTER_CALLBACK (integer)
ID des "callback"-Filters.
FILTER_FLAG_ALLOW_OCTAL (integer)
Oktale Notation (0[0-7]+) im "int"-Filter erlauben.
FILTER_FLAG_ALLOW_HEX (integer)
Hexadezimale Notation (0x[0-9a-fA-F]+) im "int"-Filter erlauben.
FILTER_FLAG_STRIP_LOW (integer)
Zeichen mit einem ASCII-Wert kleiner 32 entfernen.
FILTER_FLAG_STRIP_HIGH (integer)
Zeichen mit einem ASCII-Wert größer 127 entfernen.
FILTER_FLAG_STRIP_BACKTICK (integer)
Entfernt Backtick-Zeichen. (Verfügbar von PHP 5.3.2 an)
FILTER_FLAG_ENCODE_LOW (integer)
Zeichen mit einem ASCII-Wert kleiner 32 kodieren.
FILTER_FLAG_ENCODE_HIGH (integer)
Zeichen mit einem ASCII-Wert größer 127 kodieren.
FILTER_FLAG_ENCODE_AMP (integer)
& kodieren.
FILTER_FLAG_NO_ENCODE_QUOTES (integer)
' und " nicht kodieren.
FILTER_FLAG_EMPTY_STRING_NULL (integer)
(Aktuell ohne Verwendung.)
FILTER_FLAG_ALLOW_FRACTION (integer)
Brüche im "number_float"-Filter erlauben.
FILTER_FLAG_ALLOW_THOUSAND (integer)
Tausender-Trenner (,) im "number_float"-Filter erlauben.
FILTER_FLAG_ALLOW_SCIENTIFIC (integer)
Exponentialschreibweise (e, E) im "number_float"-Filter erlauben.
FILTER_FLAG_PATH_REQUIRED (integer)
Fordert Pfad im "validate_url"-Filter.
FILTER_FLAG_QUERY_REQUIRED (integer)
Fordert Abfrage im "validate_url"-Filter.
FILTER_FLAG_SCHEME_REQUIRED (integer)
Erfordert das Schema im "validate_url"-Filter. (Missbilligt seit PHP 7.3, da ohnehin im Filter impliziert.)
FILTER_FLAG_HOST_REQUIRED (integer)
Erfordert den Host im "validate_url"-Filter. (Missbilligt seit PHP 7.3, da ohnehin im Filter impliziert.)
FILTER_FLAG_HOSTNAME (integer)
Erfordert, dass Hostnamen mit einem alfanumerischen Zeichen beginnen und nur alfanumerische Zeichen und Bindestriche enthalten. (Verfügbar von PHP 7.0.0 an)
FILTER_FLAG_IPV4 (integer)
Nur IPv4-Adressen im "validate_ip"-Filter erlauben.
FILTER_FLAG_IPV6 (integer)
Nur IPv6-Adressen im "validate_ip"-Filter erlauben.
FILTER_FLAG_NO_RES_RANGE (integer)
Reservierte Adressen im "validate_ip"-Filter verweigern.
FILTER_FLAG_NO_PRIV_RANGE (integer)
Private Adressen im "validate_ip"-Filter verweigern.
FILTER_FLAG_EMAIL_UNICODE (integer)
Akzeptiert Unicode-Zeichen im lokalen Teil im "validate_email" Filter. (Verfügbar von PHP 7.1.0 an)


  • « Vordefinierte Konstanten
  • Validation »
  • PHP Manual
  • Filter
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Validation
  • Sanitization


Validation

Beispiel #1 Validating email addresses with filter_var()

<?php
$email_a = 'joe@example.com';
$email_b = 'bogus';

if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
    echo "Email address '$email_a' is considered valid.\n";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
    echo "Email address '$email_b' is considered valid.\n";
} else {
    echo "Email address '$email_b' is considered invalid.\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Email address 'joe@example.com' is considered valid.
Email address 'bogus' is considered invalid.

Beispiel #2 Validating IP addresses with filter_var()

<?php
$ip_a = '127.0.0.1';
$ip_b = '42.42';

if (filter_var($ip_a, FILTER_VALIDATE_IP)) {
    echo "IP address '$ip_a' is considered valid.";
}
if (filter_var($ip_b, FILTER_VALIDATE_IP)) {
    echo "IP address '$ip_b' is considered valid.";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

IP address '127.0.0.1' is considered valid.

Beispiel #3 Passing options to filter_var()

<?php
$int_a = '1';
$int_b = '-1';
$int_c = '4';
$options = array(
    'options' => array(
        'min_range' => 0,
        'max_range' => 3,
    )
);
if (filter_var($int_a, FILTER_VALIDATE_INT, $options) !== FALSE) {
    echo "Integer A '$int_a' is considered valid (between 0 and 3).\n";
}
if (filter_var($int_b, FILTER_VALIDATE_INT, $options) !== FALSE) {
    echo "Integer B '$int_b' is considered valid (between 0 and 3).\n";
}
if (filter_var($int_c, FILTER_VALIDATE_INT, $options) !== FALSE) {
    echo "Integer C '$int_c' is considered valid (between 0 and 3).\n";
}

$options['options']['default'] = 1;
if (($int_c = filter_var($int_c, FILTER_VALIDATE_INT, $options)) !== FALSE) {
    echo "Integer C '$int_c' is considered valid (between 0 and 3).";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Integer A '1' is considered valid (between 0 and 3).
Integer C '1' is considered valid (between 0 and 3).


Sanitization

Beispiel #1 Sanitizing and validating email addresses

<?php
$a = 'joe@example.org';
$b = 'bogus - at - example dot org';
$c = '(bogus@example.org)';

$sanitized_a = filter_var($a, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_a, FILTER_VALIDATE_EMAIL)) {
    echo "This (a) sanitized email address is considered valid.\n";
}

$sanitized_b = filter_var($b, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_b, FILTER_VALIDATE_EMAIL)) {
    echo "This sanitized email address is considered valid.";
} else {
    echo "This (b) sanitized email address is considered invalid.\n";
}

$sanitized_c = filter_var($c, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_c, FILTER_VALIDATE_EMAIL)) {
    echo "This (c) sanitized email address is considered valid.\n";
    echo "Before: $c\n";
    echo "After:  $sanitized_c\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

This (a) sanitized email address is considered valid.
This (b) sanitized email address is considered invalid.
This (c) sanitized email address is considered valid.
Before: (bogus@example.org)
After: bogus@example.org

Beispiel #2 Configuring a default filter

filter.default = full_special_chars
filter.default_flags = 0


Filter-Funktionen

Inhaltsverzeichnis

  • filter_has_var — Prüft, ob eine Variable des angegebenen Typs existiert
  • filter_id — Liefert die Filter-ID zu einem Filternamen
  • filter_input_array — Nimmt mehrere Variablen von Außen entgegen und filtert sie optional
  • filter_input — Nimmt eine Variable von Außen entgegen und filtert sie optional
  • filter_list — Liefert eine Liste aller unterstützten Filter
  • filter_var_array — Nimmt mehrere Variablen entgegen und filtert sie optional
  • filter_var — Filtern einer Variablen mit einem angegebenen Filter


Prüft, ob eine Variable des angegebenen Typs existiert

  • « Filter-Funktionen
  • filter_id »
  • PHP Manual
  • Filter-Funktionen
  • Prüft, ob eine Variable des angegebenen Typs existiert

filter_has_var

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_has_var — Prüft, ob eine Variable des angegebenen Typs existiert

Beschreibung

filter_has_var ( int $type , string $variable_name ) : bool

Parameter-Liste

type

Einer von INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER oder INPUT_ENV.

variable_name

Name der Variablen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Liefert die Filter-ID zu einem Filternamen

  • « filter_has_var
  • filter_input_array »
  • PHP Manual
  • Filter-Funktionen
  • Liefert die Filter-ID zu einem Filternamen

filter_id

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_id — Liefert die Filter-ID zu einem Filternamen

Beschreibung

filter_id ( string $filtername ) : int

Parameter-Liste

filtername

Name des Filters.

Rückgabewerte

ID des Filters bei Erfolg oder false, wenn keine gefunden wurde.

Siehe auch

  • filter_list() - Liefert eine Liste aller unterstützten Filter


Nimmt mehrere Variablen von Außen entgegen und filtert sie optional

  • « filter_id
  • filter_input »
  • PHP Manual
  • Filter-Funktionen
  • Nimmt mehrere Variablen von Außen entgegen und filtert sie optional

filter_input_array

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_input_array — Nimmt mehrere Variablen von Außen entgegen und filtert sie optional

Beschreibung

filter_input_array ( int $type , mixed $definition = ? , bool $add_empty = true ) : mixed

Diese Funktion ist nützlich, um mehrere Werte abzufragen ohne wiederholend filter_input() aufrufen zu müssen.

Parameter-Liste

type

Einer von INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_SESSION oder INPUT_ENV.

definition

Array dass die Argumente enthält. Ein gültiger Key ist ein string der einen Variablennamen enthält und ein gültiger Wert ist entweder ein Filter oder ein array welches den Filter, seine Flags und Optionen spezifiziert. Wenn der Wert ein Array ist, sind gültige Keys filter der den Filtertyp definiert, flags welches jegliche Flags die den Filter spezifizieren enthält und options welches die Optionen enthält die den Filter beschreiben. Für ein besseres Verständnis sehen Sie sich das Beispiel an.

Der Parameter kann auch ein Integer sein der eine Filterkonstante beschreibt. Dann werden alle Werte des Eingabearrays durch diesen Filter gefiltert.

add_empty

Füge dem Rückgabewert fehlende Keys als null hinzu.

Rückgabewerte

Bei Erfolg wird ein Array zurückgegeben, welches alle Werte der angefragten Variablen enthält. Ist das durch type bezeichnete Eingabearray nicht befüllt, gibt die Funktion null zurück, wenn die das FILTER_NULL_ON_FAILURE Flag nicht angegeben wurde, oder false andernfalls. Bei anderen Fehlern wird false zurückgegeben.

Ein einzelner Array-Wert ist false, wenn das Filtern fehlgeschlagen ist oder null, wenn die Variable nicht gesetzt ist. Wenn das Flag FILTER_NULL_ON_FAILURE benutzt wurde, wird false zurückgegeben, wenn die Variable nicht gesetzt ist und null, wenn das Filtern fehlgeschlagen ist. Ist der Parameter add_empty false, wird kein Arrayelement für nicht gesetzte Variablen hinzugefügt.

Beispiele

Beispiel #1 filter_input_array() Beispiel

<?php
error_reporting(E_ALL | E_STRICT);
/* data actually came from POST
$_POST = array(
    'product_id' => 'libgd<script>',
    'component'  => array('10'),
    'version'    => '2.0.33',
    'testarray'  => array('2', '23', '10', '12'),
    'testscalar' => '2',
);
*/

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_REQUIRE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'version'      => FILTER_SANITIZE_ENCODED,
    'doesnotexist' => FILTER_VALIDATE_INT,
    'testscalar'   => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    'testarray'    => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_ARRAY,
                           )

);

$myinputs = filter_input_array(INPUT_POST, $args);

var_dump($myinputs);
echo "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(6) {
  ["product_id"]=>
  string(17) "libgd%3Cscript%3E"
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["version"]=>
  string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  int(2)
  ["testarray"]=>
  array(4) {
    [0]=>
    int(2)
    [1]=>
    int(23)
    [2]=>
    int(10)
    [3]=>
    int(12)
  }
}

Changelog

Version | Beschreibung
5.4.0 | Der Paramter add_empty wurde hinzugefügt.

Anmerkungen

Hinweis:

Es gibt keinen REQUEST_TIME Key im INPUT_SERVER Array, weil dieser erst später in $_SERVER eingefügt wird.

Siehe auch

  • filter_input() - Nimmt eine Variable von Außen entgegen und filtert sie optional
  • filter_var_array() - Nimmt mehrere Variablen entgegen und filtert sie optional
  • Types of filters


Nimmt eine Variable von Außen entgegen und filtert sie optional

  • « filter_input_array
  • filter_list »
  • PHP Manual
  • Filter-Funktionen
  • Nimmt eine Variable von Außen entgegen und filtert sie optional

filter_input

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_input — Nimmt eine Variable von Außen entgegen und filtert sie optional

Beschreibung

filter_input ( int $type , string $variable_name , int $filter = FILTER_DEFAULT , mixed $options = ? ) : mixed

Parameter-Liste

type

Entweder INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER oder INPUT_ENV.

variable_name

Name der Variablen.

filter

Die ID des anzuwendenden Filters. Die Handbuchseite Types of filters zeigt die verfügbaren Filter auf.

Falls dieser Parameter ausgelassen wird, so wird FILTER_DEFAULT verwendet, was zu FILTER_UNSAFE_RAW äquivalent ist. Dies wird dazu führen, dass keine Filterung stattfindet.

options

Assoziatives Array mit Optionen oder bitweise Disjunktion von Flags. Wenn der Filter Optionen akzeptiert, können Flags auch im "flags" Feld des Arrays angegeben werden.

Rückgabewerte

Bei Erfolg wird der Wert zurückgegeben, false im Fehlerfall oder null, wenn die Variable variable_name nicht gesetzt ist. Wenn das Flag FILTER_NULL_ON_FAILURE benutzt wurde, wird false zurückgegeben, wenn die Variable nicht gesetzt ist und null, wenn das Filtern fehlgeschlagen ist.

Beispiele

Beispiel #1 filter_input() Beispiel

<?php
$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);
echo "Sie haben nach $search_html gesucht.\n";
echo "<a href='?search=$search_url'>Erneut suchen.</a>";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Sie haben nach Ich &#38 Sohn gesucht.
<a href='?search=Ich%20%26%20Sohn'>Erneut suchen.</a>

Siehe auch

  • filter_var() - Filtern einer Variablen mit einem angegebenen Filter
  • filter_input_array() - Nimmt mehrere Variablen von Außen entgegen und filtert sie optional
  • filter_var_array() - Nimmt mehrere Variablen entgegen und filtert sie optional
  • Types of filters


Liefert eine Liste aller unterstützten Filter

  • « filter_input
  • filter_var_array »
  • PHP Manual
  • Filter-Funktionen
  • Liefert eine Liste aller unterstützten Filter

filter_list

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_list — Liefert eine Liste aller unterstützten Filter

Beschreibung

filter_list ( ) : array

Rückgabewerte

Liefert ein Array mit den Namen aller unterstützter Filter oder ein leeres Array, wenn keine Filter zur Verfügung stehen. Der Index des Arrays entspricht nicht der Filter-ID, diese kann durch die Funktion filter_id() ermittelt werden.

Beispiele

Beispiel #1 filter_list() Beispiel

<?php
print_r(filter_list());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => int
    [1] => boolean
    [2] => float
    [3] => validate_regexp
    [4] => validate_url
    [5] => validate_email
    [6] => validate_ip
    [7] => string
    [8] => stripped
    [9] => encoded
    [10] => special_chars
    [11] => unsafe_raw
    [12] => email
    [13] => url
    [14] => number_int
    [15] => number_float
    [16] => magic_quotes
    [17] => callback
)


Nimmt mehrere Variablen entgegen und filtert sie optional

  • « filter_list
  • filter_var »
  • PHP Manual
  • Filter-Funktionen
  • Nimmt mehrere Variablen entgegen und filtert sie optional

filter_var_array

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_var_array — Nimmt mehrere Variablen entgegen und filtert sie optional

Beschreibung

filter_var_array ( array $data , mixed $definition = ? , bool $add_empty = true ) : mixed

Diese Funktion ist nützlich um mehrere Werte abzufragen ohne wiederholt filter_var() aufrufen zu müssen.

Parameter-Liste

data

Ein Array mit String-Keys, welches die zu filternden Daten enthält.

definition

Ein Array dass die Argumente enthält. Ein gültiger Key ist ein String, der einen Variablennamen enthält, und ein gültiger Wert ist entweder ein Filtertyp oder ein array, das den Filter, seine Flags und Optionen spezifiziert. Wenn der Wert ein Array ist, sind gültige Keys filter, das den Filtertyp angibt, flags, das jegliche Flags, die den Filter spezifizieren, enthält, und options welches die Optionen enthält, die den Filter beschreiben. Für ein besseres Verständnis ist das Beispiel weiter unten zu konsultieren.

Der Parameter kann auch ein Integer sein der eine Filterkonstante beschreibt. Dann werden alle Werte des Arrays durch diesen Filter gefiltert.

add_empty

Nicht vorhandene Schlüssel werden als null zum Rückgabewert hinzugefügt.

Rückgabewerte

Bei Erfolg wird ein Array zurückgegeben, das alle Werte der angefragten Variablen enthält, oder false im Fehlerfall. Ein einzelner Array-Wert ist false, wenn das Filtern fehlgeschlagen ist oder null, wenn die Variable nicht gesetzt ist.

Beispiele

Beispiel #1 filter_var_array() Beispiel

<?php
error_reporting(E_ALL | E_STRICT);
$data = array(
    'product_id'    => 'libgd<script>',
    'component'     => '10',
    'versions'      => '2.0.33',
    'testscalar'    => array('2', '23', '10', '12'),
    'testarray'     => '2',
);

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_FORCE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'versions'     => FILTER_SANITIZE_ENCODED,
    'doesnotexist' => FILTER_VALIDATE_INT,
    'testscalar'   => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    'testarray'    => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_FORCE_ARRAY,
                           )

);

$myinputs = filter_var_array($data, $args);

var_dump($myinputs);
echo "\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(6) {
  ["product_id"]=>
  string(17) "libgd%3Cscript%3E"
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Changelog

Version | Beschreibung
5.4.0 | Der Parameter add_empty wurde hinzugefügt.

Siehe auch

  • filter_input_array() - Nimmt mehrere Variablen von Außen entgegen und filtert sie optional
  • filter_var() - Filtern einer Variablen mit einem angegebenen Filter
  • filter_input() - Nimmt eine Variable von Außen entgegen und filtert sie optional
  • Types of filters


Filtern einer Variablen mit einem angegebenen Filter

  • « filter_var_array
  • Function Handling »
  • PHP Manual
  • Filter-Funktionen
  • Filtern einer Variablen mit einem angegebenen Filter

filter_var

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_var — Filtern einer Variablen mit einem angegebenen Filter

Beschreibung

filter_var ( mixed $variable , int $filter = FILTER_DEFAULT , mixed $options = ? ) : mixed

Parameter-Liste

variable

Wert, der gefiltert werden soll. Es ist zu beachten, dass skalare Werte vor dem Filtern intern nach String konvertiert werden.

filter

Die ID des anzuwendenden Filters. Die Handbuchseite Types of filters zeigt die verfügbaren Filter auf.

Falls dieser Parameter ausgelassen wird, so wird FILTER_DEFAULT verwendet, was zu FILTER_UNSAFE_RAW äquivalent ist. Dies wird dazu führen, dass keine Filterung stattfindet.

options

Assoziatives Array mit Optionen oder bitweise Disjunktion von Flags. Wenn der Filter Optionen akzeptiert, können Flags im "flags" Feld des Arrays angegeben werden. Für "callback" Filter sollte der callback-Typ angegeben werden. Der Callback muss den zu filternden Wert als einziges Argument akzeptieren und den gefilterten/bereinigten Wert zurückgeben.

<?php
// für Filter, die Optionen zulassen, verwenden Sie dieses Format
$options = array(
    'options' => array(
        'default' => 3, // Rückgabewert, falls der Filter fehlschlägt
        // andere Optionen hier
        'min_range' => 0
    ),
    'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var = filter_var('0755', FILTER_VALIDATE_INT, $options);

// für Filter, die nur Flags zulassen, können Sie diese direkt übergeben
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);

// für Filter, die nur Flags zulassen, können Sie sie ebenfalls als Array übergeben
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
                  array('flags' => FILTER_NULL_ON_FAILURE));

// Callback-Validierungsfilter
function foo($value)
{
    // Erwartetes Format: Nachname, Vornamen
    if (strpos($value, ", ") === false) return false;
    list($surname, $givennames) = explode(", ", $value, 2);
    $empty = (empty($surname) || empty($givennames));
    $notstrings = (!is_string($surname) || !is_string($givennames));
    if ($empty || $notstrings) {
        return false;
    } else {
        return $value;
    }
}
$var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));
?>

Rückgabewerte

Gibt die gefilterten Daten zurück oder false wenn fehlgeschlagen.

Beispiele

Beispiel #1 filter_var()-Beispiel

<?php
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(15) "bob@example.com"
bool(false)

Siehe auch

  • filter_var_array() - Nimmt mehrere Variablen entgegen und filtert sie optional
  • filter_input() - Nimmt eine Variable von Außen entgegen und filtert sie optional
  • filter_input_array() - Nimmt mehrere Variablen von Außen entgegen und filtert sie optional
  • Types of filters


Function Handling

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Function handling Funktionen
    • call_user_func_array — Call a callback with an array of parameters
    • call_user_func — Aufruf der Callback-Funktion die als erster Parameter übergeben wurde
    • create_function — Erzeugen einer anonymen (Lambda-Stil) Funktion
    • forward_static_call_array — Call a static method and pass the arguments as array
    • forward_static_call — Call a static method
    • func_get_arg — Liefert ein bestimmtes Funktionsargument
    • func_get_args — Liefert Funktionsargumente als Array
    • func_num_args — Liefert die Anzahl der an eine Funktion übergebenen Argumente
    • function_exists — Falls die angegebene Funktion definiert ist, wird true zurück gegeben
    • get_defined_functions — Liefert ein Array aller definierten Funktionen
    • register_shutdown_function — Registriert eine Funktion zur Ausführung beim Skript-Abschluss
    • register_tick_function — Register a function for execution on each tick
    • unregister_tick_function — De-register a function for execution on each tick


  • « Function Handling
  • Installation/Konfiguration »
  • PHP Manual
  • Function Handling
  • Einführung

Einführung

Alle hier aufgeführten Funktionen führen Aufgaben im Umgang mit Funktionen selbst aus.


  • « Ressource-Typen
  • Function handling Funktionen »
  • PHP Manual
  • Function Handling
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Function handling Funktionen

Inhaltsverzeichnis

  • call_user_func_array — Call a callback with an array of parameters
  • call_user_func — Aufruf der Callback-Funktion die als erster Parameter übergeben wurde
  • create_function — Erzeugen einer anonymen (Lambda-Stil) Funktion
  • forward_static_call_array — Call a static method and pass the arguments as array
  • forward_static_call — Call a static method
  • func_get_arg — Liefert ein bestimmtes Funktionsargument
  • func_get_args — Liefert Funktionsargumente als Array
  • func_num_args — Liefert die Anzahl der an eine Funktion übergebenen Argumente
  • function_exists — Falls die angegebene Funktion definiert ist, wird true zurück gegeben
  • get_defined_functions — Liefert ein Array aller definierten Funktionen
  • register_shutdown_function — Registriert eine Funktion zur Ausführung beim Skript-Abschluss
  • register_tick_function — Register a function for execution on each tick
  • unregister_tick_function — De-register a function for execution on each tick


Call a callback with an array of parameters

  • « Function handling Funktionen
  • call_user_func »
  • PHP Manual
  • Function handling Funktionen
  • Call a callback with an array of parameters

call_user_func_array

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

call_user_func_array — Call a callback with an array of parameters

Beschreibung

call_user_func_array ( callable $callback , array $args ) : mixed

Calls the callback given by the first parameter with the parameters in args.

Parameter-Liste

callback

The callable to be called.

args

The parameters to be passed to the callback, as an indexed array.

Rückgabewerte

Returns the return value of the callback, or false on error.

Beispiele

Beispiel #1 call_user_func_array() example

<?php
function foobar($arg, $arg2) {
    echo __FUNCTION__, " got $arg and $arg2\n";
}
class foo {
    function bar($arg, $arg2) {
        echo __METHOD__, " got $arg and $arg2\n";
    }
}

// Call the foobar() function with 2 arguments
call_user_func_array("foobar", array("one", "two"));

// Call the $foo->bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

foobar got one and two
foo::bar got three and four

Beispiel #2 call_user_func_array() using namespace name

<?php

namespace Foobar;

class Foo {
    static public function test($name) {
        print "Hello {$name}!\n";
    }
}

// As of PHP 5.3.0
call_user_func_array(__NAMESPACE__ .'\Foo::test', array('Hannes'));

// As of PHP 5.3.0
call_user_func_array(array(__NAMESPACE__ .'\Foo', 'test'), array('Philip'));

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hello Hannes!
Hello Philip!

Beispiel #3 Using lambda function

<?php

$func = function($arg1, $arg2) {
    return $arg1 * $arg2;
};

var_dump(call_user_func_array($func, array(2, 4))); /* As of PHP 5.3.0 */

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(8)

Beispiel #4 Passing values by reference

<?php

function mega(&$a){
    $a = 55;
    echo "function mega \$a=$a\n";
}
$bar = 77;
call_user_func_array('mega',array(&$bar));
echo "global \$bar=$bar\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

function mega $a=55
global $bar=55

Anmerkungen

Hinweis:

Before PHP 5.4, referenced variables in args are passed to the function by reference, regardless of whether the function expects the respective parameter to be passed by reference. This form of call-time pass by reference does not emit a deprecation notice, but it is nonetheless deprecated, and has been removed in PHP 5.4. Furthermore, this does not apply to internal functions, for which the function signature is honored. Passing by value when the function expects a parameter by reference results in a warning and having call_user_func() return false (there is, however, an exception for passed values with reference count = 1, such as in literals, as these can be turned into references without ill effects — but also without writes to that value having any effect —; do not rely in this behavior, though, as the reference count is an implementation detail and the soundness of this behavior is questionable).

Hinweis:

Callbacks, die für Funktionen wie call_user_func() und call_user_func_array() registriert sind, werden nicht mehr ausgeführt, wenn in einem vorherigen Callback eine Exception geworfen und nicht gefangen wurde.

Siehe auch

  • call_user_func() - Aufruf der Callback-Funktion die als erster Parameter übergeben wurde
  • ReflectionFunction::invokeArgs() - Invokes function args
  • ReflectionMethod::invokeArgs() - Invoke args


Aufruf der Callback-Funktion die als erster Parameter übergeben wurde

  • « call_user_func_array
  • create_function »
  • PHP Manual
  • Function handling Funktionen
  • Aufruf der Callback-Funktion die als erster Parameter übergeben wurde

call_user_func

(PHP 4, PHP 5, PHP 7, PHP 8)

call_user_func — Aufruf der Callback-Funktion die als erster Parameter übergeben wurde

Beschreibung

call_user_func ( callable $callback , mixed $... = ? ) : mixed

Ruft die Funktion Callback die als erster Parameter übergeben wurde auf und über gibt dieser alle weiteren Parameter als Argumente.

Parameter-Liste

callback

Das aufzurufende callable.

...

Null oder mehr Parameter, die an die Callback-Funktion übergeben werden sollen

Hinweis:

Beachten Sie, dass die Parameter von call_user_func() nicht als Referenzen übergeben werden.

Beispiel #1 call_user_func()-Beispiel und Referenzen

<?php
error_reporting(E_ALL);
function increment(&$var)
{
    $var++;
}

$a = 0;
call_user_func('increment', $a);
echo $a."\n";

// Stattdessen kann dies verwendet werden
call_user_func_array('increment', array(&$a));
echo $a."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Warning: Parameter 1 to increment() expected to be a reference, value given in …
0
1

Rückgabewerte

Gibt den Rückgabewert des Callbacks zurück.

Beispiele

Beispiel #2 call_user_func()-Beispiel

<?php
function friseur($type)
{
    echo "Sie möchten einen $type-Kopf, kein Problem\n";
}
call_user_func('friseur', "Bubi");
call_user_func('friseur', "Pilz");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Sie möchten einen Bubi-Kopf, kein Problem
Sie möchten einen Pilz-Kopf, kein Problem

Beispiel #3 call_user_func() mit Namespacenamen

<?php

namespace Foobar;

class Foo {
    static public function test() {
        print "Hello world!\n";
    }
}

call_user_func(__NAMESPACE__ .'\Foo::test'); // Seit PHP 5.3.0
call_user_func(array(__NAMESPACE__ .'\Foo', 'test')); // Seit PHP 5.3.0

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hello world!
Hello world!

Beispiel #4 Verwenden einer Klassenmethode mit call_user_func()

<?php

class myclass {
    static function say_hello()
    {
        echo "Hello!\n";
    }
}

$classname = "myclass";

call_user_func(array($classname, 'say_hello'));
call_user_func($classname .'::say_hello'); // Seit 5.2.3

$myobject = new myclass();

call_user_func(array($myobject, 'say_hello'));

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hello!
Hello!
Hello!

Beispiel #5 Verwendung von Lambdafunktionen mit call_user_func()

<?php
call_user_func(function($arg) { print "[$arg]\n"; }, 'test'); /* Seit PHP 5.3.0 */
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

[test]

Anmerkungen

Hinweis:

Callbacks, die für Funktionen wie call_user_func() und call_user_func_array() registriert sind, werden nicht mehr ausgeführt, wenn in einem vorherigen Callback eine Exception geworfen und nicht gefangen wurde.

Siehe auch

  • call_user_func_array() - Call a callback with an array of parameters
  • is_callable() - Prüft, ob der Inhalt einer Variable als Funktion aufgerufen werden kann
  • ReflectionFunction::invoke() - Invokes function
  • ReflectionMethod::invoke() - Invoke


Erzeugen einer anonymen (Lambda-Stil) Funktion

  • « call_user_func
  • forward_static_call_array »
  • PHP Manual
  • Function handling Funktionen
  • Erzeugen einer anonymen (Lambda-Stil) Funktion

create_function

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

create_function — Erzeugen einer anonymen (Lambda-Stil) Funktion

Warnung

Diese Funktion ist seit PHP 7.2.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

create_function ( string $args , string $code ) : string

Erzeugt eine anonyme Funktion anhand der übergebenen Parameter und gibt einen eindeutigen Namen für diese zurück.

Achtung

Diese Funktion führt intern eval() aus und hat daher die gleichen Sicherheitsprobleme die eval() hat. Außerdem zeigt diese Funktion schlechtes Verhalten in anbetracht von Ausführungsgeschwindigkeit und Speicherverbrauch.

Wenn Sie PHP 5.3.0 oder neuer einsetzen sollten Sie stattdessen die nativ vorhandenen anonymen Funktionen verwenden.

Parameter-Liste

Normalerweise werden die Parameter als mit einfachen Anführungszeichen begrenzte Strings übergeben. Der Grund für die Verwendung von einfachen Anführungszeichen ist der Schutz der Variablen vor dem Parsen. Falls sie doppelte Anführungszeichen verwenden, müssen sie die Variablen-Namen escapen, wie z.B. \$avar.

args

Die Funktionsparameter.

code

Der Code der Funktion.

Rückgabewerte

Gibt einen eindeutigen Funktionsnamen als String oder false im Fehlerfall zurück.

Beispiele

Beispiel #1 Erzeugen einer anonymen Funktion per create_function()

Dieser Befehl kann z.B. verwendet werden, um eine Funktion anhand von Informationen zu erzeugen, die erst zur Laufzeit vorliegen.

<?php
$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo "Neue anonyme Funktion: $newfunc\n";
echo $newfunc(2, M_E) . "\n";
// Ausgabe:
// Neue anonyme Funktion: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
?>

Sie können auch eine allgemeine Handler-Funktion erstellen, die einen mehr oder weniger große Anzahl an Operationen mit einer Liste von Parametern durchführt:

Beispiel #2 Erzeugung einer generellen Bearbeitungsfunktion mit create_function()

<?php
function process($var1, $var2, $farr)
{
    foreach ($farr as $f) {
        echo $f($var1, $var2) . "\n";
    }
}

// Nun erzeugen wir eine Sammlung von 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 "etwas Trigonometrie: ".(sin($x) + $x*cos($y));'),
    create_function('$x,$y', 'return "eine Hypotenuse: ".sqrt($x*$x + $y*$y);'),
    create_function('$a,$b', $f1),
    create_function('$a,$b', $f2),
    create_function('$a,$b', $f3)
    );

echo "\nWir benutzen nun das erste Array mit anonymen Funktionen\n";
echo "Parameter: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// Nun erzeugen wir eine Sammlung von Funktionen zur Bearbeitung von Zeichenketten
$garr = array(
    create_function('$b,$a', 'if (strncmp($a, $b, 3) == 0) return "** \"$a\" '.
    'und \"$b\"\n** Sehen für mich ähnlich aus! (unter Betrachtung der ersten 3 Zeichen)";'),
    create_function('$a,$b', '; return "CRCs: " . crc32($a) . ", ".crc32($b);'),
    create_function('$a,$b', '; return "similar(a,b) = " . similar_text($a, $b, &$p) . "($p%)";')
    );
echo "\nWir benutzen nun das zweite Array mit anonymen Funktionen\n";
process("Twas brilling and the slithy toves", "Twas the night", $garr);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Wir benutzen nun das erste Array mit anonymen Funktionen
Parameter: 2.3445, M_PI
etwas Trigonometrie: -1.6291725057799
eine Hypotenuse: 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a)/b = 0.27122299212594

Wir benutzen nun das zweite Array mit anonymen Funktionen
** "Twas the night" und "Twas brilling and the slithy toves"
** Sehen für mich ähnlich aus! (unter Betrachtung der ersten 3 Zeichen)
CRCs: -725381282, 342550513
similar(a,b) = 11(45.833333333333%)

Aber wahrscheinlich 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

<?php
$av = array("the ", "a ", "that ", "this ");
array_walk($av, create_function('&$v,$k', '$v = $v . "mango";'));
print_r($av);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
  [0] => the mango
  [1] => a mango
  [2] => that mango
  [3] => this mango
)

Ein Array con Zeichenketten sortiert von der kürzesten zur längsten

<?php

$sv = array("small", "larger", "a big string", "it is a string thing");
print_r($sv);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
  [0] => small
  [1] => larger
  [2] => a big string
  [3] => it is a string thing
)

Sortiert von der Längsten zur Kürzesten

<?php

usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
  [0] => it is a string thing
  [1] => a big string
  [2] => larger
  [3] => small
)

Siehe auch

  • Anonyme Funktionen


Call a static method and pass the arguments as array

  • « create_function
  • forward_static_call »
  • PHP Manual
  • Function handling Funktionen
  • Call a static method and pass the arguments as array

forward_static_call_array

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

forward_static_call_array — Call a static method and pass the arguments as array

Beschreibung

forward_static_call_array ( callable $callback , array $args ) : mixed

Calls a user defined function or method given by the callback parameter. This function must be called within a method context, it can't be used outside a class. It uses the late static binding. All arguments of the forwarded method are passed as values, and as an array, similarly to call_user_func_array().

Parameter-Liste

callback

The function or method to be called. This parameter may be an Array, with the name of the class, and the method, or a String, with a function name.

parameter

One parameter, gathering all the method parameter in one array.

Hinweis:

Note that the parameters for forward_static_call_array() are not passed by reference.

Rückgabewerte

Returns the function result, or false on error.

Beispiele

Beispiel #1 forward_static_call_array() example

<?php

class A
{
    const NAME = 'A';
    public static function test() {
        $args = func_get_args();
        echo static::NAME, " ".join(',', $args)." \n";
    }
}

class B extends A
{
    const NAME = 'B';

    public static function test() {
        echo self::NAME, "\n";
        forward_static_call_array(array('A', 'test'), array('more', 'args'));
        forward_static_call_array( 'test', array('other', 'args'));
    }
}

B::test('foo');

function test() {
        $args = func_get_args();
        echo "C ".join(',', $args)." \n";
    }

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

B
B more,args
C other,args

Siehe auch

  • forward_static_call() - Call a static method
  • call_user_func() - Aufruf der Callback-Funktion die als erster Parameter übergeben wurde
  • call_user_func_array() - Call a callback with an array of parameters
  • is_callable() - Prüft, ob der Inhalt einer Variable als Funktion aufgerufen werden kann


Call a static method

  • « forward_static_call_array
  • func_get_arg »
  • PHP Manual
  • Function handling Funktionen
  • Call a static method

forward_static_call

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

forward_static_call — Call a static method

Beschreibung

forward_static_call ( callable $callback , mixed ...$args ) : mixed

Calls a user defined function or method given by the callback parameter, with the following arguments. This function must be called within a method context, it can't be used outside a class. It uses the late static binding.

Parameter-Liste

callback

The function or method to be called. This parameter may be an array, with the name of the class, and the method, or a string, with a function name.

args

Zero or more parameters to be passed to the function.

Rückgabewerte

Returns the function result, or false on error.

Beispiele

Beispiel #1 forward_static_call() example

<?php

class A
{
    const NAME = 'A';
    public static function test() {
        $args = func_get_args();
        echo static::NAME, " ".join(',', $args)." \n";
    }
}

class B extends A
{
    const NAME = 'B';

    public static function test() {
        echo self::NAME, "\n";
        forward_static_call(array('A', 'test'), 'more', 'args');
        forward_static_call( 'test', 'other', 'args');
    }
}

B::test('foo');

function test() {
        $args = func_get_args();
        echo "C ".join(',', $args)." \n";
    }

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

B
B more,args
C other,args

Siehe auch

  • forward_static_call_array() - Call a static method and pass the arguments as array
  • call_user_func_array() - Call a callback with an array of parameters
  • call_user_func() - Aufruf der Callback-Funktion die als erster Parameter übergeben wurde
  • is_callable() - Prüft, ob der Inhalt einer Variable als Funktion aufgerufen werden kann


Liefert ein bestimmtes Funktionsargument

  • « forward_static_call
  • func_get_args »
  • PHP Manual
  • Function handling Funktionen
  • Liefert ein bestimmtes Funktionsargument

func_get_arg

(PHP 4, PHP 5, PHP 7, PHP 8)

func_get_arg — Liefert ein bestimmtes Funktionsargument

Beschreibung

func_get_arg ( int $arg_num ) : mixed

Liefert das mit arg_num angegebene Argument aus der Liste der Argumente einer benutzerdefinierten Funktion.

Diese Funktion kann zusammen mit func_get_args() und func_num_args() genutzt werden um benutzerdefinierte Funktionen mit einer variablen Anzahl von Argumenten zu implementieren.

Parameter-Liste

arg_num

Der Offset des Arguments. Funktionsargumente werden mit 0 beginnend gezählt.

Rückgabewerte

Liefert das gewünschte Argument oder false bei Fehlern.

Fehler/Exceptions

Die Funktion generiert eine Warnung wenn sie außerhalb einer benutzerdefinierten Funktion aufgerufen wird oder wenn arg_num größer ist als die Anzahl der tatsächlich übergebenen Argumente.

Beispiele

Beispiel #1 func_get_arg() Beispiel

<?php
function foo()
{
     $numargs = func_num_args();
     echo "Anzahl der Funktionsargumente: $numargs\n";
     if ($numargs >= 2) {
         echo "Das zweite Argument ist: " . func_get_arg(1) . "\n";
     }
}

foo(1, 2, 3);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Anzahl der Funktionsargumente: 3
Das zweite Argument ist: 2

Beispiel #2 func_get_arg() Beispiel vor and nach PHP 5.3

test.php
<?php
function foo() {
    include './fga.inc';
}

foo('Erstes Argument', 'Zweites Argument');
?>

fga.inc
<?php

$arg = func_get_arg(1);
var_export($arg);

?>

Ausgabe vor PHP 5.3:

'Zweites Argument'

Ausgabe in PHP 5.3 und neuer:

Warning: func_get_arg():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false

Beispiel #3 func_get_arg() Beispiel zu byref und byval Argumenten

<?php
function byVal($arg) {
    echo 'Wie übergeben : ', var_export(func_get_arg(0)), PHP_EOL;
    $arg = 'baz';
    echo 'Nach Änderung : ', var_export(func_get_arg(0)), PHP_EOL;
}

function byRef(&$arg) {
    echo 'Wie übergeben : ', var_export(func_get_arg(0)), PHP_EOL;
    $arg = 'baz';
    echo 'Nach Änderung : ', var_export(func_get_arg(0)), PHP_EOL;
}

$arg = 'bar';
byVal($arg);
byRef($arg);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

Wie übergeben : 'bar'
Nach Änderung : 'baz'
Wie übergeben : 'bar'
Nach Änderung : 'baz'

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

Wie übergeben : 'bar'
Nach Änderung : 'bar'
Wie übergeben : 'bar'
Nach Änderung : 'baz'

Anmerkungen

Hinweis:

Da diese Funktion bei der Ermittlung der Parameterdetails von dem aktuellen Ausführungskontext abhängt, kann sie in PHP-Versionen vor 5.3.0 selbst nicht als Funktionsparameter genutzt werden. Wenn Sie ihre Ergebnisse tatsächlich weitergeben müssen, so müssen Sie diese zunächst einer Variablen zuweisen und dann diese Variable übergeben

Hinweis:

Wenn die Parameter als Referenzen übergeben werden, so finden sich alle Änderungen an diesen Parametern in den Rückgabewerten dieser Funktion wieder.

Hinweis: Diese Funktion liefert eine Kopie des übergebenen Arguments. Sie hat nur Zugriff auf tatsächlich übergebene Argumente, Vorgabewerte von Parametern sind für sie nicht sichtbar.

Siehe auch

  • ... syntax in PHP 5.6+
  • func_get_args()
  • func_num_args()


Liefert Funktionsargumente als Array

  • « func_get_arg
  • func_num_args »
  • PHP Manual
  • Function handling Funktionen
  • Liefert Funktionsargumente als Array

func_get_args

(PHP 4, PHP 5, PHP 7, PHP 8)

func_get_args — Liefert Funktionsargumente als Array

Beschreibung

func_get_args ( ) : array

Liefert die der aufrufenden Funktion übergebenen Argumente als Array.

Die Funktion kann zusammen mit func_get_arg() und func_num_args() genutzt werden um Funktionen mit einer variablen Anzahl von Argumenten zu implementieren.

Rückgabewerte

Liefert ein Array mit Kopien aller Argumente mit denen die aufrufende Funktion aufgerufen wurde.

Fehler/Exceptions

Die Funktion generiert eine Warnung, wenn sie außerhalb einer benutzerdefinierten Funktion aufgerufen wird.

Beispiele

Beispiel #1 func_get_args() Beispiel

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Anzahl der Argumente: $numargs \n";
    if ($numargs >= 2) {
        echo "Das zweite Argument ist: " . func_get_arg(1) . "\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Argument $i ist: " . $arg_list[$i] . "\n";
    }
}

foo(1, 2, 3);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Anzahl der Argumente: 3
Das zweite Argument ist: 2
Argument 0 ist: 1
Argument 1 ist: 2
Argument 2 ist: 3

Beispiel #2 func_get_args() Beispiel vor und nach PHP 5.3

test.php
<?php
function foo() {
    include './fga.inc';
}

foo('Erstes Argument', 'Zweites Argument');
?>

fga.inc
<?php

$args = func_get_args();
var_export($args);

?>

Ausgabe vor PHP 5.3:

array (
  0 => 'Erstes Argument',
  1 => 'Zweites Argument',
)

Ausgabe in PHP 5.3 und später:

Warning: func_get_args():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false

Beispiel #3 func_get_args() Beispiel mit Referenz- und Wert-Argumenten

<?php
function byVal($arg) {
    echo 'Wie übergeben : ', var_export(func_get_args()), PHP_EOL;
    $arg = 'baz';
    echo 'Nach Änderung : ', var_export(func_get_args()), PHP_EOL;
}

function byRef(&$arg) {
    echo 'Wie übergeben : ', var_export(func_get_args()), PHP_EOL;
    $arg = 'baz';
    echo 'Nach Änderung : ', var_export(func_get_args()), PHP_EOL;
}

$arg = 'bar';
byVal($arg);
byRef($arg);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

Wie übergeben : array (
0 => 'bar',
)
Nach Änderung : array (
0 => 'baz',
)
Wie übergeben : array (
0 => 'bar',
)
Nach Änderung : array (
0 => 'baz',
)

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

Wie übergeben : array (
0 => 'bar',
)
Nach Änderung : array (
0 => 'bar',
)
Wie übergeben : array (
0 => 'bar',
)
Nach Änderung : array (
0 => 'baz',
)

Anmerkungen

Hinweis:

Da diese Funktion bei der Ermittlung der Parameterdetails von dem aktuellen Ausführungskontext abhängt, kann sie in PHP-Versionen vor 5.3.0 selbst nicht als Funktionsparameter genutzt werden. Wenn Sie ihre Ergebnisse tatsächlich weitergeben müssen, so müssen Sie diese zunächst einer Variablen zuweisen und dann diese Variable übergeben

Hinweis: Diese Funktion gibt nur eine Kopie der übergebenen Argumente zurück, und berücksichtigt keine Default-Argumente (falls nicht übergeben).

Siehe auch

  • ... Syntax in PHP 5.6+
  • func_get_arg()
  • func_num_args()
  • ReflectionFunctionAbstract::getParameters()


Liefert die Anzahl der an eine Funktion übergebenen Argumente

  • « func_get_args
  • function_exists »
  • PHP Manual
  • Function handling Funktionen
  • Liefert die Anzahl der an eine Funktion übergebenen Argumente

func_num_args

(PHP 4, PHP 5, PHP 7, PHP 8)

func_num_args — Liefert die Anzahl der an eine Funktion übergebenen Argumente

Beschreibung

func_num_args ( ) : int

Ermittelt die Anzahl der an eine Funktion übergebenen Argumente.

Diese Funktion kann zusammen mit func_get_arg() und func_get_args() genutzt werden, um Funktionen mit einer variablen Anzahl von Argumenten zu implementieren.

Rückgabewerte

Liefert die Anzahl der Argumente, die an die aufgerufene Funktion übergeben wurden.

Fehler/Exceptions

Die Funktion generiert eine Warnung, wenn sie von außerhalb einer benutzerdefinierten Funktion aufgerufen wird.

Beispiele

Beispiel #1 func_num_args() Beispiel

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Anzahl der Argumente: $numargs\n";
}

foo(1, 2, 3);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Anzahl der Argumente: 3

Beispiel #2 func_num_args() Beispiel vor und nach PHP 5.3

test.php
<?php
function foo() {
    include './fna.php';
}

foo('Erstes Argument', 'Zweites Argument');
?>

fna.php
<?php

$num_args = func_num_args();
var_export($num_args);

?>

Ausgabe vor PHP 5.3:

2

Die Ausgabe in PHP 5.3 und später ist ähnlich wie:

Warning: func_num_args():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fna.php on line 3
-1

Anmerkungen

Hinweis:

Da diese Funktion bei der Ermittlung der Parameterdetails von dem aktuellen Ausführungskontext abhängt, kann sie in PHP-Versionen vor 5.3.0 selbst nicht als Funktionsparameter genutzt werden. Wenn Sie ihre Ergebnisse tatsächlich weitergeben müssen, so müssen Sie diese zunächst einer Variablen zuweisen und dann diese Variable übergeben

Siehe auch

  • ... Syntax in PHP 5.6+
  • func_get_arg()
  • func_get_args()
  • ReflectionFunctionAbstract::getNumberOfParameters()


Falls die angegebene Funktion definiert ist, wird true zurück gegeben

  • « func_num_args
  • get_defined_functions »
  • PHP Manual
  • Function handling Funktionen
  • Falls die angegebene Funktion definiert ist, wird true zurück gegeben

function_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

function_exists — Falls die angegebene Funktion definiert ist, wird true zurück gegeben

Beschreibung

function_exists ( string $function_name ) : bool

Prüft in der Liste der definierten Funktionen (enthält sowohl die in PHP eingebauten als auch die vom Benutzer selbst geschriebenen Funktionen), ob eine Funktion mit dem Namen function_name existiert.

Parameter-Liste

function_name

Der Funktionsname (als String).

Rückgabewerte

Gibt true zurück, wenn function_name existiert und es sich um eine Funktion handelt, sonst false.

Hinweis:

Diese Funktion gibt false für Sprachkonstrukte wie include_once und echo zurück.

Beispiele

Beispiel #1 function_exists()-Beispiel

<?php
if (function_exists('imap_open')) {
    echo "IMAP-Funktionen sind verfügbar.<br />\n";
} else {
    echo "IMAP-Funktionen sind nicht verfügbar.<br />\n";
}
?>

Anmerkungen

Hinweis:

Bitte beachten Sie, dass ein Funktionsname existieren kann, auch wenn die Funktion selbst nicht genutzt werden kann, weil Konfigurations- oder Kompilierungsoptionen dies verhindern können (z.B. kann dies der Fall bei den Grafik-Funktionen sein).

Siehe auch

  • method_exists() - Prüft ob eine Methode innerhalb eines Objekts existiert
  • is_callable() - Prüft, ob der Inhalt einer Variable als Funktion aufgerufen werden kann
  • get_defined_functions() - Liefert ein Array aller definierten Funktionen
  • class_exists() - Checks if the class has been defined
  • extension_loaded() - Prüft ob eine Extension geladen ist


Liefert ein Array aller definierten Funktionen

  • « function_exists
  • register_shutdown_function »
  • PHP Manual
  • Function handling Funktionen
  • Liefert ein Array aller definierten Funktionen

get_defined_functions

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

get_defined_functions — Liefert ein Array aller definierten Funktionen

Beschreibung

get_defined_functions ( bool $exclude_disabled = false ) : array

Liefert ein Array aller definierten Funktionen

Parameter-Liste

exclude_disabled

Ob deaktivierte Funktion im Rückgabewert ausgeschlossen werden sollen.

Rückgabewerte

Liefert ein multidimensionales Array mit der Liste aller definierten internen und benutzerdefinierten Funktionen. Die internen Funktionen finden sich im Unterarray $arr["internal"], die benutzerdefinierten in $arr["user"] (siehe auch das folgende Beispiel). below).

Changelog

Version | Beschreibung
7.0.15, 7.1.1 | Der exclude_disabled Parameter wurde hinzugefügt.

Beispiele

Beispiel #1 get_defined_functions() Beispiel

<?php
function myrow($id, $data)
{
    return "<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr = get_defined_functions();

print_r($arr);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [internal] => Array
        (
            [0] => zend_version
            [1] => func_num_args
            [2] => func_get_arg
            [3] => func_get_args
            [4] => strlen
            [5] => strcmp
            [6] => strncmp
            ...
            [750] => bcscale
            [751] => bccomp
        )

    [user] => Array
        (
            [0] => myrow
        )

)

Siehe auch

  • function_exists() - Falls die angegebene Funktion definiert ist, wird true zurück gegeben
  • get_defined_vars() - Gibt ein Array aller definierten Variablen zurück
  • get_defined_constants() - Returns an associative array with the names of all the constants and their values
  • get_declared_classes() - Ermittelt die Namen der definierten Klassen


Registriert eine Funktion zur Ausführung beim Skript-Abschluss

  • « get_defined_functions
  • register_tick_function »
  • PHP Manual
  • Function handling Funktionen
  • Registriert eine Funktion zur Ausführung beim Skript-Abschluss

register_shutdown_function

(PHP 4, PHP 5, PHP 7, PHP 8)

register_shutdown_function — Registriert eine Funktion zur Ausführung beim Skript-Abschluss

Beschreibung

register_shutdown_function ( callable $callback , mixed $... = ? ) : void

Registriert ein callback, welches ausgeführt werden soll, sobald die Ausführung des Scripts beendet ist oder exit() aufgerufen wurde.

register_shutdown_function() kann mehrmals hintereinander aufgerufen werden, in welchem Fall die Callbacks später in der selben Reihenfolge aufgerufen werden, wie sie registriert wurden. Wenn exit() innerhalb eines Shutdown Callbacks aufgerufen wird, bricht die Ausführung vollständig ab und keine weiteren Callbacks werden ausgeführt.

Parameter-Liste

callback

Das Shutdown Callback, welches registriert werden soll.

Die Callbacks werden als Teil der Anfrage ausgeführt, d.h. es ist möglich Ausgaben zu machen und auf Output Buffer zuzugreifen.

...

Alle weiteren Argumente, die dieser Funktion übergeben werden, werden auch den Callbacks beim Aufruf übergeben.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Wenn das übergebene Callback nicht aufrufbar ist, wird ein E_WARNING geworfen.

Beispiele

Beispiel #1 register_shutdown_function() Beispiel

<?php
function shutdown()
{
    // Das ist unsere Shutdown Funktion, in welcher
    // wir noch letzte Anweisungen ausführen können
    // bevor die Ausführung beendet wird.

    echo 'Script executed with success', PHP_EOL;
}

register_shutdown_function('shutdown');
?>

Anmerkungen

Hinweis:

Das Arbeitsverzeichnis des Scripts kann sich bei manchen Webservern wie Apache innerhalb des Shutdown Callbacks ändern.

Hinweis:

Shutdown-Funktionen werden nicht ausgeführt, wenn der Prozess mit einem SIGTERM oder SIGKILL Signal terminiert wurde. Während es nicht möglich ist ein SIGKILL Signal abzufangen, kann die pcntl_signal() genutzt werden, um einen Handler für SIGTERM zu registrieren.

Siehe auch

  • auto_append_file
  • exit() - Gibt eine Meldung aus und beendet das aktuelle Skript
  • Die Sektion über Verbindungssteuerung


Register a function for execution on each tick

  • « register_shutdown_function
  • unregister_tick_function »
  • PHP Manual
  • Function handling Funktionen
  • Register a function for execution on each tick

register_tick_function

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

register_tick_function — Register a function for execution on each tick

Beschreibung

register_tick_function ( callable $callback , mixed ...$args ) : bool

Registers the given callback to be executed when a tick is called.

Parameter-Liste

callback

The function to register.

args

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 register_tick_function() example

<?php
declare(ticks=1);

// using a function as the callback
register_tick_function('my_function', true);

// using an object->method
$object = new my_class();
register_tick_function(array(&$object, 'my_method'), true);
?>

Anmerkungen

Warnung

register_tick_function() should not be used with threaded web server modules with PHP 5.2 or lower.

Siehe auch

  • declare
  • unregister_tick_function() - De-register a function for execution on each tick


De-register a function for execution on each tick

  • « register_tick_function
  • Quickhash »
  • PHP Manual
  • Function handling Funktionen
  • De-register a function for execution on each tick

unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

unregister_tick_function — De-register a function for execution on each tick

Beschreibung

unregister_tick_function ( callable $callback ) : void

De-registers the function function so it is no longer executed when a tick is called.

Parameter-Liste

callback

The function to de-register.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • register_tick_function() - Register a function for execution on each tick


Quickhash

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
  • Vordefinierte Konstanten
  • Beispiele
  • QuickHashIntSet — The QuickHashIntSet class
    • QuickHashIntSet::add — This method adds a new entry to the set
    • QuickHashIntSet::__construct — Creates a new QuickHashIntSet object
    • QuickHashIntSet::delete — This method deletes an entry from the set
    • QuickHashIntSet::exists — This method checks whether a key is part of the set
    • QuickHashIntSet::getSize — Returns the number of elements in the set
    • QuickHashIntSet::loadFromFile — This factory method creates a set from a file
    • QuickHashIntSet::loadFromString — This factory method creates a set from a string
    • QuickHashIntSet::saveToFile — This method stores an in-memory set to disk
    • QuickHashIntSet::saveToString — This method returns a serialized version of the set
  • QuickHashIntHash — The QuickHashIntHash class
    • QuickHashIntHash::add — This method adds a new entry to the hash
    • QuickHashIntHash::__construct — Creates a new QuickHashIntHash object
    • QuickHashIntHash::delete — This method deletes am entry from the hash
    • QuickHashIntHash::exists — This method checks whether a key is part of the hash
    • QuickHashIntHash::get — This method retrieves a value from the hash by its key
    • QuickHashIntHash::getSize — Returns the number of elements in the hash
    • QuickHashIntHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashIntHash::loadFromString — This factory method creates a hash from a string
    • QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashIntHash::saveToString — This method returns a serialized version of the hash
    • QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntHash::update — This method updates an entry in the hash with a new value
  • QuickHashStringIntHash — The QuickHashStringIntHash class
    • QuickHashStringIntHash::add — This method adds a new entry to the hash
    • QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object
    • QuickHashStringIntHash::delete — This method deletes am entry from the hash
    • QuickHashStringIntHash::exists — This method checks whether a key is part of the hash
    • QuickHashStringIntHash::get — This method retrieves a value from the hash by its key
    • QuickHashStringIntHash::getSize — Returns the number of elements in the hash
    • QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string
    • QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash
    • QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashStringIntHash::update — This method updates an entry in the hash with a new value
  • QuickHashIntStringHash — The QuickHashIntStringHash class
    • QuickHashIntStringHash::add — This method adds a new entry to the hash
    • QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object
    • QuickHashIntStringHash::delete — This method deletes am entry from the hash
    • QuickHashIntStringHash::exists — This method checks whether a key is part of the hash
    • QuickHashIntStringHash::get — This method retrieves a value from the hash by its key
    • QuickHashIntStringHash::getSize — Returns the number of elements in the hash
    • QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string
    • QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash
    • QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntStringHash::update — This method updates an entry in the hash with a new value


Einführung

The quickhash extension contains a set of specific strongly-typed classes to deal with specific set and hash implementations.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

This extension requires no additional libraries.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/quickhash


  • « Laufzeit-Konfiguration
  • Beispiele »
  • PHP Manual
  • Quickhash
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Beispiele

Beispiel #1 Quickhash Example

<?php
$set = new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES );
$set->add( 1 );
$set->add( 3 );

var_dump( $set->exists( 3 ) );
var_dump( $set->exists( 4 ) );

$set->saveToFile( "/tmp/test-set.set" );

$newSet = QuickHashIntSet::loadFromFile(
    "/tmp/test-set.set"
);

var_dump( $newSet->exists( 3 ) );
var_dump( $newSet->exists( 4 ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)
bool(true)
bool(false)

Beispiel #2 Quickhash ArrayAccess Example

<?php
$hash = new QuickHashIntHash( 64 );

// Adding and updating hash entries.
$hash[3] = 145926;
$hash[3] = 1415926;
$hash[2] = 72;

// Checking if keys exist
var_dump( isset( $hash[3] ) );

// Removing hash entries
unset( $hash[2] );

// Retrieving the value stored for a hash
echo $hash[3], "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
1415926

Beispiel #3 Quickhash Iterator Example

<?php
$hash = new QuickHashIntHash( 64 );

// Adding hash entries.
$hash[1] = 145926;
$hash[2] = 1415926;
$hash[3] = 72;
$hash[4] = 712314;
$hash[5] = -4234;

foreach( $hash as $key => $value )
{
    echo $key, ' => ', $value, "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

5 => -4234
4 => 712314
1 => 145926
2 => 1415926
3 => 72

Beispiel #4 Quickhash String Values Example

<?php
$hash = new QuickHashIntStringHash( 64 );

// Adding hash entries.
$hash[1] = "one million four hundred fifteen thousand nine hundred twenty six";
$hash->add( 2, "one more" );

foreach( $hash as $key => $value )
{
    echo $key, ' => ', $value, "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

1 => one million four hundred fifteen thousand nine hundred twenty six
2 => one more


The QuickHashIntSet class

(PECL quickhash >= Unknown)

Einführung

This class wraps around a set containing integer numbers.

Sets can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Klassenbeschreibung

QuickHashIntSet {
/* Constants */
const int CHECK_FOR_DUPES = 1 ;
const int DO_NOT_USE_ZEND_ALLOC = 2 ;
const int HASHER_NO_HASH = 256 ;
const int HASHER_JENKINS1 = 512 ;
const int HASHER_JENKINS2 = 1024 ;
/* Methods */
public add ( int $key ) : bool
public __construct ( int $size , int $options = ? )
public delete ( int $key ) : bool
public exists ( int $key ) : bool
publicgetSize ( ) : int
public static loadFromFile ( string $filename , int $size = ? , int $options = ? ) : QuickHashIntSet
public static loadFromString ( string $contents , int $size = ? , int $options = ? ) : QuickHashIntSet
public saveToFile ( string $filename ) : void
public saveToString ( ) : string
}

Vordefinierte Konstanten

QuickHashIntSet::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either add() or loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

QuickHashIntSet::HASHER_NO_HASH

Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

QuickHashIntSet::HASHER_JENKINS1

This is the default hashing function to turn the integer hashes into bucket list indexes.

QuickHashIntSet::HASHER_JENKINS2

Selects a variant hashing algorithm.

Inhaltsverzeichnis

  • QuickHashIntSet::add — This method adds a new entry to the set
  • QuickHashIntSet::__construct — Creates a new QuickHashIntSet object
  • QuickHashIntSet::delete — This method deletes an entry from the set
  • QuickHashIntSet::exists — This method checks whether a key is part of the set
  • QuickHashIntSet::getSize — Returns the number of elements in the set
  • QuickHashIntSet::loadFromFile — This factory method creates a set from a file
  • QuickHashIntSet::loadFromString — This factory method creates a set from a string
  • QuickHashIntSet::saveToFile — This method stores an in-memory set to disk
  • QuickHashIntSet::saveToString — This method returns a serialized version of the set


This method adds a new entry to the set

  • « QuickHashIntSet
  • QuickHashIntSet::__construct »
  • PHP Manual
  • QuickHashIntSet
  • This method adds a new entry to the set

QuickHashIntSet::add

(PECL quickhash >= Unknown)

QuickHashIntSet::add — This method adds a new entry to the set

Beschreibung

public QuickHashIntSet::add ( int $key ) : bool

This method adds a new entry to the set, and returns whether the entry was added. Entries are by default always added unless QuickHashIntSet::CHECK_FOR_DUPES has been passed when the set was created.

Parameter-Liste

key

The key of the entry to add.

Rückgabewerte

true when the entry was added, and false if the entry was not added.

Beispiele

Beispiel #1 QuickHashIntSet::add() example

<?php
echo "without dupe checking\n";
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

echo "\nwith dupe checking\n";
$set = new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

without dupe checking
bool(false)
bool(true)
bool(true)
bool(true)

with dupe checking
bool(false)
bool(true)
bool(true)
bool(false)


Creates a new QuickHashIntSet object

  • « QuickHashIntSet::add
  • QuickHashIntSet::delete »
  • PHP Manual
  • QuickHashIntSet
  • Creates a new QuickHashIntSet object

QuickHashIntSet::__construct

(PECL quickhash >= Unknown)

QuickHashIntSet::__construct — Creates a new QuickHashIntSet object

Beschreibung

public QuickHashIntSet::__construct ( int $size , int $options = ? )

This constructor creates a new QuickHashIntSet. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Parameter-Liste

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The options that you can pass in are: QuickHashIntSet::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the set; QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntSet::HASHER_NO_HASH, QuickHashIntSet::HASHER_JENKINS1 or QuickHashIntSet::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Rückgabewerte

Returns a new QuickHashIntSet object.

Beispiele

Beispiel #1 QuickHashIntSet::__construct() example

<?php
var_dump( new QuickHashIntSet( 1024 ) );
var_dump( new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES ) );
var_dump(
    new QuickHashIntSet(
        1024,
        QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC | QuickHashIntSet::HASHER_JENKINS2
    )
);
?>


This method deletes an entry from the set

  • « QuickHashIntSet::__construct
  • QuickHashIntSet::exists »
  • PHP Manual
  • QuickHashIntSet
  • This method deletes an entry from the set

QuickHashIntSet::delete

(PECL quickhash >= Unknown)

QuickHashIntSet::delete — This method deletes an entry from the set

Beschreibung

public QuickHashIntSet::delete ( int $key ) : bool

This method deletes an entry from the set, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the set itself is freed.

Parameter-Liste

key

The key of the entry to delete.

Rückgabewerte

true when the entry was deleted, and false if the entry was not deleted.

Beispiele

Beispiel #1 QuickHashIntSet::delete() example

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->delete( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->delete( 4 ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the set

  • « QuickHashIntSet::delete
  • QuickHashIntSet::getSize »
  • PHP Manual
  • QuickHashIntSet
  • This method checks whether a key is part of the set

QuickHashIntSet::exists

(PECL quickhash >= Unknown)

QuickHashIntSet::exists — This method checks whether a key is part of the set

Beschreibung

public QuickHashIntSet::exists ( int $key ) : bool

This method checks whether an entry with the provided key exists in the set.

Parameter-Liste

key

The key of the entry to check for whether it exists in the set.

Rückgabewerte

Returns true when the entry was found, or false when the entry is not found.

Beispiele

Beispiel #1 QuickHashIntSet::exists() example

<?php
//generate 200000 elements
$array = range( 0, 199999 );
$existingEntries = array_rand( array_flip( $array ), 180000 );
$testForEntries = array_rand( array_flip( $array ), 1000 );
$foundCount = 0;

echo "Creating set: ", microtime( true ), "\n";
$set = new QuickHashIntSet( 100000 );
echo "Adding elements: ", microtime( true ), "\n";
foreach( $existingEntries as $key )
{
     $set->add( $key );
}

echo "Doing 1000 tests: ", microtime( true ), "\n";
foreach( $testForEntries as $key )
{
     $foundCount += $set->exists( $key );
}
echo "Done, $foundCount found: ", microtime( true ), "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Creating set: 1263588703.0748
Adding elements: 1263588703.0757
Doing 1000 tests: 1263588703.7851
Done, 898 found: 1263588703.7897


Returns the number of elements in the set

  • « QuickHashIntSet::exists
  • QuickHashIntSet::loadFromFile »
  • PHP Manual
  • QuickHashIntSet
  • Returns the number of elements in the set

QuickHashIntSet::getSize

(PECL quickhash >= Unknown)

QuickHashIntSet::getSize — Returns the number of elements in the set

Beschreibung

publicQuickHashIntSet::getSize ( ) : int

Returns the number of elements in the set.

Parameter-Liste

key

The key of the entry to add.

Rückgabewerte

The number of elements in the set.

Beispiele

Beispiel #1 QuickHashIntSet::getSize() example

<?php
$set = new QuickHashIntSet( 8 );
var_dump( $set->add( 2 ) );
var_dump( $set->add( 3 ) );
var_dump( $set->getSize() );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
int(2)


This factory method creates a set from a file

  • « QuickHashIntSet::getSize
  • QuickHashIntSet::loadFromString »
  • PHP Manual
  • QuickHashIntSet
  • This factory method creates a set from a file

QuickHashIntSet::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromFile — This factory method creates a set from a file

Beschreibung

public static QuickHashIntSet::loadFromFile ( string $filename , int $size = ? , int $options = ? ) : QuickHashIntSet

This factory method creates a new set from a definition file on disk. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses.

Parameter-Liste

filename

The filename of the file to read the set from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the set, rounded up to the nearest power of two with a maximum limit of 4194304.

Rückgabewerte

Returns a new QuickHashIntSet.

Beispiele

Beispiel #1 QuickHashIntSet::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.set";
$set = QuickHashIntSet::loadFromFile(
    $file,
    QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $set->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This factory method creates a set from a string

  • « QuickHashIntSet::loadFromFile
  • QuickHashIntSet::saveToFile »
  • PHP Manual
  • QuickHashIntSet
  • This factory method creates a set from a string

QuickHashIntSet::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromString — This factory method creates a set from a string

Beschreibung

public static QuickHashIntSet::loadFromString ( string $contents , int $size = ? , int $options = ? ) : QuickHashIntSet

This factory method creates a new set from a definition in a string. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses.

Parameter-Liste

contents

The string containing a serialized format of the set.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the set, rounded up to the nearest power of two automatically limited from 64 to 4194304.

Rückgabewerte

Returns a new QuickHashIntSet.

Beispiele

Beispiel #1 QuickHashIntSet::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.set" );
$set = QuickHashIntSet::loadFromString(
    $contents,
    QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $set->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This method stores an in-memory set to disk

  • « QuickHashIntSet::loadFromString
  • QuickHashIntSet::saveToString »
  • PHP Manual
  • QuickHashIntSet
  • This method stores an in-memory set to disk

QuickHashIntSet::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToFile — This method stores an in-memory set to disk

Beschreibung

public QuickHashIntSet::saveToFile ( string $filename ) : void

This method stores an existing set to a file on disk, in the same format that loadFromFile() can read.

Parameter-Liste

filename

The filename of the file to store the hash in.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 QuickHashIntSet::saveToFile() example

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

$set->saveToFile( '/tmp/test.set' );
?>


This method returns a serialized version of the set

  • « QuickHashIntSet::saveToFile
  • QuickHashIntHash »
  • PHP Manual
  • QuickHashIntSet
  • This method returns a serialized version of the set

QuickHashIntSet::saveToString

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToString — This method returns a serialized version of the set

Beschreibung

public QuickHashIntSet::saveToString ( ) : string

This method returns a serialized version of the set in the same format that loadFromString() can read.

Rückgabewerte

This method returns a string containing a serialized format of the set. Each element is stored as a four byte value in the Endianness that the current system uses.

Beispiele

Beispiel #1 QuickHashIntSet::saveToString() example

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

var_dump( $set->saveToString() );
?>


The QuickHashIntHash class

(PECL quickhash >= Unknown)

Einführung

This class wraps around a hash containing integer numbers, where the values are also integer numbers. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Klassenbeschreibung

QuickHashIntHash {
/* Constants */
const int CHECK_FOR_DUPES = 1 ;
const int DO_NOT_USE_ZEND_ALLOC = 2 ;
const int HASHER_NO_HASH = 256 ;
const int HASHER_JENKINS1 = 512 ;
const int HASHER_JENKINS2 = 1024 ;
/* Methods */
public add ( int $key , int $value = ? ) : bool
public __construct ( int $size , int $options = ? )
public delete ( int $key ) : bool
public exists ( int $key ) : bool
public get ( int $key ) : int
public getSize ( ) : int
public static loadFromFile ( string $filename , int $options = ? ) : QuickHashIntHash
public static loadFromString ( string $contents , int $options = ? ) : QuickHashIntHash
public saveToFile ( string $filename ) : void
public saveToString ( ) : string
public set ( int $key , int $value ) : bool
public update ( int $key , int $value ) : bool
}

Vordefinierte Konstanten

QuickHashIntHash::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either add() or loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

QuickHashIntHash::HASHER_NO_HASH

Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

QuickHashIntHash::HASHER_JENKINS1

This is the default hashing function to turn the integer hashes into bucket list indexes.

QuickHashIntHash::HASHER_JENKINS2

Selects a variant hashing algorithm.

Inhaltsverzeichnis

  • QuickHashIntHash::add — This method adds a new entry to the hash
  • QuickHashIntHash::__construct — Creates a new QuickHashIntHash object
  • QuickHashIntHash::delete — This method deletes am entry from the hash
  • QuickHashIntHash::exists — This method checks whether a key is part of the hash
  • QuickHashIntHash::get — This method retrieves a value from the hash by its key
  • QuickHashIntHash::getSize — Returns the number of elements in the hash
  • QuickHashIntHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashIntHash::loadFromString — This factory method creates a hash from a string
  • QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashIntHash::saveToString — This method returns a serialized version of the hash
  • QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashIntHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashIntHash
  • QuickHashIntHash::__construct »
  • PHP Manual
  • QuickHashIntHash
  • This method adds a new entry to the hash

QuickHashIntHash::add

(PECL quickhash >= Unknown)

QuickHashIntHash::add — This method adds a new entry to the hash

Beschreibung

public QuickHashIntHash::add ( int $key , int $value = ? ) : bool

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashIntHash::CHECK_FOR_DUPES has been passed when the hash was created.

Parameter-Liste

key

The key of the entry to add.

value

The optional value of the entry to add. If no value is specified, 1 will be used.

Rückgabewerte

true when the entry was added, and false if the entry was not added.

Beispiele

Beispiel #1 QuickHashIntHash::add() example

<?php
echo "without dupe checking\n";
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 22 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 12 ) );

echo "\nwith dupe checking\n";
$hash = new QuickHashIntHash( 1024, QuickHashIntHash::CHECK_FOR_DUPES );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 78 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 9 ) );

echo "\ndefault value\n";
var_dump( $hash->add( 5 ) );
var_dump( $hash->get( 5 ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

without dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

with dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)

default value
bool(true)
int(1)


Creates a new QuickHashIntHash object

  • « QuickHashIntHash::add
  • QuickHashIntHash::delete »
  • PHP Manual
  • QuickHashIntHash
  • Creates a new QuickHashIntHash object

QuickHashIntHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntHash::__construct — Creates a new QuickHashIntHash object

Beschreibung

public QuickHashIntHash::__construct ( int $size , int $options = ? )

This constructor creates a new QuickHashIntHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Parameter-Liste

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashIntHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash; QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntHash::HASHER_NO_HASH, QuickHashIntHash::HASHER_JENKINS1 or QuickHashIntHash::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Rückgabewerte

Returns a new QuickHashIntHash object.

Beispiele

Beispiel #1 QuickHashIntHash::__construct() example

<?php
var_dump( new QuickHashIntHash( 1024 ) );
var_dump( new QuickHashIntHash( 1024, QuickHashIntHash::CHECK_FOR_DUPES ) );
var_dump(
    new QuickHashIntHash(
        1024,
        QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC | QuickHashIntHash::HASHER_JENKINS2
    )
);
?>


This method deletes am entry from the hash

  • « QuickHashIntHash::__construct
  • QuickHashIntHash::exists »
  • PHP Manual
  • QuickHashIntHash
  • This method deletes am entry from the hash

QuickHashIntHash::delete

(PECL quickhash >= Unknown)

QuickHashIntHash::delete — This method deletes am entry from the hash

Beschreibung

public QuickHashIntHash::delete ( int $key ) : bool

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return false like would happen with any other deletion failure.

Parameter-Liste

key

The key of the entry to delete.

Rückgabewerte

true when the entry was deleted, and false if the entry was not deleted.

Beispiele

Beispiel #1 QuickHashIntHash::delete() example

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 5 ) );
var_dump( $hash->delete( 4 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->delete( 4 ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashIntHash::delete
  • QuickHashIntHash::get »
  • PHP Manual
  • QuickHashIntHash
  • This method checks whether a key is part of the hash

QuickHashIntHash::exists

(PECL quickhash >= Unknown)

QuickHashIntHash::exists — This method checks whether a key is part of the hash

Beschreibung

public QuickHashIntHash::exists ( int $key ) : bool

This method checks whether an entry with the provided key exists in the hash.

Parameter-Liste

key

The key of the entry to check for whether it exists in the hash.

Rückgabewerte

Returns true when the entry was found, or false when the entry is not found.

Beispiele

Beispiel #1 QuickHashIntHash::exists() example

<?php
//generate 200000 elements
$array = range( 0, 199999 );
$existingEntries = array_rand( array_flip( $array ), 180000 );
$testForEntries = array_rand( array_flip( $array ), 1000 );
$foundCount = 0;

echo "Creating hash: ", microtime( true ), "\n";
$hash = new QuickHashIntHash( 100000 );
echo "Adding elements: ", microtime( true ), "\n";
foreach( $existingEntries as $key )
{
     $hash->add( $key, 56 );
}

echo "Doing 1000 tests: ", microtime( true ), "\n";
foreach( $testForEntries as $key )
{
     $foundCount += $hash->exists( $key );
}
echo "Done, $foundCount found: ", microtime( true ), "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Creating hash: 1263588703.0748
Adding elements: 1263588703.0757
Doing 1000 tests: 1263588703.7851
Done, 898 found: 1263588703.7897


This method retrieves a value from the hash by its key

  • « QuickHashIntHash::exists
  • QuickHashIntHash::getSize »
  • PHP Manual
  • QuickHashIntHash
  • This method retrieves a value from the hash by its key

QuickHashIntHash::get

(PECL quickhash >= Unknown)

QuickHashIntHash::get — This method retrieves a value from the hash by its key

Beschreibung

public QuickHashIntHash::get ( int $key ) : int

This method retrieves a value from the hash by its key.

Parameter-Liste

key

The key of the entry to add.

Rückgabewerte

The value if the key exists, or null if the key wasn't part of the hash.

Beispiele

Beispiel #1 QuickHashIntHash::get() example

<?php
$hash = new QuickHashIntHash( 8 );
var_dump( $hash->get( 1 ) );

var_dump( $hash->add( 2 ) );
var_dump( $hash->get( 2 ) );

var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->get( 3 ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)
int(1)
bool(true)
int(5)


Returns the number of elements in the hash

  • « QuickHashIntHash::get
  • QuickHashIntHash::loadFromFile »
  • PHP Manual
  • QuickHashIntHash
  • Returns the number of elements in the hash

QuickHashIntHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntHash::getSize — Returns the number of elements in the hash

Beschreibung

public QuickHashIntHash::getSize ( ) : int

Returns the number of elements in the hash.

Parameter-Liste

key

The key of the entry to add.

Rückgabewerte

The number of elements in the hash.

Beispiele

Beispiel #1 QuickHashIntHash::getSize() example

<?php
$hash = new QuickHashIntHash( 8 );
var_dump( $hash->add( 2 ) );
var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->getSize() );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashIntHash::getSize
  • QuickHashIntHash::loadFromString »
  • PHP Manual
  • QuickHashIntHash
  • This factory method creates a hash from a file

QuickHashIntHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromFile — This factory method creates a hash from a file

Beschreibung

public static QuickHashIntHash::loadFromFile ( string $filename , int $options = ? ) : QuickHashIntHash

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x11\0', the number of elements as a 32 bit signed integer in system Endianness, followed by 32 bit signed integers packed together in the Endianness that the system that the code runs on uses. For each hash element there are two 32 bit signed integers stored. The first of each element is the key, and the second is the value belonging to the key. An example could be:

Beispiel #1 QuickHash IntHash file format

00000000  51 48 11 00 02 00 00 00  01 00 00 00 01 00 00 00  |QH..............|
00000010  03 00 00 00 09 00 00 00                           |........|
00000018

Beispiel #2 QuickHash IntHash file format

header signature ('QH'; key type: 1; value type: 1; filler: \0x00)
00000000  51 48 11 00

number of elements:
00000004  02 00 00 00

data string:
00000000  01 00 00 00 01 00 00 00  03 00 00 00 09 00 00 00

key/value 1 (key = 1, value = 1)
01 00 00 00  01 00 00 00

key/value 2 (key = 3, value = 9)
03 00 00 00  09 00 00 00

Parameter-Liste

filename

The filename of the file to read the hash from.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Rückgabewerte

Returns a new QuickHashIntHash.

Beispiele

Beispiel #3 QuickHashIntHash::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.hash";
$hash = QuickHashIntHash::loadFromFile(
    $file,
    QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This factory method creates a hash from a string

  • « QuickHashIntHash::loadFromFile
  • QuickHashIntHash::saveToFile »
  • PHP Manual
  • QuickHashIntHash
  • This factory method creates a hash from a string

QuickHashIntHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromString — This factory method creates a hash from a string

Beschreibung

public static QuickHashIntHash::loadFromString ( string $contents , int $options = ? ) : QuickHashIntHash

This factory method creates a new hash from a definition in a string. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses. For each element there are two 32 bit signed integers stored. The first of each element is the key, and the second is the value belonging to the key.

Parameter-Liste

contents

The string containing a serialized format of the hash.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Rückgabewerte

Returns a new QuickHashIntHash.

Beispiele

Beispiel #1 QuickHashIntHash::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash" );
$hash = QuickHashIntHash::loadFromString(
    $contents,
    QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This method stores an in-memory hash to disk

  • « QuickHashIntHash::loadFromString
  • QuickHashIntHash::saveToString »
  • PHP Manual
  • QuickHashIntHash
  • This method stores an in-memory hash to disk

QuickHashIntHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk

Beschreibung

public QuickHashIntHash::saveToFile ( string $filename ) : void

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Parameter-Liste

filename

The filename of the file to store the hash in.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 QuickHashIntHash::saveToFile() example

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 43 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 52 ) );

$hash->saveToFile( '/tmp/test.hash' );
?>


This method returns a serialized version of the hash

  • « QuickHashIntHash::saveToFile
  • QuickHashIntHash::set »
  • PHP Manual
  • QuickHashIntHash
  • This method returns a serialized version of the hash

QuickHashIntHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToString — This method returns a serialized version of the hash

Beschreibung

public QuickHashIntHash::saveToString ( ) : string

This method returns a serialized version of the hash in the same format that loadFromString() can read.

Rückgabewerte

This method returns a string containing a serialized format of the hash. Each element is stored as a four byte value in the Endianness that the current system uses.

Beispiele

Beispiel #1 QuickHashIntHash::saveToString() example

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 34 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 55 ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashIntHash::saveToString
  • QuickHashIntHash::update »
  • PHP Manual
  • QuickHashIntHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashIntHash::set

(PECL quickhash >= Unknown)

QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Beschreibung

public QuickHashIntHash::set ( int $key , int $value ) : bool

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Parameter-Liste

key

The key of the entry to add or update.

value

The new value to set the entry with.

Rückgabewerte

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Beispiele

Beispiel #1 QuickHashIntHash::set() example

<?php
$hash = new QuickHashIntHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( 46692 ) );
var_dump( $hash->set( 46692, 16091 ) );
var_dump( $hash->get( 46692 ) );

echo "Set->Update\n";
var_dump( $hash->set( 46692, 29906 ) );
var_dump( $hash->get( 46692 ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


This method updates an entry in the hash with a new value

  • « QuickHashIntHash::set
  • QuickHashStringIntHash »
  • PHP Manual
  • QuickHashIntHash
  • This method updates an entry in the hash with a new value

QuickHashIntHash::update

(PECL quickhash >= Unknown)

QuickHashIntHash::update — This method updates an entry in the hash with a new value

Beschreibung

public QuickHashIntHash::update ( int $key , int $value ) : bool

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Parameter-Liste

key

The key of the entry to add.

value

The new value to update the entry with.

Rückgabewerte

true when the entry was found and updated, and false if the entry was not part of the hash already.

Beispiele

Beispiel #1 QuickHashIntHash::update() example

<?php
$hash = new QuickHashIntHash( 1024 );

var_dump( $hash->add( 141421, 173205 ) );
var_dump( $hash->update( 141421, 223606 ) );
var_dump( $hash->get( 141421 ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
int(223606)


The QuickHashStringIntHash class

(No version information available, might only be in Git)

Einführung

This class wraps around a hash containing strings, where the values are integer numbers. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Klassenbeschreibung

QuickHashStringIntHash {
/* Constants */
const int CHECK_FOR_DUPES = 1 ;
const int DO_NOT_USE_ZEND_ALLOC = 2 ;
/* Methods */
public add ( string $key , int $value ) : bool
public __construct ( int $size , int $options = 0 )
public delete ( string $key ) : bool
public exists ( string $key ) : bool
public get ( string $key ) : mixed
public getSize ( ) : int
public static loadFromFile ( string $filename , int $size = 0 , int $options = 0 ) : QuickHashStringIntHash
public static loadFromString ( string $contents , int $size = 0 , int $options = 0 ) : QuickHashStringIntHash
public saveToFile ( string $filename ) : void
public saveToString ( ) : string
public set ( string $key , int $value ) : int
public update ( string $key , int $value ) : bool
}

Vordefinierte Konstanten

QuickHashStringIntHash::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either add() or loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

Inhaltsverzeichnis

  • QuickHashStringIntHash::add — This method adds a new entry to the hash
  • QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object
  • QuickHashStringIntHash::delete — This method deletes am entry from the hash
  • QuickHashStringIntHash::exists — This method checks whether a key is part of the hash
  • QuickHashStringIntHash::get — This method retrieves a value from the hash by its key
  • QuickHashStringIntHash::getSize — Returns the number of elements in the hash
  • QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string
  • QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash
  • QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashStringIntHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashStringIntHash
  • QuickHashStringIntHash::__construct »
  • PHP Manual
  • QuickHashStringIntHash
  • This method adds a new entry to the hash

QuickHashStringIntHash::add

(No version information available, might only be in Git)

QuickHashStringIntHash::add — This method adds a new entry to the hash

Beschreibung

public QuickHashStringIntHash::add ( string $key , int $value ) : bool

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashStringIntHash::CHECK_FOR_DUPES has been passed when the hash was created.

Parameter-Liste

key

The key of the entry to add.

value

The value of the entry to add.

Rückgabewerte

true when the entry was added, and false if the entry was not added.

Beispiele

Beispiel #1 QuickHashStringIntHash::add() example

<?php
echo "without dupe checking\n";
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 22 ) );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 12 ) );

echo "\nwith dupe checking\n";
$hash = new QuickHashStringIntHash( 1024, QuickHashStringIntHash::CHECK_FOR_DUPES );
var_dump( $hash );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 78 ) );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 9 ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

without dupe checking
object(QuickHashStringIntHash)#1 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

with dupe checking
object(QuickHashStringIntHash)#2 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)


Creates a new QuickHashStringIntHash object

  • « QuickHashStringIntHash::add
  • QuickHashStringIntHash::delete »
  • PHP Manual
  • QuickHashStringIntHash
  • Creates a new QuickHashStringIntHash object

QuickHashStringIntHash::__construct

(No version information available, might only be in Git)

QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object

Beschreibung

public QuickHashStringIntHash::__construct ( int $size , int $options = 0 )

This constructor creates a new QuickHashStringIntHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Parameter-Liste

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashStringIntHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash and QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager.

Rückgabewerte

Returns a new QuickHashStringIntHash object.

Beispiele

Beispiel #1 QuickHashStringIntHash::__construct() example

<?php
var_dump( new QuickHashStringIntHash( 1024 ) );
var_dump( new QuickHashStringIntHash( 1024, QuickHashStringIntHash::CHECK_FOR_DUPES ) );
?>


This method deletes am entry from the hash

  • « QuickHashStringIntHash::__construct
  • QuickHashStringIntHash::exists »
  • PHP Manual
  • QuickHashStringIntHash
  • This method deletes am entry from the hash

QuickHashStringIntHash::delete

(No version information available, might only be in Git)

QuickHashStringIntHash::delete — This method deletes am entry from the hash

Beschreibung

public QuickHashStringIntHash::delete ( string $key ) : bool

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return false like would happen with any other deletion failure.

Parameter-Liste

key

The key of the entry to delete.

Rückgabewerte

true when the entry was deleted, and false if the entry was not deleted.

Beispiele

Beispiel #1 QuickHashStringIntHash::delete() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->exists( 'four' ) );
var_dump( $hash->add( 'four', 5 ) );
var_dump( $hash->get( 'four' ) );
var_dump( $hash->delete( 'four' ) );
var_dump( $hash->exists( 'four' ) );
var_dump( $hash->get( 'four' ) );
var_dump( $hash->delete( 'four' ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)
int(5)
bool(true)
bool(false)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashStringIntHash::delete
  • QuickHashStringIntHash::get »
  • PHP Manual
  • QuickHashStringIntHash
  • This method checks whether a key is part of the hash

QuickHashStringIntHash::exists

(No version information available, might only be in Git)

QuickHashStringIntHash::exists — This method checks whether a key is part of the hash

Beschreibung

public QuickHashStringIntHash::exists ( string $key ) : bool

This method checks whether an entry with the provided key exists in the hash.

Parameter-Liste

key

The key of the entry to check for whether it exists in the hash.

Rückgabewerte

Returns true when the entry was found, or false when the entry is not found.


This method retrieves a value from the hash by its key

  • « QuickHashStringIntHash::exists
  • QuickHashStringIntHash::getSize »
  • PHP Manual
  • QuickHashStringIntHash
  • This method retrieves a value from the hash by its key

QuickHashStringIntHash::get

(No version information available, might only be in Git)

QuickHashStringIntHash::get — This method retrieves a value from the hash by its key

Beschreibung

public QuickHashStringIntHash::get ( string $key ) : mixed

This method retrieves a value from the hash by its key.

Parameter-Liste

key

The key of the entry to add.

Rückgabewerte

The value if the key exists, or null if the key wasn't part of the hash.

Beispiele

Beispiel #1 QuickHashStringIntHash::get() example

<?php
$hash = new QuickHashStringIntHash( 8 );
var_dump( $hash->get( "one" ) );

var_dump( $hash->add( "two", 2 ) );
var_dump( $hash->get( "two" ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)
int(2)


Returns the number of elements in the hash

  • « QuickHashStringIntHash::get
  • QuickHashStringIntHash::loadFromFile »
  • PHP Manual
  • QuickHashStringIntHash
  • Returns the number of elements in the hash

QuickHashStringIntHash::getSize

(No version information available, might only be in Git)

QuickHashStringIntHash::getSize — Returns the number of elements in the hash

Beschreibung

public QuickHashStringIntHash::getSize ( ) : int

Returns the number of elements in the hash.

Parameter-Liste

key

The key of the entry to add.

Rückgabewerte

The number of elements in the hash.

Beispiele

Beispiel #1 QuickHashStringIntHash::getSize() example

<?php
$hash = new QuickHashStringIntHash( 8 );
var_dump( $hash->add( "two", 2 ) );
var_dump( $hash->add( "three", 5 ) );
var_dump( $hash->getSize() );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashStringIntHash::getSize
  • QuickHashStringIntHash::loadFromString »
  • PHP Manual
  • QuickHashStringIntHash
  • This factory method creates a hash from a file

QuickHashStringIntHash::loadFromFile

(No version information available, might only be in Git)

QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file

Beschreibung

public static QuickHashStringIntHash::loadFromFile ( string $filename , int $size = 0 , int $options = 0 ) : QuickHashStringIntHash

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x21\0', the number of elements as a 32 bit signed integer in system Endianness, an unsigned 32 bit integer containing the number of element data to follow in characters. This element data contains all the strings. The follows another signed 32 bit integer containing the number of bucket lists. After the header and the strings, the elements follow. They are ordered by bucket list so that the keys don't have to be hashed in order to restore the hash. For each bucket list, the following information is stored (all as 32 bit integers): the bucket list index, the number of elements in that list, and then in pairs of two unsigned 32 bit integers the elements, where the first one is the index into the string list containing the keys, and the second one the value. An example could be:

Beispiel #1 QuickHash StringIntHash file format

00000000  51 48 21 00 02 00 00 00  09 00 00 00 40 00 00 00  |QH!.........@...|
00000010  4f 4e 45 00 4e 49 4e 45  00 07 00 00 00 01 00 00  |ONE.NINE........|
00000020  00 00 00 00 00 01 00 00  00 2f 00 00 00 01 00 00  |........./......|
00000030  00 04 00 00 00 03 00 00  00                       |.........|
00000039

Beispiel #2 QuickHash IntHash file format

header signature ('QH'; key type: 2; value type: 1; filler: \0x00)
00000000  51 48 21 00

number of elements:
00000004  02 00 00 00

length of string values (9 characters):
00000008  09 00 00 00

number of hash bucket lists (this is configured for hashes as argument to the
constructor normally, 64 in this case):
0000000C  40 00 00 00

string values:
00000010  4f 4e 45 00 4e 49 4e 45  00

bucket lists:
  bucket list 1 (with key 7, and 1 element):
    header:
    07 00 00 00 01 00 00 00
    elements (key index: 0 ('ONE'), value = 0):
    00 00 00 00 01 00 00 00
  bucket list 2 (with key 0x2f, and 1 element):
    header:
    2f 00 00 00 01 00 00 00
    elements (key index: 4 ('NINE'), value = 3):
    04 00 00 00 03 00 00 00

Parameter-Liste

filename

The filename of the file to read the hash from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is read from the file format (unlike the QuickHashIntHash and QuickHashIntStringHash classes, where it is automatically calculated from the number of entries in the hash.)

Rückgabewerte

Returns a new QuickHashStringIntHash.

Beispiele

Beispiel #3 QuickHashStringIntHash::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.hash.string";
$hash = QuickHashStringIntHash::loadFromFile(
    $file,
    QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    $i = 48712 + $key * 1631;
    $k = base_convert( $i, 10, 36 );
    echo $k, ' => ', $hash->get( $k ), "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

11l4 => 48712
12uf => 50343
143q => 51974
15d1 => 53605
16mc => 55236
17vn => 56867
194y => 58498
1ae9 => 60129
1bnk => 61760
1cwv => 63391
1e66 => 65022
1ffh => 66653
1gos => 68284
1hy3 => 69915
1j7e => 71546
1kgp => 73177


This factory method creates a hash from a string

  • « QuickHashStringIntHash::loadFromFile
  • QuickHashStringIntHash::saveToFile »
  • PHP Manual
  • QuickHashStringIntHash
  • This factory method creates a hash from a string

QuickHashStringIntHash::loadFromString

(No version information available, might only be in Git)

QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string

Beschreibung

public static QuickHashStringIntHash::loadFromString ( string $contents , int $size = 0 , int $options = 0 ) : QuickHashStringIntHash

This factory method creates a new hash from a definition in a string. The format is the same as the one used in "loadFromFile".

Parameter-Liste

contents

The string containing a serialized format of the hash.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Rückgabewerte

Returns a new QuickHashStringIntHash.

Beispiele

Beispiel #1 QuickHashStringIntHash::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash.string" );
$hash = QuickHashStringIntHash::loadFromString(
    $contents,
    QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    $i = 48712 + $key * 1631;
    $k = base_convert( $i, 10, 36 );
    echo $k, ' => ', $hash->get( $k ), "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

11l4 => 48712
12uf => 50343
143q => 51974
15d1 => 53605
16mc => 55236
17vn => 56867
194y => 58498
1ae9 => 60129
1bnk => 61760
1cwv => 63391
1e66 => 65022
1ffh => 66653
1gos => 68284
1hy3 => 69915
1j7e => 71546
1kgp => 73177


This method stores an in-memory hash to disk

  • « QuickHashStringIntHash::loadFromString
  • QuickHashStringIntHash::saveToString »
  • PHP Manual
  • QuickHashStringIntHash
  • This method stores an in-memory hash to disk

QuickHashStringIntHash::saveToFile

(No version information available, might only be in Git)

QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk

Beschreibung

public QuickHashStringIntHash::saveToFile ( string $filename ) : void

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Parameter-Liste

filename

The filename of the file to store the hash in.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 QuickHashStringIntHash::saveToFile() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "fourty three", 42 ) );
var_dump( $hash->add( "fifty two", 52 ) );

$hash->saveToFile( '/tmp/test.hash.string' );
?>


This method returns a serialized version of the hash

  • « QuickHashStringIntHash::saveToFile
  • QuickHashStringIntHash::set »
  • PHP Manual
  • QuickHashStringIntHash
  • This method returns a serialized version of the hash

QuickHashStringIntHash::saveToString

(No version information available, might only be in Git)

QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash

Beschreibung

public QuickHashStringIntHash::saveToString ( ) : string

This method returns a serialized version of the hash in the same format that loadFromString() can read.

Rückgabewerte

This method returns a serialized format of an existing hash, in the same format that loadFromString() can read.

Beispiele

Beispiel #1 QuickHashStringIntHash::saveToString() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "fourty three", 42 ) );
var_dump( $hash->add( "fifty two", 52 ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashStringIntHash::saveToString
  • QuickHashStringIntHash::update »
  • PHP Manual
  • QuickHashStringIntHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashStringIntHash::set

(No version information available, might only be in Git)

QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Beschreibung

public QuickHashStringIntHash::set ( string $key , int $value ) : int

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashStringIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Parameter-Liste

key

The key of the entry to add or update.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Rückgabewerte

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Beispiele

Beispiel #1 QuickHashStringIntHash::set() example

<?php
$hash = new QuickHashStringIntHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( "fourty six thousand six hundred ninety two" ) );
var_dump( $hash->set( "fourty six thousand six hundred ninety two", 16091 ) );
var_dump( $hash->get( "fourty six thousand six hundred ninety two" ) );

echo "Set->Update\n";
var_dump( $hash->set( "fourty six thousand six hundred ninety two", 29906 ) );
var_dump( $hash->get( "fourty six thousand six hundred ninety two" ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Set->Add
bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


This method updates an entry in the hash with a new value

  • « QuickHashStringIntHash::set
  • QuickHashIntStringHash »
  • PHP Manual
  • QuickHashStringIntHash
  • This method updates an entry in the hash with a new value

QuickHashStringIntHash::update

(No version information available, might only be in Git)

QuickHashStringIntHash::update — This method updates an entry in the hash with a new value

Beschreibung

public QuickHashStringIntHash::update ( string $key , int $value ) : bool

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashStringIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Parameter-Liste

key

The key of the entry to add.

value

The new value for the entry. If a non-string is passed, it will be converted to a string automatically if possible.

Rückgabewerte

true when the entry was found and updated, and false if the entry was not part of the hash already.

Beispiele

Beispiel #1 QuickHashStringIntHash::update() example

<?php
$hash = new QuickHashStringIntHash( 1024 );

$hash->add( 'six', 314159265 );
$hash->add( "a lot", 314159265 );

echo $hash->get( 'six' ), "\n";
echo $hash->get( 'a lot' ), "\n";

var_dump( $hash->update( 'a lot', 314159266 ) );
var_dump( $hash->update( "a lot plus one", 314159999 ) );

echo $hash->get( 'six' ), "\n";
echo $hash->get( 'a lot' ), "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

314159265
314159265
bool(true)
bool(false)
314159265
314159266


The QuickHashIntStringHash class

(PECL quickhash >= Unknown)

Einführung

This class wraps around a hash containing integer numbers, where the values are strings. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Klassenbeschreibung

QuickHashIntStringHash {
/* Constants */
const int CHECK_FOR_DUPES = 1 ;
const int DO_NOT_USE_ZEND_ALLOC = 2 ;
const int HASHER_NO_HASH = 256 ;
const int HASHER_JENKINS1 = 512 ;
const int HASHER_JENKINS2 = 1024 ;
/* Methods */
public add ( int $key , string $value ) : bool
public __construct ( int $size , int $options = 0 )
public delete ( int $key ) : bool
public exists ( int $key ) : bool
public get ( int $key ) : mixed
public getSize ( ) : int
public static loadFromFile ( string $filename , int $size = 0 , int $options = 0 ) : QuickHashIntStringHash
public static loadFromString ( string $contents , int $size = 0 , int $options = 0 ) : QuickHashIntStringHash
public saveToFile ( string $filename ) : void
public saveToString ( ) : string
public set ( int $key , string $value ) : int
public update ( int $key , string $value ) : bool
}

Vordefinierte Konstanten

QuickHashIntStringHash::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either add() or loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

QuickHashIntStringHash::HASHER_NO_HASH

Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

QuickHashIntStringHash::HASHER_JENKINS1

This is the default hashing function to turn the integer hashes into bucket list indexes.

QuickHashIntStringHash::HASHER_JENKINS2

Selects a variant hashing algorithm.

Inhaltsverzeichnis

  • QuickHashIntStringHash::add — This method adds a new entry to the hash
  • QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object
  • QuickHashIntStringHash::delete — This method deletes am entry from the hash
  • QuickHashIntStringHash::exists — This method checks whether a key is part of the hash
  • QuickHashIntStringHash::get — This method retrieves a value from the hash by its key
  • QuickHashIntStringHash::getSize — Returns the number of elements in the hash
  • QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string
  • QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash
  • QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashIntStringHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashIntStringHash
  • QuickHashIntStringHash::__construct »
  • PHP Manual
  • QuickHashIntStringHash
  • This method adds a new entry to the hash

QuickHashIntStringHash::add

(PECL quickhash >= Unknown)

QuickHashIntStringHash::add — This method adds a new entry to the hash

Beschreibung

public QuickHashIntStringHash::add ( int $key , string $value ) : bool

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashIntStringHash::CHECK_FOR_DUPES has been passed when the hash was created.

Parameter-Liste

key

The key of the entry to add.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Rückgabewerte

true when the entry was added, and false if the entry was not added.

Beispiele

Beispiel #1 QuickHashIntStringHash::add() example

<?php
echo "without dupe checking\n";
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "twenty two" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "twelve" ) );

echo "\nwith dupe checking\n";
$hash = new QuickHashIntStringHash( 1024, QuickHashIntStringHash::CHECK_FOR_DUPES );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "seventy eight" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "nine" ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

without dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
string(10) "twenty two"
bool(true)

with dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
string(13) "seventy eight"
bool(false)


Creates a new QuickHashIntStringHash object

  • « QuickHashIntStringHash::add
  • QuickHashIntStringHash::delete »
  • PHP Manual
  • QuickHashIntStringHash
  • Creates a new QuickHashIntStringHash object

QuickHashIntStringHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object

Beschreibung

public QuickHashIntStringHash::__construct ( int $size , int $options = 0 )

This constructor creates a new QuickHashIntStringHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Parameter-Liste

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashIntStringHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash; QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntStringHash::HASHER_NO_HASH, QuickHashIntStringHash::HASHER_JENKINS1 or QuickHashIntStringHash::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Rückgabewerte

Returns a new QuickHashIntStringHash object.

Beispiele

Beispiel #1 QuickHashIntStringHash::__construct() example

<?php
var_dump( new QuickHashIntStringHash( 1024 ) );
var_dump( new QuickHashIntStringHash( 1024, QuickHashIntStringHash::CHECK_FOR_DUPES ) );
var_dump(
    new QuickHashIntStringHash(
        1024,
        QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC | QuickHashIntStringHash::HASHER_JENKINS2
    )
);
?>


This method deletes am entry from the hash

  • « QuickHashIntStringHash::__construct
  • QuickHashIntStringHash::exists »
  • PHP Manual
  • QuickHashIntStringHash
  • This method deletes am entry from the hash

QuickHashIntStringHash::delete

(PECL quickhash >= Unknown)

QuickHashIntStringHash::delete — This method deletes am entry from the hash

Beschreibung

public QuickHashIntStringHash::delete ( int $key ) : bool

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return false like would happen with any other deletion failure.

Parameter-Liste

key

The key of the entry to delete.

Rückgabewerte

true when the entry was deleted, and false if the entry was not deleted.

Beispiele

Beispiel #1 QuickHashIntStringHash::delete() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "five" ) );
var_dump( $hash->delete( 4 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->delete( 4 ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashIntStringHash::delete
  • QuickHashIntStringHash::get »
  • PHP Manual
  • QuickHashIntStringHash
  • This method checks whether a key is part of the hash

QuickHashIntStringHash::exists

(PECL quickhash >= Unknown)

QuickHashIntStringHash::exists — This method checks whether a key is part of the hash

Beschreibung

public QuickHashIntStringHash::exists ( int $key ) : bool

This method checks whether an entry with the provided key exists in the hash.

Parameter-Liste

key

The key of the entry to check for whether it exists in the hash.

Rückgabewerte

Returns true when the entry was found, or false when the entry is not found.


This method retrieves a value from the hash by its key

  • « QuickHashIntStringHash::exists
  • QuickHashIntStringHash::getSize »
  • PHP Manual
  • QuickHashIntStringHash
  • This method retrieves a value from the hash by its key

QuickHashIntStringHash::get

(PECL quickhash >= Unknown)

QuickHashIntStringHash::get — This method retrieves a value from the hash by its key

Beschreibung

public QuickHashIntStringHash::get ( int $key ) : mixed

This method retrieves a value from the hash by its key.

Parameter-Liste

key

The key of the entry to add.

Rückgabewerte

The value if the key exists, or null if the key wasn't part of the hash.

Beispiele

Beispiel #1 QuickHashIntStringHash::get() example

<?php
$hash = new QuickHashIntStringHash( 8 );
var_dump( $hash->get( 1 ) );

var_dump( $hash->add( 2, "two" ) );
var_dump( $hash->get( 2 ) );

var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->get( 3 ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(false)
bool(true)
string(3) "two"
bool(true)
string(1) "5"


Returns the number of elements in the hash

  • « QuickHashIntStringHash::get
  • QuickHashIntStringHash::loadFromFile »
  • PHP Manual
  • QuickHashIntStringHash
  • Returns the number of elements in the hash

QuickHashIntStringHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntStringHash::getSize — Returns the number of elements in the hash

Beschreibung

public QuickHashIntStringHash::getSize ( ) : int

Returns the number of elements in the hash.

Rückgabewerte

The number of elements in the hash.

Beispiele

Beispiel #1 QuickHashIntStringHash::getSize() example

<?php
$hash = new QuickHashIntStringHash( 8 );
var_dump( $hash->add( 2, "two" ) );
var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->getSize() );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashIntStringHash::getSize
  • QuickHashIntStringHash::loadFromString »
  • PHP Manual
  • QuickHashIntStringHash
  • This factory method creates a hash from a file

QuickHashIntStringHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file

Beschreibung

public static QuickHashIntStringHash::loadFromFile ( string $filename , int $size = 0 , int $options = 0 ) : QuickHashIntStringHash

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x12\0', the number of elements as a 32 bit signed integer in system Endianness, an unsigned 32 bit integer containing the number of element data to follow in characters. This element data contains all the strings. After the header and the strings, the elements follow in pairs of two unsigned 32 bit integers where the first one is the key, and the second one the index in the element data string. An example could be:

Beispiel #1 QuickHash IntString file format

00000000  51 48 12 00 02 00 00 00  09 00 00 00 4f 4e 45 00  |QH..........ONE.|
00000010  4e 49 4e 45 00 01 00 00  00 00 00 00 00 03 00 00  |NINE............|
00000020  00 04 00 00 00                                    |.....|
00000025

Beispiel #2 QuickHash IntString file format

header signature ('QH'; key type: 1; value type: 2; filler: \0x00)
00000000  51 48 12 00

number of elements:
00000004  02 00 00 00

length of string values (9 characters):
00000008  09 00 00 00

string values:
0000000C  4f 4e 45 00 4e 49 4e 45  00

data string:
00000015  01 00 00 00 00 00 00 00  03 00 00 00 04 00 00 00

key/value 1 (key = 1, string index = 0 ("ONE")):
01 00 00 00  00 00 00 00

key/value 2 (key = 3, string index = 4 ("NINE")):
03 00 00 00  04 00 00 00

Parameter-Liste

filename

The filename of the file to read the hash from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Rückgabewerte

Returns a new QuickHashIntStringHash.

Beispiele

Beispiel #3 QuickHashIntStringHash::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.string.hash";
$hash = QuickHashIntStringHash::loadFromFile(
    $file,
    QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This factory method creates a hash from a string

  • « QuickHashIntStringHash::loadFromFile
  • QuickHashIntStringHash::saveToFile »
  • PHP Manual
  • QuickHashIntStringHash
  • This factory method creates a hash from a string

QuickHashIntStringHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string

Beschreibung

public static QuickHashIntStringHash::loadFromString ( string $contents , int $size = 0 , int $options = 0 ) : QuickHashIntStringHash

This factory method creates a new hash from a definition in a string. The format is the same as the one used in "loadFromFile".

Parameter-Liste

contents

The string containing a serialized format of the hash.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Rückgabewerte

Returns a new QuickHashIntStringHash.

Beispiele

Beispiel #1 QuickHashIntStringHash::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash" );
$hash = QuickHashIntStringHash::loadFromString(
    $contents,
    QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This method stores an in-memory hash to disk

  • « QuickHashIntStringHash::loadFromString
  • QuickHashIntStringHash::saveToString »
  • PHP Manual
  • QuickHashIntStringHash
  • This method stores an in-memory hash to disk

QuickHashIntStringHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk

Beschreibung

public QuickHashIntStringHash::saveToFile ( string $filename ) : void

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Parameter-Liste

filename

The filename of the file to store the hash in.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 QuickHashIntStringHash::saveToFile() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "fourty three" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "fifty two" ) );

$hash->saveToFile( '/tmp/test.string.hash' );
?>


This method returns a serialized version of the hash

  • « QuickHashIntStringHash::saveToFile
  • QuickHashIntStringHash::set »
  • PHP Manual
  • QuickHashIntStringHash
  • This method returns a serialized version of the hash

QuickHashIntStringHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash

Beschreibung

public QuickHashIntStringHash::saveToString ( ) : string

This method returns a serialized version of the hash in the same format that loadFromString() can read.

Rückgabewerte

This method returns a string containing a serialized format of the hash. Each element is stored as a four byte value in the Endianness that the current system uses.

Beispiele

Beispiel #1 QuickHashIntStringHash::saveToString() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "thirty four" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 5, "fifty five" ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashIntStringHash::saveToString
  • QuickHashIntStringHash::update »
  • PHP Manual
  • QuickHashIntStringHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashIntStringHash::set

(PECL quickhash >= Unknown)

QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Beschreibung

public QuickHashIntStringHash::set ( int $key , string $value ) : int

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntStringHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Parameter-Liste

key

The key of the entry to add or update.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Rückgabewerte

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Beispiele

Beispiel #1 QuickHashIntStringHash::set() example

<?php
$hash = new QuickHashIntStringHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( 46692 ) );
var_dump( $hash->set( 46692, "sixteen thousand ninety one" ) );
var_dump( $hash->get( 46692 ) );

echo "Set->Update\n";
var_dump( $hash->set( 46692, "twenty nine thousand nine hundred six" ) );
var_dump( $hash->get( 46692 ) );
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Set->Add
bool(false)
int(2)
string(27) "sixteen thousand ninety one"
Set->Update
int(1)
string(37) "twenty nine thousand nine hundred six"


This method updates an entry in the hash with a new value

  • « QuickHashIntStringHash::set
  • Reflection »
  • PHP Manual
  • QuickHashIntStringHash
  • This method updates an entry in the hash with a new value

QuickHashIntStringHash::update

(PECL quickhash >= Unknown)

QuickHashIntStringHash::update — This method updates an entry in the hash with a new value

Beschreibung

public QuickHashIntStringHash::update ( int $key , string $value ) : bool

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntStringHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Parameter-Liste

key

The key of the entry to add.

value

The new value for the entry. If a non-string is passed, it will be converted to a string automatically if possible.

Rückgabewerte

true when the entry was found and updated, and false if the entry was not part of the hash already.

Beispiele

Beispiel #1 QuickHashIntStringHash::update() example

<?php
$hash->add( 161803398, "--" );
$hash->add( 314159265, "a lot" );

echo $hash->get( 161803398 ), "\n";
echo $hash->get( 314159265 ), "\n";

var_dump( $hash->update( 314159265, "a lot plus one" ) );
var_dump( $hash->update( 314159999, "a lot plus one" ) );

echo $hash->get( 161803398 ), "\n";
echo $hash->get( 314159265 ), "\n";
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

--
a lot
bool(true)
bool(false)
--
a lot plus one


Reflection

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Extending
  • Reflection — Die Reflection Klasse
    • Reflection::export — Exports
    • Reflection::getModifierNames — Gets modifier names
  • ReflectionClass — The ReflectionClass class
    • ReflectionClass::__construct — Constructs a ReflectionClass
    • ReflectionClass::export — Exports a class
    • ReflectionClass::getConstant — Gets defined constant
    • ReflectionClass::getConstants — Gets constants
    • ReflectionClass::getConstructor — Gets the constructor of the class
    • ReflectionClass::getDefaultProperties — Gets default properties
    • ReflectionClass::getDocComment — Gets doc comments
    • ReflectionClass::getEndLine — Gets end line
    • ReflectionClass::getExtension — Gets a ReflectionExtension object for the extension which defined the class
    • ReflectionClass::getExtensionName — Gets the name of the extension which defined the class
    • ReflectionClass::getFileName — Gets the filename of the file in which the class has been defined
    • ReflectionClass::getInterfaceNames — Gets the interface names
    • ReflectionClass::getInterfaces — Gets the interfaces
    • ReflectionClass::getMethod — Gets a ReflectionMethod for a class method
    • ReflectionClass::getMethods — Gets an array of methods
    • ReflectionClass::getModifiers — Gets the class modifiers
    • ReflectionClass::getName — Gets class name
    • ReflectionClass::getNamespaceName — Gets namespace name
    • ReflectionClass::getParentClass — Gets parent class
    • ReflectionClass::getProperties — Gets properties
    • ReflectionClass::getProperty — Gets a ReflectionProperty for a class's property
    • ReflectionClass::getReflectionConstant — Gets a ReflectionClassConstant for a class's constant
    • ReflectionClass::getReflectionConstants — Gets class constants
    • ReflectionClass::getShortName — Gets short name
    • ReflectionClass::getStartLine — Gets starting line number
    • ReflectionClass::getStaticProperties — Gets static properties
    • ReflectionClass::getStaticPropertyValue — Gets static property value
    • ReflectionClass::getTraitAliases — Returns an array of trait aliases
    • ReflectionClass::getTraitNames — Returns an array of names of traits used by this class
    • ReflectionClass::getTraits — Returns an array of traits used by this class
    • ReflectionClass::hasConstant — Checks if constant is defined
    • ReflectionClass::hasMethod — Checks if method is defined
    • ReflectionClass::hasProperty — Checks if property is defined
    • ReflectionClass::implementsInterface — Implements interface
    • ReflectionClass::inNamespace — Checks if in namespace
    • ReflectionClass::isAbstract — Checks if class is abstract
    • ReflectionClass::isAnonymous — Checks if class is anonymous
    • ReflectionClass::isCloneable — Returns whether this class is cloneable
    • ReflectionClass::isFinal — Checks if class is final
    • ReflectionClass::isInstance — Checks class for instance
    • ReflectionClass::isInstantiable — Checks if the class is instantiable
    • ReflectionClass::isInterface — Checks if the class is an interface
    • ReflectionClass::isInternal — Checks if class is defined internally by an extension, or the core
    • ReflectionClass::isIterable — Check whether this class is iterable
    • ReflectionClass::isIterateable — Alias von ReflectionClass::isIterable
    • ReflectionClass::isSubclassOf — Checks if a subclass
    • ReflectionClass::isTrait — Returns whether this is a trait
    • ReflectionClass::isUserDefined — Checks if user defined
    • ReflectionClass::newInstance — Creates a new class instance from given arguments
    • ReflectionClass::newInstanceArgs — Creates a new class instance from given arguments
    • ReflectionClass::newInstanceWithoutConstructor — Creates a new class instance without invoking the constructor
    • ReflectionClass::setStaticPropertyValue — Sets static property value
    • ReflectionClass::__toString — Returns the string representation of the ReflectionClass object
  • ReflectionClassConstant — The ReflectionClassConstant class
    • ReflectionClassConstant::__construct — Constructs a ReflectionClassConstant
    • ReflectionClassConstant::export — Export
    • ReflectionClassConstant::getDeclaringClass — Gets declaring class
    • ReflectionClassConstant::getDocComment — Gets doc comments
    • ReflectionClassConstant::getModifiers — Gets the class constant modifiers
    • ReflectionClassConstant::getName — Get name of the constant
    • ReflectionClassConstant::getValue — Gets value
    • ReflectionClassConstant::isPrivate — Checks if class constant is private
    • ReflectionClassConstant::isProtected — Checks if class constant is protected
    • ReflectionClassConstant::isPublic — Checks if class constant is public
    • ReflectionClassConstant::__toString — Returns the string representation of the ReflectionClassConstant object
  • ReflectionZendExtension — The ReflectionZendExtension class
    • ReflectionZendExtension::__clone — Clone handler
    • ReflectionZendExtension::__construct — Constructor
    • ReflectionZendExtension::export — Export
    • ReflectionZendExtension::getAuthor — Gets author
    • ReflectionZendExtension::getCopyright — Gets copyright
    • ReflectionZendExtension::getName — Gets name
    • ReflectionZendExtension::getURL — Gets URL
    • ReflectionZendExtension::getVersion — Gets version
    • ReflectionZendExtension::__toString — To string handler
  • ReflectionExtension — The ReflectionExtension class
    • ReflectionExtension::__clone — Clones
    • ReflectionExtension::__construct — Constructs a ReflectionExtension
    • ReflectionExtension::export — Export
    • ReflectionExtension::getClasses — Gets classes
    • ReflectionExtension::getClassNames — Gets class names
    • ReflectionExtension::getConstants — Gets constants
    • ReflectionExtension::getDependencies — Gets dependencies
    • ReflectionExtension::getFunctions — Gets extension functions
    • ReflectionExtension::getINIEntries — Gets extension ini entries
    • ReflectionExtension::getName — Gets extension name
    • ReflectionExtension::getVersion — Gets extension version
    • ReflectionExtension::info — Print extension info
    • ReflectionExtension::isPersistent — Returns whether this extension is persistent
    • ReflectionExtension::isTemporary — Returns whether this extension is temporary
    • ReflectionExtension::__toString — To string
  • ReflectionFunction — The ReflectionFunction class
    • ReflectionFunction::__construct — Constructs a ReflectionFunction object
    • ReflectionFunction::export — Exports function
    • ReflectionFunction::getClosure — Returns a dynamically created closure for the function
    • ReflectionFunction::invoke — Invokes function
    • ReflectionFunction::invokeArgs — Invokes function args
    • ReflectionFunction::isDisabled — Checks if function is disabled
    • ReflectionFunction::__toString — To string
  • ReflectionFunctionAbstract — The ReflectionFunctionAbstract class
    • ReflectionFunctionAbstract::__clone — Clones function
    • ReflectionFunctionAbstract::getClosureScopeClass — Returns the scope associated to the closure
    • ReflectionFunctionAbstract::getClosureThis — Returns this pointer bound to closure
    • ReflectionFunctionAbstract::getDocComment — Gets doc comment
    • ReflectionFunctionAbstract::getEndLine — Gets end line number
    • ReflectionFunctionAbstract::getExtension — Gets extension info
    • ReflectionFunctionAbstract::getExtensionName — Gets extension name
    • ReflectionFunctionAbstract::getFileName — Gets file name
    • ReflectionFunctionAbstract::getName — Gets function name
    • ReflectionFunctionAbstract::getNamespaceName — Gets namespace name
    • ReflectionFunctionAbstract::getNumberOfParameters — Gets number of parameters
    • ReflectionFunctionAbstract::getNumberOfRequiredParameters — Gets number of required parameters
    • ReflectionFunctionAbstract::getParameters — Gets parameters
    • ReflectionFunctionAbstract::getReturnType — Gets the specified return type of a function
    • ReflectionFunctionAbstract::getShortName — Gets function short name
    • ReflectionFunctionAbstract::getStartLine — Gets starting line number
    • ReflectionFunctionAbstract::getStaticVariables — Gets static variables
    • ReflectionFunctionAbstract::hasReturnType — Checks if the function has a specified return type
    • ReflectionFunctionAbstract::inNamespace — Checks if function in namespace
    • ReflectionFunctionAbstract::isClosure — Checks if closure
    • ReflectionFunctionAbstract::isDeprecated — Checks if deprecated
    • ReflectionFunctionAbstract::isGenerator — Returns whether this function is a generator
    • ReflectionFunctionAbstract::isInternal — Checks if is internal
    • ReflectionFunctionAbstract::isUserDefined — Checks if user defined
    • ReflectionFunctionAbstract::isVariadic — Checks if the function is variadic
    • ReflectionFunctionAbstract::returnsReference — Checks if returns reference
    • ReflectionFunctionAbstract::__toString — To string
  • ReflectionMethod — The ReflectionMethod class
    • ReflectionMethod::__construct — Constructs a ReflectionMethod
    • ReflectionMethod::export — Export a reflection method
    • ReflectionMethod::getClosure — Returns a dynamically created closure for the method
    • ReflectionMethod::getDeclaringClass — Gets declaring class for the reflected method
    • ReflectionMethod::getModifiers — Gets the method modifiers
    • ReflectionMethod::getPrototype — Gets the method prototype (if there is one)
    • ReflectionMethod::invoke — Invoke
    • ReflectionMethod::invokeArgs — Invoke args
    • ReflectionMethod::isAbstract — Checks if method is abstract
    • ReflectionMethod::isConstructor — Checks if method is a constructor
    • ReflectionMethod::isDestructor — Checks if method is a destructor
    • ReflectionMethod::isFinal — Checks if method is final
    • ReflectionMethod::isPrivate — Checks if method is private
    • ReflectionMethod::isProtected — Checks if method is protected
    • ReflectionMethod::isPublic — Checks if method is public
    • ReflectionMethod::isStatic — Checks if method is static
    • ReflectionMethod::setAccessible — Set method accessibility
    • ReflectionMethod::__toString — Returns the string representation of the Reflection method object
  • ReflectionNamedType — The ReflectionNamedType class
    • ReflectionNamedType::getName — Get the text of the type hint
    • ReflectionNamedType::isBuiltin — Checks if it is a built-in type
  • ReflectionObject — The ReflectionObject class
    • ReflectionObject::__construct — Constructs a ReflectionObject
    • ReflectionObject::export — Export
  • ReflectionParameter — The ReflectionParameter class
    • ReflectionParameter::allowsNull — Checks if null is allowed
    • ReflectionParameter::canBePassedByValue — Returns whether this parameter can be passed by value
    • ReflectionParameter::__clone — Clone
    • ReflectionParameter::__construct — Construct
    • ReflectionParameter::export — Exports
    • ReflectionParameter::getClass — Get the type hinted class
    • ReflectionParameter::getDeclaringClass — Gets declaring class
    • ReflectionParameter::getDeclaringFunction — Gets declaring function
    • ReflectionParameter::getDefaultValue — Gets default parameter value
    • ReflectionParameter::getDefaultValueConstantName — Returns the default value's constant name if default value is constant or null
    • ReflectionParameter::getName — Gets parameter name
    • ReflectionParameter::getPosition — Gets parameter position
    • ReflectionParameter::getType — Gets a parameter's type
    • ReflectionParameter::hasType — Checks if parameter has a type
    • ReflectionParameter::isArray — Checks if parameter expects an array
    • ReflectionParameter::isCallable — Returns whether parameter MUST be callable
    • ReflectionParameter::isDefaultValueAvailable — Checks if a default value is available
    • ReflectionParameter::isDefaultValueConstant — Returns whether the default value of this parameter is a constant
    • ReflectionParameter::isOptional — Checks if optional
    • ReflectionParameter::isPassedByReference — Checks if passed by reference
    • ReflectionParameter::isVariadic — Checks if the parameter is variadic
    • ReflectionParameter::__toString — To string
  • ReflectionProperty — The ReflectionProperty class
    • ReflectionProperty::__clone — Clone
    • ReflectionProperty::__construct — Construct a ReflectionProperty object
    • ReflectionProperty::export — Export
    • ReflectionProperty::getDeclaringClass — Gets declaring class
    • ReflectionProperty::getDefaultValue — Returns the default value declared for a property
    • ReflectionProperty::getDocComment — Gets the property doc comment
    • ReflectionProperty::getModifiers — Gets the property modifiers
    • ReflectionProperty::getName — Gets property name
    • ReflectionProperty::getType — Gets a property's type
    • ReflectionProperty::getValue — Gets value
    • ReflectionProperty::hasDefaultValue — Checks if property has a default value declared
    • ReflectionProperty::hasType — Checks if property has a type
    • ReflectionProperty::isDefault — Checks if property is a default property
    • ReflectionProperty::isInitialized — Checks whether a property is initialized
    • ReflectionProperty::isPrivate — Checks if property is private
    • ReflectionProperty::isProtected — Checks if property is protected
    • ReflectionProperty::isPublic — Checks if property is public
    • ReflectionProperty::isStatic — Checks if property is static
    • ReflectionProperty::setAccessible — Set property accessibility
    • ReflectionProperty::setValue — Set property value
    • ReflectionProperty::__toString — To string
  • ReflectionType — The ReflectionType class
    • ReflectionType::allowsNull — Checks if null is allowed
    • ReflectionType::__toString — To string
  • ReflectionUnionType — The ReflectionUnionType class
    • ReflectionUnionType::getTypes — Returns the types included in the union type
  • ReflectionGenerator — The ReflectionGenerator class
    • ReflectionGenerator::__construct — Constructs a ReflectionGenerator object
    • ReflectionGenerator::getExecutingFile — Gets the file name of the currently executing generator
    • ReflectionGenerator::getExecutingGenerator — Gets the executing Generator object
    • ReflectionGenerator::getExecutingLine — Gets the currently executing line of the generator
    • ReflectionGenerator::getFunction — Gets the function name of the generator
    • ReflectionGenerator::getThis — Gets the $this value of the generator
    • ReflectionGenerator::getTrace — Gets the trace of the executing generator
  • ReflectionReference — The ReflectionReference class
    • ReflectionReference::fromArrayElement — Create a ReflectionReference from an array element
    • ReflectionReference::getId — Get unique ID of a reference
  • Reflector — The Reflector interface
    • Reflector::export — Exports
    • Reflector::__toString — To string
  • ReflectionException — The ReflectionException class


Einführung

PHP wird mit einer vollständigen Reflection-API geliefert, die die Möglichkeit der Instrospektion von Klassen, Interfaces, Funktionen, Methoden und Erweiterungen bietet. Darüber hinaus bietet die Reflection-API Möglichkeiten zum Abrufen von Dokumentkommentaren für Funktionen, Klassen und Methoden.

Es ist zu beachten, dass bestimmten Teilen der internen API der notwendige Code fehlt, um mit der Reflection-Erweiterung zu arbeiten. Beispielsweise fehlen in einer internen PHP-Klasse möglicherweise Reflektionsdaten für Eigenschaften. Diese wenigen Fälle gelten jedoch als Bugs, so dass sie entdeckt und behoben werden sollten.


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • Reflection
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Each class describes its own constants.


Beispiele

Normalerweise gibt es in der Reflection-Dokumentation viele Beispiele innerhalb der __construct-Dokumentation für jede Klasse.

Beispiel #1 Beispiele von Reflection in der Shell (dem Terminal)

$ php --rf strlen
$ php --rc finfo
$ php --re json
$ php --ri dom

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Function [ <internal:Core> function strlen ] {

  - Parameters [1] {
    Parameter #0 [ <required> $str ]
  }
}

Class [ <internal:fileinfo> class finfo ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [4] {
    Method [ <internal:fileinfo, ctor> public method finfo ] {

      - Parameters [2] {
        Parameter #0 [ <optional> $options ]
        Parameter #1 [ <optional> $arg ]
      }
    }

    Method [ <internal:fileinfo> public method set_flags ] {

      - Parameters [1] {
        Parameter #0 [ <required> $options ]
      }
    }

    Method [ <internal:fileinfo> public method file ] {

      - Parameters [3] {
        Parameter #0 [ <required> $filename ]
        Parameter #1 [ <optional> $options ]
        Parameter #2 [ <optional> $context ]
      }
    }

    Method [ <internal:fileinfo> public method buffer ] {

      - Parameters [3] {
        Parameter #0 [ <required> $string ]
        Parameter #1 [ <optional> $options ]
        Parameter #2 [ <optional> $context ]
      }
    }
  }
}

Extension [ <persistent> extension #23 json version 1.2.1 ] {

  - Constants [10] {
    Constant [ integer JSON_HEX_TAG ] { 1 }
    Constant [ integer JSON_HEX_AMP ] { 2 }
    Constant [ integer JSON_HEX_APOS ] { 4 }
    Constant [ integer JSON_HEX_QUOT ] { 8 }
    Constant [ integer JSON_FORCE_OBJECT ] { 16 }
    Constant [ integer JSON_ERROR_NONE ] { 0 }
    Constant [ integer JSON_ERROR_DEPTH ] { 1 }
    Constant [ integer JSON_ERROR_STATE_MISMATCH ] { 2 }
    Constant [ integer JSON_ERROR_CTRL_CHAR ] { 3 }
    Constant [ integer JSON_ERROR_SYNTAX ] { 4 }
  }

  - Functions {
    Function [ <internal:json> function json_encode ] {

      - Parameters [2] {
        Parameter #0 [ <required> $value ]
        Parameter #1 [ <optional> $options ]
      }
    }
    Function [ <internal:json> function json_decode ] {

      - Parameters [3] {
        Parameter #0 [ <required> $json ]
        Parameter #1 [ <optional> $assoc ]
        Parameter #2 [ <optional> $depth ]
      }
    }
    Function [ <internal:json> function json_last_error ] {

      - Parameters [0] {
      }
    }
  }
}

dom

DOM/XML => enabled
DOM/XML API Version => 20031129
libxml Version => 2.7.3
HTML Support => enabled
XPath Support => enabled
XPointer Support => enabled
Schema Support => enabled
RelaxNG Support => enabled


Extending

If you want to create specialized versions of the built-in classes (say, for creating colorized HTML when being exported, having easy-access member variables instead of methods or having utility methods), you may go ahead and extend them.

Beispiel #1 Extending the built-in classes

<?php
/**
 * My Reflection_Method class
 */
class My_Reflection_Method extends ReflectionMethod
{
    public $visibility = array();

    public function __construct($o, $m)
    {
        parent::__construct($o, $m);
        $this->visibility = Reflection::getModifierNames($this->getModifiers());
    }
}

/**
 * Demo class #1
 *
 */
class T {
    protected function x() {}
}

/**
 * Demo class #2
 *
 */
class U extends T {
    function x() {}
}

// Print out information
var_dump(new My_Reflection_Method('U', 'x'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(My_Reflection_Method)#1 (3) {
  ["visibility"]=>
  array(1) {
    [0]=>
    string(6) "public"
  }
  ["name"]=>
  string(1) "x"
  ["class"]=>
  string(1) "U"
}
Achtung

If you're overwriting the constructor, remember to call the parent's constructor before any code you insert. Failing to do so will result in the following: Fatal error: Internal error: Failed to retrieve the reflection object


Die Reflection Klasse

(PHP 5, PHP 7)

Einführung

Die Reflection Klasse.

Klassenbeschreibung

Reflection {
/* Methoden */
public static export ( Reflector $reflector , bool $return = false ) : string
public static getModifierNames ( int $modifiers ) : array
}

Inhaltsverzeichnis

  • Reflection::export — Exports
  • Reflection::getModifierNames — Gets modifier names


Exports

  • « Reflection
  • Reflection::getModifierNames »
  • PHP Manual
  • Reflection
  • Exports

Reflection::export

(PHP 5, PHP 7)

Reflection::export — Exports

Warnung

Diese Funktion ist seit PHP 7.4.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

public static Reflection::export ( Reflector $reflector , bool $return = false ) : string

Exports a reflection.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

reflector

Die Reflection, die exportiert werden soll.

return

Wird dies auf true gesetzt, so wird der Export zurückgegeben anstelle ihn auszugeben. Wird dies auf false gesetzt (der Standardwert), wird das Gegenteil passieren.

Rückgabewerte

Falls der Parameter return auf true gesetzt ist, so wird der Export als ein String zurückgegeben, andernfalls wird null zurückgegeben.

Siehe auch

  • Reflection::getModifierNames() - Gets modifier names


Gets modifier names

  • « Reflection::export
  • ReflectionClass »
  • PHP Manual
  • Reflection
  • Gets modifier names

Reflection::getModifierNames

(PHP 5, PHP 7)

Reflection::getModifierNames — Gets modifier names

Beschreibung

public static Reflection::getModifierNames ( int $modifiers ) : array

Gets modifier names.

Parameter-Liste

modifiers

Bitfield of the modifiers to get.

Rückgabewerte

An array of modifier names.

Beispiele

Beispiel #1 Reflection::getModifierNames() example

<?php
class Testing
{
    final public static function foo()
    {
        return;
    }

    public function bar()
    {
        return;
    }
}

$foo = new ReflectionMethod('Testing', 'foo');

echo "Modifiers for method foo():\n";
echo $foo->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($foo->getModifiers())) . "\n";

$bar = new ReflectionMethod('Testing', 'bar');

echo "Modifiers for method bar():\n";
echo $bar->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($bar->getModifiers()));

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Modifiers for method foo():
261
final public static
Modifiers for method bar():
65792
public

Siehe auch

  • ReflectionClass::getModifiers() - Gets the class modifiers
  • ReflectionClassConstant::getModifiers() - Gets the class constant modifiers
  • ReflectionMethod::getModifiers() - Gets the method modifiers
  • ReflectionProperty::getModifiers() - Gets the property modifiers


The ReflectionClass class

(PHP 5, PHP 7)

Einführung

The ReflectionClass class reports information about a class.

Klassenbeschreibung

ReflectionClass implements Reflector {
/* Konstanten */
const int IS_IMPLICIT_ABSTRACT = 16 ;
const int IS_EXPLICIT_ABSTRACT = 32 ;
const int IS_FINAL = 64 ;
/* Eigenschaften */
public $name ;
/* Methoden */
public __construct ( object|string $objectOrClass )
public static export ( mixed $argument , bool $return = false ) : string
public getConstant ( string $name ) : mixed
public getConstants ( int|null $filter = null ) : array
public getConstructor ( ) : ReflectionMethod|null
public getDefaultProperties ( ) : array
public getDocComment ( ) : string|false
public getEndLine ( ) : int|false
public getExtension ( ) : ReflectionExtension|null
public getExtensionName ( ) : string|false
public getFileName ( ) : string|false
public getInterfaceNames ( ) : array
public getInterfaces ( ) : array
public getMethod ( string $name ) : ReflectionMethod
public getMethods ( int|null $filter = null ) : array
public getModifiers ( ) : int
public getName ( ) : string
public getNamespaceName ( ) : string
public getParentClass ( ) : ReflectionClass|false
public getProperties ( int|null $filter = null ) : array
public getProperty ( string $name ) : ReflectionProperty
public getReflectionConstant ( string $name ) : ReflectionClassConstant|false
public getReflectionConstants ( int|null $filter = null ) : array
public getShortName ( ) : string
public getStartLine ( ) : int|false
public getStaticProperties ( ) : array|null
public getStaticPropertyValue ( string $name , mixed &$def_value = ? ) : mixed
public getTraitAliases ( ) : array
public getTraitNames ( ) : array
public getTraits ( ) : array
public hasConstant ( string $name ) : bool
public hasMethod ( string $name ) : bool
public hasProperty ( string $name ) : bool
public implementsInterface ( ReflectionClass|string $interface ) : bool
public inNamespace ( ) : bool
public isAbstract ( ) : bool
public isAnonymous ( ) : bool
public isCloneable ( ) : bool
public isFinal ( ) : bool
public isInstance ( object $object ) : bool
public isInstantiable ( ) : bool
public isInterface ( ) : bool
public isInternal ( ) : bool
public isIterable ( ) : bool
public isSubclassOf ( ReflectionClass|string $class ) : bool
public isTrait ( ) : bool
public isUserDefined ( ) : bool
public newInstance ( mixed ...$args ) : object
public newInstanceArgs ( array $args = [] ) : object
public newInstanceWithoutConstructor ( ) : object
public setStaticPropertyValue ( string $name , mixed $value ) : void
public __toString ( ) : string
}

Eigenschaften

name

Name of the class. Read-only, throws ReflectionException in attempt to write.

Vordefinierte Konstanten

ReflectionClass Modifiers

ReflectionClass::IS_IMPLICIT_ABSTRACT

Indicates class that is abstract because it has some abstract methods.

ReflectionClass::IS_EXPLICIT_ABSTRACT

Indicates class that is abstract because of its definition.

ReflectionClass::IS_FINAL

Indicates final class.

Inhaltsverzeichnis

  • ReflectionClass::__construct — Constructs a ReflectionClass
  • ReflectionClass::export — Exports a class
  • ReflectionClass::getConstant — Gets defined constant
  • ReflectionClass::getConstants — Gets constants
  • ReflectionClass::getConstructor — Gets the constructor of the class
  • ReflectionClass::getDefaultProperties — Gets default properties
  • ReflectionClass::getDocComment — Gets doc comments
  • ReflectionClass::getEndLine — Gets end line
  • ReflectionClass::getExtension — Gets a ReflectionExtension object for the extension which defined the class
  • ReflectionClass::getExtensionName — Gets the name of the extension which defined the class
  • ReflectionClass::getFileName — Gets the filename of the file in which the class has been defined
  • ReflectionClass::getInterfaceNames — Gets the interface names
  • ReflectionClass::getInterfaces — Gets the interfaces
  • ReflectionClass::getMethod — Gets a ReflectionMethod for a class method
  • ReflectionClass::getMethods — Gets an array of methods
  • ReflectionClass::getModifiers — Gets the class modifiers
  • ReflectionClass::getName — Gets class name
  • ReflectionClass::getNamespaceName — Gets namespace name
  • ReflectionClass::getParentClass — Gets parent class
  • ReflectionClass::getProperties — Gets properties
  • ReflectionClass::getProperty — Gets a ReflectionProperty for a class's property
  • ReflectionClass::getReflectionConstant — Gets a ReflectionClassConstant for a class's constant
  • ReflectionClass::getReflectionConstants — Gets class constants
  • ReflectionClass::getShortName — Gets short name
  • ReflectionClass::getStartLine — Gets starting line number
  • ReflectionClass::getStaticProperties — Gets static properties
  • ReflectionClass::getStaticPropertyValue — Gets static property value
  • ReflectionClass::getTraitAliases — Returns an array of trait aliases
  • ReflectionClass::getTraitNames — Returns an array of names of traits used by this class
  • ReflectionClass::getTraits — Returns an array of traits used by this class
  • ReflectionClass::hasConstant — Checks if constant is defined
  • ReflectionClass::hasMethod — Checks if method is defined
  • ReflectionClass::hasProperty — Checks if property is defined
  • ReflectionClass::implementsInterface — Implements interface
  • ReflectionClass::inNamespace — Checks if in namespace
  • ReflectionClass::isAbstract — Checks if class is abstract
  • ReflectionClass::isAnonymous — Checks if class is anonymous
  • ReflectionClass::isCloneable — Returns whether this class is cloneable
  • ReflectionClass::isFinal — Checks if class is final
  • ReflectionClass::isInstance — Checks class for instance
  • ReflectionClass::isInstantiable — Checks if the class is instantiable
  • ReflectionClass::isInterface — Checks if the class is an interface
  • ReflectionClass::isInternal — Checks if class is defined internally by an extension, or the core
  • ReflectionClass::isIterable — Check whether this class is iterable
  • ReflectionClass::isIterateable — Alias von ReflectionClass::isIterable
  • ReflectionClass::isSubclassOf — Checks if a subclass
  • ReflectionClass::isTrait — Returns whether this is a trait
  • ReflectionClass::isUserDefined — Checks if user defined
  • ReflectionClass::newInstance — Creates a new class instance from given arguments
  • ReflectionClass::newInstanceArgs — Creates a new class instance from given arguments
  • ReflectionClass::newInstanceWithoutConstructor — Creates a new class instance without invoking the constructor
  • ReflectionClass::setStaticPropertyValue — Sets static property value
  • ReflectionClass::__toString — Returns the string representation of the ReflectionClass object


Constructs a ReflectionClass

  • « ReflectionClass
  • ReflectionClass::export »
  • PHP Manual
  • ReflectionClass
  • Constructs a ReflectionClass

ReflectionClass::__construct

(PHP 5, PHP 7)

ReflectionClass::__construct — Constructs a ReflectionClass

Beschreibung

public ReflectionClass::__construct ( object|string $objectOrClass )

Constructs a new ReflectionClass object.

Parameter-Liste

objectOrClass

Either a string containing the name of the class to reflect, or an object.

Rückgabewerte

Returns constructed ReflectionClass instance.

Fehler/Exceptions

Throws ReflectionException if the class to reflect does not exist.

Beispiele

Beispiel #1 Basic usage ReflectionClass

<?php
Reflection::export(new ReflectionClass('Exception'));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Class [ <internal:Core> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
    Property [ <default> private $previous ]
  }

  - Methods [10] {
    Method [ <internal:Core> final private method __clone ] {
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> $message ]
        Parameter #1 [ <optional> $code ]
        Parameter #2 [ <optional> $previous ]
      }
    }

    Method [ <internal:Core> final public method getMessage ] {
    }

    Method [ <internal:Core> final public method getCode ] {
    }

    Method [ <internal:Core> final public method getFile ] {
    }

    Method [ <internal:Core> final public method getLine ] {
    }

    Method [ <internal:Core> final public method getTrace ] {
    }

    Method [ <internal:Core> final public method getPrevious ] {
    }

    Method [ <internal:Core> final public method getTraceAsString ] {
    }

    Method [ <internal:Core> public method __toString ] {
    }
  }
}

Siehe auch

  • ReflectionObject::__construct() - Constructs a ReflectionObject
  • Constructors


Exports a class

  • « ReflectionClass::__construct
  • ReflectionClass::getConstant »
  • PHP Manual
  • ReflectionClass
  • Exports a class

ReflectionClass::export

(PHP 5, PHP 7)

ReflectionClass::export — Exports a class

Warnung

Diese Funktion ist seit PHP 7.4.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

public static ReflectionClass::export ( mixed $argument , bool $return = false ) : string

Exports a reflected class.

Parameter-Liste

argument

Die Reflection, die exportiert werden soll.

return

Wird dies auf true gesetzt, so wird der Export zurückgegeben anstelle ihn auszugeben. Wird dies auf false gesetzt (der Standardwert), wird das Gegenteil passieren.

Rückgabewerte

Falls der Parameter return auf true gesetzt ist, so wird der Export als ein String zurückgegeben, andernfalls wird null zurückgegeben.

Beispiele

Beispiel #1 Basic usage of ReflectionClass::export()

<?php
class Apple {
    public $var1;
    public $var2 = 'Orange';

    public function type() {
        return 'Apple';
    }
}
ReflectionClass::export('Apple');
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Class [ <user> class Apple ] {
  @@ php shell code 1-8

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [2] {
    Property [ <default> public $var1 ]
    Property [ <default> public $var2 ]
  }

  - Methods [1] {
    Method [ <user> public method type ] {
      @@ php shell code 5 - 7
    }
  }
}

Siehe auch

  • ReflectionClass::getName() - Gets class name
  • ReflectionClass::__toString() - Returns the string representation of the ReflectionClass object


Gets defined constant

  • « ReflectionClass::export
  • ReflectionClass::getConstants »
  • PHP Manual
  • ReflectionClass
  • Gets defined constant

ReflectionClass::getConstant

(PHP 5, PHP 7)

ReflectionClass::getConstant — Gets defined constant

Beschreibung

public ReflectionClass::getConstant ( string $name ) : mixed

Gets the defined constant.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

The name of the class constant to get.

Rückgabewerte

Value of the constant with the name name. Returns false if the constant was not found in the class.

Beispiele

Beispiel #1 Usage of ReflectionClass::getConstant()

<?php

class Example {
    const C1 = false;
    const C2 = 'I am a constant';
}

$reflection = new ReflectionClass('Example');

var_dump($reflection->getConstant('C1'));
var_dump($reflection->getConstant('C2'));
var_dump($reflection->getConstant('C3'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
string(15) "I am a constant"
bool(false)

Siehe auch

  • ReflectionClass::getConstants() - Gets constants


Gets constants

  • « ReflectionClass::getConstant
  • ReflectionClass::getConstructor »
  • PHP Manual
  • ReflectionClass
  • Gets constants

ReflectionClass::getConstants

(PHP 5, PHP 7)

ReflectionClass::getConstants — Gets constants

Beschreibung

public ReflectionClass::getConstants ( int|null $filter = null ) : array

Gets all defined constants from a class, regardless of their visibility.

Parameter-Liste

filter

The optional filter, for filtering desired constant visibilities. It's configured using the ReflectionClassConstant constants, and defaults to all constant visibilities.

Rückgabewerte

An array of constants, where the keys hold the name and the values the value of the constants.

Changelog

Version | Beschreibung
8.0.0 | filter has been added.

Siehe auch

  • ReflectionClass::getConstant() - Gets defined constant


Gets the constructor of the class

  • « ReflectionClass::getConstants
  • ReflectionClass::getDefaultProperties »
  • PHP Manual
  • ReflectionClass
  • Gets the constructor of the class

ReflectionClass::getConstructor

(PHP 5, PHP 7)

ReflectionClass::getConstructor — Gets the constructor of the class

Beschreibung

public ReflectionClass::getConstructor ( ) : ReflectionMethod|null

Gets the constructor of the reflected class.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A ReflectionMethod object reflecting the class' constructor, or null if the class has no constructor.

Beispiele

Beispiel #1 Basic usage of ReflectionClass::getConstructor()

<?php
$class = new ReflectionClass('ReflectionClass');
$constructor = $class->getConstructor();
var_dump($constructor);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(11) "__construct"
  ["class"]=>
  string(15) "ReflectionClass"
}

Siehe auch

  • ReflectionClass::getName() - Gets class name


Gets default properties

  • « ReflectionClass::getConstructor
  • ReflectionClass::getDocComment »
  • PHP Manual
  • ReflectionClass
  • Gets default properties

ReflectionClass::getDefaultProperties

(PHP 5, PHP 7)

ReflectionClass::getDefaultProperties — Gets default properties

Beschreibung

public ReflectionClass::getDefaultProperties ( ) : array

Gets default properties from a class (including inherited properties).

Hinweis:

This method only works for static properties when used on internal classes. The default value of a static class property can not be tracked when using this method on user defined classes.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of default properties, with the key being the name of the property and the value being the default value of the property or null if the property doesn't have a default value. The function does not distinguish between static and non static properties and does not take visibility modifiers into account.

Beispiele

Beispiel #1 ReflectionClass::getDefaultProperties() example

<?php
class Bar {
    protected $inheritedProperty = 'inheritedDefault';
}

class Foo extends Bar {
    public $property = 'propertyDefault';
    private $privateProperty = 'privatePropertyDefault';
    public static $staticProperty = 'staticProperty';
    public $defaultlessProperty;
}

$reflectionClass = new ReflectionClass('Foo');
var_dump($reflectionClass->getDefaultProperties());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(5) {
   ["staticProperty"]=>
   string(14) "staticProperty"
   ["property"]=>
   string(15) "propertyDefault"
   ["privateProperty"]=>
   string(22) "privatePropertyDefault"
   ["defaultlessProperty"]=>
   NULL
   ["inheritedProperty"]=>
   string(16) "inheritedDefault"
}

Siehe auch

  • ReflectionClass::getProperties() - Gets properties
  • ReflectionClass::getStaticProperties() - Gets static properties
  • ReflectionClass::getProperty() - Gets a ReflectionProperty for a class's property


Gets doc comments

  • « ReflectionClass::getDefaultProperties
  • ReflectionClass::getEndLine »
  • PHP Manual
  • ReflectionClass
  • Gets doc comments

ReflectionClass::getDocComment

(PHP 5, PHP 7)

ReflectionClass::getDocComment — Gets doc comments

Beschreibung

public ReflectionClass::getDocComment ( ) : string|false

Gets doc comments from a class. Doc comments start with /**. If there are multiple doc comments above the class definition, the one closest to the class will be taken.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The doc comment if it exists, otherwise false.

Beispiele

Beispiel #1 ReflectionClass::getDocComment() example

<?php
/**
* A test class
*
* @param  foo bar
* @return baz
*/
class TestClass { }

$rc = new ReflectionClass('TestClass');
var_dump($rc->getDocComment())
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(55) "/**
* A test class
*
* @param  foo bar
* @return baz
*/"

Siehe auch

  • ReflectionClass::getName() - Gets class name


Gets end line

  • « ReflectionClass::getDocComment
  • ReflectionClass::getExtension »
  • PHP Manual
  • ReflectionClass
  • Gets end line

ReflectionClass::getEndLine

(PHP 5, PHP 7)

ReflectionClass::getEndLine — Gets end line

Beschreibung

public ReflectionClass::getEndLine ( ) : int|false

Gets end line number from a user-defined class definition.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The ending line number of the user defined class, or false if unknown.

Beispiele

Beispiel #1 ReflectionClass::getEndLine() example

<?php
// Test Class
class TestClass { }

$rc = new ReflectionClass('TestClass');

echo $rc->getEndLine();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3

Siehe auch

  • ReflectionClass::getStartLine() - Gets starting line number


Gets a ReflectionExtension object for the extension which defined the class

  • « ReflectionClass::getEndLine
  • ReflectionClass::getExtensionName »
  • PHP Manual
  • ReflectionClass
  • Gets a ReflectionExtension object for the extension which defined the class

ReflectionClass::getExtension

(PHP 5, PHP 7)

ReflectionClass::getExtension — Gets a ReflectionExtension object for the extension which defined the class

Beschreibung

public ReflectionClass::getExtension ( ) : ReflectionExtension|null

Gets a ReflectionExtension object for the extension which defined the class.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A ReflectionExtension object representing the extension which defined the class, or null for user-defined classes.

Beispiele

Beispiel #1 Basic usage of ReflectionClass::getExtension()

<?php
$class = new ReflectionClass('ReflectionClass');
$extension = $class->getExtension();
var_dump($extension);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(ReflectionExtension)#2 (1) {
  ["name"]=>
  string(10) "Reflection"
}

Siehe auch

  • ReflectionClass::getExtensionName() - Gets the name of the extension which defined the class


Gets the name of the extension which defined the class

  • « ReflectionClass::getExtension
  • ReflectionClass::getFileName »
  • PHP Manual
  • ReflectionClass
  • Gets the name of the extension which defined the class

ReflectionClass::getExtensionName

(PHP 5, PHP 7)

ReflectionClass::getExtensionName — Gets the name of the extension which defined the class

Beschreibung

public ReflectionClass::getExtensionName ( ) : string|false

Gets the name of the extension which defined the class.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The name of the extension which defined the class, or false for user-defined classes.

Beispiele

Beispiel #1 Basic usage of ReflectionClass::getExtensionName()

<?php
$class = new ReflectionClass('ReflectionClass');
$extension = $class->getExtensionName();
var_dump($extension);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(10) "Reflection"

Siehe auch

  • ReflectionClass::getExtension() - Gets a ReflectionExtension object for the extension which defined the class


Gets the filename of the file in which the class has been defined

  • « ReflectionClass::getExtensionName
  • ReflectionClass::getInterfaceNames »
  • PHP Manual
  • ReflectionClass
  • Gets the filename of the file in which the class has been defined

ReflectionClass::getFileName

(PHP 5, PHP 7)

ReflectionClass::getFileName — Gets the filename of the file in which the class has been defined

Beschreibung

public ReflectionClass::getFileName ( ) : string|false

Gets the filename of the file in which the class has been defined.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the filename of the file in which the class has been defined. If the class is defined in the PHP core or in a PHP extension, false is returned.

Siehe auch

  • ReflectionClass::getExtensionName() - Gets the name of the extension which defined the class


Gets the interface names

  • « ReflectionClass::getFileName
  • ReflectionClass::getInterfaces »
  • PHP Manual
  • ReflectionClass
  • Gets the interface names

ReflectionClass::getInterfaceNames

(PHP 5 >= 5.2.0, PHP 7)

ReflectionClass::getInterfaceNames — Gets the interface names

Beschreibung

public ReflectionClass::getInterfaceNames ( ) : array

Get the interface names.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A numerical array with interface names as the values.

Beispiele

Beispiel #1 ReflectionClass::getInterfaceNames() example

<?php
interface Foo { }

interface Bar { }

class Baz implements Foo, Bar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaceNames());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [0] => Foo
    [1] => Bar
)

Siehe auch

  • ReflectionClass::getInterfaces() - Gets the interfaces


Gets the interfaces

  • « ReflectionClass::getInterfaceNames
  • ReflectionClass::getMethod »
  • PHP Manual
  • ReflectionClass
  • Gets the interfaces

ReflectionClass::getInterfaces

(PHP 5, PHP 7)

ReflectionClass::getInterfaces — Gets the interfaces

Beschreibung

public ReflectionClass::getInterfaces ( ) : array

Gets the interfaces.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An associative array of interfaces, with keys as interface names and the array values as ReflectionClass objects.

Beispiele

Beispiel #1 ReflectionClass::getInterfaces() example

<?php
interface Foo { }

interface Bar { }

class Baz implements Foo, Bar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaces());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [Foo] => ReflectionClass Object
        (
            [name] => Foo
        )

    [Bar] => ReflectionClass Object
        (
            [name] => Bar
        )

)

Siehe auch

  • ReflectionClass::getInterfaceNames() - Gets the interface names


Gets a ReflectionMethod for a class method

  • « ReflectionClass::getInterfaces
  • ReflectionClass::getMethods »
  • PHP Manual
  • ReflectionClass
  • Gets a ReflectionMethod for a class method

ReflectionClass::getMethod

(PHP 5, PHP 7)

ReflectionClass::getMethod — Gets a ReflectionMethod for a class method

Beschreibung

public ReflectionClass::getMethod ( string $name ) : ReflectionMethod

Gets a ReflectionMethod for a class method.

Parameter-Liste

name

The method name to reflect.

Rückgabewerte

A ReflectionMethod.

Fehler/Exceptions

A ReflectionException if the method does not exist.

Beispiele

Beispiel #1 Basic usage of ReflectionClass::getMethod()

<?php
$class = new ReflectionClass('ReflectionClass');
$method = $class->getMethod('getMethod');
var_dump($method);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(9) "getMethod"
  ["class"]=>
  string(15) "ReflectionClass"
}

Siehe auch

  • ReflectionClass::getMethods() - Gets an array of methods


Gets an array of methods

  • « ReflectionClass::getMethod
  • ReflectionClass::getModifiers »
  • PHP Manual
  • ReflectionClass
  • Gets an array of methods

ReflectionClass::getMethods

(PHP 5, PHP 7)

ReflectionClass::getMethods — Gets an array of methods

Beschreibung

public ReflectionClass::getMethods ( int|null $filter = null ) : array

Gets an array of methods for the class.

Parameter-Liste

filter

Filter the results to include only methods with certain attributes. Defaults to no filtering.

Any bitwise disjunction of ReflectionMethod::IS_STATIC,
ReflectionMethod::IS_PUBLIC,
ReflectionMethod::IS_PROTECTED,
ReflectionMethod::IS_PRIVATE,
ReflectionMethod::IS_ABSTRACT,
ReflectionMethod::IS_FINAL,
so that all methods with any of the given
attributes will be returned.

Hinweis: Note that other bitwise operations, for instance ~ will not work as expected. In other words, it is not possible to retrieve all non-static methods, for example.

Rückgabewerte

An array of ReflectionMethod objects reflecting each method.

Changelog

Version | Beschreibung
7.2.0 | filter is nullable now.

Beispiele

Beispiel #1 Basic usage of ReflectionClass::getMethods()

<?php
class Apple {
    public function firstMethod() { }
    final protected function secondMethod() { }
    private static function thirdMethod() { }
}

$class = new ReflectionClass('Apple');
$methods = $class->getMethods();
var_dump($methods);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(11) "firstMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [1]=>
  object(ReflectionMethod)#3 (2) {
    ["name"]=>
    string(12) "secondMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [2]=>
  object(ReflectionMethod)#4 (2) {
    ["name"]=>
    string(11) "thirdMethod"
    ["class"]=>
    string(5) "Apple"
  }
}

Beispiel #2 Filtering results from ReflectionClass::getMethods()

<?php
class Apple {
    public function firstMethod() { }
    final protected function secondMethod() { }
    private static function thirdMethod() { }
}

$class = new ReflectionClass('Apple');
$methods = $class->getMethods(ReflectionMethod::IS_STATIC | ReflectionMethod::IS_FINAL);
var_dump($methods);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(12) "secondMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [1]=>
  object(ReflectionMethod)#3 (2) {
    ["name"]=>
    string(11) "thirdMethod"
    ["class"]=>
    string(5) "Apple"
  }
}

Siehe auch

  • ReflectionClass::getMethod() - Gets a ReflectionMethod for a class method
  • get_class_methods() - Ermittelt die Namen der definierten Methoden einer Klasse


Gets the class modifiers

  • « ReflectionClass::getMethods
  • ReflectionClass::getName »
  • PHP Manual
  • ReflectionClass
  • Gets the class modifiers

ReflectionClass::getModifiers

(PHP 5, PHP 7)

ReflectionClass::getModifiers — Gets the class modifiers

Beschreibung

public ReflectionClass::getModifiers ( ) : int

Returns a bitfield of the access modifiers for this class.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns bitmask of modifier constants.

Siehe auch

  • ReflectionClass::getProperties() - Gets properties
  • Reflection::getModifierNames() - Gets modifier names


Gets class name

  • « ReflectionClass::getModifiers
  • ReflectionClass::getNamespaceName »
  • PHP Manual
  • ReflectionClass
  • Gets class name

ReflectionClass::getName

(PHP 5, PHP 7)

ReflectionClass::getName — Gets class name

Beschreibung

public ReflectionClass::getName ( ) : string

Gets the class name.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The class name.

Beispiele

Beispiel #1 ReflectionClass::getName() example

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Siehe auch

  • ReflectionClass::getNamespaceName() - Gets namespace name


Gets namespace name

  • « ReflectionClass::getName
  • ReflectionClass::getParentClass »
  • PHP Manual
  • ReflectionClass
  • Gets namespace name

ReflectionClass::getNamespaceName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionClass::getNamespaceName — Gets namespace name

Beschreibung

public ReflectionClass::getNamespaceName ( ) : string

Gets the namespace name.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The namespace name.

Beispiele

Beispiel #1 ReflectionClass::getNamespaceName() example

<?php
namespace A\B;

class Foo { }

$class = new \ReflectionClass('stdClass');

var_dump($class->inNamespace());
var_dump($class->getName());
var_dump($class->getNamespaceName());
var_dump($class->getShortName());

$class = new \ReflectionClass('A\\B\\Foo');

var_dump($class->inNamespace());
var_dump($class->getName());
var_dump($class->getNamespaceName());
var_dump($class->getShortName());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Siehe auch

  • ReflectionClass::getParentClass() - Gets parent class
  • namespaces


Gets parent class

  • « ReflectionClass::getNamespaceName
  • ReflectionClass::getProperties »
  • PHP Manual
  • ReflectionClass
  • Gets parent class

ReflectionClass::getParentClass

(PHP 5, PHP 7)

ReflectionClass::getParentClass — Gets parent class

Beschreibung

public ReflectionClass::getParentClass ( ) : ReflectionClass|false

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A ReflectionClass or false if there's no parent.

Siehe auch

  • ReflectionClass::__construct() - Constructs a ReflectionClass


Gets properties

  • « ReflectionClass::getParentClass
  • ReflectionClass::getProperty »
  • PHP Manual
  • ReflectionClass
  • Gets properties

ReflectionClass::getProperties

(PHP 5, PHP 7)

ReflectionClass::getProperties — Gets properties

Beschreibung

public ReflectionClass::getProperties ( int|null $filter = null ) : array

Retrieves reflected properties.

Parameter-Liste

filter

The optional filter, for filtering desired property types. It's configured using the ReflectionProperty constants, and defaults to all property types.

Rückgabewerte

An array of ReflectionProperty objects.

Changelog

Version | Beschreibung
7.2.0 | filter is nullable now.

Beispiele

Beispiel #1 ReflectionClass::getProperties() filtering example

This example demonstrates usage of the optional filter parameter, where it essentially skips private properties.

<?php
class Foo {
    public    $foo  = 1;
    protected $bar  = 2;
    private   $baz  = 3;
}

$foo = new Foo();

$reflect = new ReflectionClass($foo);
$props   = $reflect->getProperties(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED);

foreach ($props as $prop) {
    print $prop->getName() . "\n";
}

var_dump($props);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

foo
bar
array(2) {
  [0]=>
  object(ReflectionProperty)#3 (2) {
    ["name"]=>
    string(3) "foo"
    ["class"]=>
    string(3) "Foo"
  }
  [1]=>
  object(ReflectionProperty)#4 (2) {
    ["name"]=>
    string(3) "bar"
    ["class"]=>
    string(3) "Foo"
  }
}

Siehe auch

  • ReflectionClass::getProperty() - Gets a ReflectionProperty for a class's property
  • ReflectionProperty
  • ReflectionProperty modifier constants


Gets a ReflectionProperty for a class's property

  • « ReflectionClass::getProperties
  • ReflectionClass::getReflectionConstant »
  • PHP Manual
  • ReflectionClass
  • Gets a ReflectionProperty for a class's property

ReflectionClass::getProperty

(PHP 5, PHP 7)

ReflectionClass::getProperty — Gets a ReflectionProperty for a class's property

Beschreibung

public ReflectionClass::getProperty ( string $name ) : ReflectionProperty

Gets a ReflectionProperty for a class's property.

Parameter-Liste

name

The property name.

Rückgabewerte

A ReflectionProperty.

Beispiele

Beispiel #1 Basic usage of ReflectionClass::getProperty()

<?php
$class = new ReflectionClass('ReflectionClass');
$property = $class->getProperty('name');
var_dump($property);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(ReflectionProperty)#2 (2) {
  ["name"]=>
  string(4) "name"
  ["class"]=>
  string(15) "ReflectionClass"
}

Siehe auch

  • ReflectionClass::getProperties() - Gets properties


Gets a ReflectionClassConstant for a class's constant

  • « ReflectionClass::getProperty
  • ReflectionClass::getReflectionConstants »
  • PHP Manual
  • ReflectionClass
  • Gets a ReflectionClassConstant for a class's constant

ReflectionClass::getReflectionConstant

(PHP 7 >= 7.1.0)

ReflectionClass::getReflectionConstant — Gets a ReflectionClassConstant for a class's constant

Beschreibung

public ReflectionClass::getReflectionConstant ( string $name ) : ReflectionClassConstant|false

Gets a ReflectionClassConstant for a class's property.

Parameter-Liste

name

The class constant name.

Rückgabewerte

A ReflectionClassConstant, Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • ReflectionClass::getReflectionConstants() - Gets class constants
  • ReflectionClassConstant


Gets class constants

  • « ReflectionClass::getReflectionConstant
  • ReflectionClass::getShortName »
  • PHP Manual
  • ReflectionClass
  • Gets class constants

ReflectionClass::getReflectionConstants

(PHP 7 >= 7.1.0)

ReflectionClass::getReflectionConstants — Gets class constants

Beschreibung

public ReflectionClass::getReflectionConstants ( int|null $filter = null ) : array

Retrieves reflected constants.

Parameter-Liste

filter

The optional filter, for filtering desired constant visibilities. It's configured using the ReflectionClassConstant constants, and defaults to all constant visibilities.

Rückgabewerte

An array of ReflectionClassConstant objects.

Changelog

Version | Beschreibung
8.0.0 | filter has been added.

Beispiele

Beispiel #1 Basic ReflectionClass::getReflectionConstants() example

<?php
class Foo {
    public    const FOO  = 1;
    protected const BAR  = 2;
    private   const BAZ  = 3;
}

$foo = new Foo();

$reflect = new ReflectionClass($foo);
$consts  = $reflect->getReflectionConstants();

foreach ($consts as $const) {
    print $const->getName() . "\n";
}

var_dump($consts);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

FOO
BAR
BAZ
array(3) {
  [0]=>
  object(ReflectionClassConstant)#3 (2) {
    ["name"]=>
    string(3) "FOO"
    ["class"]=>
    string(3) "Foo"
  }
  [1]=>
  object(ReflectionClassConstant)#4 (2) {
    ["name"]=>
    string(3) "BAR"
    ["class"]=>
    string(3) "Foo"
  }
  [2]=>
  object(ReflectionClassConstant)#5 (2) {
    ["name"]=>
    string(3) "BAZ"
    ["class"]=>
    string(3) "Foo"
  }
}

Siehe auch

  • ReflectionClass::getReflectionConstant() - Gets a ReflectionClassConstant for a class's constant
  • ReflectionClassConstant


Gets short name

  • « ReflectionClass::getReflectionConstants
  • ReflectionClass::getStartLine »
  • PHP Manual
  • ReflectionClass
  • Gets short name

ReflectionClass::getShortName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionClass::getShortName — Gets short name

Beschreibung

public ReflectionClass::getShortName ( ) : string

Gets the short name of the class, the part without the namespace.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The class short name.

Beispiele

Beispiel #1 ReflectionClass::getShortName() example

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Siehe auch

  • ReflectionClass::getName() - Gets class name


Gets starting line number

  • « ReflectionClass::getShortName
  • ReflectionClass::getStaticProperties »
  • PHP Manual
  • ReflectionClass
  • Gets starting line number

ReflectionClass::getStartLine

(PHP 5, PHP 7)

ReflectionClass::getStartLine — Gets starting line number

Beschreibung

public ReflectionClass::getStartLine ( ) : int|false

Get the starting line number.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The starting line number, as an int, or false if unknown.

Siehe auch

  • ReflectionClass::getEndLine() - Gets end line


Gets static properties

  • « ReflectionClass::getStartLine
  • ReflectionClass::getStaticPropertyValue »
  • PHP Manual
  • ReflectionClass
  • Gets static properties

ReflectionClass::getStaticProperties

(PHP 5, PHP 7)

ReflectionClass::getStaticProperties — Gets static properties

Beschreibung

public ReflectionClass::getStaticProperties ( ) : array|null

Get the static properties.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The static properties, as an array, or null on failure.

Siehe auch

  • ReflectionClass::getStaticPropertyValue() - Gets static property value
  • ReflectionClass::setStaticPropertyValue() - Sets static property value


Gets static property value

  • « ReflectionClass::getStaticProperties
  • ReflectionClass::getTraitAliases »
  • PHP Manual
  • ReflectionClass
  • Gets static property value

ReflectionClass::getStaticPropertyValue

(PHP 5 >= 5.1.2, PHP 7)

ReflectionClass::getStaticPropertyValue — Gets static property value

Beschreibung

public ReflectionClass::getStaticPropertyValue ( string $name , mixed &$def_value = ? ) : mixed

Gets the value of a static property on this class.

Parameter-Liste

name

The name of the static property for which to return a value.

def_value

A default value to return in case the class does not declare a static property with the given name. If the property does not exist and this argument is omitted, a ReflectionException is thrown.

Rückgabewerte

The value of the static property.

Beispiele

Beispiel #1 Basic usage of ReflectionClass::getStaticPropertyValue()

<?php
class Apple {
    public static $color = 'Red';
}

$class = new ReflectionClass('Apple');
var_dump($class->getStaticPropertyValue('color'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "Red"

Siehe auch

  • ReflectionClass::getStaticProperties() - Gets static properties
  • ReflectionClass::setStaticPropertyValue() - Sets static property value


Returns an array of trait aliases

  • « ReflectionClass::getStaticPropertyValue
  • ReflectionClass::getTraitNames »
  • PHP Manual
  • ReflectionClass
  • Returns an array of trait aliases

ReflectionClass::getTraitAliases

(PHP 5 >= 5.4.0, PHP 7)

ReflectionClass::getTraitAliases — Returns an array of trait aliases

Beschreibung

public ReflectionClass::getTraitAliases ( ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array with new method names in keys and original names (in the format "TraitName::original") in values. Returns null in case of an error.


Returns an array of names of traits used by this class

  • « ReflectionClass::getTraitAliases
  • ReflectionClass::getTraits »
  • PHP Manual
  • ReflectionClass
  • Returns an array of names of traits used by this class

ReflectionClass::getTraitNames

(PHP 5 >= 5.4.0, PHP 7)

ReflectionClass::getTraitNames — Returns an array of names of traits used by this class

Beschreibung

public ReflectionClass::getTraitNames ( ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array with trait names in values. Returns null in case of an error.


Returns an array of traits used by this class

  • « ReflectionClass::getTraitNames
  • ReflectionClass::hasConstant »
  • PHP Manual
  • ReflectionClass
  • Returns an array of traits used by this class

ReflectionClass::getTraits

(PHP 5 >= 5.4.0, PHP 7)

ReflectionClass::getTraits — Returns an array of traits used by this class

Beschreibung

public ReflectionClass::getTraits ( ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array with trait names in keys and instances of trait's ReflectionClass in values. Returns null in case of an error.


Checks if constant is defined

  • « ReflectionClass::getTraits
  • ReflectionClass::hasMethod »
  • PHP Manual
  • ReflectionClass
  • Checks if constant is defined

ReflectionClass::hasConstant

(PHP 5 >= 5.1.2, PHP 7)

ReflectionClass::hasConstant — Checks if constant is defined

Beschreibung

public ReflectionClass::hasConstant ( string $name ) : bool

Checks whether the class has a specific constant defined or not.

Parameter-Liste

name

The name of the constant being checked for.

Rückgabewerte

true if the constant is defined, otherwise false.

Beispiele

Beispiel #1 ReflectionClass::hasConstant() example

<?php
class Foo {
    const c1 = 1;
}

$class = new ReflectionClass("Foo");

var_dump($class->hasConstant("c1"));
var_dump($class->hasConstant("c2"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)

Siehe auch

  • ReflectionClass::hasMethod() - Checks if method is defined
  • ReflectionClass::hasProperty() - Checks if property is defined


Checks if method is defined

  • « ReflectionClass::hasConstant
  • ReflectionClass::hasProperty »
  • PHP Manual
  • ReflectionClass
  • Checks if method is defined

ReflectionClass::hasMethod

(PHP 5 >= 5.1.2, PHP 7)

ReflectionClass::hasMethod — Checks if method is defined

Beschreibung

public ReflectionClass::hasMethod ( string $name ) : bool

Checks whether a specific method is defined in a class.

Parameter-Liste

name

Name of the method being checked for.

Rückgabewerte

true if it has the method, otherwise false

Beispiele

Beispiel #1 ReflectionClass::hasMethod() example

<?php
Class C {
    public function publicFoo() {
        return true;
    }

    protected function protectedFoo() {
        return true;
    }

    private function privateFoo() {
        return true;
    }

    static function staticFoo() {
        return true;
    }
}

$rc = new ReflectionClass("C");

var_dump($rc->hasMethod('publicFoo'));

var_dump($rc->hasMethod('protectedFoo'));

var_dump($rc->hasMethod('privateFoo'));

var_dump($rc->hasMethod('staticFoo'));

// C should not have method bar
var_dump($rc->hasMethod('bar'));

// Method names are case insensitive
var_dump($rc->hasMethod('PUBLICfOO'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)

Siehe auch

  • ReflectionClass::hasConstant() - Checks if constant is defined
  • ReflectionClass::hasProperty() - Checks if property is defined


Checks if property is defined

  • « ReflectionClass::hasMethod
  • ReflectionClass::implementsInterface »
  • PHP Manual
  • ReflectionClass
  • Checks if property is defined

ReflectionClass::hasProperty

(PHP 5 >= 5.1.2, PHP 7)

ReflectionClass::hasProperty — Checks if property is defined

Beschreibung

public ReflectionClass::hasProperty ( string $name ) : bool

Checks whether the specified property is defined.

Parameter-Liste

name

Name of the property being checked for.

Rückgabewerte

true if it has the property, otherwise false

Beispiele

Beispiel #1 ReflectionClass::hasProperty() example

<?php
class Foo {
    public    $p1;
    protected $p2;
    private   $p3;

}

$obj = new ReflectionObject(new Foo());

var_dump($obj->hasProperty("p1"));
var_dump($obj->hasProperty("p2"));
var_dump($obj->hasProperty("p3"));
var_dump($obj->hasProperty("p4"));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(true)
bool(true)
bool(false)

Siehe auch

  • ReflectionClass::hasConstant() - Checks if constant is defined
  • ReflectionClass::hasMethod() - Checks if method is defined


Implements interface

  • « ReflectionClass::hasProperty
  • ReflectionClass::inNamespace »
  • PHP Manual
  • ReflectionClass
  • Implements interface

ReflectionClass::implementsInterface

(PHP 5, PHP 7)

ReflectionClass::implementsInterface — Implements interface

Beschreibung

public ReflectionClass::implementsInterface ( ReflectionClass|string $interface ) : bool

Checks whether it implements an interface.

Parameter-Liste

interface

The interface name.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

ReflectionClass::implementsInterface() throws an ReflectionException if interface is not an interface.

Siehe auch

  • ReflectionClass::isInterface() - Checks if the class is an interface
  • ReflectionClass::isSubclassOf() - Checks if a subclass
  • interface_exists() - Prüft ob ein bestimmtes Interface definiert wurde
  • Object Interfaces


Checks if in namespace

  • « ReflectionClass::implementsInterface
  • ReflectionClass::isAbstract »
  • PHP Manual
  • ReflectionClass
  • Checks if in namespace

ReflectionClass::inNamespace

(PHP 5 >= 5.3.0, PHP 7)

ReflectionClass::inNamespace — Checks if in namespace

Beschreibung

public ReflectionClass::inNamespace ( ) : bool

Checks if this class is defined in a namespace.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ReflectionClass::inNamespace() example

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Siehe auch

  • ReflectionClass::getNamespaceName() - Gets namespace name
  • PHP Namespaces


Checks if class is abstract

  • « ReflectionClass::inNamespace
  • ReflectionClass::isAnonymous »
  • PHP Manual
  • ReflectionClass
  • Checks if class is abstract

ReflectionClass::isAbstract

(PHP 5, PHP 7)

ReflectionClass::isAbstract — Checks if class is abstract

Beschreibung

public ReflectionClass::isAbstract ( ) : bool

Checks if the class is abstract.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ReflectionClass::isAbstract() example

<?php
class          TestClass { }
abstract class TestAbstractClass { }

$testClass     = new ReflectionClass('TestClass');
$abstractClass = new ReflectionClass('TestAbstractClass');

var_dump($testClass->isAbstract());
var_dump($abstractClass->isAbstract());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)

Siehe auch

  • ReflectionClass::isInterface() - Checks if the class is an interface
  • Class Abstraction


Checks if class is anonymous

  • « ReflectionClass::isAbstract
  • ReflectionClass::isCloneable »
  • PHP Manual
  • ReflectionClass
  • Checks if class is anonymous

ReflectionClass::isAnonymous

(PHP 7)

ReflectionClass::isAnonymous — Checks if class is anonymous

Beschreibung

public ReflectionClass::isAnonymous ( ) : bool

Checks if a class is an anonymous class.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ReflectionClass::isAnonymous() example

<?php
class TestClass {}
$anonClass = new class {};

$normalClass = new ReflectionClass('TestClass');
$anonClass  = new ReflectionClass($anonClass);

var_dump($normalClass->isAnonymous());
var_dump($anonClass->isAnonymous());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)

Siehe auch

  • ReflectionClass::isFinal() - Checks if class is final


Returns whether this class is cloneable

  • « ReflectionClass::isAnonymous
  • ReflectionClass::isFinal »
  • PHP Manual
  • ReflectionClass
  • Returns whether this class is cloneable

ReflectionClass::isCloneable

(PHP 5 >= 5.4.0, PHP 7)

ReflectionClass::isCloneable — Returns whether this class is cloneable

Beschreibung

public ReflectionClass::isCloneable ( ) : bool

Returns whether this class is cloneable.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the class is cloneable, false otherwise.

Beispiele

Beispiel #1 Basic usage of ReflectionClass::isCloneable()

<?php
class NotCloneable {
    public $var1;

    private function __clone() {
    }
}

class Cloneable {
    public $var1;
}

$notCloneable = new ReflectionClass('NotCloneable');
$cloneable = new ReflectionClass('Cloneable');

var_dump($notCloneable->isCloneable());
var_dump($cloneable->isCloneable());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)


Checks if class is final

  • « ReflectionClass::isCloneable
  • ReflectionClass::isInstance »
  • PHP Manual
  • ReflectionClass
  • Checks if class is final

ReflectionClass::isFinal

(PHP 5, PHP 7)

ReflectionClass::isFinal — Checks if class is final

Beschreibung

public ReflectionClass::isFinal ( ) : bool

Checks if a class is final.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ReflectionClass::isFinal() example

<?php
class       TestClass { }
final class TestFinalClass { }

$normalClass = new ReflectionClass('TestClass');
$finalClass  = new ReflectionClass('TestFinalClass');

var_dump($normalClass->isFinal());
var_dump($finalClass->isFinal());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)

Siehe auch

  • ReflectionClass::isAbstract() - Checks if class is abstract
  • Final Keyword


Checks class for instance

  • « ReflectionClass::isFinal
  • ReflectionClass::isInstantiable »
  • PHP Manual
  • ReflectionClass
  • Checks class for instance

ReflectionClass::isInstance

(PHP 5, PHP 7)

ReflectionClass::isInstance — Checks class for instance

Beschreibung

public ReflectionClass::isInstance ( object $object ) : bool

Checks if an object is an instance of a class.

Parameter-Liste

object

The object being compared to.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ReflectionClass::isInstance() related examples

<?php
// Example usage
$class = new ReflectionClass('Foo');

if ($class->isInstance($arg)) {
    echo "Yes";
}

// Equivalent to
if ($arg instanceof Foo) {
    echo "Yes";
}

// Equivalent to
if (is_a($arg, 'Foo')) {
    echo "Yes";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Yes
Yes
Yes

Siehe auch

  • ReflectionClass::isInterface() - Checks if the class is an interface
  • Type operators (instanceof)
  • Object Interfaces
  • is_a() - Checks if the object is of this class or has this class as one of its parents


Checks if the class is instantiable

  • « ReflectionClass::isInstance
  • ReflectionClass::isInterface »
  • PHP Manual
  • ReflectionClass
  • Checks if the class is instantiable

ReflectionClass::isInstantiable

(PHP 5, PHP 7)

ReflectionClass::isInstantiable — Checks if the class is instantiable

Beschreibung

public ReflectionClass::isInstantiable ( ) : bool

Checks if the class is instantiable.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 ReflectionClass::isInstantiable() example

<?php
class C { }

interface iface {
    function f1();
}

class ifaceImpl implements iface {
    function f1() {}
}

abstract class abstractClass {
    function f1() { }
    abstract function f2();
}

class D extends abstractClass {
    function f2() { }
}

trait T {
    function f1() {}
}

class privateConstructor {
    private function __construct() { }
}

$classes = array(
    "C",
    "iface",
    "ifaceImpl",
    "abstractClass",
    "D",
    "T",
    "privateConstructor",
);

foreach($classes  as $class ) {
    $reflectionClass = new ReflectionClass($class);
    echo "Is $class instantiable?  ";
    var_dump($reflectionClass->isInstantiable());
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Is C instantiable?  bool(true)
Is iface instantiable?  bool(false)
Is ifaceImpl instantiable?  bool(true)
Is abstractClass instantiable?  bool(false)
Is D instantiable?  bool(true)
Is T instantiable?  bool(false)
Is privateConstructor instantiable?  bool(false)

Siehe auch

  • ReflectionClass::isInstance() - Checks class for instance


Checks if the class is an interface

  • « ReflectionClass::isInstantiable
  • ReflectionClass::isInternal »
  • PHP Manual
  • ReflectionClass
  • Checks if the class is an interface

ReflectionClass::isInterface

(PHP 5, PHP 7)

ReflectionClass::isInterface — Checks if the class is an interface

Beschreibung

public ReflectionClass::isInterface ( ) : bool

Checks whether the class is an interface.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Basic usage of ReflectionClass::isInterface()

<?php
interface SomeInterface {
    public function interfaceMethod();
}

$class = new ReflectionClass('SomeInterface');
var_dump($class->isInterface());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)

Siehe auch

  • ReflectionClass::isInstance() - Checks class for instance


Checks if class is defined internally by an extension, or the core

  • « ReflectionClass::isInterface
  • ReflectionClass::isIterable »
  • PHP Manual
  • ReflectionClass
  • Checks if class is defined internally by an extension, or the core

ReflectionClass::isInternal

(PHP 5, PHP 7)

ReflectionClass::isInternal — Checks if class is defined internally by an extension, or the core

Beschreibung

public ReflectionClass::isInternal ( ) : bool

Checks if the class is defined internally by an extension, or the core, as opposed to user-defined.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Basic usage of ReflectionClass::isInternal()

<?php
$internalclass = new ReflectionClass('ReflectionClass');

class Apple {}
$userclass = new ReflectionClass('Apple');

var_dump($internalclass->isInternal());
var_dump($userclass->isInternal());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)

Siehe auch

  • ReflectionClass::isUserDefined() - Checks if user defined


Check whether this class is iterable

  • « ReflectionClass::isInternal
  • ReflectionClass::isIterateable »
  • PHP Manual
  • ReflectionClass
  • Check whether this class is iterable

ReflectionClass::isIterable

(PHP 7 >= 7.2.0)

ReflectionClass::isIterable — Check whether this class is iterable

Beschreibung

public ReflectionClass::isIterable ( ) : bool

Check whether this class is iterable (i.e. can be used inside foreach).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Basic ReflectionClass::isIterable() Usage

<?php

class IteratorClass implements Iterator {
    public function __construct() { }
    public function key() { }
    public function current() { }
    function next() { }
    function valid() { }
    function rewind() { }
}
class DerivedClass extends IteratorClass { }
class NonIterator { }

function dump_iterable($class) {
    $reflection = new ReflectionClass($class);
    var_dump($reflection->isIterable());
}

$classes = array("ArrayObject", "IteratorClass", "DerivedClass", "NonIterator");

foreach ($classes as $class) {
    echo "Is $class iterable? ";
    dump_iterable($class);
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Is ArrayObject iterable? bool(true)
Is IteratorClass iterable? bool(true)
Is DerivedClass iterable? bool(true)
Is NonIterator iterable? bool(false)

Siehe auch

  • ReflectionClass::__construct() - Constructs a ReflectionClass


Alias von ReflectionClass::isIterable

  • « ReflectionClass::isIterable
  • ReflectionClass::isSubclassOf »
  • PHP Manual
  • ReflectionClass
  • Alias von ReflectionClass::isIterable

ReflectionClass::isIterateable

(PHP 5, PHP 7)

ReflectionClass::isIterateable — Alias von ReflectionClass::isIterable()

Beschreibung

Alias von ReflectionClass::isIterable()

As of PHP 7.2.0, instead of the missspelled RefectionClass::isIterateable(), ReflectionClass::isIterable() should be preferred.


Checks if a subclass

  • « ReflectionClass::isIterateable
  • ReflectionClass::isTrait »
  • PHP Manual
  • ReflectionClass
  • Checks if a subclass

ReflectionClass::isSubclassOf

(PHP 5, PHP 7)

ReflectionClass::isSubclassOf — Checks if a subclass

Beschreibung

public ReflectionClass::isSubclassOf ( ReflectionClass|string $class ) : bool

Checks if the class is a subclass of a specified class or implements a specified interface.

Parameter-Liste

class

Either the name of the class as string or a ReflectionClass object of the class to check against.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ReflectionClass::isInterface() - Checks if the class is an interface
  • ReflectionClass::implementsInterface() - Implements interface
  • is_subclass_of() - Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert
  • get_parent_class() - Gibt den Namen der Elternklasse eines Objektes zurück


Returns whether this is a trait

  • « ReflectionClass::isSubclassOf
  • ReflectionClass::isUserDefined »
  • PHP Manual
  • ReflectionClass
  • Returns whether this is a trait

ReflectionClass::isTrait

(PHP 5 >= 5.4.0, PHP 7)

ReflectionClass::isTrait — Returns whether this is a trait

Beschreibung

public ReflectionClass::isTrait ( ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if this is a trait, false otherwise. Returns null in case of an error.


Checks if user defined

  • « ReflectionClass::isTrait
  • ReflectionClass::newInstance »
  • PHP Manual
  • ReflectionClass
  • Checks if user defined

ReflectionClass::isUserDefined

(PHP 5, PHP 7)

ReflectionClass::isUserDefined — Checks if user defined

Beschreibung

public ReflectionClass::isUserDefined ( ) : bool

Checks whether the class is user-defined, as opposed to internal.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • ReflectionClass::isInternal() - Checks if class is defined internally by an extension, or the core


Creates a new class instance from given arguments

  • « ReflectionClass::isUserDefined
  • ReflectionClass::newInstanceArgs »
  • PHP Manual
  • ReflectionClass
  • Creates a new class instance from given arguments

ReflectionClass::newInstance

(PHP 5, PHP 7)

ReflectionClass::newInstance — Creates a new class instance from given arguments

Beschreibung

public ReflectionClass::newInstance ( mixed ...$args ) : object

Creates a new instance of the class. The given arguments are passed to the class constructor.

Parameter-Liste

args

Accepts a variable number of arguments which are passed to the class constructor, much like call_user_func().

Rückgabewerte

Fehler/Exceptions

A ReflectionException if the class constructor is not public.

A ReflectionException if the class does not have a constructor and the args parameter contains one or more parameters.

Siehe auch

  • ReflectionClass::newInstanceArgs() - Creates a new class instance from given arguments
  • ReflectionClass::newInstanceWithoutConstructor() - Creates a new class instance without invoking the constructor


Creates a new class instance from given arguments

  • « ReflectionClass::newInstance
  • ReflectionClass::newInstanceWithoutConstructor »
  • PHP Manual
  • ReflectionClass
  • Creates a new class instance from given arguments

ReflectionClass::newInstanceArgs

(PHP 5 >= 5.1.3, PHP 7)

ReflectionClass::newInstanceArgs — Creates a new class instance from given arguments

Beschreibung

public ReflectionClass::newInstanceArgs ( array $args = [] ) : object

Creates a new instance of the class, the given arguments are passed to the class constructor.

Parameter-Liste

args

The parameters to be passed to the class constructor as an array.

Rückgabewerte

Returns a new instance of the class.

Beispiele

Beispiel #1 Basic usage of ReflectionClass::newInstanceArgs()

<?php
$class = new ReflectionClass('ReflectionFunction');
$instance = $class->newInstanceArgs(array('substr'));
var_dump($instance);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(ReflectionFunction)#2 (1) {
  ["name"]=>
  string(6) "substr"
}

Fehler/Exceptions

A ReflectionException if the class constructor is not public.

A ReflectionException if the class does not have a constructor and the args parameter contains one or more parameters.

Siehe auch

  • ReflectionClass::newInstance() - Creates a new class instance from given arguments
  • ReflectionClass::newInstanceWithoutConstructor() - Creates a new class instance without invoking the constructor


Creates a new class instance without invoking the constructor

  • « ReflectionClass::newInstanceArgs
  • ReflectionClass::setStaticPropertyValue »
  • PHP Manual
  • ReflectionClass
  • Creates a new class instance without invoking the constructor

ReflectionClass::newInstanceWithoutConstructor

(PHP 5 >= 5.4.0, PHP 7)

ReflectionClass::newInstanceWithoutConstructor — Creates a new class instance without invoking the constructor

Beschreibung

public ReflectionClass::newInstanceWithoutConstructor ( ) : object

Creates a new instance of the class without invoking the constructor.

Parameter-Liste

Rückgabewerte

Changelog

Version | Beschreibung
5.6.0 | All internal classes can now be instantiated except for those declared final.

Fehler/Exceptions

A ReflectionException if the class is an internal class that cannot be instantiated without invoking the constructor. In PHP 5.6.0 onwards, this exception is limited only to internal classes that are final.

Siehe auch

  • ReflectionClass::newInstance() - Creates a new class instance from given arguments
  • ReflectionClass::newInstanceArgs() - Creates a new class instance from given arguments


Sets static property value

  • « ReflectionClass::newInstanceWithoutConstructor
  • ReflectionClass::__toString »
  • PHP Manual
  • ReflectionClass
  • Sets static property value

ReflectionClass::setStaticPropertyValue

(PHP 5 >= 5.1.2, PHP 7)

ReflectionClass::setStaticPropertyValue — Sets static property value

Beschreibung

public ReflectionClass::setStaticPropertyValue ( string $name , mixed $value ) : void

Sets static property value.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Property name.

value

New property value.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ReflectionClass::getStaticPropertyValue() - Gets static property value


Returns the string representation of the ReflectionClass object

  • « ReflectionClass::setStaticPropertyValue
  • ReflectionClassConstant »
  • PHP Manual
  • ReflectionClass
  • Returns the string representation of the ReflectionClass object

ReflectionClass::__toString

(PHP 5, PHP 7)

ReflectionClass::__toString — Returns the string representation of the ReflectionClass object

Beschreibung

public ReflectionClass::__toString ( ) : string

Returns the string representation of the ReflectionClass object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A string representation of this ReflectionClass instance.

Beispiele

Beispiel #1 ReflectionClass::__toString() example

<?php
$reflectionClass = new ReflectionClass('Exception');
echo $reflectionClass->__toString();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Class [ <internal:Core> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
    Property [ <default> private $previous ]
  }

  - Methods [10] {
    Method [ <internal:Core> final private method __clone ] {
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> $message ]
        Parameter #1 [ <optional> $code ]
        Parameter #2 [ <optional> $previous ]
      }
    }

    Method [ <internal:Core> final public method getMessage ] {
    }

    Method [ <internal:Core> final public method getCode ] {
    }

    Method [ <internal:Core> final public method getFile ] {
    }

    Method [ <internal:Core> final public method getLine ] {
    }

    Method [ <internal:Core> final public method getTrace ] {
    }

    Method [ <internal:Core> final public method getPrevious ] {
    }

    Method [ <internal:Core> final public method getTraceAsString ] {
    }

    Method [ <internal:Core> public method __toString ] {
    }
  }
}

Siehe auch

  • ReflectionClass::export() - Exports a class
  • __toString()


The ReflectionClassConstant class

(PHP 7 >= 7.1.0)

Einführung

The ReflectionClassConstant class reports information about a class constant.

Klassenbeschreibung

ReflectionClassConstant implements Reflector {
/* Konstanten */
const int IS_PUBLIC ;
const int IS_PROTECTED ;
const int IS_PRIVATE ;
/* Eigenschaften */
public $name ;
public $class ;
/* Methoden */
public __construct ( object|string $class , string $constant )
public static export ( mixed $class , string $name , bool $return = ? ) : string
public getDeclaringClass ( ) : ReflectionClass
public getDocComment ( ) : string|false
public getModifiers ( ) : int
public getName ( ) : string|false
public getValue ( ) : mixed
public isPrivate ( ) : bool
public isProtected ( ) : bool
public isPublic ( ) : bool
public __toString ( ) : string
}

Eigenschaften

name

Name of the class constant. Read-only, throws ReflectionException in attempt to write.

class

Name of the class where the class constant is defined. Read-only, throws ReflectionException in attempt to write.

Vordefinierte Konstanten

ReflectionClassConstant Modifiers

ReflectionClassConstant::IS_PUBLIC

Indicates public constants.

ReflectionClassConstant::IS_PROTECTED

Indicates protected constants.

ReflectionClassConstant::IS_PRIVATE

Indicates private constants.

Inhaltsverzeichnis

  • ReflectionClassConstant::__construct — Constructs a ReflectionClassConstant
  • ReflectionClassConstant::export — Export
  • ReflectionClassConstant::getDeclaringClass — Gets declaring class
  • ReflectionClassConstant::getDocComment — Gets doc comments
  • ReflectionClassConstant::getModifiers — Gets the class constant modifiers
  • ReflectionClassConstant::getName — Get name of the constant
  • ReflectionClassConstant::getValue — Gets value
  • ReflectionClassConstant::isPrivate — Checks if class constant is private
  • ReflectionClassConstant::isProtected — Checks if class constant is protected
  • ReflectionClassConstant::isPublic — Checks if class constant is public
  • ReflectionClassConstant::__toString — Returns the string representation of the ReflectionClassConstant object


Constructs a ReflectionClassConstant

  • « ReflectionClassConstant
  • ReflectionClassConstant::export »
  • PHP Manual
  • ReflectionClassConstant
  • Constructs a ReflectionClassConstant

ReflectionClassConstant::__construct

(PHP 7 >= 7.1.0)

ReflectionClassConstant::__construct — Constructs a ReflectionClassConstant

Beschreibung

public ReflectionClassConstant::__construct ( object|string $class , string $constant )

Constructs a new ReflectionClassConstant object.

Parameter-Liste

class

Either a string containing the name of the class to reflect, or an object.

constant

The name of the class constant.

Rückgabewerte

Returns constructed ReflectionClassConstant instance.

Fehler/Exceptions

Throws an Exception in case the given class constant does not exist.

Siehe auch

  • Constructors


Export

  • « ReflectionClassConstant::__construct
  • ReflectionClassConstant::getDeclaringClass »
  • PHP Manual
  • ReflectionClassConstant
  • Export

ReflectionClassConstant::export

(PHP 7 >= 7.1.0)

ReflectionClassConstant::export — Export

Warnung

Diese Funktion ist seit PHP 7.4.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

public static ReflectionClassConstant::export ( mixed $class , string $name , bool $return = ? ) : string

Exports a reflection.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

class

Die Reflection, die exportiert werden soll.

name

The class constant name.

return

Wird dies auf true gesetzt, so wird der Export zurückgegeben anstelle ihn auszugeben. Wird dies auf false gesetzt (der Standardwert), wird das Gegenteil passieren.

Rückgabewerte

Siehe auch

  • ReflectionClassConstant::__toString() - Returns the string representation of the ReflectionClassConstant object


Gets declaring class

  • « ReflectionClassConstant::export
  • ReflectionClassConstant::getDocComment »
  • PHP Manual
  • ReflectionClassConstant
  • Gets declaring class

ReflectionClassConstant::getDeclaringClass

(PHP 7 >= 7.1.0)

ReflectionClassConstant::getDeclaringClass — Gets declaring class

Beschreibung

public ReflectionClassConstant::getDeclaringClass ( ) : ReflectionClass

Gets the declaring class.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A ReflectionClass object.


Gets doc comments

  • « ReflectionClassConstant::getDeclaringClass
  • ReflectionClassConstant::getModifiers »
  • PHP Manual
  • ReflectionClassConstant
  • Gets doc comments

ReflectionClassConstant::getDocComment

(PHP 7 >= 7.1.0)

ReflectionClassConstant::getDocComment — Gets doc comments

Beschreibung

public ReflectionClassConstant::getDocComment ( ) : string|false

Gets doc comments from a class constant.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The doc comment if it exists, otherwise false


Gets the class constant modifiers

  • « ReflectionClassConstant::getDocComment
  • ReflectionClassConstant::getName »
  • PHP Manual
  • ReflectionClassConstant
  • Gets the class constant modifiers

ReflectionClassConstant::getModifiers

(PHP 7 >= 7.1.0)

ReflectionClassConstant::getModifiers — Gets the class constant modifiers

Beschreibung

public ReflectionClassConstant::getModifiers ( ) : int

Returns a bitfield of the access modifiers for this class constant.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A numeric representation of the modifiers. The actual meanings of these modifiers are described in the predefined constants.

Siehe auch

  • Reflection::getModifierNames() - Gets modifier names


Get name of the constant

  • « ReflectionClassConstant::getModifiers
  • ReflectionClassConstant::getValue »
  • PHP Manual
  • ReflectionClassConstant
  • Get name of the constant

ReflectionClassConstant::getName

(PHP 7 >= 7.1.0)

ReflectionClassConstant::getName — Get name of the constant

Beschreibung

public ReflectionClassConstant::getName ( ) : string|false

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the constant's name, Im Fehlerfall wird false zurückgegeben..


Gets value

  • « ReflectionClassConstant::getName
  • ReflectionClassConstant::isPrivate »
  • PHP Manual
  • ReflectionClassConstant
  • Gets value

ReflectionClassConstant::getValue

(PHP 7 >= 7.1.0)

ReflectionClassConstant::getValue — Gets value

Beschreibung

public ReflectionClassConstant::getValue ( ) : mixed

Gets the class constant's value.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The value of the class constant.


Checks if class constant is private

  • « ReflectionClassConstant::getValue
  • ReflectionClassConstant::isProtected »
  • PHP Manual
  • ReflectionClassConstant
  • Checks if class constant is private

ReflectionClassConstant::isPrivate

(PHP 7 >= 7.1.0)

ReflectionClassConstant::isPrivate — Checks if class constant is private

Beschreibung

public ReflectionClassConstant::isPrivate ( ) : bool

Checks if the class constant is private.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the class constant is private, otherwise false

Siehe auch

  • ReflectionClassConstant::isPublic() - Checks if class constant is public
  • ReflectionClassConstant::isProtected() - Checks if class constant is protected


Checks if class constant is protected

  • « ReflectionClassConstant::isPrivate
  • ReflectionClassConstant::isPublic »
  • PHP Manual
  • ReflectionClassConstant
  • Checks if class constant is protected

ReflectionClassConstant::isProtected

(PHP 7 >= 7.1.0)

ReflectionClassConstant::isProtected — Checks if class constant is protected

Beschreibung

public ReflectionClassConstant::isProtected ( ) : bool

Checks if the class constant is protected.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the class constant is protected, otherwise false

Siehe auch

  • ReflectionClassConstant::isPublic() - Checks if class constant is public
  • ReflectionClassConstant::isPrivate() - Checks if class constant is private


Checks if class constant is public

  • « ReflectionClassConstant::isProtected
  • ReflectionClassConstant::__toString »
  • PHP Manual
  • ReflectionClassConstant
  • Checks if class constant is public

ReflectionClassConstant::isPublic

(PHP 7 >= 7.1.0)

ReflectionClassConstant::isPublic — Checks if class constant is public

Beschreibung

public ReflectionClassConstant::isPublic ( ) : bool

Checks if the class constant is public.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the class constant is public, otherwise false

Siehe auch

  • ReflectionClassConstant::isPrivate() - Checks if class constant is private
  • ReflectionClassConstant::isProtected() - Checks if class constant is protected


Returns the string representation of the ReflectionClassConstant object

  • « ReflectionClassConstant::isPublic
  • ReflectionZendExtension »
  • PHP Manual
  • ReflectionClassConstant
  • Returns the string representation of the ReflectionClassConstant object

ReflectionClassConstant::__toString

(PHP 7 >= 7.1.0)

ReflectionClassConstant::__toString — Returns the string representation of the ReflectionClassConstant object

Beschreibung

public ReflectionClassConstant::__toString ( ) : string

Returns the string representation of the ReflectionClassConstant object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A string representation of this ReflectionClassConstant instance.

Siehe auch

  • ReflectionClassConstant::export() - Export
  • __toString()


The ReflectionZendExtension class

(PHP 5 >= 5.4.0, PHP 7)

Einführung

Klassenbeschreibung

ReflectionZendExtension implements Reflector {
/* Eigenschaften */
public $name ;
/* Methoden */
public __construct ( string $name )
final private __clone ( ) : void
public static export ( string $name , bool $return = ? ) : string
public getAuthor ( ) : string
public getCopyright ( ) : string
public getName ( ) : string
public getURL ( ) : string
public getVersion ( ) : string
public __toString ( ) : string
}

Eigenschaften

name

Name of the extension. Read-only, throws ReflectionException in attempt to write.

Inhaltsverzeichnis

  • ReflectionZendExtension::__clone — Clone handler
  • ReflectionZendExtension::__construct — Constructor
  • ReflectionZendExtension::export — Export
  • ReflectionZendExtension::getAuthor — Gets author
  • ReflectionZendExtension::getCopyright — Gets copyright
  • ReflectionZendExtension::getName — Gets name
  • ReflectionZendExtension::getURL — Gets URL
  • ReflectionZendExtension::getVersion — Gets version
  • ReflectionZendExtension::__toString — To string handler


Clone handler

  • « ReflectionZendExtension
  • ReflectionZendExtension::__construct »
  • PHP Manual
  • ReflectionZendExtension
  • Clone handler

ReflectionZendExtension::__clone

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::__clone — Clone handler

Beschreibung

final private ReflectionZendExtension::__clone ( ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Constructor

  • « ReflectionZendExtension::__clone
  • ReflectionZendExtension::export »
  • PHP Manual
  • ReflectionZendExtension
  • Constructor

ReflectionZendExtension::__construct

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::__construct — Constructor

Beschreibung

public ReflectionZendExtension::__construct ( string $name )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

Rückgabewerte


Export

  • « ReflectionZendExtension::__construct
  • ReflectionZendExtension::getAuthor »
  • PHP Manual
  • ReflectionZendExtension
  • Export

ReflectionZendExtension::export

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::export — Export

Warnung

Diese Funktion ist seit PHP 7.4.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

public static ReflectionZendExtension::export ( string $name , bool $return = ? ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

name

return

Rückgabewerte

Siehe auch

  • ReflectionClassConstant::__toString() - Returns the string representation of the ReflectionClassConstant object


Gets author

  • « ReflectionZendExtension::export
  • ReflectionZendExtension::getCopyright »
  • PHP Manual
  • ReflectionZendExtension
  • Gets author

ReflectionZendExtension::getAuthor

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::getAuthor — Gets author

Beschreibung

public ReflectionZendExtension::getAuthor ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Gets copyright

  • « ReflectionZendExtension::getAuthor
  • ReflectionZendExtension::getName »
  • PHP Manual
  • ReflectionZendExtension
  • Gets copyright

ReflectionZendExtension::getCopyright

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::getCopyright — Gets copyright

Beschreibung

public ReflectionZendExtension::getCopyright ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Gets name

  • « ReflectionZendExtension::getCopyright
  • ReflectionZendExtension::getURL »
  • PHP Manual
  • ReflectionZendExtension
  • Gets name

ReflectionZendExtension::getName

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::getName — Gets name

Beschreibung

public ReflectionZendExtension::getName ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Gets URL

  • « ReflectionZendExtension::getName
  • ReflectionZendExtension::getVersion »
  • PHP Manual
  • ReflectionZendExtension
  • Gets URL

ReflectionZendExtension::getURL

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::getURL — Gets URL

Beschreibung

public ReflectionZendExtension::getURL ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Gets version

  • « ReflectionZendExtension::getURL
  • ReflectionZendExtension::__toString »
  • PHP Manual
  • ReflectionZendExtension
  • Gets version

ReflectionZendExtension::getVersion

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::getVersion — Gets version

Beschreibung

public ReflectionZendExtension::getVersion ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


To string handler

  • « ReflectionZendExtension::getVersion
  • ReflectionExtension »
  • PHP Manual
  • ReflectionZendExtension
  • To string handler

ReflectionZendExtension::__toString

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::__toString — To string handler

Beschreibung

public ReflectionZendExtension::__toString ( ) : string

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


The ReflectionExtension class

(PHP 5, PHP 7)

Einführung

The ReflectionExtension class reports information about an extension.

Klassenbeschreibung

ReflectionExtension implements Reflector {
/* Eigenschaften */
public $name ;
/* Methoden */
public ReflectionClass::__construct ( object|string $objectOrClass )
final private __clone ( ) : void
public static export ( string $name , string $return = false ) : string
public getClasses ( ) : array
public getClassNames ( ) : array
public getConstants ( ) : array
public getDependencies ( ) : array
public getFunctions ( ) : array
public getINIEntries ( ) : array
public getName ( ) : string
public getVersion ( ) : string|null
public info ( ) : void
public isPersistent ( ) : bool
public isTemporary ( ) : bool
public __toString ( ) : string
}

Eigenschaften

name

Name of the extension, same as calling the ReflectionExtension::getName() method.

Inhaltsverzeichnis

  • ReflectionExtension::__clone — Clones
  • ReflectionExtension::__construct — Constructs a ReflectionExtension
  • ReflectionExtension::export — Export
  • ReflectionExtension::getClasses — Gets classes
  • ReflectionExtension::getClassNames — Gets class names
  • ReflectionExtension::getConstants — Gets constants
  • ReflectionExtension::getDependencies — Gets dependencies
  • ReflectionExtension::getFunctions — Gets extension functions
  • ReflectionExtension::getINIEntries — Gets extension ini entries
  • ReflectionExtension::getName — Gets extension name
  • ReflectionExtension::getVersion — Gets extension version
  • ReflectionExtension::info — Print extension info
  • ReflectionExtension::isPersistent — Returns whether this extension is persistent
  • ReflectionExtension::isTemporary — Returns whether this extension is temporary
  • ReflectionExtension::__toString — To string


Clones

  • « ReflectionExtension
  • ReflectionExtension::__construct »
  • PHP Manual
  • ReflectionExtension
  • Clones

ReflectionExtension::__clone

(PHP 5, PHP 7)

ReflectionExtension::__clone — Clones

Beschreibung

final private ReflectionExtension::__clone ( ) : void

The clone method prevents an object from being cloned. Reflection objects cannot be cloned.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

No value is returned, if called a fatal error will occur.

Siehe auch

  • ReflectionExtension::__construct() - Constructs a ReflectionExtension
  • Object cloning


Constructs a ReflectionExtension

  • « ReflectionExtension::__clone
  • ReflectionExtension::export »
  • PHP Manual
  • ReflectionExtension
  • Constructs a ReflectionExtension

ReflectionExtension::__construct

(PHP 5, PHP 7)

ReflectionExtension::__construct — Constructs a ReflectionExtension

Beschreibung

public ReflectionExtension::__construct ( string $name )

Construct a ReflectionExtension object.

Parameter-Liste

name

Name of the extension.

Rückgabewerte

A ReflectionExtension object.

Beispiele

Beispiel #1 ReflectionExtension example

<?php
$ext = new ReflectionExtension('Reflection');

printf('Extension: %s (version: %s)', $ext->getName(), $ext->getVersion());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Extension: Reflection (version: $Revision$)

Siehe auch

  • ReflectionExtension::info() - Print extension info
  • Constructors


Export

  • « ReflectionExtension::__construct
  • ReflectionExtension::getClasses »
  • PHP Manual
  • ReflectionExtension
  • Export

ReflectionExtension::export

(PHP 5, PHP 7)

ReflectionExtension::export — Export

Warnung

Diese Funktion ist seit PHP 7.4.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

public static ReflectionExtension::export ( string $name , string $return = false ) : string

Exports a reflected extension. The output format of this function is the same as the CLI argument --re [extension].

Parameter-Liste

name

Die Reflection, die exportiert werden soll.

return

Wird dies auf true gesetzt, so wird der Export zurückgegeben anstelle ihn auszugeben. Wird dies auf false gesetzt (der Standardwert), wird das Gegenteil passieren.

Rückgabewerte

Falls der Parameter return auf true gesetzt ist, so wird der Export als ein String zurückgegeben, andernfalls wird null zurückgegeben.

Siehe auch

  • ReflectionExtension::info() - Print extension info
  • ReflectionExtension::__toString() - To string


Gets classes

  • « ReflectionExtension::export
  • ReflectionExtension::getClassNames »
  • PHP Manual
  • ReflectionExtension
  • Gets classes

ReflectionExtension::getClasses

(PHP 5, PHP 7)

ReflectionExtension::getClasses — Gets classes

Beschreibung

public ReflectionExtension::getClasses ( ) : array

Gets a list of classes from an extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of ReflectionClass objects, one for each class within the extension. If no classes are defined, an empty array is returned.

Beispiele

Beispiel #1 ReflectionExtension::getClasses() example

<?php
$ext = new ReflectionExtension('XMLWriter');
var_dump($ext->getClasses());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  ["XMLWriter"]=>
  object(ReflectionClass)#2 (1) {
    ["name"]=>
    string(9) "XMLWriter"
  }
}

Siehe auch

  • ReflectionExtension::getClassNames() - Gets class names


Gets class names

  • « ReflectionExtension::getClasses
  • ReflectionExtension::getConstants »
  • PHP Manual
  • ReflectionExtension
  • Gets class names

ReflectionExtension::getClassNames

(PHP 5, PHP 7)

ReflectionExtension::getClassNames — Gets class names

Beschreibung

public ReflectionExtension::getClassNames ( ) : array

Gets a listing of class names as defined in the extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of class names, as defined in the extension. If no classes are defined, an empty array is returned.

Beispiele

Beispiel #1 ReflectionExtension::getClassNames() example

<?php
$ext = new ReflectionExtension('XMLWriter');
var_dump($ext->getClassNames());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(1) {
  [0]=>
  string(9) "XMLWriter"
}

Siehe auch

  • ReflectionExtension::getClasses() - Gets classes
  • ReflectionExtension::getName() - Gets extension name


Gets constants

  • « ReflectionExtension::getClassNames
  • ReflectionExtension::getDependencies »
  • PHP Manual
  • ReflectionExtension
  • Gets constants

ReflectionExtension::getConstants

(PHP 5, PHP 7)

ReflectionExtension::getConstants — Gets constants

Beschreibung

public ReflectionExtension::getConstants ( ) : array

Get defined constants from an extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An associative array with constant names as keys.

Beispiele

Beispiel #1 ReflectionExtension::getConstants() example

<?php
$ext = new ReflectionExtension('DOM');

print_r($ext->getConstants());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [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_HTML_DOCUMENT_NODE] => 13
    [XML_DTD_NODE] => 14
    [XML_ELEMENT_DECL_NODE] => 15
    [XML_ATTRIBUTE_DECL_NODE] => 16
    [XML_ENTITY_DECL_NODE] => 17
    [XML_NAMESPACE_DECL_NODE] => 18
    [XML_LOCAL_NAMESPACE] => 18
    [XML_ATTRIBUTE_CDATA] => 1
    [XML_ATTRIBUTE_ID] => 2
    [XML_ATTRIBUTE_IDREF] => 3
    [XML_ATTRIBUTE_IDREFS] => 4
    [XML_ATTRIBUTE_ENTITY] => 6
    [XML_ATTRIBUTE_NMTOKEN] => 7
    [XML_ATTRIBUTE_NMTOKENS] => 8
    [XML_ATTRIBUTE_ENUMERATION] => 9
    [XML_ATTRIBUTE_NOTATION] => 10
    [DOM_PHP_ERR] => 0
    [DOM_INDEX_SIZE_ERR] => 1
    [DOMSTRING_SIZE_ERR] => 2
    [DOM_HIERARCHY_REQUEST_ERR] => 3
    [DOM_WRONG_DOCUMENT_ERR] => 4
    [DOM_INVALID_CHARACTER_ERR] => 5
    [DOM_NO_DATA_ALLOWED_ERR] => 6
    [DOM_NO_MODIFICATION_ALLOWED_ERR] => 7
    [DOM_NOT_FOUND_ERR] => 8
    [DOM_NOT_SUPPORTED_ERR] => 9
    [DOM_INUSE_ATTRIBUTE_ERR] => 10
    [DOM_INVALID_STATE_ERR] => 11
    [DOM_SYNTAX_ERR] => 12
    [DOM_INVALID_MODIFICATION_ERR] => 13
    [DOM_NAMESPACE_ERR] => 14
    [DOM_INVALID_ACCESS_ERR] => 15
    [DOM_VALIDATION_ERR] => 16
)

Siehe auch

  • ReflectionExtension::getINIEntries() - Gets extension ini entries


Gets dependencies

  • « ReflectionExtension::getConstants
  • ReflectionExtension::getFunctions »
  • PHP Manual
  • ReflectionExtension
  • Gets dependencies

ReflectionExtension::getDependencies

(PHP 5 >= 5.1.3, PHP 7)

ReflectionExtension::getDependencies — Gets dependencies

Beschreibung

public ReflectionExtension::getDependencies ( ) : array

Gets dependencies, by listing both required and conflicting dependencies.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An associative array with dependencies as keys and either Required, Optional or Conflicts as the values.

Beispiele

Beispiel #1 ReflectionExtension::getDependencies() example

<?php
$dom = new ReflectionExtension('dom');

print_r($dom->getDependencies());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [libxml] => Required
    [domxml] => Conflicts
)

Siehe auch

  • ReflectionClass::getVersion()


Gets extension functions

  • « ReflectionExtension::getDependencies
  • ReflectionExtension::getINIEntries »
  • PHP Manual
  • ReflectionExtension
  • Gets extension functions

ReflectionExtension::getFunctions

(PHP 5, PHP 7)

ReflectionExtension::getFunctions — Gets extension functions

Beschreibung

public ReflectionExtension::getFunctions ( ) : array

Get defined functions from an extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An associative array of ReflectionFunction objects, for each function defined in the extension with the keys being the function names. If no function are defined, an empty array is returned.

Beispiele

Beispiel #1 ReflectionExtension::getFunctions() example

<?php
$dom = new ReflectionExtension('SimpleXML');

print_r($dom->getFunctions());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [simplexml_load_file] => ReflectionFunction Object
        (
            [name] => simplexml_load_file
        )

    [simplexml_load_string] => ReflectionFunction Object
        (
            [name] => simplexml_load_string
        )

    [simplexml_import_dom] => ReflectionFunction Object
        (
            [name] => simplexml_import_dom
        )

)

Siehe auch

  • ReflectionExtension::getClasses() - Gets classes
  • get_extension_funcs() - Liefert die Namen der Funktionen einer Extension


Gets extension ini entries

  • « ReflectionExtension::getFunctions
  • ReflectionExtension::getName »
  • PHP Manual
  • ReflectionExtension
  • Gets extension ini entries

ReflectionExtension::getINIEntries

(PHP 5, PHP 7)

ReflectionExtension::getINIEntries — Gets extension ini entries

Beschreibung

public ReflectionExtension::getINIEntries ( ) : array

Get the ini entries for an extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An associative array with the ini entries as keys, with their defined values as values.

Beispiele

Beispiel #1 ReflectionExtension::getINIEntries() example

<?php
$ext = new ReflectionExtension('mysql');

print_r($ext->getINIEntries());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [mysql.allow_persistent] => 1
    [mysql.max_persistent] => -1
    [mysql.max_links] => -1
    [mysql.default_host] =>
    [mysql.default_user] =>
    [mysql.default_password] =>
    [mysql.default_port] =>
    [mysql.default_socket] =>
    [mysql.connect_timeout] => 60
    [mysql.trace_mode] =>
    [mysql.allow_local_infile] => 1
    [mysql.cache_size] => 2000
)

Siehe auch

  • ini_get_all() - Gets all configuration options
  • ReflectionExtension::getConstants() - Gets constants


Gets extension name

  • « ReflectionExtension::getINIEntries
  • ReflectionExtension::getVersion »
  • PHP Manual
  • ReflectionExtension
  • Gets extension name

ReflectionExtension::getName

(PHP 5, PHP 7)

ReflectionExtension::getName — Gets extension name

Beschreibung

public ReflectionExtension::getName ( ) : string

Gets the extensions name.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The extensions name.

Beispiele

Beispiel #1 ReflectionExtension::getName() example

<?php
$ext = new ReflectionExtension('mysqli');
var_dump($ext->getName());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(6) "mysqli"

Siehe auch

  • ReflectionExtension::getClassNames() - Gets class names


Gets extension version

  • « ReflectionExtension::getName
  • ReflectionExtension::info »
  • PHP Manual
  • ReflectionExtension
  • Gets extension version

ReflectionExtension::getVersion

(PHP 5, PHP 7)

ReflectionExtension::getVersion — Gets extension version

Beschreibung

public ReflectionExtension::getVersion ( ) : string|null

Gets the version of the extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The version of the extension, or null if the extension has no version.

Beispiele

Beispiel #1 ReflectionExtension::getVersion() example

<?php
$ext = new ReflectionExtension('mysqli');
var_dump($ext->getVersion());
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(3) "0.1"

Siehe auch

  • ReflectionExtension::info() - Print extension info


Print extension info

  • « ReflectionExtension::getVersion
  • ReflectionExtension::isPersistent »
  • PHP Manual
  • ReflectionExtension
  • Print extension info

ReflectionExtension::info

(PHP 5 >= 5.2.4, PHP 7)

ReflectionExtension::info — Print extension info

Beschreibung

public ReflectionExtension::info ( ) : void

Prints out the "phpinfo()" snippet for the given extension.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Information about the extension.

Beispiele

Beispiel #1 ReflectionExtension::info() example

<?php
$ext = new ReflectionExtension('mysqli');
$ext->info();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

mysqli

MysqlI Support => enabled
Client API library version => mysqlnd 5.0.5-dev - 081106 - $Revision$
Active Persistent Links => 0
Inactive Persistent Links => 0
Active Links => 0
Persistent cache => enabled
put_hits => 0
put_misses => 0
get_hits => 0
get_misses => 0
size => 2000
free_items => 2000
references => 2

Directive => Local Value => Master Value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.allow_persistent => On => On
mysqli.default_host => no value => no value
mysqli.default_user => no value => no value
mysqli.default_pw => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_socket => no value => no value
mysqli.reconnect => Off => Off
mysqli.allow_local_infile => On => On
mysqli.cache_size => 2000 => 2000

Siehe auch

  • ReflectionExtension::getName() - Gets extension name
  • phpinfo() - Gibt Informationen zur PHP-Konfiguration aus


Returns whether this extension is persistent

  • « ReflectionExtension::info
  • ReflectionExtension::isTemporary »
  • PHP Manual
  • ReflectionExtension
  • Returns whether this extension is persistent

ReflectionExtension::isPersistent

(PHP 5 >= 5.4.0, PHP 7)

ReflectionExtension::isPersistent — Returns whether this extension is persistent

Beschreibung

public ReflectionExtension::isPersistent ( ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true for extensions loaded by extension, false otherwise.

Siehe auch

  • ReflectionExtension::isTemporary() - Returns whether this extension is temporary


Returns whether this extension is temporary

  • « ReflectionExtension::isPersistent
  • ReflectionExtension::__toString »
  • PHP Manual
  • ReflectionExtension
  • Returns whether this extension is temporary

ReflectionExtension::isTemporary

(PHP 5 >= 5.4.0, PHP 7)

ReflectionExtension::isTemporary — Returns whether this extension is temporary

Beschreibung

public ReflectionExtension::isTemporary ( ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true for extensions loaded by dl(), false otherwise.

Siehe auch

  • ReflectionExtension::isPersistent() - Returns whether this extension is persistent


To string

  • « ReflectionExtension::isTemporary
  • ReflectionFunction »
  • PHP Manual
  • ReflectionExtension
  • To string

ReflectionExtension::__toString

(PHP 5, PHP 7)

ReflectionExtension::__toString — To string

Beschreibung

public ReflectionExtension::__toString ( ) : string

Exports a reflected extension and returns it as a string. This is the same as the ReflectionExtension::export() with the return set to true.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the exported extension as a string, in the same way as the ReflectionExtension::export().

Siehe auch

  • ReflectionExtension::__construct() - Constructs a ReflectionExtension
  • ReflectionExtension::export() - Export
  • __toString()


The ReflectionFunction class

(PHP 5, PHP 7)

Einführung

The ReflectionFunction class reports information about a function.

Klassenbeschreibung

ReflectionFunction extends ReflectionFunctionAbstract implements Reflector {
/* Konstanten */
const int IS_DEPRECATED = 262144 ;
/* Eigenschaften */
public $name ;
/* Methoden */
public __construct ( Closure|string $function )
public static export ( string $name , string $return = ? ) : string
public getClosure ( ) : Closure
public invoke ( mixed ...$args ) : mixed
public invokeArgs ( array $args ) : mixed
public isDisabled ( ) : bool
public __toString ( ) : string
/* Geerbte Methoden */
final private ReflectionFunctionAbstract::__clone ( ) : void
public ReflectionFunctionAbstract::getClosureScopeClass ( ) : ReflectionClass|null
public ReflectionFunctionAbstract::getClosureThis ( ) : object|null
public ReflectionFunctionAbstract::getDocComment ( ) : string|false
public ReflectionFunctionAbstract::getEndLine ( ) : int|false
public ReflectionFunctionAbstract::getExtension ( ) : ReflectionExtension|null
public ReflectionFunctionAbstract::getExtensionName ( ) : string|false
public ReflectionFunctionAbstract::getFileName ( ) : string|false
public ReflectionFunctionAbstract::getName ( ) : string
public ReflectionFunctionAbstract::getNamespaceName ( ) : string
public ReflectionFunctionAbstract::getNumberOfParameters ( ) : int
public ReflectionFunctionAbstract::getNumberOfRequiredParameters ( ) : int
public ReflectionFunctionAbstract::getParameters ( ) : array
public ReflectionFunctionAbstract::getReturnType ( ) : ReflectionType|null
public ReflectionFunctionAbstract::getShortName ( ) : string
public ReflectionFunctionAbstract::getStartLine ( ) : int|false
public ReflectionFunctionAbstract::getStaticVariables ( ) : array
public ReflectionFunctionAbstract::hasReturnType ( ) : bool
public ReflectionFunctionAbstract::inNamespace ( ) : bool
public ReflectionFunctionAbstract::isClosure ( ) : bool
public ReflectionFunctionAbstract::isDeprecated ( ) : bool
public ReflectionFunctionAbstract::isGenerator ( ) : bool
public ReflectionFunctionAbstract::isInternal ( ) : bool
public ReflectionFunctionAbstract::isUserDefined ( ) : bool
public ReflectionFunctionAbstract::isVariadic ( ) : bool
public ReflectionFunctionAbstract::returnsReference ( ) : bool
abstract public ReflectionFunctionAbstract::__toString ( ) : void
}

Eigenschaften

name

Name of the function. Read-only, throws ReflectionException in attempt to write.

Vordefinierte Konstanten

ReflectionFunction Modifiers

ReflectionFunction::IS_DEPRECATED

Indicates deprecated functions.

Inhaltsverzeichnis

  • ReflectionFunction::__construct — Constructs a ReflectionFunction object
  • ReflectionFunction::export — Exports function
  • ReflectionFunction::getClosure — Returns a dynamically created closure for the function
  • ReflectionFunction::invoke — Invokes function
  • ReflectionFunction::invokeArgs — Invokes function args
  • ReflectionFunction::isDisabled — Checks if function is disabled
  • ReflectionFunction::__toString — To string


Constructs a ReflectionFunction object

  • « ReflectionFunction
  • ReflectionFunction::export »
  • PHP Manual
  • ReflectionFunction
  • Constructs a ReflectionFunction object

ReflectionFunction::__construct

(PHP 5, PHP 7)

ReflectionFunction::__construct — Constructs a ReflectionFunction object

Beschreibung

public ReflectionFunction::__construct ( Closure|string $function )

Constructs a ReflectionFunction object.

Parameter-Liste

function

The name of the function to reflect or a closure.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

A ReflectionException if the function parameter does not contain a valid function.

Beispiele

Beispiel #1 ReflectionFunction::__construct() example

<?php
/**
 * A simple counter
 *
 * @return    int
 */
function counter1()
{
    static $c = 0;
    return ++$c;
}

/**
 * Another simple counter
 *
 * @return    int
 */
$counter2 = function()
{
    static $d = 0;
    return ++$d;

};

function dumpReflectionFunction($func)
{
    // Print out basic information
    printf(
        "\n\n===> The %s function '%s'\n".
        "     declared in %s\n".
        "     lines %d to %d\n",
        $func->isInternal() ? 'internal' : 'user-defined',
        $func->getName(),
        $func->getFileName(),
        $func->getStartLine(),
        $func->getEndline()
    );

    // Print documentation comment
    printf("---> Documentation:\n %s\n", var_export($func->getDocComment(), 1));

    // Print static variables if existant
    if ($statics = $func->getStaticVariables())
    {
        printf("---> Static variables: %s\n", var_export($statics, 1));
    }
}

// Create an instance of the ReflectionFunction class
dumpReflectionFunction(new ReflectionFunction('counter1'));
dumpReflectionFunction(new ReflectionFunction($counter2));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

===> The user-defined function 'counter1'
     declared in Z:\reflectcounter.php
     lines 7 to 11
---> Documentation:
 '/**
 * A simple counter
 *
 * @return    int
 */'
---> Static variables: array (
  'c' => 0,
)

===> The user-defined function '{closure}'
     declared in Z:\reflectcounter.php
     lines 18 to 23
---> Documentation:
 '/**
 * Another simple counter
 *
 * @return    int
 */'
---> Static variables: array (
  'd' => 0,
)

Siehe auch

  • ReflectionMethod::__construct() - Constructs a ReflectionMethod
  • Constructors


Exports function

  • « ReflectionFunction::__construct
  • ReflectionFunction::getClosure »
  • PHP Manual
  • ReflectionFunction
  • Exports function

ReflectionFunction::export

(PHP 5, PHP 7)

ReflectionFunction::export — Exports function

Warnung

Diese Funktion ist seit PHP 7.4.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

public static ReflectionFunction::export ( string $name , string $return = ? ) : string

Exports a Reflected function.

Parameter-Liste

name

Die Reflection, die exportiert werden soll.

return

Wird dies auf true gesetzt, so wird der Export zurückgegeben anstelle ihn auszugeben. Wird dies auf false gesetzt (der Standardwert), wird das Gegenteil passieren.

Rückgabewerte

Falls der Parameter return auf true gesetzt ist, so wird der Export als ein String zurückgegeben, andernfalls wird null zurückgegeben.

Siehe auch

  • ReflectionFunction::invoke() - Invokes function
  • ReflectionFunction::__toString() - To string


Returns a dynamically created closure for the function

  • « ReflectionFunction::export
  • ReflectionFunction::invoke »
  • PHP Manual
  • ReflectionFunction
  • Returns a dynamically created closure for the function

ReflectionFunction::getClosure

(PHP 5 >= 5.4.0, PHP 7)

ReflectionFunction::getClosure — Returns a dynamically created closure for the function

Beschreibung

public ReflectionFunction::getClosure ( ) : Closure

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns Closure. Returns null in case of an error.


Invokes function

  • « ReflectionFunction::getClosure
  • ReflectionFunction::invokeArgs »
  • PHP Manual
  • ReflectionFunction
  • Invokes function

ReflectionFunction::invoke

(PHP 5, PHP 7)

ReflectionFunction::invoke — Invokes function

Beschreibung

public ReflectionFunction::invoke ( mixed ...$args ) : mixed

Invokes a reflected function.

Parameter-Liste

args

The passed in argument list. It accepts a variable number of arguments which are passed to the function much like call_user_func() is.

Rückgabewerte

Returns the result of the invoked function call.

Beispiele

Beispiel #1 ReflectionFunction::invoke() example

<?php
function title($title, $name)
{
    return sprintf("%s. %s\r\n", $title, $name);
}

$function = new ReflectionFunction('title');

echo $function->invoke('Dr', 'Phil');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Dr. Phil

Anmerkungen

Hinweis:

Wenn die Funktion einige Argumente per Referenz akzeptiert, so müssen diese als Referenzen in die Argument-Liste gegeben werden.

Siehe auch

  • ReflectionFunction::export() - Exports function
  • __invoke()
  • call_user_func() - Aufruf der Callback-Funktion die als erster Parameter übergeben wurde


Invokes function args

  • « ReflectionFunction::invoke
  • ReflectionFunction::isDisabled »
  • PHP Manual
  • ReflectionFunction
  • Invokes function args

ReflectionFunction::invokeArgs

(PHP 5 >= 5.1.2, PHP 7)

ReflectionFunction::invokeArgs — Invokes function args

Beschreibung

public ReflectionFunction::invokeArgs ( array $args ) : mixed

Invokes the function and pass its arguments as array.

Parameter-Liste

args

The passed arguments to the function as an array, much like call_user_func_array() works.

Rückgabewerte

Returns the result of the invoked function

Beispiele

Beispiel #1 ReflectionFunction::invokeArgs() example

<?php
function title($title, $name)
{
    return sprintf("%s. %s\r\n", $title, $name);
}

$function = new ReflectionFunction('title');

echo $function->invokeArgs(array('Dr', 'Phil'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Dr. Phil

Beispiel #2 ReflectionFunction::invokeArgs() with references example

<?php
function get_false_conditions(array $conditions, array &$false_conditions)
{
    foreach ($conditions as $condition) {
        if (!$condition) {
            $false_conditions[] = $condition;
        }
    }
}

$function_ref     = new ReflectionFunction('get_false_conditions');

$conditions       = array(true, false, -1, 0, 1);
$false_conditions = array();

$function_ref->invokeArgs(array($conditions, &$false_conditions));

var_dump($false_conditions);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(2) {
  [0]=>
  bool(false)
  [1]=>
  int(0)
}

Anmerkungen

Hinweis:

Wenn die Funktion einige Argumente per Referenz akzeptiert, so müssen diese als Referenzen in die Argument-Liste gegeben werden.

Siehe auch

  • ReflectionFunction::invoke() - Invokes function
  • ReflectionFunctionAbstract::getNumberOfParameters() - Gets number of parameters
  • __invoke()
  • call_user_func_array() - Call a callback with an array of parameters


Checks if function is disabled

  • « ReflectionFunction::invokeArgs
  • ReflectionFunction::__toString »
  • PHP Manual
  • ReflectionFunction
  • Checks if function is disabled

ReflectionFunction::isDisabled

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunction::isDisabled — Checks if function is disabled

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

public ReflectionFunction::isDisabled ( ) : bool

Checks if the function is disabled, via the disable_functions directive.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if it's disable, otherwise false

Siehe auch

  • ReflectionFunctionAbstract::isUserDefined() - Checks if user defined
  • disable_functions directive


To string

  • « ReflectionFunction::isDisabled
  • ReflectionFunctionAbstract »
  • PHP Manual
  • ReflectionFunction
  • To string

ReflectionFunction::__toString

(PHP 5, PHP 7)

ReflectionFunction::__toString — To string

Beschreibung

public ReflectionFunction::__toString ( ) : string

To string.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns ReflectionFunction::export()-like output for the function.

Beispiele

Beispiel #1 ReflectionFunction::__toString() example

<?php
function title($title, $name)
{
    return sprintf("%s. %s\r\n", $title, $name);
}

echo new ReflectionFunction('title');
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Function [ <user> function title ] {
  @@ Command line code 1 - 1

  - Parameters [2] {
    Parameter #0 [ <required> $title ]
    Parameter #1 [ <required> $name ]
  }
}

Siehe auch

  • ReflectionFunction::export() - Exports function
  • ReflectionClass::clone()
  • __toString()


The ReflectionFunctionAbstract class

(PHP 5 >= 5.2.0, PHP 7)

Einführung

A parent class to ReflectionFunction, read its description for details.

Klassenbeschreibung

ReflectionFunctionAbstract implements Reflector {
/* Eigenschaften */
public $name ;
/* Methoden */
final private __clone ( ) : void
public getClosureScopeClass ( ) : ReflectionClass|null
public getClosureThis ( ) : object|null
public getDocComment ( ) : string|false
public getEndLine ( ) : int|false
public getExtension ( ) : ReflectionExtension|null
public getExtensionName ( ) : string|false
public getFileName ( ) : string|false
public getName ( ) : string
public getNamespaceName ( ) : string
public getNumberOfParameters ( ) : int
public getNumberOfRequiredParameters ( ) : int
public getParameters ( ) : array
public getReturnType ( ) : ReflectionType|null
public getShortName ( ) : string
public getStartLine ( ) : int|false
public getStaticVariables ( ) : array
public hasReturnType ( ) : bool
public inNamespace ( ) : bool
public isClosure ( ) : bool
public isDeprecated ( ) : bool
public isGenerator ( ) : bool
public isInternal ( ) : bool
public isUserDefined ( ) : bool
public isVariadic ( ) : bool
public returnsReference ( ) : bool
abstract public __toString ( ) : void
}

Eigenschaften

name

Name of the function. Read-only, throws ReflectionException in attempt to write.

Inhaltsverzeichnis

  • ReflectionFunctionAbstract::__clone — Clones function
  • ReflectionFunctionAbstract::getClosureScopeClass — Returns the scope associated to the closure
  • ReflectionFunctionAbstract::getClosureThis — Returns this pointer bound to closure
  • ReflectionFunctionAbstract::getDocComment — Gets doc comment
  • ReflectionFunctionAbstract::getEndLine — Gets end line number
  • ReflectionFunctionAbstract::getExtension — Gets extension info
  • ReflectionFunctionAbstract::getExtensionName — Gets extension name
  • ReflectionFunctionAbstract::getFileName — Gets file name
  • ReflectionFunctionAbstract::getName — Gets function name
  • ReflectionFunctionAbstract::getNamespaceName — Gets namespace name
  • ReflectionFunctionAbstract::getNumberOfParameters — Gets number of parameters
  • ReflectionFunctionAbstract::getNumberOfRequiredParameters — Gets number of required parameters
  • ReflectionFunctionAbstract::getParameters — Gets parameters
  • ReflectionFunctionAbstract::getReturnType — Gets the specified return type of a function
  • ReflectionFunctionAbstract::getShortName — Gets function short name
  • ReflectionFunctionAbstract::getStartLine — Gets starting line number
  • ReflectionFunctionAbstract::getStaticVariables — Gets static variables
  • ReflectionFunctionAbstract::hasReturnType — Checks if the function has a specified return type
  • ReflectionFunctionAbstract::inNamespace — Checks if function in namespace
  • ReflectionFunctionAbstract::isClosure — Checks if closure
  • ReflectionFunctionAbstract::isDeprecated — Checks if deprecated
  • ReflectionFunctionAbstract::isGenerator — Returns whether this function is a generator
  • ReflectionFunctionAbstract::isInternal — Checks if is internal
  • ReflectionFunctionAbstract::isUserDefined — Checks if user defined
  • ReflectionFunctionAbstract::isVariadic — Checks if the function is variadic
  • ReflectionFunctionAbstract::returnsReference — Checks if returns reference
  • ReflectionFunctionAbstract::__toString — To string


Clones function

  • « ReflectionFunctionAbstract
  • ReflectionFunctionAbstract::getClosureScopeClass »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Clones function

ReflectionFunctionAbstract::__clone

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::__clone — Clones function

Beschreibung

final private ReflectionFunctionAbstract::__clone ( ) : void

Clones a function.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • Object cloning


Returns the scope associated to the closure

  • « ReflectionFunctionAbstract::__clone
  • ReflectionFunctionAbstract::getClosureThis »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns the scope associated to the closure

ReflectionFunctionAbstract::getClosureScopeClass

(PHP 5 >= 5.4.0, PHP 7)

ReflectionFunctionAbstract::getClosureScopeClass — Returns the scope associated to the closure

Beschreibung

public ReflectionFunctionAbstract::getClosureScopeClass ( ) : ReflectionClass|null

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the class on success or null on failure.


Returns this pointer bound to closure

  • « ReflectionFunctionAbstract::getClosureScopeClass
  • ReflectionFunctionAbstract::getDocComment »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns this pointer bound to closure

ReflectionFunctionAbstract::getClosureThis

(PHP 5 >= 5.4.0, PHP 7)

ReflectionFunctionAbstract::getClosureThis — Returns this pointer bound to closure

Beschreibung

public ReflectionFunctionAbstract::getClosureThis ( ) : object|null

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns $this pointer. Returns null in case of an error.


Gets doc comment

  • « ReflectionFunctionAbstract::getClosureThis
  • ReflectionFunctionAbstract::getEndLine »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets doc comment

ReflectionFunctionAbstract::getDocComment

(PHP 5 >= 5.1.0, PHP 7)

ReflectionFunctionAbstract::getDocComment — Gets doc comment

Beschreibung

public ReflectionFunctionAbstract::getDocComment ( ) : string|false

Get a Doc comment from a function.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The doc comment if it exists, otherwise false

Siehe auch

  • ReflectionFunctionAbstract::getStartLine() - Gets starting line number


Gets end line number

  • « ReflectionFunctionAbstract::getDocComment
  • ReflectionFunctionAbstract::getExtension »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets end line number

ReflectionFunctionAbstract::getEndLine

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getEndLine — Gets end line number

Beschreibung

public ReflectionFunctionAbstract::getEndLine ( ) : int|false

Get the ending line number.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The ending line number of the user defined function, or false if unknown.

Siehe auch

  • ReflectionFunctionAbstract::getStartLine() - Gets starting line number


Gets extension info

  • « ReflectionFunctionAbstract::getEndLine
  • ReflectionFunctionAbstract::getExtensionName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets extension info

ReflectionFunctionAbstract::getExtension

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getExtension — Gets extension info

Beschreibung

public ReflectionFunctionAbstract::getExtension ( ) : ReflectionExtension|null

Get the extension information of a function.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The extension information, as a ReflectionExtension object, or null for user-defined functions.

Siehe auch

  • ReflectionFunctionAbstract::getExtensionName() - Gets extension name


Gets extension name

  • « ReflectionFunctionAbstract::getExtension
  • ReflectionFunctionAbstract::getFileName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets extension name

ReflectionFunctionAbstract::getExtensionName

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getExtensionName — Gets extension name

Beschreibung

public ReflectionFunctionAbstract::getExtensionName ( ) : string|false

Get the extensions name.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The name of the extension which defined the function, or false for user-defined functions.

Siehe auch

  • ReflectionFunctionAbstract::getExtension() - Gets extension info


Gets file name

  • « ReflectionFunctionAbstract::getExtensionName
  • ReflectionFunctionAbstract::getName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets file name

ReflectionFunctionAbstract::getFileName

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getFileName — Gets file name

Beschreibung

public ReflectionFunctionAbstract::getFileName ( ) : string|false

Gets the file name from a user-defined function.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the filename of the file in which the function has been defined. If the class is defined in the PHP core or in a PHP extension, false is returned.

Siehe auch

  • ReflectionFunctionAbstract::getNamespaceName() - Gets namespace name


Gets function name

  • « ReflectionFunctionAbstract::getFileName
  • ReflectionFunctionAbstract::getNamespaceName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets function name

ReflectionFunctionAbstract::getName

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getName — Gets function name

Beschreibung

public ReflectionFunctionAbstract::getName ( ) : string

Get the name of the function.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The name of the function.

Siehe auch

  • ReflectionFunctionAbstract::getExtensionName() - Gets extension name
  • ReflectionFunctionAbstract::isUserDefined() - Checks if user defined


Gets namespace name

  • « ReflectionFunctionAbstract::getName
  • ReflectionFunctionAbstract::getNumberOfParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets namespace name

ReflectionFunctionAbstract::getNamespaceName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::getNamespaceName — Gets namespace name

Beschreibung

public ReflectionFunctionAbstract::getNamespaceName ( ) : string

Get the namespace name where the class is defined.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The namespace name.

Siehe auch

  • ReflectionFunctionAbstract::getFileName() - Gets file name
  • namespaces


Gets number of parameters

  • « ReflectionFunctionAbstract::getNamespaceName
  • ReflectionFunctionAbstract::getNumberOfRequiredParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets number of parameters

ReflectionFunctionAbstract::getNumberOfParameters

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::getNumberOfParameters — Gets number of parameters

Beschreibung

public ReflectionFunctionAbstract::getNumberOfParameters ( ) : int

Get the number of parameters that a function defines, both optional and required.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of parameters.

Siehe auch

  • ReflectionFunctionAbstract::getNumberOfRequiredParameters() - Gets number of required parameters
  • func_num_args() - Liefert die Anzahl der an eine Funktion übergebenen Argumente


Gets number of required parameters

  • « ReflectionFunctionAbstract::getNumberOfParameters
  • ReflectionFunctionAbstract::getParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets number of required parameters

ReflectionFunctionAbstract::getNumberOfRequiredParameters

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::getNumberOfRequiredParameters — Gets number of required parameters

Beschreibung

public ReflectionFunctionAbstract::getNumberOfRequiredParameters ( ) : int

Get the number of required parameters that a function defines.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of required parameters.

Siehe auch

  • ReflectionFunctionAbstract::getNumberOfParameters() - Gets number of parameters


Gets parameters

  • « ReflectionFunctionAbstract::getNumberOfRequiredParameters
  • ReflectionFunctionAbstract::getReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets parameters

ReflectionFunctionAbstract::getParameters

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getParameters — Gets parameters

Beschreibung

public ReflectionFunctionAbstract::getParameters ( ) : array

Get the parameters as an array of ReflectionParameter.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The parameters, as a ReflectionParameter object.

Siehe auch

  • ReflectionFunctionAbstract::getNumberOfParameters() - Gets number of parameters
  • func_get_args() - Liefert Funktionsargumente als Array


Gets the specified return type of a function

  • « ReflectionFunctionAbstract::getParameters
  • ReflectionFunctionAbstract::getShortName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets the specified return type of a function

ReflectionFunctionAbstract::getReturnType

(PHP 7)

ReflectionFunctionAbstract::getReturnType — Gets the specified return type of a function

Beschreibung

public ReflectionFunctionAbstract::getReturnType ( ) : ReflectionType|null

Gets the specified return type of a reflected function.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a ReflectionType object if a return type is specified, null otherwise.

Beispiele

Beispiel #1 ReflectionFunctionAbstract::getReturnType() example

<?php

function to_int($param) : int {
    return (int) $param;
}

$reflection1 = new ReflectionFunction('to_int');
echo $reflection1->getReturnType();

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int

Beispiel #2 Usage on built-in functions

<?php

$reflection2 = new ReflectionFunction('array_merge');

var_dump($reflection2->getReturnType());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

null

This is because many internal functions do not have types specified for their parameters or return values. It is therefore best to avoid using this method on built-in functions.

Siehe auch

  • ReflectionFunctionAbstract::hasReturnType() - Checks if the function has a specified return type
  • ReflectionType::__toString() - To string


Gets function short name

  • « ReflectionFunctionAbstract::getReturnType
  • ReflectionFunctionAbstract::getStartLine »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets function short name

ReflectionFunctionAbstract::getShortName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::getShortName — Gets function short name

Beschreibung

public ReflectionFunctionAbstract::getShortName ( ) : string

Get the short name of the function (without the namespace part).

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The short name of the function.

Siehe auch

  • ReflectionFunctionAbstract::getNamespaceName() - Gets namespace name
  • namespaces


Gets starting line number

  • « ReflectionFunctionAbstract::getShortName
  • ReflectionFunctionAbstract::getStaticVariables »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets starting line number

ReflectionFunctionAbstract::getStartLine

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getStartLine — Gets starting line number

Beschreibung

public ReflectionFunctionAbstract::getStartLine ( ) : int|false

Gets the starting line number of the function.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The starting line number, or false if unknown.

Siehe auch

  • ReflectionFunctionAbstract::getEndLine() - Gets end line number


Gets static variables

  • « ReflectionFunctionAbstract::getStartLine
  • ReflectionFunctionAbstract::hasReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets static variables

ReflectionFunctionAbstract::getStaticVariables

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::getStaticVariables — Gets static variables

Beschreibung

public ReflectionFunctionAbstract::getStaticVariables ( ) : array

Get the static variables.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of static variables.

Siehe auch

  • ReflectionFunctionAbstract::getParameters() - Gets parameters


Checks if the function has a specified return type

  • « ReflectionFunctionAbstract::getStaticVariables
  • ReflectionFunctionAbstract::inNamespace »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if the function has a specified return type

ReflectionFunctionAbstract::hasReturnType

(PHP 7)

ReflectionFunctionAbstract::hasReturnType — Checks if the function has a specified return type

Beschreibung

public ReflectionFunctionAbstract::hasReturnType ( ) : bool

Checks whether the reflected function has a return type specified.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the function is a specified return type, otherwise false.

Beispiele

Beispiel #1 ReflectionFunctionAbstract::hasReturnType() example

<?php

function to_int($param) : int {
    return (int) $param;
}

$reflection1 = new ReflectionFunction('to_int');
var_dump($reflection1->hasReturnType());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)

Beispiel #2 Usage on built-in functions

<?php

$reflection2 = new ReflectionFunction('array_merge');

var_dump($reflection2->hasReturnType());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)

This is because many internal functions do not have types specified for their parameters or return values. It is therefore best to avoid using this method on built-in functions.

Siehe auch

  • ReflectionFunctionAbstract::getReturnType() - Gets the specified return type of a function


Checks if function in namespace

  • « ReflectionFunctionAbstract::hasReturnType
  • ReflectionFunctionAbstract::isClosure »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if function in namespace

ReflectionFunctionAbstract::inNamespace

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::inNamespace — Checks if function in namespace

Beschreibung

public ReflectionFunctionAbstract::inNamespace ( ) : bool

Checks whether a function is defined in a namespace.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if it's in a namespace, otherwise false

Siehe auch

  • ReflectionFunctionAbstract::getNamespaceName() - Gets namespace name
  • namespaces


Checks if closure

  • « ReflectionFunctionAbstract::inNamespace
  • ReflectionFunctionAbstract::isDeprecated »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if closure

ReflectionFunctionAbstract::isClosure

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::isClosure — Checks if closure

Beschreibung

public ReflectionFunctionAbstract::isClosure ( ) : bool

Checks whether the reflected function is a Closure.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the function is a Closure, otherwise false.

Beispiele

Beispiel #1 ReflectionFunctionAbstract::isClosure() example

<?php
// Non-closure
$function1 = 'str_replace';
$reflection1 = new ReflectionFunction($function1);
var_dump($reflection1->isClosure());

// Closure
$function2 = function () {};
$reflection2 = new ReflectionFunction($function2);
var_dump($reflection2->isClosure());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)

Siehe auch

  • ReflectionFunctionAbstract::isGenerator() - Returns whether this function is a generator


Checks if deprecated

  • « ReflectionFunctionAbstract::isClosure
  • ReflectionFunctionAbstract::isGenerator »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if deprecated

ReflectionFunctionAbstract::isDeprecated

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::isDeprecated — Checks if deprecated

Beschreibung

public ReflectionFunctionAbstract::isDeprecated ( ) : bool

Checks whether the function is deprecated.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if it's deprecated, otherwise false

Beispiele

Beispiel #1 ReflectionFunctionAbstract::isDeprecated() example

<?php
$rf = new ReflectionFunction('ereg');
var_dump($rf->isDeprecated());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)

Siehe auch

  • ReflectionFunctionAbstract::getDocComment() - Gets doc comment


Returns whether this function is a generator

  • « ReflectionFunctionAbstract::isDeprecated
  • ReflectionFunctionAbstract::isInternal »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns whether this function is a generator

ReflectionFunctionAbstract::isGenerator

(PHP 5 >= 5.5.0, PHP 7)

ReflectionFunctionAbstract::isGenerator — Returns whether this function is a generator

Beschreibung

public ReflectionFunctionAbstract::isGenerator ( ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the function is generator, false if it is not or null on failure.


Checks if is internal

  • « ReflectionFunctionAbstract::isGenerator
  • ReflectionFunctionAbstract::isUserDefined »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if is internal

ReflectionFunctionAbstract::isInternal

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::isInternal — Checks if is internal

Beschreibung

public ReflectionFunctionAbstract::isInternal ( ) : bool

Checks whether the function is internal, as opposed to user-defined.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if it's internal, otherwise false

Siehe auch

  • ReflectionFunctionAbstract::isUserDefined() - Checks if user defined


Checks if user defined

  • « ReflectionFunctionAbstract::isInternal
  • ReflectionFunctionAbstract::isVariadic »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if user defined

ReflectionFunctionAbstract::isUserDefined

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::isUserDefined — Checks if user defined

Beschreibung

public ReflectionFunctionAbstract::isUserDefined ( ) : bool

Checks whether the function is user-defined, as opposed to internal.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if it's user-defined, otherwise false;

Siehe auch

  • ReflectionFunctionAbstract::isInternal() - Checks if is internal


Checks if the function is variadic

  • « ReflectionFunctionAbstract::isUserDefined
  • ReflectionFunctionAbstract::returnsReference »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if the function is variadic

ReflectionFunctionAbstract::isVariadic

(PHP 5 >= 5.6.0, PHP 7)

ReflectionFunctionAbstract::isVariadic — Checks if the function is variadic

Beschreibung

public ReflectionFunctionAbstract::isVariadic ( ) : bool

Checks if the function is variadic.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the function is variadic, otherwise false.


Checks if returns reference

  • « ReflectionFunctionAbstract::isVariadic
  • ReflectionFunctionAbstract::__toString »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Checks if returns reference

ReflectionFunctionAbstract::returnsReference

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::returnsReference — Checks if returns reference

Beschreibung

public ReflectionFunctionAbstract::returnsReference ( ) : bool

Checks whether the function returns a reference.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if it returns a reference, otherwise false

Siehe auch

  • ReflectionFunctionAbstract::isClosure() - Checks if closure


To string

  • « ReflectionFunctionAbstract::returnsReference
  • ReflectionMethod »
  • PHP Manual
  • ReflectionFunctionAbstract
  • To string

ReflectionFunctionAbstract::__toString

(PHP 5 >= 5.2.0, PHP 7)

ReflectionFunctionAbstract::__toString — To string

Beschreibung

abstract public ReflectionFunctionAbstract::__toString ( ) : void

To string.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The string.

Siehe auch

  • ReflectionClass::clone()
  • __toString()


The ReflectionMethod class

(PHP 5, PHP 7)

Einführung

The ReflectionMethod class reports information about a method.

Klassenbeschreibung

ReflectionMethod extends ReflectionFunctionAbstract implements Reflector {
/* Konstanten */
const int IS_STATIC = 1 ;
const int IS_PUBLIC = 256 ;
const int IS_PROTECTED = 512 ;
const int IS_PRIVATE = 1024 ;
const int IS_ABSTRACT = 2 ;
const int IS_FINAL = 4 ;
/* Eigenschaften */
public $name ;
public $class ;
/* Methoden */
public __construct ( object|string $objectOrMethod , string $method )
public __construct ( string $classMethod )
public static export ( string $class , string $name , bool $return = false ) : string
public getClosure ( object|null $object = null ) : Closure
public getDeclaringClass ( ) : ReflectionClass
public getModifiers ( ) : int
public getPrototype ( ) : ReflectionMethod
public invoke ( object|null $object , mixed ...$args ) : mixed
public invokeArgs ( object|null $object , array $args ) : mixed
public isAbstract ( ) : bool
public isConstructor ( ) : bool
public isDestructor ( ) : bool
public isFinal ( ) : bool
public isPrivate ( ) : bool
public isProtected ( ) : bool
public isPublic ( ) : bool
public isStatic ( ) : bool
public setAccessible ( bool $accessible ) : void
public __toString ( ) : string
/* Geerbte Methoden */
final private ReflectionFunctionAbstract::__clone ( ) : void
public ReflectionFunctionAbstract::getClosureScopeClass ( ) : ReflectionClass|null
public ReflectionFunctionAbstract::getClosureThis ( ) : object|null
public ReflectionFunctionAbstract::getDocComment ( ) : string|false
public ReflectionFunctionAbstract::getEndLine ( ) : int|false
public ReflectionFunctionAbstract::getExtension ( ) : ReflectionExtension|null
public ReflectionFunctionAbstract::getExtensionName ( ) : string|false
public ReflectionFunctionAbstract::getFileName ( ) : string|false
public ReflectionFunctionAbstract::getName ( ) : string
public ReflectionFunctionAbstract::getNamespaceName ( ) : string
public ReflectionFunctionAbstract::getNumberOfParameters ( ) : int
public ReflectionFunctionAbstract::getNumberOfRequiredParameters ( ) : int
public ReflectionFunctionAbstract::getParameters ( ) : array
public ReflectionFunctionAbstract::getReturnType ( ) : ReflectionType|null
public ReflectionFunctionAbstract::getShortName ( ) : string
public ReflectionFunctionAbstract::getStartLine ( ) : int|false
public ReflectionFunctionAbstract::getStaticVariables ( ) : array
public ReflectionFunctionAbstract::hasReturnType ( ) : bool
public ReflectionFunctionAbstract::inNamespace ( ) : bool
public ReflectionFunctionAbstract::isClosure ( ) : bool
public ReflectionFunctionAbstract::isDeprecated ( ) : bool
public ReflectionFunctionAbstract::isGenerator ( ) : bool
public ReflectionFunctionAbstract::isInternal ( ) : bool
public ReflectionFunctionAbstract::isUserDefined ( ) : bool
public ReflectionFunctionAbstract::isVariadic ( ) : bool
public ReflectionFunctionAbstract::returnsReference ( ) : bool
abstract public ReflectionFunctionAbstract::__toString ( ) : void
}

Eigenschaften

name

Method name

class

Class name

Vordefinierte Konstanten

ReflectionMethod Modifiers

ReflectionMethod::IS_STATIC

Indicates that the method is static.

ReflectionMethod::IS_PUBLIC

Indicates that the method is public.

ReflectionMethod::IS_PROTECTED

Indicates that the method is protected.

ReflectionMethod::IS_PRIVATE

Indicates that the method is private.

ReflectionMethod::IS_ABSTRACT

Indicates that the method is abstract.

ReflectionMethod::IS_FINAL

Indicates that the method is final.

Inhaltsverzeichnis

  • ReflectionMethod::__construct — Constructs a ReflectionMethod
  • ReflectionMethod::export — Export a reflection method
  • ReflectionMethod::getClosure — Returns a dynamically created closure for the method
  • ReflectionMethod::getDeclaringClass — Gets declaring class for the reflected method
  • ReflectionMethod::getModifiers — Gets the method modifiers
  • ReflectionMethod::getPrototype — Gets the method prototype (if there is one)
  • ReflectionMethod::invoke — Invoke
  • ReflectionMethod::invokeArgs — Invoke args
  • ReflectionMethod::isAbstract — Checks if method is abstract
  • ReflectionMethod::isConstructor — Checks if method is a constructor
  • ReflectionMethod::isDestructor — Checks if method is a destructor
  • ReflectionMethod::isFinal — Checks if method is final
  • ReflectionMethod::isPrivate — Checks if method is private
  • ReflectionMethod::isProtected — Checks if method is protected
  • ReflectionMethod::isPublic — Checks if method is public
  • ReflectionMethod::isStatic — Checks if method is static
  • ReflectionMethod::setAccessible — Set method accessibility
  • ReflectionMethod::__toString — Returns the string representation of the Reflection method object


Constructs a ReflectionMethod

  • « ReflectionMethod
  • ReflectionMethod::export »
  • PHP Manual
  • ReflectionMethod
  • Constructs a ReflectionMethod

ReflectionMethod::__construct

(PHP 5, PHP 7)

ReflectionMethod::__construct — Constructs a ReflectionMethod

Beschreibung

public ReflectionMethod::__construct ( object|string $objectOrMethod , string $method )

Alternative signature (not supported with named arguments):

public ReflectionMethod::__construct ( string $classMethod )

Constructs a new ReflectionMethod.

Parameter-Liste

objectOrMethod

Classname or object (instance of the class) that contains the method.

method

Name of the method.

classMethod

Class name and method name delimited by ::.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

A ReflectionException is thrown if the given method does not exist.

Beispiele

Beispiel #1 ReflectionMethod::__construct() example

<?php
class Counter
{
    private static $c = 0;

    /**
     * Increment counter
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */
    final public static function increment()
    {
        return ++self::$c;
    }
}

// Create an instance of the ReflectionMethod class
$method = new ReflectionMethod('Counter', 'increment');

// Print out basic information
printf(
    "===> The %s%s%s%s%s%s%s method '%s' (which is %s)\n" .
    "     declared in %s\n" .
    "     lines %d to %d\n" .
    "     having the modifiers %d[%s]\n",
        $method->isInternal() ? 'internal' : 'user-defined',
        $method->isAbstract() ? ' abstract' : '',
        $method->isFinal() ? ' final' : '',
        $method->isPublic() ? ' public' : '',
        $method->isPrivate() ? ' private' : '',
        $method->isProtected() ? ' protected' : '',
        $method->isStatic() ? ' static' : '',
        $method->getName(),
        $method->isConstructor() ? 'the constructor' : 'a regular method',
        $method->getFileName(),
        $method->getStartLine(),
        $method->getEndline(),
        $method->getModifiers(),
        implode(' ', Reflection::getModifierNames($method->getModifiers()))
);

// Print documentation comment
printf("---> Documentation:\n %s\n", var_export($method->getDocComment(), true));

// Print static variables if existant
if ($statics= $method->getStaticVariables()) {
    printf("---> Static variables: %s\n", var_export($statics, true));
}

// Invoke the method
printf("---> Invocation results in: ");
var_dump($method->invoke(NULL));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

===> The user-defined final public static method 'increment' (which is a regular method)
     declared in /Users/philip/cvs/phpdoc/test.php
     lines 14 to 17
     having the modifiers 261[final public static]
---> Documentation:
 '/**
     * Increment counter
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */'
---> Invocation results in: int(1)

Siehe auch

  • ReflectionMethod::export() - Export a reflection method
  • Constructors


Export a reflection method

  • « ReflectionMethod::__construct
  • ReflectionMethod::getClosure »
  • PHP Manual
  • ReflectionMethod
  • Export a reflection method

ReflectionMethod::export

(PHP 5, PHP 7)

ReflectionMethod::export — Export a reflection method

Warnung

Diese Funktion ist seit PHP 7.4.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

public static ReflectionMethod::export ( string $class , string $name , bool $return = false ) : string

Exports a ReflectionMethod.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

class

The class name.

name

The name of the method.

return

Wird dies auf true gesetzt, so wird der Export zurückgegeben anstelle ihn auszugeben. Wird dies auf false gesetzt (der Standardwert), wird das Gegenteil passieren.

Rückgabewerte

Falls der Parameter return auf true gesetzt ist, so wird der Export als ein String zurückgegeben, andernfalls wird null zurückgegeben.

Siehe auch

  • ReflectionMethod::__construct() - Constructs a ReflectionMethod
  • ReflectionMethod::__toString() - Returns the string representation of the Reflection method object


Returns a dynamically created closure for the method

  • « ReflectionMethod::export
  • ReflectionMethod::getDeclaringClass »
  • PHP Manual
  • ReflectionMethod
  • Returns a dynamically created closure for the method

ReflectionMethod::getClosure

(PHP 5 >= 5.4.0, PHP 7)

ReflectionMethod::getClosure — Returns a dynamically created closure for the method

Beschreibung

public ReflectionMethod::getClosure ( object|null $object = null ) : Closure

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

object

Forbidden for static methods, required for other methods.

Rückgabewerte

Returns Closure. Returns null in case of an error.

Changelog

Version | Beschreibung
8.0.0 | object is now nullable.


Gets declaring class for the reflected method

  • « ReflectionMethod::getClosure
  • ReflectionMethod::getModifiers »
  • PHP Manual
  • ReflectionMethod
  • Gets declaring class for the reflected method

ReflectionMethod::getDeclaringClass

(PHP 5, PHP 7)

ReflectionMethod::getDeclaringClass — Gets declaring class for the reflected method

Beschreibung

public ReflectionMethod::getDeclaringClass ( ) : ReflectionClass

Gets the declaring class for the reflected method.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A ReflectionClass object of the class that the reflected method is part of.

Beispiele

Beispiel #1 ReflectionMethod::getDeclaringClass() example

<?php
class HelloWorld {

    protected function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod(new HelloWorld(), 'sayHelloTo');
var_dump($reflectionMethod->getDeclaringClass());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(ReflectionClass)#2 (1) {
  ["name"]=>
  string(10) "HelloWorld"
}

Siehe auch

  • ReflectionMethod::isAbstract() - Checks if method is abstract


Gets the method modifiers

  • « ReflectionMethod::getDeclaringClass
  • ReflectionMethod::getPrototype »
  • PHP Manual
  • ReflectionMethod
  • Gets the method modifiers

ReflectionMethod::getModifiers

(PHP 5, PHP 7)

ReflectionMethod::getModifiers — Gets the method modifiers

Beschreibung

public ReflectionMethod::getModifiers ( ) : int

Returns a bitfield of the access modifiers for this method.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A numeric representation of the modifiers. The modifiers are listed below. The actual meanings of these modifiers are described in the predefined constants.

Beispiele

Beispiel #1 ReflectionMethod::getModifiers() example

<?php
class Testing
{
    final public static function foo()
    {
        return;
    }
    public function bar()
    {
        return;
    }
}

$foo = new ReflectionMethod('Testing', 'foo');

echo "Modifiers for method foo():\n";
echo $foo->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($foo->getModifiers())) . "\n";

$bar = new ReflectionMethod('Testing', 'bar');

echo "Modifiers for method bar():\n";
echo $bar->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($bar->getModifiers()));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Modifiers for method foo():
261
final public static
Modifiers for method bar():
65792
public

Siehe auch

  • Reflection::getModifierNames() - Gets modifier names


Gets the method prototype (if there is one)

  • « ReflectionMethod::getModifiers
  • ReflectionMethod::invoke »
  • PHP Manual
  • ReflectionMethod
  • Gets the method prototype (if there is one)

ReflectionMethod::getPrototype

(PHP 5 >= 5.1.2, PHP 7)

ReflectionMethod::getPrototype — Gets the method prototype (if there is one)

Beschreibung

public ReflectionMethod::getPrototype ( ) : ReflectionMethod

Returns the methods prototype.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A ReflectionMethod instance of the method prototype.

Fehler/Exceptions

A ReflectionException exception is thrown if the method does not have a prototype.

Beispiele

Beispiel #1 ReflectionMethod::getPrototype() example

<?php
class Hello {

    public function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}
class HelloWorld extends Hello {

    public function sayHelloTo($name) {
        return 'Hello world: ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
var_dump($reflectionMethod->getPrototype());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(10) "sayHelloTo"
  ["class"]=>
  string(5) "Hello"
}

Siehe auch

  • ReflectionMethod::getModifiers() - Gets the method modifiers


Invoke

  • « ReflectionMethod::getPrototype
  • ReflectionMethod::invokeArgs »
  • PHP Manual
  • ReflectionMethod
  • Invoke

ReflectionMethod::invoke

(PHP 5, PHP 7)

ReflectionMethod::invoke — Invoke

Beschreibung

public ReflectionMethod::invoke ( object|null $object , mixed ...$args ) : mixed

Invokes a reflected method.

Parameter-Liste

object

The object to invoke the method on. For static methods, pass null to this parameter.

args

Zero or more parameters to be passed to the method. It accepts a variable number of parameters which are passed to the method.

Rückgabewerte

Returns the method result.

Fehler/Exceptions

A ReflectionException if the object parameter does not contain an instance of the class that this method was declared in.

A ReflectionException if the method invocation failed.

Beispiele

Beispiel #1 ReflectionMethod::invoke() example

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo $reflectionMethod->invoke(new HelloWorld(), 'Mike');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hello Mike

Anmerkungen

Hinweis:

Wenn die Funktion einige Argumente per Referenz akzeptiert, so müssen diese als Referenzen in die Argument-Liste gegeben werden.

Siehe auch

  • ReflectionMethod::invokeArgs() - Invoke args
  • __invoke()
  • call_user_func() - Aufruf der Callback-Funktion die als erster Parameter übergeben wurde


Invoke args

  • « ReflectionMethod::invoke
  • ReflectionMethod::isAbstract »
  • PHP Manual
  • ReflectionMethod
  • Invoke args

ReflectionMethod::invokeArgs

(PHP 5 >= 5.1.2, PHP 7)

ReflectionMethod::invokeArgs — Invoke args

Beschreibung

public ReflectionMethod::invokeArgs ( object|null $object , array $args ) : mixed

Invokes the reflected method and pass its arguments as array.

Parameter-Liste

object

The object to invoke the method on. In case of static methods, you can pass null to this parameter.

args

The parameters to be passed to the function, as an array.

Rückgabewerte

Returns the method result.

Fehler/Exceptions

A ReflectionException if the object parameter does not contain an instance of the class that this method was declared in.

A ReflectionException if the method invocation failed.

Beispiele

Beispiel #1 ReflectionMethod::invokeArgs() example

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo $reflectionMethod->invokeArgs(new HelloWorld(), array('Mike'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hello Mike

Anmerkungen

Hinweis:

Wenn die Funktion einige Argumente per Referenz akzeptiert, so müssen diese als Referenzen in die Argument-Liste gegeben werden.

Siehe auch

  • ReflectionMethod::invoke() - Invoke
  • __invoke()
  • call_user_func_array() - Call a callback with an array of parameters


Checks if method is abstract

  • « ReflectionMethod::invokeArgs
  • ReflectionMethod::isConstructor »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is abstract

ReflectionMethod::isAbstract

(PHP 5, PHP 7)

ReflectionMethod::isAbstract — Checks if method is abstract

Beschreibung

public ReflectionMethod::isAbstract ( ) : bool

Checks if the method is abstract.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the method is abstract, otherwise false

Siehe auch

  • ReflectionMethod::getDeclaringClass() - Gets declaring class for the reflected method


Checks if method is a constructor

  • « ReflectionMethod::isAbstract
  • ReflectionMethod::isDestructor »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is a constructor

ReflectionMethod::isConstructor

(PHP 5, PHP 7)

ReflectionMethod::isConstructor — Checks if method is a constructor

Beschreibung

public ReflectionMethod::isConstructor ( ) : bool

Checks if the method is a constructor.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the method is a constructor, otherwise false

Siehe auch

  • ReflectionMethod::__construct() - Constructs a ReflectionMethod
  • ReflectionMethod::isAbstract() - Checks if method is abstract
  • ReflectionMethod::isDestructor() - Checks if method is a destructor


Checks if method is a destructor

  • « ReflectionMethod::isConstructor
  • ReflectionMethod::isFinal »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is a destructor

ReflectionMethod::isDestructor

(PHP 5, PHP 7)

ReflectionMethod::isDestructor — Checks if method is a destructor

Beschreibung

public ReflectionMethod::isDestructor ( ) : bool

Checks if the method is a destructor.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the method is a destructor, otherwise false

Siehe auch

  • ReflectionMethod::isConstructor() - Checks if method is a constructor


Checks if method is final

  • « ReflectionMethod::isDestructor
  • ReflectionMethod::isPrivate »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is final

ReflectionMethod::isFinal

(PHP 5, PHP 7)

ReflectionMethod::isFinal — Checks if method is final

Beschreibung

public ReflectionMethod::isFinal ( ) : bool

Checks if the method is final.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the method is final, otherwise false

Siehe auch

  • ReflectionMethod::isStatic() - Checks if method is static


Checks if method is private

  • « ReflectionMethod::isFinal
  • ReflectionMethod::isProtected »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is private

ReflectionMethod::isPrivate

(PHP 5, PHP 7)

ReflectionMethod::isPrivate — Checks if method is private

Beschreibung

public ReflectionMethod::isPrivate ( ) : bool

Checks if the method is private.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the method is private, otherwise false

Siehe auch

  • ReflectionMethod::isPublic() - Checks if method is public


Checks if method is protected

  • « ReflectionMethod::isPrivate
  • ReflectionMethod::isPublic »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is protected

ReflectionMethod::isProtected

(PHP 5, PHP 7)

ReflectionMethod::isProtected — Checks if method is protected

Beschreibung

public ReflectionMethod::isProtected ( ) : bool

Checks if the method is protected.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the method is protected, otherwise false

Siehe auch

  • ReflectionMethod::isPrivate() - Checks if method is private


Checks if method is public

  • « ReflectionMethod::isProtected
  • ReflectionMethod::isStatic »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is public

ReflectionMethod::isPublic

(PHP 5, PHP 7)

ReflectionMethod::isPublic — Checks if method is public

Beschreibung

public ReflectionMethod::isPublic ( ) : bool

Checks if the method is public.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the method is public, otherwise false

Siehe auch

  • ReflectionMethod::isPrivate() - Checks if method is private


Checks if method is static

  • « ReflectionMethod::isPublic
  • ReflectionMethod::setAccessible »
  • PHP Manual
  • ReflectionMethod
  • Checks if method is static

ReflectionMethod::isStatic

(PHP 5, PHP 7)

ReflectionMethod::isStatic — Checks if method is static

Beschreibung

public ReflectionMethod::isStatic ( ) : bool

Checks if the method is static.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the method is static, otherwise false

Siehe auch

  • ReflectionMethod::isFinal() - Checks if method is final


Set method accessibility

  • « ReflectionMethod::isStatic
  • ReflectionMethod::__toString »
  • PHP Manual
  • ReflectionMethod
  • Set method accessibility

ReflectionMethod::setAccessible

(PHP 5 >= 5.3.2, PHP 7)

ReflectionMethod::setAccessible — Set method accessibility

Beschreibung

public ReflectionMethod::setAccessible ( bool $accessible ) : void

Enables invoking of a protected or private method via the ReflectionMethod::invoke() method.

Parameter-Liste

accessible

true to allow accessibility, or false.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Simple Class definition

<?php
class MyClass
{
    private function foo()
    {
        return 'bar';
    }
}

$method = new ReflectionMethod("MyClass", "foo");
$method->setAccessible(true);

$obj = new MyClass();
echo $method->invoke($obj);
echo $obj->foo();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bar
Fatal error: Uncaught Error: Call to private method MyClass::foo() from global scope in /in/qdaZS:16

Siehe auch

  • ReflectionMethod::isPrivate() - Checks if method is private
  • ReflectionMethod::isProtected() - Checks if method is protected


Returns the string representation of the Reflection method object

  • « ReflectionMethod::setAccessible
  • ReflectionNamedType »
  • PHP Manual
  • ReflectionMethod
  • Returns the string representation of the Reflection method object

ReflectionMethod::__toString

(PHP 5, PHP 7)

ReflectionMethod::__toString — Returns the string representation of the Reflection method object

Beschreibung

public ReflectionMethod::__toString ( ) : string

Returns the string representation of the Reflection method object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A string representation of this ReflectionMethod instance.

Beispiele

Beispiel #1 ReflectionMethod::__toString() example

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod(new HelloWorld(), 'sayHelloTo');
echo $reflectionMethod;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Method [ <user> public method sayHelloTo ] {
  @@ /var/www/examples/reflection.php 16 - 18

  - Parameters [1] {
    Parameter #0 [ <required> $name ]
  }
}

Siehe auch

  • ReflectionMethod::export() - Export a reflection method
  • __toString()


The ReflectionNamedType class

(PHP 7 >= 7.1.0)

Einführung

Klassenbeschreibung

ReflectionNamedType extends ReflectionType {
/* Methoden */
public getName ( ) : string
public isBuiltin ( ) : bool
/* Geerbte Methoden */
public ReflectionType::allowsNull ( ) : bool
public ReflectionType::__toString ( ) : string
}

Inhaltsverzeichnis

  • ReflectionNamedType::getName — Get the text of the type hint
  • ReflectionNamedType::isBuiltin — Checks if it is a built-in type


Get the text of the type hint

  • « ReflectionNamedType
  • ReflectionNamedType::isBuiltin »
  • PHP Manual
  • ReflectionNamedType
  • Get the text of the type hint

ReflectionNamedType::getName

(PHP 7 >= 7.1.0)

ReflectionNamedType::getName — Get the text of the type hint

Beschreibung

public ReflectionNamedType::getName ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the text of the type hint.

Siehe auch

  • ReflectionType::__toString() - To string


Checks if it is a built-in type

  • « ReflectionNamedType::getName
  • ReflectionObject »
  • PHP Manual
  • ReflectionNamedType
  • Checks if it is a built-in type

ReflectionNamedType::isBuiltin

(PHP 7)

ReflectionNamedType::isBuiltin — Checks if it is a built-in type

Beschreibung

public ReflectionNamedType::isBuiltin ( ) : bool

Checks if the type is a built-in type in PHP.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if it's a built-in type, otherwise false

Beispiele

Beispiel #1 ReflectionNamedType::isBuiltin() example

<?php
class SomeClass {}

function someFunction(string $param, SomeClass $param2, StdClass $param3) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->getType()->isBuiltin());
var_dump($reflectionParams[1]->getType()->isBuiltin());
var_dump($reflectionParams[2]->getType()->isBuiltin());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(false)

Note that the ReflectionNamedType::isBuiltin() method does not distinguish between internal and custom classes. To make this distinction, the ReflectionClass::isInternal() method should be used on the returned class name.

Siehe auch

  • ReflectionType::allowsNull() - Checks if null is allowed
  • ReflectionType::__toString() - To string
  • ReflectionClass::isInternal() - Checks if class is defined internally by an extension, or the core
  • ReflectionParameter::getType() - Gets a parameter's type


The ReflectionObject class

(PHP 5, PHP 7)

Einführung

The ReflectionObject class reports information about an object.

Klassenbeschreibung

ReflectionObject extends ReflectionClass implements Reflector {
/* Geerbte Konstanten */
const int ReflectionClass::IS_IMPLICIT_ABSTRACT = 16 ;
const int ReflectionClass::IS_EXPLICIT_ABSTRACT = 32 ;
const int ReflectionClass::IS_FINAL = 64 ;
/* Eigenschaften */
public $name ;
/* Methoden */
public __construct ( object $object )
public static export ( string $argument , bool $return = ? ) : string
/* Geerbte Methoden */
public static ReflectionClass::export ( mixed $argument , bool $return = false ) : string
public ReflectionClass::getConstant ( string $name ) : mixed
public ReflectionClass::getConstants ( int|null $filter = null ) : array
public ReflectionClass::getConstructor ( ) : ReflectionMethod|null
public ReflectionClass::getDefaultProperties ( ) : array
public ReflectionClass::getDocComment ( ) : string|false
public ReflectionClass::getEndLine ( ) : int|false
public ReflectionClass::getExtension ( ) : ReflectionExtension|null
public ReflectionClass::getExtensionName ( ) : string|false
public ReflectionClass::getFileName ( ) : string|false
public ReflectionClass::getInterfaceNames ( ) : array
public ReflectionClass::getInterfaces ( ) : array
public ReflectionClass::getMethod ( string $name ) : ReflectionMethod
public ReflectionClass::getMethods ( int|null $filter = null ) : array
public ReflectionClass::getModifiers ( ) : int
public ReflectionClass::getName ( ) : string
public ReflectionClass::getNamespaceName ( ) : string
public ReflectionClass::getParentClass ( ) : ReflectionClass|false
public ReflectionClass::getProperties ( int|null $filter = null ) : array
public ReflectionClass::getProperty ( string $name ) : ReflectionProperty
public ReflectionClass::getReflectionConstant ( string $name ) : ReflectionClassConstant|false
public ReflectionClass::getReflectionConstants ( int|null $filter = null ) : array
public ReflectionClass::getShortName ( ) : string
public ReflectionClass::getStartLine ( ) : int|false
public ReflectionClass::getStaticProperties ( ) : array|null
public ReflectionClass::getStaticPropertyValue ( string $name , mixed &$def_value = ? ) : mixed
public ReflectionClass::getTraitAliases ( ) : array
public ReflectionClass::getTraitNames ( ) : array
public ReflectionClass::getTraits ( ) : array
public ReflectionClass::hasConstant ( string $name ) : bool
public ReflectionClass::hasMethod ( string $name ) : bool
public ReflectionClass::hasProperty ( string $name ) : bool
public ReflectionClass::implementsInterface ( ReflectionClass|string $interface ) : bool
public ReflectionClass::inNamespace ( ) : bool
public ReflectionClass::isAbstract ( ) : bool
public ReflectionClass::isAnonymous ( ) : bool
public ReflectionClass::isCloneable ( ) : bool
public ReflectionClass::isFinal ( ) : bool
public ReflectionClass::isInstance ( object $object ) : bool
public ReflectionClass::isInstantiable ( ) : bool
public ReflectionClass::isInterface ( ) : bool
public ReflectionClass::isInternal ( ) : bool
public ReflectionClass::isIterable ( ) : bool
public ReflectionClass::isSubclassOf ( ReflectionClass|string $class ) : bool
public ReflectionClass::isTrait ( ) : bool
public ReflectionClass::isUserDefined ( ) : bool
public ReflectionClass::newInstance ( mixed ...$args ) : object
public ReflectionClass::newInstanceArgs ( array $args = [] ) : object
public ReflectionClass::newInstanceWithoutConstructor ( ) : object
public ReflectionClass::setStaticPropertyValue ( string $name , mixed $value ) : void
public ReflectionClass::__toString ( ) : string
}

Eigenschaften

name

Name of the object's class. Read-only, throws ReflectionException in attempt to write.

Inhaltsverzeichnis

  • ReflectionObject::__construct — Constructs a ReflectionObject
  • ReflectionObject::export — Export


Constructs a ReflectionObject

  • « ReflectionObject
  • ReflectionObject::export »
  • PHP Manual
  • ReflectionObject
  • Constructs a ReflectionObject

ReflectionObject::__construct

(PHP 5, PHP 7)

ReflectionObject::__construct — Constructs a ReflectionObject

Beschreibung

public ReflectionObject::__construct ( object $object )

Constructs a ReflectionObject.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

object

An object instance.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • ReflectionObject::export() - Export
  • Constructors


Export

  • « ReflectionObject::__construct
  • ReflectionParameter »
  • PHP Manual
  • ReflectionObject
  • Export

ReflectionObject::export

(PHP 5, PHP 7)

ReflectionObject::export — Export

Beschreibung

public static ReflectionObject::export ( string $argument , bool $return = ? ) : string

Exports a reflection.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

argument

Die Reflection, die exportiert werden soll.

return

Wird dies auf true gesetzt, so wird der Export zurückgegeben anstelle ihn auszugeben. Wird dies auf false gesetzt (der Standardwert), wird das Gegenteil passieren.

Rückgabewerte

Falls der Parameter return auf true gesetzt ist, so wird der Export als ein String zurückgegeben, andernfalls wird null zurückgegeben.

Siehe auch

  • ReflectionObject::__construct() - Constructs a ReflectionObject


The ReflectionParameter class

(PHP 5, PHP 7)

Einführung

The ReflectionParameter class retrieves information about function's or method's parameters.

To introspect function parameters, first create an instance of the ReflectionFunction or ReflectionMethod classes and then use their ReflectionFunctionAbstract::getParameters() method to retrieve an array of parameters.

Klassenbeschreibung

ReflectionParameter implements Reflector {
/* Eigenschaften */
public $name ;
/* Methoden */
public __construct ( string|array|object $function , int|string $param )
public allowsNull ( ) : bool
public canBePassedByValue ( ) : bool
final private __clone ( ) : void
public static export ( string $function , string $parameter , bool $return = ? ) : string
public getClass ( ) : ReflectionClass|null
public getDeclaringClass ( ) : ReflectionClass|null
public getDeclaringFunction ( ) : ReflectionFunctionAbstract
public getDefaultValue ( ) : mixed
public getDefaultValueConstantName ( ) : string|null
public getName ( ) : string
public getPosition ( ) : int
public getType ( ) : ReflectionType|null
public hasType ( ) : bool
public isArray ( ) : bool
public isCallable ( ) : bool
public isDefaultValueAvailable ( ) : bool
public isDefaultValueConstant ( ) : bool
public isOptional ( ) : bool
public isPassedByReference ( ) : bool
public isVariadic ( ) : bool
public __toString ( ) : string
}

Eigenschaften

name

Name of the parameter. Read-only, throws ReflectionException in attempt to write.

Inhaltsverzeichnis

  • ReflectionParameter::allowsNull — Checks if null is allowed
  • ReflectionParameter::canBePassedByValue — Returns whether this parameter can be passed by value
  • ReflectionParameter::__clone — Clone
  • ReflectionParameter::__construct — Construct
  • ReflectionParameter::export — Exports
  • ReflectionParameter::getClass — Get the type hinted class
  • ReflectionParameter::getDeclaringClass — Gets declaring class
  • ReflectionParameter::getDeclaringFunction — Gets declaring function
  • ReflectionParameter::getDefaultValue — Gets default parameter value
  • ReflectionParameter::getDefaultValueConstantName — Returns the default value's constant name if default value is constant or null
  • ReflectionParameter::getName — Gets parameter name
  • ReflectionParameter::getPosition — Gets parameter position
  • ReflectionParameter::getType — Gets a parameter's type
  • ReflectionParameter::hasType — Checks if parameter has a type
  • ReflectionParameter::isArray — Checks if parameter expects an array
  • ReflectionParameter::isCallable — Returns whether parameter MUST be callable
  • ReflectionParameter::isDefaultValueAvailable — Checks if a default value is available
  • ReflectionParameter::isDefaultValueConstant — Returns whether the default value of this parameter is a constant
  • ReflectionParameter::isOptional — Checks if optional
  • ReflectionParameter::isPassedByReference — Checks if passed by reference
  • ReflectionParameter::isVariadic — Checks if the parameter is variadic
  • ReflectionParameter::__toString — To string


Checks if null is allowed

  • « ReflectionParameter
  • ReflectionParameter::canBePassedByValue »
  • PHP Manual
  • ReflectionParameter
  • Checks if null is allowed

ReflectionParameter::allowsNull

(PHP 5, PHP 7)

ReflectionParameter::allowsNull — Checks if null is allowed

Beschreibung

public ReflectionParameter::allowsNull ( ) : bool

Checks whether the parameter allows null.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if null is allowed, otherwise false

Siehe auch

  • ReflectionParameter::isOptional() - Checks if optional


Returns whether this parameter can be passed by value

  • « ReflectionParameter::allowsNull
  • ReflectionParameter::__clone »
  • PHP Manual
  • ReflectionParameter
  • Returns whether this parameter can be passed by value

ReflectionParameter::canBePassedByValue

(PHP 5 >= 5.4.0, PHP 7)

ReflectionParameter::canBePassedByValue — Returns whether this parameter can be passed by value

Beschreibung

public ReflectionParameter::canBePassedByValue ( ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the parameter can be passed by value, false otherwise. Returns null in case of an error.


Clone

  • « ReflectionParameter::canBePassedByValue
  • ReflectionParameter::__construct »
  • PHP Manual
  • ReflectionParameter
  • Clone

ReflectionParameter::__clone

(PHP 5, PHP 7)

ReflectionParameter::__clone — Clone

Beschreibung

final private ReflectionParameter::__clone ( ) : void

Clones.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • ReflectionParameter::toString()
  • Object cloning


Construct

  • « ReflectionParameter::__clone
  • ReflectionParameter::export »
  • PHP Manual
  • ReflectionParameter
  • Construct

ReflectionParameter::__construct

(PHP 5, PHP 7)

ReflectionParameter::__construct — Construct

Beschreibung

public ReflectionParameter::__construct ( string|array|object $function , int|string $param )

Constructs a ReflectionParameter instance.

Parameter-Liste

function

The function to reflect parameters from.

param

Either an Integer specifying the position of the parameter (starting with zero), or the parameter name as String.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Using the ReflectionParameter class

<?php
function foo($a, $b, $c) { }
function bar(Exception $a, &$b, $c) { }
function baz(ReflectionFunction $a, $b = 1, $c = null) { }
function abc() { }

$reflect = new ReflectionFunction('foo');

echo $reflect;

foreach ($reflect->getParameters() as $i => $param) {
    printf(
        "-- Parameter #%d: %s {\n".
        "   Class: %s\n".
        "   Allows NULL: %s\n".
        "   Passed to by reference: %s\n".
        "   Is optional?: %s\n".
        "}\n",
        $i, // $param->getPosition() can be used from PHP 5.2.3
        $param->getName(),
        var_export($param->getClass(), 1),
        var_export($param->allowsNull(), 1),
        var_export($param->isPassedByReference(), 1),
        $param->isOptional() ? 'yes' : 'no'
    );
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Function [ <user> function foo ] {
  @@ /Users/philip/cvs/phpdoc/a 2 - 2

  - Parameters [3] {
    Parameter #0 [ <required> $a ]
    Parameter #1 [ <required> $b ]
    Parameter #2 [ <required> $c ]
  }
}
-- Parameter #0: a {
   Class: NULL
   Allows NULL: true
   Passed to by reference: false
   Is optional?: no
}
-- Parameter #1: b {
   Class: NULL
   Allows NULL: true
   Passed to by reference: false
   Is optional?: no
}
-- Parameter #2: c {
   Class: NULL
   Allows NULL: true
   Passed to by reference: false
   Is optional?: no
}

Siehe auch

  • ReflectionFunctionAbstract::getParameters() - Gets parameters
  • ReflectionFunction::__construct() - Constructs a ReflectionFunction object
  • ReflectionMethod::__construct() - Constructs a ReflectionMethod
  • Constructors


Exports

  • « ReflectionParameter::__construct
  • ReflectionParameter::getClass »
  • PHP Manual
  • ReflectionParameter
  • Exports

ReflectionParameter::export

(PHP 5, PHP 7)

ReflectionParameter::export — Exports

Warnung

Diese Funktion ist seit PHP 7.4.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

public static ReflectionParameter::export ( string $function , string $parameter , bool $return = ? ) : string

Exports.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

function

The function name.

parameter

The parameter name.

return

Wird dies auf true gesetzt, so wird der Export zurückgegeben anstelle ihn auszugeben. Wird dies auf false gesetzt (der Standardwert), wird das Gegenteil passieren.

Rückgabewerte

The exported reflection.

Siehe auch

  • ReflectionParameter::__toString() - To string


Get the type hinted class

  • « ReflectionParameter::export
  • ReflectionParameter::getDeclaringClass »
  • PHP Manual
  • ReflectionParameter
  • Get the type hinted class

ReflectionParameter::getClass

(PHP 5, PHP 7)

ReflectionParameter::getClass — Get the type hinted class

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

public ReflectionParameter::getClass ( ) : ReflectionClass|null

Gets the class type hinted for the parameter as a ReflectionClass object.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A ReflectionClass object, or null if no type is declared, or the declared type is not a class or interface.

Beispiele

Beispiel #1 Using the ReflectionParameter class

<?php
function foo(Exception $a) { }

$functionReflection = new ReflectionFunction('foo');
$parameters = $functionReflection->getParameters();
$aParameter = $parameters[0];

echo $aParameter->getClass()->name;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Exception

Siehe auch

  • ReflectionParameter::getDeclaringClass() - Gets declaring class


Gets declaring class

  • « ReflectionParameter::getClass
  • ReflectionParameter::getDeclaringFunction »
  • PHP Manual
  • ReflectionParameter
  • Gets declaring class

ReflectionParameter::getDeclaringClass

(PHP 5 >= 5.1.3, PHP 7)

ReflectionParameter::getDeclaringClass — Gets declaring class

Beschreibung

public ReflectionParameter::getDeclaringClass ( ) : ReflectionClass|null

Gets the declaring class.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A ReflectionClass object or null if called on function.

Beispiele

Beispiel #1 Getting the class that declared the method

<?php
class Foo
{
    public function bar(\DateTime $datetime)
    {
    }
}

class Baz extends Foo
{
}

$param = new \ReflectionParameter(['Baz', 'bar'], 0);

var_dump($param->getDeclaringClass());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(ReflectionClass)#2 (1) {
  ["name"]=>
  string(3) "Foo"
}

Siehe auch

  • ReflectionParameter::getClass() - Get the type hinted class


Gets declaring function

  • « ReflectionParameter::getDeclaringClass
  • ReflectionParameter::getDefaultValue »
  • PHP Manual
  • ReflectionParameter
  • Gets declaring function

ReflectionParameter::getDeclaringFunction

(PHP 5 >= 5.1.3, PHP 7)

ReflectionParameter::getDeclaringFunction — Gets declaring function

Beschreibung

public ReflectionParameter::getDeclaringFunction ( ) : ReflectionFunctionAbstract

Gets the declaring function.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A ReflectionFunction object.

Siehe auch

  • ReflectionParameter::getDeclaringClass() - Gets declaring class


Gets default parameter value

  • « ReflectionParameter::getDeclaringFunction
  • ReflectionParameter::getDefaultValueConstantName »
  • PHP Manual
  • ReflectionParameter
  • Gets default parameter value

ReflectionParameter::getDefaultValue

(PHP 5 >= 5.0.3, PHP 7)

ReflectionParameter::getDefaultValue — Gets default parameter value

Beschreibung

public ReflectionParameter::getDefaultValue ( ) : mixed

Gets the default value of the parameter for any user-defined or internal function or method. If the parameter is not optional a ReflectionException will be thrown.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The parameters default value.

Changelog

Version | Beschreibung
8.0.0 | This method now allows getting the default value of parameters of built-in functions and built-in class methods. Previously, a ReflectionException was thrown.

Beispiele

Beispiel #1 Getting default values of function parameters

<?php
function foo($test, $bar = 'baz')
{
    echo $test . $bar;
}

$function = new ReflectionFunction('foo');

foreach ($function->getParameters() as $param) {
    echo 'Name: ' . $param->getName() . PHP_EOL;
    if ($param->isOptional()) {
        echo 'Default value: ' . $param->getDefaultValue() . PHP_EOL;
    }
    echo PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Name: test

Name: bar
Default value: baz

Siehe auch

  • ReflectionParameter::isOptional() - Checks if optional
  • ReflectionParameter::isDefaultValueAvailable() - Checks if a default value is available
  • ReflectionParameter::getDefaultValueConstantName() - Returns the default value's constant name if default value is constant or null
  • ReflectionParameter::isPassedByReference() - Checks if passed by reference


Returns the default value's constant name if default value is constant or null

  • « ReflectionParameter::getDefaultValue
  • ReflectionParameter::getName »
  • PHP Manual
  • ReflectionParameter
  • Returns the default value's constant name if default value is constant or null

ReflectionParameter::getDefaultValueConstantName

(PHP 5 >= 5.4.6, PHP 7)

ReflectionParameter::getDefaultValueConstantName — Returns the default value's constant name if default value is constant or null

Beschreibung

public ReflectionParameter::getDefaultValueConstantName ( ) : string|null

Returns the default value's constant name of the parameter of any user-defined or internal function or method, if default value is constant or null. If the parameter is not optional a ReflectionException will be thrown.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns string on success or null on failure.

Changelog

Version | Beschreibung
8.0.0 | This method now allows getting the default values' constant names of built-in functions and built-in class methods. Previously, a ReflectionException was thrown.

Beispiele

Beispiel #1 Getting default values' constant names of function parameters

<?php
function foo($test, $bar = PHP_INT_MIN)
{
    echo $test . $bar;
}

$function = new ReflectionFunction('foo');

foreach ($function->getParameters() as $param) {
    echo 'Name: ' . $param->getName() . PHP_EOL;
    if ($param->isOptional()) {
        echo 'Default value: ' . $param->getDefaultValueConstantName() . PHP_EOL;
    }
    echo PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Name: test

Name: bar
Default value: PHP_INT_MIN

Siehe auch

  • ReflectionParameter::isOptional() - Checks if optional
  • ReflectionParameter::isDefaultValueConstant() - Returns whether the default value of this parameter is a constant
  • ReflectionParameter::getDefaultValue() - Gets default parameter value


Gets parameter name

  • « ReflectionParameter::getDefaultValueConstantName
  • ReflectionParameter::getPosition »
  • PHP Manual
  • ReflectionParameter
  • Gets parameter name

ReflectionParameter::getName

(PHP 5, PHP 7)

ReflectionParameter::getName — Gets parameter name

Beschreibung

public ReflectionParameter::getName ( ) : string

Gets the name of the parameter.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The name of the reflected parameter.

Siehe auch

  • ReflectionParameter::getValue()


Gets parameter position

  • « ReflectionParameter::getName
  • ReflectionParameter::getType »
  • PHP Manual
  • ReflectionParameter
  • Gets parameter position

ReflectionParameter::getPosition

(PHP 5 >= 5.1.3, PHP 7)

ReflectionParameter::getPosition — Gets parameter position

Beschreibung

public ReflectionParameter::getPosition ( ) : int

Gets the position of the parameter.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The position of the parameter, left to right, starting at position #0.

Siehe auch

  • ReflectionParameter::getName() - Gets parameter name


Gets a parameter's type

  • « ReflectionParameter::getPosition
  • ReflectionParameter::hasType »
  • PHP Manual
  • ReflectionParameter
  • Gets a parameter's type

ReflectionParameter::getType

(PHP 7)

ReflectionParameter::getType — Gets a parameter's type

Beschreibung

public ReflectionParameter::getType ( ) : ReflectionType|null

Gets the associated type of a parameter.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a ReflectionType object if a parameter type is specified, null otherwise.

Beispiele

Beispiel #1 ReflectionParameter::getType() Usage as of PHP 7.1.0

As of PHP 7.1.0, ReflectionType::__toString() is deprecated, and ReflectionParameter::getType() may return an instance of ReflectionNamedType. To get the name of the parameter type, ReflectionNamedType() is available in this case.

<?php
function someFunction(int $param, $param2) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();

assert($reflectionType1 instanceof ReflectionNamedType);
echo $reflectionType1->getName(), PHP_EOL;
var_dump($reflectionType2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int
NULL

Beispiel #2 ReflectionParameter::getType() Usage before PHP 7.1.0

<?php
function someFunction(int $param, $param2) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();

echo $reflectionType1, PHP_EOL;
var_dump($reflectionType2);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7.0:

int
NULL

Siehe auch

  • ReflectionParameter::hasType() - Checks if parameter has a type
  • ReflectionType::__toString() - To string


Checks if parameter has a type

  • « ReflectionParameter::getType
  • ReflectionParameter::isArray »
  • PHP Manual
  • ReflectionParameter
  • Checks if parameter has a type

ReflectionParameter::hasType

(PHP 7)

ReflectionParameter::hasType — Checks if parameter has a type

Beschreibung

public ReflectionParameter::hasType ( ) : bool

Checks if the parameter has a type associated with it.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if a type is specified, false otherwise.

Beispiele

Beispiel #1 ReflectionParameter::hasType() example

<?php
function someFunction(string $param, $param2 = null) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->hasType());
var_dump($reflectionParams[1]->hasType());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
bool(false)

Siehe auch

  • ReflectionParameter::getType() - Gets a parameter's type


Checks if parameter expects an array

  • « ReflectionParameter::hasType
  • ReflectionParameter::isCallable »
  • PHP Manual
  • ReflectionParameter
  • Checks if parameter expects an array

ReflectionParameter::isArray

(PHP 5 >= 5.1.2, PHP 7)

ReflectionParameter::isArray — Checks if parameter expects an array

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

public ReflectionParameter::isArray ( ) : bool

Checks if the parameter expects an array.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if an array is expected, false otherwise.

Siehe auch

  • ReflectionParameter::isOptional() - Checks if optional


Returns whether parameter MUST be callable

  • « ReflectionParameter::isArray
  • ReflectionParameter::isDefaultValueAvailable »
  • PHP Manual
  • ReflectionParameter
  • Returns whether parameter MUST be callable

ReflectionParameter::isCallable

(PHP 5 >= 5.4.0, PHP 7)

ReflectionParameter::isCallable — Returns whether parameter MUST be callable

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

public ReflectionParameter::isCallable ( ) : bool

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the parameter is callable, false if it is not or null on failure.


Checks if a default value is available

  • « ReflectionParameter::isCallable
  • ReflectionParameter::isDefaultValueConstant »
  • PHP Manual
  • ReflectionParameter
  • Checks if a default value is available

ReflectionParameter::isDefaultValueAvailable

(PHP 5 >= 5.0.3, PHP 7)

ReflectionParameter::isDefaultValueAvailable — Checks if a default value is available

Beschreibung

public ReflectionParameter::isDefaultValueAvailable ( ) : bool

Checks if a default value for the parameter is available.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if a default value is available, otherwise false

Siehe auch

  • ReflectionParameter::getDefaultValue() - Gets default parameter value
  • ReflectionParameter::isDefaultValueConstant() - Returns whether the default value of this parameter is a constant
  • ReflectionParameter::getName() - Gets parameter name


Returns whether the default value of this parameter is a constant

  • « ReflectionParameter::isDefaultValueAvailable
  • ReflectionParameter::isOptional »
  • PHP Manual
  • ReflectionParameter
  • Returns whether the default value of this parameter is a constant

ReflectionParameter::isDefaultValueConstant

(PHP 5 >= 5.4.6, PHP 7)

ReflectionParameter::isDefaultValueConstant — Returns whether the default value of this parameter is a constant

Beschreibung

public ReflectionParameter::isDefaultValueConstant ( ) : bool

Returns whether the default value of this parameter is a constant.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the default value is constant, and false otherwise.

Siehe auch

  • ReflectionParameter::getDefaultValueConstantName() - Returns the default value's constant name if default value is constant or null
  • ReflectionParameter::isDefaultValueAvailable() - Checks if a default value is available


Checks if optional

  • « ReflectionParameter::isDefaultValueConstant
  • ReflectionParameter::isPassedByReference »
  • PHP Manual
  • ReflectionParameter
  • Checks if optional

ReflectionParameter::isOptional

(PHP 5 >= 5.0.3, PHP 7)

ReflectionParameter::isOptional — Checks if optional

Beschreibung

public ReflectionParameter::isOptional ( ) : bool

Checks if the parameter is optional.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the parameter is optional, otherwise false

Siehe auch

  • ReflectionParameter::getName() - Gets parameter name


Checks if passed by reference

  • « ReflectionParameter::isOptional
  • ReflectionParameter::isVariadic »
  • PHP Manual
  • ReflectionParameter
  • Checks if passed by reference

ReflectionParameter::isPassedByReference

(PHP 5, PHP 7)

ReflectionParameter::isPassedByReference — Checks if passed by reference

Beschreibung

public ReflectionParameter::isPassedByReference ( ) : bool

Checks if the parameter is passed in by reference.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the parameter is passed in by reference, otherwise false

Siehe auch

  • ReflectionParameter::getName() - Gets parameter name


Checks if the parameter is variadic

  • « ReflectionParameter::isPassedByReference
  • ReflectionParameter::__toString »
  • PHP Manual
  • ReflectionParameter
  • Checks if the parameter is variadic

ReflectionParameter::isVariadic

(PHP 5 >= 5.6.0, PHP 7)

ReflectionParameter::isVariadic — Checks if the parameter is variadic

Beschreibung

public ReflectionParameter::isVariadic ( ) : bool

Checks if the parameter was declared as a variadic parameter.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the parameter is variadic, otherwise false.


To string

  • « ReflectionParameter::isVariadic
  • ReflectionProperty »
  • PHP Manual
  • ReflectionParameter
  • To string

ReflectionParameter::__toString

(PHP 5, PHP 7)

ReflectionParameter::__toString — To string

Beschreibung

public ReflectionParameter::__toString ( ) : string

To string.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • ReflectionParameter::export() - Exports
  • __toString()


The ReflectionProperty class

(PHP 5, PHP 7)

Einführung

The ReflectionProperty class reports information about class properties.

Klassenbeschreibung

ReflectionProperty implements Reflector {
/* Konstanten */
const int IS_STATIC = 1 ;
const int IS_PUBLIC = 256 ;
const int IS_PROTECTED = 512 ;
const int IS_PRIVATE = 1024 ;
/* Eigenschaften */
public $name ;
public $class ;
/* Methoden */
public __construct ( object|string $class , string $property )
final private __clone ( ) : void
public static export ( mixed $class , string $name , bool $return = ? ) : string
public getDeclaringClass ( ) : ReflectionClass
public getDefaultValue ( ) : mixed
public getDocComment ( ) : string|false
public getModifiers ( ) : int
public getName ( ) : string
public getType ( ) : ReflectionType|null
public getValue ( object|null $object = null ) : mixed
public hasDefaultValue ( ) : bool
public hasType ( ) : bool
public isDefault ( ) : bool
public isInitialized ( object|null $object = null ) : bool
public isPrivate ( ) : bool
public isProtected ( ) : bool
public isPublic ( ) : bool
public isStatic ( ) : bool
public setAccessible ( bool $accessible ) : void
public setValue ( object $object , mixed $value ) : void
public __toString ( ) : string
}

Eigenschaften

name

Name of the property. Read-only, throws ReflectionException in attempt to write.

class

Name of the class where the property is defined. Read-only, throws ReflectionException in attempt to write.

Vordefinierte Konstanten

ReflectionProperty Modifiers

ReflectionProperty::IS_STATIC

Indicates static properties.

ReflectionProperty::IS_PUBLIC

Indicates public properties.

ReflectionProperty::IS_PROTECTED

Indicates protected properties.

ReflectionProperty::IS_PRIVATE

Indicates private properties.

Inhaltsverzeichnis

  • ReflectionProperty::__clone — Clone
  • ReflectionProperty::__construct — Construct a ReflectionProperty object
  • ReflectionProperty::export — Export
  • ReflectionProperty::getDeclaringClass — Gets declaring class
  • ReflectionProperty::getDefaultValue — Returns the default value declared for a property
  • ReflectionProperty::getDocComment — Gets the property doc comment
  • ReflectionProperty::getModifiers — Gets the property modifiers
  • ReflectionProperty::getName — Gets property name
  • ReflectionProperty::getType — Gets a property's type
  • ReflectionProperty::getValue — Gets value
  • ReflectionProperty::hasDefaultValue — Checks if property has a default value declared
  • ReflectionProperty::hasType — Checks if property has a type
  • ReflectionProperty::isDefault — Checks if property is a default property
  • ReflectionProperty::isInitialized — Checks whether a property is initialized
  • ReflectionProperty::isPrivate — Checks if property is private
  • ReflectionProperty::isProtected — Checks if property is protected
  • ReflectionProperty::isPublic — Checks if property is public
  • ReflectionProperty::isStatic — Checks if property is static
  • ReflectionProperty::setAccessible — Set property accessibility
  • ReflectionProperty::setValue — Set property value
  • ReflectionProperty::__toString — To string


Clone

  • « ReflectionProperty
  • ReflectionProperty::__construct »
  • PHP Manual
  • ReflectionProperty
  • Clone

ReflectionProperty::__clone

(PHP 5, PHP 7)

ReflectionProperty::__clone — Clone

Beschreibung

final private ReflectionProperty::__clone ( ) : void

Clones.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • ReflectionProperty::export() - Export
  • Object cloning


Construct a ReflectionProperty object

  • « ReflectionProperty::__clone
  • ReflectionProperty::export »
  • PHP Manual
  • ReflectionProperty
  • Construct a ReflectionProperty object

ReflectionProperty::__construct

(PHP 5, PHP 7)

ReflectionProperty::__construct — Construct a ReflectionProperty object

Beschreibung

public ReflectionProperty::__construct ( object|string $class , string $property )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

class

Either a string containing the name of the class to reflect, or an object.

property

The name of the property being reflected.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Trying to get or set private or protected class property's values will result in an exception being thrown.

Beispiele

Beispiel #1 ReflectionProperty::__construct() example

<?php
class Str
{
    public $length  = 5;
}

// Create an instance of the ReflectionProperty class
$prop = new ReflectionProperty('Str', 'length');

// Print out basic information
printf(
    "===> The%s%s%s%s property '%s' (which was %s)\n" .
    "     having the modifiers %s\n",
        $prop->isPublic() ? ' public' : '',
        $prop->isPrivate() ? ' private' : '',
        $prop->isProtected() ? ' protected' : '',
        $prop->isStatic() ? ' static' : '',
        $prop->getName(),
        $prop->isDefault() ? 'declared at compile-time' : 'created at run-time',
        var_export(Reflection::getModifierNames($prop->getModifiers()), 1)
);

// Create an instance of Str
$obj= new Str();

// Get current value
printf("---> Value is: ");
var_dump($prop->getValue($obj));

// Change value
$prop->setValue($obj, 10);
printf("---> Setting value to 10, new value is: ");
var_dump($prop->getValue($obj));

// Dump object
var_dump($obj);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

===> The public property 'length' (which was declared at compile-time)
     having the modifiers array (
  0 => 'public',
)
---> Value is: int(5)
---> Setting value to 10, new value is: int(10)
object(Str)#2 (1) {
  ["length"]=>
  int(10)
}

Beispiel #2 Getting value from private and protected properties using ReflectionProperty class

<?php

class Foo {
    public $x = 1;
    protected $y = 2;
    private $z = 3;
}

$obj = new Foo;

$prop = new ReflectionProperty('Foo', 'y');
$prop->setAccessible(true); /* As of PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

$prop = new ReflectionProperty('Foo', 'z');
$prop->setAccessible(true); /* As of PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(2)
int(3)

Siehe auch

  • ReflectionProperty::getName() - Gets property name
  • Constructors


Export

  • « ReflectionProperty::__construct
  • ReflectionProperty::getDeclaringClass »
  • PHP Manual
  • ReflectionProperty
  • Export

ReflectionProperty::export

(PHP 5, PHP 7)

ReflectionProperty::export — Export

Beschreibung

public static ReflectionProperty::export ( mixed $class , string $name , bool $return = ? ) : string

Exports a reflection.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

argument

Die Reflection, die exportiert werden soll.

name

The property name.

return

Wird dies auf true gesetzt, so wird der Export zurückgegeben anstelle ihn auszugeben. Wird dies auf false gesetzt (der Standardwert), wird das Gegenteil passieren.

Rückgabewerte

Siehe auch

  • ReflectionProperty::__toString() - To string


Gets declaring class

  • « ReflectionProperty::export
  • ReflectionProperty::getDefaultValue »
  • PHP Manual
  • ReflectionProperty
  • Gets declaring class

ReflectionProperty::getDeclaringClass

(PHP 5, PHP 7)

ReflectionProperty::getDeclaringClass — Gets declaring class

Beschreibung

public ReflectionProperty::getDeclaringClass ( ) : ReflectionClass

Gets the declaring class.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A ReflectionClass object.

Siehe auch

  • ReflectionProperty::getName() - Gets property name


Returns the default value declared for a property

  • « ReflectionProperty::getDeclaringClass
  • ReflectionProperty::getDocComment »
  • PHP Manual
  • ReflectionProperty
  • Returns the default value declared for a property

ReflectionProperty::getDefaultValue

(PHP 8)

ReflectionProperty::getDefaultValue — Returns the default value declared for a property

Beschreibung

public ReflectionProperty::getDefaultValue ( ) : mixed

Gets the implicit or explicitly declared default value for a property.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The default value if the property has any default value (including null). If there is no default value, then null is returned. It is not possible to differentiate between a null default value and an unitialized typed property. Use ReflectionClass::hasDefaultValue() to detect the difference.

Beispiele

Beispiel #1 ReflectionClass::getDefaultValue() example

<?php
class Foo {
    public $bar = 1;
    public ?int $baz;
    public int $boing = 0;
}

$ro = new ReflectionClass(Foo::class);
var_dump($ro->getProperty('bar')->getDefaultValue());
var_dump($ro->getProperty('baz')->getDefaultValue());
var_dump($ro->getProperty('boing')->getDefaultValue());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(1)
NULL
int(0)

Siehe auch

  • ReflectionProperty::hasDefaultValue() - Checks if property has a default value declared


Gets the property doc comment

  • « ReflectionProperty::getDefaultValue
  • ReflectionProperty::getModifiers »
  • PHP Manual
  • ReflectionProperty
  • Gets the property doc comment

ReflectionProperty::getDocComment

(PHP 5 >= 5.1.0, PHP 7)

ReflectionProperty::getDocComment — Gets the property doc comment

Beschreibung

public ReflectionProperty::getDocComment ( ) : string|false

Gets the doc comment for a property.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The doc comment if it exists, otherwise false.

Beispiele

Beispiel #1 ReflectionProperty::getDocComment() example

<?php
class Str
{
    /**
     * @var int  The length of the string
     */
    public $length = 5;
}

$prop = new ReflectionProperty('Str', 'length');

var_dump($prop->getDocComment());

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(53) "/**
     * @var int  The length of the string
     */"

Beispiel #2 Multiple property declarations

If multiple property declarations are preceeded by a single doc comment, the doc comment refers to the first property only.

<?php
class Foo
{
    /** @var string */
    public $a, $b;
}
$class = new \ReflectionClass('Foo');
foreach ($class->getProperties() as $property) {
    echo $property->getName() . ': ' . var_export($property->getDocComment(), true) . PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a: '/** @var string */'
b: false

Siehe auch

  • ReflectionProperty::getModifiers() - Gets the property modifiers
  • ReflectionProperty::getName() - Gets property name
  • ReflectionProperty::getValue() - Gets value


Gets the property modifiers

  • « ReflectionProperty::getDocComment
  • ReflectionProperty::getName »
  • PHP Manual
  • ReflectionProperty
  • Gets the property modifiers

ReflectionProperty::getModifiers

(PHP 5, PHP 7)

ReflectionProperty::getModifiers — Gets the property modifiers

Beschreibung

public ReflectionProperty::getModifiers ( ) : int

Gets the modifiers.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A numeric representation of the modifiers.

Siehe auch

  • ReflectionProperty::isPrivate() - Checks if property is private
  • Reflection::getModifierNames() - Gets modifier names


Gets property name

  • « ReflectionProperty::getModifiers
  • ReflectionProperty::getType »
  • PHP Manual
  • ReflectionProperty
  • Gets property name

ReflectionProperty::getName

(PHP 5, PHP 7)

ReflectionProperty::getName — Gets property name

Beschreibung

public ReflectionProperty::getName ( ) : string

Gets the properties name.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The name of the reflected property.

Siehe auch

  • ReflectionProperty::getValue() - Gets value


Gets a property's type

  • « ReflectionProperty::getName
  • ReflectionProperty::getValue »
  • PHP Manual
  • ReflectionProperty
  • Gets a property's type

ReflectionProperty::getType

(PHP 7 >= 7.4.0)

ReflectionProperty::getType — Gets a property's type

Beschreibung

public ReflectionProperty::getType ( ) : ReflectionType|null

Gets the associated type of a property.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a ReflectionType if the property has a type, and null otherwise.

Beispiele

Beispiel #1 ReflectionProperty::getType() example

<?php
class User
{
    public string $name;
}

$rp = new ReflectionProperty('User', 'name');
echo $rp->getType()->getName();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string

Siehe auch

  • ReflectionProperty::hasType() - Checks if property has a type
  • ReflectionProperty::isInitialized() - Checks whether a property is initialized


Gets value

  • « ReflectionProperty::getType
  • ReflectionProperty::hasDefaultValue »
  • PHP Manual
  • ReflectionProperty
  • Gets value

ReflectionProperty::getValue

(PHP 5, PHP 7)

ReflectionProperty::getValue — Gets value

Beschreibung

public ReflectionProperty::getValue ( object|null $object = null ) : mixed

Gets the property's value.

Parameter-Liste

object

If the property is non-static an object must be provided to fetch the property from. If you want to fetch the default property without providing an object use ReflectionClass::getDefaultProperties() instead.

Rückgabewerte

The current value of the property.

Fehler/Exceptions

Throws a ReflectionException if the property is inaccessible. You can make a protected or private property accessible using ReflectionProperty::setAccessible().

Changelog

Version | Beschreibung
8.0.0 | object is nullable now.

Beispiele

Beispiel #1 ReflectionProperty::getValue() example

<?php
class Foo {
    public static $staticProperty = 'foobar';

    public $property = 'barfoo';
    protected $privateProperty = 'foofoo';
}

$reflectionClass = new ReflectionClass('Foo');

var_dump($reflectionClass->getProperty('staticProperty')->getValue());
var_dump($reflectionClass->getProperty('property')->getValue(new Foo));

$reflectionProperty = $reflectionClass->getProperty('privateProperty');
$reflectionProperty->setAccessible(true);
var_dump($reflectionProperty->getValue(new Foo));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(6) "foobar"
string(6) "barfoo"
string(6) "foofoo"

Siehe auch

  • ReflectionProperty::setValue() - Set property value
  • ReflectionProperty::setAccessible() - Set property accessibility
  • ReflectionClass::getDefaultProperties() - Gets default properties
  • ReflectionClass::getStaticPropertyValue() - Gets static property value


Checks if property has a default value declared

  • « ReflectionProperty::getValue
  • ReflectionProperty::hasType »
  • PHP Manual
  • ReflectionProperty
  • Checks if property has a default value declared

ReflectionProperty::hasDefaultValue

(PHP 8)

ReflectionProperty::hasDefaultValue — Checks if property has a default value declared

Beschreibung

public ReflectionProperty::hasDefaultValue ( ) : bool

Checks whether the property was declared with a default value, including an implicit null default value. Only returns false for typed properties without default value (or dynamic properties).

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

If the property has any default value (including null) true is returned; if the property is typed without a default value declared or is a dynamic property, false is returned.

Beispiele

Beispiel #1 ReflectionClass::hasDefaultValue() example

<?php
class Foo {
    public $bar;
    public ?int $baz;
    public ?int $foo = null;
    public int $boing;

    public function __construct()
    {
        $this->ping = '';
    }
}

$ro = new ReflectionObject(new Foo());
var_dump($ro->getProperty('bar')->hasDefaultValue());
var_dump($ro->getProperty('baz')->hasDefaultValue());
var_dump($ro->getProperty('foo')->hasDefaultValue());
var_dump($ro->getProperty('boing')->hasDefaultValue());
var_dump($ro->getProperty('ping')->hasDefaultValue()); // Dynamic property
var_dump($ro->getProperty('pong')->hasDefaultValue()); // Not defined property
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Fatal error: Uncaught ReflectionException: Property Foo::$pong does not exist in example.php

Siehe auch

  • ReflectionProperty::getDefaultValue() - Returns the default value declared for a property


Checks if property has a type

  • « ReflectionProperty::hasDefaultValue
  • ReflectionProperty::isDefault »
  • PHP Manual
  • ReflectionProperty
  • Checks if property has a type

ReflectionProperty::hasType

(PHP 7 >= 7.4.0)

ReflectionProperty::hasType — Checks if property has a type

Beschreibung

public ReflectionProperty::hasType ( ) : bool

Checks if the property has a type associated with it.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if a type is specified, false otherwise.

Beispiele

Beispiel #1 ReflectionProperty::hasType() example

<?php
class User
{
    public string $name;
}

$rp = new ReflectionProperty('User', 'name');
var_dump($rp->hasType());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)

Siehe auch

  • ReflectionProperty::getType() - Gets a property's type
  • ReflectionProperty::isInitialized() - Checks whether a property is initialized


Checks if property is a default property

  • « ReflectionProperty::hasType
  • ReflectionProperty::isInitialized »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is a default property

ReflectionProperty::isDefault

(PHP 5, PHP 7)

ReflectionProperty::isDefault — Checks if property is a default property

Beschreibung

public ReflectionProperty::isDefault ( ) : bool

Checks whether the property was declared at compile-time, or whether the property was dynamically declared at run-time.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the property was declared at compile-time, or false if it was created at run-time.

Beispiele

Beispiel #1 ReflectionClass::isDefault() example

<?php
class Foo {
    public $bar;
}

$o = new Foo();
$o->bar = 42;
$o->baz = 42;

$ro = new ReflectionObject($o);
var_dump($ro->getProperty('bar')->isDefault());
var_dump($ro->getProperty('baz')->isDefault());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)

Siehe auch

  • ReflectionProperty::getValue() - Gets value


Checks whether a property is initialized

  • « ReflectionProperty::isDefault
  • ReflectionProperty::isPrivate »
  • PHP Manual
  • ReflectionProperty
  • Checks whether a property is initialized

ReflectionProperty::isInitialized

(PHP 7 >= 7.4.0)

ReflectionProperty::isInitialized — Checks whether a property is initialized

Beschreibung

public ReflectionProperty::isInitialized ( object|null $object = null ) : bool

Checks whether a property is initialized.

Parameter-Liste

object

If the property is non-static an object must be provided to fetch the property from.

Rückgabewerte

Returns false for typed properties prior to initialization, and for properties that have been explicitly unset(). For all other properties true will be returned.

Fehler/Exceptions

Throws a ReflectionException if the property is inaccessible. You can make a protected or private property accessible using ReflectionProperty::setAccessible().

Changelog

Version | Beschreibung
8.0.0 | object is nullable now.

Beispiele

Beispiel #1 ReflectionProperty::isInitialized() example

<?php
class User
{
    public string $name;
}

$rp = new ReflectionProperty('User', 'name');
$user = new User;
var_dump($rp->isInitialized($user));
$user->name = 'Nikita';
var_dump($rp->isInitialized($user));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)

Siehe auch

  • ReflectionProperty::hasType() - Checks if property has a type


Checks if property is private

  • « ReflectionProperty::isInitialized
  • ReflectionProperty::isProtected »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is private

ReflectionProperty::isPrivate

(PHP 5, PHP 7)

ReflectionProperty::isPrivate — Checks if property is private

Beschreibung

public ReflectionProperty::isPrivate ( ) : bool

Checks whether the property is private.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the property is private, false otherwise.

Siehe auch

  • ReflectionProperty::isPublic() - Checks if property is public
  • ReflectionProperty::isProtected() - Checks if property is protected
  • ReflectionProperty::isStatic() - Checks if property is static


Checks if property is protected

  • « ReflectionProperty::isPrivate
  • ReflectionProperty::isPublic »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is protected

ReflectionProperty::isProtected

(PHP 5, PHP 7)

ReflectionProperty::isProtected — Checks if property is protected

Beschreibung

public ReflectionProperty::isProtected ( ) : bool

Checks whether the property is protected.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the property is protected, false otherwise.

Siehe auch

  • ReflectionProperty::isPublic() - Checks if property is public
  • ReflectionProperty::isPrivate() - Checks if property is private
  • ReflectionProperty::isStatic() - Checks if property is static


Checks if property is public

  • « ReflectionProperty::isProtected
  • ReflectionProperty::isStatic »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is public

ReflectionProperty::isPublic

(PHP 5, PHP 7)

ReflectionProperty::isPublic — Checks if property is public

Beschreibung

public ReflectionProperty::isPublic ( ) : bool

Checks whether the property is public.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the property is public, false otherwise.

Siehe auch

  • ReflectionProperty::isProtected() - Checks if property is protected
  • ReflectionProperty::isPrivate() - Checks if property is private
  • ReflectionProperty::isStatic() - Checks if property is static


Checks if property is static

  • « ReflectionProperty::isPublic
  • ReflectionProperty::setAccessible »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is static

ReflectionProperty::isStatic

(PHP 5, PHP 7)

ReflectionProperty::isStatic — Checks if property is static

Beschreibung

public ReflectionProperty::isStatic ( ) : bool

Checks whether the property is static.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the property is static, false otherwise.

Siehe auch

  • ReflectionProperty::isPublic() - Checks if property is public
  • ReflectionProperty::isProtected() - Checks if property is protected
  • ReflectionProperty::isPrivate() - Checks if property is private


Set property accessibility

  • « ReflectionProperty::isStatic
  • ReflectionProperty::setValue »
  • PHP Manual
  • ReflectionProperty
  • Set property accessibility

ReflectionProperty::setAccessible

(PHP 5 >= 5.3.0, PHP 7)

ReflectionProperty::setAccessible — Set property accessibility

Beschreibung

public ReflectionProperty::setAccessible ( bool $accessible ) : void

Enables access to a protected or private property via the ReflectionProperty::getValue() and ReflectionProperty::setValue() methods.

Parameter-Liste

accessible

true to allow accessibility, or false.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Simple Class definition

<?php
class MyClass
{
    private $foo = 'bar';
}

$property = new ReflectionProperty("MyClass", "foo");
$property->setAccessible(true);

$obj = new MyClass();
echo $property->getValue($obj);
echo $obj->foo;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bar
Fatal error: Uncaught Error: Cannot access private property MyClass::$foo in /in/WJqTv:12

Siehe auch

  • ReflectionProperty::isPrivate() - Checks if property is private
  • ReflectionProperty::isProtected() - Checks if property is protected


Set property value

  • « ReflectionProperty::setAccessible
  • ReflectionProperty::__toString »
  • PHP Manual
  • ReflectionProperty
  • Set property value

ReflectionProperty::setValue

(PHP 5, PHP 7)

ReflectionProperty::setValue — Set property value

Beschreibung

public ReflectionProperty::setValue ( object $object , mixed $value ) : void
public ReflectionProperty::setValue ( mixed $value ) : void

Sets (changes) the property's value.

Parameter-Liste

object

If the property is non-static an object must be provided to change the property on. If the property is static this parameter is left out and only value needs to be provided.

value

The new value.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Throws a ReflectionException if the property is inaccessible. You can make a protected or private property accessible using ReflectionProperty::setAccessible().

Beispiele

Beispiel #1 ReflectionProperty::setValue() example

<?php
class Foo {
    public static $staticProperty;

    public $property;
    protected $privateProperty;
}

$reflectionClass = new ReflectionClass('Foo');

$reflectionClass->getProperty('staticProperty')->setValue('foo');
var_dump(Foo::$staticProperty);

$foo = new Foo;

$reflectionClass->getProperty('property')->setValue($foo, 'bar');
var_dump($foo->property);

$reflectionProperty = $reflectionClass->getProperty('privateProperty');
$reflectionProperty->setAccessible(true);
$reflectionProperty->setValue($foo, 'foobar');
var_dump($reflectionProperty->getValue($foo));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(3) "foo"
string(3) "bar"
string(6) "foobar"

Siehe auch

  • ReflectionProperty::getValue() - Gets value
  • ReflectionProperty::setAccessible() - Set property accessibility
  • ReflectionClass::setStaticPropertyValue() - Sets static property value


To string

  • « ReflectionProperty::setValue
  • ReflectionType »
  • PHP Manual
  • ReflectionProperty
  • To string

ReflectionProperty::__toString

(PHP 5, PHP 7)

ReflectionProperty::__toString — To string

Beschreibung

public ReflectionProperty::__toString ( ) : string

To string.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • __toString()


The ReflectionType class

(PHP 7)

Einführung

The ReflectionType class reports information about a function's return type.

Klassenbeschreibung

abstract ReflectionType {
/* Methoden */
public allowsNull ( ) : bool
public __toString ( ) : string
}

Changelog

Version | Beschreibung
8.0.0 | ReflectionType has become abstract and ReflectionType::isBuiltin() has been moved to ReflectionNamedType::isBuiltin().

Inhaltsverzeichnis

  • ReflectionType::allowsNull — Checks if null is allowed
  • ReflectionType::__toString — To string


Checks if null is allowed

  • « ReflectionType
  • ReflectionType::__toString »
  • PHP Manual
  • ReflectionType
  • Checks if null is allowed

ReflectionType::allowsNull

(PHP 7)

ReflectionType::allowsNull — Checks if null is allowed

Beschreibung

public ReflectionType::allowsNull ( ) : bool

Checks whether the parameter allows null.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if null is allowed, otherwise false

Beispiele

Beispiel #1 ReflectionType::allowsNull() example

<?php
function someFunction(string $param, StdClass $param2 = null) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->getType()->allowsNull());
var_dump($reflectionParams[1]->getType()->allowsNull());

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)

Siehe auch

  • ReflectionNamedType::isBuiltin() - Checks if it is a built-in type
  • ReflectionType::__toString() - To string
  • ReflectionParameter::getType() - Gets a parameter's type


To string

  • « ReflectionType::allowsNull
  • ReflectionUnionType »
  • PHP Manual
  • ReflectionType
  • To string

ReflectionType::__toString

(PHP 7)

ReflectionType::__toString — To string

Warnung

Diese Funktion ist seit PHP 5.5.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

public ReflectionType::__toString ( ) : string

Gets the parameter type name.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the type of the parameter.

Beispiele

Beispiel #1 ReflectionType::__toString() example

<?php
function someFunction(string $param) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

echo $reflectionParam->getType();

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string

Changelog

Version | Beschreibung
7.1.0 | ReflectionType::__toString() has been deprecated.

Siehe auch

  • ReflectionNamedType::getName() - Get the text of the type hint
  • ReflectionNamedType::isBuiltin() - Checks if it is a built-in type
  • ReflectionType::allowsNull() - Checks if null is allowed
  • ReflectionUnionType::getTypes() - Returns the types included in the union type
  • ReflectionParameter::getType() - Gets a parameter's type


The ReflectionUnionType class

(PHP 8)

Einführung

Klassenbeschreibung

ReflectionUnionType extends ReflectionType {
/* Methoden */
public getTypes ( ) : array
/* Geerbte Methoden */
public ReflectionType::allowsNull ( ) : bool
public ReflectionType::__toString ( ) : string
}

Inhaltsverzeichnis

  • ReflectionUnionType::getTypes — Returns the types included in the union type


Returns the types included in the union type

  • « ReflectionUnionType
  • ReflectionGenerator »
  • PHP Manual
  • ReflectionUnionType
  • Returns the types included in the union type

ReflectionUnionType::getTypes

(PHP 8)

ReflectionUnionType::getTypes — Returns the types included in the union type

Beschreibung

public ReflectionUnionType::getTypes ( ) : array

Returns the reflections of types included in the union type.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of ReflectionType objects.

Beispiele

Beispiel #1 ReflectionUnionType::getTypes() example

<?php
function someFunction(int|float $number) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

var_dump($reflectionParam->getType()->getTypes());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
    [0] =>
    class ReflectionNamedType#4(0) {
    }
    [1] =>
    class ReflectionNamedType#5(0) {
    }
}

Siehe auch

  • ReflectionType::allowsNull() - Checks if null is allowed
  • ReflectionParameter::getType() - Gets a parameter's type


The ReflectionGenerator class

(PHP 7)

Einführung

The ReflectionGenerator class reports information about a generator.

Klassenbeschreibung

ReflectionGenerator {
/* Methoden */
public __construct ( Generator $generator )
public getExecutingFile ( ) : string
public getExecutingGenerator ( ) : Generator
public getExecutingLine ( ) : int
public getFunction ( ) : ReflectionFunctionAbstract
public getThis ( ) : object|null
public getTrace ( int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT ) : array
}

Inhaltsverzeichnis

  • ReflectionGenerator::__construct — Constructs a ReflectionGenerator object
  • ReflectionGenerator::getExecutingFile — Gets the file name of the currently executing generator
  • ReflectionGenerator::getExecutingGenerator — Gets the executing Generator object
  • ReflectionGenerator::getExecutingLine — Gets the currently executing line of the generator
  • ReflectionGenerator::getFunction — Gets the function name of the generator
  • ReflectionGenerator::getThis — Gets the $this value of the generator
  • ReflectionGenerator::getTrace — Gets the trace of the executing generator


Constructs a ReflectionGenerator object

  • « ReflectionGenerator
  • ReflectionGenerator::getExecutingFile »
  • PHP Manual
  • ReflectionGenerator
  • Constructs a ReflectionGenerator object

ReflectionGenerator::__construct

(PHP 7)

ReflectionGenerator::__construct — Constructs a ReflectionGenerator object

Beschreibung

public ReflectionGenerator::__construct ( Generator $generator )

Constructs a ReflectionGenerator object.

Parameter-Liste

generator

A generator object.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 ReflectionGenerator::__construct() example

<?php

function gen()
{
    yield 1;
}

$gen = gen();

$reflectionGen = new ReflectionGenerator($gen);

echo <<< output
{$reflectionGen->getFunction()->name}
Line: {$reflectionGen->getExecutingLine()}
File: {$reflectionGen->getExecutingFile()}
output;

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

gen
Line: 5
File: /path/to/file/example.php

Siehe auch

  • ReflectionGenerator::getFunction() - Gets the function name of the generator
  • ReflectionGenerator::getExecutingLine() - Gets the currently executing line of the generator
  • ReflectionGenerator::getExecutingFile() - Gets the file name of the currently executing generator


Gets the file name of the currently executing generator

  • « ReflectionGenerator::__construct
  • ReflectionGenerator::getExecutingGenerator »
  • PHP Manual
  • ReflectionGenerator
  • Gets the file name of the currently executing generator

ReflectionGenerator::getExecutingFile

(PHP 7)

ReflectionGenerator::getExecutingFile — Gets the file name of the currently executing generator

Beschreibung

public ReflectionGenerator::getExecutingFile ( ) : string

Get the full path and file name of the currently executing generator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the full path and file name of the currently executing generator.

Beispiele

Beispiel #1 ReflectionGenerator::getExecutingFile() example

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

echo "File: {$reflectionGen->getExecutingFile()}";

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

File: /path/to/file/example.php

Siehe auch

  • ReflectionGenerator::getExecutingLine() - Gets the currently executing line of the generator
  • ReflectionGenerator::getExecutingGenerator() - Gets the executing Generator object


Gets the executing Generator object

  • « ReflectionGenerator::getExecutingFile
  • ReflectionGenerator::getExecutingLine »
  • PHP Manual
  • ReflectionGenerator
  • Gets the executing Generator object

ReflectionGenerator::getExecutingGenerator

(PHP 7)

ReflectionGenerator::getExecutingGenerator — Gets the executing Generator object

Beschreibung

public ReflectionGenerator::getExecutingGenerator ( ) : Generator

Get the executing Generator object

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the currently executing Generator object.

Beispiele

Beispiel #1 ReflectionGenerator::getExecutingGenerator() example

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

$gen2 = $reflectionGen->getExecutingGenerator();

var_dump($gen2 === $gen);
var_dump($gen2->current());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

bool(true)
int(1);

Siehe auch

  • ReflectionGenerator::getExecutingLine() - Gets the currently executing line of the generator
  • ReflectionGenerator::getExecutingFile() - Gets the file name of the currently executing generator


Gets the currently executing line of the generator

  • « ReflectionGenerator::getExecutingGenerator
  • ReflectionGenerator::getFunction »
  • PHP Manual
  • ReflectionGenerator
  • Gets the currently executing line of the generator

ReflectionGenerator::getExecutingLine

(PHP 7)

ReflectionGenerator::getExecutingLine — Gets the currently executing line of the generator

Beschreibung

public ReflectionGenerator::getExecutingLine ( ) : int

Get the currently executing line number of the generator.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the line number of the currently executing statement in the generator.

Beispiele

Beispiel #1 ReflectionGenerator::getExecutingLine() example

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

echo "Line: {$reflectionGen->getExecutingLine()}";

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Line: 7

Siehe auch

  • ReflectionGenerator::getExecutingGenerator() - Gets the executing Generator object
  • ReflectionGenerator::getExecutingFile() - Gets the file name of the currently executing generator


Gets the function name of the generator

  • « ReflectionGenerator::getExecutingLine
  • ReflectionGenerator::getThis »
  • PHP Manual
  • ReflectionGenerator
  • Gets the function name of the generator

ReflectionGenerator::getFunction

(PHP 7)

ReflectionGenerator::getFunction — Gets the function name of the generator

Beschreibung

public ReflectionGenerator::getFunction ( ) : ReflectionFunctionAbstract

Enables the function name of the generator to be obtained by returning a class derived from ReflectionFunctionAbstract.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a ReflectionFunctionAbstract class. This will be ReflectionFunction for functions, or ReflectionMethod for methods.

Beispiele

Beispiel #1 ReflectionGenerator::getFunction() example

<?php

function gen()
{
    yield 1;
}

$gen = gen();

$reflectionGen = new ReflectionGenerator($gen);

var_dump($reflectionGen->getFunction());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(ReflectionFunction)#3 (1) {
  ["name"]=>
  string(3) "gen"
}

Siehe auch

  • ReflectionGenerator::getThis() - Gets the $this value of the generator
  • ReflectionGenerator::getTrace() - Gets the trace of the executing generator


Gets the $this value of the generator

  • « ReflectionGenerator::getFunction
  • ReflectionGenerator::getTrace »
  • PHP Manual
  • ReflectionGenerator
  • Gets the $this value of the generator

ReflectionGenerator::getThis

(PHP 7)

ReflectionGenerator::getThis — Gets the $this value of the generator

Beschreibung

public ReflectionGenerator::getThis ( ) : object|null

Get the $this value that the generator has access to.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the $this value, or null if the generator was not created in a class context.

Beispiele

Beispiel #1 ReflectionGenerator::getThis() example

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

var_dump($reflectionGen->getThis());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(GenExample)#3 (0) {
}

Siehe auch

  • ReflectionGenerator::getFunction() - Gets the function name of the generator
  • ReflectionGenerator::getTrace() - Gets the trace of the executing generator


Gets the trace of the executing generator

  • « ReflectionGenerator::getThis
  • ReflectionReference »
  • PHP Manual
  • ReflectionGenerator
  • Gets the trace of the executing generator

ReflectionGenerator::getTrace

(PHP 7)

ReflectionGenerator::getTrace — Gets the trace of the executing generator

Beschreibung

public ReflectionGenerator::getTrace ( int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT ) : array

Get the trace of the currently executing generator.

Parameter-Liste

options

The value of options can be any of the following flags.

Available options
Option | Description
DEBUG_BACKTRACE_PROVIDE_OBJECT | Default.
DEBUG_BACKTRACE_IGNORE_ARGS | Don't include the argument information for functions in the stack trace.

Rückgabewerte

Returns the trace of the currently executing generator.

Beispiele

Beispiel #1 ReflectionGenerator::getTrace() example

<?php
function foo() {
    yield 1;
}

function bar()
{
    yield from foo();
}

function baz()
{
    yield from bar();
}

$gen = baz();
$gen->valid(); // start the generator

var_dump((new ReflectionGenerator($gen))->getTrace());

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(2) {
  [0]=>
  array(4) {
    ["file"]=>
    string(18) "example.php"
    ["line"]=>
    int(8)
    ["function"]=>
    string(3) "foo"
    ["args"]=>
    array(0) {
    }
  }
  [1]=>
  array(4) {
    ["file"]=>
    string(18) "example.php"
    ["line"]=>
    int(12)
    ["function"]=>
    string(3) "bar"
    ["args"]=>
    array(0) {
    }
  }
}

Siehe auch

  • ReflectionGenerator::getFunction() - Gets the function name of the generator
  • ReflectionGenerator::getThis() - Gets the $this value of the generator


The ReflectionReference class

(PHP 7 >= 7.4.0)

Einführung

The ReflectionReference class provides information about a reference.

Klassenbeschreibung

final ReflectionReference {
/* Methoden */
public static fromArrayElement ( array $array , int|string $key ) : ReflectionReference|null
public getId ( ) : string
}

Inhaltsverzeichnis

  • ReflectionReference::fromArrayElement — Create a ReflectionReference from an array element
  • ReflectionReference::getId — Get unique ID of a reference


Create a ReflectionReference from an array element

  • « ReflectionReference
  • ReflectionReference::getId »
  • PHP Manual
  • ReflectionReference
  • Create a ReflectionReference from an array element

ReflectionReference::fromArrayElement

(PHP 7 >= 7.4.0)

ReflectionReference::fromArrayElement — Create a ReflectionReference from an array element

Beschreibung

public static ReflectionReference::fromArrayElement ( array $array , int|string $key ) : ReflectionReference|null

Creates a ReflectionReference from an array element.

Parameter-Liste

array

The Array which contains the potential reference.

key

The key; either an Integer or a String.

Rückgabewerte

Returns a ReflectionReference instance if $array[$key] is a reference, or null otherwise.

Fehler/Exceptions

If array is not an Array, or key is not an Integer or String, a TypeError is thrown. If $array[$key] does not exist, a ReflectionException is thrown.


Get unique ID of a reference

  • « ReflectionReference::fromArrayElement
  • Reflector »
  • PHP Manual
  • ReflectionReference
  • Get unique ID of a reference

ReflectionReference::getId

(PHP 7 >= 7.4.0)

ReflectionReference::getId — Get unique ID of a reference

Beschreibung

public ReflectionReference::getId ( ) : string

Returns an ID which is unique for the reference for the lifetime of that reference. This ID can be used to compare references for equality, or to maintain a map of known references.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a String of unspecified format.

Beispiele

Beispiel #1 Basic ReflectionReference::getId() usage

<?php
$val1 = 'foo';
$val2 = 'bar';
$arr = [&$val1, &$val2, &$val1];

$rr1 = ReflectionReference::fromArrayElement($arr, 0);
$rr2 = ReflectionReference::fromArrayElement($arr, 1);
$rr3 = ReflectionReference::fromArrayElement($arr, 2);

var_dump($rr1->getId() === $rr2->getId());
var_dump($rr1->getId() === $rr3->getId());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(true)


The Reflector interface

(PHP 5, PHP 7)

Einführung

Reflector is an interface implemented by all exportable Reflection classes.

Klassenbeschreibung

Reflector {
/* Methoden */
public static export ( ) : string
public __toString ( ) : string
}

Inhaltsverzeichnis

  • Reflector::export — Exports
  • Reflector::__toString — To string


Exports

  • « Reflector
  • Reflector::__toString »
  • PHP Manual
  • Reflector
  • Exports

Reflector::export

(PHP 5, PHP 7)

Reflector::export — Exports

Warnung

Diese Funktion ist seit PHP 7.4.0 als DEPRECATED (veraltet) markiert. Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

Beschreibung

public static Reflector::export ( ) : string

Exports.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • Reflection::__toString()


To string

  • « Reflector::export
  • ReflectionException »
  • PHP Manual
  • Reflector
  • To string

Reflector::__toString

(PHP 5, PHP 7)

Reflector::__toString — To string

Beschreibung

public Reflector::__toString ( ) : string

To string.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Siehe auch

  • ReflectionProperty::export() - Export
  • __toString()


The ReflectionException class

(PHP 5, PHP 7)

Einführung

The ReflectionException class.

Klassenbeschreibung

ReflectionException extends Exception {
/* Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


Variablenbehandlung

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Funktionen zur Behandlung von Variablen
    • boolval — Get the boolean value of a variable
    • debug_zval_dump — Dumps a string representation of an internal zend value to output
    • doubleval — Alias von floatval
    • empty — Prüft, ob eine Variable einen Wert enthält
    • floatval — Konvertiert einen Wert nach float
    • get_defined_vars — Gibt ein Array aller definierten Variablen zurück
    • get_resource_id — Returns an integer identifier for the given resource
    • get_resource_type — Liefert den Typ einer Ressource
    • gettype — Liefert den Datentyp einer Variablen
    • intval — Konvertiert einen Wert nach integer
    • is_array — Prüft, ob die Variable ein Array ist
    • is_bool — Prüft, ob eine Variable vom Typ boolean ist
    • is_callable — Prüft, ob der Inhalt einer Variable als Funktion aufgerufen werden kann
    • is_countable — Verify that the contents of a variable is a countable value
    • is_double — Alias von is_float
    • is_float — Prüft, ob eine Variable vom Typ float ist
    • is_int — Prüft, ob eine Variable vom Typ int ist
    • is_integer — Alias von is_int
    • is_iterable — Verify that the contents of a variable is an iterable value
    • is_long — Alias von is_int
    • is_null — Prüft, ob eine Variable null enthält
    • is_numeric — Prüft, ob eine Variable eine Zahl oder ein numerischer String ist
    • is_object — Prüft, ob eine Variable vom Typ object ist
    • is_real — Alias von is_float
    • is_resource — Prüft, ob eine Variable vom Typ resource ist
    • is_scalar — Prüft, ob eine Variable skalar ist
    • is_string — Prüft, ob Variable vom Typ string ist
    • isset — Prüft, ob eine Variable deklariert ist und sich von null unterscheidet
    • print_r — Gibt Variablen-Informationen in lesbarer Form aus
    • serialize — Erzeugt eine speicherbare Repräsentation eines Wertes
    • settype — Legt den Typ einer Variablen fest
    • strval — Ermittelt die String-Repräsentation einer Variable
    • unserialize — Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
    • unset — Löschen einer angegebenen Variablen
    • var_dump — Gibt alle Informationen zu einer Variablen aus
    • var_export — Liefert den Inhalt einer Variablen als parsbaren PHP-Code


Einführung

Wie sich Variablen verhalten, können Sie im Abschnitt über Variablen in der Sprachreferenz des Handbuchs nachlesen.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Konfigurations-Optionen für Variablen
Name | Standard | Veränderbar | Changelog
unserialize_callback_func | null | PHP_INI_ALL |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

> unserialize_callback_func string

Die unserialize() Callback-Funktion wird (mit dem Namen der undefinierten Klasse als Parameter) aufgerufen, wenn die Deserialisierungsroutine eine undefinierte Klasse findet, die instanziiert werden soll. Es wird eine Warnung ausgegeben, wenn die angegebene Funktion nicht definiert ist oder die Funktion die fehlende Klasse nicht einbinden/implementieren kann. Setzen Sie diesen Wert daher nur, wenn Sie wirklich eine entsprechende Callback-Funktion implementieren wollen.

Siehe auch unserialize() und Autoloading Objects.


  • « Ressource-Typen
  • Funktionen zur Behandlung von Variablen »
  • PHP Manual
  • Variablenbehandlung
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Funktionen zur Behandlung von Variablen

Inhaltsverzeichnis

  • boolval — Get the boolean value of a variable
  • debug_zval_dump — Dumps a string representation of an internal zend value to output
  • doubleval — Alias von floatval
  • empty — Prüft, ob eine Variable einen Wert enthält
  • floatval — Konvertiert einen Wert nach float
  • get_defined_vars — Gibt ein Array aller definierten Variablen zurück
  • get_resource_id — Returns an integer identifier for the given resource
  • get_resource_type — Liefert den Typ einer Ressource
  • gettype — Liefert den Datentyp einer Variablen
  • intval — Konvertiert einen Wert nach integer
  • is_array — Prüft, ob die Variable ein Array ist
  • is_bool — Prüft, ob eine Variable vom Typ boolean ist
  • is_callable — Prüft, ob der Inhalt einer Variable als Funktion aufgerufen werden kann
  • is_countable — Verify that the contents of a variable is a countable value
  • is_double — Alias von is_float
  • is_float — Prüft, ob eine Variable vom Typ float ist
  • is_int — Prüft, ob eine Variable vom Typ int ist
  • is_integer — Alias von is_int
  • is_iterable — Verify that the contents of a variable is an iterable value
  • is_long — Alias von is_int
  • is_null — Prüft, ob eine Variable null enthält
  • is_numeric — Prüft, ob eine Variable eine Zahl oder ein numerischer String ist
  • is_object — Prüft, ob eine Variable vom Typ object ist
  • is_real — Alias von is_float
  • is_resource — Prüft, ob eine Variable vom Typ resource ist
  • is_scalar — Prüft, ob eine Variable skalar ist
  • is_string — Prüft, ob Variable vom Typ string ist
  • isset — Prüft, ob eine Variable deklariert ist und sich von null unterscheidet
  • print_r — Gibt Variablen-Informationen in lesbarer Form aus
  • serialize — Erzeugt eine speicherbare Repräsentation eines Wertes
  • settype — Legt den Typ einer Variablen fest
  • strval — Ermittelt die String-Repräsentation einer Variable
  • unserialize — Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • unset — Löschen einer angegebenen Variablen
  • var_dump — Gibt alle Informationen zu einer Variablen aus
  • var_export — Liefert den Inhalt einer Variablen als parsbaren PHP-Code


Get the boolean value of a variable

  • « Funktionen zur Behandlung von Variablen
  • debug_zval_dump »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Get the boolean value of a variable

boolval

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

boolval — Get the boolean value of a variable

Beschreibung

boolval ( mixed $value ) : bool

Returns the bool value of value.

Parameter-Liste

value

The scalar value being converted to a bool.

Rückgabewerte

The bool value of value.

Beispiele

Beispiel #1 boolval() examples

<?php
echo '0:        '.(boolval(0) ? 'true' : 'false')."\n";
echo '42:       '.(boolval(42) ? 'true' : 'false')."\n";
echo '0.0:      '.(boolval(0.0) ? 'true' : 'false')."\n";
echo '4.2:      '.(boolval(4.2) ? 'true' : 'false')."\n";
echo '"":       '.(boolval("") ? 'true' : 'false')."\n";
echo '"string": '.(boolval("string") ? 'true' : 'false')."\n";
echo '"0":      '.(boolval("0") ? 'true' : 'false')."\n";
echo '"1":      '.(boolval("1") ? 'true' : 'false')."\n";
echo '[1, 2]:   '.(boolval([1, 2]) ? 'true' : 'false')."\n";
echo '[]:       '.(boolval([]) ? 'true' : 'false')."\n";
echo 'stdClass: '.(boolval(new stdClass) ? 'true' : 'false')."\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

0:        false
42:       true
0.0:      false
4.2:      true
"":       false
"string": true
"0":      false
"1":      true
[1, 2]:   true
[]:       false
stdClass: true

Siehe auch

  • floatval() - Konvertiert einen Wert nach float
  • intval() - Konvertiert einen Wert nach integer
  • strval() - Ermittelt die String-Repräsentation einer Variable
  • settype() - Legt den Typ einer Variablen fest
  • is_bool() - Prüft, ob eine Variable vom Typ boolean ist
  • Type juggling


Dumps a string representation of an internal zend value to output

  • « boolval
  • doubleval »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Dumps a string representation of an internal zend value to output

debug_zval_dump

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

debug_zval_dump — Dumps a string representation of an internal zend value to output

Beschreibung

debug_zval_dump ( mixed $value , mixed ...$values ) : void

Dumps a string representation of an internal zend value to output.

Parameter-Liste

value

The variable to dump.

values

Further variables to dump.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 debug_zval_dump() example

<?php
$var1 = 'Hello World';
$var2 = '';

$var2 =& $var1;

debug_zval_dump(&$var1);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

&string(11) "Hello World" refcount(3)

Hinweis: Beware the refcount

The refcount value returned by this function is non-obvious in certain circumstances. For example, a developer might expect the above example to indicate a refcount of 2. The third reference is created when actually calling debug_zval_dump().

This behavior is further compounded when a variable is not passed to debug_zval_dump() by reference. To illustrate, consider a slightly modified version of the above example:

<?php
$var1 = 'Hello World';
$var2 = '';

$var2 =& $var1;

debug_zval_dump($var1); // not passed by reference, this time
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(11) "Hello World" refcount(1)

Why refcount(1)? Because a copy of $var1 is being made, when the function is called.

This function becomes even more confusing when a variable with a refcount of 1 is passed (by copy/value):

<?php
$var1 = 'Hello World';

debug_zval_dump($var1);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(11) "Hello World" refcount(2)

A refcount of 2, here, is extremely non-obvious. Especially considering the above examples. So what's happening?

When a variable has a single reference (as did $var1 before it was used as an argument to debug_zval_dump()), PHP's engine optimizes the manner in which it is passed to a function. Internally, PHP treats $var1 like a reference (in that the refcount is increased for the scope of this function), with the caveat that if the passed reference happens to be written to, a copy is made, but only at the moment of writing. This is known as "copy on write."

So, if debug_zval_dump() happened to write to its sole parameter (and it doesn't), then a copy would be made. Until then, the parameter remains a reference, causing the refcount to be incremented to 2 for the scope of the function call.

Siehe auch

  • var_dump() - Gibt alle Informationen zu einer Variablen aus
  • debug_backtrace() - Erzeugt Daten zur Ablaufverfolgung
  • References Explained
  • » References Explained (by Derick Rethans)


Alias von floatval

  • « debug_zval_dump
  • empty »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Alias von floatval

doubleval

(PHP 4, PHP 5, PHP 7, PHP 8)

doubleval — Alias von floatval()

Beschreibung

Diese Funktion ist ein Alias für: floatval().


Prüft, ob eine Variable einen Wert enthält

  • « doubleval
  • floatval »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob eine Variable einen Wert enthält

empty

(PHP 4, PHP 5, PHP 7, PHP 8)

empty — Prüft, ob eine Variable einen Wert enthält

Beschreibung

empty ( mixed $var ) : bool

Prüft, ob eine Variable leer ist. Eine Variable ist leer, wenn sie nicht existiert oder wenn ihr Wert gleich false ist. empty() erzeugt keine Warnung, wenn die Variable nicht existiert.

Parameter-Liste

var

Die zu prüfende Variable.

Hinweis:

Vor PHP 5.5 überprüft empty() nur Variablen, alles andere führt zu einem Parse-Error. Anders gesagt wird folgendes nicht funktionieren: empty(trim($name)). Statt dessen sollte trim($name) == false verwendet werden.

Es wird keine Warnung erzeugt, wenn die Variable nicht existiert. Das bedeutet, dass empty() im Wesentlichen das kurzgefasste Äquivalent zu !isset($var) || $var == false ist.

Rückgabewerte

Gibt false zurück, wenn var existiert und einen nichtleeren Wert hat, der nicht null ist, auch bekannt als "falsey". Siehe Converting to boolean. Andernfalls wird true zurückgegeben.

Beispiele

Beispiel #1 Ein einfacher Vergleich von empty() / isset()

<?php
$var = 0;

// true, weil $var leer ist
if (empty($var)) {
    echo '$var ist 0, nicht mit einem Wert belegt, oder nicht gesetzt';
}

// true, weil $var gesetzt wurde
if (isset($var)) {
    echo '$var ist gesetzt, obwohl es leer ist';
}
?>

Beispiel #2 empty() und Zeichenketten-Offsets

PHP 5.4 ändert das Verhalten von empty(), wenn Zeichenketten-Offsets übergeben werden.

<?php
$expected_array_got_string = 'einstring';
var_dump(empty($expected_array_got_string['ein_schluessel']));
var_dump(empty($expected_array_got_string[0]));
var_dump(empty($expected_array_got_string['0']));
var_dump(empty($expected_array_got_string[0.5]));
var_dump(empty($expected_array_got_string['0.5']));
var_dump(empty($expected_array_got_string['0 Mostel']));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.3:

bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.4:

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)

Anmerkungen

Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen verwenden.

Hinweis:

Bei Aufruf von empty() auf nicht öffentliche Objekteigenschaften wird die überladene Methode __isset aufgerufen, falls deklariert.

Siehe auch

  • isset() - Prüft, ob eine Variable deklariert ist und sich von null unterscheidet
  • __isset
  • unset() - Löschen einer angegebenen Variablen
  • array_key_exists() - Prüft, ob ein Schlüssel in einem Array existiert
  • count() - Zählt alle Elemente eines Arrays oder etwas in einem Objekt
  • strlen() - Ermitteln der String-Länge
  • die Tabelle zum Typenvergleich


Konvertiert einen Wert nach float

  • « empty
  • get_defined_vars »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Konvertiert einen Wert nach float

floatval

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

floatval — Konvertiert einen Wert nach float

Beschreibung

floatval ( mixed $value ) : float

Konvertiert value nach float.

Parameter-Liste

value

Kann jeder skalare Typ sein. floatval() sollte nicht auf Objekte angewandt werden, da dies eine Meldung vom Typ E_NOTICE erzeugt und den Wert 1 liefert.

Rückgabewerte

Der float-Wert der übergebenen Variable. Leere Arrays geben immer den Wert 0 zurück, nichtleere Arrays den Wert 1.

Zeichenketten geben aller Voraussicht nach 0 zurück, obwohl das von den ersten Zeichen der Zeichenkette abhängt. Es gelten die allgemeinen Regeln der Float-Umwandlung.

Beispiele

Beispiel #1 floatval()-Beispiel

<?php
$var = '122.34343The';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 122.34343
?>

Beispiel #2 floatval() nichtnumerische Anfangszeichen Beispiel

<?php
$var = 'Die122.34343';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 0
?>

Siehe auch

  • boolval() - Get the boolean value of a variable
  • intval() - Konvertiert einen Wert nach integer
  • strval() - Ermittelt die String-Repräsentation einer Variable
  • settype() - Legt den Typ einer Variablen fest
  • Typen-Tricks


Gibt ein Array aller definierten Variablen zurück

  • « floatval
  • get_resource_id »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Gibt ein Array aller definierten Variablen zurück

get_defined_vars

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

get_defined_vars — Gibt ein Array aller definierten Variablen zurück

Beschreibung

get_defined_vars ( ) : array

Diese Funktion gibt ein mehrdimensionales Array mit einer Liste aller definierten Variablen, seien sie aus der Umgebung, Server-Variablen oder benutzerdefiniert, innerhalb des Zugriffsbereichs, in dem get_defined_vars() aufgerufen wird, zurück.

Rückgabewerte

Ein mehrdimensionales Array mit allen Variablen.

Beispiele

Beispiel #1 get_defined_vars()-Beispiel

<?php
$b = array(1, 1, 2, 3, 5, 8);

$arr = get_defined_vars();

// $b ausgeben
print_r($arr["b"]);

/* Pfad zum PHP-Interpreter ausgeben (wenn als CGI benutzt)
 * z.B. /usr/local/bin/php */
echo $arr["_"];

// eventuelle Kommandozeilenparameter ausgegeben
print_r($arr["argv"]);

// alle Server-Variablen ausgeben
print_r($arr["_SERVER"]);

// alle verfügbaren Schlüssel der Arrays von Variablen ausgeben
print_r(array_keys(get_defined_vars()));
?>

Siehe auch

  • isset() - Prüft, ob eine Variable deklariert ist und sich von null unterscheidet
  • get_defined_functions() - Liefert ein Array aller definierten Funktionen
  • get_defined_constants() - Returns an associative array with the names of all the constants and their values


Returns an integer identifier for the given resource

  • « get_defined_vars
  • get_resource_type »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Returns an integer identifier for the given resource

get_resource_id

(PHP 8)

get_resource_id — Returns an integer identifier for the given resource

Beschreibung

get_resource_id ( resource $res ) : int

This function provides a type-safe way for generating the integer identifier for a resource.

Parameter-Liste

res

The evaluated resource handle.

Rückgabewerte

The int identifier for the given res.

This function is essentially an int cast of res to make it easier to retrieve the resource ID.

Beispiele

Beispiel #1 get_resource_id() example

<?php
$handle = fopen('./storage/logs/lumen.log', 'rt');

echo (int) $handle . "\n\n";

echo get_resource_id($handle);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

698

698

Siehe auch

  • get_resource_type() - Liefert den Typ einer Ressource


Liefert den Typ einer Ressource

  • « get_resource_id
  • gettype »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Liefert den Typ einer Ressource

get_resource_type

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

get_resource_type — Liefert den Typ einer Ressource

Beschreibung

get_resource_type ( resource $handle ) : string

Diese Funktion gibt den Typ der angegebenen Ressource zurück.

Parameter-Liste

handle

Das auszuwertende Ressourcen-Handle.

Rückgabewerte

Ist der Parameter handle eine Ressource, so gibt die Funktion eine textuelle Darstellung des Ressource-Typen zurück. Kann der Typ nicht von dieser Funktion ermittelt werden, so wird der String Unknown zurückgegeben.

Die Funktion gibt null zurück und erzeugt eine Fehlermeldung, wenn handle nicht vom Typ resource ist.

Beispiele

Beispiel #1 get_resource_type()-Beispiel

<?php
// Ergebnis: stream
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// Ergebnis: curl
$c = curl_init();
echo get_resource_type($c) . "\n"; // funktioniert vor PHP 8.0.0, da curl_init()
                                   // seit 8.0 ein CurlHandle-Objekt zurückgibt
?>

Siehe auch

  • get_resource_id() - Returns an integer identifier for the given resource


Liefert den Datentyp einer Variablen

  • « get_resource_type
  • intval »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Liefert den Datentyp einer Variablen

gettype

(PHP 4, PHP 5, PHP 7, PHP 8)

gettype — Liefert den Datentyp einer Variablen

Beschreibung

gettype ( mixed $value ) : string

Liefert den Datentyp der Variablen value. Zur Typprüfung sollten die is_* Funktionen verwendet werden.

Parameter-Liste

value

Die Variable, deren Typ ermittelt werden soll.

Rückgabewerte

Mögliche Werte der zurückgegebenen Zeichenkette sind:

  • "boolean"
  • "integer"
  • "double" (aus historischen Gründen wird "double" im Fall eines float zurückgegeben, und nicht einfach float.
  • "string"
  • "array"
  • "object"
  • "resource"
  • "resource (closed)" von PHP 7.2.0 an.
  • "NULL"
  • "unknown type"

Beispiele

Beispiel #1 gettype()-Beispiel

<?php

$data = array(1, 1., NULL, new stdClass, 'foo');

foreach ($data as $value) {
    echo gettype($value), "\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

integer
double
NULL
object
string

Changelog

Version | Beschreibung
7.2.0 | Geschlossene Ressourcen werden nun als 'resource (closed)' gemeldet. Zuvor war der Rückgabewert für geschlossene Ressourcen 'unknown type'.

Siehe auch

  • settype() - Legt den Typ einer Variablen fest
  • get_class() - Ermittelt den Klassennamen eines Objekts
  • is_array() - Prüft, ob die Variable ein Array ist
  • is_bool() - Prüft, ob eine Variable vom Typ boolean ist
  • is_callable() - Prüft, ob der Inhalt einer Variable als Funktion aufgerufen werden kann
  • is_float() - Prüft, ob eine Variable vom Typ float ist
  • is_int() - Prüft, ob eine Variable vom Typ int ist
  • is_null() - Prüft, ob eine Variable null enthält
  • is_numeric() - Prüft, ob eine Variable eine Zahl oder ein numerischer String ist
  • is_object() - Prüft, ob eine Variable vom Typ object ist
  • is_resource() - Prüft, ob eine Variable vom Typ resource ist
  • is_scalar() - Prüft, ob eine Variable skalar ist
  • is_string() - Prüft, ob Variable vom Typ string ist
  • function_exists() - Falls die angegebene Funktion definiert ist, wird true zurück gegeben
  • method_exists() - Prüft ob eine Methode innerhalb eines Objekts existiert


Konvertiert einen Wert nach integer

  • « gettype
  • is_array »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Konvertiert einen Wert nach integer

intval

(PHP 4, PHP 5, PHP 7, PHP 8)

intval — Konvertiert einen Wert nach integer

Beschreibung

intval ( mixed $value , int $base = 10 ) : int

Liefert den integer-Wert von value unter Benutzung der angegebenen Basis (Standardwert ist base=10). intval() sollte nicht auf Objekte angewandt werden, da dies eine Meldung vom Typ E_NOTICE erzeugt und den Wert 1 zurückgibt.

Parameter-Liste

value

Der skalare Wert (das kann ein Ausdruck oder eine einfache Variable sein, nicht jedoch ein Array oder Objekt.), der nach integer konvertiert werden soll.

base

Die Basis der Konvertierung

Hinweis:

Wenn base 0 ist, wird die verwendete Basis durch das Format von value bestimmt:

  • wenn die Zeichenkette ein "0x" (oder "0X") Präfix enthält, ist die Basis 16 (hexadezimal); andernfalls,
  • wenn die Zeichenkette mit "0" beginnt, ist die Basis 8 (oktal); andernfalls,
  • ist die Basis 10 (dezimal).

Rückgabewerte

Der integer-Wert von value bei Erfolg, sonst 0. Leere Arrays geben den Wert 0 zurück, nichtleere Arrays den Wert 1.

Der Maximalwert hängt vom System ab. 32-Bit-Systeme haben einen maximalen Wertebereich für signed integer von -2147483648 bis 2147483647. Also wird beispielsweise auf solch einem System intval('1000000000000') 2147483647 zurückgeben. Der maximale signed integer-Wert auf 64-Bit-Systemen ist 9223372036854775807.

Zeichenketten werden meistens 0 zurückgeben, auch wenn das erste Zeichen hier entscheidend ist. Es gelten die normalen Regeln zur Umwandlung nach integer.

Beispiele

Beispiel #1 intval()-Beispiele

Die folgenden Beispiele beziehen sich auf ein 32-Bit-System

<?php
echo intval(42);                      // 42
echo intval(4.2);                     // 4
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34
echo intval('042');                   // 42
echo intval(1e10);                    // 1410065408
echo intval('1e10');                  // 1
echo intval(0x1A);                    // 26
echo intval(42000000);                // 42000000
echo intval(420000000000000000000);   // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
echo intval(array());                 // 0
echo intval(array('foo', 'bar'));     // 1
echo intval(false);                   // 0
echo intval(true);                    // 1
?>

Anmerkungen

Hinweis:

Der base-Parameter hat keinerlei Auswirkung, wenn der value-Parameter kein String ist.

Changelog

Version | Beschreibung
5.1.0 | Erzeugt eine Meldung vom Type E_NOTICE und gibt den Wert 1 zurück, wenn ein Objekt als Parameter value übergeben wird.

Siehe auch

  • boolval() - Get the boolean value of a variable
  • floatval() - Konvertiert einen Wert nach float
  • strval() - Ermittelt die String-Repräsentation einer Variable
  • settype() - Legt den Typ einer Variablen fest
  • is_numeric() - Prüft, ob eine Variable eine Zahl oder ein numerischer String ist
  • Typen-Tricks
  • BCMath - Mathematische Funktionen mit beliebiger Genauigkeit


Prüft, ob die Variable ein Array ist

  • « intval
  • is_bool »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob die Variable ein Array ist

is_array

(PHP 4, PHP 5, PHP 7, PHP 8)

is_array — Prüft, ob die Variable ein Array ist

Beschreibung

is_array ( mixed $value ) : bool

Ermittelt, ob die gegebene Variable ein Array ist.

Parameter-Liste

value

Die zu untersuchende Variable.

Rückgabewerte

Gibt true zurück, wenn value vom Typ array ist, andernfalls false.

Beispiele

Beispiel #1 Überprüfen, ob die Variable ein Array ist

<?php
$yes = array('dies', 'ist', 'ein Array');

echo is_array($yes) ? 'Array' : 'kein Array';
echo "\n";

$no = 'dies ist ein String';

echo is_array($no) ? 'Array' : 'kein Array';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
kein Array

Siehe auch

  • is_float() - Prüft, ob eine Variable vom Typ float ist
  • is_int() - Prüft, ob eine Variable vom Typ int ist
  • is_string() - Prüft, ob Variable vom Typ string ist
  • is_object() - Prüft, ob eine Variable vom Typ object ist


Prüft, ob eine Variable vom Typ boolean ist

  • « is_array
  • is_callable »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob eine Variable vom Typ boolean ist

is_bool

(PHP 4, PHP 5, PHP 7, PHP 8)

is_bool — Prüft, ob eine Variable vom Typ boolean ist

Beschreibung

is_bool ( mixed $value ) : bool

Prüft, ob die gegebene Variable ein Boolean ist.

Parameter-Liste

value

Die zu untersuchende Variable.

Rückgabewerte

Gibt true zurück, wenn value vom Typ boolean ist, ansonsten false.

Beispiele

Beispiel #1 is_bool()-Beispiele

<?php
$a = false;
$b = 0;

// Da $a ein Boolean ist, wird true zurückgegeben
if (is_bool($a) === true) {
    echo "Ja, das ist ein Boolean";
}

// Da $b kein Boolean ist, wird false zurückgegeben
if (is_bool($b) === false) {
    echo "Nein, dies ist kein Boolean";
}
?>

Siehe auch

  • is_float() - Prüft, ob eine Variable vom Typ float ist
  • is_int() - Prüft, ob eine Variable vom Typ int ist
  • is_string() - Prüft, ob Variable vom Typ string ist
  • is_object() - Prüft, ob eine Variable vom Typ object ist
  • is_array() - Prüft, ob die Variable ein Array ist


Prüft, ob der Inhalt einer Variable als Funktion aufgerufen werden kann

  • « is_bool
  • is_countable »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob der Inhalt einer Variable als Funktion aufgerufen werden kann

is_callable

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

is_callable — Prüft, ob der Inhalt einer Variable als Funktion aufgerufen werden kann

Beschreibung

is_callable ( mixed $value , bool $syntax_only = false , string &$callable_name = null ) : bool

Prüft, ob ein Wert ein callable ist.

Parameter-Liste

value

Der zu prüfende Wert.

syntax_only

Wenn dieser Parameter auf true gesetzt wird, prüft die Funktion nur ob value eine Funktion oder Methode enthalten könnte. Nur einfache Variablen, die keinen String enthalten werden zurückgewiesen, oder Arrays, die nicht die richtige Struktur haben, um als Callback verwendet werden zu können. Gültige Arrays müssen zwei Elemente haben, von denen der erste ein Objekt oder String und der zweite ein String ist.

callable_name

Hier wird der "aufrufbare Name" abgelegt. Für das Beispiel weiter unten ist dies "someClass::someMethod". Es ist zu beachten, dass dies keine statische Methode ist, auch wenn die Syntax das nahelegt.

Rückgabewerte

Liefert true, wenn value aufrufbar ist, sonst false.

Beispiele

Beispiel #1 is_callable()-Beispiel

<?php
// Wie man prüft ob eine Variable als Funktion aufgerufen werden kann

//
//  Einfache Variable die eine Funktion enthält
//

function someFunction()
{
}

$functionVariable = 'someFunction';

var_dump(is_callable($functionVariable, false, $callable_name));  // bool(true)

echo $callable_name, "\n";  // someFunction

//
//  Array das eine Methode enthält
//

class someClass {

  function someMethod()
  {
  }

}

$anObject = new someClass();

$methodVariable = array($anObject, 'someMethod');

var_dump(is_callable($methodVariable, true, $callable_name));  //  bool(true)

echo $callable_name, "\n";  //  someClass::someMethod

?>

Beispiel #2 is_callable() und Konstructoren

Von PHP 5.3.0 an meldet is_callable() Konstruktoren als nicht aufrufbar. Dies betrifft Konstruktoren im PHP 5-Stil (__construct) wie auch Konstruktoren im PHP 4-Stil (d.h. Methoden mit demselben Namen wie die Klasse). Zuvor wurden beide Fälle als aufrufbar angesehen.

<?php

class Foo
{
    public function __construct() {}
    public function foo() {}
}

var_dump(
    is_callable(array('Foo', '__construct')),
    is_callable(array('Foo', 'foo'))
);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
bool(false)

Siehe auch

  • function_exists() - Falls die angegebene Funktion definiert ist, wird true zurück gegeben
  • method_exists() - Prüft ob eine Methode innerhalb eines Objekts existiert


Verify that the contents of a variable is a countable value

  • « is_callable
  • is_double »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Verify that the contents of a variable is a countable value

is_countable

(PHP 7 >= 7.3.0, PHP 8)

is_countable — Verify that the contents of a variable is a countable value

Beschreibung

is_countable ( mixed $value ) : bool

Verify that the contents of a variable is an array or an object implementing Countable

Parameter-Liste

value

The value to check

Rückgabewerte

Returns true if value is countable, false otherwise.

Changelog

Version | Beschreibung
7.3.0 | is_countable() has been added.

Beispiele

Beispiel #1 is_countable() examples

<?php
var_dump(is_countable([1, 2, 3])); // bool(true)
var_dump(is_countable(new ArrayIterator(['foo', 'bar', 'baz']))); // bool(true)
var_dump(is_countable(new ArrayIterator())); // bool(true)
var_dump(is_countable(new stdClass())); // bool(false)

Siehe auch

  • is_array() - Prüft, ob die Variable ein Array ist
  • is_object() - Prüft, ob eine Variable vom Typ object ist
  • is_iterable() - Verify that the contents of a variable is an iterable value
  • is_bool() - Prüft, ob eine Variable vom Typ boolean ist


Alias von is_float

  • « is_countable
  • is_float »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Alias von is_float

is_double

(PHP 4, PHP 5, PHP 7, PHP 8)

is_double — Alias von is_float()

Beschreibung

Diese Funktion ist ein Alias für: is_float().


Prüft, ob eine Variable vom Typ float ist

  • « is_double
  • is_int »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob eine Variable vom Typ float ist

is_float

(PHP 4, PHP 5, PHP 7, PHP 8)

is_float — Prüft, ob eine Variable vom Typ float ist

Beschreibung

is_float ( mixed $value ) : bool

Prüft, ob eine Variable vom Typ float ist

Hinweis:

Um zu testen, ob eine Variable eine Zahl oder eine numerische Zeichenkette ist (wie zum Beispiel Formularangaben, die immer Zeichenketten sind), müssen Sie is_numeric() verwenden.

Parameter-Liste

value

Die auszuwertende Variable.

Rückgabewerte

Gibt true zurück, wenn value vom Typ float ist, sonst false.

Beispiele

Beispiel #1 is_float()-Beispiel

<?php
var_dump(is_float(27.25));
var_dump(is_float('abc'));
var_dump(is_float(23));
var_dump(is_float(23.5));
var_dump(is_float(1e7));  //Scientific Notation
var_dump(is_float(true));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)
bool(false)
bool(true)
bool(true)
bool(false)

Siehe auch

  • is_bool() - Prüft, ob eine Variable vom Typ boolean ist
  • is_int() - Prüft, ob eine Variable vom Typ int ist
  • is_numeric() - Prüft, ob eine Variable eine Zahl oder ein numerischer String ist
  • is_string() - Prüft, ob Variable vom Typ string ist
  • is_array() - Prüft, ob die Variable ein Array ist
  • is_object() - Prüft, ob eine Variable vom Typ object ist


Prüft, ob eine Variable vom Typ int ist

  • « is_float
  • is_integer »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob eine Variable vom Typ int ist

is_int

(PHP 4, PHP 5, PHP 7, PHP 8)

is_int — Prüft, ob eine Variable vom Typ int ist

Beschreibung

is_int ( mixed $value ) : bool

Prüft, ob eine Variable vom Typ integer ist.

Hinweis:

Um zu testen, ob eine Variable eine Zahl oder eine numerische Zeichenkette ist (wie zum Beispiel Formularangaben, die immer Zeichenketten sind), müssen Sie is_numeric() verwenden.

Parameter-Liste

value

Die auszuwertende Variable.

Rückgabewerte

Gibt true zurück, wenn value vom Typ int ist, sonst false.

Beispiele

Beispiel #1 is_int()-Beispiel

<?php
$values = array(23, "23", 23.5, "23.5", null, true, false);
foreach ($values as $value) {
    echo "is_int(";
    var_export($value);
    echo ") = ";
    var_dump(is_int($value));
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

is_int(23) = bool(true)
is_int('23') = bool(false)
is_int(23.5) = bool(false)
is_int('23.5') = bool(false)
is_int(NULL) = bool(false)
is_int(true) = bool(false)
is_int(false) = bool(false)

Siehe auch

  • is_bool() - Prüft, ob eine Variable vom Typ boolean ist
  • is_float() - Prüft, ob eine Variable vom Typ float ist
  • is_numeric() - Prüft, ob eine Variable eine Zahl oder ein numerischer String ist
  • is_string() - Prüft, ob Variable vom Typ string ist
  • is_array() - Prüft, ob die Variable ein Array ist
  • is_object() - Prüft, ob eine Variable vom Typ object ist


Alias von is_int

  • « is_int
  • is_iterable »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Alias von is_int

is_integer

(PHP 4, PHP 5, PHP 7, PHP 8)

is_integer — Alias von is_int()

Beschreibung

Diese Funktion ist ein Alias für: is_int().


Verify that the contents of a variable is an iterable value

  • « is_integer
  • is_long »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Verify that the contents of a variable is an iterable value

is_iterable

(PHP 7 >= 7.1.0, PHP 8)

is_iterable — Verify that the contents of a variable is an iterable value

Beschreibung

is_iterable ( mixed $value ) : bool

Verify that the contents of a variable is accepted by the iterable pseudo-type, i.e. that it is either an array or an object implementing Traversable

Parameter-Liste

value

The value to check

Rückgabewerte

Returns true if value is iterable, false otherwise.

Beispiele

Beispiel #1 is_iterable() examples

<?php

var_dump(is_iterable([1, 2, 3]));  // bool(true)
var_dump(is_iterable(new ArrayIterator([1, 2, 3])));  // bool(true)
var_dump(is_iterable((function () { yield 1; })()));  // bool(true)
var_dump(is_iterable(1));  // bool(false)
var_dump(is_iterable(new stdClass()));  // bool(false)

?>

Siehe auch

  • is_array() - Prüft, ob die Variable ein Array ist


Alias von is_int

  • « is_iterable
  • is_null »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Alias von is_int

is_long

(PHP 4, PHP 5, PHP 7, PHP 8)

is_long — Alias von is_int()

Beschreibung

Diese Funktion ist ein Alias für: is_int().


Prüft, ob eine Variable null enthält

  • « is_long
  • is_numeric »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob eine Variable null enthält

is_null

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

is_null — Prüft, ob eine Variable null enthält

Beschreibung

is_null ( mixed $value ) : bool

Prüft, ob die gegebene Variable null enthält

Parameter-Liste

value

Die zu prüfende Variable.

Rückgabewerte

Liefert true wenn value null enthält, sonst false.

Beispiele

Beispiel #1 is_null()-Beispiel

<?php

error_reporting(E_ALL);

$foo = NULL;
var_dump(is_null($inexistent), is_null($foo));

?>
Notice: Undefined variable: inexistent in ...
bool(true)
bool(true)

Siehe auch

  • Der null-Typ
  • isset() - Prüft, ob eine Variable deklariert ist und sich von null unterscheidet
  • is_bool() - Prüft, ob eine Variable vom Typ boolean ist
  • is_numeric() - Prüft, ob eine Variable eine Zahl oder ein numerischer String ist
  • is_float() - Prüft, ob eine Variable vom Typ float ist
  • is_int() - Prüft, ob eine Variable vom Typ int ist
  • is_string() - Prüft, ob Variable vom Typ string ist
  • is_object() - Prüft, ob eine Variable vom Typ object ist
  • is_array() - Prüft, ob die Variable ein Array ist


Prüft, ob eine Variable eine Zahl oder ein numerischer String ist

  • « is_null
  • is_object »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob eine Variable eine Zahl oder ein numerischer String ist

is_numeric

(PHP 4, PHP 5, PHP 7, PHP 8)

is_numeric — Prüft, ob eine Variable eine Zahl oder ein numerischer String ist

Beschreibung

is_numeric ( mixed $value ) : bool

Prüft, ob die gegebene Variable eine Zahl oder ein numerischer String ist.

Parameter-Liste

value

Die zu untersuchende Variable.

Rückgabewerte

Gibt true zurück, wenn value eine Zahl oder ein numerischer String ist, ansonsten false.

Beispiele

Beispiel #1 is_numeric()-Beispiele

<?php
$tests = array(
    "42",
    1337,
    0x539,
    02471,
    0b10100111001,
    1337e0,
    "0x539",
    "02471",
    "0b10100111001",
    "1337e0",
    "nicht numerisch",
    array(),
    9.1,
    null
);

foreach($tests as $element) {
    if (is_numeric($element)) {
        echo var_export($element, true) . " ist numerisch", PHP_EOL;
    } else {
        echo var_export($element, true) . " ist NICHT numerisch", PHP_EOL;
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

'42' ist numerisch
1337 ist numerisch
1337 ist numerisch
1337 ist numerisch
1337 ist numerisch
1337.0 ist numerisch
'0x539' ist NICHT numerisch
'02471' ist numerisch
'0b10100111001' ist NICHT numerisch
'1337e0' ist numerisch
'nicht numerisch' ist NICHT numerisch
array (
) ist NICHT numerisch
9.1 ist numerisch
NULL ist NICHT numerisch

Changelog

Version | Beschreibung
7.0.0 | Zeichenketten in hexadezimaler Notation (z.B. 0xf4c3b00c) werden nicht länger als numerische Zeichenketten angesehen, d.h. is_numeric() gibt nun false zurück.

Siehe auch

  • ctype_digit() - Auf Ziffern überprüfen
  • is_bool() - Prüft, ob eine Variable vom Typ boolean ist
  • is_null() - Prüft, ob eine Variable null enthält
  • is_float() - Prüft, ob eine Variable vom Typ float ist
  • is_int() - Prüft, ob eine Variable vom Typ int ist
  • is_string() - Prüft, ob Variable vom Typ string ist
  • is_object() - Prüft, ob eine Variable vom Typ object ist
  • is_array() - Prüft, ob die Variable ein Array ist


Prüft, ob eine Variable vom Typ object ist

  • « is_numeric
  • is_real »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob eine Variable vom Typ object ist

is_object

(PHP 4, PHP 5, PHP 7, PHP 8)

is_object — Prüft, ob eine Variable vom Typ object ist

Beschreibung

is_object ( mixed $value ) : bool

Prüft, ob die gegebene Variable ein Objekt ist.

Parameter-Liste

value

Die zu untersuchende Variable.

Rückgabewerte

Gibt true zurück, wenn value vom Typ object ist, ansonsten false.

Beispiele

Beispiel #1 is_object()-Beispiel

<?php
// Eine einfache Funktion deklarieren, die ein Array unseres Objekts zurückgibt
function get_students($obj)
{
    if (!is_object($obj)) {
        return false;
    }

    return $obj->students;
}

// Deklarieren einer neuen Instanz der Klasse und Befüllen mit Werten
$obj = new stdClass();
$obj->students = array('Kalle', 'Ross', 'Felipe');

var_dump(get_students(null));
var_dump(get_students($obj));
?>

Changelog

Version | Beschreibung
7.2.0 | is_object() liefert nun true für unserialisierte Objekte ohne Klassendefinition (Klasse __PHP_Incomplete_Class) zurück. Zuvor wurde false zurückgeliefert.

Siehe auch

  • is_bool() - Prüft, ob eine Variable vom Typ boolean ist
  • is_int() - Prüft, ob eine Variable vom Typ int ist
  • is_float() - Prüft, ob eine Variable vom Typ float ist
  • is_string() - Prüft, ob Variable vom Typ string ist
  • is_array() - Prüft, ob die Variable ein Array ist


Alias von is_float

  • « is_object
  • is_resource »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Alias von is_float

is_real

(PHP 4, PHP 5, PHP 7, PHP 8)

is_real — Alias von is_float()

Beschreibung

Diese Funktion ist ein Alias für: is_float().

Warnung

Dieser Alias wurde in PHP 7.4.0 MISSBILLIGT und von PHP 8.0.0 an ENTFERNT.


Prüft, ob eine Variable vom Typ resource ist

  • « is_real
  • is_scalar »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob eine Variable vom Typ resource ist

is_resource

(PHP 4, PHP 5, PHP 7, PHP 8)

is_resource — Prüft, ob eine Variable vom Typ resource ist

Beschreibung

is_resource ( mixed $value ) : bool

Prüft, ob die gegebene Variable eine resource ist.

Parameter-Liste

value

Die zu untersuchende Variable.

Rückgabewerte

Gibt true zurück, wenn value vom Typ resource ist, andernfalls false.

Beispiele

Beispiel #1 is_resource()-Beispiel

<?php

$db_link = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
if (!is_resource($db_link)) {
    die('Verbindung konnte nicht hergestellt werden : ' . mysql_error());
}

?>

Anmerkungen

Hinweis:

is_resource() ist keine strikte Typprüfungsmethode: sie gibt false zurück, wenn value eine Variable mit einer Ressource ist, die geschlossen wurde.

Siehe auch

  • Die Ressource-Typen Dokumentation
  • get_resource_type() - Liefert den Typ einer Ressource


Prüft, ob eine Variable skalar ist

  • « is_resource
  • is_string »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob eine Variable skalar ist

is_scalar

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

is_scalar — Prüft, ob eine Variable skalar ist

Beschreibung

is_scalar ( mixed $value ) : bool

Prüft, ob die gegebene Variable skalar ist.

Unter skalaren Variablen versteht man solche, die einen int-, float-, string- oder bool-Wert enthalten. Variablen vom Typ array, object und resource sind nicht skalar.

Hinweis:

is_scalar() betrachtet Variablen vom Typ resource nicht als skalar, da Resourcen abstrakte Datentypen darstellen, auch wenn sie zur Zeit als Integer repräsentiert sind. Sie sollten sich nicht auf dieses Implementationsdetail verlassen, da es sich ändern kann.

Hinweis:

is_scalar() erachtet NULL nicht als skalar.

Parameter-Liste

value

Die zu prüfende Variable.

Rückgabewerte

Gibt true zurück, wenn value skalar ist, sonst false.

Beispiele

Beispiel #1 is_scalar()-Beispiel

<?php
function show_var($var)
{
    if (is_scalar($var)) {
        echo $var;
    } else {
        var_dump($var);
    }
}
$pi = 3.1416;
$proteins = array("Hämoglobin", "Cytochrom C Oxidase", "Ferredoxin");

show_var($pi);
show_var($proteins)

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3.1416
array(3) {
  [0]=>
  string(10) "Hämoglobin"
  [1]=>
  string(20) "Cytochrome C Oxidase"
  [2]=>
  string(10) "Ferredoxin"
}

Siehe auch

  • is_float() - Prüft, ob eine Variable vom Typ float ist
  • is_int() - Prüft, ob eine Variable vom Typ int ist
  • is_numeric() - Prüft, ob eine Variable eine Zahl oder ein numerischer String ist
  • is_real() - Alias von is_float
  • is_string() - Prüft, ob Variable vom Typ string ist
  • is_bool() - Prüft, ob eine Variable vom Typ boolean ist
  • is_object() - Prüft, ob eine Variable vom Typ object ist
  • is_array() - Prüft, ob die Variable ein Array ist


Prüft, ob Variable vom Typ string ist

  • « is_scalar
  • isset »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob Variable vom Typ string ist

is_string

(PHP 4, PHP 5, PHP 7, PHP 8)

is_string — Prüft, ob Variable vom Typ string ist

Beschreibung

is_string ( mixed $value ) : bool

Prüft, ob die gegebene Variable vom Typ String ist.

Parameter-Liste

value

Die zu untersuchende Variable.

Rückgabewerte

Gibt true zurück, wenn value vom Typ string ist, andernfalls false.

Beispiele

Beispiel #1 is_string()-Beispiel

<?php
$values = array(false, true, null, 'abc', '23', 23, '23.5', 23.5, '', ' ', '0', 0);
foreach ($values as $value) {
    echo "is_string(";
    var_export($value);
    echo ") = ";
    echo var_dump(is_string($value));
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

is_string(false) = bool(false)
is_string(true) = bool(false)
is_string(NULL) = bool(false)
is_string('abc') = bool(true)
is_string('23') = bool(true)
is_string(23) = bool(false)
is_string('23.5') = bool(true)
is_string(23.5) = bool(false)
is_string('') = bool(true)
is_string(' ') = bool(true)
is_string('0') = bool(true)
is_string(0) = bool(false)

Siehe auch

  • is_float() - Prüft, ob eine Variable vom Typ float ist
  • is_int() - Prüft, ob eine Variable vom Typ int ist
  • is_bool() - Prüft, ob eine Variable vom Typ boolean ist
  • is_object() - Prüft, ob eine Variable vom Typ object ist
  • is_array() - Prüft, ob die Variable ein Array ist


Prüft, ob eine Variable deklariert ist und sich von null unterscheidet

  • « is_string
  • print_r »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Prüft, ob eine Variable deklariert ist und sich von null unterscheidet

isset

(PHP 4, PHP 5, PHP 7, PHP 8)

isset — Prüft, ob eine Variable deklariert ist und sich von null unterscheidet

Beschreibung

isset ( mixed $var , mixed ...$vars ) : bool

Prüft, ob eine Variable als belegt gilt, d.h., ob eine Variable deklariert ist und sich von null unterscheidet.

Wenn eine Variable mittels unset() zurückgesetzt wurde, gilt sie nicht länger als belegt.

isset() gibt false zurück, wenn damit eine Variable geprüft wird, der null zugewiesen wurde. Zu beachten ist auch, dass ein Nullzeichen ("\0") nicht der PHP-Konstante null entspricht.

Wenn mehrere Parameter übergeben werden, gibt isset() nur dann true zurück, wenn alle Parameter als belegt gelten. Die Auswertung geht von links nach rechts und wird abgebrochen, sobald eine Variable nicht belegt ist.

Parameter-Liste

var

Die zu überprüfende Variable.

vars

Eine weitere Variable ...

Rückgabewerte

Gibt true zurück, wenn var existiert und einen von null verschiedenen Wert hat, andernfalls false.

Beispiele

Beispiel #1 isset()-Beispiele

<?php

$var = '';

// Dieser Ausdruck wird zu TRUE ausgewertet, also wird der Text angezeigt
if (isset($var)) {
    echo "Die Variable ist gesetzt, also wird etwas ausgegeben.";
}

// In den nächsten Beispielen wird var_dump() benutzt, um den Rückgabewert von
// isset() auszugeben.

$a = "test";
$b = "anothertest";

var_dump(isset($a));     // TRUE
var_dump(isset($a, $b)); // TRUE

unset ($a);

var_dump(isset($a));     // FALSE
var_dump(isset($a, $b)); // FALSE

$foo = NULL;
var_dump(isset($foo));   // FALSE

?>

Die funktioniert ebenfalls für Arrayelemente:

<?php

$a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple'));

var_dump(isset($a['test']));            // TRUE
var_dump(isset($a['foo']));             // FALSE
var_dump(isset($a['hello']));           // FALSE

// Der Schlüssel 'hello' hat den Wert NULL,
// daher wird sein Inhalt nicht betrachtet
// Wenn man herausfinden willen, ob ein
// Schlüssel mit dem Wert NULL vorhanden
// ist, verwendet man:
var_dump(array_key_exists('hello', $a)); // TRUE

// Tiefer verschachtelte Array-Strukturen prüfen:
var_dump(isset($a['pie']['a']));        // TRUE
var_dump(isset($a['pie']['b']));        // FALSE
var_dump(isset($a['cake']['a']['b']));  // FALSE
?>

Beispiel #2 isset() und Zeichenketten-Offsets

PHP 5.4 ändert das Verhalten von isset(), wenn Zeichenketten-Offsets übergeben werden.

<?php
$expected_array_got_string = 'einstring';
var_dump(isset($expected_array_got_string['ein_schluessel']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.3:

bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.4:

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)

Anmerkungen

Warnung

isset() funktioniert nur mit Variablen, da der Aufruf mit etwas anderem einen Parse-Error verursacht. Um zu überprüfen, ob Konstanten gesetzt sind, sollte die Funktion defined() benutzt werden.

Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen verwenden.

Hinweis:

Bei Aufruf von isset() auf nicht-öffentliche Objekteigenschaten wird die überladene Methode __isset aufgerufen, falls deklariert.

Siehe auch

  • empty() - Prüft, ob eine Variable einen Wert enthält
  • __isset
  • unset() - Löschen einer angegebenen Variablen
  • defined() - Prüft, ob eine benannte Konstante existiert
  • die Tabelle zum Typenvergleich
  • array_key_exists() - Prüft, ob ein Schlüssel in einem Array existiert
  • is_null() - Prüft, ob eine Variable null enthält
  • Fehler-Kontroll-Operator @


Gibt Variablen-Informationen in lesbarer Form aus

  • « isset
  • serialize »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Gibt Variablen-Informationen in lesbarer Form aus

print_r

(PHP 4, PHP 5, PHP 7, PHP 8)

print_r — Gibt Variablen-Informationen in lesbarer Form aus

Beschreibung

print_r ( mixed $value , bool $return = false ) : string|bool

print_r() zeigt Informationen über eine Variable in menschenlesbarer Form an.

print_r(), var_dump() und var_export() zeigen auch private und geschützte Eigenschaften von Objekten an. Statische Klasseneigenschaften werden hingegen nicht angezeigt.

Parameter-Liste

value

Der auszugebende Ausdruck.

return

Wenn Sie die Ausgabe von print_r() zum Weiterverarbeiten abfangen möchten, benutzen Sie dazu den Parameter return. Wenn dieser auf true gesetzt ist, gibt print_r() die Information zurück, statt sie auszugeben.

Rückgabewerte

Wenn die Funktion für eine Variable vom Typ string, int oder float aufgerufen wird, wird der Wert der Variablen angezeigt. Falls ein array übergeben wurde, werden die Werte in einem Format angezeigt, das sowohl die Schlüssel als auch die Elemente darstellt. Für Variablen vom Typ object gilt das Gleiche.

Wenn der Parameter return den Wert true hat, gibt die Funktion einen String zurück, andernfalls ist der Rückgabewert true.

Anmerkungen

Hinweis:

Wenn der Parameter return verwendet wird, verwendet diese Funktion vor PHP 7.1.0 die interne Ausgabepufferung und kann daher nicht innerhalb einer ob_start()-Callbackfunktion verwendet werden.

Beispiele

Beispiel #1 print_r()-Beispiel

<pre>
<?php
    $a = array ('a' => 'Apfel', 'b' => 'Banane', 'c' => array ('x', 'y', 'z'));
    print_r ($a);
?>
</pre>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<pre>
Array
(
    [a] => Apfel
    [b] => Banane
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

Beispiel #2 return-Parameter-Beispiel

<?php
$b = array ('a' => 'Affe', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
$results = print_r($b, true); //$results enthaelt nun die Ausgabe von print_r
?>

Siehe auch

  • ob_start() - Ausgabepufferung aktivieren
  • var_dump() - Gibt alle Informationen zu einer Variablen aus
  • var_export() - Liefert den Inhalt einer Variablen als parsbaren PHP-Code


Erzeugt eine speicherbare Repräsentation eines Wertes

  • « print_r
  • settype »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Erzeugt eine speicherbare Repräsentation eines Wertes

serialize

(PHP 4, PHP 5, PHP 7, PHP 8)

serialize — Erzeugt eine speicherbare Repräsentation eines Wertes

Beschreibung

serialize ( mixed $value ) : string

Erzeugt eine speicherbare Repräsentation eines Wertes.

Diese Funktion dient der Speicherung oder Übergabe von PHP-Werten, ohne dass diese ihren Typ oder ihre Struktur verlieren.

Um eine serialisierte Zeichenkette wieder als PHP-Wert verfügbar zu machen, verwenden Sie unserialize().

Parameter-Liste

value

Der zu serialisierende Wert. serialize() kann mit allen Typen umgehen, ausgenommen mit dem resource-Typ und einigen object-Typen (siehe Hinweis weiter unten). Sie können sogar Arrays serialisieren, die Referenzen auf sich selbst enthalten. Zirkelbezüge innerhalb des Arrays/Objekts, das Sie serialisieren, werden ebenfalls gespeichert. Alle anderen Referenzen gehen verloren.

Wenn Objekte serialisiert werden, versucht PHP die Methode __serialize() oder __sleep vor der Serialisierung aufzurufen. Dies erlaubt einem Objekt z.B. letzte "Aufräumaktionen", bevor es serialisiert wird. Ebenso wird die Methode __unserialize() oder __wakeup aufgerufen, wenn das Objekt mittels unserialize() wiederhergestellt wird.

Hinweis:

Den Namen der privaten Eigenschaften eines Objekts wird der Klassenname vorangestellt; den Namen geschützter Eigenschaften wird ein '*' vorangestellt. Diese vorangestellten Werte werden von Nullbytes umschlossen.

Rückgabewerte

Gibt einen String zurück, der eine Byte-Stream-Repräsentation von value enthält, die beliebig gespeichert werden kann.

Es ist zu beachten, dass dies ein Binärstring ist, der Null-Bytes enthalten kann, und als solcher gespeichert und behandelt werden muss. Zum Beispiel sollte die Ausgabe von serialize() grundsätzlich in einem BLOB- statt einem CHAR- oder TEXT-Feld in einer Datenbank gespeichert werden.

Beispiele

Beispiel #1 serialize()-Beispiel

<?php
// $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", "chicken");
$stmt = odbc_prepare($conn,
      "UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, $sqldata)) {
    $stmt = odbc_prepare($conn,
     "INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!odbc_execute($stmt, array_reverse($sqldata))) {
        /* Irgendwas ging schief ... */
    }
}
?>

Anmerkungen

Hinweis:

Es ist zu beachten, dass viele eingebaute PHP Objekte nicht serialisiert werden können. Diejenigen mit dieser Eigenschaft implementieren entweder das Serializable-Interface oder die magischen __serialize()/__unserialize()- oder __sleep/__wakeup-Methoden. Wenn eine eingebaute Klasse nicht mindestens eine dieser Voraussetzungen erfüllt, kann sie nicht verlässlich serialisiert werden.

Es gibt einige historische Ausnahmen dieser Regel, bei denen interne Objekte serialisiert werden konnten, ohne das Interface zu implementieren oder die Methoden offenzulegen. Namentlich ArrayObject vor PHP 5.2.0.

Warnung

Wenn serialize() Objekte serialisiert, ist zwecks größtmöglicher Kompatibilität der führende Backslash nicht im Namen von Klassen in Namensräumen enthalten.

Siehe auch

  • unserialize() - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
  • var_export() - Liefert den Inhalt einer Variablen als parsbaren PHP-Code
  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • Objekte serialisieren
  • __sleep
  • __wakeup
  • __serialize()
  • __unserialize()


Legt den Typ einer Variablen fest

  • « serialize
  • strval »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Legt den Typ einer Variablen fest

settype

(PHP 4, PHP 5, PHP 7, PHP 8)

settype — Legt den Typ einer Variablen fest

Beschreibung

settype ( mixed &$var , string $type ) : bool

Legt den Typ der Variablen var als type fest.

Parameter-Liste

var

Die zu konvertierende Variable.

type

Mögliche Werte für type sind:

  • "boolean" oder "bool"
  • "integer" oder "int"
  • "float" oder "double"
  • "string"
  • "array"
  • "object"
  • "null"

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 settype()-Beispiel

<?php
$foo = "5bar"; // string
$bar = true;   // boolean

settype($foo, "integer"); // $foo ist jetzt 5   (integer)
settype($bar, "string");  // $bar ist jetzt "1" (string)
?>

Anmerkungen

Hinweis:

Der Höchstwert für den Datentyp "int" ist PHP_INT_MAX.

Siehe auch

  • gettype() - Liefert den Datentyp einer Variablen
  • Typ-Umwandlung
  • Typen-Tricks


Ermittelt die String-Repräsentation einer Variable

  • « settype
  • unserialize »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Ermittelt die String-Repräsentation einer Variable

strval

(PHP 4, PHP 5, PHP 7, PHP 8)

strval — Ermittelt die String-Repräsentation einer Variable

Beschreibung

strval ( mixed $value ) : string

Gibt die String-Repräsentation einer Variablen zurück. Lesen Sie die Dokumentation über den Typ string, um weitere Informationen über das Konvertieren in Strings zu erhalten.

Diese Funktion führt keine Formatierung auf dem zurückgegebenen Wert durch. Wenn Sie nach einem Weg suchen, einen numerischen Wert als String zu formatieren, lesen Sie bitte die Dokumentation zu sprintf() oder number_format().

Parameter-Liste

value

Die nach string zu konvertierende Variable.

var darf jeder skalare Datentyp sein oder ein Objekt, das die __toString-Methode implementiert. Sie können strval() jedoch nicht auf Arrays oder Objekte, welche keine __toString-Methode implementieren, anwenden.

Rückgabewerte

Die String-Repräsentation des Wertes von value.

Beispiele

Beispiel #1 strval()-Beispiel für die Verwendung der magischen __toString Methode

<?php
class StrValTest
{
    public function __toString()
    {
        return __CLASS__;
    }
}

// Gibt 'StrValTest' aus
echo strval(new StrValTest);
?>

Siehe auch

  • boolval() - Get the boolean value of a variable
  • floatval() - Konvertiert einen Wert nach float
  • intval() - Konvertiert einen Wert nach integer
  • settype() - Legt den Typ einer Variablen fest
  • sprintf() - Gibt einen formatierten String zurück
  • number_format() - Formatiert eine Zahl mit Tausender-Trennzeichen
  • Typ-Veränderung
  • __toString


Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP

  • « strval
  • unset »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP

unserialize

(PHP 4, PHP 5, PHP 7, PHP 8)

unserialize — Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP

Beschreibung

unserialize ( string $data , array $options = [] ) : mixed

unserialize() nimmt eine einzelne Variable aus einer serialisierten Datenmenge und wandelt sie in einen PHP-Wert zurück.

Warnung

Unvertrauenswürdige Benutzereingaben sollten nicht an unserialize() übergeben werden, unabhängig vom options-Wert von allowed_classes. Die Deserialisierung kann durch Objektinstanziierung und Autoloading dazu führen, dass Code geladen und ausgeführt wird, und ein böswilliger Anwender kann in der Lage sein das auszunutzen. Es ist ein sicheres, standardisiertes Austauschformat wie JSON (per json_decode() und json_encode()) zu verwenden, wenn serialisierte Daten an den Nutzer übergeben werden müssen.

Müssen extern gespeicherte serialisierte Daten unserialisiert werden, ist zu erwägen hash_hmac() zur Datenvalidierung zu verwenden. Es ist sicherzustellen, dass die Daten von niemandem außer einem selbst modifiziert wurden.

Parameter-Liste

data

Der serialisierte String.

Wenn die zu deserialisierende Variable ein Objekt ist, wird PHP nach der erfolgreichen Wiederherstellung des Objekts automatisch versuchen, die __unserialize()- oder __wakeup-Methode aufzurufen (sofern eine von diesen existiert).

Hinweis: Die unserialize_callback_func-Direktive

Es ist möglich, eine Callback-Funktion anzugeben, die aufgerufen wird, wenn eine undefinierte Klasse während des Deserialisierens instanziiert werden soll (um dem Erhalt des unvollständigen object "__PHP_Incomplete_Class" vorzubeugen). Nutzen Sie Ihre php.ini, ini_set() oder .htaccess, um unserialize_callback_func festzulegen. Jedesmal, wenn eine undefinierte Klasse instanziiert werden soll, wird diese Funktion aufgerufen. Um dieses Feature abzuschalten, muss die Einstellung nur ungefüllt sein.

options

Optionen, die unserialize() als assoziatives Array zur Verfügung gestellt werden sollen.

Gültige Optionen
Name | Typ | Beschreibung
allowed_classes | mixed | Entweder ein Array von Klassennamen, die akzeptiert werden sollen, oder false um keine Klassen oder true um alle Klassen zu akzeptieren. Ist diese Option angegeben und unserialize() trifft auf ein Objekt einer Klasse, die nicht akzeptierbar ist, wird das Objekt statt dessen als __PHP_Incomplete_Class instantiiert. Das Auslassen dieser Option hat die gleiche Wirkung wie sie als true anzugeben: PHP wird versuchen Objekte beliebiger Klassen zu instantiieren.

Rückgabewerte

Der konvertierte Wert wird zurückgegeben und kann vom Typ bool, int, float, string, array oder object sein.

Falls der übergebene String nicht deserialisierbar ist, wird false zurückgegeben und E_NOTICE produziert.

Fehler/Exceptions

Objekte können Throwables in ihren Deserialisierungs-Routinen ausführen.

Changelog

Version | Beschreibung
7.1.0 | Das allowed_classes Element von options) ist nun strikt typisiert, d.h. wird etwas anderes als ein Array oder ein bool übergeben, liefert unserialize() false zurück und löst ein E_WARNING aus.
7.0.0 | Der options Parameter wurde hinzugefügt.
5.6.0 | Die Manipulation der serialisierten Daten durch das Ersetzen von C: mit O: um die Objektinstanziierung ohne Aufruf des Konstruktors zu erzwingen, schlägt nun fehl.

Beispiele

Beispiel #1 unserialize()-Beispiel

<?php
// Als Beispiel benutzen wir unserialize(), um Daten aus einer Datenbank in das
// $session_data-Array zu laden. Das Beispiel vervollständigt das unter
// serialize() beschriebene.

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array($_SERVER['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();
    }
}
?>

Beispiel #2 unserialize_callback_func-Beispiel

<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

ini_set('unserialize_callback_func', 'mycallback'); // Festlegen der callback_function

function mycallback($classname)
{
    // einfach eine Datei einbinden, dass die Klassendefinitionen enthält
    // Sie erhalten $classname, womit Sie herausfinden können, welche
    // Klassendefinition benötigt wird
}
?>

Anmerkungen

Warnung

false wird sowohl im Fehlerfall als auch bei einem serialisierten false-Wert zurückgegeben. Es ist möglich, diesen speziellen Fall abzufangen, indem man data mit serialize(false) vergleicht oder prüft, ob ein E_NOTICE produziert wurde.

Siehe auch

  • json_encode() - Gibt die JSON-Repräsentation eines Wertes zurück
  • json_decode() - Dekodiert eine JSON-Zeichenkette
  • hash_hmac() - Berechnet einen Hash mit Schlüssel unter Verwendung von HMAC
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • Autoloading von Klassen
  • unserialize_callback_func
  • __wakeup
  • __serialize()
  • __unserialize()


Löschen einer angegebenen Variablen

  • « unserialize
  • var_dump »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Löschen einer angegebenen Variablen

unset

(PHP 4, PHP 5, PHP 7, PHP 8)

unset — Löschen einer angegebenen Variablen

Beschreibung

unset ( mixed $var , mixed ...$vars ) : void

unset() löscht die angegebene Variable.

Das Verhalten von unset() innerhalb einer Funktion kann abhängig davon, was für einen Variablentyp Sie zu löschen versuchen, variieren.

Wenn eine globalisierte Variable innerhalb einer Funktion mit unset() behandelt wird, wird nur die lokale Variable gelöscht. Die Variable innerhalb der aufrufenden Umgebung behält den selben Wert wie vor dem Aufruf von unset().

<?php
function destroy_foo()
{
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bar

Um eine globale Variable innerhalb einer Funktion zu löschen, kann das $GLOBALS-Array verwendet werden:

<?php
function foo()
{
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();
?>

Wenn eine Variable, die als Referenz übergeben wird ("Passed by Reference"), innerhalb einer Funktion gelöscht wird, wird nur die lokale Variable gelöscht. Die Variable im aufrufenden Environment enthält den selben Wert wie vor dem Aufruf von unset().

<?php
function foo(&$bar)
{
    unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n";

foo($bar);
echo "$bar\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

something
something

Wenn eine statische Variable innerhalb einer Funktion gelöscht wird, löscht unset() die Variable nur im Kontext des verbleibenden Funktionsablaufs. Die folgenden Aufrufe stellen den vorhergehenden Wert der Variablen wieder her.

<?php
function foo()
{
    static $bar;
    $bar++;
    echo "Vor unset: $bar, ";
    unset($bar);
    $bar = 23;
    echo "nach unset: $bar\n";
}

foo();
foo();
foo();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Vor unset: 1, nach unset: 23
Vor unset: 2, nach unset: 23
Vor unset: 3, nach unset: 23

Parameter-Liste

var

Die zu löschende Variable.

vars

Weitere zu löschende Variablen ...

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 unset()-Beispiel

<?php
// löscht eine einzelne Variable
unset($foo);

// löscht ein einzelnes Element eines Arrays
unset($bar['quux']);

// löscht mehr als eine Variable
unset($foo1, $foo2, $foo3);
?>

Beispiel #2 Verwendung von (unset) Casting

(unset)-Casting wird häufig mit der unset() Function verwechselt. (unset)-Casting dient nur als ein NULL-Typ-Cast, der Vollständigkeit halber. Es ändert nicht die gecastete Variable. Das (unset)-Casting ist ab PHP 7.2.0 missbilligt.

<?php
$name = 'Felipe';

var_dump((unset) $name);
var_dump($name);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
string(6) "Felipe"

Anmerkungen

Hinweis: Da dies ein Sprachkonstrukt und keine Funktion ist, können Sie dieses nicht mit Variablenfunktionen verwenden.

Hinweis:

Es ist möglich, sogar Objekteigenschaften zu löschen, die im aktuellen Kontext sichtbar sind.

Hinweis:

Es ist nicht möglich, $this innerhalb einer Objektmethode zu löschen.

Hinweis:

Wenn unset() auf Objekteigenschaften angewendet wird, auf die nicht direkt zugegriffen werden kann, wird, sofern sie deklariert wurde, die Überladungsmethode __unset aufgerufen.

Siehe auch

  • isset() - Prüft, ob eine Variable deklariert ist und sich von null unterscheidet
  • empty() - Prüft, ob eine Variable einen Wert enthält
  • __unset
  • array_splice() - Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes
  • (unset) casting


Gibt alle Informationen zu einer Variablen aus

  • « unset
  • var_export »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Gibt alle Informationen zu einer Variablen aus

var_dump

(PHP 4, PHP 5, PHP 7, PHP 8)

var_dump — Gibt alle Informationen zu einer Variablen aus

Beschreibung

var_dump ( mixed $value , mixed ...$values ) : void

Die Funktion gibt strukturierte Informationen über einen oder mehrere Ausdrücke aus, darunter auch den entsprechenden Typ und Wert. Arrays und Objekte werden rekursiv durchlaufen und die jeweiligen Werte eingerückt dargestellt, um die Struktur zu verdeutlichen.

Alle öffentlichen (public), privaten (private) und geschützten (protected) Eigenschaften eines Objekts werden in der Ausgabe dargestellt, außer wenn das Objekt eine __debugInfo()-Methode implementiert (eingeführt in PHP 5.6.0).

Tipp

Bei allem, dessen Ergebnisausgabe direkt im Browser angezeigt wird, können Sie die Funktionen zur Ausgabesteuerung verwenden. Damit lässt sich die Ausgabe dieser Funktion erfassen, und - zum Beispiel - in einem string speichern.

Parameter-Liste

value

Der auszugebende Ausdruck.

values

Weitere auszugebende Ausdrücke.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 var_dump()-Beispiel

<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}
<?php

$b = 3.1;
$c = true;
var_dump($b, $c);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

float(3.1)
bool(true)

Siehe auch

  • print_r() - Gibt Variablen-Informationen in lesbarer Form aus
  • debug_zval_dump() - Dumps a string representation of an internal zend value to output
  • var_export() - Liefert den Inhalt einer Variablen als parsbaren PHP-Code
  • __debugInfo()


Liefert den Inhalt einer Variablen als parsbaren PHP-Code

  • « var_dump
  • Web Services »
  • PHP Manual
  • Funktionen zur Behandlung von Variablen
  • Liefert den Inhalt einer Variablen als parsbaren PHP-Code

var_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

var_export — Liefert den Inhalt einer Variablen als parsbaren PHP-Code

Beschreibung

var_export ( mixed $value , bool $return = false ) : string|null

var_export() gibt strukturierte Informationen zum Inhalt der übergebenen Variable zurück. Das Verhalten ist ähnlich dem der Funktion var_dump(), allerdings ist hier das Ergebnis valider PHP-Code mit dem sich der Inhalt der Variable wiederherstellen lässt.

Parameter-Liste

value

Die zu exportierende Variable.

return

Wird dieser Parameter auf true gesetzt so, wird das Ergebnis nicht direkt ausgegeben, sondern als String zurückgegeben.

Rückgabewerte

Gibt die Darstellung der Variablen als PHP-Code zurück, wenn der return-Parameter genutzt wird und als Wert true ergibt. Anderenfalls gibt die Funktion null zurück.

Changelog

Version | Beschreibung
7.3.0 | stdClass-Objekte werden nun als ein Array exportiert, das in ein Objekt umgewandelt wird ((object) array( ... )), anstatt die nicht existente Methode stdClass::__setState() zu verwenden. Der praktische Effekt ist, dass stdClass nun exportierbar ist, und der erzeugte Code sogar mit früheren Versionen von PHP funktioniert.

Beispiele

Beispiel #1 Export von stdClass (seit PHP 7.3.0)

<?php
$person = new stdClass;
$person->name = 'ElePHPant ElePHPantsdotter';
$person->website = 'https://php.net/elephpant.php';

var_export($person);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

(object) array(
   'name' => 'ElePHPant ElePHPantsdotter',
   'website' => 'https://php.net/elephpant.php',
)

Beispiel #2 var_export()-Beispiel

<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export($a);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array (
  0 => 1,
  1 => 2,
  2 =>
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
<?php

$b = 3.1;
$v = var_export($b, true);
echo $v;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

3.1

Beispiel #3 Export von Klassen ab PHP 5.1.0

<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

A::__set_state(array(
   'var' => 5,
))

Beispiel #4 Nutzung von __set_state (ab PHP 5.1.0)

<?php
class A
{
    public $var1;
    public $var2;

    public static function __set_state($an_array)
    {
        $obj = new A;
        $obj->var1 = $an_array['var1'];
        $obj->var2 = $an_array['var2'];
        return $obj;
    }
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
                                            //    'var1' => 5,
                                            //    'var2' => 'foo',
                                            // ));
var_dump($b);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Anmerkungen

Hinweis:

Variablen vom Typ resource können von dieser Funktion nicht exportiert werden.

Hinweis:

var_export() ist nicht in der Lage, zirkuläre Referenzen aufzulösen, da es annähernd unmöglich ist, hierfür gültigen PHP-Code zu erzeugen. In solchen Fällen empfiehlt sich stattdessen die Nutzung der serialize() für eine vollständige Darstellung von entsprechenden Arrays oder Objekten.

Warnung

Wenn var_export() Objekte exportiert, ist zwecks größtmöglicher Kompatibilität der führende Backslash nicht im Namen von Klassen in Namensräumen enthalten.

Hinweis:

Um das von var_export() erzeugte PHP ausführen zu können, müssen alle verarbeiteten Objekte die magische Methode __set_state implementieren. Die einzige Ausnahme ist stdClass, die unter Verwendung eines Arrays, das zu einem Objekt umgewandelt wird, exportiert wird.

Siehe auch

  • print_r() - Gibt Variablen-Informationen in lesbarer Form aus
  • serialize() - Erzeugt eine speicherbare Repräsentation eines Wertes
  • var_dump() - Gibt alle Informationen zu einer Variablen aus


Web Services

  • OAuth
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • OAuth Funktionen
    • OAuth — The OAuth class
    • OAuthProvider — The OAuthProvider class
    • OAuthException — OAuthException class
  • SOAP
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • SOAP Funktionen
    • SoapClient — Die SoapClient-Klasse
    • SoapServer — Die SoapServer-Klasse
    • SoapFault — Die SoapFault-Klasse
    • SoapHeader — Die SoapHeader-Klasse
    • SoapParam — Die SoapParam-Klasse
    • SoapVar — Die SoapVar-Klasse
  • Yar — Yet Another RPC Framework
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • Yar_Server — The Yar_Server class
    • Yar_Client — The Yar_Client class
    • Yar_Concurrent_Client — The Yar_Concurrent_Client class
    • Yar_Server_Exception — The Yar_Server_Exception class
    • Yar_Client_Exception — The Yar_Client_Exception class
  • XML-RPC
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • XML-RPC Funktionen


OAuth

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • FireEagle
  • OAuth Funktionen
    • oauth_get_sbs — Generate a Signature Base String
    • oauth_urlencode — Kodiert eine URI nach RFC 3986
  • OAuth — The OAuth class
    • OAuth::__construct — Create a new OAuth object
    • OAuth::__destruct — The destructor
    • OAuth::disableDebug — Turn off verbose debugging
    • OAuth::disableRedirects — Turn off redirects
    • OAuth::disableSSLChecks — Turn off SSL checks
    • OAuth::enableDebug — Turn on verbose debugging
    • OAuth::enableRedirects — Turn on redirects
    • OAuth::enableSSLChecks — Turn on SSL checks
    • OAuth::fetch — Fetch an OAuth protected resource
    • OAuth::generateSignature — Generate a signature
    • OAuth::getAccessToken — Fetch an access token
    • OAuth::getCAPath — Gets CA information
    • OAuth::getLastResponse — Get the last response
    • OAuth::getLastResponseHeaders — Get headers for last response
    • OAuth::getLastResponseInfo — Get HTTP information about the last response
    • OAuth::getRequestHeader — Generate OAuth header string signature
    • OAuth::getRequestToken — Fetch a request token
    • OAuth::setAuthType — Set authorization type
    • OAuth::setCAPath — Set CA path and info
    • OAuth::setNonce — Set the nonce for subsequent requests
    • OAuth::setRequestEngine — The setRequestEngine purpose
    • OAuth::setRSACertificate — Set the RSA certificate
    • OAuth::setSSLChecks — Tweak specific SSL checks for requests
    • OAuth::setTimestamp — Set the timestamp
    • OAuth::setToken — Sets the token and secret
    • OAuth::setVersion — Set the OAuth version
  • OAuthProvider — The OAuthProvider class
    • OAuthProvider::addRequiredParameter — Add required parameters
    • OAuthProvider::callconsumerHandler — Calls the consumerNonceHandler callback
    • OAuthProvider::callTimestampNonceHandler — Calls the timestampNonceHandler callback
    • OAuthProvider::calltokenHandler — Calls the tokenNonceHandler callback
    • OAuthProvider::checkOAuthRequest — Check an oauth request
    • OAuthProvider::__construct — Constructs a new OAuthProvider object
    • OAuthProvider::consumerHandler — Set the consumerHandler handler callback
    • OAuthProvider::generateToken — Generate a random token
    • OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint
    • OAuthProvider::isRequestTokenEndpoint — Sets isRequestTokenEndpoint
    • OAuthProvider::removeRequiredParameter — Remove a required parameter
    • OAuthProvider::reportProblem — Report a problem
    • OAuthProvider::setParam — Set a parameter
    • OAuthProvider::setRequestTokenPath — Set request token path
    • OAuthProvider::timestampNonceHandler — Set the timestampNonceHandler handler callback
    • OAuthProvider::tokenHandler — Set the tokenHandler handler callback
  • OAuthException — OAuthException class


Einführung

This extension provides OAuth 1.0a consumer and provider bindings. OAuth is an authorization protocol built on top of HTTP which allows applications to securely access data without having to store usernames and passwords.


Anforderungen

PECL/oauth requires PHP 5.1 or newer, ext/hash and ext/pcre.

PECL/oauth may optionally require libcurl if selected at build time. If configured with libcurl, it must be built with HTTPS support.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pear.php.net/package/oauth


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

Most of these constants involve problems, which are also described within the official OAuth » Problem Reporting documentation. Note however, that these constant names are specific to PHP, although the naming scheme is similar.

OAUTH_SIG_METHOD_RSASHA1 (string)
OAuth RSA-SHA1 signature method.
OAUTH_SIG_METHOD_HMACSHA1 (string)

OAuth HMAC-SHA1 signature method.

OAUTH_SIG_METHOD_HMACSHA256 (string)
OAuth HMAC-SHA256 signature method.
OAUTH_AUTH_TYPE_AUTHORIZATION (string)

This constant represents putting OAuth parameters in the Authorization header.

OAUTH_AUTH_TYPE_NONE (string)

This constant indicates a NoAuth OAuth request.

OAUTH_AUTH_TYPE_URI (string)

This constant represents putting OAuth parameters in the request URI.

OAUTH_AUTH_TYPE_FORM (string)

This constant represents putting OAuth parameters as part of the HTTP POST body.

OAUTH_HTTP_METHOD_GET (string)

Use the GET method for the OAuth request.

OAUTH_HTTP_METHOD_POST (string)

Use the POST method for the OAuth request.

OAUTH_HTTP_METHOD_PUT (string)

Use the PUT method for the OAuth request.

OAUTH_HTTP_METHOD_HEAD (string)

Use the HEAD method for the OAuth request.

OAUTH_HTTP_METHOD_DELETE (string)
Use the DELETE method for the OAuth request.
OAUTH_REQENGINE_STREAMS (int)
Used by OAuth::setRequestEngine() to set the engine to PHP streams, as opposed to OAUTH_REQENGINE_CURL for Curl.
OAUTH_REQENGINE_CURL (int)
Used by OAuth::setRequestEngine() to set the engine to Curl, as opposed to OAUTH_REQENGINE_STREAMS for PHP streams.
OAUTH_OK (int)
Life is good.
OAUTH_BAD_NONCE (int)
The oauth_nonce value was used in a previous request, therefore it cannot be used now.
OAUTH_BAD_TIMESTAMP (int)
The oauth_timestamp value was not accepted by the service provider. In this case, the response should also contain the oauth_acceptable_timestamps parameter.
OAUTH_CONSUMER_KEY_UNKNOWN (int)
The oauth_consumer_key is temporarily unacceptable to the service provider. For example, the service provider may be throttling the consumer.
OAUTH_CONSUMER_KEY_REFUSED (int)
The consumer key was refused.
OAUTH_INVALID_SIGNATURE (int)
The oauth_signature is invalid, as it does not match the signature computed by the service provider.
OAUTH_TOKEN_USED (int)
The oauth_token has been consumed. It can no longer be used because it has already been used in the previous request(s).
OAUTH_TOKEN_EXPIRED (int)
The oauth_token has expired.
OAUTH_TOKEN_REVOKED (int)
The oauth_token has been revoked, and will never be accepted.
OAUTH_TOKEN_REJECTED (int)
The oauth_token was not accepted by the service provider. The reason is not known, but it might be because the token was never issued, already consumed, expired, and/or forgotten by the service provider.
OAUTH_VERIFIER_INVALID (int)
The oauth_verifier is incorrect.
OAUTH_PARAMETER_ABSENT (int)
A required parameter was not received. In this case, the response should also contain the oauth_parameters_absent parameter.
OAUTH_SIGNATURE_METHOD_REJECTED (int)
The oauth_signature_method was not accepted by service provider.


  • « Vordefinierte Konstanten
  • FireEagle »
  • PHP Manual
  • OAuth
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • FireEagle


FireEagle

<?php
$req_url = 'https://fireeagle.yahooapis.com/oauth/request_token';
$authurl = 'https://fireeagle.yahoo.net/oauth/authorize';
$acc_url = 'https://fireeagle.yahooapis.com/oauth/access_token';
$api_url = 'https://fireeagle.yahooapis.com/api/0.1';
$conskey = 'your_consumer_key';
$conssec = 'your_consumer_secret';

session_start();

// In state=1 the next request should include an oauth_token.
// If it doesn't go back to 0
if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0;
try {
  $oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI);
  $oauth->enableDebug();
  if(!isset($_GET['oauth_token']) && !$_SESSION['state']) {
    $request_token_info = $oauth->getRequestToken($req_url);
    $_SESSION['secret'] = $request_token_info['oauth_token_secret'];
    $_SESSION['state'] = 1;
    header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']);
    exit;
  } else if($_SESSION['state']==1) {
    $oauth->setToken($_GET['oauth_token'],$_SESSION['secret']);
    $access_token_info = $oauth->getAccessToken($acc_url);
    $_SESSION['state'] = 2;
    $_SESSION['token'] = $access_token_info['oauth_token'];
    $_SESSION['secret'] = $access_token_info['oauth_token_secret'];
  }
  $oauth->setToken($_SESSION['token'],$_SESSION['secret']);
  $oauth->fetch("$api_url/user.json");
  $json = json_decode($oauth->getLastResponse());
  print_r($json);
} catch(OAuthException $E) {
  print_r($E);
}
?>


OAuth Funktionen

Inhaltsverzeichnis

  • oauth_get_sbs — Generate a Signature Base String
  • oauth_urlencode — Kodiert eine URI nach RFC 3986


Generate a Signature Base String

  • « OAuth Funktionen
  • oauth_urlencode »
  • PHP Manual
  • OAuth Funktionen
  • Generate a Signature Base String

oauth_get_sbs

(PECL OAuth >=0.99.7)

oauth_get_sbs — Generate a Signature Base String

Beschreibung

oauth_get_sbs ( string $http_method , string $uri , array $request_parameters = ? ) : string

Generates a Signature Base String according to pecl/oauth.

Parameter-Liste

http_method

The HTTP method.

uri

URI to encode.

request_parameters

Array of request parameters.

Rückgabewerte

Returns a Signature Base String.


Kodiert eine URI nach RFC 3986

  • « oauth_get_sbs
  • OAuth »
  • PHP Manual
  • OAuth Funktionen
  • Kodiert eine URI nach RFC 3986

oauth_urlencode

(PECL OAuth >=0.99.2)

oauth_urlencode — Kodiert eine URI nach RFC 3986

Beschreibung

oauth_urlencode ( string $uri ) : string

Kodiert eine URI nach » RFC 3986.

Parameter-Liste

uri

URI die kodiert werden soll.

Rückgabewerte

Returnt einen mach » RFC 3986 kodierten String.


The OAuth class

(PECL OAuth >= 0.99.1)

Einführung

The OAuth extension provides a simple interface to interact with data providers using the OAuth HTTP specification to protect private resources.

Klassenbeschreibung

OAuth {
/* Eigenschaften */
public $debug ;
public $sslChecks ;
public $debugInfo ;
/* Methoden */
public __construct ( string $consumer_key , string $consumer_secret , string $signature_method = OAUTH_SIG_METHOD_HMACSHA1 , int $auth_type = 0 )
public __destruct ( ) : void
public disableDebug ( ) : bool
public disableRedirects ( ) : bool
public disableSSLChecks ( ) : bool
public enableDebug ( ) : bool
public enableRedirects ( ) : bool
public enableSSLChecks ( ) : bool
public fetch ( string $protected_resource_url , array $extra_parameters = ? , string $http_method = ? , array $http_headers = ? ) : mixed
public generateSignature ( string $http_method , string $url , mixed $extra_parameters = ? ) : string|false
public getAccessToken ( string $access_token_url , string $auth_session_handle = ? , string $verifier_token = ? , string $http_method = ? ) : array
public getCAPath ( ) : array
public getLastResponse ( ) : string
public getLastResponseHeaders ( ) : string|false
public getLastResponseInfo ( ) : array
public getRequestHeader ( string $http_method , string $url , mixed $extra_parameters = ? ) : string|false
public getRequestToken ( string $request_token_url , string $callback_url = ? , string $http_method = ? ) : array
public setAuthType ( int $auth_type ) : bool
public setCAPath ( string $ca_path = ? , string $ca_info = ? ) : mixed
public setNonce ( string $nonce ) : mixed
public setRequestEngine ( int $reqengine ) : void
public setRSACertificate ( string $cert ) : mixed
public setSSLChecks ( int $sslcheck ) : bool
public setTimestamp ( string $timestamp ) : mixed
public setToken ( string $token , string $token_secret ) : bool
public setVersion ( string $version ) : bool
}

Eigenschaften

debug

sslChecks

debugInfo

Inhaltsverzeichnis

  • OAuth::__construct — Create a new OAuth object
  • OAuth::__destruct — The destructor
  • OAuth::disableDebug — Turn off verbose debugging
  • OAuth::disableRedirects — Turn off redirects
  • OAuth::disableSSLChecks — Turn off SSL checks
  • OAuth::enableDebug — Turn on verbose debugging
  • OAuth::enableRedirects — Turn on redirects
  • OAuth::enableSSLChecks — Turn on SSL checks
  • OAuth::fetch — Fetch an OAuth protected resource
  • OAuth::generateSignature — Generate a signature
  • OAuth::getAccessToken — Fetch an access token
  • OAuth::getCAPath — Gets CA information
  • OAuth::getLastResponse — Get the last response
  • OAuth::getLastResponseHeaders — Get headers for last response
  • OAuth::getLastResponseInfo — Get HTTP information about the last response
  • OAuth::getRequestHeader — Generate OAuth header string signature
  • OAuth::getRequestToken — Fetch a request token
  • OAuth::setAuthType — Set authorization type
  • OAuth::setCAPath — Set CA path and info
  • OAuth::setNonce — Set the nonce for subsequent requests
  • OAuth::setRequestEngine — The setRequestEngine purpose
  • OAuth::setRSACertificate — Set the RSA certificate
  • OAuth::setSSLChecks — Tweak specific SSL checks for requests
  • OAuth::setTimestamp — Set the timestamp
  • OAuth::setToken — Sets the token and secret
  • OAuth::setVersion — Set the OAuth version


Create a new OAuth object

  • « OAuth
  • OAuth::__destruct »
  • PHP Manual
  • OAuth
  • Create a new OAuth object

OAuth::__construct

(PECL OAuth >= 0.99.1)

OAuth::__construct — Create a new OAuth object

Beschreibung

public OAuth::__construct ( string $consumer_key , string $consumer_secret , string $signature_method = OAUTH_SIG_METHOD_HMACSHA1 , int $auth_type = 0 )

Creates a new OAuth object

Parameter-Liste

consumer_key

The consumer key provided by the service provider.

consumer_secret

The consumer secret provided by the service provider.

signature_method

This optional parameter defines which signature method to use, by default it is OAUTH_SIG_METHOD_HMACSHA1 (HMAC-SHA1).

auth_type

This optional parameter defines how to pass the OAuth parameters to a consumer, by default it is OAUTH_AUTH_TYPE_AUTHORIZATION (in the Authorization header).


The destructor

  • « OAuth::__construct
  • OAuth::disableDebug »
  • PHP Manual
  • OAuth
  • The destructor

OAuth::__destruct

(PECL OAuth >= 0.99.9)

OAuth::__destruct — The destructor

Beschreibung

public OAuth::__destruct ( ) : void

The destructor.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • OAuth::__construct() - Create a new OAuth object


Turn off verbose debugging

  • « OAuth::__destruct
  • OAuth::disableRedirects »
  • PHP Manual
  • OAuth
  • Turn off verbose debugging

OAuth::disableDebug

(PECL OAuth >= 0.99.3)

OAuth::disableDebug — Turn off verbose debugging

Beschreibung

public OAuth::disableDebug ( ) : bool

Turns off verbose request information (off by default). Alternatively, the debug property can be set to a false value to turn debug off.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true

Changelog

Version | Beschreibung
PECL oauth 0.99.8 | The related debug property was added.

Siehe auch

  • OAuth::enableDebug() - Turn on verbose debugging


Turn off redirects

  • « OAuth::disableDebug
  • OAuth::disableSSLChecks »
  • PHP Manual
  • OAuth
  • Turn off redirects

OAuth::disableRedirects

(PECL OAuth >= 0.99.9)

OAuth::disableRedirects — Turn off redirects

Beschreibung

public OAuth::disableRedirects ( ) : bool

Disable redirects from being followed automatically, thus allowing the request to be manually redirected.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true

Siehe auch

  • OAuth::enableRedirects() - Turn on redirects


Turn off SSL checks

  • « OAuth::disableRedirects
  • OAuth::enableDebug »
  • PHP Manual
  • OAuth
  • Turn off SSL checks

OAuth::disableSSLChecks

(PECL OAuth >= 0.99.5)

OAuth::disableSSLChecks — Turn off SSL checks

Beschreibung

public OAuth::disableSSLChecks ( ) : bool

Turns off the usual SSL peer certificate and host checks, this is not for production environments. Alternatively, the sslChecks member can be set to false to turn SSL checks off.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true

Changelog

Version | Beschreibung
PECL oauth 0.99.8 | The sslChecks member was added

Siehe auch

  • OAuth::enableSSLChecks() - Turn on SSL checks


Turn on verbose debugging

  • « OAuth::disableSSLChecks
  • OAuth::enableRedirects »
  • PHP Manual
  • OAuth
  • Turn on verbose debugging

OAuth::enableDebug

(PECL OAuth >= 0.99.3)

OAuth::enableDebug — Turn on verbose debugging

Beschreibung

public OAuth::enableDebug ( ) : bool

Turns on verbose request information useful for debugging, the debug information is stored in the debugInfo member. Alternatively, the debug member can be set to a non-false value to turn debug on.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true

Changelog

Version | Beschreibung
PECL oauth 0.99.8 | The debug and debugInfo members were added

Siehe auch

  • OAuth::disableDebug() - Turn off verbose debugging


Turn on redirects

  • « OAuth::enableDebug
  • OAuth::enableSSLChecks »
  • PHP Manual
  • OAuth
  • Turn on redirects

OAuth::enableRedirects

(PECL OAuth >= 0.99.9)

OAuth::enableRedirects — Turn on redirects

Beschreibung

public OAuth::enableRedirects ( ) : bool

Follow and sign redirects automatically, which is enabled by default.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true

Siehe auch

  • OAuth::disableRedirects() - Turn off redirects


Turn on SSL checks

  • « OAuth::enableRedirects
  • OAuth::fetch »
  • PHP Manual
  • OAuth
  • Turn on SSL checks

OAuth::enableSSLChecks

(PECL OAuth >= 0.99.5)

OAuth::enableSSLChecks — Turn on SSL checks

Beschreibung

public OAuth::enableSSLChecks ( ) : bool

Turns on the usual SSL peer certificate and host checks (enabled by default). Alternatively, the sslChecks member can be set to a non-false value to turn SSL checks off.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true

Changelog

Version | Beschreibung
PECL oauth 0.99.8 | The sslChecks member was added

Siehe auch

  • OAuth::disableSSLChecks() - Turn off SSL checks


Fetch an OAuth protected resource

  • « OAuth::enableSSLChecks
  • OAuth::generateSignature »
  • PHP Manual
  • OAuth
  • Fetch an OAuth protected resource

OAuth::fetch

(PECL OAuth >= 0.99.1)

OAuth::fetch — Fetch an OAuth protected resource

Beschreibung

public OAuth::fetch ( string $protected_resource_url , array $extra_parameters = ? , string $http_method = ? , array $http_headers = ? ) : mixed

Fetch a resource.

Parameter-Liste

protected_resource_url

URL to the OAuth protected resource.

extra_parameters

Extra parameters to send with the request for the resource.

http_method

One of the OAUTH_HTTP_METHOD_* OAUTH constants, which includes GET, POST, PUT, HEAD, or DELETE.

HEAD (OAUTH_HTTP_METHOD_HEAD) can be useful for discovering information prior to the request (if OAuth credentials are in the Authorization header).

http_headers

HTTP client headers (such as User-Agent, Accept, etc.)

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
PECL oauth 1.0.0 | Gab früher bei einem Fehler null anstelle von false zurück.
PECL oauth 0.99.5 | The http_method parameter was added
PECL oauth 0.99.8 | The http_headers parameter was added

Beispiele

Beispiel #1 OAuth::fetch() example

<?php
try {
    $oauth = new OAuth("consumer_key","consumer_secret",OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);
    $oauth->setToken("access_token","access_token_secret");

    $oauth->fetch("http://photos.example.net/photo?file=vacation.jpg");

    $response_info = $oauth->getLastResponseInfo();
    header("Content-Type: {$response_info["content_type"]}");
    echo $oauth->getLastResponse();
} catch(OAuthException $E) {
    echo "Exception caught!\n";
    echo "Response: ". $E->lastResponse . "\n";
}
?>

Siehe auch

  • OAuth::getLastResponse() - Get the last response
  • OAuth::getLastResponseInfo() - Get HTTP information about the last response
  • OAuth::setToken() - Sets the token and secret


Generate a signature

  • « OAuth::fetch
  • OAuth::getAccessToken »
  • PHP Manual
  • OAuth
  • Generate a signature

OAuth::generateSignature

(No version information available, might only be in Git)

OAuth::generateSignature — Generate a signature

Beschreibung

public OAuth::generateSignature ( string $http_method , string $url , mixed $extra_parameters = ? ) : string|false

Generate a signature based on the final HTTP method, URL and a string/array of parameters.

Parameter-Liste

http_method

HTTP method for request

url

URL for request

extra_parameters

String or array of additional parameters.

Rückgabewerte

A string containing the generated signatureIm Fehlerfall wird false zurückgegeben.


Fetch an access token

  • « OAuth::generateSignature
  • OAuth::getCAPath »
  • PHP Manual
  • OAuth
  • Fetch an access token

OAuth::getAccessToken

(PECL OAuth >= 0.99.1)

OAuth::getAccessToken — Fetch an access token

Beschreibung

public OAuth::getAccessToken ( string $access_token_url , string $auth_session_handle = ? , string $verifier_token = ? , string $http_method = ? ) : array

Fetch an access token, secret and any additional response parameters from the service provider.

Parameter-Liste

access_token_url

URL to the access token API.

auth_session_handle

Authorization session handle, this parameter does not have any citation in the core OAuth 1.0 specification but may be implemented by large providers. » See ScalableOAuth for more information.

verifier_token

For service providers which support 1.0a, a verifier_token must be passed while exchanging the request token for the access token. If the verifier_token is present in $_GET or $_POST it is passed automatically and the caller does not need to specify a verifier_token (usually if the access token is exchanged at the oauth_callback URL). » See ScalableOAuth for more information.

http_method

HTTP method to use, e.g. GET or POST.

Rückgabewerte

Returns an array containing the parsed OAuth response on success or false on failure.

Changelog

Version | Beschreibung
PECL oauth 1.0.0 | Gab früher bei einem Fehler null anstelle von false zurück.
PECL oauth 0.99.9 | The verifier_token parameter was added

Beispiele

Beispiel #1 OAuth::getAccessToken() example

<?php
try {
    $oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
    $oauth->setToken($request_token,$request_token_secret);
    $access_token_info = $oauth->getAccessToken("https://example.com/oauth/access_token");
    if(!empty($access_token_info)) {
        print_r($access_token_info);
    } else {
        print "Failed fetching access token, response was: " . $oauth->getLastResponse();
    }
} catch(OAuthException $E) {
    echo "Response: ". $E->lastResponse . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [oauth_token] => some_token
    [oauth_token_secret] => some_token_secret
)

Siehe auch

  • OAuth::getLastResponse() - Get the last response
  • OAuth::getLastResponseInfo() - Get HTTP information about the last response
  • OAuth::setToken() - Sets the token and secret


Gets CA information

  • « OAuth::getAccessToken
  • OAuth::getLastResponse »
  • PHP Manual
  • OAuth
  • Gets CA information

OAuth::getCAPath

(PECL OAuth >= 0.99.8)

OAuth::getCAPath — Gets CA information

Beschreibung

public OAuth::getCAPath ( ) : array

Gets the Certificate Authority information, which includes the ca_path and ca_info set by OAuth::setCaPath().

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

An array of Certificate Authority information, specifically as ca_path and ca_info keys within the returned associative array.

Siehe auch

  • OAuth::setCAPath() - Set CA path and info
  • OAuth::getLastResponseInfo() - Get HTTP information about the last response


Get the last response

  • « OAuth::getCAPath
  • OAuth::getLastResponseHeaders »
  • PHP Manual
  • OAuth
  • Get the last response

OAuth::getLastResponse

(PECL OAuth >= 0.99.1)

OAuth::getLastResponse — Get the last response

Beschreibung

public OAuth::getLastResponse ( ) : string

Get the raw response of the most recent request.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string containing the last response.

Siehe auch

  • OAuth::getLastResponseInfo() - Get HTTP information about the last response
  • OAuth::fetch() - Fetch an OAuth protected resource


Get headers for last response

  • « OAuth::getLastResponse
  • OAuth::getLastResponseInfo »
  • PHP Manual
  • OAuth
  • Get headers for last response

OAuth::getLastResponseHeaders

(No version information available, might only be in Git)

OAuth::getLastResponseHeaders — Get headers for last response

Beschreibung

public OAuth::getLastResponseHeaders ( ) : string|false

Get headers for last response.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A string containing the last response's headersIm Fehlerfall wird false zurückgegeben.


Get HTTP information about the last response

  • « OAuth::getLastResponseHeaders
  • OAuth::getRequestHeader »
  • PHP Manual
  • OAuth
  • Get HTTP information about the last response

OAuth::getLastResponseInfo

(PECL OAuth >= 0.99.1)

OAuth::getLastResponseInfo — Get HTTP information about the last response

Beschreibung

public OAuth::getLastResponseInfo ( ) : array

Get HTTP information about the last response.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns an array containing the response information for the last request. Constants from curl_getinfo() may be used.

Siehe auch

  • OAuth::fetch() - Fetch an OAuth protected resource
  • OAuth::getLastResponse() - Get the last response


Generate OAuth header string signature

  • « OAuth::getLastResponseInfo
  • OAuth::getRequestToken »
  • PHP Manual
  • OAuth
  • Generate OAuth header string signature

OAuth::getRequestHeader

(No version information available, might only be in Git)

OAuth::getRequestHeader — Generate OAuth header string signature

Beschreibung

public OAuth::getRequestHeader ( string $http_method , string $url , mixed $extra_parameters = ? ) : string|false

Generate OAuth header string signature based on the final HTTP method, URL and a string/array of parameters

Parameter-Liste

http_method

HTTP method for request.

url

URL for request.

extra_parameters

String or array of additional parameters.

Rückgabewerte

A string containing the generated request headerIm Fehlerfall wird false zurückgegeben.


Fetch a request token

  • « OAuth::getRequestHeader
  • OAuth::setAuthType »
  • PHP Manual
  • OAuth
  • Fetch a request token

OAuth::getRequestToken

(PECL OAuth >= 0.99.1)

OAuth::getRequestToken — Fetch a request token

Beschreibung

public OAuth::getRequestToken ( string $request_token_url , string $callback_url = ? , string $http_method = ? ) : array

Fetch a request token, secret and any additional response parameters from the service provider.

Parameter-Liste

request_token_url

URL to the request token API.

callback_url

OAuth callback URL. If callback_url is passed and is an empty value, it is set to "oob" to address the OAuth 2009.1 advisory.

http_method

HTTP method to use, e.g. GET or POST.

Rückgabewerte

Returns an array containing the parsed OAuth response on success or false on failure.

Changelog

Version | Beschreibung
PECL oauth 1.0.0 | Gab früher bei einem Fehler null anstelle von false zurück.
PECL oauth 0.99.9 | The callback_url parameter was added

Beispiele

Beispiel #1 OAuth::getRequestToken() example

<?php
try {
    $oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
    $request_token_info = $oauth->getRequestToken("https://example.com/oauth/request_token");
    if(!empty($request_token_info)) {
        print_r($request_token_info);
    } else {
        print "Failed fetching request token, response was: " . $oauth->getLastResponse();
    }
} catch(OAuthException $E) {
    echo "Response: ". $E->lastResponse . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Array
(
    [oauth_token] => some_token
    [oauth_token_secret] => some_token_secret
)

Siehe auch

  • OAuth::getLastResponse() - Get the last response
  • OAuth::getLastResponseInfo() - Get HTTP information about the last response


Set authorization type

  • « OAuth::getRequestToken
  • OAuth::setCAPath »
  • PHP Manual
  • OAuth
  • Set authorization type

OAuth::setAuthType

(PECL OAuth >= 0.99.1)

OAuth::setAuthType — Set authorization type

Beschreibung

public OAuth::setAuthType ( int $auth_type ) : bool

Set where the OAuth parameters should be passed.

Parameter-Liste

auth_type

auth_type can be one of the following flags (in order of decreasing preference as per OAuth 1.0 section 5.2):

OAUTH_AUTH_TYPE_AUTHORIZATION
Pass the OAuth parameters in the HTTP Authorization header.
OAUTH_AUTH_TYPE_FORM
Append the OAuth parameters to the HTTP POST request body.
OAUTH_AUTH_TYPE_URI
Append the OAuth parameters to the request URI.
OAUTH_AUTH_TYPE_NONE
None.

Rückgabewerte

Returns true if a parameter is correctly set, otherwise false (e.g., if an invalid auth_type is passed in.)

Changelog

Version | Beschreibung
PECL oauth 1.0.0 | Gab früher bei einem Fehler null anstelle von false zurück.


Set CA path and info

  • « OAuth::setAuthType
  • OAuth::setNonce »
  • PHP Manual
  • OAuth
  • Set CA path and info

OAuth::setCAPath

(PECL OAuth >= 0.99.8)

OAuth::setCAPath — Set CA path and info

Beschreibung

public OAuth::setCAPath ( string $ca_path = ? , string $ca_info = ? ) : mixed

Sets the Certificate Authority (CA), both for path and info.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

ca_path

The CA Path being set.

ca_info

The CA Info being set.

Rückgabewerte

Returns true on success, or false if either ca_path or ca_info are considered invalid.

Changelog

Version | Beschreibung
PECL oauth 1.0.0 | Gab früher bei einem Fehler null anstelle von false zurück.

Siehe auch

  • OAuth::getCaPath() - Gets CA information


Set the nonce for subsequent requests

  • « OAuth::setCAPath
  • OAuth::setRequestEngine »
  • PHP Manual
  • OAuth
  • Set the nonce for subsequent requests

OAuth::setNonce

(PECL OAuth >= 0.99.1)

OAuth::setNonce — Set the nonce for subsequent requests

Beschreibung

public OAuth::setNonce ( string $nonce ) : mixed

Sets the nonce for all subsequent requests.

Parameter-Liste

nonce

The value for oauth_nonce.

Rückgabewerte

Returns true on success, or false if the nonce is considered invalid.

Changelog

Version | Beschreibung
PECL oauth 1.0.0 | Gab früher bei einem Fehler null anstelle von false zurück.

Siehe auch

  • OAuth::setToken() - Sets the token and secret
  • OAuth::setAuthType() - Set authorization type
  • OAuth::setVersion() - Set the OAuth version


The setRequestEngine purpose

  • « OAuth::setNonce
  • OAuth::setRSACertificate »
  • PHP Manual
  • OAuth
  • The setRequestEngine purpose

OAuth::setRequestEngine

(PECL OAuth >= 1.0.0)

OAuth::setRequestEngine — The setRequestEngine purpose

Beschreibung

public OAuth::setRequestEngine ( int $reqengine ) : void

Sets the Request Engine, that will be sending the HTTP requests.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

reqengine

The desired request engine. Set to OAUTH_REQENGINE_STREAMS to use PHP Streams, or OAUTH_REQENGINE_CURL to use Curl.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Emits an OAuthException exception if an invalid request engine is chosen.

Beispiele

Beispiel #1 OAuth::setRequestEngine() example

<?php
$consumer = new OAuth();

$consumer->setRequestEngine(OAUTH_REQENGINE_STREAMS);
?>

Siehe auch

  • Curl
  • PHP streams
  • OAuthException


Set the RSA certificate

  • « OAuth::setRequestEngine
  • OAuth::setSSLChecks »
  • PHP Manual
  • OAuth
  • Set the RSA certificate

OAuth::setRSACertificate

(PECL OAuth >= 1.0.0)

OAuth::setRSACertificate — Set the RSA certificate

Beschreibung

public OAuth::setRSACertificate ( string $cert ) : mixed

Sets the RSA certificate.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

cert

The RSA certificate.

Rückgabewerte

Returns true on success, or false on failure (e.g., the RSA certificate cannot be parsed.)

Changelog

Version | Beschreibung
PECL oauth 1.0.0 | Gab früher bei einem Fehler null anstelle von false zurück.

Beispiele

Beispiel #1 An OAuth::setRsaCertificate() example

<?php
$consume = new OAuth('1234', '', OAUTH_SIG_METHOD_RSASHA1);

$consume->setRSACertificate(file_get_contents('test.pem'));
?>

Siehe auch

  • OAuth::setCaPath() - Set CA path and info


Tweak specific SSL checks for requests

  • « OAuth::setRSACertificate
  • OAuth::setTimestamp »
  • PHP Manual
  • OAuth
  • Tweak specific SSL checks for requests

OAuth::setSSLChecks

(No version information available, might only be in Git)

OAuth::setSSLChecks — Tweak specific SSL checks for requests

Beschreibung

public OAuth::setSSLChecks ( int $sslcheck ) : bool

Tweak specific SSL checks for requests.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

sslcheck

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set the timestamp

  • « OAuth::setSSLChecks
  • OAuth::setToken »
  • PHP Manual
  • OAuth
  • Set the timestamp

OAuth::setTimestamp

(PECL OAuth >= 1.0.0)

OAuth::setTimestamp — Set the timestamp

Beschreibung

public OAuth::setTimestamp ( string $timestamp ) : mixed

Sets the OAuth timestamp for subsequent requests.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

timestamp

The timestamp.

Rückgabewerte

Returns true, unless the timestamp is invalid, in which case false is returned.

Changelog

Version | Beschreibung
PECL oauth 1.0.0 | Gab früher bei einem Fehler null anstelle von false zurück.

Siehe auch

  • OAuth::setNonce() - Set the nonce for subsequent requests


Sets the token and secret

  • « OAuth::setTimestamp
  • OAuth::setVersion »
  • PHP Manual
  • OAuth
  • Sets the token and secret

OAuth::setToken

(PECL OAuth >= 0.99.1)

OAuth::setToken — Sets the token and secret

Beschreibung

public OAuth::setToken ( string $token , string $token_secret ) : bool

Set the token and secret for subsequent requests.

Parameter-Liste

token

The OAuth token.

token_secret

The OAuth token secret.

Rückgabewerte

true

Beispiele

Beispiel #1 OAuth::setToken() example

<?php
$oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
$oauth->setToken("token","token-secret");
?>


Set the OAuth version

  • « OAuth::setToken
  • OAuthProvider »
  • PHP Manual
  • OAuth
  • Set the OAuth version

OAuth::setVersion

(PECL OAuth >= 0.99.1)

OAuth::setVersion — Set the OAuth version

Beschreibung

public OAuth::setVersion ( string $version ) : bool

Sets the OAuth version for subsequent requests

Parameter-Liste

version

OAuth version, default value is always "1.0"

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


The OAuthProvider class

(PECL OAuth >= 1.0.0)

Einführung

Manages an OAuth provider class.

See also an external in-depth tutorial titled » Writing an OAuth Provider Service, which takes a hands-on approach to providing this service. There are also » OAuth provider examples within the OAuth extensions sources.

Klassenbeschreibung

OAuthProvider {
/* Methods */
final public addRequiredParameter ( string $req_params ) : bool
public callconsumerHandler ( ) : void
public callTimestampNonceHandler ( ) : void
public calltokenHandler ( ) : void
public checkOAuthRequest ( string $uri = ? , string $method = ? ) : void
public __construct ( array $params_array = ? )
public consumerHandler ( callable $callback_function ) : void
final public static generateToken ( int $size , bool $strong = false ) : string
public is2LeggedEndpoint ( mixed $params_array ) : void
public isRequestTokenEndpoint ( bool $will_issue_request_token ) : void
final public removeRequiredParameter ( string $req_params ) : bool
final public static reportProblem ( string $oauthexception , bool $send_headers = true ) : string
final public setParam ( string $param_key , mixed $param_val = ? ) : bool
final public setRequestTokenPath ( string $path ) : bool
public timestampNonceHandler ( callable $callback_function ) : void
public tokenHandler ( callable $callback_function ) : void
}

Inhaltsverzeichnis

  • OAuthProvider::addRequiredParameter — Add required parameters
  • OAuthProvider::callconsumerHandler — Calls the consumerNonceHandler callback
  • OAuthProvider::callTimestampNonceHandler — Calls the timestampNonceHandler callback
  • OAuthProvider::calltokenHandler — Calls the tokenNonceHandler callback
  • OAuthProvider::checkOAuthRequest — Check an oauth request
  • OAuthProvider::__construct — Constructs a new OAuthProvider object
  • OAuthProvider::consumerHandler — Set the consumerHandler handler callback
  • OAuthProvider::generateToken — Generate a random token
  • OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint
  • OAuthProvider::isRequestTokenEndpoint — Sets isRequestTokenEndpoint
  • OAuthProvider::removeRequiredParameter — Remove a required parameter
  • OAuthProvider::reportProblem — Report a problem
  • OAuthProvider::setParam — Set a parameter
  • OAuthProvider::setRequestTokenPath — Set request token path
  • OAuthProvider::timestampNonceHandler — Set the timestampNonceHandler handler callback
  • OAuthProvider::tokenHandler — Set the tokenHandler handler callback


Add required parameters

  • « OAuthProvider
  • OAuthProvider::callconsumerHandler »
  • PHP Manual
  • OAuthProvider
  • Add required parameters

OAuthProvider::addRequiredParameter

(PECL OAuth >= 1.0.0)

OAuthProvider::addRequiredParameter — Add required parameters

Beschreibung

final public OAuthProvider::addRequiredParameter ( string $req_params ) : bool

Add required oauth provider parameters.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

req_params

The required parameters.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • OAuthProvider::removeRequiredParameter() - Remove a required parameter


Calls the consumerNonceHandler callback

  • « OAuthProvider::addRequiredParameter
  • OAuthProvider::callTimestampNonceHandler »
  • PHP Manual
  • OAuthProvider
  • Calls the consumerNonceHandler callback

OAuthProvider::callconsumerHandler

(No version information available, might only be in Git)

OAuthProvider::callconsumerHandler — Calls the consumerNonceHandler callback

Beschreibung

public OAuthProvider::callconsumerHandler ( ) : void

Calls the registered consumer handler callback function, which is set with OAuthProvider::consumerHandler().

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Gibt einen Fehler der Stufe E_ERROR aus, wenn die Callback-Funktion nicht aufgerufen werden kann oder nicht angegeben wurde.

Siehe auch

  • OAuthProvider::consumerHandler() - Set the consumerHandler handler callback


Calls the timestampNonceHandler callback

  • « OAuthProvider::callconsumerHandler
  • OAuthProvider::calltokenHandler »
  • PHP Manual
  • OAuthProvider
  • Calls the timestampNonceHandler callback

OAuthProvider::callTimestampNonceHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::callTimestampNonceHandler — Calls the timestampNonceHandler callback

Beschreibung

public OAuthProvider::callTimestampNonceHandler ( ) : void

Calls the registered timestamp handler callback function, which is set with OAuthProvider::timestampNonceHandler().

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Gibt einen Fehler der Stufe E_ERROR aus, wenn die Callback-Funktion nicht aufgerufen werden kann oder nicht angegeben wurde.

Siehe auch

  • OAuthProvider::timestampNonceHandler() - Set the timestampNonceHandler handler callback


Calls the tokenNonceHandler callback

  • « OAuthProvider::callTimestampNonceHandler
  • OAuthProvider::checkOAuthRequest »
  • PHP Manual
  • OAuthProvider
  • Calls the tokenNonceHandler callback

OAuthProvider::calltokenHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::calltokenHandler — Calls the tokenNonceHandler callback

Beschreibung

public OAuthProvider::calltokenHandler ( ) : void

Calls the registered token handler callback function, which is set with OAuthProvider::tokenHandler().

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Gibt einen Fehler der Stufe E_ERROR aus, wenn die Callback-Funktion nicht aufgerufen werden kann oder nicht angegeben wurde.

Siehe auch

  • OAuthProvider::tokenHandler() - Set the tokenHandler handler callback


Check an oauth request

  • « OAuthProvider::calltokenHandler
  • OAuthProvider::__construct »
  • PHP Manual
  • OAuthProvider
  • Check an oauth request

OAuthProvider::checkOAuthRequest

(PECL OAuth >= 1.0.0)

OAuthProvider::checkOAuthRequest — Check an oauth request

Beschreibung

public OAuthProvider::checkOAuthRequest ( string $uri = ? , string $method = ? ) : void

Checks an OAuth request.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

uri

The optional URI, or endpoint.

method

The HTTP method. Optionally pass in one of the OAUTH_HTTP_METHOD_* OAuth constants.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

Emits an E_ERROR level error if the HTTP method cannot be detected.

Siehe auch

  • OAuthProvider::reportProblem() - Report a problem


Constructs a new OAuthProvider object

  • « OAuthProvider::checkOAuthRequest
  • OAuthProvider::consumerHandler »
  • PHP Manual
  • OAuthProvider
  • Constructs a new OAuthProvider object

OAuthProvider::__construct

(PECL OAuth >= 1.0.0)

OAuthProvider::__construct — Constructs a new OAuthProvider object

Beschreibung

public OAuthProvider::__construct ( array $params_array = ? )

Initiates a new OAuthProvider object.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

params_array

Setting these optional parameters is limited to the CLI SAPI.

Rückgabewerte

An OAuthProvider object.

Beispiele

Beispiel #1 OAuthProvider::__construct() example

<?php
try {

    $op = new OAuthProvider();

    // Uses user-defined callback functions
    $op->consumerHandler(array($this, 'lookupConsumer'));
    $op->timestampNonceHandler(array($this, 'timestampNonceChecker'));
    $op->tokenHandler(array($this, 'myTokenHandler'));

    // Ignore the foo_uri parameter
    $op->setParam('foo_uri', NULL);

    // No token needed for this end point
    $op->setRequestTokenPath('/v1/oauth/request_token');

    $op->checkOAuthRequest();

} catch (OAuthException $e) {

    echo OAuthProvider::reportProblem($e);
}
?>

Siehe auch

  • OAuthProvider::setParam() - Set a parameter


Set the consumerHandler handler callback

  • « OAuthProvider::__construct
  • OAuthProvider::generateToken »
  • PHP Manual
  • OAuthProvider
  • Set the consumerHandler handler callback

OAuthProvider::consumerHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::consumerHandler — Set the consumerHandler handler callback

Beschreibung

public OAuthProvider::consumerHandler ( callable $callback_function ) : void

Sets the consumer handler callback, which will later be called with OAuthProvider::callConsumerHandler().

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

callback_function

The callable functions name.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Example OAuthProvider::consumerHandler() callback

<?php
function lookupConsumer($provider) {

    if ($provider->consumer_key === 'unknown') {
        return OAUTH_CONSUMER_KEY_UNKNOWN;
    } else if($provider->consumer_key == 'blacklisted' || $provider->consumer_key === 'throttled') {
        return OAUTH_CONSUMER_KEY_REFUSED;
    }

    $provider->consumer_secret = "the_consumers_secret";

    return OAUTH_OK;
}
?>

Siehe auch

  • OAuthProvider::callConsumerHandler() - Calls the consumerNonceHandler callback


Generate a random token

  • « OAuthProvider::consumerHandler
  • OAuthProvider::is2LeggedEndpoint »
  • PHP Manual
  • OAuthProvider
  • Generate a random token

OAuthProvider::generateToken

(PECL OAuth >= 1.0.0)

OAuthProvider::generateToken — Generate a random token

Beschreibung

final public static OAuthProvider::generateToken ( int $size , bool $strong = false ) : string

Generates a string of pseudo-random bytes.

Parameter-Liste

size

The desired token length, in terms of bytes.

strong

Setting to true means /dev/random will be used for entropy, as otherwise the non-blocking /dev/urandom is used. This parameter is ignored on Windows.

Rückgabewerte

The generated token, as a string of bytes.

Fehler/Exceptions

If the strong parameter is true, then an E_WARNING level error will be emitted when the fallback rand() implementation is used to fill the remaining random bytes (e.g., when not enough random data was found, initially).

Beispiele

Beispiel #1 OAuthProvider::generateToken() example

<?php
$p = new OAuthProvider();

$t = $p->generateToken(4);

echo strlen($t),  PHP_EOL;
echo bin2hex($t), PHP_EOL;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

4
b6a82c27

Anmerkungen

Hinweis:

When not enough random data is available to the system, this function will fill the remaining random bytes using the internal PHP rand() implementation.

Siehe auch

  • openssl_random_pseudo_bytes() - Generate a pseudo-random string of bytes
  • mcrypt_create_iv() - Creates an initialization vector (IV) from a random source


is2LeggedEndpoint

  • « OAuthProvider::generateToken
  • OAuthProvider::isRequestTokenEndpoint »
  • PHP Manual
  • OAuthProvider
  • is2LeggedEndpoint

OAuthProvider::is2LeggedEndpoint

(PECL OAuth >= 1.0.0)

OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint

Beschreibung

public OAuthProvider::is2LeggedEndpoint ( mixed $params_array ) : void

The 2-legged flow, or request signing. It does not require a token.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

params_array

Rückgabewerte

An OAuthProvider object.

Beispiele

Beispiel #1 OAuthProvider::is2LeggedEndpoint() example

<?php

$provider = new OAuthProvider();

$provider->is2LeggedEndpoint(true);

?>

Siehe auch

  • OAuthProvider::__construct() - Constructs a new OAuthProvider object


Sets isRequestTokenEndpoint

  • « OAuthProvider::is2LeggedEndpoint
  • OAuthProvider::removeRequiredParameter »
  • PHP Manual
  • OAuthProvider
  • Sets isRequestTokenEndpoint

OAuthProvider::isRequestTokenEndpoint

(PECL OAuth >= 1.0.0)

OAuthProvider::isRequestTokenEndpoint — Sets isRequestTokenEndpoint

Beschreibung

public OAuthProvider::isRequestTokenEndpoint ( bool $will_issue_request_token ) : void

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

will_issue_request_token

Sets whether or not it will issue a request token, thus determining if OAuthProvider::tokenHandler() needs to be called.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • OAuthProvider::setRequestTokenPath() - Set request token path
  • OAuthProvider::reportProblem() - Report a problem


Remove a required parameter

  • « OAuthProvider::isRequestTokenEndpoint
  • OAuthProvider::reportProblem »
  • PHP Manual
  • OAuthProvider
  • Remove a required parameter

OAuthProvider::removeRequiredParameter

(PECL OAuth >= 1.0.0)

OAuthProvider::removeRequiredParameter — Remove a required parameter

Beschreibung

final public OAuthProvider::removeRequiredParameter ( string $req_params ) : bool

Removes a required parameter.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

req_params

The required parameter to be removed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • OAuthProvider::setParam() - Set a parameter
  • OAuthProvider::addRequiredParameter() - Add required parameters


Report a problem

  • « OAuthProvider::removeRequiredParameter
  • OAuthProvider::setParam »
  • PHP Manual
  • OAuthProvider
  • Report a problem

OAuthProvider::reportProblem

(PECL OAuth >= 1.0.0)

OAuthProvider::reportProblem — Report a problem

Beschreibung

final public static OAuthProvider::reportProblem ( string $oauthexception , bool $send_headers = true ) : string

Pass in a problem as an OAuthException, with possible problems listed in the OAuth constants section.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

oauthexception

The OAuthException.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • OAuthProvider::checkOAuthRequest() - Check an oauth request
  • OAuthProvider::isRequestTokenEndpoint() - Sets isRequestTokenEndpoint


Set a parameter

  • « OAuthProvider::reportProblem
  • OAuthProvider::setRequestTokenPath »
  • PHP Manual
  • OAuthProvider
  • Set a parameter

OAuthProvider::setParam

(PECL OAuth >= 1.0.0)

OAuthProvider::setParam — Set a parameter

Beschreibung

final public OAuthProvider::setParam ( string $param_key , mixed $param_val = ? ) : bool

Sets a parameter.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

param_key

The parameter key.

param_val

The optional parameter value.

To exclude a parameter from signature verification, set its value to null.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • OAuthProvider::addRequiredParameter() - Add required parameters


Set request token path

  • « OAuthProvider::setParam
  • OAuthProvider::timestampNonceHandler »
  • PHP Manual
  • OAuthProvider
  • Set request token path

OAuthProvider::setRequestTokenPath

(PECL OAuth >= 1.0.0)

OAuthProvider::setRequestTokenPath — Set request token path

Beschreibung

final public OAuthProvider::setRequestTokenPath ( string $path ) : bool

Sets the request tokens path.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

path

The path.

Rückgabewerte

true

Siehe auch

  • OAuthProvider::tokenHandler() - Set the tokenHandler handler callback


Set the timestampNonceHandler handler callback

  • « OAuthProvider::setRequestTokenPath
  • OAuthProvider::tokenHandler »
  • PHP Manual
  • OAuthProvider
  • Set the timestampNonceHandler handler callback

OAuthProvider::timestampNonceHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::timestampNonceHandler — Set the timestampNonceHandler handler callback

Beschreibung

public OAuthProvider::timestampNonceHandler ( callable $callback_function ) : void

Sets the timestamp nonce handler callback, which will later be called with OAuthProvider::callTimestampNonceHandler(). Errors related to timestamp/nonce are thrown to this callback.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

callback_function

The callable functions name.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Example OAuthProvider::timestampNonceHandler() callback

<?php
function timestampNonceChecker($provider) {

    if ($provider->nonce === 'bad') {
        return OAUTH_BAD_NONCE;
    } elseif ($provider->timestamp == '0') {
        return OAUTH_BAD_TIMESTAMP;
    }

    return OAUTH_OK;
}
?>

Siehe auch

  • OAuthProvider::callTimestampNonceHandler() - Calls the timestampNonceHandler callback


Set the tokenHandler handler callback

  • « OAuthProvider::timestampNonceHandler
  • OAuthException »
  • PHP Manual
  • OAuthProvider
  • Set the tokenHandler handler callback

OAuthProvider::tokenHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::tokenHandler — Set the tokenHandler handler callback

Beschreibung

public OAuthProvider::tokenHandler ( callable $callback_function ) : void

Sets the token handler callback, which will later be called with OAuthProvider::callTokenHandler().

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

callback_function

The callable functions name.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Example OAuthProvider::tokenHandler() callback

<?php
function tokenHandler($provider) {

    if ($provider->token === 'rejected') {
        return OAUTH_TOKEN_REJECTED;
    } elseif ($provider->token === 'revoked') {
        return OAUTH_TOKEN_REVOKED;
    }

    $provider->token_secret = "the_tokens_secret";
    return OAUTH_OK;
}
?>

Siehe auch

  • OAuthProvider::callTokenHandler() - Calls the tokenNonceHandler callback


OAuthException class

(PECL OAuth >= 0.99.1)

Einführung

This exception is thrown when exceptional errors occur while using the OAuth extension and contains useful debugging information.

Klassenbeschreibung

OAuthException extends Exception {
/* Eigenschaften */
public $lastResponse ;
public $debugInfo ;
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

lastResponse

The response of the exception which occurred, if any

debugInfo


SOAP

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • SOAP Funktionen
    • is_soap_fault — Prüft, ob ein SOAP-Aufruf fehlgeschlagen ist
    • use_soap_error_handler — Definiert, ob der SOAP-Errorhandler benutzt werden soll
  • SoapClient — Die SoapClient-Klasse
    • SoapClient::__call — Ruft eine SOAP-Funktion auf (veraltet)
    • SoapClient::__construct — SoapClient-Konstruktor
    • SoapClient::__doRequest — Führt eine SOAP-Anfrage aus
    • SoapClient::__getCookies — Get list of cookies
    • SoapClient::__getFunctions — Gibt eine Liste verfügbarer SOAP-Funktionen zurück
    • SoapClient::__getLastRequest — Gibt die letzte SOAP-Anfrage zurück
    • SoapClient::__getLastRequestHeaders — Gibt die SOAP-Header der letzten Anfrage zurück
    • SoapClient::__getLastResponse — Gibt die letzte SOAP-Antwort zurück
    • SoapClient::__getLastResponseHeaders — Gibt die SOAP-Header der letzten Antwort zurück
    • SoapClient::__getTypes — Gibt eine Liste der SOAP-Typen zurück
    • SoapClient::__setCookie — Definiert ein Cookie für Soap-Anfragen
    • SoapClient::__setLocation — Bestimmt die Adresse des zu nutzenden Webservices
    • SoapClient::__setSoapHeaders — Setzt die SOAP-Header für nachfolgende Aufrufe
    • SoapClient::__soapCall — Ruft eine SOAP-Funktion auf
  • SoapServer — Die SoapServer-Klasse
    • SoapServer::addFunction — Fügt eine oder mehrere Funktionen zur Verarbeitung von SOAP-Anfragen hinzu
    • SoapServer::addSoapHeader — Add a SOAP header to the response
    • SoapServer::__construct — SoapServer-Konstruktor
    • SoapServer::fault — Erzeugt einen SoapServer-Fehler, der einen Fehlerzustand anzeigt
    • SoapServer::getFunctions — Gibt eine Liste aller definierten Funktionen zurück
    • SoapServer::handle — Verarbeitet eine SOAP-Anfrage
    • SoapServer::setClass — Setzt die Klasse, welche SOAP-Anfragen verarbeitet
    • SoapServer::setObject — Sets the object which will be used to handle SOAP requests
    • SoapServer->setPersistence() — Versetzt einen SoapServer in den Persistenz-Modus
  • SoapFault — Die SoapFault-Klasse
    • SoapFault::__construct — SoapFault-Konstruktor
    • SoapFault::__toString — Obtain a string representation of a SoapFault
  • SoapHeader — Die SoapHeader-Klasse
    • SoapHeader::__construct — SoapHeader-Konstruktor
  • SoapParam — Die SoapParam-Klasse
    • SoapParam::__construct — SoapParam-Konstruktor
  • SoapVar — Die SoapVar-Klasse
    • SoapVar::__construct — SoapVar-Konstruktor


Einführung

Die SOAP Erweiterung kann zum Erstellen von SOAP-Servern und -Clients verwendet werden. Sie unterstützt Untermengen der » SOAP 1.1-, » SOAP 1.2- und » WSDL 1.1-Spezifikationen.


Anforderungen

Diese Erweiterung erfordert die Erweiterung libxml. Das heißt, dass die Übergabe von --with-libxml, oder vor PHP 7.4.0 --enable-libxml, ebenfalls benötigt wird. Dies wird jedoch implizit erfüllt, da libxml standardmäßig aktiviert wird.


  • « Anforderungen
  • Laufzeit-Konfiguration »
  • PHP Manual
  • Installation/Konfiguration
  • Installation

Installation

To enable SOAP support, configure PHP with --enable-soap.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

SOAP-Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
soap.wsdl_cache_enabled | 1 | PHP_INI_ALL |
soap.wsdl_cache_dir | /tmp | PHP_INI_ALL |
soap.wsdl_cache_ttl | 86400 | PHP_INI_ALL |
soap.wsdl_cache | 1 | PHP_INI_ALL |
soap.wsdl_cache_limit | 5 | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

soap.wsdl_cache_enabled int

Aktiviert oder deaktiviert das WSDL-Caching.

soap.wsdl_cache_dir string

Bestimmt den Verzeichnisnamen, in dem die SOAP-Erweiterung Cache-Dateien ablegt.

soap.wsdl_cache_ttl int

Bestimmt die Anzahl der Sekunden (time to live), während derer die Cache-Dateien anstelle der originalen verwendet werden.

soap.wsdl_cache int

Wenn soap.wsdl_cache_enabled eingeschaltet ist, bestimmt diese Einstellung die Art des Cachings. Dies kann einer der folgenden Werte sein: WSDL_CACHE_NONE (0), WSDL_CACHE_DISK (1), WSDL_CACHE_MEMORY (2) oder WSDL_CACHE_BOTH (3). Der Wert kann außerdem mittels des options-Arrays im Konstruktor von SoapClient oder SoapServer bestimmt werden.

soap.wsdl_cache_limit int

Maximale Anzahl der in-memory zwischengespeicherten WSDL-Dateien. Werden in einem vollen Memorycache weitere Dateien abgelegt, so werden dafür die ältesten Dateien gelöscht.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

SOAP constants
Constant | Value | Description
SOAP_1_1 (int) | 1 |
SOAP_1_2 (int) | 2 |
SOAP_PERSISTENCE_SESSION (int) | 1 |
SOAP_PERSISTENCE_REQUEST (int) | 2 |
SOAP_FUNCTIONS_ALL (int) | 999 |
SOAP_ENCODED (int) | 1 |
SOAP_LITERAL (int) | 2 |
SOAP_RPC (int) | 1 |
SOAP_DOCUMENT (int) | 2 |
SOAP_ACTOR_NEXT (int) | 1 |
SOAP_ACTOR_NONE (int) | 2 |
SOAP_ACTOR_UNLIMATERECEIVER (int) | 3 |
SOAP_COMPRESSION_ACCEPT (int) | 32 |
SOAP_COMPRESSION_GZIP (int) | 0 |
SOAP_COMPRESSION_DEFLATE (int) | 16 |
SOAP_AUTHENTICATION_BASIC (int) | 0 |
SOAP_AUTHENTICATION_DIGEST (int) | 1 |
SOAP_SSL_METHOD_TLS (int) | 0 | Ab PHP 5.5.0.
SOAP_SSL_METHOD_SSLv2 (int) | 1 | Ab PHP 5.5.0.
SOAP_SSL_METHOD_SSLv3 (int) | 2 | Ab PHP 5.5.0.
SOAP_SSL_METHOD_SSLv23 (int) | 3 | Ab PHP 5.5.0.
UNKNOWN_TYPE (int) | 999998 |
XSD_STRING (int) | 101 |
XSD_BOOLEAN (int) | 102 |
XSD_DECIMAL (int) | 103 |
XSD_FLOAT (int) | 104 |
XSD_DOUBLE (int) | 105 |
XSD_DURATION (int) | 106 |
XSD_DATETIME (int) | 107 |
XSD_TIME (int) | 108 |
XSD_DATE (int) | 109 |
XSD_GYEARMONTH (int) | 110 |
XSD_GYEAR (int) | 111 |
XSD_GMONTHDAY (int) | 112 |
XSD_GDAY (int) | 113 |
XSD_GMONTH (int) | 114 |
XSD_HEXBINARY (int) | 115 |
XSD_BASE64BINARY (int) | 116 |
XSD_ANYURI (int) | 117 |
XSD_QNAME (int) | 118 |
XSD_NOTATION (int) | 119 |
XSD_NORMALIZEDSTRING (int) | 120 |
XSD_TOKEN (int) | 121 |
XSD_LANGUAGE (int) | 122 |
XSD_NMTOKEN (int) | 123 |
XSD_NAME (int) | 124 |
XSD_NCNAME (int) | 125 |
XSD_ID (int) | 126 |
XSD_IDREF (int) | 127 |
XSD_IDREFS (int) | 128 |
XSD_ENTITY (int) | 129 |
XSD_ENTITIES (int) | 130 |
XSD_INTEGER (int) | 131 |
XSD_NONPOSITIVEINTEGER (int) | 132 |
XSD_NEGATIVEINTEGER (int) | 133 |
XSD_LONG (int) | 134 |
XSD_INT (int) | 135 |
XSD_SHORT (int) | 136 |
XSD_BYTE (int) | 137 |
XSD_NONNEGATIVEINTEGER (int) | 138 |
XSD_UNSIGNEDLONG (int) | 139 |
XSD_UNSIGNEDINT (int) | 140 |
XSD_UNSIGNEDSHORT (int) | 141 |
XSD_UNSIGNEDBYTE (int) | 142 |
XSD_POSITIVEINTEGER (int) | 143 |
XSD_NMTOKENS (int) | 144 |
XSD_ANYTYPE (int) | 145 |
XSD_ANYXML (int) | 147 |
APACHE_MAP (int) | 200 |
SOAP_ENC_OBJECT (int) | 301 |
SOAP_ENC_ARRAY (int) | 300 |
XSD_1999_TIMEINSTANT (int) | 401 |
XSD_NAMESPACE (int) | http://www.w3.org/2001/XMLSchema |
XSD_1999_NAMESPACE (int) | http://www.w3.org/1999/XMLSchema |
SOAP_SINGLE_ELEMENT_ARRAYS (int) | 1 |
SOAP_WAIT_ONE_WAY_CALLS (int) | 2 |
SOAP_USE_XSI_ARRAY_TYPE (int) | 4 |
WSDL_CACHE_NONE (int) | 0 |
WSDL_CACHE_DISK (int) | 1 |
WSDL_CACHE_MEMORY (int) | 2 |
WSDL_CACHE_BOTH (int) | 3 |


SOAP Funktionen

Inhaltsverzeichnis

  • is_soap_fault — Prüft, ob ein SOAP-Aufruf fehlgeschlagen ist
  • use_soap_error_handler — Definiert, ob der SOAP-Errorhandler benutzt werden soll


Prüft, ob ein SOAP-Aufruf fehlgeschlagen ist

  • « SOAP Funktionen
  • use_soap_error_handler »
  • PHP Manual
  • SOAP Funktionen
  • Prüft, ob ein SOAP-Aufruf fehlgeschlagen ist

is_soap_fault

(PHP 5, PHP 7, PHP 8)

is_soap_fault — Prüft, ob ein SOAP-Aufruf fehlgeschlagen ist

Beschreibung

is_soap_fault ( mixed $object ) : bool

Diese Funktion ist nützlich, um festzustellen, ob ein SOAP-Aufruf fehlgeschlagen ist, aber keine Exceptions verwendet wurden. Um die Funktion zu verwenden, muss ein SoapClient-Objekt erzeugt und exceptions auf 0 oder false gesetzt werden. In diesem Fall gibt die SOAP-Methode ein spezielles SoapFault-Objekt zurück, das die Fehlerinformationen enthält (Fehlercode, Fehlerbeschreibung, Verursacher und Details).

Wenn exceptions nicht gesetzt ist, wirft der SOAP-Aufruf im Fehlerfall eine Exception. is_soap_fault() prüft, ob der gegebene Parameter ein SoapFault-Objekt ist.

Parameter-Liste

object

Das zu testende Objekt.

Rückgabewerte

Die Funktion gibt im Fehlerfall true, ansonsten false zurück.

Beispiele

Beispiel #1 is_soap_fault()-Beispiel

<?php
$client = new SoapClient("some.wsdl", array('exceptions' => 0));
$result = $client->EineFunktion();
if (is_soap_fault($result)) {
    trigger_error("SOAP-Fehler: (Fehlernummer: {$result->faultcode}, "
        ."Fehlermeldung: {$result->faultstring})", E_USER_ERROR);
}
?>

Beispiel #2 Die SOAP-Standardmethode zur Fehlerbehandlung ist das Werfen von Exceptions.

<?php
try {
    $client = new SoapClient("ein.wsdl");
    $result = $client->EineFunktion(/* ... */);
} catch (SoapFault $fault) {
    trigger_error("SOAP-Fehler: (Fehlernummer: {$fault->faultcode}, "
        ."Fehlermeldung: {$fault->faultstring})", E_USER_ERROR);
}
?>

Siehe auch

  • SoapClient::__construct() - SoapClient-Konstruktor
  • SoapFault::__construct() - SoapFault-Konstruktor


Definiert, ob der SOAP-Errorhandler benutzt werden soll

  • « is_soap_fault
  • SoapClient »
  • PHP Manual
  • SOAP Funktionen
  • Definiert, ob der SOAP-Errorhandler benutzt werden soll

use_soap_error_handler

(PHP 5, PHP 7, PHP 8)

use_soap_error_handler — Definiert, ob der SOAP-Errorhandler benutzt werden soll

Beschreibung

use_soap_error_handler ( bool $enable = true ) : bool

Diese Funktion bestimmt, ob der SOAP-Errorhandler im SOAP-Server verwendet werden soll oder nicht. Sie gibt den vorhergehenden Wert zurück. Ist die Einstellung auf true gesetzt, werden die Fehlerdetails einer SoapServer-Anwendung als SOAP Fehlermeldung an den Client gesendet. Ist der Wert auf false gesetzt, wird die normale PHP-Fehlerbehandlung verwendet. Standardmäßig werden Fehler als SOAP-Fehlermeldung an den Client gesendet.

Parameter-Liste

enable

Muss auf true gesetzt werden, um Fehlerdetails an Clients zu senden.

Rückgabewerte

Gibt den ursprünglichen Wert zurück.

Siehe auch

  • set_error_handler() - Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung
  • set_exception_handler() - Installiert einen benutzerdefinierten Exceptionhandler


Die SoapClient-Klasse

(PHP 5, PHP 7, PHP 8)

Einführung

Die SoapClient-Klasse stellt einen Client für » SOAP 1.1- und » SOAP 1.2-Server zur Verfügung. Sie kann im WSDL oder non-WSDL-Modus verwendet werden.

Klassenbeschreibung

SoapClient {
/* Methoden */
public __construct ( string|null $wsdl , array $options = [] )
public __call ( string $name , array $args ) : mixed
public __doRequest ( string $request , string $location , string $action , int $version , bool $oneWay = false ) : string|null
public __getCookies ( ) : array
public __getFunctions ( ) : array|null
public __getLastRequest ( ) : string|null
public __getLastRequestHeaders ( ) : string|null
public __getLastResponse ( ) : string|null
public __getLastResponseHeaders ( ) : string|null
public __getTypes ( ) : array|null
public __setCookie ( string $name , string|null $value = null ) : void
public __setLocation ( string $location = "" ) : string|null
public __setSoapHeaders ( SoapHeader|array|null $headers = null ) : bool
public __soapCall ( string $name , array $args , array|null $options = null , SoapHeader|array|null $inputHeaders = null , array &$outputHeaders = null ) : mixed
}

Inhaltsverzeichnis

  • SoapClient::__call — Ruft eine SOAP-Funktion auf (veraltet)
  • SoapClient::__construct — SoapClient-Konstruktor
  • SoapClient::__doRequest — Führt eine SOAP-Anfrage aus
  • SoapClient::__getCookies — Get list of cookies
  • SoapClient::__getFunctions — Gibt eine Liste verfügbarer SOAP-Funktionen zurück
  • SoapClient::__getLastRequest — Gibt die letzte SOAP-Anfrage zurück
  • SoapClient::__getLastRequestHeaders — Gibt die SOAP-Header der letzten Anfrage zurück
  • SoapClient::__getLastResponse — Gibt die letzte SOAP-Antwort zurück
  • SoapClient::__getLastResponseHeaders — Gibt die SOAP-Header der letzten Antwort zurück
  • SoapClient::__getTypes — Gibt eine Liste der SOAP-Typen zurück
  • SoapClient::__setCookie — Definiert ein Cookie für Soap-Anfragen
  • SoapClient::__setLocation — Bestimmt die Adresse des zu nutzenden Webservices
  • SoapClient::__setSoapHeaders — Setzt die SOAP-Header für nachfolgende Aufrufe
  • SoapClient::__soapCall — Ruft eine SOAP-Funktion auf


Ruft eine SOAP-Funktion auf (veraltet)

  • « SoapClient
  • SoapClient::__construct »
  • PHP Manual
  • SoapClient
  • Ruft eine SOAP-Funktion auf (veraltet)

SoapClient::__call

(PHP 5, PHP 7, PHP 8)

SoapClient::__call — Ruft eine SOAP-Funktion auf (veraltet)

Beschreibung

public SoapClient::__call ( string $name , array $args ) : mixed

Der Aufruf dieser Methode ist missbilligt. Normalerweise können SOAP Funktionen als Methoden des SoapClient-Objekts aufgerufen werden; in Situationen wo das nicht möglich ist, oder zusätzliche Optionen benötigt werden, ist SoapClient::__soapCall() zu verwenden.


SoapClient-Konstruktor

  • « SoapClient::__call
  • SoapClient::__doRequest »
  • PHP Manual
  • SoapClient
  • SoapClient-Konstruktor

SoapClient::__construct

(PHP 5, PHP 7, PHP 8)

SoapClient::__construct — SoapClient-Konstruktor

Beschreibung

public SoapClient::__construct ( string|null $wsdl , array $options = [] )

Dieser Konstruktor erstellt SoapClient-Objekte im WSDL- oder non-WSDL-Modus.

Parameter-Liste

wsdl

Die URI der WSDL-Datei oder null, wenn der non-WSDL-Modus verwendet wird.

Hinweis:

Während der Entwicklung sollte das WSDL-Caching durch die Verwendung der soap.wsdl_cache_ttl-Option in der php.ini ausgeschaltet werden. Andernfalls wirken sich Änderungen an der WSDL-Datei erst aus, wenn soap.wsdl_cache_ttl abgelaufen ist.

options

Ein Array mit Optionen. Wenn im WSDL-Modus gearbeitet wird, ist dieser Parameter optional. Im non-WSDL-Modus müssen die Optionen location und uri gesetzt werden. Dabei enthält location die URL des SOAP-Servers, an den die Anfrage gesendet werden soll, und uri den Ziel-Namensraum des SOAP-Dienstes.

Die Optionen style und use funktionieren nur im non-WSDL-Modus. Im WSDL-Modus werden sie durch das WSDL-File bestimmt.

Die Option soap_version sollte entweder SOAP_1_1 oder SOAP_1_2 sein, um SOAP 1.1 bzw. 1.2 auszuwählen. Wird sie weggelassen, wird 1.1 verwendet.

Für die HTTP-Authentifizierung können die Optionen login und password verwendet werden, um Anmeldeinformationen anzugeben. Um eine HTTP-Verbindung über einen Proxy-Server herzustellen, stehen auch die Optionen proxy_host, proxy_port, proxy_login und proxy_password zur Verfügung. Für die Authentifizierung mit HTTPS-Client-Zertifikaten sind die Optionen local_cert und passphrase zu verwenden. Eine Authentifizierung kann mit der Option authentication angegeben werden. Die Authentifizierungsmethode kann entweder SOAP_AUTHENTICATION_BASIC (Standard) oder SOAP_AUTHENTICATION_DIGEST sein.

Die Option compression ermöglicht die Komprimierung von HTTP-SOAP-Anfragen und -Antworten.

Die Option encoding definiert die interne Zeichenkodierung. Diese Option ändert nicht die Kodierung von SOAP-Anfragen (sie ist immer utf-8), sondern wandelt Zeichenketten in diese Kodierung um.

Die Option trace aktiviert die Aufzeichnung von Anfragen, damit Fehler zurückverfolgt werden können. Die Voreinstellung ist false.

Die Option classmap kann verwendet werden, um einige WSDL-Typen auf PHP-Klassen abzubilden. Diese Option muss ein Array mit WSDL-Typen als Schlüssel und Namen von PHP-Klassen als Werte sein.

Das Setzen der booleschen Option trace ermöglicht
die Verwendung der Methoden
SoapClient->__getLastRequest,

SoapClient->__getLastRequestHeaders,

SoapClient->__getLastResponse und

SoapClient->__getLastResponseHeaders.

Die Option exceptions ist ein boolescher Wert, der festlegt, ob Soap-Fehler Exceptions vom Typ SoapFault auslösen.

Die Option connection_timeout definiert einen Timeout in Sekunden für die Verbindung zum SOAP-Dienst. Diese Option definiert keinen Timeout für Dienste mit langsamen Antworten. Um die Zeit zu begrenzen, die auf die Beendigung von Aufrufen gewartet wird, steht die Einstellung default_socket_timeout zur Verfügung.

Die Option typemap ist ein Array mit Typzuordnungen. Die Typzuordnung ist ein Array mit den Schlüsseln type_name, type_ns (Namensraum-URI), from_xml (ein Callback, der einen Zeichenketten-Parameter akzeptiert) und to_xml (ein Callback, der einen Objekt-Parameter akzeptiert).

Die Option cache_wsdl ist entweder WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY oder WSDL_CACHE_BOTH.

Die Option user_agent gibt die Zeichenkette an, die im User-Agent-Header verwendet werden soll.

Die Option stream_context ist eine resource für den context.

Die Option features ist eine Bit-Maske aus SOAP_SINGLE_ELEMENT_ARRAYS, SOAP_USE_XSI_ARRAY_TYPE und SOAP_WAIT_ONE_WAY_CALLS.

Die Option keep_alive ist ein boolescher Wert, der festlegt, ob der Connection: Keep-Alive-Header oder Connection: close gesendet wird.

Die Option ssl_method ist eine der Konstanten SOAP_SSL_METHOD_TLS, SOAP_SSL_METHOD_SSLv2, SOAP_SSL_METHOD_SSLv3 und SOAP_SSL_METHOD_SSLv23.

Fehler/Exceptions

Wenn die Optionen location und uri im non-WSDL-Modus nicht angegeben werden, erzeugt SoapClient::__construct() einen E_ERROR-Fehler.

Wenn die wsdl-URI nicht geladen werden kann, wird eine SoapFault-Exception ausgelöst.

Beispiele

Beispiel #1 SoapClient::__construct()-Beispiel

<?php

$client = new SoapClient("ein.wsdl");

$client = new SoapClient("ein.wsdl", array('soap_version'   => SOAP_1_2));

$client = new SoapClient("ein.wsdl", array('login'          => "ein_name",
                                           'password'       => "ein_passwort"));

$client = new SoapClient("ein.wsdl", array('proxy_host'     => "localhost",
                                           'proxy_port'     => 8080));

$client = new SoapClient("ein.wsdl", array('proxy_host'     => "localhost",
                                           'proxy_port'     => 8080,
                                           'proxy_login'    => "ein_name",
                                           'proxy_password' => "ein_passwort"));

$client = new SoapClient("ein.wsdl", array('local_cert'     => "cert_key.pem"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/",
                                     'style'    => SOAP_DOCUMENT,
                                     'use'      => SOAP_LITERAL));

$client = new SoapClient("ein.wsdl",
  array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));

$client = new SoapClient("ein.wsdl", array('encoding'=>'ISO-8859-1'));

class MeinBuch {
    public $titel;
    public $autor;
}

$client = new SoapClient("buecher.wsdl", array('classmap' => array('buch' => "MeinBuch")));

?>


Führt eine SOAP-Anfrage aus

  • « SoapClient::__construct
  • SoapClient::__getCookies »
  • PHP Manual
  • SoapClient
  • Führt eine SOAP-Anfrage aus

SoapClient::__doRequest

(PHP 5, PHP 7, PHP 8)

SoapClient::__doRequest — Führt eine SOAP-Anfrage aus

Beschreibung

public SoapClient::__doRequest ( string $request , string $location , string $action , int $version , bool $oneWay = false ) : string|null

Führt eine SOAP-Anfrage über HTTP aus.

Diese Methode kann in einer vererbten Klasse überschrieben werden, um weitere Transportlayer, die Ausführung zusätzlichen XML-Processings oder andere Verwendungszwecke zu implementieren.

Parameter-Liste

request

Die XML-SOAP-Anfrage.

location

Die anzufragende URL.

action

Die SOAP-Aktion.

version

Die SOAP-Version.

oneWay

Wenn oneWay auf 1 gesetzt ist, gibt diese Methode nichts zurück. Verwenden Sie diesen Parameter, wenn Sie keine Antwort erwarten.

Rückgabewerte

Die XML-SOAP-Antwort.

Changelog

Version | Beschreibung
8.0.0 | oneWy ist nun vom Typ Boolean; vorher war er vom Typ Integer.

Beispiele

Beispiel #1 SoapClient::__doRequest()-Beispiel

<?php
function Add($x,$y) {
  return $x+$y;
}

class LocalSoapClient extends SoapClient {

  function __construct($wsdl, $options) {
    parent::__construct($wsdl, $options);
    $this->server = new SoapServer($wsdl, $options);
    $this->server->addFunction('Add');
  }

  function __doRequest($request, $location, $action, $version, $one_way = 0) {
    ob_start();
    $this->server->handle($request);
    $response = ob_get_contents();
    ob_end_clean();
    return $response;
  }

}

$x = new LocalSoapClient(NULL,array('location'=>'test://',
                                   'uri'=>'http://testuri.org'));
var_dump($x->Add(3,4));
?>


Get list of cookies

  • « SoapClient::__doRequest
  • SoapClient::__getFunctions »
  • PHP Manual
  • SoapClient
  • Get list of cookies

SoapClient::__getCookies

(PHP 5 >= 5.4.30, PHP 7, PHP 8)

SoapClient::__getCookies — Get list of cookies

Beschreibung

public SoapClient::__getCookies ( ) : array

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Gibt eine Liste verfügbarer SOAP-Funktionen zurück

  • « SoapClient::__getCookies
  • SoapClient::__getLastRequest »
  • PHP Manual
  • SoapClient
  • Gibt eine Liste verfügbarer SOAP-Funktionen zurück

SoapClient::__getFunctions

(PHP 5, PHP 7, PHP 8)

SoapClient::__getFunctions — Gibt eine Liste verfügbarer SOAP-Funktionen zurück

Beschreibung

public SoapClient::__getFunctions ( ) : array|null

Gibt ein Array der im WSDL beschriebenen Funktionen für den Web Service zurück.

Hinweis:

Diese Funktion funktioniert nur im WSDL-Modus.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Das array der SOAP-Funktionsprototypen mit detaillierter Angabe des Rückgabetyps, des Funktionsnamens und der Parameter mit Typ-Angabe.

Beispiele

Beispiel #1 SoapClient::__getFunctions()-Beispiel

<?php
$client = new SoapClient('http://soap.amazon.com/schemas3/AmazonWebServices.wsdl');
var_dump($client->__getFunctions());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(26) {
  [0]=>
  string(70) "ProductInfo KeywordSearchRequest(KeywordRequest $KeywordSearchRequest)"
  [1]=>
  string(79) "ProductInfo TextStreamSearchRequest(TextStreamRequest $TextStreamSearchRequest)"
  [2]=>
  string(64) "ProductInfo PowerSearchRequest(PowerRequest $PowerSearchRequest)"
...
  [23]=>
  string(107) "ShoppingCart RemoveShoppingCartItemsRequest(RemoveShoppingCartItemsRequest $RemoveShoppingCartItemsRequest)"
  [24]=>
  string(107) "ShoppingCart ModifyShoppingCartItemsRequest(ModifyShoppingCartItemsRequest $ModifyShoppingCartItemsRequest)"
  [25]=>
  string(118) "GetTransactionDetailsResponse GetTransactionDetailsRequest(GetTransactionDetailsRequest $GetTransactionDetailsRequest)"
}

Siehe auch

  • SoapClient::__construct() - SoapClient-Konstruktor


Gibt die letzte SOAP-Anfrage zurück

  • « SoapClient::__getFunctions
  • SoapClient::__getLastRequestHeaders »
  • PHP Manual
  • SoapClient
  • Gibt die letzte SOAP-Anfrage zurück

SoapClient::__getLastRequest

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastRequest — Gibt die letzte SOAP-Anfrage zurück

Beschreibung

public SoapClient::__getLastRequest ( ) : string|null

Gibt das in der letzten SOAP-Anfrage gesendete XML zurück.

Hinweis:

Diese Methode funktioniert nur, wenn das SoapClient-Objekt mit der Option trace erstellt und diese auf true gesetzt wurde.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Die letzte SOAP-Anfrage als XML-Zeichenkette.

Beispiele

Beispiel #1 SoapClient::__getLastRequest()-Beispiel

<?php
$client = new SoapClient("ein.wsdl", array('trace' => 1));
$result = $client->EineFunktion();
echo "ANFRAGE:\n" . $client->__getLastRequest() . "\n";
?>

Siehe auch

  • SoapClient::__getLastRequestHeaders() - Gibt die SOAP-Header der letzten Anfrage zurück
  • SoapClient::__getLastResponse() - Gibt die letzte SOAP-Antwort zurück
  • SoapClient::__getLastResponseHeaders() - Gibt die SOAP-Header der letzten Antwort zurück


Gibt die SOAP-Header der letzten Anfrage zurück

  • « SoapClient::__getLastRequest
  • SoapClient::__getLastResponse »
  • PHP Manual
  • SoapClient
  • Gibt die SOAP-Header der letzten Anfrage zurück

SoapClient::__getLastRequestHeaders

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastRequestHeaders — Gibt die SOAP-Header der letzten Anfrage zurück

Beschreibung

public SoapClient::__getLastRequestHeaders ( ) : string|null

Gibt die SOAP-Header der letzten Anfrage zurück.

Hinweis:

Diese Methode funktioniert nur, wenn das SoapClient-Objekt mit der auf true gesetzten trace-Option erstellt wurde.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Die letzten SOAP-Requestheader.

Beispiele

Beispiel #1 SoapClient::__getLastRequestHeaders()-Beispiel

<?php
$client = SoapClient("ein.wsdl", array('trace' => 1));
$result = $client->EineFunktion();
echo "ANFRAGEHEADER:\n" . $client->__getLastRequestHeaders() . "\n";
?>

Siehe auch

  • SoapClient::__getLastResponseHeaders() - Gibt die SOAP-Header der letzten Antwort zurück
  • SoapClient::__getLastRequest() - Gibt die letzte SOAP-Anfrage zurück
  • SoapClient::__getLastResponse() - Gibt die letzte SOAP-Antwort zurück


Gibt die letzte SOAP-Antwort zurück

  • « SoapClient::__getLastRequestHeaders
  • SoapClient::__getLastResponseHeaders »
  • PHP Manual
  • SoapClient
  • Gibt die letzte SOAP-Antwort zurück

SoapClient::__getLastResponse

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastResponse — Gibt die letzte SOAP-Antwort zurück

Beschreibung

public SoapClient::__getLastResponse ( ) : string|null

Gibt das XML zurück, das mit der letzten SOAP-Antwort empfangen wurde.

Hinweis:

Diese Methode funktioniert nur, wenn das SoapClient-Objekt mit der auf true gesetzten trace-Option erstellt wurde.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Die letzte SOAP-Antwort als XML-Zeichenkette.

Beispiele

Beispiel #1 SoapClient::__getLastResponse()-Beispiel

<?php
$client = SoapClient("ein.wsdl", array('trace' => 1));
$result = $client->EineFunktion();
echo "Antwort:\n" . $client->__getLastResponse() . "\n";
?>

Siehe auch

  • SoapClient::__getLastResponseHeaders() - Gibt die SOAP-Header der letzten Antwort zurück
  • SoapClient::__getLastRequest() - Gibt die letzte SOAP-Anfrage zurück
  • SoapClient::__getLastRequestHeaders() - Gibt die SOAP-Header der letzten Anfrage zurück


Gibt die SOAP-Header der letzten Antwort zurück

  • « SoapClient::__getLastResponse
  • SoapClient::__getTypes »
  • PHP Manual
  • SoapClient
  • Gibt die SOAP-Header der letzten Antwort zurück

SoapClient::__getLastResponseHeaders

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastResponseHeaders — Gibt die SOAP-Header der letzten Antwort zurück

Beschreibung

public SoapClient::__getLastResponseHeaders ( ) : string|null

Gibt die SOAP-Header der letzten Anwort zurück.

Hinweis:

Diese Methode funktioniert nur, wenn das SoapClient-Objekt mit der auf true gesetzten trace-Option erstellt wurde.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Die letzten SOAP-Responseheader.

Beispiele

Beispiel #1 SoapClient::__getLastResponse()-Beispiel

<?php
$client = SoapClient("ein.wsdl", array('trace' => 1));
$result = $client->EineFunktion();
echo "RESPONSE HEADERS:\n" . $client->__getLastResponseHeaders() . "\n";
?>

Siehe auch

  • SoapClient::__getLastRequestHeaders() - Gibt die SOAP-Header der letzten Anfrage zurück
  • SoapClient::__getLastRequest() - Gibt die letzte SOAP-Anfrage zurück
  • SoapClient::__getLastResponse() - Gibt die letzte SOAP-Antwort zurück


Gibt eine Liste der SOAP-Typen zurück

  • « SoapClient::__getLastResponseHeaders
  • SoapClient::__setCookie »
  • PHP Manual
  • SoapClient
  • Gibt eine Liste der SOAP-Typen zurück

SoapClient::__getTypes

(PHP 5, PHP 7, PHP 8)

SoapClient::__getTypes — Gibt eine Liste der SOAP-Typen zurück

Beschreibung

public SoapClient::__getTypes ( ) : array|null

Gibt ein Array der Typen zurück, die im WSDL des Webservices beschrieben sind.

Hinweis:

Diese Funktion funktioniert nur im WSDL-Modus.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Das array der SOAP-Typen mit detaillierter Angabe aller Strukturen und Typen.

Beispiele

Beispiel #1 SoapClient::__getTypes()-Beispiel

<?php
$client = new SoapClient('http://soap.amazon.com/schemas3/AmazonWebServices.wsdl');
var_dump($client->__getTypes());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(88) {
  [0]=>
  string(30) "ProductLine ProductLineArray[]"
  [1]=>
  string(85) "struct ProductLine {
 string Mode;
 string RelevanceRank;
 ProductInfo ProductInfo;
}"
  [2]=>
  string(105) "struct ProductInfo {
 string TotalResults;
 string TotalPages;
 string ListName;
 DetailsArray Details;
}"
...
  [85]=>
  string(32) "ShortSummary ShortSummaryArray[]"
  [86]=>
  string(121) "struct GetTransactionDetailsRequest {
 string tag;
 string devtag;
 string key;
 OrderIdArray OrderIds;
 string locale;
}"
  [87]=>
  string(75) "struct GetTransactionDetailsResponse {
 ShortSummaryArray ShortSummaries;
}"
}

Siehe auch

  • SoapClient::__construct() - SoapClient-Konstruktor


Definiert ein Cookie für Soap-Anfragen

  • « SoapClient::__getTypes
  • SoapClient::__setLocation »
  • PHP Manual
  • SoapClient
  • Definiert ein Cookie für Soap-Anfragen

SoapClient::__setCookie

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

SoapClient::__setCookie — Definiert ein Cookie für Soap-Anfragen

Beschreibung

public SoapClient::__setCookie ( string $name , string|null $value = null ) : void

Definiert das Cookie, das bei SOAP-Anfragen gesendet werden soll.

Hinweis:

Das Aufrufen dieser Methode wirkt sich auf alle folgenden Aufrufe der SoapClient-Methoden aus.

Parameter-Liste

name

Name des Cookies.

value

Wert des Cookies. Wenn kein Wert angegeben wurde, wird das Cookie gelöscht.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | value ist nun ein Nullable-Typ.


Bestimmt die Adresse des zu nutzenden Webservices

  • « SoapClient::__setCookie
  • SoapClient::__setSoapHeaders »
  • PHP Manual
  • SoapClient
  • Bestimmt die Adresse des zu nutzenden Webservices

SoapClient::__setLocation

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

SoapClient::__setLocation — Bestimmt die Adresse des zu nutzenden Webservices

Beschreibung

public SoapClient::__setLocation ( string $location = "" ) : string|null

Bestimmt die URL, die von den folgenden SOAP-Aufrufen angesprochen werden soll. Dies entspricht der Angabe der location-Option bei der Erstellung des SoapClients.

Hinweis:

Der Aufruf dieser Methode ist optional. Der SoapClient verwendet standardmäßig die Adresse aus dem WSDL.

Parameter-Liste

location

Die neue Ziel-URL.

Rückgabewerte

Die alte Ziel-URL.

Beispiele

Beispiel #1 SoapClient::__setLocation()-Beispiel

<?php
$client = new SoapClient('http://example.com/webservice.php?wsdl');

$client->__setLocation('http://www.somethirdparty.com');

$old_location = $client->__setLocation(); // löscht die location-Option

echo $old_location;

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

http://www.somethirdparty.com

Siehe auch

  • SoapClient::__construct() - SoapClient-Konstruktor


Setzt die SOAP-Header für nachfolgende Aufrufe

  • « SoapClient::__setLocation
  • SoapClient::__soapCall »
  • PHP Manual
  • SoapClient
  • Setzt die SOAP-Header für nachfolgende Aufrufe

SoapClient::__setSoapHeaders

(PHP 5 >= 5.0.5, PHP 7, PHP 8)

SoapClient::__setSoapHeaders — Setzt die SOAP-Header für nachfolgende Aufrufe

Beschreibung

public SoapClient::__setSoapHeaders ( SoapHeader|array|null $headers = null ) : bool

Legt die Header fest, die mit den nächsten SOAP-Anfragen gesendet werden.

Hinweis:

Der Aufruf dieser Methode ersetzt alle vorherigen Werte.

Parameter-Liste

headers

Die zu setzenden Header. Dies kann ein SoapHeader-Objekt oder ein Array von SoapHeader-Objekten sein. Ist der Parameter nicht angegeben oder hat er den Wert null, werden die Header gelöscht.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 SoapClient::__setSoapHeaders()-Beispiel

<?php

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$header = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world');

$client->__setSoapHeaders($header);

$client->__soapCall("echoVoid", null);
?>

Beispiel #2 Mehrere Header setzen

<?php

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$headers = array();

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world');

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world again');

$client->__setSoapHeaders($headers);

$client->__soapCall("echoVoid", null);
?>


Ruft eine SOAP-Funktion auf

  • « SoapClient::__setSoapHeaders
  • SoapServer »
  • PHP Manual
  • SoapClient
  • Ruft eine SOAP-Funktion auf

SoapClient::__soapCall

(PHP 5, PHP 7, PHP 8)

SoapClient::__soapCall — Ruft eine SOAP-Funktion auf

Beschreibung

public SoapClient::__soapCall ( string $name , array $args , array|null $options = null , SoapHeader|array|null $inputHeaders = null , array &$outputHeaders = null ) : mixed

Es handelt sich um eine low-level-API-Funktion, die verwendet wird, um einen SOAP-Aufruf durchzuführen. Normalerweise können im WSDL-Modus SOAP-Funktionen als Methoden des SoapClient-Objekts aufgerufen werden. Diese Methode ist im non-WSDL-Modus nützlich, wenn die soapaction unbekannt ist, die uri vom Standard abweicht oder wenn SOAP-Header gesendet und/oder empfangen werden.

Im Fehlerfall kann der Aufruf einer SOAP-Funktion PHP veranlassen, eine Exception auszulösen oder ein SoapFault-Objekt zurückzugeben, wenn Exceptions deaktiviert wurden. Um zu prüfen, ob der Funktionsaufruf eine SoapFault-Exception nicht abgefangen hat, sollte die Rückgabe mit is_soap_fault() überprüft werden.

Parameter-Liste

name

Der Name der aufzurufenden SOAP-Funktion.

args

Ein Array aus Argumenten, die an die Funktion übergeben werden sollen. Dies kann entweder ein sortiertes oder ein assoziatives Array sein. Es ist zu beachten, dass die meisten SOAP Server die Angabe von Parameternamen erfordern, so dass in diesen Fällen ein assoziatives Array verwendet werden muss.

options

Ein assoziatives Array von Optionen, die an den Client übergeben werden sollen.

Die Option location enthält die URL des angesprochenen Webservices.

Die Option uri enthält den Zielnamensraum des SOAP-Services.

Die Option soapaction ist die aufzurufende Aktion.

inputHeaders

Ein Array von Headern, die mit der SOAP-Anfrage gesendet werden sollen.

outputHeaders

Sofern vorhanden, wird dieses Array mit den Headern des SOAP-Antwort gefüllt.

Rückgabewerte

SOAP-Funktionen können einen oder mehrere Werte zurückgeben. Wenn nur ein Wert von der SOAP-Funktion zurückgegeben wurde, entspricht der Rückgabewert von __soapCall einem primitiven Datentyp (z.B. integer, string etc). Wenn mehrere Werte zurückgegeben werden, gibt __soapCall ein assoziatives Array mit benannten Parametern zurück.

Wenn das SoapClient-Objekt mit auf false gesetztem exceptions erstellt wurde, wird bei einem Fehler ein SoapFault-Objekt zurückgegeben.

Beispiele

Beispiel #1 SoapClient::__soapCall()-Beispiel

<?php

$client = new SoapClient("ein.wsdl");
$client->EineFunktion($a, $b, $c);

$client->__soapCall("EineFunktion", array($a, $b, $c));
$client->__soapCall("EineFunktion", array($a, $b, $c), NULL,
                    new SoapHeader(), $output_headers);

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->EineFunktion($a, $b, $c);
$client->__soapCall("EineFunktion", array($a, $b, $c));
$client->__soapCall("EineFunktion", array($a, $b, $c),
                    array('soapaction' => 'some_action',
                          'uri'        => 'some_uri'));
?>

Siehe auch

  • SoapClient::__construct() - SoapClient-Konstruktor
  • SoapParam::__construct() - SoapParam-Konstruktor
  • SoapVar::__construct() - SoapVar-Konstruktor
  • SoapHeader::__construct() - SoapHeader-Konstruktor
  • SoapFault::__construct() - SoapFault-Konstruktor
  • is_soap_fault() - Prüft, ob ein SOAP-Aufruf fehlgeschlagen ist


Die SoapServer-Klasse

(PHP 5, PHP 7, PHP 8)

Einführung

Die SoapServer-Klasse stellt einen Server für die » SOAP 1.1- und » SOAP 1.2-Protokolle zur Verfügung. Sie kann mit oder ohne Definition des WSDL-Dienstes verwendet werden.

Klassenbeschreibung

SoapServer {
/* Methoden */
public __construct ( string|null $wsdl , array $options = [] )
public addFunction ( array|string|int $functions ) : void
public addSoapHeader ( SoapHeader $header ) : void
public fault ( string $code , string $string , string $actor = "" , mixed $details = null , string $name = "" ) : void
public getFunctions ( ) : array
public handle ( string|null $request = null ) : void
public setClass ( string $class , mixed ...$args ) : void
public setObject ( object $object ) : void
public setPersistence ( int $mode ) : void
}

Inhaltsverzeichnis

  • SoapServer::addFunction — Fügt eine oder mehrere Funktionen zur Verarbeitung von SOAP-Anfragen hinzu
  • SoapServer::addSoapHeader — Add a SOAP header to the response
  • SoapServer::__construct — SoapServer-Konstruktor
  • SoapServer::fault — Erzeugt einen SoapServer-Fehler, der einen Fehlerzustand anzeigt
  • SoapServer::getFunctions — Gibt eine Liste aller definierten Funktionen zurück
  • SoapServer::handle — Verarbeitet eine SOAP-Anfrage
  • SoapServer::setClass — Setzt die Klasse, welche SOAP-Anfragen verarbeitet
  • SoapServer::setObject — Sets the object which will be used to handle SOAP requests
  • SoapServer->setPersistence() — Versetzt einen SoapServer in den Persistenz-Modus


Fügt eine oder mehrere Funktionen zur Verarbeitung von SOAP-Anfragen hinzu

  • « SoapServer
  • SoapServer::addSoapHeader »
  • PHP Manual
  • SoapServer
  • Fügt eine oder mehrere Funktionen zur Verarbeitung von SOAP-Anfragen hinzu

SoapServer::addFunction

(PHP 5, PHP 7, PHP 8)

SoapServer::addFunction — Fügt eine oder mehrere Funktionen zur Verarbeitung von SOAP-Anfragen hinzu

Beschreibung

public SoapServer::addFunction ( array|string|int $functions ) : void

Exportiert eine oder mehrere Funktionen für entfernte Clients.

Parameter-Liste

functions

Funktionsname als String übergeben, um eine Funktion zu exportieren.

Array mit Funktionsnamen übergeben, um mehrere Funktionen zu exportieren.

Spezielle Konstante SOAP_FUNCTIONS_ALL übergeben, um alle Funktionen zu exportieren.

Hinweis:

functions muss alle Argumente in der gleichen Reihenfolge entgegennehmen, wie sie in der WSDL-Datei beschrieben sind (es sollten keine Rückgabewerte als Argumente definiert werden) und ein oder mehrere Werte zurückgeben. Um mehrere Werte zurückzugeben, müssen sich die Werte benannt in einem assoziativen Array befinden.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SoapServer::addFunction()-Beispiel

<?php

function echoString($inputString)
{
    return $inputString;
}

$server->addFunction("echoString");

function echoTwoStrings($inputString1, $inputString2)
{
    return array("outputString1" => $inputString1,
                 "outputString2" => $inputString2);
}
$server->addFunction(array("echoString", "echoTwoStrings"));

$server->addFunction(SOAP_FUNCTIONS_ALL);

?>

Siehe auch

  • SoapServer::__construct() - SoapServer-Konstruktor
  • SoapServer::setClass() - Setzt die Klasse, welche SOAP-Anfragen verarbeitet


Add a SOAP header to the response

  • « SoapServer::addFunction
  • SoapServer::__construct »
  • PHP Manual
  • SoapServer
  • Add a SOAP header to the response

SoapServer::addSoapHeader

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SoapServer::addSoapHeader — Add a SOAP header to the response

Beschreibung

public SoapServer::addSoapHeader ( SoapHeader $header ) : void

Adds a SOAP header to be returned with the response to the current request.

Parameter-Liste

header

The header to be returned.

Rückgabewerte

Es wird kein Wert zurückgegeben.


SoapServer-Konstruktor

  • « SoapServer::addSoapHeader
  • SoapServer::fault »
  • PHP Manual
  • SoapServer
  • SoapServer-Konstruktor

SoapServer::__construct

(PHP 5, PHP 7, PHP 8)

SoapServer::__construct — SoapServer-Konstruktor

Beschreibung

public SoapServer::__construct ( string|null $wsdl , array $options = [] )

Dieser Konstruktor erlaubt das Erzeugen eines SoapServer-Objekts im WSDL- oder non-WSDL-Modus.

Parameter-Liste

wsdl

Wenn der WSDL-Modus verwendet werden soll, muss die URI auf eine WSDL-Datei verweisen. Ansonsten muss null übergeben, und die uri-Option auf den Zielnamensraum des Servers gesetzt werden.

options

Erlaubt das Setzen der Standard-SOAP-Version (soap_version), der internen Zeichenkodierung (encoding), und der Actor-URI (actor).

Die classmap Option kann genutzt werden, um einige WSDL-Typen auf PHP-Klassen abzubilden. Die Option mussß ein Array sein mit den WSDL-Typen als Schlüssel und den PHP-Klassennamen als Wert.

Die Option typemap ist ein Array mit Typabbildungen. Jede Abbildung ist ein Array mit den Schlüsseln type_name, type_ns (Namensraum-URI), from_xml (Callback, der einen String-Parameter akzeptiert) und to_xml (Callback, der einen Objekt-Parameter akzeptiert).

Die cache_wsdl-Option ist entweder WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY oder WSDL_CACHE_BOTH.

Weiterhin gibt es eine features-Option, die auf SOAP_WAIT_ONE_WAY_CALLS, SOAP_SINGLE_ELEMENT_ARRAYS oder SOAP_USE_XSI_ARRAY_TYPE gesetzt werden kann.

Die send_errors-Option kann auf false gesetzt werden, um eine generische Fehlermeldung ("Internal error") anstelle einer spezifischen zu senden.

Beispiele

Beispiel #1 SoapServer::__construct()-Beispiel

<?php

$server = new SoapServer("some.wsdl");

$server = new SoapServer("some.wsdl", array('soap_version' => SOAP_1_2));

$server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C"));

$server = new SoapServer("some.wsdl", array('encoding'=>'ISO-8859-1'));

$server = new SoapServer(null, array('uri' => "http://test-uri/"));

class MyBook {
    public $title;
    public $author;
}

$server = new SoapServer("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>

Siehe auch

  • SoapClient::__construct() - SoapClient-Konstruktor


Erzeugt einen SoapServer-Fehler, der einen Fehlerzustand anzeigt

  • « SoapServer::__construct
  • SoapServer::getFunctions »
  • PHP Manual
  • SoapServer
  • Erzeugt einen SoapServer-Fehler, der einen Fehlerzustand anzeigt

SoapServer::fault

(PHP 5, PHP 7, PHP 8)

SoapServer::fault — Erzeugt einen SoapServer-Fehler, der einen Fehlerzustand anzeigt

Beschreibung

public SoapServer::fault ( string $code , string $string , string $actor = "" , mixed $details = null , string $name = "" ) : void

Sendet dem Client der aktuellen Anfrage eine Antwort, die einen Fehler anzeigt.

Hinweis:

Diese Methode kann nur aufgerufen werden, wenn eine Anfrage verarbeitet wird.

Parameter-Liste

code

Der Fehlercode, der zurückgegeben werden soll.

string

Eine kurze Beschreibung des Fehlers.

actor

Eine Zeichenkette, die den Akteur identifiziert, der den Fehler verursacht hat.

details

Weitere Details zum Fehler.

name

Der Name des Fehlers. Dies kann verwendet werden, um den Namen aus einer WSDL-Datei auszuwählen.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • SoapFault::__construct() - SoapFault-Konstruktor


Gibt eine Liste aller definierten Funktionen zurück

  • « SoapServer::fault
  • SoapServer::handle »
  • PHP Manual
  • SoapServer
  • Gibt eine Liste aller definierten Funktionen zurück

SoapServer::getFunctions

(PHP 5, PHP 7, PHP 8)

SoapServer::getFunctions — Gibt eine Liste aller definierten Funktionen zurück

Beschreibung

public SoapServer::getFunctions ( ) : array

Gibt eine Liste aller Funktionen des SoapServer-Objekts zurück, die durch SoapServer::addFunction() oder SoapServer::setClass() hinzugefügt wurden.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Ein array aller definierten Funktionen.

Beispiele

Beispiel #1 SoapServer::getFunctions()-Beispiel

<?php
$server = new SoapServer(NULL, array("uri" => "http://test-uri"));
$server->addFunction(SOAP_FUNCTIONS_ALL);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $server->handle();
} else {
  echo "This SOAP server can handle following functions: ";
  $functions = $server->getFunctions();
  foreach($functions as $func) {
    echo $func . "\n";
  }
}
?>

Siehe auch

  • SoapServer::__construct() - SoapServer-Konstruktor
  • SoapServer::addFunction() - Fügt eine oder mehrere Funktionen zur Verarbeitung von SOAP-Anfragen hinzu
  • SoapServer::setClass() - Setzt die Klasse, welche SOAP-Anfragen verarbeitet


Verarbeitet eine SOAP-Anfrage

  • « SoapServer::getFunctions
  • SoapServer::setClass »
  • PHP Manual
  • SoapServer
  • Verarbeitet eine SOAP-Anfrage

SoapServer::handle

(PHP 5, PHP 7, PHP 8)

SoapServer::handle — Verarbeitet eine SOAP-Anfrage

Beschreibung

public SoapServer::handle ( string|null $request = null ) : void

Verarbeitet eine SOAP-Anfrage, ruft benötigte Funktionen auf und schickt eine Antwort zurück.

Parameter-Liste

request

SOAP-Anfrage. Wenn das Argument nicht gegeben ist, werden die originalen (raw) POST-Daten der HTTP-Anfrage genutzt.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SoapServer::handle()-Beispiel

<?php
function test($x)
{
    return $x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Changelog

Version | Beschreibung
8.0.0 | request ist nun ein Nullable-Typ.

Siehe auch

  • SoapServer::__construct() - SoapServer-Konstruktor


Setzt die Klasse, welche SOAP-Anfragen verarbeitet

  • « SoapServer::handle
  • SoapServer::setObject »
  • PHP Manual
  • SoapServer
  • Setzt die Klasse, welche SOAP-Anfragen verarbeitet

SoapServer::setClass

(PHP 5, PHP 7, PHP 8)

SoapServer::setClass — Setzt die Klasse, welche SOAP-Anfragen verarbeitet

Beschreibung

public SoapServer::setClass ( string $class , mixed ...$args ) : void

Exportiert alle Methoden der angegebenen Klasse.

Das Objekt kann für eine gegebene PHP-Session mit Hilfe der SoapServer::setPersistence()-Methode persistent gemacht werden.

Parameter-Liste

class

Name der zu exportierenden Klasse.

args

Die optionalen Parameter werden dem Standardkonstruktor der Klasse zur Laufzeit übergeben.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • SoapServer::__construct() - SoapServer-Konstruktor
  • SoapServer::addFunction() - Fügt eine oder mehrere Funktionen zur Verarbeitung von SOAP-Anfragen hinzu
  • SoapServer::setPersistence()


Sets the object which will be used to handle SOAP requests

  • « SoapServer::setClass
  • SoapServer->setPersistence() »
  • PHP Manual
  • SoapServer
  • Sets the object which will be used to handle SOAP requests

SoapServer::setObject

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

SoapServer::setObject — Sets the object which will be used to handle SOAP requests

Beschreibung

public SoapServer::setObject ( object $object ) : void

This sets a specific object as the handler for SOAP requests, rather than just a class as in SoapServer::setClass().

Parameter-Liste

object

The object to handle the requests.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • SoapServer::setClass() - Setzt die Klasse, welche SOAP-Anfragen verarbeitet


Versetzt einen SoapServer in den Persistenz-Modus

  • « SoapServer::setObject
  • SoapFault »
  • PHP Manual
  • SoapServer
  • Versetzt einen SoapServer in den Persistenz-Modus

SoapServer->setPersistence()

(PHP 5, PHP 7, PHP 8)

SoapServer->setPersistence() — Versetzt einen SoapServer in den Persistenz-Modus

Beschreibung

public SoapServer::setPersistence ( int $mode ) : void

Diese Funktion erlaubt das Ändern des Persistenzzustands eines SoapServer Objekts zwischen Anfragen. Diese Funktion erlaubt das Speichern von Daten zwischen Anfragen durch Verwendung von PHP Sessions. Diese Methode hat nur Auswirkungen auf den SoapServer, nachdem er Funktionen unter Verwendung von SoapServer::setClass() exportiert hat.

Hinweis:

Die Option SOAP_PERSISTENCE_SESSION macht nur Objekte der angegebenen Klasse persistent, nicht aber ihre statischen Eigenschaften. Daher sollten sie $this->bar anstatt von self::$bar nutzen.

Hinweis:

SOAP_PERSISTENCE_SESSION serialisiert Daten des Klassenobjekts zwischen Anfragen. Damit Ressourcen (z.B. PDO) ordnungsgemäß verwendet werden können, sollten die magischen __wakeup() und __sleep() Methoden verwendet werden.

Parameter-Liste

mode

Eine der SOAP_PERSISTENCE_XXX Konstanten.

SOAP_PERSISTENCE_REQUEST - SoapServer Daten bleiben zwischen Anfragen nicht erhalten. Das ist das standardmäßige Verhalten von jedem SoapServer Objekt nachdem setClass aufgerufen wurde.

SOAP_PERSISTENCE_SESSION - SoapServer Daten bleiben zwischen Anfragen erhalten. Dies wird durch Serialisierung der SoapServer Klassendaten in $_SESSION['_bogus_session_name'] erreicht, weshalb session_start() aufgerufen werden muss, bevor dieser Persistenzmodus eingestellt wird.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 SoapServer::setPersistence() Beispiel

<?php
 class MyFirstPersistentSoapServer {
     private $resource; // (wie z.B. PDO, mysqli, usw.)
     public $myvar1;
     public $myvar2;

     public function __construct() {
         $this->__wakeup(); // Wir rufen unser wakeup auf, damit die Ressource verwendet werden kann
     }

     public function __wakeup() {
         $this->resource = CodeToStartOurResourceUp();
     }

     public function __sleep() {
         // Wir stellen sicher, dass $resource hier ausgelassen wird, damit
         // unsere Sessiondaten persistent bleiben. Versäumen wir dies, wird das
         // Deserialisieren der Daten bei der nächsten Anfrage fehlschlagen;
         // folglich wäre unser SoapObject nicht anfrageübergreifend persistent.
         return array('myvar1','myvar2');
     }
 }

 try {
     session_start();
     $server = new SoapServer(null, array('uri' => $_SERVER['REQUEST_URI']));
     $server->setClass('MyFirstPersistentSoapServer');
     // setPersistence MUSS nach setClass aufgerufen werden, weil setClass
     // SESSION_PERSISTENCE_REQUEST setzt sobald die Methode ausgeführt wird.
     $server->setPersistence(SOAP_PERSISTENCE_SESSION);
     $server->handle();
 } catch(SoapFault $e) {
     error_log("SOAP FEHLER: ". $e->getMessage());
 }
?>

Siehe auch

  • SoapServer::setClass() - Setzt die Klasse, welche SOAP-Anfragen verarbeitet


Die SoapFault-Klasse

(PHP 5, PHP 7, PHP 8)

Einführung

Stellt einen SOAP-Fehler dar.

Klassenbeschreibung

SoapFault extends Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Methoden */
public __construct ( array|string|null $code , string $string , string|null $actor = null , mixed $details = null , string|null $name = null , mixed $headerFault = null )
public __toString ( ) : string
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Inhaltsverzeichnis

  • SoapFault::__construct — SoapFault-Konstruktor
  • SoapFault::__toString — Obtain a string representation of a SoapFault


SoapFault-Konstruktor

  • « SoapFault
  • SoapFault::__toString »
  • PHP Manual
  • SoapFault
  • SoapFault-Konstruktor

SoapFault::__construct

(PHP 5, PHP 7, PHP 8)

SoapFault::__construct — SoapFault-Konstruktor

Beschreibung

public SoapFault::__construct ( array|string|null $code , string $string , string|null $actor = null , mixed $details = null , string|null $name = null , mixed $headerFault = null )

Diese Klasse wird verwendet, um SOAP-Fehlerrückmeldungen vom PHP-Handler zu senden. faultcode, faultstring, faultactor und detail sind die Standardelemente eines SOAP-Fehlers.

Parameter-Liste

faultcode

Der Fehlercode von SoapFault.

faultstring

Die Fehlermeldung von SoapFault.

faultactor

Eine Zeichenkette, die den Verursacher des Fehlers identifiziert.

detail

Weitere Details über die Ursache des Fehlers.

faultname

Kann verwendet werden, um die genaue Fehlerkodierung aus WSDL zu erhalten.

headerfault

Kann bei der Verarbeitung der SOAP-Header verwendet werden, um einen Fehler im Antwort-Header zu melden.

Beispiele

Beispiel #1 Beispiel 1

<?php
function test($x)
{
    return new SoapFault("Server", "Eine Fehlermeldung");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Es ist möglich, den PHP-Exception-Mechanismus zu verwenden, um SOAP-Fehler auszulösen.

Beispiel #2 Beispiel 2

<?php
function test($x)
{
    throw new SoapFault("Server", "Eine Fehlermeldung");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Siehe auch

  • SoapServer::fault() - Erzeugt einen SoapServer-Fehler, der einen Fehlerzustand anzeigt
  • is_soap_fault() - Prüft, ob ein SOAP-Aufruf fehlgeschlagen ist


Obtain a string representation of a SoapFault

  • « SoapFault::__construct
  • SoapHeader »
  • PHP Manual
  • SoapFault
  • Obtain a string representation of a SoapFault

SoapFault::__toString

(PHP 5, PHP 7, PHP 8)

SoapFault::__toString — Obtain a string representation of a SoapFault

Beschreibung

public SoapFault::__toString ( ) : string

Returns a string representation of the SoapFault.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

A string describing the SoapFault.


Die SoapHeader-Klasse

(PHP 5, PHP 7, PHP 8)

Einführung

Stellt einen SOAP-Header dar.

Klassenbeschreibung

SoapHeader {
/* Methoden */
__construct ( string $namespace , string $name , mixed $data = ? , bool $mustunderstand = ? , string $actor = ? )
}

Inhaltsverzeichnis

  • SoapHeader::__construct — SoapHeader-Konstruktor


SoapHeader-Konstruktor

  • « SoapHeader
  • SoapParam »
  • PHP Manual
  • SoapHeader
  • SoapHeader-Konstruktor

SoapHeader::__construct

(PHP 5, PHP 7, PHP 8)

SoapHeader::__construct — SoapHeader-Konstruktor

Beschreibung

SoapHeader::__construct ( string $namespace , string $name , mixed $data = ? , bool $mustunderstand = ? , string $actor = ? )

Konstruiert ein neues SoapHeader-Objekt.

Parameter-Liste

namespace

Namensraum des SOAP-Header-Elements.

name

Name des SOAP-Header-Objekts.

data

SOAP-Header-Inhalt. Der Inhalt kann ein PHP-Wert oder auch ein SoapVar-Objekt sein.

mustUnderstand

Wert des mustUnderstand-Attributs des SOAP-Header-Elements.

actor

Wert des actor-Attributs des SOAP-Header-Elements.

Beispiele

Beispiel #1 SoapHeader::__construct()-Beispiel

<?php
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->__soapCall("echoVoid", null, null,
                new SoapHeader('http://soapinterop.org/echoheader/',
                               'echoMeStringRequest',
                               'Hallo Welt'));
?>

Siehe auch

  • SoapClient::__soapCall() - Ruft eine SOAP-Funktion auf
  • SoapVar::__construct() - SoapVar-Konstruktor
  • SoapParam::__construct() - SoapParam-Konstruktor
  • SoapServer::addSoapHeader() - Add a SOAP header to the response


Die SoapParam-Klasse

(PHP 5, PHP 7, PHP 8)

Einführung

Stellt einen Parameter für einen SOAP-Aufruf dar.

Klassenbeschreibung

SoapParam {
/* Methoden */
public __construct ( mixed $data , string $name )
}

Inhaltsverzeichnis

  • SoapParam::__construct — SoapParam-Konstruktor


SoapParam-Konstruktor

  • « SoapParam
  • SoapVar »
  • PHP Manual
  • SoapParam
  • SoapParam-Konstruktor

SoapParam::__construct

(PHP 5, PHP 7, PHP 8)

SoapParam::__construct — SoapParam-Konstruktor

Beschreibung

public SoapParam::__construct ( mixed $data , string $name )

Konstruiert ein neues SoapParam-Objekt.

Parameter-Liste

data

Die Daten, die übergeben oder zurückgegeben werden sollen. Die Werte können auch direkt als PHP-Wert übergeben werden. In diesem Fall werden sie mittels paramN benannt und der SOAP-Service könnte Probleme mit der Interpretation bekommen.

name

Der Parametername.

Beispiele

Beispiel #1 SoapParam::__construct()-Beispiel

<?php
$client = new SoapClient(null,array('location' => "http://localhost/soap.php",
                                    'uri'      => "http://test-uri/"));
$client->SomeFunction(new SoapParam($a, "a"),
                      new SoapParam($b, "b"),
                      new SoapParam($c, "c"));
?>

Siehe auch

  • SoapClient::__soapCall() - Ruft eine SOAP-Funktion auf
  • SoapVar::__construct() - SoapVar-Konstruktor


Die SoapVar-Klasse

(PHP 5, PHP 7, PHP 8)

Einführung

Eine Klasse, die eine Variable oder ein Objekt zur Verwendung mit SOAP-Diensten darstellt.

Klassenbeschreibung

SoapVar {
/* Methoden */
public __construct ( mixed $data , int|null $encoding , string $typeName = "" , string $typeNamespace = "" , string $nodeName = "" , string $nodeNamespace = "" )
}

Inhaltsverzeichnis

  • SoapVar::__construct — SoapVar-Konstruktor


SoapVar-Konstruktor

  • « SoapVar
  • Yar »
  • PHP Manual
  • SoapVar
  • SoapVar-Konstruktor

SoapVar::__construct

(PHP 5, PHP 7, PHP 8)

SoapVar::__construct — SoapVar-Konstruktor

Beschreibung

public SoapVar::__construct
 ( mixed $data
, int|null $encoding
, string $typeName = ""
, string $typeNamespace = ""
, string $nodeName = ""
, string $nodeNamespace = ""
)

Erstellt ein neues SoapVar-Objekt.

Parameter-Liste

data

Die zu übergebenden oder zurückzugebenden Daten.

encoding

Die Encoding-ID, eine der XSD_...-Konstanten.

type_name

Der Type-Name.

type_namespace

Der Type-Namensraum.

node_name

Der XML-Nodename.

node_namespace

Der XML-Node-Namensraum.

Beispiele

Beispiel #1 SoapVar::__construct()-Beispiel

<?php
class SOAPStruct {
    function SOAPStruct($s, $i, $f)
    {
        $this->varString = $s;
        $this->varInt = $i;
        $this->varFloat = $f;
    }
}
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$struct = new SOAPStruct('arg', 34, 325.325);
$soapstruct = new SoapVar($struct, SOAP_ENC_OBJECT, "SOAPStruct", "http://soapinterop.org/xsd");
$client->echoStruct(new SoapParam($soapstruct, "inputStruct"));
?>

Siehe auch

  • SoapClient::__soapCall() - Ruft eine SOAP-Funktion auf
  • SoapParam::__construct() - SoapParam-Konstruktor


Yet Another RPC Framework

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • Yar_Server — The Yar_Server class
    • Yar_Server::__construct — Register a server
    • Yar_Server::handle — Start RPC Server
  • Yar_Client — The Yar_Client class
    • Yar_Client::__call — Call service
    • Yar_Client::__construct — Create a client
    • Yar_Client::setOpt — Set calling contexts
  • Yar_Concurrent_Client — The Yar_Concurrent_Client class
    • Yar_Concurrent_Client::call — Register a concurrent call
    • Yar_Concurrent_Client::loop — Send all calls
    • Yar_Concurrent_Client::reset — Clean all registered calls
  • Yar_Server_Exception — The Yar_Server_Exception class
    • Yar_Server_Exception::getType — Retrieve exception's type
  • Yar_Client_Exception — The Yar_Client_Exception class
    • Yar_Client_Exception::getType — Retrieve exception's type


Einführung

Yar is a RPC framework which aims to provide a simple and easy way to do communication between PHP applications It has the ability to concurrently call multiple remote services.


Anforderungen

if you want to use msgpack as packager, you need compile Yar by your self with ./configure --enable-msgpack


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/yar.

Eine DLL-Datei für diese PECL-Erweiterung steht derzeit nicht zur Verfügung. Weitere Details finden Sie im Abschnitt zum Kompilieren für Windows.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Yar Konfigurationsoptionen
Name | Standard | Veränderbar | Changelog
yar.packager | php | PHP_INI_SYSTEM |
yar.debug | Off | PHP_INI_ALL |
yar.connect_timeout | 1000 | PHP_INI_ALL |
yar.timeout | 5000 | PHP_INI_ALL |
yar.expose_info | On | PHP_INI_SYSTEM |

Hier eine kurze Erklärung der Konfigurationsoptionen:

yar.packager string

it could be php, json, and msgpack(require built with msgpack support)

yar.debug string

yar.connect_timeout int

timeout in ms

yar.timeout int

timeout in ms

yar.expose_info bool

whether expose the service info(when access the server via GET)


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

YAR_VERSION (string)
YAR_CLIENT_PROTOCOL_HTTP (int)
YAR_OPT_PACKAGER (int)
YAR_OPT_TIMEOUT (int)
YAR_OPT_CONNECT_TIMEOUT (int)
YAR_OPT_HEADER (array)
Since 2.0.4
YAR_PACKAGER_PHP (string)
YAR_PACKAGER_JSON (string)
YAR_ERR_OKEY (int)
YAR_ERR_OUTPUT (int)
YAR_ERR_TRANSPORT (int)
YAR_ERR_REQUEST (int)
YAR_ERR_PROTOCOL (int)
YAR_ERR_PACKAGER (int)
YAR_ERR_EXCEPTION (int)


Beispiele

Beispiel #1 Yar Server Example

<?php

/* assume this page can be accessed by http://example.com/operator.php */

class Operator {

    /**
     * Add two operands
     * @param interge
     * @return interge
     */
    public function add($a, $b) {
        return $this->_add($a, $b);
    }

    /**
     * Sub
     */
    public function sub($a, $b) {
        return $a - $b;
    }

    /**
     * Mul
     */
    public function mul($a, $b) {
        return $a * $b;
    }

    /**
     * Protected methods will not be exposed
     * @param interge
     * @return interge
     */
    protected function _add($a, $b) {
        return $a + $b;
    }
}

$server = new Yar_Server(new Operator());
$server->handle();
?>

Beispiel #2 Access the server in borwser(GET request)

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Yar Server Info

Beispiel #3 Yar Client Example

<?php
$client = new yar_client("http://example.com/operator.php");

/* call directly */
var_dump($client->add(1, 2));

/* call via call */
var_dump($client->call("add", array(3, 2)));

/* __add can not be called */
var_dump($client->_add(1, 2));
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(3)
int(5)
PHP Fatal error:  Uncaught exception 'Yar_Server_Exception' with message 'call to api Operator::_add() failed' in *

Beispiel #4 Yar Concurrent Client Example

<?php
function callback($ret, $callinfo) {
    echo $callinfo['method'] , " result: ", $ret , "\n";
}

/* register async call to remote services */
Yar_Concurrent_Client::call("http://example.com/operator.php", "add", array(1, 2), "callback");
Yar_Concurrent_Client::call("http://example.com/operator.php", "sub", array(2, 1), "callback");
Yar_Concurrent_Client::call("http://example.com/operator.php", "mul", array(2, 2), "callback");

/* sent all request and wait for response */
Yar_Concurrent_Client::loop();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

mul result: 4
sub result: 1
add result: 3


The Yar_Server class

(No version information available, might only be in Git)

Einführung

Klassenbeschreibung

Yar_Server {
/* Eigenschaften */
protected $_executor ;
/* Methoden */
final public __construct ( Object $obj )
public handle ( ) : bool
}

Eigenschaften

_executor

Inhaltsverzeichnis

  • Yar_Server::__construct — Register a server
  • Yar_Server::handle — Start RPC Server


Register a server

  • « Yar_Server
  • Yar_Server::handle »
  • PHP Manual
  • Yar_Server
  • Register a server

Yar_Server::__construct

(PECL yar >= 1.0.0)

Yar_Server::__construct — Register a server

Beschreibung

final public Yar_Server::__construct ( Object $obj )

Set up a Yar HTTP RPC Server, All the public methods of $obj will be register as a RPC service.

Parameter-Liste

obj

An Object, all public methods of its will be registered as RPC services.

Rückgabewerte

An instance of Yar_Server.

Beispiele

Beispiel #1 Yar_Server::__construct() example

<?php
class API {
    /**
     * the doc info will be generated automatically into service info page.
     * @params
     * @return
     */
    public function some_method($parameter, $option = "foo") {
         return "some_method";
    }

    protected function client_can_not_see() {
    }
}

$service = new Yar_Server(new API());
$service->handle();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Siehe auch

  • Yar_Server::handle() - Start RPC Server
    •


Start RPC Server

  • « Yar_Server::__construct
  • Yar_Client »
  • PHP Manual
  • Yar_Server
  • Start RPC Server

Yar_Server::handle

(PECL yar >= 1.0.0)

Yar_Server::handle — Start RPC Server

Beschreibung

public Yar_Server::handle ( ) : bool

Start a RPC HTTP server, and ready for accpet RPC requests.

Hinweis:

Usual RPC calls will be issued as HTTP POST requests. If a HTTP GET request is issued to the uri, the service information (commented section above) will be printed on the page

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

boolean

Beispiele

Beispiel #1 Yar_Server::handle() example

<?php
class API {
    /**
     * the doc info will be generated automatically into service info page.
     * @params
     * @return
     */
    public function some_method($parameter, $option = "foo") {
    }

    protected function client_can_not_see() {
    }
}

$service = new Yar_Server(new API());
$service->handle();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Siehe auch

  • Yar_Server::__construct() - Register a server
    •


The Yar_Client class

(No version information available, might only be in Git)

Einführung

Klassenbeschreibung

Yar_Client {
/* Eigenschaften */
protected $_protocol ;
protected $_uri ;
protected $_options ;
protected $_running ;
/* Methoden */
public __call ( string $method , array $parameters ) : void
final public __construct ( string $url , array $options = ? )
public setOpt ( int $name , mixed $value ) : Yar_Client|false
}

Eigenschaften

_protocol

_uri

_options

_running

Inhaltsverzeichnis

  • Yar_Client::__call — Call service
  • Yar_Client::__construct — Create a client
  • Yar_Client::setOpt — Set calling contexts


Call service

  • « Yar_Client
  • Yar_Client::__construct »
  • PHP Manual
  • Yar_Client
  • Call service

Yar_Client::__call

(PECL yar >= 1.0.0)

Yar_Client::__call — Call service

Beschreibung

public Yar_Client::__call ( string $method , array $parameters ) : void

Issue a call to remote RPC method.

Parameter-Liste

method

Remote RPC method name.

parameters

Parameters.

Rückgabewerte

Beispiele

Beispiel #1 Yar_Client::__call() example

<?php

$client = new Yar_Client("http://host/api/");

/* call remote service */
$result = $client->some_method("parameter");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Siehe auch

  • Yar_Client::setOpt() - Set calling contexts
    •


Create a client

  • « Yar_Client::__call
  • Yar_Client::setOpt »
  • PHP Manual
  • Yar_Client
  • Create a client

Yar_Client::__construct

(PECL yar >= 1.0.0)

Yar_Client::__construct — Create a client

Beschreibung

final public Yar_Client::__construct ( string $url , array $options = ? )

Create a Yar_Client to a Yar_Server.

Parameter-Liste

url

Yar Server URL.

Rückgabewerte

Yar_Client instance.

Beispiele

Beispiel #1 Yar_Client::__construct() example

<?php
$client = new Yar_Client("http://host/api/");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Siehe auch

  • Yar_Client::__call() - Call service
    •

  • Yar_Client::setOpt() - Set calling contexts
    •


Set calling contexts

  • « Yar_Client::__construct
  • Yar_Concurrent_Client »
  • PHP Manual
  • Yar_Client
  • Set calling contexts

Yar_Client::setOpt

(PECL yar >= 1.0.0)

Yar_Client::setOpt — Set calling contexts

Beschreibung

public Yar_Client::setOpt ( int $name , mixed $value ) : Yar_Client|false

Parameter-Liste

name

it can be: YAR_OPT_PACKAGER, YAR_OPT_PERSISTENT (Need server support), YAR_OPT_TIMEOUT, YAR_OPT_CONNECT_TIMEOUT YAR_OPT_HEADER (Since 2.0.4)

value

Rückgabewerte

Returns $this on successIm Fehlerfall wird false zurückgegeben..

Beispiele

Beispiel #1 Yar_Client::setOpt() example

<?php

$cient = new Yar_Client("http://host/api/");

//Set timeout to 1s
$client->SetOpt(YAR_OPT_CONNECT_TIMEOUT, 1000);

//Set packager to JSON
$client->SetOpt(YAR_OPT_PACKAGER, "json");

//Set Custom headers
$client->SetOpt(YAR_OPT_HEADER, array("hr1: val1", "hd2: val2"));

/* call remote service */
$result = $client->some_method("parameter");
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Siehe auch

  • Yar_Client::__call() - Call service
    •


The Yar_Concurrent_Client class

(No version information available, might only be in Git)

Einführung

Klassenbeschreibung

Yar_Concurrent_Client {
/* Eigenschaften */
static $_callstack ;
static $_callback ;
static $_error_callback ;
/* Methoden */
public static call ( string $uri , string $method , array $parameters = ? , callable $callback = ? , callable $error_callback = ? , array $options = ? ) : int
public static loop ( callable $callback = ? , callable $error_callback = ? ) : bool
public static reset ( ) : bool
}

Eigenschaften

_callstack

_callback

_error_callback

Inhaltsverzeichnis

  • Yar_Concurrent_Client::call — Register a concurrent call
  • Yar_Concurrent_Client::loop — Send all calls
  • Yar_Concurrent_Client::reset — Clean all registered calls


Register a concurrent call

  • « Yar_Concurrent_Client
  • Yar_Concurrent_Client::loop »
  • PHP Manual
  • Yar_Concurrent_Client
  • Register a concurrent call

Yar_Concurrent_Client::call

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::call — Register a concurrent call

Beschreibung

public static Yar_Concurrent_Client::call ( string $uri , string $method , array $parameters = ? , callable $callback = ? , callable $error_callback = ? , array $options = ? ) : int

Register a RPC call, but won't sent it immediately, it will be send while further call to Yar_Concurrent_Client::loop()

Parameter-Liste

uri

The RPC server URI(http, tcp)

method

Service name(aka the method name)

parameters

Parameters

callback

A function callback, which will be called while the response return.

Rückgabewerte

An unique id, can be used to identified which call it is.

Beispiele

Beispiel #1 Yar_Concurrent_Client::call() example

<?php
function callback($retval, $callinfo) {
     var_dump($retval);
}

function error_callback($type, $error, $callinfo) {
    error_log($error);
}

Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback");
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"));   // if the callback is not specificed,
                                                                               // callback in loop will be used
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
                                                                               //this server accept json packager
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
                                                                               //custom timeout

//The requests are not sent yet
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Siehe auch

  • Yar_Concurrent_Client::loop() - Send all calls
    •

  • Yar_Concurrent_Client::reset() - Clean all registered calls
    •

  • Yar_Server::__construct() - Register a server
    •

  • Yar_Server::handle() - Start RPC Server
    •


Send all calls

  • « Yar_Concurrent_Client::call
  • Yar_Concurrent_Client::reset »
  • PHP Manual
  • Yar_Concurrent_Client
  • Send all calls

Yar_Concurrent_Client::loop

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::loop — Send all calls

Beschreibung

public static Yar_Concurrent_Client::loop ( callable $callback = ? , callable $error_callback = ? ) : bool

Send all registed remote RPC calls.

Parameter-Liste

callback

If this callback is set, then Yar will call this callback after all calls are sent and before any response return, with a $callinfo NULL.

Then, if user didn't specify callback when registering concurrent call, this callback will be used to handle response, otherwise, the callback specified while registering will be used.

error_callback

If this callback is set, then Yar will call this callback while error occurred.

Rückgabewerte

Beispiele

Beispiel #1 Yar_Concurrent_Client::loop() example

<?php
function callback($retval, $callinfo) {
     if ($callinfo == NULL) {
        echo "Now, all requests are sent, and no any response available\n";
     } else {
        echo "This is a remote call response, the method name is", $callinfo["method"],
             ". calling sequence is " , $callinfo["sequence"] , "\n";
        var_dump($retval);
     }
}

function error_callback($type, $error, $callinfo) {
    error_log($error);
}

Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback");
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"));   // if the callback is not specificed,
                                                                               // callback in loop will be used
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
                                                                               //this server accept json packager
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
                                                                               //custom timeout

Yar_Concurrent_Client::loop("callback", "error_callback"); //send the requests,
                                                           //the error_callback is optional
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Now, all requests are sent, and no any response available
This is a remote call response, the method name issome_method. calling sequence is 4
string(11) "some_method"
This is a remote call response, the method name issome_method. calling sequence is 1
string(11) "some_method"
This is a remote call response, the method name issome_method. calling sequence is 2
string(11) "some_method"
This is a remote call response, the method name issome_method. calling sequence is 3
string(11) "some_method"

Siehe auch

  • Yar_Concurrent_Client::call() - Register a concurrent call
  • Yar_Concurrent_Client::reset() - Clean all registered calls
  • Yar_Server::__construct() - Register a server
  • Yar_Server::handle() - Start RPC Server


Clean all registered calls

  • « Yar_Concurrent_Client::loop
  • Yar_Server_Exception »
  • PHP Manual
  • Yar_Concurrent_Client
  • Clean all registered calls

Yar_Concurrent_Client::reset

(PECL yar >= 1.2.4)

Yar_Concurrent_Client::reset — Clean all registered calls

Beschreibung

public static Yar_Concurrent_Client::reset ( ) : bool

Clean all registered calls

Parameter-Liste

Rückgabewerte

Beispiele

Beispiel #1 Yar_Concurrent_Client::reset() example

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Siehe auch

  • Yar_Concurrent_Client::call() - Register a concurrent call
    •

  • Yar_Concurrent_Client::loop() - Send all calls
    •

  • Yar_Server::__construct() - Register a server
    •

  • Yar_Server::handle() - Start RPC Server
    •


The Yar_Server_Exception class

(No version information available, might only be in Git)

Einführung

If service threw exceptions, A Yar_Server_Exception will be threw in client side.

Klassenbeschreibung

Yar_Server_Exception extends Exception {
/* Eigenschaften */
protected $_type ;
/* Methoden */
public getType ( ) : string
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

message

code

file

line

_type

Inhaltsverzeichnis

  • Yar_Server_Exception::getType — Retrieve exception's type


Retrieve exception's type

  • « Yar_Server_Exception
  • Yar_Client_Exception »
  • PHP Manual
  • Yar_Server_Exception
  • Retrieve exception's type

Yar_Server_Exception::getType

(PECL yar >= 1.0.0)

Yar_Server_Exception::getType — Retrieve exception's type

Beschreibung

public Yar_Server_Exception::getType ( ) : string

Get the exception original type threw by server

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

string

Beispiele

Beispiel #1 Yar_Server_Exception::getType() example

//Server.php
<?php
class Custom_Exception extends Exception {};

class API {
    public function throw_exception($name) {
        throw new Custom_Exception($name);
    }
}

$service = new Yar_Server(new API());
$service->handle();
?>

//Client.php
<?php
$client = new Yar_Client("http://host/api.php");

try {
    $client->throw_exception("client");
} catch (Yar_Server_Exception $e) {
    var_dump($e->getType());
    var_dump($e->getMessage());
}

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(16) "Custom_Exception"
string(6) "client"

Siehe auch


The Yar_Client_Exception class

(No version information available, might only be in Git)

Einführung

Klassenbeschreibung

Yar_Client_Exception extends Exception {
/* Eigenschaften */
/* Methoden */
public getType ( ) : string
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

message

code

file

line

Inhaltsverzeichnis

  • Yar_Client_Exception::getType — Retrieve exception's type


Retrieve exception's type

  • « Yar_Client_Exception
  • XML-RPC »
  • PHP Manual
  • Yar_Client_Exception
  • Retrieve exception's type

Yar_Client_Exception::getType

(PECL yar >= 1.0.0)

Yar_Client_Exception::getType — Retrieve exception's type

Beschreibung

public Yar_Client_Exception::getType ( ) : string

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns "Yar_Exception_Client".

Beispiele

Beispiel #1 Yar_Client_Exception::getType() example

<?php

/* ... */

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

...

Siehe auch

  • Yaf_Server_Exception::getType()


XML-RPC

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • XML-RPC Funktionen
    • xmlrpc_decode_request — Decodes XML into native PHP types
    • xmlrpc_decode — Decodes XML into native PHP types
    • xmlrpc_encode_request — Generates XML for a method request
    • xmlrpc_encode — Generates XML for a PHP value
    • xmlrpc_get_type — Gets xmlrpc type for a PHP value
    • xmlrpc_is_fault — Determines if an array value represents an XMLRPC fault
    • xmlrpc_parse_method_descriptions — Decodes XML into a list of method descriptions
    • xmlrpc_server_add_introspection_data — Adds introspection documentation
    • xmlrpc_server_call_method — Parses XML requests and call methods
    • xmlrpc_server_create — Creates an xmlrpc server
    • xmlrpc_server_destroy — Destroys server resources
    • xmlrpc_server_register_introspection_callback — Register a PHP function to generate documentation
    • xmlrpc_server_register_method — Register a PHP function to resource method matching method_name
    • xmlrpc_set_type — Sets xmlrpc type, base64 or datetime, for a PHP string value


Einführung

These functions can be used to write XML-RPC servers and clients. You can find more information about XML-RPC at » http://www.xmlrpc.com/, and more documentation on this extension and its functions at » http://xmlrpc-epi.sourceforge.net/.

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.


Installation

XML-RPC support in PHP is not enabled by default. You will need to use the --with-xmlrpc[=DIR] configuration option when compiling PHP to enable XML-RPC support.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

This extension defines a XML-RPC server resource returned by xmlrpc_server_create().


  • « Ressource-Typen
  • XML-RPC Funktionen »
  • PHP Manual
  • XML-RPC
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


XML-RPC Funktionen

Inhaltsverzeichnis

  • xmlrpc_decode_request — Decodes XML into native PHP types
  • xmlrpc_decode — Decodes XML into native PHP types
  • xmlrpc_encode_request — Generates XML for a method request
  • xmlrpc_encode — Generates XML for a PHP value
  • xmlrpc_get_type — Gets xmlrpc type for a PHP value
  • xmlrpc_is_fault — Determines if an array value represents an XMLRPC fault
  • xmlrpc_parse_method_descriptions — Decodes XML into a list of method descriptions
  • xmlrpc_server_add_introspection_data — Adds introspection documentation
  • xmlrpc_server_call_method — Parses XML requests and call methods
  • xmlrpc_server_create — Creates an xmlrpc server
  • xmlrpc_server_destroy — Destroys server resources
  • xmlrpc_server_register_introspection_callback — Register a PHP function to generate documentation
  • xmlrpc_server_register_method — Register a PHP function to resource method matching method_name
  • xmlrpc_set_type — Sets xmlrpc type, base64 or datetime, for a PHP string value


Decodes XML into native PHP types

  • « XML-RPC Funktionen
  • xmlrpc_decode »
  • PHP Manual
  • XML-RPC Funktionen
  • Decodes XML into native PHP types

xmlrpc_decode_request

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_decode_request — Decodes XML into native PHP types

Beschreibung

xmlrpc_decode_request ( string $xml , string &$method , string $encoding = ? ) : mixed
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Decodes XML into native PHP types

  • « xmlrpc_decode_request
  • xmlrpc_encode_request »
  • PHP Manual
  • XML-RPC Funktionen
  • Decodes XML into native PHP types

xmlrpc_decode

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_decode — Decodes XML into native PHP types

Beschreibung

xmlrpc_decode ( string $xml , string $encoding = "iso-8859-1" ) : mixed
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

xml

XML response returned by XMLRPC method.

encoding

Input encoding supported by iconv.

Rückgabewerte

Returns either an array, or an integer, or a string, or a boolean according to the response returned by the XMLRPC method.

Beispiele

See example by xmlrpc_encode_request().

Siehe auch

  • xmlrpc_encode_request() - Generates XML for a method request
  • xmlrpc_is_fault() - Determines if an array value represents an XMLRPC fault


Generates XML for a method request

  • « xmlrpc_decode
  • xmlrpc_encode »
  • PHP Manual
  • XML-RPC Funktionen
  • Generates XML for a method request

xmlrpc_encode_request

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_encode_request — Generates XML for a method request

Beschreibung

xmlrpc_encode_request ( string $method , mixed $params , array $output_options = ? ) : string
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

method

Name of the method to call.

params

Method parameters compatible with method signature.

output_options

Array specifying output options may contain (default values are emphasised):

  • output_type: php, xml

  • verbosity: no_white_space, newlines_only, pretty

  • escaping: cdata, non-ascii, non-print, markup (may be a string with one value or an array with multiple values)

  • version: simple, xmlrpc, soap 1.1, auto

  • encoding: iso-8859-1, other character set supported by iconv

Rückgabewerte

Returns a string containing the XML representation of the request.

Beispiele

Beispiel #1 XMLRPC client functions example

<?php
$request = xmlrpc_encode_request("method", array(1, 2, 3));
$context = stream_context_create(array('http' => array(
    'method' => "POST",
    'header' => "Content-Type: text/xml",
    'content' => $request
)));
$file = file_get_contents("http://www.example.com/xmlrpc", false, $context);
$response = xmlrpc_decode($file);
if ($response && xmlrpc_is_fault($response)) {
    trigger_error("xmlrpc: $response[faultString] ($response[faultCode])");
} else {
    print_r($response);
}
?>

Siehe auch

  • stream_context_create() - Creates a stream context
  • file_get_contents() - Liest die gesamte Datei in einen String
  • xmlrpc_decode() - Decodes XML into native PHP types


Generates XML for a PHP value

  • « xmlrpc_encode_request
  • xmlrpc_get_type »
  • PHP Manual
  • XML-RPC Funktionen
  • Generates XML for a PHP value

xmlrpc_encode

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_encode — Generates XML for a PHP value

Beschreibung

xmlrpc_encode ( mixed $value ) : string
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Gets xmlrpc type for a PHP value

  • « xmlrpc_encode
  • xmlrpc_is_fault »
  • PHP Manual
  • XML-RPC Funktionen
  • Gets xmlrpc type for a PHP value

xmlrpc_get_type

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_get_type — Gets xmlrpc type for a PHP value

Beschreibung

xmlrpc_get_type ( mixed $value ) : string
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

This function is especially useful for base64 and datetime strings.

Parameter-Liste

value

PHP value

Rückgabewerte

Returns the XML-RPC type.

Beispiele

Beispiel #1 XML-RPC type example

<?php
echo xmlrpc_get_type(null) . "\n"; // base64
echo xmlrpc_get_type(false) . "\n"; // boolean
echo xmlrpc_get_type(1) . "\n"; // int
echo xmlrpc_get_type(1.0) . "\n"; // double
echo xmlrpc_get_type("") . "\n"; // string
echo xmlrpc_get_type(array()) . "\n"; // array
echo xmlrpc_get_type(new stdClass) . "\n"; // array
echo xmlrpc_get_type(STDIN) . "\n"; // int
?>

Siehe auch

  • xmlrpc_set_type() - Sets xmlrpc type, base64 or datetime, for a PHP string value


Determines if an array value represents an XMLRPC fault

  • « xmlrpc_get_type
  • xmlrpc_parse_method_descriptions »
  • PHP Manual
  • XML-RPC Funktionen
  • Determines if an array value represents an XMLRPC fault

xmlrpc_is_fault

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

xmlrpc_is_fault — Determines if an array value represents an XMLRPC fault

Beschreibung

xmlrpc_is_fault ( array $arg ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

arg

Array returned by xmlrpc_decode().

Rückgabewerte

Returns true if the argument means fault, false otherwise. Fault description is available in $arg["faultString"], fault code is in $arg["faultCode"].

Beispiele

See example by xmlrpc_encode_request().

Siehe auch

  • xmlrpc_decode() - Decodes XML into native PHP types


Decodes XML into a list of method descriptions

  • « xmlrpc_is_fault
  • xmlrpc_server_add_introspection_data »
  • PHP Manual
  • XML-RPC Funktionen
  • Decodes XML into a list of method descriptions

xmlrpc_parse_method_descriptions

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_parse_method_descriptions — Decodes XML into a list of method descriptions

Beschreibung

xmlrpc_parse_method_descriptions ( string $xml ) : array
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Adds introspection documentation

  • « xmlrpc_parse_method_descriptions
  • xmlrpc_server_call_method »
  • PHP Manual
  • XML-RPC Funktionen
  • Adds introspection documentation

xmlrpc_server_add_introspection_data

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_add_introspection_data — Adds introspection documentation

Beschreibung

xmlrpc_server_add_introspection_data ( resource $server , array $desc ) : int
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Parses XML requests and call methods

  • « xmlrpc_server_add_introspection_data
  • xmlrpc_server_create »
  • PHP Manual
  • XML-RPC Funktionen
  • Parses XML requests and call methods

xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_call_method — Parses XML requests and call methods

Beschreibung

xmlrpc_server_call_method ( resource $server , string $xml , mixed $user_data , array $output_options = ? ) : string
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Creates an xmlrpc server

  • « xmlrpc_server_call_method
  • xmlrpc_server_destroy »
  • PHP Manual
  • XML-RPC Funktionen
  • Creates an xmlrpc server

xmlrpc_server_create

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_create — Creates an xmlrpc server

Beschreibung

xmlrpc_server_create ( ) : resource
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Destroys server resources

  • « xmlrpc_server_create
  • xmlrpc_server_register_introspection_callback »
  • PHP Manual
  • XML-RPC Funktionen
  • Destroys server resources

xmlrpc_server_destroy

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_destroy — Destroys server resources

Beschreibung

xmlrpc_server_destroy ( resource $server ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Register a PHP function to generate documentation

  • « xmlrpc_server_destroy
  • xmlrpc_server_register_method »
  • PHP Manual
  • XML-RPC Funktionen
  • Register a PHP function to generate documentation

xmlrpc_server_register_introspection_callback

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_register_introspection_callback — Register a PHP function to generate documentation

Beschreibung

xmlrpc_server_register_introspection_callback ( resource $server , string $function ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Register a PHP function to resource method matching method_name

  • « xmlrpc_server_register_introspection_callback
  • xmlrpc_set_type »
  • PHP Manual
  • XML-RPC Funktionen
  • Register a PHP function to resource method matching method_name

xmlrpc_server_register_method

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_register_method — Register a PHP function to resource method matching method_name

Beschreibung

xmlrpc_server_register_method ( resource $server , string $method_name , string $function ) : bool
Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


Sets xmlrpc type, base64 or datetime, for a PHP string value

  • « xmlrpc_server_register_method
  • Windowsbasierte Erweiterungen »
  • PHP Manual
  • XML-RPC Funktionen
  • Sets xmlrpc type, base64 or datetime, for a PHP string value

xmlrpc_set_type

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_set_type — Sets xmlrpc type, base64 or datetime, for a PHP string value

Beschreibung

xmlrpc_set_type ( string &$value , string $type ) : bool

Sets xmlrpc type, base64 or datetime, for a PHP string value.

Warnung

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Parameter-Liste

value

Value to set the type

type

'base64' or 'datetime'

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. If successful, value is converted to an object.

Beispiele

Beispiel #1 A xmlrpc_set_type() example

<?php

$params = date("Ymd\TH:i:s", time());
xmlrpc_set_type($params, 'datetime');
echo xmlrpc_encode($params);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
 <value>
  <dateTime.iso8601>20090322T23:43:03</dateTime.iso8601>
 </value>
</param>
</params>

Fehler/Exceptions

Issues E_WARNING with type unsupported by XMLRPC.


Windowsbasierte Erweiterungen

  • COM — COM and .Net (Windows)
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Errors and error handling
    • Beispiele
    • com — Die com-Klasse
    • dotnet — The dotnet class
    • variant — variant Klasse
    • COMPersistHelper — The COMPersistHelper class
    • com_exception — The com_exception class
    • COM Funktionen
  • win32service
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Win32ServiceException — The Win32ServiceException class
    • Beispiele
    • win32service Funktionen


COM and .Net (Windows)

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Errors and error handling
  • Beispiele
    • For Each
    • Arrays and Array-style COM properties
  • com — Die com-Klasse
    • com::__construct — com-Klassenkonstruktor
  • dotnet — The dotnet class
    • dotnet::__construct — dotnet class constructor
  • variant — variant Klasse
    • variant::__construct — variant Klassen Konstruktor
  • COMPersistHelper — The COMPersistHelper class
    • COMPersistHelper::__construct — Construct a COMPersistHelper object
    • COMPersistHelper::GetCurFileName — Get current filename
    • COMPersistHelper::GetMaxStreamSize — Get maximum stream size
    • COMPersistHelper::InitNew — Initialize object to default state
    • COMPersistHelper::LoadFromFile — Load object from file
    • COMPersistHelper::LoadFromStream — Load object from stream
    • COMPersistHelper::SaveToFile — Save object to file
    • COMPersistHelper::SaveToStream — Save object to stream
  • com_exception — The com_exception class
  • COM Funktionen
    • com_create_guid — Generate a globally unique identifier (GUID)
    • com_event_sink — Connect events from a COM object to a PHP object
    • com_get_active_object — Returns a handle to an already running instance of a COM object
    • com_load_typelib — Lädt eine Typelib
    • com_message_pump — Process COM messages, sleeping for up to timeoutms milliseconds
    • com_print_typeinfo — Print out a PHP class definition for a dispatchable interface
    • variant_abs — Returns the absolute value of a variant
    • variant_add — "Adds" two variant values together and returns the result
    • variant_and — Performs a bitwise AND operation between two variants
    • variant_cast — Convert a variant into a new variant object of another type
    • variant_cat — Concatenates two variant values together and returns the result
    • variant_cmp — Compares two variants
    • variant_date_from_timestamp — Returns a variant date representation of a Unix timestamp
    • variant_date_to_timestamp — Converts a variant date/time value to Unix timestamp
    • variant_div — Returns the result from dividing two variants
    • variant_eqv — Performs a bitwise equivalence on two variants
    • variant_fix — Returns the integer portion of a variant
    • variant_get_type — Returns the type of a variant object
    • variant_idiv — Converts variants to integers and then returns the result from dividing them
    • variant_imp — Performs a bitwise implication on two variants
    • variant_int — Returns the integer portion of a variant
    • variant_mod — Divides two variants and returns only the remainder
    • variant_mul — Multiplies the values of the two variants
    • variant_neg — Performs logical negation on a variant
    • variant_not — Performs bitwise not negation on a variant
    • variant_or — Performs a logical disjunction on two variants
    • variant_pow — Returns the result of performing the power function with two variants
    • variant_round — Rounds a variant to the specified number of decimal places
    • variant_set_type — Convert a variant into another type "in-place"
    • variant_set — Assigns a new value for a variant object
    • variant_sub — Subtracts the value of the right variant from the left variant value
    • variant_xor — Performs a logical exclusion on two variants


Einführung

COM is an acronym for Component Object Model; it is an object orientated layer (and associated services) on top of DCE RPC (an open standard) and defines a common calling convention that enables code written in any language to call and interoperate with code written in any other language (provided those languages are COM aware). Not only can the code be written in any language, but it need not even be part of the same executable; the code can be loaded from a DLL, be found in another process running on the same machine, or, with DCOM (Distributed COM), be found in another process on a remote machine, all without your code even needing to know where a component resides.

There is a subset of COM known as OLE Automation which comprises a set of COM interfaces that allow loose binding to COM objects, so that they can be introspected and called at run-time without compile-time knowledge of how the object works. The PHP COM extension utilizes the OLE Automation interfaces to allow you to create and call compatible objects from your scripts. Technically speaking, this should really be called the "OLE Automation Extension for PHP", since not all COM objects are OLE compatible.

Now, why would or should you use COM? COM is one of the main ways to glue applications and components together on the Windows platform; using COM you can launch Microsoft Word, fill in a document template and save the result as a Word document and send it to a visitor of your web site. You can also use COM to perform administrative tasks for your network and to configure your IIS; these are just the most common uses; you can do much more with COM.

Additionally, we support the instantiation and creation of .Net assemblies using the COM interoperability layer provided by Microsoft.


Anforderungen

COM functions are only available for the Windows version of PHP.

.Net support requires the .Net runtime.


Installation

As of PHP 5.3.15 / 5.4.5, this extension requires php_com_dotnet.dll to be enabled inside of php.ini in order to use these functions. Previous versions of PHP enabled these extensions by default.

You are responsible for installing support for the various COM objects that you intend to use (such as MS Word); we don't and can't bundle all of those with PHP.


Laufzeit-Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

Com configuration options
Name | Standard | Veränderbar | Changelog
com.allow_dcom | "0" | PHP_INI_SYSTEM |
com.autoregister_typelib | "0" | PHP_INI_ALL |
com.autoregister_verbose | "0" | PHP_INI_ALL |
com.autoregister_casesensitive | "1" | PHP_INI_ALL |
com.code_page | "" | PHP_INI_ALL |
com.dotnet_version | "" | PHP_INI_SYSTEM | As of PHP 8.0.0
com.typelib_file | "" | PHP_INI_SYSTEM |
Weitere Details und die Definitionen der PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.

Hier eine kurze Erklärung der Konfigurationsoptionen:

com.allow_dcom

When this is turned on, PHP will be allowed to operate as a D-COM (Distributed COM) client and will allow the PHP script to instantiate COM objects on a remote server.

com.autoregister_typelib

When this is turned on, PHP will attempt to register constants from the typelibrary of COM objects that it instantiates, if those objects implement the interfaces required to obtain that information. The case sensitivity of the constants it registers is controlled by the configuration directive.

com.autoregister_verbose

When this is turned on, any problems with loading a typelibrary during object instantiation will be reported using the PHP error mechanism. The default is off, which does not emit any indication if there was an error finding or loading the type library.

com.autoregister_casesensitive

When this is turned on (the default), constants found in auto-loaded type libraries when instatiating COM objects will be registered case sensitively. See com_load_typelib() for more details.

com.code_page

It controls the default character set code-page to use when passing strings to and from COM objects. If set to an empty string, PHP will assume that you want CP_ACP, which is the default system ANSI code page.

If the text in your scripts is encoded using a different encoding/character set by default, setting this directive will save you from having to pass the code page as a parameter to the com class constructor. Please note that by using this directive (as with any PHP configuration directive), your PHP script becomes less portable; you should use the COM constructor parameter whenever possible.

com.dotnet_version

The version of the .NET framework to use for dotnet objects. The value of the setting is the first three parts of the framework's version number, separated by dots, and prefixed with v, e.g. v4.0.30319.

com.typelib_file

When set, this should hold the path to a file that contains a list of typelibraries that should be loaded on startup. Each line of the file will be treated as the type library name and loaded as though you had called com_load_typelib(). The constants will be registered persistently, so that the library only needs to be loaded once. If a type library name ends with the string #cis or #case_insensitive, then the constants from that library will be registered case insensitively.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

COM constants
Constant | Value | Description | Notes
CLSCTX_INPROC_SERVER (int) | 1 | The code that creates and manages objects of this class is a DLL that runs in the same process as the caller of the function specifying the class context. |
CLSCTX_INPROC_HANDLER (int) | 2 | The code that manages objects of this class is an in-process handler. This is a DLL that runs in the client process and implements client-side structures of this class when instances of the class are accessed remotely. |
CLSCTX_LOCAL_SERVER (int) | 4 | The EXE code that creates and manages objects of this class runs on same machine but is loaded in a separate process space. |
CLSCTX_REMOTE_SERVER (int) | 16 | A remote context. The code that creates and manages objects of this class is run on a different computer. |
CLSCTX_SERVER (int) | 21 | Indicates server code, whether in-process, local, or remote. This definition ORs CLSCTX_INPROC_SERVER, CLSCTX_LOCAL_SERVER, and CLSCTX_REMOTE_SERVER. |
CLSCTX_ALL (int) | 23 | Indicates all class contexts. This definition ORs CLSCTX_INPROC_HANDLER and CLSCTX_SERVER. |
VT_NULL (int) | 1 | NULL pointer reference. |
VT_EMPTY (int) | 0 | A property with a type indicator of VT_EMPTY has no data associated with it; that is, the size of the value is zero. |
VT_INT (int) | 22 | 4-byte signed integer value (equivalent to VT_I4). |
VT_I1 (int) | 16 | 1-byte signed integer. |
VT_I2 (int) | 2 | Two bytes representing a 2-byte signed integer value. |
VT_I4 (int) | 3 | 4-byte signed integer value. |
VT_I8 (int) | 20 | 8-byte signed integer value. | Available as of PHP 7.0.0 (x64 only).
VT_UINT (int) | 23 | 4-byte unsigned integer (equivalent to VT_UI4). |
VT_UI1 (int) | 17 | 1-byte unsigned integer. |
VT_UI2 (int) | 18 | 2-byte unsigned integer. |
VT_UI4 (int) | 19 | 4-byte unsigned integer. |
VT_UI8 (int) | 21 | 8-byte unsigned integer. | Available as of PHP 7.0.0 (x64 only).
VT_R4 (int) | 4 | 32-bit IEEE floating point value. |
VT_R8 (int) | 5 | 64-bit IEEE floating point value. |
VT_BOOL (int) | 11 | Boolean value. |
VT_ERROR (int) | 10 | Error code; containing the status code associated with the error. |
VT_CY (int) | 6 | 8-byte two's complement integer (scaled by 10,000). |
VT_DATE (int) | 7 | A 64-bit floating point number representing the number of days (not seconds) since December 31, 1899. For example, January 1, 1900, is 2.0, January 2, 1900, is 3.0, and so on). This is stored in the same representation as VT_R8. |
VT_BSTR (int) | 8 | Pointer to a null-terminated Unicode string. |
VT_DECIMAL (int) | 14 | A decimal structure. |
VT_UNKNOWN (int) | 13 | A pointer to an object that implements the IUnknown interface. |
VT_DISPATCH (int) | 9 | A pointer to a pointer to an object was specified. |
VT_VARIANT (int) | 12 | A type indicator followed by the corresponding value. VT_VARIANT can be used only with VT_BYREF. |
VT_ARRAY (int) | 8192 | If the type indicator is combined with VT_ARRAY by an OR operator, the value is a pointer to a SAFEARRAY. VT_ARRAY can use the OR with the following data types: VT_I1, VT_UI1, VT_I2, VT_UI2, VT_I4, VT_UI4, VT_INT, VT_UINT, VT_R4, VT_R8, VT_BOOL, VT_DECIMAL, VT_ERROR, VT_CY, VT_DATE, VT_BSTR, VT_DISPATCH, VT_UNKNOWN and VT_VARIANT. |
VT_BYREF (int) | 16384 | If the type indicator is combined with VT_BYREF by an OR operator, the value is a reference. Reference types are interpreted as a reference to data, similar to the reference type in C++. |
CP_ACP (int) | 0 | Default to ANSI code page. |
CP_MACCP (int) | 2 | Macintosh code page. |
CP_OEMCP (int) | 1 | Default to OEM code page. |
CP_UTF7 (int) | 65000 | Unicode (UTF-7). |
CP_UTF8 (int) | 65001 | Unicode (UTF-8). |
CP_SYMBOL (int) | 42 | SYMBOL translations. |
CP_THREAD_ACP (int) | 3 | Current thread's ANSI code page |
VARCMP_LT (int) | 0 | The left bstr is less than right bstr. |
VARCMP_EQ (int) | 1 | The two parameters are equal. |
VARCMP_GT (int) | 2 | The left bstr is greater than right bstr. |
VARCMP_NULL (int) | 3 | Either expression is NULL. |
NORM_IGNORECASE (int) | 1 | Ignore case sensitivity. |
NORM_IGNORENONSPACE (int) | 2 | Ignore nonspacing characters. |
NORM_IGNORESYMBOLS (int) | 4 | Ignore symbols. |
NORM_IGNOREWIDTH (int) | 131072 | Ignore string width. |
NORM_IGNOREKANATYPE (int) | 65536 | Ignore Kana type. |
NORM_IGNOREKASHIDA (int) | 262144 | Ignore Arabic kashida characters. | Availability is dependent upon under lying library.
DISP_E_DIVBYZERO (int) | -2147352558 | A return error that indicates a divide by zero error. | As of PHP 7.0.0, the value is 2147614738 on x64.
DISP_E_OVERFLOW (int) | -2147352566 | An error that indicates that a value could not be coerced to its expected representation. | As of PHP 7.0.0, the value is 2147614730 on x64.
DISP_E_BADINDEX (int) | -2147352565 | An error that indicates that an array index does not exist. | As of PHP 7.0.0, the value is 2147614731 on x64.
MK_E_UNAVAILABLE (int) | -2147221021 | iMoniker COM status code, return on errors where the function call failed due to unavailability. | As of PHP 7.0.0, the value is 2147746275 on x64.


Errors and error handling

This extension will throw instances of the class com_exception whenever there is a potentially fatal error reported by COM. All COM exceptions have a well-defined code property that corresponds to the HRESULT return value from the various COM operations. You may use this code to make programmatic decisions on how to handle the exception.


Beispiele

Inhaltsverzeichnis

  • For Each
  • Arrays and Array-style COM properties


For Each

You may use PHP's own foreach statement to iterate over the contents of a standard COM/OLE IEnumVariant. In layman's terms, this means that you can use foreach in places where you would have used For Each in VB/ASP code.

Beispiel #1 For Each in ASP

<%
Set domainObject = GetObject("WinNT://Domain")
For Each obj in domainObject
  Response.Write obj.Name & "<br />"
Next
%>

Beispiel #2 foreach in PHP

<?php
$domainObject = new COM("WinNT://Domain");
foreach ($domainObject as $obj) {
   echo $obj->Name . "<br />";
}
?>


Arrays and Array-style COM properties

Many COM objects expose their properties as arrays, or using array-style access.

You can:

  • Access multi-dimensional arrays, or COM properties that require multiple parameters using PHP array syntax. You can also write or set properties using this technique.

  • Iterate SafeArrays ("true" arrays) using the foreach control structure. This works because SafeArrays include information about their size. If an array-style property implements IEnumVariant then you can also use foreach for that property too; take a look at For Each for more information on this topic.


Die com-Klasse

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

Einführung

Die com-Klasse erlaubt Ihnen, ein OLE-kompatibles COM-Objekt zu erzeugen, seine Methoden aufzurufen und auf seine Eigenschaften zuzugreifen.

Klassenbeschreibung

com extends variant {
/* Methoden */
__construct ( string $module_name , mixed $server_name = null , int $codepage = CP_ACP , string $typelib = ? )
}

Überladene Methoden

Das zurückgegebene Objekt ist überladen, was bedeutet, dass PHP keine bestimmten Methoden kennt, wie das normalerweise der Fall ist; statt dessen wird jeder Eigenschafts- oder Methodenzugriff an COM weitergereicht.

PHP erkennt automatisch Methoden, die Referenzparameter erwarten, und wird reguläre PHP-Variablen automatisch in eine Form umwandeln, die per Referenz übergeben werden kann. Das heißt, das die Methode sehr natürlich aufgerufen werden kann; es ist kein Zusatzaufwand nötig.

com-Beispiele

Beispiel #1 com-Beispiel 1

<?php
// Word starten
$word = new com("word.application") or die("Konnte Word nicht instanziieren");
echo "Word geladen, Version {$word->Version}\n";

//sichtbar machen
$word->Visible = 1;

//ein leeres Dokument öffnen
$word->Documents->Add();

//irgendetwas damit tun
$word->Selection->TypeText("Dies ist ein Test...");
$word->Documents[1]->SaveAs("Nutzloser Test.doc");

//Word schließen
$word->Quit();

//Objekt freigeben
$word = null;
?>

Beispiel #2 com-Beispiel 2

<?php

$conn = new com("ADODB.Connection") or die("Konnte ADO nicht starten");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");

$rs = $conn->Execute("SELECT * FROM sometable");    // Recordset

$num_columns = $rs->Fields->Count();
echo $num_columns . "\n";

for ($i=0; $i < $num_columns; $i++) {
    $fld[$i] = $rs->Fields($i);
}

$rowcount = 0;
while (!$rs->EOF) {
    for ($i=0; $i < $num_columns; $i++) {
        echo $fld[$i]->value . "\t";
    }
    echo "\n";
    $rowcount++;            // Zeilennummer hochzählen
    $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs = null;
$conn = null;

?>

Inhaltsverzeichnis

  • com::__construct — com-Klassenkonstruktor


com-Klassenkonstruktor

  • « com
  • dotnet »
  • PHP Manual
  • com
  • com-Klassenkonstruktor

com::__construct

(PHP 4 > 4.1.0, PHP 5, PHP 7, PHP 8)

com::__construct — com-Klassenkonstruktor

Beschreibung

com::__construct ( string $module_name , mixed $server_name = null , int $codepage = CP_ACP , string $typelib = ? )

Konstruiert ein neues com Objekt.

Parameter-Liste

module_name
Kann eine ProgID, Klassen-ID oder der Moniker der zu ladenden Komponente sein. Eine ProgID ist typischerweise der Applikations- oder DLL-Name, gefolgt von einem Punkt, gefolgt vom Objektnamen, z.B. Word.Application Eine Klassen-ID ist die UUID, die eineindeutig eine bestimmte Klasse identifiziert. Ein Moniker ist eine spezielle Form der Benennung, konzeptähnlich dem URL-Schema, das eine Ressource identifiziert und angibt, wie sie geladen werden soll. Beispielsweise könnten Sie Word laden und ein Objekt erzeugen, das ein Worddokument repräsentiert, indem Sie den vollständigen Pfad zum Worddokument als Modulnamen angeben, oder Sie können LDAP: als einen Moniker verwenden, um das ADSI-Interface zu LDAP zu nutzen.
server_name
Name des DCOM-Servers, auf dem die Komponente geladen und ausgeführt werden soll. Ist null angegeben, wird das Objekt auf dem Standardwert dieser Applikation ausgeführt. Der Standardwert ist typischerweise die Ausführung auf der lokalen Maschine, obwohl der Administrator die Applikation so konfiguriert haben kann, dass sie auf einer anderen Maschine startet. Wenn Sie einen Nicht-null-Wert für den Server angeben, wird PHP das Laden des Objekts zurückweisen, wenn nicht auch die Konfigurationsoption auf true gesetzt ist.

Wenn server_name ein Array ist, sollte es die folgenden Elemente enthalten (Groß- und Kleinschreibung wird unterschiedlich interpretiert!). Beachten Sie, dass alle Elemente optional sind (obwohl Sie bei der Angabe eines Usernamens auch ein Passwort angeben müssen). Wenn Sie die Server-Einstellung weglassen, wird der Standardserver verwendet (wie oben beschrieben), und die Instanziierung des Objekts ist nicht von der -Direktive betroffen.

DCOM-Servername
Schlüssel | Typ | Beschreibung
Server | string | Der Name des Servers.
Username | string | Der Username, der für die Verbindung verwendet wird.
Password | string | Das Passwort für Username.
Domain | string | Die Domain des Servers.
Flags | integer | Eine oder mehrere der folgenden Konstanten, mittels logischem ODER verknüpft: CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER, CLSCTX_REMOTE_SERVER, CLSCTX_SERVER und CLSCTX_ALL. Wenn nichts anderes angegeben ist, wird als Standardwert CLSCTX_SERVER angenommen, sofern Sie ebenfalls den Server nicht angegeben haben. Ist der Server angegeben, wird CLSCTX_REMOTE_SERVER verwendet. Konsultieren Sie die Microsoftdokumentation für CoCreateInstance, wenn Sie mehr über die Bedeutung dieser Konstanten erfahren wollen; normalerweise werden Sie sie jedoch nicht verwenden.

codepage
Gibt die Codepage an, die verwendet wird um Zeichenketten nach Unicode und zurück umzuwandeln. Die Umwandlung wird immer dann durchgeührt, wenn eine PHP-Zeichenkette als Parameter übergeben oder von einer Methode dieses COM-Objekts zurückgegeben wird. Die Codepage ist beharrlich, was bedeutet, dass sie sich auf Objekte und Varianten, die von dem Objekt zurückgegeben werden, fortpflanzt. Mögliche Werte sind CP_ACP (verwende die Standard ANSI-Codepage des Systems - das ist der Standardwert, wenn dieser Parameter ausgelassen wird), CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP (verwende die Codepage/Locale, die für den aktuell ausgeführten Thread angegeben wurde), CP_UTF7 und CP_UTF8. Ebenfalls kann die Nummer einer bestimmten Codepage verwendet werden; weitere Details zu Codepages und ihren numerischen Werten können der Microsoft-Dokumentation entnommen werden.


The dotnet class

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

Einführung

The dotnet class allows you to instantiate a class from a .Net assembly and call its methods and access its properties, if the class and the methods and properties are » visible to COM.

Neither instantiating static classes nor calling static methods is supported.

Some .Net classes do not implement IDispatch, so while they can be instantiated, calling methods or accessing properties on these classes is not supported.

Hinweis:

You need to install the .Net runtime on your web server to take advantage of this feature.

Hinweis:

.Net framework 4.0 and later are not supported by the dotnet class. If assemblies have been registered with regasm.exe, the classes can be instantiated as com objects, though.

Klassenbeschreibung

dotnet extends variant {
/* Methoden */
public __construct ( string $assembly_name , string $datatype_name , int $codepage = CP_ACP )
}

Overloaded Methods

The returned object is an overloaded object, which means that PHP does not see any fixed methods as it does with regular classes; instead, any property or method accesses are passed through to COM and from there to DOTNET. In other words, the .Net object is mapped through the COM interoperability layer provided by the .Net runtime.

Once you have created a dotnet object, PHP treats it identically to any other COM object; all the same rules apply.

dotnet examples

Beispiel #1 dotnet example

<?php
$stack = new dotnet("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Hello ");
echo $stack->Pop() . $stack->Pop();
?>

Inhaltsverzeichnis

  • dotnet::__construct — dotnet class constructor


dotnet class constructor

  • « dotnet
  • variant »
  • PHP Manual
  • dotnet
  • dotnet class constructor

dotnet::__construct

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

dotnet::__construct — dotnet class constructor

Beschreibung

public dotnet::__construct ( string $assembly_name , string $datatype_name , int $codepage = CP_ACP )

Constructs a new dotnet object.

Parameter-Liste

assembly_name
Specifies which assembly should be loaded.
datatype_name
Specifices which class in that assembly to instantiate.
codepage
Codepage to use for unicode string transformations; see the com class for more details on code pages.


variant Klasse

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

Einführung

Die VARIANTe ist COMs Pendant des PHP zvals; es ist eine Struktur, die einen Wert einer Reihe unterschiedlicher möglicher Typen enthalten kann. Die variant-Klasse, die durch die COM Extension zur Verfügung gestellt wird, erlaubt es, mehr Kontrolle über die Art, wie PHP Werte an COM übergibt und von diesem empfängt, zu haben.

Klassenbeschreibung

variant {
/* Methoden */
__construct ( mixed $value = null , int $type = VT_EMPTY , int $codepage = CP_ACP )
}

variant-Beispiele

Beispiel #1 variant-Beispiel

<?php
$v = new variant(42);
print "Der Typ ist " . variant_get_type($v) . "<br/>";
print "Der Wert ist " . $v . "<br/>";
?>

Hinweis:

Wenn ein Wert zurückgegeben, oder eine variante Eigenschaft abgerufen wird, wird die Variante nur in einen PHP-Wert konvertiert, falls es eine direkte, verlustlose Zuordnung zwischen den Typen gibt. In allen anderen Fällen wird das Ergebnis als Exemplar der variant-Klasse zurückgegeben. Es ist möglich PHP zu zwingen, die Variante in einen nativen Typ zu konvertieren, entweder durch explizite Verwendung eines Typumwandlungs-Operators, oder durch das printen implizit in einen String zu wandeln. Die umfangreichen Variant-Funktionen können verwendet werden, um arithmetische Operationen auf Varianten durchzuführen, ohne eine Konvertierung zu erzwingen, oder Datenverlust zu riskieren.

Siehe auch variant_get_type().

Inhaltsverzeichnis

  • variant::__construct — variant Klassen Konstruktor


variant Klassen Konstruktor

  • « variant
  • COMPersistHelper »
  • PHP Manual
  • variant
  • variant Klassen Konstruktor

variant::__construct

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

variant::__construct — variant Klassen Konstruktor

Beschreibung

variant::__construct ( mixed $value = null , int $type = VT_EMPTY , int $codepage = CP_ACP )

Konstruiert ein neues variant Objekt.

Parameter-Liste

value
Anfangswert. Ist er nicht angegeben oder auf null gesetzt, wird ein VT_EMPTY Objekt erzeugt.
type
Spezifiziert den Typ des Inhalts des variant Objektes. Mögliche Werte sind eine der VT_XXX Vordefinierte Konstanten. PHP kann Parameter, die per Referenz übergeben wurden, automatisch erkennen; sie müssen nicht einmal als variant Objekte übergeben werden. Die MSDN Bibliothek kann für zusätzliche Informationen über den VARIANT Typen konsultiert werden.
codepage
Gibt die Codepage an, welche zur Konvertierung von Strings in Unicode verwendet wird. Siehe den gleichnamigen Parameter in der com Klasse für mehr Informationen.


The COMPersistHelper class

(PHP 5, PHP 7, PHP 8)

Einführung

COMPersistHelper improves the interoperability of COM and PHP with regard to the php.ini directive open_basedir, and stream Ressources.

Klassenbeschreibung

final COMPersistHelper {
/* Methoden */
public __construct ( variant|null $variant = null )
public GetCurFileName ( ) : string|false
public GetMaxStreamSize ( ) : int
public InitNew ( ) : bool
public LoadFromFile ( string $filename , int $flags = 0 ) : bool
public LoadFromStream ( resource $stream ) : bool
public SaveToFile ( string|null $filename , bool $remember = true ) : bool
public SaveToStream ( resource $stream ) : bool
}

Inhaltsverzeichnis

  • COMPersistHelper::__construct — Construct a COMPersistHelper object
  • COMPersistHelper::GetCurFileName — Get current filename
  • COMPersistHelper::GetMaxStreamSize — Get maximum stream size
  • COMPersistHelper::InitNew — Initialize object to default state
  • COMPersistHelper::LoadFromFile — Load object from file
  • COMPersistHelper::LoadFromStream — Load object from stream
  • COMPersistHelper::SaveToFile — Save object to file
  • COMPersistHelper::SaveToStream — Save object to stream


Construct a COMPersistHelper object

  • « COMPersistHelper
  • COMPersistHelper::GetCurFileName »
  • PHP Manual
  • COMPersistHelper
  • Construct a COMPersistHelper object

COMPersistHelper::__construct

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::__construct — Construct a COMPersistHelper object

Beschreibung

public COMPersistHelper::__construct ( variant|null $variant = null )

Constructs a persistence helper object, usually associated with a variant.

Parameter-Liste

variant
A COM object which implements IDispatch. To be able to successfully call any of COMPersistHelper's methods, the object has to implement IPersistFile, IPersistStream and/or IPersistStreamInit. Passing null as variant is only useful if the object is to be loaded from a stream by calling COMPersistHelper::LoadFromStream().


Get current filename

  • « COMPersistHelper::__construct
  • COMPersistHelper::GetMaxStreamSize »
  • PHP Manual
  • COMPersistHelper
  • Get current filename

COMPersistHelper::GetCurFileName

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::GetCurFileName — Get current filename

Beschreibung

public COMPersistHelper::GetCurFileName ( ) : string|false

Retrieves the current name of the file associated with the object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current name of the file associated with the object.

Fehler/Exceptions

A com_exception is thrown if the associated object does not implement the COM interface IPersistFile, or when calling the IPersistFile::GetCurFile() method failed.


Get maximum stream size

  • « COMPersistHelper::GetCurFileName
  • COMPersistHelper::InitNew »
  • PHP Manual
  • COMPersistHelper
  • Get maximum stream size

COMPersistHelper::GetMaxStreamSize

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::GetMaxStreamSize — Get maximum stream size

Beschreibung

public COMPersistHelper::GetMaxStreamSize ( ) : int

Retrieves the size of the stream (in bytes) needed to save the object.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the size of the stream (in bytes) needed to save the object.

Fehler/Exceptions

A com_exception is thrown if the associated object does neither implement the COM interface IPersistStream nor IPersistStreamInit, or when calling the IPersistStream::GetSizeMax() method failed.


Initialize object to default state

  • « COMPersistHelper::GetMaxStreamSize
  • COMPersistHelper::LoadFromFile »
  • PHP Manual
  • COMPersistHelper
  • Initialize object to default state

COMPersistHelper::InitNew

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::InitNew — Initialize object to default state

Beschreibung

public COMPersistHelper::InitNew ( ) : bool

Initializes an object to a default state.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

A com_exception is thrown if the associated object does not implement the COM interface IPersistStreamInit, or when calling its IPersistStreamInit::Init() method failed.


Load object from file

  • « COMPersistHelper::InitNew
  • COMPersistHelper::LoadFromStream »
  • PHP Manual
  • COMPersistHelper
  • Load object from file

COMPersistHelper::LoadFromFile

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::LoadFromFile — Load object from file

Beschreibung

public COMPersistHelper::LoadFromFile ( string $filename , int $flags = 0 ) : bool

Opens the specified file and initializes an object from the file contents.

Parameter-Liste

filename
The name of the file from which to load the object.
flags
The access mode to be used when opening the file. Possible values are taken from the » STGM enumeration. The method can treat this value as a suggestion, adding more restrictive permissions if necessary. If flags is 0, the implementation is supposed to open the file using whatever default permissions are used when a user opens the file.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

A com_exception is thrown if the associated object does not implement the COM interface IPersistFile, or when calling the IPersistFile::Load() method failed.


Load object from stream

  • « COMPersistHelper::LoadFromFile
  • COMPersistHelper::SaveToFile »
  • PHP Manual
  • COMPersistHelper
  • Load object from stream

COMPersistHelper::LoadFromStream

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::LoadFromStream — Load object from stream

Beschreibung

public COMPersistHelper::LoadFromStream ( resource $stream ) : bool

Initializes an object from the stream where it was saved previously.

Parameter-Liste

stream
The stream Ressource from which to load the object.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

A com_exception is thrown if the associated object does not implement the COM interface IPersistStream, or when calling the IPersistStream::Load() method failed.


Save object to file

  • « COMPersistHelper::LoadFromStream
  • COMPersistHelper::SaveToStream »
  • PHP Manual
  • COMPersistHelper
  • Save object to file

COMPersistHelper::SaveToFile

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::SaveToFile — Save object to file

Beschreibung

public COMPersistHelper::SaveToFile ( string|null $filename , bool $remember = true ) : bool

Saves a copy of the object to the specified file.

Parameter-Liste

filename
The name of the file to which to save the object.
remember
Indicates whether the filename parameter is to be used as the current working file. If true, filename becomes the current file and the object is supposed to clear its dirty flag after the save. If false, this save operation is a "Save A Copy As ..." operation. In this case, the current file is unchanged and the object is not supposed to clear its dirty flag.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

A com_exception is thrown if the associated object does not implement the COM interface IPersistFile, or when calling the IPersistFile::Save() method failed.

Beispiele

Beispiel #1 Basic COMPersistHelper::saveToFile() Usage

<?php
$word = new COM('Word.Application');
$doc = $word->Documents->Add();
$ph = new COMPersistHelper($doc);
$ph->SaveToFile('C:\\Users\\cmb\\Documents\\my.docx');
$word->Quit();
?>


Save object to stream

  • « COMPersistHelper::SaveToFile
  • com_exception »
  • PHP Manual
  • COMPersistHelper
  • Save object to stream

COMPersistHelper::SaveToStream

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::SaveToStream — Save object to stream

Beschreibung

public COMPersistHelper::SaveToStream ( resource $stream ) : bool

Saves an object to the specified stream.

Parameter-Liste

stream
The stream Ressource to which to save the object.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

A com_exception is thrown if the associated object does neither implement the COM interface IPersistStream nor IPersistStreamInit, or when calling the IPersistStream::Save() method failed.


The com_exception class

(PHP 5, PHP 7, PHP 8)

Einführung

Klassenbeschreibung

com_exception extends Exception implements Throwable {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


COM Funktionen

Siehe auch

For further information on COM read the » COM specification. You might find some additional useful information in our FAQ for PHP und COM. If you're thinking of using MS Office applications on the server side, you should read the information here: » Considerations for Server-Side Automation of Office.

Inhaltsverzeichnis

  • com_create_guid — Generate a globally unique identifier (GUID)
  • com_event_sink — Connect events from a COM object to a PHP object
  • com_get_active_object — Returns a handle to an already running instance of a COM object
  • com_load_typelib — Lädt eine Typelib
  • com_message_pump — Process COM messages, sleeping for up to timeoutms milliseconds
  • com_print_typeinfo — Print out a PHP class definition for a dispatchable interface
  • variant_abs — Returns the absolute value of a variant
  • variant_add — "Adds" two variant values together and returns the result
  • variant_and — Performs a bitwise AND operation between two variants
  • variant_cast — Convert a variant into a new variant object of another type
  • variant_cat — Concatenates two variant values together and returns the result
  • variant_cmp — Compares two variants
  • variant_date_from_timestamp — Returns a variant date representation of a Unix timestamp
  • variant_date_to_timestamp — Converts a variant date/time value to Unix timestamp
  • variant_div — Returns the result from dividing two variants
  • variant_eqv — Performs a bitwise equivalence on two variants
  • variant_fix — Returns the integer portion of a variant
  • variant_get_type — Returns the type of a variant object
  • variant_idiv — Converts variants to integers and then returns the result from dividing them
  • variant_imp — Performs a bitwise implication on two variants
  • variant_int — Returns the integer portion of a variant
  • variant_mod — Divides two variants and returns only the remainder
  • variant_mul — Multiplies the values of the two variants
  • variant_neg — Performs logical negation on a variant
  • variant_not — Performs bitwise not negation on a variant
  • variant_or — Performs a logical disjunction on two variants
  • variant_pow — Returns the result of performing the power function with two variants
  • variant_round — Rounds a variant to the specified number of decimal places
  • variant_set_type — Convert a variant into another type "in-place"
  • variant_set — Assigns a new value for a variant object
  • variant_sub — Subtracts the value of the right variant from the left variant value
  • variant_xor — Performs a logical exclusion on two variants


Generate a globally unique identifier (GUID)

  • « COM Funktionen
  • com_event_sink »
  • PHP Manual
  • COM Funktionen
  • Generate a globally unique identifier (GUID)

com_create_guid

(PHP 5, PHP 7, PHP 8)

com_create_guid — Generate a globally unique identifier (GUID)

Beschreibung

com_create_guid ( ) : string|false

Generates a Globally Unique Identifier (GUID).

A GUID is generated in the same way as DCE UUID's, except that the Microsoft convention is to enclose a GUID in curly braces.

Rückgabewerte

Returns the GUID as a string, Im Fehlerfall wird false zurückgegeben..

Siehe auch

  • uuid_create() in the PECL uuid extension


Connect events from a COM object to a PHP object

  • « com_create_guid
  • com_get_active_object »
  • PHP Manual
  • COM Funktionen
  • Connect events from a COM object to a PHP object

com_event_sink

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

com_event_sink — Connect events from a COM object to a PHP object

Beschreibung

com_event_sink ( variant $variant , object $sink_object , array|string|null $sink_interface = null ) : bool

Instructs COM to sink events generated by variant into the PHP object sink_object.

Be careful how you use this feature; if you are doing something similar to the example below, then it doesn't really make sense to run it in a web server context.

Parameter-Liste

variant

sink_object

sink_object should be an instance of a class with methods named after those of the desired dispinterface; you may use com_print_typeinfo() to help generate a template class for this purpose.

sink_interface

PHP will attempt to use the default dispinterface type specified by the typelibrary associated with variant, but you may override this choice by setting sink_interface to the name of the dispinterface that you want to use.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | sink_interface is nullable now.

Beispiele

Beispiel #1 COM event sink example

<?php
class IEEventSinker {
    var $terminated = false;

   function ProgressChange($progress, $progressmax) {
      echo "Download progress: $progress / $progressmax\n";
    }

    function DocumentComplete(&$dom, $url) {
      echo "Document $url complete\n";
    }

    function OnQuit() {
      echo "Quit!\n";
      $this->terminated = true;
    }
}
$ie = new COM("InternetExplorer.Application");
$sink = new IEEventSinker();
com_event_sink($ie, $sink, "DWebBrowserEvents2");
$ie->Visible = true;
$ie->Navigate("http://www.example.org");
while(!$sink->terminated) {
  com_message_pump(4000);
}
$ie = null;
?>

Anmerkungen

Achtung

Prior to PHP 8.0.0, calling exit() from any of the event handlers is not supported, and may cause PHP to hang. This can be worked around by throwing an exception from the event handler, catching the exception in the main code, and calling exit() from there.

Siehe auch

  • com_print_typeinfo() - Print out a PHP class definition for a dispatchable interface
  • com_message_pump() - Process COM messages, sleeping for up to timeoutms milliseconds


Returns a handle to an already running instance of a COM object

  • « com_event_sink
  • com_load_typelib »
  • PHP Manual
  • COM Funktionen
  • Returns a handle to an already running instance of a COM object

com_get_active_object

(PHP 5, PHP 7, PHP 8)

com_get_active_object — Returns a handle to an already running instance of a COM object

Beschreibung

com_get_active_object ( string $prog_id , int|null $codepage = null ) : variant

com_get_active_object() is similar to creating a new instance of a com object, except that it will only return an object to your script if the object is already running. OLE applications use something known as the "Running Object Table" to allow well-known applications to be launched only once; this function exposes the COM library function GetActiveObject() to get a handle on a running instance.

Parameter-Liste

prog_id

prog_id must be either the ProgID or CLSID for the object that you want to access (for example Word.Application).

codepage

Acts in precisely the same way that it does for the com class.

Rückgabewerte

If the requested object is running, it will be returned to your script just like any other COM object.

Fehler/Exceptions

There are a variety of reasons why this function might fail, the most common being that the object is not already running. In that situation, the exception error code will be MK_E_UNAVAILABLE; you can use the getCode method of the exception object to check the exception code.

Changelog

Version | Beschreibung
8.0.0 | codepage is nullable now.

Anmerkungen

Warnung

Using com_get_active_object() in a web server context is not always a smart idea. Most COM/OLE applications are not designed to handle more than one client concurrently, even (or especially!) Microsoft Office. You should read » Considerations for Server-Side Automation of Office for more information on the general issues involved.


Lädt eine Typelib

  • « com_get_active_object
  • com_message_pump »
  • PHP Manual
  • COM Funktionen
  • Lädt eine Typelib

com_load_typelib

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

com_load_typelib — Lädt eine Typelib

Beschreibung

com_load_typelib ( string $typelib_name , bool $case_sensitive = true ) : bool

Lädt eine Type Library und registriert deren Konstanten in der Engine, als wären sie mittels define() definiert worden.

Beachten Sie, dass es effizienter ist, die -Konfigurationseinstellungen zum vorladen und registrieren der Konstanten zu verwenden, allerdings ist dieser Weg nicht so flexibel.

Wenn Sie eingeschaltet haben, wird PHP versuchen, automatisch die mit einem COM-Objekt assoziierten Konstanten zu registrieren, wenn Sie das Objekt initialisieren. Dies hängt von den Interfaces ab, die das COM-Objekt selbst unterstützt und ist nicht immer möglich.

Parameter-Liste

typelib_name

typelib_name kann eine der folgenden Angaben sein:

  • Der Dateiname der .tlb-Datei oder des ausführbaren Moduls, das die Type Library enthält.

  • Die GUID der Type Library, gefolgt von der Versionsnummer, z.B. {00000200-0000-0010-8000-00AA006D2EA4},2,0.

  • Der Name der Bibliothek, z.B. Microsoft OLE DB ActiveX Data Objects 1.0 Library.

PHP wird versuchen, die Type Library in dieser Reihenfolge abzuarbeiten, da der jeweils benötigte Aufwand und die dabei entstehenden "Kosten" mit jedem Punkt stärker steigen. Die Suche nach dem Namen einer Type Library erfolgt mittels physikalischer Iteration durch die Registry, bis ein Treffer gefunden wird.

case_sensitive

Der Parameter case_sensitive verhält sich genau umgekehrt wie der Parameter $case_insensitive der define()-Funktion.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Process COM messages, sleeping for up to timeoutms milliseconds

  • « com_load_typelib
  • com_print_typeinfo »
  • PHP Manual
  • COM Funktionen
  • Process COM messages, sleeping for up to timeoutms milliseconds

com_message_pump

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

com_message_pump — Process COM messages, sleeping for up to timeoutms milliseconds

Beschreibung

com_message_pump ( int $timeout_milliseconds = 0 ) : bool

This function will sleep for up to timeout_milliseconds milliseconds, or until a message arrives in the queue.

The purpose of this function is to route COM calls between apartments and handle various synchronization issues. This allows your script to wait efficiently for events to be triggered, while still handling other events or running other code in the background. You should use it in a loop, as demonstrated by the example in the com_event_sink() function, until you are finished using event bound COM objects.

Parameter-Liste

timeout_milliseconds

The timeout, in milliseconds.

If you do not specify a value for timeout_milliseconds, then 0 will be assumed. A 0 value means that no waiting will be performed; if there are messages pending they will be dispatched as before; if there are no messages pending, the function will return false immediately without sleeping.

Rückgabewerte

If a message or messages arrives before the timeout, they will be dispatched, and the function will return true. If the timeout occurs and no messages were processed, the return value will be false.


Print out a PHP class definition for a dispatchable interface

  • « com_message_pump
  • variant_abs »
  • PHP Manual
  • COM Funktionen
  • Print out a PHP class definition for a dispatchable interface

com_print_typeinfo

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

com_print_typeinfo — Print out a PHP class definition for a dispatchable interface

Beschreibung

com_print_typeinfo ( variant|string $variant , string|null $dispatch_interface = null , bool $display_sink = false ) : bool

The purpose of this function is to help generate a skeleton class for use as an event sink. You may also use it to generate a dump of any COM object, provided that it supports enough of the introspection interfaces, and that you know the name of the interface you want to display.

Parameter-Liste

variant

variant should be either an instance of a COM object, or be the name of a typelibrary (which will be resolved according to the rules set out in com_load_typelib()).

dispatch_interface

The name of an IDispatch descendant interface that you want to display.

display_sink

If set to true, the corresponding sink interface will be displayed instead.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • com_event_sink() - Connect events from a COM object to a PHP object
  • com_load_typelib() - Lädt eine Typelib


Returns the absolute value of a variant

  • « com_print_typeinfo
  • variant_add »
  • PHP Manual
  • COM Funktionen
  • Returns the absolute value of a variant

variant_abs

(PHP 5, PHP 7, PHP 8)

variant_abs — Returns the absolute value of a variant

Beschreibung

variant_abs ( mixed $value ) : variant

Returns the absolute value of a variant.

Parameter-Liste

value

The variant.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Returns the absolute value of value.

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • abs() - Absolutwert bzw. Betrag


"Adds" two variant values together and returns the result

  • « variant_abs
  • variant_and »
  • PHP Manual
  • COM Funktionen
  • "Adds" two variant values together and returns the result

variant_add

(PHP 5, PHP 7, PHP 8)

variant_add — "Adds" two variant values together and returns the result

Beschreibung

variant_add ( mixed $left , mixed $right ) : variant

Adds left to right using the following rules (taken from the MSDN library), which correspond to those of Visual Basic:

Variant Addition Rules
If | Then
Both expressions are of the string type | Concatenation
One expression is a string type and the other a character | Addition
One expression is numeric and the other is a string | Addition
Both expressions are numeric | Addition
Either expression is NULL | NULL is returned
Both expressions are empty | Integer subtype is returned

Parameter-Liste

left

The left operand.

right

The right operand.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Returns the result.

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • variant_sub() - Subtracts the value of the right variant from the left variant value


Performs a bitwise AND operation between two variants

  • « variant_add
  • variant_cast »
  • PHP Manual
  • COM Funktionen
  • Performs a bitwise AND operation between two variants

variant_and

(PHP 5, PHP 7, PHP 8)

variant_and — Performs a bitwise AND operation between two variants

Beschreibung

variant_and ( mixed $left , mixed $right ) : variant

Performs a bitwise AND operation. Note that this is slightly different from a regular AND operation.

Parameter-Liste

left

The left operand.

right

The right operand.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Variant AND Rules
If left is | If right is | then the result is
true | true | true
true | false | false
true | null | null
false | true | false
false | false | false
false | null | false
null | true | null
null | false | false
null | null | null

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • variant_or() - Performs a logical disjunction on two variants


Convert a variant into a new variant object of another type

  • « variant_and
  • variant_cat »
  • PHP Manual
  • COM Funktionen
  • Convert a variant into a new variant object of another type

variant_cast

(PHP 5, PHP 7, PHP 8)

variant_cast — Convert a variant into a new variant object of another type

Beschreibung

variant_cast ( variant $variant , int $type ) : variant

This function makes a copy of variant and then performs a variant cast operation to force the copy to have the type given by type.

This function wraps VariantChangeType() in the COM library; consult MSDN for more information.

Parameter-Liste

variant

The variant.

type

type should be one of the VT_XXX constants.

Rückgabewerte

Returns a variant of given type.

Siehe auch

  • variant_set_type() - Convert a variant into another type "in-place"


Concatenates two variant values together and returns the result

  • « variant_cast
  • variant_cmp »
  • PHP Manual
  • COM Funktionen
  • Concatenates two variant values together and returns the result

variant_cat

(PHP 5, PHP 7, PHP 8)

variant_cat — Concatenates two variant values together and returns the result

Beschreibung

variant_cat ( mixed $left , mixed $right ) : variant

Concatenates left with right and returns the result.

This function is notionally equivalent to $left . $right.

Parameter-Liste

left

The left operand.

right

The right operand.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Returns the result of the concatenation.

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • Zeichenketten-Operatoren for the string concatenation operator


Compares two variants

  • « variant_cat
  • variant_date_from_timestamp »
  • PHP Manual
  • COM Funktionen
  • Compares two variants

variant_cmp

(PHP 5, PHP 7, PHP 8)

variant_cmp — Compares two variants

Beschreibung

variant_cmp ( mixed $left , mixed $right , int $locale_id = LOCALE_SYSTEM_DEFAULT , int $flags = 0 ) : int

Compares left with right.

This function will only compare scalar values, not arrays or variant records.

Parameter-Liste

left

The left operand.

right

The right operand.

locale_id

A valid Locale Identifier to use when comparing strings (this affects string collation).

flags

flags can be one or more of the following values OR'd together, and affects string comparisons:

Variant Comparision Flags
value | meaning
NORM_IGNORECASE | Compare case insensitively
NORM_IGNORENONSPACE | Ignore nonspacing characters
NORM_IGNORESYMBOLS | Ignore symbols
NORM_IGNOREWIDTH | Ignore string width
NORM_IGNOREKANATYPE | Ignore Kana type
NORM_IGNOREKASHIDA | Ignore Arabic kashida characters

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Returns one of the following:

Variant Comparision Results
value | meaning
VARCMP_LT | left is less than right
VARCMP_EQ | left is equal to right
VARCMP_GT | left is greater than right
VARCMP_NULL | Either left, right or both are null


Returns a variant date representation of a Unix timestamp

  • « variant_cmp
  • variant_date_to_timestamp »
  • PHP Manual
  • COM Funktionen
  • Returns a variant date representation of a Unix timestamp

variant_date_from_timestamp

(PHP 5, PHP 7, PHP 8)

variant_date_from_timestamp — Returns a variant date representation of a Unix timestamp

Beschreibung

variant_date_from_timestamp ( int $timestamp ) : variant

Converts timestamp from a unix timestamp value into a variant of type VT_DATE. This allows easier interopability between the unix-ish parts of PHP and COM.

Parameter-Liste

timestamp

A unix timestamp.

Rückgabewerte

Returns a VT_DATE variant.

Siehe auch

  • variant_date_to_timestamp() - Converts a variant date/time value to Unix timestamp
  • mktime() - Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück
  • time() - Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück


Converts a variant date/time value to Unix timestamp

  • « variant_date_from_timestamp
  • variant_div »
  • PHP Manual
  • COM Funktionen
  • Converts a variant date/time value to Unix timestamp

variant_date_to_timestamp

(PHP 5, PHP 7, PHP 8)

variant_date_to_timestamp — Converts a variant date/time value to Unix timestamp

Beschreibung

variant_date_to_timestamp ( variant $variant ) : int|null

Converts variant from a VT_DATE (or similar) value into a Unix timestamp. This allows easier interopability between the Unix-ish parts of PHP and COM.

Parameter-Liste

variant

The variant.

Rückgabewerte

Returns a unix timestamp, or null on failure.

Siehe auch

  • variant_date_from_timestamp() - Returns a variant date representation of a Unix timestamp
  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum
  • strftime() - Formatiere eine Zeit-/Datumsangabe gemäß dem Gebietsschema


Returns the result from dividing two variants

  • « variant_date_to_timestamp
  • variant_eqv »
  • PHP Manual
  • COM Funktionen
  • Returns the result from dividing two variants

variant_div

(PHP 5, PHP 7, PHP 8)

variant_div — Returns the result from dividing two variants

Beschreibung

variant_div ( mixed $left , mixed $right ) : variant

Divides left by right and returns the result.

Parameter-Liste

left

The left operand.

right

The right operand.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Variant Division Rules
If | Then
Both expressions are of the string, date, character, boolean type | Double is returned
One expression is a string type and the other a character | Division and a double is returned
One expression is numeric and the other is a string | Division and a double is returned.
Both expressions are numeric | Division and a double is returned
Either expression is NULL | NULL is returned
right is empty and left is anything but empty | A com_exception with code DISP_E_DIVBYZERO is thrown
left is empty and right is anything but empty. | 0 as type double is returned
Both expressions are empty | A com_exception with code DISP_E_OVERFLOW is thrown

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • variant_idiv() - Converts variants to integers and then returns the result from dividing them


Performs a bitwise equivalence on two variants

  • « variant_div
  • variant_fix »
  • PHP Manual
  • COM Funktionen
  • Performs a bitwise equivalence on two variants

variant_eqv

(PHP 5, PHP 7, PHP 8)

variant_eqv — Performs a bitwise equivalence on two variants

Beschreibung

variant_eqv ( mixed $left , mixed $right ) : variant

Performs a bitwise equivalence on two variants.

Parameter-Liste

left

The left operand.

right

The right operand.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

If each bit in left is equal to the corresponding bit in right then true is returned, otherwise false is returned.

Fehler/Exceptions

Throws a com_exception on failure.


Returns the integer portion of a variant

  • « variant_eqv
  • variant_get_type »
  • PHP Manual
  • COM Funktionen
  • Returns the integer portion of a variant

variant_fix

(PHP 5, PHP 7, PHP 8)

variant_fix — Returns the integer portion of a variant

Beschreibung

variant_fix ( mixed $value ) : variant

Gets the integer portion of a variant.

Parameter-Liste

value

The variant.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

If value is negative, then the first negative integer greater than or equal to the variant is returned, otherwise returns the integer portion of the value of value.

Fehler/Exceptions

Throws a com_exception on failure.

Anmerkungen

Warnung

This documentation is based on the MSDN documentation; it appears that this function is either the same as variant_int(), or that there is an error in the MSDN documentation.

Siehe auch

  • variant_int() - Returns the integer portion of a variant
  • variant_round() - Rounds a variant to the specified number of decimal places
  • floor() - Rundet Brüche ab
  • ceil() - Rundet Brüche auf
  • round() - Rundet einen Gleitkommawert


Returns the type of a variant object

  • « variant_fix
  • variant_idiv »
  • PHP Manual
  • COM Funktionen
  • Returns the type of a variant object

variant_get_type

(PHP 5, PHP 7, PHP 8)

variant_get_type — Returns the type of a variant object

Beschreibung

variant_get_type ( variant $variant ) : int

Returns the type of a variant object.

Parameter-Liste

variant

The variant object.

Rückgabewerte

This function returns an integer value that indicates the type of variant, which can be an instance of com, dotnet or variant classes. The return value can be compared to one of the VT_XXX constants.

The return value for COM and DOTNET objects will usually be VT_DISPATCH; the only reason this function works for those classes is because COM and DOTNET are descendants of VARIANT.

Siehe auch

  • variant_set_type() - Convert a variant into another type "in-place"


Converts variants to integers and then returns the result from dividing them

  • « variant_get_type
  • variant_imp »
  • PHP Manual
  • COM Funktionen
  • Converts variants to integers and then returns the result from dividing them

variant_idiv

(PHP 5, PHP 7, PHP 8)

variant_idiv — Converts variants to integers and then returns the result from dividing them

Beschreibung

variant_idiv ( mixed $left , mixed $right ) : variant

Converts left and right to integer values, and then performs integer division.

Parameter-Liste

left

The left operand.

right

The right operand.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Variant Integer Division Rules
If | Then
Both expressions are of the string, date, character, boolean type | Division and integer is returned
One expression is a string type and the other a character | Division
One expression is numeric and the other is a string | Division
Both expressions are numeric | Division
Either expression is NULL | NULL is returned
Both expressions are empty | A com_exception with code DISP_E_DIVBYZERO is thrown

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • variant_div() - Returns the result from dividing two variants


Performs a bitwise implication on two variants

  • « variant_idiv
  • variant_int »
  • PHP Manual
  • COM Funktionen
  • Performs a bitwise implication on two variants

variant_imp

(PHP 5, PHP 7, PHP 8)

variant_imp — Performs a bitwise implication on two variants

Beschreibung

variant_imp ( mixed $left , mixed $right ) : variant

Performs a bitwise implication operation.

Parameter-Liste

left

The left operand.

right

The right operand.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Variant Implication Table
If left is | If right is | then the result is
true | true | true
true | false | false
true | null | true
false | true | true
false | false | true
false | null | true
null | true | true
null | false | null
null | null | null

Fehler/Exceptions

Throws a com_exception on failure.


Returns the integer portion of a variant

  • « variant_imp
  • variant_mod »
  • PHP Manual
  • COM Funktionen
  • Returns the integer portion of a variant

variant_int

(PHP 5, PHP 7, PHP 8)

variant_int — Returns the integer portion of a variant

Beschreibung

variant_int ( mixed $value ) : variant

Gets the integer portion of a variant.

Parameter-Liste

value

The variant.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

If value is negative, then the first negative integer greater than or equal to the variant is returned, otherwise returns the integer portion of the value of value.

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • variant_fix() - Returns the integer portion of a variant
  • variant_round() - Rounds a variant to the specified number of decimal places
  • floor() - Rundet Brüche ab
  • ceil() - Rundet Brüche auf
  • round() - Rundet einen Gleitkommawert


Divides two variants and returns only the remainder

  • « variant_int
  • variant_mul »
  • PHP Manual
  • COM Funktionen
  • Divides two variants and returns only the remainder

variant_mod

(PHP 5, PHP 7, PHP 8)

variant_mod — Divides two variants and returns only the remainder

Beschreibung

variant_mod ( mixed $left , mixed $right ) : variant

Divides left by right and returns the remainder.

Parameter-Liste

left

The left operand.

right

The right operand.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Returns the remainder of the division.

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • variant_div() - Returns the result from dividing two variants
  • variant_idiv() - Converts variants to integers and then returns the result from dividing them


Multiplies the values of the two variants

  • « variant_mod
  • variant_neg »
  • PHP Manual
  • COM Funktionen
  • Multiplies the values of the two variants

variant_mul

(PHP 5, PHP 7, PHP 8)

variant_mul — Multiplies the values of the two variants

Beschreibung

variant_mul ( mixed $left , mixed $right ) : variant

Multiplies left by right.

Parameter-Liste

left

The left operand.

right

The right operand.

Boolean values are converted to -1 for false and 0 for true.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Variant Multiplication Rules
If | Then
Both expressions are of the string, date, character, boolean type | Multiplication
One expression is a string type and the other a character | Multiplication
One expression is numeric and the other is a string | Multiplication
Both expressions are numeric | Multiplication
Either expression is NULL | NULL is returned
Both expressions are empty | Empty string is returned

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • variant_div() - Returns the result from dividing two variants
  • variant_idiv() - Converts variants to integers and then returns the result from dividing them


Performs logical negation on a variant

  • « variant_mul
  • variant_not »
  • PHP Manual
  • COM Funktionen
  • Performs logical negation on a variant

variant_neg

(PHP 5, PHP 7, PHP 8)

variant_neg — Performs logical negation on a variant

Beschreibung

variant_neg ( mixed $value ) : variant

Performs logical negation of value.

Parameter-Liste

value

The variant.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Returns the result of the logical negation.

Fehler/Exceptions

Throws a com_exception on failure.


Performs bitwise not negation on a variant

  • « variant_neg
  • variant_or »
  • PHP Manual
  • COM Funktionen
  • Performs bitwise not negation on a variant

variant_not

(PHP 5, PHP 7, PHP 8)

variant_not — Performs bitwise not negation on a variant

Beschreibung

variant_not ( mixed $value ) : variant

Performs bitwise not negation on value and returns the result.

Parameter-Liste

value

The variant.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Returns the bitwise not negation. If value is null, the result will also be null.

Fehler/Exceptions

Throws a com_exception on failure.


Performs a logical disjunction on two variants

  • « variant_not
  • variant_pow »
  • PHP Manual
  • COM Funktionen
  • Performs a logical disjunction on two variants

variant_or

(PHP 5, PHP 7, PHP 8)

variant_or — Performs a logical disjunction on two variants

Beschreibung

variant_or ( mixed $left , mixed $right ) : variant

Performs a bitwise OR operation. Note that this is slightly different from a regular OR operation.

Parameter-Liste

left

The left operand.

right

The right operand.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Variant OR Rules
If left is | If right is | then the result is
true | true | true
true | false | true
true | null | true
false | true | true
false | false | false
false | null | null
null | true | true
null | false | null
null | null | null

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • variant_and() - Performs a bitwise AND operation between two variants
  • variant_xor() - Performs a logical exclusion on two variants


Returns the result of performing the power function with two variants

  • « variant_or
  • variant_round »
  • PHP Manual
  • COM Funktionen
  • Returns the result of performing the power function with two variants

variant_pow

(PHP 5, PHP 7, PHP 8)

variant_pow — Returns the result of performing the power function with two variants

Beschreibung

variant_pow ( mixed $left , mixed $right ) : variant

Returns the result of left to the power of right.

Parameter-Liste

left

The left operand.

right

The right operand.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Returns the result of left to the power of right.

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • pow() - Potenzfunktion


Rounds a variant to the specified number of decimal places

  • « variant_pow
  • variant_set_type »
  • PHP Manual
  • COM Funktionen
  • Rounds a variant to the specified number of decimal places

variant_round

(PHP 5, PHP 7, PHP 8)

variant_round — Rounds a variant to the specified number of decimal places

Beschreibung

variant_round ( mixed $value , int $decimals ) : variant|null

Returns the value of value rounded to decimals decimal places.

Parameter-Liste

value

The variant.

decimals

Number of decimal places.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Returns the rounded value, or null on failure.

Siehe auch

  • round() - Rundet einen Gleitkommawert


Convert a variant into another type "in-place"

  • « variant_round
  • variant_set »
  • PHP Manual
  • COM Funktionen
  • Convert a variant into another type "in-place"

variant_set_type

(PHP 5, PHP 7, PHP 8)

variant_set_type — Convert a variant into another type "in-place"

Beschreibung

variant_set_type ( variant $variant , int $type ) : void

This function is similar to variant_cast() except that the variant is modified "in-place"; no new variant is created. The parameters for this function have identical meaning to those of variant_cast().

Parameter-Liste

variant

The variant.

type

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • variant_cast() - Convert a variant into a new variant object of another type
  • variant_get_type() - Returns the type of a variant object


Assigns a new value for a variant object

  • « variant_set_type
  • variant_sub »
  • PHP Manual
  • COM Funktionen
  • Assigns a new value for a variant object

variant_set

(PHP 5, PHP 7, PHP 8)

variant_set — Assigns a new value for a variant object

Beschreibung

variant_set ( variant $variant , mixed $value ) : void

Converts value to a variant and assigns it to the variant object; no new variant object is created, and the old value of variant is freed/released.

Parameter-Liste

variant

The variant.

value

Rückgabewerte

Es wird kein Wert zurückgegeben.


Subtracts the value of the right variant from the left variant value

  • « variant_set
  • variant_xor »
  • PHP Manual
  • COM Funktionen
  • Subtracts the value of the right variant from the left variant value

variant_sub

(PHP 5, PHP 7, PHP 8)

variant_sub — Subtracts the value of the right variant from the left variant value

Beschreibung

variant_sub ( mixed $left , mixed $right ) : variant

Subtracts right from left.

Parameter-Liste

left

The left operand.

right

The right operand.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Variant Subtraction Rules
If | Then
Both expressions are of the string type | Subtraction
One expression is a string type and the other a character | Subtraction
One expression is numeric and the other is a string | Subtraction.
Both expressions are numeric | Subtraction
Either expression is NULL | NULL is returned
Both expressions are empty | Empty string is returned

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • variant_add() - "Adds" two variant values together and returns the result


Performs a logical exclusion on two variants

  • « variant_sub
  • win32service »
  • PHP Manual
  • COM Funktionen
  • Performs a logical exclusion on two variants

variant_xor

(PHP 5, PHP 7, PHP 8)

variant_xor — Performs a logical exclusion on two variants

Beschreibung

variant_xor ( mixed $left , mixed $right ) : variant

Performs a logical exclusion.

Parameter-Liste

left

The left operand.

right

The right operand.

Hinweis:

Wie bei allen arithmetischen Variantfunktionen, können die Parameter dieser Funktion entweder native PHP-Typen (Integer, String, Fließkomma, Boolean oder null) oder Instanzen einer COM-, VARIANT- oder DOTNET-Klasse sein. Native PHP-Typen werden nach den gleichen Regeln in Varianten umgewandelt wie auch im Konstruktor der variant-Klasse. Für COM- und DOTNET-Objekte wird der Wert ihrer Standardeigenschaft genommen und als Variantenwert genutzt.

Die arithmetischen Variantenfunktionen sind Wrapper für die ähnlich benannten Funktionen der COM-Bibliothek, weiterführende Informationen hierzu finden sie in der MSDN-Bibliothek. Die PHP-Funktionen sind leicht abweichend benannt, so korrespondiert variant_add() in PHP zu VarAdd() in der MSDN-Dokumentation.

Rückgabewerte

Variant XOR Rules
If left is | If right is | then the result is
true | true | false
true | false | true
false | true | true
false | false | false
null | null | null

Fehler/Exceptions

Throws a com_exception on failure.

Siehe auch

  • variant_or() - Performs a logical disjunction on two variants
  • variant_and() - Performs a bitwise AND operation between two variants


win32service

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
    • Security consideration
  • Vordefinierte Konstanten
    • Win32Service Service Type Bitmasks
    • Win32Service Service Status Constants
    • Win32Service Service Control Message Constants
    • Win32Service Service Control Message Accepted Bitmasks
    • Win32Service Service Start Type Constants
    • Win32Service Service Error Control Constants
    • Win32Service Service Flag Constants
    • Win32 Error Codes
    • Win32 Base Priority Classes
    • Win32 Recovery action
    • Win32 Service informations
  • Win32ServiceException — The Win32ServiceException class
  • Beispiele
  • win32service Funktionen
    • win32_continue_service — Resumes a paused service
    • win32_create_service — Creates a new service entry in the SCM database
    • win32_delete_service — Deletes a service entry from the SCM database
    • win32_get_last_control_message — Returns the last control message that was sent to this service
    • win32_pause_service — Pauses a service
    • win32_query_service_status — Queries the status of a service
    • win32_send_custom_control — Send a custom control to the service
    • win32_set_service_exit_code — Define or return the exit code for the current running service
    • win32_set_service_exit_mode — Define or return the exit mode for the current running service
    • win32_set_service_status — Update the service status
    • win32_start_service_ctrl_dispatcher — Registers the script with the SCM, so that it can act as the service with the given name
    • win32_start_service — Starts a service
    • win32_stop_service — Stops a service


Einführung

The win32service extension is a Windows specific extension that allows PHP to communicate with the Service Control Manager to start, stop, register and unregister services, and even allows your PHP scripts to run as a service.


Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation
  • Laufzeit-Konfiguration
  • Ressource-Typen
  • Security consideration


Anforderungen

The versions of Windows supported are the same as the Visual C++ redistributable package used to build PHP.


Installation

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/win32service


  • « Laufzeit-Konfiguration
  • Security consideration »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert keine Ressource-Typen.


Security consideration

This extension needs administrator privileges for some actions such as create, delete, start, stop, pause and continue. This requirement can cause an elevation of privileges if the service control is available from the web interface or remote control.

You can set the ACL on the service after adding it into SCM to delegate the current administration tasks to an non administrator account or service account. For further instructions, see the » Microsoft Knowledge Base.


Vordefinierte Konstanten

Inhaltsverzeichnis

  • Win32Service Service Type Bitmasks
  • Win32Service Service Status Constants
  • Win32Service Service Control Message Constants
  • Win32Service Service Control Message Accepted Bitmasks
  • Win32Service Service Start Type Constants
  • Win32Service Service Error Control Constants
  • Win32Service Service Flag Constants
  • Win32 Error Codes
  • Win32 Base Priority Classes
  • Win32 Recovery action
  • Win32 Service informations

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.


Win32Service Service Type Bitmasks

  • « Vordefinierte Konstanten
  • Win32Service Service Status Constants »
  • PHP Manual
  • Vordefinierte Konstanten
  • Win32Service Service Type Bitmasks
Win32Service Service Type Bitmasks
Constant | Value | Description
WIN32_SERVICE_WIN32_OWN_PROCESS | 0x00000010 | The service runs in its own process.
WIN32_SERVICE_INTERACTIVE_PROCESS | 0x00000100 | The service can interact with the desktop. This option is not available on Windows Vista or later.
WIN32_SERVICE_WIN32_OWN_PROCESS_INTERACTIVE | 0x00000110 | The service runs in its own process and can interact with the desktop. This option is not available on Windows Vista or later.


Win32Service Service Status Constants

  • « Win32Service Service Type Bitmasks
  • Win32Service Service Control Message Constants »
  • PHP Manual
  • Vordefinierte Konstanten
  • Win32Service Service Status Constants
Win32Service Service Status Constants
Constant | Value | Description
WIN32_SERVICE_CONTINUE_PENDING | 0x00000005 | The service continue is pending.
WIN32_SERVICE_PAUSE_PENDING | 0x00000006 | The service pause is pending.
WIN32_SERVICE_PAUSED | 0x00000007 | The service is paused.
WIN32_SERVICE_RUNNING | 0x00000004 | The service is running.
WIN32_SERVICE_START_PENDING | 0x00000002 | The service is starting.
WIN32_SERVICE_STOP_PENDING | 0x00000003 | The service is stopping.
WIN32_SERVICE_STOPPED | 0x00000001 | The service is not running.


Win32Service Service Control Message Constants

  • « Win32Service Service Status Constants
  • Win32Service Service Control Message Accepted Bitmasks »
  • PHP Manual
  • Vordefinierte Konstanten
  • Win32Service Service Control Message Constants
Win32Service Service Control Message Constants
Constant | Value | Description
WIN32_SERVICE_CONTROL_CONTINUE | 0x00000003 | Notifies a paused service that it should resume.
WIN32_SERVICE_CONTROL_DEVICEEVENT | 0x0000000B |
WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE | 0x0000000C |
WIN32_SERVICE_CONTROL_INTERROGATE | 0x00000004 | Notifies a service that it should report its current status information to the service control manager.
WIN32_SERVICE_CONTROL_NETBINDADD | 0x00000007 | Notifies a network service that there is a new component for binding.
WIN32_SERVICE_CONTROL_NETBINDDISABLE | 0x0000000A | Notifies a network service that one of its bindings has been disabled.
WIN32_SERVICE_CONTROL_NETBINDENABLE | 0x00000009 | Notifies a network service that a disabled binding has been enabled.
WIN32_SERVICE_CONTROL_NETBINDREMOVE | 0x00000008 | Notifies a network service that a component for binding has been removed.
WIN32_SERVICE_CONTROL_PARAMCHANGE | 0x00000006 | Notifies a service that its startup parameters have changed.
WIN32_SERVICE_CONTROL_PAUSE | 0x00000002 | Notifies a service that it should pause.
WIN32_SERVICE_CONTROL_POWEREVENT | 0x0000000D |
WIN32_SERVICE_CONTROL_PRESHUTDOWN | 0x0000000F | Notifies a service that the system will be shutting down. A service that handles this notification blocks system shutdown until the service stops or the preshutdown time-out interval expires. This value is not supported by Windows Server 2003 and Windows XP/2000.
WIN32_SERVICE_CONTROL_SESSIONCHANGE | 0x0000000E |
WIN32_SERVICE_CONTROL_SHUTDOWN | 0x00000005 | Notifies a service that the system is shutting down so the service can perform cleanup tasks. If a service accepts this control code, it must stop after it performs its cleanup tasks. After the SCM sends this control code, it will not send other control codes to the service.
WIN32_SERVICE_CONTROL_STOP | 0x00000001 | Notifies a service that it should stop.


Win32Service Service Control Message Accepted Bitmasks

  • « Win32Service Service Control Message Constants
  • Win32Service Service Start Type Constants »
  • PHP Manual
  • Vordefinierte Konstanten
  • Win32Service Service Control Message Accepted Bitmasks
Win32Service Service Control Message Accepted Bitmasks
Constant | Value | Description
WIN32_SERVICE_ACCEPT_HARDWAREPROFILECHANGE | 0x00000020 | The service is notified when the computer's hardware profile has changed. This enables the system to send WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE notifications to the service.
WIN32_SERVICE_ACCEPT_NETBINDCHANGE | 0x00000010 | The service is a network component that can accept changes in its binding without being stopped and restarted. This control code allows the service to receive WIN32_SERVICE_CONTROL_NETBINDADD, WIN32_SERVICE_CONTROL_NETBINDREMOVE, WIN32_SERVICE_CONTROL_NETBINDENABLE, and WIN32_SERVICE_CONTROL_NETBINDDISABLE notifications.
WIN32_SERVICE_ACCEPT_PARAMCHANGE | 0x00000008 | The service can reread its startup parameters without being stopped and restarted. This control code allows the service to receive WIN32_SERVICE_CONTROL_PARAMCHANGE notifications.
WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE | 0x00000002 | The service can be paused and continued. This control code allows the service to receive WIN32_SERVICE_CONTROL_PAUSE and WIN32_SERVICE_CONTROL_CONTINUE notifications.
WIN32_SERVICE_ACCEPT_POWEREVENT | 0x00000040 | The service is notified when the computer's power status has changed. This enables the system to send WIN32_SERVICE_CONTROL_POWEREVENT notifications to the service.
WIN32_SERVICE_ACCEPT_PRESHUTDOWN | 0x00000100 | The service can perform preshutdown tasks. This control code enables the service to receive WIN32_SERVICE_CONTROL_PRESHUTDOWN notifications. This value is not supported by Windows Server 2003 and Windows XP/2000.
WIN32_SERVICE_ACCEPT_SESSIONCHANGE | 0x00000080 | The service is notified when the computer's session status has changed. This enables the system to send WIN32_SERVICE_CONTROL_SESSIONCHANGE notifications to the service. Windows 2000: This value is not supported
WIN32_SERVICE_ACCEPT_SHUTDOWN | 0x00000004 | The service is notified when system shutdown occurs. This control code allows the service to receive WIN32_SERVICE_CONTROL_SHUTDOWN notifications.
WIN32_SERVICE_ACCEPT_STOP | 0x00000001 | The service can be stopped. This control code allows the service to receive WIN32_SERVICE_CONTROL_STOP notifications.
WIN32_SERVICE_ACCEPT_TIMECHANGE | 0x00000200 | The service is notified when the system time has changed. This enables the system to send WIN32_SERVICE_CONTROL_TIMECHANGE notifications to the service. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000: This control code is not supported.
WIN32_SERVICE_ACCEPT_TRIGGEREVENT | 0x00000400 | The service is notified when an event for which the service has registered occurs. This enables the system to send WIN32_SERVICE_CONTROL_TRIGGEREVENT notifications to the service. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000: This control code is not supported.


Win32Service Service Start Type Constants

  • « Win32Service Service Control Message Accepted Bitmasks
  • Win32Service Service Error Control Constants »
  • PHP Manual
  • Vordefinierte Konstanten
  • Win32Service Service Start Type Constants
Win32Service Service Start Type Constants
Constant | Value | Description
WIN32_SERVICE_BOOT_START | 0x00000000 | A device driver started by the system loader. This value is valid only for driver services.
WIN32_SERVICE_SYSTEM_START | 0x00000001 | A device driver started by the IoInitSystem function. This value is valid only for driver services.
WIN32_SERVICE_AUTO_START | 0x00000002 | A service started automatically by the service control manager during system startup.
WIN32_SERVICE_DEMAND_START | 0x00000003 | A service started by the service control manager when a process calls the StartService function.
WIN32_SERVICE_DISABLED | 0x00000004 | A service that cannot be started. Attempts to start the service result in the error code WIN32_ERROR_SERVICE_DISABLED.


Win32Service Service Error Control Constants

  • « Win32Service Service Start Type Constants
  • Win32Service Service Flag Constants »
  • PHP Manual
  • Vordefinierte Konstanten
  • Win32Service Service Error Control Constants
Win32Service Service Error Control Constants
Constant | Value | Description
WIN32_SERVICE_ERROR_IGNORE | 0x00000000 | The startup program ignores the error and continues the startup operation.
WIN32_SERVICE_ERROR_NORMAL | 0x00000001 | The startup program logs the error in the event log but continues the startup operation.
WIN32_SERVICE_ERROR_SEVERE | 0x00000002 | The startup program logs the error in the event log. If the last-known-good configuration is being started, the startup operation continues. Otherwise, the system is restarted with the last-known-good configuration.
WIN32_SERVICE_ERROR_CRITICAL | 0x00000003 | The startup program logs the error in the event log, if possible. If the last-known-good configuration is being started, the startup operation fails. Otherwise, the system is restarted with the last-known good configuration.


Win32Service Service Flag Constants

  • « Win32Service Service Error Control Constants
  • Win32 Error Codes »
  • PHP Manual
  • Vordefinierte Konstanten
  • Win32Service Service Flag Constants
Win32Service Service Flag Constants
Constant | Value | Description
WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS | 0x00000001 | The service runs in a system process that must always be running.


Win32 Error Codes

  • « Win32Service Service Flag Constants
  • Win32 Base Priority Classes »
  • PHP Manual
  • Vordefinierte Konstanten
  • Win32 Error Codes

Hinweis:

These constants are no longer in use as of Win32Service 1.0.0.

Win32 Error Codes
Constant | Value | Description
WIN32_ERROR_ACCESS_DENIED | 0x00000005 | The handle to the SCM database does not have the appropriate access rights.
WIN32_ERROR_CIRCULAR_DEPENDENCY | 0x00000423 | A circular service dependency was specified.
WIN32_ERROR_DATABASE_DOES_NOT_EXIST | 0x00000429 | The specified database does not exist.
WIN32_ERROR_DEPENDENT_SERVICES_RUNNING | 0x0000041B | The service cannot be stopped because other running services are dependent on it.
WIN32_ERROR_DUPLICATE_SERVICE_NAME | 0x00000436 | The display name already exists in the service control manager database either as a service name or as another display name.
WIN32_ERROR_FAILED_SERVICE_CONTROLLER_CONNECT | 0x00000427 | This error is returned if the program is being run as a console application rather than as a service. If the program will be run as a console application for debugging purposes, structure it such that service-specific code is not called.
WIN32_ERROR_INSUFFICIENT_BUFFER | 0x0000007A | The buffer is too small for the service status structure. Nothing was written to the structure.
WIN32_ERROR_INVALID_DATA | 0x0000000D | The specified service status structure is invalid.
WIN32_ERROR_INVALID_HANDLE | 0x00000006 | The handle to the specified service control manager database is invalid.
WIN32_ERROR_INVALID_LEVEL | 0x0000007C | The InfoLevel parameter contains an unsupported value.
WIN32_ERROR_INVALID_NAME | 0x0000007B | The specified service name is invalid.
WIN32_ERROR_INVALID_PARAMETER | 0x00000057 | A parameter that was specified is invalid.
WIN32_ERROR_INVALID_SERVICE_ACCOUNT | 0x00000421 | The user account name specified in the user parameter does not exist. See win32_create_service().
WIN32_ERROR_INVALID_SERVICE_CONTROL | 0x0000041C | The requested control code is not valid, or it is unacceptable to the service.
WIN32_ERROR_PATH_NOT_FOUND | 0x00000003 | The service binary file could not be found.
WIN32_ERROR_SERVICE_ALREADY_RUNNING | 0x00000420 | An instance of the service is already running.
WIN32_ERROR_SERVICE_CANNOT_ACCEPT_CTRL | 0x00000425 | The requested control code cannot be sent to the service because the state of the service is WIN32_SERVICE_STOPPED, WIN32_SERVICE_START_PENDING, or WIN32_SERVICE_STOP_PENDING.
WIN32_ERROR_SERVICE_DATABASE_LOCKED | 0x0000041F | The database is locked.
WIN32_ERROR_SERVICE_DEPENDENCY_DELETED | 0x00000433 | The service depends on a service that does not exist or has been marked for deletion.
WIN32_ERROR_SERVICE_DEPENDENCY_FAIL | 0x0000042C | The service depends on another service that has failed to start.
WIN32_ERROR_SERVICE_DISABLED | 0x00000422 | The service has been disabled.
WIN32_ERROR_SERVICE_DOES_NOT_EXIST | 0x00000424 | The specified service does not exist as an installed service.
WIN32_ERROR_SERVICE_EXISTS | 0x00000431 | The specified service already exists in this database.
WIN32_ERROR_SERVICE_LOGON_FAILED | 0x0000042D | The service did not start due to a logon failure. This error occurs if the service is configured to run under an account that does not have the "Log on as a service" right.
WIN32_ERROR_SERVICE_MARKED_FOR_DELETE | 0x00000430 | The specified service has already been marked for deletion.
WIN32_ERROR_SERVICE_NO_THREAD | 0x0000041E | A thread could not be created for the service.
WIN32_ERROR_SERVICE_NOT_ACTIVE | 0x00000426 | The service has not been started.
WIN32_ERROR_SERVICE_REQUEST_TIMEOUT | 0x0000041D | The process for the service was started, but it did not call StartServiceCtrlDispatcher, or the thread that called StartServiceCtrlDispatcher may be blocked in a control handler function.
WIN32_ERROR_SHUTDOWN_IN_PROGRESS | 0x0000045B | The system is shutting down; this function cannot be called.
WIN32_ERROR_SERVICE_SPECIFIC_ERROR | 0x0000042A | The service has returned a service-specific error code.
WIN32_NO_ERROR | 0x00000000 | No error.


Win32 Base Priority Classes

  • « Win32 Error Codes
  • Win32 Recovery action »
  • PHP Manual
  • Vordefinierte Konstanten
  • Win32 Base Priority Classes
Win32 Base Priority Classes
Constant | Value | Description
WIN32_ABOVE_NORMAL_PRIORITY_CLASS | 0x00008000 | Process that has priority above WIN32_NORMAL_PRIORITY_CLASS but below WIN32_HIGH_PRIORITY_CLASS.
WIN32_BELOW_NORMAL_PRIORITY_CLASS | 0x00004000 | Process that has priority above WIN32_IDLE_PRIORITY_CLASS but below WIN32_NORMAL_PRIORITY_CLASS.
WIN32_HIGH_PRIORITY_CLASS | 0x00000080 | Process that performs time-critical tasks that must be executed immediately. The threads of the process preempt the threads of normal or idle priority class processes. An example is the Task List, which must respond quickly when called by the user, regardless of the load on the operating system. Use extreme care when using the high-priority class, because a high-priority class application can use nearly all available CPU time.
WIN32_IDLE_PRIORITY_CLASS | 0x00000040 | Process whose threads run only when the system is idle. The threads of the process are preempted by the threads of any process running in a higher priority class. An example is a screen saver. The idle-priority class is inherited by child processes.
WIN32_NORMAL_PRIORITY_CLASS | 0x00000020 | Process with no special scheduling needs.
WIN32_REALTIME_PRIORITY_CLASS | 0x00000100 | Process that has the highest possible priority. The threads of the process preempt the threads of all other processes, including operating system processes performing important tasks. For example, a real-time process that executes for more than a very brief interval can cause disk caches not to flush or cause the mouse to be unresponsive.


Win32 Recovery action

  • « Win32 Base Priority Classes
  • Win32 Service informations »
  • PHP Manual
  • Vordefinierte Konstanten
  • Win32 Recovery action
Win32 Recovery action
Constant | Value | Description
WIN32_SC_ACTION_NONE | 0x00000000 | No action.
WIN32_SC_ACTION_REBOOT | 0x00000001 | Restart the server.
WIN32_SC_ACTION_RESTART | 0x00000002 | Restart the service.
WIN32_SC_ACTION_RUN_COMMAND | 0x00000003 | Run a command.


Win32 Service informations

  • « Win32 Recovery action
  • Win32ServiceException »
  • PHP Manual
  • Vordefinierte Konstanten
  • Win32 Service informations
Win32 Service informations
Constant | Value | Description
WIN32_INFO_SERVICE | "service" |
WIN32_INFO_DISPLAY | "display" |
WIN32_INFO_USER | "user" |
WIN32_INFO_PASSWORD | "password" |
WIN32_INFO_PATH | "path" |
WIN32_INFO_PARAMS | "params" |
WIN32_INFO_DESCRIPTION | "description" |
WIN32_INFO_START_TYPE | "start_type" |
INFO_LOAD_ORDER | "load_order" |
INFO_SVC_TYPE | "svc_type" |
INFO_ERROR_CONTROL | "error_control" |
INFO_DELAYED_START | "delayed_start" |
INFO_BASE_PRIORITY | "base_priority" |
INFO_DEPENDENCIES | "dependencies" |
INFO_RECOVERY_DELAY | "recovery_delay" |
INFO_RECOVERY_ACTION_1 | "recovery_action_1" |
INFO_RECOVERY_ACTION_2 | "recovery_action_2" |
INFO_RECOVERY_ACTION_3 | "recovery_action_3" |
INFO_RECOVERY_RESET_PERIOD | "recovery_reset_period" |
INFO_RECOVERY_ENABLED | "recovery_enabled" |
INFO_RECOVERY_REBOOT_MSG | "recovery_reboot_msg" |
INFO_RECOVERY_COMMAND | "recovery_command" |


The Win32ServiceException class

(PECL win32service >=1.0.0)

Einführung

The exception replaces the old mechanism where the error value needed to be compared to constants to detect which error was emitted. The Exception code is equal to the value of the error value and the exception message is based on the corresponding constant name.

Klassenbeschreibung

Win32ServiceException extends Exception {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


Beispiele

Beispiel #1 Registering a PHP script to run as a service

<?php
win32_create_service(array(
    'service'     => 'dummyphp',                                           # the name of your service
    'display'     => 'sample dummy PHP service',                           # short description
    'description' => 'This is a dummy Windows service created using PHP.', # long description
    'params'      => '"' . __FILE__ . '"  run',                            # path to the script and parameters
));
?>

Beispiel #2 Unregistering a service

<?php
win32_delete_service('dummyphp');
?>

Beispiel #3 Running as a service

<?php
if ($argv[1] == 'run') {
  win32_start_service_ctrl_dispatcher('dummyphp');

  while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
    # do your work here.
    # try not to take up more than 30 seconds before going around the loop
    # again
  }
}
?>


win32service Funktionen

Inhaltsverzeichnis

  • win32_continue_service — Resumes a paused service
  • win32_create_service — Creates a new service entry in the SCM database
  • win32_delete_service — Deletes a service entry from the SCM database
  • win32_get_last_control_message — Returns the last control message that was sent to this service
  • win32_pause_service — Pauses a service
  • win32_query_service_status — Queries the status of a service
  • win32_send_custom_control — Send a custom control to the service
  • win32_set_service_exit_code — Define or return the exit code for the current running service
  • win32_set_service_exit_mode — Define or return the exit mode for the current running service
  • win32_set_service_status — Update the service status
  • win32_start_service_ctrl_dispatcher — Registers the script with the SCM, so that it can act as the service with the given name
  • win32_start_service — Starts a service
  • win32_stop_service — Stops a service


Resumes a paused service

  • « win32service Funktionen
  • win32_create_service »
  • PHP Manual
  • win32service Funktionen
  • Resumes a paused service

win32_continue_service

(PECL win32service >=0.1.0)

win32_continue_service — Resumes a paused service

Beschreibung

win32_continue_service ( string $servicename , string $machine = ? ) : void

Resumes a paused, named service. Requires administrative privileges or an account with appropriate rights set in the service's ACL.

Parameter-Liste

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Prior to version 1.0.0, gab im Erfolgsfall WIN32_NO_ERROR zurück oder false, wenn es ein Problem mit den Parametern gab oder einen Win32-Fehlercode im Fehlerfall.

Fehler/Exceptions

A ValueError is thrown if the value of servicename parameter is empty.

A Win32ServiceException is thrown on error.

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.3.0 | This function does not longer require an administrator account if ACL is set for another account.

Siehe auch

  • win32_start_service() - Starts a service
  • win32_stop_service() - Stops a service
  • win32_pause_service() - Pauses a service
  • win32_send_custom_control() - Send a custom control to the service
  • Win32 Error Codes


Creates a new service entry in the SCM database

  • « win32_continue_service
  • win32_delete_service »
  • PHP Manual
  • win32service Funktionen
  • Creates a new service entry in the SCM database

win32_create_service

(PECL win32service >=0.1.0)

win32_create_service — Creates a new service entry in the SCM database

Beschreibung

win32_create_service ( array $details , string $machine = ? ) : void

Attempts to add a service into the SCM database. Administrative privileges are required for this to succeed.

Parameter-Liste

details

An array of service details:

service

The short name of the service. This is the name that you will use to control the service using the net command. The service must be unique (no two services can share the same name), and, ideally, should avoid having spaces in the name.

display

The display name of the service. This is the name that you will see in the Services Applet.

description

The long description of the service. This is the description that you will see in the Services Applet.

user

The name of the user account under which you want the service to run. If omitted, the service will run as the LocalSystem account. If the username is specified, you must also provide a password.

password

The password that corresponds to the user.

path

The full path to the executable module that will be launched when the service is started. If omitted, the path to the current PHP process will be used.

params

Command line parameters to pass to the service when it starts. If you want to run a PHP script as the service, then the first parameter should be the full path to the PHP script that you intend to run. If the script name or path contains spaces, then wrap the full path to the PHP script with ".

load_order

Controls the load_order. This is not yet fully supported.

svc_type

Sets the service type. If omitted, the default value is WIN32_SERVICE_WIN32_OWN_PROCESS. Don't change this unless you know what you're doing.

start_type

Specifies how the service should be started. The default is WIN32_SERVICE_AUTO_START which means the service will be launched when the machine starts up.

error_control

Informs the SCM what it should do when it detects a problem with the service. The default is WIN32_SERVER_ERROR_IGNORE. Changing this value is not yet fully supported.

delayed_start

If delayed_start is set to true, then this will inform the SCM that this service should be started after other auto-start services are started plus a short delay.

Any service can be marked as a delayed auto-start service; however, this setting has no effect unless the service's start_type is WIN32_SERVICE_AUTO_START.

This setting is only applicable on Windows Vista and Windows Server 2008 or greater.

base_priority

To reduce the impact on processor utilisation, it may be necessary to set a base priority lower than normal.

The base_priority can be set to one of the constants define in Win32 Base Priority Classes.

dependencies

To define the dependencies for your service, it may be necessary to set this parameter to the list of the services names in an array.

recovery_delay

This parameter defines the delay between the fail and the execution of recovery action. The value is in milliseconds.

The default value is 60000.

recovery_action_1

The action will be executed on first failure. The default value is WIN32_SC_ACTION_NONE.

The recovery_action_1 can be set to one of the constants defined in Win32 Recovery action.

recovery_action_2

The action will be executed on second failure. The default value is WIN32_SC_ACTION_NONE.

The recovery_action_2 can be set to one of the constants defined in Win32 Recovery action.

recovery_action_3

The action will be executed on next failures. The default value is WIN32_SC_ACTION_NONE.

The recovery_action_3 can be set to one of the constants defined in Win32 Recovery action.

recovery_reset_period

The failure count will be reset after the delay defined in the parameter. The delay is expirement in seconds.

The default value is 86400.

recovery_enabled

Set this parameter at true to enable the recovery settings, false to disable.

The default value is false

recovery_reboot_msg

Set this parameter to define the message saved into the Windows Event Log before the reboot. Used only if one action is set to WIN32_SC_ACTION_REBOOT.

recovery_command

Set this parameter to define the command executed when one action is defined on WIN32_SC_ACTION_RUN_COMMAND.

machine

The optional machine name on which you want to create a service. If omitted, it will use the local machine.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Prior to version 1.0.0, gab im Erfolgsfall WIN32_NO_ERROR zurück oder false, wenn es ein Problem mit den Parametern gab oder einen Win32-Fehlercode im Fehlerfall.

Fehler/Exceptions

A ValueError is thrown if the; value of service parameter is empty.

A ValueError is thrown if the; value of path parameter is missing or empty.

A ValueError is thrown if the; value of svc_type parameter is wrong.

A ValueError is thrown if the; value of start_type parameter is wrong.

A ValueError is thrown if the; value of error_control parameter is wrong.

A ValueError is thrown if the; value of base_priority parameter is wrong.

A ValueError is thrown if the; value of recovery_delay parameter is not between 0 and PHP_INT_MAX.

A ValueError is thrown if the; value of recovery_action_1 parameter is wrong.

A ValueError is thrown if the; value of recovery_action_2 parameter is wrong.

A ValueError is thrown if the; value of recovery_action_3 parameter is wrong.

A ValueError is thrown if the; value of recovery_reset_period parameter is not between 0 and PHP_INT_MAX.

A Win32ServiceException is thrown on error.

Beispiele

Beispiel #1 A win32_create_service() example

Create a service with the short name 'dummyphp'.

<?php
$x = win32_create_service(array(
    'service'     => 'dummyphp',                                           // the name of your service
    'display'     => 'sample dummy PHP service',                           // short description
    'description' => 'This is a dummy Windows service created using PHP.', // long description
    'params'      => '"' . __FILE__ . '"  run',                            // path to the script and parameters
));
debug_zval_dump($x);
?>

Beispiel #2 A win32_create_service() example with dependencies

Create a service with the short name 'dummyphp' and dependencies.

<?php
$x = win32_create_service(array(
    'service'      => 'dummyphp',                                           // the name of your service
    'display'      => 'sample dummy PHP service',                           // short description
    'description'  => 'This is a dummy Windows service created using PHP.', // long description
    'params'       => '"' . __FILE__ . '"  run',                            // path to the script and parameters
    'dependencies' => array("Netman"),                                      // The list of the dependencies
));
debug_zval_dump($x);
?>

Beispiel #3 A win32_create_service() example with recovery

Create a service with the short name 'dummyphp' and recovery settings.

<?php
$x = win32_create_service(array(
    'service'               => 'dummyphp',                                           // the name of your service
    'display'               => 'sample dummy PHP service',                           // short description
    'description'           => 'This is a dummy Windows service created using PHP.', // long description
    'params'                => '"' . __FILE__ . '"  run',                            // path to the script and parameters
    'recovery_delay'        => 120000,                                               // Recovery action is executed after 2 minutes
    'recovery_action_1'     => WIN32_SC_ACTION_RESTART,                              // On first failure, restart the service
    'recovery_action_2'     => WIN32_SC_ACTION_RUN_COMMAND,                          // On second failure, execute the commmand
    'recovery_action_3'     => WIN32_SC_ACTION_NONE,                                 // On other failure, do nothing
    'recovery_reset_period' => 86400,                                                // Reset the fail counter after 1 day
    'recovery_enabled'      => true,                                                 // Enable the recovery parameter
    'recovery_reboot_msg'   => null,                                                 // Do not define a reboot message, it's not needed here
    'recovery_command'      => "c:\clean-service.bat",                               // When the action is WIN32_SC_ACTION_RUN_COMMAND, execute this command
));
debug_zval_dump($x);
?>

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.4.0 | The dependencies, recovery_delay, recovery_action_1, recovery_action_2, recovery_action_3, recovery_reset_period, recovery_enabled, recovery_reboot_msg and recovery_command parameters have been added.

Siehe auch

  • win32_delete_service() - Deletes a service entry from the SCM database
  • Win32 Base Priority Classes
  • Win32 Recovery action
  • Win32 Error Codes


Deletes a service entry from the SCM database

  • « win32_create_service
  • win32_get_last_control_message »
  • PHP Manual
  • win32service Funktionen
  • Deletes a service entry from the SCM database

win32_delete_service

(PECL win32service >=0.1.0)

win32_delete_service — Deletes a service entry from the SCM database

Beschreibung

win32_delete_service ( string $servicename , string $machine = ? ) : void

Attempts to delete a service from the SCM database. Administrative privileges are required for this to succeed.

This function really just marks the service for deletion. If other processes (such as the Services Applet) are open, then the deletion will be deferred until those applications are closed. If a service is marked for deletion, further attempts to delete it will fail, and attempts to create a new service with that name will also fail.

Parameter-Liste

servicename

The short name of the service.

machine

The optional machine name. If omitted, the local machine will be used.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Prior to version 1.0.0, gab im Erfolgsfall WIN32_NO_ERROR zurück oder false, wenn es ein Problem mit den Parametern gab oder einen Win32-Fehlercode im Fehlerfall.

Fehler/Exceptions

A ValueError is thrown if the; value of servicename parameter is empty.

A Win32ServiceException is thrown on error.

Beispiele

Beispiel #1 A win32_delete_service() example

Deletes the dummyphp service.

<?php
win32_delete_service('dummyphp');
?>

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.

Siehe auch

  • win32_create_service() - Creates a new service entry in the SCM database
  • Win32 Error Codes


Returns the last control message that was sent to this service

  • « win32_delete_service
  • win32_pause_service »
  • PHP Manual
  • win32service Funktionen
  • Returns the last control message that was sent to this service

win32_get_last_control_message

(PECL win32service >=0.1.0)

win32_get_last_control_message — Returns the last control message that was sent to this service

Beschreibung

win32_get_last_control_message ( ) : int

Returns the control code that was last sent to this service process. When running as a service you should periodically check this to determine if your service needs to stop running.

Achtung

Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI this function is disabled.

Rückgabewerte

Returns a control constant which will be one of the Win32Service Service Control Message Constants: WIN32_SERVICE_CONTROL_CONTINUE, WIN32_SERVICE_CONTROL_DEVICEEVENT, WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_NETBINDADD, WIN32_SERVICE_CONTROL_NETBINDDISABLE, WIN32_SERVICE_CONTROL_NETBINDENABLE, WIN32_SERVICE_CONTROL_NETBINDREMOVE, WIN32_SERVICE_CONTROL_PARAMCHANGE, WIN32_SERVICE_CONTROL_PAUSE, WIN32_SERVICE_CONTROL_POWEREVENT, WIN32_SERVICE_CONTROL_PRESHUTDOWN, WIN32_SERVICE_CONTROL_SESSIONCHANGE, WIN32_SERVICE_CONTROL_SHUTDOWN, WIN32_SERVICE_CONTROL_STOP.

If the value is between 128 and 255, the control code is custom.

Fehler/Exceptions

Prior to version 1.0.0, if the SAPI is not "cli", this function emits an E_ERROR level error.

As of version 1.0.0, will throw a Win32ServiceException if SAPI is not "cli"

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 0.2.0 | This function works only in the "cli" SAPI.

Siehe auch

  • win32_start_service_ctrl_dispatcher() - Registers the script with the SCM, so that it can act as the service with the given name
  • win32_set_service_status() - Update the service status
  • win32_set_service_exit_mode() - Define or return the exit mode for the current running service
  • win32_set_service_exit_code() - Define or return the exit code for the current running service
  • Win32Service Service Control Message Constants


Pauses a service

  • « win32_get_last_control_message
  • win32_query_service_status »
  • PHP Manual
  • win32service Funktionen
  • Pauses a service

win32_pause_service

(PECL win32service >=0.1.0)

win32_pause_service — Pauses a service

Beschreibung

win32_pause_service ( string $servicename , string $machine = ? ) : void

Pauses a named service. Requires administrative privileges or an account with appropriate rights set in the service's ACL.

Parameter-Liste

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Prior to version 1.0.0, gab im Erfolgsfall WIN32_NO_ERROR zurück oder false, wenn es ein Problem mit den Parametern gab oder einen Win32-Fehlercode im Fehlerfall.

Fehler/Exceptions

A ValueError is thrown if the; value of servicename parameter is empty.

A Win32ServiceException is thrown on error.

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.3.0 | This function does not longer require an administrator account if ACL is set for another account.

Siehe auch

  • win32_start_service() - Starts a service
  • win32_stop_service() - Stops a service
  • win32_continue_service() - Resumes a paused service
  • win32_send_custom_control() - Send a custom control to the service
  • Win32 Error Codes


Queries the status of a service

  • « win32_pause_service
  • win32_send_custom_control »
  • PHP Manual
  • win32service Funktionen
  • Queries the status of a service

win32_query_service_status

(PECL win32service >=0.1.0)

win32_query_service_status — Queries the status of a service

Beschreibung

win32_query_service_status ( string $servicename , string $machine = ? ) : array

Queries the current status for a service, returning an array of information.

Parameter-Liste

servicename

The short name of the service.

machine

The optional machine name. If omitted, the local machine will be used.

Rückgabewerte

Returns an array consisting of the following information on success

Prior version 1.0.0 oder false, wenn es ein Problem mit den Parametern gab oder einen Win32-Fehlercode im Fehlerfall.

ServiceType

The dwServiceType. See Win32Service Service Type Bitmasks.

CurrentState

The dwCurrentState. See Win32Service Service Status Constants.

ControlsAccepted

Which service controls are accepted by the service. See Win32Service Service Control Message Accepted Bitmasks.

Win32ExitCode

If the service exited, the return code from the process. This value is equal to WIN32_ERROR_SERVICE_SPECIFIC_ERROR if the exit mode is not gracefuly. See Win32Service error codes and win32_set_service_exit_mode()

ServiceSpecificExitCode

If the service exited with an error condition, the service specific code that is logged in the event log is visible here. This value is equal to the value defined by win32_set_service_exit_code()

CheckPoint

If the service is shutting down, holds the current check point number. This is used by the SCM as a kind of heart-beat to detect a wedged service process. The value of the check point is best interpreted in conjunction with the WaitHint value.

WaitHint

If the service is shutting down it will set WaitHint to a checkpoint value that will indicate 100% completion. This can be used to implement a progress indicator.

ProcessId

The Windows process identifier. If 0, the process is not running.

ServiceFlags

The dwServiceFlags. See Win32Service Service Service Flag Constants.

Fehler/Exceptions

A ValueError is thrown if the; value of servicename parameter is empty.

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now array, previously it was mixed.

Siehe auch

  • Win32Service Predefined Constants


Send a custom control to the service

  • « win32_query_service_status
  • win32_set_service_exit_code »
  • PHP Manual
  • win32service Funktionen
  • Send a custom control to the service

win32_send_custom_control

(PECL win32service >=0.4.0)

win32_send_custom_control — Send a custom control to the service

Beschreibung

win32_send_custom_control ( string $servicename , int $control , string $machine = ? ) : void

See » Microsoft ControlService function for more details

Parameter-Liste

servicename

The short name of the service.

control

The custom contole value between 128 and 255.

machine

Optional machine name. If omitted, the local machine is used.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Prior to version 1.0.0, gab im Erfolgsfall WIN32_NO_ERROR zurück oder false, wenn es ein Problem mit den Parametern gab oder einen Win32-Fehlercode im Fehlerfall.

Fehler/Exceptions

Prior to version 1.0.0, if the control value is not between 128 and 255, this function emits an E_ERROR level error.

A ValueError is thrown if the; value of servicename parameter is empty.

A ValueError is thrown if the; value of control parameter is not between 128 and 255.

A Win32ServiceException is thrown on error.

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.

Siehe auch

  • win32_start_service() - Starts a service
  • win32_stop_service() - Stops a service
  • win32_pause_service() - Pauses a service
  • win32_continue_service() - Resumes a paused service
  • Win32 Error Codes


Define or return the exit code for the current running service

  • « win32_send_custom_control
  • win32_set_service_exit_mode »
  • PHP Manual
  • win32service Funktionen
  • Define or return the exit code for the current running service

win32_set_service_exit_code

(PECL win32service >=0.4.0)

win32_set_service_exit_code — Define or return the exit code for the current running service

Beschreibung

win32_set_service_exit_code ( int $exitCode = 1 ) : int

Change or return the exit code. The exit code is used only if the exit mode is not graceful. If the value is not zero, the recovery configuration can be used after service fail. See » Microsoft system error codes for more details

Achtung

This function work only in "cli" SAPI. On other SAPI this function is disabled.

Parameter-Liste

exitCode

The return code used on exit.

Rückgabewerte

Return the current or old exit code.

Fehler/Exceptions

Prior to version 1.0.0, if the SAPI is not "cli", this function emits an E_ERROR level error.

As of version 1.0.0, will throw a Win32ServiceException if SAPI is not "cli"

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.

Siehe auch

  • win32_start_service_ctrl_dispatcher() - Registers the script with the SCM, so that it can act as the service with the given name
  • win32_set_service_status() - Update the service status
  • win32_set_service_exit_mode() - Define or return the exit mode for the current running service


Define or return the exit mode for the current running service

  • « win32_set_service_exit_code
  • win32_set_service_status »
  • PHP Manual
  • win32service Funktionen
  • Define or return the exit mode for the current running service

win32_set_service_exit_mode

(PECL win32service >=0.4.0)

win32_set_service_exit_mode — Define or return the exit mode for the current running service

Beschreibung

win32_set_service_exit_mode ( bool $gracefulMode = true ) : bool

If gracefulMode parameter is provided, the exit mode is changed. When the exit mode is not gracefuly, the exit code used can be set with the win32_set_service_exit_code() function.

Achtung

This function work only in "cli" SAPI. On other SAPI this function is disabled.

Parameter-Liste

gracefulMode

true for exit graceful. false for exit with error.

Rückgabewerte

Return the current or old exit mode.

Fehler/Exceptions

Prior to version 1.0.0, if the SAPI is not "cli", this function emits an E_ERROR level error.

As of version 1.0.0, will throw a Win32ServiceException if SAPI is not "cli"

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.

Siehe auch

  • win32_start_service_ctrl_dispatcher() - Registers the script with the SCM, so that it can act as the service with the given name
  • win32_set_service_status() - Update the service status
  • win32_set_service_exit_code() - Define or return the exit code for the current running service


Update the service status

  • « win32_set_service_exit_mode
  • win32_start_service_ctrl_dispatcher »
  • PHP Manual
  • win32service Funktionen
  • Update the service status

win32_set_service_status

(PECL win32service >=0.1.0)

win32_set_service_status — Update the service status

Beschreibung

win32_set_service_status ( int $status , int $checkpoint = 0 ) : void

Informs the SCM of the current status of a running service. This call is only valid for a running service process.

Achtung

Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI this function is disabled.

Parameter-Liste

status

The service status code, one of WIN32_SERVICE_RUNNING, WIN32_SERVICE_STOPPED, WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING, WIN32_SERVICE_PAUSE_PENDING, WIN32_SERVICE_PAUSED.

checkpoint

The checkpoint value the service increments periodically to report its progress during a lengthy start, stop, pause, or continue operation. For example, the service should increment this value as it completes each step of its initialization when it is starting up.

The checkpoint is only valid when the status is one of WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING or WIN32_SERVICE_PAUSE_PENDING.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Prior to version 1.0.0, gab im Erfolgsfall WIN32_NO_ERROR zurück oder false, wenn es ein Problem mit den Parametern gab oder einen Win32-Fehlercode im Fehlerfall.

Fehler/Exceptions

Prior to version 1.0.0, if the SAPI is not "cli", this function emits an E_ERROR level error.

As of version 1.0.0, will throw a Win32ServiceException if SAPI is not "cli"

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.2.0 | This function works only in the "cli" SAPI.

Siehe auch

  • win32_start_service_ctrl_dispatcher() - Registers the script with the SCM, so that it can act as the service with the given name
  • win32_get_last_control_message() - Returns the last control message that was sent to this service
  • win32_set_service_exit_mode() - Define or return the exit mode for the current running service
  • win32_set_service_exit_code() - Define or return the exit code for the current running service
  • Win32Service Service Status Constants


Registers the script with the SCM, so that it can act as the service with the given name

  • « win32_set_service_status
  • win32_start_service »
  • PHP Manual
  • win32service Funktionen
  • Registers the script with the SCM, so that it can act as the service with the given name

win32_start_service_ctrl_dispatcher

(PECL win32service >=0.1.0)

win32_start_service_ctrl_dispatcher — Registers the script with the SCM, so that it can act as the service with the given name

Beschreibung

win32_start_service_ctrl_dispatcher ( string $name , bool $gracefulMode = true ) : void

When launched via the Service Control Manager, a service process is required to "check-in" with it to establish service monitoring and communication facilities. This function performs the check-in by spawning a thread to handle the lower-level communication with the service control manager.

Once started, the service process should do 2 things. The first is to tell the Service Control Manager that the service is running. This is achieved by calling win32_set_service_status() with the WIN32_SERVICE_RUNNING constant. If you need to perform some lengthy process before the service is actually running, then you can use the WIN32_SERVICE_START_PENDING constant. The second is to continue to check-in with the service control manager so that it can determine if it should terminate. This is achieved by periodically calling win32_get_last_control_message() and handling the return code appropriately.

Achtung

Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI this function is disabled.

Parameter-Liste

name

The short-name of the service, as registered by win32_create_service().

gracefulMode

true for exit graceful. false for exit with error. See win32_set_service_exit_mode() for more details.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Prior to version 1.0.0, gab im Erfolgsfall WIN32_NO_ERROR zurück oder false, wenn es ein Problem mit den Parametern gab oder einen Win32-Fehlercode im Fehlerfall.

Fehler/Exceptions

Prior to version 1.0.0, if the SAPI is not "cli", this function emits an E_ERROR level error.

As of version 1.0.0, will throw a Win32ServiceException if SAPI is not "cli"

Beispiele

Beispiel #1 A win32_start_service_ctrl_dispatcher() example

Check if the service is runnig under the SCM.

<?php
if (!win32_start_service_ctrl_dispatcher('dummyphp')) {
  die("I'm probably not running under the service control manager");
}

win32_set_service_status(WIN32_SERVICE_START_PENDING);

// Some lengthy process to get this service up and running.

win32_set_service_status(WIN32_SERVICE_RUNNING);

while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
  # do some work here, trying not to take more than around 30 seconds
  # before coming back into the loop again
}
?>

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.4.0 | The parameter gracefulMode has been added.
PECL win32service 0.2.0 | This function works only in the "cli" SAPI.

Siehe auch

  • win32_set_service_status() - Update the service status
  • win32_get_last_control_message() - Returns the last control message that was sent to this service
  • win32_set_service_exit_mode() - Define or return the exit mode for the current running service
  • win32_set_service_exit_code() - Define or return the exit code for the current running service
  • Win32 Error Codes


Starts a service

  • « win32_start_service_ctrl_dispatcher
  • win32_stop_service »
  • PHP Manual
  • win32service Funktionen
  • Starts a service

win32_start_service

(PECL win32service >=0.1.0)

win32_start_service — Starts a service

Beschreibung

win32_start_service ( string $servicename , string $machine = ? ) : void

Attempts to start the named service. Requires administrative privileges or an account with appropriate rights set in the service's ACL.

Parameter-Liste

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Prior to version 1.0.0, gab im Erfolgsfall WIN32_NO_ERROR zurück oder false, wenn es ein Problem mit den Parametern gab oder einen Win32-Fehlercode im Fehlerfall.

Fehler/Exceptions

A ValueError is thrown if the value of servicename parameter is empty.

A Win32ServiceException is thrown on error.

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.3.0 | This function does not longer require an administrator account if ACL is set for another account.

Siehe auch

  • win32_stop_service() - Stops a service
  • win32_pause_service() - Pauses a service
  • win32_continue_service() - Resumes a paused service
  • win32_send_custom_control() - Send a custom control to the service
  • Win32 Error Codes


Stops a service

  • « win32_start_service
  • XML-Manipulation »
  • PHP Manual
  • win32service Funktionen
  • Stops a service

win32_stop_service

(PECL win32service >=0.1.0)

win32_stop_service — Stops a service

Beschreibung

win32_stop_service ( string $servicename , string $machine = ? ) : void

Stops a named service. Requires administrative privileges or an account with appropriate rights set in the service's ACL.

Parameter-Liste

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Prior to version 1.0.0, gab im Erfolgsfall WIN32_NO_ERROR zurück oder false, wenn es ein Problem mit den Parametern gab oder einen Win32-Fehlercode im Fehlerfall.

Fehler/Exceptions

A ValueError is thrown if the value of servicename parameter is empty.

A Win32ServiceException is thrown on error.

Changelog

Version | Beschreibung
PECL win32service 1.0.0 | Throws a ValueError on invalid data in parameters, previously false was returned.
PECL win32service 1.0.0 | Throws a Win32ServiceException on error, previously a Win32 Error Code was returned.
PECL win32service 1.0.0 | The return type is now void, previously it was mixed.
PECL win32service 0.3.0 | This function does not longer require an administrator account if ACL is set for another account.

Siehe auch

  • win32_start_service() - Starts a service
  • win32_pause_service() - Pauses a service
  • win32_continue_service() - Resumes a paused service
  • win32_send_custom_control() - Send a custom control to the service
  • Win32 Error Codes


XML-Manipulation

  • DOM — Document Object Model
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • DOMAttr — The DOMAttr class
    • DOMCdataSection — The DOMCdataSection class
    • DOMCharacterData — The DOMCharacterData class
    • DOMComment — The DOMComment class
    • DOMDocument — The DOMDocument class
    • DOMDocumentFragment — The DOMDocumentFragment class
    • DOMDocumentType — The DOMDocumentType class
    • DOMElement — The DOMElement class
    • DOMEntity — The DOMEntity class
    • DOMEntityReference — The DOMEntityReference class
    • DOMException — The DOMException class
    • DOMImplementation — The DOMImplementation class
    • DOMNamedNodeMap — The DOMNamedNodeMap class
    • DOMNode — The DOMNode class
    • DOMNodeList — The DOMNodeList class
    • DOMNotation — The DOMNotation class
    • DOMProcessingInstruction — The DOMProcessingInstruction class
    • DOMText — The DOMText class
    • DOMXPath — The DOMXPath class
    • DOM Funktionen
  • libxml
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • libXMLError — The libXMLError class
    • libxml Funktionen
  • SimpleXML
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • SimpleXMLElement — Die SimpleXMLElement-Klasse
    • SimpleXMLIterator — Die SimpleXMLIterator-Klasse
    • SimpleXML-Funktionen
  • WDDX
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • WDDX Funktionen
  • XMLDiff — XML diff and merge
    • Einführung
    • Installation/Konfiguration
    • XMLDiff\Base — The XMLDiff\Base class
    • XMLDiff\DOM — The XMLDiff\DOM class
    • XMLDiff\Memory — The XMLDiff\Memory class
    • XMLDiff\File — The XMLDiff\File class
  • XML Parser
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Event Handlers
    • Case Folding
    • Error Codes
    • Character Encoding
    • Beispiele
    • XML Parser Funktionen
    • XmlParser — The XmlParser class
  • XMLReader
    • Einführung
    • Installation/Konfiguration
    • XMLReader — Die XMLReader Klasse
  • XMLWriter
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • XMLWriter — The XMLWriter class
  • XSL
    • Einführung
    • Installation/Konfiguration
    • Vordefinierte Konstanten
    • Beispiele
    • XSLTProcessor — Die XSLTProcessor-Klasse


Document Object Model

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
  • DOMAttr — The DOMAttr class
    • DOMAttr::__construct — Creates a new DOMAttr object
    • DOMAttr::isId — Checks if attribute is a defined ID
  • DOMCdataSection — The DOMCdataSection class
    • DOMCdataSection::__construct — Constructs a new DOMCdataSection object
  • DOMCharacterData — The DOMCharacterData class
    • DOMCharacterData::appendData — Append the string to the end of the character data of the node
    • DOMCharacterData::deleteData — Remove a range of characters from the node
    • DOMCharacterData::insertData — Insert a string at the specified 16-bit unit offset
    • DOMCharacterData::replaceData — Replace a substring within the DOMCharacterData node
    • DOMCharacterData::substringData — Extracts a range of data from the node
  • DOMComment — The DOMComment class
    • DOMComment::__construct — Creates a new DOMComment object
  • DOMDocument — The DOMDocument class
    • DOMDocument::__construct — Creates a new DOMDocument object
    • DOMDocument::createAttribute — Create new attribute
    • DOMDocument::createAttributeNS — Create new attribute node with an associated namespace
    • DOMDocument::createCDATASection — Create new cdata node
    • DOMDocument::createComment — Create new comment node
    • DOMDocument::createDocumentFragment — Create new document fragment
    • DOMDocument::createElement — Create new element node
    • DOMDocument::createElementNS — Create new element node with an associated namespace
    • DOMDocument::createEntityReference — Create new entity reference node
    • DOMDocument::createProcessingInstruction — Creates new PI node
    • DOMDocument::createTextNode — Create new text node
    • DOMDocument::getElementById — Searches for an element with a certain id
    • DOMDocument::getElementsByTagName — Searches for all elements with given local tag name
    • DOMDocument::getElementsByTagNameNS — Searches for all elements with given tag name in specified namespace
    • DOMDocument::importNode — Import node into current document
    • DOMDocument::load — Load XML from a file
    • DOMDocument::loadHTML — Load HTML from a string
    • DOMDocument::loadHTMLFile — Load HTML from a file
    • DOMDocument::loadXML — Load XML from a string
    • DOMDocument::normalizeDocument — Normalizes the document
    • DOMDocument::registerNodeClass — Register extended class used to create base node type
    • DOMDocument::relaxNGValidate — Performs relaxNG validation on the document
    • DOMDocument::relaxNGValidateSource — Performs relaxNG validation on the document
    • DOMDocument::save — Dumps the internal XML tree back into a file
    • DOMDocument::saveHTML — Dumps the internal document into a string using HTML formatting
    • DOMDocument::saveHTMLFile — Dumps the internal document into a file using HTML formatting
    • DOMDocument::saveXML — Dumps the internal XML tree back into a string
    • DOMDocument::schemaValidate — Validates a document based on a schema. Only XML Schema 1.0 is supported.
    • DOMDocument::schemaValidateSource — Validates a document based on a schema
    • DOMDocument::validate — Validates the document based on its DTD
    • DOMDocument::xinclude — Substitutes XIncludes in a DOMDocument Object
  • DOMDocumentFragment — The DOMDocumentFragment class
    • DOMDocumentFragment::appendXML — Append raw XML data
  • DOMDocumentType — The DOMDocumentType class
  • DOMElement — The DOMElement class
    • DOMElement::__construct — Creates a new DOMElement object
    • DOMElement::getAttribute — Returns value of attribute
    • DOMElement::getAttributeNode — Returns attribute node
    • DOMElement::getAttributeNodeNS — Returns attribute node
    • DOMElement::getAttributeNS — Returns value of attribute
    • DOMElement::getElementsByTagName — Gets elements by tagname
    • DOMElement::getElementsByTagNameNS — Get elements by namespaceURI and localName
    • DOMElement::hasAttribute — Checks to see if attribute exists
    • DOMElement::hasAttributeNS — Checks to see if attribute exists
    • DOMElement::removeAttribute — Removes attribute
    • DOMElement::removeAttributeNode — Removes attribute
    • DOMElement::removeAttributeNS — Removes attribute
    • DOMElement::setAttribute — Adds new attribute
    • DOMElement::setAttributeNode — Adds new attribute node to element
    • DOMElement::setAttributeNodeNS — Adds new attribute node to element
    • DOMElement::setAttributeNS — Adds new attribute
    • DOMElement::setIdAttribute — Declares the attribute specified by name to be of type ID
    • DOMElement::setIdAttributeNode — Declares the attribute specified by node to be of type ID
    • DOMElement::setIdAttributeNS — Declares the attribute specified by local name and namespace URI to be of type ID
  • DOMEntity — The DOMEntity class
  • DOMEntityReference — The DOMEntityReference class
    • DOMEntityReference::__construct — Creates a new DOMEntityReference object
  • DOMException — The DOMException class
  • DOMImplementation — The DOMImplementation class
    • DOMImplementation::__construct — Creates a new DOMImplementation object
    • DOMImplementation::createDocument — Creates a DOMDocument object of the specified type with its document element
    • DOMImplementation::createDocumentType — Creates an empty DOMDocumentType object
    • DOMImplementation::hasFeature — Test if the DOM implementation implements a specific feature
  • DOMNamedNodeMap — The DOMNamedNodeMap class
    • DOMNamedNodeMap::count — Get number of nodes in the map
    • DOMNamedNodeMap::getNamedItem — Retrieves a node specified by name
    • DOMNamedNodeMap::getNamedItemNS — Retrieves a node specified by local name and namespace URI
    • DOMNamedNodeMap::item — Retrieves a node specified by index
  • DOMNode — The DOMNode class
    • DOMNode::appendChild — Adds new child at the end of the children
    • DOMNode::C14N — Canonicalize nodes to a string
    • DOMNode::C14NFile — Canonicalize nodes to a file
    • DOMNode::cloneNode — Clones a node
    • DOMNode::getLineNo — Get line number for a node
    • DOMNode::getNodePath — Get an XPath for a node
    • DOMNode::hasAttributes — Checks if node has attributes
    • DOMNode::hasChildNodes — Checks if node has children
    • DOMNode::insertBefore — Adds a new child before a reference node
    • DOMNode::isDefaultNamespace — Checks if the specified namespaceURI is the default namespace or not
    • DOMNode::isSameNode — Indicates if two nodes are the same node
    • DOMNode::isSupported — Checks if feature is supported for specified version
    • DOMNode::lookupNamespaceUri — Gets the namespace URI of the node based on the prefix
    • DOMNode::lookupPrefix — Gets the namespace prefix of the node based on the namespace URI
    • DOMNode::normalize — Normalizes the node
    • DOMNode::removeChild — Removes child from list of children
    • DOMNode::replaceChild — Replaces a child
  • DOMNodeList — The DOMNodeList class
    • DOMNodeList::count — Get number of nodes in the list
    • DOMNodeList::item — Retrieves a node specified by index
  • DOMNotation — The DOMNotation class
  • DOMProcessingInstruction — The DOMProcessingInstruction class
    • DOMProcessingInstruction::__construct — Creates a new DOMProcessingInstruction object
  • DOMText — The DOMText class
    • DOMText::__construct — Creates a new DOMText object
    • DOMText::isElementContentWhitespace — Returns whether this text node contains whitespace in element content
    • DOMText::isWhitespaceInElementContent — Indicates whether this text node contains whitespace
    • DOMText::splitText — Breaks this node into two nodes at the specified offset
  • DOMXPath — The DOMXPath class
    • DOMXPath::__construct — Creates a new DOMXPath object
    • DOMXPath::evaluate — Evaluates the given XPath expression and returns a typed result if possible
    • DOMXPath::query — Evaluates the given XPath expression
    • DOMXPath::registerNamespace — Registers the namespace with the DOMXPath object
    • DOMXPath::registerPhpFunctions — Register PHP functions as XPath functions
  • DOM Funktionen
    • dom_import_simplexml — Ermittelt ein DOMElement-Objekt aus einem SimpleXMLElement-Objekt


Einführung

Die DOM Erweiterung ermöglicht es, mit PHP durch die DOM API auf XML-Dokumente zuzugreifen.

Hinweis:

Die DOM Extension verwendet die UTF-8 Kodierung. Es kann utf8_encode() und utf8_decode() verwendet werden, um mit Texten in der ISO-8859-1 Kodierung zu arbeiten, oder iconv für andere Zeichenkodierungen.


Installation

Diese Erweiterung ist standardmäßig aktiviert. Sie kann bei der Kompilierung mit der folgenden Option ausgeschaltet werden: --disable-dom


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

XML constants
Constant | Value | Description
XML_ELEMENT_NODE (int) | 1 | Node is a DOMElement
XML_ATTRIBUTE_NODE (int) | 2 | Node is a DOMAttr
XML_TEXT_NODE (int) | 3 | Node is a DOMText
XML_CDATA_SECTION_NODE (int) | 4 | Node is a DOMCharacterData
XML_ENTITY_REF_NODE (int) | 5 | Node is a DOMEntityReference
XML_ENTITY_NODE (int) | 6 | Node is a DOMEntity
XML_PI_NODE (int) | 7 | Node is a DOMProcessingInstruction
XML_COMMENT_NODE (int) | 8 | Node is a DOMComment
XML_DOCUMENT_NODE (int) | 9 | Node is a DOMDocument
XML_DOCUMENT_TYPE_NODE (int) | 10 | Node is a DOMDocumentType
XML_DOCUMENT_FRAG_NODE (int) | 11 | Node is a DOMDocumentFragment
XML_NOTATION_NODE (int) | 12 | Node is a DOMNotation
XML_HTML_DOCUMENT_NODE (int) | 13 |
XML_DTD_NODE (int) | 14 |
XML_ELEMENT_DECL_NODE (int) | 15 |
XML_ATTRIBUTE_DECL_NODE (int) | 16 |
XML_ENTITY_DECL_NODE (int) | 17 |
XML_NAMESPACE_DECL_NODE (int) | 18 |
XML_ATTRIBUTE_CDATA (int) | 1 |
XML_ATTRIBUTE_ID (int) | 2 |
XML_ATTRIBUTE_IDREF (int) | 3 |
XML_ATTRIBUTE_IDREFS (int) | 4 |
XML_ATTRIBUTE_ENTITY (int) | 5 |
XML_ATTRIBUTE_NMTOKEN (int) | 7 |
XML_ATTRIBUTE_NMTOKENS (int) | 8 |
XML_ATTRIBUTE_ENUMERATION (int) | 9 |
XML_ATTRIBUTE_NOTATION (int) | 10 |
DOMException constants
Constant | Value | Description
DOM_PHP_ERR (int) | 0 | Error code not part of the DOM specification. Meant for PHP errors.
DOM_INDEX_SIZE_ERR (int) | 1 | If index or size is negative, or greater than the allowed value.
DOMSTRING_SIZE_ERR (int) | 2 | If the specified range of text does not fit into a DOMString.
DOM_HIERARCHY_REQUEST_ERR (int) | 3 | If any node is inserted somewhere it doesn't belong
DOM_WRONG_DOCUMENT_ERR (int) | 4 | If a node is used in a different document than the one that created it.
DOM_INVALID_CHARACTER_ERR (int) | 5 | If an invalid or illegal character is specified, such as in a name.
DOM_NO_DATA_ALLOWED_ERR (int) | 6 | If data is specified for a node which does not support data.
DOM_NO_MODIFICATION_ALLOWED_ERR (int) | 7 | If an attempt is made to modify an object where modifications are not allowed.
DOM_NOT_FOUND_ERR (int) | 8 | If an attempt is made to reference a node in a context where it does not exist.
DOM_NOT_SUPPORTED_ERR (int) | 9 | If the implementation does not support the requested type of object or operation.
DOM_INUSE_ATTRIBUTE_ERR (int) | 10 | If an attempt is made to add an attribute that is already in use elsewhere.
DOM_INVALID_STATE_ERR (int) | 11 | If an attempt is made to use an object that is not, or is no longer, usable.
DOM_SYNTAX_ERR (int) | 12 | If an invalid or illegal string is specified.
DOM_INVALID_MODIFICATION_ERR (int) | 13 | If an attempt is made to modify the type of the underlying object.
DOM_NAMESPACE_ERR (int) | 14 | If an attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
DOM_INVALID_ACCESS_ERR (int) | 15 | If a parameter or an operation is not supported by the underlying object.
DOM_VALIDATION_ERR (int) | 16 | If a call to a method such as insertBefore or removeChild would make the Node invalid with respect to "partial validity", this exception would be raised and the operation would not be done.


Beispiele

Many examples in this reference require an XML file. We will use book.xml that contains the following:

Beispiel #1 book.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
]>
<book id="listing">
 <title>My lists</title>
 <chapter id="books">
  <title>My books</title>
  <para>
   <informaltable>
    <tgroup cols="4">
     <thead>
      <row>
       <entry>Title</entry>
       <entry>Author</entry>
       <entry>Language</entry>
       <entry>ISBN</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
      <row>
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
      <row>
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
      <!-- TODO: I have a lot of remaining books to add.. -->
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </chapter>
</book>


The DOMAttr class

(PHP 5, PHP 7)

Einführung

DOMAttr represents an attribute in the DOMElement object.

Klassenbeschreibung

DOMAttr extends DOMNode {
/* Eigenschaften */
public readonly string $name ;
public readonly DOMElement $ownerElement ;
public readonly bool $schemaTypeInfo ;
public readonly bool $specified ;
public string $value ;
/* Geerbte Eigenschaften */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Methoden */
public __construct ( string $name , string $value = "" )
public isId ( ) : bool
/* Geerbte Methoden */
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Eigenschaften

name

The name of the attribute

ownerElement

The element which contains the attribute

schemaTypeInfo

Not implemented yet, always is null

specified

Not implemented yet, always is null

value

The value of the attribute

Siehe auch

  • » W3C specification of Attr

Inhaltsverzeichnis

  • DOMAttr::__construct — Creates a new DOMAttr object
  • DOMAttr::isId — Checks if attribute is a defined ID


Creates a new DOMAttr object

  • « DOMAttr
  • DOMAttr::isId »
  • PHP Manual
  • DOMAttr
  • Creates a new DOMAttr object

DOMAttr::__construct

(PHP 5, PHP 7)

DOMAttr::__construct — Creates a new DOMAttr object

Beschreibung

public DOMAttr::__construct ( string $name , string $value = "" )

Creates a new DOMAttr object. This object is read only. It may be appended to a document, but additional nodes may not be appended to this node until the node is associated with a document. To create a writable node, use DOMDocument::createAttribute.

Parameter-Liste

name

The tag name of the attribute.

value

The value of the attribute.

Beispiele

Beispiel #1 Creating a new DOMAttr object

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$attr = $element->setAttributeNode(new DOMAttr('attr', 'attrvalue'));
echo $dom->saveXML();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0" encoding="utf-8"?>
<root attr="attrvalue" />

Siehe auch

  • DOMDocument::createAttribute() - Create new attribute


Checks if attribute is a defined ID

  • « DOMAttr::__construct
  • DOMCdataSection »
  • PHP Manual
  • DOMAttr
  • Checks if attribute is a defined ID

DOMAttr::isId

(PHP 5, PHP 7)

DOMAttr::isId — Checks if attribute is a defined ID

Beschreibung

public DOMAttr::isId ( ) : bool

This function checks if the attribute is a defined ID.

According to the DOM standard this requires a DTD which defines the attribute ID to be of type ID. You need to validate your document with DOMDocument::validate or DOMDocument::validateOnParse before using this function.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 DOMAttr::isId() Example

<?php

$doc = new DomDocument;

// We need to validate our document before referring to the id
$doc->validateOnParse = true;
$doc->Load('book.xml');

// We retrieve the attribute named id of the chapter element
$attr = $doc->getElementsByTagName('chapter')->item(0)->getAttributeNode('id');

var_dump($attr->isId()); // bool(true)

?>


The DOMCdataSection class

(PHP 5, PHP 7)

Einführung

The DOMCdataSection inherits from DOMText for textural representation of CData constructs.

Klassenbeschreibung

DOMCdataSection extends DOMText {
/* Geerbte Eigenschaften */
public readonly string $wholeText ;
public string $data ;
public readonly int $length ;
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Methods */
public __construct ( string $data )
/* Inherited methods */
public DOMText::isElementContentWhitespace ( ) : bool
public DOMText::isWhitespaceInElementContent ( ) : bool
public DOMText::splitText ( int $offset ) : DOMText|false
public DOMCharacterData::appendData ( string $data ) : bool
public DOMCharacterData::deleteData ( int $offset , int $count ) : bool
public DOMCharacterData::insertData ( int $offset , string $data ) : bool
public DOMCharacterData::replaceData ( int $offset , int $count , string $data ) : bool
public DOMCharacterData::substringData ( int $offset , int $count ) : string|false
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Inhaltsverzeichnis

  • DOMCdataSection::__construct — Constructs a new DOMCdataSection object


Constructs a new DOMCdataSection object

  • « DOMCdataSection
  • DOMCharacterData »
  • PHP Manual
  • DOMCdataSection
  • Constructs a new DOMCdataSection object

DOMCdataSection::__construct

(PHP 5, PHP 7)

DOMCdataSection::__construct — Constructs a new DOMCdataSection object

Beschreibung

public DOMCdataSection::__construct ( string $data )

Constructs a new CDATA node. This works like the DOMText class.

Parameter-Liste

data

The value of the CDATA node. If not supplied, an empty CDATA node is created.

Beispiele

Beispiel #1 Creating a new DOMCdataSection object

<?php

$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMCdataSection('root value'));
echo $dom->saveXML();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0" encoding="utf-8"?>
<root><![CDATA[root value]]></root>

Siehe auch

  • DOMText::__construct() - Creates a new DOMText object
  • DOMDocument::createTextNode() - Create new text node


The DOMCharacterData class

(PHP 5, PHP 7)

Einführung

Represents nodes with character data. No nodes directly correspond to this class, but other nodes do inherit from it.

Klassenbeschreibung

DOMCharacterData extends DOMNode {
/* Eigenschaften */
public string $data ;
public readonly int $length ;
/* Geerbte Eigenschaften */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Methoden */
public appendData ( string $data ) : bool
public deleteData ( int $offset , int $count ) : bool
public insertData ( int $offset , string $data ) : bool
public replaceData ( int $offset , int $count , string $data ) : bool
public substringData ( int $offset , int $count ) : string|false
/* Geerbte Methoden */
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Eigenschaften

data

The contents of the node.

length

The length of the contents.

Siehe auch

  • » W3C specification of CharacterData

Inhaltsverzeichnis

  • DOMCharacterData::appendData — Append the string to the end of the character data of the node
  • DOMCharacterData::deleteData — Remove a range of characters from the node
  • DOMCharacterData::insertData — Insert a string at the specified 16-bit unit offset
  • DOMCharacterData::replaceData — Replace a substring within the DOMCharacterData node
  • DOMCharacterData::substringData — Extracts a range of data from the node


Append the string to the end of the character data of the node

  • « DOMCharacterData
  • DOMCharacterData::deleteData »
  • PHP Manual
  • DOMCharacterData
  • Append the string to the end of the character data of the node

DOMCharacterData::appendData

(PHP 5, PHP 7)

DOMCharacterData::appendData — Append the string to the end of the character data of the node

Beschreibung

public DOMCharacterData::appendData ( string $data ) : bool

Append the string data to the end of the character data of the node.

Parameter-Liste

data

The string to append.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • DOMCharacterData::deleteData() - Remove a range of characters from the node
  • DOMCharacterData::insertData() - Insert a string at the specified 16-bit unit offset
  • DOMCharacterData::replaceData() - Replace a substring within the DOMCharacterData node
  • DOMCharacterData::substringData() - Extracts a range of data from the node


Remove a range of characters from the node

  • « DOMCharacterData::appendData
  • DOMCharacterData::insertData »
  • PHP Manual
  • DOMCharacterData
  • Remove a range of characters from the node

DOMCharacterData::deleteData

(PHP 5, PHP 7)

DOMCharacterData::deleteData — Remove a range of characters from the node

Beschreibung

public DOMCharacterData::deleteData ( int $offset , int $count ) : bool

Deletes count characters starting from position offset.

Parameter-Liste

offset

The offset from which to start removing.

count

The number of characters to delete. If the sum of offset and count exceeds the length, then all characters to the end of the data are deleted.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

DOM_INDEX_SIZE_ERR

Raised if offset is negative or greater than the number of 16-bit units in data, or if count is negative.

Siehe auch

  • DOMCharacterData::appendData() - Append the string to the end of the character data of the node
  • DOMCharacterData::insertData() - Insert a string at the specified 16-bit unit offset
  • DOMCharacterData::replaceData() - Replace a substring within the DOMCharacterData node
  • DOMCharacterData::substringData() - Extracts a range of data from the node


Insert a string at the specified 16-bit unit offset

  • « DOMCharacterData::deleteData
  • DOMCharacterData::replaceData »
  • PHP Manual
  • DOMCharacterData
  • Insert a string at the specified 16-bit unit offset

DOMCharacterData::insertData

(PHP 5, PHP 7)

DOMCharacterData::insertData — Insert a string at the specified 16-bit unit offset

Beschreibung

public DOMCharacterData::insertData ( int $offset , string $data ) : bool

Inserts string data at position offset.

Parameter-Liste

offset

The character offset at which to insert.

data

The string to insert.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

DOM_INDEX_SIZE_ERR

Raised if offset is negative or greater than the number of 16-bit units in data.

Siehe auch

  • DOMCharacterData::appendData() - Append the string to the end of the character data of the node
  • DOMCharacterData::deleteData() - Remove a range of characters from the node
  • DOMCharacterData::replaceData() - Replace a substring within the DOMCharacterData node
  • DOMCharacterData::substringData() - Extracts a range of data from the node


Replace a substring within the DOMCharacterData node

  • « DOMCharacterData::insertData
  • DOMCharacterData::substringData »
  • PHP Manual
  • DOMCharacterData
  • Replace a substring within the DOMCharacterData node

DOMCharacterData::replaceData

(PHP 5, PHP 7)

DOMCharacterData::replaceData — Replace a substring within the DOMCharacterData node

Beschreibung

public DOMCharacterData::replaceData ( int $offset , int $count , string $data ) : bool

Replace count characters starting from position offset with data.

Parameter-Liste

offset

The offset from which to start replacing.

count

The number of characters to replace. If the sum of offset and count exceeds the length, then all characters to the end of the data are replaced.

data

The string with which the range must be replaced.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

DOM_INDEX_SIZE_ERR

Raised if offset is negative or greater than the number of 16-bit units in data, or if count is negative.

Siehe auch

  • DOMCharacterData::appendData() - Append the string to the end of the character data of the node
  • DOMCharacterData::deleteData() - Remove a range of characters from the node
  • DOMCharacterData::insertData() - Insert a string at the specified 16-bit unit offset
  • DOMCharacterData::substringData() - Extracts a range of data from the node


Extracts a range of data from the node

  • « DOMCharacterData::replaceData
  • DOMComment »
  • PHP Manual
  • DOMCharacterData
  • Extracts a range of data from the node

DOMCharacterData::substringData

(PHP 5, PHP 7)

DOMCharacterData::substringData — Extracts a range of data from the node

Beschreibung

public DOMCharacterData::substringData ( int $offset , int $count ) : string|false

Returns the specified substring.

Parameter-Liste

offset

Start offset of substring to extract.

count

The number of characters to extract.

Rückgabewerte

The specified substring. If the sum of offset and count exceeds the length, then all 16-bit units to the end of the data are returned.

Fehler/Exceptions

DOM_INDEX_SIZE_ERR

Raised if offset is negative or greater than the number of 16-bit units in data, or if count is negative.

Siehe auch

  • DOMCharacterData::appendData() - Append the string to the end of the character data of the node
  • DOMCharacterData::deleteData() - Remove a range of characters from the node
  • DOMCharacterData::insertData() - Insert a string at the specified 16-bit unit offset
  • DOMCharacterData::replaceData() - Replace a substring within the DOMCharacterData node


The DOMComment class

(PHP 5, PHP 7)

Einführung

Represents comment nodes, characters delimited by <!-- and -->.

Klassenbeschreibung

DOMComment extends DOMCharacterData {
/* Geerbte Eigenschaften */
public string $data ;
public readonly int $length ;
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Methoden */
public __construct ( string $data = "" )
/* Geerbte Methoden */
public DOMCharacterData::appendData ( string $data ) : bool
public DOMCharacterData::deleteData ( int $offset , int $count ) : bool
public DOMCharacterData::insertData ( int $offset , string $data ) : bool
public DOMCharacterData::replaceData ( int $offset , int $count , string $data ) : bool
public DOMCharacterData::substringData ( int $offset , int $count ) : string|false
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Siehe auch

  • » W3C specification of Comment

Inhaltsverzeichnis

  • DOMComment::__construct — Creates a new DOMComment object


Creates a new DOMComment object

  • « DOMComment
  • DOMDocument »
  • PHP Manual
  • DOMComment
  • Creates a new DOMComment object

DOMComment::__construct

(PHP 5, PHP 7)

DOMComment::__construct — Creates a new DOMComment object

Beschreibung

public DOMComment::__construct ( string $data = "" )

Creates a new DOMComment object. This object is read only. It may be appended to a document, but additional nodes may not be appended to this node until the node is associated with a document. To create a writeable node, use DOMDocument::createComment.

Parameter-Liste

data

The value of the comment.

Beispiele

Beispiel #1 Creating a new DOMComment

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$comment = $element->appendChild(new DOMComment('root comment'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root><!--root comment--></root> */

?>

Siehe auch

  • DOMDocument::createComment() - Create new comment node


The DOMDocument class

(PHP 5, PHP 7)

Einführung

Represents an entire HTML or XML document; serves as the root of the document tree.

Klassenbeschreibung

DOMDocument extends DOMNode {
/* Eigenschaften */
public readonly string $actualEncoding ;
public readonly DOMConfiguration $config ;
public readonly DOMDocumentType $doctype ;
public readonly DOMElement $documentElement ;
public string|null $documentURI ;
public string $encoding ;
public bool $formatOutput ;
public readonly DOMImplementation $implementation ;
public bool $preserveWhiteSpace = true ;
public bool $recover ;
public bool $resolveExternals ;
public bool $standalone ;
public bool $strictErrorChecking = true ;
public bool $substituteEntities ;
public bool $validateOnParse = false ;
public string $version ;
public readonly string|null $xmlEncoding ;
public bool $xmlStandalone ;
public string $xmlVersion ;
/* Geerbte Eigenschaften */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Methoden */
public __construct ( string $version = "1.0" , string $encoding = "" )
public createAttribute ( string $localName ) : DOMAttr|false
public createAttributeNS ( string|null $namespace , string $qualifiedName ) : DOMAttr|false
public createCDATASection ( string $data ) : DOMCdataSection|false
public createComment ( string $data ) : DOMComment|false
public createDocumentFragment ( ) : DOMDocumentFragment|false
public createElement ( string $localName , string $value = "" ) : DOMElement|false
public createElementNS ( string|null $namespace , string $qualifiedName , string $value = "" ) : DOMElement|false
public createEntityReference ( string $name ) : DOMEntityReference|false
public createProcessingInstruction ( string $target , string $data = "" ) : DOMProcessingInstruction|false
public createTextNode ( string $data ) : DOMText|false
public getElementById ( string $elementId ) : DOMElement|null
public getElementsByTagName ( string $qualifiedName ) : DOMNodeList
public getElementsByTagNameNS ( string $namespace , string $localName ) : DOMNodeList
public importNode ( DOMNode $node , bool $deep = false ) : DOMNode|false
public load ( string $filename , int $options = 0 ) : DOMDocument|bool
public loadHTML ( string $source , int $options = 0 ) : DOMDocument|bool
public loadHTMLFile ( string $filename , int $options = 0 ) : DOMDocument|bool
public loadXML ( string $source , int $options = 0 ) : DOMDocument|bool
public normalizeDocument ( ) : void
public registerNodeClass ( string $baseClass , string|null $extendedClass ) : bool
public relaxNGValidate ( string $filename ) : bool
public relaxNGValidateSource ( string $source ) : bool
public save ( string $filename , int $options = 0 ) : int|false
public saveHTML ( DOMNode|null $node = null ) : string|false
public saveHTMLFile ( string $filename ) : int|false
public saveXML ( DOMNode|null $node = null , int $options = 0 ) : string|false
public schemaValidate ( string $filename , int $flags = 0 ) : bool
public schemaValidateSource ( string $source , int $flags = 0 ) : bool
public validate ( ) : bool
public xinclude ( int $options = 0 ) : int|false
/* Geerbte Methoden */
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Eigenschaften

actualEncoding

Deprecated. Actual encoding of the document, is a readonly equivalent to encoding.

config

Deprecated. Configuration used when DOMDocument::normalizeDocument() is invoked.

doctype

The Document Type Declaration associated with this document.

documentElement

This is a convenience attribute that allows direct access to the child node that is the document element of the document.

documentURI

The location of the document or null if undefined.

encoding

Encoding of the document, as specified by the XML declaration. This attribute is not present in the final DOM Level 3 specification, but is the only way of manipulating XML document encoding in this implementation.

formatOutput

Nicely formats output with indentation and extra space. This has no effect if the document was loaded with preserveWhitespace enabled.

implementation

The DOMImplementation object that handles this document.

preserveWhiteSpace

Do not remove redundant white space. Default to true. Setting this to false has the same effect as passing LIBXML_NOBLANKS as option to DOMDocument::load() etc.

recover

Proprietary. Enables recovery mode, i.e. trying to parse non-well formed documents. This attribute is not part of the DOM specification and is specific to libxml.

resolveExternals

Set it to true to load external entities from a doctype declaration. This is useful for including character entities in your XML document.

standalone

Deprecated. Whether or not the document is standalone, as specified by the XML declaration, corresponds to xmlStandalone.

strictErrorChecking

Throws DOMException on errors. Default to true.

substituteEntities

Proprietary. Whether or not to substitute entities. This attribute is not part of the DOM specification and is specific to libxml.

Achtung

Enabling entity substitution may facilitate XML External Entity (XXE) attacks.

validateOnParse

Loads and validates against the DTD. Default to false.

version

Deprecated. Version of XML, corresponds to xmlVersion.

xmlEncoding

An attribute specifying, as part of the XML declaration, the encoding of this document. This is null when unspecified or when it is not known, such as when the Document was created in memory.

xmlStandalone

An attribute specifying, as part of the XML declaration, whether this document is standalone. This is false when unspecified.

xmlVersion

An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if this document supports the "XML" feature, the value is "1.0".

Anmerkungen

Hinweis:

Die DOM Extension verwendet die UTF-8 Kodierung. Es kann utf8_encode() und utf8_decode() verwendet werden, um mit Texten in der ISO-8859-1 Kodierung zu arbeiten, oder iconv für andere Zeichenkodierungen.

Hinweis:

Wird json_encode() auf ein DOMDocument Objekt angewendet, entspricht das dem Kodieren eines leeren Objekts.

Siehe auch

  • » W3C specification for Document

Inhaltsverzeichnis

  • DOMDocument::__construct — Creates a new DOMDocument object
  • DOMDocument::createAttribute — Create new attribute
  • DOMDocument::createAttributeNS — Create new attribute node with an associated namespace
  • DOMDocument::createCDATASection — Create new cdata node
  • DOMDocument::createComment — Create new comment node
  • DOMDocument::createDocumentFragment — Create new document fragment
  • DOMDocument::createElement — Create new element node
  • DOMDocument::createElementNS — Create new element node with an associated namespace
  • DOMDocument::createEntityReference — Create new entity reference node
  • DOMDocument::createProcessingInstruction — Creates new PI node
  • DOMDocument::createTextNode — Create new text node
  • DOMDocument::getElementById — Searches for an element with a certain id
  • DOMDocument::getElementsByTagName — Searches for all elements with given local tag name
  • DOMDocument::getElementsByTagNameNS — Searches for all elements with given tag name in specified namespace
  • DOMDocument::importNode — Import node into current document
  • DOMDocument::load — Load XML from a file
  • DOMDocument::loadHTML — Load HTML from a string
  • DOMDocument::loadHTMLFile — Load HTML from a file
  • DOMDocument::loadXML — Load XML from a string
  • DOMDocument::normalizeDocument — Normalizes the document
  • DOMDocument::registerNodeClass — Register extended class used to create base node type
  • DOMDocument::relaxNGValidate — Performs relaxNG validation on the document
  • DOMDocument::relaxNGValidateSource — Performs relaxNG validation on the document
  • DOMDocument::save — Dumps the internal XML tree back into a file
  • DOMDocument::saveHTML — Dumps the internal document into a string using HTML formatting
  • DOMDocument::saveHTMLFile — Dumps the internal document into a file using HTML formatting
  • DOMDocument::saveXML — Dumps the internal XML tree back into a string
  • DOMDocument::schemaValidate — Validates a document based on a schema. Only XML Schema 1.0 is supported.
  • DOMDocument::schemaValidateSource — Validates a document based on a schema
  • DOMDocument::validate — Validates the document based on its DTD
  • DOMDocument::xinclude — Substitutes XIncludes in a DOMDocument Object


Creates a new DOMDocument object

  • « DOMDocument
  • DOMDocument::createAttribute »
  • PHP Manual
  • DOMDocument
  • Creates a new DOMDocument object

DOMDocument::__construct

(PHP 5, PHP 7)

DOMDocument::__construct — Creates a new DOMDocument object

Beschreibung

public DOMDocument::__construct
 ( string $version = "1.0"
, string $encoding = ""
)

Creates a new DOMDocument object.

Parameter-Liste

version

The version number of the document as part of the XML declaration.

encoding

The encoding of the document as part of the XML declaration.

Beispiele

Beispiel #1 Creating a new DOMDocument

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?> */

?>

Siehe auch

  • DOMImplementation::createDocument() - Creates a DOMDocument object of the specified type with its document element


Create new attribute

  • « DOMDocument::__construct
  • DOMDocument::createAttributeNS »
  • PHP Manual
  • DOMDocument
  • Create new attribute

DOMDocument::createAttribute

(PHP 5, PHP 7)

DOMDocument::createAttribute — Create new attribute

Beschreibung

public DOMDocument::createAttribute ( string $localName ) : DOMAttr|false

This function creates a new instance of class DOMAttr. Dieser Knoten wird in Ihrem Dokument nicht sichtbar sein, bis dieser zum Beispiel mit der Funktion DOMNode::appendChild eingefügt wird.

Parameter-Liste

localName

The name of the attribute.

Rückgabewerte

The new DOMAttr or false if an error occurred.

Fehler/Exceptions

DOM_INVALID_CHARACTER_ERR

Raised if localName contains an invalid character.

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children
  • DOMDocument::createAttributeNS() - Create new attribute node with an associated namespace
  • DOMDocument::createCDATASection() - Create new cdata node
  • DOMDocument::createComment() - Create new comment node
  • DOMDocument::createDocumentFragment() - Create new document fragment
  • DOMDocument::createElement() - Create new element node
  • DOMDocument::createElementNS() - Create new element node with an associated namespace
  • DOMDocument::createEntityReference() - Create new entity reference node
  • DOMDocument::createProcessingInstruction() - Creates new PI node
  • DOMDocument::createTextNode() - Create new text node


Create new attribute node with an associated namespace

  • « DOMDocument::createAttribute
  • DOMDocument::createCDATASection »
  • PHP Manual
  • DOMDocument
  • Create new attribute node with an associated namespace

DOMDocument::createAttributeNS

(PHP 5, PHP 7)

DOMDocument::createAttributeNS — Create new attribute node with an associated namespace

Beschreibung

public DOMDocument::createAttributeNS ( string|null $namespace , string $qualifiedName ) : DOMAttr|false

This function creates a new instance of class DOMAttr. Dieser Knoten wird in Ihrem Dokument nicht sichtbar sein, bis dieser zum Beispiel mit der Funktion DOMNode::appendChild eingefügt wird.

Parameter-Liste

namespace

The URI of the namespace.

qualifiedName

The tag name and prefix of the attribute, as prefix:tagname.

Rückgabewerte

The new DOMAttr or false if an error occurred.

Fehler/Exceptions

DOM_INVALID_CHARACTER_ERR

Raised if qualifiedName contains an invalid character.

DOM_NAMESPACE_ERR

Raised if qualifiedName is a malformed qualified name, or if qualifiedName has a prefix and namespace is null.

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children
  • DOMDocument::createAttribute() - Create new attribute
  • DOMDocument::createCDATASection() - Create new cdata node
  • DOMDocument::createComment() - Create new comment node
  • DOMDocument::createDocumentFragment() - Create new document fragment
  • DOMDocument::createElement() - Create new element node
  • DOMDocument::createElementNS() - Create new element node with an associated namespace
  • DOMDocument::createEntityReference() - Create new entity reference node
  • DOMDocument::createProcessingInstruction() - Creates new PI node
  • DOMDocument::createTextNode() - Create new text node


Create new cdata node

  • « DOMDocument::createAttributeNS
  • DOMDocument::createComment »
  • PHP Manual
  • DOMDocument
  • Create new cdata node

DOMDocument::createCDATASection

(PHP 5, PHP 7)

DOMDocument::createCDATASection — Create new cdata node

Beschreibung

public DOMDocument::createCDATASection ( string $data ) : DOMCdataSection|false

This function creates a new instance of class DOMCDATASection. Dieser Knoten wird in Ihrem Dokument nicht sichtbar sein, bis dieser zum Beispiel mit der Funktion DOMNode::appendChild eingefügt wird.

Parameter-Liste

data

The content of the cdata.

Rückgabewerte

The new DOMCDATASection or false if an error occurred.

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children
  • DOMDocument::createAttribute() - Create new attribute
  • DOMDocument::createAttributeNS() - Create new attribute node with an associated namespace
  • DOMDocument::createComment() - Create new comment node
  • DOMDocument::createDocumentFragment() - Create new document fragment
  • DOMDocument::createElement() - Create new element node
  • DOMDocument::createElementNS() - Create new element node with an associated namespace
  • DOMDocument::createEntityReference() - Create new entity reference node
  • DOMDocument::createProcessingInstruction() - Creates new PI node
  • DOMDocument::createTextNode() - Create new text node


Create new comment node

  • « DOMDocument::createCDATASection
  • DOMDocument::createDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Create new comment node

DOMDocument::createComment

(PHP 5, PHP 7)

DOMDocument::createComment — Create new comment node

Beschreibung

public DOMDocument::createComment ( string $data ) : DOMComment|false

This function creates a new instance of class DOMComment. Dieser Knoten wird in Ihrem Dokument nicht sichtbar sein, bis dieser zum Beispiel mit der Funktion DOMNode::appendChild eingefügt wird.

Parameter-Liste

data

The content of the comment.

Rückgabewerte

The new DOMComment or false if an error occurred.

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children
  • DOMDocument::createAttribute() - Create new attribute
  • DOMDocument::createAttributeNS() - Create new attribute node with an associated namespace
  • DOMDocument::createCDATASection() - Create new cdata node
  • DOMDocument::createDocumentFragment() - Create new document fragment
  • DOMDocument::createElement() - Create new element node
  • DOMDocument::createElementNS() - Create new element node with an associated namespace
  • DOMDocument::createEntityReference() - Create new entity reference node
  • DOMDocument::createProcessingInstruction() - Creates new PI node
  • DOMDocument::createTextNode() - Create new text node


Create new document fragment

  • « DOMDocument::createComment
  • DOMDocument::createElement »
  • PHP Manual
  • DOMDocument
  • Create new document fragment

DOMDocument::createDocumentFragment

(PHP 5, PHP 7)

DOMDocument::createDocumentFragment — Create new document fragment

Beschreibung

public DOMDocument::createDocumentFragment ( ) : DOMDocumentFragment|false

This function creates a new instance of class DOMDocumentFragment. Dieser Knoten wird in Ihrem Dokument nicht sichtbar sein, bis dieser zum Beispiel mit der Funktion DOMNode::appendChild eingefügt wird.

Rückgabewerte

The new DOMDocumentFragment or false if an error occurred.

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children
  • DOMDocument::createAttribute() - Create new attribute
  • DOMDocument::createAttributeNS() - Create new attribute node with an associated namespace
  • DOMDocument::createCDATASection() - Create new cdata node
  • DOMDocument::createComment() - Create new comment node
  • DOMDocument::createElement() - Create new element node
  • DOMDocument::createElementNS() - Create new element node with an associated namespace
  • DOMDocument::createEntityReference() - Create new entity reference node
  • DOMDocument::createProcessingInstruction() - Creates new PI node
  • DOMDocument::createTextNode() - Create new text node


Create new element node

  • « DOMDocument::createDocumentFragment
  • DOMDocument::createElementNS »
  • PHP Manual
  • DOMDocument
  • Create new element node

DOMDocument::createElement

(PHP 5, PHP 7)

DOMDocument::createElement — Create new element node

Beschreibung

public DOMDocument::createElement ( string $localName , string $value = "" ) : DOMElement|false

This function creates a new instance of class DOMElement. Dieser Knoten wird in Ihrem Dokument nicht sichtbar sein, bis dieser zum Beispiel mit der Funktion DOMNode::appendChild eingefügt wird.

Parameter-Liste

localName

The tag name of the element.

value

The value of the element. By default, an empty element will be created. The value can also be set later with DOMElement::$nodeValue.

The value is used verbatim except that the < and > entity references will escaped. Note that & has to be manually escaped; otherwise it is regarded as starting an entity reference. Also " won't be escaped.

Rückgabewerte

Returns a new instance of class DOMElement or false if an error occurred.

Fehler/Exceptions

DOM_INVALID_CHARACTER_ERR

Raised if localName contains an invalid character.

Beispiele

Beispiel #1 Creating a new element and inserting it as root

<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElement('test', 'This is the root element!');

// We insert the new element as root (child of the document)
$dom->appendChild($element);

echo $dom->saveXML();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0" encoding="utf-8"?>
<test>This is the root element!</test>

Beispiel #2 Passing text containing an unescaped & as value

<?php
$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->createElement('foo', 'me & you');
$dom->appendChild($element);
echo $dom->saveXML();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Warning: DOMDocument::createElement(): unterminated entity reference             you in /in/BjTCg on line 4
<?xml version="1.0" encoding="utf-8"?>
<foo/>

Anmerkungen

Hinweis:

The value will not be escaped. Use DOMDocument::createTextNode() to create a text node with escaping support.

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children
  • DOMDocument::createAttribute() - Create new attribute
  • DOMDocument::createAttributeNS() - Create new attribute node with an associated namespace
  • DOMDocument::createCDATASection() - Create new cdata node
  • DOMDocument::createComment() - Create new comment node
  • DOMDocument::createDocumentFragment() - Create new document fragment
  • DOMDocument::createElementNS() - Create new element node with an associated namespace
  • DOMDocument::createEntityReference() - Create new entity reference node
  • DOMDocument::createProcessingInstruction() - Creates new PI node
  • DOMDocument::createTextNode() - Create new text node


Create new element node with an associated namespace

  • « DOMDocument::createElement
  • DOMDocument::createEntityReference »
  • PHP Manual
  • DOMDocument
  • Create new element node with an associated namespace

DOMDocument::createElementNS

(PHP 5, PHP 7)

DOMDocument::createElementNS — Create new element node with an associated namespace

Beschreibung

public DOMDocument::createElementNS ( string|null $namespace , string $qualifiedName , string $value = "" ) : DOMElement|false

This function creates a new element node with an associated namespace. Dieser Knoten wird in Ihrem Dokument nicht sichtbar sein, bis dieser zum Beispiel mit der Funktion DOMNode::appendChild eingefügt wird.

Parameter-Liste

namespace

The URI of the namespace.

qualifiedName

The qualified name of the element, as prefix:tagname.

value

The value of the element. By default, an empty element will be created. You can also set the value later with DOMElement::$nodeValue.

Rückgabewerte

The new DOMElement or false if an error occurred.

Fehler/Exceptions

DOM_INVALID_CHARACTER_ERR

Raised if qualifiedName contains an invalid character.

DOM_NAMESPACE_ERR

Raised if qualifiedName is a maformed qualified name.

Beispiele

Beispiel #1 Creating a new element and inserting it as root

<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElementNS('http://www.example.com/XFoo', 'xfoo:test', 'This is the root element!');

// We insert the new element as root (child of the document)
$dom->appendChild($element);

echo $dom->saveXML();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0" encoding="utf-8"?>
<xfoo:test xmlns:xfoo="http://www.example.com/XFoo">This is the root element!</xfoo:test>

Beispiel #2 A namespace prefix example

<?php
$doc  = new DOMDocument('1.0', 'utf-8');
$doc->formatOutput = true;
$root = $doc->createElementNS('http://www.w3.org/2005/Atom', 'element');
$doc->appendChild($root);
$root->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:g', 'http://base.google.com/ns/1.0');
$item = $doc->createElementNS('http://base.google.com/ns/1.0', 'g:item_type', 'house');
$root->appendChild($item);

echo $doc->saveXML(), "\n";

echo $item->namespaceURI, "\n"; // Outputs: http://base.google.com/ns/1.0
echo $item->prefix, "\n";       // Outputs: g
echo $item->localName, "\n";    // Outputs: item_type
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0" encoding="utf-8"?>
<element xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
  <g:item_type>house</g:item_type>
</element>

http://base.google.com/ns/1.0
g
item_type

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children
  • DOMDocument::createAttribute() - Create new attribute
  • DOMDocument::createAttributeNS() - Create new attribute node with an associated namespace
  • DOMDocument::createCDATASection() - Create new cdata node
  • DOMDocument::createComment() - Create new comment node
  • DOMDocument::createDocumentFragment() - Create new document fragment
  • DOMDocument::createElement() - Create new element node
  • DOMDocument::createEntityReference() - Create new entity reference node
  • DOMDocument::createProcessingInstruction() - Creates new PI node
  • DOMDocument::createTextNode() - Create new text node


Create new entity reference node

  • « DOMDocument::createElementNS
  • DOMDocument::createProcessingInstruction »
  • PHP Manual
  • DOMDocument
  • Create new entity reference node

DOMDocument::createEntityReference

(PHP 5, PHP 7)

DOMDocument::createEntityReference — Create new entity reference node

Beschreibung

public DOMDocument::createEntityReference ( string $name ) : DOMEntityReference|false

This function creates a new instance of class DOMEntityReference. Dieser Knoten wird in Ihrem Dokument nicht sichtbar sein, bis dieser zum Beispiel mit der Funktion DOMNode::appendChild eingefügt wird.

Parameter-Liste

name

The content of the entity reference, e.g. the entity reference minus the leading & and the trailing ; characters.

Rückgabewerte

The new DOMEntityReference or false if an error occurred.

Fehler/Exceptions

DOM_INVALID_CHARACTER_ERR

Raised if name contains an invalid character.

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children
  • DOMDocument::createAttribute() - Create new attribute
  • DOMDocument::createAttributeNS() - Create new attribute node with an associated namespace
  • DOMDocument::createCDATASection() - Create new cdata node
  • DOMDocument::createComment() - Create new comment node
  • DOMDocument::createDocumentFragment() - Create new document fragment
  • DOMDocument::createElement() - Create new element node
  • DOMDocument::createElementNS() - Create new element node with an associated namespace
  • DOMDocument::createProcessingInstruction() - Creates new PI node
  • DOMDocument::createTextNode() - Create new text node


Creates new PI node

  • « DOMDocument::createEntityReference
  • DOMDocument::createTextNode »
  • PHP Manual
  • DOMDocument
  • Creates new PI node

DOMDocument::createProcessingInstruction

(PHP 5, PHP 7)

DOMDocument::createProcessingInstruction — Creates new PI node

Beschreibung

public DOMDocument::createProcessingInstruction ( string $target , string $data = "" ) : DOMProcessingInstruction|false

This function creates a new instance of class DOMProcessingInstruction. Dieser Knoten wird in Ihrem Dokument nicht sichtbar sein, bis dieser zum Beispiel mit der Funktion DOMNode::appendChild eingefügt wird.

Parameter-Liste

target

The target of the processing instruction.

data

The content of the processing instruction.

Rückgabewerte

The new DOMProcessingInstruction or false if an error occurred.

Fehler/Exceptions

DOM_INVALID_CHARACTER_ERR

Raised if target contains an invalid character.

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children
  • DOMDocument::createAttribute() - Create new attribute
  • DOMDocument::createAttributeNS() - Create new attribute node with an associated namespace
  • DOMDocument::createCDATASection() - Create new cdata node
  • DOMDocument::createComment() - Create new comment node
  • DOMDocument::createDocumentFragment() - Create new document fragment
  • DOMDocument::createElement() - Create new element node
  • DOMDocument::createElementNS() - Create new element node with an associated namespace
  • DOMDocument::createEntityReference() - Create new entity reference node
  • DOMDocument::createTextNode() - Create new text node


Create new text node

  • « DOMDocument::createProcessingInstruction
  • DOMDocument::getElementById »
  • PHP Manual
  • DOMDocument
  • Create new text node

DOMDocument::createTextNode

(PHP 5, PHP 7)

DOMDocument::createTextNode — Create new text node

Beschreibung

public DOMDocument::createTextNode ( string $data ) : DOMText|false

This function creates a new instance of class DOMText. Dieser Knoten wird in Ihrem Dokument nicht sichtbar sein, bis dieser zum Beispiel mit der Funktion DOMNode::appendChild eingefügt wird.

Parameter-Liste

data

The content of the text.

Rückgabewerte

The new DOMText or false if an error occurred.

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children
  • DOMDocument::createAttribute() - Create new attribute
  • DOMDocument::createAttributeNS() - Create new attribute node with an associated namespace
  • DOMDocument::createCDATASection() - Create new cdata node
  • DOMDocument::createComment() - Create new comment node
  • DOMDocument::createDocumentFragment() - Create new document fragment
  • DOMDocument::createElement() - Create new element node
  • DOMDocument::createElementNS() - Create new element node with an associated namespace
  • DOMDocument::createEntityReference() - Create new entity reference node
  • DOMDocument::createProcessingInstruction() - Creates new PI node


Searches for an element with a certain id

  • « DOMDocument::createTextNode
  • DOMDocument::getElementsByTagName »
  • PHP Manual
  • DOMDocument
  • Searches for an element with a certain id

DOMDocument::getElementById

(PHP 5, PHP 7)

DOMDocument::getElementById — Searches for an element with a certain id

Beschreibung

public DOMDocument::getElementById ( string $elementId ) : DOMElement|null

This function is similar to DOMDocument::getElementsByTagName but searches for an element with a given id.

For this function to work, you will need either to set some ID attributes with DOMElement::setIdAttribute or a DTD which defines an attribute to be of type ID. In the later case, you will need to validate your document with DOMDocument::validate or DOMDocument::$validateOnParse before using this function.

Parameter-Liste

elementId

The unique id value for an element.

Rückgabewerte

Returns the DOMElement or null if the element is not found.

Beispiele

Beispiel #1 DOMDocument::getElementById() Example

Die folgenden Beispiele verwenden book.xml mit dem folgenden Inhalt:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books [
  <!ELEMENT books   (book+)>
  <!ELEMENT book    (title, author+, xhtml:blurb?)>
  <!ELEMENT title   (#PCDATA)>
  <!ELEMENT blurb   (#PCDATA)>
  <!ELEMENT author  (#PCDATA)>
  <!ATTLIST books   xmlns        CDATA  #IMPLIED>
  <!ATTLIST books   xmlns:xhtml  CDATA  #IMPLIED>
  <!ATTLIST book    id           ID     #IMPLIED>
  <!ATTLIST author  email        CDATA  #IMPLIED>
]>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<books xmlns="http://books.php/" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <book id="php-basics">
    <title>PHP Basics</title>
    <author email="jim.smith@basics.php">Jim Smith</author>
    <author email="jane.smith@basics.php">Jane Smith</author>
    <xhtml:blurb><![CDATA[
<p><em>PHP Basics</em> provides an introduction to PHP.</p>
]]></xhtml:blurb>
  </book>
  <book id="php-advanced">
    <title>PHP Advanced Programming</title>
    <author email="jon.doe@advanced.php">Jon Doe</author>
  </book>
</books>
<?php

$doc = new DomDocument;

// We need to validate our document before referring to the id
$doc->validateOnParse = true;
$doc->Load('book.xml');

echo "The element whose id is 'php-basics' is: " . $doc->getElementById('php-basics')->tagName . "\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The element whose id is 'php-basics' is: book

Siehe auch

  • DOMDocument::getElementsByTagName() - Searches for all elements with given local tag name


Searches for all elements with given local tag name

  • « DOMDocument::getElementById
  • DOMDocument::getElementsByTagNameNS »
  • PHP Manual
  • DOMDocument
  • Searches for all elements with given local tag name

DOMDocument::getElementsByTagName

(PHP 5, PHP 7)

DOMDocument::getElementsByTagName — Searches for all elements with given local tag name

Beschreibung

public DOMDocument::getElementsByTagName ( string $qualifiedName ) : DOMNodeList

This function returns a new instance of class DOMNodeList containing all the elements with a given local tag name.

Parameter-Liste

qualifiedName

The local name (without namespace) of the tag to match on. The special value * matches all tags.

Rückgabewerte

A new DOMNodeList object containing all the matched elements.

Beispiele

Beispiel #1 Basic Usage Example

<?php
$xml = <<< XML
<?xml version="1.0" encoding="utf-8"?>
<books>
 <book>Patterns of Enterprise Application Architecture</book>
 <book>Design Patterns: Elements of Reusable Software Design</book>
 <book>Clean Code</book>
</books>
XML;

$dom = new DOMDocument;
$dom->loadXML($xml);
$books = $dom->getElementsByTagName('book');
foreach ($books as $book) {
    echo $book->nodeValue, PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Patterns of Enterprise Application Architecture
Design Patterns: Elements of Reusable Software Design
Clean Code

Siehe auch

  • DOMDocument::getElementsByTagNameNS() - Searches for all elements with given tag name in specified namespace


Searches for all elements with given tag name in specified namespace

  • « DOMDocument::getElementsByTagName
  • DOMDocument::importNode »
  • PHP Manual
  • DOMDocument
  • Searches for all elements with given tag name in specified namespace

DOMDocument::getElementsByTagNameNS

(PHP 5, PHP 7)

DOMDocument::getElementsByTagNameNS — Searches for all elements with given tag name in specified namespace

Beschreibung

public DOMDocument::getElementsByTagNameNS ( string $namespace , string $localName ) : DOMNodeList

Returns a DOMNodeList of all elements with a given local name and a namespace URI.

Parameter-Liste

namespace

The namespace URI of the elements to match on. The special value * matches all namespaces.

localName

The local name of the elements to match on. The special value * matches all local names.

Rückgabewerte

A new DOMNodeList object containing all the matched elements.

Beispiele

Beispiel #1 Get all the XInclude elements

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Books of the other guy..</title>
<para>
 <xi:include href="book.xml">
  <xi:fallback>
   <error>xinclude: book.xml not found</error>
  </xi:fallback>
 </xi:include>
 <include>
  This is another namespace
 </include>
</para>
</chapter>
EOD;
$dom = new DOMDocument;

// load the XML string defined above
$dom->loadXML($xml);

foreach ($dom->getElementsByTagNameNS('http://www.w3.org/2001/XInclude', '*') as $element) {
    echo 'local name: ', $element->localName, ', prefix: ', $element->prefix, "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

local name: include, prefix: xi
local name: fallback, prefix: xi

Siehe auch

  • DOMDocument::getElementsByTagName() - Searches for all elements with given local tag name


Import node into current document

  • « DOMDocument::getElementsByTagNameNS
  • DOMDocument::load »
  • PHP Manual
  • DOMDocument
  • Import node into current document

DOMDocument::importNode

(PHP 5, PHP 7)

DOMDocument::importNode — Import node into current document

Beschreibung

public DOMDocument::importNode ( DOMNode $node , bool $deep = false ) : DOMNode|false

This function returns a copy of the node to import and associates it with the current document.

Parameter-Liste

node

The node to import.

deep

If set to true, this method will recursively import the subtree under the node.

Hinweis:

To copy the nodes attributes deep needs to be set to true

Rückgabewerte

The copied node or false, if it cannot be copied.

Fehler/Exceptions

DOMException is thrown if node cannot be imported.

Beispiele

Beispiel #1 DOMDocument::importNode() example

Copying nodes between documents.

<?php

$orgdoc = new DOMDocument;
$orgdoc->loadXML("<root><element><child>text in child</child></element></root>");

// The node we want to import to a new document
$node = $orgdoc->getElementsByTagName("element")->item(0);

// Create a new document
$newdoc = new DOMDocument;
$newdoc->formatOutput = true;

// Add some markup
$newdoc->loadXML("<root><someelement>text in some element</someelement></root>");

echo "The 'new document' before copying nodes into it:\n";
echo $newdoc->saveXML();

// Import the node, and all its children, to the document
$node = $newdoc->importNode($node, true);
// And then append it to the "<root>" node
$newdoc->documentElement->appendChild($node);

echo "\nThe 'new document' after copying the nodes into it:\n";
echo $newdoc->saveXML();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The 'new document' before copying nodes into it:
<?xml version="1.0"?>
<root>
  <someelement>text in some element</someelement>
</root>

The 'new document' after copying the nodes into it:
<?xml version="1.0"?>
<root>
  <someelement>text in some element</someelement>
  <element>
    <child>text in child</child>
  </element>
</root>


Load XML from a file

  • « DOMDocument::importNode
  • DOMDocument::loadHTML »
  • PHP Manual
  • DOMDocument
  • Load XML from a file

DOMDocument::load

(PHP 5, PHP 7)

DOMDocument::load — Load XML from a file

Beschreibung

public DOMDocument::load ( string $filename , int $options = 0 ) : DOMDocument|bool

Loads an XML document from a file.

Warnung

Unix style paths with forward slashes can cause significant performance degradation on Windows systems; be sure to call realpath() in such a case.

Parameter-Liste

filename

The path to the XML document.

options

Bitwise OR of the libxml option constants.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. If called statically, returns a DOMDocumentIm Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

If an empty string is passed as the filename or an empty file is named, a warning will be generated. This warning is not generated by libxml and cannot be handled using libxml's error handling functions.

Diese Methode kann statisch aufgerufen werden, dies wird aber einen E_STRICT-Fehler hervorrufen.

Beispiele

Beispiel #1 Creating a Document

<?php
$doc = new DOMDocument();
$doc->load('book.xml');
echo $doc->saveXML();
?>

Siehe auch

  • DOMDocument::loadXML() - Load XML from a string
  • DOMDocument::save() - Dumps the internal XML tree back into a file
  • DOMDocument::saveXML() - Dumps the internal XML tree back into a string


Load HTML from a string

  • « DOMDocument::load
  • DOMDocument::loadHTMLFile »
  • PHP Manual
  • DOMDocument
  • Load HTML from a string

DOMDocument::loadHTML

(PHP 5, PHP 7)

DOMDocument::loadHTML — Load HTML from a string

Beschreibung

public DOMDocument::loadHTML ( string $source , int $options = 0 ) : DOMDocument|bool

The function parses the HTML contained in the string source. Unlike loading XML, HTML does not have to be well-formed to load. This function may also be called statically to load and create a DOMDocument object. The static invocation may be used when no DOMDocument properties need to be set prior to loading.

Parameter-Liste

source

The HTML string.

options

Since PHP 5.4.0 and Libxml 2.6.0, you may also use the options parameter to specify additional Libxml parameters.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. If called statically, returns a DOMDocumentIm Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

If an empty string is passed as the source, a warning will be generated. This warning is not generated by libxml and cannot be handled using libxml's error handling functions.

Diese Methode kann statisch aufgerufen werden, dies wird aber einen E_STRICT-Fehler hervorrufen.

Auch wenn fehlerhaftes HTML erfolgreich laden sollte, kann diese Funktion dennoch E_WARNING Fehler generieren, wenn sie auf falsches Markup stößt. libxml's Fehlerbehandlungsfunktionen können genutzt werden, um diese Fehler zu behandeln.

Beispiele

Beispiel #1 Creating a Document

<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>

Siehe auch

  • DOMDocument::loadHTMLFile() - Load HTML from a file
  • DOMDocument::saveHTML() - Dumps the internal document into a string using HTML formatting
  • DOMDocument::saveHTMLFile() - Dumps the internal document into a file using HTML formatting


Load HTML from a file

  • « DOMDocument::loadHTML
  • DOMDocument::loadXML »
  • PHP Manual
  • DOMDocument
  • Load HTML from a file

DOMDocument::loadHTMLFile

(PHP 5, PHP 7)

DOMDocument::loadHTMLFile — Load HTML from a file

Beschreibung

public DOMDocument::loadHTMLFile ( string $filename , int $options = 0 ) : DOMDocument|bool

The function parses the HTML document in the file named filename. Unlike loading XML, HTML does not have to be well-formed to load.

Parameter-Liste

filename

The path to the HTML file.

options

Since PHP 5.4.0 and Libxml 2.6.0, you may also use the options parameter to specify additional Libxml parameters.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. If called statically, returns a DOMDocumentIm Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

If an empty string is passed as the filename or an empty file is named, a warning will be generated. This warning is not generated by libxml and cannot be handled using libxml's error handling functions.

Diese Methode kann statisch aufgerufen werden, dies wird aber einen E_STRICT-Fehler hervorrufen.

Auch wenn fehlerhaftes HTML erfolgreich laden sollte, kann diese Funktion dennoch E_WARNING Fehler generieren, wenn sie auf falsches Markup stößt. libxml's Fehlerbehandlungsfunktionen können genutzt werden, um diese Fehler zu behandeln.

Beispiele

Beispiel #1 Creating a Document

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
echo $doc->saveHTML();
?>

Siehe auch

  • DOMDocument::loadHTML() - Load HTML from a string
  • DOMDocument::saveHTML() - Dumps the internal document into a string using HTML formatting
  • DOMDocument::saveHTMLFile() - Dumps the internal document into a file using HTML formatting


Load XML from a string

  • « DOMDocument::loadHTMLFile
  • DOMDocument::normalizeDocument »
  • PHP Manual
  • DOMDocument
  • Load XML from a string

DOMDocument::loadXML

(PHP 5, PHP 7)

DOMDocument::loadXML — Load XML from a string

Beschreibung

public DOMDocument::loadXML ( string $source , int $options = 0 ) : DOMDocument|bool

Loads an XML document from a string.

Parameter-Liste

source

The string containing the XML.

options

Bitwise OR of the libxml option constants.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. If called statically, returns a DOMDocumentIm Fehlerfall wird false zurückgegeben..

Fehler/Exceptions

If an empty string is passed as the source, a warning will be generated. This warning is not generated by libxml and cannot be handled using libxml's error handling functions.

Diese Methode kann statisch aufgerufen werden, dies wird aber einen E_STRICT-Fehler hervorrufen.

Beispiele

Beispiel #1 Creating a Document

<?php
$doc = new DOMDocument();
$doc->loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Beispiel #2 Static invocation of loadXML

<?php
// Issues an E_STRICT error
$doc = DOMDocument::loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Siehe auch

  • DOMDocument::load() - Load XML from a file
  • DOMDocument::save() - Dumps the internal XML tree back into a file
  • DOMDocument::saveXML() - Dumps the internal XML tree back into a string


Normalizes the document

  • « DOMDocument::loadXML
  • DOMDocument::registerNodeClass »
  • PHP Manual
  • DOMDocument
  • Normalizes the document

DOMDocument::normalizeDocument

(PHP 5, PHP 7)

DOMDocument::normalizeDocument — Normalizes the document

Beschreibung

public DOMDocument::normalizeDocument ( ) : void

This method acts as if you saved and then loaded the document, putting the document in a "normal" form.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • » The DOM Specification
  • DOMNode::normalize() - Normalizes the node


Register extended class used to create base node type

  • « DOMDocument::normalizeDocument
  • DOMDocument::relaxNGValidate »
  • PHP Manual
  • DOMDocument
  • Register extended class used to create base node type

DOMDocument::registerNodeClass

(PHP 5 >= 5.2.0, PHP 7)

DOMDocument::registerNodeClass — Register extended class used to create base node type

Beschreibung

public DOMDocument::registerNodeClass ( string $baseClass , string|null $extendedClass ) : bool

This method allows you to register your own extended DOM class to be used afterward by the PHP DOM extension.

This method is not part of the DOM standard.

Parameter-Liste

baseClass

The DOM class that you want to extend. You can find a list of these classes in the chapter introduction.

extendedClass

Your extended class name. If null is provided, any previously registered class extending baseClass will be removed.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Adding a new method to DOMElement to ease our code

<?php

class myElement extends DOMElement {
   function appendElement($name) {
      return $this->appendChild(new myElement($name));
   }
}

class myDocument extends DOMDocument {
   function setRoot($name) {
      return $this->appendChild(new myElement($name));
   }
}

$doc = new myDocument();
$doc->registerNodeClass('DOMElement', 'myElement');

// From now on, adding an element to another costs only one method call !
$root = $doc->setRoot('root');
$child = $root->appendElement('child');
$child->setAttribute('foo', 'bar');

echo $doc->saveXML();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0"?>
<root><child foo="bar"/></root>

Beispiel #2 Retrieving elements as custom class

<?php
class myElement extends DOMElement {
    public function __toString() {
        return $this->nodeValue;
    }
}

$doc = new DOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");
$doc->registerNodeClass("DOMElement", "myElement");

$element = $doc->getElementsByTagName("child")->item(0);
var_dump(get_class($element));

// And take advantage of the __toString method..
echo $element;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(9) "myElement"
text in child

Beispiel #3 Retrieving owner document

When instantiating a custom DOMDocument the ownerDocument property will refer to the instantiated class, meaning there is no need (and in fact not possible) to use DOMDocument::registerNodeClass() with DOMDocument

<?php
class myDOMDocument extends DOMDocument {
}

class myOtherDOMDocument extends DOMDocument {
}

// Create myDOMDocument with some XML
$doc = new myDOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");

$child = $doc->getElementsByTagName("child")->item(0);

// The current owner of the node is myDOMDocument
var_dump(get_class($child->ownerDocument));

// Import a node from myDOMDocument
$newdoc = new myOtherDOMDocument;
$child = $newdoc->importNode($child);

// The new owner of the node has changed to myOtherDOMDocument
var_dump(get_class($child->ownerDocument));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(13) "myDOMDocument"
string(18) "myOtherDOMDocument"

Beispiel #4 Custom objects are transient

Achtung

Objects of the registered node classes are transient, i.e. they are destroyed when they are no longer referenced from PHP code, and recreated when being retrieved again. That implies that custom property values will be lost after recreation.

<?php
class MyDOMElement extends DOMElement
{
    public $myProp = 'default value';
}

$doc = new DOMDocument();
$doc->registerNodeClass('DOMElement', 'MyDOMElement');

$node = $doc->createElement('a');
$node->myProp = 'modified value';
$doc->appendChild($node);

echo $doc->childNodes[0]->myProp, PHP_EOL;
unset($node);
echo $doc->childNodes[0]->myProp, PHP_EOL;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

modified value
default value


Performs relaxNG validation on the document

  • « DOMDocument::registerNodeClass
  • DOMDocument::relaxNGValidateSource »
  • PHP Manual
  • DOMDocument
  • Performs relaxNG validation on the document

DOMDocument::relaxNGValidate

(PHP 5, PHP 7)

DOMDocument::relaxNGValidate — Performs relaxNG validation on the document

Beschreibung

public DOMDocument::relaxNGValidate ( string $filename ) : bool

Performs » relaxNG validation on the document based on the given RNG schema.

Parameter-Liste

filename

The RNG file.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • DOMDocument::relaxNGValidateSource() - Performs relaxNG validation on the document
  • DOMDocument::schemaValidate() - Validates a document based on a schema. Only XML Schema 1.0 is supported.
  • DOMDocument::schemaValidateSource() - Validates a document based on a schema
  • DOMDocument::validate() - Validates the document based on its DTD


Performs relaxNG validation on the document

  • « DOMDocument::relaxNGValidate
  • DOMDocument::save »
  • PHP Manual
  • DOMDocument
  • Performs relaxNG validation on the document

DOMDocument::relaxNGValidateSource

(PHP 5, PHP 7)

DOMDocument::relaxNGValidateSource — Performs relaxNG validation on the document

Beschreibung

public DOMDocument::relaxNGValidateSource ( string $source ) : bool

Performs » relaxNG validation on the document based on the given RNG source.

Parameter-Liste

source

A string containing the RNG schema.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • DOMDocument::relaxNGValidate() - Performs relaxNG validation on the document
  • DOMDocument::schemaValidate() - Validates a document based on a schema. Only XML Schema 1.0 is supported.
  • DOMDocument::schemaValidateSource() - Validates a document based on a schema
  • DOMDocument::validate() - Validates the document based on its DTD


Dumps the internal XML tree back into a file

  • « DOMDocument::relaxNGValidateSource
  • DOMDocument::saveHTML »
  • PHP Manual
  • DOMDocument
  • Dumps the internal XML tree back into a file

DOMDocument::save

(PHP 5, PHP 7)

DOMDocument::save — Dumps the internal XML tree back into a file

Beschreibung

public DOMDocument::save ( string $filename , int $options = 0 ) : int|false

Creates an XML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.

Parameter-Liste

filename

The path to the saved XML document.

options

Additional Options. Currently only LIBXML_NOEMPTYTAG is supported.

Rückgabewerte

Returns the number of bytes written or false if an error occurred.

Beispiele

Beispiel #1 Saving a DOM tree into a file

<?php

$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo 'Wrote: ' . $doc->save("/tmp/test.xml") . ' bytes'; // Wrote: 72 bytes

?>

Siehe auch

  • DOMDocument::saveXML() - Dumps the internal XML tree back into a string
  • DOMDocument::load() - Load XML from a file
  • DOMDocument::loadXML() - Load XML from a string


Dumps the internal document into a string using HTML formatting

  • « DOMDocument::save
  • DOMDocument::saveHTMLFile »
  • PHP Manual
  • DOMDocument
  • Dumps the internal document into a string using HTML formatting

DOMDocument::saveHTML

(PHP 5, PHP 7)

DOMDocument::saveHTML — Dumps the internal document into a string using HTML formatting

Beschreibung

public DOMDocument::saveHTML ( DOMNode|null $node = null ) : string|false

Creates an HTML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.

Parameter-Liste

node

Optional parameter to output a subset of the document.

Rückgabewerte

Returns the HTML, or false if an error occurred.

Beispiele

Beispiel #1 Saving a HTML tree into a string

<?php

$doc = new DOMDocument('1.0');

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo $doc->saveHTML();

?>

Siehe auch

  • DOMDocument::saveHTMLFile() - Dumps the internal document into a file using HTML formatting
  • DOMDocument::loadHTML() - Load HTML from a string
  • DOMDocument::loadHTMLFile() - Load HTML from a file


Dumps the internal document into a file using HTML formatting

  • « DOMDocument::saveHTML
  • DOMDocument::saveXML »
  • PHP Manual
  • DOMDocument
  • Dumps the internal document into a file using HTML formatting

DOMDocument::saveHTMLFile

(PHP 5, PHP 7)

DOMDocument::saveHTMLFile — Dumps the internal document into a file using HTML formatting

Beschreibung

public DOMDocument::saveHTMLFile ( string $filename ) : int|false

Creates an HTML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.

Parameter-Liste

filename

The path to the saved HTML document.

Rückgabewerte

Returns the number of bytes written or false if an error occurred.

Beispiele

Beispiel #1 Saving a HTML tree into a file

<?php

$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo 'Wrote: ' . $doc->saveHTMLFile("/tmp/test.html") . ' bytes'; // Wrote: 129 bytes

?>

Siehe auch

  • DOMDocument::saveHTML() - Dumps the internal document into a string using HTML formatting
  • DOMDocument::loadHTML() - Load HTML from a string
  • DOMDocument::loadHTMLFile() - Load HTML from a file


Dumps the internal XML tree back into a string

  • « DOMDocument::saveHTMLFile
  • DOMDocument::schemaValidate »
  • PHP Manual
  • DOMDocument
  • Dumps the internal XML tree back into a string

DOMDocument::saveXML

(PHP 5, PHP 7)

DOMDocument::saveXML — Dumps the internal XML tree back into a string

Beschreibung

public DOMDocument::saveXML ( DOMNode|null $node = null , int $options = 0 ) : string|false

Creates an XML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.

Parameter-Liste

node

Use this parameter to output only a specific node without XML declaration rather than the entire document.

options

Additional Options. Currently only LIBXML_NOEMPTYTAG is supported.

Rückgabewerte

Returns the XML, or false if an error occurred.

Fehler/Exceptions

DOM_WRONG_DOCUMENT_ERR

Raised if node is from another document.

Beispiele

Beispiel #1 Saving a DOM tree into a string

<?php

$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo "Saving all the document:\n";
echo $doc->saveXML() . "\n";

echo "Saving only the title part:\n";
echo $doc->saveXML($title);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Saving all the document:
<?xml version="1.0"?>
<book>
  <title>This is the title</title>
</book>

Saving only the title part:
<title>This is the title</title>

Siehe auch

  • DOMDocument::save() - Dumps the internal XML tree back into a file
  • DOMDocument::load() - Load XML from a file
  • DOMDocument::loadXML() - Load XML from a string


Validates a document based on a schema. Only XML Schema 1.0 is supported.

  • « DOMDocument::saveXML
  • DOMDocument::schemaValidateSource »
  • PHP Manual
  • DOMDocument
  • Validates a document based on a schema. Only XML Schema 1.0 is supported.

DOMDocument::schemaValidate

(PHP 5, PHP 7)

DOMDocument::schemaValidate — Validates a document based on a schema. Only XML Schema 1.0 is supported.

Beschreibung

public DOMDocument::schemaValidate ( string $filename , int $flags = 0 ) : bool

Validates a document based on the given schema file.

Parameter-Liste

filename

The path to the schema.

flags

A bitmask of Libxml schema validation flags. Currently the only supported value is LIBXML_SCHEMA_CREATE. Available since PHP 5.5.2 and Libxml 2.6.14.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.5.2 | Added the flags parameter

Siehe auch

  • DOMDocument::schemaValidateSource() - Validates a document based on a schema
  • DOMDocument::relaxNGValidate() - Performs relaxNG validation on the document
  • DOMDocument::relaxNGValidateSource() - Performs relaxNG validation on the document
  • DOMDocument::validate() - Validates the document based on its DTD


Validates a document based on a schema

  • « DOMDocument::schemaValidate
  • DOMDocument::validate »
  • PHP Manual
  • DOMDocument
  • Validates a document based on a schema

DOMDocument::schemaValidateSource

(PHP 5, PHP 7)

DOMDocument::schemaValidateSource — Validates a document based on a schema

Beschreibung

public DOMDocument::schemaValidateSource ( string $source , int $flags = 0 ) : bool

Validates a document based on a schema defined in the given string.

Parameter-Liste

source

A string containing the schema.

flags

A bitmask of Libxml schema validation flags. Currently the only supported value is LIBXML_SCHEMA_CREATE. Available since PHP 5.5.2 and Libxml 2.6.14.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
5.5.2 | Added the flags parameter

Siehe auch

  • DOMDocument::schemaValidate() - Validates a document based on a schema. Only XML Schema 1.0 is supported.
  • DOMDocument::relaxNGValidate() - Performs relaxNG validation on the document
  • DOMDocument::relaxNGValidateSource() - Performs relaxNG validation on the document
  • DOMDocument::validate() - Validates the document based on its DTD


Validates the document based on its DTD

  • « DOMDocument::schemaValidateSource
  • DOMDocument::xinclude »
  • PHP Manual
  • DOMDocument
  • Validates the document based on its DTD

DOMDocument::validate

(PHP 5, PHP 7)

DOMDocument::validate — Validates the document based on its DTD

Beschreibung

public DOMDocument::validate ( ) : bool

Validates the document based on its DTD.

You can also use the validateOnParse property of DOMDocument to make a DTD validation.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. If the document has no DTD attached, this method will return false.

Beispiele

Beispiel #1 Example of DTD validation

<?php
$dom = new DOMDocument;
$dom->load('book.xml');
if ($dom->validate()) {
    echo "This document is valid!\n";
}
?>

You can also validate your XML file while loading it:

<?php
$dom = new DOMDocument;
$dom->validateOnParse = true;
$dom->load('book.xml');
?>

Siehe auch

  • DOMDocument::schemaValidate() - Validates a document based on a schema. Only XML Schema 1.0 is supported.
  • DOMDocument::schemaValidateSource() - Validates a document based on a schema
  • DOMDocument::relaxNGValidate() - Performs relaxNG validation on the document
  • DOMDocument::relaxNGValidateSource() - Performs relaxNG validation on the document


Substitutes XIncludes in a DOMDocument Object

  • « DOMDocument::validate
  • DOMDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Substitutes XIncludes in a DOMDocument Object

DOMDocument::xinclude

(PHP 5, PHP 7)

DOMDocument::xinclude — Substitutes XIncludes in a DOMDocument Object

Beschreibung

public DOMDocument::xinclude ( int $options = 0 ) : int|false

This method substitutes » XIncludes in a DOMDocument object.

Hinweis:

Due to libxml2 automatically resolving entities, this method will produce unexpected results if the included XML file have an attached DTD.

Parameter-Liste

options

libxml parameters. Available since PHP 5.1.0 and Libxml 2.6.7.

Rückgabewerte

Returns the number of XIncludes in the document, -1 if some processing failed, or false if there were no substitutions.

Beispiele

Beispiel #1 DOMDocument::xinclude() example

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
 <title>Books of the other guy..</title>
 <para>
  <xi:include href="book.xml">
   <xi:fallback>
    <error>xinclude: book.xml not found</error>
   </xi:fallback>
  </xi:include>
 </para>
</chapter>
EOD;

$dom = new DOMDocument;

// let's have a nice output
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;

// load the XML string defined above
$dom->loadXML($xml);

// substitute xincludes
$dom->xinclude();

echo $dom->saveXML();

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

<?xml version="1.0"?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
  <title>Books of the other guy..</title>
  <para>
    <row xml:base="/home/didou/book.xml">
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
  </para>
</chapter>


The DOMDocumentFragment class

(PHP 5, PHP 7)

Klassenbeschreibung

DOMDocumentFragment extends DOMNode {
/* Eigenschaften */
/* Geerbte Eigenschaften */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Methoden */
public appendXML ( string $data ) : bool
/* Geerbte Methoden */
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Inhaltsverzeichnis

  • DOMDocumentFragment::appendXML — Append raw XML data


Append raw XML data

  • « DOMDocumentFragment
  • DOMDocumentType »
  • PHP Manual
  • DOMDocumentFragment
  • Append raw XML data

DOMDocumentFragment::appendXML

(PHP 5 >= 5.1.0, PHP 7)

DOMDocumentFragment::appendXML — Append raw XML data

Beschreibung

public DOMDocumentFragment::appendXML ( string $data ) : bool

Appends raw XML data to a DOMDocumentFragment.

This method is not part of the DOM standard. It was created as a simpler approach for appending an XML DocumentFragment in a DOMDocument.

If you want to stick to the standards, you will have to create a temporary DOMDocument with a dummy root and then loop through the child nodes of the root of your XML data to append them.

Parameter-Liste

data

XML to append.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Appending XML data to your document

<?php
$doc = new DOMDocument();
$doc->loadXML("<root/>");
$f = $doc->createDocumentFragment();
$f->appendXML("<foo>text</foo><bar>text2</bar>");
$doc->documentElement->appendChild($f);
echo $doc->saveXML();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0"?>
<root><foo>text</foo><bar>text2</bar></root>


The DOMDocumentType class

(PHP 5, PHP 7)

Einführung

Each DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object.

Klassenbeschreibung

DOMDocumentType extends DOMNode {
/* Eigenschaften */
public readonly string $publicId ;
public readonly string $systemId ;
public readonly string $name ;
public readonly DOMNamedNodeMap $entities ;
public readonly DOMNamedNodeMap $notations ;
public readonly string $internalSubset ;
/* Geerbte Eigenschaften */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Geerbte Methoden */
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Eigenschaften

publicId

The public identifier of the external subset.

systemId

The system identifier of the external subset. This may be an absolute URI or not.

name

The name of DTD; i.e., the name immediately following the DOCTYPE keyword.

entities

A DOMNamedNodeMap containing the general entities, both external and internal, declared in the DTD.

notations

A DOMNamedNodeMap containing the notations declared in the DTD.

internalSubset

The internal subset as a string, or null if there is none. This does not contain the delimiting square brackets.


The DOMElement class

(PHP 5, PHP 7)

Klassenbeschreibung

DOMElement extends DOMNode {
/* Eigenschaften */
public readonly bool $schemaTypeInfo ;
public readonly string $tagName ;
/* Geerbte Eigenschaften */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Methoden */
public __construct ( string $qualifiedName , string|null $value = null , string $namespace = "" )
public getAttribute ( string $qualifiedName ) : string
public getAttributeNode ( string $qualifiedName ) : DOMAttr|DOMNamespaceNode|false
public getAttributeNodeNS ( string|null $namespace , string $localName ) : DOMAttr|DOMNamespaceNode|null
public getAttributeNS ( string|null $namespace , string $localName ) : string
public getElementsByTagName ( string $qualifiedName ) : DOMNodeList
public getElementsByTagNameNS ( string $namespace , string $localName ) : DOMNodeList
public hasAttribute ( string $qualifiedName ) : bool
public hasAttributeNS ( string|null $namespace , string $localName ) : bool
public removeAttribute ( string $qualifiedName ) : bool
public removeAttributeNode ( DOMAttr $attr ) : DOMAttr|false
public removeAttributeNS ( string|null $namespace , string $localName ) : void
public setAttribute ( string $qualifiedName , string $value ) : DOMAttr|bool
public setAttributeNode ( DOMAttr $attr ) : DOMAttr|null|false
public setAttributeNodeNS ( DOMAttr $attr ) : DOMAttr|null|false
public setAttributeNS ( string|null $namespace , string $qualifiedName , string $value ) : void
public setIdAttribute ( string $qualifiedName , bool $isId ) : void
public setIdAttributeNode ( DOMAttr $attr , bool $isId ) : void
public setIdAttributeNS ( string $namespace , string $qualifiedName , bool $isId ) : void
/* Geerbte Methoden */
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Eigenschaften

schemaTypeInfo

Not implemented yet, always return null

tagName

The element name

Anmerkungen

Hinweis:

Die DOM Extension verwendet die UTF-8 Kodierung. Es kann utf8_encode() und utf8_decode() verwendet werden, um mit Texten in der ISO-8859-1 Kodierung zu arbeiten, oder iconv für andere Zeichenkodierungen.

Inhaltsverzeichnis

  • DOMElement::__construct — Creates a new DOMElement object
  • DOMElement::getAttribute — Returns value of attribute
  • DOMElement::getAttributeNode — Returns attribute node
  • DOMElement::getAttributeNodeNS — Returns attribute node
  • DOMElement::getAttributeNS — Returns value of attribute
  • DOMElement::getElementsByTagName — Gets elements by tagname
  • DOMElement::getElementsByTagNameNS — Get elements by namespaceURI and localName
  • DOMElement::hasAttribute — Checks to see if attribute exists
  • DOMElement::hasAttributeNS — Checks to see if attribute exists
  • DOMElement::removeAttribute — Removes attribute
  • DOMElement::removeAttributeNode — Removes attribute
  • DOMElement::removeAttributeNS — Removes attribute
  • DOMElement::setAttribute — Adds new attribute
  • DOMElement::setAttributeNode — Adds new attribute node to element
  • DOMElement::setAttributeNodeNS — Adds new attribute node to element
  • DOMElement::setAttributeNS — Adds new attribute
  • DOMElement::setIdAttribute — Declares the attribute specified by name to be of type ID
  • DOMElement::setIdAttributeNode — Declares the attribute specified by node to be of type ID
  • DOMElement::setIdAttributeNS — Declares the attribute specified by local name and namespace URI to be of type ID


Creates a new DOMElement object

  • « DOMElement
  • DOMElement::getAttribute »
  • PHP Manual
  • DOMElement
  • Creates a new DOMElement object

DOMElement::__construct

(PHP 5, PHP 7)

DOMElement::__construct — Creates a new DOMElement object

Beschreibung

public DOMElement::__construct ( string $qualifiedName , string|null $value = null , string $namespace = "" )

Creates a new DOMElement object. This object is read only. It may be appended to a document, but additional nodes may not be appended to this node until the node is associated with a document. To create a writeable node, use DOMDocument::createElement or DOMDocument::createElementNS.

Parameter-Liste

qualifiedName

The tag name of the element. When also passing in namespaceURI, the element name may take a prefix to be associated with the URI.

value

The value of the element.

namespace

A namespace URI to create the element within a specific namespace.

Beispiele

Beispiel #1 Creating a new DOMElement

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$element_ns = new DOMElement('pr:node1', 'thisvalue', 'http://xyz');
$element->appendChild($element_ns);
echo $dom->saveXML(); /* <?xml version="1.0" encoding="utf-8"?>
<root><pr:node1 xmlns:pr="http://xyz">thisvalue</pr:node1></root> */

?>

Siehe auch

  • DOMDocument::createElement() - Create new element node
  • DOMDocument::createElementNS() - Create new element node with an associated namespace


Returns value of attribute

  • « DOMElement::__construct
  • DOMElement::getAttributeNode »
  • PHP Manual
  • DOMElement
  • Returns value of attribute

DOMElement::getAttribute

(PHP 5, PHP 7)

DOMElement::getAttribute — Returns value of attribute

Beschreibung

public DOMElement::getAttribute ( string $qualifiedName ) : string

Gets the value of the attribute with name qualifiedName for the current node.

Parameter-Liste

qualifiedName

The name of the attribute.

Rückgabewerte

The value of the attribute, or an empty string if no attribute with the given qualifiedName is found.

Siehe auch

  • DOMElement::hasAttribute() - Checks to see if attribute exists
  • DOMElement::setAttribute() - Adds new attribute
  • DOMElement::removeAttribute() - Removes attribute


Returns attribute node

  • « DOMElement::getAttribute
  • DOMElement::getAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Returns attribute node

DOMElement::getAttributeNode

(PHP 5, PHP 7)

DOMElement::getAttributeNode — Returns attribute node

Beschreibung

public DOMElement::getAttributeNode ( string $qualifiedName ) : DOMAttr|DOMNamespaceNode|false

Returns the attribute node with name qualifiedName for the current element.

Parameter-Liste

qualifiedName

The name of the attribute.

Rückgabewerte

The attribute node. Note that for XML namespace declarations (xmlns and xmlns:* attributes) an instance of DOMNameSpaceNode is returned instead of a DOMAttr.

Siehe auch

  • DOMElement::hasAttribute() - Checks to see if attribute exists
  • DOMElement::setAttributeNode() - Adds new attribute node to element
  • DOMElement::removeAttributeNode() - Removes attribute


Returns attribute node

  • « DOMElement::getAttributeNode
  • DOMElement::getAttributeNS »
  • PHP Manual
  • DOMElement
  • Returns attribute node

DOMElement::getAttributeNodeNS

(PHP 5, PHP 7)

DOMElement::getAttributeNodeNS — Returns attribute node

Beschreibung

public DOMElement::getAttributeNodeNS ( string|null $namespace , string $localName ) : DOMAttr|DOMNamespaceNode|null

Returns the attribute node in namespace namespace with local name localName for the current node.

Parameter-Liste

namespace

The namespace URI.

localName

The local name.

Rückgabewerte

The attribute node. Note that for XML namespace declarations (xmlns and xmlns:* attributes) an instance of DOMNameSpaceNode is returned instead of a DOMAttr object.

Siehe auch

  • DOMElement::hasAttributeNS() - Checks to see if attribute exists
  • DOMElement::setAttributeNodeNS() - Adds new attribute node to element
  • DOMElement::removeAttributeNode() - Removes attribute


Returns value of attribute

  • « DOMElement::getAttributeNodeNS
  • DOMElement::getElementsByTagName »
  • PHP Manual
  • DOMElement
  • Returns value of attribute

DOMElement::getAttributeNS

(PHP 5, PHP 7)

DOMElement::getAttributeNS — Returns value of attribute

Beschreibung

public DOMElement::getAttributeNS ( string|null $namespace , string $localName ) : string

Gets the value of the attribute in namespace namespace with local name localName for the current node.

Parameter-Liste

namespace

The namespace URI.

localName

The local name.

Rückgabewerte

The value of the attribute, or an empty string if no attribute with the given localName and namespace is found.

Siehe auch

  • DOMElement::hasAttributeNS() - Checks to see if attribute exists
  • DOMElement::setAttributeNS() - Adds new attribute
  • DOMElement::removeAttributeNS() - Removes attribute


Gets elements by tagname

  • « DOMElement::getAttributeNS
  • DOMElement::getElementsByTagNameNS »
  • PHP Manual
  • DOMElement
  • Gets elements by tagname

DOMElement::getElementsByTagName

(PHP 5, PHP 7)

DOMElement::getElementsByTagName — Gets elements by tagname

Beschreibung

public DOMElement::getElementsByTagName ( string $qualifiedName ) : DOMNodeList

This function returns a new instance of the class DOMNodeList of all descendant elements with a given tag qualifiedName, in the order in which they are encountered in a preorder traversal of this element tree.

Parameter-Liste

qualifiedName

The tag name. Use * to return all elements within the element tree.

Rückgabewerte

This function returns a new instance of the class DOMNodeList of all matched elements.

Siehe auch

  • DOMElement::getElementsByTagNameNS() - Get elements by namespaceURI and localName


Get elements by namespaceURI and localName

  • « DOMElement::getElementsByTagName
  • DOMElement::hasAttribute »
  • PHP Manual
  • DOMElement
  • Get elements by namespaceURI and localName

DOMElement::getElementsByTagNameNS

(PHP 5, PHP 7)

DOMElement::getElementsByTagNameNS — Get elements by namespaceURI and localName

Beschreibung

public DOMElement::getElementsByTagNameNS ( string $namespace , string $localName ) : DOMNodeList

This function fetch all the descendant elements with a given localName and namespace.

Parameter-Liste

namespace

The namespace URI.

localName

The local name. Use * to return all elements within the element tree.

Rückgabewerte

This function returns a new instance of the class DOMNodeList of all matched elements in the order in which they are encountered in a preorder traversal of this element tree.

Siehe auch

  • DOMElement::getElementsByTagName() - Gets elements by tagname


Checks to see if attribute exists

  • « DOMElement::getElementsByTagNameNS
  • DOMElement::hasAttributeNS »
  • PHP Manual
  • DOMElement
  • Checks to see if attribute exists

DOMElement::hasAttribute

(PHP 5, PHP 7)

DOMElement::hasAttribute — Checks to see if attribute exists

Beschreibung

public DOMElement::hasAttribute ( string $qualifiedName ) : bool

Indicates whether attribute named qualifiedName exists as a member of the element.

Parameter-Liste

qualifiedName

The attribute name.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • DOMElement::hasAttributeNS() - Checks to see if attribute exists
  • DOMElement::getAttribute() - Returns value of attribute
  • DOMElement::setAttribute() - Adds new attribute
  • DOMElement::removeAttribute() - Removes attribute


Checks to see if attribute exists

  • « DOMElement::hasAttribute
  • DOMElement::removeAttribute »
  • PHP Manual
  • DOMElement
  • Checks to see if attribute exists

DOMElement::hasAttributeNS

(PHP 5, PHP 7)

DOMElement::hasAttributeNS — Checks to see if attribute exists

Beschreibung

public DOMElement::hasAttributeNS ( string|null $namespace , string $localName ) : bool

Indicates whether attribute in namespace namespace named localName exists as a member of the element.

Parameter-Liste

namespace

The namespace URI.

localName

The local name.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • DOMElement::hasAttribute() - Checks to see if attribute exists
  • DOMElement::getAttributeNS() - Returns value of attribute
  • DOMElement::setAttributeNS() - Adds new attribute
  • DOMElement::removeAttributeNS() - Removes attribute


Removes attribute

  • « DOMElement::hasAttributeNS
  • DOMElement::removeAttributeNode »
  • PHP Manual
  • DOMElement
  • Removes attribute

DOMElement::removeAttribute

(PHP 5, PHP 7)

DOMElement::removeAttribute — Removes attribute

Beschreibung

public DOMElement::removeAttribute ( string $qualifiedName ) : bool

Removes attribute named qualifiedName from the element.

Parameter-Liste

qualifiedName

The name of the attribute.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

Siehe auch

  • DOMElement::hasAttribute() - Checks to see if attribute exists
  • DOMElement::getAttribute() - Returns value of attribute
  • DOMElement::setAttribute() - Adds new attribute


Removes attribute

  • « DOMElement::removeAttribute
  • DOMElement::removeAttributeNS »
  • PHP Manual
  • DOMElement
  • Removes attribute

DOMElement::removeAttributeNode

(PHP 5, PHP 7)

DOMElement::removeAttributeNode — Removes attribute

Beschreibung

public DOMElement::removeAttributeNode ( DOMAttr $attr ) : DOMAttr|false

Removes attribute attr from the element.

Parameter-Liste

attr

The attribute node.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

DOM_NOT_FOUND_ERROR

Raised if attr is not an attribute of the element.

Siehe auch

  • DOMElement::hasAttribute() - Checks to see if attribute exists
  • DOMElement::getAttributeNode() - Returns attribute node
  • DOMElement::setAttributeNode() - Adds new attribute node to element


Removes attribute

  • « DOMElement::removeAttributeNode
  • DOMElement::setAttribute »
  • PHP Manual
  • DOMElement
  • Removes attribute

DOMElement::removeAttributeNS

(PHP 5, PHP 7)

DOMElement::removeAttributeNS — Removes attribute

Beschreibung

public DOMElement::removeAttributeNS ( string|null $namespace , string $localName ) : void

Removes attribute localName in namespace namespace from the element.

Parameter-Liste

namespace

The namespace URI.

localName

The local name.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

Siehe auch

  • DOMElement::hasAttributeNS() - Checks to see if attribute exists
  • DOMElement::getAttributeNS() - Returns value of attribute
  • DOMElement::setAttributeNS() - Adds new attribute


Adds new attribute

  • « DOMElement::removeAttributeNS
  • DOMElement::setAttributeNode »
  • PHP Manual
  • DOMElement
  • Adds new attribute

DOMElement::setAttribute

(PHP 5, PHP 7)

DOMElement::setAttribute — Adds new attribute

Beschreibung

public DOMElement::setAttribute ( string $qualifiedName , string $value ) : DOMAttr|bool

Sets an attribute with name qualifiedName to the given value. If the attribute does not exist, it will be created.

Parameter-Liste

qualifiedName

The name of the attribute.

value

The value of the attribute.

Rückgabewerte

The new DOMAttr or false if an error occurred.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

Beispiele

Beispiel #1 Setting an attribute

<?php
$doc = new DOMDocument("1.0");
$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);
$newnode->setAttribute("align", "left");
?>

Siehe auch

  • DOMElement::hasAttribute() - Checks to see if attribute exists
  • DOMElement::getAttribute() - Returns value of attribute
  • DOMElement::removeAttribute() - Removes attribute


Adds new attribute node to element

  • « DOMElement::setAttribute
  • DOMElement::setAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Adds new attribute node to element

DOMElement::setAttributeNode

(PHP 5, PHP 7)

DOMElement::setAttributeNode — Adds new attribute node to element

Beschreibung

public DOMElement::setAttributeNode ( DOMAttr $attr ) : DOMAttr|null|false

Adds new attribute node attr to element.

Parameter-Liste

attr

The attribute node.

Rückgabewerte

Returns old node if the attribute has been replaced or null.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

Siehe auch

  • DOMElement::hasAttribute() - Checks to see if attribute exists
  • DOMElement::getAttributeNode() - Returns attribute node
  • DOMElement::removeAttributeNode() - Removes attribute


Adds new attribute node to element

  • « DOMElement::setAttributeNode
  • DOMElement::setAttributeNS »
  • PHP Manual
  • DOMElement
  • Adds new attribute node to element

DOMElement::setAttributeNodeNS

(PHP 5, PHP 7)

DOMElement::setAttributeNodeNS — Adds new attribute node to element

Beschreibung

public DOMElement::setAttributeNodeNS ( DOMAttr $attr ) : DOMAttr|null|false

Adds new attribute node attr to element.

Parameter-Liste

attr

The attribute node.

Rückgabewerte

Returns the old node if the attribute has been replaced.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

Siehe auch

  • DOMElement::hasAttributeNS() - Checks to see if attribute exists
  • DOMElement::getAttributeNodeNS() - Returns attribute node
  • DOMElement::removeAttributeNode() - Removes attribute


Adds new attribute

  • « DOMElement::setAttributeNodeNS
  • DOMElement::setIdAttribute »
  • PHP Manual
  • DOMElement
  • Adds new attribute

DOMElement::setAttributeNS

(PHP 5, PHP 7)

DOMElement::setAttributeNS — Adds new attribute

Beschreibung

public DOMElement::setAttributeNS ( string|null $namespace , string $qualifiedName , string $value ) : void

Sets an attribute with namespace namespace and name name to the given value. If the attribute does not exist, it will be created.

Parameter-Liste

namespace

The namespace URI.

qualifiedName

The qualified name of the attribute, as prefix:tagname.

value

The value of the attribute.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

DOM_NAMESPACE_ERR

Raised if qualifiedName is a malformed qualified name, or if qualifiedName has a prefix and namespace is null.

Siehe auch

  • DOMElement::hasAttributeNS() - Checks to see if attribute exists
  • DOMElement::getAttributeNS() - Returns value of attribute
  • DOMElement::removeAttributeNS() - Removes attribute


Declares the attribute specified by name to be of type ID

  • « DOMElement::setAttributeNS
  • DOMElement::setIdAttributeNode »
  • PHP Manual
  • DOMElement
  • Declares the attribute specified by name to be of type ID

DOMElement::setIdAttribute

(PHP 5, PHP 7)

DOMElement::setIdAttribute — Declares the attribute specified by name to be of type ID

Beschreibung

public DOMElement::setIdAttribute ( string $qualifiedName , bool $isId ) : void

Declares the attribute qualifiedName to be of type ID.

Parameter-Liste

qualifiedName

The name of the attribute.

isId

Set it to true if you want qualifiedName to be of type ID, false otherwise.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

DOM_NOT_FOUND

Raised if qualifiedName is not an attribute of this element.

Siehe auch

  • DOMDocument::getElementById() - Searches for an element with a certain id
  • DOMElement::setIdAttributeNode() - Declares the attribute specified by node to be of type ID
  • DOMElement::setIdAttributeNS() - Declares the attribute specified by local name and namespace URI to be of type ID


Declares the attribute specified by node to be of type ID

  • « DOMElement::setIdAttribute
  • DOMElement::setIdAttributeNS »
  • PHP Manual
  • DOMElement
  • Declares the attribute specified by node to be of type ID

DOMElement::setIdAttributeNode

(PHP 5, PHP 7)

DOMElement::setIdAttributeNode — Declares the attribute specified by node to be of type ID

Beschreibung

public DOMElement::setIdAttributeNode ( DOMAttr $attr , bool $isId ) : void

Declares the attribute specified by attr to be of type ID.

Parameter-Liste

attr

The attribute node.

isId

Set it to true if you want name to be of type ID, false otherwise.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

DOM_NOT_FOUND

Raised if name is not an attribute of this element.

Siehe auch

  • DOMDocument::getElementById() - Searches for an element with a certain id
  • DOMElement::setIdAttribute() - Declares the attribute specified by name to be of type ID
  • DOMElement::setIdAttributeNS() - Declares the attribute specified by local name and namespace URI to be of type ID


Declares the attribute specified by local name and namespace URI to be of type ID

  • « DOMElement::setIdAttributeNode
  • DOMEntity »
  • PHP Manual
  • DOMElement
  • Declares the attribute specified by local name and namespace URI to be of type ID

DOMElement::setIdAttributeNS

(PHP 5, PHP 7)

DOMElement::setIdAttributeNS — Declares the attribute specified by local name and namespace URI to be of type ID

Beschreibung

public DOMElement::setIdAttributeNS ( string $namespace , string $qualifiedName , bool $isId ) : void

Declares the attribute specified by qualifiedName and namespace to be of type ID.

Parameter-Liste

namespace

The namespace URI of the attribute.

qualifiedName

The local name of the attribute, as prefix:tagname.

isId

Set it to true if you want name to be of type ID, false otherwise.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

DOM_NOT_FOUND

Raised if name is not an attribute of this element.

Siehe auch

  • DOMDocument::getElementById() - Searches for an element with a certain id
  • DOMElement::setIdAttribute() - Declares the attribute specified by name to be of type ID
  • DOMElement::setIdAttributeNode() - Declares the attribute specified by node to be of type ID


The DOMEntity class

(PHP 5, PHP 7)

Einführung

This interface represents a known entity, either parsed or unparsed, in an XML document.

Klassenbeschreibung

DOMEntity extends DOMNode {
/* Eigenschaften */
public readonly string $publicId ;
public readonly string $systemId ;
public readonly string $notationName ;
public string $actualEncoding ;
public readonly string $encoding ;
public readonly string $version ;
/* Geerbte Eigenschaften */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Geerbte Methoden */
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Eigenschaften

publicId

The public identifier associated with the entity if specified, and null otherwise.

systemId

The system identifier associated with the entity if specified, and null otherwise. This may be an absolute URI or not.

notationName

For unparsed entities, the name of the notation for the entity. For parsed entities, this is null.

actualEncoding

An attribute specifying the encoding used for this entity at the time of parsing, when it is an external parsed entity. This is null if it an entity from the internal subset or if it is not known.

encoding

An attribute specifying, as part of the text declaration, the encoding of this entity, when it is an external parsed entity. This is null otherwise.

version

An attribute specifying, as part of the text declaration, the version number of this entity, when it is an external parsed entity. This is null otherwise.


The DOMEntityReference class

(PHP 5, PHP 7)

Klassenbeschreibung

DOMEntityReference extends DOMNode {
/* Geerbte Eigenschaften */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Methoden */
public __construct ( string $name )
/* Geerbte Methoden */
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Inhaltsverzeichnis

  • DOMEntityReference::__construct — Creates a new DOMEntityReference object


Creates a new DOMEntityReference object

  • « DOMEntityReference
  • DOMException »
  • PHP Manual
  • DOMEntityReference
  • Creates a new DOMEntityReference object

DOMEntityReference::__construct

(PHP 5, PHP 7)

DOMEntityReference::__construct — Creates a new DOMEntityReference object

Beschreibung

public DOMEntityReference::__construct ( string $name )

Creates a new DOMEntityReference object.

Parameter-Liste

name

The name of the entity reference.

Beispiele

Beispiel #1 Creating a new DOMEntityReference

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$entity = $element->appendChild(new DOMEntityReference('nbsp'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>&nbsp;</root> */

?>

Siehe auch

  • DOMDocument::createEntityReference() - Create new entity reference node


The DOMException class

(PHP 5, PHP 7)

Einführung

DOM operations raise exceptions under particular circumstances, i.e., when an operation is impossible to perform for logical reasons.

See also Ausnahmebehandlung (Exception-Handling).

Klassenbeschreibung

DOMException extends Exception {
/* Eigenschaften */
public readonly int $code ;
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}

Eigenschaften

code

An integer indicating the type of error generated


The DOMImplementation class

(PHP 5, PHP 7)

Einführung

The DOMImplementation class provides a number of methods for performing operations that are independent of any particular instance of the document object model.

Klassenbeschreibung

DOMImplementation {
/* Eigenschaften */
/* Methoden */
__construct ( )
public createDocument ( string $namespace = "" , string $qualifiedName = "" , DOMDocumentType|null $doctype = null ) : DOMDocument|false
public createDocumentType ( string $qualifiedName , string $publicId = "" , string $systemId = "" ) : DOMDocumentType|false
public hasFeature ( string $feature , string $version ) : bool
}

Inhaltsverzeichnis

  • DOMImplementation::__construct — Creates a new DOMImplementation object
  • DOMImplementation::createDocument — Creates a DOMDocument object of the specified type with its document element
  • DOMImplementation::createDocumentType — Creates an empty DOMDocumentType object
  • DOMImplementation::hasFeature — Test if the DOM implementation implements a specific feature


Creates a new DOMImplementation object

  • « DOMImplementation
  • DOMImplementation::createDocument »
  • PHP Manual
  • DOMImplementation
  • Creates a new DOMImplementation object

DOMImplementation::__construct

(PHP 5, PHP 7)

DOMImplementation::__construct — Creates a new DOMImplementation object

Beschreibung

DOMImplementation::__construct ( )

Creates a new DOMImplementation object.


Creates a DOMDocument object of the specified type with its document element

  • « DOMImplementation::__construct
  • DOMImplementation::createDocumentType »
  • PHP Manual
  • DOMImplementation
  • Creates a DOMDocument object of the specified type with its document element

DOMImplementation::createDocument

(PHP 5, PHP 7)

DOMImplementation::createDocument — Creates a DOMDocument object of the specified type with its document element

Beschreibung

public DOMImplementation::createDocument
 ( string $namespace = ""
, string $qualifiedName = ""
, DOMDocumentType|null $doctype = null
) : DOMDocument|false

Creates a DOMDocument object of the specified type with its document element.

Parameter-Liste

namespace

The namespace URI of the document element to create.

qualifiedName

The qualified name of the document element to create.

doctype

The type of document to create or null.

Rückgabewerte

A new DOMDocument object. If namespace, qualifiedName, and doctype are null, the returned DOMDocument is empty with no document element

Fehler/Exceptions

DOM_WRONG_DOCUMENT_ERR

Raised if doctype has already been used with a different document or was created from a different implementation.

DOM_NAMESPACE_ERR

Raised if there is an error with the namespace, as determined by namespace and qualifiedName.

Diese Methode kann statisch aufgerufen werden, dies wird aber einen E_STRICT-Fehler hervorrufen.

Changelog

Version | Beschreibung
8.0.0 | doctype is now nullable.

Siehe auch

  • DOMDocument::__construct() - Creates a new DOMDocument object
  • DOMImplementation::createDocumentType() - Creates an empty DOMDocumentType object


Creates an empty DOMDocumentType object

  • « DOMImplementation::createDocument
  • DOMImplementation::hasFeature »
  • PHP Manual
  • DOMImplementation
  • Creates an empty DOMDocumentType object

DOMImplementation::createDocumentType

(PHP 5, PHP 7)

DOMImplementation::createDocumentType — Creates an empty DOMDocumentType object

Beschreibung

public DOMImplementation::createDocumentType ( string $qualifiedName , string $publicId = "" , string $systemId = "" ) : DOMDocumentType|false

Creates an empty DOMDocumentType object. Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur.

Parameter-Liste

qualifiedName

The qualified name of the document type to create.

publicId

The external subset public identifier.

systemId

The external subset system identifier.

Rückgabewerte

A new DOMDocumentType node with its ownerDocument set to null.

Fehler/Exceptions

DOM_NAMESPACE_ERR

Raised if there is an error with the namespace, as determined by qualifiedName.

Diese Methode kann statisch aufgerufen werden, dies wird aber einen E_STRICT-Fehler hervorrufen.

Beispiele

Beispiel #1 Creating a document with an attached DTD

<?php

// Creates an instance of the DOMImplementation class
$imp = new DOMImplementation;

// Creates a DOMDocumentType instance
$dtd = $imp->createDocumentType('graph', '', 'graph.dtd');

// Creates a DOMDocument instance
$dom = $imp->createDocument("", "", $dtd);

// Set other properties
$dom->encoding = 'UTF-8';
$dom->standalone = false;

// Create an empty element
$element = $dom->createElement('graph');

// Append the element
$dom->appendChild($element);

// Retrieve and print the document
echo $dom->saveXML();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE graph SYSTEM "graph.dtd">
<graph/>

Siehe auch

  • DOMImplementation::createDocument() - Creates a DOMDocument object of the specified type with its document element


Test if the DOM implementation implements a specific feature

  • « DOMImplementation::createDocumentType
  • DOMNamedNodeMap »
  • PHP Manual
  • DOMImplementation
  • Test if the DOM implementation implements a specific feature

DOMImplementation::hasFeature

(PHP 5, PHP 7)

DOMImplementation::hasFeature — Test if the DOM implementation implements a specific feature

Beschreibung

public DOMImplementation::hasFeature ( string $feature , string $version ) : bool

Test if the DOM implementation implements a specific feature.

You can find a list of all features in the » Conformance section of the DOM specification.

Parameter-Liste

feature

The feature to test.

version

The version number of the feature to test. In level 2, this can be either 2.0 or 1.0.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Diese Methode kann statisch aufgerufen werden, dies wird aber einen E_STRICT-Fehler hervorrufen.

Beispiele

Beispiel #1 Testing your DOM Implementation

<?php

$features = array(
  'Core'           => 'Core module',
  'XML'            => 'XML module',
  'HTML'           => 'HTML module',
  'Views'          => 'Views module',
  'Stylesheets'    => 'Style Sheets module',
  'CSS'            => 'CSS module',
  'CSS2'           => 'CSS2 module',
  'Events'         => 'Events module',
  'UIEvents'       => 'User interface Events module',
  'MouseEvents'    => 'Mouse Events module',
  'MutationEvents' => 'Mutation Events module',
  'HTMLEvents'     => 'HTML Events module',
  'Range'          => 'Range module',
  'Traversal'      => 'Traversal module'
);

foreach ($features as $key => $name) {
  if (DOMImplementation::hasFeature($key, '2.0')) {
    echo "Has feature $name\n";
  } else {
    echo "Missing feature $name\n";
  }
}

?>

Siehe auch

  • DOMNode::isSupported() - Checks if feature is supported for specified version


The DOMNamedNodeMap class

(PHP 5, PHP 7)

Klassenbeschreibung

DOMNamedNodeMap implements Traversable , Countable {
/* Eigenschaften */
public readonly int $length ;
/* Methoden */
public count ( ) : int|false
public getNamedItem ( string $qualifiedName ) : DOMNode|null
public getNamedItemNS ( string|null $namespace , string $localName ) : DOMNode|null
public item ( int $index ) : DOMNode|null
}

Eigenschaften

length

The number of nodes in the map. The range of valid child node indices is 0 to length - 1 inclusive.

Inhaltsverzeichnis

  • DOMNamedNodeMap::count — Get number of nodes in the map
  • DOMNamedNodeMap::getNamedItem — Retrieves a node specified by name
  • DOMNamedNodeMap::getNamedItemNS — Retrieves a node specified by local name and namespace URI
  • DOMNamedNodeMap::item — Retrieves a node specified by index


Get number of nodes in the map

  • « DOMNamedNodeMap
  • DOMNamedNodeMap::getNamedItem »
  • PHP Manual
  • DOMNamedNodeMap
  • Get number of nodes in the map

DOMNamedNodeMap::count

(PHP 7 >= 7.2.0)

DOMNamedNodeMap::count — Get number of nodes in the map

Beschreibung

public DOMNamedNodeMap::count ( ) : int|false

Gets the number of nodes in the map.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of nodes in the map, which is identical to the length property.


Retrieves a node specified by name

  • « DOMNamedNodeMap::count
  • DOMNamedNodeMap::getNamedItemNS »
  • PHP Manual
  • DOMNamedNodeMap
  • Retrieves a node specified by name

DOMNamedNodeMap::getNamedItem

(PHP 5, PHP 7)

DOMNamedNodeMap::getNamedItem — Retrieves a node specified by name

Beschreibung

public DOMNamedNodeMap::getNamedItem ( string $qualifiedName ) : DOMNode|null

Retrieves a node specified by its nodeName.

Parameter-Liste

qualifiedName

The nodeName of the node to retrieve.

Rückgabewerte

A node (of any type) with the specified nodeName, or null if no node is found.

Siehe auch

  • DOMNamedNodeMap::getNamedItemNS() - Retrieves a node specified by local name and namespace URI


Retrieves a node specified by local name and namespace URI

  • « DOMNamedNodeMap::getNamedItem
  • DOMNamedNodeMap::item »
  • PHP Manual
  • DOMNamedNodeMap
  • Retrieves a node specified by local name and namespace URI

DOMNamedNodeMap::getNamedItemNS

(PHP 5, PHP 7)

DOMNamedNodeMap::getNamedItemNS — Retrieves a node specified by local name and namespace URI

Beschreibung

public DOMNamedNodeMap::getNamedItemNS ( string|null $namespace , string $localName ) : DOMNode|null

Retrieves a node specified by localName and namespace.

Parameter-Liste

namespace

The namespace URI of the node to retrieve.

localName

The local name of the node to retrieve.

Rückgabewerte

A node (of any type) with the specified local name and namespace URI, or null if no node is found.

Siehe auch

  • DOMNamedNodeMap::getNamedItem() - Retrieves a node specified by name


Retrieves a node specified by index

  • « DOMNamedNodeMap::getNamedItemNS
  • DOMNode »
  • PHP Manual
  • DOMNamedNodeMap
  • Retrieves a node specified by index

DOMNamedNodeMap::item

(PHP 5, PHP 7)

DOMNamedNodeMap::item — Retrieves a node specified by index

Beschreibung

public DOMNamedNodeMap::item ( int $index ) : DOMNode|null

Retrieves a node specified by index within the DOMNamedNodeMap object.

Parameter-Liste

index

Index into this map.

Rückgabewerte

The node at the indexth position in the map, or null if that is not a valid index (greater than or equal to the number of nodes in this map).


The DOMNode class

(PHP 5, PHP 7)

Klassenbeschreibung

DOMNode {
/* Eigenschaften */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Methoden */
public appendChild ( DOMNode $node ) : DOMNode|false
public C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public cloneNode ( bool $deep = false ) : DOMNode|false
public getLineNo ( ) : int
public getNodePath ( ) : string|null
public hasAttributes ( ) : bool
public hasChildNodes ( ) : bool
public insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public isDefaultNamespace ( string $namespace ) : bool
public isSameNode ( DOMNode $otherNode ) : bool
public isSupported ( string $feature , string $version ) : bool
public lookupNamespaceUri ( string $prefix ) : string
public lookupPrefix ( string $namespace ) : string|null
public normalize ( ) : void
public removeChild ( DOMNode $child ) : DOMNode|false
public replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Eigenschaften

nodeName

Returns the most accurate name for the current node type

nodeValue

The value of this node, depending on its type. Contrary to the W3C specification, the node value of DOMElement nodes is equal to DOMNode::textContent instead of null.

nodeType

Gets the type of the node. One of the predefined XML_xxx_NODE constants

parentNode

The parent of this node. If there is no such node, this returns null.

childNodes

A DOMNodeList that contains all children of this node. If there are no children, this is an empty DOMNodeList.

firstChild

The first child of this node. If there is no such node, this returns null.

lastChild

The last child of this node. If there is no such node, this returns null.

previousSibling

The node immediately preceding this node. If there is no such node, this returns null.

nextSibling

The node immediately following this node. If there is no such node, this returns null.

attributes

A DOMNamedNodeMap containing the attributes of this node (if it is a DOMElement) or null otherwise.

ownerDocument

The DOMDocument object associated with this node, or null if this node is a DOMDOcument

namespaceURI

The namespace URI of this node, or null if it is unspecified.

prefix

The namespace prefix of this node, or null if it is unspecified.

localName

Returns the local part of the qualified name of this node.

baseURI

The absolute base URI of this node or null if the implementation wasn't able to obtain an absolute URI.

textContent

The text content of this node and its descendants.

Anmerkungen

Hinweis:

Die DOM Extension verwendet die UTF-8 Kodierung. Es kann utf8_encode() und utf8_decode() verwendet werden, um mit Texten in der ISO-8859-1 Kodierung zu arbeiten, oder iconv für andere Zeichenkodierungen.

Changelog

Version | Beschreibung
5.6.1 | The textContent property has been made writable (formerly it has been readonly).

Siehe auch

  • » W3C specification of Node

Inhaltsverzeichnis

  • DOMNode::appendChild — Adds new child at the end of the children
  • DOMNode::C14N — Canonicalize nodes to a string
  • DOMNode::C14NFile — Canonicalize nodes to a file
  • DOMNode::cloneNode — Clones a node
  • DOMNode::getLineNo — Get line number for a node
  • DOMNode::getNodePath — Get an XPath for a node
  • DOMNode::hasAttributes — Checks if node has attributes
  • DOMNode::hasChildNodes — Checks if node has children
  • DOMNode::insertBefore — Adds a new child before a reference node
  • DOMNode::isDefaultNamespace — Checks if the specified namespaceURI is the default namespace or not
  • DOMNode::isSameNode — Indicates if two nodes are the same node
  • DOMNode::isSupported — Checks if feature is supported for specified version
  • DOMNode::lookupNamespaceUri — Gets the namespace URI of the node based on the prefix
  • DOMNode::lookupPrefix — Gets the namespace prefix of the node based on the namespace URI
  • DOMNode::normalize — Normalizes the node
  • DOMNode::removeChild — Removes child from list of children
  • DOMNode::replaceChild — Replaces a child


Adds new child at the end of the children

  • « DOMNode
  • DOMNode::C14N »
  • PHP Manual
  • DOMNode
  • Adds new child at the end of the children

DOMNode::appendChild

(PHP 5, PHP 7)

DOMNode::appendChild — Adds new child at the end of the children

Beschreibung

public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false

This function appends a child to an existing list of children or creates a new list of children. The child can be created with e.g. DOMDocument::createElement(), DOMDocument::createTextNode() etc. or simply by using any other node.

When using an existing node it will be moved.

Parameter-Liste

node

The appended child.

Rückgabewerte

The node added.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if this node is readonly or if the previous parent of the node being inserted is readonly.

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of the node node, or if the node to append is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if node was created from a different document than the one that created this node.

Beispiele

The following example will add a new element node to a fresh document.

Beispiel #1 Adding a child

<?php

$doc = new DOMDocument;

$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);

echo $doc->saveXML();
?>

Beispiel #2 Nested children

<?php

$doc = new DOMDocument;

$headNode = $doc->createElement("head");
$doc->appendChild($headNode);

$titleNode = $doc->createElement("title");
$headNode->appendChild($titleNode);

echo $doc->saveXML();
?>

Siehe auch

  • DOMNode::insertBefore() - Adds a new child before a reference node
  • DOMNode::removeChild() - Removes child from list of children
  • DOMNode::replaceChild() - Replaces a child


Canonicalize nodes to a string

  • « DOMNode::appendChild
  • DOMNode::C14NFile »
  • PHP Manual
  • DOMNode
  • Canonicalize nodes to a string

DOMNode::C14N

(PHP 5 >= 5.2.0, PHP 7)

DOMNode::C14N — Canonicalize nodes to a string

Beschreibung

public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false

Canonicalize nodes to a string

Parameter-Liste

exclusive

Enable exclusive parsing of only the nodes matched by the provided xpath or namespace prefixes.

withComments

Retain comments in output.

xpath

An array of xpaths to filter the nodes by.

nsPrefixes

An array of namespace prefixes to filter the nodes by.

Rückgabewerte

Returns canonicalized nodes as a stringIm Fehlerfall wird false zurückgegeben.

Siehe auch

  • DOMNode::C14NFile() - Canonicalize nodes to a file


Canonicalize nodes to a file

  • « DOMNode::C14N
  • DOMNode::cloneNode »
  • PHP Manual
  • DOMNode
  • Canonicalize nodes to a file

DOMNode::C14NFile

(PHP 5 >= 5.2.0, PHP 7)

DOMNode::C14NFile — Canonicalize nodes to a file

Beschreibung

public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false

Canonicalize nodes to a file.

Parameter-Liste

uri

Path to write the output to.

exclusive

Enable exclusive parsing of only the nodes matched by the provided xpath or namespace prefixes.

withComments

Retain comments in output.

xpath

An array of xpaths to filter the nodes by.

nsPrefixes

An array of namespace prefixes to filter the nodes by.

Rückgabewerte

Number of bytes writtenIm Fehlerfall wird false zurückgegeben.

Siehe auch

  • DOMNode::C14N() - Canonicalize nodes to a string


Clones a node

  • « DOMNode::C14NFile
  • DOMNode::getLineNo »
  • PHP Manual
  • DOMNode
  • Clones a node

DOMNode::cloneNode

(PHP 5, PHP 7)

DOMNode::cloneNode — Clones a node

Beschreibung

public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false

Creates a copy of the node.

Parameter-Liste

deep

Indicates whether to copy all descendant nodes. This parameter is defaulted to false.

Rückgabewerte

The cloned node.


Get line number for a node

  • « DOMNode::cloneNode
  • DOMNode::getNodePath »
  • PHP Manual
  • DOMNode
  • Get line number for a node

DOMNode::getLineNo

(PHP 5 >= 5.3.0, PHP 7)

DOMNode::getLineNo — Get line number for a node

Beschreibung

public DOMNode::getLineNo ( ) : int

Gets line number for where the node is defined.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Always returns the line number where the node was defined in.

Beispiele

Beispiel #1 DOMNode::getLineNo() example

<?php
// XML dump for below example
$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<root>
    <node />
</root>
XML;

// Create a new DOMDocument instance
$dom = new DOMDocument;

// Load the XML
$dom->loadXML($xml);

// Print where the line where the 'node' element was defined in
printf('The <node> tag is defined on line %d', $dom->getElementsByTagName('node')->item(0)->getLineNo());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The <node> tag is defined in line 3


Get an XPath for a node

  • « DOMNode::getLineNo
  • DOMNode::hasAttributes »
  • PHP Manual
  • DOMNode
  • Get an XPath for a node

DOMNode::getNodePath

(PHP 5 >= 5.2.0, PHP 7)

DOMNode::getNodePath — Get an XPath for a node

Beschreibung

public DOMNode::getNodePath ( ) : string|null

Gets an XPath location path for the node.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a string containing the XPath, or null in case of an error.

Beispiele

Beispiel #1 DOMNode::getNodePath() example

<?php
// Create a new DOMDocument instance
$dom = new DOMDocument;

// Load the XML
$dom->loadXML('
<fruits>
 <apples>
  <apple>braeburn</apple>
  <apple>granny smith</apple>
 </apples>
 <pears>
  <pear>conference</pear>
 </pears>
</fruits>
');

// Print XPath for each element
foreach ($dom->getElementsByTagName('*') as $node) {
    echo $node->getNodePath() . "\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

/fruits
/fruits/apples
/fruits/apples/apple[1]
/fruits/apples/apple[2]
/fruits/pears
/fruits/pears/pear

Siehe auch

  • DOMXPath


Checks if node has attributes

  • « DOMNode::getNodePath
  • DOMNode::hasChildNodes »
  • PHP Manual
  • DOMNode
  • Checks if node has attributes

DOMNode::hasAttributes

(PHP 5, PHP 7)

DOMNode::hasAttributes — Checks if node has attributes

Beschreibung

public DOMNode::hasAttributes ( ) : bool

This method checks if the node has attributes. The tested node has to be an XML_ELEMENT_NODE.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • DOMNode::hasChildNodes() - Checks if node has children


Checks if node has children

  • « DOMNode::hasAttributes
  • DOMNode::insertBefore »
  • PHP Manual
  • DOMNode
  • Checks if node has children

DOMNode::hasChildNodes

(PHP 5, PHP 7)

DOMNode::hasChildNodes — Checks if node has children

Beschreibung

public DOMNode::hasChildNodes ( ) : bool

This function checks if the node has children.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • DOMNode::hasAttributes() - Checks if node has attributes


Adds a new child before a reference node

  • « DOMNode::hasChildNodes
  • DOMNode::isDefaultNamespace »
  • PHP Manual
  • DOMNode
  • Adds a new child before a reference node

DOMNode::insertBefore

(PHP 5, PHP 7)

DOMNode::insertBefore — Adds a new child before a reference node

Beschreibung

public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false

This function inserts a new node right before the reference node. If you plan to do further modifications on the appended child you must use the returned node.

When using an existing node it will be moved.

Parameter-Liste

node

The new node.

child

The reference node. If not supplied, node is appended to the children.

Rückgabewerte

The inserted node.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if this node is readonly or if the previous parent of the node being inserted is readonly.

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of the node node, or if the node to append is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if node was created from a different document than the one that created this node.

DOM_NOT_FOUND

Raised if child is not a child of this node.

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children


Checks if the specified namespaceURI is the default namespace or not

  • « DOMNode::insertBefore
  • DOMNode::isSameNode »
  • PHP Manual
  • DOMNode
  • Checks if the specified namespaceURI is the default namespace or not

DOMNode::isDefaultNamespace

(PHP 5, PHP 7)

DOMNode::isDefaultNamespace — Checks if the specified namespaceURI is the default namespace or not

Beschreibung

public DOMNode::isDefaultNamespace ( string $namespace ) : bool

Tells whether namespace is the default namespace.

Parameter-Liste

namespace

The namespace URI to look for.

Rückgabewerte

Return true if namespace is the default namespace, false otherwise.


Indicates if two nodes are the same node

  • « DOMNode::isDefaultNamespace
  • DOMNode::isSupported »
  • PHP Manual
  • DOMNode
  • Indicates if two nodes are the same node

DOMNode::isSameNode

(PHP 5, PHP 7)

DOMNode::isSameNode — Indicates if two nodes are the same node

Beschreibung

public DOMNode::isSameNode ( DOMNode $otherNode ) : bool

This function indicates if two nodes are the same node. The comparison is not based on content

Parameter-Liste

otherNode

The compared node.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Checks if feature is supported for specified version

  • « DOMNode::isSameNode
  • DOMNode::lookupNamespaceUri »
  • PHP Manual
  • DOMNode
  • Checks if feature is supported for specified version

DOMNode::isSupported

(PHP 5, PHP 7)

DOMNode::isSupported — Checks if feature is supported for specified version

Beschreibung

public DOMNode::isSupported ( string $feature , string $version ) : bool

Checks if the asked feature is supported for the specified version.

Parameter-Liste

feature

The feature to test. See the example of DOMImplementation::hasFeature() for a list of features.

version

The version number of the feature to test.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • DOMImplementation::hasFeature() - Test if the DOM implementation implements a specific feature


Gets the namespace URI of the node based on the prefix

  • « DOMNode::isSupported
  • DOMNode::lookupPrefix »
  • PHP Manual
  • DOMNode
  • Gets the namespace URI of the node based on the prefix

DOMNode::lookupNamespaceUri

(PHP 5, PHP 7)

DOMNode::lookupNamespaceUri — Gets the namespace URI of the node based on the prefix

Beschreibung

public DOMNode::lookupNamespaceUri ( string $prefix ) : string

Gets the namespace URI of the node based on the prefix.

Parameter-Liste

prefix

The prefix of the namespace.

Rückgabewerte

The namespace URI of the node.

Siehe auch

  • DOMNode::lookupPrefix() - Gets the namespace prefix of the node based on the namespace URI


Gets the namespace prefix of the node based on the namespace URI

  • « DOMNode::lookupNamespaceUri
  • DOMNode::normalize »
  • PHP Manual
  • DOMNode
  • Gets the namespace prefix of the node based on the namespace URI

DOMNode::lookupPrefix

(PHP 5, PHP 7)

DOMNode::lookupPrefix — Gets the namespace prefix of the node based on the namespace URI

Beschreibung

public DOMNode::lookupPrefix ( string $namespace ) : string|null

Gets the namespace prefix of the node based on the namespace URI.

Parameter-Liste

namespace

The namespace URI.

Rückgabewerte

The prefix of the namespace.

Siehe auch

  • DOMNode::lookupNamespaceUri() - Gets the namespace URI of the node based on the prefix


Normalizes the node

  • « DOMNode::lookupPrefix
  • DOMNode::removeChild »
  • PHP Manual
  • DOMNode
  • Normalizes the node

DOMNode::normalize

(PHP 5, PHP 7)

DOMNode::normalize — Normalizes the node

Beschreibung

public DOMNode::normalize ( ) : void

Remove empty text nodes and merge adjacent text nodes in this node and all its children.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • » The DOM Specification
  • DOMDocument::normalizeDocument() - Normalizes the document


Removes child from list of children

  • « DOMNode::normalize
  • DOMNode::replaceChild »
  • PHP Manual
  • DOMNode
  • Removes child from list of children

DOMNode::removeChild

(PHP 5, PHP 7)

DOMNode::removeChild — Removes child from list of children

Beschreibung

public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false

This functions removes a child from a list of children.

Parameter-Liste

child

The removed child.

Rückgabewerte

If the child could be removed the function returns the old child.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if this node is readonly.

DOM_NOT_FOUND

Raised if child is not a child of this node.

Beispiele

The following example will delete the chapter element of our XML document.

Beispiel #1 Removing a child

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$book = $doc->documentElement;

// we retrieve the chapter and remove it from the book
$chapter = $book->getElementsByTagName('chapter')->item(0);
$oldchapter = $book->removeChild($chapter);

echo $doc->saveXML();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="listing">
 <title>My lists</title>

</book>

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children
  • DOMNode::replaceChild() - Replaces a child


Replaces a child

  • « DOMNode::removeChild
  • DOMNodeList »
  • PHP Manual
  • DOMNode
  • Replaces a child

DOMNode::replaceChild

(PHP 5, PHP 7)

DOMNode::replaceChild — Replaces a child

Beschreibung

public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false

This function replaces the child child with the passed new node. If the node is already a child it will not be added a second time. If the replacement succeeds the old node is returned.

Parameter-Liste

node

The new node. It must be a member of the target document, i.e. created by one of the DOMDocument->createXXX() methods or imported in the document by DOMDocument::importNode.

child

The old node.

Rückgabewerte

The old node or false if an error occur.

Fehler/Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if this node is readonly or if the previous parent of the node being inserted is readonly.

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of the node node, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if node was created from a different document than the one that created this node.

DOM_NOT_FOUND

Raised if child is not a child of this node.

Siehe auch

  • DOMNode::appendChild() - Adds new child at the end of the children
  • DOMNode::removeChild() - Removes child from list of children


The DOMNodeList class

(PHP 5, PHP 7)

Klassenbeschreibung

DOMNodeList implements Traversable , Countable {
/* Eigenschaften */
public readonly int $length ;
/* Methoden */
public count ( ) : int|false
public item ( int $index ) : DOMNode|null
}

Eigenschaften

length

The number of nodes in the list. The range of valid child node indices is 0 to length - 1 inclusive.

Changelog

Version | Beschreibung
7.2.0 | The Countable interface is implemented and returns the value of the length property.

Siehe auch

  • » W3C specification of NodeList

Inhaltsverzeichnis

  • DOMNodeList::count — Get number of nodes in the list
  • DOMNodeList::item — Retrieves a node specified by index


Get number of nodes in the list

  • « DOMNodeList
  • DOMNodeList::item »
  • PHP Manual
  • DOMNodeList
  • Get number of nodes in the list

DOMNodeList::count

(PHP 7 >= 7.2.0)

DOMNodeList::count — Get number of nodes in the list

Beschreibung

public DOMNodeList::count ( ) : int|false

Gets the number of nodes in the list.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the number of nodes in the list, which is identical to the length property.


Retrieves a node specified by index

  • « DOMNodeList::count
  • DOMNotation »
  • PHP Manual
  • DOMNodeList
  • Retrieves a node specified by index

DOMNodeList::item

(PHP 5, PHP 7)

DOMNodeList::item — Retrieves a node specified by index

Beschreibung

public DOMNodeList::item ( int $index ) : DOMNode|null

Retrieves a node specified by index within the DOMNodeList object.

Tipp

If you need to know the number of nodes in the collection, use the length property of the DOMNodeList object.

Parameter-Liste

index

Index of the node into the collection.

Rückgabewerte

The node at the indexth position in the DOMNodeList, or null if that is not a valid index.

Beispiele

Beispiel #1 Traversing all the entries of the table

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$items = $doc->getElementsByTagName('entry');

for ($i = 0; $i < $items->length; $i++) {
    echo $items->item($i)->nodeValue . "\n";
}

?>

Alternatively, you can use foreach, which is a much more convenient way:

<?php

foreach ($items as $item) {
    echo $item->nodeValue . "\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Title
Author
Language
ISBN
The Grapes of Wrath
John Steinbeck
en
0140186409
The Pearl
John Steinbeck
en
014017737X
Samarcande
Amine Maalouf
fr
2253051209


The DOMNotation class

(PHP 5, PHP 7)

Klassenbeschreibung

DOMNotation extends DOMNode {
/* Eigenschaften */
public readonly string $publicId ;
public readonly string $systemId ;
/* Geerbte Eigenschaften */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Geerbte Methoden */
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Eigenschaften

publicId

systemId


The DOMProcessingInstruction class

(PHP 5, PHP 7)

Klassenbeschreibung

DOMProcessingInstruction extends DOMNode {
/* Eigenschaften */
public readonly string $target ;
public string $data ;
/* Geerbte Eigenschaften */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Methoden */
public __construct ( string $name , string $value = "" )
/* Geerbte Methoden */
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Eigenschaften

target

data

Inhaltsverzeichnis

  • DOMProcessingInstruction::__construct — Creates a new DOMProcessingInstruction object


Creates a new DOMProcessingInstruction object

  • « DOMProcessingInstruction
  • DOMText »
  • PHP Manual
  • DOMProcessingInstruction
  • Creates a new DOMProcessingInstruction object

DOMProcessingInstruction::__construct

(PHP 5, PHP 7)

DOMProcessingInstruction::__construct — Creates a new DOMProcessingInstruction object

Beschreibung

public DOMProcessingInstruction::__construct ( string $name , string $value = "" )

Creates a new DOMProcessingInstruction object. This object is read only. It may be appended to a document, but additional nodes may not be appended to this node until the node is associated with a document. To create a writeable node, use DOMDocument::createProcessingInstruction.

Parameter-Liste

name

The tag name of the processing instruction.

value

The value of the processing instruction.

Beispiele

Beispiel #1 Creating a new DOMProcessingInstruction object

<?php

$dom = new DOMDocument('1.0', 'UTF-8');
$html = $dom->appendChild(new DOMElement('html'));
$body = $html->appendChild(new DOMElement('body'));
$pinode = new DOMProcessingInstruction('php', 'echo "Hello World"; ');
$body->appendChild($pinode);
echo $dom->saveXML();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0" encoding="UTF-8"?>
<html><body><?php echo "Hello World"; ?></body></html>

Siehe auch

  • DOMDocument::createProcessingInstruction() - Creates new PI node


The DOMText class

(PHP 5, PHP 7)

Einführung

The DOMText class inherits from DOMCharacterData and represents the textual content of a DOMElement or DOMAttr.

Klassenbeschreibung

DOMText extends DOMCharacterData {
/* Eigenschaften */
public readonly string $wholeText ;
/* Geerbte Eigenschaften */
public string $data ;
public readonly int $length ;
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode|null $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode|null $firstChild ;
public readonly DOMNode|null $lastChild ;
public readonly DOMNode|null $previousSibling ;
public readonly DOMNode|null $nextSibling ;
public readonly DOMNamedNodeMap|null $attributes ;
public readonly DOMDocument|null $ownerDocument ;
public readonly string|null $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string|null $baseURI ;
public string $textContent ;
/* Methoden */
public __construct ( string $data = "" )
public isElementContentWhitespace ( ) : bool
public isWhitespaceInElementContent ( ) : bool
public splitText ( int $offset ) : DOMText|false
/* Geerbte Methoden */
public DOMCharacterData::appendData ( string $data ) : bool
public DOMCharacterData::deleteData ( int $offset , int $count ) : bool
public DOMCharacterData::insertData ( int $offset , string $data ) : bool
public DOMCharacterData::replaceData ( int $offset , int $count , string $data ) : bool
public DOMCharacterData::substringData ( int $offset , int $count ) : string|false
public DOMNode::appendChild ( DOMNode $node ) : DOMNode|false
public DOMNode::C14N ( bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : string|false
public DOMNode::C14NFile ( string $uri , bool $exclusive = false , bool $withComments = false , array|null $xpath = null , array|null $nsPrefixes = null ) : int|false
public DOMNode::cloneNode ( bool $deep = false ) : DOMNode|false
public DOMNode::getLineNo ( ) : int
public DOMNode::getNodePath ( ) : string|null
public DOMNode::hasAttributes ( ) : bool
public DOMNode::hasChildNodes ( ) : bool
public DOMNode::insertBefore ( DOMNode $node , DOMNode|null $child = null ) : DOMNode|false
public DOMNode::isDefaultNamespace ( string $namespace ) : bool
public DOMNode::isSameNode ( DOMNode $otherNode ) : bool
public DOMNode::isSupported ( string $feature , string $version ) : bool
public DOMNode::lookupNamespaceUri ( string $prefix ) : string
public DOMNode::lookupPrefix ( string $namespace ) : string|null
public DOMNode::normalize ( ) : void
public DOMNode::removeChild ( DOMNode $child ) : DOMNode|false
public DOMNode::replaceChild ( DOMNode $node , DOMNode $child ) : DOMNode|false
}

Eigenschaften

wholeText

Holds all the text of logically-adjacent (not separated by Element, Comment or Processing Instruction) Text nodes.

Inhaltsverzeichnis

  • DOMText::__construct — Creates a new DOMText object
  • DOMText::isElementContentWhitespace — Returns whether this text node contains whitespace in element content
  • DOMText::isWhitespaceInElementContent — Indicates whether this text node contains whitespace
  • DOMText::splitText — Breaks this node into two nodes at the specified offset


Creates a new DOMText object

  • « DOMText
  • DOMText::isElementContentWhitespace »
  • PHP Manual
  • DOMText
  • Creates a new DOMText object

DOMText::__construct

(PHP 5, PHP 7)

DOMText::__construct — Creates a new DOMText object

Beschreibung

public DOMText::__construct ( string $data = "" )

Creates a new DOMText object.

Parameter-Liste

data

The value of the text node. If not supplied an empty text node is created.

Beispiele

Beispiel #1 Creating a new DOMText

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMText('root value'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>root value</root> */

?>

Siehe auch

  • DOMDocument::createTextNode() - Create new text node


Returns whether this text node contains whitespace in element content

  • « DOMText::__construct
  • DOMText::isWhitespaceInElementContent »
  • PHP Manual
  • DOMText
  • Returns whether this text node contains whitespace in element content

DOMText::isElementContentWhitespace

(No version information available, might only be in Git)

DOMText::isElementContentWhitespace — Returns whether this text node contains whitespace in element content

Beschreibung

public DOMText::isElementContentWhitespace ( ) : bool

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Indicates whether this text node contains whitespace

  • « DOMText::isElementContentWhitespace
  • DOMText::splitText »
  • PHP Manual
  • DOMText
  • Indicates whether this text node contains whitespace

DOMText::isWhitespaceInElementContent

(PHP 5, PHP 7)

DOMText::isWhitespaceInElementContent — Indicates whether this text node contains whitespace

Beschreibung

public DOMText::isWhitespaceInElementContent ( ) : bool

Indicates whether this text node contains only whitespace or it is empty. The text node is determined to contain whitespace in element content during the load of the document.

Rückgabewerte

Returns true if node contains zero or more whitespace characters and nothing else. Returns false otherwise.


Breaks this node into two nodes at the specified offset

  • « DOMText::isWhitespaceInElementContent
  • DOMXPath »
  • PHP Manual
  • DOMText
  • Breaks this node into two nodes at the specified offset

DOMText::splitText

(PHP 5, PHP 7)

DOMText::splitText — Breaks this node into two nodes at the specified offset

Beschreibung

public DOMText::splitText ( int $offset ) : DOMText|false

Breaks this node into two nodes at the specified offset, keeping both in the tree as siblings.

After being split, this node will contain all the content up to the offset. If the original node had a parent node, the new node is inserted as the next sibling of the original node. When the offset is equal to the length of this node, the new node has no data.

Parameter-Liste

offset

The offset at which to split, starting from 0.

Rückgabewerte

The new node of the same type, which contains all the content at and after the offset.


The DOMXPath class

(PHP 5, PHP 7)

Einführung

Supports XPath 1.0

Klassenbeschreibung

DOMXPath {
/* Eigenschaften */
public DOMDocument $document ;
/* Methoden */
public __construct ( DOMDocument $document , bool $registerNodeNS = true )
public evaluate ( string $expression , DOMNode|null $contextNode = null , bool $registerNodeNS = true ) : mixed
public query ( string $expression , DOMNode|null $contextNode = null , bool $registerNodeNS = true ) : mixed
public registerNamespace ( string $prefix , string $namespace ) : bool
public registerPhpFunctions ( string|array|null $restrict = null ) : void
}

Eigenschaften

document

Inhaltsverzeichnis

  • DOMXPath::__construct — Creates a new DOMXPath object
  • DOMXPath::evaluate — Evaluates the given XPath expression and returns a typed result if possible
  • DOMXPath::query — Evaluates the given XPath expression
  • DOMXPath::registerNamespace — Registers the namespace with the DOMXPath object
  • DOMXPath::registerPhpFunctions — Register PHP functions as XPath functions


Creates a new DOMXPath object

  • « DOMXPath
  • DOMXPath::evaluate »
  • PHP Manual
  • DOMXPath
  • Creates a new DOMXPath object

DOMXPath::__construct

(PHP 5, PHP 7)

DOMXPath::__construct — Creates a new DOMXPath object

Beschreibung

public DOMXPath::__construct ( DOMDocument $document , bool $registerNodeNS = true )

Creates a new DOMXPath object.

Parameter-Liste

document

The DOMDocument associated with the DOMXPath.


Evaluates the given XPath expression and returns a typed result if possible

  • « DOMXPath::__construct
  • DOMXPath::query »
  • PHP Manual
  • DOMXPath
  • Evaluates the given XPath expression and returns a typed result if possible

DOMXPath::evaluate

(PHP 5 >= 5.1.0, PHP 7)

DOMXPath::evaluate — Evaluates the given XPath expression and returns a typed result if possible

Beschreibung

public DOMXPath::evaluate ( string $expression , DOMNode|null $contextNode = null , bool $registerNodeNS = true ) : mixed

Executes the given XPath expression and returns a typed result if possible.

Parameter-Liste

expression

The XPath expression to execute.

contextNode

The optional contextNode can be specified for doing relative XPath queries. By default, the queries are relative to the root element.

registerNodeNS

The optional registerNodeNS can be specified to disable automatic registration of the context node.

Rückgabewerte

Returns a typed result if possible or a DOMNodeList containing all nodes matching the given XPath expression.

If the expression is malformed or the contextNode is invalid, DOMXPath::evaluate() returns false.

Beispiele

Beispiel #1 Getting the count of all the english books

<?php

$doc = new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// our query is relative to the tbody node
$query = 'count(row/entry[. = "en"])';

$entries = $xpath->evaluate($query, $tbody);
echo "There are $entries english books\n";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

There are 2 english books

Siehe auch

  • DOMXPath::query() - Evaluates the given XPath expression


Evaluates the given XPath expression

  • « DOMXPath::evaluate
  • DOMXPath::registerNamespace »
  • PHP Manual
  • DOMXPath
  • Evaluates the given XPath expression

DOMXPath::query

(PHP 5, PHP 7)

DOMXPath::query — Evaluates the given XPath expression

Beschreibung

public DOMXPath::query ( string $expression , DOMNode|null $contextNode = null , bool $registerNodeNS = true ) : mixed

Executes the given XPath expression.

Parameter-Liste

expression

The XPath expression to execute.

contextNode

The optional contextNode can be specified for doing relative XPath queries. By default, the queries are relative to the root element.

registerNodeNS

The optional registerNodeNS can be specified to disable automatic registration of the context node.

Rückgabewerte

Returns a DOMNodeList containing all nodes matching the given XPath expression. Any expression which does not return nodes will return an empty DOMNodeList.

If the expression is malformed or the contextNode is invalid, DOMXPath::query() returns false.

Beispiele

Beispiel #1 Getting all the english books

<?php

$doc = new DOMDocument;

// We don't want to bother with white spaces
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// We start from the root element
$query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]';

$entries = $xpath->query($query);

foreach ($entries as $entry) {
    echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
         " by {$entry->previousSibling->nodeValue}\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Found The Grapes of Wrath, by John Steinbeck
Found The Pearl, by John Steinbeck

We can also use the contextNode parameter to shorten our expression:

<?php

$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// our query is relative to the tbody node
$query = 'row/entry[. = "en"]';

$entries = $xpath->query($query, $tbody);

foreach ($entries as $entry) {
    echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
         " by {$entry->previousSibling->nodeValue}\n";
}
?>

Siehe auch

  • DOMXPath::evaluate() - Evaluates the given XPath expression and returns a typed result if possible


Registers the namespace with the DOMXPath object

  • « DOMXPath::query
  • DOMXPath::registerPhpFunctions »
  • PHP Manual
  • DOMXPath
  • Registers the namespace with the DOMXPath object

DOMXPath::registerNamespace

(PHP 5, PHP 7)

DOMXPath::registerNamespace — Registers the namespace with the DOMXPath object

Beschreibung

public DOMXPath::registerNamespace ( string $prefix , string $namespace ) : bool

Registers the namespace and prefix with the DOMXPath object.

Parameter-Liste

prefix

The prefix.

namespace

The URI of the namespace.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Register PHP functions as XPath functions

  • « DOMXPath::registerNamespace
  • DOM Funktionen »
  • PHP Manual
  • DOMXPath
  • Register PHP functions as XPath functions

DOMXPath::registerPhpFunctions

(PHP 5 >= 5.3.0, PHP 7)

DOMXPath::registerPhpFunctions — Register PHP functions as XPath functions

Beschreibung

public DOMXPath::registerPhpFunctions ( string|array|null $restrict = null ) : void

This method enables the ability to use PHP functions within XPath expressions.

Parameter-Liste

restrict

Use this parameter to only allow certain functions to be called from XPath.

This parameter can be either a string (a function name) or an array of function names.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

The following examples use book.xml which contains the following:

Beispiel #1 book.xml

<?xml version="1.0" encoding="UTF-8"?>
<books>
 <book>
  <title>PHP Basics</title>
  <author>Jim Smith</author>
  <author>Jane Smith</author>
 </book>
 <book>
  <title>PHP Secrets</title>
  <author>Jenny Smythe</author>
 </book>
 <book>
  <title>XML basics</title>
  <author>Joe Black</author>
 </book>
</books>

Beispiel #2 DOMXPath::registerPHPFunctions() with php:functionString

<?php
$doc = new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Register the php: namespace (required)
$xpath->registerNamespace("php", "http://php.net/xpath");

// Register PHP functions (no restrictions)
$xpath->registerPHPFunctions();

// Call substr function on the book title
$nodes = $xpath->query('//book[php:functionString("substr", title, 0, 3) = "PHP"]');

echo "Found {$nodes->length} books starting with 'PHP':\n";
foreach ($nodes as $node) {
    $title  = $node->getElementsByTagName("title")->item(0)->nodeValue;
    $author = $node->getElementsByTagName("author")->item(0)->nodeValue;
    echo "$title by $author\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Found 2 books starting with 'PHP':
PHP Basics by Jim Smith
PHP Secrets by Jenny Smythe

Beispiel #3 DOMXPath::registerPHPFunctions() with php:function

<?php
$doc = new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Register the php: namespace (required)
$xpath->registerNamespace("php", "http://php.net/xpath");

// Register PHP functions (has_multiple only)
$xpath->registerPHPFunctions("has_multiple");

function has_multiple($nodes) {
    // Return true if more than one author
    return count($nodes) > 1;
}
// Filter books with multiple authors
$books = $xpath->query('//book[php:function("has_multiple", author)]');

echo "Books with multiple authors:\n";
foreach ($books as $book) {
    echo $book->getElementsByTagName("title")->item(0)->nodeValue . "\n";
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Books with multiple authors:
PHP Basics

Siehe auch

  • DOMXPath::registerNamespace() - Registers the namespace with the DOMXPath object
  • DOMXPath::query() - Evaluates the given XPath expression
  • DOMXPath::evaluate() - Evaluates the given XPath expression and returns a typed result if possible


DOM Funktionen

Inhaltsverzeichnis

  • dom_import_simplexml — Ermittelt ein DOMElement-Objekt aus einem SimpleXMLElement-Objekt


Ermittelt ein DOMElement-Objekt aus einem SimpleXMLElement-Objekt

  • « DOM Funktionen
  • libxml »
  • PHP Manual
  • DOM Funktionen
  • Ermittelt ein DOMElement-Objekt aus einem SimpleXMLElement-Objekt

dom_import_simplexml

(PHP 5, PHP 7)

dom_import_simplexml — Ermittelt ein DOMElement-Objekt aus einem SimpleXMLElement-Objekt

Beschreibung

dom_import_simplexml ( SimpleXMLElement $node ) : DOMElement

Diese Funktion verwendet den Knoten node der Klasse SimpleXML und macht ihn zu einem DOMElement-Knoten. Dieses neue Objekt kann als nativer DOMElement-Knoten verwendet werden..

Parameter-Liste

node

Der SimpleXMLElement-Knoten.

Rückgabewerte

Der hinzugefügte DOMElement-Knoten oder false falls irgendein Fehler aufgetreten ist.

Beispiele

Beispiel #1 Importiert SimpleXML in DOM mit der Funktion dom_import_simplexml()

<?php

$sxe = simplexml_load_string('<books><book><title>blah</title></book></books>');

if ($sxe === false) {
    echo 'Fehler beim Parsen des Dokumentes';
    exit;
}

$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
    echo 'Fehler bei Konvertierung zu XML';
    exit;
}

$dom = new DOMDocument('1.0');
$dom_sxe = $dom->importNode($dom_sxe, true);
$dom_sxe = $dom->appendChild($dom_sxe);

echo $dom->saveXML();

?>

Siehe auch

  • simplexml_import_dom() - Erzeugt ein SimpleXMLElement-Objekt aus einem DOM-Knoten


libxml

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • libXMLError — The libXMLError class
  • libxml Funktionen
    • libxml_clear_errors — Clear libxml error buffer
    • libxml_disable_entity_loader — Disable the ability to load external entities
    • libxml_get_errors — Retrieve array of errors
    • libxml_get_last_error — Retrieve last error from libxml
    • libxml_set_external_entity_loader — Changes the default external entity loader
    • libxml_set_streams_context — Set the streams context for the next libxml document load or write
    • libxml_use_internal_errors — Disable libxml errors and allow user to fetch error information as needed


Einführung

These functions/constants are available as of PHP 5.1.0, and the following core extensions rely on this libxml extension: DOM, libxml, SimpleXML, SOAP, WDDX, XSL, XML, XMLReader, XMLRPC und XMLWriter.


  • « Installation/Konfiguration
  • Installation »
  • PHP Manual
  • Installation/Konfiguration
  • Anforderungen

Anforderungen

This extension requires » libxml >= 2.6.0.


Installation

The libxml extension is enabled by default, although it may be disabled with --disable-libxml.

The optional --with-libxml-dir directive is used to specify the location of libxml on the system that PHP is being compiled on, otherwise only the default locations are scanned. The configure process checks for libxml (specifically, xml2-config) in the following order:

  1. The location ([DIR]) specified with --with-libxml-dir ([DIR]=/bin/xml2-config)

  2. /usr/local/bin/xml2-config

  3. /usr/bin/xml2-config

If configure cannot find xml2-config in the directory specified by --with-libxml-dir, then it'll continue on and check the default locations.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

LIBXML_BIGLINES (int)
Allows line numbers greater than 65535 to be reported correctly.

Hinweis:

Only available as of PHP 7.0.0 with Libxml >= 2.9.0

LIBXML_COMPACT (int)
Activate small nodes allocation optimization. This may speed up your application without needing to change the code.

Hinweis:

Only available in Libxml >= 2.6.21

LIBXML_DTDATTR (int)
Default DTD attributes
LIBXML_DTDLOAD (int)
Load the external subset
LIBXML_DTDVALID (int)
Validate with the DTD
LIBXML_HTML_NOIMPLIED (int)
Sets HTML_PARSE_NOIMPLIED flag, which turns off the automatic adding of implied html/body... elements.

Hinweis:

Only available in Libxml >= 2.7.7 (as of PHP >= 5.4.0)

LIBXML_HTML_NODEFDTD (int)
Sets HTML_PARSE_NODEFDTD flag, which prevents a default doctype being added when one is not found.

Hinweis:

Only available in Libxml >= 2.7.8 (as of PHP >= 5.4.0)

LIBXML_NOBLANKS (int)
Remove blank nodes
LIBXML_NOCDATA (int)
Merge CDATA as text nodes
LIBXML_NOEMPTYTAG (int)
Expand empty tags (e.g. <br/> to <br></br>)

Hinweis:

This option is currently just available in the DOMDocument::save and DOMDocument::saveXML functions.

LIBXML_NOENT (int)
Substitute entities
Achtung

Enabling entity substitution may facilitate XML External Entity (XXE) attacks.

LIBXML_NOERROR (int)
Suppress error reports
LIBXML_NONET (int)
Disable network access when loading documents
LIBXML_NOWARNING (int)
Suppress warning reports
LIBXML_NOXMLDECL (int)
Drop the XML declaration when saving a document

Hinweis:

Only available in Libxml >= 2.6.21

LIBXML_NSCLEAN (int)
Remove redundant namespace declarations
LIBXML_PARSEHUGE (int)
Sets XML_PARSE_HUGE flag, which relaxes any hardcoded limit from the parser. This affects limits like maximum depth of a document or the entity recursion, as well as limits of the size of text nodes.

Hinweis:

Only available in Libxml >= 2.7.0 (as of PHP >= 5.3.2 and PHP >= 5.2.12)

LIBXML_PEDANTIC (int)
Sets XML_PARSE_PEDANTIC flag, which enables pedantic error reporting.

Hinweis:

Available as of PHP >= 5.4.0

LIBXML_XINCLUDE (int)
Implement XInclude substitution
LIBXML_ERR_ERROR (int)
A recoverable error
LIBXML_ERR_FATAL (int)
A fatal error
LIBXML_ERR_NONE (int)
No errors
LIBXML_ERR_WARNING (int)
A simple warning
LIBXML_VERSION (int)
libxml version like 20605 or 20617
LIBXML_DOTTED_VERSION (string)
libxml version like 2.6.5 or 2.6.17
LIBXML_SCHEMA_CREATE (int)
Create default/fixed value nodes during XSD schema validation

Hinweis:

Only available in Libxml >= 2.6.14 (as of PHP >= 5.5.2)


The libXMLError class

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Einführung

Contains various information about errors thrown by libxml. The error codes are described within the official » xmlError API documentation.

Klassenbeschreibung

libXMLError {
/* Eigenschaften */
public int $level ;
public int $code ;
public int $column ;
public string $message ;
public string $file ;
public int $line ;
}

Eigenschaften

level

the severity of the error (one of the following constants: LIBXML_ERR_WARNING, LIBXML_ERR_ERROR or LIBXML_ERR_FATAL)

code

The error's code.

column

The column where the error occurred.

Hinweis:

This property isn't entirely implemented in libxml and therefore 0 is often returned.

message

The error message, if any.

file

The filename, or empty if the XML was loaded from a string.

line

The line where the error occurred.


libxml Funktionen

Inhaltsverzeichnis

  • libxml_clear_errors — Clear libxml error buffer
  • libxml_disable_entity_loader — Disable the ability to load external entities
  • libxml_get_errors — Retrieve array of errors
  • libxml_get_last_error — Retrieve last error from libxml
  • libxml_set_external_entity_loader — Changes the default external entity loader
  • libxml_set_streams_context — Set the streams context for the next libxml document load or write
  • libxml_use_internal_errors — Disable libxml errors and allow user to fetch error information as needed


Clear libxml error buffer

  • « libxml Funktionen
  • libxml_disable_entity_loader »
  • PHP Manual
  • libxml Funktionen
  • Clear libxml error buffer

libxml_clear_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_clear_errors — Clear libxml error buffer

Beschreibung

libxml_clear_errors ( ) : void

libxml_clear_errors() clears the libxml error buffer.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

  • libxml_get_errors() - Retrieve array of errors
  • libxml_get_last_error() - Retrieve last error from libxml


Disable the ability to load external entities

  • « libxml_clear_errors
  • libxml_get_errors »
  • PHP Manual
  • libxml Funktionen
  • Disable the ability to load external entities

libxml_disable_entity_loader

(PHP 5 >= 5.2.11, PHP 7, PHP 8)

libxml_disable_entity_loader — Disable the ability to load external entities

Warnung

Diese Funktion ist seit PHP 8.0.0 VERALTET. Von der Verwendung dieser Funktion wird dringend abgeraten.

Beschreibung

libxml_disable_entity_loader ( bool $disable = true ) : bool

Disable/enable the ability to load external entities. Note that disabling the loading of external entities may cause general issues with loading XML documents. However, as of libxml 2.9.0 entity substitution is disabled by default, so there is no need to disable the loading of external entities, unless there is the need to resolve internal entity references with LIBXML_NOENT. Generally, it is preferable to use libxml_set_external_entity_loader() to suppress loading of external entities.

Parameter-Liste

disable

Disable (true) or enable (false) libxml extensions (such as DOM, XMLWriter and XMLReader) to load external entities.

Rückgabewerte

Returns the previous value.

Siehe auch

  • libxml_use_internal_errors() - Disable libxml errors and allow user to fetch error information as needed
  • libxml_set_external_entity_loader() - Changes the default external entity loader
  • The LIBXML_NONET constant


Retrieve array of errors

  • « libxml_disable_entity_loader
  • libxml_get_last_error »
  • PHP Manual
  • libxml Funktionen
  • Retrieve array of errors

libxml_get_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_get_errors — Retrieve array of errors

Beschreibung

libxml_get_errors ( ) : array

Retrieve array of errors.

Rückgabewerte

Returns an array with LibXMLError objects if there are any errors in the buffer, or an empty array otherwise.

Beispiele

Beispiel #1 A libxml_get_errors() example

This example demonstrates how to build a simple libxml error handler.

<?php

libxml_use_internal_errors(true);

$xmlstr = <<< XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <titles>PHP: Behind the Parser</title>
 </movie>
</movies>
XML;

$doc = simplexml_load_string($xmlstr);
$xml = explode("\n", $xmlstr);

if ($doc === false) {
    $errors = libxml_get_errors();

    foreach ($errors as $error) {
        echo display_xml_error($error, $xml);
    }

    libxml_clear_errors();
}

function display_xml_error($error, $xml)
{
    $return  = $xml[$error->line - 1] . "\n";
    $return .= str_repeat('-', $error->column) . "^\n";

    switch ($error->level) {
        case LIBXML_ERR_WARNING:
            $return .= "Warning $error->code: ";
            break;
         case LIBXML_ERR_ERROR:
            $return .= "Error $error->code: ";
            break;
        case LIBXML_ERR_FATAL:
            $return .= "Fatal Error $error->code: ";
            break;
    }

    $return .= trim($error->message) .
               "\n  Line: $error->line" .
               "\n  Column: $error->column";

    if ($error->file) {
        $return .= "\n  File: $error->file";
    }

    return "$return\n\n--------------------------------------------\n\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

  <titles>PHP: Behind the Parser</title>
----------------------------------------------^
Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
  Line: 4
  Column: 46

--------------------------------------------

Siehe auch

  • libxml_get_last_error() - Retrieve last error from libxml
  • libxml_clear_errors() - Clear libxml error buffer


Retrieve last error from libxml

  • « libxml_get_errors
  • libxml_set_external_entity_loader »
  • PHP Manual
  • libxml Funktionen
  • Retrieve last error from libxml

libxml_get_last_error

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_get_last_error — Retrieve last error from libxml

Beschreibung

libxml_get_last_error ( ) : LibXMLError|false

Retrieve last error from libxml.

Rückgabewerte

Returns a LibXMLError object if there is any error in the buffer, false otherwise.

Siehe auch

  • libxml_get_errors() - Retrieve array of errors
  • libxml_clear_errors() - Clear libxml error buffer


Changes the default external entity loader

  • « libxml_get_last_error
  • libxml_set_streams_context »
  • PHP Manual
  • libxml Funktionen
  • Changes the default external entity loader

libxml_set_external_entity_loader

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

libxml_set_external_entity_loader — Changes the default external entity loader

Beschreibung

libxml_set_external_entity_loader ( callable|null $resolver_function ) : bool

Changes the default external entity loader. This can be used to suppress the expansion of arbitrary external entities to avoid XXE attacks, even when LIBXML_NOENT has been set for the respective operation, and is usually preferable over calling libxml_disable_entity_loader().

Parameter-Liste

resolver_function

A callable with the following signature:

resolver ( string $public_id , string $system_id , array $context ) : resource|string|null
public_id
The public ID.
system_id
The system ID.
context
An array with the four elements "directory", "intSubName", "extSubURI" and "extSubSystem".
This callable should return a Ressource, a String from which a resource can be opened. If null is returned, the entity reference resolution will fail.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 libxml_set_external_entity_loader() example

<?php
$xml = <<<XML
<!DOCTYPE foo PUBLIC "-//FOO/BAR" "http://example.com/foobar">
<foo>bar</foo>
XML;

$dtd = <<<DTD
<!ELEMENT foo (#PCDATA)>
DTD;

libxml_set_external_entity_loader(
    function ($public, $system, $context) use($dtd) {
        var_dump($public);
        var_dump($system);
        var_dump($context);
        $f = fopen("php://temp", "r+");
        fwrite($f, $dtd);
        rewind($f);
        return $f;
    }
);

$dd = new DOMDocument;
$r  = $dd->loadXML($xml);

var_dump($dd->validate());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(10) "-//FOO/BAR"
string(25) "http://example.com/foobar"
array(4) {
    ["directory"]    => NULL
    ["intSubName"]   => NULL
    ["extSubURI"]    => NULL
    ["extSubSystem"] => NULL
}
bool(true)

Siehe auch

  • libxml_disable_entity_loader() - Disable the ability to load external entities


Set the streams context for the next libxml document load or write

  • « libxml_set_external_entity_loader
  • libxml_use_internal_errors »
  • PHP Manual
  • libxml Funktionen
  • Set the streams context for the next libxml document load or write

libxml_set_streams_context

(PHP 5, PHP 7, PHP 8)

libxml_set_streams_context — Set the streams context for the next libxml document load or write

Beschreibung

libxml_set_streams_context ( resource $context ) : void

Sets the streams context for the next libxml document load or write.

Parameter-Liste

context

The stream context resource (created with stream_context_create())

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 A libxml_set_streams_context() example

<?php

$opts = array(
    'http' => array(
        'user_agent' => 'PHP libxml agent',
    )
);

$context = stream_context_create($opts);
libxml_set_streams_context($context);

// request a file through HTTP
$doc = DOMDocument::load('http://www.example.com/file.xml');

?>

Siehe auch

  • stream_context_create() - Creates a stream context


Disable libxml errors and allow user to fetch error information as needed

  • « libxml_set_streams_context
  • SimpleXML »
  • PHP Manual
  • libxml Funktionen
  • Disable libxml errors and allow user to fetch error information as needed

libxml_use_internal_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_use_internal_errors — Disable libxml errors and allow user to fetch error information as needed

Beschreibung

libxml_use_internal_errors ( bool|null $use_errors = null ) : bool

libxml_use_internal_errors() allows you to disable standard libxml errors and enable user error handling.

Parameter-Liste

use_errors

Enable (true) user error handling or disable (false) user error handling. Disabling will also clear any existing libxml errors.

Rückgabewerte

This function returns the previous value of use_errors.

Changelog

Version | Beschreibung
8.0.0 | use_errors is nullable now. Previously, its default was false.

Beispiele

Beispiel #1 A libxml_use_internal_errors() example

This example demonstrates the basic usage of libxml errors and the value returned by this function.

<?php

// enable user error handling
var_dump(libxml_use_internal_errors(true));

// load the document
$doc = new DOMDocument;

if (!$doc->load('file.xml')) {
    foreach (libxml_get_errors() as $error) {
        // handle errors here
    }

    libxml_clear_errors();
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)

Siehe auch

  • libxml_clear_errors() - Clear libxml error buffer
  • libxml_get_errors() - Retrieve array of errors


SimpleXML

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Grundlegende SimpleXML Verwendung
    • Behandlung von XML-Fehlern
  • SimpleXMLElement — Die SimpleXMLElement-Klasse
    • SimpleXMLElement::addAttribute — Fügt einem SimpleXML-Element ein Attribut hinzu
    • SimpleXMLElement::addChild — Fügt dem XML-Knoten ein Kind-Element hinzu
    • SimpleXMLElement::asXML — Gibt einen wohlgeformten XML String zurück, der auf einem SimpleXML-Element basiert
    • SimpleXMLElement::attributes — Liefert die Attribute eines Elements
    • SimpleXMLElement::children — Findet Kindelemente des gegebenen Knotens
    • SimpleXMLElement::__construct — Erstellt ein neues SimpleXMLElement-Objekt
    • SimpleXMLElement::count — Counts the children of an element
    • SimpleXMLElement::getDocNamespaces — Gibt die im Dokument deklarierten Namensräume zurück
    • SimpleXMLElement::getName — Ermittelt den Namen eines XML-Elements
    • SimpleXMLElement::getNamespaces — Gibt die im Dokument verwendeten Namespaces zurück
    • SimpleXMLElement::registerXPathNamespace — Erzeugt einen Prefix/Namespace-Kontext für den nächsten XPath-Query
    • SimpleXMLElement::saveXML — Alias von SimpleXMLElement::asXML
    • SimpleXMLElement::__toString — Returns the string content
    • SimpleXMLElement::xpath — Führt eine XPath-Anfrage auf XML-Daten aus
  • SimpleXMLIterator — Die SimpleXMLIterator-Klasse
    • SimpleXMLIterator::current — Returns the current element
    • SimpleXMLIterator::getChildren — Returns the sub-elements of the current element
    • SimpleXMLIterator::hasChildren — Checks whether the current element has sub elements
    • SimpleXMLIterator::key — Return current key
    • SimpleXMLIterator::next — Move to next element
    • SimpleXMLIterator::rewind — Rewind to the first element
    • SimpleXMLIterator::valid — Check whether the current element is valid
  • SimpleXML-Funktionen
    • simplexml_import_dom — Erzeugt ein SimpleXMLElement-Objekt aus einem DOM-Knoten
    • simplexml_load_file — Übersetzt ein XML-File in ein Objekt
    • simplexml_load_string — Übersetzt einen XML-String in ein Objekt


Einführung

Die SimpleXML-Extension bietet ein besonders einfaches und leicht zu handhabendes Toolset, um XML in ein Objekt zu konvertieren, das mit normalen Eigenschafts-Selektoren und Array-Iteratoren bearbeitet werden kann.


Anforderungen

Diese Erweiterung erfordert die Erweiterung libxml. Das heißt, dass die Übergabe von --with-libxml, oder vor PHP 7.4.0 --enable-libxml, ebenfalls benötigt wird. Dies wird jedoch implizit erfüllt, da libxml standardmäßig aktiviert wird.

Die SimpleXML-Extension setzt PHP 5 voraus.


Installation

Diese Erweiterung ist standardmäßig aktiviert. Sie kann bei der Kompilierung mit der folgenden Option ausgeschaltet werden: --disable-simplexml

Zu beachten ist: Vor PHP 5.1.2 musste diese Erweiterung über --enable-simplexml aktiviert werden.


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • SimpleXML
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


  • « Vordefinierte Konstanten
  • Grundlegende SimpleXML Verwendung »
  • PHP Manual
  • SimpleXML
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • Grundlegende SimpleXML Verwendung
  • Behandlung von XML-Fehlern


Grundlegende SimpleXML Verwendung

Viele Beispiele in dieser Referenz benötigen einen XML-String. Anstatt diesen String in jedem Beispiel zu wiederholen, haben wir ihn als File abgelegt, das wir in den Beispielen inkludieren. Diese eingebundene Datei zeigen wir Ihnen im folgenden Beispiel. Alternativ dazu können Sie ein XML-Dokument erstellen und es mit simplexml_load_file() einlesen.

Beispiel #1 Einzubindende Datei example.php mit XML-String

<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#211;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>
XML;
?>

Die Einfachheit von SimpleXML ist besonders deutlich erkennbar, wenn man einen String oder eine Zahl aus einem XML Dokument extrahieren will.

Beispiel #2 <plot> ermitteln

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

echo $movies->movie[0]->plot;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.

Um auf Elemente in einem XML-Dokument zuzugreifen, die Zeichen enthalten, die nicht dem PHP-Benennungsstandard entsprechen (z.B. der Bindestrich), können Sie den Elementnamen zwischen geschweifte Klammern und einfachen Anführungszeichen einschließen.

Beispiel #3 Auf <line> zugreifen

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

echo $movies->movie->{'great-lines'}->line;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

PHP solves all my web problems

Beispiel #4 Auf nicht-eindeutige Elemente per SimpleXML zugreifen

Existieren mehrere Instanzen eines Elements als Kinder eines einzigen Elternelements, lassen sich normale iterative Techniken einsetzen.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

/* Für jeden <character> Knoten geben wir ein separates <name> aus. */
foreach ($movies->movie->characters->character as $character) {
   echo $character->name, ' played by ', $character->actor, PHP_EOL;
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ms. Coder played by Onlivia Actora
Mr. Coder played by El ActÓr

Hinweis:

Eigenschaften ($movies->movie im vorherigen Beispiel) sind keine Arrays. Sie sind iterierbare und zugreifbare Objekte.

Beispiel #5 Attribute verwenden

Bis jetzt haben wir nur das Auslesen von Elementnamen und ihrer Werte betrachtet. SimpleXML kann aber auch auf die Attribute eines Elements zugreifen. Der Zugriff auf die Attribute eines Elements funktioniert genauso, als würden Sie die Elemente eines Array ansprechen.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

/* Zugriff auf die <rating> Knoten des ersten Films
 * Die Bewertungsskala wird zusätzlich ausgegeben. */
foreach ($movies->movie[0]->rating as $rating) {
    switch((string) $rating['type']) { // Verwende Attribute als Element-Indizes
    case 'thumbs':
        echo $rating, ' Daumen hoch';
        break;
    case 'stars':
        echo $rating, ' Sterne';
        break;
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

7 Daumen hoch5 Sterne

Beispiel #6 Vergleichen von Elementen und Attributen mit Text

Um ein Element oder ein Attribut mit einem String zu vergleichen oder an eine Funktion zu übergeben, die einen String als Parameter benötigt, müssen Sie das Element respektive das Attribut in einen String casten. Verwenden Sie dafür (string), ansonsten behandelt PHP das Element als Objekt.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

if ((string) $movies->movie->title == 'PHP: Behind the Parser') {
    print 'Mein Lieblingsfilm.';
}

echo htmlentities((string) $movies->movie->title);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

My favorite movie.PHP: Behind the Parser

Beispiel #7 Zwei Elemente vergleichen

Zwei SimpleXMLElements können ab PHP 5.2.0 auch dann als unterschiedlich betrachtet werden, wenn sie auf das gleiche Element zeigen.

<?php
include 'example.php';

$movies1 = new SimpleXMLElement($xmlstr);
$movies2 = new SimpleXMLElement($xmlstr);
var_dump($movies1 == $movies2); // false ab PHP 5.2.0
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)

Beispiel #8 XPath verwenden

SimpleXML verfügt über einen eingebauten XPath-Support. So finden Sie alle <character> Elemente:

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

foreach ($movies->xpath('//character') as $character) {
    echo $character->name, ' gespielt von ', $character->actor, PHP_EOL;
}
?>

'//' wird hier als Wildcard verwendet. Um absolute Pfadangaben zu verwenden, lassen Sie einen der Slashe weg.

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Ms. Coder gespielt von Onlivia Actora
Mr. Coder gespielt von El ActÓr

Beispiel #9 Werte setzen

Die Daten in SimpleXML müssen nicht konstant sein. Das Objekt erlaubt die Veränderung all seiner Elemente.

<?php
include 'example.php';
$movies = new SimpleXMLElement($xmlstr);

$movies->movie[0]->characters->character[0]->name = 'Miss Coder';

echo $movies->asXML();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Miss Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>

Beispiel #10 Elemente und Attribute hinzufügen

Seit PHP 5.1.3 verfügt SimpleXML über eine vereinfachte Möglichkeit, Kindelemente und Attribute hinzuzufügen.

<?php
include 'example.php';
$movies = new SimpleXMLElement($xmlstr);

$character = $movies->movie[0]->characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movies->movie[0]->addChild('rating', 'PG');
$rating->addAttribute('type', 'mpaa');

echo $movies->asXML();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  <character><name>Mr. Parser</name><actor>John Doe</actor></character></characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 <rating type="mpaa">PG</rating></movie>
</movies>

Beispiel #11 DOM Interoperabilität

PHP hat einen Mechanismus, um XML-Knoten zwischen dem SimpleXML und dem DOM Format zu konvertieren. Das Beispiel zeigt, wie man ein DOM Element in SimpleXML verwandelt.

<?php
$dom = new DOMDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
     echo 'Fehler beim Parsen des Dokuments';
     exit;
}

$books = simplexml_import_dom($dom);

echo $books->book[0]->title;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

blah


Behandlung von XML-Fehlern

Die Behandlung von XML-Fehlern beim Laden von Dokumenten ist eine sehr einfache Sache. Durch die Verwendung der libxml-Funktionalität ist es möglich, alle XML-Fehlermeldungen beim Laden des Dokuments zu unterdrücken und danach über die aufgetretenen Meldungen zu iterieren.

Das libXMLError-Objekt, das von libxml_get_errors() zurückgegeben wird, hat verschiedene Eigenschaften. Dazu gehören message, line und column (Position) des jeweiligen Fehlers.

Beispiel #1 Laden eines defekten XML-Strings

<?php
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");
if ($sxe === false) {
    echo "Laden des XML fehlgeschlagen\n";
    foreach(libxml_get_errors() as $error) {
        echo "\t", $error->message;
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Laden des XML fehlgeschlagen
    Blank needed here
    parsing XML declaration: '?>' expected
    Opening and ending tag mismatch: xml line 1 and broken
    Premature end of data in tag broken line 1

Siehe auch

  • libxml_use_internal_errors()
  • libxml_get_errors()
  • libXMLError


Die SimpleXMLElement-Klasse

(PHP 5, PHP 7, PHP 8)

Einführung

Stellt ein Element in einem XML-Dokument dar.

Klassenbeschreibung

SimpleXMLElement implements Traversable {
/* Methoden */
final public __construct ( string $data , int $options = 0 , bool $data_is_url = false , string $ns = "" , bool $is_prefix = false )
public addAttribute ( string $name , string $value = ? , string $namespace = ? ) : void
public addChild ( string $name , string $value = ? , string $namespace = ? ) : SimpleXMLElement
public asXML ( string $filename = ? ) : mixed
public attributes ( string $ns = null , bool $is_prefix = false ) : SimpleXMLElement|null
public children ( string $ns = ? , bool $is_prefix = false ) : SimpleXMLElement
public count ( ) : int
public getDocNamespaces ( bool $recursive = false , bool $from_root = true ) : array
public getName ( ) : string
public getNamespaces ( bool $recursive = false ) : array
public registerXPathNamespace ( string $prefix , string $ns ) : bool
public __toString ( ) : string
public xpath ( string $path ) : array
}

Inhaltsverzeichnis

  • SimpleXMLElement::addAttribute — Fügt einem SimpleXML-Element ein Attribut hinzu
  • SimpleXMLElement::addChild — Fügt dem XML-Knoten ein Kind-Element hinzu
  • SimpleXMLElement::asXML — Gibt einen wohlgeformten XML String zurück, der auf einem SimpleXML-Element basiert
  • SimpleXMLElement::attributes — Liefert die Attribute eines Elements
  • SimpleXMLElement::children — Findet Kindelemente des gegebenen Knotens
  • SimpleXMLElement::__construct — Erstellt ein neues SimpleXMLElement-Objekt
  • SimpleXMLElement::count — Counts the children of an element
  • SimpleXMLElement::getDocNamespaces — Gibt die im Dokument deklarierten Namensräume zurück
  • SimpleXMLElement::getName — Ermittelt den Namen eines XML-Elements
  • SimpleXMLElement::getNamespaces — Gibt die im Dokument verwendeten Namespaces zurück
  • SimpleXMLElement::registerXPathNamespace — Erzeugt einen Prefix/Namespace-Kontext für den nächsten XPath-Query
  • SimpleXMLElement::saveXML — Alias von SimpleXMLElement::asXML
  • SimpleXMLElement::__toString — Returns the string content
  • SimpleXMLElement::xpath — Führt eine XPath-Anfrage auf XML-Daten aus


Fügt einem SimpleXML-Element ein Attribut hinzu

  • « SimpleXMLElement
  • SimpleXMLElement::addChild »
  • PHP Manual
  • SimpleXMLElement
  • Fügt einem SimpleXML-Element ein Attribut hinzu

SimpleXMLElement::addAttribute

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SimpleXMLElement::addAttribute — Fügt einem SimpleXML-Element ein Attribut hinzu

Beschreibung

public SimpleXMLElement::addAttribute ( string $name , string $value = ? , string $namespace = ? ) : void

Fügt einem SimpleXML-Element ein Attribut hinzu.

Parameter-Liste

name

Der Name des hinzuzufügenden Attributs.

value

Der Wert des Attributs.

namespace

Wenn angegeben, der Namespace, zu dem das Attribut gehört.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Hinweis:

Die aufgeführten Beispiele binden möglicherweise example.php ein, das die XML-Zeichenkette enthält, die im ersten Beispiel über die grundlegende Verwendung zu finden ist.

Beispiel #1 Hinzufügen von Attributen und Kindern zu einem SimpleXML-Element

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: Noch mehr Parser-Geschichten');
$movie->addChild('plot', 'Alles ueber die Leute, die das Kind am Leben erhalten.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: More Parser Stories</title>
  <plot>This is all about the people who make it work.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Siehe auch

  • SimpleXMLElement::addChild() - Fügt dem XML-Knoten ein Kind-Element hinzu
  • Grundlegende SimpleXML Verwendung


Fügt dem XML-Knoten ein Kind-Element hinzu

  • « SimpleXMLElement::addAttribute
  • SimpleXMLElement::asXML »
  • PHP Manual
  • SimpleXMLElement
  • Fügt dem XML-Knoten ein Kind-Element hinzu

SimpleXMLElement::addChild

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SimpleXMLElement::addChild — Fügt dem XML-Knoten ein Kind-Element hinzu

Beschreibung

public SimpleXMLElement::addChild ( string $name , string $value = ? , string $namespace = ? ) : SimpleXMLElement

Fügt ein Kind-Element an den Knoten und gibt ein SimpleXMLElement des Kindes zurück.

Parameter-Liste

name

Der Name des hinzuzufügenden Kind-Elements.

value

Wenn angegeben, der Wert des Kind-Elements.

namespace

Wenn angegeben, der Namespace, zu dem das Kind-Element gehört.

Rückgabewerte

Die addChild-Methode gibt ein SimpleXMLElement-Objekt zurück, das das zum XML-Knoten hinzugefügte Kind repräsentiert.

Beispiele

Hinweis:

Die aufgeführten Beispiele binden möglicherweise example.php ein, das die XML-Zeichenkette enthält, die im ersten Beispiel über die grundlegende Verwendung zu finden ist.

Beispiel #1 Hinzufügen von Attributen und Kindern zu einem SimpleXML-Element

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: Noch mehr Parser-Geschichten');
$movie->addChild('plot', 'Alles ueber die Leute, die das Kind am Leben erhalten.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: More Parser Stories</title>
  <plot>This is all about the people who make it work.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Siehe auch

  • SimpleXMLElement::addAttribute() - Fügt einem SimpleXML-Element ein Attribut hinzu
  • Grundlegende SimpleXML Verwendung


Gibt einen wohlgeformten XML String zurück, der auf einem SimpleXML-Element basiert

  • « SimpleXMLElement::addChild
  • SimpleXMLElement::attributes »
  • PHP Manual
  • SimpleXMLElement
  • Gibt einen wohlgeformten XML String zurück, der auf einem SimpleXML-Element basiert

SimpleXMLElement::asXML

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::asXML — Gibt einen wohlgeformten XML String zurück, der auf einem SimpleXML-Element basiert

Beschreibung

public SimpleXMLElement::asXML ( string $filename = ? ) : mixed

Die asXML Methode formatiert den Inhalt des Elternobjekts als XML Version 1.0.

Parameter-Liste

filename

Sofern angegeben, schreibt die Funktion die Daten in das File anstatt sie direkt zurück zu geben.

Rückgabewerte

Ist der Parameter filename nicht angegeben, gibt die Funktion einen String bei erfolgreicher Umwandlung oder false bei einem Fehler zurück. Ist der Parameter angegeben, wird true zurückgegeben, wenn die Datei erfolgreich erstellt werden konnte; ansonsten ist der Rückgabewert false.

Beispiele

Beispiel #1 XML erstellen

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>zeugs</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

echo $xml->asXML();

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0"?>
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>

asXML lässt sich ebenfalls auf Xpath-Ergebnisse anwenden:

Beispiel #2 Anwendung von asXML() auf SimpleXMLElement::xpath()-Ergebnisse

<?php
// Fortsetzung des obigen Beispiels

/* Suche nach <a><b><c> */
$result = $xml->xpath('/a/b/c');

foreach ($result as $node) {
    echo $node->asXML();
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<c>text</c><c>stuff</c>

Siehe auch

  • SimpleXMLElement::__toString() - Returns the string content
  • Grundlegende SimpleXML Verwendung


Liefert die Attribute eines Elements

  • « SimpleXMLElement::asXML
  • SimpleXMLElement::children »
  • PHP Manual
  • SimpleXMLElement
  • Liefert die Attribute eines Elements

SimpleXMLElement::attributes

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::attributes — Liefert die Attribute eines Elements

Beschreibung

public SimpleXMLElement::attributes ( string $ns = null , bool $is_prefix = false ) : SimpleXMLElement|null

Die Funktion gibt die Attribute und Werte zurück, die innerhalb eines XML-Tags definiert wurden.

Hinweis: SimpleXML definiert für die meisten Methoden Regeln für das Hinzufügen von iterativen Eigenschaften. Diese können weder mit var_dump() oder auf andere Weise angezeigt werden.

Parameter-Liste

ns

Ein optionaler Namensraum für das abgefragte Attribut.

is_prefix

Standardmäßig auf false gesetzt.

Rückgabewerte

Gibt ein SimpleXMLElement-Objekt zurück, das durchlaufen werden kann, um die Attribute des Elements zu erhalten.

Gibt null zurück, wenn der Aufruf auf einem SimpleXMLElement-Objekt erfolgt, das bereits ein Attribut anstatt eines Elements darstellt.

Changelog

Version | Beschreibung
5.2.0 | Der optionale Parameter is_prefix wurde hinzugefügt.

Beispiele

Beispiel #1 Einen XML-String auswerten

<?php
$string = <<<XML
<a>
 <foo name="one" game="lonely">1</foo>
</a>
XML;

$xml = simplexml_load_string($string);
foreach($xml->foo[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

name="one"
game="lonely"

Siehe auch

  • Grundlegende SimpleXML Verwendung


Findet Kindelemente des gegebenen Knotens

  • « SimpleXMLElement::attributes
  • SimpleXMLElement::__construct »
  • PHP Manual
  • SimpleXMLElement
  • Findet Kindelemente des gegebenen Knotens

SimpleXMLElement::children

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::children — Findet Kindelemente des gegebenen Knotens

Beschreibung

public SimpleXMLElement::children ( string $ns = ? , bool $is_prefix = false ) : SimpleXMLElement

Die Methode findet Kinder eines Elements. Das Ergebnis entspricht den normalen Iterierungsregeln.

Hinweis: SimpleXML definiert für die meisten Methoden Regeln für das Hinzufügen von iterativen Eigenschaften. Diese können weder mit var_dump() oder auf andere Weise angezeigt werden.

Parameter-Liste

ns

Ein XML-Namensraum.

is_prefix

Ist is_prefix true, dann wird ns als Prefix interpretiert. Ist es false, dann wird ns als Namensraum-URL interpretiert.

Rückgabewerte

Gibt ein SimpleXMLElement-Objekt zurück, unabhängig davon, ob der Knoten Kindknoten hat oder nicht.

Beispiele

Beispiel #1 Ein children()-Pseudo-Array durchlaufen

<?php
$xml = new SimpleXMLElement(
'<person>
 <child role="Sohn">
  <child role="Tochter"/>
 </child>
 <child role="Tochter">
  <child role="Sohn">
   <child role="Sohn"/>
  </child>
 </child>
</person>');

foreach ($xml->children() as $second_gen) {
    echo ' Die Person zeugte eine/n ' . $second_gen['role'];

    foreach ($second_gen->children() as $third_gen) {
        echo ', die/der eine/n ' . $third_gen['role'] . ' zeugte;';

        foreach ($third_gen->children() as $fourth_gen) {
            echo ' und diese/r ' . $third_gen['role'] .
                ' zeugte eine/n ' . $fourth_gen['role'];
        }
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

 Die Person zeugte eine/n Sohn, die/der eine/n Tochter zeugte; Die Person zeugte
 eine/n Tochter, die/der eine/n Sohn zeugte; und diese/r Sohn zeugte eine/n Sohn

Beispiel #2 Arbeiten mit Namensräumen

<?php
$xml = '<example xmlns:foo="my.foo.urn">
  <foo:a>Apfel</foo:a>
  <foo:b>Banane</foo:b>
  <c>Kirsche</c>
</example>';

$sxe = new SimpleXMLElement($xml);

$kids = $sxe->children('foo');
var_dump(count($kids));

$kids = $sxe->children('foo', TRUE);
var_dump(count($kids));

$kids = $sxe->children('my.foo.urn');
var_dump(count($kids));

$kids = $sxe->children('my.foo.urn', TRUE);
var_dump(count($kids));

$kids = $sxe->children();
var_dump(count($kids));
?>
int(0)
int(2)
int(2)
int(0)
int(1)

Anmerkungen

SimpleXMLElement::children() gibt ein Knoten-Objekt zurück, unabhängig davon, ob der Knoten Kindknoten hat oder nicht. count() kann auf den Rückgabewert angewendet werden, um zu prüfen, ob Kindknoten existieren. Von PHP 5.3.0 an kann statt dessen SimpleXMLElement::count() verwendet werden.

Siehe auch

  • SimpleXMLElement::count() - Counts the children of an element
  • count() - Zählt alle Elemente eines Arrays oder etwas in einem Objekt


Erstellt ein neues SimpleXMLElement-Objekt

  • « SimpleXMLElement::children
  • SimpleXMLElement::count »
  • PHP Manual
  • SimpleXMLElement
  • Erstellt ein neues SimpleXMLElement-Objekt

SimpleXMLElement::__construct

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::__construct — Erstellt ein neues SimpleXMLElement-Objekt

Beschreibung

final public SimpleXMLElement::__construct ( string $data , int $options = 0 , bool $data_is_url = false , string $ns = "" , bool $is_prefix = false )

Erstellt ein neues SimpleXMLElement-Objekt.

Parameter-Liste

data

Ein wohlgeformter XML-String, oder der Pfad oder URL zu einem XML-Dokument, wenn data_is_url true ist.

options

Optional zu verwenden, um weitere Libxml Parameter anzugeben, die das Lesen von XML-Dokumenten betreffen. Optionen, die die Ausgabe von XML-Dokumenten betreffen (z.B. LIBXML_NOEMPTYTAG) werden stillschweigend ignoriert.

Hinweis:

Es kann erforderlich sein, die Option LIBXML_PARSEHUGE zu übergeben, um tief verschachteltes XML oder sehr große Textknoten verarbeiten zu können.

data_is_url

Standardmäßig ist data_is_url false. Verwenden Sie true, um data als Pfad oder URL zu einem XML-Dokument an Stelle eines Daten-Strings anzugeben.

ns

Namensraum-Präfix oder -URI.

is_prefix

true, wenn ns ein Präfix ist, false, wenn es ein URI ist; der Standardwert ist false.

Rückgabewerte

Gibt ein SimpleXMLElement-Objekt zurück, das data repräsentiert.

Fehler/Exceptions

Erzeugt eine E_WARNING-Fehlermeldung für jeden gefundenen Fehler in den XML-Daten und wirft zusätzlich eine Exception, wenn die XML-Daten nicht geparst werden konnten.

Tipp

libxml_use_internal_errors() kann verwendet werden, um alle XML-Fehler zu unterdrücken, und libxml_get_errors(), um danach über diese zu iterieren.

Changelog

Version | Beschreibung
5.2.0 | Die ns und is_prefix Parameter wurden hinzugefügt.
5.1.2 | Die options und data_is_url Parameter wurden hinzugefügt.

Beispiele

Hinweis:

Die aufgeführten Beispiele binden möglicherweise example.php ein, das die XML-Zeichenkette enthält, die im ersten Beispiel über die grundlegende Verwendung zu finden ist.

Beispiel #1 Erstellen eines SimpleXMLElement-Objekts

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
echo $sxe->movie[0]->title;

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

PHP: Behind the Parser

Beispiel #2 Erstellen eines SimpleXMLElement-Objekts von einem URL

<?php

$sxe = new SimpleXMLElement('http://example.org/document.xml', NULL, TRUE);
echo $sxe->asXML();

?>

Siehe auch

  • Grundlegende SimpleXML Verwendung
  • simplexml_load_string() - Übersetzt einen XML-String in ein Objekt
  • simplexml_load_file() - Übersetzt ein XML-File in ein Objekt
  • Behandlung von XML-Fehlern
  • libxml_use_internal_errors() - Disable libxml errors and allow user to fetch error information as needed


Counts the children of an element

  • « SimpleXMLElement::__construct
  • SimpleXMLElement::getDocNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Counts the children of an element

SimpleXMLElement::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SimpleXMLElement::count — Counts the children of an element

Beschreibung

public SimpleXMLElement::count ( ) : int

This method counts the number of children of an element.

Rückgabewerte

Returns the number of elements of an element.

Beispiele

Beispiel #1 Counting the number of children

<?php
$xml = <<<EOF
<people>
 <person name="Person 1">
  <child/>
  <child/>
  <child/>
 </person>
 <person name="Person 2">
  <child/>
  <child/>
  <child/>
  <child/>
  <child/>
 </person>
</people>
EOF;

$elem = new SimpleXMLElement($xml);

foreach ($elem as $person) {
    printf("%s has got %d children.\n", $person['name'], $person->count());
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Person 1 has got 3 children.
Person 2 has got 5 children.

Siehe auch

  • SimpleXMLElement::children() - Findet Kindelemente des gegebenen Knotens


Gibt die im Dokument deklarierten Namensräume zurück

  • « SimpleXMLElement::count
  • SimpleXMLElement::getName »
  • PHP Manual
  • SimpleXMLElement
  • Gibt die im Dokument deklarierten Namensräume zurück

SimpleXMLElement::getDocNamespaces

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SimpleXMLElement::getDocNamespaces — Gibt die im Dokument deklarierten Namensräume zurück

Beschreibung

public SimpleXMLElement::getDocNamespaces ( bool $recursive = false , bool $from_root = true ) : array

Gibt die im Dokument deklarierten Namensräume zurück.

Parameter-Liste

recursive

Sofern angegeben, werden alle Namensräume zurückgegeben, die in Eltern- und Kindknoten deklariert wurden. Andernfalls werden nur die im Wurzelknoten deklarierten Namensräume zurückgegeben.

from_root

Ermöglicht die rekursive Prüfung der Namensräume unter einem Kindknoten statt von der Wurzel des XML-Dokuments.

Rückgabewerte

Die getDocNamespaces-Methode gibt ein Array der Namensräume mit den ihnen zugeordneten URIs zurück.

Beispiele

Beispiel #1 Ermitteln der Dokument-Namensräume

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces();
var_dump($namespaces);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
   ["p"]=>
   string(21) "http://example.org/ns"
}

Beispiel #2 Arbeiten mit mehreren Namensräumen

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person t:id="1">John Doe</p:person>
    <p:person t:id="2" a:addr="123 Street" xmlns:a="http://example.org/addr">
        Susie Q. Public
    </p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces(TRUE);
var_dump($namespaces);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(3) {
  ["p"]=>
  string(21) "http://example.org/ns"
  ["t"]=>
  string(23) "http://example.org/test"
  ["a"]=>
  string(23) "http://example.org/addr"
}

Siehe auch

  • SimpleXMLElement::getNamespaces() - Gibt die im Dokument verwendeten Namespaces zurück
  • SimpleXMLElement::registerXPathNamespace() - Erzeugt einen Prefix/Namespace-Kontext für den nächsten XPath-Query


Ermittelt den Namen eines XML-Elements

  • « SimpleXMLElement::getDocNamespaces
  • SimpleXMLElement::getNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Ermittelt den Namen eines XML-Elements

SimpleXMLElement::getName

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SimpleXMLElement::getName — Ermittelt den Namen eines XML-Elements

Beschreibung

public SimpleXMLElement::getName ( ) : string

Ermittelt den Namen eines XML-Elements.

Rückgabewerte

Die getName-Methode gibt den Namen des durch das SimpleXMLElement-Objekt referenzierte XML-Tag als String zurück.

Beispiele

Hinweis:

Die aufgeführten Beispiele binden möglicherweise example.php ein, das die XML-Zeichenkette enthält, die im ersten Beispiel über die grundlegende Verwendung zu finden ist.

Beispiel #1 Ermitteln des XML-Element-Namens

<?php
include 'example.php';
$sxe = new SimpleXMLElement($xmlstr);

echo $sxe->getName() . "\n";

foreach ($sxe->children() as $child)
{
    echo $child->getName() . "\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

movies
movie


Gibt die im Dokument verwendeten Namespaces zurück

  • « SimpleXMLElement::getName
  • SimpleXMLElement::registerXPathNamespace »
  • PHP Manual
  • SimpleXMLElement
  • Gibt die im Dokument verwendeten Namespaces zurück

SimpleXMLElement::getNamespaces

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SimpleXMLElement::getNamespaces — Gibt die im Dokument verwendeten Namespaces zurück

Beschreibung

public SimpleXMLElement::getNamespaces ( bool $recursive = false ) : array

Gibt die im Dokument verwendeten Namespaces zurück

Parameter-Liste

recursive

Sofern angegeben, werden alle Namespaces, die in Eltern- und Kindknoten verwendet werden, zurückgegeben. Ansonsten werden nur die Namespaces des Wurzelknoten zurückgegeben.

Rückgabewerte

Die getNamespaces-Methode gibt ein Array der Namespaces mit ihren zugehörigen URIs zurück.

Beispiele

Beispiel #1 Verwendete Dokument-Namespaces zurückgeben

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getNamespaces(true);
var_dump($namespaces);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  ["p"]=>
  string(21) "http://example.org/ns"
}

Siehe auch

  • SimpleXMLElement::getDocNamespaces() - Gibt die im Dokument deklarierten Namensräume zurück
  • SimpleXMLElement::registerXPathNamespace() - Erzeugt einen Prefix/Namespace-Kontext für den nächsten XPath-Query


Erzeugt einen Prefix/Namespace-Kontext für den nächsten XPath-Query

  • « SimpleXMLElement::getNamespaces
  • SimpleXMLElement::saveXML »
  • PHP Manual
  • SimpleXMLElement
  • Erzeugt einen Prefix/Namespace-Kontext für den nächsten XPath-Query

SimpleXMLElement::registerXPathNamespace

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SimpleXMLElement::registerXPathNamespace — Erzeugt einen Prefix/Namespace-Kontext für den nächsten XPath-Query

Beschreibung

public SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns ) : bool

Erzeugt einen Prefix/Namespace-Kontext für den nächsten XPath-Query. Dies ist besonders hilfreich, wenn der Anbieter des übergebenen XML-Dokuments die Namespace-Prefixe verändert hat. registerXPathNamespace erzeugt einen Prefix für die dazugehörigen Namespaces, die das Abfragen der Knoten in diesem Namespace erlauben, ohne dass der Code verändert werden muss, um die vom Anbieter diktierten neuen Prefixes zu erlauben.

Parameter-Liste

prefix

Der Namespace-Prefix der im XPath-Query für den angegebenen Namespace verwendet werden soll. ns.

ns

Der Namespace, der für den XPath-Query verwendet wird. Dies muss einem Namespace entsprechen, der im XML-Dokument oder im XPath-Query verwendet wird.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Einen Namespace-Prefix zur Verwendung in einem XPath-Query setzen

<?php

$xml = <<<EOD
<book xmlns:chap="http://example.org/chapter-title">
    <title>My Book</title>
    <chapter id="1">
        <chap:title>Chapter 1</chap:title>
        <para>Donec velit. Nullam eget tellus vitae tortor gravida scelerisque.
            In orci lorem, cursus imperdiet, ultricies non, hendrerit et, orci.
            Nulla facilisi. Nullam velit nisl, laoreet id, condimentum ut,
            ultricies id, mauris.</para>
    </chapter>
    <chapter id="2">
        <chap:title>Chapter 2</chap:title>
        <para>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin
            gravida. Phasellus tincidunt massa vel urna. Proin adipiscing quam
            vitae odio. Sed dictum. Ut tincidunt lorem ac lorem. Duis eros
            tellus, pharetra id, faucibus eu, dapibus dictum, odio.</para>
    </chapter>
</book>
EOD;

$sxe = new SimpleXMLElement($xml);

$sxe->registerXPathNamespace('c', 'http://example.org/chapter-title');
$result = $sxe->xpath('//c:title');

foreach ($result as $title) {
  echo $title . "\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Chapter 1
Chapter 2

Beachten Sie wie das im Beispiel vorgestellte XML-Dokument die Namespaces mit dem Prefix chap verwendet. Stellen Sie sich vor, dass dieses Dokument (oder ein anderes dieser Art) in der Vergangenheit den Prefix c für den selben Namespace verwendete. Seit dieser Änderung gibt der XPath-Query keine gültigen Resultate mehr zurück und der Query benötigt eine Überarbeitung. Die Verwendung von registerXPathNamespace bewahrt Sie vor zukünftigen Modifikationen des Querys, auch wenn der Anbieter die Namespace-Prefixes verändert.

Siehe auch

  • SimpleXMLElement::xpath() - Führt eine XPath-Anfrage auf XML-Daten aus
  • SimpleXMLElement::getDocNamespaces() - Gibt die im Dokument deklarierten Namensräume zurück
  • SimpleXMLElement::getNamespaces() - Gibt die im Dokument verwendeten Namespaces zurück


Alias von SimpleXMLElement::asXML

  • « SimpleXMLElement::registerXPathNamespace
  • SimpleXMLElement::__toString »
  • PHP Manual
  • SimpleXMLElement
  • Alias von SimpleXMLElement::asXML

SimpleXMLElement::saveXML

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

SimpleXMLElement::saveXML — Alias von SimpleXMLElement::asXML()

Beschreibung

Diese Methode ist ein Alias für: SimpleXMLElement::asXML()


Returns the string content

  • « SimpleXMLElement::saveXML
  • SimpleXMLElement::xpath »
  • PHP Manual
  • SimpleXMLElement
  • Returns the string content

SimpleXMLElement::__toString

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SimpleXMLElement::__toString — Returns the string content

Beschreibung

public SimpleXMLElement::__toString ( ) : string

Returns text content that is directly in this element. Does not return text content that is inside this element's children.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the string content on success or an empty string on failure.

Beispiele

Beispiel #1 Get string content

<?php
$xml = new SimpleXMLElement('<a>1 <b>2 </b>3</a>');
echo $xml;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1 3

Siehe auch

  • SimpleXMLElement::asXML() - Gibt einen wohlgeformten XML String zurück, der auf einem SimpleXML-Element basiert


Führt eine XPath-Anfrage auf XML-Daten aus

  • « SimpleXMLElement::__toString
  • SimpleXMLIterator »
  • PHP Manual
  • SimpleXMLElement
  • Führt eine XPath-Anfrage auf XML-Daten aus

SimpleXMLElement::xpath

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::xpath — Führt eine XPath-Anfrage auf XML-Daten aus

Beschreibung

public SimpleXMLElement::xpath ( string $path ) : array

Die xpath-Methode durchsucht den SimpleXML-Knoten nach Kind-Elementen, die der XPath path-Anfrage entsprechen.

Parameter-Liste

path

Ein XPath-Pfad.

Rückgabewerte

Die Funktion gibt ein Array von SimpleXMLElement-Objekten oder im Fehlerfall false zurück.

Beispiele

Beispiel #1 Xpath

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>zeugs</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

/* Suche nach <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo '/a/b/c: ',$node,"\n";
}

/* Relative Pfade funktionieren ebenfalls ... */
$result = $xml->xpath('b/c');

while(list( , $node) = each($result)) {
    echo 'b/c: ',$node,"\n";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

/a/b/c: text
/a/b/c: zeugs
b/c: text
b/c: zeugs

Beachten Sie, dass beide Ergebnisse gleich sind.

Siehe auch

  • SimpleXMLElement::registerXPathNamespace() - Erzeugt einen Prefix/Namespace-Kontext für den nächsten XPath-Query
  • SimpleXMLElement::getDocNamespaces() - Gibt die im Dokument deklarierten Namensräume zurück
  • SimpleXMLElement::getNamespaces() - Gibt die im Dokument verwendeten Namespaces zurück
  • Grundlegende SimpleXML Verwendung


Die SimpleXMLIterator-Klasse

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

Einführung

Der SimpleXMLIterator bietet rekursive Iteration über alle Knoten eines SimpleXMLElement-Objektes.

Klassenbeschreibung

SimpleXMLIterator extends SimpleXMLElement implements RecursiveIterator , Countable {
/* Methoden */
public current ( ) : mixed
public getChildren ( ) : SimpleXMLIterator
public hasChildren ( ) : bool
public key ( ) : mixed
public next ( ) : void
public rewind ( ) : void
public valid ( ) : bool
/* Geerbte Methoden */
final public SimpleXMLElement::__construct ( string $data , int $options = 0 , bool $data_is_url = false , string $ns = "" , bool $is_prefix = false )
public SimpleXMLElement::addAttribute ( string $name , string $value = ? , string $namespace = ? ) : void
public SimpleXMLElement::addChild ( string $name , string $value = ? , string $namespace = ? ) : SimpleXMLElement
public SimpleXMLElement::asXML ( string $filename = ? ) : mixed
public SimpleXMLElement::attributes ( string $ns = null , bool $is_prefix = false ) : SimpleXMLElement|null
public SimpleXMLElement::children ( string $ns = ? , bool $is_prefix = false ) : SimpleXMLElement
public SimpleXMLElement::count ( ) : int
public SimpleXMLElement::getDocNamespaces ( bool $recursive = false , bool $from_root = true ) : array
public SimpleXMLElement::getName ( ) : string
public SimpleXMLElement::getNamespaces ( bool $recursive = false ) : array
public SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns ) : bool
public SimpleXMLElement::__toString ( ) : string
public SimpleXMLElement::xpath ( string $path ) : array
}

Inhaltsverzeichnis

  • SimpleXMLIterator::current — Returns the current element
  • SimpleXMLIterator::getChildren — Returns the sub-elements of the current element
  • SimpleXMLIterator::hasChildren — Checks whether the current element has sub elements
  • SimpleXMLIterator::key — Return current key
  • SimpleXMLIterator::next — Move to next element
  • SimpleXMLIterator::rewind — Rewind to the first element
  • SimpleXMLIterator::valid — Check whether the current element is valid


Returns the current element

  • « SimpleXMLIterator
  • SimpleXMLIterator::getChildren »
  • PHP Manual
  • SimpleXMLIterator
  • Returns the current element

SimpleXMLIterator::current

(PHP 5, PHP 7, PHP 8)

SimpleXMLIterator::current — Returns the current element

Beschreibung

public SimpleXMLIterator::current ( ) : mixed

This method returns the current element as a SimpleXMLIterator object or null.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the current element as a SimpleXMLIterator object or null on failure.

Beispiele

Beispiel #1 Return the current element

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>PHP basics</book><book>XML basics</book></books>');
var_dump($xmlIterator->current());

$xmlIterator->rewind(); // rewind to first element
var_dump($xmlIterator->current());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

NULL
object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "PHP basics"
}

Siehe auch

  • SimpleXMLIterator::key() - Return current key
  • SimpleXMLIterator::next() - Move to next element
  • SimpleXMLIterator::rewind() - Rewind to the first element
  • SimpleXMLIterator::valid() - Check whether the current element is valid
  • SimpleXMLElement


Returns the sub-elements of the current element

  • « SimpleXMLIterator::current
  • SimpleXMLIterator::hasChildren »
  • PHP Manual
  • SimpleXMLIterator
  • Returns the sub-elements of the current element

SimpleXMLIterator::getChildren

(PHP 5, PHP 7, PHP 8)

SimpleXMLIterator::getChildren — Returns the sub-elements of the current element

Beschreibung

public SimpleXMLIterator::getChildren ( ) : SimpleXMLIterator

This method returns a SimpleXMLIterator object containing sub-elements of the current SimpleXMLIterator element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns a SimpleXMLIterator object containing the sub-elements of the current element.

Beispiele

Beispiel #1 Return the sub-elements of the current element

<?php
$xml = <<<XML
<books>
    <book>
        <title>PHP Basics</title>
        <author>Jim Smith</author>
    </book>
    <book>XML basics</book>
</books>
XML;

$xmlIterator = new SimpleXMLIterator($xml);
for( $xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
    foreach($xmlIterator->getChildren() as $name => $data) {
    echo "The $name is '$data' from the class " . get_class($data) . "\n";
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The title is 'PHP Basics' from the class SimpleXMLIterator
The author is 'Jim Smith' from the class SimpleXMLIterator


Checks whether the current element has sub elements

  • « SimpleXMLIterator::getChildren
  • SimpleXMLIterator::key »
  • PHP Manual
  • SimpleXMLIterator
  • Checks whether the current element has sub elements

SimpleXMLIterator::hasChildren

(PHP 5, PHP 7, PHP 8)

SimpleXMLIterator::hasChildren — Checks whether the current element has sub elements

Beschreibung

public SimpleXMLIterator::hasChildren ( ) : bool

This method checks whether the current SimpleXMLIterator element has sub-elements.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

true if the current element has sub-elements, otherwise false

Beispiele

Beispiel #1 Check whether the current element has sub-elements

<?php
$xml = <<<XML
<books>
    <book>
        <title>PHP Basics</title>
        <author>Jim Smith</author>
    </book>
    <book>XML basics</book>
</books>
XML;

$xmlIterator = new SimpleXMLIterator( $xml );
for( $xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
    if($xmlIterator->hasChildren()) {
        var_dump($xmlIterator->current());
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(SimpleXMLIterator)#2 (2) {
  ["title"]=>
  string(10) "PHP Basics"
  ["author"]=>
  string(9) "Jim Smith"
}


Return current key

  • « SimpleXMLIterator::hasChildren
  • SimpleXMLIterator::next »
  • PHP Manual
  • SimpleXMLIterator
  • Return current key

SimpleXMLIterator::key

(PHP 5, PHP 7, PHP 8)

SimpleXMLIterator::key — Return current key

Beschreibung

public SimpleXMLIterator::key ( ) : mixed

This method gets the XML tag name of the current element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the XML tag name of the element referenced by the current SimpleXMLIterator object or false

Beispiele

Beispiel #1 Get the current XML tag key

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>PHP basics</book><book>XML basics</book></books>');

echo var_dump($xmlIterator->key());
$xmlIterator->rewind(); // rewind to the first element
echo var_dump($xmlIterator->key());

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
string(4) "book"


Move to next element

  • « SimpleXMLIterator::key
  • SimpleXMLIterator::rewind »
  • PHP Manual
  • SimpleXMLIterator
  • Move to next element

SimpleXMLIterator::next

(PHP 5, PHP 7, PHP 8)

SimpleXMLIterator::next — Move to next element

Beschreibung

public SimpleXMLIterator::next ( ) : void

This method moves the SimpleXMLIterator to the next element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Move to the next element

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>PHP Basics</book><book>XML basics</book></books>');
$xmlIterator->rewind(); // rewind to the first element
$xmlIterator->next();

var_dump($xmlIterator->current());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "XML basics"
}


Rewind to the first element

  • « SimpleXMLIterator::next
  • SimpleXMLIterator::valid »
  • PHP Manual
  • SimpleXMLIterator
  • Rewind to the first element

SimpleXMLIterator::rewind

(PHP 5, PHP 7, PHP 8)

SimpleXMLIterator::rewind — Rewind to the first element

Beschreibung

public SimpleXMLIterator::rewind ( ) : void

This method rewinds the SimpleXMLIterator to the first element.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Rewind to the first element

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>PHP Basics</book><book>XML Basics</book></books>');
$xmlIterator->rewind();

var_dump($xmlIterator->current());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "PHP Basics"
}


Check whether the current element is valid

  • « SimpleXMLIterator::rewind
  • SimpleXML-Funktionen »
  • PHP Manual
  • SimpleXMLIterator
  • Check whether the current element is valid

SimpleXMLIterator::valid

(PHP 5, PHP 7, PHP 8)

SimpleXMLIterator::valid — Check whether the current element is valid

Beschreibung

public SimpleXMLIterator::valid ( ) : bool

This method checks if the current element is valid after calls to SimpleXMLIterator::rewind() or SimpleXMLIterator::next().

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns true if the current element is valid, otherwise false

Beispiele

Beispiel #1 Check whether the current element is valid

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>SQL Basics</book></books>');

$xmlIterator->rewind(); // rewind to the first element
echo var_dump($xmlIterator->valid()); // bool(true)

$xmlIterator->next(); // advance to the next element
echo var_dump($xmlIterator->valid()); // bool(false) because there is only one element
?>


SimpleXML-Funktionen

Inhaltsverzeichnis

  • simplexml_import_dom — Erzeugt ein SimpleXMLElement-Objekt aus einem DOM-Knoten
  • simplexml_load_file — Übersetzt ein XML-File in ein Objekt
  • simplexml_load_string — Übersetzt einen XML-String in ein Objekt


Erzeugt ein SimpleXMLElement-Objekt aus einem DOM-Knoten

  • « SimpleXML-Funktionen
  • simplexml_load_file »
  • PHP Manual
  • SimpleXML-Funktionen
  • Erzeugt ein SimpleXMLElement-Objekt aus einem DOM-Knoten

simplexml_import_dom

(PHP 5, PHP 7, PHP 8)

simplexml_import_dom — Erzeugt ein SimpleXMLElement-Objekt aus einem DOM-Knoten

Beschreibung

simplexml_import_dom ( DOMNode $node , string $class_name = "SimpleXMLElement" ) : SimpleXMLElement|null

Die Funktion wandelt einen Knoten eines DOM-Dokuments in einen SimpleXML-Knoten um. Das neue Objekt kann wie ein normales SimpleXML-Element verwendet werden.

Parameter-Liste

node

Ein DOM-Element-Knoten.

class_name

Der optionale Parameter kann verwendet werden, wenn simplexml_import_dom() ein Objekt der spezifischen Klasse zurückgeben soll. Die gewählte Klasse sollte von der Klasse SimpleXMLElement abgeleitet sein.

Rückgabewerte

Gibt ein SimpleXMLElement-Objekt zurück oder null, falls ein Fehler auftrat.

Beispiele

Beispiel #1 DOM-Import

<?php
$dom = new DOMDocument;
$dom->loadXML('<buecher><buch><titel>blah</titel></buch></buecher>');
if (!$dom) {
    echo 'Fehler beim Parsen des Dokuments';
    exit;
}

$s = simplexml_import_dom($dom);

echo $s->buch[0]->titel;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

blah

Siehe auch

  • dom_import_simplexml() - Ermittelt ein DOMElement-Objekt aus einem SimpleXMLElement-Objekt
  • Grundlegende SimpleXML Verwendung


Übersetzt ein XML-File in ein Objekt

  • « simplexml_import_dom
  • simplexml_load_string »
  • PHP Manual
  • SimpleXML-Funktionen
  • Übersetzt ein XML-File in ein Objekt

simplexml_load_file

(PHP 5, PHP 7, PHP 8)

simplexml_load_file — Übersetzt ein XML-File in ein Objekt

Beschreibung

simplexml_load_file ( string $filename , string $class_name = "SimpleXMLElement" , int $options = 0 , string $ns = "" , bool $is_prefix = false ) : SimpleXMLElement|false

Die Funktion wandelt das übergebene wohlgeformte (well-formed) XML-Dokument in ein Objekt um.

Parameter-Liste

filename

Pfad zur XML-Datei.

Hinweis:

Libxml 2 demaskiert den URI. Soll also zum Beispiel b&c als Wert für den URI-Parameter a verwendet werden, muss die Funktion wie folgt aufgerufen werden: simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Seit PHP 5.1.0 wird Ihnen dieser Schritt von PHP abgenommen.

class_name

Der optionale Parameter class_name kann verwendet werden, wenn simplexml_load_file() ein Objekt der spezifischen Klasse zurückgeben soll. Die gewählte Klasse sollte von der Klasse SimpleXMLElement abgeleitet sein.

options

Seit PHP 5.1.0 und Libxml 2.6.0 kann zusätzlich der Parameter options verwendet werden, um weitere Libxml-Parameter anzugeben.

ns

Namensraum-Präfix oder URI.

is_prefix

true, wenn ns ein Präfix ist, false, wenn er ein URI ist. Standardwert ist false.

Rückgabewerte

Gibt ein object der Klasse SimpleXMLElement zurück, dessen Eigenschaften die Daten des XML-Dokuments enthalten. Im Fehlerfall wird false zurückgegeben..

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Fehler/Exceptions

Generiert eine Fehlermeldung vom Typ E_WARNING für jeden in den XML-Daten gefundenen Fehler.

Tipp

libxml_use_internal_errors() kann hier verwendet werden, um alle XML-Fehlermeldungen auszublenden, und libxml_get_errors(), um danach darüber zu iterieren.

Changelog

Version | Beschreibung
5.2.0 | Der optionale Parameter is_prefix wurde hinzugefügt.

Beispiele

Beispiel #1 Ein XML-Dokument auswerten

<?php
// Die Datei test.xml enthält ein XML-Dokument mit einem Wurzel-Element
// und mindestens einem Element /[root]/title.

if (file_exists('test.xml')) {
    $xml = simplexml_load_file('test.xml');

    print_r($xml);
} else {
    exit('Konnte test.xml nicht öffnen.');
}
?>

Das Skript gibt nach erfolgreichem Laden folgendes aus:

SimpleXMLElement Object
(
  [title] => Beispiel-Titel
  ...
)

Ab diesem Punkt können $xml->title und andere Elemente verwendet werden.

Siehe auch

  • simplexml_load_string() - Übersetzt einen XML-String in ein Objekt
  • SimpleXMLElement::__construct() - Erstellt ein neues SimpleXMLElement-Objekt
  • Behandlung von XML-Fehlern
  • libxml_use_internal_errors() - Disable libxml errors and allow user to fetch error information as needed
  • Grundlegende SimpleXML Verwendung


Übersetzt einen XML-String in ein Objekt

  • « simplexml_load_file
  • WDDX »
  • PHP Manual
  • SimpleXML-Funktionen
  • Übersetzt einen XML-String in ein Objekt

simplexml_load_string

(PHP 5, PHP 7, PHP 8)

simplexml_load_string — Übersetzt einen XML-String in ein Objekt

Beschreibung

simplexml_load_string ( string $data , string $class_name = "SimpleXMLElement" , int $options = 0 , string $ns = "" , bool $is_prefix = false ) : SimpleXMLElement|false

Die Funktion erwartet einen wohlgeformten (well-formed) XML-String und gibt ihn als Objekt zurück.

Parameter-Liste

data

Ein wohlgeformter XML-String.

class_name

Der optionale Parameter class_name kann verwendet werden, wenn simplexml_load_string() ein Objekt der spezifischen Klasse zurückgeben soll. Die gewählte Klasse sollte von der Klasse SimpleXMLElement abgeleitet sein.

options

Seit PHP 5.1.0 und Libxml 2.6.0 kann zusätzlich der Parameter options verwendet werden, um weitere Libxml-Parameter anzugeben.

ns

Namensraum-Präfix oder URI.

is_prefix

true, wenn ns ein Präfix ist, false, wenn er ein URI ist. Standardwert ist false.

Rückgabewerte

Gibt ein Objekt der Klasse SimpleXMLElement zurück, dessen Eigenschaften die Daten beinhalten, wie sie im XML-Dokument abgebildet sind. Tritt ein Fehler auf, wird false zurückgegeben.

Warnung

Diese Funktion kann sowohl das boolsche false zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die boolschen Typen. Benutzen Sie deshalb den === Operator, um den Rückgabewert dieser Funktion zu überprüfen.

Fehler/Exceptions

Generiert eine Fehlermeldung vom Typ E_WARNING für jeden in den XML-Daten gefundenen Fehler.

Tipp

libxml_use_internal_errors() kann hier verwendet werden, um alle XML-Fehlermeldungen auszublenden, und libxml_get_errors(), um danach darüber zu iterieren.

Changelog

Version | Beschreibung
5.2.0 | Der optionale Parameter is_prefix wurde hinzugefügt.

Beispiele

Beispiel #1 Einen XML-String auswerten

<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
 <title>Zweiundvierz...?</title>
 <from>Joe</from>
 <to>Jane</to>
 <body>
  Ich kenne die Antwort -- aber was ist die Frage?
 </body>
</document>
XML;

$xml = simplexml_load_string($string);

print_r($xml);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

SimpleXMLElement Object
(
  [title] => Zweiundvierz...?
  [from] => Joe
  [to] => Jane
  [body] =>
   Ich kenne die Antwort -- aber was ist die Frage?
)

Ab diesem Punkt können Sie $xml->body etc. verwenden.

Siehe auch

  • simplexml_load_file() - Übersetzt ein XML-File in ein Objekt
  • SimpleXMLElement::__construct() - Erstellt ein neues SimpleXMLElement-Objekt
  • Behandlung von XML-Fehlern
  • libxml_use_internal_errors() - Disable libxml errors and allow user to fetch error information as needed
  • Grundlegende SimpleXML Verwendung


WDDX

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • wddx examples
  • WDDX Funktionen
    • wddx_add_vars — Fügt dem WDDX-Paket mit der übergebenen ID Werte hinzu
    • wddx_deserialize — Deserialisiert ein WDDX Paket
    • wddx_packet_end — Schließt das WDDX-Paket mit der angegebenen ID
    • wddx_packet_start — Beginnt ein neues WDDX-Paket mit einer Struktur
    • wddx_serialize_value — Serialisiert einen einzelnen Wert in ein WDDX-Paket
    • wddx_serialize_vars — Serialisiert Variablen in ein WDDX-Paket


Einführung

Warnung

This extension is DEPRECATED and UNBUNDLED as of PHP 7.4.0.

These functions are intended for work with » WDDX.

Warnung

Do not pass untrusted user input to wddx_deserialize(). Unserialization can result in code being loaded and executed due to object instantiation and autoloading, and a malicious user may be able to exploit this. Use a safe, standard data interchange format such as JSON (via json_decode() and json_encode()) if you need to pass serialized data to the user.


Anforderungen

Diese Erweiterung erfordert die Erweiterung libxml. Das heißt, dass die Übergabe von --with-libxml, oder vor PHP 7.4.0 --enable-libxml, ebenfalls benötigt wird. Dies wird jedoch implizit erfüllt, da libxml standardmäßig aktiviert wird.

In order to use WDDX, you will need to install the expat library (which comes with Apache 1.3.7 or higher).


Installation

PHP 7.4

Diese Erweiterung wurde ins » PECL-Repositorium verschoben und ist nicht mehr Teil von PHP ab PHP 7.4.0

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/wddx.

PHP < 7.4

After installing the required expat library, compile PHP with --enable-wddx, and use --with-libexpat-dir for expat.

Die Windowsversion von PHP enthält diese Erweiterung. Um diese Funktionen zu verwenden, müssen Sie keine zusätzlichen Erweiterungen aktivieren.


  • « Laufzeit-Konfiguration
  • Vordefinierte Konstanten »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

This extension defines a WDDX packet identifier returned by wddx_packet_start().


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • WDDX
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


  • « Vordefinierte Konstanten
  • wddx examples »
  • PHP Manual
  • WDDX
  • Beispiele

Beispiele

Inhaltsverzeichnis

  • wddx examples


wddx examples

All the functions that serialize variables use the first element of an array to determine whether the array is to be serialized into an array or structure. If the first element has string key, then it is serialized into a structure, otherwise, into an array.

Beispiel #1 Serializing a single value with WDDX

<?php
echo wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?>

This example will produce:

<wddxPacket version='1.0'><header comment='PHP packet'/><data>
<string>PHP to WDDX packet example</string></data></wddxPacket>

Beispiel #2 Using incremental packets with WDDX

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* Suppose $cities came from database */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");

$packet = wddx_packet_end($packet_id);
echo $packet;
?>

This example will produce:

<wddxPacket version='1.0'><header comment='PHP'/><data><struct>
<var name='pi'><number>3.1415926</number></var><var name='cities'>
<array length='3'><string>Austin</string><string>Novato</string>
<string>Seattle</string></array></var></struct></data></wddxPacket>

Hinweis:

If you want to serialize non-ASCII characters you have to convert your data to UTF-8 first (see utf8_encode() and iconv()).


WDDX Funktionen

Inhaltsverzeichnis

  • wddx_add_vars — Fügt dem WDDX-Paket mit der übergebenen ID Werte hinzu
  • wddx_deserialize — Deserialisiert ein WDDX Paket
  • wddx_packet_end — Schließt das WDDX-Paket mit der angegebenen ID
  • wddx_packet_start — Beginnt ein neues WDDX-Paket mit einer Struktur
  • wddx_serialize_value — Serialisiert einen einzelnen Wert in ein WDDX-Paket
  • wddx_serialize_vars — Serialisiert Variablen in ein WDDX-Paket


Fügt dem WDDX-Paket mit der übergebenen ID Werte hinzu

  • « WDDX Funktionen
  • wddx_deserialize »
  • PHP Manual
  • WDDX Funktionen
  • Fügt dem WDDX-Paket mit der übergebenen ID Werte hinzu

wddx_add_vars

(PHP 4, PHP 5, PHP 7)

wddx_add_vars — Fügt dem WDDX-Paket mit der übergebenen ID Werte hinzu

Warnung

Diese Funktion wurde mit PHP 7.4.0 ENTFERNT.

Beschreibung

wddx_add_vars ( resource $packet_id , mixed $var_name , mixed ...$var_names ) : bool

Serialisiert die übergebenen Variablen und fügt das Ergebnis dem angegebenen Paket hinzu.

Parameter-Liste

Diese Funktion nimmt eine variable Anzahl von Parametern entgegen.

packet_id

Ein WDDX-Paket, wie von wddx_packet_start() zurückgeggeben.

var_name

Kann entweder eine Zeichenkette sein, die einen Variablennamen enthält, oder ein Array von Strings, die Variablennamen oder andere Arrays enthalten.

var_names

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Deserialisiert ein WDDX Paket

  • « wddx_add_vars
  • wddx_packet_end »
  • PHP Manual
  • WDDX Funktionen
  • Deserialisiert ein WDDX Paket

wddx_deserialize

(PHP 4, PHP 5, PHP 7)

wddx_deserialize — Deserialisiert ein WDDX Paket

Warnung

Diese Funktion wurde mit PHP 7.4.0 ENTFERNT.

Beschreibung

wddx_deserialize ( string $packet ) : mixed

Deserialisiert ein WDDX Paket (packet).

Warnung

wddx_deserialize() dürfen keine Nutzereingaben aus nicht vertrauenswürdigen Quellen übergeben werden. Die Deserialisierung kann dazu führen, dass Code geladen und ausgeführt wird, aufgrund von Objekt-Instanziierung und Autoloading, und ein böswilliger Nutzer kann möglicherweise in der Lage sein, dies auszunutzen. Statt dessen ist ein sicheres, standardisiertes Daten-Austauschformat wie JSON (per json_decode() und json_encode()) zu verwenden, wenn serialisierte Daten von Benutzern empfangen werden müssen.

Parameter-Liste

packet

Ein WDDX-Paket als Zeichenkette oder Stream.

Rückgabewerte

Gibt den deserialisierten Wert zurück, der eine Zeichenkette, eine Zahl oder ein Array sein kann. Es ist zu beachten, dass Strukturen als assoziative Arrays deserialisiert werden.


Schließt das WDDX-Paket mit der angegebenen ID

  • « wddx_deserialize
  • wddx_packet_start »
  • PHP Manual
  • WDDX Funktionen
  • Schließt das WDDX-Paket mit der angegebenen ID

wddx_packet_end

(PHP 4, PHP 5, PHP 7)

wddx_packet_end — Schließt das WDDX-Paket mit der angegebenen ID

Warnung

Diese Funktion wurde mit PHP 7.4.0 ENTFERNT.

Beschreibung

wddx_packet_end ( resource $packet_id ) : string

Schließt das angegebene WDDX-Paket, und gibt es zurück.

Parameter-Liste

packet_id

Ein WDDX-Paket, wie von wddx_packet_start() zurückgegeben.

Rückgabewerte

Gibt die Zeichenkette zurück, die das WDDX-Paket enthält.


Beginnt ein neues WDDX-Paket mit einer Struktur

  • « wddx_packet_end
  • wddx_serialize_value »
  • PHP Manual
  • WDDX Funktionen
  • Beginnt ein neues WDDX-Paket mit einer Struktur

wddx_packet_start

(PHP 4, PHP 5, PHP 7)

wddx_packet_start — Beginnt ein neues WDDX-Paket mit einer Struktur

Warnung

Diese Funktion wurde mit PHP 7.4.0 ENTFERNT.

Beschreibung

wddx_packet_start ( string $comment = ? ) : resource

Beginnt ein neues WDDX-Paket für das inkrementelle Hinzufügen von Variablen. Es wird automatisch eine Strukturdefinition innerhalb des Pakets erzeugt, um die Variablen zu enthalten.

Parameter-Liste

comment

Eine optionale Kommentar-Zeichenkette.

Rückgabewerte

Gibt eine Paketkennung für die spätere Verwendung zurück, oder im Fehlerfall false.


Serialisiert einen einzelnen Wert in ein WDDX-Paket

  • « wddx_packet_start
  • wddx_serialize_vars »
  • PHP Manual
  • WDDX Funktionen
  • Serialisiert einen einzelnen Wert in ein WDDX-Paket

wddx_serialize_value

(PHP 4, PHP 5, PHP 7)

wddx_serialize_value — Serialisiert einen einzelnen Wert in ein WDDX-Paket

Warnung

Diese Funktion wurde mit PHP 7.4.0 ENTFERNT.

Beschreibung

wddx_serialize_value ( mixed $var , string $comment = ? ) : string

Erzeugt ein neues WDDX-Paket aus einem einzelnen angegebene Wert.

Parameter-Liste

var

Der zu serialisierende Wert.

comment

Eine optionale Kommentar-Zeichenkette, die im Paket-Header erscheint.

Rückgabewerte

Gibt das WDDX-Paket zurück, oder im Fehlerfall false.


Serialisiert Variablen in ein WDDX-Paket

  • « wddx_serialize_value
  • XMLDiff »
  • PHP Manual
  • WDDX Funktionen
  • Serialisiert Variablen in ein WDDX-Paket

wddx_serialize_vars

(PHP 4, PHP 5, PHP 7)

wddx_serialize_vars — Serialisiert Variablen in ein WDDX-Paket

Warnung

Diese Funktion wurde mit PHP 7.4.0 ENTFERNT.

Beschreibung

wddx_serialize_vars ( mixed $var_name , mixed ...$var_names ) : string

Erzeugt ein WDDX-Paket mit einer Struktur, die die serialisierte Darstellung der übergebenen Variablen enthält.

Parameter-Liste

Diese Funktion nimmt eine variable Anzahl von Parametern entgegen.

var_name

Entweder einzelne Variablennamen oder Arrays mit Variablennamen bzw. weitere Arrays.

var_names

Rückgabewerte

Gibt das WDDX-Paket zurück, oder im Fehlerfall false.

Beispiele

Beispiel #1 wddx_serialize_vars()-Beispiel

<?php
$a = 1;
$b = 5.5;
$c = array("Blau", "Orange", "Lila");
$d = "Farben";

$clvars = array("c", "d");
echo wddx_serialize_vars("a", "b", $clvars);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<wddxPacket version='1.0'><header/><data><struct><var name='a'><number>1</number></var>
<var name='b'><number>5.5</number></var><var name='c'><array length='3'>
<string>Blau</string><string>Orange</string><string>Lilal</string></array></var>
<var name='d'><string>Farben</string></var></struct></data></wddxPacket>


XML diff and merge

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
  • XMLDiff\Base — The XMLDiff\Base class
    • XMLDiff\Base::__construct — Constructor
    • XMLDiff\Base::diff — Produce diff of two XML documents
    • XMLDiff\Base::merge — Produce new XML document based on diff
  • XMLDiff\DOM — The XMLDiff\DOM class
    • XMLDiff\DOM::diff — Diff two DOMDocument objects
    • XMLDiff\DOM::merge — Produce merged DOMDocument
  • XMLDiff\Memory — The XMLDiff\Memory class
    • XMLDiff\Memory::diff — Diff two XML documents
    • XMLDiff\Memory::merge — Produce merged XML document
  • XMLDiff\File — The XMLDiff\File class
    • XMLDiff\File::diff — Diff two XML files
    • XMLDiff\File::merge — Produce merged XML document


Einführung

The extension is able to produce diffs of two XML documents and then to apply the difference to the source document. The diff is a XML document containing copy/insert/delete instruction nodes in human readable format. DOMDocument objects, local files and strings in memory can be processed.


  • « Einführung
  • Anforderungen »
  • PHP Manual
  • XMLDiff
  • Installation/Konfiguration

Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation


Anforderungen

libdiffmark - version 0.10 is bundled with the extension. If diffmark is available from your system packages, its usage is strongly encouraged.

libxml extension

DOM extension


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/xmldiff.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/xmldiff/.


The XMLDiff\Base class

(PECL xmldiff >= 0.8.0)

Einführung

Base abstract class for all the comparsion classes in the extension.

Klassenbeschreibung

XMLDiff\Base {
/* Methoden */
public __construct ( string $nsname )
abstract public diff ( mixed $from , mixed $to ) : mixed
abstract public merge ( mixed $src , mixed $diff ) : mixed
}

Inhaltsverzeichnis

  • XMLDiff\Base::__construct — Constructor
  • XMLDiff\Base::diff — Produce diff of two XML documents
  • XMLDiff\Base::merge — Produce new XML document based on diff


Constructor

  • « XMLDiff\Base
  • XMLDiff\Base::diff »
  • PHP Manual
  • XMLDiff\Base
  • Constructor

XMLDiff\Base::__construct

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::__construct — Constructor

Beschreibung

public XMLDiff\Base::__construct ( string $nsname )

Base constructor for all the worker classes in the xmldiff extension.

Parameter-Liste

nsname

Custom namespace name for the diff document. The default namespace is http://www.locus.cz/diffmark and that's enough to avoid namespace conflicts. Use this parameter if you want to change it for some reason.

Rückgabewerte


Produce diff of two XML documents

  • « XMLDiff\Base::__construct
  • XMLDiff\Base::merge »
  • PHP Manual
  • XMLDiff\Base
  • Produce diff of two XML documents

XMLDiff\Base::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::diff — Produce diff of two XML documents

Beschreibung

abstract public XMLDiff\Base::diff ( mixed $from , mixed $to ) : mixed

Abstract diff method to be implemented by inheriting classes.

The basic purpose of this method is to produce diff of the two documents. The param order matters and will produce different output.

Parameter-Liste

from

Source XML document.

to

Target XML document.

Rückgabewerte

Implementation dependent.


Produce new XML document based on diff

  • « XMLDiff\Base::diff
  • XMLDiff\DOM »
  • PHP Manual
  • XMLDiff\Base
  • Produce new XML document based on diff

XMLDiff\Base::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::merge — Produce new XML document based on diff

Beschreibung

abstract public XMLDiff\Base::merge ( mixed $src , mixed $diff ) : mixed

Abstract merge method to be implemented by inheriting classes.

Basically the method purpose is to produce a new XML document based on the diff information.

Parameter-Liste

src

Source XML document.

diff

Document produced by the diff method.

Rückgabewerte

Implementation dependent.


The XMLDiff\DOM class

(PECL xmldiff >= 0.8.0)

Einführung

Klassenbeschreibung

XMLDiff\DOM extends XMLDiff\Base {
/* Methoden */
public diff ( DOMDocument $from , DOMDocument $to ) : DOMDocument
public merge ( DOMDocument $src , DOMDocument $diff ) : DOMDocument
/* Geerbte Methoden */
public XMLDiff\Base::__construct ( string $nsname )
abstract public XMLDiff\Base::diff ( mixed $from , mixed $to ) : mixed
abstract public XMLDiff\Base::merge ( mixed $src , mixed $diff ) : mixed
}

Inhaltsverzeichnis

  • XMLDiff\DOM::diff — Diff two DOMDocument objects
  • XMLDiff\DOM::merge — Produce merged DOMDocument


Diff two DOMDocument objects

  • « XMLDiff\DOM
  • XMLDiff\DOM::merge »
  • PHP Manual
  • XMLDiff\DOM
  • Diff two DOMDocument objects

XMLDiff\DOM::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\DOM::diff — Diff two DOMDocument objects

Beschreibung

public XMLDiff\DOM::diff ( DOMDocument $from , DOMDocument $to ) : DOMDocument

Diff two DOMDocument instances and produce the new one containing the diff information.

Parameter-Liste

from

Source DOMDocument object.

to

Target DOMDocument object.

Rückgabewerte

DOMDocument with the diff information or NULL.


Produce merged DOMDocument

  • « XMLDiff\DOM::diff
  • XMLDiff\Memory »
  • PHP Manual
  • XMLDiff\DOM
  • Produce merged DOMDocument

XMLDiff\DOM::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\DOM::merge — Produce merged DOMDocument

Beschreibung

public XMLDiff\DOM::merge ( DOMDocument $src , DOMDocument $diff ) : DOMDocument

Create new DOMDocument based on the diff.

Parameter-Liste

src

Source DOMDocument object.

diff

DOMDocument object containing the diff information.

Rückgabewerte

Merged DOMDocument or NULL.


The XMLDiff\Memory class

(PECL xmldiff >= 0.8.0)

Einführung

Klassenbeschreibung

XMLDiff\Memory extends XMLDiff\Base {
/* Methoden */
public diff ( string $from , string $to ) : string
public merge ( string $src , string $diff ) : string
/* Geerbte Methoden */
public XMLDiff\Base::__construct ( string $nsname )
abstract public XMLDiff\Base::diff ( mixed $from , mixed $to ) : mixed
abstract public XMLDiff\Base::merge ( mixed $src , mixed $diff ) : mixed
}

Inhaltsverzeichnis

  • XMLDiff\Memory::diff — Diff two XML documents
  • XMLDiff\Memory::merge — Produce merged XML document


Diff two XML documents

  • « XMLDiff\Memory
  • XMLDiff\Memory::merge »
  • PHP Manual
  • XMLDiff\Memory
  • Diff two XML documents

XMLDiff\Memory::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\Memory::diff — Diff two XML documents

Beschreibung

public XMLDiff\Memory::diff ( string $from , string $to ) : string

Diff two strings containing XML documents and produce the diff information.

Parameter-Liste

from

Source XML document.

to

Target XML document.

Rückgabewerte

String with the XML document containing the diff information or NULL.


Produce merged XML document

  • « XMLDiff\Memory::diff
  • XMLDiff\File »
  • PHP Manual
  • XMLDiff\Memory
  • Produce merged XML document

XMLDiff\Memory::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\Memory::merge — Produce merged XML document

Beschreibung

public XMLDiff\Memory::merge ( string $src , string $diff ) : string

Create new XML document based on diffs and source document.

Parameter-Liste

src

Source XML document.

diff

XML document containing diff information.

Rückgabewerte

String with the new XML document or NULL.


The XMLDiff\File class

(PECL xmldiff >= 0.8.0)

Einführung

Klassenbeschreibung

XMLDiff\File extends XMLDiff\Base {
/* Methoden */
public diff ( string $from , string $to ) : string
public merge ( string $src , string $diff ) : string
/* Geerbte Methoden */
public XMLDiff\Base::__construct ( string $nsname )
abstract public XMLDiff\Base::diff ( mixed $from , mixed $to ) : mixed
abstract public XMLDiff\Base::merge ( mixed $src , mixed $diff ) : mixed
}

Inhaltsverzeichnis

  • XMLDiff\File::diff — Diff two XML files
  • XMLDiff\File::merge — Produce merged XML document


Diff two XML files

  • « XMLDiff\File
  • XMLDiff\File::merge »
  • PHP Manual
  • XMLDiff\File
  • Diff two XML files

XMLDiff\File::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\File::diff — Diff two XML files

Beschreibung

public XMLDiff\File::diff ( string $from , string $to ) : string

Diff two local XML files and produce string with the diff information.

Parameter-Liste

from

Path to the source document.

to

Path to the target document.

Rückgabewerte

String with the XML document containing the diff information or NULL.


Produce merged XML document

  • « XMLDiff\File::diff
  • XML Parser »
  • PHP Manual
  • XMLDiff\File
  • Produce merged XML document

XMLDiff\File::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\File::merge — Produce merged XML document

Beschreibung

public XMLDiff\File::merge ( string $src , string $diff ) : string

Create new XML document based on diffs and source document.

Parameter-Liste

src

Path to the source XML document.

diff

Path to the XML document with the diff information.

Rückgabewerte

String with the new XML document or NULL.


XML Parser

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Event Handlers
  • Case Folding
  • Error Codes
  • Character Encoding
  • Beispiele
    • XML Element Structure Example
    • XML Tag Mapping Example
    • XML External Entity Example
  • XML Parser Funktionen
    • utf8_decode — Konvertiert eine als UTF-8 kodierte ISO-8859-1-Zeichenkette in eine einfache ISO-8859-1-Zeichenkette
    • utf8_encode — Konvertiert eine ISO-8859-1-Zeichenkette in UTF-8
    • xml_error_string — Get XML parser error string
    • xml_get_current_byte_index — Get current byte index for an XML parser
    • xml_get_current_column_number — Get current column number for an XML parser
    • xml_get_current_line_number — Get current line number for an XML parser
    • xml_get_error_code — Get XML parser error code
    • xml_parse_into_struct — Parse XML data into an array structure
    • xml_parse — Start parsing an XML document
    • xml_parser_create_ns — Create an XML parser with namespace support
    • xml_parser_create — Create an XML parser
    • xml_parser_free — Free an XML parser
    • xml_parser_get_option — Get options from an XML parser
    • xml_parser_set_option — Set options in an XML parser
    • xml_set_character_data_handler — Set up character data handler
    • xml_set_default_handler — Set up default handler
    • xml_set_element_handler — Set up start and end element handlers
    • xml_set_end_namespace_decl_handler — Set up end namespace declaration handler
    • xml_set_external_entity_ref_handler — Set up external entity reference handler
    • xml_set_notation_decl_handler — Set up notation declaration handler
    • xml_set_object — Use XML Parser within an object
    • xml_set_processing_instruction_handler — Set up processing instruction (PI) handler
    • xml_set_start_namespace_decl_handler — Set up start namespace declaration handler
    • xml_set_unparsed_entity_decl_handler — Set up unparsed entity declaration handler
  • XmlParser — The XmlParser class


Einführung

XML (eXtensible Markup Language) is a data format for structured document interchange on the Web. It is a standard defined by The World Wide Web consortium (W3C). Information about XML and related technologies can be found at » http://www.w3.org/XML/.

This PHP extension implements support for James Clark's expat in PHP. This toolkit lets you parse, but not validate, XML documents. It supports three source character encodings also provided by PHP: US-ASCII, ISO-8859-1 and UTF-8. UTF-16 is not supported.

This extension lets you create XML parsers and then define handlers for different XML events. Each XML parser also has a few parameters you can adjust.


Anforderungen

Diese Erweiterung erfordert die Erweiterung libxml. Das heißt, dass die Übergabe von --with-libxml, oder vor PHP 7.4.0 --enable-libxml, ebenfalls benötigt wird. Dies wird jedoch implizit erfüllt, da libxml standardmäßig aktiviert wird.

This extension uses an expat compat layer by default. It can use also expat, which can be found at » http://www.jclark.com/xml/expat.html. The Makefile that comes with expat does not build a library by default, you can use this make rule for that:

libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
A source RPM package of expat can be found at » http://sourceforge.net/projects/expat/.


Installation

Diese Erweiterung ist standardmäßig aktiviert. Sie kann bei der Kompilierung mit der folgenden Option ausgeschaltet werden: --disable-xml

These functions are enabled by default, using the bundled expat library. You can disable XML support with --disable-xml. If you compile PHP as a module for Apache 1.3.9 or later, PHP will automatically use the bundled expat library from Apache. If you don't want to use the bundled expat library, configure PHP with --with-expat-dir=DIR, where DIR should point to the base installation directory of expat.

Die Windowsversion von PHP enthält diese Erweiterung. Um diese Funktionen zu verwenden, müssen Sie keine zusätzlichen Erweiterungen aktivieren.


Ressource-Typen

Prior to PHP 8.0.0, the xml resource as returned by xml_parser_create() and xml_parser_create_ns() referenced an xml parser instance to be used with the functions provided by this extension.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

XML_ERROR_NONE (int)
XML_ERROR_NO_MEMORY (int)
XML_ERROR_SYNTAX (int)
XML_ERROR_NO_ELEMENTS (int)
XML_ERROR_INVALID_TOKEN (int)
XML_ERROR_UNCLOSED_TOKEN (int)
XML_ERROR_PARTIAL_CHAR (int)
XML_ERROR_TAG_MISMATCH (int)
XML_ERROR_DUPLICATE_ATTRIBUTE (int)
XML_ERROR_JUNK_AFTER_DOC_ELEMENT (int)
XML_ERROR_PARAM_ENTITY_REF (int)
XML_ERROR_UNDEFINED_ENTITY (int)
XML_ERROR_RECURSIVE_ENTITY_REF (int)
XML_ERROR_ASYNC_ENTITY (int)
XML_ERROR_BAD_CHAR_REF (int)
XML_ERROR_BINARY_ENTITY_REF (int)
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (int)
XML_ERROR_MISPLACED_XML_PI (int)
XML_ERROR_UNKNOWN_ENCODING (int)
XML_ERROR_INCORRECT_ENCODING (int)
XML_ERROR_UNCLOSED_CDATA_SECTION (int)
XML_ERROR_EXTERNAL_ENTITY_HANDLING (int)
XML_OPTION_CASE_FOLDING (int)
XML_OPTION_TARGET_ENCODING (int)
XML_OPTION_SKIP_TAGSTART (int)
XML_OPTION_SKIP_WHITE (int)
XML_SAX_IMPL (string)
Enthält die SAX Implementierungsmethode. Kann libxml oder expat sein.


Event Handlers

The XML event handlers defined are:

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.
xml_set_start_namespace_decl_handler() | This handler is called for the start of a namespace declaration.
xml_set_end_namespace_decl_handler() | This handler is called for the end of a namespace declaration. Note that this event is not triggered by libXML.


Case Folding

The element handler functions may get their element names case-folded. Case-folding is defined 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

Die folgenden Konstanten sind für XML Fehler-Codes definiert (wie von xml_parse() zurückgegeben):

  • XML_ERROR_NONE
  • XML_ERROR_NO_MEMORY
  • XML_ERROR_SYNTAX
  • XML_ERROR_NO_ELEMENTS
  • XML_ERROR_INVALID_TOKEN
  • XML_ERROR_UNCLOSED_TOKEN
  • XML_ERROR_PARTIAL_CHAR
  • XML_ERROR_TAG_MISMATCH
  • XML_ERROR_DUPLICATE_ATTRIBUTE
  • XML_ERROR_JUNK_AFTER_DOC_ELEMENT
  • XML_ERROR_PARAM_ENTITY_REF
  • XML_ERROR_UNDEFINED_ENTITY
  • XML_ERROR_RECURSIVE_ENTITY_REF
  • XML_ERROR_ASYNC_ENTITY
  • XML_ERROR_BAD_CHAR_REF
  • XML_ERROR_BINARY_ENTITY_REF
  • XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
  • XML_ERROR_MISPLACED_XML_PI
  • XML_ERROR_UNKNOWN_ENCODING
  • XML_ERROR_INCORRECT_ENCODING
  • XML_ERROR_UNCLOSED_CDATA_SECTION
  • XML_ERROR_EXTERNAL_ENTITY_HANDLING


Character Encoding

PHP's XML extension supports the » Unicode character set through different character encodings. There are two types of character encodings, source encoding and target encoding. PHP's internal representation of the document is always encoded with UTF-8.

Source encoding is done when an XML document is parsed. Upon creating an XML parser, a source encoding can be specified (this encoding can not be changed later in the XML parser's lifetime). The supported source encodings are ISO-8859-1, US-ASCII and UTF-8. The former two are single-byte encodings, which means that each character is represented by a single byte. UTF-8 can encode characters composed by a variable number of bits (up to 21) in one to four bytes. The default source encoding used by PHP is ISO-8859-1.

Target encoding is done when PHP passes data to XML handler functions. When an XML parser is created, the target encoding is set to the same as the source encoding, but this may be changed at any point. The target encoding will affect character data as well as tag names and processing instruction targets.

If the XML parser encounters characters outside the range that its source encoding is capable of representing, it will return an error.

If PHP encounters characters in the parsed XML document that can not be represented in the chosen target encoding, the problem characters will be "demoted". Currently, this means that such characters are replaced by a question mark.


Beispiele

Inhaltsverzeichnis

  • XML Element Structure Example
  • XML Tag Mapping Example
  • XML External Entity Example


XML Element Structure Example

This first example displays the structure of the start elements in a document with indentation.

Beispiel #1 Show XML Element Structure

<?php
$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs)
{
    global $depth;

    if (!isset($depth[$parser])) {
        $depth[$parser] = 0;
    }

    for ($i = 0; $i < $depth[$parser]; $i++) {
        echo "  ";
    }
    echo "$name\n";
    $depth[$parser]++;
}

function endElement($parser, $name)
{
    global $depth;
    $depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>


XML Tag Mapping Example

Beispiel #1 Map XML to HTML

This example maps tags in an XML document directly to HTML tags. Elements not found in the "map array" are ignored. Of course, this example will only work with a specific XML document type.

<?php
$file = "data.xml";
$map_array = array(
    "BOLD"     => "B",
    "EMPHASIS" => "I",
    "LITERAL"  => "TT"
);

function startElement($parser, $name, $attrs)
{
    global $map_array;
    if (isset($map_array[$name])) {
        echo "<$map_array[$name]>";
    }
}

function endElement($parser, $name)
{
    global $map_array;
    if (isset($map_array[$name])) {
        echo "</$map_array[$name]>";
    }
}

function characterData($parser, $data)
{
    echo $data;
}

$xml_parser = xml_parser_create();
// use case-folding so we are sure to find the tag in $map_array
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>


XML External Entity Example

This example highlights XML code. It illustrates how to use an external entity reference handler to include and parse other documents, as well as how PIs can be processed, and a way of determining "trust" for PIs containing code.

XML documents that can be used for this example are found below the example (xmltest.xml and xmltest2.xml.)

Beispiel #1 External Entity Example

<?php
$file = "xmltest.xml";

function trustedFile($file)
{
    // only trust local files owned by ourselves
    if (!preg_match("@^([a-z][a-z0-9+.-]*)\:\/\/@i", $file)
        && fileowner($file) == getmyuid()) {
            return true;
    }
    return false;
}

function startElement($parser, $name, $attribs)
{
    echo "&lt;<font color=\"#0000cc\">$name</font>";
    if (count($attribs)) {
        foreach ($attribs as $k => $v) {
            echo " <font color=\"#009900\">$k</font>=\"<font
                   color=\"#990000\">$v</font>\"";
        }
    }
    echo "&gt;";
}

function endElement($parser, $name)
{
    echo "&lt;/<font color=\"#0000cc\">$name</font>&gt;";
}

function characterData($parser, $data)
{
    echo "<b>$data</b>";
}

function PIHandler($parser, $target, $data)
{
    switch (strtolower($target)) {
        case "php":
            global $parser_file;
            // If the parsed document is "trusted", we say it is safe
            // to execute PHP code inside it.  If not, display the code
            // instead.
            if (trustedFile($parser_file[$parser])) {
                eval($data);
            } else {
                printf("Untrusted PHP code: <i>%s</i>",
                        htmlspecialchars($data));
            }
            break;
    }
}

function defaultHandler($parser, $data)
{
    if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") {
        printf('<font color="#aa00aa">%s</font>',
                htmlspecialchars($data));
    } else {
        printf('<font size="-1">%s</font>',
                htmlspecialchars($data));
    }
}

function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId,
                                  $publicId) {
    if ($systemId) {
        if (!list($parser, $fp) = new_xml_parser($systemId)) {
            printf("Could not open entity %s at %s\n", $openEntityNames,
                   $systemId);
            return false;
        }
        while ($data = fread($fp, 4096)) {
            if (!xml_parse($parser, $data, feof($fp))) {
                printf("XML error: %s at line %d while parsing entity %s\n",
                       xml_error_string(xml_get_error_code($parser)),
                       xml_get_current_line_number($parser), $openEntityNames);
                xml_parser_free($parser);
                return false;
            }
        }
        xml_parser_free($parser);
        return true;
    }
    return false;
}

function new_xml_parser($file)
{
    global $parser_file;

    $xml_parser = xml_parser_create();
    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    xml_set_processing_instruction_handler($xml_parser, "PIHandler");
    xml_set_default_handler($xml_parser, "defaultHandler");
    xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");

    if (!($fp = @fopen($file, "r"))) {
        return false;
    }
    if (!is_array($parser_file)) {
        settype($parser_file, "array");
    }
    $parser_file[$xml_parser] = $file;
    return array($xml_parser, $fp);
}

if (!(list($xml_parser, $fp) = new_xml_parser($file))) {
    die("could not open XML input");
}

echo "<pre>";
while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d\n",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
echo "</pre>";
echo "parse complete\n";
xml_parser_free($xml_parser);

?>

Beispiel #2 xmltest.xml

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
 <TITLE>Title &plainEntity;</TITLE>
 <para>
  <informaltable>
   <tgroup cols="3">
    <tbody>
     <row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row>
     <row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
 &systemEntity;
 <section id="about">
  <title>About this Document</title>
  <para>
   <!-- this is a comment -->
   <?php echo 'Hi!  This is PHP version ' . phpversion(); ?>
  </para>
 </section>
</chapter>

This file is included from xmltest.xml:

Beispiel #3 xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php echo "This is some more PHP code being executed."; ?>
</foo>


XML Parser Funktionen

Inhaltsverzeichnis

  • utf8_decode — Konvertiert eine als UTF-8 kodierte ISO-8859-1-Zeichenkette in eine einfache ISO-8859-1-Zeichenkette
  • utf8_encode — Konvertiert eine ISO-8859-1-Zeichenkette in UTF-8
  • xml_error_string — Get XML parser error string
  • xml_get_current_byte_index — Get current byte index for an XML parser
  • xml_get_current_column_number — Get current column number for an XML parser
  • xml_get_current_line_number — Get current line number for an XML parser
  • xml_get_error_code — Get XML parser error code
  • xml_parse_into_struct — Parse XML data into an array structure
  • xml_parse — Start parsing an XML document
  • xml_parser_create_ns — Create an XML parser with namespace support
  • xml_parser_create — Create an XML parser
  • xml_parser_free — Free an XML parser
  • xml_parser_get_option — Get options from an XML parser
  • xml_parser_set_option — Set options in an XML parser
  • xml_set_character_data_handler — Set up character data handler
  • xml_set_default_handler — Set up default handler
  • xml_set_element_handler — Set up start and end element handlers
  • xml_set_end_namespace_decl_handler — Set up end namespace declaration handler
  • xml_set_external_entity_ref_handler — Set up external entity reference handler
  • xml_set_notation_decl_handler — Set up notation declaration handler
  • xml_set_object — Use XML Parser within an object
  • xml_set_processing_instruction_handler — Set up processing instruction (PI) handler
  • xml_set_start_namespace_decl_handler — Set up start namespace declaration handler
  • xml_set_unparsed_entity_decl_handler — Set up unparsed entity declaration handler


Konvertiert eine als UTF-8 kodierte ISO-8859-1-Zeichenkette in eine einfache ISO-8859-1-Zeichenkette

  • « XML Parser Funktionen
  • utf8_encode »
  • PHP Manual
  • XML Parser Funktionen
  • Konvertiert eine als UTF-8 kodierte ISO-8859-1-Zeichenkette in eine einfache ISO-8859-1-Zeichenkette

utf8_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_decode — Konvertiert eine als UTF-8 kodierte ISO-8859-1-Zeichenkette in eine einfache ISO-8859-1-Zeichenkette

Beschreibung

utf8_decode ( string $string ) : string

Diese Funktion konvertiert die Zeichenkette string von der UTF-8-Kodierung nach ISO-8859-1. Bytes in der Zeichenkette, die kein gültiges UTF-8 sind, und UTF-8-Zeichen, die nicht in ISO-8859-1 existieren (also Zeichen größer als U+00FF), werden durch ? ersetzt.

Hinweis:

Viele Webseiten, die ausgewiesen sind, die ISO-8859-1-Zeichenkodierung zu verwenden, nutzen in Wirklichkeit die ähnliche Windows-1252-Kodierung, und Webbrowser interpretieren ISO-8859-1-Webseiten als Windows-1252. Windows-1252 ermöglicht zusätzliche druckbare Zeichen, so wie das Euro-Zeichen (€) und geschweifte Anführungszeichen (“”), anstelle von bestimmten ISO-8859-1-Kontrollzeichen. Diese Funktion konvertiert solche Windows-1252-Zeichen nicht korrekt. Verwenden Sie eine andere Funktion, wenn Windows-1252-Konvertierung erforderlich ist.

Parameter-Liste

string

Eine UTF-8-kodierte Zeichenkette.

Rückgabewerte

Gibt die ISO-8859-1-Übersetzung von string zurück.

Changelog

Version | Beschreibung
7.2.0 | Diese Funktion wurde in den Kern von PHP verschoben, so dass sie nun auch ohne die XML-Extension verfügbar ist.

Siehe auch

  • utf8_encode() - Konvertiert eine ISO-8859-1-Zeichenkette in UTF-8 - Führt die umgekehrte Konvertierung durch
  • mb_convert_encoding() - Convert character encoding - Konvertiert zwischen verschiedenen Zeichenkodierungen, einschließlich UTF-8, ISO-8859-1 und Windows-1252
  • iconv() - Konvertiert Zeichenketten in einen anderen Zeichensatz - Konvertiert zwischen verschiedenen Zeichenkodierungen
  • recode_string() - Kodiert einen Strings entsprechend einer Recode-Anweisung um - Konvertiert zwischen verschiedenen Zeichenkodierungen


Konvertiert eine ISO-8859-1-Zeichenkette in UTF-8

  • « utf8_decode
  • xml_error_string »
  • PHP Manual
  • XML Parser Funktionen
  • Konvertiert eine ISO-8859-1-Zeichenkette in UTF-8

utf8_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_encode — Konvertiert eine ISO-8859-1-Zeichenkette in UTF-8

Beschreibung

utf8_encode ( string $string ) : string

Diese Funktion konvertiert die Zeichenkette string von der ISO-8859-1-Kodierung nach UTF-8.

Hinweis:

Viele Webseiten, die ausgewiesen sind, die ISO-8859-1-Zeichenkodierung zu verwenden, nutzen in Wirklichkeit die ähnliche Windows-1252-Kodierung, und Webbrowser interpretieren ISO-8859-1-Webseiten als Windows-1252. Windows-1252 ermöglicht zusätzliche druckbare Zeichen, so wie das Euro-Zeichen (€) und geschweifte Anführungszeichen (“”), anstelle von bestimmten ISO-8859-1-Kontrollzeichen. Diese Funktion konvertiert solche Windows-1252-Zeichen nicht korrekt. Verwenden Sie eine andere Funktion, wenn Windows-1252-Konvertierung erforderlich ist.

Parameter-Liste

string

Eine ISO-8859-1-kodierte Zeichenkette.

Rückgabewerte

Gibt die UTF-8-Übersetzung von string zurück.

Changelog

Version | Beschreibung
7.2.0 | Diese Funktion wurde in den Kern von PHP verschoben, so dass sie nun auch ohne die XML-Extension verfügbar ist.

Siehe auch

  • utf8_decode() - Konvertiert eine als UTF-8 kodierte ISO-8859-1-Zeichenkette in eine einfache ISO-8859-1-Zeichenkette - Führt die umgekehrte Konvertierung durch
  • mb_convert_encoding() - Convert character encoding - Konvertiert zwischen verschiedenen Zeichenkodierungen, einschließlich UTF-8, ISO-8859-1 und Windows-1252
  • iconv() - Konvertiert Zeichenketten in einen anderen Zeichensatz - Konvertiert zwischen verschiedenen Zeichenkodierungen
  • recode_string() - Kodiert einen Strings entsprechend einer Recode-Anweisung um - Konvertiert zwischen verschiedenen Zeichenkodierungen


Get XML parser error string

  • « utf8_encode
  • xml_get_current_byte_index »
  • PHP Manual
  • XML Parser Funktionen
  • Get XML parser error string

xml_error_string

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_error_string — Get XML parser error string

Beschreibung

xml_error_string ( int $error_code ) : string|null

Gets the XML parser error string associated with the given error_code.

Parameter-Liste

error_code

An error code from xml_get_error_code().

Rückgabewerte

Returns a string with a textual description of the error error_code, or false if no description was found.

Siehe auch

  • xml_get_error_code() - Get XML parser error code


Get current byte index for an XML parser

  • « xml_error_string
  • xml_get_current_column_number »
  • PHP Manual
  • XML Parser Funktionen
  • Get current byte index for an XML parser

xml_get_current_byte_index

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_get_current_byte_index — Get current byte index for an XML parser

Beschreibung

xml_get_current_byte_index ( XMLParser $parser ) : int

Gets the current byte index of the given XML parser.

Parameter-Liste

parser

A reference to the XML parser to get byte index from.

Rückgabewerte

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).

Anmerkungen

Warnung

This function returns byte index according to UTF-8 encoded text disregarding if input is in another encoding.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.

Siehe auch

  • xml_get_current_column_number() - Get current column number for an XML parser
  • xml_get_current_line_number() - Get current line number for an XML parser


Get current column number for an XML parser

  • « xml_get_current_byte_index
  • xml_get_current_line_number »
  • PHP Manual
  • XML Parser Funktionen
  • Get current column number for an XML parser

xml_get_current_column_number

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_get_current_column_number — Get current column number for an XML parser

Beschreibung

xml_get_current_column_number ( XMLParser $parser ) : int

Gets the current column number of the given XML parser.

Parameter-Liste

parser

A reference to the XML parser to get column number from.

Rückgabewerte

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.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.

Siehe auch

  • xml_get_current_byte_index() - Get current byte index for an XML parser
  • xml_get_current_line_number() - Get current line number for an XML parser


Get current line number for an XML parser

  • « xml_get_current_column_number
  • xml_get_error_code »
  • PHP Manual
  • XML Parser Funktionen
  • Get current line number for an XML parser

xml_get_current_line_number

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_get_current_line_number — Get current line number for an XML parser

Beschreibung

xml_get_current_line_number ( XMLParser $parser ) : int

Gets the current line number for the given XML parser.

Parameter-Liste

parser

A reference to the XML parser to get line number from.

Rückgabewerte

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.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.

Siehe auch

  • 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


Get XML parser error code

  • « xml_get_current_line_number
  • xml_parse_into_struct »
  • PHP Manual
  • XML Parser Funktionen
  • Get XML parser error code

xml_get_error_code

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_get_error_code — Get XML parser error code

Beschreibung

xml_get_error_code ( XMLParser $parser ) : int

Gets the XML parser error code.

Parameter-Liste

parser

A reference to the XML parser to get error code from.

Rückgabewerte

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.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.

Siehe auch

  • xml_error_string() - Get XML parser error string


Parse XML data into an array structure

  • « xml_get_error_code
  • xml_parse »
  • PHP Manual
  • XML Parser Funktionen
  • Parse XML data into an array structure

xml_parse_into_struct

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parse_into_struct — Parse XML data into an array structure

Beschreibung

xml_parse_into_struct ( XMLParser $parser , string $data , array &$values , array &$index = null ) : int

This function parses an XML string 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.

Parameter-Liste

parser

A reference to the XML parser.

data

A string containing the XML data.

values

An array containing the values of the XML data

index

An array containing pointers to the location of the appropriate values in the $values.

Rückgabewerte

xml_parse_into_struct() returns 0 for failure and 1 for success. This is not the same as false and true, be careful with operators such as ===.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.

Beispiele

Below is an example that illustrates the internal structure of the arrays being generated by the function. We use a simple note tag embedded inside a para tag, and then we parse this and print out the structures generated:

Beispiel #1 xml_parse_into_struct() example

<?php
$simple = "<para><note>simple note</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "Index array\n";
print_r($index);
echo "\nVals array\n";
print_r($vals);
?>

When we run that code, the output will be:

Index array
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Vals array
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => simple note
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

Event-driven parsing (based on the expat library) can get complicated when you have an XML document that is complex. This function does not produce a DOM style object, but it generates structures amenable of being transversed in a tree fashion. Thus, we can create objects representing the data in the XML file easily. Let's consider the following XML file representing a small database of aminoacids information:

Beispiel #2 moldb.xml - small database of molecular information

<?xml version="1.0"?>
<moldb>

  <molecule>
      <name>Alanine</name>
      <symbol>ala</symbol>
      <code>A</code>
      <type>hydrophobic</type>
  </molecule>

  <molecule>
      <name>Lysine</name>
      <symbol>lys</symbol>
      <code>K</code>
      <type>charged</type>
  </molecule>

</moldb>
And some code to parse the document and generate the appropriate objects:

Beispiel #3 parsemoldb.php - parses moldb.xml into an array of molecular objects

<?php

class AminoAcid {
    var $name;  // aa name
    var $symbol;    // three letter symbol
    var $code;  // one letter code
    var $type;  // hydrophobic, charged or neutral

    function __construct ($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
        )

)


Start parsing an XML document

  • « xml_parse_into_struct
  • xml_parser_create_ns »
  • PHP Manual
  • XML Parser Funktionen
  • Start parsing an XML document

xml_parse

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parse — Start parsing an XML document

Beschreibung

xml_parse ( XMLParser $parser , string $data , bool $is_final = false ) : int

xml_parse() parses an XML document. The handlers for the configured events are called as many times as necessary.

Parameter-Liste

parser

A reference to the XML parser to use.

data

Chunk of data to parse. A document may be parsed piece-wise by calling xml_parse() several times with new data, as long as the is_final parameter is set and true when the last data is parsed.

is_final

If set and true, data is the last piece of data sent in this parse.

Rückgabewerte

Returns 1 on success or 0 on failure.

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

Hinweis:

Some errors (such as entity errors) are reported at the end of the data, thus only if is_final is set and true.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.

Beispiele

Beispiel #1 Chunked parsing of large XML documents

This example shows how large XML documents can be read and parsed in chunks, so that it not necessary to keep the whole document in memory. Error handling is omitted for brevity.

<?php
$stream = fopen('large.xml', 'r');
$parser = xml_parser_create();
// set up the handlers here
while (($data = fread($stream, 16384))) {
    xml_parse($parser, $data); // parse the current chunk
}
xml_parse($parser, '', true); // finalize parsing
xml_parser_free($parser);
fclose($stream);


Create an XML parser with namespace support

  • « xml_parse
  • xml_parser_create »
  • PHP Manual
  • XML Parser Funktionen
  • Create an XML parser with namespace support

xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_parser_create_ns — Create an XML parser with namespace support

Beschreibung

xml_parser_create_ns ( string|null $encoding = null , string $separator = ":" ) : XMLParser

xml_parser_create_ns() creates a new XML parser with XML namespace support and returns a XMLParser instance to be used by the other XML functions.

Parameter-Liste

encoding

The input encoding is automatically detected, so that the encoding parameter specifies only the output encoding. In PHP 5.0.0 and 5.0.1, the default output charset is ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported encodings are ISO-8859-1, UTF-8 and US-ASCII.

separator

With a namespace aware parser tag parameters passed to the various handler functions will consist of namespace and tag name separated by the string specified in separator.

Rückgabewerte

Returns a new XMLParser instance.

Changelog

Version | Beschreibung
8.0.0 | This function returns an XMLParser instance now; previously, a resource was returned, Im Fehlerfall wird false zurückgegeben..
8.0.0 | encoding is nullable now.

Siehe auch

  • xml_parser_create() - Create an XML parser
  • xml_parser_free() - Free an XML parser


Create an XML parser

  • « xml_parser_create_ns
  • xml_parser_free »
  • PHP Manual
  • XML Parser Funktionen
  • Create an XML parser

xml_parser_create

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_create — Create an XML parser

Beschreibung

xml_parser_create ( string|null $encoding = null ) : XMLParser

xml_parser_create() creates a new XML parser and returns a XMLParser instance to be used by the other XML functions.

Parameter-Liste

encoding

The optional encoding specifies the character encoding for the input/output in PHP 4. Starting from PHP 5, the input encoding is automatically detected, so that the encoding parameter specifies only the output encoding. In PHP 4, the default output encoding is the same as the input charset. If empty string is passed, the parser attempts to identify which encoding the document is encoded in by looking at the heading 3 or 4 bytes. In PHP 5.0.0 and 5.0.1, the default output charset is ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported encodings are ISO-8859-1, UTF-8 and US-ASCII.

Rückgabewerte

Returns a new XMLParser instance.

Changelog

Version | Beschreibung
8.0.0 | This function returns an XMLParser instance now; previously, a resource was returned, Im Fehlerfall wird false zurückgegeben..
8.0.0 | encoding is nullable now.

Siehe auch

  • xml_parser_create_ns() - Create an XML parser with namespace support
  • xml_parser_free() - Free an XML parser


Free an XML parser

  • « xml_parser_create
  • xml_parser_get_option »
  • PHP Manual
  • XML Parser Funktionen
  • Free an XML parser

xml_parser_free

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_free — Free an XML parser

Beschreibung

xml_parser_free ( XMLParser $parser ) : bool

Frees the given XML parser.

Achtung

In addition to calling xml_parser_free() when the parsing is finished, prior to PHP 8.0.0, it was necessary to also explicitly unset the reference to parser to avoid memory leaks, if the parser resource is referenced from an object, and this object references that parser resource.

Parameter-Liste

parser
A reference to the XML parser to free.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.


Get options from an XML parser

  • « xml_parser_free
  • xml_parser_set_option »
  • PHP Manual
  • XML Parser Funktionen
  • Get options from an XML parser

xml_parser_get_option

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_get_option — Get options from an XML parser

Beschreibung

xml_parser_get_option ( XMLParser $parser , int $option ) : string|int

Gets an option value from an XML parser.

Parameter-Liste

parser
A reference to the XML parser to get an option from.
option
Which option to fetch. XML_OPTION_CASE_FOLDING, XML_OPTION_SKIP_TAGSTART, XML_OPTION_SKIP_WHITE and XML_OPTION_TARGET_ENCODING are available. See xml_parser_set_option() for their description.

Rückgabewerte

This function returns false if parser does not refer to a valid parser or if option isn't valid (generates also a E_WARNING). Else the option's value is returned.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.
7.1.24, 7.2.12, 7.3.0 | options now supports XML_OPTION_SKIP_TAGSTART and XML_OPTION_SKIP_WHITE.


Set options in an XML parser

  • « xml_parser_get_option
  • xml_set_character_data_handler »
  • PHP Manual
  • XML Parser Funktionen
  • Set options in an XML parser

xml_parser_set_option

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_set_option — Set options in an XML parser

Beschreibung

xml_parser_set_option ( XMLParser $parser , int $option , string|int $value ) : bool

Sets an option in an XML parser.

Parameter-Liste

parser

A reference to the XML parser to set an option in.

option

Which option to set. See below.

The following options are available:

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_SKIP_TAGSTART | integer | Specify how many characters should be skipped in the beginning of a tag name.
XML_OPTION_SKIP_WHITE | integer | Whether to skip values consisting of whitespace characters.
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.

value

The option's new value.

Rückgabewerte

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.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.


Set up character data handler

  • « xml_parser_set_option
  • xml_set_default_handler »
  • PHP Manual
  • XML Parser Funktionen
  • Set up character data handler

xml_set_character_data_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_character_data_handler — Set up character data handler

Beschreibung

xml_set_character_data_handler ( XMLParser $parser , callable $handler ) : bool

Sets the character data handler function for the XML parser parser.

Parameter-Liste

parser

A reference to the XML parser to set up character data handler function.

handler

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 ( XMLParser $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.

Character data handler is called for every piece of a text in the XML document. It can be called multiple times inside each fragment (e.g. for non-ASCII strings).

If a handler function is set to an empty string, or false, the handler in question is disabled.

Hinweis: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.


Set up default handler

  • « xml_set_character_data_handler
  • xml_set_element_handler »
  • PHP Manual
  • XML Parser Funktionen
  • Set up default handler

xml_set_default_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_default_handler — Set up default handler

Beschreibung

xml_set_default_handler ( XMLParser $parser , callable $handler ) : bool

Sets the default handler function for the XML parser parser.

Parameter-Liste

parser

A reference to the XML parser to set up default handler function.

handler

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 ( XMLParser $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.

Hinweis: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Set up start and end element handlers

  • « xml_set_default_handler
  • xml_set_end_namespace_decl_handler »
  • PHP Manual
  • XML Parser Funktionen
  • Set up start and end element handlers

xml_set_element_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_element_handler — Set up start and end element handlers

Beschreibung

xml_set_element_handler ( XMLParser $parser , callable $start_handler , callable $end_handler ) : bool

Sets the element handler functions for the XML parser. start_handler and end_handler are strings containing the names of functions that must exist when xml_parse() is called for parser.

Parameter-Liste

parser

A reference to the XML parser to set up start and end element handler functions.

start_handler

The function named by start_handler must accept three parameters:

start_element_handler ( XMLParser $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.

Hinweis: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

end_handler

The function named by end_handler must accept two parameters:

end_element_handler ( XMLParser $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.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.


Set up end namespace declaration handler

  • « xml_set_element_handler
  • xml_set_external_entity_ref_handler »
  • PHP Manual
  • XML Parser Funktionen
  • Set up end namespace declaration handler

xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_set_end_namespace_decl_handler — Set up end namespace declaration handler

Beschreibung

xml_set_end_namespace_decl_handler ( XMLParser $parser , callable $handler ) : bool

Set a handler to be called when leaving the scope of a namespace declaration. This will be called, for each namespace declaration, after the handler for the end tag of the element in which the namespace was declared.

Achtung

This event is not supported under libXML, so a registered handler wouldn't be called.

Parameter-Liste

parser

A reference to the XML parser.

handler

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, and should return an integer value. If the value returned from the handler is false (which it will be if no value is returned), the XML parser will stop parsing and xml_get_error_code() will return XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( XMLParser $parser , string $prefix )
parser
The first parameter, parser, is a reference to the XML parser calling the handler.
prefix
The prefix is a string used to reference the namespace within an XML object.

If a handler function is set to an empty string, or false, the handler in question is disabled.

Hinweis: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.

Siehe auch

  • xml_set_start_namespace_decl_handler() - Set up start namespace declaration handler


Set up external entity reference handler

  • « xml_set_end_namespace_decl_handler
  • xml_set_notation_decl_handler »
  • PHP Manual
  • XML Parser Funktionen
  • Set up external entity reference handler

xml_set_external_entity_ref_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_external_entity_ref_handler — Set up external entity reference handler

Beschreibung

xml_set_external_entity_ref_handler ( XMLParser $parser , callable $handler ) : bool

Sets the external entity reference handler function for the XML parser parser.

Parameter-Liste

parser

A reference to the XML parser to set up external entity reference handler function.

handler

handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept five parameters, and should return an integer value.If the value returned from the handler is false (which it will be if no value is returned), the XML parser will stop parsing and xml_get_error_code() will return XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( XMLParser $parser , string $open_entity_names , string $base , string $system_id , string $public_id )
parser
The first parameter, parser, is a reference to the XML parser calling the handler.
open_entity_names
The second parameter, open_entity_names, is a space-separated list of the names of the entities that are open for the parse of this entity (including the name of the referenced entity).
base
This is the base for resolving the system identifier (system_id) of the external entity.Currently this parameter will always be set to an empty string.
system_id
The fourth parameter, system_id, is the system identifier as specified in the entity declaration.
public_id
The fifth parameter, public_id, is the public identifier as specified in the entity declaration, or an empty string if none was specified; the whitespace in the public identifier will have been normalized as required by the XML spec.

If a handler function is set to an empty string, or false, the handler in question is disabled.

Hinweis: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.
7.3.0 | The return value of the handler is no longer ignored if the extension has been built against libxml. Formerly, the return value has been ignored, and parsing did never stop.


Set up notation declaration handler

  • « xml_set_external_entity_ref_handler
  • xml_set_object »
  • PHP Manual
  • XML Parser Funktionen
  • Set up notation declaration handler

xml_set_notation_decl_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_notation_decl_handler — Set up notation declaration handler

Beschreibung

xml_set_notation_decl_handler ( XMLParser $parser , callable $handler ) : bool

Sets the notation declaration handler function for the XML parser parser.

A notation declaration is part of the document's DTD and has the following format:

<!NOTATION <parameter>name</parameter>
{ <parameter>systemId</parameter> | <parameter>publicId</parameter>?>
See » section 4.7 of the XML 1.0 spec for the definition of notation declarations.

Parameter-Liste

parser

A reference to the XML parser to set up notation declaration handler function.

handler

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:

handler ( XMLParser $parser , string $notation_name , string $base , string $system_id , string $public_id )
parser
The first parameter, parser, is a reference to the XML parser calling the handler.
notation_name
This is the notation's name, as per the notation format described above.
base
This is the base for resolving the system identifier (system_id) of the notation declaration. Currently this parameter will always be set to an empty string.
system_id
System identifier of the external notation declaration.
public_id
Public identifier of the external notation declaration.

If a handler function is set to an empty string, or false, the handler in question is disabled.

Hinweis: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.


Use XML Parser within an object

  • « xml_set_notation_decl_handler
  • xml_set_processing_instruction_handler »
  • PHP Manual
  • XML Parser Funktionen
  • Use XML Parser within an object

xml_set_object

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_object — Use XML Parser within an object

Beschreibung

xml_set_object ( XMLParser $parser , object $object ) : bool

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.

Parameter-Liste

parser

A reference to the XML parser to use inside the object.

object

The object where to use the XML parser.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.

Beispiele

Beispiel #1 xml_set_object() example

<?php
class XMLParser
{
    private $parser;

    function __construct()
    {
        $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 __destruct()
    {
        xml_parser_free($this->parser);
        unset($this->parser);
    }

    function parse($data)
    {
        xml_parse($this->parser, $data);
    }

    function tag_open($parser, $tag, $attributes)
    {
        var_dump($tag, $attributes);
    }

    function cdata($parser, $cdata)
    {
        var_dump($cdata);
    }

    function tag_close($parser, $tag)
    {
        var_dump($tag);
    }
}

$xml_parser = new XMLParser();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(1) "A"
array(1) {
  ["ID"]=>
  string(5) "hallo"
}
string(3) "PHP"
string(1) "A"


Set up processing instruction (PI) handler

  • « xml_set_object
  • xml_set_start_namespace_decl_handler »
  • PHP Manual
  • XML Parser Funktionen
  • Set up processing instruction (PI) handler

xml_set_processing_instruction_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_processing_instruction_handler — Set up processing instruction (PI) handler

Beschreibung

xml_set_processing_instruction_handler ( XMLParser $parser , callable $handler ) : bool

Sets the processing instruction (PI) handler function for the XML parser 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.

Parameter-Liste

parser

A reference to the XML parser to set up processing instruction (PI) handler function.

handler

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 three parameters:

handler ( XMLParser $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.

Hinweis: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.


Set up start namespace declaration handler

  • « xml_set_processing_instruction_handler
  • xml_set_unparsed_entity_decl_handler »
  • PHP Manual
  • XML Parser Funktionen
  • Set up start namespace declaration handler

xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_set_start_namespace_decl_handler — Set up start namespace declaration handler

Beschreibung

xml_set_start_namespace_decl_handler ( XMLParser $parser , callable $handler ) : bool

Set a handler to be called when a namespace is declared. Namespace declarations occur inside start tags. But the namespace declaration start handler is called before the start tag handler for each namespace declared in that start tag.

Parameter-Liste

parser

A reference to the XML parser.

handler

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 three parameters, and should return an integer value. If the value returned from the handler is false (which it will be if no value is returned), the XML parser will stop parsing and xml_get_error_code() will return XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( XMLParser $parser , string $prefix , string $uri )
parser
The first parameter, parser, is a reference to the XML parser calling the handler.
prefix
The prefix is a string used to reference the namespace within an XML object.
uri
Uniform Resource Identifier (URI) of namespace.

If a handler function is set to an empty string, or false, the handler in question is disabled.

Hinweis: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.

Siehe auch

  • xml_set_end_namespace_decl_handler() - Set up end namespace declaration handler


Set up unparsed entity declaration handler

  • « xml_set_start_namespace_decl_handler
  • XmlParser »
  • PHP Manual
  • XML Parser Funktionen
  • Set up unparsed entity declaration handler

xml_set_unparsed_entity_decl_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_unparsed_entity_decl_handler — Set up unparsed entity declaration handler

Beschreibung

xml_set_unparsed_entity_decl_handler ( XMLParser $parser , callable $handler ) : bool

Sets the unparsed entity declaration handler function for the XML parser parser.

The handler will be called if the XML parser encounters an external entity declaration with an NDATA declaration, like the following:

<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
        NDATA <parameter>notationName</parameter>

See » section 4.2.2 of the XML 1.0 spec for the definition of notation declared external entities.

Parameter-Liste

parser

A reference to the XML parser to set up unparsed entity declaration handler function.

handler

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 six parameters:

handler ( XMLParser $parser , string $entity_name , string $base , string $system_id , string $public_id , string $notation_name )
parser
The first parameter, parser, is a reference to the XML parser calling the handler.
entity_name
The name of the entity that is about to be defined.
base
This is the base for resolving the system identifier (systemId) of the external entity.Currently this parameter will always be set to an empty string.
system_id
System identifier for the external entity.
public_id
Public identifier for the external entity.
notation_name
Name of the notation of this entity (see xml_set_notation_decl_handler()).

If a handler function is set to an empty string, or false, the handler in question is disabled.

Hinweis: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | parser expects an XMLParser instance now; previously, a resource was expected.


The XmlParser class

(PHP 8)

Einführung

A fully opaque class which replaces xml resources as of PHP 8.0.0.

Klassenbeschreibung

final XmlParser {
}


XMLReader

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • XMLReader — Die XMLReader Klasse
    • XMLReader::close — XMLReader-Eingabe beenden
    • XMLReader::expand — Gibt eine Kopie des aktuellen Knotens als DOM-Objekt zurück
    • XMLReader::getAttribute — Gibt den Wert eines Attributes nach Namen zurück
    • XMLReader::getAttributeNo — Gibt den Wert eines Attributes nach Position zurück
    • XMLReader::getAttributeNs — Gibt den Wert eines Attributes nach lokalem Namen und URI zurück
    • XMLReader::getParserProperty — Zeigt an, ob die angegebene Eigenschaft gesetzt wurde
    • XMLReader::isValid — Zeigt an, ob das geparste Dokument valide ist
    • XMLReader::lookupNamespace — Prüft, ob ein Namensbereich für einen Präfix vorhanden ist
    • XMLReader::moveToAttribute — Zeiger auf benanntes Attribut setzen
    • XMLReader::moveToAttributeNo — Move cursor to an attribute by index
    • XMLReader::moveToAttributeNs — Move cursor to a named attribute
    • XMLReader->moveToElement — Zeiger positionieren auf das Elternelement des aktuellen Attributes
    • XMLReader::moveToFirstAttribute — Zeiger auf erstes Attribut setzen
    • XMLReader::moveToNextAttribute — Zeiger auf nächstes Attribut setzen
    • XMLReader::next — Zeiger auf nächstes Element setzen und Kinder überspringen
    • XMLReader::open — URI angeben, die auf XML-Inhalt verweist, der geparst werden soll
    • XMLReader::read — Zeiger auf das nächste Element setzen
    • XMLReader::readInnerXml — Erhalte XML des aktuellen Knotens
    • XMLReader::readOuterXml — Liest XML des aktuellen Knotens, inklusive den Knoten selbst
    • XMLReader::readString — Liest den Inhalt des aktuellen Knotens als Zeichenkette
    • XMLReader::setParserProperty — Parser-Optionen setzen
    • XMLReader::setRelaxNGSchema — Dateiname oder URI des RelaxNG-Schema setzen
    • XMLReader::setRelaxNGSchemaSource — Zeichenkette setzen, die RelaxNG-Schemadaten enthält
    • XMLReader::setSchema — Validiert Dokument gegen XSD
    • XMLReader::XML — Zeichenkette setzen, deren Inhalt geparst werden soll


Einführung

Die XMLReader-Erweiterung ist ein fortschreitender XML-Parser. Der Reader agiert wie ein Zeiger, der einen Datenstrom durchläuft und jeden vorbeikommenden Knoten der Reihe nach verarbeitet.

Encoding

Es ist wichtig zu beachten, dass die libxml intern die UTF-8 Kodierung verwendet und der gewonnene Inhalt daher immer in UTF-8 Kodierung vorliegt.


Installation

Die XMLReader-Erweiterung steht für PHP 5.0.0 unter PECL zur Verfügung. Ab PHP 5.1.0 ist sie standardmäßig mitgeliefert und seit PHP 5.1.2 standardmäßig aktiviert.

Diese Erweiterung ist standardmäßig aktiviert. Sie kann bei der Kompilierung mit der folgenden Option ausgeschaltet werden: --disable-xmlreader


  • « Laufzeit-Konfiguration
  • XMLReader »
  • PHP Manual
  • Installation/Konfiguration
  • Ressource-Typen

Ressource-Typen

Diese Erweiterung definiert keine Ressource-Typen.


Die XMLReader Klasse

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Einführung

Die XMLReader-Erweiterung ist ein fortschreitender XML-Parser. Der Reader agiert wie ein Zeiger, der einen Datenstrom durchläuft und jeden vorbeikommenden Knoten der Reihe nach verarbeitet.

Klassenbeschreibung

XMLReader {
/* Konstanten */
const int NONE = 0 ;
const int ELEMENT = 1 ;
const int ATTRIBUTE = 2 ;
const int TEXT = 3 ;
const int CDATA = 4 ;
const int ENTITY_REF = 5 ;
const int ENTITY = 6 ;
const int PI = 7 ;
const int COMMENT = 8 ;
const int DOC = 9 ;
const int DOC_TYPE = 10 ;
const int DOC_FRAGMENT = 11 ;
const int NOTATION = 12 ;
const int WHITESPACE = 13 ;
const int SIGNIFICANT_WHITESPACE = 14 ;
const int END_ELEMENT = 15 ;
const int END_ENTITY = 16 ;
const int XML_DECLARATION = 17 ;
const int LOADDTD = 1 ;
const int DEFAULTATTRS = 2 ;
const int VALIDATE = 3 ;
const int SUBST_ENTITIES = 4 ;
/* Eigenschaften */
public readonly int $attributeCount ;
public readonly string $baseURI ;
public readonly int $depth ;
public readonly bool $hasAttributes ;
public readonly bool $hasValue ;
public readonly bool $isDefault ;
public readonly bool $isEmptyElement ;
public readonly string $localName ;
public readonly string $name ;
public readonly string $namespaceURI ;
public readonly int $nodeType ;
public readonly string $prefix ;
public readonly string $value ;
public readonly string $xmlLang ;
/* Methoden */
public close ( ) : bool
public expand ( DOMNode|null $baseNode = null ) : DOMNode|false
public getAttribute ( string $name ) : string|null
public getAttributeNo ( int $index ) : string|null
public getAttributeNs ( string $name , string $namespace ) : string|null
public getParserProperty ( int $property ) : bool
public isValid ( ) : bool
public lookupNamespace ( string $prefix ) : string|null
public moveToAttribute ( string $name ) : bool
public moveToAttributeNo ( int $index ) : bool
public moveToAttributeNs ( string $name , string $namespace ) : bool
public moveToElement ( ) : bool
public moveToFirstAttribute ( ) : bool
public moveToNextAttribute ( ) : bool
public next ( string|null $name = null ) : bool
public static open ( string $uri , string|null $encoding = null , int $flags = 0 ) : bool|XMLReader
public read ( ) : bool
public readInnerXml ( ) : string
public readOuterXml ( ) : string
public readString ( ) : string
public setParserProperty ( int $property , bool $value ) : bool
public setRelaxNGSchema ( string|null $filename ) : bool
public setRelaxNGSchemaSource ( string|null $source ) : bool
public setSchema ( string|null $filename ) : bool
public static XML ( string $source , string|null $encoding = null , int $flags = 0 ) : bool|XMLReader
}

Eigenschaften

attributeCount

Anzahl der Attribute des aktuellen Knotens

baseURI

Die Basis URI des Knotens

depth

Tiefe des Knotens im Baum, beginnend mit 0

hasAttributes

Ob der Knoten Attribute besitzt

hasValue

Ob der Knoten einen Text-Wert besitzt

isDefault

Ob das Attribute als Standard aus der DTD übernommen wurde

isEmptyElement

Ob das Element leer ist

localName

Der lokale Name des Knotens

name

Der qualifizierte Name des Knotens

namespaceURI

Die URI des Namespaces, welcher mit dem Knoten assoziiert ist

nodeType

Der Typ des Knotens

prefix

Der Präfix, welcher mit dem Namespaces des Knotens assoziiert wird

value

Der Text-Wert des Knotens

xmlLang

Der xml:lang Scope des Knotens

Vordefinierte Konstanten

XMLReader Node Typen

XMLReader::NONE

Kein Typ

XMLReader::ELEMENT

Startendes Element

XMLReader::ATTRIBUTE

Attribut

XMLReader::TEXT

Text

XMLReader::CDATA

CDATA Abschnitt

XMLReader::ENTITY_REF

Entität-Referenz

XMLReader::ENTITY

Entität-Deklaration

XMLReader::PI

Verarbeitungsanweisung

XMLReader::COMMENT

Kommentar

XMLReader::DOC

Dokument Knoten

XMLReader::DOC_TYPE

Dokument Typ

XMLReader::DOC_FRAGMENT

Dokument Fragment Knoten

XMLReader::NOTATION

Notation

XMLReader::WHITESPACE

Leerzeichen

XMLReader::SIGNIFICANT_WHITESPACE

Signifikante Leerzeichen

XMLReader::END_ELEMENT

Schließendes Element

XMLReader::END_ENTITY

Entitätsende

XMLReader::XML_DECLARATION

XML Deklaration

XMLReader Parser Optionen

XMLReader::LOADDTD

DTD laden aber nicht validieren

XMLReader::DEFAULTATTRS

DTD und Standardattribute laden aber nicht validieren

XMLReader::VALIDATE

DTD laden und beim Parsen validieren

XMLReader::SUBST_ENTITIES

Entitäten ersetzen und Referenzen erweitern

Inhaltsverzeichnis

  • XMLReader::close — XMLReader-Eingabe beenden
  • XMLReader::expand — Gibt eine Kopie des aktuellen Knotens als DOM-Objekt zurück
  • XMLReader::getAttribute — Gibt den Wert eines Attributes nach Namen zurück
  • XMLReader::getAttributeNo — Gibt den Wert eines Attributes nach Position zurück
  • XMLReader::getAttributeNs — Gibt den Wert eines Attributes nach lokalem Namen und URI zurück
  • XMLReader::getParserProperty — Zeigt an, ob die angegebene Eigenschaft gesetzt wurde
  • XMLReader::isValid — Zeigt an, ob das geparste Dokument valide ist
  • XMLReader::lookupNamespace — Prüft, ob ein Namensbereich für einen Präfix vorhanden ist
  • XMLReader::moveToAttribute — Zeiger auf benanntes Attribut setzen
  • XMLReader::moveToAttributeNo — Move cursor to an attribute by index
  • XMLReader::moveToAttributeNs — Move cursor to a named attribute
  • XMLReader->moveToElement — Zeiger positionieren auf das Elternelement des aktuellen Attributes
  • XMLReader::moveToFirstAttribute — Zeiger auf erstes Attribut setzen
  • XMLReader::moveToNextAttribute — Zeiger auf nächstes Attribut setzen
  • XMLReader::next — Zeiger auf nächstes Element setzen und Kinder überspringen
  • XMLReader::open — URI angeben, die auf XML-Inhalt verweist, der geparst werden soll
  • XMLReader::read — Zeiger auf das nächste Element setzen
  • XMLReader::readInnerXml — Erhalte XML des aktuellen Knotens
  • XMLReader::readOuterXml — Liest XML des aktuellen Knotens, inklusive den Knoten selbst
  • XMLReader::readString — Liest den Inhalt des aktuellen Knotens als Zeichenkette
  • XMLReader::setParserProperty — Parser-Optionen setzen
  • XMLReader::setRelaxNGSchema — Dateiname oder URI des RelaxNG-Schema setzen
  • XMLReader::setRelaxNGSchemaSource — Zeichenkette setzen, die RelaxNG-Schemadaten enthält
  • XMLReader::setSchema — Validiert Dokument gegen XSD
  • XMLReader::XML — Zeichenkette setzen, deren Inhalt geparst werden soll


XMLReader-Eingabe beenden

  • « XMLReader
  • XMLReader::expand »
  • PHP Manual
  • XMLReader
  • XMLReader-Eingabe beenden

XMLReader::close

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::close — XMLReader-Eingabe beenden

Beschreibung

public XMLReader::close ( ) : bool

Beenden der Eingabe die das XMLReader-Objekt gerade parst.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • XMLReader::open() - URI angeben, die auf XML-Inhalt verweist, der geparst werden soll
  • XMLReader::xml() - Zeichenkette setzen, deren Inhalt geparst werden soll


Gibt eine Kopie des aktuellen Knotens als DOM-Objekt zurück

  • « XMLReader::close
  • XMLReader::getAttribute »
  • PHP Manual
  • XMLReader
  • Gibt eine Kopie des aktuellen Knotens als DOM-Objekt zurück

XMLReader::expand

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::expand — Gibt eine Kopie des aktuellen Knotens als DOM-Objekt zurück

Beschreibung

public XMLReader::expand ( DOMNode|null $baseNode = null ) : DOMNode|false

Diese Methode kopiert den aktuellen Knoten und gibt ihn als entsprechendes DOM-Objekt zurück.

Parameter-Liste

baseNode

Ein DOMNode, der das DOMDocument-Ziel für das erzeugte DOM-Objekt definiert.

Rückgabewerte

Entsprechendes DOMNode oder false bei Fehlern.


Gibt den Wert eines Attributes nach Namen zurück

  • « XMLReader::expand
  • XMLReader::getAttributeNo »
  • PHP Manual
  • XMLReader
  • Gibt den Wert eines Attributes nach Namen zurück

XMLReader::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getAttribute — Gibt den Wert eines Attributes nach Namen zurück

Beschreibung

public XMLReader::getAttribute ( string $name ) : string|null

Der Wert des Attributes mit entsprechendem Namen oder null, wenn das Attribut nicht existiert oder der Cursor derzeitig nicht über einem Elementknoten positioniert ist.

Parameter-Liste

name

Der Name des Attributes.

Rückgabewerte

Der Wert des Attributes oder null, wenn kein Attribut name im aktuellen Element gefunden wurde oder der Cursor derzeitig nicht über einem Elementknoten positioniert ist.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion gibt nicht mehr false zurück.

Siehe auch

  • XMLReader::getAttributeNo() - Gibt den Wert eines Attributes nach Position zurück
  • XMLReader::getAttributeNs() - Gibt den Wert eines Attributes nach lokalem Namen und URI zurück


Gibt den Wert eines Attributes nach Position zurück

  • « XMLReader::getAttribute
  • XMLReader::getAttributeNs »
  • PHP Manual
  • XMLReader
  • Gibt den Wert eines Attributes nach Position zurück

XMLReader::getAttributeNo

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getAttributeNo — Gibt den Wert eines Attributes nach Position zurück

Beschreibung

public XMLReader::getAttributeNo ( int $index ) : string|null

Der Wert des Attributes an der angegebenen Position oder eine leere Zeichenkette, wenn das Attribut nicht existiert oder keinem Elementknoten zugeordnet ist.

Parameter-Liste

index

Position des Attributes.

Rückgabewerte

Der Wert des Attributes oder eine leere Zeichenkette (vor PHP 5.6) oder null (von PHP 5.6 an), wenn kein Attribut an der Position index im aktuellen Element gefunden wurde.

Changelog

Version | Beschreibung
5.6.0 | XMLReader::getAttributeNo() gibt nun null zurück, wenn das Attribut nicht existiert.

Siehe auch

  • XMLReader::getAttribute() - Gibt den Wert eines Attributes nach Namen zurück
  • XMLReader::getAttributeNs() - Gibt den Wert eines Attributes nach lokalem Namen und URI zurück


Gibt den Wert eines Attributes nach lokalem Namen und URI zurück

  • « XMLReader::getAttributeNo
  • XMLReader::getParserProperty »
  • PHP Manual
  • XMLReader
  • Gibt den Wert eines Attributes nach lokalem Namen und URI zurück

XMLReader::getAttributeNs

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getAttributeNs — Gibt den Wert eines Attributes nach lokalem Namen und URI zurück

Beschreibung

public XMLReader::getAttributeNs ( string $name , string $namespace ) : string|null

Gibt den Wert des Attributes mit entsprechendem Namen und Namensraum (URI) zurück oder eine leere Zeichenkette, wenn das Attribut nicht existiert oder der Cursor sich derzeitig nicht über einem Element befindet.

Parameter-Liste

name

Der lokale Name des Attributes.

namespace

Die URI des Namensraum.

Rückgabewerte

Der Wert des Attributes oder eine leere Zeichenkette (vor PHP 5.6) oder null (von PHP 5.6 an), wenn kein Attribut mit den Parametern name und namespace im aktuellen Element gefunden wurde oder der Cursor sich derzeitig nicht über einem Element befindet.

Changelog

Version | Beschreibung
8.0.0 | This function can no longer return false.
5.6.0 | XMLReader::getAttributeNS() gibt nun null zurück, wenn das Attribut nicht existiert.

Siehe auch

  • XMLReader::getAttribute() - Gibt den Wert eines Attributes nach Namen zurück
  • XMLReader::getAttributeNo() - Gibt den Wert eines Attributes nach Position zurück


Zeigt an, ob die angegebene Eigenschaft gesetzt wurde

  • « XMLReader::getAttributeNs
  • XMLReader::isValid »
  • PHP Manual
  • XMLReader
  • Zeigt an, ob die angegebene Eigenschaft gesetzt wurde

XMLReader::getParserProperty

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getParserProperty — Zeigt an, ob die angegebene Eigenschaft gesetzt wurde

Beschreibung

public XMLReader::getParserProperty ( int $property ) : bool

Zeigt an, ob die angegebene Eigenschaft gesetzt wurde.

Parameter-Liste

property

Eine der Parser-Optionskonstanten.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • XMLReader::setParserProperty() - Parser-Optionen setzen


Zeigt an, ob das geparste Dokument valide ist

  • « XMLReader::getParserProperty
  • XMLReader::lookupNamespace »
  • PHP Manual
  • XMLReader
  • Zeigt an, ob das geparste Dokument valide ist

XMLReader::isValid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::isValid — Zeigt an, ob das geparste Dokument valide ist

Beschreibung

public XMLReader::isValid ( ) : bool

Gibt einen boolschen Wert zurück, der anzeigt, ob das geparste Dokument sich aktuell in einem validen Zustand befindet.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Validierung von XML

<?php
$xml = XMLReader::open('test.xml');

// VALIDATE Option muss gesetzt werden, damit diese Methode ordnungsgemäß funktioniert
$xml->setParserProperty(XMLReader::VALIDATE, true);

var_dump($xml->isValid());
?>

Anmerkungen

Hinweis: Dies überprüft den aktuellen Knoten, nicht das gesamte Dokument.

Siehe auch

  • XMLReader::setParserProperty() - Parser-Optionen setzen
  • XMLReader::setRelaxNGSchema() - Dateiname oder URI des RelaxNG-Schema setzen
  • XMLReader::setRelaxNGSchemaSource() - Zeichenkette setzen, die RelaxNG-Schemadaten enthält
  • XMLReader::setSchema() - Validiert Dokument gegen XSD


Prüft, ob ein Namensbereich für einen Präfix vorhanden ist

  • « XMLReader::isValid
  • XMLReader::moveToAttribute »
  • PHP Manual
  • XMLReader
  • Prüft, ob ein Namensbereich für einen Präfix vorhanden ist

XMLReader::lookupNamespace

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::lookupNamespace — Prüft, ob ein Namensbereich für einen Präfix vorhanden ist

Beschreibung

public XMLReader::lookupNamespace ( string $prefix ) : string|null

Prüfen, ob ein Namensbereich für den angegebenen Präfix vorhanden ist.

Parameter-Liste

prefix

Zeichenkette mit Präfix.

Rückgabewerte

Den Wert des Namensbereichs, oder null, falls es keinen Namensbereich gibt.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion gibt nicht mehr false zurück.


Zeiger auf benanntes Attribut setzen

  • « XMLReader::lookupNamespace
  • XMLReader::moveToAttributeNo »
  • PHP Manual
  • XMLReader
  • Zeiger auf benanntes Attribut setzen

XMLReader::moveToAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToAttribute — Zeiger auf benanntes Attribut setzen

Beschreibung

public XMLReader::moveToAttribute ( string $name ) : bool

Zeiger auf benanntes Attribut setzen.

Parameter-Liste

name

Name des Attributes.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • XMLReader::moveToElement() - Zeiger positionieren auf das Elternelement des aktuellen Attributes
  • XMLReader::moveToAttributeNo() - Move cursor to an attribute by index
  • XMLReader::moveToAttributeNs() - Move cursor to a named attribute
  • XMLReader::moveToFirstAttribute() - Zeiger auf erstes Attribut setzen


Move cursor to an attribute by index

  • « XMLReader::moveToAttribute
  • XMLReader::moveToAttributeNs »
  • PHP Manual
  • XMLReader
  • Move cursor to an attribute by index

XMLReader::moveToAttributeNo

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToAttributeNo — Move cursor to an attribute by index

Beschreibung

public XMLReader::moveToAttributeNo ( int $index ) : bool

Positions cursor on attribute based on its position.

Parameter-Liste

index

The position of the attribute.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • XMLReader::moveToElement() - Zeiger positionieren auf das Elternelement des aktuellen Attributes
  • XMLReader::moveToAttribute() - Zeiger auf benanntes Attribut setzen
  • XMLReader::moveToAttributeNs() - Move cursor to a named attribute
  • XMLReader::moveToFirstAttribute() - Zeiger auf erstes Attribut setzen


Move cursor to a named attribute

  • « XMLReader::moveToAttributeNo
  • XMLReader->moveToElement »
  • PHP Manual
  • XMLReader
  • Move cursor to a named attribute

XMLReader::moveToAttributeNs

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToAttributeNs — Move cursor to a named attribute

Beschreibung

public XMLReader::moveToAttributeNs ( string $name , string $namespace ) : bool

Positions cursor on the named attribute in specified namespace.

Parameter-Liste

name

The local name.

namespace

The namespace URI.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • XMLReader::moveToElement() - Zeiger positionieren auf das Elternelement des aktuellen Attributes
  • XMLReader::moveToAttribute() - Zeiger auf benanntes Attribut setzen
  • XMLReader::moveToAttributeNo() - Move cursor to an attribute by index
  • XMLReader::moveToFirstAttribute() - Zeiger auf erstes Attribut setzen


Zeiger positionieren auf das Elternelement des aktuellen Attributes

  • « XMLReader::moveToAttributeNs
  • XMLReader::moveToFirstAttribute »
  • PHP Manual
  • XMLReader
  • Zeiger positionieren auf das Elternelement des aktuellen Attributes

XMLReader->moveToElement

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader->moveToElement — Zeiger positionieren auf das Elternelement des aktuellen Attributes

Beschreibung

public XMLReader::moveToElement ( ) : bool

Setzt Zeiger auf das Elternelement des aktuellen Attributes.

Rückgabewerte

Gibt bei Erfolg true zurück und false, wenn es fehlgeschlagen ist oder die Methode aufgerufen wird, wenn der Zeiger nicht auf ein Attribut zeigt.

Siehe auch

  • XMLReader::moveToAttribute() - Zeiger auf benanntes Attribut setzen
  • XMLReader::moveToAttributeNo() - Move cursor to an attribute by index
  • XMLReader::moveToAttributeNs() - Move cursor to a named attribute
  • XMLReader::moveToFirstAttribute() - Zeiger auf erstes Attribut setzen


Zeiger auf erstes Attribut setzen

  • « XMLReader->moveToElement
  • XMLReader::moveToNextAttribute »
  • PHP Manual
  • XMLReader
  • Zeiger auf erstes Attribut setzen

XMLReader::moveToFirstAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToFirstAttribute — Zeiger auf erstes Attribut setzen

Beschreibung

public XMLReader::moveToFirstAttribute ( ) : bool

Setzt den Zeiger auf das erste Attribut im Element.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • XMLReader::moveToElement() - Zeiger positionieren auf das Elternelement des aktuellen Attributes
  • XMLReader::moveToAttribute() - Zeiger auf benanntes Attribut setzen
  • XMLReader::moveToAttributeNo() - Move cursor to an attribute by index
  • XMLReader::moveToAttributeNs() - Move cursor to a named attribute
  • XMLReader::moveToNextAttribute() - Zeiger auf nächstes Attribut setzen


Zeiger auf nächstes Attribut setzen

  • « XMLReader::moveToFirstAttribute
  • XMLReader::next »
  • PHP Manual
  • XMLReader
  • Zeiger auf nächstes Attribut setzen

XMLReader::moveToNextAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToNextAttribute — Zeiger auf nächstes Attribut setzen

Beschreibung

public XMLReader::moveToNextAttribute ( ) : bool

Setzt den Zeiger auf das nächste Attribut, wenn er auf ein Attribut verweist oder auf's erste Attribut, wenn er auf ein Element verweist.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • XMLReader::moveToElement() - Zeiger positionieren auf das Elternelement des aktuellen Attributes
  • XMLReader::moveToAttribute() - Zeiger auf benanntes Attribut setzen
  • XMLReader::moveToAttributeNo() - Move cursor to an attribute by index
  • XMLReader::moveToAttributeNs() - Move cursor to a named attribute
  • XMLReader::moveToFirstAttribute() - Zeiger auf erstes Attribut setzen


Zeiger auf nächstes Element setzen und Kinder überspringen

  • « XMLReader::moveToNextAttribute
  • XMLReader::open »
  • PHP Manual
  • XMLReader
  • Zeiger auf nächstes Element setzen und Kinder überspringen

XMLReader::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::next — Zeiger auf nächstes Element setzen und Kinder überspringen

Beschreibung

public XMLReader::next ( string|null $name = null ) : bool

Setzt den Zeiger auf das nächste Element und überspringt dabei Kindelemente. Falls es kein solches Element gibt, wird der Zeiger ans Ende des Dokuments gesetzt.

Parameter-Liste

name

Name des nächsten Elements.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | name ist jetzt ein Nullable-Typ.

Siehe auch

  • XMLReader::moveToNextAttribute() - Zeiger auf nächstes Attribut setzen
  • XMLReader::moveToElement() - Zeiger positionieren auf das Elternelement des aktuellen Attributes
  • XMLReader::moveToAttribute() - Zeiger auf benanntes Attribut setzen


URI angeben, die auf XML-Inhalt verweist, der geparst werden soll

  • « XMLReader::next
  • XMLReader::read »
  • PHP Manual
  • XMLReader
  • URI angeben, die auf XML-Inhalt verweist, der geparst werden soll

XMLReader::open

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::open — URI angeben, die auf XML-Inhalt verweist, der geparst werden soll

Beschreibung

public static XMLReader::open ( string $uri , string|null $encoding = null , int $flags = 0 ) : bool|XMLReader

URI angeben, die auf XML-Inhalt verweist, der geparst werden soll.

Parameter-Liste

uri

URI die auf den XML-Inhalt verweist.

encoding

Dokumentkodierung oder null.

flags

Bitmaske bestehend aus LIBXML_*-Konstanten.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Wenn die Methode statisch aufgerufen wird, wird eine XMLReader-Instanz zurückgegeben oder im Fehlerfall false.

Fehler/Exceptions

Diese Methode kann statisch aufgerufen werden, gibt aber in diesem Fall vor PHP 8.0.0 einen E_DEPRECATED-Fehler aus.

Changelog

Version | Beschreibung
8.0.0 | XMLReader::open() ist jetzt als statische Methode deklariert, kann aber weiterhin auf einer XMLReader-Instanz aufgerufen werden.

Siehe auch

  • XMLReader::xml() - Zeichenkette setzen, deren Inhalt geparst werden soll
  • XMLReader::close() - XMLReader-Eingabe beenden


Zeiger auf das nächste Element setzen

  • « XMLReader::open
  • XMLReader::readInnerXml »
  • PHP Manual
  • XMLReader
  • Zeiger auf das nächste Element setzen

XMLReader::read

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::read — Zeiger auf das nächste Element setzen

Beschreibung

public XMLReader::read ( ) : bool

Zeiger auf das nächste Element im Dokument setzen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • XMLReader::moveToElement() - Zeiger positionieren auf das Elternelement des aktuellen Attributes
  • XMLReader::moveToAttribute() - Zeiger auf benanntes Attribut setzen
  • XMLReader::next() - Zeiger auf nächstes Element setzen und Kinder überspringen


Erhalte XML des aktuellen Knotens

  • « XMLReader::read
  • XMLReader::readOuterXml »
  • PHP Manual
  • XMLReader
  • Erhalte XML des aktuellen Knotens

XMLReader::readInnerXml

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::readInnerXml — Erhalte XML des aktuellen Knotens

Beschreibung

public XMLReader::readInnerXml ( ) : string

Liest den Inhalt des aktuellen Knoten, inklusive der Kind-Knoten und Markup.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt Inhalt des aktuellen Knotens als Zeichenkette zurück; im Fehlerfall eine leere Zeichenkette.

Anmerkungen

Achtung

Diese Funktion ist nur verfügbar, wenn PHP mit libxml 20620 oder später kompiliert wurde.

Siehe auch

  • XMLReader::readString() - Liest den Inhalt des aktuellen Knotens als Zeichenkette
  • XMLReader::readOuterXml() - Liest XML des aktuellen Knotens, inklusive den Knoten selbst
  • XMLReader::expand() - Gibt eine Kopie des aktuellen Knotens als DOM-Objekt zurück


Liest XML des aktuellen Knotens, inklusive den Knoten selbst

  • « XMLReader::readInnerXml
  • XMLReader::readString »
  • PHP Manual
  • XMLReader
  • Liest XML des aktuellen Knotens, inklusive den Knoten selbst

XMLReader::readOuterXml

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::readOuterXml — Liest XML des aktuellen Knotens, inklusive den Knoten selbst

Beschreibung

public XMLReader::readOuterXml ( ) : string

Liest den Inhalt des aktuellen Knotens, inklusive den Knoten selbst.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt Inhalt des aktuellen Knotens inklusive dem Knoten selbst als Zeichenkette zurück; im Fehlerfall eine leere Zeichenkette.

Anmerkungen

Achtung

Diese Funktion ist nur verfügbar, wenn PHP mit libxml 20620 oder später kompiliert wurde.

Siehe auch

  • XMLReader::readString() - Liest den Inhalt des aktuellen Knotens als Zeichenkette
  • XMLReader::readInnerXml() - Erhalte XML des aktuellen Knotens
  • XMLReader::expand() - Gibt eine Kopie des aktuellen Knotens als DOM-Objekt zurück


Liest den Inhalt des aktuellen Knotens als Zeichenkette

  • « XMLReader::readOuterXml
  • XMLReader::setParserProperty »
  • PHP Manual
  • XMLReader
  • Liest den Inhalt des aktuellen Knotens als Zeichenkette

XMLReader::readString

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::readString — Liest den Inhalt des aktuellen Knotens als Zeichenkette

Beschreibung

public XMLReader::readString ( ) : string

Liest den Inhalt des aktuellen Knotens als Zeichenkette.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Inhalt des aktuellen Knotens als Zeichenkette zurück; im Fehlerfall eine leere Zeichenkette.

Anmerkungen

Achtung

Diese Funktion ist nur verfügbar, wenn PHP mit libxml 20620 oder später kompiliert wurde.

Siehe auch

  • XMLReader::readOuterXml() - Liest XML des aktuellen Knotens, inklusive den Knoten selbst
  • XMLReader::readInnerXml() - Erhalte XML des aktuellen Knotens
  • XMLReader::expand() - Gibt eine Kopie des aktuellen Knotens als DOM-Objekt zurück


Parser-Optionen setzen

  • « XMLReader::readString
  • XMLReader::setRelaxNGSchema »
  • PHP Manual
  • XMLReader
  • Parser-Optionen setzen

XMLReader::setParserProperty

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::setParserProperty — Parser-Optionen setzen

Beschreibung

public XMLReader::setParserProperty ( int $property , bool $value ) : bool

Setzen von Optionen für den Parser. Die Optionen müssen definiert werden nachdem XMLReader::open() oder XMLReader::xml() verwendet werden und bevor der erste XMLReader::read() Aufruf stattfindet.

Parameter-Liste

property

Eine der Parser-Optionskonstanten.

value

Wenn die Option auf true gesetzt, wird sie aktiviert, sonst deaktiviert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Dateiname oder URI des RelaxNG-Schema setzen

  • « XMLReader::setParserProperty
  • XMLReader::setRelaxNGSchemaSource »
  • PHP Manual
  • XMLReader
  • Dateiname oder URI des RelaxNG-Schema setzen

XMLReader::setRelaxNGSchema

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::setRelaxNGSchema — Dateiname oder URI des RelaxNG-Schema setzen

Beschreibung

public XMLReader::setRelaxNGSchema ( string|null $filename ) : bool

Dateiname oder URI des RelaxNG-Schemas setzen, das zur Validierung verwendet werden soll.

Parameter-Liste

filename

Dateiname oder URI des RelaxNG-Schemas.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • XMLReader::setRelaxNGSchemaSource() - Zeichenkette setzen, die RelaxNG-Schemadaten enthält
  • XMLReader::setSchema() - Validiert Dokument gegen XSD
  • XMLReader::isValid() - Zeigt an, ob das geparste Dokument valide ist


Zeichenkette setzen, die RelaxNG-Schemadaten enthält

  • « XMLReader::setRelaxNGSchema
  • XMLReader::setSchema »
  • PHP Manual
  • XMLReader
  • Zeichenkette setzen, die RelaxNG-Schemadaten enthält

XMLReader::setRelaxNGSchemaSource

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::setRelaxNGSchemaSource — Zeichenkette setzen, die RelaxNG-Schemadaten enthält

Beschreibung

public XMLReader::setRelaxNGSchemaSource ( string|null $source ) : bool

Zeichenkette setzen, die RelaxNG-Schemadaten enthält, gegen die validiert werden soll.

Parameter-Liste

source

Zeichenkette die RelaxNG-Schemadaten enthält.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • XMLReader::setRelaxNGSchema() - Dateiname oder URI des RelaxNG-Schema setzen
  • XMLReader::setSchema() - Validiert Dokument gegen XSD
  • XMLReader::isValid() - Zeigt an, ob das geparste Dokument valide ist


Validiert Dokument gegen XSD

  • « XMLReader::setRelaxNGSchemaSource
  • XMLReader::XML »
  • PHP Manual
  • XMLReader
  • Validiert Dokument gegen XSD

XMLReader::setSchema

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::setSchema — Validiert Dokument gegen XSD

Beschreibung

public XMLReader::setSchema ( string|null $filename ) : bool

Nutzen Sie W3C-XSD-Schema um das Dokument während der Verarbeitung zu validieren. Die Aktivierung ist nur vor dem ersten Read() Aufruf möglich.

Parameter-Liste

filename

Der Dateiname des XSD-Schema.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Gibt E_WARNING aus, falls libxml ohne Schema Unterstützung kompiliert wurde, das Schema Fehler enthält oder wenn XMLReader::read() schon aufgerufen wurde.

Anmerkungen

Achtung

Diese Funktion ist nur verfügbar, wenn PHP mit libxml 20620 oder später kompiliert wurde.

Siehe auch

  • XMLReader::setRelaxNGSchema() - Dateiname oder URI des RelaxNG-Schema setzen
  • XMLReader::setRelaxNGSchemaSource() - Zeichenkette setzen, die RelaxNG-Schemadaten enthält
  • XMLReader::isValid() - Zeigt an, ob das geparste Dokument valide ist


Zeichenkette setzen, deren Inhalt geparst werden soll

  • « XMLReader::setSchema
  • XMLWriter »
  • PHP Manual
  • XMLReader
  • Zeichenkette setzen, deren Inhalt geparst werden soll

XMLReader::XML

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::XML — Zeichenkette setzen, deren Inhalt geparst werden soll

Beschreibung

public static XMLReader::XML ( string $source , string|null $encoding = null , int $flags = 0 ) : bool|XMLReader

Zeichenkette mit XML-Inhalt setzen, der geparst werden soll.

Parameter-Liste

source

Zeichenkette mit XML-Inhalt, der geparst werden soll.

encoding

Dokumentkodierung oder null.

flags

Bitmaske bestehend aus LIBXML_*-Konstanten.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Wenn die Methode statisch aufgerufen wird, wird eine XMLReader-Instanz zurückgegeben oder im Fehlerfall false.

Fehler/Exceptions

Diese Methode kann statisch aufgerufen werden, gibt aber in diesem Fall vor PHP 8.0.0 einen E_DEPRECATED-Fehler aus.

Changelog

Version | Beschreibung
8.0.0 | XMLReader::XML() ist jetzt als statische Methode deklariert, kann aber weiterhin auf einer XMLReader-Instanz aufgerufen werden.

Siehe auch

  • XMLReader::open() - URI angeben, die auf XML-Inhalt verweist, der geparst werden soll
  • XMLReader::close() - XMLReader-Eingabe beenden


XMLWriter

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Creating a simple XML document
    • Working with XML namespaces
    • Working with the OO API
  • XMLWriter — The XMLWriter class
    • XMLWriter::endAttribute — Attribute beenden
    • XMLWriter::endCdata — Beendet CDATA-Block
    • XMLWriter::endComment — Beendet Kommentar
    • XMLWriter::endDocument — Beendet Dokument
    • XMLWriter::endDtd — Beendet DTD
    • XMLWriter::endDtdAttlist — Beendet DTD-Attributliste
    • XMLWriter::endDtdElement — Beendet DTD-Element
    • XMLWriter::endDtdEntity — Beendet DTD-Entität
    • XMLWriter::endElement — Beendet Element
    • XMLWriter::endPi — Beendet Verarbeitungsvorschrift
    • XMLWriter::flush — Puffer schreiben
    • XMLWriter::fullEndElement — Beendet Element
    • XMLWriter::openMemory — Erzeugt einen neuen XMLWriter, der Stringausgaben in den Speicher schreibt
    • XMLWriter::openUri — Erzeugt neuen XMLWriter, der URI für Ausgabe verwendet
    • XMLWriter::outputMemory — Gibt Puffer zurück
    • XMLWriter::setIndent — Einrückung ein-/ausschalten
    • XMLWriter::setIndentString — Setzt Zeichenkette, die zur Einrückung verwendet wird
    • XMLWriter::startAttribute — Attribut beginnen
    • XMLWriter::startAttributeNs — Namensraum-Attribut beginnen
    • XMLWriter::startCdata — CDATA-Block beginnen
    • XMLWriter::startComment — Kommentar beginnen
    • XMLWriter::startDocument — Dokument beginnen
    • XMLWriter::startDtd — DTD beginnen
    • XMLWriter::startDtdAttlist — DTD-Attributliste beginnen
    • XMLWriter::startDtdElement — DTD-Element beginnen
    • XMLWriter::startDtdEntity — DTD-Entität beginnen
    • XMLWriter::startElement — Element beginnen
    • XMLWriter::startElementNs — Element mit Namensraum beginnen
    • XMLWriter::startPi — Verarbeitungsvorschrift beginnen
    • XMLWriter::text — Text schreiben
    • XMLWriter::writeAttribute — Komplettes Attribut schreiben
    • XMLWriter::writeAttributeNs — Komplettes Attribute mit Namensraum schreiben
    • XMLWriter::writeCdata — Kompletten CDATA-Block schreiben
    • XMLWriter::writeComment — Kompletten Kommentar schreiben
    • XMLWriter::writeDtd — Komplettes DTD-Tag schreiben
    • XMLWriter::writeDtdAttlist — Komplette DTD-Attributliste schreiben
    • XMLWriter::writeDtdElement — Komplettes DTD-Element schreiben
    • XMLWriter::writeDtdEntity — Komplette DTD-Entität schreiben
    • XMLWriter::writeElement — Komplettes Element schreiben
    • XMLWriter::writeElementNs — Komplettes Element mit Namensraum schreiben
    • XMLWriter::writePi — Komplette Verarbeitungsvorschrift-Tag schreiben
    • XMLWriter::writeRaw — Reines XML schreiben


Einführung

Die XMLWriter-Erweiterung ist ein Wrapper für die libxml xmlWriter-API.

Diese Erweiterung bietet einen nicht zwischenspeichernden, fortschreitenden Schreiber zum Erzeugen von Datenströmen oder Dateien mit XML-Inhalten.

Diese Erweiterung kann sowohl objektorientier als auch prozedural verwendet werden. Jede dokumentierte Methode beschreibt auch den entsprechenden prozeduralen Aufruf.


Installation

Die XMLWriter-Erweiterung war ursprünglich eine Erweiterung aus PECL für PHP 5. Sie wurde ab der PHP Version 5.1.2 dem PHP-Core-Code hinzugefügt. Diese Erweiterung ist standardmäßig aktiviert.

Diese Erweiterung ist standardmäßig aktiviert. Sie kann bei der Kompilierung mit der folgenden Option ausgeschaltet werden: --disable-xmlwriter


Ressource-Typen

In der prozeduralen Version der XMLWriter-Erweiterung wird nur eine Ressource verwendet. Diese wird von xmlwriter_open_memory() oder xmlwriter_open_uri() zurückgegeben.


  • « Ressource-Typen
  • Beispiele »
  • PHP Manual
  • XMLWriter
  • Vordefinierte Konstanten

Vordefinierte Konstanten

Diese Erweiterung definiert keine Konstanten.


Beispiele

Inhaltsverzeichnis

  • Creating a simple XML document
  • Working with XML namespaces
  • Working with the OO API


Creating a simple XML document

This example shows how to use XMLWriter to create a XML document in memory.

Beispiel #1 Creating a simple XML document

<?php

$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, 1);
$res = xmlwriter_set_indent_string($xw, ' ');

xmlwriter_start_document($xw, '1.0', 'UTF-8');

// A first element
xmlwriter_start_element($xw, 'tag1');

// Attribute 'att1' for element 'tag1'
xmlwriter_start_attribute($xw, 'att1');
xmlwriter_text($xw, 'valueofatt1');
xmlwriter_end_attribute($xw);

xmlwriter_write_comment($xw, 'this is a comment.');

// Start a child element
xmlwriter_start_element($xw, 'tag11');
xmlwriter_text($xw, 'This is a sample text, ä');
xmlwriter_end_element($xw); // tag11

xmlwriter_end_element($xw); // tag1

// CDATA
xmlwriter_start_element($xw, 'testc');
xmlwriter_write_cdata($xw, "This is cdata content");
xmlwriter_end_element($xw); // testc

xmlwriter_start_element($xw, 'testc');
xmlwriter_start_cdata($xw);
xmlwriter_text($xw, "test cdata2");
xmlwriter_end_cdata($xw);
xmlwriter_end_element($xw); // testc

// A processing instruction
xmlwriter_start_pi($xw, 'php');
xmlwriter_text($xw, '$foo=2;echo $foo;');
xmlwriter_end_pi($xw);

xmlwriter_end_document($xw);

echo xmlwriter_output_memory($xw);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0" encoding="UTF-8"?>
<tag1 att1="valueofatt1">
 <!--this is a comment.-->
 <tag11>This is a sample text, ä</tag11>
</tag1>
<testc><![CDATA[This is cdata content]]></testc>
<testc><![CDATA[test cdata2]]></testc>
<?php $foo=2;echo $foo;?>


Working with XML namespaces

This example shows how to create namespaced XML elements.

Beispiel #1 Working with XML namespaces

<?php

$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, 1);
$res = xmlwriter_set_indent_string($xw, ' ');

xmlwriter_start_document($xw, '1.0', 'UTF-8');
// A first element
xmlwriter_start_element_ns($xw,'prefix', 'books', 'uri');
xmlwriter_start_attribute($xw, 'isbn');

xmlwriter_start_attribute_ns($xw, 'prefix', 'isbn', 'uri');
xmlwriter_end_attribute($xw);

xmlwriter_end_attribute($xw);

xmlwriter_text($xw, 'book1');
xmlwriter_end_element($xw);

xmlwriter_end_document($xw);

echo xmlwriter_output_memory($xw);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0" encoding="UTF-8"?>
<prefix:books isbn="" prefix:isbn="" xmlns:prefix="uri">book1</prefix:books>


Working with the OO API

This example shows how to work with XMLWriter's object oriented API.

Beispiel #1 Working with the OO API

<?php

$xw = new XMLWriter();
$xw->openMemory();
$xw->startDocument("1.0");
$xw->startElement("book");
$xw->text("example");
$xw->endElement();
$xw->endDocument();
echo $xw->outputMemory();

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0"?>
<book>example</book>


The XMLWriter class

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

Einführung

Klassenbeschreibung

XMLWriter {
/* Methoden */
public endAttribute ( ) : bool
public endCdata ( ) : bool
public endComment ( ) : bool
public endDocument ( ) : bool
public endDtd ( ) : bool
public endDtdAttlist ( ) : bool
public endDtdElement ( ) : bool
public endDtdEntity ( ) : bool
public endElement ( ) : bool
public endPi ( ) : bool
public flush ( bool $empty = true ) : string|int
public fullEndElement ( ) : bool
public openMemory ( ) : bool
public openUri ( string $uri ) : bool
public outputMemory ( bool $flush = true ) : string
public setIndent ( bool $enable ) : bool
public setIndentString ( string $indentation ) : bool
public startAttribute ( string $name ) : bool
public startAttributeNs ( string|null $prefix , string $name , string|null $namespace ) : bool
public startCdata ( ) : bool
public startComment ( ) : bool
public startDocument ( string|null $version = "1.0" , string|null $encoding = null , string|null $standalone = null ) : bool
public startDtd ( string $qualifiedName , string|null $publicId = null , string|null $systemId = null ) : bool
public startDtdAttlist ( string $name ) : bool
public startDtdElement ( string $qualifiedName ) : bool
public startDtdEntity ( string $name , bool $isParam ) : bool
public startElement ( string $name ) : bool
public startElementNs ( string|null $prefix , string $name , string|null $namespace ) : bool
public startPi ( string $target ) : bool
public text ( string $content ) : bool
public writeAttribute ( string $name , string $value ) : bool
public writeAttributeNs ( string|null $prefix , string $name , string|null $namespace , string $value ) : bool
public writeCdata ( string $content ) : bool
public writeComment ( string $content ) : bool
public writeDtd ( string $name , string|null $publicId = null , string|null $systemId = null , string|null $content = null ) : bool
public writeDtdAttlist ( string $name , string $content ) : bool
public writeDtdElement ( string $name , string $content ) : bool
public writeDtdEntity ( string $name , string $content , bool $isParam = false , string|null $publicId = null , string|null $systemId = null , string|null $notationData = null ) : bool
public writeElement ( string $name , string|null $content = null ) : bool
public writeElementNs ( string|null $prefix , string $name , string|null $namespace , string|null $content = null ) : bool
public writePi ( string $target , string $content ) : bool
public writeRaw ( string $content ) : bool
}

Inhaltsverzeichnis

  • XMLWriter::endAttribute — Attribute beenden
  • XMLWriter::endCdata — Beendet CDATA-Block
  • XMLWriter::endComment — Beendet Kommentar
  • XMLWriter::endDocument — Beendet Dokument
  • XMLWriter::endDtd — Beendet DTD
  • XMLWriter::endDtdAttlist — Beendet DTD-Attributliste
  • XMLWriter::endDtdElement — Beendet DTD-Element
  • XMLWriter::endDtdEntity — Beendet DTD-Entität
  • XMLWriter::endElement — Beendet Element
  • XMLWriter::endPi — Beendet Verarbeitungsvorschrift
  • XMLWriter::flush — Puffer schreiben
  • XMLWriter::fullEndElement — Beendet Element
  • XMLWriter::openMemory — Erzeugt einen neuen XMLWriter, der Stringausgaben in den Speicher schreibt
  • XMLWriter::openUri — Erzeugt neuen XMLWriter, der URI für Ausgabe verwendet
  • XMLWriter::outputMemory — Gibt Puffer zurück
  • XMLWriter::setIndent — Einrückung ein-/ausschalten
  • XMLWriter::setIndentString — Setzt Zeichenkette, die zur Einrückung verwendet wird
  • XMLWriter::startAttribute — Attribut beginnen
  • XMLWriter::startAttributeNs — Namensraum-Attribut beginnen
  • XMLWriter::startCdata — CDATA-Block beginnen
  • XMLWriter::startComment — Kommentar beginnen
  • XMLWriter::startDocument — Dokument beginnen
  • XMLWriter::startDtd — DTD beginnen
  • XMLWriter::startDtdAttlist — DTD-Attributliste beginnen
  • XMLWriter::startDtdElement — DTD-Element beginnen
  • XMLWriter::startDtdEntity — DTD-Entität beginnen
  • XMLWriter::startElement — Element beginnen
  • XMLWriter::startElementNs — Element mit Namensraum beginnen
  • XMLWriter::startPi — Verarbeitungsvorschrift beginnen
  • XMLWriter::text — Text schreiben
  • XMLWriter::writeAttribute — Komplettes Attribut schreiben
  • XMLWriter::writeAttributeNs — Komplettes Attribute mit Namensraum schreiben
  • XMLWriter::writeCdata — Kompletten CDATA-Block schreiben
  • XMLWriter::writeComment — Kompletten Kommentar schreiben
  • XMLWriter::writeDtd — Komplettes DTD-Tag schreiben
  • XMLWriter::writeDtdAttlist — Komplette DTD-Attributliste schreiben
  • XMLWriter::writeDtdElement — Komplettes DTD-Element schreiben
  • XMLWriter::writeDtdEntity — Komplette DTD-Entität schreiben
  • XMLWriter::writeElement — Komplettes Element schreiben
  • XMLWriter::writeElementNs — Komplettes Element mit Namensraum schreiben
  • XMLWriter::writePi — Komplette Verarbeitungsvorschrift-Tag schreiben
  • XMLWriter::writeRaw — Reines XML schreiben


Attribute beenden

  • « XMLWriter
  • XMLWriter::endCdata »
  • PHP Manual
  • XMLWriter
  • Attribute beenden

XMLWriter::endAttribute

xmlwriter_end_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endAttribute -- xmlwriter_end_attribute — Attribute beenden

Beschreibung

Objektorientierter Stil

public XMLWriter::endAttribute ( ) : bool

Prozeduraler Stil

xmlwriter_end_attribute ( XMLWriter $writer ) : bool

Beendet das aktuelle Attribut.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startAttribute() - Attribut beginnen
  • XMLWriter::startAttributeNs() - Namensraum-Attribut beginnen
  • XMLWriter::writeAttribute() - Komplettes Attribut schreiben
  • XMLWriter::writeAttributeNs() - Komplettes Attribute mit Namensraum schreiben


Beendet CDATA-Block

  • « XMLWriter::endAttribute
  • XMLWriter::endComment »
  • PHP Manual
  • XMLWriter
  • Beendet CDATA-Block

XMLWriter::endCdata

xmlwriter_end_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endCdata -- xmlwriter_end_cdata — Beendet CDATA-Block

Beschreibung

Objektorientierter Stil

public XMLWriter::endCdata ( ) : bool

Prozeduraler Stil

xmlwriter_end_cdata ( XMLWriter $writer ) : bool

Beendet den aktuellen CDATA-Block.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startCdata() - CDATA-Block beginnen
  • XMLWriter::writeCdata() - Kompletten CDATA-Block schreiben


Beendet Kommentar

  • « XMLWriter::endCdata
  • XMLWriter::endDocument »
  • PHP Manual
  • XMLWriter
  • Beendet Kommentar

XMLWriter::endComment

xmlwriter_end_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::endComment -- xmlwriter_end_comment — Beendet Kommentar

Beschreibung

Objektorientierter Stil

public XMLWriter::endComment ( ) : bool

Prozeduraler Stil

xmlwriter_end_comment ( XMLWriter $writer ) : bool

Beendet aktuellen Kommentar.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startComment() - Kommentar beginnen
  • XMLWriter::writeComment() - Kompletten Kommentar schreiben


Beendet Dokument

  • « XMLWriter::endComment
  • XMLWriter::endDtd »
  • PHP Manual
  • XMLWriter
  • Beendet Dokument

XMLWriter::endDocument

xmlwriter_end_document

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDocument -- xmlwriter_end_document — Beendet Dokument

Beschreibung

Objektorientierter Stil

public XMLWriter::endDocument ( ) : bool

Prozeduraler Stil

xmlwriter_end_document ( XMLWriter $writer ) : bool

Beendet das aktuelle Dokument.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startDocument() - Dokument beginnen


Beendet DTD

  • « XMLWriter::endDocument
  • XMLWriter::endDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Beendet DTD

XMLWriter::endDtd

xmlwriter_end_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtd -- xmlwriter_end_dtd — Beendet DTD

Beschreibung

Objektorientierter Stil

public XMLWriter::endDtd ( ) : bool

Prozeduraler Stil

xmlwriter_end_dtd ( XMLWriter $writer ) : bool

Beendet die DTD des Dokuments.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startDtd() - DTD beginnen
  • XMLWriter::writeDtd() - Komplettes DTD-Tag schreiben


Beendet DTD-Attributliste

  • « XMLWriter::endDtd
  • XMLWriter::endDtdElement »
  • PHP Manual
  • XMLWriter
  • Beendet DTD-Attributliste

XMLWriter::endDtdAttlist

xmlwriter_end_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdAttlist -- xmlwriter_end_dtd_attlist — Beendet DTD-Attributliste

Beschreibung

Objektorientierter Stil

public XMLWriter::endDtdAttlist ( ) : bool

Prozeduraler Stil

xmlwriter_end_dtd_attlist ( XMLWriter $writer ) : bool

Beendet die aktuelle DTD-Attributlist.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startDtdAttlist() - DTD-Attributliste beginnen
  • XMLWriter::writeDtdAttlist() - Komplette DTD-Attributliste schreiben


Beendet DTD-Element

  • « XMLWriter::endDtdAttlist
  • XMLWriter::endDtdEntity »
  • PHP Manual
  • XMLWriter
  • Beendet DTD-Element

XMLWriter::endDtdElement

xmlwriter_end_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdElement -- xmlwriter_end_dtd_element — Beendet DTD-Element

Beschreibung

Objektorientierter Stil

public XMLWriter::endDtdElement ( ) : bool

Prozeduraler Stil

xmlwriter_end_dtd_element ( XMLWriter $writer ) : bool

Beendet das aktuelle DTD-Element.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startDtdElement() - DTD-Element beginnen
  • XMLWriter::writeDtdElement() - Komplettes DTD-Element schreiben


Beendet DTD-Entität

  • « XMLWriter::endDtdElement
  • XMLWriter::endElement »
  • PHP Manual
  • XMLWriter
  • Beendet DTD-Entität

XMLWriter::endDtdEntity

xmlwriter_end_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdEntity -- xmlwriter_end_dtd_entity — Beendet DTD-Entität

Beschreibung

Objektorientierter Stil

public XMLWriter::endDtdEntity ( ) : bool

Prozeduraler Stil

xmlwriter_end_dtd_entity ( XMLWriter $writer ) : bool

Beendet die aktuelle DTD-Entität.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startDtdEntity() - DTD-Entität beginnen
  • XMLWriter::writeDtdEntity() - Komplette DTD-Entität schreiben


Beendet Element

  • « XMLWriter::endDtdEntity
  • XMLWriter::endPi »
  • PHP Manual
  • XMLWriter
  • Beendet Element

XMLWriter::endElement

xmlwriter_end_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endElement -- xmlwriter_end_element — Beendet Element

Beschreibung

Objektorientierter Stil

public XMLWriter::endElement ( ) : bool

Prozeduraler Stil

xmlwriter_end_element ( XMLWriter $writer ) : bool

Beendet das aktuelle Element.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startElement() - Element beginnen
  • XMLWriter::writeElement() - Komplettes Element schreiben


Beendet Verarbeitungsvorschrift

  • « XMLWriter::endElement
  • XMLWriter::flush »
  • PHP Manual
  • XMLWriter
  • Beendet Verarbeitungsvorschrift

XMLWriter::endPi

xmlwriter_end_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endPi -- xmlwriter_end_pi — Beendet Verarbeitungsvorschrift

Beschreibung

Objektorientierter Stil

public XMLWriter::endPi ( ) : bool

Prozeduraler Stil

xmlwriter_end_pi ( XMLWriter $writer ) : bool

Beendet die aktuelle Verarbeitungsvorschrift.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startPi() - Verarbeitungsvorschrift beginnen
  • XMLWriter::writePi() - Komplette Verarbeitungsvorschrift-Tag schreiben


Puffer schreiben

  • « XMLWriter::endPi
  • XMLWriter::fullEndElement »
  • PHP Manual
  • XMLWriter
  • Puffer schreiben

XMLWriter::flush

xmlwriter_flush

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::flush -- xmlwriter_flush — Puffer schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::flush ( bool $empty = true ) : string|int

Prozeduraler Stil

xmlwriter_flush ( XMLWriter $writer , bool $empty = true ) : string|int

Schreibt den aktuellen Puffer.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

empty

Ob der Puffer geleert werden soll oder nicht. Standard ist true.

Rückgabewerte

Wenn der XMLWriter den Speicher verwendet, wird das erzeugte XML zurückgegeben, sonst, wenn er einen URI verwendet, werden die Daten geschrieben und die Anzahl der geschriebenen Bytes zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
8.0.0 | Diese Funktion kann nicht länger false zurückgeben.


Beendet Element

  • « XMLWriter::flush
  • XMLWriter::openMemory »
  • PHP Manual
  • XMLWriter
  • Beendet Element

XMLWriter::fullEndElement

xmlwriter_full_end_element

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL xmlwriter >= 2.0.4)

XMLWriter::fullEndElement -- xmlwriter_full_end_element — Beendet Element

Beschreibung

Objektorientierter Stil

public XMLWriter::fullEndElement ( ) : bool

Prozeduraler Stil

xmlwriter_full_end_element ( XMLWriter $writer ) : bool

Beendet das aktuelle XML-Element. Schreibt einen schließenden Tag, auch, wenn das Element leer ist.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::endElement() - Beendet Element


Erzeugt einen neuen XMLWriter, der Stringausgaben in den Speicher schreibt

  • « XMLWriter::fullEndElement
  • XMLWriter::openUri »
  • PHP Manual
  • XMLWriter
  • Erzeugt einen neuen XMLWriter, der Stringausgaben in den Speicher schreibt

XMLWriter::openMemory

xmlwriter_open_memory

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::openMemory -- xmlwriter_open_memory — Erzeugt einen neuen XMLWriter, der Stringausgaben in den Speicher schreibt

Beschreibung

Objektorientierter Stil

public XMLWriter::openMemory ( ) : bool

Prozeduraler Stil

xmlwriter_open_memory ( ) : XMLWriter|false

Erzeugt einen neuen XMLWriter, der Stringausgaben in den Speicher schreibt.

Parameter-Liste

Rückgabewerte

Objektorientierter Stil: Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Prozeduraler Stil: Gibt bei Erfolg ein neues XMLWriter Exemplar zurück, die später für XMLWriter-Funktionen verwendet werden kann. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion gibt nun bei Erfolgt ein XMLWriter Exemplar zurück. Zuvor wurde in diesem Fall eine Ressource zurückgegeben.

Siehe auch

  • XMLWriter::openUri() - Erzeugt neuen XMLWriter, der URI für Ausgabe verwendet


Erzeugt neuen XMLWriter, der URI für Ausgabe verwendet

  • « XMLWriter::openMemory
  • XMLWriter::outputMemory »
  • PHP Manual
  • XMLWriter
  • Erzeugt neuen XMLWriter, der URI für Ausgabe verwendet

XMLWriter::openUri

xmlwriter_open_uri

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::openUri -- xmlwriter_open_uri — Erzeugt neuen XMLWriter, der URI für Ausgabe verwendet

Beschreibung

Objektorientierter Stil

public XMLWriter::openUri ( string $uri ) : bool

Prozeduraler Stil

xmlwriter_open_uri ( string $uri ) : XMLWriter|false

Erzeugt einen neuen XMLWriter, der ein uri zum Erzeugen verwendet.

Parameter-Liste

uri

Der Ressource-URI, der zur Ausgabe verwendet wird.

Rückgabewerte

Objektorientierter Stil: Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben..

Prozeduraler Stil: Gibt ein neues XMLWriter Exemplar zurück, die bei Erfolg für die späteren Funktionsaufrufe verwendet werden kann. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | Diese Funktion gibt nun bei Erfolgt ein XMLWriter Exemplar zurück. Zuvor wurde in diesem Fall eine Ressource zurückgegeben.

Beispiele

Beispiel #1 Direkte Ausgabe von XML

Es ist möglich XML unter Verwendung des php://output Stream wrappers direkt auszugeben.

<?php
$out =new XMLWriter();
$out->openURI('php://output');
?>

Anmerkungen

Hinweis:

Unter Windows sind Dateien, die durch diese Funktion geöffnet wurden, gesperrt bis der Writer freigegeben wird.

Siehe auch

  • XMLWriter::openMemory() - Erzeugt einen neuen XMLWriter, der Stringausgaben in den Speicher schreibt


Gibt Puffer zurück

  • « XMLWriter::openUri
  • XMLWriter::setIndent »
  • PHP Manual
  • XMLWriter
  • Gibt Puffer zurück

XMLWriter::outputMemory

xmlwriter_output_memory

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::outputMemory -- xmlwriter_output_memory — Gibt Puffer zurück

Beschreibung

Objektorientierter Stil

public XMLWriter::outputMemory ( bool $flush = true ) : string

Prozeduraler Stil

xmlwriter_output_memory ( XMLWriter $writer , bool $flush = true ) : string

Gibt den aktuellen Puffer-Inhalt zurück.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

flush

Ob der Puffer geleert werden soll oder nicht. Standard ist true.

Rückgabewerte

Gibt den aktuellen Puffer-Inhalt als Zeichenkette zurück.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::flush() - Puffer schreiben


Einrückung ein-/ausschalten

  • « XMLWriter::outputMemory
  • XMLWriter::setIndentString »
  • PHP Manual
  • XMLWriter
  • Einrückung ein-/ausschalten

XMLWriter::setIndent

xmlwriter_set_indent

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndent -- xmlwriter_set_indent — Einrückung ein-/ausschalten

Beschreibung

Objektorientierter Stil

public XMLWriter::setIndent ( bool $enable ) : bool

Prozeduraler Stil

xmlwriter_set_indent ( XMLWriter $writer , bool $enable ) : bool

Einrückung ein- oder ausschalten.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

enable

Ob Einrückungen verwendet werden sollen. Standard ist false.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Beispiele

Beispiel #1 XMLWriter::setIndent() und gemischter Inhalt

Das Aktivieren der Einrückung ist für gemischten Inhalt nicht geeignet, da der Einrückungsstring ebenfalls vor Inline-Elementen eingefügt wird.

<?php
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(2);
$writer->startDocument();
$writer->startElement('p');
$writer->text('before');
$writer->writeElement('a', 'element');
$writer->text('after');
$writer->endElement();
$writer->endDocument();
echo $writer->outputMemory();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<?xml version="1.0"?>
<p>before <a>element</a>
after</p>

Anmerkungen

Hinweis:

Die Einrückung wird zurückgesetzt, wenn ein XMLWriter geöffnet wird.

Siehe auch

  • XMLWriter::setIndentString() - Setzt Zeichenkette, die zur Einrückung verwendet wird


Setzt Zeichenkette, die zur Einrückung verwendet wird

  • « XMLWriter::setIndent
  • XMLWriter::startAttribute »
  • PHP Manual
  • XMLWriter
  • Setzt Zeichenkette, die zur Einrückung verwendet wird

XMLWriter::setIndentString

xmlwriter_set_indent_string

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndentString -- xmlwriter_set_indent_string — Setzt Zeichenkette, die zur Einrückung verwendet wird

Beschreibung

Objektorientierter Stil

public XMLWriter::setIndentString ( string $indentation ) : bool

Prozeduraler Stil

xmlwriter_set_indent_string ( XMLWriter $writer , string $indentation ) : bool

Setzt eine Zeichenkette, die zum Einrücken von Elementen und Attributen im erzeugten XML verwendet wird.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

indentation

Einrückung.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Anmerkungen

Hinweis:

Die Einrückung wird zurückgesetzt, wenn ein XMLWriter geöffnet wird.

Siehe auch

  • XMLWriter::setIndent() - Einrückung ein-/ausschalten


Attribut beginnen

  • « XMLWriter::setIndentString
  • XMLWriter::startAttributeNs »
  • PHP Manual
  • XMLWriter
  • Attribut beginnen

XMLWriter::startAttribute

xmlwriter_start_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttribute -- xmlwriter_start_attribute — Attribut beginnen

Beschreibung

Objektorientierter Stil

public XMLWriter::startAttribute ( string $name ) : bool

Prozeduraler Stil

xmlwriter_start_attribute ( XMLWriter $writer , string $name ) : bool

Beginnt ein neues Attribut.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

name

Attributname.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Beispiele

Beispiel #1 Grundsätzliche XMLWriter::startAttribute() Verwendung

<?php
$writer = new XMLWriter;
$writer->openURI('php://output');
$writer->startDocument('1.0', 'UTF-8');?>
$writer->startElement('element');
$writer->startAttribute('attribute');
$writer->text('value');
$writer->endAttribute();
$writer->endElement();
$writer->endDocument();

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

<?xml version="1.0" encoding="UTF-8"?>
<element attribute="value"/>

Siehe auch

  • XMLWriter::startAttributeNs() - Namensraum-Attribut beginnen
  • XMLWriter::endAttribute() - Attribute beenden
  • XMLWriter::writeAttribute() - Komplettes Attribut schreiben
  • XMLWriter::writeAttributeNs() - Komplettes Attribute mit Namensraum schreiben


Namensraum-Attribut beginnen

  • « XMLWriter::startAttribute
  • XMLWriter::startCdata »
  • PHP Manual
  • XMLWriter
  • Namensraum-Attribut beginnen

XMLWriter::startAttributeNs

xmlwriter_start_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttributeNs -- xmlwriter_start_attribute_ns — Namensraum-Attribut beginnen

Beschreibung

>Objektorientierter Stil

public XMLWriter::startAttributeNs ( string|null $prefix , string $name , string|null $namespace ) : bool

Prozeduraler Stil

xmlwriter_start_attribute_ns ( XMLWriter $writer , string|null $prefix , string $name , string|null $namespace ) : bool

Beginnt ein neues Attribut im definierten Namensraum.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

prefix

Namensraum-Präfix.

name

Attributname.

namespace

Namensraum-URI. Ist uri null, wird die Namensraumdeklaration ausgelassen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
8.0.0 | prefix ist nun nullbar.

Siehe auch

  • XMLWriter::startAttribute() - Attribut beginnen
  • XMLWriter::endAttribute() - Attribute beenden
  • XMLWriter::writeAttribute() - Komplettes Attribut schreiben
  • XMLWriter::writeAttributeNs() - Komplettes Attribute mit Namensraum schreiben


CDATA-Block beginnen

  • « XMLWriter::startAttributeNs
  • XMLWriter::startComment »
  • PHP Manual
  • XMLWriter
  • CDATA-Block beginnen

XMLWriter::startCdata

xmlwriter_start_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startCdata -- xmlwriter_start_cdata — CDATA-Block beginnen

Beschreibung

Objektorientierter Stil

public XMLWriter::startCdata ( ) : bool

Prozeduraler Stil

xmlwriter_start_cdata ( XMLWriter $writer ) : bool

Beginnt einen CDATA-Block.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::endCdata() - Beendet CDATA-Block
  • XMLWriter::writeCdata() - Kompletten CDATA-Block schreiben


Kommentar beginnen

  • « XMLWriter::startCdata
  • XMLWriter::startDocument »
  • PHP Manual
  • XMLWriter
  • Kommentar beginnen

XMLWriter::startComment

xmlwriter_start_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::startComment -- xmlwriter_start_comment — Kommentar beginnen

Beschreibung

Objektorientierter Stil

public XMLWriter::startComment ( ) : bool

Prozeduraler Stil

xmlwriter_start_comment ( XMLWriter $writer ) : bool

Beginnt ein Kommentar.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::endComment() - Beendet Kommentar
  • XMLWriter::writeComment() - Kompletten Kommentar schreiben


Dokument beginnen

  • « XMLWriter::startComment
  • XMLWriter::startDtd »
  • PHP Manual
  • XMLWriter
  • Dokument beginnen

XMLWriter::startDocument

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDocument — Dokument beginnen

Beschreibung

Objektorientierter Stil

public XMLWriter::startDocument ( string|null $version = "1.0" , string|null $encoding = null , string|null $standalone = null ) : bool

Prozeduraler Stil

xmlwriter_start_document ( XMLWriter $writer , string|null $version = "1.0" , string|null $encoding = null , string|null $standalone = null ) : bool

Beginnt ein neues Dokument.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

version

Versionsnummer des Dokuments als Teil der XML-Deklaration.

encoding

Kodierung des Dokuments als Teil der XML-Deklaration.

standalone

yes oder no. Standardmäßig null.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::endDocument() - Beendet Dokument


DTD beginnen

  • « XMLWriter::startDocument
  • XMLWriter::startDtdAttlist »
  • PHP Manual
  • XMLWriter
  • DTD beginnen

XMLWriter::startDtd

xmlwriter_start_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtd -- xmlwriter_start_dtd — DTD beginnen

Beschreibung

Objektorientierter Stil

public XMLWriter::startDtd ( string $qualifiedName , string|null $publicId = null , string|null $systemId = null ) : bool

Prozeduraler Stil

xmlwriter_start_dtd ( XMLWriter $writer , string $qualifiedName , string|null $publicId = null , string|null $systemId = null ) : bool

Beginnt DTD.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

qualifiedName

Qualifizierter Name des zu erstellenden Dokumententyps.

publicId

Public Identifier für PUBLIC.

systemId

Public Identifier für SYSTEM.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::endDtd() - Beendet DTD
  • XMLWriter::writeDtd() - Komplettes DTD-Tag schreiben


DTD-Attributliste beginnen

  • « XMLWriter::startDtd
  • XMLWriter::startDtdElement »
  • PHP Manual
  • XMLWriter
  • DTD-Attributliste beginnen

XMLWriter::startDtdAttlist

xmlwriter_start_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdAttlist -- xmlwriter_start_dtd_attlist — DTD-Attributliste beginnen

Beschreibung

Objektorientierter Stil

public XMLWriter::startDtdAttlist ( string $name ) : bool

Prozeduraler Stil

xmlwriter_start_dtd_attlist ( XMLWriter $writer , string $name ) : bool

Beginnt eine DTD-Attributliste.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

name

Name der Attributliste.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::endDtdAttlist() - Beendet DTD-Attributliste
  • XMLWriter::writeDtdAttlist() - Komplette DTD-Attributliste schreiben


DTD-Element beginnen

  • « XMLWriter::startDtdAttlist
  • XMLWriter::startDtdEntity »
  • PHP Manual
  • XMLWriter
  • DTD-Element beginnen

XMLWriter::startDtdElement

xmlwriter_start_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdElement -- xmlwriter_start_dtd_element — DTD-Element beginnen

Beschreibung

Objektorientierter Stil

public XMLWriter::startDtdElement ( string $qualifiedName ) : bool

Prozeduraler Stil

xmlwriter_start_dtd_element ( XMLWriter $writer , string $qualifiedName ) : bool

Beginnt ein DTD-Element.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

qualifiedName

Qualifizierter Name des zu erstellenden Dokumententyps.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::endDtdElement() - Beendet DTD-Element
  • XMLWriter::writeDtdElement() - Komplettes DTD-Element schreiben


DTD-Entität beginnen

  • « XMLWriter::startDtdElement
  • XMLWriter::startElement »
  • PHP Manual
  • XMLWriter
  • DTD-Entität beginnen

XMLWriter::startDtdEntity

xmlwriter_start_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdEntity -- xmlwriter_start_dtd_entity — DTD-Entität beginnen

Beschreibung

Objektorientierter Stil

public XMLWriter::startDtdEntity ( string $name , bool $isParam ) : bool

Prozeduraler Stil

xmlwriter_start_dtd_entity ( XMLWriter $writer , string $name , bool $isParam ) : bool

Beginnt eine DTD-Entität.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

name

Name der Entität.

isParam

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::endDtdEntity() - Beendet DTD-Entität
  • XMLWriter::writeDtdEntity() - Komplette DTD-Entität schreiben


Element beginnen

  • « XMLWriter::startDtdEntity
  • XMLWriter::startElementNs »
  • PHP Manual
  • XMLWriter
  • Element beginnen

XMLWriter::startElement

xmlwriter_start_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startElement -- xmlwriter_start_element — Element beginnen

Beschreibung

Objektorientierter Stil

public XMLWriter::startElement ( string $name ) : bool

Prozeduraler Stil

xmlwriter_start_element ( XMLWriter $writer , string $name ) : bool

Beginnt ein Element.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

name

Elementname.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::endElement() - Beendet Element
  • XMLWriter::writeElement() - Komplettes Element schreiben


Element mit Namensraum beginnen

  • « XMLWriter::startElement
  • XMLWriter::startPi »
  • PHP Manual
  • XMLWriter
  • Element mit Namensraum beginnen

XMLWriter::startElementNs

xmlwriter_start_element_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startElementNs -- xmlwriter_start_element_ns — Element mit Namensraum beginnen

Beschreibung

Objektorientierter Stil

public XMLWriter::startElementNs ( string|null $prefix , string $name , string|null $namespace ) : bool

Prozeduraler Stil

xmlwriter_start_element_ns ( XMLWriter $writer , string|null $prefix , string $name , string|null $namespace ) : bool

Beginnt ein Element im angegebenen Namensraum.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

prefix

Präfix des Namensraum. Ist prefix null, wird der Namensraum ausgelassen.

name

Elementname.

namespace

URI des Namensraum. Ist namespace null, wird die Namensraumdeklaration ausgelassen.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::endElement() - Beendet Element
  • XMLWriter::writeElementNs() - Komplettes Element mit Namensraum schreiben


Verarbeitungsvorschrift beginnen

  • « XMLWriter::startElementNs
  • XMLWriter::text »
  • PHP Manual
  • XMLWriter
  • Verarbeitungsvorschrift beginnen

XMLWriter::startPi

xmlwriter_start_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startPi -- xmlwriter_start_pi — Verarbeitungsvorschrift beginnen

Beschreibung

Objektorientierter Stil

public XMLWriter::startPi ( string $target ) : bool

Prozeduraler Stil

xmlwriter_start_pi ( XMLWriter $writer , string $target ) : bool

Beginnt eine Verarbeitungsvorschrift.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

target

Ziel der Verarbeitungsvorschrift.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::endPi() - Beendet Verarbeitungsvorschrift
  • XMLWriter::writePi() - Komplette Verarbeitungsvorschrift-Tag schreiben


Text schreiben

  • « XMLWriter::startPi
  • XMLWriter::writeAttribute »
  • PHP Manual
  • XMLWriter
  • Text schreiben

XMLWriter::text

xmlwriter_text

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::text -- xmlwriter_text — Text schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::text ( string $content ) : bool

Prozeduraler Stil

xmlwriter_text ( XMLWriter $writer , string $content ) : bool

Schreibt einen Text.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

content

Textinhalt. Die Zeichen <, >, & und " werden als Entityreferenzen geschrieben (d.h. &lt;, &gt;, &amp; bzw. &quot;). Alle anderen Zeichen inklusive ' werden buchstäblich geschrieben. Um die speziellen XML Zeichen buchstäblich, oder um buchstäbliche Entityreferenzen zu schreiben, muss xmlwriter_write_raw() verwendet werden.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.


Komplettes Attribut schreiben

  • « XMLWriter::text
  • XMLWriter::writeAttributeNs »
  • PHP Manual
  • XMLWriter
  • Komplettes Attribut schreiben

XMLWriter::writeAttribute

xmlwriter_write_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttribute -- xmlwriter_write_attribute — Komplettes Attribut schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::writeAttribute ( string $name , string $value ) : bool

Prozeduraler Stil

xmlwriter_write_attribute ( XMLWriter $writer , string $name , string $value ) : bool

Schreibt ein vollständiges Attribut.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

name

Name des Attributs.

value

Wert des Attributs.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Beispiele

Beispiel #1 Mischen von Kindelementen und Attributen

Werden Kindelemente und Attribute gemischt, wird jeder Versuch Attribute nach dem ersten Kindelement zu schreiben fehlschlagen, und false zurückgeben.

<?php
$xml = new XMLWriter();
$xml->openMemory();

$xml->startElement('element');
$xml->writeAttribute('attr1', '0');
$xml->writeElement('subelem', '0');
var_dump($xml->writeAttribute('attr2', '0'));
$xml->endElement();

echo $xml->flush();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)
<element attr1="0"><subelem>0</subelem></element>

Siehe auch

  • XMLWriter::writeAttributeNs() - Komplettes Attribute mit Namensraum schreiben
  • XMLWriter::startAttribute() - Attribut beginnen
  • XMLWriter::startAttributeNs() - Namensraum-Attribut beginnen
  • XMLWriter::endAttribute() - Attribute beenden


Komplettes Attribute mit Namensraum schreiben

  • « XMLWriter::writeAttribute
  • XMLWriter::writeCdata »
  • PHP Manual
  • XMLWriter
  • Komplettes Attribute mit Namensraum schreiben

XMLWriter::writeAttributeNs

xmlwriter_write_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttributeNs -- xmlwriter_write_attribute_ns — Komplettes Attribute mit Namensraum schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::writeAttributeNs ( string|null $prefix , string $name , string|null $namespace , string $value ) : bool

Prozeduraler Stil

xmlwriter_write_attribute_ns ( XMLWriter $writer , string|null $prefix , string $name , string|null $namespace , string $value ) : bool

Schreibt ein vollständiges Attribute mit Namensraum.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

prefix

Präfix des Namensraum. Ist prefix null, wird der Namesraum ausgelassen.

name

Name des Attributs.

namespace

URI des Namensraum. Ist namespace null, wird die Namensraumdeklaration ausgelassen.

value

Wert des Attributs.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::writeAttribute() - Komplettes Attribut schreiben
  • XMLWriter::startAttribute() - Attribut beginnen
  • XMLWriter::startAttributeNs() - Namensraum-Attribut beginnen
  • XMLWriter::endAttribute() - Attribute beenden


Kompletten CDATA-Block schreiben

  • « XMLWriter::writeAttributeNs
  • XMLWriter::writeComment »
  • PHP Manual
  • XMLWriter
  • Kompletten CDATA-Block schreiben

XMLWriter::writeCdata

xmlwriter_write_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeCdata -- xmlwriter_write_cdata — Kompletten CDATA-Block schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::writeCdata ( string $content ) : bool

Prozeduraler Stil

xmlwriter_write_cdata ( XMLWriter $writer , string $content ) : bool

Schreibt einen vollständigen CDATA-Block.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

content

Inhalt des CDATA-Blocks.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Beispiele

Beispiel #1 Grundsätzliche xmlwriter_write_cdata() Verwendung

<?php
// Dokument einrichten
$xml = new XmlWriter();
$xml->openMemory();
$xml->setIndent(true);
$xml->startDocument('1.0', 'UTF-8');
$xml->startElement('mydoc');
$xml->startElement('myele');

// CData schreiben
$xml->startElement('mycdataelement');
$xml->writeCData("Text zum Hinzufügen als CData");
$xml->endElement();

// Dokument beenden und ausgeben
$xml->endElement();
$xml->endElement();
echo $xml->outputMemory(true);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

<mydoc>
 <myele>
  <mycdataelement><![CDATA[Text zum Hinzufügen als CData]?]></mycdataelement>
 </myele>
</mydoc>

Siehe auch

  • XMLWriter::startCdata() - CDATA-Block beginnen
  • XMLWriter::endCdata() - Beendet CDATA-Block


Kompletten Kommentar schreiben

  • « XMLWriter::writeCdata
  • XMLWriter::writeDtd »
  • PHP Manual
  • XMLWriter
  • Kompletten Kommentar schreiben

XMLWriter::writeComment

xmlwriter_write_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeComment -- xmlwriter_write_comment — Kompletten Kommentar schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::writeComment ( string $content ) : bool

Prozeduraler Stil

xmlwriter_write_comment ( XMLWriter $writer , string $content ) : bool

Schreibt einen vollständigen Kommentar.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

content

Inhalt des Kommentars.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startComment() - Kommentar beginnen
  • XMLWriter::endComment() - Beendet Kommentar


Komplettes DTD-Tag schreiben

  • « XMLWriter::writeComment
  • XMLWriter::writeDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Komplettes DTD-Tag schreiben

XMLWriter::writeDtd

xmlwriter_write_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtd -- xmlwriter_write_dtd — Komplettes DTD-Tag schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::writeDtd ( string $name , string|null $publicId = null , string|null $systemId = null , string|null $content = null ) : bool

Prozeduraler Stil

xmlwriter_write_dtd ( XMLWriter $writer , string $name , string|null $publicId = null , string|null $systemId = null , string|null $content = null ) : bool

Schreibt einen vollständigen DTD-Tag.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

name

DTD-Name.

publicId

Public Identifier für PUBLIC.

systemId

Public Identifier für SYSTEM.

content

Inhalt des DTD-Tags.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startDtd() - DTD beginnen
  • XMLWriter::endDtd() - Beendet DTD


Komplette DTD-Attributliste schreiben

  • « XMLWriter::writeDtd
  • XMLWriter::writeDtdElement »
  • PHP Manual
  • XMLWriter
  • Komplette DTD-Attributliste schreiben

XMLWriter::writeDtdAttlist

xmlwriter_write_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdAttlist -- xmlwriter_write_dtd_attlist — Komplette DTD-Attributliste schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::writeDtdAttlist ( string $name , string $content ) : bool

Prozeduraler Stil

xmlwriter_write_dtd_attlist ( XMLWriter $writer , string $name , string $content ) : bool

Schreibt eine vollständige DTD-Attributliste.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

name

Name der DTD-Attributliste.

content

Inhalt der DTD-Attributliste.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startDtdAttlist() - DTD-Attributliste beginnen
  • XMLWriter::endDtdAttlist() - Beendet DTD-Attributliste


Komplettes DTD-Element schreiben

  • « XMLWriter::writeDtdAttlist
  • XMLWriter::writeDtdEntity »
  • PHP Manual
  • XMLWriter
  • Komplettes DTD-Element schreiben

XMLWriter::writeDtdElement

xmlwriter_write_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdElement -- xmlwriter_write_dtd_element — Komplettes DTD-Element schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::writeDtdElement ( string $name , string $content ) : bool

Prozeduraler Stil

xmlwriter_write_dtd_element ( XMLWriter $writer , string $name , string $content ) : bool

Schreibt ein vollständiges DTD-Element.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

name

Name des DTD-Elements.

content

Inhalt des DTD-Elements.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startDtdElement() - DTD-Element beginnen
  • XMLWriter::endDtdElement() - Beendet DTD-Element


Komplette DTD-Entität schreiben

  • « XMLWriter::writeDtdElement
  • XMLWriter::writeElement »
  • PHP Manual
  • XMLWriter
  • Komplette DTD-Entität schreiben

XMLWriter::writeDtdEntity

xmlwriter_write_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdEntity -- xmlwriter_write_dtd_entity — Komplette DTD-Entität schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::writeDtdEntity ( string $name , string $content , bool $isParam = false , string|null $publicId = null , string|null $systemId = null , string|null $notationData = null ) : bool

Prozeduraler Stil

xmlwriter_write_dtd_entity ( XMLWriter $writer , string $name , string $content , bool $isParam = false , string|null $publicId = null , string|null $systemId = null , string|null $notationData = null ) : bool

Schreibt eine vollständige DTD-Entität.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

name

Name der Entität.

content

Inhalt der Entität.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
8.0.0 | publicId, systemId und notationData sind nun nullbar.

Siehe auch

  • XMLWriter::startDtdEntity() - DTD-Entität beginnen
  • XMLWriter::endDtdEntity() - Beendet DTD-Entität


Komplettes Element schreiben

  • « XMLWriter::writeDtdEntity
  • XMLWriter::writeElementNs »
  • PHP Manual
  • XMLWriter
  • Komplettes Element schreiben

XMLWriter::writeElement

xmlwriter_write_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElement -- xmlwriter_write_element — Komplettes Element schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::writeElement ( string $name , string|null $content = null ) : bool

Prozeduraler Stil

xmlwriter_write_element ( XMLWriter $writer , string $name , string|null $content = null ) : bool

Schreibt ein vollständiges Element.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

name

Name des Elements.

content

Inhalt des Elements.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startElement() - Element beginnen
  • XMLWriter::endElement() - Beendet Element
  • XMLWriter::writeElementNs() - Komplettes Element mit Namensraum schreiben


Komplettes Element mit Namensraum schreiben

  • « XMLWriter::writeElement
  • XMLWriter::writePi »
  • PHP Manual
  • XMLWriter
  • Komplettes Element mit Namensraum schreiben

XMLWriter::writeElementNs

xmlwriter_write_element_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElementNs -- xmlwriter_write_element_ns — Komplettes Element mit Namensraum schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::writeElementNs ( string|null $prefix , string $name , string|null $namespace , string|null $content = null ) : bool

Prozeduraler Stil

xmlwriter_write_element_ns ( XMLWriter $writer , string|null $prefix , string $name , string|null $namespace , string|null $content = null ) : bool

Schreibt ein vollständiges Element mit Namensraum.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

prefix

Präfix des Namensraum. Ist prefix null, wird der Namesraum ausgelassen.

name

Name des Elements.

namespace

URI des Namensraum. Ist namespace null, wird die Namensraumdeklaration ausgelassen.

content

Inhalt des Elements.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startElementNs() - Element mit Namensraum beginnen
  • XMLWriter::endElement() - Beendet Element
  • XMLWriter::writeElement() - Komplettes Element schreiben


Komplette Verarbeitungsvorschrift-Tag schreiben

  • « XMLWriter::writeElementNs
  • XMLWriter::writeRaw »
  • PHP Manual
  • XMLWriter
  • Komplette Verarbeitungsvorschrift-Tag schreiben

XMLWriter::writePi

xmlwriter_write_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writePi -- xmlwriter_write_pi — Komplette Verarbeitungsvorschrift-Tag schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::writePi ( string $target , string $content ) : bool

Prozeduraler Stil

xmlwriter_write_pi ( XMLWriter $writer , string $target , string $content ) : bool

Schreibt einen vollständigen Verarbeitungsvorschrift-Tag.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

target

Ziel der Verarbeitungsvorschrift.

content

Inhalt der Verarbeitungsvorschrift.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::startPi() - Verarbeitungsvorschrift beginnen
  • XMLWriter::endPi() - Beendet Verarbeitungsvorschrift


Reines XML schreiben

  • « XMLWriter::writePi
  • XSL »
  • PHP Manual
  • XMLWriter
  • Reines XML schreiben

XMLWriter::writeRaw

xmlwriter_write_raw

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL xmlwriter >= 2.0.4)

XMLWriter::writeRaw -- xmlwriter_write_raw — Reines XML schreiben

Beschreibung

Objektorientierter Stil

public XMLWriter::writeRaw ( string $content ) : bool

Prozeduraler Stil

xmlwriter_write_raw ( XMLWriter $writer , string $content ) : bool

Schreibt reinen XML Inhalt.

Parameter-Liste

writer

Nur für prozedurale Aufrufe. Die XMLWriter-Instanz, die bearbeitet werden soll. Dieses Objekt wird von Aufrufen von xmlwriter_open_uri() oder xmlwriter_open_memory() geliefert.

content

Zeichenkette, die geschrieben werden soll.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version | Beschreibung
8.0.0 | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • XMLWriter::text() - Text schreiben


XSL

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
    • Laufzeit-Konfiguration
    • Ressource-Typen
  • Vordefinierte Konstanten
  • Beispiele
    • Die Beispieldateien collection.xml und collection.xsl
    • Fehlerbehandlung mit den Funktionen der libxml
  • XSLTProcessor — Die XSLTProcessor-Klasse
    • XSLTProcessor::__construct — Erzeugt ein neues XSLTProcessor-Objekt
    • XSLTProcessor::getParameter — Liefert den Wert eines Parameters
    • XSLTProcessor::getSecurityPrefs — Liefert die Sicherheitseinstellungen
    • XSLTProcessor::hasExsltSupport — Prüft, ob die EXSLT-Unterstützung aktiviert ist
    • XSLTProcessor::importStylesheet — Importiert ein Stylesheet
    • XSLTProcessor::registerPHPFunctions — Aktiviert die Nutzbarkeit von PHP-Funktionen als XSLT-Funktionen
    • XSLTProcessor::removeParameter — Löscht einen Parameter
    • XSLTProcessor::setParameter — Setzt den Wert für einen Parameter
    • XSLTProcessor::setProfiling — Setzt den Dateinamen für die Ausgaben des Profilers
    • XSLTProcessor::setSecurityPrefs — Setzt die Sicherheitseinstellungen
    • XSLTProcessor::transformToDoc — Transformierung in ein neues DOMDocument
    • XSLTProcessor::transformToURI — Transformierung zu einer URI
    • XSLTProcessor::transformToXml — Transformierung zu einem XML-String


Einführung

Die XSL Erweiterung implementiert den XSL-Standard und erlaubt » XSLT Transformationen unter Verwendung der » libxslt-Bibliothek.


Anforderungen

Diese Erweiterung erfordert die Erweiterung libxml. Das heißt, dass die Übergabe von --with-libxml, oder vor PHP 7.4.0 --enable-libxml, ebenfalls benötigt wird. Dies wird jedoch implizit erfüllt, da libxml standardmäßig aktiviert wird.

Um diese Erweiterung verwenden zu können, muß die Bibliothek libxslt in der Version 1.1.0 oder höher installiert sein. Sie steht unter » http://xmlsoft.org/XSLT/ zum Download bereit.


Installation

Die Erweiterung XSL ist seit PHP 5 in der Distribution enthalten und kann über die Option --with-xsl[=DIR] in Ihrer Build-Konfiguration aktiviert werden. Dabei steht DIR für das Installationsverzeichnis der libxslt-Bibliothek.


Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

XSL_CLONE_AUTO (int)
XSL_CLONE_NEVER (int)
XSL_CLONE_ALWAYS (int)
LIBXSLT_VERSION (int)
Version der libxslt als Zahl, beispielsweise 10117. Verfügbar seit PHP 5.1.2.
LIBXSLT_DOTTED_VERSION (string)
Version der libxslt als String, beispielsweise 1.1.17. Verfügbar seit PHP 5.1.2.
LIBEXSLT_VERSION (int)
Version der libexslt als Zahl, beispielsweise 813. Verfügbar seit PHP 5.1.2.
LIBEXSLT_DOTTED_VERSION (string)
Version der libexslt als String, beispielsweise 1.1.17. Verfügbar seit PHP 5.1.2.
XSL_SECPREF_NONE (int)
Schaltet sämtliche Sicherheitsrestriktionen aus
XSL_SECPREF_READ_FILE (int)
Verbietet den lesenden Zugriff auf Dateien
XSL_SECPREF_WRITE_FILE (int)
Verbietet den schreibenden Zugriff auf Dateien
XSL_SECPREF_CREATE_DIRECTORY (int)
Verbietet das Erzeugen von Verzeichnissen
XSL_SECPREF_READ_NETWORK (int)
Verbietet den lesenden Zugriff auf Dateien über das Netzwerk
XSL_SECPREF_WRITE_NETWORK (int)
Verbietet den schreibenden Zugriff auf Dateien über das Netzwerk
XSL_SECPREF_DEFAULT (int)
Verbietet sämtliche Schreibzugriffe; identisch mit der Bitmaske von XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE.


Beispiele

Inhaltsverzeichnis

  • Die Beispieldateien collection.xml und collection.xsl
  • Fehlerbehandlung mit den Funktionen der libxml


Die Beispieldateien collection.xml und collection.xsl

Viele Beispiele in dieser Referenz erfordern sowohl eine XML- als auch XSL-Datei. Die Dateien collection.xml und collection.xsl bestehen jeweils aus folgendem Inhalt:

Beispiel #1 collection.xml

<collection>
 <cd>
  <title>Fight for your mind</title>
  <artist>Ben Harper</artist>
  <year>1995</year>
 </cd>
 <cd>
  <title>Electric Ladyland</title>
  <artist>Jimi Hendrix</artist>
  <year>1997</year>
 </cd>
</collection>

Beispiel #2 collection.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:param name="owner" select="'Nicolas Eliaszewicz'"/>
 <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
 <xsl:template match="collection">
  Hey! Welcome to <xsl:value-of select="$owner"/>'s sweet CD collection!
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="cd">
  <h1><xsl:value-of select="title"/></h1>
  <h2>by <xsl:value-of select="artist"/> - <xsl:value-of select="year"/></h2>
  <hr />
 </xsl:template>
</xsl:stylesheet>


Fehlerbehandlung mit den Funktionen der libxml

libxml bietet Funktionen zur Verarbeitung von Fehlern, die auch dafür verwendet werden können Fehler bei der Verarbeitung von XSLT abzufangen.

Beispiel #1 fruits.xml

Eine gültige XML-Datei.

<fruits>
 <fruit>Apple</fruit>
 <fruit>Banana</fruit>
 <fruit>Cherry</fruit>
</fruits>

Beispiel #2 fruits.xsl

Enthält einen ungültigen Ausdruck im select.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" encoding="utf-8" indent="no"/>
 <xsl:template match="fruits">
  <ul>
   <xsl:apply-templates/>
  </ul>
 </xsl:template>
 <xsl:template match="fruit">
  <li><xsl:value-of select="THIS IS A DELIBERATE ERROR!"/></li>
 </xsl:template>
</xsl:stylesheet>

Beispiel #3 Sammel und ausgaben der Fehler

Das Beispiel unten sammelt die Fehlermeldungen die beim Aufruf des fehlerhaften Stylesheets mittels XSLTProcessor::importStyleSheet() durch libxml erzeugt werden und gibt sie kontrolliert aus.

<?php

$xmldoc = new DOMDocument();
$xsldoc = new DOMDocument();
$xsl = new XSLTProcessor();

$xmldoc->loadXML('fruits.xml');
$xsldoc->loadXML('fruits.xsl');

libxml_use_internal_errors(true);
$result = $xsl->importStyleSheet($xsldoc);
if (!$result) {
    foreach (libxml_get_errors() as $error) {
        echo "Libxml error: {$error->message}\n";
    }
}
libxml_use_internal_errors(false);

if ($result) {
    echo $xsl->transformToXML($xmldoc);
}

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Libxml error: Invalid expression

Libxml error: compilation error: file fruits.xsl line 9 element value-of
Libxml error: xsl:value-of : could not compile select expression 'THIS IS A DELIBERATE ERROR!'


Die XSLTProcessor-Klasse

(PHP 5, PHP 7, PHP 8)

Einführung

Klassenbeschreibung

XSLTProcessor {
/* Methoden */
public getParameter ( string $namespace , string $name ) : string|false
public getSecurityPrefs ( ) : int
public hasExsltSupport ( ) : bool
public importStylesheet ( object $stylesheet ) : bool
public registerPHPFunctions ( array|string|null $functions = null ) : void
public removeParameter ( string $namespace , string $name ) : bool
public setParameter ( string $namespace , string $name , string $value ) : bool
public setProfiling ( string|null $filename ) : bool
public setSecurityPrefs ( int $preferences ) : int
public transformToDoc ( object $document , string|null $returnClass = null ) : DOMDocument|false
transformToURI ( DOMDocument $doc , string $uri ) : int
public transformToXml ( object $document ) : string|false|null
}

Inhaltsverzeichnis

  • XSLTProcessor::__construct — Erzeugt ein neues XSLTProcessor-Objekt
  • XSLTProcessor::getParameter — Liefert den Wert eines Parameters
  • XSLTProcessor::getSecurityPrefs — Liefert die Sicherheitseinstellungen
  • XSLTProcessor::hasExsltSupport — Prüft, ob die EXSLT-Unterstützung aktiviert ist
  • XSLTProcessor::importStylesheet — Importiert ein Stylesheet
  • XSLTProcessor::registerPHPFunctions — Aktiviert die Nutzbarkeit von PHP-Funktionen als XSLT-Funktionen
  • XSLTProcessor::removeParameter — Löscht einen Parameter
  • XSLTProcessor::setParameter — Setzt den Wert für einen Parameter
  • XSLTProcessor::setProfiling — Setzt den Dateinamen für die Ausgaben des Profilers
  • XSLTProcessor::setSecurityPrefs — Setzt die Sicherheitseinstellungen
  • XSLTProcessor::transformToDoc — Transformierung in ein neues DOMDocument
  • XSLTProcessor::transformToURI — Transformierung zu einer URI
  • XSLTProcessor::transformToXml — Transformierung zu einem XML-String


Erzeugt ein neues XSLTProcessor-Objekt

  • « XSLTProcessor
  • XSLTProcessor::getParameter »
  • PHP Manual
  • XSLTProcessor
  • Erzeugt ein neues XSLTProcessor-Objekt

XSLTProcessor::__construct

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::__construct — Erzeugt ein neues XSLTProcessor-Objekt

Beschreibung

XSLTProcessor::__construct ( )

Erzeugt ein neues XSLTProcessor-Objekt.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Verwendung von XSLTProcessor

<?php

$xsldoc = new DOMDocument();
$xsldoc->load($xsl_filename);

$xmldoc = new DOMDocument();
$xmldoc->load($xml_filename);

$xsl = new XSLTProcessor();
$xsl->importStyleSheet($xsldoc);
echo $xsl->transformToXML($xmldoc);

?>


Liefert den Wert eines Parameters

  • « XSLTProcessor::__construct
  • XSLTProcessor::getSecurityPrefs »
  • PHP Manual
  • XSLTProcessor
  • Liefert den Wert eines Parameters

XSLTProcessor::getParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::getParameter — Liefert den Wert eines Parameters

Beschreibung

public XSLTProcessor::getParameter ( string $namespace , string $name ) : string|false

Liefert den Wert eines mittels XSLTProcessor::setParameter() gesetzten Parameters.

Parameter-Liste

namespace

Die Namespace-URI des XSLT-Parameters.

name

Der lokale Name des Parameters.

Rückgabewerte

Der Wert des Parameters (als String) oder false, falls kein Wert gesetzt ist.

Siehe auch

  • XSLTProcessor::setParameter() - Setzt den Wert für einen Parameter
  • XSLTProcessor::removeParameter() - Löscht einen Parameter


Liefert die Sicherheitseinstellungen

  • « XSLTProcessor::getParameter
  • XSLTProcessor::hasExsltSupport »
  • PHP Manual
  • XSLTProcessor
  • Liefert die Sicherheitseinstellungen

XSLTProcessor::getSecurityPrefs

(PHP >= 5.4.0, PHP 7, PHP 8)

XSLTProcessor::getSecurityPrefs — Liefert die Sicherheitseinstellungen

Beschreibung

public XSLTProcessor::getSecurityPrefs ( ) : int

Liefert die Sicherheitseinstellungen

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Eine Bitmaske bestehend aus XSL_SECPREF_READ_FILE, XSL_SECPREF_WRITE_FILE, XSL_SECPREF_CREATE_DIRECTORY, XSL_SECPREF_READ_NETWORK, XSL_SECPREF_WRITE_NETWORK.


Prüft, ob die EXSLT-Unterstützung aktiviert ist

  • « XSLTProcessor::getSecurityPrefs
  • XSLTProcessor::importStylesheet »
  • PHP Manual
  • XSLTProcessor
  • Prüft, ob die EXSLT-Unterstützung aktiviert ist

XSLTProcessor::hasExsltSupport

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

XSLTProcessor::hasExsltSupport — Prüft, ob die EXSLT-Unterstützung aktiviert ist

Beschreibung

public XSLTProcessor::hasExsltSupport ( ) : bool

Diese Methode ermittelt, ob PHP mit Unterstützung für die » EXSLT-Bibliothek kompiliert wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Prüfen auf EXSLT-Unterstützung

<?php

$proc = new XSLTProcessor;
if (!$proc->hasExsltSupport()) {
    die('EXSLT nicht verfügbar');
}

// Weitere Verarbeitung ..

?>


Importiert ein Stylesheet

  • « XSLTProcessor::hasExsltSupport
  • XSLTProcessor::registerPHPFunctions »
  • PHP Manual
  • XSLTProcessor
  • Importiert ein Stylesheet

XSLTProcessor::importStylesheet

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::importStylesheet — Importiert ein Stylesheet

Beschreibung

public XSLTProcessor::importStylesheet ( object $stylesheet ) : bool

Diese Methode importiert ein Stylesheet in das XSLTProcessor-Objekt zur Transformierung.

Parameter-Liste

stylesheet

Das zu importierende Stylesheet in Form eines DOMDocument- oder SimpleXMLElement-Objekts.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.


Aktiviert die Nutzbarkeit von PHP-Funktionen als XSLT-Funktionen

  • « XSLTProcessor::importStylesheet
  • XSLTProcessor::removeParameter »
  • PHP Manual
  • XSLTProcessor
  • Aktiviert die Nutzbarkeit von PHP-Funktionen als XSLT-Funktionen

XSLTProcessor::registerPHPFunctions

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

XSLTProcessor::registerPHPFunctions — Aktiviert die Nutzbarkeit von PHP-Funktionen als XSLT-Funktionen

Beschreibung

public XSLTProcessor::registerPHPFunctions ( array|string|null $functions = null ) : void

Diese Methode aktiviert die Nutzbarkeit von PHP-Funktionen als XSLT-Funktionen innerhalb eines XSL-Stylesheets.

Parameter-Liste

functions

Dieser Parameter ermöglicht es, die via XSL aufrufbaren Funktionen einzuschränken.

Der übergebene Wert kann entweder ein String (der Name einer Funktion) oder ein Array mit Funktionsnamen sein.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Beispiele

Beispiel #1 Einfacher Aufruf einer PHP-Funktion durch ein Stylesheet

<?php
$xml = <<<EOB
<allusers>
 <user>
  <uid>bob</uid>
 </user>
 <user>
  <uid>joe</uid>
 </user>
</allusers>
EOB;
$xsl = <<<EOB
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:php="http://php.net/xsl">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
 <xsl:template match="allusers">
  <html><body>
    <h2>Benutzer</h2>
    <table>
    <xsl:for-each select="user">
      <tr><td>
        <xsl:value-of
             select="php:function('ucfirst',string(uid))"/>
      </td></tr>
    </xsl:for-each>
    </table>
  </body></html>
 </xsl:template>
</xsl:stylesheet>
EOB;
$xmldoc = DOMDocument::loadXML($xml);
$xsldoc = DOMDocument::loadXML($xsl);

$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
echo $proc->transformToXML($xmldoc);
?>


Löscht einen Parameter

  • « XSLTProcessor::registerPHPFunctions
  • XSLTProcessor::setParameter »
  • PHP Manual
  • XSLTProcessor
  • Löscht einen Parameter

XSLTProcessor::removeParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::removeParameter — Löscht einen Parameter

Beschreibung

public XSLTProcessor::removeParameter ( string $namespace , string $name ) : bool

Löscht, wenn gesetzt, den Wert eines Parameters. Sofern im Stylesheet mit Standardwert definiert, wird dieser vom Prozessor verwendet.

Parameter-Liste

namespace

Die Namespace-URI des XSLT-Parameters.

name

Der lokale Name des Parameters.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Siehe auch

  • XSLTProcessor::setParameter() - Setzt den Wert für einen Parameter
  • XSLTProcessor::getParameter() - Liefert den Wert eines Parameters


Setzt den Wert für einen Parameter

  • « XSLTProcessor::removeParameter
  • XSLTProcessor::setProfiling »
  • PHP Manual
  • XSLTProcessor
  • Setzt den Wert für einen Parameter

XSLTProcessor::setParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::setParameter — Setzt den Wert für einen Parameter

Beschreibung

public XSLTProcessor::setParameter ( string $namespace , string $name , string $value ) : bool
public XSLTProcessor::setParameter ( string $namespace , array $options ) : bool

Setzt den Wert von einem oder mehreren Parametern zur Verwendung bei Transformationen mittels XSLTProcessor. Falls ein Parameter im Stylesheet nicht existiert wird der angegebene Wert ignoriert.

Parameter-Liste

namespace

Die Namespace-URI des XSLT-Parameters.

name

Der lokale Name des Parameters.

value

Der neue Wert für den XSLT-Parameter.

options

Ein assoziatives Array mit name => wert-Paaren.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ändern des Parameters "owner" vor der Transformation

<?php

$collections = array(
    'Marc Rutkowski' => 'marc',
    'Olivier Parmentier' => 'olivier'
);

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Prozessor konfigurieren
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // Stylesheet anhängen

foreach ($collections as $name => $file) {
    // Load the XML source
    $xml = new DOMDocument;
    $xml->load('collection_' . $file . '.xml');

    $proc->setParameter('', 'owner', $name);
    $proc->transformToURI($xml, 'file:///tmp/' . $file . '.html');
}

?>

Siehe auch

  • XSLTProcessor::getParameter() - Liefert den Wert eines Parameters
  • XSLTProcessor::removeParameter() - Löscht einen Parameter


Setzt den Dateinamen für die Ausgaben des Profilers

  • « XSLTProcessor::setParameter
  • XSLTProcessor::setSecurityPrefs »
  • PHP Manual
  • XSLTProcessor
  • Setzt den Dateinamen für die Ausgaben des Profilers

XSLTProcessor::setProfiling

(PHP >= 5.3.0, PHP 7, PHP 8)

XSLTProcessor::setProfiling — Setzt den Dateinamen für die Ausgaben des Profilers

Beschreibung

public XSLTProcessor::setProfiling ( string|null $filename ) : bool

Setzt den Dateinamen für die Ausgaben des Profilers während der Verarbeitung eines Stylesheets.

Parameter-Liste

filename

Pfad zur Datei, in die die Informationen geschrieben werden

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Beispiel #1 Ausgabe des Profilers

<?php
// Laden der XML/XSL-Quelldokomente
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Prozessor instantiieren und konfigurieren
$proc = new XSLTProcessor;
$proc->setProfiling('profiling.txt');
$proc->importStyleSheet($xsl);

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);
?>

Der obige Quelltext erzeugt ungefähr die nachfolgende Ausgabe in der angegebenen Zieldatei:

number               match                name      mode  Calls Tot 100us Avg

    0                   cd                                    2      3      1
    1           collection                                    1      1      1

                         Total                                3      4


Setzt die Sicherheitseinstellungen

  • « XSLTProcessor::setProfiling
  • XSLTProcessor::transformToDoc »
  • PHP Manual
  • XSLTProcessor
  • Setzt die Sicherheitseinstellungen

XSLTProcessor::setSecurityPrefs

(PHP >= 5.4.0, PHP 7, PHP 8)

XSLTProcessor::setSecurityPrefs — Setzt die Sicherheitseinstellungen

Beschreibung

public XSLTProcessor::setSecurityPrefs ( int $preferences ) : int

Setzt die Sicherheitseinstellungen.

Parameter-Liste

preferences

Die neuen Sicherheitseinstellungen. Die folgenden Konstanten können per OR verbunden werden: XSL_SECPREF_READ_FILE, XSL_SECPREF_WRITE_FILE, XSL_SECPREF_CREATE_DIRECTORY, XSL_SECPREF_READ_NETWORK, XSL_SECPREF_WRITE_NETWORK. Alternativ kann auch, XSL_SECPREF_NONE oder XSL_SECPREF_DEFAULT übergeben werden.

Rückgabewerte

Liefert die vorherigen Sicherheitseinstellungen zurück.


Transformierung in ein neues DOMDocument

  • « XSLTProcessor::setSecurityPrefs
  • XSLTProcessor::transformToURI »
  • PHP Manual
  • XSLTProcessor
  • Transformierung in ein neues DOMDocument

XSLTProcessor::transformToDoc

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToDoc — Transformierung in ein neues DOMDocument

Beschreibung

public XSLTProcessor::transformToDoc ( object $document , string|null $returnClass = null ) : DOMDocument|false

Transformiert die Quellnode unter Verwendung des mittels XSLTProcessor::importStylesheet() importierten Stylesheets in ein neues DOMDocument.

Parameter-Liste

document

Die zu verarbeitende Node.

Rückgabewerte

Das erzeugte DOMDocument oder false im Falle eines Fehlers bei der Verarbeitung.

Beispiele

Beispiel #1 Transformierung in ein DOMDocument

<?php

// Laden der XML/XSL-Quelldokomente
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Prozessor instanziieren und konfigurieren
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // XSL Document importieren

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

Siehe auch

  • XSLTProcessor::transformToUri() - Transformierung zu einer URI
  • XSLTProcessor::transformToXml() - Transformierung zu einem XML-String


Transformierung zu einer URI

  • « XSLTProcessor::transformToDoc
  • XSLTProcessor::transformToXml »
  • PHP Manual
  • XSLTProcessor
  • Transformierung zu einer URI

XSLTProcessor::transformToURI

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToURI — Transformierung zu einer URI

Beschreibung

XSLTProcessor::transformToURI ( DOMDocument $doc , string $uri ) : int

Transformiert die Quell-Node unter Verwendung des mittels XSLTProcessor::importStylesheet()-Methode importierten Stylesheets zu einer gegebene URI.

Parameter-Liste

doc

Das zu verarbeitende Dokument.

uri

Die URI für das Ziel der Transformation.

Rückgabewerte

Liefert die Anzahl geschriebener Bytes zurück oder false, falls ein Fehler aufgetreten ist.

Beispiele

Beispiel #1 Transformierung in eine HTML-Datei

<?php

// XML-Quellen laden
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Prozessor instanziieren und konfigurieren
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // XSL Document importieren

$proc->transformToURI($xml, 'file:///tmp/out.html');

?>

Siehe auch

  • XSLTProcessor::transformToDoc() - Transformierung in ein neues DOMDocument
  • XSLTProcessor::transformToXml() - Transformierung zu einem XML-String


Transformierung zu einem XML-String

  • « XSLTProcessor::transformToURI
  • GUI Erweiterungen »
  • PHP Manual
  • XSLTProcessor
  • Transformierung zu einem XML-String

XSLTProcessor::transformToXml

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToXml — Transformierung zu einem XML-String

Beschreibung

public XSLTProcessor::transformToXml ( object $document ) : string|false|null

Transformiert die Quell-Node unter Verwendung des mittels xsltprocessor::importStylesheet() importierten Stylesheets in einen String.

Parameter-Liste

document

Das zu transformierende DOMDocument- oder SimpleXMLElement-Objekt.

Rückgabewerte

Das Ergebnis der Transformierung als String oder false im Fehlerfall.

Beispiele

Beispiel #1 Transformierung in einen String

<?php

// XML-Quellen laden
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Prozessor instanziieren und konfigurieren
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // XSL Document importieren

echo $proc->transformToXML($xml);

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

<h1>Fight for your mind</h1><h2>by Ben Harper - 1995</h2><hr>
<h1>Electric Ladyland</h1><h2>by Jimi Hendrix - 1997</h2><hr>

Siehe auch

  • XSLTProcessor::transformToDoc() - Transformierung in ein neues DOMDocument
  • XSLTProcessor::transformToUri() - Transformierung zu einer URI


GUI Erweiterungen

  • UI
    • Einführung
    • Installation/Konfiguration
    • UI\Point — Represents a position (x,y)
    • UI\Size — Represents dimenstions (width, height)
    • UI\Window — Window
    • UI\Control — Control
    • UI\Menu — Menu
    • UI\MenuItem — Menu Item
    • UI\Area — Area
    • UI\Executor — Execution Scheduler
    • UI\Controls\Tab — Tab Control
    • UI\Controls\Check — Check Control
    • UI\Controls\Button — Button Control
    • UI\Controls\ColorButton — ColorButton Control
    • UI\Controls\Label — Label Control
    • UI\Controls\Entry — Entry Control
    • UI\Controls\MultilineEntry — MultilineEntry Control
    • UI\Controls\Spin — Spin Control
    • UI\Controls\Slider — Slider Control
    • UI\Controls\Progress — Progress Control
    • UI\Controls\Separator — Control Separator
    • UI\Controls\Combo — Combo Control
    • UI\Controls\EditableCombo — EdiableCombo Control
    • UI\Controls\Radio — Radio Control
    • UI\Controls\Picker — Picker Control
    • UI\Controls\Form — Control Form (Arrangement)
    • UI\Controls\Grid — Control Grid (Arrangement)
    • UI\Controls\Group — Control Group (Arrangement)
    • UI\Controls\Box — Control Box (Arrangement)
    • UI\Draw\Pen — Draw Pen
    • UI\Draw\Path — Draw Path
    • UI\Draw\Matrix — Draw Matrix
    • UI\Draw\Color — Color Representation
    • UI\Draw\Stroke — Draw Stroke
    • UI\Draw\Brush — Brushes
    • UI\Draw\Brush\Gradient — Gradient Brushes
    • UI\Draw\Brush\LinearGradient — Linear Gradient
    • UI\Draw\Brush\RadialGradient — Radial Gradient
    • UI\Draw\Text\Layout — Represents Text Layout
    • UI\Draw\Text\Font — Represents a Font
    • UI\Draw\Text\Font\Descriptor — Font Descriptor
    • UI Funktionen
    • UI\Draw\Text\Font\Weight — Font Weight Settings
    • UI\Draw\Text\Font\Italic — Italic Font Settings
    • UI\Draw\Text\Font\Stretch — Font Stretch Settings
    • UI\Draw\Line\Cap — Line Cap Settings
    • UI\Draw\Line\Join — Line Join Settings
    • UI\Key — Key Identifiers
    • UI\Exception\InvalidArgumentException — InvalidArgumentException
    • UI\Exception\RuntimeException — RuntimeException


UI

  • Einführung
  • Installation/Konfiguration
    • Anforderungen
    • Installation
  • UI\Point — Represents a position (x,y)
    • UI\Point::at — Size Coercion
    • UI\Point::__construct — Construct a new Point
    • UI\Point::getX — Retrieves X
    • UI\Point::getY — Retrieves Y
    • UI\Point::setX — Set X
    • UI\Point::setY — Set Y
  • UI\Size — Represents dimenstions (width, height)
    • UI\Size::__construct — Construct a new Size
    • UI\Size::getHeight — Retrieves Height
    • UI\Size::getWidth — Retrives Width
    • UI\Size::of — Point Coercion
    • UI\Size::setHeight — Set Height
    • UI\Size::setWidth — Set Width
  • UI\Window — Window
    • UI\Window::add — Add a Control
    • UI\Window::__construct — Construct a new Window
    • UI\Window::error — Show Error Box
    • UI\Window::getSize — Get Window Size
    • UI\Window::getTitle — Get Title
    • UI\Window::hasBorders — Border Detection
    • UI\Window::hasMargin — Margin Detection
    • UI\Window::isFullScreen — Full Screen Detection
    • UI\Window::msg — Show Message Box
    • UI\Window::onClosing — Closing Callback
    • UI\Window::open — Open Dialog
    • UI\Window::save — Save Dialog
    • UI\Window::setBorders — Border Use
    • UI\Window::setFullScreen — Full Screen Use
    • UI\Window::setMargin — Margin Use
    • UI\Window::setSize — Set Size
    • UI\Window::setTitle — Window Title
  • UI\Control — Control
    • UI\Control::destroy — Destroy Control
    • UI\Control::disable — Disable Control
    • UI\Control::enable — Enable Control
    • UI\Control::getParent — Get Parent Control
    • UI\Control::getTopLevel — Get Top Level
    • UI\Control::hide — Hide Control
    • UI\Control::isEnabled — Determine if Control is enabled
    • UI\Control::isVisible — Determine if Control is visible
    • UI\Control::setParent — Set Parent Control
    • UI\Control::show — Control Show
  • UI\Menu — Menu
    • UI\Menu::append — Append Menu Item
    • UI\Menu::appendAbout — Append About Menu Item
    • UI\Menu::appendCheck — Append Checkable Menu Item
    • UI\Menu::appendPreferences — Append Preferences Menu Item
    • UI\Menu::appendQuit — Append Quit Menu Item
    • UI\Menu::appendSeparator — Append Menu Item Separator
    • UI\Menu::__construct — Construct a new Menu
  • UI\MenuItem — Menu Item
    • UI\MenuItem::disable — Disable Menu Item
    • UI\MenuItem::enable — Enable Menu Item
    • UI\MenuItem::isChecked — Detect Checked
    • UI\MenuItem::onClick — On Click Callback
    • UI\MenuItem::setChecked — Set Checked
  • UI\Area — Area
    • UI\Area::onDraw — Draw Callback
    • UI\Area::onKey — Key Callback
    • UI\Area::onMouse — Mouse Callback
    • UI\Area::redraw — Redraw Area
    • UI\Area::scrollTo — Area Scroll
    • UI\Area::setSize — Set Size
  • UI\Executor — Execution Scheduler
    • UI\Executor::__construct — Construct a new Executor
    • UI\Executor::kill — Stop Executor
    • UI\Executor::onExecute — Execution Callback
    • UI\Executor::setInterval — Interval Manipulation
  • UI\Controls\Tab — Tab Control
    • UI\Controls\Tab::append — Append Page
    • UI\Controls\Tab::delete — Delete Page
    • UI\Controls\Tab::hasMargin — Margin Detection
    • UI\Controls\Tab::insertAt — Insert Page
    • UI\Controls\Tab::pages — Page Count
    • UI\Controls\Tab::setMargin — Set Margin
  • UI\Controls\Check — Check Control
    • UI\Controls\Check::__construct — Construct a new Check
    • UI\Controls\Check::getText — Get Text
    • UI\Controls\Check::isChecked — Checked Detection
    • UI\Controls\Check::onToggle — Toggle Callback
    • UI\Controls\Check::setChecked — Set Checked
    • UI\Controls\Check::setText — Set Text
  • UI\Controls\Button — Button Control
    • UI\Controls\Button::__construct — Construct a new Button
    • UI\Controls\Button::getText — Get Text
    • UI\Controls\Button::onClick — Click Handler
    • UI\Controls\Button::setText — Set Text
  • UI\Controls\ColorButton — ColorButton Control
    • UI\Controls\ColorButton::getColor — Get Color
    • UI\Controls\ColorButton::onChange — Change Handler
    • UI\Controls\ColorButton::setColor — Set Color
  • UI\Controls\Label — Label Control
    • UI\Controls\Label::__construct — Construct a new Label
    • UI\Controls\Label::getText — Get Text
    • UI\Controls\Label::setText — Set Text
  • UI\Controls\Entry — Entry Control
    • UI\Controls\Entry::__construct — Construct a new Entry
    • UI\Controls\Entry::getText — Get Text
    • UI\Controls\Entry::isReadOnly — Detect Read Only
    • UI\Controls\Entry::onChange — Change Handler
    • UI\Controls\Entry::setReadOnly — Set Read Only
    • UI\Controls\Entry::setText — Set Text
  • UI\Controls\MultilineEntry — MultilineEntry Control
    • UI\Controls\MultilineEntry::append — Append Text
    • UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry
    • UI\Controls\MultilineEntry::getText — Get Text
    • UI\Controls\MultilineEntry::isReadOnly — Read Only Detection
    • UI\Controls\MultilineEntry::onChange — Change Handler
    • UI\Controls\MultilineEntry::setReadOnly — Set Read Only
    • UI\Controls\MultilineEntry::setText — Set Text
  • UI\Controls\Spin — Spin Control
    • UI\Controls\Spin::__construct — Construct a new Spin
    • UI\Controls\Spin::getValue — Get Value
    • UI\Controls\Spin::onChange — Change Handler
    • UI\Controls\Spin::setValue — Set Value
  • UI\Controls\Slider — Slider Control
    • UI\Controls\Slider::__construct — Construct a new Slider
    • UI\Controls\Slider::getValue — Get Value
    • UI\Controls\Slider::onChange — Change Handler
    • UI\Controls\Slider::setValue — Set Value
  • UI\Controls\Progress — Progress Control
    • UI\Controls\Progress::getValue — Get Value
    • UI\Controls\Progress::setValue — Set Value
  • UI\Controls\Separator — Control Separator
    • UI\Controls\Separator::__construct — Construct a new Separator
  • UI\Controls\Combo — Combo Control
    • UI\Controls\Combo::append — Append Option
    • UI\Controls\Combo::getSelected — Get Selected Option
    • UI\Controls\Combo::onSelected — Selected Handler
    • UI\Controls\Combo::setSelected — Set Selected Option
  • UI\Controls\EditableCombo — EdiableCombo Control
    • UI\Controls\EditableCombo::append — Append Option
    • UI\Controls\EditableCombo::getText — Get Text
    • UI\Controls\EditableCombo::onChange — Change Handler
    • UI\Controls\EditableCombo::setText — Set Text
  • UI\Controls\Radio — Radio Control
    • UI\Controls\Radio::append — Append Option
    • UI\Controls\Radio::getSelected — Get Selected Option
    • UI\Controls\Radio::onSelected — Selected Handler
    • UI\Controls\Radio::setSelected — Set Selected Option
  • UI\Controls\Picker — Picker Control
    • UI\Controls\Picker::__construct — Construct a new Picker
  • UI\Controls\Form — Control Form (Arrangement)
    • UI\Controls\Form::append — Append Control
    • UI\Controls\Form::delete — Delete Control
    • UI\Controls\Form::isPadded — Padding Detection
    • UI\Controls\Form::setPadded — Set Padding
  • UI\Controls\Grid — Control Grid (Arrangement)
    • UI\Controls\Grid::append — Append Control
    • UI\Controls\Grid::isPadded — Padding Detection
    • UI\Controls\Grid::setPadded — Set Padding
  • UI\Controls\Group — Control Group (Arrangement)
    • UI\Controls\Group::append — Append Control
    • UI\Controls\Group::__construct — Construct a new Group
    • UI\Controls\Group::getTitle — Get Title
    • UI\Controls\Group::hasMargin — Margin Detection
    • UI\Controls\Group::setMargin — Set Margin
    • UI\Controls\Group::setTitle — Set Title
  • UI\Controls\Box — Control Box (Arrangement)
    • UI\Controls\Box::append — Append Control
    • UI\Controls\Box::__construct — Construct a new Box
    • UI\Controls\Box::delete — Delete Control
    • UI\Controls\Box::getOrientation — Get Orientation
    • UI\Controls\Box::isPadded — Padding Detection
    • UI\Controls\Box::setPadded — Set Padding
  • UI\Draw\Pen — Draw Pen
    • UI\Draw\Pen::clip — Clip a Path
    • UI\Draw\Pen::fill — Fill a Path
    • UI\Draw\Pen::restore — Restore
    • UI\Draw\Pen::save — Save
    • UI\Draw\Pen::stroke — Stroke a Path
    • UI\Draw\Pen::transform — Matrix Transform
    • UI\Draw\Pen::write — Draw Text at Point
  • UI\Draw\Path — Draw Path
    • UI\Draw\Path::addRectangle — Draw a Rectangle
    • UI\Draw\Path::arcTo — Draw an Arc
    • UI\Draw\Path::bezierTo — Draw Bezier Curve
    • UI\Draw\Path::closeFigure — Close Figure
    • UI\Draw\Path::__construct — Construct a new Path
    • UI\Draw\Path::end — Finalize Path
    • UI\Draw\Path::lineTo — Draw a Line
    • UI\Draw\Path::newFigure — Draw Figure
    • UI\Draw\Path::newFigureWithArc — Draw Figure with Arc
  • UI\Draw\Matrix — Draw Matrix
    • UI\Draw\Matrix::invert — Invert Matrix
    • UI\Draw\Matrix::isInvertible — Invertible Detection
    • UI\Draw\Matrix::multiply — Multiply Matrix
    • UI\Draw\Matrix::rotate — Rotate Matrix
    • UI\Draw\Matrix::scale — Scale Matrix
    • UI\Draw\Matrix::skew — Skew Matrix
    • UI\Draw\Matrix::translate — Translate Matrix
  • UI\Draw\Color — Color Representation
    • UI\Draw\Color::__construct — Construct new Color
    • UI\Draw\Color::getChannel — Color Manipulation
    • UI\Draw\Color::setChannel — Color Manipulation
  • UI\Draw\Stroke — Draw Stroke
    • UI\Draw\Stroke::__construct — Construct a new Stroke
    • UI\Draw\Stroke::getCap — Get Line Cap
    • UI\Draw\Stroke::getJoin — Get Line Join
    • UI\Draw\Stroke::getMiterLimit — Get Miter Limit
    • UI\Draw\Stroke::getThickness — Get Thickness
    • UI\Draw\Stroke::setCap — Set Line Cap
    • UI\Draw\Stroke::setJoin — Set Line Join
    • UI\Draw\Stroke::setMiterLimit — Set Miter Limit
    • UI\Draw\Stroke::setThickness — Set Thickness
  • UI\Draw\Brush — Brushes
    • UI\Draw\Brush::__construct — Construct a new Brush
    • UI\Draw\Brush::getColor — Get Color
    • UI\Draw\Brush::setColor — Set Color
  • UI\Draw\Brush\Gradient — Gradient Brushes
    • UI\Draw\Brush\Gradient::addStop — Stop Manipulation
    • UI\Draw\Brush\Gradient::delStop — Stop Manipulation
    • UI\Draw\Brush\Gradient::setStop — Stop Manipulation
  • UI\Draw\Brush\LinearGradient — Linear Gradient
    • UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient
  • UI\Draw\Brush\RadialGradient — Radial Gradient
    • UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient
  • UI\Draw\Text\Layout — Represents Text Layout
    • UI\Draw\Text\Layout::__construct — Construct a new Text Layout
    • UI\Draw\Text\Layout::setColor — Set Color
    • UI\Draw\Text\Layout::setWidth — Set Width
  • UI\Draw\Text\Font — Represents a Font
    • UI\Draw\Text\Font::__construct — Construct a new Font
    • UI\Draw\Text\Font::getAscent — Font Metrics
    • UI\Draw\Text\Font::getDescent — Font Metrics
    • UI\Draw\Text\Font::getLeading — Font Metrics
    • UI\Draw\Text\Font::getUnderlinePosition — Font Metrics
    • UI\Draw\Text\Font::getUnderlineThickness — Font Metrics
  • UI\Draw\Text\Font\Descriptor — Font Descriptor
    • UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor
    • UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family
    • UI\Draw\Text\Font\Descriptor::getItalic — Style Detection
    • UI\Draw\Text\Font\Descriptor::getSize — Size Detection
    • UI\Draw\Text\Font\Descriptor::getStretch — Style Detection
    • UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection
  • UI Funktionen
    • UI\Draw\Text\Font\fontFamilies — Retrieve Font Families
    • UI\quit — Quit UI Loop
    • UI\run — Enter UI Loop
  • UI\Draw\Text\Font\Weight — Font Weight Settings
  • UI\Draw\Text\Font\Italic — Italic Font Settings
  • UI\Draw\Text\Font\Stretch — Font Stretch Settings
  • UI\Draw\Line\Cap — Line Cap Settings
  • UI\Draw\Line\Join — Line Join Settings
  • UI\Key — Key Identifiers
  • UI\Exception\InvalidArgumentException — InvalidArgumentException
  • UI\Exception\RuntimeException — RuntimeException


Einführung

This extension wraps libui to provide an OO API for the cross platform development of native look-and-feel user interfaces .


  • « Einführung
  • Anforderungen »
  • PHP Manual
  • UI
  • Installation/Konfiguration

Installation/Konfiguration

Inhaltsverzeichnis

  • Anforderungen
  • Installation


Anforderungen

Installation requires the libui library, and PHP 7 or newer.

This extension requires the » libui library version 0.1.0 or higher to be installed. See the libui documentation for a list of prerequisites.


Installation

Diese » PECL-Extension ist nicht Teil von PHP.

Information zur Installation dieser PECL-Extension finden sie im Kapitel Installation von PECL-Extensions. Zusätzliche Informationen wie neue Releases, Downloads, Quelldateien, Maintainerinformation und ein CHANGELOG finden Sie hier: » https://pecl.php.net/package/ui.

Windows binaries (DLL files) for this PECL extension are available from the PECL website.


Represents a position (x,y)

(UI 0.9.9)

Einführung

Points are used throughout UI to represent co-ordinates on a screen, control, or area.

Klassenbeschreibung

final UI\Point {
/* Eigenschaften */
public $x ;
public $y ;
/* Constructor */
public __construct ( float $x , float $y )
/* Methoden */
public static at ( float $point ) : UI\Point
public static at ( UI\Size $size ) : UI\Point
public getX ( ) : float
public getY ( ) : float
public setX ( float $point )
public setY ( float $point )
}

Eigenschaften

x

Holds the X co-ordinate, can be read/written directly

y

Holds the Y co-ordinate, can be read/written directly

Inhaltsverzeichnis

  • UI\Point::at — Size Coercion
  • UI\Point::__construct — Construct a new Point
  • UI\Point::getX — Retrieves X
  • UI\Point::getY — Retrieves Y
  • UI\Point::setX — Set X
  • UI\Point::setY — Set Y


Size Coercion

  • « UI\Point
  • UI\Point::__construct »
  • PHP Manual
  • UI\Point
  • Size Coercion

UI\Point::at

(UI 1.0.2)

UI\Point::at — Size Coercion

Beschreibung

public static UI\Point::at ( float $point ) : UI\Point
public static UI\Point::at ( UI\Size $size ) : UI\Point

Shall return a UI\Point object where x and y are equal to those supplied, either in float or UI\Size form

Parameter-Liste

point

The value for x and y

size

The Size to convert

Rückgabewerte

The resulting Point


Construct a new Point

  • « UI\Point::at
  • UI\Point::getX »
  • PHP Manual
  • UI\Point
  • Construct a new Point

UI\Point::__construct

(UI 0.9.9)

UI\Point::__construct — Construct a new Point

Beschreibung

public UI\Point::__construct ( float $x , float $y )

Construct a new Point using new co-ordinates

Parameter-Liste

x

The new X co-ordinate

y

The new Y co-ordinate


Retrieves X

  • « UI\Point::__construct
  • UI\Point::getY »
  • PHP Manual
  • UI\Point
  • Retrieves X

UI\Point::getX

(UI 0.9.9)

UI\Point::getX — Retrieves X

Beschreibung

public UI\Point::getX ( ) : float

Retrieves the X co-ordinate

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current X co-ordinate


Retrieves Y

  • « UI\Point::getX
  • UI\Point::setX »
  • PHP Manual
  • UI\Point
  • Retrieves Y

UI\Point::getY

(UI 0.9.9)

UI\Point::getY — Retrieves Y

Beschreibung

public UI\Point::getY ( ) : float

Retrieves the Y co-ordinate

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current Y co-ordinate


Set X

  • « UI\Point::getY
  • UI\Point::setY »
  • PHP Manual
  • UI\Point
  • Set X

UI\Point::setX

(UI 0.9.9)

UI\Point::setX — Set X

Beschreibung

public UI\Point::setX ( float $point )

Set the X co-ordinate

Parameter-Liste

point

The new X co-ordinate

Rückgabewerte


Set Y

  • « UI\Point::setX
  • UI\Size »
  • PHP Manual
  • UI\Point
  • Set Y

UI\Point::setY

(UI 0.9.9)

UI\Point::setY — Set Y

Beschreibung

public UI\Point::setY ( float $point )

Set the Y co-ordinate

Parameter-Liste

point

The new Y co-ordinate

Rückgabewerte


Represents dimenstions (width, height)

(UI 0.9.9)

Einführung

Sizes are used throughout UI to represent the size of a screen, control, or area.

Klassenbeschreibung

final UI\Size {
/* Eigenschaften */
public $width ;
public $height ;
/* Constructor */
public __construct ( float $width , float $height )
/* Methoden */
public getHeight ( ) : float
public getWidth ( ) : float
public static of ( float $size ) : UI\Size
public static of ( UI\Point $point ) : UI\Size
public setHeight ( float $size )
public setWidth ( float $size )
}

Eigenschaften

width

Holds the width, can be read/written directly

height

Holds the height, can be read/written directly

Inhaltsverzeichnis

  • UI\Size::__construct — Construct a new Size
  • UI\Size::getHeight — Retrieves Height
  • UI\Size::getWidth — Retrives Width
  • UI\Size::of — Point Coercion
  • UI\Size::setHeight — Set Height
  • UI\Size::setWidth — Set Width


Construct a new Size

  • « UI\Size
  • UI\Size::getHeight »
  • PHP Manual
  • UI\Size
  • Construct a new Size

UI\Size::__construct

(UI 0.9.9)

UI\Size::__construct — Construct a new Size

Beschreibung

public UI\Size::__construct ( float $width , float $height )

Construct a new Size using new width and height

Parameter-Liste

width

The new width

height

The new height


Retrieves Height

  • « UI\Size::__construct
  • UI\Size::getWidth »
  • PHP Manual
  • UI\Size
  • Retrieves Height

UI\Size::getHeight

(UI 0.9.9)

UI\Size::getHeight — Retrieves Height

Beschreibung

public UI\Size::getHeight ( ) : float

Retrieves the Height

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current Height


Retrives Width

  • « UI\Size::getHeight
  • UI\Size::of »
  • PHP Manual
  • UI\Size
  • Retrives Width

UI\Size::getWidth

(UI 0.9.9)

UI\Size::getWidth — Retrives Width

Beschreibung

public UI\Size::getWidth ( ) : float

Retrieves the Width

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current Width


Point Coercion

  • « UI\Size::getWidth
  • UI\Size::setHeight »
  • PHP Manual
  • UI\Size
  • Point Coercion

UI\Size::of

(UI 1.0.2)

UI\Size::of — Point Coercion

Beschreibung

public static UI\Size::of ( float $size ) : UI\Size
public static UI\Size::of ( UI\Point $point ) : UI\Size

Shall return a UI\Size object where width and height are equal to those supplied, either in float or UI\Point form

Parameter-Liste

size

The value for width and height

point

The Point to convert

Rückgabewerte

The resulting Size


Set Height

  • « UI\Size::of
  • UI\Size::setWidth »
  • PHP Manual
  • UI\Size
  • Set Height

UI\Size::setHeight

(UI 0.9.9)

UI\Size::setHeight — Set Height

Beschreibung

public UI\Size::setHeight ( float $size )

Set new Height

Parameter-Liste

size

The new Height

Rückgabewerte


Set Width

  • « UI\Size::setHeight
  • UI\Window »
  • PHP Manual
  • UI\Size
  • Set Width

UI\Size::setWidth

(UI 0.9.9)

UI\Size::setWidth — Set Width

Beschreibung

public UI\Size::setWidth ( float $size )

Set new Width

Parameter-Liste

size

The new Width

Rückgabewerte


Window

(UI 0.9.9)

Einführung

Represents a UI Window

Klassenbeschreibung

UI\Window extends UI\Control {
/* Eigenschaften */
protected $controls ;
/* Constructor */
public __construct ( string $title , Size $size , bool $menu = false )
/* Methoden */
public add ( UI\Control $control )
public error ( string $title , string $msg )
public getSize ( ) : UI\Size
public getTitle ( ) : string
public hasBorders ( ) : bool
public hasMargin ( ) : bool
public isFullScreen ( ) : bool
public msg ( string $title , string $msg )
protected onClosing ( ) : int
public open ( ) : string
public save ( ) : string
public setBorders ( bool $borders )
public setFullScreen ( bool $full )
public setMargin ( bool $margin )
public setSize ( UI\Size $size )
public setTitle ( string $title )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Eigenschaften

controls

Contains controls, should not be manipulated directly

Inhaltsverzeichnis

  • UI\Window::add — Add a Control
  • UI\Window::__construct — Construct a new Window
  • UI\Window::error — Show Error Box
  • UI\Window::getSize — Get Window Size
  • UI\Window::getTitle — Get Title
  • UI\Window::hasBorders — Border Detection
  • UI\Window::hasMargin — Margin Detection
  • UI\Window::isFullScreen — Full Screen Detection
  • UI\Window::msg — Show Message Box
  • UI\Window::onClosing — Closing Callback
  • UI\Window::open — Open Dialog
  • UI\Window::save — Save Dialog
  • UI\Window::setBorders — Border Use
  • UI\Window::setFullScreen — Full Screen Use
  • UI\Window::setMargin — Margin Use
  • UI\Window::setSize — Set Size
  • UI\Window::setTitle — Window Title


Add a Control

  • « UI\Window
  • UI\Window::__construct »
  • PHP Manual
  • UI\Window
  • Add a Control

UI\Window::add

(UI 0.9.9)

UI\Window::add — Add a Control

Beschreibung

public UI\Window::add ( UI\Control $control )

Shall add a Control to this Window

Parameter-Liste

control

The Control to add

Rückgabewerte


Construct a new Window

  • « UI\Window::add
  • UI\Window::error »
  • PHP Manual
  • UI\Window
  • Construct a new Window

UI\Window::__construct

(UI 0.9.9)

UI\Window::__construct — Construct a new Window

Beschreibung

public UI\Window::__construct ( string $title , Size $size , bool $menu = false )

Shall construct a new Window

Parameter-Liste

title

The title of the Window

size

The size of the Window

menu

Menu switch


Show Error Box

  • « UI\Window::__construct
  • UI\Window::getSize »
  • PHP Manual
  • UI\Window
  • Show Error Box

UI\Window::error

(UI 0.9.9)

UI\Window::error — Show Error Box

Beschreibung

public UI\Window::error ( string $title , string $msg )

Shall show an error box

Parameter-Liste

title

The title of the error box

msg

The message for the error box


Get Window Size

  • « UI\Window::error
  • UI\Window::getTitle »
  • PHP Manual
  • UI\Window
  • Get Window Size

UI\Window::getSize

(UI 0.9.9)

UI\Window::getSize — Get Window Size

Beschreibung

public UI\Window::getSize ( ) : UI\Size

Shall return the size of this Window

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get Title

  • « UI\Window::getSize
  • UI\Window::hasBorders »
  • PHP Manual
  • UI\Window
  • Get Title

UI\Window::getTitle

(UI 0.9.9)

UI\Window::getTitle — Get Title

Beschreibung

public UI\Window::getTitle ( ) : string

Shall retrieve the title of this Window

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Border Detection

  • « UI\Window::getTitle
  • UI\Window::hasMargin »
  • PHP Manual
  • UI\Window
  • Border Detection

UI\Window::hasBorders

(UI 0.9.9)

UI\Window::hasBorders — Border Detection

Beschreibung

public UI\Window::hasBorders ( ) : bool

Shall detect if borders are used on this Window

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Margin Detection

  • « UI\Window::hasBorders
  • UI\Window::isFullScreen »
  • PHP Manual
  • UI\Window
  • Margin Detection

UI\Window::hasMargin

(UI 0.9.9)

UI\Window::hasMargin — Margin Detection

Beschreibung

public UI\Window::hasMargin ( ) : bool

Shall detect if margins are used on this Window

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Full Screen Detection

  • « UI\Window::hasMargin
  • UI\Window::msg »
  • PHP Manual
  • UI\Window
  • Full Screen Detection

UI\Window::isFullScreen

(UI 0.9.9)

UI\Window::isFullScreen — Full Screen Detection

Beschreibung

public UI\Window::isFullScreen ( ) : bool

Shall detect if this Window us using the whole screen

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Show Message Box

  • « UI\Window::isFullScreen
  • UI\Window::onClosing »
  • PHP Manual
  • UI\Window
  • Show Message Box

UI\Window::msg

(UI 0.9.9)

UI\Window::msg — Show Message Box

Beschreibung

public UI\Window::msg ( string $title , string $msg )

Shall show a message box

Parameter-Liste

title

The title of the message box

msg

The message


Closing Callback

  • « UI\Window::msg
  • UI\Window::open »
  • PHP Manual
  • UI\Window
  • Closing Callback

UI\Window::onClosing

(UI 0.9.9)

UI\Window::onClosing — Closing Callback

Beschreibung

protected UI\Window::onClosing ( ) : int

Should gracefully destroy this Window

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Open Dialog

  • « UI\Window::onClosing
  • UI\Window::save »
  • PHP Manual
  • UI\Window
  • Open Dialog

UI\Window::open

(UI 0.9.9)

UI\Window::open — Open Dialog

Beschreibung

public UI\Window::open ( ) : string

Shall show an open file dialog

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the name of the file selected for opening


Save Dialog

  • « UI\Window::open
  • UI\Window::setBorders »
  • PHP Manual
  • UI\Window
  • Save Dialog

UI\Window::save

(UI 0.9.9)

UI\Window::save — Save Dialog

Beschreibung

public UI\Window::save ( ) : string

Shall show a save dialog

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Returns the file name selecting for saving


Border Use

  • « UI\Window::save
  • UI\Window::setFullScreen »
  • PHP Manual
  • UI\Window
  • Border Use

UI\Window::setBorders

(UI 0.9.9)

UI\Window::setBorders — Border Use

Beschreibung

public UI\Window::setBorders ( bool $borders )

Shall enable or disable the use of borders on this Window

Parameter-Liste

borders


Full Screen Use

  • « UI\Window::setBorders
  • UI\Window::setMargin »
  • PHP Manual
  • UI\Window
  • Full Screen Use

UI\Window::setFullScreen

(UI 0.9.9)

UI\Window::setFullScreen — Full Screen Use

Beschreibung

public UI\Window::setFullScreen ( bool $full )

Shall enable or disable the use of the full screen for this Window

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

full


Margin Use

  • « UI\Window::setFullScreen
  • UI\Window::setSize »
  • PHP Manual
  • UI\Window
  • Margin Use

UI\Window::setMargin

(UI 0.9.9)

UI\Window::setMargin — Margin Use

Beschreibung

public UI\Window::setMargin ( bool $margin )

Shall enable or disable the use of margins for this Window

Parameter-Liste

margin


Set Size

  • « UI\Window::setMargin
  • UI\Window::setTitle »
  • PHP Manual
  • UI\Window
  • Set Size

UI\Window::setSize

(UI 0.9.9)

UI\Window::setSize — Set Size

Beschreibung

public UI\Window::setSize ( UI\Size $size )

Shall set the size of this Window

Parameter-Liste

size

Rückgabewerte


Window Title

  • « UI\Window::setSize
  • UI\Control »
  • PHP Manual
  • UI\Window
  • Window Title

UI\Window::setTitle

(UI 0.9.9)

UI\Window::setTitle — Window Title

Beschreibung

public UI\Window::setTitle ( string $title )

Shall set the title for this Window

Parameter-Liste

title

The new title


Control

(UI 0.9.9)

Einführung

This is the closed base class for all UI Controls.

Klassenbeschreibung

final UI\Control {
/* Methoden */
public destroy ( )
public disable ( )
public enable ( )
public getParent ( ) : UI\Control
public getTopLevel ( ) : int
public hide ( )
public isEnabled ( ) : bool
public isVisible ( ) : bool
public setParent ( UI\Control $parent )
public show ( )
}

Inhaltsverzeichnis

  • UI\Control::destroy — Destroy Control
  • UI\Control::disable — Disable Control
  • UI\Control::enable — Enable Control
  • UI\Control::getParent — Get Parent Control
  • UI\Control::getTopLevel — Get Top Level
  • UI\Control::hide — Hide Control
  • UI\Control::isEnabled — Determine if Control is enabled
  • UI\Control::isVisible — Determine if Control is visible
  • UI\Control::setParent — Set Parent Control
  • UI\Control::show — Control Show


Destroy Control

  • « UI\Control
  • UI\Control::disable »
  • PHP Manual
  • UI\Control
  • Destroy Control

UI\Control::destroy

(UI 0.9.9)

UI\Control::destroy — Destroy Control

Beschreibung

public UI\Control::destroy ( )

Shall destroy this Control

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Disable Control

  • « UI\Control::destroy
  • UI\Control::enable »
  • PHP Manual
  • UI\Control
  • Disable Control

UI\Control::disable

(UI 0.9.9)

UI\Control::disable — Disable Control

Beschreibung

public UI\Control::disable ( )

Shall disable this Control

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Enable Control

  • « UI\Control::disable
  • UI\Control::getParent »
  • PHP Manual
  • UI\Control
  • Enable Control

UI\Control::enable

(UI 0.9.9)

UI\Control::enable — Enable Control

Beschreibung

public UI\Control::enable ( )

Shall enable this Control

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get Parent Control

  • « UI\Control::enable
  • UI\Control::getTopLevel »
  • PHP Manual
  • UI\Control
  • Get Parent Control

UI\Control::getParent

(UI 0.9.9)

UI\Control::getParent — Get Parent Control

Beschreibung

public UI\Control::getParent ( ) : UI\Control

Shall return the parent Control

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Get Top Level

  • « UI\Control::getParent
  • UI\Control::hide »
  • PHP Manual
  • UI\Control
  • Get Top Level

UI\Control::getTopLevel

(UI 0.9.9)

UI\Control::getTopLevel — Get Top Level

Beschreibung

public UI\Control::getTopLevel ( ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Hide Control

  • « UI\Control::getTopLevel
  • UI\Control::isEnabled »
  • PHP Manual
  • UI\Control
  • Hide Control

UI\Control::hide

(UI 0.9.9)

UI\Control::hide — Hide Control

Beschreibung

public UI\Control::hide ( )

Shall hide this Control

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Determine if Control is enabled

  • « UI\Control::hide
  • UI\Control::isVisible »
  • PHP Manual
  • UI\Control
  • Determine if Control is enabled

UI\Control::isEnabled

(UI 0.9.9)

UI\Control::isEnabled — Determine if Control is enabled

Beschreibung

public UI\Control::isEnabled ( ) : bool

Shall detect if this Control is enabled

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Determine if Control is visible

  • « UI\Control::isEnabled
  • UI\Control::setParent »
  • PHP Manual
  • UI\Control
  • Determine if Control is visible

UI\Control::isVisible

(UI 0.9.9)

UI\Control::isVisible — Determine if Control is visible

Beschreibung

public UI\Control::isVisible ( ) : bool

Shall detect if this Control is visible

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Set Parent Control

  • « UI\Control::isVisible
  • UI\Control::show »
  • PHP Manual
  • UI\Control
  • Set Parent Control

UI\Control::setParent

(UI 0.9.9)

UI\Control::setParent — Set Parent Control

Beschreibung

public UI\Control::setParent ( UI\Control $parent )

Shall set the parent Control of this Control

Parameter-Liste

parent

The parent Control

Rückgabewerte


Control Show

  • « UI\Control::setParent
  • UI\Menu »
  • PHP Manual
  • UI\Control
  • Control Show

UI\Control::show

(UI 0.9.9)

UI\Control::show — Control Show

Beschreibung

public UI\Control::show ( )

Shall show this Control

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Menu

(UI 0.9.9)

Einführung

Menus must be constructed before the first Window, and can be shown on any Window

Klassenbeschreibung

UI\Menu {
/* Constructor */
public __construct ( string $name )
/* Methoden */
public append ( string $name , string $type = UI\MenuItem::class ) : UI\MenuItem
public appendAbout ( string $type = UI\MenuItem::class ) : UI\MenuItem
public appendCheck ( string $name , string $type = UI\MenuItem::class ) : UI\MenuItem
public appendPreferences ( string $type = UI\MenuItem::class ) : UI\MenuItem
public appendQuit ( string $type = UI\MenuItem::class ) : UI\MenuItem
public appendSeparator ( )
}

Inhaltsverzeichnis

  • UI\Menu::append — Append Menu Item
  • UI\Menu::appendAbout — Append About Menu Item
  • UI\Menu::appendCheck — Append Checkable Menu Item
  • UI\Menu::appendPreferences — Append Preferences Menu Item
  • UI\Menu::appendQuit — Append Quit Menu Item
  • UI\Menu::appendSeparator — Append Menu Item Separator
  • UI\Menu::__construct — Construct a new Menu


Append Menu Item

  • « UI\Menu
  • UI\Menu::appendAbout »
  • PHP Manual
  • UI\Menu
  • Append Menu Item

UI\Menu::append

(UI 0.9.9)

UI\Menu::append — Append Menu Item

Beschreibung

public UI\Menu::append ( string $name , string $type = UI\MenuItem::class ) : UI\MenuItem

Shall append a new Menu Item

Parameter-Liste

name

The name (text) for the new item

type

The type for the new item

Rückgabewerte

A constructed object of the given type


Append About Menu Item

  • « UI\Menu::append
  • UI\Menu::appendCheck »
  • PHP Manual
  • UI\Menu
  • Append About Menu Item

UI\Menu::appendAbout

(UI 0.9.9)

UI\Menu::appendAbout — Append About Menu Item

Beschreibung

public UI\Menu::appendAbout ( string $type = UI\MenuItem::class ) : UI\MenuItem

Shall append an About menu item

Parameter-Liste

type

The type for the new item

Rückgabewerte

A constructed About menu item of the given type


Append Checkable Menu Item

  • « UI\Menu::appendAbout
  • UI\Menu::appendPreferences »
  • PHP Manual
  • UI\Menu
  • Append Checkable Menu Item

UI\Menu::appendCheck

(UI 0.9.9)

UI\Menu::appendCheck — Append Checkable Menu Item

Beschreibung

public UI\Menu::appendCheck ( string $name , string $type = UI\MenuItem::class ) : UI\MenuItem

Shall append a checkable menu item

Parameter-Liste

name

The name (text) for the new item

type

The type for the new item

Rückgabewerte

A constructed checkable menu item of the given type


Append Preferences Menu Item

  • « UI\Menu::appendCheck
  • UI\Menu::appendQuit »
  • PHP Manual
  • UI\Menu
  • Append Preferences Menu Item

UI\Menu::appendPreferences

(UI 0.9.9)

UI\Menu::appendPreferences — Append Preferences Menu Item

Beschreibung

public UI\Menu::appendPreferences ( string $type = UI\MenuItem::class ) : UI\MenuItem

Shall append a Preferences menu item

Parameter-Liste

type

The type for the new item

Rückgabewerte

A constructed Preferences menu item of the given type


Append Quit Menu Item

  • « UI\Menu::appendPreferences
  • UI\Menu::appendSeparator »
  • PHP Manual
  • UI\Menu
  • Append Quit Menu Item

UI\Menu::appendQuit

(UI 0.9.9)

UI\Menu::appendQuit — Append Quit Menu Item

Beschreibung

public UI\Menu::appendQuit ( string $type = UI\MenuItem::class ) : UI\MenuItem

Shall append a Quit menu item

Parameter-Liste

type

The type for the new item

Rückgabewerte

A constructed Quit menu item of the given type


Append Menu Item Separator

  • « UI\Menu::appendQuit
  • UI\Menu::__construct »
  • PHP Manual
  • UI\Menu
  • Append Menu Item Separator

UI\Menu::appendSeparator

(UI 0.9.9)

UI\Menu::appendSeparator — Append Menu Item Separator

Beschreibung

public UI\Menu::appendSeparator ( )

Shall append a separator

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Construct a new Menu

  • « UI\Menu::appendSeparator
  • UI\MenuItem »
  • PHP Manual
  • UI\Menu
  • Construct a new Menu

UI\Menu::__construct

(UI 0.9.9)

UI\Menu::__construct — Construct a new Menu

Beschreibung

public UI\Menu::__construct ( string $name )

Shall construct a new Menu

Parameter-Liste

name

The name (text) for the menu


Menu Item

(UI 0.9.9)

Einführung

Menu Items should only be created by the Menu

Klassenbeschreibung

UI\MenuItem {
/* Methoden */
public disable ( )
public enable ( )
public isChecked ( ) : bool
protected onClick ( )
public setChecked ( bool $checked )
}

Inhaltsverzeichnis

  • UI\MenuItem::disable — Disable Menu Item
  • UI\MenuItem::enable — Enable Menu Item
  • UI\MenuItem::isChecked — Detect Checked
  • UI\MenuItem::onClick — On Click Callback
  • UI\MenuItem::setChecked — Set Checked


Disable Menu Item

  • « UI\MenuItem
  • UI\MenuItem::enable »
  • PHP Manual
  • UI\MenuItem
  • Disable Menu Item

UI\MenuItem::disable

(UI 0.9.9)

UI\MenuItem::disable — Disable Menu Item

Beschreibung

public UI\MenuItem::disable ( )

Shall disable this Menu Item

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Enable Menu Item

  • « UI\MenuItem::disable
  • UI\MenuItem::isChecked »
  • PHP Manual
  • UI\MenuItem
  • Enable Menu Item

UI\MenuItem::enable

(UI 0.9.9)

UI\MenuItem::enable — Enable Menu Item

Beschreibung

public UI\MenuItem::enable ( )

Shall enable this Menu Item

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Detect Checked

  • « UI\MenuItem::enable
  • UI\MenuItem::onClick »
  • PHP Manual
  • UI\MenuItem
  • Detect Checked

UI\MenuItem::isChecked

(UI 0.9.9)

UI\MenuItem::isChecked — Detect Checked

Beschreibung

public UI\MenuItem::isChecked ( ) : bool

Shall detect if this Menu Item is checked

Parameter-Liste

Diese Funktion besitzt keine Parameter.


On Click Callback

  • « UI\MenuItem::isChecked
  • UI\MenuItem::setChecked »
  • PHP Manual
  • UI\MenuItem
  • On Click Callback

UI\MenuItem::onClick

(UI 0.9.9)

UI\MenuItem::onClick — On Click Callback

Beschreibung

protected UI\MenuItem::onClick ( )

Shall be executed when this Menu Item is clicked

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Checked

  • « UI\MenuItem::onClick
  • UI\Area »
  • PHP Manual
  • UI\MenuItem
  • Set Checked

UI\MenuItem::setChecked

(UI 0.9.9)

UI\MenuItem::setChecked — Set Checked

Beschreibung

public UI\MenuItem::setChecked ( bool $checked )

Shall set the checked status of this Menu Item

Parameter-Liste

checked

The new status


Area

(UI 0.9.9)

Einführung

An Area represents a canvas which can be used to draw, and respond to mouse and key events.

Klassenbeschreibung

UI\Area extends UI\Control {
/* Constants */
const int Ctrl ;
const int Alt ;
const int Shift ;
const int Super ;
const int Down ;
const int Up ;
/* Methoden */
protected onDraw ( UI\Draw\Pen $pen , UI\Size $areaSize , UI\Point $clipPoint , UI\Size $clipSize )
protected onKey ( string $key , int $ext , int $flags )
protected onMouse ( UI\Point $areaPoint , UI\Size $areaSize , int $flags )
public redraw ( )
public scrollTo ( UI\Point $point , UI\Size $size )
public setSize ( UI\Size $size )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Vordefinierte Konstanten

UI\Area::Ctrl

Shall be set in the modifiers passed to key and mouse events when the CTRL key is active

UI\Area::Alt

Shall be set in the modifiers passed to key and mouse events when the ALT key is active

UI\Area::Shift

Shall be set in the modifiers passed to key and mouse events when the SHIFT key is active

UI\Area::Super

UI\Area::Down

Shall be set in the modifiers passed to key and mouse events

UI\Area::Up

Shall be set in the modifiers passed to key and mouse events

Inhaltsverzeichnis

  • UI\Area::onDraw — Draw Callback
  • UI\Area::onKey — Key Callback
  • UI\Area::onMouse — Mouse Callback
  • UI\Area::redraw — Redraw Area
  • UI\Area::scrollTo — Area Scroll
  • UI\Area::setSize — Set Size


Draw Callback

  • « UI\Area
  • UI\Area::onKey »
  • PHP Manual
  • UI\Area
  • Draw Callback

UI\Area::onDraw

(UI 0.9.9)

UI\Area::onDraw — Draw Callback

Beschreibung

protected UI\Area::onDraw ( UI\Draw\Pen $pen , UI\Size $areaSize , UI\Point $clipPoint , UI\Size $clipSize )

Shall be invoked when this Area requires redrawing

Parameter-Liste

pen

A Pen suitable for drawing in this Area

areaSize

The size of the Area

clipPoint

The clip point of the Area

clipSize

The clip size of the Area


Key Callback

  • « UI\Area::onDraw
  • UI\Area::onMouse »
  • PHP Manual
  • UI\Area
  • Key Callback

UI\Area::onKey

(UI 0.9.9)

UI\Area::onKey — Key Callback

Beschreibung

protected UI\Area::onKey ( string $key , int $ext , int $flags )

Shall be executed on key events

Parameter-Liste

key

The key pressed

ext

The extended key pressed

flags

Event modifiers

Rückgabewerte


Mouse Callback

  • « UI\Area::onKey
  • UI\Area::redraw »
  • PHP Manual
  • UI\Area
  • Mouse Callback

UI\Area::onMouse

(UI 0.9.9)

UI\Area::onMouse — Mouse Callback

Beschreibung

protected UI\Area::onMouse ( UI\Point $areaPoint , UI\Size $areaSize , int $flags )

Shall be executed on mouse events

Parameter-Liste

areaPoint

The co-ordinates of the event

areaSize

The size of the area of the event

flags

Event modifiers


Redraw Area

  • « UI\Area::onMouse
  • UI\Area::scrollTo »
  • PHP Manual
  • UI\Area
  • Redraw Area

UI\Area::redraw

(UI 0.9.9)

UI\Area::redraw — Redraw Area

Beschreibung

public UI\Area::redraw ( )

Requests that this Area is redrawn

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Area Scroll

  • « UI\Area::redraw
  • UI\Area::setSize »
  • PHP Manual
  • UI\Area
  • Area Scroll

UI\Area::scrollTo

(UI 0.9.9)

UI\Area::scrollTo — Area Scroll

Beschreibung

public UI\Area::scrollTo ( UI\Point $point , UI\Size $size )

Scroll this Area

Parameter-Liste

point

The point to scroll to

size

The size of the scroll pane


Set Size

  • « UI\Area::scrollTo
  • UI\Executor »
  • PHP Manual
  • UI\Area
  • Set Size

UI\Area::setSize

(UI 0.9.9)

UI\Area::setSize — Set Size

Beschreibung

public UI\Area::setSize ( UI\Size $size )

Sets the size of this Area

Parameter-Liste

size

The new size


Execution Scheduler

(UI 2.0.0)

Einführung

This facility schedules repetitive execution of a callback, useful for animations and other such activities.

Klassenbeschreibung

abstract UI\Executor {
/* Constructor */
public __construct ( )
public __construct ( int $microseconds )
public __construct ( int $seconds , int $microseconds )
/* Methoden */
public kill ( ) : void
abstract protected onExecute ( ) : void
public setInterval ( int $microseconds ) : bool
public setInterval ( int $seconds , int $microseconds ) : bool
}

Inhaltsverzeichnis

  • UI\Executor::__construct — Construct a new Executor
  • UI\Executor::kill — Stop Executor
  • UI\Executor::onExecute — Execution Callback
  • UI\Executor::setInterval — Interval Manipulation


Construct a new Executor

  • « UI\Executor
  • UI\Executor::kill »
  • PHP Manual
  • UI\Executor
  • Construct a new Executor

UI\Executor::__construct

(UI 2.0.0)

UI\Executor::__construct — Construct a new Executor

Beschreibung

public UI\Executor::__construct ( )
public UI\Executor::__construct ( int $microseconds )
public UI\Executor::__construct ( int $seconds , int $microseconds )

Shall construct an executor with the given interval, will not start executing until main loop is entered

Parameter-Liste

seconds

Seconds between executions

microseconds

Microseconds between executions


Stop Executor

  • « UI\Executor::__construct
  • UI\Executor::onExecute »
  • PHP Manual
  • UI\Executor
  • Stop Executor

UI\Executor::kill

(UI 2.0.0)

UI\Executor::kill — Stop Executor

Beschreibung

public UI\Executor::kill ( ) : void

Shall stop an executor, the executor cannot be restarted

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Execution Callback

  • « UI\Executor::kill
  • UI\Executor::setInterval »
  • PHP Manual
  • UI\Executor
  • Execution Callback

UI\Executor::onExecute

(UI 2.0.0)

UI\Executor::onExecute — Execution Callback

Beschreibung

abstract protected UI\Executor::onExecute ( ) : void

Shall be repetitively queued for execution in the main thread

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Interval Manipulation

  • « UI\Executor::onExecute
  • UI\Controls\Tab »
  • PHP Manual
  • UI\Executor
  • Interval Manipulation

UI\Executor::setInterval

(UI 2.0.0)

UI\Executor::setInterval — Interval Manipulation

Beschreibung

public UI\Executor::setInterval ( int $microseconds ) : bool
public UI\Executor::setInterval ( int $seconds , int $microseconds ) : bool

Shall set the new interval. An interval of 0 will pause the executor until a new interval has been set

Parameter-Liste

seconds

microseconds

Rückgabewerte

Indication of success


Tab Control

(UI 0.9.9)

Einführung

A Tab can contain many pages of Controls, each with a title, each selectable by the user.

Klassenbeschreibung

UI\Controls\Tab extends UI\Control {
/* Eigenschaften */
protected $controls ;
/* Methoden */
public append ( string $name , UI\Control $control ) : int
public delete ( int $index ) : bool
public hasMargin ( int $page ) : bool
public insertAt ( string $name , int $page , UI\Control $control )
public pages ( ) : int
public setMargin ( int $page , bool $margin )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Eigenschaften

controls

Contains controls, should not be manipulated directly

Inhaltsverzeichnis

  • UI\Controls\Tab::append — Append Page
  • UI\Controls\Tab::delete — Delete Page
  • UI\Controls\Tab::hasMargin — Margin Detection
  • UI\Controls\Tab::insertAt — Insert Page
  • UI\Controls\Tab::pages — Page Count
  • UI\Controls\Tab::setMargin — Set Margin


Append Page

  • « UI\Controls\Tab
  • UI\Controls\Tab::delete »
  • PHP Manual
  • UI\Controls\Tab
  • Append Page

UI\Controls\Tab::append

(UI 0.9.9)

UI\Controls\Tab::append — Append Page

Beschreibung

public UI\Controls\Tab::append ( string $name , UI\Control $control ) : int

Append a new page to this Tab

Parameter-Liste

name

The name for the new page

control

The control for the new page

Rückgabewerte

Shall return the index of the appended control, may be 0


Delete Page

  • « UI\Controls\Tab::append
  • UI\Controls\Tab::hasMargin »
  • PHP Manual
  • UI\Controls\Tab
  • Delete Page

UI\Controls\Tab::delete

(UI 0.9.9)

UI\Controls\Tab::delete — Delete Page

Beschreibung

public UI\Controls\Tab::delete ( int $index ) : bool

Shall remove the selected page from this Tab

Parameter-Liste

index

The index of the page to remove

Rückgabewerte

Indication of success


Margin Detection

  • « UI\Controls\Tab::delete
  • UI\Controls\Tab::insertAt »
  • PHP Manual
  • UI\Controls\Tab
  • Margin Detection

UI\Controls\Tab::hasMargin

(UI 0.9.9)

UI\Controls\Tab::hasMargin — Margin Detection

Beschreibung

public UI\Controls\Tab::hasMargin ( int $page ) : bool

Shall detect if the given page has a margin.

Parameter-Liste

page

The index of the page

Rückgabewerte


Insert Page

  • « UI\Controls\Tab::hasMargin
  • UI\Controls\Tab::pages »
  • PHP Manual
  • UI\Controls\Tab
  • Insert Page

UI\Controls\Tab::insertAt

(UI 0.9.9)

UI\Controls\Tab::insertAt — Insert Page

Beschreibung

public UI\Controls\Tab::insertAt ( string $name , int $page , UI\Control $control )

Shall insert a new page into this Tab

Parameter-Liste

name

The name for the new page

page

The index to perform the insertion before

control

The control for the new page


Page Count

  • « UI\Controls\Tab::insertAt
  • UI\Controls\Tab::setMargin »
  • PHP Manual
  • UI\Controls\Tab
  • Page Count

UI\Controls\Tab::pages

(UI 0.9.9)

UI\Controls\Tab::pages — Page Count

Beschreibung

public UI\Controls\Tab::pages ( ) : int

Shall return the number of pages in this Tab

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The number of pages in this Tab


Set Margin

  • « UI\Controls\Tab::pages
  • UI\Controls\Check »
  • PHP Manual
  • UI\Controls\Tab
  • Set Margin

UI\Controls\Tab::setMargin

(UI 0.9.9)

UI\Controls\Tab::setMargin — Set Margin

Beschreibung

public UI\Controls\Tab::setMargin ( int $page , bool $margin )

Shall enable or disable margins on the selected page

Parameter-Liste

page

The page to select

margin

Margin switch


Check Control

(UI 0.9.9)

Einführung

A Check is a labelled checkable box

Klassenbeschreibung

UI\Controls\Check extends UI\Control {
/* Constructor */
public __construct ( string $text )
/* Methoden */
public getText ( ) : string
public isChecked ( ) : bool
protected onToggle ( )
public setChecked ( bool $checked )
public setText ( string $text )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Inhaltsverzeichnis

  • UI\Controls\Check::__construct — Construct a new Check
  • UI\Controls\Check::getText — Get Text
  • UI\Controls\Check::isChecked — Checked Detection
  • UI\Controls\Check::onToggle — Toggle Callback
  • UI\Controls\Check::setChecked — Set Checked
  • UI\Controls\Check::setText — Set Text


Construct a new Check

  • « UI\Controls\Check
  • UI\Controls\Check::getText »
  • PHP Manual
  • UI\Controls\Check
  • Construct a new Check

UI\Controls\Check::__construct

(UI 0.9.9)

UI\Controls\Check::__construct — Construct a new Check

Beschreibung

public UI\Controls\Check::__construct ( string $text )

Shall construct a new Check

Parameter-Liste

text

The text (label) for the Check box


Get Text

  • « UI\Controls\Check::__construct
  • UI\Controls\Check::isChecked »
  • PHP Manual
  • UI\Controls\Check
  • Get Text

UI\Controls\Check::getText

(UI 0.9.9)

UI\Controls\Check::getText — Get Text

Beschreibung

public UI\Controls\Check::getText ( ) : string

Shall return the text (label) for this Check

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current text (label)


Checked Detection

  • « UI\Controls\Check::getText
  • UI\Controls\Check::onToggle »
  • PHP Manual
  • UI\Controls\Check
  • Checked Detection

UI\Controls\Check::isChecked

(UI 0.9.9)

UI\Controls\Check::isChecked — Checked Detection

Beschreibung

public UI\Controls\Check::isChecked ( ) : bool

Shall detect the status of this Check

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Toggle Callback

  • « UI\Controls\Check::isChecked
  • UI\Controls\Check::setChecked »
  • PHP Manual
  • UI\Controls\Check
  • Toggle Callback

UI\Controls\Check::onToggle

(UI 0.9.9)

UI\Controls\Check::onToggle — Toggle Callback

Beschreibung

protected UI\Controls\Check::onToggle ( )

Shall be executed when the status of this Check is changed

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Checked

  • « UI\Controls\Check::onToggle
  • UI\Controls\Check::setText »
  • PHP Manual
  • UI\Controls\Check
  • Set Checked

UI\Controls\Check::setChecked

(UI 0.9.9)

UI\Controls\Check::setChecked — Set Checked

Beschreibung

public UI\Controls\Check::setChecked ( bool $checked )

Shall change the status of this Check

Parameter-Liste

checked

The new status


Set Text

  • « UI\Controls\Check::setChecked
  • UI\Controls\Button »
  • PHP Manual
  • UI\Controls\Check
  • Set Text

UI\Controls\Check::setText

(UI 0.9.9)

UI\Controls\Check::setText — Set Text

Beschreibung

public UI\Controls\Check::setText ( string $text )

Shall set the text (label) for this Check

Parameter-Liste

text

The new text (label)


Button Control

(UI 0.9.9)

Einführung

Represents a labelled clickable button

Klassenbeschreibung

UI\Controls\Button extends UI\Control {
/* Constructor */
public __construct ( string $text )
/* Methoden */
public getText ( ) : string
protected onClick ( )
public setText ( string $text )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Inhaltsverzeichnis

  • UI\Controls\Button::__construct — Construct a new Button
  • UI\Controls\Button::getText — Get Text
  • UI\Controls\Button::onClick — Click Handler
  • UI\Controls\Button::setText — Set Text


Construct a new Button

  • « UI\Controls\Button
  • UI\Controls\Button::getText »
  • PHP Manual
  • UI\Controls\Button
  • Construct a new Button

UI\Controls\Button::__construct

(UI 0.9.9)

UI\Controls\Button::__construct — Construct a new Button

Beschreibung

public UI\Controls\Button::__construct ( string $text )

Shall construct a new Button

Parameter-Liste

text

The text (label) for this Button


Get Text

  • « UI\Controls\Button::__construct
  • UI\Controls\Button::onClick »
  • PHP Manual
  • UI\Controls\Button
  • Get Text

UI\Controls\Button::getText

(UI 0.9.9)

UI\Controls\Button::getText — Get Text

Beschreibung

public UI\Controls\Button::getText ( ) : string

Shall retrieve the text (label) for this Button

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current text (label)


Click Handler

  • « UI\Controls\Button::getText
  • UI\Controls\Button::setText »
  • PHP Manual
  • UI\Controls\Button
  • Click Handler

UI\Controls\Button::onClick

(UI 0.9.9)

UI\Controls\Button::onClick — Click Handler

Beschreibung

protected UI\Controls\Button::onClick ( )

Shall be executed when this Button is clicked

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Text

  • « UI\Controls\Button::onClick
  • UI\Controls\ColorButton »
  • PHP Manual
  • UI\Controls\Button
  • Set Text

UI\Controls\Button::setText

(UI 0.9.9)

UI\Controls\Button::setText — Set Text

Beschreibung

public UI\Controls\Button::setText ( string $text )

Shall set the text (label) for this Button

Parameter-Liste

text

The new text (label)


ColorButton Control

(UI 0.9.9)

Einführung

A Color Button is a button which displays a color picker when clicked

Klassenbeschreibung

UI\Controls\ColorButton extends UI\Control {
/* Methoden */
public getColor ( ) : UI\Color
protected onChange ( )
public setColor ( UI\Draw\Color $color )
public setColor ( int $color )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Inhaltsverzeichnis

  • UI\Controls\ColorButton::getColor — Get Color
  • UI\Controls\ColorButton::onChange — Change Handler
  • UI\Controls\ColorButton::setColor — Set Color


Get Color

  • « UI\Controls\ColorButton
  • UI\Controls\ColorButton::onChange »
  • PHP Manual
  • UI\Controls\ColorButton
  • Get Color

UI\Controls\ColorButton::getColor

(UI 0.9.9)

UI\Controls\ColorButton::getColor — Get Color

Beschreibung

public UI\Controls\ColorButton::getColor ( ) : UI\Color

Shall retrieve the currently selected Color

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Change Handler

  • « UI\Controls\ColorButton::getColor
  • UI\Controls\ColorButton::setColor »
  • PHP Manual
  • UI\Controls\ColorButton
  • Change Handler

UI\Controls\ColorButton::onChange

(UI 0.9.9)

UI\Controls\ColorButton::onChange — Change Handler

Beschreibung

protected UI\Controls\ColorButton::onChange ( )

Shall be executed when the selected Color is changed

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Color

  • « UI\Controls\ColorButton::onChange
  • UI\Controls\Label »
  • PHP Manual
  • UI\Controls\ColorButton
  • Set Color

UI\Controls\ColorButton::setColor

(UI 0.9.9)

UI\Controls\ColorButton::setColor — Set Color

Beschreibung

public UI\Controls\ColorButton::setColor ( UI\Draw\Color $color )
public UI\Controls\ColorButton::setColor ( int $color )

Shall set the currently selected Color

Parameter-Liste

color

The new color


Label Control

(UI 0.9.9)

Einführung

A Label is a single line of text, meant to identify, for the user, some element of the interface.

Klassenbeschreibung

UI\Controls\Label extends UI\Control {
/* Constructor */
public __construct ( string $text )
/* Methoden */
public getText ( ) : string
public setText ( string $text )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Inhaltsverzeichnis

  • UI\Controls\Label::__construct — Construct a new Label
  • UI\Controls\Label::getText — Get Text
  • UI\Controls\Label::setText — Set Text


Construct a new Label

  • « UI\Controls\Label
  • UI\Controls\Label::getText »
  • PHP Manual
  • UI\Controls\Label
  • Construct a new Label

UI\Controls\Label::__construct

(UI 0.9.9)

UI\Controls\Label::__construct — Construct a new Label

Beschreibung

public UI\Controls\Label::__construct ( string $text )

Shall construct a new Label

Parameter-Liste

text

The text for this label


Get Text

  • « UI\Controls\Label::__construct
  • UI\Controls\Label::setText »
  • PHP Manual
  • UI\Controls\Label
  • Get Text

UI\Controls\Label::getText

(UI 0.9.9)

UI\Controls\Label::getText — Get Text

Beschreibung

public UI\Controls\Label::getText ( ) : string

Shall return the current text for this Label

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Set Text

  • « UI\Controls\Label::getText
  • UI\Controls\Entry »
  • PHP Manual
  • UI\Controls\Label
  • Set Text

UI\Controls\Label::setText

(UI 0.9.9)

UI\Controls\Label::setText — Set Text

Beschreibung

public UI\Controls\Label::setText ( string $text )

Shall set the text for this Label

Parameter-Liste

text

The new text


Entry Control

(UI 0.9.9)

Einführung

An Entry is a text entry control, suitable for entering plain text, passwords, or search terms.

Klassenbeschreibung

UI\Controls\Entry extends UI\Control {
/* Constants */
const int Normal ;
const int Password ;
const int Search ;
/* Constructor */
public __construct ( int $type = UI\Controls\Entry::Normal )
/* Methoden */
public getText ( ) : string
public isReadOnly ( ) : bool
protected onChange ( )
public setReadOnly ( bool $readOnly )
public setText ( string $text )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Vordefinierte Konstanten

UI\Controls\Entry::Normal

A normal single line entry

UI\Controls\Entry::Password

A password entry

UI\Controls\Entry::Search

A search entry

Inhaltsverzeichnis

  • UI\Controls\Entry::__construct — Construct a new Entry
  • UI\Controls\Entry::getText — Get Text
  • UI\Controls\Entry::isReadOnly — Detect Read Only
  • UI\Controls\Entry::onChange — Change Handler
  • UI\Controls\Entry::setReadOnly — Set Read Only
  • UI\Controls\Entry::setText — Set Text


Construct a new Entry

  • « UI\Controls\Entry
  • UI\Controls\Entry::getText »
  • PHP Manual
  • UI\Controls\Entry
  • Construct a new Entry

UI\Controls\Entry::__construct

(UI 0.9.9)

UI\Controls\Entry::__construct — Construct a new Entry

Beschreibung

public UI\Controls\Entry::__construct ( int $type = UI\Controls\Entry::Normal )

Construct a new entry of the given type

Parameter-Liste

type

Entry::Normal, Entry::Password, or Entry::Search


Get Text

  • « UI\Controls\Entry::__construct
  • UI\Controls\Entry::isReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Get Text

UI\Controls\Entry::getText

(UI 0.9.9)

UI\Controls\Entry::getText — Get Text

Beschreibung

public UI\Controls\Entry::getText ( ) : string

Shall return the current text from this Entry

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current text


Detect Read Only

  • « UI\Controls\Entry::getText
  • UI\Controls\Entry::onChange »
  • PHP Manual
  • UI\Controls\Entry
  • Detect Read Only

UI\Controls\Entry::isReadOnly

(UI 0.9.9)

UI\Controls\Entry::isReadOnly — Detect Read Only

Beschreibung

public UI\Controls\Entry::isReadOnly ( ) : bool

Shall detect if this Entry is read only

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Change Handler

  • « UI\Controls\Entry::isReadOnly
  • UI\Controls\Entry::setReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Change Handler

UI\Controls\Entry::onChange

(UI 0.9.9)

UI\Controls\Entry::onChange — Change Handler

Beschreibung

protected UI\Controls\Entry::onChange ( )

Shall be executed when the text in this Entry changes

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Read Only

  • « UI\Controls\Entry::onChange
  • UI\Controls\Entry::setText »
  • PHP Manual
  • UI\Controls\Entry
  • Set Read Only

UI\Controls\Entry::setReadOnly

(UI 0.9.9)

UI\Controls\Entry::setReadOnly — Set Read Only

Beschreibung

public UI\Controls\Entry::setReadOnly ( bool $readOnly )

Shall enable or disable read only for this Entry

Parameter-Liste

readOnly


Set Text

  • « UI\Controls\Entry::setReadOnly
  • UI\Controls\MultilineEntry »
  • PHP Manual
  • UI\Controls\Entry
  • Set Text

UI\Controls\Entry::setText

(UI 0.9.9)

UI\Controls\Entry::setText — Set Text

Beschreibung

public UI\Controls\Entry::setText ( string $text )

Shall set the text for this Entry

Parameter-Liste

text

The new text


MultilineEntry Control

(UI 0.9.9)

Einführung

A Multiline Entry is a text entry control able to hold multiple lines of text, with or without wrapping.

Klassenbeschreibung

UI\Controls\MultilineEntry extends UI\Control {
/* Constants */
const int Wrap ;
const int NoWrap ;
/* Constructor */
public __construct ( int $type = ? )
/* Methoden */
public append ( string $text )
public getText ( ) : string
public isReadOnly ( ) : bool
protected onChange ( )
public setReadOnly ( bool $readOnly )
public setText ( string $text )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Vordefinierte Konstanten

UI\Controls\MultilineEntry::Wrap

Allow lines to wrap

UI\Controls\MultilineEntry::NoWrap

Do not allow lines to wrap

Inhaltsverzeichnis

  • UI\Controls\MultilineEntry::append — Append Text
  • UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry
  • UI\Controls\MultilineEntry::getText — Get Text
  • UI\Controls\MultilineEntry::isReadOnly — Read Only Detection
  • UI\Controls\MultilineEntry::onChange — Change Handler
  • UI\Controls\MultilineEntry::setReadOnly — Set Read Only
  • UI\Controls\MultilineEntry::setText — Set Text


Append Text

  • « UI\Controls\MultilineEntry
  • UI\Controls\MultilineEntry::__construct »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Append Text

UI\Controls\MultilineEntry::append

(UI 0.9.9)

UI\Controls\MultilineEntry::append — Append Text

Beschreibung

public UI\Controls\MultilineEntry::append ( string $text )

Shall append the given text to the text in this Multiline Entry

Parameter-Liste

text

The text to append


Construct a new Multiline Entry

  • « UI\Controls\MultilineEntry::append
  • UI\Controls\MultilineEntry::getText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Construct a new Multiline Entry

UI\Controls\MultilineEntry::__construct

(UI 0.9.9)

UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry

Beschreibung

public UI\Controls\MultilineEntry::__construct ( int $type = ? )

Shall construct a new Multiline Entry of the given type

Parameter-Liste

type

MultilineEntry::Wrap or MultilineEntry::NoWrap


Get Text

  • « UI\Controls\MultilineEntry::__construct
  • UI\Controls\MultilineEntry::isReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Get Text

UI\Controls\MultilineEntry::getText

(UI 0.9.9)

UI\Controls\MultilineEntry::getText — Get Text

Beschreibung

public UI\Controls\MultilineEntry::getText ( ) : string

Shall return the text in this Multiline Entry

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Read Only Detection

  • « UI\Controls\MultilineEntry::getText
  • UI\Controls\MultilineEntry::onChange »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Read Only Detection

UI\Controls\MultilineEntry::isReadOnly

(UI 0.9.9)

UI\Controls\MultilineEntry::isReadOnly — Read Only Detection

Beschreibung

public UI\Controls\MultilineEntry::isReadOnly ( ) : bool

Shall detect if this Multiline Entry is read only

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Change Handler

  • « UI\Controls\MultilineEntry::isReadOnly
  • UI\Controls\MultilineEntry::setReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Change Handler

UI\Controls\MultilineEntry::onChange

(UI 0.9.9)

UI\Controls\MultilineEntry::onChange — Change Handler

Beschreibung

protected UI\Controls\MultilineEntry::onChange ( )

Shall be executed when the text in this Multiline Entry is changed

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Read Only

  • « UI\Controls\MultilineEntry::onChange
  • UI\Controls\MultilineEntry::setText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Set Read Only

UI\Controls\MultilineEntry::setReadOnly

(UI 0.9.9)

UI\Controls\MultilineEntry::setReadOnly — Set Read Only

Beschreibung

public UI\Controls\MultilineEntry::setReadOnly ( bool $readOnly )

Shall enable or disable read only on this Multiline Entry

Parameter-Liste

readOnly


Set Text

  • « UI\Controls\MultilineEntry::setReadOnly
  • UI\Controls\Spin »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Set Text

UI\Controls\MultilineEntry::setText

(UI 0.9.9)

UI\Controls\MultilineEntry::setText — Set Text

Beschreibung

public UI\Controls\MultilineEntry::setText ( string $text )

Shall set the text in this Multiline Entry

Parameter-Liste

text

The new text


Spin Control

(UI 0.9.9)

Einführung

A Spin box is a text box with an up-down control which changes the integer value in the box, within a defined range

Klassenbeschreibung

UI\Controls\Spin extends UI\Control {
/* Constructor */
public __construct ( int $min , int $max )
/* Methoden */
public getValue ( ) : int
protected onChange ( )
public setValue ( int $value )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Inhaltsverzeichnis

  • UI\Controls\Spin::__construct — Construct a new Spin
  • UI\Controls\Spin::getValue — Get Value
  • UI\Controls\Spin::onChange — Change Handler
  • UI\Controls\Spin::setValue — Set Value


Construct a new Spin

  • « UI\Controls\Spin
  • UI\Controls\Spin::getValue »
  • PHP Manual
  • UI\Controls\Spin
  • Construct a new Spin

UI\Controls\Spin::__construct

(UI 0.9.9)

UI\Controls\Spin::__construct — Construct a new Spin

Beschreibung

public UI\Controls\Spin::__construct ( int $min , int $max )

Constructs a new Spin with the given range

Parameter-Liste

min

The minimum value allowed

max

The maximum value allowed


Get Value

  • « UI\Controls\Spin::__construct
  • UI\Controls\Spin::onChange »
  • PHP Manual
  • UI\Controls\Spin
  • Get Value

UI\Controls\Spin::getValue

(UI 0.9.9)

UI\Controls\Spin::getValue — Get Value

Beschreibung

public UI\Controls\Spin::getValue ( ) : int

Get the value in this Spin

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Change Handler

  • « UI\Controls\Spin::getValue
  • UI\Controls\Spin::setValue »
  • PHP Manual
  • UI\Controls\Spin
  • Change Handler

UI\Controls\Spin::onChange

(UI 0.9.9)

UI\Controls\Spin::onChange — Change Handler

Beschreibung

protected UI\Controls\Spin::onChange ( )

Shall be executed when the value in this Spin changes

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Value

  • « UI\Controls\Spin::onChange
  • UI\Controls\Slider »
  • PHP Manual
  • UI\Controls\Spin
  • Set Value

UI\Controls\Spin::setValue

(UI 0.9.9)

UI\Controls\Spin::setValue — Set Value

Beschreibung

public UI\Controls\Spin::setValue ( int $value )

Set the value in this Spin

Parameter-Liste

value

The new value


Slider Control

(UI 0.9.9)

Einführung

A Slider is a control which represents a range, and a current value in the range. The sliding element of the control (sometimes called the "thumb") reflects the value, and can be adjusted within the range.

Klassenbeschreibung

UI\Controls\Slider extends UI\Control {
/* Constructor */
public __construct ( int $min , int $max )
/* Methoden */
public getValue ( ) : int
protected onChange ( )
public setValue ( int $value )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Inhaltsverzeichnis

  • UI\Controls\Slider::__construct — Construct a new Slider
  • UI\Controls\Slider::getValue — Get Value
  • UI\Controls\Slider::onChange — Change Handler
  • UI\Controls\Slider::setValue — Set Value


Construct a new Slider

  • « UI\Controls\Slider
  • UI\Controls\Slider::getValue »
  • PHP Manual
  • UI\Controls\Slider
  • Construct a new Slider

UI\Controls\Slider::__construct

(UI 0.9.9)

UI\Controls\Slider::__construct — Construct a new Slider

Beschreibung

public UI\Controls\Slider::__construct ( int $min , int $max )

Construct a new Slider with the given range

Parameter-Liste

min

The minimum allowed value

max

The maximum allowed value


Get Value

  • « UI\Controls\Slider::__construct
  • UI\Controls\Slider::onChange »
  • PHP Manual
  • UI\Controls\Slider
  • Get Value

UI\Controls\Slider::getValue

(UI 0.9.9)

UI\Controls\Slider::getValue — Get Value

Beschreibung

public UI\Controls\Slider::getValue ( ) : int

Get the value from this Slider

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Change Handler

  • « UI\Controls\Slider::getValue
  • UI\Controls\Slider::setValue »
  • PHP Manual
  • UI\Controls\Slider
  • Change Handler

UI\Controls\Slider::onChange

(UI 0.9.9)

UI\Controls\Slider::onChange — Change Handler

Beschreibung

protected UI\Controls\Slider::onChange ( )

Shall be executed when the value of this Slider changes

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Value

  • « UI\Controls\Slider::onChange
  • UI\Controls\Progress »
  • PHP Manual
  • UI\Controls\Slider
  • Set Value

UI\Controls\Slider::setValue

(UI 0.9.9)

UI\Controls\Slider::setValue — Set Value

Beschreibung

public UI\Controls\Slider::setValue ( int $value )

Shall set the value for this Slider

Parameter-Liste

value

The new value


Progress Control

(UI 0.9.9)

Einführung

A Progress control is a familiar Progress bar: It represents progress as a percentage, with a possible range of 0 to 100 (inclusive).

Klassenbeschreibung

UI\Controls\Progress extends UI\Control {
/* Methoden */
public getValue ( ) : int
public setValue ( int $value )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Inhaltsverzeichnis

  • UI\Controls\Progress::getValue — Get Value
  • UI\Controls\Progress::setValue — Set Value


Get Value

  • « UI\Controls\Progress
  • UI\Controls\Progress::setValue »
  • PHP Manual
  • UI\Controls\Progress
  • Get Value

UI\Controls\Progress::getValue

(UI 0.9.9)

UI\Controls\Progress::getValue — Get Value

Beschreibung

public UI\Controls\Progress::getValue ( ) : int

Shall retrieve the current value of this Progress bar

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Value

  • « UI\Controls\Progress::getValue
  • UI\Controls\Separator »
  • PHP Manual
  • UI\Controls\Progress
  • Set Value

UI\Controls\Progress::setValue

(UI 0.9.9)

UI\Controls\Progress::setValue — Set Value

Beschreibung

public UI\Controls\Progress::setValue ( int $value )

Shall set the value for this Progress bar

Parameter-Liste

value

An integer between 0 and 100 (inclusive)


Control Separator

(UI 0.9.9)

Einführung

A Separator represents a control separator, it has no other function.

Klassenbeschreibung

UI\Controls\Separator extends UI\Control {
/* Constants */
const int Horizontal ;
const int Vertical ;
/* Constructor */
public __construct ( int $type = UI\Controls\Separator::Horizontal )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Vordefinierte Konstanten

UI\Controls\Separator::Horizontal

A Horizontal Separator

UI\Controls\Separator::Vertical

A Vertical Separator

Inhaltsverzeichnis

  • UI\Controls\Separator::__construct — Construct a new Separator


Construct a new Separator

  • « UI\Controls\Separator
  • UI\Controls\Combo »
  • PHP Manual
  • UI\Controls\Separator
  • Construct a new Separator

UI\Controls\Separator::__construct

(UI 0.9.9)

UI\Controls\Separator::__construct — Construct a new Separator

Beschreibung

public UI\Controls\Separator::__construct ( int $type = UI\Controls\Separator::Horizontal )

Shall construct a new Separator of the given type

Parameter-Liste

type

Separator::Horizonal or Separator::Vertical


Combo Control

(UI 0.9.9)

Einführung

A Combo control represents a list of options, like the familiar select HTML element.

Klassenbeschreibung

UI\Controls\Combo extends UI\Control {
/* Methoden */
public append ( string $text )
public getSelected ( ) : int
protected onSelected ( )
public setSelected ( int $index )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Inhaltsverzeichnis

  • UI\Controls\Combo::append — Append Option
  • UI\Controls\Combo::getSelected — Get Selected Option
  • UI\Controls\Combo::onSelected — Selected Handler
  • UI\Controls\Combo::setSelected — Set Selected Option


Append Option

  • « UI\Controls\Combo
  • UI\Controls\Combo::getSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Append Option

UI\Controls\Combo::append

(UI 0.9.9)

UI\Controls\Combo::append — Append Option

Beschreibung

public UI\Controls\Combo::append ( string $text )

Append an option to this Combo

Parameter-Liste

text

The text for the new option


Get Selected Option

  • « UI\Controls\Combo::append
  • UI\Controls\Combo::onSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Get Selected Option

UI\Controls\Combo::getSelected

(UI 0.9.9)

UI\Controls\Combo::getSelected — Get Selected Option

Beschreibung

public UI\Controls\Combo::getSelected ( ) : int

Shall retrieve the index of the option selected in this Combo

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Selected Handler

  • « UI\Controls\Combo::getSelected
  • UI\Controls\Combo::setSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Selected Handler

UI\Controls\Combo::onSelected

(UI 0.9.9)

UI\Controls\Combo::onSelected — Selected Handler

Beschreibung

protected UI\Controls\Combo::onSelected ( )

Shall be executed when an option is selected in this Combo

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Selected Option

  • « UI\Controls\Combo::onSelected
  • UI\Controls\EditableCombo »
  • PHP Manual
  • UI\Controls\Combo
  • Set Selected Option

UI\Controls\Combo::setSelected

(UI 0.9.9)

UI\Controls\Combo::setSelected — Set Selected Option

Beschreibung

public UI\Controls\Combo::setSelected ( int $index )

Shall set the currently selected option in this Combo

Parameter-Liste

index

The index of the option to select


EdiableCombo Control

(UI 0.9.9)

Einführung

An Editable Combo is a Combo which allows the user to enter custom options

Klassenbeschreibung

UI\Controls\EditableCombo extends UI\Control {
/* Methoden */
public append ( string $text )
public getText ( ) : string
protected onChange ( )
public setText ( string $text )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Inhaltsverzeichnis

  • UI\Controls\EditableCombo::append — Append Option
  • UI\Controls\EditableCombo::getText — Get Text
  • UI\Controls\EditableCombo::onChange — Change Handler
  • UI\Controls\EditableCombo::setText — Set Text


Append Option

  • « UI\Controls\EditableCombo
  • UI\Controls\EditableCombo::getText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Append Option

UI\Controls\EditableCombo::append

(UI 0.9.9)

UI\Controls\EditableCombo::append — Append Option

Beschreibung

public UI\Controls\EditableCombo::append ( string $text )

Shall append a new option to this Editable Combo

Parameter-Liste

text

The text for the new option


Get Text

  • « UI\Controls\EditableCombo::append
  • UI\Controls\EditableCombo::onChange »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Get Text

UI\Controls\EditableCombo::getText

(UI 0.9.9)

UI\Controls\EditableCombo::getText — Get Text

Beschreibung

public UI\Controls\EditableCombo::getText ( ) : string

Get the value of the currently selected option in this Editable Combo

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Change Handler

  • « UI\Controls\EditableCombo::getText
  • UI\Controls\EditableCombo::setText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Change Handler

UI\Controls\EditableCombo::onChange

(UI 0.9.9)

UI\Controls\EditableCombo::onChange — Change Handler

Beschreibung

protected UI\Controls\EditableCombo::onChange ( )

Shall be executed when the value of this Editable Combobox changes

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Text

  • « UI\Controls\EditableCombo::onChange
  • UI\Controls\Radio »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Set Text

UI\Controls\EditableCombo::setText

(UI 0.9.9)

UI\Controls\EditableCombo::setText — Set Text

Beschreibung

public UI\Controls\EditableCombo::setText ( string $text )

Shall set the text of the currently selected option in this Editable Combo

Parameter-Liste

text

The new text


Radio Control

(UI 0.9.9)

Einführung

A Radio is similar to the radio input type familiar from HTML

Klassenbeschreibung

UI\Controls\Radio extends UI\Control {
/* Methoden */
public append ( string $text )
public getSelected ( ) : int
protected onSelected ( )
public setSelected ( int $index )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Inhaltsverzeichnis

  • UI\Controls\Radio::append — Append Option
  • UI\Controls\Radio::getSelected — Get Selected Option
  • UI\Controls\Radio::onSelected — Selected Handler
  • UI\Controls\Radio::setSelected — Set Selected Option


Append Option

  • « UI\Controls\Radio
  • UI\Controls\Radio::getSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Append Option

UI\Controls\Radio::append

(UI 0.9.9)

UI\Controls\Radio::append — Append Option

Beschreibung

public UI\Controls\Radio::append ( string $text )

Shall append a new option to this Radio

Parameter-Liste

text

The text (label) for the option


Get Selected Option

  • « UI\Controls\Radio::append
  • UI\Controls\Radio::onSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Get Selected Option

UI\Controls\Radio::getSelected

(UI 0.9.9)

UI\Controls\Radio::getSelected — Get Selected Option

Beschreibung

public UI\Controls\Radio::getSelected ( ) : int

Shall retrieve the index of the currently selected option in this Radio

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Selected Handler

  • « UI\Controls\Radio::getSelected
  • UI\Controls\Radio::setSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Selected Handler

UI\Controls\Radio::onSelected

(UI 0.9.9)

UI\Controls\Radio::onSelected — Selected Handler

Beschreibung

protected UI\Controls\Radio::onSelected ( )

Shall be executed when the option selected in this Radio changes

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Selected Option

  • « UI\Controls\Radio::onSelected
  • UI\Controls\Picker »
  • PHP Manual
  • UI\Controls\Radio
  • Set Selected Option

UI\Controls\Radio::setSelected

(UI 0.9.9)

UI\Controls\Radio::setSelected — Set Selected Option

Beschreibung

public UI\Controls\Radio::setSelected ( int $index )

Shall set the currently selected option in this Radio

Parameter-Liste

index

The index of the option to select


Picker Control

(UI 0.9.9)

Einführung

A Picker represents a button which when clicked presents a native Date/Time/DateTime Picker interface to the user.

Klassenbeschreibung

UI\Controls\Picker extends UI\Control {
/* Constants */
const int Date ;
const int Time ;
const int DateTime ;
/* Constructor */
public __construct ( int $type = UI\Controls\Picker::Date )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Vordefinierte Konstanten

UI\Controls\Picker::Date

A Date Picker

UI\Controls\Picker::Time

A Time Picker

UI\Controls\Picker::DateTime

A Date and Time Picker

Inhaltsverzeichnis

  • UI\Controls\Picker::__construct — Construct a new Picker


Construct a new Picker

  • « UI\Controls\Picker
  • UI\Controls\Form »
  • PHP Manual
  • UI\Controls\Picker
  • Construct a new Picker

UI\Controls\Picker::__construct

(UI 0.9.9)

UI\Controls\Picker::__construct — Construct a new Picker

Beschreibung

public UI\Controls\Picker::__construct ( int $type = UI\Controls\Picker::Date )

Construct a new Picker of the given type

Parameter-Liste

type

Picker::Date, Picker::Time, or Picker::DateTime


Control Form (Arrangement)

(UI 0.9.9)

Einführung

A Form is a control which allows the arrangement of other controls into a familiar layout (the form).

Klassenbeschreibung

UI\Controls\Form extends UI\Control {
/* Eigenschaften */
protected $controls ;
/* Methoden */
public append ( string $label , UI\Control $control , bool $stretchy = false ) : int
public delete ( int $index ) : bool
public isPadded ( ) : bool
public setPadded ( bool $padded )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Eigenschaften

controls

Contains controls, should not be manipulated directly

Inhaltsverzeichnis

  • UI\Controls\Form::append — Append Control
  • UI\Controls\Form::delete — Delete Control
  • UI\Controls\Form::isPadded — Padding Detection
  • UI\Controls\Form::setPadded — Set Padding


Append Control

  • « UI\Controls\Form
  • UI\Controls\Form::delete »
  • PHP Manual
  • UI\Controls\Form
  • Append Control

UI\Controls\Form::append

(UI 0.9.9)

UI\Controls\Form::append — Append Control

Beschreibung

public UI\Controls\Form::append ( string $label , UI\Control $control , bool $stretchy = false ) : int

Shall append the control to the form, and set the label

Parameter-Liste

label

The text for the label

control

A control

stretchy

Should be set true to stretch the control

Rückgabewerte

Shall return the index of the appended control, may be 0


Delete Control

  • « UI\Controls\Form::append
  • UI\Controls\Form::isPadded »
  • PHP Manual
  • UI\Controls\Form
  • Delete Control

UI\Controls\Form::delete

(UI 0.9.9)

UI\Controls\Form::delete — Delete Control

Beschreibung

public UI\Controls\Form::delete ( int $index ) : bool

Shall delete the control at the given index in this Form

Parameter-Liste

index

The index of the control to remove

Rückgabewerte

Indication of succcess


Padding Detection

  • « UI\Controls\Form::delete
  • UI\Controls\Form::setPadded »
  • PHP Manual
  • UI\Controls\Form
  • Padding Detection

UI\Controls\Form::isPadded

(UI 0.9.9)

UI\Controls\Form::isPadded — Padding Detection

Beschreibung

public UI\Controls\Form::isPadded ( ) : bool

Shall detect if padding is enabled on this Form

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Padding

  • « UI\Controls\Form::isPadded
  • UI\Controls\Grid »
  • PHP Manual
  • UI\Controls\Form
  • Set Padding

UI\Controls\Form::setPadded

(UI 0.9.9)

UI\Controls\Form::setPadded — Set Padding

Beschreibung

public UI\Controls\Form::setPadded ( bool $padded )

Shall enable or disable padding on this Form

Parameter-Liste

padded


Control Grid (Arrangement)

(UI 0.9.9)

Einführung

A Grid is a control which is allows the arrangement of children into a grid

Klassenbeschreibung

UI\Controls\Grid extends UI\Control {
/* Constants */
const int Fill ;
const int Start ;
const int Center ;
const int End ;
const int Leading ;
const int Top ;
const int Trailing ;
const int Bottom ;
/* Eigenschaften */
protected $controls ;
/* Methoden */
public append ( UI\Control $control , int $left , int $top , int $xspan , int $yspan , bool $hexpand , int $halign , bool $vexpand , int $valign )
public isPadded ( ) : bool
public setPadded ( bool $padding )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Vordefinierte Konstanten

UI\Controls\Grid::Fill

UI\Controls\Grid::Start

UI\Controls\Grid::Center

UI\Controls\Grid::End

UI\Controls\Grid::Leading

UI\Controls\Grid::Top

UI\Controls\Grid::Trailing

UI\Controls\Grid::Bottom

Eigenschaften

controls

Contains controls, should not be manipulated directly

Inhaltsverzeichnis

  • UI\Controls\Grid::append — Append Control
  • UI\Controls\Grid::isPadded — Padding Detection
  • UI\Controls\Grid::setPadded — Set Padding


Append Control

  • « UI\Controls\Grid
  • UI\Controls\Grid::isPadded »
  • PHP Manual
  • UI\Controls\Grid
  • Append Control

UI\Controls\Grid::append

(UI 0.9.9)

UI\Controls\Grid::append — Append Control

Beschreibung

public UI\Controls\Grid::append ( UI\Control $control , int $left , int $top , int $xspan , int $yspan , bool $hexpand , int $halign , bool $vexpand , int $valign )

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

control

The Control to append

left

top

xspan

yspan

hexpand

halign

vexpand

valign

Rückgabewerte


Padding Detection

  • « UI\Controls\Grid::append
  • UI\Controls\Grid::setPadded »
  • PHP Manual
  • UI\Controls\Grid
  • Padding Detection

UI\Controls\Grid::isPadded

(UI 0.9.9)

UI\Controls\Grid::isPadded — Padding Detection

Beschreibung

public UI\Controls\Grid::isPadded ( ) : bool

Shall detect if padding is enabled on this Grid

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Padding

  • « UI\Controls\Grid::isPadded
  • UI\Controls\Group »
  • PHP Manual
  • UI\Controls\Grid
  • Set Padding

UI\Controls\Grid::setPadded

(UI 0.9.9)

UI\Controls\Grid::setPadded — Set Padding

Beschreibung

public UI\Controls\Grid::setPadded ( bool $padding )

Shall enable or disable padding for this Grid

Parameter-Liste

padding


Control Group (Arrangement)

(UI 0.9.9)

Einführung

A Group is a titled container for child controls

Klassenbeschreibung

UI\Controls\Group extends UI\Control {
/* Eigenschaften */
protected $controls ;
/* Constructor */
public __construct ( string $title )
/* Methoden */
public append ( UI\Control $control )
public getTitle ( ) : string
public hasMargin ( ) : bool
public setMargin ( bool $margin )
public setTitle ( string $title )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Eigenschaften

controls

Contains controls, should not be manipulated directly

Inhaltsverzeichnis

  • UI\Controls\Group::append — Append Control
  • UI\Controls\Group::__construct — Construct a new Group
  • UI\Controls\Group::getTitle — Get Title
  • UI\Controls\Group::hasMargin — Margin Detection
  • UI\Controls\Group::setMargin — Set Margin
  • UI\Controls\Group::setTitle — Set Title


Append Control

  • « UI\Controls\Group
  • UI\Controls\Group::__construct »
  • PHP Manual
  • UI\Controls\Group
  • Append Control

UI\Controls\Group::append

(No version information available, might only be in Git)

UI\Controls\Group::append — Append Control

Beschreibung

public UI\Controls\Group::append ( UI\Control $control )

Shall append a control to this Group

Parameter-Liste

control

The control to append


Construct a new Group

  • « UI\Controls\Group::append
  • UI\Controls\Group::getTitle »
  • PHP Manual
  • UI\Controls\Group
  • Construct a new Group

UI\Controls\Group::__construct

(UI 0.9.9)

UI\Controls\Group::__construct — Construct a new Group

Beschreibung

public UI\Controls\Group::__construct ( string $title )

Shall construct a new Group with the given title

Parameter-Liste

title

The text for the title label


Get Title

  • « UI\Controls\Group::__construct
  • UI\Controls\Group::hasMargin »
  • PHP Manual
  • UI\Controls\Group
  • Get Title

UI\Controls\Group::getTitle

(UI 0.9.9)

UI\Controls\Group::getTitle — Get Title

Beschreibung

public UI\Controls\Group::getTitle ( ) : string

Shall return the current title for this Group

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current title


Margin Detection

  • « UI\Controls\Group::getTitle
  • UI\Controls\Group::setMargin »
  • PHP Manual
  • UI\Controls\Group
  • Margin Detection

UI\Controls\Group::hasMargin

(UI 0.9.9)

UI\Controls\Group::hasMargin — Margin Detection

Beschreibung

public UI\Controls\Group::hasMargin ( ) : bool

Shall detect if this Group has a margin

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Margin

  • « UI\Controls\Group::hasMargin
  • UI\Controls\Group::setTitle »
  • PHP Manual
  • UI\Controls\Group
  • Set Margin

UI\Controls\Group::setMargin

(UI 0.9.9)

UI\Controls\Group::setMargin — Set Margin

Beschreibung

public UI\Controls\Group::setMargin ( bool $margin )

Shall enable or disable margins for this Group

Parameter-Liste

margin


Set Title

  • « UI\Controls\Group::setMargin
  • UI\Controls\Box »
  • PHP Manual
  • UI\Controls\Group
  • Set Title

UI\Controls\Group::setTitle

(UI 0.9.9)

UI\Controls\Group::setTitle — Set Title

Beschreibung

public UI\Controls\Group::setTitle ( string $title )

Shall set the title for this Group

Parameter-Liste

title

The text for the new title


Control Box (Arrangement)

(UI 0.9.9)

Einführung

A Box allows the arrangement of other controls

Klassenbeschreibung

UI\Controls\Box extends UI\Control {
/* Constants */
const int Vertical ;
const int Horizontal ;
/* Eigenschaften */
protected $controls ;
/* Constructor */
public __construct ( int $orientation = UI\Controls\Box::Horizontal )
/* Methoden */
public append ( Control $control , bool $stretchy = false ) : int
public delete ( int $index ) : bool
public getOrientation ( ) : int
public isPadded ( ) : bool
public setPadded ( bool $padded )
/* Geerbte Methoden */
public UI\Control::destroy ( )
public UI\Control::disable ( )
public UI\Control::enable ( )
public UI\Control::getParent ( ) : UI\Control
public UI\Control::getTopLevel ( ) : int
public UI\Control::hide ( )
public UI\Control::isEnabled ( ) : bool
public UI\Control::isVisible ( ) : bool
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( )
}

Eigenschaften

controls

Contains controls, should not be manipulated directly

Vordefinierte Konstanten

UI\Controls\Box::Vertical

UI\Controls\Box::Horizontal

Inhaltsverzeichnis

  • UI\Controls\Box::append — Append Control
  • UI\Controls\Box::__construct — Construct a new Box
  • UI\Controls\Box::delete — Delete Control
  • UI\Controls\Box::getOrientation — Get Orientation
  • UI\Controls\Box::isPadded — Padding Detection
  • UI\Controls\Box::setPadded — Set Padding


Append Control

  • « UI\Controls\Box
  • UI\Controls\Box::__construct »
  • PHP Manual
  • UI\Controls\Box
  • Append Control

UI\Controls\Box::append

(UI 0.9.9)

UI\Controls\Box::append — Append Control

Beschreibung

public UI\Controls\Box::append ( Control $control , bool $stretchy = false ) : int

Shall append the given control to this Box

Parameter-Liste

control

The control to append

stretchy

Set true to stretch the control

Rückgabewerte

Shall return the index of the appended control, may be 0


Construct a new Box

  • « UI\Controls\Box::append
  • UI\Controls\Box::delete »
  • PHP Manual
  • UI\Controls\Box
  • Construct a new Box

UI\Controls\Box::__construct

(UI 0.9.9)

UI\Controls\Box::__construct — Construct a new Box

Beschreibung

public UI\Controls\Box::__construct ( int $orientation = UI\Controls\Box::Horizontal )

Shall construct a new box

Parameter-Liste

orientation

Box::Horizontal or Box::Vertical


Delete Control

  • « UI\Controls\Box::__construct
  • UI\Controls\Box::getOrientation »
  • PHP Manual
  • UI\Controls\Box
  • Delete Control

UI\Controls\Box::delete

(UI 0.9.9)

UI\Controls\Box::delete — Delete Control

Beschreibung

public UI\Controls\Box::delete ( int $index ) : bool

Shall delete the control at the given index from this Box

Parameter-Liste

index

The index of the control to delete

Rückgabewerte

Indication of success


Get Orientation

  • « UI\Controls\Box::delete
  • UI\Controls\Box::isPadded »
  • PHP Manual
  • UI\Controls\Box
  • Get Orientation

UI\Controls\Box::getOrientation

(UI 0.9.9)

UI\Controls\Box::getOrientation — Get Orientation

Beschreibung

public UI\Controls\Box::getOrientation ( ) : int

Shall retrieve the orientation of this Box

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Padding Detection

  • « UI\Controls\Box::getOrientation
  • UI\Controls\Box::setPadded »
  • PHP Manual
  • UI\Controls\Box
  • Padding Detection

UI\Controls\Box::isPadded

(UI 0.9.9)

UI\Controls\Box::isPadded — Padding Detection

Beschreibung

public UI\Controls\Box::isPadded ( ) : bool

Shall detect if padding is enabled on this Box

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Set Padding

  • « UI\Controls\Box::isPadded
  • UI\Draw\Pen »
  • PHP Manual
  • UI\Controls\Box
  • Set Padding

UI\Controls\Box::setPadded

(UI 0.9.9)

UI\Controls\Box::setPadded — Set Padding

Beschreibung

public UI\Controls\Box::setPadded ( bool $padded )

Shall enable or disable padding on this Box

Parameter-Liste

padded


Draw Pen

(UI 0.9.9)

Einführung

The Pen is passed to the Area Draw event handler, it is used for clipping, filling, stroking, and writing to Draw Paths.

Klassenbeschreibung

final UI\Draw\Pen {
/* Methoden */
public clip ( UI\Draw\Path $path )
public fill ( UI\Draw\Path $path , UI\Draw\Brush $with )
public fill ( UI\Draw\Path $path , UI\Draw\Color $with )
public fill ( UI\Draw\Path $path , int $with )
public restore ( )
public save ( )
public stroke ( UI\Draw\Path $path , UI\Draw\Brush $with , UI\Draw\Stroke $stroke )
public stroke ( UI\Draw\Path $path , UI\Draw\Color $with , UI\Draw\Stroke $stroke )
public stroke ( UI\Draw\Path $path , int $with , UI\Draw\Stroke $stroke )
public transform ( UI\Draw\Matrix $matrix )
public write ( UI\Point $point , UI\Draw\Text\Layout $layout )
}

Inhaltsverzeichnis

  • UI\Draw\Pen::clip — Clip a Path
  • UI\Draw\Pen::fill — Fill a Path
  • UI\Draw\Pen::restore — Restore
  • UI\Draw\Pen::save — Save
  • UI\Draw\Pen::stroke — Stroke a Path
  • UI\Draw\Pen::transform — Matrix Transform
  • UI\Draw\Pen::write — Draw Text at Point


Clip a Path

  • « UI\Draw\Pen
  • UI\Draw\Pen::fill »
  • PHP Manual
  • UI\Draw\Pen
  • Clip a Path

UI\Draw\Pen::clip

(UI 0.9.9)

UI\Draw\Pen::clip — Clip a Path

Beschreibung

public UI\Draw\Pen::clip ( UI\Draw\Path $path )

Shall clip the given Path

Parameter-Liste

path

The path to clip


Fill a Path

  • « UI\Draw\Pen::clip
  • UI\Draw\Pen::restore »
  • PHP Manual
  • UI\Draw\Pen
  • Fill a Path

UI\Draw\Pen::fill

(UI 0.9.9)

UI\Draw\Pen::fill — Fill a Path

Beschreibung

public UI\Draw\Pen::fill ( UI\Draw\Path $path , UI\Draw\Brush $with )
public UI\Draw\Pen::fill ( UI\Draw\Path $path , UI\Draw\Color $with )
public UI\Draw\Pen::fill ( UI\Draw\Path $path , int $with )

Shall fill the given path

Parameter-Liste

path

The path to fill

with

The color or brush to fill with


Restore

  • « UI\Draw\Pen::fill
  • UI\Draw\Pen::save »
  • PHP Manual
  • UI\Draw\Pen
  • Restore

UI\Draw\Pen::restore

(UI 0.9.9)

UI\Draw\Pen::restore — Restore

Beschreibung

public UI\Draw\Pen::restore ( )

Shall restore a previously saved Pen

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Save

  • « UI\Draw\Pen::restore
  • UI\Draw\Pen::stroke »
  • PHP Manual
  • UI\Draw\Pen
  • Save

UI\Draw\Pen::save

(UI 0.9.9)

UI\Draw\Pen::save — Save

Beschreibung

public UI\Draw\Pen::save ( )

Shall save the Pen

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Stroke a Path

  • « UI\Draw\Pen::save
  • UI\Draw\Pen::transform »
  • PHP Manual
  • UI\Draw\Pen
  • Stroke a Path

UI\Draw\Pen::stroke

(UI 0.9.9)

UI\Draw\Pen::stroke — Stroke a Path

Beschreibung

public UI\Draw\Pen::stroke ( UI\Draw\Path $path , UI\Draw\Brush $with , UI\Draw\Stroke $stroke )
public UI\Draw\Pen::stroke ( UI\Draw\Path $path , UI\Draw\Color $with , UI\Draw\Stroke $stroke )
public UI\Draw\Pen::stroke ( UI\Draw\Path $path , int $with , UI\Draw\Stroke $stroke )

Shall stroke the given path

Parameter-Liste

path

The path to stroke

with

The color or brush to stroke with

stroke

The configuration of the stroke


Matrix Transform

  • « UI\Draw\Pen::stroke
  • UI\Draw\Pen::write »
  • PHP Manual
  • UI\Draw\Pen
  • Matrix Transform

UI\Draw\Pen::transform

(UI 0.9.9)

UI\Draw\Pen::transform — Matrix Transform

Beschreibung

public UI\Draw\Pen::transform ( UI\Draw\Matrix $matrix )

Shall perform matrix transformation

Parameter-Liste

matrix

The matrix to use


Draw Text at Point

  • « UI\Draw\Pen::transform
  • UI\Draw\Path »
  • PHP Manual
  • UI\Draw\Pen
  • Draw Text at Point

UI\Draw\Pen::write

(UI 0.9.9)

UI\Draw\Pen::write — Draw Text at Point

Beschreibung

public UI\Draw\Pen::write ( UI\Point $point , UI\Draw\Text\Layout $layout )

Shall draw the given text layout at the given point

Parameter-Liste

point

The point to perform the drawing

layout

The layout of the text to draw


Draw Path

(UI 0.9.9)

Einführung

A Draw Path guides a Draw Pen, telling the Pen where to draw on an Area.

Klassenbeschreibung

UI\Draw\Path {
/* Constants */
const int Winding ;
const int Alternate ;
/* Constructor */
public __construct ( int $mode = UI\Draw\Path::Winding )
/* Methoden */
public addRectangle ( UI\Point $point , UI\Size $size )
public arcTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
public bezierTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
public closeFigure ( )
public end ( )
public lineTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
public newFigure ( UI\Point $point )
public newFigureWithArc ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
}

Vordefinierte Konstanten

UI\Draw\Path::Winding

This is the default draw path mode

UI\Draw\Path::Alternate

This is the alternate draw path mode

Inhaltsverzeichnis

  • UI\Draw\Path::addRectangle — Draw a Rectangle
  • UI\Draw\Path::arcTo — Draw an Arc
  • UI\Draw\Path::bezierTo — Draw Bezier Curve
  • UI\Draw\Path::closeFigure — Close Figure
  • UI\Draw\Path::__construct — Construct a new Path
  • UI\Draw\Path::end — Finalize Path
  • UI\Draw\Path::lineTo — Draw a Line
  • UI\Draw\Path::newFigure — Draw Figure
  • UI\Draw\Path::newFigureWithArc — Draw Figure with Arc


Draw a Rectangle

  • « UI\Draw\Path
  • UI\Draw\Path::arcTo »
  • PHP Manual
  • UI\Draw\Path
  • Draw a Rectangle

UI\Draw\Path::addRectangle

(UI 0.9.9)

UI\Draw\Path::addRectangle — Draw a Rectangle

Beschreibung

public UI\Draw\Path::addRectangle ( UI\Point $point , UI\Size $size )

Shall map the path of a rectangle of the given size, at the given point

Parameter-Liste

point

The point to begin the shape

size

The size of the rectangle


Draw an Arc

  • « UI\Draw\Path::addRectangle
  • UI\Draw\Path::bezierTo »
  • PHP Manual
  • UI\Draw\Path
  • Draw an Arc

UI\Draw\Path::arcTo

(UI 0.9.9)

UI\Draw\Path::arcTo — Draw an Arc

Beschreibung

public UI\Draw\Path::arcTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Shall map the path for an arc

Parameter-Liste

point

The point to begin mapping

radius

The radius of the arc

angle

The angle of the arc

sweep

The sweep of the arc

negative

Rückgabewerte


Draw Bezier Curve

  • « UI\Draw\Path::arcTo
  • UI\Draw\Path::closeFigure »
  • PHP Manual
  • UI\Draw\Path
  • Draw Bezier Curve

UI\Draw\Path::bezierTo

(UI 0.9.9)

UI\Draw\Path::bezierTo — Draw Bezier Curve

Beschreibung

public UI\Draw\Path::bezierTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Shall draw a bezier curve

Parameter-Liste

point

The point at which to begin mapping

radius

The radius of the curve

angle

The angle of the curve

sweep

The sweep of the curve

negative


Close Figure

  • « UI\Draw\Path::bezierTo
  • UI\Draw\Path::__construct »
  • PHP Manual
  • UI\Draw\Path
  • Close Figure

UI\Draw\Path::closeFigure

(UI 0.9.9)

UI\Draw\Path::closeFigure — Close Figure

Beschreibung

public UI\Draw\Path::closeFigure ( )

Shall close the current figure

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Construct a new Path

  • « UI\Draw\Path::closeFigure
  • UI\Draw\Path::end »
  • PHP Manual
  • UI\Draw\Path
  • Construct a new Path

UI\Draw\Path::__construct

(UI 0.9.9)

UI\Draw\Path::__construct — Construct a new Path

Beschreibung

public UI\Draw\Path::__construct ( int $mode = UI\Draw\Path::Winding )

Shall construct a new path in the given mode

Parameter-Liste

mode

Path::Winding or Path::Alternate


Finalize Path

  • « UI\Draw\Path::__construct
  • UI\Draw\Path::lineTo »
  • PHP Manual
  • UI\Draw\Path
  • Finalize Path

UI\Draw\Path::end

(UI 0.9.9)

UI\Draw\Path::end — Finalize Path

Beschreibung

public UI\Draw\Path::end ( )

Shall finalize this Path

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Draw a Line

  • « UI\Draw\Path::end
  • UI\Draw\Path::newFigure »
  • PHP Manual
  • UI\Draw\Path
  • Draw a Line

UI\Draw\Path::lineTo

(UI 0.9.9)

UI\Draw\Path::lineTo — Draw a Line

Beschreibung

public UI\Draw\Path::lineTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Shall map the path for a line

Parameter-Liste

point

The point to begin mapping

radius

angle

sweep

negative

Rückgabewerte


Draw Figure

  • « UI\Draw\Path::lineTo
  • UI\Draw\Path::newFigureWithArc »
  • PHP Manual
  • UI\Draw\Path
  • Draw Figure

UI\Draw\Path::newFigure

(UI 0.9.9)

UI\Draw\Path::newFigure — Draw Figure

Beschreibung

public UI\Draw\Path::newFigure ( UI\Point $point )

Shall map a new figure at the given point

Parameter-Liste

point

The point to begin mapping


Draw Figure with Arc

  • « UI\Draw\Path::newFigure
  • UI\Draw\Matrix »
  • PHP Manual
  • UI\Draw\Path
  • Draw Figure with Arc

UI\Draw\Path::newFigureWithArc

(UI 0.9.9)

UI\Draw\Path::newFigureWithArc — Draw Figure with Arc

Beschreibung

public UI\Draw\Path::newFigureWithArc ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Parameter-Liste

point

radius

angle

sweep

negative

Rückgabewerte


Draw Matrix

(UI 0.9.9)

Einführung

Klassenbeschreibung

UI\Draw\Matrix {
/* Methoden */
public invert ( )
public isInvertible ( ) : bool
public multiply ( UI\Draw\Matrix $matrix ) : UI\Draw\Matrix
public rotate ( UI\Point $point , float $amount )
public scale ( UI\Point $center , UI\Point $point )
public skew ( UI\Point $point , UI\Point $amount )
public translate ( UI\Point $point )
}

Inhaltsverzeichnis

  • UI\Draw\Matrix::invert — Invert Matrix
  • UI\Draw\Matrix::isInvertible — Invertible Detection
  • UI\Draw\Matrix::multiply — Multiply Matrix
  • UI\Draw\Matrix::rotate — Rotate Matrix
  • UI\Draw\Matrix::scale — Scale Matrix
  • UI\Draw\Matrix::skew — Skew Matrix
  • UI\Draw\Matrix::translate — Translate Matrix


Invert Matrix

  • « UI\Draw\Matrix
  • UI\Draw\Matrix::isInvertible »
  • PHP Manual
  • UI\Draw\Matrix
  • Invert Matrix

UI\Draw\Matrix::invert

(UI 0.9.9)

UI\Draw\Matrix::invert — Invert Matrix

Beschreibung

public UI\Draw\Matrix::invert ( )

Shall invert this matrix

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Invertible Detection

  • « UI\Draw\Matrix::invert
  • UI\Draw\Matrix::multiply »
  • PHP Manual
  • UI\Draw\Matrix
  • Invertible Detection

UI\Draw\Matrix::isInvertible

(UI 0.9.9)

UI\Draw\Matrix::isInvertible — Invertible Detection

Beschreibung

public UI\Draw\Matrix::isInvertible ( ) : bool

Shall detect if this Matrix may be inverted

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Multiply Matrix

  • « UI\Draw\Matrix::isInvertible
  • UI\Draw\Matrix::rotate »
  • PHP Manual
  • UI\Draw\Matrix
  • Multiply Matrix

UI\Draw\Matrix::multiply

(UI 0.9.9)

UI\Draw\Matrix::multiply — Multiply Matrix

Beschreibung

public UI\Draw\Matrix::multiply ( UI\Draw\Matrix $matrix ) : UI\Draw\Matrix

Shall multiply this matrix with the given matrix

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The new Matrix


Rotate Matrix

  • « UI\Draw\Matrix::multiply
  • UI\Draw\Matrix::scale »
  • PHP Manual
  • UI\Draw\Matrix
  • Rotate Matrix

UI\Draw\Matrix::rotate

(UI 0.9.9)

UI\Draw\Matrix::rotate — Rotate Matrix

Beschreibung

public UI\Draw\Matrix::rotate ( UI\Point $point , float $amount )

Shall rotate this Matrix

Parameter-Liste

point

amount


Scale Matrix

  • « UI\Draw\Matrix::rotate
  • UI\Draw\Matrix::skew »
  • PHP Manual
  • UI\Draw\Matrix
  • Scale Matrix

UI\Draw\Matrix::scale

(UI 0.9.9)

UI\Draw\Matrix::scale — Scale Matrix

Beschreibung

public UI\Draw\Matrix::scale ( UI\Point $center , UI\Point $point )

Shall scale this Matrix

Parameter-Liste

center

point


Skew Matrix

  • « UI\Draw\Matrix::scale
  • UI\Draw\Matrix::translate »
  • PHP Manual
  • UI\Draw\Matrix
  • Skew Matrix

UI\Draw\Matrix::skew

(UI 0.9.9)

UI\Draw\Matrix::skew — Skew Matrix

Beschreibung

public UI\Draw\Matrix::skew ( UI\Point $point , UI\Point $amount )

Shall skew this Matrix

Parameter-Liste

point

amount


Translate Matrix

  • « UI\Draw\Matrix::skew
  • UI\Draw\Color »
  • PHP Manual
  • UI\Draw\Matrix
  • Translate Matrix

UI\Draw\Matrix::translate

(UI 0.9.9)

UI\Draw\Matrix::translate — Translate Matrix

Beschreibung

public UI\Draw\Matrix::translate ( UI\Point $point )

Shall translate this Matrix

Parameter-Liste

point


Color Representation

(UI 0.9.9)

Einführung

Represents RGBA colours, individual channels are accessible via public properties.

Klassenbeschreibung

UI\Draw\Color {
/* Constants */
const int Red ;
const int Green ;
const int Blue ;
const int Alpha ;
/* Eigenschaften */
public $r ;
public $g ;
public $b ;
public $a ;
/* Constructor */
public __construct ( UI\Draw\Color $color = ? )
public __construct ( int $color = ? )
/* Methoden */
public getChannel ( int $channel ) : float
public setChannel ( int $channel , float $value ) : void
}

Eigenschaften

r

Provides access to the red channel

g

Provides access to the green channel

b

Provides access to the blue channel

a

Provides access to the alpha channel

Vordefinierte Konstanten

UI\Draw\Color::Red

Identifies the red channel

UI\Draw\Color::Green

Identifies the green channel

UI\Draw\Color::Blue

Identifies the blue channel

UI\Draw\Color::Alpha

Identifies the alpha channel

Inhaltsverzeichnis

  • UI\Draw\Color::__construct — Construct new Color
  • UI\Draw\Color::getChannel — Color Manipulation
  • UI\Draw\Color::setChannel — Color Manipulation


Construct new Color

  • « UI\Draw\Color
  • UI\Draw\Color::getChannel »
  • PHP Manual
  • UI\Draw\Color
  • Construct new Color

UI\Draw\Color::__construct

(UI 0.9.9)

UI\Draw\Color::__construct — Construct new Color

Beschreibung

public UI\Draw\Color::__construct ( UI\Draw\Color $color = ? )
public UI\Draw\Color::__construct ( int $color = ? )

Shall construct a new color

Parameter-Liste

color

May be UI\Draw\Color or RRGGBBAA


Color Manipulation

  • « UI\Draw\Color::__construct
  • UI\Draw\Color::setChannel »
  • PHP Manual
  • UI\Draw\Color
  • Color Manipulation

UI\Draw\Color::getChannel

(UI 0.9.9)

UI\Draw\Color::getChannel — Color Manipulation

Beschreibung

public UI\Draw\Color::getChannel ( int $channel ) : float

Shall retrieve the value for a channel

Parameter-Liste

channel

Constant channel identity

Rückgabewerte

The current value of the requested channel


Color Manipulation

  • « UI\Draw\Color::getChannel
  • UI\Draw\Stroke »
  • PHP Manual
  • UI\Draw\Color
  • Color Manipulation

UI\Draw\Color::setChannel

(UI 0.9.9)

UI\Draw\Color::setChannel — Color Manipulation

Beschreibung

public UI\Draw\Color::setChannel ( int $channel , float $value ) : void

Shall set the selected channel to the given value

Parameter-Liste

channel

Constant channel identity

value

The new value for the selected channel

Rückgabewerte


Draw Stroke

(UI 0.9.9)

Einführung

Holds the configuration for the Pen to perform a stroke

Klassenbeschreibung

UI\Draw\Stroke {
/* Constructor */
public __construct ( int $cap = UI\Draw\Line\Cap::Flat , int $join = UI\Draw\Line\Join::Miter , float $thickness = 1 , float $miterLimit = 10 )
/* Methoden */
public getCap ( ) : int
public getJoin ( ) : int
public getMiterLimit ( ) : float
public getThickness ( ) : float
public setCap ( int $cap )
public setJoin ( int $join )
public setMiterLimit ( float $limit )
public setThickness ( float $thickness )
}

Inhaltsverzeichnis

  • UI\Draw\Stroke::__construct — Construct a new Stroke
  • UI\Draw\Stroke::getCap — Get Line Cap
  • UI\Draw\Stroke::getJoin — Get Line Join
  • UI\Draw\Stroke::getMiterLimit — Get Miter Limit
  • UI\Draw\Stroke::getThickness — Get Thickness
  • UI\Draw\Stroke::setCap — Set Line Cap
  • UI\Draw\Stroke::setJoin — Set Line Join
  • UI\Draw\Stroke::setMiterLimit — Set Miter Limit
  • UI\Draw\Stroke::setThickness — Set Thickness


Construct a new Stroke

  • « UI\Draw\Stroke
  • UI\Draw\Stroke::getCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Construct a new Stroke

UI\Draw\Stroke::__construct

(UI 0.9.9)

UI\Draw\Stroke::__construct — Construct a new Stroke

Beschreibung

public UI\Draw\Stroke::__construct ( int $cap = UI\Draw\Line\Cap::Flat , int $join = UI\Draw\Line\Join::Miter , float $thickness = 1 , float $miterLimit = 10 )

Shall construct a new Stroke

Parameter-Liste

cap

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square

join

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel

thickness

The thickness of the stroke

miterLimit

Miter limit (default is sensible for all supported platforms)


Get Line Cap

  • « UI\Draw\Stroke::__construct
  • UI\Draw\Stroke::getJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Line Cap

UI\Draw\Stroke::getCap

(UI 0.9.9)

UI\Draw\Stroke::getCap — Get Line Cap

Beschreibung

public UI\Draw\Stroke::getCap ( ) : int

Shall retrieve the line cap setting of this Stroke

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square


Get Line Join

  • « UI\Draw\Stroke::getCap
  • UI\Draw\Stroke::getMiterLimit »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Line Join

UI\Draw\Stroke::getJoin

(UI 0.9.9)

UI\Draw\Stroke::getJoin — Get Line Join

Beschreibung

public UI\Draw\Stroke::getJoin ( ) : int

Shall retrieve the line join setting of this Stroke

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel


Get Miter Limit

  • « UI\Draw\Stroke::getJoin
  • UI\Draw\Stroke::getThickness »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Miter Limit

UI\Draw\Stroke::getMiterLimit

(UI 0.9.9)

UI\Draw\Stroke::getMiterLimit — Get Miter Limit

Beschreibung

public UI\Draw\Stroke::getMiterLimit ( ) : float

Shall retrieve the miter limit of this Stroke

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current miter limit


Get Thickness

  • « UI\Draw\Stroke::getMiterLimit
  • UI\Draw\Stroke::setCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Thickness

UI\Draw\Stroke::getThickness

(UI 0.9.9)

UI\Draw\Stroke::getThickness — Get Thickness

Beschreibung

public UI\Draw\Stroke::getThickness ( ) : float

Shall retrieve the thickness of this Stroke

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current thickness


Set Line Cap

  • « UI\Draw\Stroke::getThickness
  • UI\Draw\Stroke::setJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Line Cap

UI\Draw\Stroke::setCap

(UI 0.9.9)

UI\Draw\Stroke::setCap — Set Line Cap

Beschreibung

public UI\Draw\Stroke::setCap ( int $cap )

Shall set the line cap setting for this Stroke

Parameter-Liste

cap

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square


Set Line Join

  • « UI\Draw\Stroke::setCap
  • UI\Draw\Stroke::setMiterLimit »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Line Join

UI\Draw\Stroke::setJoin

(UI 0.9.9)

UI\Draw\Stroke::setJoin — Set Line Join

Beschreibung

public UI\Draw\Stroke::setJoin ( int $join )

Shall set the line join setting for this Stroke

Parameter-Liste

join

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel

Rückgabewerte


Set Miter Limit

  • « UI\Draw\Stroke::setJoin
  • UI\Draw\Stroke::setThickness »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Miter Limit

UI\Draw\Stroke::setMiterLimit

(UI 0.9.9)

UI\Draw\Stroke::setMiterLimit — Set Miter Limit

Beschreibung

public UI\Draw\Stroke::setMiterLimit ( float $limit )

Set the miter limit for this Stroke

Parameter-Liste

limit

The new limit


Set Thickness

  • « UI\Draw\Stroke::setMiterLimit
  • UI\Draw\Brush »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Thickness

UI\Draw\Stroke::setThickness

(UI 0.9.9)

UI\Draw\Stroke::setThickness — Set Thickness

Beschreibung

public UI\Draw\Stroke::setThickness ( float $thickness )

Shall set the thickness for this Stroke

Parameter-Liste

thickness

The new thickness


Brushes

(UI 0.9.9)

Einführung

Represents a solid color brush

Klassenbeschreibung

UI\Draw\Brush {
/* Constructor */
public __construct ( UI\Draw\Color $color )
public __construct ( int $color )
/* Methoden */
public getColor ( ) : UI\Draw\Color
public setColor ( UI\Draw\Color $color ) : void
public setColor ( int $color ) : void
}

Inhaltsverzeichnis

  • UI\Draw\Brush::__construct — Construct a new Brush
  • UI\Draw\Brush::getColor — Get Color
  • UI\Draw\Brush::setColor — Set Color


Construct a new Brush

  • « UI\Draw\Brush
  • UI\Draw\Brush::getColor »
  • PHP Manual
  • UI\Draw\Brush
  • Construct a new Brush

UI\Draw\Brush::__construct

(UI 0.9.9)

UI\Draw\Brush::__construct — Construct a new Brush

Beschreibung

public UI\Draw\Brush::__construct ( UI\Draw\Color $color )
public UI\Draw\Brush::__construct ( int $color )

Shall construct a solid brush using the given color

Parameter-Liste

color

Can be a UI\Draw\Color or RRGGBBAA


Get Color

  • « UI\Draw\Brush::__construct
  • UI\Draw\Brush::setColor »
  • PHP Manual
  • UI\Draw\Brush
  • Get Color

UI\Draw\Brush::getColor

(UI 0.9.9)

UI\Draw\Brush::getColor — Get Color

Beschreibung

public UI\Draw\Brush::getColor ( ) : UI\Draw\Color

Shall return a UI\Draw\Color for this brush

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

The current color of the brush


Set Color

  • « UI\Draw\Brush::getColor
  • UI\Draw\Brush\Gradient »
  • PHP Manual
  • UI\Draw\Brush
  • Set Color

UI\Draw\Brush::setColor

(UI 0.9.9)

UI\Draw\Brush::setColor — Set Color

Beschreibung

public UI\Draw\Brush::setColor ( UI\Draw\Color $color ) : void
public UI\Draw\Brush::setColor ( int $color ) : void

Shall set the color of this brush to the color provided

Parameter-Liste

color

Can be a UI\Draw\Color or RRGGBBAA

Rückgabewerte


Gradient Brushes

(UI 2.0.0)

Einführung

Abstract for gradient brushes

Klassenbeschreibung

abstract UI\Draw\Brush\Gradient extends UI\Draw\Brush {
/* Methoden */
public addStop ( float $position , UI\Draw\Color $color ) : int
public addStop ( float $position , int $color ) : int
public delStop ( int $index ) : int
public setStop ( int $index , float $position , UI\Draw\Color $color ) : bool
public setStop ( int $index , float $position , int $color ) : bool
/* Geerbte Methoden */
public UI\Draw\Brush::getColor ( ) : UI\Draw\Color
public UI\Draw\Brush::setColor ( UI\Draw\Color $color ) : void
public UI\Draw\Brush::setColor ( int $color ) : void
}

Inhaltsverzeichnis

  • UI\Draw\Brush\Gradient::addStop — Stop Manipulation
  • UI\Draw\Brush\Gradient::delStop — Stop Manipulation
  • UI\Draw\Brush\Gradient::setStop — Stop Manipulation


Stop Manipulation

  • « UI\Draw\Brush\Gradient
  • UI\Draw\Brush\Gradient::delStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::addStop

(UI 2.0.0)

UI\Draw\Brush\Gradient::addStop — Stop Manipulation

Beschreibung

public UI\Draw\Brush\Gradient::addStop ( float $position , UI\Draw\Color $color ) : int
public UI\Draw\Brush\Gradient::addStop ( float $position , int $color ) : int

Shall at a stop of the given color at the given position

Parameter-Liste

position

The position for the new stop

color

The color for the new stop, may be UI\Draw\Color or RRGGBBAA

Rückgabewerte

Total number of stops


Stop Manipulation

  • « UI\Draw\Brush\Gradient::addStop
  • UI\Draw\Brush\Gradient::setStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::delStop

(UI 2.0.0)

UI\Draw\Brush\Gradient::delStop — Stop Manipulation

Beschreibung

public UI\Draw\Brush\Gradient::delStop ( int $index ) : int

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.

Parameter-Liste

index

Rückgabewerte

Total number of stops


Stop Manipulation

  • « UI\Draw\Brush\Gradient::delStop
  • UI\Draw\Brush\LinearGradient »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::setStop

(UI 2.0.0)

UI\Draw\Brush\Gradient::setStop — Stop Manipulation

Beschreibung

public UI\Draw\Brush\Gradient::setStop ( int $index , float $position , UI\Draw\Color $color ) : bool
public UI\Draw\Brush\Gradient::setStop ( int $index , float $position , int $color ) : bool

Parameter-Liste

index

The index of the stop to set

position

The position for the stop

color

The color for the stop, may be UI\Draw\Color or RRGGBBAA

Rückgabewerte

Indication of success


Linear Gradient

(UI 2.0.0)

Einführung

Klassenbeschreibung

UI\Draw\Brush\LinearGradient extends UI\Draw\Brush\Gradient {
/* Constructor */
public __construct ( UI\Point $start , UI\Point $end )
/* Geerbte Methoden */
public UI\Draw\Brush\Gradient::addStop ( float $position , UI\Draw\Color $color ) : int
public UI\Draw\Brush\Gradient::addStop ( float $position , int $color ) : int
public UI\Draw\Brush\Gradient::delStop ( int $index ) : int
public UI\Draw\Brush\Gradient::setStop ( int $index , float $position , UI\Draw\Color $color ) : bool
public UI\Draw\Brush\Gradient::setStop ( int $index , float $position , int $color ) : bool
}

Inhaltsverzeichnis

  • UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient


Construct a Linear Gradient

  • « UI\Draw\Brush\LinearGradient
  • UI\Draw\Brush\RadialGradient »
  • PHP Manual
  • UI\Draw\Brush\LinearGradient
  • Construct a Linear Gradient

UI\Draw\Brush\LinearGradient::__construct

(UI 2.0.0)

UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient

Beschreibung

public UI\Draw\Brush\LinearGradient::__construct ( UI\Point $start , UI\Point $end )

Shall construct a new linear gradient

Parameter-Liste

start

end


Radial Gradient

(UI 2.0.0)

Einführung

Klassenbeschreibung

UI\Draw\Brush\RadialGradient extends UI\Draw\Brush\Gradient {
/* Constructor */
public __construct ( UI\Point $start , UI\Point $outer , float $radius )
/* Geerbte Methoden */
public UI\Draw\Brush\Gradient::addStop ( float $position , UI\Draw\Color $color ) : int
public UI\Draw\Brush\Gradient::addStop ( float $position , int $color ) : int
public UI\Draw\Brush\Gradient::delStop ( int $index ) : int
public UI\Draw\Brush\Gradient::setStop ( int $index , float $position , UI\Draw\Color $color ) : bool
public UI\Draw\Brush\Gradient::setStop ( int $index , float $position , int $color ) : bool
}

Inhaltsverzeichnis

  • UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient


Construct a new Radial Gradient

  • « UI\Draw\Brush\RadialGradient
  • UI\Draw\Text\Layout »
  • PHP Manual
  • UI\Draw\Brush\RadialGradient
  • Construct a new Radial Gradient

UI\Draw\Brush\RadialGradient::__construct

(UI 2.0.0)

UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient

Beschreibung

public UI\Draw\Brush\RadialGradient::__construct ( UI\Point $start , UI\Point $outer , float $radius )

Shall construct a new radial gradient

Parameter-Liste

start

outer

radius


Represents Text Layout

(UI 0.9.9)

Einführung

A Text Layout represents the layout of text which will be drawn by the Pen

Klassenbeschreibung

UI\Draw\Text\Layout {
/* Constructor */
public __construct ( string $text , UI\Draw\Text\Font $font , float $width )
/* Methoden */
public setColor ( UI\Draw\Color $color , int $start = 0 , int $end = ? )
public setColor ( int $color , int $start = 0 , int $end = ? )
public setWidth ( float $width )
}

Inhaltsverzeichnis

  • UI\Draw\Text\Layout::__construct — Construct a new Text Layout
  • UI\Draw\Text\Layout::setColor — Set Color
  • UI\Draw\Text\Layout::setWidth — Set Width


Construct a new Text Layout

  • « UI\Draw\Text\Layout
  • UI\Draw\Text\Layout::setColor »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Construct a new Text Layout

UI\Draw\Text\Layout::__construct

(UI 0.9.9)

UI\Draw\Text\Layout::__construct — Construct a new Text Layout

Beschreibung

public UI\Draw\Text\Layout::__construct ( string $text , UI\Draw\Text\Font $font , float $width )

Shall construct a new Text Layout

Parameter-Liste

text

The text for the layout

font

The font to use for writing

width

The width of the layout


Set Color

  • « UI\Draw\Text\Layout::__construct
  • UI\Draw\Text\Layout::setWidth »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Set Color

UI\Draw\Text\Layout::setColor

(UI 0.9.9)

UI\Draw\Text\Layout::setColor — Set Color

Beschreibung

public UI\Draw\Text\Layout::setColor ( UI\Draw\Color $color , int $start = 0 , int $end = ? )
public UI\Draw\Text\Layout::setColor ( int $color , int $start = 0 , int $end = ? )

Shall set the Color for all of, or a range of the text in the Layout

Parameter-Liste

color

The color to use

start

The starting character

end

The ending character, by default the end of the string


Set Width

  • « UI\Draw\Text\Layout::setColor
  • UI\Draw\Text\Font »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Set Width

UI\Draw\Text\Layout::setWidth

(UI 0.9.9)

UI\Draw\Text\Layout::setWidth — Set Width

Beschreibung

public UI\Draw\Text\Layout::setWidth ( float $width )

Shall set the width of this Text Layout

Parameter-Liste

width

The new width


Represents a Font

(UI 0.9.9)

Einführung

Loads a described font

Klassenbeschreibung

UI\Draw\Text\Font {
/* Constructor */
public __construct ( UI\Draw\Text\Font\Descriptor $descriptor )
/* Methoden */
public getAscent ( ) : float
public getDescent ( ) : float
public getLeading ( ) : float
public getUnderlinePosition ( ) : float
public getUnderlineThickness ( ) : float
}

Inhaltsverzeichnis

  • UI\Draw\Text\Font::__construct — Construct a new Font
  • UI\Draw\Text\Font::getAscent — Font Metrics
  • UI\Draw\Text\Font::getDescent — Font Metrics
  • UI\Draw\Text\Font::getLeading — Font Metrics
  • UI\Draw\Text\Font::getUnderlinePosition — Font Metrics
  • UI\Draw\Text\Font::getUnderlineThickness — Font Metrics


Construct a new Font

  • « UI\Draw\Text\Font
  • UI\Draw\Text\Font::getAscent »
  • PHP Manual
  • UI\Draw\Text\Font
  • Construct a new Font

UI\Draw\Text\Font::__construct

(UI 0.9.9)

UI\Draw\Text\Font::__construct — Construct a new Font

Beschreibung

public UI\Draw\Text\Font::__construct ( UI\Draw\Text\Font\Descriptor $descriptor )

Shall construct a new Font using the given descriptor

Parameter-Liste

descriptor

The descriptor for the Font


Font Metrics

  • « UI\Draw\Text\Font::__construct
  • UI\Draw\Text\Font::getDescent »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getAscent

(UI 1.0.3)

UI\Draw\Text\Font::getAscent — Font Metrics

Beschreibung

public UI\Draw\Text\Font::getAscent ( ) : float

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Font Metrics

  • « UI\Draw\Text\Font::getAscent
  • UI\Draw\Text\Font::getLeading »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getDescent

(UI 1.0.3)

UI\Draw\Text\Font::getDescent — Font Metrics

Beschreibung

public UI\Draw\Text\Font::getDescent ( ) : float

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Font Metrics

  • « UI\Draw\Text\Font::getDescent
  • UI\Draw\Text\Font::getUnderlinePosition »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getLeading

(UI 1.0.3)

UI\Draw\Text\Font::getLeading — Font Metrics

Beschreibung

public UI\Draw\Text\Font::getLeading ( ) : float

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Font Metrics

  • « UI\Draw\Text\Font::getLeading
  • UI\Draw\Text\Font::getUnderlineThickness »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getUnderlinePosition

(UI 1.0.3)

UI\Draw\Text\Font::getUnderlinePosition — Font Metrics

Beschreibung

public UI\Draw\Text\Font::getUnderlinePosition ( ) : float

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Font Metrics

  • « UI\Draw\Text\Font::getUnderlinePosition
  • UI\Draw\Text\Font\Descriptor »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getUnderlineThickness

(UI 1.0.3)

UI\Draw\Text\Font::getUnderlineThickness — Font Metrics

Beschreibung

public UI\Draw\Text\Font::getUnderlineThickness ( ) : float

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Font Descriptor

(UI 0.9.9)

Einführung

Describes a font

Klassenbeschreibung

UI\Draw\Text\Font\Descriptor {
/* Constructor */
public __construct ( string $family , float $size , int $weight = UI\Draw\Text\Font\Weight::Normal , int $italic = UI\Draw\Text\Font\Italic::Normal , int $stretch = UI\Draw\Text\Font\Stretch::Normal )
/* Methoden */
public getFamily ( ) : string
public getItalic ( ) : int
public getSize ( ) : float
public getStretch ( ) : int
public getWeight ( ) : int
}

Inhaltsverzeichnis

  • UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family
  • UI\Draw\Text\Font\Descriptor::getItalic — Style Detection
  • UI\Draw\Text\Font\Descriptor::getSize — Size Detection
  • UI\Draw\Text\Font\Descriptor::getStretch — Style Detection
  • UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection


Construct a new Font Descriptor

  • « UI\Draw\Text\Font\Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Construct a new Font Descriptor

UI\Draw\Text\Font\Descriptor::__construct

(UI 0.9.9)

UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor

Beschreibung

public UI\Draw\Text\Font\Descriptor::__construct ( string $family , float $size , int $weight = UI\Draw\Text\Font\Weight::Normal , int $italic = UI\Draw\Text\Font\Italic::Normal , int $stretch = UI\Draw\Text\Font\Stretch::Normal )

Shall construct a new Font Descriptor

Parameter-Liste

family

The name of a valid family of fonts

size

The preferred size

weight

UI\Draw\Text\Font\Weight constant

italic

UI\Draw\Text\Font\Italic constant

stretch

UI\Draw\Text\Font\Stretch constant


Get Font Family

  • « UI\Draw\Text\Font\Descriptor::__construct
  • UI\Draw\Text\Font\Descriptor::getItalic »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Get Font Family

UI\Draw\Text\Font\Descriptor::getFamily

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family

Beschreibung

public UI\Draw\Text\Font\Descriptor::getFamily ( ) : string

Shall return the requested font family

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Style Detection

  • « UI\Draw\Text\Font\Descriptor::getFamily
  • UI\Draw\Text\Font\Descriptor::getSize »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Style Detection

UI\Draw\Text\Font\Descriptor::getItalic

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getItalic — Style Detection

Beschreibung

public UI\Draw\Text\Font\Descriptor::getItalic ( ) : int

Shall return constant setting

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Size Detection

  • « UI\Draw\Text\Font\Descriptor::getItalic
  • UI\Draw\Text\Font\Descriptor::getStretch »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Size Detection

UI\Draw\Text\Font\Descriptor::getSize

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getSize — Size Detection

Beschreibung

public UI\Draw\Text\Font\Descriptor::getSize ( ) : float

Shall return the requested size

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Style Detection

  • « UI\Draw\Text\Font\Descriptor::getSize
  • UI\Draw\Text\Font\Descriptor::getWeight »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Style Detection

UI\Draw\Text\Font\Descriptor::getStretch

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getStretch — Style Detection

Beschreibung

public UI\Draw\Text\Font\Descriptor::getStretch ( ) : int

Shall return requested stretch

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Weight Detection

  • « UI\Draw\Text\Font\Descriptor::getStretch
  • UI Funktionen »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Weight Detection

UI\Draw\Text\Font\Descriptor::getWeight

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection

Beschreibung

public UI\Draw\Text\Font\Descriptor::getWeight ( ) : int

Shall return requested weight

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


UI Funktionen

Inhaltsverzeichnis

  • UI\Draw\Text\Font\fontFamilies — Retrieve Font Families
  • UI\quit — Quit UI Loop
  • UI\run — Enter UI Loop


Retrieve Font Families

  • « UI Funktionen
  • UI\quit »
  • PHP Manual
  • UI Funktionen
  • Retrieve Font Families

UI\Draw\Text\Font\fontFamilies

(UI 0.9.9)

UI\Draw\Text\Font\fontFamilies — Retrieve Font Families

Beschreibung

UI\Draw\Text\Font\fontFamilies ( ) : array

Returns an array of valid font families for the current system

Parameter-Liste

Diese Funktion besitzt keine Parameter.


Quit UI Loop

  • « UI\Draw\Text\Font\fontFamilies
  • UI\run »
  • PHP Manual
  • UI Funktionen
  • Quit UI Loop

UI\quit

(UI 2.0.0)

UI\quit — Quit UI Loop

Beschreibung

UI\quit ( ) : void

Shall cause the main loop to be exited

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte


Enter UI Loop

  • « UI\quit
  • UI\Draw\Text\Font\Weight »
  • PHP Manual
  • UI Funktionen
  • Enter UI Loop

UI\run

(UI 2.0.0)

UI\run — Enter UI Loop

Beschreibung

UI\run ( int $flags = ? ) : void

Shall cause PHP to enter into the main loop, by default control will not be returned to the caller

Parameter-Liste

flags

Set UI\Loop to return control, and UI\Wait to return control after waiting

Rückgabewerte


Font Weight Settings

(UI 0.9.9)

Einführung

Klassenbeschreibung

final UI\Draw\Text\Font\Weight {
/* Constants */
const int Thin ;
const int UltraLight ;
const int Light ;
const int Book ;
const int Normal ;
const int Medium ;
const int SemiBold ;
const int Bold ;
const int UltraBold ;
const int Heavy ;
const int UltraHeavy ;
}


Italic Font Settings

(UI 0.9.9)

Einführung

Klassenbeschreibung

final UI\Draw\Text\Font\Italic {
/* Constants */
const int Normal = 0 ;
const int Oblique = 1 ;
const int Italic = 2 ;
}


Font Stretch Settings

(UI 0.9.9)

Einführung

Klassenbeschreibung

final UI\Draw\Text\Font\Stretch {
/* Constants */
const int UltraCondensed = 0 ;
const int ExtraCondensed = 1 ;
const int Condensed = 2 ;
const int SemiCondensed = 3 ;
const int Normal = 4 ;
const int SemiExpanded = 5 ;
const int Expanded = 6 ;
const int ExtraExpanded = 7 ;
const int UltraExpanded = 8 ;
}


Line Cap Settings

(UI 0.9.9)

Einführung

Klassenbeschreibung

final UI\Draw\Line\Cap {
/* Constants */
const int Flat ;
const int Round ;
const int Square ;
}


Line Join Settings

(UI 0.9.9)

Einführung

Klassenbeschreibung

final UI\Draw\Line\Join {
/* Constants */
const int Miter ;
const int Round ;
const int Bevel ;
}


Key Identifiers

(UI 1.0.0)

Einführung

Klassenbeschreibung

final UI\Key {
/* Constants */
const int Escape ;
const int Insert ;
const int Delete ;
const int Home ;
const int End ;
const int PageUp ;
const int PageDown ;
const int Up ;
const int Down ;
const int Left ;
const int Right ;
const int F1 ;
const int F2 ;
const int F3 ;
const int F4 ;
const int F5 ;
const int F6 ;
const int F7 ;
const int F8 ;
const int F9 ;
const int F10 ;
const int F11 ;
const int F12 ;
const int N0 ;
const int N1 ;
const int N2 ;
const int N3 ;
const int N4 ;
const int N5 ;
const int N6 ;
const int N7 ;
const int N8 ;
const int N9 ;
const int NDot ;
const int NEnter ;
const int NAdd ;
const int NSubtract ;
const int NMultiply ;
const int NDivide ;
}


InvalidArgumentException

(UI 1.0.3)

Einführung

Klassenbeschreibung

UI\Exception\InvalidArgumentException extends InvalidArgumentException implements Throwable {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


RuntimeException

(UI 1.0.3)

Einführung

Klassenbeschreibung

UI\Exception\RuntimeException extends RuntimeException implements Throwable {
/* Geerbte Eigenschaften */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Geerbte Methoden */
final public Exception::getMessage ( ) : string
final public Exception::getPrevious ( ) : Throwable
final public Exception::getCode ( ) : mixed
final public Exception::getFile ( ) : string
final public Exception::getLine ( ) : int
final public Exception::getTrace ( ) : array
final public Exception::getTraceAsString ( ) : string
public Exception::__toString ( ) : string
final private Exception::__clone ( ) : void
}


FAQ: Frequently Asked Questions

  • Allgemeine Informationen
  • Mailing-Listen
  • PHP beziehen
  • PHP und Datenbanken
  • Installation
  • Probleme bei der Kompilierung
  • PHP verwenden
  • Password Hashing — Sicheres Password Hashing
  • PHP und HTML
  • PHP und COM
  • Verschiedene Fragen


Allgemeine Informationen

Dieses Kapitel beinhaltet allgemeine Fragen zu PHP: Was es ist und was es tut.

  1. Was ist PHP?
  2. Für was steht PHP?
  3. Wie stehen die verschiedenen PHP-Versionen zueinander?
  4. Kann ich mehrere verschiedene PHP-Versionen zur selben Zeit laufen lassen?
  5. Ich glaube, ich habe einen Bug gefunden!
Was ist PHP?

Aus dem Vorwort des Handbuches:

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

Für was steht PHP?

PHP steht für PHP: Hypertext Preprocessor. Das verwirrt einige Menschen, da das erste Wort der Abkürzung die Abkürzung ist. Dieser Typ von Abkürzung wird rekursive Abkürzung genannt. Wer sich weiter für das Thema der rekursiven Abkürzungen interessiert, findet im » Free On-Line Dictionary of Computing oder der » Wikipedia. weitere Informationen dazu.

Wie stehen die verschiedenen PHP-Versionen zueinander?

PHP/FI 2.0 ist eine frühe und nicht mehr unterstützte Version von PHP. PHP 3 ist der Nachfolger von PHP/FI 2.0 und wesentlich besser. PHP 8 ist die aktuelle Generation von PHP, die die Zend Engine 3 als Sprachkern, die neben weiteren Verbesserungen eine deutlich verbesserte Objektorientierung bietet.

Kann ich mehrere verschiedene PHP-Versionen zur selben Zeit laufen lassen?

Ja. Weitere Informationen dazu finden sich in der Datei INSTALL, die der Source-Distribution von PHP beiliegt.

Ich glaube, ich habe einen Bug gefunden!

Sie sollten die PHP Bug-Datenbank aufrufen und herausfinden, ob es sich bei dem Bug um einen bereits bekannten Bug handelt. Ist der Bug noch nicht bekannt, können Sie diesen über das Reportformular posten. Wenn Sie das Reportformular verwenden, bekommt ihr Bug automatisch eine Nummer zugewiesen, so das Sie später wiederkehren und Anhand der Nummer herausfinden können, ob der Bug gefixed wurde. Die Bug-Datenbank ist unter » https://bugs.php.net/ zu finden.


Mailing-Listen

In dieser Rubrik finden Sie Informationen, wie Sie mit der PHP-Community in Kontakt treten können. Wir empfehlen Ihnen die Mailing-Listen.

  1. Gibt es PHP-Mailing-Listen?
  2. Gibt es auch andere Communities?
  3. Kann ich meine eigene PHP-Mailing-Liste starten?
  4. Hilfe! Ich kann eine der Mailing-Listen nicht abonnieren / abbestellen!
  5. Gibt es ein Archiv der Mailing-Listen?
  6. Was kann ich die Mailing-Listen fragen?
  7. Welche Informationen soll ich mitschicken, wenn ich an die Mailing-Liste schreibe?
Gibt es PHP-Mailing-Listen?

Natürlich! Es gibt eine ganze Reihe von Mailing-Listen für verschiedene Themen. Die wichtigsten Community-Mailing-Listen finden Sie auf unserer » Mailing-Listen-Seite.

Die allgemeinste Mailing-Liste ist php-general. Um diese Liste zu abonnieren, schicken Sie eine leere E-Mail an » php-general-subscribe@lists.php.net. Um die Liste abzubestellen, schicken Sie eine leere E-Mail an » php-general-unsubscribe@lists.php.net.

Sie können die Listen auch über das Web-Interface auf unserer » Mailing-Listen-Seite abonnieren oder abbestellen. Abmeldehinweise finden Sie auch im Fuß jeder Mailimg-Listen-Nachricht.

Gibt es auch andere Communities?

Auf der ganzen Welt gibt es unzählige Communities, die sich mit PHP beschäftigen. Links zu solchen Ressourcen (und weitergehende Informationen) finden Sie auf unserer » Support-Seite.

Kann ich meine eigene PHP-Mailing-Liste starten?

Ja. Genauer gesagt: Wir erlauben es nicht nur, wir unterstützen es sogar! Anderen durch das eigene Wissen und die eigene Erfahrung mit PHP zu helfen, hilft, das Wachstum und die Entwicklung der globalen PHP-Community und der Sprache selbst zu beschleunigen.

Hilfe! Ich kann eine der Mailing-Listen nicht abonnieren / abbestellen!

Wenn Sie Probleme haben, eine Mailing-Liste zu abonnieren oder abzubestellen, dann kann es daran liegen, dass die Mailing-Listen-Software nicht herausfinden kann, welche E-Mail-Adresse benutzt werden soll. Wenn Ihre E-Mail-Adresse joeblow@example.com lautet, und Sie php-general abonnieren möchten, können Sie Ihren Abo-Wunsch an php-general-subscribe-joeblow=example.com@lists.php.net schicken; falls Sie die Liste abbestellen möchten, können Sie eine E-Mail an php-general-unsubscribe-joeblow=example.com@lists.php.net schicken. Für die anderen Mailing-Listen können Sie ähnliche Adressen benutzen.

Der häufigste Grund dafür, dass die Leute Probleme haben, eine unserer Mailing-Listen abzubestellen, entsteht durch die Nutzung von E-Mail-Weiterleitungen. Wenn Ihre E-Mail-Adresse z.B. danbrown@example.com ist, aber Sie sich zur Mailing-Liste mit der Weiterleitung php-lists@example.com angemeldet haben und Sie diese Adresse an danbrown@example.com weiterleiten, so wird der Versuch, sich mit danbrown@example.com abzumelden, scheitern. Stattdessen müssen Sie die Adresse abmelden, an die die E-Mail gesendet wird - in diesem Fall also php-lists@example.com.

Gibt es ein Archiv der Mailing-Listen?

Ja, Sie finden eine Liste zu einigen Archiv-Seiten auf unserer » Mailing-Listen-Seite. Sie finden außerdem dutzende Seiten, die den Inhalt unserer Mailing-Liste archivieren und/oder syndizieren, indem Sie Ihre favorisierte Internet-Suchmaschine nutzen und nach "php mailing list archives" suchen.

Alle Mailing-Listen-Artikel werden auch als News-Postings archiviert. Den News-Server können Sie mit einem Newsreader unter » news://news.php.net/ erreichen. Es gibt auch ein experimentelles Web-Interface für den Newsserver unter » http://news.php.net/.

Was kann ich die Mailing-Listen fragen?

PHP wird immer umfangreicher und beliebter. Aus diesem Grund kann der Verkehr auf der php-general-Mailing-Liste sehr hoch sein. Zur Zeit werden täglich zwischen 75 und 200 Artikel versendet, manchmal sogar noch mehr. Daher ist es in jedermanns Sinn, wenn Sie die Liste nur dann nutzen, wenn Sie nirgendwo eine Antwort auf Ihre Frage gefunden haben.

Bevor Sie an die Liste schreiben, schauen Sie bitte in diese FAQ und das Handbuch, ob Sie dort vielleicht schon die gesuchte Antwort finden. Falls Sie dort nicht fündig werden, schauen Sie bitte in die Archive der Mailing-Listen (siehe oben). Wenn Sie Probleme mit der Installation oder Konfiguration von PHP haben, stellen Sie bitte sicher, dass Sie die mitgelieferte Dokumentation und die READMEs gelesen haben. Wenn Sie jetzt immer noch keine Antwort gefunden haben, können Sie Ihre Frage gerne an die passende Mailing-Liste schicken.

Um sicherzustellen, dass Sie die besten Antworten erhalten (und um die Wahrscheinlichkeit zu senken, dass Sie die anderen Entwickler frustrieren), prüfen Sie bitte, ob Sie Ihre Frage an die passende Mailing-Liste schicken. Wenn Sie z.B. Probleme mit der Installation von PHP haben, sollten Sie Ihre Frage an die php-install-Mailing-Liste schicken. Eine Warnung: Einige Listen haben ähnliche Name, aber komplett unterschiedliche Nutzungen; eine Frage zu PHP-Skripten unter Windows sollte an die Windows-PHP-Nutzer-Liste, aber nicht an die Windows-Internals-Liste geschickt werden.

Bevor Sie eine Frage stellen, schauen Sie sich bitte die Seite » How To Ask Questions The Smart Way an.

Welche Informationen soll ich mitschicken, wenn ich an die Mailing-Liste schreibe?

E-Mails wie "Hilfe, ich schaffe es nicht, PHP ans Laufen zu bekommen. Was habe ich falsch gemacht?" sollten unbedingt vermieden werden. Wenn Sie solche Probleme haben, müssen Sie das benutzte Betriebssystem und die PHP-Version, die Sie zu benutzen versuchen, sowie, wie Sie PHP erhalten haben (vorkompiliert, Git, RPMs etc.), angeben. Außerdem sollten Sie angeben, was Sie bisher schon versucht haben und welche Fehlermeldung sie erhalten haben.

Dies gilt auch für alle anderen Probleme. Sie müssen immer angeben, was Sie getan haben und was Sie zu tun versuchen. Außerdem müssen Sie alle erhaltenen Fehlermeldungen angeben. Wenn Sie Probleme mit Ihren Quelltexten haben, müssen Sie den Teil, der nicht funktioniert, mitschicken. Allerdings sollten Sie auch nicht mehr Code als nötig mitschicken! Dadurch würde Ihre E-Mail schlecht lesbar und viele Leute könnten Ihre Frage deswegen ignorieren. Falls Sie sich unsicher sind, wie viele Informationen Sie schicken sollen, schicken Sie so viel, wie Ihrer Meinung nach relevant für das aktuelle Problem relevant ist. Ggf. sollten Sie nach Anforderung weitere Informationen schicken.

Ein weiterer wichtiger Punkt ist auch, dass Sie Ihr Problem in der Betreff-Zeile zusammenfassen. Ein Betreff wie "Hilfe!" oder "Was ist das Problem hier?" wird mit Sicherheit von einem Großteil der Leser ignoriert werden.

Außerdem bitten wir Sie, die Seite » How To Ask Questions The Smart Way zu lesen, da dies auch für Sie selbst eine große Hilfe sein kann.


PHP beziehen

Diese Rubrik behandelt Downloadmöglichkeiten für die verschiedenen Betriebssysteme.

  1. Woher kann ich PHP beziehen?
  2. Sind kompilierte Binärversionen verfügbar?
  3. Woher bekommen ich die Bibliotheken, die benötigt werden, um einige der optionalen PHP-Erweiterungen zu kompilieren?
  4. Wie bekomme ich diese Bibliotheken zum Laufen?
  5. Ich habe die aktuellste Version des PHP-Quellcodes vom Git-Repository heruntergeladen. Was benötige ich jetzt, um PHP auf meinem Windowssystem zu kompilieren?
  6. Wo finde ich eine Browser Capabilities Datei?
  7. Was bedeutet "thread safety" beim Herunterladen von PHP?
Woher kann ich PHP beziehen?

Sie können PHP von jedem der Mitglieder des PHP-Netzwerks herunteraden. Diese finden Sie unter » https://www.php.net/. Sie können weiterhin mittels anonymem Git die allerneuste Version des Quellcodes herunterladen. Für weitere Informationen besuchen Sie diese Seite: » https://www.php.net/git.php.

Sind kompilierte Binärversionen verfügbar?

Wir bieten nur Binärversionen für Windowssysteme an, da wir PHP nicht für jede größere Linux/Unix-Plattform mit jeder vorstellbaren Kombination an Erweiterungen kompilieren können. Bitte beachten Sie auch, dass viele Linux-Distributionen heutzutage schon PHP integriert haben. Windows Binärdateien können von unserer » Downloadseite heruntergeladen werden, passende Linux-Binärversionen finden Sie auf der Webseite Ihrer Distribution.

Woher bekommen ich die Bibliotheken, die benötigt werden, um einige der optionalen PHP-Erweiterungen zu kompilieren?

Hinweis: Die mit einem * markierten Bibliotheken sind nach unserem Wissen nicht threadsicher; ihre Verwendung wird in einer multi-threaded Umgebung nicht empfohlen.

  • » LDAP (Unix).
  • » LDAP (Unix/Win) : Mozilla Directory (LDAP) SDK
  • » free LDAP server.
  • » Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.
  • » SNMP* (Unix): .
  • » GD (Unix/Win).
  • » mSQL* (Unix).
  • » PostgreSQL (Unix).
  • » IMAP* (Win/Unix).
  • » Sybase-CT* (Linux, libc5) : Available locally.
  • » FreeType (libttf):.
  • » ZLib (Unix/Win32).
  • » expat XML parser (Unix/Win32).
  • » PDFLib.
  • » mcrypt.
  • » mhash.
  • » t1lib.
  • » dmalloc.
  • » aspell.
  • » readline.

Wie bekomme ich diese Bibliotheken zum Laufen?

Sie sollten den Anweisungen, die mit der Bibliothek mitgeliefert werden, folgen. Manche dieser Bibliotheken (z.B. die GD Bibliothek) werden automatisch erkannt, wenn Sie das PHP 'configure'-Script ausführen. Andere müssen Sie mittels der '--with-EXTENSION'-Option von 'configure' aktivieren. 'configure --help' liefert Ihnen eine Auflistung.

Ich habe die aktuellste Version des PHP-Quellcodes vom Git-Repository heruntergeladen. Was benötige ich jetzt, um PHP auf meinem Windowssystem zu kompilieren?

Die aktuelle Anleitung ist im PHP Wiki zu finden: » Step by Step Build Instructions

Wo finde ich eine Browser Capabilities Datei?

Sie finden eine browscap.ini Datei unter » http://browscap.org/.

Was bedeutet "thread safety" beim Herunterladen von PHP?

Thread-Sicherheit bedeutet, dass PHP in einer einer Multithread-Webserver Umgebung wie z.B. Apache2 unter Windows funktioniert. Thread-Sicherheit funktioniert, indem eine lokale Kopie des Speichers in jedem Thread angelegt wird, so dass die Daten nicht mit anderen Threads kollidieren.

Was muss ich wählen? Wenn Sie PHP als CGI-Version ausführen wollen, dann benötigen Sie keine Thread-Sicherheit, da die Binärdatei bei jeder Anfrage aufgerufen wird. Für Multithread-Webserver, wie z.B. IIS5 und IIS6 sollten Sie die threadsichere Version von PHP nutzen.


PHP und Datenbanken

Dieser Abschnitt enthält häufige Fragen über die Verbindung von PHP und Datenbanken. PHP kann in der Tat auf praktisch jede verfügbare Datenbank zugreifen.

  1. Ich habe gehört, dass es möglich ist, den Microsoft SQL-Server aus PHP anzusprechen. Wie?
  2. Kann ich auf Microsoft Access-Datenbanken zugreifen?
  3. Wieso wird von der Verwendung der MySQL-Erweiterung (ext/mysql), die ich seit über 10 Jahren verwendet habe, abgeraten? Ist diese veraltet? Was soll ich stattdessen tun? Wie kann ich umstellen?
  4. Wieso bekomme ich so eine Fehlermeldung: "Warning: 0 is not a MySQL result index in <file> on line <x>" or "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>"?
Ich habe gehört, dass es möglich ist, den Microsoft SQL-Server aus PHP anzusprechen. Wie?

Auf Unix-Rechnern können Sie PDO_ODBC oder die Unified ODBC API verwenden.

Auf Windows-Rechnern können Sie ebenfalls PDO_SQLSRV oder SQLSRV verwenden.

Sehen Sie sich auch die Antwort auf die nächste Frage an.

Kann ich auf Microsoft Access-Datenbanken zugreifen?

Ja. Sie haben bereits alle nötigen Werkzeuge, wenn sie komplett unter Windows 9x/Me oder NT/2000 arbeiten, wo Sie ODBC und die ODBC-Treiber von Microsoft benutzen können, um auf Microsoft Access-Datenbanken zuzugreifen.

Wenn Sie PHP auf einem Unix-Rechner betreiben und auf MS Access auf einem Windows-Rechner zugreifen wollen, brauchen sie ODBC-Treiber für Unix. » OpenLink Software bietet Unix-basierte ODBC-Treiber an, die dazu geeignet sind.

Eine weitere Alternative ist es, einen SQL-Server zu benutzen, der ODBC-Treiber für Windows anbietet und diesen dann zu benutzen, um die Daten dort abzulegen, um sie dann von Microsoft Access (über ODBC) und PHP (mit den mitgelieferten Treibern) aus anzusprechen, oder ein dazwischengeschaltetetes Dateiformat zu benutzen, das sowohl Access als auch PHP verstehen, beispielsweise Plaintext oder dBase-Datenbanken. Zu diesem Punkt schreibt Tim Hayes von OpenLink Software:

Eine andere Datenbank als vermittelndes Element zu benutzen ist keine gute Idee, wenn Sie ODBC direkt von PHP aus zur Datenbank benutzen können - etwa mit den Openlink-Treibern. Wenn Sie wirklich ein zwischengeschaltetes Dateiformat benötigen, hat Openlink jetzt Virtuoso (eine virtuelle Datenbank) für NT, Linux und andere Unix-Plattformen herausgebracht. Bitte besuchen Sie unsere » Webseite, wenn Sie Virtuoso kostenlos herunterladen wollen.

Eine Möglichkeit, die sich als erfolgreich herausgestellt hat, ist die Benutzung von MySQL und den MyODBC-Treibern unter Windows, um die Datenbanken zu synchronisieren. Steve Lawrence schreibt dazu:

  • Installieren Sie MySQL wie in der Dokumentation beschrieben auf ihrem System. Die neueste Version finden Sie auf » www.mysql.com Es ist keine spezielle Konfiguration nötig, außer dass Sie beim Erzeugen einer Datenbank und der Einrichtung des Benutzeraccounts im Host-Feld ein % oder den Hostnamen des Windows-Computers, von dem aus Sie zugreifen möchten, eintragen sollten. Notieren Sie sich den Servernamen, Benutzernamen und das Passwort.
  • Laden Sie die MyODBC for Windows-Treiber von der MySQL-Seite herunter. Installieren Sie ihn auf ihrem Windows-Rechner. Sie können die Funktionsfähigkeit mit den mitgelieferten Programmen testen.
  • Erstellen Sie eine Benutzer- oder System-DSN in den ODBC-Optionen in der Systemsteuerung. Überlegen Sie sich einen DSN-Namen und geben Sie den Hostnamen, Benutzernamen, Passwort, Port, etc ihrer MySQL-Datenbank an, die Sie im 1. Schritt konfiguriert haben.
  • Installieren Sie Access als Vollinstallation. Das stellt sicher, dass Sie die richtigen Add-Ins haben. Zumindest benötigen Sie die ODBC-Unterstützung und den Linked-Table-Manager.
  • Jetzt zum lustigen Teil! Erstellen Sie eine neue Access-Datenbank. Rechtsklicken Sie im Tabellenfenster und wählen Sie Link Tables/Tabellen verknüpfen oder im Menü Datei den Punkt Get External Data und dann Link Tables/Tabellen verknüpfen. Wenn das Dateibrowser-Fenster erscheint, wählen Sie Dateien vom Typ: ODBC. Wählen Sie System-DSN und den Namen der DSN, die Sie in Schritt 3 erstellt haben. Wählen sie die zu verknüpfende Tabelle, klicken Sie auf OK und Sie können jetzt die Tabelle öffnen und Daten auf Ihrem MySQL-Server hinzufügen/löschen/ändern. Sie können auch Abfragen erzeugen, Tabellen importieren und exportieren und Formulare und Reports generieren, etc.

Tipps und Tricks:

  • Sie können Ihre Tabellen in Access erstellen und nach MySQL exportieren und Sie dann wieder verknüpfen. Das erleichtert das Erstellen von Tabellen.
  • Wenn Sie Tabellen in Access erstellen, müssen Sie einen Primärschlüssel definieren, wenn Sie über Access Schreibzugriff haben wollen. Vergewissern Sie sich, dass sie einen Primärschlüssel in MySQL erzeugen, bevor Sie die Tabelle in Access verknüpfen.
  • Wenn Sie ein Tabelle in MySQL ändern, müssen Sie sie in Access neu verknüpfen. Rufen Sie Tools>add-ins>linked table manager auf, suchen Sie ihre ODBC-DSN, und wählen Sie die Tabelle aus, die neu verknüpft werden soll. Sie können Ihre DSN-Quelle auch verschieben, wenn Sie die "always prompt for new location"-Checkbox ankreuzen, bevor Sie OK klicken.

Wieso wird von der Verwendung der MySQL-Erweiterung (ext/mysql), die ich seit über 10 Jahren verwendet habe, abgeraten? Ist diese veraltet? Was soll ich stattdessen tun? Wie kann ich umstellen?

Es gibt drei MySQL-Erweiterungen, die im Abschnitt Wählen einer MySQL-API beschrieben werden. Die alte API sollte nicht verwendet werden und ist seit PHP 5.5.0 als veraltet markiert und wurde mit PHP 7.0.0 nach PECL verschoben. Es wird stark dazu geraten beim Schreiben von neuem Code entweder mysqli oder PDO_MySQL zu verwenden.

Derzeit sind keine Migrationsskripte verfügbar, jedoch enthält die mysqli-API sowohl eine prozedurale als auch eine OOP-API. Die prozedurale Version ist dabei ähnlich zu ext/mysql.

Es ist nicht möglich die Erweiterungen zu mischen. Es wird beispielsweise nicht funktionieren, eine mysqli-Verbindung an PDO_MySQL oder ext/mysql zu übergeben.

Wieso bekomme ich so eine Fehlermeldung: "Warning: 0 is not a MySQL result index in <file> on line <x>" or "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>"?

Sie versuchen, einen result identifier zu benutzen, der 0 ist. Die 0 bedeutet, dass Ihre Abfrage aus irgend einem Grund fehlgeschlagen ist. Sie sollten auf Fehlermeldungen überprüfen, nachdem Sie Ihre Abfrage losgeschickt haben und bevor Sie versuchen, mit dem Ergebnis zu arbeiten. Dies kann mit diesem oder ähnlichem Code bewerkstelligt werden:

<?php

$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
}
?>
oder
<?php

$result = mysql_query("SELECT * FROM tables_priv")
    or die("Bad query: " . mysql_error());
?>


Installation

In diesem Abschnitt geht es um übliche Fragen zur Installation von PHP. PHP gibt es für fast jedes Betriebssystem und fast jeden Webserver.

Um PHP zu installieren, folgen Sie bitte den Anweisungen im Installation und Konfiguration.

  1. Warum sollte ich Apache2 mit threaded MPM nicht in einer Produktionsumgebung verwenden?
  2. Unix/Windows: Wo sollte sich meine php.ini befinden?
  3. Unix: I habe PHP installiert, aber jedesmal, wenn ich eine Seite aufrufe, bekomme ich die Meldung 'Document Contains No Data'! Woran liegt das?
  4. Unix: Ich habe PHP mit RPM-Paketen installiert, aber Apache verarbeitet die PHP-Seiten nicht. Was ist da los?
  5. Unix: Ich habe Apache mit dem FrontPage-Erweiterungs-Patch versehen und plötzlich funktioniert PHP nicht mehr. Ist PHP zur FrontPage-Erweiterung für Apache inkompatibel?
  6. Unix/Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem Browser ein PHP-Script aufzurufen, erhalte ich eine leere Seite.
  7. Unix/Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem Browser ein PHP-Script aufzurufen, erhalte ich vom Server einen 500 Fehler.
  8. Manche Betriebssysteme: Ich habe PHP ohne Fehlermeldungen installiert, aber wenn ich versuche, Apache zu starten, erhalte ich Fehler wegen undefinierter Symbole: [mybox:user /src/php5] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd Undefined symbols: _compress _uncompress
  9. Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem Browser ein PHP-Script aufzurufen, erhalte ich die Fehlermeldung: cgi error: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
  10. Windows: Ich habe alle Anweisungen befolgt, aber ich erreiche keine Zusammenarbeit zwischen PHP und den IIS.
  11. Wenn Ich PHP mit IIS, PWS, OmniHTTPD oder Xitami als CGI laufen lasse, bekomme ich die folgende Fehlermeldung: Security Alert! PHP CGI cannot be accessed directly..
  12. Wie kann ich herausfinden, ob meine php.ini gefunden und gelesen wird? Anscheinend ist das nicht der Fall, weil meine Änderungen nicht übernommen werden.
  13. Wie füge ich unter Windows mein PHP-Verzeichnis zu PATH hinzu?
  14. Wie mache ich unter Windows die Datei php.ini für PHP verfügbar?
  15. Ist es möglich, die Apache Content-Negotiation (MultiViews Option) mit PHP zu verwenden?
  16. Ist PHP auf die Bearbeitung von Anfragen mit der GET- und POST-Methode beschränkt?
Warum sollte ich Apache2 mit threaded MPM nicht in einer Produktionsumgebung verwenden?

PHP ist Klebstoff. Es ist der Klebstoff, der verwendet wird, um coole Web-Anwendungen zu erstellen indem er dutzende von Bibliotheken von Drittanbietern zusammenklebt und sie über eine intuitiv und einfach erlernbare Schnittstelle als zusammenhängende Einheit erscheinen lässt. Die Flexibilität und die Mächtigkeit von PHP sind auf die Stabilität und Robustheit der zugrunde liegenden Plattform angewiesen. Es braucht ein funktionierendes Betriebssystem, einen funktionierenden Webserver und funktionierende Bibliotheken Dritter, um zusammen zu kleben. Wenn eines davon nicht mehr funktioniert, braucht PHP Wege, um die Probleme erkennen und schnell beheben zu können. Wenn Sie das zugrunde liegende Gerüst dadurch komplexer machen, dass Sie keine völlig voneinander getrennten Ausführungsthreads und Speichersegmente und keine starke Sandbox für jede einzelne Anfrage haben, lassen Sie weitere Schwachstellen ins System von PHP einfließen.

Falls Sie threaded MPM benutzen wollen, sollten Sie nach einer FastCGI-Konfiguration schauen, in der PHP in seinem eigenen Speicherbereich läuft.

Unix/Windows: Wo sollte sich meine php.ini befinden?

Unter Unix sollte sie standardmäßig in /usr/local/lib sein, was <install-path>/lib ist. Die Meisten werden das beim Übersetzen mit der Option --with-config-file-path ändern wollen. Sie können das, z.B. mit

--with-config-file-path=/etc
festlegen. Dann kopieren Sie die php.ini-development der Distribution nach /etc/php.ini und editieren sie, um alle gewünschten lokalen Änderungen vorzunehmen.

--with-config-file-scan-dir=PATH

Unter Windows ist der standardmäßige Pfad für die php.ini das Windows-Verzeichnis. Falls die den Apache Webserver verwenden, wird die php.ini zuerst im Apache-Installationsverzeichnis, z.B. c:\program files\apache group\apache, gesucht. Dadurch können Sie auf dem selben Rechner verschiedene php.ini-Dateien für verschiedene Apache-Versionen haben.

Siehe auch das Kapitel über die Konfigurationsdatei.

Unix: I habe PHP installiert, aber jedesmal, wenn ich eine Seite aufrufe, bekomme ich die Meldung 'Document Contains No Data'! Woran liegt das?

Das bedeutet wahrscheinlich, dass PHP irgend ein Problem hat und einen Core Dump (Speicherauszug) erzeugt. Schauen Sie in der Fehler-Logdatei Ihres Servers nach, ob das der Fall ist und versuchen Sie dann das Problem mit einem kleinen Test-Script zu reproduzieren. Falls Sie sich mit 'gdb' auskennen, ist es für die Entwickler beim Lokalisieren des Problems sehr hilfreich, wenn Sie Ihrem Fehlerbericht einen Backtrace hinzufügen. Falls Sie PHP als Apache-Modul verwenden, können Sie in etwa Folgendes versuchen:

  • Stoppen Sie Ihre httpd-Prozesse

  • gdb httpd

  • Stoppen Sie Ihre httpd-Prozesse

  • > run -X -f /pfad/zur/httpd.conf

  • Rufen Sie mit Ihrem Browser die URL auf, die das Problem verursacht

  • > run -X -f /path/to/httpd.conf

  • gdb sollte Sie jetzt darüber in Kenntnis setzen, falls Sie einen Core Dump bekommen

  • Geben Sie ein: bt

  • Sie sollten Ihren Backtrace in Ihren Fehlerbericht einfügen und diesen unter » https://bugs.php.net/ abgeben.

Falls Sie in Ihrem Script Funktionen regulärer Ausdrücke (preg_match() und Freunde) verwenden, sollten Sie sicherstellen, dass Sie PHP und Apache mit dem selben Programmpaket für reguläre Ausdrücke übersetzt haben. Mit PHP und Apache 1.3.x sollte das automatisch der Fall sein.

Unix: Ich habe PHP mit RPM-Paketen installiert, aber Apache verarbeitet die PHP-Seiten nicht. Was ist da los?

Unter der Annahme, dass Sie sowohl Apache als auch PHP mit RPM-Paketen installiert haben, müssen Sie einige oder alle der folgenden Zeilen in die Datei httpd.conf einfügen oder die Kommentarzeichen davor entfernen:

# Extra Modules
AddModule mod_php.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so
LoadModule perl_module        modules/libperl.so
Und fügen Sie
AddType application/x-httpd-php .php
... in die globalen Eigenschaften oder in die Eigenschaften der VirtualDomain, für die Sie PHP-Unterstützung benötigen, ein.

Unix: Ich habe Apache mit dem FrontPage-Erweiterungs-Patch versehen und plötzlich funktioniert PHP nicht mehr. Ist PHP zur FrontPage-Erweiterung für Apache inkompatibel?

Nein, PHP funktioniert bestens mit der FrontPage-Erweiterung. Das Problem liegt darin, dass der FrontPage-Patch mehrere Apache-Strukturen verändert, auf die sich PHP verlässt. Eine Neuübersetzung von PHP (mittels 'make clean ; make'), nachdem der Patch angewandt wurde, löst das Problem.

Unix/Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem Browser ein PHP-Script aufzurufen, erhalte ich eine leere Seite.

Wenn Sie sich im Browser den Quelltext der Seite anschauen, werden Sie vermutlich den Quellcode Ihres PHP-Scripts sehen können. Das bedeutet, dass der Webserver das Script nicht zur Interpretation an PHP übergeben hat. Mit Ihrer Server-Konfiguration ist etwas nicht in Ordnung - überprüfen Sie Ihre Server-Konfiguration nochmal genau anhand der PHP-Installationsanleitung.

Unix/Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem Browser ein PHP-Script aufzurufen, erhalte ich vom Server einen 500 Fehler.

Beim Versuch des Servers PHP zu starten ist etwas schiefgegangen. Wechseln Sie auf der Kommandozeile (in der Eingabeaufforderung) in das Verzeichnis, das die ausführbare PHP-Datei (unter Windows php.exe) enthält und lassen Sie php -i laufen, um eine sinnvolle Fehlermeldung zu bekommen. Falls PHP irgendwelche Probleme bei der Ausführung hat, werden entsprechende Fehlermeldungen ausgegeben, die Ihnen Hinweise darauf liefern, was zu tun ist. Falls sich der Bildschirm mit HTML-Quelltext füllt (die Ausgabe der Funktion phpinfo()), funktioniert PHP und Ihr Problem könnte mit Ihrer Server-Konfiguration zusammenhängen, die Sie dann nochmal genau überprüfen sollten.

Manche Betriebssysteme: Ich habe PHP ohne Fehlermeldungen installiert, aber wenn ich versuche, Apache zu starten, erhalte ich Fehler wegen undefinierter Symbole:
[mybox:user /src/php5] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

Das hat nichts mit PHP zu tun, sondern mit den MySQL-Client-Bibliotheken. Manche benötigen --with-zlib, manche nicht. Auf diese Frage wird in den MySQL FAQ eingegangen.

Windows: Ich habe PHP installiert, aber wenn ich versuche, mit meinem Browser ein PHP-Script aufzurufen, erhalte ich die Fehlermeldung:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

Diese Fehlermeldung bedeutet, dass PHP daran gescheitert ist, überhaupt irgendwas auszugeben. Wechseln Sie auf der Kommandozeile (in der Eingabeaufforderung) in das Verzeichnis, das die ausführbare PHP-Datei (unter Windows php.exe) enthält und lassen Sie php -i laufen, um eine sinnvolle Fehlermeldung zu bekommen. Falls PHP irgendwelche Probleme bei der Ausführung hat, werden entsprechende Fehlermeldungen ausgegeben, die Ihnen Hinweise darauf liefern, was zu tun ist. Falls sich der Bildschirm mit HTML-Quelltext füllt (die Ausgabe der Funktion phpinfo()), funktioniert PHP.

Funktioniert PHP erst mal auf der Kommandozeile, versuchen Sie nochmal, das Script mit dem Browser aufzurufen. Falls das immer noch misslingt, könnte das eine der folgenden Ursachen haben:

  • Die Zugriffsberechtigungen Ihres PHP-Scripts, Ihrer php.exe, php5ts.dll, php.ini oder irgendeiner PHP-Erweiterung die Sie versuchen zu laden, sind für den anonymen Internetbenutzer ISUR_<machinename> nicht ausreichend.
  • Die Scriptdatei existiert nicht (oder ist vielleicht, bezogen auf Ihr Web-Wurzelverzeichnis, nicht da, wo Sie denken). Beachten Sie, dass Sie beim IIS diesen Fehler aufspüren können, wenn Sie im Internet Services Manager beim Einstellen der script mappings die Option 'check file exists' ankreuzen. Falls dann eine Scriptdatei nicht existiert gibt der Server stattdessen einen 404 Fehler zurück. Das hat außerdem den zusätzlichen Vorteil, dass der IIS die erforderlichen Authentisierungen an Ihrem Script auf Grundlage der NTLanMan-Berechtigungen für Sie durchführt.
Windows: Ich habe alle Anweisungen befolgt, aber ich erreiche keine Zusammenarbeit zwischen PHP und den IIS.

Stellen Sie sicher, dass jeder Benutzer, der ein PHP-Script ausführt, die Berechtigung hat php.exe auzuführen! Der IIS verwendet den Benutzer anonymous, der bei der Installation des IIS hinzugefügt wird. Dieser Benutzer benötigt die entsprechenden Berechtigungen für php.exe. Außerdem benötigt auch jeder angemeldete Benutzer die Berechtigung php.exe auszuführen. Dem IIS4 müssen Sie mitteilen, dass PHP eine Script-Engine ist. Lesen Sie auch diese FAQ.

Wenn Ich PHP mit IIS, PWS, OmniHTTPD oder Xitami als CGI laufen lasse, bekomme ich die folgende Fehlermeldung: Security Alert! PHP CGI cannot be accessed directly..

Sie müssen die cgi.force_redirect-Anweisung auf 0 setzen. Weil diese Anweisung standardmäßig auf 1 gesetzt ist, müssen Sie darauf achten, dass sie nicht mit einem ; auskommentiert ist. Wie alle Anweisungen wird auch diese in der php.ini gesetzt.

Wegen des standardmäßigen Werts von 1 ist es äußerst wichtig sicherzustellen, dass die richtige php.ini gelesen wird. Lesen Sie für Einzelheiten diese FAQ.

Wie kann ich herausfinden, ob meine php.ini gefunden und gelesen wird? Anscheinend ist das nicht der Fall, weil meine Änderungen nicht übernommen werden.

Rufen Sie phpinfo() auf, um zu überprüfen, ob Ihre php.ini von PHP gelesen wird. Fast ganz oben gibt es einen Punkt namens Configuration File (php.ini). Dort können Sie feststellen, wo PHP nach der php.ini sucht und ob sie gelesen wird oder nicht. Falls es dort nur einen VerzeichnisPFAD gibt, wird sie nicht gelesen und Sie sollten Ihre php.ini in dieses Verzeichnis legen. Falls der Pfad die php.ini beinhaltet, dann wird sie auch gelesen.

Wenn Ihre php.ini gelesen wird und Sie PHP als Modul benutzen, müssen Sie Ihren Webserver neu starten, nachdem Sie Änderungen an der php.ini vorgenommen haben.

Siehe auch php_ini_loaded_file().

Wie füge ich unter Windows mein PHP-Verzeichnis zu PATH hinzu?

Unter Windows 7, XP, Vista, 2008, 2012 und höher:

  • Gehen Sie in die Systemsteuerung und öffnen Sie das System-Icon (Start ? Systemsteuerung)

  • Gehen Sie zum Register 'Erweitert'

  • Klicken Sie auf den Button 'Umgebungsvariablen'

  • Schauen Sie in das Fenster 'Systemvariablen'

  • Suchen Sie nach dem Pfad-Eintrag PATH (Sie müssen evtl. blättern um ihn zu finden)

  • Doppelklicken Sie auf den Pfad-Eintrag

  • Geben Sie Ihr PHP-Verzeichnis mit vorangestelltem ';' am Ende ein (z.B. ;C:\php)

  • Drücken Sie auf OK

Unter Windows 98/Me müssen Sie die Datei autoexec.bat editieren:

  • Öffnen Sie den Editor (Start ? Ausführen und notepad eingeben)

  • Öffnen Sie die Datei C:\autoexec.bat

  • Finden Sie die Zeile mit PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;..... und fügen Sie ;C:\php am Ende der Zeile hinzu

  • Speichern Sie die Datei und starten Sie Ihren Computer neu

Hinweis: Führen Sie einen Neustart durch, nachdem Sie die obigen Schritte befolgt haben, um sicher zu stellen, dass die PATH-Änderungen übernommen werden.

Das PHP Handbuch hat früher empfohlen, Dateien ins Windows-Systemverzeichnis zu kopieren, weil sich dieses Verzeichnis (C:\Windows, C:\WINNT, etc.) standardmäßig im Pfad (PATH) des Systems befindet. Dateien ins Windows-Systemverzeichnis zu kopieren könnte Probleme verursachen und es wird schon lange davon abgeraten.

Wie mache ich unter Windows die Datei php.ini für PHP verfügbar?

Es gibt mehrere Möglichkeiten, das zu erreichen. Falls Sie Apache benutzen, lesen Sie die für die jeweilige Installation bestimmte Anleitung (Apache 1, Apache 2). Andernfalls müssen Sie die Umgebungsvariable PHPRC setzen:

Unter Windows:

  • Gehen Sie in die Systemsteuerung und öffnen Sie das System-Icon (Start ? Einstellungen ? Systemsteuerung ? System oder einfach Start ? Systemsteuerung ? System)

  • Gehen Sie zum Register 'Erweitert'

  • Klicken Sie auf den Button 'Umgebungsvariablen'

  • Schauen Sie in das Fenster 'Systemvariablen'

  • Klicken Sie auf 'Neu' und geben Sie 'PHPRC' als Name für die Variable ein und als Wert für die Variable das Verzeichnis, in dem sich die php.ini befindet (z.B. C:\php)

  • Drücken Sie auf OK und starten Sie Ihren Computer neu

Unter Windows 98/Me müssen Sie die Datei autoexec.bat editieren:

  • Öffnen Sie den Editor (Start ? Ausführen und notepad eingeben)

  • Öffnen Sie die Datei C:\autoexec.bat

  • Fügen Sie am Ende der Datei eine neue Zeile ein: set PHPRC=C:\php (ersetzen Sie C:\php mit dem Verzeichnis, in dem sich die php.ini befindet). Bitte beachten Sie, dass der Pfad keine Leerzeichen enthalten darf. Falls Sie PHP zum Beispiel in C:\Program Files\PHP installiert haben, müssen Sie stattdessen C:\PROGRA~1\PHP eingeben.

  • Speichern Sie die Datei und starten Sie Ihren Computer neu

Ist es möglich, die Apache Content-Negotiation (MultiViews Option) mit PHP zu verwenden?

If links to PHP files include extension, everything works perfect. This FAQ is only for the case when links to PHP files don't include extension and you want to use content negotiation to choose PHP files from URL with no extension. In this case, replace the line AddType application/x-httpd-php .php with:

AddHandler php5-script php
AddType text/html php
This solution doesn't work for Apache 1 as PHP module doesn't catch php-script.

Ist PHP auf die Bearbeitung von Anfragen mit der GET- und POST-Methode beschränkt?

Nein, es ist möglich, jede Anfragemethode zu bearbeiten, z.B. auch CONNECT. Ein korrekter Antwortstatus kann mit header() gesendet werden. Falls nur die Methoden GET und POST bearbeitet werden sollen, kann das mit dieser Apache-Konfiguration erreicht werden:

<LimitExcept GET POST>
Deny from all
</LimitExcept>


Probleme bei der Kompilierung

Diese Sektion behandelt die meistverbreiteten Fehler, die beim Kompilieren von PHP auftauchen.

  1. Ich habe mir die aktuelle Version von PHP mit Hilfe des anonymen Git-Dienstes besorgt, kann aber kein configure-Skript finden.
  2. Ich habe Probleme PHP für den Apache zu konfigurieren. Er beschwert sich, dass er die Datei httpd.h nicht finden kann, obwohl sie sich genau dort befindet, wo ich es angegeben habe.
  3. Sie werden während des Konfigurierens von PHP (./configure), mit einem Fehler wie dem Folgenden konfrontiert: checking lex output file root... ./configure: lex: command not found configure: error: cannot find output from lex; giving up
  4. Warum bekomme ich folgende Meldung, wenn ich versuche Apache zu starten? fatal: relocation error: file /path/to/libphp4.so: symbol ap_block_alarms: referenced symbol not found
  5. Wenn ich configure ausführe, bekomme ich die Fehlermeldung, dass die include-Dateien oder die GD-, gdbm- oder andere etc. Bibliotheken nicht gefunden werden konnten.
  6. Wenn die Datei language-parser.tab.c kompiliert wird, erscheinen Fehler mit der Meldung yytname undeclared.
  7. Wenn ich make ausführe, scheint alles normal zu verlaufen, aber sobald es versucht, die Applikation zu linken, beschwert es sich, einige Dateien nicht finden zu können.
  8. Wenn PHP gelinkt wird, beschwert es sich über undefinierte Referenzen.
  9. Wie wird PHP mit Apache 1.3.x kompiliert?
  10. Ich habe die Schritte, die zur Installation des Apache-Moduls unter Unix nötig sind, befolgt, aber meine PHP-Skripte sind im Browser zu sehen oder ich werde aufgefordert, die Dateien zu speichern.
  11. Es heißt, es muss --activate-module=src/modules/php4/libphp4.a benutzt werden, aber diese Datei existiert nicht, also habe ich es zu --activate-module=src/modules/php4/libmodphp4.a geändert, aber es funktioniert nicht.
  12. Wenn ich versuche, Apache mit PHP als statisches Modul mittels --activate-module=src/modules/php4/libphp4.a zu kompilieren, kommt die Fehlermeldung, mein kompiler sei nicht ANSI-konform.
  13. Wenn ich versuche, PHP mittels der Option --with-apxs zu kompilieren, bekomme ich komische Fehlermeldungen.
  14. Während make bekomme ich Fehler in microtime und jede Menge RUSAGE_-Zeugs.
  15. Beim Kompilieren von PHP mit MySQL läuft configure zwar ohne Probleme, aber beim Ausführen von make bekomme ich einen Fehler wie den Folgenden: ext/mysql/libmysqlclient/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysqlclient/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp' Was habe ich falsch gemacht?
  16. Ich möchte mein PHP aktualisieren. Wo kann ich die ./configure-Zeile finden, die von meiner aktuellen PHP-Version verwendet wird?
  17. Wenn ich PHP mit der GD-Bibliothek kompiliere, tauchen seltsame Kompilerfehler auf oder PHP startet nicht (Segfault).
  18. Wenn ich PHP kompiliere habe ich den Eindruck zufällige Fehler zu bekommen. Ich verwende Solaris.
Ich habe mir die aktuelle Version von PHP mit Hilfe des anonymen Git-Dienstes besorgt, kann aber kein configure-Skript finden.

Sie müssen das GNU autoconf-Paket installiert haben, damit das Konfigurationsskript aus configure.in generiert werden kann. Führen Sie ./buildconf im Hauptverzeichnis der vom Git-Server geladenen Quellen aus, wird das configure-Skript generiert. (Solange Sie configure nicht mit der --enable-maintainer-mode-Option aufrufen, wird das Konfigurationsskript nicht neu erstellt, wenn die configure.in-Datei aktualisiert wird. Es sollte also darauf geachtet werden, dass das configure-Skript manuell neu generiert wird, wenn Sie feststellen, dass configure.in verändert wurde. Ein Symptom für eine solche Veränderung ist, wenn Dinge wie @VARIABLE@ im Makefile auftachen, nachdem configure oder config.status ausgeführt wurde.)

Ich habe Probleme PHP für den Apache zu konfigurieren. Er beschwert sich, dass er die Datei httpd.h nicht finden kann, obwohl sie sich genau dort befindet, wo ich es angegeben habe.

Sie müssen dem configure/setup-Skript den Top-Level-Pfad des Apache-Quellbaums mitteilen. Das bedeutet, dass z.B. --with-apache=/path/to/apache anstatt --with-apache=/path/to/apache/src angegeben werden muss.

Sie werden während des Konfigurierens von PHP (./configure), mit einem Fehler wie dem Folgenden konfrontiert:

checking lex output file root... ./configure: lex: command not found
configure: error: cannot find output from lex; giving up

Stellen Sie sicher, dass Sie Installation gründlich gelesen haben und beachten Sie, dass sowohl flex als auch bison zum Kompilieren von PHP installiert sein müssen. Abhängig von Ihrem System müssen Sie flex und bison entweder aus einer Quelle oder einem Paket wie z.B. RPM installieren.

Warum bekomme ich folgende Meldung, wenn ich versuche Apache zu starten?

fatal: relocation error: file /path/to/libphp4.so:
symbol ap_block_alarms: referenced symbol not found

Dieser Fehler tritt in der Regel auf, wenn man den Apache-Kern als gemeinsam verwendete DSO-Bibliothek kompiliert. Versuchen Sie Apache neu zu konfigurieren und stellen Sie sicher, dass zumindest die folgenden Flags gesetzt sind:

--enable-shared=max --enable-rule=SHARED_CORE

Für weitere Informationen lesen Sie die Apache-INSTALL-Datei oder die Apache-» DSO-Handbuchseite.

Wenn ich configure ausführe, bekomme ich die Fehlermeldung, dass die include-Dateien oder die GD-, gdbm- oder andere etc. Bibliotheken nicht gefunden werden konnten.

Es ist möglich, das configure-Skript so anzupassen, dass es nicht nur in Standard-Pfaden nach Headerdatei und Bibliotheken sucht, indem dem C-Präprozessor und -Linker zusätzliche Flags übergeben werden:

    CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
Wenn Sie (aus welchem Grund auch immer) eine csh-Variante als Login-Shell verwenden, dann nutzen Sie folgende Flags:
    env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

Wenn die Datei language-parser.tab.c kompiliert wird, erscheinen Fehler mit der Meldung yytname undeclared.

Sie müssen Bison updaten. Die aktuelle Version findet sich unter » http://www.gnu.org/software/bison/bison.html.

Wenn ich make ausführe, scheint alles normal zu verlaufen, aber sobald es versucht, die Applikation zu linken, beschwert es sich, einige Dateien nicht finden zu können.

Einige alte Versionen von make platzieren die kompilierten Versionen der Dateien nicht in das functions-Verzeichnis im gleichen Verzeichnis. Versuchen Sie, cp *.o functions auszuführen und danach erneut make zu starten, um zu prüfen, ob sich das Problem so lösen lässt. Sollte es dann funktionieren, empfehlen wir, Ihre Version von GNU make zu aktualisieren.

Wenn PHP gelinkt wird, beschwert es sich über undefinierte Referenzen.

Schauen Sie sich die Link-Zeile an und stellen Sie sicher, dass alle nötigen Bibliotheken am Ende mit eingeschlossen werden. Häufig werden '-ldl' und Datenbankbibliotheken vergessen.

Einige Leute haben berichtet, dass sie '-ldl' unmittelbar nach libphp4.a einfügen mussten, wenn sie PHP mit Apache gelinkt haben.

Wie wird PHP mit Apache 1.3.x kompiliert?

Folgen Sie diesen Schritten:

  • Besorgen Sie sich die letzte Version von Apache unter » http://httpd.apache.org/download.cgi.
  • Entpacken Sie die Datei zum Beispiel unter /usr/local/src/apache-1.3.
  • Kompilieren Sie zunächst PHP, zum Beispiel mit ./configure --with-apache=/<path>/apache-1.3 (ersetzen Sie <path> mit dem Pfad zu Ihrem apache-1.3-Verzeichnis).
  • Führen Sie make gefolgt von einem make install aus, und kopieren Sie die benötigten Dateien in das Apache-Verzeichnis.
  • Wechseln Sie in das Verzeichnis /<path>/apache-1.3/src und bearbeiten Sie die Datei Configuration. Fügen Sie AddModule modules/php4/libphp4.a hinzu.
  • Führen Sie ./configure gefolgt von make aus.
  • Nun sollte eine lauffähige Version eines PHP-fähigen Apaches kompiliert sein.

Bitte beachten Sie: Sie können auch das neue Apache-./configure-Skript nutzen. Weitere Informationen dazu finden sie in der Datei README.configure, die der Apache-Distribution beiliegt. Auch in der Datei INSTALL Ihrer PHP-Distribution finden sich Informationen dazu.

Ich habe die Schritte, die zur Installation des Apache-Moduls unter Unix nötig sind, befolgt, aber meine PHP-Skripte sind im Browser zu sehen oder ich werde aufgefordert, die Dateien zu speichern.

Das bedeutet, dass das PHP-Modul nicht aufgerufen wird. Sie sollten folgende drei Dinge überprüfen:

  • Stellen Sie sicher, dass das httpd-Binary, das Sie ausführen, tatsächlich das neue httpd-Binary ist, das sie kompiliert haben. Um das zu tun versuchen Sie, /path/to/binary/httpd -l auszuführen. Wenn mod_php4.c nicht auftaucht, führen Sie nicht das korrekte Binary aus. Finden und installieren Sie das korrekte Binary.
  • Stellen Sie sicher, dass Sie den korrekten Mime-Type in einer Ihrer Apache .conf-Datei angegeben haben. Er sollte AddType application/x-httpd-php .php lauten. Stellen Sie ebenfalls sicher, dass diese AddType-Anweisung sich nicht in einem <Virtualhost>- oder <Directory>-Block befindet, da dies verhindern würde, dass sie sich auf das Verzeichnis Ihres Testskript auswirkt.
  • Der Standardort der Apache-Konfigurationsdateien hat sich von Apache 1.2 zu Apache 1.3 verändert. Sie sollten sicherstellen, dass die Konfigurationsdatei, zu der sie die AddType-Anweisung hinzugefügt haben, diejenige ist, die auch verarbeitet wird. Sie können einen offensichtlichen Syntaxfehler oder eine andere eindeutige Änderung in Ihre httpd.conf einfbauen, um dies zu überprüfen.

Es heißt, es muss --activate-module=src/modules/php4/libphp4.a benutzt werden, aber diese Datei existiert nicht, also habe ich es zu --activate-module=src/modules/php4/libmodphp4.a geändert, aber es funktioniert nicht.

Die Datei libphp4.a soll gar nicht existieren, Apache wird sie selbst generieren.

Wenn ich versuche, Apache mit PHP als statisches Modul mittels --activate-module=src/modules/php4/libphp4.a zu kompilieren, kommt die Fehlermeldung, mein kompiler sei nicht ANSI-konform.

Das ist eine irreführende Fehlermeldung des Apache, die in aktuellen Versionen behoben ist.

Wenn ich versuche, PHP mittels der Option --with-apxs zu kompilieren, bekomme ich komische Fehlermeldungen.

Hier sind drei Dinge zu überprüfen: Wenn Apache das apxs-Perl-Skript generiert, werden manchmal aus unerfindlichen Gründen nicht die richtigen Kompiler- und Variablen-Flags verwendet. Suchen Sie Ihr apxs-Skript (probieren Sie das Kommando which apxs); oft liegt es unter /usr/local/apache/bin/apxs oder /usr/sbin/apxs. Öffnen Sie es und überprüfen Sie es auf Zeilen, die ähnlich wie folgende aussehen:

my $CFG_CFLAGS_SHLIB  = ' ';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # substituted via Makefile.tmpl
Wenn Sie so etwas sehen, haben Sie Ihr Problem gefunden. Sie enthalten eventuell nur Leerzeichen oder anderen inkorrekte Werte, wie 'q()'. Ändern Sie die Zeilen wie folgt:
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';                   # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);              # substituted via Makefile.tmpl
Das zweite mögliche Problem kann unter Red Hat 6.1 und 6.2 auftauchen. Das apxs-kcript, das Red Hat ausliefert, ist fehlerhaft. Suchen sie nach dieser Zeile:
my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install
Falls Sie die Zeile sehen, ändern Sie diese in
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install
Zu guter Letzt, wenn sie Apache neu installieren, fügen Sie ein make clean nach dem ./configure und vor dem make ein.

Während make bekomme ich Fehler in microtime und jede Menge RUSAGE_-Zeugs.

Wenn während des make-Teils der Installation Probleme auftauchen, die wie folgt aussehen:

microtime.c: In function `php_if_getrusage':
microtime.c:94: storage size of `usg' isn't known
microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
microtime.c:97: (Each undeclared identifier is reported only once
microtime.c:97: for each function it appears in.)
microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
make[3]: *** [microtime.lo] Error 1
make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/master/php-4.0.1/ext'
make: *** [all-recursive] Error 1

ist Ihr System beschädigt. Sie müssen Ihre /usr/include-Dateien reparieren, indem Sie ein glibc-devel-Paket installieren, dessen Version mit der Ihrer glibc übereinstimmt. Das hat absolut nichts mit PHP zu tun. Um sich selbst davon zu überzeugen, führen Sie folgenden einfachen Test durch:

$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null
Wenn hier Fehler auftauchen, wissen sie, dass Ihre include-Dateien fehlen oder fehlerhaft sind.

Beim Kompilieren von PHP mit MySQL läuft configure zwar ohne Probleme, aber beim Ausführen von make bekomme ich einen Fehler wie den Folgenden: ext/mysql/libmysqlclient/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysqlclient/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp' Was habe ich falsch gemacht?

Zuerst ist es wichtig, dass Sie sich darüber im Klaren sind, dass dies eine Warnung ist und kein Fehler. Weil dies aber oft die letzte sichtbare Ausgabe von make ist, sieht es oft wie ein Fehler aus. Natürlich bricht der Kompiler ab, falls Sie ihn so konfiguriert haben, dass er bei Warnungen abbrechen soll. Beachten Sie, dass die MySQL-Unterstützung standardmäßig aktiviert ist.

Hinweis:

Bei PHP 4.3.2 sehen Sie auch den folgenden Text nachdem das Kompilieren (make) beendet wurde:

Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).

Ich möchte mein PHP aktualisieren. Wo kann ich die ./configure-Zeile finden, die von meiner aktuellen PHP-Version verwendet wird?

Entweder schauen Sie in die config.nice-Datei im Quellbaum Ihrer aktuellen PHP-Version nach, oder Sie führen folgendes Skript aus:

<?php phpinfo(); ?>
Zu Beginn der Ausgabe wird die ./configure-Zeile angezeigt.

Wenn ich PHP mit der GD-Bibliothek kompiliere, tauchen seltsame Kompilerfehler auf oder PHP startet nicht (Segfault).

Stellen Sie sicher, dass PHP und die GD-Bibliothek gegen die selben Bibliotheken wie libPNG gelinkt sind.

Wenn ich PHP kompiliere habe ich den Eindruck zufällige Fehler zu bekommen. Ich verwende Solaris.

Die Verwendung von nicht-GNU-Programmen beim Kompilieren kann Probleme verursachen. Verwenden sie GNU-Programme um sicherzustellen, dass das Kompilieren fehlerfrei klappt. Z.B. wird auf Solaris die Verwendung der SunOS-BSK-kompatiblen Version oder der Solaris-Version von sed nicht funktionieren. Verwenden Sie stattdessen die GNU- oder Sun-POSIX-(xpg4-)Version von sed. Links: » GNU sed, » GNU flex, und » GNU bison.


PHP verwenden

Diese Rubrik behandelt viele Fehler, die möglicherweise beim Schreiben von PHP-Skripten auftreten.

  1. Ich kann mir die Reihenfolge der Parameter von PHP-Funktionen nicht merken - gibt es ein Schema?
  2. Ich möchte ein PHP-Skript schreiben, das Daten von beliebigen Formularen verarbeiten kann. Woher weiß ich, welche Variablen über die POST-Methode verfügbar sind?
  3. Ich möchte alle einfachen Anführungszeichen (') in einen Backslash gefolgt von einem einfachen Anführungszeichen (\') ersetzen lassen. Wie kann ich das mit einem regulären Ausdruck machen? Ich möchte außerdem " zu \" und \ zu \\ konvertieren.
  4. Wenn ich den folgenden Code ausführe, wird die Ausgabe in der falschen Reihenfolge ausgegeben: <?php function myfunc($argument) { echo $argument + 10; } $variable = 10; echo "myfunc($variable) = " . myfunc($variable); ?> Woran liegt das?
  5. Wo sind meine Zeilenumbrüche geblieben? <pre> <?php echo "Das soll die erste Zeile sein."; ?> <?php echo "Das soll nach dem obigen Zeilenumbruch erscheinen."; ?> </pre>
  6. Ich bekomme die Meldung 'Warning: Cannot send session cookie - headers already sent...' oder 'Cannot add header information - headers already sent...'.
  7. Wie kann ich auf Informationen aus dem Request-Header zugreifen?
  8. Wenn ich versuche, Authentifizierung mit IIS zu nutzen, bekomme ich die Meldung 'No Input file specified'.
  9. Windows: Ich kann keine auf einem anderen Rechner freigegebenen Dateien aufrufen, wenn ich IIS benutze.
  10. Wie kann ich XML und PHP mischen? PHP beschwert sich über meine <?xml-Tags!
  11. Wo kann ich eine komplette Liste der mir zur Verfügung stehenden Variablen finden?
  12. Wie kann ich PDF-Datei generieren ohne die nicht-freie und kommerzielle Bibliothek PDFLib zu benutzen? Ich suche etwas, dass frei ist und keine externen PDF-Bibliotheken benötigt.
  13. Ich versuche, auf eine der Standard-CGI-Variablen (wie $DOCUMENT_ROOT oder $HTTP_REFERER) in einer selbstdefinierten Funktion zuzugreifen, aber anscheinend kann ich nicht darauf zugreifen. Was mache ich falsch?
  14. Einige PHP-Direktiven akzeptieren nicht nur int-Byte-Werte, sondern auch abgekürzte Byte-Werte. Welche Abkürzungen gibt es?
  15. Windows: Ich bekomme Verbindungs-Timeouts, wenn ich localhost verwende, während "127.0.0.1" aber funktioniert?
Ich kann mir die Reihenfolge der Parameter von PHP-Funktionen nicht merken - gibt es ein Schema?

PHP besteht aus Hunderten externer Bibliotheken, so dass dies manchmal etwas durcheinander erscheint. Eine einfache Regel ist aber wie folgt:

Parameter von Array-Funktionen sind als "needle, haystack" (Nadel, Heuhaufen) geordnet, während die Parameter von String-Funktionen genau andersrum geordnet sind, also als "haystack, needle" (Heuhaufen, Nadel).

Ich möchte ein PHP-Skript schreiben, das Daten von beliebigen Formularen verarbeiten kann. Woher weiß ich, welche Variablen über die POST-Methode verfügbar sind?

PHP bietet viele vordefinierte Variablen, wie das superglobale $_POST. Sie können $_POST mit einer Schleife durchlaufen, da es sich um ein assoziatives Array mit allen über die POST-Methode übertragenen Variablen handelt. Als Beispiel benutzen wir die foreach-Schleife, um (mit der empty()-Funktion) auf leere Werte zu prüfen und geben diese Werte aus.

<?php
$empty = $post = array();
foreach ($_POST as $varname => $varvalue) {
    if (empty($varvalue)) {
        $empty[$varname] = $varvalue;
    } else {
        $post[$varname] = $varvalue;
    }
}

print "<pre>";
if (empty($empty)) {
    print "Keiner der POST-Werte ist leer. Die Werte sind:\n";
    var_dump($post);
} else {
    print "Wir haben " . count($empty) . " leere Werte:\n";
    print "Alle Werte:\n"; var_dump($post);
    print "Leer:\n";  var_dump($empty);
    exit;
}
?>

Ich möchte alle einfachen Anführungszeichen (') in einen Backslash gefolgt von einem einfachen Anführungszeichen (\') ersetzen lassen. Wie kann ich das mit einem regulären Ausdruck machen? Ich möchte außerdem " zu \" und \ zu \\ konvertieren.

Falls Sie dies für eine Datenbank tun möchten, sollten Sie den Maskierungsmechanismus nutzen, der für diese Datenbank vorgesehen ist. Z.B. sollten Sie mysql_real_escape_string() unter MySQL und pg_escape_string() unter PostgreSQL nutzen. Es gibt außerdem die generische Funktionen addslashes() und stripslashes(), die häufig in älterem PHP-Code genutzt werden.

Wenn ich den folgenden Code ausführe, wird die Ausgabe in der falschen Reihenfolge ausgegeben:
<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
Woran liegt das?

Um das Ergebnis Ihrer Funktion in einem Ausdruck verwenden zu können (um es z.B. wie im obigen Beispiel mit dem anderen String zu verbinden), müssen Sie den Wert mit return zurückgeben und ihn nicht mit echo ausgeben.

Wo sind meine Zeilenumbrüche geblieben?
<pre>
<?php echo "Das soll die erste Zeile sein."; ?>
<?php echo "Das soll nach dem obigen Zeilenumbruch erscheinen."; ?>
</pre>

In PHP können Code-Blöcke entweder mit "?>" oder mit "?>\n" enden (\n steht für Zeilenumbruch). Im obigen Beispiel sind die ausgegebenen Zeilen daher in einer Zeile, denn PHP lässt die Zeilenumbrüche nach den Block-Ende-Zeichen weg. Wenn Sie möchten, dass PHP einen Zeilenumbruch ausgibt, müssen Sie nach jedem Code-Block einen zusätzlichen Zeilenumbruch einfügen.

Warum macht PHP das so? Wenn Sie normales HTML formatieren, erleichert PHP Ihnen die Arbeit, da Sie meist diesen Zeilenumbruch gar nicht haben möchten. Würde PHP diesen Zeilenumbruch ausgeben, müssten Sie sehr lange Zeilen schreiben und Ihren Code damit unlesbar machen.

Ich bekomme die Meldung 'Warning: Cannot send session cookie - headers already sent...' oder 'Cannot add header information - headers already sent...'.

Die Funktionen header(), setcookie() und die Session-Funktionen müssen dem Output-Stream Header hinzufügen. Header können aber nur gesendet werden, wenn Sie vor allen anderen Daten gesendet werden. Vor dem Aufruf dieser Funktionen darf also keine Ausgabe (wie z.B. HTML-Code) stattfinden. Die Funktion headers_sent() prüft, ob Ihr Skript bereits Header gesendet hat. Nützlich sind in diesem Zusammenhang auch die Funktionen zur Ausgabesteuerung.

Wie kann ich auf Informationen aus dem Request-Header zugreifen?

Wenn Sie PHP als Apache-Modul laufen lassen, liefert Ihnen die Funktion getallheaders() die gewünschten Informationen. Der folgende Code gibt alle Request-Header aus:

<?php
$headers = getallheaders();
foreach ($headers as $name => $content) {
    echo "headers[$name] = $content<br />\n";
}
?>

Siehe auch apache_lookup_uri(),
apache_response_headers() und
fsockopen().

Wenn ich versuche, Authentifizierung mit IIS zu nutzen, bekomme ich die Meldung 'No Input file specified'.

Das Sicherheitsmodell des IIS ist hier fehlerhaft. Dies ist ein Problem, das bei allen CGI-Programmen auftritt, die unter dem IIS laufen. Als Workaround können Sie eine leere HTML-Datei, die nicht von PHP geparst wird, als Eingangsseite in ein per Authentifizierung geschütztes Verzeichnis legen. Anschließend leiten Sie den Browser durch ein META-Tag auf die PHP-Seite weiter oder sie setzen einen Link auf die PHP-Seite. PHP erkennt dann die Authentifizierung korrekt. Auch auf anderen NT-Web-Servern sollte dieses Problem nicht auftauchen. Weitere Informationen finden Sie auch hier: » http://support.microsoft.com/kb/q160422/. Lesen Sie auch den Manual-Abschnitt zur HTTP-Authentifizierung mit PHP.

Windows: Ich kann keine auf einem anderen Rechner freigegebenen Dateien aufrufen, wenn ich IIS benutze.

Sie müssen die Go to Internet Information Services ändern. Suchen Sie Ihre PHP-Datei und rufen Sie deren Eigenschaften auf. Wechseln Sie auf das Register File Security, klicken Sie dort auf Edit -< Anonymous access and authentication control.

Sie können das Problem beheben, indem Sie entweder den Haken bei Anonymous Access entfernen und ihn bei Integrated Window Authentication belassen, oder indem Sie Anonymous Access ankreuzen und dann die Berechtigungen der Benutzer, die keinen Zugriff bekommen sollen, anpassen.

Wie kann ich XML und PHP mischen? PHP beschwert sich über meine <?xml-Tags!

Um <?xml in Ihren PHP-Code einzufügen müssen Sie die Kurzform der öffnenden PHP-Tags abschalten, indem Sie in Ihrer php.ini short_tags auf 0 setzen. Sie können diese Direktive nicht mit der Funktion ini_set() setzen. Sie können unabhängig davon, ob short_open_tags aktiviert oder deaktiviert ist, z.B. <?php echo '<?xml'; ?> benutzen. Der Standardwert für diese Direktive ist On.

Wo kann ich eine komplette Liste der mir zur Verfügung stehenden Variablen finden?

Lesen Sie die Manual-Seite zu vordefinierten Variablen, die eine (unvollständige) Liste der vordefinierten Variablen, die Ihren Skripten zur Verfügung stehen, enthält. Eine komplette Liste der verfügbaren Variablen (und viele weitere Informationen) können Sie sehen, wenn Sie die Funktion phpinfo() aufrufen. Beachten Sie auch den Abschnitt zu Variablen außerhalb von PHP, der verschiedene Szenarien für externen Variablen wie HTML-Formulare, Cookies oder den URL beschreibt.

Hinweis: register_globals: Wichtiger Hinweis

Seit PHP 4.2.0 ist die Standardeinstellung für die Konfigurationsoption register_globals off. Die PHP-Community ermutigt alle, sich nicht auf diese Option zu verlassen und Alternativen wie superglobals zu verwenden.

Wie kann ich PDF-Datei generieren ohne die nicht-freie und kommerzielle Bibliothek PDFLib zu benutzen? Ich suche etwas, dass frei ist und keine externen PDF-Bibliotheken benötigt.

Es gibt einige in PHP geschriebene Alternativen wie » FPDF und » TCPDF.

Ich versuche, auf eine der Standard-CGI-Variablen (wie $DOCUMENT_ROOT oder $HTTP_REFERER) in einer selbstdefinierten Funktion zuzugreifen, aber anscheinend kann ich nicht darauf zugreifen. Was mache ich falsch?

Verwenden Sie stattdessen $_SERVER['DOCUMENT_ROOT'] und $_SERVER['HTTP_REFERER'].

Einige PHP-Direktiven akzeptieren nicht nur int-Byte-Werte, sondern auch abgekürzte Byte-Werte. Welche Abkürzungen gibt es?

Die verfügbaren Abkürzungen sind K (für Kilobytes), M (für Megabytes) und G (für Gigabytes, verfügbar seit PHP 5.1.0), Groß-/Kleinschreibung spielt dabei keine Rolle. Alle anderen Werte werden als Byte-Werte erkannt. 1M entspricht z.B. einem Megabyte oder 1048576 Bytes. 1K entspricht einem Kilobyte oder 1024 Bytes. Diese abgekürzte Schreibweise kann in der php.ini und in der Funktion ini_get() verwendet werden. Es ist zu beachten, dass der numerische Wert nach int umgewandelt wird; beispielsweise wird 0.5M als 0 interpretiert.

Hinweis: Kilobyte versus Kibibyte

Die PHP-Notation beschreibt ein Kilobyte als Entsprechung von 1024 Bytes, während der IEC-Standard dies als Kibibyte bezeichnet. Zusammenfassung: k und K = 1024 Bytes.

Windows: Ich bekomme Verbindungs-Timeouts, wenn ich localhost verwende, während "127.0.0.1" aber funktioniert?

Vor PHP 5.3.4 gab es einen Bug im Netzwerk-Auflösungs-Code von PHP, der dazu führte, dass localhost im Zusammenhang mit Streams fehlschlug, wenn IPv6 aktiviert war. Um dieses Problem zu umgehen, können Sie entweder "127.0.0.1" verwenden oder die Auflösung von IPv6 in der hosts-Datei deaktivieren.


Sicheres Password Hashing

Dieser Absatz erklärt, warum Hash Funktionen zur sicheren Passwortspeicherung benutzt werden, und wie dies am effektivsten bewerkstelligt werden kann.

  1. Warum sollte ich die Passwörter der User meiner Anwendung hashen?
  2. Warum sind verbreitete Hashfunktionen wie md5 und sha1 nicht für die Speicherung von Passwörtern geeignet?
  3. Wie sollte ich meine Passwörter hashen, wenn die üblichen Hashfunktionen unbrauchbar sind?
  4. Was ist ein Salt?
  5. Wie speichere ich meine Salts?
Warum sollte ich die Passwörter der User meiner Anwendung hashen?

Passworthashing ist eine der grundlegendsten Sicherheitsüberlegungen, die beim Design einer Anwendung bedacht werden müssen. Ohne Hashing können im Falle eines erfolgreichen Angriffs alle Userpasswörter in Ihrer Datenbank von einem Angreifer gestohlen und ohne Umwege in anderen Anwendungen (seien es Ihre oder die Anderer) benutzt werden. Dies ist oft der Fall, da viele User für verschiedene Dienste die gleichen Passwörter verwenden.

Wenn Sie Passwörter vor dem Abspeichern in der Datenbank hashen, machen Sie es einen Angreifer schwerer die ursprünglichen Passwörter herauszufinden. Sie haben jedoch weiterhin die Möglichkeit eingegebene Userpasswörter zu hashen und die Hashwerte zu vergleichen um herauszufinden, ob der User das richtige Passwort eingegeben hat.

Es ist jedoch wichtig zu wissen, dass Hashen nur das Auslesen der Passwörter aus dem Datenspeicher (z.B.: Datenbank oder Datei) erschwert. Sollte es einen Angreifer gelingen Code in Ihre Anwendung einzuschleusen, so kann er die Passwörter der User evtl. Auslesen bevor dieses gehasht werden.

Warum sind verbreitete Hashfunktionen wie md5() und sha1() nicht für die Speicherung von Passwörtern geeignet?

Hashalgorithmen wie MD5, SHA1 und SHA256 sind auf Geschwindigkeit und Effizienz optimiert. Mit modernen Techniken und leistungsstarker Hardware ist es aber trivial geworden diese Hashalgorithmen mit "brute force" Attacken anzugreifen.

Weil moderne Computer diese Hashalgorithmen leicht brechen können, werden diese von Sicherheitsspezialisten nicht für die Speicherung von Passwörtern empfohlen.

Wie sollte ich meine Passwörter hashen, wenn die üblichen Hashfunktionen unbrauchbar sind?

Wenn es um das Hashen von Passwörtern geht müssen zwei wichtige Sachen bedacht werden: Der Berechnungsaufwand und das Salt. Wenn es länger dauert einen Hash zu berechnen wird ein Brute Force Angriff stark verzögert. Jedoch ist zu beachten, dass der Berechnungsaufwand sich im normalen Betrieb nicht negativ auf die Performance der Anwendung auswirkt. Das Salt hingegen dient dazu, die Erstellung von vorberechneten Rainbowtables zu verhindern, da durch das Salt auch gleiche Passwörter unterschiedliche Hashes erhalten.

PHP 5.5 bietet eine native Passworthashing API die sich auf eine sichere Art um das Hashen und Verifizieren von Passwörtern kümmert. Ebenso existiert eine » native PHP kompatible Bibliothek für PHP Versionen ab 5.3.7.

Eine andere Option ist die crypt() Funktion, die mehrere Hashalgorithmen unterstützt. Diese existiert ab Version 5.3.7. Wenn diese Funktion benutzt wird, ist es garantiert, dass der Hashalgorithmus unterstützt wird, da PHP native Implementierungen für die Algorithmen besitzt, die benutzt werden, wenn von dem Betriebsystem nicht angebotene Algorithmen benutzt werden.

Der empfohlene Algorithmus für das Hashen von Passwörtern ist Blowfish, welcher auf als Standardalgorithmus von der Passwort Hashing API benutzt wird, da dieser einen signifikant höheren Berechnungsaufwand als MD5 oder SHA1 voraussetzt und trotzdem weiterhin skalierbar ist.

Bitte beachten Sie: Wenn Sie crypt() benutzen um Passwörter zu verifizieren müssen sie dafür sorgen, Timing Attacken zu verhindern. Dies kann durch Stringvergleiche mit konstanter Laufzeit geschehen. Jedoch bieten die PHP Vergleichsoperatoren == und === keine konstante Laufzeit. Da jedoch password_verify() eine konstante Laufzeit besitzt ist es stark empfohlen die native Passwort Hashing API zu benutzen, wenn dies möglich ist.

Was ist ein Salt?

Ein kryptografisches Salt sind Daten, die während des Hashens an das Passwort angefügt werden um die Möglichkeit des Angriffs über Rainbowtables zu erschweren. Rainbowtables sind bereits vorberechnete Paare (Schlüssel, Hash), die benutzt werden können, um für einen gegebenen Hash das vorberechnete Passwort nachzuschlagen.

In einfachen Worten: Ein Hash sind zusätzliche Daten, die es erschweren das Passwort zu knacken. Es gibt Onlinedienste bei denen man für einen gegebenen Hash das dazugehörige Passwort herrausfinden kann. Die Benutzung eines Salts macht es unpraktisch bis unmöglich das Passwort durch die Benutzung dieser Dienste zu finden.

Die Funktion password_hash() generiert ein zufälliges Salt, sollte beim Aufruf der Funktion keines übergeben werden. Dies ist generell der einfachste und sicherste Ansatz.

Wie speichere ich meine Salts?

Die Funktionen password_hash() oder crypt() geben den Salt als einen Teil des generierten Hashs zurück. Dieser Wert sollte unverändert abgespeichert werden, da er Informationen über den Hashalgorithmus enthält und direkt an die Funktion password_verify() oder crypt() übergeben werden kann um ein Passwort zu verifzieren.

Das folgende Diagramm zeigt das Format eines Rückgabewertes der Funktionen crypt() oder password_hash(). Wie sie sehen können, enthalten die Hashes alle Informationen über Hashalgorithmus und Salt, wie sie für die spätere Verifikation von Passwörtern benötigt werden.

Die Komponenten des Rückgabewerten von password_hash und crypt in dieser Reihenfolge: Der benutze Algorithmus, die Optionen des Algorithmus, das benutzte Salt und das gehashte Passwort.


PHP und HTML

PHP und HTML interagieren stark: PHP kann HTML generieren und HTML kann Informationen an PHP weitergeben. Bevor Sie diese FAQ lesen, sollten Sie verstanden haben, wie Sie auf Variablen aus externen Quellen zugreifen können. Die Manual-Seite zu diesem Thema enthält viele Beispiele, die das Verständnis erleichtern.

  1. Wie muss ich kodieren/dekodieren, wenn ich einen Wert über ein Formular/einen URL weitergeben möchte?
  2. Ich versuche ein <input type="image">-Tag zu benutzen, aber die Variablen $foo.x and $foo.y sind nicht verfügbar. Auch $_GET['foo.x'] existiert nicht. Wo finde ich diese?
  3. Wie kann ich Array aus einem HTML-Formular erstellen?
  4. Wie bekomme ich alle Werte aus einem "select multiple"-HTML-Tag?
  5. Wie kann ich eine Variable von JavaScript an PHP übergeben?
Wie muss ich kodieren/dekodieren, wenn ich einen Wert über ein Formular/einen URL weitergeben möchte?

Es gibt mehrere Stufen, für die Encoding wichtig ist. Angenommen, Sie haben einen String $data, der den String, den Sie in nicht-kodierter Weise weitergeben möchten, enthält. Dann sind dies die relevanten Stufen:

  • HTML-Interpretation: Wenn Sie einen zufälligen String angeben wollen, müssen Sie ihn in die doppelte Anführungszeichen einschließen und htmlspecialchars() auf den gesamten Wert anwenden.

  • URL: Ein URL besteht aus mehreren Teilen. Wenn Sie wollen, dass Ihre Daten als ein Element interpretiert werden, dann müssen Sie Ihre Daten mit urlencode() kodieren.

Beispiel #1 Ein verstecktes HTML-Formularelement

<?php
    echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>

Hinweis: Es wäre falsch, urlencode() auf $data anzuwenden, da es die Aufgabe des Browsers ist, die Daten zu kodieren. Alle populären Browser machen dies auch korrekt. Beachten Sie, dass dies unabhängig von der verwendeten Methode (also z.B. GET oder POST) geschieht. Feststellen werden Sie dies aber nur bei GET-Anfragen, da POST-Anfragen meist versteckt geschehen.

Beispiel #2 Daten, die vom Benutzer bearbeitet werden sollen

<?php
    echo "<textarea name='mydata'>\n";
    echo htmlspecialchars($data)."\n";
    echo "</textarea>";
?>

Hinweis: Die Daten werden wie Browser wie gewünscht ausgegeben, da der Browser die HTML-escapten Symbole interpretiert. Nach dem Abschicken, egal ob via GET oder POST, werden die Daten für den Transfer kodiert (mit urlencode()) und von PHP direkt wieder dekodiert (mit urldecode()). Sie müssen also für die Kodierung und Dekodierung nicht selbst sorgen, die Browser und PHP erledigen dies automatisch für Sie.

Beispiel #3 In einem URL

<?php
    echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
        urlencode($data)) . '">'."\n";
?>

Hinweis: Hier wird eine HTML-GET-Anfrage gefakt, deswegen müssen Sie die Daten manuell mit urlencode() kodieren.

Hinweis: Sie müssen htmlspecialchars() auf den gesamten URL anwenden, da der URL als Wert eines HTML-Attributs auftritt. In diesem Fall wird der Browser zuerst etwas wie "un-htmlspecialchars()" auf den Wert anwenden und dann erst den URL weitergeben. PHP wird den URL korrekt verstehen, da Sie die Daten mit urlencode() kodiert haben. Sie werden feststellen, dass das & im URL durch &amp; ersetzt wird. Auch wenn die meisten Browser richtig arbeiten, falls Sie diese Ersetzung vergessen sollten, sollten Sie sich trotzdem nicht darauf verlassen. Das bedeutet, dass Sie - auch wenn Ihr URL nicht dynamisch ist - trotzdem htmlspecialchars() auf den URL anwenden müssen.

Ich versuche ein <input type="image">-Tag zu benutzen, aber die Variablen $foo.x and $foo.y sind nicht verfügbar. Auch $_GET['foo.x'] existiert nicht. Wo finde ich diese?

Wenn ein Formular abgeschickt werden soll, ist es möglich, ein Bild statt des Standard-Submit-Buttons zu verwenden, indem Sie ein Tag wie das folgende verwenden:

<input type="image" src="image.gif" name="foo" />
Wenn der Benutzer irgendwo auf das Bild klickt, wird das zugehörige Formular zusammen mit zwei zusätzlichen Variablen übertragen: foo.x und foo.y.

Da foo.x und foo.y in PHP ungültige Variablennamen erzeugen würden, werden Sie automatisch in $foo_x und $foo_y konvertiert. Die Punkte werden also durch Unterstriche ersetzt. Sie können auf diese Variablen also genauso wie im Abschnitt Variablen aus externen Quellen zugreifen, z.B. $_GET['foo_x'].

Hinweis:

Leerzeichen in Namen von Formularelementen werden in Unterstriche konvertiert.

Wie kann ich Array aus einem HTML-Formular erstellen?

Um die Formularwerte als Array im PHP-Skript zur Verfügung zu haben, müssen Sie die <input>, <select> or <textarea>-Felder wie folgt benennen:

<input name="MeinArray[]" />
<input name="MeinArray[]" />
<input name="MeinArray[]" />
<input name="MeinArray[]" />
Beachten Sie die eckigen Klammern hinter dem Variablen-Namen, denn dadurch wird das Array erst erzeugt. Sie können Felder in verschiedenen Arrays gruppieren, wenn Sie verschiedenen Feldern die gleichen Namen geben:
<input name="MeinArray[]" />
<input name="MeinArray[]" />
<input name="MeinAnderesArray[]" />
<input name="MeinAnderesArray[]" />
Daraus werden zwei Arrays, MeinArray und MeinAnderesArray erstellt. Es ist auch möglich, spezielle Schlüssel anzugeben:
<input name="AnderesArray[]" />
<input name="AnderesArray[]" />
<input name="AnderesArray[email]" />
<input name="AnderesArray[telefon]" />
Das Array AnderesArray enthält daraufhin die Schlüssel 0, 1, email und telefon.

Hinweis:

Die Angabe von Array-Schlüsseln ist in HTML optional. Wenn Sie keinen Schlüssel angeben, wird das Array in der Formular-Reihenfolge gefüllt. Im ersten Beispiel enthält also die Schlüssel 0, 1, 2 und 3.

Siehe auch: Array-Funktionen und Variablen aus externen Quellen.

Wie bekomme ich alle Werte aus einem "select multiple"-HTML-Tag?

Mit einem "select multiple"-Tag können Benutzer mehrere Werte aus einer Liste auswählen. Diese Werte werden dann an den "action handler" des Formulars (z.B. ein PHP-Skript) übergeben. Problematisch ist dabei, dass alle mit demselben Namen übergeben werden, z.B.:

<select name="var" multiple="yes">
Jede ausgewählte Option wird übergeben als:
var=option1
var=option2
var=option3
Jede Option wird den Inhalt der vorherigen $var-Variablen überschreiben. Die Lösung ist, die spezielle PHP-Lösung hierfür zu verwenden. Sie sollten das Tag wie folgt umschreiben:
<select name="var[]" multiple>
PHP weiß dann, dass $var als Array behandelt werden soll. Jede ausgewählte Wert wird dem Array hinzugefügt. Das erste Element wird zu $var[0], das nächste zu $var[1] etc. Die count()-Funktion kann benutzt werden, um herauszufinden, wie viele Optionen ausgewählt wurden. Mit der sort()-Funktion können Sie bei Bedarf das Array sortieren.

Beachten Sie, dass, falls Sie JavaScript benutzen, die eckigen Klammern [] im Feldnamen Probleme machen können, wenn Sie versuchen, über den Namen auf das Feld zu verweisen. Benutzen Sie stattdessen die numerische ID des Formularfelds oder schließen Sie den Variablennamen in einfache Anführungszeichen ein und benutzen Sie dies als den Index, z.B.:

variable = document.forms[0].elements['var[]'];

Wie kann ich eine Variable von JavaScript an PHP übergeben?

Da JavaScript (normalerweise) nur auf dem Client läuft, während PHP (normalerweise) auf Servern läuft, und da HTTP ein "status-loses" Protokoll ist, können zwischen den beiden Sprachen keine Variablen direkt ausgetauscht werden.

Allerdings ist es trotzdem möglich, Variablen zwischen den beiden zu übergeben. Eine Möglichkeit ist, den JavaScript-Code mit PHP zu generieren. Außerdem muss die angezeigte Seite sich regelmäßig selbst aktualisieren und dabei bestimmte Variablen an das PHP-Skript übergeben. Das folgende Beispiel zeigt wie Sie dies tun können -- es ermöglicht PHP, die Bildschirmauflösung (Höhe und Breite) zu ermitteln, was normalerweise nur Client-seitig möglich ist.

Beispiel #4 JavaScript mit PHP generieren

<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
  // Ausgabe der beiden Größenangaben
  echo "Die Bildschirmbreite ist: ". $_GET['width'] ."<br />\n";
  echo "Die Bildschirmhöhe ist: ". $_GET['height'] ."<br />\n";
} else {
  // Übergabe der Größenangaben
  // (der ursprüngliche 'QUERY_STRING' wird beibehalten;
  //  POST-Variablen müssen anders behandelt werden)

  echo "<script language='javascript'>\n";
  echo "  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
            . "&width=\" + screen.width + \"&height=\" + screen.height;\n";
  echo "</script>\n";
  exit();
}
?>


PHP und COM

PHP kann auf Win32 Plattformen benutzt werden, um auf COM und DCOM Objekte zuzugreifen.

  1. Ich habe eine DLL-Datei erstellt, um etwas zu berechnen. Kann ich diese DLL-Datei auch in PHP benutzen?
  2. Was bedeutet 'Unsupported variant type: xxxx (0xxxxx)'?
  3. Ist es möglich, visuelle Objekte in PHP zu verändern?
  4. Kann ich ein COM-Objekt in einer Session speichern?
  5. Wie kann ich COM-Fehler abfangen?
  6. Kann ich DLL-Dateien aus PHP-Skripten wie in Perl generieren?
  7. Was bedeutet 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}'?
  8. Wie kann ich ein COM-Object von einem entfernten Server ausführen?
  9. Ich bekomme die Meldung 'DCOM is disabled in C:\path...\scriptname.php on line 6' angezeigt, was kann ich tun?
  10. Ist es möglich ein ActiveX-Objekt auf einer Seite mit PHP zu laden/manipulieren?
  11. Ist es möglich, eine laufende Instanz einer Komponente zu erhalten?
  12. Gibt es einen Weg, um ein Ereignis von einem COM-Objekt zu verarbeiten?
  13. Ich habe Probleme, wenn ich versuche eine Methode eines COM-Objekts auszuführen, die mehr als ein Interface implementiert. Was kann ich tun?
  14. PHP funktioniert mit COM, aber was ist mit COM+?
  15. Wenn PHP COM-Objekte manipulieren kann, könnten wir in Zukunft MTS in Verbindung mit PHP benutzen, um Komponenten-Ressourcen zu verwalten?
Ich habe eine DLL-Datei erstellt, um etwas zu berechnen. Kann ich diese DLL-Datei auch in PHP benutzen?

Wenn es eine einfache DLL-Datei ist, gibt es noch keinen Weg diese auch in PHP zu benutzen. Wenn die DLL-Datei aber einen COM-Server enthält, können Sie diese möglicherweise benutzen, wenn sie das IDispatch Interface implementiert.

Was bedeutet 'Unsupported variant type: xxxx (0xxxxx)'?

Es gibt dutzende VARIANT-Typen und -Kombination. Die meisten werden bereits unterstützt, aber es gibt immer noch einige, die noch implementiert werden müssen. Arrays werden zum Beispiel noch nicht vollständig unterstützt. Nur eindimensional indexierte Arrays können zwischen PHP und COM ausgetauscht werden. Wenn Sie andere Typen finden, die nicht unterstützt werden, melden Sie diese bitte als Bug (wenn sie nicht schon gemeldet wurden) und stellen so viele Informationen zur Verfügung wie möglich.

Ist es möglich, visuelle Objekte in PHP zu verändern?

Generell ja, aber da PHP normalerweise als Web-Skriptsprache verwendet wird, läuft es im Webserver Kontext, also werden visuelle Objekte niemals auf dem Desktop des Servers erscheinen. Wenn Sie PHP für Anwendungsskripting benutzen, zum Beispiel in Verbindung mit PHP-GTK, gibt es keine Limitation bei Zugriff und Veränderung von visuellen Objekten durch COM.

Kann ich ein COM-Objekt in einer Session speichern?

Nein, können Sie nicht. COM-Instanzen werden als Resourcen behandelt und können somit nur im Kontext eines einzelnen Skripts benutzt werden.

Wie kann ich COM-Fehler abfangen?

Die COM-Erweiterung wirft eine com_exception, die Sie abfangen und dann das code-Member inspizieren können, um zu bestimmen, wie fortzufahren ist.

Kann ich DLL-Dateien aus PHP-Skripten wie in Perl generieren?

Nein, leider gibt es kein Tool, das für PHP verfügbar ist.

Was bedeutet 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}'?

Dieser Fehler kann mehrere Gründe haben:

  • Die CLSID ist falsch
  • Die angeforderte DLL-Datei fehlt
  • Die angeforderte Kompinente implementiert das IDispatch Interface nicht.

Wie kann ich ein COM-Object von einem entfernten Server ausführen?

Genauso, wie Sie lokale COM-Objekte ausführen. Sie müssen nur die IP der entfernten Maschine als zweiten Parameter zum COM-Konstruktor weitergeben.

Stellen Sie sicher, dass Sie com.allow_dcom =true in der php.ini gesetzt haben.

Ich bekomme die Meldung 'DCOM is disabled in C:\path...\scriptname.php on line 6' angezeigt, was kann ich tun?

Bearbeiten Sie die php.ini und setzen sie com.allow_dcom =true.

Ist es möglich ein ActiveX-Objekt auf einer Seite mit PHP zu laden/manipulieren?

Das hat nichts mit PHP zu tun. ActiveX-Objekte werden auf beim Benutzer geladen, wenn sie vom HTML-Dokument angefordert werden. Es gibt keine Verbindung zum PHP-Skript, also ist auch keine direkte Interaktion auf der Seite des Servers möglich.

Ist es möglich, eine laufende Instanz einer Komponente zu erhalten?

Mithilfe von Monikern ist das möglich. Wenn Sie mehrere Referenzen zum selben Word-Exemplar erhalten möchten, können sie dieses Exemplar erstellen, wie hier beschrieben:

<?php
$word = new COM("C:\docs\word.doc");
?>

Dieser Code erstellt ein neues Exemplar, wenn kein laufendes Exemplar verfügbar ist, oder er gibt ein Handle zum laufenden Exemplar, wenn diese verfügbar ist, zurück.

Gibt es einen Weg, um ein Ereignis von einem COM-Objekt zu verarbeiten?

Sie können einen Listener definieren und ihn mithilfe von com_event_sink() binden. Sie können com_print_typeinfo() benutzen, um eine Listener-Skelettklasse von PHP erstellen zu lassen.

Ich habe Probleme, wenn ich versuche eine Methode eines COM-Objekts auszuführen, die mehr als ein Interface implementiert. Was kann ich tun?

Die Antwort ist genauso einfach und unbefriedigend zugleich. Ich weiß es nicht genau, aber ich denke, Sie können nichts tun. Wenn jemand spezifischere Informationen darüber hat, lassen Sie es » mich wissen :)

PHP funktioniert mit COM, aber was ist mit COM+?

COM+ erweitert COM um ein Framework, um Komponenten über MTS und MSMQ zu verwalten, aber es gibt nichts Besonderes, das PHP unterstützen müsste, um solche Komponenten zu benutzen.

Wenn PHP COM-Objekte manipulieren kann, könnten wir in Zukunft MTS in Verbindung mit PHP benutzen, um Komponenten-Ressourcen zu verwalten?

PHP selbst verarbeitet Transaktionen noch nicht. Wenn also ein Fehler auftritt, wird kein Rollback gestartet. Wenn Sie Komponenten benutzen, die Transaktionen unterstützen, müssen Sie das Transaktions-Management selbst implementieren.


Verschiedene Fragen

Es gibt diverse Fragen, die in keine andere Kategorie passen. Diese Fragen finden Sie hier.

  1. Wie entpacke ich Manuals unter Windows, die mit bz2 komprimiert wurden?
Wie entpacke ich Manuals unter Windows, die mit bz2 komprimiert wurden?

Wenn Sie keinen Entpacker haben, der bz2 entpacken kann, » laden Sie sich das Kommandozeilenprogramm von Redhat herunter (siehe Informationen weiter unten).

Wenn Sie nicht das Kommandozeilenprogramm verwenden wollen, dann können Sie kostenlose Tools wie den » Stuffit Expander, » UltimateZip, » 7-Zip, oder » Quick Zip verwenden. Wenn Sie » WinRAR oder » Power Archiver haben, können Sie die bz2-Dateien damit entpacken. Sollten Sie Total Commander (ehemals Windows Commander) verwenden, so gibt es dafür ein kostenloses bz2-Plugin auf der » Total Commander-Seite.

Das bzip2-Kommandozeilenprogramm von Redhat:

Benutzer von Win2k SP2 verwenden die aktuelle Version 1.0.2, alle anderen Windows-Benutzer sollten Version 1.00 nehmen. Nach dem Download sollten Sie die Datei in bzip2.exe umbenennen. Kopieren Sie diese zur leichteren Handhabung in ein Verzeichnis im Windows-Pfad, z.B. C:\Windows, wobei C: das Laufwerk Ihrer Windows-Installation ist.

Anmerkung: lang steht für die Sprache und x für das Format, z.B. pdf. Zum entpacken von php_manual_lang.x.bz2 folgen Sie diesen einfachen Schritten:

  • Öffenen Sie die Eingabeaufforderung
  • Springen Sie mit cd in das Verzeichnis, in dem Sie die heruntergeladene Datei php_manual_lang.x.bz2 gespeichert haben
  • Mit bzip2 -d php_manual_lang.x.bz2, entpacken Sie die Datei php_manual_lang.x im selben Verzeichnis

Wenn Sie die Datei php_manual_lang.tar.bz2 heruntergeladen haben, die viele HTML-Dateien enthält, gehen Sie genauso vor. Der einzige Unterschied ist, dass Sie eine Datei namens php_manual_lang.tar erhalten. Die meisten Entpacker unter Windows verstehen das tar Format wie z.B. » WinZip.


Appendices

  • Die Geschichte von PHP und verwandten Projekten
    • Die Geschichte von PHP
    • Geschichte von PHP verwandten Projekten
    • Bücher über PHP
    • Publikationen über PHP
  • Migrating from PHP 7.4.x to PHP 8.0.x
    • New Features
    • Backward Incompatible Changes
    • Deprecated Features
    • Other Changes
  • Migration von PHP 7.3.x auf PHP 7.4.x
    • New Features
    • Neue Klassen und Interfaces
    • Neue Funktionen
    • Neue globale Konstanten
    • Backward Incompatible Changes
    • Deprecated Features
    • Entfernte Extensions
    • Other Changes
    • Windows Support
  • Migration von PHP 7.2.x auf PHP 7.3.x
    • New Features
    • Neue Funktionen
    • Neue globale Konstanten
    • Backward Incompatible Changes
    • Veraltete Features
    • Other Changes
    • Windows-Unterstützung
  • Migration von PHP 7.1.x auf PHP 7.2.x
    • New features
    • Neue Funktionen
    • Neue globale Konstanten
    • Backward incompatible changes
    • Deprecated features in PHP 7.2.x
    • Other changes
  • Migration von PHP 7.0.x nach PHP 7.1.x
    • New features
    • Neue Funktionen
    • Neue globale Konstanten
    • Backward incompatible changes
    • Deprecated features in PHP 7.1.x
    • Changed functions
    • Other changes
    • Windows Support
  • Migration von PHP 5.6.x nach PHP 7.0.x
    • Abwärtsinkompatible Änderungen
    • New features
    • Deprecated features in PHP 7.0.x
    • Geänderte Funktionen
    • New functions
    • Neue Klassen und Interfaces
    • Neue globale Konstanten
    • Changes in SAPI Modules
    • Entfernte Extensions und SAPIs
    • Other Changes
  • Migration von PHP 5.5.x auf PHP 5.6.x
    • Nicht abwärtskompatible Änderungen
    • Neue Features
    • Missbilligte Features in PHP 5.6.x
    • Geänderte Funktionen
    • Neue Funktionen
    • OpenSSL Änderungen in PHP 5.6.x
    • Andere Änderungen bei Extensions
    • Neue globale Konstanten
  • PHP Debugging
    • Über Debugging in PHP
  • Konfigurationsoptionen
    • Liste der Kern-Konfigurationsoptionen
  • php.ini Direktiven
    • Liste der php.ini-Direktiven
    • Liste der php.ini-Abschnitte
    • Beschreibung der php.ini-Direktiven des Sprachkerns
  • Extension-Liste/-Kategorisierung
    • Alphabetisch
    • Zugehörigkeit
    • Status
  • Liste der Funktions-Aliase
  • Liste der reservierten Wörter
    • Liste der Schlüsselwörter
    • Vordefinierte Klassen
    • Vordefinierte Konstanten
    • Liste weiterer reservierter Wörter
  • Liste der Ressource-Typen
  • List of Available Filters
    • String Filters
    • Conversion Filters
    • Compression Filters
    • Encryption Filters
  • Liste der unterstützten Socket-Transporter
    • Internet Domain: TCP, UDP, SSL und TLS
    • Unix-Domain: Unix und UDG
  • Tabelle zu Typenvergleichen in PHP
  • Liste der Parsertoken
  • Userland-Namensregeln
    • Globaler Namensraum
    • Regeln
    • Tipps
  • Über das Handbuch
    • Formate
    • Über die Kommentare (User Notes)
    • Wie man eine Funktionsdefinition (Prototyp) liest
    • In diesem Handbuch beschriebene PHP-Versionen
    • Mehr Informationen über PHP finden
    • Wie man helfen kann, die Dokumentation zu verbessern
    • Wie wir die Formate generieren
    • Übersetzungen
  • Creative Commons Attribution 3.0
  • Verzeichnis der Inhaltsverzeichnisse
    • Funktions- und Methodenverzeichnis
    • Verzeichnis der Beispiele
  • Changelog


Die Geschichte von PHP und verwandten Projekten

Inhaltsverzeichnis

  • Die Geschichte von PHP
  • Geschichte von PHP verwandten Projekten
  • Bücher über PHP
  • Publikationen über PHP

PHP hat seit seiner Entstehung in der Mitte der 90er Jahre einen langen Weg hinter sich, um zu einer der bekanntesten Sprachen für das Web zu werden, war keine einfache Aufgabe. Wenn Sie daran interessiert sind kurz zu sehen, wie PHP zu dem gewachsen ist was es heute ist, dann lesen Sie weiter. Ältere Versionen von PHP finden Sie im » PHP Museum.


Die Geschichte von PHP

PHP Tools, FI, Construction Kit, und PHP/FI

PHP ist der Nachfolger eines älteren Produktes, PHP/FI. PHP/FI wurde 1994 von Rasmus Lerdorf geschaffen. Ursprünglich war PHP/FI ein Set von Common Gateway Interface (CGI) Programmen zur Erfassung der Zugriffe auf seinen Webauftritt. Er nannte dieses Set von Skripten "Personal Home Page Tools", auch bekannt als "PHP Tools". Als dann mehr Funktionalität benötigt wurde, schrieb Rasmus eine viel größere Umsetzung, welche auch mit Datenbanken kommunizieren konnte, und den Benutzern die Entwicklung einfacher dynamischer Webapplikationen, wie Gästebüchern, ermöglichte. Rasmus entschloss sich im Juni 1995, den Sourcecode der PHP Tools zu » veröffentlichen, sodass ihn jeder benutzen, von Fehlern bereinigen, und weiterentwicklen konnte.

Im September dieses Jahres erweiterte Rasmus PHP und verzichtete sogar kurzzeitig auf das PHP im Namen. Nun wurden die Tools FI (kurz für "Formas Interpreter") genannt, und beinhalteten manches an Funktionalität des PHP wie wir es heute kennen. Es besaß Variablen wie in Perl, automatische Interpretation von Formularvariablen und eine in HTML eingebettete Syntax. Die Syntax selbst war der von Perl ähnlich, wenn auch viel eingeschränkter, einfach, und etwas inkonsistent. Tatsächlich mussten HTML-Kommentare verwendet werden, um den Code in eine HTML-Datei einzubetten. Obschon diese Methode nicht überall gut aufgenommen wurde, erfreute sich FI zunehmend an Wachstum und Akzeptanz als CGI-Tool – aber immer noch nicht wirklich als Sprache. Allerdings begann sich das im folgenden Monat zu ändern; im Oktober 1995 veröffentlichte Rasmus ein vollständiges Rewrite des Codes, und nannte es nun kurzzeitig Personal Home Page Construction Kit", und dies wurde als, für damalige Verhältnisse, fortgeschrittenes Skript-Interface angesehen. Die Sprache war absichtlich so gestaltet, dass sie C ähnelte, was die Struktur anging, so dass es leicht von Entwicklern genutzt werden konnte, die mit C, Perl und ähnlichen Sprachen vertraut waren. Soweit war es auf UNIX und POSIX-konforme System beschränkt, aber die Möglichkeit einer Windows NT Implementierung wurde untersucht.

Der Code erhielt eine weitere vollständige Überarbeitung, und im April 1996, führte Rasmus, die Namen der vergangenen Veröffentlichungen kombinierend, PHP/FI ein. Diese Implementierung der zweiten Generation war der Beginn der Entwicklung von PHP von einer Sammlung von Tools in eine richtige Programmiersprache. Es enthielt eingebaute Unterstützung für DBM, mSQL und Postgres95 Datenbanken, Cookies, benutzerdefinierte Funktionen und vieles mehr. PHP/FI 2.0 wurde im November 1997 offiziell freigegeben, nachdem es die meiste Zeit seines Lebenszyklus als verschiedene Betaversionen verbracht hatte.

Obwohl es nur für eine kurze Zeit entwickelt wurde, erfreute es sich zunehmend wachsender Beliebtheit in der noch immer jungen Welt der Web-Entwicklung. In 1997 und 1998 war PHP/FI Kult für mehrere Tausend Nutzer auf der ganzen Welt. Eine Netcraft-Erhebung von Mai 1998 zeigte an, dass nahezu 60.000 Domains HTTP-Header mit dem Inhalt "PHP" versandten, was bedeutete, dass der Host-Server es tatsächlich installiert hatte. Diese Zahl war zu dieser Zeit mit ungefähr 1% aller Domains im Internet gleichzusetzen. Trotz dieser eindrucksvollen Zahlen, stand das weitere Reifen von PHP/FI unter schwierigen vorzeichen, da es im Wesentlichen noch immer von einem Individuum entwickelt wurde.

Beispiel #1 PHP/FI Code-Beispiel

<!--include /text/header.html-->

<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  He, sie verwenden Netscape!<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Pardon, dieser Datensatz ist nicht vorhanden<p>
<!--endif exit-->
  Willkommen <!--$user-->!<p>
  Sie haben auf ihrem Konto <!--$index:0--> Credits übrig.<p>

<!--include /text/footer.html-->

PHP 3

PHP 3.0 war die erste Version, die dem heutigen PHP gleicht. Da sie PHP/FI 2.0 noch immer uneffizient fanden, und Features vermissten, die sie für eine eCommerce-Anwendung benötigten, die sie für ein Universitätsprojekt entwickelten, begannen Andi Gutmans und Zeev Suraski aus Tel Aviv, Israel, 1997 ein weiteres vollständiges Rewrite des unterliegenden Parsers. Sie kontaktierten Rasmus online, und diskutierten diverse Aspekte der aktuellen Implementierung und ihrer Neuentwicklung von PHP. Im Bestreben die Engine zu verbessern, und auf der Basis der bestehenden Benutzer von PHP/FI aufbauend, entschieden sich Andi, Rasmus und Zeev zur Kooperation, um eine neue unabhängige Programmiersprache zu entwickeln. Die gesamte neue Sprache wurde unter einem neuen Namen veröffentlicht, welche die im Namen PHP/FI 2.0 vorhandene Implizierung einer eingeschränkten persönlichen Nutzung beseitigte. Es wurde einfach 'PHP' genannt, ein rekursives Akronym für PHP: Hypertext Preprocessor.

Eine der größten Stärken von PHP 3.0 waren die starken Erweiterungsmöglichkeiten. Zusätzlich zu der soliden Infrastruktur für eine Menge an Datenbanken, Protokollen und APIs, lockten vor allem die Erweiterungsmöglichkeiten von PHP 3 dutzende von Entwicklern an, welche sich beteiligten, und neue Erweiterungsmodule einbrachten. Möglicherweise war das der Schlüssel zu dem gewaltigen Erfolg von PHP 3.0. Weitere besondere Merkmale von PHP 3.0 waren die Unterstützung für objektorientierte Syntax und die viel bessere sowie konsistentere Sprachsyntax.

Im Juni 1998, mit vielen neuen Entwicklern aus der ganzen Welt, die sich dem Einsatz angeschlossen hatten, wurde PHP 3.0 vom neuen PHP-Entwicklungsteam als offizieller Nachfolger für PHP/FI 2.0 angekündigt. Die aktive Entwicklung von PHP/FI 2.0, die von November des Vorjahres an weitgehend eingestellt worden war, wurde nun offiziell beendet. Nach einer ungefähr neunmonatigen öffentlichen Testphase wurde PHP 3.0 offiziell freigegeben. Zu dieser Zeit war es bereits auf über 70.000 Domains in der ganzen Welt installiert, und nicht länger auf POSIX-konforme Betriebssysteme beschränkt. Ein eher kleiner Anteil der Domains, die PHP als installiert angaben, waren auf Servern gehostet, die unter Windows 95, 98 und NT liefen, bzw. auf Macintosh-Rechnern. An seinem Höhepunkt war PHP 3.0 auf etwa 10% der Webserver im Internet installiert.

PHP 4

Im Winter 1998, kurz nach der offiziellen Freigabe von PHP 3.0, begannen Andi Gutmans und Zeev Suraski den Kern von PHP umzuschreiben. Die Ziele waren eine verbesserte Leistung von komplexen Applikationen, und eine verbesserte Modularität des Code-Basis. Solche Applikationen wurden durch die neuen Leistungsmerkmale von PHP 3.0, der Unterstützung einer großen Auswahl von Datenbanken und APIs von Drittanbietern möglich gemacht, aber PHP 3.0 war nicht dafür entworfen, solche komplexen Applikationen auch effizient zu handhaben.

Die neue Engine, tituliert als 'Zend Engine' (aus den Vornamen Zeev und Andi gebildet), entsprach diesen Zielen im Design erfolgreich, und wurde zum ersten Mal Mitte 1999 eingeführt. PHP 4.0, das auf dieser Engine, verbunden mit einer großen Auswahl an zusätzlichen Leistungsmerkmalen basiert, wurde im Mai 2000 offiziell freigegeben, fast zwei Jahre nach seinem Vorgänger PHP 3.0. Zusätzlich zu der stark verbesserten Leistung, inkludierte PHP 4.0 andere wichtige Leistungsmerkmale, wie Unterstützung für viele weitere Webserver, HTTP-Sessions, Ausgabepufferung, sicherere Wege im Umgang mit Benutzereingaben, und verschiedene neue Sprachkonstrukte.

PHP 5

PHP 5 wurde im Juli 2004 nach langer Entwicklung und mehreren Pre-Releases veröffentlicht. Der Kern von PHP 5 ist die Zend Engine 2.0, die ein neues Objektmodell und Dutzende anderer neuer Features einführt.

Das Entwicklerteam von PHP besteht aus Dutzenden von Entwicklern, ergänzt durch Dutzende von weiteren Personen, die an verwandten Projekten wie PEAR, PECL, der Dokumentation, und einer Netzwerkinfrastruktur von gut über einhundert individuellen Webservern auf sechs der sieben Kontinente, arbeiten. Obgleich nur eine Schätzung basierend auf Statistiken der vergangenen Jahre, kann man gewiss davon ausgehen, dass PHP nun auf dutzenden oder vielleicht sogar hunderten von Millionen Domains in der ganzen Welt installiert ist.


Geschichte von PHP verwandten Projekten

PEAR

» PEAR, das PHP Extension and Application Repository (ursprünglich PHP Extension and Add-on Repository) ist PHP's Version von fundamentalen Klassen, und könnte in der Zukunft zu einem der Hauptwege zur Verteilung von PHP Erweiterungen unter Entwicklern werden.

PEAR entstand in Diskussionen während des PHP Developers' Meeting (PDM) vom Januar 2000 in Tel Aviv. Es wurde von Stig S. Bakken geschaffen, und ist seiner erstgeborenen Tochter, Malin Bakken, gewidmet.

Seit Anfang 2000 ist PEAR zu einem großen, signifikanten Projekt mit vielen Entwicklern gewachsen, welche an der Implementierung von gemeinsamer, wiederverwendbarer Funktionalität zum Nutzen der gesamten PHP Gemeinschaft arbeiten. PEAR umfasst heute eine große Auswahl an infrastrukturellen Basisklassen für Datenbankzugriff, Zwischenspeicherung von Inhalten, mathematischen Berechnungen, eCommerce, und viel mehr.

Weitere Informationen zu PEAR sind im » PEAR Manual zu finden.

PHP Initiative zur Qualitätssicherung

Die » PHP Initiative zur Qualitätssicherung wurde im Sommer 2000 als Reaktion auf die Kritik, dass PHP Releases für Produktionssysteme nicht genügend getestet würden, gestartet. Das Team besteht nun aus einer Hauptgruppe von Entwicklern mit einem guten Verständnis der PHP Codebasis. Diese Entwickler stecken eine Menge ihrer Zeit in das auffinden und Beheben von Fehlern in PHP. Zusätzlich gibt es noch viele andere Teammitglieder, die diese Fehlerbehebungen auf den verschiedensten Plattformen testen, und Feedback geben.

PHP-GTK

» PHP-GTK ist die Lösung von PHP, um clientseitige GUI Applikationen zu schreiben. Andrei Zmievski erinnert sich an die Planungs- und Erstellungsphase von PHP-GTK:

GUI Programmierung hat mich immer schon interessiert und ich fand, dass Gtk+ ein sehr nettes Werkzeug ist, außer dass dessen Programmierung in C etwas langwierig ist. Nachdem ich die Implementierungen von PyGtk und GTK-Perl miterlebt habe, entschied ich mich zu sehen, ob PHP ebenfalls mit Gtk+ verbunden werden könnte, wenn auch minimal. Ab August 2000 hatte ich etwas mehr Freizeit, und begann zu experimentieren. Meine Hauptvorlage war die PyGTK Implementierung, denn sie war von den Leistungsmerkmalen her ziemlich komplett, und hatte eine nette objektorientierte Schnittstelle. James Henstridge, der Autor von PyGtk, stand bei diesen ersten Schritten mit hilfreichen Rat zur Seite.

Die Schnittstellen zu all den Gtk+ Funktionen per Hand zu schreiben kam nicht in Frage, und so griff ich die Idee eines Code Generators auf, ähnlich wie es PyGTK tat. Der Code Generator ist ein PHP Programm, das eine Reihe von .defs Dateien mit den Gtk+ Klassen, Konstanten und Information über Methoden liest, und danach C Code generiert, der PHP mit ihnen verbindet. Was nicht automatisch generiert werden kann, wird händisch in eine .overrides Datei geschrieben.

Die Arbeit an dem Code Generator und der Infrastruktur dauerte einige Zeit, da ich im Herbst 2000 nur wenig Zeit für die Arbeit an PHP-GTK erübrigen konnte. Nachdem ich PHP-GTK Frank Kromann gezeigt hatte, bekam er Interesse, und begann mir bei der Arbeit am Code Generator und der Win32 Implementierung zu helfen. Es war richtig aufregend, als wir das erste Hello World Programm schrieben und laufen ließen. Es dauerte noch einige Monate, bis wir das Projekt in einen vorzeigbaren Zustand brachten und am 1. März 2001 die erste Version freigeben konnten. Die Geschichte schlug prompt bei SlashDot ein.

In dem Gefühl, dass PHP-GTK umfangreich werden könnte, habe ich extra Mailinglisten und CVS Repositories dafür eingerichtet, wie auch mit Hilfe von Colin Viebrock die Website gtk.php.net. Die Dokumentation musste ebenfalls erstellt werden, und James Moore begann hierbei zu helfen.

Seit seiner Freigabe gewinnt PHP-GTK an Popularität. Wir haben unser eigenes Dokumentationsteam, das Handbuch wird weiter verbessert, die Leute beginnen Erweiterungen für PHP-GTK, und auch immer mehr Applikationen mit PHP-GTK zu schreiben.


Bücher über PHP

Mit dem Wachsen von PHP, wurde es auch zunehmend als weltweit populäre Entwicklungsplattform anzuerkennen. Eine der Interessantesten Arten dies zu sehen war, die im Laufe der Jahre erscheinenden Bücher über PHP zu beobachten.

Unseres Wissens nach was das erste Buch über PHP 'PHP - tvorba interaktivních internetových aplikací' (PHP - Creating Interactive Internet Applications), ein im im April 1999 erschienenes, von Jirka Kosek geschriebenes tschechisches Buch. Ein Monat später folgte ein von Egon Schmid, Christian Cartus und Richard Blume verfasstes deutsches Buch. Das erste englischsprachige Buch über PHP wurde kurz danach veröffentlicht, es war 'Core PHP Programming' von Leon Atkinson. Diese Bücher behandelten PHP 3.0.

Nachdem diese Bücher die ersten ihrer Art waren, folgte schnell eine große Anzahl Bücher von einer Menge Autoren und Verlegern. Es gibt über 400 englischsprachige Bücher, über 100 Bücher in Deutsch, und über 50 Bücher in Französisch oder Spanisch! Weiterhin gibt es Bücher über PHP in vielen anderen Sprachen, wie Koreanisch, Japanisch und Hebräisch.

Diese große Anzahl von Büchern, die von verschiedenen Autoren geschrieben, und vielen Verlegern veröffentlicht wurden, sowie deren Verfügbarkeit in so vielen Sprachen sind ein guter Beleg für den weltweiten Erfolg von PHP.


Publikationen über PHP

Soweit wir wissen, erschien der erste Artikel über PHP in einem gedruckten Magazin gegen Ende 1998 in der tschechischen Ausgabe der Computerworld, und behandelte PHP 3.0. Wie auch bei den Büchern war dieser der erste von einer ganzen Serie von Artikeln über PHP, welche in verschiedenen populären Magazinen erschienen sind.

Artikel über PHP erschienen in Dr. Dobbs, Linux Enterprise, Linux Magazine und vielen mehr. Artikel über die Migration von ASP-basierten Applikationen nach PHP unter Windows tauchen sogar in Microsoft's eigenem MSDN auf!


Migrating from PHP 7.4.x to PHP 8.0.x

Inhaltsverzeichnis

  • New Features
  • Backward Incompatible Changes
  • Deprecated Features
  • Other Changes

This new major version brings with it a number of new features and some incompatibilities that should be tested for before switching PHP versions in production environments.

Siehe auch die Migrationsleitfäden für PHP-Versionen 7.0.x, 7.1.x, 7.2.x, 7.3.x. 7.4.x.


New Features

PHP Core

Named Arguments

Support for Named Arguments has been added.

Attributes

Support for Attributes has been added.

Constructor Property Promotion

Support for constructor property promotion (declaring properties in the constructor signature) has been added.

Union Types

Support for union types has been added.

Match Expression

Support for match expressions has been added.

Nullsafe Operator

Support for the nullsafe operator (?->) has been added.

Other new Features

  • The WeakMap class has been added.

  • The ValueError class has been added.

  • Any number of function parameters may now be replaced by a variadic argument, as long as the types are compatible. For example, the following code is now allowed:

    <?php
    class A {
         public function     method(int $many, string $parameters, $here) {}
    }
    class     B extends A {
         public function     method(...$everything) {}
    }
    ?>

  • static (as in "late static binding") can now be used as a return type:

    <?php
    class Test {
         public function     create(): static {
              return new static();
         }
    }
    ?>

  • It is now possible to fetch the class name of an object using $object::class. The result is the same as get_class($object).

  • new and instanceof can now be used with arbitrary expressions, using new (expression)(...$args) and $obj instanceof (expression).

  • Some consistency fixes to variable syntax have been applied, for example writing Foo::BAR::$baz is now allowed.

  • Added Stringable interface, which is automatically implemented if a class defines a __toString() method.

  • Traits can now define abstract private methods. Such methods must be implemented by the class using the trait.

  • throw can now be used as an expression. That allows usages like:

    <?php
    $fn     = fn() => throw new Exception('Exception in arrow function');
    $user = $session->user ?? throw new Exception('Must have user');

  • An optional trailing comma is now allowed in parameter lists.

    <?php
    function functionWithLongSignature(
            Type1 $parameter1,
            Type2 $parameter2, // <-- This comma is now allowed.
    ) {
    }

  • It is now possible to write catch (Exception) to catch an exception without storing it in a variable.

  • Support for mixed type has been added.

  • Private methods declared on a parent class no longer enforce any inheritance rules on the methods of a child class (with the exception of final private constructors). The following example illustrates which restrictions have been removed:

    <?php
    class ParentClass {
        private function     method1() {}
        private function     method2() {}
        private static function     method3() {}
            // Throws a warning, as "final" no longer has an effect:
            private final function method4() {}
    }
    class     ChildClass extends ParentClass {
            // All of the following are now allowed, even though the modifiers aren't
        // the same as for the private methods in the parent class.
            public abstract function method1() {}
        public static function     method2() {}
        public function     method3() {}
        public function     method4() {}
    }
    ?>

  • get_resource_id() has been added, which returns the same value as (int) $resource. It provides the same functionality under a clearer API.

Date and Time

  • DateTime::createFromInterface() and DateTimeImmutable::createFromInterface() have been added.

  • The DateTime format specifier p has been added, which is the same as P but returns Z rather than +00:00 for UTC.

DOM

DOMParentNode and DOMChildNode with new traversal and manipulation APIs have been added.

Filter

FILTER_VALIDATE_BOOL has been added as an alias for FILTER_VALIDATE_BOOLEAN. The new name is preferred, as it uses the canonical type name.

Enchant

enchant_dict_add(), enchant_dict_is_added(), and LIBENCHANT_VERSION have been added.

FPM

Added a new option pm.status_listen that allows getting the status from different endpoint (e.g. port or UDS file) which is useful for getting the status when all children are busy with serving long running requests.

Hash

HashContext objects can now be serialized.

Internationalization Functions

The IntlDateFormatter::RELATIVE_FULL,
IntlDateFormatter::RELATIVE_LONG,
IntlDateFormatter::RELATIVE_MEDIUM, and
IntlDateFormatter::RELATIVE_SHORT
constants have been added.

LDAP

ldap_count_references() has been added, which returns the number of reference messages in a search result.

OPcache

If the opcache.record_warnings ini setting is enabled, OPcache will record compile-time warnings and replay them on the next include, even if it is served from cache.

OpenSSL

Added Cryptographic Message Syntax (CMS) (» RFC 5652) support composed of functions for encryption, decryption, signing, verifying and reading. The API is similar to the API for PKCS #7 functions with an addition of new encoding constants: OPENSSL_ENCODING_DER, OPENSSL_ENCODING_SMIME and OPENSSL_ENCODING_PEM:

  • openssl_cms_encrypt() encrypts the message in the file with the certificates and outputs the result to the supplied file.
  • openssl_cms_decrypt() that decrypts the S/MIME message in the file and outputs the results to the supplied file.
  • openssl_cms_read() that exports the CMS file to an array of PEM certificates.
  • openssl_cms_sign() that signs the MIME message in the file with a cert and key and output the result to the supplied file.
  • openssl_cms_verify() that verifies that the data block is intact, the signer is who they say they are, and returns the certs of the signers.

Regular Expressions (Perl-Compatible)

preg_last_error_msg() has been added, which returns a human-readable message for the last PCRE error. It complements preg_last_error(), which returns an integer enum value instead.

Reflection

  • The following methods can now return information about default values of parameters of internal functions:

    • ReflectionParameter::isDefaultValueAvailable()
    • ReflectionParameter::getDefaultValue()
    • ReflectionParameter::isDefaultValueConstant()
    • ReflectionParameter::getDefaultValueConstantName()

SQLite3

SQLite3::setAuthorizer() and respective class constants have been added to set a userland callback that will be used to authorize or not an action on the database.

Standard Library

  • str_contains(), str_starts_with() and str_ends_with() have been added, which check whether haystack contains, starts with or ends with needle, respectively.

  • fdiv() has been added, which performs a floating-point division under IEEE 754 semantics. Division by zero is considered well-defined and will return one of Inf, -Inf or NaN.

  • get_debug_type() has been added, which returns a type useful for error messages. Unlike gettype(), it uses canonical type names, returns class names for objects, and indicates the resource type for resources.

  • printf() and friends now support the %h and %H format specifiers. These are the same as %g and %G, but always use "." as the decimal separator, rather than determining it through the LC_NUMERIC locale.

  • printf() and friends now support using "*" as width or precision, in which case the width/precision is passed as an argument to printf. This also allows using precision -1 with %g, %G, %h and %H. For example, the following code can be used to reproduce PHP's default floating point formatting:

    <?php
    printf    ("%.*H", (int) ini_get("precision"), $float);
    printf("%.*H", (int) ini_get("serialize_precision"), $float);
    ?>

  • proc_open() now supports pseudo-terminal (PTY) descriptors. The following attaches stdin, stdout and stderr to the same PTY:

    <?php
    $proc     = proc_open($command, [['pty'], ['pty'], ['pty']], $pipes);
    ?>

  • proc_open() now supports socket pair descriptors. The following attaches a distinct socket pair to stdin, stdout and stderr:

    <?php
    $proc     = proc_open($command, [['socket'], ['socket'], ['socket']], $pipes);
    ?>

    Unlike pipes, sockets do not suffer from blocking I/O issues on Windows. However, not all programs may work correctly with stdio sockets.

  • Sorting functions are now stable, which means that equal-comparing elements will retain their original order.

  • array_diff(), array_intersect() and their variations can now be used with a single array as argument. This means that usages like the following are now possible:

    <?php
    // OK even if $excludes is empty:
    array_diff($array, ...$excludes);
    // OK even if $arrays only contains a single array:
    array_intersect(...$arrays);
    ?>

  • The flag parameter of ob_implicit_flush() was changed to accept a bool rather than an int.

Tokenizer

PhpToken adds an object-based interface to the tokenizer. It provides a more uniform and ergonomic representation, while being more memory efficient and faster.

Zip

  • The Zip extension has been updated to version 1.19.1.

  • New ZipArchive::setMtimeName() and ZipArchive::setMtimeIndex() to set the modification time of an entry.

  • New ZipArchive::registerProgressCallback() to provide updates during archive close.

  • New ZipArchive::registerCancelCallback() to allow cancellation during archive close.

  • New ZipArchive::replaceFile() to replace an entry content.

  • New ZipArchive::isCompressionMethodSupported() to check optional compression features.

  • New ZipArchive::isEncryptionMethodSupported() to check optional encryption features.

  • The ZipArchive::lastId property to get the index value of the last added entry has been added.

  • Errors can now be checked after an archive has been closed using the
ZipArchive::status and
ZipArchive::statusSys properties, or the
ZipArchive::getStatusString() method.

  • The 'remove_path' option of ZipArchive::addGlob() and ZipArchive::addPattern() is now treated as an arbitrary string prefix (for consistency with the 'add_path' option), whereas formerly it was treated as a directory name.

  • Optional compression / encryption features are now listed in phpinfo.


Backward Incompatible Changes

PHP Core

String to Number Comparison

Non-strict comparisons between numbers and non-numeric strings now work by casting the number to string and comparing the strings. Comparisons between numbers and numeric strings continue to work as before. Notably, this means that 0 == "not-a-number" is considered false now.

Comparison | Before | After
0 == "0" | true | true
0 == "0.0" | true | true
0 == "foo" | true | false
0 == "" | true | false
42 == " 42" | true | true
42 == "42foo" | true | false

Other incompatible Changes

  • match is now a reserved keyword.

  • Assertion failures now throw by default. If the old behavior is desired, assert.exception=0 can be set in the INI settings.

  • Methods with the same name as the class are no longer interpreted as constructors. The __construct() method should be used instead.

  • The ability to call non-static methods statically has been removed. Thus is_callable() will fail when checking for a non-static method with a classname (must check with an object instance).

  • The (real) and (unset) casts have been removed.

  • The track_errors ini directive has been removed. This means that php_errormsg is no longer available. The error_get_last() function may be used instead.

  • The ability to define case-insensitive constants has been removed. The third argument to define() may no longer be true.

  • The ability to specify an autoloader using an __autoload() function has been removed. spl_autoload_register() should be used instead.

  • The errcontext argument will no longer be passed to custom error handlers set with set_error_handler().

  • create_function() has been removed. Anonymous functions may be used instead.

  • each() has been removed. foreach or ArrayIterator should be used instead.

  • The ability to unbind this from closures that were created from a method, using Closure::fromCallable() or ReflectionMethod::getClosure(), has been removed.

  • The ability to unbind this from proper closures that contain uses of this has also been removed.

  • The ability to use array_key_exists() with objects has been removed. isset() or property_exists() may be used instead.

  • The behavior of array_key_exists() regarding the type of the key parameter has been made consistent with isset() and normal array access. All key types now use the usual coercions and array/object keys throw a TypeError.

  • Any array that has a number n as its first numeric key will use n+1 for its next implicit key, even if n is negative.

  • The default error_reporting level is now E_ALL. Previously it excluded E_NOTICE and E_DEPRECATED.

  • display_startup_errors is now enabled by default.

  • Using parent inside a class that has no parent will now result in a fatal compile-time error.

  • The @ operator will no longer silence fatal errors (E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR, E_RECOVERABLE_ERROR, E_PARSE). Error handlers that expect error_reporting to be 0 when @ is used, should be adjusted to use a mask check instead:

    <?php
    // Replace
    function my_error_handler($err_no, $err_msg, $filename, $linenum) {
        if (    error_reporting() == 0) {
            return     false; // Silenced
            }
            // ...
    }

    // With
    function my_error_handler($err_no, $err_msg, $filename, $linenum) {
        if (!(    error_reporting() & $err_no)) {
            return     false; // Silenced
            }
            // ...
    }
    ?>

    Additionally, care should be taken that error messages are not displayed in production environments, which can result in information leaks. Please ensure that display_errors=Off is used in conjunction with error logging.

  • #[ is no longer interpreted as the start of a comment, as this syntax is now used for attributes.

  • Inheritance errors due to incompatible method signatures (LSP violations) will now always generate a fatal error. Previously a warning was generated in some cases.

  • The precedence of the concatenation operator has changed relative to bitshifts and addition as well as subtraction.

    <?php
    echo "Sum: " . $a + $b;
    // was previously interpreted as:
    echo ("Sum: " . $a) + $b;
    // is now interpreted as:
    echo "Sum:" . ($a + $b);
    ?>

  • Arguments with a default value that resolves to null at runtime will no longer implicitly mark the argument type as nullable. Either an explicit nullable type, or an explicit null default value has to be used instead.

    <?php
    // Replace
    function test(int $arg = CONST_RESOLVING_TO_NULL) {}
    // With
    function test(?int $arg = CONST_RESOLVING_TO_NULL) {}
    // Or
    function test(int $arg = null) {}
    ?>

  • A number of warnings have been converted into Error exceptions:

    • Attempting to write to a property of a non-object. Previously this implicitly created an stdClass object for null, false and empty strings.
    • Attempting to append an element to an array for which the PHP_INT_MAX key is already used.
    • Attempting to use an invalid type (array or object) as an array key or string offset.
    • Attempting to write to an array index of a scalar value.
    • Attempting to unpack a non-array/Traversable.
    • Attempting to access unqualified constants which are undefined. Previously, unqualified constant accesses resulted in a warning and were interpreted as strings.

    A number of notices have been converted into warnings:

    • Attempting to read an undefined variable.
    • Attempting to read an undefined property.
    • Attempting to read an undefined array key.
    • Attempting to read a property of a non-object.
    • Attempting to access an array index of a non-array.
    • Attempting to convert an array to string.
    • Attempting to use a resource as an array key.
    • Attempting to use null, a boolean, or a float as a string offset.
    • Attempting to read an out-of-bounds string offset.
    • Attempting to assign an empty string to a string offset.

  • Attempting to assign multiple bytes to a string offset will now emit a warning.

  • Unexpected characters in source files (such as NUL bytes outside of strings) will now result in a ParseError exception instead of a compile warning.

  • Uncaught exceptions now go through "clean shutdown", which means that destructors will be called after an uncaught exception.

  • The compile time fatal error "Only variables can be passed by reference" has been delayed until runtime, and converted into an "Argument cannot be passed by reference" Error exception.

  • Some "Only variables should be passed by reference" notices have been converted to "Argument cannot be passed by reference" exception.

  • The generated name for anonymous classes has changed. It will now include the name of the first parent or interface:

    <?php
    new class extends ParentClass {};
    // -> ParentClass@anonymous
    new class implements FirstInterface, SecondInterface {};
    // -> FirstInterface@anonymous
    new class {};
    // -> class@anonymous
    ?>

    The name shown above is still followed by a NUL byte and a unique suffix.

  • Non-absolute trait method references in trait alias adaptations are now required to be unambiguous:

    <?php
    class X {
        use     T1, T2 {
                func as otherFunc;
        }
        function     func() {}
    }
    ?>

    If both T1::func() and T2::func() exist, this code was previously silently accepted, and func was assumed to refer to T1::func. Now it will generate a fatal error instead, and either T1::func or T2::func needs to be written explicitly.

  • The signature of abstract methods defined in traits is now checked against the implementing class method:

    <?php
    trait MyTrait {
        abstract private function     neededByTrait(): string;
    }

    class     MyClass {
        use     MyTrait;

            // Error, because of return type mismatch.
            private function neededByTrait(): int { return 42; }
    }
    ?>

  • Disabled functions are now treated exactly like non-existent functions. Calling a disabled function will report it as unknown, and redefining a disabled function is now possible.

  • data:// stream wrappers are no longer writable, which matches the documented behavior.

  • The arithmetic and bitwise operators +, -, *, /, **, %, <<, >>, &, |, ^, ~, ++, -- will now consistently throw a TypeError when one of the operands is an Array, Ressource or non-overloaded Objekt. The only exception to this is the array + array merge operation, which remains supported.

  • Float to string casting will now always behave locale-independently.

    <?php
    setlocale    (LC_ALL, "de_DE");
    $f = 3.14;
    echo     $f, "\n";
    // Previously: 3,14
    // Now:        3.14
    ?>

    See printf(), number_format() and NumberFormatter() for ways to customize number formatting.

  • Support for deprecated curly braces for offset access has been removed.

    <?php
    // Instead of:
    $array{0};
    $array{"key"};
    // Write:
    $array[0];
    $array["key"];
    ?>

  • Applying the final modifier on a private method will now produce a warning unless that method is the constructor.

  • If an object constructor exit()s, the object destructor will no longer be called. This matches the behavior when the constructor throws.

  • Namespaced names can no longer contain whitespace: While Foo\Bar will be recognized as a namespaced name, Foo \ Bar will not. Conversely, reserved keywords are now permitted as namespace segments, which may also change the interpretation of code: new\x is now the same as constant('new\x'), not new \x().

  • Nested ternaries now require explicit parentheses.

  • debug_backtrace() and Exception::getTrace() will no longer provide references to arguments. It will not be possible to change function arguments through the backtrace.

  • Numeric string handling has been altered to be more intuitive and less error-prone. Trailing whitespace is now allowed in numeric strings for consistency with how leading whitespace is treated. This mostly affects:

    • The is_numeric() function
    • String-to-string comparisons
    • Type declarations
    • Increment and decrement operations

    The concept of a "leading-numeric string" has been mostly dropped; the cases where this remains exist in order to ease migration. Strings which emitted an E_NOTICE "A non well-formed numeric value encountered" will now emit an E_WARNING "A non-numeric value encountered" and all strings which emitted an E_WARNING "A non-numeric value encountered" will now throw a TypeError. This mostly affects:

    • Arithmetic operations
    • Bitwise operations

    This E_WARNING to TypeError change also affects the E_WARNING "Illegal string offset 'string'" for illegal string offsets. The behavior of explicit casts to int/float from strings has not been changed.

  • Magic Methods will now have their arguments and return types checked if they have them declared. The signatures should match the following list:

    • __call(string $name, array $arguments): mixed
    • __callStatic(string $name, array $arguments): mixed
    • __clone(): void
    • __debugInfo(): ?array
    • __get(string $name): mixed
    • __invoke(mixed $arguments): mixed
    • __isset(string $name): bool
    • __serialize(): array
    • __set(string $name, mixed $value): void
    • __set_state(array $properties): object
    • __sleep(): array
    • __unserialize(array $data): void
    • __unset(string $name): void
    • __wakeup(): void

  • call_user_func_array() array keys will now be interpreted as parameter names, instead of being silently ignored.

  • Declaring a function called assert() inside a namespace is no longer allowed, and issues E_COMPILE_ERROR. The assert() function is subject to special handling by the engine, which may lead to inconsistent behavior when defining a namespaced function with the same name.

Resource to Object Migration

Several Ressources have been migrated to Objekts. Return value checks using is_resource() should be replaced with checks for false.

  • curl_init() will now return a CurlHandle object rather than a Ressource. The curl_close() function no longer has an effect, instead the CurlHandle instance is automatically destroyed if it is no longer referenced.

  • curl_multi_init() will now return a CurlMultiHandle object rather than a Ressource. The curl_multi_close() function no longer has an effect, instead the CurlMultiHandle instance is automatically destroyed if it is no longer referenced.

  • curl_share_init() will now return a CurlShareHandle object rather than a Ressource. The curl_share_close() function no longer has an effect, instead the CurlShareHandle instance is automatically destroyed if it is no longer referenced.

  • enchant_broker_init() will now return an EnchantBroker object rather than a Ressource.

  • enchant_broker_request_dict() and enchant_broker_request_pwl_dict() will now return an EnchantDictionary object rather than a Ressource.

  • The GD extension now uses GdImage objects as the underlying data structure for images, rather than Ressources. The imagedestroy() function no longer has an effect; instead the GdImage instance is automatically destroyed if it is no longer referenced.

  • openssl_x509_read() and openssl_csr_sign() will now return an OpenSSLCertificate object rather than a Ressource. The openssl_x509_free() function is deprecated and no longer has an effect, instead the OpenSSLCertificate instance is automatically destroyed if it is no longer referenced.

  • openssl_csr_new() will now return an OpenSSLCertificateSigningRequest object rather than a Ressource.

  • openssl_pkey_new() will now return an OpenSSLAsymmetricKey object rather than a Ressource. The openssl_pkey_free() function is deprecated and no longer has an effect, instead the OpenSSLAsymmetricKey instance is automatically destroyed if it is no longer referenced.

  • shmop_open() will now return a Shmop object rather than a Ressource. The shmop_close() function no longer has an effect, and is deprecated; instead the Shmop instance is automatically destroyed if it is no longer referenced.

  • socket_create(), socket_create_listen(), socket_accept(), socket_import_stream(), socket_addrinfo_connect(), socket_addrinfo_bind(), and socket_wsaprotocol_info_import() will now return a Socket object rather than a Ressource. socket_addrinfo_lookup() will now return an array of AddressInfo objects rather than Ressources.

  • msg_get_queue() will now return an SysvMessageQueue object rather than a Ressource.

  • sem_get() will now return an SysvSemaphore object rather than a Ressource.

  • shm_attach() will now return an SysvSharedMemory object rather than a Ressource.

  • xml_parser_create() and xml_parser_create_ns() will now return an XMLParser object rather than a Ressource. The xml_parser_free() function no longer has an effect, instead the XMLParser instance is automatically destroyed if it is no longer referenced.

  • The XMLWriter functions now accept and return, respectively, XMLWriter objects instead of Ressources.

  • inflate_init() will now return an InflateContext object rather than a Ressource.

  • deflate_init() will now return a DeflateContext object rather than a Ressource.

COM and .Net (Windows)

The ability to import case-insensitive constants from type libraries has been removed. The second argument to com_load_typelib() may no longer be false; com.autoregister_casesensitive may no longer be disabled; case-insensitive markers in com.typelib_file are ignored.

CURL

CURLOPT_POSTFIELDS no longer accepts objects as arrays. To interpret an object as an array, perform an explicit (array) cast. The same applies to other options accepting arrays as well.

Date and Time

mktime() and gmmktime() now require at least one argument. time() can be used to get the current timestamp.

DOM

Unimplemented classes from the DOM extension that had no behavior and contained test data have been removed. These classes have also been removed in the latest version of the DOM standard:

  • DOMNameList
  • DomImplementationList
  • DOMConfiguration
  • DomError
  • DomErrorHandler
  • DOMImplementationSource
  • DOMLocator
  • DOMUserDataHandler
  • DOMTypeInfo

Enchant

  • enchant_broker_list_dicts(), enchant_broker_describe() and enchant_dict_suggest() will now return an empty array instead of null.

Exif

read_exif_data() has been removed; exif_read_data() should be used instead.

Filter

  • The FILTER_FLAG_SCHEME_REQUIRED and FILTER_FLAG_HOST_REQUIRED flags for the FILTER_VALIDATE_URL filter have been removed. The scheme and host are (and have been) always required.

  • The INPUT_REQUEST and INPUT_SESSION source for filter_input() etc. have been removed. These were never implemented and their use always generated a warning.

GD

  • The deprecated functions image2wbmp() has been removed.

  • The deprecated functions png2wbmp() and jpeg2wbmp() have been removed.

  • The default mode parameter of imagecropauto() no longer accepts -1. IMG_CROP_DEFAULT should be used instead.

  • On Windows, php_gd2.dll has been renamed to php_gd.dll.

GMP

gmp_random() has been removed. One of gmp_random_range() or gmp_random_bits() should be used instead.

Iconv

iconv implementations which do not properly set errno in case of errors are no longer supported.

IMAP

  • The unused default_host argument of imap_headerinfo() has been removed.

  • The imap_header() function which is an alias of imap_headerinfo() has been removed.

Internationalization Functions

  • The deprecated constant INTL_IDNA_VARIANT_2003 has been removed.

  • The deprecated Normalizer::NONE constant has been removed.

LDAP

  • The deprecated functions ldap_sort(),
ldap_control_paged_result() and
ldap_control_paged_result_response() have been removed.

  • The interface of ldap_set_rebind_proc() has changed; the callback parameter does not accept empty strings anymore; null should be used instead.

MBString

  • The mbstring.func_overload directive has been removed. The related MB_OVERLOAD_MAIL, MB_OVERLOAD_STRING, and MB_OVERLOAD_REGEX constants have also been removed. Finally, the "func_overload" and "func_overload_list" entries in mb_get_info() have been removed.

  • mb_parse_str() can no longer be used without specifying a result array.

  • A number of deprecated mbregex aliases have been removed. See the following list for which functions should be used instead:

    • mbregex_encoding() ? mb_regex_encoding()
    • mbereg() ? mb_ereg()
    • mberegi() ? mb_eregi()
    • mbereg_replace() ? mb_ereg_replace()
    • mberegi_replace() ? mb_eregi_replace()
    • mbsplit() ? mb_split()
    • mbereg_match() ? mb_ereg_match()
    • mbereg_search() ? mb_ereg_search()
    • mbereg_search_pos() ? mb_ereg_search_pos()
    • mbereg_search_regs() ? mb_ereg_search_regs()
    • mbereg_search_init() ? mb_ereg_search_init()
    • mbereg_search_getregs() ? mb_ereg_search_getregs()
    • mbereg_search_getpos() ? mb_ereg_search_getpos()
    • mbereg_search_setpos() ? mb_ereg_search_setpos()

  • The e modifier for mb_ereg_replace() has been removed. mb_ereg_replace_callback() should be used instead.

  • A non-string pattern argument to mb_ereg_replace() will now be interpreted as a string instead of an ASCII codepoint. The previous behavior may be restored with an explicit call to chr().

  • The needle argument for mb_strpos(),
mb_strrpos(), mb_stripos(),
mb_strripos(), mb_strstr(),
mb_stristr(), mb_strrchr() and
mb_strrichr() can now be empty.

  • The is_hex parameter, which was not used internally, has been removed from mb_decode_numericentity().

  • The legacy behavior of passing the encoding as the third argument instead of an offset for the mb_strrpos() function has been removed; an explicit 0 offset with the encoding should be provided as the fourth argument instead.

  • The ISO_8859-* character encoding aliases have been replaced by ISO8859-* aliases for better interoperability with the iconv extension. The mbregex ISO 8859 aliases with underscores (ISO_8859_* and ISO8859_*) have also been removed.

  • mb_ereg() and mb_eregi() will now return boolean true on a successful match. Previously they returned integer 1 if matches was not passed, or max(1, strlen($matches[0])) if matches was passed.

OCI8

  • The OCI-Lob class is now called OCILob, and the OCI-Collection class is now called OCICollection for name compliance enforced by PHP 8 arginfo type annotation tooling.

  • Several alias functions have been marked as deprecated.

  • oci_internal_debug() and its alias ociinternaldebug() have been removed.

ODBC

  • odbc_connect() no longer reuses connections.

  • The unused flags parameter of odbc_exec() has been removed.

OpenSSL

  • openssl_seal() and openssl_open() now require method to be passed, as the previous default of "RC4" is considered insecure.

Regular Expressions (Perl-Compatible)

When passing invalid escape sequences they are no longer interpreted as literals. This behavior previously required the X modifier – which is now ignored.

PHP Data Objects

  • The default error handling mode has been changed from "silent" to "exceptions". See Errors and error handling for details.

  • The signatures of some PDO methods have changed:

    • PDO::query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs)
    • PDOStatement::setFetchMode(int $mode, mixed ...$args)

PDO ODBC

The php.ini directive pdo_odbc.db2_instance_name has been removed.

PDO MySQL

PDO::inTransaction() now reports the actual transaction state of the connection, rather than an approximation maintained by PDO. If a query that is subject to "implicit commit" is executed, PDO::inTransaction() will subsequently return false, as a transaction is no longer active.

PostgreSQL

  • The deprecated pg_connect() syntax using multiple parameters instead of a connection string is no longer supported.

  • The deprecated pg_lo_import() and pg_lo_export() signature that passes the connection as the last argument is no longer supported. The connection should be passed as first argument instead.

  • pg_fetch_all() will now return an empty array instead of false for result sets with zero rows.

Phar

Metadata associated with a phar will no longer be automatically unserialized, to fix potential security vulnerabilities due to object instantiation, autoloading, etc.

Reflection

  • The method signatures

    • ReflectionClass::newInstance($args)
    • ReflectionFunction::invoke($args)
    • ReflectionMethod::invoke($object, $args)

    have been changed to:

    • ReflectionClass::newInstance(...$args)
    • ReflectionFunction::invoke(...$args)
    • ReflectionMethod::invoke($object, ...$args)

    Code that must be compatible with both PHP 7 and PHP 8 can use the following signatures to be compatible with both versions:

    • ReflectionClass::newInstance($arg = null, ...$args)
    • ReflectionFunction::invoke($arg = null, ...$args)
    • ReflectionMethod::invoke($object, $arg = null, ...$args)

  • The ReflectionType::__toString() method will now return a complete debug representation of the type, and is no longer deprecated. In particular the result will include a nullability indicator for nullable types. The format of the return value is not stable and may change between PHP versions.

  • Reflection export() methods have been removed. Instead reflection objects can be cast to string.

  • ReflectionMethod::isConstructor() and
ReflectionMethod::isDestructor() now also return true for
__construct() and
__destruct() methods of interfaces.
Previously, this would only be true for methods of classes and traits.

  • ReflectionType::isBuiltin() method has been moved to ReflectionNamedType. ReflectionUnionType does not have it.

Sockets

  • The deprecated AI_IDN_ALLOW_UNASSIGNED and AI_IDN_USE_STD3_ASCII_RULES flags for socket_addrinfo_lookup() have been removed.

Standard PHP Library (SPL)

  • SplFileObject::fgetss() has been removed.

  • SplFileObject::seek() now always seeks to the beginning of the line. Previously, positions =1 sought to the beginning of the next line.

  • SplHeap::compare() now specifies a method signature. Inheriting classes implementing this method will now have to use a compatible method signature.

  • SplDoublyLinkedList::push(), SplDoublyLinkedList::unshift() and SplQueue::enqueue() now return void instead of true.

  • spl_autoload_register() will now always throw a TypeError on invalid arguments, therefore the second argument do_throw is ignored and a notice will be emitted if it is set to false.

  • SplFixedArray is now an IteratorAggregate and not an Iterator. SplFixedArray::rewind(), SplFixedArray::current(), SplFixedArray::key(), SplFixedArray::next(), and SplFixedArray::valid() have been removed. In their place, SplFixedArray::getIterator() has been added. Any code which uses explicit iteration over SplFixedArray must now obtain an Iterator through SplFixedArray::getIterator(). This means that SplFixedArray is now safe to use in nested loops.

Standard Library

  • assert() will no longer evaluate string arguments, instead they will be treated like any other argument. assert($a == $b) should be used instead of assert('$a == $b'). The assert.quiet_eval ini directive and the ASSERT_QUIET_EVAL constant have also been removed, as they would no longer have any effect.

  • parse_str() can no longer be used without specifying a result array.

  • The string.strip_tags filter has been removed.

  • The needle argument of strpos(), strrpos(), stripos(), strripos(), strstr(), strchr(), strrchr(), and stristr() will now always be interpreted as a string. Previously non-string needles were interpreted as an ASCII code point. An explicit call to chr() can be used to restore the previous behavior.

  • The needle argument for strpos(),
strrpos(), stripos(), strripos(),
strstr(), stristr() and strrchr() can
now be empty.

  • The length argument for substr(), substr_count(), substr_compare(), and iconv_substr() can now be null. null values will behave as if no length argument was provided and will therefore return the remainder of the string instead of an empty string.

  • The length argument for array_splice() can now be null. null values will behave identically to omitting the argument, thus removing everything from the offset to the end of the array.

  • The args argument of vsprintf(), vfprintf(), and vprintf() must now be an array. Previously any type was accepted.

  • The 'salt' option of password_hash() is no longer supported. If the 'salt' option is used a warning is generated, the provided salt is ignored, and a generated salt is used instead.

  • The quotemeta() function will now return an empty string if an empty string was passed. Previously false was returned.

  • The following functions have been removed:

    • hebrevc()
    • convert_cyr_string()
    • money_format()
    • ezmlm_hash()
    • restore_include_path()
    • get_magic_quotes_gpc()
    • get_magic_quotes_runtime()
    • fgetss()

  • FILTER_SANITIZE_MAGIC_QUOTES has been removed.

  • Calling implode() with parameters in a reverse order ($pieces, $glue) is no longer supported.

  • parse_url() will now distinguish absent and empty queries and fragments:

    • http://example.com/foo ? query = null, fragment = null
    • http://example.com/foo? ? query = "", fragment = null
    • http://example.com/foo# ? query = null, fragment = ""
    • http://example.com/foo?# ? query = "", fragment = ""
    Previously all cases resulted in query and fragment being null.

  • var_dump() and debug_zval_dump() will now print floating-point numbers using serialize_precision rather than precision. In a default configuration, this means that floating-point numbers are now printed with full accuracy by these debugging functions.

  • If the array returned by __sleep() contains non-existing properties, these are now silently ignored. Previously, such properties would have been serialized as if they had the value null.

  • The default locale on startup is now always "C". No locales are inherited from the environment by default. Previously, LC_ALL was set to "C", while LC_CTYPE was inherited from the environment. However, some functions did not respect the inherited locale without an explicit setlocale() call. An explicit setlocale() call is now always required if a locale component should be changed from the default.

  • The deprecated DES fallback in crypt() has been removed. If an unknown salt format is passed to crypt(), the function will fail with *0 instead of falling back to a weak DES hash now.

  • Specifying out of range rounds for SHA256/SHA512 crypt() will now fail with *0 instead of clamping to the closest limit. This matches glibc behavior.

  • The result of sorting functions may have changed, if the array contains elements that compare as equal.

  • Any functions accepting callbacks that are not explicitly specified to accept parameters by reference will now warn if a callback with reference parameters is used. Examples include array_filter() and array_reduce(). This was already the case for most, but not all, functions previously.

  • The HTTP stream wrapper as used by functions like file_get_contents() now advertises HTTP/1.1 rather than HTTP/1.0 by default. This does not change the behavior of the client, but may cause servers to respond differently. To retain the old behavior, set the 'protocol_version' stream context option, e.g.

    <?php
    $ctx     = stream_context_create(['http' => ['protocol_version' => '1.0']]);
    echo     file_get_contents('http://example.org', false, $ctx);
    ?>

  • Calling crypt() without an explicit salt is no longer supported. If you would like to produce a strong hash with an auto-generated salt, use password_hash() instead.

  • substr(), mb_substr(), iconv_substr() and grapheme_substr() now consistently clamp out-of-bounds offsets to the string boundary. Previously, false was returned instead of the empty string in some cases.

  • On Windows, the program execution functions (proc_open(), exec(), popen() etc.) using the shell, now consistently execute %comspec% /s /c "$commandline", which has the same effect as executing $commandline (without additional quotes).

Sysvsem

  • The auto_release parameter of sem_get() was changed to accept bool values rather than int.

Tidy

  • The use_include_path parameter, which was not used internally, has been removed from tidy_repair_string().

  • tidy::repairString() and tidy::repairFile() became static methods.

Tokenizer

  • T_COMMENT tokens will no longer include a trailing newline. The newline will instead be part of a following T_WHITESPACE token. It should be noted that T_COMMENT is not always followed by whitespace, it may also be followed by T_CLOSE_TAG or end-of-file.

  • Namespaced names are now represented using the T_NAME_QUALIFIED (Foo\Bar), T_NAME_FULLY_QUALIFIED (\Foo\Bar) and T_NAME_RELATIVE (namespace\Foo\Bar) tokens. T_NS_SEPARATOR is only used for standalone namespace separators, and only syntactially valid in conjunction with group use declarations.

XMLReader

XMLReader::open() and XMLReader::xml() are now static methods. They can still be called as instance methods, but inheriting classes need to declare them as static if they override these methods.

XML-RPC

The XML-RPC extension has been moved to PECL and is no longer part of the PHP distribution.

Zip

ZipArchive::OPSYS_Z_CPM has been removed (this name was a typo). Use ZipArchive::OPSYS_CPM instead.

Zlib

  • gzgetss() has been removed.

  • zlib.output_compression is no longer automatically disabled for Content-Type: image/*.

Windows PHP Test Packs

The test runner has been renamed from run-test.php to run-tests.php, to match its name in php-src.


Deprecated Features

PHP Core

  • If a parameter with a default value is followed by a required parameter, the default value has no effect. This is deprecated as of PHP 8.0.0 and can generally be resolved by dropping the default value, without a change in functionality:

    <?php
    function test($a = [], $b) {} // Before
    function test($a, $b) {}      // After
    ?>

    One exception to this rule are parameters of the form Type $param = null, where the null default makes the type implicitly nullable. This usage remains allowed, but it is recommended to use an explicit nullable type instead:

    <?php
    function test(A $a = null, $b) {} // Still allowed
    function test(?A $a, $b) {}       // Recommended
    ?>

  • Calling get_defined_functions() with exclude_disabled explicitly set to false is deprecated and no longer has an effect. get_defined_functions() will never include disabled functions.

Enchant

  • enchant_broker_set_dict_path() and enchant_broker_get_dict_path() are deprecated, because that functionality is neither available in libenchant < 1.5 nor in libenchant-2.

  • enchant_dict_add_to_personal() is deprecated; use enchant_dict_add() instead.

  • enchant_dict_is_in_session() is deprecated; use enchant_dict_is_added() instead.

  • enchant_broker_free() and enchant_broker_free_dict() are deprecated; unset the object instead.

  • The ENCHANT_MYSPELL and ENCHANT_ISPELL constants are deprecated.

LibXML

libxml_disable_entity_loader() has been deprecated. As libxml 2.9.0 is now required, external entity loading is guaranteed to be disabled by default, and this function is no longer needed to protect against XXE attacks.

PGSQL / PDO PGSQL

  • The constant PGSQL_LIBPQ_VERSION_STR now has the same value as PGSQL_LIBPQ_VERSION, and thus is deprecated.

  • Function aliases in the pgsql extension have been deprecated. See the following list for which functions should be used instead:

    • pg_errormessage() ? pg_last_error()
    • pg_numrows() ? pg_num_rows()
    • pg_numfields() ? pg_num_fields()
    • pg_cmdtuples() ? pg_affected_rows()
    • pg_fieldname() ? pg_field_name()
    • pg_fieldsize() ? pg_field_size()
    • pg_fieldtype() ? pg_field_type()
    • pg_fieldnum() ? pg_field_num()
    • pg_result() ? pg_fetch_result()
    • pg_fieldprtlen() ? pg_field_prtlen()
    • pg_fieldisnull() ? pg_field_is_null()
    • pg_freeresult() ? pg_free_result()
    • pg_getlastoid() ? pg_last_oid()
    • pg_locreate() ? pg_lo_create()
    • pg_lounlink() ? pg_lo_unlink()
    • pg_loopen() ? pg_lo_open()
    • pg_loclose() ? pg_lo_close()
    • pg_loread() ? pg_lo_read()
    • pg_lowrite() ? pg_lo_write()
    • pg_loreadall() ? pg_lo_read_all()
    • pg_loimport() ? pg_lo_import()
    • pg_loexport() ? pg_lo_export()
    • pg_setclientencoding() ? pg_set_client_encoding()
    • pg_clientencoding() -> pg_client_encoding()

Standard Library

  • Sort comparison functions that return true or false will now throw a deprecation warning, and should be replaced with an implementation that returns an integer less than, equal to, or greater than zero.

    <?php
    // Replace
    usort($array, fn($a, $b) => $a > $b);
    // With
    usort($array, fn($a, $b) => $a <=> $b);
    ?>

Zip

  • Using an empty file as ZipArchive is deprecated. Libzip 1.6.0 does not accept empty files as valid zip archives any longer. The existing workaround will be removed in the next version.

  • The procedural API of Zip is deprecated. Use ZipArchive instead. Iteration over all entries can be accomplished using ZipArchive::statIndex() and a for loop:

    <?php
    // iterate using the procedural API
    assert(is_resource($zip));
    while (    $entry = zip_read($zip)) {
        echo     zip_entry_name($entry);
    }

    // iterate using the object-oriented API
    assert($zip instanceof ZipArchive);
    for (    $i = 0; $entry = $zip->statIndex($i); $i++) {
        echo     $entry['name'];
    }
    ?>

Reflection

  • ReflectionFunction::isDisabled() is deprecated, as it is no longer possible to create a ReflectionFunction for a disabled function. This method now always returns false.

  • ReflectionParameter::getClass(),
ReflectionParameter::isArray(), and
ReflectionParameter::isCallable() are deprecated.
ReflectionParameter::getType() and the
ReflectionType APIs should be used instead.


Other Changes

Changes in SAPI Modules

Apache2Handler

The PHP module has been renamed from php7_module to php_module.

Changed Functions

Reflection

ReflectionClass::getConstants() and ReflectionClass::getReflectionConstants() results can be now filtered via a new parameter filter. Three new constants were added to be used with it:

  • ReflectionClassConstant::IS_PUBLIC
  • ReflectionClassConstant::IS_PROTECTED
  • ReflectionClassConstant::IS_PRIVATE

Zip

  • The ZipArchive::addGlob() and ZipArchive::addPattern() methods accept more values in the options array argument:

    • flags
    • comp_method
    • comp_flags
    • env_method
    • enc_password

  • ZipArchive::addEmptyDir(), ZipArchive::addFile() and ZipArchive::addFromString() methods have a new flags argument. This allows managing name encoding (ZipArchive::FL_ENC_*) and entry replacement (ZipArchive::FL_OVERWRITE).

  • ZipArchive::extractTo() now restores the file modification time.

Other Changes to Extensions

CURL

  • The CURL extension now requires at least libcurl 7.29.0.

  • The deprecated parameter version of curl_version() has been removed.

Date and Time

DatePeriod now implements IteratorAggregate (instead of Traversable).

DOM

DOMNamedNodeMap and DOMNodeList now implement IteratorAggregate (instead of Traversable).

Intl

IntlBreakIterator and ResourceBundle now implement IteratorAggregate (instead of Traversable).

Enchant

The enchant extension now uses libenchant-2 by default when available. libenchant version 1 is still supported but is deprecated and could be removed in the future.

GD

  • The num_points parameter of imagepolygon(), imageopenpolygon() and imagefilledpolygon() is now optional, i.e. these functions may be called with either 3 or 4 arguments. If the argument is omitted, it is calculated as count($points)/2.

  • The function imagegetinterpolation() to get the current interpolation method has been added.

JSON

The JSON extension cannot be disabled anymore and is always an integral part of any PHP build, similar to the date extension.

MBString

The Unicode data tables have been updated to version 13.0.0.

PDO

PDOStatement now implements IteratorAggregate (instead of Traversable).

LibXML

The minimum required libxml version is now 2.9.0. This means that external entity loading is now guaranteed to be disabled by default, and no extra steps need to be taken to protect against XXE attacks.

MySQLi / PDO MySQL

  • When mysqlnd is not used (which is the default and recommended option), the minimum supported libmysqlclient version is now 5.5.

  • mysqli_result now implements IteratorAggregate (instead of Traversable).

PGSQL / PDO PGSQL

The PGSQL and PDO PGSQL extensions now require at least libpq 9.1.

Readline

Calling readline_completion_function() before the interactive prompt starts (e.g. in auto_prepend_file) will now override the default interactive prompt completion function. Previously, readline_completion_function() only worked when called after starting the interactive prompt.

SimpleXML

SimpleXMLElement now implements RecursiveIterator and absorbed the functionality of SimpleXMLIterator. SimpleXMLIterator is an empty extension of SimpleXMLElement.

Changes to INI File Handling

  • com.dotnet_version is a new INI directive to choose the version of the .NET framework to use for dotnet objects.

  • zend.exception_string_param_max_len is a new INI directive to set the maximum string length in an argument of a stringified stack strace.

EBCDIC

EBCDIC targets are no longer supported, though it's unlikely that they were still working in the first place.

Performance

  • A Just-In-Time (JIT) compiler has been added to the opcache extension.

  • array_slice() on an array without gaps will no longer scan the whole array to find the start offset. This may significantly reduce the runtime of the function with large offsets and small lengths.

  • strtolower() now uses a SIMD implementation when using the "C" LC_CTYPE locale (which is the default).


Migration von PHP 7.3.x auf PHP 7.4.x

Inhaltsverzeichnis

  • New Features
  • Neue Klassen und Interfaces
  • Neue Funktionen
  • Neue globale Konstanten
  • Backward Incompatible Changes
  • Deprecated Features
  • Entfernte Extensions
  • Other Changes
  • Windows Support

Diese neue Minor-Version bringt eine Reihe von neuen Features und einige wenige Inkompatibilitäten, die vor der Umstellung der PHP-Versionen in der Produktivumgebung getestet werden sollten.

Siehe auch die Migrationsleitfäden für PHP-Versionen 7.0.x, 7.1.x, 7.2.x und 7.3.x.


New Features

PHP Core

Typed properties

Class properties now support type declarations.

<?php
class User {
    public int $id;
    public string $name;
}
?>
The above example will enforce that $user->id can only be assigned int values and $user->name can only be assigned string values.

Arrow functions

Arrow functions provide a shorthand syntax for defining functions with implicit by-value scope binding.

<?php
$factor = 10;
$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
// $nums = array(10, 20, 30, 40);
?>

Limited return type covariance and argument type contravariance

The following code will now work:

<?php
class A {}
class B extends A {}

class Producer {
    public function method(): A {}
}
class ChildProducer extends Producer {
    public function method(): B {}
}
?>
Full variance support is only available if autoloading is used. Inside a single file only non-cyclic type references are possible, because all classes need to be available before they are referenced.

Null coalescing assignment operator

<?php
$array['key'] ??= computeDefault();
// is roughly equivalent to
if (!isset($array['key'])) {
    $array['key'] = computeDefault();
}
?>

Unpacking inside arrays

<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];
?>

Numeric literal separator

Numeric literals can contain underscores between digits.

<?php
6.674_083e-11; // float
299_792_458;   // decimal
0xCAFE_F00D;   // hexadecimal
0b0101_1111;   // binary
?>

Weak references

Weak references allow the programmer to retain a reference to an object that does not prevent the object from being destroyed.

Allow exceptions from __toString()

Throwing exceptions from __toString() is now permitted. Previously this resulted in a fatal error. Existing recoverable fatal errors in string conversions have been converted to Error exceptions.

CURL

CURLFile now supports stream wrappers in addition to plain file names, if the extension has been built against libcurl >= 7.56.0.

Filter

The FILTER_VALIDATE_FLOAT filter now supports the min_range and max_range options, with the same semantics as FILTER_VALIDATE_INT.

FFI

FFI is a new extension, which provides a simple way to call native functions, access native variables, and create/access data structures defined in C libraries.

GD

Added the IMG_FILTER_SCATTER image filter to apply a scatter filter to images.

Hash

Added crc32c hash using Castagnoli's polynomial. This CRC32 variant is used by storage systems, such as iSCSI, SCTP, Btrfs and ext4.

Multibyte String

Added the mb_str_split() function, which provides the same functionality as str_split(), but operating on code points rather than bytes.

OPcache

Support for preloading code has been added.

Regular Expressions (Perl-Compatible)

The preg_replace_callback() and preg_replace_callback_array() functions now accept an additional flags argument, with support for the PREG_OFFSET_CAPTURE and PREG_UNMATCHED_AS_NULL flags. This influences the format of the matches array passed to to the callback function.

PDO

The username and password can now be specified as part of the PDO DSN for the mysql, mssql, sybase, dblib, firebird and oci drivers. Previously this was only supported by the pgsql driver. If a username/password is specified both in the constructor and the DSN, the constructor takes precedence.

It is now possible to escape question marks in SQL queries to avoid them being interpreted as parameter placeholders. Writing ?? allows sending a single question mark to the database and e.g. use the PostgreSQL JSON key exists (?) operator.

PDO_OCI

PDOStatement::getColumnMeta() is now available.

PDO_SQLite

PDOStatement::getAttribute(PDO::SQLITE_ATTR_READONLY_STATEMENT) allows checking whether the statement is read-only, i.e. if it doesn't modify the database.

PDO::setAttribute(PDO::SQLITE_ATTR_EXTENDED_RESULT_CODES, true) enables the use of SQLite3 extended result codes in PDO::errorInfo() and PDOStatement::errorInfo().

SQLite3

Added SQLite3::lastExtendedErrorCode() to fetch the last extended result code.

Added SQLite3::enableExtendedResultCodes($enable = true), which will make SQLite3::lastErrorCode() return extended result codes.

Standard

strip_tags() with array of tag names

strip_tags() now also accepts an array of allowed tags: instead of strip_tags($str, '<a><p>') you can now write strip_tags($str, ['a', 'p']).

Custom object serialization

A new mechanism for custom object serialization has been added, which uses two new magic methods: __serialize and __unserialize.

<?php
// Returns array containing all the necessary state of the object.
public function __serialize(): array;

// Restores the object state from the given data array.
public function __unserialize(array $data): void;
?>
The new serialization mechanism supersedes the Serializable interface, which will be deprecated in the future.

Array merge functions without arguments

array_merge() and array_merge_recursive() may now be called without any arguments, in which case they will return an empty array. This is useful in conjunction with the spread operator, e.g. array_merge(...$arrays).

proc_open() function

proc_open() now accepts an array instead of a string for the command. In this case the process will be opened directly (without going through a shell) and PHP will take care of any necessary argument escaping.

<?php
proc_open(['php', '-r', 'echo "Hello World\n";'], $descriptors, $pipes);
?>

proc_open() now supports redirect and null descriptors.

<?php
// Like 2>&1 on the shell
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['redirect', 1]], $pipes);
// Like 2>/dev/null or 2>nul on the shell
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes);
?>

argon2i(d) without libargon

password_hash() now has the argon2i and argon2id implementations from the sodium extension when PHP is built without libargon.


  • « New Features
  • Neue Funktionen »
  • PHP Manual
  • Migration von PHP 7.3.x auf PHP 7.4.x
  • Neue Klassen und Interfaces

Neue Klassen und Interfaces

Reflection

  • ReflectionReference


Neue Funktionen

PHP-Kern

  • get_mangled_object_vars()
  • password_algos()
  • sapi_windows_set_ctrl_handler()

GD

  • imagecreatefromtga()

OpenSSL

  • openssl_x509_verify()

Process Control

  • pcntl_unshare()

SQLite3

  • SQLite3::backup()
  • SQLite3Stmt::getSQL()


Neue globale Konstanten

PHP-Kern

  • PHP_WINDOWS_EVENT_CTRL_C
  • PHP_WINDOWS_EVENT_CTRL_BREAK

Multibyte String

  • MB_ONIGURUMA_VERSION

Sockets

Die folgenden FreeBSD-spezifischen Socket-Optionen wurden hinzugefügt:

  • SO_LABEL
  • SO_PEERLABEL
  • SO_LISTENQLIMIT
  • SO_LISTENQLEN
  • SO_USER_COOKIE

Tidy

  • TIDY_TAG_ARTICLE
  • TIDY_TAG_ASIDE
  • TIDY_TAG_AUDIO
  • TIDY_TAG_BDI
  • TIDY_TAG_CANVAS
  • TIDY_TAG_COMMAND
  • TIDY_TAG_DATALIST
  • TIDY_TAG_DETAILS
  • TIDY_TAG_DIALOG
  • TIDY_TAG_FIGCAPTION
  • TIDY_TAG_FIGURE
  • TIDY_TAG_FOOTER
  • TIDY_TAG_HEADER
  • TIDY_TAG_HGROUP
  • TIDY_TAG_MAIN
  • TIDY_TAG_MARK
  • TIDY_TAG_MENUITEM
  • TIDY_TAG_METER
  • TIDY_TAG_NAV
  • TIDY_TAG_OUTPUT
  • TIDY_TAG_PROGRESS
  • TIDY_TAG_SECTION
  • TIDY_TAG_SOURCE
  • TIDY_TAG_SUMMARY
  • TIDY_TAG_TEMPLATE
  • TIDY_TAG_TIME
  • TIDY_TAG_TRACK
  • TIDY_TAG_VIDEO


Backward Incompatible Changes

PHP Core

Array-style access of non-arrays

Trying to use values of type null, bool, int, float or resource as an array (such as $null["key"]) will now generate a notice.

get_declared_classes() function

The get_declared_classes() function no longer returns anonymous classes that have not been instantiated yet.

fn keyword

fn is now a reserved keyword. In particular, it can no longer be used as a function or class name. It can still be used as a method or class constant name.

<?php tag at end of file

<?php at the end of the file (without trailing newline) will now be interpreted as an opening PHP tag. Previously it was interpreted either as a short opening tag followed by literal php and resulted in a syntax error (with short_open_tag=1) or was interpreted as a literal <?php string (with short_open_tag=0).

Stream wrappers

When using include/require on a stream, streamWrapper::stream_set_option() will be invoked with the STREAM_OPTION_READ_BUFFER option. Custom stream wrapper implementations may need to implement the streamWrapper::stream_set_option() method to avoid a warning (always returning false is a sufficient implementation).

Serialization

The o serialization format has been removed. As it is never produced by PHP, this may only break unserialization of manually crafted strings.

Password algorithm constants

Password hashing algorithm identifiers are now nullable strings rather than integers.

  • PASSWORD_DEFAULT was int 1; now is null
  • PASSWORD_BCRYPT was int 1; now is string '2y'
  • PASSWORD_ARGON2I was int 2; now is string 'argon2i'
  • PASSWORD_ARGON2ID was int 3; now is string 'argon2id'

Applications correctly using the constants PASSWORD_DEFAULT, PASSWORD_BCRYPT, PASSWORD_ARGON2I, and PASSWORD_ARGON2ID will continue to function correctly.

htmlentities() function

htmlentities() will now raise a notice (instead of a strict standards warning) if it is used with an encoding for which only basic entity substitution is supported, in which case it is equivalent to htmlspecialchars().

fread() and fwrite() function

fread() and fwrite() will now return false if the operation failed. Previously an empty string or 0 was returned. EAGAIN/EWOULDBLOCK are not considered failures.

These functions now also raise a notice on failure, such as when trying to write to a read-only file resource.

BCMath Arbitrary Precision Mathematics

BCMath functions will now warn if a non well-formed number is passed, such as "32foo". The argument will be interpreted as zero, as before.

CURL

Attempting to serialize a CURLFile class will now generate an exception. Previously the exception was only thrown on unserialization.

Using CURLPIPE_HTTP1 is deprecated, and is no longer supported as of cURL 7.62.0.

The $version parameter of curl_version() is deprecated. If any value not equal to the default CURLVERSION_NOW is passed, a warning is raised and the parameter is ignored.

Date and Time

Calling var_dump() or similar on a DateTime or DateTimeImmutable instance will no longer leave behind accessible properties on the object.

Comparison of DateInterval objects (using ==, <, and so on) will now generate a warning and always return false. Previously all DateInterval objects were considered equal, unless they had properties.

Intl

The default parameter value of idn_to_ascii() and idn_to_utf8() is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003.

MySQLi

The embedded server functionality has been removed. It was broken since at least PHP 7.0.

The undocumented mysqli::$stat property has been removed in favor of mysqli::stat().

OpenSSL

The openssl_random_pseudo_bytes() function will now throw an exception in error situations, similar to random_bytes(). In particular, an Error is thrown if the number of requested bytes is less than or equal to zero, and an Exception is thrown if sufficient randomness cannot be gathered. The $crypto_strong output argument is guaranteed to always be true if the function does not throw, so explicitly checking it is not necessary.

Regular Expressions (Perl-Compatible)

When PREG_UNMATCHED_AS_NULL mode is used, trailing unmatched capturing groups will now also be set to null (or [null, -1] if offset capture is enabled). This means that the size of the $matches will always be the same.

PHP Data Objects

Attempting to serialize a PDO or PDOStatement instance will now generate an Exception rather than a PDOException, consistent with other internal classes which do not support serialization.

Reflection

Reflection objects will now generate an exception if an attempt is made to serialize them. Serialization for reflection objects was never supported and resulted in corrupted reflection objects. It has been explicitly prohibited now.

Standard PHP Library (SPL)

Calling get_object_vars() on an ArrayObject instance will now always return the properties of the ArrayObject itself (or a subclass). Previously it returned the values of the wrapped array/object unless the ArrayObject::STD_PROP_LIST flag was specified.

Other affected operations are:

  • ReflectionObject::getProperties()
  • reset(), current(), etc. Use Iterator methods instead.
  • Potentially others working on object properties as a list, e.g. array_walk().

(array) casts are not affected. They will continue to return either the wrapped array, or the ArrayObject properties, depending on whether the ArrayObject::STD_PROP_LIST flag is used.

SplPriorityQueue::setExtractFlags() will throw an exception if zero is passed. Previously this would generate a recoverable fatal error on the next extraction operation.

ArrayObject, ArrayIterator, SplDoublyLinkedList and SplObjectStorage now support the __serialize() and __unserialize() mechanism in addition to the Serializable interface. This means that serialization payloads created on older PHP versions can still be unserialized, but new payloads created by PHP 7.4 will not be understood by older versions.

Tokenizer

token_get_all() will now emit a T_BAD_CHARACTER token for unexpected characters instead of leaving behind holes in the token stream.

Incoming Cookies

As of PHP 7.4.11, the names of incoming cookies are no longer url-decoded for security reasons.


Deprecated Features

PHP Core

Nested ternary operators without explicit parentheses

Nested ternary operations must explicitly use parentheses to dictate the order of the operations. Previously, when used without parentheses, the left-associativity would not result in the expected behaviour in most cases.

<?php
1 ? 2 : 3 ? 4 : 5;   // deprecated
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>

Parentheses are not required when nesting into the middle operand, as this is always unambiguous and not affected by associativity:

1 ? 2 ? 3 : 4 : 5 // ok

Array and string offset access using curly braces

The array and string offset access syntax using curly braces is deprecated. Use $var[$idx] instead of $var{$idx}.

(real) cast and is_real() function

The (real) cast is deprecated, use (float) instead.

The is_real() function is also deprecated, use is_float() instead.

Unbinding $this when $this is used

Unbinding $this of a non-static closure that uses $this is deprecated.

parent keyword without parent class

Using parent inside a class without a parent is deprecated, and will throw a compile-time error in the future. Currently an error will only be generated if/when the parent is accessed at run-time.

allow_url_include INI option

The allow_url_include ini directive is deprecated. Enabling it will generate a deprecation notice at startup.

Invalid characters in base conversion functions

Passing invalid characters to base_convert(), bindec(), octdec() and hexdec() will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist. Leading and trailing whitespace, as well as prefixes of type 0x (depending on base) continue to be allowed.

Using array_key_exists() on objects

Using array_key_exists() on objects is deprecated. Instead either isset() or property_exists() should be used.

Magic quotes functions

The get_magic_quotes_gpc() and get_magic_quotes_runtime() functions are deprecated. They always return false.

hebrevc() function

The hebrevc() function is deprecated. It can be replaced with nl2br(hebrev($str)) or, preferably, the use of Unicode RTL support.

convert_cyr_string() function

The convert_cyr_string() function is deprecated. It can be replaced by one of mb_convert_string(), iconv() or UConverter.

money_format() function

The money_format() function is deprecated. It can be replaced by the intl NumberFormatter functionality.

ezmlm_hash() function

The ezmlm_hash() function is deprecated.

restore_include_path() function

The restore_include_path() function is deprecated. It can be replaced by ini_restore('include_path').

Implode with historical parameter order

Passing parameters to implode() in reverse order is deprecated, use implode($glue, $parts) instead of implode($parts, $glue).

COM

Importing type libraries with case-insensitive constant registering has been deprecated.

Filter

FILTER_SANITIZE_MAGIC_QUOTES is deprecated, use FILTER_SANITIZE_ADD_SLASHES instead.

Multibyte String

Passing a non-string pattern to mb_ereg_replace() is deprecated. Currently, non-string patterns are interpreted as ASCII codepoints. In PHP 8, the pattern will be interpreted as a string instead.

Passing the encoding as 3rd parameter to mb_strrpos() is deprecated. Instead pass a 0 offset, and encoding as 4th parameter.

Lightweight Directory Access Protocol

ldap_control_paged_result_response() and ldap_control_paged_result() are deprecated. Pagination controls can be sent along with ldap_search() instead.

Reflection

Calls to ReflectionType::__toString() now generate a deprecation notice. This method has been deprecated in favor of ReflectionNamedType::getName() in the documentation since PHP 7.1, but did not throw a deprecation notice for technical reasons.

The export() methods on all Reflection classes are deprecated. Construct a Reflection object and convert it to string instead:

<?php
// ReflectionClass::export(Foo::class, false) is:
echo new ReflectionClass(Foo::class), "\n";

// $str = ReflectionClass::export(Foo::class, true) is:
$str = (string) new ReflectionClass(Foo::class);
?>

Socket

The AI_IDN_ALLOW_UNASSIGNED and AI_IDN_USE_STD3_ASCII_RULES flags for socket_addrinfo_lookup() are deprecated, due to an upstream deprecation in glibc.


Entfernte Extensions

Diese Erweiterungen wurden nach PECL verschoben und sind nicht mehr Teil der PHP-Distribution. Die PECL-Paketversionen dieser Erweiterungen werden entsprechend der Benutzernachfrage erstellt.

  • Firebird/Interbase Der Zugang zu einer InterBase- und/oder Firebird-basierten Datenbank ist nach wie vor mit dem PDO Firebird-Treiber verfügbar.
  • Recode
  • WDDX


Other Changes

Performance Improvements

PHP Core

A specialized VM opcode for the array_key_exists() function has been added, which improves performance of this function if it can be statically resolved. In namespaced code, this may require writing \array_key_exists() or explicitly importing the function.

Regular Expressions (Perl-Compatible)

When preg_match() in UTF-8 mode ("u" modifier) is repeatedly called on the same string (but possibly different offsets), it will only be checked for UTF-8 validity once.

Changes to INI File Handling

zend.exception_ignore_args is a new INI directive for including or excluding arguments from stack traces generated from exceptions.

opcache.preload_user is a new INI directive for specifying the user account under which preloading code is execute if it would otherwise be run as root (which is not allowed for security reasons).

Migration to pkg-config

A number of extensions have been migrated to exclusively use pkg-config for the detection of library dependencies. Generally, this means that instead of using --with-foo-dir=DIR or similar only --with-foo is used. Custom library paths can be specified either by adding additional directories to PKG_CONFIG_PATH or by explicitly specifying compilation options through FOO_CFLAGS and FOO_LIBS.

The following extensions and SAPIs are affected:

  • CURL:
    • --with-curl no longer accepts a directory.
  • Enchant:
    • --with-enchant no longer accepts a directory.
  • FPM:
    • --with-fpm-systemd now uses only pkg-config for libsystem checks. The libsystemd minimum required version is 209.
  • GD:
    • --with-gd becomes --enable-gd (whether to enable the extension at all) and --with-external-gd (to opt into using an external libgd, rather than the bundled one).
    • --with-png-dir has been removed. libpng is required.
    • --with-zlib-dir has been removed. zlib is required.
    • --with-freetype-dir becomes --with-freetype
    • --with-jpeg-dir becomes --with-jpeg
    • --with-webp-dir becomes --with-webp
    • --with-xpm-dir becomes --with-xpm
  • IMAP:
    • --with-kerberos-systemd no longer accepts a directory.
  • Intl:
    • --with-icu-dir has been removed. If --enable-intl is passed, then libicu is always required.
  • LDAP:
    • --with-ldap-sasl no longer accepts a directory.
  • Libxml:
    • --with-libxml-dir has been removed.
    • --enable-libxml becomes --with-libxml.
    • --with-libexpat-dir has been renamed to --with-expat and no longer accepts a directory.
  • Litespeed:
    • --with-litespeed becomes --enable-litespeed.
  • Mbstring:
    • --with-onig has been removed. Unless --disable-mbregex has been passed, libonig is required.
  • ODBC:
    • --with-iodbc no longer accepts a directory.
    • --with-unixODBC without a directory now uses pkg-config (preferred). Directory is still accepted for old versions without libodbc.pc.
  • OpenSSL:
    • --with-openssl no longer accepts a directory.
  • PCRE:
    • --with-pcre-regex has been removed. Instead --with-external-pcre is provided to opt into using an external PCRE library, rather than the bundled one.
  • PDO_SQLite:
    • --with-pdo-sqlite no longer accepts a directory.
  • Readline:
    • --with-libedit no longer accepts a directory.
  • Sodium:
    • --with-sodium no longer accepts a directory.
  • SQLite3:
    • --with-sqlite3 no longer accepts a directory.
  • XSL:
    • --with-xsl no longer accepts a directory.
  • Zip:
    • --with-libzip has been removed.
    • --enable-zip becomes --with-zip.

CSV escaping

fputcsv(),
fgetcsv(),
SplFileObject::fputcsv(),
SplFileObject::fgetcsv(), and
SplFileObject::setCsvControl()
now accept an empty string as $escape argument,
which disables the proprietary PHP escaping mechanism.

The behavior of str_getcsv() has been adjusted accordingly (formerly, an empty string was identical to using the default).

SplFileObject::getCsvControl() now may also return an empty string for the third array element, accordingly.

Data Filtering

The filter extension no longer exposes --with-pcre-dir for Unix builds and can now reliably be built as shared when using ./configure

GD

The behavior of imagecropauto() in the bundled libgd has been synced with that of system libgd:

  • IMG_CROP_DEFAULT is no longer falling back to IMG_CROP_SIDES
  • Threshold-cropping now uses the algorithm of system libgd

The default $mode parameter of imagecropauto() has been changed to IMG_CROP_DEFAULT; passing -1 is now deprecated.

imagescale() now supports aspect ratio preserving scaling to a fixed height by passing -1 as $new_width.

HASH Message Digest Framework

The hash extension cannot be disabled anymore and is always an integral part of any PHP build, similar to the date extension.

Intl

The intl extension now requires at least ICU 50.1.

ResourceBundle now implements Countable.

Lightweight Directory Access Protocol

Support for nsldap and umich_ldap has been removed.

Libxml

All libxml-based extensions now require libxml 2.7.6 or newer.

Multibyte String

The oniguruma library is no longer bundled with PHP, instead libonig needs to be available on the system. Alternatively --disable-mbregex can be used to disable the mbregex component.

OPcache

The --disable-opcache-file and --enable-opcache-file configure options have been removed in favor of the opcache.file_cache INI directive.

Password Hashing

The password_hash() and functions now accept nullable String and Integer for $algo argument.

PEAR

Installation of PEAR (including PECL) is no longer enabled by default. It can be explicitly enabled using --with-pear. This option is deprecated and may be removed in the future.

Reflection

The numeric values of the modifier constants (IS_ABSTRACT, IS_DEPRECATED, IS_EXPLICIT_ABSTRACT, IS_FINAL, IS_IMPLICIT_ABSTRACT, IS_PRIVATE, IS_PROTECTED, IS_PUBLIC, and IS_STATIC) on the ReflectionClass, ReflectionFunction, ReflectionMethod, ReflectionObject, and ReflectionProperty classes have changed.

SimpleXML

SimpleXMLElement now implements Countable.

SQLite3

The bundled libsqlite has been removed. To build the SQLite3 extension a system libsqlite3 = 3.7.4 is now required. To build the PDO_SQLite extension a system libsqlite3 = 3.5.0 is now required.

Serialization and unserialization of SQLite3, SQLite3Stmt and SQLite3Result is now explicitly forbidden. Formerly, serialization of instances of these classes was possible, but unserialization yielded unusable objects.

The @param notation can now also be used to denote SQL query parameters.

Zip

The bundled libzip library has been removed. A system libzip >= 0.11 is now necessary to build the zip extension.


Windows Support

configure flags

configure now regards additional CFLAGS and LDFLAGS set as environment variables.

CTRL handling

CTRL+C and CTRL+BREAK on console can be caught by setting a handler function with sapi_windows_set_ctrl_handler().

proc_open() on Windows can be passed a "create_process_group" option. It is required if the child process is supposed to handle CTRL events.

OPcache

OPcache now supports an arbitrary number of separate caches per user via the the INI directive opcache.cache_id. All processes with the same cache ID and user share an OPcache instance.

stat

The stat implementation has been refactored.

  • An inode number is delivered and is based on the NTFS file index.
  • The device number is now based on the volume serial number.

Note that both values are derived from the system and provided as-is on 64-bit systems. On 32-bit systems, these values might overflow the 32-bit integer in PHP, so they're fake.

libsqlite3

libsqlite3 is no longer compiled statically into php_sqlite3.dll and php_pdo_sqlite.dll, but rather available as libsqlite3.dll. Refer to the installation instructions for SQLite3 and PDO_SQLITE, respectively.


Migration von PHP 7.2.x auf PHP 7.3.x

Inhaltsverzeichnis

  • New Features
  • Neue Funktionen
  • Neue globale Konstanten
  • Backward Incompatible Changes
  • Veraltete Features
  • Other Changes
  • Windows-Unterstützung

Diese neue Minor-Version bringt eine Reihe von neuen Features und einige wenige Inkompatibilitäten, die vor der Umstellung der PHP-Versionen in der Produktivumgebung getestet werden sollten.

Siehe auch die Migrationsleitfäden für PHP-Versionen 7.0.x, 7.1.x und 7.2.x.


New Features

PHP Core

More Flexible Heredoc and Nowdoc Syntax

The closing marker for doc strings is no longer required to be followed by a semicolon or newline. Additionally the closing marker may be indented, in which case the indentation will be stripped from all lines in the doc string.

Array Destructuring supports Reference Assignments

Array destructuring now supports reference assignments using the syntax [&$a, [$b, &$c]] = $d. The same is also supported for list().

Instanceof Operator accepts Literals

instanceof now allows literals as the first operand, in which case the result is always false.

CompileError Exception instead of some Compilation Errors

A new CompileError exception has been added, from which ParseError inherits. A small number of compilation errors will now throw a CompileError instead of generating a fatal error. Currently this only affects compilation errors that may be thrown by token_get_all() in TOKEN_PARSE mode, but more errors may be converted in the future.

Trailing Commas are allowed in Calls

Trailing commas in function and method calls are now allowed.

Argon2id Support

The --with-password-argon2[=dir] configure argument now provides support for both Argon2i and Argon2id hashes in the password_hash(), password_verify(), password_get_info(), and password_needs_rehash() functions. Passwords may be hashed and verified using the PASSWORD_ARGON2ID constant. Support for both Argon2i and Argon2id in the password_*() functions now requires PHP be linked against libargon2 reference library = 20161029.

FastCGI Process Manager

New options have been added to customize the FPM logging:

log_limit
This global option can be used for setting the log limit for the logged line which allows to log messages longer than 1024 characters without wrapping. It also fixes various wrapping issues.
log_buffering
This global option allows an experimental logging without extra buffering.
decorate_workers_output
This pool option allows to disable the output decoration for workers output when catch_workers_output is enabled.

BC Math Functions

bcscale() can now also be used as getter to retrieve the current scale in use.

Lightweight Directory Access Protocol

Full support for LDAP Controls has been added to the LDAP querying functions and ldap_parse_result():

  • A $serverctrls parameter to send controls to the
server in ldap_add(),
ldap_mod_replace(), ldap_mod_add(),
ldap_mod_del(), ldap_rename(),
ldap_compare(), ldap_delete(),
ldap_modify_batch(),
ldap_search(), ldap_list() and
ldap_read() has been added.
  • The out parameter $serverctrls to get controls from the server in ldap_parse_result() has been added.
  • Support for LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS in ldap_get_option() and ldap_set_option() has been fixed.

Multibyte String Functions

Full Case-Mapping and Case-Folding Support

Support for full case-mapping and case-folding has been added. Unlike simple case-mapping, full case-mapping may change the length of the string. For example:

<?php
mb_strtoupper("Straße");
// Produces STRAßE on PHP 7.2
// Produces STRASSE on PHP 7.3
?>
The different casing mapping and folding modes are available through mb_convert_case():
  • MB_CASE_LOWER (used by mb_strtolower())
  • MB_CASE_UPPER (used by mb_strtoupper())
  • MB_CASE_TITLE
  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE (used by case-insensitive operations)
Only unconditional, language agnostic full case-mapping is performed.

Case-Insensitive String Operations use Case-Folding

Case-insensitive string operations now use case-folding instead of case- mapping during comparisons. This means that more characters will be considered (case insensitively) equal now.

MB_CASE_TITLE performs Title-Case Conversion

mb_convert_case() with MB_CASE_TITLE now performs title-case conversion based on the Cased and CaseIgnorable derived Unicode properties. In particular this also improves handling of quotes and apostrophes.

Unicode 11 Support

The Multibyte String data tables have been updated for Unicode 11.

Long String Support

The Multibyte String Functions now correctly support strings larger than 2GB.

Performance Improvements

Performance of the Multibyte String extension has been significantly improved across the board. The largest improvements are in case conversion functions.

Named Captures Support

The mb_ereg_* functions now support named captures. Matching functions like mb_ereg() will now return named captures both using their group number and their name, similar to PCRE:

<?php
mb_ereg('(?<word>\w+)', '?', $matches);
// => [0 => "?", 1 => "?", "word" => "?"];
?>
Additionally, mb_ereg_replace() now supports the \k<> and \k'' notations to reference named captures in the replacement string:
<?php
mb_ereg_replace('\s*(?<word>\w+)\s*', "_\k<word>_\k'word'_", ' foo ');
// => "_foo_foo_"
?>
\k<> and \k'' can also be used for numbered references, which also works with group numbers greater than 9.

Readline

Support for the completion_append_character and completion_suppress_append options has been added to readline_info(). These options are only available if PHP is linked against libreadline (rather than libedit).


Neue Funktionen

PHP-Kern

  • array_key_first()
  • array_key_last()
  • gc_status()
  • hrtime()
  • is_countable()
  • net_get_interfaces()

FastCGI Process Manager

  • fpm_get_status()

Datum und Uhrzeit

  • DateTime::createFromImmutable()

GNU Multiple Precision

  • gmp_binomial()
  • gmp_kronecker()
  • gmp_lcm()
  • gmp_perfect_power()

Internationalization Functions

  • Normalizer::getRawDecomposition()
  • normalizer_get_raw_decomposition()
  • Spoofchecker::setRestrictionLevel()

Lightweight Directory Access Protocol

  • ldap_add_ext()
  • ldap_bind_ext()
  • ldap_delete_ext()
  • ldap_exop_refresh()
  • ldap_mod_add_ext()
  • ldap_mod_replace_ext()
  • ldap_mod_del_ext()
  • ldap_rename_ext()

OpenSSL

  • openssl_pkey_derive()

Sockets

  • socket_wsaprotocol_info_export()
  • socket_wsaprotocol_info_import()
  • socket_wsaprotocol_info_release()


Neue globale Konstanten

PHP-Kern

  • PASSWORD_ARGON2ID

Client URL-Bibliothek

  • CURLAUTH_BEARER
  • CURLAUTH_GSSAPI
  • CURLE_WEIRD_SERVER_REPLY
  • CURLINFO_APPCONNECT_TIME_T
  • CURLINFO_CONNECT_TIME_T
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
  • CURLINFO_CONTENT_LENGTH_UPLOAD_T
  • CURLINFO_FILETIME_T
  • CURLINFO_HTTP_VERSION
  • CURLINFO_NAMELOOKUP_TIME_T
  • CURLINFO_PRETRANSFER_TIME_T
  • CURLINFO_PROTOCOL
  • CURLINFO_PROXY_SSL_VERIFYRESULT
  • CURLINFO_REDIRECT_TIME_T
  • CURLINFO_SCHEME
  • CURLINFO_SIZE_DOWNLOAD_T
  • CURLINFO_SIZE_UPLOAD_T
  • CURLINFO_SPEED_DOWNLOAD_T
  • CURLINFO_SPEED_UPLOAD_T
  • CURLINFO_STARTTRANSFER_TIME_T
  • CURLINFO_TOTAL_TIME_T
  • CURL_LOCK_DATA_CONNECT
  • CURL_LOCK_DATA_PSL
  • CURL_MAX_READ_SIZE
  • CURLOPT_ABSTRACT_UNIX_SOCKET
  • CURLOPT_DISALLOW_USERNAME_IN_URL
  • CURLOPT_DNS_SHUFFLE_ADDRESSES
  • CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
  • CURLOPT_HAPROXYPROTOCOL
  • CURLOPT_KEEP_SENDING_ON_ERROR
  • CURLOPT_PRE_PROXY
  • CURLOPT_PROXY_CAINFO
  • CURLOPT_PROXY_CAPATH
  • CURLOPT_PROXY_CRLFILE
  • CURLOPT_PROXY_KEYPASSWD
  • CURLOPT_PROXY_PINNEDPUBLICKEY
  • CURLOPT_PROXY_SSLCERT
  • CURLOPT_PROXY_SSLCERTTYPE
  • CURLOPT_PROXY_SSL_CIPHER_LIST
  • CURLOPT_PROXY_SSLKEY
  • CURLOPT_PROXY_SSLKEYTYPE
  • CURLOPT_PROXY_SSL_OPTIONS
  • CURLOPT_PROXY_SSL_VERIFYHOST
  • CURLOPT_PROXY_SSL_VERIFYPEER
  • CURLOPT_PROXY_SSLVERSION
  • CURLOPT_PROXY_TLS13_CIPHERS
  • CURLOPT_PROXY_TLSAUTH_PASSWORD
  • CURLOPT_PROXY_TLSAUTH_TYPE
  • CURLOPT_PROXY_TLSAUTH_USERNAME
  • CURLOPT_REQUEST_TARGET
  • CURLOPT_SOCKS5_AUTH
  • CURLOPT_SSH_COMPRESSION
  • CURLOPT_SUPPRESS_CONNECT_HEADERS
  • CURLOPT_TIMEVALUE_LARGE
  • CURLOPT_TLS13_CIPHERS
  • CURLPROXY_HTTPS
  • CURLSSH_AUTH_GSSAPI
  • CURL_SSLVERSION_MAX_DEFAULT
  • CURL_SSLVERSION_MAX_NONE
  • CURL_SSLVERSION_MAX_TLSv1_0
  • CURL_SSLVERSION_MAX_TLSv1_1
  • CURL_SSLVERSION_MAX_TLSv1_2
  • CURL_SSLVERSION_MAX_TLSv1_3
  • CURL_SSLVERSION_TLSv1_3
  • CURL_VERSION_ALTSVC (ab PHP 7.3.6)
  • CURL_VERSION_ASYNCHDNS
  • CURL_VERSION_BROTLI
  • CURL_VERSION_CONV
  • CURL_VERSION_CURLDEBUG (ab PHP 7.3.6)
  • CURL_VERSION_DEBUG
  • CURL_VERSION_GSSAPI
  • CURL_VERSION_GSSNEGOTIATE
  • CURL_VERSION_HTTPS_PROXY
  • CURL_VERSION_IDN
  • CURL_VERSION_LARGEFILE
  • CURL_VERSION_MULTI_SSL
  • CURL_VERSION_NTLM
  • CURL_VERSION_NTLM_WB
  • CURL_VERSION_PSL (ab PHP 7.3.6)
  • CURL_VERSION_SPNEGO
  • CURL_VERSION_SSPI
  • CURL_VERSION_TLSAUTH_SRP

Daten-Filterung

  • FILTER_SANITIZE_ADD_SLASHES

JavaScript Object Notation

  • JSON_THROW_ON_ERROR

Lightweight Directory Access Protocol

  • LDAP_CONTROL_ASSERT
  • LDAP_CONTROL_MANAGEDSAIT
  • LDAP_CONTROL_PROXY_AUTHZ
  • LDAP_CONTROL_SUBENTRIES
  • LDAP_CONTROL_VALUESRETURNFILTER
  • LDAP_CONTROL_PRE_READ
  • LDAP_CONTROL_POST_READ
  • LDAP_CONTROL_SORTREQUEST
  • LDAP_CONTROL_SORTRESPONSE
  • LDAP_CONTROL_PAGEDRESULTS
  • LDAP_CONTROL_AUTHZID_REQUEST
  • LDAP_CONTROL_AUTHZID_RESPONSE
  • LDAP_CONTROL_SYNC
  • LDAP_CONTROL_SYNC_STATE
  • LDAP_CONTROL_SYNC_DONE
  • LDAP_CONTROL_DONTUSECOPY
  • LDAP_CONTROL_PASSWORDPOLICYREQUEST
  • LDAP_CONTROL_PASSWORDPOLICYRESPONSE
  • LDAP_CONTROL_X_INCREMENTAL_VALUES
  • LDAP_CONTROL_X_DOMAIN_SCOPE
  • LDAP_CONTROL_X_PERMISSIVE_MODIFY
  • LDAP_CONTROL_X_SEARCH_OPTIONS
  • LDAP_CONTROL_X_TREE_DELETE
  • LDAP_CONTROL_X_EXTENDED_DN
  • LDAP_CONTROL_VLVREQUEST
  • LDAP_CONTROL_VLVRESPONSE

Multibyte-Strings

  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE

OpenSSL

  • STREAM_CRYPTO_PROTO_SSLv3
  • STREAM_CRYPTO_PROTO_TLSv1_0
  • STREAM_CRYPTO_PROTO_TLSv1_1
  • STREAM_CRYPTO_PROTO_TLSv1_2

PostgreSQL

  • PGSQL_DIAG_SCHEMA_NAME
  • PGSQL_DIAG_TABLE_NAME
  • PGSQL_DIAG_COLUMN_NAME
  • PGSQL_DIAG_DATATYPE_NAME
  • PGSQL_DIAG_CONSTRAINT_NAME
  • PGSQL_DIAG_SEVERITY_NONLOCALIZED


Backward Incompatible Changes

PHP Core

Heredoc/Nowdoc Ending Label Interpretation

Due to the introduction of flexible heredoc/nowdoc syntax, doc strings that contain the ending label inside their body may cause syntax errors or change in interpretation. For example in:

<?php
$str = <<<FOO
abcdefg
   FOO
FOO;
?>
the indented occurrence of FOO did not previously have any special meaning. Now it will be interpreted as the end of the heredoc string and the following FOO; will cause a syntax error. This issue can always be resolved by choosing an ending label that does not occur within the contents of the string.

Continue Targeting Switch issues Warning

continue statements targeting switch control flow structures will now generate a warning. In PHP such continue statements are equivalent to break, while they behave as continue 2 in other languages.

<?php
while ($foo) {
    switch ($bar) {
      case "baz":
         continue;
         // Warning: "continue" targeting switch is equivalent to
         //          "break". Did you mean to use "continue 2"?
   }
}
?>

Strict Interpretation of Integer String Keys on ArrayAccess

Array accesses of type $obj["123"], where $obj implements ArrayAccess and "123" is an integer string literal will no longer result in an implicit conversion to integer, i.e., $obj->offsetGet("123") will be called instead of $obj->offsetGet(123). This matches existing behavior for non-literals. The behavior of arrays is not affected in any way, they continue to implicitly convert integral string keys to integers.

Static Properties no longer separated by Reference Assignment

In PHP, static properties are shared between inheriting classes, unless the static property is explicitly overridden in a child class. However, due to an implementation artifact it was possible to separate the static properties by assigning a reference. This loophole has been fixed.

<?php
class Test {
    public static $x = 0;
}
class Test2 extends Test { }

Test2::$x = &$x;
$x = 1;

var_dump(Test::$x, Test2::$x);
// Previously: int(0), int(1)
// Now:        int(1), int(1)
?>

References returned by Array and Property Accesses are immediately unwrapped

References returned by array and property accesses are now unwrapped as part of the access. This means that it is no longer possible to modify the reference between the access and the use of the accessed value:

<?php
$arr = [1];
$ref =& $arr[0];
var_dump($arr[0] + ($arr[0] = 2));
// Previously: int(4), Now: int(3)
?>
This makes the behavior of references and non-references consistent. Please note that reading and writing a value inside a single expression remains undefined behavior and may change again in the future.

Argument Unpacking of Traversables with non-Integer Keys no longer supported

Argument unpacking stopped working with Traversables with non-integer keys. The following code worked in PHP 5.6-7.2 by accident.

<?php
function foo(...$args) {
    var_dump($args);
}
function gen() {
    yield 1.23 => 123;
}
foo(...gen());
?>

Miscellaneous

The ext_skel utility has been completely redesigned with new options and some old options removed. This is now written in PHP and has no external dependencies.

Support for BeOS has been dropped.

Exceptions thrown due to automatic conversion of warnings into exceptions in EH_THROW mode (e.g. some DateTime exceptions) no longer populate error_get_last() state. As such, they now work the same way as manually thrown exceptions.

TypeError now reports wrong types as int and bool instead of integer and boolean, respectively.

Undefined variables passed to compact() will now be reported as a notice.

getimagesize() and related functions now report the mime type of BMP images as image/bmp instead of image/x-ms-bmp, since the former has been registered with the IANA (see » RFC 7903).

stream_socket_get_name() will now return IPv6 addresses wrapped in brackets. For example "[::1]:1337" will be returned instead of "::1:1337".

BCMath Arbitrary Precision Mathematics

All warnings thrown by BCMath functions are now using PHP's error handling. Formerly some warnings have directly been written to stderr.

bcmul() and bcpow() now return numbers with the requested scale. Formerly, the returned numbers may have omitted trailing decimal zeroes.

IMAP, POP3 and NNTP

rsh/ssh logins are disabled by default. Use imap.enable_insecure_rsh if you want to enable them. Note that the IMAP library does not filter mailbox names before passing them to the rsh/ssh command, thus passing untrusted data to this function with rsh/ssh enabled is insecure.

Multibyte String

Due to added support for named captures, mb_ereg_*() patterns using named captures will behave differently. In particular named captures will be part of matches and mb_ereg_replace() will interpret additional syntax. See Named Captures for more information.

MySQL Improved Extension

Prepared statements now properly report the fractional seconds for DATETIME, TIME and TIMESTAMP columns with decimals specifier (e.g. TIMESTAMP(6) when using microseconds). Formerly, the fractional seconds part was simply omitted from the returned values.

MySQL Functions (PDO_MYSQL)

Prepared statements now properly report the fractional seconds for DATETIME, TIME and TIMESTAMP columns with decimals specifier (e.g. TIMESTAMP(6) when using microseconds). Formerly, the fractional seconds part was simply omitted from the returned values. Please note that this only affects the usage of PDO_MYSQL with emulated prepares turned off (e.g. using the native preparation functionality). Statements using connections having PDO::ATTR_EMULATE_PREPARES=true (which is the default) were not affected by the bug fixed and have already been getting the proper fractional seconds values from the engine.

Reflection

Reflection export to string now uses int and bool instead of integer and boolean, respectively.

Standard PHP Library (SPL)

If an SPL autoloader throws an exception, following autoloaders will not be executed. Previously all autoloaders were executed and exceptions were chained.

SimpleXML

Mathematic operations involving SimpleXML objects will now treat the text as an int or float, whichever is more appropriate. Previously values were treated as ints unconditionally.

Incoming Cookies

As of PHP 7.3.23, the names of incoming cookies are no longer url-decoded for security reasons.


Veraltete Features

PHP-Kern

Konstanten die von Groß-/Kleinschreibung unabhängig sind

Die Deklaration von Konstanten, die von Groß-/Kleinschreibung unabhängig sind, wird nun als veraltet angesehen. Die Übergabe von true als drittes Argument an define() ruft nun einen entsprechende Veraltet-Warnung hervor. Die Verwendung einer Konstante die unabhängig von Groß-/Kleinschreibung ist in einer anderen Schreibweise als bei der Deklaration ist nun ebenfalls veraltet.

assert() in Namespaces

Die Deklaration einer Funktion namens assert() innerhalb eines Namespaces ist veraltet. Die Funktion assert() wird durch die Engine besonders behandelt, was zu inkonsistentem Verhalten führen kann, wenn eine gleich benannte Funktion in einem Namespace definiert wird.

Durchsuchen von Zeichenketten nach einer Nicht-Zeichenkette

Die Übergabe von Suchbegriffen, die keine Strings sind, an Zeichenketten-Suchfunktionen ist veraltet. Zukünftig wird der Suchbegriff statt als ASCII-Codepunkt als Zeichenkette interpretiert. Je nach gewünschtem Verhalten sollte der Suchbegriff entweder direkt in einen String gecastet oder die Funktion chr() direkt aufgerufen werden. Betroffen sind folgende Funktionen:

  • strpos()
  • strrpos()
  • stripos()
  • strripos()
  • strstr()
  • strchr()
  • strrchr()
  • stristr()

Strip-Tags-Streams

Die Funktion fgetss() und der Stream-Filter string.strip_tags sind nun veraltet. Davon betroffen ist auch die Methode SplFileObject::fgetss() und die Funktion gzgetss().

Daten-Filterung

Die explizite Verwendung der Konstanten FILTER_FLAG_SCHEME_REQUIRED und FILTER_FLAG_HOST_REQUIRED ist jetzt veraltet. Beide sind bereits implizit in FILTER_VALIDATE_URL enthalten.

Bildbearbeitung und GD

image2wbmp() ist nun veraltet.

Funktionen zur Internationalisierung

Die Verwendung der Form Normalizer::NONE ruft nun eine Veraltet-Warnung hervor, wenn PHP gegen ICU = 56 gelinkt ist.

Multibyte-Strings

Die folgenden umdokumentierten Aliase mbereg_*() sind nun veraltet. Es sollten stattdessen die zugehörigen Varianten von mb_ereg_*() verwendet werden.

  • mbregex_encoding()
  • mbereg()
  • mberegi()
  • mbereg_replace()
  • mberegi_replace()
  • mbsplit()
  • mbereg_match()
  • mbereg_search()
  • mbereg_search_pos()
  • mbereg_search_regs()
  • mbereg_search_init()
  • mbereg_search_getregs()
  • mbereg_search_getpos()
  • mbereg_search_setpos()

ODBC und DB2-Funktionen (PDO_ODBC)

Die Ini-Einstellung pdo_odbc.db2_instance_name ist nun formell als veraltet markiert. Die Dokumentation benannte dies bereits seit PHP 5.1.1 als veraltet.


Other Changes

PHP Core

Set(raw)cookie accepts $option Argument

setcookie() and setrawcookie() now also support the following signature:

setcookie ( string $name , string $value = "" , array $options = [] ) : bool
where $options is an associative array which may have any of the keys "expires", "path", "domain", "secure", "httponly" and "samesite".

New Syslog ini Directives

The following ini Directives have been added to customize logging, if error_log is set to syslog:

syslog.facility
Specifies what type of program is logging the message.
syslog.filter
Specifies the filter type to filter the logged messages. There are three supported filter types - all, no-ctrl and ascii.
syslog.ident
Specifies the ident string which is prepended to every message.

Garbage Collection

The cyclic GC has been enhanced, which may result in considerable performance improvements.

Miscellaneous

var_export() now exports stdClass objects as an array cast to an object ((object) array( ... )), rather than using the nonexistent method stdClass::__setState().

debug_zval_dump() was changed to display recursive arrays and objects in the same way as var_dump(). Now, it doesn't display them twice.

array_push() and array_unshift() can now also be called with a single argument, which is particularly convenient wrt. the spread operator.

Interactive PHP Debugger

The unused constants PHPDBG_FILE, PHPDBG_METHOD, PHPDBG_LINENO and PHPDBG_FUNC have been removed.

FastCGI Process Manager

The getallheaders() function is now also available.

Client URL Library

libcurl = 7.15.5 is now required.

Data Filtering

FILTER_VALIDATE_FLOAT now also supports a thousand option, which defines the set of allowed thousand separator chars. The default ("',.") is fully backward compatible with former PHP versions.

FILTER_SANITIZE_ADD_SLASHES has been added as an alias of the magic_quotes filter (FILTER_SANITIZE_MAGIC_QUOTES). The magic_quotes filter is subject to removal in future versions of PHP.

FTP

The default transfer mode has been changed to binary.

Internationalization Functions

Normalizer::NONE is deprecated, when PHP is linked with ICU = 56.

Introduced Normalizer::FORM_KC_CF as Normalizer::normalize() argument for NFKC_Casefold normalization; available when linked with ICU = 56.

JavaScript Object Notation

A new flag has been added, JSON_THROW_ON_ERROR, which can be used with json_decode() or json_encode() and causes these functions to throw the new JsonException upon an error, instead of setting the global error state that is retrieved with json_last_error() and json_last_error_msg(). JSON_PARTIAL_OUTPUT_ON_ERROR takes precedence over JSON_THROW_ON_ERROR.

Multibyte String

The configuration option --with-libmbfl is no longer available.

ODBC (Unified)

Support for ODBCRouter and Birdstep including the birdstep.max_links ini directive has been removed.

OPcache

The opcache.inherited_hack ini directive has been removed. The value has already been ignored since PHP 5.3.0.

OpenSSL

The min_proto_version and max_proto_version ssl stream options as well as related constants for possible TLS protocol values have been added.

Regular Expressions (Perl-Compatible)

The PCRE extension has been upgraded to PCRE2, which may cause minor behavioral changes (for instance, character ranges in classes are now more strictly interpreted), and augments the existing regular expression syntax.

preg_quote() now also escapes the '#' character.

Microsoft SQL Server and Sybase Functions (PDO_DBLIB)

The attribute PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS to enable automatic skipping of empty rowsets has been added.

The PDO::DBLIB_ATTR_TDS_VERSION attribute which exposes the TDS version has been added.

DATETIME2 columns are now treated like DATETIME columns.

SQLite Functions (PDO_SQLITE)

SQLite3 databases can now be opened in read-only mode by setting the new PDO::SQLITE_ATTR_OPEN_FLAGS attribute to PDO::SQLITE_OPEN_READONLY.

Session Handling

session_set_cookie_params() now also supports the following signature:

session_set_cookie_params ( array $options ) : bool
where $options is an associative array which may have any of the keys "lifetime", "path", "domain", "secure", "httponly" and "samesite". Accordingly, the return value of session_get_cookie_params() now also has an element with the key "samesite". Furthermore, the new session.cookie_samesite ini option to set the default of the SameSite directive for cookies has been added. It defaults to "" (empty string), so no SameSite directive is set. Can be set to "Lax" or "Strict", which sets the respective SameSite directive.

Tidy

Building against » tidyp is now also supported transparently. Since tidyp offers no API to get the release date, tidy_get_release() and tidy::getRelease() return 'unknown' in this case.

XML Parser

The return value of the xml_set_external_entity_ref_handler() callback is no longer ignored if the extension has been built against libxml. Formerly, the return value has been ignored, and parsing did never stop.

Zip

Building against the bundled libzip is discouraged, but still possible by adding --without-libzip to the configuration.

Zlib Compression

The zlib/level context option for the compress.zlib wrapper to facilitate setting the desired compression level has been added.


Windows-Unterstützung

PHP-Kern

POSIX konformere Datei-Löschung

Datei-Deskriptoren werden standardmäßig im gemeinsamen Lese-/Schreib-/Löschmodus geöffnet. Dies bildet im Grunde die POSIX Semantik ab, und erlaubt Dateien mit verwendeten Handles zu löschen. Es ist nicht 100% das gleiche, einige Plattform-Differenzen bestehen nach wie vor. Nach der Löschung ist der Dateinameneintrag blockiert, bis alle geöffneten Handles zu ihm geschlossen sind.


Migration von PHP 7.1.x auf PHP 7.2.x

Inhaltsverzeichnis

  • New features
  • Neue Funktionen
  • Neue globale Konstanten
  • Backward incompatible changes
  • Deprecated features in PHP 7.2.x
  • Other changes

Diese neue Minor-Version bringt eine Reihe von neuen Features und einige wenige Inkompatibilitäten, die vor der Umstellung der PHP-Versionen in der Produktions-Umgebung getestet werden sollten.

Siehe auch die Migrationsleitfäden für PHP-Versionen 7.0.x und 7.1.x.


New features

New object type

A new type, object, has been introduced that can be used for (contravariant) parameter typing and (covariant) return typing of any objects.

<?php

function test(object $obj) : object
{
    return new SplQueue();
}

test(new StdClass());

Extension loading by name

Shared extensions no longer require their file extension (.so for Unix or .dll for Windows) to be specified. This is enabled in the php.ini file, as well as in the dl() function.

Abstract method overriding

Abstract methods can now be overridden when an abstract class extends another abstract class.

<?php

abstract class A
{
    abstract function test(string $s);
}
abstract class B extends A
{
    // overridden - still maintaining contravariance for parameters and covariance for return
    abstract function test($s) : int;
}

Sodium is now a core extension

The modern Sodium cryptography library has now become a core extension in PHP.

For a complete function reference, see the Sodium chapter.

Password hashing with Argon2

Argon2 has been added to the password hashing API, where the following constants have been exposed:

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

Extended string types for PDO

PDO's string type has been extended to support the national character type when emulating prepares. This has been done with the following constants:

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

These constants are utilised by bitwise OR'ing them with PDO::PARAM_STR:

<?php

$db->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL);

Additional emulated prepares debugging information for PDO

The PDOStatement::debugDumpParams() method has been updated to include the SQL being sent to the DB, where the full, raw query (including the replaced placeholders with their bounded values) will be shown. This has been added to aid with debugging emulated prepares (and so it will only be available when emulated prepares are turned on).

Support for extended operations in LDAP

Support for EXOP has been added to the LDAP extension. This has been done by exposing the following functions and constants:

  • ldap_parse_exop()
  • ldap_exop()
  • ldap_exop_passwd()
  • ldap_exop_whoami()
  • LDAP_EXOP_START_TLS
  • LDAP_EXOP_MODIFY_PASSWD
  • LDAP_EXOP_REFRESH
  • LDAP_EXOP_WHO_AM_I
  • LDAP_EXOP_TURN

Address Information additions to the Sockets extension

The sockets extension now has the ability to lookup address information, as well as connect to it, bind to it, and explain it. The following four functions have been added for this:

  • socket_addrinfo_lookup()
  • socket_addrinfo_connect()
  • socket_addrinfo_bind()
  • socket_addrinfo_explain()

Parameter type widening

Parameter types from overridden methods and from interface implementations may now be omitted. This is still in compliance with LSP, since parameters types are contravariant.

<?php

interface A
{
    public function Test(array $input);
}

class B implements A
{
    public function Test($input){} // type omitted for $input
}

Allow a trailing comma for grouped namespaces

A trailing comma can now be added to the group-use syntax introduced in PHP 7.0.

<?php

use Foo\Bar\{
    Foo,
    Bar,
    Baz,
};

proc_nice() support on Windows

The proc_nice() function is now supported on Windows.

pack() and unpack() endian support

The pack() and unpack() functions now support float and double in both little and big endian.

Enhancements to the EXIF extension

The EXIF extension has been updated to support a much larger range of formats. This means that their format specific tags are now properly translated when parsing images with the exif_read_data() function. The following new formats are now supported:

  • Samsung
  • DJI
  • Panasonic
  • Sony
  • Pentax
  • Minolta
  • Sigma/Foveon
  • AGFA
  • Kyocera
  • Ricoh
  • Epson

The EXIF functions exif_read_data() and exif_thumbnail() now support passing streams as their first argument.

New features in PCRE

  • The J modifier for setting PCRE_DUPNAMES has been added.

SQLite3 allows writing BLOBs

SQLite3::openBlob() now allows to open BLOB fields in write mode; formerly only read mode was supported.

Oracle OCI8 Transparent Application Failover Callbacks

Support for Oracle Database Transparent Application Failover (TAF) callbacks has been added. TAF allows PHP OCI8 applications to automatically reconnect to a preconfigured database when a connection is broken. The new TAF callback support allows PHP applications to monitor and control reconnection during failover.

Enhancements to the ZIP extension

Read and write support for encrypted archives has been added (requires libzip 1.2.0).

The ZipArchive class now implements the Countable interface.

The zip:// stream now accepts a 'password' context option.


Neue Funktionen

PHP-Kern

  • stream_isatty()
  • sapi_windows_vt100_support()

SPL

  • spl_object_id()

DOM

  • DomNodeList::count()
  • DOMNamedNodeMap::count()

FTP

  • ftp_append()

GD

  • imagesetclip()
  • imagegetclip()
  • imageopenpolygon()
  • imageresolution()
  • imagecreatefrombmp()
  • imagebmp()

Hash

  • hash_hmac_algos()

LDAP

  • ldap_parse_exop()
  • ldap_exop()
  • ldap_exop_passwd()
  • ldap_exop_whoami()

Multibyte String

  • mb_chr()
  • mb_ord()
  • mb_scrub()

Oracle OCI8

  • oci_register_taf_callback()
  • oci_unregister_taf_callback()

Sockets

  • socket_addrinfo_lookup()
  • socket_addrinfo_connect()
  • socket_addrinfo_bind()
  • socket_addrinfo_explain()

Sodium

  • sodium_add()
  • sodium_bin2hex()
  • sodium_compare()
  • sodium_crypto_aead_aes256gcm_decrypt()
  • sodium_crypto_aead_aes256gcm_encrypt()
  • sodium_crypto_aead_aes256gcm_is_available()
  • sodium_crypto_aead_aes256gcm_keygen()
  • sodium_crypto_aead_chacha20poly1305_decrypt()
  • sodium_crypto_aead_chacha20poly1305_encrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen()
  • sodium_crypto_aead_chacha20poly1305_keygen()
  • sodium_crypto_auth_keygen()
  • sodium_crypto_auth_verify()
  • sodium_crypto_auth()
  • sodium_crypto_box_keypair_from_secretkey_and_publickey()
  • sodium_crypto_box_keypair()
  • sodium_crypto_box_open()
  • sodium_crypto_box_publickey_from_secretkey()
  • sodium_crypto_box_publickey()
  • sodium_crypto_box_seal_open()
  • sodium_crypto_box_seal()
  • sodium_crypto_box_secretkey()
  • sodium_crypto_box_seed_keypair()
  • sodium_crypto_box()
  • sodium_crypto_generichash_final()
  • sodium_crypto_generichash_init()
  • sodium_crypto_generichash_keygen()
  • sodium_crypto_generichash_update()
  • sodium_crypto_generichash()
  • sodium_crypto_kdf_derive_from_key()
  • sodium_crypto_kdf_keygen()
  • sodium_crypto_kx_client_session_keys()
  • sodium_crypto_kx_keypair()
  • sodium_crypto_kx_publickey()
  • sodium_crypto_kx_secretkey()
  • sodium_crypto_kx_seed_keypair()
  • sodium_crypto_kx_server_session_keys()
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify()
  • sodium_crypto_pwhash_scryptsalsa208sha256_str()
  • sodium_crypto_pwhash_scryptsalsa208sha256()
  • sodium_crypto_pwhash_str_verify()
  • sodium_crypto_pwhash_str()
  • sodium_crypto_pwhash()
  • sodium_crypto_scalarmult_base()
  • sodium_crypto_scalarmult()
  • sodium_crypto_secretbox_keygen()
  • sodium_crypto_secretbox_open()
  • sodium_crypto_secretbox()
  • sodium_crypto_shorthash_keygen()
  • sodium_crypto_shorthash()
  • sodium_crypto_sign_detached()
  • sodium_crypto_sign_ed25519_pk_to_curve25519()
  • sodium_crypto_sign_ed25519_sk_to_curve25519()
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey()
  • sodium_crypto_sign_keypair()
  • sodium_crypto_sign_open()
  • sodium_crypto_sign_publickey_from_secretkey()
  • sodium_crypto_sign_publickey()
  • sodium_crypto_sign_secretkey()
  • sodium_crypto_sign_seed_keypair()
  • sodium_crypto_sign_verify_detached()
  • sodium_crypto_sign()
  • sodium_crypto_stream_keygen()
  • sodium_crypto_stream_xor()
  • sodium_crypto_stream()
  • sodium_hex2bin()
  • sodium_increment()
  • sodium_memcmp()
  • sodium_memzero()
  • sodium_pad()
  • sodium_unpad()

ZIP

  • ZipArchive::count()
  • ZipArchive::setEncryptionName()
  • ZipArchive::setEncryptionIndex()


Neue globale Konstanten

PHP Core

  • PHP_FLOAT_DIG
  • PHP_FLOAT_EPSILON
  • PHP_FLOAT_MIN
  • PHP_FLOAT_MAX
  • PHP_OS_FAMILY

Dateiinformation

  • FILEINFO_EXTENSION

JSON

  • JSON_INVALID_UTF8_IGNORE
  • JSON_INVALID_UTF8_SUBSTITUTE

GD

  • IMG_EFFECT_MULTIPLY
  • IMG_BMP

LDAP

  • LDAP_EXOP_START_TLS
  • LDAP_EXOP_MODIFY_PASSWD
  • LDAP_EXOP_REFRESH
  • LDAP_EXOP_WHO_AM_I
  • LDAP_EXOP_TURN

Password Hashing

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

PCRE

  • PREG_UNMATCHED_AS_NULL

PDO

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

Sodium

  • SODIUM_LIBRARY_VERSION
  • SODIUM_LIBRARY_MAJOR_VERSION
  • SODIUM_LIBRARY_MINOR_VERSION
  • SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES
  • SODIUM_CRYPTO_AUTH_BYTES
  • SODIUM_CRYPTO_AUTH_KEYBYTES
  • SODIUM_CRYPTO_BOX_SEALBYTES
  • SODIUM_CRYPTO_BOX_SECRETKEYBYTES
  • SODIUM_CRYPTO_BOX_PUBLICKEYBYTES
  • SODIUM_CRYPTO_BOX_KEYPAIRBYTES
  • SODIUM_CRYPTO_BOX_MACBYTES
  • SODIUM_CRYPTO_BOX_NONCEBYTES
  • SODIUM_CRYPTO_BOX_SEEDBYTES
  • SODIUM_CRYPTO_KDF_BYTES_MIN
  • SODIUM_CRYPTO_KDF_BYTES_MAX
  • SODIUM_CRYPTO_KDF_CONTEXTBYTES
  • SODIUM_CRYPTO_KDF_KEYBYTES
  • SODIUM_CRYPTO_KX_SEEDBYTES
  • SODIUM_CRYPTO_KX_SESSIONKEYBYTES
  • SODIUM_CRYPTO_KX_PUBLICKEYBYTES
  • SODIUM_CRYPTO_KX_SECRETKEYBYTES
  • SODIUM_CRYPTO_KX_KEYPAIRBYTES
  • SODIUM_CRYPTO_GENERICHASH_BYTES
  • SODIUM_CRYPTO_GENERICHASH_BYTES_MIN
  • SODIUM_CRYPTO_GENERICHASH_BYTES_MAX
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX
  • SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13
  • SODIUM_CRYPTO_PWHASH_ALG_DEFAULT
  • SODIUM_CRYPTO_PWHASH_SALTBYTES
  • SODIUM_CRYPTO_PWHASH_STRPREFIX
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE
  • SODIUM_CRYPTO_SCALARMULT_BYTES
  • SODIUM_CRYPTO_SCALARMULT_SCALARBYTES
  • SODIUM_CRYPTO_SHORTHASH_BYTES
  • SODIUM_CRYPTO_SHORTHASH_KEYBYTES
  • SODIUM_CRYPTO_SECRETBOX_KEYBYTES
  • SODIUM_CRYPTO_SECRETBOX_MACBYTES
  • SODIUM_CRYPTO_SECRETBOX_NONCEBYTES
  • SODIUM_CRYPTO_SIGN_BYTES
  • SODIUM_CRYPTO_SIGN_SEEDBYTES
  • SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES
  • SODIUM_CRYPTO_SIGN_SECRETKEYBYTES
  • SODIUM_CRYPTO_SIGN_KEYPAIRBYTES
  • SODIUM_CRYPTO_STREAM_NONCEBYTES
  • SODIUM_CRYPTO_STREAM_KEYBYTES

Zip

  • ZipArchive::EM_NONE
  • ZipArchive::EM_AES_128
  • ZipArchive::EM_AES_192
  • ZipArchive::EM_AES_256


Backward incompatible changes

Prevent number_format() from returning negative zero

Previously, it was possible for the number_format() function to return -0. Whilst this is perfectly valid according to the IEEE 754 floating point specification, this oddity was not desirable for displaying formatted numbers in a human-readable form.

<?php

var_dump(number_format(-0.01)); // now outputs string(1) "0" instead of string(2) "-0"

Convert numeric keys in object and array casts

Numeric keys are now better handled when casting arrays to objects and objects to arrays (either from explicit casting or by settype()).

This means that integer (or stringy integer) keys from arrays being casted to objects are now accessible:

<?php

// array to object
$arr = [0 => 1];
$obj = (object)$arr;
var_dump(
    $obj,
    $obj->{'0'}, // now accessible
    $obj->{0} // now accessible
);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(stdClass)#1 (1) {
  ["0"]=>    // string key now, rather than integer key
  int(1)
}
int(1)
int(1)

And integer (or stringy integer) keys from objects being casted to arrays are now accessible:

<?php

// object to array
$obj = new class {
    public function __construct()
    {
        $this->{0} = 1;
    }
};
$arr = (array)$obj;
var_dump(
    $arr,
    $arr[0], // now accessible
    $arr['0'] // now accessible
);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(1) {
  [0]=>    // integer key now, rather than string key
  int(1)
}
int(1)
int(1)

Disallow passing null to get_class()

Previously, passing null to the get_class() function would output the name of the enclosing class. This behaviour has now been removed, where an E_WARNING will be output instead. To achieve the same behaviour as before, the argument should simply be omitted.

Warn when counting non-countable types

An E_WARNING will now be emitted when attempting to count() non-countable types (this includes the sizeof() alias function).

<?php

var_dump(
    count(null), // NULL is not countable
    count(1), // integers are not countable
    count('abc'), // strings are not countable
    count(new stdclass), // objects not implementing the Countable interface are not countable
    count([1,2]) // arrays are countable
);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d
int(0)
int(1)
int(1)
int(1)
int(2)

Move ext/hash from resources to objects

As part of the long-term migration away from resources, the Hash extension has been updated to use objects instead of resources. The change should be seamless for PHP developers, except for where is_resource() checks have been made (which will need updating to is_object() instead).

Improve SSL/TLS defaults

The following changes to the defaults have been made:

  • tls:// now defaults to TLSv1.0 or TLSv1.1 or TLSv1.2
  • ssl:// an alias of tls://
  • STREAM_CRYPTO_METHOD_TLS_* constants default to TLSv1.0 or TLSv1.1 + TLSv1.2, instead of TLSv1.0 only

gettype() return value on closed resources

Previously, using gettype() on a closed resource would return a string of "unknown type". Now, a string of "resource (closed)" will be returned.

is_object() and __PHP_Incomplete_Class

Previously, using is_object() on the __PHP_Incomplete_Class class would return false. Now, true will be returned.

Promote the error level of undefined constants

Unqualified references to undefined constants will now generate an E_WARNING (instead of an E_NOTICE). In the next major version of PHP, they will generate Error exceptions.

Windows support

The officially supported, minimum Windows versions are now Windows 7/Server 2008 R2.

Checks on default property values of traits

Compatibility checks upon default trait property values will no longer perform casting.

object for class names

The object name was previously soft-reserved in PHP 7.0. This is now hard-reserved, prohibiting it from being used as a class, trait, or interface name.

NetWare support

Support for NetWare has now been removed.

array_unique() with SORT_STRING

While array_unique() with SORT_STRING formerly copied the array and removed non-unique elements (without packing the array afterwards), now a new array is built by adding the unique elements. This can result in different numeric indexes.

bcmod() changes with floats

The bcmod() function no longer truncates fractional numbers to integers. As such, its behavior now follows fmod(), rather than the % operator. For example bcmod('4', '3.5') now returns 0.5 instead of 1.

Hashing functions and non-cryptographic hashes

The hash_hmac(), hash_hmac_file(), hash_pbkdf2(), and hash_init() (with HASH_HMAC) functions no longer accept non-cryptographic hashes.

json_decode() function options

The json_decode() function option, JSON_OBJECT_AS_ARRAY, is now used if the second parameter (assoc) is null. Previously, JSON_OBJECT_AS_ARRAY was always ignored.

rand() and mt_rand() output

Sequences generated by rand() and mt_rand() for a specific seed may differ from PHP 7.1 on 64-bit machines (due to the fixing of a modulo bias bug in the implementation).

Removal of sql.safe_mode ini setting

The sql.safe_mode ini setting has now been removed.

Changes to date_parse() and date_parse_from_format()

The zone element of the array returned by date_parse() and date_parse_from_format() represents seconds instead of minutes now, and its sign is inverted. For instance -120 is now 7200.

Incoming Cookies

As of PHP 7.2.34, the names of incoming cookies are no longer url-decoded for security reasons.


Deprecated features in PHP 7.2.x

Unquoted strings

Unquoted strings that are non-existent global constants are taken to be strings of themselves. This behaviour used to emit an E_NOTICE, but will now emit an E_WARNING. In the next major version of PHP, an Error exception will be thrown instead.

<?php

var_dump(NONEXISTENT);

/* Output:
Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version of PHP) in %s on line %d
string(11) "NONEXISTENT"
*/

png2wbmp() and jpeg2wbmp()

The png2wbmp() and jpeg2wbmp() functions from the GD extension have now been deprecated and will be removed in the next major version of PHP.

INTL_IDNA_VARIANT_2003 variant

The Intl extension has deprecated the INTL_IDNA_VARIANT_2003 variant, which is currently being used as the default for idn_to_ascii() and idn_to_utf8(). PHP 7.4 will see these defaults changed to INTL_IDNA_VARIANT_UTS46, and the next major version of PHP will remove INTL_IDNA_VARIANT_2003 altogether.

__autoload() method

The __autoload() method has been deprecated because it is inferior to spl_autoload_register() (due to it not being able to chain autoloaders), and there is no interoperability between the two autoloading styles.

track_errors ini setting and $php_errormsg variable

When the track_errors ini setting is enabled, a $php_errormsg variable is created in the local scope when a non-fatal error occurs. Given that the preferred way of retrieving such error information is by using error_get_last(), this feature has been deprecated.

create_function() function

Given the security issues of this function (being a thin wrapper around eval()), this dated function has now been deprecated. The preferred alternative is to use anonymous functions.

mbstring.func_overload ini setting

Given the interoperability problems of string-based functions being used in environments with this setting enabled, it has now been deprecated.

(unset) cast

Casting any expression to this type will always result in null, and so this superfluous casting type has now been deprecated.

parse_str() without a second argument

Without the second argument to parse_str(), the query string parameters would populate the local symbol table. Given the security implications of this, using parse_str() without a second argument has now been deprecated. The function should always be used with two arguments, as the second argument causes the query string to be parsed into an array.

gmp_random() function

This function generates a random number based upon a range that is calculated by an unexposed, platform-specific limb size. Because of this, the function has now been deprecated. The preferred way of generating a random number using the GMP extension is by gmp_random_bits() and gmp_random_range().

each() function

This function is far slower at iteration than a normal foreach, and causes implementation issues for some language changes. It has therefore been deprecated.

assert() with a string argument

Using assert() with a string argument required the string to be eval()'ed. Given the potential for remote code execution, using assert() with a string argument has now been deprecated in favour of using boolean expressions.

$errcontext argument of error handlers

The $errcontext argument contains all local variables of the error site. Given its rare usage, and the problems it causes with internal optimisations, it has now been deprecated. Instead, a debugger should be used to retrieve information on local variables at the error site.

read_exif_data() function

The read_exif_data() alias has been deprecated. The exif_read_data() function should be used instead.


Other changes

Moving of utf8_encode() and utf8_decode()

The utf8_encode() and utf8_decode() functions have now been moved to the standard extension as string functions, whereas before the XML extension was required for them to be available.

Changes to mail() and mb_sendmail()

The $additional_headers parameter of mail() and mb_sendmail() now also accepts an array instead of a string.

LMDB support

The DBA extension now has support for LMDB.

Changes to the PHP build system

  • Unix: Autoconf 2.64 or greater is now required to build PHP.
  • Unix: --with-pdo-oci configure argument no longer needs the version number of the Oracle Instant Client.
  • Unix: --enable-gd-native-ttf configure argument has been removed. This was not used since PHP 5.5.0.
  • Windows: --with-config-profile configure argument has been added. This can be used to save specific configures, much like the magical config.nice.bat file.

Changes to GD

  • imageantialias() is now also available if compiled with a system libgd.
  • imagegd() stores truecolor images as real truecolor images. Formerly, they have been converted to palette.

Moving MCrypt to PECL

The MCrypt extension has now been moved out of the core to PECL. Given the mcrypt library has not seen any updates since 2007, its usage is highly discouraged. Instead, either the OpenSSL or Sodium extension should be used.

session_module_name()

Passing "user" to session_module_name() now raises an error of level E_RECOVERABLE_ERROR. Formerly, this has been silently ignored.


Migration von PHP 7.0.x nach PHP 7.1.x

Inhaltsverzeichnis

  • New features
  • Neue Funktionen
  • Neue globale Konstanten
  • Backward incompatible changes
  • Deprecated features in PHP 7.1.x
  • Changed functions
  • Other changes
  • Windows Support

Diese Nebenversion bringt einige neue Features und vereinzelte Inkompatibilitäten mit sich, auf die vor dem Versionswechsel in Produktivumgebungen getestet werden sollte.

Siehe auch die Migrationsleitfäden für PHP-Versionen 7.0.x.


New features

Nullable types

Type declarations for parameters and return values can now be marked as nullable by prefixing the type name with a question mark. This signifies that as well as the specified type, null can be passed as an argument, or returned as a value, respectively.

<?php

function testReturn(): ?string
{
    return 'elePHPant';
}

var_dump(testReturn());

function testReturn(): ?string
{
    return null;
}

var_dump(testReturn());

function test(?string $name)
{
    var_dump($name);
}

test('elePHPant');
test(null);
test();

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(10) "elePHPant"
NULL
string(10) "elePHPant"
NULL
Uncaught Error: Too few arguments to function test(), 0 passed in...

Void functions

A void return type has been introduced. Functions declared with void as their return type must either omit their return statement altogether, or use an empty return statement. null is not a valid return value for a void function.

<?php
function swap(&$left, &$right): void
{
    if ($left === $right) {
        return;
    }

    $tmp = $left;
    $left = $right;
    $right = $tmp;
}

$a = 1;
$b = 2;
var_dump(swap($a, $b), $a, $b);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

null
int(2)
int(1)

Attempting to use a void function's return value simply evaluates to null, with no warnings emitted. The reason for this is because warnings would implicate the use of generic higher order functions.

Symmetric array destructuring

The shorthand array syntax ([]) may now be used to destructure arrays for assignments (including within foreach), as an alternative to the existing list() syntax, which is still supported.

<?php
$data = [
    [1, 'Tom'],
    [2, 'Fred'],
];

// list() style
list($id1, $name1) = $data[0];

// [] style
[$id1, $name1] = $data[0];

// list() style
foreach ($data as list($id, $name)) {
    // logic here with $id and $name
}

// [] style
foreach ($data as [$id, $name]) {
    // logic here with $id and $name
}

Class constant visibility

Support for specifying the visibility of class constants has been added.

<?php
class ConstDemo
{
    const PUBLIC_CONST_A = 1;
    public const PUBLIC_CONST_B = 2;
    protected const PROTECTED_CONST = 3;
    private const PRIVATE_CONST = 4;
}

iterable pseudo-type

A new pseudo-type (similar to callable) called iterable has been introduced. It may be used in parameter and return types, where it accepts either arrays or objects that implement the Traversable interface. With respect to subtyping, parameter types of child classes may broaden a parent's declaration of array or Traversable to iterable. With return types, child classes may narrow a parent's return type of iterable to array or an object that implements Traversable.

<?php
function iterator(iterable $iter)
{
    foreach ($iter as $val) {
        //
    }
}

Multi catch exception handling

Multiple exceptions per catch block may now be specified using the pipe character (|). This is useful for when different exceptions from different class hierarchies are handled the same.

<?php
try {
    // some code
} catch (FirstException | SecondException $e) {
    // handle first and second exceptions
}

Support for keys in list()

You can now specify keys in list(), or its new shorthand [] syntax. This enables destructuring of arrays with non-integer or non-sequential keys.

<?php
$data = [
    ["id" => 1, "name" => 'Tom'],
    ["id" => 2, "name" => 'Fred'],
];

// list() style
list("id" => $id1, "name" => $name1) = $data[0];

// [] style
["id" => $id1, "name" => $name1] = $data[0];

// list() style
foreach ($data as list("id" => $id, "name" => $name)) {
    // logic here with $id and $name
}

// [] style
foreach ($data as ["id" => $id, "name" => $name]) {
    // logic here with $id and $name
}

Support for negative string offsets

Support for negative string offsets has been added to the string manipulation functions accepting offsets, as well as to string indexing with [] or {}. In such cases, a negative offset is interpreted as being an offset from the end of the string.

<?php
var_dump("abcdef"[-2]);
var_dump(strpos("aabbcc", "b", -3));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string (1) "e"
int(3)

Negative string and array offsets are now also supported in the simple variable parsing syntax inside of strings.

<?php
$string = 'bar';
echo "The last character of '$string' is '$string[-1]'.\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

The last character of 'bar' is 'r'.

Support for AEAD in ext/openssl

Support for AEAD (modes GCM and CCM) have been added by extending the openssl_encrypt() and openssl_decrypt() functions with additional parameters.

Convert callables to Closures with Closure::fromCallable()

A new static method has been introduced to the Closure class to allow for callables to be easily converted into Closure objects.

<?php
class Test
{
    public function exposeFunction()
    {
        return Closure::fromCallable([$this, 'privateFunction']);
    }

    private function privateFunction($param)
    {
        var_dump($param);
    }
}

$privFunc = (new Test)->exposeFunction();
$privFunc('some value');

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

string(10) "some value"

Asynchronous signal handling

A new function called pcntl_async_signals() has been introduced to enable asynchronous signal handling without using ticks (which introduce a lot of overhead).

<?php
pcntl_async_signals(true); // turn on async signals

pcntl_signal(SIGHUP,  function($sig) {
    echo "SIGHUP\n";
});

posix_kill(posix_getpid(), SIGHUP);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

SIGHUP

HTTP/2 server push support in ext/curl

Support for server push has been added to the CURL extension (requires version 7.46 and above). This can be leveraged through the curl_multi_setopt() function with the new CURLMOPT_PUSHFUNCTION constant. The constants CURL_PUSH_OK and CURL_PUSH_DENY have also been added so that the execution of the server push callback can either be approved or denied.

Stream Context Options

The tcp_nodelay stream context option has been added.


Neue Funktionen

PHP-Kern

  • sapi_windows_cp_get()
  • sapi_windows_cp_set()
  • sapi_windows_cp_conv()
  • sapi_windows_cp_is_utf8()

Closure

  • Closure::fromCallable()

CURL

  • curl_multi_errno()
  • curl_share_errno()
  • curl_share_strerror()

OpenSSL

  • openssl_get_curve_names()

Session

  • session_create_id()
  • session_gc()

SPL

  • is_iterable()

PCNTL

  • pcntl_async_signals()
  • pcntl_signal_get_handler()


Neue globale Konstanten

Vordefinierte Kernkonstanten

  • PHP_FD_SETSIZE

CURL

  • CURLMOPT_PUSHFUNCTION
  • CURL_PUSH_OK
  • CURL_PUSH_DENY

Datenfilterung

  • FILTER_FLAG_EMAIL_UNICODE

Bildverarbeitung und GD

  • IMAGETYPE_WEBP

JSON

  • JSON_UNESCAPED_LINE_TERMINATORS

LDAP

  • LDAP_OPT_X_SASL_NOCANON
  • LDAP_OPT_X_SASL_USERNAME
  • LDAP_OPT_X_TLS_CACERTDIR
  • LDAP_OPT_X_TLS_CACERTFILE
  • LDAP_OPT_X_TLS_CERTFILE
  • LDAP_OPT_X_TLS_CIPHER_SUITE
  • LDAP_OPT_X_TLS_KEYFILE
  • LDAP_OPT_X_TLS_RANDOM_FILE
  • LDAP_OPT_X_TLS_CRLCHECK
  • LDAP_OPT_X_TLS_CRL_NONE
  • LDAP_OPT_X_TLS_CRL_PEER
  • LDAP_OPT_X_TLS_CRL_ALL
  • LDAP_OPT_X_TLS_DHFILE
  • LDAP_OPT_X_TLS_CRLFILE
  • LDAP_OPT_X_TLS_PROTOCOL_MIN
  • LDAP_OPT_X_TLS_PROTOCOL_SSL2
  • LDAP_OPT_X_TLS_PROTOCOL_SSL3
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_0
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_1
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_2
  • LDAP_OPT_X_TLS_PACKAGE
  • LDAP_OPT_X_KEEPALIVE_IDLE
  • LDAP_OPT_X_KEEPALIVE_PROBES
  • LDAP_OPT_X_KEEPALIVE_INTERVAL

PostgreSQL

  • PGSQL_NOTICE_LAST
  • PGSQL_NOTICE_ALL
  • PGSQL_NOTICE_CLEAR

SPL

  • MT_RAND_PHP


Backward incompatible changes

Throw on passing too few function arguments

Previously, a warning would be emitted for invoking user-defined functions with too few arguments. Now, this warning has been promoted to an Error exception. This change only applies to user-defined functions, not internal functions. For example:

<?php
function test($param){}
test();

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function test(), 0 passed in %s on line %d and exactly 1 expected in %s:%d

Forbid dynamic calls to scope introspection functions

Dynamic calls for certain functions have been forbidden (in the form of $func() or array_map('extract', ...), etc). These functions either inspect or modify another scope, and present with them ambiguous and unreliable behavior. The functions are as follows:

  • assert() - with a string as the first argument
  • compact()
  • extract()
  • func_get_args()
  • func_get_arg()
  • func_num_args()
  • get_defined_vars()
  • mb_parse_str() - with one arg
  • parse_str() - with one arg
<?php
(function () {
    $func = 'func_num_args';
    $func();
})();

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Warning: Cannot call func_num_args() dynamically in %s on line %d

Invalid class, interface, and trait names

The following names cannot be used to name classes, interfaces, or traits:

  • void
  • iterable

Numerical string conversions now respect scientific notation

Integer operations and conversions on numerical strings now respect scientific notation. This also includes the (int) cast operation, and the following functions: intval() (where the base is 10), settype(), decbin(), decoct(), and dechex().

Fixes to mt_rand() algorithm

mt_rand() will now default to using the fixed version of the Mersenne Twister algorithm. If deterministic output from mt_srand() was relied upon, then the MT_RAND_PHP with the ability to preserve the old (incorrect) implementation via an additional optional second parameter to mt_srand().

rand() aliased to mt_rand() and srand() aliased to mt_srand()

rand() and srand() have now been made aliases to mt_rand() and mt_srand(), respectively. This means that the output for the following functions have changed: rand(), shuffle(), str_shuffle(), and array_rand().

Disallow the ASCII delete control character in identifiers

The ASCII delete control character (0x7F) can no longer be used in identifiers that are not quoted.

error_log changes with syslog value

If the error_log ini setting is set to syslog, the PHP error levels are mapped to the syslog error levels. This brings finer differentiation in the error logs in contrary to the previous approach where all the errors are logged with the notice level only.

Do not call destructors on incomplete objects

Destructors are now never called for objects that throw an exception during the execution of their constructor. In previous versions this behavior depended on whether the object was referenced outside the constructor (e.g. by an exception backtrace).

call_user_func() handling of reference arguments

call_user_func() will now always generate a warning upon calls to functions that expect references as arguments. Previously this depended on whether the call was fully qualified.

Additionally, call_user_func() and call_user_func_array() will no longer abort the function call in this case. The "expected reference" warning will be emitted, but the call will proceed as usual.

The empty index operator is not supported for strings anymore

Applying the empty index operator to a string (e.g. $str[] = $x) throws a fatal error instead of converting silently to array.

Assignment via string index access on an empty string

String modification by character on an empty string now works like for non-empty strings, i.e. writing to an out of range offset pads the string with spaces, where non-integer types are converted to integer, and only the first character of the assigned string is used. Formerly, empty strings where silently treated like an empty array.

<?php
$a = '';
$a[10] = 'foo';
var_dump($a);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7.0:

array(1) {
  [10]=>
  string(3) "foo"
}

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7.1:

string(11) "          f"

Removed ini directives

The following ini directives have been removed:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

Array ordering when elements are automatically created during by reference assignments has changed

The order of the elements in an array has changed when those elements have been automatically created by referencing them in a by reference assignment. For example:

<?php
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7.0:

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7.1:

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

Sort order of equal elements

The internal sorting algorithm has been improved, what may result in different sort order of elements, which compare as equal, than before.

Hinweis:

Don't rely on the order of elements which compare as equal; it might change anytime.

Error message for E_RECOVERABLE errors

The error message for E_RECOVERABLE errors has been changed from "Catchable fatal error" to "Recoverable fatal error".

$options parameter of unserialize()

The allowed_classes element of the $options parameter of unserialize() is now strictly typed, i.e. if anything other than an array or a bool is given, unserialize() returns false and issues an E_WARNING.

DateTime constructor incorporates microseconds

DateTime and DateTimeImmutable now properly incorporate microseconds when constructed from the current time, either explicitly or with a relative string (e.g. "first day of next month"). This means that naive comparisons of two newly created instances will now more likely return false instead of true:

<?php
new DateTime() == new DateTime();
?>

Fatal errors to Error exceptions conversions

In the Date extension, invalid serialization data for DateTime or DatePeriod classes, or timezone initialization failure from serialized data, will now throw an Error exception from the __wakeup() or __set_state() methods, instead of resulting in a fatal error.

In the DBA extension, data modification functions (such as dba_insert()) will now throw an Error exception instead of triggering a catchable fatal error if the key does not contain exactly two elements.

In the DOM extension, invalid schema or RelaxNG validation contexts will now throw an Error exception instead of resulting in a fatal error. Similarly, attempting to register a node class that does not extend the appropriate base class, or attempting to read an invalid property or write to a readonly property, will also now throw an Error exception.

In the IMAP extension, email addresses longer than 16385 bytes will throw an Error exception instead of resulting in a fatal error.

In the Intl extension, failing to call the parent constructor in a class extending Collator before invoking the parent methods will now throw an Error instead of resulting in a recoverable fatal error. Also, cloning a Transliterator object will now throw an Error exception on failure to clone the internal transliterator instead of resulting in a fatal error.

In the LDAP extension, providing an unknown modification type to ldap_batch_modify() will now throw an Error exception instead of resulting in a fatal error.

In the mbstring extension, the mb_ereg() and mb_eregi() functions will now throw a ParseError exception if an invalid PHP expression is provided and the 'e' option is used.

In the Mcrypt extension, the mcrypt_encrypt() and mcrypt_decrypt() will now throw an Error exception instead of resulting in a fatal error if mcrypt cannot be initialized.

In the mysqli extension, attempting to read an invalid property or write to a readonly property will now throw an Error exception instead of resulting in a fatal error.

In the Reflection extension, failing to retrieve a reflection object or retrieve an object property will now throw an Error exception instead of resulting in a fatal error.

In the Session extension, custom session handlers that do not return strings for session IDs will now throw an Error exception instead of resulting in a fatal error when a function is called that must generate a session ID.

In the SimpleXML extension, creating an unnamed or duplicate attribute will now throw an Error exception instead of resulting in a fatal error.

In the SPL extension, attempting to clone an SplDirectory object will now throw an Error exception instead of resulting in a fatal error. Similarly, calling ArrayIterator::append() when iterating over an object will also now throw an Error exception.

In the standard extension, the assert() function, when provided with a string argument as its first parameter, will now throw a ParseError exception instead of resulting in a catchable fatal error if the PHP code is invalid. Similarly, calling forward_static_call() outside of a class scope will now throw an Error exception.

In the Tidy extension, creating a tidyNode manually will now throw an Error exception instead of resulting in a fatal error.

In the WDDX extension, a circular reference when serializing will now throw an Error exception instead of resulting in a fatal error.

In the XML-RPC extension, a circular reference when serializing will now throw an instance of Error exception instead of resulting in a fatal error.

In the Zip extension, the ZipArchive::addGlob() method will now throw an Error exception instead of resulting in a fatal error if glob support is not available.

Lexically bound variables cannot reuse names

Variables bound to a closure via the use construct cannot use the same name as any superglobals, $this, or any parameter. For example, all of these function definition will result in a fatal error:

<?php
$f = function () use ($_SERVER) {};
$f = function () use ($this) {};
$f = function ($param) use ($param) {};

long2ip() parameter type change

long2ip() now expects an int instead of a string.

JSON encoding and decoding

The serialize_precision ini setting now controls the serialization precision when encoding doubles.

Decoding an empty key now results in an empty property name, rather than _empty_ as a property name.

<?php
var_dump(json_decode(json_encode(['' => 1])));

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

object(stdClass)#1 (1) {
  [""]=>
  int(1)
}

When supplying the JSON_UNESCAPED_UNICODE flag to json_encode(), the sequences U+2028 and U+2029 are now escaped.

Changes to mb_ereg() and mb_eregi() parameter semantics

The third parameter to the mb_ereg() and mb_eregi() functions (regs) will now be set to an empty array if nothing was matched. Formerly, the parameter would not have been modified.

Drop support for the sslv2 stream

The sslv2 stream has now been dropped in OpenSSL.

Forbid "return;" for typed returns already at compile-time

Return statements without argument in functions which declare a return type now trigger E_COMPILE_ERROR (unless the return type is declared as void), even if the return statement would never be reached.


Deprecated features in PHP 7.1.x

ext/mcrypt

The mcrypt extension has been abandonware for nearly a decade now, and was also fairly complex to use. It has therefore been deprecated in favour of OpenSSL, where it will be removed from the core and into PECL in PHP 7.2.

Eval option for mb_ereg_replace() and mb_eregi_replace()

The e pattern modifier has been deprecated for the mb_ereg_replace() and mb_eregi_replace() functions.


Changed functions

PHP Core

  • getopt() has an optional third parameter that exposes the index of the next element in the argument vector list to be processed. This is done via a by-ref parameter.
  • getenv() no longer requires its parameter. If the parameter is omitted, then the current environment variables will be returned as an associative array.
  • get_headers() now has an additional parameter to enable for the passing of custom stream contexts.
  • output_reset_rewrite_vars() no longer resets session URL rewrite variables.
  • parse_url() is now more restrictive and supports RFC3986.
  • unpack() now accepts an optional third parameter to specify the offset to begin unpacking from.

File System

  • file_get_contents() now accepts a negative seek offset if the stream is seekable.
  • tempnam() now emits a notice when falling back to the system's temp directory.

JSON

  • json_encode() now accepts a new option, JSON_UNESCAPED_LINE_TERMINATORS, to disable the escaping of U+2028 and U+2029 characters when JSON_UNESCAPED_UNICODE is supplied.

Multibyte String

  • mb_ereg() now rejects illegal byte sequences.
  • mb_ereg_replace() now rejects illegal byte sequences.

PDO

  • PDO::lastInsertId() for PostgreSQL will now trigger an error when nextval has not been called for the current session (the postgres connection).

PostgreSQL

  • pg_last_notice() now accepts an optional parameter to specify an operation. This can be done with one of the following new constants: PGSQL_NOTICE_LAST, PGSQL_NOTICE_ALL, or PGSQL_NOTICE_CLEAR.
  • pg_fetch_all() now accepts an optional second parameter to specify the result type (similar to the third parameter of pg_fetch_array()).
  • pg_select() now accepts an optional fourth parameter to specify the result type (similar to the third parameter of pg_fetch_array()).

Session

  • session_start() now returns false and no longer initializes $_SESSION when it failed to start the session.


Other changes

Notices and warnings on arithmetic with invalid strings

New E_WARNING and E_NOTICE errors have been introduced when invalid strings are coerced using operators expecting numbers (+ - * / ** % << >> | & ^) or their assignment equivalents. An E_NOTICE is emitted when the string begins with a numeric value but contains trailing non-numeric characters, and an E_WARNING is emitted when the string does not contain a numeric value.

<?php
'1b' + 'something';

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Notice: A non well formed numeric value encountered in %s on line %d
Warning: A non-numeric value encountered in %s on line %d

Warn on octal escape sequence overflow

Previously, 3-octet octal string escape sequences would overflow silently. Now, they will still overflow, but E_WARNING will be emitted.

<?php
var_dump("\500");

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Warning: Octal escape sequence overflow \500 is greater than \377 in %s on line %d
string(1) "@"

Inconsistency fixes to $this

Whilst $this is considered a special variable in PHP, it lacked proper checks to ensure it wasn't used as a variable name or reassigned. This has now been rectified to ensure that $this cannot be a user-defined variable, reassigned to a different value, or be globalised.

Session ID generation without hashing

Session IDs will no longer be hashed upon generation. With this change brings about the removal of the following four ini settings:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

And the addition of the following two ini settings:

  • session.sid_length - defines the length of the session ID, defaulting to 32 characters for backwards compatibility)
  • session.sid_bits_per_character - defines the number of bits to be stored per character (i.e. increases the range of characters that can be used in the session ID), defaulting to 4 for backwards compatibility

Changes to INI file handling

precision

If the value is set to -1, then the dtoa mode 0 is used. The default value is still 14.

serialize_precision

If the value is set to -1, then the dtoa mode 0 is used. The value -1 is now used by default.

gd.jpeg_ignore_warning

The default of this php.ini setting has been changed to 1, so by default libjpeg warnings are ignored.

opcache.enable_cli

The default of this php.ini setting has been changed to 1 (enabled) in PHP 7.1.2, and back to 0 (disabled) in PHP 7.1.7.

Session ID generation with a CSPRNG only

Session IDs will now only be generated with a CSPRNG.

More informative TypeError messages when null is allowed

TypeError exceptions for arg_info type checks will now provide more informative error messages. If the parameter type or return type accepts null (by either having a default value of null or being a nullable type), then the error message will now mention this with a message of "must be ... or null" or "must ... or be null."


Windows Support

Support for long and UTF-8 path

If a web application is UTF-8 conform, no further action is required. For applications depending on paths in non UTF-8 encodings for I/O, an explicit INI directive has to be set. The encoding INI settings check relies on the order in the core:

  • internal_encoding
  • default_charset
  • zend.multibyte

Several functions for codepage handling were introduced:

  • sapi_windows_cp_set() to set the default codepage
  • sapi_windows_cp_get() to retrieve the current codepage
  • sapi_windows_cp_is_utf8()
  • sapi_windows_cp_conv() to convert between codepages, using iconv() compatible signature

These functions are thread safe.

The console output codepage is adjusted depending on the encoding used in PHP. Depending on the concrete system OEM codepage, the visible output might or might be not correct. For example, in the default cmd.exe and on a system with the OEM codepage 437, outputs in codepages 1251, 1252, 1253 and some others can be shown correctly when using UTF-8. On the same system, chars in codepage like 20932 probably won't be shown correctly. This refers to the particular system rules for codepage, font compatibility and the particular console program used. PHP automatically sets the console codepage according to the encoding rules from php.ini. Using alternative consoles instead of cmd.exe directly might bring better experience in some cases.

Nevertheless be aware, runtime codepage switch after the request start might bring unexpected side effects on CLI. The preferable way is php.ini, When PHP CLI is used in a console emulator, that doesn't support Unicode, it might possibly be required, to avoid changing the console codepage. The best way to achieve it is by setting the default or internal encoding to correspond the ANSI codepage. Another method is to set the INI directives output_encoding and input_encoding to the required codepage, in which case however the difference between internal and I/O codepage is likely to cause mojibake. In rare cases, if PHP happens to crash gracefully, the original console codepage might be not restored. In this case, the chcp command can be used, to restore it manually.

Special awareness for the DBCS systems - the codepage switch on runtime using ini_set() is likely to cause display issues. The difference to the non DBCS systems is, that the extended characters require two console cells to be displayed. In certain case, only the mapping of the characters into the glyph set of the font could happen, no actual font change. This is the nature of DBCS systems, the most simple way to prevent display issues is to avoid usage of ini_set() for the codepage change.

As a result of UTF-8 support in the streams, PHP scripts are not limited to ASCII or ANSI filenames anymore. This is supported out of the box on CLI. For other SAPI, the documentation for the corresponding server is useful.

Long paths support is transparent. Paths longer than 260 bytes get automatically prefixed with \\?\. The max path length is limited to 2048 bytes. Be aware, that the path segment limit (basename length) still persists.

For the best portability, it is strongely recommended to handle filenames, I/O and other related topics UTF-8. Additionally, for the console applications, the usage of a TrueType font is preferable and the usage of ini_set() for the codepage change is discouraged.

readline

The readline extension is supported through the » WinEditLine library. Thereby, the interactive CLI shell is supported as well (php.exe -a).

PHP_FCGI_CHILDREN

PHP_FCGI_CHILDREN is now respected. If this environment variable is defined, the first php-cgi.exe process will exec the specified number of children. These will share the same TCP socket.

ftok()

Added support for ftok()


Migration von PHP 5.6.x nach PHP 7.0.x

Inhaltsverzeichnis

  • Abwärtsinkompatible Änderungen
  • New features
  • Deprecated features in PHP 7.0.x
  • Geänderte Funktionen
  • New functions
  • Neue Klassen und Interfaces
  • Neue globale Konstanten
  • Changes in SAPI Modules
  • Entfernte Extensions und SAPIs
  • Other Changes

Obwohl PHP 7.0 eine neue Hauptversion darstellt, wurde viel Wert auf eine einfache Migration gelegt. In dieser Version wurden hauptsächlich vorher als missbilligt markierte Funktionalität entfernt und die Sprachkonsistenz erhöht.

Trotzdem gibt es kleinere Inkompatibilitäten und neue Features, auf die geachtet werden muss und verschiedene Tests erforderlich machen, bevor in Produktivumgebungen auf eine andere PHP-Version gewechselt werden kann.


Abwärtsinkompatible Änderungen

Changes to error and exception handling

Many fatal and recoverable fatal errors have been converted to exceptions in PHP 7. These error exceptions inherit from the Error class, which itself implements the Throwable interface (the new base interface all exceptions inherit).

This means that custom error handlers may no longer be triggered because exceptions may be thrown instead (causing new fatal errors for uncaught Error exceptions).

A fuller description of how errors operate in PHP 7 can be found on the PHP 7 errors page. This migration guide will merely enumerate the changes that affect backward compatibility.

set_exception_handler() is no longer guaranteed to receive Exception objects

Code that implements an exception handler registered with set_exception_handler() using a type declaration of Exception will cause a fatal error when an Error object is thrown.

If the handler needs to work on both PHP 5 and 7, you should remove the type declaration from the handler, while code that is being migrated to work on PHP 7 exclusively can simply replace the Exception type declaration with Throwable instead.

<?php
// PHP 5 era code that will break.
function handler(Exception $e) { ... }
set_exception_handler('handler');

// PHP 5 and 7 compatible.
function handler($e) { ... }

// PHP 7 only.
function handler(Throwable $e) { ... }
?>

Internal constructors always throw exceptions on failure

Previously, some internal classes would return null or an unusable object when the constructor failed. All internal classes will now throw an Exception in this case in the same way that user classes already had to.

Parse errors throw ParseError

Parser errors now throw a ParseError object. Error handling for eval() should now include a catch block that can handle this error.

E_STRICT notices severity changes

All of the E_STRICT notices have been reclassified to other levels. E_STRICT constant is retained, so calls like error_reporting(E_ALL|E_STRICT) will not cause an error.

E_STRICT notices severity changes
Situation | New level/behaviour
Indexing by a resource | E_NOTICE
Abstract static methods | Notice removed, triggers no error
"Redefining" a constructor | Notice removed, triggers no error
Signature mismatch during inheritance | E_WARNING
Same (compatible) property in two used traits | Notice removed, triggers no error
Accessing static property non-statically | E_NOTICE
Only variables should be assigned by reference | E_NOTICE
Only variables should be passed by reference | E_NOTICE
Calling non-static methods statically | E_DEPRECATED

Changes to variable handling

PHP 7 now uses an abstract syntax tree when parsing source files. This has permitted many improvements to the language which were previously impossible due to limitations in the parser used in earlier versions of PHP, but has resulted in the removal of a few special cases for consistency reasons, which has resulted in backward compatibility breaks. These cases are detailed in this section.

Changes to the handling of indirect variables, properties, and methods

Indirect access to variables, properties, and methods will now be evaluated strictly in left-to-right order, as opposed to the previous mix of special cases. The table below shows how the order of evaluation has changed.

Old and new evaluation of indirect expressions
Expression | PHP 5 interpretation | PHP 7 interpretation
$$foo['bar']['baz'] | ${$foo['bar']['baz']} | ($$foo)['bar']['baz']
$foo->$bar['baz'] | $foo->{$bar['baz']} | ($foo->$bar)['baz']
$foo->$bar['baz']() | $foo->{$bar['baz']}() | ($foo->$bar)['baz']()
Foo::$bar['baz']() | Foo::{$bar['baz']}() | (Foo::$bar)['baz']()

Code that used the old right-to-left evaluation order must be rewritten to explicitly use that evaluation order with curly braces (see the above middle column). This will make the code both forwards compatible with PHP 7.x and backwards compatible with PHP 5.x.

This also affects the global keyword. The curly brace syntax can be used to emulate the previous behaviour if required:

<?php
function f() {
    // Valid in PHP 5 only.
    global $$foo->bar;

    // Valid in PHP 5 and 7.
    global ${$foo->bar};
}
?>

Changes to list() handling

list() no longer assigns variables in reverse order

list() will now assign values to variables in the order they are defined, rather than reverse order. In general, this only affects the case where list() is being used in conjunction with the array [] operator, as shown below:

<?php
list($a[], $a[], $a[]) = [1, 2, 3];
var_dump($a);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

In general, it is recommended not to rely on the order in which list() assignments occur, as this is an implementation detail that may change again in the future.

Empty list() assignments have been removed

list() constructs can no longer be empty. The following are no longer allowed:

<?php
list() = $a;
list(,,) = $a;
list($x, list(), $y) = $a;
?>
list() cannot unpack strings

list() can no longer unpack string variables. str_split() should be used instead.

Array ordering when elements are automatically created during by reference assignments has changed

The order of the elements in an array has changed when those elements have been automatically created by referencing them in a by reference assignment. For example:

<?php
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

Parentheses around function arguments no longer affect behaviour

In PHP 5, using redundant parentheses around a function argument could quiet strict standards warnings when the function argument was passed by reference. The warning will now always be issued.

<?php
function getArray() {
    return [1, 2, 3];
}

function squareArray(array &$a) {
    foreach ($a as &$v) {
        $v **= 2;
    }
}

// Generates a warning in PHP 7.
squareArray((getArray()));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Notice: Only variables should be passed by reference in /tmp/test.php on line 13

Changes to foreach

Minor changes have been made to the behaviour of the foreach control structure, primarily around the handling of the internal array pointer and modification of the array being iterated over.

foreach no longer changes the internal array pointer

Prior to PHP 7, the internal array pointer was modified while an array was being iterated over with foreach. This is no longer the case, as shown in the following example:

<?php
$array = [0, 1, 2];
foreach ($array as &$val) {
    var_dump(current($array));
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

int(1)
int(2)
bool(false)

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

int(0)
int(0)
int(0)

foreach by-value operates on a copy of the array

When used in the default by-value mode, foreach will now operate on a copy of the array being iterated rather than the array itself. This means that changes to the array made during iteration will not affect the values that are iterated.

foreach by-reference has improved iteration behaviour

When iterating by-reference, foreach will now do a better job of tracking changes to the array made during iteration. For example, appending to an array while iterating will now result in the appended values being iterated over as well:

<?php
$array = [0];
foreach ($array as &$val) {
    var_dump($val);
    $array[1] = 1;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

int(0)

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

int(0)
int(1)

Iteration of non-Traversable objects

Iterating over a non-Traversable object will now have the same behaviour as iterating over by-reference arrays. This results in the improved behaviour when modifying an array during iteration also being applied when properties are added to or removed from the object.

Changes to int handling

Invalid octal literals

Previously, octal literals that contained invalid numbers were silently truncated (0128 was taken as 012). Now, an invalid octal literal will cause a parse error.

Negative bitshifts

Bitwise shifts by negative numbers will now throw an ArithmeticError:

<?php
var_dump(1 >> -1);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

int(0)

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

Fatal error: Uncaught ArithmeticError: Bit shift by negative number in /tmp/test.php:2
Stack trace:
#0 {main}
  thrown in /tmp/test.php on line 2

Out of range bitshifts

Bitwise shifts (in either direction) beyond the bit width of an int will always result in 0. Previously, the behaviour of such shifts was architecture dependent.

Changes to Division By Zero

Previously, when 0 was used as the divisor for either the divide (/) or modulus (%) operators, an E_WARNING would be emitted and false would be returned. Now, the divide operator returns a float as either +INF, -INF, or NAN, as specified by IEEE 754. The modulus operator E_WARNING has been removed and will throw a DivisionByZeroError exception.

<?php
var_dump(3/0);
var_dump(0/0);
var_dump(0%0);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

Warning: Division by zero in %s on line %d
float(INF)

Warning: Division by zero in %s on line %d
float(NAN)

PHP Fatal error:  Uncaught DivisionByZeroError: Modulo by zero in %s line %d

Änderungen an der string-Behandlung

Hexadezimale Zeichenfolgen werden nicht mehr als numerisch betrachtet

Zeichenketten, die hexadezimale Zahlen enthalten, gelten nicht mehr als numerisch. Zum Beispiel:

<?php
var_dump("0x123" == "291");
var_dump(is_numeric("0x123"));
var_dump("0xe" + "0x1");
var_dump(substr("foo", "0x1"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

bool(true)
bool(true)
int(15)
string(2) "oo"

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

bool(false)
bool(false)
int(0)

Notice: A non well formed numeric value encountered in /tmp/test.php on line 5
string(3) "foo"

filter_var() kann verwendet werden, um zu prüfen, ob ein string eine hexadezimale Zahl enthält, und auch zur Umwandlung einer Zeichenkette dieses Typs zu einem int:

<?php
$str = "0xffff";
$int = filter_var($str, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX);
if (false === $int) {
    throw new Exception("Ungültige Ganzzahl!");
}
var_dump($int); // int(65535)
?>

\u{ may cause errors

Aufgrund der Hinzufügung der neuen Unicode-Codepoint-Maskierungssyntax verursachen Zeichnketten, die \u{ gefolgt von einer ungültigen Sequenz enthalten, einen fatalen Fehler. Um dies zu vermeiden, sollte der führende Rückwärtsstrich maskiert werden.

Removed functions

call_user_method() and call_user_method_array()

These functions were deprecated in PHP 4.1.0 in favour of call_user_func() and call_user_func_array(). You may also want to consider using variable functions and/or the ... operator.

All ereg* functions

All ereg functions were removed. PCRE is a recommended alternative.

mcrypt aliases

The deprecated mcrypt_generic_end() function has been removed in favour of mcrypt_generic_deinit().

Additionally, the deprecated mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb() functions have been removed in favour of using mcrypt_decrypt() with the appropriate MCRYPT_MODE_* constant.

All ext/mysql functions

All ext/mysql functions were removed. For details about choosing a different MySQL API, see Choosing a MySQL API.

All ext/mssql functions

All ext/mssql functions were removed.

  • PDO_SQLSRV
  • PDO_ODBC
  • SQLSRV
  • Unified ODBC API

intl aliases

The deprecated datefmt_set_timezone_id() and
IntlDateFormatter::setTimeZoneID() aliases have been
removed in favour of datefmt_set_timezone() and
IntlDateFormatter::setTimeZone(), respectively.

set_magic_quotes_runtime()

set_magic_quotes_runtime(), along with its alias magic_quotes_runtime(), have been removed. They were deprecated in PHP 5.3.0, and became effectively non-functional with the removal of magic quotes in PHP 5.4.0.

set_socket_blocking()

The deprecated set_socket_blocking() alias has been removed in favour of stream_set_blocking().

dl() in PHP-FPM

dl() can no longer be used in PHP-FPM. It remains functional in the CLI and embed SAPIs.

GD Type1 functions

Support for PostScript Type1 fonts has been removed from the GD extension, resulting in the removal of the following functions:

  • imagepsbbox()
  • imagepsencodefont()
  • imagepsextendfont()
  • imagepsfreefont()
  • imagepsloadfont()
  • imagepsslantfont()
  • imagepstext()

Using TrueType fonts and their associated functions is recommended instead.

Removed INI directives

Removed features

The following INI directives have been removed as their associated features have also been removed:

  • always_populate_raw_post_data
  • asp_tags

xsl.security_prefs

The xsl.security_prefs directive has been removed. Instead, the XsltProcessor::setSecurityPrefs() method should be called to control the security preferences on a per-processor basis.

Other backward incompatible changes

New objects cannot be assigned by reference

The result of the new statement can no longer be assigned to a variable by reference:

<?php
class C {}
$c =& new C;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

Deprecated: Assigning the return value of new by reference is deprecated in /tmp/test.php on line 3

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3

Invalid class, interface and trait names

The following names cannot be used to name classes, interfaces or traits:

  • bool
  • int
  • float
  • string
  • null
  • true
  • false

Furthermore, the following names should not be used. Although they will not generate an error in PHP 7.0, they are reserved for future use and should be considered deprecated.

  • resource
  • object
  • mixed
  • numeric

ASP and script PHP tags removed

Support for using ASP and script tags to delimit PHP code has been removed. The affected tags are:

Removed ASP and script tags
Opening tag | Closing tag
<% | %>
<%= | %>
<script language="php"> | </script>

Calls from incompatible context removed

Previously deprecated in PHP 5.6, static calls made to a non-static method with an incompatible context will now result in the called method having an undefined $this variable and a deprecation warning being issued.

<?php
class A {
    public function test() { var_dump($this); }
}

// Note: Does NOT extend A
class B {
    public function callNonStaticMethodOfA() { A::test(); }
}

(new B)->callNonStaticMethodOfA();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.6:

Deprecated: Non-static method A::test() should not be called statically, assuming $this from incompatible context in /tmp/test.php on line 8
object(B)#1 (0) {
}

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

Deprecated: Non-static method A::test() should not be called statically in /tmp/test.php on line 8

Notice: Undefined variable: this in /tmp/test.php on line 3
NULL

yield is now a right associative operator

The yield construct no longer requires parentheses, and has been changed to a right associative operator with precedence between print and =>. This can result in changed behaviour:

<?php
echo yield -1;
// Was previously interpreted as
echo (yield) - 1;
// And is now interpreted as
echo yield (-1);

yield $foo or die;
// Was previously interpreted as
yield ($foo or die);
// And is now interpreted as
(yield $foo) or die;
?>

Parentheses can be used to disambiguate those cases.

Functions cannot have multiple parameters with the same name

It is no longer possible to define two or more function parameters with the same name. For example, the following function will trigger an E_COMPILE_ERROR:

<?php
function foo($a, $b, $unused, $unused) {
    //
}
?>

Functions inspecting arguments report the current parameter value

func_get_arg(), func_get_args(), debug_backtrace() and exception backtraces will no longer report the original value that was passed to a parameter, but will instead provide the current value (which might have been modified).

<?php
function foo($x) {
    $x++;
    var_dump(func_get_arg(0));
}
foo(1);?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5:

1

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:

2

Switch statements cannot have multiple default blocks

It is no longer possible to define two or more default blocks in a switch statement. For example, the following switch statement will trigger an E_COMPILE_ERROR:

<?php
switch (1) {
    default:
    break;
    default:
    break;
}
?>

$HTTP_RAW_POST_DATA removed

$HTTP_RAW_POST_DATA is no longer available. The php://input stream should be used instead.

# comments in INI files removed

Support for prefixing comments with # in INI files has been removed. ; (semi-colon) should be used instead. This change applies to php.ini, as well as files handled by parse_ini_file() and parse_ini_string().

JSON extension replaced with JSOND

The JSON extension has been replaced with JSOND, causing three minor BC breaks. Firstly, a number must not end in a decimal point (i.e. 34. must be changed to either 34.0 or 34). Secondly, when using scientific notation, the e exponent must not immediately follow a decimal point (i.e. 3.e3 must be changed to either 3.0e3 or 3e3). Finally, an empty string is no longer considered valid JSON.

Internal function failure on overflow

Previously, internal functions would silently truncate numbers produced from float-to-integer coercions when the float was too large to represent as an integer. Now, an E_WARNING will be emitted and null will be returned.

Fixes to custom session handler return values

Any predicate functions implemented by custom session handlers that return either false or -1 will be fatal errors. If any value from these functions other than a boolean, -1, or 0 is returned, then it will fail and an E_WARNING will be emitted.

Sort order of equal elements

The internal sorting algorithm has been improved, what may result in different sort order of elements, which compare as equal, than before.

Hinweis:

Don't rely on the order of elements which compare as equal; it might change anytime.

Misplaced break and switch statements

break and continue statements outside of a loop or switch control structure are now detected at compile-time instead of run-time as before, and trigger an E_COMPILE_ERROR.

Mhash is not an extension anymore

The Mhash extension has been fully integrated into the Hash extension. Therefore, it is no longer possible to detect Mhash support with extension_loaded(); use function_exists() instead. Furthermore, Mhash is no longer reported by get_loaded_extensions() and related features.

declare(ticks)

The declare(ticks) directive does no longer leak into different compilation units.


New features

Scalar type declarations

Scalar type declarations come in two flavours: coercive (default) and strict. The following types for parameters can now be enforced (either coercively or strictly): strings (string), integers (int), floating-point numbers (float), and booleans (bool). They augment the other types introduced in PHP 5: class names, interfaces, array and callable.

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
    return array_sum($ints);
}

var_dump(sumOfInts(2, '3', 4.1));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(9)

To enable strict mode, a single declare directive must be placed at the top of the file. This means that the strictness of typing for scalars is configured on a per-file basis. This directive not only affects the type declarations of parameters, but also a function's return type (see return type declarations, built-in PHP functions, and functions from loaded extensions.

Full documentation and examples of scalar type declarations can be found in the type declaration reference.

Return type declarations

PHP 7 adds support for return type declarations. Similarly to argument type declarations, return type declarations specify the type of the value that will be returned from a function. The same types are available for return type declarations as are available for argument type declarations.

<?php

function arraysSum(array ...$arrays): array
{
    return array_map(function(array $array): int {
        return array_sum($array);
    }, $arrays);
}

print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => 6
    [1] => 15
    [2] => 24
)

Full documentation and examples of return type declarations can be found in the return type declarations. reference.

Null coalescing operator

The null coalescing operator (??) has been added as syntactic sugar for the common case of needing to use a ternary in conjunction with isset(). It returns its first operand if it exists and is not null; otherwise it returns its second operand.

<?php
// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

// Coalescing can be chained: this will return the first
// defined value out of $_GET['user'], $_POST['user'], and
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
?>

Spaceship operator

The spaceship operator is used for comparing two expressions. It returns -1, 0 or 1 when $a is respectively less than, equal to, or greater than $b. Comparisons are performed according to PHP's usual type comparison rules.

<?php
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

Constant arrays using define()

Array constants can now be defined with define(). In PHP 5.6, they could only be defined with const.

<?php
define('ANIMALS', [
    'dog',
    'cat',
    'bird'
]);

echo ANIMALS[1]; // outputs "cat"
?>

Anonymous classes

Support for anonymous classes has been added via new class. These can be used in place of full class definitions for throwaway objects:

<?php
interface Logger {
    public function log(string $msg);
}

class Application {
    private $logger;

    public function getLogger(): Logger {
         return $this->logger;
    }

    public function setLogger(Logger $logger) {
         $this->logger = $logger;
    }
}

$app = new Application;
$app->setLogger(new class implements Logger {
    public function log(string $msg) {
        echo $msg;
    }
});

var_dump($app->getLogger());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(class@anonymous)#2 (0) {
}

Full documentation can be found in the anonymous class reference.

Unicode codepoint escape syntax

This takes a Unicode codepoint in hexadecimal form, and outputs that codepoint in UTF-8 to a double-quoted string or a heredoc. Any valid codepoint is accepted, with leading 0's being optional.

echo "\u{aa}";
echo "\u{0000aa}";
echo "\u{9999}";

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

ª
ª (same as before but with optional leading 0's)
?

Closure::call()

Closure::call() is a more performant, shorthand way of temporarily binding an object scope to a closure and invoking it.

<?php
class A {private $x = 1;}

// Pre PHP 7 code
$getX = function() {return $this->x;};
$getXCB = $getX->bindTo(new A, 'A'); // intermediate closure
echo $getXCB();

// PHP 7+ code
$getX = function() {return $this->x;};
echo $getX->call(new A);

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1
1

Filtered unserialize()

This feature seeks to provide better security when unserializing objects on untrusted data. It prevents possible code injections by enabling the developer to whitelist classes that can be unserialized.

<?php

// converts all objects into __PHP_Incomplete_Class object
$data = unserialize($foo, ["allowed_classes" => false]);

// converts all objects into __PHP_Incomplete_Class object except those of MyClass and MyClass2
$data = unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]);

// default behaviour (same as omitting the second argument) that accepts all classes
$data = unserialize($foo, ["allowed_classes" => true]);

IntlChar

The new IntlChar class seeks to expose additional ICU functionality. The class itself defines a number of static methods and constants that can be used to manipulate unicode characters.

<?php

printf('%x', IntlChar::CODEPOINT_MAX);
echo IntlChar::charName('@');
var_dump(IntlChar::ispunct('!'));

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

10ffff
COMMERCIAL AT
bool(true)

In order to use this class, the Intl extension must be installed.

Expectations

Expectations are a backwards compatible enhancement to the older assert() function. They allow for zero-cost assertions in production code, and provide the ability to throw custom exceptions when the assertion fails.

While the old API continues to be maintained for compatibility, assert() is now a language construct, allowing the first parameter to be an expression rather than just a string to be evaluated or a bool value to be tested.

<?php
ini_set('assert.exception', 1);

class CustomError extends AssertionError {}

assert(false, new CustomError('Some error message'));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Fatal error: Uncaught CustomError: Some error message

Full details on this feature, including how to configure it in both development and production environments, can be found in the expectations section of the assert() reference.

Group use declarations

Classes, functions and constants being imported from the same namespace can now be grouped together in a single use statement.

<?php
// Pre PHP 7 code
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

use function some\namespace\fn_a;
use function some\namespace\fn_b;
use function some\namespace\fn_c;

use const some\namespace\ConstA;
use const some\namespace\ConstB;
use const some\namespace\ConstC;

// PHP 7+ code
use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};
?>

Generator Return Expressions

This feature builds upon the generator functionality introduced into PHP 5.5. It enables for a return statement to be used within a generator to enable for a final expression to be returned (return by reference is not allowed). This value can be fetched using the new Generator::getReturn() method, which may only be used once the generator has finished yielding values.

<?php

$gen = (function() {
    yield 1;
    yield 2;

    return 3;
})();

foreach ($gen as $val) {
    echo $val, PHP_EOL;
}

echo $gen->getReturn(), PHP_EOL;

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1
2
3

Being able to explicitly return a final value from a generator is a handy ability to have. This is because it enables for a final value to be returned by a generator (from perhaps some form of coroutine computation) that can be specifically handled by the client code executing the generator. This is far simpler than forcing the client code to firstly check whether the final value has been yielded, and then if so, to handle that value specifically.

Generator delegation

Generators can now delegate to another generator, Traversable object or array automatically, without needing to write boilerplate in the outermost generator by using the yield from construct.

<?php
function gen()
{
    yield 1;
    yield 2;
    yield from gen2();
}

function gen2()
{
    yield 3;
    yield 4;
}

foreach (gen() as $val)
{
    echo $val, PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1
2
3
4

Integer division with intdiv()

The new intdiv() function performs an integer division of its operands and returns it.

<?php
var_dump(intdiv(10, 3));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

int(3)

Session options

session_start() now accepts an array of options that override the session configuration directives normally set in php.ini.

These options have also been expanded to support session.lazy_write, which is on by default and causes PHP to only overwrite any session file if the session data has changed, and read_and_close, which is an option that can only be passed to session_start() to indicate that the session data should be read and then the session should immediately be closed unchanged.

For example, to set session.cache_limiter to private and immediately close the session after reading it:

<?php
session_start([
    'cache_limiter' => 'private',
    'read_and_close' => true,
]);
?>

preg_replace_callback_array()

The new preg_replace_callback_array() function enables code to be written more cleanly when using the preg_replace_callback() function. Prior to PHP 7, callbacks that needed to be executed per regular expression required the callback function to be polluted with lots of branching.

Now, callbacks can be registered to each regular expression using an associative array, where the key is a regular expression and the value is a callback.

CSPRNG Functions

Two new functions have been added to generate cryptographically secure integers and strings in a cross platform way: random_bytes() and random_int().

list() can always unpack objects implementing ArrayAccess

Previously, list() was not guaranteed to operate correctly with objects implementing ArrayAccess. This has been fixed.

Other Features

  • Class member access on cloning has been added, e.g. (clone $foo)->bar().


Deprecated features in PHP 7.0.x

PHP 4 style constructors

PHP 4 style constructors (methods that have the same name as the class they are defined in) are deprecated, and will be removed in the future. PHP 7 will emit E_DEPRECATED if a PHP 4 constructor is the only constructor defined within a class. Classes that implement a __construct() method are unaffected.

<?php
class foo {
    function foo() {
        echo 'I am the constructor';
    }
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in example.php on line 3

Static calls to non-static methods

Static calls to methods that are not declared static are deprecated, and may be removed in the future.

<?php
class foo {
    function bar() {
        echo 'I am not static!';
    }
}

foo::bar();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Deprecated: Non-static method foo::bar() should not be called statically in - on line 8
I am not static!

password_hash() salt option

The salt option for the password_hash() function has been deprecated to prevent developers from generating their own (usually insecure) salts. The function itself generates a cryptographically secure salt when no salt is provided by the developer - therefore custom salt generation should not be needed.

capture_session_meta SSL context option

The capture_session_meta SSL context option has been deprecated. SSL metadata is now available through the stream_get_meta_data() function.

LDAP deprecations

The following function has been deprecated:

  • ldap_sort()


Geänderte Funktionen

PHP-Kern

  • debug_zval_dump() Gibt nun "int" statt "long" und "float" statt "double" aus.
  • dirname() nimmt nun optional einen zweiten Parameter depth entgegen, womit der Name des Verzeichnisses, dass depth Stufen oberhalb des aktuellen liegt.
  • getrusage() wird nun auf Windows unterstützt.
  • Die mktime() und gmmktime() Funktionen akzeptieren den Parameter is_dst nicht mehr.
  • preg_replace() Funktion unterstützt den Modifier "\e" (PREG_REPLACE_EVAL) nicht mehr. Stattdessen sollte preg_replace_callback() verwendet werden.
  • setlocale() Funktion akzeptiert keine Zeichenketten mehr, die dem Parameter category übergeben werden. Stattdessen muss eine der LC_* Konstanten verwendet werden.
  • Die exec(), system() und passthru() Funktionen haben nun einen Nullbyte-Schutz.
  • shmop_open() gibt nun resource statt int zurück,
die den Funktionen shmop_size(),
shmop_write(), shmop_read(),
shmop_close() und shmop_delete() zu übergeben ist.
  • substr() und iconv_substr() geben eine leere Zeichenkette zurück, wenn start gleich der Länge der Zeichenkette entspricht.
  • xml_parser_free() ist nicht länger ausreichend, um die Parser-Ressource freizugeben, wenn sie ein Objekt referenziert und dieses Objekt jene Parser-Ressource referenziert. In diesem Fall ist es notwendig zusätzlich den Parser zu löschen (z.B. per unset()).


New functions

Closure

  • Closure::call()

CSPRNG

  • random_bytes()
  • random_int()

Error Handling and Logging

  • error_clear_last()

Generator

  • Generator::getReturn()

GNU Multiple Precision

  • gmp_random_seed()

Math

  • intdiv()

PCRE

  • preg_replace_callback_array()

PHP Options/Info

  • gc_mem_caches()
  • get_resources()

POSIX

  • posix_setrlimit()

Reflection

  • ReflectionParameter::getType()
  • ReflectionParameter::hasType()
  • ReflectionFunctionAbstract::getReturnType()
  • ReflectionFunctionAbstract::hasReturnType()

Zip

  • ZipArchive::setCompressionIndex()
  • ZipArchive::setCompressionName()

Zlib Compression

  • inflate_add()
  • deflate_add()
  • inflate_init()
  • deflate_init()


Neue Klassen und Interfaces

Intl

  • IntlChar

Reflection

  • ReflectionGenerator
  • ReflectionType

Sessionbehandlung

  • SessionUpdateTimestampHandlerInterface

Ausnahmebehandlung

  • Throwable
  • Error
  • TypeError
  • ParseError
  • AssertionError
  • ArithmeticError
  • DivisionByZeroError


Neue globale Konstanten

Vordefinierte Core-Konstanten

  • PHP_INT_MIN

GD

  • IMG_WEBP (von PHP 7.0.10 an)

JSON

  • JSON_ERROR_INVALID_PROPERTY_NAME
  • JSON_ERROR_UTF16

LibXML

  • LIBXML_BIGLINES

PCRE

  • PREG_JIT_STACKLIMIT_ERROR

POSIX

  • POSIX_RLIMIT_AS
  • POSIX_RLIMIT_CORE
  • POSIX_RLIMIT_CPU
  • POSIX_RLIMIT_DATA
  • POSIX_RLIMIT_FSIZE
  • POSIX_RLIMIT_LOCKS
  • POSIX_RLIMIT_MEMLOCK
  • POSIX_RLIMIT_MSGQUEUE
  • POSIX_RLIMIT_NICE
  • POSIX_RLIMIT_NOFILE
  • POSIX_RLIMIT_NPROC
  • POSIX_RLIMIT_RSS
  • POSIX_RLIMIT_RTPRIO
  • POSIX_RLIMIT_RTTIME
  • POSIX_RLIMIT_SIGPENDING
  • POSIX_RLIMIT_STACK
  • POSIX_RLIMIT_INFINITY

Zlib

  • ZLIB_ENCODING_RAW
  • ZLIB_ENCODING_DEFLATE
  • ZLIB_ENCODING_GZIP
  • ZLIB_FILTERED
  • ZLIB_HUFFMAN_ONLY
  • ZLIB_FIXED
  • ZLIB_RLE
  • ZLIB_DEFAULT_STRATEGY
  • ZLIB_BLOCK
  • ZLIB_FINISH
  • ZLIB_FULL_FLUSH
  • ZLIB_NO_FLUSH
  • ZLIB_PARTIAL_FLUSH
  • ZLIB_SYNC_FLUSH


Changes in SAPI Modules

FPM

Unqualified listen ports now listen on both IPv4 and IPv6

In PHP 5, a listen directive with only a port number would listen on all interfaces, but only on IPv4. PHP 7 will now accept requests made via both IPv4 and IPv6.

This does not affect directives which include specific IP addresses; these will continue to only listen on that address and protocol.


Entfernte Extensions und SAPIs

Entfernte Extensions

  • ereg
  • mssql
  • mysql
  • sybase_ct

Entfernte SAPIs

  • aolserver
  • apache
  • apache_hooks
  • apache2filter
  • caudium
  • continuity
  • isapi
  • milter
  • nsapi
  • phttpd
  • pi3web
  • roxen
  • thttpd
  • tux
  • webjames


Other Changes

Loosening Reserved Word Restrictions

Globally reserved words as property, constant, and method names within classes, interfaces, and traits are now allowed. This reduces the surface of BC breaks when new keywords are introduced and avoids naming restrictions on APIs.

This is particularly useful when creating internal DSLs with fluent interfaces:

<?php
// 'new', 'private', and 'for' were previously unusable
Project::new('Project Name')->private()->for('purpose here')->with('username here');
?>

The only limitation is that the class keyword still cannot be used as a constant name, otherwise it would conflict with the class name resolution syntax (ClassName::class).

Removal of date.timezone Warning

Previously, a warning was emitted if the date.timezone INI setting had not been set prior to using any date- or time-based functions. Now, this warning has been removed (with date.timezone still defaulting to UTC).


Migration von PHP 5.5.x auf PHP 5.6.x

Inhaltsverzeichnis

  • Nicht abwärtskompatible Änderungen
  • Neue Features
  • Missbilligte Features in PHP 5.6.x
  • Geänderte Funktionen
  • Neue Funktionen
  • OpenSSL Änderungen in PHP 5.6.x
  • Andere Änderungen bei Extensions
  • Neue globale Konstanten

Die meisten Verbesserungen in PHP 5.6.x haben keinen Einfluss auf bereits bestehenden Code. Es gibt einige wenige Inkompatibilitäten und neue Features, die berücksichtigt werden sollten, und Code sollte getestet werden, bevor die PHP-Version in produktiven Umgebungen geändert wird.


Nicht abwärtskompatible Änderungen

Obwohl der meiste bestehende PHP 5 Code ohne Änderungen funktionieren sollte, sind ein paar Änderungen zu beachten, die nicht abwärtskompatibel sind:

Array-Schlüssel werden nicht überschrieben, wenn ein Array mittels Array-Literal als Eigenschaft einer Klasse definiert wird

Bisher konnten Elemente von Arrays, welche als Klasseneigenschaften mit expliziten und impliziten Schlüsseln definiert waren, überschrieben werden, wenn ein expliziter Schlüssel gleich mit einem sequenziellen impliziten Schlüssel war.

<?php
class C {
    const ONE = 1;
    public $array = [
        self::ONE => 'foo',
        'bar',
        'quux',
    ];
}

var_dump((new C)->array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.5:

array(2) {
  [0]=>
  string(3) "bar"
  [1]=>
  string(4) "quux"
}

Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.6:

array(3) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(4) "quux"
}

Strenge von json_decode()

json_decode() weist nun nicht vollständig in Kleinbuchstaben geschriebene Varianten von true, false und null gemäß der JSON-Spezifikation zurück, und setzt json_last_error() dementsprechend. Bisher wurden auch Eingaben, die nur aus einem dieser Werte bestanden, mit Großbuchstaben akzeptiert.

Diese Änderung hat nur Einfluss auf Fälle in denen ungültiges JSON an json_decode() übergeben wurde. Gültiges JSON ist davon nicht betroffen und wird weiterhin normal verarbeitet.

Stream Wrapper verifizieren nun standardmäßig Zertifikate und Hostnamen bei Verwendung von SSL/TLS

Alle verschlüsselten Clientstreams verifizieren nun standardmäßig den Kommunikationspartner. Standardmäßig wird dafür das Standard-CA-Bundle von OpenSSL zur Verifikation des Peer-Zertifikates herangezogen. In den meisten Fällen sind keine Änderungen notwendig, um mit Servern mit gültigen SSL-Zertifikaten zu kommunizieren, da Distributoren üblicherweise OpenSSL mit vertrauenswürdigen CA-Bundles konfigurieren.

Das Standard-CA-Bundle kann global durch eine Änderung der konfigurationseinstellungen openssl.cafile oder openssl.capath überschrieben werden, oder für einzelne Requests durch die Verwendung der Kontextoptionen cafile oder capath.

Obwohl dies generell nicht empfehlenswert ist, kann die Verifikation der Peer-Zertifikate für einzelne Requests ausgeschaltet werden, indem die Kontextoption verify_peer auf false gesetzt wird. Die Verifikation des Peer-Namen kann durch das Setzen von verify_peer_name auf false ausgeschaltet werden.

GMP-Ressourcen sind nun Objekte

GMP-Ressourcen sind nun Objekte. Die funktionale API der GMP-Erweiterung hat sich nicht geändert und Code sollte ohne Änderungen funktionieren, es sei denn dieser prüft explizit auf eine Ressource mittels is_resource() oder Ähnlichem.

Mcrypt-Funktionen benötigen nun gültige Schlüssel und IVs

mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ecb(), mcrypt_generic() und mcrypt_ofb() akzeptieren nicht länger Schlüssel oder IVs mit falscher Länge, und Blockschlüssel, die IVs benötigen, schlagen nun fehl, wenn kein IV übergeben wurde.

cURL Datei-Uploads

Uploads, die die @file Syntax verwenden, erfordern nun, dass CURLOPT_SAFE_UPLOAD auf false gesetzt ist. Statt dessen sollte CURLFile verwendet werden.


Neue Features

Konstante Ausdrücke

Es ist nun möglich einen skalaren Ausdruck mit numerischen oder String-Literalen und/oder Konstanten in Kontexten zu verwenden, in denen PHP bisher einen statischen Wert erwartete, beispielsweise Deklarationen von Konstanten und Eigenschaften und Standardwerte von Funktionsparametern.

<?php
const ONE = 1;
const TWO = ONE * 2;

class C {
    const THREE = TWO + 1;
    const ONE_THIRD = ONE / self::THREE;
    const SENTENCE = 'Der Wert von THREE ist '.self::THREE;

    public function f($a = ONE + self::THREE) {
        return $a;
    }
}

echo (new C)->f()."\n";
echo C::SENTENCE;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

4
Der Wert von THREE ist 3

Es ist nun auch möglich, ein konstantes Array mit dem Schlüsselwort const zu definieren:

<?php
const ARR = ['a', 'b'];

echo ARR[0];
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

a

Variadische Funktionen mit ...

Variadische Funktionen können nun mit dem Operator ... implementiert werden, anstatt func_get_args() zu verwenden.

<?php
function f($req, $opt = null, ...$params) {
    // $params ist ein Array welches die übrigen Parameter enthält.
    printf('$req: %d; $opt: %d; Anzahl Parameter: %d'."\n",
           $req, $opt, count($params));
}

f(1);
f(1, 2);
f(1, 2, 3);
f(1, 2, 3, 4);
f(1, 2, 3, 4, 5);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

$req: 1; $opt: 0; Anzahl Parameter: 0
$req: 1; $opt: 2; Anzahl Parameter: 0
$req: 1; $opt: 2; Anzahl Parameter: 1
$req: 1; $opt: 2; Anzahl Parameter: 2
$req: 1; $opt: 2; Anzahl Parameter: 3

Entpacken von Argumenten mit ...

Arrays und Traversable-Objekte können in eine Liste von Parametern entpackt werden, indem der ... Operator verwendet wird. Dies ist in anderen Sprachen, wie beispielsweise Ruby, auch als Splat-Operator bekannt.

<?php
function add($a, $b, $c) {
    return $a + $b + $c;
}

$operators = [2, 3];
echo add(1, ...$operators);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

6

Potenzieren mit **

Der rechtsassoziative Operator ** zum Potenzieren wurde gemeinsam mit dem abkürzenden Zuweisungsoperator **= hinzugefügt.

<?php
printf("2 ** 3 ==      %d\n", 2 ** 3);
printf("2 ** 3 ** 2 == %d\n", 2 ** 3 ** 2);

$a = 2;
$a **= 3;
printf("a ==           %d\n", $a);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2 ** 3 ==      8
2 ** 3 ** 2 == 512
a ==           8

use function und use const

Der Operator use wurde um das Importieren von Funktionen und Konstanten zusätzlich zu Klassen erweitert. Dies kann jeweils entsprechend durch die Konstrukte use function bzw. use const erreicht werden.

<?php
namespace Name\Space {
    const FOO = 42;
    function f() { echo __FUNCTION__."\n"; }
}

namespace {
    use const Name\Space\FOO;
    use function Name\Space\f;

    echo FOO."\n";
    f();
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

42
Name\Space\f

phpdbg

PHP enthält nun einen interaktiven Debugger namens phpdbg, welcher als SAPI-Modul umgesetzt wurde. Weitere Informationen findet man in der phpdbg-Dokumentation.

Standardzeichencodierung

default_charset wird nun als Standardzeichenkodierung für die Funktionen htmlentities(), html_entity_decode() und htmlspecialchars() herangezogen. Falls die (nun missbilligten) Einstellungen für die Zeichenkodierung von iconv und mbstring gesetzt sind, haben diese Vorrang gegenüber default_charset für die iconv beziehungsweise mbstring Funktionen.

Die Standardeinstellung hierfür ist UTF-8.

php://input ist wiederverwendbar

php://input kann nun so oft wie nötig geöffnet und ausgelesen werden. Diese Änderung hat auch zu einer erheblichen Reduktion im Speicherverbrauch bei der Verarbeitung von POST-Daten geführt.

Große Dateiuploads

Es werden nun auch Dateien mit einer Größe von mehr als zwei Gigabyte angenommen.

GMP unterstützt Operatorüberladung

GMP-Objekte unterstützen nun Operatorüberladung und das Casten zu skalaren Typen. Dies erlaubt besser lesbaren Code bei Verwendung von GMP:

<?php
$a = gmp_init(42);
$b = gmp_init(17);

if (version_compare(PHP_VERSION, '5.6', '<')) {
    echo gmp_intval(gmp_add($a, $b)), PHP_EOL;
    echo gmp_intval(gmp_add($a, 17)), PHP_EOL;
    echo gmp_intval(gmp_add(42, $b)), PHP_EOL;
} else {
    echo $a + $b, PHP_EOL;
    echo $a + 17, PHP_EOL;
    echo 42 + $b, PHP_EOL;
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

59
59
59

hash_equals() für Stringvergleiche mit Schutz gegen Rechenzeitangriffe

Die Funktion hash_equals() wurde hinzugefügt, welche zwei Zeichenketten in konstanter Zeit vergleicht. Dies sollte verwendet werden, um Rechenzeitangriffe zu verhindern, beispielsweise wenn crypt()-Passworthashes geprüft werden (unter der Annahme, dass password_hash() und password_verify() nicht verwendet werden können, welche gegen Rechenzeitangriffe nicht anfällig sind).

<?php
$expected  = crypt('12345', '$2a$07$benutzeeinenlangenstringalssalt$');
$correct   = crypt('12345', '$2a$07$benutzeeinenlangenstringalssalt$');
$incorrect = crypt('1234',  '$2a$07$benutzeeinenlangenstringalssalt$');

var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(true)
bool(false)

__debugInfo()

Die magische Methode __debugInfo() wurde hinzugefügt, welche es Objekten erlaubt, die Eigenschaften und Werte zu bestimmen, welche bei Verwendung von var_dump() ausgegeben werden.

<?php
class C {
    private $prop;

    public function __construct($val) {
        $this->prop = $val;
    }

    public function __debugInfo() {
        return [
            'propSquared' => $this->prop ** 2,
        ];
    }
}

var_dump(new C(42));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}

gost-crypto Hashalgorithmus

Der Hashalgorithmus gost-crypto wurde hinzugefügt. Dieser implementiert die GOST-Hash-Funktion unter Verwendung der CryptoPro S-box Tabellen wie in » RFC 4357, Abschnitt 11.2 spezifiziert.

SSL/TLS-Verbesserungen

Eine große Zahl an Verbesserungen an der SSL/TLS-Unterstützung wurden in PHP 5.6 vorgenommen. Dies umfasst die standardmäßige Aktivierung von Peer-Verifikation, Unterstützung von Zertifikat-Fingerabdrucksprüfung, Verhinderung von TLS-Renegotiation-Attacken und viele neue SSL Kontextoptionen, welche eine detailliertere Kontrolle über Protokoll- und Verifikationseinstellungen bei Verwendung von verschlüsselten Streams erlauben.

Diese Änderungen werden im Abschnitt OpenSSL Änderungen in PHP 5.6.x dieser Migrationsanleitung detaillierter beschrieben.

Unterstützung für pgsql async

Die Extension pgsql unterstützt nun asynchrone Verbindungen und Abfragen, womit nicht blockierendes Verhalten bei der Interaktion mit PostgreSQL-Datenbanken ermöglicht wird. Asynchrone Verbindungen können mittels der Konstante PGSQL_CONNECT_ASYNC aufgebaut werden, und die neuen Funktionen pg_connect_poll(), pg_socket(), pg_consume_input() und pg_flush() behandeln asynchrone Verbindungen und Abfragen.


Missbilligte Features in PHP 5.6.x

Aufrufe aus inkompatiblem Kontext

Methodenaufrufe aus inkompatiblem Kontext sind nun missbilligt, und rufen einen Fehler der Stufe E_DEPRECATED hervor anstelle von E_STRICT. Die Unterstützung für derartige Aufrufe wird in einer zukünftigen Version von PHP entfernt.

Ein Beispiel für einen derartigen Aufruf:

<?php
class A {
    function f() { echo get_class($this); }
}

class B {
    function f() { A::f(); }
}

(new B)->f();
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Deprecated: Non-static method A::f() should not be called statically, assuming $this from incompatible context in - on line 7
B

$HTTP_RAW_POST_DATA und always_populate_raw_post_data

always_populate_raw_post_data ruft nun einen Fehler der Stufe E_DEPRECATED hervor, wenn $HTTP_RAW_POST_DATA befüllt wird. Neuer Code sollte php://input anstelle von $HTTP_RAW_POST_DATA verwenden, welches in einer zukünftigen Version entfernt wird. Es kann bereits jetzt das neue Verhalten (bei dem $HTTP_RAW_POST_DATA nie befüllt und damit kein E_DEPRECATED-Fehler hervorgerufen wird) verwendet werden, wenn always_populate_raw_post_data auf -1 gestellt wird.

Einstellungen zur Zeichenkodierung von iconv und mbstring

Die Konfigurationseinstellungen für die Zeichenkodierung der Funktionen iconv und mbstring werden nun zugunsten von default_charset als missbilligt eingestuft. Die missbilligten Optionen sind:

  • iconv.input_encoding
  • iconv.output_encoding
  • iconv.internal_encoding
  • mbstring.http_input
  • mbstring.http_output
  • mbstring.internal_encoding


Geänderte Funktionen

PHP Core

  • crypt() ruft nun einen Fehler der Stufe E_NOTICE hervor, wenn der Parameter salt ausgelassen wird.
  • substr_compare() akzeptiert nun auch 0 als Wert für den Parameter length.
  • unserialize() schlägt nun fehl, wenn serialisierte Daten übergeben werden, welche so manipuliert wurden, dass ein Objekt erzeugt werden soll ohne dessen Konstruktor aufzurufen.

cURL

  • Uploads mittels der @file-Syntax werden nun nur noch unterstützt, wenn die Option CURLOPT_SAFE_UPLOAD auf false gestellt wird. Es sollte stattdessen CURLFile verwendet werden.

Mcrypt

  • Der Parameter source von mcrypt_create_iv() hat nun einen Standardwert von MCRYPT_DEV_URANDOM anstelle von MCRYPT_DEV_RANDOM.

OpenSSL

  • Der Parameter crypto_type von stream_socket_enable_crypto() kann nun optional sein, wenn der SSL-Kontext des Streams die neue Option crypto_type enthält.

PostgreSQL

  • pg_insert(), pg_select(), pg_update() und pg_delete() sind nicht länger experimentell.
  • pg_send_execute(), pg_send_prepare(), pg_send_query() und pg_send_query_params() blockieren nicht mehr bis die Schreiboperation der Abfrage abgeschlossen ist, wenn der zugrunde liegende Socket-Stream der Datenbankverbindung auf einen nicht blockierenden Modus eingestellt ist.

Reflection

  • ReflectionClass::newInstanceWithoutConstructor() erlaubt nun die Instanziierung von nicht-finalen internen Klassen.

XMLReader

  • XMLReader::getAttributeNs() und
XMLReader::getAttributeNo() geben nun,
wie XMLReader::getAttribute()
null zurück, wenn das Attribut nicht gefunden wurde.


Neue Funktionen

Datum und Uhrzeit

  • DateTimeImmutable::createFromMutable()

GMP

  • gmp_root()
  • gmp_rootrem()

Hash

  • hash_equals()

LDAP

  • ldap_escape()
  • ldap_modify_batch()

MySQLi

  • mysqli_get_links_stats()

OCI8

  • oci_get_implicit_resultset()

OpenSSL

  • openssl_get_cert_locations()
  • openssl_x509_fingerprint()
  • openssl_spki_new()
  • openssl_spki_verify()
  • openssl_spki_export_challenge()
  • openssl_spki_export()

PostgreSQL

  • pg_connect_poll()
  • pg_consume_input()
  • pg_flush()
  • pg_socket()

PDO_PGSQL

  • PDO::pgsqlGetNotify()
  • PDO::pgsqlGetPid()

Session

  • session_abort()
  • session_reset()

Zip

  • ZipArchive::setPassword()


OpenSSL Änderungen in PHP 5.6.x

Streamwrapper verifizieren nun standardmäßig Zertifikate und Hostnamen bei Verwendung von SSL/TLS

Alle verschlüsselten Clientstreams verifizieren nun standardmäßig den Kommunikationspartner. Standardmäßig wird dafür das Standard-CA-Bundle von OpenSSL zur Verifikation des Peer-Zertifikates herangezogen. In den meisten Fällen sind keine Änderungen notwendig, um mit Servern mit gültigen SSL-Zertifikaten zu kommunizieren, da Distributoren üblicherweise OpenSSL mit vertrauenswürdigen CA-Bundles konfigurieren.

Das Standard-CA-Bundle kann global durch eine Änderung der konfigurationseinstellungen openssl.cafile oder openssl.capath überschrieben werden, oder für einzelne Requests durch die Verwendung der Kontextoptionen cafile oder capath.

Obwohl dies generell nicht empfehlenswert ist, kann die Verifikation der Peer-Zertifikate für einzelne Requests ausgeschaltet werden, indem die Kontextoption verify_peer auf false gesetzt wird. Die Verifikation des Peer-Namen kann durch das Setzen von verify_peer_name auf false ausgeschaltet werden.

Fingerabdrücke von Zertifikaten

Es wurde Unterstützung für das Auslesen und Verifizieren von Fingerabdrücken von Zertifikaten hinzugefügt. openssl_x509_fingerprint() kam hinzu, um den Fingerabdruck aus X.509-Zertifikaten auszulesen und zwei neue SSL Streamkontext-Optionen wurden hinzugefügt: capture_peer_cert zum Auslesen des X.509- Zertifikats des Kommunikationspartners und peer_fingerprint zur Durchsetzung, dass das Zertifikat des Kommunikationspartners dem angegebenen Fingerabdruck entsprechen muss.

Aktualisierung der Standardchiffren

Die von PHP verwendeten Standardchiffren wurden auf eine sicherere Liste aktualisiert, basierend auf den » Mozilla Chiffreempfehlungen, mit zwei zusätzlichen Ausnahmen: anonyme Diffie-Hellman Chiffren und RC4.

Auf diese Liste kann mit der neuen Konstante OPENSSL_DEFAULT_STREAM_CIPHERS zugegriffen und (wie in früheren PHP-Versionen) durch das Setzen der Kontextoption ciphers übersteuert werden.

Komprimierung standardmäßig deaktiviert

Komprimierung von SSL/TLS wurde standardmäßig deaktiviert, um die CRIME-Attacke zu umgehen. PHP 5.4.13 fügte die Kontextoption disable_compression hinzu, um die Komprimierung zu deaktivieren. Dies ist nun standardmäßig auf true (d.h. Komprimierung deaktiviert) gesetzt.

Servern wird erlaubt, die Reihenfolge bevorzugter Chiffren festzulegen

Die SSL Kontextoption honor_cipher_order wurde hinzugefügt, um Servern von verschlüsselten Streams die Umgehung der BEAST-Schwachstelle zu ermöglichen, indem die Chiffren des Servers gegenüber denen des Clients bevorzugt werden.

Zugriff auf ausgehandeltes Protokoll und Chiffre

Auf das Protokoll und die Chiffre, die für einen verschlüsselten Stream ausgehandelt wurden, kann nun mittels stream_get_meta_data() oder stream_context_get_options() zugegriffen werden, wenn die SSL-Kontextoption capture_session_meta auf true gesetzt ist.

<?php
$ctx = stream_context_create(['ssl' => [
    'capture_session_meta' => TRUE
]]);

$html = file_get_contents('https://google.com/', FALSE, $ctx);
$meta = stream_context_get_options($ctx)['ssl']['session_meta'];
var_dump($meta);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(4) {
  ["protocol"]=>
  string(5) "TLSv1"
  ["cipher_name"]=>
  string(20) "ECDHE-RSA-AES128-SHA"
  ["cipher_bits"]=>
  int(128)
  ["cipher_version"]=>
  string(11) "TLSv1/SSLv3"
}

Neue Optionen für Perfect Forward Secrecy bei Servern für verschlüsselte Streams

Verschlüsselte Clientstreams unterstützen Perfect Forward Secrecy bereits, da dies üblicherweise vom Server kontrolliert wird. Es muss nichts zusätzlich unternommen werden, um PFS bei verschlüsselten PHP-Server-Streams zu aktivieren, die Zertifikate verwenden, welche Perfect Forward Secrecy unterstützen. Es wurden jedoch einige neue SSL-Kontextoptionen hinzugefügt, welche mehr Kontrolle über PFS erlauben und eventuell auftretende Kompatibilitätsprobleme behandeln.

ecdh_curve

Diese Option erlaubt die Auswahl einer spezifischen Kurve für ECDH-Chiffren. Falls nicht angegeben, wird prime256v1 verwendet.

dh_param

Pfad zu einer Datei, welche Parameter für den Diffie-Hellman-Schlüsselaustausch enthalt, die beispielsweise durch folgenden Befehl erzeugt werden könnte:

openssl dhparam -out /path/to/my/certs/dh-2048.pem 2048
single_dh_use

Ist dies auf true gesetzt, wird ein neues Schlüsselpaar erzeugt, wenn Diffie-Hellman-Parameter verwendet werden, wodurch sich die Forward Secrecy verbessert.

single_ecdh_use

Ist dies auf true gesetzt, wird immer ein neues Schlüsselpaar erzeugt, wenn ECDH-Chiffren ausgehandelt werden. Dies verbessert die Forward Secrecy.

SSL/TLS Versionsauswahl

Es ist nun möglich die spezifischen Versionen von SSL oder TLS mittels der SSL-Kontextoption crypto_method oder durch die Angabe eines spezifischen Transportes bei der Erzeugung des Streamwrappers auszuwählen (beispielsweise durch den Aufruf von stream_socket_client() oder stream_socket_server()).

Die SSL-Kontextoption crypto_method erwartet eine Bitmaske in der die erlaubten Protokolle aufgezählt sind. Der Parameter crypto_type von stream_socket_enable_crypto() verhält sich genauso.

Ausgewählte Protokollversionen und zugehörige Optionen
Protokoll(e) | Client-Flag | Server-Flag | Transport
Beliebige Version von TLS oder SSL | STREAM_CRYPTO_METHOD_ANY_CLIENT | STREAM_CRYPTO_METHOD_ANY_SERVER | ssl://
Beliebige TLS-Version | STREAM_CRYPTO_METHOD_TLS_CLIENT | STREAM_CRYPTO_METHOD_TLS_SERVER | tls://
TLS 1.0 | STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_0_SERVER | tlsv1.0://
TLS 1.1 | STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_1_SERVER | tlsv1.1://
TLS 1.2 | STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_2_SERVER | tlsv1.2://
SSL 3 | STREAM_CRYPTO_METHOD_SSLv3_CLIENT | STREAM_CRYPTO_METHOD_SSLv3_SERVER | sslv3://
<?php

// Voraussetzen von TLS 1.0 oder neuer bei Verwendung von
// file_get_contents():
$ctx = stream_context_create([
    'ssl' => [
        'crypto_method' => STREAM_CRYPTO_METHOD_TLS_CLIENT,
    ],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// TLS 1.1 oder 1.2 voraussetzen:
$ctx = stream_context_create([
    'ssl' => [
        'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT |
                           STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
    ],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Verbindung mittels tlsv1.2:// Stream-Socket-Transport.
$sock = stream_socket_client('tlsv1.2://google.com:443/');

?>

openssl_get_cert_locations() hinzugefügt

Die Funktion openssl_get_cert_locations() wurde hinzugefügt: Sie gibt den Standard-Ablageort aus, der von PHP bei der Suche von CA-Bundles verwendet wird.

<?php
var_dump(openssl_get_cert_locations());
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

array(8) {
  ["default_cert_file"]=>
  string(21) "/etc/pki/tls/cert.pem"
  ["default_cert_file_env"]=>
  string(13) "SSL_CERT_FILE"
  ["default_cert_dir"]=>
  string(18) "/etc/pki/tls/certs"
  ["default_cert_dir_env"]=>
  string(12) "SSL_CERT_DIR"
  ["default_private_dir"]=>
  string(20) "/etc/pki/tls/private"
  ["default_default_cert_area"]=>
  string(12) "/etc/pki/tls"
  ["ini_cafile"]=>
  string(0) ""
  ["ini_capath"]=>
  string(0) ""
}

SPKI-Unterstützung

Unterstützung für die Erzeugung, das Auslesen uns Verifizieren von Signed Public Key And Challenges wurde (SPKAC) wurde hinzugefügt. Die Funktionen openssl_spki_new(), openssl_spki_verify(), openssl_spki_export_challenge() und openssl_spki_export() wurden hinzugefügt, welche die durch ein KeyGen HTML5-Element erzeugten SPKACs erzeugen, verifizieren oder den PEM Public Key und zugehörige Challenge exportieren.

openssl_spki_new

Erzeugt ein neues SPKAC mit einem privaten Schlüssel, Challenge-String und Hashalgorithmus.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

SPKAC=MIIBXjCByDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3L0IfUijj7+A8CPC8EmhcdNoe5fUAog7OrBdhn7EkxFButUp40P7+LiYiygYG1TmoI/a5EgsLU3s9twEz3hmgY9mYIqb/rb+SF8qlD/K6KVyUORC7Wlz1Df4L8O3DuRGzx6/+3jIW6cPBpfgH1sVuYS1vDBsP/gMMIxwTsKJ4P0CAwEAARYkYjViMzYxMTktNjY5YS00ZDljLWEyYzctMGZjNGFhMjVlMmE2MA0GCSqGSIb3DQEBAwUAA4GBAF7hu0ifzmjonhAak2FhhBRsKFDzXdKIkrWxVNe8e0bZzMrWOxFM/rqBgeH3/gtOUDRS5Fnzyq425UsTYbjfiKzxGeCYCQJb1KJ2V5Ij/mIJHZr53WYEXHQTNMGR8RPm7IxwVXVSHIgAfXsXZ9IXNbFbcaLRiSTr9/N4U+MXUWL7
openssl_spki_verify

Verifiziert ein angegebenes SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
var_dump(openssl_spki_verify($spkac));
?>
openssl_spki_export_challenge

Exportiert eine zugehörige Challenge eines angegebenen SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
$challenge = openssl_spki_export_challenge($spkac):
echo $challenge;
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

challenge string
openssl_spki_export

Exportiert den öffentlichen RSA-Schlüssel eines SPKAC in PEM-Format.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
echo openssl_spki_export($spkac);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcvQh9SKOPv4DwI8LwSaFx02h7
l9QCiDs6sF2GfsSTEUG61SnjQ/v4uJiLKBgbVOagj9rkSCwtTez23ATPeGaBj2Zg
ipv+tv5IXyqUP8ropXJQ5ELtbXPUN/gvw7cO5EbPHr/7eMhbpw8Gl+AfWxW5hLW8
MGw/+AwwjHBOwong/QIDAQAB
-----END PUBLIC KEY-----


Andere Änderungen bei Extensions

cURL

Eine Reihe von als veraltet angesehenen Konstanten in der cURL-Bibliothek wurden nun entfernt:

  • CURLOPT_CLOSEPOLICY
  • CURLCLOSEPOLICY_CALLBACK
  • CURLCLOSEPOLICY_LEAST_RECENTLY_USED
  • CURLCLOSEPOLICY_LEAST_TRAFFIC
  • CURLCLOSEPOLICY_OLDEST
  • CURLCLOSEPOLICY_SLOWEST

OCI8

  • Unterstützung von impliziten Resultsets für Oracle Database 12c wurde durch die neue Funktion oci_get_implicit_resultset() hinzugefügt.
  • Die Verwendung von oci_execute($s, OCI_NO_AUTO_COMMIT) für ein SELECT ruft nicht mehr unnötigerweise ein internes ROLLBACK beim Schließen der Verbindung hervor.
  • DTrace-Probes wurden hinzugefügt, konfiguriert durch die Konfigurations-Option --enable-dtrace.
  • oci_internal_debug() tut nichts mehr.
  • Das Ausgabeformat von phpinfo() im Bezug auf OCI8 hat sich geändert.

Zip

Eine Konfigurations-Option --with-libzip wurde aufgenommen, welche die Verwendung einer vom System bereitgestellten libzip-Installation ermöglicht. Die libzip-Version 0.11 ist notwendig, 0.11.2 oder neuer werden empfohlen.

MySQLi

Die neue Option mysqli.rollback_on_cached_plink wurde hinzugefügt, die das Rollback-Verhalten persistenter Verbindungen steuert.


Neue globale Konstanten

GD

  • IMG_WEBP (von PHP 5.6.25 an)

LDAP

  • LDAP_ESCAPE_DN
  • LDAP_ESCAPE_FILTER

OpenSSL

  • OPENSSL_DEFAULT_STREAM_CIPHERS
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

PostgreSQL

  • PGSQL_CONNECT_ASYNC
  • PGSQL_CONNECTION_AUTH_OK
  • PGSQL_CONNECTION_AWAITING_RESPONSE
  • PGSQL_CONNECTION_MADE
  • PGSQL_CONNECTION_SETENV
  • PGSQL_CONNECTION_SSL_STARTUP
  • PGSQL_CONNECTION_STARTED
  • PGSQL_DML_ESCAPE
  • PGSQL_POLLING_ACTIVE
  • PGSQL_POLLING_FAILED
  • PGSQL_POLLING_OK
  • PGSQL_POLLING_READING
  • PGSQL_POLLING_WRITING


  • « Neue globale Konstanten
  • Über Debugging in PHP »
  • PHP Manual
  • Appendices
  • PHP Debugging

PHP Debugging

Inhaltsverzeichnis

  • Über Debugging in PHP


Über Debugging in PHP

PHP enthält den phpdbg interactive debugger. Es kann aber ein externer Debugger verwendet werden. Die » Zend IDE enthält einen Debugger und es sind auch einige freie Debugger Extensions wie DBG (» http://www.php-debugger.com/dbg/i), » Advanced PHP Debugger (APD) oder » Xdebug verfügbar.


  • « Über Debugging in PHP
  • Liste der Kern-Konfigurationsoptionen »
  • PHP Manual
  • Appendices
  • Konfigurationsoptionen

Konfigurationsoptionen

Inhaltsverzeichnis

  • Liste der Kern-Konfigurationsoptionen


Liste der Kern-Konfigurationsoptionen

Nachfolgend finden Sie eine Teilliste der Konfigurationsoptionen, die von den PHP configure Skripten beim Kompilieren in Unix-ähnlichen Umgebungen verwendet werden. Die meisten Konfigurationsoptionen sind in den entsprechenden Referenzseiten der Erweiterungen aufgeführt und nicht hier. Für eine vollständige aktuelle Liste der Konfigurationsoptionen, führen Sie ./configure --help in Ihrem PHP-Quellcode-Verzeichnis aus, nachdem Sie autoconf ausgeführt haben (siehe auch den Installationskapitel). Vielleicht interessieren Sie sich auch für die » GNU configure Dokumentation für Informationen über zusätzliche configure Optionen wie --prefix=PREFIX.

Hinweis:

Diese werden nur zur Kompilierungszeit verwendet. Wenn sie die Laufzeitkonfiguration von PHP ändern wollen, lesen Sie bitte das Kapitel über Laufzeitkonfiguration.

  • Verschiedenes
  • PHP-Verhalten
  • Server

PHP-Optionen konfigurieren

Verschiedene Optionen

--enable-debug

Kompilieren mit Debugging-Symbolen.

--with-layout=TYP

Legt fest, wie die installierten Dateien angeordnet werden sollen. Typ ist PHP (Standard) oder GNU.

--with-pear=DIR

Installiert PEAR in DIR (Voreinstellung PREFIX/lib/php).

--without-pear

Installiert PEAR nicht.

--enable-sigchild

Aktiviert den PHP-eigenen SIGCHLD-Handler.

--disable-rpath

Deaktiviert die Übergabe zusätzlicher Suchpfade der Laufzeitbibliothek.

--enable-libgcc

Aktiviert die explizite Verlinkung gegen libgcc.

--enable-php-streams

Experimentelle PHP-Streams einbinden. Verwenden Sie dies nicht, es sei denn, Sie testen den Code!

--with-zlib-dir[=DIR]

Definiert den Speicherort des zlib-Installationsverzeichnisses.

--with-tsrm-pthreads

POSIX-Threads verwenden (Voreinstellung).

--enable-shared[=PKGS]

Gemeinsame Bibliotheken erstellen [Voreinstellung=ja].

--enable-static[=PKGS]

Erstellt statische Bibliotheken [Voreinstellung=ja].

--enable-fast-install[=PKGS]

Optimieren für schnelle Installation [Voreinstellung=ja].

--with-gnu-ld

Annehmen, dass der C-Compiler GNU ld verwendet [Voreinstellung=nein].

--disable-libtool-lock

Sperren vermeiden (könnte parallele Builds beschädigen).

--with-pic

Es wird versucht, nur PIC/Nicht-PIC-Objekte zu verwenden [Voreinstellung=beide verwenden].

--enable-memory-limit

Kompilieren mit Unterstützung für Speicherlimits. (nicht verfügbar seit PHP 5.2.1 - immer aktiviert)

--disable-url-fopen-wrapper

Abschalten des URL-fähigen fopen-Wrappers, der Zugriff auf Dateien über HTTP oder FTP erlaubt. (nicht verfügbar seit PHP 5.2.5)

--enable-versioning

Nur erforderliche Symbole exportieren. Siehe INSTALL für weitere Informationen.

PHP Optionen

--enable-maintainer-mode

Aktiviert Makefile-Regeln und Abhängigkeiten, die für den gewöhnlichen Anwender nicht nützlich (und manchmal auch verwirrend) sind.

--with-config-file-path=PATH

Setzt den Pfad in dem nach php.ini gesucht wird; Vorgabewert ist PREFIX/lib.

--enable-safe-mode

Der "safe mode" wird standardmäßig aktiviert.

Warnung

Dieses Feature wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und ist seit PHP 5.4.0 ENTFERNT (entfernt).

--with-exec-dir[=DIR]

Im "safe mode" dürfen nur ausführbare Dateien aus dem hier angegebenen Verzeichnis ausgeführt werden. Vorgabewert ist /usr/local/php/bin.

Warnung

Dieses Feature wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und ist seit PHP 5.4.0 ENTFERNT (entfernt).

--enable-magic-quotes

"Magic quotes" werden standardmäßig aktiviert.

Warnung

Dieses Feature wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und ist seit PHP 5.4.0 ENTFERNT (entfernt).

--disable-short-tags

Die Tag-Kurzform <? wird standardmäßig deaktiviert.

--enable-zend-multibyte

Aktiviert die Ausführung von Multibyte-Code im Sprach-Parser und -Scanner. Wird PHP mit dieser Option kompiliert, wird ebenfalls die Direktive encoding im declare-Konstrukt aktiviert.

Warnung

Dieses Feature wurde in PHP 5.3.0 als DEPRECATED (veraltet) markiert und ist seit PHP 5.4.0 ENTFERNT (entfernt).

--with-libdir

Gibt das Verzeichnis an, in dem die für die Kompilierung von PHP erforderlichen Bibliotheken auf einem Unix-Sytem zu finden sind. Für 64-bit Systeme ist es erforderlich, dieses Argument wie folgt auf das lib64 zu setzen: --with-libdir=lib64.

SAPI options

The following list contains the available SAPI&s (Server Application Programming Interface) for PHP.

--with-apxs[=FILE]

Build shared Apache module. FILE is the optional pathname to the Apache apxs tool; defaults to apxs. Make sure you specify the version of apxs that is actually installed on your system and NOT the one that is in the apache source tarball.

--with-apache[=DIR]

Build a static Apache module. DIR is the top-level Apache build directory, defaults to /usr/local/apache.

--with-mod_charset

Enable transfer tables for mod_charset (Russian Apache).

--with-apxs2[=FILE]

Build shared Apache 2.0 module. FILE is the optional pathname to the Apache apxs tool; defaults to apxs.

--disable-cli

Disable building the CLI version of PHP (this forces --without-pear). More information is available in the section about Using PHP from the command line.

--enable-phpdbg

Enable phpdbg interactive debugger SAPI module support in PHP 5.6.x or later.

--enable-embed[=TYPE]

Enable building of the embedded SAPI library. TYPE is either shared or static, which defaults to shared.

--with-servlet[=DIR]

Include servlet support. DIR is the base install directory for the JSDK. This SAPI requires the java extension must be built as a shared dl.

--disable-cgi

Disable building CGI version of PHP.

As of PHP 5.3.0 this argument enables FastCGI which previously had to be enabled using --enable-fastcgi.

--enable-force-cgi-redirect

Enable the security check for internal server redirects. You should use this if you are running the CGI version with Apache.

As of PHP 5.3.0 this argument is enabled by default and no longer exists. To disable this, the cgi.force_redirect ini directive should be set to 0.

--enable-discard-path

If this is enabled, the PHP CGI binary can safely be placed outside of the web tree and people will not be able to circumvent .htaccess security.

As of PHP 5.3.0 this argument is disabled by default and no longer exists. To enable this feature the cgi.discard_path ini directive must be set to 1.

--enable-fastcgi

If this is enabled, the CGI module will be built with support for FastCGI also.

As of PHP 5.3.0 this argument no longer exists and is enabled by --enable-cgi instead.

--disable-path-info-check

If this is disabled, paths such as /info.php/test?a=b will fail to work. For more information see the » Apache Manual.

As of PHP 5.3.0 this argument is enabled by default and no longer exists. To disable this feature the cgi.fix_pathinfo ini directive must be set to 0.


php.ini Direktiven

Inhaltsverzeichnis

  • Liste der php.ini-Direktiven
  • Liste der php.ini-Abschnitte
  • Beschreibung der php.ini-Direktiven des Sprachkerns


Liste der php.ini-Direktiven

Diese Liste enthält die php.ini-Direktiven, die Sie zur Konfiguration Ihrer PHP Installation nutzen können.

Die "Änderbar"-Spalte gibt an, wann und wo die Direktive geändert werden kann. Siehe Liste der möglichen Modi für deren Definitionen.

Konfiguratinsoptionen
Name | Standard | Veränderbar | Changelog
allow_url_fopen | "1" | PHP_INI_SYSTEM |
allow_url_include | "0" | PHP_INI_SYSTEM | Missbilligt von PHP 7.4.0 an.
arg_separator.input | "&" | PHP_INI_PERDIR |
arg_separator.output | "&" | PHP_INI_ALL |
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.exception | "0" | PHP_INI_ALL |
assert.quiet_eval | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
auto_append_file | NULL | PHP_INI_PERDIR |
auto_detect_line_endings | "0" | PHP_INI_ALL |
auto_globals_jit | "1" | PHP_INI_PERDIR |
auto_prepend_file | NULL | PHP_INI_PERDIR |
bcmath.scale | "0" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM |
cgi.discard_path | "0" | PHP_INI_SYSTEM |
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM |
cgi.force_redirect | "1" | PHP_INI_SYSTEM |
cgi.nph | "0" | PHP_INI_ALL |
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM |
cgi.rfc2616_headers | "0" | PHP_INI_ALL |
child_terminate | "0" | PHP_INI_ALL |
cli.pager | "" | PHP_INI_ALL | Verfügbar seit PHP 5.4.0.
cli.prompt | "\\b \\> " | PHP_INI_ALL | Verfügbar seit PHP 5.4.0.
cli_server.color | "0" | PHP_INI_ALL | Verfügbar seit PHP 5.4.0.
com.allow_dcom | "0" | PHP_INI_SYSTEM |
com.autoregister_typelib | "0" | PHP_INI_ALL |
com.autoregister_verbose | "0" | PHP_INI_ALL |
com.autoregister_casesensitive | "1" | PHP_INI_ALL |
com.code_page | "" | PHP_INI_ALL |
com.dotnet_version | "" | PHP_INI_SYSTEM | As of PHP 8.0.0
com.typelib_file | "" | PHP_INI_SYSTEM |
curl.cainfo | NULL | PHP_INI_SYSTEM | Verfügbar seit PHP 5.3.7.
date.default_latitude | "31.7667" | PHP_INI_ALL |
date.default_longitude | "35.2333" | PHP_INI_ALL |
date.sunrise_zenith | "90.583333" | PHP_INI_ALL |
date.sunset_zenith | "90.583333" | PHP_INI_ALL |
date.timezone | "" | PHP_INI_ALL | Verfügbar von PHP 5.1.0 an.
dba.default_handler | DBA_DEFAULT | PHP_INI_ALL |
default_charset | "UTF-8" | PHP_INI_ALL | Standardmäßig "UTF-8".
default_mimetype | "text/html" | PHP_INI_ALL |
default_socket_timeout | "60" | PHP_INI_ALL |
disable_classes | "" | Nur php.ini |
disable_functions | "" | Nur php.ini |
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL |
docref_ext | "" | PHP_INI_ALL |
docref_root | "" | PHP_INI_ALL |
doc_root | NULL | PHP_INI_SYSTEM |
enable_dl | "1" | PHP_INI_SYSTEM | Dieses veraltete Feature wird in der Zukunft sicherlich entfernt.
enable_post_data_reading | On | PHP_INI_PERDIR |
engine | "1" | PHP_INI_ALL |
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
error_prepend_string | NULL | PHP_INI_ALL |
error_reporting | NULL | PHP_INI_ALL |
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL |
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL |
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL |
exif.encode_jis | "" | PHP_INI_ALL |
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL |
exif.decode_jis_intel | "JIS" | PHP_INI_ALL |
exit_on_timeout | "" | PHP_INI_ALL |
expect.timeout | "10" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.logfile | "" | PHP_INI_ALL |
expect.match_max | "" | PHP_INI_ALL |
expose_php | "1" | Nur php.ini |
extension | NULL | Nur php.ini |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM |
fastcgi.logging | "1" | PHP_INI_SYSTEM |
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM |
fbsql.autocommit | "1" | PHP_INI_SYSTEM |
fbsql.batchsize | "1000" | PHP_INI_ALL |
fbsql.default_database | "" | PHP_INI_SYSTEM |
fbsql.default_database_password | "" | PHP_INI_SYSTEM |
fbsql.default_host | NULL | PHP_INI_SYSTEM |
fbsql.default_password | "" | PHP_INI_SYSTEM |
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM |
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM |
fbsql.max_connections | "128" | PHP_INI_SYSTEM |
fbsql.max_links | "128" | PHP_INI_SYSTEM |
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM |
fbsql.max_results | "128" | PHP_INI_SYSTEM |
fbsql.show_timestamp_decimals | "0" | PHP_INI_SYSTEM |
file_uploads | "1" | PHP_INI_SYSTEM |
filter.default | "unsafe_raw" | PHP_INI_PERDIR | PHP_INI_ALL in filter <= 0.9.4. Verfügbar seit PHP 5.2.0.
filter.default_flags | NULL | PHP_INI_PERDIR | PHP_INI_ALL in filter <= 0.9.4. Verfügbar seit PHP 5.2.0.
from | "" | PHP_INI_ALL |
gd.jpeg_ignore_warning | "1" | PHP_INI_ALL |
geoip.custom_directory | "" | PHP_INI_ALL |
hard_timeout | "2" | PHP_INI_SYSTEM | Verfügbar seit PHP 7.1.0.
highlight.comment | "#FF8000" | PHP_INI_ALL |
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
highlight.keyword | "#007700" | PHP_INI_ALL |
highlight.string | "#DD0000" | PHP_INI_ALL |
html_errors | "1" | PHP_INI_ALL |
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM |
ibase.max_links | "-1" | PHP_INI_SYSTEM |
ibase.default_db | NULL | PHP_INI_SYSTEM |
ibase.default_user | NULL | PHP_INI_ALL |
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
ibm_db2.binmode | "1" | PHP_INI_ALL |
ibm_db2.i5_all_pconnect | "0" | PHP_INI_SYSTEM | Available since ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | PHP_INI_SYSTEM | Available since ibm_db2 1.4.9.
ibm_db2.i5_dbcs_alloc | "0" | PHP_INI_SYSTEM | Available since ibm_db2 1.5.0.
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM | Available since ibm_db2 1.0.2.
ibm_db2.i5_ignore_userid | "0" | PHP_INI_SYSTEM | Available since ibm_db2 1.8.0.
iconv.input_encoding | "" | PHP_INI_ALL | Deprecated in PHP 5.6.0.
iconv.output_encoding | "" | PHP_INI_ALL | Deprecated in PHP 5.6.0.
iconv.internal_encoding | "" | PHP_INI_ALL | Deprecated in PHP 5.6.0.
ignore_repeated_errors | "0" | PHP_INI_ALL |
ignore_repeated_source | "0" | PHP_INI_ALL |
ignore_user_abort | "0" | PHP_INI_ALL |
implicit_flush | "0" | PHP_INI_ALL |
include_path | ".:/path/to/php/pear" | PHP_INI_ALL |
intl.default_locale |  | PHP_INI_ALL |
intl.error_level | 0 | PHP_INI_ALL |
intl.use_exceptions | 0 | PHP_INI_ALL | Available since PHP 5.5 and PECL 3.0.0a1
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Verfügbar seit Ingres 1.0.0
ingres.array_index_start | "1" | PHP_INI_ALL | Verfügbar seit Ingres 1.4.0
ingres.auto | "1" | PHP_INI_ALL | Verfügbar seit Ingres 2.0.0
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Verfügbar seit Ingres 1.2.0
ingres.cursor_mode | "0" | PHP_INI_ALL | Verfügbar seit Ingres 1.1.0
ingres.default_database | NULL | PHP_INI_ALL | Verfügbar seit Ingres 1.0.0
ingres.default_password | NULL | PHP_INI_ALL | Verfügbar seit Ingres 1.0.0
ingres.default_user | NULL | PHP_INI_ALL | Verfügbar seit Ingres 1.0.0
ingres.describe | 1 | PHP_INI_ALL | Verfügbar seit Ingres 2.1.0
ingres.fetch_buffer_size | 100 | PHP_INI_ALL | Verfügbar seit Ingres 2.1.0
ingres.max_links | "-1" | PHP_INI_SYSTEM | Verfügbar seit Ingres 1.0.0
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Verfügbar seit Ingres 1.0.0
ingres.reuse_connection | "1" | PHP_INI_ALL | Verfügbar seit Ingres ingres 2.0.0
ingres.scrollable | "1" | PHP_INI_ALL | Verfügbar seit Ingres 2.0.0.
ingres.trace | "0" | PHP_INI_ALL | Verfügbar seit Ingres 2.0.0.
ingres.trace_connect | "0" | PHP_INI_ALL | Verfügbar seit Ingres 1.2.1.
ingres.utf8 | "1" | PHP_INI_ALL | Verfügbar seit Ingres 2.0.0.
last_modified | "0" | PHP_INI_ALL |
ldap.max_links | "-1" | PHP_INI_SYSTEM |
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL |
mail.add_x_header | "0" | PHP_INI_PERDIR |
mail.force_extra_parameters | NULL | Nur php.ini |
mail.log | "" | PHP_INI_PERDIR |
max_execution_time | "30" | PHP_INI_ALL |
max_input_nesting_level | "64" | PHP_INI_PERDIR |
max_input_vars | 1000 | PHP_INI_PERDIR |
max_input_time | "-1" | PHP_INI_PERDIR |
mbstring.language | "neutral" | PHP_INI_ALL | PHP_INI_PERDIR in PHP <= 5.2.6.
mbstring.detect_order | NULL | PHP_INI_ALL |
mbstring.http_input | "pass" | PHP_INI_ALL | Deprecated in PHP 5.6.0.
mbstring.http_output | "pass" | PHP_INI_ALL | Deprecated in PHP 5.6.0.
mbstring.internal_encoding | NULL | PHP_INI_ALL | Deprecated in PHP 5.6.0.
mbstring.script_encoding | NULL | PHP_INI_ALL | Removed in PHP 5.4.0. Use zend.script_encoding instead.
mbstring.substitute_character | NULL | PHP_INI_ALL |
mbstring.func_overload | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR in PHP <= 5.2.6. Deprecated as of PHP 7.2.0; removed as of PHP 8.0.0.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | PHP_INI_ALL | Available as of PHP 5.3.0.
mbstring.strict_detection | "0" | PHP_INI_ALL | Available as of PHP 5.1.2.
mcrypt.algorithms_dir | null | PHP_INI_ALL |
mcrypt.modes_dir | null | PHP_INI_ALL |
memcache.allow_failover | "1" | PHP_INI_ALL | Verfügbar seit Memcache 2.0.2.
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Verfügbar seit Memcache 2.1.0.
memcache.chunk_size | "8192" | PHP_INI_ALL | Verfügbar seit Memcache 2.0.2.
memcache.default_port | "11211" | PHP_INI_ALL | Verfügbar seit Memcache 2.0.2.
memcache.hash_strategy | "standard" | PHP_INI_ALL | Verfügbar seit Memcache 2.2.0.
memcache.hash_function | "crc32" | PHP_INI_ALL | Verfügbar seit Memcache 2.2.0.
session.save_handler | "files" | PHP_INI_ALL | Verfügbar seit Memcache 2.1.2
session.save_path | "" | PHP_INI_ALL | Unterstützt seit Memcache 2.1.2
memcache.protocol | ascii | >PHP_INI_ALL | Unterstützt seit Memcache 3.0.0
memcache.redundancy | 1 | >PHP_INI_ALL | Unterstützt seit Memcache 3.0.0
memcache.session_redundancy | 2 | >PHP_INI_ALL | Unterstützt seit Memcache 3.0.0
memcache.compress_threshold | 20000 | >PHP_INI_ALL | Unterstützt seit Memcache 3.0.3
memcache.lock_timeout | 15 | >PHP_INI_ALL | Unterstützt seit Memcache 3.0.4
memory_limit | "128M" | PHP_INI_ALL |
mongo.allow_empty_keys | 0 | PHP_INI_ALL |
mongo.allow_persistent | 1 | PHP_INI_ALL | Removed in 1.2.0
mongo.chunk_size | 262144 | PHP_INI_ALL |
mongo.cmd | "$" | PHP_INI_ALL |
mongo.default_host | "localhost" | PHP_INI_ALL |
mongo.default_port | 27017 | PHP_INI_ALL |
mongo.is_master_interval | 15 | PHP_INI_ALL | Added in 1.2.10, before 1.3.0 the default value was 60.
mongo.long_as_object | 0 | PHP_INI_ALL |
mongo.native_long | 1 | PHP_INI_ALL | Before 1.5.0, the default value was 0.
mongo.ping_interval | 5 | PHP_INI_ALL | Added in 1.2.10
mongo.utf8 | 1 | PHP_INI_ALL |
mysql.allow_local_infile | "1" | PHP_INI_SYSTEM |
mysql.allow_persistent | "1" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "0" | PHP_INI_ALL |
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL |
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_user | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.connect_timeout | "60" | PHP_INI_ALL |
mysqli.allow_local_infile | "0" | PHP_INI_SYSTEM | Vor PHP 7.2.16 und 7.3.3 war der Standardwert "1".
mysqli.local_infile_directory |  | PHP_INI_SYSTEM |
mysqli.allow_persistent | "1" | PHP_INI_SYSTEM |
mysqli.max_persistent | "-1" | PHP_INI_SYSTEM |
mysqli.max_links | "-1" | PHP_INI_SYSTEM |
mysqli.default_port | "3306" | PHP_INI_ALL |
mysqli.default_socket | NULL | PHP_INI_ALL |
mysqli.default_host | NULL | PHP_INI_ALL |
mysqli.default_user | NULL | PHP_INI_ALL |
mysqli.default_pw | NULL | PHP_INI_ALL |
mysqli.reconnect | "0" | PHP_INI_SYSTEM |
mysqli.rollback_on_cached_plink | TRUE | PHP_INI_SYSTEM |
mysqlnd.collect_statistics | "1" | PHP_INI_SYSTEM |
mysqlnd.collect_memory_statistics | "0" | PHP_INI_SYSTEM |
mysqlnd.debug | "" | PHP_INI_SYSTEM |
mysqlnd.log_mask | 0 | PHP_INI_ALL |
mysqlnd.mempool_default_size | 16000 | PHP_INI_ALL |
mysqlnd.net_read_timeout | "86400" | PHP_INI_ALL | Before PHP 7.2.0 the default value was "31536000" and the changeability was PHP_INI_SYSTEM
mysqlnd.net_cmd_buffer_size | "4096" | PHP_INI_SYSTEM |
mysqlnd.net_read_buffer_size | "32768" | PHP_INI_SYSTEM |
mysqlnd.sha256_server_public_key | "" | PHP_INI_PERDIR |
mysqlnd.trace_alloc | "" | PHP_INI_SYSTEM |
mysqlnd.fetch_data_copy | 0 | PHP_INI_ALL |
mysqlnd_memcache.enable | 1 | PHP_INI_SYSTEM | Available since 1.0.0
mysqlnd_ms.enable | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.force_config_usage | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.ini_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.config_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.collect_statistics | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.multi_master | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.disable_rw_split | 0 | PHP_INI_SYSTEM |
mysqlnd_mux.enable | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.enable_qc | 1 | PHP_INI_SYSTEM |
mysqlnd_qc.ttl | 30 | PHP_INI_ALL |
mysqlnd_qc.cache_by_default | 0 | PHP_INI_ALL |
mysqlnd_qc.cache_no_table | 0 | PHP_INI_ALL |
mysqlnd_qc.use_request_time | 0 | PHP_INI_ALL |
mysqlnd_qc.time_statistics | 1 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics | 0 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics_log_file | /tmp/mysqlnd_qc.stats | PHP_INI_SYSTEM |
mysqlnd_qc.collect_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.query_trace_bt_depth | 3 | PHP_INI_SYSTEM |
mysqlnd_qc.collect_normalized_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.ignore_sql_comments | 1 | PHP_INI_ALL |
mysqlnd_qc.slam_defense | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.slam_defense_ttl | 30 | PHP_INI_SYSTEM |
mysqlnd_qc.std_data_copy | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.apc_prefix | qc_ | PHP_INI_ALL |
mysqlnd_qc.memc_server | 127.0.0.1 | PHP_INI_ALL |
mysqlnd_qc.memc_port | 11211 | PHP_INI_ALL |
mysqlnd_qc.sqlite_data_file | :memory: | PHP_INI_ALL |
mysqlnd_uh.enable | 1 | PHP_INI_SYSTEM |
mysqlnd_uh.report_wrong_types | 1 | PHP_INI_ALL |
oci8.connection_class | "" | PHP_INI_ALL | Verfügbar seit PHP 5.3 (PECL OCI8 1.3).
oci8.default_prefetch | "100" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
oci8.events | Off | PHP_INI_SYSTEM | Verfügbar seit PHP 5.3 (PECL OCI8 1.3).
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
oci8.old_oci_close_semantics | Off | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
oci8.ping_interval | "60" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
oci8.privileged_connect | Off | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM | Verfügbar seit PHP 5.1.2 (PECL OCI8 1.1).
odbc.default_db * | NULL | PHP_INI_ALL |
odbc.default_user * | NULL | PHP_INI_ALL |
odbc.default_pw * | NULL | PHP_INI_ALL |
odbc.allow_persistent | "1" | PHP_INI_SYSTEM |
odbc.check_persistent | "1" | PHP_INI_SYSTEM |
odbc.max_persistent | "-1" | PHP_INI_SYSTEM |
odbc.max_links | "-1" | PHP_INI_SYSTEM |
odbc.defaultlrl | "4096" | PHP_INI_ALL |
odbc.defaultbinmode | "1" | PHP_INI_ALL |
odbc.default_cursortype | "3" | PHP_INI_ALL | Verfügbar von PHP 5.3.0 an
opcache.enable | "1" | PHP_INI_ALL |
opcache.enable_cli | "0" | PHP_INI_SYSTEM | Between PHP 7.1.2 and 7.1.6 inclusive, the default was "1"
opcache.memory_consumption | "128" | PHP_INI_SYSTEM |
opcache.interned_strings_buffer | "8" | PHP_INI_SYSTEM |
opcache.max_accelerated_files | "10000" | PHP_INI_SYSTEM |
opcache.max_wasted_percentage | "5" | PHP_INI_SYSTEM |
opcache.use_cwd | "1" | PHP_INI_SYSTEM |
opcache.validate_timestamps | "1" | PHP_INI_ALL |
opcache.revalidate_freq | "2" | PHP_INI_ALL |
opcache.revalidate_path | "0" | PHP_INI_ALL |
opcache.save_comments | "1" | PHP_INI_SYSTEM |
opcache.fast_shutdown | "0" | PHP_INI_SYSTEM | Removed in PHP 7.2.0
opcache.enable_file_override | "0" | PHP_INI_SYSTEM |
opcache.optimization_level | "0x7FFEBFFF" | PHP_INI_SYSTEM | Changed from 0x7FFFBFFF in PHP 7.3.0
opcache.inherited_hack | "1" | PHP_INI_SYSTEM | Removed in PHP 7.3.0
opcache.dups_fix | "0" | PHP_INI_ALL |
opcache.blacklist_filename | "" | PHP_INI_SYSTEM |
opcache.max_file_size | "0" | PHP_INI_SYSTEM |
opcache.consistency_checks | "0" | PHP_INI_ALL |
opcache.force_restart_timeout | "180" | PHP_INI_SYSTEM |
opcache.error_log | "" | PHP_INI_SYSTEM |
opcache.log_verbosity_level | "1" | PHP_INI_SYSTEM |
opcache.preferred_memory_model | "" | PHP_INI_SYSTEM |
opcache.protect_memory | "0" | PHP_INI_SYSTEM |
opcache.mmap_base | null | PHP_INI_SYSTEM |
opcache.restrict_api | "" | PHP_INI_SYSTEM |
opcache.file_update_protection | "2" | PHP_INI_ALL |
opcache.huge_code_pages | "0" | PHP_INI_SYSTEM |
opcache.lockfile_path | "/tmp" | PHP_INI_SYSTEM |
opcache.opt_debug_level | "0" | PHP_INI_SYSTEM | Available as of PHP 7.1.0
opcache.file_cache | NULL | PHP_INI_SYSTEM |
opcache.file_cache_only | "0" | PHP_INI_SYSTEM |
opcache.file_cache_consistency_checks | "1" | PHP_INI_SYSTEM |
opcache.file_cache_fallback | "1" | PHP_INI_SYSTEM | Windows only.
opcache.validate_permission | "0" | PHP_INI_SYSTEM | Available as of PHP 7.0.14
opcache.validate_root | "0" | PHP_INI_SYSTEM | Available as of PHP 7.0.14
opcache.preload | "" | PHP_INI_SYSTEM | Available as of PHP 7.4.0
opcache.preload_user | "" | PHP_INI_SYSTEM | Available as of PHP 7.4.0
opcache.cache_id | "" | PHP_INI_SYSTEM | Windows only. Available as of PHP 7.4.0
opcache.jit | "tracing" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_buffer_size | "0" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_debug | "0" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_bisect_limit | "0" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_prof_threshold | "0.005" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_root_traces | "1024" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_max_side_traces | "128" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_max_exit_counters | "8192" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_hot_loop | "64" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_hot_func | "127" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_hot_return | "8" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_hot_side_exit | "8" | PHP_INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_blacklist_root_trace | "16" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_blacklist_side_trace | "8" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_loop_unrolls | "8" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_recursive_calls | "2" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_recursive_returns | "2" | PHP_INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_polymorphic_calls | "2" | PHP_INI_ALL | Available as of PHP 8.0.0
open_basedir | NULL | PHP_INI_ALL |
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR |
pcre.backtrack_limit | "1000000" | PHP_INI_ALL | Steht ab PHP 5.2.0 zur Verfügung
pcre.recursion_limit | "100000" | PHP_INI_ALL | Steht ab PHP 5.2.0 zur Verfügung
pcre.jit | "1" | PHP_INI_ALL | Steht ab PHP 7.0.0 zur Verfügung
pdo.dsn.* |  | php.ini only |
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | Available since PHP 5.1.0.
pdo_odbc.db2_instance_name | NULL | PHP_INI_SYSTEM | Available since PHP 5.1.1. Dieses veraltete Feature wird in der Zukunft sicherlich entfernt.
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | Verfügbar seit PHP 4.2.0.
pgsql.ignore_notice | "0" | PHP_INI_ALL | Verfügbar seit PHP 4.3.0.
pgsql.log_notice | "0" | PHP_INI_ALL | Verfügbar seit PHP 4.3.0.
phar.readonly | "1" | PHP_INI_ALL |
phar.require_hash | "1" | PHP_INI_ALL |
phar.cache_list | "" | PHP_INI_SYSTEM |
post_max_size | "8M" | PHP_INI_PERDIR |
precision | "14" | PHP_INI_ALL |
realpath_cache_size | "16K" | PHP_INI_SYSTEM |
realpath_cache_ttl | "120" | PHP_INI_SYSTEM |
register_argc_argv | "1" | PHP_INI_PERDIR |
report_memleaks | "1" | PHP_INI_ALL |
report_zend_debug | "1" | PHP_INI_ALL |
request_order | "" | PHP_INI_PERDIR |
runkit.superglobal | "" | PHP_INI_PERDIR |
runkit.internal_override | "0" | PHP_INI_SYSTEM |
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | PHP_INI_SYSTEM |
serialize_precision | "-1" | PHP_INI_ALL | Vor PHP 7.1.0 war der Standardwert 17.
session.save_path | "" | PHP_INI_ALL |
session.name | "PHPSESSID" | PHP_INI_ALL |
session.save_handler | "files" | PHP_INI_ALL |
session.auto_start | "0" | PHP_INI_PERDIR |
session.gc_probability | "1" | PHP_INI_ALL |
session.gc_divisor | "100" | PHP_INI_ALL |
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.serialize_handler | "php" | PHP_INI_ALL |
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL |
session.cookie_httponly | "" | PHP_INI_ALL |
session.cookie_samesite | "" | PHP_INI_ALL | Seit PHP 7.3.0 verfügbar.
session.use_strict_mode | "0" | PHP_INI_ALL |
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "1" | PHP_INI_ALL |
session.referer_check | "" | PHP_INI_ALL |
session.cache_limiter | "nocache" | PHP_INI_ALL |
session.cache_expire | "180" | PHP_INI_ALL |
session.use_trans_sid | "0" | PHP_INI_ALL |
session.trans_sid_tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Verfügbar ab PHP 7.1.0.
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | PHP_INI_ALL | Verfügbar ab PHP 7.1.0.
session.sid_length | "32" | PHP_INI_ALL | Verfügbar ab PHP 7.1.0.
session.sid_bits_per_character | "4" | PHP_INI_ALL | Verfügbar ab PHP 7.1.0.
session.upload_progress.enabled | "1" | PHP_INI_PERDIR |
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR |
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR |
session.upload_progress.freq | "1%" | PHP_INI_PERDIR |
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR |
session.lazy_write | "1" | PHP_INI_ALL |
session.hash_function | "0" | PHP_INI_ALL | Entfernt ab PHP 7.1.0.
session.hash_bits_per_character | "4" | PHP_INI_ALL | Entfernt ab PHP 7.1.0.
session.entropy_file | "" | PHP_INI_ALL | Entfernt ab PHP 7.1.0.
session.entropy_length | "0" | PHP_INI_ALL | Entfernt ab PHP 7.1.0.
short_open_tag | "1" | PHP_INI_PERDIR |
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL |
soap.wsdl_cache_enabled | 1 | PHP_INI_ALL |
soap.wsdl_cache_dir | /tmp | PHP_INI_ALL |
soap.wsdl_cache_ttl | 86400 | PHP_INI_ALL |
soap.wsdl_cache | 1 | PHP_INI_ALL |
soap.wsdl_cache_limit | 5 | PHP_INI_ALL |
sql.safe_mode | "0" | PHP_INI_SYSTEM |
sqlite3.extension_dir | "" | PHP_INI_SYSTEM | Verfügbar von PHP 5.3.11 an.
sqlite3.defensive | 1 | PHP_INI_SYSTEM | Verfügbar von PHP 7.2.17 und 7.3.4 an für libsqlite = 3.26.0.
syslog.facility | "LOG_USER" | PHP_INI_SYSTEM | Verfügbar von PHP 7.3.0 an.
syslog.filter | "no-ctrl" | PHP_INI_ALL | Verfügbar von PHP 7.3.0 an.
syslog.ident | "php" | PHP_INI_SYSTEM | Verfügbar von PHP 7.3.0 an.
sys_temp_dir | "" | PHP_INI_SYSTEM |
sysvshm.init_mem | 10000 | PHP_INI_SYSTEM |
tidy.default_config | "" | PHP_INI_SYSTEM |
tidy.clean_output | "0" | PHP_INI_USER | PHP_INI_PERDIR prior to PHP 5.4.0
track_errors | "0" | PHP_INI_ALL | Von PHP 7.2.0 an missbilligt.
unserialize_callback_func | NULL | PHP_INI_ALL |
uploadprogress.file.filename_template | "/tmp/upt_%s.txt" | PHP_INI_ALL |
upload_max_filesize | "2M" | PHP_INI_PERDIR |
max_file_uploads | 20 | PHP_INI_SYSTEM |
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL |
user_agent | NULL | PHP_INI_ALL |
user_dir | NULL | PHP_INI_SYSTEM |
user_ini.cache_ttl | "300" | PHP_INI_SYSTEM |
user_ini.filename | ".user.ini" | PHP_INI_SYSTEM |
uopz.disable | "0" | PHP_INI_SYSTEM | Available as of uopz 5.0.2
uopz.exit | "0" | PHP_INI_SYSTEM | Available as of uopz 6.0.1
uopz.overloads | "1" | PHP_INI_SYSTEM | Available as of uopz 2.0.2. Removed as of uopz 5.0.0.
variables_order | "EGPCS" | PHP_INI_PERDIR |
vld.active | "0" | PHP_INI_SYSTEM |
vld.execute | "1" | PHP_INI_SYSTEM | Verfügbar seit vld 0.8.0.
vld.skip_append | "0" | PHP_INI_SYSTEM | Verfügbar seit vld 0.8.0.
vld.skip_prepend | "0" | PHP_INI_SYSTEM | Verfügbar seit vld 0.8.0.
windows.show_crt_warning | "0" | PHP_INI_ALL |
xbithack | "0" | PHP_INI_ALL |
xmlrpc_errors | "0" | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | PHP_INI_ALL |
yaz.keepalive | "120" | PHP_INI_ALL |
yaz.log_mask | NULL | PHP_INI_ALL | Verfügbar seit yaz 1.0.3.
zend.assertions | "1" | PHP_INI_ALL |
zend.detect_unicode | "1" | PHP_INI_ALL |
zend.enable_gc | "1" | PHP_INI_ALL |
zend.multibyte | "0" | PHP_INI_PERDIR |
zend.script_encoding | NULL | PHP_INI_ALL |
zend.signal_check | "0" | PHP_INI_SYSTEM |
zend_extension | NULL | Nur php.ini |
zlib.output_compression | "0" | PHP_INI_ALL |
zlib.output_compression_level | "-1" | PHP_INI_ALL |
zlib.output_handler | "" | PHP_INI_ALL |


Liste der php.ini-Abschnitte

Diese Liste beinhaltet die php.ini Abschnitte die Sie für die Konfiguration auf Basis des Host- oder Pfadnames nutzen können. Diese Abschnitte sind optional.

Die Abschnitte selbst beeinflussen PHP nicht direkt. Sie werden genutzt um andere php.ini Direktiven zu gruppieren und sie für einen bestimmten Host- oder Pfadnamen anzuwenden.

Diese Abschnitte werden nur benutzt, wenn PHP über CGI/FastCGI operiert, und können extension und zend_extension nicht setzen.

Abschnitte
Name | Veränderbar | Changelog
[HOST=] | PHP_INI_SYSTEM | Hinzugefügt in PHP 5.3.0.
[PATH=] | PHP_INI_SYSTEM | Hinzugefügt in PHP 5.3.0.

Hier eine kurze Erklärung der Konfigurationsoptionen:

[HOST=<host>]

Dieser Abschnitt gestattet die Definition einer Gruppe von php.ini Direktiven die für einen bestimmten Host Anwendung finden sollen.

Beispiel #1 Aktiviere volle Fehlerausgaben im Browser für die dev. Domain

[HOST=dev.site.com]
error_reporting = E_ALL
display_errors = On

[PATH=<path>]

Dieser Abschnitt gestattet die Definition einer Gruppe von php.ini Direktiven die für einen bestimmten Pfad Anwendung finden sollen.

Beispiel #2 Binde für ein zu sicherndes Verzeichnis ein Sicherheitsscript hinzu

[PATH=/home/site/public/secure]
auto_prepend_file=security.php


Beschreibung der php.ini-Direktiven des Sprachkerns

Diese Liste enthält die php.ini-Direktiven des PHP-Kerns, die Sie in Ihrer Installation verwenden können. Direktiven, die von einer der Erweiterungen verarbeitet werden, werden in den Handbuchseiten der jeweiligen Erweiterung aufgelistet und im Detail beschrieben. So können z.B. die Direktiven zur Konfiguration von Sessions auf den Session-Handbuchseiten gefunden werden.

Hinweis:

Die Voreinstellungen, die hier aufgeführt werden, gelten, wenn php.ini nicht geladen wurde. Die Werte für die Produktions- und Entwicklungs-php.ini können anders sein.

Sprachoptionen

Konfiguration der Sprache und verschiedene weitere Optionen
Name | Standard | Veränderbar | Changelog
short_open_tag | "1" | PHP_INI_PERDIR |
precision | "14" | PHP_INI_ALL |
serialize_precision | "-1" | PHP_INI_ALL | Vor PHP 7.1.0 war der Vorgabewert 17.
disable_functions | "" | Nur PHP_INI_SYSTEM |
disable_classes | "" | Nur php.ini |
exit_on_timeout | "" | PHP_INI_ALL |
expose_php | "1" | Nur php.ini |
hard_timeout | "2" | PHP_INI_SYSTEM | Verfügbar seit PHP 7.1.0.
zend.exception_ignore_args | "0" | PHP_INI_ALL | Verfügbar seit PHP 7.4.0
zend.multibyte | "0" | PHP_INI_ALL |
zend.script_encoding | NULL | PHP_INI_ALL |
zend.detect_unicode | NULL | PHP_INI_ALL |
zend.signal_check | "0" | PHP_INI_SYSTEM |
zend.assertions | "1" | PHP_INI_ALL mit Einschränkungen

Hier eine kurze Erklärung der Konfigurationsoptionen:

short_open_tag bool

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

Hinweis:

Diese Option hat keinen Einfluss auf die Kurzform <?=, die immer verfügbar ist.

precision int
Die Anzahl der signifikanten Stellen, die in Gleitkommazahlen dargestellt werden. -1 bedeutet, dass ein verbesserter Algorithmus zur Rundung solcher Zahlen verwendet wird.
serialize_precision int
Die Anzahl der signifikanten Stellen, die gespeichert werden wenn Gleitkommazahlen serialisiert werden. -1 bedeutet, dass ein verbesserter Algorithmus zur Rundung solcher Zahlen verwendet wird.
expose_php bool

Zeigt der Welt, dass PHP auf dem Server installiert ist. Dies beinhaltet die Version von PHP im HTTP-Header (z. B. X-Powered-By: PHP/5.3.7).

disable_functions string

Diese Direktive ermöglicht das Deaktivieren einzelner Funktionen. Die Funktionen werden als kommagetrennte Liste von Funktionsnamen übergeben.

Nur interne Funktionen können über diese Direktive deaktiviert werden. Benutzerdefinierte Funktionen sind nicht betroffen.

Diese Direktive muss in php.ini gesetzt werden. Sie kann beispielsweise nicht in httpd.conf gesetzt werden.

disable_classes string
Diese Direktive ermöglicht das Deaktivieren einzelner Klassen. Die Funktionen werden als kommagetrennte Liste von Klassennamen übergeben. Diese Direktive muss in php.ini gesetzt werden. Sie kann beispielsweise nicht in httpd.conf gesetzt werden.
zend.assertions int
Falls diese Direktive auf 1 gesetzt ist, dann wird Assertion-Code erzeugt und ausgeführt (Entwicklungsmodus). Falls sie auf 0 gesetzt ist, dann wird Assertion-Code erzeugt, aber zur Laufzeit ausgelassen (nicht ausgeführt). Falls sie auf -1 gesetzt ist, dann wird Assertion-Code nicht erzeugt, so dass die Assertions keine Laufzeitkosten haben (Produktionsmodus).

Hinweis:

Wurde der Prozess im Produktionsmodus gestartet, kann zend.assertions nicht zur Laufzeit geändert werden, da der Assertion-Code nicht erzeugt wurde.

Wurde der Prozess im Entwicklungsmodus gestartet, kann zend.assertions zur Laufzeit nicht auf -1 gesetzt werden.

hard_timeout int

zend.exception_ignore_args bool

Schließt Argumente aus Stack-Traces, die von Exceptions generiert wurden, aus.

zend.multibyte bool

Erlaubt das Parsen von Quellcode-Dateien in Multibyte-Encodings. Die Aktivierung von zend.multibyte ist erforderlich, um Zeichenkodierungen wie SJIS, BIG5, usw. zu verwenden, die besondere Zeichen in multibyte-Zeichenkettendaten enthalten. ISO-8859-1-kompatible Kodierungen wie UTF-8, EUC, usw. erfordern diese Option nicht.

Das Aktivieren von zend.multibyte erfordert, dass die mbstring-Erweiterung verfügbar ist.

zend.script_encoding string

Dieser Wert wird verwendet, sofern keine declare(encoding=...)-Direktive am Anfang des Skriptes verwendet wird. Wird eine ISO-8859-1-inkompatible Kodierung verwendet, müssen sowohl zend.multibyte als auch zend.script_encoding verwendet werden.

Zeichenkettenliterale werden von zend.script_enconding in mbstring.internal_encoding übersetzt, als ob mb_convert_encoding() aufgerufen worden wäre.

zend.detect_unicode bool

Erkenne, ob eine BOM (Byte Order Mark) vorhanden ist und prüfe, ob die Datei valide Multibyte Zeichen enthält. Diese Erkennung wird vorgenommen, bevor __halt_compiler() verarbeitet wird. Diese Option ist nur im Zend Multibyte Modus verfügbar.

zend.signal_check bool

Legt fest, ob während des Herunterfahrens geprüft werden soll, ob Signal-Handler ersetzt wurden.

exit_on_timeout bool

Diese Einstellung betrifft nur Apache1 mit mod_php. Sie zwingt einen Apache-Kindprozess sich zu beenden, wenn ein PHP-Timeout auftritt. Solch ein Timeout verursacht einen internen longjmp()-Aufruf, welches einige Erweiterungen in einem inkonsistenten Zustand hinterlassen kann. Durch das Beenden des Prozesses werden ausstehende Locks und allozierter Arbeitsspeicher freigegeben.

Limitierung von Ressourcen

Limitierung von Ressourcen
Name | Standard | Veränderbar | Changelog
memory_limit | "128M" | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

memory_limit int

Legt maximale Menge an Speicher in Bytes fest, die ein Skript verbrauchen darf. Damit können schlecht geschriebene Skripte daran gehindert werden, den gesamten verfügbaren Speicher eines Servers "aufzufressen". Um keine Speicherobergrenze festzulegen, setzen Sie diese Direktive auf den Wert -1.

Wird ein int-Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben.

Siehe auch: max_execution_time.

Leistungsoptimierung

Leistungsoptimierung
Name | Standard | Veränderbar | Changelog
realpath_cache_size | "4M" | PHP_INI_SYSTEM | Vor PHP 7.0.16 and 7.1.2 war die Voreinstellung "16K"
realpath_cache_ttl | "120" | PHP_INI_SYSTEM |

Hinweis:

Die Verwendung von open_basedir deaktiviert den realpath-Cache.

Hier eine kurze Erklärung der Konfigurationsoptionen:

realpath_cache_size int

Legt die Größe des von PHP nutzbaren realpath-Caches fest. Dieser Wert sollte auf Systemen erhöht werden, auf denen PHP viele Dateien öffnet, um die Anzahl von Dateioperationen widerzuspiegeln.

Die Größe stellt die Gesamtzahl von Bytes der gespeicherten Pfad-Zeichenketten dar, plus die Größe der Daten, die mit dem Cache-Eintrag verknüpft sind. Das bedeutet, dass der Cache größer sein muss, um längere Pfade im Cache zu speichern. Dieser Wert steuert nicht direkt die Anzahl der individuellen Pfade, die im Cache vorgehalten werden können.

Die benötigte Größe für die Cache-Eintragsdaten ist systemabhängig.

realpath_cache_ttl int

Zeitspanne (in Sekunden), während der realpath-Informationen einer Datei oder eines Verzeichnisses gecacht bleiben. Für Systeme, auf denen sich die Dateien kaum ändern, sollte man die Erhöhung dieses Wertes in Betracht ziehen.

Verarbeitung von Daten

Konfigurations-Optionen für die Verarbeitung von Daten
Name | Standard | Veränderbar | Changelog
arg_separator.output | "&" | PHP_INI_ALL |
arg_separator.input | "&" | PHP_INI_PERDIR |
variables_order | "EGPCS" | PHP_INI_PERDIR |
request_order | "" | PHP_INI_PERDIR |
auto_globals_jit | "1" | PHP_INI_PERDIR |
register_argc_argv | "1" | PHP_INI_PERDIR |
enable_post_data_reading | "1" | PHP_INI_PERDIR |
post_max_size | "8M" | PHP_INI_PERDIR |
auto_prepend_file | NULL | PHP_INI_PERDIR |
auto_append_file | NULL | PHP_INI_PERDIR |
default_mimetype | "text/html" | PHP_INI_ALL |
default_charset | "UTF-8" | PHP_INI_ALL |
input_encoding | "" | PHP_INI_ALL |
output_encoding | "" | PHP_INI_ALL |
internal_encoding | "" | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

arg_separator.output string

Das Trennzeichen, das in von PHP generierten URLs verwendet wird, um Argumente abzutrennen.

arg_separator.input string

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

Hinweis:

Jeder Buchstabe in dieser Option wird als Trennzeichen interpretiert!

variables_order string

Legt die Reihenfolge der EGPCS- (Environment (Umgebungsvariablen), Get, Post, Cookie und Server) Variablenverarbeitung fest. Wenn zum Beispiel variables_order auf "SP" eingestellt ist, wird PHP die superglobals $_SERVER und $_POST, nicht aber $_ENV, $_GET und $_COOKIE anlegen. Wird dieser Wert auf "" gesetzt, so werden keine superglobals erzeugt.

Warnung

Sowohl im CGI- als auch im FastCGI-SAPI enthält $_SERVER immer auch Variablen aus dem Environment; S ist hier immer äquivalent zu ES, unabhängig davon, ob E noch anderweitig in der Direktive verwendet wird.

Hinweis:

Der Inhalt und die Reihenfolge von $_REQUEST sind von dieser Direktive ebenfalls betroffen.

request_order string

Diese Direktive legt fest, in welcher Reihenfolge PHP GET-, POST- und Cookie-Variablen im _REQUEST-Array ablegt. Die Registrierung erfolgt dabei von links nach rechts und neuere Einträge überschreiben bisherige Werte gleichen Namens.

Ist diese Direktive nicht gesetzt, so wird stattdessen variables_order für die Inhalte von $_REQUEST ausgewertet.

Beachten Sie, dass die Standard-php.ini-Dateien 'C' für Cookies aus Sicherheitsgründen nicht angeben.

auto_globals_jit bool

Wenn eingeschaltet, werden die SERVER-, REQUEST- und ENV-Variablen erzeugt, sobald diese zum ersten Mal verwendet werden (Just In Time), statt zum Ausführungsbeginn des Skriptes. Wenn diese Variablen in einem Skript nicht verwendet werden, bringt das Einschalten dieser Einstellung einen Geschwindigkeitszuwachs.

Warnung

Ob SERVER-, REQUEST- und ENV-Variablen verwendet werden, wird bereits zur Kompilationszeit geprüft. Ein Zugriff über variable Variablen führt daher nicht dazu, dass diese initialisiert werden.

register_argc_argv bool
Bestimmt, ob die argv- & argc-Variablen deklariert werden sollen (betrifft die GET-Informationen). Siehe auch Kommandozeile.
enable_post_data_reading bool
Wenn diese Option deaktiviert ist, werden $_POST und $_FILES nicht gefüllt. Der einzige Weg, in diesem Fall die POST-Daten zu lesen, ist der php://input-Stream-Wrapper. Dies kann nützlich sein, um Requests umzuleiten oder um die POST-Daten speichereffizient zu verarbeiten.
post_max_size int
Setzt die maximal erlaubte Größe von POST-Daten. Diese Option betrifft auch den Datei-Upload. Um größere Dateien hochzuladen, muss der Wert größer sein als upload_max_filesize. Allgemein sollte memory_limit größer als post_max_size sein. Wird ein int-Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben. Wenn die Größe der POST-Daten größer ist als post_max_size, werden die $_POST- und $_FILES-Superglobals leer sein. Dies kann auf verschiedene Weisen verfolgt werden, z.B. indem man die $_GET-Variable an das Skript, das die Daten verarbeitet, weitergibt, d.h. <form action="edit.php?processed=1"> und daraufhin prüft, ob $_GET['processed'] gesetzt ist.

Hinweis:

PHP gestattet die Angabe von K für kilo, M für mega und G für Giga bei der Angabe von Werten und rechnet diese automatisch um. Vermeiden Sie aber beim Einsatz von 32bit-Versionen die Angabe von Werten, die das Limit für vorzeichenbehaftete 32bit-Integer überschreiten, da Ihre Skripte sonst fehlschlagen werden.

Changelog für post_max_size
Version | Beschreibung
5.3.4 | post_max_size = 0 deaktiviert die Begrenzung nicht, wenn der Content-Type application/x-www-form-urlencoded oder PHP nicht bekannt ist.
5.3.2, 5.2.12 | Erlaubt unbegrenzte POST-Größe durch Setzen von post_max_size auf 0.

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 Funktion require eingebunden hätten, dabei wird ein gesetzter include_path beachtet.

Der spezielle Wert none deaktiviert Auto-Prepending.

auto_append_file string

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

Der spezielle Wert none deaktiviert Auto-Appending.

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

default_mimetype string

Standardmäßig gibt PHP den Medientyp unter Verwendung des Content-Type-Headers aus. Um das zu unterbinden, ist diese Einstellung leer zu lassen.

PHP's eingebauter Medientyp ist text/html.

default_charset string

"UTF-8" ist der Vorgabewert und dieser Wert wird als Standard-Zeichenkodierung für htmlentities(), html_entity_decode() und htmlspecialchars() verwendet, wenn der Parameter encoding ausgelassen wird. Der Wert von default_charset wird ebenfalls verwendet, um den Standard-Zeichensatz für iconv-Funktionen festzulegen, wenn die iconv.input_encoding-, iconv.output_encoding- und iconv.internal_encoding-Konfigurationsoptionen nicht gesetzt sind, und für mbstring-Funktionen, wenn die mbstring.http_input-, mbstring.http_output- und mbstring.internal_encoding-Konfigurationsoptionen nicht gesetzt sind.

Alle Versionen von PHP verwenden diesen Wert als Zeichensatz im Standard-Content-Type-Header, der von PHP gesendet wird, wenn der Header nicht durch einen Aufruf von header() überschrieben wurde.

default_charset auf einen leeren Wert zu setzen, wird nicht empfohlen.

input_encoding string

Diese Einstellung wird für Multibyte-Module wie mbstring und iconv verwenden. Standardwert ist leer.

output_encoding string

Diese Einstellung wird für Multibyte-Module wie mbstring und iconv verwenden. Standardwert ist leer.

internal_encoding string

Diese Einstellung wird für Multibyte-Module wie mbstring und iconv verwenden. Standardwert ist leer. Falls leer, dann wird default_charset verwendet.

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

Pfade und Verzeichnisse

Konfigurationsoptionen für Pfade und Verzeichnisse
Name | Standard | Veränderbar | Changelog
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
open_basedir | NULL | PHP_INI_ALL |
doc_root | NULL | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
user_ini.cache_ttl | "300" | PHP_INI_SYSTEM |
user_ini.filename | ".user.ini" | PHP_INI_SYSTEM |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
extension | NULL | Nur php.ini |
zend_extension | NULL | Nur php.ini |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM |
cgi.discard_path | "0" | PHP_INI_SYSTEM |
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM |
cgi.force_redirect | "1" | PHP_INI_SYSTEM |
cgi.nph | "0" | PHP_INI_SYSTEM |
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM |
cgi.rfc2616_headers | "0" | PHP_INI_ALL |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM |
fastcgi.logging | "1" | PHP_INI_SYSTEM |

Hier eine kurze Erklärung der Konfigurationsoptionen:

include_path string

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

Wenn PHP eine Datei einbinden soll, geht es alle Einträge im Include-Pfad einzeln durch. Zuerst wird der erste Pfad getestet und wenn die Datei dort nicht gefunden wird, wird der nächste Pfad überprüft, bis letztendlich entweder die Datei gefunden wird oder aber PHP ein E_WARNING oder E_ERROR zurückgibt. Der Include-Pfad kann auch zur Laufzeit mit Hilfe der Funktion set_include_path() geändert werden.

Beispiel #1 include_path unter Unix

include_path=".:/php/includes"

Beispiel #2 include_path unter Windows

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

Ein . in dieser Option ermöglicht, Dateien relativ zum aktuellen Verzeichnis einzubinden. Es ist jedoch effizienter, explizit include './Datei' zu schreiben, anstatt PHP zu zwingen jedes Mal den Include-Pfad zu nutzen.

Hinweis:

Auf ENV kann in .ini-Dateien ebenfalls zugegriffen werden. Daher ist es möglich, das Home-Verzeichnis durch ${LOGIN} und ${USER} zu referenzieren.

Umgebungsvariablen können zwischen verschiedenen Server APIs variieren, da diese Umgebungen unterschiedlich sein können.

Beispiel #3 include_path unter Unix unter Verwendung der ${USER}-Umgebungsvariablen

include_path = ".:${USER}/pear/php"

open_basedir string

Begrenzt die Dateien, auf die von PHP zugegriffen werden kann, auf einen bestimmten Ordner inklusive seiner Unterordner. Diese Direktive ist wirksam, EGAL, ob Safe Mode an oder aus ist.

Wenn ein Skript versucht, auf eine Datei zuzugreifen, zum Beispiel mit include oder fopen(), wird der Ort der Datei geprüft. Wenn die Datei nicht im Verzeichnisbaum liegt, der in open_basedir angegeben ist, wird PHP nicht auf die Datei zugreifen. Alle symbolischen Verknüpfungen werden aufgelöst, sodass es nicht möglich ist, diese Beschränkung mit einem Symlink zu umgehen. Wenn die Datei nicht existiert, kann die Verknüpfung nicht aufgelöst werden und der Dateiname wird mit (einem aufgelösten) open_basedir verglichen.

open_basedir kann sich auf mehr als nur Dateisystemfunktionen auswirken; zum Beispiel ist, wenn MySQL konfiguriert ist, den mysqlnd-Treiber zu verwenden, LOAD DATA INFILE von open_basedir betroffen. Ein Großteil der erweiterten Funktionalität von PHP verwendet open_basedir auf diese Weise.

Der spezielle Wert . gibt an, dass das Arbeitsverzeichnes des Skriptes das Basis-Verzeichnis ist. Dies ist gefährtlich, da das Arbeitsverzeichnis mit chdir() einfach geändert werden kann.

In der Konfigurationsdatei httpd.conf kann open_basedir genau wie jede andere Direktive mit "php_admin_value open_basedir none" geändert oder deaktiviert werden (z.B. für einige virtuelle Hosts).

Unter Windows müssen die Verzeichnisse mit einem Semikolon (;) getrennt werden, auf allen anderen Systemen mit einem Doppelpunkt. Wenn PHP als Apache-Modul läuft, erbt open_basedir seinen Pfad nun automatisch von übergeordneten Verzeichnissen.

Die mit open_basedir angegebene Einschränkung ist ein Verzeichnisname, kein Präfix.

Standardmäßig dürfen alle Dateien geöffnet werden.

Hinweis:

open_basedir kann zur Laufzeit weiter eingeschränkt werden. Das heißt, wenn open_basedir laut php.ini auf /www/ gesetzt ist, kann die Direktive zur Laufzeit mit ini_set() auf beispielsweise /www/tmp/ weiter begrenzt werden. Wenn mehrere Verzeichnisse aufgelistet werden, kann die PATH_SEPARATOR-Konstante als vom Betriebssystem unabhängiges Trennzeichen verwendet werden.

Hinweis:

Die Verwendung von open_basedir setzt realpath_cache_size auf 0 und deaktiviert somit den realpath-Cache.

doc_root string

Hier wird das Stammverzeichnis der PHP-Skripte angegeben. Diese Option wird nur verwendet, wenn ein Wert angegeben wird. Wenn PHP nicht mit FORCE_REDIRECT kompiliert wurde, sollten Sie doc_root setzen, wenn Sie PHP als CGI-Version laufen lassen (betrifft alle Webserver außer IIS). Die Alternative ist, die Option cgi.force_redirect zu verwenden.

user_ini.cache_ttl int

user_ini.filename string

user_dir string

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

extension_dir string

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

extension string

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

zend_extension string

Der Name einer dynamisch ladbaren Zend-Erweiterung (beispielsweise Xdebug), welche geladen werden soll, wenn PHP startet.

cgi.check_shebang_line bool

Kontrolliert, ob die CGI-Version von PHP nach einer Zeile, die mit #! (Shebang) beginnt, am Anfang des auszuführenden Skriptes sucht. Diese Zeile könnte notwendig sein, wenn das Skript sowohl die eigenständige Ausführung als auch die mittels PHP-CGI unterstützt. PHP überspringt diese Zeile im CGI-Modus und ignoriert ihren Inhalt, wenn diese Direktive eingeschaltet ist.

cgi.discard_path bool

Ist dies aktiviert, kann das PHP-CGI-Binary sicher außerhalb des Web-Wurzelverzeichnisses abgelegt werden, ohne das jemand in der Lage ist, die .htaccess-Sicherheit zu umgehen.

cgi.fix_pathinfo bool

Stellt reale PATH_INFO/PATH_TRANSLATED-Informationen für CGI zur Verfügung. Das frühere Verhalten von PHP war, PATH_TRANSLATED einfach auf SCRIPT_FILENAME zu setzen und nicht auf PATH_INFO. Für weitere Informationen zu PATH_INFO siehe die CGI-Spezifikation. Wenn Sie diesen Wert auf 1 setzen, hat dies zur Folge, dass PHP-CGI seine Pfade entsprechend der Spezifikation anpasst. Bei einem Wert von Null verhält sich PHP entsprechend den früheren Versionen. Standardmäßig ist es eingeschaltet. Es wird empfohlen, Ihre Skripte dahingehend anzupassen, statt PATH_TRANSLATED SCRIPT_FILENAME zu verwenden.

cgi.force_redirect bool

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

Hinweis:

Windows-Benutzer: Unter IIS muss diese Option ausgeschaltet werden. Für OmniHTTPD und Xitami gilt selbiges.

cgi.nph bool

Ist cgi.nph aktiviert, zwingt es CGI immer, Status: 200 für jede Anfrage zu senden.

cgi.redirect_status_env string

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

Hinweis:

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

cgi.rfc2616_headers int

Bestimmt, welcher Typ von Headern verwendet werden soll, wenn HTTP-Antwortcodes gesendet werden. Wenn diese Option auf 0 gesetzt ist, sendet PHP einen » RFC 3875-"Status:"-Header, der von Apache und anderen Webservern unterstützt wird. Ist sie auf 1 gesetzt, sendet PHP einen zu » RFC 2616 konformen Header.

Ist diese Option aktiviert, und Sie führen PHP in einer CGI-Umgebung (z.B. PHP-FPM) aus, sollten Sie keine üblichen RFC 2616 HTTP Status-Response-Header verwenden; stattdessen sollten Sie ihre RFC 3875-Pendants nutzen, z.B. sollten Sie anstelle von header("HTTP/1.0 404 Not found"); header("Status: 404 Not Found"); verwenden.

Wenn Sie diese Option nicht verstehen, lassen Sie den Wert auf 0.

fastcgi.impersonate string

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

fastcgi.logging bool

Schaltet SAPI-Logging an, wenn FastCGI verwendet wird. Standardmäßig ist Logging aktiviert.

Datei-Uploads

Konfigurationsoptionen für Datei-Uploads
Name | Standard | Veränderbar | Changelog
file_uploads | "1" | PHP_INI_SYSTEM |
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
max_input_nesting_level | 64 | PHP_INI_PERDIR |
max_input_vars | 1000 | PHP_INI_PERDIR |
upload_max_filesize | "2M" | PHP_INI_PERDIR |
max_file_uploads | 20 | PHP_INI_SYSTEM |

Hier eine kurze Erklärung der Konfigurationsoptionen:

file_uploads bool

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

upload_tmp_dir string

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

Wenn das hier angegebene Verzeichnis nicht beschreibbar ist, nutzt PHP stattdessen das Standardverzeichnis für temporöre Dateien. Wenn open_basedir genutzt wird, muss dieses Standardverzeichnis erlaubt sein, ansonsten schlagen Uploads fehl.

upload_max_filesize int

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

Wird ein int-Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben.
max_file_uploads int

Die maximale Anzahl an Dateien, die gleichzeitig hochgeladen werden kann. Seit PHP 5.3.4 zählen Upload-Formularfelder, die leer gelassen wurden nicht mehr zu diesem Limit.

Allgemeines SQL

Konfigurationsoptionen für allgemeines SQL
Name | Standard | Veränderbar | Changelog
sql.safe_mode | "0" | PHP_INI_SYSTEM | Entfernt in PHP 7.2.0

Hier eine kurze Erklärung der Konfigurationsoptionen:

sql.safe_mode bool

Wenn diese Option eingeschaltet wird, werden Datenbankverbindungsfunktionen, die Standardwerte vorgeben, diese Werte anstelle der angegebenen Parameter verwenden. Zu Informationen über Standardwerte können Sie einen Blick auf die Dokumentation der Verbindungsfunktionen der relevanten Datenbank werfen.

Warnung

Dieses Feature wurde von PHP 7.2.0 an ENTFERNT.

Windows-spezifisch

Windows-spezifische Optionen
Name | Standard | Veränderbar | Changelog
windows.show_crt_warning | "0" | PHP_INI_ALL |

Hier eine kurze Erklärung der Konfigurationsoptionen:

windows.show_crt_warning bool

Wenn diese Direktive angeschaltet ist, werden Windows CRT Warnings angezeigt.


Extension-Liste/-Kategorisierung

Inhaltsverzeichnis

  • Alphabetisch
  • Zugehörigkeit
  • Status

Dieser Anhang kategorisiert über 150 im PHP-Handbuch dokumentierte Extensions nach verschiedenen Kriterien.


Alphabetisch

  • Apache
  • APCu
  • Arrays
  • BC Math
  • Bzip2
  • Kalender
  • Classkit
  • Klassen/Objekte
  • COM
  • CSPRNG
  • Ctype
  • CUBRID
  • cURL
  • Datum/Uhrzeit
  • DBA
  • dBase
  • DB++
  • Direct-IO
  • Verzeichnis-Funktionen
  • DOM
  • Data Structures
  • Eio
  • Enchant
  • Fehlerbehandlung
  • Ev
  • Event
  • Programmausführung
  • Exif
  • Expect
  • FANN
  • FANN
  • FrontBase
  • FDF
  • Fileinfo
  • filePro
  • Dateisystem
  • Filter
  • FastCGI Process Manager
  • FTP
  • Function Handling
  • Gearman
  • Gender
  • GeoIP
  • Gettext
  • Gmagick
  • GMP
  • GnuPG
  • Hash
  • HRTime
  • Firebird/InterBase
  • IBM DB2
  • iconv
  • GD
  • ImageMagick
  • IMAP
  • PHP-Optionen/-Informationen
  • Ingres
  • Inotify
  • intl
  • JSON
  • LDAP
  • libxml
  • Lua
  • LZF
  • Mail
  • Mailparse
  • Math
  • Multibyte String
  • Mcrypt
  • Memcache
  • Memcached
  • Memtrack
  • Mhash
  • Misc.
  • Mongo
  • MongoDB\BSON
  • MongoDB\Driver
  • mqseries
  • MySQL (Original)
  • Mysqli
  • Mysqlnd
  • mysqlnd_memcache
  • mysqlnd_ms
  • mysqlnd_mux
  • mysqlnd_qc
  • mysqlnd_uh
  • Ncurses
  • Network
  • OAuth
  • OCI8
  • OPcache
  • OpenAL
  • OpenSSL
  • Ausgabekontrolle
  • Paradox
  • Parle
  • Password Hashing
  • PCNTL
  • PCRE
  • PDO
  • CUBRID (PDO)
  • MS SQL Server (PDO)
  • Firebird (PDO)
  • IBM (PDO)
  • Informix (PDO)
  • MySQL (PDO)
  • Oracle (PDO)
  • ODBC and DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)
  • MS SQL Server (PDO)
  • PostgreSQL
  • Phar
  • POSIX
  • Proctitle
  • PS
  • Pspell
  • pthreads
  • Quickhash
  • Radius
  • Rar
  • Readline
  • Recode
  • Reflection
  • POSIX Regex
  • RRD
  • ScoutAPM
  • Seaslog
  • Semaphore
  • Sessions
  • Shared Memory
  • SimpleXML
  • SNMP
  • SOAP
  • Sockets
  • Sodium
  • Solr
  • Sphinx
  • SPL
  • SQLite3
  • SQLSRV
  • ssdeep
  • SSH2
  • Statistics
  • Stomp
  • Streams
  • Zeichenketten
  • SVM
  • SVN
  • Swoole
  • Sync
  • Taint
  • TCP
  • Tidy
  • Tokenizer
  • tokyo_tyrant
  • Trader
  • UI
  • ODBC
  • uopz
  • URLs
  • V8js
  • Variablenbehandlung
  • Varnish
  • WDDX
  • Weakref
  • win32service
  • WinCache
  • wkhtmltox
  • xattr
  • xdiff
  • Xhprof
  • XML Parser
  • XMLDiff
  • XMLReader
  • XML-RPC
  • XMLWriter
  • XSL
  • Yaconf
  • Yaf
  • Yaml
  • Yar
  • YAZ
  • Zip
  • Zlib
  • 0MQ messaging
  • ZooKeeper


Zugehörigkeit

Kern-Extensions

Dies sind eigentlich keine Extensions. Sie sind Teil des PHP-Kerns und können nicht mittels Kompilierungsoptionen aus dem PHP-Binary weggelassen werden.

  • Arrays

  • Klassen/Objekte

  • CSPRNG

  • Datum/Uhrzeit

  • Verzeichnis-Funktionen

  • Fehlerbehandlung

  • Programmausführung

  • Dateisystem

  • Filter

  • Function Handling

  • Hash

  • PHP-Optionen/-Informationen

  • Mail

  • Math

  • Misc.

  • Network

  • Ausgabekontrolle

  • Password Hashing

  • Phar

  • Reflection

  • POSIX Regex

  • Sessions

  • SPL

  • Streams

  • Zeichenketten

  • Tokenizer

  • URLs

  • Variablenbehandlung

Mitgelieferte Extensions

Diese Extensions werden mit PHP ausgeliefert.

  • Apache

  • BC Math

  • Kalender

  • COM

  • Ctype

  • DBA

  • Exif

  • Fileinfo

  • FTP

  • iconv

  • GD

  • intl

  • JSON

  • Multibyte String

  • OPcache

  • PCNTL

  • PCRE

  • PDO

  • POSIX

  • Semaphore

  • Shared Memory

  • Sockets

  • SQLite3

  • XML-RPC

  • Zlib

Externe Extensions

Diese Extensions werden mit PHP ausgeliefert, aber um sie zu kompilieren, werden externe Bibliotheken benötigt.

  • Bzip2

  • cURL

  • dBase

  • DOM

  • Enchant

  • FrontBase

  • Gettext

  • GMP

  • Firebird/InterBase

  • IMAP

  • LDAP

  • libxml

  • Mcrypt

  • Mhash

  • MySQL (Original)

  • Mysqli

  • Mysqlnd

  • OCI8

  • OpenSSL

  • MS SQL Server (PDO)

  • Firebird (PDO)

  • MySQL (PDO)

  • Oracle (PDO)

  • ODBC and DB2 (PDO)

  • PostgreSQL (PDO)

  • SQLite (PDO)

  • PostgreSQL

  • Pspell

  • Readline

  • Recode

  • SimpleXML

  • SNMP

  • SOAP

  • Sodium

  • Tidy

  • ODBC

  • WDDX

  • XML Parser

  • XMLReader

  • XMLWriter

  • XSL

  • Zip

PECL-Extensions

Diese Extensions sind im » PECL verfügbar. Es existieren noch mehr PECL-Extensions, diese sind jedoch bisher nicht im PHP-Handbuch dokumentiert.

  • Classkit

  • CUBRID

  • DB++

  • Direct-IO

  • Eio

  • Ev

  • Event

  • Expect

  • FDF

  • filePro

  • Gearman

  • Gender

  • GeoIP

  • Gmagick

  • GnuPG

  • IBM DB2

  • ImageMagick

  • Ingres

  • Inotify

  • Lua

  • LuaSandbox

  • LZF

  • Mailparse

  • Memcache

  • Memcached

  • Memtrack

  • Mongo

  • mqseries

  • mysqlnd_memcache

  • mysqlnd_ms

  • mysqlnd_mux

  • mysqlnd_qc

  • mysqlnd_uh

  • Ncurses

  • OAuth

  • OpenAL

  • Paradox

  • CUBRID (PDO)

  • IBM (PDO)

  • Informix (PDO)

  • MS SQL Server (PDO)

  • Proctitle

  • PS

  • pthreads

  • Quickhash

  • Radius

  • Rar

  • RRD

  • runkit7

  • ScoutAPM

  • Seaslog

  • Solr

  • Sphinx

  • SQLSRV

  • ssdeep

  • SSH2

  • Statistics

  • Stomp

  • Swoole

  • SVM

  • SVN

  • Taint

  • TCP

  • tokyo_tyrant

  • Trader

  • V8js

  • Varnish

  • Weakref

  • win32service

  • WinCache

  • xattr

  • xdiff

  • Xhprof

  • Yaf

  • Yaml

  • YAZ

  • ZooKeeper


Status

Dieser Teil zählt Extensions auf, die nicht für den produktiven Einsatz gedacht sind - sie sind entweder zu "alt" (veraltet, nicht länger zur Verwendung empfohlen) oder zu "neu" (experimentell).

Veraltete Extensions

Diese Extensions sollten nicht mehr verwendet werden, normalerweise gibt es eine empfohlene andere Extension.

  • Memtrack

Experimentelle Extensions

Das Verhalten dieser Extensions - einschließlich der Namen ihrer Funktionen und alles andere über diese Extensions dokumentierte - kann sich in einer zukünftigen Version von PHP ohne Ankündigung ändern. Die Verwendung dieser Extensions geschieht auf eigenes Risko.

  • DB++

  • Hash

  • ImageMagick

  • Ncurses

  • Paradox

  • MS SQL Server (PDO)

  • Firebird (PDO)

  • Oracle (PDO)

  • PS

  • XML-RPC


Liste der Funktions-Aliase

Es gibt einige PHP-Funktionen, die unter mehr als einem Namen aufgerufen werden können. Für einige dieser Funktionen wie z.B. is_integer() und is_int() gibt es keinen bevorzugten Namen, so dass beide Varianten gleichberechtigt nebeneinander bestehen. Andererseits wurden viele Funktionen in der Vergangenheit im Rahmen von API-Änderungen oder aus anderen Gründen umbenannt und der alte Name nur zur Aufrechterhaltung der Rückwärtskompatibilität weiter unterstützt. Es ist daher nicht empfehlenswert, die ältere Namensform weiter zu benutzen, da dies auf lange Sicht zu nicht portablem Code führen kann. Die folgende Liste kann dabei helfen, alte Skripte auf einen aktuellen Stand zu bringen.

Aliase
Alias | Hauptfunktion | verwendete Extension
_ | gettext() | Gettext
chop | rtrim() | Base syntax
close | closedir() | Base syntax
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
die | exit() | Miscellaneous functions
diskfreespace | disk_free_space() | Filesystem
doubleval | floatval() | Base syntax
fbsql | fbsql_db_query() | FrontBase
fputs | fwrite() | Base syntax
gzputs | gzwrite() | Zlib
i18n_convert | mb_convert_encoding() | Multi-bytes Strings
i18n_discover_encoding | mb_detect_encoding() | Multi-bytes Strings
i18n_http_input | mb_http_input() | Multi-bytes Strings
i18n_http_output | mb_http_output() | Multi-bytes Strings
i18n_internal_encoding | mb_internal_encoding() | Multi-bytes Strings
i18n_ja_jp_hantozen | mb_convert_kana() | Multi-bytes Strings
i18n_mime_header_decode | mb_decode_mimeheader() | Multi-bytes Strings
i18n_mime_header_encode | mb_encode_mimeheader() | Multi-bytes Strings
imap_create | imap_createmailbox() | IMAP
imap_fetchtext | imap_body() | IMAP
imap_getmailboxes | imap_list_full() | IMAP
imap_getsubscribed | imap_lsub_full() | IMAP
imap_header | imap_headerinfo() | IMAP
imap_listmailbox | imap_list() | IMAP
imap_listsubscribed | imap_lsub() | IMAP
imap_rename | imap_renamemailbox() | IMAP
imap_scan | imap_listscan() | IMAP
imap_scanmailbox | imap_listscan() | IMAP
ini_alter | ini_set() | Base syntax
is_double | is_float() | Base syntax
is_integer | is_int() | Base syntax
is_long | is_int() | Base syntax
is_real | is_float() | Base syntax
is_writeable | is_writable() | Base syntax
join | implode() | Base syntax
key_exists | array_key_exists() | Base syntax
ldap_close | ldap_unbind() | LDAP
magic_quotes_runtime | set_magic_quotes_runtime() | Base syntax
mbstrcut | mb_strcut() | Multi-bytes Strings
mbstrlen | mb_strlen() | Multi-bytes Strings
mbstrpos | mb_strpos() | Multi-bytes Strings
mbstrrpos | mb_strrpos() | Multi-bytes Strings
mbsubstr | mb_substr() | Multi-bytes Strings
mysql | mysql_db_query() | MySQL
mysql_createdb | mysql_create_db() | MySQL
mysql_db_name | mysql_result() | MySQL
mysql_dbname | mysql_result() | MySQL
mysql_dropdb | mysql_drop_db() | MySQL
mysql_fieldflags | mysql_field_flags() | MySQL
mysql_fieldlen | mysql_field_len() | MySQL
mysql_fieldname | mysql_field_name() | MySQL
mysql_fieldtable | mysql_field_table() | MySQL
mysql_fieldtype | mysql_field_type() | MySQL
mysql_freeresult | mysql_free_result() | MySQL
mysql_listdbs | mysql_list_dbs() | MySQL
mysql_listfields | mysql_list_fields() | MySQL
mysql_listtables | mysql_list_tables() | MySQL
mysql_numfields | mysql_num_fields() | MySQL
mysql_numrows | mysql_num_rows() | MySQL
mysql_selectdb | mysql_select_db() | MySQL
mysql_tablename | mysql_result() | MySQL
ociassignelem | OCICollection::assignElem | OCI8
ocibindbyname | oci_bind_by_name() | OCI8
ocicancel | oci_cancel() | OCI8
ocicloselob | OCILob::close | OCI8
ocicollappend | OCICollection::append | OCI8
ocicollassign | OCICollection::assign | OCI8
ocicollmax | OCICollection::max | OCI8
ocicollsize | OCICollection::size | OCI8
ocicolltrim | OCICollection::trim | OCI8
ocicolumnisnull | oci_field_is_null() | OCI8
ocicolumnname | oci_field_name() | OCI8
ocicolumnprecision | oci_field_precision() | OCI8
ocicolumnscale | oci_field_scale() | OCI8
ocicolumnsize | oci_field_size() | OCI8
ocicolumntype | oci_field_type() | OCI8
ocicolumntyperaw | oci_field_type_raw() | OCI8
ocicommit | oci_commit() | OCI8
ocidefinebyname | oci_define_by_name() | OCI8
ocierror | oci_error() | OCI8
ociexecute | oci_execute() | OCI8
ocifetch | oci_fetch() | OCI8
ocifetchinto | oci_fetch_array(), oci_fetch_row(), oci_fetch_assoc(), oci_fetch_object() | OCI8
ocifetchstatement | oci_fetch_all() | OCI8
ocifreecollection | OCICollection::free | OCI8
ocifreecursor | oci_free_statement() | OCI8
ocifreedesc | oci_free_descriptor() | OCI8
ocifreestatement | oci_free_statement() | OCI8
ocigetelem | OCICollection::getElem | OCI8
ociinternaldebug | oci_internal_debug() | OCI8
ociloadlob | OCILob::load | OCI8
ocilogon | oci_connect() | OCI8
ocinewcollection | oci_new_collection() | OCI8
ocinewcursor | oci_new_cursor() | OCI8
ocinewdescriptor | oci_new_descriptor() | OCI8
ocinlogon | oci_new_connect() | OCI8
ocinumcols | oci_num_fields() | OCI8
ociparse | oci_parse() | OCI8
ocipasswordchange | oci_password_change() | OCI8
ociplogon | oci_pconnect() | OCI8
ociresult | oci_result() | OCI8
ocirollback | oci_rollback() | OCI8
ocisavelob | OCILob::save | OCI8
ocisavelobfile | OCILob::import | OCI8
ociserverversion | oci_server_version() | OCI8
ocisetprefetch | oci_set_prefetch() | OCI8
ocistatementtype | oci_statement_type() | OCI8
ociwritelobtofile | OCILob::export | OCI8
ociwritetemporarylob | OCILob::writeTemporary | OCI8
odbc_do | odbc_exec() | ODBC
odbc_field_precision | odbc_field_len() | ODBC
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Base syntax
recode | recode_string() | Recode
show_source | highlight_file () | Base syntax
sizeof | count() | Base syntax
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | Base syntax
xptr_new_context | xpath_new_context() |


Liste der reservierten Wörter

Inhaltsverzeichnis

  • Liste der Schlüsselwörter
  • Vordefinierte Klassen
  • Vordefinierte Konstanten
  • Liste weiterer reservierter Wörter

Die folgenden Listen enthalten in PHP vordefinierten Bezeichner. Sie sollten die reservierten Wörter aus diesen Listen keinesfalls in eigenen Skripten als Bezeichner benutzen, es sei denn, es wird ausdrücklich erlaubt. Die Listen enthalten Schlüsselworte, vordefinierte Variablen, Konstanten und Klassennamen. Beachten Sie bitte auch, dass diese Listen nicht unbedingt vollständig sind.


Liste der Schlüsselwörter

Die folgenden Begriffe haben in PHP eine spezielle Bedeutung. Einige von ihnen sehen aus wie Funktionen, Konstanten usw., in Wirklichkeit handelt es sich aber um Sprachkonstrukte. Keines der folgenden Wörter kann als Name für eine benutzerdefinierte Konstante, Klasse, Funktion oder Methode genutzt werden. Die Nutzung als Variablenname ist in der Regel möglich, könnte aber Verwirrung stiften.

Von PHP 7.0.0 an sind diese Schlüsselwörter als Eigenschafts-, Konstanten- und Methodennamen von Klassen, Interfaces und Traits erlaubt, außer dass class nicht als Konstantenname verwendet werden darf.

PHP Schlüsselworte
__halt_compiler() | abstract | and | array() | as
break | callable (von PHP 5.4 an) | case | catch | class
clone | const | continue | declare | default
die() | do | echo | else | elseif
empty() | enddeclare | endfor | endforeach | endif
endswitch | endwhile | eval() | exit() | extends
final | finally (von PHP 5.5 an) | fn (as of PHP 7.4) | for | foreach
function | global | goto (von PHP 5.3 an) | if | implements
include | include_once | instanceof | insteadof (von PHP 5.4 an) | interface
isset() | list() | namespace (von PHP 5.3 an) | new | or
print | private | protected | public | require
require_once | return | static | switch | throw
trait (von PHP 5.4 an) | try | unset() | use | var
while | xor | yield (von PHP 5.5 an) | yield from (as of PHP 7.0) |
Kompilierzeit-Konstanten
__CLASS__ | __DIR__ (von PHP 5.3 an) | __FILE__ | __FUNCTION__ | __LINE__ | __METHOD__
__NAMESPACE__ (von PHP 5.3 an) | __TRAIT__ (von PHP 5.4 an) |  |  |  |


Vordefinierte Klassen

Dieser Abschnitt listet vordefierte Klassen auf, welche von PHP selbst definiert werden. Von Erweiterungen definierte Klassen werden in den jeweiligen Abschnitten des Manuals beschrieben.

Standardmäßig definierte Klassen

Diese Klassen sind im Standard-Funktionsumfang einer PHP-Distribution enthalten.

Directory
Die Klasse, die von dir() instanziiert wird.
stdClass
Erstellt beim Casten zu einem Objekt.
__PHP_Incomplete_Class
Wird unter Umständen von unserialize() erzeugt.

Vordefinierte Klassen von PHP 5 an

Diese zusätzlichen vordefinierten Klassen wurden mit PHP 5.0.0 eingeführt.

Exception
ErrorException
Verfügbar seit PHP 5.1.0.
php_user_filter

Closure

Die vordefinierte finale Klasse Closure wurde in PHP 5.3.0 eingeführt. Sie wird benutzt um anonyme Funktionen darzustellen.

Weitere Informationen sind der Beschreibung der Klasse zu entnehmen.

Generator

Die vordefinierte finale Klasse Generator wurde in PHP 5.5.0 eingeführt. Sie wird benutzt um Generatoren darzustellen.

Weitere Informationen sind der Beschreibung der Klasse zu entnehmen.

Vordefinierte Interfaces und Klassen von PHP 7 an

Diese zusätzlichen vordefinierten Interfaces und Klassen wurden in PHP 7.0.0 eingeführt.

ArithmeticError
AssertionError
DivisionByZeroError
Error
Throwable
ParseError
TypeError

Spezielle Klassen

Die folgenden Bezeichner können nicht als Klassenname genutzt werden, da sie eine besondere Bedeutung haben.

self
Aktuelle Klasse.
static
Aktuelle Klasse zur Laufzeit.
parent
Elternklasse.


Vordefinierte Konstanten

Vordefinierte Core-Konstanten

Diese Konstanten werden vom PHP-Core definiert. Das beinhaltet PHP, die Zend-Engine- und SAPI-Module.

PHP_VERSION (string)
Die aktuelle PHP-Version als Zeichenkette im Format "Hauptversion.Unterversion.Release[Extra]".
PHP_MAJOR_VERSION (int)
Die aktuelle "Hauptversion" von PHP als Ganzzahl (z.B. int(5) bei Version "5.2.7-extra"). Verfügbar seit PHP 5.2.7.
PHP_MINOR_VERSION (int)
Die aktuelle "Unterversion" von PHP als Ganzzahl (z.B. int(2) bei Version "5.2.7-extra"). Verfügbar seit PHP 5.2.7.
PHP_RELEASE_VERSION (int)
Die aktuelle "Release"-Version von PHP als Ganzzahl (z.B. int(7) bei Version "5.2.7-extra"). Verfügbar seit PHP 5.2.7.
PHP_VERSION_ID (int)
Die aktuelle PHP-Version als Ganzzahl. Nützlich beispielsweise für Versionsvergleiche (z.B. int(50207) bei Version "5.2.7-extra"). Verfügbar seit PHP 5.2.7.
PHP_EXTRA_VERSION (string)
Die aktuelle "Extra"-Versionsnummer von PHP als Zeichenkette (z.B. '-extra' bei Version "5.2.7-extra"). Wird oft von Distributionsanbietern zur Angabe einer Paketversion verwendet. Verfügbar seit PHP 5.2.7.
PHP_ZTS (int)
Verfügbar seit PHP 5.2.7.
PHP_DEBUG (int)
Verfügbar seit PHP 5.2.7.
PHP_MAXPATHLEN (int)
Die maximale Länge von Dateinamen (inklusive Pfad), die von diesem Build von PHP unterstützt wird. Verfügbar seit PHP 5.3.0.
PHP_OS (string)
Das Betriebsystem, für das PHP kompiliert wurde.
PHP_OS_FAMILY (string)
Die Betriebsystemfamilie, für die PHP kompiliert wurde. Eins von 'Windows', 'BSD', 'Darwin', 'Solaris', 'Linux' oder 'Unknown' (unbekannt). Verfügbar ab PHP 7.2.0.
PHP_SAPI (string)
Die Server-API dieses Builds von PHP. Siehe auch php_sapi_name().
PHP_EOL (string)
Das korrekte Zeilenendezeichen für diese Plattform. Verfügbar seit PHP 5.0.2.
PHP_INT_MAX (int)
Die größtmögliche Ganzzahl die von diesem Build von PHP unterstützt wird. Üblicherweise int(2147483647) auf 32-bit Systemen und int(9223372036854775807) auf 64-bit Systemen. Verfügbar seit PHP 5.0.5.
PHP_INT_MIN (int)
Die kleinsmögliche Ganzzahl die von diesem Build von PHP unterstützt wird. Üblicherweise int(-2147483648) auf 32-bit Systemen und 3 int(-922337206854775808) auf 64-bit Systemen. Verfügbar seit PHP 7.0.0. Üblicherweise ist PHP_INT_MIN === ~PHP_INT_MAX.
PHP_INT_SIZE (int)
Die Größe einer Ganzzahl in Bytes in diesem Build von PHP. Verfügbar seit PHP 5.0.5.
PHP_FLOAT_DIG (int)
Die Anzahl von Dezimalstellen, die zu float und zurück ohne Genauigkeitsverlust gerundet werden können. Verfügbar ab PHP 7.2.0.
PHP_FLOAT_EPSILON (float)
Die kleinste darstellbare positive Zahl x, so dass x + 1.0 != 1.0. Verfügbar ab PHP 7.2.0.
PHP_FLOAT_MIN (float)
Die kleinste darstellbare positive Fließkommazahl. Um die kleinste darstellbare negative Fließkommazahl zu erhalten, ist - PHP_FLOAT_MAX zu verwenden. Verfügbar ab PHP 7.2.0.
PHP_FLOAT_MAX (float)
Die größte darstellbare Fließkommazahl. Verfügbar ab PHP 7.2.0.
DEFAULT_INCLUDE_PATH (string)
PEAR_INSTALL_DIR (string)
PEAR_EXTENSION_DIR (string)
PHP_EXTENSION_DIR (string)
PHP_PREFIX (string)
Der Wert, der für "--prefix" bei der Konfiguration angegeben wurde.
PHP_BINDIR (string)
Gibt an, wohin die Binärdateien installiert wurden.
PHP_BINARY (string)
Gibt den Pfad der Binärdatei von PHP zur Skriptlaufzeit an. Verfügbar seit PHP 5.4.
PHP_MANDIR (string)
Gibt den Ort an, an dem die manpages installiert wurden. Verfügbar seit PHP 5.3.7.
PHP_LIBDIR (string)
PHP_DATADIR (string)
PHP_SYSCONFDIR (string)
PHP_LOCALSTATEDIR (string)
PHP_CONFIG_FILE_PATH (string)
PHP_CONFIG_FILE_SCAN_DIR (string)
PHP_SHLIB_SUFFIX (string)
Die Dateiendung für dynamische Bibliotheken der Build- Plattform, beispielsweise "so" (die meisten Unixe) oder "dll" (Windows").
PHP_FD_SETSIZE (string)
Die Höchstanzahl von Dateideskriptoren für select Systemaufrufe. Verfügbar ab PHP 7.1.0.
E_ERROR (int)
Fehler-Konstante
E_WARNING (int)
Fehler-Konstante
E_PARSE (int)
Fehler-Konstante
E_NOTICE (int)
Fehler-Konstante
E_CORE_ERROR (int)
Fehler-Konstante
E_CORE_WARNING (int)
Fehler-Konstante
E_COMPILE_ERROR (int)
Fehler-Konstante
E_COMPILE_WARNING (int)
Fehler-Konstante
E_USER_ERROR (int)
Fehler-Konstante
E_USER_WARNING (int)
Fehler-Konstante
E_USER_NOTICE (int)
Fehler-Konstante
E_RECOVERABLE_ERROR (int)
Fehler-Konstante. Verfügbar seit PHP 5.2.0
E_DEPRECATED (int)
Fehler-Konstante Verfügbar seit PHP 5.3.0
E_USER_DEPRECATED (int)
Fehler-Konstante Verfügbar seit PHP 5.3.0
E_ALL (int)
Fehler-Konstante
E_STRICT (int)
Fehler-Konstante
__COMPILER_HALT_OFFSET__ (int)
Verfügbar seit PHP 5.1.0
true (bool)
Siehe Boolesche Werte.
false (bool)
Siehe Boolesche Werte.
null (null)
Siehe Null.
PHP_WINDOWS_EVENT_CTRL_C (int)
Ein Windows CTRL+C Ereignis. Verfügbar von PHP 7.4.0 an (nur Windows).
PHP_WINDOWS_EVENT_CTRL_BREAK (int)
Ein Windows CTRL+BREAK Ereignis. Verfügbar von PHP 7.4.0 an (nur Windows).

Siehe auch: Magische Konstanten.

Vordefinierte Standard-Konstanten

Alle Konstanten der Kern-Extensions sind in PHP automatisch definiert.


Liste weiterer reservierter Wörter

Die folgenden Wörter können nicht verwendet werden, um eine Klasse, ein Interface oder einen Trait zu benennen, und sie können ebenfalls nicht in Namespaces verwendet werden.

Reservierte Wörter
int (von PHP 7 an) | float (von PHP 7 an) | bool (von PHP 7 an) | string (von PHP 7 an)
true (von PHP 7 an) | false (von PHP 7 an) | null (von PHP 7 an) | void (von PHP 7.1 an)
iterable (von PHP 7.1 an) | object (von PHP 7.2 an)

Die folgende Liste von Wörtern war weich reserviert. Obgleich sie noch immer als Klassen-, Interface- und Traitname verwendet werden können (sowie in Namensräumen), ist deren Verwendung unbedingt zu vermeiden, da sie in zukünftigen PHP-Versionen verwendet werden können.

Weich reservierte Wörter
resource (von PHP 7 an) mixed (von PHP 7 an) numeric (von PHP 7 an)


Liste der Ressource-Typen

Die folgende Liste enthält Funktionen, die PHP-Ressourcen anlegen, nutzen und wieder entfernen. Die Funktion is_resource() kann benutzt werden, um zu prüfen, ob es sich bei einem Variablenwert um eine Ressource handelt, und mit Hilfe der Funktion get_resource_type() kann der genaue Typ der Ressource ermittelt werden.

Ressource-Typen
Ressource-Typ-Name | Erzeugt von | Genutzt von | Entfernt von | Definition
AddressInfo | socket_addrinfo_lookup() | socket_addrinfo_bind(), socket_addrinfo_connect(), socket_addrinfo_explain(), | keine | AddressInfo (Sockets Extension)
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Bzip2-komprimierte Datei
cubrid connection | cubrid_connect() cubrid_connect_with_url() | cubrid_col_get() cubrid_col_size() cubrid_commit() cubrid_drop() cubrid_execute() cubrid_get_autocommit() cubrid_get_charset() cubrid_get_class_name() cubrid_get_db_parameter() cubrid_get_server_info() cubrid_get() cubrid_insert_id() cubrid_is_instance() cubrid_lob_export() cubrid_lob_get() cubrid_lob_send() cubrid_lock_read() cubrid_lock_write() cubrid_prepare() cubrid_put() cubrid_rollback() cubrid_schema() cubrid_seq_drop() cubrid_seq_insert() cubrid_seq_put() cubrid_set_add() cubrid_set_autocommit() cubrid_set_db_parameter() cubrid_set_drop() cubrid_affected_rows() cubrid_client_encoding() cubrid_errno() cubrid_error() cubrid_list_dbs() cubrid_ping() cubrid_query() cubrid_real_escape_string() cubrid_lob2_new() | cubrid_close() cubrid_disconnect() | Verbindung zur CUBRID Datenbank
persistent cubrid connection | cubrid_pconnect() cubrid_pconnect_with_url() | cubrid_col_get() cubrid_col_size() cubrid_commit() cubrid_drop() cubrid_execute() cubrid_get_autocommit() cubrid_get_charset() cubrid_get_class_name() cubrid_get_db_parameter() cubrid_get_server_info() cubrid_get() cubrid_insert_id() cubrid_is_instance() cubrid_lob_export() cubrid_lob_get() cubrid_lob_send() cubrid_lock_read() cubrid_lock_write() cubrid_prepare() cubrid_put() cubrid_rollback() cubrid_schema() cubrid_seq_drop() cubrid_seq_insert() cubrid_seq_put() cubrid_set_add() cubrid_set_autocommit() cubrid_set_db_parameter() cubrid_set_drop() cubrid_affected_rows() cubrid_client_encoding() cubrid_errno() cubrid_error() cubrid_list_dbs() cubrid_ping() cubrid_query() cubrid_real_escape_string() | Persistente Verbindung zur CUBRID Datenbank
cubrid request | cubrid_prepare() cubrid_execute() cubrid_query() cubrid_unbuffered_query() | cubrid_bind() cubrid_column_names() cubrid_column_types() cubrid_current_oid() cubrid_execute() cubrid_free_result() cubrid_get_query_timeout() cubrid_move_cursor() cubrid_next_result() cubrid_num_cols() cubrid_num_rows() cubrid_set_query_timeout() cubrid_data_seek() cubrid_fetch_array() cubrid_fetch_assoc() cubrid_fetch_field() cubrid_fetch_lengths() cubrid_fetch_object() cubrid_fetch_row() cubrid_field_flags() cubrid_field_len() cubrid_field_name() cubrid_field_seek() cubrid_field_table() cubrid_field_type() cubrid_num_fields() cubrid_result() cubrid_lob2_bind() | cubrid_close_prepare() cubrid_close_request() | CUBRID Anfrage
cubrid lob | cubrid_lob_get() | cubrid_lob_export() cubrid_lob_send() cubrid_lob_size() | cubrid_lob_close() | keine
cubrid lob2 | cubrid_lob2_new() cubrid_fetch() cubrid_fetch_row() cubrid_fetch_array() cubrid_fetch_assoc() cubrid_fetch_object() | cubrid_lob2_export() cubrid_lob2_import() cubrid_lob2_read() cubrid_lob2_write() cubrid_lob2_tell() cubrid_lob2_tell64() cubrid_lob2_seek() cubrid_lob2_seek64() cubrid_lob2_size() cubrid_lob2_size64() | cubrid_lob2_close() | keine
curl | curl_copy_handle(), curl_init() | curl_copy_handle(), curl_errno(), curl_error(), curl_exec(), curl_getinfo(), curl_setopt() | curl_close() | cURL handle
curl_multi | curl_multi_init() | curl_multi_errno(), curl_multi_exec(), curl_multi_info_read(), curl_multi_remove_handle(), curl_multi_select(), curl_multi_setopt() | curl_multi_close() | cURL multi handle
curl_share | curl_share_init() | curl_share_errno(), curl_share_setopt() | curl_share_close() | cURL share handle
dba | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | Verweis auf eine DBA-Datenbank
dba persistent | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | keine | Persistenter Verweis auf eine DBA-Datenbank
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() | Verweis auf eine Dbase-Datenbank
dbx_link_object | dbx_connect() | dbx_query() | dbx_close() | dbx connection
dbx_result_object | dbx_query() | keine | dbx result
enchant_broker | enchant_broker_init() | enchant_broker_describe(), enchant_broker_dict_exists(), enchant_broker_get_dict_path(), enchant_broker_get_error(), enchant_broker_list_dicts(), enchant_broker_set_dict_path(), enchant_broker_set_ordering() | enchant_broker_free() | Enchant broker (vor PHP 8.0.0)
enchant_dict | enchant_broker_request_dict() enchant_broker_request_pwl_dict() | enchant_dict_add_to_personal(), enchant_dict_add_to_session(), enchant_dict_check(), enchant_dict_describe(), enchant_dict_get_error(), enchant_dict_is_in_session(), enchant_dict_store_replacement(), enchant_dict_suggest() | enchant_broker_free_dict() | Enchant dictionary (vor PHP 8.0.0)
fbsql link | fbsql_change_user(), fbsql_connect() | fbsql_autocommit(), fbsql_blob_size(), fbsql_clob_size(), fbsql_commit(), fbsql_change_user(), fbsql_create_blob(), fbsql_create_db(), fbsql_create_clob(), fbsql_data_seek(), fbsql_database_password(), fbsql_database(), fbsql_db_query(), fbsql_db_status(), fbsql_drop_db(), fbsql_errno(), fbsql_error(), fbsql_get_autostart_info(), fbsql_hostname(), fbsql_insert_id(), fbsql_list_dbs(), fbsql_password(), fbsql_read_blob(), fbsql_read_clob(), fbsql_rollback(), fbsql_select_db(), fbsql_set_password(), fbsql_set_transaction(), fbsql_start_db(), fbsql_stop_db(), fbsql_username() | fbsql_close() | Verweis auf eine fbsql-Datenbank
fbsql plink | fbsql_change_user(), fbsql_pconnect() | fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() | keine | Persistenter Link auf eine fbsql-Datenbank
fbsql result | fbsql_db_query(), fbsql_list_dbs(), fbsql_query(), fbsql_list_fields(), fbsql_list_tables(), fbsql_tablename() | fbsql_affected_rows(), fbsql_fetch_array(), fbsql_fetch_assoc(), fbsql_fetch_field(), fbsql_fetch_lengths(), fbsql_fetch_object(), fbsql_fetch_row(), fbsql_field_flags(), fbsql_field_name(), fbsql_field_len(), fbsql_field_seek(), fbsql_field_table(), fbsql_field_type(), fbsql_next_result(), fbsql_num_fields(), fbsql_num_rows(), fbsql_result(), fbsql_num_rows() | fbsql_free_result() | fbsql result
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-Datei
ftp | ftp_connect(), ftp_ssl_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_alloc(), ftp_chmod(), ftp_exec(), ftp_get_option(), ftp_nb_continue(), ftp_nb_fget(), ftp_nb_fput(), ftp_nb_get(), ftp_nb_put(), ftp_raw(), ftp_set_option() | ftp_close() | FTP-Verbindung
gd | imagecreate(), imagecreatefromgd(), imagecreatefromgd2(), imagecreatefromgd2part(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatefromxbm(), imagecreatefromxpm(), imagecreatetruecolor(), imagerotate() | 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(), imagerotate(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness(), image2wbmp(), imagealphablending(), imageantialias(), imagecolorallocatealpha(), imagecolorclosesthwb(), imagecolordeallocate(), imagecolormatch(), imagefilter(), imagefttext(), imagegd(), imagegd2(), imageistruecolor(), imagelayereffect(), imagepalettecopy(), imagesavealpha(), imagesetstyle(), imagexbm() | imagedestroy() | GD-Image
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | keine | GD-Zeichensatz
GMP-Integer | gmp_init() | gmp_intval(), gmp_strval(), gmp_add(), gmp_sub(), gmp_mul(), gmp_div_q(), gmp_div_r(), gmp_div_qr(), gmp_div(), gmp_mod(), gmp_divexact(), gmp_cmp(), gmp_neg(), gmp_abs(), gmp_sign(), gmp_fact(), gmp_sqrt(), gmp_sqrtrm(), gmp_perfect_square(), gmp_pow(), gmp_powm(), gmp_prob_prime(), gmp_gcd(), gmp_gcdext(), gmp_invert(), gmp_legendre(), gmp_jacobi(), gmp_random(), gmp_and(), gmp_or(), gmp_xor(), gmp_setbit(), gmp_clrbit(), gmp_scan0(), gmp_scan1(), gmp_popcount(), gmp_hamdist() | keine | GMP-Number
imap | imap_open() | imap_append(), imap_body(), imap_check(), imap_createmailbox(), imap_delete(), imap_deletemailbox(), imap_expunge(), imap_fetchbody(), imap_fetchstructure(), imap_headerinfo(), imap_header(), imap_headers(), imap_listmailbox(), imap_getmailboxes(), imap_get_quota(), imap_status(), imap_listsubscribed(), imap_set_quota(), imap_set_quota(), imap_getsubscribed(), imap_mail_copy(), imap_mail_move(), imap_num_msg(), imap_num_recent(), imap_ping(), imap_renamemailbox(), imap_reopen(), imap_subscribe(), imap_undelete(), imap_unsubscribe(), imap_scanmailbox(), imap_mailboxmsginfo(), imap_fetchheader(), imap_uid(), imap_msgno(), imap_search(), imap_fetch_overview() | imap_close() | Verweis auf einen IMAP- oder POP3-Server
ingres | ingres_connect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | ingres_close() | Verweis auf eine ingresII-Datenbank
ingres persistent | ingres_pconnect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | keine | Persistenter Verweis auf eine ingresII-Datenbank
interbase blob | ibase_blob_create(), ibase_blob_import(), ibase_blob_open() | ibase_blob_add(), ibase_blob_cancel(), ibase_blob_echo(), ibase_blob_get(), ibase_blob_info() | ibase_blob_close()
interbase link | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Verweis auf Interbase-Datenbank
interbase link persistent | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | keine | Persistenter Verweis auf eine Interbase-Datenbank
interbase query | ibase_prepare() | ibase_execute() | ibase_free_query() | Interbase Abfrage
interbase result | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Interbase-Ergebnis
interbase transaction | ibase_trans() | ibase_commit() | ibase_rollback() | Interbase-Transaktion
ldap link | ldap_connect(), ldap_search() | ldap_count_entries(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_next_attribute(), ldap_next_entry() | ldap_close() | ldap-Verbindung
ldap result | ldap_read() | ldap_add(), ldap_compare(), ldap_bind(), ldap_count_entries(), ldap_delete(), ldap_errno(), ldap_error(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_get_option(), ldap_list(), ldap_modify(), ldap_mod_add(), ldap_mod_replace(), ldap_next_attribute(), ldap_next_entry(), ldap_mod_del(), ldap_set_option(), ldap_unbind() | ldap_free_result() | ldap-Suchergebnis
ldap result entry
mysql link | mysql_connect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | mysql_close() | Verweis auf eine MySQL-Datenbank
mysql link persistent | mysql_pconnect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | keine | Persistenter Verweis auf eine MySQL-Datenbank
mysql result | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_processes(), mysql_list_tables(), mysql_query(), mysql_unbuffered_query() | mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() | mysql_free_result() | MySQL-Ergebnis
oci8 collection | oci_new_collection() | OCICollection::append(), OCICollection::assign(), OCICollection::assignElem(), OCICollection::getElem(), OCICollection::max(), OCICollection::size(), OCICollection::trim() | OCICollection::free() | Oracle Collection
oci8 connection | oci_connect(), oci_pconnect(), oci_new_connect() | oci_commit(), oci_error(), oci_new_cursor(), oci_parse(), oci_password_change() oci_rollback(), oci_server_version(), oci_set_action(), oci_set_client_identifier(), oci_set_client_info(), oci_set_module_name() | oci_close() | Verbindung zur Oracle-Datenbank
oci8 lob | oci_new_descriptor() | OCILob::append(), OCILob::close(), OCILob::eof(), OCILob::erase(), OCILob::export(), OCILob::flush(), OCILob::getBuffering(), OCILob::import(), OCILob::load(), OCILob::read(), OCILob::rewind(), OCILob::save(), OCILob::saveFile(), OCILob::seek(), OCILob::setBuffering(), OCILob::size(), OCILob::tell(), OCILob::truncate(), OCILob::write(), OCILob::writeTemporary(), OCILob::writeToFile(), oci_lob_copy(), oci_lob_is_equal() | OCILob::free() | Oracle Large Objects
oci8 statement | oci_parse() oci_new_cursor() | oci_bind_array_by_name(), oci_bind_by_name(), oci_cancel(), oci_define_by_name(), oci_error() oci_execute(), oci_fetch_all(), oci_fetch_array(), oci_fetch_assoc(), oci_fetch_object(), oci_fetch_row(), oci_fetch(), oci_field_is_null(), oci_field_name(), oci_field_precision(), oci_field_scale(), oci_field_size(), oci_field_type_raw(), oci_field_type(), oci_num_fields(), oci_num_rows(), oci_result(), oci_set_prefetch(), oci_statement_type() | oci_free_statement() | Oracle-Cursor
odbc link | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | odbc_close() | Verweis auf eine ODBC-Datenbank
odbc link persistent | odbc_pconnect() | 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() | keine | Persistenter Verweis auf eine ODBC-Datenbank
odbc result | odbc_prepare() | odbc_binmode(), odbc_cursor(), odbc_execute(), odbc_fetch_into(), odbc_fetch_row(), odbc_field_name(), odbc_field_num(), odbc_field_type(), odbc_field_len(), odbc_field_precision(), odbc_field_scale(), odbc_longreadlen(), odbc_num_fields(), odbc_num_rows(), odbc_result(), odbc_result_all(), odbc_setoption() | odbc_free_result() | ODBC-Ergebnis
birdstep link | Link zur Birdstep Datenbank (vor PHP 7.3.0)
birdstep result | Birdstep result (vor PHP 7.3.0)
OpenSSL key | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | OpenSSL Schlüssel
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Public Key
pgsql large object | pg_lo_open() | pg_lo_open(), pg_lo_create(), pg_lo_read(), pg_lo_read_all(), pg_lo_seek(), pg_lo_tell(), pg_lo_unlink(), pg_lo_write() | pg_lo_close() | PostgreSQL Large Object
pgsql link | pg_connect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | Verweis auf eine PostgreSQL Datenbank
pgsql link persistent | pg_pconnect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | keine | Persistenter Verweis auf eine PostgreSQL Datenbank
pgsql result | pg_execute(), pg_query(), pg_query_params(), pg_get_result() | pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() | pg_free_result() | PostgreSQL-Ergebnis
pgsql string
pspell | pspell_new(), pspell_new_config(), pspell_new_personal() | pspell_add_to_personal(), pspell_add_to_session(), pspell_check(), pspell_clear_session(), pspell_config_ignore(), pspell_config_mode(), pspell_config_personal(), pspell_config_repl(), pspell_config_runtogether(), pspell_config_save_repl(), pspell_save_wordlist(), pspell_store_replacement(), pspell_suggest() | keine | pspell Wörterbuch
pspell config | pspell_config_create() | pspell_new_config() | keine | pspell Konfiguration
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close() | Handle eines Shared-Memory-Blocks (vor PHP 8.0.0)
Socket | socket_accept(), socket_addrinfo_bind(), socket_addrinfo_connect(), socket_create(), socket_create_listen(), socket_import_stream(), socket_wsaprotocol_info_import() | socket_accept(), socket_bind(), socket_clear_error(), socket_connect(), socket_get_option(), socket_getpeername(), socket_getsockname(), socket_last_error(), socket_listen(), socket_read(), socket_recv(), socket_recvfrom(), socket_recvmsg(), socket_select(), socket_send(), socket_sendmsg(), socket_sendto(), socket_set_block(), socket_set_nonblock(), socket_set_option(), socket_shutdown(), socket_write(), socket_wsaprotocol_info_export(), socket_wsaprotocol_info_release() | socket_close() | Socket (Sockets Extension)
stream | opendir() | readdir(), rewinddir() | closedir() | Verzeichnis Handle
stream | fopen(), tmpfile() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | File-Handle
stream | popen(), fsockopen(), pfsockopen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Process handle
socket | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Socket-Handle
sysvmsg queue | msg_get_queue() | msg_queue_exists(), msg_receive(), msg_send(), msg_set_queue(), msg_stat_queue() | msg_remove_queue() | System V Nachrichten Warteschlange
sysvsem | sem_get() | sem_acquire() | sem_release() | System V Semaphore
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | System V Shared Memory
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | WDDX-Paket
xml | xml_parser_create(), xml_parser_create_ns() | 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 (vor PHP 8.0.0)
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | gz-komprimierte Datei
zlib.deflate | deflate_init() | deflate_add() | Keine | inkrementeller Deflate-Kontext (vor PHP 8.0.0)
zlib.inflate | inflate_init() | inflate_add(), inflate_get_read_len(), inflate_get_satus() | Keine | inkrementeller Inflate-Kontext (vor PHP 8.0.0)


List of Available Filters

Inhaltsverzeichnis

  • String Filters
  • Conversion Filters
  • Compression Filters
  • Encryption Filters

The following is a list of a few built-in stream filters for use with stream_filter_append(). Your version of PHP may have more filters (or fewer) than those listed here.

It is worth noting a slight asymmetry between stream_filter_append() and stream_filter_prepend(). Every PHP stream contains a small read buffer where it stores blocks of data retrieved from the filesystem or other resource in order to process data in the most efficient manner. As soon as data is pulled from the resource into the stream's internal buffer, it is immediately processed through any attached filters whether the PHP application is actually ready for the data or not. If data is sitting in the read buffer when a filter is appended, this data will be immediately processed through that filter making the fact that it was sitting in the buffer seem transparent. However, if data is sitting in the read buffer when a filter is prepended, this data will NOT be processed through that filter. It will instead wait until the next block of data is retrieved from the resource.

For a list of filters installed in your version of PHP use stream_get_filters().


String Filters

Each of these filters does precisely what their name implies and correspond to the behavior of a built-in php string handling function. For more information on a given filter, refer to the manual page for the corresponding function.

string.rot13

Use of this filter is equivalent to processing all stream data through the str_rot13() function.

Beispiel #1 string.rot13

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "This is a test.\n");
/* Outputs:  Guvf vf n grfg.   */
?>

string.toupper

Use of this filter is equivalent to processing all stream data through the strtoupper() function.

Beispiel #2 string.toupper

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "This is a test.\n");
/* Outputs:  THIS IS A TEST.   */
?>

string.tolower

Use of this filter is equivalent to processing all stream data through the strtolower() function.

Beispiel #3 string.tolower

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "This is a test.\n");
/* Outputs:  this is a test.   */
?>

string.strip_tags

Use of this filter is equivalent to processing all stream data through the strip_tags() function. It accepts parameters in one of two forms: Either as a string containing a list of tags similar to the second parameter of the strip_tags() function, or as an array of tag names.

Warnung

Dieses Feature ist seit PHP 7.3.0 als DEPRECATED (veraltet) markiert. Sich auf dieses Feature zu verlassen ist in keiner Weise empfehlenswert.

Beispiel #4 string.strip_tags

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u>");
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs:  <b>bolded text</b> enlarged to a level 1 heading   */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs:  <b>bolded text</b> enlarged to a level 1 heading   */
?>


Conversion Filters

Like the string.* filters, the convert.* filters perform actions similar to their names. For more information on a given filter, refer to the manual page for the corresponding function.

convert.base64-encode and convert.base64-decode

Use of these filters are equivalent to processing all stream data through the base64_encode() and base64_decode() functions respectively. convert.base64-encode supports parameters given as an associative array. If line-length is given, the base64 output will be split into chunks of line-length characters each. If line-break-chars is given, each chunk will be delimited by the characters given. These parameters give the same effect as using base64_encode() with chunk_split().

Beispiel #1 convert.base64-encode & convert.base64-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "This is a test.\n");
fclose($fp);
/* Outputs:  VGhpcyBpcyBhIHRlc3QuCg==  */

$param = array('line-length' => 8, 'line-break-chars' => "\r\n");
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode', STREAM_FILTER_WRITE, $param);
fwrite($fp, "This is a test.\n");
fclose($fp);
/* Outputs:  VGhpcyBp
          :  cyBhIHRl
          :  c3QuCg==  */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* Outputs:  This is a test.  */
?>

convert.quoted-printable-encode and convert.quoted-printable-decode

Use of the decode version of this filter is equivalent to processing all stream data through the quoted_printable_decode() functions. There is no function equivalent to convert.quoted-printable-encode. convert.quoted-printable-encode supports parameters given as an associative array. In addition to the parameters supported by convert.base64-encode, convert.quoted-printable-encode also supports boolean arguments binary and force-encode-first. convert.base64-decode only supports the line-break-chars parameter as a type-hint for stripping from the encoded payload.

Beispiel #2 convert.quoted-printable-encode & convert.quoted-printable-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "This is a test.\n");
/* Outputs:  =This is a test.=0A  */
?>

convert.iconv.*

The convert.iconv.* filters are available, if iconv support is enabled, and their use is equivalent to processing all stream data with iconv(). These filters do not support parameters, but instead expect the input and output encodings to be given as part of the filter name, i.e. either as convert.iconv.<input-encoding>.<output-encoding> or convert.iconv.<input-encoding>/<output-encoding> (both notations are semantically equivalent).

Beispiel #3 convert.iconv.*

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.iconv.utf-16le.utf-8');
fwrite($fp, "T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.\0\n\0");
fclose($fp);
/* Outputs: This is a test. */
?>


Compression Filters

While the Compression Wrappers provide a way of creating gzip and bz2 compatible files on the local filesystem, they do not provide a means for generalized compression over network streams, nor do they provide a means to begin with a non-compressed stream and transition to a compressed one. For this, a compression filter may be applied to any stream resource at any time.

Hinweis: Compression filters do not generate headers and trailers used by command line utilities such as gzip. They only compress and decompress the payload portions of compressed data streams.

zlib.deflate and zlib.inflate

zlib.deflate (compression) and zlib.inflate (decompression) are implementations of the compression methods described in » RFC 1951. The deflate filter takes up to three parameters passed as an associative array. level describes the compression strength to use (1-9). Higher numbers will generally yield smaller payloads at the cost of additional processing time. Two special compression levels also exist: 0 (for no compression at all), and -1 (zlib internal default -- currently 6). window is the base-2 log of the compression loopback window size. Higher values (up to 15 -- 32768 bytes) yield better compression at a cost of memory, while lower values (down to 9 -- 512 bytes) yield worse compression in a smaller memory footprint. Default window size is currently 15. memory is a scale indicating how much work memory should be allocated. Valid values range from 1 (minimal allocation) to 9 (maximum allocation). This memory allocation affects speed only and does not impact the size of the generated payload.

Hinweis: Because compression level is the most commonly used parameter, it may be alternatively provided as a simple integer value (rather than an array element).

zlib.* compression filters are available if zlib support is enabled.

Beispiel #1 zlib.deflate and zlib.inflate

<?php
$params = array('level' => 6, 'window' => 15, 'memory' => 9);

$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";
echo "The original text was:\n";
/* Use readfile and zlib.inflate to decompress on the fly */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* Generates output:

The original text is 70 characters long.
The compressed file is 56 bytes long.
The original text was:
This is a test.
This is only a test.
This is not an important string.

 */
?>

Beispiel #2 zlib.deflate simple

<?php
$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
/* Here "6" indicates compression level 6 */
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";

/* Generates output:

The original text is 70 characters long.
The compressed file is 56 bytes long.

 */
?>

bzip2.compress and bzip2.decompress

bzip2.compress and bzip2.decompress work in the same manner as the zlib filters described above. The bzip2.compress filter accepts up to two parameters given as elements of an associative array: blocks is an integer value from 1 to 9 specifying the number of 100kbyte blocks of memory to allocate for workspace. work is also an integer value ranging from 0 to 250 indicating how much effort to expend using the normal compression method before falling back on a slower, but more reliable method. Tuning this parameter effects only compression speed. Neither size of compressed output nor memory usage are changed by this setting. A work factor of 0 instructs the bzip library to use an internal default. The bzip2.decompress filter only accepts one parameter, which can be passed as either an ordinary boolean value, or as the small element of an associative array. small, when set to a true value, instructs the bzip library to perform decompression in a minimal memory footprint at the cost of speed.

bzip2.* compression filters are available if bz2 support is enabled.

Beispiel #3 bzip2.compress and bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "The original file is " . filesize('LICENSE') . " bytes long.\n";

$fp = fopen('LICENSE.compressed', 'w');
stream_filter_append($fp, 'bzip2.compress', STREAM_FILTER_WRITE, $param);
fwrite($fp, file_get_contents('LICENSE'));
fclose($fp);

echo "The compressed file is " . filesize('LICENSE.compressed') . " bytes long.\n";

/* Generates output:

The original text is 3288 characters long.
The compressed file is 1488 bytes long.

 */
?>


Encryption Filters

Encryption filters are especially useful for file/stream encryption.

mcrypt.* and mdecrypt.*

Warnung

Dieses Feature ist seit PHP 7.1.0 als DEPRECATED (veraltet) markiert. Sich auf dieses Feature zu verlassen ist in keiner Weise empfehlenswert.

mcrypt.* and mdecrypt.* provide symmetric encryption and decryption using libmcrypt. Both sets of filters support the same algorithms available to mcrypt extension in the form of mcrypt.ciphername where ciphername is the name of the cipher as it would be passed to mcrypt_module_open(). The following five filter parameters are also available:

mcrypt filter parameters
Parameter | Required? | Default | Sample Values
mode | Optional | cbc | cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir | Optional | ini_get('mcrypt.algorithms_dir') | Location of algorithms modules
modes_dir | Optional | ini_get('mcrypt.modes_dir') | Location of modes modules
iv | Required | N/A | Typically 8, 16, or 32 bytes of binary data. Depends on cipher
key | Required | N/A | Typically 8, 16, or 32 bytes of binary data. Depends on cipher

Beispiel #1 Encrypt/Decrypt with Blowfish

<?php
//$key assumed to be previously generated
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM);
$fp = fopen('encrypted-file.enc', 'wb');
fwrite($fp, $iv);
$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key);
stream_filter_append($fp, 'mcrypt.blowfish', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'message to encrypt');
fclose($fp);

//decrypt...
$fp = fopen('encrypted-file.enc', 'rb');
$iv = fread($fp, $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC));
$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key)
stream_filter_append($fp, 'mdecrypt.blowfish', STREAM_FILTER_READ, $opts);
$data = rtrim(stream_get_contents($fp));//trims off null padding
fclose($fp);
echo $data;
?>

Beispiel #2 Encrypt file using AES-128 CBC with SHA256 HMAC

<?php
AES_CBC::encryptFile($password, "plaintext.txt", "encrypted.enc");
AES_CBC::decryptFile($password, "encrypted.enc", "decrypted.txt");

class AES_CBC
{
   protected static $KEY_SIZES = array('AES-128'=>16,'AES-192'=>24,'AES-256'=>32);
   protected static function key_size() { return self::$KEY_SIZES['AES-128']; } //default AES-128
   public static function encryptFile($password, $input_stream, $aes_filename){
      $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
      $fin = fopen($input_stream, "rb");
      $fc = fopen($aes_filename, "wb+");
      if (!empty($fin) && !empty($fc)) {
         fwrite($fc, str_repeat("_", 32) );//placeholder, SHA256 HMAC will go here later
         fwrite($fc, $hmac_salt = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
         fwrite($fc, $esalt = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
         fwrite($fc, $iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
         $ekey = hash_pbkdf2("sha256", $password, $esalt, $it=1000, self::key_size(), $raw=true);
         $opts = array('mode'=>'cbc', 'iv'=>$iv, 'key'=>$ekey);
         stream_filter_append($fc, 'mcrypt.rijndael-128', STREAM_FILTER_WRITE, $opts);
         $infilesize = 0;
         while (!feof($fin)) {
            $block = fread($fin, 8192);
            $infilesize+=strlen($block);
            fwrite($fc, $block);
         }
         $block_size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
         $padding = $block_size - ($infilesize % $block_size);//$padding is a number from 1-16
         fwrite($fc, str_repeat(chr($padding), $padding) );//perform PKCS7 padding
         fclose($fin);
         fclose($fc);
         $hmac_raw = self::calculate_hmac_after_32bytes($password, $hmac_salt, $aes_filename);
         $fc = fopen($aes_filename, "rb+");
         fwrite($fc, $hmac_raw);//overwrite placeholder
         fclose($fc);
      }
   }
   public static function decryptFile($password, $aes_filename, $out_stream) {
      $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
      $hmac_raw = file_get_contents($aes_filename, false, NULL,  0, 32);
      $hmac_salt = file_get_contents($aes_filename, false, NULL, 32, $iv_size);
      $hmac_calc = self::calculate_hmac_after_32bytes($password, $hmac_salt, $aes_filename);
      $fc = fopen($aes_filename, "rb");
      $fout = fopen($out_stream, 'wb');
      if (!empty($fout) && !empty($fc) && self::hash_equals($hmac_raw,$hmac_calc)) {
         fread($fc, 32+$iv_size);//skip sha256 hmac and salt
         $esalt = fread($fc, $iv_size);
         $iv    = fread($fc, $iv_size);
         $ekey = hash_pbkdf2("sha256", $password, $esalt, $it=1000, self::key_size(), $raw=true);
         $opts = array('mode'=>'cbc', 'iv'=>$iv, 'key'=>$ekey);
         stream_filter_append($fc, 'mdecrypt.rijndael-128', STREAM_FILTER_READ, $opts);
         while (!feof($fc)) {
            $block = fread($fc, 8192);
            if (feof($fc)) {
               $padding = ord($block[strlen($block) - 1]);//assume PKCS7 padding
               $block = substr($block, 0, 0-$padding);
            }
            fwrite($fout, $block);
         }
         fclose($fout);
         fclose($fc);
      }
   }
   private static function hash_equals($str1, $str2) {
      if(strlen($str1) == strlen($str2)) {
         $res = $str1 ^ $str2;
         for($ret=0,$i = strlen($res) - 1; $i >= 0; $i--) $ret |= ord($res[$i]);
         return !$ret;
      }
      return false;
   }
   private static function calculate_hmac_after_32bytes($password, $hsalt, $filename) {
      static $init=0;
      $init or $init = stream_filter_register("user-filter.skipfirst32bytes", "FileSkip32Bytes");
      $stream = 'php://filter/read=user-filter.skipfirst32bytes/resource=' . $filename;
      $hkey = hash_pbkdf2("sha256", $password, $hsalt, $iterations=1000, 24, $raw=true);
      return hash_hmac_file('sha256', $stream, $hkey, $raw=true);
   }
}
class FileSkip32Bytes extends php_user_filter
{
   private $skipped=0;
   function filter($in, $out, &$consumed, $closing)  {
      while ($bucket = stream_bucket_make_writeable($in)) {
         $outlen = $bucket->datalen;
         if ($this->skipped<32){
            $outlen = min($bucket->datalen,32-$this->skipped);
            $bucket->data = substr($bucket->data, $outlen);
            $bucket->datalen = $bucket->datalen-$outlen;
            $this->skipped+=$outlen;
         }
         $consumed += $outlen;
         stream_bucket_append($out, $bucket);
      }
      return PSFS_PASS_ON;
   }
}
class AES_128_CBC extends AES_CBC {
   protected static function key_size() { return self::$KEY_SIZES['AES-128']; }
}
class AES_192_CBC extends AES_CBC {
   protected static function key_size() { return self::$KEY_SIZES['AES-192']; }
}
class AES_256_CBC extends AES_CBC {
   protected static function key_size() { return self::$KEY_SIZES['AES-256']; }
}


Liste der unterstützten Socket-Transporter

Inhaltsverzeichnis

  • Internet Domain: TCP, UDP, SSL und TLS
  • Unix-Domain: Unix und UDG

Die folgende Liste enthält die verschiedenen URL-Varianten für Socket-Transporter, die in PHP integriert sind und mit den streambasierenden Socket-Funktionen wie fsockopen() und stream_socket_client() genutzt werden können. Diese Transporter beziehen sich nicht auf die Sockets-Erweiterung.

Eine Liste der in Ihrer PHP-Installation unterstützten Transporter erhalten Sie mit Hilfe der Funktion stream_get_transports().


Internet Domain: TCP, UDP, SSL und TLS

PHP 4, PHP 5. ssl:// & tls:// since PHP 4.3.0 sslv2:// & sslv3:// since PHP 5.0.2

Hinweis: Wird kein Transporter angegeben, so wird tcp:// angenommen.

  • 127.0.0.1
  • fe80::1
  • www.example.com
  • tcp://127.0.0.1
  • tcp://fe80::1
  • tcp://www.example.com
  • udp://www.example.com
  • ssl://www.example.com
  • sslv2://www.example.com
  • sslv3://www.example.com
  • tls://www.example.com

Internet-Domain-Sockets erwarten zusätzlich zur Zieladresse eine Portnummer. Im Fall von fsockopen() wird diese als zweiter Parameter übergeben und beeinflusst so nicht die Formatierung der Transporter-URL. Bei stream_socket_client() und damit zusammenhängenden Funktionen wird die Portnummer dagegen, wie in URLs üblich, von einem Doppelpunkt getrennt an den URL angehängt.

  • tcp://127.0.0.1:80
  • tcp://[fe80::1]:80
  • tcp://www.example.com:80

Hinweis: Numerische IPv6-Adressen mit Portnummern
Während im vorangegangenen Beispiel an die IPv4- und Hostname-Einträge nur der Doppelpunkt und die Portnummer angehängt wurden, ist die IPv6-Adresse in der zweiten Zeile zusätzlich in eckige Klammern gesetzt worden: [fe80::1]. Dies dient dazu, zwischen den Doppelpunkten in der IPv6-Adresse selbst und dem Trennzeichen zwischen Adresse und Portnummer unterscheiden zu können.

Die ssl://- und tls://-Transporter erweitern den tcp://-Transporter um SSL-Verschlüsselung (nur verfügbar, wenn PHP mit OpenSSL-Unterstützung kompiliert wurde). Beginnend mit PHP 4.3.0 kann OpenSSL-Unterstützung statisch in PHP eingebunden werden, ab PHP 5.0.0 wahlweise auch als dynamisch ladbares Modul.

ssl:// versucht je nach Fähigkeiten und Vorlieben des Kommunikationspartners eine SSL-V2- oder -V3-Verbindung herzustellen. sslv2:// und sslv3: erzwingen explizit die Nutzung des SSL-V2-bzw. -V3-Protokolls.


Unix-Domain: Unix und UDG

unix:// und udg:// (udg:// ab PHP 5).

  • unix:///tmp/mysock
  • udg:///tmp/mysock

unix:// bietet Zugriff auf Socket-Verbindungen in der Unix-Domäne. udg:// bietet eine auf dem User-Datagram-Protokoll basierende Alternative zu Unix-Domain-Sockets. protocol.

Unix-Domain-Sockets erwarten im Gegensatz zu Internet-Domain-Sockets keine Portnummer. Bei Nutzung der fsockopen()-Funktion sollte daher der zweite Parameter portno für diese immer als 0 übergeben werden.


Tabelle zu Typenvergleichen in PHP

Die folgenden Tabellen zeigen das Verhalten von Typen und Vergleichsoperatoren in PHP, sowohl für schwach und stark typisierte Vergleiche. Dieser Anhang steht im Zusammenhang mit dem Abschnitt zu Type juggling. Anregungen für diesen Abschnitt kamen aus verschiedenen Benutzerkommentaren und der Arbeit von » BlueShoes.

Bevor diese Tabellen verwendet werden ist es wichtig die Typen und ihre Bedeutungen zu verstehen. "42" ist zum Beispiel ein string, während 42 ein int ist. false ist ein bool, obwohl "false" ein string ist.

Hinweis:

HTML-Formulare übergeben keine integer, float oder boolesche Werte, sie übertragen strings. Um herauszufinden, ob ein string numerisch ist kann man is_numeric() verwenden.

Hinweis:

Wenn man einfach if ($x) verwendet, obwohl $x undefiniert ist, so wird ein Fehler der Stufe E_NOTICE erzeugt. Verwenden sie stattdessen empty() oder isset() und/oder initialisiere sie die verwendeten Variablen.

Hinweis:

Einige numerische Operationen können ein Ergebnis erzeugen, welches durch die Konstante NAN represäntiert wird. Jeder schwach oder stark typisierte Vergleich dieses Wertes mit beliebigen anderen Werten, einschließlich der Konstante selbst, außer mit true, wird false ergeben (d.h. NAN != NAN und NAN !== NAN). Beispiele für Operationen, die NAN ergeben sind u.a. sqrt(-1), asin(2), und acosh(0).

Vergleiche von $x mittels PHP-Funktionen
Ausdruck | gettype() | empty() | is_null() | isset() | bool : if($x)
$x = ""; | string | true | false | true | false
$x = null; | NULL | true | true | false | false
var $x; | NULL | true | true | false | false
$x ist undefiniert | NULL | true | true | false | false
$x = array(); | array | true | false | true | false
$x = array('a', 'b'); | array | false | false | true | true
$x = false; | bool | true | false | true | false
$x = true; | bool | false | false | true | true
$x = 1; | int | false | false | true | true
$x = 42; | int | false | false | true | true
$x = 0; | int | true | false | true | false
$x = -1; | int | false | false | true | true
$x = "1"; | string | false | false | true | true
$x = "0"; | string | true | false | true | false
$x = "-1"; | string | false | false | true | true
$x = "php"; | string | false | false | true | true
$x = "true"; | string | false | false | true | true
$x = "false"; | string | false | false | true | true

Typschwache Vergleiche mittels ==
 | true | false | 1 | 0 | -1 | "1" | "0" | "-1" | null | array() | "php" | ""
true | true | false | true | false | true | true | false | true | false | false | true | false
false | false | true | false | true | false | false | true | false | true | true | false | true
1 | true | false | true | false | false | true | false | false | false | false | false | false
0 | false | true | false | true | false | false | true | false | true | false | true | true
-1 | true | false | false | false | true | false | false | true | false | false | false | false
"1" | true | false | true | false | false | true | false | false | false | false | false | false
"0" | false | true | false | true | false | false | true | false | false | false | false | false
"-1" | true | false | false | false | true | false | false | true | false | false | false | false
null | false | true | false | true | false | false | false | false | true | true | false | true
array() | false | true | false | false | false | false | false | false | true | true | false | false
"php" | true | false | false | true | false | false | false | false | false | false | true | false
"" | false | true | false | true | false | false | false | false | true | false | false | true

Typstarke Vergleiche mittels ===
 | true | false | 1 | 0 | -1 | "1" | "0" | "-1" | null | array() | "php" | ""
true | true | false | false | false | false | false | false | false | false | false | false | false
false | false | true | false | false | false | false | false | false | false | false | false | false
1 | false | false | true | false | false | false | false | false | false | false | false | false
0 | false | false | false | true | false | false | false | false | false | false | false | false
-1 | false | false | false | false | true | false | false | false | false | false | false | false
"1" | false | false | false | false | false | true | false | false | false | false | false | false
"0" | false | false | false | false | false | false | true | false | false | false | false | false
"-1" | false | false | false | false | false | false | false | true | false | false | false | false
null | false | false | false | false | false | false | false | false | true | false | false | false
array() | false | false | false | false | false | false | false | false | false | true | false | false
"php" | false | false | false | false | false | false | false | false | false | false | true | false
"" | false | false | false | false | false | false | false | false | false | false | false | true


Liste der Parsertoken

Verschiedene Teile der Sprache PHP werden intern durch Typen wie T_SR repräsentiert. PHP gibt Bezeichner wie diese in Parserfehlermeldungen wie "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10." aus.

Ein Entwickler sollte wissen, was T_SR bedeutet. Für all diejenigen, die das nicht wissen, wird hier eine Tabelle mit diesen Bezeichnern, der PHP-Syntax und Verweisen zu den entsprechenden Stellen im Handbuch aufgeführt.

Hinweis: Verwendung der T_* Konstanten

Alle Token, die weiter unten aufgeführt werden, sind ebenfalls als PHP Konstanten verfügbar. Ihr Wert wird basierend auf der zugrundeliegenden Parser-Infrastruktur von PHP automatisch festgelegt. Das bedeutet, dass sich der konkrete Wert eines Tokens zwischen zwei PHP-Versionen ändern kann. Beispielsweise ist die T_FILE Konstante in PHP 5.3 gleich 365, wohingegen der selbe Wert in PHP 5.4 T_TRAIT entspricht und der Wert der Konstanten T_FILE 369 ist. Daher sollte sich Code niemals direkt auf die Original-Werte, die einer PHP-Version X.Y.Z entnommen wurden, verlassen, damit eine gewisse Kompatibilität über mehrere PHP-Version gewährleistet ist. Statt dessen sollte der Code benutzerdefinierte Werte (unter Verwendung großer Zahlen wie 10000), und eine angebrachte Strategie, die mit allen PHP-Versionen und T_* Werten funktioniert, verwenden.

Token
Token | Syntax | Referenz
T_ABSTRACT | abstract | Klassenabstraktion
T_AND_EQUAL | &= | Zuweisungsoperatoren
T_ARRAY | array() | array(), Arraysyntax
T_ARRAY_CAST | (array) | Typumwandlung
T_AS | as | foreach
T_BAD_CHARACTER |  | Alle Zeichen unterhalb von ASCII 32 mit Ausnahme von \t (0x09), \n (0x0a) und \r (0x0d) (verfügbar seit PHP 7.4.0)
T_BOOLEAN_AND | && | Logische Operatoren
T_BOOLEAN_OR | || | Logische Operatoren
T_BOOL_CAST | (bool) or (boolean) | Typumwandlung
T_BREAK | break | break
T_CALLABLE | callable | callable
T_CASE | case | switch
T_CATCH | catch | Ausnahmebehandlung (Exception-Handling)
T_CLASS | class | Klassen und Objekte
T_CLASS_C | __CLASS__ | Magische Konstanten
T_CLONE | clone | Klassen und Objekte
T_CLOSE_TAG | ?> oder %> | Den HTML-Bereich der Datei verlassen
T_COALESCE | ?? | Vergleichsoperatoren
T_COALESCE_EQUAL | ??= | Zuweisungsoperatoren (verfügbar seit PHP 7.4.0)
T_COMMENT | // oder #, und /* */ | Kommentare
T_CONCAT_EQUAL | .= | Zuweisungsoperatoren
T_CONST | const | Klassenkonstanten
T_CONSTANT_ENCAPSED_STRING | "foo" oder 'bar' | Stringsyntax
T_CONTINUE | continue | continue
T_CURLY_OPEN | {$ | komplexe Variableninterpolationssyntax
T_DT_DECEC | -- | Inkrement- bzw. Dekrementoperatoren
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIR | __DIR__ | Magische Konstanten
T_DIV_EQUAL | /= | Zuweisungsoperatoren
T_DNUMBER | 0.12, etc | Fließkommawerte
T_DO | do | do..while
T_DOC_COMMENT | /** */ | Kommentare im PHPDoc Stil
T_DOLLAR_OPEN_CURLY_BRACES | ${ | komplexe Variableninterpolationssyntax
T_DOUBLE_ARROW | => | Arraysyntax
T_DOUBLE_CAST | (real), (double) or (float) | Typumwandlung
T_DOUBLE_COLON | :: | Siehe T_PAAMAYIM_NEKUDOTAYIM weiter unten
T_ECHO | echo | echo
T_ELLIPSIS | ... | Funktionsargumente
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE | " $a" | Konstanter Teil einer Zeichenkette mit Variablen
T_ENDDECLARE | enddeclare | declare, Alternative Syntax
T_ENDFOR | endfor | for, Alternative Syntax
T_ENDFOREACH | endforeach | foreach, Alternative Syntax
T_ENDIF | endif | if, Alternative Syntax
T_ENDSWITCH | endswitch | switch, Alternative Syntax
T_ENDWHILE | endwhile | while, Alternative Syntax
T_END_HEREDOC |  | Heredoc-Syntax
T_EVAL | eval() | eval()
T_EXIT | exit oder die | exit(), die()
T_EXTENDS | extends | extends, Klassen und Objekte
T_FILE | __FILE__ | Magische Konstanten
T_FINAL | final | Final-Schlüsselwort
T_FINALLY | finally | Ausnahmebehandlung (Exception-Handling)
T_FN | fn | Pfeilfunktionen (verfügbar seit PHP 7.4.0)
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function | Funktionen
T_FUNC_C | __FUNCTION__ | Magische Konstanten
T_GLOBAL | global | Geltungsbereich von Variablen
T_GOTO | goto | goto
T_HALT_COMPILER | __halt_compiler() | __halt_compiler
T_IF | if | if
T_IMPLEMENTS | implements | Interfaces
T_INC | ++ | Inkrement- bzw. Dekrementoperatoren
T_INCLUDE | include() | include
T_INCLUDE_ONCE | include_once() | include_once
T_INLINE_HTML |  | Text außerhalb von PHP
T_INSTANCEOF | instanceof | Typoperatoren
T_INSTEADOF | insteadof | Traits
T_INTERFACE | interface | Interfaces
T_INT_CAST | (int) oder (integer) | Typumwandlung
T_ISSET | isset() | isset()
T_IS_EQUAL | == | Vergleichsoperatoren
T_IS_GREATER_OR_EQUAL | >= | Vergleichsoperatoren
T_IS_IDENTICAL | === | Vergleichsoperatoren
T_IS_NOT_EQUAL | != or <> | Vergleichsoperatoren
T_IS_NOT_IDENTICAL | !== | Vergleichsoperatoren
T_IS_SMALLER_OR_EQUAL | <= | Vergleichsoperatoren
T_LINE | __LINE__ | Magische Konstanten
T_LIST | list() | list()
T_LNUMBER | 123, 012, 0x1ac, etc | Integerwerte
T_LOGICAL_AND | and | Logische Operatoren
T_LOGICAL_OR | or | Logische Operatoren
T_LOGICAL_XOR | xor | Logische Operatoren
T_METHOD_C | __METHOD__ | Magische Konstanten
T_MINUS_EQUAL | -= | Zuweisungsoperatoren
T_MOD_EQUAL | %= | Zuweisungsoperatoren
T_MUL_EQUAL | *= | Zuweisungsoperatoren
T_NAMESPACE | namespace | Namensräume
T_NEW | new | Klassen und Objekte
T_NS_C | __NAMESPACE__ | Namensräume.
T_NS_SEPARATOR | \ | Namensräume
T_NUM_STRING | "$a[0]" | Numerischer Array-Index innerhalb einer Zeichenkette
T_OBJECT_CAST | (object) | Typumwandlung
T_OBJECT_OPERATOR | -> | Klassen und Objekte
T_OPEN_TAG | <?php, <? or <% | HTML-Bereich der Datei verlassen
T_OPEN_TAG_WITH_ECHO | <?= or <%= | HTML-Bereich der Datei verlassen
T_OR_EQUAL | |= | Zuweisungsoperatoren
T_PAAMAYIM_NEKUDOTAYIM | :: | ::. Auch definiert als T_DOUBLE_COLON.
T_PLUS_EQUAL | += | Zuweisungsoperatoren
T_POW | ** | Arithmetische Operatoren
T_POW_EQUAL | **= | Zuweisungsoperatoren
T_PRINT | print() | print
T_PRIVATE | private | Klassen und Objekte
T_PROTECTED | protected | Klassen und Objekte
T_PUBLIC | public | Klassen und Objekte
T_REQUIRE | require() | require
T_REQUIRE_ONCE | require_once() | require_once
T_RETURN | return | Rückgabe von Werten
T_SL | << | Bitweise Operatoren
T_SL_EQUAL | <<= | Zuweisungsoperatoren
T_SPACESHIP | <=> | Vergleichsoperatoren
T_SR | >> | Bitweise Operatoren
T_SR_EQUAL | >>= | Zuweisungsoperatoren
T_START_HEREDOC | <<< | Heredoc-Syntax
T_STATIC | static | Geltungsbereich von Variablen
T_STRING | parent, self, etc. | Dabei handelt es sich um Bezeichner, z.B. Schlüsselwörter wie parent und self, Funktionsnamen, Klassennamen usw. Vgl. T_CONSTANT_ENCAPSED_STRING.
T_STRING_CAST | (string) | Typumwandlung
T_STRING_VARNAME | "${a | komplexe Variableninterpolationssyntax
T_SWITCH | switch | switch
T_THROW | throw | Ausnahmebehandlung (Exception-Handling)
T_TRAIT | trait | Traits
T_TRAIT_C | __TRAIT__ | __TRAIT__
T_TRY | try | Ausnahmebehandlung (Exception-Handling)
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | Typumwandlung
T_USE | use | Namensräume
T_VAR | var | Klassen und Objekte
T_VARIABLE | $foo | Variablen
T_WHILE | while | while, do..while
T_WHITESPACE | \t \r\n |
T_XOR_EQUAL | ^= | Zuweisungsoperatoren
T_YIELD | yield | Generatoren
T_YIELD_FROM | yield from | Generator

Siehe auch token_name().


Userland-Namensregeln

Inhaltsverzeichnis

  • Globaler Namensraum
  • Regeln
  • Tipps

Es folgen einige Vorgaben zur Namensgebung für Bezeichner in PHP Code. Diese Vorgaben sollten zumindest immer dann beachtet werden, wenn Code Symbole im globalen Namensraum anlegt, um Konflikte zwischen ihrem Code und zukünftigen Versionen von PHP zu vermeiden.


Globaler Namensraum

Die folgende Liste bietet einen Überblick über die verschiedenen möglichen Programmkonstrukte im globalen Namensraum:

  • Funktionen

  • Klassen

  • Schnittstellen (interfaces)

  • Konstanten (aber keine Klassenkonstanten)

  • außerhalb von Funktionen oder Methoden definierte Variablen


Regeln

Die folgende Liste gibt einen Überblick über die Rechte, die das PHP Projekt bei der Auswahl von Namen für neue interne Bezeichner für sich selbst in Anspruch nimmt. Die definitiven Vorgaben finden sich in den offiziellen » CODING STANDARDS:

  • PHP ist Eigentümer des globalen Namensraumes, versucht aber vernünftige sprechende Namen zu finden, und offensichtliche Konflikte zu vermeiden.

  • Funktionsnamen benutzten Unterstriche als Trennzeichen zwischen Wörtern, während Klassennamen den camelCase und PascalCase Regeln folgen.

  • PHP wird jedem globalen Symbol einer Erweiterung den Namen der Erweiterung voranstellen (in der Vergangenheit gab es allerdings zahlreiche Abweichungen von dieser Regel), z.B.:

    • curl_close()

    • mysql_query()

    • PREG_SPLIT_DELIM_CAPTURE

    • new DOMDocument()

    • strpos() (Beispiel einer früheren Abweichung)

    • new SplFileObject()

  • Bei Iteratoren und Ausnahmen wird dagegen einfach ein "Iterator" oder "Exception" an den Namen angehängt, z.B.:

    • ArrayIterator

    • LogicException

  • PHP reserviert alle Symbole, die mit zwei Unterstrichen __ beginnen, für interne Zwecke. Sie sollten nur dann Namen mit __ beginnen lassen, wenn Sie eine der dokumentierten "magischen" Funktionalitäten in PHP nutzen wollen, z.B:

    • __get()

    • __autoload()


Tipps

Um zukunftssicheren Code zu schreiben, wird empfohlen möglichst wenig Variablen, Funktionen oder Klassen im globalen Namensraum zu platzieren. Das wird Namenskonflikte mit Code von Drittanbietern sowie auch möglichen zukünftigen Erweiterung der Sprache verhindern.

Eine übliche Maßnahme, um Namenskonflikte von Funktionen und Klassen zu vermeiden, ist diese zu ihrem eigenen Namensraum hinzuzufügen.

<?php

namespace MyProject;

function my_function() {
    return true;
}

\MyProject\my_function();

Das erfordert noch immer den Überblick über bereits verwendete Namesräume zu behalten, aber sobald entschieden wurde, welcher Namensraum verwendet werden soll, können diesem alle Funktionen und Klassen hinzugefügt werden, ohne weitere Gedanken an Konflikte verschwenden zu müssen.

Es wird als beste Praxis angesehen, die Zahl von Variablen, die zum globalen Geltungsbereich hinzugefügt werden, zu beschränken, um Namenskonflikte mit Code von Drittanbietern zu vermeiden.

Hinweis: Geltungsbereich von Variablen

Aufgrund der Geltungsbereichsregeln von PHP befinden sich Variablen, die in Funktionen oder Methoden definiert sind, nicht im globalen Geltungsbereich, und können daher nicht mit anderen Variablen, die im globalen Geltungsbereich definiert sind, kollidieren.


Über das Handbuch

Inhaltsverzeichnis

  • Formate
  • Über die Kommentare (User Notes)
  • Wie man eine Funktionsdefinition (Prototyp) liest
  • In diesem Handbuch beschriebene PHP-Versionen
  • Mehr Informationen über PHP finden
  • Wie man helfen kann, die Dokumentation zu verbessern
  • Wie wir die Formate generieren
  • Übersetzungen


Formate

Das PHP Handbuch wird in diversen Formaten zur Verfügung gestellt. Diese Formate lassen sich in zwei Gruppen aufteilen: Formate, die online lesbar sind und solche, die zum Download bereit stehen.

Hinweis:

Einige Verlage haben gedruckte Versionen dieses Handbuchs veröffentlicht. Wir können diese Bücher nicht empfehlen, da sie relativ schnell veraltet sind.

Sie können das Handbuch online auf der » PHP.net Webseite. Die online lesbare Version des PHP-Handbuches besitzt derzeit zwei CSS-Stylesheets, ein Web-freundliches und ein Drucker-freundliches Stylesheet.

Die beiden Vorteile des Onlinehandbuchs gegenüber den meisten Offlineformaten sind die Integration von Kommentaren (User Notes), die von Usern eingetragen werden, sowie die » URL shortcuts, die verwendet werden können, um schnell zu den gewünschten Teilen des Handbuchs zu gelangen. Ein offensichtlicher Nachteil ist, dass Sie online sein müssen, um das Onlinehandbuch anzusehen.

Es stehen diverse Offlineformate des Handbuchs zur Verfügung. Welches Format das Beste für Sie ist hängt davon ab, welches Betriebssystem Sie verwenden und welches Sie am liebsten lesen. Wenn Sie Informationen darüber suchen, wie das Handbuch in so vielen verschiedenen Formaten generiert wird, lesen Sie bitte den Abschnitt 'Wie wir die Formate generieren' in diesem Anhang.

Das plattformunabhängigste Format des Handbuchs ist die HTML-Version. Diese steht sowohl als einzelne HTML-Datei, als auch als Paket von mehren einzelnen Dateien für jedes Kapitel (welches mehrere tausend Dateien ergibt) zur Verfügung. Wir bieten beide Versionen komprimiert an, weshalb ein Dekomprimierungsprogramm benötigt wird, um an die Dateien innerhalb der Archive zu gelangen.

Für die Windows-Plattformen verbessert die Windows HTML Help Version das HTML Format für die Benutzung in der Windows HTML Help Anwendung. Diese Version beinhaltet eine Volltextsuche, einen kompletten Index und Lesezeichen. Viele bekannte PHP Entwicklungsumgebungen haben diese Version der Dokumentation für schnelleren Zugriff integriert. Außerdem sind CHM Betrachter für Linux-Desktops verfügbar. Zum Beispiel » xCHM oder » GnoCHM.

Außerdem ist eine » erweiterte CHM version verfügbar, die weniger häufig aktualisiert wird, aber viele zusätzliche Features anbietet. Diese funktioniert allerdings aufgrund der Technologien, die für den Aufbau der Hilfeseiten verwendet werden, nur zusammen mit Microsoft Windows.


Über die Kommentare (User Notes)

Die Kommentare der Benutzer spielen eine wichtige Rolle in der Entwicklung des Handbuchs. Dadurch, dass Benutzern erlaubt wird, Beispiele, Warnungen und weitere Klärungen über ihren Browser beizusteuern, ist es uns möglich, diese Rückmeldungen in den Text des Handbuchs einzuarbeiten. Und bis die Kommentare eingearbeitet sind können sie online und in manchen Offlineformaten in der Form eingesehen werden, wie sie eingetragen wurden.

Hinweis:

Die Kommentare sind nicht moderiert bevor sie online erscheinen, also kann für die Qualität des Schriftstils und der Codebeispiele, ja sogar für die Richigkeit der Beiträge, nicht garantiert werden. (Nicht, dass es irgendeine Garantie für die Qualität oder Richtigkeit des Handbuchs an sich gibt.)

Hinweis:

Im Bezug auf die Lizenz der benutzerkommentare werden diese als Teil des PHP Handbuches betrachtet und unterliegen daher der selben Lizenz, die auch für das handbuch gilt (zur Zeit "Creative Commons Attribution"). Für nähere Informationen siehe auch Copyright des Handbuchs


Wie man eine Funktionsdefinition (Prototyp) liest

Jede Funktion im Handbuch ist für schnelles Nachschlagen dokumentiert. Zu wissen, wie man diesen Text liest und versteht, wird es viel einfacher machen, PHP zu lernen. Statt sich auf Beispiele und Auschneiden und Einfügen zu verlassen sollte jeder wissen, wie man eine Funktionsdefinition (Prototyp) liest. Lassen Sie uns anfangen:

Hinweis: Voraussetzung: Grundlegendes Verständnis der Typen

Obwohl PHP eine schwach typisierte Sprache ist, ist es wichtig, ein grundlegendes Verständnis von Typen zu besitzen, da sie eine wichtige Bedeutung haben.

Funktionsdefinitionen sagen uns, welcher Typ von Werten zurückgegeben wird. Lassen Sie uns die Definition von strlen() als unser erstes Beispiel nehmen:

strlen

(PHP 4, PHP 5)
strlen -- Ermitteln der String-Länge

Beschreibung
strlen ( string $string ) : int

Gibt die Länge der übergebenen Zeichenkette zurück.

Erklärung einer Funktionsdefinition
Teil | Beschreibung
strlen | Der Name der Funktion.
(PHP 4, PHP 5) | strlen() gab es in allen Versionen von PHP 4 und PHP 5
( string $string ) | Der erste (und in diesem Fall einzige) Parameter (Argument) dieser Funktion trägt den Namen string und ist ein String.
int | Type des Wertes, den diese Funktion zurückgibt, welche hier ein int ist (d.h. die Länge einer Zeichenkette in Zahlen gemessen).

Wir könnten die oben angegebene Funktionsdefinition auf eine allgemeine Art umschreiben:

      Funktionsname    ( Parametertyp   Parametername ) : Rückgabetyp

Viele Funktionen akzeptieren mehrere Parameter, z.B. in_array(). Ihr Prototyp sieht wie folgt aus:

      in_array ( mixed $needle, array $haystack [, bool $strict = FALSE]) : bool

Was bedeutet das? in_array() liefert einen boolean Wert zurück, true im Erfolgsfall (falls needle in haystack gefunden wurde)Im Fehlerfall wird false zurückgegeben. (falls needle nicht in haystack gefunden wurde). Der erste Parameter heißt needle und kann viele verschiedene Typen annehmen, weshalb wir ihn "mixed" nennen. Diese mixed needle (wonach wir suchen) kann entweder ein skalarer Wert sein (string, integer oder float) oder ein array. haystack (das Array das wir durchsuchen) ist der zweite Parameter. Der dritte, optionale Parameter wird strict genannt. Alle optionalen Parameter werden in [ Klammern ] dargestellt. Das Handbuch erklärt, dass der Parameter strict den Standardwert false hat. Schauen Sie auf die Handbuchseite der jeweiligen Funktion, um nachzulesen, wie sie funktionieren.

Zusätzlich erlaubt das & (Kaufmanns-Und) Symbol, das einem Funktionsparameter vorangestellt wird, den Parameter als Referenz zu übergeben, wie hier zu sehen:

       preg_match ( string $pattern , string $subject [, array &$matches
      [, int $flags = 0 [, int $offset = 0 ]]] ) : int

Diesem Beispiel kann entnommen werden, dass der dritte optionale Parameter &$matches als Referenz übergeben wird.

Es gibt auch Funktionen mit komplexeren PHP Versionsangaben. Nehmen wir html_entity_decode() als Beispiel:

(PHP 4 >= 4.3.0, PHP 5)

Das heißt die Funktion ist nur in PHP Versionen ab PHP 4.3.0 verfügbar.


In diesem Handbuch beschriebene PHP-Versionen

Diese Dokumentation beinhaltet Informationen über aktuelle und zukünftige PHP-Versionen. Änderungen im Verhalten sind als Notizen, Changelogs und innerhalb des Textes der Handbuchseiten dokumentiert. Die älteste dokumentierte Version ist PHP 7.0.0.

Existiert Dokumentation für die neueste (unveröffentlichte) Entwicklungsversion von PHP, wird sie entweder als "verfügbar in Git" oder "Entwicklungsversion" bezeichnet. Und obwohl man diese Änderungen einplanen sollte, können sie sich in seltenen Fällen ändern.

Die gesamte Entwicklung findet in Git statt, und kann wie auf der Seite » anonymous Git access angegeben, ausgecheckt werden.

Zur Klarstellung: das Handbuch bezieht sich auf Haupt-, Neben- und Revisionsnummern der PHP-Releases. Zum Beispiel bezieht sich bei PHP 7.3.1 die 7 auf die Hautpversion, 3 auf die Nebenversion, und 1 auf die Revision. Typischerweise fügt PHP nur neue Features zu Haupt- und Nebenversionen, and behebt Fehler in Revisionen. Allerdings trifft diese Konvention nicht immer zu.

Es ist ebenfalls zu beachten, dass das PHP-Handbuch im Präsenz, und nicht im Futur geschrieben ist, selbst für dokumentierte Features, die noch nicht verfügbar sind. Dies ist dadurch begründet, dass das Handbuch so leichter die Zeit überdauern kann, so dass keine lästigen grammatikalischen Updates bei jeder neuen PHP-Version erforderlich sind.

Das PHP Handbuch gibt oft "Standardwerte" für PHP Direktiven an. Diese Werte basieren darauf, wie sich PHP ohne eine php.ini Konfigurationsdatei verhält, so dass sich dies von den Werten, die in den ausgelieferten php.ini-development und php.ini-production Dateien zu finden sind, unterscheiden kann. Sie beziehen sich auch auf die aktuellste Version von PHP, wobei Changelogeinträge ältere Werte erwähnen. Werfen Sie einen Blick in den Anhang zu PHP Direktiven für Details zu diesen Werten und Änderungen daran.


Mehr Informationen über PHP finden

Dieses Handbuch versucht nicht, Vorschriften über generelle Programmierpraktiken zu machen. Wer das erste mal programmiert oder Anfänger ist, könnte es schwer finden, PHP programmieren nur mit diesem Handbuch zu lernen. Suchen Sie sich lieber eine Anleitung, die auf Anfänger zugeschnitten ist.

Es gibt eine ganze Reihe von aktiven Mailinglisten, um über alle Aspekte der PHP-Programmierung zu diskutieren. Hängen Sie selber an einem Problem fest, erwägen Sie die Verwendung dieser Listen. Eine Liste von Hilfestellungen inklusive der Mailinglisten finden Sie auf der » PHP.net Unterstützungsseite.


Wie man helfen kann, die Dokumentation zu verbessern

Es gibt drei Möglichkeiten, die jeder ergreifen kann, diese Dokumentation zu verbessern.

Wenn Sie Fehler in diesem Handbuch finden, egal in welcher Sprache, bitte teilen Sie uns diese über das Bug System unter » https://bugs.php.net/ mit. Bezeichnen Sie den Bug als "Documentation Problem". Alle die Dokumentation betreffenden Probleme, einschließlich welcher mit den verschiedenen Handbuchformaten, sollten als Bugs berichtet werden.

Hinweis:

Bitte missbrauchen Sie das Bug System nicht, indem Sie Hilfegesuche absenden. Verwenden Sie stattdessen eine der vielen » Unterstützungsoptionen.

Durch Kommentare kann jeder anderen Lesern zusätzliche Codebeispiele, Warnungen und weitere Klärungen zur Verfügung stellen. Aber tragen Sie bitte keine Bugreports in das Kommentarsystem ein. Mehr über die Kommentarfuntkion können Sie im Abschnitt 'Über die Kommentare (User Notes)' dieses Anhangs lesen.

Das PHP Handbuch ist in viele Sprachen übersetzt. Wenn Sie Englisch und eine andere Sprachen beherrschen, dann können Sie das handbuch verbessern, indem Sie in einem Überstzungsteam mitarbeiten. Wollen Sie eine neue Übersetzung beginnen oder bei einem vorhandenen Übersetzungsteam beitreten, lesen Sie bitte » http://doc.php.net/tutorial/.

Das PHP Dokumentationsprojekt hat ebenfalls einen IRC Chatraum, in dem sich viele Autoren aufhalten. Schauen Sie doch mal in #php.doc auf irc.efnet.org vorbei und diskutieren Sie mit uns Wege, das Handbuch zu verbessern.


Wie wir die Formate generieren

Dieses Handbuch ist in XML geschrieben, unter Verwendung der » DocBook XML DTD, und » PhD ([PH]P basierender [D]okumentationsrenderer) für die Wartung und Formatierung.

Die Verwendung von XML als Quellformat bietet die Möglichkeit, aus den Quelldateien sehr viele verschiedene Formate zu generieren, während nur ein Quelldokument für alle Formate gepflegen werden muß. Das Programm für die Formatierung der online lesbaren Version des Handbuches ist » PhD. » Microsoft HTML Help Workshop wird dazu verwendet, das Handbuch im Windows HTML Help Format zu erzeugen und natürlich auch PHP selbst, um einige zusätzliche Konvertierungen und Formatierungen durchzuführen.

Das Handbuch wird in vielen Sprachen und Formaten erzeugt. Sehen Sie » https://www.php.net/docs.php für zusätzliche Details. Der XML-Quellcode kann aus dem SVN-Projektarchiv heruntergeladen und unter » https://svn.php.net/viewvc/ eingesehen werden. Die Dokumentation befinden sich im Modul phpdoc.


Übersetzungen

Das PHP Handbuch ist nicht nur in verschiedenen Formaten, sondern auch in verschiedenen Sprachen verfügbar. Der Inhalt wird zuerst auf englisch geschrieben, bevor er von Teams auf der ganzen Welt in ihre Muttersprache übersetzt wird. Wenn die Übersetzung einer bestimmten Funktion oder eines Kapitels noch nicht abgeschlossen ist, so wird die englische Version angezeigt.

Die Personen, die an der Handbuchübersetzung mitwirken, beginnen mit dem XML Quellcode, von » https://svn.php.net/viewvc/ und übersetzen diesen in ihre Muttersprache. Sie verwenden nicht die generierten Formate (wie HTML oder reinen Text), da sich das Build System sich um die Konvertierungen von XML in lesbare Formate kümmert.

Hinweis:

Wenn Sie bei der Übersetzung der Dokumentation mithelfen wollen, kontaktieren Sie bitte das Überetzungs- bzw. Dokumentationsteam, indem Sie die phpdoc Mailingliste abonnieren: Senden Sie eine Email an » phpdoc-subscribe@lists.php.net. Die Adresse der Mailingliste ist phpdoc@lists.php.net. Schreiben Sie, dass Sie interessiert sind, das Handbuch zu übersetzen und es wird sich sicher jemand bei Ihnen mit Feedback zum Anfangen einer neuen Überstzung melden oder das bestehenden Team für die gewünschte Sprache kontaktieren.

Im Moment ist das Handbuch (teilweise oder vollständig) in mehr als zehn Sprachen übersetzt.

Sämtliche Übersetzungen können hier heruntergeladen werden: » https://www.php.net/docs.php.


Creative Commons Attribution 3.0

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

  1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
  2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
  3. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
  4. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
  5. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
  6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
  7. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
  8. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.

2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

  1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
  2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
  3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
  4. to Distribute and Publicly Perform Adaptations.

  5. For the avoidance of doubt:

    1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
    2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
    3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.

The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.

4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

  1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.
  2. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
  3. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination.

  1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
  2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

8. Miscellaneous

  1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
  2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
  3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
  4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent
  5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
  6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.


  • « Creative Commons Attribution 3.0
  • Funktions- und Methodenverzeichnis »
  • PHP Manual
  • Appendices
  • Verzeichnis der Inhaltsverzeichnisse

Verzeichnis der Inhaltsverzeichnisse

Inhaltsverzeichnis

  • Funktions- und Methodenverzeichnis
  • Verzeichnis der Beispiele


Funktions- und Methodenverzeichnis

Verzeichnis aller Funktionen und Methoden im Handbuch

a b c d e f g h i j k l m n o p q r s t u v w x y z _

  • a
    • abs - Absolutwert bzw. Betrag
    • acos - Arkuskosinus
    • acosh - Areakosinus hyperbolikus
    • addcslashes - Stellt bestimmten Zeichen eines Strings ein "\" voran (wie in C)
    • addslashes - Stellt bestimmten Zeichen eines Strings ein "\" voran
    • apache_child_terminate - Beendet einen Apacheprozess nach der Anfrage
    • apache_getenv - Liefert eine Apache-Subprocess_env-Variable
    • apache_get_modules - Liefert eine Liste der geladenen Apachemodule
    • apache_get_version - Liefert die Apacheversion
    • apache_lookup_uri - Führt eine Teilanfrage für einen angegebenen URI durch und liefert alle Informationen darüber zurück
    • apache_note - Setzt und liest Apache Request Notes
    • apache_request_headers - Liefert alle HTTP-Requestheader
    • apache_response_headers - Liefert alle HTTP-Responseheader
    • apache_setenv - Setzt eine Apache-Subprocess_env-Variable
    • APCUIterator::current - Get current item
    • APCUIterator::getTotalCount - Get total count
    • APCUIterator::getTotalHits - Get total cache hits
    • APCUIterator::getTotalSize - Get total cache size
    • APCUIterator::key - Get iterator key
    • APCUIterator::next - Move pointer to next item
    • APCUIterator::rewind - Rewinds iterator
    • APCUIterator::valid - Checks if current position is valid
    • APCUIterator::__construct - Constructs an APCUIterator iterator object
    • apcu_add - Cache a new variable in the data store
    • apcu_cache_info - Retrieves cached information from APCu's data store
    • apcu_cas - Updates an old value with a new value
    • apcu_clear_cache - Clears the APCu cache
    • apcu_dec - Decrease a stored number
    • apcu_delete - Removes a stored variable from the cache
    • apcu_enabled - Whether APCu is usable in the current environment
    • apcu_entry - Atomically fetch or generate a cache entry
    • apcu_exists - Checks if entry exists
    • apcu_fetch - Fetch a stored variable from the cache
    • apcu_inc - Increase a stored number
    • apcu_key_info - Get detailed information about the cache key
    • apcu_sma_info - Retrieves APCu Shared Memory Allocation information
    • apcu_store - Cache a variable in the data store
    • AppendIterator::append - Appends an iterator
    • AppendIterator::current - Gets the current value
    • AppendIterator::getArrayIterator - Gets the ArrayIterator
    • AppendIterator::getInnerIterator - Gets the inner iterator
    • AppendIterator::getIteratorIndex - Gets an index of iterators
    • AppendIterator::key - Gets the current key
    • AppendIterator::next - Moves to the next element
    • AppendIterator::rewind - Rewinds the Iterator
    • AppendIterator::valid - Checks validity of the current element
    • AppendIterator::__construct - Constructs an AppendIterator
    • array - Erstellt ein Array
    • ArrayAccess::offsetExists - Prüft, ob ein Offset-Punkt existiert
    • ArrayAccess::offsetGet - Gibt den Wert eines Offset-Punkts zurück
    • ArrayAccess::offsetSet - Zuweisen eines Wertes an angegebenen Offset
    • ArrayAccess::offsetUnset - Löschen eines Offsets
    • ArrayIterator::append - Append an element
    • ArrayIterator::asort - Sort array by values
    • ArrayIterator::count - Count elements
    • ArrayIterator::current - Return current array entry
    • ArrayIterator::getArrayCopy - Get array copy
    • ArrayIterator::getFlags - Get behavior flags
    • ArrayIterator::key - Return current array key
    • ArrayIterator::ksort - Sort array by keys
    • ArrayIterator::natcasesort - Sort an array naturally, case insensitive
    • ArrayIterator::natsort - Sort an array naturally
    • ArrayIterator::next - Move to next entry
    • ArrayIterator::offsetExists - Check if offset exists
    • ArrayIterator::offsetGet - Get value for an offset
    • ArrayIterator::offsetSet - Set value for an offset
    • ArrayIterator::offsetUnset - Unset value for an offset
    • ArrayIterator::rewind - Rewind array back to the start
    • ArrayIterator::seek - Seek to position
    • ArrayIterator::serialize - Serialize
    • ArrayIterator::setFlags - Set behaviour flags
    • ArrayIterator::uasort - Sort with a user-defined comparison function and maintain index association
    • ArrayIterator::uksort - Sort by keys using a user-defined comparison function
    • ArrayIterator::unserialize - Unserialize
    • ArrayIterator::valid - Check whether array contains more entries
    • ArrayIterator::__construct - Construct an ArrayIterator
    • ArrayObject::append - Appends the value
    • ArrayObject::asort - Sort the entries by value
    • ArrayObject::count - Get the number of public properties in the ArrayObject
    • ArrayObject::exchangeArray - Exchange the array for another one
    • ArrayObject::getArrayCopy - Creates a copy of the ArrayObject
    • ArrayObject::getFlags - Gets the behavior flags
    • ArrayObject::getIterator - Create a new iterator from an ArrayObject instance
    • ArrayObject::getIteratorClass - Gets the iterator classname for the ArrayObject
    • ArrayObject::ksort - Sort the entries by key
    • ArrayObject::natcasesort - Sort an array using a case insensitive "natural order" algorithm
    • ArrayObject::natsort - Sort entries using a "natural order" algorithm
    • ArrayObject::offsetExists - Returns whether the requested index exists
    • ArrayObject::offsetGet - Returns the value at the specified index
    • ArrayObject::offsetSet - Sets the value at the specified index to newval
    • ArrayObject::offsetUnset - Unsets the value at the specified index
    • ArrayObject::serialize - Serialize an ArrayObject
    • ArrayObject::setFlags - Sets the behavior flags
    • ArrayObject::setIteratorClass - Sets the iterator classname for the ArrayObject
    • ArrayObject::uasort - Sort the entries with a user-defined comparison function and maintain key association
    • ArrayObject::uksort - Sort the entries by keys using a user-defined comparison function
    • ArrayObject::unserialize - Unserialize an ArrayObject
    • ArrayObject::__construct - Construct a new array object
    • array_change_key_case - Ändert die Groß- oder Kleinschreibung aller Schlüssel in einem Array
    • array_chunk - Splittet ein Array in Teile auf
    • array_column - Return the values from a single column in the input array
    • array_combine - Erzeugt ein Array, indem es ein Array für die Schlüssel und ein anderes für die Werte verwendet
    • array_count_values - Zählt die Werte eines Arrays
    • array_diff - Ermittelt die Unterschiede zwischen Arrays
    • array_diff_assoc - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
    • array_diff_key - Berechnet den Unterschied zwischen Arrays, indem es die Schlüssel vergleicht
    • array_diff_uassoc - Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
    • array_diff_ukey - Berechnet den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Vergleich der Schlüssel
    • array_fill - Füllt ein Array mit Werten
    • array_fill_keys - Befüllt ein Array mit Werten mit den übergebenen Schlüsseln
    • array_filter - Filtert Elemente eines Arrays mittels einer Callback-Funktion
    • array_flip - Vertauscht alle Schlüssel mit ihren zugehörigen Werten in einem Array
    • array_intersect - Ermittelt die Schnittmenge von Arrays
    • array_intersect_assoc - Ermittelt die Schnittmenge von Arrays mit Indexprüfung
    • array_intersect_key - Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht
    • array_intersect_uassoc - Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion
    • array_intersect_ukey - Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches
    • array_keys - Liefert alle Schlüssel oder eine Teilmenge aller Schlüssel eines Arrays
    • array_key_exists - Prüft, ob ein Schlüssel in einem Array existiert
    • array_key_first - Gets the first key of an array
    • array_key_last - Gets the last key of an array
    • array_map - Wendet eine Callback-Funktion auf die Elemente von Arrays an
    • array_merge - Führt zwei oder mehr Arrays zusammen
    • array_merge_recursive - Führt ein oder mehrere Arrays rekursiv zusammen
    • array_multisort - Sortiert mehrere oder multidimensionale Arrays
    • array_pad - Füllt ein Array bis auf die angegebene Länge mit einem Wert auf
    • array_pop - Liefert und entfernt das letzte Element eines Arrays
    • array_product - Ermittelt das Produkt von Werten in einem Array
    • array_push - Fügt ein oder mehr Elemente an das Ende eines Arrays an
    • array_rand - Liefert einen oder mehrere zufällige Schlüssel eines Arrays
    • array_reduce - Iterative Reduktion eines Arrays zu einem Wert mittels einer Callbackfunktion
    • array_replace - Ersetzt Elemente von übergebenen Arrays im ersten Array
    • array_replace_recursive - Replaces elements from passed arrays into the first array recursively
    • array_reverse - Liefert ein Array mit umgekehrter Reihenfolge der Elemente
    • array_search - Durchsucht ein Array nach einem Wert und liefert bei Erfolg den zugehörigen Schlüssel
    • array_shift - Liefert und entfernt das erste Element eines Arrays
    • array_slice - Extrahiert einen Ausschnitt eines Arrays
    • array_splice - Entfernt einen Teil eines Arrays und ersetzt ihn durch etwas anderes
    • array_sum - Liefert die Summe der Werte in einem Array
    • array_udiff - Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
    • array_udiff_assoc - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
    • array_udiff_uassoc - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
    • array_uintersect - Ermittelt die Schnittmenge von Arrays, vergleicht Daten mittels einer Callbackfunktion
    • array_uintersect_assoc - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
    • array_uintersect_uassoc - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen
    • array_unique - Entfernt doppelte Werte aus einem Array
    • array_unshift - Fügt ein oder mehr Elemente am Anfang eines Arrays ein
    • array_values - Liefert alle Werte eines Arrays
    • array_walk - Wendet eine vom Benutzer gelieferte Funktion auf jedes Element eines Arrays an
    • array_walk_recursive - Wendet eine Benutzerfunktion rekursiv auf jedes Element eines Arrays an
    • arsort - Sortiert ein Array in umgekehrter Reihenfolge und erhält die Index-Assoziation
    • asin - Arkussinus
    • asinh - Areasinus hyperbolikus
    • asort - Sortiert ein Array und erhält die Index-Assoziation
    • assert - Prüft ab, ob eine Zusicherung false ist
    • assert_options - Setzt oder liefert die Assert-Optionen
    • atan - Arkustangens
    • atan2 - Arkustangens-Variante mit zwei Parametern
    • atanh - Areatangens hyperbolikus
  • b
    • base64_decode - Dekodiert MIME base64-kodierte Daten
    • base64_encode - Kodiert Daten MIME base64
    • basename - Gibt letzten Namensteil einer Pfadangabe zurück
    • BaseResult::getWarnings - Fetch warnings from last operation
    • BaseResult::getWarningsCount - Fetch warning count from last operation
    • base_convert - Wandelt einen numerischen Wert zwischen verschiedenen Zahlensystemen um
    • 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 einer Zahl beliebiger Genauigkeit
    • bcpowmod - Potenz einer Zahl beliebiger Genauigkeit, vermindert um ein angegebenen Modulo
    • bcscale - Setzt oder holt die Genauigkeit aller BCmath-Funktionen
    • bcsqrt - Ermittelt die Quadratwurzel einer Zahl beliebiger Genauigkeit
    • bcsub - Subtrahiert zwei Zahlen beliebiger Genauigkeit
    • bin2hex - Wandelt Binär-Daten in ihre hexadezimale Entsprechung um
    • bindec - Wandelt von binär zu dezimal um
    • bindtextdomain - Setzt den Pfad für eine Domain
    • bind_textdomain_codeset - Gibt das Encoding an, in dem Texte aus der Übersetzungstabelle der DOMAIN zurückgegeben werden
    • boolval - Get the boolean value of a variable
    • bson_decode - Deserializes a BSON object into a PHP array
    • bson_encode - Serializes a PHP variable into a BSON string
    • bzclose - Schließt eine bzip2-Datei
    • bzcompress - Komprimiert eine Zeichenkette in bzip2-encodierte Daten
    • bzdecompress - Dekomprimiert bzip2-kodierte Daten
    • bzerrno - Gibt eine bzip2-Fehlernummer zurück
    • bzerror - Gibt die bzip2-Fehlernummer und die -Fehlermeldung in einem Array zurück
    • bzerrstr - Gibt eine bzip2-Fehlermeldung zurÃ¼ck
    • bzflush - Erzwingt das Schreiben aller gepufferten Daten
    • bzopen - Öffnet eine bzip2-komprimierte Datei
    • bzread - Binär-sicheres Lesen aus einer bzip2-Datei
    • bzwrite - Binär-sicheres Schreiben einer bzip2-Datei
  • c
    • CachingIterator::count - The number of elements in the iterator
    • CachingIterator::current - Return the current element
    • CachingIterator::getCache - Retrieve the contents of the cache
    • CachingIterator::getFlags - Get flags used
    • CachingIterator::getInnerIterator - Returns the inner iterator
    • CachingIterator::hasNext - Check whether the inner iterator has a valid next element
    • CachingIterator::key - Return the key for the current element
    • CachingIterator::next - Move the iterator forward
    • CachingIterator::offsetExists - The offsetExists purpose
    • CachingIterator::offsetGet - The offsetGet purpose
    • CachingIterator::offsetSet - The offsetSet purpose
    • CachingIterator::offsetUnset - The offsetUnset purpose
    • CachingIterator::rewind - Rewind the iterator
    • CachingIterator::setFlags - The setFlags purpose
    • CachingIterator::valid - Check whether the current element is valid
    • CachingIterator::__construct - Construct a new CachingIterator object for the iterator
    • CachingIterator::__toString - Return the string representation of the current element
    • CallbackFilterIterator::accept - Calls the callback with the current value, the current key and the inner iterator as arguments
    • CallbackFilterIterator::__construct - Create a filtered iterator from another iterator
    • call_user_func - Aufruf der Callback-Funktion die als erster Parameter übergeben wurde
    • call_user_func_array - Call a callback with an array of parameters
    • cal_days_in_month - Gibt die Anzahl der Tage eines bestimmten Monats in einem bestimmten Jahr in einem bestimmten Kalender zurück
    • cal_from_jd - Konvertiert von Julian Day Count zu einem unterstützten Kalender
    • cal_info - Gibt Informationen zu einem bestimmten Kalender zurück
    • cal_to_jd - Konvertiert von einem unterstützten Kalenderformat in Julian-Format
    • ceil - Rundet Brüche auf
    • chdir - Wechseln des Verzeichnisses
    • checkdate - Prüft ein Gregorianisches Datum auf Gültigkeit
    • checkdnsrr - Prüft DNS-Einträge auf Übereinstimmung mit einem gegebenen Internet-Hostnamen oder einer IP-Adresse
    • chgrp - Wechselt die Gruppenzugehörigkeit einer Datei
    • chmod - Ändert die Zugriffsrechte einer Datei
    • chop - Alias von rtrim
    • chown - Ändert den Eigentümer einer Datei
    • chr - Erzeugt eine Ein-Byte-Zeichenkette aus einer Zahl
    • chroot - Wechselt das Root-Verzeichnis
    • chunk_split - Zerlegt einen String in Teile gleicher Länge
    • classkit_import - Import new class method definitions from a file
    • classkit_method_add - Dynamically adds a new method to a given class
    • classkit_method_copy - Copies a method from class to another
    • classkit_method_redefine - Dynamically changes the code of the given method
    • classkit_method_remove - Dynamically removes the given method
    • classkit_method_rename - Dynamically changes the name of the given method
    • class_alias - Creates an alias for a class
    • class_exists - Checks if the class has been defined
    • class_implements - Return the interfaces which are implemented by the given class or interface
    • class_parents - Return the parent classes of the given class
    • class_uses - Return the traits used by the given class
    • clearstatcache - Löscht den Status Cache
    • Client::getClient - Get client session
    • Client::__construct - Client constructor
    • cli_get_process_title - Returns the current process title
    • cli_set_process_title - Sets the process title
    • closedir - Schließen eines Verzeichnis-Handles
    • closelog - Schließt die Verbindung zum System-Logger
    • Closure::bind - Duplicates a closure with a specific bound object and class scope
    • Closure::bindTo - Duplicates the closure with a new bound object and class scope
    • Closure::call - Binds and calls the closure
    • Closure::fromCallable - Converts a callable into a closure
    • Closure::__construct - Constructor that disallows instantiation
    • Collator::asort - Sort array maintaining index association
    • Collator::compare - Compare two Unicode strings
    • Collator::create - Create a collator
    • Collator::getAttribute - Get collation attribute value
    • Collator::getErrorCode - Get collator's last error code
    • Collator::getErrorMessage - Get text for collator's last error code
    • Collator::getLocale - Get the locale name of the collator
    • Collator::getSortKey - Get sorting key for a string
    • Collator::getStrength - Get current collation strength
    • Collator::setAttribute - Set collation attribute
    • Collator::setStrength - Set collation strength
    • Collator::sort - Sort array using specified collator
    • Collator::sortWithSortKeys - Sort array using specified collator and sort keys
    • Collator::__construct - Create a collator
    • Collectable::isGarbage - Determine whether an object has been marked as garbage
    • Collectable::setGarbage - Mark an object as garbage
    • Collection::add - Add collection document
    • Collection::addOrReplaceOne - Add or replace collection document
    • Collection::count - Get document count
    • Collection::createIndex - Create collection index
    • Collection::dropIndex - Drop collection index
    • Collection::existsInDatabase - Check if collection exists in database
    • Collection::find - Search for document
    • Collection::getName - Get collection name
    • Collection::getOne - Get one document
    • Collection::getSchema - Get schema object
    • Collection::getSession - Get session object
    • Collection::modify - Modify collection documents
    • Collection::remove - Remove collection documents
    • Collection::removeOne - Remove one collection document
    • Collection::replaceOne - Replace one collection document
    • Collection::__construct - Collection constructor
    • CollectionAdd::execute - Execute the statement
    • CollectionAdd::__construct - CollectionAdd constructor
    • CollectionFind::bind - Bind value to query placeholder
    • CollectionFind::execute - Execute the statement
    • CollectionFind::fields - Set document field filter
    • CollectionFind::groupBy - Set grouping criteria
    • CollectionFind::having - Set condition for aggregate functions
    • CollectionFind::limit - Limit number of returned documents
    • CollectionFind::lockExclusive - Execute operation with EXCLUSIVE LOCK
    • CollectionFind::lockShared - Execute operation with SHARED LOCK
    • CollectionFind::offset - Skip given number of elements to be returned
    • CollectionFind::sort - Set the sorting criteria
    • CollectionFind::__construct - CollectionFind constructor
    • CollectionModify::arrayAppend - Append element to an array field
    • CollectionModify::arrayInsert - Insert element into an array field
    • CollectionModify::bind - Bind value to query placeholder
    • CollectionModify::execute - Execute modify operation
    • CollectionModify::limit - Limit number of modified documents
    • CollectionModify::patch - Patch document
    • CollectionModify::replace - Replace document field
    • CollectionModify::set - Set document attribute
    • CollectionModify::skip - Skip elements
    • CollectionModify::sort - Set the sorting criteria
    • CollectionModify::unset - Unset the value of document fields
    • CollectionModify::__construct - CollectionModify constructor
    • CollectionRemove::bind - Bind value to placeholder
    • CollectionRemove::execute - Execute remove operation
    • CollectionRemove::limit - Limit number of documents to remove
    • CollectionRemove::sort - Set the sorting criteria
    • CollectionRemove::__construct - CollectionRemove constructor
    • ColumnResult::getCharacterSetName - Get character set
    • ColumnResult::getCollationName - Get collation name
    • ColumnResult::getColumnLabel - Get column label
    • ColumnResult::getColumnName - Get column name
    • ColumnResult::getFractionalDigits - Get fractional digit length
    • ColumnResult::getLength - Get column field length
    • ColumnResult::getSchemaName - Get schema name
    • ColumnResult::getTableLabel - Get table label
    • ColumnResult::getTableName - Get table name
    • ColumnResult::getType - Get column type
    • ColumnResult::isNumberSigned - Check if signed type
    • ColumnResult::isPadded - Check if padded
    • ColumnResult::__construct - ColumnResult constructor
    • com::__construct - com-Klassenkonstruktor
    • CommonMark\CQL::__construct - CQL Construction
    • CommonMark\CQL::__invoke - CQL Execution
    • CommonMark\Interfaces\IVisitable::accept - Visitation
    • CommonMark\Interfaces\IVisitor::enter - Visitation
    • CommonMark\Interfaces\IVisitor::leave - Visitation
    • CommonMark\Node::accept - Visitation
    • CommonMark\Node::appendChild - AST Manipulation
    • CommonMark\Node::insertAfter - AST Manipulation
    • CommonMark\Node::insertBefore - AST Manipulation
    • CommonMark\Node::prependChild - AST Manipulation
    • CommonMark\Node::replace - AST Manipulation
    • CommonMark\Node::unlink - AST Manipulation
    • CommonMark\Node\BulletList::__construct - BulletList Construction
    • CommonMark\Node\CodeBlock::__construct - CodeBlock Construction
    • CommonMark\Node\Heading::__construct - Heading Construction
    • CommonMark\Node\Image::__construct - Image Construction
    • CommonMark\Node\Link::__construct - Link Construction
    • CommonMark\Node\OrderedList::__construct - OrderedList Construction
    • CommonMark\Node\Text::__construct - Text Construction
    • CommonMark\Parse - Parsing
    • CommonMark\Parser::finish - Parsing
    • CommonMark\Parser::parse - Parsing
    • CommonMark\Parser::__construct - Parsing
    • CommonMark\Render - Rendering
    • CommonMark\Render\HTML - Rendering
    • CommonMark\Render\Latex - Rendering
    • CommonMark\Render\Man - Rendering
    • CommonMark\Render\XML - Rendering
    • compact - Erstellt ein Array mit Variablen und deren Werten
    • COMPersistHelper::GetCurFileName - Get current filename
    • COMPersistHelper::GetMaxStreamSize - Get maximum stream size
    • COMPersistHelper::InitNew - Initialize object to default state
    • COMPersistHelper::LoadFromFile - Load object from file
    • COMPersistHelper::LoadFromStream - Load object from stream
    • COMPersistHelper::SaveToFile - Save object to file
    • COMPersistHelper::SaveToStream - Save object to stream
    • COMPersistHelper::__construct - Construct a COMPersistHelper object
    • Componere\Abstract\Definition::addInterface - Add Interface
    • Componere\Abstract\Definition::addMethod - Add Method
    • Componere\Abstract\Definition::addTrait - Add Trait
    • Componere\Abstract\Definition::getReflector - Reflection
    • Componere\cast - Casting
    • Componere\cast_by_ref - Casting
    • Componere\Definition::addConstant - Add Constant
    • Componere\Definition::addProperty - Add Property
    • Componere\Definition::getClosure - Get Closure
    • Componere\Definition::getClosures - Get Closures
    • Componere\Definition::isRegistered - State Detection
    • Componere\Definition::register - Registration
    • Componere\Definition::__construct - Definition Construction
    • Componere\Method::getReflector - Reflection
    • Componere\Method::setPrivate - Accessibility Modification
    • Componere\Method::setProtected - Accessibility Modification
    • Componere\Method::setStatic - Accessibility Modification
    • Componere\Method::__construct - Method Construction
    • Componere\Patch::apply - Application
    • Componere\Patch::derive - Patch Derivation
    • Componere\Patch::getClosure - Get Closure
    • Componere\Patch::getClosures - Get Closures
    • Componere\Patch::isApplied - State Detection
    • Componere\Patch::revert - Reversal
    • Componere\Patch::__construct - Patch Construction
    • Componere\Value::hasDefault - Value Interaction
    • Componere\Value::isPrivate - Accessibility Detection
    • Componere\Value::isProtected - Accessibility Detection
    • Componere\Value::isStatic - Accessibility Detection
    • Componere\Value::setPrivate - Accessibility Modification
    • Componere\Value::setProtected - Accessibility Modification
    • Componere\Value::setStatic - Accessibility Modification
    • Componere\Value::__construct - Value Construction
    • com_create_guid - Generate a globally unique identifier (GUID)
    • com_event_sink - Connect events from a COM object to a PHP object
    • com_get_active_object - Returns a handle to an already running instance of a COM object
    • com_load_typelib - Lädt eine Typelib
    • com_message_pump - Process COM messages, sleeping for up to timeoutms milliseconds
    • com_print_typeinfo - Print out a PHP class definition for a dispatchable interface
    • Cond::broadcast - Broadcast a Condition
    • Cond::create - Create a Condition
    • Cond::destroy - Destroy a Condition
    • Cond::signal - Signal a Condition
    • Cond::wait - Wait for Condition
    • connection_aborted - Überprüft, ob die Verbindung zum Client beendet wurde
    • connection_status - Liefert den Verbindungsstatus als Bitfeld
    • constant - Liefert den Wert einer Konstante
    • convert_cyr_string - Konvertiert Strings von einem kyrillischen Zeichensatz in einen anderen
    • convert_uudecode - Dekodiert eine UU-kodierte Zeichenkette
    • convert_uuencode - UU-kodiert eine Zeichenkette
    • copy - Kopiert eine Datei
    • cos - Kosinus
    • cosh - Kosinus hyperbolikus
    • count - Zählt alle Elemente eines Arrays oder etwas in einem Objekt
    • Countable::count - Zählt die Elemente eines Objekts
    • count_chars - Gibt Informationen über die in einem String enthaltenen Zeichen zurück
    • crc32 - Berechnet den polynomischen CRC32-Wert eines Strings
    • create_function - Erzeugen einer anonymen (Lambda-Stil) Funktion
    • CrudOperationBindable::bind - Bind value to placeholder
    • CrudOperationLimitable::limit - Set result limit
    • CrudOperationSkippable::skip - Number of operations to skip
    • CrudOperationSortable::sort - Sort results
    • crypt - Einweg-String-Hashing
    • ctype_alnum - Auf alphanumerische Zeichen überprüfen
    • ctype_alpha - Auf Buchstabe(n) überprüfen
    • ctype_cntrl - Auf Steuerzeichen überprüfen
    • ctype_digit - Auf Ziffern überprüfen
    • ctype_graph - Auf druckbare Zeichen (außer Leerzeichen) überprüfen
    • ctype_lower - Auf Kleinbuchstaben überprüfen
    • ctype_print - Auf druckbare Zeichen überprüfen
    • ctype_punct - Prüft auf Sonderzeichen, d.h. auf druckbare Zeichen die weder Buchstaben noch Ziffern noch Leerzeichen sind.
    • ctype_space - Auf Leerzeichen überprüfen
    • ctype_upper - Auf Großbuchstaben prüfen
    • ctype_xdigit - Auf Hexadezimalziffern überprüfen
    • cubrid_affected_rows - Return the number of rows affected by the last SQL statement
    • cubrid_bind - Bind variables to a prepared statement as parameters
    • cubrid_client_encoding - Return the current CUBRID connection charset
    • cubrid_close - Close CUBRID connection
    • cubrid_close_prepare - Close the request handle
    • cubrid_close_request - Close the request handle
    • cubrid_column_names - Get the column names in result
    • cubrid_column_types - Get column types in result
    • cubrid_col_get - Get contents of collection type column using OID
    • cubrid_col_size - Get the number of elements in collection type column using OID
    • cubrid_commit - Commit a transaction
    • cubrid_connect - Open a connection to a CUBRID Server
    • cubrid_connect_with_url - Establish the environment for connecting to CUBRID server
    • cubrid_current_oid - Get OID of the current cursor location
    • cubrid_data_seek - Move the internal row pointer of the CUBRID result
    • cubrid_db_name - Get db name from results of cubrid_list_dbs
    • cubrid_disconnect - Close a database connection
    • cubrid_drop - Delete an instance using OID
    • cubrid_errno - Return the numerical value of the error message from previous CUBRID operation
    • cubrid_error - Get the error message
    • cubrid_error_code - Get error code for the most recent function call
    • cubrid_error_code_facility - Get the facility code of error
    • cubrid_error_msg - Get last error message for the most recent function call
    • cubrid_execute - Execute a prepared SQL statement
    • cubrid_fetch - Fetch the next row from a result set
    • cubrid_fetch_array - Fetch a result row as an associative array, a numeric array, or both
    • cubrid_fetch_assoc - Return the associative array that corresponds to the fetched row
    • cubrid_fetch_field - Get column information from a result and return as an object
    • cubrid_fetch_lengths - Return an array with the lengths of the values of each field from the current row
    • cubrid_fetch_object - Fetch the next row and return it as an object
    • cubrid_fetch_row - Return a numerical array with the values of the current row
    • cubrid_field_flags - Return a string with the flags of the given field offset
    • cubrid_field_len - Get the maximum length of the specified field
    • cubrid_field_name - Return the name of the specified field index
    • cubrid_field_seek - Move the result set cursor to the specified field offset
    • cubrid_field_table - Return the name of the table of the specified field
    • cubrid_field_type - Return the type of the column corresponding to the given field offset
    • cubrid_free_result - Free the memory occupied by the result data
    • cubrid_get - Get a column using OID
    • cubrid_get_autocommit - Get auto-commit mode of the connection
    • cubrid_get_charset - Return the current CUBRID connection charset
    • cubrid_get_class_name - Get the class name using OID
    • cubrid_get_client_info - Return the client library version
    • cubrid_get_db_parameter - Returns the CUBRID database parameters
    • cubrid_get_query_timeout - Get the query timeout value of the request
    • cubrid_get_server_info - Return the CUBRID server version
    • cubrid_insert_id - Return the ID generated for the last updated AUTO_INCREMENT column
    • cubrid_is_instance - Check whether the instance pointed by OID exists
    • cubrid_list_dbs - Return an array with the list of all existing CUBRID databases
    • cubrid_load_from_glo - Read data from a GLO instance and save it in a file
    • cubrid_lob2_bind - Bind a lob object or a string as a lob object to a prepared statement as parameters
    • cubrid_lob2_close - Close LOB object
    • cubrid_lob2_export - Export the lob object to a file
    • cubrid_lob2_import - Import BLOB/CLOB data from a file
    • cubrid_lob2_new - Create a lob object
    • cubrid_lob2_read - Read from BLOB/CLOB data
    • cubrid_lob2_seek - Move the cursor of a lob object
    • cubrid_lob2_seek64 - Move the cursor of a lob object
    • cubrid_lob2_size - Get a lob object's size
    • cubrid_lob2_size64 - Get a lob object's size
    • cubrid_lob2_tell - Tell the cursor position of the LOB object
    • cubrid_lob2_tell64 - Tell the cursor position of the LOB object
    • cubrid_lob2_write - Write to a lob object
    • cubrid_lob_close - Close BLOB/CLOB data
    • cubrid_lob_export - Export BLOB/CLOB data to file
    • cubrid_lob_get - Get BLOB/CLOB data
    • cubrid_lob_send - Read BLOB/CLOB data and send straight to browser
    • cubrid_lob_size - Get BLOB/CLOB data size
    • cubrid_lock_read - Set a read lock on the given OID
    • cubrid_lock_write - Set a write lock on the given OID
    • cubrid_move_cursor - Move the cursor in the result
    • cubrid_new_glo - Create a glo instance
    • cubrid_next_result - Get result of next query when executing multiple SQL statements
    • cubrid_num_cols - Return the number of columns in the result set
    • cubrid_num_fields - Return the number of columns in the result set
    • cubrid_num_rows - Get the number of rows in the result set
    • cubrid_pconnect - Open a persistent connection to a CUBRID server
    • cubrid_pconnect_with_url - Open a persistent connection to CUBRID server
    • cubrid_ping - Ping a server connection or reconnect if there is no connection
    • cubrid_prepare - Prepare a SQL statement for execution
    • cubrid_put - Update a column using OID
    • cubrid_query - Send a CUBRID query
    • cubrid_real_escape_string - Escape special characters in a string for use in an SQL statement
    • cubrid_result - Return the value of a specific field in a specific row
    • cubrid_rollback - Roll back a transaction
    • cubrid_save_to_glo - Save requested file in a GLO instance
    • cubrid_schema - Get the requested schema information
    • cubrid_send_glo - Read data from glo and send it to std output
    • cubrid_seq_drop - Delete an element from sequence type column using OID
    • cubrid_seq_insert - Insert an element to a sequence type column using OID
    • cubrid_seq_put - Update the element value of sequence type column using OID
    • cubrid_set_add - Insert a single element to set type column using OID
    • cubrid_set_autocommit - Set autocommit mode of the connection
    • cubrid_set_db_parameter - Sets the CUBRID database parameters
    • cubrid_set_drop - Delete an element from set type column using OID
    • cubrid_set_query_timeout - Set the timeout time of query execution
    • cubrid_unbuffered_query - Perform a query without fetching the results into memory
    • cubrid_version - Get the CUBRID PHP module's version
    • CURLFile::getFilename - Ermittelt den Dateinamen
    • CURLFile::getMimeType - Ermittelt den Mime-Typ
    • CURLFile::getPostFilename - Ermittelt den Dateinamen für POST
    • CURLFile::setMimeType - Setzt den Mime-Typ fest
    • CURLFile::setPostFilename - Setzt den Dateinamen für POST fest
    • CURLFile::__construct - Erstellt ein CURLFile Objekt
    • CURL Kontextoptionen - Liste der CURL Kontextoptionen
    • curl_close - Eine cURL-Session beenden
    • curl_copy_handle - Kopieren eines cURL-Handles inklusiver aller Voreinstellungen
    • curl_errno - Gibt die letzte Fehlernummer zurück
    • curl_error - Gibt einen String zurück, der den letzten Fehler der aktuellen Session enthält
    • curl_escape - URL-kodiert den angegebenen String
    • curl_exec - Eine cURL-Session ausführen
    • curl_getinfo - Informationen zu einem bestimmten Transfer abfragen
    • curl_init - Eine cURL-Session initialisieren
    • curl_multi_add_handle - Fügt ein reguläres cURL-Handle einem cURL-Multi-Handle hinzu
    • curl_multi_close - Eine Gruppe von cURL-Handlern schließen
    • curl_multi_errno - Return the last multi curl error number
    • curl_multi_exec - Führt die Unter-Verbindungen des cURL-Handles aus
    • curl_multi_getcontent - Den Inhalt des cURL-Handles zurückgeben, falls CURLOPT_RETURNTRANSFER gesetzt ist
    • curl_multi_info_read - Informationen über die aktuellen Transfers abrufen
    • curl_multi_init - Gibt einen cURL-Multi-Handle zurück
    • curl_multi_remove_handle - Einen Multi-Handle von einer Menge aus cURL-Handles entfernen
    • curl_multi_select - Alle Sockets abfragen, die mit der cURL Erweiterung assoziiert sind und ausgewählt werden können
    • curl_multi_setopt - Setz eine Option für das cURL multi-Handle
    • curl_multi_strerror - Gibt einen den Fehler beschreibenden String zurück
    • curl_pause - Pausiert und setzt eine Verbindung fort
    • curl_reset - Reset all options of a libcurl session handle
    • curl_setopt - Eine Option für einen cURL Transfer setzen
    • curl_setopt_array - Mehrere Optionen für einen cURL-Transfer setzen
    • curl_share_close - Close a cURL share handle
    • curl_share_errno - Return the last share curl error number
    • curl_share_init - Initialize a cURL share handle
    • curl_share_setopt - Set an option for a cURL share handle
    • curl_share_strerror - Return string describing the given error code
    • curl_strerror - Return string describing the given error code
    • curl_unescape - Decodes the given URL encoded string
    • curl_version - Gibt die cURL-Version zurück
    • current - Liefert das aktuelle Element eines Arrays
  • d
    • data:// - Data (RFC 2397)
    • DatabaseObject::existsInDatabase - Check if object exists in database
    • DatabaseObject::getName - Get object name
    • DatabaseObject::getSession - Get session name
    • date - Formatiert ein(e) angegebene(s) Ortszeit/Datum
    • DateInterval::createFromDateString - Bildet ein DateInterval aus relativen Teilen des Strings
    • DateInterval::format - Formats the interval
    • DateInterval::__construct - Erstellt ein neues DateInterval Objekt
    • DatePeriod::getDateInterval - Gets the interval
    • DatePeriod::getEndDate - Gets the end date
    • DatePeriod::getRecurrences - Gets the number of recurrences
    • DatePeriod::getStartDate - Gets the start date
    • DatePeriod::__construct - Erstellt ein neues DatePeriod Objekt
    • DateTime::add - Addiert einen Wert von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden zu einem DateTime-Objekt
    • DateTime::createFromFormat - Parses a time string according to a specified format
    • DateTime::createFromImmutable - Returns new DateTime object encapsulating the given DateTimeImmutable object
    • DateTime::createFromInterface - Returns new DateTime object encapsulating the given DateTimeInterface object
    • DateTime::diff - Returns the difference between two DateTime objects
    • DateTime::format - Returns date formatted according to given format
    • DateTime::getLastErrors - Gibt die Warnungen und Fehler zurück
    • DateTime::getOffset - Returns the timezone offset
    • DateTime::getTimestamp - Gets the Unix timestamp
    • DateTime::getTimezone - Return time zone relative to given DateTime
    • DateTime::modify - Ändert den Zeitstempel
    • DateTime::setDate - Sets the date
    • DateTime::setISODate - Sets the ISO date
    • DateTime::setTime - Sets the time
    • DateTime::setTimestamp - Legt Datum und Zeit basierend auf einem Unix-Zeitstempel fest
    • DateTime::setTimezone - Legt die Zeitzone für ein DateTime Objekt fest
    • DateTime::sub - Subtrahiert eine Anzahl von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden von einem DateTime-Objekt.
    • DateTime::__construct - Gibt ein neues DateTime Objekt zurück
    • DateTime::__set_state - Der __set_state Handler
    • DateTime::__wakeup - The __wakeup handler
    • DateTimeImmutable::add - Adds an amount of days, months, years, hours, minutes and seconds
    • DateTimeImmutable::createFromFormat - Parses a time string according to a specified format
    • DateTimeImmutable::createFromInterface - Returns new DateTimeImmutable object encapsulating the given DateTimeInterface object
    • DateTimeImmutable::createFromMutable - Returns new DateTimeImmutable object encapsulating the given DateTime object
    • DateTimeImmutable::getLastErrors - Returns the warnings and errors
    • DateTimeImmutable::modify - Creates a new object with modified timestamp
    • DateTimeImmutable::setDate - Sets the date
    • DateTimeImmutable::setISODate - Sets the ISO date
    • DateTimeImmutable::setTime - Sets the time
    • DateTimeImmutable::setTimestamp - Sets the date and time based on a Unix timestamp
    • DateTimeImmutable::setTimezone - Sets the time zone
    • DateTimeImmutable::sub - Subtracts an amount of days, months, years, hours, minutes and seconds
    • DateTimeImmutable::__construct - Returns new DateTimeImmutable object
    • DateTimeImmutable::__set_state - The __set_state handler
    • DateTimeZone::getLocation - Returns location information for a timezone
    • DateTimeZone::getName - Returns the name of the timezone
    • DateTimeZone::getOffset - Returns the timezone offset from GMT
    • DateTimeZone::getTransitions - Returns all transitions for the timezone
    • DateTimeZone::listAbbreviations - Returns associative array containing dst, offset and the timezone name
    • DateTimeZone::listIdentifiers - Returns a numerically indexed array containing all defined timezone identifiers
    • DateTimeZone::__construct - Erstellt neues DateTimeZone Objekt
    • date_add - Alias von DateTime::add
    • date_create - Alias von DateTime::__construct
    • date_create_from_format - Alias von DateTime::createFromFormat
    • date_create_immutable - Alias von DateTimeImmutable::__construct
    • date_create_immutable_from_format - Alias von DateTimeImmutable::createFromFormat
    • date_date_set - Alias von DateTime::setDate
    • date_default_timezone_get - Gets the default timezone used by all date/time functions in a script
    • date_default_timezone_set - Setzt die Standardzeitzone, die von allen Datums- und Zeitfunktionen benutzt wird.
    • date_diff - Alias von DateTime::diff
    • date_format - Alias von DateTime::format
    • date_get_last_errors - Alias von DateTime::getLastErrors
    • date_interval_create_from_date_string - Alias von DateInterval::createFromDateString
    • date_interval_format - Alias von DateInterval::format
    • date_isodate_set - Alias von DateTime::setISODate
    • date_modify - Alias von DateTime::modify
    • date_offset_get - Alias von DateTime::getOffset
    • date_parse - Returns associative array with detailed info about given date/time
    • date_parse_from_format - Get info about given date formatted according to the specified format
    • date_sub - Alias von DateTime::sub
    • date_sunrise - Returns time of sunrise for a given day and location
    • date_sunset - Returns time of sunset for a given day and location
    • date_sun_info - Returns an array with information about sunset/sunrise and twilight begin/end
    • date_timestamp_get - Alias von DateTime::getTimestamp
    • date_timestamp_set - Alias von DateTime::setTimestamp
    • date_timezone_get - Alias von DateTime::getTimezone
    • date_timezone_set - Alias von DateTime::setTimezone
    • date_time_set - Alias von DateTime::setTime
    • db2_autocommit - Returns or sets the AUTOCOMMIT state for a database connection
    • db2_bind_param - Binds a PHP variable to an SQL statement parameter
    • db2_client_info - Returns an object with properties that describe the DB2 database client
    • db2_close - Closes a database connection
    • db2_columns - Returns a result set listing the columns and associated metadata for a table
    • db2_column_privileges - Returns a result set listing the columns and associated privileges for a table
    • db2_commit - Commits a transaction
    • db2_connect - Returns a connection to a database
    • db2_conn_error - Returns a string containing the SQLSTATE returned by the last connection attempt
    • db2_conn_errormsg - Returns the last connection error message and SQLCODE value
    • db2_cursor_type - Returns the cursor type used by a statement resource
    • db2_escape_string - Used to escape certain characters
    • db2_exec - Executes an SQL statement directly
    • db2_execute - Executes a prepared SQL statement
    • db2_fetch_array - Returns an array, indexed by column position, representing a row in a result set
    • db2_fetch_assoc - Returns an array, indexed by column name, representing a row in a result set
    • db2_fetch_both - Returns an array, indexed by both column name and position, representing a row in a result set
    • db2_fetch_object - Returns an object with properties representing columns in the fetched row
    • db2_fetch_row - Sets the result set pointer to the next row or requested row
    • db2_field_display_size - Returns the maximum number of bytes required to display a column
    • db2_field_name - Returns the name of the column in the result set
    • db2_field_num - Returns the position of the named column in a result set
    • db2_field_precision - Returns the precision of the indicated column in a result set
    • db2_field_scale - Returns the scale of the indicated column in a result set
    • db2_field_type - Returns the data type of the indicated column in a result set
    • db2_field_width - Returns the width of the current value of the indicated column in a result set
    • db2_foreign_keys - Returns a result set listing the foreign keys for a table
    • db2_free_result - Frees resources associated with a result set
    • db2_free_stmt - Frees resources associated with the indicated statement resource
    • db2_get_option - Retrieves an option value for a statement resource or a connection resource
    • db2_last_insert_id - Returns the auto generated ID of the last insert query that successfully executed on this connection
    • db2_lob_read - Gets a user defined size of LOB files with each invocation
    • db2_next_result - Requests the next result set from a stored procedure
    • db2_num_fields - Returns the number of fields contained in a result set
    • db2_num_rows - Returns the number of rows affected by an SQL statement
    • db2_pclose - Closes a persistent database connection
    • db2_pconnect - Returns a persistent connection to a database
    • db2_prepare - Prepares an SQL statement to be executed
    • db2_primary_keys - Returns a result set listing primary keys for a table
    • db2_procedures - Returns a result set listing the stored procedures registered in a database
    • db2_procedure_columns - Returns a result set listing stored procedure parameters
    • db2_result - Returns a single column from a row in the result set
    • db2_rollback - Rolls back a transaction
    • db2_server_info - Returns an object with properties that describe the DB2 database server
    • db2_set_option - Set options for connection or statement resources
    • db2_special_columns - Returns a result set listing the unique row identifier columns for a table
    • db2_statistics - Returns a result set listing the index and statistics for a table
    • db2_stmt_error - Returns a string containing the SQLSTATE returned by an SQL statement
    • db2_stmt_errormsg - Returns a string containing the last SQL statement error message
    • db2_tables - Returns a result set listing the tables and associated metadata in a database
    • db2_table_privileges - Returns a result set listing the tables and associated privileges in a database
    • dbase_add_record - Hängt einen Datensatz an eine Datenbank an
    • dbase_close - Schließt eine Datenbank
    • dbase_create - Erzeugt eine Datenbank
    • dbase_delete_record - Markiert einen Datensatz als gelöscht
    • dbase_get_header_info - Liefert Informationen des Dateikopfs einer Datenbank
    • dbase_get_record - Liefert einen Datensatz aus einer Datenbank als indiziertes Array
    • dbase_get_record_with_names - Liefert einen Datensatz aus einer Datenbank als assoziatives Array
    • dbase_numfields - Liefert die Anzahl der Felder einer Datenbank
    • dbase_numrecords - Liefert die Anzahl der Datensätze einer Datenbank
    • dbase_open - Öffnet eine Datenbank
    • dbase_pack - Entfernt die als gelöscht markierten Datensätze aus einer Datenbank
    • dbase_replace_record - Ersetzt einen Datensatz in einer Datenbank
    • dba_close - Schließt eine DBA-Datenbank
    • dba_delete - Löscht den zum angegebenen Schlüssel gehörigen DBA-Eintrag
    • dba_exists - Überprüft, ob ein angegebener Schlüssel existiert
    • dba_fetch - Liest die Daten zu einem angegebenen Schlüssel aus
    • dba_firstkey - Liefert den ersten Schlüssel
    • dba_handlers - Listet alle verfügbaren Handler auf
    • dba_insert - Fügt einen Eintrag ein
    • dba_key_split - Zerlegt einen Schlüssel in Zeichenketten-Darstellung in eine Array-Darstellung
    • dba_list - Listet alle offenen Datenbank-Dateien auf
    • dba_nextkey - Liefert den nachfolgenden Schlüssel
    • dba_open - Öffnet eine Datenbank
    • dba_optimize - Optimiert eine Datenbank
    • dba_popen - Öffnet eine persistente Datenbank-Verbindung
    • dba_replace - Ersetzt einen Eintrag oder fügt ihn ein
    • dba_sync - Synchronisiert eine Datenbank
    • dbplus_add - Add a tuple to a relation
    • dbplus_aql - Perform AQL query
    • dbplus_chdir - Get/Set database virtual current directory
    • dbplus_close - Close a relation
    • dbplus_curr - Get current tuple from relation
    • dbplus_errcode - Get error string for given errorcode or last error
    • dbplus_errno - Get error code for last operation
    • dbplus_find - Set a constraint on a relation
    • dbplus_first - Get first tuple from relation
    • dbplus_flush - Flush all changes made on a relation
    • dbplus_freealllocks - Free all locks held by this client
    • dbplus_freelock - Release write lock on tuple
    • dbplus_freerlocks - Free all tuple locks on given relation
    • dbplus_getlock - Get a write lock on a tuple
    • dbplus_getunique - Get an id number unique to a relation
    • dbplus_info - Get information about a relation
    • dbplus_last - Get last tuple from relation
    • dbplus_lockrel - Request write lock on relation
    • dbplus_next - Get next tuple from relation
    • dbplus_open - Open relation file
    • dbplus_prev - Get previous tuple from relation
    • dbplus_rchperm - Change relation permissions
    • dbplus_rcreate - Creates a new DB++ relation
    • dbplus_rcrtexact - Creates an exact but empty copy of a relation including indices
    • dbplus_rcrtlike - Creates an empty copy of a relation with default indices
    • dbplus_resolve - Resolve host information for relation
    • dbplus_restorepos - Restore position
    • dbplus_rkeys - Specify new primary key for a relation
    • dbplus_ropen - Open relation file local
    • dbplus_rquery - Perform local (raw) AQL query
    • dbplus_rrename - Rename a relation
    • dbplus_rsecindex - Create a new secondary index for a relation
    • dbplus_runlink - Remove relation from filesystem
    • dbplus_rzap - Remove all tuples from relation
    • dbplus_savepos - Save position
    • dbplus_setindex - Set index
    • dbplus_setindexbynumber - Set index by number
    • dbplus_sql - Perform SQL query
    • dbplus_tcl - Execute TCL code on server side
    • dbplus_tremove - Remove tuple and return new current tuple
    • dbplus_undo - Undo
    • dbplus_undoprepare - Prepare undo
    • dbplus_unlockrel - Give up write lock on relation
    • dbplus_unselect - Remove a constraint from relation
    • dbplus_update - Update specified tuple in relation
    • dbplus_xlockrel - Request exclusive lock on relation
    • dbplus_xunlockrel - Free exclusive lock on relation
    • dcgettext - Überschreibt die gesetzte Domain für eine einzelne Abfrage
    • dcngettext - Pluralversion von dcgettext
    • debug_backtrace - Erzeugt Daten zur Ablaufverfolgung
    • debug_print_backtrace - Gibt die Daten für eine Ablaufverfolgung aus
    • debug_zval_dump - Dumps a string representation of an internal zend value to output
    • decbin - Wandelt von dezimal zu binär um
    • dechex - Wandelt von dezimal zu hexadezimal um
    • decoct - Wandelt von dezimal zu oktal um
    • define - Definiert eine benannte Konstante
    • defined - Prüft, ob eine benannte Konstante existiert
    • deflate_add - Incrementally deflate data
    • deflate_init - Initialize an incremental deflate context
    • deg2rad - Rechnet einen Winkel von Grad in Bogenmaß um
    • delete - Siehe unlink oder unset
    • dgettext - Überschreibt die aktuelle Domain
    • die - Entspricht exit
    • dio_close - Schließt eine Datei
    • dio_fcntl - Modifiziert einen Dateideskriptor
    • dio_open - Öffnet eine Datei (falls nötig, wird diese erzeugt) auf einem niedrigeren Level als es die C-Bibliotheks Ein-/Ausgabe-Stream-Funktionen erlauben
    • dio_read - Liest von einem Dateideskriptor
    • dio_seek - Setzt den Dateizeiger
    • dio_stat - Liefert Statusinformationen über einen Dateideskriptor
    • dio_tcsetattr - Sets terminal attributes and baud rate for a serial port
    • dio_truncate - Schneidet eine Datei ab
    • dio_write - Schreibt Daten in eine Datei
    • dir - Gibt eine Instanz der Directory Klasse zurück
    • Directory::close - Schließt das Verzeichnis-Handle
    • Directory::read - Liest einen Eintrag vom Verzeichnis-Handle
    • Directory::rewind - Setzt das Verzeichnis-Handle zurück
    • DirectoryIterator::current - Return the current DirectoryIterator item
    • DirectoryIterator::getATime - Get last access time of the current DirectoryIterator item
    • DirectoryIterator::getBasename - Get base name of current DirectoryIterator item
    • DirectoryIterator::getCTime - Get inode change time of the current DirectoryIterator item
    • DirectoryIterator::getExtension - Gets the file extension
    • DirectoryIterator::getFilename - Return file name of current DirectoryIterator item
    • DirectoryIterator::getGroup - Get group for the current DirectoryIterator item
    • DirectoryIterator::getInode - Get inode for the current DirectoryIterator item
    • DirectoryIterator::getMTime - Get last modification time of current DirectoryIterator item
    • DirectoryIterator::getOwner - Get owner of current DirectoryIterator item
    • DirectoryIterator::getPath - Get path of current Iterator item without filename
    • DirectoryIterator::getPathname - Return path and file name of current DirectoryIterator item
    • DirectoryIterator::getPerms - Get the permissions of current DirectoryIterator item
    • DirectoryIterator::getSize - Get size of current DirectoryIterator item
    • DirectoryIterator::getType - Determine the type of the current DirectoryIterator item
    • DirectoryIterator::isDir - Determine if current DirectoryIterator item is a directory
    • DirectoryIterator::isDot - Determine if current DirectoryIterator item is '.' or '..'
    • DirectoryIterator::isExecutable - Determine if current DirectoryIterator item is executable
    • DirectoryIterator::isFile - Determine if current DirectoryIterator item is a regular file
    • DirectoryIterator::isLink - Determine if current DirectoryIterator item is a symbolic link
    • DirectoryIterator::isReadable - Determine if current DirectoryIterator item can be read
    • DirectoryIterator::isWritable - Determine if current DirectoryIterator item can be written to
    • DirectoryIterator::key - Return the key for the current DirectoryIterator item
    • DirectoryIterator::next - Move forward to next DirectoryIterator item
    • DirectoryIterator::rewind - Rewind the DirectoryIterator back to the start
    • DirectoryIterator::seek - Seek to a DirectoryIterator item
    • DirectoryIterator::valid - Check whether current DirectoryIterator position is a valid file
    • DirectoryIterator::__construct - Constructs a new directory iterator from a path
    • DirectoryIterator::__toString - Get file name as a string
    • dirname - Gibt den Pfad des übergeordneten Verzeichnisses zurück
    • diskfreespace - Alias von disk_free_space
    • disk_free_space - Gibt verfügbaren Platz auf Dateisystem oder Partition zurück
    • disk_total_space - Gibt die Gesamtgröße eines Dateisystemes oder einer Partition zurück
    • dl - Lädt eine PHP-Erweiterung (Extension) zur Laufzeit
    • dngettext - Pluralversion von dgettext
    • dns_check_record - Alias von checkdnsrr
    • dns_get_mx - Alias von getmxrr
    • dns_get_record - Liefert die zu einem Hostnamen gehörenden DNS-Einträge
    • DocResult::fetchAll - Get all rows
    • DocResult::fetchOne - Get one row
    • DocResult::getWarnings - Get warnings from last operation
    • DocResult::getWarningsCount - Get warning count from last operation
    • DocResult::__construct - DocResult constructor
    • DOMAttr::isId - Checks if attribute is a defined ID
    • DOMAttr::__construct - Creates a new DOMAttr object
    • DOMCdataSection::__construct - Constructs a new DOMCdataSection object
    • DOMCharacterData::appendData - Append the string to the end of the character data of the node
    • DOMCharacterData::deleteData - Remove a range of characters from the node
    • DOMCharacterData::insertData - Insert a string at the specified 16-bit unit offset
    • DOMCharacterData::replaceData - Replace a substring within the DOMCharacterData node
    • DOMCharacterData::substringData - Extracts a range of data from the node
    • DOMComment::__construct - Creates a new DOMComment object
    • DOMDocument::createAttribute - Create new attribute
    • DOMDocument::createAttributeNS - Create new attribute node with an associated namespace
    • DOMDocument::createCDATASection - Create new cdata node
    • DOMDocument::createComment - Create new comment node
    • DOMDocument::createDocumentFragment - Create new document fragment
    • DOMDocument::createElement - Create new element node
    • DOMDocument::createElementNS - Create new element node with an associated namespace
    • DOMDocument::createEntityReference - Create new entity reference node
    • DOMDocument::createProcessingInstruction - Creates new PI node
    • DOMDocument::createTextNode - Create new text node
    • DOMDocument::getElementById - Searches for an element with a certain id
    • DOMDocument::getElementsByTagName - Searches for all elements with given local tag name
    • DOMDocument::getElementsByTagNameNS - Searches for all elements with given tag name in specified namespace
    • DOMDocument::importNode - Import node into current document
    • DOMDocument::load - Load XML from a file
    • DOMDocument::loadHTML - Load HTML from a string
    • DOMDocument::loadHTMLFile - Load HTML from a file
    • DOMDocument::loadXML - Load XML from a string
    • DOMDocument::normalizeDocument - Normalizes the document
    • DOMDocument::registerNodeClass - Register extended class used to create base node type
    • DOMDocument::relaxNGValidate - Performs relaxNG validation on the document
    • DOMDocument::relaxNGValidateSource - Performs relaxNG validation on the document
    • DOMDocument::save - Dumps the internal XML tree back into a file
    • DOMDocument::saveHTML - Dumps the internal document into a string using HTML formatting
    • DOMDocument::saveHTMLFile - Dumps the internal document into a file using HTML formatting
    • DOMDocument::saveXML - Dumps the internal XML tree back into a string
    • DOMDocument::schemaValidate - Validates a document based on a schema. Only XML Schema 1.0 is supported.
    • DOMDocument::schemaValidateSource - Validates a document based on a schema
    • DOMDocument::validate - Validates the document based on its DTD
    • DOMDocument::xinclude - Substitutes XIncludes in a DOMDocument Object
    • DOMDocument::__construct - Creates a new DOMDocument object
    • DOMDocumentFragment::appendXML - Append raw XML data
    • DOMElement::getAttribute - Returns value of attribute
    • DOMElement::getAttributeNode - Returns attribute node
    • DOMElement::getAttributeNodeNS - Returns attribute node
    • DOMElement::getAttributeNS - Returns value of attribute
    • DOMElement::getElementsByTagName - Gets elements by tagname
    • DOMElement::getElementsByTagNameNS - Get elements by namespaceURI and localName
    • DOMElement::hasAttribute - Checks to see if attribute exists
    • DOMElement::hasAttributeNS - Checks to see if attribute exists
    • DOMElement::removeAttribute - Removes attribute
    • DOMElement::removeAttributeNode - Removes attribute
    • DOMElement::removeAttributeNS - Removes attribute
    • DOMElement::setAttribute - Adds new attribute
    • DOMElement::setAttributeNode - Adds new attribute node to element
    • DOMElement::setAttributeNodeNS - Adds new attribute node to element
    • DOMElement::setAttributeNS - Adds new attribute
    • DOMElement::setIdAttribute - Declares the attribute specified by name to be of type ID
    • DOMElement::setIdAttributeNode - Declares the attribute specified by node to be of type ID
    • DOMElement::setIdAttributeNS - Declares the attribute specified by local name and namespace URI to be of type ID
    • DOMElement::__construct - Creates a new DOMElement object
    • DOMEntityReference::__construct - Creates a new DOMEntityReference object
    • DOMImplementation::createDocument - Creates a DOMDocument object of the specified type with its document element
    • DOMImplementation::createDocumentType - Creates an empty DOMDocumentType object
    • DOMImplementation::hasFeature - Test if the DOM implementation implements a specific feature
    • DOMImplementation::__construct - Creates a new DOMImplementation object
    • DOMNamedNodeMap::count - Get number of nodes in the map
    • DOMNamedNodeMap::getNamedItem - Retrieves a node specified by name
    • DOMNamedNodeMap::getNamedItemNS - Retrieves a node specified by local name and namespace URI
    • DOMNamedNodeMap::item - Retrieves a node specified by index
    • DOMNode::appendChild - Adds new child at the end of the children
    • DOMNode::C14N - Canonicalize nodes to a string
    • DOMNode::C14NFile - Canonicalize nodes to a file
    • DOMNode::cloneNode - Clones a node
    • DOMNode::getLineNo - Get line number for a node
    • DOMNode::getNodePath - Get an XPath for a node
    • DOMNode::hasAttributes - Checks if node has attributes
    • DOMNode::hasChildNodes - Checks if node has children
    • DOMNode::insertBefore - Adds a new child before a reference node
    • DOMNode::isDefaultNamespace - Checks if the specified namespaceURI is the default namespace or not
    • DOMNode::isSameNode - Indicates if two nodes are the same node
    • DOMNode::isSupported - Checks if feature is supported for specified version
    • DOMNode::lookupNamespaceUri - Gets the namespace URI of the node based on the prefix
    • DOMNode::lookupPrefix - Gets the namespace prefix of the node based on the namespace URI
    • DOMNode::normalize - Normalizes the node
    • DOMNode::removeChild - Removes child from list of children
    • DOMNode::replaceChild - Replaces a child
    • DOMNodeList::count - Get number of nodes in the list
    • DOMNodeList::item - Retrieves a node specified by index
    • DOMProcessingInstruction::__construct - Creates a new DOMProcessingInstruction object
    • DOMText::isElementContentWhitespace - Returns whether this text node contains whitespace in element content
    • DOMText::isWhitespaceInElementContent - Indicates whether this text node contains whitespace
    • DOMText::splitText - Breaks this node into two nodes at the specified offset
    • DOMText::__construct - Creates a new DOMText object
    • DOMXPath::evaluate - Evaluates the given XPath expression and returns a typed result if possible
    • DOMXPath::query - Evaluates the given XPath expression
    • DOMXPath::registerNamespace - Registers the namespace with the DOMXPath object
    • DOMXPath::registerPhpFunctions - Register PHP functions as XPath functions
    • DOMXPath::__construct - Creates a new DOMXPath object
    • dom_import_simplexml - Ermittelt ein DOMElement-Objekt aus einem SimpleXMLElement-Objekt
    • dotnet::__construct - dotnet class constructor
    • doubleval - Alias von floatval
    • Ds\Collection::clear - Removes all values
    • Ds\Collection::copy - Returns a shallow copy of the collection
    • Ds\Collection::isEmpty - Returns whether the collection is empty
    • Ds\Collection::toArray - Converts the collection to an Array
    • Ds\Deque::allocate - Allocates enough memory for a required capacity
    • Ds\Deque::apply - Updates all values by applying a callback function to each value
    • Ds\Deque::capacity - Returns the current capacity
    • Ds\Deque::clear - Removes all values from the deque
    • Ds\Deque::contains - Determines if the deque contains given values
    • Ds\Deque::copy - Returns a shallow copy of the deque
    • Ds\Deque::count - Returns the number of values in the collection
    • Ds\Deque::filter - Creates a new deque using a callable to determine which values to include
    • Ds\Deque::find - Attempts to find a value's index
    • Ds\Deque::first - Returns the first value in the deque
    • Ds\Deque::get - Returns the value at a given index
    • Ds\Deque::insert - Inserts values at a given index
    • Ds\Deque::isEmpty - Returns whether the deque is empty
    • Ds\Deque::join - Joins all values together as a string
    • Ds\Deque::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Deque::last - Returns the last value
    • Ds\Deque::map - Returns the result of applying a callback to each value
    • Ds\Deque::merge - Returns the result of adding all given values to the deque
    • Ds\Deque::pop - Removes and returns the last value
    • Ds\Deque::push - Adds values to the end of the deque
    • Ds\Deque::reduce - Reduces the deque to a single value using a callback function
    • Ds\Deque::remove - Removes and returns a value by index
    • Ds\Deque::reverse - Reverses the deque in-place
    • Ds\Deque::reversed - Returns a reversed copy
    • Ds\Deque::rotate - Rotates the deque by a given number of rotations
    • Ds\Deque::set - Updates a value at a given index
    • Ds\Deque::shift - Removes and returns the first value
    • Ds\Deque::slice - Returns a sub-deque of a given range
    • Ds\Deque::sort - Sorts the deque in-place
    • Ds\Deque::sorted - Returns a sorted copy
    • Ds\Deque::sum - Returns the sum of all values in the deque
    • Ds\Deque::toArray - Converts the deque to an Array
    • Ds\Deque::unshift - Adds values to the front of the deque
    • Ds\Deque::__construct - Creates a new instance
    • Ds\Hashable::equals - Determines whether an object is equal to the current instance
    • Ds\Hashable::hash - Returns a scalar value to be used as a hash value
    • Ds\Map::allocate - Allocates enough memory for a required capacity
    • Ds\Map::apply - Updates all values by applying a callback function to each value
    • Ds\Map::capacity - Returns the current capacity
    • Ds\Map::clear - Removes all values
    • Ds\Map::copy - Returns a shallow copy of the map
    • Ds\Map::count - Returns the number of values in the map
    • Ds\Map::diff - Creates a new map using keys that aren't in another map
    • Ds\Map::filter - Creates a new map using a callable to determine which pairs to include
    • Ds\Map::first - Returns the first pair in the map
    • Ds\Map::get - Returns the value for a given key
    • Ds\Map::hasKey - Determines whether the map contains a given key
    • Ds\Map::hasValue - Determines whether the map contains a given value
    • Ds\Map::intersect - Creates a new map by intersecting keys with another map
    • Ds\Map::isEmpty - Returns whether the map is empty
    • Ds\Map::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Map::keys - Returns a set of the map's keys
    • Ds\Map::ksort - Sorts the map in-place by key
    • Ds\Map::ksorted - Returns a copy, sorted by key
    • Ds\Map::last - Returns the last pair of the map
    • Ds\Map::map - Returns the result of applying a callback to each value
    • Ds\Map::merge - Returns the result of adding all given associations
    • Ds\Map::pairs - Returns a sequence containing all the pairs of the map
    • Ds\Map::put - Associates a key with a value
    • Ds\Map::putAll - Associates all key-value pairs of a traversable object or array
    • Ds\Map::reduce - Reduces the map to a single value using a callback function
    • Ds\Map::remove - Removes and returns a value by key
    • Ds\Map::reverse - Reverses the map in-place
    • Ds\Map::reversed - Returns a reversed copy
    • Ds\Map::skip - Returns the pair at a given positional index
    • Ds\Map::slice - Returns a subset of the map defined by a starting index and length
    • Ds\Map::sort - Sorts the map in-place by value
    • Ds\Map::sorted - Returns a copy, sorted by value
    • Ds\Map::sum - Returns the sum of all values in the map
    • Ds\Map::toArray - Converts the map to an Array
    • Ds\Map::union - Creates a new map using values from the current instance and another map
    • Ds\Map::values - Returns a sequence of the map's values
    • Ds\Map::xor - Creates a new map using keys of either the current instance or of another map, but not of both
    • Ds\Map::__construct - Creates a new instance
    • Ds\Pair::clear - Removes all values
    • Ds\Pair::copy - Returns a shallow copy of the pair
    • Ds\Pair::isEmpty - Returns whether the pair is empty
    • Ds\Pair::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Pair::toArray - Converts the pair to an Array
    • Ds\Pair::__construct - Creates a new instance
    • Ds\PriorityQueue::allocate - Allocates enough memory for a required capacity
    • Ds\PriorityQueue::capacity - Returns the current capacity
    • Ds\PriorityQueue::clear - Removes all values
    • Ds\PriorityQueue::copy - Returns a shallow copy of the queue
    • Ds\PriorityQueue::count - Returns the number of values in the queue
    • Ds\PriorityQueue::isEmpty - Returns whether the queue is empty
    • Ds\PriorityQueue::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\PriorityQueue::peek - Returns the value at the front of the queue
    • Ds\PriorityQueue::pop - Removes and returns the value with the highest priority
    • Ds\PriorityQueue::push - Pushes values into the queue
    • Ds\PriorityQueue::toArray - Converts the queue to an Array
    • Ds\PriorityQueue::__construct - Creates a new instance
    • Ds\Queue::allocate - Allocates enough memory for a required capacity
    • Ds\Queue::capacity - Returns the current capacity
    • Ds\Queue::clear - Removes all values
    • Ds\Queue::copy - Returns a shallow copy of the queue
    • Ds\Queue::count - Returns the number of values in the queue
    • Ds\Queue::isEmpty - Returns whether the queue is empty
    • Ds\Queue::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Queue::peek - Returns the value at the front of the queue
    • Ds\Queue::pop - Removes and returns the value at the front of the queue
    • Ds\Queue::push - Pushes values into the queue
    • Ds\Queue::toArray - Converts the queue to an Array
    • Ds\Queue::__construct - Creates a new instance
    • Ds\Sequence::allocate - Allocates enough memory for a required capacity
    • Ds\Sequence::apply - Updates all values by applying a callback function to each value
    • Ds\Sequence::capacity - Returns the current capacity
    • Ds\Sequence::contains - Determines if the sequence contains given values
    • Ds\Sequence::filter - Creates a new sequence using a callable to determine which values to include
    • Ds\Sequence::find - Attempts to find a value's index
    • Ds\Sequence::first - Returns the first value in the sequence
    • Ds\Sequence::get - Returns the value at a given index
    • Ds\Sequence::insert - Inserts values at a given index
    • Ds\Sequence::join - Joins all values together as a string
    • Ds\Sequence::last - Returns the last value
    • Ds\Sequence::map - Returns the result of applying a callback to each value
    • Ds\Sequence::merge - Returns the result of adding all given values to the sequence
    • Ds\Sequence::pop - Removes and returns the last value
    • Ds\Sequence::push - Adds values to the end of the sequence
    • Ds\Sequence::reduce - Reduces the sequence to a single value using a callback function
    • Ds\Sequence::remove - Removes and returns a value by index
    • Ds\Sequence::reverse - Reverses the sequence in-place
    • Ds\Sequence::reversed - Returns a reversed copy
    • Ds\Sequence::rotate - Rotates the sequence by a given number of rotations
    • Ds\Sequence::set - Updates a value at a given index
    • Ds\Sequence::shift - Removes and returns the first value
    • Ds\Sequence::slice - Returns a sub-sequence of a given range
    • Ds\Sequence::sort - Sorts the sequence in-place
    • Ds\Sequence::sorted - Returns a sorted copy
    • Ds\Sequence::sum - Returns the sum of all values in the sequence
    • Ds\Sequence::unshift - Adds values to the front of the sequence
    • Ds\Set::add - Adds values to the set
    • Ds\Set::allocate - Allocates enough memory for a required capacity
    • Ds\Set::capacity - Returns the current capacity
    • Ds\Set::clear - Removes all values
    • Ds\Set::contains - Determines if the set contains all values
    • Ds\Set::copy - Returns a shallow copy of the set
    • Ds\Set::count - Returns the number of values in the set
    • Ds\Set::diff - Creates a new set using values that aren't in another set
    • Ds\Set::filter - Creates a new set using a callable to determine which values to include
    • Ds\Set::first - Returns the first value in the set
    • Ds\Set::get - Returns the value at a given index
    • Ds\Set::intersect - Creates a new set by intersecting values with another set
    • Ds\Set::isEmpty - Returns whether the set is empty
    • Ds\Set::join - Joins all values together as a string
    • Ds\Set::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Set::last - Returns the last value in the set
    • Ds\Set::merge - Returns the result of adding all given values to the set
    • Ds\Set::reduce - Reduces the set to a single value using a callback function
    • Ds\Set::remove - Removes all given values from the set
    • Ds\Set::reverse - Reverses the set in-place
    • Ds\Set::reversed - Returns a reversed copy
    • Ds\Set::slice - Returns a sub-set of a given range
    • Ds\Set::sort - Sorts the set in-place
    • Ds\Set::sorted - Returns a sorted copy
    • Ds\Set::sum - Returns the sum of all values in the set
    • Ds\Set::toArray - Converts the set to an Array
    • Ds\Set::union - Creates a new set using values from the current instance and another set
    • Ds\Set::xor - Creates a new set using values in either the current instance or in another set, but not in both
    • Ds\Set::__construct - Creates a new instance
    • Ds\Stack::allocate - Allocates enough memory for a required capacity
    • Ds\Stack::capacity - Returns the current capacity
    • Ds\Stack::clear - Removes all values
    • Ds\Stack::copy - Returns a shallow copy of the stack
    • Ds\Stack::count - Returns the number of values in the stack
    • Ds\Stack::isEmpty - Returns whether the stack is empty
    • Ds\Stack::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Stack::peek - Returns the value at the top of the stack
    • Ds\Stack::pop - Removes and returns the value at the top of the stack
    • Ds\Stack::push - Pushes values onto the stack
    • Ds\Stack::toArray - Converts the stack to an Array
    • Ds\Stack::__construct - Creates a new instance
    • Ds\Vector::allocate - Allocates enough memory for a required capacity
    • Ds\Vector::apply - Updates all values by applying a callback function to each value
    • Ds\Vector::capacity - Returns the current capacity
    • Ds\Vector::clear - Removes all values
    • Ds\Vector::contains - Determines if the vector contains given values
    • Ds\Vector::copy - Returns a shallow copy of the vector
    • Ds\Vector::count - Returns the number of values in the collection
    • Ds\Vector::filter - Creates a new vector using a callable to determine which values to include
    • Ds\Vector::find - Attempts to find a value's index
    • Ds\Vector::first - Returns the first value in the vector
    • Ds\Vector::get - Returns the value at a given index
    • Ds\Vector::insert - Inserts values at a given index
    • Ds\Vector::isEmpty - Returns whether the vector is empty
    • Ds\Vector::join - Joins all values together as a string
    • Ds\Vector::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Vector::last - Returns the last value
    • Ds\Vector::map - Returns the result of applying a callback to each value
    • Ds\Vector::merge - Returns the result of adding all given values to the vector
    • Ds\Vector::pop - Removes and returns the last value
    • Ds\Vector::push - Adds values to the end of the vector
    • Ds\Vector::reduce - Reduces the vector to a single value using a callback function
    • Ds\Vector::remove - Removes and returns a value by index
    • Ds\Vector::reverse - Reverses the vector in-place
    • Ds\Vector::reversed - Returns a reversed copy
    • Ds\Vector::rotate - Rotates the vector by a given number of rotations
    • Ds\Vector::set - Updates a value at a given index
    • Ds\Vector::shift - Removes and returns the first value
    • Ds\Vector::slice - Returns a sub-vector of a given range
    • Ds\Vector::sort - Sorts the vector in-place
    • Ds\Vector::sorted - Returns a sorted copy
    • Ds\Vector::sum - Returns the sum of all values in the vector
    • Ds\Vector::toArray - Converts the vector to an Array
    • Ds\Vector::unshift - Adds values to the front of the vector
    • Ds\Vector::__construct - Creates a new instance
  • e
    • each - Liefert das aktuelle Paar (Schlüssel und Wert) eines Arrays und rückt den Arrayzeiger vor
    • easter_date - Zeitpunkt des Osterfestes (0 Uhr) als Unix-Timestamp
    • easter_days - Anzahl der Tage zwischen dem 21. März und Ostersonntag
    • echo - Gibt einen oder mehrere Strings aus
    • eio_busy - Artificially increase load. Could be useful in tests, benchmarking
    • eio_cancel - Cancels a request
    • eio_chmod - Change file/directory permissions
    • eio_chown - Change file/directory permissions
    • eio_close - Close file
    • eio_custom - Execute custom request like any other eio_* call
    • eio_dup2 - Duplicate a file descriptor
    • eio_event_loop - Polls libeio until all requests proceeded
    • eio_fallocate - Allows the caller to directly manipulate the allocated disk space for a file
    • eio_fchmod - Change file permissions
    • eio_fchown - Change file ownership
    • eio_fdatasync - Synchronize a file's in-core state with storage device
    • eio_fstat - Get file status
    • eio_fstatvfs - Get file system statistics
    • eio_fsync - Synchronize a file's in-core state with storage device
    • eio_ftruncate - Truncate a file
    • eio_futime - Change file last access and modification times
    • eio_get_event_stream - Get stream representing a variable used in internal communications with libeio
    • eio_get_last_error - Returns string describing the last error associated with a request resource
    • eio_grp - Creates a request group
    • eio_grp_add - Adds a request to the request group
    • eio_grp_cancel - Cancels a request group
    • eio_grp_limit - Set group limit
    • eio_init - (Re-)initialize Eio
    • eio_link - Create a hardlink for file
    • eio_lstat - Get file status
    • eio_mkdir - Create directory
    • eio_mknod - Create a special or ordinary file
    • eio_nop - Does nothing, except go through the whole request cycle
    • eio_npending - Returns number of finished, but unhandled requests
    • eio_nready - Returns number of not-yet handled requests
    • eio_nreqs - Returns number of requests to be processed
    • eio_nthreads - Returns number of threads currently in use
    • eio_open - Opens a file
    • eio_poll - Can be to be called whenever there are pending requests that need finishing
    • eio_read - Read from a file descriptor at given offset
    • eio_readahead - Perform file readahead into page cache
    • eio_readdir - Reads through a whole directory
    • eio_readlink - Read value of a symbolic link
    • eio_realpath - Get the canonicalized absolute pathname
    • eio_rename - Change the name or location of a file
    • eio_rmdir - Remove a directory
    • eio_seek - Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence
    • eio_sendfile - Transfer data between file descriptors
    • eio_set_max_idle - Set maximum number of idle threads
    • eio_set_max_parallel - Set maximum parallel threads
    • eio_set_max_poll_reqs - Set maximum number of requests processed in a poll
    • eio_set_max_poll_time - Set maximum poll time
    • eio_set_min_parallel - Set minimum parallel thread number
    • eio_stat - Get file status
    • eio_statvfs - Get file system statistics
    • eio_symlink - Create a symbolic link
    • eio_sync - Commit buffer cache to disk
    • eio_syncfs - Calls Linux' syncfs syscall, if available
    • eio_sync_file_range - Sync a file segment with disk
    • eio_truncate - Truncate a file
    • eio_unlink - Delete a name and possibly the file it refers to
    • eio_utime - Change file last access and modification times
    • eio_write - Write to file
    • empty - Prüft, ob eine Variable einen Wert enthält
    • EmptyIterator::current - The current() method
    • EmptyIterator::key - The key() method
    • EmptyIterator::next - The next() method
    • EmptyIterator::rewind - The rewind() method
    • EmptyIterator::valid - The valid() method
    • enchant_broker_describe - Enumerates the Enchant providers
    • enchant_broker_dict_exists - Whether a dictionary exists or not. Using non-empty tag
    • enchant_broker_free - Free the broker resource and its dictionaries
    • enchant_broker_free_dict - Free a dictionary resource
    • enchant_broker_get_dict_path - Get the directory path for a given backend
    • enchant_broker_get_error - Returns the last error of the broker
    • enchant_broker_init - Create a new broker object capable of requesting
    • enchant_broker_list_dicts - Returns a list of available dictionaries
    • enchant_broker_request_dict - Create a new dictionary using a tag
    • enchant_broker_request_pwl_dict - Creates a dictionary using a PWL file
    • enchant_broker_set_dict_path - Set the directory path for a given backend
    • enchant_broker_set_ordering - Declares a preference of dictionaries to use for the language
    • enchant_dict_add - Add a word to personal word list
    • enchant_dict_add_to_personal - Alias von enchant_dict_add
    • enchant_dict_add_to_session - Add 'word' to this spell-checking session
    • enchant_dict_check - Check whether a word is correctly spelled or not
    • enchant_dict_describe - Describes an individual dictionary
    • enchant_dict_get_error - Returns the last error of the current spelling-session
    • enchant_dict_is_added - Whether or not 'word' exists in this spelling-session
    • enchant_dict_is_in_session - Alias von enchant_dict_is_added
    • enchant_dict_quick_check - Check the word is correctly spelled and provide suggestions
    • enchant_dict_store_replacement - Add a correction for a word
    • enchant_dict_suggest - Will return a list of values if any of those pre-conditions are not met
    • end - Positioniert den internen Zeiger eines Arrays auf dessen letztes Element
    • ereg - Sucht Übereinstimmungen mit einem 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
    • ereg_replace - Ersetzt einen regulären Ausdruck
    • Error::getCode - Gibt den Fehlercode zurück
    • Error::getFile - Gibt die Datei zurück in der der Fehler
    • Error::getLine - Gibt die Zeile zurück in der der Fehler auftrat
    • Error::getMessage - Gibt die Fehlermeldung zurück
    • Error::getPrevious - Gibt das vorherige Throwable zurück
    • Error::getTrace - Gibt den Stacktrace zurück
    • Error::getTraceAsString - Gibt den Stacktrace als String zurück
    • Error::__clone - Klont einen Fehler
    • Error::__construct - Erzeugt ein Error-Objekt
    • Error::__toString - Gibt eine Repräsentation des Fehlers als String zurück
    • ErrorException::getSeverity - Liefert die Schwere der Exception
    • ErrorException::__construct - Erstellt die Exception
    • error_clear_last - Clear the most recent error
    • error_get_last - Liefert den zuletzt aufgetretenen Fehler
    • error_log - Sendet eine Fehlermeldung an die definierten Fehlerbehandlungsroutinen
    • error_reporting - Gibt an, welche PHP-Fehlermeldungen gemeldet werden
    • escapeshellarg - Maskiert eine Zeichenkette (String), um sie als Shell-Argument benutzen zu können
    • escapeshellcmd - Maskiert Shell-Metazeichen
    • Ev::backend - Returns an integer describing the backend used by libev
    • Ev::depth - Returns recursion depth
    • Ev::embeddableBackends - Returns the set of backends that are embeddable in other event loops
    • Ev::feedSignal - Feed a signal event info Ev
    • Ev::feedSignalEvent - Feed signal event into the default loop
    • Ev::iteration - Return the number of times the default event loop has polled for new events
    • Ev::now - Returns the time when the last iteration of the default event loop has started
    • Ev::nowUpdate - Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress
    • Ev::recommendedBackends - Returns a bit mask of recommended backends for current platform
    • Ev::resume - Resume previously suspended default event loop
    • Ev::run - Begin checking for events and calling callbacks for the default loop
    • Ev::sleep - Block the process for the given number of seconds
    • Ev::stop - Stops the default event loop
    • Ev::supportedBackends - Returns the set of backends supported by current libev configuration
    • Ev::suspend - Suspend the default event loop
    • Ev::time - Returns the current time in fractional seconds since the epoch
    • Ev::verify - Performs internal consistency checks(for debugging)
    • eval - Wertet eine Zeichenkette als PHP-Code aus
    • EvCheck::createStopped - Create instance of a stopped EvCheck watcher
    • EvCheck::__construct - Constructs the EvCheck watcher object
    • EvChild::createStopped - Create instance of a stopped EvCheck watcher
    • EvChild::set - Configures the watcher
    • EvChild::__construct - Constructs the EvChild watcher object
    • EvEmbed::createStopped - Create stopped EvEmbed watcher object
    • EvEmbed::set - Configures the watcher
    • EvEmbed::sweep - Make a single, non-blocking sweep over the embedded loop
    • EvEmbed::__construct - Constructs the EvEmbed object
    • Event::add - Makes event pending
    • Event::addSignal - Makes signal event pending
    • Event::addTimer - Makes timer event pending
    • Event::del - Makes event non-pending
    • Event::delSignal - Makes signal event non-pending
    • Event::delTimer - Makes timer event non-pending
    • Event::free - Make event non-pending and free resources allocated for this event
    • Event::getSupportedMethods - Returns array with of the names of the methods supported in this version of Libevent
    • Event::pending - Detects whether event is pending or scheduled
    • Event::set - Re-configures event
    • Event::setPriority - Set event priority
    • Event::setTimer - Re-configures timer event
    • Event::signal - Constructs signal event object
    • Event::timer - Constructs timer event object
    • Event::__construct - Constructs Event object
    • EventBase::dispatch - Dispatch pending events
    • EventBase::exit - Stop dispatching events
    • EventBase::free - Free resources allocated for this event base
    • EventBase::getFeatures - Returns bitmask of features supported
    • EventBase::getMethod - Returns event method in use
    • EventBase::getTimeOfDayCached - Returns the current event base time
    • EventBase::gotExit - Checks if the event loop was told to exit
    • EventBase::gotStop - Checks if the event loop was told to exit
    • EventBase::loop - Dispatch pending events
    • EventBase::priorityInit - Sets number of priorities per event base
    • EventBase::reInit - Re-initialize event base(after a fork)
    • EventBase::stop - Tells event_base to stop dispatching events
    • EventBase::__construct - Constructs EventBase object
    • EventBuffer::add - Append data to the end of an event buffer
    • EventBuffer::addBuffer - Move all data from a buffer provided to the current instance of EventBuffer
    • EventBuffer::appendFrom - Moves the specified number of bytes from a source buffer to the end of the current buffer
    • EventBuffer::copyout - Copies out specified number of bytes from the front of the buffer
    • EventBuffer::drain - Removes specified number of bytes from the front of the buffer without copying it anywhere
    • EventBuffer::enableLocking - Beschreibung
    • EventBuffer::expand - Reserves space in buffer
    • EventBuffer::freeze - Prevent calls that modify an event buffer from succeeding
    • EventBuffer::lock - Acquires a lock on buffer
    • EventBuffer::prepend - Prepend data to the front of the buffer
    • EventBuffer::prependBuffer - Moves all data from source buffer to the front of current buffer
    • EventBuffer::pullup - Linearizes data within buffer and returns it's contents as a string
    • EventBuffer::read - Read data from an evbuffer and drain the bytes read
    • EventBuffer::readFrom - Read data from a file onto the end of the buffer
    • EventBuffer::readLine - Extracts a line from the front of the buffer
    • EventBuffer::search - Scans the buffer for an occurrence of a string
    • EventBuffer::searchEol - Scans the buffer for an occurrence of an end of line
    • EventBuffer::substr - Substracts a portion of the buffer data
    • EventBuffer::unfreeze - Re-enable calls that modify an event buffer
    • EventBuffer::unlock - Releases lock acquired by EventBuffer::lock
    • EventBuffer::write - Schreibt den Inhalt des Puffers in eine Datei oder ein Socket
    • EventBuffer::__construct - Constructs EventBuffer object
    • EventBufferEvent::close - Closes file descriptor associated with the current buffer event
    • EventBufferEvent::connect - Connect buffer event's file descriptor to given address or UNIX socket
    • EventBufferEvent::connectHost - Connects to a hostname with optionally asyncronous DNS resolving
    • EventBufferEvent::createPair - Creates two buffer events connected to each other
    • EventBufferEvent::disable - Disable events read, write, or both on a buffer event
    • EventBufferEvent::enable - Enable events read, write, or both on a buffer event
    • EventBufferEvent::free - Free a buffer event
    • EventBufferEvent::getDnsErrorString - Returns string describing the last failed DNS lookup attempt
    • EventBufferEvent::getEnabled - Returns bitmask of events currently enabled on the buffer event
    • EventBufferEvent::getInput - Returns underlying input buffer associated with current buffer event
    • EventBufferEvent::getOutput - Returns underlying output buffer associated with current buffer event
    • EventBufferEvent::read - Read buffer's data
    • EventBufferEvent::readBuffer - Drains the entire contents of the input buffer and places them into buf
    • EventBufferEvent::setCallbacks - Assigns read, write and event(status) callbacks
    • EventBufferEvent::setPriority - Assign a priority to a bufferevent
    • EventBufferEvent::setTimeouts - Set the read and write timeout for a buffer event
    • EventBufferEvent::setWatermark - Adjusts read and/or write watermarks
    • EventBufferEvent::sslError - Returns most recent OpenSSL error reported on the buffer event
    • EventBufferEvent::sslFilter - Create a new SSL buffer event to send its data over another buffer event
    • EventBufferEvent::sslGetCipherInfo - Returns a textual description of the cipher
    • EventBufferEvent::sslGetCipherName - Returns the current cipher name of the SSL connection
    • EventBufferEvent::sslGetCipherVersion - Returns version of cipher used by current SSL connection
    • EventBufferEvent::sslGetProtocol - Returns the name of the protocol used for current SSL connection
    • EventBufferEvent::sslRenegotiate - Tells a bufferevent to begin SSL renegotiation
    • EventBufferEvent::sslSocket - Creates a new SSL buffer event to send its data over an SSL on a socket
    • EventBufferEvent::write - Fügt Daten zum Ausgabepuffer eines Pufferereignises hinzu
    • EventBufferEvent::writeBuffer - Adds contents of the entire buffer to a buffer event's output buffer
    • EventBufferEvent::__construct - Constructs EventBufferEvent object
    • EventConfig::avoidMethod - Tells libevent to avoid specific event method
    • EventConfig::requireFeatures - Enters a required event method feature that the application demands
    • EventConfig::setMaxDispatchInterval - Prevents priority inversion
    • EventConfig::__construct - Constructs EventConfig object
    • EventDnsBase::addNameserverIp - Adds a nameserver to the DNS base
    • EventDnsBase::addSearch - Adds a domain to the list of search domains
    • EventDnsBase::clearSearch - Removes all current search suffixes
    • EventDnsBase::countNameservers - Gets the number of configured nameservers
    • EventDnsBase::loadHosts - Loads a hosts file (in the same format as /etc/hosts) from hosts file
    • EventDnsBase::parseResolvConf - Scans the resolv.conf-formatted file
    • EventDnsBase::setOption - Set the value of a configuration option
    • EventDnsBase::setSearchNdots - Set the 'ndots' parameter for searches
    • EventDnsBase::__construct - Constructs EventDnsBase object
    • EventHttp::accept - Makes an HTTP server accept connections on the specified socket stream or resource
    • EventHttp::addServerAlias - Adds a server alias to the HTTP server object
    • EventHttp::bind - Binds an HTTP server on the specified address and port
    • EventHttp::removeServerAlias - Removes server alias
    • EventHttp::setAllowedMethods - Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks
    • EventHttp::setCallback - Sets a callback for specified URI
    • EventHttp::setDefaultCallback - Sets default callback to handle requests that are not caught by specific callbacks
    • EventHttp::setMaxBodySize - Sets maximum request body size
    • EventHttp::setMaxHeadersSize - Sets maximum HTTP header size
    • EventHttp::setTimeout - Sets the timeout for an HTTP request
    • EventHttp::__construct - Constructs EventHttp object(the HTTP server)
    • EventHttpConnection::getBase - Returns event base associated with the connection
    • EventHttpConnection::getPeer - Gets the remote address and port associated with the connection
    • EventHttpConnection::makeRequest - Makes an HTTP request over the specified connection
    • EventHttpConnection::setCloseCallback - Set callback for connection close
    • EventHttpConnection::setLocalAddress - Sets the IP address from which HTTP connections are made
    • EventHttpConnection::setLocalPort - Sets the local port from which connections are made
    • EventHttpConnection::setMaxBodySize - Sets maximum body size for the connection
    • EventHttpConnection::setMaxHeadersSize - Sets maximum header size
    • EventHttpConnection::setRetries - Sets the retry limit for the connection
    • EventHttpConnection::setTimeout - Sets the timeout for the connection
    • EventHttpConnection::__construct - Constructs EventHttpConnection object
    • EventHttpRequest::addHeader - Adds an HTTP header to the headers of the request
    • EventHttpRequest::cancel - Cancels a pending HTTP request
    • EventHttpRequest::clearHeaders - Removes all output headers from the header list of the request
    • EventHttpRequest::closeConnection - Closes associated HTTP connection
    • EventHttpRequest::findHeader - Finds the value belonging a header
    • EventHttpRequest::free - Frees the object and removes associated events
    • EventHttpRequest::getBufferEvent - Returns EventBufferEvent object
    • EventHttpRequest::getCommand - Returns the request command(method)
    • EventHttpRequest::getConnection - Returns EventHttpConnection object
    • EventHttpRequest::getHost - Returns the request host
    • EventHttpRequest::getInputBuffer - Returns the input buffer
    • EventHttpRequest::getInputHeaders - Returns associative array of the input headers
    • EventHttpRequest::getOutputBuffer - Returns the output buffer of the request
    • EventHttpRequest::getOutputHeaders - Returns associative array of the output headers
    • EventHttpRequest::getResponseCode - Returns the response code
    • EventHttpRequest::getUri - Returns the request URI
    • EventHttpRequest::removeHeader - Removes an HTTP header from the headers of the request
    • EventHttpRequest::sendError - Send an HTML error message to the client
    • EventHttpRequest::sendReply - Send an HTML reply to the client
    • EventHttpRequest::sendReplyChunk - Send another data chunk as part of an ongoing chunked reply
    • EventHttpRequest::sendReplyEnd - Complete a chunked reply, freeing the request as appropriate
    • EventHttpRequest::sendReplyStart - Initiate a chunked reply
    • EventHttpRequest::__construct - Constructs EventHttpRequest object
    • EventListener::disable - Disables an event connect listener object
    • EventListener::enable - Enables an event connect listener object
    • EventListener::getBase - Returns event base associated with the event listener
    • EventListener::getSocketName - Retreives the current address to which the listener's socket is bound
    • EventListener::setCallback - The setCallback purpose
    • EventListener::setErrorCallback - Set event listener's error callback
    • EventListener::__construct - Creates new connection listener associated with an event base
    • EventSslContext::__construct - Constructs an OpenSSL context for use with Event classes
    • EventUtil::getLastSocketErrno - Returns the most recent socket error number
    • EventUtil::getLastSocketError - Returns the most recent socket error
    • EventUtil::getSocketFd - Returns numeric file descriptor of a socket, or stream
    • EventUtil::getSocketName - Retreives the current address to which the socket is bound
    • EventUtil::setSocketOption - Sets socket options
    • EventUtil::sslRandPoll - Generates entropy by means of OpenSSL's RAND_poll()
    • EventUtil::__construct - The abstract constructor
    • EvFork::createStopped - Creates a stopped instance of EvFork watcher class
    • EvFork::__construct - Constructs the EvFork watcher object
    • EvIdle::createStopped - Creates instance of a stopped EvIdle watcher object
    • EvIdle::__construct - Constructs the EvIdle watcher object
    • EvIo::createStopped - Create stopped EvIo watcher object
    • EvIo::set - Configures the watcher
    • EvIo::__construct - Constructs EvIo watcher object
    • EvLoop::backend - Returns an integer describing the backend used by libev
    • EvLoop::check - Creates EvCheck object associated with the current event loop instance
    • EvLoop::child - Creates EvChild object associated with the current event loop
    • EvLoop::defaultLoop - Returns or creates the default event loop
    • EvLoop::embed - Creates an instance of EvEmbed watcher associated with the current EvLoop object
    • EvLoop::fork - Creates EvFork watcher object associated with the current event loop instance
    • EvLoop::idle - Creates EvIdle watcher object associated with the current event loop instance
    • EvLoop::invokePending - Invoke all pending watchers while resetting their pending state
    • EvLoop::io - Create EvIo watcher object associated with the current event loop instance
    • EvLoop::loopFork - Must be called after a fork
    • EvLoop::now - Returns the current "event loop time"
    • EvLoop::nowUpdate - Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress
    • EvLoop::periodic - Creates EvPeriodic watcher object associated with the current event loop instance
    • EvLoop::prepare - Creates EvPrepare watcher object associated with the current event loop instance
    • EvLoop::resume - Resume previously suspended default event loop
    • EvLoop::run - Begin checking for events and calling callbacks for the loop
    • EvLoop::signal - Creates EvSignal watcher object associated with the current event loop instance
    • EvLoop::stat - Creates EvStat watcher object associated with the current event loop instance
    • EvLoop::stop - Stops the event loop
    • EvLoop::suspend - Suspend the loop
    • EvLoop::timer - Creates EvTimer watcher object associated with the current event loop instance
    • EvLoop::verify - Performs internal consistency checks(for debugging)
    • EvLoop::__construct - Constructs the event loop object
    • EvPeriodic::again - Simply stops and restarts the periodic watcher again
    • EvPeriodic::at - Returns the absolute time that this watcher is supposed to trigger next
    • EvPeriodic::createStopped - Create a stopped EvPeriodic watcher
    • EvPeriodic::set - Configures the watcher
    • EvPeriodic::__construct - Constructs EvPeriodic watcher object
    • EvPrepare::createStopped - Creates a stopped instance of EvPrepare watcher
    • EvPrepare::__construct - Constructs EvPrepare watcher object
    • EvSignal::createStopped - Create stopped EvSignal watcher object
    • EvSignal::set - Configures the watcher
    • EvSignal::__construct - Constructs EvSignal watcher object
    • EvStat::attr - Returns the values most recently detected by Ev
    • EvStat::createStopped - Create a stopped EvStat watcher object
    • EvStat::prev - Returns the previous set of values returned by EvStat::attr
    • EvStat::set - Configures the watcher
    • EvStat::stat - Initiates the stat call
    • EvStat::__construct - Constructs EvStat watcher object
    • EvTimer::again - Restarts the timer watcher
    • EvTimer::createStopped - Creates EvTimer stopped watcher object
    • EvTimer::set - Configures the watcher
    • EvTimer::__construct - Constructs an EvTimer watcher object
    • EvWatcher::clear - Clear watcher pending status
    • EvWatcher::feed - Feeds the given revents set into the event loop
    • EvWatcher::getLoop - Returns the loop responsible for the watcher
    • EvWatcher::invoke - Invokes the watcher callback with the given received events bit mask
    • EvWatcher::keepalive - Configures whether to keep the loop from returning
    • EvWatcher::setCallback - Sets new callback for the watcher
    • EvWatcher::start - Starts the watcher
    • EvWatcher::stop - Stops the watcher
    • EvWatcher::__construct - Abstract constructor of a watcher object
    • Exception::getCode - Gibt die Fehlernummer der Exception zurück
    • Exception::getFile - Gibt den Namen der Datei zurück, in der die Exception erzeugt wurde
    • Exception::getLine - Gibt die Zeile zurück, in der die Exception erzeugt wurde
    • Exception::getMessage - Gibt die Exceptionbeschreibung zurück
    • Exception::getPrevious - Gibt die vorhergehende Exception zurück
    • Exception::getTrace - Gibt den Stacktrace zurück
    • Exception::getTraceAsString - Gibt den Stacktrace als String zurück
    • Exception::__clone - Klont die Exception
    • Exception::__construct - Erstellt die Exception
    • Exception::__toString - Stringrepräsentation der Exception
    • exec - Führt ein externes Programm aus
    • Executable::execute - Execute statement
    • ExecutionStatus::__construct - ExecutionStatus constructor
    • exif_imagetype - Ermittelt den Bildtyp
    • exif_read_data - Liest die EXIF-Header einer Bilddatei aus
    • exif_tagname - Gibt den Header-Namen für einen Index zurück
    • exif_thumbnail - Liest das eingebettete Miniaturbild eines Bilds
    • exit - Gibt eine Meldung aus und beendet das aktuelle Skript
    • exp - Berechnet den Exponenten von e
    • expect:// - Process Interaction Streams
    • expect_expectl - Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen
    • expect_popen - Execute command via Bourne shell, and open the PTY stream to the process
    • explode - Teilt eine Zeichenkette anhand einer Zeichenkette
    • expm1 - Berechnet exp(Zahl) - 1 mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt
    • expression - Bind prepared statement variables as parameters
    • Expression::__construct - Expression constructor
    • extension_loaded - Prüft ob eine Extension geladen ist
    • extract - Importiert Variablen eines Arrays in die aktuelle Symboltabelle
    • ezmlm_hash - Berechnet den Hash-Wert, der von EZMLM benötigt wird
  • f
    • FANNConnection::getFromNeuron - Returns the postions of starting neuron
    • FANNConnection::getToNeuron - Returns the postions of terminating neuron
    • FANNConnection::getWeight - Returns the connection weight
    • FANNConnection::setWeight - Sets the connections weight
    • FANNConnection::__construct - The connection constructor
    • fann_cascadetrain_on_data - Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
    • fann_cascadetrain_on_file - Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm
    • fann_clear_scaling_params - Clears scaling parameters
    • fann_copy - Creates a copy of a fann structure
    • fann_create_from_file - Constructs a backpropagation neural network from a configuration file
    • fann_create_shortcut - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_shortcut_array - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_sparse - Creates a standard backpropagation neural network, which is not fully connected
    • fann_create_sparse_array - Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
    • fann_create_standard - Creates a standard fully connected backpropagation neural network
    • fann_create_standard_array - Creates a standard fully connected backpropagation neural network using an array of layer sizes
    • fann_create_train - Creates an empty training data struct
    • fann_create_train_from_callback - Creates the training data struct from a user supplied function
    • fann_descale_input - Scale data in input vector after get it from ann based on previously calculated parameters
    • fann_descale_output - Scale data in output vector after get it from ann based on previously calculated parameters
    • fann_descale_train - Descale input and output data based on previously calculated parameters
    • fann_destroy - Destroys the entire network and properly freeing all the associated memory
    • fann_destroy_train - Destructs the training data
    • fann_duplicate_train_data - Returns an exact copy of a fann train data
    • fann_get_activation_function - Returns the activation function
    • fann_get_activation_steepness - Returns the activation steepness for supplied neuron and layer number
    • fann_get_bias_array - Get the number of bias in each layer in the network
    • fann_get_bit_fail - The number of fail bits
    • fann_get_bit_fail_limit - Returns the bit fail limit used during training
    • fann_get_cascade_activation_functions - Returns the cascade activation functions
    • fann_get_cascade_activation_functions_count - Returns the number of cascade activation functions
    • fann_get_cascade_activation_steepnesses - Returns the cascade activation steepnesses
    • fann_get_cascade_activation_steepnesses_count - The number of activation steepnesses
    • fann_get_cascade_candidate_change_fraction - Returns the cascade candidate change fraction
    • fann_get_cascade_candidate_limit - Return the candidate limit
    • fann_get_cascade_candidate_stagnation_epochs - Returns the number of cascade candidate stagnation epochs
    • fann_get_cascade_max_cand_epochs - Returns the maximum candidate epochs
    • fann_get_cascade_max_out_epochs - Returns the maximum out epochs
    • fann_get_cascade_min_cand_epochs - Returns the minimum candidate epochs
    • fann_get_cascade_min_out_epochs - Returns the minimum out epochs
    • fann_get_cascade_num_candidates - Returns the number of candidates used during training
    • fann_get_cascade_num_candidate_groups - Returns the number of candidate groups
    • fann_get_cascade_output_change_fraction - Returns the cascade output change fraction
    • fann_get_cascade_output_stagnation_epochs - Returns the number of cascade output stagnation epochs
    • fann_get_cascade_weight_multiplier - Returns the weight multiplier
    • fann_get_connection_array - Get connections in the network
    • fann_get_connection_rate - Get the connection rate used when the network was created
    • fann_get_errno - Returns the last error number
    • fann_get_errstr - Returns the last errstr
    • fann_get_layer_array - Get the number of neurons in each layer in the network
    • fann_get_learning_momentum - Returns the learning momentum
    • fann_get_learning_rate - Returns the learning rate
    • fann_get_MSE - Reads the mean square error from the network
    • fann_get_network_type - Get the type of neural network it was created as
    • fann_get_num_input - Get the number of input neurons
    • fann_get_num_layers - Get the number of layers in the neural network
    • fann_get_num_output - Get the number of output neurons
    • fann_get_quickprop_decay - Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
    • fann_get_quickprop_mu - Returns the mu factor
    • fann_get_rprop_decrease_factor - Returns the increase factor used during RPROP training
    • fann_get_rprop_delta_max - Returns the maximum step-size
    • fann_get_rprop_delta_min - Returns the minimum step-size
    • fann_get_rprop_delta_zero - Returns the initial step-size
    • fann_get_rprop_increase_factor - Returns the increase factor used during RPROP training
    • fann_get_sarprop_step_error_shift - Returns the sarprop step error shift
    • fann_get_sarprop_step_error_threshold_factor - Returns the sarprop step error threshold factor
    • fann_get_sarprop_temperature - Returns the sarprop temperature
    • fann_get_sarprop_weight_decay_shift - Returns the sarprop weight decay shift
    • fann_get_total_connections - Get the total number of connections in the entire network
    • fann_get_total_neurons - Get the total number of neurons in the entire network
    • fann_get_training_algorithm - Returns the training algorithm
    • fann_get_train_error_function - Returns the error function used during training
    • fann_get_train_stop_function - Returns the stop function used during training
    • fann_init_weights - Initialize the weights using Widrow + Nguyen’s algorithm
    • fann_length_train_data - Returns the number of training patterns in the train data
    • fann_merge_train_data - Merges the train data
    • fann_num_input_train_data - Returns the number of inputs in each of the training patterns in the train data
    • fann_num_output_train_data - Returns the number of outputs in each of the training patterns in the train data
    • fann_print_error - Prints the error string
    • fann_randomize_weights - Give each connection a random weight between min_weight and max_weight
    • fann_read_train_from_file - Reads a file that stores training data
    • fann_reset_errno - Resets the last error number
    • fann_reset_errstr - Resets the last error string
    • fann_reset_MSE - Resets the mean square error from the network
    • fann_run - Will run input through the neural network
    • fann_save - Saves the entire network to a configuration file
    • fann_save_train - Save the training structure to a file
    • fann_scale_input - Scale data in input vector before feed it to ann based on previously calculated parameters
    • fann_scale_input_train_data - Scales the inputs in the training data to the specified range
    • fann_scale_output - Scale data in output vector before feed it to ann based on previously calculated parameters
    • fann_scale_output_train_data - Scales the outputs in the training data to the specified range
    • fann_scale_train - Scale input and output data based on previously calculated parameters
    • fann_scale_train_data - Scales the inputs and outputs in the training data to the specified range
    • fann_set_activation_function - Sets the activation function for supplied neuron and layer
    • fann_set_activation_function_hidden - Sets the activation function for all of the hidden layers
    • fann_set_activation_function_layer - Sets the activation function for all the neurons in the supplied layer
    • fann_set_activation_function_output - Sets the activation function for the output layer
    • fann_set_activation_steepness - Sets the activation steepness for supplied neuron and layer number
    • fann_set_activation_steepness_hidden - Sets the steepness of the activation steepness for all neurons in the all hidden layers
    • fann_set_activation_steepness_layer - Sets the activation steepness for all of the neurons in the supplied layer number
    • fann_set_activation_steepness_output - Sets the steepness of the activation steepness in the output layer
    • fann_set_bit_fail_limit - Set the bit fail limit used during training
    • fann_set_callback - Sets the callback function for use during training
    • fann_set_cascade_activation_functions - Sets the array of cascade candidate activation functions
    • fann_set_cascade_activation_steepnesses - Sets the array of cascade candidate activation steepnesses
    • fann_set_cascade_candidate_change_fraction - Sets the cascade candidate change fraction
    • fann_set_cascade_candidate_limit - Sets the candidate limit
    • fann_set_cascade_candidate_stagnation_epochs - Sets the number of cascade candidate stagnation epochs
    • fann_set_cascade_max_cand_epochs - Sets the max candidate epochs
    • fann_set_cascade_max_out_epochs - Sets the maximum out epochs
    • fann_set_cascade_min_cand_epochs - Sets the min candidate epochs
    • fann_set_cascade_min_out_epochs - Sets the minimum out epochs
    • fann_set_cascade_num_candidate_groups - Sets the number of candidate groups
    • fann_set_cascade_output_change_fraction - Sets the cascade output change fraction
    • fann_set_cascade_output_stagnation_epochs - Sets the number of cascade output stagnation epochs
    • fann_set_cascade_weight_multiplier - Sets the weight multiplier
    • fann_set_error_log - Sets where the errors are logged to
    • fann_set_input_scaling_params - Calculate input scaling parameters for future use based on training data
    • fann_set_learning_momentum - Sets the learning momentum
    • fann_set_learning_rate - Sets the learning rate
    • fann_set_output_scaling_params - Calculate output scaling parameters for future use based on training data
    • fann_set_quickprop_decay - Sets the quickprop decay factor
    • fann_set_quickprop_mu - Sets the quickprop mu factor
    • fann_set_rprop_decrease_factor - Sets the decrease factor used during RPROP training
    • fann_set_rprop_delta_max - Sets the maximum step-size
    • fann_set_rprop_delta_min - Sets the minimum step-size
    • fann_set_rprop_delta_zero - Sets the initial step-size
    • fann_set_rprop_increase_factor - Sets the increase factor used during RPROP training
    • fann_set_sarprop_step_error_shift - Sets the sarprop step error shift
    • fann_set_sarprop_step_error_threshold_factor - Sets the sarprop step error threshold factor
    • fann_set_sarprop_temperature - Sets the sarprop temperature
    • fann_set_sarprop_weight_decay_shift - Sets the sarprop weight decay shift
    • fann_set_scaling_params - Calculate input and output scaling parameters for future use based on training data
    • fann_set_training_algorithm - Sets the training algorithm
    • fann_set_train_error_function - Sets the error function used during training
    • fann_set_train_stop_function - Sets the stop function used during training
    • fann_set_weight - Set a connection in the network
    • fann_set_weight_array - Set connections in the network
    • fann_shuffle_train_data - Shuffles training data, randomizing the order
    • fann_subset_train_data - Returns an copy of a subset of the train data
    • fann_test - Test with a set of inputs, and a set of desired outputs
    • fann_test_data - Test a set of training data and calculates the MSE for the training data
    • fann_train - Train one iteration with a set of inputs, and a set of desired outputs
    • fann_train_epoch - Train one epoch with a set of training data
    • fann_train_on_data - Trains on an entire dataset for a period of time
    • fann_train_on_file - Trains on an entire dataset, which is read from file, for a period of time
    • fastcgi_finish_request - Flushes all response data to the client
    • fbird_add_user - Alias von ibase_add_user
    • fbird_affected_rows - Alias von ibase_affected_rows
    • fbird_backup - Alias von ibase_backup
    • fbird_blob_add - Alias von ibase_blob_add
    • fbird_blob_cancel - Cancel creating blob
    • fbird_blob_close - Alias von ibase_blob_close
    • fbird_blob_create - Alias von ibase_blob_create
    • fbird_blob_echo - Alias von ibase_blob_echo
    • fbird_blob_get - Alias von ibase_blob_get
    • fbird_blob_import - Alias von ibase_blob_import
    • fbird_blob_info - Alias von ibase_blob_info
    • fbird_blob_open - Alias von ibase_blob_open
    • fbird_close - Alias von ibase_close
    • fbird_commit - Alias von ibase_commit
    • fbird_commit_ret - Alias von ibase_commit_ret
    • fbird_connect - Alias von ibase_connect
    • fbird_db_info - Alias von ibase_db_info
    • fbird_delete_user - Alias von ibase_delete_user
    • fbird_drop_db - Alias von ibase_drop_db
    • fbird_errcode - Alias von ibase_errcode
    • fbird_errmsg - Alias von ibase_errmsg
    • fbird_execute - Alias von ibase_execute
    • fbird_fetch_assoc - Alias von ibase_fetch_assoc
    • fbird_fetch_object - Alias von ibase_fetch_object
    • fbird_fetch_row - Alias von ibase_fetch_row
    • fbird_field_info - Alias von ibase_field_info
    • fbird_free_event_handler - Alias von ibase_free_event_handler
    • fbird_free_query - Alias von ibase_free_query
    • fbird_free_result - Alias von ibase_free_result
    • fbird_gen_id - Alias von ibase_gen_id
    • fbird_maintain_db - Alias von ibase_maintain_db
    • fbird_modify_user - Alias von ibase_modify_user
    • fbird_name_result - Alias von ibase_name_result
    • fbird_num_fields - Alias von ibase_num_fields
    • fbird_num_params - Alias von ibase_num_params
    • fbird_param_info - Alias von ibase_param_info
    • fbird_pconnect - Alias von ibase_pconnect
    • fbird_prepare - Alias von ibase_prepare
    • fbird_query - Alias von ibase_query
    • fbird_restore - Alias von ibase_restore
    • fbird_rollback - Alias von ibase_rollback
    • fbird_rollback_ret - Alias von ibase_rollback_ret
    • fbird_server_info - Alias von ibase_server_info
    • fbird_service_attach - Alias von ibase_service_attach
    • fbird_service_detach - Alias von ibase_service_detach
    • fbird_set_event_handler - Alias von ibase_set_event_handler
    • fbird_trans - Alias von ibase_trans
    • fbird_wait_event - Alias von ibase_wait_event
    • fbsql_affected_rows - Ermittelt die Anzahl der von der vorherigen FrontBase-Operation betroffenen Datensätze
    • fbsql_autocommit - Aktiviert oder deaktiviert Autocommit
    • fbsql_blob_size - Get the size of a BLOB
    • fbsql_change_user - Wechselt den eingeloggten Benutzer der aktiven Verbindung
    • fbsql_clob_size - Get the size of a CLOB
    • fbsql_close - Beendet eine FrontBase-Verbindung
    • fbsql_commit - Wendet eine Transaktion auf die Datenbank an
    • fbsql_connect - Öffnet eine Verbindung zu einem FrontBase-Server
    • fbsql_create_blob - Create a BLOB
    • fbsql_create_clob - Create a CLOB
    • fbsql_create_db - Erstellt eine FrontBase-Datenbank
    • fbsql_database - Lesen oder Setzen des Datenbanknamens, der mit einer Verbindung verwendet wird
    • fbsql_database_password - Sets or retrieves the password for a FrontBase database
    • fbsql_data_seek - Bewegt den internen Ergebnis-Zeiger
    • fbsql_db_query - Absetzen einer Anfrage an die Datenbank
    • fbsql_db_status - Ermittelt den Status einer angegebenen Datenbank
    • fbsql_drop_db - Löschen (DROP) einer FrontBase-Datenbank
    • fbsql_errno - Liefert die numerische Fehlermeldung der der letzten Operation zurück
    • fbsql_error - Liefert den Fehlertext der zuvor ausgeführten Operation
    • fbsql_fetch_array - Fetch a result row as an associative array, a numeric array, or both
    • fbsql_fetch_assoc - Fetch a result row as an associative array
    • fbsql_fetch_field - Liefert ein Objekt mit Feldinformationen aus einem Abfrageergebnis
    • fbsql_fetch_lengths - Get the length of each output in a result
    • fbsql_fetch_object - Fetch a result row as an object
    • fbsql_fetch_row - Liefert einen Datensatz als numerisches Array
    • fbsql_field_flags - Get the flags associated with the specified field in a result
    • fbsql_field_len - Returns the length of the specified field
    • fbsql_field_name - Liefert den Namen des angegebenen Feldes im Ergebnis
    • fbsql_field_seek - Setzt den Ergebniszeiger auf den angegebenen Feldoffset
    • fbsql_field_table - Liefert den Namen der Tabelle, die das genannte Feld enthält
    • fbsql_field_type - Liefert den Typ des angegebenen Feldes in einem Ergebnis
    • fbsql_free_result - Gibt vom Ergebnis belegten Speicher wieder frei
    • fbsql_get_autostart_info - Beschreibung
    • fbsql_hostname - Ermittelt oder setzt den mit einer Verbindung verwendeten Hostnamen
    • fbsql_insert_id - Get the id generated from the previous INSERT operation
    • fbsql_list_dbs - List databases available on a FrontBase server
    • fbsql_list_fields - List FrontBase result fields
    • fbsql_list_tables - List tables in a FrontBase database
    • fbsql_next_result - Setzt den internen Ergebniskennungszeiger auf das nächste Ergebnis
    • fbsql_num_fields - Ermittelt Anzahl der Felder im Ergebnis
    • fbsql_num_rows - Liefert die Anzahl der Datensätze in einem Ergebnis
    • fbsql_password - Liest oder setzt das Bentuzerpasswort für eine Verbindung
    • fbsql_pconnect - Öffnet eine persistente Verbindung zu einem FrontBase-Server
    • fbsql_query - Sendet eine FrontBase-Abfrage
    • fbsql_read_blob - Read a BLOB from the database
    • fbsql_read_clob - Read a CLOB from the database
    • fbsql_result - Liefert Ergebnisdaten
    • fbsql_rollback - Rollback a transaction to the database
    • fbsql_rows_fetched - Get the number of rows affected by the last statement
    • fbsql_select_db - Wählt eine FrontBase-Datenbank aus
    • fbsql_set_characterset - Change input/output character set
    • fbsql_set_lob_mode - Setzt den LOB-Lese-Modus für eine FrontBase-Ergebnismenge
    • fbsql_set_password - Change the password for a given user
    • fbsql_set_transaction - Set the transaction locking and isolation
    • fbsql_start_db - Startet eine Datenbank auf einem lokalen oder entfernten Server
    • fbsql_stop_db - Stoppt eine Datenbank auf einem lokalen oder entferneten Server
    • fbsql_tablename - Alias von fbsql_table_name
    • fbsql_username - Liest oder setzt den Benutzernamen für die Verbindung
    • fbsql_warnings - Aktivieren oder Deaktivieren von FrontBase-Warnungen
    • fclose - Schließt einen offenen Dateizeiger
    • fdf_add_doc_javascript - Fügt JavaScript Code in ein FDF Dokument ein.
    • fdf_add_template - Fügt dem FDF Dokument ein Template hinzu
    • fdf_close - Schließt ein FDF Dokument
    • fdf_create - Erzeugt ein neues FDF Dokument
    • fdf_enum_values - Ruft für jeden Dokumentwert eine benutzerdefinierte Funktion auf
    • fdf_errno - Gibt den Fehlercode der letzten FDF Operation zurück
    • fdf_error - Gibt die Beschrebung eines Fehlercodes zurück
    • fdf_get_ap - Get the appearance of a field
    • fdf_get_attachment - Extracts uploaded file embedded in the FDF
    • fdf_get_encoding - Liefert den Wert des /Encoding Schlüssels
    • fdf_get_file - Gibt den Wert des /F Schlüssels zurück
    • fdf_get_flags - Ermittelt die Flags eines Feldes
    • fdf_get_opt - Liefert einen Wert aus dem Optionsarray eines Feldes
    • fdf_get_status - Gibt den Wert des /STATUS Schlüssels zurück
    • fdf_get_value - Gibt den Wert eines Feldes zurück
    • fdf_get_version - Liefert die Versionsnummer einer FDF Datei oder des APIs
    • fdf_header - Setzt FDF-spezifische Header
    • fdf_next_field_name - Gibt den Namen des nächsten Feldes zurück
    • fdf_open - Öffnet ein FDF Dokument
    • fdf_open_string - Read a FDF document from a string
    • fdf_remove_item - Sets target frame for form
    • fdf_save - Speichern eines FDF Dokuments
    • fdf_save_string - Returns the FDF document as a string
    • fdf_set_ap - Legt das Aussehen eines Feldes fest
    • fdf_set_encoding - Legt die FDF Zeichenkodierung fest
    • fdf_set_file - Definiert ein PDF-Dokument, das FDF-Daten anzeigen soll
    • fdf_set_flags - Setzt Flags eines Feldes
    • fdf_set_javascript_action - Weist einem Feld eine JavaScript Aktion zu
    • fdf_set_on_import_javascript - Adds javascript code to be executed when Acrobat opens the FDF
    • fdf_set_opt - Legt eine Option eines Feldes fest
    • fdf_set_status - Setzt den Wert des /STATUS Schlüssels
    • fdf_set_submit_form_action - Setzt eine Submit-Form-Aktion für ein Feld
    • fdf_set_target_frame - Set target frame for form display
    • fdf_set_value - Legt den Wert eines Feldes fest
    • fdf_set_version - Sets version number for a FDF file
    • fdiv - Dividiert zwei Zahlen gemäß IEEE 754
    • feof - Prüft, ob ein Dateizeiger am Ende der Datei steht
    • FFI::addr - Creates an unmanaged pointer to C data
    • FFI::alignof - Gets the alignment
    • FFI::arrayType - Dynamically constructs a new C array type
    • FFI::cast - Performs a C type cast
    • FFI::cdef - Creates a new FFI object
    • FFI::free - Releases an unmanaged data structure
    • FFI::isNull - Checks whether a FFI\CData is a null pointer
    • FFI::load - Loads C declarations from a C header file
    • FFI::memcmp - Compares memory areas
    • FFI::memcpy - Copies one memory area to another
    • FFI::memset - Fills a memory area
    • FFI::new - Creates a C data structure
    • FFI::scope - Instantiates an FFI object with C declarations parsed during preloading
    • FFI::sizeof - Gets the size of C data or types
    • FFI::string - Creates a PHP string from a memory area
    • FFI::type - Creates an FFI\CType object from a C declaration
    • FFI::typeof - Gets the FFI\CType of FFI\CData
    • fflush - Schreibt den Ausgabepuffer in eine Datei
    • fgetc - Liest das Zeichen, auf welches der Dateizeiger zeigt
    • fgetcsv - Liest eine Zeile von der Position des Dateizeigers und prüft diese auf Komma-Separierte-Werte (CSV)
    • fgets - Liest eine Zeile von der Position des Dateizeigers
    • fgetss - Liest eine Zeile von der Position des Dateizeigers und entfernt HTML Tags.
    • file - Liest eine komplette Datei in ein Array
    • file:// - Accessing local filesystem
    • fileatime - Liefert Datum und Uhrzeit des letzten Zugriffs auf eine Datei
    • filectime - Liefert Datum und Uhrzeit der letzten Änderung des Datei Inode
    • filegroup - Liefert die Gruppenzugehörigkeit einer Datei
    • fileinode - Liefert die Inode-Nummer einer Datei
    • filemtime - Liefert Datum und Uhrzeit der letzten Dateiänderung
    • fileowner - Liefert den Dateieigentümer
    • fileperms - Liefert die Zugriffsrechte einer Datei
    • filepro - Liest und überprüft die Map-Datei
    • filepro_fieldcount - Bestimmt, wieviele Felder in einer filePro-Datenbank vorhanden sind
    • filepro_fieldname - Ermittelt den Namen eines Feldes
    • filepro_fieldtype - Ermittelt den Typ eines Feldes
    • filepro_fieldwidth - Ermittelt die Länge eines Feldes
    • filepro_retrieve - Holt Daten aus einer filePro-Datenbank
    • filepro_rowcount - bestimmt, wieviele Zeilen eine filePro-Datenbank enthält
    • filesize - Liefert die Größe einer Datei
    • FilesystemIterator::current - The current file
    • FilesystemIterator::getFlags - Get the handling flags
    • FilesystemIterator::key - Retrieve the key for the current file
    • FilesystemIterator::next - Move to the next file
    • FilesystemIterator::rewind - Rewinds back to the beginning
    • FilesystemIterator::setFlags - Sets handling flags
    • FilesystemIterator::__construct - Constructs a new filesystem iterator
    • filetype - Liefert den Typ einer Datei
    • file_exists - Prüft, ob eine Datei oder ein Verzeichnis existiert
    • file_get_contents - Liest die gesamte Datei in einen String
    • file_put_contents - Schreibt Daten in eine Datei
    • FilterIterator::accept - Check whether the current element of the iterator is acceptable
    • FilterIterator::current - Get the current element value
    • FilterIterator::getInnerIterator - Get the inner iterator
    • FilterIterator::key - Get the current key
    • FilterIterator::next - Move the iterator forward
    • FilterIterator::rewind - Rewind the iterator
    • FilterIterator::valid - Check whether the current element is valid
    • FilterIterator::__construct - Construct a filterIterator
    • filter_has_var - Prüft, ob eine Variable des angegebenen Typs existiert
    • filter_id - Liefert die Filter-ID zu einem Filternamen
    • filter_input - Nimmt eine Variable von Außen entgegen und filtert sie optional
    • filter_input_array - Nimmt mehrere Variablen von Außen entgegen und filtert sie optional
    • filter_list - Liefert eine Liste aller unterstützten Filter
    • filter_var - Filtern einer Variablen mit einem angegebenen Filter
    • filter_var_array - Nimmt mehrere Variablen entgegen und filtert sie optional
    • finfo::buffer - Alias von finfo_buffer()
    • finfo::file - Alias von finfo_file()
    • finfo::set_flags - Alias von finfo_set_flags()
    • finfo::__construct - Alias von finfo_open
    • finfo_close - Schließt eine fileinfo Ressource
    • finfo_open - Erstellt eine neue fileinfo Ressource
    • floatval - Konvertiert einen Wert nach float
    • flock - Portables Datei-Sperr-Verfahren (advisory locking)
    • floor - Rundet Brüche ab
    • flush - Leert (sendet) den System-Ausgabepuffer
    • fmod - Rest einer Gleitkommadivision (Modulus)
    • fnmatch - Match filename against a pattern
    • fopen - Öffnet eine Datei oder URL
    • forward_static_call - Call a static method
    • forward_static_call_array - Call a static method and pass the arguments as array
    • fpassthru - Gibt alle verbleibenden Daten eines Dateizeigers direkt aus.
    • fprintf - Schreibt einen formatierten String in einen Stream
    • fputcsv - Format line as CSV and write to file pointer
    • fputs - Alias von fwrite
    • fread - Liest Binärdaten aus einer Datei
    • frenchtojd - Konvertiert ein Datum des Französischen Revolutionskalenders zu einer julianischen Tageszahl
    • fscanf - Interpretiert den Input einer Datei entsprechend einem angegebenen Format
    • fseek - Positioniert den Dateizeiger
    • fsockopen - Stellt eine Internet- oder Unix-Domain-Socket-Verbindung her
    • fstat - Sammelt Informationen über eine Datei mittels eines offenen Dateizeigers
    • ftell - Ermittelt die aktuelle Position des Dateizeigers
    • ftok - Erzeugt aus einem Dateipfad und einem Projektbezeichner einen System-V-IPC-Schlüssel
    • FTP-Kontextoptionen - Liste der FTP-Kontextoptionen
    • ftp:// - Accessing FTP(s) URLs
    • ftp_alloc - Reserviert Platz für eine hochzuladende Datei
    • ftp_append - Append the contents of a file to another file on the FTP server
    • ftp_cdup - Wechselt in das darüberliegende Verzeichnis
    • ftp_chdir - Verzeichnis-Wechsel auf einem FTP-Server
    • ftp_chmod - Ändert die Zugriffsrechte einer Datei über FTP
    • ftp_close - Schließt eine FTP-Verbindung
    • ftp_connect - Stellt eine FTP-Verbindung her
    • ftp_delete - Löscht eine Datei auf dem FTP-Server
    • ftp_exec - Fordert die Ausführung eines Programmes auf dem FTP-Server an
    • ftp_fget - Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete Datei
    • ftp_fput - Überträgt eine geöffnete Datei auf einen FTP-Server
    • ftp_get - Lädt eine Datei von einem FTP-Server herunter
    • ftp_get_option - Ruft diverse Laufzeitoptionen des angegebenen FTP-Streams ab
    • ftp_login - Anmelden einer FTP-Verbindung (Login)
    • ftp_mdtm - Gibt den Zeitpunkt der letzten Änderung der angegebenen Datei zurück
    • ftp_mkdir - Erzeugt ein Verzeichnis
    • ftp_mlsd - Returns a list of files in the given directory
    • ftp_nb_continue - Nimmt die Übertragung einer Datei wieder auf (nicht-blockierend)
    • ftp_nb_fget - Lädt eine Datei vom FTP-Server und schreibt sie in eine lokale Datei (nicht-blockierend)
    • ftp_nb_fput - Speichert eine geöffnete Datei auf den FTP-Server (nicht blockierend)
    • ftp_nb_get - Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)
    • ftp_nb_put - Speichert eine Datei auf dem FTP-Server (nicht-blockierend)
    • ftp_nlist - Gibt eine Liste der im angegebenen Verzeichnis enthaltenen Dateien zurück
    • ftp_pasv - Schaltet den passiven Modus ein oder aus
    • ftp_put - Lädt eine Datei auf einen FTP-Server
    • ftp_pwd - Gibt den aktuellen Verzeichnisnamen zurück
    • ftp_quit - Alias von ftp_close
    • ftp_raw - Sendet ein beliebiges Kommando an den FTP-Server
    • ftp_rawlist - Gibt eine detaillierte Liste der Dateien in einem angegebenen Verzeichnis zurück
    • ftp_rename - Benennt eine Datei auf dem FTP-Server um
    • ftp_rmdir - Löscht ein Verzeichnis
    • ftp_set_option - Setzt diverse FTP-Laufzeitoptionen
    • ftp_site - Sendet ein SITE-Kommando zum Server
    • ftp_size - Gibt die Größe der angegebenen Datei zurück
    • ftp_ssl_connect - Öffnet eine sichere SSL-FTP-Verbindung
    • ftp_systype - Gibt den Systemtyp des entfernten FTP-Servers zurück
    • ftruncate - Kürzt eine Datei auf die angegebene Länge
    • function_exists - Falls die angegebene Funktion definiert ist, wird true zurück gegeben
    • func_get_arg - Liefert ein bestimmtes Funktionsargument
    • func_get_args - Liefert Funktionsargumente als Array
    • func_num_args - Liefert die Anzahl der an eine Funktion übergebenen Argumente
    • fwrite - Binär-sicheres Dateischreiben
  • g
    • gc_collect_cycles - Forces collection of any existing garbage cycles
    • gc_disable - Deactivates the circular reference collector
    • gc_enable - Activates the circular reference collector
    • gc_enabled - Returns status of the circular reference collector
    • gc_mem_caches - Reclaims memory used by the Zend Engine memory manager
    • gc_status - Gets information about the garbage collector
    • gd_info - Ruft Informationen über die aktuell verwendete GD-Bibliothek ab
    • GearmanClient::addOptions - Add client options
    • GearmanClient::addServer - Add a job server to the client
    • GearmanClient::addServers - Add a list of job servers to the client
    • GearmanClient::addTask - Add a task to be run in parallel
    • GearmanClient::addTaskBackground - Add a background task to be run in parallel
    • GearmanClient::addTaskHigh - Add a high priority task to run in parallel
    • GearmanClient::addTaskHighBackground - Add a high priority background task to be run in parallel
    • GearmanClient::addTaskLow - Add a low priority task to run in parallel
    • GearmanClient::addTaskLowBackground - Add a low priority background task to be run in parallel
    • GearmanClient::addTaskStatus - Add a task to get status
    • GearmanClient::clearCallbacks - Clear all task callback functions
    • GearmanClient::clone - Create a copy of a GearmanClient object
    • GearmanClient::context - Get the application context
    • GearmanClient::data - Get the application data (deprecated)
    • GearmanClient::do - Run a single task and return a result [deprecated]
    • GearmanClient::doBackground - Run a task in the background
    • GearmanClient::doHigh - Run a single high priority task
    • GearmanClient::doHighBackground - Run a high priority task in the background
    • GearmanClient::doJobHandle - Get the job handle for the running task
    • GearmanClient::doLow - Run a single low priority task
    • GearmanClient::doLowBackground - Run a low priority task in the background
    • GearmanClient::doNormal - Run a single task and return a result
    • GearmanClient::doStatus - Get the status for the running task
    • GearmanClient::echo - Send data to all job servers to see if they echo it back [deprecated]
    • GearmanClient::error - Returns an error string for the last error encountered
    • GearmanClient::getErrno - Get an errno value
    • GearmanClient::jobStatus - Get the status of a background job
    • GearmanClient::ping - Send data to all job servers to see if they echo it back
    • GearmanClient::removeOptions - Remove client options
    • GearmanClient::returnCode - Get the last Gearman return code
    • GearmanClient::runTasks - Run a list of tasks in parallel
    • GearmanClient::setClientCallback - Callback function when there is a data packet for a task (deprecated)
    • GearmanClient::setCompleteCallback - Set a function to be called on task completion
    • GearmanClient::setContext - Set application context
    • GearmanClient::setCreatedCallback - Set a callback for when a task is queued
    • GearmanClient::setData - Set application data (deprecated)
    • GearmanClient::setDataCallback - Callback function when there is a data packet for a task
    • GearmanClient::setExceptionCallback - Set a callback for worker exceptions
    • GearmanClient::setFailCallback - Set callback for job failure
    • GearmanClient::setOptions - Set client options
    • GearmanClient::setStatusCallback - Set a callback for collecting task status
    • GearmanClient::setTimeout - Set socket I/O activity timeout
    • GearmanClient::setWarningCallback - Set a callback for worker warnings
    • GearmanClient::setWorkloadCallback - Set a callback for accepting incremental data updates
    • GearmanClient::timeout - Get current socket I/O activity timeout value
    • GearmanClient::wait - Wait for I/O activity on all connections in a client
    • GearmanClient::__construct - Create a GearmanClient instance
    • GearmanJob::complete - Send the result and complete status (deprecated)
    • GearmanJob::data - Send data for a running job (deprecated)
    • GearmanJob::exception - Send exception for running job (deprecated)
    • GearmanJob::fail - Send fail status (deprecated)
    • GearmanJob::functionName - Get function name
    • GearmanJob::handle - Get the job handle
    • GearmanJob::returnCode - Get last return code
    • GearmanJob::sendComplete - Send the result and complete status
    • GearmanJob::sendData - Send data for a running job
    • GearmanJob::sendException - Send exception for running job (exception)
    • GearmanJob::sendFail - Send fail status
    • GearmanJob::sendStatus - Send status
    • GearmanJob::sendWarning - Send a warning
    • GearmanJob::setReturn - Set a return value
    • GearmanJob::status - Send status (deprecated)
    • GearmanJob::unique - Get the unique identifier
    • GearmanJob::warning - Send a warning (deprecated)
    • GearmanJob::workload - Get workload
    • GearmanJob::workloadSize - Get size of work load
    • GearmanJob::__construct - Create a GearmanJob instance
    • GearmanTask::create - Create a task (deprecated)
    • GearmanTask::data - Get data returned for a task
    • GearmanTask::dataSize - Get the size of returned data
    • GearmanTask::function - Get associated function name (deprecated)
    • GearmanTask::functionName - Get associated function name
    • GearmanTask::isKnown - Determine if task is known
    • GearmanTask::isRunning - Test whether the task is currently running
    • GearmanTask::jobHandle - Get the job handle
    • GearmanTask::recvData - Read work or result data into a buffer for a task
    • GearmanTask::returnCode - Get the last return code
    • GearmanTask::sendData - Send data for a task (deprecated)
    • GearmanTask::sendWorkload - Send data for a task
    • GearmanTask::taskDenominator - Get completion percentage denominator
    • GearmanTask::taskNumerator - Get completion percentage numerator
    • GearmanTask::unique - Get the unique identifier for a task
    • GearmanTask::uuid - Get the unique identifier for a task (deprecated)
    • GearmanTask::__construct - Create a GearmanTask instance
    • GearmanWorker::addFunction - Register and add callback function
    • GearmanWorker::addOptions - Add worker options
    • GearmanWorker::addServer - Add a job server
    • GearmanWorker::addServers - Add job servers
    • GearmanWorker::clone - Create a copy of the worker
    • GearmanWorker::echo - Test job server response
    • GearmanWorker::error - Get the last error encountered
    • GearmanWorker::getErrno - Get errno
    • GearmanWorker::options - Get worker options
    • GearmanWorker::register - Register a function with the job server
    • GearmanWorker::removeOptions - Remove worker options
    • GearmanWorker::returnCode - Get last Gearman return code
    • GearmanWorker::setId - Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers
    • GearmanWorker::setOptions - Set worker options
    • GearmanWorker::setTimeout - Set socket I/O activity timeout
    • GearmanWorker::timeout - Get socket I/O activity timeout
    • GearmanWorker::unregister - Unregister a function name with the job servers
    • GearmanWorker::unregisterAll - Unregister all function names with the job servers
    • GearmanWorker::wait - Wait for activity from one of the job servers
    • GearmanWorker::work - Wait for and perform jobs
    • GearmanWorker::__construct - Create a GearmanWorker instance
    • Gender\Gender::connect - Connect to an external name dictionary
    • Gender\Gender::country - Get textual country representation
    • Gender\Gender::get - Get gender of a name
    • Gender\Gender::isNick - Check if the name0 is an alias of the name1
    • Gender\Gender::similarNames - Get similar names
    • Gender\Gender::__construct - Construct the Gender object
    • Generator::current - Get the yielded value
    • Generator::getReturn - Get the return value of a generator
    • Generator::key - Get the yielded key
    • Generator::next - Resume execution of the generator
    • Generator::rewind - Rewind the iterator
    • Generator::send - Send a value to the generator
    • Generator::throw - Throw an exception into the generator
    • Generator::valid - Check if the iterator has been closed
    • Generator::__wakeup - Serialize callback
    • geoip_asnum_by_name - Get the Autonomous System Numbers (ASN)
    • geoip_continent_code_by_name - Get the two letter continent code
    • geoip_country_code3_by_name - Get the three letter country code
    • geoip_country_code_by_name - Get the two letter country code
    • geoip_country_name_by_name - Get the full country name
    • geoip_database_info - Get GeoIP Database information
    • geoip_db_avail - Determine if GeoIP Database is available
    • geoip_db_filename - Returns the filename of the corresponding GeoIP Database
    • geoip_db_get_all_info - Returns detailed information about all GeoIP database types
    • geoip_domain_by_name - Get the second level domain name
    • geoip_id_by_name - Get the Internet connection type
    • geoip_isp_by_name - Get the Internet Service Provider (ISP) name
    • geoip_netspeedcell_by_name - Get the Internet connection speed
    • geoip_org_by_name - Get the organization name
    • geoip_record_by_name - Returns the detailed City information found in the GeoIP Database
    • geoip_region_by_name - Get the country code and region
    • geoip_region_name_by_code - Returns the region name for some country and region code combo
    • geoip_setup_custom_directory - Set a custom directory for the GeoIP database
    • geoip_time_zone_by_country_and_region - Returns the time zone for some country and region code combo
    • getallheaders - Liefert alle HTTP-Request-Header
    • getcwd - Ermittelt das aktuelle Arbeitsverzeichnis
    • getdate - Gibt Datums- und Zeitinformationen zurück
    • getenv - Liefert den Wert einer Umgebungsvariable
    • gethostbyaddr - Liefert den zur angegebenen IP-Adresse passenden Internet-Hostnamen
    • gethostbyname - Ermittelt die zum angegebenen Internet-Hostnamen passende IPv4-Adresse
    • gethostbynamel - Liefert eine Liste von IPv4-Adressen passend zum angegebenen Internet-Hostnamen
    • gethostname - Gets the host name
    • getimagesize - Ermittelt die Größe einer Grafik
    • getimagesizefromstring - Ermittelt die Größe einer Grafik von einem String
    • getlastmod - Uhrzeit der letzten Änderung eines Scripts
    • getmxrr - Ermittelt die zu einem Internet-Hostnamen passenden MX-Records
    • getmygid - Get PHP script owner's GID
    • getmyinode - Ermittelt den Inode des aktuellen Skripts
    • getmypid - Prozess-Id eines Scripts
    • getmyuid - Zeigt die User-ID des Besitzers eines PHP-Scripts
    • getopt - Gets options from the command line argument list
    • getprotobyname - Liefert die Protokollnummer anhand des Protokollnamens
    • getprotobynumber - Liefert den Protokollnamen anhand der Protokollnummer
    • getrandmax - Liefert die größtmögliche Zufallszahl
    • getrusage - Ermittelt den aktuellen Ressourcenverbrauch
    • getservbyname - Liefert die Portnummer passend zu einem Internet-Dienst und -Protokoll
    • getservbyport - Liefert den Internet-Dienst passend zu einem Port und Protokoll
    • getSession - Connect to a MySQL server
    • gettext - Sucht einen Text in der aktuellen Domain
    • gettimeofday - Ermittelt die aktuelle Zeit
    • gettype - Liefert den Datentyp einer Variablen
    • get_browser - Ermittelt die Fähigkeiten des Browsers eines Benutzers
    • get_called_class - The "Late Static Binding" class name
    • get_cfg_var - Ermittelt den Wert einer Konfigurationsoption
    • get_class - Ermittelt den Klassennamen eines Objekts
    • get_class_methods - Ermittelt die Namen der definierten Methoden einer Klasse
    • get_class_vars - Liefert die Vorgabeeigenschaften einer Klasse
    • get_current_user - Liefert den Benutzernamen des Besitzers des aktuellen PHP-Skripts
    • get_declared_classes - Ermittelt die Namen der definierten Klassen
    • get_declared_interfaces - Gibt ein Array mit allen definierten Interfaces zurück
    • get_declared_traits - Returns an array of all declared traits
    • get_defined_constants - Returns an associative array with the names of all the constants and their values
    • get_defined_functions - Liefert ein Array aller definierten Funktionen
    • get_defined_vars - Gibt ein Array aller definierten Variablen zurück
    • get_extension_funcs - Liefert die Namen der Funktionen einer Extension
    • get_headers - Ruft alle Header ab, die der Server als Antwort auf einen HTTP-Request versendet
    • get_html_translation_table - Gibt die Umwandlungs-Tabelle zurück, die von htmlspecialchars und htmlentities verwendet wird
    • get_included_files - Liefert ein Array mit den Namen der includierten Dateien
    • get_include_path - Gets the current include_path configuration option
    • get_loaded_extensions - Liefert ein Array mit den Namen aller einkompilierten und geladenen Extensions
    • get_magic_quotes_gpc - Ermittelt die aktuelle Konfiguration von magic_quotes_gpc
    • get_magic_quotes_runtime - Ermittelt die aktuelle Konfiguration von magic_quotes_runtime
    • get_meta_tags - Liest alle content-Attribute der Meta-Tags einer Datei aus und gibt ein Array zurück
    • get_object_vars - Liefert die Eigenschaften eines Objekts
    • get_parent_class - Gibt den Namen der Elternklasse eines Objektes zurück
    • get_required_files - Alias von get_included_files
    • get_resources - Returns active resources
    • get_resource_id - Returns an integer identifier for the given resource
    • get_resource_type - Liefert den Typ einer Ressource
    • glob - Findet Dateinamen, die mit einem Muster übereinstimmen
    • glob:// - Find pathnames matching pattern
    • GlobIterator::count - Get the number of directories and files
    • GlobIterator::__construct - Construct a directory using glob
    • Gmagick::addimage - Adds new image to Gmagick object image list
    • Gmagick::addnoiseimage - Adds random noise to the image
    • Gmagick::annotateimage - Annotates an image with text
    • Gmagick::blurimage - Adds blur filter to image
    • Gmagick::borderimage - Surrounds the image with a border
    • Gmagick::charcoalimage - Simulates a charcoal drawing
    • Gmagick::chopimage - Removes a region of an image and trims
    • Gmagick::clear - Clears all resources associated to Gmagick object
    • Gmagick::commentimage - Adds a comment to your image
    • Gmagick::compositeimage - Composite one image onto another
    • Gmagick::cropimage - Extracts a region of the image
    • Gmagick::cropthumbnailimage - Creates a crop thumbnail
    • Gmagick::current - The current purpose
    • Gmagick::cyclecolormapimage - Displaces an image's colormap
    • Gmagick::deconstructimages - Returns certain pixel differences between images
    • Gmagick::despeckleimage - The despeckleimage purpose
    • Gmagick::destroy - The destroy purpose
    • Gmagick::drawimage - Renders the GmagickDraw object on the current image
    • Gmagick::edgeimage - Enhance edges within the image
    • Gmagick::embossimage - Returns a grayscale image with a three-dimensional effect
    • Gmagick::enhanceimage - Improves the quality of a noisy image
    • Gmagick::equalizeimage - Equalizes the image histogram
    • Gmagick::flipimage - Creates a vertical mirror image
    • Gmagick::flopimage - The flopimage purpose
    • Gmagick::frameimage - Adds a simulated three-dimensional border
    • Gmagick::gammaimage - Gamma-corrects an image
    • Gmagick::getcopyright - Returns the GraphicsMagick API copyright as a string
    • Gmagick::getfilename - The filename associated with an image sequence
    • Gmagick::getimagebackgroundcolor - Returns the image background color
    • Gmagick::getimageblueprimary - Returns the chromaticy blue primary point
    • Gmagick::getimagebordercolor - Returns the image border color
    • Gmagick::getimagechanneldepth - Gets the depth for a particular image channel
    • Gmagick::getimagecolors - Returns the color of the specified colormap index
    • Gmagick::getimagecolorspace - Gets the image colorspace
    • Gmagick::getimagecompose - Returns the composite operator associated with the image
    • Gmagick::getimagedelay - Gets the image delay
    • Gmagick::getimagedepth - Gets the depth of the image
    • Gmagick::getimagedispose - Gets the image disposal method
    • Gmagick::getimageextrema - Gets the extrema for the image
    • Gmagick::getimagefilename - Returns the filename of a particular image in a sequence
    • Gmagick::getimageformat - Returns the format of a particular image in a sequence
    • Gmagick::getimagegamma - Gets the image gamma
    • Gmagick::getimagegreenprimary - Returns the chromaticy green primary point
    • Gmagick::getimageheight - Returns the image height
    • Gmagick::getimagehistogram - Gets the image histogram
    • Gmagick::getimageindex - Gets the index of the current active image
    • Gmagick::getimageinterlacescheme - Gets the image interlace scheme
    • Gmagick::getimageiterations - Gets the image iterations
    • Gmagick::getimagematte - Check if the image has a matte channel
    • Gmagick::getimagemattecolor - Returns the image matte color
    • Gmagick::getimageprofile - Returns the named image profile
    • Gmagick::getimageredprimary - Returns the chromaticity red primary point
    • Gmagick::getimagerenderingintent - Gets the image rendering intent
    • Gmagick::getimageresolution - Gets the image X and Y resolution
    • Gmagick::getimagescene - Gets the image scene
    • Gmagick::getimagesignature - Generates an SHA-256 message digest
    • Gmagick::getimagetype - Gets the potential image type
    • Gmagick::getimageunits - Gets the image units of resolution
    • Gmagick::getimagewhitepoint - Returns the chromaticity white point
    • Gmagick::getimagewidth - Returns the width of the image
    • Gmagick::getpackagename - Returns the GraphicsMagick package name
    • Gmagick::getquantumdepth - Returns the Gmagick quantum depth as a string
    • Gmagick::getreleasedate - Returns the GraphicsMagick release date as a string
    • Gmagick::getsamplingfactors - Gets the horizontal and vertical sampling factor
    • Gmagick::getsize - Returns the size associated with the Gmagick object
    • Gmagick::getversion - Returns the GraphicsMagick API version
    • Gmagick::hasnextimage - Checks if the object has more images
    • Gmagick::haspreviousimage - Checks if the object has a previous image
    • Gmagick::implodeimage - Creates a new image as a copy
    • Gmagick::labelimage - Adds a label to an image
    • Gmagick::levelimage - Adjusts the levels of an image
    • Gmagick::magnifyimage - Scales an image proportionally 2x
    • Gmagick::mapimage - Replaces the colors of an image with the closest color from a reference image
    • Gmagick::medianfilterimage - Applies a digital filter
    • Gmagick::minifyimage - Scales an image proportionally to half its size
    • Gmagick::modulateimage - Control the brightness, saturation, and hue
    • Gmagick::motionblurimage - Simulates motion blur
    • Gmagick::newimage - Creates a new image
    • Gmagick::nextimage - Moves to the next image
    • Gmagick::normalizeimage - Enhances the contrast of a color image
    • Gmagick::oilpaintimage - Simulates an oil painting
    • Gmagick::previousimage - Move to the previous image in the object
    • Gmagick::profileimage - Adds or removes a profile from an image
    • Gmagick::quantizeimage - Analyzes the colors within a reference image
    • Gmagick::quantizeimages - The quantizeimages purpose
    • Gmagick::queryfontmetrics - Returns an array representing the font metrics
    • Gmagick::queryfonts - Returns the configured fonts
    • Gmagick::queryformats - Returns formats supported by Gmagick
    • Gmagick::radialblurimage - Radial blurs an image
    • Gmagick::raiseimage - Creates a simulated 3d button-like effect
    • Gmagick::read - Reads image from filename
    • Gmagick::readimage - Reads image from filename
    • Gmagick::readimageblob - Reads image from a binary string
    • Gmagick::readimagefile - The readimagefile purpose
    • Gmagick::reducenoiseimage - Smooths the contours of an image
    • Gmagick::removeimage - Removes an image from the image list
    • Gmagick::removeimageprofile - Removes the named image profile and returns it
    • Gmagick::resampleimage - Resample image to desired resolution
    • Gmagick::resizeimage - Scales an image
    • Gmagick::rollimage - Offsets an image
    • Gmagick::rotateimage - Rotates an image
    • Gmagick::scaleimage - Scales the size of an image
    • Gmagick::separateimagechannel - Separates a channel from the image
    • Gmagick::setCompressionQuality - Sets the object's default compression quality
    • Gmagick::setfilename - Sets the filename before you read or write the image
    • Gmagick::setimagebackgroundcolor - Sets the image background color
    • Gmagick::setimageblueprimary - Sets the image chromaticity blue primary point
    • Gmagick::setimagebordercolor - Sets the image border color
    • Gmagick::setimagechanneldepth - Sets the depth of a particular image channel
    • Gmagick::setimagecolorspace - Sets the image colorspace
    • Gmagick::setimagecompose - Sets the image composite operator
    • Gmagick::setimagedelay - Sets the image delay
    • Gmagick::setimagedepth - Sets the image depth
    • Gmagick::setimagedispose - Sets the image disposal method
    • Gmagick::setimagefilename - Sets the filename of a particular image in a sequence
    • Gmagick::setimageformat - Sets the format of a particular image
    • Gmagick::setimagegamma - Sets the image gamma
    • Gmagick::setimagegreenprimary - Sets the image chromaticity green primary point
    • Gmagick::setimageindex - Set the iterator to the position in the image list specified with the index parameter
    • Gmagick::setimageinterlacescheme - Sets the interlace scheme of the image
    • Gmagick::setimageiterations - Sets the image iterations
    • Gmagick::setimageprofile - Adds a named profile to the Gmagick object
    • Gmagick::setimageredprimary - Sets the image chromaticity red primary point
    • Gmagick::setimagerenderingintent - Sets the image rendering intent
    • Gmagick::setimageresolution - Sets the image resolution
    • Gmagick::setimagescene - Sets the image scene
    • Gmagick::setimagetype - Sets the image type
    • Gmagick::setimageunits - Sets the image units of resolution
    • Gmagick::setimagewhitepoint - Sets the image chromaticity white point
    • Gmagick::setsamplingfactors - Sets the image sampling factors
    • Gmagick::setsize - Sets the size of the Gmagick object
    • Gmagick::shearimage - Creating a parallelogram
    • Gmagick::solarizeimage - Applies a solarizing effect to the image
    • Gmagick::spreadimage - Randomly displaces each pixel in a block
    • Gmagick::stripimage - Strips an image of all profiles and comments
    • Gmagick::swirlimage - Swirls the pixels about the center of the image
    • Gmagick::thumbnailimage - Changes the size of an image
    • Gmagick::trimimage - Remove edges from the image
    • Gmagick::write - Alias von Gmagick::writeimage
    • Gmagick::writeimage - Writes an image to the specified filename
    • Gmagick::__construct - The Gmagick constructor
    • GmagickDraw::annotate - Draws text on the image
    • GmagickDraw::arc - Draws an arc
    • GmagickDraw::bezier - Draws a bezier curve
    • GmagickDraw::ellipse - Draws an ellipse on the image
    • GmagickDraw::getfillcolor - Returns the fill color
    • GmagickDraw::getfillopacity - Returns the opacity used when drawing
    • GmagickDraw::getfont - Returns the font
    • GmagickDraw::getfontsize - Returns the font pointsize
    • GmagickDraw::getfontstyle - Returns the font style
    • GmagickDraw::getfontweight - Returns the font weight
    • GmagickDraw::getstrokecolor - Returns the color used for stroking object outlines
    • GmagickDraw::getstrokeopacity - Returns the opacity of stroked object outlines
    • GmagickDraw::getstrokewidth - Returns the width of the stroke used to draw object outlines
    • GmagickDraw::gettextdecoration - Returns the text decoration
    • GmagickDraw::gettextencoding - Returns the code set used for text annotations
    • GmagickDraw::line - The line purpose
    • GmagickDraw::point - Draws a point
    • GmagickDraw::polygon - Draws a polygon
    • GmagickDraw::polyline - Draws a polyline
    • GmagickDraw::rectangle - Draws a rectangle
    • GmagickDraw::rotate - Applies the specified rotation to the current coordinate space
    • GmagickDraw::roundrectangle - Draws a rounded rectangle
    • GmagickDraw::scale - Adjusts the scaling factor
    • GmagickDraw::setfillcolor - Sets the fill color to be used for drawing filled objects
    • GmagickDraw::setfillopacity - The setfillopacity purpose
    • GmagickDraw::setfont - Sets the fully-specified font to use when annotating with text
    • GmagickDraw::setfontsize - Sets the font pointsize to use when annotating with text
    • GmagickDraw::setfontstyle - Sets the font style to use when annotating with text
    • GmagickDraw::setfontweight - Sets the font weight
    • GmagickDraw::setstrokecolor - Sets the color used for stroking object outlines
    • GmagickDraw::setstrokeopacity - Specifies the opacity of stroked object outlines
    • GmagickDraw::setstrokewidth - Sets the width of the stroke used to draw object outlines
    • GmagickDraw::settextdecoration - Specifies a decoration
    • GmagickDraw::settextencoding - Specifies the text code set
    • GmagickPixel::getcolor - Gibt die Farbe zurück
    • GmagickPixel::getcolorcount - Returns the color count associated with this color
    • GmagickPixel::getcolorvalue - Gets the normalized value of the provided color channel
    • GmagickPixel::setcolor - Sets the color
    • GmagickPixel::setcolorvalue - Sets the normalized value of one of the channels
    • GmagickPixel::__construct - Erstellt ein neues GmagickPixel Objekt
    • gmdate - Formatiert eine GMT/UTC Zeit-/Datumsangabe
    • gmmktime - Gibt einen Unix-Timestamp (Zeitstempel) für ein GMT Datum zurück
    • gmp_abs - Absolute value
    • gmp_add - Add numbers
    • gmp_and - Bitwise AND
    • gmp_binomial - Calculates binomial coefficient
    • gmp_clrbit - Clear bit
    • gmp_cmp - Compare numbers
    • gmp_com - Calculates one's complement
    • gmp_div - Alias von gmp_div_q
    • gmp_divexact - Exact division of numbers
    • gmp_div_q - Divide numbers
    • gmp_div_qr - Divide numbers and get quotient and remainder
    • gmp_div_r - Remainder of the division of numbers
    • gmp_export - Export to a binary string
    • gmp_fact - Factorial
    • gmp_gcd - Calculate GCD
    • gmp_gcdext - Calculate GCD and multipliers
    • gmp_hamdist - Hamming distance
    • gmp_import - Import from a binary string
    • gmp_init - Create GMP number
    • gmp_intval - Convert GMP number to integer
    • gmp_invert - Inverse by modulo
    • gmp_jacobi - Jacobi symbol
    • gmp_kronecker - Kronecker symbol
    • gmp_lcm - Calculate LCM
    • gmp_legendre - Legendre symbol
    • gmp_mod - Modulo operation
    • gmp_mul - Multiply numbers
    • gmp_neg - Negate number
    • gmp_nextprime - Find next prime number
    • gmp_or - Bitwise OR
    • gmp_perfect_power - Perfect power check
    • gmp_perfect_square - Perfect square check
    • gmp_popcount - Population count
    • gmp_pow - Raise number into power
    • gmp_powm - Raise number into power with modulo
    • gmp_prob_prime - Check if number is "probably prime"
    • gmp_random - Random number
    • gmp_random_bits - Random number
    • gmp_random_range - Random number
    • gmp_random_seed - Sets the RNG seed
    • gmp_root - Take the integer part of nth root
    • gmp_rootrem - Take the integer part and remainder of nth root
    • gmp_scan0 - Scan for 0
    • gmp_scan1 - Scan for 1
    • gmp_setbit - Set bit
    • gmp_sign - Sign of number
    • gmp_sqrt - Calculate square root
    • gmp_sqrtrem - Square root with remainder
    • gmp_strval - Convert GMP number to string
    • gmp_sub - Subtract numbers
    • gmp_testbit - Tests if a bit is set
    • gmp_xor - Bitwise XOR
    • gmstrftime - Formatiert eine Datum-/Zeitangabe in GMT/UTC-Format entsprechend den lokalen Einstellungen
    • gnupg_adddecryptkey - Fügt einen Schlüssel für Entschlüsselung hinzu
    • gnupg_addencryptkey - Fügt einen Schlüssel zur Verschlüsselung hinzu
    • gnupg_addsignkey - Fügt einen Schlüssel für Signierung hinzu
    • gnupg_cleardecryptkeys - Entfernt alle Schlüssel, die vorher für Entschlüsselung hinterlegt wurden
    • gnupg_clearencryptkeys - Entfernt alle Schlüssel, die vorher zur Verschlüsselung hinterlegt wurden
    • gnupg_clearsignkeys - Entfernt alle Schlüssel die vorher zur Signierung hinterlegt wurden
    • gnupg_decrypt - Entschlüsselt einen gegebenen Text
    • gnupg_decryptverify - Entschlüsselt und vertifiziert einen gegebenen Text
    • gnupg_encrypt - Verschlüsselt einen gegebenen Text
    • gnupg_encryptsign - Verschlüsselt und signiert einen gegebenen Text
    • gnupg_export - Exportiert einen Schlüssel
    • gnupg_geterror - Gibt den Fehlertext zurück, wenn eine Funktion scheitert
    • gnupg_getprotocol - Gibt das aktuell für alle Operationen aktive Protokoll zurück
    • gnupg_import - Importiert einen Schlüssel
    • gnupg_init - Initialisiert eine Verbindung
    • gnupg_keyinfo - Gibt ein Array mit Informationen über alle Schlüssel zurück, die dem gegebenen Muster entsprechen
    • gnupg_setarmor - Gepanzerte Ausgabe umschalten
    • gnupg_seterrormode - Setzt den Modus für error_reporting
    • gnupg_setsignmode - Setzt den Signierungs-Modus
    • gnupg_sign - Signiert einen übergebenen Text
    • gnupg_verify - Verifiziert einen signierten Text
    • grapheme_extract - Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8
    • grapheme_stripos - Find position (in grapheme units) of first occurrence of a case-insensitive string
    • grapheme_stristr - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack
    • grapheme_strlen - Get string length in grapheme units
    • grapheme_strpos - Find position (in grapheme units) of first occurrence of a string
    • grapheme_strripos - Find position (in grapheme units) of last occurrence of a case-insensitive string
    • grapheme_strrpos - Find position (in grapheme units) of last occurrence of a string
    • grapheme_strstr - Returns part of haystack string from the first occurrence of needle to the end of haystack
    • grapheme_substr - Return part of a string
    • gregoriantojd - Konvertierung vom Gregorianischen Kalender zum Julianischen Datum
    • gzclose - Schließt einen geöffnete gz-Dateizeiger
    • gzcompress - Komprimiert einen String
    • gzdecode - Dekodiert eine gzip-komprimierte Zeichenkette
    • gzdeflate - Komprimiert eine Zeichenkette
    • gzencode - Create a gzip compressed string
    • gzeof - Prüft bei einem gz-Dateizeiger auf EOF
    • gzfile - Liest eine ganze gz-Datei in ein Array
    • gzgetc - Holt Zeichen vom gz-Dateizeiger
    • gzgets - Get line from file pointer
    • gzgetss - Holt eine Zeile vom gz-Dateizeiger und entfernt die HTML-Tags
    • gzinflate - Dekomprimiert eine komprimierte Zeichenkette
    • gzopen - Öffnet eine gz-Datei
    • gzpassthru - Gibt alle verbleibenden Daten eines gz-Dateizeigers aus
    • gzputs - Alias von gzwrite
    • gzread - Liest binary-safe aus einer gz-Datei
    • gzrewind - Setzt den gz-Dateizeiger auf den Anfang zurück
    • gzseek - Positioniert den gz-Dateizeiger
    • gztell - Ermittelt die aktuelle Position eines gz-Dateizeigers
    • gzuncompress - Dekomprimiert einen komprimierten String
    • gzwrite - Ausgabe in gz-komprimierte Dateien
  • h
    • hash - Berechnet den Hash einer Nachricht
    • HashContext::__construct - Private constructor to disallow direct instantiation
    • hash_algos - Gibt einer Liste der verfügbaren Hashing-Algorithmen zurück
    • hash_copy - Dupliziert einen Hash-Kontext
    • hash_equals - Timing attack safe string comparison
    • hash_file - Berechnet den Hash des Inhalts einer Datei
    • hash_final - Schließt einen schrittweisen Hashing-Vorgang ab und gibt sein Ergebnis zurück
    • hash_hkdf - Generate a HKDF key derivation of a supplied key input
    • hash_hmac - Berechnet einen Hash mit Schlüssel unter Verwendung von HMAC
    • hash_hmac_algos - Return a list of registered hashing algorithms suitable for hash_hmac
    • hash_hmac_file - Berechnet einen Hash einer Datei mit Schlüssel unter Verwendung von HMAC
    • hash_init - Initialisiert einen schrittweisen Hashing-Kontext
    • hash_pbkdf2 - Generate a PBKDF2 key derivation of a supplied password
    • hash_update - Fügt Daten an einen aktiven Hash-Kontext an
    • hash_update_file - Fügt Daten aus einer Datei an einen aktiven Hash-Kontext an
    • hash_update_stream - Fügt Daten aus einem Stream an einen aktiven Hash-Kontext an
    • header - Sendet einen HTTP-Header in Rohform
    • headers_list - Gibt eine Liste der gesendeten (oder zum Senden vorbereiteten) Response Header zurück
    • headers_sent - Prüft, ob oder wo die Header bereits gesendet wurden
    • header_register_callback - Call a header function
    • header_remove - Remove previously set headers
    • hebrev - Konvertiert logischen hebräischen Text in sichtbaren Text
    • hebrevc - Konvertiert (natürlichen) hebräischen Text in sichtbaren Text inkl. Anpassung von Zeilenumbrüchen
    • hex2bin - Dekodiert einen hexadezimal kodierten Binärstring
    • hexdec - Wandelt von hexadezimal zu dezimal um
    • highlight_file - Syntax-Hervorhebung für eine Datei
    • highlight_string - Hervorhebung der Syntax eines Strings
    • hrtime - Get the system's high resolution time
    • HRTime\PerformanceCounter::getFrequency - Timer frequency in ticks per second
    • HRTime\PerformanceCounter::getTicks - Current ticks from the system
    • HRTime\PerformanceCounter::getTicksSince - Ticks elapsed since the given value
    • HRTime\StopWatch::getElapsedTicks - Get elapsed ticks for all intervals
    • HRTime\StopWatch::getElapsedTime - Get elapsed time for all intervals
    • HRTime\StopWatch::getLastElapsedTicks - Get elapsed ticks for the last interval
    • HRTime\StopWatch::getLastElapsedTime - Get elapsed time for the last interval
    • HRTime\StopWatch::isRunning - Whether the measurement is running
    • HRTime\StopWatch::start - Start time measurement
    • HRTime\StopWatch::stop - Stop time measurement
    • htmlentities - Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um
    • htmlspecialchars - Wandelt Sonderzeichen in HTML-Codes um
    • htmlspecialchars_decode - Konvertiert besondere HTML-Auszeichnungen zurück in Buchstaben
    • html_entity_decode - Konvertiert HTML-Entities in ihre entsprechenden Zeichen
    • http:// - Accessing HTTP(s) URLs
    • HTTP context options - HTTP context option listing
    • http_build_query - Liefert einen URL-kodierten Query-String
    • http_response_code - Get or Set the HTTP response code
    • hypot - Berechnet die Länge der Hypotenuse eines rechtwinkligen Dreiecks
  • i
    • ibase_add_user - Fügt einen Benutzer zu einer Security-Datenbank hinzu
    • ibase_affected_rows - Gibt die Anzahl der Zeilen zurück, die von der vorherigen Abfrage betroffen waren
    • ibase_backup - Initiiert eine Sicherungsaufgabe im Service Manager und springt sofort zurück
    • ibase_blob_add - Fügt Daten in ein neues BLOB ein
    • ibase_blob_cancel - Bricht die Erstellung eines neuen BLOBs ab.
    • ibase_blob_close - BLOB schließen
    • ibase_blob_create - Erstellt ein neues BLOB zum Hinzufügen von Daten
    • ibase_blob_echo - Ausgabe von BLOB-Inhalten an den Browser
    • ibase_blob_get - Holt sich len Bytes Daten aus dem offenen BLOB
    • ibase_blob_import - Erstellt ein BLOB, kopiert die Dateidaten hinein und schließt es
    • ibase_blob_info - Gibt die Blob-Länge und andere nützliche Informationen zurück
    • ibase_blob_open - BLOB zum Abrufen von Datenteilen öffnen
    • ibase_close - Schließt eine Verbindung zu einer InterBase-Datenbank
    • ibase_commit - Schreibt eine Transaktion fest
    • ibase_commit_ret - Schreibt eine Transaktion fest, ohne diese zu schließen
    • ibase_connect - Öffnet eine Verbindung zu einer Datenbank
    • ibase_db_info - Fragt statistische Daten über eine Datenbank ab
    • ibase_delete_user - Löscht einen Benutzer aus einer Security-Datenbank
    • ibase_drop_db - Löscht eine Datenbank
    • ibase_errcode - Gibt einen Fehlercode zurück
    • ibase_errmsg - Gibt eine Fehlermeldung zurück
    • ibase_execute - Ausführen einer vorbereiteten Abfrage
    • ibase_fetch_assoc - Ruft eine Ergebniszeile aus einer Abfrage als assoziatives Array ab
    • ibase_fetch_object - Liest einen Datensatz einer InterBase-Datenbank als Objekt ein
    • ibase_fetch_row - Ruft eine Zeile aus einer InterBase-Datenbank ab
    • ibase_field_info - Ruft Informationen zu einem Feld ab
    • ibase_free_event_handler - Bricht einen registrierten Ereignishandler ab
    • ibase_free_query - Gibt den Speicher einer vorbereiteten Abfrage wieder frei
    • ibase_free_result - Gibt eine Ergebnismenge frei
    • ibase_gen_id - Inkrementiert den benannten Generator und gibt dessen neuen Wert zurück
    • ibase_maintain_db - Führt einen Wartungsbefehl auf dem Datenbankserver aus
    • ibase_modify_user - Ändert den Benutzer einer Security-Datenbank
    • ibase_name_result - Weist einer Ergebnismenge einen Namen zu
    • ibase_num_fields - Ermittelt die Anzahl der Felder einer Ergebnismenge
    • ibase_num_params - Gibt die Anzahl der Parameter in einer vorbereiteten Abfrage zurück
    • ibase_param_info - Gibt Informationen zu einem Parameter in einer vorbereiteten Abfrage zurück
    • ibase_pconnect - Öffnet eine persistente Verbindung zu einer InterBase-Datenbank
    • ibase_prepare - Bereitet eine Abfrage für späteres Binden der Parameter-Platzhalter und Ausführung vor
    • ibase_query - Führt eine Abfrage auf einer InterBase Datenbank aus
    • ibase_restore - Leitet eine Wiederherstellungsaufgabe im Service Manager ein und kehrt sofort zurück
    • ibase_rollback - Macht eine Transaktion rückgängig
    • ibase_rollback_ret - Macht eine Transaktion rückgängig, ohne diese zu schließen
    • ibase_server_info - Informationen zu einem Datenbankserver anfordern
    • ibase_service_attach - Verbindet zum Service-Manager
    • ibase_service_detach - Trennt die Verbindung zum Service-Manager
    • ibase_set_event_handler - Registriert eine Rückruffunktion, die aufgerufen werden soll, wenn Ereignisse auftreten
    • ibase_trans - Startet eine Transaktion
    • ibase_wait_event - Wartet, bis ein Ereignis von der Datenbank veröffentlicht wurde
    • iconv - Konvertiert Zeichenketten in einen anderen Zeichensatz
    • iconv_get_encoding - Aktuelle Einstellung für Zeichensatz-Konvertierung auslesen
    • iconv_mime_decode - Decodes a MIME header field
    • iconv_mime_decode_headers - Decodes multiple MIME header fields at once
    • iconv_mime_encode - Composes a MIME header field
    • iconv_set_encoding - Einstellungen für die Zeichensatzkonvertierung setzen
    • iconv_strlen - Returns the character count of string
    • iconv_strpos - Finds position of first occurrence of a needle within a haystack
    • iconv_strrpos - Finds the last occurrence of a needle within a haystack
    • iconv_substr - Cut out part of a string
    • idate - Format a local time/date as integer
    • idn_to_ascii - Convert domain name to IDNA ASCII form
    • idn_to_utf8 - Convert domain name from IDNA ASCII to Unicode
    • ignore_user_abort - Legt fest, ob der Verbindungsabbruch eines Clients die Skript-Ausführung abbrechen soll
    • image2wbmp - Gibt das Bild im Browser oder einer Datei aus.
    • imageaffine - Return an image containing the affine transformed src image, using an optional clipping area
    • imageaffinematrixconcat - Concatenate two affine transformation matrices
    • imageaffinematrixget - Get an affine transformation matrix
    • imagealphablending - Set the blending mode for an image
    • imageantialias - Should antialias functions be used or not
    • imagearc - Zeichnet einen Bogen
    • imagebmp - Output a BMP image to browser or file
    • imagechar - Stellt ein Zeichen horizontal dar
    • imagecharup - Zeichnet einen vertikal ausgerichteten Charakter
    • imagecolorallocate - Alloziert eine Farbe für eine Grafik
    • imagecolorallocatealpha - Allocate a color for an image
    • imagecolorat - Ermittelt den Farbwert eines Bildpunktes
    • imagecolorclosest - Ermittelt den Farbwert-Index, der den angegebenen Farben am nächsten liegt
    • imagecolorclosestalpha - Get the index of the closest color to the specified color + alpha
    • imagecolorclosesthwb - Get the index of the color which has the hue, white and blackness
    • imagecolordeallocate - Löscht eine Farbdefinition
    • imagecolorexact - Ermittelt den Index-Wert der angegebenen Farbe
    • imagecolorexactalpha - Get the index of the specified color + alpha
    • imagecolormatch - Makes the colors of the palette version of an image more closely match the true color version
    • imagecolorresolve - Ermittelt den Index-Wert der angegebenen Farbe oder die nächst mögliche Alternative dazu
    • imagecolorresolvealpha - Get the index of the specified color + alpha or its closest possible alternative
    • imagecolorset - Setzt die Farbe für den angegebenen Paletten-Index
    • imagecolorsforindex - Ermittelt die Farbwerte eines Palettenindex
    • imagecolorstotal - Ermittelt die Anzahl der Farben in der Palette eines Bildes
    • imagecolortransparent - Definiert eine Farbe als transparent
    • imageconvolution - Apply a 3x3 convolution matrix, using coefficient and offset
    • imagecopy - Kopiert einen Bildausschnitt
    • imagecopymerge - Copy and merge part of an image
    • imagecopymergegray - Copy and merge part of an image with gray scale
    • imagecopyresampled - Copy and resize part of an image with resampling
    • imagecopyresized - Kopieren und Ändern der Größe eines Bild-Teiles
    • imagecreate - Erzeugt ein neues Paletten-Bild
    • imagecreatefrombmp - Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefromgd - Create a new image from GD file or URL
    • imagecreatefromgd2 - Create a new image from GD2 file or URL
    • imagecreatefromgd2part - Create a new image from a given part of GD2 file or URL
    • imagecreatefromgif - Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefromjpeg - Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefrompng - Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefromstring - Create a new image from the image stream in the string
    • imagecreatefromwbmp - Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefromwebp - Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefromxbm - Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatefromxpm - Erzeugt ein neues Bild aus einer Datei oder URL
    • imagecreatetruecolor - Create a new true color image
    • imagecrop - Crop an image to the given rectangle
    • imagecropauto - Crop an image automatically using one of the available modes
    • imagedashedline - Zeichne eine gestrichelte Linie
    • imagedestroy - Löscht ein Bild
    • imageellipse - Draw an ellipse
    • imagefill - Flutfüllung
    • imagefilledarc - Draw a partial arc and fill it
    • imagefilledellipse - Draw a filled ellipse
    • imagefilledpolygon - Zeichne ein gefülltes Polygon
    • imagefilledrectangle - Zeichne ein gefülltes Rechteck
    • imagefilltoborder - Flutfüllung bis zur angegebenen Farbe
    • imagefilter - Applies a filter to an image
    • imageflip - Flips an image using a given mode
    • imagefontheight - Ermittle die Höhe einer Schriftart
    • imagefontwidth - Ermittle die Breite einer Schriftart
    • imageftbbox - Give the bounding box of a text using fonts via freetype2
    • imagefttext - Write text to the image using fonts using FreeType 2
    • imagegammacorrect - Anwendung einer Gamma-Korrektur auf ein GD-Bild
    • imagegd - Output GD image to browser or file
    • imagegd2 - Output GD2 image to browser or file
    • imagegetclip - Get the clipping rectangle
    • imagegetinterpolation - Get the interpolation method
    • imagegif - Gibt das Bild im Browser oder einer Datei aus.
    • imagegrabscreen - Captures the whole screen
    • imagegrabwindow - Captures a window
    • imageinterlace - Aktiviere oder Deaktiviere Interlacing
    • imageistruecolor - Finds whether an image is a truecolor image
    • imagejpeg - Gibt das Bild im Browser oder einer Datei aus.
    • imagelayereffect - Set the alpha blending flag to use layering effects
    • imageline - Zeichne eine Linie
    • imageloadfont - Lädt eine neue Schriftart
    • imageopenpolygon - Draws an open polygon
    • imagepalettecopy - Copy the palette from one image to another
    • imagepalettetotruecolor - Converts a palette based image to true color
    • imagepng - Ausgabe eines Bildes im Browser oder als Datei im PNG-Format
    • imagepolygon - Zeichne eine Polygon
    • imagerectangle - Zeichne ein Rechteck
    • imageresolution - Get or set the resolution of the image
    • imagerotate - Rotate an image with a given angle
    • imagesavealpha - Ob beim Speichern von PNG-Bildern vollständige Alphakanal-Information erhalten wird
    • imagescale - Scale an image using the given new width and height
    • imagesetbrush - Set the brush image for line drawing
    • imagesetclip - Set the clipping rectangle
    • imagesetinterpolation - Set the interpolation method
    • imagesetpixel - Setze ein einzelnes Pixel
    • imagesetstyle - Set the style for line drawing
    • imagesetthickness - Set the thickness for line drawing
    • imagesettile - Set the tile image for filling
    • imagestring - Zeichne einen horizontalen String
    • imagestringup - Zeichne einen vertikalen String
    • imagesx - Ermittle die Bild-Breite
    • imagesy - Ermittle die Bild-Höhe
    • imagetruecolortopalette - Convert a true color image to a palette image
    • imagettfbbox - Ermittle das umgebende Rechteck eines Textes unter Verwendung von True-Type Schriftarten
    • imagettftext - Schreibe Text ins Bild unter Verwendung von True-Type-Schriftarten
    • imagetypes - Gib die von der aktuell verwendeten PHP-Version unterstützten Grafik-Formate zurück
    • imagewbmp - Gibt das Bild im Browser oder einer Datei aus.
    • imagewebp - Output a WebP image to browser or file
    • imagexbm - Output an XBM image to browser or file
    • image_type_to_extension - Get file extension for image type
    • image_type_to_mime_type - Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
    • Imagick::adaptiveBlurImage - Adds adaptive blur filter to image
    • Imagick::adaptiveResizeImage - Adaptively resize image with data dependent triangulation
    • Imagick::adaptiveSharpenImage - Adaptively sharpen the image
    • Imagick::adaptiveThresholdImage - Selects a threshold for each pixel based on a range of intensity
    • Imagick::addImage - Adds new image to Imagick object image list
    • Imagick::addNoiseImage - Adds random noise to the image
    • Imagick::affineTransformImage - Transforms an image
    • Imagick::animateImages - Animates an image or images
    • Imagick::annotateImage - Annotates an image with text
    • Imagick::appendImages - Append a set of images
    • Imagick::autoLevelImage - Description
    • Imagick::averageImages - Average a set of images
    • Imagick::blackThresholdImage - Forces all pixels below the threshold into black
    • Imagick::blueShiftImage - Description
    • Imagick::blurImage - Adds blur filter to image
    • Imagick::borderImage - Surrounds the image with a border
    • Imagick::brightnessContrastImage - Description
    • Imagick::charcoalImage - Simulates a charcoal drawing
    • Imagick::chopImage - Removes a region of an image and trims
    • Imagick::clampImage - Description
    • Imagick::clear - Clears all resources associated to Imagick object
    • Imagick::clipImage - Clips along the first path from the 8BIM profile
    • Imagick::clipImagePath - Description
    • Imagick::clipPathImage - Clips along the named paths from the 8BIM profile
    • Imagick::clone - Makes an exact copy of the Imagick object
    • Imagick::clutImage - Replaces colors in the image
    • Imagick::coalesceImages - Composites a set of images
    • Imagick::colorFloodfillImage - Changes the color value of any pixel that matches target
    • Imagick::colorizeImage - Blends the fill color with the image
    • Imagick::colorMatrixImage - Description
    • Imagick::combineImages - Combines one or more images into a single image
    • Imagick::commentImage - Adds a comment to your image
    • Imagick::compareImageChannels - Returns the difference in one or more images
    • Imagick::compareImageLayers - Returns the maximum bounding region between images
    • Imagick::compareImages - Compares an image to a reconstructed image
    • Imagick::compositeImage - Composite one image onto another
    • Imagick::contrastImage - Change the contrast of the image
    • Imagick::contrastStretchImage - Enhances the contrast of a color image
    • Imagick::convolveImage - Applies a custom convolution kernel to the image
    • Imagick::count - Get the number of images
    • Imagick::cropImage - Extracts a region of the image
    • Imagick::cropThumbnailImage - Creates a crop thumbnail
    • Imagick::current - Returns a reference to the current Imagick object
    • Imagick::cycleColormapImage - Displaces an image's colormap
    • Imagick::decipherImage - Deciphers an image
    • Imagick::deconstructImages - Returns certain pixel differences between images
    • Imagick::deleteImageArtifact - Delete image artifact
    • Imagick::deleteImageProperty - Description
    • Imagick::deskewImage - Removes skew from the image
    • Imagick::despeckleImage - Reduces the speckle noise in an image
    • Imagick::destroy - Destroys the Imagick object
    • Imagick::displayImage - Displays an image
    • Imagick::displayImages - Displays an image or image sequence
    • Imagick::distortImage - Distorts an image using various distortion methods
    • Imagick::drawImage - Renders the ImagickDraw object on the current image
    • Imagick::edgeImage - Enhance edges within the image
    • Imagick::embossImage - Returns a grayscale image with a three-dimensional effect
    • Imagick::encipherImage - Enciphers an image
    • Imagick::enhanceImage - Improves the quality of a noisy image
    • Imagick::equalizeImage - Equalizes the image histogram
    • Imagick::evaluateImage - Applies an expression to an image
    • Imagick::exportImagePixels - Exports raw image pixels
    • Imagick::extentImage - Set image size
    • Imagick::filter - Description
    • Imagick::flattenImages - Merges a sequence of images
    • Imagick::flipImage - Creates a vertical mirror image
    • Imagick::floodFillPaintImage - Changes the color value of any pixel that matches target
    • Imagick::flopImage - Creates a vertical mirror image
    • Imagick::forwardFourierTransformImage - Description
    • Imagick::frameImage - Adds a simulated three-dimensional border
    • Imagick::functionImage - Applies a function on the image
    • Imagick::fxImage - Evaluate expression for each pixel in the image
    • Imagick::gammaImage - Gamma-corrects an image
    • Imagick::gaussianBlurImage - Blurs an image
    • Imagick::getColorspace - Gets the colorspace
    • Imagick::getCompression - Gets the object compression type
    • Imagick::getCompressionQuality - Gets the object compression quality
    • Imagick::getCopyright - Returns the ImageMagick API copyright as a string
    • Imagick::getFilename - The filename associated with an image sequence
    • Imagick::getFont - Gets font
    • Imagick::getFormat - Returns the format of the Imagick object
    • Imagick::getGravity - Gets the gravity
    • Imagick::getHomeURL - Returns the ImageMagick home URL
    • Imagick::getImage - Returns a new Imagick object
    • Imagick::getImageAlphaChannel - Gets the image alpha channel
    • Imagick::getImageArtifact - Get image artifact
    • Imagick::getImageAttribute - Description
    • Imagick::getImageBackgroundColor - Returns the image background color
    • Imagick::getImageBlob - Returns the image sequence as a blob
    • Imagick::getImageBluePrimary - Returns the chromaticy blue primary point
    • Imagick::getImageBorderColor - Returns the image border color
    • Imagick::getImageChannelDepth - Gets the depth for a particular image channel
    • Imagick::getImageChannelDistortion - Compares image channels of an image to a reconstructed image
    • Imagick::getImageChannelDistortions - Gets channel distortions
    • Imagick::getImageChannelExtrema - Gets the extrema for one or more image channels
    • Imagick::getImageChannelKurtosis - The getImageChannelKurtosis purpose
    • Imagick::getImageChannelMean - Gets the mean and standard deviation
    • Imagick::getImageChannelRange - Gets channel range
    • Imagick::getImageChannelStatistics - Returns statistics for each channel in the image
    • Imagick::getImageClipMask - Gets image clip mask
    • Imagick::getImageColormapColor - Returns the color of the specified colormap index
    • Imagick::getImageColors - Gets the number of unique colors in the image
    • Imagick::getImageColorspace - Gets the image colorspace
    • Imagick::getImageCompose - Returns the composite operator associated with the image
    • Imagick::getImageCompression - Gets the current image's compression type
    • Imagick::getImageCompressionQuality - Gets the current image's compression quality
    • Imagick::getImageDelay - Gets the image delay
    • Imagick::getImageDepth - Gets the image depth
    • Imagick::getImageDispose - Gets the image disposal method
    • Imagick::getImageDistortion - Compares an image to a reconstructed image
    • Imagick::getImageExtrema - Gets the extrema for the image
    • Imagick::getImageFilename - Returns the filename of a particular image in a sequence
    • Imagick::getImageFormat - Returns the format of a particular image in a sequence
    • Imagick::getImageGamma - Gets the image gamma
    • Imagick::getImageGeometry - Gets the width and height as an associative array
    • Imagick::getImageGravity - Gets the image gravity
    • Imagick::getImageGreenPrimary - Returns the chromaticy green primary point
    • Imagick::getImageHeight - Returns the image height
    • Imagick::getImageHistogram - Gets the image histogram
    • Imagick::getImageIndex - Gets the index of the current active image
    • Imagick::getImageInterlaceScheme - Gets the image interlace scheme
    • Imagick::getImageInterpolateMethod - Returns the interpolation method
    • Imagick::getImageIterations - Gets the image iterations
    • Imagick::getImageLength - Returns the image length in bytes
    • Imagick::getImageMatte - Return if the image has a matte channel
    • Imagick::getImageMatteColor - Returns the image matte color
    • Imagick::getImageMimeType - Description
    • Imagick::getImageOrientation - Gets the image orientation
    • Imagick::getImagePage - Returns the page geometry
    • Imagick::getImagePixelColor - Returns the color of the specified pixel
    • Imagick::getImageProfile - Returns the named image profile
    • Imagick::getImageProfiles - Returns the image profiles
    • Imagick::getImageProperties - Returns the image properties
    • Imagick::getImageProperty - Returns the named image property
    • Imagick::getImageRedPrimary - Returns the chromaticity red primary point
    • Imagick::getImageRegion - Extracts a region of the image
    • Imagick::getImageRenderingIntent - Gets the image rendering intent
    • Imagick::getImageResolution - Gets the image X and Y resolution
    • Imagick::getImagesBlob - Returns all image sequences as a blob
    • Imagick::getImageScene - Gets the image scene
    • Imagick::getImageSignature - Generates an SHA-256 message digest
    • Imagick::getImageSize - Returns the image length in bytes
    • Imagick::getImageTicksPerSecond - Gets the image ticks-per-second
    • Imagick::getImageTotalInkDensity - Gets the image total ink density
    • Imagick::getImageType - Gets the potential image type
    • Imagick::getImageUnits - Gets the image units of resolution
    • Imagick::getImageVirtualPixelMethod - Returns the virtual pixel method
    • Imagick::getImageWhitePoint - Returns the chromaticity white point
    • Imagick::getImageWidth - Returns the image width
    • Imagick::getInterlaceScheme - Gets the object interlace scheme
    • Imagick::getIteratorIndex - Gets the index of the current active image
    • Imagick::getNumberImages - Returns the number of images in the object
    • Imagick::getOption - Returns a value associated with the specified key
    • Imagick::getPackageName - Returns the ImageMagick package name
    • Imagick::getPage - Returns the page geometry
    • Imagick::getPixelIterator - Returns a MagickPixelIterator
    • Imagick::getPixelRegionIterator - Get an ImagickPixelIterator for an image section
    • Imagick::getPointSize - Gets point size
    • Imagick::getQuantum - Description
    • Imagick::getQuantumDepth - Gets the quantum depth
    • Imagick::getQuantumRange - Returns the Imagick quantum range
    • Imagick::getRegistry - Description
    • Imagick::getReleaseDate - Returns the ImageMagick release date
    • Imagick::getResource - Returns the specified resource's memory usage
    • Imagick::getResourceLimit - Returns the specified resource limit
    • Imagick::getSamplingFactors - Gets the horizontal and vertical sampling factor
    • Imagick::getSize - Returns the size associated with the Imagick object
    • Imagick::getSizeOffset - Returns the size offset
    • Imagick::getVersion - Returns the ImageMagick API version
    • Imagick::haldClutImage - Replaces colors in the image
    • Imagick::hasNextImage - Checks if the object has more images
    • Imagick::hasPreviousImage - Checks if the object has a previous image
    • Imagick::identifyFormat - Description
    • Imagick::identifyImage - Identifies an image and fetches attributes
    • Imagick::implodeImage - Creates a new image as a copy
    • Imagick::importImagePixels - Imports image pixels
    • Imagick::inverseFourierTransformImage - Description
    • Imagick::labelImage - Adds a label to an image
    • Imagick::levelImage - Adjusts the levels of an image
    • Imagick::linearStretchImage - Stretches with saturation the image intensity
    • Imagick::liquidRescaleImage - Animates an image or images
    • Imagick::listRegistry - Description
    • Imagick::magnifyImage - Scales an image proportionally 2x
    • Imagick::mapImage - Replaces the colors of an image with the closest color from a reference image
    • Imagick::matteFloodfillImage - Changes the transparency value of a color
    • Imagick::medianFilterImage - Applies a digital filter
    • Imagick::mergeImageLayers - Merges image layers
    • Imagick::minifyImage - Scales an image proportionally to half its size
    • Imagick::modulateImage - Control the brightness, saturation, and hue
    • Imagick::montageImage - Creates a composite image
    • Imagick::morphImages - Method morphs a set of images
    • Imagick::morphology - Description
    • Imagick::mosaicImages - Forms a mosaic from images
    • Imagick::motionBlurImage - Simulates motion blur
    • Imagick::negateImage - Negates the colors in the reference image
    • Imagick::newImage - Creates a new image
    • Imagick::newPseudoImage - Creates a new image
    • Imagick::nextImage - Moves to the next image
    • Imagick::normalizeImage - Enhances the contrast of a color image
    • Imagick::oilPaintImage - Simulates an oil painting
    • Imagick::opaquePaintImage - Changes the color value of any pixel that matches target
    • Imagick::optimizeImageLayers - Removes repeated portions of images to optimize
    • Imagick::orderedPosterizeImage - Performs an ordered dither
    • Imagick::paintFloodfillImage - Changes the color value of any pixel that matches target
    • Imagick::paintOpaqueImage - Change any pixel that matches color
    • Imagick::paintTransparentImage - Changes any pixel that matches color with the color defined by fill
    • Imagick::pingImage - Abrufen von grundlegenden Merkmalen eines Bildes
    • Imagick::pingImageBlob - Quickly fetch attributes
    • Imagick::pingImageFile - Get basic image attributes in a lightweight manner
    • Imagick::polaroidImage - Simulates a Polaroid picture
    • Imagick::posterizeImage - Reduces the image to a limited number of color level
    • Imagick::previewImages - Quickly pin-point appropriate parameters for image processing
    • Imagick::previousImage - Move to the previous image in the object
    • Imagick::profileImage - Adds or removes a profile from an image
    • Imagick::quantizeImage - Analyzes the colors within a reference image
    • Imagick::quantizeImages - Analyzes the colors within a sequence of images
    • Imagick::queryFontMetrics - Returns an array representing the font metrics
    • Imagick::queryFonts - Returns the configured fonts
    • Imagick::queryFormats - Returns formats supported by Imagick
    • Imagick::radialBlurImage - Radial blurs an image
    • Imagick::raiseImage - Creates a simulated 3d button-like effect
    • Imagick::randomThresholdImage - Creates a high-contrast, two-color image
    • Imagick::readImage - Reads image from filename
    • Imagick::readImageBlob - Reads image from a binary string
    • Imagick::readImageFile - Reads image from open filehandle
    • Imagick::readimages - Description
    • Imagick::recolorImage - Recolors image
    • Imagick::reduceNoiseImage - Smooths the contours of an image
    • Imagick::remapImage - Remaps image colors
    • Imagick::removeImage - Removes an image from the image list
    • Imagick::removeImageProfile - Removes the named image profile and returns it
    • Imagick::render - Renders all preceding drawing commands
    • Imagick::resampleImage - Resample image to desired resolution
    • Imagick::resetImagePage - Reset image page
    • Imagick::resizeImage - Scales an image
    • Imagick::rollImage - Offsets an image
    • Imagick::rotateImage - Rotates an image
    • Imagick::rotationalBlurImage - Description
    • Imagick::roundCorners - Rounds image corners
    • Imagick::sampleImage - Scales an image with pixel sampling
    • Imagick::scaleImage - Scales the size of an image
    • Imagick::segmentImage - Segments an image
    • Imagick::selectiveBlurImage - Description
    • Imagick::separateImageChannel - Separates a channel from the image
    • Imagick::sepiaToneImage - Sepia tones an image
    • Imagick::setBackgroundColor - Sets the object's default background color
    • Imagick::setColorspace - Set colorspace
    • Imagick::setCompression - Sets the object's default compression type
    • Imagick::setCompressionQuality - Sets the object's default compression quality
    • Imagick::setFilename - Sets the filename before you read or write the image
    • Imagick::setFirstIterator - Sets the Imagick iterator to the first image
    • Imagick::setFont - Sets font
    • Imagick::setFormat - Sets the format of the Imagick object
    • Imagick::setGravity - Sets the gravity
    • Imagick::setImage - Replaces image in the object
    • Imagick::setImageAlphaChannel - Sets image alpha channel
    • Imagick::setImageArtifact - Set image artifact
    • Imagick::setImageAttribute - Description
    • Imagick::setImageBackgroundColor - Sets the image background color
    • Imagick::setImageBias - Sets the image bias for any method that convolves an image
    • Imagick::setImageBiasQuantum - Description
    • Imagick::setImageBluePrimary - Sets the image chromaticity blue primary point
    • Imagick::setImageBorderColor - Sets the image border color
    • Imagick::setImageChannelDepth - Sets the depth of a particular image channel
    • Imagick::setImageClipMask - Sets image clip mask
    • Imagick::setImageColormapColor - Sets the color of the specified colormap index
    • Imagick::setImageColorspace - Sets the image colorspace
    • Imagick::setImageCompose - Sets the image composite operator
    • Imagick::setImageCompression - Sets the image compression
    • Imagick::setImageCompressionQuality - Sets the image compression quality
    • Imagick::setImageDelay - Sets the image delay
    • Imagick::setImageDepth - Sets the image depth
    • Imagick::setImageDispose - Sets the image disposal method
    • Imagick::setImageExtent - Sets the image size
    • Imagick::setImageFilename - Sets the filename of a particular image
    • Imagick::setImageFormat - Sets the format of a particular image
    • Imagick::setImageGamma - Sets the image gamma
    • Imagick::setImageGravity - Sets the image gravity
    • Imagick::setImageGreenPrimary - Sets the image chromaticity green primary point
    • Imagick::setImageIndex - Set the iterator position
    • Imagick::setImageInterlaceScheme - Sets the image compression
    • Imagick::setImageInterpolateMethod - Sets the image interpolate pixel method
    • Imagick::setImageIterations - Sets the image iterations
    • Imagick::setImageMatte - Sets the image matte channel
    • Imagick::setImageMatteColor - Sets the image matte color
    • Imagick::setImageOpacity - Sets the image opacity level
    • Imagick::setImageOrientation - Sets the image orientation
    • Imagick::setImagePage - Sets the page geometry of the image
    • Imagick::setImageProfile - Adds a named profile to the Imagick object
    • Imagick::setImageProperty - Sets an image property
    • Imagick::setImageRedPrimary - Sets the image chromaticity red primary point
    • Imagick::setImageRenderingIntent - Sets the image rendering intent
    • Imagick::setImageResolution - Sets the image resolution
    • Imagick::setImageScene - Sets the image scene
    • Imagick::setImageTicksPerSecond - Sets the image ticks-per-second
    • Imagick::setImageType - Sets the image type
    • Imagick::setImageUnits - Sets the image units of resolution
    • Imagick::setImageVirtualPixelMethod - Sets the image virtual pixel method
    • Imagick::setImageWhitePoint - Sets the image chromaticity white point
    • Imagick::setInterlaceScheme - Sets the image compression
    • Imagick::setIteratorIndex - Set the iterator position
    • Imagick::setLastIterator - Sets the Imagick iterator to the last image
    • Imagick::setOption - Set an option
    • Imagick::setPage - Sets the page geometry of the Imagick object
    • Imagick::setPointSize - Sets point size
    • Imagick::setProgressMonitor - Description
    • Imagick::setRegistry - Description
    • Imagick::setResolution - Sets the image resolution
    • Imagick::setResourceLimit - Sets the limit for a particular resource
    • Imagick::setSamplingFactors - Sets the image sampling factors
    • Imagick::setSize - Sets the size of the Imagick object
    • Imagick::setSizeOffset - Sets the size and offset of the Imagick object
    • Imagick::setType - Sets the image type attribute
    • Imagick::shadeImage - Creates a 3D effect
    • Imagick::shadowImage - Simulates an image shadow
    • Imagick::sharpenImage - Sharpens an image
    • Imagick::shaveImage - Shaves pixels from the image edges
    • Imagick::shearImage - Creating a parallelogram
    • Imagick::sigmoidalContrastImage - Adjusts the contrast of an image
    • Imagick::sketchImage - Simulates a pencil sketch
    • Imagick::smushImages - Description
    • Imagick::solarizeImage - Applies a solarizing effect to the image
    • Imagick::sparseColorImage - Interpolates colors
    • Imagick::spliceImage - Splices a solid color into the image
    • Imagick::spreadImage - Randomly displaces each pixel in a block
    • Imagick::statisticImage - Description
    • Imagick::steganoImage - Hides a digital watermark within the image
    • Imagick::stereoImage - Composites two images
    • Imagick::stripImage - Strips an image of all profiles and comments
    • Imagick::subImageMatch - Description
    • Imagick::swirlImage - Swirls the pixels about the center of the image
    • Imagick::textureImage - Repeatedly tiles the texture image
    • Imagick::thresholdImage - Changes the value of individual pixels based on a threshold
    • Imagick::thumbnailImage - Changes the size of an image
    • Imagick::tintImage - Applies a color vector to each pixel in the image
    • Imagick::transformImage - Convenience method for setting crop size and the image geometry
    • Imagick::transformImageColorspace - Transforms an image to a new colorspace
    • Imagick::transparentPaintImage - Paints pixels transparent
    • Imagick::transposeImage - Creates a vertical mirror image
    • Imagick::transverseImage - Creates a horizontal mirror image
    • Imagick::trimImage - Remove edges from the image
    • Imagick::uniqueImageColors - Discards all but one of any pixel color
    • Imagick::unsharpMaskImage - Sharpens an image
    • Imagick::valid - Checks if the current item is valid
    • Imagick::vignetteImage - Adds vignette filter to the image
    • Imagick::waveImage - Applies wave filter to the image
    • Imagick::whiteThresholdImage - Force all pixels above the threshold into white
    • Imagick::writeImage - Writes an image to the specified filename
    • Imagick::writeImageFile - Writes an image to a filehandle
    • Imagick::writeImages - Writes an image or image sequence
    • Imagick::writeImagesFile - Writes frames to a filehandle
    • Imagick::__construct - The Imagick constructor
    • Imagick::__toString - Returns the image as a string
    • ImagickDraw::affine - Adjusts the current affine transformation matrix
    • ImagickDraw::annotation - Draws text on the image
    • ImagickDraw::arc - Draws an arc
    • ImagickDraw::bezier - Draws a bezier curve
    • ImagickDraw::circle - Draws a circle
    • ImagickDraw::clear - Clears the ImagickDraw
    • ImagickDraw::clone - Makes an exact copy of the specified ImagickDraw object
    • ImagickDraw::color - Draws color on image
    • ImagickDraw::comment - Adds a comment
    • ImagickDraw::composite - Composites an image onto the current image
    • ImagickDraw::destroy - Frees all associated resources
    • ImagickDraw::ellipse - Draws an ellipse on the image
    • ImagickDraw::getClipPath - Obtains the current clipping path ID
    • ImagickDraw::getClipRule - Returns the current polygon fill rule
    • ImagickDraw::getClipUnits - Returns the interpretation of clip path units
    • ImagickDraw::getFillColor - Returns the fill color
    • ImagickDraw::getFillOpacity - Returns the opacity used when drawing
    • ImagickDraw::getFillRule - Returns the fill rule
    • ImagickDraw::getFont - Returns the font
    • ImagickDraw::getFontFamily - Returns the font family
    • ImagickDraw::getFontSize - Returns the font pointsize
    • ImagickDraw::getFontStretch - Description
    • ImagickDraw::getFontStyle - Returns the font style
    • ImagickDraw::getFontWeight - Returns the font weight
    • ImagickDraw::getGravity - Returns the text placement gravity
    • ImagickDraw::getStrokeAntialias - Returns the current stroke antialias setting
    • ImagickDraw::getStrokeColor - Returns the color used for stroking object outlines
    • ImagickDraw::getStrokeDashArray - Returns an array representing the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::getStrokeDashOffset - Returns the offset into the dash pattern to start the dash
    • ImagickDraw::getStrokeLineCap - Returns the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::getStrokeLineJoin - Returns the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::getStrokeMiterLimit - Returns the stroke miter limit
    • ImagickDraw::getStrokeOpacity - Returns the opacity of stroked object outlines
    • ImagickDraw::getStrokeWidth - Returns the width of the stroke used to draw object outlines
    • ImagickDraw::getTextAlignment - Returns the text alignment
    • ImagickDraw::getTextAntialias - Returns the current text antialias setting
    • ImagickDraw::getTextDecoration - Returns the text decoration
    • ImagickDraw::getTextEncoding - Returns the code set used for text annotations
    • ImagickDraw::getTextInterlineSpacing - Description
    • ImagickDraw::getTextInterwordSpacing - Description
    • ImagickDraw::getTextKerning - Description
    • ImagickDraw::getTextUnderColor - Returns the text under color
    • ImagickDraw::getVectorGraphics - Returns a string containing vector graphics
    • ImagickDraw::line - Draws a line
    • ImagickDraw::matte - Paints on the image's opacity channel
    • ImagickDraw::pathClose - Adds a path element to the current path
    • ImagickDraw::pathCurveToAbsolute - Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierRelative - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative - Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToRelative - Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothAbsolute - Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothRelative - Draws a cubic Bezier curve
    • ImagickDraw::pathEllipticArcAbsolute - Draws an elliptical arc
    • ImagickDraw::pathEllipticArcRelative - Draws an elliptical arc
    • ImagickDraw::pathFinish - Terminates the current path
    • ImagickDraw::pathLineToAbsolute - Draws a line path
    • ImagickDraw::pathLineToHorizontalAbsolute - Draws a horizontal line path
    • ImagickDraw::pathLineToHorizontalRelative - Draws a horizontal line
    • ImagickDraw::pathLineToRelative - Draws a line path
    • ImagickDraw::pathLineToVerticalAbsolute - Draws a vertical line
    • ImagickDraw::pathLineToVerticalRelative - Draws a vertical line path
    • ImagickDraw::pathMoveToAbsolute - Starts a new sub-path
    • ImagickDraw::pathMoveToRelative - Starts a new sub-path
    • ImagickDraw::pathStart - Declares the start of a path drawing list
    • ImagickDraw::point - Draws a point
    • ImagickDraw::polygon - Draws a polygon
    • ImagickDraw::polyline - Draws a polyline
    • ImagickDraw::pop - Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
    • ImagickDraw::popClipPath - Terminates a clip path definition
    • ImagickDraw::popDefs - Terminates a definition list
    • ImagickDraw::popPattern - Terminates a pattern definition
    • ImagickDraw::push - Clones the current ImagickDraw and pushes it to the stack
    • ImagickDraw::pushClipPath - Starts a clip path definition
    • ImagickDraw::pushDefs - Indicates that following commands create named elements for early processing
    • ImagickDraw::pushPattern - Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
    • ImagickDraw::rectangle - Draws a rectangle
    • ImagickDraw::render - Renders all preceding drawing commands onto the image
    • ImagickDraw::resetVectorGraphics - Description
    • ImagickDraw::rotate - Applies the specified rotation to the current coordinate space
    • ImagickDraw::roundRectangle - Draws a rounded rectangle
    • ImagickDraw::scale - Adjusts the scaling factor
    • ImagickDraw::setClipPath - Associates a named clipping path with the image
    • ImagickDraw::setClipRule - Set the polygon fill rule to be used by the clipping path
    • ImagickDraw::setClipUnits - Sets the interpretation of clip path units
    • ImagickDraw::setFillAlpha - Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillColor - Sets the fill color to be used for drawing filled objects
    • ImagickDraw::setFillOpacity - Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillPatternURL - Sets the URL to use as a fill pattern for filling objects
    • ImagickDraw::setFillRule - Sets the fill rule to use while drawing polygons
    • ImagickDraw::setFont - Sets the fully-specified font to use when annotating with text
    • ImagickDraw::setFontFamily - Sets the font family to use when annotating with text
    • ImagickDraw::setFontSize - Sets the font pointsize to use when annotating with text
    • ImagickDraw::setFontStretch - Sets the font stretch to use when annotating with text
    • ImagickDraw::setFontStyle - Sets the font style to use when annotating with text
    • ImagickDraw::setFontWeight - Sets the font weight
    • ImagickDraw::setGravity - Sets the text placement gravity
    • ImagickDraw::setResolution - Description
    • ImagickDraw::setStrokeAlpha - Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokeAntialias - Controls whether stroked outlines are antialiased
    • ImagickDraw::setStrokeColor - Sets the color used for stroking object outlines
    • ImagickDraw::setStrokeDashArray - Specifies the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::setStrokeDashOffset - Specifies the offset into the dash pattern to start the dash
    • ImagickDraw::setStrokeLineCap - Specifies the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::setStrokeLineJoin - Specifies the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::setStrokeMiterLimit - Specifies the miter limit
    • ImagickDraw::setStrokeOpacity - Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokePatternURL - Sets the pattern used for stroking object outlines
    • ImagickDraw::setStrokeWidth - Sets the width of the stroke used to draw object outlines
    • ImagickDraw::setTextAlignment - Specifies a text alignment
    • ImagickDraw::setTextAntialias - Controls whether text is antialiased
    • ImagickDraw::setTextDecoration - Specifies a decoration
    • ImagickDraw::setTextEncoding - Specifies the text code set
    • ImagickDraw::setTextInterlineSpacing - Description
    • ImagickDraw::setTextInterwordSpacing - Description
    • ImagickDraw::setTextKerning - Description
    • ImagickDraw::setTextUnderColor - Specifies the color of a background rectangle
    • ImagickDraw::setVectorGraphics - Sets the vector graphics
    • ImagickDraw::setViewbox - Sets the overall canvas size
    • ImagickDraw::skewX - Skews the current coordinate system in the horizontal direction
    • ImagickDraw::skewY - Skews the current coordinate system in the vertical direction
    • ImagickDraw::translate - Applies a translation to the current coordinate system
    • ImagickDraw::__construct - The ImagickDraw constructor
    • ImagickKernel::addKernel - Description
    • ImagickKernel::addUnityKernel - Description
    • ImagickKernel::fromBuiltIn - Description
    • ImagickKernel::fromMatrix - Description
    • ImagickKernel::getMatrix - Description
    • ImagickKernel::scale - Description
    • ImagickKernel::separate - Description
    • ImagickPixel::clear - Clears resources associated with this object
    • ImagickPixel::destroy - Deallocates resources associated with this object
    • ImagickPixel::getColor - Returns the color
    • ImagickPixel::getColorAsString - Returns the color as a string
    • ImagickPixel::getColorCount - Returns the color count associated with this color
    • ImagickPixel::getColorQuantum - Description
    • ImagickPixel::getColorValue - Gets the normalized value of the provided color channel
    • ImagickPixel::getColorValueQuantum - Description
    • ImagickPixel::getHSL - Returns the normalized HSL color of the ImagickPixel object
    • ImagickPixel::getIndex - Description
    • ImagickPixel::isPixelSimilar - Check the distance between this color and another
    • ImagickPixel::isPixelSimilarQuantum - Description
    • ImagickPixel::isSimilar - Check the distance between this color and another
    • ImagickPixel::setColor - Sets the color
    • ImagickPixel::setColorCount - Description
    • ImagickPixel::setColorValue - Sets the normalized value of one of the channels
    • ImagickPixel::setColorValueQuantum - Description
    • ImagickPixel::setHSL - Sets the normalized HSL color
    • ImagickPixel::setIndex - Description
    • ImagickPixel::__construct - The ImagickPixel constructor
    • ImagickPixelIterator::clear - Clear resources associated with a PixelIterator
    • ImagickPixelIterator::destroy - Deallocates resources associated with a PixelIterator
    • ImagickPixelIterator::getCurrentIteratorRow - Returns the current row of ImagickPixel objects
    • ImagickPixelIterator::getIteratorRow - Returns the current pixel iterator row
    • ImagickPixelIterator::getNextIteratorRow - Returns the next row of the pixel iterator
    • ImagickPixelIterator::getPreviousIteratorRow - Returns the previous row
    • ImagickPixelIterator::newPixelIterator - Returns a new pixel iterator
    • ImagickPixelIterator::newPixelRegionIterator - Returns a new pixel iterator
    • ImagickPixelIterator::resetIterator - Resets the pixel iterator
    • ImagickPixelIterator::setIteratorFirstRow - Sets the pixel iterator to the first pixel row
    • ImagickPixelIterator::setIteratorLastRow - Sets the pixel iterator to the last pixel row
    • ImagickPixelIterator::setIteratorRow - Set the pixel iterator row
    • ImagickPixelIterator::syncIterator - Syncs the pixel iterator
    • ImagickPixelIterator::__construct - The ImagickPixelIterator constructor
    • imap_8bit - Konvertiert einen 8bit String in einen quoted-printable String
    • imap_alerts - Liefert alle aufgetretenen IMAP Alarmnachrichten
    • imap_append - String als Nachricht in einem Postfach ablegen
    • imap_base64 - Dekodiert Base-64 kodierten Text
    • imap_binary - Konvertiert einen 8 Bit String in einen Base64 codierten String
    • imap_body - Liefert den Körper einer Nachricht
    • imap_bodystruct - Liefert die Struktur eines bestimmten Nachrichtenteils
    • imap_check - Prüfe aktuelles Postfach
    • imap_clearflag_full - Löscht Flags einer Nachricht
    • imap_close - Schließt einen IMAP Stream
    • imap_create - Alias von imap_createmailbox
    • imap_createmailbox - Anlegen eines neuen Postfachs
    • imap_delete - Nachrichten im aktuellen Postfach zur Löschung markieren
    • imap_deletemailbox - Löscht ein Postfach
    • imap_errors - Liefert alle bisher aufgetretenen Fehlermeldungen
    • imap_expunge - Löscht alle zum Löschen markierte Nachrichten
    • imap_fetchbody - Liefert einen bestimmten Abschnitt aus dem Körper einer Nachricht
    • imap_fetchheader - Liefert den Kopf einer Nachricht
    • imap_fetchmime - Fetch MIME headers for a particular section of the message
    • imap_fetchstructure - Ermittelt die Struktur einer Nachricht
    • imap_fetchtext - Alias von imap_body
    • imap_fetch_overview - Liefert einen Auszug aus den Kopfdaten von Nachrichten
    • imap_gc - Leert den IMAP Cache
    • imap_getacl - Liste der Zugriffsrechte für ein Postfach bestimmen
    • imap_getmailboxes - Liefert detailierte Informationen zu allen verfügbaren Postfächern
    • imap_getsubscribed - Liste alle abonnierten Postfächer
    • imap_get_quota - Liefert Quota-Beschränkungen und Nutzungsstatistik der Postfächer
    • imap_get_quotaroot - Liefert die Quota-Beschränkungen für ein Benutzerpostfach
    • imap_header - Alias von imap_headerinfo
    • imap_headerinfo - Liest die Kopfdaten einer Nachricht
    • imap_headers - Liefert eine Zusammenfassung aller Nachrichtenköpfe eines Postfachs
    • imap_last_error - Liefert die letzte IMAP-Fehlermeldung für dieses Script
    • imap_list - Lies Liste der Postfächer
    • imap_listmailbox - Alias von imap_list
    • imap_listscan - Listet Postfächer nach Suchkriterien
    • imap_listsubscribed - Alias von imap_lsub
    • imap_lsub - Liste alle abonnierten Postfächer
    • imap_mail - Sendet eine Email Nachricht
    • imap_mailboxmsginfo - Informationen zum aktuellen Postfach
    • imap_mail_compose - Erzeugt eine MIME-Nachricht aus Kopf- und Nachrichtenelementen
    • imap_mail_copy - Kopiert Nachrichten in ein Postfach
    • imap_mail_move - Verschiebt Nachrichten in ein anderes Postfach
    • imap_mime_header_decode - Dekodiert MIME-kodierte Headerzeilen
    • imap_msgno - Liefert die Nachrichtennummer für eine gegebene UID
    • imap_mutf7_to_utf8 - Decode a modified UTF-7 string to UTF-8
    • imap_num_msg - Anzahl der Nachrichten im aktuellen Postfach
    • imap_num_recent - Nummer der kürzlich eingetroffenen Nachrichten
    • imap_open - Öffnet einen IMAP-Stream zu einem Mailserver-Postfach
    • imap_ping - Prüft einen IMAP-Stream auf Funktionalität
    • imap_qprint - Konvertiert einen quoted-printable kodierten String in einen 8 Bit String
    • imap_rename - Alias von imap_renamemailbox
    • imap_renamemailbox - Ändert den Namen eines Postfachs
    • imap_reopen - Wechselt das aktuelle Postfach des IMAP-Streams
    • imap_rfc822_parse_adrlist - Zerlegt einen Mailadressstring
    • imap_rfc822_parse_headers - Email-Kopfzeilen aus einem String auslesen
    • imap_rfc822_write_address - Bildet aus Realnamen, Postfach und Server eine korrekt formatierte Mail-Adresse
    • imap_savebody - Speichert einen bestimmten Body-Abschnitt einer Nachricht als Datei
    • imap_scan - Alias von imap_listscan
    • imap_scanmailbox - Alias von imap_listscan
    • imap_search - Liefert ein Array von Nachrichten, die den gegebenen Suchkriterien entsprechen
    • imap_setacl - Setzen der ACL für ein Postfach
    • imap_setflag_full - Setzt Nachrichtenflags
    • imap_set_quota - Setzt die Mengenbeschränkung für ein Postfach
    • imap_sort - Sortiert Nachrichten eines Postfachs
    • imap_status - Liefert Statusinformationen zum angegebenen Postfach
    • imap_subscribe - Abbonieren eines Postfachs
    • imap_thread - Liefert einen Baum zusammenhängender Nachrichten
    • imap_timeout - Imap Timeout setzen oder lesen
    • imap_uid - Liefert die UID für die gegebene Nachrichtennummer
    • imap_undelete - Nimmt eine bereits gesetzte Löschmarkierung einer Nachricht zurück
    • imap_unsubscribe - Abonnement eines Postfachs beenden
    • imap_utf7_decode - Dekodiert einem String im modifizierten UTF-7-Format
    • imap_utf7_encode - Kodiert ISO-8859-1 Text im modifizieren UTF-7-Format
    • imap_utf8 - Konvertiert Text zu UTF8
    • imap_utf8_to_mutf7 - Encode a UTF-8 string to modified UTF-7
    • implode - Verbindet Array-Elemente zu einem String
    • inet_ntop - Konvertiert eine komprimierte IP-Adresse in ein menschenlesbares Format
    • inet_pton - Konvertiert eine IP-Adresse im menschenlesbaren Format in eine komprimierte in_addr-Darstellung
    • InfiniteIterator::next - Moves the inner Iterator forward or rewinds it
    • InfiniteIterator::__construct - Constructs an InfiniteIterator
    • inflate_add - Incrementally inflate encoded data
    • inflate_get_read_len - Get number of bytes read so far
    • inflate_get_status - Get decompression status
    • inflate_init - Initialize an incremental inflate context
    • ingres_autocommit - Schaltet den autocommit-Modus an oder aus
    • ingres_autocommit_state - Prüft, ob die Verbindung im autocommit-Modus arbeitet
    • ingres_charset - Gibt den verwendeten Zeichensatz der Installation zurück
    • ingres_close - Schließt eine Ingres-II-Datenbankverbindung
    • ingres_commit - Beendet eine Transaktion
    • ingres_connect - Öffnet eine Verbindung zu einem Ingres-II-Datenbankserver
    • ingres_cursor - Gibt den Namen eines Cursors für die angegebene Ergebnis-Ressource zurück
    • ingres_errno - Gibt den letzten Ingres-Fehlercode zurück
    • ingres_error - Gibt eine textuelle Beschreibung des letzten Fehlercodes zurück
    • ingres_errsqlstate - Gibt den letzten Fehlercode von SQLSTATE zurück
    • ingres_escape_string - Maskiert Sonderzeichen für die Verwendung in Datenbankabfragen
    • ingres_execute - Führt eine vorbereitete Abfrage aus
    • ingres_fetch_array - Liest eine Zeile der Ergebnismenge in ein Array ein
    • ingres_fetch_assoc - Fetch a row of result into an associative array
    • ingres_fetch_object - Gibt eine Zeile der Ergebnismenge als Objekt zurück
    • ingres_fetch_proc_return - Holt den Rückgabewert eines Prozeduraufrufs
    • ingres_fetch_row - Holt eine Zeile aus einer Ergebnismenge in ein numerisches Array
    • ingres_field_length - Gibt die Länge eines Feldes zurück
    • ingres_field_name - Holt den Namen eines Feldes in einer Ergebnismenge
    • ingres_field_nullable - Prüft, ob für ein Feld NULL-Werte zugelassen sind
    • ingres_field_precision - Gibt die Genauigkeit eines Feldes zurück
    • ingres_field_scale - Gibt die Dezimalstellen eines Feldes zurück
    • ingres_field_type - Gibt den Typ eines Feldes in einer Ergebnismenge zurück
    • ingres_free_result - Gibt den durch ein Ergebnis belegten Speicher frei
    • ingres_next_error - Ermittelt den nächsten Ingres-Fehler
    • ingres_num_fields - Gibt die Anzahl der Felder der letzten Abfrage zurück
    • ingres_num_rows - Gibt die Anzahl der Datensätze der Ergebnismenge oder die Anzahl der von der letzten Abfrage betroffenen Datensätze zurück
    • ingres_pconnect - Öffnet eine persistente Verbindung zu einer Ingres-Datenbank
    • ingres_prepare - Bereitet eine Abfrage zur späteren Ausführung vor
    • ingres_query - Sendet eine SQL-Abfrage an den Ingres-Server
    • ingres_result_seek - Positioniert den Datensatzzeiger, bevor Daten geholt werden
    • ingres_rollback - Setzt eine Transaktion zurück
    • ingres_set_environment - Setzt Eigenschaften der Umgebung zur Ausgabesteuerung
    • ingres_unbuffered_query - Sendet eine SQL-Abfrage an Ingres, ohne die Ergebniszeilen zu puffern
    • ini_alter - Alias von ini_set
    • ini_get - Gets the value of a configuration option
    • ini_get_all - Gets all configuration options
    • ini_restore - Restores the value of a configuration option
    • ini_set - Sets the value of a configuration option
    • inotify_add_watch - Add a watch to an initialized inotify instance
    • inotify_init - Initialize an inotify instance
    • inotify_queue_len - Return a number upper than zero if there are pending events
    • inotify_read - Read events from an inotify instance
    • inotify_rm_watch - Remove an existing watch from an inotify instance
    • intdiv - Integer-Division
    • interface_exists - Prüft ob ein bestimmtes Interface definiert wurde
    • IntlBreakIterator::createCharacterInstance - Create break iterator for boundaries of combining character sequences
    • IntlBreakIterator::createCodePointInstance - Create break iterator for boundaries of code points
    • IntlBreakIterator::createLineInstance - Create break iterator for logically possible line breaks
    • IntlBreakIterator::createSentenceInstance - Create break iterator for sentence breaks
    • IntlBreakIterator::createTitleInstance - Create break iterator for title-casing breaks
    • IntlBreakIterator::createWordInstance - Create break iterator for word breaks
    • IntlBreakIterator::current - Get index of current position
    • IntlBreakIterator::first - Set position to the first character in the text
    • IntlBreakIterator::following - Advance the iterator to the first boundary following specified offset
    • IntlBreakIterator::getErrorCode - Get last error code on the object
    • IntlBreakIterator::getErrorMessage - Get last error message on the object
    • IntlBreakIterator::getLocale - Get the locale associated with the object
    • IntlBreakIterator::getPartsIterator - Create iterator for navigating fragments between boundaries
    • IntlBreakIterator::getText - Get the text being scanned
    • IntlBreakIterator::isBoundary - Tell whether an offset is a boundary's offset
    • IntlBreakIterator::last - Set the iterator position to index beyond the last character
    • IntlBreakIterator::next - Advance the iterator the next boundary
    • IntlBreakIterator::preceding - Set the iterator position to the first boundary before an offset
    • IntlBreakIterator::previous - Set the iterator position to the boundary immediately before the current
    • IntlBreakIterator::setText - Set the text being scanned
    • IntlBreakIterator::__construct - Private constructor for disallowing instantiation
    • IntlCalendar::add - Add a (signed) amount of time to a field
    • IntlCalendar::after - Whether this object's time is after that of the passed object
    • IntlCalendar::before - Whether this object's time is before that of the passed object
    • IntlCalendar::clear - Clear a field or all fields
    • IntlCalendar::createInstance - Create a new IntlCalendar
    • IntlCalendar::equals - Compare time of two IntlCalendar objects for equality
    • IntlCalendar::fieldDifference - Calculate difference between given time and this object's time
    • IntlCalendar::fromDateTime - Create an IntlCalendar from a DateTime object or string
    • IntlCalendar::get - Get the value for a field
    • IntlCalendar::getActualMaximum - The maximum value for a field, considering the object's current time
    • IntlCalendar::getActualMinimum - The minimum value for a field, considering the object's current time
    • IntlCalendar::getAvailableLocales - Get array of locales for which there is data
    • IntlCalendar::getDayOfWeekType - Tell whether a day is a weekday, weekend or a day that has a transition between the two
    • IntlCalendar::getErrorCode - Get last error code on the object
    • IntlCalendar::getErrorMessage - Get last error message on the object
    • IntlCalendar::getFirstDayOfWeek - Get the first day of the week for the calendar's locale
    • IntlCalendar::getGreatestMinimum - Get the largest local minimum value for a field
    • IntlCalendar::getKeywordValuesForLocale - Get set of locale keyword values
    • IntlCalendar::getLeastMaximum - Get the smallest local maximum for a field
    • IntlCalendar::getLocale - Get the locale associated with the object
    • IntlCalendar::getMaximum - Get the global maximum value for a field
    • IntlCalendar::getMinimalDaysInFirstWeek - Get minimal number of days the first week in a year or month can have
    • IntlCalendar::getMinimum - Get the global minimum value for a field
    • IntlCalendar::getNow - Get number representing the current time
    • IntlCalendar::getRepeatedWallTimeOption - Get behavior for handling repeating wall time
    • IntlCalendar::getSkippedWallTimeOption - Get behavior for handling skipped wall time
    • IntlCalendar::getTime - Get time currently represented by the object
    • IntlCalendar::getTimeZone - Get the object's timezone
    • IntlCalendar::getType - Get the calendar type
    • IntlCalendar::getWeekendTransition - Get time of the day at which weekend begins or ends
    • IntlCalendar::inDaylightTime - Whether the object's time is in Daylight Savings Time
    • IntlCalendar::isEquivalentTo - Whether another calendar is equal but for a different time
    • IntlCalendar::isLenient - Whether date/time interpretation is in lenient mode
    • IntlCalendar::isSet - Whether a field is set
    • IntlCalendar::isWeekend - Whether a certain date/time is in the weekend
    • IntlCalendar::roll - Add value to field without carrying into more significant fields
    • IntlCalendar::set - Set a time field or several common fields at once
    • IntlCalendar::setFirstDayOfWeek - Set the day on which the week is deemed to start
    • IntlCalendar::setLenient - Set whether date/time interpretation is to be lenient
    • IntlCalendar::setMinimalDaysInFirstWeek - Set minimal number of days the first week in a year or month can have
    • IntlCalendar::setRepeatedWallTimeOption - Set behavior for handling repeating wall times at negative timezone offset transitions
    • IntlCalendar::setSkippedWallTimeOption - Set behavior for handling skipped wall times at positive timezone offset transitions
    • IntlCalendar::setTime - Set the calendar time in milliseconds since the epoch
    • IntlCalendar::setTimeZone - Set the timezone used by this calendar
    • IntlCalendar::toDateTime - Convert an IntlCalendar into a DateTime object
    • IntlCalendar::__construct - Private constructor for disallowing instantiation
    • IntlChar::charAge - Get the "age" of the code point
    • IntlChar::charDigitValue - Get the decimal digit value of a decimal digit character
    • IntlChar::charDirection - Get bidirectional category value for a code point
    • IntlChar::charFromName - Find Unicode character by name and return its code point value
    • IntlChar::charMirror - Get the "mirror-image" character for a code point
    • IntlChar::charName - Retrieve the name of a Unicode character
    • IntlChar::charType - Get the general category value for a code point
    • IntlChar::chr - Return Unicode character by code point value
    • IntlChar::digit - Get the decimal digit value of a code point for a given radix
    • IntlChar::enumCharNames - Enumerate all assigned Unicode characters within a range
    • IntlChar::enumCharTypes - Enumerate all code points with their Unicode general categories
    • IntlChar::foldCase - Perform case folding on a code point
    • IntlChar::forDigit - Get character representation for a given digit and radix
    • IntlChar::getBidiPairedBracket - Get the paired bracket character for a code point
    • IntlChar::getBlockCode - Get the Unicode allocation block containing a code point
    • IntlChar::getCombiningClass - Get the combining class of a code point
    • IntlChar::getFC_NFKC_Closure - Get the FC_NFKC_Closure property for a code point
    • IntlChar::getIntPropertyMaxValue - Get the max value for a Unicode property
    • IntlChar::getIntPropertyMinValue - Get the min value for a Unicode property
    • IntlChar::getIntPropertyValue - Get the value for a Unicode property for a code point
    • IntlChar::getNumericValue - Get the numeric value for a Unicode code point
    • IntlChar::getPropertyEnum - Get the property constant value for a given property name
    • IntlChar::getPropertyName - Get the Unicode name for a property
    • IntlChar::getPropertyValueEnum - Get the property value for a given value name
    • IntlChar::getPropertyValueName - Get the Unicode name for a property value
    • IntlChar::getUnicodeVersion - Get the Unicode version
    • IntlChar::hasBinaryProperty - Check a binary Unicode property for a code point
    • IntlChar::isalnum - Check if code point is an alphanumeric character
    • IntlChar::isalpha - Check if code point is a letter character
    • IntlChar::isbase - Check if code point is a base character
    • IntlChar::isblank - Check if code point is a "blank" or "horizontal space" character
    • IntlChar::iscntrl - Check if code point is a control character
    • IntlChar::isdefined - Check whether the code point is defined
    • IntlChar::isdigit - Check if code point is a digit character
    • IntlChar::isgraph - Check if code point is a graphic character
    • IntlChar::isIDIgnorable - Check if code point is an ignorable character
    • IntlChar::isIDPart - Check if code point is permissible in an identifier
    • IntlChar::isIDStart - Check if code point is permissible as the first character in an identifier
    • IntlChar::isISOControl - Check if code point is an ISO control code
    • IntlChar::isJavaIDPart - Check if code point is permissible in a Java identifier
    • IntlChar::isJavaIDStart - Check if code point is permissible as the first character in a Java identifier
    • IntlChar::isJavaSpaceChar - Check if code point is a space character according to Java
    • IntlChar::islower - Check if code point is a lowercase letter
    • IntlChar::isMirrored - Check if code point has the Bidi_Mirrored property
    • IntlChar::isprint - Check if code point is a printable character
    • IntlChar::ispunct - Check if code point is punctuation character
    • IntlChar::isspace - Check if code point is a space character
    • IntlChar::istitle - Check if code point is a titlecase letter
    • IntlChar::isUAlphabetic - Check if code point has the Alphabetic Unicode property
    • IntlChar::isULowercase - Check if code point has the Lowercase Unicode property
    • IntlChar::isupper - Check if code point has the general category "Lu" (uppercase letter)
    • IntlChar::isUUppercase - Check if code point has the Uppercase Unicode property
    • IntlChar::isUWhiteSpace - Check if code point has the White_Space Unicode property
    • IntlChar::isWhitespace - Check if code point is a whitespace character according to ICU
    • IntlChar::isxdigit - Check if code point is a hexadecimal digit
    • IntlChar::ord - Return Unicode code point value of character
    • IntlChar::tolower - Make Unicode character lowercase
    • IntlChar::totitle - Make Unicode character titlecase
    • IntlChar::toupper - Make Unicode character uppercase
    • IntlCodePointBreakIterator::getLastCodePoint - Get last code point passed over after advancing or receding the iterator
    • IntlDateFormatter::create - Create a date formatter
    • IntlDateFormatter::format - Format the date/time value as a string
    • IntlDateFormatter::formatObject - Formats an object
    • IntlDateFormatter::getCalendar - Get the calendar type used for the IntlDateFormatter
    • IntlDateFormatter::getCalendarObject - Get copy of formatter's calendar object
    • IntlDateFormatter::getDateType - Get the datetype used for the IntlDateFormatter
    • IntlDateFormatter::getErrorCode - Get the error code from last operation
    • IntlDateFormatter::getErrorMessage - Get the error text from the last operation
    • IntlDateFormatter::getLocale - Get the locale used by formatter
    • IntlDateFormatter::getPattern - Get the pattern used for the IntlDateFormatter
    • IntlDateFormatter::getTimeType - Get the timetype used for the IntlDateFormatter
    • IntlDateFormatter::getTimeZone - Get formatter's timezone
    • IntlDateFormatter::getTimeZoneId - Get the timezone-id used for the IntlDateFormatter
    • IntlDateFormatter::isLenient - Get the lenient used for the IntlDateFormatter
    • IntlDateFormatter::localtime - Parse string to a field-based time value
    • IntlDateFormatter::parse - Parse string to a timestamp value
    • IntlDateFormatter::setCalendar - Sets the calendar type used by the formatter
    • IntlDateFormatter::setLenient - Set the leniency of the parser
    • IntlDateFormatter::setPattern - Set the pattern used for the IntlDateFormatter
    • IntlDateFormatter::setTimeZone - Sets formatter's timezone
    • IntlGregorianCalendar::getGregorianChange - Get the Gregorian Calendar change date
    • IntlGregorianCalendar::isLeapYear - Determine if the given year is a leap year
    • IntlGregorianCalendar::setGregorianChange - Set the Gregorian Calendar the change date
    • IntlGregorianCalendar::__construct - Create the Gregorian Calendar class
    • IntlIterator::current - Get the current element
    • IntlIterator::key - Get the current key
    • IntlIterator::next - Move forward to the next element
    • IntlIterator::rewind - Rewind the iterator to the first element
    • IntlIterator::valid - Check if current position is valid
    • IntlPartsIterator::getBreakIterator - Get IntlBreakIterator backing this parts iterator
    • IntlRuleBasedBreakIterator::getBinaryRules - Get the binary form of compiled rules
    • IntlRuleBasedBreakIterator::getRules - Get the rule set used to create this object
    • IntlRuleBasedBreakIterator::getRuleStatus - Get the largest status value from the break rules that determined the current break position
    • IntlRuleBasedBreakIterator::getRuleStatusVec - Get the status values from the break rules that determined the current break position
    • IntlRuleBasedBreakIterator::__construct - Create iterator from ruleset
    • IntlTimeZone::countEquivalentIDs - Get the number of IDs in the equivalency group that includes the given ID
    • IntlTimeZone::createDefault - Create a new copy of the default timezone for this host
    • IntlTimeZone::createEnumeration - Get an enumeration over time zone IDs associated with the given country or offset
    • IntlTimeZone::createTimeZone - Create a timezone object for the given ID
    • IntlTimeZone::createTimeZoneIDEnumeration - Get an enumeration over system time zone IDs with the given filter conditions
    • IntlTimeZone::fromDateTimeZone - Create a timezone object from DateTimeZone
    • IntlTimeZone::getCanonicalID - Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID
    • IntlTimeZone::getDisplayName - Get a name of this time zone suitable for presentation to the user
    • IntlTimeZone::getDSTSavings - Get the amount of time to be added to local standard time to get local wall clock time
    • IntlTimeZone::getEquivalentID - Get an ID in the equivalency group that includes the given ID
    • IntlTimeZone::getErrorCode - Get last error code on the object
    • IntlTimeZone::getErrorMessage - Get last error message on the object
    • IntlTimeZone::getGMT - Create GMT (UTC) timezone
    • IntlTimeZone::getID - Get timezone ID
    • IntlTimeZone::getIDForWindowsID - Translate a Windows timezone into a system timezone
    • IntlTimeZone::getOffset - Get the time zone raw and GMT offset for the given moment in time
    • IntlTimeZone::getRawOffset - Get the raw GMT offset (before taking daylight savings time into account
    • IntlTimeZone::getRegion - Get the region code associated with the given system time zone ID
    • IntlTimeZone::getTZDataVersion - Get the timezone data version currently used by ICU
    • IntlTimeZone::getUnknown - Get the "unknown" time zone
    • IntlTimeZone::getWindowsID - Translate a system timezone into a Windows timezone
    • IntlTimeZone::hasSameRules - Check if this zone has the same rules and offset as another zone
    • IntlTimeZone::toDateTimeZone - Convert to DateTimeZone object
    • IntlTimeZone::useDaylightTime - Check if this time zone uses daylight savings time
    • intl_error_name - Get symbolic name for a given error code
    • intl_get_error_code - Get the last error code
    • intl_get_error_message - Get description of the last error
    • intl_is_failure - Check whether the given error code indicates failure
    • intval - Konvertiert einen Wert nach integer
    • in_array - Prüft, ob ein Wert in einem Array existiert
    • ip2long - Konvertiert eine gemäß IPv4-Protokoll angegebene IP-Adresse vom Punkt-Format in ein Long Integer
    • iptcembed - Embeds binary IPTC data into a JPEG image
    • iptcparse - Parse a binary IPTC block into single tags
    • isset - Prüft, ob eine Variable deklariert ist und sich von null unterscheidet
    • is_a - Checks if the object is of this class or has this class as one of its parents
    • is_array - Prüft, ob die Variable ein Array ist
    • is_bool - Prüft, ob eine Variable vom Typ boolean ist
    • is_callable - Prüft, ob der Inhalt einer Variable als Funktion aufgerufen werden kann
    • is_countable - Verify that the contents of a variable is a countable value
    • is_dir - Prüft, ob der angegebene Dateiname ein Verzeichnis ist
    • is_double - Alias von is_float
    • is_executable - Prüft, ob der Dateiname ausführbar ist
    • is_file - Prüft, ob der Dateiname eine reguläre Datei ist
    • is_finite - Prüft, ob ein Wert eine gültige endliche Zahl ist
    • is_float - Prüft, ob eine Variable vom Typ float ist
    • is_infinite - Prüft, ob ein Wert unendlich ist
    • is_int - Prüft, ob eine Variable vom Typ int ist
    • is_integer - Alias von is_int
    • is_iterable - Verify that the contents of a variable is an iterable value
    • is_link - Prüft, ob der Dateiname ein symbolischer Link ist
    • is_long - Alias von is_int
    • is_nan - Prüft, ob ein Wert keine Zahl ist
    • is_null - Prüft, ob eine Variable null enthält
    • is_numeric - Prüft, ob eine Variable eine Zahl oder ein numerischer String ist
    • is_object - Prüft, ob eine Variable vom Typ object ist
    • is_readable - Prüft, ob eine Datei existiert und lesbar ist
    • is_real - Alias von is_float
    • is_resource - Prüft, ob eine Variable vom Typ resource ist
    • is_scalar - Prüft, ob eine Variable skalar ist
    • is_soap_fault - Prüft, ob ein SOAP-Aufruf fehlgeschlagen ist
    • is_string - Prüft, ob Variable vom Typ string ist
    • is_subclass_of - Prüft ob ein Objekt von der angegebenen Klasse abstammt oder sie implementiert
    • is_tainted - Checks whether a string is tainted
    • is_uploaded_file - Prüft, ob die Datei mittels HTTP-POST upgeloadet wurde
    • is_writable - Prüft, ob in eine Datei geschrieben werden kann
    • is_writeable - Alias von is_writable
    • Iterator::current - Gibt das aktuelle Element zurück
    • Iterator::key - Gibt den Schlüssel des aktuellen Elements zurück
    • Iterator::next - Rückt den Zeiger auf das nächste Element vor
    • Iterator::rewind - Setzt den Iterator auf das erste Element zurück
    • Iterator::valid - Prüft, ob die aktuelle Position zulässig ist
    • IteratorAggregate::getIterator - Holt einen externen Iterator
    • IteratorIterator::current - Get the current value
    • IteratorIterator::getInnerIterator - Get the inner iterator
    • IteratorIterator::key - Get the key of the current element
    • IteratorIterator::next - Forward to the next element
    • IteratorIterator::rewind - Rewind to the first element
    • IteratorIterator::valid - Checks if the iterator is valid
    • IteratorIterator::__construct - Create an iterator from anything that is traversable
    • iterator_apply - Call a function for every element in an iterator
    • iterator_count - Count the elements in an iterator
    • iterator_to_array - Copy the iterator into an array
  • j
    • jddayofweek - Bestimmt den Wochentag aus einem Julianischen Datum
    • jdmonthname - Liefert den Monatsnamen
    • jdtofrench - Konvertiert ein Julianisches Datum zum Kalender der Französischen Revolution
    • jdtogregorian - Wandelt eine julianische Tageszahl in ein gregorianischen Datum um
    • jdtojewish - Konvertierung vom Julianischen Datum zum Jüdischen Kalender
    • jdtojulian - Wandelt eine julianische Tageszahl in ein julianisches Kalenderdatum um
    • jdtounix - Konvertiert Julianisches Datum in Unix-Timestamp
    • jewishtojd - Konvertiert vom Jüdischen Kalender zum Julianischen Datum
    • join - Alias von implode
    • jpeg2wbmp - Konvertiert eine JPEG-Bilddatei in eine WBMP-Bilddatei
    • JsonSerializable::jsonSerialize - Angegebene Daten, die in JSON serialisiert werden sollen
    • json_decode - Dekodiert eine JSON-Zeichenkette
    • json_encode - Gibt die JSON-Repräsentation eines Wertes zurück
    • json_last_error - Gibt den letzten aufgetretenen Fehler zurück
    • json_last_error_msg - Gibt die Fehlermeldung des letzten Aufrufs von json_encode oder json_decode() zurück
    • juliantojd - Konvertierung vom Julianischen Kalender zum Julianischen Datum
  • k
    • key - Liefert einen Schlüssel eines Arrays
    • key_exists - Alias von array_key_exists
    • Kontextparameter - Liste der Kontextparameter
    • krsort - Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge
    • ksort - Sortiert ein Array nach Schlüsseln
  • l
    • lcfirst - Wandelt den ersten Buchstaben eines Strings in einen Kleinbuchstaben um
    • lcg_value - Kongruenzgenerator für Pseudozufallszahlen
    • lchgrp - Changes group ownership of symlink
    • lchown - Changes user ownership of symlink
    • ldap_8859_to_t61 - Übersetzt 8859-Zeichen in t61-Zeichen
    • ldap_add - Fügt einem LDAP-Verzeichnis Einträge hinzu
    • ldap_add_ext - Add entries to LDAP directory
    • ldap_bind - Anmeldung an einem LDAP-Verzeichnis (LDAP Bind)
    • ldap_bind_ext - Bind to LDAP directory
    • ldap_close - Alias von ldap_unbind
    • ldap_compare - Vergleicht den Wert eines Merkmals mit dem eines Eintrags
    • ldap_connect - Verbindet mit einem LDAP-Server
    • ldap_control_paged_result - Send LDAP pagination control
    • ldap_control_paged_result_response - Retrieve the LDAP pagination cookie
    • ldap_count_entries - Liefert bei einer Suche die Anzahl der Einträge
    • ldap_delete - Löscht einen Eintrag aus einem Verzeichnis
    • ldap_delete_ext - Delete an entry from a directory
    • ldap_dn2ufn - Konvertiert einen DN in ein benutzerfreundliches Namensformat
    • ldap_err2str - Konvertiert eine LDAP-Fehlernummer in einen Fehlertext
    • ldap_errno - Liefert die LDAP-Fehlernummer des letzten LDAP-Kommandos
    • ldap_error - Liefert die LDAP-Fehlermeldung des letzten LDAP-Kommandos
    • ldap_escape - Escape a string for use in an LDAP filter or DN
    • ldap_exop - Performs an extended operation
    • ldap_exop_passwd - PASSWD extended operation helper
    • ldap_exop_refresh - Refresh extended operation helper
    • ldap_exop_whoami - WHOAMI extended operation helper
    • ldap_explode_dn - Trennt einen DN in seine Bestandteile
    • ldap_first_attribute - Liefert das erste Merkmal
    • ldap_first_entry - Liefert die Kennung des ersten Ergebnisses
    • ldap_first_reference - Liefert die erste Referenz
    • ldap_free_result - Gibt den Ergebnisspeicher frei
    • ldap_get_attributes - Liefert die Merkmale eines Eintrags aus einem Suchergebnis
    • ldap_get_dn - Liefert den DN eines Eintrags aus einem Suchergebnis
    • ldap_get_entries - Liefert alle Einträge aus einem Ergebnis
    • ldap_get_option - Liefert den aktuellen Wert einer gegebenen Option
    • ldap_get_values - Liefert alle Werte eines Eintrags aus einem Ergebnis
    • ldap_get_values_len - Liefert alle binären Werte eines Eintrags aus einem Ergebnis
    • ldap_list - Suche in einer Ebene
    • ldap_modify - Alias von ldap_mod_replace
    • ldap_modify_batch - Batch and execute modifications on an LDAP entry
    • ldap_mod_add - Fügt Merkmalswerte zum aktuellen Eintrag hinzu
    • ldap_mod_add_ext - Add attribute values to current attributes
    • ldap_mod_del - Löscht Merkmalswerte des aktuellen Eintrags
    • ldap_mod_del_ext - Delete attribute values from current attributes
    • ldap_mod_replace - Ersetzt Merkmalswerte durch neue Merkmalswerte
    • ldap_mod_replace_ext - Replace attribute values with new ones
    • ldap_next_attribute - Liefert das nächste Merkmal im Ergebnis
    • ldap_next_entry - Liefert den nächsten Eintrag eines Ergebnisses
    • ldap_next_reference - Holt die nächste Referenz
    • ldap_parse_exop - Parse result object from an LDAP extended operation
    • ldap_parse_reference - Extrahiert Informationen aus einem Referenz-Eintrag
    • ldap_parse_result - Extrahiert Informationen aus einem Ergebnis
    • ldap_read - Liest einen Eintrag
    • ldap_rename - Ändert den Namen eines Eintrags
    • ldap_rename_ext - Modify the name of an entry
    • ldap_sasl_bind - Bind to LDAP directory using SASL
    • ldap_search - Sucht im LDAP-Baum
    • ldap_set_option - Setzt den Wert der gegebenen Option
    • ldap_set_rebind_proc - Setzt einen Callback um Rebinds bei der Verweisverfolgung durchzuführen
    • ldap_sort - Sortiert LDAP-Ergebniseinträge clientseitig
    • ldap_start_tls - Startet TLS
    • ldap_t61_to_8859 - Übersetzt t61-Zeichen in 8859-Zeichen
    • ldap_unbind - Löst die Bindung zu einem LDAP-Verzeichnis
    • levenshtein - Berechnet die Levenshtein-Distanz zwischen zwei Strings
    • libxml_clear_errors - Clear libxml error buffer
    • libxml_disable_entity_loader - Disable the ability to load external entities
    • libxml_get_errors - Retrieve array of errors
    • libxml_get_last_error - Retrieve last error from libxml
    • libxml_set_external_entity_loader - Changes the default external entity loader
    • libxml_set_streams_context - Set the streams context for the next libxml document load or write
    • libxml_use_internal_errors - Disable libxml errors and allow user to fetch error information as needed
    • LimitIterator::current - Get current element
    • LimitIterator::getInnerIterator - Get inner iterator
    • LimitIterator::getPosition - Return the current position
    • LimitIterator::key - Get current key
    • LimitIterator::next - Move the iterator forward
    • LimitIterator::rewind - Rewind the iterator to the specified starting offset
    • LimitIterator::seek - Seek to the given position
    • LimitIterator::valid - Check whether the current element is valid
    • LimitIterator::__construct - Construct a LimitIterator
    • link - Erzeugt einen harten Link
    • linkinfo - Liefert Informationen über einen Link
    • list - Weist Variablen zu, als wären sie ein Array
    • Locale::acceptFromHttp - Tries to find out best available locale based on HTTP "Accept-Language" header
    • Locale::canonicalize - Canonicalize the locale string
    • Locale::composeLocale - Returns a correctly ordered and delimited locale ID
    • Locale::filterMatches - Checks if a language tag filter matches with locale
    • Locale::getAllVariants - Gets the variants for the input locale
    • Locale::getDefault - Gets the default locale value from the INTL global 'default_locale'
    • Locale::getDisplayLanguage - Returns an appropriately localized display name for language of the inputlocale
    • Locale::getDisplayName - Returns an appropriately localized display name for the input locale
    • Locale::getDisplayRegion - Returns an appropriately localized display name for region of the input locale
    • Locale::getDisplayScript - Returns an appropriately localized display name for script of the input locale
    • Locale::getDisplayVariant - Returns an appropriately localized display name for variants of the input locale
    • Locale::getKeywords - Gets the keywords for the input locale
    • Locale::getPrimaryLanguage - Gets the primary language for the input locale
    • Locale::getRegion - Gets the region for the input locale
    • Locale::getScript - Gets the script for the input locale
    • Locale::lookup - Searches the language tag list for the best match to the language
    • Locale::parseLocale - Returns a key-value array of locale ID subtag elements
    • Locale::setDefault - Sets the default runtime locale
    • localeconv - Ermittelt die Formatierungsinformationen für Zahlen
    • localtime - Ermittelt die lokale Zeit
    • log - Natürlicher Logarithmus
    • log1p - Berechnet log(1 + Zahl) mit guter Genauigkeit, auch wenn Zahl nahe bei Null liegt
    • log10 - Dekadischer Logarithmus (Logarithmus zur Basis 10)
    • log_cmd_delete - Callback When Deleting Documents
    • log_cmd_insert - Callback When Inserting Documents
    • log_cmd_update - Callback When Updating Documents
    • log_getmore - Callback When Retrieving Next Cursor Batch
    • log_killcursor - Callback When Executing KILLCURSOR operations
    • log_reply - Callback When Reading the MongoDB reply
    • log_write_batch - Callback When Writing Batches
    • long2ip - Konvertiert eine Long-Integer-Adresse in einen String, der das (IPv4) Internet-Standard-Punktformat enthält ("Dotted-Format")
    • lstat - Sammelt Informationen über eine Datei oder einen symbolischen Link
    • ltrim - Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings
    • Lua::assign - Assign a PHP variable to Lua
    • Lua::call - Call Lua functions
    • Lua::eval - Evaluate a string as Lua code
    • Lua::getVersion - The getversion purpose
    • Lua::include - Parse a Lua script file
    • Lua::registerCallback - Register a PHP function to Lua
    • Lua::__construct - Lua constructor
    • LuaClosure::__invoke - Invoke luaclosure
    • LuaSandbox::callFunction - Call a function in a Lua global variable
    • LuaSandbox::disableProfiler - Disable the profiler
    • LuaSandbox::enableProfiler - Enable the profiler.
    • LuaSandbox::getCPUUsage - Fetch the current CPU time usage of the Lua environment
    • LuaSandbox::getMemoryUsage - Fetch the current memory usage of the Lua environment
    • LuaSandbox::getPeakMemoryUsage - Fetch the peak memory usage of the Lua environment
    • LuaSandbox::getProfilerFunctionReport - Fetch profiler data
    • LuaSandbox::getVersionInfo - Return the versions of LuaSandbox and Lua
    • LuaSandbox::loadBinary - Load a precompiled binary chunk into the Lua environment
    • LuaSandbox::loadString - Load Lua code into the Lua environment
    • LuaSandbox::pauseUsageTimer - Pause the CPU usage timer
    • LuaSandbox::registerLibrary - Register a set of PHP functions as a Lua library
    • LuaSandbox::setCPULimit - Set the CPU time limit for the Lua environment
    • LuaSandbox::setMemoryLimit - Set the memory limit for the Lua environment
    • LuaSandbox::unpauseUsageTimer - Unpause the timer paused by LuaSandbox::pauseUsageTimer
    • LuaSandbox::wrapPhpFunction - Wrap a PHP callable in a LuaSandboxFunction
    • LuaSandboxFunction::call - Call a Lua function
    • LuaSandboxFunction::dump - Dump the function as a binary blob
    • LuaSandboxFunction::__construct - Unused
    • lzf_compress - LZF compression
    • lzf_decompress - LZF decompression
    • lzf_optimized_for - Determines what LZF extension was optimized for
  • m
    • mail - Sendet eine E-Mail
    • mailparse_determine_best_xfer_encoding - Gets the best way of encoding
    • mailparse_msg_create - Create a mime mail resource
    • mailparse_msg_extract_part - Extracts/decodes a message section
    • mailparse_msg_extract_part_file - Extracts/decodes a message section
    • mailparse_msg_extract_whole_part_file - Extracts a message section including headers without decoding the transfer encoding
    • mailparse_msg_free - Frees a MIME resource
    • mailparse_msg_get_part - Returns a handle on a given section in a mimemessage
    • mailparse_msg_get_part_data - Returns an associative array of info about the message
    • mailparse_msg_get_structure - Returns an array of mime section names in the supplied message
    • mailparse_msg_parse - Incrementally parse data into buffer
    • mailparse_msg_parse_file - Parses a file
    • mailparse_rfc822_parse_addresses - Parse RFC 822 compliant addresses
    • mailparse_stream_encode - Streams data from source file pointer, apply encoding and write to destfp
    • mailparse_uudecode_all - Scans the data from fp and extract each embedded uuencoded file
    • main - Dummy for main
    • max - Bestimmt den Maximalwert
    • mb_check_encoding - Check if strings are valid for the specified encoding
    • mb_chr - Get a specific character
    • mb_convert_case - Perform case folding on a string
    • mb_convert_encoding - Convert character encoding
    • mb_convert_kana - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
    • mb_convert_variables - Convert character code in variable(s)
    • mb_decode_mimeheader - Decode string in MIME header field
    • mb_decode_numericentity - Decode HTML numeric string reference to character
    • mb_detect_encoding - Detect character encoding
    • mb_detect_order - Set/Get character encoding detection order
    • mb_encode_mimeheader - Encode string for MIME header
    • mb_encode_numericentity - Encode character to HTML numeric string reference
    • mb_encoding_aliases - Get aliases of a known encoding type
    • mb_ereg - Regular expression match with multibyte support
    • mb_eregi - Regular expression match ignoring case with multibyte support
    • mb_eregi_replace - Replace regular expression with multibyte support ignoring case
    • mb_ereg_match - Regular expression match for multibyte string
    • mb_ereg_replace - Replace regular expression with multibyte support
    • mb_ereg_replace_callback - Perform a regular expression search and replace with multibyte support using a callback
    • mb_ereg_search - Multibyte regular expression match for predefined multibyte string
    • mb_ereg_search_getpos - Returns start point for next regular expression match
    • mb_ereg_search_getregs - Retrieve the result from the last multibyte regular expression match
    • mb_ereg_search_init - Setup string and regular expression for a multibyte regular expression match
    • mb_ereg_search_pos - Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string
    • mb_ereg_search_regs - Returns the matched part of a multibyte regular expression
    • mb_ereg_search_setpos - Set start point of next regular expression match
    • mb_get_info - Get internal settings of mbstring
    • mb_http_input - Detect HTTP input character encoding
    • mb_http_output - Set/Get HTTP output character encoding
    • mb_internal_encoding - Set/Get internal character encoding
    • mb_language - Set/Get current language
    • mb_list_encodings - Returns an array of all supported encodings
    • mb_ord - Get code point of character
    • mb_output_handler - Callback function converts character encoding in output buffer
    • mb_parse_str - Parse GET/POST/COOKIE data and set global variable
    • mb_preferred_mime_name - Get MIME charset string
    • mb_regex_encoding - Set/Get character encoding for multibyte regex
    • mb_regex_set_options - Set/Get the default options for mbregex functions
    • mb_scrub - Description
    • mb_send_mail - Send encoded mail
    • mb_split - Split multibyte string using regular expression
    • mb_strcut - Get part of string
    • mb_strimwidth - Get truncated string with specified width
    • mb_stripos - Finds position of first occurrence of a string within another, case insensitive
    • mb_stristr - Finds first occurrence of a string within another, case insensitive
    • mb_strlen - Get string length
    • mb_strpos - Find position of first occurrence of string in a string
    • mb_strrchr - Finds the last occurrence of a character in a string within another
    • mb_strrichr - Finds the last occurrence of a character in a string within another, case insensitive
    • mb_strripos - Finds position of last occurrence of a string within another, case insensitive
    • mb_strrpos - Find position of last occurrence of a string in a string
    • mb_strstr - Finds first occurrence of a string within another
    • mb_strtolower - Make a string lowercase
    • mb_strtoupper - Make a string uppercase
    • mb_strwidth - Return width of string
    • mb_str_split - Given a multibyte string, return an array of its characters
    • mb_substitute_character - Set/Get substitution character
    • mb_substr - Get part of string
    • mb_substr_count - Count the number of substring occurrences
    • mcrypt_cbc - Entschlüsselt/Verschlüsselt Daten im CBC Modus
    • mcrypt_cfb - Encrypts/decrypts data in CFB mode
    • mcrypt_create_iv - Creates an initialization vector (IV) from a random source
    • mcrypt_decrypt - Decrypts crypttext with given parameters
    • mcrypt_ecb - Deprecated: Encrypts/decrypts data in ECB mode
    • mcrypt_encrypt - Encrypts plaintext with given parameters
    • mcrypt_enc_get_algorithms_name - Returns the name of the opened algorithm
    • mcrypt_enc_get_block_size - Returns the blocksize of the opened algorithm
    • mcrypt_enc_get_iv_size - Returns the size of the IV of the opened algorithm
    • mcrypt_enc_get_key_size - Returns the maximum supported keysize of the opened mode
    • mcrypt_enc_get_modes_name - Returns the name of the opened mode
    • mcrypt_enc_get_supported_key_sizes - Returns an array with the supported keysizes of the opened algorithm
    • mcrypt_enc_is_block_algorithm - Checks whether the algorithm of the opened mode is a block algorithm
    • mcrypt_enc_is_block_algorithm_mode - Checks whether the encryption of the opened mode works on blocks
    • mcrypt_enc_is_block_mode - Checks whether the opened mode outputs blocks
    • mcrypt_enc_self_test - Runs a self test on the opened module
    • mcrypt_generic - This function encrypts data
    • mcrypt_generic_deinit - This function deinitializes an encryption module
    • mcrypt_generic_end - This function terminates encryption
    • mcrypt_generic_init - This function initializes all buffers needed for encryption
    • mcrypt_get_block_size - Gets the block size of the specified cipher
    • mcrypt_get_cipher_name - Gets the name of the specified cipher
    • mcrypt_get_iv_size - Returns the size of the IV belonging to a specific cipher/mode combination
    • mcrypt_get_key_size - Gets the key size of the specified cipher
    • mcrypt_list_algorithms - Gets an array of all supported ciphers
    • mcrypt_list_modes - Gets an array of all supported modes
    • mcrypt_module_close - Closes the mcrypt module
    • mcrypt_module_get_algo_block_size - Returns the blocksize of the specified algorithm
    • mcrypt_module_get_algo_key_size - Returns the maximum supported keysize of the opened mode
    • mcrypt_module_get_supported_key_sizes - Returns an array with the supported keysizes of the opened algorithm
    • mcrypt_module_is_block_algorithm - This function checks whether the specified algorithm is a block algorithm
    • mcrypt_module_is_block_algorithm_mode - Returns if the specified module is a block algorithm or not
    • mcrypt_module_is_block_mode - Returns if the specified mode outputs blocks or not
    • mcrypt_module_open - Opens the module of the algorithm and the mode to be used
    • mcrypt_module_self_test - This function runs a self test on the specified module
    • mcrypt_ofb - Encrypts/decrypts data in OFB mode
    • md5 - Errechnet den MD5-Hash eines Strings
    • md5_file - Berechnet den MD5-Code einer Datei
    • mdecrypt_generic - Decrypts data
    • Memcache::add - Add an item to the server
    • Memcache::addServer - Add a memcached server to connection pool
    • Memcache::close - Close memcached server connection
    • Memcache::connect - Open memcached server connection
    • Memcache::decrement - Decrement item's value
    • Memcache::delete - Delete item from the server
    • Memcache::flush - Flush all existing items at the server
    • Memcache::get - Retrieve item from the server
    • Memcache::getExtendedStats - Get statistics from all servers in pool
    • Memcache::getServerStatus - Returns server status
    • Memcache::getStats - Get statistics of the server
    • Memcache::getVersion - Return version of the server
    • Memcache::increment - Increment item's value
    • Memcache::pconnect - Open memcached server persistent connection
    • Memcache::replace - Replace value of the existing item
    • Memcache::set - Store data at the server
    • Memcache::setCompressThreshold - Enable automatic compression of large values
    • Memcache::setServerParams - Changes server parameters and status at runtime
    • Memcached::add - Add an item under a new key
    • Memcached::addByKey - Add an item under a new key on a specific server
    • Memcached::addServer - Add a server to the server pool
    • Memcached::addServers - Add multiple servers to the server pool
    • Memcached::append - Append data to an existing item
    • Memcached::appendByKey - Append data to an existing item on a specific server
    • Memcached::cas - Compare and swap an item
    • Memcached::casByKey - Compare and swap an item on a specific server
    • Memcached::decrement - Decrement numeric item's value
    • Memcached::decrementByKey - Decrement numeric item's value, stored on a specific server
    • Memcached::delete - Delete an item
    • Memcached::deleteByKey - Delete an item from a specific server
    • Memcached::deleteMulti - Delete multiple items
    • Memcached::deleteMultiByKey - Delete multiple items from a specific server
    • Memcached::fetch - Fetch the next result
    • Memcached::fetchAll - Fetch all the remaining results
    • Memcached::flush - Invalidate all items in the cache
    • Memcached::get - Retrieve an item
    • Memcached::getAllKeys - Gets the keys stored on all the servers
    • Memcached::getByKey - Retrieve an item from a specific server
    • Memcached::getDelayed - Request multiple items
    • Memcached::getDelayedByKey - Request multiple items from a specific server
    • Memcached::getMulti - Retrieve multiple items
    • Memcached::getMultiByKey - Retrieve multiple items from a specific server
    • Memcached::getOption - Retrieve a Memcached option value
    • Memcached::getResultCode - Return the result code of the last operation
    • Memcached::getResultMessage - Return the message describing the result of the last operation
    • Memcached::getServerByKey - Map a key to a server
    • Memcached::getServerList - Get the list of the servers in the pool
    • Memcached::getStats - Get server pool statistics
    • Memcached::getVersion - Get server pool version info
    • Memcached::increment - Increment numeric item's value
    • Memcached::incrementByKey - Increment numeric item's value, stored on a specific server
    • Memcached::isPersistent - Check if a persitent connection to memcache is being used
    • Memcached::isPristine - Check if the instance was recently created
    • Memcached::prepend - Prepend data to an existing item
    • Memcached::prependByKey - Prepend data to an existing item on a specific server
    • Memcached::quit - Close any open connections
    • Memcached::replace - Replace the item under an existing key
    • Memcached::replaceByKey - Replace the item under an existing key on a specific server
    • Memcached::resetServerList - Clears all servers from the server list
    • Memcached::set - Store an item
    • Memcached::setByKey - Store an item on a specific server
    • Memcached::setMulti - Store multiple items
    • Memcached::setMultiByKey - Store multiple items on a specific server
    • Memcached::setOption - Set a Memcached option
    • Memcached::setOptions - Set Memcached options
    • Memcached::setSaslAuthData - Set the credentials to use for authentication
    • Memcached::touch - Set a new expiration on an item
    • Memcached::touchByKey - Set a new expiration on an item on a specific server
    • Memcached::__construct - Create a Memcached instance
    • memcache_debug - Turn debug output on/off
    • memory_get_peak_usage - Returns the peak of memory allocated by PHP
    • memory_get_usage - Returns the amount of memory allocated to PHP
    • MessageFormatter::create - Constructs a new Message Formatter
    • MessageFormatter::format - Format the message
    • MessageFormatter::formatMessage - Quick format message
    • MessageFormatter::getErrorCode - Get the error code from last operation
    • MessageFormatter::getErrorMessage - Get the error text from the last operation
    • MessageFormatter::getLocale - Get the locale for which the formatter was created
    • MessageFormatter::getPattern - Get the pattern used by the formatter
    • MessageFormatter::parse - Parse input string according to pattern
    • MessageFormatter::parseMessage - Quick parse input string
    • MessageFormatter::setPattern - Set the pattern used by the formatter
    • metaphone - Berechnet den Metaphone-Schlüssel eines Strings
    • method_exists - Prüft ob eine Methode innerhalb eines Objekts existiert
    • mhash - Berechnet einen Hash
    • mhash_count - Gibt die höchstmöglichen Hash-ID zurück
    • mhash_get_block_size - Liefert die Blockgröße des übergebenen Hashes
    • mhash_get_hash_name - Liefert den Namen eines Hashes
    • mhash_keygen_s2k - Generates a key
    • microtime - Gibt den aktuellen Unix-Timestamp/Zeitstempel mit Mikrosekunden zurück
    • mime_content_type - Ermittelt den MIME-Typ des Inhalts einer Datei
    • min - Bestimmt den Minimalwert
    • mkdir - Erstellt ein Verzeichnis
    • mktime - Gibt den Unix-Timestamp/Zeitstempel für ein Datum zurück
    • money_format - Formatiert eine Zahl als Währungs-Zeichenkette
    • Mongo::connectUtil - Connects with a database server
    • Mongo::getPoolSize - Get pool size for connection pools
    • Mongo::getSlave - Returns the address being used by this for slaveOkay reads
    • Mongo::getSlaveOkay - Get slaveOkay setting for this connection
    • Mongo::poolDebug - Returns information about all connection pools
    • Mongo::setPoolSize - Set the size for future connection pools
    • Mongo::setSlaveOkay - Change slaveOkay setting for this connection
    • Mongo::switchSlave - Choose a new secondary for slaveOkay reads
    • Mongo::__construct - The __construct purpose
    • MongoBinData::__construct - Creates a new binary data object
    • MongoBinData::__toString - The string representation of this binary data object
    • MongoClient::close - Closes this connection
    • MongoClient::connect - Connects to a database server
    • MongoClient::dropDB - Drops a database [deprecated]
    • MongoClient::getConnections - Return info about all open connections
    • MongoClient::getHosts - Updates status for all associated hosts
    • MongoClient::getReadPreference - Get the read preference for this connection
    • MongoClient::getWriteConcern - Get the write concern for this connection
    • MongoClient::killCursor - Kills a specific cursor on the server
    • MongoClient::listDBs - Lists all of the databases available
    • MongoClient::selectCollection - Gets a database collection
    • MongoClient::selectDB - Gets a database
    • MongoClient::setReadPreference - Set the read preference for this connection
    • MongoClient::setWriteConcern - Set the write concern for this connection
    • MongoClient::__construct - Creates a new database connection object
    • MongoClient::__get - Gets a database
    • MongoClient::__toString - String representation of this connection
    • MongoCode::__construct - Creates a new code object
    • MongoCode::__toString - Returns this code as a string
    • MongoCollection::aggregate - Perform an aggregation using the aggregation framework
    • MongoCollection::aggregateCursor - Execute an aggregation pipeline command and retrieve results through a cursor
    • MongoCollection::batchInsert - Inserts multiple documents into this collection
    • MongoCollection::count - Counts the number of documents in this collection
    • MongoCollection::createDBRef - Creates a database reference
    • MongoCollection::createIndex - Creates an index on the specified field(s) if it does not already exist
    • MongoCollection::deleteIndex - Deletes an index from this collection
    • MongoCollection::deleteIndexes - Delete all indices for this collection
    • MongoCollection::distinct - Retrieve a list of distinct values for the given key across a collection
    • MongoCollection::drop - Drops this collection
    • MongoCollection::ensureIndex - Creates an index on the specified field(s) if it does not already exist
    • MongoCollection::find - Queries this collection, returning a MongoCursor for the result set
    • MongoCollection::findAndModify - Update a document and return it
    • MongoCollection::findOne - Queries this collection, returning a single element
    • MongoCollection::getDBRef - Fetches the document pointed to by a database reference
    • MongoCollection::getIndexInfo - Returns information about indexes on this collection
    • MongoCollection::getName - Returns this collection's name
    • MongoCollection::getReadPreference - Get the read preference for this collection
    • MongoCollection::getSlaveOkay - Get slaveOkay setting for this collection
    • MongoCollection::getWriteConcern - Get the write concern for this collection
    • MongoCollection::group - Performs an operation similar to SQL's GROUP BY command
    • MongoCollection::insert - Inserts a document into the collection
    • MongoCollection::parallelCollectionScan - Returns an array of cursors to iterator over a full collection in parallel
    • MongoCollection::remove - Remove records from this collection
    • MongoCollection::save - Saves a document to this collection
    • MongoCollection::setReadPreference - Set the read preference for this collection
    • MongoCollection::setSlaveOkay - Change slaveOkay setting for this collection
    • MongoCollection::setWriteConcern - Set the write concern for this database
    • MongoCollection::toIndexString - Converts keys specifying an index to its identifying string
    • MongoCollection::update - Update records based on a given criteria
    • MongoCollection::validate - Validates this collection
    • MongoCollection::__construct - Creates a new collection
    • MongoCollection::__get - Gets a collection
    • MongoCollection::__toString - String representation of this collection
    • MongoCommandCursor::batchSize - Limits the number of elements returned in one batch
    • MongoCommandCursor::createFromDocument - Create a new command cursor from an existing command response document
    • MongoCommandCursor::current - Returns the current element
    • MongoCommandCursor::dead - Checks if there are results that have not yet been sent from the database
    • MongoCommandCursor::getReadPreference - Get the read preference for this command
    • MongoCommandCursor::info - Gets information about the cursor's creation and iteration
    • MongoCommandCursor::key - Returns the current result's index within the result set
    • MongoCommandCursor::next - Advances the cursor to the next result
    • MongoCommandCursor::rewind - Executes the command and resets the cursor to the start of the result set
    • MongoCommandCursor::setReadPreference - Set the read preference for this command
    • MongoCommandCursor::timeout - Sets a client-side timeout for this command
    • MongoCommandCursor::valid - Checks if the cursor is reading a valid result
    • MongoCommandCursor::__construct - Create a new command cursor
    • MongoCursor::addOption - Adds a top-level key/value pair to a query
    • MongoCursor::awaitData - Sets whether this cursor will wait for a while for a tailable cursor to return more data
    • MongoCursor::batchSize - Limits the number of elements returned in one batch
    • MongoCursor::count - Counts the number of results for this query
    • MongoCursor::current - Returns the current element
    • MongoCursor::dead - Checks if there are results that have not yet been sent from the database
    • MongoCursor::doQuery - Execute the query
    • MongoCursor::explain - Return an explanation of the query, often useful for optimization and debugging
    • MongoCursor::fields - Sets the fields for a query
    • MongoCursor::getNext - Advances the cursor to the next result, and returns that result
    • MongoCursor::getReadPreference - Get the read preference for this query
    • MongoCursor::hasNext - Checks if there are any more elements in this cursor
    • MongoCursor::hint - Gives the database a hint about the query
    • MongoCursor::immortal - Sets whether this cursor will timeout
    • MongoCursor::info - Gets information about the cursor's creation and iteration
    • MongoCursor::key - Returns the current result's _id, or its index within the result set
    • MongoCursor::limit - Limits the number of results returned
    • MongoCursor::maxTimeMS - Sets a server-side timeout for this query
    • MongoCursor::next - Advances the cursor to the next result, and returns that result
    • MongoCursor::partial - If this query should fetch partial results from mongos if a shard is down
    • MongoCursor::reset - Clears the cursor
    • MongoCursor::rewind - Returns the cursor to the beginning of the result set
    • MongoCursor::setFlag - Sets arbitrary flags in case there is no method available the specific flag
    • MongoCursor::setReadPreference - Set the read preference for this query
    • MongoCursor::skip - Skips a number of results
    • MongoCursor::slaveOkay - Sets whether this query can be done on a secondary [deprecated]
    • MongoCursor::snapshot - Use snapshot mode for the query
    • MongoCursor::sort - Sorts the results by given fields
    • MongoCursor::tailable - Sets whether this cursor will be left open after fetching the last results
    • MongoCursor::timeout - Sets a client-side timeout for this query
    • MongoCursor::valid - Checks if the cursor is reading a valid result
    • MongoCursor::__construct - Create a new cursor
    • MongoCursorException::getHost - The hostname of the server that encountered the error
    • MongoCursorInterface::batchSize - Limits the number of elements returned in one batch
    • MongoCursorInterface::dead - Checks if there are results that have not yet been sent from the database
    • MongoCursorInterface::getReadPreference - Get the read preference for this query
    • MongoCursorInterface::info - Gets information about the cursor's creation and iteration
    • MongoCursorInterface::setReadPreference - Set the read preference for this query
    • MongoCursorInterface::timeout - Sets a client-side timeout for this query
    • MongoDate::toDateTime - Returns a DateTime object representing this date
    • MongoDate::__construct - Creates a new date
    • MongoDate::__toString - Returns a string representation of this date
    • MongoDB::authenticate - Log in to this database
    • MongoDB::command - Execute a database command
    • MongoDB::createCollection - Creates a collection
    • MongoDB::createDBRef - Creates a database reference
    • MongoDB::drop - Drops this database
    • MongoDB::dropCollection - Drops a collection [deprecated]
    • MongoDB::execute - Runs JavaScript code on the database server [deprecated]
    • MongoDB::forceError - Creates a database error
    • MongoDB::getCollectionInfo - Returns information about collections in this database
    • MongoDB::getCollectionNames - Gets an array of names for all collections in this database
    • MongoDB::getDBRef - Fetches the document pointed to by a database reference
    • MongoDB::getGridFS - Fetches toolkit for dealing with files stored in this database
    • MongoDB::getProfilingLevel - Gets this database's profiling level
    • MongoDB::getReadPreference - Get the read preference for this database
    • MongoDB::getSlaveOkay - Get slaveOkay setting for this database
    • MongoDB::getWriteConcern - Get the write concern for this database
    • MongoDB::lastError - Check if there was an error on the most recent db operation performed
    • MongoDB::listCollections - Gets an array of MongoCollection objects for all collections in this database
    • MongoDB::prevError - Checks for the last error thrown during a database operation
    • MongoDB::repair - Repairs and compacts this database
    • MongoDB::resetError - Clears any flagged errors on the database
    • MongoDB::selectCollection - Gets a collection
    • MongoDB::setProfilingLevel - Sets this database's profiling level
    • MongoDB::setReadPreference - Set the read preference for this database
    • MongoDB::setSlaveOkay - Change slaveOkay setting for this database
    • MongoDB::setWriteConcern - Set the write concern for this database
    • MongoDB::__construct - Creates a new database
    • MongoDB::__get - Gets a collection
    • MongoDB::__toString - The name of this database
    • MongoDB context options - MongoDB context option listing
    • MongoDBRef::create - Creates a new database reference
    • MongoDBRef::get - Fetches the object pointed to by a reference
    • MongoDBRef::isRef - Checks if an array is a database reference
    • MongoDB\BSON\Binary::getData - Returns the Binary's data
    • MongoDB\BSON\Binary::getType - Returns the Binary's type
    • MongoDB\BSON\Binary::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Binary::serialize - Serialize a Binary
    • MongoDB\BSON\Binary::unserialize - Unserialize a Binary
    • MongoDB\BSON\Binary::__construct - Construct a new Binary
    • MongoDB\BSON\Binary::__toString - Returns the Binary's data
    • MongoDB\BSON\BinaryInterface::getData - Returns the BinaryInterface's data
    • MongoDB\BSON\BinaryInterface::getType - Returns the BinaryInterface's type
    • MongoDB\BSON\BinaryInterface::__toString - Returns the BinaryInterface's data
    • MongoDB\BSON\DBPointer::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\DBPointer::serialize - Serialize a DBPointer
    • MongoDB\BSON\DBPointer::unserialize - Unserialize a DBPointer
    • MongoDB\BSON\DBPointer::__construct - Construct a new DBPointer (unused)
    • MongoDB\BSON\DBPointer::__toString - Returns an empty string
    • MongoDB\BSON\Decimal128::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Decimal128::serialize - Serialize a Decimal128
    • MongoDB\BSON\Decimal128::unserialize - Unserialize a Decimal128
    • MongoDB\BSON\Decimal128::__construct - Construct a new Decimal128
    • MongoDB\BSON\Decimal128::__toString - Returns the string representation of this Decimal128
    • MongoDB\BSON\Decimal128Interface::__toString - Returns the string representation of this Decimal128Interface
    • MongoDB\BSON\fromJSON - Returns the BSON representation of a JSON value
    • MongoDB\BSON\fromPHP - Returns the BSON representation of a PHP value
    • MongoDB\BSON\Int64::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Int64::serialize - Serialize an Int64
    • MongoDB\BSON\Int64::unserialize - Unserialize an Int64
    • MongoDB\BSON\Int64::__construct - Construct a new Int64 (unused)
    • MongoDB\BSON\Int64::__toString - Returns the string representation of this Int64
    • MongoDB\BSON\Javascript::getCode - Returns the Javascript's code
    • MongoDB\BSON\Javascript::getScope - Returns the Javascript's scope document
    • MongoDB\BSON\Javascript::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Javascript::serialize - Serialize a Javascript
    • MongoDB\BSON\Javascript::unserialize - Unserialize a Javascript
    • MongoDB\BSON\Javascript::__construct - Construct a new Javascript
    • MongoDB\BSON\Javascript::__toString - Returns the Javascript's code
    • MongoDB\BSON\JavascriptInterface::getCode - Returns the JavascriptInterface's code
    • MongoDB\BSON\JavascriptInterface::getScope - Returns the JavascriptInterface's scope document
    • MongoDB\BSON\JavascriptInterface::__toString - Returns the JavascriptInterface's code
    • MongoDB\BSON\MaxKey::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\MaxKey::serialize - Serialize a MaxKey
    • MongoDB\BSON\MaxKey::unserialize - Unserialize a MaxKey
    • MongoDB\BSON\MaxKey::__construct - Construct a new MaxKey
    • MongoDB\BSON\MinKey::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\MinKey::serialize - Serialize a MinKey
    • MongoDB\BSON\MinKey::unserialize - Unserialize a MinKey
    • MongoDB\BSON\MinKey::__construct - Construct a new MinKey
    • MongoDB\BSON\ObjectId::getTimestamp - Returns the timestamp component of this ObjectId
    • MongoDB\BSON\ObjectId::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\ObjectId::serialize - Serialize an ObjectId
    • MongoDB\BSON\ObjectId::unserialize - Unserialize an ObjectId
    • MongoDB\BSON\ObjectId::__construct - Construct a new ObjectId
    • MongoDB\BSON\ObjectId::__toString - Returns the hexidecimal representation of this ObjectId
    • MongoDB\BSON\ObjectIdInterface::getTimestamp - Returns the timestamp component of this ObjectIdInterface
    • MongoDB\BSON\ObjectIdInterface::__toString - Returns the hexidecimal representation of this ObjectIdInterface
    • MongoDB\BSON\Regex::getFlags - Returns the Regex's flags
    • MongoDB\BSON\Regex::getPattern - Returns the Regex's pattern
    • MongoDB\BSON\Regex::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Regex::serialize - Serialize a Regex
    • MongoDB\BSON\Regex::unserialize - Unserialize a Regex
    • MongoDB\BSON\Regex::__construct - Construct a new Regex
    • MongoDB\BSON\Regex::__toString - Returns the string representation of this Regex
    • MongoDB\BSON\RegexInterface::getFlags - Returns the RegexInterface's flags
    • MongoDB\BSON\RegexInterface::getPattern - Returns the RegexInterface's pattern
    • MongoDB\BSON\RegexInterface::__toString - Returns the string representation of this RegexInterface
    • MongoDB\BSON\Serializable::bsonSerialize - Provides an array or document to serialize as BSON
    • MongoDB\BSON\Symbol::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Symbol::serialize - Serialize a Symbol
    • MongoDB\BSON\Symbol::unserialize - Unserialize a Symbol
    • MongoDB\BSON\Symbol::__construct - Construct a new Symbol (unused)
    • MongoDB\BSON\Symbol::__toString - Returns the Symbol as a string
    • MongoDB\BSON\Timestamp::getIncrement - Returns the increment component of this Timestamp
    • MongoDB\BSON\Timestamp::getTimestamp - Returns the timestamp component of this Timestamp
    • MongoDB\BSON\Timestamp::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Timestamp::serialize - Serialize a Timestamp
    • MongoDB\BSON\Timestamp::unserialize - Unserialize a Timestamp
    • MongoDB\BSON\Timestamp::__construct - Construct a new Timestamp
    • MongoDB\BSON\Timestamp::__toString - Returns the string representation of this Timestamp
    • MongoDB\BSON\TimestampInterface::getIncrement - Returns the increment component of this TimestampInterface
    • MongoDB\BSON\TimestampInterface::getTimestamp - Returns the timestamp component of this TimestampInterface
    • MongoDB\BSON\TimestampInterface::__toString - Returns the string representation of this TimestampInterface
    • MongoDB\BSON\toCanonicalExtendedJSON - Returns the Canonical Extended JSON representation of a BSON value
    • MongoDB\BSON\toJSON - Returns the Legacy Extended JSON representation of a BSON value
    • MongoDB\BSON\toPHP - Returns the PHP representation of a BSON value
    • MongoDB\BSON\toRelaxedExtendedJSON - Returns the Relaxed Extended JSON representation of a BSON value
    • MongoDB\BSON\Undefined::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Undefined::serialize - Serialize a Undefined
    • MongoDB\BSON\Undefined::unserialize - Unserialize a Undefined
    • MongoDB\BSON\Undefined::__construct - Construct a new Undefined (unused)
    • MongoDB\BSON\Undefined::__toString - Returns an empty string
    • MongoDB\BSON\Unserializable::bsonUnserialize - Constructs the object from a BSON array or document
    • MongoDB\BSON\UTCDateTime::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\UTCDateTime::serialize - Serialize a UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTime - Returns the DateTime representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTime::unserialize - Unserialize a UTCDateTime
    • MongoDB\BSON\UTCDateTime::__construct - Construct a new UTCDateTime
    • MongoDB\BSON\UTCDateTime::__toString - Returns the string representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTimeInterface::toDateTime - Returns the DateTime representation of this UTCDateTimeInterface
    • MongoDB\BSON\UTCDateTimeInterface::__toString - Returns the string representation of this UTCDateTimeInterface
    • MongoDB\Driver\BulkWrite::count - Count number of write operations in the bulk
    • MongoDB\Driver\BulkWrite::delete - Add a delete operation to the bulk
    • MongoDB\Driver\BulkWrite::insert - Add an insert operation to the bulk
    • MongoDB\Driver\BulkWrite::update - Add an update operation to the bulk
    • MongoDB\Driver\BulkWrite::__construct - Create a new BulkWrite
    • MongoDB\Driver\ClientEncryption::createDataKey - Create a new encryption data key
    • MongoDB\Driver\ClientEncryption::decrypt - Decrypt a value
    • MongoDB\Driver\ClientEncryption::encrypt - Encrypt a value
    • MongoDB\Driver\Command::__construct - Create a new Command
    • MongoDB\Driver\Cursor::current - Returns the current element
    • MongoDB\Driver\Cursor::getId - Returns the ID for this cursor
    • MongoDB\Driver\Cursor::getServer - Returns the server associated with this cursor
    • MongoDB\Driver\Cursor::isDead - Checks if the cursor is exhausted or may have additional results
    • MongoDB\Driver\Cursor::key - Returns the current result's index within the cursor
    • MongoDB\Driver\Cursor::next - Advances the cursor to the next result
    • MongoDB\Driver\Cursor::rewind - Rewind the cursor to the first result
    • MongoDB\Driver\Cursor::setTypeMap - Sets a type map to use for BSON unserialization
    • MongoDB\Driver\Cursor::toArray - Returns an array containing all results for this cursor
    • MongoDB\Driver\Cursor::valid - Checks if the current position in the cursor is valid
    • MongoDB\Driver\Cursor::__construct - Create a new Cursor (not used)
    • MongoDB\Driver\CursorId::serialize - Serialize a CursorId
    • MongoDB\Driver\CursorId::unserialize - Unserialize a CursorId
    • MongoDB\Driver\CursorId::__construct - Create a new CursorId (not used)
    • MongoDB\Driver\CursorId::__toString - String representation of the cursor ID
    • MongoDB\Driver\CursorInterface::getId - Returns the ID for this cursor
    • MongoDB\Driver\CursorInterface::getServer - Returns the server associated with this cursor
    • MongoDB\Driver\CursorInterface::isDead - Checks if the cursor may have additional results
    • MongoDB\Driver\CursorInterface::setTypeMap - Sets a type map to use for BSON unserialization
    • MongoDB\Driver\CursorInterface::toArray - Returns an array containing all results for this cursor
    • MongoDB\Driver\Exception\CommandException::getResultDocument - Returns the result document for the failed command
    • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel - Returns whether an error label is associated with an exception
    • MongoDB\Driver\Exception\WriteException::getWriteResult - Returns the WriteResult for the failed write operation
    • MongoDB\Driver\Manager::createClientEncryption - Create a new ClientEncryption object
    • MongoDB\Driver\Manager::executeBulkWrite - Execute one or more write operations
    • MongoDB\Driver\Manager::executeCommand - Execute a database command
    • MongoDB\Driver\Manager::executeQuery - Execute a database query
    • MongoDB\Driver\Manager::executeReadCommand - Execute a database command that reads
    • MongoDB\Driver\Manager::executeReadWriteCommand - Execute a database command that reads and writes
    • MongoDB\Driver\Manager::executeWriteCommand - Execute a database command that writes
    • MongoDB\Driver\Manager::getReadConcern - Return the ReadConcern for the Manager
    • MongoDB\Driver\Manager::getReadPreference - Return the ReadPreference for the Manager
    • MongoDB\Driver\Manager::getServers - Return the servers to which this manager is connected
    • MongoDB\Driver\Manager::getWriteConcern - Return the WriteConcern for the Manager
    • MongoDB\Driver\Manager::selectServer - Select a server matching a read preference
    • MongoDB\Driver\Manager::startSession - Start a new client session for use with this client
    • MongoDB\Driver\Manager::__construct - Create new MongoDB Manager
    • MongoDB\Driver\Monitoring\addSubscriber - Registers a new monitoring event subscriber
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros - Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getError - Returns the Exception associated with the failed command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply - Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand - Returns the command document
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName - Returns the database on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed - Notification method for a failed command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted - Notification method for a started command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded - Notification method for a successful command
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros - Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply - Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\removeSubscriber - Unregisters an existing monitoring event subscriber
    • MongoDB\Driver\Query::__construct - Create a new Query
    • MongoDB\Driver\ReadConcern::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ReadConcern::getLevel - Returns the ReadConcern's "level" option
    • MongoDB\Driver\ReadConcern::isDefault - Checks if this is the default read concern
    • MongoDB\Driver\ReadConcern::serialize - Serialize a ReadConcern
    • MongoDB\Driver\ReadConcern::unserialize - Unserialize a ReadConcern
    • MongoDB\Driver\ReadConcern::__construct - Create a new ReadConcern
    • MongoDB\Driver\ReadPreference::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ReadPreference::getHedge - Returns the ReadPreference's "hedge" option
    • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds - Returns the ReadPreference's "maxStalenessSeconds" option
    • MongoDB\Driver\ReadPreference::getMode - Returns the ReadPreference's "mode" option
    • MongoDB\Driver\ReadPreference::getModeString - Returns the ReadPreference's "mode" option as a string
    • MongoDB\Driver\ReadPreference::getTagSets - Returns the ReadPreference's "tagSets" option
    • MongoDB\Driver\ReadPreference::serialize - Serialize a ReadPreference
    • MongoDB\Driver\ReadPreference::unserialize - Unserialize a ReadPreference
    • MongoDB\Driver\ReadPreference::__construct - Create a new ReadPreference
    • MongoDB\Driver\Server::executeBulkWrite - Execute one or more write operations on this server
    • MongoDB\Driver\Server::executeCommand - Execute a database command on this server
    • MongoDB\Driver\Server::executeQuery - Execute a database query on this server
    • MongoDB\Driver\Server::executeReadCommand - Execute a database command that reads on this server
    • MongoDB\Driver\Server::executeReadWriteCommand - Execute a database command that reads and writes on this server
    • MongoDB\Driver\Server::executeWriteCommand - Execute a database command that writes on this server
    • MongoDB\Driver\Server::getHost - Returns the hostname of this server
    • MongoDB\Driver\Server::getInfo - Returns an array of information about this server
    • MongoDB\Driver\Server::getLatency - Returns the latency of this server
    • MongoDB\Driver\Server::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Server::getTags - Returns an array of tags describing this server in a replica set
    • MongoDB\Driver\Server::getType - Returns an integer denoting the type of this server
    • MongoDB\Driver\Server::isArbiter - Checks if this server is an arbiter member of a replica set
    • MongoDB\Driver\Server::isHidden - Checks if this server is a hidden member of a replica set
    • MongoDB\Driver\Server::isPassive - Checks if this server is a passive member of a replica set
    • MongoDB\Driver\Server::isPrimary - Checks if this server is a primary member of a replica set
    • MongoDB\Driver\Server::isSecondary - Checks if this server is a secondary member of a replica set
    • MongoDB\Driver\Server::__construct - Create a new Server (not used)
    • MongoDB\Driver\Session::abortTransaction - Aborts a transaction
    • MongoDB\Driver\Session::advanceClusterTime - Advances the cluster time for this session
    • MongoDB\Driver\Session::advanceOperationTime - Advances the operation time for this session
    • MongoDB\Driver\Session::commitTransaction - Commits a transaction
    • MongoDB\Driver\Session::endSession - Terminates a session
    • MongoDB\Driver\Session::getClusterTime - Returns the cluster time for this session
    • MongoDB\Driver\Session::getLogicalSessionId - Returns the logical session ID for this session
    • MongoDB\Driver\Session::getOperationTime - Returns the operation time for this session
    • MongoDB\Driver\Session::getServer - Returns the server to which this session is pinned
    • MongoDB\Driver\Session::getTransactionOptions - Returns options for the currently running transaction
    • MongoDB\Driver\Session::getTransactionState - Returns the current transaction state for this session
    • MongoDB\Driver\Session::isInTransaction - Returns whether a multi-document transaction is in progress
    • MongoDB\Driver\Session::startTransaction - Starts a transaction
    • MongoDB\Driver\Session::__construct - Create a new Session (not used)
    • MongoDB\Driver\WriteConcern::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\WriteConcern::getJournal - Returns the WriteConcern's "journal" option
    • MongoDB\Driver\WriteConcern::getW - Returns the WriteConcern's "w" option
    • MongoDB\Driver\WriteConcern::getWtimeout - Returns the WriteConcern's "wtimeout" option
    • MongoDB\Driver\WriteConcern::isDefault - Checks if this is the default write concern
    • MongoDB\Driver\WriteConcern::serialize - Serialize a WriteConcern
    • MongoDB\Driver\WriteConcern::unserialize - Unserialize a WriteConcern
    • MongoDB\Driver\WriteConcern::__construct - Create a new WriteConcern
    • MongoDB\Driver\WriteConcernError::getCode - Returns the WriteConcernError's error code
    • MongoDB\Driver\WriteConcernError::getInfo - Returns metadata document for the WriteConcernError
    • MongoDB\Driver\WriteConcernError::getMessage - Returns the WriteConcernError's error message
    • MongoDB\Driver\WriteError::getCode - Returns the WriteError's error code
    • MongoDB\Driver\WriteError::getIndex - Returns the index of the write operation corresponding to this WriteError
    • MongoDB\Driver\WriteError::getInfo - Returns metadata document for the WriteError
    • MongoDB\Driver\WriteError::getMessage - Returns the WriteError's error message
    • MongoDB\Driver\WriteResult::getDeletedCount - Returns the number of documents deleted
    • MongoDB\Driver\WriteResult::getInsertedCount - Returns the number of documents inserted (excluding upserts)
    • MongoDB\Driver\WriteResult::getMatchedCount - Returns the number of documents selected for update
    • MongoDB\Driver\WriteResult::getModifiedCount - Returns the number of existing documents updated
    • MongoDB\Driver\WriteResult::getServer - Returns the server associated with this write result
    • MongoDB\Driver\WriteResult::getUpsertedCount - Returns the number of documents inserted by an upsert
    • MongoDB\Driver\WriteResult::getUpsertedIds - Returns an array of identifiers for upserted documents
    • MongoDB\Driver\WriteResult::getWriteConcernError - Returns any write concern error that occurred
    • MongoDB\Driver\WriteResult::getWriteErrors - Returns any write errors that occurred
    • MongoDB\Driver\WriteResult::isAcknowledged - Returns whether the write was acknowledged
    • MongoDeleteBatch::__construct - Description
    • MongoGridFS::delete - Remove a file and its chunks from the database
    • MongoGridFS::drop - Drops the files and chunks collections
    • MongoGridFS::find - Queries for files
    • MongoGridFS::findOne - Returns a single file matching the criteria
    • MongoGridFS::get - Ruft eine Datei von der Datenbank ab.
    • MongoGridFS::put - Speichert eine Datei in der Datenbank
    • MongoGridFS::remove - Remove files and their chunks from the database
    • MongoGridFS::storeBytes - Stores a string of bytes in the database
    • MongoGridFS::storeFile - Stores a file in the database
    • MongoGridFS::storeUpload - Stores an uploaded file in the database
    • MongoGridFS::__construct - Creates new file collections
    • MongoGridFSCursor::current - Returns the current file
    • MongoGridFSCursor::getNext - Return the next file to which this cursor points, and advance the cursor
    • MongoGridFSCursor::key - Returns the current result's filename
    • MongoGridFSCursor::__construct - Create a new cursor
    • MongoGridFSFile::getBytes - Returns this file's contents as a string of bytes
    • MongoGridFSFile::getFilename - Returns this file's filename
    • MongoGridFSFile::getResource - Returns a resource that can be used to read the stored file
    • MongoGridFSFile::getSize - Returns this file's size
    • MongoGridFSFile::write - Writes this file to the filesystem
    • MongoGridfsFile::__construct - Create a new GridFS file
    • MongoId::getHostname - Gets the hostname being used for this machine's ids
    • MongoId::getInc - Gets the incremented value to create this id
    • MongoId::getPID - Gets the process ID
    • MongoId::getTimestamp - Gets the number of seconds since the epoch that this id was created
    • MongoId::isValid - Check if a value is a valid ObjectId
    • MongoId::__construct - Creates a new id
    • MongoId::__set_state - Create a dummy MongoId
    • MongoId::__toString - Returns a hexidecimal representation of this id
    • MongoInsertBatch::__construct - Description
    • MongoInt32::__construct - Creates a new 32-bit integer
    • MongoInt32::__toString - Returns the string representation of this 32-bit integer
    • MongoInt64::__construct - Creates a new 64-bit integer
    • MongoInt64::__toString - Returns the string representation of this 64-bit integer
    • MongoLog::getCallback - Gets the previously set callback function
    • MongoLog::getLevel - Gets the level(s) currently being logged
    • MongoLog::getModule - Gets the module(s) currently being logged
    • MongoLog::setCallback - Sets a callback function to be invoked for events
    • MongoLog::setLevel - Sets the level(s) to be logged
    • MongoLog::setModule - Sets the module(s) to be logged
    • MongoPool::getSize - Get pool size for connection pools
    • MongoPool::info - Returns information about all connection pools
    • MongoPool::setSize - Set the size for future connection pools
    • MongoRegex::__construct - Creates a new regular expression
    • MongoRegex::__toString - A string representation of this regular expression
    • MongoResultException::getDocument - Retrieve the full result document
    • MongoTimestamp::__construct - Creates a new timestamp
    • MongoTimestamp::__toString - Returns a string representation of this timestamp
    • MongoUpdateBatch::__construct - Description
    • MongoWriteBatch::add - Adds a write operation to a batch
    • MongoWriteBatch::execute - Executes a batch of write operations
    • MongoWriteBatch::__construct - Creates a new batch of write operations
    • MongoWriteConcernException::getDocument - Get the error document
    • move_uploaded_file - Verschiebt eine hochgeladene Datei an einen neuen Ort
    • mqseries_back - MQSeries MQBACK
    • mqseries_begin - MQseries MQBEGIN
    • mqseries_close - MQSeries MQCLOSE
    • mqseries_cmit - MQSeries MQCMIT
    • mqseries_conn - MQSeries MQCONN
    • mqseries_connx - MQSeries MQCONNX
    • mqseries_disc - MQSeries MQDISC
    • mqseries_get - MQSeries MQGET
    • mqseries_inq - MQSeries MQINQ
    • mqseries_open - MQSeries MQOPEN
    • mqseries_put - MQSeries MQPUT
    • mqseries_put1 - MQSeries MQPUT1
    • mqseries_set - MQSeries MQSET
    • mqseries_strerror - Returns the error message corresponding to a result code (MQRC)
    • msg_get_queue - Legt eine Nachrichten-Warteschlange an oder hängt sich an existierende an
    • msg_queue_exists - Prüft, ob die Nachrichten-Warteschlange existiert
    • msg_receive - Liest eine Nachricht aus einer Nachrichten-Warteschlange aus
    • msg_remove_queue - Entfernt eine Nachrichten-Warteschlange
    • msg_send - Send a message to a message queue
    • msg_set_queue - Setzt Metadaten in der Datenstruktur der Nachrichten-Warteschlange
    • msg_stat_queue - Liefert Informationen zur Datenstruktur einer Nachrichten-Warteschlange
    • mt_getrandmax - Liefert den größtmöglichen Zufallswert
    • mt_rand - Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren
    • mt_srand - Initialisiert den Mersenne-Twister-Zufallszahlengenerator
    • MultipleIterator::attachIterator - Attaches iterator information
    • MultipleIterator::containsIterator - Checks if an iterator is attached
    • MultipleIterator::countIterators - Gets the number of attached iterator instances
    • MultipleIterator::current - Gets the registered iterator instances
    • MultipleIterator::detachIterator - Detaches an iterator
    • MultipleIterator::getFlags - Gets the flag information
    • MultipleIterator::key - Gets the registered iterator instances
    • MultipleIterator::next - Moves all attached iterator instances forward
    • MultipleIterator::rewind - Rewinds all attached iterator instances
    • MultipleIterator::setFlags - Sets flags
    • MultipleIterator::valid - Checks the validity of sub iterators
    • MultipleIterator::__construct - Constructs a new MultipleIterator
    • Mutex::create - Create a Mutex
    • Mutex::destroy - Destroy Mutex
    • Mutex::lock - Acquire Mutex
    • Mutex::trylock - Attempt to Acquire Mutex
    • Mutex::unlock - Release Mutex
    • mysqli::$affected_rows - Ermittelt die Anzahl der betroffenen Zeilen in einem vorherigen MySQL Vorgang
    • mysqli::$client_info - Get MySQL client info
    • mysqli::$client_version - Returns the MySQL client version as an integer
    • mysqli::$connect_errno - Returns the error code from last connect call
    • mysqli::$connect_error - Returns a string description of the last connect error
    • mysqli::$errno - Returns the error code for the most recent function call
    • mysqli::$error - Returns a string description of the last error
    • mysqli::$error_list - Returns a list of errors from the last command executed
    • mysqli::$field_count - Returns the number of columns for the most recent query
    • mysqli::$host_info - Returns a string representing the type of connection used
    • mysqli::$info - Retrieves information about the most recently executed query
    • mysqli::$insert_id - Returns the auto generated id used in the latest query
    • mysqli::$protocol_version - Returns the version of the MySQL protocol used
    • mysqli::$server_info - Returns the version of the MySQL server
    • mysqli::$server_version - Returns the version of the MySQL server as an integer
    • mysqli::$sqlstate - Returns the SQLSTATE error from previous MySQL operation
    • mysqli::$thread_id - Returns the thread ID for the current connection
    • mysqli::$warning_count - Gibt die Anzahl an Warnungen für den letzten Query der übergebenen Verbindung zurück.
    • mysqli::autocommit - Aktiviert oder deaktiviert das automatische Übertragen von Datenbankänderungen
    • mysqli::begin_transaction - Starts a transaction
    • mysqli::change_user - Changes the user of the specified database connection
    • mysqli::character_set_name - Returns the default character set for the database connection
    • mysqli::close - Schließt die zuvor geöffnete Datenbankverbindung
    • mysqli::commit - Commits the current transaction
    • mysqli::debug - Performs debugging operations
    • mysqli::dump_debug_info - Dump debugging information into the log
    • mysqli::get_charset - Returns a character set object
    • mysqli::get_connection_stats - Returns statistics about the client connection
    • mysqli::get_warnings - Get result of SHOW WARNINGS
    • mysqli::init - Initializes MySQLi and returns an object for use with mysqli_real_connect()
    • mysqli::kill - Asks the server to kill a MySQL thread
    • mysqli::more_results - Check if there are any more query results from a multi query
    • mysqli::multi_query - Performs a query on the database
    • mysqli::next_result - Prepare next result from multi_query
    • mysqli::options - Set options
    • mysqli::ping - Pings a server connection, or tries to reconnect if the connection has gone down
    • mysqli::poll - Poll connections
    • mysqli::prepare - Prepare an SQL statement for execution
    • mysqli::query - Performs a query on the database
    • mysqli::real_connect - Opens a connection to a mysql server
    • mysqli::real_escape_string - Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
    • mysqli::real_query - Execute an SQL query
    • mysqli::reap_async_query - Get result from async query
    • mysqli::refresh - Refreshes
    • mysqli::release_savepoint - Removes the named savepoint from the set of savepoints of the current transaction
    • mysqli::rollback - Rolls back current transaction
    • mysqli::savepoint - Set a named transaction savepoint
    • mysqli::select_db - Selects the default database for database queries
    • mysqli::set_charset - Sets the default client character set
    • mysqli::set_opt - Alias für mysqli_options
    • mysqli::ssl_set - Used for establishing secure connections using SSL
    • mysqli::stat - Liefert den aktuellen Systemstatus
    • mysqli::stmt_init - Initializes a statement and returns an object for use with mysqli_stmt_prepare
    • mysqli::store_result - Transfers a result set from the last query
    • mysqli::thread_safe - Returns whether thread safety is given or not
    • mysqli::use_result - Initiate a result set retrieval
    • mysqli::__construct - Open a new connection to the MySQL server
    • mysqli_connect - Alias von mysqli::__construct
    • mysqli_driver::$report_mode - Sets mysqli error reporting mode
    • mysqli_driver::embedded_server_end - Stop embedded server
    • mysqli_driver::embedded_server_start - Initialize and start embedded server
    • mysqli_escape_string - Alias von mysqli_real_escape_string
    • mysqli_execute - Alias für mysqli_stmt_execute
    • mysqli_get_client_stats - Returns client per-process statistics
    • mysqli_get_links_stats - Return information about open and cached links
    • mysqli_report - Alias von mysqli_driver->report_mode
    • mysqli_result::$current_field - Get current field offset of a result pointer
    • mysqli_result::$field_count - Get the number of fields in a result
    • mysqli_result::$lengths - Returns the lengths of the columns of the current row in the result set
    • mysqli_result::$num_rows - Gets the number of rows in a result
    • mysqli_result::data_seek - Adjusts the result pointer to an arbitrary row in the result
    • mysqli_result::fetch_all - Fetches all result rows as an associative array, a numeric array, or both
    • mysqli_result::fetch_array - Fetch a result row as an associative, a numeric array, or both
    • mysqli_result::fetch_assoc - Fetch a result row as an associative array
    • mysqli_result::fetch_field - Returns the next field in the result set
    • mysqli_result::fetch_fields - Returns an array of objects representing the fields in a result set
    • mysqli_result::fetch_field_direct - Fetch meta-data for a single field
    • mysqli_result::fetch_object - Returns the current row of a result set as an object
    • mysqli_result::fetch_row - Get a result row as an enumerated array
    • mysqli_result::field_seek - Set result pointer to a specified field offset
    • mysqli_result::free - Frees the memory associated with a result
    • mysqli_stmt::$affected_rows - gibt die gesamte Anzahl der Zeilen zurück, die bei der letzten ausgeführten Anweisung geändert, gelöscht oder eingefügt worden sind
    • mysqli_stmt::$errno - Returns the error code for the most recent statement call
    • mysqli_stmt::$error - Returns a string description for last statement error
    • mysqli_stmt::$error_list - Returns a list of errors from the last statement executed
    • mysqli_stmt::$field_count - Returns the number of columns in the given statement
    • mysqli_stmt::$insert_id - Get the ID generated from the previous INSERT operation
    • mysqli_stmt::$num_rows - gibt die Anzahl der Zeilen einer Ergebnismenge zurück
    • mysqli_stmt::$param_count - Liefert die Anzahl der Parameter einer Anweisung
    • mysqli_stmt::$sqlstate - Gibt den SQL-Status von der vorangegangenen Ausführung der Anweisung zurück
    • mysqli_stmt::attr_get - Liefert den aktuellen Wert des Attributs einer Anweisung
    • mysqli_stmt::attr_set - Verändert das Verhalten einer vorbereiteten Anweisung (prepared statement)
    • mysqli_stmt::bind_param - Bindet Variablen als Parameter an eine vorbereitete Anweisung (prepared statement)
    • mysqli_stmt::bind_result - Bindet Variablen an eine vorbereitete Anweisung (prepared statement), um das Ergebnis einer Abfrage abzulegen
    • mysqli_stmt::close - Schließt eine vorbereitete Anweisung (prepared statement)
    • mysqli_stmt::data_seek - Geht zu einer beliebigen Zeile in der Ergebnismenge einer Abfrage.
    • mysqli_stmt::execute - Executes a prepared Query
    • mysqli_stmt::fetch - Fetch results from a prepared statement into the bound variables
    • mysqli_stmt::free_result - Frees stored result memory for the given statement handle
    • mysqli_stmt::get_result - Gets a result set from a prepared statement
    • mysqli_stmt::get_warnings - Get result of SHOW WARNINGS
    • mysqli_stmt::more_results - Prüft, ob es weitere Ergebnismengen bei einer Mehrfachabfrage gibt.
    • mysqli_stmt::next_result - Liest die nächste Ergebnismenge einer Mehrfachabfrage aus.
    • mysqli_stmt::prepare - Prepare an SQL statement for execution
    • mysqli_stmt::reset - Resets a prepared statement
    • mysqli_stmt::result_metadata - Returns result set metadata from a prepared statement
    • mysqli_stmt::send_long_data - Sendet Daten blockweise
    • mysqli_stmt::store_result - Holt die Ergebnismenge einer vorbereiteten Anweisung (Prepared Statement)
    • mysqli_stmt::__construct - Erzeugt ein neues mysqli_stmt-Objekt
    • mysqli_warning::next - Fetch next warning
    • MysqlndUhConnection::changeUser - Changes the user of the specified mysqlnd database connection
    • MysqlndUhConnection::charsetName - Returns the default character set for the database connection
    • MysqlndUhConnection::close - Closes a previously opened database connection
    • MysqlndUhConnection::connect - Open a new connection to the MySQL server
    • MysqlndUhConnection::endPSession - End a persistent connection
    • MysqlndUhConnection::escapeString - Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
    • MysqlndUhConnection::getAffectedRows - Gets the number of affected rows in a previous MySQL operation
    • MysqlndUhConnection::getErrorNumber - Returns the error code for the most recent function call
    • MysqlndUhConnection::getErrorString - Returns a string description of the last error
    • MysqlndUhConnection::getFieldCount - Returns the number of columns for the most recent query
    • MysqlndUhConnection::getHostInformation - Returns a string representing the type of connection used
    • MysqlndUhConnection::getLastInsertId - Returns the auto generated id used in the last query
    • MysqlndUhConnection::getLastMessage - Retrieves information about the most recently executed query
    • MysqlndUhConnection::getProtocolInformation - Returns the version of the MySQL protocol used
    • MysqlndUhConnection::getServerInformation - Returns the version of the MySQL server
    • MysqlndUhConnection::getServerStatistics - Gets the current system status
    • MysqlndUhConnection::getServerVersion - Returns the version of the MySQL server as an integer
    • MysqlndUhConnection::getSqlstate - Returns the SQLSTATE error from previous MySQL operation
    • MysqlndUhConnection::getStatistics - Returns statistics about the client connection
    • MysqlndUhConnection::getThreadId - Returns the thread ID for the current connection
    • MysqlndUhConnection::getWarningCount - Returns the number of warnings from the last query for the given link
    • MysqlndUhConnection::init - Initialize mysqlnd connection
    • MysqlndUhConnection::killConnection - Asks the server to kill a MySQL thread
    • MysqlndUhConnection::listFields - List MySQL table fields
    • MysqlndUhConnection::listMethod - Wrapper for assorted list commands
    • MysqlndUhConnection::moreResults - Check if there are any more query results from a multi query
    • MysqlndUhConnection::nextResult - Prepare next result from multi_query
    • MysqlndUhConnection::ping - Pings a server connection, or tries to reconnect if the connection has gone down
    • MysqlndUhConnection::query - Performs a query on the database
    • MysqlndUhConnection::queryReadResultsetHeader - Read a result set header
    • MysqlndUhConnection::reapQuery - Get result from async query
    • MysqlndUhConnection::refreshServer - Flush or reset tables and caches
    • MysqlndUhConnection::restartPSession - Restart a persistent mysqlnd connection
    • MysqlndUhConnection::selectDb - Selects the default database for database queries
    • MysqlndUhConnection::sendClose - Sends a close command to MySQL
    • MysqlndUhConnection::sendQuery - Sends a query to MySQL
    • MysqlndUhConnection::serverDumpDebugInformation - Dump debugging information into the log for the MySQL server
    • MysqlndUhConnection::setAutocommit - Turns on or off auto-committing database modifications
    • MysqlndUhConnection::setCharset - Sets the default client character set
    • MysqlndUhConnection::setClientOption - Sets a client option
    • MysqlndUhConnection::setServerOption - Sets a server option
    • MysqlndUhConnection::shutdownServer - The shutdownServer purpose
    • MysqlndUhConnection::simpleCommand - Sends a basic COM_* command
    • MysqlndUhConnection::simpleCommandHandleResponse - Process a response for a basic COM_* command send to the client
    • MysqlndUhConnection::sslSet - Used for establishing secure connections using SSL
    • MysqlndUhConnection::stmtInit - Initializes a statement and returns a resource for use with mysqli_statement::prepare
    • MysqlndUhConnection::storeResult - Transfers a result set from the last query
    • MysqlndUhConnection::txCommit - Commits the current transaction
    • MysqlndUhConnection::txRollback - Rolls back current transaction
    • MysqlndUhConnection::useResult - Initiate a result set retrieval
    • MysqlndUhConnection::__construct - The __construct purpose
    • MysqlndUhPreparedStatement::execute - Executes a prepared Query
    • MysqlndUhPreparedStatement::prepare - Prepare an SQL statement for execution
    • MysqlndUhPreparedStatement::__construct - The __construct purpose
    • mysqlnd_memcache_get_config - Returns information about the plugin configuration
    • mysqlnd_memcache_set - Associate a MySQL connection with a Memcache connection
    • mysqlnd_ms_dump_servers - Returns a list of currently configured servers
    • mysqlnd_ms_fabric_select_global - Switch to global sharding server for a given table
    • mysqlnd_ms_fabric_select_shard - Switch to shard
    • mysqlnd_ms_get_last_gtid - Returns the latest global transaction ID
    • mysqlnd_ms_get_last_used_connection - Returns an array which describes the last used connection
    • mysqlnd_ms_get_stats - Returns query distribution and connection statistics
    • mysqlnd_ms_match_wild - Finds whether a table name matches a wildcard pattern or not
    • mysqlnd_ms_query_is_select - Find whether to send the query to the master, the slave or the last used MySQL server
    • mysqlnd_ms_set_qos - Sets the quality of service needed from the cluster
    • mysqlnd_ms_set_user_pick_server - Sets a callback for user-defined read/write splitting
    • mysqlnd_ms_xa_begin - Starts a distributed/XA transaction among MySQL servers
    • mysqlnd_ms_xa_commit - Commits a distributed/XA transaction among MySQL servers
    • mysqlnd_ms_xa_gc - Garbage collects unfinished XA transactions after severe errors
    • mysqlnd_ms_xa_rollback - Rolls back a distributed/XA transaction among MySQL servers
    • mysqlnd_qc_clear_cache - Flush all cache contents
    • mysqlnd_qc_get_available_handlers - Returns a list of available storage handler
    • mysqlnd_qc_get_cache_info - Returns information on the current handler, the number of cache entries and cache entries, if available
    • mysqlnd_qc_get_core_stats - Statistics collected by the core of the query cache
    • mysqlnd_qc_get_normalized_query_trace_log - Returns a normalized query trace log for each query inspected by the query cache
    • mysqlnd_qc_get_query_trace_log - Returns a backtrace for each query inspected by the query cache
    • mysqlnd_qc_set_cache_condition - Set conditions for automatic caching
    • mysqlnd_qc_set_is_select - Installs a callback which decides whether a statement is cached
    • mysqlnd_qc_set_storage_handler - Change current storage handler
    • mysqlnd_qc_set_user_handlers - Sets the callback functions for a user-defined procedural storage handler
    • mysqlnd_uh_convert_to_mysqlnd - Converts a MySQL connection handle into a mysqlnd connection handle
    • mysqlnd_uh_set_connection_proxy - Installs a proxy for mysqlnd connections
    • mysqlnd_uh_set_statement_proxy - Installs a proxy for mysqlnd statements
    • mysql_affected_rows - Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL-Operation
    • mysql_client_encoding - Liefert den Namen des Zeichensatzes
    • mysql_close - Schließt eine Verbindung zu MySQL
    • mysql_connect - Öffnet eine Verbindung zu einem MySQL-Server
    • mysql_create_db - Legt eine MySQL-Datenbank an
    • mysql_data_seek - Bewegt den internen Ergebnis-Zeiger
    • mysql_db_name - Liefert den Namen einer Datenbank vom mysql_list_dbs-Aufruf
    • mysql_db_query - Wählt eine Datenbank aus und führt darauf eine Abfrage aus
    • mysql_drop_db - Löscht eine Datenbank
    • mysql_errno - Liefert die Nummer einer Fehlermeldung einer zuvor ausgeführten MySQL-Operation
    • mysql_error - Liefert den Fehlertext der zuvor ausgeführten MySQL-Operation
    • mysql_escape_string - Maskiert eine Zeichenkette zur Verwendung in einer MySQL-Abfrage
    • mysql_fetch_array - Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
    • mysql_fetch_assoc - Liefert einen Datensatz als assoziatives Array
    • mysql_fetch_field - Liefert ein Objekt mit Spalteninformationen aus einem Abfrageergebnis
    • mysql_fetch_lengths - Liefert die Längen aller Felder aus einem Ergebnis
    • mysql_fetch_object - Liefert eine Ergebniszeile als Objekt
    • mysql_fetch_row - Liefert einen Datensatz als indiziertes Array
    • mysql_field_flags - Liefert die Flags des angegebenen Feldes aus einem Abfrageergebnis
    • mysql_field_len - Liefert die Länge des angegebenen Feldes
    • mysql_field_name - Liefert den Namen des angegebenen Feldes aus einem Ergebnis
    • mysql_field_seek - Setzt den Ergebniszeiger auf einen bestimmten Feldoffset
    • mysql_field_table - Liefert den Namen der Tabelle, die das genannte Feld enthält
    • mysql_field_type - Liefert den Typ des spezifizierten Feldes aus einem Ergebnis
    • mysql_free_result - Gibt belegten Speicher wieder frei
    • mysql_get_client_info - Liefert MySQL-Clientinformationen
    • mysql_get_host_info - Liefert Informationen zum MySQL-Host
    • mysql_get_proto_info - Liefert MySQL-Protokollinformationen
    • mysql_get_server_info - Liefert Informationen zum MySQL-Server
    • mysql_info - Liefert Informationen über die zuletzt ausgeführte Anfrage
    • mysql_insert_id - Liefert die ID, die in der vorherigen Abfrage erzeugt wurde
    • mysql_list_dbs - Listet die verfügbaren Datenbanken (Schemata) auf einem MySQL-Server auf
    • mysql_list_fields - Listet MySQL-Tabellenfelder auf
    • mysql_list_processes - Zeigt die MySQL-Prozesse an
    • mysql_list_tables - Listet Tabellen einer MySQL-Datenbank auf
    • mysql_num_fields - Liefert die Anzahl der Felder in einem Ergebnis
    • mysql_num_rows - Liefert die Anzahl der Zeilen in einem Ergebnis
    • mysql_pconnect - Öffnet eine persistente Verbindung zum MySQL-Server
    • mysql_ping - Pingt eine Serververbindung an und verbindet erneut, wenn keine Verbindung besteht
    • mysql_query - Sendet eine Abfrage an MySQL
    • mysql_real_escape_string - Maskiert spezielle Zeichen innerhalb einer Zeichenkette für die Verwendung in einer SQL-Anweisung
    • mysql_result - Liefert eine Spalte aus einem MySQL-Ergebnis
    • mysql_select_db - Wählt eine MySQL-Datenbank aus
    • mysql_set_charset - Setzt den Verbindungszeichensatz
    • mysql_stat - Zeigt den momentanen Serverstatus an
    • mysql_tablename - Liefert den Namen einer Tabelle
    • mysql_thread_id - Zeigt die aktuelle Thread-ID an
    • mysql_unbuffered_query - Sendet eine SQL-Anfrage an MySQL, ohne Ergebniszeilen abzuholen und zu puffern
    • mysql_xdevapi\Client::close - Close client
  • n
    • natcasesort - Sortiert ein Array in "natürlicher Reihenfolge", Groß/Kleinschreibung wird ignoriert
    • natsort - Sortiert ein Array in "natürlicher Reihenfolge"
    • ncurses_addch - Add character at current position and advance cursor
    • ncurses_addchnstr - Add attributed string with specified length at current position
    • ncurses_addchstr - Add attributed string at current position
    • ncurses_addnstr - Add string with specified length at current position
    • ncurses_addstr - Output text at current position
    • ncurses_assume_default_colors - Define default colors for color 0
    • ncurses_attroff - Turn off the given attributes
    • ncurses_attron - Turn on the given attributes
    • ncurses_attrset - Set given attributes
    • ncurses_baudrate - Returns baudrate of terminal
    • ncurses_beep - Let the terminal beep
    • ncurses_bkgd - Set background property for terminal screen
    • ncurses_bkgdset - Control screen background
    • ncurses_border - Draw a border around the screen using attributed characters
    • ncurses_bottom_panel - Moves a visible panel to the bottom of the stack
    • ncurses_can_change_color - Checks if terminal color definitions can be changed
    • ncurses_cbreak - Switch off input buffering
    • ncurses_clear - Clear screen
    • ncurses_clrtobot - Clear screen from current position to bottom
    • ncurses_clrtoeol - Clear screen from current position to end of line
    • ncurses_color_content - Retrieves RGB components of a color
    • ncurses_color_set - Set active foreground and background colors
    • ncurses_curs_set - Set cursor state
    • ncurses_define_key - Define a keycode
    • ncurses_def_prog_mode - Saves terminals (program) mode
    • ncurses_def_shell_mode - Saves terminals (shell) mode
    • ncurses_delay_output - Delay output on terminal using padding characters
    • ncurses_delch - Delete character at current position, move rest of line left
    • ncurses_deleteln - Delete line at current position, move rest of screen up
    • ncurses_delwin - Delete a ncurses window
    • ncurses_del_panel - Remove panel from the stack and delete it (but not the associated window)
    • ncurses_doupdate - Write all prepared refreshes to terminal
    • ncurses_echo - Activate keyboard input echo
    • ncurses_echochar - Single character output including refresh
    • ncurses_end - Stop using ncurses, clean up the screen
    • ncurses_erase - Erase terminal screen
    • ncurses_erasechar - Returns current erase character
    • ncurses_filter - Set LINES for iniscr() and newterm() to 1
    • ncurses_flash - Flash terminal screen (visual bell)
    • ncurses_flushinp - Flush keyboard input buffer
    • ncurses_getch - Read a character from keyboard
    • ncurses_getmaxyx - Returns the size of a window
    • ncurses_getmouse - Reads mouse event
    • ncurses_getyx - Returns the current cursor position for a window
    • ncurses_halfdelay - Put terminal into halfdelay mode
    • ncurses_has_colors - Checks if terminal has color capabilities
    • ncurses_has_ic - Check for insert- and delete-capabilities
    • ncurses_has_il - Check for line insert- and delete-capabilities
    • ncurses_has_key - Check for presence of a function key on terminal keyboard
    • ncurses_hide_panel - Remove panel from the stack, making it invisible
    • ncurses_hline - Draw a horizontal line at current position using an attributed character and max. n characters long
    • ncurses_inch - Get character and attribute at current position
    • ncurses_init - Initialize ncurses
    • ncurses_init_color - Define a terminal color
    • ncurses_init_pair - Define a color pair
    • ncurses_insch - Insert character moving rest of line including character at current position
    • ncurses_insdelln - Insert lines before current line scrolling down (negative numbers delete and scroll up)
    • ncurses_insertln - Insert a line, move rest of screen down
    • ncurses_insstr - Insert string at current position, moving rest of line right
    • ncurses_instr - Reads string from terminal screen
    • ncurses_isendwin - Ncurses is in endwin mode, normal screen output may be performed
    • ncurses_keyok - Enable or disable a keycode
    • ncurses_keypad - Turns keypad on or off
    • ncurses_killchar - Returns current line kill character
    • ncurses_longname - Returns terminals description
    • ncurses_meta - Enables/Disable 8-bit meta key information
    • ncurses_mouseinterval - Set timeout for mouse button clicks
    • ncurses_mousemask - Sets mouse options
    • ncurses_mouse_trafo - Transforms coordinates
    • ncurses_move - Move output position
    • ncurses_move_panel - Moves a panel so that its upper-left corner is at [startx, starty]
    • ncurses_mvaddch - Move current position and add character
    • ncurses_mvaddchnstr - Move position and add attributed string with specified length
    • ncurses_mvaddchstr - Move position and add attributed string
    • ncurses_mvaddnstr - Move position and add string with specified length
    • ncurses_mvaddstr - Move position and add string
    • ncurses_mvcur - Move cursor immediately
    • ncurses_mvdelch - Move position and delete character, shift rest of line left
    • ncurses_mvgetch - Move position and get character at new position
    • ncurses_mvhline - Set new position and draw a horizontal line using an attributed character and max. n characters long
    • ncurses_mvinch - Move position and get attributed character at new position
    • ncurses_mvvline - Set new position and draw a vertical line using an attributed character and max. n characters long
    • ncurses_mvwaddstr - Add string at new position in window
    • ncurses_napms - Sleep
    • ncurses_newpad - Creates a new pad (window)
    • ncurses_newwin - Create a new window
    • ncurses_new_panel - Create a new panel and associate it with window
    • ncurses_nl - Translate newline and carriage return / line feed
    • ncurses_nocbreak - Switch terminal to cooked mode
    • ncurses_noecho - Switch off keyboard input echo
    • ncurses_nonl - Do not translate newline and carriage return / line feed
    • ncurses_noqiflush - Do not flush on signal characters
    • ncurses_noraw - Switch terminal out of raw mode
    • ncurses_pair_content - Retrieves foreground and background colors of a color pair
    • ncurses_panel_above - Returns the panel above panel
    • ncurses_panel_below - Returns the panel below panel
    • ncurses_panel_window - Returns the window associated with panel
    • ncurses_pnoutrefresh - Copies a region from a pad into the virtual screen
    • ncurses_prefresh - Copies a region from a pad into the virtual screen
    • ncurses_putp - Apply padding information to the string and output it
    • ncurses_qiflush - Flush on signal characters
    • ncurses_raw - Switch terminal into raw mode
    • ncurses_refresh - Refresh screen
    • ncurses_replace_panel - Replaces the window associated with panel
    • ncurses_resetty - Restores saved terminal state
    • ncurses_reset_prog_mode - Resets the prog mode saved by def_prog_mode
    • ncurses_reset_shell_mode - Resets the shell mode saved by def_shell_mode
    • ncurses_savetty - Saves terminal state
    • ncurses_scrl - Scroll window content up or down without changing current position
    • ncurses_scr_dump - Dump screen content to file
    • ncurses_scr_init - Initialize screen from file dump
    • ncurses_scr_restore - Restore screen from file dump
    • ncurses_scr_set - Inherit screen from file dump
    • ncurses_show_panel - Places an invisible panel on top of the stack, making it visible
    • ncurses_slk_attr - Returns current soft label key attribute
    • ncurses_slk_attroff - Turn off the given attributes for soft function-key labels
    • ncurses_slk_attron - Turn on the given attributes for soft function-key labels
    • ncurses_slk_attrset - Set given attributes for soft function-key labels
    • ncurses_slk_clear - Clears soft labels from screen
    • ncurses_slk_color - Sets color for soft label keys
    • ncurses_slk_init - Initializes soft label key functions
    • ncurses_slk_noutrefresh - Copies soft label keys to virtual screen
    • ncurses_slk_refresh - Copies soft label keys to screen
    • ncurses_slk_restore - Restores soft label keys
    • ncurses_slk_set - Sets function key labels
    • ncurses_slk_touch - Forces output when ncurses_slk_noutrefresh is performed
    • ncurses_standend - Stop using 'standout' attribute
    • ncurses_standout - Start using 'standout' attribute
    • ncurses_start_color - Initializes color functionality
    • ncurses_termattrs - Returns a logical OR of all attribute flags supported by terminal
    • ncurses_termname - Returns terminals (short)-name
    • ncurses_timeout - Set timeout for special key sequences
    • ncurses_top_panel - Moves a visible panel to the top of the stack
    • ncurses_typeahead - Specify different filedescriptor for typeahead checking
    • ncurses_ungetch - Put a character back into the input stream
    • ncurses_ungetmouse - Pushes mouse event to queue
    • ncurses_update_panels - Refreshes the virtual screen to reflect the relations between panels in the stack
    • ncurses_use_default_colors - Assign terminal default colors to color id -1
    • ncurses_use_env - Control use of environment information about terminal size
    • ncurses_use_extended_names - Control use of extended names in terminfo descriptions
    • ncurses_vidattr - Display the string on the terminal in the video attribute mode
    • ncurses_vline - Draw a vertical line at current position using an attributed character and max. n characters long
    • ncurses_waddch - Adds character at current position in a window and advance cursor
    • ncurses_waddstr - Outputs text at current postion in window
    • ncurses_wattroff - Turns off attributes for a window
    • ncurses_wattron - Turns on attributes for a window
    • ncurses_wattrset - Set the attributes for a window
    • ncurses_wborder - Draws a border around the window using attributed characters
    • ncurses_wclear - Clears window
    • ncurses_wcolor_set - Sets windows color pairings
    • ncurses_werase - Erase window contents
    • ncurses_wgetch - Reads a character from keyboard (window)
    • ncurses_whline - Draws a horizontal line in a window at current position using an attributed character and max. n characters long
    • ncurses_wmouse_trafo - Transforms window/stdscr coordinates
    • ncurses_wmove - Moves windows output position
    • ncurses_wnoutrefresh - Copies window to virtual screen
    • ncurses_wrefresh - Refresh window on terminal screen
    • ncurses_wstandend - End standout mode for a window
    • ncurses_wstandout - Enter standout mode for a window
    • ncurses_wvline - Draws a vertical line in a window at current position using an attributed character and max. n characters long
    • next - Rückt den internen Zeiger eines Arrays vor
    • ngettext - Pluralversion von gettext
    • nl2br - Fügt vor allen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche ein
    • nl_langinfo - Query-Language und Locale-Information
    • NoRewindIterator::current - Get the current value
    • NoRewindIterator::getInnerIterator - Get the inner iterator
    • NoRewindIterator::key - Get the current key
    • NoRewindIterator::next - Forward to the next element
    • NoRewindIterator::rewind - Prevents the rewind operation on the inner iterator
    • NoRewindIterator::valid - Validates the iterator
    • NoRewindIterator::__construct - Construct a NoRewindIterator
    • Normalizer::getRawDecomposition - Gets the Decomposition_Mapping property for the given UTF-8 encoded code point
    • Normalizer::isNormalized - Checks if the provided string is already in the specified normalization form
    • Normalizer::normalize - Normalizes the input provided and returns the normalized string
    • NumberFormatter::create - Create a number formatter
    • NumberFormatter::format - Format a number
    • NumberFormatter::formatCurrency - Format a currency value
    • NumberFormatter::getAttribute - Get an attribute
    • NumberFormatter::getErrorCode - Get formatter's last error code
    • NumberFormatter::getErrorMessage - Get formatter's last error message
    • NumberFormatter::getLocale - Get formatter locale
    • NumberFormatter::getPattern - Get formatter pattern
    • NumberFormatter::getSymbol - Get a symbol value
    • NumberFormatter::getTextAttribute - Get a text attribute
    • NumberFormatter::parse - Parse a number
    • NumberFormatter::parseCurrency - Parse a currency number
    • NumberFormatter::setAttribute - Set an attribute
    • NumberFormatter::setPattern - Set formatter pattern
    • NumberFormatter::setSymbol - Set a symbol value
    • NumberFormatter::setTextAttribute - Set a text attribute
    • number_format - Formatiert eine Zahl mit Tausender-Trennzeichen
  • o
    • OAuth::disableDebug - Turn off verbose debugging
    • OAuth::disableRedirects - Turn off redirects
    • OAuth::disableSSLChecks - Turn off SSL checks
    • OAuth::enableDebug - Turn on verbose debugging
    • OAuth::enableRedirects - Turn on redirects
    • OAuth::enableSSLChecks - Turn on SSL checks
    • OAuth::fetch - Fetch an OAuth protected resource
    • OAuth::generateSignature - Generate a signature
    • OAuth::getAccessToken - Fetch an access token
    • OAuth::getCAPath - Gets CA information
    • OAuth::getLastResponse - Get the last response
    • OAuth::getLastResponseHeaders - Get headers for last response
    • OAuth::getLastResponseInfo - Get HTTP information about the last response
    • OAuth::getRequestHeader - Generate OAuth header string signature
    • OAuth::getRequestToken - Fetch a request token
    • OAuth::setAuthType - Set authorization type
    • OAuth::setCAPath - Set CA path and info
    • OAuth::setNonce - Set the nonce for subsequent requests
    • OAuth::setRequestEngine - The setRequestEngine purpose
    • OAuth::setRSACertificate - Set the RSA certificate
    • OAuth::setSSLChecks - Tweak specific SSL checks for requests
    • OAuth::setTimestamp - Set the timestamp
    • OAuth::setToken - Sets the token and secret
    • OAuth::setVersion - Set the OAuth version
    • OAuth::__construct - Create a new OAuth object
    • OAuth::__destruct - The destructor
    • OAuthProvider::addRequiredParameter - Add required parameters
    • OAuthProvider::callconsumerHandler - Calls the consumerNonceHandler callback
    • OAuthProvider::callTimestampNonceHandler - Calls the timestampNonceHandler callback
    • OAuthProvider::calltokenHandler - Calls the tokenNonceHandler callback
    • OAuthProvider::checkOAuthRequest - Check an oauth request
    • OAuthProvider::consumerHandler - Set the consumerHandler handler callback
    • OAuthProvider::generateToken - Generate a random token
    • OAuthProvider::is2LeggedEndpoint - is2LeggedEndpoint
    • OAuthProvider::isRequestTokenEndpoint - Sets isRequestTokenEndpoint
    • OAuthProvider::removeRequiredParameter - Remove a required parameter
    • OAuthProvider::reportProblem - Report a problem
    • OAuthProvider::setParam - Set a parameter
    • OAuthProvider::setRequestTokenPath - Set request token path
    • OAuthProvider::timestampNonceHandler - Set the timestampNonceHandler handler callback
    • OAuthProvider::tokenHandler - Set the tokenHandler handler callback
    • OAuthProvider::__construct - Constructs a new OAuthProvider object
    • oauth_get_sbs - Generate a Signature Base String
    • oauth_urlencode - Kodiert eine URI nach RFC 3986
    • ob_clean - Löscht den Ausgabepuffer
    • ob_end_clean - Löscht den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
    • ob_end_flush - Leert (schickt/sendet) den Ausgabe-Puffer und deaktiviert die Ausgabe-Pufferung
    • ob_flush - Leert (sendet) den Ausgabepuffer
    • ob_get_clean - Get current buffer contents and delete current output buffer
    • ob_get_contents - Liefert den Inhalt des Ausgabepuffers
    • ob_get_flush - Flush the output buffer, return it as a string and turn off output buffering
    • ob_get_length - Return the length of the output buffer
    • ob_get_level - Anzahl der aktiven Ausgabepuffer
    • ob_get_status - Get status of output buffers
    • ob_gzhandler - ob_start callback function to gzip output buffer
    • ob_iconv_handler - Konvertiert Zeichensatzkodierung als Ausgabepuffer-Handler (output buffer handler)
    • ob_implicit_flush - Schaltet die implizite Ausgabe ein bzw. aus
    • ob_list_handlers - List all output handlers in use
    • ob_start - Ausgabepufferung aktivieren
    • ob_tidyhandler - ob_start callback function to repair the buffer
    • ocibindbyname - Alias von oci_bind_by_name
    • ocicancel - Alias von oci_cancel
    • ocicloselob - Alias von OCI-Lob::close
    • ocicollappend - Alias von OCICollection::append
    • ocicollassign - Alias von OCICollection::assign
    • ocicollassignelem - Alias von OCICollection::assignElem
    • OCICollection::append - Hängt ein Element an eine Sammlung
    • OCICollection::assign - Weist einer Sammlung einen Wert aus einer anderen Sammlung zu
    • OCICollection::assignElem - Weist einem Element einer Sammlung einen Wert zu
    • OCICollection::free - Gibt die mit einem Sammelobjekt verknüpften Ressourcen frei
    • OCICollection::getElem - Liefert den Wert eines Elements
    • OCICollection::max - Liefert die maximale Anzahl der Elemente in einer Sammlung
    • OCICollection::size - Liefert die Größe der Sammlung
    • OCICollection::trim - Entfernt Elemente vom Ende einer Sammlung
    • ocicollgetelem - Alias von OCICollection::getElem
    • ocicollmax - Alias von OCICollection::max
    • ocicollsize - Alias von OCICollection::size
    • ocicolltrim - Alias von OCICollection::trim
    • ocicolumnisnull - Alias von oci_field_is_null
    • ocicolumnname - Alias von oci_field_name
    • ocicolumnprecision - Alias von oci_field_precision
    • ocicolumnscale - Alias von oci_field_scale
    • ocicolumnsize - Alias von oci_field_size
    • ocicolumntype - Alias von oci_field_type
    • ocicolumntyperaw - Alias von oci_field_type_raw
    • ocicommit - Alias von oci_commit
    • ocidefinebyname - Alias von oci_define_by_name
    • ocierror - Alias von oci_error
    • ociexecute - Alias von oci_execute
    • ocifetch - Alias von oci_fetch
    • ocifetchinto - Veraltete Variante von oci_fetch_array, oci_fetch_object, oci_fetch_assoc und oci_fetch_row
    • ocifetchstatement - Alias von oci_fetch_all
    • ocifreecollection - Alias von OCICollection::free
    • ocifreecursor - Alias von oci_free_statement
    • ocifreedesc - Alias von OCI-Lob::free
    • ocifreestatement - Alias von oci_free_statement
    • ociinternaldebug - Alias von oci_internal_debug
    • ociloadlob - Alias von OCI-Lob::load
    • OCILob::append - Appends data from the large object to another large object
    • OCILob::close - Closes LOB descriptor
    • OCILob::eof - Tests for end-of-file on a large object's descriptor
    • OCILob::erase - Erases a specified portion of the internal LOB data
    • OCILob::export - Exports LOB's contents to a file
    • OCILob::flush - Flushes/writes buffer of the LOB to the server
    • OCILob::free - Frees resources associated with the LOB descriptor
    • OCILob::getBuffering - Returns current state of buffering for the large object
    • OCILob::import - Imports file data to the LOB
    • OCILob::load - Returns large object's contents
    • OCILob::read - Reads part of the large object
    • OCILob::rewind - Moves the internal pointer to the beginning of the large object
    • OCILob::save - Saves data to the large object
    • OCILob::saveFile - Alias von OCILob::import
    • OCILob::seek - Sets the internal pointer of the large object
    • OCILob::setBuffering - Changes current state of buffering for the large object
    • OCILob::size - Returns size of large object
    • OCILob::tell - Returns the current position of internal pointer of large object
    • OCILob::truncate - Truncates large object
    • OCILob::write - Writes data to the large object
    • OCILob::writeTemporary - Writes a temporary large object
    • OCILob::writeToFile - Alias von OCILob::export
    • ocilogoff - Alias von oci_close
    • ocilogon - Alias von oci_connect
    • ocinewcollection - Alias von oci_new_collection
    • ocinewcursor - Alias von oci_new_cursor
    • ocinewdescriptor - Alias von oci_new_descriptor
    • ocinlogon - Alias von oci_new_connect
    • ocinumcols - Alias von oci_num_fields
    • ociparse - Alias von oci_parse
    • ociplogon - Alias von oci_pconnect
    • ociresult - Alias von oci_result
    • ocirollback - Alias von oci_rollback
    • ocirowcount - Alias von oci_num_rows
    • ocisavelob - Alias von OCI-Lob::save
    • ocisavelobfile - Alias von OCI-Lob::import
    • ociserverversion - Alias von oci_server_version
    • ocisetprefetch - Alias von oci_set_prefetch
    • ocistatementtype - Alias von oci_statement_type
    • ociwritelobtofile - Alias von OCI-Lob::export
    • ociwritetemporarylob - Alias von OCI-Lob::writeTemporary
    • oci_bind_array_by_name - Bindet ein PHP-Array an einen Oracle-PL/SQL-Arrayparameter
    • oci_bind_by_name - Binds a PHP variable to an Oracle placeholder
    • oci_cancel - Bricht das Lesen eines Zeigers ab
    • oci_client_version - Returns the Oracle client library version
    • oci_close - Schließt eine Oracle-Verbindung
    • oci_commit - Commits the outstanding database transaction
    • oci_connect - Connect to an Oracle database
    • oci_define_by_name - Associates a PHP variable with a column for query fetches
    • oci_error - Liefert den letzten Fehler
    • oci_execute - Executes a statement
    • oci_fetch - Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab
    • oci_fetch_all - Ruft mehrere Zeilen einer Abfrage in ein zweidimensionales Array ab
    • oci_fetch_array - Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array
    • oci_fetch_assoc - Liefert die nächste Zeile einer Abfrage als assoziatives Array
    • oci_fetch_object - Liefert die nächste Zeile einer Abfrage als Objekt
    • oci_fetch_row - Liefert die nächste Zeile einer Abfrage als numerisches Array
    • oci_field_is_null - Checks if a field in the currently fetched row is null
    • oci_field_name - Returns the name of a field from the statement
    • oci_field_precision - Tell the precision of a field
    • oci_field_scale - Tell the scale of the field
    • oci_field_size - Returns field's size
    • oci_field_type - Returns a field's data type name
    • oci_field_type_raw - Tell the raw Oracle data type of the field
    • oci_free_descriptor - Frees a descriptor
    • oci_free_statement - Gibt alle verknüpften Ressourcen eines Statements oder Zeigers frei.
    • oci_get_implicit_resultset - Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets
    • oci_internal_debug - Enables or disables internal debug output
    • oci_lob_copy - Copies large object
    • oci_lob_is_equal - Compares two LOB/FILE locators for equality
    • oci_new_collection - Allocates new collection object
    • oci_new_connect - Connect to the Oracle server using a unique connection
    • oci_new_cursor - Allocates and returns a new cursor (statement handle)
    • oci_new_descriptor - Initializes a new empty LOB or FILE descriptor
    • oci_num_fields - Returns the number of result columns in a statement
    • oci_num_rows - Returns number of rows affected during statement execution
    • oci_parse - Prepares an Oracle statement for execution
    • oci_password_change - Changes password of Oracle's user
    • oci_pconnect - Connect to an Oracle database using a persistent connection
    • oci_register_taf_callback - Register a user-defined callback function for Oracle Database TAF
    • oci_result - Returns field's value from the fetched row
    • oci_rollback - Rolls back the outstanding database transaction
    • oci_server_version - Returns the Oracle Database version
    • oci_set_action - Sets the action name
    • oci_set_call_timeout - Sets a millisecond timeout for database calls
    • oci_set_client_identifier - Sets the client identifier
    • oci_set_client_info - Sets the client information
    • oci_set_db_operation - Sets the database operation
    • oci_set_edition - Sets the database edition
    • oci_set_module_name - Sets the module name
    • oci_set_prefetch - Sets number of rows to be prefetched by queries
    • oci_statement_type - Returns the type of a statement
    • oci_unregister_taf_callback - Unregister a user-defined callback function for Oracle Database TAF
    • octdec - Wandelt von oktal zu dezimal um
    • odbc_autocommit - Ändert das Autocommit-Verhalten
    • odbc_binmode - Behandlung von Binärdaten
    • odbc_close - Schließ eine ODBC-Verbindung
    • odbc_close_all - Schließt alle ODBC-Verbindungen
    • odbc_columnprivileges - Liste Spalten und damit verbundene Rechte für die angegeben Tabelle auf
    • odbc_columns - Lists the column names in specified tables
    • odbc_commit - Schließt eine ODBC-Transaktion ab
    • odbc_connect - Verbindet mit einer Datenquelle
    • odbc_cursor - Liefert den Cursornamen
    • odbc_data_source - Returns information about available DSNs
    • odbc_do - Alias von odbc_exec
    • odbc_error - Get the last error code
    • odbc_errormsg - Get the last error message
    • odbc_exec - Führt einen SQL-Befehl direkt aus
    • odbc_execute - Führt einen vorbereiteten SQL-Befehl aus
    • odbc_fetch_array - Fetch a result row as an associative array
    • odbc_fetch_into - Liest eine Ergebniszeile in ein Array
    • odbc_fetch_object - Fetch a result row as an object
    • odbc_fetch_row - Liefert eine Zeile zurück
    • odbc_field_len - Bestimmt die Länge (Präzision) eines Feldes
    • odbc_field_name - Liefert den Spaltennamen
    • odbc_field_num - Liefert die Spaltennummer
    • odbc_field_precision - Alias von odbc_field_len
    • odbc_field_scale - Get the scale of a field
    • odbc_field_type - Datentyp eines Feldes
    • odbc_foreignkeys - Retrieves a list of foreign keys
    • odbc_free_result - Gibt den durch ein Abfrageergebnis belegten Speicher wieder frei
    • odbc_gettypeinfo - Retrieves information about data types supported by the data source
    • odbc_longreadlen - Steuert die Behandlung von LONG-Spalten
    • odbc_next_result - Checks if multiple results are available
    • odbc_num_fields - Liefert die Anzahl der Ergebnisspalten
    • odbc_num_rows - Liefert die Zeilenzahl des Abfrageergebnisses
    • odbc_pconnect - Öffnet eine persistente Datenbankverbindung
    • odbc_prepare - Bereitet eine Anweisung für die Ausführung vor
    • odbc_primarykeys - Gets the primary keys for a table
    • odbc_procedurecolumns - Retrieve information about parameters to procedures
    • odbc_procedures - Get the list of procedures stored in a specific data source
    • odbc_result - Liefert Ergebnisdaten
    • odbc_result_all - Gibt das aktuelle Abfrageergebnis als HTML-Tabelle aus
    • odbc_rollback - Bricht eine Transaktion ab
    • odbc_setoption - ODBC-Einstellungen anpassen
    • odbc_specialcolumns - Retrieves special columns
    • odbc_statistics - Retrieve statistics about a table
    • odbc_tableprivileges - Lists tables and the privileges associated with each table
    • odbc_tables - Get the list of table names stored in a specific data source
    • ogg:// - Audio streams
    • opcache_compile_file - Compiles and caches a PHP script without executing it
    • opcache_get_configuration - Get configuration information about the cache
    • opcache_get_status - Liefert den Status des OPcode-Caches
    • opcache_invalidate - Invalidates a cached script
    • opcache_is_script_cached - Tells whether a script is cached in OPCache
    • opcache_reset - Resettet den Inhalt des OPcode Caches
    • openal_buffer_create - Generate OpenAL buffer
    • openal_buffer_data - Load a buffer with data
    • openal_buffer_destroy - Destroys an OpenAL buffer
    • openal_buffer_get - Retrieve an OpenAL buffer property
    • openal_buffer_loadwav - Load a .wav file into a buffer
    • openal_context_create - Create an audio processing context
    • openal_context_current - Make the specified context current
    • openal_context_destroy - Destroys a context
    • openal_context_process - Process the specified context
    • openal_context_suspend - Suspend the specified context
    • openal_device_close - Close an OpenAL device
    • openal_device_open - Initialize the OpenAL audio layer
    • openal_listener_get - Retrieve a listener property
    • openal_listener_set - Set a listener property
    • openal_source_create - Generate a source resource
    • openal_source_destroy - Destroy a source resource
    • openal_source_get - Retrieve an OpenAL source property
    • openal_source_pause - Pause the source
    • openal_source_play - Start playing the source
    • openal_source_rewind - Rewind the source
    • openal_source_set - Set source property
    • openal_source_stop - Stop playing the source
    • openal_stream - Begin streaming on a source
    • opendir - Öffnen eines Verzeichnis-Handles
    • openlog - Stellt eine Verbindung zum Log-Dienst des Systems her
    • openssl_cipher_iv_length - Gets the cipher iv length
    • openssl_cms_decrypt - Decrypt a CMS message
    • openssl_cms_encrypt - Encrypt a CMS message
    • openssl_cms_read - Export the CMS file to an array of PEM certificates
    • openssl_cms_sign - Sign a file
    • openssl_cms_verify - Verify a CMS signature
    • openssl_csr_export - Exportiert einen CSR als Zeichenkette
    • openssl_csr_export_to_file - Exportiert einen CSR in eine Datei
    • openssl_csr_get_public_key - Liefert den öffentlichen Schlüssel eines CSR
    • openssl_csr_get_subject - Liefert das Subjekt eines CSR
    • openssl_csr_new - Erzeugt einen CSR
    • openssl_csr_sign - Signiert einen CSR mit einem anderen Zertifikat (oder sich selbst) und generiert ein Zertifikat
    • openssl_decrypt - Decrypts data
    • openssl_dh_compute_key - Computes shared secret for public value of remote DH public key and local DH key
    • openssl_digest - Computes a digest
    • openssl_encrypt - Verschlüsselt Daten
    • openssl_error_string - Liefert eine OpenSSL-Fehlermeldung
    • openssl_free_key - Gibt eine Schlüssel-Ressource frei
    • openssl_get_cert_locations - Retrieve the available certificate locations
    • openssl_get_cipher_methods - Gets available cipher methods
    • openssl_get_curve_names - Gets list of available curve names for ECC
    • openssl_get_md_methods - Gets available digest methods
    • openssl_get_privatekey - Alias von openssl_pkey_get_private
    • openssl_get_publickey - Alias von openssl_pkey_get_public
    • openssl_open - Öffnet versiegelte Daten
    • openssl_pbkdf2 - Generates a PKCS5 v2 PBKDF2 string
    • openssl_pkcs7_decrypt - Entschlüsselt eine S/MIME-verschlüsselte Nachricht
    • openssl_pkcs7_encrypt - Verschlüsselt eine S/MIME-Nachricht
    • openssl_pkcs7_read - Export the PKCS7 file to an array of PEM certificates
    • openssl_pkcs7_sign - Signiert eine S/MIME-Nachricht
    • openssl_pkcs7_verify - Überprüft die Signatur einer mit S/MIME signierten Nachricht
    • openssl_pkcs12_export - Exportiert eine PKCS#12-kompatible Zertifikats-Datei in eine Variable
    • openssl_pkcs12_export_to_file - Exportiert in eine PKCS#12-kompatible Zertifikats-Datei
    • openssl_pkcs12_read - Parst eine PKCS#12-Zertifikats-Datei in ein Array
    • openssl_pkey_derive - Computes shared secret for public value of remote and local DH or ECDH key
    • openssl_pkey_export - Speichert ein exportierbares Format eines Schlüssels in einer Zeichenkette
    • openssl_pkey_export_to_file - Speichert einen Schlüssel in einem exportierbaren Format in einer Datei
    • openssl_pkey_free - Gibt einen privaten Schlüssel frei
    • openssl_pkey_get_details - Liefert ein Array mit Schlüssel-Details
    • openssl_pkey_get_private - Liefert einen privaten Schlüssel
    • openssl_pkey_get_public - Extrahiert einen öffentlichen Schlüssel aus einem Zertifikat und bereitet diesen zur Verwendung vor
    • openssl_pkey_new - Erzeugt einen neuen privaten Schlüssel
    • openssl_private_decrypt - Entschlüsselt Daten mit einem privaten Schlüssel
    • openssl_private_encrypt - Verschlüsselt Daten mit einem privaten Schlüssel
    • openssl_public_decrypt - Entschlüsselt Daten mit einem öffentlichen Schlüssel
    • openssl_public_encrypt - Verschlüsselt Daten mit einem öffentlichen Schlüssel
    • openssl_random_pseudo_bytes - Generate a pseudo-random string of bytes
    • openssl_seal - Versiegelt (verschlüsselt) Daten
    • openssl_sign - Erzeugt eine Signatur
    • openssl_spki_export - Exports a valid PEM formatted public key signed public key and challenge
    • openssl_spki_export_challenge - Exports the challenge associated with a signed public key and challenge
    • openssl_spki_new - Generate a new signed public key and challenge
    • openssl_spki_verify - Verifies a signed public key and challenge
    • openssl_verify - Überprüft eine Signatur
    • openssl_x509_checkpurpose - Überprüft, ob ein Zertifikat für einen bestimmten Zweck verwendet werden kann
    • openssl_x509_check_private_key - Überprüft, ob ein privater Schlüssel zu einem Zertifikat passt
    • openssl_x509_export - Exportiert ein Zertifikat als Zeichenkette
    • openssl_x509_export_to_file - Exportiert ein Zertifikat in eine Datei
    • openssl_x509_fingerprint - Calculates the fingerprint, or digest, of a given X.509 certificate
    • openssl_x509_free - Gibt eine Zertifikats-Ressource frei
    • openssl_x509_parse - Parst ein X.509-Zertifikat und liefert die Informationen als Array
    • openssl_x509_read - Parst ein X.509-Zertitifikat und gibt ein Objekt dafür zurück
    • openssl_x509_verify - Verifies digital signature of x509 certificate against a public key
    • ord - Konvertiert das erste Byte einer Zeichenkette in einen Wert zwischen 0 und 255
    • OuterIterator::getInnerIterator - Returns the inner iterator for the current entry
    • output_add_rewrite_var - Setzt URL-Rewrite-Variablen
    • output_reset_rewrite_vars - Reset URL rewriter values
  • p
    • pack - Packt Daten in eine binäre Zeichenkette
    • parallel\bootstrap - Bootstrapping
    • parallel\Channel::close - Closing
    • parallel\Channel::make - Access
    • parallel\Channel::open - Access
    • parallel\Channel::recv - Sharing
    • parallel\Channel::send - Sharing
    • parallel\Channel::__construct - Channel Construction
    • parallel\Events::addChannel - Targets
    • parallel\Events::addFuture - Targets
    • parallel\Events::poll - Polling
    • parallel\Events::remove - Targets
    • parallel\Events::setBlocking - Behaviour
    • parallel\Events::setInput - Input
    • parallel\Events::setTimeout - Behaviour
    • parallel\Events\Input::add - Inputs
    • parallel\Events\Input::clear - Inputs
    • parallel\Events\Input::remove - Inputs
    • parallel\Future::cancel - Cancellation
    • parallel\Future::cancelled - State Detection
    • parallel\Future::done - State Detection
    • parallel\Future::value - Resolution
    • parallel\run - Execution
    • parallel\Runtime::close - Runtime Graceful Join
    • parallel\Runtime::kill - Runtime Join
    • parallel\Runtime::run - Execution
    • parallel\Runtime::__construct - Runtime Construction
    • parallel\Sync::get - Access
    • parallel\Sync::notify - Synchronization
    • parallel\Sync::set - Access
    • parallel\Sync::wait - Synchronization
    • parallel\Sync::__construct - Construction
    • parallel\Sync::__invoke - Synchronization
    • ParentIterator::accept - Determines acceptability
    • ParentIterator::getChildren - Return the inner iterator's children contained in a ParentIterator
    • ParentIterator::hasChildren - Check whether the inner iterator's current element has children
    • ParentIterator::next - Move the iterator forward
    • ParentIterator::rewind - Rewind the iterator
    • ParentIterator::__construct - Constructs a ParentIterator
    • Parle\Lexer::advance - Process next lexer rule
    • Parle\Lexer::build - Finalize the lexer rule set
    • Parle\Lexer::callout - Define token callback
    • Parle\Lexer::consume - Pass the data for processing
    • Parle\Lexer::dump - Dump the state machine
    • Parle\Lexer::getToken - Retrieve the current token
    • Parle\Lexer::insertMacro - Insert regex macro
    • Parle\Lexer::push - Add a lexer rule
    • Parle\Lexer::reset - Reset lexer
    • Parle\Parser::advance - Process next parser rule
    • Parle\Parser::build - Finalize the grammar rules
    • Parle\Parser::consume - Consume the data for processing
    • Parle\Parser::dump - Dump the grammar
    • Parle\Parser::errorInfo - Retrieve the error information
    • Parle\Parser::left - Declare a token with left-associativity
    • Parle\Parser::nonassoc - Declare a token with no associativity
    • Parle\Parser::precedence - Declare a precedence rule
    • Parle\Parser::push - Add a grammar rule
    • Parle\Parser::reset - Reset parser state
    • Parle\Parser::right - Declare a token with right-associativity
    • Parle\Parser::sigil - Retrieve a matching part of a rule
    • Parle\Parser::token - Declare a token
    • Parle\Parser::tokenId - Get token id
    • Parle\Parser::trace - Trace the parser operation
    • Parle\Parser::validate - Validate input
    • Parle\RLexer::advance - Process next lexer rule
    • Parle\RLexer::build - Finalize the lexer rule set
    • Parle\RLexer::callout - Define token callback
    • Parle\RLexer::consume - Pass the data for processing
    • Parle\RLexer::dump - Dump the state machine
    • Parle\RLexer::getToken - Retrieve the current token
    • Parle\RLexer::insertMacro - Insert regex macro
    • Parle\RLexer::push - Add a lexer rule
    • Parle\RLexer::pushState - Push a new start state
    • Parle\RLexer::reset - Reset lexer
    • Parle\RParser::advance - Process next parser rule
    • Parle\RParser::build - Finalize the grammar rules
    • Parle\RParser::consume - Consume the data for processing
    • Parle\RParser::dump - Dump the grammar
    • Parle\RParser::errorInfo - Retrieve the error information
    • Parle\RParser::left - Declare a token with left-associativity
    • Parle\RParser::nonassoc - Declare a token with no associativity
    • Parle\RParser::precedence - Declare a precedence rule
    • Parle\RParser::push - Add a grammar rule
    • Parle\RParser::reset - Reset parser state
    • Parle\RParser::right - Declare a token with right-associativity
    • Parle\RParser::sigil - Retrieve a matching part of a rule
    • Parle\RParser::token - Declare a token
    • Parle\RParser::tokenId - Get token id
    • Parle\RParser::trace - Trace the parser operation
    • Parle\RParser::validate - Validate input
    • Parle\Stack::pop - Pop an item from the stack
    • Parle\Stack::push - Push an item into the stack
    • parse_ini_file - Parst eine Konfigurationsdatei
    • parse_ini_string - Analysiert einen Konfigurations-String
    • parse_str - Überträgt einen String in Variablen
    • parse_url - Analysiert eine URL und gibt ihre Bestandteile zurück
    • passthru - Führt ein externes Programm aus und zeigt dessen Ausgabe an
    • password_algos - Get available password hashing algorithm IDs
    • password_get_info - Gibt Informationen über einen Hash zurück
    • password_hash - Erstellt einen Passwort-Hash
    • password_needs_rehash - Überprüft, ob der übergebene Hash mit den übergebenen Optionen übereinstimmt
    • password_verify - Überprüft, ob ein Passwort und ein Hash zusammenpassen
    • pathinfo - Liefert Informationen über einen Dateipfad
    • pclose - Schließt einen Prozess-Dateizeiger
    • pcntl_alarm - Setzt einen Zeitschalter für die Auslieferung eines Signals
    • pcntl_async_signals - Enable/disable asynchronous signal handling or return the old setting
    • pcntl_errno - Alias von pcntl_get_last_error
    • pcntl_exec - Führt ein angegebenes Programm im aktuellen Prozessraum aus
    • pcntl_fork - Verzweigt den laufenden Prozess
    • pcntl_getpriority - Liest die Priorität eines beliebigen Prozesses
    • pcntl_get_last_error - Retrieve the error number set by the last pcntl function which failed
    • pcntl_setpriority - Ändert die Priorität irgendeines Prozesses
    • pcntl_signal - Richtet eine Signalverarbeitung ein
    • pcntl_signal_dispatch - Calls signal handlers for pending signals
    • pcntl_signal_get_handler - Get the current handler for specified signal
    • pcntl_sigprocmask - Sets and retrieves blocked signals
    • pcntl_sigtimedwait - Waits for signals, with a timeout
    • pcntl_sigwaitinfo - Waits for signals
    • pcntl_strerror - Retrieve the system error message associated with the given errno
    • pcntl_wait - Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
    • pcntl_waitpid - Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
    • pcntl_wexitstatus - Gibt den Statuscode eines beendeten Kindes zurück
    • pcntl_wifexited - Prüft ob der Statuscode ein erfolgreiches Beenden darstellt
    • pcntl_wifsignaled - Prüft ob der Statuscode eine Terminierung wegen eines Signals angibt
    • pcntl_wifstopped - Prüft ob der Kindprozess gerade gestoppt ist
    • pcntl_wstopsig - Gibt das Signal zurück, welches das Anhalten des Kindes verursachte
    • pcntl_wtermsig - Gibt das Signal zurück, welches das Beenden des Kindes verursachte
    • PDO::beginTransaction - Initiates a transaction
    • PDO::commit - Commits a transaction
    • PDO::cubrid_schema - Get the requested schema information
    • PDO::errorCode - Fetch the SQLSTATE associated with the last operation on the database handle
    • PDO::errorInfo - Fetch extended error information associated with the last operation on the database handle
    • PDO::exec - Führt ein SQL Statement aus und gibt die Zahl der betroffenen Zeilen zurück
    • PDO::getAttribute - Retrieve a database connection attribute
    • PDO::getAvailableDrivers - Return an array of available PDO drivers
    • PDO::inTransaction - Checks if inside a transaction
    • PDO::lastInsertId - Returns the ID of the last inserted row or sequence value
    • PDO::pgsqlCopyFromArray - Copy data from PHP array into table
    • PDO::pgsqlCopyFromFile - Copy data from file into table
    • PDO::pgsqlCopyToArray - Copy data from database table into PHP array
    • PDO::pgsqlCopyToFile - Copy data from table into file
    • PDO::pgsqlGetNotify - Get asynchronous notification
    • PDO::pgsqlGetPid - Get the server PID
    • PDO::pgsqlLOBCreate - Creates a new large object
    • PDO::pgsqlLOBOpen - Opens an existing large object stream
    • PDO::pgsqlLOBUnlink - Deletes the large object
    • PDO::prepare - Prepares a statement for execution and returns a statement object
    • PDO::query - Executes an SQL statement, returning a result set as a PDOStatement object
    • PDO::quote - Quotes a string for use in a query
    • PDO::rollBack - Rolls back a transaction
    • PDO::setAttribute - Set an attribute
    • PDO::sqliteCreateAggregate - Registriert eine benutzerdefinierte Aggregationsfunktion zur Verwendung in SQL-Annweisungen
    • PDO::sqliteCreateCollation - Registers a User Defined Function for use as a collating function in SQL statements
    • PDO::sqliteCreateFunction - Registriert eine benutzerdefinierte Funktion (UDF) zur Nutzung in SQL-Anweisungen
    • PDO::__construct - Creates a PDO instance representing a connection to a database
    • PDOStatement::bindColumn - Bind a column to a PHP variable
    • PDOStatement::bindParam - Binds a parameter to the specified variable name
    • PDOStatement::bindValue - Binds a value to a parameter
    • PDOStatement::closeCursor - Closes the cursor, enabling the statement to be executed again
    • PDOStatement::columnCount - Returns the number of columns in the result set
    • PDOStatement::debugDumpParams - Dump an SQL prepared command
    • PDOStatement::errorCode - Fetch the SQLSTATE associated with the last operation on the statement handle
    • PDOStatement::errorInfo - Fetch extended error information associated with the last operation on the statement handle
    • PDOStatement::execute - Führt ein Prepared Statement aus
    • PDOStatement::fetch - Fetches the next row from a result set
    • PDOStatement::fetchAll - Returns an array containing all of the result set rows
    • PDOStatement::fetchColumn - Returns a single column from the next row of a result set
    • PDOStatement::fetchObject - Fetches the next row and returns it as an object
    • PDOStatement::getAttribute - Retrieve a statement attribute
    • PDOStatement::getColumnMeta - Returns metadata for a column in a result set
    • PDOStatement::nextRowset - Advances to the next rowset in a multi-rowset statement handle
    • PDOStatement::rowCount - Returns the number of rows affected by the last SQL statement
    • PDOStatement::setAttribute - Set a statement attribute
    • PDOStatement::setFetchMode - Set the default fetch mode for this statement
    • PDO_CUBRID DSN - Connecting to CUBRID databases
    • PDO_DBLIB DSN - Connecting to Microsoft SQL Server and Sybase databases
    • PDO_FIREBIRD DSN - Connecting to Firebird databases
    • PDO_IBM DSN - Connecting to IBM databases
    • PDO_INFORMIX DSN - Connecting to Informix databases
    • PDO_MYSQL DSN - Connecting to MySQL databases
    • PDO_OCI DSN - Connecting to Oracle databases
    • PDO_ODBC DSN - Connecting to ODBC or DB2 databases
    • PDO_PGSQL DSN - Connecting to PostgreSQL databases
    • PDO_SQLITE DSN - Verbindungen zu SQLite-Datenbanken aufbauen
    • PDO_SQLSRV DSN - Connecting to MS SQL Server and SQL Azure databases
    • pfsockopen - Öffnet eine persistente Verbindung zum Internet oder zu einem Unix-Domainsocket
    • pg_affected_rows - Gibt die Anzahl betroffener Datensätze (Tupel) zurück
    • pg_cancel_query - Löscht eine asynchrone Abfrage
    • pg_client_encoding - Liefert die Kodierung des Clients
    • pg_close - Schließt eine PostgreSQL-Verbindung
    • pg_connect - Öffnet eine PostgreSQL-Verbindung
    • pg_connection_busy - Gibt den Status der Verbindung zurück (busy/not busy)
    • pg_connection_reset - Setzt die Verbindung zurück und verbindet neu
    • pg_connection_status - Gibt den Verbindungsstatus zurück
    • pg_connect_poll - Poll the status of an in-progress asynchronous PostgreSQL connection attempt
    • pg_consume_input - Reads input on the connection
    • pg_convert - Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form
    • pg_copy_from - Fügt Datensätze aus einem Array in eine Tabelle ein
    • pg_copy_to - Kopiert eine Tabelle in ein Array
    • pg_dbname - Liefert den Namen der Datenbank
    • pg_delete - Löscht Datensätze
    • pg_end_copy - Synchronisation mit dem PostgreSQL-Server
    • pg_escape_bytea - Maskiert Zeichenketten zum Einfügen in ein Feld vom Typ bytea
    • pg_escape_identifier - Escape a identifier for insertion into a text field
    • pg_escape_literal - Escape a literal for insertion into a text field
    • pg_escape_string - Maskiert einen String für Abfragen
    • pg_execute - Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis
    • pg_fetch_all - Liefert alle Zeilen eines Abfrageergebnisses als Array
    • pg_fetch_all_columns - Gibt alle Werte einer bestimmten Spalte eines Abfrageergebnisses in einem Array zurück
    • pg_fetch_array - Liefert eine Zeile als Array
    • pg_fetch_assoc - Liefert eine Zeile als assoziatives Array
    • pg_fetch_object - Liefert einen Datensatz als Objekt
    • pg_fetch_result - Liefert Werte aus einer Ergebnismenge
    • pg_fetch_row - Liefert einen Datensatz als numerisches Array
    • pg_field_is_null - Prüft, ob ein Feld einen SQL-NULL-Wert enthält
    • pg_field_name - Liefert den Namen eines Feldes
    • pg_field_num - Gibt die Feldnummer des angegebenen Feldes zurück
    • pg_field_prtlen - Liefert die Länge des Feldes
    • pg_field_size - Liefert die interne Größe des belegten Speichers für ein Feld
    • pg_field_table - Gibt zu einem Feldnamen den Namen der Tabelle oder deren oid zurück, in der das Feld definiert ist
    • pg_field_type - Liefert den Datentyp eines Feldes
    • pg_field_type_oid - Liefert die ID des PostgreSQL-Datentyps (OID) eines Feldes
    • pg_flush - Flush outbound query data on the connection
    • pg_free_result - Gibt den durch Ergebnisse belegten Speicher frei
    • pg_get_notify - Liefert eine SQL-NOTIFY-Nachricht
    • pg_get_pid - Prüft die Datenbankverbindung
    • pg_get_result - Liefert asynchrone Abfrageergebnisse
    • pg_host - Liefert den Namen des Host, zu dem verbunden wurde
    • pg_insert - Überträgt Werte aus einem Array in eine Tabelle
    • pg_last_error - Liefert die letzte Fehlermeldung einer Verbindung
    • pg_last_notice - Liefert die letzte NOTICE-Meldung des PostgreSQL-Servers
    • pg_last_oid - Liefert den Objektbezeichner (OID) des zuletzt eingefügten Datensatzes
    • pg_lo_close - Schließt ein Large Object
    • pg_lo_create - Erzeugt ein Large Object
    • pg_lo_export - Exportiert ein Large Object in eine Datei
    • pg_lo_import - Importiert ein Large Object aus einer Datei
    • pg_lo_open - Öffnet ein Large Object
    • pg_lo_read - Liest ein Large Object
    • pg_lo_read_all - Liest ein ganzes Large Object und reicht es direkt an den Browser weiter
    • pg_lo_seek - Setzt die Lese- oder Schreibposition in einem Large Object
    • pg_lo_tell - Gibt die aktuelle Lese- oder Schreibposition in einem Large Object zurück
    • pg_lo_truncate - Truncates a large object
    • pg_lo_unlink - Löscht ein Large Object
    • pg_lo_write - Schreibt in ein Large Object
    • pg_meta_data - Liefert die Metadaten einer Tabelle als Array
    • pg_num_fields - Gibt die Anzahl der Felder in einem Abfrageergebnis zurück
    • pg_num_rows - Gibt die Anzahl der Zeilen in einem Abfrageergebnis zurück
    • pg_options - Liefert die Verbindungsoptionen der aktuellen Verbindung
    • pg_parameter_status - Liefert den aktuellen Wert eines Parameters des Servers
    • pg_pconnect - Öffnet eine persistente PostgreSQL-Verbindung
    • pg_ping - Prüft die Datenbankverbindung
    • pg_port - Liefert die Portnummer, über die die Verbindung aufgebaut wurde
    • pg_prepare - Sendet eine Aufforderung an den Server, eine vorbereitete Anfrage mit den übergebenen Parametern zu erzeugen und wartet auf ihre Beendigung
    • pg_put_line - Sendet eine NULL-terminierte Zeichenkette zum PostgreSQL-Server
    • pg_query - Führt eine Abfrage aus
    • pg_query_params - Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden
    • pg_result_error - Liefert die mit der Ergebniskennung verknüpfte Fehlermeldung
    • pg_result_error_field - Liefert den Inhalt eines bestimmtes Feldes zu einer Fehlermeldung
    • pg_result_seek - Setzt den internen Datensatzzeiger auf die angegebene Position in einem Abfrageergebnis
    • pg_result_status - Gibt den Status eines Abfrageergebnisses zurück
    • pg_select - Wählt Datensätze aus
    • pg_send_execute - Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern auszuführen, ohne auf die Ergebnisse zu warten
    • pg_send_prepare - Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern zu erzeugen, ohne auf ihre Beendigung zu warten
    • pg_send_query - Sendet eine asynchrone Abfrage
    • pg_send_query_params - Sendet ein Kommando und separate Parameter zum Server, ohne auf die Rückgabe der Ergebnisse zu warten
    • pg_set_client_encoding - Setzt die Kodierung des Clients
    • pg_set_error_verbosity - Bestimmt den Detaillierungsgrad von Fehlermeldungen, die von pg_last_error und pg_result_error zurückgegeben werden
    • pg_socket - Get a read only handle to the socket underlying a PostgreSQL connection
    • pg_trace - Ermöglicht die Ablaufverfolgung einer Verbindung
    • pg_transaction_status - Gibt den aktuellen Transaktionsstatus des Servers zurück
    • pg_tty - Liefert den TTY-Namen für die Verbindung
    • pg_unescape_bytea - Entfernt Maskierungen für den Typ bytea
    • pg_untrace - Beendet die Ablaufverfolgung einer PostgreSQL-Verbindung
    • pg_update - Aktualisiert eine Tabelle
    • pg_version - Liefert ein Array, das die Versionen von Client, Protokoll und Server enthält (falls verfügbar).
    • phar:// - PHP Archive
    • Phar::addEmptyDir - Add an empty directory to the phar archive
    • Phar::addFile - Add a file from the filesystem to the phar archive
    • Phar::addFromString - Add a file from a string to the phar archive
    • Phar::apiVersion - Returns the api version
    • Phar::buildFromDirectory - Construct a phar archive from the files within a directory
    • Phar::buildFromIterator - Construct a phar archive from an iterator
    • Phar::canCompress - Returns whether phar extension supports compression using either zlib or bzip2
    • Phar::canWrite - Returns whether phar extension supports writing and creating phars
    • Phar::compress - Compresses the entire Phar archive using Gzip or Bzip2 compression
    • Phar::compressFiles - Compresses all files in the current Phar archive
    • Phar::convertToData - Convert a phar archive to a non-executable tar or zip file
    • Phar::convertToExecutable - Convert a phar archive to another executable phar archive file format
    • Phar::copy - Copy a file internal to the phar archive to another new file within the phar
    • Phar::count - Returns the number of entries (files) in the Phar archive
    • Phar::createDefaultStub - Create a phar-file format specific stub
    • Phar::decompress - Decompresses the entire Phar archive
    • Phar::decompressFiles - Decompresses all files in the current Phar archive
    • Phar::delete - Delete a file within a phar archive
    • Phar::delMetadata - Deletes the global metadata of the phar
    • Phar::extractTo - Extract the contents of a phar archive to a directory
    • Phar::getAlias - Get the alias for Phar
    • Phar::getMetadata - Returns phar archive meta-data
    • Phar::getModified - Return whether phar was modified
    • Phar::getPath - Get the real path to the Phar archive on disk
    • Phar::getSignature - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
    • Phar::getStub - Return the PHP loader or bootstrap stub of a Phar archive
    • Phar::getSupportedCompression - Return array of supported compression algorithms
    • Phar::getSupportedSignatures - Return array of supported signature types
    • Phar::getVersion - Return version info of Phar archive
    • Phar::hasMetadata - Returns whether phar has global meta-data
    • Phar::interceptFileFuncs - Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
    • Phar::isBuffering - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
    • Phar::isCompressed - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
    • Phar::isFileFormat - Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
    • Phar::isValidPharFilename - Returns whether the given filename is a valid phar filename
    • Phar::isWritable - Returns true if the phar archive can be modified
    • Phar::loadPhar - Loads any phar archive with an alias
    • Phar::mapPhar - Reads the currently executed file (a phar) and registers its manifest
    • Phar::mount - Mount an external path or file to a virtual location within the phar archive
    • Phar::mungServer - Defines a list of up to 4 $_SERVER variables that should be modified for execution
    • Phar::offsetExists - Determines whether a file exists in the phar
    • Phar::offsetGet - Gets a PharFileInfo object for a specific file
    • Phar::offsetSet - Set the contents of an internal file to those of an external file
    • Phar::offsetUnset - Remove a file from a phar
    • Phar::running - Returns the full path on disk or full phar URL to the currently executing Phar archive
    • Phar::setAlias - Set the alias for the Phar archive
    • Phar::setDefaultStub - Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
    • Phar::setMetadata - Sets phar archive meta-data
    • Phar::setSignatureAlgorithm - Set the signature algorithm for a phar and apply it
    • Phar::setStub - Used to set the PHP loader or bootstrap stub of a Phar archive
    • Phar::startBuffering - Start buffering Phar write operations, do not modify the Phar object on disk
    • Phar::stopBuffering - Stop buffering write requests to the Phar archive, and save changes to disk
    • Phar::unlinkArchive - Completely remove a phar archive from disk and from memory
    • Phar::webPhar - mapPhar for web-based phars. front controller for web applications
    • Phar::__construct - Construct a Phar archive object
    • PharData::addEmptyDir - Add an empty directory to the tar/zip archive
    • PharData::addFile - Add a file from the filesystem to the tar/zip archive
    • PharData::addFromString - Add a file from the filesystem to the tar/zip archive
    • PharData::buildFromDirectory - Construct a tar/zip archive from the files within a directory
    • PharData::buildFromIterator - Construct a tar or zip archive from an iterator
    • PharData::compress - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
    • PharData::compressFiles - Compresses all files in the current tar/zip archive
    • PharData::convertToData - Convert a phar archive to a non-executable tar or zip file
    • PharData::convertToExecutable - Convert a non-executable tar/zip archive to an executable phar archive
    • PharData::copy - Copy a file internal to the phar archive to another new file within the phar
    • PharData::decompress - Decompresses the entire Phar archive
    • PharData::decompressFiles - Decompresses all files in the current zip archive
    • PharData::delete - Delete a file within a tar/zip archive
    • PharData::delMetadata - Deletes the global metadata of a zip archive
    • PharData::extractTo - Extract the contents of a tar/zip archive to a directory
    • PharData::isWritable - Returns true if the tar/zip archive can be modified
    • PharData::offsetSet - Set the contents of a file within the tar/zip to those of an external file or string
    • PharData::offsetUnset - Remove a file from a tar/zip archive
    • PharData::setAlias - Dummy function (Phar::setAlias is not valid for PharData)
    • PharData::setDefaultStub - Dummy function (Phar::setDefaultStub is not valid for PharData)
    • PharData::setMetadata - Sets phar archive meta-data
    • PharData::setSignatureAlgorithm - Set the signature algorithm for a phar and apply it
    • PharData::setStub - Dummy function (Phar::setStub is not valid for PharData)
    • PharData::__construct - Construct a non-executable tar or zip archive object
    • PharFileInfo::chmod - Sets file-specific permission bits
    • PharFileInfo::compress - Compresses the current Phar entry with either zlib or bzip2 compression
    • PharFileInfo::decompress - Decompresses the current Phar entry within the phar
    • PharFileInfo::delMetadata - Deletes the metadata of the entry
    • PharFileInfo::getCompressedSize - Returns the actual size of the file (with compression) inside the Phar archive
    • PharFileInfo::getContent - Get the complete file contents of the entry
    • PharFileInfo::getCRC32 - Returns CRC32 code or throws an exception if CRC has not been verified
    • PharFileInfo::getMetadata - Returns file-specific meta-data saved with a file
    • PharFileInfo::getPharFlags - Returns the Phar file entry flags
    • PharFileInfo::hasMetadata - Returns the metadata of the entry
    • PharFileInfo::isCompressed - Returns whether the entry is compressed
    • PharFileInfo::isCRCChecked - Returns whether file entry has had its CRC verified
    • PharFileInfo::setMetadata - Sets file-specific meta-data saved with a file
    • PharFileInfo::__construct - Construct a Phar entry object
    • Phar Kontextoptionen - Liste der Phar Kontextoptionen
    • php:// - Accessing various I/O streams
    • phpcredits - Prints out the credits for PHP
    • phpdbg_break_file - Inserts a breakpoint at a line in a file
    • phpdbg_break_function - Inserts a breakpoint at entry to a function
    • phpdbg_break_method - Inserts a breakpoint at entry to a method
    • phpdbg_break_next - Inserts a breakpoint at the next opcode
    • phpdbg_clear - Clears all breakpoints
    • phpdbg_color - Sets the color of certain elements
    • phpdbg_end_oplog - Beschreibung
    • phpdbg_exec - Attempts to set the execution context
    • phpdbg_get_executable - Beschreibung
    • phpdbg_prompt - Sets the command prompt
    • phpdbg_start_oplog - Beschreibung
    • phpinfo - Gibt Informationen zur PHP-Konfiguration aus
    • PhpToken::getTokenName - Returns the name of the token.
    • PhpToken::is - Tells whether the token is of given kind.
    • PhpToken::isIgnorable - Tells whether the token would be ignored by the PHP parser.
    • PhpToken::tokenize - Splits given source into PHP tokens, represented by PhpToken objects.
    • PhpToken::__construct - Returns a new PhpToken object
    • PhpToken::__toString - Returns the textual content of the token.
    • phpversion - Liefert die aktuelle PHP-Version
    • php_ini_loaded_file - Retrieve a path to the loaded php.ini file
    • php_ini_scanned_files - Liefert die Liste von analysierten .ini-Dateien aus einem zusätzlichen ini-Verzeichnis
    • php_sapi_name - Gibt das genutzte Interface zwischen PHP und dem Webserver zurück
    • php_strip_whitespace - Return source with stripped comments and whitespace
    • php_uname - Returns information about the operating system PHP is running on
    • php_user_filter::filter - Called when applying the filter
    • php_user_filter::onClose - Called when closing the filter
    • php_user_filter::onCreate - Called when creating the filter
    • pht\AtomicInteger::dec - Decrements the atomic integer's value by one
    • pht\AtomicInteger::get - Gets the atomic integer's value
    • pht\AtomicInteger::inc - Increments the atomic integer's value by one
    • pht\AtomicInteger::lock - Acquires the atomic integer's mutex lock
    • pht\AtomicInteger::set - Sets the atomic integer's value
    • pht\AtomicInteger::unlock - Releases the atomic integer's mutex lock
    • pht\AtomicInteger::__construct - AtomicInteger creation
    • pht\HashTable::lock - Acquires the hash table's mutex lock
    • pht\HashTable::size - Gets the size of the hash table
    • pht\HashTable::unlock - Releases the hash table's mutex lock
    • pht\Queue::front - Returns the first value from a queue
    • pht\Queue::lock - Acquires the queue's mutex lock
    • pht\Queue::pop - Pops a value off of the front of a queue
    • pht\Queue::push - Pushes a value to the end of a queue
    • pht\Queue::size - Gets the size of the queue
    • pht\Queue::unlock - Releases the queue's mutex lock
    • pht\Runnable::run - The entry point of a threaded class
    • pht\Thread::addClassTask - Class threading
    • pht\Thread::addFileTask - File threading
    • pht\Thread::addFunctionTask - Function threading
    • pht\Thread::join - Joins a thread
    • pht\Thread::start - Starts the new thread
    • pht\Thread::taskCount - Gets a thread's task count
    • pht\Threaded::lock - Acquires the mutex lock
    • pht\Threaded::unlock - Releases the mutex lock
    • pht\Vector::deleteAt - Deletes a value in the vector
    • pht\Vector::insertAt - Inserts a value into the vector
    • pht\Vector::lock - Acquires the vector's mutex lock
    • pht\Vector::pop - Pops a value to the vector
    • pht\Vector::push - Pushes a value to the vector
    • pht\Vector::resize - Resizes a vector
    • pht\Vector::shift - Shifts a value from the vector
    • pht\Vector::size - Gets the size of the vector
    • pht\Vector::unlock - Releases the vector's mutex lock
    • pht\Vector::unshift - Unshifts a value to the vector front
    • pht\Vector::updateAt - Updates a value in the vector
    • pht\Vector::__construct - Vector creation
    • pi - Liefert den Wert von Pi
    • png2wbmp - Convert PNG image file to WBMP image file
    • Pool::collect - Collect references to completed tasks
    • Pool::resize - Resize the Pool
    • Pool::shutdown - Shutdown all workers
    • Pool::submit - Submits an object for execution
    • Pool::submitTo - Submits a task to a specific worker for execution
    • Pool::__construct - Creates a new Pool of Workers
    • popen - Öffnet einen Prozesszeiger
    • pos - Alias von current
    • posix_access - Ermittelt die Zugriffsberechtigungen einer Datei
    • posix_ctermid - Liefert den Pfad des kontrollierenden Terminals
    • posix_errno - Alias von posix_get_last_error
    • posix_getcwd - Pfadname des aktuellen Verzeichnisses
    • posix_getegid - Liefert die effektive Gruppen-ID des aktuellen Prozesses
    • posix_geteuid - Liefert die effektive Benutzer-ID des aktuellen Prozesses
    • posix_getgid - Liefert die reale Gruppen-ID des aktuellen Prozesses
    • posix_getgrgid - Liefert zu einer Gruppen-ID Informationen über diese Gruppe
    • posix_getgrnam - Liefert zu einem Gruppennamen Informationen über diese Gruppe
    • posix_getgroups - Liefert die Gruppenliste des aktuellen Prozesses
    • posix_getlogin - Liefert den Loginnamen
    • posix_getpgid - Liefert die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle
    • posix_getpgrp - Liefert die Prozessgruppenkennung des aktuellen Prozesses
    • posix_getpid - Liefert die aktuelle Prozesskennung
    • posix_getppid - Liefert die Prozesskennung des Elternprozesses
    • posix_getpwnam - Liefert zu einem Benutzernamen Informationen über diesen Benutzer
    • posix_getpwuid - Liefert zu einer Benutzer-ID Informationen über diesen Benutzer
    • posix_getrlimit - Liefert Informationen über Systemressourcen-Limits
    • posix_getsid - Liefert die aktuelle Session-ID (sid) des Prozesses
    • posix_getuid - Liefert die reale Benutzer-ID des aktuellen Prozesses
    • posix_get_last_error - Liefert die von der letzten fehlgeschlagenen Posix-Funktion gesetzte Fehlernummer
    • posix_initgroups - Ermittelt die Gruppenzugriffsliste
    • posix_isatty - Ermittelt, ob ein Dateideskriptor ein interaktives Terminal ist
    • posix_kill - Sendet einem Prozess ein Signal
    • posix_mkfifo - Erzeugt eine "FIFO special"-Datei (named pipe)
    • posix_mknod - Erzeugt eine spezielle oder eine gewöhnliche Datei (POSIX.1)
    • posix_setegid - Setzt die effektive Gruppen-ID des aktuellen Prozesses
    • posix_seteuid - Setzt die effektive Benutzer-ID des aktuellen Prozesses
    • posix_setgid - Setzt die Gruppen-ID des aktuellen Prozesses
    • posix_setpgid - Setzt die Prozessgruppenkennung (Process Group ID) für die Job-Kontrolle
    • posix_setrlimit - Set system resource limits
    • posix_setsid - Macht den aktuellen Prozess zum Prozessgruppen-Führer
    • posix_setuid - Setzt die Benutzer-ID des aktuellen Prozesses
    • posix_strerror - Liefert die System-Fehlermeldung, die zur angegebenen Fehlernummer gehört
    • posix_times - Liefert Rechenzeiten
    • posix_ttyname - Ermittelt den Namen des Terminal-Devices
    • posix_uname - Liefert Auskunft über das System
    • pow - Potenzfunktion
    • preg_filter - Sucht und ersetzt mit regulären Ausdrücken
    • preg_grep - Liefert Array-Elemente, die auf ein Suchmuster passen
    • preg_last_error - Liefert den Fehlercode der letzten PCRE RegEx-Auswertung
    • preg_last_error_msg - Returns the error message of the last PCRE regex execution
    • preg_match - Führt eine Suche mit einem regulären Ausdruck durch
    • preg_match_all - Führt eine umfassende Suche nach Übereinstimmungen mit regulärem Ausdruck durch
    • preg_quote - Maskiert Zeichen regulärer Ausdrücke
    • preg_replace - Sucht und ersetzt mit regulären Ausdrücken
    • preg_replace_callback - Sucht und ersetzt mit regulären Ausdrücken unter Verwendung eines Callbacks
    • preg_replace_callback_array - Perform a regular expression search and replace using callbacks
    • preg_split - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
    • prev - Setzt den internen Zeiger eines Arrays um ein Element zurück
    • print - Ausgabe eines Strings
    • printf - Gibt einen formatierten String aus
    • print_r - Gibt Variablen-Informationen in lesbarer Form aus
    • proc_close - Schließt einen Prozess, der mit proc_open gestartet wurde und gibt den Exitcode dieses Prozesses zurück
    • proc_get_status - Liefert Informationen über einen mit proc_open gestarteten Prozess
    • proc_nice - Ändert die Priorität des aktuellen Prozesses
    • proc_open - Führt ein Kommando aus und öffnet Dateizeiger für die Ein- und Ausgabe
    • proc_terminate - Beendet einen von proc_open gestarteten Prozess
    • property_exists - Prüft auf die Existenz einer Eigenschaft eines Objektes bzw. einer Klasse
    • pspell_add_to_personal - Fügt der persönlichen Wortliste ein Wort hinzu
    • pspell_add_to_session - Fügt der Wortliste der aktuellen Sitzung ein Wort hinzu
    • pspell_check - Überprüft ein Wort
    • pspell_clear_session - Löscht die aktuelle Sitzung
    • pspell_config_create - Erzeugt eine Konfiguration zum Öffnen eines Wörterbuchs
    • pspell_config_data_dir - Ort der Dateien mit den Daten für die Sprachen
    • pspell_config_dict_dir - Ort der Haupt-Wortliste
    • pspell_config_ignore - Ignoriert Wörter mit weniger als N Buchstaben
    • pspell_config_mode - Ändert den Modus für die Anzahl gelieferter Vorschläge
    • pspell_config_personal - Legt die Datei fest, die die persönliche Wortliste enthält
    • pspell_config_repl - Legt die Datei fest, welche die Ersetzen-Paare enthält
    • pspell_config_runtogether - Betrachtet zusammengesetzte Wörter als gültige Verbindungen
    • pspell_config_save_repl - Bestimmt, ob Ersetzen-Paare zusammen mit der Wortliste gespeichert werden
    • pspell_new - Lädt ein neues Wörterbuch
    • pspell_new_config - Lädt ein neues Wörterbuch mit den Einstellungen einer angegebenen Konfiguration
    • pspell_new_personal - Lädt ein neues Wörterbuch mit persönlicher Wortliste
    • pspell_save_wordlist - Speichert die persönliche Wortliste in einer Datei
    • pspell_store_replacement - Speichert das Ersetzen-Paar für ein Wort
    • pspell_suggest - Macht Vorschläge für die Schreibweise eines Wortes
    • ps_add_bookmark - Add bookmark to current page
    • ps_add_launchlink - Adds link which launches file
    • ps_add_locallink - Adds link to a page in the same document
    • ps_add_note - Adds note to current page
    • ps_add_pdflink - Adds link to a page in a second pdf document
    • ps_add_weblink - Adds link to a web location
    • ps_arc - Draws an arc counterclockwise
    • ps_arcn - Draws an arc clockwise
    • ps_begin_page - Start a new page
    • ps_begin_pattern - Start a new pattern
    • ps_begin_template - Start a new template
    • ps_circle - Draws a circle
    • ps_clip - Clips drawing to current path
    • ps_close - Closes a PostScript document
    • ps_closepath - Closes path
    • ps_closepath_stroke - Closes and strokes path
    • ps_close_image - Closes image and frees memory
    • ps_continue_text - Continue text in next line
    • ps_curveto - Draws a curve
    • ps_delete - Deletes all resources of a PostScript document
    • ps_end_page - End a page
    • ps_end_pattern - End a pattern
    • ps_end_template - End a template
    • ps_fill - Fills the current path
    • ps_fill_stroke - Fills and strokes the current path
    • ps_findfont - Loads a font
    • ps_get_buffer - Fetches the full buffer containig the generated PS data
    • ps_get_parameter - Gets certain parameters
    • ps_get_value - Gets certain values
    • ps_hyphenate - Hyphenates a word
    • ps_include_file - Reads an external file with raw PostScript code
    • ps_lineto - Draws a line
    • ps_makespotcolor - Create spot color
    • ps_moveto - Sets current point
    • ps_new - Creates a new PostScript document object
    • ps_open_file - Opens a file for output
    • ps_open_image - Reads an image for later placement
    • ps_open_image_file - Opens image from file
    • ps_open_memory_image - Takes an GD image and returns an image for placement in a PS document
    • ps_place_image - Places image on the page
    • ps_rect - Draws a rectangle
    • ps_restore - Restore previously save context
    • ps_rotate - Sets rotation factor
    • ps_save - Save current context
    • ps_scale - Sets scaling factor
    • ps_setcolor - Sets current color
    • ps_setdash - Sets appearance of a dashed line
    • ps_setflat - Sets flatness
    • ps_setfont - Sets font to use for following output
    • ps_setgray - Sets gray value
    • ps_setlinecap - Sets appearance of line ends
    • ps_setlinejoin - Sets how contected lines are joined
    • ps_setlinewidth - Sets width of a line
    • ps_setmiterlimit - Sets the miter limit
    • ps_setoverprintmode - Sets overprint mode
    • ps_setpolydash - Sets appearance of a dashed line
    • ps_set_border_color - Sets color of border for annotations
    • ps_set_border_dash - Sets length of dashes for border of annotations
    • ps_set_border_style - Sets border style of annotations
    • ps_set_info - Sets information fields of document
    • ps_set_parameter - Sets certain parameters
    • ps_set_text_pos - Sets position for text output
    • ps_set_value - Sets certain values
    • ps_shading - Creates a shading for later use
    • ps_shading_pattern - Creates a pattern based on a shading
    • ps_shfill - Fills an area with a shading
    • ps_show - Output text
    • ps_show2 - Output a text at current position
    • ps_show_boxed - Output text in a box
    • ps_show_xy - Output text at given position
    • ps_show_xy2 - Output text at position
    • ps_stringwidth - Gets width of a string
    • ps_string_geometry - Gets geometry of a string
    • ps_stroke - Draws the current path
    • ps_symbol - Output a glyph
    • ps_symbol_name - Gets name of a glyph
    • ps_symbol_width - Gets width of a glyph
    • ps_translate - Sets translation
    • putenv - Setzt den Wert einer Umgebungsvariablen.
    • px_close - Closes a paradox database
    • px_create_fp - Create a new paradox database
    • px_date2string - Converts a date into a string
    • px_delete - Deletes resource of paradox database
    • px_delete_record - Deletes record from paradox database
    • px_get_field - Returns the specification of a single field
    • px_get_info - Return lots of information about a paradox file
    • px_get_parameter - Gets a parameter
    • px_get_record - Returns record of paradox database
    • px_get_schema - Returns the database schema
    • px_get_value - Gets a value
    • px_insert_record - Inserts record into paradox database
    • px_new - Create a new paradox object
    • px_numfields - Returns number of fields in a database
    • px_numrecords - Returns number of records in a database
    • px_open_fp - Open paradox database
    • px_put_record - Stores record into paradox database
    • px_retrieve_record - Returns record of paradox database
    • px_set_blob_file - Sets the file where blobs are read from
    • px_set_parameter - Sets a parameter
    • px_set_tablename - Sets the name of a table (deprecated)
    • px_set_targetencoding - Sets the encoding for character fields (deprecated)
    • px_set_value - Sets a value
    • px_timestamp2string - Converts the timestamp into a string
    • px_update_record - Updates record in paradox database
  • q
    • QuickHashIntHash::add - This method adds a new entry to the hash
    • QuickHashIntHash::delete - This method deletes am entry from the hash
    • QuickHashIntHash::exists - This method checks whether a key is part of the hash
    • QuickHashIntHash::get - This method retrieves a value from the hash by its key
    • QuickHashIntHash::getSize - Returns the number of elements in the hash
    • QuickHashIntHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashIntHash::loadFromString - This factory method creates a hash from a string
    • QuickHashIntHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashIntHash::saveToString - This method returns a serialized version of the hash
    • QuickHashIntHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntHash::update - This method updates an entry in the hash with a new value
    • QuickHashIntHash::__construct - Creates a new QuickHashIntHash object
    • QuickHashIntSet::add - This method adds a new entry to the set
    • QuickHashIntSet::delete - This method deletes an entry from the set
    • QuickHashIntSet::exists - This method checks whether a key is part of the set
    • QuickHashIntSet::getSize - Returns the number of elements in the set
    • QuickHashIntSet::loadFromFile - This factory method creates a set from a file
    • QuickHashIntSet::loadFromString - This factory method creates a set from a string
    • QuickHashIntSet::saveToFile - This method stores an in-memory set to disk
    • QuickHashIntSet::saveToString - This method returns a serialized version of the set
    • QuickHashIntSet::__construct - Creates a new QuickHashIntSet object
    • QuickHashIntStringHash::add - This method adds a new entry to the hash
    • QuickHashIntStringHash::delete - This method deletes am entry from the hash
    • QuickHashIntStringHash::exists - This method checks whether a key is part of the hash
    • QuickHashIntStringHash::get - This method retrieves a value from the hash by its key
    • QuickHashIntStringHash::getSize - Returns the number of elements in the hash
    • QuickHashIntStringHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashIntStringHash::loadFromString - This factory method creates a hash from a string
    • QuickHashIntStringHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashIntStringHash::saveToString - This method returns a serialized version of the hash
    • QuickHashIntStringHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntStringHash::update - This method updates an entry in the hash with a new value
    • QuickHashIntStringHash::__construct - Creates a new QuickHashIntStringHash object
    • QuickHashStringIntHash::add - This method adds a new entry to the hash
    • QuickHashStringIntHash::delete - This method deletes am entry from the hash
    • QuickHashStringIntHash::exists - This method checks whether a key is part of the hash
    • QuickHashStringIntHash::get - This method retrieves a value from the hash by its key
    • QuickHashStringIntHash::getSize - Returns the number of elements in the hash
    • QuickHashStringIntHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashStringIntHash::loadFromString - This factory method creates a hash from a string
    • QuickHashStringIntHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashStringIntHash::saveToString - This method returns a serialized version of the hash
    • QuickHashStringIntHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashStringIntHash::update - This method updates an entry in the hash with a new value
    • QuickHashStringIntHash::__construct - Creates a new QuickHashStringIntHash object
    • quoted_printable_decode - Konvertiert einen "quoted-printable"-String in einen 8-Bit-String
    • quoted_printable_encode - Wandelt einen 8Bit-String in sein 'Quoted Printable' Gegenstück
    • quotemeta - Maskiert (quotet) Meta-Zeichen
  • r
    • rad2deg - Rechnet einen Winkel vom Bogenmaß in Grad um
    • radius_acct_open - Creates a Radius handle for accounting
    • radius_add_server - Adds a server
    • radius_auth_open - Creates a Radius handle for authentication
    • radius_close - Frees all ressources
    • radius_config - Causes the library to read the given configuration file
    • radius_create_request - Create accounting or authentication request
    • radius_cvt_addr - Converts raw data to IP-Address
    • radius_cvt_int - Converts raw data to integer
    • radius_cvt_string - Converts raw data to string
    • radius_demangle - Demangles data
    • radius_demangle_mppe_key - Derives mppe-keys from mangled data
    • radius_get_attr - Extracts an attribute
    • radius_get_tagged_attr_data - Extracts the data from a tagged attribute
    • radius_get_tagged_attr_tag - Extracts the tag from a tagged attribute
    • radius_get_vendor_attr - Extracts a vendor specific attribute
    • radius_put_addr - Attaches an IP address attribute
    • radius_put_attr - Attaches a binary attribute
    • radius_put_int - Attaches an integer attribute
    • radius_put_string - Attaches a string attribute
    • radius_put_vendor_addr - Attaches a vendor specific IP address attribute
    • radius_put_vendor_attr - Attaches a vendor specific binary attribute
    • radius_put_vendor_int - Attaches a vendor specific integer attribute
    • radius_put_vendor_string - Attaches a vendor specific string attribute
    • radius_request_authenticator - Returns the request authenticator
    • radius_salt_encrypt_attr - Salt-encrypts a value
    • radius_send_request - Sends the request and waits for a reply
    • radius_server_secret - Returns the shared secret
    • radius_strerror - Returns an error message
    • rand - Erzeugt eine zufällige Zahl
    • random_bytes - Generates cryptographically secure pseudo-random bytes
    • random_int - Generates cryptographically secure pseudo-random integers
    • range - Erstellt ein Array mit einem Bereich von Elementen
    • rar:// - RAR
    • RarArchive::close - Close RAR archive and free all resources
    • RarArchive::getComment - Get comment text from the RAR archive
    • RarArchive::getEntries - Get full list of entries from the RAR archive
    • RarArchive::getEntry - Get entry object from the RAR archive
    • RarArchive::isBroken - Test whether an archive is broken (incomplete)
    • RarArchive::isSolid - Check whether the RAR archive is solid
    • RarArchive::open - Open RAR archive
    • RarArchive::setAllowBroken - Whether opening broken archives is allowed
    • RarArchive::__toString - Get text representation
    • RarEntry::extract - Extract entry from the archive
    • RarEntry::getAttr - Get attributes of the entry
    • RarEntry::getCrc - Get CRC of the entry
    • RarEntry::getFileTime - Get entry last modification time
    • RarEntry::getHostOs - Get entry host OS
    • RarEntry::getMethod - Get pack method of the entry
    • RarEntry::getName - Get name of the entry
    • RarEntry::getPackedSize - Get packed size of the entry
    • RarEntry::getStream - Get file handler for entry
    • RarEntry::getUnpackedSize - Get unpacked size of the entry
    • RarEntry::getVersion - Get minimum version of RAR program required to unpack the entry
    • RarEntry::isDirectory - Test whether an entry represents a directory
    • RarEntry::isEncrypted - Test whether an entry is encrypted
    • RarEntry::__toString - Get text representation of entry
    • RarException::isUsingExceptions - Check whether error handling with exceptions is in use
    • RarException::setUsingExceptions - Activate and deactivate error handling with exceptions
    • rar_wrapper_cache_stats - Cache hits and misses for the URL wrapper
    • rawurldecode - Dekodiert URL-kodierte Strings
    • rawurlencode - URL-Kodierung nach RFC 3986
    • readdir - Liest einen Eintrag aus einem Verzeichnis-Handle
    • readfile - Gibt eine Datei aus
    • readgzfile - Gibt eine gz-komprimierte Datei aus
    • readline - Liest eine Zeile
    • readline_add_history - Fügt eine Zeile zur History hinzu
    • readline_callback_handler_install - Initialisiert das readline-Callback-Interface und das Terminal, gibt den Prompt aus und springt direkt zurück
    • readline_callback_handler_remove - Entfernt den letztdefinierten Callbackhandler und setzt die Terminalumgebung auf die Ursprungswerte zurück
    • readline_callback_read_char - Liest ein Zeichen und informiert das readline-Callback-Interface, wenn die Eingabezeile abgeschlossen wurde
    • readline_clear_history - Löscht die History
    • readline_completion_function - Registriert eine Vervollständigungsfunktion
    • readline_info - Liest/Setzt verschiedene interne readline-Variablen
    • readline_list_history - Auflistung der History
    • readline_on_new_line - Informiert readline, dass der Cursor in eine neue Zeile bewegt wurde
    • readline_read_history - Liest die History
    • readline_redisplay - Zeichnet den Bildschirm neu
    • readline_write_history - Schreibt die History
    • readlink - Liefert das Ziel eines symbolischen Links
    • read_exif_data - Alias von exif_read_data
    • realpath - Löst einen Pfad in einen absoluten und eindeutigen auf
    • realpath_cache_get - Get realpath cache entries
    • realpath_cache_size - Get realpath cache size
    • recode - Alias von recode_string
    • recode_file - Umkodierung von Dateien entsprechend der Recode-Anweisung
    • recode_string - Kodiert einen Strings entsprechend einer Recode-Anweisung um
    • RecursiveArrayIterator::getChildren - Returns an iterator for the current entry if it is an array or an object
    • RecursiveArrayIterator::hasChildren - Returns whether current entry is an array or an object
    • RecursiveCachingIterator::getChildren - Return the inner iterator's children as a RecursiveCachingIterator
    • RecursiveCachingIterator::hasChildren - Check whether the current element of the inner iterator has children
    • RecursiveCachingIterator::__construct - Construct
    • RecursiveCallbackFilterIterator::getChildren - Return the inner iterator's children contained in a RecursiveCallbackFilterIterator
    • RecursiveCallbackFilterIterator::hasChildren - Check whether the inner iterator's current element has children
    • RecursiveCallbackFilterIterator::__construct - Create a RecursiveCallbackFilterIterator from a RecursiveIterator
    • RecursiveDirectoryIterator::getChildren - Returns an iterator for the current entry if it is a directory
    • RecursiveDirectoryIterator::getSubPath - Get sub path
    • RecursiveDirectoryIterator::getSubPathname - Get sub path and name
    • RecursiveDirectoryIterator::hasChildren - Returns whether current entry is a directory and not '.' or '..'
    • RecursiveDirectoryIterator::key - Return path and filename of current dir entry
    • RecursiveDirectoryIterator::next - Zum nächsten Eintrag bewegen
    • RecursiveDirectoryIterator::rewind - Rewind dir back to the start
    • RecursiveDirectoryIterator::__construct - Constructs a RecursiveDirectoryIterator
    • RecursiveFilterIterator::getChildren - Return the inner iterator's children contained in a RecursiveFilterIterator
    • RecursiveFilterIterator::hasChildren - Check whether the inner iterator's current element has children
    • RecursiveFilterIterator::__construct - Create a RecursiveFilterIterator from a RecursiveIterator
    • RecursiveIterator::getChildren - Returns an iterator for the current entry
    • RecursiveIterator::hasChildren - Returns if an iterator can be created for the current entry
    • RecursiveIteratorIterator::beginChildren - Begin children
    • RecursiveIteratorIterator::beginIteration - Begin Iteration
    • RecursiveIteratorIterator::callGetChildren - Get children
    • RecursiveIteratorIterator::callHasChildren - Has children
    • RecursiveIteratorIterator::current - Access the current element value
    • RecursiveIteratorIterator::endChildren - End children
    • RecursiveIteratorIterator::endIteration - End Iteration
    • RecursiveIteratorIterator::getDepth - Get the current depth of the recursive iteration
    • RecursiveIteratorIterator::getInnerIterator - Get inner iterator
    • RecursiveIteratorIterator::getMaxDepth - Get max depth
    • RecursiveIteratorIterator::getSubIterator - The current active sub iterator
    • RecursiveIteratorIterator::key - Access the current key
    • RecursiveIteratorIterator::next - Move forward to the next element
    • RecursiveIteratorIterator::nextElement - Next element
    • RecursiveIteratorIterator::rewind - Rewind the iterator to the first element of the top level inner iterator
    • RecursiveIteratorIterator::setMaxDepth - Set max depth
    • RecursiveIteratorIterator::valid - Check whether the current position is valid
    • RecursiveIteratorIterator::__construct - Construct a RecursiveIteratorIterator
    • RecursiveRegexIterator::getChildren - Returns an iterator for the current entry
    • RecursiveRegexIterator::hasChildren - Returns whether an iterator can be obtained for the current entry
    • RecursiveRegexIterator::__construct - Creates a new RecursiveRegexIterator
    • RecursiveTreeIterator::beginChildren - Begin children
    • RecursiveTreeIterator::beginIteration - Begin iteration
    • RecursiveTreeIterator::callGetChildren - Get children
    • RecursiveTreeIterator::callHasChildren - Has children
    • RecursiveTreeIterator::current - Get current element
    • RecursiveTreeIterator::endChildren - End children
    • RecursiveTreeIterator::endIteration - End iteration
    • RecursiveTreeIterator::getEntry - Get current entry
    • RecursiveTreeIterator::getPostfix - Get the postfix
    • RecursiveTreeIterator::getPrefix - Get the prefix
    • RecursiveTreeIterator::key - Get the key of the current element
    • RecursiveTreeIterator::next - Move to next element
    • RecursiveTreeIterator::nextElement - Next element
    • RecursiveTreeIterator::rewind - Rewind iterator
    • RecursiveTreeIterator::setPostfix - Set postfix
    • RecursiveTreeIterator::setPrefixPart - Set a part of the prefix
    • RecursiveTreeIterator::valid - Check validity
    • RecursiveTreeIterator::__construct - Construct a RecursiveTreeIterator
    • Reflection::export - Exports
    • Reflection::getModifierNames - Gets modifier names
    • ReflectionClass::export - Exports a class
    • ReflectionClass::getConstant - Gets defined constant
    • ReflectionClass::getConstants - Gets constants
    • ReflectionClass::getConstructor - Gets the constructor of the class
    • ReflectionClass::getDefaultProperties - Gets default properties
    • ReflectionClass::getDocComment - Gets doc comments
    • ReflectionClass::getEndLine - Gets end line
    • ReflectionClass::getExtension - Gets a ReflectionExtension object for the extension which defined the class
    • ReflectionClass::getExtensionName - Gets the name of the extension which defined the class
    • ReflectionClass::getFileName - Gets the filename of the file in which the class has been defined
    • ReflectionClass::getInterfaceNames - Gets the interface names
    • ReflectionClass::getInterfaces - Gets the interfaces
    • ReflectionClass::getMethod - Gets a ReflectionMethod for a class method
    • ReflectionClass::getMethods - Gets an array of methods
    • ReflectionClass::getModifiers - Gets the class modifiers
    • ReflectionClass::getName - Gets class name
    • ReflectionClass::getNamespaceName - Gets namespace name
    • ReflectionClass::getParentClass - Gets parent class
    • ReflectionClass::getProperties - Gets properties
    • ReflectionClass::getProperty - Gets a ReflectionProperty for a class's property
    • ReflectionClass::getReflectionConstant - Gets a ReflectionClassConstant for a class's constant
    • ReflectionClass::getReflectionConstants - Gets class constants
    • ReflectionClass::getShortName - Gets short name
    • ReflectionClass::getStartLine - Gets starting line number
    • ReflectionClass::getStaticProperties - Gets static properties
    • ReflectionClass::getStaticPropertyValue - Gets static property value
    • ReflectionClass::getTraitAliases - Returns an array of trait aliases
    • ReflectionClass::getTraitNames - Returns an array of names of traits used by this class
    • ReflectionClass::getTraits - Returns an array of traits used by this class
    • ReflectionClass::hasConstant - Checks if constant is defined
    • ReflectionClass::hasMethod - Checks if method is defined
    • ReflectionClass::hasProperty - Checks if property is defined
    • ReflectionClass::implementsInterface - Implements interface
    • ReflectionClass::inNamespace - Checks if in namespace
    • ReflectionClass::isAbstract - Checks if class is abstract
    • ReflectionClass::isAnonymous - Checks if class is anonymous
    • ReflectionClass::isCloneable - Returns whether this class is cloneable
    • ReflectionClass::isFinal - Checks if class is final
    • ReflectionClass::isInstance - Checks class for instance
    • ReflectionClass::isInstantiable - Checks if the class is instantiable
    • ReflectionClass::isInterface - Checks if the class is an interface
    • ReflectionClass::isInternal - Checks if class is defined internally by an extension, or the core
    • ReflectionClass::isIterable - Check whether this class is iterable
    • ReflectionClass::isIterateable - Alias von ReflectionClass::isIterable
    • ReflectionClass::isSubclassOf - Checks if a subclass
    • ReflectionClass::isTrait - Returns whether this is a trait
    • ReflectionClass::isUserDefined - Checks if user defined
    • ReflectionClass::newInstance - Creates a new class instance from given arguments
    • ReflectionClass::newInstanceArgs - Creates a new class instance from given arguments
    • ReflectionClass::newInstanceWithoutConstructor - Creates a new class instance without invoking the constructor
    • ReflectionClass::setStaticPropertyValue - Sets static property value
    • ReflectionClass::__construct - Constructs a ReflectionClass
    • ReflectionClass::__toString - Returns the string representation of the ReflectionClass object
    • ReflectionClassConstant::export - Export
    • ReflectionClassConstant::getDeclaringClass - Gets declaring class
    • ReflectionClassConstant::getDocComment - Gets doc comments
    • ReflectionClassConstant::getModifiers - Gets the class constant modifiers
    • ReflectionClassConstant::getName - Get name of the constant
    • ReflectionClassConstant::getValue - Gets value
    • ReflectionClassConstant::isPrivate - Checks if class constant is private
    • ReflectionClassConstant::isProtected - Checks if class constant is protected
    • ReflectionClassConstant::isPublic - Checks if class constant is public
    • ReflectionClassConstant::__construct - Constructs a ReflectionClassConstant
    • ReflectionClassConstant::__toString - Returns the string representation of the ReflectionClassConstant object
    • ReflectionExtension::export - Export
    • ReflectionExtension::getClasses - Gets classes
    • ReflectionExtension::getClassNames - Gets class names
    • ReflectionExtension::getConstants - Gets constants
    • ReflectionExtension::getDependencies - Gets dependencies
    • ReflectionExtension::getFunctions - Gets extension functions
    • ReflectionExtension::getINIEntries - Gets extension ini entries
    • ReflectionExtension::getName - Gets extension name
    • ReflectionExtension::getVersion - Gets extension version
    • ReflectionExtension::info - Print extension info
    • ReflectionExtension::isPersistent - Returns whether this extension is persistent
    • ReflectionExtension::isTemporary - Returns whether this extension is temporary
    • ReflectionExtension::__clone - Clones
    • ReflectionExtension::__construct - Constructs a ReflectionExtension
    • ReflectionExtension::__toString - To string
    • ReflectionFunction::export - Exports function
    • ReflectionFunction::getClosure - Returns a dynamically created closure for the function
    • ReflectionFunction::invoke - Invokes function
    • ReflectionFunction::invokeArgs - Invokes function args
    • ReflectionFunction::isDisabled - Checks if function is disabled
    • ReflectionFunction::__construct - Constructs a ReflectionFunction object
    • ReflectionFunction::__toString - To string
    • ReflectionFunctionAbstract::getClosureScopeClass - Returns the scope associated to the closure
    • ReflectionFunctionAbstract::getClosureThis - Returns this pointer bound to closure
    • ReflectionFunctionAbstract::getDocComment - Gets doc comment
    • ReflectionFunctionAbstract::getEndLine - Gets end line number
    • ReflectionFunctionAbstract::getExtension - Gets extension info
    • ReflectionFunctionAbstract::getExtensionName - Gets extension name
    • ReflectionFunctionAbstract::getFileName - Gets file name
    • ReflectionFunctionAbstract::getName - Gets function name
    • ReflectionFunctionAbstract::getNamespaceName - Gets namespace name
    • ReflectionFunctionAbstract::getNumberOfParameters - Gets number of parameters
    • ReflectionFunctionAbstract::getNumberOfRequiredParameters - Gets number of required parameters
    • ReflectionFunctionAbstract::getParameters - Gets parameters
    • ReflectionFunctionAbstract::getReturnType - Gets the specified return type of a function
    • ReflectionFunctionAbstract::getShortName - Gets function short name
    • ReflectionFunctionAbstract::getStartLine - Gets starting line number
    • ReflectionFunctionAbstract::getStaticVariables - Gets static variables
    • ReflectionFunctionAbstract::hasReturnType - Checks if the function has a specified return type
    • ReflectionFunctionAbstract::inNamespace - Checks if function in namespace
    • ReflectionFunctionAbstract::isClosure - Checks if closure
    • ReflectionFunctionAbstract::isDeprecated - Checks if deprecated
    • ReflectionFunctionAbstract::isGenerator - Returns whether this function is a generator
    • ReflectionFunctionAbstract::isInternal - Checks if is internal
    • ReflectionFunctionAbstract::isUserDefined - Checks if user defined
    • ReflectionFunctionAbstract::isVariadic - Checks if the function is variadic
    • ReflectionFunctionAbstract::returnsReference - Checks if returns reference
    • ReflectionFunctionAbstract::__clone - Clones function
    • ReflectionFunctionAbstract::__toString - To string
    • ReflectionGenerator::getExecutingFile - Gets the file name of the currently executing generator
    • ReflectionGenerator::getExecutingGenerator - Gets the executing Generator object
    • ReflectionGenerator::getExecutingLine - Gets the currently executing line of the generator
    • ReflectionGenerator::getFunction - Gets the function name of the generator
    • ReflectionGenerator::getThis - Gets the $this value of the generator
    • ReflectionGenerator::getTrace - Gets the trace of the executing generator
    • ReflectionGenerator::__construct - Constructs a ReflectionGenerator object
    • ReflectionMethod::export - Export a reflection method
    • ReflectionMethod::getClosure - Returns a dynamically created closure for the method
    • ReflectionMethod::getDeclaringClass - Gets declaring class for the reflected method
    • ReflectionMethod::getModifiers - Gets the method modifiers
    • ReflectionMethod::getPrototype - Gets the method prototype (if there is one)
    • ReflectionMethod::invoke - Invoke
    • ReflectionMethod::invokeArgs - Invoke args
    • ReflectionMethod::isAbstract - Checks if method is abstract
    • ReflectionMethod::isConstructor - Checks if method is a constructor
    • ReflectionMethod::isDestructor - Checks if method is a destructor
    • ReflectionMethod::isFinal - Checks if method is final
    • ReflectionMethod::isPrivate - Checks if method is private
    • ReflectionMethod::isProtected - Checks if method is protected
    • ReflectionMethod::isPublic - Checks if method is public
    • ReflectionMethod::isStatic - Checks if method is static
    • ReflectionMethod::setAccessible - Set method accessibility
    • ReflectionMethod::__construct - Constructs a ReflectionMethod
    • ReflectionMethod::__toString - Returns the string representation of the Reflection method object
    • ReflectionNamedType::getName - Get the text of the type hint
    • ReflectionNamedType::isBuiltin - Checks if it is a built-in type
    • ReflectionObject::export - Export
    • ReflectionObject::__construct - Constructs a ReflectionObject
    • ReflectionParameter::allowsNull - Checks if null is allowed
    • ReflectionParameter::canBePassedByValue - Returns whether this parameter can be passed by value
    • ReflectionParameter::export - Exports
    • ReflectionParameter::getClass - Get the type hinted class
    • ReflectionParameter::getDeclaringClass - Gets declaring class
    • ReflectionParameter::getDeclaringFunction - Gets declaring function
    • ReflectionParameter::getDefaultValue - Gets default parameter value
    • ReflectionParameter::getDefaultValueConstantName - Returns the default value's constant name if default value is constant or null
    • ReflectionParameter::getName - Gets parameter name
    • ReflectionParameter::getPosition - Gets parameter position
    • ReflectionParameter::getType - Gets a parameter's type
    • ReflectionParameter::hasType - Checks if parameter has a type
    • ReflectionParameter::isArray - Checks if parameter expects an array
    • ReflectionParameter::isCallable - Returns whether parameter MUST be callable
    • ReflectionParameter::isDefaultValueAvailable - Checks if a default value is available
    • ReflectionParameter::isDefaultValueConstant - Returns whether the default value of this parameter is a constant
    • ReflectionParameter::isOptional - Checks if optional
    • ReflectionParameter::isPassedByReference - Checks if passed by reference
    • ReflectionParameter::isVariadic - Checks if the parameter is variadic
    • ReflectionParameter::__clone - Clone
    • ReflectionParameter::__construct - Construct
    • ReflectionParameter::__toString - To string
    • ReflectionProperty::export - Export
    • ReflectionProperty::getDeclaringClass - Gets declaring class
    • ReflectionProperty::getDefaultValue - Returns the default value declared for a property
    • ReflectionProperty::getDocComment - Gets the property doc comment
    • ReflectionProperty::getModifiers - Gets the property modifiers
    • ReflectionProperty::getName - Gets property name
    • ReflectionProperty::getType - Gets a property's type
    • ReflectionProperty::getValue - Gets value
    • ReflectionProperty::hasDefaultValue - Checks if property has a default value declared
    • ReflectionProperty::hasType - Checks if property has a type
    • ReflectionProperty::isDefault - Checks if property is a default property
    • ReflectionProperty::isInitialized - Checks whether a property is initialized
    • ReflectionProperty::isPrivate - Checks if property is private
    • ReflectionProperty::isProtected - Checks if property is protected
    • ReflectionProperty::isPublic - Checks if property is public
    • ReflectionProperty::isStatic - Checks if property is static
    • ReflectionProperty::setAccessible - Set property accessibility
    • ReflectionProperty::setValue - Set property value
    • ReflectionProperty::__clone - Clone
    • ReflectionProperty::__construct - Construct a ReflectionProperty object
    • ReflectionProperty::__toString - To string
    • ReflectionReference::fromArrayElement - Create a ReflectionReference from an array element
    • ReflectionReference::getId - Get unique ID of a reference
    • ReflectionType::allowsNull - Checks if null is allowed
    • ReflectionType::__toString - To string
    • ReflectionUnionType::getTypes - Returns the types included in the union type
    • ReflectionZendExtension::export - Export
    • ReflectionZendExtension::getAuthor - Gets author
    • ReflectionZendExtension::getCopyright - Gets copyright
    • ReflectionZendExtension::getName - Gets name
    • ReflectionZendExtension::getURL - Gets URL
    • ReflectionZendExtension::getVersion - Gets version
    • ReflectionZendExtension::__clone - Clone handler
    • ReflectionZendExtension::__construct - Constructor
    • ReflectionZendExtension::__toString - To string handler
    • Reflector::export - Exports
    • Reflector::__toString - To string
    • RegexIterator::accept - Get accept status
    • RegexIterator::getFlags - Get flags
    • RegexIterator::getMode - Returns operation mode
    • RegexIterator::getPregFlags - Returns the regular expression flags
    • RegexIterator::getRegex - Returns current regular expression
    • RegexIterator::setFlags - Sets the flags
    • RegexIterator::setMode - Sets the operation mode
    • RegexIterator::setPregFlags - Sets the regular expression flags
    • RegexIterator::__construct - Create a new RegexIterator
    • register_shutdown_function - Registriert eine Funktion zur Ausführung beim Skript-Abschluss
    • register_tick_function - Register a function for execution on each tick
    • rename - Benennt eine Datei oder ein Verzeichnis um
    • reset - Setzt den internen Zeiger eines Arrays auf sein erstes Element
    • ResourceBundle::count - Get number of elements in the bundle
    • ResourceBundle::create - Create a resource bundle
    • ResourceBundle::get - Get data from the bundle
    • ResourceBundle::getErrorCode - Get bundle's last error code
    • ResourceBundle::getErrorMessage - Get bundle's last error message
    • ResourceBundle::getLocales - Get supported locales
    • restore_error_handler - Rekonstruiert die zuvor benutzte Fehlerbehandlungsfunktion
    • restore_exception_handler - Stellt den vorherigen Exceptionhandler wieder her
    • restore_include_path - Restores the value of the include_path configuration option
    • Result::getAffectedItemsCount - Get affected row count
    • Result::getAutoIncrementValue - Get autoincremented value
    • Result::getGeneratedIds - Get generated ids
    • Result::getWarnings - Get warnings from last operation
    • Result::getWarningsCount - Get warning count from last operation
    • Result::__construct - Result constructor
    • rewind - Setzt die Position eines Dateizeigers auf den Anfang
    • rewinddir - Zurücksetzen des Verzeichnis-Handles
    • rmdir - Löscht ein Verzeichnis
    • round - Rundet einen Gleitkommawert
    • RowResult::fetchAll - Get all rows from result
    • RowResult::fetchOne - Get row from result
    • RowResult::getColumnNames - Get all column names
    • RowResult::getColumns - Get column metadata
    • RowResult::getColumnsCount - Get column count
    • RowResult::getWarnings - Get warnings from last operation
    • RowResult::getWarningsCount - Get warning count from last operation
    • RowResult::__construct - RowResult constructor
    • rpmaddtag - Add tag retrieved in query
    • rpmdbinfo - Get information from installed RPM
    • rpmdbsearch - Search RPM packages
    • rpminfo - Get information from a RPM file
    • rpmvercmp - RPM version comparison
    • RRDCreator::addArchive - Adds RRA - archive of data values for each data source
    • RRDCreator::addDataSource - Adds data source definition for RRD database
    • RRDCreator::save - Saves the RRD database to a file
    • RRDCreator::__construct - Creates new RRDCreator instance
    • rrdc_disconnect - Close any outstanding connection to rrd caching daemon
    • RRDGraph::save - Saves the result of query into image
    • RRDGraph::saveVerbose - Saves the RRD database query into image and returns the verbose information about generated graph
    • RRDGraph::setOptions - Sets the options for rrd graph export
    • RRDGraph::__construct - Creates new RRDGraph instance
    • RRDUpdater::update - Update the RRD database file
    • RRDUpdater::__construct - Creates new RRDUpdater instance
    • rrd_create - Creates rrd database file
    • rrd_error - Gets latest error message
    • rrd_fetch - Fetch the data for graph as array
    • rrd_first - Gets the timestamp of the first sample from rrd file
    • rrd_graph - Creates image from a data
    • rrd_info - Gets information about rrd file
    • rrd_last - Gets unix timestamp of the last sample
    • rrd_lastupdate - Gets information about last updated data
    • rrd_restore - Restores the RRD file from XML dump
    • rrd_tune - Tunes some RRD database file header options
    • rrd_update - Updates the RRD database
    • rrd_version - Gets information about underlying rrdtool library
    • rrd_xport - Exports the information about RRD database
    • rsort - Sortiert ein Array in umgekehrter Reihenfolge
    • rtrim - Entfernt Leerraum (oder andere Zeichen) vom Ende eines Strings
    • runkit7_constant_add - Similar to define(), but allows defining in class definitions as well
    • runkit7_constant_redefine - Redefine an already defined constant
    • runkit7_constant_remove - Remove/Delete an already defined constant
    • runkit7_function_add - Add a new function, similar to create_function
    • runkit7_function_copy - Copy a function to a new function name
    • runkit7_function_redefine - Replace a function definition with a new implementation
    • runkit7_function_remove - Remove a function definition
    • runkit7_function_rename - Change a function's name
    • runkit7_import - Process a PHP file importing function and class definitions, overwriting where appropriate
    • runkit7_method_add - Dynamically adds a new method to a given class
    • runkit7_method_copy - Copies a method from class to another
    • runkit7_method_redefine - Dynamically changes the code of the given method
    • runkit7_method_remove - Dynamically removes the given method
    • runkit7_method_rename - Dynamically changes the name of the given method
    • runkit7_object_id - Return the integer object handle for given object
    • runkit7_superglobals - Return numerically indexed array of registered superglobals
    • runkit7_zval_inspect - Returns information about the passed in value with data types, reference counts, etc
  • s
    • sapi_windows_cp_conv - Convert string from one codepage to another
    • sapi_windows_cp_get - Get current codepage
    • sapi_windows_cp_is_utf8 - Indicates whether the codepage is UTF-8 compatible
    • sapi_windows_cp_set - Set process codepage
    • sapi_windows_generate_ctrl_event - Send a CTRL event to another process
    • sapi_windows_set_ctrl_handler - Set or remove a CTRL event handler
    • sapi_windows_vt100_support - Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.
    • scandir - Listet Dateien und Verzeichnisse innerhalb eines angegebenen Pfades auf
    • Schema::createCollection - Add collection to schema
    • Schema::dropCollection - Drop collection from schema
    • Schema::existsInDatabase - Check if exists in database
    • Schema::getCollection - Get collection from schema
    • Schema::getCollectionAsTable - Get collection table object
    • Schema::getCollections - Get all schema collections
    • Schema::getName - Get schema name
    • Schema::getSession - Get schema session
    • Schema::getTable - Get schema table
    • Schema::getTables - Get schema tables
    • Schema::__construct - constructor
    • SchemaObject::getSchema - Get schema object
    • scoutapm_get_calls - Returns a list of instrumented calls that have occurred
    • scoutapm_list_instrumented_functions - List functions scoutapm will instrument.
    • SeasLog::alert - Record alert log information
    • SeasLog::analyzerCount - Get log count by level, log_path and key_word
    • SeasLog::analyzerDetail - Get log detail by level, log_path, key_word, start, limit, order
    • SeasLog::closeLoggerStream - Manually release stream flow from logger
    • SeasLog::critical - Record critical log information
    • SeasLog::debug - Record debug log information
    • SeasLog::emergency - Record emergency log information
    • SeasLog::error - Record error log information
    • SeasLog::flushBuffer - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
    • SeasLog::getBasePath - Get SeasLog base path.
    • SeasLog::getBuffer - Get the logs buffer in memory as array
    • SeasLog::getBufferEnabled - Determin if buffer enabled
    • SeasLog::getDatetimeFormat - Get SeasLog datetime format style
    • SeasLog::getLastLogger - Get SeasLog last logger path
    • SeasLog::getRequestID - Get SeasLog request_id differentiated requests
    • SeasLog::getRequestVariable - Get SeasLog request variable
    • SeasLog::info - Record info log information
    • SeasLog::log - The Common Record Log Function
    • SeasLog::notice - Record notice log information
    • SeasLog::setBasePath - Set SeasLog base path
    • SeasLog::setDatetimeFormat - Set SeasLog datetime format style
    • SeasLog::setLogger - Set SeasLog logger name
    • SeasLog::setRequestID - Set SeasLog request_id differentiated requests
    • SeasLog::setRequestVariable - Manually set SeasLog request variable
    • SeasLog::warning - Record warning log information
    • SeasLog::__construct - Description
    • SeasLog::__destruct - Description
    • seaslog_get_author - Get SeasLog author.
    • seaslog_get_version - Get SeasLog version.
    • SeekableIterator::seek - Seeks to a position
    • sem_acquire - Fordert Zugriff auf einen Semaphor an
    • sem_get - Fordert Zugriff auf eine Semaphor-ID an
    • sem_release - Gibt einen Semaphor frei
    • sem_remove - Entfernt einen Semaphor
    • Serializable::serialize - Stringrepräsentation eines Objekts
    • Serializable::unserialize - Erstellt das Objekt
    • serialize - Erzeugt eine speicherbare Repräsentation eines Wertes
    • Session::close - Close session
    • Session::createSchema - Create new schema
    • Session::dropSchema - Drop a schema
    • Session::generateUUID - Get new UUID
    • Session::getDefaultSchema - Get default schema name
    • Session::getSchema - Get a new schema object
    • Session::getSchemas - Get the schemas
    • Session::getServerVersion - Get server version
    • Session::listClients - Get client list
    • Session::quoteName - Add quotes
    • Session::releaseSavepoint - Release set savepoint
    • Session::rollback - Rollback transaction
    • Session::rollbackTo - Rollback transaction to savepoint
    • Session::setSavepoint - Create savepoint
    • Session::sql - Execute SQL query
    • Session::startTransaction - Start transaction
    • Session::__construct - Description constructor
    • SessionHandler::close - Close the session
    • SessionHandler::create_sid - Return a new session ID
    • SessionHandler::destroy - Destroy a session
    • SessionHandler::gc - Cleanup old sessions
    • SessionHandler::open - Initialize session
    • SessionHandler::read - Read session data
    • SessionHandler::write - Write session data
    • SessionHandlerInterface::close - Close the session
    • SessionHandlerInterface::destroy - Destroy a session
    • SessionHandlerInterface::gc - Cleanup old sessions
    • SessionHandlerInterface::open - Initialize session
    • SessionHandlerInterface::read - Read session data
    • SessionHandlerInterface::write - Write session data
    • SessionIdInterface::create_sid - Create session ID
    • SessionUpdateTimestampHandlerInterface::updateTimestamp - Update timestamp
    • SessionUpdateTimestampHandlerInterface::validateId - Validate ID
    • session_abort - Discard session array changes and finish session
    • session_cache_expire - Liefert und/oder setzt die aktuelle Cache-Verfallszeit
    • session_cache_limiter - Liefert und/oder setzt die aktuelle Cacheverwaltung
    • session_commit - Alias von session_write_close
    • session_create_id - Create new session id
    • session_decode - Dekodiert die Daten einer Session aus einer session-kodierten Zeichenkette
    • session_destroy - Löscht alle in einer Session registrierten Daten
    • session_encode - Kodiert die Daten der aktuellen Session als session-kodierte Zeichenkette
    • session_gc - Perform session data garbage collection
    • session_get_cookie_params - Liefert die Session-Cookie Parameter
    • session_id - Liefert und/oder setzt die aktuelle Session-ID
    • session_is_registered - Überprüft, ob eine globale Variable in einer Session registriert ist
    • session_module_name - Liefert und/oder setzt das aktuelle Session-Modul
    • session_name - Liefert und/oder setzt den Namen der aktuellen Session
    • session_regenerate_id - Ersetzt die aktuelle Session-ID durch eine neu erzeugte
    • session_register_shutdown - Funktion zum Schließen von Sitzungen
    • session_reset - Re-initialize session array with original values
    • session_save_path - Liefert und/oder setzt den aktuellen Speicherpfad der Session
    • session_set_cookie_params - Setzt die Session-Cookie-Parameter
    • session_set_save_handler - Setzt benutzerdefinierte Session-Speicherfunktionen
    • session_start - Erzeugt eine neue Session oder setzt eine vorhandene fort
    • session_status - Liefert den Status der aktuellen Session
    • session_unregister - Hebt die Registrierung einer globalen Variablen in der aktuellen Session auf
    • session_unset - Löscht alle Session-Variablen
    • session_write_close - Speichert die Session-Daten und beendet die Session
    • setcookie - Sendet ein Cookie
    • setlocale - Legt regionale (locale) Einstellungen fest
    • setproctitle - Set the process title
    • setrawcookie - Sendet ein Cookie, ohne seinen Wert zu URL-kodieren
    • setthreadtitle - Set the thread title
    • settype - Legt den Typ einer Variablen fest
    • set_error_handler - Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung
    • set_exception_handler - Installiert einen benutzerdefinierten Exceptionhandler
    • set_file_buffer - Alias von stream_set_write_buffer
    • set_include_path - Setzt die Konfigurationsoption include_path
    • set_time_limit - Beschränkt die maximale Ausführungszeit
    • sha1 - Berechnet den SHA1-Hash eines Strings
    • sha1_file - Berechnet den SHA1-Hash einer Datei
    • shell_exec - Führt ein Kommando auf der Shell aus und gibt den kompletten Output als String zurück
    • shmop_close - Schließt einen gemeinsamen Speicherbereich
    • shmop_delete - Löscht einen gemeinsamen Speicherbereich
    • shmop_open - Erstellt oder öffnet einen gemeinsamen Speicherbereich
    • shmop_read - Liest Daten aus einem gemeinsamen Speicherbereich
    • shmop_size - Gibt die Größe des gemeinsamen Speicherbereichs zurück
    • shmop_write - Schreibt Daten in einen gemeinsamen Speicherbereich
    • shm_attach - Erzeugt oder öffnet einen gemeinsamen Speicherbereich
    • shm_detach - Beendet die Anbindung an einen gemeinsamen Speicherbereich
    • shm_get_var - Liest eine Variable aus dem gemeinsamen Speicherbereich
    • shm_has_var - Check whether a specific entry exists
    • shm_put_var - Erstellt oder aktualisiert eine Variable im gemeinsamen Speicherbereich
    • shm_remove - Entfernt einen gemeinsamen Speicherbereich unter UNIX
    • shm_remove_var - Entfernt eine Variable aus dem gemeinsamen Speicherbereich
    • show_source - Alias von highlight_file
    • shuffle - Mischt die Elemente eines Arrays
    • similar_text - Berechnet die Ähnlichkeit zweier Zeichenketten
    • SimpleXMLElement::addAttribute - Fügt einem SimpleXML-Element ein Attribut hinzu
    • SimpleXMLElement::addChild - Fügt dem XML-Knoten ein Kind-Element hinzu
    • SimpleXMLElement::asXML - Gibt einen wohlgeformten XML String zurück, der auf einem SimpleXML-Element basiert
    • SimpleXMLElement::attributes - Liefert die Attribute eines Elements
    • SimpleXMLElement::children - Findet Kindelemente des gegebenen Knotens
    • SimpleXMLElement::count - Counts the children of an element
    • SimpleXMLElement::getDocNamespaces - Gibt die im Dokument deklarierten Namensräume zurück
    • SimpleXMLElement::getName - Ermittelt den Namen eines XML-Elements
    • SimpleXMLElement::getNamespaces - Gibt die im Dokument verwendeten Namespaces zurück
    • SimpleXMLElement::registerXPathNamespace - Erzeugt einen Prefix/Namespace-Kontext für den nächsten XPath-Query
    • SimpleXMLElement::saveXML - Alias von SimpleXMLElement::asXML
    • SimpleXMLElement::xpath - Führt eine XPath-Anfrage auf XML-Daten aus
    • SimpleXMLElement::__construct - Erstellt ein neues SimpleXMLElement-Objekt
    • SimpleXMLElement::__toString - Returns the string content
    • SimpleXMLIterator::current - Returns the current element
    • SimpleXMLIterator::getChildren - Returns the sub-elements of the current element
    • SimpleXMLIterator::hasChildren - Checks whether the current element has sub elements
    • SimpleXMLIterator::key - Return current key
    • SimpleXMLIterator::next - Move to next element
    • SimpleXMLIterator::rewind - Rewind to the first element
    • SimpleXMLIterator::valid - Check whether the current element is valid
    • simplexml_import_dom - Erzeugt ein SimpleXMLElement-Objekt aus einem DOM-Knoten
    • simplexml_load_file - Übersetzt ein XML-File in ein Objekt
    • simplexml_load_string - Übersetzt einen XML-String in ein Objekt
    • sin - Sinus
    • sinh - Sinus hyperbolikus
    • sizeof - Alias von count
    • sleep - Verzögert die Programmausführung
    • snmp2_get - Fetch an SNMP object
    • snmp2_getnext - Fetch the SNMP object which follows the given object id
    • snmp2_real_walk - Return all objects including their respective object ID within the specified one
    • snmp2_set - Set the value of an SNMP object
    • snmp2_walk - Fetch all the SNMP objects from an agent
    • snmp3_get - Fetch an SNMP object
    • snmp3_getnext - Fetch the SNMP object which follows the given object id
    • snmp3_real_walk - Return all objects including their respective object ID within the specified one
    • snmp3_set - Set the value of an SNMP object
    • snmp3_walk - Fetch all the SNMP objects from an agent
    • SNMP::close - Close SNMP session
    • SNMP::get - Fetch an SNMP object
    • SNMP::getErrno - Get last error code
    • SNMP::getError - Get last error message
    • SNMP::getnext - Fetch an SNMP object which follows the given object id
    • SNMP::set - Set the value of an SNMP object
    • SNMP::setSecurity - Configures security-related SNMPv3 session parameters
    • SNMP::walk - Fetch SNMP object subtree
    • SNMP::__construct - Creates SNMP instance representing session to remote SNMP agent
    • snmpget - Holt ein SNMP-Objekt
    • snmpgetnext - Fetch the SNMP object which follows the given object id
    • snmprealwalk - Return all objects including their respective object ID within the specified one
    • snmpset - Setzt den Wert eines SNMP-Objekts
    • snmpwalk - Holt alle SNMP-Objekte eines Agenten
    • snmpwalkoid - Abfrage über einen Baum einer Netzwerkeinheit
    • snmp_get_quick_print - Holt den aktuellen Wert der quick_print-Einstellung der NET-SNMP-Bibliothek
    • snmp_get_valueretrieval - Return the method how the SNMP values will be returned
    • snmp_read_mib - Reads and parses a MIB file into the active MIB tree
    • snmp_set_enum_print - Return all values that are enums with their enum value instead of the raw integer
    • snmp_set_oid_numeric_print - Set the OID output format
    • snmp_set_oid_output_format - Set the OID output format
    • snmp_set_quick_print - Setzt den Wert von enable innerhalb der NET-SNMP-Bibliothek
    • snmp_set_valueretrieval - Specify the method how the SNMP values will be returned
    • SoapClient::__call - Ruft eine SOAP-Funktion auf (veraltet)
    • SoapClient::__construct - SoapClient-Konstruktor
    • SoapClient::__doRequest - Führt eine SOAP-Anfrage aus
    • SoapClient::__getCookies - Get list of cookies
    • SoapClient::__getFunctions - Gibt eine Liste verfügbarer SOAP-Funktionen zurück
    • SoapClient::__getLastRequest - Gibt die letzte SOAP-Anfrage zurück
    • SoapClient::__getLastRequestHeaders - Gibt die SOAP-Header der letzten Anfrage zurück
    • SoapClient::__getLastResponse - Gibt die letzte SOAP-Antwort zurück
    • SoapClient::__getLastResponseHeaders - Gibt die SOAP-Header der letzten Antwort zurück
    • SoapClient::__getTypes - Gibt eine Liste der SOAP-Typen zurück
    • SoapClient::__setCookie - Definiert ein Cookie für Soap-Anfragen
    • SoapClient::__setLocation - Bestimmt die Adresse des zu nutzenden Webservices
    • SoapClient::__setSoapHeaders - Setzt die SOAP-Header für nachfolgende Aufrufe
    • SoapClient::__soapCall - Ruft eine SOAP-Funktion auf
    • SoapFault::__construct - SoapFault-Konstruktor
    • SoapFault::__toString - Obtain a string representation of a SoapFault
    • SoapHeader::__construct - SoapHeader-Konstruktor
    • SoapParam::__construct - SoapParam-Konstruktor
    • SoapServer->setPersistence() - Versetzt einen SoapServer in den Persistenz-Modus
    • SoapServer::addFunction - Fügt eine oder mehrere Funktionen zur Verarbeitung von SOAP-Anfragen hinzu
    • SoapServer::addSoapHeader - Add a SOAP header to the response
    • SoapServer::fault - Erzeugt einen SoapServer-Fehler, der einen Fehlerzustand anzeigt
    • SoapServer::getFunctions - Gibt eine Liste aller definierten Funktionen zurück
    • SoapServer::handle - Verarbeitet eine SOAP-Anfrage
    • SoapServer::setClass - Setzt die Klasse, welche SOAP-Anfragen verarbeitet
    • SoapServer::setObject - Sets the object which will be used to handle SOAP requests
    • SoapServer::__construct - SoapServer-Konstruktor
    • SoapVar::__construct - SoapVar-Konstruktor
    • Socket context options - Socket context option listing
    • socket_accept - Akzeptiert eine Verbindung an einem Socket
    • socket_addrinfo_bind - Create and bind to a socket from a given addrinfo
    • socket_addrinfo_connect - Create and connect to a socket from a given addrinfo
    • socket_addrinfo_explain - Get information about addrinfo
    • socket_addrinfo_lookup - Get array with contents of getaddrinfo about the given hostname
    • socket_bind - Verknüpft einen Socket mit einem Namen
    • socket_clear_error - Löscht entweder einen Fehler oder den letzten Fehlercode eines Sockets
    • socket_close - Schließt eine Socket-Instanz
    • socket_cmsg_space - Calculate message buffer size
    • socket_connect - Baut eine Verbindung über einen Socket auf
    • socket_create - Erzeugt einen Socket (Endpunkt für die Kommunikation)
    • socket_create_listen - Öffnet einen Socket, um Verbindungen über einem gegebenen Port aufzubauen
    • socket_create_pair - Erzeugt ein Paar nicht zu unterscheidender Sockets und speichert sie in einem Array
    • socket_export_stream - Export a socket into a stream that encapsulates a socket
    • socket_getopt - Alias von socket_get_option
    • socket_getpeername - Fragt das entfernte Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems
    • socket_getsockname - Fragt das lokale Ende eines gegebenen Sockets ab. Das Ergebnis ist vom Typ abhängig und ist entweder das Paar host/port oder ein Pfad des Unix-Dateisystems
    • socket_get_option - Liefert die Socket-Optionen für einen Socket
    • socket_get_status - Alias von stream_get_meta_data
    • socket_import_stream - Import a stream
    • socket_last_error - Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
    • socket_listen - Hört einen Socket nach Verbindungsanforderungen ab
    • socket_read - Liest höchstens die angegebene Anzahl Bytes von einem Socket
    • socket_recv - Empfängt Daten von einem verbundenen Socket
    • socket_recvfrom - Empfängt Daten von einem Socket, egal, ob verbindungsorientiert oder nicht
    • socket_recvmsg - Read a message
    • socket_select - Führt einen select()-Systemaufruf auf den gegebenen Socket-Arrays aus, wobei ein Zeitlimit bestimmt wird
    • socket_send - Sendet Daten an einen verbundenen Socket
    • socket_sendmsg - Send a message
    • socket_sendto - Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht
    • socket_setopt - Alias von socket_set_option
    • socket_set_block - Setzt einen Socket auf den blockieren-Modus
    • socket_set_blocking - Alias von stream_set_blocking
    • socket_set_nonblock - Setzt den nonblocking-Modus für den Dateideskriptor fd
    • socket_set_option - Setzt die Optionen für einen Socket
    • socket_set_timeout - Alias von stream_set_timeout
    • socket_shutdown - Schließt einen Socket der zum Senden, Empfangen oder beidem geöffnet wurde
    • socket_strerror - Gibt einen String zurück, der einen Socket-Fehler beschreibt
    • socket_write - Schreibt in einen Socket
    • socket_wsaprotocol_info_export - Exports the WSAPROTOCOL_INFO Structure
    • socket_wsaprotocol_info_import - Imports a Socket from another Process
    • socket_wsaprotocol_info_release - Releases an exported WSAPROTOCOL_INFO Structure
    • sodium_add - Add large numbers
    • sodium_base642bin - Description
    • sodium_bin2base64 - Description
    • sodium_bin2hex - Encode to hexadecimal
    • sodium_compare - Compare large numbers
    • sodium_crypto_aead_aes256gcm_decrypt - Decrypt in combined mode with precalculation
    • sodium_crypto_aead_aes256gcm_encrypt - Encrypt in combined mode with precalculation
    • sodium_crypto_aead_aes256gcm_is_available - Check if hardware supports AES256-GCM
    • sodium_crypto_aead_aes256gcm_keygen - Get random bytes for key
    • sodium_crypto_aead_chacha20poly1305_decrypt - Verify that the ciphertext includes a valid tag
    • sodium_crypto_aead_chacha20poly1305_encrypt - Encrypt a message
    • sodium_crypto_aead_chacha20poly1305_ietf_decrypt - Verify that the ciphertext includes a valid tag
    • sodium_crypto_aead_chacha20poly1305_ietf_encrypt - Encrypt a message
    • sodium_crypto_aead_chacha20poly1305_ietf_keygen - Get random bytes for key
    • sodium_crypto_aead_chacha20poly1305_keygen - Get random bytes for key
    • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt - Description
    • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt - Description
    • sodium_crypto_aead_xchacha20poly1305_ietf_keygen - Description
    • sodium_crypto_auth - Compute a tag for the message
    • sodium_crypto_auth_keygen - Get random bytes for key
    • sodium_crypto_auth_verify - Verifies that the tag is valid for the message
    • sodium_crypto_box - Encrypt a message
    • sodium_crypto_box_keypair - Randomly generate a secret key and a corresponding public key
    • sodium_crypto_box_keypair_from_secretkey_and_publickey - Description
    • sodium_crypto_box_open - Verify and decrypt a ciphertext
    • sodium_crypto_box_publickey - Description
    • sodium_crypto_box_publickey_from_secretkey - Description
    • sodium_crypto_box_seal - Encrypt a message
    • sodium_crypto_box_seal_open - Decrypt the ciphertext
    • sodium_crypto_box_secretkey - Description
    • sodium_crypto_box_seed_keypair - Deterministically derive the key pair from a single key
    • sodium_crypto_generichash - Get a hash of the message
    • sodium_crypto_generichash_final - Complete the hash
    • sodium_crypto_generichash_init - Initialize a hash
    • sodium_crypto_generichash_keygen - Get random bytes for key
    • sodium_crypto_generichash_update - Add message to a hash
    • sodium_crypto_kdf_derive_from_key - Derive a subkey
    • sodium_crypto_kdf_keygen - Get random bytes for key
    • sodium_crypto_kx_client_session_keys - Description
    • sodium_crypto_kx_keypair - Creates a new sodium keypair
    • sodium_crypto_kx_publickey - Description
    • sodium_crypto_kx_secretkey - Description
    • sodium_crypto_kx_seed_keypair - Description
    • sodium_crypto_kx_server_session_keys - Description
    • sodium_crypto_pwhash - Derive a key from a password
    • sodium_crypto_pwhash_scryptsalsa208sha256 - Derives a key from a password
    • sodium_crypto_pwhash_scryptsalsa208sha256_str - Get an ASCII encoded hash
    • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify - Verify that the password is a valid password verification string
    • sodium_crypto_pwhash_str - Get an ASCII-encoded hash
    • sodium_crypto_pwhash_str_needs_rehash - Description
    • sodium_crypto_pwhash_str_verify - Verifies that a password matches a hash
    • sodium_crypto_scalarmult - Compute a shared secret given a user's secret key and another user's public key
    • sodium_crypto_scalarmult_base - Alias von sodium_crypto_box_publickey_from_secretkey
    • sodium_crypto_secretbox - Encrypt a message
    • sodium_crypto_secretbox_keygen - Get random bytes for key
    • sodium_crypto_secretbox_open - Verify and decrypt a ciphertext
    • sodium_crypto_secretstream_xchacha20poly1305_init_pull - Description
    • sodium_crypto_secretstream_xchacha20poly1305_init_push - Description
    • sodium_crypto_secretstream_xchacha20poly1305_keygen - Description
    • sodium_crypto_secretstream_xchacha20poly1305_pull - Description
    • sodium_crypto_secretstream_xchacha20poly1305_push - Description
    • sodium_crypto_secretstream_xchacha20poly1305_rekey - Description
    • sodium_crypto_shorthash - Compute a fixed-size fingerprint for the message
    • sodium_crypto_shorthash_keygen - Get random bytes for key
    • sodium_crypto_sign - Sign a message
    • sodium_crypto_sign_detached - Sign the message
    • sodium_crypto_sign_ed25519_pk_to_curve25519 - Convert an Ed25519 public key to a Curve25519 public key
    • sodium_crypto_sign_ed25519_sk_to_curve25519 - Convert an Ed25519 secret key to a Curve25519 secret key
    • sodium_crypto_sign_keypair - Randomly generate a secret key and a corresponding public key
    • sodium_crypto_sign_keypair_from_secretkey_and_publickey - Description
    • sodium_crypto_sign_open - Check that the signed message has a valid signature
    • sodium_crypto_sign_publickey - Description
    • sodium_crypto_sign_publickey_from_secretkey - Extract the public key from the secret key
    • sodium_crypto_sign_secretkey - Description
    • sodium_crypto_sign_seed_keypair - Deterministically derive the key pair from a single key
    • sodium_crypto_sign_verify_detached - Verify signature for the message
    • sodium_crypto_stream - Generate a deterministic sequence of bytes from a seed
    • sodium_crypto_stream_keygen - Get random bytes for key
    • sodium_crypto_stream_xor - Encrypt a message
    • sodium_hex2bin - Decodes a hexadecimally encoded binary string
    • sodium_increment - Increment large number
    • sodium_memcmp - Test for equality in constant-time
    • sodium_memzero - Overwrite buf with zeros
    • sodium_pad - Add padding data
    • sodium_unpad - Remove padding data
    • SolrClient::addDocument - Adds a document to the index
    • SolrClient::addDocuments - Adds a collection of SolrInputDocument instances to the index
    • SolrClient::commit - Finalizes all add/deletes made to the index
    • SolrClient::deleteById - Delete by Id
    • SolrClient::deleteByIds - Deletes by Ids
    • SolrClient::deleteByQueries - Removes all documents matching any of the queries
    • SolrClient::deleteByQuery - Deletes all documents matching the given query
    • SolrClient::getById - Get Document By Id. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getByIds - Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getDebug - Returns the debug data for the last connection attempt
    • SolrClient::getOptions - Returns the client options set internally
    • SolrClient::optimize - Defragments the index
    • SolrClient::ping - Checks if Solr server is still up
    • SolrClient::query - Sends a query to the server
    • SolrClient::request - Sends a raw update request
    • SolrClient::rollback - Rollbacks all add/deletes made to the index since the last commit
    • SolrClient::setResponseWriter - Sets the response writer used to prepare the response from Solr
    • SolrClient::setServlet - Changes the specified servlet type to a new value
    • SolrClient::system - Retrieve Solr Server information
    • SolrClient::threads - Checks the threads status
    • SolrClient::__construct - Constructor for the SolrClient object
    • SolrClient::__destruct - Destructor for SolrClient
    • SolrClientException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrCollapseFunction::getField - Returns the field that is being collapsed on
    • SolrCollapseFunction::getHint - Returns collapse hint
    • SolrCollapseFunction::getMax - Returns max parameter
    • SolrCollapseFunction::getMin - Returns min parameter
    • SolrCollapseFunction::getNullPolicy - Returns null policy
    • SolrCollapseFunction::getSize - Returns size parameter
    • SolrCollapseFunction::setField - Sets the field to collapse on
    • SolrCollapseFunction::setHint - Sets collapse hint
    • SolrCollapseFunction::setMax - Selects the group heads by the max value of a numeric field or function query
    • SolrCollapseFunction::setMin - Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::setNullPolicy - Sets the NULL Policy
    • SolrCollapseFunction::setSize - Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::__construct - Constructor
    • SolrCollapseFunction::__toString - Returns a string representing the constructed collapse function
    • SolrDisMaxQuery::addBigramPhraseField - Adds a Phrase Bigram Field (pf2 parameter)
    • SolrDisMaxQuery::addBoostQuery - Adds a boost query field with value and optional boost (bq parameter)
    • SolrDisMaxQuery::addPhraseField - Adds a Phrase Field (pf parameter)
    • SolrDisMaxQuery::addQueryField - Add a query field with optional boost (qf parameter)
    • SolrDisMaxQuery::addTrigramPhraseField - Adds a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::addUserField - Adds a field to User Fields Parameter (uf)
    • SolrDisMaxQuery::removeBigramPhraseField - Removes phrase bigram field (pf2 parameter)
    • SolrDisMaxQuery::removeBoostQuery - Removes a boost query partial by field name (bq)
    • SolrDisMaxQuery::removePhraseField - Removes a Phrase Field (pf parameter)
    • SolrDisMaxQuery::removeQueryField - Removes a Query Field (qf parameter)
    • SolrDisMaxQuery::removeTrigramPhraseField - Removes a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::removeUserField - Removes a field from The User Fields Parameter (uf)
    • SolrDisMaxQuery::setBigramPhraseFields - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setBigramPhraseSlop - Sets Bigram Phrase Slop (ps2 parameter)
    • SolrDisMaxQuery::setBoostFunction - Sets a Boost Function (bf parameter)
    • SolrDisMaxQuery::setBoostQuery - Directly Sets Boost Query Parameter (bq)
    • SolrDisMaxQuery::setMinimumMatch - Set Minimum "Should" Match (mm)
    • SolrDisMaxQuery::setPhraseFields - Sets Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setPhraseSlop - Sets the default slop on phrase queries (ps parameter)
    • SolrDisMaxQuery::setQueryAlt - Set Query Alternate (q.alt parameter)
    • SolrDisMaxQuery::setQueryPhraseSlop - Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
    • SolrDisMaxQuery::setTieBreaker - Sets Tie Breaker parameter (tie parameter)
    • SolrDisMaxQuery::setTrigramPhraseFields - Directly Sets Trigram Phrase Fields (pf3 parameter)
    • SolrDisMaxQuery::setTrigramPhraseSlop - Sets Trigram Phrase Slop (ps3 parameter)
    • SolrDisMaxQuery::setUserFields - Sets User Fields parameter (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser - Switch QueryParser to be DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser - Switch QueryParser to be EDisMax
    • SolrDisMaxQuery::__construct - Class Constructor
    • SolrDocument::addField - Adds a field to the document
    • SolrDocument::clear - Drops all the fields in the document
    • SolrDocument::current - Retrieves the current field
    • SolrDocument::deleteField - Removes a field from the document
    • SolrDocument::fieldExists - Checks if a field exists in the document
    • SolrDocument::getChildDocuments - Returns an array of child documents (SolrDocument)
    • SolrDocument::getChildDocumentsCount - Returns the number of child documents
    • SolrDocument::getField - Retrieves a field by name
    • SolrDocument::getFieldCount - Returns the number of fields in this document
    • SolrDocument::getFieldNames - Returns an array of fields names in the document
    • SolrDocument::getInputDocument - Returns a SolrInputDocument equivalent of the object
    • SolrDocument::hasChildDocuments - Checks whether the document has any child documents
    • SolrDocument::key - Retrieves the current key
    • SolrDocument::merge - Merges source to the current SolrDocument
    • SolrDocument::next - Moves the internal pointer to the next field
    • SolrDocument::offsetExists - Checks if a particular field exists
    • SolrDocument::offsetGet - Retrieves a field
    • SolrDocument::offsetSet - Adds a field to the document
    • SolrDocument::offsetUnset - Removes a field
    • SolrDocument::reset - This is an alias to SolrDocument::clear()
    • SolrDocument::rewind - Resets the internal pointer to the beginning
    • SolrDocument::serialize - Used for custom serialization
    • SolrDocument::sort - Sorts the fields in the document
    • SolrDocument::toArray - Returns an array representation of the document
    • SolrDocument::unserialize - Custom serialization of SolrDocument objects
    • SolrDocument::valid - Checks if the current position internally is still valid
    • SolrDocument::__clone - Creates a copy of a SolrDocument object
    • SolrDocument::__construct - Constructor
    • SolrDocument::__destruct - Destructor
    • SolrDocument::__get - Access the field as a property
    • SolrDocument::__isset - Checks if a field exists
    • SolrDocument::__set - Adds another field to the document
    • SolrDocument::__unset - Removes a field from the document
    • SolrDocumentField::__construct - Constructor
    • SolrDocumentField::__destruct - Destructor
    • SolrException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrGenericResponse::__construct - Constructor
    • SolrGenericResponse::__destruct - Destructor
    • SolrIllegalArgumentException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrIllegalOperationException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrInputDocument::addChildDocument - Adds a child document for block indexing
    • SolrInputDocument::addChildDocuments - Adds an array of child documents
    • SolrInputDocument::addField - Adds a field to the document
    • SolrInputDocument::clear - Resets the input document
    • SolrInputDocument::deleteField - Removes a field from the document
    • SolrInputDocument::fieldExists - Checks if a field exists
    • SolrInputDocument::getBoost - Retrieves the current boost value for the document
    • SolrInputDocument::getChildDocuments - Returns an array of child documents (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount - Returns the number of child documents
    • SolrInputDocument::getField - Retrieves a field by name
    • SolrInputDocument::getFieldBoost - Retrieves the boost value for a particular field
    • SolrInputDocument::getFieldCount - Returns the number of fields in the document
    • SolrInputDocument::getFieldNames - Returns an array containing all the fields in the document
    • SolrInputDocument::hasChildDocuments - Returns true if the document has any child documents
    • SolrInputDocument::merge - Merges one input document into another
    • SolrInputDocument::reset - This is an alias of SolrInputDocument::clear
    • SolrInputDocument::setBoost - Sets the boost value for this document
    • SolrInputDocument::setFieldBoost - Sets the index-time boost value for a field
    • SolrInputDocument::sort - Sorts the fields within the document
    • SolrInputDocument::toArray - Returns an array representation of the input document
    • SolrInputDocument::__clone - Creates a copy of a SolrDocument
    • SolrInputDocument::__construct - Constructor
    • SolrInputDocument::__destruct - Destructor
    • SolrModifiableParams::__construct - Constructor
    • SolrModifiableParams::__destruct - Destructor
    • SolrObject::getPropertyNames - Returns an array of all the names of the properties
    • SolrObject::offsetExists - Checks if the property exists
    • SolrObject::offsetGet - Used to retrieve a property
    • SolrObject::offsetSet - Sets the value for a property
    • SolrObject::offsetUnset - Unsets the value for the property
    • SolrObject::__construct - Creates Solr object
    • SolrObject::__destruct - Destructor
    • SolrParams::add - This is an alias for SolrParams::addParam
    • SolrParams::addParam - Adds a parameter to the object
    • SolrParams::get - This is an alias for SolrParams::getParam
    • SolrParams::getParam - Returns a parameter value
    • SolrParams::getParams - Returns an array of non URL-encoded parameters
    • SolrParams::getPreparedParams - Returns an array of URL-encoded parameters
    • SolrParams::serialize - Used for custom serialization
    • SolrParams::set - An alias of SolrParams::setParam
    • SolrParams::setParam - Sets the parameter to the specified value
    • SolrParams::toString - Returns all the name-value pair parameters in the object
    • SolrParams::unserialize - Used for custom serialization
    • SolrPingResponse::getResponse - Returns the response from the server
    • SolrPingResponse::__construct - Constructor
    • SolrPingResponse::__destruct - Destructor
    • SolrQuery::addExpandFilterQuery - Overrides main filter query, determines which documents to include in the main group
    • SolrQuery::addExpandSortField - Orders the documents within the expanded groups (expand.sort parameter)
    • SolrQuery::addFacetDateField - Maps to facet.date
    • SolrQuery::addFacetDateOther - Adds another facet.date.other parameter
    • SolrQuery::addFacetField - Adds another field to the facet
    • SolrQuery::addFacetQuery - Adds a facet query
    • SolrQuery::addField - Specifies which fields to return in the result
    • SolrQuery::addFilterQuery - Specifies a filter query
    • SolrQuery::addGroupField - Add a field to be used to group results
    • SolrQuery::addGroupFunction - Allows grouping results based on the unique values of a function query (group.func parameter)
    • SolrQuery::addGroupQuery - Allows grouping of documents that match the given query
    • SolrQuery::addGroupSortField - Add a group sort field (group.sort parameter)
    • SolrQuery::addHighlightField - Maps to hl.fl
    • SolrQuery::addMltField - Sets a field to use for similarity
    • SolrQuery::addMltQueryField - Maps to mlt.qf
    • SolrQuery::addSortField - Used to control how the results should be sorted
    • SolrQuery::addStatsFacet - Requests a return of sub results for values within the given facet
    • SolrQuery::addStatsField - Maps to stats.field parameter
    • SolrQuery::collapse - Collapses the result set to a single document per group
    • SolrQuery::getExpand - Returns true if group expanding is enabled
    • SolrQuery::getExpandFilterQueries - Returns the expand filter queries
    • SolrQuery::getExpandQuery - Returns the expand query expand.q parameter
    • SolrQuery::getExpandRows - Returns The number of rows to display in each group (expand.rows)
    • SolrQuery::getExpandSortFields - Returns an array of fields
    • SolrQuery::getFacet - Returns the value of the facet parameter
    • SolrQuery::getFacetDateEnd - Returns the value for the facet.date.end parameter
    • SolrQuery::getFacetDateFields - Returns all the facet.date fields
    • SolrQuery::getFacetDateGap - Returns the value of the facet.date.gap parameter
    • SolrQuery::getFacetDateHardEnd - Returns the value of the facet.date.hardend parameter
    • SolrQuery::getFacetDateOther - Returns the value for the facet.date.other parameter
    • SolrQuery::getFacetDateStart - Returns the lower bound for the first date range for all date faceting on this field
    • SolrQuery::getFacetFields - Returns all the facet fields
    • SolrQuery::getFacetLimit - Returns the maximum number of constraint counts that should be returned for the facet fields
    • SolrQuery::getFacetMethod - Returns the value of the facet.method parameter
    • SolrQuery::getFacetMinCount - Returns the minimum counts for facet fields should be included in the response
    • SolrQuery::getFacetMissing - Returns the current state of the facet.missing parameter
    • SolrQuery::getFacetOffset - Returns an offset into the list of constraints to be used for pagination
    • SolrQuery::getFacetPrefix - Returns the facet prefix
    • SolrQuery::getFacetQueries - Returns all the facet queries
    • SolrQuery::getFacetSort - Returns the facet sort type
    • SolrQuery::getFields - Returns the list of fields that will be returned in the response
    • SolrQuery::getFilterQueries - Returns an array of filter queries
    • SolrQuery::getGroup - Returns true if grouping is enabled
    • SolrQuery::getGroupCachePercent - Returns group cache percent value
    • SolrQuery::getGroupFacet - Returns the group.facet parameter value
    • SolrQuery::getGroupFields - Returns group fields (group.field parameter values)
    • SolrQuery::getGroupFormat - Returns the group.format value
    • SolrQuery::getGroupFunctions - Returns group functions (group.func parameter values)
    • SolrQuery::getGroupLimit - Returns the group.limit value
    • SolrQuery::getGroupMain - Returns the group.main value
    • SolrQuery::getGroupNGroups - Returns the group.ngroups value
    • SolrQuery::getGroupOffset - Returns the group.offset value
    • SolrQuery::getGroupQueries - Returns all the group.query parameter values
    • SolrQuery::getGroupSortFields - Returns the group.sort value
    • SolrQuery::getGroupTruncate - Returns the group.truncate value
    • SolrQuery::getHighlight - Returns the state of the hl parameter
    • SolrQuery::getHighlightAlternateField - Returns the highlight field to use as backup or default
    • SolrQuery::getHighlightFields - Returns all the fields that Solr should generate highlighted snippets for
    • SolrQuery::getHighlightFormatter - Returns the formatter for the highlighted output
    • SolrQuery::getHighlightFragmenter - Returns the text snippet generator for highlighted text
    • SolrQuery::getHighlightFragsize - Returns the number of characters of fragments to consider for highlighting
    • SolrQuery::getHighlightHighlightMultiTerm - Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
    • SolrQuery::getHighlightMaxAlternateFieldLength - Returns the maximum number of characters of the field to return
    • SolrQuery::getHighlightMaxAnalyzedChars - Returns the maximum number of characters into a document to look for suitable snippets
    • SolrQuery::getHighlightMergeContiguous - Returns whether or not the collapse contiguous fragments into a single fragment
    • SolrQuery::getHighlightRegexMaxAnalyzedChars - Returns the maximum number of characters from a field when using the regex fragmenter
    • SolrQuery::getHighlightRegexPattern - Returns the regular expression for fragmenting
    • SolrQuery::getHighlightRegexSlop - Returns the deviation factor from the ideal fragment size
    • SolrQuery::getHighlightRequireFieldMatch - Returns if a field will only be highlighted if the query matched in this particular field
    • SolrQuery::getHighlightSimplePost - Returns the text which appears after a highlighted term
    • SolrQuery::getHighlightSimplePre - Returns the text which appears before a highlighted term
    • SolrQuery::getHighlightSnippets - Returns the maximum number of highlighted snippets to generate per field
    • SolrQuery::getHighlightUsePhraseHighlighter - Returns the state of the hl.usePhraseHighlighter parameter
    • SolrQuery::getMlt - Returns whether or not MoreLikeThis results should be enabled
    • SolrQuery::getMltBoost - Returns whether or not the query will be boosted by the interesting term relevance
    • SolrQuery::getMltCount - Returns the number of similar documents to return for each result
    • SolrQuery::getMltFields - Returns all the fields to use for similarity
    • SolrQuery::getMltMaxNumQueryTerms - Returns the maximum number of query terms that will be included in any generated query
    • SolrQuery::getMltMaxNumTokens - Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support
    • SolrQuery::getMltMaxWordLength - Returns the maximum word length above which words will be ignored
    • SolrQuery::getMltMinDocFrequency - Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
    • SolrQuery::getMltMinTermFrequency - Returns the frequency below which terms will be ignored in the source document
    • SolrQuery::getMltMinWordLength - Returns the minimum word length below which words will be ignored
    • SolrQuery::getMltQueryFields - Returns the query fields and their boosts
    • SolrQuery::getQuery - Returns the main query
    • SolrQuery::getRows - Returns the maximum number of documents
    • SolrQuery::getSortFields - Returns all the sort fields
    • SolrQuery::getStart - Returns the offset in the complete result set
    • SolrQuery::getStats - Returns whether or not stats is enabled
    • SolrQuery::getStatsFacets - Returns all the stats facets that were set
    • SolrQuery::getStatsFields - Returns all the statistics fields
    • SolrQuery::getTerms - Returns whether or not the TermsComponent is enabled
    • SolrQuery::getTermsField - Returns the field from which the terms are retrieved
    • SolrQuery::getTermsIncludeLowerBound - Returns whether or not to include the lower bound in the result set
    • SolrQuery::getTermsIncludeUpperBound - Returns whether or not to include the upper bound term in the result set
    • SolrQuery::getTermsLimit - Returns the maximum number of terms Solr should return
    • SolrQuery::getTermsLowerBound - Returns the term to start at
    • SolrQuery::getTermsMaxCount - Returns the maximum document frequency
    • SolrQuery::getTermsMinCount - Returns the minimum document frequency to return in order to be included
    • SolrQuery::getTermsPrefix - Returns the term prefix
    • SolrQuery::getTermsReturnRaw - Whether or not to return raw characters
    • SolrQuery::getTermsSort - Returns an integer indicating how terms are sorted
    • SolrQuery::getTermsUpperBound - Returns the term to stop at
    • SolrQuery::getTimeAllowed - Returns the time in milliseconds allowed for the query to finish
    • SolrQuery::removeExpandFilterQuery - Removes an expand filter query
    • SolrQuery::removeExpandSortField - Removes an expand sort field from the expand.sort parameter
    • SolrQuery::removeFacetDateField - Removes one of the facet date fields
    • SolrQuery::removeFacetDateOther - Removes one of the facet.date.other parameters
    • SolrQuery::removeFacetField - Removes one of the facet.date parameters
    • SolrQuery::removeFacetQuery - Removes one of the facet.query parameters
    • SolrQuery::removeField - Removes a field from the list of fields
    • SolrQuery::removeFilterQuery - Removes a filter query
    • SolrQuery::removeHighlightField - Removes one of the fields used for highlighting
    • SolrQuery::removeMltField - Removes one of the moreLikeThis fields
    • SolrQuery::removeMltQueryField - Removes one of the moreLikeThis query fields
    • SolrQuery::removeSortField - Removes one of the sort fields
    • SolrQuery::removeStatsFacet - Removes one of the stats.facet parameters
    • SolrQuery::removeStatsField - Removes one of the stats.field parameters
    • SolrQuery::setEchoHandler - Toggles the echoHandler parameter
    • SolrQuery::setEchoParams - Determines what kind of parameters to include in the response
    • SolrQuery::setExpand - Enables/Disables the Expand Component
    • SolrQuery::setExpandQuery - Sets the expand.q parameter
    • SolrQuery::setExpandRows - Sets the number of rows to display in each group (expand.rows). Server Default 5
    • SolrQuery::setExplainOther - Sets the explainOther common query parameter
    • SolrQuery::setFacet - Maps to the facet parameter. Enables or disables facetting
    • SolrQuery::setFacetDateEnd - Maps to facet.date.end
    • SolrQuery::setFacetDateGap - Maps to facet.date.gap
    • SolrQuery::setFacetDateHardEnd - Maps to facet.date.hardend
    • SolrQuery::setFacetDateStart - Maps to facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency - Sets the minimum document frequency used for determining term count
    • SolrQuery::setFacetLimit - Maps to facet.limit
    • SolrQuery::setFacetMethod - Specifies the type of algorithm to use when faceting a field
    • SolrQuery::setFacetMinCount - Maps to facet.mincount
    • SolrQuery::setFacetMissing - Maps to facet.missing
    • SolrQuery::setFacetOffset - Sets the offset into the list of constraints to allow for pagination
    • SolrQuery::setFacetPrefix - Specifies a string prefix with which to limits the terms on which to facet
    • SolrQuery::setFacetSort - Determines the ordering of the facet field constraints
    • SolrQuery::setGroup - Enable/Disable result grouping (group parameter)
    • SolrQuery::setGroupCachePercent - Enables caching for result grouping
    • SolrQuery::setGroupFacet - Sets group.facet parameter
    • SolrQuery::setGroupFormat - Sets the group format, result structure (group.format parameter)
    • SolrQuery::setGroupLimit - Specifies the number of results to return for each group. The server default value is 1
    • SolrQuery::setGroupMain - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
    • SolrQuery::setGroupNGroups - If true, Solr includes the number of groups that have matched the query in the results
    • SolrQuery::setGroupOffset - Sets the group.offset parameter
    • SolrQuery::setGroupTruncate - If true, facet counts are based on the most relevant document of each group matching the query
    • SolrQuery::setHighlight - Enables or disables highlighting
    • SolrQuery::setHighlightAlternateField - Specifies the backup field to use
    • SolrQuery::setHighlightFormatter - Specify a formatter for the highlight output
    • SolrQuery::setHighlightFragmenter - Sets a text snippet generator for highlighted text
    • SolrQuery::setHighlightFragsize - The size of fragments to consider for highlighting
    • SolrQuery::setHighlightHighlightMultiTerm - Use SpanScorer to highlight phrase terms
    • SolrQuery::setHighlightMaxAlternateFieldLength - Sets the maximum number of characters of the field to return
    • SolrQuery::setHighlightMaxAnalyzedChars - Specifies the number of characters into a document to look for suitable snippets
    • SolrQuery::setHighlightMergeContiguous - Whether or not to collapse contiguous fragments into a single fragment
    • SolrQuery::setHighlightRegexMaxAnalyzedChars - Specify the maximum number of characters to analyze
    • SolrQuery::setHighlightRegexPattern - Specify the regular expression for fragmenting
    • SolrQuery::setHighlightRegexSlop - Sets the factor by which the regex fragmenter can stray from the ideal fragment size
    • SolrQuery::setHighlightRequireFieldMatch - Require field matching during highlighting
    • SolrQuery::setHighlightSimplePost - Sets the text which appears after a highlighted term
    • SolrQuery::setHighlightSimplePre - Sets the text which appears before a highlighted term
    • SolrQuery::setHighlightSnippets - Sets the maximum number of highlighted snippets to generate per field
    • SolrQuery::setHighlightUsePhraseHighlighter - Whether to highlight phrase terms only when they appear within the query phrase
    • SolrQuery::setMlt - Enables or disables moreLikeThis
    • SolrQuery::setMltBoost - Set if the query will be boosted by the interesting term relevance
    • SolrQuery::setMltCount - Set the number of similar documents to return for each result
    • SolrQuery::setMltMaxNumQueryTerms - Sets the maximum number of query terms included
    • SolrQuery::setMltMaxNumTokens - Specifies the maximum number of tokens to parse
    • SolrQuery::setMltMaxWordLength - Sets the maximum word length
    • SolrQuery::setMltMinDocFrequency - Sets the mltMinDoc frequency
    • SolrQuery::setMltMinTermFrequency - Sets the frequency below which terms will be ignored in the source docs
    • SolrQuery::setMltMinWordLength - Sets the minimum word length
    • SolrQuery::setOmitHeader - Exclude the header from the returned results
    • SolrQuery::setQuery - Sets the search query
    • SolrQuery::setRows - Specifies the maximum number of rows to return in the result
    • SolrQuery::setShowDebugInfo - Flag to show debug information
    • SolrQuery::setStart - Specifies the number of rows to skip
    • SolrQuery::setStats - Enables or disables the Stats component
    • SolrQuery::setTerms - Enables or disables the TermsComponent
    • SolrQuery::setTermsField - Sets the name of the field to get the Terms from
    • SolrQuery::setTermsIncludeLowerBound - Include the lower bound term in the result set
    • SolrQuery::setTermsIncludeUpperBound - Include the upper bound term in the result set
    • SolrQuery::setTermsLimit - Sets the maximum number of terms to return
    • SolrQuery::setTermsLowerBound - Specifies the Term to start from
    • SolrQuery::setTermsMaxCount - Sets the maximum document frequency
    • SolrQuery::setTermsMinCount - Sets the minimum document frequency
    • SolrQuery::setTermsPrefix - Restrict matches to terms that start with the prefix
    • SolrQuery::setTermsReturnRaw - Return the raw characters of the indexed term
    • SolrQuery::setTermsSort - Specifies how to sort the returned terms
    • SolrQuery::setTermsUpperBound - Sets the term to stop at
    • SolrQuery::setTimeAllowed - The time allowed for search to finish
    • SolrQuery::__construct - Constructor
    • SolrQuery::__destruct - Destructor
    • SolrQueryResponse::__construct - Constructor
    • SolrQueryResponse::__destruct - Destructor
    • SolrResponse::getDigestedResponse - Returns the XML response as serialized PHP data
    • SolrResponse::getHttpStatus - Returns the HTTP status of the response
    • SolrResponse::getHttpStatusMessage - Returns more details on the HTTP status
    • SolrResponse::getRawRequest - Returns the raw request sent to the Solr server
    • SolrResponse::getRawRequestHeaders - Returns the raw request headers sent to the Solr server
    • SolrResponse::getRawResponse - Returns the raw response from the server
    • SolrResponse::getRawResponseHeaders - Returns the raw response headers from the server
    • SolrResponse::getRequestUrl - Returns the full URL the request was sent to
    • SolrResponse::getResponse - Returns a SolrObject representing the XML response from the server
    • SolrResponse::setParseMode - Sets the parse mode
    • SolrResponse::success - Was the request a success
    • SolrServerException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrUpdateResponse::__construct - Constructor
    • SolrUpdateResponse::__destruct - Destructor
    • SolrUtils::digestXmlResponse - Parses an response XML string into a SolrObject
    • SolrUtils::escapeQueryChars - Escapes a lucene query string
    • SolrUtils::getSolrVersion - Returns the current version of the Solr extension
    • SolrUtils::queryPhrase - Prepares a phrase from an unescaped lucene string
    • solr_get_version - Returns the current version of the Apache Solr extension
    • sort - Sortiert ein Array
    • soundex - Berechnet die Laut-Ähnlichkeit eines Strings
    • SphinxClient::addQuery - Add query to multi-query batch
    • SphinxClient::buildExcerpts - Build text snippets
    • SphinxClient::buildKeywords - Extract keywords from query
    • SphinxClient::close - Closes previously opened persistent connection
    • SphinxClient::escapeString - Escape special characters
    • SphinxClient::getLastError - Get the last error message
    • SphinxClient::getLastWarning - Get the last warning
    • SphinxClient::open - Opens persistent connection to the server
    • SphinxClient::query - Execute search query
    • SphinxClient::resetFilters - Clear all filters
    • SphinxClient::resetGroupBy - Clear all group-by settings
    • SphinxClient::runQueries - Run a batch of search queries
    • SphinxClient::setArrayResult - Change the format of result set array
    • SphinxClient::setConnectTimeout - Set connection timeout
    • SphinxClient::setFieldWeights - Set field weights
    • SphinxClient::setFilter - Add new integer values set filter
    • SphinxClient::setFilterFloatRange - Add new float range filter
    • SphinxClient::setFilterRange - Add new integer range filter
    • SphinxClient::setGeoAnchor - Set anchor point for a geosphere distance calculations
    • SphinxClient::setGroupBy - Set grouping attribute
    • SphinxClient::setGroupDistinct - Set attribute name for per-group distinct values count calculations
    • SphinxClient::setIDRange - Set a range of accepted document IDs
    • SphinxClient::setIndexWeights - Set per-index weights
    • SphinxClient::setLimits - Set offset and limit of the result set
    • SphinxClient::setMatchMode - Set full-text query matching mode
    • SphinxClient::setMaxQueryTime - Set maximum query time
    • SphinxClient::setOverride - Sets temporary per-document attribute value overrides
    • SphinxClient::setRankingMode - Set ranking mode
    • SphinxClient::setRetries - Set retry count and delay
    • SphinxClient::setSelect - Set select clause
    • SphinxClient::setServer - Set searchd host and port
    • SphinxClient::setSortMode - Set matches sorting mode
    • SphinxClient::status - Queries searchd status
    • SphinxClient::updateAttributes - Update document attributes
    • SphinxClient::__construct - Create a new SphinxClient object
    • SplDoublyLinkedList::add - Add/insert a new value at the specified index
    • SplDoublyLinkedList::bottom - Peeks at the node from the beginning of the doubly linked list
    • SplDoublyLinkedList::count - Counts the number of elements in the doubly linked list
    • SplDoublyLinkedList::current - Return current array entry
    • SplDoublyLinkedList::getIteratorMode - Returns the mode of iteration
    • SplDoublyLinkedList::isEmpty - Checks whether the doubly linked list is empty
    • SplDoublyLinkedList::key - Return current node index
    • SplDoublyLinkedList::next - Move to next entry
    • SplDoublyLinkedList::offsetExists - Returns whether the requested $index exists
    • SplDoublyLinkedList::offsetGet - Returns the value at the specified $index
    • SplDoublyLinkedList::offsetSet - Sets the value at the specified $index to $newval
    • SplDoublyLinkedList::offsetUnset - Unsets the value at the specified $index
    • SplDoublyLinkedList::pop - Pops a node from the end of the doubly linked list
    • SplDoublyLinkedList::prev - Move to previous entry
    • SplDoublyLinkedList::push - Pushes an element at the end of the doubly linked list
    • SplDoublyLinkedList::rewind - Rewind iterator back to the start
    • SplDoublyLinkedList::serialize - Serializes the storage
    • SplDoublyLinkedList::setIteratorMode - Sets the mode of iteration
    • SplDoublyLinkedList::shift - Shifts a node from the beginning of the doubly linked list
    • SplDoublyLinkedList::top - Peeks at the node from the end of the doubly linked list
    • SplDoublyLinkedList::unserialize - Unserializes the storage
    • SplDoublyLinkedList::unshift - Prepends the doubly linked list with an element
    • SplDoublyLinkedList::valid - Check whether the doubly linked list contains more nodes
    • SplDoublyLinkedList::__construct - Constructs a new doubly linked list
    • SplFileInfo::getATime - Gets last access time of the file
    • SplFileInfo::getBasename - Gets the base name of the file
    • SplFileInfo::getCTime - Gets the inode change time
    • SplFileInfo::getExtension - Gets the file extension
    • SplFileInfo::getFileInfo - Gets an SplFileInfo object for the file
    • SplFileInfo::getFilename - Gets the filename
    • SplFileInfo::getGroup - Gets the file group
    • SplFileInfo::getInode - Gets the inode for the file
    • SplFileInfo::getLinkTarget - Gets the target of a link
    • SplFileInfo::getMTime - Gets the last modified time
    • SplFileInfo::getOwner - Gets the owner of the file
    • SplFileInfo::getPath - Gets the path without filename
    • SplFileInfo::getPathInfo - Gets an SplFileInfo object for the path
    • SplFileInfo::getPathname - Gets the path to the file
    • SplFileInfo::getPerms - Gets file permissions
    • SplFileInfo::getRealPath - Gets absolute path to file
    • SplFileInfo::getSize - Gets file size
    • SplFileInfo::getType - Gets file type
    • SplFileInfo::isDir - Tells if the file is a directory
    • SplFileInfo::isExecutable - Tells if the file is executable
    • SplFileInfo::isFile - Tells if the object references a regular file
    • SplFileInfo::isLink - Tells if the file is a link
    • SplFileInfo::isReadable - Tells if file is readable
    • SplFileInfo::isWritable - Tells if the entry is writable
    • SplFileInfo::openFile - Gets an SplFileObject object for the file
    • SplFileInfo::setFileClass - Sets the class used with SplFileInfo::openFile
    • SplFileInfo::setInfoClass - Sets the class used with SplFileInfo::getFileInfo and SplFileInfo::getPathInfo
    • SplFileInfo::__construct - Construct a new SplFileInfo object
    • SplFileInfo::__toString - Returns the path to the file as a string
    • SplFileObject::current - Retrieve current line of file
    • SplFileObject::eof - Reached end of file
    • SplFileObject::fflush - Flushes the output to the file
    • SplFileObject::fgetc - Gets character from file
    • SplFileObject::fgetcsv - Gets line from file and parse as CSV fields
    • SplFileObject::fgets - Gets line from file
    • SplFileObject::fgetss - Gets line from file and strip HTML tags
    • SplFileObject::flock - Portable file locking
    • SplFileObject::fpassthru - Output all remaining data on a file pointer
    • SplFileObject::fputcsv - Write a field array as a CSV line
    • SplFileObject::fread - Read from file
    • SplFileObject::fscanf - Parses input from file according to a format
    • SplFileObject::fseek - Seek to a position
    • SplFileObject::fstat - Gets information about the file
    • SplFileObject::ftell - Return current file position
    • SplFileObject::ftruncate - Truncates the file to a given length
    • SplFileObject::fwrite - Write to file
    • SplFileObject::getChildren - No purpose
    • SplFileObject::getCsvControl - Get the delimiter, enclosure and escape character for CSV
    • SplFileObject::getCurrentLine - Alias of SplFileObject::fgets
    • SplFileObject::getFlags - Gets flags for the SplFileObject
    • SplFileObject::getMaxLineLen - Get maximum line length
    • SplFileObject::hasChildren - SplFileObject does not have children
    • SplFileObject::key - Get line number
    • SplFileObject::next - Read next line
    • SplFileObject::rewind - Rewind the file to the first line
    • SplFileObject::seek - Seek to specified line
    • SplFileObject::setCsvControl - Set the delimiter, enclosure and escape character for CSV
    • SplFileObject::setFlags - Sets flags for the SplFileObject
    • SplFileObject::setMaxLineLen - Set maximum line length
    • SplFileObject::valid - Not at EOF
    • SplFileObject::__construct - Construct a new file object
    • SplFileObject::__toString - Alias of SplFileObject::fgets
    • SplFixedArray::count - Returns the size of the array
    • SplFixedArray::current - Return current array entry
    • SplFixedArray::fromArray - Import a PHP array in a SplFixedArray instance
    • SplFixedArray::getSize - Gets the size of the array
    • SplFixedArray::key - Return current array index
    • SplFixedArray::next - Move to next entry
    • SplFixedArray::offsetExists - Returns whether the requested index exists
    • SplFixedArray::offsetGet - Returns the value at the specified index
    • SplFixedArray::offsetSet - Sets a new value at a specified index
    • SplFixedArray::offsetUnset - Unsets the value at the specified $index
    • SplFixedArray::rewind - Rewind iterator back to the start
    • SplFixedArray::setSize - Change the size of an array
    • SplFixedArray::toArray - Returns a PHP array from the fixed array
    • SplFixedArray::valid - Check whether the array contains more elements
    • SplFixedArray::__construct - Constructs a new fixed array
    • SplFixedArray::__wakeup - Reinitialises the array after being unserialised
    • SplHeap::compare - Compare elements in order to place them correctly in the heap while sifting up
    • SplHeap::count - Counts the number of elements in the heap
    • SplHeap::current - Return current node pointed by the iterator
    • SplHeap::extract - Extracts a node from top of the heap and sift up
    • SplHeap::insert - Inserts an element in the heap by sifting it up
    • SplHeap::isCorrupted - Tells if the heap is in a corrupted state
    • SplHeap::isEmpty - Checks whether the heap is empty
    • SplHeap::key - Return current node index
    • SplHeap::next - Move to the next node
    • SplHeap::recoverFromCorruption - Recover from the corrupted state and allow further actions on the heap
    • SplHeap::rewind - Rewind iterator back to the start (no-op)
    • SplHeap::top - Peeks at the node from the top of the heap
    • SplHeap::valid - Check whether the heap contains more nodes
    • SplHeap::__construct - Constructs a new empty heap
    • 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
    • SplMaxHeap::compare - Compare elements in order to place them correctly in the heap while sifting up
    • SplMinHeap::compare - Compare elements in order to place them correctly in the heap while sifting up
    • SplObjectStorage::addAll - Adds all objects from another storage
    • SplObjectStorage::attach - Adds an object in the storage
    • SplObjectStorage::contains - Checks if the storage contains a specific object
    • SplObjectStorage::count - Returns the number of objects in the storage
    • SplObjectStorage::current - Returns the current storage entry
    • SplObjectStorage::detach - Removes an object from the storage
    • SplObjectStorage::getHash - Calculate a unique identifier for the contained objects
    • SplObjectStorage::getInfo - Returns the data associated with the current iterator entry
    • SplObjectStorage::key - Returns the index at which the iterator currently is
    • SplObjectStorage::next - Move to the next entry
    • SplObjectStorage::offsetExists - Checks whether an object exists in the storage
    • SplObjectStorage::offsetGet - Returns the data associated with an object
    • SplObjectStorage::offsetSet - Associates data to an object in the storage
    • SplObjectStorage::offsetUnset - Removes an object from the storage
    • SplObjectStorage::removeAll - Removes objects contained in another storage from the current storage
    • SplObjectStorage::removeAllExcept - Removes all objects except for those contained in another storage from the current storage
    • SplObjectStorage::rewind - Rewind the iterator to the first storage element
    • SplObjectStorage::serialize - Serializes the storage
    • SplObjectStorage::setInfo - Sets the data associated with the current iterator entry
    • SplObjectStorage::unserialize - Unserializes a storage from its string representation
    • SplObjectStorage::valid - Returns if the current iterator entry is valid
    • SplObserver::update - Receive update from subject
    • SplPriorityQueue::compare - Compare priorities in order to place elements correctly in the heap while sifting up
    • SplPriorityQueue::count - Counts the number of elements in the queue
    • SplPriorityQueue::current - Return current node pointed by the iterator
    • SplPriorityQueue::extract - Extracts a node from top of the heap and sift up
    • SplPriorityQueue::getExtractFlags - Get the flags of extraction
    • SplPriorityQueue::insert - Inserts an element in the queue by sifting it up
    • SplPriorityQueue::isCorrupted - Tells if the priority queue is in a corrupted state
    • SplPriorityQueue::isEmpty - Checks whether the queue is empty
    • SplPriorityQueue::key - Return current node index
    • SplPriorityQueue::next - Move to the next node
    • SplPriorityQueue::recoverFromCorruption - Recover from the corrupted state and allow further actions on the queue
    • SplPriorityQueue::rewind - Rewind iterator back to the start (no-op)
    • SplPriorityQueue::setExtractFlags - Sets the mode of extraction
    • SplPriorityQueue::top - Peeks at the node from the top of the queue
    • SplPriorityQueue::valid - Check whether the queue contains more nodes
    • SplPriorityQueue::__construct - Constructs a new empty queue
    • SplQueue::dequeue - Dequeues a node from the queue
    • SplQueue::enqueue - Adds an element to the queue
    • SplQueue::setIteratorMode - Sets the mode of iteration
    • SplQueue::__construct - Constructs a new queue implemented using a doubly linked list
    • SplStack::setIteratorMode - Sets the mode of iteration
    • SplStack::__construct - Constructs a new stack implemented using a doubly linked list
    • SplSubject::attach - Attach an SplObserver
    • SplSubject::detach - Detach an observer
    • SplSubject::notify - Notify an observer
    • SplTempFileObject::__construct - Construct a new temporary file object
    • spl_autoload - Default implementation for __autoload()
    • spl_autoload_call - Try all registered __autoload() functions to load the requested class
    • spl_autoload_extensions - Registriert und gibt die voreingestellten Dateiendungen für spl_autoload zurück
    • spl_autoload_functions - Liefert alle registrierten __autoload() Funktionen
    • spl_autoload_register - Register given function as __autoload() implementation
    • spl_autoload_unregister - Unregister given function as __autoload() implementation
    • spl_classes - Return available SPL classes
    • spl_object_hash - Return hash id for given object
    • spl_object_id - Return the integer object handle for given object
    • Spoofchecker::areConfusable - Checks if given strings can be confused
    • Spoofchecker::isSuspicious - Checks if a given text contains any suspicious characters
    • Spoofchecker::setAllowedLocales - Locales to use when running checks
    • Spoofchecker::setChecks - Set the checks to run
    • Spoofchecker::__construct - Constructor
    • sprintf - Gibt einen formatierten String zurück
    • SQLite3::backup - Backup one database to another database
    • SQLite3::busyTimeout - Sets the busy connection handler
    • SQLite3::changes - Gibt die Anzahl der Datenbankreihen zurück, die durch die letzte SQL-Anfrage verändert, gelöscht oder hinzugefügt wurden.
    • SQLite3::close - Beendet eine Datenbankverbindung
    • SQLite3::createAggregate - Registriert eine PHP-Funktion zum Gebrauch als SQL-Aggregat-Funktion
    • SQLite3::createCollation - Registers a PHP function for use as an SQL collating function
    • SQLite3::createFunction - Registriert eine PHP-Funktion, die als SQL-Skalar-Funktion genutzt werden kann
    • SQLite3::enableExceptions - Enable throwing exceptions
    • SQLite3::escapeString - Gibt eine passend maskierte Zeichenkette zurück
    • SQLite3::exec - Führt eine ergebnislose Abfrage gegen den Datenbank-Server aus
    • SQLite3::lastErrorCode - Gibt den numerischen Ergebniscode der letzten fehlgeschlagenen SQLite-Anweisung zurück
    • SQLite3::lastErrorMsg - Gibt einen englischen Text zurück, der die letzten fehlgeschlagenen SQLite-Anfrage beschreibt.
    • SQLite3::lastInsertRowID - Gibt die Datensatz-Id des zuletzt getätigten INSERT in die Datenbank zurück
    • SQLite3::loadExtension - Versucht eine SQLite-Erweiterungsbibliothek zu laden.
    • SQLite3::open - Öffnet eine SQlite-Datenbank
    • SQLite3::openBlob - Opens a stream resource to read a BLOB
    • SQLite3::prepare - Bereitet eine SQL-Anweisung für die Ausführung vor
    • SQLite3::query - Führt eine SQL-Anfrage aus
    • SQLite3::querySingle - Executes a query and returns a single result
    • SQLite3::setAuthorizer - Configures a callback to be used as an authorizer to limit what a statement can do
    • SQLite3::version - Returns the SQLite3 library version as a string constant and as a number
    • SQLite3::__construct - Instanziiert ein SQLite3-Objekt und öffnet eine SQLite3-Datenbank
    • SQLite3Result::columnName - Returns the name of the nth column
    • SQLite3Result::columnType - Returns the type of the nth column
    • SQLite3Result::fetchArray - Fetches a result row as an associative or numerically indexed array or both
    • SQLite3Result::finalize - Closes the result set
    • SQLite3Result::numColumns - Returns the number of columns in the result set
    • SQLite3Result::reset - Resets the result set back to the first row
    • SQLite3Stmt::bindParam - Binds a parameter to a statement variable
    • SQLite3Stmt::bindValue - Binds the value of a parameter to a statement variable
    • SQLite3Stmt::clear - Clears all current bound parameters
    • SQLite3Stmt::close - Closes the prepared statement
    • SQLite3Stmt::execute - Executes a prepared statement and returns a result set object
    • SQLite3Stmt::getSQL - Get the SQL of the statement
    • SQLite3Stmt::paramCount - Returns the number of parameters within the prepared statement
    • SQLite3Stmt::readOnly - Returns whether a statement is definitely read only
    • SQLite3Stmt::reset - Resets the prepared statement
    • sqlsrv_begin_transaction - Begins a database transaction
    • sqlsrv_cancel - Cancels a statement
    • sqlsrv_client_info - Returns information about the client and specified connection
    • sqlsrv_close - Closes an open connection and releases resourses associated with the connection
    • sqlsrv_commit - Commits a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_configure - Changes the driver error handling and logging configurations
    • sqlsrv_connect - Opens a connection to a Microsoft SQL Server database
    • sqlsrv_errors - Returns error and warning information about the last SQLSRV operation performed
    • sqlsrv_execute - Executes a statement prepared with sqlsrv_prepare
    • sqlsrv_fetch - Makes the next row in a result set available for reading
    • sqlsrv_fetch_array - Returns a row as an array
    • sqlsrv_fetch_object - Retrieves the next row of data in a result set as an object
    • sqlsrv_field_metadata - Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
    • sqlsrv_free_stmt - Frees all resources for the specified statement
    • sqlsrv_get_config - Returns the value of the specified configuration setting
    • sqlsrv_get_field - Gets field data from the currently selected row
    • sqlsrv_has_rows - Indicates whether the specified statement has rows
    • sqlsrv_next_result - Makes the next result of the specified statement active
    • sqlsrv_num_fields - Retrieves the number of fields (columns) on a statement
    • sqlsrv_num_rows - Retrieves the number of rows in a result set
    • sqlsrv_prepare - Prepares a query for execution
    • sqlsrv_query - Prepares and executes a query
    • sqlsrv_rollback - Rolls back a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_rows_affected - Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed
    • sqlsrv_send_stream_data - Sends data from parameter streams to the server
    • sqlsrv_server_info - Returns information about the server
    • SqlStatement::bind - Bind statement parameters
    • SqlStatement::execute - Execute the operation
    • SqlStatement::getNextResult - Get next result
    • SqlStatement::getResult - Get result
    • SqlStatement::hasMoreResults - Check for more results
    • SqlStatement::__construct - Description constructor
    • SqlStatementResult::fetchAll - Get all rows from result
    • SqlStatementResult::fetchOne - Get single row
    • SqlStatementResult::getAffectedItemsCount - Get affected row count
    • SqlStatementResult::getColumnNames - Get column names
    • SqlStatementResult::getColumns - Get columns
    • SqlStatementResult::getColumnsCount - Get column count
    • SqlStatementResult::getGeneratedIds - Get generated ids
    • SqlStatementResult::getLastInsertId - Get last insert id
    • SqlStatementResult::getWarnings - Get warnings from last operation
    • SqlStatementResult::getWarningsCount - Get warning count from last operation
    • SqlStatementResult::hasData - Check if result has data
    • SqlStatementResult::nextResult - Get next result
    • SqlStatementResult::__construct - Description constructor
    • sql_regcase - Erstellt einen regulären Ausdruck für eine Suche nach Übereinstimmungen ohne Berücksichtigung von Groß-/Kleinschreibung
    • sqrt - Quadratwurzel
    • srand - Legt den Anfangswert für den Zufallsgenerator fest
    • sscanf - Überträgt einen String in ein angegebenes Format
    • ssdeep_fuzzy_compare - Calculates the match score between two fuzzy hash signatures
    • ssdeep_fuzzy_hash - Create a fuzzy hash from a string
    • ssdeep_fuzzy_hash_filename - Create a fuzzy hash from a file
    • ssh2:// - Secure Shell 2
    • ssh2_auth_agent - Authenticate over SSH using the ssh agent
    • ssh2_auth_hostbased_file - Authenticate using a public hostkey
    • ssh2_auth_none - Authenticate as "none"
    • ssh2_auth_password - Authenticate over SSH using a plain password
    • ssh2_auth_pubkey_file - Authenticate using a public key
    • ssh2_connect - Connect to an SSH server
    • ssh2_disconnect - Close a connection to a remote SSH server
    • ssh2_exec - Execute a command on a remote server
    • ssh2_fetch_stream - Fetch an extended data stream
    • ssh2_fingerprint - Retrieve fingerprint of remote server
    • ssh2_forward_accept - Accept a connection created by a listener
    • ssh2_forward_listen - Bind a port on the remote server and listen for connections
    • ssh2_methods_negotiated - Return list of negotiated methods
    • ssh2_poll - Poll the channels/listeners/streams for events
    • ssh2_publickey_add - Add an authorized publickey
    • ssh2_publickey_init - Initialize Publickey subsystem
    • ssh2_publickey_list - List currently authorized publickeys
    • ssh2_publickey_remove - Remove an authorized publickey
    • ssh2_scp_recv - Request a file via SCP
    • ssh2_scp_send - Send a file via SCP
    • ssh2_sftp - Initialize SFTP subsystem
    • ssh2_sftp_chmod - Changes file mode
    • ssh2_sftp_lstat - Stat a symbolic link
    • ssh2_sftp_mkdir - Create a directory
    • ssh2_sftp_readlink - Return the target of a symbolic link
    • ssh2_sftp_realpath - Resolve the realpath of a provided path string
    • ssh2_sftp_rename - Rename a remote file
    • ssh2_sftp_rmdir - Remove a directory
    • ssh2_sftp_stat - Stat a file on a remote filesystem
    • ssh2_sftp_symlink - Create a symlink
    • ssh2_sftp_unlink - Delete a file
    • ssh2_shell - Request an interactive shell
    • ssh2_tunnel - Open a tunnel through a remote server
    • SSL-Kontext-Optionen - Liste der SSL-Kontext-Optionen
    • stat - Sammelt Informationen über eine Datei
    • Statement::getNextResult - Get next result
    • Statement::getResult - Get result
    • Statement::hasMoreResults - Check if more results
    • Statement::__construct - Description constructor
    • stats_absolute_deviation - Returns the absolute deviation of an array of values
    • stats_cdf_beta - Calculates any one parameter of the beta distribution given values for the others
    • stats_cdf_binomial - Calculates any one parameter of the binomial distribution given values for the others
    • stats_cdf_cauchy - Calculates any one parameter of the Cauchy distribution given values for the others
    • stats_cdf_chisquare - Calculates any one parameter of the chi-square distribution given values for the others
    • stats_cdf_exponential - Calculates any one parameter of the exponential distribution given values for the others
    • stats_cdf_f - Calculates any one parameter of the F distribution given values for the others
    • stats_cdf_gamma - Calculates any one parameter of the gamma distribution given values for the others
    • stats_cdf_laplace - Calculates any one parameter of the Laplace distribution given values for the others
    • stats_cdf_logistic - Calculates any one parameter of the logistic distribution given values for the others
    • stats_cdf_negative_binomial - Calculates any one parameter of the negative binomial distribution given values for the others
    • stats_cdf_noncentral_chisquare - Calculates any one parameter of the non-central chi-square distribution given values for the others
    • stats_cdf_noncentral_f - Calculates any one parameter of the non-central F distribution given values for the others
    • stats_cdf_noncentral_t - Calculates any one parameter of the non-central t-distribution give values for the others
    • stats_cdf_normal - Calculates any one parameter of the normal distribution given values for the others
    • stats_cdf_poisson - Calculates any one parameter of the Poisson distribution given values for the others
    • stats_cdf_t - Calculates any one parameter of the t-distribution given values for the others
    • stats_cdf_uniform - Calculates any one parameter of the uniform distribution given values for the others
    • stats_cdf_weibull - Calculates any one parameter of the Weibull distribution given values for the others
    • stats_covariance - Computes the covariance of two data sets
    • stats_dens_beta - Probability density function of the beta distribution
    • stats_dens_cauchy - Probability density function of the Cauchy distribution
    • stats_dens_chisquare - Probability density function of the chi-square distribution
    • stats_dens_exponential - Probability density function of the exponential distribution
    • stats_dens_f - Probability density function of the F distribution
    • stats_dens_gamma - Probability density function of the gamma distribution
    • stats_dens_laplace - Probability density function of the Laplace distribution
    • stats_dens_logistic - Probability density function of the logistic distribution
    • stats_dens_normal - Probability density function of the normal distribution
    • stats_dens_pmf_binomial - Probability mass function of the binomial distribution
    • stats_dens_pmf_hypergeometric - Probability mass function of the hypergeometric distribution
    • stats_dens_pmf_negative_binomial - Probability mass function of the negative binomial distribution
    • stats_dens_pmf_poisson - Probability mass function of the Poisson distribution
    • stats_dens_t - Probability density function of the t-distribution
    • stats_dens_uniform - Probability density function of the uniform distribution
    • stats_dens_weibull - Probability density function of the Weibull distribution
    • stats_harmonic_mean - Returns the harmonic mean of an array of values
    • stats_kurtosis - Computes the kurtosis of the data in the array
    • stats_rand_gen_beta - Generates a random deviate from the beta distribution
    • stats_rand_gen_chisquare - Generates a random deviate from the chi-square distribution
    • stats_rand_gen_exponential - Generates a random deviate from the exponential distribution
    • stats_rand_gen_f - Generates a random deviate from the F distribution
    • stats_rand_gen_funiform - Generates uniform float between low (exclusive) and high (exclusive)
    • stats_rand_gen_gamma - Generates a random deviate from the gamma distribution
    • stats_rand_gen_ibinomial - Generates a random deviate from the binomial distribution
    • stats_rand_gen_ibinomial_negative - Generates a random deviate from the negative binomial distribution
    • stats_rand_gen_int - Generates random integer between 1 and 2147483562
    • stats_rand_gen_ipoisson - Generates a single random deviate from a Poisson distribution
    • stats_rand_gen_iuniform - Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
    • stats_rand_gen_noncentral_chisquare - Generates a random deviate from the non-central chi-square distribution
    • stats_rand_gen_noncentral_f - Generates a random deviate from the noncentral F distribution
    • stats_rand_gen_noncentral_t - Generates a single random deviate from a non-central t-distribution
    • stats_rand_gen_normal - Generates a single random deviate from a normal distribution
    • stats_rand_gen_t - Generates a single random deviate from a t-distribution
    • stats_rand_get_seeds - Get the seed values of the random number generator
    • stats_rand_phrase_to_seeds - Generate two seeds for the RGN random number generator
    • stats_rand_ranf - Generates a random floating point number between 0 and 1
    • stats_rand_setall - Set seed values to the random generator
    • stats_skew - Computes the skewness of the data in the array
    • stats_standard_deviation - Returns the standard deviation
    • stats_stat_binomial_coef - Returns a binomial coefficient
    • stats_stat_correlation - Returns the Pearson correlation coefficient of two data sets
    • stats_stat_factorial - Returns the factorial of an integer
    • stats_stat_independent_t - Returns the t-value from the independent two-sample t-test
    • stats_stat_innerproduct - Returns the inner product of two vectors
    • stats_stat_paired_t - Returns the t-value of the dependent t-test for paired samples
    • stats_stat_percentile - Returns the percentile value
    • stats_stat_powersum - Returns the power sum of a vector
    • stats_variance - Returns the variance
    • Stomp::abort - Rolls back a transaction in progress
    • Stomp::ack - Acknowledges consumption of a message
    • Stomp::begin - Starts a transaction
    • Stomp::commit - Commits a transaction in progress
    • Stomp::error - Gets the last stomp error
    • Stomp::getReadTimeout - Gets read timeout
    • Stomp::getSessionId - Gets the current stomp session ID
    • Stomp::hasFrame - Indicates whether or not there is a frame ready to read
    • Stomp::readFrame - Reads the next frame
    • Stomp::send - Sends a message
    • Stomp::setReadTimeout - Sets read timeout
    • Stomp::subscribe - Registers to listen to a given destination
    • Stomp::unsubscribe - Removes an existing subscription
    • Stomp::__construct - Opens a connection
    • Stomp::__destruct - Closes stomp connection
    • StompException::getDetails - Get exception details
    • StompFrame::__construct - Constructor
    • stomp_connect_error - Returns a string description of the last connect error
    • stomp_version - Gets the current stomp extension version
    • strcasecmp - Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)
    • strchr - Alias von strstr
    • strcmp - Vergleich zweier Strings (Binary safe)
    • strcoll - Locale-basierter Zeichenkettenvergleich
    • strcspn - Ermittelt die Anzahl der nicht übereinstimmenden Zeichen
    • streamWrapper::dir_closedir - Close directory handle
    • streamWrapper::dir_opendir - Open directory handle
    • streamWrapper::dir_readdir - Read entry from directory handle
    • streamWrapper::dir_rewinddir - Rewind directory handle
    • streamWrapper::mkdir - Create a directory
    • streamWrapper::rename - Renames a file or directory
    • streamWrapper::rmdir - Removes a directory
    • streamWrapper::stream_cast - Retrieve the underlaying resource
    • streamWrapper::stream_close - Close a resource
    • streamWrapper::stream_eof - Tests for end-of-file on a file pointer
    • streamWrapper::stream_flush - Flushes the output
    • streamWrapper::stream_lock - Advisory file locking
    • streamWrapper::stream_metadata - Change stream metadata
    • streamWrapper::stream_open - Opens file or URL
    • streamWrapper::stream_read - Read from stream
    • streamWrapper::stream_seek - Seeks to specific location in a stream
    • streamWrapper::stream_set_option - Change stream options
    • streamWrapper::stream_stat - Retrieve information about a file resource
    • streamWrapper::stream_tell - Retrieve the current position of a stream
    • streamWrapper::stream_truncate - Truncate stream
    • streamWrapper::stream_write - Write to stream
    • streamWrapper::unlink - Delete a file
    • streamWrapper::url_stat - Retrieve information about a file
    • streamWrapper::__construct - Constructs a new stream wrapper
    • streamWrapper::__destruct - Destructs an existing stream wrapper
    • stream_bucket_append - Append bucket to brigade
    • stream_bucket_make_writeable - Return a bucket object from the brigade for operating on
    • stream_bucket_new - Create a new bucket for use on the current stream
    • stream_bucket_prepend - Prepend bucket to brigade
    • stream_context_create - Creates a stream context
    • stream_context_get_default - Retrieve the default stream context
    • stream_context_get_options - Retrieve options for a stream/wrapper/context
    • stream_context_get_params - Retrieves parameters from a context
    • stream_context_set_default - Set the default stream context
    • stream_context_set_option - Sets an option for a stream/wrapper/context
    • stream_context_set_params - Set parameters for a stream/wrapper/context
    • stream_copy_to_stream - Copies data from one stream to another
    • stream_filter_append - Attach a filter to a stream
    • stream_filter_prepend - Attach a filter to a stream
    • stream_filter_register - Register a user defined stream filter
    • stream_filter_remove - Remove a filter from a stream
    • stream_get_contents - Reads remainder of a stream into a string
    • stream_get_filters - Retrieve list of registered filters
    • stream_get_line - Gets line from stream resource up to a given delimiter
    • stream_get_meta_data - Retrieves header/meta data from streams/file pointers
    • stream_get_transports - Retrieve list of registered socket transports
    • stream_get_wrappers - Retrieve list of registered streams
    • stream_isatty - Check if a stream is a TTY
    • stream_is_local - Checks if a stream is a local stream
    • stream_notification_callback - A callback function for the notification context parameter
    • stream_register_wrapper - Alias von stream_wrapper_register
    • stream_resolve_include_path - Resolve filename against the include path
    • stream_select - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
    • stream_set_blocking - Set blocking/non-blocking mode on a stream
    • stream_set_chunk_size - Set the stream chunk size
    • stream_set_read_buffer - Set read file buffering on the given stream
    • stream_set_timeout - Set timeout period on a stream
    • stream_set_write_buffer - Sets write file buffering on the given stream
    • stream_socket_accept - Accept a connection on a socket created by stream_socket_server
    • stream_socket_client - Open Internet or Unix domain socket connection
    • stream_socket_enable_crypto - Turns encryption on/off on an already connected socket
    • stream_socket_get_name - Retrieve the name of the local or remote sockets
    • stream_socket_pair - Creates a pair of connected, indistinguishable socket streams
    • stream_socket_recvfrom - Receives data from a socket, connected or not
    • stream_socket_sendto - Sends a message to a socket, whether it is connected or not
    • stream_socket_server - Create an Internet or Unix domain server socket
    • stream_socket_shutdown - Shutdown a full-duplex connection
    • stream_supports_lock - Tells whether the stream supports locking
    • stream_wrapper_register - Register a URL wrapper implemented as a PHP class
    • stream_wrapper_restore - Restores a previously unregistered built-in wrapper
    • stream_wrapper_unregister - Unregister a URL wrapper
    • strftime - Formatiere eine Zeit-/Datumsangabe gemäß dem Gebietsschema
    • stripcslashes - Entfernt Quotes aus mit addcslashes behandelten Strings
    • stripos - Findet das erste Vorkommen eines Teilstrings in einem String, unabhängig von Groß- und Kleinschreibung
    • stripslashes - Entfernt Maskierungszeichen aus einem String
    • strip_tags - Entfernt HTML- und PHP-Tags aus einem String
    • stristr - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
    • strlen - Ermitteln der String-Länge
    • strnatcasecmp - String-Vergleich "natürlicher Ordnung" ohne Berücksichtigung der Groß- und Kleinschreibung
    • strnatcmp - String-Vergleich unter Verwendung einer "natürlichen Ordnung"
    • strncasecmp - Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen
    • strncmp - String-Vergleich der ersten n Zeichen (Binary safe)
    • strpbrk - Durchsucht einen String nach einem Zeichen aus einer Gruppe von Zeichen
    • strpos - Sucht die Position des ersten Vorkommens des Suchstrings in einem String
    • strptime - Parse a time/date generated with strftime
    • strrchr - Sucht das letzte Vorkommen eines Zeichens in einem String
    • strrev - Kehrt einen String um
    • strripos - Findet das letzte Vorkommen der gesuchten Zeichenkette in einem String, unabhängig von Groß- und Kleinschreibung
    • strrpos - Findet die Position des letzten Vorkommens eines Teilstrings innerhalb einer Zeichenkette
    • strspn - Ermittelt die Länge des initialen Abschnitts einer Zeichenkette, der ausschließlich aus Zeichen besteht, die in einer übergebenen Maske enthalten sind
    • strstr - Findet das erste Vorkommen eines Strings
    • strtok - Zerlegt einen String
    • strtolower - Setzt einen String in Kleinbuchstaben um
    • strtotime - Wandelt ein beliebiges in englischer Textform angegebenes Datum in einen UNIX-Zeitstempel (Timestamp) um
    • strtoupper - Wandelt alle Zeichen eines Strings in Großbuchstaben um
    • strtr - Tauscht Zeichen aus oder ersetzt Zeichenketten
    • strval - Ermittelt die String-Repräsentation einer Variable
    • str_contains - Determine if a string contains a given substring
    • str_ends_with - Checks if a string ends with a given substring
    • str_getcsv - Parst einen CSV-String in ein Array
    • str_ireplace - Groß- und kleinschreibungsunabhängige Version von str_replace
    • str_pad - Erweitert einen String unter Verwendung eines anderen Strings auf eine bestimmte Länge
    • str_repeat - Wiederholt einen String
    • str_replace - Ersetzt alle Vorkommen des Suchstrings durch einen anderen String
    • str_rot13 - Führt die ROT13-Transformation auf einen String aus
    • str_shuffle - Mischt einen String nach dem Zufallsprinzip
    • str_split - Konvertiert einen String in ein Array
    • str_starts_with - Checks if a string starts with a given substring
    • str_word_count - Gibt Informationen über in einem String verwendete Worte zurück
    • substr - Gibt einen Teil eines Strings zurück
    • substr_compare - Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge
    • substr_count - Ermittelt, wie oft eine Zeichenkette in einem String vorkommt
    • substr_replace - Ersetzt Text innerhalb einer Zeichenkette
    • SVM::crossvalidate - Test training params on subsets of the training data
    • SVM::getOptions - Return the current training parameters
    • SVM::setOptions - Set training parameters
    • SVM::train - Create a SVMModel based on training data
    • SVM::__construct - Construct a new SVM object
    • SVMModel::checkProbabilityModel - Returns true if the model has probability information
    • SVMModel::getLabels - Get the labels the model was trained on
    • SVMModel::getNrClass - Returns the number of classes the model was trained with
    • SVMModel::getSvmType - Get the SVM type the model was trained with
    • SVMModel::getSvrProbability - Get the sigma value for regression types
    • SVMModel::load - Load a saved SVM Model
    • SVMModel::predict - Predict a value for previously unseen data
    • SVMModel::predict_probability - Return class probabilities for previous unseen data
    • SVMModel::save - Save a model to a file
    • SVMModel::__construct - Construct a new SVMModel
    • svn_add - Schedules the addition of an item in a working directory
    • svn_auth_get_parameter - Retrieves authentication parameter
    • svn_auth_set_parameter - Sets an authentication parameter
    • svn_blame - Get the SVN blame for a file
    • svn_cat - Returns the contents of a file in a repository
    • svn_checkout - Checks out a working copy from the repository
    • svn_cleanup - Recursively cleanup a working copy directory, finishing incomplete operations and removing locks
    • svn_client_version - Returns the version of the SVN client libraries
    • svn_commit - Sends changes from the local working copy to the repository
    • svn_delete - Delete items from a working copy or repository
    • svn_diff - Recursively diffs two paths
    • svn_export - Export the contents of a SVN directory
    • svn_fs_abort_txn - Abort a transaction, returns true if everything is okay, false otherwise
    • svn_fs_apply_text - Creates and returns a stream that will be used to replace
    • svn_fs_begin_txn2 - Create a new transaction
    • svn_fs_change_node_prop - Return true if everything is ok, false otherwise
    • svn_fs_check_path - Determines what kind of item lives at path in a given repository fsroot
    • svn_fs_contents_changed - Return true if content is different, false otherwise
    • svn_fs_copy - Copies a file or a directory, returns true if all is ok, false otherwise
    • svn_fs_delete - Deletes a file or a directory, return true if all is ok, false otherwise
    • svn_fs_dir_entries - Enumerates the directory entries under path; returns a hash of dir names to file type
    • svn_fs_file_contents - Returns a stream to access the contents of a file from a given version of the fs
    • svn_fs_file_length - Returns the length of a file from a given version of the fs
    • svn_fs_is_dir - Return true if the path points to a directory, false otherwise
    • svn_fs_is_file - Return true if the path points to a file, false otherwise
    • svn_fs_make_dir - Creates a new empty directory, returns true if all is ok, false otherwise
    • svn_fs_make_file - Creates a new empty file, returns true if all is ok, false otherwise
    • svn_fs_node_created_rev - Returns the revision in which path under fsroot was created
    • svn_fs_node_prop - Returns the value of a property for a node
    • svn_fs_props_changed - Return true if props are different, false otherwise
    • svn_fs_revision_prop - Fetches the value of a named property
    • svn_fs_revision_root - Get a handle on a specific version of the repository root
    • svn_fs_txn_root - Creates and returns a transaction root
    • svn_fs_youngest_rev - Returns the number of the youngest revision in the filesystem
    • svn_import - Imports an unversioned path into a repository
    • svn_log - Returns the commit log messages of a repository URL
    • svn_ls - Returns list of directory contents in repository URL, optionally at revision number
    • svn_mkdir - Creates a directory in a working copy or repository
    • svn_repos_create - Create a new subversion repository at path
    • svn_repos_fs - Gets a handle on the filesystem for a repository
    • svn_repos_fs_begin_txn_for_commit - Create a new transaction
    • svn_repos_fs_commit_txn - Commits a transaction and returns the new revision
    • svn_repos_hotcopy - Make a hot-copy of the repos at repospath; copy it to destpath
    • svn_repos_open - Open a shared lock on a repository
    • svn_repos_recover - Run recovery procedures on the repository located at path
    • svn_revert - Revert changes to the working copy
    • svn_status - Returns the status of working copy files and directories
    • svn_update - Update working copy
    • Swoole\Async::dnsLookup - Async and non-blocking hostname to IP lookup.
    • Swoole\Async::read - Read file stream asynchronously.
    • Swoole\Async::readFile - Read a file asynchronously.
    • Swoole\Async::set - Update the async I/O options.
    • Swoole\Async::write - Write data to a file stream asynchronously.
    • Swoole\Async::writeFile - Description
    • Swoole\Atomic::add - Add a number to the value to the atomic object.
    • Swoole\Atomic::cmpset - Compare and set the value of the atomic object.
    • Swoole\Atomic::get - Get the current value of the atomic object.
    • Swoole\Atomic::set - Set a new value to the atomic object.
    • Swoole\Atomic::sub - Subtract a number to the value of the atomic object.
    • Swoole\Atomic::__construct - Construct a swoole atomic object.
    • Swoole\Buffer::append - Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.
    • Swoole\Buffer::clear - Reset the memory buffer.
    • Swoole\Buffer::expand - Expand the size of memory buffer.
    • Swoole\Buffer::read - Read data from the memory buffer based on offset and length.
    • Swoole\Buffer::recycle - Release the memory to OS which is not used by the memory buffer.
    • Swoole\Buffer::substr - Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.
    • Swoole\Buffer::write - Write data to the memory buffer. The memory allocated for the buffer will not be changed.
    • Swoole\Buffer::__construct - Fixed size memory blocks allocation.
    • Swoole\Buffer::__destruct - Destruct the Swoole memory buffer.
    • Swoole\Buffer::__toString - Get the string value of the memory buffer.
    • Swoole\Channel::pop - Read and pop data from swoole channel.
    • Swoole\Channel::push - Write and push data into Swoole channel.
    • Swoole\Channel::stats - Get stats of swoole channel.
    • Swoole\Channel::__construct - Construct a Swoole Channel
    • Swoole\Channel::__destruct - Destruct a Swoole channel.
    • Swoole\Client::close - Close the connection established.
    • Swoole\Client::connect - Connect to the remote TCP or UDP port.
    • Swoole\Client::getpeername - Get the remote socket name of the connection.
    • Swoole\Client::getsockname - Get the local socket name of the connection.
    • Swoole\Client::isConnected - Check if the connection is established.
    • Swoole\Client::on - Add callback functions triggered by events.
    • Swoole\Client::pause - Pause receiving data.
    • Swoole\Client::pipe - Redirect the data to another file descriptor.
    • Swoole\Client::recv - Receive data from the remote socket.
    • Swoole\Client::resume - Resume receiving data.
    • Swoole\Client::send - Send data to the remote TCP socket.
    • Swoole\Client::sendfile - Send file to the remote TCP socket.
    • Swoole\Client::sendto - Send data to the remote UDP address.
    • Swoole\Client::set - Set the Swoole client parameters before the connection is established.
    • Swoole\Client::sleep - Remove the TCP client from system event loop.
    • Swoole\Client::wakeup - Add the TCP client back into the system event loop.
    • Swoole\Client::__construct - Create Swoole sync or async TCP/UDP client, with or without SSL.
    • Swoole\Client::__destruct - Destruct the Swoole client.
    • Swoole\Connection\Iterator::count - Count connections.
    • Swoole\Connection\Iterator::current - Return current connection entry.
    • Swoole\Connection\Iterator::key - Return key of the current connection.
    • Swoole\Connection\Iterator::next - Move to the next connection.
    • Swoole\Connection\Iterator::offsetExists - Check if offet exists.
    • Swoole\Connection\Iterator::offsetGet - Offset to retrieve.
    • Swoole\Connection\Iterator::offsetSet - Assign a Connection to the specified offset.
    • Swoole\Connection\Iterator::offsetUnset - Unset an offset.
    • Swoole\Connection\Iterator::rewind - Rewinds iterator
    • Swoole\Connection\Iterator::valid - Check if current position is valid.
    • Swoole\Coroutine::call_user_func - Call a callback given by the first parameter
    • Swoole\Coroutine::call_user_func_array - Call a callback with an array of parameters
    • Swoole\Coroutine::cli_wait - Description
    • Swoole\Coroutine::create - Description
    • Swoole\Coroutine::getuid - Description
    • Swoole\Coroutine::resume - Description
    • Swoole\Coroutine::suspend - Description
    • Swoole\Coroutine\Client::close - Description
    • Swoole\Coroutine\Client::connect - Description
    • Swoole\Coroutine\Client::getpeername - Description
    • Swoole\Coroutine\Client::getsockname - Description
    • Swoole\Coroutine\Client::isConnected - Description
    • Swoole\Coroutine\Client::recv - Description
    • Swoole\Coroutine\Client::send - Description
    • Swoole\Coroutine\Client::sendfile - Description
    • Swoole\Coroutine\Client::sendto - Description
    • Swoole\Coroutine\Client::set - Description
    • Swoole\Coroutine\Client::__construct - Description
    • Swoole\Coroutine\Client::__destruct - Description
    • Swoole\Coroutine\Http\Client::addFile - Description
    • Swoole\Coroutine\Http\Client::close - Description
    • Swoole\Coroutine\Http\Client::execute - Description
    • Swoole\Coroutine\Http\Client::get - Description
    • Swoole\Coroutine\Http\Client::getDefer - Description
    • Swoole\Coroutine\Http\Client::isConnected - Description
    • Swoole\Coroutine\Http\Client::post - Description
    • Swoole\Coroutine\Http\Client::recv - Description
    • Swoole\Coroutine\Http\Client::set - Description
    • Swoole\Coroutine\Http\Client::setCookies - Description
    • Swoole\Coroutine\Http\Client::setData - Description
    • Swoole\Coroutine\Http\Client::setDefer - Description
    • Swoole\Coroutine\Http\Client::setHeaders - Description
    • Swoole\Coroutine\Http\Client::setMethod - Description
    • Swoole\Coroutine\Http\Client::__construct - Description
    • Swoole\Coroutine\Http\Client::__destruct - Description
    • Swoole\Coroutine\MySQL::close - Description
    • Swoole\Coroutine\MySQL::connect - Description
    • Swoole\Coroutine\MySQL::getDefer - Description
    • Swoole\Coroutine\MySQL::query - Description
    • Swoole\Coroutine\MySQL::recv - Description
    • Swoole\Coroutine\MySQL::setDefer - Description
    • Swoole\Coroutine\MySQL::__construct - Description
    • Swoole\Coroutine\MySQL::__destruct - Description
    • Swoole\Event::add - Add new callback functions of a socket into the EventLoop.
    • Swoole\Event::defer - Add a callback function to the next event loop.
    • Swoole\Event::del - Remove all event callback functions of a socket.
    • Swoole\Event::exit - Exit the eventloop, only available at client side.
    • Swoole\Event::set - Update the event callback functions of a socket.
    • Swoole\Event::wait - Description
    • Swoole\Event::write - Write data to the socket.
    • Swoole\Http\Client::addFile - Add a file to the post form.
    • Swoole\Http\Client::close - Close the http connection.
    • Swoole\Http\Client::download - Download a file from the remote server.
    • Swoole\Http\Client::execute - Send the HTTP request after setting the parameters.
    • Swoole\Http\Client::get - Send GET http request to the remote server.
    • Swoole\Http\Client::isConnected - Check if the HTTP connection is connected.
    • Swoole\Http\Client::on - Register callback function by event name.
    • Swoole\Http\Client::post - Send POST http request to the remote server.
    • Swoole\Http\Client::push - Push data to websocket client.
    • Swoole\Http\Client::set - Update the HTTP client paramters.
    • Swoole\Http\Client::setCookies - Set the http request cookies.
    • Swoole\Http\Client::setData - Set the HTTP request body data.
    • Swoole\Http\Client::setHeaders - Set the HTTP request headers.
    • Swoole\Http\Client::setMethod - Set the HTTP request method.
    • Swoole\Http\Client::upgrade - Upgrade to websocket protocol.
    • Swoole\Http\Client::__construct - Construct the async HTTP client.
    • Swoole\Http\Client::__destruct - Destruct the HTTP client.
    • Swoole\Http\Request::rawcontent - Get the raw HTTP POST body.
    • Swoole\Http\Request::__destruct - Destruct the HTTP request.
    • Swoole\Http\Response::cookie - Set the cookies of the HTTP response.
    • Swoole\Http\Response::end - Send data for the HTTP request and finish the response.
    • Swoole\Http\Response::gzip - Enable the gzip of response content.
    • Swoole\Http\Response::header - Set the HTTP response headers.
    • Swoole\Http\Response::initHeader - Init the HTTP response header.
    • Swoole\Http\Response::rawcookie - Set the raw cookies to the HTTP response.
    • Swoole\Http\Response::sendfile - Send file through the HTTP response.
    • Swoole\Http\Response::status - Set the status code of the HTTP response.
    • Swoole\Http\Response::write - Append HTTP body content to the HTTP response.
    • Swoole\Http\Response::__destruct - Destruct the HTTP response.
    • Swoole\Http\Server::on - Bind callback function to HTTP server by event name.
    • Swoole\Http\Server::start - Start the swoole http server.
    • Swoole\Lock::lock - Try to acquire the lock. It will block if the lock is not available.
    • Swoole\Lock::lock_read - Lock a read-write lock for reading.
    • Swoole\Lock::trylock - Try to acquire the lock and return straight away even the lock is not available.
    • Swoole\Lock::trylock_read - Try to lock a read-write lock for reading and return straight away even the lock is not available.
    • Swoole\Lock::unlock - Release the lock.
    • Swoole\Lock::__construct - Construct a memory lock.
    • Swoole\Lock::__destruct - Destory a Swoole memory lock.
    • Swoole\Mmap::open - Map a file into memory and return the stream resource which can be used by PHP stream operations.
    • Swoole\MySQL::close - Close the async MySQL connection.
    • Swoole\MySQL::connect - Connect to the remote MySQL server.
    • Swoole\MySQL::getBuffer - Description
    • Swoole\MySQL::on - Register callback function based on event name.
    • Swoole\MySQL::query - Run the SQL query.
    • Swoole\MySQL::__construct - Construct an async MySQL client.
    • Swoole\MySQL::__destruct - Destory the async MySQL client.
    • Swoole\Process::alarm - High precision timer which triggers signal with fixed interval.
    • Swoole\Process::close - Close the pipe to the child process.
    • Swoole\Process::daemon - Change the process to be a daemon process.
    • Swoole\Process::exec - Execute system commands.
    • Swoole\Process::exit - Stop the child processes.
    • Swoole\Process::freeQueue - Destroy the message queue created by swoole_process::useQueue.
    • Swoole\Process::kill - Send signal to the child process.
    • Swoole\Process::name - Set name of the process.
    • Swoole\Process::pop - Read and pop data from the message queue.
    • Swoole\Process::push - Write and push data into the message queue.
    • Swoole\Process::read - Read data sending to the process.
    • Swoole\Process::signal - Send signal to the child processes.
    • Swoole\Process::start - Start the process.
    • Swoole\Process::statQueue - Get the stats of the message queue used as the communication method between processes.
    • Swoole\Process::useQueue - Create a message queue as the communication method between the parent process and child processes.
    • Swoole\Process::wait - Wait for the events of child processes.
    • Swoole\Process::write - Write data into the pipe and communicate with the parent process or child processes.
    • Swoole\Process::__construct - Construct a process.
    • Swoole\Process::__destruct - Destory the process.
    • Swoole\Redis\Server::format - Description
    • Swoole\Redis\Server::setHandler - Description
    • Swoole\Redis\Server::start - Description
    • Swoole\Serialize::pack - Serialize the data.
    • Swoole\Serialize::unpack - Unserialize the data.
    • Swoole\Server::addlistener - Add a new listener to the server.
    • Swoole\Server::addProcess - Add a user defined swoole_process to the server.
    • Swoole\Server::after - Trigger a callback function after a period of time.
    • Swoole\Server::bind - Bind the connection to a user defined user ID.
    • Swoole\Server::clearTimer - Stop and destory a timer.
    • Swoole\Server::close - Close a connection to the client.
    • Swoole\Server::confirm - Check status of the connection.
    • Swoole\Server::connection_info - Get the connection info by file description.
    • Swoole\Server::connection_list - Get all of the established connections.
    • Swoole\Server::defer - Delay execution of the callback function at the end of current EventLoop.
    • Swoole\Server::exist - Check if the connection is existed.
    • Swoole\Server::finish - Used in task process for sending result to the worker process when the task is finished.
    • Swoole\Server::getClientInfo - Get the connection info by file description.
    • Swoole\Server::getClientList - Get all of the established connections.
    • Swoole\Server::getLastError - Get the error code of the most recent error.
    • Swoole\Server::heartbeat - Check all the connections on the server.
    • Swoole\Server::listen - Listen on the given IP and port, socket type.
    • Swoole\Server::on - Register a callback function by event name.
    • Swoole\Server::pause - Stop receiving data from the connection.
    • Swoole\Server::protect - Set the connection to be protected mode.
    • Swoole\Server::reload - Restart all the worker process.
    • Swoole\Server::resume - Start receving data from the connection.
    • Swoole\Server::send - Send data to the client.
    • Swoole\Server::sendfile - Send file to the connection.
    • Swoole\Server::sendMessage - Send message to worker processes by ID.
    • Swoole\Server::sendto - Send data to the remote UDP address.
    • Swoole\Server::sendwait - Send data to the remote socket in the blocking way.
    • Swoole\Server::set - Set the runtime settings of the swoole server.
    • Swoole\Server::shutdown - Shutdown the master server process, this function can be called in worker processes.
    • Swoole\Server::start - Start the Swoole server.
    • Swoole\Server::stats - Get the stats of the Swoole server.
    • Swoole\Server::stop - Stop the Swoole server.
    • Swoole\Server::task - Send data to the task worker processes.
    • Swoole\Server::taskwait - Send data to the task worker processes in blocking way.
    • Swoole\Server::taskWaitMulti - Execute multiple tasks concurrently.
    • Swoole\Server::tick - Repeats a given function at every given time-interval.
    • Swoole\Server::__construct - Construct a Swoole server.
    • Swoole\Server\Port::on - Register callback functions by event.
    • Swoole\Server\Port::set - Set protocol of the server port.
    • Swoole\Server\Port::__construct - Construct a server port
    • Swoole\Server\Port::__destruct - Destory server port
    • Swoole\Table::column - Set the data type and size of the columns.
    • Swoole\Table::count - Count the rows in the table, or count all the elements in the table if $mode = 1.
    • Swoole\Table::create - Create the swoole memory table.
    • Swoole\Table::current - Get the current row.
    • Swoole\Table::decr - Decrement the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::del - Delete a row in the Swoole table by $row_key.
    • Swoole\Table::destroy - Destroy the Swoole table.
    • Swoole\Table::exist - Check if a row is existed by $row_key.
    • Swoole\Table::get - Get the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::incr - Increment the value by $row_key and $column_key.
    • Swoole\Table::key - Get the key of current row.
    • Swoole\Table::next - Iterator the next row.
    • Swoole\Table::rewind - Rewind the iterator.
    • Swoole\Table::set - Update a row of the table by $row_key.
    • Swoole\Table::valid - Check current if the current row is valid.
    • Swoole\Table::__construct - Construct a Swoole memory table with fixed size.
    • Swoole\Timer::after - Trigger a callback function after a period of time.
    • Swoole\Timer::clear - Delete a timer by timer ID.
    • Swoole\Timer::exists - Check if a timer is existed.
    • Swoole\Timer::tick - Repeats a given function at every given time-interval.
    • Swoole\WebSocket\Server::exist - Check if the file descriptor exists.
    • Swoole\WebSocket\Server::on - Register event callback function
    • Swoole\WebSocket\Server::pack - Get a pack of binary data to send in a single frame.
    • Swoole\WebSocket\Server::push - Push data to the remote client.
    • Swoole\WebSocket\Server::unpack - Unpack the binary data received from the client.
    • swoole_async_dns_lookup - Async and non-blocking hostname to IP lookup
    • swoole_async_read - Read file stream asynchronously
    • swoole_async_readfile - Read a file asynchronously
    • swoole_async_set - Update the async I/O options
    • swoole_async_write - Write data to a file stream asynchronously
    • swoole_async_writefile - Write data to a file asynchronously
    • swoole_client_select - Get the file description which are ready to read/write or error
    • swoole_cpu_num - Get the number of CPU
    • swoole_errno - Get the error code of the latest system call
    • swoole_event_add - Add new callback functions of a socket into the EventLoop
    • swoole_event_defer - Add callback function to the next event loop
    • swoole_event_del - Remove all event callback functions of a socket
    • swoole_event_exit - Exit the eventloop, only available at the client side
    • swoole_event_set - Update the event callback functions of a socket
    • swoole_event_wait - Start the event loop
    • swoole_event_write - Write data to a socket
    • swoole_get_local_ip - Get the IPv4 IP addresses of each NIC on the machine
    • swoole_last_error - Get the lastest error message
    • swoole_load_module - Load a swoole extension
    • swoole_select - Select the file descriptions which are ready to read/write or error in the eventloop
    • swoole_set_process_name - Set the process name
    • swoole_strerror - Convert the Errno into error messages
    • swoole_timer_after - Trigger a one time callback function in the future
    • swoole_timer_exists - Check if a timer callback function is existed
    • swoole_timer_tick - Trigger a timer tick callback function by time interval
    • swoole_version - Get the version of Swoole
    • symlink - Erzeugt einen symbolischen Link
    • SyncEvent::fire - Fires/sets the event
    • SyncEvent::reset - Resets a manual event
    • SyncEvent::wait - Waits for the event to be fired/set
    • SyncEvent::__construct - Constructs a new SyncEvent object
    • SyncMutex::lock - Waits for an exclusive lock
    • SyncMutex::unlock - Unlocks the mutex
    • SyncMutex::__construct - Constructs a new SyncMutex object
    • SyncReaderWriter::readlock - Waits for a read lock
    • SyncReaderWriter::readunlock - Releases a read lock
    • SyncReaderWriter::writelock - Waits for an exclusive write lock
    • SyncReaderWriter::writeunlock - Releases a write lock
    • SyncReaderWriter::__construct - Constructs a new SyncReaderWriter object
    • SyncSemaphore::lock - Decreases the count of the semaphore or waits
    • SyncSemaphore::unlock - Increases the count of the semaphore
    • SyncSemaphore::__construct - Constructs a new SyncSemaphore object
    • SyncSharedMemory::first - Check to see if the object is the first instance system-wide of named shared memory
    • SyncSharedMemory::read - Copy data from named shared memory
    • SyncSharedMemory::size - Returns the size of the named shared memory
    • SyncSharedMemory::write - Copy data to named shared memory
    • SyncSharedMemory::__construct - Constructs a new SyncSharedMemory object
    • syslog - Erzeugt eine Meldung im System-Logging
    • system - Führt ein externes Programm aus und zeigt dessen Ausgabe an
    • sys_getloadavg - Ermittelt die durchschnittliche Systemlast
    • sys_get_temp_dir - Returns directory path used for temporary files
  • t
    • Table::count - Get row count
    • Table::delete - Delete rows from table
    • Table::existsInDatabase - Check if table exists in database
    • Table::getName - Get table name
    • Table::getSchema - Get table schema
    • Table::getSession - Get table session
    • Table::insert - Insert table rows
    • Table::isView - Check if table is view
    • Table::select - Select rows from table
    • Table::update - Update rows in table
    • Table::__construct - Table constructor
    • TableDelete::bind - Bind delete query parameters
    • TableDelete::execute - Execute delete query
    • TableDelete::limit - Limit deleted rows
    • TableDelete::orderby - Set delete sort criteria
    • TableDelete::where - Set delete search condition
    • TableDelete::__construct - TableDelete constructor
    • TableInsert::execute - Execute insert query
    • TableInsert::values - Add insert row values
    • TableInsert::__construct - TableInsert constructor
    • TableSelect::bind - Bind select query parameters
    • TableSelect::execute - Execute select statement
    • TableSelect::groupBy - Set select grouping criteria
    • TableSelect::having - Set select having condition
    • TableSelect::limit - Limit selected rows
    • TableSelect::lockExclusive - Execute EXCLUSIVE LOCK
    • TableSelect::lockShared - Execute SHARED LOCK
    • TableSelect::offset - Set limit offset
    • TableSelect::orderby - Set select sort criteria
    • TableSelect::where - Set select search condition
    • TableSelect::__construct - TableSelect constructor
    • TableUpdate::bind - Bind update query parameters
    • TableUpdate::execute - Execute update query
    • TableUpdate::limit - Limit update row count
    • TableUpdate::orderby - Set sorting criteria
    • TableUpdate::set - Add field to be updated
    • TableUpdate::where - Set search filter
    • TableUpdate::__construct - TableUpdate constructor
    • taint - Taint a string
    • tan - Tangens
    • tanh - Tangens hyperbolikus
    • tcpwrap_check - Performs a tcpwrap check
    • tempnam - Erzeugt eine Datei mit eindeutigem Dateinamen
    • textdomain - Setzt die Standarddomain
    • Thread::detach - Execution
    • Thread::getCreatorId - Identification
    • Thread::getCurrentThread - Identification
    • Thread::getCurrentThreadId - Identification
    • Thread::getThreadId - Identification
    • Thread::globally - Execution
    • Thread::isJoined - State Detection
    • Thread::isStarted - State Detection
    • Thread::join - Synchronization
    • Thread::kill - Execution
    • Thread::start - Execution
    • Threaded::chunk - Manipulation
    • Threaded::count - Manipulation
    • Threaded::extend - Runtime Manipulation
    • Threaded::from - Creation
    • Threaded::getTerminationInfo - Error Detection
    • Threaded::isRunning - State Detection
    • Threaded::isTerminated - State Detection
    • Threaded::isWaiting - State Detection
    • Threaded::lock - Synchronization
    • Threaded::merge - Manipulation
    • Threaded::notify - Synchronization
    • Threaded::notifyOne - Synchronization
    • Threaded::pop - Manipulation
    • Threaded::run - Execution
    • Threaded::shift - Manipulation
    • Threaded::synchronized - Synchronization
    • Threaded::unlock - Synchronization
    • Threaded::wait - Synchronization
    • Throwable::getCode - Gibt den Exception-Code zurück
    • Throwable::getFile - Gibt die Datei zurück, in der das Objekt erzeugt wurde
    • Throwable::getLine - Gibt die Zeile zurück, in der das Objekt instantiiert wurde
    • Throwable::getMessage - Gibt die Nachricht zurück
    • Throwable::getPrevious - Gibt das vorherige Throwable zurück
    • Throwable::getTrace - Gibt den Stacktrace zurück
    • Throwable::getTraceAsString - Gibt den Stacktrace als String zurück
    • Throwable::__toString - Gibt eine Repräsentation des geworfenen Objekts als String zurück
    • tidy::$errorBuffer - Return warnings and errors which occurred parsing the specified document
    • tidy::body - Returns a tidyNode object starting from the <body> tag of the tidy parse tree
    • tidy::cleanRepair - Execute configured cleanup and repair operations on parsed markup
    • tidy::diagnose - Run configured diagnostics on parsed and repaired markup
    • tidy::getConfig - Get current Tidy configuration
    • tidy::getHtmlVer - Get the Detected HTML version for the specified document
    • tidy::getOpt - Returns the value of the specified configuration option for the tidy document
    • tidy::getOptDoc - Returns the documentation for the given option name
    • tidy::getRelease - Get release date (version) for Tidy library
    • tidy::getStatus - Get status of specified document
    • tidy::head - Returns a tidyNode object starting from the <head> tag of the tidy parse tree
    • tidy::html - Returns a tidyNode object starting from the <html> tag of the tidy parse tree
    • tidy::isXhtml - Indicates if the document is a XHTML document
    • tidy::isXml - Indicates if the document is a generic (non HTML/XHTML) XML document
    • tidy::parseFile - Parse markup in file or URI
    • tidy::parseString - Parse a document stored in a string
    • tidy::repairFile - Repair a file and return it as a string
    • tidy::repairString - Repair a string using an optionally provided configuration file
    • tidy::root - Returns a tidyNode object representing the root of the tidy parse tree
    • tidy::__construct - Constructs a new tidy object
    • tidyNode::getParent - Returns the parent node of the current node
    • tidyNode::hasChildren - Checks if a node has children
    • tidyNode::hasSiblings - Checks if a node has siblings
    • tidyNode::isAsp - Checks if this node is ASP
    • tidyNode::isComment - Checks if a node represents a comment
    • tidyNode::isHtml - Checks if a node is an element node
    • tidyNode::isJste - Checks if this node is JSTE
    • tidyNode::isPhp - Checks if a node is PHP
    • tidyNode::isText - Checks if a node represents text (no markup)
    • tidyNode::__construct - Private constructor to disallow direct instantiation
    • tidy_access_count - Returns the Number of Tidy accessibility warnings encountered for specified document
    • tidy_config_count - Returns the Number of Tidy configuration errors encountered for specified document
    • tidy_error_count - Returns the Number of Tidy errors encountered for specified document
    • tidy_get_output - Return a string representing the parsed tidy markup
    • tidy_warning_count - Returns the Number of Tidy warnings encountered for specified document
    • time - Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück
    • timezone_abbreviations_list - Alias von DateTimeZone::listAbbreviations
    • timezone_identifiers_list - Alias von DateTimeZone::listIdentifiers
    • timezone_location_get - Alias von DateTimeZone::getLocation
    • timezone_name_from_abbr - Gibt den Namen der Zeitzonenabkürzung zurück
    • timezone_name_get - Alias von DateTimeZone::getName
    • timezone_offset_get - Alias von DateTimeZone::getOffset
    • timezone_open - Alias von DateTimeZone::__construct
    • timezone_transitions_get - Alias von DateTimeZone::getTransitions
    • timezone_version_get - Gets the version of the timezonedb
    • time_nanosleep - Verzögert die Ausführung um die gegebene Anzahl Sekunden und Nanosekunden
    • time_sleep_until - Lässt das Skript bis zur angegebenen Zeit schlafen
    • tmpfile - Erstellt eine temporäre Datei
    • token_get_all - Spaltet angegebenen PHP-Quelltext in PHP-Token auf
    • token_name - Gibt Bezeichner für ein PHP-Token zurück
    • TokyoTyrant::add - Adds to a numeric key
    • TokyoTyrant::connect - Connect to a database
    • TokyoTyrant::connectUri - Connects to a database
    • TokyoTyrant::copy - Copies the database
    • TokyoTyrant::ext - Execute a remote script
    • TokyoTyrant::fwmKeys - Returns the forward matching keys
    • TokyoTyrant::get - The get purpose
    • TokyoTyrant::getIterator - Get an iterator
    • TokyoTyrant::num - Number of records in the database
    • TokyoTyrant::out - Removes records
    • TokyoTyrant::put - Puts values
    • TokyoTyrant::putCat - Concatenates to a record
    • TokyoTyrant::putKeep - Puts a record
    • TokyoTyrant::putNr - Puts value
    • TokyoTyrant::putShl - Concatenates to a record
    • TokyoTyrant::restore - Restore the database
    • TokyoTyrant::setMaster - Set the replication master
    • TokyoTyrant::size - Returns the size of the value
    • TokyoTyrant::stat - Get statistics
    • TokyoTyrant::sync - Synchronize the database
    • TokyoTyrant::tune - Tunes connection values
    • TokyoTyrant::vanish - Empties the database
    • TokyoTyrant::__construct - Construct a new TokyoTyrant object
    • TokyoTyrantIterator::current - Get the current value
    • TokyoTyrantIterator::key - Returns the current key
    • TokyoTyrantIterator::next - Move to next key
    • TokyoTyrantIterator::rewind - Rewinds the iterator
    • TokyoTyrantIterator::valid - Rewinds the iterator
    • TokyoTyrantIterator::__construct - Construct an iterator
    • TokyoTyrantQuery::addCond - Adds a condition to the query
    • TokyoTyrantQuery::count - Counts records
    • TokyoTyrantQuery::current - Returns the current element
    • TokyoTyrantQuery::hint - Get the hint string of the query
    • TokyoTyrantQuery::key - Returns the current key
    • TokyoTyrantQuery::metaSearch - Retrieve records with multiple queries
    • TokyoTyrantQuery::next - Moves the iterator to next entry
    • TokyoTyrantQuery::out - Removes records based on query
    • TokyoTyrantQuery::rewind - Rewinds the iterator
    • TokyoTyrantQuery::search - Searches records
    • TokyoTyrantQuery::setLimit - Limit results
    • TokyoTyrantQuery::setOrder - Orders results
    • TokyoTyrantQuery::valid - Checks the validity of current item
    • TokyoTyrantQuery::__construct - Construct a new query
    • TokyoTyrantTable::add - Adds a record
    • TokyoTyrantTable::genUid - Generate unique id
    • TokyoTyrantTable::get - Get a row
    • TokyoTyrantTable::getIterator - Get an iterator
    • TokyoTyrantTable::getQuery - Get a query object
    • TokyoTyrantTable::out - Remove records
    • TokyoTyrantTable::put - Store a row
    • TokyoTyrantTable::putCat - Concatenates to a row
    • TokyoTyrantTable::putKeep - Put a new record
    • TokyoTyrantTable::putNr - Puts value
    • TokyoTyrantTable::putShl - Concatenates to a record
    • TokyoTyrantTable::setIndex - Sets index
    • touch - Setzt die Zugriffs- und Modifikationszeit einer Datei
    • trader_acos - Vector Trigonometric ACos
    • trader_ad - Chaikin A/D Line
    • trader_add - Vector Arithmetic Add
    • trader_adosc - Chaikin A/D Oscillator
    • trader_adx - Average Directional Movement Index
    • trader_adxr - Average Directional Movement Index Rating
    • trader_apo - Absolute Price Oscillator
    • trader_aroon - Aroon
    • trader_aroonosc - Aroon Oscillator
    • trader_asin - Vector Trigonometric ASin
    • trader_atan - Vector Trigonometric ATan
    • trader_atr - Average True Range
    • trader_avgprice - Average Price
    • trader_bbands - Bollinger Bands
    • trader_beta - Beta
    • trader_bop - Balance Of Power
    • trader_cci - Commodity Channel Index
    • trader_cdl2crows - Two Crows
    • trader_cdl3blackcrows - Three Black Crows
    • trader_cdl3inside - Three Inside Up/Down
    • trader_cdl3linestrike - Three-Line Strike
    • trader_cdl3outside - Three Outside Up/Down
    • trader_cdl3starsinsouth - Three Stars In The South
    • trader_cdl3whitesoldiers - Three Advancing White Soldiers
    • trader_cdlabandonedbaby - Abandoned Baby
    • trader_cdladvanceblock - Advance Block
    • trader_cdlbelthold - Belt-hold
    • trader_cdlbreakaway - Breakaway
    • trader_cdlclosingmarubozu - Closing Marubozu
    • trader_cdlconcealbabyswall - Concealing Baby Swallow
    • trader_cdlcounterattack - Counterattack
    • trader_cdldarkcloudcover - Dark Cloud Cover
    • trader_cdldoji - Doji
    • trader_cdldojistar - Doji Star
    • trader_cdldragonflydoji - Dragonfly Doji
    • trader_cdlengulfing - Engulfing Pattern
    • trader_cdleveningdojistar - Evening Doji Star
    • trader_cdleveningstar - Evening Star
    • trader_cdlgapsidesidewhite - Up/Down-gap side-by-side white lines
    • trader_cdlgravestonedoji - Gravestone Doji
    • trader_cdlhammer - Hammer
    • trader_cdlhangingman - Hanging Man
    • trader_cdlharami - Harami Pattern
    • trader_cdlharamicross - Harami Cross Pattern
    • trader_cdlhighwave - High-Wave Candle
    • trader_cdlhikkake - Hikkake Pattern
    • trader_cdlhikkakemod - Modified Hikkake Pattern
    • trader_cdlhomingpigeon - Homing Pigeon
    • trader_cdlidentical3crows - Identical Three Crows
    • trader_cdlinneck - In-Neck Pattern
    • trader_cdlinvertedhammer - Inverted Hammer
    • trader_cdlkicking - Kicking
    • trader_cdlkickingbylength - Kicking - bull/bear determined by the longer marubozu
    • trader_cdlladderbottom - Ladder Bottom
    • trader_cdllongleggeddoji - Long Legged Doji
    • trader_cdllongline - Long Line Candle
    • trader_cdlmarubozu - Marubozu
    • trader_cdlmatchinglow - Matching Low
    • trader_cdlmathold - Mat Hold
    • trader_cdlmorningdojistar - Morning Doji Star
    • trader_cdlmorningstar - Morning Star
    • trader_cdlonneck - On-Neck Pattern
    • trader_cdlpiercing - Piercing Pattern
    • trader_cdlrickshawman - Rickshaw Man
    • trader_cdlrisefall3methods - Rising/Falling Three Methods
    • trader_cdlseparatinglines - Separating Lines
    • trader_cdlshootingstar - Shooting Star
    • trader_cdlshortline - Short Line Candle
    • trader_cdlspinningtop - Spinning Top
    • trader_cdlstalledpattern - Stalled Pattern
    • trader_cdlsticksandwich - Stick Sandwich
    • trader_cdltakuri - Takuri (Dragonfly Doji with very long lower shadow)
    • trader_cdltasukigap - Tasuki Gap
    • trader_cdlthrusting - Thrusting Pattern
    • trader_cdltristar - Tristar Pattern
    • trader_cdlunique3river - Unique 3 River
    • trader_cdlupsidegap2crows - Upside Gap Two Crows
    • trader_cdlxsidegap3methods - Upside/Downside Gap Three Methods
    • trader_ceil - Vector Ceil
    • trader_cmo - Chande Momentum Oscillator
    • trader_correl - Pearson's Correlation Coefficient (r)
    • trader_cos - Vector Trigonometric Cos
    • trader_cosh - Vector Trigonometric Cosh
    • trader_dema - Double Exponential Moving Average
    • trader_div - Vector Arithmetic Div
    • trader_dx - Directional Movement Index
    • trader_ema - Exponential Moving Average
    • trader_errno - Get error code
    • trader_exp - Vector Arithmetic Exp
    • trader_floor - Vector Floor
    • trader_get_compat - Get compatibility mode
    • trader_get_unstable_period - Get unstable period
    • trader_ht_dcperiod - Hilbert Transform - Dominant Cycle Period
    • trader_ht_dcphase - Hilbert Transform - Dominant Cycle Phase
    • trader_ht_phasor - Hilbert Transform - Phasor Components
    • trader_ht_sine - Hilbert Transform - SineWave
    • trader_ht_trendline - Hilbert Transform - Instantaneous Trendline
    • trader_ht_trendmode - Hilbert Transform - Trend vs Cycle Mode
    • trader_kama - Kaufman Adaptive Moving Average
    • trader_linearreg - Linear Regression
    • trader_linearreg_angle - Linear Regression Angle
    • trader_linearreg_intercept - Linear Regression Intercept
    • trader_linearreg_slope - Linear Regression Slope
    • trader_ln - Vector Log Natural
    • trader_log10 - Vector Log10
    • trader_ma - Moving average
    • trader_macd - Moving Average Convergence/Divergence
    • trader_macdext - MACD with controllable MA type
    • trader_macdfix - Moving Average Convergence/Divergence Fix 12/26
    • trader_mama - MESA Adaptive Moving Average
    • trader_mavp - Moving average with variable period
    • trader_max - Highest value over a specified period
    • trader_maxindex - Index of highest value over a specified period
    • trader_medprice - Median Price
    • trader_mfi - Money Flow Index
    • trader_midpoint - MidPoint over period
    • trader_midprice - Midpoint Price over period
    • trader_min - Lowest value over a specified period
    • trader_minindex - Index of lowest value over a specified period
    • trader_minmax - Lowest and highest values over a specified period
    • trader_minmaxindex - Indexes of lowest and highest values over a specified period
    • trader_minus_di - Minus Directional Indicator
    • trader_minus_dm - Minus Directional Movement
    • trader_mom - Momentum
    • trader_mult - Vector Arithmetic Mult
    • trader_natr - Normalized Average True Range
    • trader_obv - On Balance Volume
    • trader_plus_di - Plus Directional Indicator
    • trader_plus_dm - Plus Directional Movement
    • trader_ppo - Percentage Price Oscillator
    • trader_roc - Rate of change : ((price/prevPrice)-1)*100
    • trader_rocp - Rate of change Percentage: (price-prevPrice)/prevPrice
    • trader_rocr - Rate of change ratio: (price/prevPrice)
    • trader_rocr100 - Rate of change ratio 100 scale: (price/prevPrice)*100
    • trader_rsi - Relative Strength Index
    • trader_sar - Parabolic SAR
    • trader_sarext - Parabolic SAR - Extended
    • trader_set_compat - Set compatibility mode
    • trader_set_unstable_period - Set unstable period
    • trader_sin - Vector Trigonometric Sin
    • trader_sinh - Vector Trigonometric Sinh
    • trader_sma - Simple Moving Average
    • trader_sqrt - Vector Square Root
    • trader_stddev - Standard Deviation
    • trader_stoch - Stochastic
    • trader_stochf - Stochastic Fast
    • trader_stochrsi - Stochastic Relative Strength Index
    • trader_sub - Vector Arithmetic Subtraction
    • trader_sum - Summation
    • trader_t3 - Triple Exponential Moving Average (T3)
    • trader_tan - Vector Trigonometric Tan
    • trader_tanh - Vector Trigonometric Tanh
    • trader_tema - Triple Exponential Moving Average
    • trader_trange - True Range
    • trader_trima - Triangular Moving Average
    • trader_trix - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
    • trader_tsf - Time Series Forecast
    • trader_typprice - Typical Price
    • trader_ultosc - Ultimate Oscillator
    • trader_var - Variance
    • trader_wclprice - Weighted Close Price
    • trader_willr - Williams' %R
    • trader_wma - Weighted Moving Average
    • trait_exists - Checks if the trait exists
    • Transliterator::create - Create a transliterator
    • Transliterator::createFromRules - Create transliterator from rules
    • Transliterator::createInverse - Create an inverse transliterator
    • Transliterator::getErrorCode - Get last error code
    • Transliterator::getErrorMessage - Get last error message
    • Transliterator::listIDs - Get transliterator IDs
    • Transliterator::transliterate - Transliterate a string
    • Transliterator::__construct - Private constructor to deny instantiation
    • trigger_error - Erzeugt eine benutzerdefinierte Fehlermeldung/Warnung/Benachrichtigung
    • trim - Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings
  • u
    • uasort - Sortiert ein Array mittels einer benutzerdefinierten Vergleichsfunktion und behält Indexassoziationen bei
    • ucfirst - Verwandelt das erste Zeichen eines Strings in einen Großbuchstaben
    • UConverter::convert - Convert string from one charset to another
    • UConverter::fromUCallback - Default "from" callback function
    • UConverter::getAliases - Get the aliases of the given name
    • UConverter::getAvailable - Get the available canonical converter names
    • UConverter::getDestinationEncoding - Get the destination encoding
    • UConverter::getDestinationType - Get the destination converter type
    • UConverter::getErrorCode - Get last error code on the object
    • UConverter::getErrorMessage - Get last error message on the object
    • UConverter::getSourceEncoding - Get the source encoding
    • UConverter::getSourceType - Get the source converter type
    • UConverter::getStandards - Get standards associated to converter names
    • UConverter::getSubstChars - Get substitution chars
    • UConverter::reasonText - Get string representation of the callback reason
    • UConverter::setDestinationEncoding - Set the destination encoding
    • UConverter::setSourceEncoding - Set the source encoding
    • UConverter::setSubstChars - Set the substitution chars
    • UConverter::toUCallback - Default "to" callback function
    • UConverter::transcode - Convert string from one charset to another
    • UConverter::__construct - Create UConverter object
    • ucwords - Wandelt jeden ersten Buchstaben eines Wortes innerhalb eines Strings in einen Großbuchstaben um
    • UI\Area::onDraw - Draw Callback
    • UI\Area::onKey - Key Callback
    • UI\Area::onMouse - Mouse Callback
    • UI\Area::redraw - Redraw Area
    • UI\Area::scrollTo - Area Scroll
    • UI\Area::setSize - Set Size
    • UI\Control::destroy - Destroy Control
    • UI\Control::disable - Disable Control
    • UI\Control::enable - Enable Control
    • UI\Control::getParent - Get Parent Control
    • UI\Control::getTopLevel - Get Top Level
    • UI\Control::hide - Hide Control
    • UI\Control::isEnabled - Determine if Control is enabled
    • UI\Control::isVisible - Determine if Control is visible
    • UI\Control::setParent - Set Parent Control
    • UI\Control::show - Control Show
    • UI\Controls\Box::append - Append Control
    • UI\Controls\Box::delete - Delete Control
    • UI\Controls\Box::getOrientation - Get Orientation
    • UI\Controls\Box::isPadded - Padding Detection
    • UI\Controls\Box::setPadded - Set Padding
    • UI\Controls\Box::__construct - Construct a new Box
    • UI\Controls\Button::getText - Get Text
    • UI\Controls\Button::onClick - Click Handler
    • UI\Controls\Button::setText - Set Text
    • UI\Controls\Button::__construct - Construct a new Button
    • UI\Controls\Check::getText - Get Text
    • UI\Controls\Check::isChecked - Checked Detection
    • UI\Controls\Check::onToggle - Toggle Callback
    • UI\Controls\Check::setChecked - Set Checked
    • UI\Controls\Check::setText - Set Text
    • UI\Controls\Check::__construct - Construct a new Check
    • UI\Controls\ColorButton::getColor - Get Color
    • UI\Controls\ColorButton::onChange - Change Handler
    • UI\Controls\ColorButton::setColor - Set Color
    • UI\Controls\Combo::append - Append Option
    • UI\Controls\Combo::getSelected - Get Selected Option
    • UI\Controls\Combo::onSelected - Selected Handler
    • UI\Controls\Combo::setSelected - Set Selected Option
    • UI\Controls\EditableCombo::append - Append Option
    • UI\Controls\EditableCombo::getText - Get Text
    • UI\Controls\EditableCombo::onChange - Change Handler
    • UI\Controls\EditableCombo::setText - Set Text
    • UI\Controls\Entry::getText - Get Text
    • UI\Controls\Entry::isReadOnly - Detect Read Only
    • UI\Controls\Entry::onChange - Change Handler
    • UI\Controls\Entry::setReadOnly - Set Read Only
    • UI\Controls\Entry::setText - Set Text
    • UI\Controls\Entry::__construct - Construct a new Entry
    • UI\Controls\Form::append - Append Control
    • UI\Controls\Form::delete - Delete Control
    • UI\Controls\Form::isPadded - Padding Detection
    • UI\Controls\Form::setPadded - Set Padding
    • UI\Controls\Grid::append - Append Control
    • UI\Controls\Grid::isPadded - Padding Detection
    • UI\Controls\Grid::setPadded - Set Padding
    • UI\Controls\Group::append - Append Control
    • UI\Controls\Group::getTitle - Get Title
    • UI\Controls\Group::hasMargin - Margin Detection
    • UI\Controls\Group::setMargin - Set Margin
    • UI\Controls\Group::setTitle - Set Title
    • UI\Controls\Group::__construct - Construct a new Group
    • UI\Controls\Label::getText - Get Text
    • UI\Controls\Label::setText - Set Text
    • UI\Controls\Label::__construct - Construct a new Label
    • UI\Controls\MultilineEntry::append - Append Text
    • UI\Controls\MultilineEntry::getText - Get Text
    • UI\Controls\MultilineEntry::isReadOnly - Read Only Detection
    • UI\Controls\MultilineEntry::onChange - Change Handler
    • UI\Controls\MultilineEntry::setReadOnly - Set Read Only
    • UI\Controls\MultilineEntry::setText - Set Text
    • UI\Controls\MultilineEntry::__construct - Construct a new Multiline Entry
    • UI\Controls\Picker::__construct - Construct a new Picker
    • UI\Controls\Progress::getValue - Get Value
    • UI\Controls\Progress::setValue - Set Value
    • UI\Controls\Radio::append - Append Option
    • UI\Controls\Radio::getSelected - Get Selected Option
    • UI\Controls\Radio::onSelected - Selected Handler
    • UI\Controls\Radio::setSelected - Set Selected Option
    • UI\Controls\Separator::__construct - Construct a new Separator
    • UI\Controls\Slider::getValue - Get Value
    • UI\Controls\Slider::onChange - Change Handler
    • UI\Controls\Slider::setValue - Set Value
    • UI\Controls\Slider::__construct - Construct a new Slider
    • UI\Controls\Spin::getValue - Get Value
    • UI\Controls\Spin::onChange - Change Handler
    • UI\Controls\Spin::setValue - Set Value
    • UI\Controls\Spin::__construct - Construct a new Spin
    • UI\Controls\Tab::append - Append Page
    • UI\Controls\Tab::delete - Delete Page
    • UI\Controls\Tab::hasMargin - Margin Detection
    • UI\Controls\Tab::insertAt - Insert Page
    • UI\Controls\Tab::pages - Page Count
    • UI\Controls\Tab::setMargin - Set Margin
    • UI\Draw\Brush::getColor - Get Color
    • UI\Draw\Brush::setColor - Set Color
    • UI\Draw\Brush::__construct - Construct a new Brush
    • UI\Draw\Brush\Gradient::addStop - Stop Manipulation
    • UI\Draw\Brush\Gradient::delStop - Stop Manipulation
    • UI\Draw\Brush\Gradient::setStop - Stop Manipulation
    • UI\Draw\Brush\LinearGradient::__construct - Construct a Linear Gradient
    • UI\Draw\Brush\RadialGradient::__construct - Construct a new Radial Gradient
    • UI\Draw\Color::getChannel - Color Manipulation
    • UI\Draw\Color::setChannel - Color Manipulation
    • UI\Draw\Color::__construct - Construct new Color
    • UI\Draw\Matrix::invert - Invert Matrix
    • UI\Draw\Matrix::isInvertible - Invertible Detection
    • UI\Draw\Matrix::multiply - Multiply Matrix
    • UI\Draw\Matrix::rotate - Rotate Matrix
    • UI\Draw\Matrix::scale - Scale Matrix
    • UI\Draw\Matrix::skew - Skew Matrix
    • UI\Draw\Matrix::translate - Translate Matrix
    • UI\Draw\Path::addRectangle - Draw a Rectangle
    • UI\Draw\Path::arcTo - Draw an Arc
    • UI\Draw\Path::bezierTo - Draw Bezier Curve
    • UI\Draw\Path::closeFigure - Close Figure
    • UI\Draw\Path::end - Finalize Path
    • UI\Draw\Path::lineTo - Draw a Line
    • UI\Draw\Path::newFigure - Draw Figure
    • UI\Draw\Path::newFigureWithArc - Draw Figure with Arc
    • UI\Draw\Path::__construct - Construct a new Path
    • UI\Draw\Pen::clip - Clip a Path
    • UI\Draw\Pen::fill - Fill a Path
    • UI\Draw\Pen::restore - Restore
    • UI\Draw\Pen::save - Save
    • UI\Draw\Pen::stroke - Stroke a Path
    • UI\Draw\Pen::transform - Matrix Transform
    • UI\Draw\Pen::write - Draw Text at Point
    • UI\Draw\Stroke::getCap - Get Line Cap
    • UI\Draw\Stroke::getJoin - Get Line Join
    • UI\Draw\Stroke::getMiterLimit - Get Miter Limit
    • UI\Draw\Stroke::getThickness - Get Thickness
    • UI\Draw\Stroke::setCap - Set Line Cap
    • UI\Draw\Stroke::setJoin - Set Line Join
    • UI\Draw\Stroke::setMiterLimit - Set Miter Limit
    • UI\Draw\Stroke::setThickness - Set Thickness
    • UI\Draw\Stroke::__construct - Construct a new Stroke
    • UI\Draw\Text\Font::getAscent - Font Metrics
    • UI\Draw\Text\Font::getDescent - Font Metrics
    • UI\Draw\Text\Font::getLeading - Font Metrics
    • UI\Draw\Text\Font::getUnderlinePosition - Font Metrics
    • UI\Draw\Text\Font::getUnderlineThickness - Font Metrics
    • UI\Draw\Text\Font::__construct - Construct a new Font
    • UI\Draw\Text\Font\Descriptor::getFamily - Get Font Family
    • UI\Draw\Text\Font\Descriptor::getItalic - Style Detection
    • UI\Draw\Text\Font\Descriptor::getSize - Size Detection
    • UI\Draw\Text\Font\Descriptor::getStretch - Style Detection
    • UI\Draw\Text\Font\Descriptor::getWeight - Weight Detection
    • UI\Draw\Text\Font\Descriptor::__construct - Construct a new Font Descriptor
    • UI\Draw\Text\Font\fontFamilies - Retrieve Font Families
    • UI\Draw\Text\Layout::setColor - Set Color
    • UI\Draw\Text\Layout::setWidth - Set Width
    • UI\Draw\Text\Layout::__construct - Construct a new Text Layout
    • UI\Executor::kill - Stop Executor
    • UI\Executor::onExecute - Execution Callback
    • UI\Executor::setInterval - Interval Manipulation
    • UI\Executor::__construct - Construct a new Executor
    • UI\Menu::append - Append Menu Item
    • UI\Menu::appendAbout - Append About Menu Item
    • UI\Menu::appendCheck - Append Checkable Menu Item
    • UI\Menu::appendPreferences - Append Preferences Menu Item
    • UI\Menu::appendQuit - Append Quit Menu Item
    • UI\Menu::appendSeparator - Append Menu Item Separator
    • UI\Menu::__construct - Construct a new Menu
    • UI\MenuItem::disable - Disable Menu Item
    • UI\MenuItem::enable - Enable Menu Item
    • UI\MenuItem::isChecked - Detect Checked
    • UI\MenuItem::onClick - On Click Callback
    • UI\MenuItem::setChecked - Set Checked
    • UI\Point::at - Size Coercion
    • UI\Point::getX - Retrieves X
    • UI\Point::getY - Retrieves Y
    • UI\Point::setX - Set X
    • UI\Point::setY - Set Y
    • UI\Point::__construct - Construct a new Point
    • UI\quit - Quit UI Loop
    • UI\run - Enter UI Loop
    • UI\Size::getHeight - Retrieves Height
    • UI\Size::getWidth - Retrives Width
    • UI\Size::of - Point Coercion
    • UI\Size::setHeight - Set Height
    • UI\Size::setWidth - Set Width
    • UI\Size::__construct - Construct a new Size
    • UI\Window::add - Add a Control
    • UI\Window::error - Show Error Box
    • UI\Window::getSize - Get Window Size
    • UI\Window::getTitle - Get Title
    • UI\Window::hasBorders - Border Detection
    • UI\Window::hasMargin - Margin Detection
    • UI\Window::isFullScreen - Full Screen Detection
    • UI\Window::msg - Show Message Box
    • UI\Window::onClosing - Closing Callback
    • UI\Window::open - Open Dialog
    • UI\Window::save - Save Dialog
    • UI\Window::setBorders - Border Use
    • UI\Window::setFullScreen - Full Screen Use
    • UI\Window::setMargin - Margin Use
    • UI\Window::setSize - Set Size
    • UI\Window::setTitle - Window Title
    • UI\Window::__construct - Construct a new Window
    • uksort - Sortiert ein Array nach Schlüsseln mittels einer benutzerdefinierten Vergleichsfunktion
    • umask - Changes the current umask
    • uniqid - Erzeugt eine eindeutige ID
    • unixtojd - Konvertiert Unix-Timestamp in Julianisches Datum
    • unlink - Löscht eine Datei
    • unpack - Entpackt die Daten einer binäre Zeichenkette
    • unregister_tick_function - De-register a function for execution on each tick
    • unserialize - Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP
    • unset - Löschen einer angegebenen Variablen
    • untaint - Untaint strings
    • uopz_add_function - Adds non-existent function or method
    • uopz_allow_exit - Allows control over disabled exit opcode
    • uopz_backup - Backup a function
    • uopz_compose - Compose a class
    • uopz_copy - Copy a function
    • uopz_delete - Delete a function
    • uopz_del_function - Deletes previously added function or method
    • uopz_extend - Extend a class at runtime
    • uopz_flags - Get or set flags on function or class
    • uopz_function - Creates a function at runtime
    • uopz_get_exit_status - Retrieve the last set exit status
    • uopz_get_hook - Gets previously set hook on function or method
    • uopz_get_mock - Get the current mock for a class
    • uopz_get_property - Gets value of class or instance property
    • uopz_get_return - Gets a previous set return value for a function
    • uopz_get_static - Gets the static variables from function or method scope
    • uopz_implement - Implements an interface at runtime
    • uopz_overload - Overload a VM opcode
    • uopz_redefine - Redefine a constant
    • uopz_rename - Rename a function at runtime
    • uopz_restore - Restore a previously backed up function
    • uopz_set_hook - Sets hook to execute when entering a function or method
    • uopz_set_mock - Use mock instead of class for new objects
    • uopz_set_property - Sets value of existing class or instance property
    • uopz_set_return - Provide a return value for an existing function
    • uopz_set_static - Sets the static variables in function or method scope
    • uopz_undefine - Undefine a constant
    • uopz_unset_hook - Removes previously set hook on function or method
    • uopz_unset_mock - Unset previously set mock
    • uopz_unset_return - Unsets a previously set return value for a function
    • urldecode - Dekodiert eine URL-kodierte Zeichenkette
    • urlencode - URL-kodiert einen String
    • user_error - Alias von trigger_error
    • use_soap_error_handler - Definiert, ob der SOAP-Errorhandler benutzt werden soll
    • usleep - Verzögert die Programmausführung (in Mikrosekunden)
    • usort - Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion
    • utf8_decode - Konvertiert eine als UTF-8 kodierte ISO-8859-1-Zeichenkette in eine einfache ISO-8859-1-Zeichenkette
    • utf8_encode - Konvertiert eine ISO-8859-1-Zeichenkette in UTF-8
  • v
    • V8Js::executeString - Führt JavaScript-Code aus
    • V8Js::getExtensions - Gibt ein Array der registrierten Erweiterungen zurück
    • V8Js::getPendingException - Gibt ausstehende ungefangene JavaScript-Exception zurück.
    • V8Js::registerExtension - Registriert JavaScript-Erweiterungen für V8Js
    • V8Js::__construct - Erstellt ein neues V8Js-Objekt
    • V8JsException::getJsFileName - The getJsFileName purpose
    • V8JsException::getJsLineNumber - The getJsLineNumber purpose
    • V8JsException::getJsSourceLine - The getJsSourceLine purpose
    • V8JsException::getJsTrace - The getJsTrace purpose
    • variant::__construct - variant Klassen Konstruktor
    • variant_abs - Returns the absolute value of a variant
    • variant_add - "Adds" two variant values together and returns the result
    • variant_and - Performs a bitwise AND operation between two variants
    • variant_cast - Convert a variant into a new variant object of another type
    • variant_cat - Concatenates two variant values together and returns the result
    • variant_cmp - Compares two variants
    • variant_date_from_timestamp - Returns a variant date representation of a Unix timestamp
    • variant_date_to_timestamp - Converts a variant date/time value to Unix timestamp
    • variant_div - Returns the result from dividing two variants
    • variant_eqv - Performs a bitwise equivalence on two variants
    • variant_fix - Returns the integer portion of a variant
    • variant_get_type - Returns the type of a variant object
    • variant_idiv - Converts variants to integers and then returns the result from dividing them
    • variant_imp - Performs a bitwise implication on two variants
    • variant_int - Returns the integer portion of a variant
    • variant_mod - Divides two variants and returns only the remainder
    • variant_mul - Multiplies the values of the two variants
    • variant_neg - Performs logical negation on a variant
    • variant_not - Performs bitwise not negation on a variant
    • variant_or - Performs a logical disjunction on two variants
    • variant_pow - Returns the result of performing the power function with two variants
    • variant_round - Rounds a variant to the specified number of decimal places
    • variant_set - Assigns a new value for a variant object
    • variant_set_type - Convert a variant into another type "in-place"
    • variant_sub - Subtracts the value of the right variant from the left variant value
    • variant_xor - Performs a logical exclusion on two variants
    • VarnishAdmin::auth - Authenticate on a varnish instance
    • VarnishAdmin::ban - Ban URLs using a VCL expression
    • VarnishAdmin::banUrl - Ban an URL using a VCL expression
    • VarnishAdmin::clearPanic - Clear varnish instance panic messages
    • VarnishAdmin::connect - Connect to a varnish instance administration interface
    • VarnishAdmin::disconnect - Disconnect from a varnish instance administration interface
    • VarnishAdmin::getPanic - Get the last panic message on a varnish instance
    • VarnishAdmin::getParams - Fetch current varnish instance configuration parameters
    • VarnishAdmin::isRunning - Check if the varnish slave process is currently running
    • VarnishAdmin::setCompat - Set the class compat configuration param
    • VarnishAdmin::setHost - Set the class host configuration param
    • VarnishAdmin::setIdent - Set the class ident configuration param
    • VarnishAdmin::setParam - Set configuration param on the current varnish instance
    • VarnishAdmin::setPort - Set the class port configuration param
    • VarnishAdmin::setSecret - Set the class secret configuration param
    • VarnishAdmin::setTimeout - Set the class timeout configuration param
    • VarnishAdmin::start - Start varnish worker process
    • VarnishAdmin::stop - Stop varnish worker process
    • VarnishAdmin::__construct - VarnishAdmin constructor
    • VarnishLog::getLine - Get next log line
    • VarnishLog::getTagName - Get the log tag string representation by its index
    • VarnishLog::__construct - Varnishlog constructor
    • VarnishStat::getSnapshot - Get the current varnish instance statistics snapshot
    • VarnishStat::__construct - VarnishStat constructor
    • var_dump - Gibt alle Informationen zu einer Variablen aus
    • var_export - Liefert den Inhalt einer Variablen als parsbaren PHP-Code
    • version_compare - Vergleicht zwei Versionsnummern im PHP-Stil
    • vfprintf - Schreibt einen formatierten String in einen Stream
    • virtual - Führt eine Apache-Unteranfrage durch
    • vprintf - Gibt einen formatierten String aus
    • vsprintf - Gibt einen formatierten String zurück
    • Vtiful\Kernel\Excel::addSheet - Vtiful\Kernel\Excel addSheet
    • Vtiful\Kernel\Excel::autoFilter - Vtiful\Kernel\Excel autoFilter
    • Vtiful\Kernel\Excel::constMemory - Vtiful\Kernel\Excel constMemory
    • Vtiful\Kernel\Excel::data - Vtiful\Kernel\Excel data
    • Vtiful\Kernel\Excel::fileName - Vtiful\Kernel\Excel fileName
    • Vtiful\Kernel\Excel::getHandle - Vtiful\Kernel\Excel getHandle
    • Vtiful\Kernel\Excel::header - Vtiful\Kernel\Excel header
    • Vtiful\Kernel\Excel::insertFormula - Vtiful\Kernel\Excel insertFormula
    • Vtiful\Kernel\Excel::insertImage - Vtiful\Kernel\Excel insertImage
    • Vtiful\Kernel\Excel::insertText - Vtiful\Kernel\Excel insertText
    • Vtiful\Kernel\Excel::mergeCells - Vtiful\Kernel\Excel mergeCells
    • Vtiful\Kernel\Excel::output - Vtiful\Kernel\Excel output
    • Vtiful\Kernel\Excel::setColumn - Vtiful\Kernel\Excel setColumn
    • Vtiful\Kernel\Excel::setRow - Vtiful\Kernel\Excel setRow
    • Vtiful\Kernel\Excel::__construct - Vtiful\Kernel\Excel constructor
    • Vtiful\Kernel\Format::align - Vtiful\Kernel\Format align
    • Vtiful\Kernel\Format::bold - Vtiful\Kernel\Format bold
    • Vtiful\Kernel\Format::italic - Vtiful\Kernel\Format italic
    • Vtiful\Kernel\Format::underline - Vtiful\Kernel\Format underline
  • w
    • Warning::__construct - Warning constructor
    • wddx_add_vars - Fügt dem WDDX-Paket mit der übergebenen ID Werte hinzu
    • wddx_deserialize - Deserialisiert ein WDDX Paket
    • wddx_packet_end - Schließt das WDDX-Paket mit der angegebenen ID
    • wddx_packet_start - Beginnt ein neues WDDX-Paket mit einer Struktur
    • wddx_serialize_value - Serialisiert einen einzelnen Wert in ein WDDX-Paket
    • wddx_serialize_vars - Serialisiert Variablen in ein WDDX-Paket
    • WeakMap::count - Counts the number of live entries in the map
    • WeakMap::current - Returns the current value under iteration
    • WeakMap::key - Returns the current key under iteration
    • WeakMap::next - Advances to the next map element
    • WeakMap::offsetExists - Checks whether a certain object is in the map
    • WeakMap::offsetGet - Returns the value pointed to by a certain object
    • WeakMap::offsetSet - Updates the map with a new key-value pair
    • WeakMap::offsetUnset - Removes an entry from the map
    • WeakMap::rewind - Rewinds the iterator to the beginning of the map
    • WeakMap::valid - Returns whether the iterator is still on a valid map element
    • WeakMap::__construct - Constructs a new map
    • Weakref::acquire - Acquires a strong reference on that object
    • Weakref::get - Returns the object pointed to by the weak reference
    • Weakref::release - Releases a previously acquired reference
    • Weakref::valid - Checks whether the object referenced still exists
    • Weakref::__construct - Constructs a new weak reference
    • WeakReference::create - Create a new weak reference
    • WeakReference::get - Get a weakly referenced Object
    • WeakReference::__construct - Constructor that disallows instantiation
    • win32_continue_service - Resumes a paused service
    • win32_create_service - Creates a new service entry in the SCM database
    • win32_delete_service - Deletes a service entry from the SCM database
    • win32_get_last_control_message - Returns the last control message that was sent to this service
    • win32_pause_service - Pauses a service
    • win32_query_service_status - Queries the status of a service
    • win32_send_custom_control - Send a custom control to the service
    • win32_set_service_exit_code - Define or return the exit code for the current running service
    • win32_set_service_exit_mode - Define or return the exit mode for the current running service
    • win32_set_service_status - Update the service status
    • win32_start_service - Starts a service
    • win32_start_service_ctrl_dispatcher - Registers the script with the SCM, so that it can act as the service with the given name
    • win32_stop_service - Stops a service
    • wincache_fcache_fileinfo - Retrieves information about files cached in the file cache
    • wincache_fcache_meminfo - Retrieves information about file cache memory usage
    • wincache_lock - Acquires an exclusive lock on a given key
    • wincache_ocache_fileinfo - Retrieves information about files cached in the opcode cache
    • wincache_ocache_meminfo - Retrieves information about opcode cache memory usage
    • wincache_refresh_if_changed - Refreshes the cache entries for the cached files
    • wincache_rplist_fileinfo - Retrieves information about resolve file path cache
    • wincache_rplist_meminfo - Retrieves information about memory usage by the resolve file path cache
    • wincache_scache_info - Retrieves information about files cached in the session cache
    • wincache_scache_meminfo - Retrieves information about session cache memory usage
    • wincache_ucache_add - Adds a variable in user cache only if variable does not already exist in the cache
    • wincache_ucache_cas - Compares the variable with old value and assigns new value to it
    • wincache_ucache_clear - Deletes entire content of the user cache
    • wincache_ucache_dec - Decrements the value associated with the key
    • wincache_ucache_delete - Deletes variables from the user cache
    • wincache_ucache_exists - Checks if a variable exists in the user cache
    • wincache_ucache_get - Gets a variable stored in the user cache
    • wincache_ucache_inc - Increments the value associated with the key
    • wincache_ucache_info - Retrieves information about data stored in the user cache
    • wincache_ucache_meminfo - Retrieves information about user cache memory usage
    • wincache_ucache_set - Adds a variable in user cache and overwrites a variable if it already exists in the cache
    • wincache_unlock - Releases an exclusive lock on a given key
    • wkhtmltox\Image\Converter::convert - Perform Image conversion
    • wkhtmltox\Image\Converter::getVersion - Determine version of Converter
    • wkhtmltox\Image\Converter::__construct - Create a new Image converter
    • wkhtmltox\PDF\Converter::add - Add an object for conversion
    • wkhtmltox\PDF\Converter::convert - Perform PDF conversion
    • wkhtmltox\PDF\Converter::getVersion - Determine version of Converter
    • wkhtmltox\PDF\Converter::__construct - Create a new PDF converter
    • wkhtmltox\PDF\Object::__construct - Create a new PDF Object
    • wordwrap - Umbricht einen String nach einer bestimmten Anzahl Zeichen
    • Worker::collect - Collect references to completed tasks
    • Worker::getStacked - Gets the remaining stack size
    • Worker::isShutdown - State Detection
    • Worker::isWorking - State Detection
    • Worker::shutdown - Shutdown the worker
    • Worker::stack - Stacking work
    • Worker::unstack - Unstacking work
  • x
    • xattr_get - Get an extended attribute
    • xattr_list - Get a list of extended attributes
    • xattr_remove - Remove an extended attribute
    • xattr_set - Set an extended attribute
    • xattr_supported - Check if filesystem supports extended attributes
    • xdiff_file_bdiff - Make binary diff of two files
    • xdiff_file_bdiff_size - Read a size of file created by applying a binary diff
    • xdiff_file_bpatch - Patch a file with a binary diff
    • xdiff_file_diff - Make unified diff of two files
    • xdiff_file_diff_binary - Alias of xdiff_file_bdiff
    • xdiff_file_merge3 - Merge 3 files into one
    • xdiff_file_patch - Patch a file with an unified diff
    • xdiff_file_patch_binary - Alias of xdiff_file_bpatch
    • xdiff_file_rabdiff - Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
    • xdiff_string_bdiff - Make binary diff of two strings
    • xdiff_string_bdiff_size - Read a size of file created by applying a binary diff
    • xdiff_string_bpatch - Patch a string with a binary diff
    • xdiff_string_diff - Make unified diff of two strings
    • xdiff_string_diff_binary - Alias of xdiff_string_bdiff
    • xdiff_string_merge3 - Merge 3 strings into one
    • xdiff_string_patch - Patch a string with an unified diff
    • xdiff_string_patch_binary - Alias of xdiff_string_bpatch
    • xdiff_string_rabdiff - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm
    • xhprof_disable - Stops xhprof profiler
    • xhprof_enable - Start xhprof profiler
    • xhprof_sample_disable - Stops xhprof sample profiler
    • xhprof_sample_enable - Start XHProf profiling in sampling mode
    • XMLDiff\Base::diff - Produce diff of two XML documents
    • XMLDiff\Base::merge - Produce new XML document based on diff
    • XMLDiff\Base::__construct - Constructor
    • XMLDiff\DOM::diff - Diff two DOMDocument objects
    • XMLDiff\DOM::merge - Produce merged DOMDocument
    • XMLDiff\File::diff - Diff two XML files
    • XMLDiff\File::merge - Produce merged XML document
    • XMLDiff\Memory::diff - Diff two XML documents
    • XMLDiff\Memory::merge - Produce merged XML document
    • XMLReader->moveToElement - Zeiger positionieren auf das Elternelement des aktuellen Attributes
    • XMLReader::close - XMLReader-Eingabe beenden
    • XMLReader::expand - Gibt eine Kopie des aktuellen Knotens als DOM-Objekt zurück
    • XMLReader::getAttribute - Gibt den Wert eines Attributes nach Namen zurück
    • XMLReader::getAttributeNo - Gibt den Wert eines Attributes nach Position zurück
    • XMLReader::getAttributeNs - Gibt den Wert eines Attributes nach lokalem Namen und URI zurück
    • XMLReader::getParserProperty - Zeigt an, ob die angegebene Eigenschaft gesetzt wurde
    • XMLReader::isValid - Zeigt an, ob das geparste Dokument valide ist
    • XMLReader::lookupNamespace - Prüft, ob ein Namensbereich für einen Präfix vorhanden ist
    • XMLReader::moveToAttribute - Zeiger auf benanntes Attribut setzen
    • XMLReader::moveToAttributeNo - Move cursor to an attribute by index
    • XMLReader::moveToAttributeNs - Move cursor to a named attribute
    • XMLReader::moveToFirstAttribute - Zeiger auf erstes Attribut setzen
    • XMLReader::moveToNextAttribute - Zeiger auf nächstes Attribut setzen
    • XMLReader::next - Zeiger auf nächstes Element setzen und Kinder überspringen
    • XMLReader::open - URI angeben, die auf XML-Inhalt verweist, der geparst werden soll
    • XMLReader::read - Zeiger auf das nächste Element setzen
    • XMLReader::readInnerXml - Erhalte XML des aktuellen Knotens
    • XMLReader::readOuterXml - Liest XML des aktuellen Knotens, inklusive den Knoten selbst
    • XMLReader::readString - Liest den Inhalt des aktuellen Knotens als Zeichenkette
    • XMLReader::setParserProperty - Parser-Optionen setzen
    • XMLReader::setRelaxNGSchema - Dateiname oder URI des RelaxNG-Schema setzen
    • XMLReader::setRelaxNGSchemaSource - Zeichenkette setzen, die RelaxNG-Schemadaten enthält
    • XMLReader::setSchema - Validiert Dokument gegen XSD
    • XMLReader::XML - Zeichenkette setzen, deren Inhalt geparst werden soll
    • xmlrpc_decode - Decodes XML into native PHP types
    • xmlrpc_decode_request - Decodes XML into native PHP types
    • xmlrpc_encode - Generates XML for a PHP value
    • xmlrpc_encode_request - Generates XML for a method request
    • xmlrpc_get_type - Gets xmlrpc type for a PHP value
    • xmlrpc_is_fault - Determines if an array value represents an XMLRPC fault
    • xmlrpc_parse_method_descriptions - Decodes XML into a list of method descriptions
    • xmlrpc_server_add_introspection_data - Adds introspection documentation
    • xmlrpc_server_call_method - Parses XML requests and call methods
    • xmlrpc_server_create - Creates an xmlrpc server
    • xmlrpc_server_destroy - Destroys server resources
    • xmlrpc_server_register_introspection_callback - Register a PHP function to generate documentation
    • xmlrpc_server_register_method - Register a PHP function to resource method matching method_name
    • xmlrpc_set_type - Sets xmlrpc type, base64 or datetime, for a PHP string value
    • XMLWriter::endAttribute - Attribute beenden
    • XMLWriter::endCdata - Beendet CDATA-Block
    • XMLWriter::endComment - Beendet Kommentar
    • XMLWriter::endDocument - Beendet Dokument
    • XMLWriter::endDtd - Beendet DTD
    • XMLWriter::endDtdAttlist - Beendet DTD-Attributliste
    • XMLWriter::endDtdElement - Beendet DTD-Element
    • XMLWriter::endDtdEntity - Beendet DTD-Entität
    • XMLWriter::endElement - Beendet Element
    • XMLWriter::endPi - Beendet Verarbeitungsvorschrift
    • XMLWriter::flush - Puffer schreiben
    • XMLWriter::fullEndElement - Beendet Element
    • XMLWriter::openMemory - Erzeugt einen neuen XMLWriter, der Stringausgaben in den Speicher schreibt
    • XMLWriter::openUri - Erzeugt neuen XMLWriter, der URI für Ausgabe verwendet
    • XMLWriter::outputMemory - Gibt Puffer zurück
    • XMLWriter::setIndent - Einrückung ein-/ausschalten
    • XMLWriter::setIndentString - Setzt Zeichenkette, die zur Einrückung verwendet wird
    • XMLWriter::startAttribute - Attribut beginnen
    • XMLWriter::startAttributeNs - Namensraum-Attribut beginnen
    • XMLWriter::startCdata - CDATA-Block beginnen
    • XMLWriter::startComment - Kommentar beginnen
    • XMLWriter::startDocument - Dokument beginnen
    • XMLWriter::startDtd - DTD beginnen
    • XMLWriter::startDtdAttlist - DTD-Attributliste beginnen
    • XMLWriter::startDtdElement - DTD-Element beginnen
    • XMLWriter::startDtdEntity - DTD-Entität beginnen
    • XMLWriter::startElement - Element beginnen
    • XMLWriter::startElementNs - Element mit Namensraum beginnen
    • XMLWriter::startPi - Verarbeitungsvorschrift beginnen
    • XMLWriter::text - Text schreiben
    • XMLWriter::writeAttribute - Komplettes Attribut schreiben
    • XMLWriter::writeAttributeNs - Komplettes Attribute mit Namensraum schreiben
    • XMLWriter::writeCdata - Kompletten CDATA-Block schreiben
    • XMLWriter::writeComment - Kompletten Kommentar schreiben
    • XMLWriter::writeDtd - Komplettes DTD-Tag schreiben
    • XMLWriter::writeDtdAttlist - Komplette DTD-Attributliste schreiben
    • XMLWriter::writeDtdElement - Komplettes DTD-Element schreiben
    • XMLWriter::writeDtdEntity - Komplette DTD-Entität schreiben
    • XMLWriter::writeElement - Komplettes Element schreiben
    • XMLWriter::writeElementNs - Komplettes Element mit Namensraum schreiben
    • XMLWriter::writePi - Komplette Verarbeitungsvorschrift-Tag schreiben
    • XMLWriter::writeRaw - Reines XML schreiben
    • xml_error_string - Get XML parser error string
    • xml_get_current_byte_index - Get current byte index for an XML parser
    • xml_get_current_column_number - Get current column number for an XML parser
    • xml_get_current_line_number - Get current line number for an XML parser
    • xml_get_error_code - Get XML parser error code
    • xml_parse - Start parsing an XML document
    • xml_parser_create - Create an XML parser
    • xml_parser_create_ns - Create an XML parser with namespace support
    • xml_parser_free - Free an XML parser
    • xml_parser_get_option - Get options from an XML parser
    • xml_parser_set_option - Set options in an XML parser
    • xml_parse_into_struct - Parse XML data into an array structure
    • xml_set_character_data_handler - Set up character data handler
    • xml_set_default_handler - Set up default handler
    • xml_set_element_handler - Set up start and end element handlers
    • xml_set_end_namespace_decl_handler - Set up end namespace declaration handler
    • xml_set_external_entity_ref_handler - Set up external entity reference handler
    • xml_set_notation_decl_handler - Set up notation declaration handler
    • xml_set_object - Use XML Parser within an object
    • xml_set_processing_instruction_handler - Set up processing instruction (PI) handler
    • xml_set_start_namespace_decl_handler - Set up start namespace declaration handler
    • xml_set_unparsed_entity_decl_handler - Set up unparsed entity declaration handler
    • XSLTProcessor::getParameter - Liefert den Wert eines Parameters
    • XSLTProcessor::getSecurityPrefs - Liefert die Sicherheitseinstellungen
    • XSLTProcessor::hasExsltSupport - Prüft, ob die EXSLT-Unterstützung aktiviert ist
    • XSLTProcessor::importStylesheet - Importiert ein Stylesheet
    • XSLTProcessor::registerPHPFunctions - Aktiviert die Nutzbarkeit von PHP-Funktionen als XSLT-Funktionen
    • XSLTProcessor::removeParameter - Löscht einen Parameter
    • XSLTProcessor::setParameter - Setzt den Wert für einen Parameter
    • XSLTProcessor::setProfiling - Setzt den Dateinamen für die Ausgaben des Profilers
    • XSLTProcessor::setSecurityPrefs - Setzt die Sicherheitseinstellungen
    • XSLTProcessor::transformToDoc - Transformierung in ein neues DOMDocument
    • XSLTProcessor::transformToURI - Transformierung zu einer URI
    • XSLTProcessor::transformToXml - Transformierung zu einem XML-String
    • XSLTProcessor::__construct - Erzeugt ein neues XSLTProcessor-Objekt
  • y
    • Yac::add - Store into cache
    • Yac::delete - Remove items from cache
    • Yac::dump - Dump cache
    • Yac::flush - Flush the cache
    • Yac::get - Retrieve values from cache
    • Yac::info - Status of cache
    • Yac::set - Store into cache
    • Yac::__construct - Constructor
    • Yac::__get - Getter
    • Yac::__set - Setter
    • Yaconf::get - Retrieve a item
    • Yaconf::has - Determine if a item exists
    • Yaf_Action_Abstract::execute - Action entry point
    • Yaf_Action_Abstract::getController - Retrieve controller object
    • Yaf_Action_Abstract::getControllerName - Get controller name
    • Yaf_Application::app - Retrieve an Application instance
    • Yaf_Application::bootstrap - Call bootstrap
    • Yaf_Application::clearLastError - Clear the last error info
    • Yaf_Application::environ - Retrive environ
    • Yaf_Application::execute - Execute a callback
    • Yaf_Application::getAppDirectory - Get the application directory
    • Yaf_Application::getConfig - Retrive the config instance
    • Yaf_Application::getDispatcher - Get Yaf_Dispatcher instance
    • Yaf_Application::getLastErrorMsg - Get message of the last occurred error
    • Yaf_Application::getLastErrorNo - Get code of last occurred error
    • Yaf_Application::getModules - Get defined module names
    • Yaf_Application::run - Start Yaf_Application
    • Yaf_Application::setAppDirectory - Change the application directory
    • Yaf_Application::__construct - Yaf_Application constructor
    • Yaf_Application::__destruct - The __destruct purpose
    • Yaf_Config_Abstract::get - Getter
    • Yaf_Config_Abstract::readonly - Find a config whether readonly
    • Yaf_Config_Abstract::set - Setter
    • Yaf_Config_Abstract::toArray - Cast to array
    • Yaf_Config_Ini::count - Count all elements in Yaf_Config.ini
    • Yaf_Config_Ini::current - Retrieve the current value
    • Yaf_Config_Ini::key - Fetch current element's key
    • Yaf_Config_Ini::next - Advance the internal pointer
    • Yaf_Config_Ini::offsetExists - The offsetExists purpose
    • Yaf_Config_Ini::offsetGet - The offsetGet purpose
    • Yaf_Config_Ini::offsetSet - The offsetSet purpose
    • Yaf_Config_Ini::offsetUnset - The offsetUnset purpose
    • Yaf_Config_Ini::readonly - The readonly purpose
    • Yaf_Config_Ini::rewind - The rewind purpose
    • Yaf_Config_Ini::toArray - Return config as a PHP array
    • Yaf_Config_Ini::valid - The valid purpose
    • Yaf_Config_Ini::__construct - Yaf_Config_Ini constructor
    • Yaf_Config_Ini::__get - Retrieve a element
    • Yaf_Config_Ini::__isset - Determine if a key is exists
    • Yaf_Config_Ini::__set - The __set purpose
    • Yaf_Config_Simple::count - The count purpose
    • Yaf_Config_Simple::current - The current purpose
    • Yaf_Config_Simple::key - The key purpose
    • Yaf_Config_Simple::next - The next purpose
    • Yaf_Config_Simple::offsetExists - The offsetExists purpose
    • Yaf_Config_Simple::offsetGet - The offsetGet purpose
    • Yaf_Config_Simple::offsetSet - The offsetSet purpose
    • Yaf_Config_Simple::offsetUnset - The offsetUnset purpose
    • Yaf_Config_Simple::readonly - The readonly purpose
    • Yaf_Config_Simple::rewind - The rewind purpose
    • Yaf_Config_Simple::toArray - Returns a PHP array
    • Yaf_Config_Simple::valid - The valid purpose
    • Yaf_Config_Simple::__construct - The __construct purpose
    • Yaf_Config_Simple::__get - The __get purpose
    • Yaf_Config_Simple::__isset - The __isset purpose
    • Yaf_Config_Simple::__set - The __set purpose
    • Yaf_Controller_Abstract::display - The display purpose
    • Yaf_Controller_Abstract::forward - Foward to another action
    • Yaf_Controller_Abstract::getInvokeArg - The getInvokeArg purpose
    • Yaf_Controller_Abstract::getInvokeArgs - The getInvokeArgs purpose
    • Yaf_Controller_Abstract::getModuleName - Get module name
    • Yaf_Controller_Abstract::getName - Get self name
    • Yaf_Controller_Abstract::getRequest - Retrieve current request object
    • Yaf_Controller_Abstract::getResponse - Retrieve current response object
    • Yaf_Controller_Abstract::getView - Retrieve the view engine
    • Yaf_Controller_Abstract::getViewpath - The getViewpath purpose
    • Yaf_Controller_Abstract::init - Controller initializer
    • Yaf_Controller_Abstract::initView - The initView purpose
    • Yaf_Controller_Abstract::redirect - Redirect to a URL
    • Yaf_Controller_Abstract::render - Render view template
    • Yaf_Controller_Abstract::setViewpath - The setViewpath purpose
    • Yaf_Controller_Abstract::__construct - Yaf_Controller_Abstract constructor
    • Yaf_Dispatcher::autoRender - Switch on/off autorendering
    • Yaf_Dispatcher::catchException - Switch on/off exception catching
    • Yaf_Dispatcher::disableView - Disable view rendering
    • Yaf_Dispatcher::dispatch - Dispatch a request
    • Yaf_Dispatcher::enableView - Enable view rendering
    • Yaf_Dispatcher::flushInstantly - Switch on/off the instant flushing
    • Yaf_Dispatcher::getApplication - Retrive the application
    • Yaf_Dispatcher::getDefaultAction - Retrive the default action name
    • Yaf_Dispatcher::getDefaultController - Retrive the default controller name
    • Yaf_Dispatcher::getDefaultModule - Retrive the default module name
    • Yaf_Dispatcher::getInstance - Retrive the dispatcher instance
    • Yaf_Dispatcher::getRequest - Retrive the request instance
    • Yaf_Dispatcher::getRouter - Retrive router instance
    • Yaf_Dispatcher::initView - Initialize view and return it
    • Yaf_Dispatcher::registerPlugin - Register a plugin
    • Yaf_Dispatcher::returnResponse - The returnResponse purpose
    • Yaf_Dispatcher::setDefaultAction - Change default action name
    • Yaf_Dispatcher::setDefaultController - Change default controller name
    • Yaf_Dispatcher::setDefaultModule - Change default module name
    • Yaf_Dispatcher::setErrorHandler - Set error handler
    • Yaf_Dispatcher::setRequest - The setRequest purpose
    • Yaf_Dispatcher::setView - Set a custom view engine
    • Yaf_Dispatcher::throwException - Switch on/off exception throwing
    • Yaf_Dispatcher::__construct - Yaf_Dispatcher constructor
    • Yaf_Exception::getPrevious - The getPrevious purpose
    • Yaf_Exception::__construct - The __construct purpose
    • Yaf_Loader::autoload - The autoload purpose
    • Yaf_Loader::clearLocalNamespace - The clearLocalNamespace purpose
    • Yaf_Loader::getInstance - The getInstance purpose
    • Yaf_Loader::getLibraryPath - Get the library path
    • Yaf_Loader::getLocalNamespace - Retrive all register namespaces info
    • Yaf_Loader::getNamespacePath - Retieve path of a registered namespace
    • Yaf_Loader::import - The import purpose
    • Yaf_Loader::isLocalName - The isLocalName purpose
    • Yaf_Loader::registerLocalNamespace - Register local class prefix
    • Yaf_Loader::registerNamespace - Register namespace with searching path
    • Yaf_Loader::setLibraryPath - Change the library path
    • Yaf_Loader::__construct - The __construct purpose
    • Yaf_Plugin_Abstract::dispatchLoopShutdown - The dispatchLoopShutdown purpose
    • Yaf_Plugin_Abstract::dispatchLoopStartup - Hook before dispatch loop
    • Yaf_Plugin_Abstract::postDispatch - The postDispatch purpose
    • Yaf_Plugin_Abstract::preDispatch - The preDispatch purpose
    • Yaf_Plugin_Abstract::preResponse - The preResponse purpose
    • Yaf_Plugin_Abstract::routerShutdown - The routerShutdown purpose
    • Yaf_Plugin_Abstract::routerStartup - RouterStartup hook
    • Yaf_Registry::del - Remove an item from registry
    • Yaf_Registry::get - Retrieve an item from registry
    • Yaf_Registry::has - Check whether an item exists
    • Yaf_Registry::set - Add an item into registry
    • Yaf_Registry::__construct - Yaf_Registry implements singleton
    • Yaf_Request_Abstract::clearParams - Remove all params
    • Yaf_Request_Abstract::getActionName - The getActionName purpose
    • Yaf_Request_Abstract::getBaseUri - The getBaseUri purpose
    • Yaf_Request_Abstract::getControllerName - The getControllerName purpose
    • Yaf_Request_Abstract::getEnv - Retrieve ENV varialbe
    • Yaf_Request_Abstract::getException - The getException purpose
    • Yaf_Request_Abstract::getLanguage - Retrieve client's prefered language
    • Yaf_Request_Abstract::getMethod - Retrieve the request method
    • Yaf_Request_Abstract::getModuleName - The getModuleName purpose
    • Yaf_Request_Abstract::getParam - Retrieve calling parameter
    • Yaf_Request_Abstract::getParams - Retrieve all calling parameters
    • Yaf_Request_Abstract::getRequestUri - The getRequestUri purpose
    • Yaf_Request_Abstract::getServer - Retrieve SERVER variable
    • Yaf_Request_Abstract::isCli - Determine if request is CLI request
    • Yaf_Request_Abstract::isDispatched - Determin if the request is dispatched
    • Yaf_Request_Abstract::isGet - Determine if request is GET request
    • Yaf_Request_Abstract::isHead - Determine if request is HEAD request
    • Yaf_Request_Abstract::isOptions - Determine if request is OPTIONS request
    • Yaf_Request_Abstract::isPost - Determine if request is POST request
    • Yaf_Request_Abstract::isPut - Determine if request is PUT request
    • Yaf_Request_Abstract::isRouted - Determin if request has been routed
    • Yaf_Request_Abstract::isXmlHttpRequest - Determine if request is AJAX request
    • Yaf_Request_Abstract::setActionName - Set action name
    • Yaf_Request_Abstract::setBaseUri - Set base URI
    • Yaf_Request_Abstract::setControllerName - Set controller name
    • Yaf_Request_Abstract::setDispatched - The setDispatched purpose
    • Yaf_Request_Abstract::setModuleName - Set module name
    • Yaf_Request_Abstract::setParam - Set a calling parameter to a request
    • Yaf_Request_Abstract::setRequestUri - The setRequestUri purpose
    • Yaf_Request_Abstract::setRouted - The setRouted purpose
    • Yaf_Request_Http::get - Retrieve variable from client
    • Yaf_Request_Http::getCookie - Retrieve Cookie variable
    • Yaf_Request_Http::getFiles - The getFiles purpose
    • Yaf_Request_Http::getPost - Retrieve POST variable
    • Yaf_Request_Http::getQuery - Fetch a query parameter
    • Yaf_Request_Http::getRaw - Retrieve Raw request body
    • Yaf_Request_Http::getRequest - The getRequest purpose
    • Yaf_Request_Http::isXmlHttpRequest - Determin if request is Ajax Request
    • Yaf_Request_Http::__construct - Constructor of Yaf_Request_Http
    • Yaf_Request_Simple::get - The get purpose
    • Yaf_Request_Simple::getCookie - The getCookie purpose
    • Yaf_Request_Simple::getFiles - The getFiles purpose
    • Yaf_Request_Simple::getPost - The getPost purpose
    • Yaf_Request_Simple::getQuery - The getQuery purpose
    • Yaf_Request_Simple::getRequest - The getRequest purpose
    • Yaf_Request_Simple::isXmlHttpRequest - Determin if request is AJAX request
    • Yaf_Request_Simple::__construct - Constructor of Yaf_Request_Simple
    • Yaf_Response_Abstract::appendBody - Append to response body
    • Yaf_Response_Abstract::clearBody - Discard all exists response body
    • Yaf_Response_Abstract::clearHeaders - Discard all set headers
    • Yaf_Response_Abstract::getBody - Retrieve a exists content
    • Yaf_Response_Abstract::getHeader - The getHeader purpose
    • Yaf_Response_Abstract::prependBody - The prependBody purpose
    • Yaf_Response_Abstract::response - Send response
    • Yaf_Response_Abstract::setAllHeaders - The setAllHeaders purpose
    • Yaf_Response_Abstract::setBody - Set content to response
    • Yaf_Response_Abstract::setHeader - Set reponse header
    • Yaf_Response_Abstract::setRedirect - The setRedirect purpose
    • Yaf_Response_Abstract::__construct - The __construct purpose
    • Yaf_Response_Abstract::__destruct - The __destruct purpose
    • Yaf_Response_Abstract::__toString - Retrieve all bodys as string
    • Yaf_Router::addConfig - Add config-defined routes into Router
    • Yaf_Router::addRoute - Add new Route into Router
    • Yaf_Router::getCurrentRoute - Get the effective route name
    • Yaf_Router::getRoute - Retrieve a route by name
    • Yaf_Router::getRoutes - Retrieve registered routes
    • Yaf_Router::route - The route purpose
    • Yaf_Router::__construct - Yaf_Router constructor
    • Yaf_Route_Interface::assemble - Assemble a request
    • Yaf_Route_Interface::route - Route a request
    • Yaf_Route_Map::assemble - Assemble a url
    • Yaf_Route_Map::route - The route purpose
    • Yaf_Route_Map::__construct - The __construct purpose
    • Yaf_Route_Regex::assemble - Assemble a url
    • Yaf_Route_Regex::route - The route purpose
    • Yaf_Route_Regex::__construct - Yaf_Route_Regex constructor
    • Yaf_Route_Rewrite::assemble - Assemble a url
    • Yaf_Route_Rewrite::route - The route purpose
    • Yaf_Route_Rewrite::__construct - Yaf_Route_Rewrite constructor
    • Yaf_Route_Simple::assemble - Assemble a url
    • Yaf_Route_Simple::route - Route a request
    • Yaf_Route_Simple::__construct - Yaf_Route_Simple constructor
    • Yaf_Route_Static::assemble - Assemble a url
    • Yaf_Route_Static::match - The match purpose
    • Yaf_Route_Static::route - Route a request
    • Yaf_Route_Supervar::assemble - Assemble a url
    • Yaf_Route_Supervar::route - The route purpose
    • Yaf_Route_Supervar::__construct - The __construct purpose
    • Yaf_Session::count - The count purpose
    • Yaf_Session::current - The current purpose
    • Yaf_Session::del - The del purpose
    • Yaf_Session::getInstance - The getInstance purpose
    • Yaf_Session::has - The has purpose
    • Yaf_Session::key - The key purpose
    • Yaf_Session::next - The next purpose
    • Yaf_Session::offsetExists - The offsetExists purpose
    • Yaf_Session::offsetGet - The offsetGet purpose
    • Yaf_Session::offsetSet - The offsetSet purpose
    • Yaf_Session::offsetUnset - The offsetUnset purpose
    • Yaf_Session::rewind - The rewind purpose
    • Yaf_Session::start - The start purpose
    • Yaf_Session::valid - The valid purpose
    • Yaf_Session::__construct - Constructor of Yaf_Session
    • Yaf_Session::__get - The __get purpose
    • Yaf_Session::__isset - The __isset purpose
    • Yaf_Session::__set - The __set purpose
    • Yaf_Session::__unset - The __unset purpose
    • Yaf_View_Interface::assign - Assign value to View engine
    • Yaf_View_Interface::display - Render and output a template
    • Yaf_View_Interface::getScriptPath - The getScriptPath purpose
    • Yaf_View_Interface::render - Render a template
    • Yaf_View_Interface::setScriptPath - The setScriptPath purpose
    • Yaf_View_Simple::assign - Assign values
    • Yaf_View_Simple::assignRef - The assignRef purpose
    • Yaf_View_Simple::clear - Clear Assigned values
    • Yaf_View_Simple::display - Render and display
    • Yaf_View_Simple::eval - Render template
    • Yaf_View_Simple::getScriptPath - Get templates directory
    • Yaf_View_Simple::render - Render template
    • Yaf_View_Simple::setScriptPath - Set tempaltes directory
    • Yaf_View_Simple::__construct - Constructor of Yaf_View_Simple
    • Yaf_View_Simple::__get - Retrieve assigned variable
    • Yaf_View_Simple::__isset - The __isset purpose
    • Yaf_View_Simple::__set - Set value to engine
    • yaml_emit - Returns the YAML representation of a value
    • yaml_emit_file - Send the YAML representation of a value to a file
    • yaml_parse - Parse a YAML stream
    • yaml_parse_file - Parse a YAML stream from a file
    • yaml_parse_url - Parse a Yaml stream from a URL
    • Yar_Client::setOpt - Set calling contexts
    • Yar_Client::__call - Call service
    • Yar_Client::__construct - Create a client
    • Yar_Client_Exception::getType - Retrieve exception's type
    • Yar_Concurrent_Client::call - Register a concurrent call
    • Yar_Concurrent_Client::loop - Send all calls
    • Yar_Concurrent_Client::reset - Clean all registered calls
    • Yar_Server::handle - Start RPC Server
    • Yar_Server::__construct - Register a server
    • Yar_Server_Exception::getType - Retrieve exception's type
    • yaz_addinfo - Returns additional error information
    • yaz_ccl_conf - Configure CCL parser
    • yaz_ccl_parse - Invoke CCL Parser
    • yaz_close - Close YAZ connection
    • yaz_connect - Prepares for a connection to a Z39.50 server
    • yaz_database - Specifies the databases within a session
    • yaz_element - Specifies Element-Set Name for retrieval
    • yaz_errno - Returns error number
    • yaz_error - Returns error description
    • yaz_es - Prepares for an Extended Service Request
    • yaz_es_result - Inspects Extended Services Result
    • yaz_get_option - Returns value of option for connection
    • yaz_hits - Returns number of hits for last search
    • yaz_itemorder - Prepares for Z39.50 Item Order with an ILL-Request package
    • yaz_present - Prepares for retrieval (Z39.50 present)
    • yaz_range - Specifies a range of records to retrieve
    • yaz_record - Returns a record
    • yaz_scan - Prepares for a scan
    • yaz_scan_result - Returns Scan Response result
    • yaz_schema - Specifies schema for retrieval
    • yaz_search - Prepares for a search
    • yaz_set_option - Sets one or more options for connection
    • yaz_sort - Sets sorting criteria
    • yaz_syntax - Specifies the preferred record syntax for retrieval
    • yaz_wait - Wait for Z39.50 requests to complete
  • z
    • zend_thread_id - Returns a unique identifier for the current thread
    • zend_version - Liefert die aktuelle Version der Zend Engine
    • ZipArchive::addEmptyDir - Fügt ein neues Verzeichnis hinzu
    • ZipArchive::addFile - Fügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu
    • ZipArchive::addFromString - Fügt eine Datei unter Verwendung ihres Inhalts zu einem ZIP-Archiv hinzu
    • ZipArchive::addGlob - Add files from a directory by glob pattern
    • ZipArchive::addPattern - Add files from a directory by PCRE pattern
    • ZipArchive::close - Schließt das aktive Archiv (geöffnet oder neu erstellt)
    • ZipArchive::count - Counts the number of files in the archive
    • ZipArchive::deleteIndex - Löscht einen Archiveintrag unter Verwendung seines Index
    • ZipArchive::deleteName - Löscht einen Archiveintrag unter Verwendung seines Namens
    • ZipArchive::extractTo - Extrahiert den Archivinhalt
    • ZipArchive::getArchiveComment - Gibt den ZIP-Archiv-Kommentar zurück
    • ZipArchive::getCommentIndex - Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsindex zurück
    • ZipArchive::getCommentName - Gibt den Kommentar zu einem Eintrag unter Verwendung des Eintragsnamens zurück
    • ZipArchive::getExternalAttributesIndex - Retrieve the external attributes of an entry defined by its index
    • ZipArchive::getExternalAttributesName - Retrieve the external attributes of an entry defined by its name
    • ZipArchive::getFromIndex - Gibt den Inhalt eines Eintrags unter Verwendung seines Index zurück
    • ZipArchive::getFromName - Gibt den Inhalt eines Eintrags unter Verwendung seines Namens zurück
    • ZipArchive::getNameIndex - Gibt den Namen eines Eintrags unter Verwendung seines Index zurück
    • ZipArchive::getStatusString - Gibt die Statusfehlermeldung sowie System- oder ZIP-Meldungen zurück
    • ZipArchive::getStream - Erzeugt einen Dateizeiger zu dem per Name bestimmten Eintrag (read only)
    • ZipArchive::isCompressionMethodSupported - Check if a compression method is supported by libzip
    • ZipArchive::isEncryptionMethodSupported - Check if a encryption method is supported by libzip
    • ZipArchive::locateName - Gibt den Index eines Archiveintrags zurück
    • ZipArchive::open - Öffnet ein ZIP-Dateiarchiv
    • ZipArchive::registerCancelCallback - Register a callback to allow cancellation during archive close.
    • ZipArchive::registerProgressCallback - Register a callback to provide updates during archive close.
    • ZipArchive::renameIndex - Benennt einen durch seinen Index bestimmten Eintrag um
    • ZipArchive::renameName - Benennt einen durch seinen Namen bestimmten Eintrag um
    • ZipArchive::replaceFile - Replace file in ZIP archive with a given path
    • ZipArchive::setArchiveComment - Setzt einen Kommentar zu einem ZIP-Archiv
    • ZipArchive::setCommentIndex - Setzt einen Eintragskommentar, der via Eintragsindex bestimmt wird
    • ZipArchive::setCommentName - Setzt einen Eintragskommentar, der via Eintragsnamen bestimmt wird
    • ZipArchive::setCompressionIndex - Set the compression method of an entry defined by its index
    • ZipArchive::setCompressionName - Set the compression method of an entry defined by its name
    • ZipArchive::setEncryptionIndex - Set the encryption method of an entry defined by its index
    • ZipArchive::setEncryptionName - Set the encryption method of an entry defined by its name
    • ZipArchive::setExternalAttributesIndex - Set the external attributes of an entry defined by its index
    • ZipArchive::setExternalAttributesName - Set the external attributes of an entry defined by its name
    • ZipArchive::setMtimeIndex - Set the modification time of an entry defined by its index
    • ZipArchive::setMtimeName - Set the modification time of an entry defined by its name
    • ZipArchive::setPassword - Set the password for the active archive
    • ZipArchive::statIndex - Gibt die Details eines via Index bestimmten Eintrags zurück
    • ZipArchive::statName - Gibt die Details eines via Namen bestimmten Eintrags zurück
    • ZipArchive::unchangeAll - Setzt alle im Archiv durchgeführten Änderungen zurück
    • ZipArchive::unchangeArchive - Nimmt alle globalen Änderungen zurück, die im Archiv durchgeführt wurden
    • ZipArchive::unchangeIndex - Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Index gemacht wurden
    • ZipArchive::unchangeName - Nimmt alle Änderungen zurück, die auf dem Eintrag mit dem gegebenen Namen gemacht wurden
    • Zip context options - Zip context option listing
    • zip_close - Schließt ein ZIP-Archiv
    • zip_entry_close - Schließt einen Verzeichniseintrag
    • zip_entry_compressedsize - Ermittelt die komprimierte Größe eines Verzeichniseintrages
    • zip_entry_compressionmethod - Ermittelt die Komprimierungsmethode eines Verzeichniseintrags
    • zip_entry_filesize - Ermittelt die effektive Größe eines Verzeichniseintrages
    • zip_entry_name - Gibt den Namen eines Verzeichniseintrages zurück
    • zip_entry_open - Öffnet einen Verzeichniseintrag für den Lesezugriff
    • zip_entry_read - Liest einen geöffneten Verzeichniseintrag aus
    • zip_open - Öffnet ein ZIP-Archiv
    • zip_read - Liest den nächsten Eintrag innerhalb des ZIP-Archivs
    • zlib:// - Compression Streams
    • zlib_decode - Dekomprimiert raw-/gzip-/zlib-kodierte Daten
    • zlib_encode - Komprimiert Daten mit der gewählten Kodierung
    • zlib_get_coding_type - Gibt die für Ausgabekomprimierung genutzte Methode zurück
    • ZMQ::__construct - ZMQ constructor
    • ZMQContext::getOpt - Get context option
    • ZMQContext::getSocket - Create a new socket
    • ZMQContext::isPersistent - Whether the context is persistent
    • ZMQContext::setOpt - Set a socket option
    • ZMQContext::__construct - Construct a new ZMQContext object
    • ZMQDevice::getIdleTimeout - Get the idle timeout
    • ZMQDevice::getTimerTimeout - Get the timer timeout
    • ZMQDevice::run - Run the new device
    • ZMQDevice::setIdleCallback - Set the idle callback function
    • ZMQDevice::setIdleTimeout - Set the idle timeout
    • ZMQDevice::setTimerCallback - Set the timer callback function
    • ZMQDevice::setTimerTimeout - Set the timer timeout
    • ZMQDevice::__construct - Construct a new device
    • ZMQPoll::add - Add item to the poll set
    • ZMQPoll::clear - Clear the poll set
    • ZMQPoll::count - Count items in the poll set
    • ZMQPoll::getLastErrors - Get poll errors
    • ZMQPoll::poll - Poll the items
    • ZMQPoll::remove - Remove item from poll set
    • ZMQSocket::bind - Bind the socket
    • ZMQSocket::connect - Connect the socket
    • ZMQSocket::disconnect - Disconnect a socket
    • ZMQSocket::getEndpoints - Get list of endpoints
    • ZMQSocket::getPersistentId - Get the persistent id
    • ZMQSocket::getSocketType - Get the socket type
    • ZMQSocket::getSockOpt - Get socket option
    • ZMQSocket::isPersistent - Whether the socket is persistent
    • ZMQSocket::recv - Receives a message
    • ZMQSocket::recvMulti - Receives a multipart message
    • ZMQSocket::send - Sends a message
    • ZMQSocket::sendmulti - Sends a multipart message
    • ZMQSocket::setSockOpt - Set a socket option
    • ZMQSocket::unbind - Unbind the socket
    • ZMQSocket::__construct - Construct a new ZMQSocket
    • Zookeeper::addAuth - Specify application credentials
    • Zookeeper::close - Close the zookeeper handle and free up any resources
    • Zookeeper::connect - Create a handle to used communicate with zookeeper
    • Zookeeper::create - Create a node synchronously
    • Zookeeper::delete - Delete a node in zookeeper synchronously
    • Zookeeper::exists - Checks the existence of a node in zookeeper synchronously
    • Zookeeper::get - Gets the data associated with a node synchronously
    • Zookeeper::getAcl - Gets the acl associated with a node synchronously
    • Zookeeper::getChildren - Lists the children of a node synchronously
    • Zookeeper::getClientId - Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
    • Zookeeper::getConfig - Get instance of ZookeeperConfig
    • Zookeeper::getRecvTimeout - Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect
    • Zookeeper::getState - Get the state of the zookeeper connection
    • Zookeeper::isRecoverable - Checks if the current zookeeper connection state can be recovered
    • Zookeeper::set - Sets the data associated with a node
    • Zookeeper::setAcl - Sets the acl associated with a node synchronously
    • Zookeeper::setDebugLevel - Sets the debugging level for the library
    • Zookeeper::setDeterministicConnOrder - Enable/disable quorum endpoint order randomization
    • Zookeeper::setLogStream - Sets the stream to be used by the library for logging
    • Zookeeper::setWatcher - Set a watcher function
    • Zookeeper::__construct - Create a handle to used communicate with zookeeper
    • ZookeeperConfig::add - Add servers to the ensemble
    • ZookeeperConfig::get - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
    • ZookeeperConfig::remove - Remove servers from the ensemble
    • ZookeeperConfig::set - Change ZK cluster ensemble membership and roles of ensemble peers
    • zookeeper_dispatch - Calls callbacks for pending operations
  • _
    • __autoload - Attempt to load undefined class
    • __halt_compiler - Beendet die Kompilerausführung


Verzeichnis der Beispiele

Verzeichnis aller Beispiele im Handbuch

  • Example#0 - Ein einführendes Beispiel
  • Example#1 - Unser erstes PHP-Skript: hallo.php
  • Example#2 - Anzeigen von Systeminformationen mit PHP
  • Example#3 - Variable ausgeben (Array-Element)
  • Example#4 - Beispiel, das Kontrollstrukturen und Funktionen verwendet
  • Example#5 - HTML- und PHP-Modus vermischt
  • Example#6 - Ein einfaches HTML-Formular
  • Example#7 - Daten des Formulars ausgeben
  • Example#8 - Installationsanweisungen (Apache Shared Module Version) für PHP
  • Example#9 - Installationsanweisungen (Statische Modulinstallation für Apache) für PHP
  • Example#10 - Beispielbefehle, um Apache neu zu starten
  • Example#11 -
  • Example#12 -
  • Example#13 -
  • Example#14 -
  • Example#15 -
  • Example#16 -
  • Example#17 -
  • Example#18 -
  • Example#19 -
  • Example#20 -
  • Example#21 -
  • Example#22 -
  • Example#23 -
  • Example#24 - Partial lighttpd.conf
  • Example#25 - Spawning FastCGI Responders
  • Example#26 - Verbindung zu entferten php-fastcgi Instanzen
  • Example#27 -
  • Example#28 -
  • Example#29 - OpenBSD Package Install Example
  • Example#30 - Debian-Installations-Beispiel mit Apache 2
  • Example#31 - Stoppen und Starten von Apache nach der Installation von PHP
  • Example#32 - Methoden zur Anzeige weiterer PHP-5-Pakete
  • Example#33 - PHP mit MySQL und cURL installieren
  • Example#34 - Recommended OpCache configuration
  • Example#35 - Recommended WinCache configuration
  • Example#36 - Kommandozeilen-Konfiguration von IIS und PHP
  • Example#37 - PHP 5 package structure
  • Example#38 - CGI and FastCGI settings in php.ini
  • Example#39 - Configuring FastCGI extension to handle PHP requests
  • Example#40 - Configuring file access permissions
  • Example#41 - Configuring FastCGI and PHP recycling
  • Example#42 - Configuring FastCGI timeout settings
  • Example#43 - Changing the location of php.ini file
  • Example#44 - CGI and FastCGI settings in php.ini
  • Example#45 - Creating IIS FastCGI process pool
  • Example#46 - Creating handler mapping for PHP requests
  • Example#47 - Determining the account used as IIS anonymous identity
  • Example#48 - Configuring file access permissions
  • Example#49 - Set index.php as a default document in IIS
  • Example#50 - Configuring FastCGI and PHP recycling
  • Example#51 - Configuring FastCGI timeout settings
  • Example#52 - Changing the location of php.ini file
  • Example#53 - PHP as an Apache 1.3.x module
  • Example#54 - PHP and Apache 1.3.x as CGI
  • Example#55 - PHP and Apache 2.x as handler
  • Example#56 -
  • Example#57 - PHP and Apache 2.x as CGI
  • Example#58 - Configure Apache to run PHP as FastCGI
  • Example#59 - ISAPI configuration of Sambar
  • Example#60 - Enable Bzip2 extension for PHP-Windows
  • Example#61 - Registry changes
  • Example#62 - Übergabe von Umgebungsvariablen und PHP Einstellungen an einen Pool
  • Example#63 - Festlegen von PHP-Einstellungen in nginx.conf
  • Example#64 - phpinfo call
  • Example#65 - php.ini Umgebungsvariablen
  • Example#66 - php.ini-Beispiel
  • Example#67 - Apache-Konfigurationsbeispiel
  • Example#68 - Öffnende und schließende PHP-Tags
  • Example#69 - Fortgeschrittene Ausgabe unter Verwendung von Bedingungen
  • Example#70 - Beispiel für den schließenden Tag, der den abschließenden Zeilenumbruch einschließt
  • Example#71 - Integer literals
  • Example#72 - Integer overflow on a 32-bit system
  • Example#73 - Integer overflow on a 64-bit system
  • Example#74 - Ungültiges Beispiel
  • Example#75 - Gültiges Beispiel
  • Example#76 - Heredoc string quoting example
  • Example#77 - Heredoc in arguments example
  • Example#78 - Using Heredoc to initialize static values
  • Example#79 - Using double quotes in Heredoc
  • Example#80 - Nowdoc string quoting example
  • Example#81 - Nowdoc string quoting example with variables
  • Example#82 - Static data example
  • Example#83 - Simple syntax example
  • Example#84 - Negative numeric indices
  • Example#85 - Some string examples
  • Example#86 - Differences between PHP 5.3 and PHP 5.4
  • Example#87 - Ein einfaches Array
  • Example#88 - Beispiel für Typenumwandlung und Überschreibung
  • Example#89 - Gemischte Integer und String Schlüssel
  • Example#90 - Indizierte Arrays ohne Schlüssel
  • Example#91 - Schlüssel nicht bei allen Elementen
  • Example#92 - Zugriff auf Array-Elemente
  • Example#93 - Array-Dereferenzierung
  • Example#94 - Verwendung von array()
  • Example#95 - Collection
  • Example#96 - Elemente in der Schleife verändern
  • Example#97 - 1-basierte Indizes
  • Example#98 - Ein Array befüllen
  • Example#99 - Ein Array sortieren
  • Example#100 - Rekursive und mehrdimensionale Arrays
  • Example#101 - Iterable parameter type example
  • Example#102 - Iterable parameter default value example
  • Example#103 - Iterable return type example
  • Example#104 - Iterable generator return type example
  • Example#105 - Iterable type variance example
  • Example#106 - Beispiele für Callback-Funktionen
  • Example#107 - Fallback-Beispiel mit einem Closure
  • Example#108 -
  • Example#109 - Basic class type declaration
  • Example#110 - Basic interface type declaration
  • Example#111 - Basic return type declaration
  • Example#112 - Returning an object
  • Example#113 - Nullable argument type declaration
  • Example#114 - Nullable return type declaration
  • Example#115 - Old way to make arguments nullable
  • Example#116 - Strict typing for arguments values
  • Example#117 - Coercive typing for argument values
  • Example#118 - Strict typing for return values
  • Example#119 - Example of types being coerced into a type part of the union
  • Example#120 - Typed pass-by-reference Parameters
  • Example#121 - Catching TypeError
  • Example#122 - Vorgabewerte uninitialisierter Variablen
  • Example#123 - Verwendung von global
  • Example#124 - Verwendung von $GLOBALS statt global
  • Example#125 - Beispiel zur Demonstration von Superglobalen und Geltungsbereich
  • Example#126 - Beispiel, das die Notwendigkeit von statischen Variablen demonstriert
  • Example#127 - Beispiel zur Verwendung statischer Variablen
  • Example#128 - Statische Variablen in rekursiven Funktionen
  • Example#129 - Statische Variablen deklarieren
  • Example#130 - Beispiel zu variablen Eigenschaften
  • Example#131 - Ein einfaches HTML-Formular
  • Example#132 - Zugriff auf die Daten eines einfachen POST-HTML-Formular
  • Example#133 - Komplexere Formular-Variablen
  • Example#134 - Ein setcookie-Beispiel
  • Example#135 - Gültige und ungültige Namen für Konstanten
  • Example#136 - Definition von Konstanten
  • Example#137 - Definition von Konstanten unter Verwendung des const-Keywords
  • Example#138 - Assoziativität
  • Example#139 - Nicht definierte Auswertungsreihenfolge
  • Example#140 - +, - und . haben dieselbe Rangfolge
  • Example#141 - Referenzzuweisung
  • Example#142 - Bitweise UND, ODER und XODER Operationen mit Ganzzahlen
  • Example#143 - Bitweise XODER Operationen mit Zeichenketten
  • Example#144 - Bit-Verschiebung mit Ganzzahlen
  • Example#145 - Boolesche und Null Vergleiche
  • Example#146 - Umschreibung von Standard-Array-Vergleichen
  • Example#147 - Zuweisen eines Standardwerts
  • Example#148 - Ungewöhnliches Verhalten des ternären Operators
  • Example#149 - Zuweisung eines Standardwerts
  • Example#150 - Verschachtelung des Null-Coalescing-Operator
  • Example#151 - Arithmetrische Operationen an Zeichenvariablen
  • Example#152 - Logische Operatoren erklärt
  • Example#153 - Array-Vergleiche
  • Example#154 - Die Verwendung von instanceof mit Klassen
  • Example#155 - Verwendung von instanceof mit ererbten Klassen
  • Example#156 - Verwendung von instanceof, um zu prüfen, ob ein Objekt kein Exemplar einer Klasse ist
  • Example#157 - Verwendung von instanceof mit Interfaces
  • Example#158 - Verwendung von instanceof mit anderen Variablen
  • Example#159 - Verwendung von instanceof um andere Variablen zu prüfen
  • Example#160 - Verwendung von instanceof um Konstanten zu prüfen
  • Example#161 - Vermeidung von Klassennamenssuchen und fataler Fehler mit instanceof in PHP 5.0
  • Example#162 - switch Anweisung
  • Example#163 - switch gestattet die Verwendung von Strings
  • Example#164 - Structure of a match expression
  • Example#165 - Example of an unhandled match expression
  • Example#166 - Using a generalized match expressions to branch on integer ranges
  • Example#167 - Using a generalized match expressions to branch on string content
  • Example#168 - Tick Nutzungsbeispiel
  • Example#169 - Tick Nutzungsbeispiel
  • Example#170 - Das Encoding eines Skripts deklarieren.
  • Example#171 - Grundlegendes include-Beispiel
  • Example#172 - Include in Funktionen
  • Example#173 - include über HTTP
  • Example#174 - Vergleichen des Rückgabewerts von include
  • Example#175 - include und return
  • Example#176 - Nutzung des Ausgabepuffers um eine Datei "in einen String" einzubinden
  • Example#177 - goto-Beispiel
  • Example#178 - goto Schleifenbeispiel
  • Example#179 - Das wird nicht funktionieren
  • Example#180 - Pseudocode zur Demonstration der Nutzung von Funktionen
  • Example#181 - Bedingte Funktionen
  • Example#182 - Funktionen innerhalb von Funktionen
  • Example#183 - Rekursive Funktionen
  • Example#184 - Arrays an Funktionen übergeben
  • Example#185 - Function Argument List with trailing Comma
  • Example#186 - Passing optional arguments after mandatory arguments
  • Example#187 - Übergeben von Funktionsparametern als Verweis
  • Example#188 - Einsatz von Vorgabeparametern in Funktionen
  • Example#189 - Nichtskalare Typen als Vorgabewert
  • Example#190 - Ungültige Anwendung von Vorgabewerten
  • Example#191 - Richtiger Einsatz von Vorgabewerten
  • Example#192 - Verwendung von ... für den Zugriff auf variable Parameter
  • Example#193 - Verwendung von ... zur Übergabe einer Parameterliste
  • Example#194 - Variable Parameter mit Typdeklaration
  • Example#195 - Zugriff auf variable Parameter in alten PHP-Versionen
  • Example#196 - Named argument syntax
  • Example#197 - Positional arguments versus named arguments
  • Example#198 - Same example as above with a different order of parameters
  • Example#199 - Combining named arguments with positional arguments
  • Example#200 - Error exception when passing the same parameter multiple times
  • Example#201 - Einsatz von return
  • Example#202 - Rückgabe mehrerer Werte als Array
  • Example#203 - Rückgabe von Referenzen aus Funktionen
  • Example#204 - Beispiel für Variablenfunktionen
  • Example#205 - Variable Methode
  • Example#206 - Beispiel für variable Methoden mit statischen Eigenschaften
  • Example#207 - Komplexe Callables
  • Example#208 - Beispiel für eine anonyme Funktion
  • Example#209 - Beispiel für die Zuweisung einer anonymen Funktion
  • Example#210 - Erben von Variablen aus dem Eltern-Scope
  • Example#211 - Closures und Gültigkeitsbereiche
  • Example#212 - Automatisches Binden von $this
  • Example#213 - Versuch der Verwendung von $this innerhalb einer statischen anonymen Funktion
  • Example#214 - Versuch ein Objekt an eine statische anonyme Funktion zu binden
  • Example#215 - Pfeilfunktionen binden Variablen automatisch per Wertübergabe
  • Example#216 - Pfeilfunktionen binden Variablen automatisch per Wertübergabe, selbst wenn sie verschachtelt sind
  • Example#217 - Beispiele von Pfeilfunktionen
  • Example#218 - Werte aus dem äußeren Geltungsbereich können nicht durch Pfeilfunktionen geändert werden
  • Example#219 - Definition einer einfachen Klasse
  • Example#220 - Einige Beispiele für die $this-Pseudovariable
  • Example#221 - Eine Instanz erzeugen
  • Example#222 - Objektzuweisung
  • Example#223 - Erzeugen neuer Objekte
  • Example#224 - Zugriff auf ein Mitglied eines neu erzeugten Objekts
  • Example#225 - Variablenzugriff vs. Methodenaufruf
  • Example#226 - Aufruf einer anonymen Funktion, die in einer Eigenschaft gespeichert ist
  • Example#227 - Einfache Vererbung
  • Example#228 - Auflösung von Klassennamen
  • Example#229 - Fehlende Auflösung des Klassennamens>
  • Example#230 - Namensauflösung eines Objekts
  • Example#231 - Nullsafe Operator
  • Example#232 - Deklaration von Eigenschaften
  • Example#233 - Beispiel für ein nowdoc zur Initialisierung einer Eigenschaft
  • Example#234 - Beispiel von typisierten Eigenschaften
  • Example#235 - Eine Konstante definieren und benutzen
  • Example#236 - Beispiel für statische Daten
  • Example#237 - Beispiel für ::class in einem Namensraum
  • Example#238 - Beispiel mit konstanten Ausdrücken
  • Example#239 - Sichtbarkeitsmodifizierer von Klassenkonstanten
  • Example#240 - Autoload Beispiel
  • Example#241 - Weiteres Autoload Beispiel
  • Example#242 - Autoloading mit Ausnahmebehandlung für 5.3.0+
  • Example#243 - Autoloading mit Ausnahmebehandlung für 5.3.0+ mit fehlender eigener Exception
  • Example#244 - Konstruktoren bei der Vererbung
  • Example#245 - Die Verwendung von Argumenten eines Konstruktors
  • Example#246 - Die Verwendung der Beförderung von Konstruktor-Eigenschaften
  • Example#247 - Die Erzeugung über statische Methoden verwenden
  • Example#248 - Destruktor Beispiel
  • Example#249 - Eigenschaftendeklaration
  • Example#250 - Methodendeklaration
  • Example#251 - Konstantendeklaration von PHP 7.1.0 an
  • Example#252 - Zugriff auf als private markierte Member des gleichen Objekttyps
  • Example#253 - Beispiel für Vererbung
  • Example#254 - :: außerhalb der Klassendefinition
  • Example#255 - :: innerhalb der Klassendefinition
  • Example#256 - Eine Vatermethode aufrufen
  • Example#257 - Statisches Methoden-Beispiel
  • Example#258 - Beispiel für statische Eigenschaften
  • Example#259 - Beispiel für abstrakte Klasse
  • Example#260 - Abstract class example
  • Example#261 - Interface-Beispiel
  • Example#262 - Interface-Vererbung
  • Example#263 - Interface-Mehrfachvererbung
  • Example#264 - Interfaces mit Konstanten
  • Example#265 - Trait Beispiel
  • Example#266 - Rangfolge Beispiel
  • Example#267 - Weiteres Beispiel für Rangfolge
  • Example#268 - Verwendung mehrerer Traits
  • Example#269 - Konfliktauflösung
  • Example#270 - Veränderung der Sichtbarkeit von Methoden
  • Example#271 - Trait-Zusammensetzung aus Traits
  • Example#272 - Ausdrücken von Anforderungen durch abstrakte Methoden
  • Example#273 - Statische Variablen
  • Example#274 - Statische Methoden
  • Example#275 - Attribute definieren
  • Example#276 - Konfliktauflösung
  • Example#277 - Überladung von Eigenschaften mit den Methoden __get, __set, __isset und __unset
  • Example#278 - Überladung von Methoden mit den methoden __call und __callStatic
  • Example#279 - Einfache Objektiteration
  • Example#280 - Objektiteration mit implementiertem Iterator
  • Example#281 - Objektiteration mit implementiertem IteratorAggregate
  • Example#282 - Sleep- und Wakeup-Beispiel
  • Example#283 - Serialize und unserialize
  • Example#284 - Einfaches Beispiel
  • Example#285 - Nutzung von __invoke()
  • Example#286 - Verwendung von __set_state() (seit PHP 5.1.0)
  • Example#287 - Verwendung von __debugInfo()
  • Example#288 - Beispiel für final-Methoden
  • Example#289 - Beispiel für final-Klassen
  • Example#290 - Ein Objekt klonen
  • Example#291 - Zugriff auf ein Element eines soeben geklonten Objekts
  • Example#292 - Beispiel für Objektvergleiche in PHP 5
  • Example#293 - Nutzung von self::
  • Example#294 - Einfache Nutzung von static::
  • Example#295 - Nutzung von static:: außerhalb eines statischen Kontexts
  • Example#296 - Weitergegebene und nicht weitergegebene Aufrufe
  • Example#297 - Referenzen und Objekte
  • Example#298 - Beispiel für Namespace-Syntax
  • Example#299 - Einen einzelnen Namespace deklarieren
  • Example#300 - Einen einzelnen Namespace deklarieren
  • Example#301 - Einen einzelnen Namespace mit einer Hierarchie deklarieren
  • Example#302 - Mehrere Namespaces definieren, einfache Kombinationssyntax
  • Example#303 - Mehrere Namespaces definieren, geklammerte Syntax
  • Example#304 - Mehrere Namespaces und Code ohne Namespace deklarieren
  • Example#305 - Mehrere Namespaces und Code ohne Namespace deklarieren
  • Example#306 - Zugriff auf globale Klassen, Funktionen und Konstanten aus einem Namespace
  • Example#307 - Dynamischer Zugriff auf Elemente
  • Example#308 - Dynamischer Zugriff auf Elemente mit Namespace
  • Example#309 - __NAMESPACE__-Beispiel, Code mit Namespace
  • Example#310 - __NAMESPACE__-Beispiel, globaler Code
  • Example#311 - __NAMESPACE__ zur dynamischen Namenszusammensetzung verwenden
  • Example#312 - Der namespace-Operator, innerhalb eines Namespace
  • Example#313 - Der namespace-Operator, in globalem Code
  • Example#314 - Aliase/Importieren mit dem use-Operator
  • Example#315 - Aliase/Importieren mit dem use-Operator, mehrere use-Ausdrücke kombiniert
  • Example#316 - Importieren und dynamische Namen
  • Example#317 - Importieren und vollständig qualifizierte Namen
  • Example#318 - Ungültige Importregel
  • Example#319 - Verwenden der Spezifikation des gloablen Namensraumes
  • Example#320 - Zugriff auf globale Klasse innerhalb eines Namespace
  • Example#321 - Rückgriff auf globale Funktionen/Konstanten innerhalb eines Namespace
  • Example#322 - Illustration der Namensauflösung
  • Example#323 - Zugriff auf globale Klassen außerhalb eines Namespace
  • Example#324 - Zugriff auf globale Klassen außerhalb eines Namespace
  • Example#325 - Zugriff auf interne Klassen in Namespaces
  • Example#326 - Zugriff auf interne Klassen, Funktionen oder Konstanten in Namespaces
  • Example#327 - Vollständig qualifizierte Namen
  • Example#328 - Qualifizierte Namen
  • Example#329 - Unqualifizierter Klassennamen
  • Example#330 - Unqualifizierte Funktions- oder Konstantennamen
  • Example#331 - Gefahren von Namespacenamen in Strings mit doppelten Anführungszeichen
  • Example#332 - Undefinierte Konstanten
  • Example#333 - Spezielle Konstanten
  • Example#334 - Die eingebaute Exceptionklasse
  • Example#335 - Die Exceptionklasse erweitern (PHP 5.3.0+)
  • Example#336 - Eine Exception werfen
  • Example#337 - Exceptionbehandlung mit einem finally-Block
  • Example#338 - Wechselwirkung zwischen dem finally-Block und return
  • Example#339 - Verschachtelte Exceptions
  • Example#340 - Multi catch exception handling
  • Example#341 - Implementierung von range als Generator
  • Example#342 - Ein einfaches Beispiel zum liefern (yielding) von Werten
  • Example#343 - Produzieren eines Schlüssel/Wert-Paares
  • Example#344 - Produzieren von nulls
  • Example#345 - Produzieren von Werten als Referenz
  • Example#346 - yield from mit iterator_to_array
  • Example#347 - Grundlegende Verwendung von yield from
  • Example#348 - yield from und Rückgabewerte
  • Example#349 - Implementing optional methods of an interface with Attributes
  • Example#350 - Attribute Syntax
  • Example#351 - Reading Attributes using Reflection API
  • Example#352 - Reading Specific Attributes using Reflection API
  • Example#353 - Using target specification to restrict where attributes can be used
  • Example#354 - Simple Attribute Class
  • Example#355 - Using IS_REPEATABLE to allow attribute on a declaration multiple times
  • Example#356 - Referenzen mit undefinierten Variablen benutzen
  • Example#357 - Referenzieren globaler Variablen innerhalb von Funktionen
  • Example#358 - Referenzen und die foreach-Anweisung
  • Example#359 - $GLOBALS-Beispiel
  • Example#360 - $_SERVER-Beispiel
  • Example#361 - $_GET-Beispiel
  • Example#362 - $_POST-Beispiel
  • Example#363 - $_ENV-Beispiel
  • Example#364 - $_COOKIE-Beispiel
  • Example#365 - $php_errormsg-Beispiel
  • Example#366 - $http_response_header-Beispiel
  • Example#367 - $argc-Beispiel
  • Example#368 - $argv-Beispiel
  • Example#369 - Exception::getMessage-Beispiel
  • Example#370 - Exception::getPrevious Beispiel
  • Example#371 - Exception::getCode-Beispiel
  • Example#372 - Exception::getFile-Beispiel
  • Example#373 - Exception::getLine-Beispiel
  • Example#374 - Exception::getTrace-Beispiel
  • Example#375 - Exception::getTraceAsString-Beispiel
  • Example#376 - Exception::__toString-Beispiel
  • Example#377 - Verwenden von set_error_handler zum Verändern von Fehlermeldungen innerhalb ErrorException.
  • Example#378 - ErrorException::getSeverity-Beispiel
  • Example#379 - Error::getMessage-Beispiel
  • Example#380 - Error::getPrevious-Beispiel
  • Example#381 - Error::getCode-Beispiel
  • Example#382 - Error::getFile-Beispiel
  • Example#383 - Error::getLine-Beispiel
  • Example#384 - Error::getTrace-Beispiel
  • Example#385 - Error::getTraceAsString-Beispiel
  • Example#386 - Error::__toString-Beispiel
  • Example#387 - Basisnutzung
  • Example#388 - Basisnutzung
  • Example#389 - Basisnutzung
  • Example#390 - ArrayAccess::offsetExists-Beispiel
  • Example#391 - Basisnutzung
  • Example#392 - Closure::bind example
  • Example#393 - Closure::bindTo example
  • Example#394 - Closure::call example
  • Example#395 - Generator::getReturn example
  • Example#396 - Generator::key example
  • Example#397 - Using Generator::send to inject values
  • Example#398 - Throwing an exception into a generator
  • Example#399 - Basic WeakReference Usage
  • Example#400 - Basic bindto usage example
  • Example#401 - Fetch a page and send POST data
  • Example#402 - Ignore redirects but fetch headers and content
  • Example#403 - Hole eine Seite und sende POST-Daten
  • Example#404 - Basic password usage example
  • Example#405 - Detecting which URL we ended up on after redirects
  • Example#406 - php://temp/maxmemory
  • Example#407 - php://filter/resource=<stream to be filtered>
  • Example#408 - php://filter/read=<filter list to apply to read chain>
  • Example#409 - php://filter/write=<filter list to apply to write chain>
  • Example#410 - php://memory and php://temp are not reusable
  • Example#411 - Print data:// contents
  • Example#412 - Fetch the media type
  • Example#413 - Basic usage
  • Example#414 - Opening a stream from an active connection
  • Example#415 - This $session variable must be kept available!
  • Example#416 - Traversing a RAR archive
  • Example#417 - Opening an encrypted file (header encryption)
  • Example#418 - Schlechte Variablenprüfung führt zu....
  • Example#419 - ... Ein Angriff auf das Dateisystem
  • Example#420 - Etwas sicherere Prüfung des Dateinamens
  • Example#421 - Sicherere Dateinamensprüfung
  • Example#422 - Skript mit Nullbyte-Verwundbarkeit
  • Example#423 - Korrekte Validierung der Eingabe
  • Example#424 - Hashen eines Passwortfeldes
  • Example#425 - Die Ergebnisliste in mehrere Seiten aufsplitten ... und Superuser anlegen (PostgreSQL)
  • Example#426 - Artikel auflisten ... und ein paar Passwörter (beliebiger Datenbankserver)
  • Example#427 - Vom Zurücksetzen eines Passworts ... zum Erlangen von mehr Rechten (beliebiger Datenbankserver)
  • Example#428 - Angriff auf das Betriebssystem des Datenbank-Hosts (MSSQL-Server)
  • Example#429 - Ein sicherer Weg, eine Abfrage zu erstellen
  • Example#430 - Variablen mit einer eigenen HTML-Seite angreifen
  • Example#431 - Ausnutzen von gebräuchlichen Debugging-Variablen
  • Example#432 - Gefährliche Variablen mit E_ALL finden
  • Example#433 - Gefährliche Verwendung von Variablen
  • Example#434 - PHP als andere Sprache ausgeben
  • Example#435 - Verwenden von unbekannten Typen für PHP-Dateierweiterungen
  • Example#436 - Verwenden von HTML-Typen für PHP-Dateierweiterungen
  • Example#437 - Beispiel: Basic-HTTP-Authentifizierung
  • Example#438 - Beispiel: Digest-HTTP-Authentifizierung
  • Example#439 - HTTP-Authentifizierung, mit erneuter Anforderung von Name/Passwort
  • Example#440 - Ein einfaches XForms-Suchformular
  • Example#441 - XForm verwenden, um $_POST zu bestücken
  • Example#442 - Formular zum Hochladen von Dateien
  • Example#443 - Dateiuploads prüfen
  • Example#444 - Hochladen eines Arrays von Dateien
  • Example#445 - Hochladen mehrerer Dateien
  • Example#446 - Speichern von HTTP-PUT-Dateien
  • Example#447 - Den Titel einer entfernten Seite auslesen
  • Example#448 - Daten auf einen entfernten Server speichern
  • Example#449 - Beispiel, welches den Unterschied zur CGI-SAPI verdeutlicht:
  • Example#450 -
  • Example#451 - Ausgabe der geladenen PHP- und Zend-Module
  • Example#452 - Syntaxfehler beim Verwenden von doppelten Anführungszeichen
  • Example#453 - Verwendung einfacher Anführungszeichen, um ein Ersetzen der Variablen zu verhindern
  • Example#454 - Nutzung der -B, -R und -E Optionen, um die Anzahl der Zeilen in einem Projekt zu zählen.
  • Example#455 - Nutzung von -v, um den SAPI-Namen, sowie die PHP- und Zend-Version zu bestimmen
  • Example#456 - --ini example
  • Example#457 - Einfache --rf-Nutzung
  • Example#458 - --rc-Beispiel
  • Example#459 - --re-Beispiel
  • Example#460 - --ri-Beispiel
  • Example#461 - PHP als Shellskript ausführen
  • Example#462 - Ein Skript, das von der Kommandozeile aus ausgeführt werden soll (script.php)
  • Example#463 - Batchdatei zur Ausführung eines Kommandozeilen-Skripts in PHP (script.bat)
  • Example#464 - Ausführung von Code auf der interaktiven Shell
  • Example#465 - Tab-Autovervollständigung
  • Example#466 - Setzen von php.ini Optionen in der interaktiven Shell
  • Example#467 - Starten des Webservers
  • Example#468 - Starten mit einem expliziten Document-Root
  • Example#469 - Nutzung eines Router-Skripts
  • Example#470 - Prüfung auf die Verwendung des CLI-Webservers
  • Example#471 - Behandlung nicht unterstützter Dateitypen
  • Example#472 - Zugriff auf den CLI-Webserver von anderen Computern aus
  • Example#473 - Creating a new zval container
  • Example#474 - Displaying zval information
  • Example#475 - Increasing refcount of a zval
  • Example#476 - Decreasing zval refcount
  • Example#477 - Creating a array zval
  • Example#478 - Adding already existing element to an array
  • Example#479 - Removing an element from an array
  • Example#480 - Adding the array itself as an element of it self
  • Example#481 - Unsetting $a
  • Example#482 - Memory usage example
  • Example#483 - GC performance influences
  • Example#484 - Running the above script
  • Example#485 - Recompiling PHP to enable GC benchmarking
  • Example#486 - GC statistics
  • Example#487 - all_probes.d for tracing all PHP Static Probes with DTrace
  • Example#488 - all_probes.stp for tracing all PHP Static Probes with SystemTap
  • Example#489 - A apcu_add example
  • Example#490 - A apcu_cache_info example
  • Example#491 - apcu_cas example
  • Example#492 - apcu_dec example
  • Example#493 - A apcu_delete example
  • Example#494 - An apcu_entry example
  • Example#495 - apcu_exists example
  • Example#496 - A apcu_fetch example
  • Example#497 - apcu_inc example
  • Example#498 - A apcu_key_info example
  • Example#499 - A apcu_sma_info example
  • Example#500 - A apcu_store example
  • Example#501 - A APCUIterator::__construct example
  • Example#502 - Fehlerbehandlung in einem Script
  • Example#503 - debug_backtrace-Beispiel
  • Example#504 - debug_print_backtrace Beispiel
  • Example#505 - An error_clear_last example
  • Example#506 - error_get_last-Beispiel
  • Example#507 - error_log-Beispiele
  • Example#508 - error_reporting Beispiel
  • Example#509 - restore_error_handler Beispiel
  • Example#510 - restore_exception_handler Beispiel
  • Example#511 - Fehlerbehandlung mit set_error_handler und trigger_error
  • Example#512 - set_exception_handler Beispiel
  • Example#513 - trigger_error Beispiel
  • Example#514 - Calling a function from shared library
  • Example#515 - Calling a function, returning a structure through an argument
  • Example#516 - Accessing existing C variables
  • Example#517 - Creating and Modifying C variables
  • Example#518 - Working with C arrays
  • Example#519 - Working with C enums
  • Example#520 -
  • Example#521 -
  • Example#522 - Creating large array in a function
  • Example#523 - Output-Control-Beispiel
  • Example#524 - URL-Rewriter-Beispiel
  • Example#525 - ob_end_clean Beispiel
  • Example#526 - ob_end_clean-Beispiel
  • Example#527 - A simple ob_get_clean example
  • Example#528 - Ein einfaches ob_get_contents-Beispiel
  • Example#529 - ob_get_flush example
  • Example#530 - A simple ob_get_length example
  • Example#531 - ob_gzhandler example
  • Example#532 - ob_list_handlers example
  • Example#533 - Beispiel einer benutzerdefinierten Callback-Funktion
  • Example#534 - Erzeugen eines nicht löschbaren Ausgabepuffers auf eine Weise, die mit PHP 5.3 und 5.4 kompatibel ist
  • Example#535 - output_add_rewrite_var Beispiel
  • Example#536 - output_reset_rewrite_vars example
  • Example#537 - assert_options Beispiel
  • Example#538 - Überprüfung mit benutzerdefinierter Funktion
  • Example#539 - Verwendung eines benutzerdefinierten Handlers um eine Beschreibung anzuzeigen
  • Example#540 - Annahmen ohne benutzerdefinierte Exception
  • Example#541 - Annahmen mit einer benutzerdefinierten Exception
  • Example#542 - cli_get_process_title example
  • Example#543 - cli_set_process_title example
  • Example#544 - dl Beispiele
  • Example#545 - extension_loaded Beispiel
  • Example#546 - A gc_enabled example
  • Example#547 - gc_status Usage
  • Example#548 - get_current_user-Beispiel
  • Example#549 - get_defined_constants Example
  • Example#550 - Gibt alle XML Funktionen aus
  • Example#551 - get_include_path example
  • Example#552 - get_included_filesBeispiel
  • Example#553 - get_loaded_extensions Beispiele
  • Example#554 - get_magic_quotes_runtime Beispiel
  • Example#555 - Unfiltered get_resources
  • Example#556 - Filtered get_resources
  • Example#557 - getenv-Beispiel
  • Example#558 - getlastmod Beispiel
  • Example#559 - getopt example: The basics
  • Example#560 - getopt example: Introducing long options
  • Example#561 - getopt example: Passing multiple options as one
  • Example#562 - getopt example: Using rest_index
  • Example#563 - getrusage Beispiel
  • Example#564 - ini_get_all examples
  • Example#565 - Disabling details
  • Example#566 - A few ini_get examples
  • Example#567 - ini_restore example
  • Example#568 - Setting an ini option
  • Example#569 - A memory_get_usage example
  • Example#570 - php_ini_loaded_file example
  • Example#571 - Ein einfaches Beispiel um zurückgegebene ini-Dateien aufzulisten
  • Example#572 - php_sapi_name Beispiel
  • Example#573 - Some php_uname examples
  • Example#574 - A few OS related constant examples
  • Example#575 - Prints the general credits
  • Example#576 - Prints the core developers and the documentation group
  • Example#577 - Printing all the credits
  • Example#578 - phpinfo-Beispiel
  • Example#579 - phpversion-Beispiel
  • Example#580 - PHP_VERSION_ID Beispiel und Verwendung
  • Example#581 - Setzen einer Umgebungsvariablen
  • Example#582 - restore_include_path example
  • Example#583 - set_include_path-Beispiel
  • Example#584 - Den include-path erweitern
  • Example#585 - sys_get_temp_dir example
  • Example#586 - version_compare-Beispiele
  • Example#587 - zend_thread_id-Beispiel
  • Example#588 - zend_version Beispiel
  • Example#589 - Custom Superglobals with runkit.superglobal=_FOO,_BAR in php.ini
  • Example#590 - A runkit7_function_add example
  • Example#591 - A runkit7_function_copy example
  • Example#592 - A runkit7_function_redefine example
  • Example#593 - runkit7_method_add example
  • Example#594 - runkit7_method_copy example
  • Example#595 - runkit7_method_redefine example
  • Example#596 - runkit7_method_remove example
  • Example#597 - runkit7_method_rename example
  • Example#598 - Basic uopz_add_function Usage
  • Example#599 - uopz_allow_exit example
  • Example#600 - uopz_backup example
  • Example#601 - uopz_compose example
  • Example#602 - uopz_copy example
  • Example#603 - Basic uopz_del_function Usage
  • Example#604 - uopz_delete example
  • Example#605 - uopz_delete class example
  • Example#606 - uopz_extend example
  • Example#607 - uopz_flags example
  • Example#608 - "Unfinalize" a Class
  • Example#609 - uopz_function example
  • Example#610 - uopz_function class example
  • Example#611 - uopz_get_exit_status example
  • Example#612 - Basic uopz_get_hook Usage
  • Example#613 - uopz_get_mock example
  • Example#614 - Basic uopz_get_property Usage
  • Example#615 - uopz_get_return example
  • Example#616 - Basic uopz_get_static Usage
  • Example#617 - uopz_implement example
  • Example#618 - uopz_overload example
  • Example#619 - uopz_redefine example
  • Example#620 - uopz_rename example
  • Example#621 - uopz_rename class example
  • Example#622 - uopz_restore example
  • Example#623 - Basic uopz_set_hook Usage
  • Example#624 - uopz_set_mock example
  • Example#625 - uopz_set_mock example
  • Example#626 - uopz_set_mock and static members
  • Example#627 - Basic uopz_set_property Usage
  • Example#628 - uopz_set_return example
  • Example#629 - uopz_set_return example
  • Example#630 - uopz_set_return class example
  • Example#631 - Basic uopz_set_static Usage
  • Example#632 - uopz_undefine example
  • Example#633 - Basic uopz_unset_hook Usage
  • Example#634 - uopz_unset_mock example
  • Example#635 - uopz_unset_return example
  • Example#636 - Weakref usage example
  • Example#637 - WeakRef usage example
  • Example#638 - Weakref::acquire example
  • Example#639 - Nested acquire/release example
  • Example#640 - Weakref::__construct example
  • Example#641 - Weakref::release example
  • Example#642 - Weakmap usage example
  • Example#643 - wincache.ignorelist example
  • Example#644 - Authentication configuration for wincache.php
  • Example#645 - Enabling WinCache session handler
  • Example#646 - Enabling WinCache functions reroutes
  • Example#647 - Reroute.ini file content
  • Example#648 - A wincache_fcache_fileinfo example
  • Example#649 - A wincache_fcache_meminfo example
  • Example#650 - Using wincache_lock
  • Example#651 - A wincache_ocache_fileinfo example
  • Example#652 - A wincache_ocache_meminfo example
  • Example#653 - A wincache_refresh_if_changed example
  • Example#654 - A wincache_rplist_fileinfo example
  • Example#655 - A wincache_rplist_meminfo example
  • Example#656 - A wincache_scache_info example
  • Example#657 - A wincache_scache_meminfo example
  • Example#658 - wincache_ucache_add with key as a string
  • Example#659 - wincache_ucache_add with key as an array
  • Example#660 - Using wincache_ucache_cas
  • Example#661 - using wincache_ucache_clear
  • Example#662 - Using wincache_ucache_dec
  • Example#663 - Using wincache_ucache_delete with key as a string
  • Example#664 - Usingwincache_ucache_delete with key as an array
  • Example#665 - Using wincache_ucache_delete with key as an array where some elements cannot be deleted
  • Example#666 - Using wincache_ucache_exists
  • Example#667 - wincache_ucache_get with key as a string
  • Example#668 - wincache_ucache_get with key as an array
  • Example#669 - Using wincache_ucache_inc
  • Example#670 - Using wincache_ucache_info
  • Example#671 - A wincache_ucache_meminfo example
  • Example#672 - wincache_ucache_set with key as a string
  • Example#673 - wincache_ucache_set with key as an array
  • Example#674 - Using wincache_unlock
  • Example#675 - Xhprof example with the optional GUI
  • Example#676 - xhprof_disable example
  • Example#677 - xhprof_enable examples
  • Example#678 - xhprof_sample_disable example
  • Example#679 - Make sure the item is stored
  • Example#680 - Using CHAP passwords
  • Example#681 - radius_acct_open example
  • Example#682 - radius_add_server example
  • Example#683 - radius_auth_open example
  • Example#684 - radius_create_request example
  • Example#685 - radius_cvt_addr example
  • Example#686 - radius_cvt_int example
  • Example#687 - radius_cvt_string example
  • Example#688 - radius_get_attr example
  • Example#689 - radius_get_tagged_attr_data example
  • Example#690 - radius_get_tagged_attr_tag example
  • Example#691 - radius_get_vendor_attr example
  • Example#692 - radius_put_attr example
  • Example#693 - radius_put_int example
  • Example#694 - radius_put_string example
  • Example#695 - radius_put_vendor_attr example
  • Example#696 - Writing a string with a specified color to the screen
  • Example#697 - ncurses_getmouse example
  • Example#698 - Writing a string with a specified color to the screen
  • Example#699 - Writing a string with a specified color to the screen
  • Example#700 - ncurses_mousemask example
  • Example#701 - Writing a string with a specified color to the screen
  • Example#702 - Readline-Callback-Interface-Beispiel
  • Example#703 - readline-Beispiel
  • Example#704 - Ein kleines bzip2-Beispiel
  • Example#705 - Komprimierung von Daten
  • Example#706 - Dekomprimieren einer Zeichenkette
  • Example#707 - bzerror-Beispiel
  • Example#708 - bzopen-Beispiel
  • Example#709 - bzread-Beispiel
  • Example#710 - bzwrite-Beispiel
  • Example#711 - Using an external file
  • Example#712 - Using a file within a phar archive
  • Example#713 - Converting a phar archive from phar to tar file format
  • Example#714 - phar.cache_list usage example
  • Example#715 - A Phar::addEmptyDir example
  • Example#716 - A Phar::addFile example
  • Example#717 - A Phar::addFromString example
  • Example#718 - A Phar::apiVersion example
  • Example#719 - A Phar::buildFromDirectory example
  • Example#720 - A Phar::buildFromIterator with SplFileInfo
  • Example#721 - A Phar::buildFromIterator with other iterators
  • Example#722 - A Phar::canCompress example
  • Example#723 - A Phar::canWrite example
  • Example#724 - A Phar::compress example
  • Example#725 - A Phar::compressFiles example
  • Example#726 - A Phar::__construct example
  • Example#727 - A Phar::convertToData example
  • Example#728 - A Phar::convertToExecutable example
  • Example#729 - A Phar::copy example
  • Example#730 - A Phar::count example
  • Example#731 - A Phar::createDefaultStub example
  • Example#732 - A Phar::decompress example
  • Example#733 - A Phar::decompressFiles example
  • Example#734 - A Phar::delMetaData example
  • Example#735 - A Phar::delete example
  • Example#736 - A Phar::extractTo example
  • Example#737 - A Phar::getMetadata example
  • Example#738 - A Phar::getStub example
  • Example#739 - A Phar::hasMetadata example
  • Example#740 - A Phar::interceptFileFuncs example
  • Example#741 - A Phar::interceptFileFuncs example
  • Example#742 - A Phar::isBuffering example
  • Example#743 - A Phar::isCompressed example
  • Example#744 - A Phar::loadPhar example
  • Example#745 - A Phar::mapPhar example
  • Example#746 - A Phar::mount example
  • Example#747 - A Phar::mungServer example
  • Example#748 - A Phar::offsetExists example
  • Example#749 - Phar::offsetGet example
  • Example#750 - A Phar::offsetSet example
  • Example#751 - A Phar::offsetUnset example
  • Example#752 - A Phar::running example
  • Example#753 - A Phar::setAlias example
  • Example#754 - A Phar::setDefaultStub example
  • Example#755 - A Phar::setMetadata example
  • Example#756 - A Phar::setStub example
  • Example#757 - A Phar::startBuffering example
  • Example#758 - A Phar::stopBuffering example
  • Example#759 - A Phar::unlinkArchive example
  • Example#760 - A Phar::webPhar example
  • Example#761 - A PharData::addEmptyDir example
  • Example#762 - A PharData::addFile example
  • Example#763 - A PharData::addFromString example
  • Example#764 - A PharData::buildFromDirectory example
  • Example#765 - A PharData::buildFromIterator with SplFileInfo
  • Example#766 - A PharData::buildFromIterator with other iterators
  • Example#767 - A PharData::compress example
  • Example#768 - A PharData::compressFiles example
  • Example#769 - A PharData::__construct example
  • Example#770 - A PharData::convertToData example
  • Example#771 - A PharData::convertToExecutable example
  • Example#772 - A PharData::copy example
  • Example#773 - A PharData::decompress example
  • Example#774 - A PharData::decompressFiles example
  • Example#775 - A PharData::delMetaData example
  • Example#776 - A PharData::delete example
  • Example#777 - A PharData::extractTo example
  • Example#778 - A PharData::offsetSet example
  • Example#779 - A PharData::offsetUnset example
  • Example#780 - A Phar::setMetadata example
  • Example#781 - A PharFileInfo::chmod example
  • Example#782 - A PharFileInfo::compress example
  • Example#783 - A PharFileInfo::__construct example
  • Example#784 - A PharFileInfo::decompress example
  • Example#785 - A PharFileInfo::delMetaData example
  • Example#786 - A PharFileInfo::getCRC32 example
  • Example#787 - A PharFileInfo::getCompressedSize example
  • Example#788 - A PharFileInfo::getMetadata example
  • Example#789 - A PharFileInfo::getPharFlags example
  • Example#790 - A PharFileInfo::isCRCChecked example
  • Example#791 - A PharFileInfo::isCompressed example
  • Example#792 - A PharFileInfo::setMetadata example
  • Example#793 - Rar Installation
  • Example#794 - On-the-fly decompression
  • Example#795 - RAR extension filesystem extraction example
  • Example#796 - Objektorientierter Stil
  • Example#797 - Prozeduraler Stil
  • Example#798 - Objektorientierter Stil
  • Example#799 - Prozeduraler Stil
  • Example#800 - Objektorientierter Stil
  • Example#801 - Prozeduraler Stil
  • Example#802 - Objektorientierter Stil
  • Example#803 - Prozeduraler Stil
  • Example#804 - Objektorientierter Stil
  • Example#805 - Prozeduraler Stil
  • Example#806 - Objektorientierter Stil
  • Example#807 - Prozeduraler Stil
  • Example#808 - Objektorientierter Stil
  • Example#809 - Prozeduraler Stil
  • Example#810 - Volume Callback
  • Example#811 - Objektorientierter Stil
  • Example#812 - Prozeduraler Stil
  • Example#813 - RarArchive::__toString example
  • Example#814 - RarEntry::extract example
  • Example#815 - How to extract all files in archive:
  • Example#816 - RarEntry::getAttr example
  • Example#817 - RarEntry::getHostOs example (version >= 2.0.0)
  • Example#818 - RarEntry::getHostOs example (version <= 1.0.0)
  • Example#819 - RarEntry::getMethod example
  • Example#820 - RarEntry::getName example
  • Example#821 - RarEntry::getPackedSize example
  • Example#822 - RarEntry::getStream example
  • Example#823 - RarEntry::getUnpackedSize example
  • Example#824 - RarEntry::getVersion example
  • Example#825 - RarException::isUsingExceptions example
  • Example#826 - RarException::setUsingExceptions example
  • Example#827 - Erstellen eines Zip-Archivs
  • Example#828 - Ausgabe eines detailierten Archivlistings
  • Example#829 - Zip Stream Wrapper, Auslesen von OpenOffice Metainformationen
  • Example#830 - Zip Beispiel
  • Example#831 - Erstellt ein neues Verzeichnis im Archiv
  • Example#832 - Öffnen und hinzufügen
  • Example#833 - Einen Eintrag zu einem neuen Archiv hinzufügen
  • Example#834 - Eine Datei zu einem Verzeichnis innerhalb eines Archivs hinzufügen
  • Example#835 - ZipArchive::addGlob example
  • Example#836 - ZipArchive::addPattern example
  • Example#837 - Löschen einer Datei aus dem Archiv unter Verwendung ihres Index
  • Example#838 - Eine Datei und ein Verzeichnis unter Verwendung ihrer Namen aus einem Archiv löschen
  • Example#839 - Alle Einträge extrahieren
  • Example#840 - Zwei Einträge extrahieren
  • Example#841 - Einen Archivkommentar ausgeben
  • Example#842 - Einen Eintragskommentar ausgeben
  • Example#843 - Einen Eintragskommentar ausgeben
  • Example#844 - Extract all entries with Unix rights
  • Example#845 - Den Dateiinhalt auslesen
  • Example#846 - Den Dateiinhalt auslesen
  • Example#847 - Ein Bild aus einem ZIP-Eintrag konvertieren
  • Example#848 - ZipArchive::getNameIndex-Beispiel
  • Example#849 - Den Eintragsinhalt mit fread holen und speichern
  • Example#850 - Das gleiche wie im vorigen Beispiel aber mit fopen und dem ZIP-Streamwrapper
  • Example#851 - Streamwrapper und Bild, kann ebenfalls mit der XML-Funktion verwendet werden
  • Example#852 - Ein Archiv erstellen und es mit locateName verwenden
  • Example#853 - Öffnen und extrahieren
  • Example#854 - Ein Archiv erstellen
  • Example#855 - Erstellen eines temporären Archivs
  • Example#856 - Archive a file
  • Example#857 - Archive a file
  • Example#858 - Einen Eintrag umbenennen
  • Example#859 - Einen Eintrag umbenennen
  • Example#860 - Open and replace
  • Example#861 - Ein Archiv erstellen und einen Kommentar hinzufügen
  • Example#862 - Ein Archiv öffnen und für einen Eintrag einen Kommentar hinzufügen
  • Example#863 - Ein Archiv öffnen und für einen Eintrag einen Kommentar hinzufügen
  • Example#864 - Add files with different compression methods to an archive
  • Example#865 - Add files with different compression methods to an archive
  • Example#866 - Add file and set compression method
  • Example#867 - Archive and encrypt a file
  • Example#868 - Archive a file, with its Unix rights
  • Example#869 - Archive a file
  • Example#870 - Archive a file
  • Example#871 - Die Statusinformation eines Eintrags ausgeben
  • Example#872 - Die Statusinformation eines Eintrags ausgeben
  • Example#873 - Ein kleines Beispiel zu Zlib
  • Example#874 - Arbeiten mit den inkrementellen Kompriemierungs- und Dekomprimierungs-API ab PHP 7.0.0
  • Example#875 - gzclose-Beispiel
  • Example#876 - gzcompress-Beispiel
  • Example#877 - gzdeflate-Beispiel
  • Example#878 - Creating a gzip file
  • Example#879 - gzeof-Beispiel
  • Example#880 - gzfile-Beispiel
  • Example#881 - gzgetc-Beispiel
  • Example#882 - gzgets example
  • Example#883 - gzgetss-Beispiel
  • Example#884 - gzinflate-Beispiel
  • Example#885 - gzopen-Beispiel
  • Example#886 - gzpassthru-Beispiel
  • Example#887 - gzread-Beispiel
  • Example#888 - gzseek-Beispiel
  • Example#889 - gzuncompress-Beispiel
  • Example#890 - gzwrite-Beispiel
  • Example#891 - zlib_encode-Beispiel
  • Example#892 - random_bytes example
  • Example#893 - random_int example
  • Example#894 - hash_algos-Beispiel
  • Example#895 - hash_copy-Beispiel
  • Example#896 - hash_equals example
  • Example#897 - hash_file-Beispiel
  • Example#898 - hash_final-Beispiel
  • Example#899 - hash_hkdf example
  • Example#900 - hash_hmac_algos example
  • Example#901 - hash_hmac_file-Beispiel
  • Example#902 - hash_hmac-Beispiel
  • Example#903 - Beispiel für schrittweises Hashing
  • Example#904 - hash_pbkdf2 example, basic usage
  • Example#905 - hash_update_stream-Beispiel
  • Example#906 - hash-Beispiel
  • Example#907 - Ermitteln von Prä-PHP 5.4 tiger Hashes mit PHP 5.4 und höher
  • Example#908 - Verschlüsselt einen übergebenen Wert mit AES mit einem 256-bit Schlüssel unter 2.4.x und höher im Modus CBC
  • Example#909 - mcrypt_create_iv Example
  • Example#910 - mcrypt_enc_get_algorithms_name example
  • Example#911 - mcrypt_enc_get_modes_name example
  • Example#912 - mcrypt_enc_get_supported_key_sizes example
  • Example#913 - mcrypt_encrypt Example
  • Example#914 - mcrypt_get_block_size example
  • Example#915 - mcrypt_get_cipher_name Example
  • Example#916 - mcrypt_get_iv_size Example
  • Example#917 - mcrypt_get_key_size Example
  • Example#918 - mcrypt_list_algorithms Example
  • Example#919 - mcrypt_list_modes Example
  • Example#920 - mcrypt_module_open Examples
  • Example#921 - Using mcrypt_module_open in encryption
  • Example#922 - mcrypt_module_self_test example
  • Example#923 - mdecrypt_generic Example
  • Example#924 - Computes the MD5 digest and hmac and print it out as hex
  • Example#925 - Alle Hashes durchlaufen
  • Example#926 - mhash_get_block_size-Beispiel
  • Example#927 - mhash_get_hash_name-Beispiel
  • Example#928 - openssl_cipher_iv_length example
  • Example#929 - openssl_csr_export_to_file-Beispiel
  • Example#930 - openssl_csr_export-Beispiel
  • Example#931 - openssl_csr_get_public_key-Beispiel
  • Example#932 - openssl_csr_get_subject-Beispiel
  • Example#933 - Erzeugen eines selbstsignierten Zertifikats
  • Example#934 - Erzeugen eines selbstsignierten ECC-Zertifikats (von PHP 7.1.0 an)
  • Example#935 - openssl_csr_sign-Beispiel - Signieren eines CSR (wie eine eigene CA implementiert wird)
  • Example#936 - Compute a shared secret
  • Example#937 - Generate a DH public/private keypair in php
  • Example#938 - AES Authenticated Encryption im GCM-Modus, Beispiel für PHP 7.1+
  • Example#939 - AES Authenticated Encryption, Beispiel für PHP 5.6+
  • Example#940 - openssl_error_string-Beispiel
  • Example#941 - openssl_get_cert_locations example
  • Example#942 - openssl_get_cipher_methods example
  • Example#943 - openssl_get_curve_names example
  • Example#944 - openssl_get_md_methods example
  • Example#945 - openssl_open-Beispiel
  • Example#946 - openssl_pbkdf2() example
  • Example#947 - openssl_pkcs12_read-Beispiel
  • Example#948 - openssl_pkcs7_decrypt-Beispiel
  • Example#949 - openssl_pkcs7_encrypt-Beispiel
  • Example#950 - openssl_pkcs7_sign-Beispiel
  • Example#951 - openssl_pkey_derive example
  • Example#952 - Aus einem privaten Schlüssel den öffentlichen Schlüssel gewinnen
  • Example#953 - openssl_random_pseudo_bytes example
  • Example#954 - openssl_seal-Beispiel
  • Example#955 - openssl_sign-Beispiel
  • Example#956 - openssl_sign-Beispiel
  • Example#957 - openssl_spki_export_challenge example
  • Example#958 - openssl_spki_export_challenge example from <keygen>
  • Example#959 - openssl_spki_export example
  • Example#960 - openssl_spki_export example from <keygen>
  • Example#961 - openssl_spki_new example
  • Example#962 - openssl_spki_verify example
  • Example#963 - openssl_spki_verify example from <keygen>
  • Example#964 - openssl_verify-Beispiel
  • Example#965 - openssl_verify-Beispiel
  • Example#966 - openssl_x509_verify example
  • Example#967 - Basic password usage
  • Example#968 - password_hash-Beispiel
  • Example#969 - password_hash-Beispiel mit manuell festgelegten Kosten
  • Example#970 - password_hash-Beispiel für die Suche nach angemessenen Kosten
  • Example#971 - password_hash-Beispiel, das Argon2i verwendet
  • Example#972 - password_needs_rehash Verwendungsbeispiel
  • Example#973 - password_verify-Beispiel
  • Example#974 - sodium_crypto_kx_keypair usage
  • Example#975 - password_hash example
  • Example#976 - password_hash example
  • Example#977 - DBA Beispiel
  • Example#978 - Durchlaufen einer Datenbank
  • Example#979 - dba_handlers-Beispiel
  • Example#980 - Zugriffsberechtigungen für eine Spalte auflisten
  • Example#981 - List Columns of a Table
  • Example#982 - DSN-lose Verbindung
  • Example#983 - List available DSNs
  • Example#984 - Beispiel für odbc_execute und odbc_prepare
  • Example#985 - odbc_fetch_into-Beispiele
  • Example#986 - odbc_next_result
  • Example#987 - Beispiel für odbc_execute und odbc_prepare
  • Example#988 - List primary Keys of a Column
  • Example#989 - List Columns of a stored Procedure
  • Example#990 - List stored Procedures of a Database
  • Example#991 - odbc_result-Beispiele
  • Example#992 - odbc_setoption-Beispiele
  • Example#993 - List Statistics of a Table
  • Example#994 - List Privileges of a Table
  • Example#995 - List Tables in a Catalog
  • Example#996 - Die Verwendung von PDO::ATTR_DRIVER_NAME
  • Example#997 - Mit MySQL verbinden
  • Example#998 - Verbindungsfehler behandeln
  • Example#999 - Eine Verbindung schließen
  • Example#1000 - Persistente Verbindungen
  • Example#1001 - Mehrere Abfragen in einer Transaktion
  • Example#1002 - Wiederholte Inserts mit Prepared Statements
  • Example#1003 - Wiederholte Inserts mit Prepared Statements
  • Example#1004 - Abfragen von Daten mit Prepared Statements
  • Example#1005 - Eine Stored Procedure mit einem Ausgabeparameter aufrufen
  • Example#1006 - Eine Stored Procedure mit einem Eingabe-/Ausgabe-Parameter aufrufen
  • Example#1007 - Ungültige Verwendung von Platzhaltern
  • Example#1008 - Eine PDO Instanz erstellen und den Error Mode setzen
  • Example#1009 - Erzeugen eines PDO Exemplars und setzen des Fehlermodus per Konstruktor
  • Example#1010 - Ein Bild aus einer Datenbank anzeigen
  • Example#1011 - Ein Bild in eine Datenbank einfügen
  • Example#1012 - Ein Bild in eine Datenbank einfügen: Oracle
  • Example#1013 - Roll back a transaction
  • Example#1014 - Committing a basic transaction
  • Example#1015 - Committing a DDL transaction
  • Example#1016 - Create a PDO instance via driver invocation
  • Example#1017 - Create a PDO instance via URI invocation
  • Example#1018 - Create a PDO instance using an alias
  • Example#1019 - Retrieving an SQLSTATE code
  • Example#1020 - Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database
  • Example#1021 - Ein DELETE Statement ausführen
  • Example#1022 - Retrieving database connection attributes
  • Example#1023 - A PDO::getAvailableDrivers example
  • Example#1024 - SQL statement template with named parameters
  • Example#1025 - SQL statement template with question mark parameters
  • Example#1026 - Demonstrate PDO::query
  • Example#1027 - Quoting a normal string
  • Example#1028 - Quoting a dangerous string
  • Example#1029 - Quoting a complex string
  • Example#1030 - Roll back a transaction
  • Example#1031 - Binding result set output to PHP variables
  • Example#1032 - Execute a prepared statement with named placeholders
  • Example#1033 - Execute a prepared statement with question mark placeholders
  • Example#1034 - Call a stored procedure with an INOUT parameter
  • Example#1035 - Execute a prepared statement with named placeholders
  • Example#1036 - Execute a prepared statement with question mark placeholders
  • Example#1037 - A PDOStatement::closeCursor example
  • Example#1038 - Counting columns
  • Example#1039 - PDOStatement::debugDumpParams example with named parameters
  • Example#1040 - PDOStatement::debugDumpParams example with unnamed parameters
  • Example#1041 - Retrieving an SQLSTATE code
  • Example#1042 - Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database
  • Example#1043 - Ein Prepared Statement mit Variablen- und Wertebindung ausführen
  • Example#1044 - Ein Prepared Statement mit einem Array von Eingabewerten (benannte Parameter) ausführen
  • Example#1045 - Ein Prepared Statement mit einem Array von Eingabewerten (Platzhalter) ausführen
  • Example#1046 - Ein Prepared Statement mit Fragezeichen-Platzhaltern ausführen
  • Example#1047 - Ein Prepared Statement mit einem Array für eine IN-Klausel ausführen
  • Example#1048 - Fetching rows using different fetch styles
  • Example#1049 - Fetching rows with a scrollable cursor
  • Example#1050 - Construction order
  • Example#1051 - Fetch all remaining rows in a result set
  • Example#1052 - Fetching all values of a single column from a result set
  • Example#1053 - Grouping all values by a single column
  • Example#1054 - Instantiating a class for each result
  • Example#1055 - Calling a function for each result
  • Example#1056 - Return first column of the next row
  • Example#1057 - Retrieving column metadata
  • Example#1058 - Fetching multiple rowsets returned from a stored procedure
  • Example#1059 - Return the number of deleted rows
  • Example#1060 - Counting rows returned by a SELECT statement
  • Example#1061 - Setting the fetch mode
  • Example#1062 - Insert LOBs in CUBRID PDO
  • Example#1063 - Fetch LOBs in CUBRID PDO
  • Example#1064 - Insert set in CUBRID PDO with default data type.
  • Example#1065 - Specify data type when insert set in CUBRID PDO
  • Example#1066 - PDO_CUBRID DSN examples
  • Example#1067 - A PDO::cubrid_schema example
  • Example#1068 - PDO_DBLIB DSN examples
  • Example#1069 - PDO_FIREBIRD DSN example with path
  • Example#1070 - PDO_FIREBIRD DSN example with port and path
  • Example#1071 - PDO_FIREBIRD DSN example with localhost and path to employee.fdb on Debian system
  • Example#1072 - PDO_FIREBIRD DSN to connect to a dialect 1 database
  • Example#1073 - PDO_IBM DSN example using db2cli.ini
  • Example#1074 - PDO_IBM DSN example using a connection string
  • Example#1075 - PDO_INFORMIX DSN example using odbc.ini
  • Example#1076 - PDO_INFORMIX DSN example using a connection string
  • Example#1077 - Forcing queries to be buffered in mysql
  • Example#1078 - PDO_MYSQL DSN examples
  • Example#1079 - PDO_SQLSRV DSN examples
  • Example#1080 - PDO_OCI DSN examples
  • Example#1081 - PDO_ODBC DSN example (ODBC driver manager)
  • Example#1082 - PDO_ODBC DSN example (IBM DB2 uncataloged connection)
  • Example#1083 - PDO_ODBC DSN example (Microsoft Access uncataloged connection)
  • Example#1084 - PDO_PGSQL DSN examples
  • Example#1085 - A PDO::pgsqlLOBCreate example
  • Example#1086 - A PDO::pgsqlLOBOpen example
  • Example#1087 - A PDO::pgsqlLOBUnlink example
  • Example#1088 - PDO_SQLITE DSN Beispiele
  • Example#1089 - Beispiel für eine 'max_length'-Aggregationsfunktion
  • Example#1090 - PDO::sqliteCreateCollation example
  • Example#1091 - PDO::sqliteCreateFunction-Beispiel
  • Example#1092 - Example of Data Retrieval
  • Example#1093 - Example of Data Insertion
  • Example#1094 - cubrid_bind example
  • Example#1095 - cubrid_bind BLOB/CLOB example
  • Example#1096 - cubrid_bind BLOB/CLOB example
  • Example#1097 - cubrid_close_prepare example
  • Example#1098 - cubrid_close_request example
  • Example#1099 - cubrid_col_get example
  • Example#1100 - cubrid_col_size example
  • Example#1101 - cubrid_column_names example
  • Example#1102 - cubrid_column_types example
  • Example#1103 - cubrid_commit example
  • Example#1104 - cubrid_connect_with_url url without properties example
  • Example#1105 - cubrid_connect_with_url url with properties example
  • Example#1106 - cubrid_connect example
  • Example#1107 - cubrid_current_oid example
  • Example#1108 - cubrid_disconnect example
  • Example#1109 - cubrid_drop example
  • Example#1110 - cubrid_error_code_facility example
  • Example#1111 - cubrid_error_code example
  • Example#1112 - cubrid_error_msg example
  • Example#1113 - cubrid_execute example
  • Example#1114 - cubrid_fetch example
  • Example#1115 - cubrid_free_result example
  • Example#1116 - cubrid_get_charset example
  • Example#1117 - cubrid_get_class_name example
  • Example#1118 - cubrid_get_client_info example
  • Example#1119 - cubrid_get_db_parameter example
  • Example#1120 - cubrid_get_query_timeout example
  • Example#1121 - cubrid_get_server_info example
  • Example#1122 - cubrid_get example
  • Example#1123 - cubrid_insert_id example
  • Example#1124 - cubrid_is_instance example
  • Example#1125 - cubrid_lob_close example
  • Example#1126 - cubrid_lob_export example
  • Example#1127 - cubrid_lob_get example
  • Example#1128 - cubrid_lob_send example
  • Example#1129 - cubrid_lob_size example
  • Example#1130 - cubrid_lob2_bind example
  • Example#1131 - cubrid_lob2_export example
  • Example#1132 - cubrid_lob2_export example
  • Example#1133 - cubrid_lob2_read example 1
  • Example#1134 - cubrid_lob2_read example 2
  • Example#1135 - cubrid_lob2_seek64 example
  • Example#1136 - cubrid_lob2_seek example
  • Example#1137 - cubrid_lob2_write example 1
  • Example#1138 - cubrid_lob2_write example 2
  • Example#1139 - cubrid_lock_read example
  • Example#1140 - cubrid_lock_write example
  • Example#1141 - cubrid_move_cursor example
  • Example#1142 - cubrid_next_result example
  • Example#1143 - cubrid_num_cols example
  • Example#1144 - cubrid_num_rows example
  • Example#1145 - cubrid_pconnect_with_url url without properties example
  • Example#1146 - cubrid_pconnect_with_url url with properties example
  • Example#1147 - cubrid_connect example
  • Example#1148 - cubrid_prepare example
  • Example#1149 - cubrid_put example
  • Example#1150 - cubrid_rollback example
  • Example#1151 - cubrid_schema example
  • Example#1152 - cubrid_seq_drop example
  • Example#1153 - cubrid_seq_insert example
  • Example#1154 - cubrid_seq_put example
  • Example#1155 - cubrid_set_add example
  • Example#1156 - cubrid_get_db_parameter example
  • Example#1157 - cubrid_set_drop example
  • Example#1158 - cubrid_version example
  • Example#1159 - cubrid_affected_rows example
  • Example#1160 - cubrid_client_encoding example
  • Example#1161 - cubrid_close example
  • Example#1162 - cubrid_data_seek example
  • Example#1163 - cubrid_db_name example
  • Example#1164 - cubrid_errno example
  • Example#1165 - cubrid_error example
  • Example#1166 - cubrid_fetch_array example
  • Example#1167 - cubrid_fetch_assoc example
  • Example#1168 - cubrid_fetch_field example
  • Example#1169 - cubrid_fetch_lengths example
  • Example#1170 - cubrid_fetch_object example
  • Example#1171 - cubrid_fetch_row example
  • Example#1172 - cubrid_field_flags example
  • Example#1173 - cubrid_field_len example
  • Example#1174 - cubrid_field_name example
  • Example#1175 - cubrid_field_seek example
  • Example#1176 - cubrid_field_table example
  • Example#1177 - cubrid_field_type example
  • Example#1178 - cubrid_list_dbs example
  • Example#1179 - cubrid_num_fields example
  • Example#1180 - cubrid_ping example
  • Example#1181 - Invalid Query
  • Example#1182 - Valid Query
  • Example#1183 - cubrid_real_escape_string example
  • Example#1184 - cubrid_result example
  • Example#1185 - cubrid_unbuffered_query example
  • Example#1186 - cubrid_load_from_glo example
  • Example#1187 - cubrid_new_glo example
  • Example#1188 - cubrid_save_to_glo example
  • Example#1189 - cubrid_send_glo example
  • Example#1190 - Einen Datensatz in eine dBase-Datenbank einfügen
  • Example#1191 - Schließen einer dBase-Datenbankdatei
  • Example#1192 - Erzeugen einer dBase-Datenbankdatei
  • Example#1193 - Anzeigen der Informationen des Dateikopfs einer dBase-Datenbankdatei
  • Example#1194 - Liste aller in der Datenbank eingetragener Mitglieder
  • Example#1195 - dbase_numfields-Beispiel
  • Example#1196 - Eine Schleife über alle Datensätze der Datenbank ausführen
  • Example#1197 - Öffnen einer dBase-Datenbankdatei
  • Example#1198 - Leeren einer dBase-Datenbank
  • Example#1199 - Aktualisieren eines Datensatzes in der Datenbank
  • Example#1200 - ibase_backup-Beispiel
  • Example#1201 - ibase_backup-Beispiel mit Argumenten
  • Example#1202 - ibase_blob_get-Beispiel
  • Example#1203 - ibase_blob_import-Beispiel
  • Example#1204 - ibase_connect-Beispiel:
  • Example#1205 - ibase_execute Beispiel
  • Example#1206 - ibase_fetch_object example
  • Example#1207 - ibase_field_info-Beispiel
  • Example#1208 - ibase_name_result-Beispiel
  • Example#1209 - ibase_num_fields Beispiel
  • Example#1210 - ibase_query example
  • Example#1211 - ibase_restore-Beispiel
  • Example#1212 - ibase_restore-Beispiel mit Argumenten
  • Example#1213 - ibase_service_attach-Beispiel
  • Example#1214 - ibase_service_attach-Beispiel
  • Example#1215 - ibase_service_attach-Beispiel mit hostname/port-Syntax
  • Example#1216 - ibase_service_detach-Beispiel
  • Example#1217 - ibase_set_event_handler-Beispiel
  • Example#1218 - fbsql_close Beispiel
  • Example#1219 - fbsql_connect-Beispiel:
  • Example#1220 - fbsql_create_blob example
  • Example#1221 - fbsql_create_clob example
  • Example#1222 - fbsql_create_db Beispiel
  • Example#1223 - fbsql_data_seek Beispiel
  • Example#1224 - fbsql_create_clob example
  • Example#1225 - fbsql_errno Beispiel
  • Example#1226 - fbsql_error Beispiel
  • Example#1227 - fbsql_fetch_array example
  • Example#1228 - fbsql_fetch_assoc example
  • Example#1229 - fbsql_fetch_field Beispiel
  • Example#1230 - fbsql_fetch_object example
  • Example#1231 - fbsql_field_name Beispiel
  • Example#1232 - fbsql_field_type Beispiel
  • Example#1233 - fbsql_list_dbs example
  • Example#1234 - fbsql_list_fields example
  • Example#1235 - fbsql_next_result Beispiel
  • Example#1236 - fbsql_num_rows Beispiel
  • Example#1237 - fbsql_query Beispiel
  • Example#1238 - fbsql_query Beispiel
  • Example#1239 - fbsql_read_blob example
  • Example#1240 - fbsql_read_clob example
  • Example#1241 - fbsql_tablename Beispiel
  • Example#1242 - Retrieving the AUTOCOMMIT value for a connection
  • Example#1243 - Setting the AUTOCOMMIT value for a connection
  • Example#1244 - Binding PHP variables to a prepared statement
  • Example#1245 - Calling stored procedures with IN and OUT parameters
  • Example#1246 - Inserting a binary large object (BLOB) directly from a file
  • Example#1247 - A db2_client_info example
  • Example#1248 - Closing a connection
  • Example#1249 - Retrieving an SQLSTATE value for a failed connection attempt
  • Example#1250 - Retrieving the error message returned by a failed connection attempt
  • Example#1251 - Creating a cataloged connection
  • Example#1252 - Creating an uncataloged connection
  • Example#1253 - Creating a connection with autocommit off by default
  • Example#1254 - i5/OS best performance
  • Example#1255 - Using trusted context
  • Example#1256 - A db2_escape_string example
  • Example#1257 - Creating a table with db2_exec
  • Example#1258 - Executing a SELECT statement with a scrollable cursor
  • Example#1259 - Returning XML data as an SQL ResultSet
  • Example#1260 - Performing a "JOIN" with XML data
  • Example#1261 - Returning SQL data as part of a larger XML document
  • Example#1262 - Preparing and executing an SQL statement with parameter markers
  • Example#1263 - Calling a stored procedure with an OUT parameter
  • Example#1264 - Returning XML data as an SQL ResultSet
  • Example#1265 - Performing a "JOIN" with XML data
  • Example#1266 - Returning SQL data as part of a larger XML document
  • Example#1267 - Iterating through a forward-only cursor
  • Example#1268 - Retrieving specific rows with db2_fetch_array from a scrollable cursor
  • Example#1269 - Iterating through a forward-only cursor
  • Example#1270 - Retrieving specific rows with db2_fetch_assoc from a scrollable cursor
  • Example#1271 - Iterating through a forward-only cursor
  • Example#1272 - Retrieving specific rows with db2_fetch_both from a scrollable cursor
  • Example#1273 - A db2_fetch_object example
  • Example#1274 - Iterating through a result set
  • Example#1275 - i5/OS recommended alternatives to db2_fetch_row/db2_result
  • Example#1276 - Setting and retrieving parameters through a connection resource
  • Example#1277 - A db2_last_insert_id example
  • Example#1278 - Iterating through different types of data
  • Example#1279 - Calling a stored procedure that returns multiple result sets
  • Example#1280 - Retrieving the number of fields in a result set
  • Example#1281 - Closing a persistent connection
  • Example#1282 - A db2_pconnect example
  • Example#1283 - Using trusted context
  • Example#1284 - Preparing and executing an SQL statement with parameter markers
  • Example#1285 - A db2_result example
  • Example#1286 - Rolling back a DELETE statement
  • Example#1287 - A db2_server_info example
  • Example#1288 - Setting one parameter with a connection resource
  • Example#1289 - Setting multiple parameters with a connection resource
  • Example#1290 - Setting multiple parameters with an invalid key
  • Example#1291 - Setting multiple parameters with an invalid value
  • Example#1292 - Setting multiple parameters with a connection resource and the wrong type
  • Example#1293 - Setting multiple parameters with the wrong resource
  • Example#1294 - Putting it all together
  • Example#1295 - i5/OS cursors are read-only
  • Example#1296 - Verwendungsbeispiel für PassEnv für Ingres
  • Example#1297 - Einfaches Beispiel mit Ingres
  • Example#1298 - ingres_charset-Beispiel
  • Example#1299 - Öffnen einer Verbindung zu einer Ingres-Datenbank
  • Example#1300 - ingres_cursor-Beispiel
  • Example#1301 - ingres_errno-Beispiel
  • Example#1302 - Liefere eine Meldung für den zuletzt aufgetretenen Fehler
  • Example#1303 - ingres_errsqlstate-Beispiel
  • Example#1304 - Bestimmte Sonderzeichen in einer Abfrage maskieren
  • Example#1305 - Eine Ergebniszeile in ein Array einlesen
  • Example#1306 - Fetch a row into an associative array
  • Example#1307 - Eine Zeile in ein Objekt einlesen
  • Example#1308 - Holt den Rückgabewert eines Prozeduraufrufs
  • Example#1309 - Eine Ergebniszeile in ein numerisches Array einlesen
  • Example#1310 - Den Speicherplatz eines Ergebnisses freigeben
  • Example#1311 - Eine einfache SELECT-Abfrage senden
  • Example#1312 - Abfrage-Parameter an ingres_query übergeben
  • Example#1313 - Ein BLOB mit Parameter-Typen einfügen
  • Example#1314 - Positioniere den Cursor auf die dritte Zeile
  • Example#1315 - Datumsformat auf ISO4 setzen
  • Example#1316 - Die Zeitzone auf HONG-KONG setzen
  • Example#1317 - Ein einfaches ungepuffertes SELECT-Kommando senden
  • Example#1318 - Abfrageparameter an ingres_unbuffered_query übergeben
  • Example#1319 - Ein BLOB mit Parameter-Typen einfügen
  • Example#1320 -
  • Example#1321 -
  • Example#1322 -
  • Example#1323 -
  • Example#1324 -
  • Example#1325 -
  • Example#1326 -
  • Example#1327 -
  • Example#1328 -
  • Example#1329 -
  • Example#1330 -
  • Example#1331 -
  • Example#1332 -
  • Example#1333 -
  • Example#1334 -
  • Example#1335 - Connection URI read preferences with query string syntax
  • Example#1336 - Setting read preferences with array syntax for tag sets
  • Example#1337 - Passing a WriteConcern to a write operation
  • Example#1338 - Connection string WriteConcerns
  • Example#1339 - MongoDB::setWriteConcern and MongoCollection::setWriteConcern
  • Example#1340 - Unacknowledged WriteConcern, followed with Acknowledged Write
  • Example#1341 - Acknowledged Writes
  • Example#1342 - Majority Acknowledged Write
  • Example#1343 - Acknowledged and Journaled Write
  • Example#1344 - Connect to MongoDB Instance with SSL Encryption
  • Example#1345 - Connect to MongoDB Instance with SSL Encryption, verifying it is who we think it is
  • Example#1346 - Connect to MongoDB Instance that Requires Client Certificates
  • Example#1347 - Authenticating with X.509 certificates
  • Example#1348 - Authenticating against the "admin" database
  • Example#1349 - Authenticating against normal databases
  • Example#1350 - ReplicaSet seed list
  • Example#1351 - Wrong replica set name duplication
  • Example#1352 - Correct use of two replica set names
  • Example#1353 -
  • Example#1354 -
  • Example#1355 -
  • Example#1356 -
  • Example#1357 -
  • Example#1358 -
  • Example#1359 - Inheriting read preferences from the database level down to the cursor
  • Example#1360 -
  • Example#1361 -
  • Example#1362 -
  • Example#1363 -
  • Example#1364 -
  • Example#1365 -
  • Example#1366 -
  • Example#1367 - MongoClient basic usage
  • Example#1368 - MongoClient::close example
  • Example#1369 - MongoClient::__construct replica set example
  • Example#1370 - Connecting to a domain socket
  • Example#1371 - MongoClient::__construct authentication example
  • Example#1372 - MongoClient::__construct read preference example
  • Example#1373 - MongoClient::__construct options example
  • Example#1374 - MongoClient::__construct read preference example
  • Example#1375 - MongoClient::getConnections example
  • Example#1376 - MongoClient::getReadPreference return value example
  • Example#1377 - MongoClient::getWriteConcern return value example
  • Example#1378 - MongoClient::killCursor example
  • Example#1379 - MongoClient::listDBs example
  • Example#1380 - MongoClient::selectCollection example
  • Example#1381 - MongoClient::setReadPreference tag set array syntax example
  • Example#1382 - MongoClient::setWriteConcern example
  • Example#1383 - Selecting a database
  • Example#1384 - MongoDB::command "distinct" example
  • Example#1385 - MongoDB::command "distinct" example
  • Example#1386 - MongoDB::command MapReduce example
  • Example#1387 - MongoDB::command "geoNear" example
  • Example#1388 - MongoDB::createCollection capped collection example
  • Example#1389 - MongoDB::createDBRef example
  • Example#1390 - MongoDB::createDBRef example
  • Example#1391 - MongoDB::drop example
  • Example#1392 - Simple MongoDB::execute example
  • Example#1393 - Parameter MongoDB::execute example
  • Example#1394 - Scope example
  • Example#1395 - MongoDB::getCollectionInfo example
  • Example#1396 - MongoDB::getCollectionNames example
  • Example#1397 - MongoDB::getDBRef example
  • Example#1398 - MongoDB::getGridFS example
  • Example#1399 - MongoDB::getReadPreference return value example
  • Example#1400 - MongoDB::getWriteConcern return value example
  • Example#1401 - MongoDB::lastError null error example
  • Example#1402 - MongoDB::lastError duplicate key example
  • Example#1403 - MongoDB::listCollections example
  • Example#1404 - MongoDB::repair example
  • Example#1405 - MongoDB::setReadPreference tag set array syntax example
  • Example#1406 - MongoDB::setWriteConcern example
  • Example#1407 - MongoCollection::aggregate example
  • Example#1408 - MongoCollection::aggregate example
  • Example#1409 - MongoCollection::aggregate example
  • Example#1410 - MongoCollection::aggregate with command options
  • Example#1411 - MongoCollection::aggregateCursor example
  • Example#1412 - MongoCollection::aggregateCursor example with different initial batch size
  • Example#1413 - MongoCollection::batchInsert example
  • Example#1414 - MongoCollection::batchInsert example with ignoring errors
  • Example#1415 - MongoCollection::count example
  • Example#1416 - MongoCollection::createDBRef example
  • Example#1417 - MongoCollection::createIndex example
  • Example#1418 - Geospatial Indexing
  • Example#1419 - Drop duplicates example
  • Example#1420 - MongoCollection::deleteIndex example
  • Example#1421 - MongoCollection::deleteIndexes example
  • Example#1422 - MongoCollection::distinct example
  • Example#1423 - MongoCollection::distinct example on a embedded document
  • Example#1424 - MongoCollection::drop example
  • Example#1425 - MongoCollection::ensureIndex example
  • Example#1426 - Geospatial Indexing
  • Example#1427 - Drop duplicates example
  • Example#1428 - MongoCollection::find example
  • Example#1429 - MongoCollection::find example
  • Example#1430 - MongoCollection::find example using $where
  • Example#1431 - MongoCollection::find example using $in
  • Example#1432 - Getting results as an array
  • Example#1433 - MongoCollection::findAndModify example
  • Example#1434 - MongoCollection::findAndModify error handling
  • Example#1435 - MongoCollection::findOne document by its id.
  • Example#1436 - MongoCollection::findOne document by some condition.
  • Example#1437 - MongoCollection::getDBRef example
  • Example#1438 - MongoCollection::getIndexInfo example
  • Example#1439 - MongoCollection::getName example
  • Example#1440 - MongoCollection::getReadPreference return value example
  • Example#1441 - MongoCollection::getWriteConcern return value example
  • Example#1442 - MongoCollection::group example
  • Example#1443 - MongoCollection::group example
  • Example#1444 - Passing a keys function
  • Example#1445 - MongoCollection::insert _id example
  • Example#1446 - MongoCollection::insert acknowledged write example
  • Example#1447 - MongoCollection::parallelCollectionScan example
  • Example#1448 - MongoCollection::remove with justOne example
  • Example#1449 - MongoCollection::save example
  • Example#1450 - MongoCollection::setReadPreference tag set array syntax example
  • Example#1451 - MongoDB::setWriteConcern example
  • Example#1452 - MongoCollection::toIndexString example
  • Example#1453 - MongoCollection::__toString example
  • Example#1454 - MongoCollection::update
  • Example#1455 - MongoCollection::update upsert examples
  • Example#1456 - MongoCollection::update multiple example
  • Example#1457 - MongoCursor basic usage
  • Example#1458 - Iterating over MongoCursor
  • Example#1459 - Adding options to MongoCursor
  • Example#1460 - Adding a comment with MongoCursor::addOption example
  • Example#1461 - MongoCursor::addOption example
  • Example#1462 - MongoCursor::awaitData example
  • Example#1463 - MongoCursor::batchSize and combinations with MongoCursor::limit
  • Example#1464 - MongoCursor::count example
  • Example#1465 - MongoCursor::doQuery example
  • Example#1466 - MongoCursor::explain example
  • Example#1467 - MongoCursor::getReadPreference return value example
  • Example#1468 - MongoCursor::info example
  • Example#1469 - MongoCursor::maxTimeMS example
  • Example#1470 - MongoCursor::setFlag example
  • Example#1471 - MongoCursor::setReadPreference tag set array syntax example
  • Example#1472 - MongoCursor::slaveOkay example
  • Example#1473 - MongoCursor::sort example
  • Example#1474 - MongoCursor::tailable example
  • Example#1475 - MongoCursor::timeout example
  • Example#1476 - Adding options to MongoCommandCursor
  • Example#1477 - MongoCommandCursor::batchSize
  • Example#1478 - MongoCommandCursor example
  • Example#1479 - MongoCommandCursor::createFromDocument
  • Example#1480 - MongoCommandCursor::getReadPreference return value example
  • Example#1481 - MongoCommandCursor::info example
  • Example#1482 - MongoCommandCursor::rewind
  • Example#1483 - MongoCommandCursor::setReadPreference tag set array syntax example
  • Example#1484 - MongoCommandCursor::timeout example
  • Example#1485 - MongoId::__construct example
  • Example#1486 - Parameter example
  • Example#1487 - MongoId::__toString example
  • Example#1488 - MongoCode::__construct example
  • Example#1489 - Using MongoCode with $where
  • Example#1490 - MongoCode::__toString example
  • Example#1491 - Storing dates with MongoDate
  • Example#1492 - MongoDate::__construct example
  • Example#1493 - MongoDate::toDateTime example
  • Example#1494 - Regular expression pattern
  • Example#1495 - MongoRegex::__construct example
  • Example#1496 - MongoRegex::__toString example
  • Example#1497 -
  • Example#1498 - Linking documents
  • Example#1499 - Creating MongoDBRef links
  • Example#1500 - MongoDBRef::create example
  • Example#1501 - MongoCollection::createDBRef example
  • Example#1502 - MongoGridFS::findOne example
  • Example#1503 - MongoGridFS::storeBytes with additional metadata
  • Example#1504 - MongoGridFS::storeFile with additional metadata
  • Example#1505 - MongoGridFS::storeUpload HTML form example
  • Example#1506 - MongoGridFSFile::getBytes example
  • Example#1507 - MongoGridFSFile::getResource example
  • Example#1508 - MongoGridFSFile::write example
  • Example#1509 - MongoWriteBatch example
  • Example#1510 - MongoWriteBatch::add example
  • Example#1511 - MongoWriteBatch::add example
  • Example#1512 - MongoWriteBatch::add example
  • Example#1513 - MongoWriteBatch::add example
  • Example#1514 - MongoWriteBatch::add example
  • Example#1515 - MongoWriteBatch::add example
  • Example#1516 - MongoLog::setCallback example
  • Example#1517 - Changing pool size
  • Example#1518 - Mongo::setPoolSize example
  • Example#1519 - Changing pool size
  • Example#1520 - Mongo::setPoolSize example
  • Example#1521 - MongoResultException::getDocument example
  • Example#1522 - Catching MongoDuplicateKeyException
  • Example#1523 - Catching MongoProtocolException
  • Example#1524 - MongoDB\Driver\Manager::__construct basic example
  • Example#1525 - MongoDB\Driver\Manager::__construct basic examples
  • Example#1526 - MongoDB\Driver\Manager::executeBulkWrite example
  • Example#1527 - MongoDB\Driver\Manager::executeCommand with a command returning a single result document
  • Example#1528 - MongoDB\Driver\Manager::executeCommand with a command returning a cursor
  • Example#1529 - Limiting execution time for a command
  • Example#1530 - MongoDB\Driver\Manager::executeQuery example
  • Example#1531 - Limiting execution time for a query
  • Example#1532 - MongoDB\Driver\Manager::getReadConcern example
  • Example#1533 - MongoDB\Driver\Manager::getReadPreference example
  • Example#1534 - MongoDB\Driver\Manager::getServers example
  • Example#1535 - MongoDB\Driver\Manager::getWriteConcern example
  • Example#1536 - Composing MongoDB\Driver\Command to provide a helper to create collections
  • Example#1537 - MongoDB\Driver\Command::__construct example
  • Example#1538 - MongoDB\Driver\Command::__construct example
  • Example#1539 - MongoDB\Driver\Query::__construct example
  • Example#1540 - Mixed write operations are grouped by type
  • Example#1541 - Ordered write operations causing an error
  • Example#1542 - MongoDB\Driver\BulkWrite::__construct example
  • Example#1543 - MongoDB\Driver\BulkWrite::count example
  • Example#1544 - MongoDB\Driver\BulkWrite::delete example
  • Example#1545 - MongoDB\Driver\BulkWrite::insert example
  • Example#1546 - MongoDB\Driver\BulkWrite::update example
  • Example#1547 - MongoDB\Driver\WriteConcern::bsonSerialize with majority write concern
  • Example#1548 - MongoDB\Driver\WriteConcern::bsonSerialize with wtimeout and journal
  • Example#1549 - MongoDB\Driver\WriteConcern::__construct example
  • Example#1550 - MongoDB\Driver\WriteConcern::getJournal example
  • Example#1551 - MongoDB\Driver\WriteConcern::getW example
  • Example#1552 - MongoDB\Driver\WriteConcern::getWtimeout example
  • Example#1553 - MongoDB\Driver\WriteConcern::isDefault example
  • Example#1554 - MongoDB\Driver\ReadPreference::bsonSerialize with primary read preference
  • Example#1555 - MongoDB\Driver\ReadPreference::bsonSerialize with secondary read preference and tag sets
  • Example#1556 - MongoDB\Driver\ReadPreference::bsonSerialize with secondary read preference and max staleness
  • Example#1557 - MongoDB\Driver\ReadPreference::__construct example
  • Example#1558 - MongoDB\Driver\ReadPreference::getMaxStalenessSeconds example
  • Example#1559 - MongoDB\Driver\ReadPreference::getMode example
  • Example#1560 - MongoDB\Driver\ReadPreference::getModeString example
  • Example#1561 - MongoDB\Driver\ReadPreference::getTagSets example
  • Example#1562 - MongoDB\Driver\ReadConcern::bsonSerialize with empty read concern
  • Example#1563 - MongoDB\Driver\ReadConcern::bsonSerialize with local read concern
  • Example#1564 - MongoDB\Driver\ReadConcern::__construct example
  • Example#1565 - MongoDB\Driver\ReadConcern::getLevel example
  • Example#1566 - MongoDB\Driver\ReadConcern::isDefault example
  • Example#1567 - Reading a result set
  • Example#1568 - Reading a result set for a tailable cursor
  • Example#1569 - MongoDB\Driver\Cursor::getId example
  • Example#1570 - MongoDB\Driver\Cursor::getServer example
  • Example#1571 - MongoDB\Driver\Cursor::isDead example
  • Example#1572 - MongoDB\Driver\Cursor::setTypeMap example
  • Example#1573 - MongoDB\Driver\Cursor::toArray example
  • Example#1574 - MongoDB\Driver\CursorId::__toString example
  • Example#1575 - MongoDB\Driver\Server::getHost example
  • Example#1576 - MongoDB\Driver\Server::getInfo example
  • Example#1577 - MongoDB\Driver\Server::getLatency example
  • Example#1578 - MongoDB\Driver\Server::getPort example
  • Example#1579 - MongoDB\Driver\WriteConcernError::getCode example
  • Example#1580 - MongoDB\Driver\WriteConcernError::getInfo example
  • Example#1581 - MongoDB\Driver\WriteConcernError::getMessage example
  • Example#1582 - MongoDB\Driver\WriteError::getCode example
  • Example#1583 - MongoDB\Driver\WriteError::getIndex example
  • Example#1584 - MongoDB\Driver\WriteError::getMessage example
  • Example#1585 - MongoDB\Driver\WriteResult::getDeletedCount example
  • Example#1586 - MongoDB\Driver\WriteResult::getInsertedCount example
  • Example#1587 - MongoDB\Driver\WriteResult::getMatchedCount example
  • Example#1588 - MongoDB\Driver\WriteResult::getModifiedCount example
  • Example#1589 - MongoDB\Driver\WriteResult::getServer example
  • Example#1590 - MongoDB\Driver\WriteResult::getUpsertedCount example
  • Example#1591 - MongoDB\Driver\WriteResult::getUpsertedIds example
  • Example#1592 - MongoDB\Driver\WriteResult::getWriteConcernError example
  • Example#1593 - MongoDB\Driver\WriteResult::getWriteErrors with a single error
  • Example#1594 - MongoDB\Driver\WriteResult::getWriteErrors with multiple errors
  • Example#1595 - MongoDB\Driver\WriteResult::isAcknowledged with acknowledged write concern
  • Example#1596 - MongoDB\Driver\WriteResult::isAcknowledged with unacknowledged write concern
  • Example#1597 - MongoDB\BSON\fromJSON example
  • Example#1598 - MongoDB\BSON\fromPHP example
  • Example#1599 - MongoDB\BSON\toCanonicalExtendedJSON example
  • Example#1600 - MongoDB\BSON\toJSON example
  • Example#1601 - MongoDB\BSON\toPHP example
  • Example#1602 - MongoDB\BSON\toRelaxedExtendedJSON example
  • Example#1603 - MongoDB\BSON\Binary::__construct example
  • Example#1604 - MongoDB\BSON\Binary::getData example
  • Example#1605 - MongoDB\BSON\Binary::getType example
  • Example#1606 - MongoDB\BSON\Binary::__toString example
  • Example#1607 - MongoDB\BSON\Decimal128::__construct example
  • Example#1608 - MongoDB\BSON\Decimal128::__toString example
  • Example#1609 - MongoDB\BSON\Javascript::__construct example
  • Example#1610 - MongoDB\BSON\Javascript::getCode example
  • Example#1611 - MongoDB\BSON\Javascript::getScope example
  • Example#1612 - MongoDB\BSON\Javascript::__toString example
  • Example#1613 - MongoDB\BSON\MaxKey::__construct example
  • Example#1614 - MongoDB\BSON\MinKey::__construct example
  • Example#1615 - MongoDB\BSON\ObjectId::__construct example
  • Example#1616 - MongoDB\BSON\ObjectId::getTimestamp example
  • Example#1617 - MongoDB\BSON\ObjectId::__toString example
  • Example#1618 - MongoDB\BSON\Regex::__construct example
  • Example#1619 - MongoDB\BSON\Regex::getFlags example
  • Example#1620 - MongoDB\BSON\Regex::getPattern example
  • Example#1621 - MongoDB\BSON\Regex::__toString example
  • Example#1622 - MongoDB\BSON\Timestamp::__construct example
  • Example#1623 - MongoDB\BSON\Timestamp::__toString example
  • Example#1624 - MongoDB\BSON\UTCDateTime::__construct example
  • Example#1625 - MongoDB\BSON\UTCDatetime::toDateTime example
  • Example#1626 - MongoDB\BSON\UTCDateTime::__toString example
  • Example#1627 - MongoDB\BSON\Serializable::bsonSerialize returning an associative array for root document
  • Example#1628 - MongoDB\BSON\Serializable::bsonSerialize returning a sequential array for root document
  • Example#1629 - MongoDB\BSON\Serializable::bsonSerialize returning an associative array for document field
  • Example#1630 - MongoDB\BSON\Serializable::bsonSerialize returning a sequential array for document field
  • Example#1631 - MongoDB\BSON\Unserializable::bsonUnserialize example
  • Example#1632 - MongoDB\BSON\Int64::__toString example
  • Example#1633 - MongoDB\Driver\Exception\WriteException::getWriteResult example
  • Example#1634 - Comparing the MySQL APIs
  • Example#1635 - Configure commands for using mysqlnd or libmysqlclient
  • Example#1636 - Unbuffered query example: mysqli
  • Example#1637 - Unbuffered query example: pdo_mysql
  • Example#1638 - Problems with setting the character set with SQL
  • Example#1639 - Setting the character set example: mysqli
  • Example#1640 - Setting the character set example: pdo_mysql
  • Example#1641 - Easy migration from the old mysql extension
  • Example#1642 - Object-oriented and procedural interface
  • Example#1643 - Bad coding style
  • Example#1644 - Special meaning of localhost
  • Example#1645 - Setting defaults
  • Example#1646 - Connecting to MySQL
  • Example#1647 - Navigation through buffered results
  • Example#1648 - Navigation through unbuffered results
  • Example#1649 - Text protocol returns strings by default
  • Example#1650 - Native data types with mysqlnd and connection option
  • Example#1651 - First stage: prepare
  • Example#1652 - Second stage: bind and execute
  • Example#1653 - INSERT prepared once, executed multiple times
  • Example#1654 - Less round trips using multi-INSERT SQL
  • Example#1655 - Native datatypes
  • Example#1656 - Output variable binding
  • Example#1657 - Using mysqli_result to fetch results
  • Example#1658 - Buffered result set for flexible read out
  • Example#1659 - Calling a stored procedure
  • Example#1660 - Using session variables
  • Example#1661 - Fetching results from stored procedures
  • Example#1662 - Stored Procedures and Prepared Statements
  • Example#1663 - Stored Procedures and Prepared Statements using bind API
  • Example#1664 - Multiple Statements
  • Example#1665 - SQL Injection
  • Example#1666 - Setting autocommit mode with SQL and through the API
  • Example#1667 - Commit and rollback
  • Example#1668 - Accessing result set meta data
  • Example#1669 - Prepared statements metadata
  • Example#1670 - $mysqli->affected_rows example
  • Example#1671 - mysqli::autocommit-Beispiel
  • Example#1672 - mysqli::begin_transaction example
  • Example#1673 - mysqli::change_user example
  • Example#1674 - mysqli::character_set_name example
  • Example#1675 - $mysqli->connect_errno example
  • Example#1676 - $mysqli->connect_error example
  • Example#1677 - mysqli::__construct example
  • Example#1678 - Extending mysqli class
  • Example#1679 - Manual error handling
  • Example#1680 - Generating a Trace File
  • Example#1681 - $mysqli->errno example
  • Example#1682 - $mysqli->error_list example
  • Example#1683 - $mysqli->error example
  • Example#1684 - $mysqli->field_count example
  • Example#1685 - mysqli::get_charset example
  • Example#1686 - mysqli_get_client_info
  • Example#1687 - mysqli_get_client_version
  • Example#1688 - A mysqli_get_connection_stats example
  • Example#1689 - $mysqli->host_info example
  • Example#1690 - $mysqli->protocol_version example
  • Example#1691 - $mysqli->server_info example
  • Example#1692 - $mysqli->server_version example
  • Example#1693 - $mysqli->info example
  • Example#1694 - $mysqli->insert_id example
  • Example#1695 - mysqli::kill example
  • Example#1696 - mysqli::multi_query example
  • Example#1697 - mysqli::ping example
  • Example#1698 - A mysqli_poll example
  • Example#1699 - mysqli::prepare example
  • Example#1700 - mysqli::query example
  • Example#1701 - mysqli::real_connect example
  • Example#1702 - mysqli::real_escape_string example
  • Example#1703 - mysqli::select_db example
  • Example#1704 - mysqli::set_charset example
  • Example#1705 - $mysqli->sqlstate example
  • Example#1706 - mysqli::stat-Beispiel
  • Example#1707 - $mysqli->thread_id example
  • Example#1708 - mysqli::use_result example
  • Example#1709 - $mysqli->warning_count Beispiel
  • Example#1710 - Objektorientierter Stil
  • Example#1711 - Prozeduraler Stil
  • Example#1712 - Objektorientierter Stil
  • Example#1713 - Prozeduraler Stil
  • Example#1714 - Objektorientierter Stil
  • Example#1715 - Prozeduraler Stil
  • Example#1716 - Objektorientierter Stil
  • Example#1717 - Prozeduraler Stil
  • Example#1718 - Objektorientierter Stil
  • Example#1719 - Prozeduraler Stil
  • Example#1720 - Objektorientierter Stil
  • Example#1721 - Prozeduraler Stil
  • Example#1722 - Objektorientierter Stil
  • Example#1723 - Prozeduraler Stil
  • Example#1724 - Objektorientierter Stil
  • Example#1725 - Prozeduraler Stil
  • Example#1726 - Objektorientierter Stil
  • Example#1727 - Prozeduraler Stil
  • Example#1728 - Objektorientierter Stil
  • Example#1729 - Prozeduraler Stil
  • Example#1730 - Objektorientierter Stil
  • Example#1731 - Prozeduraler Stil
  • Example#1732 - Objektorientierter Stil
  • Example#1733 - Prozeduraler Stil
  • Example#1734 - Objektorientierter Stil
  • Example#1735 - Prozeduraler Stil
  • Example#1736 - Objektorientierter Stil
  • Example#1737 - Prozeduraler Stil
  • Example#1738 - Objektorientierter Stil
  • Example#1739 - Prozeduraler Stil
  • Example#1740 - Objektorientierter Stil
  • Example#1741 - Objektorientierter Stil
  • Example#1742 - Prozeduraler Stil
  • Example#1743 - Objektorientierter Stil
  • Example#1744 - Prozeduraler Stil
  • Example#1745 - Objektorientierter Stil
  • Example#1746 - Prozeduraler Stil
  • Example#1747 - Objektorientierter Stil
  • Example#1748 - Prozeduraler Stil
  • Example#1749 - mysqli_result::fetch_array example
  • Example#1750 - mysqli_result::fetch_assoc example
  • Example#1751 - Comparison of mysqli_result iterator and mysqli_result::fetch_assoc usage
  • Example#1752 - Objektorientierter Stil
  • Example#1753 - Prozeduraler Stil
  • Example#1754 - Objektorientierter Stil
  • Example#1755 - Prozeduraler Stil
  • Example#1756 - Objektorientierter Stil
  • Example#1757 - Prozeduraler Stil
  • Example#1758 - mysqli_result::fetch_object example
  • Example#1759 - mysqli_result::fetch_row example
  • Example#1760 - Objektorientierter Stil
  • Example#1761 - Prozeduraler Stil
  • Example#1762 - Objektorientierter Stil
  • Example#1763 - Prozeduraler Stil
  • Example#1764 - Objektorientierter Stil
  • Example#1765 - Prozeduraler Stil
  • Example#1766 - Objektorientierter Stil
  • Example#1767 - Prozeduraler Stil
  • Example#1768 - Objektorientierter Stil
  • Example#1769 - Prozeduraler Stil
  • Example#1770 - Error reporting except bad index errors
  • Example#1771 - A mysqli_get_client_stats example
  • Example#1772 - Connecting to a MySQL Server
  • Example#1773 - Creating a Schema and Collection on the MySQL Server
  • Example#1774 - Storing and Retrieving Data
  • Example#1775 - Fetching and Iterating Multiple Documents
  • Example#1776 - mysql_xdevapi\Expression example
  • Example#1777 - URI examples
  • Example#1778 - mysql_xdevapi\getSession example
  • Example#1779 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1780 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1781 - mysql_xdevapi\Client::__construct example
  • Example#1782 - mysql_xdevapi\Collection::add example
  • Example#1783 - mysql_xdevapi\Collection::addOrReplaceOne example
  • Example#1784 - mysql_xdevapi\Collection::getOne example
  • Example#1785 - mysql_xdevapi\Collection::count example
  • Example#1786 - mysql_xdevapi\Collection::createIndex example
  • Example#1787 - mysql_xdevapi\Collection::dropIndex example
  • Example#1788 - mysql_xdevapi\Collection::existsInDatabase example
  • Example#1789 - mysql_xdevapi\Collection::find example
  • Example#1790 - mysql_xdevapi\Collection::getName example
  • Example#1791 - mysql_xdevapi\Collection::getOne example
  • Example#1792 - mysql_xdevapi\Collection::getSchema example
  • Example#1793 - mysql_xdevapi\Collection::getSession example
  • Example#1794 - mysql_xdevapi\Collection::modify example
  • Example#1795 - mysql_xdevapi\Collection::remove example
  • Example#1796 - mysql_xdevapi\Collection::removeOne example
  • Example#1797 - mysql_xdevapi\Collection::replaceOne example
  • Example#1798 - mysql_xdevapi\CollectionAdd::__construct example
  • Example#1799 - mysql_xdevapi\CollectionAdd::execute example
  • Example#1800 - mysql_xdevapi\CollectionFind::bind example
  • Example#1801 - CollectionFind example
  • Example#1802 - CollectionFind example
  • Example#1803 - mysql_xdevapi\CollectionFind::fields example
  • Example#1804 - mysql_xdevapi\CollectionFind::groupBy example
  • Example#1805 - mysql_xdevapi\CollectionFind::having example
  • Example#1806 - mysql_xdevapi\CollectionFind::limit example
  • Example#1807 - mysql_xdevapi\CollectionFind::lockExclusive example
  • Example#1808 - mysql_xdevapi\CollectionFind::lockShared example
  • Example#1809 - mysql_xdevapi\CollectionFind::offset example
  • Example#1810 - mysql_xdevapi\CollectionFind::sort example
  • Example#1811 - mysql_xdevapi\CollectionModify::arrayAppend example
  • Example#1812 - mysql_xdevapi\CollectionModify::arrayInsert example
  • Example#1813 - mysql_xdevapi\CollectionModify::bind example
  • Example#1814 - mysql_xdevapi\CollectionModify::__construct example
  • Example#1815 - mysql_xdevapi\CollectionModify::execute example
  • Example#1816 - mysql_xdevapi\CollectionModify::limit example
  • Example#1817 - mysql_xdevapi\CollectionModify::patch example
  • Example#1818 - mysql_xdevapi\CollectionModify::replace example
  • Example#1819 - mysql_xdevapi\CollectionModify::set example
  • Example#1820 - mysql_xdevapi\CollectionModify::skip example
  • Example#1821 - mysql_xdevapi\CollectionModify::sort example
  • Example#1822 - mysql_xdevapi\CollectionModify::unset example
  • Example#1823 - mysql_xdevapi\CollectionRemove::bind example
  • Example#1824 - mysql_xdevapi\Collection::remove example
  • Example#1825 - mysql_xdevapi\CollectionRemove::execute example
  • Example#1826 - mysql_xdevapi\CollectionRemove::limit example
  • Example#1827 - mysql_xdevapi\CollectionRemove::sort example
  • Example#1828 - mysql_xdevapi\ColumnResult::__construct example
  • Example#1829 - mysql_xdevapi\ColumnResult::getCharacterSetName example
  • Example#1830 - mysql_xdevapi\ColumnResult::getCollationName example
  • Example#1831 - mysql_xdevapi\ColumnResult::getColumnLabel example
  • Example#1832 - mysql_xdevapi\ColumnResult::getColumnName example
  • Example#1833 - mysql_xdevapi\ColumnResult::getFractionalDigits example
  • Example#1834 - mysql_xdevapi\ColumnResult::getLength example
  • Example#1835 - mysql_xdevapi\ColumnResult::getSchemaName example
  • Example#1836 - mysql_xdevapi\ColumnResult::getTableLabel example
  • Example#1837 - mysql_xdevapi\ColumnResult::getTableName example
  • Example#1838 - mysql_xdevapi\ColumnResult::getType example
  • Example#1839 - mysql_xdevapi\ColumnResult::isNumberSigned example
  • Example#1840 - mysql_xdevapi\ColumnResult::isPadded example
  • Example#1841 - mysql_xdevapi\CrudOperationBindable::bind example
  • Example#1842 - mysql_xdevapi\CrudOperationLimitable::limit example
  • Example#1843 - mysql_xdevapi\CrudOperationSkippable::skip example
  • Example#1844 - mysql_xdevapi\CrudOperationSortable::sort example
  • Example#1845 - mysql_xdevapi\DatabaseObject::existsInDatabase example
  • Example#1846 - mysql_xdevapi\DatabaseObject::getName example
  • Example#1847 - mysql_xdevapi\DatabaseObject::getSession example
  • Example#1848 - A DocResult example
  • Example#1849 - mysql_xdevapi\DocResult::fetchAll example
  • Example#1850 - mysql_xdevapi\DocResult::fetchOne example
  • Example#1851 - mysql_xdevapi\DocResult::getWarnings example
  • Example#1852 - mysql_xdevapi\DocResult::getWarningsCount example
  • Example#1853 - execute() examples
  • Example#1854 - mysql_xdevapi\ExecutionStatus::__construct example
  • Example#1855 - mysql_xdevapi\Expression::__construct example
  • Example#1856 - mysql_xdevapi\Result::__construct example
  • Example#1857 - mysql_xdevapi\Result::getAffectedItemsCount example
  • Example#1858 - mysql_xdevapi\Result::getAutoIncrementValue example
  • Example#1859 - mysql_xdevapi\Result::getGeneratedIds example
  • Example#1860 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1861 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1862 - mysql_xdevapi\RowResult::__construct example
  • Example#1863 - mysql_xdevapi\RowResult::fetchAll example
  • Example#1864 - mysql_xdevapi\RowResult::fetchOne example
  • Example#1865 - mysql_xdevapi\RowResult::getColumnsCount example
  • Example#1866 - mysql_xdevapi\RowResult::getColumnNames example
  • Example#1867 - mysql_xdevapi\RowResult::getColumns example
  • Example#1868 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1869 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1870 - Schema::__construct example
  • Example#1871 - Schema::createCollection example
  • Example#1872 - Schema::dropCollection example
  • Example#1873 - Schema::existsInDatabase example
  • Example#1874 - Schema::getCollection example
  • Example#1875 - Schema::getCollectionAsTable example
  • Example#1876 - mysql_xdevapi\Schema::getCollections example
  • Example#1877 - mysql_xdevapi\Schema::getName example
  • Example#1878 - mysql_xdevapi\Schema::getSession example
  • Example#1879 - mysql_xdevapi\Schema::getTable example
  • Example#1880 - mysql_xdevapi\Schema::getTables example
  • Example#1881 - mysql_xdevapi\Session::getSchema example
  • Example#1882 - mysql_xdevapi\Session::close example
  • Example#1883 - mysql_xdevapi\Session::commit example
  • Example#1884 - mysql_xdevapi\Session::__construct example
  • Example#1885 - mysql_xdevapi\Session::createSchema example
  • Example#1886 - mysql_xdevapi\Session::dropSchema example
  • Example#1887 - mysql_xdevapi\Session::generateUuid example
  • Example#1888 - mysql_xdevapi\Session::getSchema example
  • Example#1889 - mysql_xdevapi\Session::getSchema example
  • Example#1890 - mysql_xdevapi\Session::getSchemas example
  • Example#1891 - mysql_xdevapi\Session::getServerVersion example
  • Example#1892 - mysql_xdevapi\Session::listClients example
  • Example#1893 - mysql_xdevapi\Session::quoteName example
  • Example#1894 - mysql_xdevapi\Session::releaseSavepoint example
  • Example#1895 - mysql_xdevapi\Session::rollback example
  • Example#1896 - mysql_xdevapi\Session::rollbackTo example
  • Example#1897 - mysql_xdevapi\Session::setSavepoint example
  • Example#1898 - mysql_xdevapi\Session::sql example
  • Example#1899 - mysql_xdevapi\Session::startTransaction example
  • Example#1900 - mysql_xdevapi\SqlStatement::bind example
  • Example#1901 - mysql_xdevapi\SqlStatement::__construct example
  • Example#1902 - mysql_xdevapi\SqlStatement::execute example
  • Example#1903 - mysql_xdevapi\SqlStatement::getNextResult example
  • Example#1904 - mysql_xdevapi\SqlStatement::getResult example
  • Example#1905 - mysql_xdevapi\SqlStatement::hasMoreResults example
  • Example#1906 - mysql_xdevapi\SqlStatementResult::__construct example
  • Example#1907 - mysql_xdevapi\SqlStatementResult::fetchAll example
  • Example#1908 - mysql_xdevapi\SqlStatementResult::fetchOne example
  • Example#1909 - mysql_xdevapi\SqlStatementResult::getAffectedItemsCount example
  • Example#1910 - mysql_xdevapi\SqlStatementResult::getColumnsCount example
  • Example#1911 - mysql_xdevapi\SqlStatementResult::getColumnNames example
  • Example#1912 - mysql_xdevapi\SqlStatementResult::getColumns example
  • Example#1913 - mysql_xdevapi\SqlStatementResult::getGeneratedIds example
  • Example#1914 - mysql_xdevapi\SqlStatementResult::getLastInsertId example
  • Example#1915 - mysql_xdevapi\SqlStatementResult::getWarnings example
  • Example#1916 - mysql_xdevapi\SqlStatementResult::getWarningsCount example
  • Example#1917 - mysql_xdevapi\SqlStatementResult::hasData example
  • Example#1918 - mysql_xdevapi\SqlStatementResult::nextResult example
  • Example#1919 - mysql_xdevapi\Statement::__construct example
  • Example#1920 - mysql_xdevapi\Statement::getNextResult example
  • Example#1921 - mysql_xdevapi\Statement::getResult example
  • Example#1922 - mysql_xdevapi\Statement::hasMoreResults example
  • Example#1923 - mysql_xdevapi\Table::__construct example
  • Example#1924 - mysql_xdevapi\Table::count example
  • Example#1925 - mysql_xdevapi\Table::delete example
  • Example#1926 - mysql_xdevapi\Table::existsInDatabase example
  • Example#1927 - mysql_xdevapi\Table::getName example
  • Example#1928 - mysql_xdevapi\Table::getSchema example
  • Example#1929 - mysql_xdevapi\Table::getSession example
  • Example#1930 - mysql_xdevapi\Table::insert example
  • Example#1931 - mysql_xdevapi\Table::isView example
  • Example#1932 - mysql_xdevapi\Table::count example
  • Example#1933 - mysql_xdevapi\Table::update example
  • Example#1934 - mysql_xdevapi\TableDelete::bind example
  • Example#1935 - mysql_xdevapi\TableDelete::__construct example
  • Example#1936 - mysql_xdevapi\TableDelete::execute example
  • Example#1937 - mysql_xdevapi\TableDelete::limit example
  • Example#1938 - mysql_xdevapi\TableDelete::orderBy example
  • Example#1939 - mysql_xdevapi\TableDelete::where example
  • Example#1940 - mysql_xdevapi\TableInsert::__construct example
  • Example#1941 - mysql_xdevapi\TableInsert::execute example
  • Example#1942 - mysql_xdevapi\TableInsert::values example
  • Example#1943 - mysql_xdevapi\TableSelect::bind example
  • Example#1944 - mysql_xdevapi\TableSelect::__construct example
  • Example#1945 - mysql_xdevapi\TableSelect::execute example
  • Example#1946 - mysql_xdevapi\TableSelect::groupBy example
  • Example#1947 - mysql_xdevapi\TableSelect::having example
  • Example#1948 - mysql_xdevapi\TableSelect::limit example
  • Example#1949 - mysql_xdevapi\TableSelect::lockExclusive example
  • Example#1950 - mysql_xdevapi\TableSelect::lockShared example
  • Example#1951 - mysql_xdevapi\TableSelect::offset example
  • Example#1952 - mysql_xdevapi\TableSelect::orderBy example
  • Example#1953 - mysql_xdevapi\TableSelect::where example
  • Example#1954 - mysql_xdevapi\TableUpdate::bind example
  • Example#1955 - mysql_xdevapi\TableUpdate::__construct example
  • Example#1956 - mysql_xdevapi\TableUpdate::execute example
  • Example#1957 - mysql_xdevapi\TableUpdate::limit example
  • Example#1958 - mysql_xdevapi\TableUpdate::orderby example
  • Example#1959 - mysql_xdevapi\TableUpdate::set example
  • Example#1960 - mysql_xdevapi\TableUpdate::where example
  • Example#1961 - mysql_xdevapi\Warning::__construct example
  • Example#1962 - MySQL-Erweiterung: ein Überblicks-Beispiel
  • Example#1963 - mysql_affected_rows-Beispiel
  • Example#1964 - mysql_affected_rows-Beispiel mit Transaktionen
  • Example#1965 - mysql_client_encoding-Beispiel
  • Example#1966 - mysql_close-Beispiel
  • Example#1967 - mysql_connect-Beispiel
  • Example#1968 - mysql_connect-Beispiel unter Verwendung der hostname:port-Syntax
  • Example#1969 - mysql_connect-Beispiel unter Verwendung der ":/path/to/socket"-Syntax
  • Example#1970 - mysql_create_db-Alternativbeispiel
  • Example#1971 - mysql_data_seek-Beispiel
  • Example#1972 - mysql_db_name-Beispiel
  • Example#1973 - mysql_db_query-Alternativbeispiel
  • Example#1974 - mysql_drop_db-Alternativbeispiel
  • Example#1975 - mysql_errno-Beispiel
  • Example#1976 - mysql_error-Beispiel
  • Example#1977 - mysql_escape_string-Beispiel
  • Example#1978 - Abfrage mit alias für identische Feldnamen
  • Example#1979 - mysql_fetch_array mit MYSQL_NUM
  • Example#1980 - mysql_fetch_array mit MYSQL_ASSOC
  • Example#1981 - mysql_fetch_array mit MYSQL_BOTH
  • Example#1982 - Ein ausführliches mysql_fetch_assoc-Beispiel
  • Example#1983 - mysql_fetch_field-Beispiel
  • Example#1984 - Ein mysql_fetch_lengths-Beispiel
  • Example#1985 - mysql_fetch_object-Beispiel
  • Example#1986 - mysql_fetch_object-Beispiel
  • Example#1987 - Einen Datensatz mit mysql_fetch_row holen
  • Example#1988 - Ein mysql_field_flags-Beispiel
  • Example#1989 - mysql_field_len-Beispiel
  • Example#1990 - mysql_field_name-Beispiel
  • Example#1991 - Ein mysql_field_table-Beispiel
  • Example#1992 - mysql_field_type-Beispiel
  • Example#1993 - Ein mysql_free_result-Beispiel
  • Example#1994 - mysql_get_client_info-Beispiel
  • Example#1995 - mysql_get_host_info-Beispiel
  • Example#1996 - mysql_get_proto_info-Beispiel
  • Example#1997 - mysql_get_server_info-Beispiel
  • Example#1998 - Relevante MySQL-Anweisungen
  • Example#1999 - mysql_insert_id-Beispiel
  • Example#2000 - mysql_list_dbs-Beispiel
  • Example#2001 - Alternative zum veraltetenmysql_list_fields
  • Example#2002 - mysql_list_processes-Beispiel
  • Example#2003 - mysql_list_tables-Alternativbeispiel
  • Example#2004 - Ein mysql_num_fields-Beispiel
  • Example#2005 - mysql_num_rows-Beispiel
  • Example#2006 - mysql_ping-Beispiel
  • Example#2007 - Ungültige Anfrage
  • Example#2008 - Gültige Anfrage
  • Example#2009 - Einfaches mysql_real_escape_string-Beispiel
  • Example#2010 - mysql_real_escape_string benötigt eine Verbindung
  • Example#2011 - Ein beispielhafter SQL-Injection-Angriff
  • Example#2012 - mysql_result-Beispiel
  • Example#2013 - mysql_select_db-Beispiel
  • Example#2014 - mysql_stat-Beispiel
  • Example#2015 - Alternatives mysql_stat-Beispiel
  • Example#2016 - mysql_tablename-Beispiel
  • Example#2017 - mysql_thread_id-Beispiel
  • Example#2018 - Enabling the plugin (php.ini)
  • Example#2019 - Minimal plugin-specific configuration file (mysqlnd_ms_plugin.ini)
  • Example#2020 - Recommended minimal plugin-specific config (mysqlnd_ms_plugin.ini)
  • Example#2021 - Using one server as a master and as a slave (testing only!)
  • Example#2022 - Plugin specific configuration file (mysqlnd_ms_plugin.ini)
  • Example#2023 - Opening a load balanced connection
  • Example#2024 - Executing statements
  • Example#2025 - Plugin config with one slave and one master
  • Example#2026 - Pitfall: connection state and SQL user variables
  • Example#2027 - Plugin config with one slave and one master
  • Example#2028 - SQL hints to prevent connection switches
  • Example#2029 - Fighting replication lag
  • Example#2030 - Table creation on a slave
  • Example#2031 - Plugin config with one slave and one master
  • Example#2032 - Using SQL hints for transactions
  • Example#2033 - Transaction aware load balancing: trx_stickiness setting
  • Example#2034 - Transaction aware
  • Example#2035 - General pattern for XA transactions
  • Example#2036 - Local and global transactions are mutually exclusive
  • Example#2037 - Transaction coordinator state store
  • Example#2038 - Session consistency: read your writes
  • Example#2039 - Requesting session consistency
  • Example#2040 - Maximum age/slave lag
  • Example#2041 - Limiting slave lag
  • Example#2042 - Fail over not set
  • Example#2043 - No slave within time limit
  • Example#2044 - Create counter table on master
  • Example#2045 - Plugin config: SQL for client-side GTID injection
  • Example#2046 - Transparent global transaction ID injection
  • Example#2047 - Plugin config: SQL for fetching GTID
  • Example#2048 - Obtaining GTID after injection
  • Example#2049 - Plugin config: Checking for a certain GTID
  • Example#2050 - Session consistency service level and GTID combined
  • Example#2051 - Plugin config: using MySQL 5.6.5-m8 built-in GTID feature
  • Example#2052 - Recap: quality of service to request read your writes
  • Example#2053 - Plugin config: no special entries for caching
  • Example#2054 - Caching a slave request
  • Example#2055 - Read your writes and caching combined
  • Example#2056 - Manual failover, automatic optional
  • Example#2057 - Manual failover
  • Example#2058 - Cluster node groups
  • Example#2059 - Manual partitioning using SQL hints
  • Example#2060 - Plugin config: Fabric hosts instead of MySQL servers
  • Example#2061 - Manual partitioning using SQL hints
  • Example#2062 - Provoking a connection error
  • Example#2063 - Connection error on query execution
  • Example#2064 - Provoking a connection error
  • Example#2065 - Most basic failover
  • Example#2066 - Provoking a transient error
  • Example#2067 - Transient error retry loop
  • Example#2068 - Enabling the plugin (php.ini)
  • Example#2069 - Basic plugin configuration (mysqlnd_ms_plugin.ini) for MySQL Replication
  • Example#2070 - Multiple primaries - multi master (php.ini)
  • Example#2071 - Primary copy with multiple primaries and paritioning
  • Example#2072 - Multiple primaries - multi master (php.ini)
  • Example#2073 - Synchronous update anywhere cluster
  • Example#2074 - General pattern for XA transactions
  • Example#2075 - Converting a PHP array (hash) into JSON format
  • Example#2076 - Using section names example
  • Example#2077 - List of anonymous slaves
  • Example#2078 - Master list using symbolic names
  • Example#2079 - Keywords to configure a server
  • Example#2080 - New roundrobin filter, old functionality
  • Example#2081 - The user filter replaces mysqlnd_ms_set_user_pick_server
  • Example#2082 - Common error message in case of configuration file issues (upto version 1.5.0)
  • Example#2083 - Improved configuration file validation since 1.5.0
  • Example#2084 - Possibly more precise error due to mysqlnd_ms.force_config_usage=1
  • Example#2085 - Minimum pluging configuration for use with MySQL Fabric
  • Example#2086 - Optional timeout for communication with Fabric
  • Example#2087 - Warnings about the violation of transaction boundaries
  • Example#2088 - Invalid filter sequence
  • Example#2089 - Random load balancing with random filter
  • Example#2090 - Random once load balancing with random filter
  • Example#2091 - Referencing error
  • Example#2092 - Assigning a weight for load balancing
  • Example#2093 - roundrobin filter
  • Example#2094 - Setting a callback
  • Example#2095 - Using a callback
  • Example#2096 - Returning random masters and slaves
  • Example#2097 - Manual partitioning
  • Example#2098 - Global limit on slave lag
  • Example#2099 - Optional master failover when failing to connect to slave (PECL/mysqlnd_ms < 1.4.0)
  • Example#2100 - New syntax since 1.4.0
  • Example#2101 - Disabling lazy connection
  • Example#2102 - String escaping on a lazy connection handle
  • Example#2103 - Master on write for consistent reads
  • Example#2104 - Using master to execute transactions
  • Example#2105 - No automatic failover, error handling pitfall
  • Example#2106 - Retry loop for transient errors
  • Example#2107 - SQL definition for the MySQL state store transaction table
  • Example#2108 - SQL definition for the MySQL state store transaction table
  • Example#2109 - SQL definition for the MySQL state store garbage collection table
  • Example#2110 - Using section names example
  • Example#2111 - List-like syntax
  • Example#2112 - Verify plugin activity in a non-threaded deployment model
  • Example#2113 - Recording statistics during shutdown
  • Example#2114 - Example demonstrating the usage of mysqlnd_ms constants
  • Example#2115 - mysqlnd_ms_dump_servers example
  • Example#2116 - mysqlnd_ms_get_last_gtid example
  • Example#2117 - mysqlnd_ms_get_last_used_connection example
  • Example#2118 - mysqlnd_ms_get_stats example
  • Example#2119 - mysqlnd_ms_match_wild example
  • Example#2120 - mysqlnd_ms_query_is_select example
  • Example#2121 - mysqlnd_ms_set_qos example
  • Example#2122 - mysqlnd_ms_set_user_pick_server example
  • Example#2123 - Enabling the plugin (php.ini)
  • Example#2124 - Using the MYSQLND_QC_ENABLE_SWITCH SQL hint
  • Example#2125 - Using the MYSQLND_QC_DISABLE_SWITCH SQL hint
  • Example#2126 - Example showing which type of statements are not cached
  • Example#2127 - Enabling caching for all statements using the mysqlnd_qc.cache_no_table ini setting
  • Example#2128 - Setting the TTL with the mysqlnd_qc.ttl ini setting
  • Example#2129 - Setting TTL with SQL hints
  • Example#2130 - Setting a callback with mysqlnd_qc_set_is_select
  • Example#2131 - Enabling the slam defense mechanism
  • Example#2132 - Collecting a query trace
  • Example#2133 - Setting the backtrace depth with the mysqlnd_qc.query_trace_bt_depth ini setting
  • Example#2134 - Collecting statistics data with the mysqlnd_qc.time_statistics ini setting
  • Example#2135 - Example mysqlnd_qc_get_cache_info usage
  • Example#2136 - Example mysqlnd_qc_get_normalized_query_trace_log usage
  • Example#2137 - Using a user-defined storage handler
  • Example#2138 - Using SQL hint constants
  • Example#2139 - Example mysqlnd_qc_set_cache_condition usage
  • Example#2140 - mysqlnd_qc_get_available_handlers example
  • Example#2141 - mysqlnd_qc_get_cache_info example
  • Example#2142 - mysqlnd_qc_get_core_stats example
  • Example#2143 - mysqlnd_qc_get_normalized_query_trace_log example
  • Example#2144 - mysqlnd_qc_get_query_trace_log example
  • Example#2145 - mysqlnd_qc_set_cache_condition example
  • Example#2146 - mysqlnd_qc_set_is_select example
  • Example#2147 - mysqlnd_qc_set_storage_handler example
  • Example#2148 - Enabling the plugin (php.ini)
  • Example#2149 - Pseudo-code: what a built-in class does
  • Example#2150 - Installing a proxy
  • Example#2151 - Proxy registration, mysqlnd_uh.enable=1
  • Example#2152 - Proxy installation disabled
  • Example#2153 - Connection proxy
  • Example#2154 - Prepared statement proxy
  • Example#2155 - Basic Monitoring
  • Example#2156 - MysqlndUhConnection::changeUser example
  • Example#2157 - MysqlndUhConnection::charsetName example
  • Example#2158 - MysqlndUhConnection::close example
  • Example#2159 - MysqlndUhConnection::connect example
  • Example#2160 - MysqlndUhConnection::endPSession example
  • Example#2161 - MysqlndUhConnection::escapeString example
  • Example#2162 - MysqlndUhConnection::getAffectedRows example
  • Example#2163 - MysqlndUhConnection::getErrorNumber example
  • Example#2164 - MysqlndUhConnection::getErrorString example
  • Example#2165 - MysqlndUhConnection::getFieldCount example
  • Example#2166 - MysqlndUhConnection::getHostInformation example
  • Example#2167 - MysqlndUhConnection::getLastInsertId example
  • Example#2168 - MysqlndUhConnection::getLastMessage example
  • Example#2169 - MysqlndUhConnection::getProtocolInformation example
  • Example#2170 - MysqlndUhConnection::getServerInformation example
  • Example#2171 - MysqlndUhConnection::getServerStatistics example
  • Example#2172 - MysqlndUhConnection::getServerVersion example
  • Example#2173 - MysqlndUhConnection::getSqlstate example
  • Example#2174 - MysqlndUhConnection::getStatistics example
  • Example#2175 - MysqlndUhConnection::getThreadId example
  • Example#2176 - MysqlndUhConnection::getWarningCount example
  • Example#2177 - MysqlndUhConnection::init example
  • Example#2178 - MysqlndUhConnection::kill example
  • Example#2179 - MysqlndUhConnection::listFields example
  • Example#2180 - MysqlndUhConnection::listMethod example
  • Example#2181 - MysqlndUhConnection::moreResults example
  • Example#2182 - MysqlndUhConnection::nextResult example
  • Example#2183 - MysqlndUhConnection::ping example
  • Example#2184 - MysqlndUhConnection::query example
  • Example#2185 - MysqlndUhConnection::queryReadResultsetHeader example
  • Example#2186 - MysqlndUhConnection::reapQuery example
  • Example#2187 - MysqlndUhConnection::refreshServer example
  • Example#2188 - MysqlndUhConnection::restartPSession example
  • Example#2189 - MysqlndUhConnection::selectDb example
  • Example#2190 - MysqlndUhConnection::sendClose example
  • Example#2191 - MysqlndUhConnection::sendQuery example
  • Example#2192 - MysqlndUhConnection::serverDumpDebugInformation example
  • Example#2193 - MysqlndUhConnection::setAutocommit example
  • Example#2194 - MysqlndUhConnection::setCharset example
  • Example#2195 - MysqlndUhConnection::setClientOption example
  • Example#2196 - MysqlndUhConnection::setServerOption example
  • Example#2197 - MysqlndUhConnection::simpleCommand example
  • Example#2198 - MysqlndUhConnection::simpleCommandHandleResponse example
  • Example#2199 - MysqlndUhConnection::sslSet example
  • Example#2200 - MysqlndUhConnection::stmtInit example
  • Example#2201 - MysqlndUhConnection::storeResult example
  • Example#2202 - MysqlndUhConnection::txCommit example
  • Example#2203 - MysqlndUhConnection::txRollback example
  • Example#2204 - MysqlndUhConnection::useResult example
  • Example#2205 - MysqlndUhPreparedStatement::execute example
  • Example#2206 - MysqlndUhPreparedStatement::prepare example
  • Example#2207 - mysqlnd_uh_convert_to_mysqlnd example
  • Example#2208 - mysqlnd_uh_set_connection_proxy example
  • Example#2209 - Enabling the plugin (php.ini)
  • Example#2210 - SQL table used for the Quickstart
  • Example#2211 - Basic example.
  • Example#2212 - mysqlnd_memcache_get_config example
  • Example#2213 - mysqlnd_memcache_set example with var_dump as a simple debugging callback.
  • Example#2214 - Basic query
  • Example#2215 - Inserting with bind variables
  • Example#2216 - Binding in the WHERE clause of a query
  • Example#2217 - Inserting and fetching a CLOB
  • Example#2218 - Using a PL/SQL stored function
  • Example#2219 - Using a PL/SQL stored procedure
  • Example#2220 - Calling a PL/SQL function that returns a REF CURSOR
  • Example#2221 -
  • Example#2222 - user_oci8_probes.d for tracing all user-level PHP OCI8 Static Probes with DTrace
  • Example#2223 - oci_bind_array_by_name Beispiel
  • Example#2224 - Inserting data with oci_bind_by_name
  • Example#2225 - Binding once for multiple executions
  • Example#2226 - Binding with a foreach loop
  • Example#2227 - Binding in a WHERE clause
  • Example#2228 - Binding with a LIKE clause
  • Example#2229 - Binding with REGEXP_LIKE
  • Example#2230 - Binding Multiple Values in an IN Clause
  • Example#2231 - Binding a ROWID returned by a query
  • Example#2232 - Binding a ROWID on INSERT
  • Example#2233 - Binding for a PL/SQL stored function
  • Example#2234 - Binding parameters for a PL/SQL stored procedure
  • Example#2235 - Binding a CLOB column
  • Example#2236 - Binding a PL/SQL BOOLEAN
  • Example#2237 - oci_client_version example
  • Example#2238 - Schließen einer Verbindung
  • Example#2239 - Datenbankverbindungen werden nicht geschlossen, bevor alle Referenzen geschlossen wurden
  • Example#2240 - Schließen einer Verbindung, die mehr als einmal geöffnet wurde
  • Example#2241 - Verbindungen werden geschlossen, wenn die Variablen den Geltungsbereich verlassen
  • Example#2242 - oci_commit example
  • Example#2243 - Basic oci_connect using Easy Connect syntax
  • Example#2244 - Basic oci_connect using a Network Connect name
  • Example#2245 - oci_connect with an explicit character set
  • Example#2246 - Using multiple calls to oci_connect
  • Example#2247 - oci_define_by_name example
  • Example#2248 - oci_define_by_name with case sensitive column names
  • Example#2249 - oci_define_by_name with LOB columns
  • Example#2250 - oci_define_by_name with an explicit type
  • Example#2251 - Zeigt die Oracle-Fehlermeldung nach einem Verbindungsfehler an
  • Example#2252 - Zeigt die Oracle-Fehlermeldung nach einem Parse-Error an
  • Example#2253 - Anzeigen der Oracle-Fehlermeldung, der problematischen Anweisung und der Position des Problems nach einem Ausführungsfehler
  • Example#2254 - oci_execute for queries
  • Example#2255 - oci_execute without specifying a mode example
  • Example#2256 - oci_execute with OCI_NO_AUTO_COMMIT example
  • Example#2257 - oci_execute with different commit modes example
  • Example#2258 - oci_execute with OCI_DESCRIBE_ONLY example
  • Example#2259 - oci_fetch_all-Beispiel
  • Example#2260 - oci_fetch_all-Beispiel mit OCI_FETCHSTATEMENT_BY_ROW
  • Example#2261 - oci_fetch_all mit OCI_NUM
  • Example#2262 - oci_fetch_array mit OCI_BOTH
  • Example#2263 - oci_fetch_array mit OCI_NUM
  • Example#2264 - oci_fetch_array mit OCI_ASSOC
  • Example#2265 - oci_fetch_array mit OCI_RETURN_NULLS
  • Example#2266 - oci_fetch_array mit OCI_RETURN_LOBS
  • Example#2267 - oci_fetch_array mit Spaltennamen, die zwischen Groß- und Kleinschreibung unterscheiden
  • Example#2268 - oci_fetch_array mit Spalten, die doppelte Namen haben
  • Example#2269 - oci_fetch_array mit DATE-Spalten
  • Example#2270 - oci_fetch_array mit REF CURSOR
  • Example#2271 - Seitenweise Darstellung mit oci_fetch_array unter Verwendung einer LIMIT-Klausel
  • Example#2272 - oci_fetch_array mit impliziten Ergebnismengen einer Oracle-Datenbank
  • Example#2273 - oci_fetch_assoc-Beispiel
  • Example#2274 - oci_fetch_object-Beispiel
  • Example#2275 - oci_fetch_object mit Spaltennamen, die zwischen Groß- und Kleinschreibung unterscheiden.
  • Example#2276 - oci_fetch_object mit LOBs
  • Example#2277 - oci_fetch_row-Beispiel
  • Example#2278 - oci_fetch mit definierten Variablen
  • Example#2279 - oci_fetch mit oci_result
  • Example#2280 - oci_field_name example
  • Example#2281 - oci_field_name example
  • Example#2282 - oci_field_precision Example
  • Example#2283 - oci_field_scale Example
  • Example#2284 - oci_field_size example
  • Example#2285 - oci_field_type_raw Example
  • Example#2286 - oci_field_type example
  • Example#2287 - Fetching Implicit Result Sets in a loop
  • Example#2288 - Getting child statement handles individually
  • Example#2289 - Explicitly setting the Prefetch Count
  • Example#2290 - Implicit Result Set example without using oci_get_implicit_resultset
  • Example#2291 - oci_new_connect example
  • Example#2292 - Binding a REF CURSOR in an Oracle stored procedure call
  • Example#2293 - oci_new_descriptor example
  • Example#2294 - oci_new_descriptor example
  • Example#2295 - oci_num_fields example
  • Example#2296 - oci_num_rows example
  • Example#2297 - oci_parse example for SQL statements
  • Example#2298 - oci_parse example for PL/SQL statements
  • Example#2299 - oci_password_change example changing the password of an already connected user
  • Example#2300 - oci_password_change example of connecting and changing the password in one step
  • Example#2301 - Basic oci_pconnect Example using Easy Connect syntax
  • Example#2302 - oci_fetch with oci_result
  • Example#2303 - oci_rollback example
  • Example#2304 - Rolling back to a SAVEPOINT example
  • Example#2305 - oci_server_version example
  • Example#2306 - Setting the action
  • Example#2307 - Setting the timeout
  • Example#2308 - Setting the client identifier to the application user
  • Example#2309 - Setting the client information
  • Example#2310 - Setting the DBOP
  • Example#2311 - Two scripts can use different versions of myfunc() at the same time
  • Example#2312 - Setting the module name
  • Example#2313 - Changing the default prefetch value for a query
  • Example#2314 - Changing the default prefetch for a REF CURSOR fetch
  • Example#2315 - Setting the prefetch value when passing a REF CURSOR back to Oracle
  • Example#2316 - oci_statement_type example
  • Example#2317 - Creating a Paradox database with two fields
  • Example#2318 - Turn a paradox date into a human readable form
  • Example#2319 - Set the date/time fields in a paradox database to the current date/time
  • Example#2320 - Opening a Paradox database
  • Example#2321 - Opening a Paradox database
  • Example#2322 - Turn a paradox timestamp into a human readable form
  • Example#2323 - Beispiel für die Benutzung der PostgreSQL-Erweiterung
  • Example#2324 - benutzerdefinierte PostgreSQL Funktionen Beispiel
  • Example#2325 - pg_affected_rows-Beispiel
  • Example#2326 - pg_cancel_query Beispiel
  • Example#2327 - pg_client_encoding-Beispiel
  • Example#2328 - pg_close-Beispiel
  • Example#2329 - pg_connect benutzen
  • Example#2330 - pg_connection_busy Beispiel
  • Example#2331 - pg_connection_reset Beispiel
  • Example#2332 - pg_connection_status Beispiel
  • Example#2333 - pg_convert-Beispiel
  • Example#2334 - pg_copy_from Beispiel
  • Example#2335 - pg_copy_to-Beispiel
  • Example#2336 - pg_dbname-Beispiel
  • Example#2337 - pg_delete-Beispiel
  • Example#2338 - pg_end_copy Beispiel
  • Example#2339 - pg_escape_bytea-Beispiel
  • Example#2340 - pg_escape_identifier example
  • Example#2341 - pg_escape_literal example
  • Example#2342 - pg_escape_string-Beispiel
  • Example#2343 - pg_execute benutzen:
  • Example#2344 - pg_fetch_all_columns-Beispiel
  • Example#2345 - PostgreSQL fetch all
  • Example#2346 - pg_fetch_array-Beispiel
  • Example#2347 - pg_fetch_assoc-Beispiel
  • Example#2348 - pg_fetch_object-Beispiel
  • Example#2349 - pg_fetch_result-Beispiel
  • Example#2350 - pg_fetch_row-Beispiel
  • Example#2351 - pg_field_is_null-Beispiel
  • Example#2352 - Informationen über Felder abfragen
  • Example#2353 - Die Nummer eines Feldes ermitteln
  • Example#2354 - Informationen über Spalten ermitteln
  • Example#2355 - Informationen über Felder abfragen
  • Example#2356 - Informationen über Felder abfragen
  • Example#2357 - Informationen über Felder holen
  • Example#2358 - Informationen über Felder holen
  • Example#2359 - pg_free_result-Beispiel
  • Example#2360 - PostgreSQL-NOTIFY-Nachricht
  • Example#2361 - PostgreSQL Prozess-ID
  • Example#2362 - pg_get_result-Beispiel
  • Example#2363 - pg_host-Beispiel
  • Example#2364 - pg_insert-Beispiel
  • Example#2365 - pg_last_error-Beispiel
  • Example#2366 - pg_last_notice-Beispiel
  • Example#2367 - pg_last_oid-Beispiel
  • Example#2368 - pg_lo_close Beispiel
  • Example#2369 - pg_lo_create-Beispiel
  • Example#2370 - pg_lo_export Beispiel
  • Example#2371 - pg_lo_import-Beispiel
  • Example#2372 - pg_lo_open-Beispiel
  • Example#2373 - pg_lo_read_all-Beispiel
  • Example#2374 - pg_lo_read-Beispiel
  • Example#2375 - pg_lo_seek Beispiel
  • Example#2376 - pg_lo_tell Beispiel
  • Example#2377 - pg_lo_truncate example
  • Example#2378 - pg_lo_unlink Beispiel
  • Example#2379 - pg_lo_write-Beispiel
  • Example#2380 - Metadaten für eine Tabelle ermitteln
  • Example#2381 - pg_num_fields Beispiel
  • Example#2382 - pg_num_rows Beispiel
  • Example#2383 - pg_options-Beispiel
  • Example#2384 - pg_parameter_status-Beispiel
  • Example#2385 - pg_pconnect benutzen:
  • Example#2386 - pg_ping Beispiel
  • Example#2387 - pg_port-Beispiel
  • Example#2388 - pg_prepare-Beispiel
  • Example#2389 - pg_put_line Beispiel
  • Example#2390 - pg_query_params-Beispiel
  • Example#2391 - pg_query-Beispiel
  • Example#2392 - pg_query mit mehreren Anweisungen
  • Example#2393 - pg_result_error_field-Beispiel
  • Example#2394 - pg_result_error-Beispiel
  • Example#2395 - pg_result_seek Beispiel
  • Example#2396 - pg_result_status Beispiel
  • Example#2397 - pg_select-Beispiel
  • Example#2398 - pg_send_execute benutzen:
  • Example#2399 - pg_send_prepare Beispiel
  • Example#2400 - pg_send_query_params-Beispiel
  • Example#2401 - pg_send_query Beispiel
  • Example#2402 - pg_set_client_encoding Beispiel
  • Example#2403 - pg_set_error_verbosity Beispiel
  • Example#2404 - pg_trace Beispiel
  • Example#2405 - pg_transaction_status-Beispiel
  • Example#2406 - pg_tty-Beispiel
  • Example#2407 - pg_unescape_bytea Beispiel
  • Example#2408 - pg_untrace Beipiel
  • Example#2409 - pg_update-Beispiel
  • Example#2410 - pg_version-Beispiel
  • Example#2411 - Backup an existing database
  • Example#2412 - SQLite3::changes-Beispiel
  • Example#2413 - SQLite3::close Beispiel
  • Example#2414 - SQLite3::__construct-Beispiel
  • Example#2415 - Beispiel für eine 'max_length'-Aggregierungs-Funktion
  • Example#2416 - SQLite3::createCollation example
  • Example#2417 - SQLite3::createFunction-Beispiel
  • Example#2418 - SQLite3::enableExceptions example
  • Example#2419 - SQLite3::exec-Beispiel
  • Example#2420 - SQLite3::loadExtension-Beispiel
  • Example#2421 - SQLite3::open-Beispiel
  • Example#2422 - SQLite3::openBlob example
  • Example#2423 - Incrementally writing a BLOB
  • Example#2424 - SQLite3::prepare-Beispiel
  • Example#2425 - SQLite3::query-Beispiel
  • Example#2426 - SQLite3::querySingle example
  • Example#2427 - SQLite3::setAuthorizer example
  • Example#2428 - SQLite3::version example
  • Example#2429 - SQLite3Stmt::bindParam Usage
  • Example#2430 - SQLite3Stmt::bindValue example
  • Example#2431 - Inspecting the expanded SQL
  • Example#2432 - sqlsrv_begin_transaction example
  • Example#2433 - sqlsrv_cancel example
  • Example#2434 - sqlsrv_client_info example
  • Example#2435 - sqlsrv_close example
  • Example#2436 - sqlsrv_commit example
  • Example#2437 - Connect using Windows Authentication.
  • Example#2438 - Connect by specifying a user name and password.
  • Example#2439 - Connect on a specified port.
  • Example#2440 - functionname example
  • Example#2441 - sqlsrv_execute example
  • Example#2442 - Retrieving an associative array.
  • Example#2443 - Retrieving a numeric array.
  • Example#2444 - sqlsrv_fetch_object example
  • Example#2445 - sqlsrv_fetch example
  • Example#2446 - sqlsrv_field_metadata example
  • Example#2447 - sqlsrv_free_stmt example
  • Example#2448 - sqlsrv_get_field example
  • Example#2449 - sqlsrv_has_rows example
  • Example#2450 - sqlsrv_next_result example
  • Example#2451 - sqlsrv_num_fields example
  • Example#2452 - sqlsrv_num_rows example
  • Example#2453 - sqlsrv_prepare example
  • Example#2454 - sqlsrv_query example
  • Example#2455 - sqlsrv_rollback example
  • Example#2456 - sqlsrv_rows_affected example
  • Example#2457 - sqlsrv_send_stream_data example
  • Example#2458 - sqlsrv_server_info example
  • Example#2459 - Putting and getting a key-value pair
  • Example#2460 - TokyoTyrant::add example
  • Example#2461 - TokyoTyrant::connect example
  • Example#2462 - TokyoTyrant::connectUri example
  • Example#2463 - TokyoTyrant::copy example
  • Example#2464 - TokyoTyrant::ext example
  • Example#2465 - TokyoTyrant::fwmKeys example
  • Example#2466 - TokyoTyrant::get example
  • Example#2467 - TokyoTyrant::getIterator example
  • Example#2468 - TokyoTyrant::num example
  • Example#2469 - TokyoTyrant::out example
  • Example#2470 - TokyoTyrant::put example
  • Example#2471 - TokyoTyrant::putCat example
  • Example#2472 - tokyotyrant::putKeep example
  • Example#2473 - TokyoTyrant::putNr example
  • Example#2474 - TokyoTyrant::putShl example
  • Example#2475 - TokyoTyrant::setMaster example
  • Example#2476 - TokyoTyrant::size example
  • Example#2477 - TokyoTyrant::stat example
  • Example#2478 - TokyoTyrant::vanish example
  • Example#2479 - TokyoTyrantTable::genUid example
  • Example#2480 - TokyoTyrantTable::get example
  • Example#2481 - TokyoTyrantTable::getIterator example
  • Example#2482 - TokyoTyrantTable::getQuery example
  • Example#2483 - TokyoTyrantTable::out example
  • Example#2484 - TokyoTyrantTable::put example
  • Example#2485 - TokyoTyrantTable::putCat example
  • Example#2486 - TokyoTyrantTable::putKeep example
  • Example#2487 - TokyoTyrantQuery::addCond example
  • Example#2488 - TokyoTyrantQuery::__construct example
  • Example#2489 - TokyoTyrantQuery::count example
  • Example#2490 - TokyoTyrantQuery iterator example
  • Example#2491 - TokyoTyrantQuery::hint example
  • Example#2492 - TokyoTyrantQuery iterator example
  • Example#2493 - TokyoTyrantQuery::metaSearch example
  • Example#2494 - TokyoTyrantQuery iterator example
  • Example#2495 - TokyoTyrantQuery::out example
  • Example#2496 - TokyoTyrantQuery iterator example
  • Example#2497 - TokyoTyrantQuery::search example
  • Example#2498 - TokyoTyrantQuery iterator example
  • Example#2499 - TokyoTyrantIterator::__construct example
  • Example#2500 - cal_days_in_month Beispiel
  • Example#2501 - cal_from_jd Beispiel
  • Example#2502 - cal_info Beispiel
  • Example#2503 - easter_date Beispiel
  • Example#2504 - easter_days Beispiel
  • Example#2505 - Caledar Funktionen
  • Example#2506 - Überlaufverhalten
  • Example#2507 - jdtojewish-Beispiel
  • Example#2508 - DateTimeImmutable::add/sub add intervals which cover elapsed time
  • Example#2509 - DateTimeImmutable::modify and strtotime increment or decrement individual component values
  • Example#2510 - Adding or subtracting times can over- or underflow dates
  • Example#2511 - DateTime::add Beispiel
  • Example#2512 - Weitere DateTime::add Beispiele
  • Example#2513 - Vorsicht beim Addieren von Monaten
  • Example#2514 - DateTime::__construct example
  • Example#2515 - Intricacies of DateTime::__construct
  • Example#2516 - DateTime::createFromFormat example
  • Example#2517 - Intricacies of DateTime::createFromFormat
  • Example#2518 - Format string with literal characters
  • Example#2519 - Creating a mutable date time object
  • Example#2520 - Creating a mutable date time object
  • Example#2521 - DateTime::getLastErrors Beispiel
  • Example#2522 - DateTime::modify Beispiel
  • Example#2523 - Vorsicht beim Addieren oder Subtrahieren von Monaten
  • Example#2524 - DateTime::setDate example
  • Example#2525 - Values exceeding ranges are added to their parent values
  • Example#2526 - DateTime::setISODate example
  • Example#2527 - Values exceeding ranges are added to their parent values
  • Example#2528 - Finding the month a week is in
  • Example#2529 - DateTime::setTime example
  • Example#2530 - Values exceeding ranges are added to their parent values
  • Example#2531 - DateTime::setTimestamp Beispiel
  • Example#2532 - DateTime::setTimestamp Alternative in PHP 5.2
  • Example#2533 - DateTime::setTimeZone Beispiel
  • Example#2534 - DateTime::sub Beispiel
  • Example#2535 - Weitere DateTime::sub Beispiele
  • Example#2536 - Vorsicht beim Subtrahieren von Monaten
  • Example#2537 - Creating an immutable date time object
  • Example#2538 - Creating an immutable date time object
  • Example#2539 - DateTime::diff example
  • Example#2540 - DateTime object comparison
  • Example#2541 - DateTime::format example
  • Example#2542 - DateTime::getOffset example
  • Example#2543 - DateTime::getTimestamp example
  • Example#2544 - DateTime::getTimezone example
  • Example#2545 - Fehler beim Initialisieren von DateTimeZone abfangen
  • Example#2546 - DateTimeZone::getLocation example
  • Example#2547 - DateTimeZone::getOffset examples
  • Example#2548 - A timezone_transitions_get example
  • Example#2549 - A timezone_abbreviations_list example
  • Example#2550 - A timezone_identifiers_list example
  • Example#2551 - DateInterval Beispiel
  • Example#2552 - Parsen von gültigen Datum-Intervallen
  • Example#2553 - DateInterval example
  • Example#2554 - DateInterval and carry over points
  • Example#2555 - DateInterval and DateTime::diff with the %a and %d modifiers
  • Example#2556 - DatePeriod Beispiel
  • Example#2557 - DatePeriod Beispiel mit DatePeriod::EXCLUDE_START_DATE
  • Example#2558 - DatePeriod::getDateInterval example
  • Example#2559 - DatePeriod::getEndDate example
  • Example#2560 - DatePeriod::getEndDate without an end date
  • Example#2561 - DatePeriod::getStartDate example
  • Example#2562 - checkdate-Beispiel
  • Example#2563 - Getting the default timezone
  • Example#2564 - Getting the abbreviation of a timezone
  • Example#2565 - Ermittlung der Standard-Zeitzone
  • Example#2566 - date_parse_from_format example
  • Example#2567 - A date_parse example
  • Example#2568 - date_parse with relative formats
  • Example#2569 - A date_sun_info example
  • Example#2570 - Polar night
  • Example#2571 - Midnight sun
  • Example#2572 - date_sunrise example
  • Example#2573 - No sunrise
  • Example#2574 - date_sunset example
  • Example#2575 - No sunset
  • Example#2576 - date-Beispiele
  • Example#2577 - Escaping von Zeichen in date
  • Example#2578 - date und mktime-Beispiele
  • Example#2579 - date-Formatierungen
  • Example#2580 - getdate-Beispiel
  • Example#2581 - gettimeofday-Beispiel
  • Example#2582 - gmdate-Beispiel
  • Example#2583 - Grundlegendes gmmktime Beispiel
  • Example#2584 - gmstrftime-Beispiel
  • Example#2585 - idate example
  • Example#2586 - localtime-Beispiel
  • Example#2587 - Zeitmessung einer Skriptausführung mit microtime
  • Example#2588 - Zeitmessung einer Skriptausführung in PHP 5
  • Example#2589 - microtime und REQUEST_TIME_FLOAT (ab PHP 5.4.0)
  • Example#2590 - Einfaches mktime-Beispiel
  • Example#2591 - mktime-Beispiel
  • Example#2592 - Letzter Tag eines Monats
  • Example#2593 - strftime locale Beispiel
  • Example#2594 - ISO 8601:1988 Wochennummer Beispiel
  • Example#2595 - Plattform übergreifendes Beispiel unter Verwendung des %e Platzhalters
  • Example#2596 - Zeige alle bekannten und unbekannten Formate an.
  • Example#2597 - strptime example
  • Example#2598 - Ein strtotime-Beispiel
  • Example#2599 - Test auf Fehler
  • Example#2600 - time-Beispiel
  • Example#2601 - Ein timezone_name_from_abbr-Beispiel
  • Example#2602 - Getting the timezonedb version
  • Example#2603 - Measure several code blocks execution and get the total
  • Example#2604 - Schließen eines geöffneten Dateideskriptors
  • Example#2605 - Setzen und Löschen einer Sperre
  • Example#2606 - Öffnen eines Dateideskriptors
  • Example#2607 - Positionieren in einer Datei
  • Example#2608 - Setting the baud rate on a serial port
  • Example#2609 - chdir Beispiel
  • Example#2610 - chroot Beispiel
  • Example#2611 - closedir Beispiel
  • Example#2612 - dir Beispiel
  • Example#2613 - getcwd Beispiel
  • Example#2614 - opendir Beispiel
  • Example#2615 - Alle Einträge eines Verzeichnisses auflisten
  • Example#2616 - Listet alle Einträge des aktuellen Verzeichnisses auf und blendet dabei . und .. aus.
  • Example#2617 - Ein einfaches scandir-Beispiel
  • Example#2618 - A finfo_buffer example
  • Example#2619 - Ein finfo_file Beispiel
  • Example#2620 - Objektorientierter Stil
  • Example#2621 - Prozeduraler Stil
  • Example#2622 - mime_content_type Example
  • Example#2623 - basename Beispiel
  • Example#2624 - Gruppe einer Datei ändern
  • Example#2625 - Einfache chown-Benutzung
  • Example#2626 - clearstatcache Beispiel
  • Example#2627 - copy Beispiel
  • Example#2628 - dirname Beispiel
  • Example#2629 - disk_free_space Beispiel
  • Example#2630 - disk_total_space Beispiel
  • Example#2631 - Ein einfaches fclose Beispiel
  • Example#2632 - Zeitüberschreitungen mit feof abhandeln
  • Example#2633 - feof Beispiel mit einem ungültigen Dateizeiger
  • Example#2634 - File write example using fflush
  • Example#2635 - Ein fgetc Beispiel
  • Example#2636 - Lies und gib den gesamten Inhalt einer CSV Datei aus
  • Example#2637 - Eine Datei Zeile für Zeile lesen
  • Example#2638 - Reading a PHP file line-by-line
  • Example#2639 - Prüfung, ob eine Datei existiert
  • Example#2640 - Holen und Ausgeben des Quelltextes der Startseite einer Webseite
  • Example#2641 - Suche im include_path
  • Example#2642 - Lesen einen Abschnitts einer Datei
  • Example#2643 - Nutzung von Stream-Contexten
  • Example#2644 - Einfaches Verwendungsbeispiel
  • Example#2645 - Verwendung der Flags
  • Example#2646 - file-Beispiel
  • Example#2647 - fileatime Beispiel
  • Example#2648 - Ein filectime Beispiel
  • Example#2649 - Finding the group of a file
  • Example#2650 - Vergleich des Inode einer Datei mit dem der derzeitigen Datei
  • Example#2651 - filemtime Beispiel
  • Example#2652 - Den besitzer einer Datei finden
  • Example#2653 - Zeige Rechte als Oktal-Wert an
  • Example#2654 - Zeige komplette Rechte an
  • Example#2655 - filesize Beispiel
  • Example#2656 - filetype Beispiel
  • Example#2657 - Einfache, exklusive Sperre
  • Example#2658 - Verwendung von LOCK_NB
  • Example#2659 - Checking a color name against a shell wildcard pattern
  • Example#2660 - fopen Beispiele
  • Example#2661 - Nutzung von fpassthru mit binären Dateien
  • Example#2662 - fputcsv example
  • Example#2663 - Ein einfaches fread-Beispiel
  • Example#2664 - Ein fread-Beispiel mit einer Binärdatei
  • Example#2665 - fread-Beispiele für entfernte Dateien
  • Example#2666 - fscanf Beispiel
  • Example#2667 - Inhalt der users.txt Datei
  • Example#2668 - fseek Beispiel
  • Example#2669 - fstat-Beispiel
  • Example#2670 - ftell Beispiel
  • Example#2671 - Dateikürzungsbeispiel
  • Example#2672 - Ein einfaches Beispiel für fwrite
  • Example#2673 - Einfacher Ersatz von opendir etc.
  • Example#2674 - is_dir-Beispiel
  • Example#2675 - is_executable-Beispiel
  • Example#2676 - is_file-Beispiel
  • Example#2677 - Erstelle und bestätige, dass eine Datei ein symbolischer Link ist
  • Example#2678 - is_readable-Beispiel
  • Example#2679 - is_uploaded_file-Beispiel
  • Example#2680 - is_writable-Beispiel
  • Example#2681 - Changing the group of a symbolic link
  • Example#2682 - Changing the owner of a symbolic link
  • Example#2683 - Erstellen eines harten Links
  • Example#2684 - linkinfo-Beispiel
  • Example#2685 - Vergleich von stat und lstat
  • Example#2686 - mkdir-Beispiel
  • Example#2687 - mkdir mit dem recursive-Parameter benutzen
  • Example#2688 - Hochladen mehrerer Dateien
  • Example#2689 - Inhalt der sample.ini
  • Example#2690 - parse_ini_file-Beispiel
  • Example#2691 - parse_ini_file parst eine php.ini
  • Example#2692 - pathinfo-Beispiel
  • Example#2693 - pathinfo-Beispiel für den Unterschied zwischen einer leeren und keiner Erweiterung
  • Example#2694 - pathinfo-Beispiel für eine Punktdatei
  • Example#2695 - pclose Beispiel
  • Example#2696 - popen Beispiel
  • Example#2697 - popen Beispiel
  • Example#2698 - Einen Download unter Verwendung von readfile erzwingen
  • Example#2699 - readlink example
  • Example#2700 - realpath_cache_get example
  • Example#2701 - realpath_cache_size example
  • Example#2702 - realpath
  • Example#2703 - realpath auf Windows
  • Example#2704 - Beispiel mit rename
  • Example#2705 - Beispiel zum Überschreiben mit rewind
  • Example#2706 - rmdir Beispiel
  • Example#2707 - stat-Beispiel
  • Example#2708 - Nutzung von stat-Informationen zusammen mit touch
  • Example#2709 - Einen symbolischen Link erzeugen
  • Example#2710 - tempnam-Beispiel
  • Example#2711 - tmpfile-Beispiel
  • Example#2712 - touch-Beispiel
  • Example#2713 - Nutzung von touch mit dem time-Parameter
  • Example#2714 - umask-Beispiel
  • Example#2715 - Einfache Nutzung von unlink
  • Example#2716 - Example usage of inotify
  • Example#2717 - setproctitle example
  • Example#2718 - setthreadtitle example
  • Example#2719 - Checks if system administrator has signed the file
  • Example#2720 - Prints names of all extended attributes of file
  • Example#2721 - Removes all extended attributes of a file
  • Example#2722 - Sets extended attributes on .wav file
  • Example#2723 - xattr_supported example
  • Example#2724 - xdiff_file_bdiff_size example
  • Example#2725 - xdiff_file_bdiff example
  • Example#2726 - xdiff_file_bpatch example
  • Example#2727 - xdiff_file_diff_binary example
  • Example#2728 - xdiff_file_diff example
  • Example#2729 - xdiff_file_merge3 example
  • Example#2730 - xdiff_file_patch_binary example
  • Example#2731 - xdiff_file_patch example
  • Example#2732 - Patch reversing example
  • Example#2733 - xdiff_file_rabdiff example
  • Example#2734 - xdiff_string_bdiff_size example
  • Example#2735 - xdiff_string_diff example
  • Example#2736 - xdiff_string_patch example
  • Example#2737 - Enchant Usage Example
  • Example#2738 - List the backends provided by the given broker
  • Example#2739 - A enchant_broker_dict_exists example
  • Example#2740 - List all available dictionaries for one broker
  • Example#2741 - A enchant_broker_request_dict example
  • Example#2742 - Adding a word to a PWL
  • Example#2743 - A enchant_dict_describe example
  • Example#2744 - A enchant_dict_quick_check example
  • Example#2745 - A enchant_dict_suggest example
  • Example#2746 - Beispiel.
  • Example#2747 - Using Gender\Gender::country
  • Example#2748 - bindtextdomain-Beispiel
  • Example#2749 - gettext-Check
  • Example#2750 - ngettext-Beispiel
  • Example#2751 - Beispiel für iconv_get_encoding
  • Example#2752 - iconv_mime_decode_headers example
  • Example#2753 - iconv_mime_decode example
  • Example#2754 - iconv_mime_encode example
  • Example#2755 - iconv_set_encoding Beispiel:
  • Example#2756 - iconv-Beispiel:
  • Example#2757 - ob_iconv_handler-Beispiel:
  • Example#2758 - Example of using the procedural API
  • Example#2759 - Example of using the object-oriented API
  • Example#2760 - FRENCH_COLLATION rules
  • Example#2761 - ALTERNATE_HANDLING rules
  • Example#2762 - CASE_FIRST rules
  • Example#2763 - CASE_LEVEL rules
  • Example#2764 - collator_asortexample
  • Example#2765 - collator_compareexample
  • Example#2766 - Collator::__construct example
  • Example#2767 - collator_create example
  • Example#2768 - collator_get_attribute example
  • Example#2769 - collator_get_error_code example
  • Example#2770 - collator_get_error_message example
  • Example#2771 - collator_get_locale example
  • Example#2772 - collator_get_sort_keyexample
  • Example#2773 - collator_get_strength example
  • Example#2774 - collator_set_attribute example
  • Example#2775 - collator_set_strength example
  • Example#2776 - collator_sort_with_sort_keys example
  • Example#2777 - collator_sort example
  • Example#2778 - numfmt_create example
  • Example#2779 - NumberFormatter::create example
  • Example#2780 - numfmt_format_currency example
  • Example#2781 - OO example
  • Example#2782 - numfmt_format example
  • Example#2783 - OO example
  • Example#2784 - numfmt_get_attribute example
  • Example#2785 - OO example
  • Example#2786 - numfmt_get_error_code example
  • Example#2787 - OO example
  • Example#2788 - numfmt_get_error_message example
  • Example#2789 - OO example
  • Example#2790 - numfmt_get_locale example
  • Example#2791 - numfmt_get_pattern example
  • Example#2792 - OO example
  • Example#2793 - numfmt_get_symbol example
  • Example#2794 - OO example
  • Example#2795 - numfmt_get_text_attribute example
  • Example#2796 - OO example
  • Example#2797 - numfmt_parse_currency example
  • Example#2798 - OO example
  • Example#2799 - numfmt_parse example
  • Example#2800 - OO example
  • Example#2801 - numfmt_set_attribute example
  • Example#2802 - OO example
  • Example#2803 - numfmt_set_pattern example
  • Example#2804 - OO example
  • Example#2805 - numfmt_set_symbol example
  • Example#2806 - OO example
  • Example#2807 - numfmt_set_text_attribute example
  • Example#2808 - OO example
  • Example#2809 - locale_accept_from_http example
  • Example#2810 - OO example
  • Example#2811 - locale_compose example
  • Example#2812 - OO example
  • Example#2813 - locale_filter_matches example
  • Example#2814 - OO example
  • Example#2815 - locale_get_all_variants example
  • Example#2816 - OO example
  • Example#2817 - locale_get_default example
  • Example#2818 - OO example
  • Example#2819 - locale_get_display_language example
  • Example#2820 - OO example
  • Example#2821 - locale_get_display_name example
  • Example#2822 - OO example
  • Example#2823 - locale_get_display_region example
  • Example#2824 - OO example
  • Example#2825 - locale_get_display_script example
  • Example#2826 - OO example
  • Example#2827 - locale_get_display_variant example
  • Example#2828 - OO example
  • Example#2829 - locale_get_keywords example
  • Example#2830 - OO example
  • Example#2831 - locale_get_primary_language example
  • Example#2832 - OO example
  • Example#2833 - locale_get_region example
  • Example#2834 - OO example
  • Example#2835 - locale_get_script example
  • Example#2836 - OO example
  • Example#2837 - locale_lookup example
  • Example#2838 - OO example
  • Example#2839 - locale_parse example
  • Example#2840 - OO example
  • Example#2841 - locale_set_default example
  • Example#2842 - OO example
  • Example#2843 - Normalizer::getRawDecomposition example
  • Example#2844 - normalizer_is_normalized example
  • Example#2845 - OO example
  • Example#2846 - normalizer_normalize example
  • Example#2847 - OO example
  • Example#2848 - msgfmt_create example
  • Example#2849 - OO example
  • Example#2850 - msgfmt_format_message example
  • Example#2851 - OO example
  • Example#2852 - msgfmt_format example
  • Example#2853 - OO example
  • Example#2854 - msgfmt_get_error_message example
  • Example#2855 - OO example
  • Example#2856 - msgfmt_get_locale example
  • Example#2857 - OO example
  • Example#2858 - msgfmt_get_pattern example
  • Example#2859 - OO example
  • Example#2860 - msgfmt_parse_message example
  • Example#2861 - OO example
  • Example#2862 - msgfmt_parse example
  • Example#2863 - OO example
  • Example#2864 - msgfmt_set_pattern example
  • Example#2865 - OO example
  • Example#2866 - IntlCalendar::add
  • Example#2867 - IntlCalendar::after
  • Example#2868 - IntlCalendar::clear examples
  • Example#2869 - IntlCalendar::createInstance
  • Example#2870 - IntlCalendar::equals
  • Example#2871 - IntlCalendar::fieldDifference
  • Example#2872 - IntlCalendar::fromDateTime
  • Example#2873 - IntlCalendar::get
  • Example#2874 - IntlCalendar::getActualMaximum
  • Example#2875 - IntlCalendar::getAvailableLocales
  • Example#2876 - IntlCalendar::getDayOfWeekType
  • Example#2877 - IntlCalendar::getErrorCode and IntlCalendar::getErrorMessage
  • Example#2878 - IntlCalendar::getErrorMessage
  • Example#2879 - IntlCalendar::getFirstDayOfWeek
  • Example#2880 - IntlCalendar::getKeyworkValuesForLocale
  • Example#2881 - Maxima examples
  • Example#2882 - IntlCalendar::getLocale
  • Example#2883 - IntlCalendar::getMinimalDaysInFirstWeek
  • Example#2884 - IntlCalendar::getNow
  • Example#2885 - IntlCalendar::getRepeatedWallTimeOption
  • Example#2886 - IntlCalendar::getSkippedWallTimeOption
  • Example#2887 - IntlCalendar::getTime
  • Example#2888 - IntlCalendar::getTimeZone
  • Example#2889 - IntlCalendar::getType
  • Example#2890 - IntlCalendar::inDaylightTime
  • Example#2891 - IntlCalendar::isEquivalentTo
  • Example#2892 - IntlCalendar::isLenient
  • Example#2893 - IntlCalendar::isWeekend
  • Example#2894 - IntlCalendar::roll
  • Example#2895 - IntlCalendar::set
  • Example#2896 - IntlCalendar::setFirstDayOfWeek
  • Example#2897 - IntlCalendar::setTime
  • Example#2898 - IntlCalendar::setTimeZone
  • Example#2899 - IntlCalendar::toDateTime
  • Example#2900 - datefmt_create example
  • Example#2901 - OO example
  • Example#2902 - datefmt_format example
  • Example#2903 - OO example
  • Example#2904 - With IntlCalendar object
  • Example#2905 - IntlDateFormatter::formatObject examples
  • Example#2906 - datefmt_get_calendar example
  • Example#2907 - OO example
  • Example#2908 - datefmt_get_datetype example
  • Example#2909 - OO example
  • Example#2910 - datefmt_get_error_code example
  • Example#2911 - OO example
  • Example#2912 - datefmt_get_error_message example
  • Example#2913 - OO example
  • Example#2914 - datefmt_get_locale example
  • Example#2915 - OO example
  • Example#2916 - datefmt_get_pattern example
  • Example#2917 - OO example
  • Example#2918 - datefmt_get_timetype example
  • Example#2919 - OO example
  • Example#2920 - datefmt_get_timezone_id example
  • Example#2921 - OO example
  • Example#2922 - IntlDateFormatter::getCalendarObject example
  • Example#2923 - IntlDateFormatter::getTimeZone examples
  • Example#2924 - datefmt_is_lenient example
  • Example#2925 - OO example
  • Example#2926 - datefmt_localtime example
  • Example#2927 - OO example
  • Example#2928 - OO example
  • Example#2929 - datefmt_parse example
  • Example#2930 - datefmt_set_calendar example
  • Example#2931 - OO example
  • Example#2932 - Example with IntlCalendar argument
  • Example#2933 - datefmt_set_lenient example
  • Example#2934 - OO example
  • Example#2935 - datefmt_set_pattern example
  • Example#2936 - OO example
  • Example#2937 - IntlDateFormatter::setTimeZone examples
  • Example#2938 - resourcebundle_count example
  • Example#2939 - OO example
  • Example#2940 - resourcebundle_create example
  • Example#2941 - ResourceBundle::create example
  • Example#2942 - resourcebundle_get_error_code example
  • Example#2943 - OO example
  • Example#2944 - resourcebundle_get_error_message example
  • Example#2945 - OO example
  • Example#2946 - resourcebundle_get example
  • Example#2947 - OO example
  • Example#2948 - resourcebundle_locales example
  • Example#2949 - OO example
  • Example#2950 - Spoofchecker::areConfusable example
  • Example#2951 - Spoofchecker::isSuspicious example
  • Example#2952 - Retrieving the registered transliterator IDs
  • Example#2953 - Converting escaped UTF-16 code units
  • Example#2954 - grapheme_extract example
  • Example#2955 - grapheme_stripos example
  • Example#2956 - grapheme_stristr example
  • Example#2957 - grapheme_strlen example
  • Example#2958 - grapheme_strpos example
  • Example#2959 - grapheme_strripos example
  • Example#2960 - grapheme_strrpos example
  • Example#2961 - grapheme_strstr example
  • Example#2962 - grapheme_substr example
  • Example#2963 - idn_to_ascii example
  • Example#2964 - idn_to_utf8 example
  • Example#2965 - Testen unterschiedlicher Codepoints
  • Example#2966 - Testen unterschiedlicher Codepoints
  • Example#2967 - Testen unterschiedlicher Codepoints
  • Example#2968 - Testen unterschiedlicher Codepoints
  • Example#2969 - Testen unterschiedlicher Codepoints
  • Example#2970 - Testen unterschiedlicher Codepoints
  • Example#2971 - Testen unterschiedlicher Codepoints
  • Example#2972 - Testen unterschiedlicher Codepoints
  • Example#2973 - Testen unterschiedlicher Codepoints
  • Example#2974 - Enumerating over a sample range of code points
  • Example#2975 - Enumerating over a sample range of code points
  • Example#2976 - Testen unterschiedlicher Codepoints
  • Example#2977 - Testen unterschiedlicher Codepoints
  • Example#2978 - Testen unterschiedlicher Codepoints
  • Example#2979 - Testen unterschiedlicher Codepoints
  • Example#2980 - Testen unterschiedlicher Codepoints
  • Example#2981 - Testen unterschiedlicher Eigenschaften
  • Example#2982 - Testen unterschiedlicher Eigenschaften
  • Example#2983 - Testen unterschiedlicher Eigenschaften
  • Example#2984 - Testen unterschiedlicher Codepoints
  • Example#2985 - Testen unterschiedlicher Eigenschaften
  • Example#2986 - Testen unterschiedlicher Eigenschaften
  • Example#2987 - Testen unterschiedlicher Eigenschaften
  • Example#2988 - Testen unterschiedlicher Eigenschaften
  • Example#2989 - Testen unterschiedlicher Eigenschaften
  • Example#2990 - Testen unterschiedlicher Eigenschaften
  • Example#2991 - Testen unterschiedlicher Codepoints
  • Example#2992 - Testen unterschiedlicher Codepoints
  • Example#2993 - Testen unterschiedlicher Codepoints
  • Example#2994 - Testen unterschiedlicher Codepoints
  • Example#2995 - Testen unterschiedlicher Codepoints
  • Example#2996 - Testen unterschiedlicher Codepoints
  • Example#2997 - Testen unterschiedlicher Codepoints
  • Example#2998 - Testen unterschiedlicher Codepoints
  • Example#2999 - Testen unterschiedlicher Codepoints
  • Example#3000 - Testen unterschiedlicher Codepoints
  • Example#3001 - Testen unterschiedlicher Codepoints
  • Example#3002 - Testen unterschiedlicher Codepoints
  • Example#3003 - Testen unterschiedlicher Codepoints
  • Example#3004 - Testen unterschiedlicher Codepoints
  • Example#3005 - Testen unterschiedlicher Codepoints
  • Example#3006 - Testen unterschiedlicher Codepoints
  • Example#3007 - Testen unterschiedlicher Codepoints
  • Example#3008 - Testen unterschiedlicher Codepoints
  • Example#3009 - Testen unterschiedlicher Codepoints
  • Example#3010 - Testen unterschiedlicher Codepoints
  • Example#3011 - Testen unterschiedlicher Codepoints
  • Example#3012 - Testen unterschiedlicher Codepoints
  • Example#3013 - Testen unterschiedlicher Codepoints
  • Example#3014 - Testen unterschiedlicher Codepoints
  • Example#3015 - Testen unterschiedlicher Codepoints
  • Example#3016 - Testen unterschiedlicher Codepoints
  • Example#3017 - Testen unterschiedlicher Codepoints
  • Example#3018 - Testen unterschiedlicher Codepoints
  • Example#3019 - Testen unterschiedlicher Codepoints
  • Example#3020 - Testen unterschiedlicher Codepoints
  • Example#3021 - Testen unterschiedlicher Codepoints
  • Example#3022 - Testen unterschiedlicher Codepoints
  • Example#3023 - intl_error_name example
  • Example#3024 - intl_get_error_code example
  • Example#3025 - intl_get_error_message example
  • Example#3026 - intl_is_failure example
  • Example#3027 - php.ini setting examples
  • Example#3028 - php.ini setting for EUC-JP users
  • Example#3029 - php.ini setting for SJIS users
  • Example#3030 - Disable HTTP input conversion in php.ini
  • Example#3031 - php.ini setting example
  • Example#3032 - Script example
  • Example#3033 - mb_convert_case example
  • Example#3034 - mb_convert_case example with non-Latin UTF-8 text
  • Example#3035 - mb_convert_encoding example
  • Example#3036 - mb_convert_kana example
  • Example#3037 - mb_convert_variables example
  • Example#3038 - map example
  • Example#3039 - map example escapes JavaScript string
  • Example#3040 - mb_detect_encoding example
  • Example#3041 - mb_detect_order examples
  • Example#3042 - Example showing useless detect orders
  • Example#3043 - mb_encode_mimeheader example
  • Example#3044 - map example
  • Example#3045 - mb_encode_numericentity example
  • Example#3046 - mb_encoding_aliases example
  • Example#3047 - mb_ereg_replace_callback example
  • Example#3048 - mb_ereg_replace_callback using anonymous function supported in PHP 5.3.0 or later
  • Example#3049 - mb_internal_encoding example
  • Example#3050 - mb_list_encodings example
  • Example#3051 - mb_output_handler example
  • Example#3052 - mb_preferred_mime_name example
  • Example#3053 - mb_strimwidth example
  • Example#3054 - mb_strtolower example
  • Example#3055 - mb_strtolower example with non-Latin UTF-8 text
  • Example#3056 - mb_strtoupper example
  • Example#3057 - mb_strtoupper example with non-Latin UTF-8 text
  • Example#3058 - mb_strwidth example
  • Example#3059 - mb_substitute_character example
  • Example#3060 - mb_substr_count example
  • Example#3061 - pspell_add_to_personal-Beispiel
  • Example#3062 - pspell_check-Beispiel
  • Example#3063 - pspell_add_to_personal-Beispiel
  • Example#3064 - pspell_config_create-Beispiel
  • Example#3065 - pspell_config_ignore-Beispiel
  • Example#3066 - pspell_config_mode-Beispiel
  • Example#3067 - pspell_config_personal-Beispiel
  • Example#3068 - pspell_config_repl-Beispiel
  • Example#3069 - pspell_config_runtogether-Beispiel
  • Example#3070 - pspell_new_config-Beispiel
  • Example#3071 - pspell_new_personal-Beispiel
  • Example#3072 - pspell_new-Beispiel
  • Example#3073 - pspell_add_to_personal-Beispiel
  • Example#3074 - pspell_store_replacement-Beispiel
  • Example#3075 - pspell_suggest-Beispiel
  • Example#3076 - Einfaches recode_file-Beispiel
  • Example#3077 - Einfaches recode_string-Beispiel:
  • Example#3078 - exif_imagetype-Beispiel
  • Example#3079 - exif_read_data-Beispiel
  • Example#3080 - exif_read_data mit Streams; verfügbar von PHP 7.2.0 an
  • Example#3081 - exif_tagname Beispiel
  • Example#3082 - exif_thumbnail Beispiel
  • Example#3083 - PNG erzeugen mit PHP
  • Example#3084 - Wasserzeichen mit Hilfe von Alpha-Kanälen zufügen
  • Example#3085 - Erstellen eines transparenten Wasserzeichens mit imagecopymerge
  • Example#3086 - Benutztung von gd_info
  • Example#3087 - getimagesize() und MIME-Typ
  • Example#3088 - getimagesize-Beispiel
  • Example#3089 - getimagesize (URL)
  • Example#3090 - getimagesize() mit Rückgabe von IPTC
  • Example#3091 - getimagesizefromstring example
  • Example#3092 - image_type_to_extension example
  • Example#3093 - image_type_to_mime_type example
  • Example#3094 - image2wbmp example
  • Example#3095 - imageaffinematrixconcat example
  • Example#3096 - imageaffinematrixget example
  • Example#3097 - imagealphablending usage example
  • Example#3098 - A comparison of two lines, one with anti-aliasing switched on
  • Example#3099 - Zeichnen eines Kreises mittels imagearc
  • Example#3100 - Saving a BMP file
  • Example#3101 - imagechar-Beispiel
  • Example#3102 - imagecharup Beispiel
  • Example#3103 - imagecolorallocate Beispiel
  • Example#3104 - Example of using imagecolorallocatealpha
  • Example#3105 - Convert typical alpha values for use with imagecolorallocatealpha
  • Example#3106 - Zurgriff auf individuelle RGB-Werte
  • Example#3107 - Menschenlesbare RGB-Werte unter Verwendung von imagecolorsforindex
  • Example#3108 - Suche nach einem Satz von Farben in einem Bild
  • Example#3109 - Search for a set of colors in an image
  • Example#3110 - Example of using imagecolorclosesthwb
  • Example#3111 - Verwendung von imagecolordeallocate
  • Example#3112 - Ermittle Farben des GD-Logos
  • Example#3113 - Get colors from the GD logo
  • Example#3114 - imagecolormatch example
  • Example#3115 - Verwendung von imagecoloresolve um Farben aus einem Bild auszulesen
  • Example#3116 - Using imagecoloresolvealpha to get colors from an image
  • Example#3117 - imagecolorset Beispiel
  • Example#3118 - imagecolorsforindex Beispiel
  • Example#3119 - Ermitteln der Gesamtanzahl von Farben in einem Bild unter Verwendung von imagecolorstotal
  • Example#3120 - imagecolortransparent Beispiel
  • Example#3121 - Embossing the PHP.net logo
  • Example#3122 - Gaussian blur
  • Example#3123 - Beschneiden des PHP.net Logos
  • Example#3124 - Merging two copies of the PHP.net logo with 75% transparency
  • Example#3125 - imagecopymergegray usage
  • Example#3126 - Simple example
  • Example#3127 - Resampling an image proportionally
  • Example#3128 - Ein Bild skalieren
  • Example#3129 - Erzeugung eines neuen GD-Bild-Streams und Ausgabe des Bildes:
  • Example#3130 - Convert an BMP image to a PNG image using imagecreatefrombmp
  • Example#3131 - imagecreatefromgd2 example
  • Example#3132 - imagecreatefromgd2part example
  • Example#3133 - imagecreatefromgd example
  • Example#3134 - Beispiel zur Behandlung von Fehlern beim Einlesen einer GIF
  • Example#3135 - Beispiel für Fehlerbehandlung beim Laden eines JPEG
  • Example#3136 - Beispiel für Fehlerbehandlung beim Laden eines PNG
  • Example#3137 - imagecreatefromstring example
  • Example#3138 - Example to handle an error during loading of a WBMP
  • Example#3139 - Convert an WebP image to a jpeg image using imagecreatefromwebp
  • Example#3140 - Convert an XBM image to a png image using imagecreatefromxbm
  • Example#3141 - Creating an image instance using imagecreatefromxpm
  • Example#3142 - Creating a new GD image stream and outputting an image.
  • Example#3143 - imagecrop example
  • Example#3144 - Proper handling of auto-cropping
  • Example#3145 - imagedashedline Beispiel
  • Example#3146 - Alternative zu imagedashedline
  • Example#3147 - Verwendung von imagedestroy
  • Example#3148 - imageellipse example
  • Example#3149 - imagefill Beispiel
  • Example#3150 - Creating a 3D looking pie
  • Example#3151 - imagefilledellipse example
  • Example#3152 - imagefilledpolygon Beispiel
  • Example#3153 - imagefilledrectangle Verwendung
  • Example#3154 - Füllen einer Ellipse mit einer Farbe
  • Example#3155 - imagefilter grayscale example
  • Example#3156 - imagefilter brightness example
  • Example#3157 - imagefilter colorize example
  • Example#3158 - imagefilter negate example
  • Example#3159 - imagefilter pixelate example
  • Example#3160 - imagefilter scatter example
  • Example#3161 - Flips an image vertically
  • Example#3162 - Flips the image horizontally
  • Example#3163 - Verwendung von imagefontheight mit integrierten Schriftarten
  • Example#3164 - Verwendung von imagefontheight mit imageloadfont
  • Example#3165 - Verwendung von imagefontwidth mit integrierten Schriftarten
  • Example#3166 - Verwendung von imagefontwidth mit imageloadfont
  • Example#3167 - imageftbbox example
  • Example#3168 - imagefttext example
  • Example#3169 - imagegammacorrect Verwendung
  • Example#3170 - Outputting a GD2 image
  • Example#3171 - Saving a GD2 image
  • Example#3172 - Outputting a GD image
  • Example#3173 - Saving a GD image
  • Example#3174 - imagegetclip example
  • Example#3175 - Ein Bild mittels imagegif ausgeben
  • Example#3176 - Eine PNG-Datei mit imagegif in GIF konvertieren
  • Example#3177 - imagegrabscreen example
  • Example#3178 - imagegrabwindow example
  • Example#3179 - Aktiviere Interlacing unter Verendung von imageinterlace
  • Example#3180 - Simple detection of true color image instances using imageistruecolor
  • Example#3181 - Ein Bild an den Browser ausgeben
  • Example#3182 - Ein Bild in eine Datei speichern
  • Example#3183 - Das Bild mit 75% Qualität an den Browser ausgeben
  • Example#3184 - imagelayereffect example
  • Example#3185 - Zeichnen einer dicken Linie
  • Example#3186 - imageloadfont Verwendungsbeispiel
  • Example#3187 - imageopenpolygon example
  • Example#3188 - imagepalettecopy example
  • Example#3189 - Converts any image resource to true color
  • Example#3190 - imagepolygon example
  • Example#3191 - Einfaches imagerectangle Beispiel
  • Example#3192 - Setting and getting the resolution of an image
  • Example#3193 - Rotate an image 180 degrees
  • Example#3194 - Grundlegende imagesavealpha Verwendung
  • Example#3195 - imagesetbrush example
  • Example#3196 - imagesetinterpolation example
  • Example#3197 - imagesetpixel Beispiel
  • Example#3198 - imagesetstyle example
  • Example#3199 - imagesetthickness example
  • Example#3200 - imagesettile example
  • Example#3201 - imagestring Beispiel
  • Example#3202 - imagestringup Beispiel
  • Example#3203 - Verwenden von imagesx
  • Example#3204 - Verwenden von imagesy
  • Example#3205 - Converting a true color image to a palette-based image
  • Example#3206 - imagettfbbox Beispiel
  • Example#3207 - imagettftext Beispiel
  • Example#3208 - Prüfe PNG-Unterstützung
  • Example#3209 - Outputting a WBMP image
  • Example#3210 - Saving the WBMP image
  • Example#3211 - Outputting the image with a different foreground
  • Example#3212 - Saving an WebP file
  • Example#3213 - Saving an XBM file
  • Example#3214 - Saving an XBM file with a different foreground color
  • Example#3215 - Embedding IPTC data into a JPEG
  • Example#3216 - iptcparse() used together with getimagesize
  • Example#3217 - jpeg2wbmp example
  • Example#3218 - png2wbmp example
  • Example#3219 - Gmagick Example
  • Example#3220 - Gmagick::despeckleimage example
  • Example#3221 - Gmagick::setCompressionQuality
  • Example#3222 - Creating a thumbnail in Imagick
  • Example#3223 - Make a thumbnail of all JPG files in a directory
  • Example#3224 - Creating a reflection of an image
  • Example#3225 - Filling text with gradient
  • Example#3226 - Read in GIF image and resize all frames
  • Example#3227 - Create a PHP logo
  • Example#3228 - Using Imagick::adaptiveBlurImage:
  • Example#3229 - Using Imagick::adaptiveResizeImage
  • Example#3230 - A Imagick::adaptiveSharpenImage example
  • Example#3231 - Imagick::adaptiveThresholdImage
  • Example#3232 - Imagick::addNoiseImage
  • Example#3233 - Imagick::affineTransformImage
  • Example#3234 - Using Imagick::annotateImage:
  • Example#3235 - Imagick::appendImages example
  • Example#3236 - Imagick::autoLevelImage
  • Example#3237 - Imagick::blackThresholdImage
  • Example#3238 - Imagick::blueShiftImage
  • Example#3239 - Using Imagick::blurImage:
  • Example#3240 - Imagick::borderImage
  • Example#3241 - Imagick::brightnessContrastImage
  • Example#3242 - Imagick::charcoalImage
  • Example#3243 - Using Imagick::chopImage:
  • Example#3244 - Imagick object cloning in different versions of imagick
  • Example#3245 - Using Imagick::clutImage:
  • Example#3246 - Imagick::colorizeImage
  • Example#3247 - Imagick::colorMatrixImage
  • Example#3248 - Using Imagick::commentImage:
  • Example#3249 - Using Imagick::compareImageLayers
  • Example#3250 - Using Imagick::compareImages:
  • Example#3251 - Using Imagick::compositeImage:
  • Example#3252 - Imagick::contrastImage
  • Example#3253 - Imagick::convolveImage
  • Example#3254 - Imagick::cropImage
  • Example#3255 - Imagick::deskewImage
  • Example#3256 - Imagick::despeckleImage
  • Example#3257 - Using Imagick::distortImage:
  • Example#3258 - Imagick::edgeImage
  • Example#3259 - Imagick::embossImage
  • Example#3260 - Imagick::enhanceImage
  • Example#3261 - Imagick::equalizeImage
  • Example#3262 - Using Imagick::evaluateImage
  • Example#3263 - Using Imagick::exportImagePixels
  • Example#3264 - Imagick::filter
  • Example#3265 - Imagick::flipImage
  • Example#3266 - Imagick::floodfillPaintImage example
  • Example#3267 - Imagick::flopImage
  • Example#3268 - Imagick::forwardFourierTransformImage
  • Example#3269 - Imagick::frameImage
  • Example#3270 - Create a sinusoidal gradient
  • Example#3271 - Create a gradient from the polynomial (4x^2 - 4x + 1)
  • Example#3272 - Create a complex gradient from the polynomial (4x^2 - 4x^2 + 1) modulated by a sinusoidal gradient
  • Example#3273 - Imagick::fxImage
  • Example#3274 - Imagick::gammaImage
  • Example#3275 - Imagick::gaussianBlurImage
  • Example#3276 - Imagick::getImageGeometry
  • Example#3277 - Generates Imagick::getImageHistogram
  • Example#3278 - Using Imagick::getImageLength:
  • Example#3279 - Using Imagick::getImageProperties:
  • Example#3280 - Using Imagick::getImageProperty:
  • Example#3281 - Using Imagick::getIteratorIndex:
  • Example#3282 - Imagick::getPixelIterator
  • Example#3283 - Imagick::getPixelRegionIterator example
  • Example#3284 - Getting the size of a raw RGB image set at 200x400, after scaling to 400x800 (compared to width / height)
  • Example#3285 - Imagick::haldClutImage
  • Example#3286 - Imagick::identifyFormat
  • Example#3287 - Example Result Format
  • Example#3288 - Imagick::implodeImage
  • Example#3289 - Imagick::importImagePixels example
  • Example#3290 - Imagick::levelImage
  • Example#3291 - Imagick::linearStretchImage
  • Example#3292 - Imagick::magnifyImage
  • Example#3293 - Imagick::medianFilterImage
  • Example#3294 - Imagick::mergeImageLayers
  • Example#3295 - Imagick::modulateImage
  • Example#3296 - Convolve Imagick::morphology
  • Example#3297 - Correlate Imagick::morphology
  • Example#3298 - Erode Imagick::morphology
  • Example#3299 - Erode Intensity Imagick::morphology
  • Example#3300 - Dilate Imagick::morphology
  • Example#3301 - Dilate intensity Imagick::morphology
  • Example#3302 - Distance with Chebyshev kernel Imagick::morphology
  • Example#3303 - Distance with Manhattan kernel Imagick::morphology
  • Example#3304 - Distance with ocatagonal kernel Imagick::morphology
  • Example#3305 - Distance with Euclidean kernel Imagick::morphology
  • Example#3306 - Edge Imagick::morphology
  • Example#3307 - Open Imagick::morphology
  • Example#3308 - Open intensity Imagick::morphology
  • Example#3309 - Close Imagick::morphology
  • Example#3310 - Close Intensity Imagick::morphology
  • Example#3311 - Smooth Imagick::morphology
  • Example#3312 - Edge in Imagick::morphology
  • Example#3313 - Edge out Imagick::morphology
  • Example#3314 - The 'TopHat' method, or more specifically 'White Top Hat', returns the pixels that were removed by a Opening of the shape, that is the pixels that were removed to round off the points, and the connecting bridged between shapes. Imagick::morphology
  • Example#3315 - The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. Imagick::morphology
  • Example#3316 - Hit and Miss Imagick::morphology
  • Example#3317 - Thinning Imagick::morphology
  • Example#3318 - Thicken Imagick::morphology
  • Example#3319 - Thick to generate a convex hull Imagick::morphology
  • Example#3320 - Iterative morphology Imagick::morphology
  • Example#3321 - Helper functon to get an image silhouette Imagick::morphology
  • Example#3322 - Imagick::motionBlurImage
  • Example#3323 - Imagick::negateImage
  • Example#3324 - Using Imagick::newImage:
  • Example#3325 - Imagick::newPseudoImage
  • Example#3326 - Imagick::normalizeImage
  • Example#3327 - Imagick::oilPaintImage
  • Example#3328 - Using Imagick::optimizeImageLayers
  • Example#3329 - Imagick::orderedPosterizeImage
  • Example#3330 - Using Imagick::pingImageBlob
  • Example#3331 - Using Imagick::pingImageFile
  • Example#3332 - A Imagick::polaroidImage example
  • Example#3333 - Imagick::posterizeImage
  • Example#3334 - Imagick::quantizeImage
  • Example#3335 - Using Imagick::queryFontMetrics:
  • Example#3336 - Imagick::queryFonts
  • Example#3337 - Imagick::queryFormats
  • Example#3338 - Imagick::radialBlurImage
  • Example#3339 - Imagick::raiseImage
  • Example#3340 - Imagick::randomThresholdImage
  • Example#3341 - Imagick::readImageBlob
  • Example#3342 - Imagick::recolorImage
  • Example#3343 - Imagick::reduceNoiseImage
  • Example#3344 - Imagick::resampleImage
  • Example#3345 - Imagick::resizeImage
  • Example#3346 - Imagick::rollImage
  • Example#3347 - Imagick::rotateImage
  • Example#3348 - Imagick::rotationalBlurImage
  • Example#3349 - Using Imagick::roundCorners:
  • Example#3350 - Imagick::scaleImage
  • Example#3351 - Imagick::segmentImage
  • Example#3352 - Imagick::selectiveBlurImage
  • Example#3353 - Imagick::separateImageChannel
  • Example#3354 - Imagick::sepiaToneImage
  • Example#3355 - Imagick::setCompressionQuality
  • Example#3356 - A Imagick::setFont example
  • Example#3357 - A Imagick::setImage example
  • Example#3358 - Imagick::setImageArtifact
  • Example#3359 - Imagick::setImageBias
  • Example#3360 - Imagick::setImageClipMask
  • Example#3361 - Imagick::setImageCompressionQuality
  • Example#3362 - Modify animated Gif with Imagick::setImageDelay
  • Example#3363 - Basic Imagick::setImageIterations usage
  • Example#3364 - A Imagick::setImageOpacity example
  • Example#3365 - Imagick::setImageOrientation
  • Example#3366 - Using Imagick::setImageProperty:
  • Example#3367 - Imagick::setImageResolution
  • Example#3368 - Modify animated Gif with Imagick::setImageTicksPerSecond
  • Example#3369 - Using Imagick::setIteratorIndex:
  • Example#3370 - Attempt to reach '$extent' sizeImagick::setOption
  • Example#3371 - Imagick::setOption
  • Example#3372 - Imagick::setOption
  • Example#3373 - A Imagick::setPointSize example
  • Example#3374 - Imagick::setProgressMonitor
  • Example#3375 - Imagick::setSamplingFactors
  • Example#3376 - Imagick::shadeImage
  • Example#3377 - Imagick::shadowImage
  • Example#3378 - Imagick::sharpenImage
  • Example#3379 - Imagick::shaveImage
  • Example#3380 - Imagick::shearImage
  • Example#3381 - Create a gradient image using Imagick::sigmoidalContrastImage suitable for blending two images together smoothly, with the blending defined by $contrast and $the midpoint
  • Example#3382 - Imagick::sketchImage
  • Example#3383 - Imagick::smushImages
  • Example#3384 - Imagick::solarizeImage
  • Example#3385 - SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage
  • Example#3386 - SPARSECOLORMETHOD_BILINEAR Imagick::sparseColorImage
  • Example#3387 - SPARSECOLORMETHOD_SPEPARDS Imagick::sparseColorImage
  • Example#3388 - SPARSECOLORMETHOD_VORONOI Imagick::sparseColorImage
  • Example#3389 - SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage
  • Example#3390 - createGradientImage is used by other examples. Imagick::sparseColorImage
  • Example#3391 - Imagick::spliceImage
  • Example#3392 - Imagick::spreadImage
  • Example#3393 - Imagick::statisticImage
  • Example#3394 - Imagick::subImageMatch
  • Example#3395 - Imagick::swirlImage
  • Example#3396 - Imagick::textureImage
  • Example#3397 - Imagick::thresholdImage
  • Example#3398 - Imagick::thumbnailImage
  • Example#3399 - Imagick::tintImage
  • Example#3400 - Using Imagick::transformImage:
  • Example#3401 - Imagick::transformImageColorspace example
  • Example#3402 - Imagick::transformImageColorspace
  • Example#3403 - Imagick::transparentPaintImage
  • Example#3404 - Imagick::transposeImage
  • Example#3405 - Imagick::transverseImage
  • Example#3406 - Using Imagick::trimImage:
  • Example#3407 - Imagick::uniqueImageColors
  • Example#3408 - Imagick::unsharpMaskImage
  • Example#3409 - Imagick::vignetteImage
  • Example#3410 - WaveImage can be quite slow Imagick::waveImage
  • Example#3411 - Imagick::whiteThresholdImage
  • Example#3412 - ImagickDraw::affine
  • Example#3413 - ImagickDraw::arc
  • Example#3414 - ImagickDraw::bezier
  • Example#3415 - ImagickDraw::circle
  • Example#3416 - ImagickDraw::composite
  • Example#3417 - ImagickDraw::ellipse
  • Example#3418 - ImagickDraw::line
  • Example#3419 - ImagickDraw::matte
  • Example#3420 - ImagickDraw::pathCurveToQuadraticBezierAbsolute
  • Example#3421 - ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
  • Example#3422 - ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
  • Example#3423 - ImagickDraw::pathStart
  • Example#3424 - ImagickDraw::point
  • Example#3425 - ImagickDraw::polygon
  • Example#3426 - ImagickDraw::polyline
  • Example#3427 - ImagickDraw::popDefs
  • Example#3428 - ImagickDraw::push
  • Example#3429 - ImagickDraw::pushPattern
  • Example#3430 - ImagickDraw::rectangle
  • Example#3431 - ImagickDraw::rotate
  • Example#3432 - ImagickDraw::roundRectangle
  • Example#3433 - ImagickDraw::scale
  • Example#3434 - ImagickDraw::setClipPath
  • Example#3435 - ImagickDraw::setClipRule
  • Example#3436 - ImagickDraw::setClipUnits
  • Example#3437 - ImagickDraw::setFillAlpha
  • Example#3438 - ImagickDraw::setFillColor
  • Example#3439 - ImagickDraw::setFillOpacity
  • Example#3440 - ImagickDraw::setFillRule
  • Example#3441 - ImagickDraw::setFont
  • Example#3442 - ImagickDraw::setFontFamily
  • Example#3443 - ImagickDraw::setFontSize
  • Example#3444 - ImagickDraw::setFontStretch
  • Example#3445 - ImagickDraw::setFontStyle
  • Example#3446 - ImagickDraw::setFontWeight
  • Example#3447 - ImagickDraw::setGravity
  • Example#3448 - ImagickDraw::setStrokeAlpha
  • Example#3449 - ImagickDraw::setStrokeAntialias
  • Example#3450 - ImagickDraw::setStrokeColor
  • Example#3451 - ImagickDraw::setStrokeDashArray
  • Example#3452 - ImagickDraw::setStrokeDashOffset
  • Example#3453 - ImagickDraw::setStrokeLineCap
  • Example#3454 - ImagickDraw::setStrokeLineJoin
  • Example#3455 - ImagickDraw::setStrokeMiterLimit
  • Example#3456 - ImagickDraw::setStrokeOpacity
  • Example#3457 - ImagickDraw::setStrokeWidth
  • Example#3458 - ImagickDraw::setTextAlignment
  • Example#3459 - ImagickDraw::setTextAntialias
  • Example#3460 - ImagickDraw::setTextDecoration
  • Example#3461 - ImagickDraw::setTextUnderColor
  • Example#3462 - ImagickDraw::setVectorGraphics
  • Example#3463 - ImagickDraw::setViewBox
  • Example#3464 - ImagickDraw::skewX
  • Example#3465 - ImagickDraw::skewY
  • Example#3466 - ImagickDraw::translate
  • Example#3467 - ImagickPixel::construct
  • Example#3468 - Basic Imagick::getColor usage
  • Example#3469 - Basic Imagick::getColorAsString usage
  • Example#3470 - ImagickPixel getColorCount
  • Example#3471 - Basic Imagick::getColorValue usage
  • Example#3472 - ImagickPixel::getColorValueQuantum
  • Example#3473 - Basic Imagick::getHSL example
  • Example#3474 - ImagickPixel::isSimilar
  • Example#3475 - ImagickPixel::setColor
  • Example#3476 - Basic Imagick::setColorValue usage
  • Example#3477 - ImagickPixel::setColorValueQuantum
  • Example#3478 - Use ImagickPixel::setHSL to modify a color
  • Example#3479 - ImagickPixelIterator::clear
  • Example#3480 - ImagickPixelIterator::construct
  • Example#3481 - ImagickPixelIterator::getNextIteratorRow
  • Example#3482 - ImagickPixelIterator::resetIterator
  • Example#3483 - ImagickPixelIterator::setIteratorRow
  • Example#3484 - ImagickKernel::addKernel
  • Example#3485 - ImagickKernel::addUnityKernel
  • Example#3486 - ImagickKernel::addUnityKernel
  • Example#3487 - ImagickKernel::fromBuiltin
  • Example#3488 - ImagickKernel::fromMatrix
  • Example#3489 - ImagickKernel::getMatrix
  • Example#3490 - ImagickKernel::scale
  • Example#3491 - ImagickKernel::separate
  • Example#3492 - imap_append Beispiel
  • Example#3493 - imap_check Beispiel
  • Example#3494 - imap_createmailbox Beispiel
  • Example#3495 - imap_delete Beispiel
  • Example#3496 - imap_fetch_overview-Beispiel
  • Example#3497 - imap_gc Beispiel
  • Example#3498 - imap_get_quota-Beispiel
  • Example#3499 - Beispiel für imap_get_quota ab 4.3 und aufwärts
  • Example#3500 - imap_get_quotaroot-Beispiel
  • Example#3501 - imap_getacl Beispiel
  • Example#3502 - imap_getmailboxes Beispiel
  • Example#3503 - imap_list Beispiel
  • Example#3504 - imap_mail_compose Beispiel
  • Example#3505 - imap_mailboxmsginfo Beispiel
  • Example#3506 - imap_mime_header_decode Beispiel
  • Example#3507 - Verschiedene imap_open Aufrufe
  • Example#3508 - imap_open Beispiel
  • Example#3509 - imap_ping Example
  • Example#3510 - imap_reopen Beispiel
  • Example#3511 - imap_rfc822_parse_adrlist Beispiel
  • Example#3512 - imap_rfc822_write_address Beispiel
  • Example#3513 - imap_search Beispiel
  • Example#3514 - imap_set_quota Beispiel
  • Example#3515 - imap_setflag_full-Beispiel
  • Example#3516 - imap_status Beispiel
  • Example#3517 - imap_thread Example
  • Example#3518 - imap_timeout Beispiel
  • Example#3519 - Grundlegende imap_utf8 Verwendung
  • Example#3520 - Hash-Wert berechnen und einen Benutzer hinzufügen
  • Example#3521 - Verschicken einer E-Mail
  • Example#3522 - Verschicken einer E-Mail mit zusätzlichen Headern
  • Example#3523 - Verschicken einer E-Mail mit zusätzliche Headern als Array
  • Example#3524 - Verschicken einer E-Mail mit einem zusätzlichen Kommandozeilen-Parameter
  • Example#3525 - Verschicken einer HTML-E-Mail.
  • Example#3526 - mailparse_determine_best_xfer_encoding example
  • Example#3527 - mailparse_rfc822_parse_addresses example
  • Example#3528 - mailparse_stream_encode example
  • Example#3529 - mailparse_uudecode_all example
  • Example#3530 - bcadd-Beispiel
  • Example#3531 - bccomp-Beispiel
  • Example#3532 - bcdiv-Beispiel
  • Example#3533 - bcmod-Beispiel
  • Example#3534 - bcmod mit Dezimalzahlen
  • Example#3535 - bcmul-Beispiel
  • Example#3536 - bcmul-Nachkommastellen-Beispiel
  • Example#3537 - bcpow-Beispiel
  • Example#3538 - bcpow Genauigkeitsbeispiel
  • Example#3539 - bcscale-Beispiel
  • Example#3540 - bcsqrt-Beispiel
  • Example#3541 - bcsub-Beispiel
  • Example#3542 - Fakultätsfunktion unter Verwendung von GMP
  • Example#3543 - gmp_abs example
  • Example#3544 - gmp_add example
  • Example#3545 - gmp_and example
  • Example#3546 - gmp_clrbit example
  • Example#3547 - gmp_cmp example
  • Example#3548 - gmp_com example
  • Example#3549 - gmp_div_q example
  • Example#3550 - Division of GMP numbers
  • Example#3551 - gmp_div_r example
  • Example#3552 - gmp_divexact example
  • Example#3553 - gmp_export example
  • Example#3554 - gmp_fact example
  • Example#3555 - gmp_gcd example
  • Example#3556 - Solving a linear Diophantine equation
  • Example#3557 - gmp_hamdist example
  • Example#3558 - gmp_import example
  • Example#3559 - Creating GMP number
  • Example#3560 - gmp_intval example
  • Example#3561 - gmp_invert example
  • Example#3562 - gmp_jacobi example
  • Example#3563 - gmp_legendre example
  • Example#3564 - gmp_mod example
  • Example#3565 - gmp_mul example
  • Example#3566 - gmp_neg example
  • Example#3567 - gmp_nextprime example
  • Example#3568 - gmp_or example
  • Example#3569 - gmp_perfect_square example
  • Example#3570 - gmp_popcount example
  • Example#3571 - gmp_pow example
  • Example#3572 - gmp_powm example
  • Example#3573 - gmp_prob_prime example
  • Example#3574 - gmp_random_bits example
  • Example#3575 - gmp_random_range example
  • Example#3576 - gmp_random_seed example
  • Example#3577 - gmp_random example
  • Example#3578 - gmp_scan0 example
  • Example#3579 - gmp_scan1 example
  • Example#3580 - gmp_setbit example - 0 index
  • Example#3581 - gmp_setbit example - 1 index
  • Example#3582 - gmp_setbit example - clearing a bit
  • Example#3583 - gmp_sign example
  • Example#3584 - gmp_sqrt example
  • Example#3585 - gmp_sqrtrem example
  • Example#3586 - Converting a GMP number to a string
  • Example#3587 - gmp_sub example
  • Example#3588 - gmp_testbit example
  • Example#3589 - gmp_xor example
  • Example#3590 - abs-Beispiel
  • Example#3591 - base_convert-Beispiel
  • Example#3592 - bindec-Beispiel
  • Example#3593 - bindec interpretiert die Eingabe als vorzeichenlose Ganzzahlen
  • Example#3594 - ceil-Beispiel
  • Example#3595 - cos-Beispiel
  • Example#3596 - decbin-Beispiel
  • Example#3597 - dechex-Beispiel
  • Example#3598 - dechex-Beispiel mit großen Ganzzahlen
  • Example#3599 - decoct-Beispiel
  • Example#3600 - deg2rad-Beispiel
  • Example#3601 - exp-Beispiel
  • Example#3602 - Beispiel für die Verwendung von fdiv
  • Example#3603 - floor-Beispiel
  • Example#3604 - fmod-Beispiel
  • Example#3605 - hexdec-Beispiel
  • Example#3606 - intdiv-Beispiel
  • Example#3607 - is_nan-Beispiel
  • Example#3608 - Beispiel für die Verwendung von max
  • Example#3609 - Beispiel für die Verwendung von min
  • Example#3610 - Berechnung einer zufälligen Gleitkommazahl
  • Example#3611 - mt_rand-Beispiel
  • Example#3612 - mt_srand-Beispiel
  • Example#3613 - octdec-Beispiel
  • Example#3614 - pi-Beispiel
  • Example#3615 - Einige pow-Beispiele
  • Example#3616 - rad2deg-Beispiel
  • Example#3617 - rand-Beispiel
  • Example#3618 - round-Beispiele
  • Example#3619 - Wie precision eine Gleitkommazahl betrifft
  • Example#3620 - mode-Beispiele
  • Example#3621 - mode mit precision-Beispiele
  • Example#3622 - sin-Beispiel
  • Example#3623 - sqrt-Beispiel
  • Example#3624 - srand-Beispiel
  • Example#3625 - tan-Beispiel
  • Example#3626 - Auswertung eines FDF_Dokuments
  • Example#3627 - JavaScript-Code zu einem FDF hinzufügen
  • Example#3628 - Füllen von Formularwerten in einem PDF Dokument
  • Example#3629 - Storing an uploaded file
  • Example#3630 - Alle Feldnamen in einem FDF ermitteln
  • Example#3631 - Accessing the form data
  • Example#3632 - Zugang zu den Formulardaten
  • Example#3633 - Retrieving FDF as a string
  • Example#3634 - FDF-Daten an ein zweites Formular übergeben
  • Example#3635 - gnupg clearsign example (procedural)
  • Example#3636 - gnupg clearsign example (OO)
  • Example#3637 - keylistiterator
  • Example#3638 - Verwendungsbeispiel gnupg_adddecryptkey
  • Example#3639 - OO gnupg_adddecryptkey Beispiel
  • Example#3640 - Prozedurales gnupg_addencryptkey Beispiel
  • Example#3641 - OO (objektorientiertes) gnupg_addencryptkey-Beispiel
  • Example#3642 - Prozedurales gnupg_addsignkey Beispiel
  • Example#3643 - OO (objektorientiertes) gnupg_addsignkey-Beispiel
  • Example#3644 - Prozedurales gnupg_cleardecryptkeys Beispiel
  • Example#3645 - OO (objektorientiertes) gnupg_cleardecryptkeys Beispiel
  • Example#3646 - Prozedurales gnupg_clearencryptkeys Beispiel
  • Example#3647 - OO (objektorientiertes) gnupg_clearencryptkeys Beispiel
  • Example#3648 - Prozedurales gnupg_clearsignkeys Beispiel
  • Example#3649 - OO (objektorientiertes) gnupg_clearsignkeys Beispiel
  • Example#3650 - Prozedurales gnupg_decrypt Beispiel
  • Example#3651 - OO (objektorientiertes)gnupg_decrypt Beispiel
  • Example#3652 - Prozedurales gnupg_decryptverify Beispiel
  • Example#3653 - OO (objektorientiertes) gnupg_decryptverify Beispiel
  • Example#3654 - Prozedurales gnupg_encrypt Beispiel
  • Example#3655 - OO (objektorientiertes) gnupg_encrypt Beispiele
  • Example#3656 - Prozedurales gnupg_encryptsign Beispiel
  • Example#3657 - OO (objektorientiertes) gnupg_encryptsign Beispiel
  • Example#3658 - Prozedurales gnupg_export Beispiel
  • Example#3659 - OO (objektorientiertes) gnupg_export Beispiel
  • Example#3660 - Prozedurales gnupg_geterror Beispiel
  • Example#3661 - OO (objektorientiertes) gnupg_geterror Beispiel
  • Example#3662 - Prozedurales gnupg_getprotocol Beispiel
  • Example#3663 - OO (objektorientiertes) gnupg_getprotocol Beispiel
  • Example#3664 - Prozedurales gnupg_import Beispiel
  • Example#3665 - OO (objektorientiertes) gnupg_import Beispiel
  • Example#3666 - Prozedurales gnupg_init Beispiel
  • Example#3667 - OO (objektorientiertes) gnupg_init Beispiel
  • Example#3668 - Prozedurales gnupg_keyinfo Beispiel
  • Example#3669 - OO (objektorientiertes) gnupg_keyinfo Beispiel
  • Example#3670 - Prozedurales gnupg_setarmor Beispiel
  • Example#3671 - OO (objektorientiertes) gnupg_setarmor Beispiel
  • Example#3672 - Procedurales gnupg_seterrormode Beispiel
  • Example#3673 - OO (objektorientiertes) gnupg_seterrormode Beispiel
  • Example#3674 - Prozedurales gnupg_setsignmode Beispiel
  • Example#3675 - OO gnupg_setsignmode Beispiel
  • Example#3676 - Prozedurales gnupg_sign Beispiel
  • Example#3677 - OO gnupg_sign Beispiel
  • Example#3678 - Prozedurales gnupg_verify Beispiel
  • Example#3679 - OO gnupg_verify Beispiel
  • Example#3680 - Creating and using a pattern
  • Example#3681 - Creating and using a template
  • Example#3682 - Hyphennate a text
  • Example#3683 - Drawing a rectangle
  • Example#3684 - Creating and using a spot color
  • Example#3685 - Rotation of the coordinate system
  • Example#3686 - Placing text at a given position
  • Example#3687 - Drawing a dashed line
  • Example#3688 - Translation of the coordinate system
  • Example#3689 - A rpmdbinfo example
  • Example#3690 - Searching for the package owning a file
  • Example#3691 - A rpminfo example
  • Example#3692 - example
  • Example#3693 - example
  • Example#3694 - example
  • Example#3695 - example
  • Example#3696 - example
  • Example#3697 - example
  • Example#3698 - example
  • Example#3699 - example
  • Example#3700 - example
  • Example#3701 - example
  • Example#3702 - example
  • Example#3703 - example
  • Example#3704 - example
  • Example#3705 - example
  • Example#3706 - example
  • Example#3707 - example
  • Example#3708 - example
  • Example#3709 - example
  • Example#3710 - example
  • Example#3711 - Incorrect requests
  • Example#3712 - Calling request from a request callback
  • Example#3713 - Calling request from a request callback
  • Example#3714 - Using eio with libevent
  • Example#3715 - Cancelling a request
  • Example#3716 - Calling eio_chmod
  • Example#3717 - Making a custom request
  • Example#3718 - Grouping requests
  • Example#3719 - Using eio with libevent extension
  • Example#3720 - Using eio with event extension
  • Example#3721 - eio_cancel example
  • Example#3722 - eio_custom example
  • Example#3723 - eio_event_loop example
  • Example#3724 - eio_lstat example
  • Example#3725 - Using eio with libevent
  • Example#3726 - Grouping requests
  • Example#3727 - eio_grp example
  • Example#3728 - eio_link example
  • Example#3729 - eio_lstat example
  • Example#3730 - eio_mkdir example
  • Example#3731 - eio_mknod example
  • Example#3732 - eio_nreqs example
  • Example#3733 - eio_open example
  • Example#3734 - eio_poll example
  • Example#3735 - eio_read example
  • Example#3736 - eio_readdir example
  • Example#3737 - eio_readlink example
  • Example#3738 - eio_realpath example
  • Example#3739 - eio_rename example
  • Example#3740 - eio_rmdir example
  • Example#3741 - eio_stat example
  • Example#3742 - eio_statvfs example
  • Example#3743 - eio_symlink example
  • Example#3744 - Simple timers
  • Example#3745 - Periodic timer. Tick each 10.5 seconds
  • Example#3746 - Periodic timer. Use reschedule callback
  • Example#3747 - Periodic timer. Tick every 10.5 seconds starting at now
  • Example#3748 - Wait until STDIN is readable
  • Example#3749 - Use some async I/O to access a socket
  • Example#3750 - Embedding one loop into another
  • Example#3751 - Embedding loop created with kqueue backend into the default loop
  • Example#3752 - Handle SIGTERM signal
  • Example#3753 - Monitor changes of /var/log/messages
  • Example#3754 - Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay
  • Example#3755 - Process status changes
  • Example#3756 - Using reschedule callback
  • Example#3757 - Embedding loop created with kqueue backend into the default loop
  • Example#3758 - Embedding one loop into another
  • Example#3759 - Embedding loop created with kqueue backend into the default loop
  • Example#3760 - Embedding loop created with kqueue backend into the default loop
  • Example#3761 - Periodic timer. Use reschedule callback
  • Example#3762 - Periodic timer. Tick every 10.5 seconds starting at now
  • Example#3763 - Hourly watcher
  • Example#3764 - Handle SIGTERM signal
  • Example#3765 - Monitor changes of /var/log/messages
  • Example#3766 - Monitor changes of /var/log/messages
  • Example#3767 - Simple timers
  • Example#3768 - Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay
  • Example#3769 - Register an I/O watcher for some UDP socket but do not keep the event loop from running just because of that watcher.
  • Example#3770 - Expect Usage Example
  • Example#3771 - Another Expect Usage Example
  • Example#3772 - expect_expectl example
  • Example#3773 - expect_popen example
  • Example#3774 - Prozesskontrollbeispiel
  • Example#3775 - pcntl_fork Beispiel
  • Example#3776 - pcntl_signal_dispatch example
  • Example#3777 - pcntl_signal_get_handler example
  • Example#3778 - pcntl_signal-Beispiel
  • Example#3779 - pcntl_sigprocmask example
  • Example#3780 - pcntl_sigwaitinfo example
  • Example#3781 - posix_access-Beispiel
  • Example#3782 - posix_ctermid-Beispiel
  • Example#3783 - posix_get_last_error-Beispiel
  • Example#3784 - posix_getcwd-Beispiel
  • Example#3785 - posix_getegid-Beispiel
  • Example#3786 - posix_geteuid-Beispiel
  • Example#3787 - posix_getgid-Beispiel
  • Example#3788 - Beispiel zur Verwendung von posix_getgrgid
  • Example#3789 - Beispiel für die Verwendung von posix_getgrnam
  • Example#3790 - posix_getgroups-Beispiel
  • Example#3791 - posix_getlogin-Beispiel
  • Example#3792 - posix_getpgid-Beispiel
  • Example#3793 - posix_getpid-Beispiel
  • Example#3794 - posix_getppid-Beispiel
  • Example#3795 - posix_getpwnam-Beispiel
  • Example#3796 - posix_getpwuid-Beispiel
  • Example#3797 - posix_getrlimit-Beispiel
  • Example#3798 - posix_getsid-Beispiel
  • Example#3799 - posix_getuid-Beispiel
  • Example#3800 - posix_mknod-Beispiel
  • Example#3801 - posix_setegid-Beispiel
  • Example#3802 - posix_setgid-Beispiel
  • Example#3803 - posix_setuid-Beispiel
  • Example#3804 - posix_strerror-Beispiel
  • Example#3805 - posix_times-Beispiel
  • Example#3806 - posix_uname-Beispiel
  • Example#3807 - escapeshellarg Beispiel
  • Example#3808 - escapeshellcmd Beispiel
  • Example#3809 - Ein exec-Beispiel
  • Example#3810 - Verwendung von proc_nice um die Prozesspriorität auf hoch zu setzen
  • Example#3811 - Ein proc_open-Beispiel
  • Example#3812 - proc_open-Eigenheit unter Windows
  • Example#3813 - Ein shell_exec-Beispiel
  • Example#3814 - system example
  • Example#3815 - Example showing Future as return value
  • Example#3816 - Example showing Future as synchronization point
  • Example#3817 - Fetch a chunk of the property table
  • Example#3818 - Counting the properties of an object
  • Example#3819 - Runtime inheritance
  • Example#3820 - Thread safe objects from closures
  • Example#3821 - Detecting fatal errors in Threads
  • Example#3822 - Detect the state of the referenced object
  • Example#3823 - Detect the state of the referenced object
  • Example#3824 - Detect the state of the referenced object
  • Example#3825 - Locking Object Properties
  • Example#3826 - Merging into the property table of a threaded object
  • Example#3827 - Notifications and Waiting
  • Example#3828 - Notifications and Waiting
  • Example#3829 - Popping the last item from the property table of a threaded object
  • Example#3830 - Shifting the first item from the property table of a threaded object
  • Example#3831 - Synchronizing
  • Example#3832 - Locking the property table of a threaded object
  • Example#3833 - Notifications and Waiting
  • Example#3834 - Return the identity of the Thread or Process that created the referenced Thread
  • Example#3835 - Return the currently executing Thread
  • Example#3836 - Return the identity of the currently executing Thread
  • Example#3837 - Return the identity of the referenced Thread
  • Example#3838 - Execute in the global scope
  • Example#3839 - Detect the state of the referenced Thread
  • Example#3840 - Tell if the referenced Thread was started
  • Example#3841 - Join with the referenced Thread
  • Example#3842 - Kill the referenced Thread
  • Example#3843 - Starting Threads
  • Example#3844 - A basic example of Worker::collect
  • Example#3845 - A basic example of Worker::getStacked
  • Example#3846 - Detect the state of a worker
  • Example#3847 - Detect the state of a Worker
  • Example#3848 - Shutdown the referenced worker
  • Example#3849 - Stacking a task for execution onto a worker
  • Example#3850 - Removing objects from the stack of Workers
  • Example#3851 - protected method example: protected methods can only be executed by one Thread at a time.
  • Example#3852 - private method example: private methods may only be executed by the Threaded object during execution
  • Example#3853 - A basic example of Pool::collect
  • Example#3854 - Creating Pools
  • Example#3855 - Shutting down a pool
  • Example#3856 - Submitting Tasks
  • Example#3857 - Submitting tasks to a specific worker
  • Example#3858 - Mutex Creation and Destruction
  • Example#3859 - Mutex Creation and Destruction
  • Example#3860 - Mutex Locking and Unlocking
  • Example#3861 - Mutex Locking and Unlocking
  • Example#3862 - Mutex Locking and Unlocking
  • Example#3863 - Condition Broadcasting
  • Example#3864 - Condition Creation and Destruction
  • Example#3865 - Condition Creation and Destruction
  • Example#3866 - Condition Signalling
  • Example#3867 - Waiting for Conditions
  • Example#3868 - New immutability semantics of Threaded
  • Example#3869 - Volatile use-case
  • Example#3870 - Adding a new class task to a thread
  • Example#3871 - Adding a new file task to a thread
  • Example#3872 - Adding a new function task to a thread
  • Example#3873 - Joining a thread
  • Example#3874 - Starting a new thread
  • Example#3875 - Getting the task count of a thread
  • Example#3876 - Locking a hash table's mutex lock
  • Example#3877 - Getting a hash table's size
  • Example#3878 - Locking a hash table's mutex lock
  • Example#3879 - Creating a new vector
  • Example#3880 - Deleting values in a vector
  • Example#3881 - Inserting a value into a vector
  • Example#3882 - Locking a vector's mutex lock
  • Example#3883 - Popping a value from a vector
  • Example#3884 - Pushing values to a vector
  • Example#3885 - Resizing a vector
  • Example#3886 - Shifting a value from a vector
  • Example#3887 - Getting a vector's size
  • Example#3888 - Locking a vector's mutex lock
  • Example#3889 - Unshifting a value to the front of a vector
  • Example#3890 - Updating a value in a vector
  • Example#3891 - Retrieving the front value of a queue
  • Example#3892 - Retrieving the front value in a loop (bad example - don't do this)
  • Example#3893 - Retrieving the front value in a loop (good example)
  • Example#3894 - Locking a queue's mutex lock
  • Example#3895 - Popping a value from a queue
  • Example#3896 - Pushing a value to a queue
  • Example#3897 - Getting a queue's size
  • Example#3898 - Locking a queue's mutex lock
  • Example#3899 - Creating a new atomic integer
  • Example#3900 - Decrementing an atomic integer's value
  • Example#3901 - Getting an atomic integer's value
  • Example#3902 - Incrementing an atomic integer's value
  • Example#3903 - Grouping together an atomic integer's operations (requiring a mutex lock)
  • Example#3904 - Setting an atomic integer's value
  • Example#3905 - Grouping together an atomic integer's operations (requiring a mutex lock)
  • Example#3906 - Shared Memory Operationen - Übersicht
  • Example#3907 - Einen gemeinsamen Speicherbereich schließen
  • Example#3908 - Einen gemeinsamen Speicherbereich löschen
  • Example#3909 - Einen neuen gemeinsamen Speicherbereich erstellen
  • Example#3910 - Aus dem gemeinsamen Speicherbereich lesen
  • Example#3911 - Die Größe des gemeinsamen Speicherbereichs ermitteln
  • Example#3912 - In den gemeinsamen Speicherbereich schreiben
  • Example#3913 - SyncMutex::__construct named mutex with lock timeout example
  • Example#3914 - SyncMutex::__construct unnamed mutex example
  • Example#3915 - SyncMutex::lock example
  • Example#3916 - SyncMutex::unlock example
  • Example#3917 - SyncSemaphore::__construct example
  • Example#3918 - SyncSemaphore::lock example
  • Example#3919 - SyncSemaphore::unlock example
  • Example#3920 - SyncEvent::__construct example
  • Example#3921 - SyncEvent::fire example
  • Example#3922 - SyncEvent::reset example
  • Example#3923 - SyncEvent::wait example
  • Example#3924 - SyncReaderWriter::__construct example
  • Example#3925 - SyncReaderWriter::readlock example
  • Example#3926 - SyncReaderWriter::readunlock example
  • Example#3927 - SyncReaderWriter::writelock example
  • Example#3928 - SyncReaderWriter::writeunlock example
  • Example#3929 - SyncSharedMemory::__construct example
  • Example#3930 - SyncSharedMemory::first example
  • Example#3931 - SyncSharedMemory::__construct example
  • Example#3932 - SyncSharedMemory::size example
  • Example#3933 - SyncSharedMemory::write example
  • Example#3934 - A geoip_asnum_by_name example
  • Example#3935 - A geoip_continent_code_by_name example
  • Example#3936 - A geoip_country_code_by_name example
  • Example#3937 - A geoip_country_code3_by_name example
  • Example#3938 - A geoip_country_name_by_name example
  • Example#3939 - A geoip_database_info example
  • Example#3940 - A geoip_db_avail example
  • Example#3941 - A geoip_db_filename example
  • Example#3942 - A geoip_db_get_all_info example
  • Example#3943 - A geoip_db_get_all_info example
  • Example#3944 - A geoip_domain_by_name example
  • Example#3945 - A geoip_id_by_name example
  • Example#3946 - A geoip_isp_by_name example
  • Example#3947 - A geoip_netspeedcell_by_name example
  • Example#3948 - A geoip_org_by_name example
  • Example#3949 - A geoip_record_by_name example
  • Example#3950 - A geoip_region_by_name example
  • Example#3951 - A geoip_region_name_by_code example using region code for US/Canada
  • Example#3952 - A geoip_region_name_by_code example using FIPS codes
  • Example#3953 - A geoip_setup_custom_directory example
  • Example#3954 - A geoip_time_zone_by_country_and_region example using region code for US/Canada
  • Example#3955 - A geoip_time_zone_by_country_and_region example using FIPS codes
  • Example#3956 - xor.data file
  • Example#3957 - Simple train
  • Example#3958 - Simple test
  • Example#3959 - fann_create_train_from_callback example
  • Example#3960 - fann_read_train_from_file example
  • Example#3961 - JsonSerializable::jsonSerialize Beispiel, das ein Array zurückgibt.
  • Example#3962 - JsonSerializable::jsonSerialize Beispiel, das ein assoziatives Array zurückgibt.
  • Example#3963 - JsonSerializable::jsonSerialize Beispiel, das einen Integer zurückgibt.
  • Example#3964 - JsonSerializable::jsonSerialize Beispiel, das einen String zurückgibt
  • Example#3965 - json_decode-Beispiele
  • Example#3966 - Zugriff auf ungültige Objekteigenschaften
  • Example#3967 - Häufige Fehler bei der Verwendung von json_decode
  • Example#3968 - Fehler bei der Verwendung von depth
  • Example#3969 - json_decode von großen Ganzzahlen
  • Example#3970 - A json_encode example
  • Example#3971 - Ein json_encode-Beispiel, das den Einsatz einiger Optionen zeigt
  • Example#3972 - JSON_NUMERIC_CHECK-Option-Beispiel
  • Example#3973 - Beispiel für sequentielle und nicht sequentielle Arrays
  • Example#3974 - JSON_PRESERVE_ZERO_FRACTION-Option-Beispiel
  • Example#3975 - json_last_error-Beispiel
  • Example#3976 - json_last_error mit json_encode
  • Example#3977 - json_last_error und JSON_THROW_ON_ERROR
  • Example#3978 - Lua::assignexample
  • Example#3979 - Lua::callexample
  • Example#3980 - Lua::evalexample
  • Example#3981 - Lua::registerCallbackexample
  • Example#3982 - LuaClosure::__invokeexample
  • Example#3983 - Execute some Lua code
  • Example#3984 - Calling a Lua function
  • Example#3985 - Profiling Lua code
  • Example#3986 - Loading code into Lua
  • Example#3987 - Manipulating the usage timer
  • Example#3988 - Registering PHP functions to call from Lua
  • Example#3989 - Calling a Lua function
  • Example#3990 - Calling a Lua function
  • Example#3991 - constant-Beispiel
  • Example#3992 - Konstanten definieren
  • Example#3993 - Konstanten mit reservierten Namen
  • Example#3994 - Konstanten überprüfen
  • Example#3995 - eval Beispiel (einfache Texteinfügung)
  • Example#3996 - exit-Beispiel
  • Example#3997 - exit-Status-Beispiel
  • Example#3998 - Shutdown-Funktionen und Destruktoren werden trotzdem aufgerufen
  • Example#3999 - Auflistung aller Informationen über den Browser des Benutzers
  • Example#4000 - Ein __halt_compiler-Beispiel
  • Example#4001 - highlight_string-Beispiel
  • Example#4002 - hrtime usage
  • Example#4003 - Ein ignore_user_abort-Beispiel
  • Example#4004 - pack-Beispiel
  • Example#4005 - php_strip_whitespace example
  • Example#4006 - Basic sapi_windows_generate_ctrl_event Usage
  • Example#4007 - Basic sapi_windows_set_ctrl_handler Usage
  • Example#4008 - sapi_windows_vt100_support default state
  • Example#4009 - sapi_windows_vt100_support changing state
  • Example#4010 - Example usage of VT100 support enabled
  • Example#4011 - sleep-Beispiel
  • Example#4012 - sys_getloadavg-Beispiel
  • Example#4013 - time_nanosleep-Beispiel
  • Example#4014 - Ein time_sleep_until-Beispiel
  • Example#4015 - uniqid-Beispiel
  • Example#4016 - unpack-Beispiel
  • Example#4017 - unpack-Beispiel mit Wiederholer
  • Example#4018 - unpack-Beispiel mit unbenannten Schlüsseln
  • Example#4019 - usleep-Beispiel
  • Example#4020 - Get and set base path
  • Example#4021 - Get and set logger
  • Example#4022 - Fast write log
  • Example#4023 - Fast count some type of log count value
  • Example#4024 - Acquisit some type of log list
  • Example#4025 - seaslog_get_author example
  • Example#4026 - seaslog_get_version example
  • Example#4027 - SeasLog::alert example
  • Example#4028 - SeasLog::analyzerCount example
  • Example#4029 - SeasLog::analyzerDetail example
  • Example#4030 - SeasLog::closeLoggerStream example
  • Example#4031 - SeasLog::__construct example
  • Example#4032 - SeasLog::critical example
  • Example#4033 - SeasLog::debug example
  • Example#4034 - SeasLog::__destruct example
  • Example#4035 - SeasLog::emergency example
  • Example#4036 - SeasLog::error example
  • Example#4037 - SeasLog::flushBuffer example
  • Example#4038 - SeasLog::getBasePath example
  • Example#4039 - SeasLog::getBuffer example
  • Example#4040 - SeasLog::getBufferEnabled example
  • Example#4041 - SeasLog::getDatetimeFormat example
  • Example#4042 - SeasLog::getLastLogger example
  • Example#4043 - SeasLog::getRequestID example
  • Example#4044 - SeasLog::getRequestVariable example
  • Example#4045 - SeasLog::info example
  • Example#4046 - SeasLog::log example
  • Example#4047 - SeasLog::notice example
  • Example#4048 - SeasLog::setBasePath example
  • Example#4049 - SeasLog::setDatetimeFormat example
  • Example#4050 - SeasLog::setLogger example
  • Example#4051 - SeasLog::setRequestID example
  • Example#4052 - SeasLog::setRequestVariable example
  • Example#4053 - SeasLog::warning example
  • Example#4054 - SplDoublyLinkedList::__construct example
  • Example#4055 - SplStack::__construct example
  • Example#4056 - SplQueue::__construct example
  • Example#4057 - Efficiently handling tasks with SplQueue
  • Example#4058 - SplFixedArray usage example
  • Example#4059 - SplFixedArray::__construct example
  • Example#4060 - SplFixedArray::count example
  • Example#4061 - SplFixedArray::fromArray example
  • Example#4062 - SplFixedArray::getSize example
  • Example#4063 - SplFixedArray::setSize example
  • Example#4064 - SplFixedArray::toArray example
  • Example#4065 - SplObjectStorage as a set
  • Example#4066 - SplObjectStorage as a map
  • Example#4067 - SplObjectStorage::addAll example
  • Example#4068 - SplObjectStorage::attach example
  • Example#4069 - SplObjectStorage::contains example
  • Example#4070 - SplObjectStorage::count example
  • Example#4071 - SplObjectStorage::current example
  • Example#4072 - SplObjectStorage::detach example
  • Example#4073 - SplObjectStorage::getHash example
  • Example#4074 - SplObjectStorage::getInfo example
  • Example#4075 - SplObjectStorage::key example
  • Example#4076 - SplObjectStorage::next example
  • Example#4077 - SplObjectStorage::offsetExists example
  • Example#4078 - SplObjectStorage::offsetGet example
  • Example#4079 - SplObjectStorage::offsetSet example
  • Example#4080 - SplObjectStorage::offsetUnset example
  • Example#4081 - SplObjectStorage::removeAll example
  • Example#4082 - SplObjectStorage::removeAllExcept example
  • Example#4083 - SplObjectStorage::rewind example
  • Example#4084 - SplObjectStorage::serialize example
  • Example#4085 - SplObjectStorage::setInfo example
  • Example#4086 - SplObjectStorage::unserialize example
  • Example#4087 - SplObjectStorage::valid example
  • Example#4088 - AppendIterator::append example
  • Example#4089 - Iterating AppendIterator with foreach
  • Example#4090 - Iterating AppendIterator with the AppendIterator API
  • Example#4091 - AppendIterator::getInnerIterator example
  • Example#4092 - AppendIterator.getIteratorIndex basic example
  • Example#4093 - AppendIterator::key basic example
  • Example#4094 - ArrayIterator::current example
  • Example#4095 - ArrayIterator::key example
  • Example#4096 - ArrayIterator::next example
  • Example#4097 - ArrayIterator::rewind example
  • Example#4098 - ArrayIterator::valid example
  • Example#4099 - CachingIterator::getCache example
  • Example#4100 - Available callback arguments
  • Example#4101 - Callback basic examples
  • Example#4102 - A DirectoryIterator::__construct example
  • Example#4103 - A DirectoryIterator::current example
  • Example#4104 - A DirectoryIterator::getATime example
  • Example#4105 - A DirectoryIterator::getBasename example
  • Example#4106 - DirectoryIterator::getCTime example
  • Example#4107 - DirectoryIterator::getExtension example
  • Example#4108 -
  • Example#4109 - A DirectoryIterator::getFilename example
  • Example#4110 - DirectoryIterator::getGroup example
  • Example#4111 - DirectoryIterator::getInode example
  • Example#4112 - A DirectoryIterator::getMTime example
  • Example#4113 - DirectoryIterator::getOwner example
  • Example#4114 - DirectoryIterator::getPath example
  • Example#4115 - DirectoryIterator::getPathname example
  • Example#4116 - DirectoryIterator::getPerms example
  • Example#4117 - DirectoryIterator::getSize example
  • Example#4118 - DirectoryIterator::getType example
  • Example#4119 - DirectoryIterator::isDir example
  • Example#4120 - A DirectoryIterator::isDot example
  • Example#4121 - DirectoryIterator::isExecutable example
  • Example#4122 - DirectoryIterator::isFile example
  • Example#4123 - A DirectoryIterator::isLink example
  • Example#4124 - DirectoryIterator::isReadable example
  • Example#4125 - DirectoryIterator::isWritable example
  • Example#4126 - A DirectoryIterator::key example
  • Example#4127 - DirectoryIterator::next example
  • Example#4128 - DirectoryIterator::rewind example
  • Example#4129 - DirectoryIterator::seek example
  • Example#4130 - A DirectoryIterator::__toString example
  • Example#4131 - A DirectoryIterator::valid example
  • Example#4132 - FilesystemIterator::__construct example
  • Example#4133 - FilesystemIterator::current example
  • Example#4134 - FilesystemIterator::key example
  • Example#4135 - FilesystemIterator::next example
  • Example#4136 - FilesystemIterator::rewind example
  • Example#4137 - FilesystemIterator::key example
  • Example#4138 - FilterIterator::accept example
  • Example#4139 - GlobIterator example
  • Example#4140 - GlobIterator::count example
  • Example#4141 - InfiniteIterator::__construct example
  • Example#4142 - LimitIterator usage example
  • Example#4143 - LimitIterator::__construct example
  • Example#4144 - LimitIterator::getPosition example
  • Example#4145 - Iterating a MultipleIterator
  • Example#4146 - NoRewindIterator::__construct example
  • Example#4147 - NoRewindIterator::rewind example
  • Example#4148 - RecursiveArrayIterator::getChildren example
  • Example#4149 - RecursiveArrayIterator::hasChildren example
  • Example#4150 - Available callback arguments
  • Example#4151 - Recursive callback basic example
  • Example#4152 - RecursiveCallbackFilterIterator::hasChildren basic usage
  • Example#4153 - RecursiveDirectoryIterator example
  • Example#4154 - getSubPath example
  • Example#4155 - getSubPathname example
  • Example#4156 - Basic RecursiveFilterIterator example
  • Example#4157 - RecursiveFilterIterator example
  • Example#4158 - Iterating a RecursiveIteratorIterator
  • Example#4159 - RecursiveRegexIterator::__construct example
  • Example#4160 - RecursiveRegexIterator::getChildren example
  • Example#4161 - RecursiveRegexIterator::hasChildren example
  • Example#4162 - RegexIterator::accept example
  • Example#4163 - RegexIterator::__construct example
  • Example#4164 - RegexIterator::getFlags example
  • Example#4165 - RegexIterator::getMode example
  • Example#4166 - RegexIterator::getPregFlags example
  • Example#4167 - RegexIterator::setFlags example
  • Example#4168 - RegexIterator::setMode example
  • Example#4169 - RegexIterator::setPregFlags example
  • Example#4170 - Countable::count-Beispiel
  • Example#4171 - Basic usage
  • Example#4172 - SeekableIterator::seek example
  • Example#4173 - class_implements example
  • Example#4174 - class_parents example
  • Example#4175 - class_uses example
  • Example#4176 - iterator_apply example
  • Example#4177 - iterator_count example
  • Example#4178 - iterator_count modifies position
  • Example#4179 - iterator_count in foreach loops
  • Example#4180 - iterator_to_array example
  • Example#4181 - spl_autoload_extensions Beispiel
  • Example#4182 - spl_autoload_register as a replacement for an __autoload function
  • Example#4183 - spl_autoload_register example where the class is not loaded
  • Example#4184 - spl_classes example
  • Example#4185 - A spl_object_hash example
  • Example#4186 - A spl_object_id example
  • Example#4187 - SplFileInfo::__construct example
  • Example#4188 - SplFileInfo::getBasename example
  • Example#4189 - SplFileInfo::getCTime example
  • Example#4190 - SplFileInfo::getExtension example
  • Example#4191 -
  • Example#4192 - SplFileInfo::getFilename example
  • Example#4193 - SplFileInfo::getGroup example
  • Example#4194 - SplFileInfo::getLinkTarget example
  • Example#4195 - SplFileInfo::getOwner example
  • Example#4196 - SplFileInfo::getPath example
  • Example#4197 - SplFileInfo::getPathInfo example
  • Example#4198 - SplFileInfo::getPathname example
  • Example#4199 - SplFileInfo::getPerms example
  • Example#4200 - SplFileInfo::getRealPath example
  • Example#4201 - SplFileInfo::getType example
  • Example#4202 - SplFileInfo::isDir example
  • Example#4203 - SplFileInfo::isExecutable example
  • Example#4204 - SplFileInfo::isFile example
  • Example#4205 - SplFileInfo::isLink example
  • Example#4206 - SplFileInfo::isReadable example
  • Example#4207 - SplFileInfo::openFile example
  • Example#4208 - SplFileInfo::setFileClass example
  • Example#4209 - SplFileInfo::setFileClass example
  • Example#4210 - SplFileInfo::__toString example
  • Example#4211 - SplFileObject::__construct example
  • Example#4212 - SplFileObject::current example
  • Example#4213 - SplFileObject::eof example
  • Example#4214 - SplFileObject::fflush example
  • Example#4215 - SplFileObject::fgetc example
  • Example#4216 - SplFileObject::fgetcsv example
  • Example#4217 - SplFileObject::READ_CSV example
  • Example#4218 - SplFileObject::fgets example
  • Example#4219 - SplFileObject::fgetss example
  • Example#4220 - SplFileObject::flock example
  • Example#4221 - SplFileObject::fpassthru example
  • Example#4222 - SplFileObject::fputcsv example
  • Example#4223 - SplFileObject::fread example
  • Example#4224 - SplFileObject::fscanf example
  • Example#4225 - SplFileObject::fseek example
  • Example#4226 - SplFileObject::fstat example
  • Example#4227 - SplFileObject::ftell example
  • Example#4228 - SplFileObject::ftruncate example
  • Example#4229 - SplFileObject::fwrite example
  • Example#4230 - SplFileObject::getCsvControl example
  • Example#4231 - SplFileObject::getFlags example
  • Example#4232 - SplFileObject::getMaxLineLen example
  • Example#4233 - SplFileObject::key example
  • Example#4234 - SplFileObject::key example with SplFileObject::setMaxLineLen
  • Example#4235 - SplFileObject::next example
  • Example#4236 - SplFileObject::rewind example
  • Example#4237 - SplFileObject::seek example
  • Example#4238 - SplFileObject::setCsvControl example
  • Example#4239 - SplFileObject::setFlags example
  • Example#4240 - SplFileObject::setMaxLineLen example
  • Example#4241 - SplFileObject::valid example
  • Example#4242 - SplTempFileObject example
  • Example#4243 - ArrayObject::append example
  • Example#4244 - ArrayObject::asort example
  • Example#4245 - ArrayObject::__construct example
  • Example#4246 - ArrayObject::count example
  • Example#4247 - ArrayObject::exchangeArray example
  • Example#4248 - ArrayObject::getArrayCopy example
  • Example#4249 - ArrayObject::getFlags example
  • Example#4250 - ArrayObject::getIterator example
  • Example#4251 - ArrayObject::getIteratorClass example
  • Example#4252 - ArrayObject::ksort example
  • Example#4253 - ArrayObject::natcasesort example
  • Example#4254 - ArrayObject::natsort example
  • Example#4255 - ArrayObject::offsetExists example
  • Example#4256 - ArrayObject::offsetGet example
  • Example#4257 - ArrayObject::offsetSet example
  • Example#4258 - ArrayObject::offsetUnset example
  • Example#4259 - ArrayObject::serialize example
  • Example#4260 - ArrayObject::setFlags example
  • Example#4261 - ArrayObject::setIteratorClass example
  • Example#4262 - ArrayObject::uasort example
  • Example#4263 - ArrayObject::uksort example
  • Example#4264 - Using file_get_contents to retrieve data from multiple sources
  • Example#4265 - Making a POST request to an https server
  • Example#4266 - Writing data to a compressed file
  • Example#4267 - A Stream for reading/writing global variables
  • Example#4268 - Listing files from tar archives
  • Example#4269 - stream_bucket_prepend examples
  • Example#4270 - Using stream_context_create
  • Example#4271 - Using stream_context_get_default
  • Example#4272 - stream_context_get_options example
  • Example#4273 - stream_context_get_params example
  • Example#4274 - stream_context_set_default example
  • Example#4275 - A stream_copy_to_stream example
  • Example#4276 - Controlling where filters are applied
  • Example#4277 - Filter for capitalizing characters on foo-bar.txt stream
  • Example#4278 - Registering a generic filter class to match multiple filter names.
  • Example#4279 - Dynamically refiltering a stream
  • Example#4280 - stream_get_contents example
  • Example#4281 - Using stream_get_filters
  • Example#4282 - stream_get_meta_data example
  • Example#4283 - Using stream_get_transports
  • Example#4284 - stream_get_wrappers example
  • Example#4285 - Checking for the existence of a stream wrapper
  • Example#4286 - stream_is_local example
  • Example#4287 - stream_isatty example
  • Example#4288 - stream_notification_callback example
  • Example#4289 - Simple progressbar for commandline download client
  • Example#4290 - stream_resolve_include_path example
  • Example#4291 - stream_select Example
  • Example#4292 - stream_set_timeout example
  • Example#4293 - stream_set_write_buffer example
  • Example#4294 - stream_socket_client example
  • Example#4295 - Using UDP connection
  • Example#4296 - stream_socket_enable_crypto example
  • Example#4297 - A stream_socket_pair example
  • Example#4298 - stream_socket_recvfrom example
  • Example#4299 - stream_socket_sendto Example
  • Example#4300 - Using TCP server sockets
  • Example#4301 - Using UDP server sockets
  • Example#4302 - A stream_socket_shutdown example
  • Example#4303 - How to register a stream wrapper
  • Example#4304 - Basic Tidy usage
  • Example#4305 - tidy::getBody example
  • Example#4306 - tidy::cleanrepair example
  • Example#4307 - tidy::__construct example
  • Example#4308 - tidy::diagnose example
  • Example#4309 - tidy_get_error_buffer example
  • Example#4310 - tidy::getConfig example
  • Example#4311 - tidy_getopt example
  • Example#4312 - Print all options along with their documentation and default value
  • Example#4313 - tidy::getStatus example
  • Example#4314 - tidy::head example
  • Example#4315 - tidy::html example
  • Example#4316 - tidy::parseFile example
  • Example#4317 - tidy::parseString example
  • Example#4318 - tidy::repairFile example
  • Example#4319 - tidy::repairString example
  • Example#4320 - tidy::root example
  • Example#4321 - tidyNode::hasChildren example
  • Example#4322 - tidyNode::hasChildren example
  • Example#4323 - tidyNode::hasSiblings example
  • Example#4324 - Extract ASP code from a mixed HTML document
  • Example#4325 - Extract comments from a mixed HTML document
  • Example#4326 - Extract HTML code from a mixed HTML document
  • Example#4327 - Extract JSTE code from a mixed HTML document
  • Example#4328 - Extract PHP code from a mixed HTML document
  • Example#4329 - Extract text from a mixed HTML document
  • Example#4330 - ob_tidyhandler example
  • Example#4331 - tidy_access_count example
  • Example#4332 - tidy_config_count example
  • Example#4333 - tidy_error_count example
  • Example#4334 - tidy_get_output example
  • Example#4335 - tidy_warning_count example
  • Example#4336 - Kommentare mit Hilfe des Tokenizers entfernen
  • Example#4337 - PhpToken::getTokenName example
  • Example#4338 - PhpToken::is example
  • Example#4339 - Usage with array
  • Example#4340 - PhpToken::isIgnorable example
  • Example#4341 - PhpToken::__toString example
  • Example#4342 - PhpToken::tokenize example
  • Example#4343 - Extending PhpToken
  • Example#4344 - token_get_all-Beispiel
  • Example#4345 - Fehlerhaftes token_get_all-Verwendungsbeispiel
  • Example#4346 - token_get_all für eine Klasse, die ein reserviertes Wort benutzt
  • Example#4347 - token_name-Beispiele
  • Example#4348 - base64_decode-Beispiel
  • Example#4349 - base64_encode-Beispiel
  • Example#4350 - get_headers-Beispiel
  • Example#4351 - get_headers using HEAD example
  • Example#4352 - Was get_meta_tags parst
  • Example#4353 - Was get_meta_tags zurückgibt
  • Example#4354 - Einfache Verwendung von http_build_query
  • Example#4355 - http_build_query mit numerischen Index-Elementen.
  • Example#4356 - http_build_query mit verschachtelten Arrays
  • Example#4357 - Verwendung von http_build_query mit einem Objekt
  • Example#4358 - Ein parse_url-Beispiel
  • Example#4359 - Ein parse_url-Beispiel mit fehlendem Schema
  • Example#4360 - rawurldecode-Beispiel
  • Example#4361 - Übergeben eines Passworts in einer FTP-URL
  • Example#4362 - rawurlencode-Beispiel 2
  • Example#4363 - urldecode-Beispiel
  • Example#4364 - urlencode-Beispiel
  • Example#4365 - urlencode und htmlentities-Beispiel
  • Example#4366 - Einfache Ausführung von JavaScript
  • Example#4367 - Yaml Example
  • Example#4368 - Parse callback example
  • Example#4369 - Emit callback example
  • Example#4370 - yaml_emit example
  • Example#4371 - yaml_parse example
  • Example#4372 - A classic Application directory layout
  • Example#4373 - Entry
  • Example#4374 - Rewrite rule
  • Example#4375 - Application config
  • Example#4376 - Default controller
  • Example#4377 - Default view template
  • Example#4378 - Run the Application
  • Example#4379 - An PHP array example
  • Example#4380 - An ini file example
  • Example#4381 - A Bootstrapexample
  • Example#4382 - Yaf_Application::bootstrapexample
  • Example#4383 - Yaf_Application::clearLastErrorexample
  • Example#4384 - A ini config file example
  • Example#4385 - Yaf_Application::__constructexample
  • Example#4386 - Yaf_Application::__constructexample
  • Example#4387 - Yaf_Application::environexample
  • Example#4388 - Yaf_Application::executeexample
  • Example#4389 - Yaf_Application::getConfigexample
  • Example#4390 - Yaf_Application::getDispatcherexample
  • Example#4391 - Yaf_Application::getLastErrorMsgexample
  • Example#4392 - Yaf_Application::getLastErrorNoexample
  • Example#4393 - Yaf_Application::getModulesexample
  • Example#4394 - Bootstrap example
  • Example#4395 - Yaf_Dispatcher::autoRenderexample
  • Example#4396 - Yaf_Dispatcher::catchExceptionexample
  • Example#4397 - Yaf_Dispatcher::registerPluginexample
  • Example#4398 - A custom View engineexample
  • Example#4399 - Yaf_Dispatcher::setViewexample
  • Example#4400 - Yaf_Dispatcher::throwexceptionexample
  • Example#4401 - Yaf_Dispatcher::throwexceptionexample
  • Example#4402 - Yaf_Config_Iniexample
  • Example#4403 - define action in a separate file
  • Example#4404 - Dummy_action.php
  • Example#4405 - Yaf_Controller_Abstract::forwardexample
  • Example#4406 - Yaf_Action_Abstract::executeexample
  • Example#4407 - Yaf_Action_Abstract::executeexample
  • Example#4408 - Yaf_View_Simple::assignexample
  • Example#4409 - templateexample
  • Example#4410 - Yaf_View_Simple::assignRefexample
  • Example#4411 - templateexample
  • Example#4412 - Yaf_View_Simple::clearexample
  • Example#4413 - Yaf_View_Simple::__constructorexample
  • Example#4414 - Yaf_View_Simple::__setexample
  • Example#4415 - Config example
  • Example#4416 - Register localnamespace
  • Example#4417 - Load class example
  • Example#4418 - Load namespace class example
  • Example#4419 - MVC class loading example
  • Example#4420 - MVC class distinctions
  • Example#4421 - MVC loading example
  • Example#4422 - Yaf_Loader::registerNamespaceexample
  • Example#4423 - Yaf_Loader::registerLocalNamespaceexample
  • Example#4424 - Yaf_Loader::registerNamespaceexample
  • Example#4425 - Plugin example
  • Example#4426 - Yaf_Plugin_Abstract::routerShutdownexample
  • Example#4427 - Yaf_Response_Abstract::appendBodyexample
  • Example#4428 - Yaf_Response_Abstract::getBodyexample
  • Example#4429 - Yaf_Response_Abstract::prependBodyexample
  • Example#4430 - Yaf_Response_Abstract::responseexample
  • Example#4431 - Yaf_Response_Abstract::setBodyexample
  • Example#4432 - Yaf_Route_Map::assembleexample
  • Example#4433 - Yaf_Route_Mapexample
  • Example#4434 - Yaf_Route_Mapexample
  • Example#4435 - Yaf_Route_Mapexample
  • Example#4436 - Yaf_Route_Regex::assembleexample
  • Example#4437 - Yaf_Route_Regexexample
  • Example#4438 - Yaf_Route_Regex(as of 2.3.0)example
  • Example#4439 - Yaf_Route_Regex and named capture ground(as of 2.3.0)example
  • Example#4440 - Yaf_Route_Regexexample
  • Example#4441 - Yaf_Route_Rewrite::assembleexample
  • Example#4442 - Yaf_Route_Rewriteexample
  • Example#4443 - Yaf_Route_Rewriteexample
  • Example#4444 - Yaf_Route_Rewrite(as of 2.3.0)example
  • Example#4445 - Rewrite rule for Apache
  • Example#4446 - Rewrite rule for Apache
  • Example#4447 - Rewrite rule for Lighttpd
  • Example#4448 - Rewrite rule for Nginx
  • Example#4449 - Yaf_Route_Static(default route)example
  • Example#4450 - application.iniexample
  • Example#4451 - Yaf_Dispatcher::autoConfigexample
  • Example#4452 - Yaf_Dispatcher::autoRenderexample
  • Example#4453 - Register some routes in Bootstrap
  • Example#4454 - plugin Dummy.php (under application.directory/plugins)
  • Example#4455 - Yaf_Route_Simple::assembleexample
  • Example#4456 - Yaf_Route_Simple::routeexample
  • Example#4457 - Yaf_Route_Simple::routeexample
  • Example#4458 - Yaf_Route_Static::assembleexample
  • Example#4459 - Yaf_Route_Static::routeexample
  • Example#4460 - Yaf_Route_Supervar::assembleexample
  • Example#4461 - Yaf_Route_Supervarexample
  • Example#4462 - INI example
  • Example#4463 - INI sections example
  • Example#4464 - INIexample
  • Example#4465 - Taintexample
  • Example#4466 - Vector
  • Example#4467 - Map
  • Example#4468 - Ds\Collection::clear example
  • Example#4469 - Ds\Collection::copy example
  • Example#4470 - Ds\Collection::isEmpty example
  • Example#4471 - Ds\Collection::toArray example
  • Example#4472 - Ds\Hashable::hash example
  • Example#4473 - Ds\Sequence::allocate example
  • Example#4474 - Ds\Sequence::apply example
  • Example#4475 - Ds\Sequence::capacity example
  • Example#4476 - Ds\Sequence::contains example
  • Example#4477 - Ds\Sequence::filter example using callback function
  • Example#4478 - Ds\Sequence::filter example without a callback function
  • Example#4479 - Ds\Sequence::find example
  • Example#4480 - Ds\Sequence::first example
  • Example#4481 - Ds\Sequence::get example
  • Example#4482 - Ds\Sequence::get example using array syntax
  • Example#4483 - Ds\Sequence::insert example
  • Example#4484 - Ds\Sequence::join example using a separator string
  • Example#4485 - Ds\Sequence::join example without a separator string
  • Example#4486 - Ds\Sequence::last example
  • Example#4487 - Ds\Sequence::map example
  • Example#4488 - Ds\Sequence::merge example
  • Example#4489 - Ds\Sequence::pop example
  • Example#4490 - Ds\Sequence::push example
  • Example#4491 - Ds\Sequence::reduce with initial value example
  • Example#4492 - Ds\Sequence::reduce without an initial value example
  • Example#4493 - Ds\Sequence::remove example
  • Example#4494 - Ds\Sequence::reverse example
  • Example#4495 - Ds\Sequence::reversed example
  • Example#4496 - Ds\Sequence::rotate example
  • Example#4497 - Ds\Sequence::set example
  • Example#4498 - Ds\Sequence::set example using array syntax
  • Example#4499 - Ds\Sequence::shift example
  • Example#4500 - Ds\Sequence::slice example
  • Example#4501 - Ds\Sequence::sort example
  • Example#4502 - Ds\Sequence::sort example using a comparator
  • Example#4503 - Ds\Sequence::sorted example
  • Example#4504 - Ds\Sequence::sorted example using a comparator
  • Example#4505 - Ds\Sequence::sum integer example
  • Example#4506 - Ds\Sequence::sum float example
  • Example#4507 - Ds\Sequence::unshift example
  • Example#4508 - Ds\Vector::allocate example
  • Example#4509 - Ds\Vector::apply example
  • Example#4510 - Ds\Vector::capacity example
  • Example#4511 - Ds\Vector::clear example
  • Example#4512 - Ds\Vector::__construct example
  • Example#4513 - Ds\Vector::contains example
  • Example#4514 - Ds\Vector::copy example
  • Example#4515 - Ds\Vector::filter example using callback function
  • Example#4516 - Ds\Vector::filter example without a callback function
  • Example#4517 - Ds\Vector::find example
  • Example#4518 - Ds\Vector::first example
  • Example#4519 - Ds\Vector::get example
  • Example#4520 - Ds\Vector::get example using array syntax
  • Example#4521 - Ds\Vector::insert example
  • Example#4522 - Ds\Vector::isEmpty example
  • Example#4523 - Ds\Vector::join example using a separator string
  • Example#4524 - Ds\Vector::join example without a separator string
  • Example#4525 - Ds\Vector::last example
  • Example#4526 - Ds\Vector::map example
  • Example#4527 - Ds\Vector::merge example
  • Example#4528 - Ds\Vector::pop example
  • Example#4529 - Ds\Vector::push example
  • Example#4530 - Ds\Vector::reduce with initial value example
  • Example#4531 - Ds\Vector::reduce without an initial value example
  • Example#4532 - Ds\Vector::remove example
  • Example#4533 - Ds\Vector::reverse example
  • Example#4534 - Ds\Vector::reversed example
  • Example#4535 - Ds\Vector::rotate example
  • Example#4536 - Ds\Vector::set example
  • Example#4537 - Ds\Vector::set example using array syntax
  • Example#4538 - Ds\Vector::shift example
  • Example#4539 - Ds\Vector::slice example
  • Example#4540 - Ds\Vector::sort example
  • Example#4541 - Ds\Vector::sort example using a comparator
  • Example#4542 - Ds\Vector::sorted example
  • Example#4543 - Ds\Vector::sorted example using a comparator
  • Example#4544 - Ds\Vector::sum integer example
  • Example#4545 - Ds\Vector::sum float example
  • Example#4546 - Ds\Vector::toArray example
  • Example#4547 - Ds\Vector::unshift example
  • Example#4548 - Ds\Deque::allocate example
  • Example#4549 - Ds\Deque::apply example
  • Example#4550 - Ds\Deque::capacity example
  • Example#4551 - Ds\Deque::clear example
  • Example#4552 - Ds\Deque::__construct example
  • Example#4553 - Ds\Deque::contains example
  • Example#4554 - Ds\Deque::copy example
  • Example#4555 - Ds\Deque::filter example using callback function
  • Example#4556 - Ds\Deque::filter example without a callback function
  • Example#4557 - Ds\Deque::find example
  • Example#4558 - Ds\Deque::first example
  • Example#4559 - Ds\Deque::get example
  • Example#4560 - Ds\Deque::get example using array syntax
  • Example#4561 - Ds\Deque::insert example
  • Example#4562 - Ds\Deque::isEmpty example
  • Example#4563 - Ds\Deque::join example using a separator string
  • Example#4564 - Ds\Deque::join example without a separator string
  • Example#4565 - Ds\Deque::last example
  • Example#4566 - Ds\Deque::map example
  • Example#4567 - Ds\Deque::merge example
  • Example#4568 - Ds\Deque::pop example
  • Example#4569 - Ds\Deque::push example
  • Example#4570 - Ds\Deque::reduce with initial value example
  • Example#4571 - Ds\Deque::reduce without an initial value example
  • Example#4572 - Ds\Deque::remove example
  • Example#4573 - Ds\Deque::reverse example
  • Example#4574 - Ds\Deque::reversed example
  • Example#4575 - Ds\Deque::rotate example
  • Example#4576 - Ds\Deque::set example
  • Example#4577 - Ds\Deque::set example using array syntax
  • Example#4578 - Ds\Deque::shift example
  • Example#4579 - Ds\Deque::slice example
  • Example#4580 - Ds\Deque::sort example
  • Example#4581 - Ds\Deque::sort example using a comparator
  • Example#4582 - Ds\Deque::sorted example
  • Example#4583 - Ds\Deque::sorted example using a comparator
  • Example#4584 - Ds\Deque::sum integer example
  • Example#4585 - Ds\Deque::sum float example
  • Example#4586 - Ds\Deque::toArray example
  • Example#4587 - Ds\Deque::unshift example
  • Example#4588 - Ds\Map::allocate example
  • Example#4589 - Ds\Map::apply example
  • Example#4590 - Ds\Map::capacity example
  • Example#4591 - Ds\Map::clear example
  • Example#4592 - Ds\Map::__construct example
  • Example#4593 - Ds\Map::copy example
  • Example#4594 - Ds\Map::diff example
  • Example#4595 - Ds\Map::filter example using callback function
  • Example#4596 - Ds\Map::filter example without a callback function
  • Example#4597 - Ds\Map::first example
  • Example#4598 - Ds\Map::get example
  • Example#4599 - Ds\Map::get example using array syntax
  • Example#4600 - Ds\Map::hasKey example
  • Example#4601 - Ds\Map::hasValue example
  • Example#4602 - Ds\Map::intersect example
  • Example#4603 - Ds\Map::isEmpty example
  • Example#4604 - Ds\Map::keys example
  • Example#4605 - Ds\Map::ksort example
  • Example#4606 - Ds\Map::ksort example using a comparator
  • Example#4607 - Ds\Map::ksorted example
  • Example#4608 - Ds\Map::ksorted example using a comparator
  • Example#4609 - Ds\Map::last example
  • Example#4610 - Ds\Map::map example
  • Example#4611 - Ds\Map::merge example
  • Example#4612 - Ds\Map::pairs example
  • Example#4613 - Ds\Map::put example
  • Example#4614 - Ds\Map::put example using objects as keys
  • Example#4615 - Ds\Map::putAll example
  • Example#4616 - Ds\Map::reduce with initial value example
  • Example#4617 - Ds\Map::reduce without an initial value example
  • Example#4618 - Ds\Map::remove example
  • Example#4619 - Ds\Map::reverse example
  • Example#4620 - Ds\Map::reversed example
  • Example#4621 - Ds\Map::skip example
  • Example#4622 - Ds\Map::slice example
  • Example#4623 - Ds\Map::sort example
  • Example#4624 - Ds\Map::sort example using a comparator
  • Example#4625 - Ds\Map::sort example
  • Example#4626 - Ds\Map::sort example using a comparator
  • Example#4627 - Ds\Map::sum integer example
  • Example#4628 - Ds\Map::sum float example
  • Example#4629 - Ds\Map::toArray example
  • Example#4630 - Ds\Map::union example
  • Example#4631 - Ds\Map::values example
  • Example#4632 - Ds\Map::xor example
  • Example#4633 - Ds\Pair::clear example
  • Example#4634 - Ds\Pair::copy example
  • Example#4635 - Ds\Pair::isEmpty example
  • Example#4636 - Ds\Pair::toArray example
  • Example#4637 - Ds\Set::add example using integers
  • Example#4638 - Ds\Set::add example using objects
  • Example#4639 - Ds\Set::allocate example
  • Example#4640 - Ds\Set::capacity example
  • Example#4641 - Ds\Set::clear example
  • Example#4642 - Ds\Set::__construct example
  • Example#4643 - Ds\Set::contains example
  • Example#4644 - Ds\Set::copy example
  • Example#4645 - Ds\Set::diff example
  • Example#4646 - Ds\Set::filter example using callback function
  • Example#4647 - Ds\Set::filter example without a callback function
  • Example#4648 - Ds\Set::first example
  • Example#4649 - Ds\Set::get example
  • Example#4650 - Ds\Set::get example using array syntax
  • Example#4651 - Ds\Set::intersect example
  • Example#4652 - Ds\Set::isEmpty example
  • Example#4653 - Ds\Set::join example using a separator string
  • Example#4654 - Ds\Set::join example without a separator string
  • Example#4655 - Ds\Set::last example
  • Example#4656 - Ds\Set::merge example
  • Example#4657 - Ds\Set::reduce with initial value example
  • Example#4658 - Ds\Set::reduce without an initial value example
  • Example#4659 - Ds\Set::remove example
  • Example#4660 - Ds\Set::reverse example
  • Example#4661 - Ds\Set::reversed example
  • Example#4662 - Ds\Set::slice example
  • Example#4663 - Ds\Set::sort example
  • Example#4664 - Ds\Set::sort example using a comparator
  • Example#4665 - Ds\Set::sorted example
  • Example#4666 - Ds\Set::sorted example using a comparator
  • Example#4667 - Ds\Set::sum integer example
  • Example#4668 - Ds\Set::sum float example
  • Example#4669 - Ds\Set::toArray example
  • Example#4670 - Ds\Set::union example
  • Example#4671 - Ds\Set::xor example
  • Example#4672 - Ds\Stack::clear example
  • Example#4673 - Ds\Stack::__construct example
  • Example#4674 - Ds\Stack::copy example
  • Example#4675 - Ds\Stack::isEmpty example
  • Example#4676 - Ds\Stack::peek example
  • Example#4677 - Ds\Stack::pop example
  • Example#4678 - Ds\Stack::push example
  • Example#4679 - Ds\Stack::toArray example
  • Example#4680 - Ds\Queue::allocate example
  • Example#4681 - Ds\Queue::capacity example
  • Example#4682 - Ds\Queue::clear example
  • Example#4683 - Ds\Queue::__construct example
  • Example#4684 - Ds\Queue::copy example
  • Example#4685 - Ds\Queue::isEmpty example
  • Example#4686 - Ds\Queue::peek example
  • Example#4687 - Ds\Queue::pop example
  • Example#4688 - Ds\Queue::push example
  • Example#4689 - Ds\Queue::toArray example
  • Example#4690 - Ds\PriorityQueue::allocate example
  • Example#4691 - Ds\PriorityQueue::capacity example
  • Example#4692 - Ds\PriorityQueue::clear example
  • Example#4693 - Ds\PriorityQueue::__construct example
  • Example#4694 - Ds\PriorityQueue::copy example
  • Example#4695 - Ds\PriorityQueue::isEmpty example
  • Example#4696 - Ds\PriorityQueue::peek example
  • Example#4697 - Ds\PriorityQueue::pop example
  • Example#4698 - Ds\PriorityQueue::push example
  • Example#4699 - Ds\PriorityQueue::toArray example
  • Example#4700 - Nutzung von PHPs cURL-Modul, um die Homepage von example.com herunterzuladen
  • Example#4701 - Initialisierung einer neuen cURL-Session und das abrufen einer Webseite
  • Example#4702 - cURL-Handle kopieren
  • Example#4703 - curl_errno-Beispiel
  • Example#4704 - curl_error-Beispiel
  • Example#4705 - curl_escape Beispiel
  • Example#4706 - Abrufen einer Webseite
  • Example#4707 - curl_getinfo-Beispiel
  • Example#4708 - curl_getinfo-Beispiel mit opt Parameter
  • Example#4709 - Abrufen einer Webseite
  • Example#4710 - curl_multi_add_handle-Beispiel
  • Example#4711 - curl_multi_close example
  • Example#4712 - curl_multi_exec-Beispiel
  • Example#4713 - Ein curl_multi_info_read-Beispiel
  • Example#4714 - curl_multi_init-Beispiel
  • Example#4715 - curl_multi_strerror Beispiel
  • Example#4716 - curl_reset example
  • Example#4717 - Initialisierung einer cURL-Session und holen einer Webseite
  • Example#4718 - Eine eigene Implementierung von curl_setopt_array
  • Example#4719 - Initialisierung einer neuen cURL-Session und das Abrufen einer Webseite
  • Example#4720 - Datei-Upload (missbilligt von PHP 5.5.0 an)
  • Example#4721 - curl_share_setopt example
  • Example#4722 - curl_share_init example
  • Example#4723 - curl_share_setopt example
  • Example#4724 - curl_errno example
  • Example#4725 - curl_escape example
  • Example#4726 - Beispiel für curl_version
  • Example#4727 - CURLFile::__construct Beispiel
  • Example#4728 - CURLFile::__construct Beispiel zum Upload mehrerer Dateien
  • Example#4729 - Simple HTTP client
  • Example#4730 - HTTP client using asynchronous DNS resolver
  • Example#4731 - Echo server
  • Example#4732 - SSL echo server
  • Example#4733 - Signal handler
  • Example#4734 - Use libevent's loop to process requests of `eio' extension
  • Example#4735 - Miscellaneous
  • Example#4736 - Simple HTTP server
  • Example#4737 - Simple HTTPS server
  • Example#4738 - OpenSSL connection
  • Example#4739 - EventHttpConnection::makeRequest example
  • Example#4740 - Connection listener based on a UNIX domain socket
  • Example#4741 - Simple SMTP server
  • Example#4742 - Handling SIGTERM signal
  • Example#4743 - Event::addSignal example
  • Example#4744 - Event::addTimer example
  • Example#4745 - EventBase::getFeatures example
  • Example#4746 - EventBase::getMethod example
  • Example#4747 - EventBuffer::search example
  • Example#4748 - EventBufferEvent::connect example
  • Example#4749 - Connect to UNIX domain socket which presumably is served by a server, read response from the server and output it to the console
  • Example#4750 - EventBufferEvent::connectHost example
  • Example#4751 - Buffer event's read callback
  • Example#4752 - EventBufferEvent::getOutput example
  • Example#4753 - EventBufferEvent::sslError example
  • Example#4754 - Simple SMTP server
  • Example#4755 - EventConfig::avoidMethod example
  • Example#4756 - EventConfig::__construct example
  • Example#4757 - EventConfig::requireFeatures example
  • Example#4758 - EventHttp::accept example
  • Example#4759 - EventHttp::addServerAlias example
  • Example#4760 - EventHttp::bind example
  • Example#4761 - Simple HTTP server
  • Example#4762 - EventHttp::setCallback example
  • Example#4763 - EventHttp::setDefaultCallback example
  • Example#4764 - EventHttpConnection::makeRequest example
  • Example#4765 - EventHttpConnection::setCloseCallback example
  • Example#4766 - EventHttpRequest::__construct example
  • Example#4767 - EventHttpRequest::sendError example
  • Example#4768 - EventListener::__construct example
  • Example#4769 - EventSslContext::__construct example
  • Example#4770 - FTP-Beispiel
  • Example#4771 - ftp_alloc-Beispiel
  • Example#4772 - ftp_cdup-Beispiel
  • Example#4773 - ftp_chdir-Beispiel
  • Example#4774 - ftp_chmod-Beispiel
  • Example#4775 - ftp_close-Beispiel
  • Example#4776 - ftp_connect-Beispiel
  • Example#4777 - ftp_delete-Beispiel
  • Example#4778 - ftp_exec-Beispiel
  • Example#4779 - ftp_fget-Beispiel
  • Example#4780 - ftp_fput-Beispiel
  • Example#4781 - ftp_get_option-Beispiel
  • Example#4782 - ftp_get-Beispiel
  • Example#4783 - ftp_login-Beispiel
  • Example#4784 - ftp_mdtm-Beispiel
  • Example#4785 - ftp_mkdir-Beispiel
  • Example#4786 - ftp_mlsd example
  • Example#4787 - ftp_nb_continue-Beispiel
  • Example#4788 - ftp_nb_fget-Beispiel
  • Example#4789 - ftp_nb_fput-Beispiel
  • Example#4790 - ftp_nb_get-Beispiel
  • Example#4791 - Einen Download mit ftp_nb_get fortsetzen
  • Example#4792 - Einen Download mit Hilfe von ftp_nb_get an Position 100 fortsetzen und in eine neue Datei schreiben
  • Example#4793 - ftp_nb_put-Beispiel
  • Example#4794 - Einen Upload mit ftp_nb_put wieder aufnehmen
  • Example#4795 - ftp_nlist-Beispiel
  • Example#4796 - ftp_pasv-Beispiel
  • Example#4797 - ftp_put-Beispiel
  • Example#4798 - ftp_pwd-Beispiel
  • Example#4799 - ftp_raw für den manuellen Login auf einem FTP-Server nutzen.
  • Example#4800 - ftp_rawlist-Beispiel
  • Example#4801 - ftp_rename-Beispiel
  • Example#4802 - ftp_rmdir-Beispiel
  • Example#4803 - ftp_set_option-Beispiel
  • Example#4804 - Sending a SITE command to an ftp server
  • Example#4805 - ftp_size example
  • Example#4806 - ftp_ssl_connect-Beispiel
  • Example#4807 - ftp_systype-Beispiel
  • Example#4808 - Basic Gearman client and worker
  • Example#4809 - Basic Gearman client and worker, background
  • Example#4810 - Basic Gearman client and worker, submitting tasks
  • Example#4811 - Adding two job servers
  • Example#4812 - Add two job servers
  • Example#4813 - Basic submission of two tasks
  • Example#4814 - Basic submission of two tasks with passing application context
  • Example#4815 - Two tasks, one background and one not
  • Example#4816 - A high priority task along with two normal tasks
  • Example#4817 - A low priority task along with two normal tasks
  • Example#4818 - Monitor completion of multiple background tasks
  • Example#4819 - Simple job submission with immediate return
  • Example#4820 - Submitting a job and retrieving incremental status
  • Example#4821 - Submit and monitor a background job
  • Example#4822 - Simple job submission with immediate return
  • Example#4823 - Submitting a job and retrieving incremental status
  • Example#4824 - Get the status of a long running job
  • Example#4825 - Monitor the status of a long running background job
  • Example#4826 - Simple worker making use of extra application context data
  • Example#4827 - Add alternate Gearman servers
  • Example#4828 - Add two job servers
  • Example#4829 - GearmanWorker::setId example
  • Example#4830 - A simple worker with a 5 second timeout
  • Example#4831 - Running worker in non-blocking mode
  • Example#4832 - GearmanWorker::work example
  • Example#4833 - Testing support for paged result control
  • Example#4834 - LDAP Such-Beispiel
  • Example#4835 - Binden mit Ppolicy Information
  • Example#4836 - Ändern der Beschreibung, falls diese nicht leer ist
  • Example#4837 - Lesen einiger Werte vor dem Löschen
  • Example#4838 - Löschen einer Referenz
  • Example#4839 - Paginierung für eine Suche verwenden
  • Example#4840 - Komplettes Beispiel mit authentifizierter Verbindung
  • Example#4841 - Authentifizierung mit LDAP
  • Example#4842 - Anonymes LDAP Bind
  • Example#4843 - Komplettes Beispiel einer Kennwort-Überprüfung
  • Example#4844 - Verbindung zu einem LDAP-Server
  • Example#4845 - Sichere Verbindung zu einem LDAP-Server
  • Example#4846 - LDAP pagination
  • Example#4847 - LDAP pagination
  • Example#4848 - ldap_count_entries-Beispiel
  • Example#4849 - Aufzählung aller LDAP-Fehlermeldungen
  • Example#4850 - Erzeugen und Abfangen eines Fehlers
  • Example#4851 - Searching for an email address
  • Example#4852 - PASSWD extended operation
  • Example#4853 - Whoami extended operation
  • Example#4854 - Anzeigen der Liste der Merkmale für einen ausgewählten Verzeichnis-Eintrag
  • Example#4855 - Prüfen der Protokollversion
  • Example#4856 - Liste alle Werte des Merkmals "mail" für einen Verzeichnis-Eintrag auf
  • Example#4857 - Erzeuge einer Liste aller Organisationseinheiten einer Organisation
  • Example#4858 - Add a telephone number to a contact
  • Example#4859 - Rename a user
  • Example#4860 - Add two e-mail addresses to a user
  • Example#4861 - Change a user's password
  • Example#4862 - Change a user's password (Active Directory)
  • Example#4863 - ldap_parse_result-Beispiel
  • Example#4864 - LDAP-Suche
  • Example#4865 - Setzen der Protokollversion
  • Example#4866 - Setzen der Server Kontrollen
  • Example#4867 - LDAP-Sortierung
  • Example#4868 - Memcache Beispiele
  • Example#4869 - Memcache als Session-Handler verwenden
  • Example#4870 - Memcache::add example
  • Example#4871 - Memcache::addServer example
  • Example#4872 - Memcache::close example
  • Example#4873 - Memcache::connect example
  • Example#4874 - Memcache::decrement example
  • Example#4875 - Memcache::delete example
  • Example#4876 - Memcache::flush example
  • Example#4877 - Memcache::get example
  • Example#4878 - Memcache::getExtendedStats example
  • Example#4879 - Memcache::getServerStatus example
  • Example#4880 - Memcache::getVersion example
  • Example#4881 - Memcache::increment example
  • Example#4882 - Memcache::pconnect example
  • Example#4883 - Memcache::replace example
  • Example#4884 - Memcache::set example
  • Example#4885 - Memcache::set example
  • Example#4886 - Memcache::setCompressThreshold example
  • Example#4887 - Memcache::setServerParams example
  • Example#4888 - Result callback example
  • Example#4889 - Read-through callback example
  • Example#4890 - Memcached::addServer example
  • Example#4891 - Memcached::addServers example
  • Example#4892 - Memcached::append example
  • Example#4893 - Memcached::cas example
  • Example#4894 - Creating a Memcached object
  • Example#4895 - Memcached::decrement example
  • Example#4896 - Memcached::delete example
  • Example#4897 - Memcached::fetch example
  • Example#4898 - Memcached::getDelayed example
  • Example#4899 - Memcached::flush example
  • Example#4900 - Memcached::get example #1
  • Example#4901 - Memcached::get example #2
  • Example#4902 - Memcached::getDelayed example
  • Example#4903 - Memcached::getMulti example for Memcached v3
  • Example#4904 - Memcached::getMulti example for Memcached v1 and v2
  • Example#4905 - Memcached::GET_PRESERVE_ORDER example for Memcached v3
  • Example#4906 - Memcached::GET_PRESERVE_ORDER example for Memcached v1 and v2
  • Example#4907 - Retrieving Memcached options
  • Example#4908 - Memcached::getResultCode example
  • Example#4909 - Memcached::getResultMessage example
  • Example#4910 - Memcached::getServerByKey example
  • Example#4911 - Memcached::getServerList example
  • Example#4912 - Memcached::getStats example
  • Example#4913 - Memcached::getVersion example
  • Example#4914 - Memcached::increment example
  • Example#4915 - Memcached::prepend example
  • Example#4916 - Memcached::set example
  • Example#4917 - Memcached::setByKey example
  • Example#4918 - Memcached::setMulti example
  • Example#4919 - Setting a Memcached option
  • Example#4920 - Setting Memcached options
  • Example#4921 - mqseries_back example
  • Example#4922 - mqseries_begin example
  • Example#4923 - mqseries_close example
  • Example#4924 - mqseries_cmit example
  • Example#4925 - mqseries_conn example
  • Example#4926 - mqseries_connx example
  • Example#4927 - mqseries_connx example using SSL connection & OCSP Responder URL
  • Example#4928 - mqseries_disc example
  • Example#4929 - mqseries_get example
  • Example#4930 - mqseries_inq example
  • Example#4931 - mqseries_open example
  • Example#4932 - mqseries_put example
  • Example#4933 - mqseries_strerror example
  • Example#4934 - Benutzung von dns_get_record
  • Example#4935 - Benutzung von dns_get_record und DNS_ANY
  • Example#4936 - fsockopen-Beispiel
  • Example#4937 - Eine UDP-Verbindung nutzen
  • Example#4938 - Ein einfaches gethostbyaddr-Beispiel
  • Example#4939 - Ein einfaches gethostbyname-Beispiel
  • Example#4940 - gethostbynamel-Beispiel
  • Example#4941 - A simple gethostname example
  • Example#4942 - getprotobyname-Beispiel
  • Example#4943 - getservbyname-Beispiel
  • Example#4944 - header_register_callback example
  • Example#4945 - Unsetting specific header.
  • Example#4946 - Unsetting all previously set headers.
  • Example#4947 - Download-Dialog
  • Example#4948 - Caching-Direktiven
  • Example#4949 - Beispiele zur Verwendung von headers_list
  • Example#4950 - Beispiel zur Verwendung von headers_sent
  • Example#4951 - Using http_response_code in a web server environment
  • Example#4952 - Using http_response_code in a CLI environment
  • Example#4953 - inet_ntop-Beispiel
  • Example#4954 - inet_pton-Beispiel
  • Example#4955 - ip2long-Beispiel:
  • Example#4956 - Eine IP-Adresse anzeigen
  • Example#4957 - setcookie-Beispiele:
  • Example#4958 - setcookie-Beispiele zum Löschen
  • Example#4959 - setcookie und Arrays
  • Example#4960 - Die Verwendung von syslog:
  • Example#4961 - Procedural usage of rrd
  • Example#4962 - OO usage of rrd
  • Example#4963 - RRDGraph::setOptions example
  • Example#4964 - Set multiple color options
  • Example#4965 - RRDUpdater::update examples
  • Example#4966 - Fetch instrumented calls
  • Example#4967 - Fetch the list of functions scoutapm will instrument
  • Example#4968 - snmp_get_quick_print-Beispiel
  • Example#4969 - Using snmp_get_valueretrieval
  • Example#4970 - Using snmp_read_mib
  • Example#4971 - Using snmp_set_enum_print
  • Example#4972 - Using snmprealwalk
  • Example#4973 - Verwendung von snmp_set_quick_print
  • Example#4974 - Using snmp_set_valueretrieval
  • Example#4975 - Using snmp2_get
  • Example#4976 - Using snmp2_get_next
  • Example#4977 - Using snmp2_real_walk
  • Example#4978 - Using snmp2_set
  • Example#4979 - Using snmp2_set for setting BITS SNMP object id
  • Example#4980 - snmp2_walk Example
  • Example#4981 - Using snmp3_get
  • Example#4982 - Using snmp3_getnext
  • Example#4983 - Using snmp3_real_walk
  • Example#4984 - Using snmp3_set
  • Example#4985 - Using snmp3_set for setting BITS SNMP object id
  • Example#4986 - snmp3_walk Example
  • Example#4987 - Verwendung von snmpget
  • Example#4988 - Using snmpgetnext
  • Example#4989 - Using snmprealwalk
  • Example#4990 - Verwendung von snmpset
  • Example#4991 - Verwendung von snmpset zum Setzen von BITS-SNMP-Objektkennungen
  • Example#4992 - snmpwalk-Beispiel
  • Example#4993 - snmpwalkoid-Beispiel
  • Example#4994 - SNMP::close example
  • Example#4995 - Fetching sysLocation
  • Example#4996 - Single SNMP object
  • Example#4997 - Multiple SNMP objects
  • Example#4998 - SNMP::getErrno example
  • Example#4999 - SNMP::getError example
  • Example#5000 - Single SNMP object
  • Example#5001 - Miltiple SNMP objects
  • Example#5002 - Set single SNMP object id
  • Example#5003 - Set multiple values using single SNMP::set call
  • Example#5004 - Using SNMP::set for setting BITS SNMP object id
  • Example#5005 - SNMP::setSecurity example
  • Example#5006 - SNMP::walk example
  • Example#5007 - suffixAsKey example
  • Example#5008 - Socket-Beispiel: Einfacher TCP/IP-Server
  • Example#5009 - Socket-Beispiel: Einfacher TCP/IP-Client
  • Example#5010 - Beispiel: Quell-Adresse setzen mit socket_bind:
  • Example#5011 - socket_create_pair-Beispiel
  • Example#5012 - socket_create_pair-IPC-Beispiel
  • Example#5013 - socket_get_option-Beispiel
  • Example#5014 - socket_import_stream example
  • Example#5015 - socket_last_error-Beispiel
  • Example#5016 - socket_recv-Beispiel
  • Example#5017 - socket_recvfrom-Beispiel
  • Example#5018 - null mit socket_select benutzen:
  • Example#5019 - Rückgaben von socket_select verstehen
  • Example#5020 - socket_select-Beispiel
  • Example#5021 - socket_sendto-Beispiel
  • Example#5022 - socket_set_block-Beispiel
  • Example#5023 - socket_set_nonblock-Beispiel
  • Example#5024 - socket_set_option-Beispiel
  • Example#5025 - socket_strerror-Beispiel
  • Example#5026 - Authenticating with a ssh agent
  • Example#5027 - Authentication using a public hostkey
  • Example#5028 - Retrieving a list of authentication methods
  • Example#5029 - Authenticating with a password
  • Example#5030 - Authentication using a public key
  • Example#5031 - ssh2_connect example
  • Example#5032 - Executing a command
  • Example#5033 - Opening a shell and retrieving the stderr stream associated with it
  • Example#5034 - Checking the fingerprint against a known value
  • Example#5035 - Determining what methods were negotiated
  • Example#5036 - Adding a publickey with ssh2_publickey_add
  • Example#5037 - Listing authorized keys with ssh2_publickey_list
  • Example#5038 - Downloading a file via SCP
  • Example#5039 - Uploading a file via SCP
  • Example#5040 - Changing the mode of a file on a remote server
  • Example#5041 - Stating a symbolic link via SFTP
  • Example#5042 - Creating a directory on a remote server
  • Example#5043 - Reading a symbolic link
  • Example#5044 - Resolving a pathname
  • Example#5045 - Renaming a file via sftp
  • Example#5046 - Removing a directory on a remote server
  • Example#5047 - Stating a file via SFTP
  • Example#5048 - Creating a symbolic link
  • Example#5049 - Deleting a file
  • Example#5050 - Opening a file via SFTP
  • Example#5051 - Requesting an interactive shell
  • Example#5052 - Opening a tunnel to an arbitrary host
  • Example#5053 - Objektorientierter Stil
  • Example#5054 - Prozeduraler Stil
  • Example#5055 - stomp_connect_error example
  • Example#5056 - stomp_version example
  • Example#5057 - Objektorientierter Stil
  • Example#5058 - Prozeduraler Stil
  • Example#5059 - Objektorientierter Stil
  • Example#5060 - Prozeduraler Stil
  • Example#5061 - Objektorientierter Stil
  • Example#5062 - Prozeduraler Stil
  • Example#5063 - Objektorientierter Stil
  • Example#5064 - Prozeduraler Stil
  • Example#5065 - Objektorientierter Stil
  • Example#5066 - Prozeduraler Stil
  • Example#5067 - Objektorientierter Stil
  • Example#5068 - Prozeduraler Stil
  • Example#5069 - Objektorientierter Stil
  • Example#5070 - Prozeduraler Stil
  • Example#5071 - Objektorientierter Stil
  • Example#5072 - Prozeduraler Stil
  • Example#5073 - Objektorientierter Stil
  • Example#5074 - Prozeduraler Stil
  • Example#5075 - Train from array
  • Example#5076 - Train from a file
  • Example#5077 - svn_add example
  • Example#5078 - Default authentication example
  • Example#5079 - svn_blame example
  • Example#5080 - Basic example
  • Example#5081 - Basic example
  • Example#5082 - Basic example
  • Example#5083 - Basic example
  • Example#5084 - Basic example
  • Example#5085 - Basic example
  • Example#5086 - Diffing two revisions of a repository path
  • Example#5087 - Portably diffing two local files
  • Example#5088 - svn_export example
  • Example#5089 - Basic example
  • Example#5090 - svn_log example
  • Example#5091 - svn_ls example
  • Example#5092 - Basic example
  • Example#5093 - Basic example
  • Example#5094 - Deny all connections from localhost
  • Example#5095 - Ban an URL
  • Example#5096 - Get statistic snapshot
  • Example#5097 - Read varnish shared memory log
  • Example#5098 - VarnishAdmin::__construct example
  • Example#5099 - Parallel searching using Yaz
  • Example#5100 - CCL configuration
  • Example#5101 - CCL Parsing
  • Example#5102 - Record Update
  • Example#5103 - Array for GRS-1 record
  • Example#5104 - Working with MARCXML
  • Example#5105 - PHP function that scans titles
  • Example#5106 - Query Examples
  • Example#5107 - Sort Criterias
  • Example#5108 - A ZMQContext example
  • Example#5109 - A ZMQContext example
  • Example#5110 - A ZMQContext example
  • Example#5111 - A ZMQSocket example
  • Example#5112 - A send/recv example
  • Example#5113 - A ZMQPoll example
  • Example#5114 - zookeeper_dispatch example #1
  • Example#5115 - zookeeper_dispatch example #2
  • Example#5116 - Zookeeper::addAuth example
  • Example#5117 - Zookeeper::create example
  • Example#5118 - Zookeeper::delete example
  • Example#5119 - Zookeeper::exists example
  • Example#5120 - Zookeeper::get example
  • Example#5121 - Zookeeper::get stat example
  • Example#5122 - Zookeeper::getAcl example
  • Example#5123 - Zookeeper::getChildren example
  • Example#5124 - Zookeeper::set example
  • Example#5125 - Zookeeper::setAcl example
  • Example#5126 - Zookeeper::setDebugLevel example
  • Example#5127 - ZookeeperConfig::add example
  • Example#5128 - ZookeeperConfig::get example
  • Example#5129 - ZookeeperConfig::remove example
  • Example#5130 - ZookeeperConfig::set example
  • Example#5131 - solr_get_version example
  • Example#5132 - Contents of the BootStrap file
  • Example#5133 - Adding a document to the index
  • Example#5134 - Merging one document into another document
  • Example#5135 - Searching for documents - SolrObject responses
  • Example#5136 - Searching for documents - SolrDocument responses
  • Example#5137 - Simple TermsComponent example - basic
  • Example#5138 - Simple TermsComponent example - using a prefix
  • Example#5139 - Simple TermsComponent example - specifying a minimum frequency
  • Example#5140 - Simple Facet Example
  • Example#5141 - Simple Facet Example - with optional field override for mincount
  • Example#5142 - Facet Date Example
  • Example#5143 - Connecting to SSL-Enabled Server
  • Example#5144 - Collapsing a SolrQuery
  • Example#5145 - Solr Real Time Get (RTG) example SolrClient::getById
  • Example#5146 - SolrInputDocument::addChildDocument example
  • Example#5147 - SolrInputDocument::addChildDocuments example
  • Example#5148 - SolrDocument::toArray example
  • Example#5149 - SolrObject::__construct example
  • Example#5150 - SolrObject::offsetUnset example
  • Example#5151 - SolrClient::addDocument example
  • Example#5152 - SolrClient::addDocument example 2
  • Example#5153 - SolrClient::addDocuments example
  • Example#5154 - SolrClient::__construct example
  • Example#5155 - SolrQuery::deleteByQuery example
  • Example#5156 - SolrClient::getById example
  • Example#5157 - SolrClient::getByIds example
  • Example#5158 - SolrClient::ping example
  • Example#5159 - SolrClient::query example
  • Example#5160 - SolrClient::request example
  • Example#5161 - SolrClient::setResponseWriter example
  • Example#5162 - SolrParams::setParam example
  • Example#5163 - SolrQuery::addFacetField example
  • Example#5164 - SolrQuery::addFacetField example
  • Example#5165 - SolrQuery::addFilterQuery example
  • Example#5166 - SolrQuery::addGroupSortField example
  • Example#5167 - SolrQuery::collapse example
  • Example#5168 - SolrQuery::setExpand example
  • Example#5169 - SolrDisMaxQuery::addBigramPhraseField example
  • Example#5170 - SolrDisMaxQuery::addBoostQuery example
  • Example#5171 - SolrDisMaxQuery::addPhraseField example
  • Example#5172 - SolrDisMaxQuery::addQueryField example
  • Example#5173 - SolrDisMaxQuery::addTrigramPhraseField example
  • Example#5174 - SolrDisMaxQuery::addUserField example
  • Example#5175 - SolrDisMaxQuery::__construct example
  • Example#5176 - SolrDisMaxQuery::removeBigramPhraseField example
  • Example#5177 - SolrDisMaxQuery::removeBoostQuery example
  • Example#5178 - SolrDisMaxQuery::removePhraseField example
  • Example#5179 - SolrDisMaxQuery::removeQueryField example
  • Example#5180 - SolrDisMaxQuery::removeTrigramPhraseField example
  • Example#5181 - SolrDisMaxQuery::removeUserField example
  • Example#5182 - SolrDisMaxQuery::setBigramPhraseFields example
  • Example#5183 - SolrDisMaxQuery::setBigramPhraseSlop example
  • Example#5184 - SolrDisMaxQuery::setBoostFunction example
  • Example#5185 - SolrDisMaxQuery::setBoostQuery example
  • Example#5186 - SolrDisMaxQuery::setMinimumMatch example
  • Example#5187 - SolrDisMaxQuery::setPhraseFields example
  • Example#5188 - SolrDisMaxQuery::setPhraseSlop example
  • Example#5189 - SolrDisMaxQuery::setQueryAlt example
  • Example#5190 - SolrDisMaxQuery::setQueryPhraseSlop example
  • Example#5191 - SolrDisMaxQuery::setTieBreaker example
  • Example#5192 - SolrDisMaxQuery::setTrigramPhraseFields example
  • Example#5193 - SolrDisMaxQuery::setTrigramPhraseSlop example
  • Example#5194 - SolrDisMaxQuery::setUserFields example
  • Example#5195 - SolrDisMaxQuery::useDisMaxQueryParser example
  • Example#5196 - SolrDisMaxQuery::useEDisMaxQueryParser example
  • Example#5197 - SolrCollapseFunction::__construct example
  • Example#5198 - SolrCollapseFunction::setHint example
  • Example#5199 - SolrCollapseFunction::setMax example
  • Example#5200 - Basic usage example
  • Example#5201 - Parsen von PHP für ein Verzeichnis ausschalten mittels .htaccess
  • Example#5202 - apache_get_modules-Beispiel
  • Example#5203 - apache_get_version-Beispiel
  • Example#5204 - apache_getenv-Beispiel
  • Example#5205 - apache_lookup_uri-Beispiel
  • Example#5206 - Übergeben von Informationen zwischen PHP und Perl
  • Example#5207 - Werte in access.log loggen
  • Example#5208 - apache_request_headers-Beispiel
  • Example#5209 - apache_response_headers-Beispiel
  • Example#5210 - Eine Apache-Umgebungsvariable mit apache_setenv setzen
  • Example#5211 - getallheaders-Beispiel
  • Example#5212 - Registrierung einer Variablen mit $_SESSION.
  • Example#5213 - Aufheben der Registrierung einer Variablen mit $_SESSION.
  • Example#5214 - Zählen der Seitenaufrufe eines einzelnen Benutzers
  • Example#5215 - Beispiel-Informationen
  • Example#5216 - session_cache_expire-Beispiel
  • Example#5217 - session_cache_limiter-Beispiel
  • Example#5218 - session_create_id example with session_regenerate_id
  • Example#5219 - Löschen einer Session mit $_SESSION
  • Example#5220 - session_gc example for task managers like cron
  • Example#5221 - session_gc example for user accessible script
  • Example#5222 - session_name-Beispiel
  • Example#5223 - Ein session_regenerate_id-Beispiel
  • Example#5224 - Verhindern von verlorenen Sessions durch session_regenerate_id
  • Example#5225 - Benutzerdefierter Session-Handler; der vollständige Code ist bei SessionHandlerInterface aufgeführt
  • Example#5226 - Benutzerdefinierter Session-Save-Handler, der Objekte verwendet
  • Example#5227 - seite1.php
  • Example#5228 - seite2.php
  • Example#5229 - Die Cookie-Gültigkeitsdauer übersteuern
  • Example#5230 - Die Session lesen und schließen
  • Example#5231 - Using SessionHandler to add encryption to internal PHP save handlers.
  • Example#5232 - Example using SessionHandlerInterface
  • Example#5233 - Tokenize comma separated integer list
  • Example#5234 - Tokenize assign statement
  • Example#5235 - Simple calculator
  • Example#5236 - Parse words out from a sentence
  • Example#5237 - Beispiele gültiger Suchmuster
  • Example#5238 - Beispiele ungültiger Suchmuster
  • Example#5239 - Beispiel zum Vergleich von preg_filter und preg_replace
  • Example#5240 - preg_grep-Beispiel
  • Example#5241 - preg_last_error_msg example
  • Example#5242 - preg_last_error-Beispiel
  • Example#5243 - Alle Telefonnummern aus einem Text holen.
  • Example#5244 - Zusammengehörende HTML-Tags finden (gierig)
  • Example#5245 - Benannte Teilsuchmuster (named subpatterns)
  • Example#5246 - Die Zeichenkette "php" finden
  • Example#5247 - Die Zeichenkette "web" finden
  • Example#5248 - Den Domänen-Namen aus einer URL holen
  • Example#5249 - Benannte Teilsuchmuster (named subpatterns)
  • Example#5250 - preg_quote-Beispiel
  • Example#5251 - Kursivdruck eines Wortes in einem Text
  • Example#5252 - preg_replace_callback_array example
  • Example#5253 - preg_replace_callback und Anonyme Funktion
  • Example#5254 - preg_replace_callback-Beispiel
  • Example#5255 - preg_replace_callback unter Verwendung einer rekursiven Struktur um gekapselten BB-Code zu verarbeiten
  • Example#5256 - Die Verwendung von Rückreferenzierungen mit darauf folgenden numerischen Literalen
  • Example#5257 - Die Verwendung von preg_replace mit indizierten Arrays
  • Example#5258 - Ersetzen mehrerer Werte
  • Example#5259 - Leerzeichen entfernen
  • Example#5260 - Die Verwendung des Parameters count
  • Example#5261 - preg_split-Beispiel: Eine Zeichenkette in ihre Bestandteile zerlegen
  • Example#5262 - Eine Zeichenkette in einzelne Zeichen zerlegen
  • Example#5263 - Eine Zeichenkette in Übereinstimmungen mit dem Suchmuster und deren Versatz zerlegen
  • Example#5264 - Beispiele regulärer Ausdrücke
  • Example#5265 - ereg_replace-Beispiel
  • Example#5266 - ereg_replace-Beispiel
  • Example#5267 - Ersetzen von URLs durch Links
  • Example#5268 - ereg-Beispiel
  • Example#5269 - Suchergebnisse hervorheben
  • Example#5270 - eregi-Beispiel
  • Example#5271 - split-Beispiel
  • Example#5272 - split-Beispiel
  • Example#5273 - spliti-Beispiel
  • Example#5274 - sql_regcase-Beispiel
  • Example#5275 - addcslashes-Beispiel
  • Example#5276 - Ein addslashes-Beispiel
  • Example#5277 - chr-Beispiel
  • Example#5278 - Überlauf-Verhalten
  • Example#5279 - Erstellen eines UTF-8-String aus einzelnen Bytes
  • Example#5280 - chunk_split-Beispiel
  • Example#5281 - convert_uudecode-Beispiel
  • Example#5282 - convert_uuencode-Beispiel
  • Example#5283 - count_chars-Beispiel
  • Example#5284 - Anzeigen einer CRC32-Prüfsumme
  • Example#5285 - crypt-Beispiele
  • Example#5286 - Verwendung von crypt für htpasswd
  • Example#5287 - Verwendung von crypt mit verschiedenen Hash-Arten
  • Example#5288 - echo-Beispiele
  • Example#5289 -
  • Example#5290 - explode-Beispiele
  • Example#5291 - explode-Rückgabe-Beispiel
  • Example#5292 - limit-Parameterbeispiele
  • Example#5293 - fprintf: Integer mit vorangestellten Nullen
  • Example#5294 - fprintf: Formatieren einer Währung
  • Example#5295 - Umwandlungs-Tabellen-Beispiel
  • Example#5296 - hex2bin-Beispiel
  • Example#5297 - Dekodieren benannter HTML-Zeichen
  • Example#5298 - Ein htmlentities-Beispiel
  • Example#5299 - Nutzung von ENT_IGNORE
  • Example#5300 - Ein htmlspecialchars_decode-Beispiel
  • Example#5301 - htmlspecialchars-Beispiel
  • Example#5302 - implode-Beispiel
  • Example#5303 - lcfirst-Beispiel
  • Example#5304 - levenshtein-Beispiel
  • Example#5305 - localeconv-Beispiel
  • Example#5306 - Beispiel zur Verwendung von ltrim
  • Example#5307 - Anwendungsbeispiel für md5_file
  • Example#5308 - Ein md5-Beispiel
  • Example#5309 - Einfaches metaphone-Beispiel
  • Example#5310 - Verwendung des max_phonemes-Parameters
  • Example#5311 - Verwendung des max_phonemes-Parameters
  • Example#5312 - money_format-Beispiel
  • Example#5313 - Verwenden von nl2br
  • Example#5314 - Erstellen von validem HTML-Markup unter Verwendung des use_xhtml-Parameters
  • Example#5315 - Verschiedene Zeilentrenner
  • Example#5316 - number_format-Beispiel
  • Example#5317 - ord-Beispiel
  • Example#5318 - Untersuchen der einzelnen Bytes einer UTF-8-Zeichenkette
  • Example#5319 - Der Gebrauch von parse_str
  • Example#5320 - parse_str-Namens-Manipulation
  • Example#5321 - print-Beispiele
  • Example#5322 -
  • Example#5323 -
  • Example#5324 - printf: Verschiedene Beispiele
  • Example#5325 - printf: Stringformatierung
  • Example#5326 - Beispiel zur Verwendung von rtrim
  • Example#5327 - setlocale-Beispiele
  • Example#5328 - setlocale-Beispiele for Windows
  • Example#5329 - sha1_file-Beispiel
  • Example#5330 - Ein sha1-Beispiel
  • Example#5331 - Beispiel für die Vertauschung der Argumente von similar_text
  • Example#5332 - Soundex-Beispiele
  • Example#5333 - Argumente tauschen
  • Example#5334 - Angabe von Füllzeichen
  • Example#5335 - Positionstausch mit weiteren Spezifikatoren
  • Example#5336 - sprintf: Mit Nullen aufgefüllte Integer
  • Example#5337 - sprintf: Währungsformatierung
  • Example#5338 - sprintf: Wissenschaftliche Notation
  • Example#5339 - sscanf-Beispiel
  • Example#5340 - sscanf - Verwendung optionaler Parameter
  • Example#5341 - Using the empty string ''
  • Example#5342 - Showing case-sensitivity
  • Example#5343 - Using the empty string ''
  • Example#5344 - Showing case-sensitivity
  • Example#5345 - str_ireplace-Beispiel
  • Example#5346 - str_pad-Beispiel
  • Example#5347 - str_repeat-Beispiel
  • Example#5348 - Grundlegende str_replace-Beispiele
  • Example#5349 - Beispiele möglicher Probleme durch str_replace
  • Example#5350 - str_rot13-Beispiel
  • Example#5351 - str_shuffle-Beispiel
  • Example#5352 - Beispiel für die Verwendung von str_split
  • Example#5353 - Using the empty string ''
  • Example#5354 - Showing case-sensitivity
  • Example#5355 - Ein str_word_count-Beispiel
  • Example#5356 - strcasecmp-Beispiel
  • Example#5357 - strcmp Beispiel
  • Example#5358 - strcspn-Beispiel
  • Example#5359 - strip_tags-Beispiel
  • Example#5360 - stripos-Beispiele
  • Example#5361 - Ein stripslashes-Beispiel
  • Example#5362 - Verwendung von stripslashes in einem Array
  • Example#5363 - stristr-Beispiel
  • Example#5364 - Prüfen, ob ein String gefunden wurde oder nicht
  • Example#5365 - Verwendung eines Wertes, der kein String ist
  • Example#5366 - Ein strlen-Beispiel
  • Example#5367 - strpbrk-Beispiel
  • Example#5368 - Verwendung von ===
  • Example#5369 - Verwendung von !==
  • Example#5370 - Verwendung eines Offsets
  • Example#5371 - strrchr-Beispiel
  • Example#5372 - Umkehren eines Strings mit strrev
  • Example#5373 - Ein einfaches strripos-Beispiel
  • Example#5374 - Prüfen ob needle in haystack vorkommt
  • Example#5375 - Mit Offsets suchen
  • Example#5376 - strspn-Beispiel
  • Example#5377 - strstr-Beispiel
  • Example#5378 - strtok-Beispiel
  • Example#5379 - Verhalten von strtok beim Auffinden eines leeren Teils
  • Example#5380 - strtolower-Beispiel
  • Example#5381 - strtoupper-Beispiel
  • Example#5382 - strtr-Beispiel
  • Example#5383 - strtr-Beispiel mit zwei Argumenten
  • Example#5384 - strtr: Vergleich der Verhaltensweisen
  • Example#5385 - Ein substr_compare-Beispiel
  • Example#5386 - Ein substr_count-Beispiel
  • Example#5387 - Einfache substr_replace-Beispiele
  • Example#5388 - Nutzung von substr_replace um mehrere Zeichenketten auf einmal zu ersetzen.
  • Example#5389 - Einen negativen offset-Wert verwenden
  • Example#5390 - Negativen length-Wert verwenden
  • Example#5391 - Generelle Verwendung von substr
  • Example#5392 - substr-Typumwandlungs-Verhalten
  • Example#5393 -
  • Example#5394 - Beispiel zur Verwendung von trim
  • Example#5395 - Trimmen von Array-Werten mittels trim
  • Example#5396 - ucfirst-Beispiel
  • Example#5397 - ucwords-Beispiel
  • Example#5398 - ucwords-Beispiel mit benutzerdefinierten Trenzeichen
  • Example#5399 - ucwords-Beispiel mit zusätzlichen Trennzeichen
  • Example#5400 - vfprintf: Integer-Werte mit führenden Nullen
  • Example#5401 - vprintf: mit Nullen aufgefüllte Ganzzahlen
  • Example#5402 - vsprintf: mit Nullen aufgefüllte Ganzzahlen
  • Example#5403 - wordwrap-Beispiel
  • Example#5404 - wordwrap-Beispiel
  • Example#5405 - wordwrap-Beispiel
  • Example#5406 - array_change_key_case-Beispiel
  • Example#5407 - array_chunk-Beispiel
  • Example#5408 - Get the column of first names from a recordset
  • Example#5409 - Get the column of last names from a recordset, indexed by the "id" column
  • Example#5410 - Get the column of usernames from the public "username" property of an object
  • Example#5411 - Get the column of names from the private "name" property of an object using the magic __get method.
  • Example#5412 - Ein einfaches array_combine-Beispiel
  • Example#5413 - array_count_values-Beispiel
  • Example#5414 - array_diff_assoc-Beispiel
  • Example#5415 - array_diff_assoc-Beispiel
  • Example#5416 - array_diff_key-Beispiel
  • Example#5417 - array_diff_uassoc-Beispiel
  • Example#5418 - array_diff_ukey-Beispiel
  • Example#5419 - array_diff-Beispiel
  • Example#5420 - array_diff-Beispiel mit nicht übereinstimmenden Typen
  • Example#5421 - array_fill_keys-Beispiel
  • Example#5422 - array_fill-Beispiel
  • Example#5423 - array_filter-Beispiel
  • Example#5424 - array_filter ohne callback
  • Example#5425 - array_filter mit flag
  • Example#5426 - array_flip-Beispiel
  • Example#5427 - array_flip-Beispiel: Kollision
  • Example#5428 - array_intersect_assoc Beispiel
  • Example#5429 - array_intersect_key-Beispiel
  • Example#5430 - array_intersect_uassoc-Beispiel
  • Example#5431 - array_intersect_ukey-Beispiel
  • Example#5432 - array_intersect-Beispiel
  • Example#5433 - array_key_exists-Beispiel
  • Example#5434 - array_key_exists vs. isset
  • Example#5435 - Basic array_key_first Usage
  • Example#5436 - array_keys-Beispiel
  • Example#5437 - array_map-Beispiel
  • Example#5438 - array_map mit einer Lambda-Funktion (seit PHP 5.3.0)
  • Example#5439 - array_map - Verwendung mehrerer Arrays
  • Example#5440 - Durchführen einer zip-Operation von Arrays
  • Example#5441 - null callback nur mit array1
  • Example#5442 - array_map - mit String-Schlüsseln
  • Example#5443 - array_merge_recursive-Beispiel
  • Example#5444 - array_merge-Beispiel
  • Example#5445 - Ein einfaches array_merge-Beispiel
  • Example#5446 - array_merge mit nicht-Array-Typen
  • Example#5447 - Sortieren mehrerer Arrays
  • Example#5448 - Sortieren eines mehrdimensionalen Arrays
  • Example#5449 - Datenbankdaten sortieren
  • Example#5450 - Groß-/Kleinschreibung nicht-beachtende Sortierung
  • Example#5451 - array_pad-Beispiel
  • Example#5452 - array_pop-Beispiel
  • Example#5453 - array_product Beispiel
  • Example#5454 - array_push Beispiel
  • Example#5455 - array_rand-Beispiel
  • Example#5456 - array_reduce-Beispiel
  • Example#5457 - array_replace_recursive example
  • Example#5458 - array_replace_recursive and recursive behavior
  • Example#5459 - array_replace Beispiel
  • Example#5460 - array_reverse-Beispiel
  • Example#5461 - array_search-Beispiel
  • Example#5462 - array_shift-Beispiel
  • Example#5463 - array_slice-Beispiele
  • Example#5464 - array_slice und ein mit 1 beginnendes Array
  • Example#5465 - array_slice und Array mit gemischten Schlüsseln
  • Example#5466 - array_splice-Beispiele
  • Example#5467 - array_splice-Beispiele zu gleichwertigen Anweisungen
  • Example#5468 - array_sum
  • Example#5469 - array_udiff_assoc Beispiel
  • Example#5470 - array_udiff_uassoc Beispiel
  • Example#5471 - array_udiff Beispiel mit stdClass Objekten
  • Example#5472 - array_udiff Beispiel mit DateTime Objekten
  • Example#5473 - array_uintersect_assoc Beispiel
  • Example#5474 - array_uintersect_uassoc Beispiel
  • Example#5475 - array_uintersect Beispiel
  • Example#5476 - array_unique-Beispiel
  • Example#5477 - array_unique und Typen
  • Example#5478 - array_unshift Beispiel
  • Example#5479 - array_values-Beispiel
  • Example#5480 - array_walk_recursive Beispiel
  • Example#5481 - array_walk-Beispiel
  • Example#5482 - array-Beispiel
  • Example#5483 - Automatischer Index mit array
  • Example#5484 - 1-basierter Index mit array
  • Example#5485 - Auf ein Array innerhalb von doppelten Anführungszeichen zugreifen
  • Example#5486 - arsort-Beispiel
  • Example#5487 - asort-Beispiel
  • Example#5488 - compact Beispiel
  • Example#5489 - count-Beispiel
  • Example#5490 - Rekursives count-Beispiel
  • Example#5491 - Beispiel für die Verwendung von current und anderen
  • Example#5492 - each-Beispiele
  • Example#5493 - Durchgehen eines Arrays mit each
  • Example#5494 - end example
  • Example#5495 - extract-Beispiel
  • Example#5496 - in_array Beispiel
  • Example#5497 - in_array Beispiel mit 'strict'
  • Example#5498 - in_array mit Array als Suchwert
  • Example#5499 - key Beispiel
  • Example#5500 - krsort-Beispiel
  • Example#5501 - ksort-Beispiel
  • Example#5502 - list Beispiele
  • Example#5503 - Eine Beispielverwendung von list
  • Example#5504 - Verschachtelte list verwenden
  • Example#5505 - list mit Array Indizes verwenden
  • Example#5506 - list und die Reihenfolge der Index-Definitionen
  • Example#5507 - list mit Schlüsseln
  • Example#5508 - natcasesort Beispiel
  • Example#5509 - natsort Beispiele, die die grundlegende Verwendung demonstrieren
  • Example#5510 - natsort Beispiele, die potentielle Tücken demonstrieren
  • Example#5511 - Beispiel für die Verwendung von next und anderen
  • Example#5512 - Beispiel für die Verwendung von prev und anderen
  • Example#5513 - range Beispiele
  • Example#5514 - reset Beispiel
  • Example#5515 - rsort-Beispiel
  • Example#5516 - shuffle-Beispiel
  • Example#5517 - sort-Beispiel
  • Example#5518 - sort-Beispiel mit natürlicher Sortierung ohne Beachtung der Groß- und Kleinschreibung
  • Example#5519 - Einfaches uasort-Beispiel
  • Example#5520 - uksort Beispiel
  • Example#5521 - usort-Beispiel
  • Example#5522 - usort-Beispiel für multidimensionale Arrays
  • Example#5523 - usort-Beispiel, das die Methode eines Objekts benutzt
  • Example#5524 - usort Beispiel zum Einsatz einer Closure zum Sortieren eines mehrdimensionalen Arrays
  • Example#5525 - classes.inc
  • Example#5526 - test_script.php
  • Example#5527 - class_alias example
  • Example#5528 - class_exists Beispiel
  • Example#5529 - autoload Parameter Beispiel
  • Example#5530 - Using get_called_class
  • Example#5531 - get_class_methods Beispiel
  • Example#5532 - get_class_vars Beispiel
  • Example#5533 - get_class_vars und geltungsbereichsabhängiges Verhalten
  • Example#5534 - get_class-Beispiel
  • Example#5535 - Einsatz von get_class in einer Elternklasse
  • Example#5536 - Verwendung von get_class mit Klassen in Namensräumen
  • Example#5537 - get_declared_classes-Beispiel
  • Example#5538 - get_declared_interfaces Beispiel
  • Example#5539 - Nutzung der get_object_vars-Funktion
  • Example#5540 - Die Verwendung von get_parent_class
  • Example#5541 - interface_exists Beispiel
  • Example#5542 - is_a example
  • Example#5543 - Using the instanceof operator in PHP 5
  • Example#5544 - is_subclass_of Beispiel
  • Example#5545 - Verwendung von is_subclass_of mit einem Interface
  • Example#5546 - method_exists Beispiel
  • Example#5547 - Statisches method_exists Beispiel
  • Example#5548 - Ein property_exists Beispiel
  • Example#5549 - classkit_import example
  • Example#5550 - classkit_method_add example
  • Example#5551 - classkit_method_copy example
  • Example#5552 - classkit_method_redefine example
  • Example#5553 - classkit_method_remove example
  • Example#5554 - classkit_method_rename example
  • Example#5555 - ctype_alnum Beispiel (standard-locale vorausgesetzt)
  • Example#5556 - ctype_alpha-Beispiel (standard-locale vorausgesetzt)
  • Example#5557 - ctype_cntrl Beispiel
  • Example#5558 - ctype_digit Beispiel
  • Example#5559 - A ctype_digit example comparing strings with integers
  • Example#5560 - ctype_graph Beispiel
  • Example#5561 - ctype_lower Beispiel
  • Example#5562 - ctype_print Beispiel
  • Example#5563 - ctype_punct Beispiel
  • Example#5564 - ctype_space Beispiel
  • Example#5565 - ctype_upper Beispiel (using the default locale)
  • Example#5566 - ctype_xdigit Beispiel
  • Example#5567 - Den Standardfilters so einstellen, dass er sich wie htmlspecialchars verhält
  • Example#5568 - Configuring the default filter to act like htmlspecialchars
  • Example#5569 - Validating email addresses with filter_var
  • Example#5570 - Validating IP addresses with filter_var
  • Example#5571 - Passing options to filter_var
  • Example#5572 - Sanitizing and validating email addresses
  • Example#5573 - Configuring a default filter
  • Example#5574 - filter_input_array Beispiel
  • Example#5575 - filter_input Beispiel
  • Example#5576 - filter_list Beispiel
  • Example#5577 - filter_var_array Beispiel
  • Example#5578 - filter_var-Beispiel
  • Example#5579 - call_user_func_array example
  • Example#5580 - call_user_func_array using namespace name
  • Example#5581 - Using lambda function
  • Example#5582 - Passing values by reference
  • Example#5583 - call_user_func-Beispiel und Referenzen
  • Example#5584 - call_user_func-Beispiel
  • Example#5585 - call_user_func mit Namespacenamen
  • Example#5586 - Verwenden einer Klassenmethode mit call_user_func
  • Example#5587 - Verwendung von Lambdafunktionen mit call_user_func
  • Example#5588 - Erzeugen einer anonymen Funktion per create_function
  • Example#5589 - Erzeugung einer generellen Bearbeitungsfunktion mit create_function
  • Example#5590 - Gebrauch der anonymen Funktionen als Callback-Funktion
  • Example#5591 - forward_static_call_array example
  • Example#5592 - forward_static_call example
  • Example#5593 - func_get_arg Beispiel
  • Example#5594 - func_get_arg Beispiel vor and nach PHP 5.3
  • Example#5595 - func_get_arg Beispiel zu byref und byval Argumenten
  • Example#5596 - func_get_args Beispiel
  • Example#5597 - func_get_args Beispiel vor und nach PHP 5.3
  • Example#5598 - func_get_args Beispiel mit Referenz- und Wert-Argumenten
  • Example#5599 - func_num_args Beispiel
  • Example#5600 - func_num_args Beispiel vor und nach PHP 5.3
  • Example#5601 - function_exists-Beispiel
  • Example#5602 - get_defined_functions Beispiel
  • Example#5603 - register_shutdown_function Beispiel
  • Example#5604 - register_tick_function example
  • Example#5605 - Quickhash Example
  • Example#5606 - Quickhash ArrayAccess Example
  • Example#5607 - Quickhash Iterator Example
  • Example#5608 - Quickhash String Values Example
  • Example#5609 - QuickHashIntSet::add example
  • Example#5610 - QuickHashIntSet::__construct example
  • Example#5611 - QuickHashIntSet::delete example
  • Example#5612 - QuickHashIntSet::exists example
  • Example#5613 - QuickHashIntSet::getSize example
  • Example#5614 - QuickHashIntSet::loadFromFile example
  • Example#5615 - QuickHashIntSet::loadFromString example
  • Example#5616 - QuickHashIntSet::saveToFile example
  • Example#5617 - QuickHashIntSet::saveToString example
  • Example#5618 - QuickHashIntHash::add example
  • Example#5619 - QuickHashIntHash::__construct example
  • Example#5620 - QuickHashIntHash::delete example
  • Example#5621 - QuickHashIntHash::exists example
  • Example#5622 - QuickHashIntHash::get example
  • Example#5623 - QuickHashIntHash::getSize example
  • Example#5624 - QuickHash IntHash file format
  • Example#5625 - QuickHash IntHash file format
  • Example#5626 - QuickHashIntHash::loadFromFile example
  • Example#5627 - QuickHashIntHash::loadFromString example
  • Example#5628 - QuickHashIntHash::saveToFile example
  • Example#5629 - QuickHashIntHash::saveToString example
  • Example#5630 - QuickHashIntHash::set example
  • Example#5631 - QuickHashIntHash::update example
  • Example#5632 - QuickHashStringIntHash::add example
  • Example#5633 - QuickHashStringIntHash::__construct example
  • Example#5634 - QuickHashStringIntHash::delete example
  • Example#5635 - QuickHashStringIntHash::get example
  • Example#5636 - QuickHashStringIntHash::getSize example
  • Example#5637 - QuickHash StringIntHash file format
  • Example#5638 - QuickHash IntHash file format
  • Example#5639 - QuickHashStringIntHash::loadFromFile example
  • Example#5640 - QuickHashStringIntHash::loadFromString example
  • Example#5641 - QuickHashStringIntHash::saveToFile example
  • Example#5642 - QuickHashStringIntHash::saveToString example
  • Example#5643 - QuickHashStringIntHash::set example
  • Example#5644 - QuickHashStringIntHash::update example
  • Example#5645 - QuickHashIntStringHash::add example
  • Example#5646 - QuickHashIntStringHash::__construct example
  • Example#5647 - QuickHashIntStringHash::delete example
  • Example#5648 - QuickHashIntStringHash::get example
  • Example#5649 - QuickHashIntStringHash::getSize example
  • Example#5650 - QuickHash IntString file format
  • Example#5651 - QuickHash IntString file format
  • Example#5652 - QuickHashIntStringHash::loadFromFile example
  • Example#5653 - QuickHashIntStringHash::loadFromString example
  • Example#5654 - QuickHashIntStringHash::saveToFile example
  • Example#5655 - QuickHashIntStringHash::saveToString example
  • Example#5656 - QuickHashIntStringHash::set example
  • Example#5657 - QuickHashIntStringHash::update example
  • Example#5658 - Beispiele von Reflection in der Shell (dem Terminal)
  • Example#5659 - Extending the built-in classes
  • Example#5660 - Reflection::getModifierNames example
  • Example#5661 - Basic usage ReflectionClass
  • Example#5662 - Basic usage of ReflectionClass::export
  • Example#5663 - Usage of ReflectionClass::getConstant
  • Example#5664 - Basic usage of ReflectionClass::getConstructor
  • Example#5665 - ReflectionClass::getDefaultProperties example
  • Example#5666 - ReflectionClass::getDocComment example
  • Example#5667 - ReflectionClass::getEndLine example
  • Example#5668 - Basic usage of ReflectionClass::getExtension
  • Example#5669 - Basic usage of ReflectionClass::getExtensionName
  • Example#5670 - ReflectionClass::getInterfaceNames example
  • Example#5671 - ReflectionClass::getInterfaces example
  • Example#5672 - Basic usage of ReflectionClass::getMethod
  • Example#5673 - Basic usage of ReflectionClass::getMethods
  • Example#5674 - Filtering results from ReflectionClass::getMethods
  • Example#5675 - ReflectionClass::getName example
  • Example#5676 - ReflectionClass::getNamespaceName example
  • Example#5677 - ReflectionClass::getProperties filtering example
  • Example#5678 - Basic usage of ReflectionClass::getProperty
  • Example#5679 - Basic ReflectionClass::getReflectionConstants example
  • Example#5680 - ReflectionClass::getShortName example
  • Example#5681 - Basic usage of ReflectionClass::getStaticPropertyValue
  • Example#5682 - ReflectionClass::hasConstant example
  • Example#5683 - ReflectionClass::hasMethod example
  • Example#5684 - ReflectionClass::hasProperty example
  • Example#5685 - ReflectionClass::inNamespace example
  • Example#5686 - ReflectionClass::isAbstract example
  • Example#5687 - ReflectionClass::isAnonymous example
  • Example#5688 - Basic usage of ReflectionClass::isCloneable
  • Example#5689 - ReflectionClass::isFinal example
  • Example#5690 - ReflectionClass::isInstance related examples
  • Example#5691 - ReflectionClass::isInstantiable example
  • Example#5692 - Basic usage of ReflectionClass::isInterface
  • Example#5693 - Basic usage of ReflectionClass::isInternal
  • Example#5694 - Basic ReflectionClass::isIterable Usage
  • Example#5695 - Basic usage of ReflectionClass::newInstanceArgs
  • Example#5696 - ReflectionClass::__toString example
  • Example#5697 - ReflectionExtension example
  • Example#5698 - ReflectionExtension::getClasses example
  • Example#5699 - ReflectionExtension::getClassNames example
  • Example#5700 - ReflectionExtension::getConstants example
  • Example#5701 - ReflectionExtension::getDependencies example
  • Example#5702 - ReflectionExtension::getFunctions example
  • Example#5703 - ReflectionExtension::getINIEntries example
  • Example#5704 - ReflectionExtension::getName example
  • Example#5705 - ReflectionExtension::getVersion example
  • Example#5706 - ReflectionExtension::info example
  • Example#5707 - ReflectionFunction::__construct example
  • Example#5708 - ReflectionFunction::invoke example
  • Example#5709 - ReflectionFunction::invokeArgs example
  • Example#5710 - ReflectionFunction::invokeArgs with references example
  • Example#5711 - ReflectionFunction::__toString example
  • Example#5712 - ReflectionFunctionAbstract::getReturnType example
  • Example#5713 - Usage on built-in functions
  • Example#5714 - ReflectionFunctionAbstract::hasReturnType example
  • Example#5715 - Usage on built-in functions
  • Example#5716 - ReflectionFunctionAbstract::isClosure example
  • Example#5717 - ReflectionFunctionAbstract::isDeprecated example
  • Example#5718 - ReflectionMethod::__construct example
  • Example#5719 - ReflectionMethod::getDeclaringClass example
  • Example#5720 - ReflectionMethod::getModifiers example
  • Example#5721 - ReflectionMethod::getPrototype example
  • Example#5722 - ReflectionMethod::invoke example
  • Example#5723 - ReflectionMethod::invokeArgs example
  • Example#5724 - Simple Class definition
  • Example#5725 - ReflectionMethod::__toString example
  • Example#5726 - ReflectionNamedType::isBuiltin example
  • Example#5727 - Using the ReflectionParameter class
  • Example#5728 - Using the ReflectionParameter class
  • Example#5729 - Getting the class that declared the method
  • Example#5730 - Getting default values of function parameters
  • Example#5731 - Getting default values' constant names of function parameters
  • Example#5732 - ReflectionParameter::getType Usage as of PHP 7.1.0
  • Example#5733 - ReflectionParameter::getType Usage before PHP 7.1.0
  • Example#5734 - ReflectionParameter::hasType example
  • Example#5735 - ReflectionProperty::__construct example
  • Example#5736 - Getting value from private and protected properties using ReflectionProperty class
  • Example#5737 - ReflectionClass::getDefaultValue example
  • Example#5738 - ReflectionProperty::getDocComment example
  • Example#5739 - Multiple property declarations
  • Example#5740 - ReflectionProperty::getType example
  • Example#5741 - ReflectionProperty::getValue example
  • Example#5742 - ReflectionClass::hasDefaultValue example
  • Example#5743 - ReflectionProperty::hasType example
  • Example#5744 - ReflectionClass::isDefault example
  • Example#5745 - ReflectionProperty::isInitialized example
  • Example#5746 - Simple Class definition
  • Example#5747 - ReflectionProperty::setValue example
  • Example#5748 - ReflectionType::allowsNull example
  • Example#5749 - ReflectionType::__toString example
  • Example#5750 - ReflectionUnionType::getTypes example
  • Example#5751 - ReflectionGenerator::__construct example
  • Example#5752 - ReflectionGenerator::getExecutingFile example
  • Example#5753 - ReflectionGenerator::getExecutingGenerator example
  • Example#5754 - ReflectionGenerator::getExecutingLine example
  • Example#5755 - ReflectionGenerator::getFunction example
  • Example#5756 - ReflectionGenerator::getThis example
  • Example#5757 - ReflectionGenerator::getTrace example
  • Example#5758 - Basic ReflectionReference::getId usage
  • Example#5759 - boolval examples
  • Example#5760 - debug_zval_dump example
  • Example#5761 -
  • Example#5762 -
  • Example#5763 - Ein einfacher Vergleich von empty / isset
  • Example#5764 - empty und Zeichenketten-Offsets
  • Example#5765 - floatval-Beispiel
  • Example#5766 - floatval nichtnumerische Anfangszeichen Beispiel
  • Example#5767 - get_defined_vars-Beispiel
  • Example#5768 - get_resource_id example
  • Example#5769 - get_resource_type-Beispiel
  • Example#5770 - gettype-Beispiel
  • Example#5771 - intval-Beispiele
  • Example#5772 - Überprüfen, ob die Variable ein Array ist
  • Example#5773 - is_bool-Beispiele
  • Example#5774 - is_callable-Beispiel
  • Example#5775 - is_callable und Konstructoren
  • Example#5776 - is_countable examples
  • Example#5777 - is_float-Beispiel
  • Example#5778 - is_int-Beispiel
  • Example#5779 - is_iterable examples
  • Example#5780 - is_null-Beispiel
  • Example#5781 - is_numeric-Beispiele
  • Example#5782 - is_object-Beispiel
  • Example#5783 - is_resource-Beispiel
  • Example#5784 - is_scalar-Beispiel
  • Example#5785 - is_string-Beispiel
  • Example#5786 - isset-Beispiele
  • Example#5787 - isset und Zeichenketten-Offsets
  • Example#5788 - print_r-Beispiel
  • Example#5789 - return-Parameter-Beispiel
  • Example#5790 - serialize-Beispiel
  • Example#5791 - settype-Beispiel
  • Example#5792 - strval-Beispiel für die Verwendung der magischen __toString Methode
  • Example#5793 - unserialize-Beispiel
  • Example#5794 - unserialize_callback_func-Beispiel
  • Example#5795 - unset-Beispiel
  • Example#5796 - Verwendung von (unset) Casting
  • Example#5797 - var_dump-Beispiel
  • Example#5798 - Export von stdClass (seit PHP 7.3.0)
  • Example#5799 - var_export-Beispiel
  • Example#5800 - Export von Klassen ab PHP 5.1.0
  • Example#5801 - Nutzung von __set_state (ab PHP 5.1.0)
  • Example#5802 -
  • Example#5803 - OAuth::fetch example
  • Example#5804 - OAuth::getAccessToken example
  • Example#5805 - OAuth::getRequestToken example
  • Example#5806 - OAuth::setRequestEngine example
  • Example#5807 - An OAuth::setRsaCertificate example
  • Example#5808 - OAuth::setToken example
  • Example#5809 - OAuthProvider::__construct example
  • Example#5810 - Example OAuthProvider::consumerHandler callback
  • Example#5811 - OAuthProvider::generateToken example
  • Example#5812 - OAuthProvider::is2LeggedEndpoint example
  • Example#5813 - Example OAuthProvider::timestampNonceHandler callback
  • Example#5814 - Example OAuthProvider::tokenHandler callback
  • Example#5815 - is_soap_fault-Beispiel
  • Example#5816 - Die SOAP-Standardmethode zur Fehlerbehandlung ist das Werfen von Exceptions.
  • Example#5817 - SoapClient::__construct-Beispiel
  • Example#5818 - SoapClient::__doRequest-Beispiel
  • Example#5819 - SoapClient::__getFunctions-Beispiel
  • Example#5820 - SoapClient::__getLastRequest()-Beispiel
  • Example#5821 - SoapClient::__getLastRequestHeaders()-Beispiel
  • Example#5822 - SoapClient::__getLastResponse()-Beispiel
  • Example#5823 - SoapClient::__getLastResponse()-Beispiel
  • Example#5824 - SoapClient::__getTypes-Beispiel
  • Example#5825 - SoapClient::__setLocation-Beispiel
  • Example#5826 - SoapClient::__setSoapHeaders-Beispiel
  • Example#5827 - Mehrere Header setzen
  • Example#5828 - SoapClient::__soapCall-Beispiel
  • Example#5829 - SoapServer::addFunction-Beispiel
  • Example#5830 - SoapServer::__construct-Beispiel
  • Example#5831 - SoapServer::getFunctions-Beispiel
  • Example#5832 - SoapServer::handle-Beispiel
  • Example#5833 - SoapServer::setPersistence Beispiel
  • Example#5834 - Beispiel 1
  • Example#5835 - Beispiel 2
  • Example#5836 - SoapHeader::__construct-Beispiel
  • Example#5837 - SoapParam::__construct-Beispiel
  • Example#5838 - SoapVar::__construct-Beispiel
  • Example#5839 - Yar Server Example
  • Example#5840 - Access the server in borwser(GET request)
  • Example#5841 - Yar Client Example
  • Example#5842 - Yar Concurrent Client Example
  • Example#5843 - Yar_Server::__construct example
  • Example#5844 - Yar_Server::handle example
  • Example#5845 - Yar_Client::__call example
  • Example#5846 - Yar_Client::__construct example
  • Example#5847 - Yar_Client::setOpt example
  • Example#5848 - Yar_Concurrent_Client::call example
  • Example#5849 - Yar_Concurrent_Client::loop example
  • Example#5850 - Yar_Concurrent_Client::reset example
  • Example#5851 - Yar_Server_Exception::getType example
  • Example#5852 - Yar_Client_Exception::getType example
  • Example#5853 - XMLRPC client functions example
  • Example#5854 - XML-RPC type example
  • Example#5855 - A xmlrpc_set_type example
  • Example#5856 - For Each in ASP
  • Example#5857 - foreach in PHP
  • Example#5858 - com-Beispiel 1
  • Example#5859 - com-Beispiel 2
  • Example#5860 - dotnet example
  • Example#5861 - variant-Beispiel
  • Example#5862 - Basic COMPersistHelper::saveToFile Usage
  • Example#5863 - COM event sink example
  • Example#5864 - Registering a PHP script to run as a service
  • Example#5865 - Unregistering a service
  • Example#5866 - Running as a service
  • Example#5867 - A win32_create_service example
  • Example#5868 - A win32_create_service example with dependencies
  • Example#5869 - A win32_create_service example with recovery
  • Example#5870 - A win32_delete_service example
  • Example#5871 - A win32_start_service_ctrl_dispatcher example
  • Example#5872 - book.xml
  • Example#5873 - Creating a new DOMAttr object
  • Example#5874 - DOMAttr::isId() Example
  • Example#5875 - Creating a new DOMCdataSection object
  • Example#5876 - Creating a new DOMComment
  • Example#5877 - Creating a new DOMDocument
  • Example#5878 - Creating a new element and inserting it as root
  • Example#5879 - Passing text containing an unescaped & as value
  • Example#5880 - Creating a new element and inserting it as root
  • Example#5881 - A namespace prefix example
  • Example#5882 - DOMDocument::getElementById() Example
  • Example#5883 - Basic Usage Example
  • Example#5884 - Get all the XInclude elements
  • Example#5885 - DOMDocument::importNode example
  • Example#5886 - Creating a Document
  • Example#5887 - Creating a Document
  • Example#5888 - Creating a Document
  • Example#5889 - Creating a Document
  • Example#5890 - Static invocation of loadXML
  • Example#5891 - Adding a new method to DOMElement to ease our code
  • Example#5892 - Retrieving elements as custom class
  • Example#5893 - Retrieving owner document
  • Example#5894 - Custom objects are transient
  • Example#5895 - Saving a DOM tree into a file
  • Example#5896 - Saving a HTML tree into a string
  • Example#5897 - Saving a HTML tree into a file
  • Example#5898 - Saving a DOM tree into a string
  • Example#5899 - Example of DTD validation
  • Example#5900 - DOMDocument::xinclude() example
  • Example#5901 - Appending XML data to your document
  • Example#5902 - Creating a new DOMElement
  • Example#5903 - Setting an attribute
  • Example#5904 - Creating a new DOMEntityReference
  • Example#5905 - Creating a document with an attached DTD
  • Example#5906 - Testing your DOM Implementation
  • Example#5907 - Adding a child
  • Example#5908 - Nested children
  • Example#5909 - DOMNode::getLineNo example
  • Example#5910 - DOMNode::getNodePath example
  • Example#5911 - Removing a child
  • Example#5912 - Traversing all the entries of the table
  • Example#5913 - Creating a new DOMProcessingInstruction object
  • Example#5914 - Creating a new DOMText
  • Example#5915 - Getting the count of all the english books
  • Example#5916 - Getting all the english books
  • Example#5917 - book.xml
  • Example#5918 - DOMXPath::registerPHPFunctions with php:functionString
  • Example#5919 - DOMXPath::registerPHPFunctions with php:function
  • Example#5920 - Importiert SimpleXML in DOM mit der Funktion dom_import_simplexml
  • Example#5921 - A libxml_get_errors example
  • Example#5922 - libxml_set_external_entity_loader example
  • Example#5923 - A libxml_set_streams_context example
  • Example#5924 - A libxml_use_internal_errors example
  • Example#5925 - Einzubindende Datei example.php mit XML-String
  • Example#5926 - <plot> ermitteln
  • Example#5927 - Auf <line> zugreifen
  • Example#5928 - Auf nicht-eindeutige Elemente per SimpleXML zugreifen
  • Example#5929 - Attribute verwenden
  • Example#5930 - Vergleichen von Elementen und Attributen mit Text
  • Example#5931 - Zwei Elemente vergleichen
  • Example#5932 - XPath verwenden
  • Example#5933 - Werte setzen
  • Example#5934 - Elemente und Attribute hinzufügen
  • Example#5935 - DOM Interoperabilität
  • Example#5936 - Laden eines defekten XML-Strings
  • Example#5937 - Hinzufügen von Attributen und Kindern zu einem SimpleXML-Element
  • Example#5938 - Hinzufügen von Attributen und Kindern zu einem SimpleXML-Element
  • Example#5939 - XML erstellen
  • Example#5940 - Anwendung von asXML() auf SimpleXMLElement::xpath-Ergebnisse
  • Example#5941 - Einen XML-String auswerten
  • Example#5942 - Ein children()-Pseudo-Array durchlaufen
  • Example#5943 - Arbeiten mit Namensräumen
  • Example#5944 - Erstellen eines SimpleXMLElement-Objekts
  • Example#5945 - Erstellen eines SimpleXMLElement-Objekts von einem URL
  • Example#5946 - Counting the number of children
  • Example#5947 - Ermitteln der Dokument-Namensräume
  • Example#5948 - Arbeiten mit mehreren Namensräumen
  • Example#5949 - Ermitteln des XML-Element-Namens
  • Example#5950 - Verwendete Dokument-Namespaces zurückgeben
  • Example#5951 - Einen Namespace-Prefix zur Verwendung in einem XPath-Query setzen
  • Example#5952 - Get string content
  • Example#5953 - Xpath
  • Example#5954 - Return the current element
  • Example#5955 - Return the sub-elements of the current element
  • Example#5956 - Check whether the current element has sub-elements
  • Example#5957 - Get the current XML tag key
  • Example#5958 - Move to the next element
  • Example#5959 - Rewind to the first element
  • Example#5960 - Check whether the current element is valid
  • Example#5961 - DOM-Import
  • Example#5962 - Ein XML-Dokument auswerten
  • Example#5963 - Einen XML-String auswerten
  • Example#5964 - Serializing a single value with WDDX
  • Example#5965 - Using incremental packets with WDDX
  • Example#5966 - wddx_serialize_vars-Beispiel
  • Example#5967 - Show XML Element Structure
  • Example#5968 - Map XML to HTML
  • Example#5969 - External Entity Example
  • Example#5970 - xmltest.xml
  • Example#5971 - xmltest2.xml
  • Example#5972 - xml_parse_into_struct example
  • Example#5973 - moldb.xml - small database of molecular information
  • Example#5974 - parsemoldb.php - parses moldb.xml into an array of molecular objects
  • Example#5975 - Chunked parsing of large XML documents
  • Example#5976 - xml_set_object example
  • Example#5977 - Validierung von XML
  • Example#5978 - Creating a simple XML document
  • Example#5979 - Working with XML namespaces
  • Example#5980 - Working with the OO API
  • Example#5981 - Direkte Ausgabe von XML
  • Example#5982 - XMLWriter::setIndent und gemischter Inhalt
  • Example#5983 - Grundsätzliche XMLWriter::startAttribute Verwendung
  • Example#5984 - Mischen von Kindelementen und Attributen
  • Example#5985 - Grundsätzliche xmlwriter_write_cdata Verwendung
  • Example#5986 - collection.xml
  • Example#5987 - collection.xsl
  • Example#5988 - fruits.xml
  • Example#5989 - fruits.xsl
  • Example#5990 - Sammel und ausgaben der Fehler
  • Example#5991 - Verwendung von XSLTProcessor
  • Example#5992 - Prüfen auf EXSLT-Unterstützung
  • Example#5993 - Einfacher Aufruf einer PHP-Funktion durch ein Stylesheet
  • Example#5994 - Ändern des Parameters "owner" vor der Transformation
  • Example#5995 - Ausgabe des Profilers
  • Example#5996 - Transformierung in ein DOMDocument
  • Example#5997 - Transformierung in eine HTML-Datei
  • Example#5998 - Transformierung in einen String
  • Example#5999 - Ein verstecktes HTML-Formularelement
  • Example#6000 - Daten, die vom Benutzer bearbeitet werden sollen
  • Example#6001 - In einem URL
  • Example#6002 - JavaScript mit PHP generieren
  • Example#6003 - PHP/FI Code-Beispiel
  • Example#6004 - Aktiviere volle Fehlerausgaben im Browser für die dev. Domain
  • Example#6005 - Binde für ein zu sicherndes Verzeichnis ein Sicherheitsscript hinzu
  • Example#6006 - include_path unter Unix
  • Example#6007 - include_path unter Windows
  • Example#6008 - include_path unter Unix unter Verwendung der ${USER}-Umgebungsvariablen
  • Example#6009 - string.rot13
  • Example#6010 - string.toupper
  • Example#6011 - string.tolower
  • Example#6012 - string.strip_tags
  • Example#6013 - convert.base64-encode & convert.base64-decode
  • Example#6014 - convert.quoted-printable-encode & convert.quoted-printable-decode
  • Example#6015 - convert.iconv.*
  • Example#6016 - zlib.deflate and zlib.inflate
  • Example#6017 - zlib.deflate simple
  • Example#6018 - bzip2.compress and bzip2.decompress
  • Example#6019 - Encrypt/Decrypt with Blowfish
  • Example#6020 - Encrypt file using AES-128 CBC with SHA256 HMAC


Changelog

Folgende Änderungen wurden an den Funktionen der gebündelten Extensions vorgenommen.

Version | Function | Description
PECL OCI8 1.4 | oci_set_prefetch | Before this release, rows must be >= 1.
PECL OCI8 1.3.4 | oci_set_prefetch | Before this release, prefetching was limited to the lesser of rows rows and 1024 * rows bytes. The byte size restriction has now been removed.
PECL 3.0.0 | IntlDateFormatter::format | Support for providing IntlCalendar objects to the datetime parameter was added.
8.0.0, PECL OCI8 3.0.0 | OCICollection::append | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.
OCICollection::assign | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.
OCICollection::assignElem | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.
OCICollection::free | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.
OCICollection::getElem | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.
OCICollection::max | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.
OCICollection::size | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.
OCICollection::trim | Die Klasse OCI-Collection wurde in OCICollection umbenannt, um den PHP-Namensstandards zu entsprechen.
OCILob::append | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::close | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::eof | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::erase | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::export | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::flush | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::free | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::getBuffering | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::import | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::load | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::read | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::rewind | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::save | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::saveFile | Die Klasse OCI-Lob wurde in OCILob umbenannt, um den PHP-Namensstandards zu entsprechen.
OCILob::seek | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::setBuffering | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::size | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::tell | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::truncate | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::write | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::writeTemporary | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
OCILob::writeToFile | The OCI-Lob class was renamed to OCILob to align with PHP naming standards.
8.0.0 / 1.18.1 | ZipArchive::addGlob | "comp_method", "comp_flags", "enc_method" and "enc_password" in options were added.
8.0.0 / 1.18.0 | ZipArchive::addEmptyDir | flags wurde hinzugefügt.
ZipArchive::addFile | flags wurde hinzugefügt.
ZipArchive::addFromString | flags wurde hinzugefügt.
ZipArchive::addGlob | "flags" in options was added.
ZipArchive::getStatusString | Diese Methode gibt im Fall eines Fehlers nicht mehr false zurück.
ZipArchive::getStatusString | Diese Methode kann für ein geschlossenes Archiv aufgerufen werden.
8.0.0 | DateTime::format | The format character p has been added.
DateTime::format | Prior to this version, false was returned on failure.
DateTime::getOffset | Prior to this version, false was returned on failure.
DateTime::getTimestamp | These functions no longer return false on failure.
DateTimeZone::getOffset | Prior to this version, false was returned on failure.
DateTimeZone::listIdentifiers | Prior to this version, false was returned on failure.
DOMImplementation::createDocument | doctype is now nullable.
com_event_sink | sink_interface is nullable now.
com_get_active_object | codepage is nullable now.
convert_uuencode | Vor dieser Version wurde beim Versuch, eine leere Zeichenkette zu konvertieren, ohne besonderen Grund false zurückgegeben.
count_chars | Vor dieser Version hat die Funktion bei Auftreten eines Fehlers false zurückgegeben.
crypt | salt ist nicht mehr optional.
curl_multi_errno | multi_handle expects a CurlMultiHandle instance now; previously, a resource was expected.
curl_multi_errno | The function no longer returns false on failure.
curl_reset | handle expects a CurlHandle instance now; previously, a resource was expected.
curl_share_close | share_handle expects a CurlShareHandle instance now; previously, a resource was expected.
curl_share_errno | share_handle expects a CurlShareHandle instance now; previously, a resource was expected.
curl_share_errno | The function no longer returns false on failure.
curl_share_init | This function returns a CurlShareHandle instance now; previously, a resource was returned.
curl_share_setopt | share_handle expects a CurlShareHandle instance now; previously, a resource was expected.
curl_unescape | handle expects a CurlHandle instance now; previously, a resource was expected.
date_sunrise | latitude, longitude, zenith and utcOffset are nullable now.
date_sunset | latitude, longitude, zenith and utcOffset are nullable now.
deflate_add | context expects a DeflateContext instance now; previously, a resource was expected.
deflate_init | On success, this function returns a DeflateContext instance now; previously, a resource was returned.
enchant_broker_describe | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
enchant_broker_describe | Prior to this version, the function returned false on failure.
enchant_broker_dict_exists | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
enchant_broker_free | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
enchant_broker_free_dict | dictionary expects a EnchantDictionary now; previoulsy, a Ressource was expected.
enchant_broker_get_dict_path | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
enchant_broker_get_error | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
enchant_broker_init | On success, this function returns an EnchantBroker instance now; previoulsy, a Ressource was retured.
enchant_broker_list_dicts | Prior to this version, the function returned false on failure.
enchant_broker_list_dicts | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
enchant_broker_request_dict | On success, this function returns an EnchantDictionary instance now; previoulsy, a Ressource was retured.
enchant_broker_request_dict | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
enchant_broker_request_pwl_dict | On success, this function returns an EnchantDictionary instance now; previoulsy, a Ressource was retured.
enchant_broker_request_pwl_dict | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
enchant_broker_set_dict_path | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
enchant_broker_set_ordering | broker expects an EnchantBroker instance now; previoulsy, a Ressource was expected.
enchant_dict_add | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.
enchant_dict_add_to_session | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.
enchant_dict_check | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.
enchant_dict_describe | Prior to this version, the function returned false on failure.
enchant_dict_describe | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.
enchant_dict_get_error | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.
enchant_dict_is_added | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.
enchant_dict_quick_check | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.
enchant_dict_store_replacement | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.
enchant_dict_suggest | dictionary expects an EnchantDictionary instance now; previoulsy, a Ressource was expected.
finfo_buffer | context is nullable now.
fsockopen | timeout ist nun ein Nullable-Typ.
gmp_binomial | This function no longer returns false on failure.
gmp_export | This function no longer returns false on failure.
gmp_import | This function no longer returns false on failure.
gzgets | length is nullable now; previously, the default was 1024.
gzwrite | length ist jetzt ein Nullable-Typ; vorher war der Standardwert 0.
html_entity_decode | encoding ist jetzt ein Nullable-Typ.
htmlentities | encoding ist jetzt ein Nullable-Typ.
iconv_mime_decode | encoding is nullable now.
iconv_mime_decode_headers | encoding is nullable now.
iconv_strlen | encoding is nullable now.
iconv_strpos | encoding is nullable now.
iconv_strrpos | encoding is nullable now.
iconv_substr | length and encoding are nullable now.
idate | timestamp is nullable now.
ignore_user_abort | enable ist nun ein Nullable-Typ.
imagexbm | The fourth parameter, which was unused, has been removed.
implode | Die Übergabe des separators nach dem array wird nicht mehr unterstützt.
inflate_add | context expects an InflateContext instance now; previously, a resource was expected.
inflate_get_read_len | context expects an InflateContext instance now; previously, a resource was expected.
inflate_get_status | context expects an InflateContext instance now; previously, a resource was expected.
inflate_init | On success, this function returns an InflateContext instance now; previously, a resource was returned.
ldap_add | controls is nullable now; previously, it defaulted to [].
ldap_add_ext | controls is nullable now; previously, it defaulted to [].
ldap_bind_ext | controls is nullable now; previously, it defaulted to [].
ldap_compare | controls is nullable now; previously, it defaulted to [].
ldap_delete | controls is nullable now; previously, it defaulted to [].
ldap_delete_ext | controls is nullable now; previously, it defaulted to [].
ldap_exop_passwd | controls is nullable now; previously, it defaulted to [].
ldap_list | controls is nullable now; previously, it defaulted to [].
ldap_mod_add | controls is nullable now; previously, it defaulted to [].
ldap_mod_del | controls is nullable now; previously, it defaulted to [].
ldap_mod_replace | controls is nullable now; previously, it defaulted to [].
ldap_modify_batch | controls is nullable now; previously, it defaulted to [].
ldap_mod_add_ext | controls is nullable now; previously, it defaulted to [].
ldap_mod_del_ext | controls is nullable now; previously, it defaulted to [].
ldap_mod_replace_ext | controls is nullable now; previously, it defaulted to [].
ldap_read | controls is nullable now; previously, it defaulted to [].
ldap_rename | controls is nullable now; previously, it defaulted to [].
ldap_rename_ext | controls is nullable now; previously, it defaulted to [].
ldap_sasl_bind | dn, password, mech, realm, authc_id, authz_id and props are nullable now.
ldap_search | controls is nullable now; previously, it defaulted to [].
ldap_set_rebind_proc | callback ist nun ein Nullable-Typ.
levenshtein | Vor dieser Version musste levenshtein entweder mit zwei oder fünf Argumenten aufgerufen werden.
libxml_use_internal_errors | use_errors is nullable now. Previously, its default was false.
mb_check_encoding | value and encoding are nullable now.
mb_chr | encoding is nullable now.
mb_convert_encoding | from_encoding is nullable now.
mb_convert_kana | encoding is nullable now.
mb_decode_numericentity | encoding is nullable now.
mb_detect_order | encoding is nullable now.
mb_encode_mimeheader | charset and transfer_encoding are nullable now.
mb_encode_numericentity | encoding is nullable now.
mb_ereg | This function returns true on success now. Previously, it returned the byte length of the matched string if a match for pattern was found in string and matches was passed. If the optional parameter matches was not passed or the length of the matched string was 0, this function returned 1.
mb_ereg_match | options is nullable now.
mb_ereg_replace | options is nullable now.
mb_ereg_replace_callback | options is nullable now.
mb_ereg_search | pattern and options are nullable now.
mb_ereg_search_init | pattern and options are nullable now.
mb_ereg_search_pos | pattern and options are nullable now.
mb_ereg_search_regs | pattern and options are nullable now.
mb_eregi | This function returns true on success now. Previously, it returned the byte length of the matched string if a match for pattern was found in string and matches was passed. If the optional parameter matches was not passed or the length of the matched string was 0, this function returned 1.
mb_eregi_replace | options is nullable now.
mb_get_info | The types "func_overload" and "func_overload_list" are no longer supported.
mb_http_input | type is nullable now.
mb_http_output | encoding is nullable now.
mb_internal_encoding | encoding is nullable now.
mb_language | language is nullable now.
mb_ord | encoding is nullable now.
mb_parse_str | The second parameter was no longer optional.
mb_regex_encoding | encoding is nullable now.
mb_regex_set_options | If the parameter options is given and not null, the previous options are returned. Formerly, the current options have been returned.
mb_regex_set_options | options is nullable now.
mb_scrub | encoding is nullable now.
mb_send_mail | additional_params is nullable now.
mb_str_split | encoding is nullable now.
mb_str_split | This function no longer returns false on failure.
mb_strcut | encoding is nullable now.
mb_strimwidth | encoding is nullable now.
mb_stripos | encoding is nullable now.
mb_stristr | encoding is nullable now.
mb_strlen | encoding is nullable now.
mb_strpos | encoding is nullable now.
mb_strrchr | encoding is nullable now.
mb_strrichr | encoding is nullable now.
mb_strripos | encoding is nullable now.
mb_strrpos | encoding is nullable now.
mb_strstr | encoding is nullable now.
mb_strwidth | encoding is nullable now.
mb_substitute_character | encoding is nullable now.
mb_substitute_character | Passing an empty string to substitute_character is no longer supported; "none" should be passed instead.
mb_substr | encoding is nullable now.
mb_substr_count | encoding is nullable now.
metaphone | Die Funktion gab bei Auftreten eines Fehlers false zurück.
mhash | key ist nun ein Nullable-Typ.
msg_get_queue | Bei Erfolg gibt diese Funktion nun eine SysvMessageQueue-Instanz zurück; vorher wurde eine resource zurückgegeben.
msg_receive | queue erwartet nun eine SysvMessageQueue-Instanz; vorher wurde eine resource erwartet.
msg_remove_queue | queue erwartet nun eine SysvMessageQueue-Instanz; vorher wurde eine resource erwartet.
msg_send | queue expects a SysvMessageQueue instance now; previously, a resource was expected.
msg_set_queue | queue erwartet nun eine SysvMessageQueue-Instanz; vorher wurde eine resource erwartet.
msg_stat_queue | queue erwartet nun eine SysvMessageQueue-Instanz; vorher wurde eine resource erwartet.
number_format | Vor dieser Version akzeptierte number_format einen, zwei oder vier Parameter (aber nicht drei).
ob_implicit_flush | flag erwartet nun einen bool-Wert; vorher wurde ein int erwartet.
odbc_columns | schema, table and column are now nullable.
odbc_error | odbc is nullable now.
odbc_errormsg | odbc is nullable now.
odbc_exec | flags wurde entfernt.
odbc_fetch_row | row ist jetzt ein Nullable-Typ.
odbc_procedurecolumns | Prior to this version, the function could only be called with either one or five arguments.
odbc_procedures | Prior to this version, the function could only be called with either one or four arguments.
odbc_tables | schema, table and types are now nullable.
openssl_csr_export | csr akzeptiert nun eine OpenSSLCertificateSigningRequest-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
openssl_csr_export_to_file | csr akzeptiert nun eine OpenSSLCertificateSigningRequest-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
openssl_csr_get_public_key | csr akzeptiert nun eine OpenSSLCertificateSigningRequest-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
openssl_csr_get_public_key | Bei Erfolg gibt diese Funktion nun eine OpenSSLAsymmetricKey-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel zurückgegeben.
openssl_csr_get_subject | csr akzeptiert nun eine OpenSSLCertificateSigningRequest-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
openssl_csr_new | private_key akzeptiert nun eine OpenSSLAsymmetricKey-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel akzeptiert.
openssl_csr_new | Bei Erfolg gibt diese Funktion nun eine OpenSSLCertificateSigningRequest-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR zurückgegeben.
openssl_csr_sign | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_csr_sign | Bei Erfolg gibt diese Funktion nun eine OpenSSLCertificate-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL X.509 zurückgegeben.
openssl_csr_sign | csr akzeptiert nun eine OpenSSLCertificateSigningRequest-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
openssl_csr_sign | ca_certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.
openssl_dh_compute_key | private_key accepts an OpenSSLAsymmetricKey now; previously, a Ressource of type OpenSSL key was accepted.
openssl_free_key | Diese Funktion ist nun veraltet, da sie keine Auswirkung mehr hat.
openssl_free_key | key akzeptiert nun eine OpenSSLAsymmetricKey-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel akzeptiert.
openssl_open | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 CSR akzeptiert.
openssl_open | Der Parameter cipher_algo ist nicht mehr optional.
openssl_pkcs7_decrypt | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 CSR akzeptiert.
openssl_pkcs7_encrypt | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
openssl_pkcs7_sign | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
openssl_pkcs7_sign | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 CSR akzeptiert.
openssl_pkcs7_verify | signers_certificates_filename, untrusted_certificates_filename, Inhalt und Ausgabedateiname sind nun vom Typ Nullable.
openssl_pkcs12_export | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_pkcs12_export | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
openssl_pkcs12_export_to_file | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 CSR akzeptiert.
openssl_pkcs12_export_to_file | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_pkey_export | key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_pkey_export_to_file | key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_pkey_free | key akzeptiert nun eine OpenSSLAsymmetricKey-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel akzeptiert.
openssl_pkey_free | Diese Funktion ist nun veraltet, da sie keine Auswirkung mehr hat.
openssl_pkey_get_details | key akzeptiert nun eine OpenSSLAsymmetricKey-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel akzeptiert.
openssl_pkey_get_private | Bei Erfolg gibt diese Funktion nun eine OpenSSLAsymmetricKey-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel zurückgegeben.
openssl_pkey_get_private | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_pkey_get_private | passphrase ist nun ein Nullable-Typ.
openssl_pkey_get_public | public_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_pkey_get_public | Bei Erfolg gibt diese Funktion nun eine OpenSSLAsymmetricKey-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel zurückgegeben.
openssl_pkey_new | Bei Erfolg gibt diese Funktion nun eine OpenSSLAsymmetricKey-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel zurückgegeben.
openssl_private_decrypt | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_private_encrypt | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_public_decrypt | public_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_public_encrypt | public_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_random_pseudo_bytes | strong_result is nullable now.
openssl_seal | public_key akzeptiert nun ein Array von OpenSSLAsymmetricKey-Instanzen; vorher wurde ein Array von Ressourcen vom Typ OpenSSL-Schlüssel akzeptiert.
openssl_seal | Der Parameter cipher_algo ist nicht mehr optional.
openssl_seal | iv ist nun ein Nullable-Typ.
openssl_sign | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_spki_new | private_key accepts an OpenSSLAsymmetricKey instance now; previously, a Ressource of type OpenSSL key was accepted.
openssl_verify | public_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_x509_check_private_key | private_key akzeptiert nun eine OpenSSLAsymmetricKey- oder OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL-Schlüssel oder OpenSSL X.509 akzeptiert.
openssl_x509_check_private_key | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.
openssl_x509_checkpurpose | untrusted_certificates_file ist nun ein Nullable-Typ.
openssl_x509_checkpurpose | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.
openssl_x509_export | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.
openssl_x509_export_to_file | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.
openssl_x509_fingerprint | certificate accepts an OpenSSLCertificate instance now; previously, a Ressource of type OpenSSL X.509 was accepted.
openssl_x509_free | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.
openssl_x509_free | Diese Funktion ist nun veraltet, da sie keine Auswirkung mehr hat.
openssl_x509_parse | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.
openssl_x509_read | certificate akzeptiert nun eine OpenSSLCertificate-Instanz; vorher wurde eine Ressource vom Typ OpenSSL X.509 akzeptiert.
openssl_x509_read | Bei Erfolg gibt diese Funktion nun eine OpenSSLCertificate-Instanz zurück; vorher wurde eine Ressource vom Typ OpenSSL X.509 zurückgegeben.
openssl_x509_verify | public_key accepts an OpenSSLAsymmetricKey or OpenSSLCertificate instance now; previously, a Ressource of type OpenSSL key or OpenSSL X.509 was accepted.
openssl_x509_verify | certificate accepts an OpenSSLCertificate instance now; previously, a Ressource of type OpenSSL X.509 was accepted.
pack | Diese Funktion gibt bei einem Fehler nicht mehr false zurück.
parse_str | result ist nicht mehr optional.
readline_info | var_name und value sind nun Nullable-Typen.
readline_read_history | filename ist nun ein Nullable-Typ.
readline_write_history | filename ist nun ein Nullable-Typ.
sem_acquire | semaphore erwartet nun eine SysvSemaphore-Instanz; vorher wurde eine resource erwartet.
sem_get | Bei Erfolg gibt diese Funktion nun eine SysvSemaphore-Instanz zurück; vorher wurde eine resource zurückgegeben.
sem_get | Der Typ von auto_release wurde von int auf bool geändert.
sem_release | semaphore erwartet nun eine SysvSemaphore-Instanz; vorher wurde eine resource erwartet.
sem_remove | semaphore erwartet nun eine SysvSemaphore-Instanz; vorher wurde eine resource erwartet.
session_cache_expire | value ist jetzt ein Nullable-Typ.
session_cache_limiter | value ist jetzt ein Nullable-Typ.
session_id | id ist jetzt ein Nullable-Typ.
session_module_name | module ist jetzt ein Nullable-Typ.
session_name | name ist jetzt ein Nullable-Typ.
session_save_path | path ist jetzt ein Nullable-Typ.
session_set_cookie_params | path, domain, secure und httponly sind jetzt Nullable-Typen.
shm_attach | Bei Erfolg gibt diese Funktion nun eine SysvSharedMemory-Instanz zurück; vorher wurde eine resource zurückgegeben.
shm_attach | size ist nun ein Nullable-Typ.
shm_detach | shm erwartet nun eine SysvSharedMemory-Instanz; vorher wurde eine resource erwartet.
shm_get_var | shm erwartet nun eine SysvSharedMemory-Instanz; vorher wurde eine resource erwartet.
shm_has_var | shm expects a SysvSharedMemory instance now; previously, a resource was expected.
shm_put_var | shm erwartet nun eine SysvSharedMemory-Instanz; vorher wurde eine resource erwartet.
shm_remove | shm erwartet nun eine SysvSharedMemory-Instanz; vorher wurde eine resource erwartet.
shm_remove_var | shm erwartet nun eine SysvSharedMemory-Instanz; vorher wurde eine resource erwartet.
shmop_close | shmop erwartet nun eine Shmop-Instanz; vorher wurde eine resource erwartet.
shmop_delete | shmop erwartet nun eine Shmop-Instanz; vorher wurde eine resource erwartet.
shmop_open | Bei Erfolg gibt diese Funktion nun eine Shmop-Instanz zurück; vorher wurde eine resource zurückgegeben.
shmop_read | shmop erwartet nun eine Shmop-Instanz; vorher wurde eine resource erwartet.
shmop_size | shmop erwartet nun eine Shmop-Instanz; vorher wurde eine resource erwartet.
shmop_write | Vor PHP 8.0.0 wurde bei einem Fehler false zurückgegeben.
shmop_write | shmop erwartet nun eine Shmop-Instanz; vorher wurde eine resource erwartet.
socket_accept | Bei Erfolg gibt diese Funktion nun eine Socket-Instanz zurück; vorher wurde eine resource zurückgegeben.
socket_addrinfo_bind | address ist nun eine AddressInfo-Instanz; vorher war es eine resource.
socket_addrinfo_bind | On success, this function returns a Socket instance now; previously, a resource was returned.
socket_addrinfo_connect | On success, this function returns a Socket instance now; previously, a resource was returned.
socket_addrinfo_connect | address ist nun eine AddressInfo-Instanz; vorher war es eine resource.
socket_addrinfo_explain | address ist nun eine AddressInfo-Instanz; vorher war es eine resource.
socket_addrinfo_lookup | service is nullable now.
socket_addrinfo_lookup | On success, this function returns a array of AddressInfo instances now; previously, an array of resources was returned.
socket_bind | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_clear_error | socket ist nun ein Nullable-Typ.
socket_clear_error | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_close | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_connect | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_connect | port ist nun ein Nullable-Typ.
socket_create | Bei Erfolg gibt diese Funktion nun eine Socket-Instanz zurück; zuvor wurde eine resource zurückgegeben.
socket_create_listen | Bei Erfolg gibt diese Funktion nun eine Socket-Instanz zurück; zuvor wurde eine resource zurückgegeben.
socket_create_pair | pair ist nun ein Verweis auf ein Array von Socket-Instanzen; vorher war es ein Verweis auf ein Array von resources.
socket_export_stream | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_get_option | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_getpeername | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_getsockname | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_import_stream | On success, this function returns a Socket instance now; previously, a resource was returned.
socket_last_error | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_last_error | socket ist nun ein Nullable-Typ.
socket_listen | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_read | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_recv | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_recvfrom | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_recvmsg | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_send | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_sendmsg | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_sendto | port ist nun ein Nullable-Typ.
socket_sendto | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_set_block | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_set_nonblock | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_set_option | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_shutdown | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_write | length ist nun ein Nullable-Typ.
socket_write | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_wsaprotocol_info_export | socket ist nun eine Socket-Instanz; vorher war es eine resource.
socket_wsaprotocol_info_import | On success, this function returns a Socket instance now; previously, a resource was returned.
soundex | Vor dieser Version wurde beim Aufruf der Funktion mit einer leeren Zeichenkette ohne besonderen Grund false zurückgegeben.
sprintf | Diese Funktion gibt bei Auftreten eines Fehlers nicht mehr false zurück.
str_word_count | characters ist jetzt ein Nullable-Typ.
strcspn | length ist jetzt ein Nullable-Typ.
strip_tags | allowed_tags ist jetzt ein Nullable-Typ.
stripos | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
stristr | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
strpos | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
strrchr | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
strripos | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
strrpos | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
strspn | length ist jetzt ein Nullable-Typ.
strstr | Die Übergabe eines Integer als needle wird nicht mehr unterstützt.
substr | length ist jetzt ein Nullable-Typ.
substr | Die Funktion gibt einen leeren String zurück, wo sie vorher false zurückgegeben hat.
substr_compare | length ist jetzt ein Nullable-Typ.
substr_count | length ist jetzt ein Nullable-Typ.
substr_replace | length ist jetzt ein Nullable-Typ.
vsprintf | Diese Funktion gibt bei Auftreten eines Fehlers nicht mehr false zurück.
xml_get_current_byte_index | parser expects an XMLParser instance now; previously, a resource was expected.
xml_get_current_column_number | parser expects an XMLParser instance now; previously, a resource was expected.
xml_get_current_line_number | parser expects an XMLParser instance now; previously, a resource was expected.
xml_get_error_code | parser expects an XMLParser instance now; previously, a resource was expected.
xml_parse | parser expects an XMLParser instance now; previously, a resource was expected.
xml_parse_into_struct | parser expects an XMLParser instance now; previously, a resource was expected.
xml_parser_create | This function returns an XMLParser instance now; previously, a resource was returned, Im Fehlerfall wird false zurückgegeben..
xml_parser_create | encoding is nullable now.
xml_parser_create_ns | encoding is nullable now.
xml_parser_create_ns | This function returns an XMLParser instance now; previously, a resource was returned, Im Fehlerfall wird false zurückgegeben..
xml_parser_free | parser expects an XMLParser instance now; previously, a resource was expected.
xml_parser_get_option | parser expects an XMLParser instance now; previously, a resource was expected.
xml_parser_set_option | parser expects an XMLParser instance now; previously, a resource was expected.
xml_set_character_data_handler | parser expects an XMLParser instance now; previously, a resource was expected.
xml_set_default_handler | parser expects an XMLParser instance now; previously, a resource was expected.
xml_set_element_handler | parser expects an XMLParser instance now; previously, a resource was expected.
xml_set_end_namespace_decl_handler | parser expects an XMLParser instance now; previously, a resource was expected.
xml_set_external_entity_ref_handler | parser expects an XMLParser instance now; previously, a resource was expected.
xml_set_notation_decl_handler | parser expects an XMLParser instance now; previously, a resource was expected.
xml_set_object | parser expects an XMLParser instance now; previously, a resource was expected.
xml_set_processing_instruction_handler | parser expects an XMLParser instance now; previously, a resource was expected.
xml_set_start_namespace_decl_handler | parser expects an XMLParser instance now; previously, a resource was expected.
xml_set_unparsed_entity_decl_handler | parser expects an XMLParser instance now; previously, a resource was expected.
zip_close | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::close.
zip_entry_close | Diese Funktion ist zugunsten der Objekt-API missbilligt.
zip_entry_compressedsize | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::statIndex.
zip_entry_compressionmethod | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::statIndex.
zip_entry_filesize | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::statIndex.
zip_entry_name | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::statIndex.
zip_entry_open | Diese Funktion ist zugunsten der Objekt-API missbilligt.
zip_entry_read | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::open.
zip_open | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::open.
zip_read | Diese Funktion ist zugunsten der Objekt-API missbilligt; siehe ZipArchive::statIndex.
ReflectionClass::getConstants | filter has been added.
ReflectionClass::getReflectionConstants | filter has been added.
ReflectionMethod::getClosure | object is now nullable.
ReflectionParameter::getDefaultValue | This method now allows getting the default value of parameters of built-in functions and built-in class methods. Previously, a ReflectionException was thrown.
ReflectionParameter::getDefaultValueConstantName | This method now allows getting the default values' constant names of built-in functions and built-in class methods. Previously, a ReflectionException was thrown.
ReflectionProperty::getValue | object is nullable now.
ReflectionProperty::isInitialized | object is nullable now.
SoapClient::__doRequest | oneWy ist nun vom Typ Boolean; vorher war er vom Typ Integer.
SoapClient::__setCookie | value ist nun ein Nullable-Typ.
SoapServer::handle | request ist nun ein Nullable-Typ.
tidy::__construct | filename, config, encoding and useIncludePath are nullable now.
tidy::parseFile | config and encoding are nullable now.
tidy::parseString | config and encoding are nullable now.
tidy::repairFile | tidy::repairFile is a static method now.
tidy::repairFile | config and encoding are nullable now.
tidy::repairString | config and encoding are nullable now.
tidy::repairString | This function no longer accepts the useIncludePath parameter.
tidy::repairString | tidy::repairString is a static method now.
XMLReader::getAttribute | Diese Funktion gibt nicht mehr false zurück.
XMLReader::getAttributeNs | This function can no longer return false.
XMLReader::lookupNamespace | Diese Funktion gibt nicht mehr false zurück.
XMLReader::next | name ist jetzt ein Nullable-Typ.
XMLReader::open | XMLReader::open ist jetzt als statische Methode deklariert, kann aber weiterhin auf einer XMLReader-Instanz aufgerufen werden.
XMLReader::XML | XMLReader::XML ist jetzt als statische Methode deklariert, kann aber weiterhin auf einer XMLReader-Instanz aufgerufen werden.
XMLWriter::endAttribute | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::endCdata | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::endComment | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::endDocument | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::endDtd | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::endDtdAttlist | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::endDtdElement | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::endDtdEntity | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::endElement | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::endPi | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::flush | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::flush | Diese Funktion kann nicht länger false zurückgeben.
XMLWriter::fullEndElement | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::openMemory | Diese Funktion gibt nun bei Erfolgt ein XMLWriter Exemplar zurück. Zuvor wurde in diesem Fall eine Ressource zurückgegeben.
XMLWriter::openUri | Diese Funktion gibt nun bei Erfolgt ein XMLWriter Exemplar zurück. Zuvor wurde in diesem Fall eine Ressource zurückgegeben.
XMLWriter::outputMemory | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::setIndent | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::setIndentString | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::startAttribute | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::startAttributeNs | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::startAttributeNs | prefix ist nun nullbar.
XMLWriter::startCdata | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::startComment | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::startDocument | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::startDtd | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::startDtdAttlist | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::startDtdElement | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::startDtdEntity | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::startElement | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::startElementNs | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::startPi | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::text | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::writeAttribute | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::writeAttributeNs | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::writeCdata | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::writeComment | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::writeDtd | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::writeDtdAttlist | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::writeDtdElement | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::writeDtdEntity | publicId, systemId und notationData sind nun nullbar.
XMLWriter::writeDtdEntity | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::writeElement | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::writeElementNs | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::writePi | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
XMLWriter::writeRaw | writer erwartet nun eine XMLWriter-Instanz; vorher wurde eine resource erwartet.
ZipArchive::setEncryptionIndex | password is now nullable.
ZipArchive::setEncryptionName | password is now nullable.
7.4.4 | proc_open | Die Option create_new_console wurde dem Parameter other_options hinzugefügt.
7.4.0 | array_merge | Diese Funktion kann nun ohne Parameter aufgerufen werden. Zuvor war mindestens ein Parameter erforderlich.
array_merge_recursive | Diese Funktion kann nun ohne Parameter aufgerufen werden. Zuvor war mindestens ein Parameter erforderlich.
base_convert | Die Übergabe ungültiger Zeichen löst nun einen Deprecation-Hinweis aus. Das Ergebnis wird weiterhin so berechnet, als würden die ungültigen Zeichen nicht existieren.
bindec | Die Übergabe ungültiger Zeichen löst nun einen Deprecation-Hinweis aus. Das Ergebnis wird weiterhin so berechnet, als würden die ungültigen Zeichen nicht existieren.
chr | Die Funktion akzeptiert nicht unterstütze codepoints nicht mehr stillschweigend und setzt diese auf 0.
fgetcsv | Der escape Parameter akzeptiert nun auch eine leere Zeichenkette, um den proprietären Maskierungsmechanismus zu deaktivieren.
fputcsv | The escape_char parameter now also accepts an empty string to disable the proprietary escape mechanism.
get_declared_classes | Zuvor gab get_declared_classes immer die Elternklassen vor den Kindklassen zurück. Dies ist nicht länger der Fall. Für den Rückgabewert von get_declared_classes wird keine bestimmte Reihenfolge zugesichert.
get_magic_quotes_gpc | Diese Funktion wurde missbilligt.
get_magic_quotes_runtime | Diese Funktion wurde missbilligt.
gzread | Diese Funktion gibt jetzt bei einem Fehler false zurück; vorher wurde 0 zurückgegeben.
gzwrite | Falls ein Fehler auftritt, gibt diese Funktion jetzt false zurück; vorher wurde 0 zurückgegeben.
hash_algos | Ünterstützung für crc32c wurde hinzugefügt.
hexdec | Die Übergabe ungültiger Zeichen löst nun einen Deprecation-Hinweis aus. Das Ergebnis wird weiterhin so berechnet, als würden die ungültigen Zeichen nicht existieren.
idn_to_ascii | The default value of variant is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003.
idn_to_utf8 | The default value of variant is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003.
imagecropauto | The default value of mode has been changed to IMG_CROP_AUTO. Formerly, the default value has been -1 which corresponds to IMG_CROP_DEFAULT, but passing -1 is now deprecated.
imagecropauto | The behavior of imagecropauto() in the bundled libgd has been synced with that of system libgd: IMG_CROP_DEFAULT no longer falls back to IMG_CROP_SIDES and threshold-cropping now uses the same algorithm as system libgd.
imagefilter | Scatter support (IMG_FILTER_SCATTER) was added.
implode | Das Übergeben des separators nach dem array (d.h. nicht die dokumentierte Reihenfolge der Parameter zu verwenden) wurde missbilligt.
ldap_control_paged_result | This function has been deprecated.
ldap_control_paged_result_response | This function has been deprecated.
money_format | Diese Funktion wird missbilligt. Stattdessen soll NumberFormatter::formatCurrency verwendet werden.
octdec | Die Übergabe ungültiger Zeichen löst nun einen Deprecation-Hinweis aus. Das Ergebnis wird weiterhin so berechnet, als würden die ungültigen Zeichen nicht existieren.
password_hash | Der algo Parameter erwartet nun einen String, aber akzeptiert noch immer Integer aus Gründen der Abwärtskompatibilität.
password_needs_rehash | Der algo Parameter erwartet nun einen String, aber akzeptiert noch immer Integer aus Gründen der Abwärtskompatibilität.
preg_replace_callback | Der flags Parameter wurde hinzugefügt.
preg_replace_callback_array | The flags parameter was added.
proc_open | Die Option create_process_group wurde dem Parameter other_options hinzugefügt.
proc_open | proc_open akzeptiert nun ebenfalls ein Array für das cmd.
stat | Unter Windows ist die Gerätenummer nun die Seriennummer des Laufwerks, das die Datei enthält, und die Inode-Nummer ist die mit der Datei assozierte Kennung.
stat | Die size, atime, mtime and ctime Statistiken symbolischer Links sind nun immer die des Ziels. Dies war zuvor nicht der Fall für NTS-Builds unter Windows.
str_getcsv | Der escape-Parameter interpretiert nun eine leere Zeichenkette als Signal, um den proprietären Maskierungsmechanismus zu deaktivieren. Zuvor wurde eine leere Zeichenkette wie der Vorgabewert behandelt.
strip_tags | Der allowed_tags-Parameter akzeptiert nun alternativ ein Array.
SplFileObject::fgetcsv | The escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
SplFileObject::fputcsv | The escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
SplFileObject::fwrite | The function now returns false instead of zero on failure.
SplFileObject::getCsvControl | The escape character can now be an empty string.
SplFileObject::setCsvControl | The escape parameter now also accepts an empty string to disable the proprietary escape mechanism.
SQLite3Stmt::bindParam | param now also supports the @param notation.
SQLite3Stmt::bindValue | param now also supports the @param notation.
7.3.24, 7.4.12 | tidyNode::isHtml | This function has been fixed to have reasonable behavior. Previously, almost any node was reported as being an HTML node.
7.3.15, 7.4.3 | curl_setopt | CURLOPT_HTTP09_ALLOWED wurde eingeführt.
7.3.14, 7.4.2 | dba_open | Der lmdb Treiber unterstützt nun einen zusätzlichen $mapsize Parameter.
7.3.0 | DateTime::createFromFormat | The v format specifier has been added.
apache_request_headers | Diese Funktion wurde in der FPM SAPI verfügbar.
array_push | Diese Funktion kann nun mit nur einem Parameter aufgerufen werden. Zuvor waren mindestens zwei Parameter erforderlich.
array_unshift | Diese Funktion kann nun mit nur einem Parameter aufgerufen werden. Zuvor waren mindestens zwei Parameter erforderlich.
bcmul | bcmul liefert nun Zahlen mit den angeforderten Nachkommastellen zurück. Zuvor haben die zurückgelieferten Zahlen möglicherweise abschließende Dezimalnullen ausgelassen.
bcpow | bcpow liefert nun Zahlen mit den angeforderten Nachkommastellen zurück. Zuvor haben die zurückgelieferten Zahlen möglicherweise abschließende Dezimalnullen ausgelassen.
bcscale | bcscale kann nun verwendet werden, um die aktuelle Genauigkeit zu ermitteln; wird es als Setter verwendet, gibt es nun die vorherige Genauigkeit zurück. Zuvor war scale obligatorisch, und bscale gab immer true zurück.
compact | compact erzeugt nun eine Fehlermeldung der Stufe E_NOTICE, wenn sich ein gegebener String auf eine nicht gesetzte Variable bezieht. Zuvor wurden solche Strings stillschweigend ausgelassen.
curl_getinfo | CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, CURLINFO_SCHEME, CURLINFO_SIZE_DOWNLOAD_T, CURLINFO_SIZE_UPLOAD_T, CURLINFO_SPEED_DOWNLOAD_T, CURLINFO_SPEED_UPLOAD_T, CURLINFO_APPCONNECT_TIME_T, CURLINFO_CONNECT_TIME_T, CURLINFO_FILETIME_T, CURLINFO_NAMELOOKUP_TIME_T, CURLINFO_PRETRANSFER_TIME_T, CURLINFO_REDIRECT_TIME_T, CURLINFO_STARTTRANSFER_TIME_T, CURLINFO_TOTAL_TIME_T eingeführt.
curl_setopt | CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPT_PRE_PROXY, CURLOPT_PROXY_CAINFO, CURLOPT_PROXY_CAPATH, CURLOPT_PROXY_CRLFILE, CURLOPT_PROXY_KEYPASSWD, CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPT_PROXY_SSLCERT, CURLOPT_PROXY_SSLCERTTYPE, CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPT_PROXY_SSLKEY, CURLOPT_PROXY_SSLKEYTYPE, CURLOPT_PROXY_SSL_OPTIONS, CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPT_PROXY_SSLVERSION, CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPT_SOCKS5_AUTH, CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPT_HAPROXYPROTOCOL, CURLOPT_PROXY_TLS13_CIPHERS, CURLOPT_SSH_COMPRESSION, CURLOPT_TIMEVALUE_LARGE und CURLOPT_TLS13_CIPHERS wurden eingeführt.
define | case_insensitive ist missbilligt und wird in Version 8.0.0 entfernt.
ftp_fget | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.
ftp_fput | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.
ftp_get | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.
ftp_nb_fget | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.
ftp_nb_fput | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.
ftp_nb_get | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.
ftp_nb_put | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.
ftp_put | Der mode Parameter ist nun optional. Zuvor war er verpflichtend.
getallheaders | Diese Funktion wurde in der FPM SAPI verfügbar.
imagecreatefromstring | WEBP is supported now (if supported by the libgd in use).
is_countable | is_countable has been added.
json_decode | JSON_THROW_ON_ERROR options wurde hinzugefügt.
json_encode | JSON_THROW_ON_ERROR options wurde hinzugefügt.
list | Unterstützung von Referenzzuweisungen bei der Arraydestrukturierung wurde hinzugefügt.
mb_convert_case | Added support for MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE, and MB_CASE_FOLD_SIMPLE as mode.
password_hash | Mit PASSWORD_ARGON2ID wurde die Unterstützung für Argon2id-Passwörter hinzugefügt.
preg_quote | Das Zeichen # wird nun maskiert.
session_get_cookie_params | Das Element "samesite" wurde im zurückgegebenen Array hinzugefügt.
session_set_cookie_params | Eine alternative Signatur, die ein options Array unterstützt, wurde hinzugefügt. Diese Signatur unterstützt ebenfalls das Setzen des SameSite-Cookie-Attributs.
setcookie | Eine alternative Signatur, die ein options-Array unterstützt, wurde hinzugefügt. Diese Signatur unterstützt ebenfalls das Setzen des SameSite-Cookie-Attributs.
setrawcookie | Eine alternative Signatur, die ein options-Array unterstützt, wurde hinzugefügt. Diese Signatur unterstützt ebenfalls das Setzen des SameSite-Cookie-Attributs.
stripos | Die Übergabe eines Integer als needle wird missbilligt.
stristr | Die Übergabe eines Integer als needle wird missbilligt.
strpos | Die Übergabe eines Integer als needle wird missbilligt.
strrchr | Die Übergabe eines Integer als needle wird missbilligt.
strripos | Die Übergabe eines Integer als needle wird missbilligt.
strrpos | Die Übergabe eines Integer als needle wird missbilligt.
strstr | Die Übergabe eines Integer als needle wird missbilligt.
unlink | Unter Windows ist es nun möglich, Dateien mit verwendeten Handles per unlink zu löschen, während dies zuvor fehlschlug. Es ist allerdings noch immer nicht möglich, die gelöschte Datei neu zu erzeugen, bevor alle Handles geschlossen wurden.
var_export | stdClass-Objekte werden nun als ein Array exportiert, das in ein Objekt umgewandelt wird ((object) array( ... )), anstatt die nicht existente Methode stdClass::__setState zu verwenden. Der praktische Effekt ist, dass stdClass nun exportierbar ist, und der erzeugte Code sogar mit früheren Versionen von PHP funktioniert.
xml_set_external_entity_ref_handler | The return value of the handler is no longer ignored if the extension has been built against libxml. Formerly, the return value has been ignored, and parsing did never stop.
7.3 | ldap_add | Die Unterstützung für controls wurde hinzugefügt.
ldap_compare | Die Unterstützung für controls wurde hinzugefügt.
ldap_delete | Die Unterstützung für controls wurde hinzugefügt.
ldap_exop | Support for serverctrls added
ldap_exop_passwd | Support for controls added
ldap_list | Die Unterstützung für controls wurde hinzugefügt.
ldap_mod_add | Die Unterstützung für controls wurde hinzugefügt.
ldap_mod_del | Die Unterstützung für controls wurde hinzugefügt.
ldap_mod_replace | Die Unterstützung für controls wurde hinzugefügt.
ldap_modify_batch | Support for controls added
ldap_mod_add_ext | Support for controls added
ldap_mod_del_ext | Support for controls added
ldap_mod_replace_ext | Support for controls added
ldap_parse_result | Die Unterstützung für controls wurde hinzugefügt.
ldap_read | Die Unterstützung für controls wurde hinzugefügt.
ldap_rename | Die Unterstützung für controls wurde hinzugefügt.
ldap_rename_ext | Support for controls added
ldap_search | Die Unterstützung für controls wurde hinzugefügt.
7.2.19, 7.3.6 | SplFileObject::__toString | Changed from an alias of SplFileObject::current to an alias of SplFileObject::fgets.
7.2.18, 7.3.5 | substr_compare | offset kann nun gleich der Länge des haystack sein.
7.2.0 | array_unique | Ist sort_flags gleich SORT_STRING, wurde früher array kopiert, und doppelte Elemente darin entfernt (ohne das Array danach zu packen), aber nun wird ein neues Array durch Hinzufügen der einzigartigen Elemente aufgebaut. Dies kann unterschiedliche numerische Indexe ergeben.
assert | Die Verwendung eines string als assertion wurde missbilligt. Dies erzeugt nun einen E_DEPRECATED Hinweis, wenn sowohl assert.active als auch zend.assertions auf 1 gesetzt sind.
bcmod | Der scale Parameter wurde hinzugefügt.
bcmod | dividend und divisor werden nicht länger zu einer Ganzzahl abgeschnitten, so dass nun das Verhalten von bcmod eher fmod statt dem % Operator entspricht.
count | count erzeugt nun eine Warnung für ungültige zählbare Typen, die an den array_or_countable-Parameter übergeben wurden.
date_parse | The zone element of the returned array represents seconds instead of minutes now, and its sign is inverted. For instance -120 is now 7200.
date_parse_from_format | The zone element of the returned array represents seconds instead of minutes now, and its sign is inverted. For instance -120 is now 7200.
exif_read_data | Der Parameter filename wurde in stream umbenannt, und unterstützt nun sowohl lokale Dateien als auch Stream-Ressourcen.
exif_read_data | Unterstützung für folgende EXIF-Formate wurde hinzugefügt: Samsung DJI Panasonic Sony Pentax Minolta Sigma/Foveon AGFA Kyocera Ricoh Epson
exif_thumbnail | Der filename-Parameter wurde zu stream umbenannt, und unterstützt nun sowohl lokale Dateien als auch Stream-Ressourcen.
get_class | Vor dieser Version war der Standardwert für object null, was denselben Effekt hatte wie das Auslassen dieses Parameters. Nun wurde null als Standardwert für object entfernt, und ist nicht länger eine gültige Eingabe.
gettype | Geschlossene Ressourcen werden nun als 'resource (closed)' gemeldet. Zuvor war der Rückgabewert für geschlossene Ressourcen 'unknown type'.
hash_copy | Erwartet und liefert nun einen HashContext anstatt einer Ressource zurück.
hash_final | Erwartet nun einen HashContext anstatt einer Ressource.
hash_hmac | Die Verwendung nicht-kryptografischer Hashfunktionen (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) ist nicht mehr möglich.
hash_hmac_file | Die Verwendung von nicht-kryptografischen Hashfunktionen (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) ist nicht mehr möglich.
hash_init | Liefert nun einen HashContext anstatt einer Ressource zurück.
hash_init | Die Verwendung nicht-kryptografischer Hashfunktionen (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) mit HASH_HMAC ist nicht mehr möglich.
hash_pbkdf2 | Usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
hash_update | Erwartet nun einen HashContext anstatt einer Ressource.
hash_update_file | Erwartet nun einen HashContext anstatt einer Ressource.
hash_update_stream | Erwartet nun einen HashContext anstatt einer Ressource.
idn_to_ascii | INTL_IDNA_VARIANT_2003 has been deprecated; use INTL_IDNA_VARIANT_UTS46 instead.
idn_to_utf8 | INTL_IDNA_VARIANT_2003 has been deprecated; use INTL_IDNA_VARIANT_UTS46 instead.
imageantialias | imageantialias is now generally available. Formerly it was only available if PHP was compiled with the bundled version of the GD library.
imagegd | imagegd now allows to output truecolor images. Formerly, these have been implicitly converted to palette.
imagelayereffect | Added IMG_EFFECT_MULTIPLY (requires system libgd >= 2.1.1 or the bundled libgd).
imagetypes | IMG_BMP wurde hinzugefügt.
is_object | is_object liefert nun true für unserialisierte Objekte ohne Klassendefinition (Klasse __PHP_Incomplete_Class) zurück. Zuvor wurde false zurückgeliefert.
json_decode | assoc ist nun nullbar.
json_decode | JSON_INVALID_UTF8_IGNORE, und JSON_INVALID_UTF8_SUBSTITUTE options wurden hinzugefügt.
json_encode | JSON_INVALID_UTF8_IGNORE, und JSON_INVALID_UTF8_SUBSTITUTE options wurden hinzugefügt.
mail | Der additional_headers Parameter akzeptiert nun ebenfalls ein array.
mb_check_encoding | This function now also accepts an Array as value. Formerly, only Strings have been supported.
mb_convert_encoding | This function now also accepts an Array as string. Formerly, only Strings have been supported.
mb_parse_str | Calling mb_parse_str without the second parameter was deprecated.
mb_send_mail | The additional_headers parameter now also accepts an array.
mt_rand | mt_rand erhielt einen Bugfix für einen Modulus-Verzerrungsfehler. Das bedeutet, dass Folgen mit einem bestimmten Startwert sich ab PHP 7.1 auf 64bit-Rechnern unterscheiden können.
number_format | number_format wurde geändert, so dass es nicht mehr -0 zurückgeben kann; zuvor konnte -0 zurückgegeben werden, z.B. wenn num gleich -0.01 war.
openssl_pkcs7_verify | Der Parameter output_filename wurde hinzugefügt.
pack | float- und double-Typen unterstützen sowohl Big-Endian als auch Little-Endian.
parse_str | Die Verwendung von parse_str ohne den zweiten Parameter erzeugt nun einen E_DEPRECATED-Fehler.
password_hash | Mit PASSWORD_ARGON2I wurde die Unterstützung für Argon2i-Passwörter hinzugefügt.
preg_match | Die Konstante PREG_UNMATCHED_AS_NULL wird nun für den Parameter $flags unterstützt.
preg_match_all | Die Konstante PREG_UNMATCHED_AS_NULL wird nun für den Parameter $flags unterstützt.
preg_quote | delimiter ist jetzt ein Nullable-Typ.
proc_nice | Diese Funktion steht nun unter Windows zur Verfügung.
rand | rand erhielt einen Bugfix für einen Modulus-Verzerrungsfehler. Das bedeutet, dass Folgen mit einem bestimmten Startwert sich ab PHP 7.1 auf 64bit-Rechnern unterscheiden können.
read_exif_data | Dieser Funktionsalias wurde missbilligt.
session_abort | The return type of this function is bool now. Formerly, it has been void.
session_module_name | Es ist nun explizit verboten, den Modulnamen auf "user" festzulegen. Zuvor wurde dies stillschweigend ignoriert.
session_name | session_name prüft den Session-Status; zuvor wurde nur der Cookie-Status geprüft. Somit war es zuvor möglich, dass session_name nach session_start aufgerufen wurde, was möglicherweise PHP zum Absturz brachte, und zu anderem Fehlverhalten führen konnte.
session_reset | The return type of this function is bool now. Formerly, it has been void.
session_set_cookie_params | Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben. Zuvor gab die Funktion void zurück.
session_unset | Der Rückgabetyp dieser Funktion ist nun bool. Zuvor war er void.
session_write_close | Der Rückgabetyp dieser Funktion ist nun bool. Zuvor war er void.
set_error_handler | errcontext wurde missbilligt. Die Verwendung dieses Parameters erzeugt nun eine E_DEPRECATED-Notice.
unpack | float- und double-Typen unterstützen sowohl Big-Endian als auch Little-Endian.
utf8_decode | Diese Funktion wurde in den Kern von PHP verschoben, so dass sie nun auch ohne die XML-Extension verfügbar ist.
utf8_encode | Diese Funktion wurde in den Kern von PHP verschoben, so dass sie nun auch ohne die XML-Extension verfügbar ist.
PDOStatement::debugDumpParams | PDOStatement::debugDumpParams now returns the SQL sent to the database, including the full, raw query (including the replaced placeholders with their bounded values). Note, that this will only be available if emulated prepared statements are turned on.
ReflectionClass::getMethods | filter is nullable now.
ReflectionClass::getProperties | filter is nullable now.
SQLite3::openBlob | The flags parameter has been added, allowing to write BLOBs; formerly only reading was supported.
7.1.24, 7.2.12, 7.3.0 | xml_parser_get_option | options now supports XML_OPTION_SKIP_TAGSTART and XML_OPTION_SKIP_WHITE.
7.1.5 | IntlDateFormatter::format | Support for providing general DateTimeInterface objects to the datetime parameter was added. Formerly, only proper DateTime objects were supported.
7.1.4 | PDO::sqliteCreateFunction | Der Parameter flags wurde hinzugefügt.
SQLite3::createFunction | Der flags-Parameter wurde hinzugefügt.
7.1.0 | DateInterval::format | The F and f format characters were added.
DateTime::__construct | Von nun an werden die Mikrosekunden mit dem tatsächlichen Wert belegt, nicht mehr mit '00000'.
DateTime::setTime | The microsecond parameter was added.
DateTimeZone::listIdentifiers | countryCode is nullable now.
array_rand | Zur Erzeugung der Zufallszahlen kommt intern nun der Mersenne-Primzahlen-Zufallsgenerator statt der vorherigen libc-rand-Funktion zum Einsatz.
curl_multi_setopt | CURLMOPT_PUSHFUNCTION wurde eingeführt.
exif_imagetype | Unterstützung für WebP hinzugefügt.
file_get_contents | Unterstützung für negative offsets wurde hinzugefügt.
get_headers | Der Parameter context wurde hinzugefügt.
getenv | Der Parameter varname kann nun ausgelassen werden, um ein assoziatives Array aller Umgebungsvariablen abzurufen.
getimagesize | Unterstützung für WebP hinzugefügt.
getopt | Added the rest_index parameter.
grapheme_extract | Support for negative offsets has been added.
grapheme_stripos | Support for negative offsets has been added.
grapheme_strpos | Support for negative offsets has been added.
hash_algos | Unterstützung für sha512/224, sha512/256, sha3-224, sha3-256, sha3-384 und sha3-512 wurde hinzugefügt.
iconv_strpos | Support for negative offsets has been added.
json_decode | Ein leerer JSON-Schlüssel ("") kann als leere Objekt-Eigenschaft kodiert werden, anstatt dass ein Schlüssel mit dem Wert _empty_ verwendet wird.
json_encode | serialize_precision wird nun anstatt precision verwendet, wenn Double-Werte kodiert werden.
list | Es ist nun möglich Schlüssel in list anzugeben. Dies ermöglicht die Destrukturierung von Arrays mit nicht numerischen oder nicht fortlaufenden Schlüsseln.
long2ip | Der Parametertyp von ip wurde von string zu int geändert.
mb_ereg | mb_ereg will now set matches to an empty array, if nothing matched. Formerly, matches was not modified in that case.
mb_ereg_replace | The function checks whether string is valid for the current encoding.
mb_ereg_replace | The e modifier has been deprecated.
mb_ereg_replace_callback | The function checks whether string is valid for the current encoding.
mb_ereg_search_setpos | Support for negative offsets has been added.
mb_eregi | mb_eregi will now set matches to an empty array, if nothing matched. Formerly, matches was not modified in that case.
mb_eregi_replace | The e modifier has been deprecated.
mb_eregi_replace | The function checks whether string is valid for the current encoding.
mb_strimwidth | Support for negative starts and widths has been added.
mb_stripos | Support for negative offsets has been added.
mb_strpos | Support for negative offsets has been added.
mt_rand | rand ist nun ein Alias von mt_rand.
mt_rand | mt_rand verwendet nun eine korrekte Version des Mersenne-Twister-Algorithmus. Um auf das vorherige Verhalten auszuweichen, kann mt_srand mit MT_RAND_PHP als zweitem Parameter verwendet werden.
mt_srand | srand ist nun ein Alias von mt_srand.
mt_srand | mt_rand verwendet nun eine korrekte Version des Mersenne-Twister-Algorithmus. Um auf das vorherige Verhalten auszuweichen, kann mt_srand mit MT_RAND_PHP als zweitem Parameter verwendet werden.
openssl_csr_new | options unterstützt nun auch curve_name.
openssl_decrypt | The tag and aad parameters were added.
openssl_encrypt | Die Parameter tag, aad und tag_length wurden hinzugefügt.
openssl_pkey_new | Das Konfigurationsargument curve_name wurde hinzugefügt, sodass EC-Schlüssel erzeugt werden können.
output_add_rewrite_var | Vor PHP 7.1.0 verwendeten Rewrite-Variablen, die durch output_add_rewrite_var gesetzt wurden, den trans sid Ausgabepuffer des Session-Moduls. Seit PHP 7.1.0 wird ein eigener Ausgabepuffer verwendet; url_rewriter.tags wird nur noch für die Ausgabefunktionen berücksichtigt. url_rewriter.hosts wurde hinzugefügt.
output_reset_rewrite_vars | Before PHP 7.1.0, rewrite vars set by output_add_rewrite_var use the same Session module trans sid output buffer. Since PHP 7.1.0, dedicated output buffer is used and output_reset_rewrite_vars only removes rewrite vars defined by output_add_rewrite_var.
pcntl_signal | Von PHP 7.1.0 an wird der Signalverbeitung ein zweites Argument übergeben, das die siginfo des spezfischen Signals enthält. Diese Daten werden nur zur Verfügung gestellt, wenn das System die siginfo_t-Struktur kennt. Wenn das Betriebssystem siginfo_t nicht implementiert, wird null übergeben.
pcntl_signal_get_handler | pcntl_signal_get_handler has been added.
pg_fetch_all | Der Parameter result_type wurde hinzugefügt.
pg_last_notice | Der option-Parameter wurde hinzugefügt.
pg_select | Der result_type-Parameter wurde hinzugefügt.
rand | rand ist nun ein Alias von mt_rand.
session_start | session_start gibt nun false zurück, und initialisiert $_SESSION nicht mehr, wenn das Starten der Session fehlschlug.
shuffle | Zur Erzeugung der Zufallszahlen kommt intern nun der Mersenne-Primzahlen-Zufallsgenerator statt der vorherigen libc-rand-Funktion zum Einsatz.
srand | srand ist nun ein Alias von mt_srand.
str_shuffle | Der interne Zufallsalgorithmus wurde geändert, und verwendet nun den Mersenne Twister Zufallszahlengenerator statt der rand Funktion von libc.
stripos | Unterstützung für negative offset-Werte wurde hinzugefügt.
strpos | Unterstützung für negative offset-Werte wurde hinzugefügt.
substr_count | Unterstützung für negative offset- und length-Argumente wurde hinzugefügt. length kann nun auch 0 sein.
unpack | Der optionale offset wurde hinzugefügt.
unserialize | Das allowed_classes Element von options) ist nun strikt typisiert, d.h. wird etwas anderes als ein Array oder ein bool übergeben, liefert unserialize false zurück und löst ein E_WARNING aus.
ReflectionType::__toString | ReflectionType::__toString has been deprecated.
SessionHandler::gc | Prior to this version, the function returned true on success.
SessionHandlerInterface::gc | Prior to this version, the function returned true on success.
7.0.16, 7.1.2 | dns_get_record | Die Unterstützung für den CAA-Record-Typ wurde hinzugefügt.
fopen | Die 'e' Option wurde hinzugefügt.
7.0.15, 7.1.1 | get_defined_functions | Der exclude_disabled Parameter wurde hinzugefügt.
pack | Die Codes "e", "E", "g" und "G" wurden hinzugefügt, um die Byte-Folgen-Unterstützung für float und double zu ermöglichen.
7.0.11 | iconv_substr | If string is equal to offset characters long, an empty string will be returned. Prior to this version, false was returned in this case.
7.0.10 | imagetypes | IMG_WEBP wurde hinzugefügt.
SQLite3::__construct | Der Parameter filename kann nun leer sein, um eine private, temporäre Datenbank auf der Festplatte zu verwenden.
7.0.7 | curl_multi_setopt | CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH und CURLMOPT_MAX_TOTAL_CONNECTIONS wurden eingeführt.
curl_setopt | CURL_HTTP_VERSION_2, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CURL_HTTP_VERSION_2TLS, CURL_REDIR_POST_301, CURL_REDIR_POST_302, CURL_REDIR_POST_303, CURL_REDIR_POST_ALL, CURL_VERSION_KERBEROS5, CURL_VERSION_PSL, CURL_VERSION_UNIX_SOCKETS, CURLAUTH_NEGOTIATE, CURLAUTH_NTLM_WB, CURLFTP_CREATE_DIR, CURLFTP_CREATE_DIR_NONE, CURLFTP_CREATE_DIR_RETRY, CURLHEADER_SEPARATE, CURLHEADER_UNIFIED, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPT_CONNECT_TO, CURLOPT_DEFAULT_PROTOCOL, CURLOPT_DNS_INTERFACE, CURLOPT_DNS_LOCAL_IP4, CURLOPT_DNS_LOCAL_IP6, CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPT_HEADEROPT, CURLOPT_LOGIN_OPTIONS, CURLOPT_PATH_AS_IS, CURLOPT_PINNEDPUBLICKEY, CURLOPT_PIPEWAIT, CURLOPT_PROXY_SERVICE_NAME, CURLOPT_PROXYHEADER, CURLOPT_SASL_IR, CURLOPT_SERVICE_NAME, CURLOPT_SSL_ENABLE_ALPN, CURLOPT_SSL_ENABLE_NPN, CURLOPT_SSL_FALSESTART, CURLOPT_SSL_VERIFYSTATUS, CURLOPT_STREAM_WEIGHT, CURLOPT_TCP_FASTOPEN, CURLOPT_TFTP_NO_OPTIONS, CURLOPT_UNIX_SOCKET_PATH, CURLOPT_XOAUTH2_BEARER, CURLPROTO_SMB, CURLPROTO_SMBS, CURLPROXY_HTTP_1_0, CURLSSH_AUTH_AGENT und CURLSSLOPT_NO_REVOKE wurden eingeführt.
7.0.0 | array_column | Added the ability for the array parameter to be an array of objects.
assert | assert ist nun ein Sprachkonstrukt und keine Funktion mehr. assertion kann nun ein Ausdruck sein. Der zweite Parameter wird nun entweder als exception interpretiert (wenn ein Throwable Objekt übergeben wird), oder als description, was ab PHP 5.4.8 unterstützt wird.
current | array wird nun immer als Wert übergeben. Vor dieser Version wurde es, wenn möglich, als Referenz übergeben, und andernfalls als Wert.
define | array-Werte sind erlaubt.
dirname | Der optionale Parameter levels wurde hinzugefügt.
getrusage | Diese Funktion wird nun unter Windows unterstützt.
is_numeric | Zeichenketten in hexadezimaler Notation (z.B. 0xf4c3b00c) werden nicht länger als numerische Zeichenketten angesehen, d.h. is_numeric gibt nun false zurück.
key | array wird nun immer als Wert übergeben. Vor dieser Version wurde es, wenn möglich, als Referenz übergeben, und andernfalls als Wert.
list | Zeichenketten können nicht mehr entpackt werden.
list | Ausdrücke dürfen nicht mehr vollständig leer sein.
list | Die Reihenfolge, in der die Zuweisungsoperationen durchgeführt werden, wurde geändert.
parse_ini_file | Das Raute-Symbol (#) kann nicht mehr für Kommentare verwendet werden.
proc_open | Die Option blocking_pipes wurde dem Parameter other_options hinzugefügt.
set_exception_handler | Der Typ des Parameters, der als exception_handler übergeben wird, wurde von Exception in Throwable geändert.
unserialize | Der options Parameter wurde hinzugefügt.
5.6.25, 7.0.10 | SplFileObject::getCsvControl | Added the escape character to the returned array.
5.6.3 | pack | Die Codes "q", "Q", "J" und "P" wurden hinzugefügt, um die Arbeit mit 64bit-Zahlen zu ermöglichen.
5.6.1 | parse_ini_file | Neuen Modus INI_SCANNER_TYPED hinzugefügt.
5.6.0 | array_fill | num kann nun 0 sein. Zuvor musste num größer als 0 sein.
array_filter | Der optionale Parameter flag und die Konstanten ARRAY_FILTER_USE_KEY und ARRAY_FILTER_USE_BOTH wurden hinzugefügt.
hash_algos | Unterstützung für gost-crypto hinzugefügt. Dieser implementiert die GOST Hash-Funktion unter Verwendung der CryptoPro S-box Tabellen wie unter RFC 4357, section 11.2 spezifiziert.
mb_regex_encoding | Default encoding is changed to UTF-8. It was EUC-JP Previously.
mcrypt_decrypt | Invalid key and iv sizes are no longer accepted. mcrypt_decrypt will now throw a warning and return false if the inputs are invalid. Previously keys and IVs were padded with '\0' bytes to the next valid size.
mcrypt_encrypt | Invalid key and iv sizes are no longer accepted. mcrypt_encrypt will now throw a warning and return false if the inputs are invalid. Previously keys and IVs were padded with '\0' bytes to the next valid size.
pg_connect | Unterstützung für die Übergabe der Konstante PGSQL_CONNECT_ASYNC als connect_type wurde hinzugefügt.
pg_convert | Nicht länger experimentell. Boolesche/NULL Datentypen werden unterstützt. Unbekannte/nicht unterstützte Datentypen werden ohne Gültigkeitsprüfung maskiert. pg_convert kann mit jedem Datentypen verwendet werden.
pg_insert | Außer wenn PGSQL_DML_STRING übergeben wird, liefert die Funktion nun im Erfolgsfall die Verbindungsressource anstelle von true zurück.
pg_insert | Nicht länger experimentell. Die PGSQL_DML_ESCAPE Konstante wurde hinzugefügt, wie auch Unterstützung für true/false und null Datentypen.
pg_lo_seek | Unterstützung für 64bit große Objekte von PostgreSQL 9.3 wurde hinzugefügt. Sowohl Client als auch Server müssen PostgreSQL 9.3 unterstützen, und PHP muss ein 64bit Build sein, um 64bit große Objekte verwenden zu können.
pg_lo_tell | Unterstützung für 64bit große Objekte von PostgreSQL 9.3 wurde hinzugefügt. Sowohl Client als auch Server müssen PostgreSQL 9.3 unterstützen, und PHP muss ein 64bit Build sein, um 64bit große Objekte verwenden zu können.
pg_lo_truncate | Added truncate function. It supports PostgreSQL 9.3's 64bit large object. Both client and server must support PostgreSQL 9.3 and PHP must be 64bit build to use 64bit large object.
pg_meta_data | Nicht länger experimentell. "is enum" wurde als Standardattribut hinzugefügt. extended Flag wurde hinzugefügt.
pg_select | Nicht länger experimentell. Die PGSQL_DML_ESCAPE Konstante wurde hinzugefügt, wie auch Unterstützung für true/false und null Datentypen.
pg_update | Nicht länger experimentell. Die PGSQL_DML_ESCAPE Konstante wurde hinzugefügt, wie auch Unterstützung für true/false und null Datentypen.
stream_socket_enable_crypto | Introduce STREAM_CRYPTO_METHOD_ANY_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, STREAM_CRYPTO_METHOD_ANY_SERVER, STREAM_CRYPTO_METHOD_TLSv1_0_SERVER, STREAM_CRYPTO_METHOD_TLSv1_1_SERVER, STREAM_CRYPTO_METHOD_TLSv1_2_SERVER.
stream_socket_enable_crypto | The crypto_type is now optional.
unserialize | Die Manipulation der serialisierten Daten durch das Ersetzen von C: mit O: um die Objektinstanziierung ohne Aufruf des Konstruktors zu erzwingen, schlägt nun fehl.
ReflectionClass::newInstanceWithoutConstructor | All internal classes can now be instantiated except for those declared final.
XMLReader::getAttributeNo | XMLReader::getAttributeNo gibt nun null zurück, wenn das Attribut nicht existiert.
XMLReader::getAttributeNs | XMLReader::getAttributeNS gibt nun null zurück, wenn das Attribut nicht existiert.
5.5.38, 5.6.24, 7.0.9 | getenv | Der local_only Parameter wurde hinzugefügt.
5.5.22, 5.6.6 | flock | Unterstützung für den wouldblock-Parameter unter Windows hinzugefügt.
5.5.21, 5.6.5 | SplFileObject::fputcsv | Added the escape parameter.
5.5.19, 5.6.3 | DateTimeZone::getOffset | datetime type changed to DateTimeInterface. Previously, DateTime.
5.5.10 | DateTimeZone::__construct | Der timezone Parameter akzeptiert Offset-Werte.
5.5.8 | DatePeriod::__construct | end Typ zu DateTimeInterface geändert. Zuvor war es DateTime.
5.5.4 | fputcsv | The escape_char parameter was added
5.5.3/5.4.19 | pg_insert | Direkte SQL-Injection in table_name und indirekte SQL-Injection in Bezeichner wurden behoben.
pg_select | Direkte SQL-Injection in table_name und indirekte SQL-Injection in Bezeichner wurden behoben.
pg_update | Direkte SQL-Injection in table_name und indirekte SQL-Injection in Bezeichner wurden behoben.
5.5.2 | DOMDocument::schemaValidate | Added the flags parameter
DOMDocument::schemaValidateSource | Added the flags parameter
5.5.1 | pg_unescape_bytea | Eine Warnung wird erzeugt, wenn die Eingabezeichenkette ungültig ist.
5.5.0/PECL 3.0.0 | IntlDateFormatter::create | An IntlCalendar object is allowed for calendar. Objects of type IntlTimeZone and DateTimeZone are allowed for timezone. Invalid timezone identifiers (including empty strings) are no longer allowed for timezone. If null is given for timezone, the timezone identifier given by date_default_timezone_get will be used instead of ICU's default.
IntlDateFormatter::setCalendar | It became possible to pass an IntlCalendar object.
5.5.0 | DatePeriod::__construct | start Typ zu DateTimeInterface geändert. Zuvor war es DateTime.
Die Funktion erzeugt einen Fehler der Stufe E_DEPRECATED.
Die Funktion mysql_list_dbs ist veraltet und gibt einen Fehler der Stufe E_DEPRECATED aus.
Die Funktion erzeugt einen Fehler der Stufe E_DEPRECATED.
Die Funktion mysql_tablename ist veraltet und ruft einen Fehler der Stufe E_DEPRECATED hervor.
pack | Der Code "Z" mit äquivalenter Funktionsweise wie "a" wurde zwecks Perl-Kompatibilität hinzugefügt.
set_exception_handler | Zuvor gab diese Funktion true zurück, wenn null übergeben wurde. Seit PHP 5.5.0 wird der vorherige Handler zurück gegeben.
unpack | Änderungen wurden durchgeführt, um diese Funktion in Übereinstimmung mit Perl zu bringen: Der Code "a" erhält nun abschließende NULL Bytes. Der Code "A" entfernt nun alle abschließenden ASCII Whitespaces (Leerzeichen, Tabs, Zeilenvorschübe, Wagenrückläufe und NULL Bytes). Der Code "Z" wurde für mit NULL aufgefüllte Zeichenketten hinzugefügt, und entfernt abschließende NULL Bytes.
5.4.43, 5.5.27, 5.6.11 | escapeshellarg | Ausrufezeichen werden nun durch Leerzeichen ersetzt.
escapeshellcmd | Ausrufezeichen werden durch Leerzeichen ersetzt.
5.4.0 | apache_child_terminate | Diese Funktion wurde unter FastCGI verfügbar. Vorher wurde sie nur unterstützt, wenn PHP als Apache Modul installiert war.
debug_backtrace | Der Parameter limit wurde hinzugefügt.
debug_print_backtrace | Der optionale Parameter limit wurde hinzugefügt.
error_reporting | E_STRICT ist nun in E_ALL enthalten.
filter_input_array | Der Paramter add_empty wurde hinzugefügt.
filter_var_array | Der Parameter add_empty wurde hinzugefügt.
hash | Der tiger Algorithmus verwendet nun Big-Endian-Bytereihenfolge. Vergleiche das Beispiel weiter unten.
hash_algos | Unterstützung für joaat, fnv132 und fnv164 hinzugefügt. Unterstützung für Salsa10 und Salsa20 entfernt.
iconv | Seit dieser Version gibt die Funktion false bei nicht erlaubten Zeichen zurück, außer wenn //IGNORE im Ausgabe-Zeichensatz angegeben wurde. Vorher wurde eine partielle Ausgabezeichenkette zurück gegeben.
scandir | sorting_order Konstanten wurden hinzugefügt. Jeder Wert ungleich 0 bewirkte absteigende Reihenfolge in vorherigen Versionen. Also verwenden Sie 0 für aufsteigende und 1 für absteigende Reihenfolge für alle PHP Versionen. Eine Möglichkeit für das SCANDIR_SORT_NONE Verhalten gab es vor PHP 5.4.0 nicht.
5.3.15, 5.4.5 | Collator::getSortKey | Sort keys do no longer contain any NUL bytes.
5.3.6 | debug_backtrace | Der Parameter provide_object wurde durch options ersetzt und DEBUG_BACKTRACE_IGNORE_ARGS wurde als zusätzliche Option hinzugefügt.
debug_print_backtrace | Der optionale Parameter options wurde hinzugefügt.
5.3.4 | copy | Der context Parameter wurde geändert, so dass er nun auch wirkt. Zuvor wurde jeglicher context ignoriert.
5.3.2 | flock | Das automatische Entsperren, wenn das Ressourcen-Handle der Datei geschlossen wurde, wurde entfernt. Entsperren muss nun immer manuell ausgeführt werden.
5.3.1 | ibase_query | Im Erfolgsfall gibt die Funktion nun true zurück, wenn keine Zeilen betroffen waren, wohingegen zuvor 0 (eine Null gefolgt von einem Leerzeichen) zurückgegeben wurde.
rename | rename kann nun unter Windows Dateien dateisystemübergreifend umbenennen.
5.3.0 | clearstatcache | Added optional clear_realpath_cache and filename parameters.
copy | Context Unterstützung wurde hinzugefügt.
error_reporting | E_DEPRECATED und E_USER_DEPRECATED wurden hinzugefügt.
escapeshellcmd | Unter Windows werden die Sonderzeichen nun ordnungsgemäß maskiert. Zuvor wurden sie durch ein Leerzeichen ersetzt.
exif_imagetype | Unterstützung für ICO hinzugefügt.
hash_algos | Unterstützung für md2, ripemd256, ripemd320, salsa10, salsa20, snefru256 und sha224 hinzugefügt.
link | Diese Funktion ist nun verfügbar unter Windows-Plattformen (Vista, Server 2008 or neuer).
linkinfo | Diese Funktion ist nun verfügbar unter Windows-Plattformen (Vista, Server 2008 or neuer).
parse_ini_file | Der optionale Parameter scanner_mode wurde hinzugefügt. Einfache Anführungszeichen können nun um Variablenzuordnungen herum verwendet werden. Rautezeichen (# können nicht länger für Kommentare verwendet werden und bei Verwendung wird eine Warnung zur veralteten Benutzung ausgegeben.
readlink | Diese Funktion ist nun auf Windows-Systemen (Vista, Server 2008 oder höher) verfügbar.
realpath | Vor dieser Version schlug realpath auf BSD Systemen nicht fehl, wenn nur die letzte path Komponente nicht existierte. Jetzt schlägt realpath auch in diesem Fall fehl.
symlink | Diese Funktion ist nun verfügbar auf Windows-Plattformen (Vista, Server 2008 oder neuer).
touch | Es wurde ermöglicht, die Modifikationszeit eines Verzeichnisses unter Windows zu ändern.
5.2.7 | error_log | Der mögliche Wert 4 wurde zu message_type hinzugefügt.
parse_ini_file | Bei einem Syntaxfehler gibt die Funktion nun false statt eines leeren Array zurück.
5.2.5 | debug_backtrace | Der optionale Parameter provide_object wurde hinzugefügt.
5.2.4 | parse_ini_file | Schlüssel und Gruppennamen mit Ziffern werden nun als Integer von PHP ausgewertet, weshalb Zahlen, die mit einer 0 beginnen, als Oktalzahlen und Zahlen, die mit 0x beginnen, als Hexadezimalzahlen verstanden werden.
5.2.2 | ftp_ssl_connect | Diese Funktion gibt nun false zurück, wenn sie keine SSL-Verbindung aufbauen kann. Vorher gab es einen Fallback auf eine Nicht-SSL-Verbindung.
proc_terminate | Ältere Versionen wurden verwendet, um das übergebene Prozesshandle resource zu zerstören.
5.2.1 | proc_open | Die Option bypass_shell wurde dem Parameter other_options hinzugefügt.
realpath | Vor dieser Version gab realpath false zurück, wenn path eine leere Zeichenkette oder null ist.
5.2.0 | error_reporting | E_RECOVERABLE_ERROR wurde hinzugefügt.
pathinfo | Die PATHINFO_FILENAME-Konstante wurde hinzugefügt.
simplexml_load_file | Der optionale Parameter is_prefix wurde hinzugefügt.
simplexml_load_string | Der optionale Parameter is_prefix wurde hinzugefügt.
SimpleXMLElement::attributes | Der optionale Parameter is_prefix wurde hinzugefügt.
SimpleXMLElement::__construct | Die ns und is_prefix Parameter wurden hinzugefügt.
5.1.2 | SimpleXMLElement::__construct | Die options und data_is_url Parameter wurden hinzugefügt.
5.1.1 | date | Es gibt nützliche Konstanten von üblichen Datums-/Zeitformaten, die als Format-Parameter übergeben werden können.
debug_backtrace | Aktuelles object als möglichen Rückgabewert hinzugefügt.
5.1.0 | date | Erzeugt nun E_STRICT- und E_NOTICE-Zeitzonenfehler.
date | Der gültige Bereich eines Timestamp liegt typischerweise zwischen Fri, 13 Dec 1901 20:45:54 GMT und Tue, 19 Jan 2038 03:14:07 GMT. (Das entspricht den minimalen und maximalen Werten für einen vorzeichenbehafteten 32-Bit Integer). Vor PHP 5.1.0 war dieser Bereich auf manchen Systemen (z.B. Windows) eingeschränkt auf 01.01.1971 bis 19.01.2038.
file_put_contents | Unterstützung für LOCK_EX hinzugefügt und die Möglichkeit,eine Stream-Quelle als data-Parameter zu übergeben
glob | GLOB_ERR wurde hinzugefügt
intval | Erzeugt eine Meldung vom Type E_NOTICE und gibt den Wert 1 zurück, wenn ein Objekt als Parameter value übergeben wird.


Windows HTML-Hilfe

  • Über diese Ausgabe
  • Using PHP Manual CHM Edition
    • The HTML Help Toolbar
    • The Navigation Pane
    • Keyboard Shortcuts
  • The Full Text Search
    • General searching rules
    • Searching for words or phrases
    • Defining search terms
    • Using nested expressions when searching
  • Integrating the PHP Manual


Über diese Ausgabe

Die Version des Handbuchs im Windows-HTML-Hilfe-Format wendet sich an Entwickler, die das Handbuch inklusive der Kommentare immer griffbreit haben wollen und trotzdem nicht auf das Laden einer Webseite warten wollen. Diese Ausgabe bietet den kompletten Inhalt des Handbuchs, ergänzt um die Nutzer-Kommentare sowie einige nützliche Features, die das Anzeigeprogramm zur Verfügung stellt. Nur Erstellung nutzen wir Skripte, außerdem binden wir verschiedene "Skins" ein.

Diese Distribution des PHP Handbuchs enthält viele Dateien, unter anderem die Hauptdatei php_manual_de.chm. Um diese anzusehen, doppelklicken Sie darauf (vermutlich haben Sie das schon). Eventuell sehen Sie auch eine Datei php_manual_de.chw in diesem Verzeichnis. Diese Datei wird angelegt, wenn Sie das erste Mal den Index-Reiter öffnen; sie enthält einen Index der Handbuchseiten.

Für alle, die an den technischen Details der Microsoft-HTML-Hilfe interessiert sind, ist » http://www.helpware.net/ eine gute Quelle. Weitere Informationen und den Stand der Windows-HTML-Hilfe in den Microsoft-Hilfe-Formaten in der Vergangenheit finden Sie in einem » WinWriters-Artikel.


Using PHP Manual CHM Edition

Inhaltsverzeichnis

  • The HTML Help Toolbar
  • The Navigation Pane
  • Keyboard Shortcuts

When you double click on a CHM, a HTML Help Viewer window opens with three panes. On the left side of the window is the Navigation pane. It contains four navigational tabs: the Contents, Index, Search and Favorites tabs. On the right side of the window is the Topic pane. It displays the selected help topic, or the default help topic on startup. The help pages are all separate HTML files, your Internet Explorer displays the pages in the Topic pane. The third pane is the toolbar, which is located below the help window title bar. You can adjust the horizontal layout with dragging the vertical border between the Navigation pane and the Topic pane.

Note, that when you open the CHM the first time, it may appear in a strange position and size. From then, Windows remembers the window position, size and the last opened tab. All these including your favorites are stored in a file named hh.dat. If you move your file to another directory, all these remembered settings will be lost (including your favorites listing!). If you replace your CHM file with a new one, with the same name, this is not a problem though. The file names and path values are stored in hh.dat.


The HTML Help Toolbar

The HTML Help Toolbar contains the following icons, when you view the PHP Manual:

  • Hide/Show - Hides/shows the navigation pane.
  • Locate - Locates a topic in the contents tab (in case you reached a topic with search, index or favorites, and would like to see where it is in the table of contents tree view).
  • Back - Goes back in the history.
  • Forward - Goes forward in the history.
  • Refresh - Reloads the current page.
  • Home - Opens the startup page of the CHM.
  • Print - Opens the print dialog box.
  • Options - Provides a dropdown with more options.
Using this toolbar is really easy, many of the toolbar icons are strongly related to their Internet Explorer equivalents.


The Navigation Pane

The Navigation Pane contains four navigational tabs: the Contents, Index, Search and Favorites tabs. These all provide different methods to access a topic in the help file.

  • The contents tab reveals a tree like table of contents, where you can navigate to the desired topic by opening and closing parts of the tree. You can even access the deepest sections using this TOC. If you right click on an item here and choose "Print...", you'll have the option to print the selected topic or the selected topic and all subtopics. However printing is not the initial goal of this representation of the manual (the PDF version is suitable for printing).
  • The index tab lists a huge number of "keywords" (actually manual page titles). You can pick one, or start to type a keyword, see the list adjusting to your input, and then click on a topic, or press enter if the selected topic is the one you would like to see.
  • The search tab shows one of the most powerful features of the HTML Help Viewer, the full text search (also known as FTS). Here you can type in your search expression, optionally connecting words with AND/OR/NEAR/NOT. Before you click 'List topics', you can also set some options at the bottom. After the search results are displayed, you'll realize that manual text and user note results are separated. To sort out the two types, click on the 'Location' column header. Now from the search results list, you can pick a topic, and see it's page. The keywords you searched for are highlighted on the page.
  • The favorites tab enables you to store your most used topics in a list, easily accessible. Here you can see the list, add the current topic to it, remove one, or display a selected item. You can also specify your own title for the favorite, by typing it into the 'Current topic:' box. The user note page titles are prepended with a 'N:' string so you can distinguish them from normal manual pages in the favorites listing.


Keyboard Shortcuts

There are many keyboard shortcuts you can use to increase your productivity. Many users find it more appropriate to use these keyboard shortcuts to access topics, instead of clicking.

General Help Viewer Shortcuts
To | Press
Close the Help Viewer | ALT+F4
Display the Options menu | ALT+O
Hide or show the Navigation pane | ALT+O, and then T
Print a topic | ALT+O, and then P
Move back to the previous topic | ALT+LEFT ARROW
Move forward to the next topic (provided you have viewed it just previously) | ALT+RIGHT ARROW
Turn on or off search highlighting. | ALT+O, and then O
Return to the help file home page | ALT+O, and then H
Switch between the Navigation pane and the Topic pane | F6
Scroll through all the links in a topic or through all the options on a Navigation pane tab | TAB
Display context (right click) menu | SHIFT+F10
Contents Tab Shortcuts
To | Press
Display the Contents tab | ALT+C
Open and close a book or folder | PLUS SIGN and MINUS SIGN, or LEFT ARROW and RIGHT ARROW
Select a topic | DOWN ARROW and UP ARROW
Display the selected topic | ENTER
Index Tab Shortcuts
To | Press
Display the Index tab | ALT+N
Type a keyword to search for | ALT+W, and then type the word
Select a keyword in the list | UP ARROW and DOWN ARROW
Display the associated topic | ENTER or ALT+D
Search Tab shortcuts
To | Press
Display the Search tab | ALT+S
Type a keyword to search for | ALT+W, and then type the word
Start a search | ALT+L
Select a topic in the results list | ALT+T, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Search for a keyword in the result list of a prior search | ALT+U
Search for words similar to the keyword. For example, to find words like "running" and "runs" for the keyword "run" | ALT+M
Only search through topic titles | ALT+R
Favorites Tab Shortcuts
To | Press
Display the Favorites tab | ALT+I
Add the currently displayed topic to the Favorites list | ALT+A
Select a topic in the Favorites list | ALT+P, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Remove the selected topic from the list | ALT+R
Topic Pane Shortcuts
To | Press
Index Lookup | Select the words you would like to look up and press F1
Find on page | CTRL+F, and then adjust options
Refresh page | F5


The Full Text Search

Inhaltsverzeichnis

  • General searching rules
  • Searching for words or phrases
  • Defining search terms
  • Using nested expressions when searching

This edition of the PHP Manual includes an advanced full text search possibility provided by the viewer application. This enables users to search through every word in the help file to find a match. For example, if a user does a full-text search on the word "Apache", every topic that contains the word "Apache" will be listed. Advanced full-text search allows a user to search using boolean, wildcard, and nested expressions. A user can also limit the search to previous results, match similar words, or search topic titles only.

The usage of the search feature is fairly straightforward. Click on the search tab, type in the desired words and press ENTER (or click on "List Topics"). Then you'll receive a list of matches from the PHP Manual (and the notes). You can use the button with a right arrow on it to add boolean operators to your search (or you can type them in). As you see the results, you can use the column headings (Title, Location and Rank) to sort the topic list. The default order is by Rank. You can also adjust some parameters at the bottom of this tab.

The words found are highlighted on the current page in the Topic pane by default. You can turn off this feature by choosing the "Search Highlight Off" menu item in the Options menu. To can get this feature back similarly. If you are viewing a long topic, only the first 500 instances of a search word or phrase will be highlighted, due to a limitation of the viewer.


General searching rules

A basic search consists of the word or phrase you want to find. You can use wildcard expressions, nested expressions, boolean operators, similar word matches, a previous results list, or topic titles to further define your search.

The basic rules for formulating queries are as follows:

  • Searches are not case-sensitive, so you can type your search in uppercase or lowercase characters.
  • You may search for any combination of letters (a-z) and numbers (0-9). You cannot search for single letters (a, b, c, etc.) and common words, like: an, and, as, at, be, but, by, do, for, from, have, he, in, it, not, of, on, or, she, that, the, there, they, this, to, we, which, with, you.
  • Punctuation marks such as the period (.), colon (:), semicolon (;), comma (,), and hyphen (-) are ignored during a search.
  • Group the elements of your search using double quotes or parentheses to set apart each element. You cannot search for quotation marks.

Hinweis:

If you are searching for a file name with an extension, you should group the entire string in double quotes, ("filename.ext"). Otherwise, the period will break the file name into two separate terms. The default operation between terms is AND, so you will create the logical equivalent to "filename AND ext."


Searching for words or phrases

You can search for words or phrases and use wildcard expressions. Wildcard expressions allow you to search for one or more characters using a question mark or asterisk. The table below describes the results of these different kinds of searches.

Word and phrase searches
Search for | Example | Results
A single word | select | Topics that contain the word "select". (You will also find its grammatical variations, such as "selector" and "selection".)
A phrase | "new operator" or new operator | Topics that contain the literal phrase "new operator" and all its grammatical variations. Without the quotation marks, the query is equivalent to specifying "new AND operator," which will find topics containing both of the individual words, instead of the phrase.
Wildcard expressions | esc* or HT?? | Results for the first example include topics that contain the terms "ESC", "escape", "escalation", and so on. The asterisk cannot be the only character in the term. Results for the second example include topics that contain the terms "HTTP", "HTML" and so on. The question mark cannot be the only character in the term.

Hinweis:

Select the Match similar words check box to include minor grammatical variations for the phrase you search. This feature only locates variations of the word with common suffixes. For example, a search on the word "add" will find "added," but it will not find "additive". This option is independent of other options or syntax. If you do a titles-only search, variations in titles will be matched. If you use quotes (or any other query operator) any variation of the word can appear; for example, "stemmed search" will also match "stemming search".


Defining search terms

The AND, OR, NOT, and NEAR operators enable you to precisely define your search by creating a relationship between search terms. The following table shows how you can use each of these operators. If no operator is specified, AND is used. For example, the query "server cgi security" is equivalent to "server AND cgi AND security".

Search operators
Search for | Example | Results
Both terms in the same topic | http AND apache | Topics containing both the words "http" and "apache".
Either term in a topic | ming OR swflib | Topics containing either the word "ming" or the word "swflib" or both.
The first term without the second term | xml NOT expat | Topics containing the word "xml" but not the word "expat".
Both terms in the same topic, close together | database NEAR security | Topics containing the word "database" within eight words of the word "security".

Hinweis:

The |, &, and ! characters can also be used in place of OR AND and NOT respectively. This may not work if you use a very old version of the viewer.


Using nested expressions when searching

Nested expressions allow you to create complex searches for information. For example, "html AND ((smtp OR pop3) NEAR mail)" finds topics containing the word "html" along with the words "smtp" and "mail" close together, or containing "html" along with the words "pop3" and "mail" close together.

The basic rules for searching help topics using nested expressions are as follows:

  • You can use parentheses to nest expressions within a query. The expressions in parentheses are evaluated before the rest of the query.
  • If a query does not contain a nested expression, it is evaluated from left to right. For example: "mail NOT pop3 OR smtp" finds topics containing the word "mail" without the word "pop3" or topics containing the word "smtp". On the other hand, "mail NOT (pop3 OR smtp)" finds topics containing the word "mail" without either of the words "pop3" or "smtp".
  • You cannot nest expressions more than five levels deep.


Integrating the PHP Manual

Hinweis:

The information provided here is mainly aimed at IDE authors, or advanced users who would like to integrate this CHM file to their favorite IDEs or other production environment components.

There are several editors out there with support for CHM integration, but you may need to know a few things about what the CHM contains to successfully integrate the manual into your environment.

The CHM is built using XSL style sheets from XML sources. This is unique currently in the PHP Manual family, as all other versions are generated using DSSSL style sheets. This also means, that non-intentional rendering differences may come up. A special conversion script is run on the XSLT output, adding several cute features, and packing up the manual with the preferences files and skin examples.

If you never worked with CHMs, you can think of them as compressed files with OS supported access for files inside and some added search and index support. However CHMs can only be viewed using the HTML Help Viewer, you can directly access files inside them using a special URL prefix, the CHM file name and the file you request from inside. As all the help content is stored in HTML files, you can show pages of the CHM in Internet Explorer.

Assume that you placed your php_manual_en.chm to c:\phpmanual the index file in the manual (which you see the first time) can be accessed with the following URL: mk:@MSITStore:C:\phpmanual\php_manual_en.chm::/_index.html. Here mk:@MSITStore: is the special "protocol", C:\phpmanual\php_manual_en.chm is the CHM with it's full path. The /_index.html part is the path to the index file inside the CHM and :: is just what you need to put between the CHM path and this file path.

Hinweis:

All files are in the root directory of the CHM, unlike the previous CHM versions which included a language directory. Images, style sheets and other supplemental files have names starting with an underscore (like the main index shown above), to avoid name collisions.

The names of generated files follow the same rules as the online manual, except that the extension is .html and not .php. The most important is that function documentation files are named function.FUNCNAME.html where FUNCNAME is the function name, with all underscores converted to hyphens. Some examples are function.echo.html, function.mysql-close.html, function.imagecopy.html.

Using all this information, you can show a manual page for a function requested by a user. A simple example is included in the distribution, named php_quickref.hta. This is a » HTML Application to demonstrate the simple process of showing a manual page for a function. The quickRef() function defined therein does the job.

If you would like to integrate the manual into an IDE without direct support for the PHP manual (actually the underscore to hyphen conversion), you can use the included _function.html file to access a function page. This file is simply a redirector, and can be parameterized via the URL, as _function.html#mysql_close. This page will redirect you to the mysql_close function page (function.mysql-close.html) automatically. You can provide the full path of this file if your IDE supports context sensitive help, and provide the IDE specified string as the parameter. An example for this is the UltraEdit 9 intergation (see the edition's website).

The index of the manual (accessible via the index tab on the navigation pane) can also be used for integrational purposes. All the HTML pages are included in the index with their titles as index terms (including function description pages).

If you are a desktop application developer and would like to tightly integrate the CHM into your program (such as displaying the TOC tree in your IDE's help box), you can find more information at » http://www.helpware.net/, as well as links to other useful resources. The official site for HTML Help is at » http://www.microsoft.com/download/en/details.aspx?id=21138.